📄 decoderspec.h
字号:
{
//变成有效;
//进行sign coding;
sym=pData[k]>>31;
ctxt=SC_LUT[(csj>>SC_SHIFT_R1)&SC_MASK];
pSymBuf[nsym]=sym^(ctxt>>SC_SPRED_SHIFT);
pCxtBuf[nsym++]=ctxt&SC_LUT_MASK;
//Update state information (significant state,visited bit,neighbor significant bit of neighbors,non zeor context of neighbors,sign of neighbors);
if (!causal)
{
pState[j+off_ul]|=STATE_NZ_CTXT_R2|STATE_D_DR_R2;
pState[j+off_ur]|=STATE_NZ_CTXT_R2|STATE_D_DL_R2;
}
//Update sign state information of neighbors;
if (sym!=0)
{
csj|=STATE_SIG_R1|STATE_VISITED_R1|STATE_NZ_CTXT_R2|STATE_V_U_R2|STATE_V_U_SIGN_R2;
if (!causal)
{
pState[j-sscanw]|=STATE_NZ_CTXT_R2|STATE_V_D_R2|STATE_V_D_SIGN_R2;
}
pState[j+1]|=STATE_NZ_CTXT_R1|STATE_NZ_CTXT_R2|STATE_H_L_R1|STATE_H_L_SIGN_R1|STATE_D_UL_R2;
pState[j-1]|=STATE_NZ_CTXT_R1|STATE_NZ_CTXT_R2|STATE_H_R_R1|STATE_H_R_SIGN_R1|STATE_D_UR_R2;
}
else
{
csj|=STATE_SIG_R1|STATE_VISITED_R1|STATE_NZ_CTXT_R2|STATE_V_U_R2;
if (!causal)
{
pState[j-sscanw]|=STATE_NZ_CTXT_R2|STATE_V_D_R2;
}
pState[j+1]|=STATE_NZ_CTXT_R1|STATE_NZ_CTXT_R2|STATE_H_L_R1|STATE_D_UL_R2;
pState[j-1]|=STATE_NZ_CTXT_R1|STATE_NZ_CTXT_R2|STATE_H_R_R1|STATE_D_UR_R2;
}
//Update distortion;
normval=(pData[k]>>downshift)<<upshift;
dist+=pFS[normval&((1<<(MSE_LKP_BITS-1))-1)];
}
else
{
csj|=STATE_VISITED_R1;
}
}
if (sheight<2)
{
pState[j]=csj;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -