Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Add macroblock correction Y data blocks to predicted picture
  3.  * Copyright © <2010>, Intel Corporation.
  4.  *
  5.  * This program is licensed under the terms and conditions of the
  6.  * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at
  7.  * http://www.opensource.org/licenses/eclipse-1.0.php.
  8.  *
  9.  */
  10.        
  11. // Module name: add_Error_16x16_Y.asm
  12. //
  13. // Add macroblock correction Y data blocks to predicted picture
  14. //
  15.  
  16. //  Every line of predicted Y data is added to Y error data if CBP bit is set
  17.  
  18.     mov (1) PERROR_UD<1>:ud     0x10001*ERRBUF*GRFWIB+0x00100000:ud     // Pointers to first and second row of error block
  19.  
  20.     and.z.f0.1 (1)      NULLREG    REG_CBPCY    CBP_Y_MASK
  21.     (f0.1) jmpi (1) End_add_Error_16x16_Y       // Skip all blocks
  22.  
  23. //  Block Y0
  24. //
  25.     $for(0,0; <8; 2,1) {
  26.         add.sat (16)    DEC_Y(%1)<2>    r[PERROR,%2*GRFWIB]REGION(8,1):w        PRED_Y(%1)REGION(8,2) {Compr}
  27.     }
  28.  
  29. //  Block Y1
  30. //
  31.     $for(0,0; <8; 2,1) {
  32.         add.sat (16)    DEC_Y(%1,16)<2>         r[PERROR,%2*GRFWIB+0x80]REGION(8,1):w   PRED_Y(%1,16)REGION(8,2) {Compr}
  33.     }
  34.  
  35. //  Block Y2
  36. //
  37.     $for(8,0; <16; 2,1) {
  38.         add.sat (16)    DEC_Y(%1)<2>    r[PERROR,%2*GRFWIB+0x100]REGION(8,1):w  PRED_Y(%1)REGION(8,2) {Compr}
  39.     }
  40.  
  41. //  Block Y3
  42. //
  43.     $for(8,0; <16; 2,1) {
  44.         add.sat (16)    DEC_Y(%1,16)<2>         r[PERROR,%2*GRFWIB+0x180]REGION(8,1):w  PRED_Y(%1,16)REGION(8,2) {Compr}
  45.     }
  46.  
  47. End_add_Error_16x16_Y:
  48.     add (1) PERROR_UD<1>:ud     PERROR_UD:ud    0x01800180:ud   // Pointers to Y3 error block
  49.  
  50. //  End of add_Error_16x16_Y
  51.  
  52.