基于场景切换的码率控制视频压缩方法和装置的制作方法

文档序号:7844416阅读:496来源:国知局
专利名称:基于场景切换的码率控制视频压缩方法和装置的制作方法
技术领域
本发明属于视频压缩编码技术领域,尤其涉及一种基于场景切换的码率控制视频压缩方法和装置。
背景技术
码率控制技术在带宽受限的多媒体通信系统中具有重要的作用。传统的视频通信码率控制算法,如H. 264/AVC编码器中采用的码率控制算法,在将码率资源分配到图像组(GOP)中各帧图像时,仅仅考虑了各帧图像自身的复杂度,而忽视了同GOP中各帧图像之间的相关性,如对含有频繁场景切换的视频序列进行编码时,GOP中某帧图像可能因出现场景切换而与其参考帧之间毫无相关性,如果仍然采用传统的码率控制方法,将导致图像编码资源浪费和编码质量的下降。由于视频序列中I、P及B帧编码后产生的比特数不一样,为了使输出码流速率与信道速率相匹配,提高信道利用率,一般在编码器和信道之间加一个缓冲区,而缓冲区容量大小与通信时延的要求构成了一对新的矛盾,码率控制的目的就是为了解决这一矛盾。对于编码器来说,一个鲁棒的码率控制算法应该在充分利用带宽资源和保证缓冲区不溢出的前提下,将有限的码率资源进行合理分配,获得尽可能好的编码质量。当视频序列中出现场景切换时,其编码质量将受到影响,影响程度取决于场景切换帧在其所处GOP中的位置。当场景切换发生在I帧时,由于I帧采用帧内编码模式,场景切换对于I帧本身不会产生任何影响,同时也不会对后续帧的预测编码产生影响;由于B帧为双向预测,只要其前后2个参考帧有I帧与其处于同一场景中(假设序列中没有连续2帧同时发生场景切换),其预测编码的精度仍然能够得到保证,编码质量不会受到很大影响。不同于I帧和B帧,当场景切换发生在P帧,对当前GOP编码质量的影响相当大首先,由于当前P帧与其参考帧处于不同的场景中,帧间预测编码将完全失效,宏块必须通过RDO(rate-distortion optimiza-tion)模式选择后才采取巾贞内编码,优化过程极大浪费了编码时间;其次,由于绝大多数宏块采用帧内编码模式,占用了大量的码率资源,使得后续各帧由于码率资源缺乏而编码质量下降,此影响还会延续至后续的G0P。现实中的视频序列,不可避免存在场景切换。如果编码器不考虑场景切换的影响,就会浪费有限的码率资源,从而导致编码质量下降。目前,针对场景切换提出了很多码率控制算法,其中常用的方法是通过改变GOP的结构和长度来重新分配码率资源。如上文提出的算法中,当检测到场景切换时,当前GOP剩余帧和下一个GOP的所有帧合并为一个G0P,因此,GOP长度要比默认长度N大,最糟的情况下为2N-1。由于GOP过长容易导致缓冲区的溢出,并且导致GOP中后面部分帧的编码性能下降。在上文提出的算法中,采取将过长的GOP拆分成2个新的GOP来解决这个问题,但这样做的后果是导致增加一个I帧,造成码率资源的浪费。在视频压缩算法中,一般的视频压缩算法都没有提及对场景切换的要求,由于采用了固定长度的图像组(GOP)结构,不能有效地处理视频序列中的场景切换,导致场景切换帧后续各帧编码质量严重下降。现有的X. 264视频压缩编码算法对场景切换虽然做了一些检测实现,但是并不是所有的场景切换都能正确的检测,而且对于检查到有场景切换的图像也不是每次都用IDR巾贞(Instantaneous Decoding Refresh即时解码刷新)来重新编码。

发明内容
鉴于现有技术中存在的缺陷,本发明提供一种基于场景切换的码率控制视频压缩方法,其特征在于包括如下步骤步骤一、输入视频流;步骤二、在对视频流进行编码之前判断单个图像组(GOP)内是否发生场景切换,如果发生场景切换,则执行步骤三,否则执行步骤四;步骤三、强制用IDR帧来编码,重新计算该图像组GOP内的码率大小,然后执行步骤五;步骤四、对输入的视频流进行正常码率编码,进而转入步骤六;步骤五、根据发生场景切换之后重新计算码率后的图像的每个宏块的信息来修正图像组内每个宏块的编码QP值,然后进行压缩编码;步骤六、根据编码压缩输出视频流。进一步,本发明所述的基于场景切换的码率控制视频压缩方法,其特征在于所述步骤二中判断视频流是否发生场景切换的过程具备包括如下步骤步骤I. I,对图像组内连续视频图像fn分别作2x2,4x4,8x8网格划分,定义f k (i, j)为分割后的子图像,η代表第η幅图像,k代表分割大小,k取1,2,4,8,i代表网格行坐标,j代表网格列坐标;步骤I. 2利用Paul Viola提出的积分图方法对子图像//(/,/)提取8个haar特征,定义F/ay)表示/ %_,>)对应子块的特征向量,每帧图像特征向量总长度为(2X2+4X4+8X8) X8 = 672 ;步骤I. 3若η = 1,保存化
权利要求
1.一种基于场景切换的码率控制视频压缩方法,其特征在于包括如下步骤 步骤一、输入视频流; 步骤二、在对视频流进行编码之前判断单个图像组(GOP)内是否发生场景切换,如果发生场景切换,则执行步骤三,否则执行步骤四; 步骤三、强制用IDR帧来编码,重新计算该图像组GOP内的码率大小,然后执行步骤五; 步骤四、对输入的视频流进行正常码率编码,进而转入步骤六; 步骤五、根据发生场景切换之后重新计算码率后的图像的每个宏块的信息来修正图像组内每个宏块的编码QP值,然后进行压缩编码; 步骤六、根据编码压缩输出视频流。
2.根据权利要求I所述的基于场景切换的码率控制视频压缩方法,其特征在于所述步骤二中判断视频流是否发生场景切换的过程具备包括如下步骤 步骤I. I,对图像组内连续视频图像fn分别作2x2,4x4,8x8网格划分,定义
3.根据权利要求I或2所述的基于场景切换的码率控制视频压缩方法,其特征在于步骤三中重新计算码率的过程中当前图像组GOP的长度随着场景切换帧的出现自适应地改变,并且同时对码率资源进行重新分配。
4.一种基于场景切换的码率控制视频压缩的装置,其特征在于包括如下模块 输入模块、用于输入视频流; 场景切换判断模块、用于在对视频流进行编码之前判断单个图像组内是否发生场景切换; IDR帧编码模块,用于对发生场景切换的图像组强制用IDR帧来编码,重新计算该图像组GOP内的码率大小; 正常码率编码模块、用于对输入的没有发生场景切换的视频流进行正常码率编码; 编码QP值修正模块,用于根据发生场景切换之后重新计算码率后的图像的每个宏块的信息来修正图像组内每个宏块的编码QP值,然后进行压缩编码; 输出模块,用于根据编码压缩输出视频流。
全文摘要
一种基于场景切换的码率控制视频压缩方法和装置,其中,当有视频输入时,由场景切换算法来计算是否有场景却换算法发生,如果发生了场景切换,那就插入IDR帧,重新计算后面的码率。如果没有发生场景切换,就按正常的方法计算,并且根据前面进行场景切换后得到的宏块的信息对压缩编码计算中得到的QP值信息进行调整,本发明算法与现有技术相比,不额外增加I帧的数量,可以有效地节省码率资源,同时有效地提高场景切换帧后续各帧的编码质量和序列整体的编码质量。
文档编号H04N7/26GK102630013SQ20121009388
公开日2012年8月8日 申请日期2012年4月1日 优先权日2012年4月1日
发明者肖炳珠, 郝晔明, 魏东亮 申请人:北京捷成世纪科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1