主权项 |
一种应用于HEVC帧间编码的全零块检测方法,其特征在于,所述方法是针对编码块CB中的各个变换块TB实施的,对于每个变换块,包括以下步骤:(1)判断当前TB内残差数据是否符合以下条件,若是,则判定当前TB为全零块,无需进行后续的DCT变换和量化过程,转步骤(5),否则转步骤(2);<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfrac><mn>1</mn><mi>N</mi></mfrac><mi>SND</mi><mo><</mo><mi>qstep</mi></mrow>]]></math><img file="FSA0000108494560000011.GIF" wi="315" he="111" /></maths>并且<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>SAD</mi><mo>≤</mo><mfrac><mrow><msqrt><mn>2</mn></msqrt><mi>M</mi><msub><mi>α</mi><mn>2</mn></msub></mrow><mrow><mn>3</mn><msqrt><mi>π</mi><msub><mi>α</mi><mn>1</mn></msub></msqrt></mrow></mfrac><mi>qstep</mi></mrow>]]></math><img file="FSA0000108494560000012.GIF" wi="431" he="142" /></maths>其中,N是TB块X和Y方向的尺寸,M=N×N,qstep是由量化参数QP确定的量化步长,α<sub>1</sub>=Z(0,1),Z是一个由TB内数据相关程度决定的矩阵,α<sub>2</sub>是一个大于1的放大系数,SND和SAD分别按下式计算:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>SND</mi><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>N</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>Σ</mi><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>N</mi><mo>-</mo><mn>1</mn></mrow></munderover><mi>e</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000108494560000013.GIF" wi="410" he="129" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>SAD</mi><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>N</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>Σ</mi><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>N</mi><mo>-</mo><mn>1</mn></mrow></munderover><mo>|</mo><mi>e</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>|</mo></mrow>]]></math><img file="FSA0000108494560000014.GIF" wi="424" he="129" /></maths>其中,e(x,y)代表帧间预测补偿后的残差数据;(2)对TB内的残差数据作时间域去噪滤波,按下式计算TB内每个像素的残差滤波值e′(x,y)=a(x,y)e(x,y)其中e′(x,y)为滤波之后的残差值,滤波系数a(x,y)按下式确定:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>a</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mi>if</mi><mo>|</mo><msub><mi>m</mi><mi>e</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>|</mo><mo>≥</mo><msub><mi>T</mi><mi>m</mi></msub></mtd></mtr><mtr><mtd><mn>1</mn><mo>-</mo><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><msup><mrow><mo>(</mo><mfrac><mrow><msub><mi>m</mi><mi>e</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow><mi>b</mi></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow></mtd><mtd><mi>otherwise</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FSA0000108494560000015.GIF" wi="1068" he="272" /></maths>其中b取常数4,阈值T<sub>m</sub>=6,m<sub>e</sub>是TB内(x,y)像素的邻域范围内残差绝对值的均值;(3)由滤波以后的残差数据计算SAD和SND,取α<sub>2</sub>等于1,若步骤(1)中的条件成立,则判定当前TB为全零块,无需进行后续的DCT变换和量化过程,否则转步骤(4);(4)按HEVC标准进行整数形式的二维DCT变换、量化处理;(5)按HEVC标准进行基于上下文的自适应二进制算术编码。 |