主权项 |
1.一种基于运动信息的视频帧重要性评估方法,包括如下步骤:(1)对接收到的包含宏块编码模式和运动信息的码流进行解码;(2)根据解码得到宏块编码模式将宏块分为三类:帧间编码宏块、帧内编码宏块和skip宏块;(3)根据三种宏块的运动特征,利用解码得到的运动信息估计宏块的重要性:(3.1)估计帧间编码宏块的重要性:设MV<sub>x</sub>和MV<sub>y</sub>分别表示帧间编码宏块中4×4子宏块运动矢量MV的x分量和y分量,则4×4子宏块运动矢量幅度值为:<maths num="0001"><![CDATA[<math><mrow><mi>MVMod</mi><mo>=</mo><msqrt><msubsup><mi>MV</mi><mi>x</mi><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>MV</mi><mi>y</mi><mn>2</mn></msubsup></msqrt></mrow></math>]]></maths>计算帧间编码宏块的重要性,即当前帧间编码宏块中16个4×4子宏块运动矢量幅度值之和:<maths num="0002"><![CDATA[<math><mrow><msub><mi>D</mi><mrow><mi>int er</mi><mo>,</mo><mi>i</mi></mrow></msub><mo>=</mo><munderover><mi>Σ</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mn>16</mn></munderover><msub><mi>α</mi><mi>int er</mi></msub><mo>·</mo><msub><mi>MVMod</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub></mrow></math>]]></maths>其中i表示当前帧间编码宏块的序号,j表示4×4子宏块在当前帧间编码宏块中的序号,MVMod<sub>i,j</sub>表示第i个帧间编码宏块中第j个4×4子宏块的运动矢量幅度值,α<sub>inter</sub>表示帧间编码模式经验因子,建议取值为0.05;(3.2)估计帧内编码宏块的重要性:帧内编码宏块分为P帧和I帧的帧内编码宏块,对于P帧的帧内编码宏块,将它所在P帧中帧间编码的4×4子宏块的最大运动矢量幅度值作为它的运动矢量幅度值,则P帧的帧内编码宏块的重要性为:D<sub>intra,k</sub>=α<sub>intra</sub>·max(MVMod<sub>i,j</sub>)其中k表示当前帧内编码宏块的序号,α<sub>intra</sub>表示帧内编码模式的经验因子,建议取值0.2,max(MVMod<sub>i,j</sub>)表示当前P帧中帧间编码4×4子宏块运动矢量幅度的最大值:对于I帧的帧内编码宏块,将I帧正方形搜索区域边长的<img file="FDA0000042963410000021.GIF" wi="62" he="55" />倍作为它的运动矢量幅度值,则I帧中帧内编码宏块的重要性为:<maths num="0003"><![CDATA[<math><mrow><msub><mi>D</mi><mrow><mi>int ra</mi><mo>,</mo><mi>l</mi></mrow></msub><mo>=</mo><msqrt><mn>2</mn></msqrt><mo>·</mo><msub><mi>α</mi><mi>int ra</mi></msub><mo>·</mo><mi>F</mi></mrow></math>]]></maths>其中l表示当前帧内编码宏块的序号,α<sub>intra</sub>表示帧内编码模式的经验因子,建议取值为0.2,F表示I帧正方形搜索区域的边长;(3.3)估计skip宏块的重要性:根据当前帧中skip宏块的数目,分两种情况估计当前帧中skip宏块的重要性:<maths num="0004"><![CDATA[<math><mrow><msub><mi>D</mi><mrow><mi>skip</mi><mo>,</mo><mi>m</mi></mrow></msub><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>α</mi><mi>skip</mi></msub><mo>·</mo><mi>MVM</mi><msub><mi>od</mi><mi>m</mi></msub></mtd><mtd><mi>d</mi><mo>≥</mo><mi>Thd</mi></mtd></mtr><mtr><mtd><msubsup><mi>α</mi><mi>skip</mi><mo>′</mo></msubsup></mtd><mtd><mi>d</mi><mo><</mo><mi>Thd</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中m表示当前skip宏块的序号,d表示当前帧中skip宏块的个数,α<sub>skip</sub>和α′<sub>skip</sub>表示skip编码模式经验因子,建议取值分别为0.1和0.03,MVMo<sub>dm</sub>表示第m个skip宏块的运动矢量幅度值,Thd表示门限值,建议取值60;(4)估计视频帧的重要性:视频帧的重要性由当前部分和扩散部分两部分组成,当前部分是所有宏块的重要性之和,因为P帧有帧间编码宏块、帧内编码宏块和skip宏块,所以P帧重要性的当前部分为所有帧间编码宏块、帧内编码宏块和skip宏块重要性之和,而I帧只有帧内编码宏块,所以I帧重要性的当前部分为所有帧内编码宏块重要性之和,扩散部分是当前部分的γ倍;如果当前帧为P帧,则当前帧的重要性为:<maths num="0005"><![CDATA[<math><mrow><msub><mi>D</mi><mrow><mi>C</mi><mo>,</mo><mi>n</mi></mrow></msub><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>γ</mi><mo>)</mo></mrow><mo>·</mo><mrow><mo>(</mo><munderover><mi>Σ</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>a</mi></munderover><msub><mi>D</mi><mrow><mi>int er</mi><mo>,</mo><mi>i</mi></mrow></msub><mo>+</mo><munderover><mi>Σ</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>b</mi></munderover><msub><mi>D</mi><mrow><mi>int ra</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>+</mo><munderover><mi>Σ</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mi>d</mi></munderover><msub><mi>D</mi><mrow><mi>skip</mi><mo>,</mo><mi>m</mi></mrow></msub><mo>)</mo></mrow></mrow></math>]]></maths>其中n表示当前P帧的序号,a表示当前P帧中帧间编码宏块的个数,i表示帧间编码宏块的序号,D<sub>inter,i</sub>表示当前P帧中第i个帧间编码宏块的重要性,b表示当前P帧中帧内编码宏块的个数,k表示帧内编码宏块的序号,D<sub>intra,k</sub>表示当前P帧中第k个帧内编码宏块的重要性,d表示当前P帧中skip宏块的个数,m表示skip宏块的序号,D<sub>skip,m</sub>表示当前P帧中第m个skip宏块的重要性,γ表示扩散因子,γ=N-k-1,N表示图像组GOP长度;如果当前帧是I帧,则当前帧的重要性为:<maths num="0006"><![CDATA[<math><mrow><msub><mi>D</mi><mrow><mi>C</mi><mo>,</mo><mi>n</mi></mrow></msub><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>γ</mi><mo>)</mo></mrow><mo>·</mo><munderover><mi>Σ</mi><mrow><mi>l</mi><mo>=</mo><mn>1</mn></mrow><mi>c</mi></munderover><msub><mi>D</mi><mrow><mi>int ra</mi><mo>,</mo><mi>l</mi></mrow></msub></mrow></math>]]></maths>其中n表示当前I帧的序号,c表示当前I帧中帧内编码宏块的个数,l表示帧内编码宏块的序号,D<sub>intra,k</sub>表示当前I帧中第l个帧内编码宏块的重要性,γ表示扩散因子,γ=N-k-1,N表示图像组GOP长度; |