| /******************************************************************************** |
| * Marvell GPL License Option |
| * |
| * If you received this File from Marvell, you may opt to use, redistribute and/or |
| * modify this File in accordance with the terms and conditions of the General |
| * Public License Version 2, June 1991 (the "GPL License"), a copy of which is |
| * available along with the File in the license.txt file or by writing to the Free |
| * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or |
| * on the worldwide web at http://www.gnu.org/licenses/gpl.txt. |
| * |
| * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED |
| * WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY |
| * DISCLAIMED. The GPL License provides additional details about this warranty |
| * disclaimer. |
| ******************************************************************************/ |
| |
| ////// |
| /// don't edit! auto-generated by docc: vcache_spec.h |
| //////////////////////////////////////////////////////////// |
| #ifndef vcache_spec_h |
| #define vcache_spec_h (){} |
| |
| |
| #include "ctypes.h" |
| |
| #pragma pack(1) |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifndef _DOCC_H_BITOPS_ |
| #define _DOCC_H_BITOPS_ (){} |
| |
| #define _bSETMASK_(b) ((b)<32 ? (1<<((b)&31)) : 0) |
| #define _NSETMASK_(msb,lsb) (_bSETMASK_((msb)+1)-_bSETMASK_(lsb)) |
| #define _bCLRMASK_(b) (~_bSETMASK_(b)) |
| #define _NCLRMASK_(msb,lsb) (~_NSETMASK_(msb,lsb)) |
| #define _BFGET_(r,msb,lsb) (_NSETMASK_((msb)-(lsb),0)&((r)>>(lsb))) |
| #define _BFSET_(r,msb,lsb,v) do{ (r)&=_NCLRMASK_(msb,lsb); (r)|=_NSETMASK_(msb,lsb)&((v)<<(lsb)); }while(0) |
| |
| #endif |
| |
| |
| |
| ////// |
| /// |
| /// $INTERFACE vcMsgMV biu (4,4) |
| /// ### |
| /// * 8-bit vcMsg return data when ID = F0A64_vcMsgMv |
| /// * [0:7] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 3 mvX |
| /// ### |
| /// * Index of the 4x4 block @ upper-left corner of partition |
| /// ### |
| /// %unsigned 2 mvYL |
| /// ### |
| /// * Block / macroblock partition info |
| /// ### |
| /// %unsigned 3 mvYC |
| /// ### |
| /// * 0: partition is at macroblock level |
| /// * 1: partition is at 8x8 block level |
| /// ### |
| /// %unsigned 3 mv1X |
| /// %unsigned 2 mv1YL |
| /// %unsigned 3 mv1YC |
| /// %unsigned 3 mv2X |
| /// %unsigned 2 mv2YL |
| /// %unsigned 3 mv2YC |
| /// %unsigned 3 mv3X |
| /// %unsigned 2 mv3YL |
| /// %unsigned 3 mv3YC |
| /// ### |
| /// * End vcMsgMV |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_vcMsgMV |
| #define h_vcMsgMV (){} |
| |
| #define BA_vcMsgMV_mvX 0x0000 |
| #define B16vcMsgMV_mvX 0x0000 |
| #define LSb32vcMsgMV_mvX 0 |
| #define LSb16vcMsgMV_mvX 0 |
| #define bvcMsgMV_mvX 3 |
| #define MSK32vcMsgMV_mvX 0x00000007 |
| |
| #define BA_vcMsgMV_mvYL 0x0000 |
| #define B16vcMsgMV_mvYL 0x0000 |
| #define LSb32vcMsgMV_mvYL 3 |
| #define LSb16vcMsgMV_mvYL 3 |
| #define bvcMsgMV_mvYL 2 |
| #define MSK32vcMsgMV_mvYL 0x00000018 |
| |
| #define BA_vcMsgMV_mvYC 0x0000 |
| #define B16vcMsgMV_mvYC 0x0000 |
| #define LSb32vcMsgMV_mvYC 5 |
| #define LSb16vcMsgMV_mvYC 5 |
| #define bvcMsgMV_mvYC 3 |
| #define MSK32vcMsgMV_mvYC 0x000000E0 |
| |
| #define BA_vcMsgMV_mv1X 0x0001 |
| #define B16vcMsgMV_mv1X 0x0000 |
| #define LSb32vcMsgMV_mv1X 8 |
| #define LSb16vcMsgMV_mv1X 8 |
| #define bvcMsgMV_mv1X 3 |
| #define MSK32vcMsgMV_mv1X 0x00000700 |
| |
| #define BA_vcMsgMV_mv1YL 0x0001 |
| #define B16vcMsgMV_mv1YL 0x0000 |
| #define LSb32vcMsgMV_mv1YL 11 |
| #define LSb16vcMsgMV_mv1YL 11 |
| #define bvcMsgMV_mv1YL 2 |
| #define MSK32vcMsgMV_mv1YL 0x00001800 |
| |
| #define BA_vcMsgMV_mv1YC 0x0001 |
| #define B16vcMsgMV_mv1YC 0x0000 |
| #define LSb32vcMsgMV_mv1YC 13 |
| #define LSb16vcMsgMV_mv1YC 13 |
| #define bvcMsgMV_mv1YC 3 |
| #define MSK32vcMsgMV_mv1YC 0x0000E000 |
| |
| #define BA_vcMsgMV_mv2X 0x0002 |
| #define B16vcMsgMV_mv2X 0x0002 |
| #define LSb32vcMsgMV_mv2X 16 |
| #define LSb16vcMsgMV_mv2X 0 |
| #define bvcMsgMV_mv2X 3 |
| #define MSK32vcMsgMV_mv2X 0x00070000 |
| |
| #define BA_vcMsgMV_mv2YL 0x0002 |
| #define B16vcMsgMV_mv2YL 0x0002 |
| #define LSb32vcMsgMV_mv2YL 19 |
| #define LSb16vcMsgMV_mv2YL 3 |
| #define bvcMsgMV_mv2YL 2 |
| #define MSK32vcMsgMV_mv2YL 0x00180000 |
| |
| #define BA_vcMsgMV_mv2YC 0x0002 |
| #define B16vcMsgMV_mv2YC 0x0002 |
| #define LSb32vcMsgMV_mv2YC 21 |
| #define LSb16vcMsgMV_mv2YC 5 |
| #define bvcMsgMV_mv2YC 3 |
| #define MSK32vcMsgMV_mv2YC 0x00E00000 |
| |
| #define BA_vcMsgMV_mv3X 0x0003 |
| #define B16vcMsgMV_mv3X 0x0002 |
| #define LSb32vcMsgMV_mv3X 24 |
| #define LSb16vcMsgMV_mv3X 8 |
| #define bvcMsgMV_mv3X 3 |
| #define MSK32vcMsgMV_mv3X 0x07000000 |
| |
| #define BA_vcMsgMV_mv3YL 0x0003 |
| #define B16vcMsgMV_mv3YL 0x0002 |
| #define LSb32vcMsgMV_mv3YL 27 |
| #define LSb16vcMsgMV_mv3YL 11 |
| #define bvcMsgMV_mv3YL 2 |
| #define MSK32vcMsgMV_mv3YL 0x18000000 |
| |
| #define BA_vcMsgMV_mv3YC 0x0003 |
| #define B16vcMsgMV_mv3YC 0x0002 |
| #define LSb32vcMsgMV_mv3YC 29 |
| #define LSb16vcMsgMV_mv3YC 13 |
| #define bvcMsgMV_mv3YC 3 |
| #define MSK32vcMsgMV_mv3YC 0xE0000000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_vcMsgMV { |
| /////////////////////////////////////////////////////////// |
| #define GET32vcMsgMV_mvX(r32) _BFGET_(r32, 2, 0) |
| #define SET32vcMsgMV_mvX(r32,v) _BFSET_(r32, 2, 0,v) |
| #define GET16vcMsgMV_mvX(r16) _BFGET_(r16, 2, 0) |
| #define SET16vcMsgMV_mvX(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32vcMsgMV_mvYL(r32) _BFGET_(r32, 4, 3) |
| #define SET32vcMsgMV_mvYL(r32,v) _BFSET_(r32, 4, 3,v) |
| #define GET16vcMsgMV_mvYL(r16) _BFGET_(r16, 4, 3) |
| #define SET16vcMsgMV_mvYL(r16,v) _BFSET_(r16, 4, 3,v) |
| |
| #define GET32vcMsgMV_mvYC(r32) _BFGET_(r32, 7, 5) |
| #define SET32vcMsgMV_mvYC(r32,v) _BFSET_(r32, 7, 5,v) |
| #define GET16vcMsgMV_mvYC(r16) _BFGET_(r16, 7, 5) |
| #define SET16vcMsgMV_mvYC(r16,v) _BFSET_(r16, 7, 5,v) |
| |
| #define GET32vcMsgMV_mv1X(r32) _BFGET_(r32,10, 8) |
| #define SET32vcMsgMV_mv1X(r32,v) _BFSET_(r32,10, 8,v) |
| #define GET16vcMsgMV_mv1X(r16) _BFGET_(r16,10, 8) |
| #define SET16vcMsgMV_mv1X(r16,v) _BFSET_(r16,10, 8,v) |
| |
| #define GET32vcMsgMV_mv1YL(r32) _BFGET_(r32,12,11) |
| #define SET32vcMsgMV_mv1YL(r32,v) _BFSET_(r32,12,11,v) |
| #define GET16vcMsgMV_mv1YL(r16) _BFGET_(r16,12,11) |
| #define SET16vcMsgMV_mv1YL(r16,v) _BFSET_(r16,12,11,v) |
| |
| #define GET32vcMsgMV_mv1YC(r32) _BFGET_(r32,15,13) |
| #define SET32vcMsgMV_mv1YC(r32,v) _BFSET_(r32,15,13,v) |
| #define GET16vcMsgMV_mv1YC(r16) _BFGET_(r16,15,13) |
| #define SET16vcMsgMV_mv1YC(r16,v) _BFSET_(r16,15,13,v) |
| |
| #define GET32vcMsgMV_mv2X(r32) _BFGET_(r32,18,16) |
| #define SET32vcMsgMV_mv2X(r32,v) _BFSET_(r32,18,16,v) |
| #define GET16vcMsgMV_mv2X(r16) _BFGET_(r16, 2, 0) |
| #define SET16vcMsgMV_mv2X(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32vcMsgMV_mv2YL(r32) _BFGET_(r32,20,19) |
| #define SET32vcMsgMV_mv2YL(r32,v) _BFSET_(r32,20,19,v) |
| #define GET16vcMsgMV_mv2YL(r16) _BFGET_(r16, 4, 3) |
| #define SET16vcMsgMV_mv2YL(r16,v) _BFSET_(r16, 4, 3,v) |
| |
| #define GET32vcMsgMV_mv2YC(r32) _BFGET_(r32,23,21) |
| #define SET32vcMsgMV_mv2YC(r32,v) _BFSET_(r32,23,21,v) |
| #define GET16vcMsgMV_mv2YC(r16) _BFGET_(r16, 7, 5) |
| #define SET16vcMsgMV_mv2YC(r16,v) _BFSET_(r16, 7, 5,v) |
| |
| #define GET32vcMsgMV_mv3X(r32) _BFGET_(r32,26,24) |
| #define SET32vcMsgMV_mv3X(r32,v) _BFSET_(r32,26,24,v) |
| #define GET16vcMsgMV_mv3X(r16) _BFGET_(r16,10, 8) |
| #define SET16vcMsgMV_mv3X(r16,v) _BFSET_(r16,10, 8,v) |
| |
| #define GET32vcMsgMV_mv3YL(r32) _BFGET_(r32,28,27) |
| #define SET32vcMsgMV_mv3YL(r32,v) _BFSET_(r32,28,27,v) |
| #define GET16vcMsgMV_mv3YL(r16) _BFGET_(r16,12,11) |
| #define SET16vcMsgMV_mv3YL(r16,v) _BFSET_(r16,12,11,v) |
| |
| #define GET32vcMsgMV_mv3YC(r32) _BFGET_(r32,31,29) |
| #define SET32vcMsgMV_mv3YC(r32,v) _BFSET_(r32,31,29,v) |
| #define GET16vcMsgMV_mv3YC(r16) _BFGET_(r16,15,13) |
| #define SET16vcMsgMV_mv3YC(r16,v) _BFSET_(r16,15,13,v) |
| |
| UNSG32 u_mvX : 3; |
| UNSG32 u_mvYL : 2; |
| UNSG32 u_mvYC : 3; |
| UNSG32 u_mv1X : 3; |
| UNSG32 u_mv1YL : 2; |
| UNSG32 u_mv1YC : 3; |
| UNSG32 u_mv2X : 3; |
| UNSG32 u_mv2YL : 2; |
| UNSG32 u_mv2YC : 3; |
| UNSG32 u_mv3X : 3; |
| UNSG32 u_mv3YL : 2; |
| UNSG32 u_mv3YC : 3; |
| /////////////////////////////////////////////////////////// |
| } SIE_vcMsgMV; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 vcMsgMV_drvrd(SIE_vcMsgMV *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 vcMsgMV_drvwr(SIE_vcMsgMV *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void vcMsgMV_reset(SIE_vcMsgMV *p); |
| SIGN32 vcMsgMV_cmp (SIE_vcMsgMV *p, SIE_vcMsgMV *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define vcMsgMV_check(p,pie,pfx,hLOG) vcMsgMV_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define vcMsgMV_print(p, pfx,hLOG) vcMsgMV_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: vcMsgMV |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE vcMsgCMD biu (4,4) |
| /// ### |
| /// * 16-bit vcMsg command parameter |
| /// * [0:31] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 4 BLK |
| /// ### |
| /// * Index of the 4x4 block @ upper-left corner of partition |
| /// ### |
| /// %unsigned 2 partition |
| /// : 1mv 0x0 |
| /// : 2mvLR 0x1 |
| /// : 2mvTB 0x2 |
| /// : 4mv 0x3 |
| /// ### |
| /// * Block / macroblock partition info |
| /// ### |
| /// %unsigned 1 level |
| /// : mb 0x0 |
| /// : blk8x8 0x1 |
| /// ### |
| /// * 0: partition is at macroblock level |
| /// * 1: partition is at 8x8 block level |
| /// ### |
| /// %unsigned 1 RSVD 0x1 |
| /// ### |
| /// * To ensure same defines as in Nloc.category |
| /// * End vcMsgCMD |
| /// ### |
| /// %% 24 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 8b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_vcMsgCMD |
| #define h_vcMsgCMD (){} |
| |
| #define BA_vcMsgCMD_BLK 0x0000 |
| #define B16vcMsgCMD_BLK 0x0000 |
| #define LSb32vcMsgCMD_BLK 0 |
| #define LSb16vcMsgCMD_BLK 0 |
| #define bvcMsgCMD_BLK 4 |
| #define MSK32vcMsgCMD_BLK 0x0000000F |
| |
| #define BA_vcMsgCMD_partition 0x0000 |
| #define B16vcMsgCMD_partition 0x0000 |
| #define LSb32vcMsgCMD_partition 4 |
| #define LSb16vcMsgCMD_partition 4 |
| #define bvcMsgCMD_partition 2 |
| #define MSK32vcMsgCMD_partition 0x00000030 |
| #define vcMsgCMD_partition_1mv 0x0 |
| #define vcMsgCMD_partition_2mvLR 0x1 |
| #define vcMsgCMD_partition_2mvTB 0x2 |
| #define vcMsgCMD_partition_4mv 0x3 |
| |
| #define BA_vcMsgCMD_level 0x0000 |
| #define B16vcMsgCMD_level 0x0000 |
| #define LSb32vcMsgCMD_level 6 |
| #define LSb16vcMsgCMD_level 6 |
| #define bvcMsgCMD_level 1 |
| #define MSK32vcMsgCMD_level 0x00000040 |
| #define vcMsgCMD_level_mb 0x0 |
| #define vcMsgCMD_level_blk8x8 0x1 |
| |
| #define BA_vcMsgCMD_RSVD 0x0000 |
| #define B16vcMsgCMD_RSVD 0x0000 |
| #define LSb32vcMsgCMD_RSVD 7 |
| #define LSb16vcMsgCMD_RSVD 7 |
| #define bvcMsgCMD_RSVD 1 |
| #define MSK32vcMsgCMD_RSVD 0x00000080 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_vcMsgCMD { |
| /////////////////////////////////////////////////////////// |
| #define GET32vcMsgCMD_BLK(r32) _BFGET_(r32, 3, 0) |
| #define SET32vcMsgCMD_BLK(r32,v) _BFSET_(r32, 3, 0,v) |
| #define GET16vcMsgCMD_BLK(r16) _BFGET_(r16, 3, 0) |
| #define SET16vcMsgCMD_BLK(r16,v) _BFSET_(r16, 3, 0,v) |
| |
| #define GET32vcMsgCMD_partition(r32) _BFGET_(r32, 5, 4) |
| #define SET32vcMsgCMD_partition(r32,v) _BFSET_(r32, 5, 4,v) |
| #define GET16vcMsgCMD_partition(r16) _BFGET_(r16, 5, 4) |
| #define SET16vcMsgCMD_partition(r16,v) _BFSET_(r16, 5, 4,v) |
| |
| #define GET32vcMsgCMD_level(r32) _BFGET_(r32, 6, 6) |
| #define SET32vcMsgCMD_level(r32,v) _BFSET_(r32, 6, 6,v) |
| #define GET16vcMsgCMD_level(r16) _BFGET_(r16, 6, 6) |
| #define SET16vcMsgCMD_level(r16,v) _BFSET_(r16, 6, 6,v) |
| |
| #define GET32vcMsgCMD_RSVD(r32) _BFGET_(r32, 7, 7) |
| #define SET32vcMsgCMD_RSVD(r32,v) _BFSET_(r32, 7, 7,v) |
| #define GET16vcMsgCMD_RSVD(r16) _BFGET_(r16, 7, 7) |
| #define SET16vcMsgCMD_RSVD(r16,v) _BFSET_(r16, 7, 7,v) |
| |
| UNSG32 u_BLK : 4; |
| UNSG32 u_partition : 2; |
| UNSG32 u_level : 1; |
| UNSG32 u_RSVD : 1; |
| UNSG32 RSVDx0_b8 : 24; |
| /////////////////////////////////////////////////////////// |
| } SIE_vcMsgCMD; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 vcMsgCMD_drvrd(SIE_vcMsgCMD *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 vcMsgCMD_drvwr(SIE_vcMsgCMD *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void vcMsgCMD_reset(SIE_vcMsgCMD *p); |
| SIGN32 vcMsgCMD_cmp (SIE_vcMsgCMD *p, SIE_vcMsgCMD *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define vcMsgCMD_check(p,pie,pfx,hLOG) vcMsgCMD_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define vcMsgCMD_print(p, pfx,hLOG) vcMsgCMD_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: vcMsgCMD |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE CacheMSG (4,4) |
| /// ### |
| /// * Message to setup vCache prefetching. |
| /// * [00:31] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 11 xLoc |
| /// ### |
| /// * Exact reference region horizontal location (in pixel) |
| /// ### |
| /// %unsigned 5 xPix |
| /// ### |
| /// * Exact reference region horizontal size (in pixel) |
| /// * 0 represents 32 |
| /// ### |
| /// %unsigned 11 yLoc |
| /// ### |
| /// * Exact reference region vertical location (in pixel) |
| /// ### |
| /// %unsigned 5 yPix |
| /// ### |
| /// * Exact reference region vertical size (in pixel) |
| /// * 0 represents 32 |
| /// * [32:63] |
| /// ### |
| /// @ 0x00004 (P) |
| /// %unsigned 5 xLocExp |
| /// ### |
| /// * Expansion horizontal offset (in pixel) |
| /// ### |
| /// %unsigned 3 xPixExp |
| /// ### |
| /// * Expansion horizontal size (in 4-pixel unit) |
| /// * 0 represents 8 |
| /// ### |
| /// %unsigned 5 yLocExp |
| /// ### |
| /// * Expansion vertical offset (in pixel) |
| /// ### |
| /// %unsigned 3 yPixExp |
| /// ### |
| /// * Expansion vertical size (in 4-pixel unit)0 represents 8 |
| /// ### |
| /// %unsigned 6 rBID |
| /// ### |
| /// * Reference buffer ID, last 1b indicates access mode: |
| /// * 0: frame/progressive or top field |
| /// * 1: bottom field |
| /// ### |
| /// %unsigned 1 uv |
| /// ### |
| /// * 0/1 for Y or UV reference region |
| /// ### |
| /// %unsigned 1 fldMB |
| /// ### |
| /// * 0/1 for frame or field MB(-pair) |
| /// ### |
| /// %unsigned 2 hint |
| /// : bypass 0x0 |
| /// ### |
| /// * Force to bypass cache |
| /// ### |
| /// : FrmX 0x1 |
| /// ### |
| /// * Use FID & xLoc to decide cache way |
| /// ### |
| /// : FrmY 0x2 |
| /// ### |
| /// * Use FID & yLoc to decide cache way |
| /// ### |
| /// : XY 0x3 |
| /// ### |
| /// * Use xLoc & yLoc to decide cache way |
| /// ### |
| /// %unsigned 6 descID |
| /// ### |
| /// * Output transfer descriptor ID |
| /// * A descriptor shall have a (non-zero) semaphore ID to check not full before transfer, destination address and stride (in 4x4) |
| /// ### |
| /// : CFG 0x3F |
| /// ### |
| /// * vCache configuration message |
| /// * End of CacheMSG |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_CacheMSG |
| #define h_CacheMSG (){} |
| |
| #define BA_CacheMSG_xLoc 0x0000 |
| #define B16CacheMSG_xLoc 0x0000 |
| #define LSb32CacheMSG_xLoc 0 |
| #define LSb16CacheMSG_xLoc 0 |
| #define bCacheMSG_xLoc 11 |
| #define MSK32CacheMSG_xLoc 0x000007FF |
| |
| #define BA_CacheMSG_xPix 0x0001 |
| #define B16CacheMSG_xPix 0x0000 |
| #define LSb32CacheMSG_xPix 11 |
| #define LSb16CacheMSG_xPix 11 |
| #define bCacheMSG_xPix 5 |
| #define MSK32CacheMSG_xPix 0x0000F800 |
| |
| #define BA_CacheMSG_yLoc 0x0002 |
| #define B16CacheMSG_yLoc 0x0002 |
| #define LSb32CacheMSG_yLoc 16 |
| #define LSb16CacheMSG_yLoc 0 |
| #define bCacheMSG_yLoc 11 |
| #define MSK32CacheMSG_yLoc 0x07FF0000 |
| |
| #define BA_CacheMSG_yPix 0x0003 |
| #define B16CacheMSG_yPix 0x0002 |
| #define LSb32CacheMSG_yPix 27 |
| #define LSb16CacheMSG_yPix 11 |
| #define bCacheMSG_yPix 5 |
| #define MSK32CacheMSG_yPix 0xF8000000 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_CacheMSG_xLocExp 0x0004 |
| #define B16CacheMSG_xLocExp 0x0004 |
| #define LSb32CacheMSG_xLocExp 0 |
| #define LSb16CacheMSG_xLocExp 0 |
| #define bCacheMSG_xLocExp 5 |
| #define MSK32CacheMSG_xLocExp 0x0000001F |
| |
| #define BA_CacheMSG_xPixExp 0x0004 |
| #define B16CacheMSG_xPixExp 0x0004 |
| #define LSb32CacheMSG_xPixExp 5 |
| #define LSb16CacheMSG_xPixExp 5 |
| #define bCacheMSG_xPixExp 3 |
| #define MSK32CacheMSG_xPixExp 0x000000E0 |
| |
| #define BA_CacheMSG_yLocExp 0x0005 |
| #define B16CacheMSG_yLocExp 0x0004 |
| #define LSb32CacheMSG_yLocExp 8 |
| #define LSb16CacheMSG_yLocExp 8 |
| #define bCacheMSG_yLocExp 5 |
| #define MSK32CacheMSG_yLocExp 0x00001F00 |
| |
| #define BA_CacheMSG_yPixExp 0x0005 |
| #define B16CacheMSG_yPixExp 0x0004 |
| #define LSb32CacheMSG_yPixExp 13 |
| #define LSb16CacheMSG_yPixExp 13 |
| #define bCacheMSG_yPixExp 3 |
| #define MSK32CacheMSG_yPixExp 0x0000E000 |
| |
| #define BA_CacheMSG_rBID 0x0006 |
| #define B16CacheMSG_rBID 0x0006 |
| #define LSb32CacheMSG_rBID 16 |
| #define LSb16CacheMSG_rBID 0 |
| #define bCacheMSG_rBID 6 |
| #define MSK32CacheMSG_rBID 0x003F0000 |
| |
| #define BA_CacheMSG_uv 0x0006 |
| #define B16CacheMSG_uv 0x0006 |
| #define LSb32CacheMSG_uv 22 |
| #define LSb16CacheMSG_uv 6 |
| #define bCacheMSG_uv 1 |
| #define MSK32CacheMSG_uv 0x00400000 |
| |
| #define BA_CacheMSG_fldMB 0x0006 |
| #define B16CacheMSG_fldMB 0x0006 |
| #define LSb32CacheMSG_fldMB 23 |
| #define LSb16CacheMSG_fldMB 7 |
| #define bCacheMSG_fldMB 1 |
| #define MSK32CacheMSG_fldMB 0x00800000 |
| |
| #define BA_CacheMSG_hint 0x0007 |
| #define B16CacheMSG_hint 0x0006 |
| #define LSb32CacheMSG_hint 24 |
| #define LSb16CacheMSG_hint 8 |
| #define bCacheMSG_hint 2 |
| #define MSK32CacheMSG_hint 0x03000000 |
| #define CacheMSG_hint_bypass 0x0 |
| #define CacheMSG_hint_FrmX 0x1 |
| #define CacheMSG_hint_FrmY 0x2 |
| #define CacheMSG_hint_XY 0x3 |
| |
| #define BA_CacheMSG_descID 0x0007 |
| #define B16CacheMSG_descID 0x0006 |
| #define LSb32CacheMSG_descID 26 |
| #define LSb16CacheMSG_descID 10 |
| #define bCacheMSG_descID 6 |
| #define MSK32CacheMSG_descID 0xFC000000 |
| #define CacheMSG_descID_CFG 0x3F |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_CacheMSG { |
| /////////////////////////////////////////////////////////// |
| #define GET32CacheMSG_xLoc(r32) _BFGET_(r32,10, 0) |
| #define SET32CacheMSG_xLoc(r32,v) _BFSET_(r32,10, 0,v) |
| #define GET16CacheMSG_xLoc(r16) _BFGET_(r16,10, 0) |
| #define SET16CacheMSG_xLoc(r16,v) _BFSET_(r16,10, 0,v) |
| |
| #define GET32CacheMSG_xPix(r32) _BFGET_(r32,15,11) |
| #define SET32CacheMSG_xPix(r32,v) _BFSET_(r32,15,11,v) |
| #define GET16CacheMSG_xPix(r16) _BFGET_(r16,15,11) |
| #define SET16CacheMSG_xPix(r16,v) _BFSET_(r16,15,11,v) |
| |
| #define GET32CacheMSG_yLoc(r32) _BFGET_(r32,26,16) |
| #define SET32CacheMSG_yLoc(r32,v) _BFSET_(r32,26,16,v) |
| #define GET16CacheMSG_yLoc(r16) _BFGET_(r16,10, 0) |
| #define SET16CacheMSG_yLoc(r16,v) _BFSET_(r16,10, 0,v) |
| |
| #define GET32CacheMSG_yPix(r32) _BFGET_(r32,31,27) |
| #define SET32CacheMSG_yPix(r32,v) _BFSET_(r32,31,27,v) |
| #define GET16CacheMSG_yPix(r16) _BFGET_(r16,15,11) |
| #define SET16CacheMSG_yPix(r16,v) _BFSET_(r16,15,11,v) |
| |
| UNSG32 u_xLoc : 11; |
| UNSG32 u_xPix : 5; |
| UNSG32 u_yLoc : 11; |
| UNSG32 u_yPix : 5; |
| /////////////////////////////////////////////////////////// |
| #define GET32CacheMSG_xLocExp(r32) _BFGET_(r32, 4, 0) |
| #define SET32CacheMSG_xLocExp(r32,v) _BFSET_(r32, 4, 0,v) |
| #define GET16CacheMSG_xLocExp(r16) _BFGET_(r16, 4, 0) |
| #define SET16CacheMSG_xLocExp(r16,v) _BFSET_(r16, 4, 0,v) |
| |
| #define GET32CacheMSG_xPixExp(r32) _BFGET_(r32, 7, 5) |
| #define SET32CacheMSG_xPixExp(r32,v) _BFSET_(r32, 7, 5,v) |
| #define GET16CacheMSG_xPixExp(r16) _BFGET_(r16, 7, 5) |
| #define SET16CacheMSG_xPixExp(r16,v) _BFSET_(r16, 7, 5,v) |
| |
| #define GET32CacheMSG_yLocExp(r32) _BFGET_(r32,12, 8) |
| #define SET32CacheMSG_yLocExp(r32,v) _BFSET_(r32,12, 8,v) |
| #define GET16CacheMSG_yLocExp(r16) _BFGET_(r16,12, 8) |
| #define SET16CacheMSG_yLocExp(r16,v) _BFSET_(r16,12, 8,v) |
| |
| #define GET32CacheMSG_yPixExp(r32) _BFGET_(r32,15,13) |
| #define SET32CacheMSG_yPixExp(r32,v) _BFSET_(r32,15,13,v) |
| #define GET16CacheMSG_yPixExp(r16) _BFGET_(r16,15,13) |
| #define SET16CacheMSG_yPixExp(r16,v) _BFSET_(r16,15,13,v) |
| |
| #define GET32CacheMSG_rBID(r32) _BFGET_(r32,21,16) |
| #define SET32CacheMSG_rBID(r32,v) _BFSET_(r32,21,16,v) |
| #define GET16CacheMSG_rBID(r16) _BFGET_(r16, 5, 0) |
| #define SET16CacheMSG_rBID(r16,v) _BFSET_(r16, 5, 0,v) |
| |
| #define GET32CacheMSG_uv(r32) _BFGET_(r32,22,22) |
| #define SET32CacheMSG_uv(r32,v) _BFSET_(r32,22,22,v) |
| #define GET16CacheMSG_uv(r16) _BFGET_(r16, 6, 6) |
| #define SET16CacheMSG_uv(r16,v) _BFSET_(r16, 6, 6,v) |
| |
| #define GET32CacheMSG_fldMB(r32) _BFGET_(r32,23,23) |
| #define SET32CacheMSG_fldMB(r32,v) _BFSET_(r32,23,23,v) |
| #define GET16CacheMSG_fldMB(r16) _BFGET_(r16, 7, 7) |
| #define SET16CacheMSG_fldMB(r16,v) _BFSET_(r16, 7, 7,v) |
| |
| #define GET32CacheMSG_hint(r32) _BFGET_(r32,25,24) |
| #define SET32CacheMSG_hint(r32,v) _BFSET_(r32,25,24,v) |
| #define GET16CacheMSG_hint(r16) _BFGET_(r16, 9, 8) |
| #define SET16CacheMSG_hint(r16,v) _BFSET_(r16, 9, 8,v) |
| |
| #define GET32CacheMSG_descID(r32) _BFGET_(r32,31,26) |
| #define SET32CacheMSG_descID(r32,v) _BFSET_(r32,31,26,v) |
| #define GET16CacheMSG_descID(r16) _BFGET_(r16,15,10) |
| #define SET16CacheMSG_descID(r16,v) _BFSET_(r16,15,10,v) |
| |
| UNSG32 u_xLocExp : 5; |
| UNSG32 u_xPixExp : 3; |
| UNSG32 u_yLocExp : 5; |
| UNSG32 u_yPixExp : 3; |
| UNSG32 u_rBID : 6; |
| UNSG32 u_uv : 1; |
| UNSG32 u_fldMB : 1; |
| UNSG32 u_hint : 2; |
| UNSG32 u_descID : 6; |
| /////////////////////////////////////////////////////////// |
| } SIE_CacheMSG; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 CacheMSG_drvrd(SIE_CacheMSG *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 CacheMSG_drvwr(SIE_CacheMSG *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void CacheMSG_reset(SIE_CacheMSG *p); |
| SIGN32 CacheMSG_cmp (SIE_CacheMSG *p, SIE_CacheMSG *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define CacheMSG_check(p,pie,pfx,hLOG) CacheMSG_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define CacheMSG_print(p, pfx,hLOG) CacheMSG_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: CacheMSG |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE dirMvScale biu (4,4) |
| /// ### |
| /// * Scaling factors for temporal direct MV calculation |
| /// * [0:31] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %signed 12 factor |
| /// ### |
| /// * = clip(-1024, 1023, (tb*tx+32)>>6) |
| /// ### |
| /// %unsigned 20 RSVD20 |
| /// ### |
| /// * pad to 32 bits |
| /// * [32:63] |
| /// ### |
| /// @ 0x00004 (P) |
| /// %unsigned 32 RSVD32 |
| /// ### |
| /// * pad to 64 bits |
| /// * End dirMvScale |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_dirMvScale |
| #define h_dirMvScale (){} |
| |
| #define BA_dirMvScale_factor 0x0000 |
| #define B16dirMvScale_factor 0x0000 |
| #define LSb32dirMvScale_factor 0 |
| #define LSb16dirMvScale_factor 0 |
| #define bdirMvScale_factor 12 |
| #define MSK32dirMvScale_factor 0x00000FFF |
| |
| #define BA_dirMvScale_RSVD20 0x0001 |
| #define B16dirMvScale_RSVD20 0x0000 |
| #define LSb32dirMvScale_RSVD20 12 |
| #define LSb16dirMvScale_RSVD20 12 |
| #define bdirMvScale_RSVD20 20 |
| #define MSK32dirMvScale_RSVD20 0xFFFFF000 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_dirMvScale_RSVD32 0x0004 |
| #define B16dirMvScale_RSVD32 0x0004 |
| #define LSb32dirMvScale_RSVD32 0 |
| #define LSb16dirMvScale_RSVD32 0 |
| #define bdirMvScale_RSVD32 32 |
| #define MSK32dirMvScale_RSVD32 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_dirMvScale { |
| /////////////////////////////////////////////////////////// |
| #define GET32dirMvScale_factor(r32) _BFGET_(r32,11, 0) |
| #define SET32dirMvScale_factor(r32,v) _BFSET_(r32,11, 0,v) |
| #define GET16dirMvScale_factor(r16) _BFGET_(r16,11, 0) |
| #define SET16dirMvScale_factor(r16,v) _BFSET_(r16,11, 0,v) |
| |
| #define GET32dirMvScale_RSVD20(r32) _BFGET_(r32,31,12) |
| #define SET32dirMvScale_RSVD20(r32,v) _BFSET_(r32,31,12,v) |
| |
| UNSG32 s_factor : 12; |
| UNSG32 u_RSVD20 : 20; |
| /////////////////////////////////////////////////////////// |
| #define GET32dirMvScale_RSVD32(r32) _BFGET_(r32,31, 0) |
| #define SET32dirMvScale_RSVD32(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_RSVD32 : 32; |
| /////////////////////////////////////////////////////////// |
| } SIE_dirMvScale; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 dirMvScale_drvrd(SIE_dirMvScale *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 dirMvScale_drvwr(SIE_dirMvScale *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void dirMvScale_reset(SIE_dirMvScale *p); |
| SIGN32 dirMvScale_cmp (SIE_dirMvScale *p, SIE_dirMvScale *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define dirMvScale_check(p,pie,pfx,hLOG) dirMvScale_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define dirMvScale_print(p, pfx,hLOG) dirMvScale_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: dirMvScale |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE avsDirMvScale biu (4,4) |
| /// ### |
| /// * Scaling factors for temporal direct MV calculation for AVS |
| /// * [0:31] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 16 BlockDistanceFw |
| /// ### |
| /// * Block Distance between current block and forward reference block. |
| /// ### |
| /// %unsigned 16 BlockDistanceBw |
| /// ### |
| /// * Block Distance between backward reference block and current block. |
| /// * [32:63] |
| /// ### |
| /// @ 0x00004 (P) |
| /// %unsigned 16 invBlockDistanceRef |
| /// ### |
| /// * 16384/BlockDistanceRef, where BlockDistanceRef is the block distance between backward reference block and reference block of the co-located block. |
| /// ### |
| /// %unsigned 16 RSVD16 |
| /// ### |
| /// * pad to 64 bits |
| /// * End avsDirMvScale |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_avsDirMvScale |
| #define h_avsDirMvScale (){} |
| |
| #define BA_avsDirMvScale_BlockDistanceFw 0x0000 |
| #define B16avsDirMvScale_BlockDistanceFw 0x0000 |
| #define LSb32avsDirMvScale_BlockDistanceFw 0 |
| #define LSb16avsDirMvScale_BlockDistanceFw 0 |
| #define bavsDirMvScale_BlockDistanceFw 16 |
| #define MSK32avsDirMvScale_BlockDistanceFw 0x0000FFFF |
| |
| #define BA_avsDirMvScale_BlockDistanceBw 0x0002 |
| #define B16avsDirMvScale_BlockDistanceBw 0x0002 |
| #define LSb32avsDirMvScale_BlockDistanceBw 16 |
| #define LSb16avsDirMvScale_BlockDistanceBw 0 |
| #define bavsDirMvScale_BlockDistanceBw 16 |
| #define MSK32avsDirMvScale_BlockDistanceBw 0xFFFF0000 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_avsDirMvScale_invBlockDistanceRef 0x0004 |
| #define B16avsDirMvScale_invBlockDistanceRef 0x0004 |
| #define LSb32avsDirMvScale_invBlockDistanceRef 0 |
| #define LSb16avsDirMvScale_invBlockDistanceRef 0 |
| #define bavsDirMvScale_invBlockDistanceRef 16 |
| #define MSK32avsDirMvScale_invBlockDistanceRef 0x0000FFFF |
| |
| #define BA_avsDirMvScale_RSVD16 0x0006 |
| #define B16avsDirMvScale_RSVD16 0x0006 |
| #define LSb32avsDirMvScale_RSVD16 16 |
| #define LSb16avsDirMvScale_RSVD16 0 |
| #define bavsDirMvScale_RSVD16 16 |
| #define MSK32avsDirMvScale_RSVD16 0xFFFF0000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_avsDirMvScale { |
| /////////////////////////////////////////////////////////// |
| #define GET32avsDirMvScale_BlockDistanceFw(r32) _BFGET_(r32,15, 0) |
| #define SET32avsDirMvScale_BlockDistanceFw(r32,v) _BFSET_(r32,15, 0,v) |
| #define GET16avsDirMvScale_BlockDistanceFw(r16) _BFGET_(r16,15, 0) |
| #define SET16avsDirMvScale_BlockDistanceFw(r16,v) _BFSET_(r16,15, 0,v) |
| |
| #define GET32avsDirMvScale_BlockDistanceBw(r32) _BFGET_(r32,31,16) |
| #define SET32avsDirMvScale_BlockDistanceBw(r32,v) _BFSET_(r32,31,16,v) |
| #define GET16avsDirMvScale_BlockDistanceBw(r16) _BFGET_(r16,15, 0) |
| #define SET16avsDirMvScale_BlockDistanceBw(r16,v) _BFSET_(r16,15, 0,v) |
| |
| UNSG32 u_BlockDistanceFw : 16; |
| UNSG32 u_BlockDistanceBw : 16; |
| /////////////////////////////////////////////////////////// |
| #define GET32avsDirMvScale_invBlockDistanceRef(r32) _BFGET_(r32,15, 0) |
| #define SET32avsDirMvScale_invBlockDistanceRef(r32,v) _BFSET_(r32,15, 0,v) |
| #define GET16avsDirMvScale_invBlockDistanceRef(r16) _BFGET_(r16,15, 0) |
| #define SET16avsDirMvScale_invBlockDistanceRef(r16,v) _BFSET_(r16,15, 0,v) |
| |
| #define GET32avsDirMvScale_RSVD16(r32) _BFGET_(r32,31,16) |
| #define SET32avsDirMvScale_RSVD16(r32,v) _BFSET_(r32,31,16,v) |
| #define GET16avsDirMvScale_RSVD16(r16) _BFGET_(r16,15, 0) |
| #define SET16avsDirMvScale_RSVD16(r16,v) _BFSET_(r16,15, 0,v) |
| |
| UNSG32 u_invBlockDistanceRef : 16; |
| UNSG32 u_RSVD16 : 16; |
| /////////////////////////////////////////////////////////// |
| } SIE_avsDirMvScale; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 avsDirMvScale_drvrd(SIE_avsDirMvScale *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 avsDirMvScale_drvwr(SIE_avsDirMvScale *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void avsDirMvScale_reset(SIE_avsDirMvScale *p); |
| SIGN32 avsDirMvScale_cmp (SIE_avsDirMvScale *p, SIE_avsDirMvScale *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define avsDirMvScale_check(p,pie,pfx,hLOG) avsDirMvScale_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define avsDirMvScale_print(p, pfx,hLOG) avsDirMvScale_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: avsDirMvScale |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE BitOpX4 biu (4,4) |
| /// ### |
| /// * Operator format for BitOp extension |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 6 idx |
| /// ### |
| /// * rS[idx] or xT[idx] is used as source bit |
| /// * In case src==rS, idx[5:4] specifies the operation mode: |
| /// * idx[5:4]==2'b0x: output is from rS |
| /// * idx[5:4]==2'b10: output bit is forced to 0 |
| /// * idx[5:4]==2'b11: output bit is forced to 1 |
| /// ### |
| /// %unsigned 1 src |
| /// : xT 0x0 |
| /// : rS 0x1 |
| /// ### |
| /// * If src=rS, the source is from 16-bit input |
| /// * If src=xT, the source is from 64-bit input |
| /// ### |
| /// %unsigned 1 mode |
| /// : copy 0x0 |
| /// : inv 0x1 |
| /// ### |
| /// * copy: target bit copied from source bit |
| /// * inv: target bit copied from source bit then inverted |
| /// * Not used when src==rS & idx[5]==1'b1 |
| /// ### |
| /// %unsigned 6 idx1 |
| /// %unsigned 1 src1 |
| /// %unsigned 1 mode1 |
| /// %unsigned 6 idx2 |
| /// %unsigned 1 src2 |
| /// %unsigned 1 mode2 |
| /// %unsigned 6 idx3 |
| /// %unsigned 1 src3 |
| /// %unsigned 1 mode3 |
| /// ### |
| /// * End BitOpX4 |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_BitOpX4 |
| #define h_BitOpX4 (){} |
| |
| #define BA_BitOpX4_idx 0x0000 |
| #define B16BitOpX4_idx 0x0000 |
| #define LSb32BitOpX4_idx 0 |
| #define LSb16BitOpX4_idx 0 |
| #define bBitOpX4_idx 6 |
| #define MSK32BitOpX4_idx 0x0000003F |
| |
| #define BA_BitOpX4_src 0x0000 |
| #define B16BitOpX4_src 0x0000 |
| #define LSb32BitOpX4_src 6 |
| #define LSb16BitOpX4_src 6 |
| #define bBitOpX4_src 1 |
| #define MSK32BitOpX4_src 0x00000040 |
| #define BitOpX4_src_xT 0x0 |
| #define BitOpX4_src_rS 0x1 |
| |
| #define BA_BitOpX4_mode 0x0000 |
| #define B16BitOpX4_mode 0x0000 |
| #define LSb32BitOpX4_mode 7 |
| #define LSb16BitOpX4_mode 7 |
| #define bBitOpX4_mode 1 |
| #define MSK32BitOpX4_mode 0x00000080 |
| #define BitOpX4_mode_copy 0x0 |
| #define BitOpX4_mode_inv 0x1 |
| |
| #define BA_BitOpX4_idx1 0x0001 |
| #define B16BitOpX4_idx1 0x0000 |
| #define LSb32BitOpX4_idx1 8 |
| #define LSb16BitOpX4_idx1 8 |
| #define bBitOpX4_idx1 6 |
| #define MSK32BitOpX4_idx1 0x00003F00 |
| |
| #define BA_BitOpX4_src1 0x0001 |
| #define B16BitOpX4_src1 0x0000 |
| #define LSb32BitOpX4_src1 14 |
| #define LSb16BitOpX4_src1 14 |
| #define bBitOpX4_src1 1 |
| #define MSK32BitOpX4_src1 0x00004000 |
| |
| #define BA_BitOpX4_mode1 0x0001 |
| #define B16BitOpX4_mode1 0x0000 |
| #define LSb32BitOpX4_mode1 15 |
| #define LSb16BitOpX4_mode1 15 |
| #define bBitOpX4_mode1 1 |
| #define MSK32BitOpX4_mode1 0x00008000 |
| |
| #define BA_BitOpX4_idx2 0x0002 |
| #define B16BitOpX4_idx2 0x0002 |
| #define LSb32BitOpX4_idx2 16 |
| #define LSb16BitOpX4_idx2 0 |
| #define bBitOpX4_idx2 6 |
| #define MSK32BitOpX4_idx2 0x003F0000 |
| |
| #define BA_BitOpX4_src2 0x0002 |
| #define B16BitOpX4_src2 0x0002 |
| #define LSb32BitOpX4_src2 22 |
| #define LSb16BitOpX4_src2 6 |
| #define bBitOpX4_src2 1 |
| #define MSK32BitOpX4_src2 0x00400000 |
| |
| #define BA_BitOpX4_mode2 0x0002 |
| #define B16BitOpX4_mode2 0x0002 |
| #define LSb32BitOpX4_mode2 23 |
| #define LSb16BitOpX4_mode2 7 |
| #define bBitOpX4_mode2 1 |
| #define MSK32BitOpX4_mode2 0x00800000 |
| |
| #define BA_BitOpX4_idx3 0x0003 |
| #define B16BitOpX4_idx3 0x0002 |
| #define LSb32BitOpX4_idx3 24 |
| #define LSb16BitOpX4_idx3 8 |
| #define bBitOpX4_idx3 6 |
| #define MSK32BitOpX4_idx3 0x3F000000 |
| |
| #define BA_BitOpX4_src3 0x0003 |
| #define B16BitOpX4_src3 0x0002 |
| #define LSb32BitOpX4_src3 30 |
| #define LSb16BitOpX4_src3 14 |
| #define bBitOpX4_src3 1 |
| #define MSK32BitOpX4_src3 0x40000000 |
| |
| #define BA_BitOpX4_mode3 0x0003 |
| #define B16BitOpX4_mode3 0x0002 |
| #define LSb32BitOpX4_mode3 31 |
| #define LSb16BitOpX4_mode3 15 |
| #define bBitOpX4_mode3 1 |
| #define MSK32BitOpX4_mode3 0x80000000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_BitOpX4 { |
| /////////////////////////////////////////////////////////// |
| #define GET32BitOpX4_idx(r32) _BFGET_(r32, 5, 0) |
| #define SET32BitOpX4_idx(r32,v) _BFSET_(r32, 5, 0,v) |
| #define GET16BitOpX4_idx(r16) _BFGET_(r16, 5, 0) |
| #define SET16BitOpX4_idx(r16,v) _BFSET_(r16, 5, 0,v) |
| |
| #define GET32BitOpX4_src(r32) _BFGET_(r32, 6, 6) |
| #define SET32BitOpX4_src(r32,v) _BFSET_(r32, 6, 6,v) |
| #define GET16BitOpX4_src(r16) _BFGET_(r16, 6, 6) |
| #define SET16BitOpX4_src(r16,v) _BFSET_(r16, 6, 6,v) |
| |
| #define GET32BitOpX4_mode(r32) _BFGET_(r32, 7, 7) |
| #define SET32BitOpX4_mode(r32,v) _BFSET_(r32, 7, 7,v) |
| #define GET16BitOpX4_mode(r16) _BFGET_(r16, 7, 7) |
| #define SET16BitOpX4_mode(r16,v) _BFSET_(r16, 7, 7,v) |
| |
| #define GET32BitOpX4_idx1(r32) _BFGET_(r32,13, 8) |
| #define SET32BitOpX4_idx1(r32,v) _BFSET_(r32,13, 8,v) |
| #define GET16BitOpX4_idx1(r16) _BFGET_(r16,13, 8) |
| #define SET16BitOpX4_idx1(r16,v) _BFSET_(r16,13, 8,v) |
| |
| #define GET32BitOpX4_src1(r32) _BFGET_(r32,14,14) |
| #define SET32BitOpX4_src1(r32,v) _BFSET_(r32,14,14,v) |
| #define GET16BitOpX4_src1(r16) _BFGET_(r16,14,14) |
| #define SET16BitOpX4_src1(r16,v) _BFSET_(r16,14,14,v) |
| |
| #define GET32BitOpX4_mode1(r32) _BFGET_(r32,15,15) |
| #define SET32BitOpX4_mode1(r32,v) _BFSET_(r32,15,15,v) |
| #define GET16BitOpX4_mode1(r16) _BFGET_(r16,15,15) |
| #define SET16BitOpX4_mode1(r16,v) _BFSET_(r16,15,15,v) |
| |
| #define GET32BitOpX4_idx2(r32) _BFGET_(r32,21,16) |
| #define SET32BitOpX4_idx2(r32,v) _BFSET_(r32,21,16,v) |
| #define GET16BitOpX4_idx2(r16) _BFGET_(r16, 5, 0) |
| #define SET16BitOpX4_idx2(r16,v) _BFSET_(r16, 5, 0,v) |
| |
| #define GET32BitOpX4_src2(r32) _BFGET_(r32,22,22) |
| #define SET32BitOpX4_src2(r32,v) _BFSET_(r32,22,22,v) |
| #define GET16BitOpX4_src2(r16) _BFGET_(r16, 6, 6) |
| #define SET16BitOpX4_src2(r16,v) _BFSET_(r16, 6, 6,v) |
| |
| #define GET32BitOpX4_mode2(r32) _BFGET_(r32,23,23) |
| #define SET32BitOpX4_mode2(r32,v) _BFSET_(r32,23,23,v) |
| #define GET16BitOpX4_mode2(r16) _BFGET_(r16, 7, 7) |
| #define SET16BitOpX4_mode2(r16,v) _BFSET_(r16, 7, 7,v) |
| |
| #define GET32BitOpX4_idx3(r32) _BFGET_(r32,29,24) |
| #define SET32BitOpX4_idx3(r32,v) _BFSET_(r32,29,24,v) |
| #define GET16BitOpX4_idx3(r16) _BFGET_(r16,13, 8) |
| #define SET16BitOpX4_idx3(r16,v) _BFSET_(r16,13, 8,v) |
| |
| #define GET32BitOpX4_src3(r32) _BFGET_(r32,30,30) |
| #define SET32BitOpX4_src3(r32,v) _BFSET_(r32,30,30,v) |
| #define GET16BitOpX4_src3(r16) _BFGET_(r16,14,14) |
| #define SET16BitOpX4_src3(r16,v) _BFSET_(r16,14,14,v) |
| |
| #define GET32BitOpX4_mode3(r32) _BFGET_(r32,31,31) |
| #define SET32BitOpX4_mode3(r32,v) _BFSET_(r32,31,31,v) |
| #define GET16BitOpX4_mode3(r16) _BFGET_(r16,15,15) |
| #define SET16BitOpX4_mode3(r16,v) _BFSET_(r16,15,15,v) |
| |
| UNSG32 u_idx : 6; |
| UNSG32 u_src : 1; |
| UNSG32 u_mode : 1; |
| UNSG32 u_idx1 : 6; |
| UNSG32 u_src1 : 1; |
| UNSG32 u_mode1 : 1; |
| UNSG32 u_idx2 : 6; |
| UNSG32 u_src2 : 1; |
| UNSG32 u_mode2 : 1; |
| UNSG32 u_idx3 : 6; |
| UNSG32 u_src3 : 1; |
| UNSG32 u_mode3 : 1; |
| /////////////////////////////////////////////////////////// |
| } SIE_BitOpX4; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 BitOpX4_drvrd(SIE_BitOpX4 *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 BitOpX4_drvwr(SIE_BitOpX4 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void BitOpX4_reset(SIE_BitOpX4 *p); |
| SIGN32 BitOpX4_cmp (SIE_BitOpX4 *p, SIE_BitOpX4 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define BitOpX4_check(p,pie,pfx,hLOG) BitOpX4_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define BitOpX4_print(p, pfx,hLOG) BitOpX4_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: BitOpX4 |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE BITOPRF64 biu (4,4) |
| /// ### |
| /// * Operator format for BitOp extension |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// : BitOp0 0x20 |
| /// : BitOp1 0x21 |
| /// : BitOp2 0x22 |
| /// : BitOp3 0x23 |
| /// ### |
| /// * extension ID definition; must be consistent with vScope_F0A64_BitOp0~3 |
| /// ### |
| /// @ 0x00000 (P) |
| /// # 0x00000 cmd0 |
| /// $BitOpX4 cmd0 REG [4] |
| /// @ 0x00010 (P) |
| /// # 0x00010 cmd1 |
| /// $BitOpX4 cmd1 REG [4] |
| /// @ 0x00020 (P) |
| /// # 0x00020 cmd2 |
| /// $BitOpX4 cmd2 REG [4] |
| /// @ 0x00030 (P) |
| /// # 0x00030 cmd3 |
| /// $BitOpX4 cmd3 REG [4] |
| /// ### |
| /// * Four BitOp commands, selected by extension ID |
| /// * End BitOpCtx |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 64B, bits: 512b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_BITOPRF64 |
| #define h_BITOPRF64 (){} |
| |
| #define BITOPRF64_BitOp0 0x20 |
| #define BITOPRF64_BitOp1 0x21 |
| #define BITOPRF64_BitOp2 0x22 |
| #define BITOPRF64_BitOp3 0x23 |
| /////////////////////////////////////////////////////////// |
| #define RA_BITOPRF64_cmd0 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_BITOPRF64_cmd1 0x0010 |
| /////////////////////////////////////////////////////////// |
| #define RA_BITOPRF64_cmd2 0x0020 |
| /////////////////////////////////////////////////////////// |
| #define RA_BITOPRF64_cmd3 0x0030 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_BITOPRF64 { |
| /////////////////////////////////////////////////////////// |
| SIE_BitOpX4 ie_cmd0[4]; |
| /////////////////////////////////////////////////////////// |
| SIE_BitOpX4 ie_cmd1[4]; |
| /////////////////////////////////////////////////////////// |
| SIE_BitOpX4 ie_cmd2[4]; |
| /////////////////////////////////////////////////////////// |
| SIE_BitOpX4 ie_cmd3[4]; |
| /////////////////////////////////////////////////////////// |
| } SIE_BITOPRF64; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 BITOPRF64_drvrd(SIE_BITOPRF64 *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 BITOPRF64_drvwr(SIE_BITOPRF64 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void BITOPRF64_reset(SIE_BITOPRF64 *p); |
| SIGN32 BITOPRF64_cmp (SIE_BITOPRF64 *p, SIE_BITOPRF64 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define BITOPRF64_check(p,pie,pfx,hLOG) BITOPRF64_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define BITOPRF64_print(p, pfx,hLOG) BITOPRF64_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: BITOPRF64 |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE LUT8b (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 8 data |
| /// ### |
| /// * Any 8b data |
| /// ### |
| /// %unsigned 8 data1 |
| /// %unsigned 8 data2 |
| /// %unsigned 8 data3 |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_LUT8b |
| #define h_LUT8b (){} |
| |
| #define BA_LUT8b_data 0x0000 |
| #define B16LUT8b_data 0x0000 |
| #define LSb32LUT8b_data 0 |
| #define LSb16LUT8b_data 0 |
| #define bLUT8b_data 8 |
| #define MSK32LUT8b_data 0x000000FF |
| |
| #define BA_LUT8b_data1 0x0001 |
| #define B16LUT8b_data1 0x0000 |
| #define LSb32LUT8b_data1 8 |
| #define LSb16LUT8b_data1 8 |
| #define bLUT8b_data1 8 |
| #define MSK32LUT8b_data1 0x0000FF00 |
| |
| #define BA_LUT8b_data2 0x0002 |
| #define B16LUT8b_data2 0x0002 |
| #define LSb32LUT8b_data2 16 |
| #define LSb16LUT8b_data2 0 |
| #define bLUT8b_data2 8 |
| #define MSK32LUT8b_data2 0x00FF0000 |
| |
| #define BA_LUT8b_data3 0x0003 |
| #define B16LUT8b_data3 0x0002 |
| #define LSb32LUT8b_data3 24 |
| #define LSb16LUT8b_data3 8 |
| #define bLUT8b_data3 8 |
| #define MSK32LUT8b_data3 0xFF000000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_LUT8b { |
| /////////////////////////////////////////////////////////// |
| #define GET32LUT8b_data(r32) _BFGET_(r32, 7, 0) |
| #define SET32LUT8b_data(r32,v) _BFSET_(r32, 7, 0,v) |
| #define GET16LUT8b_data(r16) _BFGET_(r16, 7, 0) |
| #define SET16LUT8b_data(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32LUT8b_data1(r32) _BFGET_(r32,15, 8) |
| #define SET32LUT8b_data1(r32,v) _BFSET_(r32,15, 8,v) |
| #define GET16LUT8b_data1(r16) _BFGET_(r16,15, 8) |
| #define SET16LUT8b_data1(r16,v) _BFSET_(r16,15, 8,v) |
| |
| #define GET32LUT8b_data2(r32) _BFGET_(r32,23,16) |
| #define SET32LUT8b_data2(r32,v) _BFSET_(r32,23,16,v) |
| #define GET16LUT8b_data2(r16) _BFGET_(r16, 7, 0) |
| #define SET16LUT8b_data2(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32LUT8b_data3(r32) _BFGET_(r32,31,24) |
| #define SET32LUT8b_data3(r32,v) _BFSET_(r32,31,24,v) |
| #define GET16LUT8b_data3(r16) _BFGET_(r16,15, 8) |
| #define SET16LUT8b_data3(r16,v) _BFSET_(r16,15, 8,v) |
| |
| UNSG32 u_data : 8; |
| UNSG32 u_data1 : 8; |
| UNSG32 u_data2 : 8; |
| UNSG32 u_data3 : 8; |
| /////////////////////////////////////////////////////////// |
| } SIE_LUT8b; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 LUT8b_drvrd(SIE_LUT8b *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 LUT8b_drvwr(SIE_LUT8b *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void LUT8b_reset(SIE_LUT8b *p); |
| SIGN32 LUT8b_cmp (SIE_LUT8b *p, SIE_LUT8b *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define LUT8b_check(p,pie,pfx,hLOG) LUT8b_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define LUT8b_print(p, pfx,hLOG) LUT8b_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: LUT8b |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE LUT64b (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 32 data_0i |
| /// %unsigned 32 data_1i |
| /// ### |
| /// * Any 64b data |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_LUT64b |
| #define h_LUT64b (){} |
| |
| #define BA_LUT64b_data_0i 0x0000 |
| #define B16LUT64b_data_0i 0x0000 |
| #define LSb32LUT64b_data_0i 0 |
| #define LSb16LUT64b_data_0i 0 |
| #define bLUT64b_data_0i 32 |
| #define MSK32LUT64b_data_0i 0xFFFFFFFF |
| |
| #define BA_LUT64b_data_1i 0x0004 |
| #define B16LUT64b_data_1i 0x0004 |
| #define LSb32LUT64b_data_1i 0 |
| #define LSb16LUT64b_data_1i 0 |
| #define bLUT64b_data_1i 32 |
| #define MSK32LUT64b_data_1i 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_LUT64b { |
| /////////////////////////////////////////////////////////// |
| #define GET32LUT64b_data_0i(r32) _BFGET_(r32,31, 0) |
| #define SET32LUT64b_data_0i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_data_0i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32LUT64b_data_1i(r32) _BFGET_(r32,31, 0) |
| #define SET32LUT64b_data_1i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_data_1i : 32; |
| /////////////////////////////////////////////////////////// |
| } SIE_LUT64b; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 LUT64b_drvrd(SIE_LUT64b *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 LUT64b_drvwr(SIE_LUT64b *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void LUT64b_reset(SIE_LUT64b *p); |
| SIGN32 LUT64b_cmp (SIE_LUT64b *p, SIE_LUT64b *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define LUT64b_check(p,pie,pfx,hLOG) LUT64b_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define LUT64b_print(p, pfx,hLOG) LUT64b_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: LUT64b |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE NLoc (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 4 BLK |
| /// ### |
| /// * Block index |
| /// ### |
| /// %unsigned 4 category |
| /// : 16x16 0x8 |
| /// : 8x16 0x9 |
| /// : 16x8 0xA |
| /// : 4mv 0xB |
| /// : 8x8 0xC |
| /// : 4x8 0xD |
| /// : 8x4 0xE |
| /// : 4x4 0xF |
| /// ### |
| /// * Consistent with vcMsg{RSVD,level,partition} |
| /// * Valid cases for Neighbor: |
| /// * 16x16=16x8 |
| /// * 8x16=4mv=8x8=8x4 |
| /// * 4x8=4x4=ACY |
| /// * Valid cases for PMV: |
| /// * 16x16=16x8 |
| /// * 8x16 |
| /// * 4mv=8x8=8x4 |
| /// * 4x8=4x4=ACY |
| /// ### |
| /// : ACY 0x0 |
| /// ### |
| /// * Valid block index: |
| /// * 0~15 (every 4x4 indexed by coding order) |
| /// ### |
| /// : ACU 0x2 |
| /// ### |
| /// * Valid block index: |
| /// * 0~3 (3rd 4x4 in every 8x8) |
| /// ### |
| /// : ACV 0x3 |
| /// ### |
| /// * Valid block index: |
| /// * 0~3 (4th 4x4 in every 8x8) |
| /// ### |
| /// : I16AC 0x4 |
| /// ### |
| /// * Only used as category, should be converted to ACY for neighbor look-up |
| /// ### |
| /// : DCI 0x4 |
| /// ### |
| /// * Valid block index: |
| /// * 0 (3rd 4x4 in 4th 8x8 only) |
| /// ### |
| /// : DCY 0x5 |
| /// ### |
| /// * Valid block index: |
| /// * 0 (4th 4x4 in 4th 8x8 only) |
| /// ### |
| /// : SDPMV 0x5 |
| /// ### |
| /// * Reuse DCY in PMV extension, for Spatial Direct mode rIDX recovery. |
| /// ### |
| /// : DCU 0x6 |
| /// ### |
| /// * Valid block index: |
| /// * 0 (3rd 4x4 in 3rd 8x8 only) |
| /// ### |
| /// : DCV 0x7 |
| /// ### |
| /// * Valid block index: |
| /// * 0 (4th 4x4 in 3rd 8x8 only) |
| /// ### |
| /// %unsigned 1 parity |
| /// ### |
| /// * 0/1 as even/odd, only for loop-filter |
| /// ### |
| /// %unsigned 1 direct |
| /// ### |
| /// * FW use only: if direct mode |
| /// * AVS: use for sym mode in hardware. |
| /// ### |
| /// %unsigned 2 motion |
| /// ### |
| /// * FW use only: motion type |
| /// ### |
| /// %unsigned 1 A |
| /// ### |
| /// * Left macroblock/block availability |
| /// ### |
| /// %unsigned 1 B |
| /// ### |
| /// * Upper macroblock/block availability |
| /// ### |
| /// %unsigned 1 C |
| /// ### |
| /// * Upper-right macroblock/block availability |
| /// ### |
| /// %unsigned 1 D |
| /// ### |
| /// * Upper-left macroblock/block availability |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_NLoc |
| #define h_NLoc (){} |
| |
| #define BA_NLoc_BLK 0x0000 |
| #define B16NLoc_BLK 0x0000 |
| #define LSb32NLoc_BLK 0 |
| #define LSb16NLoc_BLK 0 |
| #define bNLoc_BLK 4 |
| #define MSK32NLoc_BLK 0x0000000F |
| |
| #define BA_NLoc_category 0x0000 |
| #define B16NLoc_category 0x0000 |
| #define LSb32NLoc_category 4 |
| #define LSb16NLoc_category 4 |
| #define bNLoc_category 4 |
| #define MSK32NLoc_category 0x000000F0 |
| #define NLoc_category_16x16 0x8 |
| #define NLoc_category_8x16 0x9 |
| #define NLoc_category_16x8 0xA |
| #define NLoc_category_4mv 0xB |
| #define NLoc_category_8x8 0xC |
| #define NLoc_category_4x8 0xD |
| #define NLoc_category_8x4 0xE |
| #define NLoc_category_4x4 0xF |
| #define NLoc_category_ACY 0x0 |
| #define NLoc_category_ACU 0x2 |
| #define NLoc_category_ACV 0x3 |
| #define NLoc_category_I16AC 0x4 |
| #define NLoc_category_DCI 0x4 |
| #define NLoc_category_DCY 0x5 |
| #define NLoc_category_SDPMV 0x5 |
| #define NLoc_category_DCU 0x6 |
| #define NLoc_category_DCV 0x7 |
| |
| #define BA_NLoc_parity 0x0001 |
| #define B16NLoc_parity 0x0000 |
| #define LSb32NLoc_parity 8 |
| #define LSb16NLoc_parity 8 |
| #define bNLoc_parity 1 |
| #define MSK32NLoc_parity 0x00000100 |
| |
| #define BA_NLoc_direct 0x0001 |
| #define B16NLoc_direct 0x0000 |
| #define LSb32NLoc_direct 9 |
| #define LSb16NLoc_direct 9 |
| #define bNLoc_direct 1 |
| #define MSK32NLoc_direct 0x00000200 |
| |
| #define BA_NLoc_motion 0x0001 |
| #define B16NLoc_motion 0x0000 |
| #define LSb32NLoc_motion 10 |
| #define LSb16NLoc_motion 10 |
| #define bNLoc_motion 2 |
| #define MSK32NLoc_motion 0x00000C00 |
| |
| #define BA_NLoc_A 0x0001 |
| #define B16NLoc_A 0x0000 |
| #define LSb32NLoc_A 12 |
| #define LSb16NLoc_A 12 |
| #define bNLoc_A 1 |
| #define MSK32NLoc_A 0x00001000 |
| |
| #define BA_NLoc_B 0x0001 |
| #define B16NLoc_B 0x0000 |
| #define LSb32NLoc_B 13 |
| #define LSb16NLoc_B 13 |
| #define bNLoc_B 1 |
| #define MSK32NLoc_B 0x00002000 |
| |
| #define BA_NLoc_C 0x0001 |
| #define B16NLoc_C 0x0000 |
| #define LSb32NLoc_C 14 |
| #define LSb16NLoc_C 14 |
| #define bNLoc_C 1 |
| #define MSK32NLoc_C 0x00004000 |
| |
| #define BA_NLoc_D 0x0001 |
| #define B16NLoc_D 0x0000 |
| #define LSb32NLoc_D 15 |
| #define LSb16NLoc_D 15 |
| #define bNLoc_D 1 |
| #define MSK32NLoc_D 0x00008000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_NLoc { |
| /////////////////////////////////////////////////////////// |
| #define GET32NLoc_BLK(r32) _BFGET_(r32, 3, 0) |
| #define SET32NLoc_BLK(r32,v) _BFSET_(r32, 3, 0,v) |
| #define GET16NLoc_BLK(r16) _BFGET_(r16, 3, 0) |
| #define SET16NLoc_BLK(r16,v) _BFSET_(r16, 3, 0,v) |
| |
| #define GET32NLoc_category(r32) _BFGET_(r32, 7, 4) |
| #define SET32NLoc_category(r32,v) _BFSET_(r32, 7, 4,v) |
| #define GET16NLoc_category(r16) _BFGET_(r16, 7, 4) |
| #define SET16NLoc_category(r16,v) _BFSET_(r16, 7, 4,v) |
| |
| #define GET32NLoc_parity(r32) _BFGET_(r32, 8, 8) |
| #define SET32NLoc_parity(r32,v) _BFSET_(r32, 8, 8,v) |
| #define GET16NLoc_parity(r16) _BFGET_(r16, 8, 8) |
| #define SET16NLoc_parity(r16,v) _BFSET_(r16, 8, 8,v) |
| |
| #define GET32NLoc_direct(r32) _BFGET_(r32, 9, 9) |
| #define SET32NLoc_direct(r32,v) _BFSET_(r32, 9, 9,v) |
| #define GET16NLoc_direct(r16) _BFGET_(r16, 9, 9) |
| #define SET16NLoc_direct(r16,v) _BFSET_(r16, 9, 9,v) |
| |
| #define GET32NLoc_motion(r32) _BFGET_(r32,11,10) |
| #define SET32NLoc_motion(r32,v) _BFSET_(r32,11,10,v) |
| #define GET16NLoc_motion(r16) _BFGET_(r16,11,10) |
| #define SET16NLoc_motion(r16,v) _BFSET_(r16,11,10,v) |
| |
| #define GET32NLoc_A(r32) _BFGET_(r32,12,12) |
| #define SET32NLoc_A(r32,v) _BFSET_(r32,12,12,v) |
| #define GET16NLoc_A(r16) _BFGET_(r16,12,12) |
| #define SET16NLoc_A(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32NLoc_B(r32) _BFGET_(r32,13,13) |
| #define SET32NLoc_B(r32,v) _BFSET_(r32,13,13,v) |
| #define GET16NLoc_B(r16) _BFGET_(r16,13,13) |
| #define SET16NLoc_B(r16,v) _BFSET_(r16,13,13,v) |
| |
| #define GET32NLoc_C(r32) _BFGET_(r32,14,14) |
| #define SET32NLoc_C(r32,v) _BFSET_(r32,14,14,v) |
| #define GET16NLoc_C(r16) _BFGET_(r16,14,14) |
| #define SET16NLoc_C(r16,v) _BFSET_(r16,14,14,v) |
| |
| #define GET32NLoc_D(r32) _BFGET_(r32,15,15) |
| #define SET32NLoc_D(r32,v) _BFSET_(r32,15,15,v) |
| #define GET16NLoc_D(r16) _BFGET_(r16,15,15) |
| #define SET16NLoc_D(r16,v) _BFSET_(r16,15,15,v) |
| |
| UNSG32 u_BLK : 4; |
| UNSG32 u_category : 4; |
| UNSG32 u_parity : 1; |
| UNSG32 u_direct : 1; |
| UNSG32 u_motion : 2; |
| UNSG32 u_A : 1; |
| UNSG32 u_B : 1; |
| UNSG32 u_C : 1; |
| UNSG32 u_D : 1; |
| /////////////////////////////////////////////////////////// |
| } SIE_NLoc; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 NLoc_drvrd(SIE_NLoc *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 NLoc_drvwr(SIE_NLoc *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void NLoc_reset(SIE_NLoc *p); |
| SIGN32 NLoc_cmp (SIE_NLoc *p, SIE_NLoc *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define NLoc_check(p,pie,pfx,hLOG) NLoc_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define NLoc_print(p, pfx,hLOG) NLoc_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: NLoc |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE BLK (4,4) |
| /// # # ---------------------------------------------------------- |
| /// : skip 0x0 |
| /// : direct16x16 0x1 |
| /// : 4BLK 0x2 |
| /// : inter 0x3 |
| /// : IPCM 0x4 |
| /// : intra16x16 0x5 |
| /// : intraNxN 0x6 |
| /// ### |
| /// * Sub-set of mb_type |
| /// * MPEG2: only skip, inter, intra (intra16x16) |
| /// * MPEG4/VC-1: only 1 intra type (intra16x16) |
| /// * AVS: skip, direct16x16, 4BLK, inter, intra16x16 (only 1 intra type) |
| /// ### |
| /// @ 0x00000 (P) |
| /// %unsigned 2 motion |
| /// : Intra 0x0 |
| /// : Forward 0x1 |
| /// : Backward 0x2 |
| /// : Bi 0x3 |
| /// ### |
| /// * Derived 8x8 block motion type |
| /// * NOTE: direct mode uses 'Bi' |
| /// ### |
| /// %unsigned 2 partition |
| /// : 1mv 0x0 |
| /// : 2mvLR 0x1 |
| /// : 2mvTB 0x2 |
| /// ### |
| /// * MPEG2: 2mvTB used for field prediction |
| /// * VC-1: 2-field-mv |
| /// ### |
| /// : 4mv 0x3 |
| /// ### |
| /// * Block/macroblock level partitioning |
| /// * MPEG4: 1mv & 4mv |
| /// ### |
| /// : 4mvFLD 0x1 |
| /// ### |
| /// * VC-1: 4-field-mv |
| /// ### |
| /// %unsigned 1 direct |
| /// ### |
| /// * Direct mode flag |
| /// * MPEG2: dual-prime prediction |
| /// ### |
| /// %unsigned 3 mvs |
| /// ### |
| /// * Number of motion vectors: 0/1/2/4 |
| /// ### |
| /// %unsigned 2 motion1 |
| /// %unsigned 2 partition1 |
| /// %unsigned 1 direct1 |
| /// %unsigned 3 mvs1 |
| /// %unsigned 2 motion2 |
| /// %unsigned 2 partition2 |
| /// %unsigned 1 direct2 |
| /// %unsigned 3 mvs2 |
| /// %unsigned 2 motion3 |
| /// %unsigned 2 partition3 |
| /// %unsigned 1 direct3 |
| /// %unsigned 3 mvs3 |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_BLK |
| #define h_BLK (){} |
| |
| #define BLK_skip 0x0 |
| #define BLK_direct16x16 0x1 |
| #define BLK_4BLK 0x2 |
| #define BLK_inter 0x3 |
| #define BLK_IPCM 0x4 |
| #define BLK_intra16x16 0x5 |
| #define BLK_intraNxN 0x6 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_BLK_motion 0x0000 |
| #define B16BLK_motion 0x0000 |
| #define LSb32BLK_motion 0 |
| #define LSb16BLK_motion 0 |
| #define bBLK_motion 2 |
| #define MSK32BLK_motion 0x00000003 |
| #define BLK_motion_Intra 0x0 |
| #define BLK_motion_Forward 0x1 |
| #define BLK_motion_Backward 0x2 |
| #define BLK_motion_Bi 0x3 |
| |
| #define BA_BLK_partition 0x0000 |
| #define B16BLK_partition 0x0000 |
| #define LSb32BLK_partition 2 |
| #define LSb16BLK_partition 2 |
| #define bBLK_partition 2 |
| #define MSK32BLK_partition 0x0000000C |
| #define BLK_partition_1mv 0x0 |
| #define BLK_partition_2mvLR 0x1 |
| #define BLK_partition_2mvTB 0x2 |
| #define BLK_partition_4mv 0x3 |
| #define BLK_partition_4mvFLD 0x1 |
| |
| #define BA_BLK_direct 0x0000 |
| #define B16BLK_direct 0x0000 |
| #define LSb32BLK_direct 4 |
| #define LSb16BLK_direct 4 |
| #define bBLK_direct 1 |
| #define MSK32BLK_direct 0x00000010 |
| |
| #define BA_BLK_mvs 0x0000 |
| #define B16BLK_mvs 0x0000 |
| #define LSb32BLK_mvs 5 |
| #define LSb16BLK_mvs 5 |
| #define bBLK_mvs 3 |
| #define MSK32BLK_mvs 0x000000E0 |
| |
| #define BA_BLK_motion1 0x0001 |
| #define B16BLK_motion1 0x0000 |
| #define LSb32BLK_motion1 8 |
| #define LSb16BLK_motion1 8 |
| #define bBLK_motion1 2 |
| #define MSK32BLK_motion1 0x00000300 |
| |
| #define BA_BLK_partition1 0x0001 |
| #define B16BLK_partition1 0x0000 |
| #define LSb32BLK_partition1 10 |
| #define LSb16BLK_partition1 10 |
| #define bBLK_partition1 2 |
| #define MSK32BLK_partition1 0x00000C00 |
| |
| #define BA_BLK_direct1 0x0001 |
| #define B16BLK_direct1 0x0000 |
| #define LSb32BLK_direct1 12 |
| #define LSb16BLK_direct1 12 |
| #define bBLK_direct1 1 |
| #define MSK32BLK_direct1 0x00001000 |
| |
| #define BA_BLK_mvs1 0x0001 |
| #define B16BLK_mvs1 0x0000 |
| #define LSb32BLK_mvs1 13 |
| #define LSb16BLK_mvs1 13 |
| #define bBLK_mvs1 3 |
| #define MSK32BLK_mvs1 0x0000E000 |
| |
| #define BA_BLK_motion2 0x0002 |
| #define B16BLK_motion2 0x0002 |
| #define LSb32BLK_motion2 16 |
| #define LSb16BLK_motion2 0 |
| #define bBLK_motion2 2 |
| #define MSK32BLK_motion2 0x00030000 |
| |
| #define BA_BLK_partition2 0x0002 |
| #define B16BLK_partition2 0x0002 |
| #define LSb32BLK_partition2 18 |
| #define LSb16BLK_partition2 2 |
| #define bBLK_partition2 2 |
| #define MSK32BLK_partition2 0x000C0000 |
| |
| #define BA_BLK_direct2 0x0002 |
| #define B16BLK_direct2 0x0002 |
| #define LSb32BLK_direct2 20 |
| #define LSb16BLK_direct2 4 |
| #define bBLK_direct2 1 |
| #define MSK32BLK_direct2 0x00100000 |
| |
| #define BA_BLK_mvs2 0x0002 |
| #define B16BLK_mvs2 0x0002 |
| #define LSb32BLK_mvs2 21 |
| #define LSb16BLK_mvs2 5 |
| #define bBLK_mvs2 3 |
| #define MSK32BLK_mvs2 0x00E00000 |
| |
| #define BA_BLK_motion3 0x0003 |
| #define B16BLK_motion3 0x0002 |
| #define LSb32BLK_motion3 24 |
| #define LSb16BLK_motion3 8 |
| #define bBLK_motion3 2 |
| #define MSK32BLK_motion3 0x03000000 |
| |
| #define BA_BLK_partition3 0x0003 |
| #define B16BLK_partition3 0x0002 |
| #define LSb32BLK_partition3 26 |
| #define LSb16BLK_partition3 10 |
| #define bBLK_partition3 2 |
| #define MSK32BLK_partition3 0x0C000000 |
| |
| #define BA_BLK_direct3 0x0003 |
| #define B16BLK_direct3 0x0002 |
| #define LSb32BLK_direct3 28 |
| #define LSb16BLK_direct3 12 |
| #define bBLK_direct3 1 |
| #define MSK32BLK_direct3 0x10000000 |
| |
| #define BA_BLK_mvs3 0x0003 |
| #define B16BLK_mvs3 0x0002 |
| #define LSb32BLK_mvs3 29 |
| #define LSb16BLK_mvs3 13 |
| #define bBLK_mvs3 3 |
| #define MSK32BLK_mvs3 0xE0000000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_BLK { |
| /////////////////////////////////////////////////////////// |
| #define GET32BLK_motion(r32) _BFGET_(r32, 1, 0) |
| #define SET32BLK_motion(r32,v) _BFSET_(r32, 1, 0,v) |
| #define GET16BLK_motion(r16) _BFGET_(r16, 1, 0) |
| #define SET16BLK_motion(r16,v) _BFSET_(r16, 1, 0,v) |
| |
| #define GET32BLK_partition(r32) _BFGET_(r32, 3, 2) |
| #define SET32BLK_partition(r32,v) _BFSET_(r32, 3, 2,v) |
| #define GET16BLK_partition(r16) _BFGET_(r16, 3, 2) |
| #define SET16BLK_partition(r16,v) _BFSET_(r16, 3, 2,v) |
| |
| #define GET32BLK_direct(r32) _BFGET_(r32, 4, 4) |
| #define SET32BLK_direct(r32,v) _BFSET_(r32, 4, 4,v) |
| #define GET16BLK_direct(r16) _BFGET_(r16, 4, 4) |
| #define SET16BLK_direct(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define GET32BLK_mvs(r32) _BFGET_(r32, 7, 5) |
| #define SET32BLK_mvs(r32,v) _BFSET_(r32, 7, 5,v) |
| #define GET16BLK_mvs(r16) _BFGET_(r16, 7, 5) |
| #define SET16BLK_mvs(r16,v) _BFSET_(r16, 7, 5,v) |
| |
| #define GET32BLK_motion1(r32) _BFGET_(r32, 9, 8) |
| #define SET32BLK_motion1(r32,v) _BFSET_(r32, 9, 8,v) |
| #define GET16BLK_motion1(r16) _BFGET_(r16, 9, 8) |
| #define SET16BLK_motion1(r16,v) _BFSET_(r16, 9, 8,v) |
| |
| #define GET32BLK_partition1(r32) _BFGET_(r32,11,10) |
| #define SET32BLK_partition1(r32,v) _BFSET_(r32,11,10,v) |
| #define GET16BLK_partition1(r16) _BFGET_(r16,11,10) |
| #define SET16BLK_partition1(r16,v) _BFSET_(r16,11,10,v) |
| |
| #define GET32BLK_direct1(r32) _BFGET_(r32,12,12) |
| #define SET32BLK_direct1(r32,v) _BFSET_(r32,12,12,v) |
| #define GET16BLK_direct1(r16) _BFGET_(r16,12,12) |
| #define SET16BLK_direct1(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32BLK_mvs1(r32) _BFGET_(r32,15,13) |
| #define SET32BLK_mvs1(r32,v) _BFSET_(r32,15,13,v) |
| #define GET16BLK_mvs1(r16) _BFGET_(r16,15,13) |
| #define SET16BLK_mvs1(r16,v) _BFSET_(r16,15,13,v) |
| |
| #define GET32BLK_motion2(r32) _BFGET_(r32,17,16) |
| #define SET32BLK_motion2(r32,v) _BFSET_(r32,17,16,v) |
| #define GET16BLK_motion2(r16) _BFGET_(r16, 1, 0) |
| #define SET16BLK_motion2(r16,v) _BFSET_(r16, 1, 0,v) |
| |
| #define GET32BLK_partition2(r32) _BFGET_(r32,19,18) |
| #define SET32BLK_partition2(r32,v) _BFSET_(r32,19,18,v) |
| #define GET16BLK_partition2(r16) _BFGET_(r16, 3, 2) |
| #define SET16BLK_partition2(r16,v) _BFSET_(r16, 3, 2,v) |
| |
| #define GET32BLK_direct2(r32) _BFGET_(r32,20,20) |
| #define SET32BLK_direct2(r32,v) _BFSET_(r32,20,20,v) |
| #define GET16BLK_direct2(r16) _BFGET_(r16, 4, 4) |
| #define SET16BLK_direct2(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define GET32BLK_mvs2(r32) _BFGET_(r32,23,21) |
| #define SET32BLK_mvs2(r32,v) _BFSET_(r32,23,21,v) |
| #define GET16BLK_mvs2(r16) _BFGET_(r16, 7, 5) |
| #define SET16BLK_mvs2(r16,v) _BFSET_(r16, 7, 5,v) |
| |
| #define GET32BLK_motion3(r32) _BFGET_(r32,25,24) |
| #define SET32BLK_motion3(r32,v) _BFSET_(r32,25,24,v) |
| #define GET16BLK_motion3(r16) _BFGET_(r16, 9, 8) |
| #define SET16BLK_motion3(r16,v) _BFSET_(r16, 9, 8,v) |
| |
| #define GET32BLK_partition3(r32) _BFGET_(r32,27,26) |
| #define SET32BLK_partition3(r32,v) _BFSET_(r32,27,26,v) |
| #define GET16BLK_partition3(r16) _BFGET_(r16,11,10) |
| #define SET16BLK_partition3(r16,v) _BFSET_(r16,11,10,v) |
| |
| #define GET32BLK_direct3(r32) _BFGET_(r32,28,28) |
| #define SET32BLK_direct3(r32,v) _BFSET_(r32,28,28,v) |
| #define GET16BLK_direct3(r16) _BFGET_(r16,12,12) |
| #define SET16BLK_direct3(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32BLK_mvs3(r32) _BFGET_(r32,31,29) |
| #define SET32BLK_mvs3(r32,v) _BFSET_(r32,31,29,v) |
| #define GET16BLK_mvs3(r16) _BFGET_(r16,15,13) |
| #define SET16BLK_mvs3(r16,v) _BFSET_(r16,15,13,v) |
| |
| UNSG32 u_motion : 2; |
| UNSG32 u_partition : 2; |
| UNSG32 u_direct : 1; |
| UNSG32 u_mvs : 3; |
| UNSG32 u_motion1 : 2; |
| UNSG32 u_partition1 : 2; |
| UNSG32 u_direct1 : 1; |
| UNSG32 u_mvs1 : 3; |
| UNSG32 u_motion2 : 2; |
| UNSG32 u_partition2 : 2; |
| UNSG32 u_direct2 : 1; |
| UNSG32 u_mvs2 : 3; |
| UNSG32 u_motion3 : 2; |
| UNSG32 u_partition3 : 2; |
| UNSG32 u_direct3 : 1; |
| UNSG32 u_mvs3 : 3; |
| /////////////////////////////////////////////////////////// |
| } SIE_BLK; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 BLK_drvrd(SIE_BLK *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 BLK_drvwr(SIE_BLK *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void BLK_reset(SIE_BLK *p); |
| SIGN32 BLK_cmp (SIE_BLK *p, SIE_BLK *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define BLK_check(p,pie,pfx,hLOG) BLK_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define BLK_print(p, pfx,hLOG) BLK_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: BLK |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE MV (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 2 motion |
| /// ### |
| /// * Derived 8x8 block motion type (direct mode uses 'Bi'), see BLK.motion above |
| /// ### |
| /// %signed 14 X |
| /// ### |
| /// * Horizontal motion vector, |
| /// * Or MVD between parser & syntax processor |
| /// ### |
| /// %unsigned 3 type |
| /// ### |
| /// * Sub-set of mb_type, see MBPROP.type above |
| /// ### |
| /// %signed 13 Y |
| /// ### |
| /// * Vertical motion vector, |
| /// * Or MVD between parser & syntax processor |
| /// * End of MV |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_MV |
| #define h_MV (){} |
| |
| #define BA_MV_motion 0x0000 |
| #define B16MV_motion 0x0000 |
| #define LSb32MV_motion 0 |
| #define LSb16MV_motion 0 |
| #define bMV_motion 2 |
| #define MSK32MV_motion 0x00000003 |
| |
| #define BA_MV_X 0x0000 |
| #define B16MV_X 0x0000 |
| #define LSb32MV_X 2 |
| #define LSb16MV_X 2 |
| #define bMV_X 14 |
| #define MSK32MV_X 0x0000FFFC |
| |
| #define BA_MV_type 0x0002 |
| #define B16MV_type 0x0002 |
| #define LSb32MV_type 16 |
| #define LSb16MV_type 0 |
| #define bMV_type 3 |
| #define MSK32MV_type 0x00070000 |
| |
| #define BA_MV_Y 0x0002 |
| #define B16MV_Y 0x0002 |
| #define LSb32MV_Y 19 |
| #define LSb16MV_Y 3 |
| #define bMV_Y 13 |
| #define MSK32MV_Y 0xFFF80000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_MV { |
| /////////////////////////////////////////////////////////// |
| #define GET32MV_motion(r32) _BFGET_(r32, 1, 0) |
| #define SET32MV_motion(r32,v) _BFSET_(r32, 1, 0,v) |
| #define GET16MV_motion(r16) _BFGET_(r16, 1, 0) |
| #define SET16MV_motion(r16,v) _BFSET_(r16, 1, 0,v) |
| |
| #define GET32MV_X(r32) _BFGET_(r32,15, 2) |
| #define SET32MV_X(r32,v) _BFSET_(r32,15, 2,v) |
| #define GET16MV_X(r16) _BFGET_(r16,15, 2) |
| #define SET16MV_X(r16,v) _BFSET_(r16,15, 2,v) |
| |
| #define GET32MV_type(r32) _BFGET_(r32,18,16) |
| #define SET32MV_type(r32,v) _BFSET_(r32,18,16,v) |
| #define GET16MV_type(r16) _BFGET_(r16, 2, 0) |
| #define SET16MV_type(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32MV_Y(r32) _BFGET_(r32,31,19) |
| #define SET32MV_Y(r32,v) _BFSET_(r32,31,19,v) |
| #define GET16MV_Y(r16) _BFGET_(r16,15, 3) |
| #define SET16MV_Y(r16,v) _BFSET_(r16,15, 3,v) |
| |
| UNSG32 u_motion : 2; |
| UNSG32 s_X : 14; |
| UNSG32 u_type : 3; |
| UNSG32 s_Y : 13; |
| /////////////////////////////////////////////////////////// |
| } SIE_MV; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 MV_drvrd(SIE_MV *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 MV_drvwr(SIE_MV *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void MV_reset(SIE_MV *p); |
| SIGN32 MV_cmp (SIE_MV *p, SIE_MV *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define MV_check(p,pie,pfx,hLOG) MV_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define MV_print(p, pfx,hLOG) MV_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: MV |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE FCTX biu (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 6 rBID |
| /// ### |
| /// * Flatten 4x4s in each 8x8, |
| /// * 0 for intra (as well as direct mode between parser & syntax processor): |
| /// * Reference buffer ID, last 1b indicates access mode: |
| /// * 0: frame/progressive or top field |
| /// * 1: bottom field |
| /// ### |
| /// %unsigned 5 rIDX |
| /// ### |
| /// * Flatten 4x4s in each 8x8, |
| /// * 0 for intra (as well as P/B-skip & direct mode between parser & syntax processor): |
| /// * Syntax 'RefListIdx' directly decoded from bit stream (field information embedded) |
| /// ### |
| /// %unsigned 1 FLD |
| /// ### |
| /// * Flatten 4x4s in each 8x8: |
| /// * 1 for MBAFF field MB, 0 for otherwise |
| /// ### |
| /// %unsigned 1 equalpred |
| /// ### |
| /// * BLK property for CABAC only: |
| /// * Using block category ACV, |
| /// * (But flatten to all 4x4s in each 8x8s): |
| /// * = !Intra && !skipped && (bi-pred || fore-pred) |
| /// * NOTE: = 0 for direct mode |
| /// * VC-1: |
| /// * PMV output: for hybridPred |
| /// * PMV input: predictor_flag (0: use dominant PMV) |
| /// ### |
| /// %unsigned 1 transform |
| /// ### |
| /// * MB property (flatten in all 4x4s): |
| /// * H.264: if 8x8 transform |
| /// * Others: if field transform |
| /// ### |
| /// %unsigned 1 NCBPY |
| /// ### |
| /// * Loop-filter & CABAC use only: |
| /// * Luma using block category ACV (4th 4x4), |
| /// * (But flatten to all 4x4s in each 8x8s): |
| /// * = !(IPCM || cbp_luma) |
| /// ### |
| /// %unsigned 1 MixFLG |
| /// ### |
| /// * CABAC use only: |
| /// * CBP chroma using block category DCU/DCV, |
| /// * (Only at 3rd & 4th 4x4s in 3rd 8x8): |
| /// * bin[0]: IPCM || !(skipped || (cbp_chroma == 0)) |
| /// * bin[1]: IPCM || !(skipped || (cbp_chroma != 2)) |
| /// * Or: |
| /// * mb_type using block category DCY, |
| /// * (Only at 4th 4x4 in 4th 8x8): |
| /// * I_SLICE: = !I_NXN |
| /// * P_SLICE: = 0 |
| /// * B_SLICE: = !skipped && !direct_16x16 |
| /// * Or: |
| /// * intra-chroma_pred using block category DCI, |
| /// * (Only at 3rd 4x4 in 4th 8x8): |
| /// * = Intra && !IPCM && (intra_chroma_pred != 0) |
| /// * Or: |
| /// * Temporal context buffers for direct mode use |
| /// ### |
| /// : 8x8 0x1 |
| /// ### |
| /// * Only at 1st 4x4 in 1st 8x8: |
| /// * = if MB contains no sub-8x8 partition |
| /// ### |
| /// : 16x16 0x1 |
| /// ### |
| /// * Only at 1st 4x4 in 2nd 8x8: |
| /// * = if MB contains only 1 partition (16x16) |
| /// ### |
| /// %unsigned 1 CBFY |
| /// ### |
| /// * Loop-filter & CABAC use only: |
| /// * Using block category ACY (every 4x4s): |
| /// * = IPCM || cbf_luma_ac |
| /// ### |
| /// %unsigned 1 CBFUV |
| /// ### |
| /// * CABAC use only: |
| /// * Using block category ACU/ACV, |
| /// * (Only at 3rd & 4th 4x4 in each 8x8s): |
| /// * = IPCM || cbf_chroma_ac |
| /// ### |
| /// %unsigned 1 CBFDC |
| /// ### |
| /// * CABAC use only: |
| /// * LumaDC using block category DCY, |
| /// * (Only at 4th 4x4 in 4th 8x8): |
| /// * = IPCM || (I_16x16 && cbf_luma_dc) |
| /// * ChromaDC using block category DCU/DCV, |
| /// * (Only at 3rd 4x4 in 3rd & 4th 8x8): |
| /// * = IPCM || cbf_chroma_dc |
| /// ### |
| /// %unsigned 6 ABSMVDX |
| /// ### |
| /// * CABAC use only: |
| /// * MIN( ABS(MVD.x), 63 ) |
| /// ### |
| /// %unsigned 7 ABSMVDY |
| /// ### |
| /// * CABAC use only: |
| /// * MIN( ABS(MVD.y), 127 ) |
| /// ### |
| /// @ 0x00004 (P) |
| /// # 0x00004 mv |
| /// $MV mv REG |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_FCTX |
| #define h_FCTX (){} |
| |
| #define BA_FCTX_rBID 0x0000 |
| #define B16FCTX_rBID 0x0000 |
| #define LSb32FCTX_rBID 0 |
| #define LSb16FCTX_rBID 0 |
| #define bFCTX_rBID 6 |
| #define MSK32FCTX_rBID 0x0000003F |
| |
| #define BA_FCTX_rIDX 0x0000 |
| #define B16FCTX_rIDX 0x0000 |
| #define LSb32FCTX_rIDX 6 |
| #define LSb16FCTX_rIDX 6 |
| #define bFCTX_rIDX 5 |
| #define MSK32FCTX_rIDX 0x000007C0 |
| |
| #define BA_FCTX_FLD 0x0001 |
| #define B16FCTX_FLD 0x0000 |
| #define LSb32FCTX_FLD 11 |
| #define LSb16FCTX_FLD 11 |
| #define bFCTX_FLD 1 |
| #define MSK32FCTX_FLD 0x00000800 |
| |
| #define BA_FCTX_equalpred 0x0001 |
| #define B16FCTX_equalpred 0x0000 |
| #define LSb32FCTX_equalpred 12 |
| #define LSb16FCTX_equalpred 12 |
| #define bFCTX_equalpred 1 |
| #define MSK32FCTX_equalpred 0x00001000 |
| |
| #define BA_FCTX_transform 0x0001 |
| #define B16FCTX_transform 0x0000 |
| #define LSb32FCTX_transform 13 |
| #define LSb16FCTX_transform 13 |
| #define bFCTX_transform 1 |
| #define MSK32FCTX_transform 0x00002000 |
| |
| #define BA_FCTX_NCBPY 0x0001 |
| #define B16FCTX_NCBPY 0x0000 |
| #define LSb32FCTX_NCBPY 14 |
| #define LSb16FCTX_NCBPY 14 |
| #define bFCTX_NCBPY 1 |
| #define MSK32FCTX_NCBPY 0x00004000 |
| |
| #define BA_FCTX_MixFLG 0x0001 |
| #define B16FCTX_MixFLG 0x0000 |
| #define LSb32FCTX_MixFLG 15 |
| #define LSb16FCTX_MixFLG 15 |
| #define bFCTX_MixFLG 1 |
| #define MSK32FCTX_MixFLG 0x00008000 |
| #define FCTX_MixFLG_8x8 0x1 |
| #define FCTX_MixFLG_16x16 0x1 |
| |
| #define BA_FCTX_CBFY 0x0002 |
| #define B16FCTX_CBFY 0x0002 |
| #define LSb32FCTX_CBFY 16 |
| #define LSb16FCTX_CBFY 0 |
| #define bFCTX_CBFY 1 |
| #define MSK32FCTX_CBFY 0x00010000 |
| |
| #define BA_FCTX_CBFUV 0x0002 |
| #define B16FCTX_CBFUV 0x0002 |
| #define LSb32FCTX_CBFUV 17 |
| #define LSb16FCTX_CBFUV 1 |
| #define bFCTX_CBFUV 1 |
| #define MSK32FCTX_CBFUV 0x00020000 |
| |
| #define BA_FCTX_CBFDC 0x0002 |
| #define B16FCTX_CBFDC 0x0002 |
| #define LSb32FCTX_CBFDC 18 |
| #define LSb16FCTX_CBFDC 2 |
| #define bFCTX_CBFDC 1 |
| #define MSK32FCTX_CBFDC 0x00040000 |
| |
| #define BA_FCTX_ABSMVDX 0x0002 |
| #define B16FCTX_ABSMVDX 0x0002 |
| #define LSb32FCTX_ABSMVDX 19 |
| #define LSb16FCTX_ABSMVDX 3 |
| #define bFCTX_ABSMVDX 6 |
| #define MSK32FCTX_ABSMVDX 0x01F80000 |
| |
| #define BA_FCTX_ABSMVDY 0x0003 |
| #define B16FCTX_ABSMVDY 0x0002 |
| #define LSb32FCTX_ABSMVDY 25 |
| #define LSb16FCTX_ABSMVDY 9 |
| #define bFCTX_ABSMVDY 7 |
| #define MSK32FCTX_ABSMVDY 0xFE000000 |
| /////////////////////////////////////////////////////////// |
| #define RA_FCTX_mv 0x0004 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_FCTX { |
| /////////////////////////////////////////////////////////// |
| #define GET32FCTX_rBID(r32) _BFGET_(r32, 5, 0) |
| #define SET32FCTX_rBID(r32,v) _BFSET_(r32, 5, 0,v) |
| #define GET16FCTX_rBID(r16) _BFGET_(r16, 5, 0) |
| #define SET16FCTX_rBID(r16,v) _BFSET_(r16, 5, 0,v) |
| |
| #define GET32FCTX_rIDX(r32) _BFGET_(r32,10, 6) |
| #define SET32FCTX_rIDX(r32,v) _BFSET_(r32,10, 6,v) |
| #define GET16FCTX_rIDX(r16) _BFGET_(r16,10, 6) |
| #define SET16FCTX_rIDX(r16,v) _BFSET_(r16,10, 6,v) |
| |
| #define GET32FCTX_FLD(r32) _BFGET_(r32,11,11) |
| #define SET32FCTX_FLD(r32,v) _BFSET_(r32,11,11,v) |
| #define GET16FCTX_FLD(r16) _BFGET_(r16,11,11) |
| #define SET16FCTX_FLD(r16,v) _BFSET_(r16,11,11,v) |
| |
| #define GET32FCTX_equalpred(r32) _BFGET_(r32,12,12) |
| #define SET32FCTX_equalpred(r32,v) _BFSET_(r32,12,12,v) |
| #define GET16FCTX_equalpred(r16) _BFGET_(r16,12,12) |
| #define SET16FCTX_equalpred(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32FCTX_transform(r32) _BFGET_(r32,13,13) |
| #define SET32FCTX_transform(r32,v) _BFSET_(r32,13,13,v) |
| #define GET16FCTX_transform(r16) _BFGET_(r16,13,13) |
| #define SET16FCTX_transform(r16,v) _BFSET_(r16,13,13,v) |
| |
| #define GET32FCTX_NCBPY(r32) _BFGET_(r32,14,14) |
| #define SET32FCTX_NCBPY(r32,v) _BFSET_(r32,14,14,v) |
| #define GET16FCTX_NCBPY(r16) _BFGET_(r16,14,14) |
| #define SET16FCTX_NCBPY(r16,v) _BFSET_(r16,14,14,v) |
| |
| #define GET32FCTX_MixFLG(r32) _BFGET_(r32,15,15) |
| #define SET32FCTX_MixFLG(r32,v) _BFSET_(r32,15,15,v) |
| #define GET16FCTX_MixFLG(r16) _BFGET_(r16,15,15) |
| #define SET16FCTX_MixFLG(r16,v) _BFSET_(r16,15,15,v) |
| |
| #define GET32FCTX_CBFY(r32) _BFGET_(r32,16,16) |
| #define SET32FCTX_CBFY(r32,v) _BFSET_(r32,16,16,v) |
| #define GET16FCTX_CBFY(r16) _BFGET_(r16, 0, 0) |
| #define SET16FCTX_CBFY(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32FCTX_CBFUV(r32) _BFGET_(r32,17,17) |
| #define SET32FCTX_CBFUV(r32,v) _BFSET_(r32,17,17,v) |
| #define GET16FCTX_CBFUV(r16) _BFGET_(r16, 1, 1) |
| #define SET16FCTX_CBFUV(r16,v) _BFSET_(r16, 1, 1,v) |
| |
| #define GET32FCTX_CBFDC(r32) _BFGET_(r32,18,18) |
| #define SET32FCTX_CBFDC(r32,v) _BFSET_(r32,18,18,v) |
| #define GET16FCTX_CBFDC(r16) _BFGET_(r16, 2, 2) |
| #define SET16FCTX_CBFDC(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define GET32FCTX_ABSMVDX(r32) _BFGET_(r32,24,19) |
| #define SET32FCTX_ABSMVDX(r32,v) _BFSET_(r32,24,19,v) |
| #define GET16FCTX_ABSMVDX(r16) _BFGET_(r16, 8, 3) |
| #define SET16FCTX_ABSMVDX(r16,v) _BFSET_(r16, 8, 3,v) |
| |
| #define GET32FCTX_ABSMVDY(r32) _BFGET_(r32,31,25) |
| #define SET32FCTX_ABSMVDY(r32,v) _BFSET_(r32,31,25,v) |
| #define GET16FCTX_ABSMVDY(r16) _BFGET_(r16,15, 9) |
| #define SET16FCTX_ABSMVDY(r16,v) _BFSET_(r16,15, 9,v) |
| |
| UNSG32 u_rBID : 6; |
| UNSG32 u_rIDX : 5; |
| UNSG32 u_FLD : 1; |
| UNSG32 u_equalpred : 1; |
| UNSG32 u_transform : 1; |
| UNSG32 u_NCBPY : 1; |
| UNSG32 u_MixFLG : 1; |
| UNSG32 u_CBFY : 1; |
| UNSG32 u_CBFUV : 1; |
| UNSG32 u_CBFDC : 1; |
| UNSG32 u_ABSMVDX : 6; |
| UNSG32 u_ABSMVDY : 7; |
| /////////////////////////////////////////////////////////// |
| SIE_MV ie_mv; |
| /////////////////////////////////////////////////////////// |
| } SIE_FCTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 FCTX_drvrd(SIE_FCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 FCTX_drvwr(SIE_FCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void FCTX_reset(SIE_FCTX *p); |
| SIGN32 FCTX_cmp (SIE_FCTX *p, SIE_FCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define FCTX_check(p,pie,pfx,hLOG) FCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define FCTX_print(p, pfx,hLOG) FCTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: FCTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE FCTX_VC1 biu (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 6 rBID |
| /// ### |
| /// * Flatten 4x4s in each 8x8, |
| /// * 0 for intra (as well as direct mode between parser & syntax processor): |
| /// * Reference buffer ID, last 1b indicates access mode: |
| /// * 0: frame/progressive or top field |
| /// * 1: bottom field |
| /// ### |
| /// %unsigned 5 rIDX |
| /// ### |
| /// * Flatten 4x4s in each 8x8, |
| /// * 0 for intra (as well as P/B-skip & direct mode between parser & syntax processor): |
| /// * Syntax 'RefListIdx' directly decoded from bit stream (field information embedded) |
| /// ### |
| /// %unsigned 1 FLD |
| /// ### |
| /// * Flatten 4x4s in each 8x8: |
| /// * 1 for MBAFF field MB, 0 for otherwise |
| /// ### |
| /// %unsigned 1 equalpred |
| /// ### |
| /// * BLK property for CABAC only: |
| /// * Using block category ACV, |
| /// * (But flatten to all 4x4s in each 8x8s): |
| /// * = !Intra && !skipped && (bi-pred || fore-pred) |
| /// * NOTE: = 0 for direct mode |
| /// * VC-1: |
| /// * PMV output: for hybridPred |
| /// * PMV input: predictor_flag (0: use dominant PMV) |
| /// ### |
| /// %unsigned 1 transform |
| /// ### |
| /// * MB property (flatten in all 4x4s): |
| /// * H.264: if 8x8 transform |
| /// * Others: if field transform |
| /// ### |
| /// %unsigned 1 NCBPY |
| /// ### |
| /// * Loop-filter & CABAC use only: |
| /// * Luma using block category ACV (4th 4x4), |
| /// * (But flatten to all 4x4s in each 8x8s): |
| /// * = !(IPCM || cbp_luma) |
| /// ### |
| /// %unsigned 1 MixFLG |
| /// ### |
| /// * CABAC use only: |
| /// * CBP chroma using block category DCU/DCV, |
| /// * (Only at 3rd & 4th 4x4s in 3rd 8x8): |
| /// * bin[0]: IPCM || !(skipped || (cbp_chroma == 0)) |
| /// * bin[1]: IPCM || !(skipped || (cbp_chroma != 2)) |
| /// * Or: |
| /// * mb_type using block category DCY, |
| /// * (Only at 4th 4x4 in 4th 8x8): |
| /// * I_SLICE: = !I_NXN |
| /// * P_SLICE: = 0 |
| /// * B_SLICE: = !skipped && !direct_16x16 |
| /// * Or: |
| /// * intra-chroma_pred using block category DCI, |
| /// * (Only at 3rd 4x4 in 4th 8x8): |
| /// * = Intra && !IPCM && (intra_chroma_pred != 0) |
| /// * Or: |
| /// * Temporal context buffers for direct mode use |
| /// ### |
| /// : 8x8 0x1 |
| /// ### |
| /// * Only at 1st 4x4 in 1st 8x8: |
| /// * = if MB contains no sub-8x8 partition |
| /// ### |
| /// : 16x16 0x1 |
| /// ### |
| /// * Only at 1st 4x4 in 2nd 8x8: |
| /// * = if MB contains only 1 partition (16x16) |
| /// ### |
| /// %unsigned 2 dctSelY |
| /// : 4x4 0x0 |
| /// : 8x8 0x1 |
| /// : 4x8 0x2 |
| /// : 8x4 0x3 |
| /// ### |
| /// * DCT transform type for Y, used for VC-1 Fop |
| /// * flattened to all 4x4 blocks within transform block |
| /// ### |
| /// %unsigned 1 CBFY |
| /// ### |
| /// * coded block (4x4) flag for Y, used for VC-1 Fop |
| /// ### |
| /// %unsigned 1 CBFY8x8 |
| /// ### |
| /// * coded block (8x8) flag for Y, used for VC-1 MP Fop |
| /// ### |
| /// %unsigned 12 RSVD12 |
| /// @ 0x00004 (P) |
| /// # 0x00004 mv |
| /// $MV mv REG |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_FCTX_VC1 |
| #define h_FCTX_VC1 (){} |
| |
| #define BA_FCTX_VC1_rBID 0x0000 |
| #define B16FCTX_VC1_rBID 0x0000 |
| #define LSb32FCTX_VC1_rBID 0 |
| #define LSb16FCTX_VC1_rBID 0 |
| #define bFCTX_VC1_rBID 6 |
| #define MSK32FCTX_VC1_rBID 0x0000003F |
| |
| #define BA_FCTX_VC1_rIDX 0x0000 |
| #define B16FCTX_VC1_rIDX 0x0000 |
| #define LSb32FCTX_VC1_rIDX 6 |
| #define LSb16FCTX_VC1_rIDX 6 |
| #define bFCTX_VC1_rIDX 5 |
| #define MSK32FCTX_VC1_rIDX 0x000007C0 |
| |
| #define BA_FCTX_VC1_FLD 0x0001 |
| #define B16FCTX_VC1_FLD 0x0000 |
| #define LSb32FCTX_VC1_FLD 11 |
| #define LSb16FCTX_VC1_FLD 11 |
| #define bFCTX_VC1_FLD 1 |
| #define MSK32FCTX_VC1_FLD 0x00000800 |
| |
| #define BA_FCTX_VC1_equalpred 0x0001 |
| #define B16FCTX_VC1_equalpred 0x0000 |
| #define LSb32FCTX_VC1_equalpred 12 |
| #define LSb16FCTX_VC1_equalpred 12 |
| #define bFCTX_VC1_equalpred 1 |
| #define MSK32FCTX_VC1_equalpred 0x00001000 |
| |
| #define BA_FCTX_VC1_transform 0x0001 |
| #define B16FCTX_VC1_transform 0x0000 |
| #define LSb32FCTX_VC1_transform 13 |
| #define LSb16FCTX_VC1_transform 13 |
| #define bFCTX_VC1_transform 1 |
| #define MSK32FCTX_VC1_transform 0x00002000 |
| |
| #define BA_FCTX_VC1_NCBPY 0x0001 |
| #define B16FCTX_VC1_NCBPY 0x0000 |
| #define LSb32FCTX_VC1_NCBPY 14 |
| #define LSb16FCTX_VC1_NCBPY 14 |
| #define bFCTX_VC1_NCBPY 1 |
| #define MSK32FCTX_VC1_NCBPY 0x00004000 |
| |
| #define BA_FCTX_VC1_MixFLG 0x0001 |
| #define B16FCTX_VC1_MixFLG 0x0000 |
| #define LSb32FCTX_VC1_MixFLG 15 |
| #define LSb16FCTX_VC1_MixFLG 15 |
| #define bFCTX_VC1_MixFLG 1 |
| #define MSK32FCTX_VC1_MixFLG 0x00008000 |
| #define FCTX_VC1_MixFLG_8x8 0x1 |
| #define FCTX_VC1_MixFLG_16x16 0x1 |
| |
| #define BA_FCTX_VC1_dctSelY 0x0002 |
| #define B16FCTX_VC1_dctSelY 0x0002 |
| #define LSb32FCTX_VC1_dctSelY 16 |
| #define LSb16FCTX_VC1_dctSelY 0 |
| #define bFCTX_VC1_dctSelY 2 |
| #define MSK32FCTX_VC1_dctSelY 0x00030000 |
| #define FCTX_VC1_dctSelY_4x4 0x0 |
| #define FCTX_VC1_dctSelY_8x8 0x1 |
| #define FCTX_VC1_dctSelY_4x8 0x2 |
| #define FCTX_VC1_dctSelY_8x4 0x3 |
| |
| #define BA_FCTX_VC1_CBFY 0x0002 |
| #define B16FCTX_VC1_CBFY 0x0002 |
| #define LSb32FCTX_VC1_CBFY 18 |
| #define LSb16FCTX_VC1_CBFY 2 |
| #define bFCTX_VC1_CBFY 1 |
| #define MSK32FCTX_VC1_CBFY 0x00040000 |
| |
| #define BA_FCTX_VC1_CBFY8x8 0x0002 |
| #define B16FCTX_VC1_CBFY8x8 0x0002 |
| #define LSb32FCTX_VC1_CBFY8x8 19 |
| #define LSb16FCTX_VC1_CBFY8x8 3 |
| #define bFCTX_VC1_CBFY8x8 1 |
| #define MSK32FCTX_VC1_CBFY8x8 0x00080000 |
| |
| #define BA_FCTX_VC1_RSVD12 0x0002 |
| #define B16FCTX_VC1_RSVD12 0x0002 |
| #define LSb32FCTX_VC1_RSVD12 20 |
| #define LSb16FCTX_VC1_RSVD12 4 |
| #define bFCTX_VC1_RSVD12 12 |
| #define MSK32FCTX_VC1_RSVD12 0xFFF00000 |
| /////////////////////////////////////////////////////////// |
| #define RA_FCTX_VC1_mv 0x0004 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_FCTX_VC1 { |
| /////////////////////////////////////////////////////////// |
| #define GET32FCTX_VC1_rBID(r32) _BFGET_(r32, 5, 0) |
| #define SET32FCTX_VC1_rBID(r32,v) _BFSET_(r32, 5, 0,v) |
| #define GET16FCTX_VC1_rBID(r16) _BFGET_(r16, 5, 0) |
| #define SET16FCTX_VC1_rBID(r16,v) _BFSET_(r16, 5, 0,v) |
| |
| #define GET32FCTX_VC1_rIDX(r32) _BFGET_(r32,10, 6) |
| #define SET32FCTX_VC1_rIDX(r32,v) _BFSET_(r32,10, 6,v) |
| #define GET16FCTX_VC1_rIDX(r16) _BFGET_(r16,10, 6) |
| #define SET16FCTX_VC1_rIDX(r16,v) _BFSET_(r16,10, 6,v) |
| |
| #define GET32FCTX_VC1_FLD(r32) _BFGET_(r32,11,11) |
| #define SET32FCTX_VC1_FLD(r32,v) _BFSET_(r32,11,11,v) |
| #define GET16FCTX_VC1_FLD(r16) _BFGET_(r16,11,11) |
| #define SET16FCTX_VC1_FLD(r16,v) _BFSET_(r16,11,11,v) |
| |
| #define GET32FCTX_VC1_equalpred(r32) _BFGET_(r32,12,12) |
| #define SET32FCTX_VC1_equalpred(r32,v) _BFSET_(r32,12,12,v) |
| #define GET16FCTX_VC1_equalpred(r16) _BFGET_(r16,12,12) |
| #define SET16FCTX_VC1_equalpred(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32FCTX_VC1_transform(r32) _BFGET_(r32,13,13) |
| #define SET32FCTX_VC1_transform(r32,v) _BFSET_(r32,13,13,v) |
| #define GET16FCTX_VC1_transform(r16) _BFGET_(r16,13,13) |
| #define SET16FCTX_VC1_transform(r16,v) _BFSET_(r16,13,13,v) |
| |
| #define GET32FCTX_VC1_NCBPY(r32) _BFGET_(r32,14,14) |
| #define SET32FCTX_VC1_NCBPY(r32,v) _BFSET_(r32,14,14,v) |
| #define GET16FCTX_VC1_NCBPY(r16) _BFGET_(r16,14,14) |
| #define SET16FCTX_VC1_NCBPY(r16,v) _BFSET_(r16,14,14,v) |
| |
| #define GET32FCTX_VC1_MixFLG(r32) _BFGET_(r32,15,15) |
| #define SET32FCTX_VC1_MixFLG(r32,v) _BFSET_(r32,15,15,v) |
| #define GET16FCTX_VC1_MixFLG(r16) _BFGET_(r16,15,15) |
| #define SET16FCTX_VC1_MixFLG(r16,v) _BFSET_(r16,15,15,v) |
| |
| #define GET32FCTX_VC1_dctSelY(r32) _BFGET_(r32,17,16) |
| #define SET32FCTX_VC1_dctSelY(r32,v) _BFSET_(r32,17,16,v) |
| #define GET16FCTX_VC1_dctSelY(r16) _BFGET_(r16, 1, 0) |
| #define SET16FCTX_VC1_dctSelY(r16,v) _BFSET_(r16, 1, 0,v) |
| |
| #define GET32FCTX_VC1_CBFY(r32) _BFGET_(r32,18,18) |
| #define SET32FCTX_VC1_CBFY(r32,v) _BFSET_(r32,18,18,v) |
| #define GET16FCTX_VC1_CBFY(r16) _BFGET_(r16, 2, 2) |
| #define SET16FCTX_VC1_CBFY(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define GET32FCTX_VC1_CBFY8x8(r32) _BFGET_(r32,19,19) |
| #define SET32FCTX_VC1_CBFY8x8(r32,v) _BFSET_(r32,19,19,v) |
| #define GET16FCTX_VC1_CBFY8x8(r16) _BFGET_(r16, 3, 3) |
| #define SET16FCTX_VC1_CBFY8x8(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32FCTX_VC1_RSVD12(r32) _BFGET_(r32,31,20) |
| #define SET32FCTX_VC1_RSVD12(r32,v) _BFSET_(r32,31,20,v) |
| #define GET16FCTX_VC1_RSVD12(r16) _BFGET_(r16,15, 4) |
| #define SET16FCTX_VC1_RSVD12(r16,v) _BFSET_(r16,15, 4,v) |
| |
| UNSG32 u_rBID : 6; |
| UNSG32 u_rIDX : 5; |
| UNSG32 u_FLD : 1; |
| UNSG32 u_equalpred : 1; |
| UNSG32 u_transform : 1; |
| UNSG32 u_NCBPY : 1; |
| UNSG32 u_MixFLG : 1; |
| UNSG32 u_dctSelY : 2; |
| UNSG32 u_CBFY : 1; |
| UNSG32 u_CBFY8x8 : 1; |
| UNSG32 u_RSVD12 : 12; |
| /////////////////////////////////////////////////////////// |
| SIE_MV ie_mv; |
| /////////////////////////////////////////////////////////// |
| } SIE_FCTX_VC1; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 FCTX_VC1_drvrd(SIE_FCTX_VC1 *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 FCTX_VC1_drvwr(SIE_FCTX_VC1 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void FCTX_VC1_reset(SIE_FCTX_VC1 *p); |
| SIGN32 FCTX_VC1_cmp (SIE_FCTX_VC1 *p, SIE_FCTX_VC1 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define FCTX_VC1_check(p,pie,pfx,hLOG) FCTX_VC1_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define FCTX_VC1_print(p, pfx,hLOG) FCTX_VC1_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: FCTX_VC1 |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE FCTX_RV9 biu (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 6 rBID |
| /// ### |
| /// * Flatten 4x4s in each 8x8, |
| /// * 0 for intra (as well as direct mode between parser & syntax processor): |
| /// * Reference buffer ID, last 1b indicates access mode: |
| /// * 0: frame/progressive or top field |
| /// * 1: bottom field |
| /// ### |
| /// %unsigned 5 rIDX |
| /// ### |
| /// * Flatten 4x4s in each 8x8, |
| /// * 0 for intra (as well as P/B-skip & direct mode between parser & syntax processor): |
| /// * Syntax 'RefListIdx' directly decoded from bit stream (field information embedded) |
| /// ### |
| /// %unsigned 1 FLD |
| /// ### |
| /// * Flatten 4x4s in each 8x8: |
| /// * 1 for MBAFF field MB, 0 for otherwise |
| /// ### |
| /// %unsigned 1 equalpred |
| /// ### |
| /// * BLK property for CABAC only: |
| /// * Using block category ACV, |
| /// * (But flatten to all 4x4s in each 8x8s): |
| /// * = !Intra && !skipped && (bi-pred || fore-pred) |
| /// * NOTE: = 0 for direct mode |
| /// * VC-1: |
| /// * PMV output: for hybridPred |
| /// * PMV input: predictor_flag (0: use dominant PMV) |
| /// ### |
| /// %unsigned 1 transform |
| /// ### |
| /// * MB property (flatten in all 4x4s): |
| /// * H.264: if 8x8 transform |
| /// * Others: if field transform |
| /// ### |
| /// %unsigned 1 NCBPY |
| /// ### |
| /// * Loop-filter & CABAC use only: |
| /// * Luma using block category ACV (4th 4x4), |
| /// * (But flatten to all 4x4s in each 8x8s): |
| /// * = !(IPCM || cbp_luma) |
| /// ### |
| /// %unsigned 1 MixFLG |
| /// ### |
| /// * CABAC use only: |
| /// * CBP chroma using block category DCU/DCV, |
| /// * (Only at 3rd & 4th 4x4s in 3rd 8x8): |
| /// * bin[0]: IPCM || !(skipped || (cbp_chroma == 0)) |
| /// * bin[1]: IPCM || !(skipped || (cbp_chroma != 2)) |
| /// * Or: |
| /// * mb_type using block category DCY, |
| /// * (Only at 4th 4x4 in 4th 8x8): |
| /// * I_SLICE: = !I_NXN |
| /// * P_SLICE: = 0 |
| /// * B_SLICE: = !skipped && !direct_16x16 |
| /// * Or: |
| /// * intra-chroma_pred using block category DCI, |
| /// * (Only at 3rd 4x4 in 4th 8x8): |
| /// * = Intra && !IPCM && (intra_chroma_pred != 0) |
| /// * Or: |
| /// * Temporal context buffers for direct mode use |
| /// ### |
| /// : 8x8 0x1 |
| /// ### |
| /// * Only at 1st 4x4 in 1st 8x8: |
| /// * = if MB contains no sub-8x8 partition |
| /// ### |
| /// : 16x16 0x1 |
| /// ### |
| /// * Only at 1st 4x4 in 2nd 8x8: |
| /// * = if MB contains only 1 partition (16x16) |
| /// ### |
| /// %unsigned 1 CBPY |
| /// ### |
| /// * CBP for Y |
| /// ### |
| /// %unsigned 1 CBPU |
| /// ### |
| /// * CBP for U |
| /// ### |
| /// %unsigned 1 CBPV |
| /// ### |
| /// * CBP for Y |
| /// ### |
| /// %unsigned 2 BsY |
| /// ### |
| /// * Block strength for Y |
| /// ### |
| /// %unsigned 2 BsU |
| /// ### |
| /// * Block strength for U |
| /// ### |
| /// %unsigned 2 BsV |
| /// ### |
| /// * Block strength for V |
| /// ### |
| /// %unsigned 7 Rsvd |
| /// ### |
| /// * Reserved |
| /// ### |
| /// @ 0x00004 (P) |
| /// # 0x00004 mv |
| /// $MV mv REG |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_FCTX_RV9 |
| #define h_FCTX_RV9 (){} |
| |
| #define BA_FCTX_RV9_rBID 0x0000 |
| #define B16FCTX_RV9_rBID 0x0000 |
| #define LSb32FCTX_RV9_rBID 0 |
| #define LSb16FCTX_RV9_rBID 0 |
| #define bFCTX_RV9_rBID 6 |
| #define MSK32FCTX_RV9_rBID 0x0000003F |
| |
| #define BA_FCTX_RV9_rIDX 0x0000 |
| #define B16FCTX_RV9_rIDX 0x0000 |
| #define LSb32FCTX_RV9_rIDX 6 |
| #define LSb16FCTX_RV9_rIDX 6 |
| #define bFCTX_RV9_rIDX 5 |
| #define MSK32FCTX_RV9_rIDX 0x000007C0 |
| |
| #define BA_FCTX_RV9_FLD 0x0001 |
| #define B16FCTX_RV9_FLD 0x0000 |
| #define LSb32FCTX_RV9_FLD 11 |
| #define LSb16FCTX_RV9_FLD 11 |
| #define bFCTX_RV9_FLD 1 |
| #define MSK32FCTX_RV9_FLD 0x00000800 |
| |
| #define BA_FCTX_RV9_equalpred 0x0001 |
| #define B16FCTX_RV9_equalpred 0x0000 |
| #define LSb32FCTX_RV9_equalpred 12 |
| #define LSb16FCTX_RV9_equalpred 12 |
| #define bFCTX_RV9_equalpred 1 |
| #define MSK32FCTX_RV9_equalpred 0x00001000 |
| |
| #define BA_FCTX_RV9_transform 0x0001 |
| #define B16FCTX_RV9_transform 0x0000 |
| #define LSb32FCTX_RV9_transform 13 |
| #define LSb16FCTX_RV9_transform 13 |
| #define bFCTX_RV9_transform 1 |
| #define MSK32FCTX_RV9_transform 0x00002000 |
| |
| #define BA_FCTX_RV9_NCBPY 0x0001 |
| #define B16FCTX_RV9_NCBPY 0x0000 |
| #define LSb32FCTX_RV9_NCBPY 14 |
| #define LSb16FCTX_RV9_NCBPY 14 |
| #define bFCTX_RV9_NCBPY 1 |
| #define MSK32FCTX_RV9_NCBPY 0x00004000 |
| |
| #define BA_FCTX_RV9_MixFLG 0x0001 |
| #define B16FCTX_RV9_MixFLG 0x0000 |
| #define LSb32FCTX_RV9_MixFLG 15 |
| #define LSb16FCTX_RV9_MixFLG 15 |
| #define bFCTX_RV9_MixFLG 1 |
| #define MSK32FCTX_RV9_MixFLG 0x00008000 |
| #define FCTX_RV9_MixFLG_8x8 0x1 |
| #define FCTX_RV9_MixFLG_16x16 0x1 |
| |
| #define BA_FCTX_RV9_CBPY 0x0002 |
| #define B16FCTX_RV9_CBPY 0x0002 |
| #define LSb32FCTX_RV9_CBPY 16 |
| #define LSb16FCTX_RV9_CBPY 0 |
| #define bFCTX_RV9_CBPY 1 |
| #define MSK32FCTX_RV9_CBPY 0x00010000 |
| |
| #define BA_FCTX_RV9_CBPU 0x0002 |
| #define B16FCTX_RV9_CBPU 0x0002 |
| #define LSb32FCTX_RV9_CBPU 17 |
| #define LSb16FCTX_RV9_CBPU 1 |
| #define bFCTX_RV9_CBPU 1 |
| #define MSK32FCTX_RV9_CBPU 0x00020000 |
| |
| #define BA_FCTX_RV9_CBPV 0x0002 |
| #define B16FCTX_RV9_CBPV 0x0002 |
| #define LSb32FCTX_RV9_CBPV 18 |
| #define LSb16FCTX_RV9_CBPV 2 |
| #define bFCTX_RV9_CBPV 1 |
| #define MSK32FCTX_RV9_CBPV 0x00040000 |
| |
| #define BA_FCTX_RV9_BsY 0x0002 |
| #define B16FCTX_RV9_BsY 0x0002 |
| #define LSb32FCTX_RV9_BsY 19 |
| #define LSb16FCTX_RV9_BsY 3 |
| #define bFCTX_RV9_BsY 2 |
| #define MSK32FCTX_RV9_BsY 0x00180000 |
| |
| #define BA_FCTX_RV9_BsU 0x0002 |
| #define B16FCTX_RV9_BsU 0x0002 |
| #define LSb32FCTX_RV9_BsU 21 |
| #define LSb16FCTX_RV9_BsU 5 |
| #define bFCTX_RV9_BsU 2 |
| #define MSK32FCTX_RV9_BsU 0x00600000 |
| |
| #define BA_FCTX_RV9_BsV 0x0002 |
| #define B16FCTX_RV9_BsV 0x0002 |
| #define LSb32FCTX_RV9_BsV 23 |
| #define LSb16FCTX_RV9_BsV 7 |
| #define bFCTX_RV9_BsV 2 |
| #define MSK32FCTX_RV9_BsV 0x01800000 |
| |
| #define BA_FCTX_RV9_Rsvd 0x0003 |
| #define B16FCTX_RV9_Rsvd 0x0002 |
| #define LSb32FCTX_RV9_Rsvd 25 |
| #define LSb16FCTX_RV9_Rsvd 9 |
| #define bFCTX_RV9_Rsvd 7 |
| #define MSK32FCTX_RV9_Rsvd 0xFE000000 |
| /////////////////////////////////////////////////////////// |
| #define RA_FCTX_RV9_mv 0x0004 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_FCTX_RV9 { |
| /////////////////////////////////////////////////////////// |
| #define GET32FCTX_RV9_rBID(r32) _BFGET_(r32, 5, 0) |
| #define SET32FCTX_RV9_rBID(r32,v) _BFSET_(r32, 5, 0,v) |
| #define GET16FCTX_RV9_rBID(r16) _BFGET_(r16, 5, 0) |
| #define SET16FCTX_RV9_rBID(r16,v) _BFSET_(r16, 5, 0,v) |
| |
| #define GET32FCTX_RV9_rIDX(r32) _BFGET_(r32,10, 6) |
| #define SET32FCTX_RV9_rIDX(r32,v) _BFSET_(r32,10, 6,v) |
| #define GET16FCTX_RV9_rIDX(r16) _BFGET_(r16,10, 6) |
| #define SET16FCTX_RV9_rIDX(r16,v) _BFSET_(r16,10, 6,v) |
| |
| #define GET32FCTX_RV9_FLD(r32) _BFGET_(r32,11,11) |
| #define SET32FCTX_RV9_FLD(r32,v) _BFSET_(r32,11,11,v) |
| #define GET16FCTX_RV9_FLD(r16) _BFGET_(r16,11,11) |
| #define SET16FCTX_RV9_FLD(r16,v) _BFSET_(r16,11,11,v) |
| |
| #define GET32FCTX_RV9_equalpred(r32) _BFGET_(r32,12,12) |
| #define SET32FCTX_RV9_equalpred(r32,v) _BFSET_(r32,12,12,v) |
| #define GET16FCTX_RV9_equalpred(r16) _BFGET_(r16,12,12) |
| #define SET16FCTX_RV9_equalpred(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32FCTX_RV9_transform(r32) _BFGET_(r32,13,13) |
| #define SET32FCTX_RV9_transform(r32,v) _BFSET_(r32,13,13,v) |
| #define GET16FCTX_RV9_transform(r16) _BFGET_(r16,13,13) |
| #define SET16FCTX_RV9_transform(r16,v) _BFSET_(r16,13,13,v) |
| |
| #define GET32FCTX_RV9_NCBPY(r32) _BFGET_(r32,14,14) |
| #define SET32FCTX_RV9_NCBPY(r32,v) _BFSET_(r32,14,14,v) |
| #define GET16FCTX_RV9_NCBPY(r16) _BFGET_(r16,14,14) |
| #define SET16FCTX_RV9_NCBPY(r16,v) _BFSET_(r16,14,14,v) |
| |
| #define GET32FCTX_RV9_MixFLG(r32) _BFGET_(r32,15,15) |
| #define SET32FCTX_RV9_MixFLG(r32,v) _BFSET_(r32,15,15,v) |
| #define GET16FCTX_RV9_MixFLG(r16) _BFGET_(r16,15,15) |
| #define SET16FCTX_RV9_MixFLG(r16,v) _BFSET_(r16,15,15,v) |
| |
| #define GET32FCTX_RV9_CBPY(r32) _BFGET_(r32,16,16) |
| #define SET32FCTX_RV9_CBPY(r32,v) _BFSET_(r32,16,16,v) |
| #define GET16FCTX_RV9_CBPY(r16) _BFGET_(r16, 0, 0) |
| #define SET16FCTX_RV9_CBPY(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32FCTX_RV9_CBPU(r32) _BFGET_(r32,17,17) |
| #define SET32FCTX_RV9_CBPU(r32,v) _BFSET_(r32,17,17,v) |
| #define GET16FCTX_RV9_CBPU(r16) _BFGET_(r16, 1, 1) |
| #define SET16FCTX_RV9_CBPU(r16,v) _BFSET_(r16, 1, 1,v) |
| |
| #define GET32FCTX_RV9_CBPV(r32) _BFGET_(r32,18,18) |
| #define SET32FCTX_RV9_CBPV(r32,v) _BFSET_(r32,18,18,v) |
| #define GET16FCTX_RV9_CBPV(r16) _BFGET_(r16, 2, 2) |
| #define SET16FCTX_RV9_CBPV(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define GET32FCTX_RV9_BsY(r32) _BFGET_(r32,20,19) |
| #define SET32FCTX_RV9_BsY(r32,v) _BFSET_(r32,20,19,v) |
| #define GET16FCTX_RV9_BsY(r16) _BFGET_(r16, 4, 3) |
| #define SET16FCTX_RV9_BsY(r16,v) _BFSET_(r16, 4, 3,v) |
| |
| #define GET32FCTX_RV9_BsU(r32) _BFGET_(r32,22,21) |
| #define SET32FCTX_RV9_BsU(r32,v) _BFSET_(r32,22,21,v) |
| #define GET16FCTX_RV9_BsU(r16) _BFGET_(r16, 6, 5) |
| #define SET16FCTX_RV9_BsU(r16,v) _BFSET_(r16, 6, 5,v) |
| |
| #define GET32FCTX_RV9_BsV(r32) _BFGET_(r32,24,23) |
| #define SET32FCTX_RV9_BsV(r32,v) _BFSET_(r32,24,23,v) |
| #define GET16FCTX_RV9_BsV(r16) _BFGET_(r16, 8, 7) |
| #define SET16FCTX_RV9_BsV(r16,v) _BFSET_(r16, 8, 7,v) |
| |
| #define GET32FCTX_RV9_Rsvd(r32) _BFGET_(r32,31,25) |
| #define SET32FCTX_RV9_Rsvd(r32,v) _BFSET_(r32,31,25,v) |
| #define GET16FCTX_RV9_Rsvd(r16) _BFGET_(r16,15, 9) |
| #define SET16FCTX_RV9_Rsvd(r16,v) _BFSET_(r16,15, 9,v) |
| |
| UNSG32 u_rBID : 6; |
| UNSG32 u_rIDX : 5; |
| UNSG32 u_FLD : 1; |
| UNSG32 u_equalpred : 1; |
| UNSG32 u_transform : 1; |
| UNSG32 u_NCBPY : 1; |
| UNSG32 u_MixFLG : 1; |
| UNSG32 u_CBPY : 1; |
| UNSG32 u_CBPU : 1; |
| UNSG32 u_CBPV : 1; |
| UNSG32 u_BsY : 2; |
| UNSG32 u_BsU : 2; |
| UNSG32 u_BsV : 2; |
| UNSG32 u_Rsvd : 7; |
| /////////////////////////////////////////////////////////// |
| SIE_MV ie_mv; |
| /////////////////////////////////////////////////////////// |
| } SIE_FCTX_RV9; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 FCTX_RV9_drvrd(SIE_FCTX_RV9 *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 FCTX_RV9_drvwr(SIE_FCTX_RV9 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void FCTX_RV9_reset(SIE_FCTX_RV9 *p); |
| SIGN32 FCTX_RV9_cmp (SIE_FCTX_RV9 *p, SIE_FCTX_RV9 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define FCTX_RV9_check(p,pie,pfx,hLOG) FCTX_RV9_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define FCTX_RV9_print(p, pfx,hLOG) FCTX_RV9_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: FCTX_RV9 |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE BCTX biu (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 6 rBID |
| /// %unsigned 5 rIDX |
| /// %unsigned 1 FLD |
| /// %unsigned 1 equalpred |
| /// ### |
| /// * BLK property for CABAC only: |
| /// * Using block category ACV, |
| /// * (Only at 4th 4x4 in each 8x8s): |
| /// * = !Intra && !skipped && (bi-pred || back-pred) |
| /// * NOTE: = 0 for direct mode |
| /// ### |
| /// %unsigned 3 RSVD |
| /// ### |
| /// * Reserved |
| /// ### |
| /// %unsigned 3 dctSel |
| /// : 8x8 0x0 |
| /// : 8x4 0x1 |
| /// : 4x8 0x2 |
| /// : 4x4 0x3 |
| /// ### |
| /// * VC-1 use only |
| /// ### |
| /// %unsigned 6 ABSMVDX |
| /// %unsigned 7 ABSMVDY |
| /// @ 0x00004 (P) |
| /// # 0x00004 mv |
| /// $MV mv REG |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_BCTX |
| #define h_BCTX (){} |
| |
| #define BA_BCTX_rBID 0x0000 |
| #define B16BCTX_rBID 0x0000 |
| #define LSb32BCTX_rBID 0 |
| #define LSb16BCTX_rBID 0 |
| #define bBCTX_rBID 6 |
| #define MSK32BCTX_rBID 0x0000003F |
| |
| #define BA_BCTX_rIDX 0x0000 |
| #define B16BCTX_rIDX 0x0000 |
| #define LSb32BCTX_rIDX 6 |
| #define LSb16BCTX_rIDX 6 |
| #define bBCTX_rIDX 5 |
| #define MSK32BCTX_rIDX 0x000007C0 |
| |
| #define BA_BCTX_FLD 0x0001 |
| #define B16BCTX_FLD 0x0000 |
| #define LSb32BCTX_FLD 11 |
| #define LSb16BCTX_FLD 11 |
| #define bBCTX_FLD 1 |
| #define MSK32BCTX_FLD 0x00000800 |
| |
| #define BA_BCTX_equalpred 0x0001 |
| #define B16BCTX_equalpred 0x0000 |
| #define LSb32BCTX_equalpred 12 |
| #define LSb16BCTX_equalpred 12 |
| #define bBCTX_equalpred 1 |
| #define MSK32BCTX_equalpred 0x00001000 |
| |
| #define BA_BCTX_RSVD 0x0001 |
| #define B16BCTX_RSVD 0x0000 |
| #define LSb32BCTX_RSVD 13 |
| #define LSb16BCTX_RSVD 13 |
| #define bBCTX_RSVD 3 |
| #define MSK32BCTX_RSVD 0x0000E000 |
| |
| #define BA_BCTX_dctSel 0x0002 |
| #define B16BCTX_dctSel 0x0002 |
| #define LSb32BCTX_dctSel 16 |
| #define LSb16BCTX_dctSel 0 |
| #define bBCTX_dctSel 3 |
| #define MSK32BCTX_dctSel 0x00070000 |
| #define BCTX_dctSel_8x8 0x0 |
| #define BCTX_dctSel_8x4 0x1 |
| #define BCTX_dctSel_4x8 0x2 |
| #define BCTX_dctSel_4x4 0x3 |
| |
| #define BA_BCTX_ABSMVDX 0x0002 |
| #define B16BCTX_ABSMVDX 0x0002 |
| #define LSb32BCTX_ABSMVDX 19 |
| #define LSb16BCTX_ABSMVDX 3 |
| #define bBCTX_ABSMVDX 6 |
| #define MSK32BCTX_ABSMVDX 0x01F80000 |
| |
| #define BA_BCTX_ABSMVDY 0x0003 |
| #define B16BCTX_ABSMVDY 0x0002 |
| #define LSb32BCTX_ABSMVDY 25 |
| #define LSb16BCTX_ABSMVDY 9 |
| #define bBCTX_ABSMVDY 7 |
| #define MSK32BCTX_ABSMVDY 0xFE000000 |
| /////////////////////////////////////////////////////////// |
| #define RA_BCTX_mv 0x0004 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_BCTX { |
| /////////////////////////////////////////////////////////// |
| #define GET32BCTX_rBID(r32) _BFGET_(r32, 5, 0) |
| #define SET32BCTX_rBID(r32,v) _BFSET_(r32, 5, 0,v) |
| #define GET16BCTX_rBID(r16) _BFGET_(r16, 5, 0) |
| #define SET16BCTX_rBID(r16,v) _BFSET_(r16, 5, 0,v) |
| |
| #define GET32BCTX_rIDX(r32) _BFGET_(r32,10, 6) |
| #define SET32BCTX_rIDX(r32,v) _BFSET_(r32,10, 6,v) |
| #define GET16BCTX_rIDX(r16) _BFGET_(r16,10, 6) |
| #define SET16BCTX_rIDX(r16,v) _BFSET_(r16,10, 6,v) |
| |
| #define GET32BCTX_FLD(r32) _BFGET_(r32,11,11) |
| #define SET32BCTX_FLD(r32,v) _BFSET_(r32,11,11,v) |
| #define GET16BCTX_FLD(r16) _BFGET_(r16,11,11) |
| #define SET16BCTX_FLD(r16,v) _BFSET_(r16,11,11,v) |
| |
| #define GET32BCTX_equalpred(r32) _BFGET_(r32,12,12) |
| #define SET32BCTX_equalpred(r32,v) _BFSET_(r32,12,12,v) |
| #define GET16BCTX_equalpred(r16) _BFGET_(r16,12,12) |
| #define SET16BCTX_equalpred(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32BCTX_RSVD(r32) _BFGET_(r32,15,13) |
| #define SET32BCTX_RSVD(r32,v) _BFSET_(r32,15,13,v) |
| #define GET16BCTX_RSVD(r16) _BFGET_(r16,15,13) |
| #define SET16BCTX_RSVD(r16,v) _BFSET_(r16,15,13,v) |
| |
| #define GET32BCTX_dctSel(r32) _BFGET_(r32,18,16) |
| #define SET32BCTX_dctSel(r32,v) _BFSET_(r32,18,16,v) |
| #define GET16BCTX_dctSel(r16) _BFGET_(r16, 2, 0) |
| #define SET16BCTX_dctSel(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32BCTX_ABSMVDX(r32) _BFGET_(r32,24,19) |
| #define SET32BCTX_ABSMVDX(r32,v) _BFSET_(r32,24,19,v) |
| #define GET16BCTX_ABSMVDX(r16) _BFGET_(r16, 8, 3) |
| #define SET16BCTX_ABSMVDX(r16,v) _BFSET_(r16, 8, 3,v) |
| |
| #define GET32BCTX_ABSMVDY(r32) _BFGET_(r32,31,25) |
| #define SET32BCTX_ABSMVDY(r32,v) _BFSET_(r32,31,25,v) |
| #define GET16BCTX_ABSMVDY(r16) _BFGET_(r16,15, 9) |
| #define SET16BCTX_ABSMVDY(r16,v) _BFSET_(r16,15, 9,v) |
| |
| UNSG32 u_rBID : 6; |
| UNSG32 u_rIDX : 5; |
| UNSG32 u_FLD : 1; |
| UNSG32 u_equalpred : 1; |
| UNSG32 u_RSVD : 3; |
| UNSG32 u_dctSel : 3; |
| UNSG32 u_ABSMVDX : 6; |
| UNSG32 u_ABSMVDY : 7; |
| /////////////////////////////////////////////////////////// |
| SIE_MV ie_mv; |
| /////////////////////////////////////////////////////////// |
| } SIE_BCTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 BCTX_drvrd(SIE_BCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 BCTX_drvwr(SIE_BCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void BCTX_reset(SIE_BCTX *p); |
| SIGN32 BCTX_cmp (SIE_BCTX *p, SIE_BCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define BCTX_check(p,pie,pfx,hLOG) BCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define BCTX_print(p, pfx,hLOG) BCTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: BCTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE BCTX_VC1 biu (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 6 rBID |
| /// %unsigned 5 rIDX |
| /// %unsigned 1 FLD |
| /// %unsigned 1 equalpred |
| /// ### |
| /// * BLK property for CABAC only: |
| /// * Using block category ACV, |
| /// * (Only at 4th 4x4 in each 8x8s): |
| /// * = !Intra && !skipped && (bi-pred || back-pred) |
| /// * NOTE: = 0 for direct mode |
| /// ### |
| /// %unsigned 3 RSVD |
| /// ### |
| /// * Reserved |
| /// ### |
| /// %unsigned 2 dctSelU |
| /// ### |
| /// * DCT transform type for U; used for VC-1 Fop |
| /// ### |
| /// %unsigned 2 dctSelV |
| /// ### |
| /// * DCT transform type for V; used for VC-1 Fop |
| /// ### |
| /// %unsigned 1 CBFU |
| /// ### |
| /// * coded block (4x4) flag for U; used for VC-1 Fop |
| /// ### |
| /// %unsigned 1 CBFV |
| /// ### |
| /// * coded block (4x4) flag for V; used for VC-1 Fop |
| /// ### |
| /// %unsigned 1 CBFU8x8 |
| /// ### |
| /// * coded block (8x8) flag for U, used for VC-1 Fop |
| /// ### |
| /// %unsigned 1 CBFV8x8 |
| /// ### |
| /// * coded block (8x8) flag for V, used for VC-1 Fop |
| /// ### |
| /// %unsigned 8 RSVD8 |
| /// @ 0x00004 (P) |
| /// # 0x00004 mv |
| /// $MV mv REG |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_BCTX_VC1 |
| #define h_BCTX_VC1 (){} |
| |
| #define BA_BCTX_VC1_rBID 0x0000 |
| #define B16BCTX_VC1_rBID 0x0000 |
| #define LSb32BCTX_VC1_rBID 0 |
| #define LSb16BCTX_VC1_rBID 0 |
| #define bBCTX_VC1_rBID 6 |
| #define MSK32BCTX_VC1_rBID 0x0000003F |
| |
| #define BA_BCTX_VC1_rIDX 0x0000 |
| #define B16BCTX_VC1_rIDX 0x0000 |
| #define LSb32BCTX_VC1_rIDX 6 |
| #define LSb16BCTX_VC1_rIDX 6 |
| #define bBCTX_VC1_rIDX 5 |
| #define MSK32BCTX_VC1_rIDX 0x000007C0 |
| |
| #define BA_BCTX_VC1_FLD 0x0001 |
| #define B16BCTX_VC1_FLD 0x0000 |
| #define LSb32BCTX_VC1_FLD 11 |
| #define LSb16BCTX_VC1_FLD 11 |
| #define bBCTX_VC1_FLD 1 |
| #define MSK32BCTX_VC1_FLD 0x00000800 |
| |
| #define BA_BCTX_VC1_equalpred 0x0001 |
| #define B16BCTX_VC1_equalpred 0x0000 |
| #define LSb32BCTX_VC1_equalpred 12 |
| #define LSb16BCTX_VC1_equalpred 12 |
| #define bBCTX_VC1_equalpred 1 |
| #define MSK32BCTX_VC1_equalpred 0x00001000 |
| |
| #define BA_BCTX_VC1_RSVD 0x0001 |
| #define B16BCTX_VC1_RSVD 0x0000 |
| #define LSb32BCTX_VC1_RSVD 13 |
| #define LSb16BCTX_VC1_RSVD 13 |
| #define bBCTX_VC1_RSVD 3 |
| #define MSK32BCTX_VC1_RSVD 0x0000E000 |
| |
| #define BA_BCTX_VC1_dctSelU 0x0002 |
| #define B16BCTX_VC1_dctSelU 0x0002 |
| #define LSb32BCTX_VC1_dctSelU 16 |
| #define LSb16BCTX_VC1_dctSelU 0 |
| #define bBCTX_VC1_dctSelU 2 |
| #define MSK32BCTX_VC1_dctSelU 0x00030000 |
| |
| #define BA_BCTX_VC1_dctSelV 0x0002 |
| #define B16BCTX_VC1_dctSelV 0x0002 |
| #define LSb32BCTX_VC1_dctSelV 18 |
| #define LSb16BCTX_VC1_dctSelV 2 |
| #define bBCTX_VC1_dctSelV 2 |
| #define MSK32BCTX_VC1_dctSelV 0x000C0000 |
| |
| #define BA_BCTX_VC1_CBFU 0x0002 |
| #define B16BCTX_VC1_CBFU 0x0002 |
| #define LSb32BCTX_VC1_CBFU 20 |
| #define LSb16BCTX_VC1_CBFU 4 |
| #define bBCTX_VC1_CBFU 1 |
| #define MSK32BCTX_VC1_CBFU 0x00100000 |
| |
| #define BA_BCTX_VC1_CBFV 0x0002 |
| #define B16BCTX_VC1_CBFV 0x0002 |
| #define LSb32BCTX_VC1_CBFV 21 |
| #define LSb16BCTX_VC1_CBFV 5 |
| #define bBCTX_VC1_CBFV 1 |
| #define MSK32BCTX_VC1_CBFV 0x00200000 |
| |
| #define BA_BCTX_VC1_CBFU8x8 0x0002 |
| #define B16BCTX_VC1_CBFU8x8 0x0002 |
| #define LSb32BCTX_VC1_CBFU8x8 22 |
| #define LSb16BCTX_VC1_CBFU8x8 6 |
| #define bBCTX_VC1_CBFU8x8 1 |
| #define MSK32BCTX_VC1_CBFU8x8 0x00400000 |
| |
| #define BA_BCTX_VC1_CBFV8x8 0x0002 |
| #define B16BCTX_VC1_CBFV8x8 0x0002 |
| #define LSb32BCTX_VC1_CBFV8x8 23 |
| #define LSb16BCTX_VC1_CBFV8x8 7 |
| #define bBCTX_VC1_CBFV8x8 1 |
| #define MSK32BCTX_VC1_CBFV8x8 0x00800000 |
| |
| #define BA_BCTX_VC1_RSVD8 0x0003 |
| #define B16BCTX_VC1_RSVD8 0x0002 |
| #define LSb32BCTX_VC1_RSVD8 24 |
| #define LSb16BCTX_VC1_RSVD8 8 |
| #define bBCTX_VC1_RSVD8 8 |
| #define MSK32BCTX_VC1_RSVD8 0xFF000000 |
| /////////////////////////////////////////////////////////// |
| #define RA_BCTX_VC1_mv 0x0004 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_BCTX_VC1 { |
| /////////////////////////////////////////////////////////// |
| #define GET32BCTX_VC1_rBID(r32) _BFGET_(r32, 5, 0) |
| #define SET32BCTX_VC1_rBID(r32,v) _BFSET_(r32, 5, 0,v) |
| #define GET16BCTX_VC1_rBID(r16) _BFGET_(r16, 5, 0) |
| #define SET16BCTX_VC1_rBID(r16,v) _BFSET_(r16, 5, 0,v) |
| |
| #define GET32BCTX_VC1_rIDX(r32) _BFGET_(r32,10, 6) |
| #define SET32BCTX_VC1_rIDX(r32,v) _BFSET_(r32,10, 6,v) |
| #define GET16BCTX_VC1_rIDX(r16) _BFGET_(r16,10, 6) |
| #define SET16BCTX_VC1_rIDX(r16,v) _BFSET_(r16,10, 6,v) |
| |
| #define GET32BCTX_VC1_FLD(r32) _BFGET_(r32,11,11) |
| #define SET32BCTX_VC1_FLD(r32,v) _BFSET_(r32,11,11,v) |
| #define GET16BCTX_VC1_FLD(r16) _BFGET_(r16,11,11) |
| #define SET16BCTX_VC1_FLD(r16,v) _BFSET_(r16,11,11,v) |
| |
| #define GET32BCTX_VC1_equalpred(r32) _BFGET_(r32,12,12) |
| #define SET32BCTX_VC1_equalpred(r32,v) _BFSET_(r32,12,12,v) |
| #define GET16BCTX_VC1_equalpred(r16) _BFGET_(r16,12,12) |
| #define SET16BCTX_VC1_equalpred(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32BCTX_VC1_RSVD(r32) _BFGET_(r32,15,13) |
| #define SET32BCTX_VC1_RSVD(r32,v) _BFSET_(r32,15,13,v) |
| #define GET16BCTX_VC1_RSVD(r16) _BFGET_(r16,15,13) |
| #define SET16BCTX_VC1_RSVD(r16,v) _BFSET_(r16,15,13,v) |
| |
| #define GET32BCTX_VC1_dctSelU(r32) _BFGET_(r32,17,16) |
| #define SET32BCTX_VC1_dctSelU(r32,v) _BFSET_(r32,17,16,v) |
| #define GET16BCTX_VC1_dctSelU(r16) _BFGET_(r16, 1, 0) |
| #define SET16BCTX_VC1_dctSelU(r16,v) _BFSET_(r16, 1, 0,v) |
| |
| #define GET32BCTX_VC1_dctSelV(r32) _BFGET_(r32,19,18) |
| #define SET32BCTX_VC1_dctSelV(r32,v) _BFSET_(r32,19,18,v) |
| #define GET16BCTX_VC1_dctSelV(r16) _BFGET_(r16, 3, 2) |
| #define SET16BCTX_VC1_dctSelV(r16,v) _BFSET_(r16, 3, 2,v) |
| |
| #define GET32BCTX_VC1_CBFU(r32) _BFGET_(r32,20,20) |
| #define SET32BCTX_VC1_CBFU(r32,v) _BFSET_(r32,20,20,v) |
| #define GET16BCTX_VC1_CBFU(r16) _BFGET_(r16, 4, 4) |
| #define SET16BCTX_VC1_CBFU(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define GET32BCTX_VC1_CBFV(r32) _BFGET_(r32,21,21) |
| #define SET32BCTX_VC1_CBFV(r32,v) _BFSET_(r32,21,21,v) |
| #define GET16BCTX_VC1_CBFV(r16) _BFGET_(r16, 5, 5) |
| #define SET16BCTX_VC1_CBFV(r16,v) _BFSET_(r16, 5, 5,v) |
| |
| #define GET32BCTX_VC1_CBFU8x8(r32) _BFGET_(r32,22,22) |
| #define SET32BCTX_VC1_CBFU8x8(r32,v) _BFSET_(r32,22,22,v) |
| #define GET16BCTX_VC1_CBFU8x8(r16) _BFGET_(r16, 6, 6) |
| #define SET16BCTX_VC1_CBFU8x8(r16,v) _BFSET_(r16, 6, 6,v) |
| |
| #define GET32BCTX_VC1_CBFV8x8(r32) _BFGET_(r32,23,23) |
| #define SET32BCTX_VC1_CBFV8x8(r32,v) _BFSET_(r32,23,23,v) |
| #define GET16BCTX_VC1_CBFV8x8(r16) _BFGET_(r16, 7, 7) |
| #define SET16BCTX_VC1_CBFV8x8(r16,v) _BFSET_(r16, 7, 7,v) |
| |
| #define GET32BCTX_VC1_RSVD8(r32) _BFGET_(r32,31,24) |
| #define SET32BCTX_VC1_RSVD8(r32,v) _BFSET_(r32,31,24,v) |
| #define GET16BCTX_VC1_RSVD8(r16) _BFGET_(r16,15, 8) |
| #define SET16BCTX_VC1_RSVD8(r16,v) _BFSET_(r16,15, 8,v) |
| |
| UNSG32 u_rBID : 6; |
| UNSG32 u_rIDX : 5; |
| UNSG32 u_FLD : 1; |
| UNSG32 u_equalpred : 1; |
| UNSG32 u_RSVD : 3; |
| UNSG32 u_dctSelU : 2; |
| UNSG32 u_dctSelV : 2; |
| UNSG32 u_CBFU : 1; |
| UNSG32 u_CBFV : 1; |
| UNSG32 u_CBFU8x8 : 1; |
| UNSG32 u_CBFV8x8 : 1; |
| UNSG32 u_RSVD8 : 8; |
| /////////////////////////////////////////////////////////// |
| SIE_MV ie_mv; |
| /////////////////////////////////////////////////////////// |
| } SIE_BCTX_VC1; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 BCTX_VC1_drvrd(SIE_BCTX_VC1 *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 BCTX_VC1_drvwr(SIE_BCTX_VC1 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void BCTX_VC1_reset(SIE_BCTX_VC1 *p); |
| SIGN32 BCTX_VC1_cmp (SIE_BCTX_VC1 *p, SIE_BCTX_VC1 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define BCTX_VC1_check(p,pie,pfx,hLOG) BCTX_VC1_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define BCTX_VC1_print(p, pfx,hLOG) BCTX_VC1_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: BCTX_VC1 |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE FCTXI biu (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 22 RSVD |
| /// %unsigned 5 NCUV |
| /// ### |
| /// * CAVLC use only: |
| /// * Using block category ACU/ACV: 0~15 |
| /// ### |
| /// %unsigned 5 NCY |
| /// ### |
| /// * CAVLC use only: |
| /// * Using block category ACY (every 4x4s): 0~16 |
| /// ### |
| /// @ 0x00004 (P) |
| /// %unsigned 20 RSVD20 |
| /// %unsigned 4 intraChroma |
| /// ### |
| /// * For encoder: Intra prediction mode for chormablocks, see IntraChroma.mode above. Only appears in DCI, one per MB. |
| /// ### |
| /// %unsigned 8 intraLuma |
| /// ### |
| /// * Intra 16x16/NxN prediction mode for luma blocks, see IntraLuma.mode above |
| /// * =0 between parser & syntax processor |
| /// * End of FCTXI |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_FCTXI |
| #define h_FCTXI (){} |
| |
| #define BA_FCTXI_RSVD 0x0000 |
| #define B16FCTXI_RSVD 0x0000 |
| #define LSb32FCTXI_RSVD 0 |
| #define LSb16FCTXI_RSVD 0 |
| #define bFCTXI_RSVD 22 |
| #define MSK32FCTXI_RSVD 0x003FFFFF |
| |
| #define BA_FCTXI_NCUV 0x0002 |
| #define B16FCTXI_NCUV 0x0002 |
| #define LSb32FCTXI_NCUV 22 |
| #define LSb16FCTXI_NCUV 6 |
| #define bFCTXI_NCUV 5 |
| #define MSK32FCTXI_NCUV 0x07C00000 |
| |
| #define BA_FCTXI_NCY 0x0003 |
| #define B16FCTXI_NCY 0x0002 |
| #define LSb32FCTXI_NCY 27 |
| #define LSb16FCTXI_NCY 11 |
| #define bFCTXI_NCY 5 |
| #define MSK32FCTXI_NCY 0xF8000000 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_FCTXI_RSVD20 0x0004 |
| #define B16FCTXI_RSVD20 0x0004 |
| #define LSb32FCTXI_RSVD20 0 |
| #define LSb16FCTXI_RSVD20 0 |
| #define bFCTXI_RSVD20 20 |
| #define MSK32FCTXI_RSVD20 0x000FFFFF |
| |
| #define BA_FCTXI_intraChroma 0x0006 |
| #define B16FCTXI_intraChroma 0x0006 |
| #define LSb32FCTXI_intraChroma 20 |
| #define LSb16FCTXI_intraChroma 4 |
| #define bFCTXI_intraChroma 4 |
| #define MSK32FCTXI_intraChroma 0x00F00000 |
| |
| #define BA_FCTXI_intraLuma 0x0007 |
| #define B16FCTXI_intraLuma 0x0006 |
| #define LSb32FCTXI_intraLuma 24 |
| #define LSb16FCTXI_intraLuma 8 |
| #define bFCTXI_intraLuma 8 |
| #define MSK32FCTXI_intraLuma 0xFF000000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_FCTXI { |
| /////////////////////////////////////////////////////////// |
| #define GET32FCTXI_RSVD(r32) _BFGET_(r32,21, 0) |
| #define SET32FCTXI_RSVD(r32,v) _BFSET_(r32,21, 0,v) |
| |
| #define GET32FCTXI_NCUV(r32) _BFGET_(r32,26,22) |
| #define SET32FCTXI_NCUV(r32,v) _BFSET_(r32,26,22,v) |
| #define GET16FCTXI_NCUV(r16) _BFGET_(r16,10, 6) |
| #define SET16FCTXI_NCUV(r16,v) _BFSET_(r16,10, 6,v) |
| |
| #define GET32FCTXI_NCY(r32) _BFGET_(r32,31,27) |
| #define SET32FCTXI_NCY(r32,v) _BFSET_(r32,31,27,v) |
| #define GET16FCTXI_NCY(r16) _BFGET_(r16,15,11) |
| #define SET16FCTXI_NCY(r16,v) _BFSET_(r16,15,11,v) |
| |
| UNSG32 u_RSVD : 22; |
| UNSG32 u_NCUV : 5; |
| UNSG32 u_NCY : 5; |
| /////////////////////////////////////////////////////////// |
| #define GET32FCTXI_RSVD20(r32) _BFGET_(r32,19, 0) |
| #define SET32FCTXI_RSVD20(r32,v) _BFSET_(r32,19, 0,v) |
| |
| #define GET32FCTXI_intraChroma(r32) _BFGET_(r32,23,20) |
| #define SET32FCTXI_intraChroma(r32,v) _BFSET_(r32,23,20,v) |
| #define GET16FCTXI_intraChroma(r16) _BFGET_(r16, 7, 4) |
| #define SET16FCTXI_intraChroma(r16,v) _BFSET_(r16, 7, 4,v) |
| |
| #define GET32FCTXI_intraLuma(r32) _BFGET_(r32,31,24) |
| #define SET32FCTXI_intraLuma(r32,v) _BFSET_(r32,31,24,v) |
| #define GET16FCTXI_intraLuma(r16) _BFGET_(r16,15, 8) |
| #define SET16FCTXI_intraLuma(r16,v) _BFSET_(r16,15, 8,v) |
| |
| UNSG32 u_RSVD20 : 20; |
| UNSG32 u_intraChroma : 4; |
| UNSG32 u_intraLuma : 8; |
| /////////////////////////////////////////////////////////// |
| } SIE_FCTXI; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 FCTXI_drvrd(SIE_FCTXI *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 FCTXI_drvwr(SIE_FCTXI *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void FCTXI_reset(SIE_FCTXI *p); |
| SIGN32 FCTXI_cmp (SIE_FCTXI *p, SIE_FCTXI *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define FCTXI_check(p,pie,pfx,hLOG) FCTXI_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define FCTXI_print(p, pfx,hLOG) FCTXI_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: FCTXI |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE HCTX4x4 biu (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 fore |
| /// $FCTX fore REG |
| /// ### |
| /// * Forward prediction |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 back |
| /// $BCTX back REG |
| /// ### |
| /// * Backward prediction |
| /// * End of HCTX4x4 |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 16B, bits: 128b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_HCTX4x4 |
| #define h_HCTX4x4 (){} |
| |
| #define RA_HCTX4x4_fore 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_HCTX4x4_back 0x0008 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_HCTX4x4 { |
| /////////////////////////////////////////////////////////// |
| SIE_FCTX ie_fore; |
| /////////////////////////////////////////////////////////// |
| SIE_BCTX ie_back; |
| /////////////////////////////////////////////////////////// |
| } SIE_HCTX4x4; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 HCTX4x4_drvrd(SIE_HCTX4x4 *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 HCTX4x4_drvwr(SIE_HCTX4x4 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void HCTX4x4_reset(SIE_HCTX4x4 *p); |
| SIGN32 HCTX4x4_cmp (SIE_HCTX4x4 *p, SIE_HCTX4x4 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define HCTX4x4_check(p,pie,pfx,hLOG) HCTX4x4_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define HCTX4x4_print(p, pfx,hLOG) HCTX4x4_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: HCTX4x4 |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE CTXI biu (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %signed 16 AC0 |
| /// ### |
| /// * DC or horizontal/vertical AC coefficient |
| /// ### |
| /// %signed 13 AC1 |
| /// ### |
| /// * 2nd horizontal/vertical AC coefficient |
| /// ### |
| /// %unsigned 1 cbpcy |
| /// ### |
| /// * Flatten all 4x4s in a 8x8 block, coded or not |
| /// ### |
| /// %unsigned 2 mquantL |
| /// ### |
| /// * Low 2 bits of mquant, flatten all 4x4s in a macroblock |
| /// ### |
| /// %unsigned 3 mquantH |
| /// ### |
| /// * High 3 bits of mquant, flatten all 4x4s in a macroblock |
| /// ### |
| /// %signed 13 AC2 |
| /// ### |
| /// * 3rd horizontal/vertical AC coefficient |
| /// ### |
| /// %unsigned 3 type |
| /// ### |
| /// * Sub-set of mb_type, see MBPROP.type above |
| /// * = intra16x16 |
| /// ### |
| /// %signed 13 AC3 |
| /// ### |
| /// * 4th horizontal/vertical AC coefficient |
| /// * End of CTXI |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_CTXI |
| #define h_CTXI (){} |
| |
| #define BA_CTXI_AC0 0x0000 |
| #define B16CTXI_AC0 0x0000 |
| #define LSb32CTXI_AC0 0 |
| #define LSb16CTXI_AC0 0 |
| #define bCTXI_AC0 16 |
| #define MSK32CTXI_AC0 0x0000FFFF |
| |
| #define BA_CTXI_AC1 0x0002 |
| #define B16CTXI_AC1 0x0002 |
| #define LSb32CTXI_AC1 16 |
| #define LSb16CTXI_AC1 0 |
| #define bCTXI_AC1 13 |
| #define MSK32CTXI_AC1 0x1FFF0000 |
| |
| #define BA_CTXI_cbpcy 0x0003 |
| #define B16CTXI_cbpcy 0x0002 |
| #define LSb32CTXI_cbpcy 29 |
| #define LSb16CTXI_cbpcy 13 |
| #define bCTXI_cbpcy 1 |
| #define MSK32CTXI_cbpcy 0x20000000 |
| |
| #define BA_CTXI_mquantL 0x0003 |
| #define B16CTXI_mquantL 0x0002 |
| #define LSb32CTXI_mquantL 30 |
| #define LSb16CTXI_mquantL 14 |
| #define bCTXI_mquantL 2 |
| #define MSK32CTXI_mquantL 0xC0000000 |
| |
| #define BA_CTXI_mquantH 0x0004 |
| #define B16CTXI_mquantH 0x0004 |
| #define LSb32CTXI_mquantH 0 |
| #define LSb16CTXI_mquantH 0 |
| #define bCTXI_mquantH 3 |
| #define MSK32CTXI_mquantH 0x00000007 |
| |
| #define BA_CTXI_AC2 0x0004 |
| #define B16CTXI_AC2 0x0004 |
| #define LSb32CTXI_AC2 3 |
| #define LSb16CTXI_AC2 3 |
| #define bCTXI_AC2 13 |
| #define MSK32CTXI_AC2 0x0000FFF8 |
| |
| #define BA_CTXI_type 0x0006 |
| #define B16CTXI_type 0x0006 |
| #define LSb32CTXI_type 16 |
| #define LSb16CTXI_type 0 |
| #define bCTXI_type 3 |
| #define MSK32CTXI_type 0x00070000 |
| |
| #define BA_CTXI_AC3 0x0006 |
| #define B16CTXI_AC3 0x0006 |
| #define LSb32CTXI_AC3 19 |
| #define LSb16CTXI_AC3 3 |
| #define bCTXI_AC3 13 |
| #define MSK32CTXI_AC3 0xFFF80000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_CTXI { |
| /////////////////////////////////////////////////////////// |
| #define GET32CTXI_AC0(r32) _BFGET_(r32,15, 0) |
| #define SET32CTXI_AC0(r32,v) _BFSET_(r32,15, 0,v) |
| #define GET16CTXI_AC0(r16) _BFGET_(r16,15, 0) |
| #define SET16CTXI_AC0(r16,v) _BFSET_(r16,15, 0,v) |
| |
| #define GET32CTXI_AC1(r32) _BFGET_(r32,28,16) |
| #define SET32CTXI_AC1(r32,v) _BFSET_(r32,28,16,v) |
| #define GET16CTXI_AC1(r16) _BFGET_(r16,12, 0) |
| #define SET16CTXI_AC1(r16,v) _BFSET_(r16,12, 0,v) |
| |
| #define GET32CTXI_cbpcy(r32) _BFGET_(r32,29,29) |
| #define SET32CTXI_cbpcy(r32,v) _BFSET_(r32,29,29,v) |
| #define GET16CTXI_cbpcy(r16) _BFGET_(r16,13,13) |
| #define SET16CTXI_cbpcy(r16,v) _BFSET_(r16,13,13,v) |
| |
| #define GET32CTXI_mquantL(r32) _BFGET_(r32,31,30) |
| #define SET32CTXI_mquantL(r32,v) _BFSET_(r32,31,30,v) |
| #define GET16CTXI_mquantL(r16) _BFGET_(r16,15,14) |
| #define SET16CTXI_mquantL(r16,v) _BFSET_(r16,15,14,v) |
| |
| UNSG32 s_AC0 : 16; |
| UNSG32 s_AC1 : 13; |
| UNSG32 u_cbpcy : 1; |
| UNSG32 u_mquantL : 2; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32CTXI_mquantH(r32) _BFGET_(r32, 2, 0) |
| #define SET32CTXI_mquantH(r32,v) _BFSET_(r32, 2, 0,v) |
| #define GET16CTXI_mquantH(r16) _BFGET_(r16, 2, 0) |
| #define SET16CTXI_mquantH(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32CTXI_AC2(r32) _BFGET_(r32,15, 3) |
| #define SET32CTXI_AC2(r32,v) _BFSET_(r32,15, 3,v) |
| #define GET16CTXI_AC2(r16) _BFGET_(r16,15, 3) |
| #define SET16CTXI_AC2(r16,v) _BFSET_(r16,15, 3,v) |
| |
| #define GET32CTXI_type(r32) _BFGET_(r32,18,16) |
| #define SET32CTXI_type(r32,v) _BFSET_(r32,18,16,v) |
| #define GET16CTXI_type(r16) _BFGET_(r16, 2, 0) |
| #define SET16CTXI_type(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32CTXI_AC3(r32) _BFGET_(r32,31,19) |
| #define SET32CTXI_AC3(r32,v) _BFSET_(r32,31,19,v) |
| #define GET16CTXI_AC3(r16) _BFGET_(r16,15, 3) |
| #define SET16CTXI_AC3(r16,v) _BFSET_(r16,15, 3,v) |
| |
| UNSG32 u_mquantH : 3; |
| UNSG32 s_AC2 : 13; |
| UNSG32 u_type : 3; |
| UNSG32 s_AC3 : 13; |
| /////////////////////////////////////////////////////////// |
| } SIE_CTXI; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 CTXI_drvrd(SIE_CTXI *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 CTXI_drvwr(SIE_CTXI *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void CTXI_reset(SIE_CTXI *p); |
| SIGN32 CTXI_cmp (SIE_CTXI *p, SIE_CTXI *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define CTXI_check(p,pie,pfx,hLOG) CTXI_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define CTXI_print(p, pfx,hLOG) CTXI_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: CTXI |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE CTXI4x4 (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 luma |
| /// $CTXI luma REG |
| /// ### |
| /// * DC/AC for Y |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 chroma |
| /// $CTXI chroma REG |
| /// ### |
| /// * DC/AC for UV |
| /// * End of CTXI4x4 |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 16B, bits: 128b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_CTXI4x4 |
| #define h_CTXI4x4 (){} |
| |
| #define RA_CTXI4x4_luma 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_CTXI4x4_chroma 0x0008 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_CTXI4x4 { |
| /////////////////////////////////////////////////////////// |
| SIE_CTXI ie_luma; |
| /////////////////////////////////////////////////////////// |
| SIE_CTXI ie_chroma; |
| /////////////////////////////////////////////////////////// |
| } SIE_CTXI4x4; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 CTXI4x4_drvrd(SIE_CTXI4x4 *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 CTXI4x4_drvwr(SIE_CTXI4x4 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void CTXI4x4_reset(SIE_CTXI4x4 *p); |
| SIGN32 CTXI4x4_cmp (SIE_CTXI4x4 *p, SIE_CTXI4x4 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define CTXI4x4_check(p,pie,pfx,hLOG) CTXI4x4_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define CTXI4x4_print(p, pfx,hLOG) CTXI4x4_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: CTXI4x4 |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE IDX2BID (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 frmIDX2BID |
| /// $LUT8b frmIDX2BID REG [16] |
| /// ### |
| /// * Cast to 8b rBID[32:rIDX][2:L0/L1] |
| /// * Note: field picture use this table (32 rIDX)! |
| /// ### |
| /// @ 0x00040 (P) |
| /// # 0x00040 topIDX2BID |
| /// $LUT8b topIDX2BID REG [16] |
| /// ### |
| /// * Cast to 8b rBID[32:rIDX][2:L0/L1] |
| /// ### |
| /// @ 0x00080 (P) |
| /// # 0x00080 btmIDX2BID |
| /// $LUT8b btmIDX2BID REG [16] |
| /// ### |
| /// * Cast to 8b rBID[32:rIDX][2:L0/L1] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 192B, bits: 1536b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_IDX2BID |
| #define h_IDX2BID (){} |
| |
| #define RA_IDX2BID_frmIDX2BID 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_IDX2BID_topIDX2BID 0x0040 |
| /////////////////////////////////////////////////////////// |
| #define RA_IDX2BID_btmIDX2BID 0x0080 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_IDX2BID { |
| /////////////////////////////////////////////////////////// |
| SIE_LUT8b ie_frmIDX2BID[16]; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT8b ie_topIDX2BID[16]; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT8b ie_btmIDX2BID[16]; |
| /////////////////////////////////////////////////////////// |
| } SIE_IDX2BID; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 IDX2BID_drvrd(SIE_IDX2BID *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 IDX2BID_drvwr(SIE_IDX2BID *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void IDX2BID_reset(SIE_IDX2BID *p); |
| SIGN32 IDX2BID_cmp (SIE_IDX2BID *p, SIE_IDX2BID *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define IDX2BID_check(p,pie,pfx,hLOG) IDX2BID_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define IDX2BID_print(p, pfx,hLOG) IDX2BID_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: IDX2BID |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE BID2IDX (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 frmBID2IDX |
| /// $LUT8b frmBID2IDX REG [10] |
| /// ### |
| /// * Cast to 8b L0.min.rIDX[34:rBID] |
| /// * Note: field picture use this table (32 rIDX)! |
| /// ### |
| /// @ 0x00028 (P) |
| /// # 0x00028 topBID2IDX |
| /// $LUT8b topBID2IDX REG [10] |
| /// ### |
| /// * Cast to 8b L0.min.rIDX[34:rBID] |
| /// ### |
| /// @ 0x00050 (P) |
| /// # 0x00050 btmBID2IDX |
| /// $LUT8b btmBID2IDX REG [10] |
| /// ### |
| /// * Cast to 8b L0.min.rIDX[34:rBID] |
| /// * Note: direct mode corner case |
| /// * Alternative method (not used) if not adjust rIDX: |
| /// * rBID = CoL.rBID | (CoL.Frm & Cur.Btm) |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 120B, bits: 960b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_BID2IDX |
| #define h_BID2IDX (){} |
| |
| #define RA_BID2IDX_frmBID2IDX 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_BID2IDX_topBID2IDX 0x0028 |
| /////////////////////////////////////////////////////////// |
| #define RA_BID2IDX_btmBID2IDX 0x0050 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_BID2IDX { |
| /////////////////////////////////////////////////////////// |
| SIE_LUT8b ie_frmBID2IDX[10]; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT8b ie_topBID2IDX[10]; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT8b ie_btmBID2IDX[10]; |
| /////////////////////////////////////////////////////////// |
| } SIE_BID2IDX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 BID2IDX_drvrd(SIE_BID2IDX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 BID2IDX_drvwr(SIE_BID2IDX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void BID2IDX_reset(SIE_BID2IDX *p); |
| SIGN32 BID2IDX_cmp (SIE_BID2IDX *p, SIE_BID2IDX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define BID2IDX_check(p,pie,pfx,hLOG) BID2IDX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define BID2IDX_print(p, pfx,hLOG) BID2IDX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: BID2IDX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE ASPSET biu (4,4) |
| /// ### |
| /// * [0:31] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 3 type |
| /// ### |
| /// * MB type |
| /// ### |
| /// %unsigned 2 chroma |
| /// ### |
| /// * Intra MB only: intra_chroma_pred |
| /// ### |
| /// %unsigned 1 t8x8 |
| /// ### |
| /// * 8x8 transform; used by AspInit & residual. |
| /// * End of ASPSET |
| /// ### |
| /// %% 26 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 6b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_ASPSET |
| #define h_ASPSET (){} |
| |
| #define BA_ASPSET_type 0x0000 |
| #define B16ASPSET_type 0x0000 |
| #define LSb32ASPSET_type 0 |
| #define LSb16ASPSET_type 0 |
| #define bASPSET_type 3 |
| #define MSK32ASPSET_type 0x00000007 |
| |
| #define BA_ASPSET_chroma 0x0000 |
| #define B16ASPSET_chroma 0x0000 |
| #define LSb32ASPSET_chroma 3 |
| #define LSb16ASPSET_chroma 3 |
| #define bASPSET_chroma 2 |
| #define MSK32ASPSET_chroma 0x00000018 |
| |
| #define BA_ASPSET_t8x8 0x0000 |
| #define B16ASPSET_t8x8 0x0000 |
| #define LSb32ASPSET_t8x8 5 |
| #define LSb16ASPSET_t8x8 5 |
| #define bASPSET_t8x8 1 |
| #define MSK32ASPSET_t8x8 0x00000020 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_ASPSET { |
| /////////////////////////////////////////////////////////// |
| #define GET32ASPSET_type(r32) _BFGET_(r32, 2, 0) |
| #define SET32ASPSET_type(r32,v) _BFSET_(r32, 2, 0,v) |
| #define GET16ASPSET_type(r16) _BFGET_(r16, 2, 0) |
| #define SET16ASPSET_type(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32ASPSET_chroma(r32) _BFGET_(r32, 4, 3) |
| #define SET32ASPSET_chroma(r32,v) _BFSET_(r32, 4, 3,v) |
| #define GET16ASPSET_chroma(r16) _BFGET_(r16, 4, 3) |
| #define SET16ASPSET_chroma(r16,v) _BFSET_(r16, 4, 3,v) |
| |
| #define GET32ASPSET_t8x8(r32) _BFGET_(r32, 5, 5) |
| #define SET32ASPSET_t8x8(r32,v) _BFSET_(r32, 5, 5,v) |
| #define GET16ASPSET_t8x8(r16) _BFGET_(r16, 5, 5) |
| #define SET16ASPSET_t8x8(r16,v) _BFSET_(r16, 5, 5,v) |
| |
| UNSG32 u_type : 3; |
| UNSG32 u_chroma : 2; |
| UNSG32 u_t8x8 : 1; |
| UNSG32 RSVDx0_b6 : 26; |
| /////////////////////////////////////////////////////////// |
| } SIE_ASPSET; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 ASPSET_drvrd(SIE_ASPSET *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 ASPSET_drvwr(SIE_ASPSET *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void ASPSET_reset(SIE_ASPSET *p); |
| SIGN32 ASPSET_cmp (SIE_ASPSET *p, SIE_ASPSET *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define ASPSET_check(p,pie,pfx,hLOG) ASPSET_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define ASPSET_print(p, pfx,hLOG) ASPSET_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: ASPSET |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE IntraPROP (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 3 type |
| /// ### |
| /// * See BLK.type above, |
| /// * LUT: IPCM or intraNxN or intra16x16 |
| /// ### |
| /// %unsigned 1 8x8IDX0 |
| /// ### |
| /// * LUT: 0 (P_8x8ref0) |
| /// ### |
| /// %unsigned 1 t8x8I |
| /// ### |
| /// * LUT: MB.transform8x8 & intraNxN |
| /// ### |
| /// %unsigned 1 t8x8PB |
| /// ### |
| /// * LUT: 0 |
| /// ### |
| /// %unsigned 2 luma16x16 |
| /// ### |
| /// * LUT: intra 16x16 prediction mode |
| /// ### |
| /// %unsigned 6 CBP |
| /// ### |
| /// * LUT: intra 16x16 coded block pattern |
| /// * MPEG4 LUT: Chroma cbp |
| /// * End of IntraPROP |
| /// ### |
| /// %% 18 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 14b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_IntraPROP |
| #define h_IntraPROP (){} |
| |
| #define BA_IntraPROP_type 0x0000 |
| #define B16IntraPROP_type 0x0000 |
| #define LSb32IntraPROP_type 0 |
| #define LSb16IntraPROP_type 0 |
| #define bIntraPROP_type 3 |
| #define MSK32IntraPROP_type 0x00000007 |
| |
| #define BA_IntraPROP_8x8IDX0 0x0000 |
| #define B16IntraPROP_8x8IDX0 0x0000 |
| #define LSb32IntraPROP_8x8IDX0 3 |
| #define LSb16IntraPROP_8x8IDX0 3 |
| #define bIntraPROP_8x8IDX0 1 |
| #define MSK32IntraPROP_8x8IDX0 0x00000008 |
| |
| #define BA_IntraPROP_t8x8I 0x0000 |
| #define B16IntraPROP_t8x8I 0x0000 |
| #define LSb32IntraPROP_t8x8I 4 |
| #define LSb16IntraPROP_t8x8I 4 |
| #define bIntraPROP_t8x8I 1 |
| #define MSK32IntraPROP_t8x8I 0x00000010 |
| |
| #define BA_IntraPROP_t8x8PB 0x0000 |
| #define B16IntraPROP_t8x8PB 0x0000 |
| #define LSb32IntraPROP_t8x8PB 5 |
| #define LSb16IntraPROP_t8x8PB 5 |
| #define bIntraPROP_t8x8PB 1 |
| #define MSK32IntraPROP_t8x8PB 0x00000020 |
| |
| #define BA_IntraPROP_luma16x16 0x0000 |
| #define B16IntraPROP_luma16x16 0x0000 |
| #define LSb32IntraPROP_luma16x16 6 |
| #define LSb16IntraPROP_luma16x16 6 |
| #define bIntraPROP_luma16x16 2 |
| #define MSK32IntraPROP_luma16x16 0x000000C0 |
| |
| #define BA_IntraPROP_CBP 0x0001 |
| #define B16IntraPROP_CBP 0x0000 |
| #define LSb32IntraPROP_CBP 8 |
| #define LSb16IntraPROP_CBP 8 |
| #define bIntraPROP_CBP 6 |
| #define MSK32IntraPROP_CBP 0x00003F00 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_IntraPROP { |
| /////////////////////////////////////////////////////////// |
| #define GET32IntraPROP_type(r32) _BFGET_(r32, 2, 0) |
| #define SET32IntraPROP_type(r32,v) _BFSET_(r32, 2, 0,v) |
| #define GET16IntraPROP_type(r16) _BFGET_(r16, 2, 0) |
| #define SET16IntraPROP_type(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32IntraPROP_8x8IDX0(r32) _BFGET_(r32, 3, 3) |
| #define SET32IntraPROP_8x8IDX0(r32,v) _BFSET_(r32, 3, 3,v) |
| #define GET16IntraPROP_8x8IDX0(r16) _BFGET_(r16, 3, 3) |
| #define SET16IntraPROP_8x8IDX0(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32IntraPROP_t8x8I(r32) _BFGET_(r32, 4, 4) |
| #define SET32IntraPROP_t8x8I(r32,v) _BFSET_(r32, 4, 4,v) |
| #define GET16IntraPROP_t8x8I(r16) _BFGET_(r16, 4, 4) |
| #define SET16IntraPROP_t8x8I(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define GET32IntraPROP_t8x8PB(r32) _BFGET_(r32, 5, 5) |
| #define SET32IntraPROP_t8x8PB(r32,v) _BFSET_(r32, 5, 5,v) |
| #define GET16IntraPROP_t8x8PB(r16) _BFGET_(r16, 5, 5) |
| #define SET16IntraPROP_t8x8PB(r16,v) _BFSET_(r16, 5, 5,v) |
| |
| #define GET32IntraPROP_luma16x16(r32) _BFGET_(r32, 7, 6) |
| #define SET32IntraPROP_luma16x16(r32,v) _BFSET_(r32, 7, 6,v) |
| #define GET16IntraPROP_luma16x16(r16) _BFGET_(r16, 7, 6) |
| #define SET16IntraPROP_luma16x16(r16,v) _BFSET_(r16, 7, 6,v) |
| |
| #define GET32IntraPROP_CBP(r32) _BFGET_(r32,13, 8) |
| #define SET32IntraPROP_CBP(r32,v) _BFSET_(r32,13, 8,v) |
| #define GET16IntraPROP_CBP(r16) _BFGET_(r16,13, 8) |
| #define SET16IntraPROP_CBP(r16,v) _BFSET_(r16,13, 8,v) |
| |
| UNSG32 u_type : 3; |
| UNSG32 u_8x8IDX0 : 1; |
| UNSG32 u_t8x8I : 1; |
| UNSG32 u_t8x8PB : 1; |
| UNSG32 u_luma16x16 : 2; |
| UNSG32 u_CBP : 6; |
| UNSG32 RSVDx0_b14 : 18; |
| /////////////////////////////////////////////////////////// |
| } SIE_IntraPROP; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 IntraPROP_drvrd(SIE_IntraPROP *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 IntraPROP_drvwr(SIE_IntraPROP *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void IntraPROP_reset(SIE_IntraPROP *p); |
| SIGN32 IntraPROP_cmp (SIE_IntraPROP *p, SIE_IntraPROP *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define IntraPROP_check(p,pie,pfx,hLOG) IntraPROP_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define IntraPROP_print(p, pfx,hLOG) IntraPROP_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: IntraPROP |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE InterPROP (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 3 type |
| /// ### |
| /// * See MBPROP.type above, |
| /// * LUT: inter or 8x8PB or 8x8IDX0 or direct16x16 |
| /// ### |
| /// %unsigned 1 8x8IDX0 |
| /// ### |
| /// * LUT: P_8x8ref0 |
| /// ### |
| /// %unsigned 1 t8x8I |
| /// ### |
| /// * LUT: 0 |
| /// ### |
| /// %unsigned 1 t8x8PB |
| /// ### |
| /// * LUT: MB.transform8x8 & inter & |
| /// * (MB.direct8x8 | !direct16x16) |
| /// ### |
| /// %unsigned 2 partition |
| /// ### |
| /// * See MBPROP.partition above |
| /// ### |
| /// %unsigned 2 motion_0i |
| /// %unsigned 2 motion_1i |
| /// ### |
| /// * LUT: intra/forward/backward/bi, see BLK.motion above |
| /// ### |
| /// %unsigned 2 mvs_0i |
| /// %unsigned 2 mvs_1i |
| /// ### |
| /// * Number of motion vectors for each directions |
| /// * End of InterPROP |
| /// ### |
| /// %% 16 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_InterPROP |
| #define h_InterPROP (){} |
| |
| #define BA_InterPROP_type 0x0000 |
| #define B16InterPROP_type 0x0000 |
| #define LSb32InterPROP_type 0 |
| #define LSb16InterPROP_type 0 |
| #define bInterPROP_type 3 |
| #define MSK32InterPROP_type 0x00000007 |
| |
| #define BA_InterPROP_8x8IDX0 0x0000 |
| #define B16InterPROP_8x8IDX0 0x0000 |
| #define LSb32InterPROP_8x8IDX0 3 |
| #define LSb16InterPROP_8x8IDX0 3 |
| #define bInterPROP_8x8IDX0 1 |
| #define MSK32InterPROP_8x8IDX0 0x00000008 |
| |
| #define BA_InterPROP_t8x8I 0x0000 |
| #define B16InterPROP_t8x8I 0x0000 |
| #define LSb32InterPROP_t8x8I 4 |
| #define LSb16InterPROP_t8x8I 4 |
| #define bInterPROP_t8x8I 1 |
| #define MSK32InterPROP_t8x8I 0x00000010 |
| |
| #define BA_InterPROP_t8x8PB 0x0000 |
| #define B16InterPROP_t8x8PB 0x0000 |
| #define LSb32InterPROP_t8x8PB 5 |
| #define LSb16InterPROP_t8x8PB 5 |
| #define bInterPROP_t8x8PB 1 |
| #define MSK32InterPROP_t8x8PB 0x00000020 |
| |
| #define BA_InterPROP_partition 0x0000 |
| #define B16InterPROP_partition 0x0000 |
| #define LSb32InterPROP_partition 6 |
| #define LSb16InterPROP_partition 6 |
| #define bInterPROP_partition 2 |
| #define MSK32InterPROP_partition 0x000000C0 |
| |
| #define BA_InterPROP_motion_0i 0x0001 |
| #define B16InterPROP_motion_0i 0x0000 |
| #define LSb32InterPROP_motion_0i 8 |
| #define LSb16InterPROP_motion_0i 8 |
| #define bInterPROP_motion_0i 2 |
| #define MSK32InterPROP_motion_0i 0x00000300 |
| |
| #define BA_InterPROP_motion_1i 0x0001 |
| #define B16InterPROP_motion_1i 0x0000 |
| #define LSb32InterPROP_motion_1i 10 |
| #define LSb16InterPROP_motion_1i 10 |
| #define bInterPROP_motion_1i 2 |
| #define MSK32InterPROP_motion_1i 0x00000C00 |
| |
| #define BA_InterPROP_mvs_0i 0x0001 |
| #define B16InterPROP_mvs_0i 0x0000 |
| #define LSb32InterPROP_mvs_0i 12 |
| #define LSb16InterPROP_mvs_0i 12 |
| #define bInterPROP_mvs_0i 2 |
| #define MSK32InterPROP_mvs_0i 0x00003000 |
| |
| #define BA_InterPROP_mvs_1i 0x0001 |
| #define B16InterPROP_mvs_1i 0x0000 |
| #define LSb32InterPROP_mvs_1i 14 |
| #define LSb16InterPROP_mvs_1i 14 |
| #define bInterPROP_mvs_1i 2 |
| #define MSK32InterPROP_mvs_1i 0x0000C000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_InterPROP { |
| /////////////////////////////////////////////////////////// |
| #define GET32InterPROP_type(r32) _BFGET_(r32, 2, 0) |
| #define SET32InterPROP_type(r32,v) _BFSET_(r32, 2, 0,v) |
| #define GET16InterPROP_type(r16) _BFGET_(r16, 2, 0) |
| #define SET16InterPROP_type(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32InterPROP_8x8IDX0(r32) _BFGET_(r32, 3, 3) |
| #define SET32InterPROP_8x8IDX0(r32,v) _BFSET_(r32, 3, 3,v) |
| #define GET16InterPROP_8x8IDX0(r16) _BFGET_(r16, 3, 3) |
| #define SET16InterPROP_8x8IDX0(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32InterPROP_t8x8I(r32) _BFGET_(r32, 4, 4) |
| #define SET32InterPROP_t8x8I(r32,v) _BFSET_(r32, 4, 4,v) |
| #define GET16InterPROP_t8x8I(r16) _BFGET_(r16, 4, 4) |
| #define SET16InterPROP_t8x8I(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define GET32InterPROP_t8x8PB(r32) _BFGET_(r32, 5, 5) |
| #define SET32InterPROP_t8x8PB(r32,v) _BFSET_(r32, 5, 5,v) |
| #define GET16InterPROP_t8x8PB(r16) _BFGET_(r16, 5, 5) |
| #define SET16InterPROP_t8x8PB(r16,v) _BFSET_(r16, 5, 5,v) |
| |
| #define GET32InterPROP_partition(r32) _BFGET_(r32, 7, 6) |
| #define SET32InterPROP_partition(r32,v) _BFSET_(r32, 7, 6,v) |
| #define GET16InterPROP_partition(r16) _BFGET_(r16, 7, 6) |
| #define SET16InterPROP_partition(r16,v) _BFSET_(r16, 7, 6,v) |
| |
| #define GET32InterPROP_motion_0i(r32) _BFGET_(r32, 9, 8) |
| #define SET32InterPROP_motion_0i(r32,v) _BFSET_(r32, 9, 8,v) |
| #define GET16InterPROP_motion_0i(r16) _BFGET_(r16, 9, 8) |
| #define SET16InterPROP_motion_0i(r16,v) _BFSET_(r16, 9, 8,v) |
| |
| #define GET32InterPROP_motion_1i(r32) _BFGET_(r32,11,10) |
| #define SET32InterPROP_motion_1i(r32,v) _BFSET_(r32,11,10,v) |
| #define GET16InterPROP_motion_1i(r16) _BFGET_(r16,11,10) |
| #define SET16InterPROP_motion_1i(r16,v) _BFSET_(r16,11,10,v) |
| |
| #define GET32InterPROP_mvs_0i(r32) _BFGET_(r32,13,12) |
| #define SET32InterPROP_mvs_0i(r32,v) _BFSET_(r32,13,12,v) |
| #define GET16InterPROP_mvs_0i(r16) _BFGET_(r16,13,12) |
| #define SET16InterPROP_mvs_0i(r16,v) _BFSET_(r16,13,12,v) |
| |
| #define GET32InterPROP_mvs_1i(r32) _BFGET_(r32,15,14) |
| #define SET32InterPROP_mvs_1i(r32,v) _BFSET_(r32,15,14,v) |
| #define GET16InterPROP_mvs_1i(r16) _BFGET_(r16,15,14) |
| #define SET16InterPROP_mvs_1i(r16,v) _BFSET_(r16,15,14,v) |
| |
| UNSG32 u_type : 3; |
| UNSG32 u_8x8IDX0 : 1; |
| UNSG32 u_t8x8I : 1; |
| UNSG32 u_t8x8PB : 1; |
| UNSG32 u_partition : 2; |
| UNSG32 u_motion_0i : 2; |
| UNSG32 u_motion_1i : 2; |
| UNSG32 u_mvs_0i : 2; |
| UNSG32 u_mvs_1i : 2; |
| UNSG32 RSVDx0_b16 : 16; |
| /////////////////////////////////////////////////////////// |
| } SIE_InterPROP; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 InterPROP_drvrd(SIE_InterPROP *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 InterPROP_drvwr(SIE_InterPROP *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void InterPROP_reset(SIE_InterPROP *p); |
| SIGN32 InterPROP_cmp (SIE_InterPROP *p, SIE_InterPROP *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define InterPROP_check(p,pie,pfx,hLOG) InterPROP_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define InterPROP_print(p, pfx,hLOG) InterPROP_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: InterPROP |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE ResPROP_VC1 (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 8 MaxNumCoeff |
| /// ### |
| /// * Maximal number of coefficients to decode, |
| /// * The valid number is: 16, 32, 63, and 64 |
| /// ### |
| /// %unsigned 3 eBlk |
| /// ### |
| /// * 8x8 Block index. 0~3 for Y, 4 for Cb, 5 for Cr |
| /// ### |
| /// %unsigned 1 IsIntra |
| /// ### |
| /// * 1: intra block |
| /// * 0: inter block |
| /// ### |
| /// %unsigned 2 SubBlkIdx |
| /// ### |
| /// * Sub-block index in 8x8 block. Unit is 4x4 regardless of transform type. |
| /// ### |
| /// %unsigned 2 TransTypeOrIpMode |
| /// ### |
| /// * For inter block, this field contain transform type information. |
| /// ### |
| /// : TRANS_4x4 0x0 |
| /// : TRANS_4x8 0x1 |
| /// : TRANS_8x4 0x2 |
| /// : TRANS_8x8 0x3 |
| /// ### |
| /// * For intra block, this field is intra prediction mode. |
| /// ### |
| /// : IP_NORMAL 0x0 |
| /// : IP_HORIZONTAL 0x1 |
| /// : IP_VERTICAL 0x2 |
| /// %% 16 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_ResPROP_VC1 |
| #define h_ResPROP_VC1 (){} |
| |
| #define BA_ResPROP_VC1_MaxNumCoeff 0x0000 |
| #define B16ResPROP_VC1_MaxNumCoeff 0x0000 |
| #define LSb32ResPROP_VC1_MaxNumCoeff 0 |
| #define LSb16ResPROP_VC1_MaxNumCoeff 0 |
| #define bResPROP_VC1_MaxNumCoeff 8 |
| #define MSK32ResPROP_VC1_MaxNumCoeff 0x000000FF |
| |
| #define BA_ResPROP_VC1_eBlk 0x0001 |
| #define B16ResPROP_VC1_eBlk 0x0000 |
| #define LSb32ResPROP_VC1_eBlk 8 |
| #define LSb16ResPROP_VC1_eBlk 8 |
| #define bResPROP_VC1_eBlk 3 |
| #define MSK32ResPROP_VC1_eBlk 0x00000700 |
| |
| #define BA_ResPROP_VC1_IsIntra 0x0001 |
| #define B16ResPROP_VC1_IsIntra 0x0000 |
| #define LSb32ResPROP_VC1_IsIntra 11 |
| #define LSb16ResPROP_VC1_IsIntra 11 |
| #define bResPROP_VC1_IsIntra 1 |
| #define MSK32ResPROP_VC1_IsIntra 0x00000800 |
| |
| #define BA_ResPROP_VC1_SubBlkIdx 0x0001 |
| #define B16ResPROP_VC1_SubBlkIdx 0x0000 |
| #define LSb32ResPROP_VC1_SubBlkIdx 12 |
| #define LSb16ResPROP_VC1_SubBlkIdx 12 |
| #define bResPROP_VC1_SubBlkIdx 2 |
| #define MSK32ResPROP_VC1_SubBlkIdx 0x00003000 |
| |
| #define BA_ResPROP_VC1_TransTypeOrIpMode 0x0001 |
| #define B16ResPROP_VC1_TransTypeOrIpMode 0x0000 |
| #define LSb32ResPROP_VC1_TransTypeOrIpMode 14 |
| #define LSb16ResPROP_VC1_TransTypeOrIpMode 14 |
| #define bResPROP_VC1_TransTypeOrIpMode 2 |
| #define MSK32ResPROP_VC1_TransTypeOrIpMode 0x0000C000 |
| #define ResPROP_VC1_TransTypeOrIpMode_TRANS_4x4 0x0 |
| #define ResPROP_VC1_TransTypeOrIpMode_TRANS_4x8 0x1 |
| #define ResPROP_VC1_TransTypeOrIpMode_TRANS_8x4 0x2 |
| #define ResPROP_VC1_TransTypeOrIpMode_TRANS_8x8 0x3 |
| #define ResPROP_VC1_TransTypeOrIpMode_IP_NORMAL 0x0 |
| #define ResPROP_VC1_TransTypeOrIpMode_IP_HORIZONTAL 0x1 |
| #define ResPROP_VC1_TransTypeOrIpMode_IP_VERTICAL 0x2 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_ResPROP_VC1 { |
| /////////////////////////////////////////////////////////// |
| #define GET32ResPROP_VC1_MaxNumCoeff(r32) _BFGET_(r32, 7, 0) |
| #define SET32ResPROP_VC1_MaxNumCoeff(r32,v) _BFSET_(r32, 7, 0,v) |
| #define GET16ResPROP_VC1_MaxNumCoeff(r16) _BFGET_(r16, 7, 0) |
| #define SET16ResPROP_VC1_MaxNumCoeff(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32ResPROP_VC1_eBlk(r32) _BFGET_(r32,10, 8) |
| #define SET32ResPROP_VC1_eBlk(r32,v) _BFSET_(r32,10, 8,v) |
| #define GET16ResPROP_VC1_eBlk(r16) _BFGET_(r16,10, 8) |
| #define SET16ResPROP_VC1_eBlk(r16,v) _BFSET_(r16,10, 8,v) |
| |
| #define GET32ResPROP_VC1_IsIntra(r32) _BFGET_(r32,11,11) |
| #define SET32ResPROP_VC1_IsIntra(r32,v) _BFSET_(r32,11,11,v) |
| #define GET16ResPROP_VC1_IsIntra(r16) _BFGET_(r16,11,11) |
| #define SET16ResPROP_VC1_IsIntra(r16,v) _BFSET_(r16,11,11,v) |
| |
| #define GET32ResPROP_VC1_SubBlkIdx(r32) _BFGET_(r32,13,12) |
| #define SET32ResPROP_VC1_SubBlkIdx(r32,v) _BFSET_(r32,13,12,v) |
| #define GET16ResPROP_VC1_SubBlkIdx(r16) _BFGET_(r16,13,12) |
| #define SET16ResPROP_VC1_SubBlkIdx(r16,v) _BFSET_(r16,13,12,v) |
| |
| #define GET32ResPROP_VC1_TransTypeOrIpMode(r32) _BFGET_(r32,15,14) |
| #define SET32ResPROP_VC1_TransTypeOrIpMode(r32,v) _BFSET_(r32,15,14,v) |
| #define GET16ResPROP_VC1_TransTypeOrIpMode(r16) _BFGET_(r16,15,14) |
| #define SET16ResPROP_VC1_TransTypeOrIpMode(r16,v) _BFSET_(r16,15,14,v) |
| |
| UNSG32 u_MaxNumCoeff : 8; |
| UNSG32 u_eBlk : 3; |
| UNSG32 u_IsIntra : 1; |
| UNSG32 u_SubBlkIdx : 2; |
| UNSG32 u_TransTypeOrIpMode : 2; |
| UNSG32 RSVDx0_b16 : 16; |
| /////////////////////////////////////////////////////////// |
| } SIE_ResPROP_VC1; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 ResPROP_VC1_drvrd(SIE_ResPROP_VC1 *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 ResPROP_VC1_drvwr(SIE_ResPROP_VC1 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void ResPROP_VC1_reset(SIE_ResPROP_VC1 *p); |
| SIGN32 ResPROP_VC1_cmp (SIE_ResPROP_VC1 *p, SIE_ResPROP_VC1 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define ResPROP_VC1_check(p,pie,pfx,hLOG) ResPROP_VC1_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define ResPROP_VC1_print(p, pfx,hLOG) ResPROP_VC1_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: ResPROP_VC1 |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE ResPROP_MPEG2 (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 1 Intra_MB |
| /// : inter 0x0 |
| /// : intra 0x1 |
| /// ### |
| /// * Indicate current MB is inter-coded or intra-coded |
| /// ### |
| /// %unsigned 1 CC |
| /// : luma 0x0 |
| /// : chroma 0x1 |
| /// ### |
| /// * Color component (to select VLC table) |
| /// ### |
| /// %unsigned 1 intra_vlc_format |
| /// ### |
| /// * Whether to use intra VLC DC table or inter table |
| /// * End of ResProp_MPEG2 |
| /// ### |
| /// %% 29 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 3b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_ResPROP_MPEG2 |
| #define h_ResPROP_MPEG2 (){} |
| |
| #define BA_ResPROP_MPEG2_Intra_MB 0x0000 |
| #define B16ResPROP_MPEG2_Intra_MB 0x0000 |
| #define LSb32ResPROP_MPEG2_Intra_MB 0 |
| #define LSb16ResPROP_MPEG2_Intra_MB 0 |
| #define bResPROP_MPEG2_Intra_MB 1 |
| #define MSK32ResPROP_MPEG2_Intra_MB 0x00000001 |
| #define ResPROP_MPEG2_Intra_MB_inter 0x0 |
| #define ResPROP_MPEG2_Intra_MB_intra 0x1 |
| |
| #define BA_ResPROP_MPEG2_CC 0x0000 |
| #define B16ResPROP_MPEG2_CC 0x0000 |
| #define LSb32ResPROP_MPEG2_CC 1 |
| #define LSb16ResPROP_MPEG2_CC 1 |
| #define bResPROP_MPEG2_CC 1 |
| #define MSK32ResPROP_MPEG2_CC 0x00000002 |
| #define ResPROP_MPEG2_CC_luma 0x0 |
| #define ResPROP_MPEG2_CC_chroma 0x1 |
| |
| #define BA_ResPROP_MPEG2_intra_vlc_format 0x0000 |
| #define B16ResPROP_MPEG2_intra_vlc_format 0x0000 |
| #define LSb32ResPROP_MPEG2_intra_vlc_format 2 |
| #define LSb16ResPROP_MPEG2_intra_vlc_format 2 |
| #define bResPROP_MPEG2_intra_vlc_format 1 |
| #define MSK32ResPROP_MPEG2_intra_vlc_format 0x00000004 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_ResPROP_MPEG2 { |
| /////////////////////////////////////////////////////////// |
| #define GET32ResPROP_MPEG2_Intra_MB(r32) _BFGET_(r32, 0, 0) |
| #define SET32ResPROP_MPEG2_Intra_MB(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16ResPROP_MPEG2_Intra_MB(r16) _BFGET_(r16, 0, 0) |
| #define SET16ResPROP_MPEG2_Intra_MB(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32ResPROP_MPEG2_CC(r32) _BFGET_(r32, 1, 1) |
| #define SET32ResPROP_MPEG2_CC(r32,v) _BFSET_(r32, 1, 1,v) |
| #define GET16ResPROP_MPEG2_CC(r16) _BFGET_(r16, 1, 1) |
| #define SET16ResPROP_MPEG2_CC(r16,v) _BFSET_(r16, 1, 1,v) |
| |
| #define GET32ResPROP_MPEG2_intra_vlc_format(r32) _BFGET_(r32, 2, 2) |
| #define SET32ResPROP_MPEG2_intra_vlc_format(r32,v) _BFSET_(r32, 2, 2,v) |
| #define GET16ResPROP_MPEG2_intra_vlc_format(r16) _BFGET_(r16, 2, 2) |
| #define SET16ResPROP_MPEG2_intra_vlc_format(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| UNSG32 u_Intra_MB : 1; |
| UNSG32 u_CC : 1; |
| UNSG32 u_intra_vlc_format : 1; |
| UNSG32 RSVDx0_b3 : 29; |
| /////////////////////////////////////////////////////////// |
| } SIE_ResPROP_MPEG2; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 ResPROP_MPEG2_drvrd(SIE_ResPROP_MPEG2 *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 ResPROP_MPEG2_drvwr(SIE_ResPROP_MPEG2 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void ResPROP_MPEG2_reset(SIE_ResPROP_MPEG2 *p); |
| SIGN32 ResPROP_MPEG2_cmp (SIE_ResPROP_MPEG2 *p, SIE_ResPROP_MPEG2 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define ResPROP_MPEG2_check(p,pie,pfx,hLOG) ResPROP_MPEG2_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define ResPROP_MPEG2_print(p, pfx,hLOG) ResPROP_MPEG2_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: ResPROP_MPEG2 |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE ResPROP_MPEG4 (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 1 Intra_MB |
| /// : inter 0x0 |
| /// : intra 0x1 |
| /// ### |
| /// * Indicate current MB is inter-coded or intra-coded |
| /// ### |
| /// %unsigned 1 CC |
| /// : luma 0x0 |
| /// : chroma 0x1 |
| /// ### |
| /// * Color component (to select VLC table) |
| /// ### |
| /// %unsigned 1 use_intra_dc_vlc |
| /// ### |
| /// * Whether to use intra VLC DC table or inter table |
| /// ### |
| /// %unsigned 1 pattern_code |
| /// ### |
| /// * Indicate whether to encode AC coefficients |
| /// ### |
| /// %unsigned 2 scan_order |
| /// : normal 0x0 |
| /// : horizontal 0x1 |
| /// : vertical 0x2 |
| /// ### |
| /// * Indicate zigzag scan order of 8x8 coefficients |
| /// * End of ResProp_MPEG4 |
| /// ### |
| /// %% 26 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 6b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_ResPROP_MPEG4 |
| #define h_ResPROP_MPEG4 (){} |
| |
| #define BA_ResPROP_MPEG4_Intra_MB 0x0000 |
| #define B16ResPROP_MPEG4_Intra_MB 0x0000 |
| #define LSb32ResPROP_MPEG4_Intra_MB 0 |
| #define LSb16ResPROP_MPEG4_Intra_MB 0 |
| #define bResPROP_MPEG4_Intra_MB 1 |
| #define MSK32ResPROP_MPEG4_Intra_MB 0x00000001 |
| #define ResPROP_MPEG4_Intra_MB_inter 0x0 |
| #define ResPROP_MPEG4_Intra_MB_intra 0x1 |
| |
| #define BA_ResPROP_MPEG4_CC 0x0000 |
| #define B16ResPROP_MPEG4_CC 0x0000 |
| #define LSb32ResPROP_MPEG4_CC 1 |
| #define LSb16ResPROP_MPEG4_CC 1 |
| #define bResPROP_MPEG4_CC 1 |
| #define MSK32ResPROP_MPEG4_CC 0x00000002 |
| #define ResPROP_MPEG4_CC_luma 0x0 |
| #define ResPROP_MPEG4_CC_chroma 0x1 |
| |
| #define BA_ResPROP_MPEG4_use_intra_dc_vlc 0x0000 |
| #define B16ResPROP_MPEG4_use_intra_dc_vlc 0x0000 |
| #define LSb32ResPROP_MPEG4_use_intra_dc_vlc 2 |
| #define LSb16ResPROP_MPEG4_use_intra_dc_vlc 2 |
| #define bResPROP_MPEG4_use_intra_dc_vlc 1 |
| #define MSK32ResPROP_MPEG4_use_intra_dc_vlc 0x00000004 |
| |
| #define BA_ResPROP_MPEG4_pattern_code 0x0000 |
| #define B16ResPROP_MPEG4_pattern_code 0x0000 |
| #define LSb32ResPROP_MPEG4_pattern_code 3 |
| #define LSb16ResPROP_MPEG4_pattern_code 3 |
| #define bResPROP_MPEG4_pattern_code 1 |
| #define MSK32ResPROP_MPEG4_pattern_code 0x00000008 |
| |
| #define BA_ResPROP_MPEG4_scan_order 0x0000 |
| #define B16ResPROP_MPEG4_scan_order 0x0000 |
| #define LSb32ResPROP_MPEG4_scan_order 4 |
| #define LSb16ResPROP_MPEG4_scan_order 4 |
| #define bResPROP_MPEG4_scan_order 2 |
| #define MSK32ResPROP_MPEG4_scan_order 0x00000030 |
| #define ResPROP_MPEG4_scan_order_normal 0x0 |
| #define ResPROP_MPEG4_scan_order_horizontal 0x1 |
| #define ResPROP_MPEG4_scan_order_vertical 0x2 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_ResPROP_MPEG4 { |
| /////////////////////////////////////////////////////////// |
| #define GET32ResPROP_MPEG4_Intra_MB(r32) _BFGET_(r32, 0, 0) |
| #define SET32ResPROP_MPEG4_Intra_MB(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16ResPROP_MPEG4_Intra_MB(r16) _BFGET_(r16, 0, 0) |
| #define SET16ResPROP_MPEG4_Intra_MB(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32ResPROP_MPEG4_CC(r32) _BFGET_(r32, 1, 1) |
| #define SET32ResPROP_MPEG4_CC(r32,v) _BFSET_(r32, 1, 1,v) |
| #define GET16ResPROP_MPEG4_CC(r16) _BFGET_(r16, 1, 1) |
| #define SET16ResPROP_MPEG4_CC(r16,v) _BFSET_(r16, 1, 1,v) |
| |
| #define GET32ResPROP_MPEG4_use_intra_dc_vlc(r32) _BFGET_(r32, 2, 2) |
| #define SET32ResPROP_MPEG4_use_intra_dc_vlc(r32,v) _BFSET_(r32, 2, 2,v) |
| #define GET16ResPROP_MPEG4_use_intra_dc_vlc(r16) _BFGET_(r16, 2, 2) |
| #define SET16ResPROP_MPEG4_use_intra_dc_vlc(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define GET32ResPROP_MPEG4_pattern_code(r32) _BFGET_(r32, 3, 3) |
| #define SET32ResPROP_MPEG4_pattern_code(r32,v) _BFSET_(r32, 3, 3,v) |
| #define GET16ResPROP_MPEG4_pattern_code(r16) _BFGET_(r16, 3, 3) |
| #define SET16ResPROP_MPEG4_pattern_code(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32ResPROP_MPEG4_scan_order(r32) _BFGET_(r32, 5, 4) |
| #define SET32ResPROP_MPEG4_scan_order(r32,v) _BFSET_(r32, 5, 4,v) |
| #define GET16ResPROP_MPEG4_scan_order(r16) _BFGET_(r16, 5, 4) |
| #define SET16ResPROP_MPEG4_scan_order(r16,v) _BFSET_(r16, 5, 4,v) |
| |
| UNSG32 u_Intra_MB : 1; |
| UNSG32 u_CC : 1; |
| UNSG32 u_use_intra_dc_vlc : 1; |
| UNSG32 u_pattern_code : 1; |
| UNSG32 u_scan_order : 2; |
| UNSG32 RSVDx0_b6 : 26; |
| /////////////////////////////////////////////////////////// |
| } SIE_ResPROP_MPEG4; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 ResPROP_MPEG4_drvrd(SIE_ResPROP_MPEG4 *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 ResPROP_MPEG4_drvwr(SIE_ResPROP_MPEG4 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void ResPROP_MPEG4_reset(SIE_ResPROP_MPEG4 *p); |
| SIGN32 ResPROP_MPEG4_cmp (SIE_ResPROP_MPEG4 *p, SIE_ResPROP_MPEG4 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define ResPROP_MPEG4_check(p,pie,pfx,hLOG) ResPROP_MPEG4_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define ResPROP_MPEG4_print(p, pfx,hLOG) ResPROP_MPEG4_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: ResPROP_MPEG4 |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE ResPROP_JPEG (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 1 DCTblId |
| /// : luma 0x0 |
| /// : chroma 0x1 |
| /// ### |
| /// * Selects Huffman table used to decode or encode DC coefficients |
| /// ### |
| /// %unsigned 1 ACTblId |
| /// : luma 0x0 |
| /// : chroma 0x1 |
| /// ### |
| /// * Selects Huffman table used to decode or encode AC coefficients |
| /// * End of ResPROP_JPEG |
| /// ### |
| /// %% 30 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 2b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_ResPROP_JPEG |
| #define h_ResPROP_JPEG (){} |
| |
| #define BA_ResPROP_JPEG_DCTblId 0x0000 |
| #define B16ResPROP_JPEG_DCTblId 0x0000 |
| #define LSb32ResPROP_JPEG_DCTblId 0 |
| #define LSb16ResPROP_JPEG_DCTblId 0 |
| #define bResPROP_JPEG_DCTblId 1 |
| #define MSK32ResPROP_JPEG_DCTblId 0x00000001 |
| #define ResPROP_JPEG_DCTblId_luma 0x0 |
| #define ResPROP_JPEG_DCTblId_chroma 0x1 |
| |
| #define BA_ResPROP_JPEG_ACTblId 0x0000 |
| #define B16ResPROP_JPEG_ACTblId 0x0000 |
| #define LSb32ResPROP_JPEG_ACTblId 1 |
| #define LSb16ResPROP_JPEG_ACTblId 1 |
| #define bResPROP_JPEG_ACTblId 1 |
| #define MSK32ResPROP_JPEG_ACTblId 0x00000002 |
| #define ResPROP_JPEG_ACTblId_luma 0x0 |
| #define ResPROP_JPEG_ACTblId_chroma 0x1 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_ResPROP_JPEG { |
| /////////////////////////////////////////////////////////// |
| #define GET32ResPROP_JPEG_DCTblId(r32) _BFGET_(r32, 0, 0) |
| #define SET32ResPROP_JPEG_DCTblId(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16ResPROP_JPEG_DCTblId(r16) _BFGET_(r16, 0, 0) |
| #define SET16ResPROP_JPEG_DCTblId(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32ResPROP_JPEG_ACTblId(r32) _BFGET_(r32, 1, 1) |
| #define SET32ResPROP_JPEG_ACTblId(r32,v) _BFSET_(r32, 1, 1,v) |
| #define GET16ResPROP_JPEG_ACTblId(r16) _BFGET_(r16, 1, 1) |
| #define SET16ResPROP_JPEG_ACTblId(r16,v) _BFSET_(r16, 1, 1,v) |
| |
| UNSG32 u_DCTblId : 1; |
| UNSG32 u_ACTblId : 1; |
| UNSG32 RSVDx0_b2 : 30; |
| /////////////////////////////////////////////////////////// |
| } SIE_ResPROP_JPEG; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 ResPROP_JPEG_drvrd(SIE_ResPROP_JPEG *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 ResPROP_JPEG_drvwr(SIE_ResPROP_JPEG *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void ResPROP_JPEG_reset(SIE_ResPROP_JPEG *p); |
| SIGN32 ResPROP_JPEG_cmp (SIE_ResPROP_JPEG *p, SIE_ResPROP_JPEG *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define ResPROP_JPEG_check(p,pie,pfx,hLOG) ResPROP_JPEG_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define ResPROP_JPEG_print(p, pfx,hLOG) ResPROP_JPEG_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: ResPROP_JPEG |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE TotalCoeff6 (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 5 nc_0i |
| /// %unsigned 5 nc_1i |
| /// %unsigned 5 nc_2i |
| /// ### |
| /// * The number of non-zero transform coefficients in a 4x4 Y or UV coefficient block. Totally 3 blocks are in order 0 ~ 2. |
| /// ### |
| /// %% 1 # Stuffing bits... |
| /// %unsigned 5 nc1_0i |
| /// %unsigned 5 nc1_1i |
| /// %unsigned 5 nc1_2i |
| /// %% 1 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 30b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_TotalCoeff6 |
| #define h_TotalCoeff6 (){} |
| |
| #define BA_TotalCoeff6_nc_0i 0x0000 |
| #define B16TotalCoeff6_nc_0i 0x0000 |
| #define LSb32TotalCoeff6_nc_0i 0 |
| #define LSb16TotalCoeff6_nc_0i 0 |
| #define bTotalCoeff6_nc_0i 5 |
| #define MSK32TotalCoeff6_nc_0i 0x0000001F |
| |
| #define BA_TotalCoeff6_nc_1i 0x0000 |
| #define B16TotalCoeff6_nc_1i 0x0000 |
| #define LSb32TotalCoeff6_nc_1i 5 |
| #define LSb16TotalCoeff6_nc_1i 5 |
| #define bTotalCoeff6_nc_1i 5 |
| #define MSK32TotalCoeff6_nc_1i 0x000003E0 |
| |
| #define BA_TotalCoeff6_nc_2i 0x0001 |
| #define B16TotalCoeff6_nc_2i 0x0000 |
| #define LSb32TotalCoeff6_nc_2i 10 |
| #define LSb16TotalCoeff6_nc_2i 10 |
| #define bTotalCoeff6_nc_2i 5 |
| #define MSK32TotalCoeff6_nc_2i 0x00007C00 |
| |
| #define BA_TotalCoeff6_nc1_0i 0x0002 |
| #define B16TotalCoeff6_nc1_0i 0x0002 |
| #define LSb32TotalCoeff6_nc1_0i 16 |
| #define LSb16TotalCoeff6_nc1_0i 0 |
| #define bTotalCoeff6_nc1_0i 5 |
| #define MSK32TotalCoeff6_nc1_0i 0x001F0000 |
| |
| #define BA_TotalCoeff6_nc1_1i 0x0002 |
| #define B16TotalCoeff6_nc1_1i 0x0002 |
| #define LSb32TotalCoeff6_nc1_1i 21 |
| #define LSb16TotalCoeff6_nc1_1i 5 |
| #define bTotalCoeff6_nc1_1i 5 |
| #define MSK32TotalCoeff6_nc1_1i 0x03E00000 |
| |
| #define BA_TotalCoeff6_nc1_2i 0x0003 |
| #define B16TotalCoeff6_nc1_2i 0x0002 |
| #define LSb32TotalCoeff6_nc1_2i 26 |
| #define LSb16TotalCoeff6_nc1_2i 10 |
| #define bTotalCoeff6_nc1_2i 5 |
| #define MSK32TotalCoeff6_nc1_2i 0x7C000000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_TotalCoeff6 { |
| /////////////////////////////////////////////////////////// |
| #define GET32TotalCoeff6_nc_0i(r32) _BFGET_(r32, 4, 0) |
| #define SET32TotalCoeff6_nc_0i(r32,v) _BFSET_(r32, 4, 0,v) |
| #define GET16TotalCoeff6_nc_0i(r16) _BFGET_(r16, 4, 0) |
| #define SET16TotalCoeff6_nc_0i(r16,v) _BFSET_(r16, 4, 0,v) |
| |
| #define GET32TotalCoeff6_nc_1i(r32) _BFGET_(r32, 9, 5) |
| #define SET32TotalCoeff6_nc_1i(r32,v) _BFSET_(r32, 9, 5,v) |
| #define GET16TotalCoeff6_nc_1i(r16) _BFGET_(r16, 9, 5) |
| #define SET16TotalCoeff6_nc_1i(r16,v) _BFSET_(r16, 9, 5,v) |
| |
| #define GET32TotalCoeff6_nc_2i(r32) _BFGET_(r32,14,10) |
| #define SET32TotalCoeff6_nc_2i(r32,v) _BFSET_(r32,14,10,v) |
| #define GET16TotalCoeff6_nc_2i(r16) _BFGET_(r16,14,10) |
| #define SET16TotalCoeff6_nc_2i(r16,v) _BFSET_(r16,14,10,v) |
| |
| #define GET32TotalCoeff6_nc1_0i(r32) _BFGET_(r32,20,16) |
| #define SET32TotalCoeff6_nc1_0i(r32,v) _BFSET_(r32,20,16,v) |
| #define GET16TotalCoeff6_nc1_0i(r16) _BFGET_(r16, 4, 0) |
| #define SET16TotalCoeff6_nc1_0i(r16,v) _BFSET_(r16, 4, 0,v) |
| |
| #define GET32TotalCoeff6_nc1_1i(r32) _BFGET_(r32,25,21) |
| #define SET32TotalCoeff6_nc1_1i(r32,v) _BFSET_(r32,25,21,v) |
| #define GET16TotalCoeff6_nc1_1i(r16) _BFGET_(r16, 9, 5) |
| #define SET16TotalCoeff6_nc1_1i(r16,v) _BFSET_(r16, 9, 5,v) |
| |
| #define GET32TotalCoeff6_nc1_2i(r32) _BFGET_(r32,30,26) |
| #define SET32TotalCoeff6_nc1_2i(r32,v) _BFSET_(r32,30,26,v) |
| #define GET16TotalCoeff6_nc1_2i(r16) _BFGET_(r16,14,10) |
| #define SET16TotalCoeff6_nc1_2i(r16,v) _BFSET_(r16,14,10,v) |
| |
| UNSG32 u_nc_0i : 5; |
| UNSG32 u_nc_1i : 5; |
| UNSG32 u_nc_2i : 5; |
| UNSG32 RSVDx0_b15 : 1; |
| UNSG32 u_nc1_0i : 5; |
| UNSG32 u_nc1_1i : 5; |
| UNSG32 u_nc1_2i : 5; |
| UNSG32 RSVDx0_b31 : 1; |
| /////////////////////////////////////////////////////////// |
| } SIE_TotalCoeff6; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 TotalCoeff6_drvrd(SIE_TotalCoeff6 *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 TotalCoeff6_drvwr(SIE_TotalCoeff6 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void TotalCoeff6_reset(SIE_TotalCoeff6 *p); |
| SIGN32 TotalCoeff6_cmp (SIE_TotalCoeff6 *p, SIE_TotalCoeff6 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define TotalCoeff6_check(p,pie,pfx,hLOG) TotalCoeff6_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define TotalCoeff6_print(p, pfx,hLOG) TotalCoeff6_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: TotalCoeff6 |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE ASEPopTotalCoeff (4,2) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 TotalCoeff |
| /// $TotalCoeff6 TotalCoeff REG [2] |
| /// ### |
| /// * The number of non-zero transform coefficients in a 4x4 Y or UV coefficient block in 3 block group. Totally 12 blocks in 4 groups are in order 0 ~ 11. |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 60b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_ASEPopTotalCoeff |
| #define h_ASEPopTotalCoeff (){} |
| |
| #define RA_ASEPopTotalCoeff_TotalCoeff 0x0000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_ASEPopTotalCoeff { |
| /////////////////////////////////////////////////////////// |
| SIE_TotalCoeff6 ie_TotalCoeff[2]; |
| /////////////////////////////////////////////////////////// |
| } SIE_ASEPopTotalCoeff; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 ASEPopTotalCoeff_drvrd(SIE_ASEPopTotalCoeff *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 ASEPopTotalCoeff_drvwr(SIE_ASEPopTotalCoeff *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void ASEPopTotalCoeff_reset(SIE_ASEPopTotalCoeff *p); |
| SIGN32 ASEPopTotalCoeff_cmp (SIE_ASEPopTotalCoeff *p, SIE_ASEPopTotalCoeff *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define ASEPopTotalCoeff_check(p,pie,pfx,hLOG) ASEPopTotalCoeff_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define ASEPopTotalCoeff_print(p, pfx,hLOG) ASEPopTotalCoeff_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: ASEPopTotalCoeff |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE RF64PIC biu (4,4) |
| /// ### |
| /// * RF64 picture-level information for ALU64 extensions; padded to 64b. Used in placed of BIU register for efficiency. Parameters in this interface should only be updated at the slice boundary. |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 3 format |
| /// : h264 0x0 |
| /// : wmv 0x1 |
| /// ### |
| /// * VC-1 Main Profile |
| /// ### |
| /// : mpg2 0x2 |
| /// : other 0x3 |
| /// : mpg4 0x4 |
| /// : vc1ap 0x5 |
| /// ### |
| /// * VC-1 Advanced Profile |
| /// ### |
| /// : h263 0x6 |
| /// : avs 0x7 |
| /// ### |
| /// * Format of the current video stream |
| /// ### |
| /// %unsigned 1 cabac |
| /// ### |
| /// * Whether current slice is coded in CABAC |
| /// ### |
| /// %unsigned 2 picType |
| /// : I 0x0 |
| /// : P 0x1 |
| /// : B 0x2 |
| /// ### |
| /// * Used by PMV to qualify between P_skip & B_skip |
| /// ### |
| /// %unsigned 5 maxL0 |
| /// ### |
| /// * H264: num_ref_idx_l0_active_minus1 |
| /// ### |
| /// %unsigned 5 maxL1 |
| /// ### |
| /// * H264: num_ref_idx_l1_active_minus1 |
| /// ### |
| /// %unsigned 1 MbaffPic |
| /// ### |
| /// * Whether current picture is Mbaff pic or not; for FOP |
| /// * For VC-1: |
| /// * (~Mbaffpic && ~fieldPic) -> progressive |
| /// * (Mbaffpic && ~fieldPic) -> interlace frame |
| /// ### |
| /// %unsigned 1 fieldPic |
| /// ### |
| /// * Whether current picture is field coded or not; for FOP |
| /// * For VC-1: |
| /// * (~MbaffPic && fieldPic) -> interlace field, one ref; |
| /// * (MbaffPic && fieldPic) -> interlace field, two ref |
| /// ### |
| /// %unsigned 1 spatialPred |
| /// ### |
| /// * Spatial direct prediction modee; for dirMV. |
| /// ### |
| /// %unsigned 1 colPicMbaff |
| /// ### |
| /// * Whether colocated pic is Mbaff pic or not; for dirMV |
| /// ### |
| /// %unsigned 1 colPicField |
| /// ### |
| /// * Whether colocated picture is field pic or not; for dirMV |
| /// ### |
| /// %unsigned 1 colPicST |
| /// ### |
| /// * Co-located picture is a long-term (0) or short-term (1) reference picture; for dirMV. |
| /// ### |
| /// %signed 5 AC0Offset |
| /// ### |
| /// * = slice_alpha_c0_offset_div2<<1, -12 ~ +12, inclusive, even numbers only. For FOP only. |
| /// ### |
| /// %signed 5 BetaOffset |
| /// ### |
| /// * = slice_beta_offset_div2<<1, -12 ~ +12, inclusive, even numbers only. For FOP only. |
| /// ### |
| /// @ 0x00004 (P) |
| /// %unsigned 16 dqAcLimit |
| /// ### |
| /// * Saturation limit for AC dequantization |
| /// * Also apply for universal dequantization |
| /// ### |
| /// %unsigned 14 dqDcLimit |
| /// ### |
| /// * Saturation limit for DC dequantization |
| /// ### |
| /// %unsigned 2 mismatch |
| /// : none 0x0 |
| /// : mpeg1 0x1 |
| /// : mpeg2 0x2 |
| /// ### |
| /// * mismatch control, for AC dequant only |
| /// ### |
| /// @ 0x00008 (P) |
| /// %unsigned 16 picW |
| /// ### |
| /// * Width of current picture; up to 2047 |
| /// ### |
| /// %unsigned 13 picH |
| /// ### |
| /// * Height of current picture; up to 2047. For vcMsg only |
| /// ### |
| /// %unsigned 1 btmFldPic |
| /// ### |
| /// * H.264: Current picture is bottom field; for vcMsg. Valid only when fieldPic==1. |
| /// ### |
| /// %unsigned 2 hint |
| /// ### |
| /// * Same as CacheMsg.hint; for vcMsg only |
| /// ### |
| /// @ 0x0000C (P) |
| /// %unsigned 8 shiftLumaX |
| /// ### |
| /// * (For vcMsg only) Shift amount lookup table for Luma X direction. 4 entries, 2-bit per entry, indexed by mvx[1:0] in little-endian format |
| /// ### |
| /// %unsigned 8 shiftLumaY |
| /// ### |
| /// * (For vcMsg only) Shift amount lookup table for Luma Y direction. 4 entries, 2-bit per entry, indexed by mvy[1:0] in little-endian format |
| /// ### |
| /// %unsigned 8 shiftChromaX |
| /// ### |
| /// * (For vcMsg only) Shift amount lookup table for Chroma X direction. 4 entries, 2-bit per entry, indexed by mvx[1:0] in little-endian format |
| /// ### |
| /// %unsigned 8 shiftChromaY |
| /// ### |
| /// * (For vcMsg only) Shift amount lookup table for Chroma Y direction. 4 entries, 2-bit per entry, indexed by mvy[1:0] in little-endian format |
| /// ### |
| /// @ 0x00010 (P) |
| /// %unsigned 4 fracTapDiv2Y |
| /// ### |
| /// * (Tap size / 2) for luma fractional MV interpolation |
| /// ### |
| /// %unsigned 4 fracTapDiv2C |
| /// ### |
| /// * (Tap size / 2) for chroma fractional MV interpolation |
| /// ### |
| /// %unsigned 6 IPCM_QPU |
| /// ### |
| /// * QPU for IPCM coded MBs; for H.264 FOP |
| /// ### |
| /// %unsigned 6 IPCM_QPV |
| /// ### |
| /// * QPV for IPCM coded MBs; for H.264 FOP |
| /// ### |
| /// %unsigned 12 RSVD12 |
| /// ### |
| /// * padding to 32 bits |
| /// ### |
| /// @ 0x00014 (P) |
| /// %unsigned 5 PQUANT |
| /// ### |
| /// * picture-level quantization factor |
| /// ### |
| /// %unsigned 2 FRFD |
| /// ### |
| /// * Forward reference picture distance, 0~3. |
| /// * Used by VC1 for interlace P field PMV, or for interlace B field forward PMV |
| /// ### |
| /// %unsigned 2 BRFD |
| /// ### |
| /// * Backward reference picture distance, 0~3. |
| /// * Used by VC1 for interlace B field backward PMV |
| /// ### |
| /// %unsigned 1 secondFld |
| /// ### |
| /// * Used by PMV for interlace field picture: whether current field is 1st field or 2nd field of display picture |
| /// ### |
| /// %unsigned 2 mvRange |
| /// ### |
| /// * 0~3; used to lookup range_x & range_y for PMV; see VC-1 spec table 75. |
| /// ### |
| /// %unsigned 1 hybridMvThres |
| /// ### |
| /// * 0: threshold = 16; 1: threshold = 32 |
| /// ### |
| /// %unsigned 1 firstMbIntra |
| /// ### |
| /// * 0: first MB or block is inter coded; 1: intra coded; used for VC-1 Fop |
| /// ### |
| /// %unsigned 1 halfPixel |
| /// ### |
| /// * Half pixel flag, for VC-1 PMV interlace field mode. |
| /// ### |
| /// %unsigned 1 forwRefInterlace |
| /// ### |
| /// * For VC-1 interlace frame picture in VCMSG extension forward reference is 0: progressive coded; 1: interlace coded |
| /// ### |
| /// %unsigned 1 backRefInterlace |
| /// ### |
| /// * For VC-1 interlace frame picture in VCMSG extension backward reference is 0: progressive coded; 1: interlace coded |
| /// ### |
| /// %unsigned 2 FrmTransACSet |
| /// ### |
| /// * For VC-1 frame-level transform AC coding set selection (for Cb and Cr block; and inter Y block). |
| /// * Valid values are 0, 1, and 2 |
| /// ### |
| /// %unsigned 2 FrmTransACSet2 |
| /// ### |
| /// * For VC-1 frame-level transform AC table-2 index selection (for I-frame Y block) |
| /// * Valid values are 0, 1, and 2 |
| /// ### |
| /// %unsigned 1 PQIndexGT8 |
| /// ### |
| /// * Indicator to represent whether Picture Quantized Index (PQIndexG8, defined in Table 36 in VC-1 spec) is greater than 8. |
| /// * 0: value of PQIndex is less than or equal to 8 |
| /// * 1: value of PQIndex is greater than 8 |
| /// ### |
| /// %unsigned 1 EscapeTBL |
| /// ### |
| /// * For VC-1 to select escape table in residual decoding |
| /// ### |
| /// %unsigned 4 format1 |
| /// : RV9 0x0 |
| /// : RV8 0x1 |
| /// : vp8 0x2 |
| /// : jpeg 0x3 |
| /// %unsigned 1 noReorder |
| /// ### |
| /// * For ASE, disable coefficient reorder. |
| /// ### |
| /// %unsigned 1 iplusModeOn |
| /// ### |
| /// * For ASE, IPLUS mode is on or not. |
| /// ### |
| /// %unsigned 3 RSVD3 |
| /// ### |
| /// * padding to 32 bits |
| /// ### |
| /// @ 0x00018 (P) |
| /// # 0x00018 RSVD |
| /// $LUT64b RSVD REG [5] |
| /// ### |
| /// * Reserved for alignment |
| /// ### |
| /// @ 0x00040 (P) |
| /// # 0x00040 rIDX2BID |
| /// $IDX2BID rIDX2BID REG |
| /// ### |
| /// * Defined in 'decHal_mbLvl.sxw.txt' |
| /// * End of RF64PIC |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 256B, bits: 2048b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_RF64PIC |
| #define h_RF64PIC (){} |
| |
| #define BA_RF64PIC_format 0x0000 |
| #define B16RF64PIC_format 0x0000 |
| #define LSb32RF64PIC_format 0 |
| #define LSb16RF64PIC_format 0 |
| #define bRF64PIC_format 3 |
| #define MSK32RF64PIC_format 0x00000007 |
| #define RF64PIC_format_h264 0x0 |
| #define RF64PIC_format_wmv 0x1 |
| #define RF64PIC_format_mpg2 0x2 |
| #define RF64PIC_format_other 0x3 |
| #define RF64PIC_format_mpg4 0x4 |
| #define RF64PIC_format_vc1ap 0x5 |
| #define RF64PIC_format_h263 0x6 |
| #define RF64PIC_format_avs 0x7 |
| |
| #define BA_RF64PIC_cabac 0x0000 |
| #define B16RF64PIC_cabac 0x0000 |
| #define LSb32RF64PIC_cabac 3 |
| #define LSb16RF64PIC_cabac 3 |
| #define bRF64PIC_cabac 1 |
| #define MSK32RF64PIC_cabac 0x00000008 |
| |
| #define BA_RF64PIC_picType 0x0000 |
| #define B16RF64PIC_picType 0x0000 |
| #define LSb32RF64PIC_picType 4 |
| #define LSb16RF64PIC_picType 4 |
| #define bRF64PIC_picType 2 |
| #define MSK32RF64PIC_picType 0x00000030 |
| #define RF64PIC_picType_I 0x0 |
| #define RF64PIC_picType_P 0x1 |
| #define RF64PIC_picType_B 0x2 |
| |
| #define BA_RF64PIC_maxL0 0x0000 |
| #define B16RF64PIC_maxL0 0x0000 |
| #define LSb32RF64PIC_maxL0 6 |
| #define LSb16RF64PIC_maxL0 6 |
| #define bRF64PIC_maxL0 5 |
| #define MSK32RF64PIC_maxL0 0x000007C0 |
| |
| #define BA_RF64PIC_maxL1 0x0001 |
| #define B16RF64PIC_maxL1 0x0000 |
| #define LSb32RF64PIC_maxL1 11 |
| #define LSb16RF64PIC_maxL1 11 |
| #define bRF64PIC_maxL1 5 |
| #define MSK32RF64PIC_maxL1 0x0000F800 |
| |
| #define BA_RF64PIC_MbaffPic 0x0002 |
| #define B16RF64PIC_MbaffPic 0x0002 |
| #define LSb32RF64PIC_MbaffPic 16 |
| #define LSb16RF64PIC_MbaffPic 0 |
| #define bRF64PIC_MbaffPic 1 |
| #define MSK32RF64PIC_MbaffPic 0x00010000 |
| |
| #define BA_RF64PIC_fieldPic 0x0002 |
| #define B16RF64PIC_fieldPic 0x0002 |
| #define LSb32RF64PIC_fieldPic 17 |
| #define LSb16RF64PIC_fieldPic 1 |
| #define bRF64PIC_fieldPic 1 |
| #define MSK32RF64PIC_fieldPic 0x00020000 |
| |
| #define BA_RF64PIC_spatialPred 0x0002 |
| #define B16RF64PIC_spatialPred 0x0002 |
| #define LSb32RF64PIC_spatialPred 18 |
| #define LSb16RF64PIC_spatialPred 2 |
| #define bRF64PIC_spatialPred 1 |
| #define MSK32RF64PIC_spatialPred 0x00040000 |
| |
| #define BA_RF64PIC_colPicMbaff 0x0002 |
| #define B16RF64PIC_colPicMbaff 0x0002 |
| #define LSb32RF64PIC_colPicMbaff 19 |
| #define LSb16RF64PIC_colPicMbaff 3 |
| #define bRF64PIC_colPicMbaff 1 |
| #define MSK32RF64PIC_colPicMbaff 0x00080000 |
| |
| #define BA_RF64PIC_colPicField 0x0002 |
| #define B16RF64PIC_colPicField 0x0002 |
| #define LSb32RF64PIC_colPicField 20 |
| #define LSb16RF64PIC_colPicField 4 |
| #define bRF64PIC_colPicField 1 |
| #define MSK32RF64PIC_colPicField 0x00100000 |
| |
| #define BA_RF64PIC_colPicST 0x0002 |
| #define B16RF64PIC_colPicST 0x0002 |
| #define LSb32RF64PIC_colPicST 21 |
| #define LSb16RF64PIC_colPicST 5 |
| #define bRF64PIC_colPicST 1 |
| #define MSK32RF64PIC_colPicST 0x00200000 |
| |
| #define BA_RF64PIC_AC0Offset 0x0002 |
| #define B16RF64PIC_AC0Offset 0x0002 |
| #define LSb32RF64PIC_AC0Offset 22 |
| #define LSb16RF64PIC_AC0Offset 6 |
| #define bRF64PIC_AC0Offset 5 |
| #define MSK32RF64PIC_AC0Offset 0x07C00000 |
| |
| #define BA_RF64PIC_BetaOffset 0x0003 |
| #define B16RF64PIC_BetaOffset 0x0002 |
| #define LSb32RF64PIC_BetaOffset 27 |
| #define LSb16RF64PIC_BetaOffset 11 |
| #define bRF64PIC_BetaOffset 5 |
| #define MSK32RF64PIC_BetaOffset 0xF8000000 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_RF64PIC_dqAcLimit 0x0004 |
| #define B16RF64PIC_dqAcLimit 0x0004 |
| #define LSb32RF64PIC_dqAcLimit 0 |
| #define LSb16RF64PIC_dqAcLimit 0 |
| #define bRF64PIC_dqAcLimit 16 |
| #define MSK32RF64PIC_dqAcLimit 0x0000FFFF |
| |
| #define BA_RF64PIC_dqDcLimit 0x0006 |
| #define B16RF64PIC_dqDcLimit 0x0006 |
| #define LSb32RF64PIC_dqDcLimit 16 |
| #define LSb16RF64PIC_dqDcLimit 0 |
| #define bRF64PIC_dqDcLimit 14 |
| #define MSK32RF64PIC_dqDcLimit 0x3FFF0000 |
| |
| #define BA_RF64PIC_mismatch 0x0007 |
| #define B16RF64PIC_mismatch 0x0006 |
| #define LSb32RF64PIC_mismatch 30 |
| #define LSb16RF64PIC_mismatch 14 |
| #define bRF64PIC_mismatch 2 |
| #define MSK32RF64PIC_mismatch 0xC0000000 |
| #define RF64PIC_mismatch_none 0x0 |
| #define RF64PIC_mismatch_mpeg1 0x1 |
| #define RF64PIC_mismatch_mpeg2 0x2 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_RF64PIC_picW 0x0008 |
| #define B16RF64PIC_picW 0x0008 |
| #define LSb32RF64PIC_picW 0 |
| #define LSb16RF64PIC_picW 0 |
| #define bRF64PIC_picW 16 |
| #define MSK32RF64PIC_picW 0x0000FFFF |
| |
| #define BA_RF64PIC_picH 0x000A |
| #define B16RF64PIC_picH 0x000A |
| #define LSb32RF64PIC_picH 16 |
| #define LSb16RF64PIC_picH 0 |
| #define bRF64PIC_picH 13 |
| #define MSK32RF64PIC_picH 0x1FFF0000 |
| |
| #define BA_RF64PIC_btmFldPic 0x000B |
| #define B16RF64PIC_btmFldPic 0x000A |
| #define LSb32RF64PIC_btmFldPic 29 |
| #define LSb16RF64PIC_btmFldPic 13 |
| #define bRF64PIC_btmFldPic 1 |
| #define MSK32RF64PIC_btmFldPic 0x20000000 |
| |
| #define BA_RF64PIC_hint 0x000B |
| #define B16RF64PIC_hint 0x000A |
| #define LSb32RF64PIC_hint 30 |
| #define LSb16RF64PIC_hint 14 |
| #define bRF64PIC_hint 2 |
| #define MSK32RF64PIC_hint 0xC0000000 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_RF64PIC_shiftLumaX 0x000C |
| #define B16RF64PIC_shiftLumaX 0x000C |
| #define LSb32RF64PIC_shiftLumaX 0 |
| #define LSb16RF64PIC_shiftLumaX 0 |
| #define bRF64PIC_shiftLumaX 8 |
| #define MSK32RF64PIC_shiftLumaX 0x000000FF |
| |
| #define BA_RF64PIC_shiftLumaY 0x000D |
| #define B16RF64PIC_shiftLumaY 0x000C |
| #define LSb32RF64PIC_shiftLumaY 8 |
| #define LSb16RF64PIC_shiftLumaY 8 |
| #define bRF64PIC_shiftLumaY 8 |
| #define MSK32RF64PIC_shiftLumaY 0x0000FF00 |
| |
| #define BA_RF64PIC_shiftChromaX 0x000E |
| #define B16RF64PIC_shiftChromaX 0x000E |
| #define LSb32RF64PIC_shiftChromaX 16 |
| #define LSb16RF64PIC_shiftChromaX 0 |
| #define bRF64PIC_shiftChromaX 8 |
| #define MSK32RF64PIC_shiftChromaX 0x00FF0000 |
| |
| #define BA_RF64PIC_shiftChromaY 0x000F |
| #define B16RF64PIC_shiftChromaY 0x000E |
| #define LSb32RF64PIC_shiftChromaY 24 |
| #define LSb16RF64PIC_shiftChromaY 8 |
| #define bRF64PIC_shiftChromaY 8 |
| #define MSK32RF64PIC_shiftChromaY 0xFF000000 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_RF64PIC_fracTapDiv2Y 0x0010 |
| #define B16RF64PIC_fracTapDiv2Y 0x0010 |
| #define LSb32RF64PIC_fracTapDiv2Y 0 |
| #define LSb16RF64PIC_fracTapDiv2Y 0 |
| #define bRF64PIC_fracTapDiv2Y 4 |
| #define MSK32RF64PIC_fracTapDiv2Y 0x0000000F |
| |
| #define BA_RF64PIC_fracTapDiv2C 0x0010 |
| #define B16RF64PIC_fracTapDiv2C 0x0010 |
| #define LSb32RF64PIC_fracTapDiv2C 4 |
| #define LSb16RF64PIC_fracTapDiv2C 4 |
| #define bRF64PIC_fracTapDiv2C 4 |
| #define MSK32RF64PIC_fracTapDiv2C 0x000000F0 |
| |
| #define BA_RF64PIC_IPCM_QPU 0x0011 |
| #define B16RF64PIC_IPCM_QPU 0x0010 |
| #define LSb32RF64PIC_IPCM_QPU 8 |
| #define LSb16RF64PIC_IPCM_QPU 8 |
| #define bRF64PIC_IPCM_QPU 6 |
| #define MSK32RF64PIC_IPCM_QPU 0x00003F00 |
| |
| #define BA_RF64PIC_IPCM_QPV 0x0011 |
| #define B16RF64PIC_IPCM_QPV 0x0010 |
| #define LSb32RF64PIC_IPCM_QPV 14 |
| #define LSb16RF64PIC_IPCM_QPV 14 |
| #define bRF64PIC_IPCM_QPV 6 |
| #define MSK32RF64PIC_IPCM_QPV 0x000FC000 |
| |
| #define BA_RF64PIC_RSVD12 0x0012 |
| #define B16RF64PIC_RSVD12 0x0012 |
| #define LSb32RF64PIC_RSVD12 20 |
| #define LSb16RF64PIC_RSVD12 4 |
| #define bRF64PIC_RSVD12 12 |
| #define MSK32RF64PIC_RSVD12 0xFFF00000 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_RF64PIC_PQUANT 0x0014 |
| #define B16RF64PIC_PQUANT 0x0014 |
| #define LSb32RF64PIC_PQUANT 0 |
| #define LSb16RF64PIC_PQUANT 0 |
| #define bRF64PIC_PQUANT 5 |
| #define MSK32RF64PIC_PQUANT 0x0000001F |
| |
| #define BA_RF64PIC_FRFD 0x0014 |
| #define B16RF64PIC_FRFD 0x0014 |
| #define LSb32RF64PIC_FRFD 5 |
| #define LSb16RF64PIC_FRFD 5 |
| #define bRF64PIC_FRFD 2 |
| #define MSK32RF64PIC_FRFD 0x00000060 |
| |
| #define BA_RF64PIC_BRFD 0x0014 |
| #define B16RF64PIC_BRFD 0x0014 |
| #define LSb32RF64PIC_BRFD 7 |
| #define LSb16RF64PIC_BRFD 7 |
| #define bRF64PIC_BRFD 2 |
| #define MSK32RF64PIC_BRFD 0x00000180 |
| |
| #define BA_RF64PIC_secondFld 0x0015 |
| #define B16RF64PIC_secondFld 0x0014 |
| #define LSb32RF64PIC_secondFld 9 |
| #define LSb16RF64PIC_secondFld 9 |
| #define bRF64PIC_secondFld 1 |
| #define MSK32RF64PIC_secondFld 0x00000200 |
| |
| #define BA_RF64PIC_mvRange 0x0015 |
| #define B16RF64PIC_mvRange 0x0014 |
| #define LSb32RF64PIC_mvRange 10 |
| #define LSb16RF64PIC_mvRange 10 |
| #define bRF64PIC_mvRange 2 |
| #define MSK32RF64PIC_mvRange 0x00000C00 |
| |
| #define BA_RF64PIC_hybridMvThres 0x0015 |
| #define B16RF64PIC_hybridMvThres 0x0014 |
| #define LSb32RF64PIC_hybridMvThres 12 |
| #define LSb16RF64PIC_hybridMvThres 12 |
| #define bRF64PIC_hybridMvThres 1 |
| #define MSK32RF64PIC_hybridMvThres 0x00001000 |
| |
| #define BA_RF64PIC_firstMbIntra 0x0015 |
| #define B16RF64PIC_firstMbIntra 0x0014 |
| #define LSb32RF64PIC_firstMbIntra 13 |
| #define LSb16RF64PIC_firstMbIntra 13 |
| #define bRF64PIC_firstMbIntra 1 |
| #define MSK32RF64PIC_firstMbIntra 0x00002000 |
| |
| #define BA_RF64PIC_halfPixel 0x0015 |
| #define B16RF64PIC_halfPixel 0x0014 |
| #define LSb32RF64PIC_halfPixel 14 |
| #define LSb16RF64PIC_halfPixel 14 |
| #define bRF64PIC_halfPixel 1 |
| #define MSK32RF64PIC_halfPixel 0x00004000 |
| |
| #define BA_RF64PIC_forwRefInterlace 0x0015 |
| #define B16RF64PIC_forwRefInterlace 0x0014 |
| #define LSb32RF64PIC_forwRefInterlace 15 |
| #define LSb16RF64PIC_forwRefInterlace 15 |
| #define bRF64PIC_forwRefInterlace 1 |
| #define MSK32RF64PIC_forwRefInterlace 0x00008000 |
| |
| #define BA_RF64PIC_backRefInterlace 0x0016 |
| #define B16RF64PIC_backRefInterlace 0x0016 |
| #define LSb32RF64PIC_backRefInterlace 16 |
| #define LSb16RF64PIC_backRefInterlace 0 |
| #define bRF64PIC_backRefInterlace 1 |
| #define MSK32RF64PIC_backRefInterlace 0x00010000 |
| |
| #define BA_RF64PIC_FrmTransACSet 0x0016 |
| #define B16RF64PIC_FrmTransACSet 0x0016 |
| #define LSb32RF64PIC_FrmTransACSet 17 |
| #define LSb16RF64PIC_FrmTransACSet 1 |
| #define bRF64PIC_FrmTransACSet 2 |
| #define MSK32RF64PIC_FrmTransACSet 0x00060000 |
| |
| #define BA_RF64PIC_FrmTransACSet2 0x0016 |
| #define B16RF64PIC_FrmTransACSet2 0x0016 |
| #define LSb32RF64PIC_FrmTransACSet2 19 |
| #define LSb16RF64PIC_FrmTransACSet2 3 |
| #define bRF64PIC_FrmTransACSet2 2 |
| #define MSK32RF64PIC_FrmTransACSet2 0x00180000 |
| |
| #define BA_RF64PIC_PQIndexGT8 0x0016 |
| #define B16RF64PIC_PQIndexGT8 0x0016 |
| #define LSb32RF64PIC_PQIndexGT8 21 |
| #define LSb16RF64PIC_PQIndexGT8 5 |
| #define bRF64PIC_PQIndexGT8 1 |
| #define MSK32RF64PIC_PQIndexGT8 0x00200000 |
| |
| #define BA_RF64PIC_EscapeTBL 0x0016 |
| #define B16RF64PIC_EscapeTBL 0x0016 |
| #define LSb32RF64PIC_EscapeTBL 22 |
| #define LSb16RF64PIC_EscapeTBL 6 |
| #define bRF64PIC_EscapeTBL 1 |
| #define MSK32RF64PIC_EscapeTBL 0x00400000 |
| |
| #define BA_RF64PIC_format1 0x0016 |
| #define B16RF64PIC_format1 0x0016 |
| #define LSb32RF64PIC_format1 23 |
| #define LSb16RF64PIC_format1 7 |
| #define bRF64PIC_format1 4 |
| #define MSK32RF64PIC_format1 0x07800000 |
| #define RF64PIC_format1_RV9 0x0 |
| #define RF64PIC_format1_RV8 0x1 |
| #define RF64PIC_format1_vp8 0x2 |
| #define RF64PIC_format1_jpeg 0x3 |
| |
| #define BA_RF64PIC_noReorder 0x0017 |
| #define B16RF64PIC_noReorder 0x0016 |
| #define LSb32RF64PIC_noReorder 27 |
| #define LSb16RF64PIC_noReorder 11 |
| #define bRF64PIC_noReorder 1 |
| #define MSK32RF64PIC_noReorder 0x08000000 |
| |
| #define BA_RF64PIC_iplusModeOn 0x0017 |
| #define B16RF64PIC_iplusModeOn 0x0016 |
| #define LSb32RF64PIC_iplusModeOn 28 |
| #define LSb16RF64PIC_iplusModeOn 12 |
| #define bRF64PIC_iplusModeOn 1 |
| #define MSK32RF64PIC_iplusModeOn 0x10000000 |
| |
| #define BA_RF64PIC_RSVD3 0x0017 |
| #define B16RF64PIC_RSVD3 0x0016 |
| #define LSb32RF64PIC_RSVD3 29 |
| #define LSb16RF64PIC_RSVD3 13 |
| #define bRF64PIC_RSVD3 3 |
| #define MSK32RF64PIC_RSVD3 0xE0000000 |
| /////////////////////////////////////////////////////////// |
| #define RA_RF64PIC_RSVD 0x0018 |
| /////////////////////////////////////////////////////////// |
| #define RA_RF64PIC_rIDX2BID 0x0040 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_RF64PIC { |
| /////////////////////////////////////////////////////////// |
| #define GET32RF64PIC_format(r32) _BFGET_(r32, 2, 0) |
| #define SET32RF64PIC_format(r32,v) _BFSET_(r32, 2, 0,v) |
| #define GET16RF64PIC_format(r16) _BFGET_(r16, 2, 0) |
| #define SET16RF64PIC_format(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32RF64PIC_cabac(r32) _BFGET_(r32, 3, 3) |
| #define SET32RF64PIC_cabac(r32,v) _BFSET_(r32, 3, 3,v) |
| #define GET16RF64PIC_cabac(r16) _BFGET_(r16, 3, 3) |
| #define SET16RF64PIC_cabac(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32RF64PIC_picType(r32) _BFGET_(r32, 5, 4) |
| #define SET32RF64PIC_picType(r32,v) _BFSET_(r32, 5, 4,v) |
| #define GET16RF64PIC_picType(r16) _BFGET_(r16, 5, 4) |
| #define SET16RF64PIC_picType(r16,v) _BFSET_(r16, 5, 4,v) |
| |
| #define GET32RF64PIC_maxL0(r32) _BFGET_(r32,10, 6) |
| #define SET32RF64PIC_maxL0(r32,v) _BFSET_(r32,10, 6,v) |
| #define GET16RF64PIC_maxL0(r16) _BFGET_(r16,10, 6) |
| #define SET16RF64PIC_maxL0(r16,v) _BFSET_(r16,10, 6,v) |
| |
| #define GET32RF64PIC_maxL1(r32) _BFGET_(r32,15,11) |
| #define SET32RF64PIC_maxL1(r32,v) _BFSET_(r32,15,11,v) |
| #define GET16RF64PIC_maxL1(r16) _BFGET_(r16,15,11) |
| #define SET16RF64PIC_maxL1(r16,v) _BFSET_(r16,15,11,v) |
| |
| #define GET32RF64PIC_MbaffPic(r32) _BFGET_(r32,16,16) |
| #define SET32RF64PIC_MbaffPic(r32,v) _BFSET_(r32,16,16,v) |
| #define GET16RF64PIC_MbaffPic(r16) _BFGET_(r16, 0, 0) |
| #define SET16RF64PIC_MbaffPic(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32RF64PIC_fieldPic(r32) _BFGET_(r32,17,17) |
| #define SET32RF64PIC_fieldPic(r32,v) _BFSET_(r32,17,17,v) |
| #define GET16RF64PIC_fieldPic(r16) _BFGET_(r16, 1, 1) |
| #define SET16RF64PIC_fieldPic(r16,v) _BFSET_(r16, 1, 1,v) |
| |
| #define GET32RF64PIC_spatialPred(r32) _BFGET_(r32,18,18) |
| #define SET32RF64PIC_spatialPred(r32,v) _BFSET_(r32,18,18,v) |
| #define GET16RF64PIC_spatialPred(r16) _BFGET_(r16, 2, 2) |
| #define SET16RF64PIC_spatialPred(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define GET32RF64PIC_colPicMbaff(r32) _BFGET_(r32,19,19) |
| #define SET32RF64PIC_colPicMbaff(r32,v) _BFSET_(r32,19,19,v) |
| #define GET16RF64PIC_colPicMbaff(r16) _BFGET_(r16, 3, 3) |
| #define SET16RF64PIC_colPicMbaff(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32RF64PIC_colPicField(r32) _BFGET_(r32,20,20) |
| #define SET32RF64PIC_colPicField(r32,v) _BFSET_(r32,20,20,v) |
| #define GET16RF64PIC_colPicField(r16) _BFGET_(r16, 4, 4) |
| #define SET16RF64PIC_colPicField(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define GET32RF64PIC_colPicST(r32) _BFGET_(r32,21,21) |
| #define SET32RF64PIC_colPicST(r32,v) _BFSET_(r32,21,21,v) |
| #define GET16RF64PIC_colPicST(r16) _BFGET_(r16, 5, 5) |
| #define SET16RF64PIC_colPicST(r16,v) _BFSET_(r16, 5, 5,v) |
| |
| #define GET32RF64PIC_AC0Offset(r32) _BFGET_(r32,26,22) |
| #define SET32RF64PIC_AC0Offset(r32,v) _BFSET_(r32,26,22,v) |
| #define GET16RF64PIC_AC0Offset(r16) _BFGET_(r16,10, 6) |
| #define SET16RF64PIC_AC0Offset(r16,v) _BFSET_(r16,10, 6,v) |
| |
| #define GET32RF64PIC_BetaOffset(r32) _BFGET_(r32,31,27) |
| #define SET32RF64PIC_BetaOffset(r32,v) _BFSET_(r32,31,27,v) |
| #define GET16RF64PIC_BetaOffset(r16) _BFGET_(r16,15,11) |
| #define SET16RF64PIC_BetaOffset(r16,v) _BFSET_(r16,15,11,v) |
| |
| UNSG32 u_format : 3; |
| UNSG32 u_cabac : 1; |
| UNSG32 u_picType : 2; |
| UNSG32 u_maxL0 : 5; |
| UNSG32 u_maxL1 : 5; |
| UNSG32 u_MbaffPic : 1; |
| UNSG32 u_fieldPic : 1; |
| UNSG32 u_spatialPred : 1; |
| UNSG32 u_colPicMbaff : 1; |
| UNSG32 u_colPicField : 1; |
| UNSG32 u_colPicST : 1; |
| UNSG32 s_AC0Offset : 5; |
| UNSG32 s_BetaOffset : 5; |
| /////////////////////////////////////////////////////////// |
| #define GET32RF64PIC_dqAcLimit(r32) _BFGET_(r32,15, 0) |
| #define SET32RF64PIC_dqAcLimit(r32,v) _BFSET_(r32,15, 0,v) |
| #define GET16RF64PIC_dqAcLimit(r16) _BFGET_(r16,15, 0) |
| #define SET16RF64PIC_dqAcLimit(r16,v) _BFSET_(r16,15, 0,v) |
| |
| #define GET32RF64PIC_dqDcLimit(r32) _BFGET_(r32,29,16) |
| #define SET32RF64PIC_dqDcLimit(r32,v) _BFSET_(r32,29,16,v) |
| #define GET16RF64PIC_dqDcLimit(r16) _BFGET_(r16,13, 0) |
| #define SET16RF64PIC_dqDcLimit(r16,v) _BFSET_(r16,13, 0,v) |
| |
| #define GET32RF64PIC_mismatch(r32) _BFGET_(r32,31,30) |
| #define SET32RF64PIC_mismatch(r32,v) _BFSET_(r32,31,30,v) |
| #define GET16RF64PIC_mismatch(r16) _BFGET_(r16,15,14) |
| #define SET16RF64PIC_mismatch(r16,v) _BFSET_(r16,15,14,v) |
| |
| UNSG32 u_dqAcLimit : 16; |
| UNSG32 u_dqDcLimit : 14; |
| UNSG32 u_mismatch : 2; |
| /////////////////////////////////////////////////////////// |
| #define GET32RF64PIC_picW(r32) _BFGET_(r32,15, 0) |
| #define SET32RF64PIC_picW(r32,v) _BFSET_(r32,15, 0,v) |
| #define GET16RF64PIC_picW(r16) _BFGET_(r16,15, 0) |
| #define SET16RF64PIC_picW(r16,v) _BFSET_(r16,15, 0,v) |
| |
| #define GET32RF64PIC_picH(r32) _BFGET_(r32,28,16) |
| #define SET32RF64PIC_picH(r32,v) _BFSET_(r32,28,16,v) |
| #define GET16RF64PIC_picH(r16) _BFGET_(r16,12, 0) |
| #define SET16RF64PIC_picH(r16,v) _BFSET_(r16,12, 0,v) |
| |
| #define GET32RF64PIC_btmFldPic(r32) _BFGET_(r32,29,29) |
| #define SET32RF64PIC_btmFldPic(r32,v) _BFSET_(r32,29,29,v) |
| #define GET16RF64PIC_btmFldPic(r16) _BFGET_(r16,13,13) |
| #define SET16RF64PIC_btmFldPic(r16,v) _BFSET_(r16,13,13,v) |
| |
| #define GET32RF64PIC_hint(r32) _BFGET_(r32,31,30) |
| #define SET32RF64PIC_hint(r32,v) _BFSET_(r32,31,30,v) |
| #define GET16RF64PIC_hint(r16) _BFGET_(r16,15,14) |
| #define SET16RF64PIC_hint(r16,v) _BFSET_(r16,15,14,v) |
| |
| UNSG32 u_picW : 16; |
| UNSG32 u_picH : 13; |
| UNSG32 u_btmFldPic : 1; |
| UNSG32 u_hint : 2; |
| /////////////////////////////////////////////////////////// |
| #define GET32RF64PIC_shiftLumaX(r32) _BFGET_(r32, 7, 0) |
| #define SET32RF64PIC_shiftLumaX(r32,v) _BFSET_(r32, 7, 0,v) |
| #define GET16RF64PIC_shiftLumaX(r16) _BFGET_(r16, 7, 0) |
| #define SET16RF64PIC_shiftLumaX(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32RF64PIC_shiftLumaY(r32) _BFGET_(r32,15, 8) |
| #define SET32RF64PIC_shiftLumaY(r32,v) _BFSET_(r32,15, 8,v) |
| #define GET16RF64PIC_shiftLumaY(r16) _BFGET_(r16,15, 8) |
| #define SET16RF64PIC_shiftLumaY(r16,v) _BFSET_(r16,15, 8,v) |
| |
| #define GET32RF64PIC_shiftChromaX(r32) _BFGET_(r32,23,16) |
| #define SET32RF64PIC_shiftChromaX(r32,v) _BFSET_(r32,23,16,v) |
| #define GET16RF64PIC_shiftChromaX(r16) _BFGET_(r16, 7, 0) |
| #define SET16RF64PIC_shiftChromaX(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32RF64PIC_shiftChromaY(r32) _BFGET_(r32,31,24) |
| #define SET32RF64PIC_shiftChromaY(r32,v) _BFSET_(r32,31,24,v) |
| #define GET16RF64PIC_shiftChromaY(r16) _BFGET_(r16,15, 8) |
| #define SET16RF64PIC_shiftChromaY(r16,v) _BFSET_(r16,15, 8,v) |
| |
| UNSG32 u_shiftLumaX : 8; |
| UNSG32 u_shiftLumaY : 8; |
| UNSG32 u_shiftChromaX : 8; |
| UNSG32 u_shiftChromaY : 8; |
| /////////////////////////////////////////////////////////// |
| #define GET32RF64PIC_fracTapDiv2Y(r32) _BFGET_(r32, 3, 0) |
| #define SET32RF64PIC_fracTapDiv2Y(r32,v) _BFSET_(r32, 3, 0,v) |
| #define GET16RF64PIC_fracTapDiv2Y(r16) _BFGET_(r16, 3, 0) |
| #define SET16RF64PIC_fracTapDiv2Y(r16,v) _BFSET_(r16, 3, 0,v) |
| |
| #define GET32RF64PIC_fracTapDiv2C(r32) _BFGET_(r32, 7, 4) |
| #define SET32RF64PIC_fracTapDiv2C(r32,v) _BFSET_(r32, 7, 4,v) |
| #define GET16RF64PIC_fracTapDiv2C(r16) _BFGET_(r16, 7, 4) |
| #define SET16RF64PIC_fracTapDiv2C(r16,v) _BFSET_(r16, 7, 4,v) |
| |
| #define GET32RF64PIC_IPCM_QPU(r32) _BFGET_(r32,13, 8) |
| #define SET32RF64PIC_IPCM_QPU(r32,v) _BFSET_(r32,13, 8,v) |
| #define GET16RF64PIC_IPCM_QPU(r16) _BFGET_(r16,13, 8) |
| #define SET16RF64PIC_IPCM_QPU(r16,v) _BFSET_(r16,13, 8,v) |
| |
| #define GET32RF64PIC_IPCM_QPV(r32) _BFGET_(r32,19,14) |
| #define SET32RF64PIC_IPCM_QPV(r32,v) _BFSET_(r32,19,14,v) |
| |
| #define GET32RF64PIC_RSVD12(r32) _BFGET_(r32,31,20) |
| #define SET32RF64PIC_RSVD12(r32,v) _BFSET_(r32,31,20,v) |
| #define GET16RF64PIC_RSVD12(r16) _BFGET_(r16,15, 4) |
| #define SET16RF64PIC_RSVD12(r16,v) _BFSET_(r16,15, 4,v) |
| |
| UNSG32 u_fracTapDiv2Y : 4; |
| UNSG32 u_fracTapDiv2C : 4; |
| UNSG32 u_IPCM_QPU : 6; |
| UNSG32 u_IPCM_QPV : 6; |
| UNSG32 u_RSVD12 : 12; |
| /////////////////////////////////////////////////////////// |
| #define GET32RF64PIC_PQUANT(r32) _BFGET_(r32, 4, 0) |
| #define SET32RF64PIC_PQUANT(r32,v) _BFSET_(r32, 4, 0,v) |
| #define GET16RF64PIC_PQUANT(r16) _BFGET_(r16, 4, 0) |
| #define SET16RF64PIC_PQUANT(r16,v) _BFSET_(r16, 4, 0,v) |
| |
| #define GET32RF64PIC_FRFD(r32) _BFGET_(r32, 6, 5) |
| #define SET32RF64PIC_FRFD(r32,v) _BFSET_(r32, 6, 5,v) |
| #define GET16RF64PIC_FRFD(r16) _BFGET_(r16, 6, 5) |
| #define SET16RF64PIC_FRFD(r16,v) _BFSET_(r16, 6, 5,v) |
| |
| #define GET32RF64PIC_BRFD(r32) _BFGET_(r32, 8, 7) |
| #define SET32RF64PIC_BRFD(r32,v) _BFSET_(r32, 8, 7,v) |
| #define GET16RF64PIC_BRFD(r16) _BFGET_(r16, 8, 7) |
| #define SET16RF64PIC_BRFD(r16,v) _BFSET_(r16, 8, 7,v) |
| |
| #define GET32RF64PIC_secondFld(r32) _BFGET_(r32, 9, 9) |
| #define SET32RF64PIC_secondFld(r32,v) _BFSET_(r32, 9, 9,v) |
| #define GET16RF64PIC_secondFld(r16) _BFGET_(r16, 9, 9) |
| #define SET16RF64PIC_secondFld(r16,v) _BFSET_(r16, 9, 9,v) |
| |
| #define GET32RF64PIC_mvRange(r32) _BFGET_(r32,11,10) |
| #define SET32RF64PIC_mvRange(r32,v) _BFSET_(r32,11,10,v) |
| #define GET16RF64PIC_mvRange(r16) _BFGET_(r16,11,10) |
| #define SET16RF64PIC_mvRange(r16,v) _BFSET_(r16,11,10,v) |
| |
| #define GET32RF64PIC_hybridMvThres(r32) _BFGET_(r32,12,12) |
| #define SET32RF64PIC_hybridMvThres(r32,v) _BFSET_(r32,12,12,v) |
| #define GET16RF64PIC_hybridMvThres(r16) _BFGET_(r16,12,12) |
| #define SET16RF64PIC_hybridMvThres(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32RF64PIC_firstMbIntra(r32) _BFGET_(r32,13,13) |
| #define SET32RF64PIC_firstMbIntra(r32,v) _BFSET_(r32,13,13,v) |
| #define GET16RF64PIC_firstMbIntra(r16) _BFGET_(r16,13,13) |
| #define SET16RF64PIC_firstMbIntra(r16,v) _BFSET_(r16,13,13,v) |
| |
| #define GET32RF64PIC_halfPixel(r32) _BFGET_(r32,14,14) |
| #define SET32RF64PIC_halfPixel(r32,v) _BFSET_(r32,14,14,v) |
| #define GET16RF64PIC_halfPixel(r16) _BFGET_(r16,14,14) |
| #define SET16RF64PIC_halfPixel(r16,v) _BFSET_(r16,14,14,v) |
| |
| #define GET32RF64PIC_forwRefInterlace(r32) _BFGET_(r32,15,15) |
| #define SET32RF64PIC_forwRefInterlace(r32,v) _BFSET_(r32,15,15,v) |
| #define GET16RF64PIC_forwRefInterlace(r16) _BFGET_(r16,15,15) |
| #define SET16RF64PIC_forwRefInterlace(r16,v) _BFSET_(r16,15,15,v) |
| |
| #define GET32RF64PIC_backRefInterlace(r32) _BFGET_(r32,16,16) |
| #define SET32RF64PIC_backRefInterlace(r32,v) _BFSET_(r32,16,16,v) |
| #define GET16RF64PIC_backRefInterlace(r16) _BFGET_(r16, 0, 0) |
| #define SET16RF64PIC_backRefInterlace(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32RF64PIC_FrmTransACSet(r32) _BFGET_(r32,18,17) |
| #define SET32RF64PIC_FrmTransACSet(r32,v) _BFSET_(r32,18,17,v) |
| #define GET16RF64PIC_FrmTransACSet(r16) _BFGET_(r16, 2, 1) |
| #define SET16RF64PIC_FrmTransACSet(r16,v) _BFSET_(r16, 2, 1,v) |
| |
| #define GET32RF64PIC_FrmTransACSet2(r32) _BFGET_(r32,20,19) |
| #define SET32RF64PIC_FrmTransACSet2(r32,v) _BFSET_(r32,20,19,v) |
| #define GET16RF64PIC_FrmTransACSet2(r16) _BFGET_(r16, 4, 3) |
| #define SET16RF64PIC_FrmTransACSet2(r16,v) _BFSET_(r16, 4, 3,v) |
| |
| #define GET32RF64PIC_PQIndexGT8(r32) _BFGET_(r32,21,21) |
| #define SET32RF64PIC_PQIndexGT8(r32,v) _BFSET_(r32,21,21,v) |
| #define GET16RF64PIC_PQIndexGT8(r16) _BFGET_(r16, 5, 5) |
| #define SET16RF64PIC_PQIndexGT8(r16,v) _BFSET_(r16, 5, 5,v) |
| |
| #define GET32RF64PIC_EscapeTBL(r32) _BFGET_(r32,22,22) |
| #define SET32RF64PIC_EscapeTBL(r32,v) _BFSET_(r32,22,22,v) |
| #define GET16RF64PIC_EscapeTBL(r16) _BFGET_(r16, 6, 6) |
| #define SET16RF64PIC_EscapeTBL(r16,v) _BFSET_(r16, 6, 6,v) |
| |
| #define GET32RF64PIC_format1(r32) _BFGET_(r32,26,23) |
| #define SET32RF64PIC_format1(r32,v) _BFSET_(r32,26,23,v) |
| #define GET16RF64PIC_format1(r16) _BFGET_(r16,10, 7) |
| #define SET16RF64PIC_format1(r16,v) _BFSET_(r16,10, 7,v) |
| |
| #define GET32RF64PIC_noReorder(r32) _BFGET_(r32,27,27) |
| #define SET32RF64PIC_noReorder(r32,v) _BFSET_(r32,27,27,v) |
| #define GET16RF64PIC_noReorder(r16) _BFGET_(r16,11,11) |
| #define SET16RF64PIC_noReorder(r16,v) _BFSET_(r16,11,11,v) |
| |
| #define GET32RF64PIC_iplusModeOn(r32) _BFGET_(r32,28,28) |
| #define SET32RF64PIC_iplusModeOn(r32,v) _BFSET_(r32,28,28,v) |
| #define GET16RF64PIC_iplusModeOn(r16) _BFGET_(r16,12,12) |
| #define SET16RF64PIC_iplusModeOn(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32RF64PIC_RSVD3(r32) _BFGET_(r32,31,29) |
| #define SET32RF64PIC_RSVD3(r32,v) _BFSET_(r32,31,29,v) |
| #define GET16RF64PIC_RSVD3(r16) _BFGET_(r16,15,13) |
| #define SET16RF64PIC_RSVD3(r16,v) _BFSET_(r16,15,13,v) |
| |
| UNSG32 u_PQUANT : 5; |
| UNSG32 u_FRFD : 2; |
| UNSG32 u_BRFD : 2; |
| UNSG32 u_secondFld : 1; |
| UNSG32 u_mvRange : 2; |
| UNSG32 u_hybridMvThres : 1; |
| UNSG32 u_firstMbIntra : 1; |
| UNSG32 u_halfPixel : 1; |
| UNSG32 u_forwRefInterlace : 1; |
| UNSG32 u_backRefInterlace : 1; |
| UNSG32 u_FrmTransACSet : 2; |
| UNSG32 u_FrmTransACSet2 : 2; |
| UNSG32 u_PQIndexGT8 : 1; |
| UNSG32 u_EscapeTBL : 1; |
| UNSG32 u_format1 : 4; |
| UNSG32 u_noReorder : 1; |
| UNSG32 u_iplusModeOn : 1; |
| UNSG32 u_RSVD3 : 3; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD[5]; |
| /////////////////////////////////////////////////////////// |
| SIE_IDX2BID ie_rIDX2BID; |
| /////////////////////////////////////////////////////////// |
| } SIE_RF64PIC; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 RF64PIC_drvrd(SIE_RF64PIC *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 RF64PIC_drvwr(SIE_RF64PIC *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void RF64PIC_reset(SIE_RF64PIC *p); |
| SIGN32 RF64PIC_cmp (SIE_RF64PIC *p, SIE_RF64PIC *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define RF64PIC_check(p,pie,pfx,hLOG) RF64PIC_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define RF64PIC_print(p, pfx,hLOG) RF64PIC_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: RF64PIC |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE RF64MB biu (4,4) |
| /// ### |
| /// * RF64 macroblock-level information for ALU64 extensions; padded to 64b |
| /// * [0:31] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// ### |
| /// * [0:15] casted from MBPROP[0:15] in decHal_mbLvl.sxw.txt |
| /// ### |
| /// %unsigned 3 BANK |
| /// ### |
| /// * Bank[0] indicates whether current MB is even or odd in an MB pair. |
| /// ### |
| /// %unsigned 1 Inter |
| /// ### |
| /// * Intra (0) or inter (1) macroblock, for DQmatrix selection in dQuant only |
| /// ### |
| /// %unsigned 1 lastMbRow |
| /// ### |
| /// * Current MB row is the last in slice; for VC-1 FOP |
| /// ### |
| /// %unsigned 1 lastMbRowPic |
| /// ### |
| /// * Current MB row is the last in picture; for VC-1 FOP |
| /// ### |
| /// %unsigned 1 RSVD |
| /// ### |
| /// * reserved for bitfield alignment. Removed RF64MB.Mbaff. |
| /// ### |
| /// %unsigned 1 FLD |
| /// ### |
| /// * - if current MB is MBAFF field MB. Only valid when RF64PIC.MbaffPic = 1. |
| /// ### |
| /// %unsigned 1 FLDNeighborA |
| /// ### |
| /// * - if left MB is MBAFF field MB. Only valid when RF64PIC.MbaffPic = 1. |
| /// ### |
| /// %unsigned 1 FLDNeighborB |
| /// ### |
| /// * - if upper MB is MBAFF field MB. Only valid when RF64PIC.MbaffPic = 1. |
| /// ### |
| /// %unsigned 1 FLDNeighborC |
| /// ### |
| /// * - if upper-right MB is MBAFF field MB. Only valid when RF64PIC.MbaffPic = 1. |
| /// ### |
| /// %unsigned 1 FLDNeighborD |
| /// ### |
| /// * - if upper-left MB is MBAFF field MB. Only valid when RF64PIC.MbaffPic = 1. |
| /// ### |
| /// %unsigned 1 NeighborA |
| /// ### |
| /// * From stream-parser to syntax-processor: |
| /// * - if left MB is available |
| /// * From vScope to PCube: |
| /// * - if left MB is available as intra predictor |
| /// ### |
| /// %unsigned 1 NeighborB |
| /// ### |
| /// * From stream-parser to syntax-processor: |
| /// * - if upper MB is available |
| /// * From vScope to PCube: |
| /// * - if upper MB is available as intra predictor |
| /// ### |
| /// %unsigned 1 NeighborC |
| /// ### |
| /// * From stream-parser to syntax-processor: |
| /// * - if upper-right MB is available |
| /// * From vScope to PCube: |
| /// * - if upper-right MB is available as intra predictor |
| /// ### |
| /// %unsigned 1 NeighborD |
| /// ### |
| /// * From stream-parser to syntax-processor: |
| /// * - if upper-left MB is available |
| /// * From vScope to PCube: |
| /// * - if upper-left MB is available as intra predictor |
| /// ### |
| /// %unsigned 8 FopAddr2 |
| /// ### |
| /// * VC-1: base addr 2 for FOP output, 16-byte based |
| /// ### |
| /// %unsigned 8 FopAddr3 |
| /// ### |
| /// * VC-1: base addr 3 for FOP output, 16-byte based |
| /// * [32:63] |
| /// ### |
| /// @ 0x00004 (P) |
| /// %unsigned 8 FopAddr |
| /// ### |
| /// * H.264: FOP output addr |
| /// * VC-1: base addr 0 for FOP output, 16-byte based |
| /// ### |
| /// %unsigned 8 FopAddr1 |
| /// ### |
| /// * VC-1: base addr 1 for FOP output, 16-byte based |
| /// ### |
| /// %unsigned 8 MbX |
| /// ### |
| /// * Current MB index in X direction; |
| /// * from 0 up to ((picW+15)>>4) -1 |
| /// ### |
| /// %unsigned 8 MbY |
| /// ### |
| /// * Current MB index in Y direction; |
| /// * from 0 up to ((picH+15)>>4) -1 |
| /// * End of RF64MB |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_RF64MB |
| #define h_RF64MB (){} |
| |
| #define BA_RF64MB_BANK 0x0000 |
| #define B16RF64MB_BANK 0x0000 |
| #define LSb32RF64MB_BANK 0 |
| #define LSb16RF64MB_BANK 0 |
| #define bRF64MB_BANK 3 |
| #define MSK32RF64MB_BANK 0x00000007 |
| |
| #define BA_RF64MB_Inter 0x0000 |
| #define B16RF64MB_Inter 0x0000 |
| #define LSb32RF64MB_Inter 3 |
| #define LSb16RF64MB_Inter 3 |
| #define bRF64MB_Inter 1 |
| #define MSK32RF64MB_Inter 0x00000008 |
| |
| #define BA_RF64MB_lastMbRow 0x0000 |
| #define B16RF64MB_lastMbRow 0x0000 |
| #define LSb32RF64MB_lastMbRow 4 |
| #define LSb16RF64MB_lastMbRow 4 |
| #define bRF64MB_lastMbRow 1 |
| #define MSK32RF64MB_lastMbRow 0x00000010 |
| |
| #define BA_RF64MB_lastMbRowPic 0x0000 |
| #define B16RF64MB_lastMbRowPic 0x0000 |
| #define LSb32RF64MB_lastMbRowPic 5 |
| #define LSb16RF64MB_lastMbRowPic 5 |
| #define bRF64MB_lastMbRowPic 1 |
| #define MSK32RF64MB_lastMbRowPic 0x00000020 |
| |
| #define BA_RF64MB_RSVD 0x0000 |
| #define B16RF64MB_RSVD 0x0000 |
| #define LSb32RF64MB_RSVD 6 |
| #define LSb16RF64MB_RSVD 6 |
| #define bRF64MB_RSVD 1 |
| #define MSK32RF64MB_RSVD 0x00000040 |
| |
| #define BA_RF64MB_FLD 0x0000 |
| #define B16RF64MB_FLD 0x0000 |
| #define LSb32RF64MB_FLD 7 |
| #define LSb16RF64MB_FLD 7 |
| #define bRF64MB_FLD 1 |
| #define MSK32RF64MB_FLD 0x00000080 |
| |
| #define BA_RF64MB_FLDNeighborA 0x0001 |
| #define B16RF64MB_FLDNeighborA 0x0000 |
| #define LSb32RF64MB_FLDNeighborA 8 |
| #define LSb16RF64MB_FLDNeighborA 8 |
| #define bRF64MB_FLDNeighborA 1 |
| #define MSK32RF64MB_FLDNeighborA 0x00000100 |
| |
| #define BA_RF64MB_FLDNeighborB 0x0001 |
| #define B16RF64MB_FLDNeighborB 0x0000 |
| #define LSb32RF64MB_FLDNeighborB 9 |
| #define LSb16RF64MB_FLDNeighborB 9 |
| #define bRF64MB_FLDNeighborB 1 |
| #define MSK32RF64MB_FLDNeighborB 0x00000200 |
| |
| #define BA_RF64MB_FLDNeighborC 0x0001 |
| #define B16RF64MB_FLDNeighborC 0x0000 |
| #define LSb32RF64MB_FLDNeighborC 10 |
| #define LSb16RF64MB_FLDNeighborC 10 |
| #define bRF64MB_FLDNeighborC 1 |
| #define MSK32RF64MB_FLDNeighborC 0x00000400 |
| |
| #define BA_RF64MB_FLDNeighborD 0x0001 |
| #define B16RF64MB_FLDNeighborD 0x0000 |
| #define LSb32RF64MB_FLDNeighborD 11 |
| #define LSb16RF64MB_FLDNeighborD 11 |
| #define bRF64MB_FLDNeighborD 1 |
| #define MSK32RF64MB_FLDNeighborD 0x00000800 |
| |
| #define BA_RF64MB_NeighborA 0x0001 |
| #define B16RF64MB_NeighborA 0x0000 |
| #define LSb32RF64MB_NeighborA 12 |
| #define LSb16RF64MB_NeighborA 12 |
| #define bRF64MB_NeighborA 1 |
| #define MSK32RF64MB_NeighborA 0x00001000 |
| |
| #define BA_RF64MB_NeighborB 0x0001 |
| #define B16RF64MB_NeighborB 0x0000 |
| #define LSb32RF64MB_NeighborB 13 |
| #define LSb16RF64MB_NeighborB 13 |
| #define bRF64MB_NeighborB 1 |
| #define MSK32RF64MB_NeighborB 0x00002000 |
| |
| #define BA_RF64MB_NeighborC 0x0001 |
| #define B16RF64MB_NeighborC 0x0000 |
| #define LSb32RF64MB_NeighborC 14 |
| #define LSb16RF64MB_NeighborC 14 |
| #define bRF64MB_NeighborC 1 |
| #define MSK32RF64MB_NeighborC 0x00004000 |
| |
| #define BA_RF64MB_NeighborD 0x0001 |
| #define B16RF64MB_NeighborD 0x0000 |
| #define LSb32RF64MB_NeighborD 15 |
| #define LSb16RF64MB_NeighborD 15 |
| #define bRF64MB_NeighborD 1 |
| #define MSK32RF64MB_NeighborD 0x00008000 |
| |
| #define BA_RF64MB_FopAddr2 0x0002 |
| #define B16RF64MB_FopAddr2 0x0002 |
| #define LSb32RF64MB_FopAddr2 16 |
| #define LSb16RF64MB_FopAddr2 0 |
| #define bRF64MB_FopAddr2 8 |
| #define MSK32RF64MB_FopAddr2 0x00FF0000 |
| |
| #define BA_RF64MB_FopAddr3 0x0003 |
| #define B16RF64MB_FopAddr3 0x0002 |
| #define LSb32RF64MB_FopAddr3 24 |
| #define LSb16RF64MB_FopAddr3 8 |
| #define bRF64MB_FopAddr3 8 |
| #define MSK32RF64MB_FopAddr3 0xFF000000 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_RF64MB_FopAddr 0x0004 |
| #define B16RF64MB_FopAddr 0x0004 |
| #define LSb32RF64MB_FopAddr 0 |
| #define LSb16RF64MB_FopAddr 0 |
| #define bRF64MB_FopAddr 8 |
| #define MSK32RF64MB_FopAddr 0x000000FF |
| |
| #define BA_RF64MB_FopAddr1 0x0005 |
| #define B16RF64MB_FopAddr1 0x0004 |
| #define LSb32RF64MB_FopAddr1 8 |
| #define LSb16RF64MB_FopAddr1 8 |
| #define bRF64MB_FopAddr1 8 |
| #define MSK32RF64MB_FopAddr1 0x0000FF00 |
| |
| #define BA_RF64MB_MbX 0x0006 |
| #define B16RF64MB_MbX 0x0006 |
| #define LSb32RF64MB_MbX 16 |
| #define LSb16RF64MB_MbX 0 |
| #define bRF64MB_MbX 8 |
| #define MSK32RF64MB_MbX 0x00FF0000 |
| |
| #define BA_RF64MB_MbY 0x0007 |
| #define B16RF64MB_MbY 0x0006 |
| #define LSb32RF64MB_MbY 24 |
| #define LSb16RF64MB_MbY 8 |
| #define bRF64MB_MbY 8 |
| #define MSK32RF64MB_MbY 0xFF000000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_RF64MB { |
| /////////////////////////////////////////////////////////// |
| #define GET32RF64MB_BANK(r32) _BFGET_(r32, 2, 0) |
| #define SET32RF64MB_BANK(r32,v) _BFSET_(r32, 2, 0,v) |
| #define GET16RF64MB_BANK(r16) _BFGET_(r16, 2, 0) |
| #define SET16RF64MB_BANK(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32RF64MB_Inter(r32) _BFGET_(r32, 3, 3) |
| #define SET32RF64MB_Inter(r32,v) _BFSET_(r32, 3, 3,v) |
| #define GET16RF64MB_Inter(r16) _BFGET_(r16, 3, 3) |
| #define SET16RF64MB_Inter(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32RF64MB_lastMbRow(r32) _BFGET_(r32, 4, 4) |
| #define SET32RF64MB_lastMbRow(r32,v) _BFSET_(r32, 4, 4,v) |
| #define GET16RF64MB_lastMbRow(r16) _BFGET_(r16, 4, 4) |
| #define SET16RF64MB_lastMbRow(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define GET32RF64MB_lastMbRowPic(r32) _BFGET_(r32, 5, 5) |
| #define SET32RF64MB_lastMbRowPic(r32,v) _BFSET_(r32, 5, 5,v) |
| #define GET16RF64MB_lastMbRowPic(r16) _BFGET_(r16, 5, 5) |
| #define SET16RF64MB_lastMbRowPic(r16,v) _BFSET_(r16, 5, 5,v) |
| |
| #define GET32RF64MB_RSVD(r32) _BFGET_(r32, 6, 6) |
| #define SET32RF64MB_RSVD(r32,v) _BFSET_(r32, 6, 6,v) |
| #define GET16RF64MB_RSVD(r16) _BFGET_(r16, 6, 6) |
| #define SET16RF64MB_RSVD(r16,v) _BFSET_(r16, 6, 6,v) |
| |
| #define GET32RF64MB_FLD(r32) _BFGET_(r32, 7, 7) |
| #define SET32RF64MB_FLD(r32,v) _BFSET_(r32, 7, 7,v) |
| #define GET16RF64MB_FLD(r16) _BFGET_(r16, 7, 7) |
| #define SET16RF64MB_FLD(r16,v) _BFSET_(r16, 7, 7,v) |
| |
| #define GET32RF64MB_FLDNeighborA(r32) _BFGET_(r32, 8, 8) |
| #define SET32RF64MB_FLDNeighborA(r32,v) _BFSET_(r32, 8, 8,v) |
| #define GET16RF64MB_FLDNeighborA(r16) _BFGET_(r16, 8, 8) |
| #define SET16RF64MB_FLDNeighborA(r16,v) _BFSET_(r16, 8, 8,v) |
| |
| #define GET32RF64MB_FLDNeighborB(r32) _BFGET_(r32, 9, 9) |
| #define SET32RF64MB_FLDNeighborB(r32,v) _BFSET_(r32, 9, 9,v) |
| #define GET16RF64MB_FLDNeighborB(r16) _BFGET_(r16, 9, 9) |
| #define SET16RF64MB_FLDNeighborB(r16,v) _BFSET_(r16, 9, 9,v) |
| |
| #define GET32RF64MB_FLDNeighborC(r32) _BFGET_(r32,10,10) |
| #define SET32RF64MB_FLDNeighborC(r32,v) _BFSET_(r32,10,10,v) |
| #define GET16RF64MB_FLDNeighborC(r16) _BFGET_(r16,10,10) |
| #define SET16RF64MB_FLDNeighborC(r16,v) _BFSET_(r16,10,10,v) |
| |
| #define GET32RF64MB_FLDNeighborD(r32) _BFGET_(r32,11,11) |
| #define SET32RF64MB_FLDNeighborD(r32,v) _BFSET_(r32,11,11,v) |
| #define GET16RF64MB_FLDNeighborD(r16) _BFGET_(r16,11,11) |
| #define SET16RF64MB_FLDNeighborD(r16,v) _BFSET_(r16,11,11,v) |
| |
| #define GET32RF64MB_NeighborA(r32) _BFGET_(r32,12,12) |
| #define SET32RF64MB_NeighborA(r32,v) _BFSET_(r32,12,12,v) |
| #define GET16RF64MB_NeighborA(r16) _BFGET_(r16,12,12) |
| #define SET16RF64MB_NeighborA(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32RF64MB_NeighborB(r32) _BFGET_(r32,13,13) |
| #define SET32RF64MB_NeighborB(r32,v) _BFSET_(r32,13,13,v) |
| #define GET16RF64MB_NeighborB(r16) _BFGET_(r16,13,13) |
| #define SET16RF64MB_NeighborB(r16,v) _BFSET_(r16,13,13,v) |
| |
| #define GET32RF64MB_NeighborC(r32) _BFGET_(r32,14,14) |
| #define SET32RF64MB_NeighborC(r32,v) _BFSET_(r32,14,14,v) |
| #define GET16RF64MB_NeighborC(r16) _BFGET_(r16,14,14) |
| #define SET16RF64MB_NeighborC(r16,v) _BFSET_(r16,14,14,v) |
| |
| #define GET32RF64MB_NeighborD(r32) _BFGET_(r32,15,15) |
| #define SET32RF64MB_NeighborD(r32,v) _BFSET_(r32,15,15,v) |
| #define GET16RF64MB_NeighborD(r16) _BFGET_(r16,15,15) |
| #define SET16RF64MB_NeighborD(r16,v) _BFSET_(r16,15,15,v) |
| |
| #define GET32RF64MB_FopAddr2(r32) _BFGET_(r32,23,16) |
| #define SET32RF64MB_FopAddr2(r32,v) _BFSET_(r32,23,16,v) |
| #define GET16RF64MB_FopAddr2(r16) _BFGET_(r16, 7, 0) |
| #define SET16RF64MB_FopAddr2(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32RF64MB_FopAddr3(r32) _BFGET_(r32,31,24) |
| #define SET32RF64MB_FopAddr3(r32,v) _BFSET_(r32,31,24,v) |
| #define GET16RF64MB_FopAddr3(r16) _BFGET_(r16,15, 8) |
| #define SET16RF64MB_FopAddr3(r16,v) _BFSET_(r16,15, 8,v) |
| |
| UNSG32 u_BANK : 3; |
| UNSG32 u_Inter : 1; |
| UNSG32 u_lastMbRow : 1; |
| UNSG32 u_lastMbRowPic : 1; |
| UNSG32 u_RSVD : 1; |
| UNSG32 u_FLD : 1; |
| UNSG32 u_FLDNeighborA : 1; |
| UNSG32 u_FLDNeighborB : 1; |
| UNSG32 u_FLDNeighborC : 1; |
| UNSG32 u_FLDNeighborD : 1; |
| UNSG32 u_NeighborA : 1; |
| UNSG32 u_NeighborB : 1; |
| UNSG32 u_NeighborC : 1; |
| UNSG32 u_NeighborD : 1; |
| UNSG32 u_FopAddr2 : 8; |
| UNSG32 u_FopAddr3 : 8; |
| /////////////////////////////////////////////////////////// |
| #define GET32RF64MB_FopAddr(r32) _BFGET_(r32, 7, 0) |
| #define SET32RF64MB_FopAddr(r32,v) _BFSET_(r32, 7, 0,v) |
| #define GET16RF64MB_FopAddr(r16) _BFGET_(r16, 7, 0) |
| #define SET16RF64MB_FopAddr(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32RF64MB_FopAddr1(r32) _BFGET_(r32,15, 8) |
| #define SET32RF64MB_FopAddr1(r32,v) _BFSET_(r32,15, 8,v) |
| #define GET16RF64MB_FopAddr1(r16) _BFGET_(r16,15, 8) |
| #define SET16RF64MB_FopAddr1(r16,v) _BFSET_(r16,15, 8,v) |
| |
| #define GET32RF64MB_MbX(r32) _BFGET_(r32,23,16) |
| #define SET32RF64MB_MbX(r32,v) _BFSET_(r32,23,16,v) |
| #define GET16RF64MB_MbX(r16) _BFGET_(r16, 7, 0) |
| #define SET16RF64MB_MbX(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32RF64MB_MbY(r32) _BFGET_(r32,31,24) |
| #define SET32RF64MB_MbY(r32,v) _BFSET_(r32,31,24,v) |
| #define GET16RF64MB_MbY(r16) _BFGET_(r16,15, 8) |
| #define SET16RF64MB_MbY(r16,v) _BFSET_(r16,15, 8,v) |
| |
| UNSG32 u_FopAddr : 8; |
| UNSG32 u_FopAddr1 : 8; |
| UNSG32 u_MbX : 8; |
| UNSG32 u_MbY : 8; |
| /////////////////////////////////////////////////////////// |
| } SIE_RF64MB; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 RF64MB_drvrd(SIE_RF64MB *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 RF64MB_drvwr(SIE_RF64MB *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void RF64MB_reset(SIE_RF64MB *p); |
| SIGN32 RF64MB_cmp (SIE_RF64MB *p, SIE_RF64MB *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define RF64MB_check(p,pie,pfx,hLOG) RF64MB_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define RF64MB_print(p, pfx,hLOG) RF64MB_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: RF64MB |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE RF64QP biu (4,4) |
| /// ### |
| /// * QP for neighboring macroblocks; used by FOP only. Padded to 64b |
| /// * Same as {BLK,chroma,RSVD,QP,Qu,Qv} in MBPROP in decHal_mbLvl.sxw.txt |
| /// * Also added DC/ACstep_* for coefficient scaling for DC/AC prediction for MPEG-4/VC-1 |
| /// * [0:31] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 8 DCstep_Y |
| /// ### |
| /// * VC-1: DCSTEP for coeff scaling in DC prediction (only 6 bits are used) |
| /// * MPEG-4: qstep luma coeff scaling in DC prediction |
| /// ### |
| /// %unsigned 8 ACstep_Y |
| /// ### |
| /// * VC-1: DCSTEP for coeff scaling in AC prediction (only 6 bits are used) |
| /// * MPEG-4: qstep luma coeff scaling in AC prediction |
| /// ### |
| /// %unsigned 8 DCstep_C |
| /// ### |
| /// * VC-1: not used |
| /// * MPEG-4: qstep chroma coeff scaling in DC prediction |
| /// ### |
| /// %unsigned 8 ACstep_C |
| /// ### |
| /// * VC-1: not used |
| /// * MPEG-4: qstep chroma coeff scaling in AC prediction |
| /// * [32:63] |
| /// ### |
| /// @ 0x00004 (P) |
| /// %unsigned 8 RSVD8 |
| /// %unsigned 8 QPY |
| /// ### |
| /// * H.264: QP for Luma; 0~51 inclusive |
| /// * MPEG-4: QP_AC (used to determine if coeff scaling is required for AC prediction) |
| /// ### |
| /// %unsigned 8 QPU |
| /// ### |
| /// * H.264: QP fo Cb; 0~51 inclusive |
| /// ### |
| /// %unsigned 8 QPV |
| /// ### |
| /// * H.264: QP for Cr; 0~51 inclusive |
| /// * End of RF64QP |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_RF64QP |
| #define h_RF64QP (){} |
| |
| #define BA_RF64QP_DCstep_Y 0x0000 |
| #define B16RF64QP_DCstep_Y 0x0000 |
| #define LSb32RF64QP_DCstep_Y 0 |
| #define LSb16RF64QP_DCstep_Y 0 |
| #define bRF64QP_DCstep_Y 8 |
| #define MSK32RF64QP_DCstep_Y 0x000000FF |
| |
| #define BA_RF64QP_ACstep_Y 0x0001 |
| #define B16RF64QP_ACstep_Y 0x0000 |
| #define LSb32RF64QP_ACstep_Y 8 |
| #define LSb16RF64QP_ACstep_Y 8 |
| #define bRF64QP_ACstep_Y 8 |
| #define MSK32RF64QP_ACstep_Y 0x0000FF00 |
| |
| #define BA_RF64QP_DCstep_C 0x0002 |
| #define B16RF64QP_DCstep_C 0x0002 |
| #define LSb32RF64QP_DCstep_C 16 |
| #define LSb16RF64QP_DCstep_C 0 |
| #define bRF64QP_DCstep_C 8 |
| #define MSK32RF64QP_DCstep_C 0x00FF0000 |
| |
| #define BA_RF64QP_ACstep_C 0x0003 |
| #define B16RF64QP_ACstep_C 0x0002 |
| #define LSb32RF64QP_ACstep_C 24 |
| #define LSb16RF64QP_ACstep_C 8 |
| #define bRF64QP_ACstep_C 8 |
| #define MSK32RF64QP_ACstep_C 0xFF000000 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_RF64QP_RSVD8 0x0004 |
| #define B16RF64QP_RSVD8 0x0004 |
| #define LSb32RF64QP_RSVD8 0 |
| #define LSb16RF64QP_RSVD8 0 |
| #define bRF64QP_RSVD8 8 |
| #define MSK32RF64QP_RSVD8 0x000000FF |
| |
| #define BA_RF64QP_QPY 0x0005 |
| #define B16RF64QP_QPY 0x0004 |
| #define LSb32RF64QP_QPY 8 |
| #define LSb16RF64QP_QPY 8 |
| #define bRF64QP_QPY 8 |
| #define MSK32RF64QP_QPY 0x0000FF00 |
| |
| #define BA_RF64QP_QPU 0x0006 |
| #define B16RF64QP_QPU 0x0006 |
| #define LSb32RF64QP_QPU 16 |
| #define LSb16RF64QP_QPU 0 |
| #define bRF64QP_QPU 8 |
| #define MSK32RF64QP_QPU 0x00FF0000 |
| |
| #define BA_RF64QP_QPV 0x0007 |
| #define B16RF64QP_QPV 0x0006 |
| #define LSb32RF64QP_QPV 24 |
| #define LSb16RF64QP_QPV 8 |
| #define bRF64QP_QPV 8 |
| #define MSK32RF64QP_QPV 0xFF000000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_RF64QP { |
| /////////////////////////////////////////////////////////// |
| #define GET32RF64QP_DCstep_Y(r32) _BFGET_(r32, 7, 0) |
| #define SET32RF64QP_DCstep_Y(r32,v) _BFSET_(r32, 7, 0,v) |
| #define GET16RF64QP_DCstep_Y(r16) _BFGET_(r16, 7, 0) |
| #define SET16RF64QP_DCstep_Y(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32RF64QP_ACstep_Y(r32) _BFGET_(r32,15, 8) |
| #define SET32RF64QP_ACstep_Y(r32,v) _BFSET_(r32,15, 8,v) |
| #define GET16RF64QP_ACstep_Y(r16) _BFGET_(r16,15, 8) |
| #define SET16RF64QP_ACstep_Y(r16,v) _BFSET_(r16,15, 8,v) |
| |
| #define GET32RF64QP_DCstep_C(r32) _BFGET_(r32,23,16) |
| #define SET32RF64QP_DCstep_C(r32,v) _BFSET_(r32,23,16,v) |
| #define GET16RF64QP_DCstep_C(r16) _BFGET_(r16, 7, 0) |
| #define SET16RF64QP_DCstep_C(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32RF64QP_ACstep_C(r32) _BFGET_(r32,31,24) |
| #define SET32RF64QP_ACstep_C(r32,v) _BFSET_(r32,31,24,v) |
| #define GET16RF64QP_ACstep_C(r16) _BFGET_(r16,15, 8) |
| #define SET16RF64QP_ACstep_C(r16,v) _BFSET_(r16,15, 8,v) |
| |
| UNSG32 u_DCstep_Y : 8; |
| UNSG32 u_ACstep_Y : 8; |
| UNSG32 u_DCstep_C : 8; |
| UNSG32 u_ACstep_C : 8; |
| /////////////////////////////////////////////////////////// |
| #define GET32RF64QP_RSVD8(r32) _BFGET_(r32, 7, 0) |
| #define SET32RF64QP_RSVD8(r32,v) _BFSET_(r32, 7, 0,v) |
| #define GET16RF64QP_RSVD8(r16) _BFGET_(r16, 7, 0) |
| #define SET16RF64QP_RSVD8(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32RF64QP_QPY(r32) _BFGET_(r32,15, 8) |
| #define SET32RF64QP_QPY(r32,v) _BFSET_(r32,15, 8,v) |
| #define GET16RF64QP_QPY(r16) _BFGET_(r16,15, 8) |
| #define SET16RF64QP_QPY(r16,v) _BFSET_(r16,15, 8,v) |
| |
| #define GET32RF64QP_QPU(r32) _BFGET_(r32,23,16) |
| #define SET32RF64QP_QPU(r32,v) _BFSET_(r32,23,16,v) |
| #define GET16RF64QP_QPU(r16) _BFGET_(r16, 7, 0) |
| #define SET16RF64QP_QPU(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32RF64QP_QPV(r32) _BFGET_(r32,31,24) |
| #define SET32RF64QP_QPV(r32,v) _BFSET_(r32,31,24,v) |
| #define GET16RF64QP_QPV(r16) _BFGET_(r16,15, 8) |
| #define SET16RF64QP_QPV(r16,v) _BFSET_(r16,15, 8,v) |
| |
| UNSG32 u_RSVD8 : 8; |
| UNSG32 u_QPY : 8; |
| UNSG32 u_QPU : 8; |
| UNSG32 u_QPV : 8; |
| /////////////////////////////////////////////////////////// |
| } SIE_RF64QP; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 RF64QP_drvrd(SIE_RF64QP *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 RF64QP_drvwr(SIE_RF64QP *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void RF64QP_reset(SIE_RF64QP *p); |
| SIGN32 RF64QP_cmp (SIE_RF64QP *p, SIE_RF64QP *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define RF64QP_check(p,pie,pfx,hLOG) RF64QP_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define RF64QP_print(p, pfx,hLOG) RF64QP_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: RF64QP |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE NLUTCTX biu (4,4) |
| /// ### |
| /// * RF64 context for nLut |
| /// * [0:63] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 MB |
| /// $RF64MB MB REG |
| /// ### |
| /// * Macroblock-level information; reprogrammed by FIGO at the start of every macroblock |
| /// * [64:2047] |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 RSVD |
| /// $LUT64b RSVD REG [31] |
| /// ### |
| /// * padding to 2048-bit boundary |
| /// * [2048:4095] |
| /// ### |
| /// @ 0x00100 (P) |
| /// # 0x00100 PIC |
| /// $RF64PIC PIC REG |
| /// ### |
| /// * Picture-level Parameters for ALU64 extensions. |
| /// * End NLUTCTX |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 512B, bits: 4096b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_NLUTCTX |
| #define h_NLUTCTX (){} |
| |
| #define RA_NLUTCTX_MB 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_NLUTCTX_RSVD 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_NLUTCTX_PIC 0x0100 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_NLUTCTX { |
| /////////////////////////////////////////////////////////// |
| SIE_RF64MB ie_MB; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD[31]; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64PIC ie_PIC; |
| /////////////////////////////////////////////////////////// |
| } SIE_NLUTCTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 NLUTCTX_drvrd(SIE_NLUTCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 NLUTCTX_drvwr(SIE_NLUTCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void NLUTCTX_reset(SIE_NLUTCTX *p); |
| SIGN32 NLUTCTX_cmp (SIE_NLUTCTX *p, SIE_NLUTCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define NLUTCTX_check(p,pie,pfx,hLOG) NLUTCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define NLUTCTX_print(p, pfx,hLOG) NLUTCTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: NLUTCTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE BITOPCTX biu (4,4) |
| /// ### |
| /// * Operator format for BitOp extension |
| /// * [0:3583] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 RSVD |
| /// $LUT64b RSVD REG [56] |
| /// ### |
| /// * padding to 3583 |
| /// * [3584:3711] |
| /// ### |
| /// @ 0x001C0 (P) |
| /// # 0x001C0 CTX |
| /// $BITOPRF64 CTX REG |
| /// ### |
| /// * Four BitOp commands, selected by extension ID |
| /// * End BitOpCtx |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 512B, bits: 4096b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_BITOPCTX |
| #define h_BITOPCTX (){} |
| |
| #define RA_BITOPCTX_RSVD 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_BITOPCTX_CTX 0x01C0 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_BITOPCTX { |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD[56]; |
| /////////////////////////////////////////////////////////// |
| SIE_BITOPRF64 ie_CTX; |
| /////////////////////////////////////////////////////////// |
| } SIE_BITOPCTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 BITOPCTX_drvrd(SIE_BITOPCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 BITOPCTX_drvwr(SIE_BITOPCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void BITOPCTX_reset(SIE_BITOPCTX *p); |
| SIGN32 BITOPCTX_cmp (SIE_BITOPCTX *p, SIE_BITOPCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define BITOPCTX_check(p,pie,pfx,hLOG) BITOPCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define BITOPCTX_print(p, pfx,hLOG) BITOPCTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: BITOPCTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE DQCTX biu (4,4) |
| /// ### |
| /// * RF64 context for dQuant |
| /// * [0:63] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 MB |
| /// $RF64MB MB REG |
| /// ### |
| /// * Reserved for RF64MB |
| /// * [64:191] |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 QPX |
| /// $RF64QP QPX REG |
| /// ### |
| /// * QP of current block |
| /// ### |
| /// @ 0x00010 (P) |
| /// # 0x00010 QPN |
| /// $RF64QP QPN REG |
| /// ### |
| /// * QP of neighboring block |
| /// * Used for VC-1/MPEG-4 DC/AC prediction |
| /// * [192:2047] |
| /// ### |
| /// @ 0x00018 (P) |
| /// # 0x00018 RSVD |
| /// $LUT64b RSVD REG [29] |
| /// ### |
| /// * padding to 2048-bit boundary |
| /// * [2048:4095] |
| /// ### |
| /// @ 0x00100 (P) |
| /// # 0x00100 PIC |
| /// $RF64PIC PIC REG |
| /// ### |
| /// * Picture-level Parameters for ALU64 extensions. |
| /// * End DQCTX |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 512B, bits: 4096b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_DQCTX |
| #define h_DQCTX (){} |
| |
| #define RA_DQCTX_MB 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_DQCTX_QPX 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_DQCTX_QPN 0x0010 |
| /////////////////////////////////////////////////////////// |
| #define RA_DQCTX_RSVD 0x0018 |
| /////////////////////////////////////////////////////////// |
| #define RA_DQCTX_PIC 0x0100 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_DQCTX { |
| /////////////////////////////////////////////////////////// |
| SIE_RF64MB ie_MB; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64QP ie_QPX; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64QP ie_QPN; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD[29]; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64PIC ie_PIC; |
| /////////////////////////////////////////////////////////// |
| } SIE_DQCTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 DQCTX_drvrd(SIE_DQCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 DQCTX_drvwr(SIE_DQCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void DQCTX_reset(SIE_DQCTX *p); |
| SIGN32 DQCTX_cmp (SIE_DQCTX *p, SIE_DQCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define DQCTX_check(p,pie,pfx,hLOG) DQCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define DQCTX_print(p, pfx,hLOG) DQCTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: DQCTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE ASPCTX biu (4,4) |
| /// ### |
| /// * RF64 context for ASP |
| /// * [0:63] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 MB |
| /// $RF64MB MB REG |
| /// ### |
| /// * Reserved for RF64MB |
| /// * [64:255] |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 RSVD |
| /// $LUT64b RSVD REG [3] |
| /// ### |
| /// * padding to 2048-bit boundary |
| /// ### |
| /// @ 0x00020 (P) |
| /// # 0x00020 D33 |
| /// $HCTX4x4 D33 REG |
| /// ### |
| /// * Y(-1,-1) |
| /// ### |
| /// @ 0x00030 (P) |
| /// # 0x00030 B30 |
| /// $HCTX4x4 B30 REG |
| /// ### |
| /// * Y(0,-1) or U(0,-1) or DCU(0,-1) |
| /// ### |
| /// @ 0x00040 (P) |
| /// # 0x00040 B31 |
| /// $HCTX4x4 B31 REG |
| /// ### |
| /// * Y(1,-1) or V(0,-1) or DCV(0,-1) |
| /// ### |
| /// @ 0x00050 (P) |
| /// # 0x00050 B32 |
| /// $HCTX4x4 B32 REG |
| /// ### |
| /// * Y(2,-1) or U(1,-1) |
| /// ### |
| /// @ 0x00060 (P) |
| /// # 0x00060 B33 |
| /// $HCTX4x4 B33 REG |
| /// ### |
| /// * Y(3,-1) or V(1,-1) or DCY(0,-1) |
| /// ### |
| /// @ 0x00070 (P) |
| /// # 0x00070 C30 |
| /// $HCTX4x4 C30 REG |
| /// ### |
| /// * Y(4,-1) |
| /// ### |
| /// @ 0x00080 (P) |
| /// # 0x00080 A03 |
| /// $HCTX4x4 A03 REG |
| /// ### |
| /// * Y(-1,0) |
| /// ### |
| /// @ 0x00090 (P) |
| /// # 0x00090 A12 |
| /// $HCTX4x4 A12 REG |
| /// ### |
| /// * U(-1,0) & V(-1,0) |
| /// ### |
| /// @ 0x000A0 (P) |
| /// # 0x000A0 A13 |
| /// $HCTX4x4 A13 REG |
| /// ### |
| /// * Y(-1,1) |
| /// ### |
| /// @ 0x000B0 (P) |
| /// # 0x000B0 A23 |
| /// $HCTX4x4 A23 REG |
| /// ### |
| /// * Y(-1,2) |
| /// ### |
| /// @ 0x000C0 (P) |
| /// # 0x000C0 A30 |
| /// $HCTX4x4 A30 REG |
| /// ### |
| /// * DCU(-1,0) & DCV(-1,0) |
| /// ### |
| /// @ 0x000D0 (P) |
| /// # 0x000D0 A31 |
| /// $HCTX4x4 A31 REG |
| /// ### |
| /// * DCI(-1,0) & DCY(-1,0) |
| /// ### |
| /// @ 0x000E0 (P) |
| /// # 0x000E0 A32 |
| /// $HCTX4x4 A32 REG |
| /// ### |
| /// * U(-1,1) & V(-1,1) |
| /// ### |
| /// @ 0x000F0 (P) |
| /// # 0x000F0 A33 |
| /// $HCTX4x4 A33 REG |
| /// ### |
| /// * Y(-1,3) |
| /// * [2048:4095] |
| /// ### |
| /// @ 0x00100 (P) |
| /// # 0x00100 PIC |
| /// $RF64PIC PIC REG |
| /// ### |
| /// * Picture-level Parameters for ALU64 extensions. |
| /// * End ASPCTX |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 512B, bits: 4096b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_ASPCTX |
| #define h_ASPCTX (){} |
| |
| #define RA_ASPCTX_MB 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_RSVD 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_D33 0x0020 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_B30 0x0030 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_B31 0x0040 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_B32 0x0050 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_B33 0x0060 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_C30 0x0070 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_A03 0x0080 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_A12 0x0090 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_A13 0x00A0 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_A23 0x00B0 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_A30 0x00C0 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_A31 0x00D0 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_A32 0x00E0 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_A33 0x00F0 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASPCTX_PIC 0x0100 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_ASPCTX { |
| /////////////////////////////////////////////////////////// |
| SIE_RF64MB ie_MB; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD[3]; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_D33; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_B30; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_B31; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_B32; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_B33; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_C30; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A03; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A12; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A13; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A23; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A30; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A31; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A32; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A33; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64PIC ie_PIC; |
| /////////////////////////////////////////////////////////// |
| } SIE_ASPCTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 ASPCTX_drvrd(SIE_ASPCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 ASPCTX_drvwr(SIE_ASPCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void ASPCTX_reset(SIE_ASPCTX *p); |
| SIGN32 ASPCTX_cmp (SIE_ASPCTX *p, SIE_ASPCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define ASPCTX_check(p,pie,pfx,hLOG) ASPCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define ASPCTX_print(p, pfx,hLOG) ASPCTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: ASPCTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE HCTX_ARR biu (4,4) |
| /// ### |
| /// * 16 * HCTX4x4 for ASP |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 CTX |
| /// $HCTX4x4 CTX REG [16] |
| /// ### |
| /// * HCTX4x4 |
| /// * End HCTX_ARR |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 256B, bits: 2048b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_HCTX_ARR |
| #define h_HCTX_ARR (){} |
| |
| #define RA_HCTX_ARR_CTX 0x0000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_HCTX_ARR { |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_CTX[16]; |
| /////////////////////////////////////////////////////////// |
| } SIE_HCTX_ARR; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 HCTX_ARR_drvrd(SIE_HCTX_ARR *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 HCTX_ARR_drvwr(SIE_HCTX_ARR *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void HCTX_ARR_reset(SIE_HCTX_ARR *p); |
| SIGN32 HCTX_ARR_cmp (SIE_HCTX_ARR *p, SIE_HCTX_ARR *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define HCTX_ARR_check(p,pie,pfx,hLOG) HCTX_ARR_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define HCTX_ARR_print(p, pfx,hLOG) HCTX_ARR_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: HCTX_ARR |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE ASECTX biu (4,4) |
| /// ### |
| /// * RF64 context for ASE |
| /// * [0:63] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 MB |
| /// $RF64MB MB REG |
| /// ### |
| /// * Reserved for RF64MB |
| /// * [64:255] |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 RSVD |
| /// $LUT64b RSVD REG [3] |
| /// ### |
| /// * padding to 2048-bit boundary |
| /// ### |
| /// @ 0x00020 (P) |
| /// # 0x00020 D33 |
| /// $HCTX4x4 D33 REG |
| /// ### |
| /// * Y(-1,-1) |
| /// ### |
| /// @ 0x00030 (P) |
| /// # 0x00030 B30 |
| /// $HCTX4x4 B30 REG |
| /// ### |
| /// * Y(0,-1) or U(0,-1) or DCU(0,-1) |
| /// ### |
| /// @ 0x00040 (P) |
| /// # 0x00040 B31 |
| /// $HCTX4x4 B31 REG |
| /// ### |
| /// * Y(1,-1) or V(0,-1) or DCV(0,-1) |
| /// ### |
| /// @ 0x00050 (P) |
| /// # 0x00050 B32 |
| /// $HCTX4x4 B32 REG |
| /// ### |
| /// * Y(2,-1) or U(1,-1) |
| /// ### |
| /// @ 0x00060 (P) |
| /// # 0x00060 B33 |
| /// $HCTX4x4 B33 REG |
| /// ### |
| /// * Y(3,-1) or V(1,-1) or DCY(0,-1) |
| /// ### |
| /// @ 0x00070 (P) |
| /// # 0x00070 C30 |
| /// $HCTX4x4 C30 REG |
| /// ### |
| /// * Y(4,-1) |
| /// ### |
| /// @ 0x00080 (P) |
| /// # 0x00080 A03 |
| /// $HCTX4x4 A03 REG |
| /// ### |
| /// * Y(-1,0) |
| /// ### |
| /// @ 0x00090 (P) |
| /// # 0x00090 A12 |
| /// $HCTX4x4 A12 REG |
| /// ### |
| /// * U(-1,0) & V(-1,0) |
| /// ### |
| /// @ 0x000A0 (P) |
| /// # 0x000A0 A13 |
| /// $HCTX4x4 A13 REG |
| /// ### |
| /// * Y(-1,1) |
| /// ### |
| /// @ 0x000B0 (P) |
| /// # 0x000B0 A23 |
| /// $HCTX4x4 A23 REG |
| /// ### |
| /// * Y(-1,2) |
| /// ### |
| /// @ 0x000C0 (P) |
| /// # 0x000C0 A30 |
| /// $HCTX4x4 A30 REG |
| /// ### |
| /// * DCU(-1,0) & DCV(-1,0) |
| /// ### |
| /// @ 0x000D0 (P) |
| /// # 0x000D0 A31 |
| /// $HCTX4x4 A31 REG |
| /// ### |
| /// * DCI(-1,0) & DCY(-1,0) |
| /// ### |
| /// @ 0x000E0 (P) |
| /// # 0x000E0 A32 |
| /// $HCTX4x4 A32 REG |
| /// ### |
| /// * U(-1,1) & V(-1,1) |
| /// ### |
| /// @ 0x000F0 (P) |
| /// # 0x000F0 A33 |
| /// $HCTX4x4 A33 REG |
| /// ### |
| /// * Y(-1,3) |
| /// * [2048:4095] |
| /// ### |
| /// @ 0x00100 (P) |
| /// # 0x00100 PIC |
| /// $RF64PIC PIC REG |
| /// ### |
| /// * Picture-level Parameters for ALU64 extensions. |
| /// * End ASECTX |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 512B, bits: 4096b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_ASECTX |
| #define h_ASECTX (){} |
| |
| #define RA_ASECTX_MB 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_RSVD 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_D33 0x0020 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_B30 0x0030 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_B31 0x0040 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_B32 0x0050 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_B33 0x0060 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_C30 0x0070 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_A03 0x0080 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_A12 0x0090 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_A13 0x00A0 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_A23 0x00B0 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_A30 0x00C0 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_A31 0x00D0 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_A32 0x00E0 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_A33 0x00F0 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASECTX_PIC 0x0100 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_ASECTX { |
| /////////////////////////////////////////////////////////// |
| SIE_RF64MB ie_MB; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD[3]; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_D33; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_B30; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_B31; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_B32; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_B33; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_C30; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A03; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A12; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A13; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A23; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A30; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A31; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A32; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A33; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64PIC ie_PIC; |
| /////////////////////////////////////////////////////////// |
| } SIE_ASECTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 ASECTX_drvrd(SIE_ASECTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 ASECTX_drvwr(SIE_ASECTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void ASECTX_reset(SIE_ASECTX *p); |
| SIGN32 ASECTX_cmp (SIE_ASECTX *p, SIE_ASECTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define ASECTX_check(p,pie,pfx,hLOG) ASECTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define ASECTX_print(p, pfx,hLOG) ASECTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: ASECTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE ASE_ND_CTX biu (4,4) |
| /// ### |
| /// * RF64 context for ASE (to store Neighbor D in MBAFF mode) |
| /// * [0:63] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 RSVD |
| /// $LUT64b RSVD REG |
| /// ### |
| /// * Reserved for RF64MB |
| /// * [64:191] |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 A03m |
| /// $HCTX4x4 A03m REG |
| /// ### |
| /// * Neighbor D for when locating at A03 in MBAFF mode |
| /// * [192:255] |
| /// ### |
| /// @ 0x00018 (P) |
| /// # 0x00018 RSVD1 |
| /// $LUT64b RSVD1 REG [32] |
| /// ### |
| /// * [2240:2367] |
| /// ### |
| /// @ 0x00118 (P) |
| /// # 0x00118 A13m |
| /// $HCTX4x4 A13m REG |
| /// ### |
| /// * Neighbor D for when locating at A13 in MBAFF mode |
| /// * [2368:2495] |
| /// ### |
| /// @ 0x00128 (P) |
| /// # 0x00128 A23m |
| /// $HCTX4x4 A23m REG |
| /// ### |
| /// * Neighbor D for when locating at A23 in MBAFF mode |
| /// * [2496:4097] |
| /// ### |
| /// @ 0x00138 (P) |
| /// # 0x00138 RSVD2 |
| /// $LUT64b RSVD2 REG [25] |
| /// ### |
| /// * Padding to the end |
| /// * End ASE_ND_CTX |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 512B, bits: 4096b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_ASE_ND_CTX |
| #define h_ASE_ND_CTX (){} |
| |
| #define RA_ASE_ND_CTX_RSVD 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASE_ND_CTX_A03m 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASE_ND_CTX_RSVD1 0x0018 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASE_ND_CTX_A13m 0x0118 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASE_ND_CTX_A23m 0x0128 |
| /////////////////////////////////////////////////////////// |
| #define RA_ASE_ND_CTX_RSVD2 0x0138 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_ASE_ND_CTX { |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A03m; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD1[32]; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A13m; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_A23m; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD2[25]; |
| /////////////////////////////////////////////////////////// |
| } SIE_ASE_ND_CTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 ASE_ND_CTX_drvrd(SIE_ASE_ND_CTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 ASE_ND_CTX_drvwr(SIE_ASE_ND_CTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void ASE_ND_CTX_reset(SIE_ASE_ND_CTX *p); |
| SIGN32 ASE_ND_CTX_cmp (SIE_ASE_ND_CTX *p, SIE_ASE_ND_CTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define ASE_ND_CTX_check(p,pie,pfx,hLOG) ASE_ND_CTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define ASE_ND_CTX_print(p, pfx,hLOG) ASE_ND_CTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: ASE_ND_CTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE FOPCTX biu (4,4) |
| /// ### |
| /// * RF64 context for FOP |
| /// * [0:63] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 MB |
| /// $RF64MB MB REG |
| /// ### |
| /// * Macroblock-level information; reprogrammed by FIGO at the start of every macroblock |
| /// * [64:447] |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 QPX0 |
| /// $RF64QP QPX0 REG |
| /// ### |
| /// * QP of current MB |
| /// ### |
| /// @ 0x00010 (P) |
| /// # 0x00010 QPX1 |
| /// $RF64QP QPX1 REG |
| /// ### |
| /// * QP of current MB |
| /// ### |
| /// @ 0x00018 (P) |
| /// # 0x00018 QPA0 |
| /// $RF64QP QPA0 REG |
| /// ### |
| /// * QP of even MB of left MB pair |
| /// ### |
| /// @ 0x00020 (P) |
| /// # 0x00020 QPA1 |
| /// $RF64QP QPA1 REG |
| /// ### |
| /// * QP of odd MB of left MB pair |
| /// ### |
| /// @ 0x00028 (P) |
| /// # 0x00028 QPB0 |
| /// $RF64QP QPB0 REG |
| /// ### |
| /// * QP of even MB of top MB pair |
| /// ### |
| /// @ 0x00030 (P) |
| /// # 0x00030 QPB1 |
| /// $RF64QP QPB1 REG |
| /// ### |
| /// * QP of odd MB of top MB pair |
| /// * [448:831] |
| /// ### |
| /// @ 0x00038 (P) |
| /// # 0x00038 BlkX |
| /// $HCTX4x4 BlkX REG |
| /// ### |
| /// * Context for current block |
| /// ### |
| /// @ 0x00048 (P) |
| /// # 0x00048 BlkA |
| /// $HCTX4x4 BlkA REG |
| /// ### |
| /// * Context for left neighbor |
| /// ### |
| /// @ 0x00058 (P) |
| /// # 0x00058 BlkB |
| /// $HCTX4x4 BlkB REG |
| /// ### |
| /// * Context for top block |
| /// ### |
| /// @ 0x00068 (P) |
| /// # 0x00068 BlkC |
| /// $HCTX4x4 BlkC REG |
| /// ### |
| /// * Block context used in VC-1 main profile P exception 2. |
| /// * [960:2047] |
| /// ### |
| /// @ 0x00078 (P) |
| /// # 0x00078 RSVD |
| /// $LUT64b RSVD REG [17] |
| /// ### |
| /// * padding to 2048-bit boundary |
| /// * [2048:4095] |
| /// ### |
| /// @ 0x00100 (P) |
| /// # 0x00100 PIC |
| /// $RF64PIC PIC REG |
| /// ### |
| /// * Picture-level Parameters for ALU64 extensions. |
| /// * End RF64CTX |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 512B, bits: 4096b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_FOPCTX |
| #define h_FOPCTX (){} |
| |
| #define RA_FOPCTX_MB 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_FOPCTX_QPX0 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_FOPCTX_QPX1 0x0010 |
| /////////////////////////////////////////////////////////// |
| #define RA_FOPCTX_QPA0 0x0018 |
| /////////////////////////////////////////////////////////// |
| #define RA_FOPCTX_QPA1 0x0020 |
| /////////////////////////////////////////////////////////// |
| #define RA_FOPCTX_QPB0 0x0028 |
| /////////////////////////////////////////////////////////// |
| #define RA_FOPCTX_QPB1 0x0030 |
| /////////////////////////////////////////////////////////// |
| #define RA_FOPCTX_BlkX 0x0038 |
| /////////////////////////////////////////////////////////// |
| #define RA_FOPCTX_BlkA 0x0048 |
| /////////////////////////////////////////////////////////// |
| #define RA_FOPCTX_BlkB 0x0058 |
| /////////////////////////////////////////////////////////// |
| #define RA_FOPCTX_BlkC 0x0068 |
| /////////////////////////////////////////////////////////// |
| #define RA_FOPCTX_RSVD 0x0078 |
| /////////////////////////////////////////////////////////// |
| #define RA_FOPCTX_PIC 0x0100 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_FOPCTX { |
| /////////////////////////////////////////////////////////// |
| SIE_RF64MB ie_MB; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64QP ie_QPX0; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64QP ie_QPX1; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64QP ie_QPA0; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64QP ie_QPA1; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64QP ie_QPB0; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64QP ie_QPB1; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_BlkX; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_BlkA; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_BlkB; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_BlkC; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD[17]; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64PIC ie_PIC; |
| /////////////////////////////////////////////////////////// |
| } SIE_FOPCTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 FOPCTX_drvrd(SIE_FOPCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 FOPCTX_drvwr(SIE_FOPCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void FOPCTX_reset(SIE_FOPCTX *p); |
| SIGN32 FOPCTX_cmp (SIE_FOPCTX *p, SIE_FOPCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define FOPCTX_check(p,pie,pfx,hLOG) FOPCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define FOPCTX_print(p, pfx,hLOG) FOPCTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: FOPCTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE pmvScale biu (4,4) |
| /// ### |
| /// * Scaling factors for PMV calculation (for AVS) |
| /// * [0:63] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 32 scaleA |
| /// ### |
| /// * Scaling factor for MVs of block A |
| /// ### |
| /// @ 0x00004 (P) |
| /// %unsigned 32 scaleB |
| /// ### |
| /// * Scaling factor for MVs of block B |
| /// * [64:127] |
| /// ### |
| /// @ 0x00008 (P) |
| /// %unsigned 32 scaleC |
| /// ### |
| /// * Scaling factor for MVs of block C |
| /// ### |
| /// @ 0x0000C (P) |
| /// %unsigned 32 scaleD |
| /// ### |
| /// * Scaling factor for MVs of block D |
| /// * End pmvScale |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 16B, bits: 128b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_pmvScale |
| #define h_pmvScale (){} |
| |
| #define BA_pmvScale_scaleA 0x0000 |
| #define B16pmvScale_scaleA 0x0000 |
| #define LSb32pmvScale_scaleA 0 |
| #define LSb16pmvScale_scaleA 0 |
| #define bpmvScale_scaleA 32 |
| #define MSK32pmvScale_scaleA 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_pmvScale_scaleB 0x0004 |
| #define B16pmvScale_scaleB 0x0004 |
| #define LSb32pmvScale_scaleB 0 |
| #define LSb16pmvScale_scaleB 0 |
| #define bpmvScale_scaleB 32 |
| #define MSK32pmvScale_scaleB 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_pmvScale_scaleC 0x0008 |
| #define B16pmvScale_scaleC 0x0008 |
| #define LSb32pmvScale_scaleC 0 |
| #define LSb16pmvScale_scaleC 0 |
| #define bpmvScale_scaleC 32 |
| #define MSK32pmvScale_scaleC 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_pmvScale_scaleD 0x000C |
| #define B16pmvScale_scaleD 0x000C |
| #define LSb32pmvScale_scaleD 0 |
| #define LSb16pmvScale_scaleD 0 |
| #define bpmvScale_scaleD 32 |
| #define MSK32pmvScale_scaleD 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_pmvScale { |
| /////////////////////////////////////////////////////////// |
| #define GET32pmvScale_scaleA(r32) _BFGET_(r32,31, 0) |
| #define SET32pmvScale_scaleA(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_scaleA : 32; |
| /////////////////////////////////////////////////////////// |
| #define GET32pmvScale_scaleB(r32) _BFGET_(r32,31, 0) |
| #define SET32pmvScale_scaleB(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_scaleB : 32; |
| /////////////////////////////////////////////////////////// |
| #define GET32pmvScale_scaleC(r32) _BFGET_(r32,31, 0) |
| #define SET32pmvScale_scaleC(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_scaleC : 32; |
| /////////////////////////////////////////////////////////// |
| #define GET32pmvScale_scaleD(r32) _BFGET_(r32,31, 0) |
| #define SET32pmvScale_scaleD(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_scaleD : 32; |
| /////////////////////////////////////////////////////////// |
| } SIE_pmvScale; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 pmvScale_drvrd(SIE_pmvScale *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 pmvScale_drvwr(SIE_pmvScale *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void pmvScale_reset(SIE_pmvScale *p); |
| SIGN32 pmvScale_cmp (SIE_pmvScale *p, SIE_pmvScale *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define pmvScale_check(p,pie,pfx,hLOG) pmvScale_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define pmvScale_print(p, pfx,hLOG) pmvScale_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: pmvScale |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE PMVCTX biu (4,4) |
| /// ### |
| /// * RF64 context for PMV |
| /// * [0:63] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 MB |
| /// $RF64MB MB REG |
| /// ### |
| /// * Macroblock-level information; reprogrammed by FIGO at the start of every macroblock |
| /// * [64:447] |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 RSVD0 |
| /// $LUT64b RSVD0 REG [6] |
| /// ### |
| /// * padding to align block-level context |
| /// * [448:1087] |
| /// ### |
| /// @ 0x00038 (P) |
| /// # 0x00038 BlkX |
| /// $FCTX BlkX REG |
| /// ### |
| /// * Context for current block |
| /// ### |
| /// @ 0x00040 (P) |
| /// # 0x00040 ChromaMV |
| /// $MV ChromaMV REG |
| /// ### |
| /// * MPEG-4 chroma MV |
| /// ### |
| /// @ 0x00044 (P) |
| /// %unsigned 32 RSVDX |
| /// ### |
| /// * padding to 128-bit |
| /// ### |
| /// @ 0x00048 (P) |
| /// # 0x00048 BlkA |
| /// $FCTX BlkA REG |
| /// ### |
| /// * Context for left neighbor |
| /// ### |
| /// @ 0x00050 (P) |
| /// # 0x00050 BlkD |
| /// $FCTX BlkD REG |
| /// ### |
| /// * Context for upper-left neighbor |
| /// ### |
| /// @ 0x00058 (P) |
| /// # 0x00058 BlkB |
| /// $FCTX BlkB REG |
| /// ### |
| /// * Context for top neighbor |
| /// ### |
| /// @ 0x00060 (P) |
| /// # 0x00060 BlkC |
| /// $FCTX BlkC REG |
| /// ### |
| /// * Context for upper-right neighbor |
| /// ### |
| /// @ 0x00068 (P) |
| /// # 0x00068 BlkA1 |
| /// $FCTX BlkA1 REG |
| /// ### |
| /// * Context for 2nd left neighbor, interlace frame |
| /// ### |
| /// @ 0x00070 (P) |
| /// # 0x00070 BlkD1 |
| /// $FCTX BlkD1 REG |
| /// ### |
| /// * Context for 2nd upper-left neighbor, interlace frame |
| /// ### |
| /// @ 0x00078 (P) |
| /// # 0x00078 BlkB1 |
| /// $FCTX BlkB1 REG |
| /// ### |
| /// * Context for 2nd top neighbor, interlace frame |
| /// ### |
| /// @ 0x00080 (P) |
| /// # 0x00080 BlkC1 |
| /// $FCTX BlkC1 REG |
| /// ### |
| /// * Context for 2nd up-right neighbor, interlace frame only |
| /// * [1088:1727] |
| /// ### |
| /// @ 0x00088 (P) |
| /// %unsigned 32 pmvScale_0i |
| /// %unsigned 32 pmvScale_1i |
| /// %unsigned 32 pmvScale_2i |
| /// %unsigned 32 pmvScale_3i |
| /// %unsigned 32 pmvScale_4i |
| /// %unsigned 32 pmvScale_5i |
| /// %unsigned 32 pmvScale_6i |
| /// %unsigned 32 pmvScale_7i |
| /// %unsigned 32 pmvScale_8i |
| /// %unsigned 32 pmvScale_9i |
| /// %unsigned 32 pmvScale_10i |
| /// %unsigned 32 pmvScale_11i |
| /// %unsigned 32 pmvScale_12i |
| /// %unsigned 32 pmvScale_13i |
| /// %unsigned 32 pmvScale_14i |
| /// %unsigned 32 pmvScale_15i |
| /// %unsigned 32 pmvScale_16i |
| /// %unsigned 32 pmvScale_17i |
| /// %unsigned 32 pmvScale_18i |
| /// %unsigned 32 pmvScale_19i |
| /// ### |
| /// * Scale candidates for PMV. |
| /// * [1727:2047] |
| /// ### |
| /// @ 0x000D8 (P) |
| /// # 0x000D8 RSVD |
| /// $LUT64b RSVD REG [5] |
| /// ### |
| /// * padding to 2048-bit boundary |
| /// * [2048:4095] |
| /// ### |
| /// @ 0x00100 (P) |
| /// # 0x00100 PIC |
| /// $RF64PIC PIC REG |
| /// ### |
| /// * Picture-level Parameters for ALU64 extensions. |
| /// * End PMVCTX |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 512B, bits: 4096b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_PMVCTX |
| #define h_PMVCTX (){} |
| |
| #define RA_PMVCTX_MB 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_RSVD0 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_BlkX 0x0038 |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_ChromaMV 0x0040 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_PMVCTX_RSVDX 0x0044 |
| #define B16PMVCTX_RSVDX 0x0044 |
| #define LSb32PMVCTX_RSVDX 0 |
| #define LSb16PMVCTX_RSVDX 0 |
| #define bPMVCTX_RSVDX 32 |
| #define MSK32PMVCTX_RSVDX 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_BlkA 0x0048 |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_BlkD 0x0050 |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_BlkB 0x0058 |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_BlkC 0x0060 |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_BlkA1 0x0068 |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_BlkD1 0x0070 |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_BlkB1 0x0078 |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_BlkC1 0x0080 |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_PMVCTX_pmvScale_0i 0x0088 |
| #define B16PMVCTX_pmvScale_0i 0x0088 |
| #define LSb32PMVCTX_pmvScale_0i 0 |
| #define LSb16PMVCTX_pmvScale_0i 0 |
| #define bPMVCTX_pmvScale_0i 32 |
| #define MSK32PMVCTX_pmvScale_0i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_1i 0x008C |
| #define B16PMVCTX_pmvScale_1i 0x008C |
| #define LSb32PMVCTX_pmvScale_1i 0 |
| #define LSb16PMVCTX_pmvScale_1i 0 |
| #define bPMVCTX_pmvScale_1i 32 |
| #define MSK32PMVCTX_pmvScale_1i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_2i 0x0090 |
| #define B16PMVCTX_pmvScale_2i 0x0090 |
| #define LSb32PMVCTX_pmvScale_2i 0 |
| #define LSb16PMVCTX_pmvScale_2i 0 |
| #define bPMVCTX_pmvScale_2i 32 |
| #define MSK32PMVCTX_pmvScale_2i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_3i 0x0094 |
| #define B16PMVCTX_pmvScale_3i 0x0094 |
| #define LSb32PMVCTX_pmvScale_3i 0 |
| #define LSb16PMVCTX_pmvScale_3i 0 |
| #define bPMVCTX_pmvScale_3i 32 |
| #define MSK32PMVCTX_pmvScale_3i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_4i 0x0098 |
| #define B16PMVCTX_pmvScale_4i 0x0098 |
| #define LSb32PMVCTX_pmvScale_4i 0 |
| #define LSb16PMVCTX_pmvScale_4i 0 |
| #define bPMVCTX_pmvScale_4i 32 |
| #define MSK32PMVCTX_pmvScale_4i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_5i 0x009C |
| #define B16PMVCTX_pmvScale_5i 0x009C |
| #define LSb32PMVCTX_pmvScale_5i 0 |
| #define LSb16PMVCTX_pmvScale_5i 0 |
| #define bPMVCTX_pmvScale_5i 32 |
| #define MSK32PMVCTX_pmvScale_5i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_6i 0x00A0 |
| #define B16PMVCTX_pmvScale_6i 0x00A0 |
| #define LSb32PMVCTX_pmvScale_6i 0 |
| #define LSb16PMVCTX_pmvScale_6i 0 |
| #define bPMVCTX_pmvScale_6i 32 |
| #define MSK32PMVCTX_pmvScale_6i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_7i 0x00A4 |
| #define B16PMVCTX_pmvScale_7i 0x00A4 |
| #define LSb32PMVCTX_pmvScale_7i 0 |
| #define LSb16PMVCTX_pmvScale_7i 0 |
| #define bPMVCTX_pmvScale_7i 32 |
| #define MSK32PMVCTX_pmvScale_7i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_8i 0x00A8 |
| #define B16PMVCTX_pmvScale_8i 0x00A8 |
| #define LSb32PMVCTX_pmvScale_8i 0 |
| #define LSb16PMVCTX_pmvScale_8i 0 |
| #define bPMVCTX_pmvScale_8i 32 |
| #define MSK32PMVCTX_pmvScale_8i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_9i 0x00AC |
| #define B16PMVCTX_pmvScale_9i 0x00AC |
| #define LSb32PMVCTX_pmvScale_9i 0 |
| #define LSb16PMVCTX_pmvScale_9i 0 |
| #define bPMVCTX_pmvScale_9i 32 |
| #define MSK32PMVCTX_pmvScale_9i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_10i 0x00B0 |
| #define B16PMVCTX_pmvScale_10i 0x00B0 |
| #define LSb32PMVCTX_pmvScale_10i 0 |
| #define LSb16PMVCTX_pmvScale_10i 0 |
| #define bPMVCTX_pmvScale_10i 32 |
| #define MSK32PMVCTX_pmvScale_10i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_11i 0x00B4 |
| #define B16PMVCTX_pmvScale_11i 0x00B4 |
| #define LSb32PMVCTX_pmvScale_11i 0 |
| #define LSb16PMVCTX_pmvScale_11i 0 |
| #define bPMVCTX_pmvScale_11i 32 |
| #define MSK32PMVCTX_pmvScale_11i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_12i 0x00B8 |
| #define B16PMVCTX_pmvScale_12i 0x00B8 |
| #define LSb32PMVCTX_pmvScale_12i 0 |
| #define LSb16PMVCTX_pmvScale_12i 0 |
| #define bPMVCTX_pmvScale_12i 32 |
| #define MSK32PMVCTX_pmvScale_12i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_13i 0x00BC |
| #define B16PMVCTX_pmvScale_13i 0x00BC |
| #define LSb32PMVCTX_pmvScale_13i 0 |
| #define LSb16PMVCTX_pmvScale_13i 0 |
| #define bPMVCTX_pmvScale_13i 32 |
| #define MSK32PMVCTX_pmvScale_13i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_14i 0x00C0 |
| #define B16PMVCTX_pmvScale_14i 0x00C0 |
| #define LSb32PMVCTX_pmvScale_14i 0 |
| #define LSb16PMVCTX_pmvScale_14i 0 |
| #define bPMVCTX_pmvScale_14i 32 |
| #define MSK32PMVCTX_pmvScale_14i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_15i 0x00C4 |
| #define B16PMVCTX_pmvScale_15i 0x00C4 |
| #define LSb32PMVCTX_pmvScale_15i 0 |
| #define LSb16PMVCTX_pmvScale_15i 0 |
| #define bPMVCTX_pmvScale_15i 32 |
| #define MSK32PMVCTX_pmvScale_15i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_16i 0x00C8 |
| #define B16PMVCTX_pmvScale_16i 0x00C8 |
| #define LSb32PMVCTX_pmvScale_16i 0 |
| #define LSb16PMVCTX_pmvScale_16i 0 |
| #define bPMVCTX_pmvScale_16i 32 |
| #define MSK32PMVCTX_pmvScale_16i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_17i 0x00CC |
| #define B16PMVCTX_pmvScale_17i 0x00CC |
| #define LSb32PMVCTX_pmvScale_17i 0 |
| #define LSb16PMVCTX_pmvScale_17i 0 |
| #define bPMVCTX_pmvScale_17i 32 |
| #define MSK32PMVCTX_pmvScale_17i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_18i 0x00D0 |
| #define B16PMVCTX_pmvScale_18i 0x00D0 |
| #define LSb32PMVCTX_pmvScale_18i 0 |
| #define LSb16PMVCTX_pmvScale_18i 0 |
| #define bPMVCTX_pmvScale_18i 32 |
| #define MSK32PMVCTX_pmvScale_18i 0xFFFFFFFF |
| |
| #define BA_PMVCTX_pmvScale_19i 0x00D4 |
| #define B16PMVCTX_pmvScale_19i 0x00D4 |
| #define LSb32PMVCTX_pmvScale_19i 0 |
| #define LSb16PMVCTX_pmvScale_19i 0 |
| #define bPMVCTX_pmvScale_19i 32 |
| #define MSK32PMVCTX_pmvScale_19i 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_RSVD 0x00D8 |
| /////////////////////////////////////////////////////////// |
| #define RA_PMVCTX_PIC 0x0100 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_PMVCTX { |
| /////////////////////////////////////////////////////////// |
| SIE_RF64MB ie_MB; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD0[6]; |
| /////////////////////////////////////////////////////////// |
| SIE_FCTX ie_BlkX; |
| /////////////////////////////////////////////////////////// |
| SIE_MV ie_ChromaMV; |
| /////////////////////////////////////////////////////////// |
| #define GET32PMVCTX_RSVDX(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_RSVDX(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_RSVDX : 32; |
| /////////////////////////////////////////////////////////// |
| SIE_FCTX ie_BlkA; |
| /////////////////////////////////////////////////////////// |
| SIE_FCTX ie_BlkD; |
| /////////////////////////////////////////////////////////// |
| SIE_FCTX ie_BlkB; |
| /////////////////////////////////////////////////////////// |
| SIE_FCTX ie_BlkC; |
| /////////////////////////////////////////////////////////// |
| SIE_FCTX ie_BlkA1; |
| /////////////////////////////////////////////////////////// |
| SIE_FCTX ie_BlkD1; |
| /////////////////////////////////////////////////////////// |
| SIE_FCTX ie_BlkB1; |
| /////////////////////////////////////////////////////////// |
| SIE_FCTX ie_BlkC1; |
| /////////////////////////////////////////////////////////// |
| #define GET32PMVCTX_pmvScale_0i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_0i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_0i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_1i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_1i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_1i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_2i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_2i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_2i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_3i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_3i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_3i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_4i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_4i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_4i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_5i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_5i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_5i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_6i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_6i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_6i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_7i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_7i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_7i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_8i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_8i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_8i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_9i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_9i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_9i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_10i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_10i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_10i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_11i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_11i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_11i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_12i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_12i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_12i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_13i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_13i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_13i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_14i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_14i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_14i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_15i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_15i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_15i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_16i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_16i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_16i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_17i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_17i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_17i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_18i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_18i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_18i : 32; |
| /////////////////////////////////////////////////////////// |
| |
| #define GET32PMVCTX_pmvScale_19i(r32) _BFGET_(r32,31, 0) |
| #define SET32PMVCTX_pmvScale_19i(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_pmvScale_19i : 32; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD[5]; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64PIC ie_PIC; |
| /////////////////////////////////////////////////////////// |
| } SIE_PMVCTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 PMVCTX_drvrd(SIE_PMVCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 PMVCTX_drvwr(SIE_PMVCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void PMVCTX_reset(SIE_PMVCTX *p); |
| SIGN32 PMVCTX_cmp (SIE_PMVCTX *p, SIE_PMVCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define PMVCTX_check(p,pie,pfx,hLOG) PMVCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define PMVCTX_print(p, pfx,hLOG) PMVCTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: PMVCTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE dirMvCTX biu (4,4) |
| /// ### |
| /// * RF64 context for direct mode MV calculation |
| /// * [0:63] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 MB |
| /// $RF64MB MB REG |
| /// ### |
| /// * Reserved for RF64MB |
| /// * [64:447] |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 RSVD0 |
| /// $LUT64b RSVD0 REG [6] |
| /// ### |
| /// * padding to align block-level context |
| /// * [448:575] |
| /// ### |
| /// @ 0x00038 (P) |
| /// # 0x00038 BlkX |
| /// $HCTX4x4 BlkX REG |
| /// ### |
| /// * Context of the current block; 128-bit. |
| /// * [576:639] |
| /// ### |
| /// @ 0x00048 (P) |
| /// # 0x00048 BlkCol |
| /// $FCTX BlkCol REG |
| /// ### |
| /// * Context of co-located block; 64-bit. |
| /// * [640:703] |
| /// ### |
| /// @ 0x00050 (P) |
| /// # 0x00050 mvScale |
| /// $dirMvScale mvScale REG |
| /// ### |
| /// * MV scaling factor for temporal direct mode; 64 bits |
| /// * [704:1919] |
| /// ### |
| /// @ 0x00058 (P) |
| /// # 0x00058 RSVD |
| /// $LUT64b RSVD REG [19] |
| /// ### |
| /// * padding to 2048-bit boundary |
| /// * [1920:2047] |
| /// ### |
| /// @ 0x000F0 (P) |
| /// # 0x000F0 MbPMV |
| /// $HCTX4x4 MbPMV REG |
| /// ### |
| /// * Macroblock PMV, for spatial direct mode only |
| /// * [2048:4095] |
| /// ### |
| /// @ 0x00100 (P) |
| /// # 0x00100 PIC |
| /// $RF64PIC PIC REG |
| /// ### |
| /// * Picture-level Parameters for ALU64 extensions. |
| /// * End dirMvCTX |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 512B, bits: 4096b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_dirMvCTX |
| #define h_dirMvCTX (){} |
| |
| #define RA_dirMvCTX_MB 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_dirMvCTX_RSVD0 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_dirMvCTX_BlkX 0x0038 |
| /////////////////////////////////////////////////////////// |
| #define RA_dirMvCTX_BlkCol 0x0048 |
| /////////////////////////////////////////////////////////// |
| #define RA_dirMvCTX_mvScale 0x0050 |
| /////////////////////////////////////////////////////////// |
| #define RA_dirMvCTX_RSVD 0x0058 |
| /////////////////////////////////////////////////////////// |
| #define RA_dirMvCTX_MbPMV 0x00F0 |
| /////////////////////////////////////////////////////////// |
| #define RA_dirMvCTX_PIC 0x0100 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_dirMvCTX { |
| /////////////////////////////////////////////////////////// |
| SIE_RF64MB ie_MB; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD0[6]; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_BlkX; |
| /////////////////////////////////////////////////////////// |
| SIE_FCTX ie_BlkCol; |
| /////////////////////////////////////////////////////////// |
| SIE_dirMvScale ie_mvScale; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD[19]; |
| /////////////////////////////////////////////////////////// |
| SIE_HCTX4x4 ie_MbPMV; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64PIC ie_PIC; |
| /////////////////////////////////////////////////////////// |
| } SIE_dirMvCTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 dirMvCTX_drvrd(SIE_dirMvCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 dirMvCTX_drvwr(SIE_dirMvCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void dirMvCTX_reset(SIE_dirMvCTX *p); |
| SIGN32 dirMvCTX_cmp (SIE_dirMvCTX *p, SIE_dirMvCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define dirMvCTX_check(p,pie,pfx,hLOG) dirMvCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define dirMvCTX_print(p, pfx,hLOG) dirMvCTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: dirMvCTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE vcMsgCTX biu (4,4) |
| /// ### |
| /// * RF64 context for the vcMsg extension |
| /// * [0:63] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 MB |
| /// $RF64MB MB REG |
| /// ### |
| /// * 64b macroblock-level parameter |
| /// * [64:447] |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 RSVD0 |
| /// $LUT64b RSVD0 REG [6] |
| /// ### |
| /// * padding to align block-level context |
| /// * [448:511] |
| /// ### |
| /// @ 0x00038 (P) |
| /// # 0x00038 blkX |
| /// $FCTX blkX REG |
| /// ### |
| /// * Motion information context of current partition |
| /// * [512:2047] |
| /// ### |
| /// @ 0x00040 (P) |
| /// # 0x00040 RSVD |
| /// $LUT64b RSVD REG [24] |
| /// ### |
| /// * padding to 2048-bit boundary |
| /// * [2048:4095] |
| /// ### |
| /// @ 0x00100 (P) |
| /// # 0x00100 PIC |
| /// $RF64PIC PIC REG |
| /// ### |
| /// * Picture-level Parameters for ALU64 extensions. |
| /// * End vcMsgCTX |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 512B, bits: 4096b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_vcMsgCTX |
| #define h_vcMsgCTX (){} |
| |
| #define RA_vcMsgCTX_MB 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_vcMsgCTX_RSVD0 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_vcMsgCTX_blkX 0x0038 |
| /////////////////////////////////////////////////////////// |
| #define RA_vcMsgCTX_RSVD 0x0040 |
| /////////////////////////////////////////////////////////// |
| #define RA_vcMsgCTX_PIC 0x0100 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_vcMsgCTX { |
| /////////////////////////////////////////////////////////// |
| SIE_RF64MB ie_MB; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD0[6]; |
| /////////////////////////////////////////////////////////// |
| SIE_FCTX ie_blkX; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD[24]; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64PIC ie_PIC; |
| /////////////////////////////////////////////////////////// |
| } SIE_vcMsgCTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 vcMsgCTX_drvrd(SIE_vcMsgCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 vcMsgCTX_drvwr(SIE_vcMsgCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void vcMsgCTX_reset(SIE_vcMsgCTX *p); |
| SIGN32 vcMsgCTX_cmp (SIE_vcMsgCTX *p, SIE_vcMsgCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define vcMsgCTX_check(p,pie,pfx,hLOG) vcMsgCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define vcMsgCTX_print(p, pfx,hLOG) vcMsgCTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: vcMsgCTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE vldCTX biu (4,4) |
| /// ### |
| /// * RF64 context for vld |
| /// * [0:63] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 MB |
| /// $RF64MB MB REG |
| /// ### |
| /// * Macroblock-level information; reprogrammed by FIGO at the start of every macroblock |
| /// * [64:2047] |
| /// ### |
| /// @ 0x00008 (P) |
| /// # 0x00008 RSVD |
| /// $LUT64b RSVD REG [31] |
| /// ### |
| /// * padding to 2048-bit boundary |
| /// * [2048:4095] |
| /// ### |
| /// @ 0x00100 (P) |
| /// # 0x00100 PIC |
| /// $RF64PIC PIC REG |
| /// ### |
| /// * Picture-level Parameters for ALU64 extensions. |
| /// * End vldCTX |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 512B, bits: 4096b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_vldCTX |
| #define h_vldCTX (){} |
| |
| #define RA_vldCTX_MB 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_vldCTX_RSVD 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_vldCTX_PIC 0x0100 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_vldCTX { |
| /////////////////////////////////////////////////////////// |
| SIE_RF64MB ie_MB; |
| /////////////////////////////////////////////////////////// |
| SIE_LUT64b ie_RSVD[31]; |
| /////////////////////////////////////////////////////////// |
| SIE_RF64PIC ie_PIC; |
| /////////////////////////////////////////////////////////// |
| } SIE_vldCTX; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 vldCTX_drvrd(SIE_vldCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 vldCTX_drvwr(SIE_vldCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void vldCTX_reset(SIE_vldCTX *p); |
| SIGN32 vldCTX_cmp (SIE_vldCTX *p, SIE_vldCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define vldCTX_check(p,pie,pfx,hLOG) vldCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define vldCTX_print(p, pfx,hLOG) vldCTX_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: vldCTX |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE ClkRstBiu biu (4,4) |
| /// ### |
| /// * Common Biu Unit used for block level reset and clock gating control |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 CRCtl (P) |
| /// ### |
| /// * Clock Reset Control Register |
| /// ### |
| /// %unsigned 1 rst 0x1 |
| /// ### |
| /// * Software reset. The reset signal is active low. |
| /// * 0 -> the block will be under reset. |
| /// * 1-> the block will be out of reset. |
| /// ### |
| /// %unsigned 1 swClk_en 0x1 |
| /// ### |
| /// * Software controlled clock enable. |
| /// * 0 -> The corresponding block will be disabled (gated) |
| /// * 1 -> The corresponding clock will be enabled (ungated) |
| /// ### |
| /// %unsigned 1 dyCG_en 0x1 |
| /// ### |
| /// * This is used to control (enalbe/disable) the HW self dynamic clock gating unit. |
| /// * 0 -> the dynamic clock gating will be disabled (the clock can not be turned off by dynamic clock gating unit). |
| /// * 1 -> the dynamic clock gating will be enabled (the clock can be dynamically turned on/off by the dynamic clock control unit). |
| /// * Here is the glue logic to generate the block level clock enable signal. |
| /// * ClkEn = swClk_en & (~dyCG_en | dyClk_en). |
| /// * swClk_en and dyCG_en are from this biu, and dyClk_en is the signal generated by the dynamic clock control unit. |
| /// * End of ClkRstBiu |
| /// ### |
| /// %% 29 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 3b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_ClkRstBiu |
| #define h_ClkRstBiu (){} |
| |
| #define RA_ClkRstBiu_CRCtl 0x0000 |
| |
| #define BA_ClkRstBiu_CRCtl_rst 0x0000 |
| #define B16ClkRstBiu_CRCtl_rst 0x0000 |
| #define LSb32ClkRstBiu_CRCtl_rst 0 |
| #define LSb16ClkRstBiu_CRCtl_rst 0 |
| #define bClkRstBiu_CRCtl_rst 1 |
| #define MSK32ClkRstBiu_CRCtl_rst 0x00000001 |
| |
| #define BA_ClkRstBiu_CRCtl_swClk_en 0x0000 |
| #define B16ClkRstBiu_CRCtl_swClk_en 0x0000 |
| #define LSb32ClkRstBiu_CRCtl_swClk_en 1 |
| #define LSb16ClkRstBiu_CRCtl_swClk_en 1 |
| #define bClkRstBiu_CRCtl_swClk_en 1 |
| #define MSK32ClkRstBiu_CRCtl_swClk_en 0x00000002 |
| |
| #define BA_ClkRstBiu_CRCtl_dyCG_en 0x0000 |
| #define B16ClkRstBiu_CRCtl_dyCG_en 0x0000 |
| #define LSb32ClkRstBiu_CRCtl_dyCG_en 2 |
| #define LSb16ClkRstBiu_CRCtl_dyCG_en 2 |
| #define bClkRstBiu_CRCtl_dyCG_en 1 |
| #define MSK32ClkRstBiu_CRCtl_dyCG_en 0x00000004 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_ClkRstBiu { |
| /////////////////////////////////////////////////////////// |
| #define GET32ClkRstBiu_CRCtl_rst(r32) _BFGET_(r32, 0, 0) |
| #define SET32ClkRstBiu_CRCtl_rst(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16ClkRstBiu_CRCtl_rst(r16) _BFGET_(r16, 0, 0) |
| #define SET16ClkRstBiu_CRCtl_rst(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32ClkRstBiu_CRCtl_swClk_en(r32) _BFGET_(r32, 1, 1) |
| #define SET32ClkRstBiu_CRCtl_swClk_en(r32,v) _BFSET_(r32, 1, 1,v) |
| #define GET16ClkRstBiu_CRCtl_swClk_en(r16) _BFGET_(r16, 1, 1) |
| #define SET16ClkRstBiu_CRCtl_swClk_en(r16,v) _BFSET_(r16, 1, 1,v) |
| |
| #define GET32ClkRstBiu_CRCtl_dyCG_en(r32) _BFGET_(r32, 2, 2) |
| #define SET32ClkRstBiu_CRCtl_dyCG_en(r32,v) _BFSET_(r32, 2, 2,v) |
| #define GET16ClkRstBiu_CRCtl_dyCG_en(r16) _BFGET_(r16, 2, 2) |
| #define SET16ClkRstBiu_CRCtl_dyCG_en(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define w32ClkRstBiu_CRCtl {\ |
| UNSG32 uCRCtl_rst : 1;\ |
| UNSG32 uCRCtl_swClk_en : 1;\ |
| UNSG32 uCRCtl_dyCG_en : 1;\ |
| UNSG32 RSVDx0_b3 : 29;\ |
| } |
| union { UNSG32 u32ClkRstBiu_CRCtl; |
| struct w32ClkRstBiu_CRCtl; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_ClkRstBiu; |
| |
| typedef union T32ClkRstBiu_CRCtl |
| { UNSG32 u32; |
| struct w32ClkRstBiu_CRCtl; |
| } T32ClkRstBiu_CRCtl; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TClkRstBiu_CRCtl |
| { UNSG32 u32[1]; |
| struct { |
| struct w32ClkRstBiu_CRCtl; |
| }; |
| } TClkRstBiu_CRCtl; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 ClkRstBiu_drvrd(SIE_ClkRstBiu *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 ClkRstBiu_drvwr(SIE_ClkRstBiu *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void ClkRstBiu_reset(SIE_ClkRstBiu *p); |
| SIGN32 ClkRstBiu_cmp (SIE_ClkRstBiu *p, SIE_ClkRstBiu *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define ClkRstBiu_check(p,pie,pfx,hLOG) ClkRstBiu_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define ClkRstBiu_print(p, pfx,hLOG) ClkRstBiu_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: ClkRstBiu |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE CacheCFG (4,4) |
| /// ### |
| /// * On-the-fly messag to configure vCache. |
| /// * [00:31] |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// %unsigned 32 val |
| /// ### |
| /// * 32b configuration data |
| /// * [32:63] |
| /// ### |
| /// @ 0x00004 (P) |
| /// %unsigned 24 ptr |
| /// ### |
| /// * Configuration 32b word-address: |
| /// * equivalent as AHB programming byte address b[23:0] |
| /// ### |
| /// %unsigned 2 padding |
| /// ### |
| /// * Don't care for vCache configuration messages |
| /// ### |
| /// %unsigned 6 op |
| /// : CFG 0x3F |
| /// ### |
| /// * vCache configuration mesage |
| /// * End of CacheCFG |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_CacheCFG |
| #define h_CacheCFG (){} |
| |
| #define BA_CacheCFG_val 0x0000 |
| #define B16CacheCFG_val 0x0000 |
| #define LSb32CacheCFG_val 0 |
| #define LSb16CacheCFG_val 0 |
| #define bCacheCFG_val 32 |
| #define MSK32CacheCFG_val 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| |
| #define BA_CacheCFG_ptr 0x0004 |
| #define B16CacheCFG_ptr 0x0004 |
| #define LSb32CacheCFG_ptr 0 |
| #define LSb16CacheCFG_ptr 0 |
| #define bCacheCFG_ptr 24 |
| #define MSK32CacheCFG_ptr 0x00FFFFFF |
| |
| #define BA_CacheCFG_padding 0x0007 |
| #define B16CacheCFG_padding 0x0006 |
| #define LSb32CacheCFG_padding 24 |
| #define LSb16CacheCFG_padding 8 |
| #define bCacheCFG_padding 2 |
| #define MSK32CacheCFG_padding 0x03000000 |
| |
| #define BA_CacheCFG_op 0x0007 |
| #define B16CacheCFG_op 0x0006 |
| #define LSb32CacheCFG_op 26 |
| #define LSb16CacheCFG_op 10 |
| #define bCacheCFG_op 6 |
| #define MSK32CacheCFG_op 0xFC000000 |
| #define CacheCFG_op_CFG 0x3F |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_CacheCFG { |
| /////////////////////////////////////////////////////////// |
| #define GET32CacheCFG_val(r32) _BFGET_(r32,31, 0) |
| #define SET32CacheCFG_val(r32,v) _BFSET_(r32,31, 0,v) |
| |
| UNSG32 u_val : 32; |
| /////////////////////////////////////////////////////////// |
| #define GET32CacheCFG_ptr(r32) _BFGET_(r32,23, 0) |
| #define SET32CacheCFG_ptr(r32,v) _BFSET_(r32,23, 0,v) |
| |
| #define GET32CacheCFG_padding(r32) _BFGET_(r32,25,24) |
| #define SET32CacheCFG_padding(r32,v) _BFSET_(r32,25,24,v) |
| #define GET16CacheCFG_padding(r16) _BFGET_(r16, 9, 8) |
| #define SET16CacheCFG_padding(r16,v) _BFSET_(r16, 9, 8,v) |
| |
| #define GET32CacheCFG_op(r32) _BFGET_(r32,31,26) |
| #define SET32CacheCFG_op(r32,v) _BFSET_(r32,31,26,v) |
| #define GET16CacheCFG_op(r16) _BFGET_(r16,15,10) |
| #define SET16CacheCFG_op(r16,v) _BFSET_(r16,15,10,v) |
| |
| UNSG32 u_ptr : 24; |
| UNSG32 u_padding : 2; |
| UNSG32 u_op : 6; |
| /////////////////////////////////////////////////////////// |
| } SIE_CacheCFG; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 CacheCFG_drvrd(SIE_CacheCFG *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 CacheCFG_drvwr(SIE_CacheCFG *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void CacheCFG_reset(SIE_CacheCFG *p); |
| SIGN32 CacheCFG_cmp (SIE_CacheCFG *p, SIE_CacheCFG *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define CacheCFG_check(p,pie,pfx,hLOG) CacheCFG_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define CacheCFG_print(p, pfx,hLOG) CacheCFG_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: CacheCFG |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE TAG_ADDR (4,4) |
| /// ### |
| /// * Tag ram address format |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 val (RW) |
| /// %unsigned 2 way |
| /// %unsigned 2 xtile_l |
| /// %unsigned 3 ytile_l |
| /// %unsigned 1 uv |
| /// %% 24 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 8b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_TAG_ADDR |
| #define h_TAG_ADDR (){} |
| |
| #define RA_TAG_ADDR_val 0x0000 |
| |
| #define BA_TAG_ADDR_val_way 0x0000 |
| #define B16TAG_ADDR_val_way 0x0000 |
| #define LSb32TAG_ADDR_val_way 0 |
| #define LSb16TAG_ADDR_val_way 0 |
| #define bTAG_ADDR_val_way 2 |
| #define MSK32TAG_ADDR_val_way 0x00000003 |
| |
| #define BA_TAG_ADDR_val_xtile_l 0x0000 |
| #define B16TAG_ADDR_val_xtile_l 0x0000 |
| #define LSb32TAG_ADDR_val_xtile_l 2 |
| #define LSb16TAG_ADDR_val_xtile_l 2 |
| #define bTAG_ADDR_val_xtile_l 2 |
| #define MSK32TAG_ADDR_val_xtile_l 0x0000000C |
| |
| #define BA_TAG_ADDR_val_ytile_l 0x0000 |
| #define B16TAG_ADDR_val_ytile_l 0x0000 |
| #define LSb32TAG_ADDR_val_ytile_l 4 |
| #define LSb16TAG_ADDR_val_ytile_l 4 |
| #define bTAG_ADDR_val_ytile_l 3 |
| #define MSK32TAG_ADDR_val_ytile_l 0x00000070 |
| |
| #define BA_TAG_ADDR_val_uv 0x0000 |
| #define B16TAG_ADDR_val_uv 0x0000 |
| #define LSb32TAG_ADDR_val_uv 7 |
| #define LSb16TAG_ADDR_val_uv 7 |
| #define bTAG_ADDR_val_uv 1 |
| #define MSK32TAG_ADDR_val_uv 0x00000080 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_TAG_ADDR { |
| /////////////////////////////////////////////////////////// |
| #define GET32TAG_ADDR_val_way(r32) _BFGET_(r32, 1, 0) |
| #define SET32TAG_ADDR_val_way(r32,v) _BFSET_(r32, 1, 0,v) |
| #define GET16TAG_ADDR_val_way(r16) _BFGET_(r16, 1, 0) |
| #define SET16TAG_ADDR_val_way(r16,v) _BFSET_(r16, 1, 0,v) |
| |
| #define GET32TAG_ADDR_val_xtile_l(r32) _BFGET_(r32, 3, 2) |
| #define SET32TAG_ADDR_val_xtile_l(r32,v) _BFSET_(r32, 3, 2,v) |
| #define GET16TAG_ADDR_val_xtile_l(r16) _BFGET_(r16, 3, 2) |
| #define SET16TAG_ADDR_val_xtile_l(r16,v) _BFSET_(r16, 3, 2,v) |
| |
| #define GET32TAG_ADDR_val_ytile_l(r32) _BFGET_(r32, 6, 4) |
| #define SET32TAG_ADDR_val_ytile_l(r32,v) _BFSET_(r32, 6, 4,v) |
| #define GET16TAG_ADDR_val_ytile_l(r16) _BFGET_(r16, 6, 4) |
| #define SET16TAG_ADDR_val_ytile_l(r16,v) _BFSET_(r16, 6, 4,v) |
| |
| #define GET32TAG_ADDR_val_uv(r32) _BFGET_(r32, 7, 7) |
| #define SET32TAG_ADDR_val_uv(r32,v) _BFSET_(r32, 7, 7,v) |
| #define GET16TAG_ADDR_val_uv(r16) _BFGET_(r16, 7, 7) |
| #define SET16TAG_ADDR_val_uv(r16,v) _BFSET_(r16, 7, 7,v) |
| |
| #define w32TAG_ADDR_val {\ |
| UNSG32 uval_way : 2;\ |
| UNSG32 uval_xtile_l : 2;\ |
| UNSG32 uval_ytile_l : 3;\ |
| UNSG32 uval_uv : 1;\ |
| UNSG32 RSVDx0_b8 : 24;\ |
| } |
| union { UNSG32 u32TAG_ADDR_val; |
| struct w32TAG_ADDR_val; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_TAG_ADDR; |
| |
| typedef union T32TAG_ADDR_val |
| { UNSG32 u32; |
| struct w32TAG_ADDR_val; |
| } T32TAG_ADDR_val; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TTAG_ADDR_val |
| { UNSG32 u32[1]; |
| struct { |
| struct w32TAG_ADDR_val; |
| }; |
| } TTAG_ADDR_val; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 TAG_ADDR_drvrd(SIE_TAG_ADDR *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 TAG_ADDR_drvwr(SIE_TAG_ADDR *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void TAG_ADDR_reset(SIE_TAG_ADDR *p); |
| SIGN32 TAG_ADDR_cmp (SIE_TAG_ADDR *p, SIE_TAG_ADDR *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define TAG_ADDR_check(p,pie,pfx,hLOG) TAG_ADDR_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define TAG_ADDR_print(p, pfx,hLOG) TAG_ADDR_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: TAG_ADDR |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE TILE_CMD (4,4) |
| /// ### |
| /// * TileCmdQ format |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 entry (RW) |
| /// %unsigned 2 way |
| /// %unsigned 2 xtile_l |
| /// %unsigned 3 ytile_l |
| /// %unsigned 1 uv |
| /// %unsigned 1 xtile_h |
| /// %unsigned 3 ytile_h |
| /// %unsigned 1 cache_hit |
| /// %unsigned 1 out_region |
| /// ### |
| /// * Extra tile padding for DRAM burst alignment |
| /// ### |
| /// %unsigned 1 last_cmd |
| /// %% 17 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 15b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_TILE_CMD |
| #define h_TILE_CMD (){} |
| |
| #define RA_TILE_CMD_entry 0x0000 |
| |
| #define BA_TILE_CMD_entry_way 0x0000 |
| #define B16TILE_CMD_entry_way 0x0000 |
| #define LSb32TILE_CMD_entry_way 0 |
| #define LSb16TILE_CMD_entry_way 0 |
| #define bTILE_CMD_entry_way 2 |
| #define MSK32TILE_CMD_entry_way 0x00000003 |
| |
| #define BA_TILE_CMD_entry_xtile_l 0x0000 |
| #define B16TILE_CMD_entry_xtile_l 0x0000 |
| #define LSb32TILE_CMD_entry_xtile_l 2 |
| #define LSb16TILE_CMD_entry_xtile_l 2 |
| #define bTILE_CMD_entry_xtile_l 2 |
| #define MSK32TILE_CMD_entry_xtile_l 0x0000000C |
| |
| #define BA_TILE_CMD_entry_ytile_l 0x0000 |
| #define B16TILE_CMD_entry_ytile_l 0x0000 |
| #define LSb32TILE_CMD_entry_ytile_l 4 |
| #define LSb16TILE_CMD_entry_ytile_l 4 |
| #define bTILE_CMD_entry_ytile_l 3 |
| #define MSK32TILE_CMD_entry_ytile_l 0x00000070 |
| |
| #define BA_TILE_CMD_entry_uv 0x0000 |
| #define B16TILE_CMD_entry_uv 0x0000 |
| #define LSb32TILE_CMD_entry_uv 7 |
| #define LSb16TILE_CMD_entry_uv 7 |
| #define bTILE_CMD_entry_uv 1 |
| #define MSK32TILE_CMD_entry_uv 0x00000080 |
| |
| #define BA_TILE_CMD_entry_xtile_h 0x0001 |
| #define B16TILE_CMD_entry_xtile_h 0x0000 |
| #define LSb32TILE_CMD_entry_xtile_h 8 |
| #define LSb16TILE_CMD_entry_xtile_h 8 |
| #define bTILE_CMD_entry_xtile_h 1 |
| #define MSK32TILE_CMD_entry_xtile_h 0x00000100 |
| |
| #define BA_TILE_CMD_entry_ytile_h 0x0001 |
| #define B16TILE_CMD_entry_ytile_h 0x0000 |
| #define LSb32TILE_CMD_entry_ytile_h 9 |
| #define LSb16TILE_CMD_entry_ytile_h 9 |
| #define bTILE_CMD_entry_ytile_h 3 |
| #define MSK32TILE_CMD_entry_ytile_h 0x00000E00 |
| |
| #define BA_TILE_CMD_entry_cache_hit 0x0001 |
| #define B16TILE_CMD_entry_cache_hit 0x0000 |
| #define LSb32TILE_CMD_entry_cache_hit 12 |
| #define LSb16TILE_CMD_entry_cache_hit 12 |
| #define bTILE_CMD_entry_cache_hit 1 |
| #define MSK32TILE_CMD_entry_cache_hit 0x00001000 |
| |
| #define BA_TILE_CMD_entry_out_region 0x0001 |
| #define B16TILE_CMD_entry_out_region 0x0000 |
| #define LSb32TILE_CMD_entry_out_region 13 |
| #define LSb16TILE_CMD_entry_out_region 13 |
| #define bTILE_CMD_entry_out_region 1 |
| #define MSK32TILE_CMD_entry_out_region 0x00002000 |
| |
| #define BA_TILE_CMD_entry_last_cmd 0x0001 |
| #define B16TILE_CMD_entry_last_cmd 0x0000 |
| #define LSb32TILE_CMD_entry_last_cmd 14 |
| #define LSb16TILE_CMD_entry_last_cmd 14 |
| #define bTILE_CMD_entry_last_cmd 1 |
| #define MSK32TILE_CMD_entry_last_cmd 0x00004000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_TILE_CMD { |
| /////////////////////////////////////////////////////////// |
| #define GET32TILE_CMD_entry_way(r32) _BFGET_(r32, 1, 0) |
| #define SET32TILE_CMD_entry_way(r32,v) _BFSET_(r32, 1, 0,v) |
| #define GET16TILE_CMD_entry_way(r16) _BFGET_(r16, 1, 0) |
| #define SET16TILE_CMD_entry_way(r16,v) _BFSET_(r16, 1, 0,v) |
| |
| #define GET32TILE_CMD_entry_xtile_l(r32) _BFGET_(r32, 3, 2) |
| #define SET32TILE_CMD_entry_xtile_l(r32,v) _BFSET_(r32, 3, 2,v) |
| #define GET16TILE_CMD_entry_xtile_l(r16) _BFGET_(r16, 3, 2) |
| #define SET16TILE_CMD_entry_xtile_l(r16,v) _BFSET_(r16, 3, 2,v) |
| |
| #define GET32TILE_CMD_entry_ytile_l(r32) _BFGET_(r32, 6, 4) |
| #define SET32TILE_CMD_entry_ytile_l(r32,v) _BFSET_(r32, 6, 4,v) |
| #define GET16TILE_CMD_entry_ytile_l(r16) _BFGET_(r16, 6, 4) |
| #define SET16TILE_CMD_entry_ytile_l(r16,v) _BFSET_(r16, 6, 4,v) |
| |
| #define GET32TILE_CMD_entry_uv(r32) _BFGET_(r32, 7, 7) |
| #define SET32TILE_CMD_entry_uv(r32,v) _BFSET_(r32, 7, 7,v) |
| #define GET16TILE_CMD_entry_uv(r16) _BFGET_(r16, 7, 7) |
| #define SET16TILE_CMD_entry_uv(r16,v) _BFSET_(r16, 7, 7,v) |
| |
| #define GET32TILE_CMD_entry_xtile_h(r32) _BFGET_(r32, 8, 8) |
| #define SET32TILE_CMD_entry_xtile_h(r32,v) _BFSET_(r32, 8, 8,v) |
| #define GET16TILE_CMD_entry_xtile_h(r16) _BFGET_(r16, 8, 8) |
| #define SET16TILE_CMD_entry_xtile_h(r16,v) _BFSET_(r16, 8, 8,v) |
| |
| #define GET32TILE_CMD_entry_ytile_h(r32) _BFGET_(r32,11, 9) |
| #define SET32TILE_CMD_entry_ytile_h(r32,v) _BFSET_(r32,11, 9,v) |
| #define GET16TILE_CMD_entry_ytile_h(r16) _BFGET_(r16,11, 9) |
| #define SET16TILE_CMD_entry_ytile_h(r16,v) _BFSET_(r16,11, 9,v) |
| |
| #define GET32TILE_CMD_entry_cache_hit(r32) _BFGET_(r32,12,12) |
| #define SET32TILE_CMD_entry_cache_hit(r32,v) _BFSET_(r32,12,12,v) |
| #define GET16TILE_CMD_entry_cache_hit(r16) _BFGET_(r16,12,12) |
| #define SET16TILE_CMD_entry_cache_hit(r16,v) _BFSET_(r16,12,12,v) |
| |
| #define GET32TILE_CMD_entry_out_region(r32) _BFGET_(r32,13,13) |
| #define SET32TILE_CMD_entry_out_region(r32,v) _BFSET_(r32,13,13,v) |
| #define GET16TILE_CMD_entry_out_region(r16) _BFGET_(r16,13,13) |
| #define SET16TILE_CMD_entry_out_region(r16,v) _BFSET_(r16,13,13,v) |
| |
| #define GET32TILE_CMD_entry_last_cmd(r32) _BFGET_(r32,14,14) |
| #define SET32TILE_CMD_entry_last_cmd(r32,v) _BFSET_(r32,14,14,v) |
| #define GET16TILE_CMD_entry_last_cmd(r16) _BFGET_(r16,14,14) |
| #define SET16TILE_CMD_entry_last_cmd(r16,v) _BFSET_(r16,14,14,v) |
| |
| #define w32TILE_CMD_entry {\ |
| UNSG32 uentry_way : 2;\ |
| UNSG32 uentry_xtile_l : 2;\ |
| UNSG32 uentry_ytile_l : 3;\ |
| UNSG32 uentry_uv : 1;\ |
| UNSG32 uentry_xtile_h : 1;\ |
| UNSG32 uentry_ytile_h : 3;\ |
| UNSG32 uentry_cache_hit : 1;\ |
| UNSG32 uentry_out_region : 1;\ |
| UNSG32 uentry_last_cmd : 1;\ |
| UNSG32 RSVDx0_b15 : 17;\ |
| } |
| union { UNSG32 u32TILE_CMD_entry; |
| struct w32TILE_CMD_entry; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_TILE_CMD; |
| |
| typedef union T32TILE_CMD_entry |
| { UNSG32 u32; |
| struct w32TILE_CMD_entry; |
| } T32TILE_CMD_entry; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TTILE_CMD_entry |
| { UNSG32 u32[1]; |
| struct { |
| struct w32TILE_CMD_entry; |
| }; |
| } TTILE_CMD_entry; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 TILE_CMD_drvrd(SIE_TILE_CMD *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 TILE_CMD_drvwr(SIE_TILE_CMD *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void TILE_CMD_reset(SIE_TILE_CMD *p); |
| SIGN32 TILE_CMD_cmp (SIE_TILE_CMD *p, SIE_TILE_CMD *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define TILE_CMD_check(p,pie,pfx,hLOG) TILE_CMD_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define TILE_CMD_print(p, pfx,hLOG) TILE_CMD_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: TILE_CMD |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE TAG (4,4) |
| /// ### |
| /// * TAG sram entry, 20-bit wide with msb as dirty bit, support pict size up to 4Kx4K |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 entry (RW) |
| /// %unsigned 7 xtile 0x0 |
| /// %unsigned 7 ytile 0x0 |
| /// %unsigned 5 rbid 0x0 |
| /// %unsigned 1 valid 0x0 |
| /// %% 12 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 20b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_TAG |
| #define h_TAG (){} |
| |
| #define RA_TAG_entry 0x0000 |
| |
| #define BA_TAG_entry_xtile 0x0000 |
| #define B16TAG_entry_xtile 0x0000 |
| #define LSb32TAG_entry_xtile 0 |
| #define LSb16TAG_entry_xtile 0 |
| #define bTAG_entry_xtile 7 |
| #define MSK32TAG_entry_xtile 0x0000007F |
| |
| #define BA_TAG_entry_ytile 0x0000 |
| #define B16TAG_entry_ytile 0x0000 |
| #define LSb32TAG_entry_ytile 7 |
| #define LSb16TAG_entry_ytile 7 |
| #define bTAG_entry_ytile 7 |
| #define MSK32TAG_entry_ytile 0x00003F80 |
| |
| #define BA_TAG_entry_rbid 0x0001 |
| #define B16TAG_entry_rbid 0x0000 |
| #define LSb32TAG_entry_rbid 14 |
| #define LSb16TAG_entry_rbid 14 |
| #define bTAG_entry_rbid 5 |
| #define MSK32TAG_entry_rbid 0x0007C000 |
| |
| #define BA_TAG_entry_valid 0x0002 |
| #define B16TAG_entry_valid 0x0002 |
| #define LSb32TAG_entry_valid 19 |
| #define LSb16TAG_entry_valid 3 |
| #define bTAG_entry_valid 1 |
| #define MSK32TAG_entry_valid 0x00080000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_TAG { |
| /////////////////////////////////////////////////////////// |
| #define GET32TAG_entry_xtile(r32) _BFGET_(r32, 6, 0) |
| #define SET32TAG_entry_xtile(r32,v) _BFSET_(r32, 6, 0,v) |
| #define GET16TAG_entry_xtile(r16) _BFGET_(r16, 6, 0) |
| #define SET16TAG_entry_xtile(r16,v) _BFSET_(r16, 6, 0,v) |
| |
| #define GET32TAG_entry_ytile(r32) _BFGET_(r32,13, 7) |
| #define SET32TAG_entry_ytile(r32,v) _BFSET_(r32,13, 7,v) |
| #define GET16TAG_entry_ytile(r16) _BFGET_(r16,13, 7) |
| #define SET16TAG_entry_ytile(r16,v) _BFSET_(r16,13, 7,v) |
| |
| #define GET32TAG_entry_rbid(r32) _BFGET_(r32,18,14) |
| #define SET32TAG_entry_rbid(r32,v) _BFSET_(r32,18,14,v) |
| |
| #define GET32TAG_entry_valid(r32) _BFGET_(r32,19,19) |
| #define SET32TAG_entry_valid(r32,v) _BFSET_(r32,19,19,v) |
| #define GET16TAG_entry_valid(r16) _BFGET_(r16, 3, 3) |
| #define SET16TAG_entry_valid(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define w32TAG_entry {\ |
| UNSG32 uentry_xtile : 7;\ |
| UNSG32 uentry_ytile : 7;\ |
| UNSG32 uentry_rbid : 5;\ |
| UNSG32 uentry_valid : 1;\ |
| UNSG32 RSVDx0_b20 : 12;\ |
| } |
| union { UNSG32 u32TAG_entry; |
| struct w32TAG_entry; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_TAG; |
| |
| typedef union T32TAG_entry |
| { UNSG32 u32; |
| struct w32TAG_entry; |
| } T32TAG_entry; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TTAG_entry |
| { UNSG32 u32[1]; |
| struct { |
| struct w32TAG_entry; |
| }; |
| } TTAG_entry; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 TAG_drvrd(SIE_TAG *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 TAG_drvwr(SIE_TAG *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void TAG_reset(SIE_TAG *p); |
| SIGN32 TAG_cmp (SIE_TAG *p, SIE_TAG *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define TAG_check(p,pie,pfx,hLOG) TAG_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define TAG_print(p, pfx,hLOG) TAG_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: TAG |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE TAG_SRAM (4,4) |
| /// ### |
| /// * TAG sram array |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 word |
| /// $TAG word REG [192] |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 768B, bits: 3840b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_TAG_SRAM |
| #define h_TAG_SRAM (){} |
| |
| #define RA_TAG_SRAM_word 0x0000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_TAG_SRAM { |
| /////////////////////////////////////////////////////////// |
| SIE_TAG ie_word[192]; |
| /////////////////////////////////////////////////////////// |
| } SIE_TAG_SRAM; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 TAG_SRAM_drvrd(SIE_TAG_SRAM *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 TAG_SRAM_drvwr(SIE_TAG_SRAM *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void TAG_SRAM_reset(SIE_TAG_SRAM *p); |
| SIGN32 TAG_SRAM_cmp (SIE_TAG_SRAM *p, SIE_TAG_SRAM *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define TAG_SRAM_check(p,pie,pfx,hLOG) TAG_SRAM_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define TAG_SRAM_print(p, pfx,hLOG) TAG_SRAM_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: TAG_SRAM |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE TRANS_DESC (4,4) |
| /// ### |
| /// * Transfer Descriptor Format Definition |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 entry (P) |
| /// %unsigned 4 stride 0x0 |
| /// ### |
| /// * Address stride of the output refB; 4x4 block based |
| /// ### |
| /// %unsigned 1 sem_chk 0x0 |
| /// ### |
| /// * 0: bypass semaphore check; 1: semaphore check needed |
| /// ### |
| /// %unsigned 1 sem_upd 0x0 |
| /// ### |
| /// * 0: bypass semaphore update; 1: semaphore update needed |
| /// ### |
| /// %unsigned 16 addr 0x0 |
| /// ### |
| /// * Address offset of the output refB; 4x4 block based, |
| /// * supporting up to 2K of 128-bit words |
| /// ### |
| /// %unsigned 6 sem_id 0x13 |
| /// ### |
| /// * Semaphore ID for the specified semaphore operation |
| /// * So far only used for encoder |
| /// ### |
| /// %% 4 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 28b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_TRANS_DESC |
| #define h_TRANS_DESC (){} |
| |
| #define RA_TRANS_DESC_entry 0x0000 |
| |
| #define BA_TRANS_DESC_entry_stride 0x0000 |
| #define B16TRANS_DESC_entry_stride 0x0000 |
| #define LSb32TRANS_DESC_entry_stride 0 |
| #define LSb16TRANS_DESC_entry_stride 0 |
| #define bTRANS_DESC_entry_stride 4 |
| #define MSK32TRANS_DESC_entry_stride 0x0000000F |
| |
| #define BA_TRANS_DESC_entry_sem_chk 0x0000 |
| #define B16TRANS_DESC_entry_sem_chk 0x0000 |
| #define LSb32TRANS_DESC_entry_sem_chk 4 |
| #define LSb16TRANS_DESC_entry_sem_chk 4 |
| #define bTRANS_DESC_entry_sem_chk 1 |
| #define MSK32TRANS_DESC_entry_sem_chk 0x00000010 |
| |
| #define BA_TRANS_DESC_entry_sem_upd 0x0000 |
| #define B16TRANS_DESC_entry_sem_upd 0x0000 |
| #define LSb32TRANS_DESC_entry_sem_upd 5 |
| #define LSb16TRANS_DESC_entry_sem_upd 5 |
| #define bTRANS_DESC_entry_sem_upd 1 |
| #define MSK32TRANS_DESC_entry_sem_upd 0x00000020 |
| |
| #define BA_TRANS_DESC_entry_addr 0x0000 |
| #define B16TRANS_DESC_entry_addr 0x0000 |
| #define LSb32TRANS_DESC_entry_addr 6 |
| #define LSb16TRANS_DESC_entry_addr 6 |
| #define bTRANS_DESC_entry_addr 16 |
| #define MSK32TRANS_DESC_entry_addr 0x003FFFC0 |
| |
| #define BA_TRANS_DESC_entry_sem_id 0x0002 |
| #define B16TRANS_DESC_entry_sem_id 0x0002 |
| #define LSb32TRANS_DESC_entry_sem_id 22 |
| #define LSb16TRANS_DESC_entry_sem_id 6 |
| #define bTRANS_DESC_entry_sem_id 6 |
| #define MSK32TRANS_DESC_entry_sem_id 0x0FC00000 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_TRANS_DESC { |
| /////////////////////////////////////////////////////////// |
| #define GET32TRANS_DESC_entry_stride(r32) _BFGET_(r32, 3, 0) |
| #define SET32TRANS_DESC_entry_stride(r32,v) _BFSET_(r32, 3, 0,v) |
| #define GET16TRANS_DESC_entry_stride(r16) _BFGET_(r16, 3, 0) |
| #define SET16TRANS_DESC_entry_stride(r16,v) _BFSET_(r16, 3, 0,v) |
| |
| #define GET32TRANS_DESC_entry_sem_chk(r32) _BFGET_(r32, 4, 4) |
| #define SET32TRANS_DESC_entry_sem_chk(r32,v) _BFSET_(r32, 4, 4,v) |
| #define GET16TRANS_DESC_entry_sem_chk(r16) _BFGET_(r16, 4, 4) |
| #define SET16TRANS_DESC_entry_sem_chk(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define GET32TRANS_DESC_entry_sem_upd(r32) _BFGET_(r32, 5, 5) |
| #define SET32TRANS_DESC_entry_sem_upd(r32,v) _BFSET_(r32, 5, 5,v) |
| #define GET16TRANS_DESC_entry_sem_upd(r16) _BFGET_(r16, 5, 5) |
| #define SET16TRANS_DESC_entry_sem_upd(r16,v) _BFSET_(r16, 5, 5,v) |
| |
| #define GET32TRANS_DESC_entry_addr(r32) _BFGET_(r32,21, 6) |
| #define SET32TRANS_DESC_entry_addr(r32,v) _BFSET_(r32,21, 6,v) |
| |
| #define GET32TRANS_DESC_entry_sem_id(r32) _BFGET_(r32,27,22) |
| #define SET32TRANS_DESC_entry_sem_id(r32,v) _BFSET_(r32,27,22,v) |
| #define GET16TRANS_DESC_entry_sem_id(r16) _BFGET_(r16,11, 6) |
| #define SET16TRANS_DESC_entry_sem_id(r16,v) _BFSET_(r16,11, 6,v) |
| |
| #define w32TRANS_DESC_entry {\ |
| UNSG32 uentry_stride : 4;\ |
| UNSG32 uentry_sem_chk : 1;\ |
| UNSG32 uentry_sem_upd : 1;\ |
| UNSG32 uentry_addr : 16;\ |
| UNSG32 uentry_sem_id : 6;\ |
| UNSG32 RSVDx0_b28 : 4;\ |
| } |
| union { UNSG32 u32TRANS_DESC_entry; |
| struct w32TRANS_DESC_entry; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_TRANS_DESC; |
| |
| typedef union T32TRANS_DESC_entry |
| { UNSG32 u32; |
| struct w32TRANS_DESC_entry; |
| } T32TRANS_DESC_entry; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TTRANS_DESC_entry |
| { UNSG32 u32[1]; |
| struct { |
| struct w32TRANS_DESC_entry; |
| }; |
| } TTRANS_DESC_entry; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 TRANS_DESC_drvrd(SIE_TRANS_DESC *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 TRANS_DESC_drvwr(SIE_TRANS_DESC *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void TRANS_DESC_reset(SIE_TRANS_DESC *p); |
| SIGN32 TRANS_DESC_cmp (SIE_TRANS_DESC *p, SIE_TRANS_DESC *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define TRANS_DESC_check(p,pie,pfx,hLOG) TRANS_DESC_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define TRANS_DESC_print(p, pfx,hLOG) TRANS_DESC_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: TRANS_DESC |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE FRAME_DESC biu (4,4) |
| /// ### |
| /// * Reference frame descriptor format definition |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 entry (P) |
| /// %unsigned 2 fid 0x0 |
| /// ### |
| /// * 0/1: cache-able; fid[0] to be used for way calculation |
| /// * 2: frame not cache-able |
| /// ### |
| /// %unsigned 1 intlRef 0x0 |
| /// ### |
| /// * 0: reference picture is progressive; |
| /// * 1: reference picture is interlaced |
| /// ### |
| /// %unsigned 1 weavedRef 0x0 |
| /// ### |
| /// * 0: raster scan reference picture |
| /// * 1: weaved reference picture |
| /// ### |
| /// %unsigned 1 rangeRed 0x0 |
| /// ### |
| /// * VC-1 range reduction setting for this reference picture |
| /// ### |
| /// %unsigned 5 rsvd 0x0 |
| /// ### |
| /// * Reserved for future use |
| /// ### |
| /// %unsigned 22 addr 0x0 |
| /// ### |
| /// * bits [31:10] of frame buffer base address. |
| /// * Note that bit [11:10] should be 0. (Frame buffer base address should be aligned to 4K bytes.) |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_FRAME_DESC |
| #define h_FRAME_DESC (){} |
| |
| #define RA_FRAME_DESC_entry 0x0000 |
| |
| #define BA_FRAME_DESC_entry_fid 0x0000 |
| #define B16FRAME_DESC_entry_fid 0x0000 |
| #define LSb32FRAME_DESC_entry_fid 0 |
| #define LSb16FRAME_DESC_entry_fid 0 |
| #define bFRAME_DESC_entry_fid 2 |
| #define MSK32FRAME_DESC_entry_fid 0x00000003 |
| |
| #define BA_FRAME_DESC_entry_intlRef 0x0000 |
| #define B16FRAME_DESC_entry_intlRef 0x0000 |
| #define LSb32FRAME_DESC_entry_intlRef 2 |
| #define LSb16FRAME_DESC_entry_intlRef 2 |
| #define bFRAME_DESC_entry_intlRef 1 |
| #define MSK32FRAME_DESC_entry_intlRef 0x00000004 |
| |
| #define BA_FRAME_DESC_entry_weavedRef 0x0000 |
| #define B16FRAME_DESC_entry_weavedRef 0x0000 |
| #define LSb32FRAME_DESC_entry_weavedRef 3 |
| #define LSb16FRAME_DESC_entry_weavedRef 3 |
| #define bFRAME_DESC_entry_weavedRef 1 |
| #define MSK32FRAME_DESC_entry_weavedRef 0x00000008 |
| |
| #define BA_FRAME_DESC_entry_rangeRed 0x0000 |
| #define B16FRAME_DESC_entry_rangeRed 0x0000 |
| #define LSb32FRAME_DESC_entry_rangeRed 4 |
| #define LSb16FRAME_DESC_entry_rangeRed 4 |
| #define bFRAME_DESC_entry_rangeRed 1 |
| #define MSK32FRAME_DESC_entry_rangeRed 0x00000010 |
| |
| #define BA_FRAME_DESC_entry_rsvd 0x0000 |
| #define B16FRAME_DESC_entry_rsvd 0x0000 |
| #define LSb32FRAME_DESC_entry_rsvd 5 |
| #define LSb16FRAME_DESC_entry_rsvd 5 |
| #define bFRAME_DESC_entry_rsvd 5 |
| #define MSK32FRAME_DESC_entry_rsvd 0x000003E0 |
| |
| #define BA_FRAME_DESC_entry_addr 0x0001 |
| #define B16FRAME_DESC_entry_addr 0x0000 |
| #define LSb32FRAME_DESC_entry_addr 10 |
| #define LSb16FRAME_DESC_entry_addr 10 |
| #define bFRAME_DESC_entry_addr 22 |
| #define MSK32FRAME_DESC_entry_addr 0xFFFFFC00 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_FRAME_DESC { |
| /////////////////////////////////////////////////////////// |
| #define GET32FRAME_DESC_entry_fid(r32) _BFGET_(r32, 1, 0) |
| #define SET32FRAME_DESC_entry_fid(r32,v) _BFSET_(r32, 1, 0,v) |
| #define GET16FRAME_DESC_entry_fid(r16) _BFGET_(r16, 1, 0) |
| #define SET16FRAME_DESC_entry_fid(r16,v) _BFSET_(r16, 1, 0,v) |
| |
| #define GET32FRAME_DESC_entry_intlRef(r32) _BFGET_(r32, 2, 2) |
| #define SET32FRAME_DESC_entry_intlRef(r32,v) _BFSET_(r32, 2, 2,v) |
| #define GET16FRAME_DESC_entry_intlRef(r16) _BFGET_(r16, 2, 2) |
| #define SET16FRAME_DESC_entry_intlRef(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define GET32FRAME_DESC_entry_weavedRef(r32) _BFGET_(r32, 3, 3) |
| #define SET32FRAME_DESC_entry_weavedRef(r32,v) _BFSET_(r32, 3, 3,v) |
| #define GET16FRAME_DESC_entry_weavedRef(r16) _BFGET_(r16, 3, 3) |
| #define SET16FRAME_DESC_entry_weavedRef(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32FRAME_DESC_entry_rangeRed(r32) _BFGET_(r32, 4, 4) |
| #define SET32FRAME_DESC_entry_rangeRed(r32,v) _BFSET_(r32, 4, 4,v) |
| #define GET16FRAME_DESC_entry_rangeRed(r16) _BFGET_(r16, 4, 4) |
| #define SET16FRAME_DESC_entry_rangeRed(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define GET32FRAME_DESC_entry_rsvd(r32) _BFGET_(r32, 9, 5) |
| #define SET32FRAME_DESC_entry_rsvd(r32,v) _BFSET_(r32, 9, 5,v) |
| #define GET16FRAME_DESC_entry_rsvd(r16) _BFGET_(r16, 9, 5) |
| #define SET16FRAME_DESC_entry_rsvd(r16,v) _BFSET_(r16, 9, 5,v) |
| |
| #define GET32FRAME_DESC_entry_addr(r32) _BFGET_(r32,31,10) |
| #define SET32FRAME_DESC_entry_addr(r32,v) _BFSET_(r32,31,10,v) |
| |
| #define w32FRAME_DESC_entry {\ |
| UNSG32 uentry_fid : 2;\ |
| UNSG32 uentry_intlRef : 1;\ |
| UNSG32 uentry_weavedRef : 1;\ |
| UNSG32 uentry_rangeRed : 1;\ |
| UNSG32 uentry_rsvd : 5;\ |
| UNSG32 uentry_addr : 22;\ |
| } |
| union { UNSG32 u32FRAME_DESC_entry; |
| struct w32FRAME_DESC_entry; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_FRAME_DESC; |
| |
| typedef union T32FRAME_DESC_entry |
| { UNSG32 u32; |
| struct w32FRAME_DESC_entry; |
| } T32FRAME_DESC_entry; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TFRAME_DESC_entry |
| { UNSG32 u32[1]; |
| struct { |
| struct w32FRAME_DESC_entry; |
| }; |
| } TFRAME_DESC_entry; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 FRAME_DESC_drvrd(SIE_FRAME_DESC *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 FRAME_DESC_drvwr(SIE_FRAME_DESC *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void FRAME_DESC_reset(SIE_FRAME_DESC *p); |
| SIGN32 FRAME_DESC_cmp (SIE_FRAME_DESC *p, SIE_FRAME_DESC *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define FRAME_DESC_check(p,pie,pfx,hLOG) FRAME_DESC_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define FRAME_DESC_print(p, pfx,hLOG) FRAME_DESC_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: FRAME_DESC |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE PIX_LUT (4,4) |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 entry (RW) |
| /// %unsigned 6 val 0x0 |
| /// %% 26 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 6b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_PIX_LUT |
| #define h_PIX_LUT (){} |
| |
| #define RA_PIX_LUT_entry 0x0000 |
| |
| #define BA_PIX_LUT_entry_val 0x0000 |
| #define B16PIX_LUT_entry_val 0x0000 |
| #define LSb32PIX_LUT_entry_val 0 |
| #define LSb16PIX_LUT_entry_val 0 |
| #define bPIX_LUT_entry_val 6 |
| #define MSK32PIX_LUT_entry_val 0x0000003F |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_PIX_LUT { |
| /////////////////////////////////////////////////////////// |
| #define GET32PIX_LUT_entry_val(r32) _BFGET_(r32, 5, 0) |
| #define SET32PIX_LUT_entry_val(r32,v) _BFSET_(r32, 5, 0,v) |
| #define GET16PIX_LUT_entry_val(r16) _BFGET_(r16, 5, 0) |
| #define SET16PIX_LUT_entry_val(r16,v) _BFSET_(r16, 5, 0,v) |
| |
| #define w32PIX_LUT_entry {\ |
| UNSG32 uentry_val : 6;\ |
| UNSG32 RSVDx0_b6 : 26;\ |
| } |
| union { UNSG32 u32PIX_LUT_entry; |
| struct w32PIX_LUT_entry; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_PIX_LUT; |
| |
| typedef union T32PIX_LUT_entry |
| { UNSG32 u32; |
| struct w32PIX_LUT_entry; |
| } T32PIX_LUT_entry; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TPIX_LUT_entry |
| { UNSG32 u32[1]; |
| struct { |
| struct w32PIX_LUT_entry; |
| }; |
| } TPIX_LUT_entry; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 PIX_LUT_drvrd(SIE_PIX_LUT *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 PIX_LUT_drvwr(SIE_PIX_LUT *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void PIX_LUT_reset(SIE_PIX_LUT *p); |
| SIGN32 PIX_LUT_cmp (SIE_PIX_LUT *p, SIE_PIX_LUT *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define PIX_LUT_check(p,pie,pfx,hLOG) PIX_LUT_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define PIX_LUT_print(p, pfx,hLOG) PIX_LUT_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: PIX_LUT |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE INTEN_PARAM (4,4) |
| /// ### |
| /// * VC-1 intensity parameters |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 entry (RW) |
| /// %unsigned 1 intensityOn 0x0 |
| /// %signed 8 iScale 0 |
| /// %signed 10 iShift 0 |
| /// %% 13 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 19b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_INTEN_PARAM |
| #define h_INTEN_PARAM (){} |
| |
| #define RA_INTEN_PARAM_entry 0x0000 |
| |
| #define BA_INTEN_PARAM_entry_intensityOn 0x0000 |
| #define B16INTEN_PARAM_entry_intensityOn 0x0000 |
| #define LSb32INTEN_PARAM_entry_intensityOn 0 |
| #define LSb16INTEN_PARAM_entry_intensityOn 0 |
| #define bINTEN_PARAM_entry_intensityOn 1 |
| #define MSK32INTEN_PARAM_entry_intensityOn 0x00000001 |
| |
| #define BA_INTEN_PARAM_entry_iScale 0x0000 |
| #define B16INTEN_PARAM_entry_iScale 0x0000 |
| #define LSb32INTEN_PARAM_entry_iScale 1 |
| #define LSb16INTEN_PARAM_entry_iScale 1 |
| #define bINTEN_PARAM_entry_iScale 8 |
| #define MSK32INTEN_PARAM_entry_iScale 0x000001FE |
| |
| #define BA_INTEN_PARAM_entry_iShift 0x0001 |
| #define B16INTEN_PARAM_entry_iShift 0x0000 |
| #define LSb32INTEN_PARAM_entry_iShift 9 |
| #define LSb16INTEN_PARAM_entry_iShift 9 |
| #define bINTEN_PARAM_entry_iShift 10 |
| #define MSK32INTEN_PARAM_entry_iShift 0x0007FE00 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_INTEN_PARAM { |
| /////////////////////////////////////////////////////////// |
| #define GET32INTEN_PARAM_entry_intensityOn(r32) _BFGET_(r32, 0, 0) |
| #define SET32INTEN_PARAM_entry_intensityOn(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16INTEN_PARAM_entry_intensityOn(r16) _BFGET_(r16, 0, 0) |
| #define SET16INTEN_PARAM_entry_intensityOn(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32INTEN_PARAM_entry_iScale(r32) _BFGET_(r32, 8, 1) |
| #define SET32INTEN_PARAM_entry_iScale(r32,v) _BFSET_(r32, 8, 1,v) |
| #define GET16INTEN_PARAM_entry_iScale(r16) _BFGET_(r16, 8, 1) |
| #define SET16INTEN_PARAM_entry_iScale(r16,v) _BFSET_(r16, 8, 1,v) |
| |
| #define GET32INTEN_PARAM_entry_iShift(r32) _BFGET_(r32,18, 9) |
| #define SET32INTEN_PARAM_entry_iShift(r32,v) _BFSET_(r32,18, 9,v) |
| |
| #define w32INTEN_PARAM_entry {\ |
| UNSG32 uentry_intensityOn : 1;\ |
| UNSG32 sentry_iScale : 8;\ |
| UNSG32 sentry_iShift : 10;\ |
| UNSG32 RSVDx0_b19 : 13;\ |
| } |
| union { UNSG32 u32INTEN_PARAM_entry; |
| struct w32INTEN_PARAM_entry; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_INTEN_PARAM; |
| |
| typedef union T32INTEN_PARAM_entry |
| { UNSG32 u32; |
| struct w32INTEN_PARAM_entry; |
| } T32INTEN_PARAM_entry; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TINTEN_PARAM_entry |
| { UNSG32 u32[1]; |
| struct { |
| struct w32INTEN_PARAM_entry; |
| }; |
| } TINTEN_PARAM_entry; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 INTEN_PARAM_drvrd(SIE_INTEN_PARAM *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 INTEN_PARAM_drvwr(SIE_INTEN_PARAM *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void INTEN_PARAM_reset(SIE_INTEN_PARAM *p); |
| SIGN32 INTEN_PARAM_cmp (SIE_INTEN_PARAM *p, SIE_INTEN_PARAM *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define INTEN_PARAM_check(p,pie,pfx,hLOG) INTEN_PARAM_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define INTEN_PARAM_print(p, pfx,hLOG) INTEN_PARAM_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: INTEN_PARAM |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE VC biu (4,4) |
| /// ### |
| /// * Register Specification of vCache |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// : TagSramBase 0x0 |
| /// ### |
| /// * TagSram address base |
| /// ### |
| /// : RegBase 0x1000 |
| /// ### |
| /// * vCache register address base |
| /// ### |
| /// @ 0x00000 TAG_SRAM (P) |
| /// # 0x00000 tags |
| /// $TAG_SRAM tags MEM |
| /// ### |
| /// * TAG SRAM, array of 192 |
| /// ### |
| /// @ 0x00400 (W-) |
| /// # # Stuffing bytes... |
| /// %% 24576 |
| /// @ 0x01000 CTRL (RW-) |
| /// ### |
| /// * vCache flow control |
| /// ### |
| /// %unsigned 1 stop 0x0 |
| /// ### |
| /// * Write 1 for vCache to stop message loading and start waiting for internal pipeline to end. Auto clear after vCache becomes idle, when vc_session_done is set to 1 |
| /// ### |
| /// %unsigned 1 auto_resume 0x0 |
| /// ### |
| /// * Write 1 to indicate that new session should auto resume after vc_session_done |
| /// ### |
| /// %unsigned 1 kickoff 0x0 |
| /// ### |
| /// * Write 1 to kickoff a new session (i.e. for vCache to start reading messages); self clear the next cycle. Always reads 0. |
| /// ### |
| /// %% 29 # Stuffing bits... |
| /// @ 0x01004 FORMAT (P) |
| /// ### |
| /// * Current picture format |
| /// ### |
| /// %unsigned 3 picMode 0x0 |
| /// : h264 0x0 |
| /// : wmv 0x1 |
| /// ### |
| /// * VC-1 main profile |
| /// ### |
| /// : mpg2 0x2 |
| /// : mpg4 0x4 |
| /// : vc1ap 0x5 |
| /// ### |
| /// * VC-1 advanced profile |
| /// ### |
| /// %unsigned 1 fldPic 0x0 |
| /// : frame 0x0 |
| /// ### |
| /// * current picture is frame |
| /// ### |
| /// : field 0x1 |
| /// ### |
| /// * current picture is field |
| /// ### |
| /// %unsigned 1 rangeRed 0x0 |
| /// ### |
| /// * Range reduction setting for current picture |
| /// ### |
| /// %% 27 # Stuffing bits... |
| /// @ 0x01008 STATUS (WOC-) |
| /// ### |
| /// * vCache status |
| /// ### |
| /// %unsigned 1 session_done 0x0 |
| /// ### |
| /// * 0: session ongoing or idle |
| /// * 1: previous session is done |
| /// * sticky until CPU writes 1 to clear |
| /// ### |
| /// %% 31 # Stuffing bits... |
| /// @ 0x0100C CHROMA_OFFSET (P) |
| /// ### |
| /// * Chroma frame buffer address offset from the corresponding luma frame buffer |
| /// ### |
| /// %unsigned 32 val 0x0 |
| /// ### |
| /// * Chroma buffer address = frame_luma[*] + chroma_offset |
| /// ### |
| /// @ 0x01010 PAGE_STRIDE (P) |
| /// ### |
| /// * Address differential from the 1st pixel of a page row to the 1st pixel of the next page row. |
| /// ### |
| /// %unsigned 32 stride 0x0 |
| /// @ 0x01014 FRAME_DESC (P) |
| /// # 0x01014 frame |
| /// $FRAME_DESC frame REG [17] |
| /// ### |
| /// * Frame buffer descriptors, array of 17 |
| /// ### |
| /// @ 0x01058 TRANS_DESC (P) |
| /// # 0x01058 dscp |
| /// $TRANS_DESC dscp REG [63] |
| /// ### |
| /// * Output transfer ID for the OCP connection between vCache and PCube, array of 63 |
| /// ### |
| /// @ 0x01154 XPIX_MAP (P) |
| /// # 0x01154 xpix_map |
| /// $PIX_LUT xpix_map REG [32] |
| /// @ 0x011D4 YPIX_MAP (P) |
| /// # 0x011D4 ypix_map |
| /// $PIX_LUT ypix_map REG [32] |
| /// @ 0x01254 XLOCEXP_MAP (P) |
| /// # 0x01254 xlocexp_map |
| /// $PIX_LUT xlocexp_map REG [32] |
| /// @ 0x012D4 XPIXEXP_MAP (P) |
| /// # 0x012D4 xpixexp_map |
| /// $PIX_LUT xpixexp_map REG [8] |
| /// @ 0x012F4 YLOCEXP_MAP (P) |
| /// # 0x012F4 ylocexp_map |
| /// $PIX_LUT ylocexp_map REG [32] |
| /// @ 0x01374 YPIXEXP_MAP (P) |
| /// # 0x01374 ypixexp_map |
| /// $PIX_LUT ypixexp_map REG [8] |
| /// ### |
| /// * Look-up table for vcMsg xpix, ypix, xlocexp, xpixexp, ylocexp, and ypixexp. Note that for UV, only xpixexp and ypixexp are required to go through the look-up table. |
| /// ### |
| /// @ 0x01394 INT_RBID_MAP (RW) |
| /// ### |
| /// * Map forward and backward VC-1 intensity compensation parameter sets to reference frames with specific rBid. |
| /// ### |
| /// %unsigned 5 forward_rbid 0x0 |
| /// ### |
| /// * Specify the rBid of forward reference frame. The forward intensity compensation parameter sets are applied to this frame. forward_rbid doesn't have the lsb of rBid that indicate top or bottom field. |
| /// ### |
| /// %unsigned 5 current_rbid 0x0 |
| /// ### |
| /// * Specify the rBid of current frame. The current intensity compensation parameter set is applied to this frame. current_rbid doesn't have the lsb of rBid that indicate top or bottom field. |
| /// ### |
| /// %unsigned 5 backward_rbid 0x0 |
| /// ### |
| /// * Specify the rBid of backward reference frame that backward intensity compensation parameter sets are applied to. backward_rbid doesn't have the lsb of rBid that indicate top or bottom field. |
| /// ### |
| /// %% 17 # Stuffing bits... |
| /// @ 0x01398 INT_FORWARD_TOP0 (P) |
| /// # 0x01398 int_forward_top |
| /// $INTEN_PARAM int_forward_top REG [2] |
| /// @ 0x013A0 INT_FORWARD_BOT0 (P) |
| /// # 0x013A0 int_forward_bot |
| /// $INTEN_PARAM int_forward_bot REG [2] |
| /// @ 0x013A8 INT_CURRENT (P) |
| /// # 0x013A8 int_current |
| /// $INTEN_PARAM int_current REG |
| /// @ 0x013AC INT_BACKWARD_TOP (P) |
| /// # 0x013AC int_backward_top |
| /// $INTEN_PARAM int_backward_top REG |
| /// @ 0x013B0 INT_BACKWARD_BOT (P) |
| /// # 0x013B0 int_backward_bot |
| /// $INTEN_PARAM int_backward_bot REG |
| /// ### |
| /// * Forward and backward VC-1 intensity compensation parameter sets. |
| /// ### |
| /// @ 0x013B4 REGION_LOC_BASE (P) |
| /// ### |
| /// * xloc/yloc base, multiples of 2K (to support pict size larger than 2K) |
| /// * e.g. xloc_final = ((xloc_base << 11) + vCmsg_xloc) |
| /// ### |
| /// %unsigned 8 luma_xloc_base 0x0 |
| /// %unsigned 8 luma_yloc_base 0x0 |
| /// %unsigned 8 chroma_xloc_base 0x0 |
| /// %unsigned 8 chroma_yloc_base 0x0 |
| /// @ 0x013B8 FETCH_COLLECTION (P) |
| /// ### |
| /// * DRAM data fetch collection control |
| /// ### |
| /// %unsigned 16 dram_burst_size 0x20 |
| /// ### |
| /// * DRAM burst size in bytes |
| /// ### |
| /// %unsigned 1 collection_mode 0x0 |
| /// : tile_exact 0x0 |
| /// : burst_align 0x1 |
| /// ### |
| /// * Fetch collection mode |
| /// * end of VC interface |
| /// ### |
| /// %% 15 # Stuffing bits... |
| /// @ 0x013BC (W-) |
| /// # # Stuffing bytes... |
| /// %% 544 |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 5120B, bits: 3474b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_VC |
| #define h_VC (){} |
| |
| #define VC_TagSramBase 0x0 |
| #define VC_RegBase 0x1000 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_TAG_SRAM 0x0000 |
| #define RA_VC_tags 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_CTRL 0x1000 |
| |
| #define BA_VC_CTRL_stop 0x1000 |
| #define B16VC_CTRL_stop 0x1000 |
| #define LSb32VC_CTRL_stop 0 |
| #define LSb16VC_CTRL_stop 0 |
| #define bVC_CTRL_stop 1 |
| #define MSK32VC_CTRL_stop 0x00000001 |
| |
| #define BA_VC_CTRL_auto_resume 0x1000 |
| #define B16VC_CTRL_auto_resume 0x1000 |
| #define LSb32VC_CTRL_auto_resume 1 |
| #define LSb16VC_CTRL_auto_resume 1 |
| #define bVC_CTRL_auto_resume 1 |
| #define MSK32VC_CTRL_auto_resume 0x00000002 |
| |
| #define BA_VC_CTRL_kickoff 0x1000 |
| #define B16VC_CTRL_kickoff 0x1000 |
| #define LSb32VC_CTRL_kickoff 2 |
| #define LSb16VC_CTRL_kickoff 2 |
| #define bVC_CTRL_kickoff 1 |
| #define MSK32VC_CTRL_kickoff 0x00000004 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_FORMAT 0x1004 |
| |
| #define BA_VC_FORMAT_picMode 0x1004 |
| #define B16VC_FORMAT_picMode 0x1004 |
| #define LSb32VC_FORMAT_picMode 0 |
| #define LSb16VC_FORMAT_picMode 0 |
| #define bVC_FORMAT_picMode 3 |
| #define MSK32VC_FORMAT_picMode 0x00000007 |
| #define VC_FORMAT_picMode_h264 0x0 |
| #define VC_FORMAT_picMode_wmv 0x1 |
| #define VC_FORMAT_picMode_mpg2 0x2 |
| #define VC_FORMAT_picMode_mpg4 0x4 |
| #define VC_FORMAT_picMode_vc1ap 0x5 |
| |
| #define BA_VC_FORMAT_fldPic 0x1004 |
| #define B16VC_FORMAT_fldPic 0x1004 |
| #define LSb32VC_FORMAT_fldPic 3 |
| #define LSb16VC_FORMAT_fldPic 3 |
| #define bVC_FORMAT_fldPic 1 |
| #define MSK32VC_FORMAT_fldPic 0x00000008 |
| #define VC_FORMAT_fldPic_frame 0x0 |
| #define VC_FORMAT_fldPic_field 0x1 |
| |
| #define BA_VC_FORMAT_rangeRed 0x1004 |
| #define B16VC_FORMAT_rangeRed 0x1004 |
| #define LSb32VC_FORMAT_rangeRed 4 |
| #define LSb16VC_FORMAT_rangeRed 4 |
| #define bVC_FORMAT_rangeRed 1 |
| #define MSK32VC_FORMAT_rangeRed 0x00000010 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_STATUS 0x1008 |
| |
| #define BA_VC_STATUS_session_done 0x1008 |
| #define B16VC_STATUS_session_done 0x1008 |
| #define LSb32VC_STATUS_session_done 0 |
| #define LSb16VC_STATUS_session_done 0 |
| #define bVC_STATUS_session_done 1 |
| #define MSK32VC_STATUS_session_done 0x00000001 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_CHROMA_OFFSET 0x100C |
| |
| #define BA_VC_CHROMA_OFFSET_val 0x100C |
| #define B16VC_CHROMA_OFFSET_val 0x100C |
| #define LSb32VC_CHROMA_OFFSET_val 0 |
| #define LSb16VC_CHROMA_OFFSET_val 0 |
| #define bVC_CHROMA_OFFSET_val 32 |
| #define MSK32VC_CHROMA_OFFSET_val 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_PAGE_STRIDE 0x1010 |
| |
| #define BA_VC_PAGE_STRIDE_stride 0x1010 |
| #define B16VC_PAGE_STRIDE_stride 0x1010 |
| #define LSb32VC_PAGE_STRIDE_stride 0 |
| #define LSb16VC_PAGE_STRIDE_stride 0 |
| #define bVC_PAGE_STRIDE_stride 32 |
| #define MSK32VC_PAGE_STRIDE_stride 0xFFFFFFFF |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_FRAME_DESC 0x1014 |
| #define RA_VC_frame 0x1014 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_TRANS_DESC 0x1058 |
| #define RA_VC_dscp 0x1058 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_XPIX_MAP 0x1154 |
| #define RA_VC_xpix_map 0x1154 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_YPIX_MAP 0x11D4 |
| #define RA_VC_ypix_map 0x11D4 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_XLOCEXP_MAP 0x1254 |
| #define RA_VC_xlocexp_map 0x1254 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_XPIXEXP_MAP 0x12D4 |
| #define RA_VC_xpixexp_map 0x12D4 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_YLOCEXP_MAP 0x12F4 |
| #define RA_VC_ylocexp_map 0x12F4 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_YPIXEXP_MAP 0x1374 |
| #define RA_VC_ypixexp_map 0x1374 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_INT_RBID_MAP 0x1394 |
| |
| #define BA_VC_INT_RBID_MAP_forward_rbid 0x1394 |
| #define B16VC_INT_RBID_MAP_forward_rbid 0x1394 |
| #define LSb32VC_INT_RBID_MAP_forward_rbid 0 |
| #define LSb16VC_INT_RBID_MAP_forward_rbid 0 |
| #define bVC_INT_RBID_MAP_forward_rbid 5 |
| #define MSK32VC_INT_RBID_MAP_forward_rbid 0x0000001F |
| |
| #define BA_VC_INT_RBID_MAP_current_rbid 0x1394 |
| #define B16VC_INT_RBID_MAP_current_rbid 0x1394 |
| #define LSb32VC_INT_RBID_MAP_current_rbid 5 |
| #define LSb16VC_INT_RBID_MAP_current_rbid 5 |
| #define bVC_INT_RBID_MAP_current_rbid 5 |
| #define MSK32VC_INT_RBID_MAP_current_rbid 0x000003E0 |
| |
| #define BA_VC_INT_RBID_MAP_backward_rbid 0x1395 |
| #define B16VC_INT_RBID_MAP_backward_rbid 0x1394 |
| #define LSb32VC_INT_RBID_MAP_backward_rbid 10 |
| #define LSb16VC_INT_RBID_MAP_backward_rbid 10 |
| #define bVC_INT_RBID_MAP_backward_rbid 5 |
| #define MSK32VC_INT_RBID_MAP_backward_rbid 0x00007C00 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_INT_FORWARD_TOP0 0x1398 |
| #define RA_VC_int_forward_top 0x1398 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_INT_FORWARD_BOT0 0x13A0 |
| #define RA_VC_int_forward_bot 0x13A0 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_INT_CURRENT 0x13A8 |
| #define RA_VC_int_current 0x13A8 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_INT_BACKWARD_TOP 0x13AC |
| #define RA_VC_int_backward_top 0x13AC |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_INT_BACKWARD_BOT 0x13B0 |
| #define RA_VC_int_backward_bot 0x13B0 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_REGION_LOC_BASE 0x13B4 |
| |
| #define BA_VC_REGION_LOC_BASE_luma_xloc_base 0x13B4 |
| #define B16VC_REGION_LOC_BASE_luma_xloc_base 0x13B4 |
| #define LSb32VC_REGION_LOC_BASE_luma_xloc_base 0 |
| #define LSb16VC_REGION_LOC_BASE_luma_xloc_base 0 |
| #define bVC_REGION_LOC_BASE_luma_xloc_base 8 |
| #define MSK32VC_REGION_LOC_BASE_luma_xloc_base 0x000000FF |
| |
| #define BA_VC_REGION_LOC_BASE_luma_yloc_base 0x13B5 |
| #define B16VC_REGION_LOC_BASE_luma_yloc_base 0x13B4 |
| #define LSb32VC_REGION_LOC_BASE_luma_yloc_base 8 |
| #define LSb16VC_REGION_LOC_BASE_luma_yloc_base 8 |
| #define bVC_REGION_LOC_BASE_luma_yloc_base 8 |
| #define MSK32VC_REGION_LOC_BASE_luma_yloc_base 0x0000FF00 |
| |
| #define BA_VC_REGION_LOC_BASE_chroma_xloc_base 0x13B6 |
| #define B16VC_REGION_LOC_BASE_chroma_xloc_base 0x13B6 |
| #define LSb32VC_REGION_LOC_BASE_chroma_xloc_base 16 |
| #define LSb16VC_REGION_LOC_BASE_chroma_xloc_base 0 |
| #define bVC_REGION_LOC_BASE_chroma_xloc_base 8 |
| #define MSK32VC_REGION_LOC_BASE_chroma_xloc_base 0x00FF0000 |
| |
| #define BA_VC_REGION_LOC_BASE_chroma_yloc_base 0x13B7 |
| #define B16VC_REGION_LOC_BASE_chroma_yloc_base 0x13B6 |
| #define LSb32VC_REGION_LOC_BASE_chroma_yloc_base 24 |
| #define LSb16VC_REGION_LOC_BASE_chroma_yloc_base 8 |
| #define bVC_REGION_LOC_BASE_chroma_yloc_base 8 |
| #define MSK32VC_REGION_LOC_BASE_chroma_yloc_base 0xFF000000 |
| /////////////////////////////////////////////////////////// |
| #define RA_VC_FETCH_COLLECTION 0x13B8 |
| |
| #define BA_VC_FETCH_COLLECTION_dram_burst_size 0x13B8 |
| #define B16VC_FETCH_COLLECTION_dram_burst_size 0x13B8 |
| #define LSb32VC_FETCH_COLLECTION_dram_burst_size 0 |
| #define LSb16VC_FETCH_COLLECTION_dram_burst_size 0 |
| #define bVC_FETCH_COLLECTION_dram_burst_size 16 |
| #define MSK32VC_FETCH_COLLECTION_dram_burst_size 0x0000FFFF |
| |
| #define BA_VC_FETCH_COLLECTION_collection_mode 0x13BA |
| #define B16VC_FETCH_COLLECTION_collection_mode 0x13BA |
| #define LSb32VC_FETCH_COLLECTION_collection_mode 16 |
| #define LSb16VC_FETCH_COLLECTION_collection_mode 0 |
| #define bVC_FETCH_COLLECTION_collection_mode 1 |
| #define MSK32VC_FETCH_COLLECTION_collection_mode 0x00010000 |
| #define VC_FETCH_COLLECTION_collection_mode_tile_exact 0x0 |
| #define VC_FETCH_COLLECTION_collection_mode_burst_align 0x1 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_VC { |
| /////////////////////////////////////////////////////////// |
| SIE_TAG_SRAM ie_tags; |
| UNSG8 RSVD_tags [256]; |
| /////////////////////////////////////////////////////////// |
| UNSG8 RSVDx400 [3072]; |
| /////////////////////////////////////////////////////////// |
| #define GET32VC_CTRL_stop(r32) _BFGET_(r32, 0, 0) |
| #define SET32VC_CTRL_stop(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16VC_CTRL_stop(r16) _BFGET_(r16, 0, 0) |
| #define SET16VC_CTRL_stop(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define GET32VC_CTRL_auto_resume(r32) _BFGET_(r32, 1, 1) |
| #define SET32VC_CTRL_auto_resume(r32,v) _BFSET_(r32, 1, 1,v) |
| #define GET16VC_CTRL_auto_resume(r16) _BFGET_(r16, 1, 1) |
| #define SET16VC_CTRL_auto_resume(r16,v) _BFSET_(r16, 1, 1,v) |
| |
| #define GET32VC_CTRL_kickoff(r32) _BFGET_(r32, 2, 2) |
| #define SET32VC_CTRL_kickoff(r32,v) _BFSET_(r32, 2, 2,v) |
| #define GET16VC_CTRL_kickoff(r16) _BFGET_(r16, 2, 2) |
| #define SET16VC_CTRL_kickoff(r16,v) _BFSET_(r16, 2, 2,v) |
| |
| #define w32VC_CTRL {\ |
| UNSG32 uCTRL_stop : 1;\ |
| UNSG32 uCTRL_auto_resume : 1;\ |
| UNSG32 uCTRL_kickoff : 1;\ |
| UNSG32 RSVDx1000_b3 : 29;\ |
| } |
| union { UNSG32 u32VC_CTRL; |
| struct w32VC_CTRL; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32VC_FORMAT_picMode(r32) _BFGET_(r32, 2, 0) |
| #define SET32VC_FORMAT_picMode(r32,v) _BFSET_(r32, 2, 0,v) |
| #define GET16VC_FORMAT_picMode(r16) _BFGET_(r16, 2, 0) |
| #define SET16VC_FORMAT_picMode(r16,v) _BFSET_(r16, 2, 0,v) |
| |
| #define GET32VC_FORMAT_fldPic(r32) _BFGET_(r32, 3, 3) |
| #define SET32VC_FORMAT_fldPic(r32,v) _BFSET_(r32, 3, 3,v) |
| #define GET16VC_FORMAT_fldPic(r16) _BFGET_(r16, 3, 3) |
| #define SET16VC_FORMAT_fldPic(r16,v) _BFSET_(r16, 3, 3,v) |
| |
| #define GET32VC_FORMAT_rangeRed(r32) _BFGET_(r32, 4, 4) |
| #define SET32VC_FORMAT_rangeRed(r32,v) _BFSET_(r32, 4, 4,v) |
| #define GET16VC_FORMAT_rangeRed(r16) _BFGET_(r16, 4, 4) |
| #define SET16VC_FORMAT_rangeRed(r16,v) _BFSET_(r16, 4, 4,v) |
| |
| #define w32VC_FORMAT {\ |
| UNSG32 uFORMAT_picMode : 3;\ |
| UNSG32 uFORMAT_fldPic : 1;\ |
| UNSG32 uFORMAT_rangeRed : 1;\ |
| UNSG32 RSVDx1004_b5 : 27;\ |
| } |
| union { UNSG32 u32VC_FORMAT; |
| struct w32VC_FORMAT; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32VC_STATUS_session_done(r32) _BFGET_(r32, 0, 0) |
| #define SET32VC_STATUS_session_done(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16VC_STATUS_session_done(r16) _BFGET_(r16, 0, 0) |
| #define SET16VC_STATUS_session_done(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32VC_STATUS {\ |
| UNSG32 uSTATUS_session_done : 1;\ |
| UNSG32 RSVDx1008_b1 : 31;\ |
| } |
| union { UNSG32 u32VC_STATUS; |
| struct w32VC_STATUS; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32VC_CHROMA_OFFSET_val(r32) _BFGET_(r32,31, 0) |
| #define SET32VC_CHROMA_OFFSET_val(r32,v) _BFSET_(r32,31, 0,v) |
| |
| #define w32VC_CHROMA_OFFSET {\ |
| UNSG32 uCHROMA_OFFSET_val : 32;\ |
| } |
| union { UNSG32 u32VC_CHROMA_OFFSET; |
| struct w32VC_CHROMA_OFFSET; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32VC_PAGE_STRIDE_stride(r32) _BFGET_(r32,31, 0) |
| #define SET32VC_PAGE_STRIDE_stride(r32,v) _BFSET_(r32,31, 0,v) |
| |
| #define w32VC_PAGE_STRIDE {\ |
| UNSG32 uPAGE_STRIDE_stride : 32;\ |
| } |
| union { UNSG32 u32VC_PAGE_STRIDE; |
| struct w32VC_PAGE_STRIDE; |
| }; |
| /////////////////////////////////////////////////////////// |
| SIE_FRAME_DESC ie_frame[17]; |
| /////////////////////////////////////////////////////////// |
| SIE_TRANS_DESC ie_dscp[63]; |
| /////////////////////////////////////////////////////////// |
| SIE_PIX_LUT ie_xpix_map[32]; |
| /////////////////////////////////////////////////////////// |
| SIE_PIX_LUT ie_ypix_map[32]; |
| /////////////////////////////////////////////////////////// |
| SIE_PIX_LUT ie_xlocexp_map[32]; |
| /////////////////////////////////////////////////////////// |
| SIE_PIX_LUT ie_xpixexp_map[8]; |
| /////////////////////////////////////////////////////////// |
| SIE_PIX_LUT ie_ylocexp_map[32]; |
| /////////////////////////////////////////////////////////// |
| SIE_PIX_LUT ie_ypixexp_map[8]; |
| /////////////////////////////////////////////////////////// |
| #define GET32VC_INT_RBID_MAP_forward_rbid(r32) _BFGET_(r32, 4, 0) |
| #define SET32VC_INT_RBID_MAP_forward_rbid(r32,v) _BFSET_(r32, 4, 0,v) |
| #define GET16VC_INT_RBID_MAP_forward_rbid(r16) _BFGET_(r16, 4, 0) |
| #define SET16VC_INT_RBID_MAP_forward_rbid(r16,v) _BFSET_(r16, 4, 0,v) |
| |
| #define GET32VC_INT_RBID_MAP_current_rbid(r32) _BFGET_(r32, 9, 5) |
| #define SET32VC_INT_RBID_MAP_current_rbid(r32,v) _BFSET_(r32, 9, 5,v) |
| #define GET16VC_INT_RBID_MAP_current_rbid(r16) _BFGET_(r16, 9, 5) |
| #define SET16VC_INT_RBID_MAP_current_rbid(r16,v) _BFSET_(r16, 9, 5,v) |
| |
| #define GET32VC_INT_RBID_MAP_backward_rbid(r32) _BFGET_(r32,14,10) |
| #define SET32VC_INT_RBID_MAP_backward_rbid(r32,v) _BFSET_(r32,14,10,v) |
| #define GET16VC_INT_RBID_MAP_backward_rbid(r16) _BFGET_(r16,14,10) |
| #define SET16VC_INT_RBID_MAP_backward_rbid(r16,v) _BFSET_(r16,14,10,v) |
| |
| #define w32VC_INT_RBID_MAP {\ |
| UNSG32 uINT_RBID_MAP_forward_rbid : 5;\ |
| UNSG32 uINT_RBID_MAP_current_rbid : 5;\ |
| UNSG32 uINT_RBID_MAP_backward_rbid : 5;\ |
| UNSG32 RSVDx1394_b15 : 17;\ |
| } |
| union { UNSG32 u32VC_INT_RBID_MAP; |
| struct w32VC_INT_RBID_MAP; |
| }; |
| /////////////////////////////////////////////////////////// |
| SIE_INTEN_PARAM ie_int_forward_top[2]; |
| /////////////////////////////////////////////////////////// |
| SIE_INTEN_PARAM ie_int_forward_bot[2]; |
| /////////////////////////////////////////////////////////// |
| SIE_INTEN_PARAM ie_int_current; |
| /////////////////////////////////////////////////////////// |
| SIE_INTEN_PARAM ie_int_backward_top; |
| /////////////////////////////////////////////////////////// |
| SIE_INTEN_PARAM ie_int_backward_bot; |
| /////////////////////////////////////////////////////////// |
| #define GET32VC_REGION_LOC_BASE_luma_xloc_base(r32) _BFGET_(r32, 7, 0) |
| #define SET32VC_REGION_LOC_BASE_luma_xloc_base(r32,v) _BFSET_(r32, 7, 0,v) |
| #define GET16VC_REGION_LOC_BASE_luma_xloc_base(r16) _BFGET_(r16, 7, 0) |
| #define SET16VC_REGION_LOC_BASE_luma_xloc_base(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32VC_REGION_LOC_BASE_luma_yloc_base(r32) _BFGET_(r32,15, 8) |
| #define SET32VC_REGION_LOC_BASE_luma_yloc_base(r32,v) _BFSET_(r32,15, 8,v) |
| #define GET16VC_REGION_LOC_BASE_luma_yloc_base(r16) _BFGET_(r16,15, 8) |
| #define SET16VC_REGION_LOC_BASE_luma_yloc_base(r16,v) _BFSET_(r16,15, 8,v) |
| |
| #define GET32VC_REGION_LOC_BASE_chroma_xloc_base(r32) _BFGET_(r32,23,16) |
| #define SET32VC_REGION_LOC_BASE_chroma_xloc_base(r32,v) _BFSET_(r32,23,16,v) |
| #define GET16VC_REGION_LOC_BASE_chroma_xloc_base(r16) _BFGET_(r16, 7, 0) |
| #define SET16VC_REGION_LOC_BASE_chroma_xloc_base(r16,v) _BFSET_(r16, 7, 0,v) |
| |
| #define GET32VC_REGION_LOC_BASE_chroma_yloc_base(r32) _BFGET_(r32,31,24) |
| #define SET32VC_REGION_LOC_BASE_chroma_yloc_base(r32,v) _BFSET_(r32,31,24,v) |
| #define GET16VC_REGION_LOC_BASE_chroma_yloc_base(r16) _BFGET_(r16,15, 8) |
| #define SET16VC_REGION_LOC_BASE_chroma_yloc_base(r16,v) _BFSET_(r16,15, 8,v) |
| |
| #define w32VC_REGION_LOC_BASE {\ |
| UNSG32 uREGION_LOC_BASE_luma_xloc_base : 8;\ |
| UNSG32 uREGION_LOC_BASE_luma_yloc_base : 8;\ |
| UNSG32 uREGION_LOC_BASE_chroma_xloc_base : 8;\ |
| UNSG32 uREGION_LOC_BASE_chroma_yloc_base : 8;\ |
| } |
| union { UNSG32 u32VC_REGION_LOC_BASE; |
| struct w32VC_REGION_LOC_BASE; |
| }; |
| /////////////////////////////////////////////////////////// |
| #define GET32VC_FETCH_COLLECTION_dram_burst_size(r32) _BFGET_(r32,15, 0) |
| #define SET32VC_FETCH_COLLECTION_dram_burst_size(r32,v) _BFSET_(r32,15, 0,v) |
| #define GET16VC_FETCH_COLLECTION_dram_burst_size(r16) _BFGET_(r16,15, 0) |
| #define SET16VC_FETCH_COLLECTION_dram_burst_size(r16,v) _BFSET_(r16,15, 0,v) |
| |
| #define GET32VC_FETCH_COLLECTION_collection_mode(r32) _BFGET_(r32,16,16) |
| #define SET32VC_FETCH_COLLECTION_collection_mode(r32,v) _BFSET_(r32,16,16,v) |
| #define GET16VC_FETCH_COLLECTION_collection_mode(r16) _BFGET_(r16, 0, 0) |
| #define SET16VC_FETCH_COLLECTION_collection_mode(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32VC_FETCH_COLLECTION {\ |
| UNSG32 uFETCH_COLLECTION_dram_burst_size : 16;\ |
| UNSG32 uFETCH_COLLECTION_collection_mode : 1;\ |
| UNSG32 RSVDx13B8_b17 : 15;\ |
| } |
| union { UNSG32 u32VC_FETCH_COLLECTION; |
| struct w32VC_FETCH_COLLECTION; |
| }; |
| /////////////////////////////////////////////////////////// |
| UNSG8 RSVDx13BC [68]; |
| /////////////////////////////////////////////////////////// |
| } SIE_VC; |
| |
| typedef union T32VC_CTRL |
| { UNSG32 u32; |
| struct w32VC_CTRL; |
| } T32VC_CTRL; |
| typedef union T32VC_FORMAT |
| { UNSG32 u32; |
| struct w32VC_FORMAT; |
| } T32VC_FORMAT; |
| typedef union T32VC_STATUS |
| { UNSG32 u32; |
| struct w32VC_STATUS; |
| } T32VC_STATUS; |
| typedef union T32VC_CHROMA_OFFSET |
| { UNSG32 u32; |
| struct w32VC_CHROMA_OFFSET; |
| } T32VC_CHROMA_OFFSET; |
| typedef union T32VC_PAGE_STRIDE |
| { UNSG32 u32; |
| struct w32VC_PAGE_STRIDE; |
| } T32VC_PAGE_STRIDE; |
| typedef union T32VC_INT_RBID_MAP |
| { UNSG32 u32; |
| struct w32VC_INT_RBID_MAP; |
| } T32VC_INT_RBID_MAP; |
| typedef union T32VC_REGION_LOC_BASE |
| { UNSG32 u32; |
| struct w32VC_REGION_LOC_BASE; |
| } T32VC_REGION_LOC_BASE; |
| typedef union T32VC_FETCH_COLLECTION |
| { UNSG32 u32; |
| struct w32VC_FETCH_COLLECTION; |
| } T32VC_FETCH_COLLECTION; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TVC_CTRL |
| { UNSG32 u32[1]; |
| struct { |
| struct w32VC_CTRL; |
| }; |
| } TVC_CTRL; |
| typedef union TVC_FORMAT |
| { UNSG32 u32[1]; |
| struct { |
| struct w32VC_FORMAT; |
| }; |
| } TVC_FORMAT; |
| typedef union TVC_STATUS |
| { UNSG32 u32[1]; |
| struct { |
| struct w32VC_STATUS; |
| }; |
| } TVC_STATUS; |
| typedef union TVC_CHROMA_OFFSET |
| { UNSG32 u32[1]; |
| struct { |
| struct w32VC_CHROMA_OFFSET; |
| }; |
| } TVC_CHROMA_OFFSET; |
| typedef union TVC_PAGE_STRIDE |
| { UNSG32 u32[1]; |
| struct { |
| struct w32VC_PAGE_STRIDE; |
| }; |
| } TVC_PAGE_STRIDE; |
| typedef union TVC_INT_RBID_MAP |
| { UNSG32 u32[1]; |
| struct { |
| struct w32VC_INT_RBID_MAP; |
| }; |
| } TVC_INT_RBID_MAP; |
| typedef union TVC_REGION_LOC_BASE |
| { UNSG32 u32[1]; |
| struct { |
| struct w32VC_REGION_LOC_BASE; |
| }; |
| } TVC_REGION_LOC_BASE; |
| typedef union TVC_FETCH_COLLECTION |
| { UNSG32 u32[1]; |
| struct { |
| struct w32VC_FETCH_COLLECTION; |
| }; |
| } TVC_FETCH_COLLECTION; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 VC_drvrd(SIE_VC *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 VC_drvwr(SIE_VC *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void VC_reset(SIE_VC *p); |
| SIGN32 VC_cmp (SIE_VC *p, SIE_VC *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define VC_check(p,pie,pfx,hLOG) VC_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define VC_print(p, pfx,hLOG) VC_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: VC |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE vcClkRst biu (4,4) |
| /// ### |
| /// * vCache level clock reset control unit |
| /// * For all reset control bit, 0-- reset, 1-- release. After chip power on reset, all these registers are 0 which means the vPro subsystem is in reset state and should be kicked-off by CPU. |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// @ 0x00000 (P) |
| /// # 0x00000 global |
| /// $ClkRstBiu global REG |
| /// @ 0x00004 (P) |
| /// # 0x00004 vcBiu |
| /// $ClkRstBiu vcBiu REG |
| /// @ 0x00008 (P) |
| /// # 0x00008 BiuArb |
| /// $ClkRstBiu BiuArb REG |
| /// @ 0x0000C (P) |
| /// # 0x0000C misc |
| /// $ClkRstBiu misc REG |
| /// ### |
| /// * For p3Figo0/1, only sw clock enable is used and dynamic clock control will not be applied. |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 16B, bits: 12b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_vcClkRst |
| #define h_vcClkRst (){} |
| |
| #define RA_vcClkRst_global 0x0000 |
| /////////////////////////////////////////////////////////// |
| #define RA_vcClkRst_vcBiu 0x0004 |
| /////////////////////////////////////////////////////////// |
| #define RA_vcClkRst_BiuArb 0x0008 |
| /////////////////////////////////////////////////////////// |
| #define RA_vcClkRst_misc 0x000C |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_vcClkRst { |
| /////////////////////////////////////////////////////////// |
| SIE_ClkRstBiu ie_global; |
| /////////////////////////////////////////////////////////// |
| SIE_ClkRstBiu ie_vcBiu; |
| /////////////////////////////////////////////////////////// |
| SIE_ClkRstBiu ie_BiuArb; |
| /////////////////////////////////////////////////////////// |
| SIE_ClkRstBiu ie_misc; |
| /////////////////////////////////////////////////////////// |
| } SIE_vcClkRst; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 vcClkRst_drvrd(SIE_vcClkRst *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 vcClkRst_drvwr(SIE_vcClkRst *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void vcClkRst_reset(SIE_vcClkRst *p); |
| SIGN32 vcClkRst_cmp (SIE_vcClkRst *p, SIE_vcClkRst *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define vcClkRst_check(p,pie,pfx,hLOG) vcClkRst_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define vcClkRst_print(p, pfx,hLOG) vcClkRst_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: vcClkRst |
| //////////////////////////////////////////////////////////// |
| |
| ////// |
| /// |
| /// $INTERFACE VcBIU (4,4) |
| /// ### |
| /// * Constants for vCache submodule hSel decoding |
| /// ### |
| /// # # ---------------------------------------------------------- |
| /// : SIZE 0x10000 |
| /// : DEC_BIT 0x10 |
| /// ### |
| /// * vCache |
| /// ### |
| /// : Vc_OFST 0x0 |
| /// : Vc_SIZE 0xF000 |
| /// : Vc_DEC_BIT 0xC |
| /// ### |
| /// * VcCR |
| /// ### |
| /// : VcCR_OFST 0xF000 |
| /// : VcCR_SIZE 0x1000 |
| /// : VcCR_DEC_BIT 0xC |
| /// @ 0x00000 Dummy (P) |
| /// %unsigned 1 xxx 0x0 |
| /// %% 31 # Stuffing bits... |
| /// # # ---------------------------------------------------------- |
| /// $ENDOFINTERFACE # size: 4B, bits: 1b, padding: 0B |
| //////////////////////////////////////////////////////////// |
| #ifndef h_VcBIU |
| #define h_VcBIU (){} |
| |
| #define VcBIU_SIZE 0x10000 |
| #define VcBIU_DEC_BIT 0x10 |
| #define VcBIU_Vc_OFST 0x0 |
| #define VcBIU_Vc_SIZE 0xF000 |
| #define VcBIU_Vc_DEC_BIT 0xC |
| #define VcBIU_VcCR_OFST 0xF000 |
| #define VcBIU_VcCR_SIZE 0x1000 |
| #define VcBIU_VcCR_DEC_BIT 0xC |
| /////////////////////////////////////////////////////////// |
| #define RA_VcBIU_Dummy 0x0000 |
| |
| #define BA_VcBIU_Dummy_xxx 0x0000 |
| #define B16VcBIU_Dummy_xxx 0x0000 |
| #define LSb32VcBIU_Dummy_xxx 0 |
| #define LSb16VcBIU_Dummy_xxx 0 |
| #define bVcBIU_Dummy_xxx 1 |
| #define MSK32VcBIU_Dummy_xxx 0x00000001 |
| /////////////////////////////////////////////////////////// |
| |
| typedef struct SIE_VcBIU { |
| /////////////////////////////////////////////////////////// |
| #define GET32VcBIU_Dummy_xxx(r32) _BFGET_(r32, 0, 0) |
| #define SET32VcBIU_Dummy_xxx(r32,v) _BFSET_(r32, 0, 0,v) |
| #define GET16VcBIU_Dummy_xxx(r16) _BFGET_(r16, 0, 0) |
| #define SET16VcBIU_Dummy_xxx(r16,v) _BFSET_(r16, 0, 0,v) |
| |
| #define w32VcBIU_Dummy {\ |
| UNSG32 uDummy_xxx : 1;\ |
| UNSG32 RSVDx0_b1 : 31;\ |
| } |
| union { UNSG32 u32VcBIU_Dummy; |
| struct w32VcBIU_Dummy; |
| }; |
| /////////////////////////////////////////////////////////// |
| } SIE_VcBIU; |
| |
| typedef union T32VcBIU_Dummy |
| { UNSG32 u32; |
| struct w32VcBIU_Dummy; |
| } T32VcBIU_Dummy; |
| /////////////////////////////////////////////////////////// |
| |
| typedef union TVcBIU_Dummy |
| { UNSG32 u32[1]; |
| struct { |
| struct w32VcBIU_Dummy; |
| }; |
| } TVcBIU_Dummy; |
| |
| /////////////////////////////////////////////////////////// |
| SIGN32 VcBIU_drvrd(SIE_VcBIU *p, UNSG32 base, SIGN32 mem, SIGN32 tst); |
| SIGN32 VcBIU_drvwr(SIE_VcBIU *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd); |
| void VcBIU_reset(SIE_VcBIU *p); |
| SIGN32 VcBIU_cmp (SIE_VcBIU *p, SIE_VcBIU *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst); |
| #define VcBIU_check(p,pie,pfx,hLOG) VcBIU_cmp(p,pie,pfx,(void*)(hLOG),0,0) |
| #define VcBIU_print(p, pfx,hLOG) VcBIU_cmp(p,0, pfx,(void*)(hLOG),0,0) |
| |
| #endif |
| ////// |
| /// ENDOFINTERFACE: VcBIU |
| //////////////////////////////////////////////////////////// |
| |
| |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #pragma pack() |
| |
| #endif |
| ////// |
| /// ENDOFFILE: vcache_spec.h |
| //////////////////////////////////////////////////////////// |
| |