发明名称 人脸区域时域依赖性与全局率失真优化相结合的会话视频编码方法
摘要 本发明公开了一种人脸区域时域依赖性与全局率失真优化相结合的会话视频编码方法,利用人脸感兴趣区域ROI在同一图像组GOP内相邻编码帧之间的时域依赖性,提前估计人脸ROI的失真度及其扩散影响,为最佳运动向量及模式划分选择提供有效的辅助手段。采用本发明方法,从全局的角度侧重优化人脸ROI编码单元,较好保证了人脸ROI编码单元及未来以其作为参考的编码单元的主客观质量,避免了传统编码过程中因失真度扩散所引起的额外比特开销,在维持或提升编码图像主客观质量的前提下,有效降低了会话视频编码码率,改善了编码性能,完全兼容于传统的顺序编码结构,适用于视频存储及实时性要求大于一个GOP延时的实时视频编码等应用场合。
申请公布号 CN102547293B 申请公布日期 2015.01.28
申请号 CN201210034708.X 申请日期 2012.02.16
申请人 西南交通大学 发明人 范小九;彭强;杨天武;王琼华
分类号 H04N19/147(2014.01)I;H04N19/167(2014.01)I 主分类号 H04N19/147(2014.01)I
代理机构 成都信博专利代理有限责任公司 51200 代理人 张澎
主权项 人脸区域时域依赖性与全局率失真优化相结合的会话视频编码方法,利用人脸感兴趣区域ROI在同一图像组GOP内相邻编码帧之间的时域依赖性,提前估计人脸ROI的失真度及其扩散影响,为最佳运动向量及模式划分选择提供有效的辅助手段,以实现视频序列整体及人脸ROI在主客观质量上的同步提高,其实现方式包括如下的系列步骤:A.在编码会话视频序列各GOP之前对当前GOP内所有编码帧进行人脸ROI检测,从而确定人脸ROI编码单元的具体位置;B.根据当前编码单元是否属于人脸ROI,选择不同的率失真优化方法,即RDO,进行优化编码:对于人脸ROI编码单元,B.1 构造人脸ROI编码单元时域扩散链,构造方法如下:(1)对会话视频序列的当前编码GOP内各编码单元进行前向运动搜索,以获得各编码单元在下一帧中最佳匹配单元位置,记录对应的前向运动向量及前向预测差值;该步骤在当前GOP内仅进行一次;(2)根据步骤(1)中得到的前向运动向量推导人脸ROI编码单元在当前GOP下一编码帧中的扩散位置,该扩散位置所对应的与人脸ROI编码单元大小相同的单元称为人脸ROI扩散单元;区别起见,本步骤人脸ROI扩散单元称为1号人脸ROI扩散单元,存储人脸ROI编码单元的前向预测差值及1号人脸ROI扩散单元的位置;(3)将步骤(2)中1号人脸ROI扩散单元中心所在的实际编码单元的前向运动向量作为该人脸ROI扩散单元的前向运动向量,从而得到其在当前GOP的再下一个编码帧中的扩散位置;该在当前GOP的再下一个编码帧中的扩散位置所对应的与人脸ROI编码单元大小相同的单元即为人脸ROI编码单元在当前GOP的再下一个编码帧中的人脸ROI扩散单元,称为2号人脸ROI扩散单元;此处所得到的扩散单元不应超出步骤A中所得到的当前编码帧中人脸ROI编码单元的具体位置范围,若超出则将扩散单元水平平移至人脸ROI范围内作为2号人脸ROI扩散单元,若平移后仍超出人脸ROI范围则继续垂直平移直至扩散单元完全位于人脸ROI范围内;同时,根据步骤(2)所得到的1号人脸ROI扩散单元在各实际编码单元上的比例情况,将各实际编码单元的前向预测差值按比例求和作为1号人脸ROI扩散单元的前向预测差值,存储1号人脸ROI扩散单元前向预测差值及2号人脸ROI扩散单元的位置;(4)重复步骤(3)处理后续的人脸ROI扩散单元,直至人脸ROI扩散单元位于当前GOP的最后一帧时,将人脸ROI编码单元及其在后续帧上的所有扩散单元连接在一起形成人脸ROI编码单元时域扩散链,各前向预测差值保存供后述步骤使用;B.2 计算人脸ROI编码单元及人脸ROI编码单元时域扩散链上所有扩散单元的失真度估计值,失真度估计方法为如下:公式1:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>D</mi><mo>=</mo><msub><mi>D</mi><mi>MCP</mi></msub><mo>&CenterDot;</mo><mi>F</mi><mrow><mo>(</mo><msqrt><mn>2</mn></msqrt><mi>Q</mi><mo>/</mo><msqrt><msub><mi>D</mi><mi>MCP</mi></msub></msqrt><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000549805840000031.GIF" wi="589" he="101" /></maths>其中D为失真度估计值,D<sub>MCP</sub>为时域扩散链上当前编码单元的上一个编码单元或扩散单元的前向预测差值,Q为量化步长,公式1中的F(θ)函数,其计算方法如下,公式2:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>F</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>=</mo><mo>[</mo><munderover><mo>&Integral;</mo><mn>0</mn><mi>d&theta;</mi></munderover><msup><mi>y</mi><mn>2</mn></msup><mo>&CenterDot;</mo><mi>p</mi><mrow><mo>(</mo><mi>y</mi><mo>)</mo></mrow><mi>dy</mi><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mo>&infin;</mo></munderover><munderover><mo>&Integral;</mo><mrow><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>d</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>&theta;</mi></mrow><mrow><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>&theta;</mi></mrow></munderover><mrow><mo>(</mo><mi>c</mi><mrow><mo>(</mo><mi>y</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msup><mrow><mo>|</mo><mi>y</mi><mo>-</mo><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>d</mi><mo>+</mo><mi>&omega;</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>&theta;</mi><mo>|</mo></mrow><mn>2</mn></msup><mo>+</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>c</mi><mrow><mo>(</mo><mi>y</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>&CenterDot;</mo><msup><mi>y</mi><mn>2</mn></msup><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>p</mi><mrow><mo>(</mo><mi>y</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>dy</mi><mo>]</mo><mo>;</mo></mrow>]]></math><img file="FDA0000549805840000032.GIF" wi="1494" he="152" /></maths>B.3 计算人脸ROI编码单元时域扩散链上所有扩散单元受人脸ROI编码单元影响的失真度扩散系数并求和得到总失真度扩散系数,基于实验推导所得的失真度扩散系数计算方法表示如下,公式3:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>&beta;</mi><mi>t</mi></msub><mo>=</mo><mfrac><msub><mi>D</mi><mi>t</mi></msub><mrow><msub><mi>D</mi><mrow><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msubsup><mi>D</mi><mi>t</mi><mi>MCP</mi></msubsup></mrow></mfrac></mrow>]]></math><img file="FDA0000549805840000033.GIF" wi="356" he="140" /></maths>其中β<sub>t</sub>表示当前扩散单元受时域扩散链上前一编码单元或扩散单元影响的失真度扩散系数,D<sub>t</sub>表示当前扩散单元的失真度估计值,D<sub>t‑1</sub>表示前一编码单元或扩散单元的失真度估计值,<img file="FDA0000549805840000034.GIF" wi="112" he="69" />表示当前扩散单元的前向预测差值;B.4 更新拉格朗日系数,(1)统计人脸ROI编码单元的实际编码方式,包括SKIP、DIRECT、帧内、帧间、运动补偿预测失真值及重建失真值;运动补偿预测失真值对应人脸ROI编码单元与其在视频编码运动搜索相应的编码单元之间的绝对差均值,重建失真值则对应人脸ROI编码单元与其在视频编码后的重建单元之间的绝对差均值;(2)依从前向后从上向下空间顺序,若当前人脸ROI编码单元为当前帧最后一个人脸ROI编码单元,计算所有已编码GOP及当前GOP内已编码帧中以帧内方式进行编码的人脸ROI编码单元百分比、人脸ROI编码单元的平均运动补偿预测失真值及人脸ROI编码单元的平均重建失真值,否则,跳至(3);(3)调整拉格朗日系数,相应的调整公式为,公式4:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>&lambda;</mi><mi>new</mi></msub><mo>=</mo><mfrac><msub><mi>&lambda;</mi><mi>old</mi></msub><mrow><mi>&eta;</mi><mo>&CenterDot;</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&alpha;</mi><mo>&times;</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&gamma;</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mover><mi>D</mi><mo>&OverBar;</mo></mover><mo>/</mo><msub><mover><mi>D</mi><mo>&OverBar;</mo></mover><mi>MCP</mi></msub><mo>)</mo></mrow></mrow></mfrac></mrow>]]></math><img file="FDA0000549805840000041.GIF" wi="704" he="163" /></maths>其中,λ<sub>new</sub>为调整后的拉格朗日系数,λ<sub>old</sub>为调整前的拉格朗日系数,η为B.3步骤中得到的总失真扩散系数,γ为当前GOP内所有已编码帧中以帧内方式进行编码的人脸ROI编码单元百分比,<img file="FDA0000549805840000042.GIF" wi="122" he="70" />为人脸ROI编码单元的平均运动补偿预测失真值,<img file="FDA0000549805840000043.GIF" wi="53" he="65" />为人脸ROI编码单元的平均重建失真值,α为常数值,可选范围为[0.88,1.0);B.5 基于B.4中已更新的拉格朗日系数,调用拉格朗日优化方法对人脸ROI编码单元进行RDO;对于非人脸ROI编码单元,B.6 若当前存在B.4中的拉格朗日系数,用其与相应的总失真度扩散系数的乘积即η·λ<sub>new</sub>替代传统RDO的拉格朗日系数进行非人脸ROI编码单元的RDO编码;否则,按传统RDO及相应的拉格朗日系数进行非人脸ROI编码单元的优化编码。
地址 610031 四川省成都市二环路北一段111号西南交通大学科技处