1 /* 2 * Copyright (c) 2011 Intel Corporation. All Rights Reserved. 3 * Copyright (c) Imagination Technologies Limited, UK 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a 6 * copy of this software and associated documentation files (the 7 * "Software"), to deal in the Software without restriction, including 8 * without limitation the rights to use, copy, modify, merge, publish, 9 * distribute, sub license, and/or sell copies of the Software, and to 10 * permit persons to whom the Software is furnished to do so, subject to 11 * the following conditions: 12 * 13 * The above copyright notice and this permission notice (including the 14 * next paragraph) shall be included in all copies or substantial portions 15 * of the Software. 16 * 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 20 * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 21 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 22 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 23 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 */ 25 26 #ifndef _REGCONV_H_topaz_vlc_regs_h 27 #define _REGCONV_H_topaz_vlc_regs_h 28 29 #ifdef __cplusplus 30 #include "img_types.h" 31 #include "systemc_utils.h" 32 #endif 33 34 35 /* Register CR_VLC_CONTROL */ 36 #define TOPAZ_VLC_CR_VLC_CONTROL 0x0000 37 #define MASK_TOPAZ_VLC_CR_CODEC 0x00000003 38 #define SHIFT_TOPAZ_VLC_CR_CODEC 0 39 #define REGNUM_TOPAZ_VLC_CR_CODEC 0x0000 40 #define SIGNED_TOPAZ_VLC_CR_CODEC 0 41 42 #define MASK_TOPAZ_VLC_CR_SLICE_CODING_TYPE 0x0000000C 43 #define SHIFT_TOPAZ_VLC_CR_SLICE_CODING_TYPE 2 44 #define REGNUM_TOPAZ_VLC_CR_SLICE_CODING_TYPE 0x0000 45 #define SIGNED_TOPAZ_VLC_CR_SLICE_CODING_TYPE 0 46 47 #define MASK_TOPAZ_VLC_CR_START 0x00000010 48 #define SHIFT_TOPAZ_VLC_CR_START 4 49 #define REGNUM_TOPAZ_VLC_CR_START 0x0000 50 #define SIGNED_TOPAZ_VLC_CR_START 0 51 52 #define MASK_TOPAZ_VLC_CR_FLUSH 0x00000020 53 #define SHIFT_TOPAZ_VLC_CR_FLUSH 5 54 #define REGNUM_TOPAZ_VLC_CR_FLUSH 0x0000 55 #define SIGNED_TOPAZ_VLC_CR_FLUSH 0 56 57 #define MASK_TOPAZ_VLC_CR_FORCE_SKIP 0x00000040 58 #define SHIFT_TOPAZ_VLC_CR_FORCE_SKIP 6 59 #define REGNUM_TOPAZ_VLC_CR_FORCE_SKIP 0x0000 60 #define SIGNED_TOPAZ_VLC_CR_FORCE_SKIP 0 61 62 #define MASK_TOPAZ_VLC_CR_DISABLE_SKIP 0x00000080 63 #define SHIFT_TOPAZ_VLC_CR_DISABLE_SKIP 7 64 #define REGNUM_TOPAZ_VLC_CR_DISABLE_SKIP 0x0000 65 #define SIGNED_TOPAZ_VLC_CR_DISABLE_SKIP 0 66 67 #define MASK_TOPAZ_VLC_CR_CABAC_ENABLE 0x00000100 68 #define SHIFT_TOPAZ_VLC_CR_CABAC_ENABLE 8 69 #define REGNUM_TOPAZ_VLC_CR_CABAC_ENABLE 0x0000 70 #define SIGNED_TOPAZ_VLC_CR_CABAC_ENABLE 0 71 72 #define MASK_TOPAZ_VLC_CR_VLC_FIELD_CODED 0x00000200 73 #define SHIFT_TOPAZ_VLC_CR_VLC_FIELD_CODED 9 74 #define REGNUM_TOPAZ_VLC_CR_VLC_FIELD_CODED 0x0000 75 #define SIGNED_TOPAZ_VLC_CR_VLC_FIELD_CODED 0 76 77 #define MASK_TOPAZ_VLC_CR_VLC_8X8_TRANSFORM 0x00000400 78 #define SHIFT_TOPAZ_VLC_CR_VLC_8X8_TRANSFORM 10 79 #define REGNUM_TOPAZ_VLC_CR_VLC_8X8_TRANSFORM 0x0000 80 #define SIGNED_TOPAZ_VLC_CR_VLC_8X8_TRANSFORM 0 81 82 #define MASK_TOPAZ_VLC_CR_VLC_CONSTRAINED_INTRA 0x00000800 83 #define SHIFT_TOPAZ_VLC_CR_VLC_CONSTRAINED_INTRA 11 84 #define REGNUM_TOPAZ_VLC_CR_VLC_CONSTRAINED_INTRA 0x0000 85 #define SIGNED_TOPAZ_VLC_CR_VLC_CONSTRAINED_INTRA 0 86 87 #define MASK_TOPAZ_VLC_CR_VLC_SPATIAL_DIRECT 0x00001000 88 #define SHIFT_TOPAZ_VLC_CR_VLC_SPATIAL_DIRECT 12 89 #define REGNUM_TOPAZ_VLC_CR_VLC_SPATIAL_DIRECT 0x0000 90 #define SIGNED_TOPAZ_VLC_CR_VLC_SPATIAL_DIRECT 0 91 92 #define MASK_TOPAZ_VLC_CR_VLC_P_REF_IDX 0x00002000 93 #define SHIFT_TOPAZ_VLC_CR_VLC_P_REF_IDX 13 94 #define REGNUM_TOPAZ_VLC_CR_VLC_P_REF_IDX 0x0000 95 #define SIGNED_TOPAZ_VLC_CR_VLC_P_REF_IDX 0 96 97 #define MASK_TOPAZ_VLC_CR_DISCARD_CODED_DATA 0x00004000 98 #define SHIFT_TOPAZ_VLC_CR_DISCARD_CODED_DATA 14 99 #define REGNUM_TOPAZ_VLC_CR_DISCARD_CODED_DATA 0x0000 100 #define SIGNED_TOPAZ_VLC_CR_DISCARD_CODED_DATA 0 101 102 #define MASK_TOPAZ_VLC_CR_FIELD_SELECT 0x00008000 103 #define SHIFT_TOPAZ_VLC_CR_FIELD_SELECT 15 104 #define REGNUM_TOPAZ_VLC_CR_FIELD_SELECT 0x0000 105 #define SIGNED_TOPAZ_VLC_CR_FIELD_SELECT 0 106 107 #define MASK_TOPAZ_VLC_CR_CODEC_EXTEND 0x10000000 108 #define SHIFT_TOPAZ_VLC_CR_CODEC_EXTEND 28 109 #define REGNUM_TOPAZ_VLC_CR_CODEC_EXTEND 0x0000 110 #define SIGNED_TOPAZ_VLC_CR_CODEC_EXTEND 0 111 112 /* Register CR_VLC_STATUS */ 113 #define TOPAZ_VLC_CR_VLC_STATUS 0x0004 114 #define MASK_TOPAZ_VLC_CR_BUSY 0x00000001 115 #define SHIFT_TOPAZ_VLC_CR_BUSY 0 116 #define REGNUM_TOPAZ_VLC_CR_BUSY 0x0004 117 #define SIGNED_TOPAZ_VLC_CR_BUSY 0 118 119 #define MASK_TOPAZ_VLC_CR_RECODE_AS_IPCM 0x00000004 120 #define SHIFT_TOPAZ_VLC_CR_RECODE_AS_IPCM 2 121 #define REGNUM_TOPAZ_VLC_CR_RECODE_AS_IPCM 0x0004 122 #define SIGNED_TOPAZ_VLC_CR_RECODE_AS_IPCM 0 123 124 /* Register CR_VLC_INFO_0 */ 125 #define TOPAZ_VLC_CR_VLC_INFO_0 0x0008 126 #define MASK_TOPAZ_VLC_CR_FLUSH_STUFFING_BYTES 0x0003E000 127 #define SHIFT_TOPAZ_VLC_CR_FLUSH_STUFFING_BYTES 13 128 #define REGNUM_TOPAZ_VLC_CR_FLUSH_STUFFING_BYTES 0x0008 129 #define SIGNED_TOPAZ_VLC_CR_FLUSH_STUFFING_BYTES 0 130 131 /* Register CR_VLC_INFO_1 */ 132 #define TOPAZ_VLC_CR_VLC_INFO_1 0x000C 133 #define MASK_TOPAZ_VLC_CR_SKIPPED_MBS_IN_FRAME 0x0000FFFF 134 #define SHIFT_TOPAZ_VLC_CR_SKIPPED_MBS_IN_FRAME 0 135 #define REGNUM_TOPAZ_VLC_CR_SKIPPED_MBS_IN_FRAME 0x000C 136 #define SIGNED_TOPAZ_VLC_CR_SKIPPED_MBS_IN_FRAME 0 137 138 #define MASK_TOPAZ_VLC_CR_CODED_MBS_IN_FRAME 0xFFFF0000 139 #define SHIFT_TOPAZ_VLC_CR_CODED_MBS_IN_FRAME 16 140 #define REGNUM_TOPAZ_VLC_CR_CODED_MBS_IN_FRAME 0x000C 141 #define SIGNED_TOPAZ_VLC_CR_CODED_MBS_IN_FRAME 0 142 143 /* Register CR_VLC_INFO_2 */ 144 #define TOPAZ_VLC_CR_VLC_INFO_2 0x0010 145 #define MASK_TOPAZ_VLC_CR_INTRA_MBS_IN_FRAME 0x0000FFFF 146 #define SHIFT_TOPAZ_VLC_CR_INTRA_MBS_IN_FRAME 0 147 #define REGNUM_TOPAZ_VLC_CR_INTRA_MBS_IN_FRAME 0x0010 148 #define SIGNED_TOPAZ_VLC_CR_INTRA_MBS_IN_FRAME 0 149 150 #define MASK_TOPAZ_VLC_CR_INTER_MBS_IN_FRAME 0xFFFF0000 151 #define SHIFT_TOPAZ_VLC_CR_INTER_MBS_IN_FRAME 16 152 #define REGNUM_TOPAZ_VLC_CR_INTER_MBS_IN_FRAME 0x0010 153 #define SIGNED_TOPAZ_VLC_CR_INTER_MBS_IN_FRAME 0 154 155 /* Register CR_VLC_STUFF_HEAD_CTRL */ 156 #define TOPAZ_VLC_CR_VLC_STUFF_HEAD_CTRL 0x0014 157 #define MASK_TOPAZ_VLC_CR_HEADER_ELEMENTS 0x0000001F 158 #define SHIFT_TOPAZ_VLC_CR_HEADER_ELEMENTS 0 159 #define REGNUM_TOPAZ_VLC_CR_HEADER_ELEMENTS 0x0014 160 #define SIGNED_TOPAZ_VLC_CR_HEADER_ELEMENTS 0 161 162 #define MASK_TOPAZ_VLC_CR_STUFFING_WORDS 0x00003FE0 163 #define SHIFT_TOPAZ_VLC_CR_STUFFING_WORDS 5 164 #define REGNUM_TOPAZ_VLC_CR_STUFFING_WORDS 0x0014 165 #define SIGNED_TOPAZ_VLC_CR_STUFFING_WORDS 0 166 167 #define MASK_TOPAZ_VLC_CR_CLEAR_HEADER_FIFO 0x80000000 168 #define SHIFT_TOPAZ_VLC_CR_CLEAR_HEADER_FIFO 31 169 #define REGNUM_TOPAZ_VLC_CR_CLEAR_HEADER_FIFO 0x0014 170 #define SIGNED_TOPAZ_VLC_CR_CLEAR_HEADER_FIFO 0 171 172 /* Register CR_VLC_HEADER_FIFO */ 173 #define TOPAZ_VLC_CR_VLC_HEADER_FIFO 0x0018 174 #define MASK_TOPAZ_VLC_CR_HEADER_DATA 0xFFFFFFFF 175 #define SHIFT_TOPAZ_VLC_CR_HEADER_DATA 0 176 #define REGNUM_TOPAZ_VLC_CR_HEADER_DATA 0x0018 177 #define SIGNED_TOPAZ_VLC_CR_HEADER_DATA 0 178 179 /* Register CR_VLC_HEADER_CTRL */ 180 #define TOPAZ_VLC_CR_VLC_HEADER_CTRL 0x001C 181 #define MASK_TOPAZ_VLC_CR_HEADER_PREFIX 0x7FFFFFFF 182 #define SHIFT_TOPAZ_VLC_CR_HEADER_PREFIX 0 183 #define REGNUM_TOPAZ_VLC_CR_HEADER_PREFIX 0x001C 184 #define SIGNED_TOPAZ_VLC_CR_HEADER_PREFIX 0 185 186 #define MASK_TOPAZ_VLC_CR_DISABLE_PREFIX_DETECTION 0x80000000 187 #define SHIFT_TOPAZ_VLC_CR_DISABLE_PREFIX_DETECTION 31 188 #define REGNUM_TOPAZ_VLC_CR_DISABLE_PREFIX_DETECTION 0x001C 189 #define SIGNED_TOPAZ_VLC_CR_DISABLE_PREFIX_DETECTION 0 190 191 /* Register CR_VLC_HEADER_STATUS */ 192 #define TOPAZ_VLC_CR_VLC_HEADER_STATUS 0x0020 193 #define MASK_TOPAZ_VLC_CR_HEADER_FIFO_FULL 0x00000001 194 #define SHIFT_TOPAZ_VLC_CR_HEADER_FIFO_FULL 0 195 #define REGNUM_TOPAZ_VLC_CR_HEADER_FIFO_FULL 0x0020 196 #define SIGNED_TOPAZ_VLC_CR_HEADER_FIFO_FULL 0 197 198 /* Register CR_VLC_RATE_CTRL_MB_TYPE */ 199 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_MB_TYPE 0x0024 200 #define MASK_TOPAZ_VLC_CR_MB_CODING_TYPE_P 0x000000FF 201 #define SHIFT_TOPAZ_VLC_CR_MB_CODING_TYPE_P 0 202 #define REGNUM_TOPAZ_VLC_CR_MB_CODING_TYPE_P 0x0024 203 #define SIGNED_TOPAZ_VLC_CR_MB_CODING_TYPE_P 0 204 205 #define MASK_TOPAZ_VLC_CR_MB_CODING_TYPE_I 0x0000FF00 206 #define SHIFT_TOPAZ_VLC_CR_MB_CODING_TYPE_I 8 207 #define REGNUM_TOPAZ_VLC_CR_MB_CODING_TYPE_I 0x0024 208 #define SIGNED_TOPAZ_VLC_CR_MB_CODING_TYPE_I 0 209 210 #define MASK_TOPAZ_VLC_CR_MB_CODING_TYPE_B 0x00FF0000 211 #define SHIFT_TOPAZ_VLC_CR_MB_CODING_TYPE_B 16 212 #define REGNUM_TOPAZ_VLC_CR_MB_CODING_TYPE_B 0x0024 213 #define SIGNED_TOPAZ_VLC_CR_MB_CODING_TYPE_B 0 214 215 #define MASK_TOPAZ_VLC_CR_MB_CODING_TYPE_SKIP 0xFF000000 216 #define SHIFT_TOPAZ_VLC_CR_MB_CODING_TYPE_SKIP 24 217 #define REGNUM_TOPAZ_VLC_CR_MB_CODING_TYPE_SKIP 0x0024 218 #define SIGNED_TOPAZ_VLC_CR_MB_CODING_TYPE_SKIP 0 219 220 /* Register CR_VLC_RATE_CTRL_DCBITS */ 221 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_DCBITS 0x0028 222 #define MASK_TOPAZ_VLC_CR_DC_BITS 0x0000FFFF 223 #define SHIFT_TOPAZ_VLC_CR_DC_BITS 0 224 #define REGNUM_TOPAZ_VLC_CR_DC_BITS 0x0028 225 #define SIGNED_TOPAZ_VLC_CR_DC_BITS 0 226 227 #define MASK_TOPAZ_VLC_CR_MB_CODING_IPCM 0xFF000000 228 #define SHIFT_TOPAZ_VLC_CR_MB_CODING_IPCM 24 229 #define REGNUM_TOPAZ_VLC_CR_MB_CODING_IPCM 0x0028 230 #define SIGNED_TOPAZ_VLC_CR_MB_CODING_IPCM 0 231 232 /* Register CR_VLC_RATE_CTRL_MVBITS */ 233 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_MVBITS 0x002C 234 #define MASK_TOPAZ_VLC_CR_MV_BITS 0x00FFFFFF 235 #define SHIFT_TOPAZ_VLC_CR_MV_BITS 0 236 #define REGNUM_TOPAZ_VLC_CR_MV_BITS 0x002C 237 #define SIGNED_TOPAZ_VLC_CR_MV_BITS 0 238 239 /* Register CR_VLC_RATE_CTRL_MBSYM */ 240 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_MBSYM 0x0030 241 #define MASK_TOPAZ_VLC_CR_MB_SYMBOLS_BITS 0x00FFFFFF 242 #define SHIFT_TOPAZ_VLC_CR_MB_SYMBOLS_BITS 0 243 #define REGNUM_TOPAZ_VLC_CR_MB_SYMBOLS_BITS 0x0030 244 #define SIGNED_TOPAZ_VLC_CR_MB_SYMBOLS_BITS 0 245 246 /* Register CR_VLC_RATE_CTRL_MBRES */ 247 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_MBRES 0x0034 248 #define MASK_TOPAZ_VLC_CR_MB_RESIDUAL_BITS 0x00FFFFFF 249 #define SHIFT_TOPAZ_VLC_CR_MB_RESIDUAL_BITS 0 250 #define REGNUM_TOPAZ_VLC_CR_MB_RESIDUAL_BITS 0x0034 251 #define SIGNED_TOPAZ_VLC_CR_MB_RESIDUAL_BITS 0 252 253 /* Register CR_VLC_SIGNATURE_0 */ 254 #define TOPAZ_VLC_CR_VLC_SIGNATURE_0 0x0038 255 #define MASK_TOPAZ_VLC_CR_MB_SIGNATURE 0xFFFFFFFF 256 #define SHIFT_TOPAZ_VLC_CR_MB_SIGNATURE 0 257 #define REGNUM_TOPAZ_VLC_CR_MB_SIGNATURE 0x0038 258 #define SIGNED_TOPAZ_VLC_CR_MB_SIGNATURE 0 259 260 /* Register CR_VLC_SIGNATURE_1 */ 261 #define TOPAZ_VLC_CR_VLC_SIGNATURE_1 0x003C 262 #define MASK_TOPAZ_VLC_CR_BLK_SIGNATURE 0xFFFFFFFF 263 #define SHIFT_TOPAZ_VLC_CR_BLK_SIGNATURE 0 264 #define REGNUM_TOPAZ_VLC_CR_BLK_SIGNATURE 0x003C 265 #define SIGNED_TOPAZ_VLC_CR_BLK_SIGNATURE 0 266 267 /* Register CR_VLC_SIGNATURE_2 */ 268 #define TOPAZ_VLC_CR_VLC_SIGNATURE_2 0x0040 269 #define MASK_TOPAZ_VLC_CR_LOOKUP_SIGNATURE 0xFFFFFFFF 270 #define SHIFT_TOPAZ_VLC_CR_LOOKUP_SIGNATURE 0 271 #define REGNUM_TOPAZ_VLC_CR_LOOKUP_SIGNATURE 0x0040 272 #define SIGNED_TOPAZ_VLC_CR_LOOKUP_SIGNATURE 0 273 274 /* Register CR_VLC_SIGNATURE_3 */ 275 #define TOPAZ_VLC_CR_VLC_SIGNATURE_3 0x0044 276 #define MASK_TOPAZ_VLC_CR_BITSTREAM_SIGNATURE 0xFFFFFFFF 277 #define SHIFT_TOPAZ_VLC_CR_BITSTREAM_SIGNATURE 0 278 #define REGNUM_TOPAZ_VLC_CR_BITSTREAM_SIGNATURE 0x0044 279 #define SIGNED_TOPAZ_VLC_CR_BITSTREAM_SIGNATURE 0 280 281 /* Register CR_VLC_SIGNATURE_4 */ 282 #define TOPAZ_VLC_CR_VLC_SIGNATURE_4 0x0048 283 #define MASK_TOPAZ_VLC_CR_HEADER_SIGNATURE 0xFFFFFFFF 284 #define SHIFT_TOPAZ_VLC_CR_HEADER_SIGNATURE 0 285 #define REGNUM_TOPAZ_VLC_CR_HEADER_SIGNATURE 0x0048 286 #define SIGNED_TOPAZ_VLC_CR_HEADER_SIGNATURE 0 287 288 /* Register CR_VLC_PERFORMANCE_0 */ 289 #define TOPAZ_VLC_CR_VLC_PERFORMANCE_0 0x0050 290 #define MASK_TOPAZ_VLC_CR_WORST_MB_CYCLES 0x0000FFFF 291 #define SHIFT_TOPAZ_VLC_CR_WORST_MB_CYCLES 0 292 #define REGNUM_TOPAZ_VLC_CR_WORST_MB_CYCLES 0x0050 293 #define SIGNED_TOPAZ_VLC_CR_WORST_MB_CYCLES 0 294 295 #define MASK_TOPAZ_VLC_CR_WORST_MB_TYPE 0x00030000 296 #define SHIFT_TOPAZ_VLC_CR_WORST_MB_TYPE 16 297 #define REGNUM_TOPAZ_VLC_CR_WORST_MB_TYPE 0x0050 298 #define SIGNED_TOPAZ_VLC_CR_WORST_MB_TYPE 0 299 300 #define MASK_TOPAZ_VLC_CR_WORST_MB_IPCM 0x00040000 301 #define SHIFT_TOPAZ_VLC_CR_WORST_MB_IPCM 18 302 #define REGNUM_TOPAZ_VLC_CR_WORST_MB_IPCM 0x0050 303 #define SIGNED_TOPAZ_VLC_CR_WORST_MB_IPCM 0 304 305 /* Register CR_VLC_PERFORMANCE_1 */ 306 #define TOPAZ_VLC_CR_VLC_PERFORMANCE_1 0x0054 307 #define MASK_TOPAZ_VLC_CR_WORST_MB_NUM 0x003FFFFF 308 #define SHIFT_TOPAZ_VLC_CR_WORST_MB_NUM 0 309 #define REGNUM_TOPAZ_VLC_CR_WORST_MB_NUM 0x0054 310 #define SIGNED_TOPAZ_VLC_CR_WORST_MB_NUM 0 311 312 /* Register CR_VLC_PERFORMANCE_2 */ 313 #define TOPAZ_VLC_CR_VLC_PERFORMANCE_2 0x0058 314 #define MASK_TOPAZ_VLC_CR_WORST_MB_RESET 0x00000001 315 #define SHIFT_TOPAZ_VLC_CR_WORST_MB_RESET 0 316 #define REGNUM_TOPAZ_VLC_CR_WORST_MB_RESET 0x0058 317 #define SIGNED_TOPAZ_VLC_CR_WORST_MB_RESET 0 318 319 #define MASK_TOPAZ_VLC_CR_DISABLE_COUNTERS 0x00000002 320 #define SHIFT_TOPAZ_VLC_CR_DISABLE_COUNTERS 1 321 #define REGNUM_TOPAZ_VLC_CR_DISABLE_COUNTERS 0x0058 322 #define SIGNED_TOPAZ_VLC_CR_DISABLE_COUNTERS 0 323 324 /* Register CR_VLC_IPCM_0 */ 325 #define TOPAZ_VLC_CR_VLC_IPCM_0 0x005C 326 #define MASK_TOPAZ_VLC_CR_CABAC_DB_MARGIN 0x03FF0000 327 #define SHIFT_TOPAZ_VLC_CR_CABAC_DB_MARGIN 16 328 #define REGNUM_TOPAZ_VLC_CR_CABAC_DB_MARGIN 0x005C 329 #define SIGNED_TOPAZ_VLC_CR_CABAC_DB_MARGIN 0 330 331 #define MASK_TOPAZ_VLC_CR_CABAC_BIN_FLEX 0x00001FFF 332 #define SHIFT_TOPAZ_VLC_CR_CABAC_BIN_FLEX 0 333 #define REGNUM_TOPAZ_VLC_CR_CABAC_BIN_FLEX 0x005C 334 #define SIGNED_TOPAZ_VLC_CR_CABAC_BIN_FLEX 0 335 336 /* Register CR_VLC_IPCM_1 */ 337 #define TOPAZ_VLC_CR_VLC_IPCM_1 0x0060 338 #define MASK_TOPAZ_VLC_CR_IPCM_THRESHOLD 0x00000FFF 339 #define SHIFT_TOPAZ_VLC_CR_IPCM_THRESHOLD 0 340 #define REGNUM_TOPAZ_VLC_CR_IPCM_THRESHOLD 0x0060 341 #define SIGNED_TOPAZ_VLC_CR_IPCM_THRESHOLD 0 342 343 #define MASK_TOPAZ_VLC_CR_CABAC_BIN_LIMIT 0x1FFF0000 344 #define SHIFT_TOPAZ_VLC_CR_CABAC_BIN_LIMIT 16 345 #define REGNUM_TOPAZ_VLC_CR_CABAC_BIN_LIMIT 0x0060 346 #define SIGNED_TOPAZ_VLC_CR_CABAC_BIN_LIMIT 0 347 348 /* Register CR_VLC_MPEG4_CFG */ 349 #define TOPAZ_VLC_CR_VLC_MPEG4_CFG 0x0064 350 #define MASK_TOPAZ_VLC_CR_RSIZE 0x00000007 351 #define SHIFT_TOPAZ_VLC_CR_RSIZE 0 352 #define REGNUM_TOPAZ_VLC_CR_RSIZE 0x0064 353 #define SIGNED_TOPAZ_VLC_CR_RSIZE 0 354 355 /* Register CR_VLC_MB_PARAMS */ 356 #define TOPAZ_VLC_CR_VLC_MB_PARAMS 0x0068 357 #define MASK_TOPAZ_VLC_CR_QP 0x0000003F 358 #define SHIFT_TOPAZ_VLC_CR_QP 0 359 #define REGNUM_TOPAZ_VLC_CR_QP 0x0068 360 #define SIGNED_TOPAZ_VLC_CR_QP 0 361 362 #define MASK_TOPAZ_VLC_CR_QP_CB 0x003F0000 363 #define SHIFT_TOPAZ_VLC_CR_QP_CB 16 364 #define REGNUM_TOPAZ_VLC_CR_QP_CB 0x0068 365 #define SIGNED_TOPAZ_VLC_CR_QP_CB 0 366 367 #define MASK_TOPAZ_VLC_CR_QP_CR 0x3F000000 368 #define SHIFT_TOPAZ_VLC_CR_QP_CR 24 369 #define REGNUM_TOPAZ_VLC_CR_QP_CR 0x0068 370 #define SIGNED_TOPAZ_VLC_CR_QP_CR 0 371 372 /* Register CR_VLC_RESET */ 373 #define TOPAZ_VLC_CR_VLC_RESET 0x006C 374 #define MASK_TOPAZ_VLC_CR_RESET 0x00000001 375 #define SHIFT_TOPAZ_VLC_CR_RESET 0 376 #define REGNUM_TOPAZ_VLC_CR_RESET 0x006C 377 #define SIGNED_TOPAZ_VLC_CR_RESET 0 378 379 /* Register CR_VLC_WRITE_ADDR */ 380 #define TOPAZ_VLC_CR_VLC_WRITE_ADDR 0x0070 381 #define MASK_TOPAZ_VLC_CR_NEXT_WRITE_ADDR 0xFFFFFFF0 382 #define SHIFT_TOPAZ_VLC_CR_NEXT_WRITE_ADDR 4 383 #define REGNUM_TOPAZ_VLC_CR_NEXT_WRITE_ADDR 0x0070 384 #define SIGNED_TOPAZ_VLC_CR_NEXT_WRITE_ADDR 0 385 386 /* Register CR_VLC_CHROMA_QP_OFFSET */ 387 #define TOPAZ_VLC_CR_VLC_CHROMA_QP_OFFSET 0x0074 388 #define MASK_TOPAZ_VLC_CR_QPCB_OFFSET 0x0000001F 389 #define SHIFT_TOPAZ_VLC_CR_QPCB_OFFSET 0 390 #define REGNUM_TOPAZ_VLC_CR_QPCB_OFFSET 0x0074 391 #define SIGNED_TOPAZ_VLC_CR_QPCB_OFFSET 0 392 393 #define MASK_TOPAZ_VLC_CR_QPCR_OFFSET 0x00001F00 394 #define SHIFT_TOPAZ_VLC_CR_QPCR_OFFSET 8 395 #define REGNUM_TOPAZ_VLC_CR_QPCR_OFFSET 0x0074 396 #define SIGNED_TOPAZ_VLC_CR_QPCR_OFFSET 0 397 398 /* Register CR_VLC_RATE_CTRL_QP */ 399 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_QP 0x0078 400 #define MASK_TOPAZ_VLC_CR_BU_QPY_INTRA 0x00003FFF 401 #define SHIFT_TOPAZ_VLC_CR_BU_QPY_INTRA 0 402 #define REGNUM_TOPAZ_VLC_CR_BU_QPY_INTRA 0x0078 403 #define SIGNED_TOPAZ_VLC_CR_BU_QPY_INTRA 0 404 405 #define MASK_TOPAZ_VLC_CR_BU_QPY_INTER 0x3FFF0000 406 #define SHIFT_TOPAZ_VLC_CR_BU_QPY_INTER 16 407 #define REGNUM_TOPAZ_VLC_CR_BU_QPY_INTER 0x0078 408 #define SIGNED_TOPAZ_VLC_CR_BU_QPY_INTER 0 409 410 /* Register CR_VLC_BU_STAT_UPDATE */ 411 #define TOPAZ_VLC_CR_VLC_BU_STAT_UPDATE 0x007C 412 #define MASK_TOPAZ_VLC_CR_FORCE_BU_STAT_UPDATE 0x00000001 413 #define SHIFT_TOPAZ_VLC_CR_FORCE_BU_STAT_UPDATE 0 414 #define REGNUM_TOPAZ_VLC_CR_FORCE_BU_STAT_UPDATE 0x007C 415 #define SIGNED_TOPAZ_VLC_CR_FORCE_BU_STAT_UPDATE 0 416 417 /* Register CR_VLC_SLICE_HEADER_CTRL */ 418 #define TOPAZ_VLC_CR_VLC_SLICE_HEADER_CTRL 0x0080 419 #define MASK_TOPAZ_VLC_CR_SLICE_HEADER_ELEMENTS 0x0000001F 420 #define SHIFT_TOPAZ_VLC_CR_SLICE_HEADER_ELEMENTS 0 421 #define REGNUM_TOPAZ_VLC_CR_SLICE_HEADER_ELEMENTS 0x0080 422 #define SIGNED_TOPAZ_VLC_CR_SLICE_HEADER_ELEMENTS 0 423 424 #define MASK_TOPAZ_VLC_CR_SLICE_PREFIX_ELEMENTS 0x00001F00 425 #define SHIFT_TOPAZ_VLC_CR_SLICE_PREFIX_ELEMENTS 8 426 #define REGNUM_TOPAZ_VLC_CR_SLICE_PREFIX_ELEMENTS 0x0080 427 #define SIGNED_TOPAZ_VLC_CR_SLICE_PREFIX_ELEMENTS 0 428 429 #define MASK_TOPAZ_VLC_CR_SLICE_MB_NUM 0x3FFF0000 430 #define SHIFT_TOPAZ_VLC_CR_SLICE_MB_NUM 16 431 #define REGNUM_TOPAZ_VLC_CR_SLICE_MB_NUM 0x0080 432 #define SIGNED_TOPAZ_VLC_CR_SLICE_MB_NUM 0 433 434 /* Register CR_VLC_SLICE_CTRL_0 */ 435 #define TOPAZ_VLC_CR_VLC_SLICE_CTRL_0 0x0084 436 #define MASK_TOPAZ_VLC_CR_SLICE_SIZE_LIMIT 0x00FFFFFF 437 #define SHIFT_TOPAZ_VLC_CR_SLICE_SIZE_LIMIT 0 438 #define REGNUM_TOPAZ_VLC_CR_SLICE_SIZE_LIMIT 0x0084 439 #define SIGNED_TOPAZ_VLC_CR_SLICE_SIZE_LIMIT 0 440 441 /* Register CR_VLC_SLICE_CTRL_1 */ 442 #define TOPAZ_VLC_CR_VLC_SLICE_CTRL_1 0x008C 443 #define MASK_TOPAZ_VLC_CR_SLICE_MBS_LIMIT 0x00003FFF 444 #define SHIFT_TOPAZ_VLC_CR_SLICE_MBS_LIMIT 0 445 #define REGNUM_TOPAZ_VLC_CR_SLICE_MBS_LIMIT 0x008C 446 #define SIGNED_TOPAZ_VLC_CR_SLICE_MBS_LIMIT 0 447 448 /* Register CR_VLC_RATE_CTRL_HEADERS */ 449 #define TOPAZ_VLC_CR_VLC_RATE_CTRL_HEADERS 0x0090 450 #define MASK_TOPAZ_VLC_CR_SLICE_HEADER_BITS 0x00FFFFFF 451 #define SHIFT_TOPAZ_VLC_CR_SLICE_HEADER_BITS 0 452 #define REGNUM_TOPAZ_VLC_CR_SLICE_HEADER_BITS 0x0090 453 #define SIGNED_TOPAZ_VLC_CR_SLICE_HEADER_BITS 0 454 455 /* Register CR_VLC_SIGNATURE_5 */ 456 #define TOPAZ_VLC_CR_VLC_SIGNATURE_5 0x0094 457 #define MASK_TOPAZ_VLC_CR_CABAC_SIGNATURE 0xFFFFFFFF 458 #define SHIFT_TOPAZ_VLC_CR_CABAC_SIGNATURE 0 459 #define REGNUM_TOPAZ_VLC_CR_CABAC_SIGNATURE 0x0094 460 #define SIGNED_TOPAZ_VLC_CR_CABAC_SIGNATURE 0 461 462 /* Register CR_VLC_SIGNATURE_6 */ 463 #define TOPAZ_VLC_CR_VLC_SIGNATURE_6 0x0098 464 #define MASK_TOPAZ_VLC_CR_IPCM_SIGNATURE 0xFFFFFFFF 465 #define SHIFT_TOPAZ_VLC_CR_IPCM_SIGNATURE 0 466 #define REGNUM_TOPAZ_VLC_CR_IPCM_SIGNATURE 0x0098 467 #define SIGNED_TOPAZ_VLC_CR_IPCM_SIGNATURE 0 468 469 /* 470 Byte range covering the group TOPAZ_VLC file 471 */ 472 473 #define TOPAZ_VLC_TOPAZ_VLC_REGISTERS_START 0x00000000 474 #define TOPAZ_VLC_TOPAZ_VLC_REGISTERS_END 0x0000009B 475 476 /* 477 Byte range covering the whole register file 478 */ 479 480 #define TOPAZ_VLC_REGISTERS_START 0x00000000 481 #define TOPAZ_VLC_REGISTERS_END 0x0000009B 482 #define TOPAZ_VLC_REG_DEFAULT_TABLE struct {\ 483 IMG_UINT16 uRegOffset;\ 484 IMG_UINT32 uRegDefault;\ 485 IMG_UINT32 uRegMask;\ 486 bool bReadonly;\ 487 const char* pszName;\ 488 } TOPAZ_VLC_Defaults[] = {\ 489 {0x0000, 0x00000000, 0x1000FFFF, 0, "CR_VLC_CONTROL" } ,\ 490 {0x0004, 0x00000000, 0x00000005, 1, "CR_VLC_STATUS" } ,\ 491 {0x0008, 0x00000000, 0x0003E000, 1, "CR_VLC_INFO_0" } ,\ 492 {0x000C, 0x00000000, 0xFFFFFFFF, 0, "CR_VLC_INFO_1" } ,\ 493 {0x0010, 0x00000000, 0xFFFFFFFF, 0, "CR_VLC_INFO_2" } ,\ 494 {0x0014, 0x00000000, 0x80003FFF, 0, "CR_VLC_STUFF_HEAD_CTRL" } ,\ 495 {0x0018, 0x00000000, 0xFFFFFFFF, 0, "CR_VLC_HEADER_FIFO" } ,\ 496 {0x001C, 0x00000000, 0xFFFFFFFF, 0, "CR_VLC_HEADER_CTRL" } ,\ 497 {0x0020, 0x00000000, 0x00000001, 1, "CR_VLC_HEADER_STATUS" } ,\ 498 {0x0024, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_RATE_CTRL_MB_TYPE" } ,\ 499 {0x0028, 0x00000000, 0xFF00FFFF, 1, "CR_VLC_RATE_CTRL_DCBITS" } ,\ 500 {0x002C, 0x00000000, 0x00FFFFFF, 1, "CR_VLC_RATE_CTRL_MVBITS" } ,\ 501 {0x0030, 0x00000000, 0x00FFFFFF, 1, "CR_VLC_RATE_CTRL_MBSYM" } ,\ 502 {0x0034, 0x00000000, 0x00FFFFFF, 1, "CR_VLC_RATE_CTRL_MBRES" } ,\ 503 {0x0038, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_0" } ,\ 504 {0x003C, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_1" } ,\ 505 {0x0040, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_2" } ,\ 506 {0x0044, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_3" } ,\ 507 {0x0048, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_4" } ,\ 508 {0x0050, 0x00000000, 0x0007FFFF, 0, "CR_VLC_PERFORMANCE_0" } ,\ 509 {0x0054, 0x00000000, 0x003FFFFF, 0, "CR_VLC_PERFORMANCE_1" } ,\ 510 {0x0058, 0x00000000, 0x00000003, 0, "CR_VLC_PERFORMANCE_2" } ,\ 511 {0x005C, 0x01900000, 0x03FF1FFF, 0, "CR_VLC_IPCM_0" } ,\ 512 {0x0060, 0x00000000, 0x1FFF0FFF, 0, "CR_VLC_IPCM_1" } ,\ 513 {0x0064, 0x00000000, 0x00000007, 0, "CR_VLC_MPEG4_CFG" } ,\ 514 {0x0068, 0x00000000, 0x3F3F003F, 1, "CR_VLC_MB_PARAMS" } ,\ 515 {0x006C, 0x00000000, 0x00000001, 0, "CR_VLC_RESET" } ,\ 516 {0x0070, 0x00000000, 0xFFFFFFF0, 0, "CR_VLC_WRITE_ADDR" } ,\ 517 {0x0074, 0x00000000, 0x00001F1F, 0, "CR_VLC_CHROMA_QP_OFFSET" } ,\ 518 {0x0078, 0x00000000, 0x3FFF3FFF, 1, "CR_VLC_RATE_CTRL_QP" } ,\ 519 {0x007C, 0x00000000, 0x00000001, 0, "CR_VLC_BU_STAT_UPDATE" } ,\ 520 {0x0080, 0x00000000, 0x3FFF1F1F, 0, "CR_VLC_SLICE_HEADER_CTRL" } ,\ 521 {0x0084, 0x00000000, 0x00FFFFFF, 0, "CR_VLC_SLICE_CTRL_0" } ,\ 522 {0x008C, 0x00000000, 0x00003FFF, 0, "CR_VLC_SLICE_CTRL_1" } ,\ 523 {0x0090, 0x00000000, 0x00FFFFFF, 1, "CR_VLC_RATE_CTRL_HEADERS" } ,\ 524 {0x0094, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_5" } ,\ 525 {0x0098, 0x00000000, 0xFFFFFFFF, 1, "CR_VLC_SIGNATURE_6" } ,\ 526 { 0 }} 527 528 #define TOPAZ_VLC_REGS_INIT(uBase) \ 529 { \ 530 int n;\ 531 TOPAZ_VLC_REG_DEFAULT_TABLE;\ 532 for (n = 0; n < sizeof(TOPAZ_VLC_Defaults)/ sizeof(TOPAZ_VLC_Defaults[0] ) -1; n++)\ 533 {\ 534 RegWriteNoTrap(TOPAZ_VLC_Defaults[n].uRegOffset + uBase, TOPAZ_VLC_Defaults[n].uRegDefault); \ 535 }\ 536 } 537 #endif 538