本发明专利技术公开了一种实时视频流编码器和实时视频流编码方法。该实时视频流编码器包括:第一编码模块,用于对待编码视频中的图像进行第一次编码,其中,待编码视频依次由第1至Z帧图像组成;以及第二编码模块,用于在第一编码模块完成对第X至X+N-1帧图像的编码后,对第X帧图像进行第二次编码,其中,第X帧图像为第1至Z帧图像中的任一帧图像,N为第一预设帧数且N
【技术实现步骤摘要】
本专利技术涉及图像编码领域,具体而言,涉及一种实时视频流编码器和实时视频流 编码方法。
技术介绍
码率控制算法是视频编码技术中的核心内容之一,它的目的是为视频内容的不同 部分分配适当的比特值,从而使编码视频的整体质量达到最优。H.264编码标准中通过量化 系数QP (quantization parameter)来调节编码质量与编码压缩比的关系,QP越大,表示 对图像预测残差的DCT系数进行量化时的量化步长越大、使用的比特数越少,则DCT系数的 量化误差越大,从而导致编码质量越差、编码压缩比越大、视频码率越小。与之相反,QP较 小则意味着编码质量较好且视频码率较大。码率控制算法通过调整视频码流中各个帧和各 个宏块的QP来在视频内容的各部分之间分配可使用的比特数,从而在视频码率受限的情 况下达到最优的编码质量。一般而言,码率控制算法通过对视频内容进行特征分析来为每个帧或宏块选择 恰当的QP。对于码率控制而言,视频内容最重要的特征是码率与量化参数的关系,以R-Q (Rate-Quantization)模型表示。一般而言,视频内容越复杂、运动越剧烈,贝Ij采用相同的 QP时所使用的比特数越多。码率控制算法在各帧/宏块中通过R-Q模型在目标比特数与 QP之间建立联系,从而达到为特定的目标比特值选择恰当QP或为特定的QP计算其预期比 特值的目的。码率控制算法从复杂度上一般分为基于一次编码的和基于二次编码的。在基于一 次编码的码率控制算法中,由于编码器只进行一次搜索和编码运算,所以需要在搜索之前 通过一定的算法选定QP值,然后依照此QP值进行搜索和编码。在基于二次编码的码率控 制方法中,首先使用正常的或简化的搜索和码率控制方法对整个待编码视频序列进行第一 次编码,然后通过对第一次编码的结果进行分析进行全序列的最优比特分配和QP分配,并 按该QP进行第二次编码。无论基于一次还是二次编码,码率控制算法一般分为几个层次,由高至低依次为 图片组(GOP)层、帧层、宏块组(basic unit)层和宏块层,每一层的码率控制算法将视频分 割为大小不同的部分,为每一部分分配恰当的目标比特并依R-Q模型来设定其QP。一般的 码率控制方法流程如图1所示,图中的每个循环对应于一组或一帧图像,或者一组或一个 宏块。不同的码率控制方法中存在不同的反馈机制等优化措施以提高其性能和质量,具 体流程可能与图1有一定区别,但从功能上进行划分的话主要如图1中一样分为三部分:(I)分配目标比特数。分配目标比特数主要依据信道所要求的带宽限制按当前视 频内容所占时间比例进行分配,并考虑不同的帧类型(I帧、P帧、B帧)以及各帧中不同的 编码复杂度,且需要满足编码器传输缓存区的填充状态既不发生上溢也不发生下溢。对于基于一次编码的码率控制方法,由于其无法知道当前帧之后的各帧特性,从而无法从全序列的角度进行最优的比特分配,而只能基于已完成编码的各帧来分配比特 数,因此当视频内容特性变化剧烈的时候,有可能会有各帧之间比特分配不合理的情况发生。有的基于预分析的一次编码码率控制方法会预先读取当前帧之后若干帧的内容 进行预分析,从而得到当前帧之后若干帧的粗略特性,从而当各帧特性变化剧烈时实现更 合理的帧间比特分配。但是,预分析功能读取未来帧的帧数一般较少,而且预分析功能本身 由于不进行实际编码,其得到的未来帧的特性的准确度也不太高。基于二次编码的比特分配是最准确的。二次编码的含义是先对全部待编码视频内 容进行第一次编码,从而可以得到每一帧图像的编码特性,因此只要按照各个帧的编码复 杂度进行比特分配,就可以达到使各帧编码质量基本均衡的目的。(2)计算R-Q模型。计算R-Q模型需要知道目前所编码帧的R-Q特性,它是码率控 制方法中对编码质量影响最大的步骤。得到R-Q特性主要有以下三种方式:第一种方法,也是最简单的方法,是利用视频中连续各帧的内容一般会比较相似 的特点,用前一个或几个已编码帧的R-Q特性计算当前帧的R-Q模型,即根据前一帧或几帧 的QP值和实际编码比特值,作为本帧的QP值和实际编码比特值的预测关系,然后建立本帧 的QP值与预期编码比特值的R-Q关系模型。可见,当当前帧与前几帧十分相似时,这种方 法具有一定的准确性,但是当当前帧与前几帧相似度较差,如运动剧烈或内容变化较多时, 这种方法得到的R-Q模型不能准确地反映当前帧的R-Q特性。第二种方法比第一种稍复杂,它通过对当前帧进行预分析来得到当前帧的近似的 编码特性,以之来计算当前帧的R-Q模型。所使用的预分析方法主要是衡量图像的运动强 度或者编码复杂度,所使用的方法包括但不限于帧间相似度检测以及针对下采样过的当前 帧图像进行粗略的帧间预测和帧内预测。这种方法得到的R-Q模型的精确度不再依赖于当 前帧与前几帧的特性相似度,在各帧之间的差异较大时也能以合理的方式计算R-Q关系, 因此能得到比第一种方法中更为准确的R-Q模型。但是由于预分析方法只是粗略的估计, 其本身的精度是限制这种方法中R-Q模型精度的最主要方面。第三种方法就是进行二次编码。通过对各帧进行第一次编码,得到各帧编码时所 用的QP值及对应的实际使用比特数,就可以得到每一帧在R-Q模型曲线上的一个真实点。 这种方法所得到的R-Q模型精度是前两种所不能相提并论的。(3)计算QP。在这个步骤中,根据为当前帧分配的目标比特数,通过R-Q模型的换 算来得到当前帧/宏块组为了按照目标比特进行编码所应使用的QP值,之后便以按照此QP 进行搜索和编码,并输出实际编码码流。在基于二次编码的码率控制方法中,第一次编码按 照第一次编码中码率控制方法所计算出的QP进行,之后在第二次编码中重新计算目标比 特数和QP并编码出实际输出码流,第一次编码时所用的QP对于实际输出码流并没有直接 的作用。但是,第二次编码所用的QP与第一次编码的QP越接近,第二次编码所使用的R-Q 模型就越精确,第二次编码的编码质量就越高,所以第一次编码时的码率控制质量对于最 终输出的码流质量也是很重要的。综上所述,基于二次编码的码率控制能在相同的压缩率下得到明显高于基于一次 编码的平均编码质量和最小的编码质量波动,但是由于其要求先对整个待编码序列进行一 次编码,因此在时序上不符合编码实时流的基本要求,从而在大多数场合包括实时流编码器、转码器等设备中仅使用基于一次编码的码率控制方法,只在对编码质量要求较高且不要求实时输出的场合,如压制DVD等使用基于二次编码的码率控制方法。因而,现有的实时视频流编码器中仅使用一次编码码率控制方法,而这些方法由于先验信息有限而不能实现最优的比特分配,从而不能达到很高的编码质量。针对相关技术中实时视频流编码器编码质量低的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术的主要目的在于提供一种,以解决实时视频流编码器编码质量低的问题。为了实现上述目的,根据本专利技术的一个方面,提供了一种实时视频流编码器。根据本专利技术的实时视频流编码器包括:第一编码模块,用于对待编码视频中的图像进行第一次编码,其中,待编码视频依次由第I至Z帧图像组成;以及第二编码模块,用于在第一编码模块完成对第X至X+N-ι帧图像的编码后,对第X帧图像进行第二次编码,其中,第X帧图像为第I至Z本文档来自技高网...
【技术保护点】
一种实时视频流编码器,其特征在于,包括:第一编码模块,用于对待编码视频中的图像进行第一次编码,其中,所述待编码视频依次由第1至Z帧图像组成;以及第二编码模块,用于在所述第一编码模块完成对第X至X+N?1帧图像的编码后,对所述第X帧图像进行第二次编码,其中,所述第X帧图像为所述第1至Z帧图像中的任一帧图像,N为第一预设帧数且N
【技术特征摘要】
1.一种实时视频流编码器,其特征在于,包括:第一编码模块,用于对待编码视频中的图像进行第一次编码,其中,所述待编码视频依次由第I至Z帧图像组成;以及第二编码模块,用于在所述第一编码模块完成对第X至X+N-1帧图像的编码后,对所述第X帧图像进行第二次编码,其中,所述第X帧图像为所述第I至Z帧图像中的任一帧图像, N为第一预设帧数且N〈Z,其中,所述第一编码模块还用于在所述第二编码模块对所述第X帧图像进行编码时, 对第X+N帧图像进行编码。2.根据权利要求1所述的实时视频流编码器,其特征在于,还包括:预分析模块,用于对所述待编码视频的图像进行预分析,其中,所述第一编码模块还用于在所述预分析模块完成对第X至X+M-1帧图像的预分析后,对所述第X帧图像进行编码,其中,M为第二预设帧数且N〈M〈Z,所述预分析模块还用于在所述第一编码模块对所述第X帧图像进行编码时,对第X+M 帧图像进行预分析。3.根据权利要求2所述的实时视频流编码器,其特征在于,还包括:第一缓存器,用于存储M帧图像及所述M帧图像的预分析结果;以及第二缓存器,用于存储N帧图像及所述N帧图像的预分析结果和第一次编码结果, 其中,所述预分析模块还用于对所述第X帧图像进行预分析后,将所述第X帧图像及所述第X帧图像的预分析结果移入所述第一缓存器;所述第一缓存器还用于在接收到所述第X帧图像后,判断当前存储图像帧数是否大于 M,以及在当前存储图像帧数大于M时,将第X-M帧图像及所述第X-M帧图像的预分析结果移出;所述第一编码模块还用于对所述第X帧图像进行编码后,将所述第X帧图像及所述第 X帧图像的预分析结果和第一次编码结果移入所述第二缓存器;以及所述第二缓存器还用于在接收到所述第X帧图像后,判断当前存储图像帧数是否大于 N,以及在当前存储图像帧数大于N时,将第X-N帧图像及所述第X-N帧图像的预分析结果和第一次编码结果移出。4.根据权利要求3所述的实时视频流编码器,其特征在于,所述第一编码模块还用于根据第X至X+M-1帧图像的预分析结果和所述第X-1帧图像的第一次编码结果对所述第X帧图像进行编码;以及所述第二编码模块还用于根据第X至X+N+M-1帧图像的预分析结果、第X至X+N-1帧图像的第一次编码结果和所述第X-1帧图像的第二次编码结果对所述第X帧图像进行编码。5.根据权利要求1至4中任一...
【专利技术属性】
技术研发人员:包佳晶,张天若,张龙霄,张刚,
申请(专利权)人:北京数码视讯科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。