Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright © <2010>, Intel Corporation.
  3.  *
  4.  * This program is licensed under the terms and conditions of the
  5.  * Eclipse Public License (EPL), version 1.0.  The full text of the EPL is at
  6.  * http://www.opensource.org/licenses/eclipse-1.0.php.
  7.  *
  8.  */
  9. #if !defined(__AVC_ILDB_HEADER__)       // Make sure this file is only included once
  10. #define __AVC_ILDB_HEADER__
  11.  
  12. // Module name: AVC_ILDB.inc
  13.  
  14. #undef ORIX
  15. #undef ORIY
  16.  
  17. //========== Root thread input parameters ==================================================
  18. #define RootParam                               r1              // :w
  19. #define MBsCntX                                 r1.0    // :w, MB count per row
  20. #define MBsCntY                                 r1.1    // :w, MB count per col
  21. //#define PicType                                       r1.2    // :w, Picture type
  22. #define MaxThreads                              r1.3    // :w, Max Thread limit
  23. #define EntrySignature                  r1.4    // :w, Debug flag
  24. #define BitFields                               r1.5    // :uw
  25. #define         MbaffFlag                       BIT0    // :w, mbaff flag, bit 0 in BitFields
  26. #define         BotFieldFlag            BIT1    // :w, bottom field flag, bit 1 in BitFields
  27. #define         CntlDataExpFlag         BIT2    // :w, Control Data Expansion Flag, bit 2 in BitFields
  28. #define RampConst                               r1.12   // 8 :ub, Ramp constant, r1.12 - r1.19:ub
  29. #define StepToNextMB                    r1.20   // :b, 2 bytes
  30. #define Minus2Minus1                    r1.22   // :b, 2 bytes
  31. // next one starts at r1.11:w
  32.  
  33. #define         TopFieldFlag            0xFFFD  // :w, top field flag, used to set bit1 to 0.
  34.  
  35.  
  36. //========== Root Locals =============================================================
  37.  
  38. // Variables in root kernel for launching child therad
  39. #define ChildParam                              r2.0    // :w
  40. //Not used  #define     URBOffset                               r2.3    // :w, Each row occupies 4 URB entries.  All children in the same row use the same set of URB entries
  41. #define CurCol                                  r2.10   // :w, current col
  42. #define CurColB                                 r2.20   // :b, current col
  43. #define CurRow                                  r2.11   // :w, current row
  44. #define CurRowB                                 r2.22   // :b, current row
  45. #define LastCol                                 r2.12   // :w, last col
  46. #define LastRow                                 r2.13   // :w, last row
  47.  
  48. // Root local constants during spawning process
  49. #define Col_Boundary                    r3.0    // :w,
  50. #define Row_Boundary                    r3.1    // :w,
  51. //#define       TotalBlocks                             r3.2    // :w, Total blocks in the frame
  52. #define URB_EntriesPerMB_2              r3.3    // :w, = URB entries per MB, but in differnt form
  53. #define URBOffsetUVBase                 r3.4    // :w, UV Base offset in URB
  54.  
  55. #define Temp1_D                                 r3.6    // :d:
  56. #define Temp1_W                                 r3.12   // :w, Temp1
  57. #define Temp1_B                                 r3.24   // :b, = Temp1_W
  58. #define Temp2_W                                 r3.13   // :w, Temp2
  59. #define Temp2_B                                 r3.26   // :b, = Temp2_W
  60.  
  61. // Root local variables
  62. #define JumpTable                               r4              // :d, jump table
  63. #define JUMPTABLE_BASE                  4*32
  64. #define JumpAddr                                a0.7
  65.  
  66. #define TopRowForScan                   r5.0    // :w, track the top row for scan. All rows above this row is deblocked already.
  67.  
  68.  
  69. // Child Thread R0 Header Field
  70. #define MRF0                                    m0             
  71. #define CT_R0Hdr                                m1
  72.  
  73. /*
  74. .declare GatewayAperture        Base=r50.0 ElementSize=4 SrcRegion=REGION(8,1) Type=ud 
  75. #define GatewayApertureB        1600    // r50 byte offset from r0.0
  76.  
  77. // Chroma root thread updates luma root's ThreadLimit at r10.0:w via gateway
  78. #define ThreadLimit                             r62.0   // :w, thread limit //r56.0
  79. #define THREAD_LIMIT_OFFSET             0x01800000      // Offset from r50 to r56 = 12*32 = 384 = 0x0180.  0x180 << 16 = 0x01800000
  80.         //#define THREAD_LIMIT_OFFSET           0x00C00000      // Offset from r50 to r56 = 6*32 = 192 = 0x00C0.  0xC0 << 16 = 0x00C00000
  81. */
  82.  
  83. // Gateway size is 16 GRF.  68 rows of MBs takes 9 GRFs (r6 - r14)
  84. // For CTG: Expended to support 1280 rows of pixel (80 rows of MBs).  It requires 10 GRFs (r6 - r15)
  85. .declare GatewayAperture        Base=r6.0 ElementSize=4 SrcRegion=REGION(8,1) Type=ud  
  86. #define GatewayApertureB        192     // r0.0 byte offset from r0.0
  87.  
  88. // Chroma root thread updates luma root's ThreadLimit at r10.0:w via gateway
  89. #define ThreadLimit                             r18.0   // :w, thread limit
  90. #define THREAD_LIMIT_OFFSET             0x01800000      // Offset from r50 to r56 = 12*32 = 384 = 0x0180.  0x180 << 16 = 0x01800000
  91. #define TotalBlocks                             r18.1   // :w, Total blocks in the frame
  92.  
  93. // Root local variables
  94. #define ChildThreadsID                  r19.0   // :w, Child thread ID, unique to each child
  95. #define OutstandingThreads              r20.0   // :w, Outstanding threads
  96. #define ProcessedMBs                    r20.1   // :w, # of MBs processed
  97.  
  98. #define URBOffset                               r21.0   // :w, Each row occupies 4 URB entries.  All children in the same row use the same set of URB entries
  99.  
  100. //=================================================================================
  101.  
  102. #define ScoreBd_Size                    128 //96 // size of Status[] or ProcCol[]
  103.  
  104. #define ScoreBd_Idx                             2              
  105. //#define Saved_Col                             0
  106.  
  107. #define StatusAddr                              a0.4    // :w, point to r50
  108. //=================================================================================
  109.  
  110.  
  111. // Gateway payload
  112. #define GatewayPayload                  r48.0   // :ud
  113. #define GatewayPayloadKey               r48.8   // :uw
  114. #define DispatchID                              r48.20  // :ub
  115. #define RegBase_GatewaySize     r48.5   // :ud, used in open a gateway
  116. #define Offset_Length                   r48.5   // :ud, used in forwardmsg back to root
  117. #define EUID_TID                                r48.9   // :uw, used in forwardmsg back to root
  118.  
  119. // Gateway response
  120. #define GatewayResponse                 r49.0   // :ud, one GRF
  121.  
  122. #define URBWriteMsgDesc                 a0.0    // Used in URB write, :ud
  123. #define URBWriteMsgDescLow              a0.0    // Used in URB write, :uw
  124. #define URBWriteMsgDescHigh             a0.1    // Used in URB write, :uw
  125.  
  126. .declare WritebackResponse              Base=r50 ElementSize=4 SrcRegion=REGION(8,1) Type=ud    // 1 GRF for write backs
  127.  
  128.  
  129. /////////////////////////////////////////////////////////////////////////////////////////////
  130. // IDesc Order                                  Offset
  131. //
  132. // 0) luma root                                 0 from luma root
  133. // 1) luma child                                16 from luma root
  134. // 2) chroma root                               32 from luma root
  135. // 3) chroma child                              16 from chroma root
  136.  
  137. // 4) luma field root                   0 from luma field root
  138. // 5) luma field child                  16 from luma field root
  139. // 6) chroma field root                 32 from luma field root
  140. // 7) chroma field child                16 from chroma field root
  141.  
  142. // 8) luma Mbaff root                   0 from luma Mbaff root
  143. // 9) luma Mbaff child                  16 from luma Mbaff root
  144. // 10) chroma Mbaff root                32 from luma Mbaff root
  145. // 11) chroma Mbaff child               16 from chroma Mbaff root
  146.  
  147. // IDesc offset within non-mbaff or mbaff mode
  148. #define CHROMA_ROOT_OFFSET              32              // Offset from luma root to chroma root
  149. #define CHILD_OFFSET                    16              // Offset from luma root to luma child,
  150.                                                                                 // and from chroma root to chroma child
  151. /////////////////////////////////////////////////////////////////////////////////////////////
  152.  
  153.  
  154. //========== End of Root Variables ======================================================
  155.  
  156.  
  157. //========== Child thread input parameters ==============================================
  158. //#define       MBsCntX                                 r1.0    // :w, MB count per row (same as root)
  159. //#define       MBsCntY                                 r1.1    // :w, MB count per col (same as root)
  160. //#define PicTypeC                              r1.2    // :w, Picture type             same as root thread (same as root)
  161. #define URBOffsetC                              r1.3    // :w,
  162. #define EntrySignatureC                 r1.4    // :w, Debug field (same as root)
  163. //#define BitFields                             r1.5    // :w (same as root)
  164. //#define       MbaffFlag                       BIT0    // :w, mbaff flag, bit 0 in BitFields
  165. //#define       BotFieldFlag            BIT1    // :w, bottom field flag, bit 1 in BitFields
  166. //#define       CntlDataExpFlag         BIT2    // :w, Control Data Expansion Flag, bit 2 in BitFields
  167. #define RampConstC                              r1.12   // 8 :ub, Ramp constant, r1.12 - r1.19:ub.
  168. #define ORIX                                    r1.10   // :w, carry over from root r1 in MB count
  169. #define ORIY                                    r1.11   // :w, carry over from root r1 in MB count
  170. #define LastColC                                r1.12   // :w, last col
  171. #define LastRowC                                r1.13   // :w, last row
  172.  
  173. .declare GatewayApertureC               Base=r1.0 ElementSize=4 SrcRegion=REGION(8,1) Type=ud  
  174. #define GatewayApertureCBase    32              // r1 byte offset from r0.0
  175.  
  176.  
  177. //========== Child Variables ============================================================
  178.  
  179. // Mbaff Alpha, Beta, Tc0 vectors for an edge
  180. .declare Mbaff_ALPHA    Base=r14.0  ElementSize=2 SrcRegion=REGION(8,1) Type=uw         // r14
  181. .declare Mbaff_BETA     Base=r15.0  ElementSize=2 SrcRegion=REGION(8,1) Type=uw         // r15
  182. .declare Mbaff_TC0              Base=r16.0  ElementSize=2 SrcRegion=REGION(8,1) Type=uw         // r16
  183. .declare RRampW                 Base=r17.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w           // r17
  184.  
  185. .declare Mbaff_ALPHA2   Base=r45.0  ElementSize=2 SrcRegion=REGION(8,1) Type=uw         // alpha2 = (alpha >> 2) + 2
  186.  
  187.  
  188. #define ORIX_CUR                                r46.0   // :w, current block origin X in bytes
  189. #define ORIY_CUR                                r46.1   // :w, current block origin Y in bytes
  190. #define ORIX_LEFT                               r46.2   // :w, left block origin X in bytes
  191. #define ORIY_LEFT                               r46.3   // :w, left block origin Y in bytes
  192. #define ORIX_TOP                                r46.4   // :w, top block origin X in bytes
  193. #define ORIY_TOP                                r46.5   // :w, top block origin Y in bytes
  194. //#define FilterSampleFlag              r46.6   // :uw,
  195. #define CTemp0_W                                r46.7   // :w, child Temp0
  196.  
  197. #define alpha                                   r46.8   // :w, Scaler version for non Mbaff
  198. #define beta                                    r46.9   // :w, Scaler version for non Mbaff
  199. #define tc0                                             r46.20  // 4 :ub, r46.20 ~ r46.23, Scaler version for non Mbaff
  200. #define MaskA                                   r46.12  // :uw
  201. #define MaskB                                   r46.13  // :uw
  202.  
  203. // Child control flags
  204. #define DualFieldMode                   r47.0   // Cur MB is frame based, above MB is field based in mbaff mode
  205.                                                                                 // :uw, 0 = not in dual field mode,  1 = in dual field mode, filter both top and bot fields
  206. #define GateWayOffsetC                  r47.1   // :w, Gateway offset for child writing into root space
  207. #define CntrlDataOffsetY                r47.1   // :ud, MB control data data offset
  208. #define alpha2                                  r47.4   // :uw,         alpha2 = (alpha >> 2) + 2
  209.  
  210. #define VertEdgePattern                 r47.5   // :uw,
  211.  
  212. #define CTemp1_W                                r47.6   // :w, child Temp1
  213. #define CTemp1_B                                r47.12  // :b, = child Temp1_W
  214. #define CTemp2_W                                r47.7   // :w, child Temp2
  215. #define CTemp2_B                                r47.14  // :b, = child Temp2_W
  216.  
  217. // Used in child
  218. #define ECM_AddrReg                             a0.4    // Edge Control Map register
  219. #define P_AddrReg                               a0.6    // point to P samples in left or top MB
  220. #define Q_AddrReg                               a0.7    // point to Q samples in cur MB
  221.  
  222.  
  223. .declare        RTempD     Base=r26.0 ElementSize=4 SrcRegion=REGION(8,1) Type=d        // r26-27
  224. .declare        RTempB     Base=r26.0 ElementSize=1 SrcRegion=REGION(8,4) Type=ub       // r26-27
  225. .declare        RTempW     Base=r26.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w        // r26-27
  226. #define         LEFT_TEMP_D             RTempD
  227. #define         LEFT_TEMP_B             RTempB
  228. #define         LEFT_TEMP_W             RTempW
  229.  
  230. .declare        TempRow0   Base=r26.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  231. .declare        TempRow0B  Base=r26.0 ElementSize=1 SrcRegion=REGION(8,2) Type=ub
  232. .declare        TempRow1   Base=r27.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  233. .declare        TempRow1B  Base=r27.0 ElementSize=1 SrcRegion=REGION(8,2) Type=ub
  234.  
  235. .declare        CUR_TEMP_D      Base=r28.0 ElementSize=4 SrcRegion=REGION(8,1) Type=d   // 8 GRFs
  236. .declare        CUR_TEMP_B      Base=r28.0 ElementSize=1 SrcRegion=REGION(8,4) Type=ub
  237. .declare        CUR_TEMP_W      Base=r28.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  238.  
  239. #define FilterSampleFlag                r28.0   // :uw,
  240.  
  241. .declare        A               Base=r28.0 ElementSize=2 SrcRegion=REGION(16,1) Type=w
  242. .declare        BB              Base=r29.0 ElementSize=2 SrcRegion=REGION(16,1) Type=w
  243.  
  244. .declare        TempRow3   Base=r30.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  245. .declare        TempRow3B  Base=r30.0 ElementSize=1 SrcRegion=REGION(8,2) Type=ub
  246.  
  247. .declare        tc0_exp         Base=r30.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  248. .declare        tc8                     Base=r30.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  249.  
  250. .declare        tc_exp          Base=r31.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  251. .declare        tx_exp_8        Base=r31.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  252.  
  253. .declare        q0_p0           Base=r32.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  254. .declare        ABS_q0_p0       Base=r33.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  255.  
  256. .declare        ap                      Base=r34.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  257. .declare        aq                      Base=r35.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  258.  
  259. // These buffers have the src data for each edge to be beblocked.
  260. // They have modified pixels from previous edges.
  261. //
  262. //      Y:
  263. //      +----+----+----+----+----+----+----+----+
  264. //      | p3 | p2 | P1 | p0 | q0 | q1 | q2 | q3 |
  265. //      +----+----+----+----+----+----+----+----+
  266. //
  267. //      p3 = r[P_AddrReg, 0]<16;16,1>  
  268. //      p2 = r[P_AddrReg, 16]<16;16,1>
  269. //      p1 = r[P_AddrReg, 32]<16;16,1>
  270. //      p0 = r[P_AddrReg, 48]<16;16,1>
  271. //      q0 = r[Q_AddrReg, 0]<16;16,1>  
  272. //      q1 = r[Q_AddrReg, 16]<16;16,1>
  273. //      q2 = r[Q_AddrReg, 32]<16;16,1>
  274. //      q3 = r[Q_AddrReg, 48]<16;16,1>
  275.  
  276. .declare        p0123_W         Base=r36.0  ElementSize=2 SrcRegion=REGION(16,1) Type=uw                // r36, r37
  277. .declare        q0123_W         Base=r38.0  ElementSize=2 SrcRegion=REGION(16,1) Type=uw                // r38, r39
  278. .declare        p3                      Base=r36.0  ElementSize=1 SrcRegion=REGION(8,1) Type=ub
  279. .declare        p2                      Base=r36.16 ElementSize=1 SrcRegion=REGION(8,1) Type=ub
  280. .declare        p1                      Base=r37.0  ElementSize=1 SrcRegion=REGION(8,1) Type=ub
  281. .declare        p0                      Base=r37.16 ElementSize=1 SrcRegion=REGION(8,1) Type=ub
  282. .declare        q0                      Base=r38.0  ElementSize=1 SrcRegion=REGION(8,1) Type=ub
  283. .declare        q1                      Base=r38.16 ElementSize=1 SrcRegion=REGION(8,1) Type=ub
  284. .declare        q2                      Base=r39.0  ElementSize=1 SrcRegion=REGION(8,1) Type=ub
  285. .declare        q3                      Base=r39.16 ElementSize=1 SrcRegion=REGION(8,1) Type=ub
  286.  
  287. .declare        TempRow2   Base=r38.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  288.  
  289. // Temp space for mbaff dual field mode
  290. #define         ABOVE_CUR_MB_BASE       40*GRFWIB                                                                                       // Byte offset to r40
  291. .declare    ABOVE_CUR_MB_YW  Base=r40   ElementSize=2 SrcRegion=REGION(8,1) Type=uw
  292. .declare    ABOVE_CUR_MB_UW  Base=r40   ElementSize=2 SrcRegion=REGION(8,1) Type=uw
  293.  
  294. .declare        P0_plus_P1   Base=r41.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  295. .declare        Q0_plus_Q1   Base=r42.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  296.  
  297. .declare        P2_plus_P3   Base=r43.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  298. .declare        Q2_plus_Q3   Base=r44.0 ElementSize=2 SrcRegion=REGION(8,1) Type=w
  299.  
  300.  
  301. //////////////////////////////////////////////////////////////////////////////////////////
  302. // MB control data reference
  303.  
  304. // Expanded control data is in r18 - r25
  305. .declare    CNTRL_DATA_D Base=r18       ElementSize=4 SrcRegion=REGION(8,1) Type=ud             // For read, 8 GRFs
  306. #define         CNTRL_DATA_BASE 18*GRFWIB                                                                                               // Base offset to r18
  307.  
  308. //  Bit mask for extracting bits
  309. #define MbaffFrameFlag                                  0x01
  310. #define FieldModeCurrentMbFlag                  0x02
  311. #define FieldModeLeftMbFlag                             0x04
  312. #define FieldModeAboveMbFlag                    0x08
  313. #define FilterInternal8x8EdgesFlag              0x10
  314. #define FilterInternal4x4EdgesFlag              0x20
  315. #define FilterLeftMbEdgeFlag                    0x40
  316. #define FilterTopMbEdgeFlag                             0x80
  317.  
  318. #define DISABLE_ILDB_FLAG                               0x01
  319.  
  320. //  Exact bit pattern for left and cur MB coding mode (frame vs. field)
  321. #define LEFT_FRAME_CUR_FRAME                    0x00
  322. #define LEFT_FRAME_CUR_FIELD                    0x02
  323. #define LEFT_FIELD_CUR_FRAME                    0x04
  324. #define LEFT_FIELD_CUR_FIELD                    0x06
  325.  
  326. //  Exact bit pattern for above and cur MB coding mode (frame vs. field)
  327. #define ABOVE_FRAME_CUR_FRAME                   0x00
  328. #define ABOVE_FRAME_CUR_FIELD                   0x02
  329. #define ABOVE_FIELD_CUR_FRAME                   0x08
  330. #define ABOVE_FIELD_CUR_FIELD                   0x0A
  331.  
  332.  
  333.  
  334. //========== MB control data field offset in byte ==========
  335.  
  336. #if !defined(_APPLE)
  337.  
  338. // GRF0 - GRF1 holds original control data
  339.  
  340. // GRF0
  341. #define HorizOrigin                                             0
  342. #define VertOrigin                                              1
  343. #define BitFlags                                                2               // Bit flags
  344.  
  345. #define bbSinternalLeftVert                             4               // Internal left vertical bS, 2 bits per bS for 4 Y pixels and 2 U/V pixels    
  346. #define bbSinternalMidVert                              5               // Internal mid vertical bS
  347. #define bbSinternalRightVert                    6               // Internal right vertical bS
  348. #define bbSinternalTopHorz                              7               // Internal top horizontal bS
  349.  
  350. #define bbSinternalMidHorz                              8               // Internal mid horizontal bS
  351. #define bbSinternalBotHorz                              9               // Internal bottom horizontal bS
  352. #define wbSLeft0                                                10              // External left vertical bS (0), 4 bits per bS for 4 Y pixels and 2 U/V pixels, and byte 11
  353.  
  354. #define wbSLeft1                                                12              // External left vertical bS (1), and byte 13
  355. #define wbSTop0                                                 14              // External top horizontal bS (0), and byte 15
  356.  
  357. #define wbSTop1                                                 16              // Externaltop horizontal bS (1), and byte 17
  358. #define bIndexAinternal_Y                               18              // Internal index A for Y
  359. #define bIndexBinternal_Y                               19              // Internal index B for Y
  360.  
  361. #define bIndexAleft0_Y                                  20              // Left index A for Y (0)
  362. #define bIndexBleft0_Y                                  21              // Left index B for Y (0)
  363. #define bIndexAleft1_Y                                  22              // Left index A for Y (1)
  364. #define bIndexBleft1_Y                                  23              // Left index B for Y (1)
  365.  
  366. #define bIndexAtop0_Y                                   24              // Top index A for Y (0)
  367. #define bIndexBtop0_Y                                   25              // Top index B for Y (0)
  368. #define bIndexAtop1_Y                                   26              // Top index A for Y (1)
  369. #define bIndexBtop1_Y                                   27              // Top index B for Y (1)
  370.  
  371. #define bIndexAinternal_Cb                              28              // Internal index A for Cb
  372. #define bIndexBinternal_Cb                              29              // Internal index B for Cb
  373. #define bIndexAleft0_Cb                                 30              // Left index A for Cb (0)
  374. #define bIndexBleft0_Cb                                 31              // Left index B for Cb (0)
  375.  
  376. // GRF1
  377. #define bIndexAleft1_Cb                                 32              // Left index A for Cb (1)
  378. #define bIndexBleft1_Cb                                 33              // Left index B for Cb (1)
  379. #define bIndexAtop0_Cb                                  34              // Top index A for Cb (0)
  380. #define bIndexBtop0_Cb                                  35              // Top index B for Cb (0)
  381.  
  382. #define bIndexAtop1_Cb                                  36              // Top index A for Cb (1)
  383. #define bIndexBtop1_Cb                                  37              // Top index B for Cb (1)
  384. #define bIndexAinternal_Cr                              38              // Internal index A for Cr
  385. #define bIndexBinternal_Cr                              39              // Internal index B for Cr
  386.  
  387. #define bIndexAleft0_Cr                                 40              // Left index A for Cr (0)
  388. #define bIndexBleft0_Cr                                 41              // Left index B for Cr (0)
  389. #define bIndexAleft1_Cr                                 42              // Left index A for Cr (1)
  390. #define bIndexBleft1_Cr                                 43              // Left index B for Cr (1)
  391.  
  392. #define bIndexAtop0_Cr                                  44              // Top index A for Cr (0)
  393. #define bIndexBtop0_Cr                                  45              // Top index B for Cr (0)
  394. #define bIndexAtop1_Cr                                  46              // Top index A for Cr (1)
  395. #define bIndexBtop1_Cr                                  47              // Top index B for Cr (1)
  396.  
  397. #define ExtBitFlags                                             48              // Extended bit flags, such as disable ILDB bits
  398.  
  399. // Offset 49 - 63 not used
  400.  
  401.  
  402. //===== GRF2 - GRF7 hold expanded control data =====
  403.  
  404. // GRF2
  405. #define wEdgeCntlMap_IntLeftVert                64              // Derived from bbSinternalLeftVert, 1 bit per pixel
  406. #define wEdgeCntlMap_IntMidVert                 66              // Derived from bbSinternalLeftVert
  407.                
  408. #define wEdgeCntlMap_IntRightVert               68              // Derived from bbSinternalRightVert
  409. #define wEdgeCntlMap_IntTopHorz                 70              // Derived from bbSinternalTopHorz, 1bit per pixel
  410.                
  411. #define wEdgeCntlMap_IntMidHorz                 72              // Derived from bbSinternalMidHorz
  412. #define wEdgeCntlMap_IntBotHorz                 74              // Derived from bbSinternalBotHorz
  413.  
  414. // Offset 76 - 79 not used
  415.  
  416. #define wEdgeCntlMapA_ExtLeftVert0              80              // Derived from wbSLeft0, 1bit per pixel
  417. #define wEdgeCntlMapB_ExtLeftVert0              82              // Derived from wbSLeft0
  418.  
  419. #define wEdgeCntlMapA_ExtTopHorz0               84              // Derived from wbSTop0, 1bit per pixel
  420. #define wEdgeCntlMapB_ExtTopHorz0               86              // Derived from wbSTop0
  421.  
  422. #define wEdgeCntlMapA_ExtLeftVert1              88              // Derived from wbSLeft1, 1bit per pixel
  423. #define wEdgeCntlMapB_ExtLeftVert1              90              // Derived from wbSLeft1
  424.  
  425. #define wEdgeCntlMapA_ExtTopHorz1               92              // Derived from wbSTop1, 1bit per pixel
  426. #define wEdgeCntlMapB_ExtTopHorz1               94              // Derived from wbSTop1
  427.  
  428.  
  429. // GRF3
  430. #define bTc0_v00_0_Y                                    96              // Derived from bSv00_0 and bIndexAleft0_Y, 4 pixels per tc0
  431. #define bTc0_v10_0_Y                                    97              // Derived from bSv10_0 and bIndexAleft0_Y
  432. #define bTc0_v20_0_Y                                    98              // Derived from bSv20_0 and bIndexAleft0_Y
  433. #define bTc0_v30_0_Y                                    99              // Derived from bSv30_0 and bIndexAleft0_Y
  434.  
  435. #define bTc0_v01_Y                                              100             // Derived from bSv01 and bIndexAinternal_Y
  436. #define bTc0_v11_Y                                              101             // Derived from bSv11 and bIndexAinternal_Y
  437. #define bTc0_v21_Y                                              102             // Derived from bSv21 and bIndexAinternal_Y
  438. #define bTc0_v31_Y                                              103             // Derived from bSv31 and bIndexAinternal_Y
  439.  
  440. #define bTc0_v02_Y                                              104             // Derived from bSv02 and bIndexAinternal_Y
  441. #define bTc0_v12_Y                                              105             // Derived from bSv12 and bIndexAinternal_Y
  442. #define bTc0_v22_Y                                              106             // Derived from bSv22 and bIndexAinternal_Y
  443. #define bTc0_v32_Y                                              107             // Derived from bSv32 and bIndexAinternal_Y
  444.  
  445. #define bTc0_v03_Y                                              108             // Derived from bSv03 and bIndexAinternal_Y
  446. #define bTc0_v13_Y                                              109             // Derived from bSv13 and bIndexAinternal_Y
  447. #define bTc0_v23_Y                                              110             // Derived from bSv23 and bIndexAinternal_Y
  448. #define bTc0_v33_Y                                              111             // Derived from bSv33 and bIndexAinternal_Y
  449.  
  450. #define bTc0_h00_0_Y                                    112             // Derived from bSh00_0 and bIndexAleft0_Y
  451. #define bTc0_h01_0_Y                                    113             // Derived from bSh01_0 and bIndexAleft0_Y
  452. #define bTc0_h02_0_Y                                    114             // Derived from bSh02_0 and bIndexAleft0_Y
  453. #define bTc0_h03_0_Y                                    115             // Derived from bSh03_0 and bIndexAleft0_Y
  454.  
  455. #define bTc0_h10_Y                                              116             // Derived from bSh10 and bIndexAinternal_Y
  456. #define bTc0_h11_Y                                              117             // Derived from bSh11 and bIndexAinternal_Y
  457. #define bTc0_h12_Y                                              118             // Derived from bSh12 and bIndexAinternal_Y
  458. #define bTc0_h13_Y                                              119             // Derived from bSh13 and bIndexAinternal_Y
  459.                
  460. #define bTc0_h20_Y                                              120             // Derived from bSh20 and bIndexAinternal_Y
  461. #define bTc0_h21_Y                                              121             // Derived from bSh21 and bIndexAinternal_Y
  462. #define bTc0_h22_Y                                              122             // Derived from bSh22 and bIndexAinternal_Y
  463. #define bTc0_h23_Y                                              123             // Derived from bSh23 and bIndexAinternal_Y
  464.  
  465. #define bTc0_h30_Y                                              124             // Derived from bSh30 and bIndexAinternal_Y
  466. #define bTc0_h31_Y                                              125             // Derived from bSh31 and bIndexAinternal_Y
  467. #define bTc0_h32_Y                                              126             // Derived from bSh32 and bIndexAinternal_Y
  468. #define bTc0_h33_Y                                              127             // Derived from bSh33 and bIndexAinternal_Y
  469.  
  470. // GRF4
  471. #define bAlphaLeft0_Y                                   128             // Derived from bIndexAleft0_Y 
  472. #define bBetaLeft0_Y                                    129             // Derived from bIndexBleft0_Y 
  473. #define bAlphaTop0_Y                                    130             // Derived from bIndexAtop0_Y  
  474. #define bBetaTop0_Y                                             131             // Derived from bIndexBtop0_Y  
  475.  
  476. #define bAlphaInternal_Y                                132             // Derived from bIndexAinternal_Y      
  477. #define bBetaInternal_Y                                 133             // Derived from bIndexBinternal_Y      
  478. // Offset 134 - 135 not used
  479.  
  480. // Offset 136 - 143 not used
  481. #define bAlphaLeft1_Y                                   144             // Derived from bIndexAleft1_Y  Used in Mbaff mode only
  482. #define bBetaLeft1_Y                                    145             // Derived from bIndexBleft1_Y  Used in Mbaff mode only
  483. #define bAlphaTop1_Y                                    146             // Derived from bIndexAtop1_Y   Used in Mbaff mode only
  484. #define bBetaTop1_Y                                             147             // Derived from bIndexBtop1_Y   Used in Mbaff mode only
  485.  
  486. // Offset 148 - 151 not used
  487. #define bTc0_v00_1_Y                                    152             // Derived from bSv00_1 and bIndexAleft1_Y      Used in Mbaff mode only
  488. #define bTc0_v10_1_Y                                    153             // Derived from bSv10_1 and bIndexAleft1_Y      Used in Mbaff mode only
  489. #define bTc0_v20_1_Y                                    154             // Derived from bSv20_1 and bIndexAleft1_Y      Used in Mbaff mode only
  490. #define bTc0_v30_1_Y                                    155             // Derived from bSv30_1 and bIndexAleft1_Y      Used in Mbaff mode only
  491.  
  492. #define bTc0_h00_1_Y                                    156             // Derived from bSh00_1 and bIndexAleft1_Y      Used in Mbaff mode only
  493. #define bTc0_h01_1_Y                                    157             // Derived from bSh01_1 and bIndexAleft1_Y      Used in Mbaff mode only
  494. #define bTc0_h02_1_Y                                    158             // Derived from bSh02_1 and bIndexAleft1_Y      Used in Mbaff mode only
  495. #define bTc0_h03_1_Y                                    159             // Derived from bSh03_1 and bIndexAleft1_Y      Used in Mbaff mode only
  496.  
  497.  
  498. // GRF5
  499. #define bTc0_v00_0_Cb                                   160             // Derived from bSv00_0 and bIndexAleft0_Cb, 2 pixels per tc0   Left0
  500. #define bTc0_v10_0_Cb                                   161             // Derived from bSv10_0 and bIndexAleft0_Cb    
  501. #define bTc0_v20_0_Cb                                   162             // Derived from bSv20_0 and bIndexAleft0_Cb    
  502. #define bTc0_v30_0_Cb                                   163             // Derived from bSv30_0 and bIndexAleft0_Cb    
  503.  
  504. #define bTc0_v02_Cb                                             164             // Derived from bSv02 and bIndexAinternal_Cb    MidVert
  505. #define bTc0_v12_Cb                                             165             // Derived from bSv12 and bIndexAinternal_Cb   
  506. #define bTc0_v22_Cb                                             166             // Derived from bSv22 and bIndexAinternal_Cb   
  507. #define bTc0_v32_Cb                                             167             // Derived from bSv32 and bIndexAinternal_Cb   
  508.  
  509. #define bTc0_h00_0_Cb                                   168             // Derived from bSh00_0 and bIndexAleft0_Cb     Top0
  510. #define bTc0_h01_0_Cb                                   169             // Derived from bSh01_0 and bIndexAleft0_Cb    
  511. #define bTc0_h02_0_Cb                                   170             // Derived from bSh02_0 and bIndexAleft0_Cb    
  512. #define bTc0_h03_0_Cb                                   171             // Derived from bSh03_0 and bIndexAleft0_Cb    
  513.  
  514. #define bTc0_h20_Cb                                             172             // Derived from bSh20 and bIndexAinternal_Cb    MidHorz
  515. #define bTc0_h21_Cb                                             173             // Derived from bSh21 and bIndexAinternal_Cb   
  516. #define bTc0_h22_Cb                                             174             // Derived from bSh22 and bIndexAinternal_Cb   
  517. #define bTc0_h23_Cb                                             175             // Derived from bSh23 and bIndexAinternal_Cb   
  518.  
  519. #define bTc0_v00_0_Cr                                   176             // Derived from bSv00_0 and bIndexAleft0_Cr, 2 pixels per tc0   Left0
  520. #define bTc0_v10_0_Cr                                   177             // Derived from bSv10_0 and bIndexAleft0_Cr    
  521. #define bTc0_v20_0_Cr                                   178             // Derived from bSv20_0 and bIndexAleft0_Cr    
  522. #define bTc0_v30_0_Cr                                   179             // Derived from bSv30_0 and bIndexAleft0_Cr    
  523.  
  524. #define bTc0_v02_Cr                                             180             // Derived from bSv02 and bIndexAinternal_Cr    Mid Vert
  525. #define bTc0_v12_Cr                                             181             // Derived from bSv12 and bIndexAinternal_Cr   
  526. #define bTc0_v22_Cr                                             182             // Derived from bSv22 and bIndexAinternal_Cr   
  527. #define bTc0_v32_Cr                                             183             // Derived from bSv32 and bIndexAinternal_Cr   
  528.  
  529. #define bTc0_h00_0_Cr                                   184             // Derived from bSh00_0 and bIndexAleft0_Cr, 2 pixels per tc0   Top0
  530. #define bTc0_h01_0_Cr                                   185             // Derived from bSh01_0 and bIndexAleft0_Cr    
  531. #define bTc0_h02_0_Cr                                   186             // Derived from bSh02_0 and bIndexAleft0_Cr    
  532. #define bTc0_h03_0_Cr                                   187             // Derived from bSh03_0 and bIndexAleft0_Cr    
  533.  
  534. #define bTc0_h20_Cr                                             188             // Derived from bSh20 and bIndexAinternal_Cr    Mid  Horz
  535. #define bTc0_h21_Cr                                             189             // Derived from bSh21 and bIndexAinternal_Cr   
  536. #define bTc0_h22_Cr                                             190             // Derived from bSh22 and bIndexAinternal_Cr   
  537. #define bTc0_h23_Cr                                             191             // Derived from bSh23 and bIndexAinternal_Cr   
  538.  
  539. // GRF6
  540. #define bAlphaLeft0_Cb                                  192             // Derived from bIndexAleft0_Cb
  541. #define bBetaLeft0_Cb                                   193             // Derived from bIndexBleft0_Cb
  542. #define bAlphaTop0_Cb                                   194             // Derived from bIndexAtop0_Cb
  543. #define bBetaTop0_Cb                                    195             // Derived from bIndexBtop0_Cb
  544.  
  545. #define bAlphaInternal_Cb                               196             // Derived from bIndexAinternal_Cb
  546. #define bBetaInternal_Cb                                197             // Derived from bIndexBinternal_Cb
  547. // Offset 198 - 199 not used           
  548.  
  549. #define bAlphaLeft0_Cr                                  200             // Derived from bIndexAleft0_Cr
  550. #define bBetaLeft0_Cr                                   201             // Derived from bIndexBleft0_Cr
  551. #define bAlphaTop0_Cr                                   202             // Derived from bIndexAtop0_Cr
  552. #define bBetaTop0_Cr                                    203             // Derived from bIndexBtop0_Cr
  553.  
  554. #define bAlphaInternal_Cr                               204             // Derived from bIndexAinternal_Cr
  555. #define bBetaInternal_Cr                                205             // Derived from bIndexBinternal_Cr
  556. // Offset 206 - 223 not used           
  557.  
  558. // GRF7
  559. #define bAlphaLeft1_Cb                                  224             // Derived from bIndexAleft1_Cb Used in Mbaff mode only
  560. #define bBetaLeft1_Cb                                   225             // Derived from bIndexBleft1_Cb Used in Mbaff mode only
  561. #define bAlphaTop1_Cb                                   226             // Derived from bIndexAtop1_Cb  Used in Mbaff mode only
  562. #define bBetaTop1_Cb                                    227             // Derived from bIndexBtop1_Cb  Used in Mbaff mode only
  563.  
  564. // Offset 228 - 231 not used
  565.  
  566. #define bTc0_v00_1_Cb                                   232             // Derived from bSv00_1 and bIndexAleft1_Cb     Used in Mbaff mode only
  567. #define bTc0_v10_1_Cb                                   233             // Derived from bSv10_1 and bIndexAleft1_Cb     Used in Mbaff mode only
  568. #define bTc0_v20_1_Cb                                   234             // Derived from bSv20_1 and bIndexAleft1_Cb     Used in Mbaff mode only
  569. #define bTc0_v30_1_Cb                                   235             // Derived from bSv30_1 and bIndexAleft1_Cb     Used in Mbaff mode only
  570.  
  571. #define bTc0_h00_1_Cb                                   236             // Derived from bSh00_1 and bIndexAleft1_Cb     Used in Mbaff mode only
  572. #define bTc0_h01_1_Cb                                   237             //      Derived from bSh01_1 and bIndexAleft1_Cb        Used in Mbaff mode only
  573. #define bTc0_h02_1_Cb                                   238             // Derived from bSh02_1 and bIndexAleft1_Cb     Used in Mbaff mode only
  574. #define bTc0_h03_1_Cb                                   239             // Derived from bSh03_1 and bIndexAleft1_Cb     Used in Mbaff mode only
  575.  
  576. #define bAlphaLeft1_Cr                                  240             // Derived from bIndexAleft1_Cr Used in Mbaff mode only
  577. #define bBetaLeft1_Cr                                   241             // Derived from bIndexBleft1_Cr Used in Mbaff mode only
  578. #define bAlphaTop1_Cr                                   242             // Derived from bIndexAtop1_Cr  Used in Mbaff mode only
  579. #define bBetaTop1_Cr                                    243             // Derived from bIndexBtop1_Cr  Used in Mbaff mode only
  580.  
  581. // Offset 244 - 247 not used           
  582.  
  583. #define bTc0_v00_1_Cr                                   248             // Derived from bSv00_1 and bIndexAleft1_Cr     Used in Mbaff mode only
  584. #define bTc0_v10_1_Cr                                   249             // Derived from bSv10_1 and bIndexAleft1_Cr     Used in Mbaff mode only
  585. #define bTc0_v20_1_Cr                                   250             // Derived from bSv20_1 and bIndexAleft1_Cr     Used in Mbaff mode only
  586. #define bTc0_v30_1_Cr                                   251             // Derived from bSv30_1 and bIndexAleft1_Cr     Used in Mbaff mode only
  587.  
  588. #define bTc0_h00_1_Cr                                   252             // Derived from bSh00_1 and bIndexAleft1_Cr     Used in Mbaff mode only
  589. #define bTc0_h01_1_Cr                                   253             // Derived from bSh01_1 and bIndexAleft1_Cr     Used in Mbaff mode only
  590. #define bTc0_h02_1_Cr                                   254             // Derived from bSh02_1 and bIndexAleft1_Cr     Used in Mbaff mode only
  591. #define bTc0_h03_1_Cr                                   255             // Derived from bSh03_1 and bIndexAleft1_Cr     Used in Mbaff mode only
  592.  
  593.  
  594. #else           // _APPLE is defined
  595.  
  596. //******** Crestline for Apple, progressive only, 88 bytes **********
  597.  
  598. // GRF0
  599. #define HorizOrigin                                             0
  600. #define VertOrigin                                              1
  601. #define BitFlags                                                2               // Bit flags
  602.  
  603. #define wEdgeCntlMap_IntLeftVert                4               // Derived from bbSinternalLeftVert, 1 bit per pixel
  604. #define wEdgeCntlMap_IntMidVert                 6               // Derived from bbSinternalLeftVert
  605. #define wEdgeCntlMap_IntRightVert               8               // Derived from bbSinternalRightVert
  606. #define wEdgeCntlMap_IntTopHorz                 10              // Derived from bbSinternalTopHorz, 1bit per pixel
  607. #define wEdgeCntlMap_IntMidHorz                 12              // Derived from bbSinternalMidHorz
  608. #define wEdgeCntlMap_IntBotHorz                 14              // Derived from bbSinternalBotHorz
  609. #define wEdgeCntlMapA_ExtLeftVert0              16              // Derived from wbSLeft0, 1bit per pixel
  610. #define wEdgeCntlMapB_ExtLeftVert0              18              // Derived from wbSLeft0
  611. #define wEdgeCntlMapA_ExtTopHorz0               20              // Derived from wbSTop0, 1bit per pixel
  612. #define wEdgeCntlMapB_ExtTopHorz0               22              // Derived from wbSTop0
  613.  
  614. #define bAlphaLeft0_Y                                   24              // Derived from bIndexAleft0_Y 
  615. #define bBetaLeft0_Y                                    25              // Derived from bIndexBleft0_Y 
  616. #define bAlphaTop0_Y                                    26              // Derived from bIndexAtop0_Y  
  617. #define bBetaTop0_Y                                             27              // Derived from bIndexBtop0_Y  
  618. #define bAlphaInternal_Y                                28              // Derived from bIndexAinternal_Y      
  619. #define bBetaInternal_Y                                 29              // Derived from bIndexBinternal_Y      
  620.  
  621. // GRF1
  622. #define bTc0_v00_0_Y                                    32              // Derived from bSv00_0 and bIndexAleft0_Y, 4 pixels per tc0
  623. #define bTc0_v10_0_Y                                    33              // Derived from bSv10_0 and bIndexAleft0_Y
  624. #define bTc0_v20_0_Y                                    34              // Derived from bSv20_0 and bIndexAleft0_Y
  625. #define bTc0_v30_0_Y                                    35              // Derived from bSv30_0 and bIndexAleft0_Y
  626. #define bTc0_v01_Y                                              36              // Derived from bSv01 and bIndexAinternal_Y
  627. #define bTc0_v11_Y                                              37              // Derived from bSv11 and bIndexAinternal_Y
  628. #define bTc0_v21_Y                                              38              // Derived from bSv21 and bIndexAinternal_Y
  629. #define bTc0_v31_Y                                              39              // Derived from bSv31 and bIndexAinternal_Y
  630. #define bTc0_v02_Y                                              40              // Derived from bSv02 and bIndexAinternal_Y
  631. #define bTc0_v12_Y                                              41              // Derived from bSv12 and bIndexAinternal_Y
  632. #define bTc0_v22_Y                                              42              // Derived from bSv22 and bIndexAinternal_Y
  633. #define bTc0_v32_Y                                              43              // Derived from bSv32 and bIndexAinternal_Y
  634. #define bTc0_v03_Y                                              44              // Derived from bSv03 and bIndexAinternal_Y
  635. #define bTc0_v13_Y                                              45              // Derived from bSv13 and bIndexAinternal_Y
  636. #define bTc0_v23_Y                                              46              // Derived from bSv23 and bIndexAinternal_Y
  637. #define bTc0_v33_Y                                              47              // Derived from bSv33 and bIndexAinternal_Y
  638.  
  639. #define bTc0_h00_0_Y                                    48              // Derived from bSh00_0 and bIndexAleft0_Y
  640. #define bTc0_h01_0_Y                                    49              // Derived from bSh01_0 and bIndexAleft0_Y
  641. #define bTc0_h02_0_Y                                    50              // Derived from bSh02_0 and bIndexAleft0_Y
  642. #define bTc0_h03_0_Y                                    51              // Derived from bSh03_0 and bIndexAleft0_Y
  643. #define bTc0_h10_Y                                              52              // Derived from bSh10 and bIndexAinternal_Y
  644. #define bTc0_h11_Y                                              53              // Derived from bSh11 and bIndexAinternal_Y
  645. #define bTc0_h12_Y                                              54              // Derived from bSh12 and bIndexAinternal_Y
  646. #define bTc0_h13_Y                                              55              // Derived from bSh13 and bIndexAinternal_Y
  647. #define bTc0_h20_Y                                              56              // Derived from bSh20 and bIndexAinternal_Y
  648. #define bTc0_h21_Y                                              57              // Derived from bSh21 and bIndexAinternal_Y
  649. #define bTc0_h22_Y                                              58              // Derived from bSh22 and bIndexAinternal_Y
  650. #define bTc0_h23_Y                                              59              // Derived from bSh23 and bIndexAinternal_Y
  651. #define bTc0_h30_Y                                              60              // Derived from bSh30 and bIndexAinternal_Y
  652. #define bTc0_h31_Y                                              61              // Derived from bSh31 and bIndexAinternal_Y
  653. #define bTc0_h32_Y                                              62              // Derived from bSh32 and bIndexAinternal_Y
  654. #define bTc0_h33_Y                                              63              // Derived from bSh33 and bIndexAinternal_Y
  655.  
  656. // GRF2,
  657. #define bTc0_v00_0_Cb                                   64              // Derived from bSv00_0 and bIndexAleft0_Cb, 2 pixels per tc0   Left0
  658. #define bTc0_v10_0_Cb                                   65              // Derived from bSv10_0 and bIndexAleft0_Cb    
  659. #define bTc0_v20_0_Cb                                   66              // Derived from bSv20_0 and bIndexAleft0_Cb    
  660. #define bTc0_v30_0_Cb                                   67              // Derived from bSv30_0 and bIndexAleft0_Cb    
  661. #define bTc0_v02_Cb                                             68              // Derived from bSv02 and bIndexAinternal_Cb    MidVert
  662. #define bTc0_v12_Cb                                             69              // Derived from bSv12 and bIndexAinternal_Cb   
  663. #define bTc0_v22_Cb                                             70              // Derived from bSv22 and bIndexAinternal_Cb   
  664. #define bTc0_v32_Cb                                             71              // Derived from bSv32 and bIndexAinternal_Cb   
  665. #define bTc0_h00_0_Cb                                   72              // Derived from bSh00_0 and bIndexAleft0_Cb     Top0
  666. #define bTc0_h01_0_Cb                                   73              // Derived from bSh01_0 and bIndexAleft0_Cb    
  667. #define bTc0_h02_0_Cb                                   74              // Derived from bSh02_0 and bIndexAleft0_Cb    
  668. #define bTc0_h03_0_Cb                                   75              // Derived from bSh03_0 and bIndexAleft0_Cb    
  669. #define bTc0_h20_Cb                                             76              // Derived from bSh20 and bIndexAinternal_Cb    MidHorz
  670. #define bTc0_h21_Cb                                             77              // Derived from bSh21 and bIndexAinternal_Cb   
  671. #define bTc0_h22_Cb                                             78              // Derived from bSh22 and bIndexAinternal_Cb   
  672. #define bTc0_h23_Cb                                             79              // Derived from bSh23 and bIndexAinternal_Cb   
  673.  
  674. #define bAlphaLeft0_Cb                                  80              // Derived from bIndexAleft0_Cb
  675. #define bBetaLeft0_Cb                                   81              // Derived from bIndexBleft0_Cb
  676. #define bAlphaTop0_Cb                                   82              // Derived from bIndexAtop0_Cb
  677. #define bBetaTop0_Cb                                    83              // Derived from bIndexBtop0_Cb
  678. #define bAlphaInternal_Cb                               84              // Derived from bIndexAinternal_Cb
  679. #define bBetaInternal_Cb                                85              // Derived from bIndexBinternal_Cb
  680.  
  681. #define ExtBitFlags                                             86              // Extended bit flags, such as disable ILDB bits
  682.  
  683. // Shared between Cb and Cr
  684. #define bTc0_v00_0_Cr                   bTc0_v00_0_Cb  
  685. #define bTc0_v10_0_Cr               bTc0_v10_0_Cb      
  686. #define bTc0_v20_0_Cr               bTc0_v20_0_Cb      
  687. #define bTc0_v30_0_Cr               bTc0_v30_0_Cb      
  688. #define bTc0_v02_Cr                         bTc0_v02_Cb        
  689. #define bTc0_v12_Cr                         bTc0_v12_Cb        
  690. #define bTc0_v22_Cr                         bTc0_v22_Cb        
  691. #define bTc0_v32_Cr                         bTc0_v32_Cb        
  692. #define bTc0_h00_0_Cr               bTc0_h00_0_Cb      
  693. #define bTc0_h01_0_Cr               bTc0_h01_0_Cb      
  694. #define bTc0_h02_0_Cr               bTc0_h02_0_Cb      
  695. #define bTc0_h03_0_Cr               bTc0_h03_0_Cb      
  696. #define bTc0_h20_Cr                         bTc0_h20_Cb        
  697. #define bTc0_h21_Cr                         bTc0_h21_Cb        
  698. #define bTc0_h22_Cr                         bTc0_h22_Cb        
  699. #define bTc0_h23_Cr                         bTc0_h23_Cb        
  700.                                
  701. #define bAlphaLeft0_Cr              bAlphaLeft0_Cb                 
  702. #define bBetaLeft0_Cr               bBetaLeft0_Cb                  
  703. #define bAlphaTop0_Cr               bAlphaTop0_Cb                  
  704. #define bBetaTop0_Cr                bBetaTop0_Cb                   
  705. #define bAlphaInternal_Cr           bAlphaInternal_Cb      
  706. #define bBetaInternal_Cr            bBetaInternal_Cb       
  707.  
  708.  
  709. #endif
  710.  
  711.  
  712. //========== End of Child Variables ===============================================================
  713.  
  714. #if !defined(COMBINED_KERNEL)
  715. #define ILDB_LABEL(x)   x               // No symbol extension for standalone kernels
  716. #endif
  717.  
  718. #endif  // !defined(__AVC_ILDB_HEADER__)
  719.