CN112272299A - 一种视频编码的方法、装置、设备和存储介质 - Google Patents
一种视频编码的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112272299A CN112272299A CN202011360060.6A CN202011360060A CN112272299A CN 112272299 A CN112272299 A CN 112272299A CN 202011360060 A CN202011360060 A CN 202011360060A CN 112272299 A CN112272299 A CN 112272299A
- Authority
- CN
- China
- Prior art keywords
- video frame
- current
- coding
- code rate
- macro block
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000013139 quantization Methods 0.000 claims abstract description 82
- 230000005540 biological transmission Effects 0.000 claims description 59
- 230000003139 buffering effect Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/149—Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明实施例公开了一种视频编码的方法、装置、设备和存储介质。其中,该方法包括:根据当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及当前视频帧内每一已编码宏块子集的实际编码码率,预测当前视频帧面向当前宏块子集编码时的预编码码率;基于预编码码率与当前视频帧在当前网络带宽下的预分配码率之间的码率差,调整当前宏块子集在前一视频帧内的实际编码量化参数,得到当前宏块子集在当前视频帧内的目标编码量化参数。本发明实施例提供的技术方案,极大降低了视频编码过程中的编码开销和编码复杂度,提高了视频编码的高效性,并在保证满足网络带宽波动的基础上,提高了视频编码质量的平稳性。
Description
技术领域
本发明实施例涉及视频传输技术领域,尤其涉及一种视频编码的方法、装置、设备和存储介质。
背景技术
随着互联网技术的快速发展,伴随着用户对高清视频的需求增加,多媒体资源交互的视频数据量也在不断增大,此时在视频传输时,通常采用视频压缩解码技术有效取出视频数据中的冗余信息,实现视频数据在互联网中的快速传输和离线存储。而为了适应不同传输用户的带宽和设备情况,会对源视频进行对应码率下的视频编码,现有的视频编码中,如果编码复杂度越高,会使编码质量越好,但编码耗时也会更长,而编码耗时过长会导致用户播放该视频出现卡顿,因此在保证高质量编码的基础上,还需要提高编码速度,以降低视频传输过程中的编码耗时。
目前,现有的快速视频编码方式大多是基于编码器本身的改造,从帧级编码到块编码,在预期网络带宽的影响下,不断通过编码决策部分采用的大量递归算法来分析各个视频帧的图像复杂度,进而计算出视频帧内各个编码块所采用的编码码率;此时需要通过分析图像复杂度计算每一递归深度下各个编码块的编码代价,造成大量的计算负担,增加了视频传输过程中的编码开销。
发明内容
本发明实施例提供了一种视频编码的方法、装置、设备和存储介质,降低了视频编码的计算开销,保证视频编码的高效性。
第一方面,本发明实施例提供了一种视频编码的方法,该方法包括:
根据当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及所述当前视频帧内每一已编码宏块子集的实际编码码率,预测所述当前视频帧面向当前宏块子集编码时的预编码码率;
基于所述预编码码率与所述当前视频帧在当前网络带宽下的预分配码率之间的码率差,调整所述当前宏块子集在前一视频帧内的实际编码量化参数,得到所述当前宏块子集在当前视频帧内的目标编码量化参数。
第二方面,本发明实施例提供了一种视频编码的装置,该装置包括:
码率预测模块,用于根据当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及所述当前视频帧内每一已编码宏块子集的实际编码码率,预测所述当前视频帧面向当前宏块子集编码时的预编码码率;
编码量化模块,用于基于所述预编码码率与所述当前视频帧在当前网络带宽下的预分配码率之间的码率差,调整所述当前宏块子集在前一视频帧内的实际编码量化参数,得到所述当前宏块子集在当前视频帧内的目标编码量化参数。
第三方面,本发明实施例提供了一种计算机设备,该计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的视频编码的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的视频编码的方法。
本发明实施例提供的一种视频编码的方法、装置、设备和存储介质,由于前一视频帧完成编码后才会编码当前视频帧,且当前视频帧内的各个宏块子集也是依次编码的,因此当前视频帧内的每一宏块子集在前一视频帧内都存在对应的编码模式,且在当前视频帧面向当前宏块子集编码时,该当前视频帧内也会存在已编码的宏块子集和未编码的宏块子集,此时可以参考当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及当前视频帧内每一已编码宏块子集的实际编码码率,来预测当前视频帧面向当前宏块子集编码时的预编码码率,然后通过分析该预编码码率与当前视频帧在当前网络带宽下的预分配码率之间的码率差,来调整当前宏块子集在前一视频帧内的实际编码量化参数,得到当前宏块子集在当前视频帧内的目标编码量化参数,实现当前视频帧的准确编码,无需通过分析图像复杂度计算每一递归深度下各个编码块的编码代价,极大降低了视频编码过程中的编码开销和编码复杂度,提高了视频编码的高效性;同时,直接参考每一宏块子集在前一视频帧内的实际编码模式,并依据当前网络带宽分别进行对应调整,从而利用前一视频帧的编码模式和当前网络带宽的波动,为当前视频帧进行编码指引和调整,在保证满足网络带宽波动的基础上,提高了视频编码质量的平稳性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1A为本发明实施例一提供的一种视频编码的方法的流程图;
图1B为本发明实施例一提供的视频编码过程的原理示意图;
图2A为本发明实施例二提供的一种视频编码的方法的流程图;
图2B为本发明实施例二提供的视频编码过程的原理示意图;
图3A为本发明实施例三提供的一种视频编码的方法的流程图;
图3B为本发明实施例三提供的视频编码过程的原理示意图;
图4为本发明实施例四提供的一种视频编码的装置的结构示意图;
图5为本发明实施例五提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
图1A为本发明实施例一提供的一种视频编码的方法的流程图,本实施例可适用于对任一视频存在传输需求的场景中。本实施例提供的视频编码的方法可以由本发明实施例提供的视频编码的装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的计算机设备中,该计算机设备可以是参与视频数据交互的设备。
具体的,参考图1A,该方法可以包括如下步骤:
S110,根据当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及当前视频帧内每一已编码宏块子集的实际编码码率,预测当前视频帧面向当前宏块子集编码时的预编码码率。
具体的,为了保证视频数据的传输高效性和存储准确性,在不同用户设备之间快速传输视频数据时,首先需要对待传输的视频数据进行压缩编码,并要求压缩编码后的视频数据能够满足网络带宽的波动需求,以避免由于传输过慢造成的视频播放卡顿等问题。目前,对任一视频数据进行压缩编码时,首先会对该视频数据进行解封装,以得到顺序排列的多个视频帧,然后按序对各个视频帧进行编码;而且,由于视频数据中相邻两帧的视频画面通常非常相似,仅是需适应的网络带宽存在波动,因此本实施例在视频编码过程中,可以利用前一视频帧的实际编码方式,并结合当前网络带宽的影响,对当前视频帧的编码方式进行有效指引,以在保证视频帧编码满足网络带宽波动要求的基础上,提高视频编码质量的平稳性。
此时,在现有的视频编码技术中,通常会将各个视频帧划分成若干宏块,后续以宏块为单位,对视频帧中的逐个宏块分别进行编码,从而实现该视频帧的编码,此时宏块的编码规格是预先设定好的,通常为16*16大小,而且由于同一视频数据内相邻两帧中的宏块大小和位置都是相同的,那么同一宏块在相邻两帧内的编码方式也较为相似,因此本实施例可以利用前一视频帧内各个宏块的实际编码方式,来指引当前视频帧内同一宏块的编码方式;同时,由于同一视频帧内相近几个宏块视频画面复杂度也较为相似,也就使得多个宏块可以采用相同的编码量化参数进行编码,因此为了提高视频编码的高效性,本实施例在对各个视频帧进行编码时,可以将该视频帧内的全部宏块按照编码需要划分为多个宏块子集,后续为每一宏块子集设定一个相同的编码量化参数,以使宏块子集内的每一宏块均可以采用该相同的编码量化参数进行编码。
需要说明的是,本实施例中的每一宏块子集可以仅有一个宏块组成,也可以由多个宏块组成,例如将当前视频帧内处于同一行上的多个宏块组成一个宏块子集,本实施例对宏块子集内的宏块数量不作限定;优选的,宏块子集内的宏块数量越少越好,以对每一宏块的编码方式进行特有分析,提高各个宏块的编码质量。
本实施例中,在对当前视频帧内的各个宏块子集进行编码时,为了获取前一视频帧的实际编码方式对当前视频帧的有效编码指引,首先会将当前视频帧划分出多个宏块,如图1B所示,并按照编码指定的宏块子集大小,将当前视频帧内的全部宏块分别组合成多个宏块子集,例如当前视频帧内每一行上的多个宏块均可以组成一个宏块子集;然后分析前一视频帧实际编码时各个宏块子集的实际编码量,并按照每一宏块子集在前一视频帧内的实际编码量,与前一视频帧的整体实际编码量之间的编码比例,计算出每一宏块子集在前一视频帧内的实际编码权重,此时该实际编码权重能够表示各个宏块子集间的编码质量差异;同时,由于在每一视频帧内会按照宏块子集顺序依次对每一宏块子集进行编码,因此在当前视频帧内对当前宏块子集编码时,该当前视频帧内处于当前宏块子集之前的各个宏块子集均已经完成编码,此时通过对当前视频帧内每一宏块子集的编码情况进行分析,可以从当前视频帧内查找出已经完成编码的各个已编码宏块子集,并确定出每一已编码宏块子集的实际编码码率,以便在前一视频帧实际编码的指引下,预测当前视频帧面向当前宏块子集编码时的预编码码率。
具体的,根据当前视频帧内每一宏块子集在前一视频帧内的实际编码权重,可以计算出所有的已编码宏块子集与全部宏块子集之间的编码权重占比,此时通过每一已编码宏块子集的实际编码码率,可以计算出所有的已编码宏块子集的实际编码码率,进而按照该编码权重占比以及所有的已编码宏块子集的实际编码码率,可以预测出当前视频帧内全部宏块子集的编码码率,也就是当前视频帧面向当前宏块子集编码时的预编码码率,此时按照每一宏块子集在前一视频帧内的实际编码权重所表示的编码质量,结合当前视频帧已编码宏块子集的实际编码码率,来预测当前视频帧的预编码码率,能够保证前一视频帧与当前视频帧间编码质量的一致性。
需要说明的是,本实施例中会依次对当前视频帧内的每一宏块子集编码,因此每次对当前视频帧内的某个宏块子集进行编码时,均会按照每一宏块子集在前一视频帧内的实际编码权重,以及当前视频帧内每一已编码宏块子集的实际编码码率,来预测一次当前视频帧的预编码码率,以保证当前视频帧内各个宏块子集的编码质量平稳性。
S120,基于预编码码率与当前视频帧在当前网络带宽下的预分配码率之间的码率差,调整当前宏块子集在前一视频帧内的实际编码量化参数,得到当前宏块子集在当前视频帧内的目标编码量化参数。
可选的,在预测出当前视频帧面向当前宏块子集编码时的预编码码率后,该预编码码率仅能保证前一视频帧与当前视频帧之间编码质量的一致性,而无法满足网络带宽波动的需求,因此本实施例还需要分析当前视频帧在编码时的当前网络带宽,如图1B所示,并为当前视频帧分配一个能够在当前网络带宽下保证视频流畅传输的编码码率,也就是本实施例中的预分配码率;此时,预编码码率能够保证前一视频帧与当前视频帧之间的编码质量平稳性,而预分配码率能够满足当前网络带宽对于视频传输的需求,因此本实施例需要分析该预编码码率与该预分配码率之间的码率差,以此对当前视频帧内待编码的当前宏块子集在前一视频帧内的实际编码量化参数(Quantization Parameter,QP)进行相应调整,从而得到当前宏块子集在当前视频帧内的目标编码量化参数,无需通过分析图像复杂度计算每一递归深度下各个编码块的编码代价,极大降低了视频编码过程中的编码开销和编码复杂度,提高了视频编码的高效性;同时,在相邻帧间的视频质量平稳要求和网络带宽波动要求之间,能够达到一个编码均衡,使得当前宏块子集在当前视频帧内的目标编码量化参数,能够在保证满足网络带宽波动的基础上,同时提高视频编码质量的平稳性。
此外,由于视频编码过程中网络带宽会不断波动,因此为了保证网络带宽对于视频传输的要求,通常会存在相应的丢帧机制,此时对当前视频帧进行编码时,可能存在前一视频帧由于丢帧而未完成编码的情况,那么在前一视频帧未编码时,可以通过分析当前视频帧的画面复杂度专门为当前视频帧设定对应的量化参数,并按照该量化参数对当前视频帧内的每一宏块进行编码。
同时,针对视频编码过程中网络带宽不断波动的特点,为了保证当前视频帧的编码准确性,本实施例会根据待编码视频内的每一视频帧的编码请求,评估该视频帧对应的当前网络带宽;也就是在每次请求编码某一视频帧时,均会重新评估一下当前的网络状态,以得到与待编码的当前视频帧相匹配的当前网络带宽,使得当前视频帧内每一宏块子集的编码量化参数能够满足当前网络带宽的需求。
本实施例提供的技术方案,由于前一视频帧完成编码后才会编码当前视频帧,且当前视频帧内的各个宏块子集也是依次编码的,因此当前视频帧内的每一宏块子集在前一视频帧内都存在对应的编码模式,且在当前视频帧面向当前宏块子集编码时,该当前视频帧内也会存在已编码的宏块子集和未编码的宏块子集,此时可以参考当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及当前视频帧内每一已编码宏块子集的实际编码码率,来预测当前视频帧面向当前宏块子集编码时的预编码码率,然后通过分析该预编码码率与当前视频帧在当前网络带宽下的预分配码率之间的码率差,来调整当前宏块子集在前一视频帧内的实际编码量化参数,得到当前宏块子集在当前视频帧内的目标编码量化参数,实现当前视频帧的准确编码,无需通过分析图像复杂度计算每一递归深度下各个编码块的编码代价,极大降低了视频编码过程中的编码开销和编码复杂度,提高了视频编码的高效性;同时,直接参考每一宏块子集在前一视频帧内的实际编码模式,并依据当前网络带宽分别进行对应调整,从而利用前一视频帧的编码模式和当前网络带宽的波动,为当前视频帧进行编码指引和调整,在保证满足网络带宽波动的基础上,提高了视频编码质量的平稳性。
实施例二
图2A为本发明实施例二提供的一种视频编码的方法的流程图,图2B为本发明实施例二提供的视频编码过程的原理示意图。本实施例是在上述实施例的基础上进行优化。具体的,如图2A所示,本实施例对于当前视频帧内依次编码各个宏块子集的具体编码过程进行详细的解释说明。
可选的,如图2A所示,本实施例中可以包括如下步骤:
S201,判断当前视频帧内是否存在已编码宏块子集,若是,执行S203;若否,执行S202。
可选的,由于对待编码视频帧内的当前视频帧进行编码时,会预先将该当前视频帧划分出多个宏块,并进行宏块组合,从而得到多个宏块子集,后续通过为每一宏块子集分别设定相应的编码量化参数,而按需对每一宏块子集进行编码,然而该编码量化参数可能需要借助当前视频帧内存在的已编码宏块子集的实际编码方式来计算,因此在当前视频帧内面向某一宏块子集编码时,首先需要判断该当前视频帧内是否存在已经完成编码的宏块子集,也就是判断在当前视频帧内待编码的当前宏块子集是否为当前视频帧内首个进行编码的宏块子集。由于当前视频帧面向首个宏块子集编码时,无法借助其他宏块子集的实际编码方式进行编码预估,因此当前视频帧内是否存在已编码宏块子集的不同情况,需要采用不同的方式来计算当前视频帧内本次编码的当前宏块子集的编码量化参数,以保证当前宏块子集的编码准确性。
S202,将当前宏块子集在前一视频帧内的实际编码量化参数,作为当前宏块子集在当前视频帧内的目标编码量化参数。
可选的,在当前视频帧内不存在已编码宏块子集时,说明当前视频帧内本次编码面向的当前宏块子集为当前视频帧内的首个宏块子集,无法借助当前视频帧内其他宏块子集的实际编码方式来预估当前的编码方式,此时由于相邻两帧内同一宏块子集的视频画面大致相同,使得当前宏块子集在前一视频帧内的实际编码方式在一定程度上也适用于当前宏块子集在当前视频帧内的编码,因此为了提高视频编码的高效性,本实施例可以直接将当前宏块子集在前一视频帧内的实际编码量化参数,作为当前宏块子集在当前视频帧内的目标编码量化参数,后续采用该目标编码量化参数对该当前宏块子集内的每一宏块进行编码,在一定程度上保证了视频编码质量的平稳性。
S203,计算每一已编码宏块子集在当前视频帧内的实际编码码率,以及当前视频帧内未编码宏块子集与已编码宏块子集之间的权重占比。
可选的,在当前视频帧内存在已编码宏块子集时,说明当前视频帧内本次编码面向的当前宏块子集为当前视频帧内的非首个宏块子集,也就可以借助当前视频帧内已经完成编码的各宏块子集的实际编码方式来预估当前的编码方式,进一步提高当前宏块子集的编码准确性。
此时,首先从当前视频帧内查找出每一个已完成编码的宏块子集,得到各个已编码宏块子集,然后分析每一已编码宏块子集的实际编码情况,如图2B所示,从而确定出每一个已编码宏块子集在当前视频帧内的实际编码码率;同时,通过分析每一宏块子集在前一视频帧内的实际编码情况,可以计算出每一宏块子集在前一视频帧内的实际编码量,此时按照每一宏块子集在前一视频帧内的实际编码量在前一视频帧内的整体编码量占比,可以计算出每一宏块子集的实际编码权重,从而计算出当前视频帧内未编码宏块子集与已编码宏块子集之间的权重占比,以便后续根据已编码宏块子集在当前视频帧内的实际编码码率,来预估当前视频帧内未编码宏块子集的编码码率,从而预测当前视频帧的预编码码率。
S204,基于实际编码码率和权重占比,估算当前视频帧内未编码宏块子集的待编码码率,得到当前视频帧面向当前宏块子集编码时的预编码码率。
在本实施例中,将当前视频帧内每一已编码宏块子集的实际编码码率相加,可以得到已编码宏块子集在当前视频帧内的整体编码码率,然后按照当前视频帧内未编码宏块子集与已编码宏块子集之间的权重占比与该整体编码码率的乘积,可以估算出当前视频帧内全部未编码宏块子集的待编码码率,进而将已编码宏块子集在当前视频帧内的整体编码码率与该待编码码率相加,即可预测出当前视频帧面向当前宏块子集编码时的预编码码率,以保证视频编码质量的平稳性。
示例性的,当前视频帧面向当前宏块子集编码时的预编码码率的预测方式可以为:其中,predframesize为当前视频帧面向当前宏块子集编码时的预编码码率,realsize为当前视频帧内已编码宏块子集的实际编码码率,weightleft为当前视频帧内的未编码宏块子集在前一视频帧内的实际编码权重,weightused为当前视频帧内的已编码宏块子集在前一视频帧内的实际编码权重。
S205,判断预编码码率与当前视频帧在当前网络带宽下的预分配码率之间的码率差是否超出预设码率波动范围,若是,S207;若否,执行S206。
可选的,在预测出当前视频帧面向当前宏块子集编码时的预编码码率时,由于该预编码码率是借助前一视频帧的实际编码情况预测出的,仅能够保证视频编码质量的平稳性,而无法保证满足当前网络带宽的传输需求,因此本实施例还会按照当前网络带宽也为当前视频帧分配一个适合的码率,也就是本实施例中的预分配码率,此时可以通过判断预编码码率与该预分配码率之间的码率差是否超出预设码率波动范围,来分析当前宏块子集在前一视频帧内的实际编码量化参数是否能够适用于当前宏块子集在当前视频帧内的编码,使得当前宏块子集在当前视频帧内的编码,既能够保证视频编码质量的平稳性,也能够满足当前网络带宽的传输需求。
S206,将当前宏块子集在前一视频帧内的实际编码量化参数,作为当前宏块子集在当前视频帧内的目标编码量化参数。
具体的,如果预编码码率与预分配码率之间的码率差未超出预设码率波动范围,说明该预编码码率在一定误差范围内也能够满足当前网络带宽的传输需求,此时由于该预编码码率是借助前一视频帧的实际编码情况预测出来的,因此可以直接采用当前宏块子集在前一视频帧内的实际编码量化参数,作为当前宏块子集在当前视频帧内的目标编码量化参数,从而在满足当前网络带宽需求的基础上,也保证了视频编码质量的平稳性。
S207,判断预编码码率是否大于预分配码率,若是,执行S208;若否,执行S209。
可选的,在预编码码率与预分配码率之间的码率差超出预设码率波动范围时,存在两种情况:1)预编码码率大于预分配码率;2)预编码码率小于预分配码率。此时,不同情况下存在不同的量化参数调整方式,因此在确定预编码码率与预分配码率之间的码率差超出预设码率波动范围后,还需要进一步判断预编码码率是否大于预分配码率,以对当前宏块子集执行相应的量化参数调整方式,保证当前宏块子集在当前视频帧内的编码准确性。
S208,上调当前宏块子集在前一视频帧内的实际编码量化参数,得到当前宏块子集在当前视频帧内的目标编码量化参数。
可选的,在确定预编码码率大于预分配码率时,说明预编码码率相比预分配码率已经高出预设码率波动范围,无法满足当前网络带宽的需求,而预编码码率是根据前一视频帧的实际编码情况预测的,因此可以通过分析预编码码率与预分配码率之间的码率差,按照与该码率差相关的比例来上调当前宏块子集在前一视频帧内的实际编码量化参数,得到当前宏块子集在当前视频帧内的目标编码量化参数,此时编码量化参数的上调可以降低当前宏块子集的空间编码细节,使得预编码码率减小,从而不断靠近该预分配码率,进而在满足当前网络带宽需求的基础上,保证视频编码质量的平稳性。
S209,下调当前宏块子集在前一视频帧内的实际编码量化参数,得到当前宏块子集在当前视频帧内的目标编码量化参数。
可选的,在确定预编码码率小于预分配码率时,说明预编码码率相比预分配码率已经低于预设码率波动范围,无法满足当前网络带宽的需求,而预编码码率是根据前一视频帧的实际编码情况预测的,因此可以通过分析预编码码率与预分配码率之间的码率差,按照与该码率差相关的比例来下调当前宏块子集在前一视频帧内的实际编码量化参数,得到当前宏块子集在当前视频帧内的目标编码量化参数,此时编码量化参数的下调可以增加当前宏块子集的空间编码细节,使得预编码码率增大,从而不断靠近该预分配码率,进而在满足当前网络带宽需求的基础上,保证视频编码质量的平稳性。
S210,采用目标编码量化参数,依次对当前宏块子集内的每一宏块进行编码。
本实施例中,在得到当前宏块子集在当前视频帧内的目标编码量化参数后,可以直接采用该目标编码量化参数,依次对当前宏块子集内的每一宏块进行编码,然后继续计算当前视频帧内下一宏块子集的目标编码量化参数,依次循环,直至完成对当前视频帧内的每一宏块子集的编码,从而实现当前视频帧的准确编码,继续对下一视频帧进行编码。
S211,如果完成对当前视频帧内每一宏块子集的编码,则基于当前视频帧内每一宏块子集的实际编码码率和当前视频帧的实际编码码率,计算每一宏块子集在当前视频帧内的实际编码权重。
可选的,在完成对当前视频帧内每一宏块子集的编码,也就是完成对当前视频帧的编码后,需要计算当前视频帧内每一宏块子集的实际编码权重,以辅助每一宏块子集在下一视频帧内的准确编码。此时,首先可以根据每一宏块子集在当前视频帧内的实际编码情况,计算出当前视频帧内每一宏块子集的实际编码码率以及当前视频帧整体的实际编码码率,然后将各个宏块子集的实际编码码率在当前视频帧整体的实际编码码率下的码率比值,作为宏块子集在当前视频帧内的实际编码权重。
示例性的,本实施例中每一宏块子集在当前视频帧内的实际编码权重的计算方式可以为:其中,curweight为各个宏块子集的实际编码权重,curbits为该宏块子集在当前视频帧内的实际编码码率,framesize为当前视频帧的实际编码码率。
本实施例提供的技术方案,参考当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及当前视频帧内每一已编码宏块子集的实际编码码率,来预测当前视频帧面向当前宏块子集编码时的预编码码率,然后通过分析该预编码码率与当前视频帧在当前网络带宽下的预分配码率之间的码率差,来调整当前宏块子集在前一视频帧内的实际编码量化参数,得到当前宏块子集在当前视频帧内的目标编码量化参数,实现当前视频帧的准确编码,无需通过分析图像复杂度计算每一递归深度下各个编码块的编码代价,极大降低了视频编码过程中的编码开销和编码复杂度,提高了视频编码的高效性;同时,直接参考每一宏块子集在前一视频帧内的实际编码模式,并依据当前网络带宽分别进行对应调整,从而利用前一视频帧的编码模式和当前网络带宽的波动,为当前视频帧进行编码指引和调整,在保证满足网络带宽波动的基础上,提高了视频编码质量的平稳性。
实施例三
图3A为本发明实施例三提供的一种视频编码的方法的流程图,图3B为本发明实施例三提供的视频编码过程的原理示意图。本实施例是在上述实施例的基础上进行优化。具体的,如图3A所示,本实施例对于视频编码过程中的丢帧策略的具体实现过程进行详细的解释说明。
可选的,如图3A所示,本实施例中可以包括如下步骤:
S310,基于当前视频帧在当前网络带宽下的预分配码率以及关联视频帧的编码码率下限,估算在当前网络带宽下视频传输时的视频预缓存量。
可选的,由于若对每一视频帧均进行编码传输,可能会无法满足网络带宽的波动需求,因此考虑到相邻几帧的视频画面会大致相同,本实施例为了满足网络带宽的波动需求,可以设置一种丢帧机制,也就是在无法满足当前网络带宽的传输需求时,可以适当丢弃某一视频帧的编码,以缓解当前网络带宽的传输压力。
本实施例中,为了准确分析视频编码是否满足当前网络带宽的传输需求,会预先设置一个虚拟视频缓冲器,在该虚拟视频缓冲器中缓存已完成编码而未成功传输的视频帧,同时确定该虚拟视频缓冲器的缓存总容量,以便分析在该虚拟视频缓冲器的视频缓存的影响下,为当前视频帧分配的适用于当前网络带宽的预分配码率。同时,由于虚拟视频缓冲器在当前网络带宽下传输当前视频帧时,会缓存后续几帧的关联视频帧,因此在要求当前视频帧的编码码率满足当前网络带宽的传输需求时,也需要参考后续关联视频帧的影响。需要说明的是,本实施例中的关联视频帧可以为位于当前视频帧后的连续八帧等,关联视频帧的数量不多限定。
因此,本实施例可以通过分析当前视频帧在当前网络带宽下的预分配码率以及关联视频帧的编码码率下限,判断该虚拟视频缓冲器对于当前视频帧和关联视频帧的实时编码速率,同时分析该虚拟视频缓冲器在当前网络带宽下的视频传输速率,并在该虚拟视频缓冲器当前的实际已缓存量的基础上,结合该实时编码速率与该实时传输速率之间的差异,来估算在当前网络带宽下视频传输时的视频预缓存量。
示例性的,为了提高视频预缓存量的估算准确性,如图3B所示,本实施例中的基于当前视频帧在当前网络带宽下的预分配码率以及关联视频帧的编码码率下限,估算在当前网络带宽下视频传输时的视频预缓存量,可以具体包括:采用前一视频帧实际编码后的视频实际缓存量、视频缓存容量和缓存空置系数,调整当前网络带宽,得到当前视频帧的预分配码率和在当前网络带宽下视频传输时的传输码率;采用当前视频帧的预分配码率和关联视频帧的编码码率下限,分别与传输码率之间的码率差,调整视频实际缓存量,得到在当前网络带宽下视频传输时的视频预缓存量。
具体的,在前一视频帧完成编码后,会按照实际缓存情况计算出虚拟视频缓冲器在前一视频帧实际编码后的视频实际缓存量,进而通过分析该视频实际缓存量与虚拟视频缓冲器的视频缓存容量之间的占比,可以判断出该虚拟视频缓冲器内的已占用空间量,此时由于虚拟视频缓冲器内的已占用空间量过大时,会对当前网络带宽下的视频传输和编码产生一定的负面压力,而如果虚拟视频缓冲器的空置时间越久,也会更加便于当前网络带宽下的视频传输和编码,因此会设置本实施例中的缓存空置系数来表示对当前网络带宽下的视频传输和编码所产生的正向压力,此时通过已占用空间量带来的负向压力和缓存空置系数带来的正向压力,来对应的调整在当前帧率下当前网络带宽对当前视频帧的码率,从而得到当前视频帧的预分配码率和在当前网络带宽下视频传输时的传输码率;此时,该预分配码率和传输码率均与当前网络带宽相关,可以采用相同的计算方式:其中,sendbits为在当前网络带宽下视频传输时的传输码率,framebits为当前视频帧的预分配码率,bitwidth为当前网络带宽,fps为当前帧率,1.05为虚拟视频缓冲器空置时的调整系数,0.2为虚拟视频缓冲器满置后的快速压缩系数,bufferfill为在前一视频帧实际编码后的视频实际缓存量,buffersize为视频缓存容量,const_zero_factor为缓存空置系数。
进一步的,在计算出当前视频帧的预分配码率和在当前网络带宽下视频传输时的传输码率后,可以通过分析当前视频帧的预分配码率和关联视频帧的编码码率下限,分别与该传输码率之间的码率差,能够判断出虚拟视频缓冲器的动态变化速率,然后采用该动态变化速率来调整当前的视频实际缓存量,从而得到在当前网络带宽下视频传输时的视频预缓存量;例如,该视频预缓存量的计算方式可以为:其中,buffer2为在当前网络带宽下视频传输时的视频预缓存量,buffer1为当前的视频实际缓存量,framebits为当前视频帧的预分配码率,sendbits为在当前网络带宽下视频传输时的传输码率,curframebitsn为关联视频帧中的第n帧的编码码率下限。
需要说明的是,为了保证当前视频帧的编码准确性,本实施例也会分析当前视频帧的编码码率下限,以使编码码率不能低于该编码码率下限,因此在预分配码率小于当前视频帧的编码码率下限时,需要将该预分配码率更新为当前视频帧的编码码率下限,以采用该当前视频帧的编码码率下限来对当前视频帧进行码率分析,从而提高当前视频帧的编码准确性。
S320,判断视频预缓存量是否超出预设编码阈值,若是,执行S330;若否,执行S340。
可选的,为了准确分析当前网络带宽是否支持当前视频帧的编码,也就是当前视频帧的编码是否会造成当前网络带宽的传输压力,本实施例会预先设定一个预设编码阈值,超出如果当前视频帧编码分析后的视频预缓存量超出该预设编码阈值,则说明会造成当前网络带宽的传输压力,本实施例中的预设编码阈值可以设置为0.1*buffersize,其中buffersize为视频缓存容量。
S330,丢弃当前视频帧。
可选的,如果视频预缓存量超出预设编码阈值,则丢弃当前视频帧,而不对该当前视频帧进行编码,以缓解当前网络带宽的传输压力;而如果视频预缓存量未超出预设编码阈值,则说明当前视频帧的编码不会造成当前网络带宽的传输压力,那么需要准确估算该当前视频帧内每一宏块子集的目标编码量化参数,以实现当前视频帧的准确编码。
S340,根据当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及当前视频帧内每一已编码宏块子集的实际编码码率,预测当前视频帧面向当前宏块子集编码时的预编码码率。
S350,基于预编码码率与当前视频帧在当前网络带宽下的预分配码率之间的码率差,调整当前宏块子集在前一视频帧内的实际编码量化参数,得到当前宏块子集在当前视频帧内的目标编码量化参数。
S360,基于当前视频帧实际编码后的实际编码量,更新对应的视频实际缓存量。
可选的,在完成当前视频帧的编码后,为了保证下一视频帧编码时视频预缓存量的准确分析,本实施例会分析当前视频帧实际编码后的实际编码量,然后参考实际传输情况和该实际编码量来更新当前的视频实际换存量,以提高下一视频帧的编码分析。
本实施例提供的技术方案,在对当前视频帧编码时,首先通过估算在当前网络带宽下视频传输时的视频预缓存量,来判断是否会造成当前网络带宽下的传输压力,从而设置相应的丢帧机制,在保证满足当前网络带宽需求的基础上,提高视频编码的准确性和高效性。
实施例四
图4为本发明实施例四提供的一种视频编码的装置的结构示意图,具体的,如图4所示,该装置可以包括:
码率预测模块410,用于根据当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及所述当前视频帧内每一已编码宏块子集的实际编码码率,预测所述当前视频帧面向当前宏块子集编码时的预编码码率;
编码量化模块420,用于基于所述预编码码率与所述当前视频帧在当前网络带宽下的预分配码率之间的码率差,调整所述当前宏块子集在前一视频帧内的实际编码量化参数,得到所述当前宏块子集在当前视频帧内的目标编码量化参数。
本实施例提供的技术方案,由于前一视频帧完成编码后才会编码当前视频帧,且当前视频帧内的各个宏块子集也是依次编码的,因此当前视频帧内的每一宏块子集在前一视频帧内都存在对应的编码模式,且在当前视频帧面向当前宏块子集编码时,该当前视频帧内也会存在已编码的宏块子集和未编码的宏块子集,此时可以参考当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及当前视频帧内每一已编码宏块子集的实际编码码率,来预测当前视频帧面向当前宏块子集编码时的预编码码率,然后通过分析该预编码码率与当前视频帧在当前网络带宽下的预分配码率之间的码率差,来调整当前宏块子集在前一视频帧内的实际编码量化参数,得到当前宏块子集在当前视频帧内的目标编码量化参数,实现当前视频帧的准确编码,无需通过分析图像复杂度计算每一递归深度下各个编码块的编码代价,极大降低了视频编码过程中的编码开销和编码复杂度,提高了视频编码的高效性;同时,直接参考每一宏块子集在前一视频帧内的实际编码模式,并依据当前网络带宽分别进行对应调整,从而利用前一视频帧的编码模式和当前网络带宽的波动,为当前视频帧进行编码指引和调整,在保证满足网络带宽波动的基础上,提高了视频编码质量的平稳性。
本实施例提供的视频编码的装置可适用于上述任意实施例提供的视频编码的方法,具备相应的功能和有益效果。
实施例五
图5为本发明实施例五提供的一种计算机设备的结构示意图,如图5所示,该服务器包括处理器50、存储装置51和通信装置52;设备中处理器50的数量可以是一个或多个,图5中以一个处理器50为例;设备中的处理器50、存储装置51和通信装置52可以通过总线或其他方式连接,图5中以通过总线连接为例。
本实施例提供的一种计算机设备可用于执行上述任意实施例提供的视频编码的方法,具备相应的功能和有益效果。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的视频编码的方法。该方法具体可以包括:
根据当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及所述当前视频帧内每一已编码宏块子集的实际编码码率,预测所述当前视频帧面向当前宏块子集编码时的预编码码率;
基于所述预编码码率与所述当前视频帧在当前网络带宽下的预分配码率之间的码率差,调整所述当前宏块子集在前一视频帧内的实际编码量化参数,得到所述当前宏块子集在当前视频帧内的目标编码量化参数。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的视频编码的方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述视频编码的装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种视频编码的方法,其特征在于,包括:
根据当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及所述当前视频帧内每一已编码宏块子集的实际编码码率,预测所述当前视频帧面向当前宏块子集编码时的预编码码率;
基于所述预编码码率与所述当前视频帧在当前网络带宽下的预分配码率之间的码率差,调整所述当前宏块子集在前一视频帧内的实际编码量化参数,得到所述当前宏块子集在当前视频帧内的目标编码量化参数。
2.根据权利要求1所述的方法,其特征在于,所述根据当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及所述当前视频帧内每一已编码宏块子集的实际编码码率,预测所述当前视频帧面向当前宏块子集编码时的预编码码率,包括:
如果所述当前视频帧内存在已编码宏块子集,则计算每一所述已编码宏块子集在所述当前视频帧内的实际编码码率,以及所述当前视频帧内未编码宏块子集与所述已编码宏块子集之间的权重占比;
基于所述实际编码码率和所述权重占比,估算所述当前视频帧内未编码宏块子集的待编码码率,得到所述当前视频帧面向当前宏块子集编码时的预编码码率。
3.根据权利要求2所述的方法,其特征在于,还包括:
如果所述当前视频帧内不存在已编码宏块子集,则将所述当前宏块子集在前一视频帧内的实际编码量化参数,作为所述当前宏块子集在当前视频帧内的目标编码量化参数。
4.根据权利要求1所述的方法,其特征在于,所述基于所述预编码码率与所述当前视频帧在当前网络带宽下的预分配码率之间的码率差,调整所述当前宏块子集在前一视频帧内的实际编码量化参数,得到所述当前宏块子集在当前视频帧内的目标编码量化参数,包括:
如果所述预编码码率与所述预分配码率之间的码率差未超出预设码率波动范围,则将所述当前宏块子集在前一视频帧内的实际编码量化参数,作为所述当前宏块子集在当前视频帧内的目标编码量化参数;
如果所述预编码码率与所述预分配码率之间的码率差超出预设码率波动范围,且所述预编码码率大于所述预分配码率,则上调所述当前宏块子集在前一视频帧内的实际编码量化参数,得到所述当前宏块子集在当前视频帧内的目标编码量化参数;
如果所述预编码码率与所述预分配码率之间的码率差超出预设码率波动范围,且所述预编码码率小于所述预分配码率,则下调所述当前宏块子集在前一视频帧内的实际编码量化参数,得到所述当前宏块子集在当前视频帧内的目标编码量化参数。
5.根据权利要求1所述的方法,其特征在于,在得到所述当前宏块子集在当前视频帧内的目标编码量化参数之后,还包括:
采用所述目标编码量化参数,依次对所述当前宏块子集内的每一宏块进行编码。
6.根据权利要求5所述的方法,其特征在于,在采用所述目标编码量化参数,依次对所述当前宏块子集内的每一宏块进行编码之后,还包括:
如果完成对当前视频帧内每一宏块子集的编码,则基于所述当前视频帧内每一宏块子集的实际编码码率和所述当前视频帧的实际编码码率,计算每一所述宏块子集在所述当前视频帧内的实际编码权重。
7.根据权利要求1-6任一项所述的方法,其特征在于,在预测所述当前视频帧面向当前宏块子集编码时的预编码码率之前,还包括:
基于所述当前视频帧在当前网络带宽下的预分配码率以及关联视频帧的编码码率下限,估算在当前网络带宽下视频传输时的视频预缓存量,以在所述视频预缓存量未超出预设编码阈值时,对所述当前视频帧进行编码。
8.根据权利要求7所述的方法,其特征在于,所述基于所述当前视频帧在当前网络带宽下的预分配码率以及关联视频帧的编码码率下限,估算在当前网络带宽下视频传输时的视频预缓存量,包括:
采用前一视频帧实际编码后的视频实际缓存量、视频缓存容量和缓存空置系数,调整当前网络带宽,得到所述当前视频帧的预分配码率和在当前网络带宽下视频传输时的传输码率;
采用所述当前视频帧的预分配码率和关联视频帧的编码码率下限,分别与所述传输码率之间的码率差,调整所述视频实际缓存量,得到在当前网络带宽下视频传输时的视频预缓存量。
9.根据权利要求8所述的方法,其特征在于,在采用前一视频帧实际编码后的视频实际缓存量、视频缓存容量和缓存空置系数,调整当前网络带宽,得到所述当前视频帧的预分配码率之后,还包括:
如果预分配码率小于所述当前视频帧的编码码率下限,则将所述预分配码率更新为所述当前视频帧的编码码率下限。
10.根据权利要求7所述的方法,其特征在于,在估算在当前网络带宽下视频传输时的视频预缓存量之后,还包括:
如果所述视频预缓存量超出预设编码阈值,则丢弃所述当前视频帧。
11.根据权利要求7所述的方法,其特征在于,在得到所述当前宏块子集在当前视频帧内的目标编码量化参数之后,还包括:
基于所述当前视频帧实际编码后的实际编码量,更新对应的视频实际缓存量。
12.根据权利要求1-6任一项所述的方法,其特征在于,在预测所述当前视频帧面向当前宏块子集编码时的预编码码率之前,还包括:
根据待编码视频内的每一视频帧的编码请求,评估该视频帧对应的当前网络带宽。
13.一种视频编码的装置,其特征在于,包括:
码率预测模块,用于根据当前视频帧的每一宏块子集在前一视频帧内的实际编码权重,以及所述当前视频帧内每一已编码宏块子集的实际编码码率,预测所述当前视频帧面向当前宏块子集编码时的预编码码率;
编码量化模块,用于基于所述预编码码率与所述当前视频帧在当前网络带宽下的预分配码率之间的码率差,调整所述当前宏块子集在前一视频帧内的实际编码量化参数,得到所述当前宏块子集在当前视频帧内的目标编码量化参数。
14.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的视频编码的方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一所述的视频编码的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011360060.6A CN112272299A (zh) | 2020-11-27 | 2020-11-27 | 一种视频编码的方法、装置、设备和存储介质 |
EP21896759.4A EP4228258A4 (en) | 2020-11-27 | 2021-11-08 | VIDEO ENCODING METHOD AND APPARATUS, DEVICE, AND STORAGE MEDIUM |
US18/253,028 US20240015288A1 (en) | 2020-11-27 | 2021-11-08 | Method for coding video, device, and storage medium |
CN202180066573.2A CN117597920A (zh) | 2020-11-27 | 2021-11-08 | 视频编码的方法、装置、设备和存储介质 |
PCT/CN2021/129185 WO2022111258A1 (zh) | 2020-11-27 | 2021-11-08 | 视频编码的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011360060.6A CN112272299A (zh) | 2020-11-27 | 2020-11-27 | 一种视频编码的方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112272299A true CN112272299A (zh) | 2021-01-26 |
Family
ID=74350070
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011360060.6A Withdrawn CN112272299A (zh) | 2020-11-27 | 2020-11-27 | 一种视频编码的方法、装置、设备和存储介质 |
CN202180066573.2A Pending CN117597920A (zh) | 2020-11-27 | 2021-11-08 | 视频编码的方法、装置、设备和存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180066573.2A Pending CN117597920A (zh) | 2020-11-27 | 2021-11-08 | 视频编码的方法、装置、设备和存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240015288A1 (zh) |
EP (1) | EP4228258A4 (zh) |
CN (2) | CN112272299A (zh) |
WO (1) | WO2022111258A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024946A (zh) * | 2021-11-02 | 2022-02-08 | 中国联合网络通信集团有限公司 | 流媒体码率的调整方法、装置和计算机可读存储介质 |
CN114245189A (zh) * | 2021-11-23 | 2022-03-25 | 中国联合网络通信集团有限公司 | 视频码率调整方法、装置、设备及存储介质 |
CN114501015A (zh) * | 2022-04-06 | 2022-05-13 | 杭州未名信科科技有限公司 | 视频编码码率处理方法和装置、存储介质及电子设备 |
WO2022111258A1 (zh) * | 2020-11-27 | 2022-06-02 | 百果园技术(新加坡)有限公司 | 视频编码的方法、装置、设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117478881A (zh) * | 2023-11-06 | 2024-01-30 | 淘宝(中国)软件有限公司 | 视频信息处理方法、系统、设备和存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1005233A1 (en) * | 1998-10-12 | 2000-05-31 | STMicroelectronics S.r.l. | Constant bit-rate coding control in a video coder by way of pre-analysis of the slices of the pictures |
US20070025441A1 (en) * | 2005-07-28 | 2007-02-01 | Nokia Corporation | Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding |
KR101172430B1 (ko) * | 2007-08-17 | 2012-08-08 | 삼성전자주식회사 | 비트율 제어 방법 및 그 장치 |
CN101795415B (zh) * | 2010-04-22 | 2012-02-08 | 杭州华三通信技术有限公司 | 一种视频编码中的码率控制方法及其装置 |
CN103841418B (zh) * | 2012-11-22 | 2016-12-21 | 中国科学院声学研究所 | 一种3g网络中视频监控器码率控制的优化方法及系统 |
CN110049321B (zh) * | 2018-01-16 | 2022-09-06 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、设备及存储介质 |
CN111200734B (zh) * | 2018-11-19 | 2022-03-11 | 浙江宇视科技有限公司 | 视频编码方法及装置 |
CN112272299A (zh) * | 2020-11-27 | 2021-01-26 | 广州市网星信息技术有限公司 | 一种视频编码的方法、装置、设备和存储介质 |
-
2020
- 2020-11-27 CN CN202011360060.6A patent/CN112272299A/zh not_active Withdrawn
-
2021
- 2021-11-08 US US18/253,028 patent/US20240015288A1/en active Pending
- 2021-11-08 WO PCT/CN2021/129185 patent/WO2022111258A1/zh active Application Filing
- 2021-11-08 EP EP21896759.4A patent/EP4228258A4/en active Pending
- 2021-11-08 CN CN202180066573.2A patent/CN117597920A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022111258A1 (zh) * | 2020-11-27 | 2022-06-02 | 百果园技术(新加坡)有限公司 | 视频编码的方法、装置、设备和存储介质 |
CN114024946A (zh) * | 2021-11-02 | 2022-02-08 | 中国联合网络通信集团有限公司 | 流媒体码率的调整方法、装置和计算机可读存储介质 |
CN114024946B (zh) * | 2021-11-02 | 2024-02-23 | 中国联合网络通信集团有限公司 | 流媒体码率的调整方法、装置和计算机可读存储介质 |
CN114245189A (zh) * | 2021-11-23 | 2022-03-25 | 中国联合网络通信集团有限公司 | 视频码率调整方法、装置、设备及存储介质 |
CN114501015A (zh) * | 2022-04-06 | 2022-05-13 | 杭州未名信科科技有限公司 | 视频编码码率处理方法和装置、存储介质及电子设备 |
CN114501015B (zh) * | 2022-04-06 | 2022-09-02 | 杭州未名信科科技有限公司 | 视频编码码率处理方法和装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2022111258A1 (zh) | 2022-06-02 |
US20240015288A1 (en) | 2024-01-11 |
CN117597920A (zh) | 2024-02-23 |
EP4228258A1 (en) | 2023-08-16 |
EP4228258A4 (en) | 2024-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200322619A1 (en) | Systems and Methods of Encoding Multiple Video Streams for Adaptive Bitrate Streaming | |
CN112272299A (zh) | 一种视频编码的方法、装置、设备和存储介质 | |
US9350990B2 (en) | Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming | |
KR101823321B1 (ko) | 적응적 비트레이트 스트리밍을 위해 적응적 양자화를 갖고 다수의 비디오 스트림들을 인코딩하는 시스템들 및 방법들 | |
KR100484148B1 (ko) | 개선된 비트율 제어 방법과 그 장치 | |
US9071841B2 (en) | Video transcoding with dynamically modifiable spatial resolution | |
CN108012163B (zh) | 视频编码的码率控制方法及装置 | |
JP4358215B2 (ja) | 動画像符号化装置及びその方法 | |
US20180184089A1 (en) | Target bit allocation for video coding | |
WO2021129007A1 (zh) | 视频码率的确定方法、装置、计算机设备及存储介质 | |
EP4333433A1 (en) | Video coding method and apparatus, and electronic device | |
WO2021092821A1 (en) | Adaptively encoding video frames using content and network analysis | |
KR100227336B1 (ko) | 고정 전송율 mpeg 영상 송신기용 전송율 제어 방법 및 그 장치 | |
CN117956160A (zh) | 码率控制方法、码率控制装置以及计算机存储介质 | |
CN111416978A (zh) | 视频编解码方法及系统、计算机可读存储介质 | |
CN111541898B (zh) | 一种编码模式的确定方法、装置、服务器和存储介质 | |
US11825088B2 (en) | Adaptively encoding video frames based on complexity | |
US11234004B2 (en) | Block type prediction leveraging block-based pixel activities | |
RU2818891C1 (ru) | Способ и устройство, вычислительное устройство и носитель данных для кодирования видео | |
US12120311B2 (en) | Encoder and associated signal processing method | |
CN115190309B (zh) | 视频帧处理方法、训练方法、装置、设备及存储介质 | |
Chang et al. | A two-layer characteristic-based rate control framework for low delay video transmission |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210126 |