CN103517080A - 实时视频流编码器和实时视频流编码方法 - Google Patents
实时视频流编码器和实时视频流编码方法 Download PDFInfo
- Publication number
- CN103517080A CN103517080A CN201210211786.2A CN201210211786A CN103517080A CN 103517080 A CN103517080 A CN 103517080A CN 201210211786 A CN201210211786 A CN 201210211786A CN 103517080 A CN103517080 A CN 103517080A
- Authority
- CN
- China
- Prior art keywords
- field picture
- time
- coding
- encoded
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种实时视频流编码器和实时视频流编码方法。该实时视频流编码器包括:第一编码模块,用于对待编码视频中的图像进行第一次编码,其中,待编码视频依次由第1至Z帧图像组成;以及第二编码模块,用于在第一编码模块完成对第X至X+N-1帧图像的编码后,对第X帧图像进行第二次编码,其中,第X帧图像为第1至Z帧图像中的任一帧图像,N为第一预设帧数且N<Z,其中,第一编码模块还用于在第二编码模块对第X帧图像进行编码时,对第X+N帧图像进行编码。通过本发明,提高了实时视频流编码器的编码质量。
Description
技术领域
本发明涉及图像编码领域,具体而言,涉及一种实时视频流编码器和实时视频流编码方法。
背景技术
码率控制算法是视频编码技术中的核心内容之一,它的目的是为视频内容的不同部分分配适当的比特值,从而使编码视频的整体质量达到最优。H.264编码标准中通过量化系数QP(quantization parameter)来调节编码质量与编码压缩比的关系,QP越大,表示对图像预测残差的DCT系数进行量化时的量化步长越大、使用的比特数越少,则DCT系数的量化误差越大,从而导致编码质量越差、编码压缩比越大、视频码率越小。与之相反,QP较小则意味着编码质量较好且视频码率较大。码率控制算法通过调整视频码流中各个帧和各个宏块的QP来在视频内容的各部分之间分配可使用的比特数,从而在视频码率受限的情况下达到最优的编码质量。
一般而言,码率控制算法通过对视频内容进行特征分析来为每个帧或宏块选择恰当的QP。对于码率控制而言,视频内容最重要的特征是码率与量化参数的关系,以R-Q(Rate-Quantization)模型表示。一般而言,视频内容越复杂、运动越剧烈,则采用相同的QP时所使用的比特数越多。码率控制算法在各帧/宏块中通过R-Q模型在目标比特数与QP之间建立联系,从而达到为特定的目标比特值选择恰当QP或为特定的QP计算其预期比特值的目的。
码率控制算法从复杂度上一般分为基于一次编码的和基于二次编码的。在基于一次编码的码率控制算法中,由于编码器只进行一次搜索和编码运算,所以需要在搜索之前通过一定的算法选定QP值,然后依照此QP值进行搜索和编码。在基于二次编码的码率控制方法中,首先使用正常的或简化的搜索和码率控制方法对整个待编码视频序列进行第一次编码,然后通过对第一次编码的结果进行分析进行全序列的最优比特分配和QP分配,并按该QP进行第二次编码。
无论基于一次还是二次编码,码率控制算法一般分为几个层次,由高至低依次为图片组(GOP)层、帧层、宏块组(basic unit)层和宏块层,每一层的码率控制算法将视频分割为大小不同的部分,为每一部分分配恰当的目标比特并依R-Q模型来设定其QP。一般的码率控制方法流程如图1所示,图中的每个循环对应于一组或一帧图像,或者一组或一个宏块。
不同的码率控制方法中存在不同的反馈机制等优化措施以提高其性能和质量,具体流程可能与图1有一定区别,但从功能上进行划分的话主要如图1中一样分为三部分:
(1)分配目标比特数。分配目标比特数主要依据信道所要求的带宽限制按当前视频内容所占时间比例进行分配,并考虑不同的帧类型(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等使用基于二次编码的码率控制方法。
因而,现有的实时视频流编码器中仅使用一次编码码率控制方法,而这些方法由于先验信息有限而不能实现最优的比特分配,从而不能达到很高的编码质量。
针对相关技术中实时视频流编码器编码质量低的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种实时视频流编码器和实时视频流编码方法,以解决实时视频流编码器编码质量低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种实时视频流编码器。
根据本发明的实时视频流编码器包括:第一编码模块,用于对待编码视频中的图像进行第一次编码,其中,待编码视频依次由第1至Z帧图像组成;以及第二编码模块,用于在第一编码模块完成对第X至X+N-1帧图像的编码后,对第X帧图像进行第二次编码,其中,第X帧图像为第1至Z帧图像中的任一帧图像,N为第一预设帧数且N<Z,其中,第一编码模块还用于在第二编码模块对第X帧图像进行编码时,对第X+N帧图像进行编码。
进一步地,该实时视频流编码器还包括:预分析模块,用于对待编码视频的图像进行预分析,其中,第一编码模块还用于在预分析模块完成对第X至X+M-1帧图像的预分析后,对第X帧图像进行编码,其中,M为第二预设帧数且N<M<Z,预分析模块还用于在第一编码模块对第X帧图像进行编码时,对第X+M帧图像进行预分析。
进一步地,该实时视频流编码器还包括:第一缓存器,用于存储M帧图像及M帧图像的预分析结果;以及第二缓存器,用于存储N帧图像及N帧图像的预分析结果和第一次编码结果,其中,预分析模块还用于对第X帧图像进行预分析后,将第X帧图像及第X帧图像的预分析结果移入第一缓存器;第一缓存器还用于在接收到第X帧图像后,判断当前存储图像帧数是否大于M,以及在当前存储图像帧数大于M时,将第X-M帧图像及第X-M帧图像的预分析结果移出;第一编码模块还用于对第X帧图像进行编码后,将第X帧图像及第X帧图像的预分析结果和第一次编码结果移入第二缓存器;以及第二缓存器还用于在接收到第X帧图像后,判断当前存储图像帧数是否大于N,以及在当前存储图像帧数大于N时,将第X-N帧图像及第X-N帧图像的预分析结果和第一次编码结果移出。
进一步地,第一编码模块还用于根据第X至X+M-1帧图像的预分析结果和第X-1帧图像的第一次编码结果对第X帧图像进行编码;以及第二编码模块还用于根据第X至X+N+M-1帧图像的预分析结果、第X至X+N-1帧图像的第一次编码结果和第X-1帧图像的第二次编码结果对第X帧图像进行编码。
进一步地,10≤M≤40,50≤N≤200。
为了实现上述目的,根据本发明的另一方面,提供了一种实时视频流编码方法。
根据本发明的实时视频流编码方法包括:对待编码视频中的第X至X+N-1帧图像进行第一次编码,其中,待编码视频依次由第1至Z帧图像组成,第X帧图像为第1至Z帧图像中的任一帧图像,N为第一预设帧数且N<Z;以及在得到第X至X+N-1帧图像的第一次编码结果后,对第X帧图像进行第二次编码,其中,对第X帧图像进行第二次编码的同时,对第X+N帧图像进行第一次编码。
进一步地,对第X帧图像进行第一次编码之前,该方法还包括:对第X至X+M-1帧图像进行预分析,其中,M为第二预设帧数且N<M<Z,其中,对第X帧图像进行第一次编码的同时,对第X+M帧图像进行预分析。
进一步地,该方法还包括:通过第一缓存器存储M帧图像及M帧图像的预分析结果;以及通过第二缓存器存储N帧图像及N帧图像的预分析结果和第一次编码结果,其中,对第X帧图像进行预分析后,将第X帧图像及第X帧图像的预分析结果移入第一缓存器;在第一缓存器接收到第X帧图像后,判断当前存储图像帧数是否大于M,以及在当前存储图像帧数大于M时,将第X-M帧图像及第X-M帧图像的预分析结果移出;对第X帧图像进行编码后,将第X帧图像及第X帧图像的预分析结果和第一次编码结果移入第二缓存器;以及在第二缓存器接收到第X帧图像后,判断当前存储图像帧数是否大于N,以及在当前存储图像帧数大于N时,将第X-N帧图像及第X-N帧图像的预分析结果和第一次编码结果移出。
进一步地,对第X帧图像进行第一次编码包括:根据第X至X+M-1帧图像的预分析结果和第X-1帧图像的第一次编码结果对第X帧图像进行第一次编码;对第X帧图像进行第二次编码包括:根据第X至X+N+M-1帧图像的预分析结果、第X至X+N-1帧图像的第一次编码结果和第X-1帧图像的第二次编码结果对第X帧图像进行第二次编码。
进一步地,10≤M≤40,50≤N≤200。
通过本发明,采用包括以下部分的实时视频流编码器:用于对待编码视频中的图像进行第一次编码的第一编码模块;以及用于在第一编码模块完成对第X至X+N-1帧图像的编码后,对第X帧图像进行第二次编码的第二编码模块,其中,第一编码模块对第X+N帧图像进行编码的同时,第二编码模块对第X帧图像进行编码,也即第一编码模块领先第二编码模块N帧且与第二编码模块同时进行编码,从而第二编码模块在对某一帧进行编码时,能够利用该帧后N帧的第一次编码结果,满足二次编码的条件,并且第二编码模块与第一编码模块同时进行编码,满足实时输出码流信息的条件,进而该实时视频流编码器不仅能够实时编码,而且能够通过二次编码的方式进行编码,解决了实时视频流编码器编码质量低的问题,进而达到了提高实时视频流编码器编码质量的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的码率控制方法的流程图;
图2是根据本发明第一实施例的实时视频流编码器的框图;
图3是根据本发明第二实施例的实时视频流编码器的框图;
图4是根据本发明第二实施例的实时视频流编码器中视频流转换流程图;
图5是根据本发明第二实施例的实时视频流编码器的编码时序图;
图6是根据本发明实施例的第二编码模块的码率控制流程图;
图7是根据本发明第一实施例的实时视频流编码方法的流程图;以及
图8是根据本发明第二实施例的实时视频流编码方法的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
图2是根据本发明第一实施例的实时视频流编码器的框图,如图2所示,该实时视频流编码器包括第一编码模块20和第二编码模块40。
第一编码模块20用于对待编码视频中的图像进行第一次编码,其中,待编码视频依次由第1至Z帧图像组成,第X帧图像为第1至Z帧图像中的任一帧图像,第X+1帧、第X+2帧、…、第X+N-1帧、第X+N帧图像分别依次为第X帧图像后1帧、2帧、…、N-1帧、N帧图像,N为第一预设帧数且N<Z。
其中,第一编码模块20在对任一帧图像进行第一次编码时,可基于已完成编码的各帧编码结果来编码。优选地,也可在第一编码模块20之前,先对各帧各宏块图像进行预分析,从而第一编码模块20在对任一帧图像进行第一次编码时,可基于已完成编码的各帧编码结果以及所有图像的预分析结果来编码;或者,在第一编码模块20之前,对各帧各宏块图像进行预测,比如利用视频中相邻帧内容相似的特点,直接使用上一帧的编码复杂度作为当前帧的编码复杂度的预测值,从而第一编码模块20在对任一帧图像进行第一次编码时,可基于已完成编码的各帧编码结果以及预测结果来编码。
第二编码模块40用于在第一编码模块20完成对第X至X+N-1帧图像的编码后,对第X帧图像进行第二次编码,从而在对第X帧图像进行第二次编码时,可基于第1至X+N-1帧图像中任意一帧或几帧的第一次编码结果以及第1至X-1帧图像中任意一帧或几帧的第二次编码结果进行第二次编码,满足二次编码的条件。
在该实施例中,实时视频流编码器接收到待编码视频后,可以根据待编码视频特点确定第一预设帧数N,或者接收用户命令,根据用户命令确定第一预设帧数N。在确定N后,第一编码模块20便开始对待编码视频中的第1帧、第2帧、…、第N帧图像进行第一次编码。当第一编码模块20完成第N帧图像的第一次编码后,在对第N+1帧图像进行第一次编码时,第二编码模块40开始对第1帧图像进行第二次编码,并在第二次编码后,输出第1帧图像的实际编码。
之后,以此类推:第一编码模块20对第N+2帧图像进行第一次编码时,第二编码模块40对第2帧图像进行第二次编码,并输出第2帧图像的实际编码;第一编码模块20对第N+3帧图像进行第一次编码时,第二编码模块40对第3帧图像进行第二次编码,并输出第3帧图像的实际编码……,直到第二编码模块40输出最后一帧,也即第Z帧图像的实际编码,该实时视频流编码器完成对待编码视频的编码并实时输出实际编码码流。
从中可以看出,该实时视频流编码器的输入端不停地有待编码的视频图像输入,同时,输出端不停地有编码好的视频码流输出,其中,输出仅滞后输入N帧,也即若干秒的延时,对于实时视频流编码器,若干秒的延时是普遍存在且可接受的,因而,该实时视频流编码器符合“实时”的要求。
采用该实施例提供的实时视频流编码器,不仅能够实时编码,而且能够通过二次编码的方式进行编码,与基于一次编码的实时视频流编码器相比,能够极大地提高编码质量。
图3是根据本发明第二实施例的实时视频流编码器的框图,如图3所示,该实时视频流编码器包括预分析模块60、第一缓存器10、第一编码模块20、第二缓存器30和第二编码模块40。
以对由第1至Z帧图像组成的待编码视频进行编码为例,设第X帧图像为第1至Z帧图像中的,某一帧图像,则第X+1帧、第X+2帧、…、第X+N-1帧、第X+N帧、…、第X+M帧、第X+M+1帧、…、第X+M+N-1帧以及第X+M+N帧图像分别依次为第X帧图像后1帧、2帧、…、N-1帧、N帧、…、M帧、M+1帧、…、M+N-1帧以及M+N帧图像,N为第一预设帧数且N<Z,M为第二预设帧数且N<M<Z。
预分析模块60用于对待编码视频的图像进行预分析,可通过现有技术中任意一种预分析方法实现。预分析模块60每完成一帧图像的预分析,将该帧图像及该帧图像的预分析结果存入第一缓存器10,例如:在预分析模块60完成对第X帧图像的预分析后,将第X帧图像及其预分析结果存入第一缓存器10。
第一缓存器10用于存储M帧图像及M帧图像的预分析结果。第一缓存器10每次接收到新一帧图像以及该新一帧图像的预分析结果后,都会判断当前存储图像帧数是否大于M,如果当前存储图像帧数大于M时,自动将当前存储图像中的第一帧图像及其预分析结果移出,以保证第一缓存器10存储的图像帧数不超过M帧。例如:在接收到预分析模块60移入的第X帧图像后,判断当前存储图像帧数是否大于M,以及在当前存储图像帧数大于M时,自动将当前存储图像中的第一帧图像,也即第X-M帧图像及第X-M帧图像的预分析结果移出。
第一编码模块20滞后于预分析模块M帧,对已完成预分析的图像进行第一次编码,也即第一编码模块20滞后于预分析模块60的帧数等于第一缓存器10中存储的图像帧数。因而,在预分析模块60完成对第X至X+M-1帧图像的预分析后,第一编码模块20对第X帧图像进行编码。优选地,第一编码模块20从第一缓存器10中获取第X帧图像,以及第X至X+M-1帧图像的预分析结果,根据上一帧(也即第X-1帧)图像的第一次编码结果和第X至X+M-1帧图像的预分析结果对第X帧图像进行第一次编码。第一编码模块20每完成一帧图像的编码,将该帧图像及该帧图像的预分析结果以及第一次编码结果全部存入第二缓存器30,例如:在第一编码模块20完成对第X帧图像的第一次编码后,将第X帧图像及其预分析结果以及第一次编码结果全部存入第二缓存器30。
第二缓存器30用于存储N帧图像及N帧图像的预分析结果和第一次编码结果,第二缓存器30每次接收到新一帧图像以及该新一帧图像的预分析结果和第一次编码结果后,都会判断当前存储图像帧数是否大于N,如果当前存储图像帧数大于N时,自动将当前存储图像中的第一帧图像及其预分析结果和第一次编码结果移出,以保证第二缓存器30存储的图像帧数不超过N帧。例如:在接收到第一编码模块20移入的第X帧图像后,判断当前存储图像帧数是否大于N,以及在当前存储图像帧数大于N时,自动将当前存储图像中的第一帧图像,也即第X-N帧图像及第X-N帧图像的预分析结果和第一次编码结果移出。
第二编码模块40滞后于第一编码模块N帧,对已完成第一次编码的图像进行第二次编码,也即第二编码模块40滞后于第一编码模块20的帧数等于第二缓存器30中存储的图像帧数。因而,在第一次编码模块20完成对第X至X+N-1帧图像的第一次编码后,第二编码模块40对第X帧图像进行编码。优选地,第二编码模块40从第二缓存器30中获取第X帧图像,以及第X至X+N-1帧图像的预分析结果和第一次编码结果,从第一缓存器10中获取第X+N至X+N+M-1帧图像的预分析结果,从而根据上一帧(也即第X-1帧)图像的第二次编码结果、第X至X+N+M-1帧图像的预分析结果及第X至X+N-1帧图像的第一次编码结果对第X帧图像进行第二次编码。第二编码模块40每完成一帧图像的编码,将实际编码信息输出。
各模块同时实时运行的时序如图4所示,预分析模块60领先第一编码模块M帧,即预分析模块60完成了第1至M帧的预分析之后,第一编码模块20才开始对第1帧进行第一次编码。缓存器1(即第一缓存器10)存储了M帧图像及其预分析结果。第一编码模块20领先第二编码模块N帧,即第1至N帧图像完成了第一次编码之后,第1帧才开始进行第二次编码。缓存器2(即第二缓存器30)存储了N帧图像及其预分析结果、第一次编码结果。每处理完一帧图像,缓存器1和缓存器2中第一帧被移出缓存器,上一级功能模块的最新一帧被移入缓存器,即两个缓存器如同一个大小不变的窗口逐帧向后滑动。
由此可以看出,在对某一帧进行第一次编码时,码率控制方法可利用的信息包括之前所有帧的预分析结果和第一次编码结果,以及之后M帧的预分析结果;在对某一帧进行第二次编码时,码率控制方法可利用的信息包括之前所有帧的预分析结果、第一次编码结果和第二次编码结果、之后M帧的第一次编码结果,以及之后M+N帧的预分析结果。在实际使用中,M可设为10至40,N可设为50至200。
该实施例的实时视频流编码器中的数据流如图5所示,由预分析模块读入新的待编码图像进行预分析,之后将该图像及预分析结果移入缓存器1;在缓存器1已满的情况下,第一次编码模块从缓存器1中读取每一个待编码图像及其预分析结果,进行第一次编码中的码率控制并进行编码,将第一次编码结果以及之前的预分析结果、待编码图像一起存入缓存器2;在缓存器2已满的情况下,第二次编码模块从缓存器2中读取每一个待编码图像及其预分析结果和第一次编码结果,进行第二次编码中的码率控制并进行编码,最后将第二次编码结果作为实际编码码流进行输出。
各级功能模块之间,靠检查缓存器是否为满来保证时序的正确性,当缓存器1不满时,预分析模块会读入新的待编码原始图像进行预分析,之后将该原始图像和预分析结果推入缓存器1,使缓存器1重新为满以待第一次编码模块使用。第一次编码模块结束了某一帧的编码后,若缓存器2不满则将该帧原始图像、预分析结果和第一次编码结果存入缓存器2,若缓存器2为满则进行等待直到第二次编码模块从缓存器2中读取了一帧数据使缓存器2不满后再将这些数据存入缓存器2。
因而,在实时视频流编码其中,预分析模块在处理第1至M帧时,第一编码模块是没有进行任何编码工作。但是在这之后的所有时间中,预分析模块都是和第一编码模块同时实时运行的。同理,在预分析模块处理完第M+N帧之后的所有时间中,预分析模块、第一编码模块、第二编码模块这三个模块是完全同时实时运行的。
该基于二次编码的编码器,其输入和输出延时为M+N帧,优选设定M+N=120帧,在25fps的视频中对应将近5秒的延时,相当于是编码器的启动时间,即编码器在启动时即接收输入视频,约5秒后预分析模块、第一次编码模块、第二次编码模块开始同时实时运行并持续地输出已编码码流。在广电系统中,视频编码器开机之后会7x24小时地运行,最初几秒之内的不完全运行是可以忽略的,在之后的所有时间之内三个模块都是在同时运行的,完全符合“实时”编码器的要求。
采用该优选实施例提供的实时视频流编码器,包括预分析模块60、第一编码模块20和第二编码模块40三级功能模块,这三个功能模块可以同时实时运行,共同完成码率控制功能。通过设置预分析模块60,进一步提高编码器的编码质量,同时,这三级功能模块依次保持一定的延时,以保证上一级模块能提前处理完预设的帧数以便下一级功能模块使用,能够实时输出编码码流。此外,每两级功能模块之间存在一个缓存器,每个缓存器中缓存了上一级功能模块处理完毕而下一级功能模块尚未开始处理的各帧图像及其处理结果信息,保证了各级处理的数据不会丢失。
优选地,各功能模块的实现方法如下:
(1)预分析模块。预分析模块中对待编码视频中的各帧图像进行了简化的帧内预测和帧间预测搜索,并根据搜索时得到的编码代价来估算各帧及各宏块的编码复杂度。然后,根据各帧的编码代价以及对场景切换的检测来选择合适的帧类型。
其中,编码代价用来表征宏块或宏块对采用某一种编码方式时使用的比特数以及引入的视频质量损失。编码代价越大,则需要使用的比特数越多,视频质量损失越大;编码代价越小,需要的比特数越少(即压缩比越高),视频质量越好。视频编码中,使用不同的运动矢量和编码模式(即图像分块大小以及帧内、帧间预测等)时都会有不同的编码代价,搜索的目的就是通过穷举地计算各个不同的运动矢量和编码模式对应的编码代价,来找到编码代价最小的运动矢量和编码模式,以之编码能得到最高的压缩比和最好的视频质量。
优选地,通过SAD(Sum ofAbsolute Difference,绝对误差和)方法来计算编码代价,具体地,通过帧间预测或帧内预测得到每块图像各像素值的一组预测值,将预测值与实际图像的像素值相减得到预测残差,然后对预测残差进行DCT变换、量化和熵编码。残差值的大小是影响视频压缩率和质量的最主要因素。在进行搜索时,针对每个不同的运动矢量及模式,计算整个宏块或宏块对的预测残差的绝对值之和即为SAD,也即为编码代价,通过搜索所有可能的运动矢量和模式,找到最小的SAD,则该SAD对应的运动矢量及模式即为最优,编码器应按照它来进行编码。
(2)第一编码模块。每一帧按照预分析中选择的帧类型进行编码。首先依照帧类型为各帧分配恰当的目标比特数,按照预分析时的编码代价对R-Q模型进行计算,计算出对应该目标比特数所应使用的QP。
之后,将当前帧和之后M帧图像,按照当前QP进行编码的预测比特数填入编码器的传输虚拟缓存区,并调整QP值使在未来的M帧之内此虚拟缓存区不会发生上溢和下溢,调整之后的QP作为当前帧的基准QP。
最后,对当前帧中的每个宏块按照其各自的复杂度计算出独立的QP值偏置,并对每个宏块按照帧级基准QP和宏块级QP偏置值的和进行编码。
其中,虚拟缓冲区是在控制视频码率的时候,在编码器中假想的模拟传输设备中信号发送缓冲区的。对于要求的视频码率,只代表着视频流的平均码率,而这个码率不可能是完全均匀的,因此在信号传输设备中会存在一个发送缓冲区,当瞬间码率较大时将来不及发送走的码流存在此缓冲区内,之后再按顺序发送。如果视频的平均码率小于等于信号传输设备的发送码率,一般而言依靠这个缓冲区传输设备能将视频码流全部正确发送走。但是,如果视频码率的波动太大,在某一个瞬间的比特数过多,多到发送缓冲区被填满,则整个系统会出现问题,可能造成某一段码流无法发送;如果某一个瞬间的比特数过少,缓冲区完全为空,则传输设备会在某个时刻没有可发送的数据,这就造成了带宽的浪费,会使视频质量降低。
因此,在编码器的码率控制算法中,除了要控制住平均码率,还要控制住瞬间码率使发送设备的缓冲区不会发生上溢或下溢。这个过程是靠在编码器中设立一个虚拟缓冲区来完成的。每完成对一帧的编码(第一次编码模块和第二次编码模块均存在此过程),这一帧的比特数会被填充到虚拟缓冲区,同时虚拟缓冲区会按照预设的系统码率每秒推出固定的比特数。这样,在设定的虚拟缓冲区的体积小于等于实际传输设备的发送缓冲区的情况下,只要保证虚拟缓冲区不会上溢或者下溢,就可以保证实际传输设备的发送缓冲区不会发生上溢或者下溢,既不会造成码流无法发送,也不会造成带宽浪费。
以待编码图像中的任一帧,即第X帧图像为例,对第X帧图像进行第一次编码的编码过程如下:第一编码模块20从第一缓冲器10中得到第X至X+M-1帧图像及其预分析结果,第一编码模块20缓存有第X-1帧的第一次编码结果后,首先根据第X-1帧图像的第一次编码结果更新R-Q模型,更新后的R-Q模型将作为第X帧以及X+M-1帧编码预测模型使用,同时更新剩余码率信息。然后对第X帧和X+M-1帧按照更新后的R-Q模型进行编码码率预测,得到M帧编码码率和,同时根据剩余码率信息得到M帧待编码码率,将二者进行比较,按照比较结果调整本帧编码QP值。
(3)第二编码模块。编码每帧图像前对图像进行初始化,按照第一次编码结果,根据R-Q模型调整本帧QP和后向N帧的QP值,重新分配每帧目标比特数,务必使得帧间质量均衡,总比特数逼近于待编码目标比特数。第二次编码在第一次编码的基础上进行,有更为准确的R-Q模型数据,而且R-Q模型以本帧第一次编码信息为建模数据,可以将误差精度控制在10%~15%内。
其中,QP调整过程如图6所示,对当前帧进行第二次编码时,首先为其初始化基准QP,并根据已完成第二次编码帧的实际比特数计算当前帧及此后N帧的目标总比特数。然后,计算若当前帧及其后N帧均按此基准QP进行编码时各帧的比特数,并检查此N帧中虚拟缓存区是否发生了上溢或下溢。若虚拟缓存区填充状态在若干段帧中发生了上溢或下溢,则在基准QP的基础上调整该分段中的QP使虚拟缓存区状态正常。之后,按照各帧调整后的新QP计算当前帧及其后N帧的预测总比特数。最后,比较此预测总比特数是否与目标总比特数偏离过远,如果这个差距过大,则重新调整设定的基准QP值,基准QP值的调整方向由预测总比特数与目标总比特数的偏离方向决定,预测总比特数过大则将在设定的QP上增大ΔQP,反之则减小ΔQP,直至预测总比特数与目标总比特数的差距在预设范围内停止。记录当前帧的QP和目标比特数,按照当前帧的QP为当前帧进行第二次编码并输出码流。
以待编码图像中的任一帧,即第X帧图像为例,对第X帧图像进行第二次编码的编码过程如下:第二编码模块20从第一缓冲器10中得到第X至第X+N帧图像信息,第二编码模块中缓存有第X-1帧图像第二次编码结果,首先根据第X-1帧图像第二次编码结果更新剩余码率信息,然后按照第X帧图像至第X+N帧图像的第一次编码结果一次更新第X帧图像至第X+N帧图像的R-Q模型,按照第X帧图像至第X+N帧图像的第一次编码得到的第X帧图像至第X+N帧图像SAD值计算在指定QP下需要的编码码率,得到N帧编码码率和,将N帧编码码率和与根据剩余码率得到的N帧待编码码率值比较,调整指定的QP值至二者匹配,将这个指定的QP值作为第X帧图像编码QP值。
本发明实施例还提供了实时视频流编码方法,以下对本发明实施例所提供的实时视频流编码方法进行介绍。需要说明的是,在本发明实施例的实时视频流编码方法可以通过本发明实施例所提供的实时视频流编码器来执行,本发明实施例的实时视频流编码器也可以用于执行本发明实施例所提供的实时视频流编码方法。
图7是根据本发明第一实施例的实时视频流编码方法的流程图,如图7所示,该方法包括如下的步骤S102和步骤S104:
步骤S102:对待编码视频中的第X至X+N-1帧图像进行第一次编码,其中,待编码视频依次由第1至Z帧图像组成,第X帧图像为第1至Z帧图像中的任一帧图像,N为第一预设帧数且N<Z。
其中,在对任一帧图像进行第一次编码时,可基于已完成编码的各帧编码结果来编码。优选地,也可在第一次编码之前,先对各帧各宏块图像进行预分析,从而在对任一帧图像进行第一次编码时,可基于已完成编码的各帧编码结果以及所有图像的预分析结果来编码;或者,在第一次编码之前,对各帧各宏块图像进行预测,比如利用视频中相邻帧内容相似的特点,直接使用上一帧的编码复杂度作为当前帧的编码复杂度的预测值,从而在对任一帧图像进行第一次编码时,可基于已完成编码的各帧编码结果以及预测结果来编码。
步骤S104:在得到第X至X+N-1帧图像的第一次编码结果后,对第X帧图像进行第二次编码,其中,对第X帧图像进行第二次编码的同时,对第X+N帧图像进行第一次编码。
在步骤S102完成对第X至X+N-1帧图像的编码后,通过步骤S104对第X帧图像进行第二次编码,从而在对第X帧图像进行第二次编码时,可基于第1至X+N-1帧图像中任意一帧或几帧的第一次编码结果以及第1至X-1帧图像中任意一帧或几帧的第二次编码结果进行第二次编码,满足二次编码的条件。
在该实施例中,接收到待编码视频后,可以根据待编码视频特点确定第一预设帧数N,或者接收用户命令,根据用户命令确定第一预设帧数N。在确定N后,开始对待编码视频中的第1帧、第2帧、…、第N帧图像进行第一次编码。当完成第N帧图像的第一次编码后,在对第N+1帧图像进行第一次编码时,开始对第1帧图像进行第二次编码,并在第二次编码后,输出第1帧图像的实际编码。
之后,以此类推:对第N+2帧图像进行第一次编码时,对第2帧图像进行第二次编码,并输出第2帧图像的实际编码;对第N+3帧图像进行第一次编码时,对第3帧图像进行第二次编码,并输出第3帧图像的实际编码……,直到输出最后一帧,也即第Z帧图像的实际编码,完成对待编码视频的编码并实时输出实际编码码流。
从中可以看出,采用该实时视频流编码方法的编码器,其输入端不停地有待编码的视频图像输入,同时,输出端不停地有编码好的视频码流输出,其中,输出仅滞后输入N帧,也即若干秒的延时,对于实时编码方法,若干秒的延时是普遍存在且可接受的,因而,该实时视频流编码方法符合“实时”的要求。
采用该实施例提供的实时视频流编码方法,不仅能够实时编码,而且能够通过二次编码的方式进行编码,与基于一次编码的实时视频流编码方法相比,能够极大地提高编码质量。
图8是根据本发明第二实施例的实时视频流编码方法的流程图,如图8所示,该方法包括步骤S202至步骤S212:
步骤S202:获取待编码视频的一帧图像。
步骤S204:对获取到的图像进行预分析,并将获取到图像及预分析结果存入第一缓存器,返回步骤S202,至所有图像预分析完毕。该步骤可通过图3所示实施例中的预分析模块60实现。
步骤S206:在第一缓存器中的图像帧数大于M时,将第一缓存器中的第一帧图像及该第一帧图像的预分析结果移出第一缓存器。
步骤S208:对第一缓存器移出的图像进行第一次编码,并将第一缓存器移出的图像及预分析结果和第一次编码得到的第一编码结果存入第二缓存器,返回步骤S206,至所有图像预分析完毕。该步骤可通过图3所示实施例中的第一编码模块20实现。
在步骤S208进行第一次编码的同时,步骤S204领先步骤S208共M帧图像,对获取到的图像进行预分析,也即,当步骤S208对第X帧图像进行第一次编码时,步骤S204正在对第X+M帧图像进行预分析。
步骤S210:在第二缓存器中的图像帧数大于N时,将第二缓存器中的第一帧图像及该第一帧图像的预分析结果和第一编码结果移出第二缓存器。
步骤S212:对第二缓存器移出的图像进行第二次编码,在输出编码结果后返回步骤S210,至所有图像的编码结果全部输出。
在步骤S212进行第二次编码的同时,步骤S208领先步骤S208共N帧图像,对第一缓存器移出的图像进行第一次编码,也即,当步骤S212对第X帧图像进行第二次编码时,步骤S208正在对第X+N帧图像进行预分析。
其中,N为第一预设帧数,M为第二预设帧数,且N<M<Z。
优选地,在步骤S208中,对第X帧图像进行第一次编码包括:根据第X至X+M-1帧图像的预分析结果和第X-1帧图像的第一次编码结果对第X帧图像进行第一次编码。在步骤S212中,对第X帧图像进行第二次编码包括:根据第X至X+N+M-1帧图像的预分析结果、第X至X+N-1帧图像的第一次编码结果和第X-1帧图像的第二次编码结果对第X帧图像进行第二次编码。
采用该实施例提供的实时视频流编码方法,包括预分析、第一次编码和和第二次编码三级编码步骤,这三级编码步骤可以同时实时进行,共同完成码率控制功能。通过预分析步骤,进一步提高编码器的编码质量,同时,这三级编码步骤依次保持一定的延时,以保证上一级编码步骤能提前处理完预设的帧数以便下一级编码步骤使用,能够实时输出编码码流。此外,设置量个缓存器,每个缓存器中缓存了上一级步骤处理完毕而下一级步骤尚未开始处理的各帧图像及其处理结果信息,保证了各级处理的数据不会丢失。
从以上的描述中,可以看出,本发明实现了如下技术效果:将给予二次编码的码率控制方法应用于实时视频流编码器,在满足实时输出编码码流的同时,提高了编码器的编码质量。
采用了本发明提供的实时流编码器,码率控制方法由基于一次编码的改为基于二次编码的,不仅提高了H.264编码视频流的平均质量,还明显减小了实时码率波动和视频质量波动。与基于一次编码的实时视频流编码器相比,达到相同的主观质量时所需码率减小了超过10%。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种实时视频流编码器,其特征在于,包括:第一编码模块,用于对待编码视频中的图像进行第一次编码,其中,所述待编码视频依次由第1至Z帧图像组成;以及
第二编码模块,用于在所述第一编码模块完成对第X至X+N-1帧图像的编码后,对所述第X帧图像进行第二次编码,其中,所述第X帧图像为所述第1至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中任一项所述的实时视频流编码器,其特征在于,10≤M≤40,50≤N≤200。
6.一种实时视频流编码方法,其特征在于,包括:
对待编码视频中的第X至X+N-1帧图像进行第一次编码,其中,所述待编码视频依次由第1至Z帧图像组成,所述第X帧图像为所述第1至Z帧图像中的任一帧图像,N为第一预设帧数且N<Z;以及
在得到所述第X至X+N-1帧图像的第一次编码结果后,对所述第X帧图像进行第二次编码,
其中,对所述第X帧图像进行第二次编码的同时,对第X+N帧图像进行第一次编码。
7.根据权利要求6所述的实时视频流编码方法,其特征在于,对所述第X帧图像进行第一次编码之前,所述方法还包括:
对第X至X+M-1帧图像进行预分析,其中,M为第二预设帧数且N<M<Z,
其中,对所述第X帧图像进行第一次编码的同时,对第X+M帧图像进行预分析。
8.根据权利要求7所述的实时视频流编码方法,其特征在于,还包括:
通过第一缓存器存储M帧图像及所述M帧图像的预分析结果;以及
通过第二缓存器存储N帧图像及所述N帧图像的预分析结果和第一次编码结果,
其中,对所述第X帧图像进行预分析后,将所述第X帧图像及所述第X帧图像的预分析结果移入所述第一缓存器;
在所述第一缓存器接收到所述第X帧图像后,判断当前存储图像帧数是否大于M,以及在当前存储图像帧数大于M时,将第X-M帧图像及所述第X-M帧图像的预分析结果移出;
对所述第X帧图像进行编码后,将所述第X帧图像及所述第X帧图像的预分析结果和第一次编码结果移入所述第二缓存器;以及
在所述第二缓存器接收到所述第X帧图像后,判断当前存储图像帧数是否大于N,以及在当前存储图像帧数大于N时,将第X-N帧图像及所述第X-N帧图像的预分析结果和第一次编码结果移出。
9.根据权利要求8所述的实时视频流编码方法,其特征在于,
对所述第X帧图像进行第一次编码包括:根据第X至X+M-1帧图像的预分析结果和所述第X-1帧图像的第一次编码结果对所述第X帧图像进行第一次编码;
对所述第X帧图像进行第二次编码包括:根据第X至X+N+M-1帧图像的预分析结果、第X至X+N-1帧图像的第一次编码结果和所述第X-1帧图像的第二次编码结果对所述第X帧图像进行第二次编码。
10.根据权利要求6至9中任一项所述的实时视频流编码方法,其特征在于,10≤M≤40,50≤N≤200。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210211786.2A CN103517080A (zh) | 2012-06-21 | 2012-06-21 | 实时视频流编码器和实时视频流编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210211786.2A CN103517080A (zh) | 2012-06-21 | 2012-06-21 | 实时视频流编码器和实时视频流编码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103517080A true CN103517080A (zh) | 2014-01-15 |
Family
ID=49898993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210211786.2A Pending CN103517080A (zh) | 2012-06-21 | 2012-06-21 | 实时视频流编码器和实时视频流编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103517080A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109495742A (zh) * | 2018-12-13 | 2019-03-19 | 深圳市网心科技有限公司 | 一种视频帧编码方法、装置及设备 |
CN109587502A (zh) * | 2018-12-29 | 2019-04-05 | 深圳市网心科技有限公司 | 一种帧内压缩的方法、装置、设备及计算机可读存储介质 |
CN109640081A (zh) * | 2019-02-14 | 2019-04-16 | 深圳市网心科技有限公司 | 一种帧内预测方法、编码器、电子设备及可读存储介质 |
CN111010576A (zh) * | 2019-12-18 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN112203123A (zh) * | 2020-09-10 | 2021-01-08 | 鹏城实验室 | 一种屏幕内容视频编码码率控制方法、终端及存储介质 |
CN112887714A (zh) * | 2021-01-14 | 2021-06-01 | 红河学院 | 一种视频编码比特资源重分配方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1205594A (zh) * | 1997-05-30 | 1999-01-20 | 日本胜利株式会社 | 可变速率编码装置 |
TW404132B (en) * | 1998-03-19 | 2000-09-01 | Ibm | A real-time single pass variable bit rate control strategy and encoder |
CN1278692A (zh) * | 1999-06-22 | 2001-01-03 | 日本胜利株式会社 | 活动图象编码装置及其方法 |
EP1096803A2 (en) * | 1999-10-26 | 2001-05-02 | Sharp Kabushiki Kaisha | Video encoder and method for adjusting quantization step in real time |
US20030202580A1 (en) * | 2002-04-18 | 2003-10-30 | Samsung Electronics Co., Ltd. | Apparatus and method for controlling variable bit rate in real time |
CN1460384A (zh) * | 2001-03-29 | 2003-12-03 | 皇家菲利浦电子有限公司 | 视频编码方法及相应的编码装置 |
CN101141636A (zh) * | 2006-09-08 | 2008-03-12 | 联发科技股份有限公司 | 数据率控制方法以及视频信号编码器 |
CN101185337A (zh) * | 2005-03-10 | 2008-05-21 | 高通股份有限公司 | 具有预见的准恒定质量速率控制 |
CN101489138A (zh) * | 2009-02-11 | 2009-07-22 | 四川长虹电器股份有限公司 | 基于场景的二次编码图像组划分方法 |
CN101518088A (zh) * | 2006-09-28 | 2009-08-26 | 汤姆森许可贸易公司 | 针对有效速率控制和增强视频编码质量的ρ域帧级比特分配的方法 |
CN101547349A (zh) * | 2009-04-27 | 2009-09-30 | 宁波大学 | 一种对视频信号的二次avs编码码率控制的方法 |
CN101616325A (zh) * | 2009-07-27 | 2009-12-30 | 清华大学 | 一种视频编码中自适应插值滤波计算的方法 |
WO2011142291A1 (ja) * | 2010-05-12 | 2011-11-17 | 日本電信電話株式会社 | 動画像符号化制御方法,動画像符号化装置および動画像符号化プログラム |
-
2012
- 2012-06-21 CN CN201210211786.2A patent/CN103517080A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1205594A (zh) * | 1997-05-30 | 1999-01-20 | 日本胜利株式会社 | 可变速率编码装置 |
TW404132B (en) * | 1998-03-19 | 2000-09-01 | Ibm | A real-time single pass variable bit rate control strategy and encoder |
CN1278692A (zh) * | 1999-06-22 | 2001-01-03 | 日本胜利株式会社 | 活动图象编码装置及其方法 |
EP1096803A2 (en) * | 1999-10-26 | 2001-05-02 | Sharp Kabushiki Kaisha | Video encoder and method for adjusting quantization step in real time |
CN1460384A (zh) * | 2001-03-29 | 2003-12-03 | 皇家菲利浦电子有限公司 | 视频编码方法及相应的编码装置 |
US20030202580A1 (en) * | 2002-04-18 | 2003-10-30 | Samsung Electronics Co., Ltd. | Apparatus and method for controlling variable bit rate in real time |
CN101185337A (zh) * | 2005-03-10 | 2008-05-21 | 高通股份有限公司 | 具有预见的准恒定质量速率控制 |
CN101141636A (zh) * | 2006-09-08 | 2008-03-12 | 联发科技股份有限公司 | 数据率控制方法以及视频信号编码器 |
CN101518088A (zh) * | 2006-09-28 | 2009-08-26 | 汤姆森许可贸易公司 | 针对有效速率控制和增强视频编码质量的ρ域帧级比特分配的方法 |
CN101489138A (zh) * | 2009-02-11 | 2009-07-22 | 四川长虹电器股份有限公司 | 基于场景的二次编码图像组划分方法 |
CN101547349A (zh) * | 2009-04-27 | 2009-09-30 | 宁波大学 | 一种对视频信号的二次avs编码码率控制的方法 |
CN101616325A (zh) * | 2009-07-27 | 2009-12-30 | 清华大学 | 一种视频编码中自适应插值滤波计算的方法 |
WO2011142291A1 (ja) * | 2010-05-12 | 2011-11-17 | 日本電信電話株式会社 | 動画像符号化制御方法,動画像符号化装置および動画像符号化プログラム |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109495742A (zh) * | 2018-12-13 | 2019-03-19 | 深圳市网心科技有限公司 | 一种视频帧编码方法、装置及设备 |
CN109495742B (zh) * | 2018-12-13 | 2023-05-12 | 深圳市网心科技有限公司 | 一种视频帧编码方法、装置及设备 |
CN109587502A (zh) * | 2018-12-29 | 2019-04-05 | 深圳市网心科技有限公司 | 一种帧内压缩的方法、装置、设备及计算机可读存储介质 |
CN109587502B (zh) * | 2018-12-29 | 2023-05-09 | 深圳市网心科技有限公司 | 一种帧内压缩的方法、装置、设备及计算机可读存储介质 |
CN109640081A (zh) * | 2019-02-14 | 2019-04-16 | 深圳市网心科技有限公司 | 一种帧内预测方法、编码器、电子设备及可读存储介质 |
CN111010576A (zh) * | 2019-12-18 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN112203123A (zh) * | 2020-09-10 | 2021-01-08 | 鹏城实验室 | 一种屏幕内容视频编码码率控制方法、终端及存储介质 |
CN112203123B (zh) * | 2020-09-10 | 2022-07-05 | 鹏城实验室 | 一种屏幕内容视频编码码率控制方法、终端及存储介质 |
CN112887714A (zh) * | 2021-01-14 | 2021-06-01 | 红河学院 | 一种视频编码比特资源重分配方法 |
CN112887714B (zh) * | 2021-01-14 | 2022-08-02 | 红河学院 | 一种视频编码比特资源重分配方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101461248B (zh) | 自适应地确定用于视频图像编码的比特预算的方法和设备 | |
US20200322619A1 (en) | Systems and Methods of Encoding Multiple Video Streams for Adaptive Bitrate Streaming | |
JP5351040B2 (ja) | 映像符号化規格に対応した映像レート制御の改善 | |
CN101518088B (zh) | 针对有效速率控制和增强视频编码质量的ρ域帧级比特分配的方法 | |
CN104885455B (zh) | 一种用于视频编码的计算机实现的方法及装置 | |
US9350990B2 (en) | Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming | |
US9025664B2 (en) | Moving image encoding apparatus, moving image encoding method, and moving image encoding computer program | |
CN103517080A (zh) | 实时视频流编码器和实时视频流编码方法 | |
CN1926863B (zh) | 多通路视频编码的方法 | |
CN102932641B (zh) | 一种恒定质量码率控制方法 | |
CN105208390A (zh) | 视频编码的码率控制方法及其系统 | |
EP3005689A1 (en) | Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming | |
US8085679B2 (en) | Apparatuses and methods for controlling bit rates in variable bit rate video coding | |
CN103533365A (zh) | 比特率控制方法与比特率控制系统 | |
CN113286145B (zh) | 视频编码方法、装置和电子设备 | |
CN100574442C (zh) | 基于图像直方图的码率控制方法 | |
KR20000070810A (ko) | 부호화 장치 및 부호화 방법 | |
CN100448295C (zh) | 一种低复杂度的积分码率控制方法 | |
JPH08102952A (ja) | 実時間画像符号化装置及び方法 | |
KR100918499B1 (ko) | 멀티 패스 인코딩 장치 및 그 방법 | |
Sun et al. | Scene adaptive parameters selection for MPEG syntax based HDTV coding | |
US20050175088A1 (en) | Image coding using quantizer scale selection | |
Hsu et al. | A predictive H. 263 bit-rate control scheme based on scene information | |
Chang et al. | A two-layer characteristic-based rate control framework for low delay video transmission | |
CN1894725A (zh) | 视频编码方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140115 |