1*437bfbebSnyanmisaka /* 2*437bfbebSnyanmisaka * Copyright 2015 Rockchip Electronics Co. LTD 3*437bfbebSnyanmisaka * 4*437bfbebSnyanmisaka * Licensed under the Apache License, Version 2.0 (the "License"); 5*437bfbebSnyanmisaka * you may not use this file except in compliance with the License. 6*437bfbebSnyanmisaka * You may obtain a copy of the License at 7*437bfbebSnyanmisaka * 8*437bfbebSnyanmisaka * http://www.apache.org/licenses/LICENSE-2.0 9*437bfbebSnyanmisaka * 10*437bfbebSnyanmisaka * Unless required by applicable law or agreed to in writing, software 11*437bfbebSnyanmisaka * distributed under the License is distributed on an "AS IS" BASIS, 12*437bfbebSnyanmisaka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*437bfbebSnyanmisaka * See the License for the specific language governing permissions and 14*437bfbebSnyanmisaka * limitations under the License. 15*437bfbebSnyanmisaka */ 16*437bfbebSnyanmisaka 17*437bfbebSnyanmisaka #ifndef __HAL_H264E_VEPU541_REG_L2_H__ 18*437bfbebSnyanmisaka #define __HAL_H264E_VEPU541_REG_L2_H__ 19*437bfbebSnyanmisaka 20*437bfbebSnyanmisaka #include "rk_type.h" 21*437bfbebSnyanmisaka 22*437bfbebSnyanmisaka /* 23*437bfbebSnyanmisaka * L2CFG_ADDR 24*437bfbebSnyanmisaka * Address offset: 0x3F0 Access type: read and write 25*437bfbebSnyanmisaka * Level2 configuration address 26*437bfbebSnyanmisaka */ 27*437bfbebSnyanmisaka /* 28*437bfbebSnyanmisaka * L2CFG_WDATA 29*437bfbebSnyanmisaka * Address offset: 0x3F4 Access type: read and write 30*437bfbebSnyanmisaka * L2 configuration write data 31*437bfbebSnyanmisaka */ 32*437bfbebSnyanmisaka /* 33*437bfbebSnyanmisaka * L2 configuration write data. 34*437bfbebSnyanmisaka * 35*437bfbebSnyanmisaka * Single access: 36*437bfbebSnyanmisaka * write address to VEPU_L2CFG_ADDR then write data to VEPU_L2CFG_WDATA. 37*437bfbebSnyanmisaka * 38*437bfbebSnyanmisaka * Burst access: 39*437bfbebSnyanmisaka * write the start address to VEPU_L2CFG_ADDR then write datas 40*437bfbebSnyanmisaka * (to VEPU_L2CFG_WDATA) consecutively. 41*437bfbebSnyanmisaka * Address will be auto increased after write VEPU_L2CFG_WDATA, 42*437bfbebSnyanmisaka * no need to configure VEPU_L2CFG_ADDR. 43*437bfbebSnyanmisaka */ 44*437bfbebSnyanmisaka 45*437bfbebSnyanmisaka /* 46*437bfbebSnyanmisaka * L2CFG_RDATA 47*437bfbebSnyanmisaka * Address offset: 0x3F8 Access type: read and write 48*437bfbebSnyanmisaka * L2 configuration read data 49*437bfbebSnyanmisaka */ 50*437bfbebSnyanmisaka struct { 51*437bfbebSnyanmisaka /* 52*437bfbebSnyanmisaka * L2 configuration read data. 53*437bfbebSnyanmisaka * 54*437bfbebSnyanmisaka * Single access: 55*437bfbebSnyanmisaka * write address to VEPU_L2CFG_ADDR then read data from VEPU_L2CFG_RDATA. 56*437bfbebSnyanmisaka * 57*437bfbebSnyanmisaka * Burst access: 58*437bfbebSnyanmisaka * write the start address to VEPU_L2CFG_ADDR then read datas 59*437bfbebSnyanmisaka * (from VEPU_L2CFG_RDATA) consecutively. 60*437bfbebSnyanmisaka * Address will be auto increased after read VEPU_L2CFG_RDATA, 61*437bfbebSnyanmisaka * no need to configure VEPU_L2CFG_ADDR. 62*437bfbebSnyanmisaka */ 63*437bfbebSnyanmisaka RK_U32 l2cfg_rdata; 64*437bfbebSnyanmisaka } reg254; 65*437bfbebSnyanmisaka 66*437bfbebSnyanmisaka /* reg gap 255 */ 67*437bfbebSnyanmisaka RK_U32 reg_255; 68*437bfbebSnyanmisaka 69*437bfbebSnyanmisaka 70*437bfbebSnyanmisaka typedef struct Vepu541H264eRegL2Set_t { 71*437bfbebSnyanmisaka /* 72*437bfbebSnyanmisaka * IPRD_TTHDY4_0_H264 ~ IPRD_TTHDY4_1_H264 73*437bfbebSnyanmisaka * Address: 0x0004~0x0008 Access type: read and write 74*437bfbebSnyanmisaka * The texture thredsholds for H.264 LUMA 4x4 intra prediction 75*437bfbebSnyanmisaka */ 76*437bfbebSnyanmisaka RK_U16 iprd_tthdy4[4]; 77*437bfbebSnyanmisaka 78*437bfbebSnyanmisaka /* 79*437bfbebSnyanmisaka * IPRD_TTHDC8_0_H264 ~ IPRD_TTHDC8_1_H264 80*437bfbebSnyanmisaka * Address: 0x000C~0x0010 Access type: read and write 81*437bfbebSnyanmisaka * The texture threshold for H.264 CHROMA 8x8 intra prediction. 82*437bfbebSnyanmisaka */ 83*437bfbebSnyanmisaka RK_U16 iprd_tthdc8[4]; 84*437bfbebSnyanmisaka 85*437bfbebSnyanmisaka /* 86*437bfbebSnyanmisaka * IPRD_TTHDY8_0_H264 ~ IPRD_TTHDY8_1_H264 87*437bfbebSnyanmisaka * Address: 0x0014~0x0018 Access type: read and write 88*437bfbebSnyanmisaka * The texture thredsholds for H.264 LUMA 8x8 intra prediction 89*437bfbebSnyanmisaka */ 90*437bfbebSnyanmisaka RK_U16 iprd_tthdy8[4]; 91*437bfbebSnyanmisaka 92*437bfbebSnyanmisaka /* 93*437bfbebSnyanmisaka * IPRD_TTHD_UL_H264 94*437bfbebSnyanmisaka * Address: 0x001C Access type: read and write 95*437bfbebSnyanmisaka * Texture thredsholds of up and left MB for H.264 LUMA intra prediction. 96*437bfbebSnyanmisaka */ 97*437bfbebSnyanmisaka RK_U32 iprd_tthd_ul; 98*437bfbebSnyanmisaka 99*437bfbebSnyanmisaka /* 100*437bfbebSnyanmisaka * IPRD_WGTY8_H264 101*437bfbebSnyanmisaka * Address: 0x0020 Access type: read and write 102*437bfbebSnyanmisaka * Weights of the cost for H.264 LUMA 8x8 intra prediction 103*437bfbebSnyanmisaka */ 104*437bfbebSnyanmisaka RK_U8 iprd_wgty8[4]; 105*437bfbebSnyanmisaka 106*437bfbebSnyanmisaka /* 107*437bfbebSnyanmisaka * IPRD_WGTY4_H264 108*437bfbebSnyanmisaka * Address: 0x0024 Access type: read and write 109*437bfbebSnyanmisaka * Weights of the cost for H.264 LUMA 4x4 intra prediction 110*437bfbebSnyanmisaka */ 111*437bfbebSnyanmisaka RK_U8 iprd_wgty4[4]; 112*437bfbebSnyanmisaka 113*437bfbebSnyanmisaka /* 114*437bfbebSnyanmisaka * IPRD_WGTY16_H264 115*437bfbebSnyanmisaka * Address: 0x0028 Access type: read and write 116*437bfbebSnyanmisaka * Weights of the cost for H.264 LUMA 16x16 intra prediction 117*437bfbebSnyanmisaka */ 118*437bfbebSnyanmisaka RK_U8 iprd_wgty16[4]; 119*437bfbebSnyanmisaka 120*437bfbebSnyanmisaka /* 121*437bfbebSnyanmisaka * IPRD_WGTC8_H264 122*437bfbebSnyanmisaka * Address: 0x002C Access type: read and write 123*437bfbebSnyanmisaka * Weights of the cost for H.264 CHROMA 8x8 intra prediction 124*437bfbebSnyanmisaka */ 125*437bfbebSnyanmisaka RK_U8 iprd_wgtc8[4]; 126*437bfbebSnyanmisaka 127*437bfbebSnyanmisaka /* 128*437bfbebSnyanmisaka * QNT_BIAS_COMB 129*437bfbebSnyanmisaka * Address: 0x0030 Access type: read and write 130*437bfbebSnyanmisaka * Quantization bias for H.264 and HEVC. 131*437bfbebSnyanmisaka */ 132*437bfbebSnyanmisaka struct { 133*437bfbebSnyanmisaka /* Quantization bias for HEVC and H.264 I frame. */ 134*437bfbebSnyanmisaka RK_U32 qnt_bias_i : 10; 135*437bfbebSnyanmisaka /* Quantization bias for HEVC and H.264 P frame. */ 136*437bfbebSnyanmisaka RK_U32 qnt_bias_p : 10; 137*437bfbebSnyanmisaka RK_U32 reserved : 12; 138*437bfbebSnyanmisaka } qnt_bias_comb; 139*437bfbebSnyanmisaka 140*437bfbebSnyanmisaka /* 141*437bfbebSnyanmisaka * ATR_THD0_H264 142*437bfbebSnyanmisaka * Address: 0x0034 Access type: read and write 143*437bfbebSnyanmisaka * H.264 anti ringing noise threshold configuration0. 144*437bfbebSnyanmisaka */ 145*437bfbebSnyanmisaka struct { 146*437bfbebSnyanmisaka /* The 1st threshold for H.264 anti-ringing-noise. */ 147*437bfbebSnyanmisaka RK_U32 atr_thd0 : 12; 148*437bfbebSnyanmisaka RK_U32 reserved0 : 4; 149*437bfbebSnyanmisaka /* The 2nd threshold for H.264 anti-ringing-noise. */ 150*437bfbebSnyanmisaka RK_U32 atr_thd1 : 12; 151*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 152*437bfbebSnyanmisaka } atr_thd0_h264; 153*437bfbebSnyanmisaka 154*437bfbebSnyanmisaka /* 155*437bfbebSnyanmisaka * ATR_THD1_H264 156*437bfbebSnyanmisaka * Address: 0x0038 Access type: read and write 157*437bfbebSnyanmisaka * H.264 anti ringing noise threshold configuration1. 158*437bfbebSnyanmisaka */ 159*437bfbebSnyanmisaka struct { 160*437bfbebSnyanmisaka /* The 3rd threshold for H.264 anti-ringing-noise. */ 161*437bfbebSnyanmisaka RK_U32 atr_thd2 : 12; 162*437bfbebSnyanmisaka RK_U32 reserved0 : 4; 163*437bfbebSnyanmisaka /* QP threshold of P frame for H.264 anti-ringing-nois. */ 164*437bfbebSnyanmisaka RK_U32 atr_qp : 6; 165*437bfbebSnyanmisaka RK_U32 reserved1 : 10; 166*437bfbebSnyanmisaka } atr_thd1_h264; 167*437bfbebSnyanmisaka 168*437bfbebSnyanmisaka /* 169*437bfbebSnyanmisaka * ATR_WGT16_H264 170*437bfbebSnyanmisaka * Address: 0x003C Access type: read and write 171*437bfbebSnyanmisaka * Weights of 16x16 cost for H.264 anti ringing noise. 172*437bfbebSnyanmisaka */ 173*437bfbebSnyanmisaka struct { 174*437bfbebSnyanmisaka /* The 1st weight for H.264 16x16 anti-ringing-noise. */ 175*437bfbebSnyanmisaka RK_U32 atr_lv16_wgt0 : 8; 176*437bfbebSnyanmisaka /* The 2nd weight for H.264 16x16 anti-ringing-noise. */ 177*437bfbebSnyanmisaka RK_U32 atr_lv16_wgt1 : 8; 178*437bfbebSnyanmisaka /* The 3rd weight for H.264 16x16 anti-ringing-noise. */ 179*437bfbebSnyanmisaka RK_U32 atr_lv16_wgt2 : 8; 180*437bfbebSnyanmisaka RK_U32 reserved : 8; 181*437bfbebSnyanmisaka } atr_wgt16_h264; 182*437bfbebSnyanmisaka 183*437bfbebSnyanmisaka /* 184*437bfbebSnyanmisaka * ATR_WGT8_H264 185*437bfbebSnyanmisaka * Address: 0x0040 Access type: read and write 186*437bfbebSnyanmisaka * Weights of 8x8 cost for H.264 anti ringing noise. 187*437bfbebSnyanmisaka */ 188*437bfbebSnyanmisaka struct { 189*437bfbebSnyanmisaka /* The 1st weight for H.264 8x8 anti-ringing-noise. */ 190*437bfbebSnyanmisaka RK_U32 atr_lv8_wgt0 : 8; 191*437bfbebSnyanmisaka /* The 2nd weight for H.264 8x8 anti-ringing-noise. */ 192*437bfbebSnyanmisaka RK_U32 atr_lv8_wgt1 : 8; 193*437bfbebSnyanmisaka /* The 3rd weight for H.264 8x8 anti-ringing-noise. */ 194*437bfbebSnyanmisaka RK_U32 atr_lv8_wgt2 : 8; 195*437bfbebSnyanmisaka RK_U32 reserved : 8; 196*437bfbebSnyanmisaka } atr_wgt8_h264; 197*437bfbebSnyanmisaka 198*437bfbebSnyanmisaka /* 199*437bfbebSnyanmisaka * ATR_WGT4_H264 200*437bfbebSnyanmisaka * Address: 0x0044 Access type: read and write 201*437bfbebSnyanmisaka * Weights of 4x4 cost for H.264 anti ringing noise. 202*437bfbebSnyanmisaka */ 203*437bfbebSnyanmisaka struct { 204*437bfbebSnyanmisaka /* The 1st weight for H.264 4x4 anti-ringing-noise. */ 205*437bfbebSnyanmisaka RK_U32 atr_lv4_wgt0 : 8; 206*437bfbebSnyanmisaka /* The 2nd weight for H.264 4x4 anti-ringing-noise. */ 207*437bfbebSnyanmisaka RK_U32 atr_lv4_wgt1 : 8; 208*437bfbebSnyanmisaka /* The 3rd weight for H.264 4x4 anti-ringing-noise. */ 209*437bfbebSnyanmisaka RK_U32 atr_lv4_wgt2 : 8; 210*437bfbebSnyanmisaka RK_U32 reserved : 8; 211*437bfbebSnyanmisaka } atr_wgt4_h264; 212*437bfbebSnyanmisaka 213*437bfbebSnyanmisaka /* 214*437bfbebSnyanmisaka * ATF_TTHD0_H264 ~ ATF_TTHD1_H264 215*437bfbebSnyanmisaka * Address: 0x0048~0x004C Access type: read and write 216*437bfbebSnyanmisaka * Texture threshold configuration for H.264 anti-flicker 217*437bfbebSnyanmisaka */ 218*437bfbebSnyanmisaka RK_U16 atf_tthd[4]; 219*437bfbebSnyanmisaka 220*437bfbebSnyanmisaka /* 221*437bfbebSnyanmisaka * ATF_STHD0_H264 222*437bfbebSnyanmisaka * Address: 0x0050 Access type: read and write 223*437bfbebSnyanmisaka * (CME) SAD threshold configuration1 for H.264 anti-flicker. 224*437bfbebSnyanmisaka */ 225*437bfbebSnyanmisaka struct { 226*437bfbebSnyanmisaka /* (CME) SAD threshold0 of texture interval1 for H.264 anti-flicker. */ 227*437bfbebSnyanmisaka RK_U32 atf_sthd_10 : 14; 228*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 229*437bfbebSnyanmisaka /* Max (CME) SAD threshold for H.264 anti-flicker. */ 230*437bfbebSnyanmisaka RK_U32 atf_sthd_max : 14; 231*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 232*437bfbebSnyanmisaka } atf_sthd0_h264; 233*437bfbebSnyanmisaka 234*437bfbebSnyanmisaka /* 235*437bfbebSnyanmisaka * ATF_STHD1_H264 236*437bfbebSnyanmisaka * Address: 0x0054 Access type: read and write 237*437bfbebSnyanmisaka * (CME) SAD threshold configuration1 for H.264 anti-flicker. 238*437bfbebSnyanmisaka */ 239*437bfbebSnyanmisaka struct { 240*437bfbebSnyanmisaka /* (CME) SAD threshold1 of texture interval1 for H.264 anti-flicker. */ 241*437bfbebSnyanmisaka RK_U32 atf_sthd_11 : 14; 242*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 243*437bfbebSnyanmisaka /* (CME) SAD threshold0 of texture interval2 for H.264 anti-flicker. */ 244*437bfbebSnyanmisaka RK_U32 atf_sthd_20 : 14; 245*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 246*437bfbebSnyanmisaka } atf_sthd1_h264; 247*437bfbebSnyanmisaka 248*437bfbebSnyanmisaka /* 249*437bfbebSnyanmisaka * ATF_WGT0_H264 250*437bfbebSnyanmisaka * Address: 0x0058 Access type: read and write 251*437bfbebSnyanmisaka * Weight configuration0 for H.264 anti-flicker. 252*437bfbebSnyanmisaka */ 253*437bfbebSnyanmisaka struct { 254*437bfbebSnyanmisaka /* The 1st weight in texture interval1 for H.264 anti-flicker. */ 255*437bfbebSnyanmisaka RK_U32 atf_wgt10 : 9; 256*437bfbebSnyanmisaka RK_U32 reserved0 : 7; 257*437bfbebSnyanmisaka /* The 2nd weight in texture interval1 for H.264 anti-flicker. */ 258*437bfbebSnyanmisaka RK_U32 atf_wgt11 : 9; 259*437bfbebSnyanmisaka RK_U32 reserved1 : 7; 260*437bfbebSnyanmisaka } atf_wgt0_h264; 261*437bfbebSnyanmisaka 262*437bfbebSnyanmisaka /* 263*437bfbebSnyanmisaka * ATF_WGT1_H264 264*437bfbebSnyanmisaka * Address: 0x005C Access type: read and write 265*437bfbebSnyanmisaka * Weight configuration1 for H.264 anti-flicker. 266*437bfbebSnyanmisaka */ 267*437bfbebSnyanmisaka struct { 268*437bfbebSnyanmisaka /* The 3rd weight in texture interval1 for H.264 anti-flicker. */ 269*437bfbebSnyanmisaka RK_U32 atf_wgt12 : 9; 270*437bfbebSnyanmisaka RK_U32 reserved0 : 7; 271*437bfbebSnyanmisaka /* The 1st weight in texture interval2 for H.264 anti-flicker. */ 272*437bfbebSnyanmisaka RK_U32 atf_wgt20 : 9; 273*437bfbebSnyanmisaka RK_U32 reserved1 : 7; 274*437bfbebSnyanmisaka } atf_wgt1_h264; 275*437bfbebSnyanmisaka 276*437bfbebSnyanmisaka /* 277*437bfbebSnyanmisaka * ATF_WGT2_H264 278*437bfbebSnyanmisaka * Address: 0x0060 Access type: read and write 279*437bfbebSnyanmisaka * Weight configuration2 for H.264 anti-flicker. 280*437bfbebSnyanmisaka */ 281*437bfbebSnyanmisaka struct { 282*437bfbebSnyanmisaka /* The 2nd weight in texture interval2 for H.264 anti-flicker. */ 283*437bfbebSnyanmisaka RK_U32 atf_wgt21 : 9; 284*437bfbebSnyanmisaka RK_U32 reserved0 : 7; 285*437bfbebSnyanmisaka /* The weight in texture interval3 for H.264 anti-flicker. */ 286*437bfbebSnyanmisaka RK_U32 atf_wgt30 : 9; 287*437bfbebSnyanmisaka RK_U32 reserved1 : 7; 288*437bfbebSnyanmisaka } atf_wgt2_h264; 289*437bfbebSnyanmisaka 290*437bfbebSnyanmisaka /* 291*437bfbebSnyanmisaka * ATF_OFST0_H264 292*437bfbebSnyanmisaka * Address: 0x0064 Access type: read and write 293*437bfbebSnyanmisaka * Offset configuration0 for H.264 anti-flicker. 294*437bfbebSnyanmisaka */ 295*437bfbebSnyanmisaka struct { 296*437bfbebSnyanmisaka /* The 1st offset in texture interval1 for H.264 anti-flicker. */ 297*437bfbebSnyanmisaka RK_U32 atf_ofst10 : 14; 298*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 299*437bfbebSnyanmisaka /* The 2nd offset in texture interval1 for H.264 anti-flicker. */ 300*437bfbebSnyanmisaka RK_U32 atf_ofst11 : 14; 301*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 302*437bfbebSnyanmisaka } atf_ofst0_h264; 303*437bfbebSnyanmisaka 304*437bfbebSnyanmisaka /* 305*437bfbebSnyanmisaka * ATF_OFST1_H264 306*437bfbebSnyanmisaka * Address: 0x0068 Access type: read and write 307*437bfbebSnyanmisaka * Offset configuration1 for H.264 anti-flicker. 308*437bfbebSnyanmisaka */ 309*437bfbebSnyanmisaka struct { 310*437bfbebSnyanmisaka /* The 3rd offset in texture interval1 for H.264 anti-flicker. */ 311*437bfbebSnyanmisaka RK_U32 atf_ofst12 : 14; 312*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 313*437bfbebSnyanmisaka /* The 1st offset in texture interval2 for H.264 anti-flicker. */ 314*437bfbebSnyanmisaka RK_U32 atf_ofst20 : 14; 315*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 316*437bfbebSnyanmisaka } atf_ofst1_h264; 317*437bfbebSnyanmisaka 318*437bfbebSnyanmisaka /* 319*437bfbebSnyanmisaka * ATF_OFST2_H264 320*437bfbebSnyanmisaka * Address: 0x006C Access type: read and write 321*437bfbebSnyanmisaka * Offset configuration2 for H.264 anti-flicker. 322*437bfbebSnyanmisaka */ 323*437bfbebSnyanmisaka struct { 324*437bfbebSnyanmisaka /* The 2nd offset in texture interval1 for H.264 anti-flicker. */ 325*437bfbebSnyanmisaka RK_U32 atf_ofst21 : 14; 326*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 327*437bfbebSnyanmisaka /* The offset in texture interval3 for H.264 anti-flicker. */ 328*437bfbebSnyanmisaka RK_U32 atf_ofst30 : 14; 329*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 330*437bfbebSnyanmisaka } atf_ofst2_h264; 331*437bfbebSnyanmisaka 332*437bfbebSnyanmisaka /* 333*437bfbebSnyanmisaka * IPRD_WGT_QP0_HEVC ~ IPRD_WGT_QP51_HEVC 334*437bfbebSnyanmisaka * Address: 0x0070 ~ 0x013C Access type: read and write 335*437bfbebSnyanmisaka * Weight of SATD cost when QP is 0~51 for HEVC intra prediction. 336*437bfbebSnyanmisaka */ 337*437bfbebSnyanmisaka RK_U32 iprd_wgt_qp[52]; 338*437bfbebSnyanmisaka 339*437bfbebSnyanmisaka /* 340*437bfbebSnyanmisaka * RDO_WGTA_QP0_COMB ~ RDO_WGTA_QP51_COMB 341*437bfbebSnyanmisaka * Address: 0x0140 ~ 0x020C Access type: read and write 342*437bfbebSnyanmisaka * Weight of group A for HEVC and H.264 RDO mode decision when QP is 0~51. 343*437bfbebSnyanmisaka */ 344*437bfbebSnyanmisaka RK_U32 wgt_qp_grpa[52]; 345*437bfbebSnyanmisaka 346*437bfbebSnyanmisaka /* 347*437bfbebSnyanmisaka * RDO_WGTB_QP0_COMB ~ RDO_WGTB_QP51_COMB 348*437bfbebSnyanmisaka * Address: 0x0210 ~ 0x02DC Access type: read and write 349*437bfbebSnyanmisaka * Weight of group B for HEVC and H.264 RDO mode decision when QP is 0~51. 350*437bfbebSnyanmisaka */ 351*437bfbebSnyanmisaka RK_U32 wgt_qp_grpb[52]; 352*437bfbebSnyanmisaka 353*437bfbebSnyanmisaka /* 354*437bfbebSnyanmisaka * MADI_CFG 355*437bfbebSnyanmisaka * Address: 0x02E0 Access type: read and write 356*437bfbebSnyanmisaka * MADI configuration for CU32 and CU64. 357*437bfbebSnyanmisaka */ 358*437bfbebSnyanmisaka /* 359*437bfbebSnyanmisaka * MADI generation mode for CU32 and CU64. 360*437bfbebSnyanmisaka * 1'h0: Follow 32x32 and 64x64 MADI functions. 361*437bfbebSnyanmisaka * 1'h1: Calculated by the mean of corresponding CU16 MADIs. 362*437bfbebSnyanmisaka */ 363*437bfbebSnyanmisaka RK_U32 madi_mode; 364*437bfbebSnyanmisaka 365*437bfbebSnyanmisaka /* 366*437bfbebSnyanmisaka * AQ_TTHD0 ~ AQ_TTHD3 367*437bfbebSnyanmisaka * Address: 0x02E4 ~ 0x02F0 Access type: read and write 368*437bfbebSnyanmisaka * Texture threshold configuration for adaptive QP adjustment. 369*437bfbebSnyanmisaka */ 370*437bfbebSnyanmisaka /* Texture threshold for adaptive QP adjustment. */ 371*437bfbebSnyanmisaka RK_U8 aq_tthd[16]; 372*437bfbebSnyanmisaka 373*437bfbebSnyanmisaka /* 374*437bfbebSnyanmisaka * AQ_STP0 ~ AQ_STP3 375*437bfbebSnyanmisaka * Address: 0x02F4 ~ 0x300 Access type: read and write 376*437bfbebSnyanmisaka * Adjustment step configuration0 for adaptive QP adjustment. 377*437bfbebSnyanmisaka */ 378*437bfbebSnyanmisaka /* 379*437bfbebSnyanmisaka * MADI generation mode for CU32 and CU64. 380*437bfbebSnyanmisaka * 1'h0: Follow 32x32 and 64x64 MADI functions. 381*437bfbebSnyanmisaka * 1'h1: Calculated by the mean of corresponding CU16 MADIs. 382*437bfbebSnyanmisaka */ 383*437bfbebSnyanmisaka /* QP adjust step when current texture strength is between n-1 and n step. */ 384*437bfbebSnyanmisaka RK_S8 aq_step[16]; 385*437bfbebSnyanmisaka 386*437bfbebSnyanmisaka /* 387*437bfbebSnyanmisaka * RME_MVD_PNSH_H264 388*437bfbebSnyanmisaka * Address: 0x0304 Access type: read and write 389*437bfbebSnyanmisaka * RME MVD(motion vector difference) cost penalty, H.264 only. 390*437bfbebSnyanmisaka */ 391*437bfbebSnyanmisaka struct { 392*437bfbebSnyanmisaka /* MVD cost penalty enable. */ 393*437bfbebSnyanmisaka RK_U32 mvd_pnlt_e : 1; 394*437bfbebSnyanmisaka /* MVD cost penalty coefficienc. */ 395*437bfbebSnyanmisaka RK_U32 mvd_pnlt_coef : 5; 396*437bfbebSnyanmisaka /* MVD cost penalty constant. */ 397*437bfbebSnyanmisaka RK_U32 mvd_pnlt_cnst : 14; 398*437bfbebSnyanmisaka /* Low threshold of the MVs which should be punished. */ 399*437bfbebSnyanmisaka RK_U32 mvd_pnlt_lthd : 4; 400*437bfbebSnyanmisaka /* High threshold of the MVs which should be punished. */ 401*437bfbebSnyanmisaka RK_U32 mvd_pnlt_hthd : 4; 402*437bfbebSnyanmisaka RK_U32 reserved : 4; 403*437bfbebSnyanmisaka } rme_mvd_penalty; 404*437bfbebSnyanmisaka 405*437bfbebSnyanmisaka /* 406*437bfbebSnyanmisaka * ATR1_THD0_H264 407*437bfbebSnyanmisaka * Address: 0x0308 Access type: read and write 408*437bfbebSnyanmisaka * H.264 anti ringing noise threshold configuration0 of group1. 409*437bfbebSnyanmisaka */ 410*437bfbebSnyanmisaka struct { 411*437bfbebSnyanmisaka /* The 1st threshold for H.264 anti-ringing-noise of group1. */ 412*437bfbebSnyanmisaka RK_U32 atr1_thd0 : 12; 413*437bfbebSnyanmisaka RK_U32 reserved0 : 4; 414*437bfbebSnyanmisaka /* The 2nd threshold for H.264 anti-ringing-noise of group1. */ 415*437bfbebSnyanmisaka RK_U32 atr1_thd1 : 12; 416*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 417*437bfbebSnyanmisaka } atr1_thd0_h264; 418*437bfbebSnyanmisaka 419*437bfbebSnyanmisaka /* 420*437bfbebSnyanmisaka * ATR1_THD0_H264 421*437bfbebSnyanmisaka * Address: 0x030C Access type: read and write 422*437bfbebSnyanmisaka * H.264 anti ringing noise threshold configuration1 of group1. 423*437bfbebSnyanmisaka */ 424*437bfbebSnyanmisaka struct { 425*437bfbebSnyanmisaka /* The 3rd threshold for H.264 anti-ringing-noise of group1. */ 426*437bfbebSnyanmisaka RK_U32 atr1_thd2 : 12; 427*437bfbebSnyanmisaka RK_U32 reserved0 : 20; 428*437bfbebSnyanmisaka } atr1_thd1_h264; 429*437bfbebSnyanmisaka } Vepu541H264eRegL2Set; 430*437bfbebSnyanmisaka 431*437bfbebSnyanmisaka #endif /* __HAL_H264E_VEPU541_REG_L2_H__ */ 432