CN102067610B - 基于视频编码的切片依赖性的码率控制模型适配 - Google Patents
基于视频编码的切片依赖性的码率控制模型适配 Download PDFInfo
- Publication number
- CN102067610B CN102067610B CN2009801226036A CN200980122603A CN102067610B CN 102067610 B CN102067610 B CN 102067610B CN 2009801226036 A CN2009801226036 A CN 2009801226036A CN 200980122603 A CN200980122603 A CN 200980122603A CN 102067610 B CN102067610 B CN 102067610B
- Authority
- CN
- China
- Prior art keywords
- picture
- coding
- rate control
- control model
- coding unit
- 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.)
- Expired - Fee Related
Links
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/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/103—Selection of coding mode or of prediction mode
-
- 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- 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/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- 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/142—Detection of scene cut or scene change
-
- 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/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/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/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- 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/172—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 picture, frame or field
-
- 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/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/192—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
- H04N19/194—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
-
- 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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
-
- 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/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/547—Motion estimation performed in a transform domain
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Discrete Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
根据其他可能不同的(例如,P编码的)画面或先前经编码的编码单元来确定用于估计一种编码单元类型的(例如,B编码或I编码的)画面的量化因子的统计数据。在这样的编码单元类型之间的比特率和质量关系可以用于量化参数。估计在编码单元类型之间的比特率和质量关系使得能够对画面进行精确的码率控制,而不管它们的编码单元类型如何。在编码单元类型之间的比特率和质量关系可以用于多个码率控制模型,以提高压缩率。可以利用由运动估计和补偿框架产生的统计数据来调整码率控制参数。可以在转码经压缩的比特流的过程中控制码率控制性能。
Description
相关申请的交叉引用和优先权声明
本申请涉及共同未决的美国临时专利申请No.61/061,941并要求该美国临时专利申请的优先权和权益,该美国临时专利申请由AthanasisLeontaris和Alexandros Tourapis在2008年6月16日提交,题目为RateControl Model Adaptation Based on Slice Dependencies for VideoCoding,并被转让给本申请的受让人。
技术领域
本发明的实施例涉及视频信息的处理。
背景技术
码率控制(rate control)是现代视频压缩***的一个组成部分。经压缩的比特流满足由传输介质施加的特定的带宽和延迟约束。可以通过码率控制来满足这些约束。码率控制算法改变向每个画面、颜色分量、块组或独立的块分配的比特的数目,因此可以避免编码器和解码器溢出和下溢,并且可以高精度地获得目标比特率。可选地,码率控制算法可以试图保持始终如一的高视觉质量。上述这样的目标可能相互竞争,这可能导致复杂的优化问题。尽管如此,可以利用例如内预测(I)、单预测(P)和双预测(B)的切片,以多种布置来编码在压缩的视频比特流中的画面。切片(slice)可以包括一个画面中使用同一预测类型(I、P或B)编码的一个或更多个宏块。可以利用单个或多个切片(其不必是同一类型)来编码一个画面。为了码率控制的目的,切片可以进一步被细分为使用相同编码参数被编码的一个或更多个码率控制基本单元(例如,一批宏块)。可以利用光栅扫描顺序来限定基本单元,基本单元可以是任意的,或者可以依赖于场景内的物体。基本单元也可以是一批相邻的画面。应当理解,在本文内,可以根据上下文来可互换地使用术语:基本单元、切片、画面和帧。在不同类型的切片之间比特率和质量统计数据可以非常不同。现代码率控制算法可以收集单个切片类型的码率控制基本单元的统计数据,并将所收集的统计数据单独应用到这种类型的码率控制基本单元上,而对于其他切片类型,可以采用启发式码率控制方法。对切片类型或基本单元执行码率控制可以采用独立的且可能不同的码率控制模型,这可以实现更精确的码率控制,并且可能改善经压缩的比特流的视觉质量。然而,使用独立的码率控制模型可能带来计算成本。
视频压缩***的目的是高压缩性能,例如在给定用于经压缩的比特流的固定目标数目比特的情况下实现最低可能的失真,或者等同地,针对固定失真值发送最小可能数目的比特。失真量度的一个示例是峰值信噪比(PSNR)。视频编码器产生经压缩的比特流,使得当相应的解码器机构(解码器)解码经压缩的比特流时,产生可以在接收器侧被显示和观看的重建的视频序列。应当理解,存储或传输介质可以以多种传送模式将这样的压缩比特流发送到接收器以便解码。这些传送模式中的每一个可以具有不同的延迟和带宽应用。例如:
(a)可以在光盘或磁盘或非易失性计算机存储器上存储和传送经压缩的比特流;
(b)用户可以从因特网上的某个远程服务器下载经压缩的比特流,并在稍后某个时间离线地观看重建的视频。
(c)用户可以将来自远程因特网服务器的经压缩的比特流流化,并在客户计算机或装置上以小的时延来观看经压缩的比特流;以及
(d)经压缩的比特流可以是实时交互视频通信(例如,视频会议)或现场直播视频流(例如,体育)等的结果。
对于实时通信,低的端到端延迟可以改善对用户的服务质量。对于现场直播流、视频会议等而言,可以预期一定程度上较高的端到端延迟。例如因为在计算机上的解码和显示可以有可用的缓冲空间,所以光盘和磁盘存储以及电影下载可以容许较大的延迟。已经发现,电影或TV节目的因特网流与现场直播流相比较可以允许额外的延迟,并向观众提供相同的满意度。已经发现,端到端延迟可能受通信通道(或“管道”)以及视频编码器预测结构影响。例如,一些视频编码器在编码当前帧之前缓冲未来的帧,以改善压缩性能。然而,缓冲未来的帧可能增加延迟。
应当理解,数据管道的容量可以对于每种传输介质而不同。例如,光盘和磁盘存储器在带宽上可以很大。诸如蓝光或HD-DVD盘的高容量存储介质对于比特容量和解码器缓冲器大小有上限。离线回放相对于带宽而言可以不受约束,因为比特流是离线地被观看。然而,实际配置可能与缓冲延迟和硬盘驱动器存储空间相关。因特网流和实时交互视频通信可以受用于传送比特流的网络的带宽的影响。另外,针对一种传输介质产生的比特流可能不适合于通过一种不同的传输介质传输。例如,可以以比如5Mbps的比特率来压缩在光盘(例如,DVD)上存储的比特流。在带宽不足的网络上在线地流化同一比特流以支持这样的比特流可能影响性能。
用于产生满足带宽和延迟约束的经压缩的比特流的一种机制是码率控制。码率控制可以最小化视觉失真,产生适合通信通道的比特,并且可以防止解码器输入缓冲器溢出或不足(例如,可能导致下溢)。例如,适应的比特流可以满足对解码器缓冲器的两种约束:
(a)所接收的画面比特适合于缓冲器(否则导致缓冲器溢出);并且
(b)当解码器从缓冲器移出画面以解码该画面时,整体地接收该画面(否则导致缓冲器下溢或饥饿)。
在这个部分描述的手段是可以实行的手段,但是不必然是以前已经构思和实行的手段。因此,除了另外指明,否则不应当假设在这个部分描述的任何手段仅因为它们被包含在这个部分中而成为现有技术。
附图说明
在附图中作为示例而不是限制示出了本发明,在附图中,相似的附图标记指示类似的元件,其中:
图1是示出根据一个实施例的在视频编码器内的码率控制方案的示例实现方式的示意图;
图2是示出根据一个实施例的总码率控制模型的示意图;
图3是示出根据一个实施例的、用于使用源自过去和未来的相邻画面的块的加权线性组合来预测当前画面的示意图;
图4是示出根据一个实施例的运动补偿预测的示意图;
图5是根据一个实施例的使用单个在前参考画面的SAD计算的示意图;
图6是示出根据一个实施例的使用多个随后参考画面的SAD计算的示意图;
图7是示出根据一个实施例的被用作分析前级的运动补偿时间滤波器的示意图;
图8是示出根据一个实施例的具有三个时间级别和四种类型的编码单元的分级二进制分解结构的示意图;
图9是示出根据一个实施例的具有四个时间级别和四种类型的编码单元的二进制分解结构的示意图;
图10是示出根据一个实施例的具有三个时间级别和五种类型的编码单元的非二进制任意分解结构的示意图;
图11是示出根据一个实施例的具有三个时间级别和七种类型的编码单元的非二进制分解结构的示意图;
图12是示出根据一个实施例的利用码率控制模型的转换来进行编码的流程图;
图13是根据一个实施例的用于估计不同类型的编码单元的比特率关系的流程图;
图14是根据一个实施例的用于改善码率控制的算法的流程图;
图15是示出根据一个实施例的使用单个码率控制模型和利用第一技术的方法得到的θ比率的视频编码器的流程图;
图16是示出根据一个实施例的使用多个码率控制模型和利用第一技术的方法得到的θ比率的视频编码器的流程图;
图17是示出根据一个实施例的混合和组合已经针对不同画面类型产生的经转换的码率控制模型的流程图;
图18是示出根据一个实施例的转码器(transcoder)模块的部件的示意图;
图19是示出可以在其上实施一个实施例的计算机***的方框图;
图20是根据一个实施例的使用多个切片类型来编码的示例画面的示意图;
图21A是示出根据一个实施例的在编码期间的结构切换处理的流程图;
图21B是示出根据一个实施例的在编码期间更新用于结构切换处理的参数的流程图;
图22是示出根据一个实施例的基本单元配置的示意图;以及
图23是示出根据一个实施例的基本单元配置的示意图。
具体实施方式
在下面的说明中,为了解释的目的,给出了众多具体细节,以便彻底地理解本发明。然而显然可以在没有这些具体细节的情况下实施本发明的实施例。在其他情况下,以方框图形式示出了公知的结构和装置,以便避免不必要地混淆本发明。
在此根据下面的大纲来描述示例实施例:
1.0一般概述;
2.0基于视频编码的编码单元依赖性的码率控制模型适配的概述;
2.0.1示例第一技术-码率控制建模,
2.0.2示例第二技术-收集统计数据,
2.0.3示例第三技术-比特分配,以及
2.0.4示例第四技术-转码(transcoding);
3.0示例实现机制;
4.0枚举的示例实施例;以及
5.0等同物、扩展、替选和其他
1.0一般概述
图1示出在视频编码器内的码率控制模型100的示例实现方式。码率控制的机制可以产生满足视频***的带宽、延迟和质量约束的经压缩的比特流。码率控制在防止解码器输入缓冲器溢出或不足的同时,可以满足比特率目标。可选地,对于给定的比特率目标和延迟/缓冲约束,码率控制也可以用于减小失真。
在图1中,输入视频102被发送到加法器116,加法器116从输入视频102中减去视差补偿(disparity compensation)(例如预测)块160的输出。视差补偿块160可以例如使用来自画面参考存储块164的像素和从视差估计块162向其发送的编码模式来执行帧内或帧间预测(例如,运动补偿和加权预测)。视差估计块162使用输入视频102和来自画面参考存储块164的像素样本作为输入来执行帧间预测(例如,运动补偿或加权预测)、帧内预测和模式确定。视差估计块162通过最小化某种量度,例如在原始样本与它们的预测数据之间的绝对差或平方差的和,或者通过考虑比如码率-失真优化的拉格朗日最小化等更精细的方法,来选择最佳的帧间或帧内编码模式。来自加法器116的输出耦接到变换块104,跟随变换块104的是量化块106。量化块106和变换块104还从码率控制块150接收输入。变换块104除了变换残差数据(residual data)之外,还可以受码率控制块150指示来调整变换矩阵。量化块106除了对变换系数的量化处理之外,还可以受码率控制块150指示来执行下面的任务之一:(a)调整量化矩阵;(b)调整或选择性地清除(阈值化)特定的量化系数样本;(c)调整量化凑整偏移;(d)执行码率失真优化的量化,等等。量化块106的输出耦接到可变长度编码器(VLC)块108和逆量化块110。从VLC块108产生比特流120,并且,关于编码处理的信息比如用于编码块、区域或图像的比特的数目和由这样的确定引入的失真等被发送到码率控制块150。
码率控制块150也从视差补偿块160和失真计算块168接收输入,并且具有到视差估计块162、变换块104、环路滤波器166和量化块106的输出。失真计算块168计算在输入视频102与来自视差补偿块160的对输入视频102的预测之间的失真量度。视差估计块162可以受码率控制块150指示来执行任务,所述任务可以包括下面的一个或更多个:(a)选择性地使能和禁止运动补偿块大小;(b)使用特定画面作为运动补偿参考;(c)调整运动估计搜索范围或其他运动估计参数(例如,阈值或搜索模式);(d)调整在联合双预测运动估计中的迭代次数;(e)选择性地使能和禁止帧内预测模式;(f)选择特定的编码模式(例如,跳越模式),等等。环路滤波器块166可以受码率控制块150指示来执行下面的任务之一:调整环内去块滤波器的参数;(b)关闭去块过滤器,等等。
逆变换块112从逆量化块110接收输入,并向加法器126发送输出。加法器126从逆变换块11和视差补偿块160接收信号,并向环路滤波器166发送相加的信号。画面参考存储块164从环路滤波器166接收输入,并向视差补偿块160和视差估计块162发送输出。视差估计块162也从码率控制块150接收输入。环路滤波器166也从码率控制块150接收输入。输入视频102也被发送到视差补偿块160和视差估计块162的输入。
关于每个画面的比特分配,存在可以用来影响向画面分配的比特数目的多种方式。例如,可以通过改变不同的编码参数来控制所分配或花费的比特的数目,比如:
(a)改变量化参数(QP),即用于量化块的残差变换系数的参数值;
(b)选择将视觉质量折中的编码模式以便发送更少的比特,比如以信号通知应当跳过整个块、并且应当在其位置处复制和显示先前块;
(c)改变在运动估计和编码模式确定的拉格朗日码率-失真优化期间使用的拉格朗日拉姆达(“λ”)参数;
(d)(例如利用傅立叶型变换,比如离散余弦变换(DCT)或改进的DCT)将经变换的系数量化为更可压缩的值,同时产生最小的质量降级,或者替代地,将系数阈值化(清除)。可以可选地通过在DCT系数的量化期间调整凑整偏移来实现这样的量化;以及
(e)选择不对特定画面进行编码,而是以信号通知应该跳过这样的画面,以便在被跳过的画面的位置显示先前经编码的画面(例如,跳帧)。
应当理解,可以主要通过改变量化参数值来完成码率控制,因为与其他方法相比较,量化参数值与质量对失真以及比特使用(bit usage)具有更直接的关系。码率控制的目的是实现目标比特率。码率控制的另一个目的是实现经压缩的图像序列的最佳可能视觉质量。其他目的可以包括:满足编码器和解码器缓冲约束,其次,满足低计算复杂度和存储器要求。量化参数的选择可以采用简单和更全面的算法。简单码率控制算法可以包括下面的示例步骤:用预定的量化参数值来编码视频序列中的第一画面。编码器然后将结果产生的比特数目与原始的比特目标相比较。如果结果产生的比特数目超过比特目标例如阈值Thigh,则提高下一个画面的量化参数值以减少比特使用。另一方面,如果结果产生的比特数目显著小于比特目标,例如比比特目标小阈值Tlow,则降低下一个画面的量化参数值以增加比特使用。另外,可以使用同一QP。在极限状态下,上述的启发式算法或多或少地实现目标比特率。然而,算法的简单可能影响视频质量,也许是较大地影响视频质量。
现代综合码率控制算法可以通过多种特征,包括使用在当前和预测的画面(或它们的一部分)之间的误差,来获得良好的性能。利用运动补偿、根据先前解码的画面中的块来预测当前画面中的块(帧间预测)。在其他编码方案中,在当前画面中的块可以利用来自同一画面的像素值而被预测(帧内预测)。这样的技术通常被称为编码模式。可以使用不同的失真量度来计算在源信号和预测(帧间和帧内)之间的误差。通常,采用(帧内或帧间)预测误差的均方误差(MSE)或等同的误差平方和(SSE)以及平均绝对差(MAD)或等同的绝对差和(SAD)。SAD预测误差是在编码特定块过程中的难度指示器。例如,高的SAD预测误差可以是具有高熵的预测误差残差的结果,其可以证明压缩成本之大。因此,利用对预测误差的了解可有助于更好地选择量化参数的值,或者通常可以有助于调整用于控制比特率的技术。应当理解,MAD/SAD仅是预测误差/失真的两种可能量度。可以考虑其他可能的失真或编码复杂度量度。
可以通过模型(例如,线性、二次等)来估计SAD预测误差。或者,可以通过多轮次编码(multiple-pass encoding)来计算SAD预测误差,例如,一轮次收集比如SAD等的统计数据,并且这样的统计数据被随后的轮次使用以便改善码率控制。对于支持帧间预测的编码类型,对于码率控制而言,基于运动补偿误差方差或SAD的时间统计数据可以比诸如源方差等空间统计数据明显更可靠。对于仅支持帧内预测的编码类型,比如空间方差等空间统计数据可能更优选。在给定目标比特数目和估计的SAD的情况下,可以通过比如二次模型等模型来估计量化参数值。除了如上所述的基于SAD和QP模型的技术之外,还可以使用其他码率控制技术。例如,其他码率控制技术可以包括rho域码率控制。这样的rho域码率控制技术可能比较早描述的二次模型在计算上更复杂,因为rho域码率控制技术针对每个产生的转换系数收集关于像素级的信息。应当理解,这样的技术可以适用于使用数据去相关变换的视频压缩***,所述数据去相关变换包括但是不限于广泛使用的DCT变换(以及相关的变换)。
一些初始码率控制技利用多个量化参数来重复地压缩每个图像块,然后选择满足带宽约束的QP。然而,计算成本可能限制这些技术用于实时或低复杂度应用的实用性。有效的码率控制模型可能避免这种限制。简单的码率控制模型包括存储器和判定模块。存储器模块收集与图像序列中的画面的复杂度、比特率使用以及内容有关的信息。这样的信息可以被组合以建立将所收集的统计数据与比特使用相关联的模型。可以使用来自先前经编码的画面的信息来周期性地更新所述模型。可以分配计算资源以更新该模型,以便该模型在处理一些不小数目的编码画面后收敛到期望的状态。当要编码新的画面时,该模型计算将实现输入比特目标的编码参数。
针对每个画面选择单个QP的早期实用的码率控制算法是被称为测试模型5码率控制的模型。针对每个图像计算复杂度量度,并将该复杂度量度用于在画面之间分配码率,并且可选地,以更细致的方式在要编码的画面中的由块组成的切片之间分配码率。然后使用模型来将比特目标转换为用于编码画面或切片的量化参数。在测试模型5中,所使用的复杂度量度是画面或块空间方差。替代的复杂度量度可以是结果产生的比特和用于编码先前画面的量化参数的函数。在画面的块之间最佳地分配QP值的另一种手段使用当前画面的运动补偿残差的标准偏差/方差值。将比特率约束(例如,实现目标比特率)转换为量化参数的模型可以是复杂度(标准偏差)和QP的二次函数。
应当理解,码率控制算法可以在产生和编码残差DCT系数之前选择编码模式(帧内或帧间等)。以这种方式,可能不需要计算块/画面的复杂度,因为可能已知复杂度的估计值。另一方面,可以显著地改善视觉质量的较新的编码规范可以使用拉格朗日码率-失真优化来优化编码模式的选择。在码率-失真优化的视频压缩***中,可以通过例如最小化拉格朗日代价函数J =D+λ×R来完成运动估计和编码模式选择,在该拉格朗日代价函数中,D是失真(例如,SSE、SAD或其他失真量度),而R是在编码处理期间的比特率的实际值或估计值。用于针对失真来折中码率的拉格朗日参数λ与码率-失真斜率相关,并且可以被定义为量化参数的函数。在运动估计期间,码率使用(rate usage)R通常表示用于将块的运动参数编码的比特,所述运动参数诸如是运动向量(用于表示块的运动的信息)、参考画面索引、加权预测参数等。在模式判定期间,码率使用R可以表示用于使用所述编码模式来编码整个块的比特。在给定当前块的特性和其相邻块的特性的情况下,如果使用高复杂度的码率-失真优化(RDO)码率,则可以精确地计算码率使用,或者,如果使用低复杂度的RDO,则可以估计码率使用。用于模式判定的码率使用的计算使用块的重建和预测残差的完全熵编码。码率-失真(RD)优化的模式判定除了考虑多个编码模式之外,也可以考虑多个量化参数,或者调整编码单元的其他特性以确定用于编码的那个特性。在模式判定期间考虑多个量化参数可以改善性能,但是也可以使用更大的计算资源,也许使用非常大的计算资源。此外,使用拉格朗日优化的在RD意义上的多个QP的比较将使用在比较期间保持不变的参数λ。因此,为了使能较低复杂度的RDO方案并允许拉格朗日λ的直接选择而不显著地提高计算需求,可以在编码模式判定处理和预测残差变换系数的导出之前选择量化参数。应当理解,已经提出了多种码率控制算法,它们在编码当前块之前估计该当前块的复杂度(例如,SAD)。
在诸如H.264/AVC、VC-1和MPEG-2等的现代视频编解码方式中,可以将画面编码为预测画面(P编码的画面)、帧内画面(I编码的画面)或双预测画面(B编码的画面)。在H.264/AVC中,可以利用多个I、P或B切片的组合来编码画面。例如,在一种可能的布置中,可以将画面的上半部分编码为I切片,并且将下半部分编码为P切片。一些编解码方式支持另外的切片/画面类型,例如在H.264/AVC和多假设画面内的SP和SI切片,并且也可以考虑帧和场编码画面结构。同一类型的场和帧编码画面往往具有非常不同的编码特性。如果必要,则可以在宏块级别上以帧或场宏块编码结构进一步细分帧编码的画面。这可以产生编码统计数据之间的进一步区别。有三种主要编码类型可以用于压缩画面:I编码的画面、P编码的画面和B编码的画面,其中,假定这样的画面由同一类型(分别是I、P或B)的切片构成。I编码的画面使用根据同一画面的像素的帧内预测。可以利用运动补偿从先前经编码的参考画面来另外预测在P编码的画面内的块。应当理解,先前经编码的参考画面不必是象在MPEG-2或MPEG-4部分2中的在显示顺序上的过去画面,而是可以是在解码顺序上的先前经编码的参考画面。对于被编码的当前画面中的每个块,这样的参考画面不一定是相同的画面。例如,“多参考预测”允许从一组候选参考画面中选择参考画面。B编码的画面可以另外使用由来自多个参考画面的块构成的两个运动补偿预测(MCP)的组合。应当理解,在H.264/AVC视频编解码方式中,组合的预测可以源自同一预测方向,例如都源自过去或都源自未来或甚至都源自同一画面。在可用于编码画面的编码工具方面(例如,诸如帧内或帧间预测等的编码模式),I编码的画面可以实质上被当作P编码画面的特殊情况,并且P编码的画面继而可以被当作B编码的画面的特殊情况。并且,I、P和B编码的画面具有不同的编码统计数据。对于同样的量化参数和内容,I编码的画面通常使用比P编码的画面更多的比特,而对于具有实质的时间相关性并且依赖于编码配置(例如,可用的参考和它们与当前画面的关系)的图像序列,B编码的画面平均使用比P编码的画面更少的比特。此外,应当理解,可以将画面编码为逐行帧或一对隔行场。如可以在电视制作中使用的那样。场编码可以用已经使用隔行摄像机产生的视频内容来提高压缩效率。因为复杂度或编码效率的原因,也可使用多个切片类型来编码一个画面。在图20中示出这样的一个编码画面的示例,该画面使用两个B切片(切片1(2002)和切片2(2004))和四个P切片(切片0(2006)、切片3(2008)、切片4(2010)和切片5(2012))。与仅使用P切片的画面相比较,这样的编码画面具有不同的码率-失真特性。在图22和图23中示出两个基本单元配置示例。在图22中,使用两个切片来对画面(2200)进行编码,第一切片是B切片(2202),第二切片是P切片(2204)。B切片(2202)被进一步细分为相等大小的光栅扫描基本单元,即基本单元0(2206)、基本单元1(2208)、基本单元2(2210)、基本单元3(2212)和基本单元4(2214)。P切片(2204)被细分为两个基本单元,即基本单元5(2216)和基本单元6(2218),它们对对象及其背景进行建模。在图23中,示例配置(2300)示出作为多组后续画面的两个基本单元,即基本单元1(2302)和基本单元2(2304)。
现代视频编解码方式可以在编码期间使用适应于序列的统计数据的灵活预测结构,以最大化经压缩的比特流的质量。在H.264/AVC的环境中,可构造被称为“分级编码画面”的复杂预测结构,比如在此和下面进一步详细描述的图8-11中所示的结构。这样的结构对于码率控制而言可以是重要的,因为每个切片类型的码率-失真性能可能受预测结构在编码结构中的位置影响。例如,在级别2的B编码画面有可能具有与在级别1的B编码画面显著不同的质量比特率折中。
图8-11共有一些类似性。可以参考图8来描述下面的一般讨论。图8是示出具有三个时间级别和四种类型的编码单元的分级二进制分解结构(800)的示意图。在此使用的术语“编码单元”可以指示三种类型的信息:编码画面的配置(例如,帧内对帧间编码、单预测对双预测、同一类型的切片的数目、码率控制基本单元的数目、帧对场编码、每个画面的单个对多个切片和它们的布置等)、画面在预测结构中的位置以及当前画面在预测结构中的预测关系(例如,当前画面的预测参考的数目、类型和位置等等),当前画面在预测结构中的预测关系也称为编码依赖性(codingdependency)。换句话说,特定画面的编码依赖性标识从中预测该特定画面的画面。分级结构具有不同的级别、最基本的级别在一定意义上是级别0(“零”,810)。属于级别0(810)的画面具有最高的优先级,并且用于解码属于大于0的级别的画面。通常,为了在级别l解码画面,首先解码属于级别0到l-1的画面。在以前的编码标准比如MPEG-2和MPEG-4中,在编码画面n后,存在两种选择:或者预测和编码画面n+1,或者预测和编码画面n+m,其中m>1。然后,画面n和n+m被用作画面n+1到n+m-1的双预测的参考画面。应当理解,在解码画面n+1至n+m-1之前,解码画面n和n+m。此外,可以独立于画面n+1至n+m-1而解码画面n和n+m。因此,在这个实施例中,画面n和n+m具有较高的优先级,即级别0,而画面n+1至n+m-1处于较低的级别1。另外,画面n+1到n+m-1中的每个画面可以独立于彼此地被解码。然而,在H.264/AVC编解码方式中,可以使用更复杂的以及甚至任意的编码结构。作为示例,可以选择考虑在m-1个内部分级画面内的更复杂的依赖性。m的值也可以在经编码序列的一部分与另一部分之间不同,或者可以使用相反/任意的编码顺序来编码画面。在级别0(810)的画面有时被称为“锚”画面。
可以参考图9来描述示例分级结构,图9是示出具有四个时间级别和四种类型的编码单元的二进制分解结构(900)的示意图。在已经编码了画面0(902)之后,编码器预测和编码画面8(904)。可以利用预先编码的画面(未示出)作为参考、使用I编码的画面或P编码的画面(示出为902)或B编码的画面来预测和编码画面8。接着,可以使用画面0和8(902,904)作为参考将画面4(906)编码为B编码的画面。画面4(906)具有比画面0和8(902,904)更低的优先级,因此属于不同的级别,例如级别1(920)。现在可以使用画面0、4和可选的8(902,906,940)作为参考来编码画面2(908),画面0、4和可选的8是在时间上最接近的画面。尽管在下面的大多数描述中采用每个参考列表一个参考画面,但是当解码画面缓冲器足够大时,更多的画面可以用作每个参考列表的参考候选,只要它们在当前画面之前被编码并被保留为参考。假定没有参考重新排序并且每个列表仅使用单个参考,则一个参考列表(列表0)将仅包含画面0,并且另一个参考列表(列表1)将包含画面4。如果每个列表允许至多三个参考,则默认产生的列表0将包含画面0、4和8,而默认列表1将包含以下述顺序的画面4、8和0。该顺序可以是重要的,因为具有小索引的画面需要较少的比特来索引。应当理解,时间预测距离可能对压缩性能有直接的影响:参考离预测的画面越近,则相关度越高,并且预测残差越低。画面2(908)具有比画面4和0更低的优先级(906,902),因为画面2(908)属于不同的级别,即级别2(930)。还应当理解,在传统视频编码(例如,MPEG-2)的另一种变更中,任何经编码的画面都可以被保留和用作参考,包括B编码的画面。类似地,任何画面也可以被信号通知作为非参考,包括I和P编码的画面。在这个实施例中,画面4(907)被缓冲作为参考画面。否则,可以从远处的画面8(904)预测其他画面2(908),这可能影响压缩性能。从较近的参考画面预测画面可能提升压缩性能。画面2(908)因此也被缓冲作为参考画面,并与画面0(902)相结合地用于画面1(912)的双预测。然后,使用画面2和4(908,906)作为参考来编码画面3(914)。画面1和3(912,914)具有比画面0、2和4(902,908,906)更低的优先级,并且属于级别3(940)。可以对画面5(916)、画面6(918)和画面7(922)重复同一处理。虽然上面的描述讨论了B编码的画面,但是也可以用特定编解码方式内的任何可用编码类型来编码画面1至7,包括I、P或B类型的多个切片。此外,画面1、3、5、7(912,914,916,922)可以被信号通知为一次性使用的画面。被信号通知为一次性使用的画面可以表示这样的画面不用于其他画面的运动补偿的预测。不使用或甚至不保存用于运动补偿预测的特定画面可以节省存储器,并且可以提供时间可伸缩性。
图8-11示出编码单元可以不仅包括编码类型(例如,P编码的画面)和时间级别(例如,级别1)的组合。例如,编码单元也可以包括编码依赖性的函数,例如从中预测出该编码单元的画面。可以参考图10来描述一个示例,图10是示出具有三个时间级别和五种类型的编码单元的非二进制任意分解结构(1000)的示意图。画面1(1002)、3(1004)、5(1006)和7(1008)被编码为编码单元A(1010),因为画面1(1002)、2(1004)、5(1006)和7(1008)是B编码的画面,并且是从相邻的画面被预测。例如,画面1(1002)、3(1004)、5(1006)和7(1008)的每一个与在显示顺序上与正被编码的画面相距一个画面。另外,画面1(1002)、3(1004)、5(1006)和7(1008)的每一个属于级别2(1012)。应当理解,在级别1(1014),情况可能不同。例如,虽然三个画面2(1016)、4(1018)和6(1020)被编码为B编码的画面,但是画面2(1016)、4(1018)和6(1020)的编码依赖性可能与画面1(1002)、3(1004)、5(1006)和7(1008)的编码依赖性不同,也许是显著不同。例如,从相距两个画面的一个参考,即画面0(1022)和另一个画面,即相距6个画面的画面8(1024)预测画面2(1016)。从相距两个画面的一个参考,即画面2(1016)和相距4个画面的另一个画面,即画面8(1024)预测画面4(1018)。此外,从都相距两个画面的两个参考,例如画面4(1018)和画面8(1014)来预测画面6(1020)。应当理解,如上所述的帧(或画面)距离涉及显示顺序。这暗示改变了编码统计数据。例如,假定这些画面通过不同的编码单元编码,所述不同的编码单元是编码单元B(1026)、编码单元C(1028)和编码单元D(1030)。边缘P编码的画面0和9(1022,1024)属于另一种编码单元类型,即编码单元E(1032)。为了进一步描述编码依赖性的效果,参考图11来描述更复杂的情况。图11是示出具有三个时间级别和七种类型的编码单元的非二进制分解结构(1100)的示意图。画面3(1102)被编码为P编码的画面,因此与级别2画面的其余部分相比较具有不同的编码统计数据。画面5(1104)被编码为I编码的画面,产生另外的编码单元类型。
可以使用两个或更多个编码单元类型的组合来编码实际的视频序列。码率控制模型保存画面复杂度以及量化参数与比特数目的关系的参数模型。可以使用来自先前经编码的编码单元的统计数据来更新这样的参数模型。这些模型的参数可以在不同的编码单元类型的情况下取非常不同的值。例如,帧内预测的复杂度和比特统计数据可能与基于帧间的单元预测的复杂度和比特统计数据不同,也许是显著不同。实际上,用于利用帧内而不是帧间预测并以给定数目的比特来编码图片的量化参数可以变化,也许是显著变化。因此,使用用于编码各种编码单元类型中的每一个编码单元类型的特定模型可以帮助满足在码率控制方面的相关约束。
在一个实施例中,通过改变用于编码基本单元的QP来应用码率控制,其中,基本单元是一批宏块。宏块是功能单元,其包括m×n块(例如16×16)像素值。每个像素可以根据采样格式(例如,4:4:4,4:2:2,4:2:0或4:0:0)而与亮度和色度信息(如果可获得)相关联。在这种方案中,码率控制基本单元可以象画面那么大,也可以象单个宏块那么小。这样的码率控制算法的步骤包括:
1.针对当前画面计算比特目标。
2.如果当前画面被划分为多个基本单元,则向当前画面中的所有未经编码的基本单元均等地分配剩余的比特。
3.当前画面中的当前基本单元的SAD预测错误被预测为在先前画面的共同位置中的基本单元的SAD的线性函数(模型)。
4.借助于相对于SAD和头比特数目而参数化的二次码率-失真模型来计算对应的量化参数。
5.使用从步骤4导出的量化参数来编码当前基本单元。
步骤1包含计算当前画面的比特目标值。步骤1也被称为码率分配。在一个实施例中,比特目标是相对于帧速率的比特率(每个画面的比特)加上以下项的和,该项是在内容缓冲器充满度减去目标缓冲水平之间的差的函数。在这个实施例中,比特目标考虑缓冲器状态。应当理解,超过目标缓冲器水平的缓冲器充满度导致减小的比特目标,而小于目标缓冲器水平的缓冲器充满度导致提高的比特目标。可以通过考虑用于编码画面的编码单元类型和在给定情况下可获得的比特的剩余总数来进一步改善比特目标。其他有用因素包括需要编码的每个编码单元类型的画面的剩余数目以及这样的编码单元类型的复杂度估计值。对P编码的画面执行上面的目标码率计算。不执行对I编码的画面或B编码的画面的处理。使用作为相邻的P编码画面的QP值的函数的启发式量化参数来编码这样的I和B编码的画面。
在步骤3中,结果产生的比特目标值被转换为编码器在编码期间可以使用的有意义的信息,例如QP值。使用以下形式的等式,通过在先前编码画面的共同位置处的基本单元的SAD的线性模型来预测在当前画面中的当前基本单元的SAD:
MADcurr=α1×MADprev+α2 (1)
在(1)中,SADcurr表示当前SAD的估计值,SADprev是先前SAD,并且,α1和α2是估计的线性模型参数。线性模型参数的估计技术使用对从先前经编码的画面收集的统计数据的线性回归。然后,使用步骤0中的二次码率-失真模型来将量化参数计算为:
项bheader(j)是用于编码P编码的画面的头比特的数目的估计值。T(j)是画面j的目标比特率。利用对过去画面编码统计数据的线性回归来估计参数c1和c2。然后求解等式(2)以得出量化步长大小Qstep(j),量化步长大小Qstep(j)然后用于导出量化参数,因为它们共有一对一的关系。
应当理解,如上所述的码率控制算法中的一些避免了应用现有的码率控制模型,所述现有的码率控制模型在I编码和B编码的画面上建模P编码的画面。例如,仅保存单个码率控制模型。向I编码和B编码的画面分配的量化参数是向相邻的P编码的画面分配的值的启发式函数。这样的启发式函数可以不必考虑缓冲器状态和比特率。对I编码和B编码的画面编码因此可能导致缓冲器溢出或下溢。可以对每个编码单元类型使用不同码率控制模型来避免缓冲器溢出或下溢。然而,存储器和计算复杂度增加。
2.0基于视频编码的切片依赖性的码率控制模型适配的概述
提供了用于确定用于利用来自其他先前经编码(不一定是同一类型)的编码单元(例如,P编码的画面)的信息来估计给定编码单元类型(例如,B编码或I编码的画面)的量化参数所需的统计参数的技术。特定的技术使用在这样的编码单元类型之间的比特率和质量关系以及用于编码这样的编码单元类型的量化参数。对编码单元类型之间的比特率和质量关系的估计使得能够进行精确的码率控制,而不管与用于编码画面的编码单元类型如何。此外,在编码单元类型之间的这样的比特率和质量关系可以与用于提高的压缩性能的多个码率控制模型联合使用。通过使用由运动估计和补偿框架(MEMC)产生的统计数据来进一步优化码率控制参数,这在此和在下面更详细描述。
应当理解,在此所述的新颖手段可以呈现出:
(a)低的存储器复杂度;
(b)低的计算复杂度;
(c)精确的码率控制;以及
(d)较快的码率控制模型收敛和初始化。
应当理解,项目(a)和(b)可以导致减少的功率使用,项目(c)和(d)可以改善经压缩的比特流的质量。
实施例可以应用于任何码率控制技术,所述码率控制技术依赖于估计质量/失真、复杂度以及比特率来进行码率控制。两种这样的码率控制技术是二次模型和rho域模型。
在一个实施例中,可以使用多个可用的画面编码类型来编码在图像序列中的画面。此外,画面编码类型的质量-比特率折中受其编码结构(例如,帧内对帧间编码、单预测对双预测、切片或基本单元的数目和类型、帧对场编码、每个画面的单个对多个切片等)及其在运动补偿预测(MCP)结构中的位置影响。应当理解,基本单元可以比切片更小,但是也可以被定义为包括多个画面。这允许保证例如在画面组之间的恒定质量或比特率的灵活性。画面编码类型和结构位置在此可以被称为编码单元。在一个实施例中,为了对视频比特流应用码率控制,针对每个编码单元保存不同的码率控制模型,以便将每个编码单元类型的编码统计数据精确地建模。然而,这可能提高存储器复杂度,因为可能使用额外的计算来更新所保存的码率控制模型。例如,假定预测结构包括N个编码单元类型。为了执行有效的码率控制,利用编码统计数据来保存、应用和更新N个码率控制模型。在一个实施例中,保存、应用和更新M个码率控制模型,其中M<N。利用从使用N个编码单元类型被编码的经编码画面收集的质量和比特率来近似N-M个缺少的码率控制模型。其他统计数据可以改善丢失的N-M个模型的近似。这样的统计数据包括内容相关的统计数据,诸如空间方差、运动和纹理等。在一个实施例中,所收集的统计数据不仅用于近似N-M个丢失的模型,而且还用于更新M个模型。用于近似N-M个丢失的模型的存储器和计算复杂度可以反映对可以由保存和更新N-M个真实模型导致的复杂度的节省,也许是显著的节省。应当理解,复杂度可能不仅与所述N-M个模型相关,而且与所述M个模型相关。在一个实施例中,这是被考虑的在复杂度上的相对节省。而且,一个实施例也处理以下高度实用的情况:由于预测结构的改变而改变图像序列中的编码单元类型的数目,以便更好地编码图像序列。
除了在编码期间收集的并用于导出在具有不同编码单元类型的画面之间的比特率和质量关系的统计数据之外,一个实施例另外使用由空间-时间运动估计和补偿框架(MEMC)收集的统计数据。这样的MEMC使用来自过去和可能未来的画面的信息。此外,在一个实施例中,编码器可以收集在初始运行中的统计数据,并且使用所收集的统计数据或在随后的运行中改善所收集的统计数据,以最佳地导出在画面之间的码率。在一个实施例中,MEMC框架使用源自过去和未来画面的块的线性组合来预测每个画面。在此使用的块可以指的是n×n(例如,8×8)阵列的像素值,或者指的是包含色度和亮度信息的离散余弦变换(DCT)、修改的DCT(mDCT)或其他傅立叶类的变换值。应当注意,块不必须是正方形尺寸的,例如,它们可以是16×8、8×4或4×8尺寸的。也可以在同一编码单元中考虑具有例如16×16和8×8的不同大小的块的组合。预测补偿在块级别上的平移(或其他)运动和照度改变。MEMC框架可以可选地收集关于源画面方差、亮度和色度、纹理以及边缘信息的信息。这样的信息在内部被处理,并且可以用于估计未来画面的复杂度,以便可以优化比特分配。
在一个实施例中,使用特定的布置来改善压缩视频的质量。例如,使用以上在一般概述部分中所述的与包括改变QP的5步骤码率控制算法有关的码率控制方法,以获得经压缩的图像序列的不同类型编码单元的比特率和质量统计数据。在这个实施例中,可以对其他编码单元类型使用另外的码率控制模型,实质上不考虑对复杂度的影响。另外的模型的使用允许精确的码率控制,这可以减少延迟。为了实现高的压缩效率(例如,针对相同数目的比特最大化视觉质量),除了选择良好的编码参数之外,谨慎地选择被分配给每个编码单元类型的总比特率的比例。使用所收集的这样的比特率和质量统计数据来导出最佳的码率分配,该最佳的码率分配可以然后由码率控制模型使用来改善给定目标比特率下的视觉质量。因此可以加速码率控制模型初始化和收敛,这可以改善图像质量或一致性。
在一个实施例中,在此和上面所述的技术被应用于将初始视频比特流转码为最终的视频比特流。转码的原因可以包括导出新的比特流,所述新的比特流具有与原始比特流相比较不同(有时更低)的缓冲和带宽使用、在分辨率和/或帧率上的改变、在特定环境内的编码工具的可用性等。在一个实施例中,原始画面的比特率和质量关系被计算并应用到新创建比特流的码率控制,这可以改善图像质量并降低复杂度。
应当理解,在一个实施例中,存在三种参数:(a)限定每个码率控制模型及其行为的码率控制模型参数(QP线性或二次模型的系数、平均头比特等);(b)通过应用某个码率控制模型和比特或质量约束(例如,QP)而产生的编码参数;以及(c)转换或比例调节参数,所述转换或比例调节参数(i)将来自一个编码单元的编码参数转换为另外的参数,或者(ii)将与一个编码单元对应的码率控制模型参数转换为另外的参数。
一个实施例具有以下部件:
(a)视频编码器;
(b)可选地,运动估计和补偿框架(MEMC);
(c)可选的空间统计数据分析模块;
(d)用于保存模型状态和进行判定的一个或多个码率控制模块;
(e)用于从编码过程收集有益统计数据的多个统计模块;
(f)可选的统计模块,其从运动估计和补偿框架收集统计数据;以及
(g)判定模块,其将来自可选的MEMC预处理器(如果可以获得)与视频编码器的统计数据融合,并向码率控制模块提供反馈。
一个实施例具有以下部件:
(a)视频编码器;
(b)可选地,运动估计和补偿框架;
(c)可选的空间统计数据分析模块;
(d)用于保存模型状态和进行判定的一个或多个码率控制模块;
(e)用于从编码过程收集有益统计数据的多个统计模块;
(f)可选的统计模块,其从运动估计和补偿框架收集统计数据;以及
(g)判定模块,其将来自可选的MEMC预处理器(如果可以获得)与视频转码器的统计数据融合,并向码率控制模块提供反馈。
在此所述的实施例包括:
1.第一技术(在下面在2.0.1节 示例第一技术-码率控制建模中描述)允许用于对用不同编码单元类型编码的序列的精确码率控制,而无需为所有编码单元类型保存单独的码率控制模型。通过从视频编码器和运动补偿时间滤波器(MCTF)预处理器收集统计数据来推动这样的技术。
2.第二技术(在下面在2.0.2节 示例第二技术-收集统计数据中描述)可选地从运动估计和补偿框架或者多轮次编码器的第一或随后轮次收集统计数据,并使用所述统计数据来改善现有的码率控制方法,从而增强画面复杂度估计并有助于检测诸如褪色的场景类型,这可以帮助优化码率分配。应当理解,在此和下面针对这样的第二技术来描述的算法也可以用于增强第一技术。
3.第三技术(在下面在2.0.3节 示例第三技术-比特分配中描述)使用由第一技术产生的统计数据来与多个码率控制模型相结合地最佳地分配比特,每个编码单元类型一种码率控制模型。这样的技术可以获得良好的压缩效率,同时保持精确的码率控制。
4.第四技术(在下面在2.0.4节 示例第四技术-转码中描述)使用来自三种在前技术(在2.0.1、2.0.2和2.0.3节中)的原理来在转码期进行有效的码率控制。
2.0.1示例第一技术-码率控制建模
一个实施例在压缩图像序列时提供有效和低复杂度的码率控制,所述图像序列使用具有复杂的和多个编码依赖性的运动补偿预测结构,比如如上所述的在图8-11中所示的结构。诸如在图8-11中描述的复杂结构可以包括多种编码单元。这样的复杂度可能影响保持每个编码单元类型不同的码率控制模型的实用性。对于N个编码单元类型,保存与N个编码单元类型中的M个编码单元类型对应的同一数目M个码率控制模型。对于剩余的N-M个编码单元类型,利用从编码所述N个编码单元类型收集的统计数据来近似对应的码率控制模型。最初,采用任意模型来导出用于控制比特率使用的编码参数(例如,QP、拉格朗日λ、阈值参数等)。首先,使用特定编码单元类型的统计数据来更新任意模型,然后使用比特目标T(j)作为输入来确定用于控制比特率使用的编码参数。一个实施例将从M个编码单元类型中的至少一个编码单元类型导出并且与该至少一个编码单元类型对应的码率控制模型转换为与N-M个编码单元类型之一对应的码率控制模型。这样的转换包括:修改重要的码率控制参数,诸如比特目标T(j)、复杂度估计(例如SAD)以及头比特bheader(j)的估计值。
在一个实施例中,通过在视频编码器和/或MEMC框架上收集一批空间-时间统计数据来方便转换。这种收集的统计数据可以包括但是不限于:
(a)在视频编码器上利用运动补偿预测或帧内预测而得到的在当前块和预测块之间的预测误差(例如,SAD);
(b)在MEMC框架上使用多个运动补偿预测的线性组合而得到的在当前块和预测块之间的预测误差(例如,SAD);
(c)源信号的亮度和/或色度分量的方差;
(d)用于编码当前基本单元(或画面)的比特的总数;
(e)被花费用于将当前基本单元(或画面)的纹理编码的比特数目;
(f)被花费用于将当前基本单元的头和语法信息编码的比特数目;
(g)运动参数(例如,平移、仿射或某个高阶模型)和可以从所述参数计算出的统计数据,诸如第一和第二距;
(h)基本单元的加权系数,其通过使用加权预测以导出当前块的预测块而被导出;以及
(i)编码单元类型
可以参考图12来描述一个实施例,图12是示出利用经转换的码率控制模型的编码的流程图(1200)。图12的处理可以包括下面的步骤:
1.(1202)初始化视频编码器。视频编码器使用N个编码单元类型来编码输入画面。建立、初始化并缓冲M个码率控制模型。当前画面索引j被初始化为0。
2.(1242)如果这是在图像序列中的第一画面,则用特定的或是反复地被确定的编码参数(例如QP)来编码第一画面,以满足码率约束。如果编码单元类型对应于M个缓冲的码率控制模型之一,则更新该图像所属的对应的码率控制模型,并在为该编码单元类型保留的统计数据缓冲器中缓冲包括所花费的比特的数目的统计数据。对于所有编码单元类型,将编码数据标准化为相同的编码参数(例如,QP)。
3.如果这不是第一画面,则查看编码单元类型(1204)。
(a)如果该画面是在序列中的具有特定编码单元类型的第一画面,则使用初始的一组编码参数(例如,QP)来编码该第一画面。这些编码参数可以被任意地选择、估计(在给出关于编码单元的某些初步的、基本的或完全的信息的情况下)或被反复地选择。或者,使用在上面的步骤2收集的信息来估计用于当前编码单元的编码参数。在一个实施例中,在还没有确定画面之间的精确关系时,用表示平均视频序列的行为的值来初始化这样的关系。例如,反映P编码的画面是B编码的画面的子集的信息因此用于将QP相应地适应于B编码的画面。在这种情况下,例如提高QP。例如,画面之间的关系与通过编码或分析视频序列的第一画面而收集的统计数据组合,以获得该画面的良好的初始QP。如果编码单元类型对应于M个缓冲的模型之一,则更新与所述图像所属的编码单元对应的码率控制模型。不管编码单元类型如何,都在与该编码单元类型相关联的统计数据缓冲器中缓冲一批统计数据,所述统计数据包括所花费的比特数目和在编码后结果产生的失真。
(b)否则,编码器确定编码单元类型是否对应于缓冲的M个模型之一或N-M个丢失模型之一(1204)。在第一种情况下,当编码单元类型对应于缓冲的M个模型之一时(1206,1208,1210),选择适当的现有模型来提供用于当前画面的编码参数(1216,1218,1220)。将当前画面(或切片)编码(1226,1228,1230)。然后,更新与所述图像所属的编码单元对应的码率控制模型。在后一种情况下,编码单元类型对应于N-M个丢失模型之一(1212或1214),处理统计数据缓冲器中针对每个编码单元类型收集的数据,以产生转换(1222,1224)。这样的转换将诸如比特目标T(j)和头比特的估计值bheader(j)等编码参数从缓冲的M个模型之一(或其组合)转换为适合于用于N-M个编码单元类型的编码参数(1222,1224)。使用结果产生的编码参数来编码画面(1232,1234)。各种编码单元类型在与该编码单元类型相关联的统计数据缓冲器中缓冲多个统计数据,所述统计数据包括所花费的比特的数目。
4.在编码当前画面之后,统计数据缓冲器中的数据被处理以捕获最近的图像统计数据。
5.编码器确定是否还有画面要编码(1238)。如果是,则当前画面索引j增加(1240),并控制进行到步骤2。否则,可以结束编码。
参见图2,一个实施例使用码率控制模型(200)。例如,可以使用rho域码率控制算法作为码率控制模型。码率控制判定模块(210)将目标比特的数目作为输入,该目标比特的数目诸如是纹理比特的数目(202)和头比特的数目(204)、画面复杂度的估计值(例如SAD)(206)和所使用的编码模式(208)。码率控制判定模块(210)输出编码参数,诸如QP(214)、编码模式(216)、跳帧(218)以及拉格朗日参数λ(220)等。另外,这样的输出编码参数(也称为码率控制模型参数)被存储在码率控制存储器(212)中。在一个实施例中,当使用多个编码参数(例如,QP)来编码画面时,可以将输出编码参数计算为这样的多个(粒度)编码参数的算术平均(平均值)、加权平均值、中值或非线性组合。在另一个实施例中,如果编码器使用多个编码单元来编码具有多个切片的单个画面,则可以将输出编码参数计算为这样的多个(粒度)编码参数的算术平均(平均值)、加权平均值、中值或非线性组合等。
在视频编码器的一个实施例中,预测结构并且因此编码单元以规则或不规则的间隔被适配,以获得与视频序列的基础统计数据的较好匹配。编码单元的数目和类型可以改变,这可能影响所保存的码率控制模型和编码单元转换。以下描述两个示例情况:
(a)没有任何保存的模型或统计数据的新编码单元。在这种情况下,通过将先前保存的码率控制模型转换为新的码率控制模型来初始化新编码单元的码率控制模型(缓冲的或近似的)。该转换也使用特定关系(例如,在给定QP的情况下,B编码的画面可以使用平均而言比P编码的画面更少的比特)。应当理解,在在此和下面的2.0.2节“示例第二技术-收集统计数据”中更详细地描述了可以被应用用于这些转换的算法。
(b)在先前结构中也存在的具有新结构的编码单元。在这种情况下,先前收集的统计数据和码率控制模型被适配用于新结构。
在一个实施例中,识别当前画面的编码类型。例如,将当前画面的编码类型识别为I、P和B编码的画面。如果当前画面是B编码的画面,并且这个画面不是锚画面(例如,在级别0内),则确定分级级别l。在图8中描述了具有三个分级级别和二进制分解结构的示例分级B编码画面结构。根据可获得的分级级别的最大数目,可以通过调整要被解码的最高期望级别来控制经解码的视频序列的时间分辨率。例如,如果仅解码在图8中属于时间级别0的画面,则可以再现具有1/4时间分辨率的图像序列版本。如果解码了属于级别0和1的画面,则可以单独以级别0的分辨率的两倍(例如,原始分辨率的一半)来显示图像序列。通过解码所有的时间级别,可以以原始时间分辨率来显示图像序列。作为另一示例,设编码单元类型的数目N=3并且码率控制模型的数目M =1(P编码的画面)。如果编码器使用P编码的编码单元来编码当前画面,则现有的码率控制模型可以用于等式2的比特目标。然而,如果编码器使用I编码或B编码的编码单元来编码当前画面,则按比例调整最终的比特目标T(j)以考虑从P编码的画面统计数据导出如上所述的线性SAD模型以及二次QP模型。为了针对这个视差进行比例调整,引入比例调整参数和θI,以导出的下面的码率分配:
在这个实施例中,码率控制模型涉及P编码的画面。根据I编码的画面和B编码的画面所属于的时间级别l和特性来估计I编码的画面的比例调整参数θI和B编码的画面的在一个实施例中,码率控制模型涉及I编码的画面,并且估计分别用于B编码和P编码的画面的比例调整参数和θP。应当理解,用于将比特目标T(j)按比例调整到P编码的画面码率控制模型目标Tfinal(j)的函数和fI()可以是视频统计数据的任何函数。
在一个实施例中,Nbuffer表示在统计数据缓冲器中被缓冲作为编码历史数据的结果的数目。在缓冲用于编码画面的比特的数目之前,这样的数目被标准化为同一量化参数值QPNORM。应当理解,将比特标准化为同一量化参数值是整体的,这可以帮助产生在不同编码单元之间的不再依赖于量化参数值的比特率比率。例如,假定使用b个比特来用编码具有平均画面QP值QPave的画面。还假定,对于H.264/AVC的情况,比特比QP系数是大约fQP=1.125。则标准化的比特值bNORM被计算如下:
换句话说,根据上面的实施例,如果平均QP值与QPNORM不同,则比特数目被标准化。否则,比特数目保持不变。
参见图13,示出了用于估计不同类型编码单元的比特率关系的实施例(1300)。设BitsI(i)和RatioI(i)表示大小为Nbuffer的两个统计数据缓冲器,它们存储(a)用于编码I编码的画面的比特的标准化数目,以及(b)用于将画面编码为帧内的比特的标准化数目与用于将画面编码为P编码的画面的比特的标准化数目的比率,该比率被用作比例调整参数。类似地,设和表示大小为Nbuffer的两个统计数据缓冲器,它们存储用于将画面编码为B编码的画面的比特的标准化数目,以及用于针对给定的时间级别l将画面编码为B编码的画面的比特的标准化数目与用于将画面编码为P编码的画面的比特的标准化数目的比率,该比率被用作比例调整参数。设表示大小为Nbuffer的统计数据缓冲器,其存储作为参数用于编码P编码的画面的比特的标准化数目。仍然参考图13,用于估计不同类型编码单元的比特率关系的实施例包括下面的步骤:
1.(1302)将具有用户预定义值的比特率比例调整参数和θI初始化为和θI(0)。参数NI,c、NP,c和分别是在分级级别l的经编码的I编码、P编码和B编码画面的数目,并且被设置为0。正被编码的画面的计数j被设置为0。进行到步骤3。
2.确定编码单元类型(1306)。如果当前画面被编码为I编码的画面,则进行到步骤3。否则,如果当前画面被编码为P编码的画面,则进行到步骤4。否则(B编码的画面),进行到步骤5。
3.(1308)将经编码的I编码画面的数目NI,c增加1。标准化所花费的用于编码当前画面的比特的数目,例如如等式4中所述,并在I编码的画面比特统计数据缓冲器中存储所花费的用于编码当前画面的比特的数目(1310)如下:BitsI(NI,c mod Nbuffer)=b(j)。接下来,将这个数目除以在P编码的画面比特统计数据缓冲器中缓冲的所花费的用于编码最后的P编码画面的比特的数目(1312),并在I编码的画面比特比率统计数据缓冲器中存储结果如下:
通过计算作为所存储的比特比率的平均值的θI来估计I编码的画面的比例调整参数θI(1314):
进行到步骤6。
4.将经编码的P编码画面的数目NP,c增加1(1316)。标准化所花费的用于编码当前画面的比特的数目,并在P编码的画面比特统计数据缓冲器中存储该数目如下(1318):BitsP(NP,c mod Nbuffer)=b(j)。进行到步骤6
5.这个处理类似于在步骤2中用于I编码的画面的处理。对于给定的时间级别l,执行以下动作。将经编码的B编码画面的数目增加1(1320)。标准化所花费的用于编码当前画面的比特的数目,并在B编码的画面比特统计数据缓冲器中存储该数码如下(1322):然后,将这个结果除以在P编码的画面比特统计数据缓冲器中缓冲的所花费的用于编码最后的P编码画面的比特的数目(1324):
进行到步骤6。
6.将计数j增加1(1328),并且编码第j个画面。确定是否还有画面要编码(1330)。如果否,则结束算法(1332)。否则,进行到步骤2。在特定实施例中,与在以上推导中的P编码的画面等同地考虑SP编码的画面。
2.0.2示例第二技术-收集统计数据
如上所述,第一技术使能多个编码单元类型的精确码率控制,而不需要为视频序列中的所有可能类型的编码单元保存和更新码率控制模式。如在该节中所述,第二技术使用从MEMC框架和空间分析器或先前编码轮次收集的空间-时间统计数据来改善码率控制。诸如混合线性/二次码率控制算法等的码率控制算法可以使用当前画面的复杂度的良好估计值(例如,运动补偿预测误差)。在一个实施例中,通过执行画面的多轮次编码来获得高性能解决方案。通过执行画面的多轮次编码,码率控制模型在每一个编码轮次访问逐步更精确的编码统计数据。在一个实施例中,可以通过缓冲、重用和细化在前一个编码轮次期间导出的运动参数来减小当前轮次的运动估计复杂度。
一个实施例改善了码率控制,如参考图7所述。图7是图示被用作预分析级的运动补偿时间滤波器的示意图(700)。运动估计和运动补偿框架(702)与空间统计数据分析模块(704)用于产生到码率控制模块(706)的输入,如图7中所示,所述码率控制模块(706)改善码率控制。为了完整,还图示了用于产生经压缩的比特流的视频编码器(708)和可选的缓冲器(710)。缓冲器710延迟视频编码器(708)的输入画面(原始的或经滤波的)。空间统计数据分析模块(704)计算空间统计数据,例如:
(a)亮度和色度分量的DC值(平均值)和方差;
(b)频率内容(DCT、mDCT或小波变换的系数);以及
(c)利用诸如索贝尔滤波(Sobel filtering)等的工具的边缘信息。
可以参考图14来描述一个实施例,图14是图示用于改善码率控制和优化码率分配的算法的流程图(1400)。初始化码率控制模型(1402)。分析每一个输入编码单元的空间-时间统计数据(1404),以方便选择用于编码特定编码单元的码率控制模型,所述空间-时间统计数据从MEMC框架或从多轮次视频编码器的先前编码轮次导出。使用这种分析数据来确定这种编码单元的特定场景类型(1406)。当场景类型是第一复杂度类型时,编码器选择更适合于这种场景类型的码率控制模型(1408)。当场景类型是第二复杂度类型时,编码器调整默认的码率控制模型的参数(1410)。当场景类型是正常类型时,编码器选择默认的码率控制模型(1412)。当选择了用于特定编码单元的码率控制模型时,编码器执行码率控制(1414)。编码器确定在输入视频中是否还存在编码单元(1416)。如果否,则编码结束(1418)。否则,控制返回到分析编码单元(1404)。
参见图7,码率控制模块(706)从MEMC框架(702)和空间分析模块(704)接收信息。应当理解,这样的空间-时间分析模块共享用于优化操作的信息。在一个实施例中,MEMC框架(702)执行单预测和双预测运动估计和补偿,其中包含过去的和可选的未来的画面。另外,可以从来自多个参考画面的运动补偿预测的线性或非线性组合来预测画面。
在一个实施例中,MEMC框架(702)计算画面之间的运动补偿预测误差(例如SAD),如图5和6中所示。应当理解,可以利用过去和未来的画面来计算预测误差。图5使用运动补偿时间滤波器(MCTF,506,508,510)和来自过去的一个参考502。例如,图5图示使用单个在前参考画面502的SAD计算500。当前画面504和在前画面502被输入到运动估计模块506。运动估计模块506使用向运动补偿模块510提供的一组运动向量508来表示一个或更多个块的运动。运动补偿模块510对在在前参考帧502中的一个或更多个块应用运动向量508,以产生预测画面512。预测画面512是在基于运动向量508和在前参考画面502的当前画面504中所示的图像的表征。误差预测模块514确定在预测画面512和当前画面504之间的差,并将该差表达为平均绝对差。
图6使用MCTF(606,608,610)以及来自未来的两个参考602和604。例如,图6示出使用多个随后参考画面602和604的SAD计算600。当前画面504、第一随后参考画面602和第二随后参考画面604被输入到运动估计模块606。运动估计模块606使用向运动补偿模块610提供的一组运动向量608来表示一个或更多个块的运动。运动补偿模块610对在第一和第二随后参考画面602、604中的块应用运动向量608,以产生预测画面612。预测画面612是在基于运动向量608以及第一和第二随后参考画面602、604的当前画面504中所示的图像的表征。误差预测模块614确定在预测画面612和当前画面504之间的差,并且将该差表达为平均绝对差。
在一个实施例中,运动估计和补偿方法使用加权预测。在另一个实施例中,运动补偿预测可以是在图像序列中的任意点的不同画面中的单个块或者属于相同或不同画面的块的线性组合。应当理解,MEMC框架(702)采用的运动模型可以是任何可用的模型,诸如平移、仿射或抛物线运动模型。在MEMC框架上的预测误差(例如,SAD)然后被编码器用于更精确地估计在视频编码器上的当前预测误差SADcurr。例如,可以将线性SAD模型替换为下面的直接计算:
一个实施例使用空间方差来代替预测误差(SAD)。当复杂度和延迟约束妨碍运动估计和补偿时,空间方差可以是有益的。因此,等式5被一般化为:
errcurr=func(errprev,MEMC,spatial analyzer) (6)
例如,根据先前经编码画面的预测误差以及由MEMC框架和空间分析器收集的统计数据来估计预测误差,该预测误差可以包括:
(a)来自运动补偿框架的预测误差值;
(b)平移运动向量值;
(c)加权预测权重和偏移;以及
(d)诸如仿射或抛物线模型的高阶运动模型的运动参数。
在一个实施例中,通过MEMC框架来估计诸如权重和偏移的加权预测参数。这样的估计值可以用于改善在视频编码器上的画面复杂度估计。示例平移运动补偿预测如下:
不管局部像素运动补偿预测如何,在画面n中的块中的像素pn(i,j)可以被预测为在画面n-r中的移位块,其开始的左上坐标在水平维度上移位vx像素,并且在垂直维度上移位vy像素。对(7)应用加权预测产生:
其中,w和o表示加权预测的权重和偏移参数。例如,将运动补偿预测乘以权重,并加上偏移。
应当理解,MEMC框架与视频编码器的运动补偿架构可以不同。另外,在编码器上和MEMC框架上产生的预测误差值可能不是直接可比较的。预测误差值的这种差异可能由于多种原因而发生,所述原因包括用于基于块的运动补偿预测的不同块大小、不同的运动模型(例如,仿射、抛物线、平移等)、不同的快速运动估计算法、不同的加权预测参数估计算法、预测参考的量化失真等等。考虑到视频编码器的运动补偿预测的局限性,一个实施例使用在MEMC框架上估计的运动模型参数来修改码率控制参数。在一个实施例中,基于运动模型参数相对于从MEMC接收的信息的偏离(例如,使用两者之间的差量度)或来自从第一或随后的编码轮次(例如,多编码轮次中的先前轮次)接收的信息的编码统计数据相对于来自编码器的运动模型参数的偏离(例如,使用在两者之间的差量度)而修改码率控制参数。应当理解,MEMC框架的运动模型可能比在特定视频编码器中执行的运动模型更复杂和更精确。
利用现有技术的H.264/AVC视频编码标准而工作的一个实施例使用估计的加权预测偏移来修改预测误差值的估计值。例如,当编码器使用H.264/AVC基本规范来编码画面时,视频编码器可以仅使用I编码和P编码的画面。在另一种情况下,编码器可以避免使用B编码的画面或加权预测来节省计算资源,并且避免可能的语法相关的约束。尽管等式7的平移运动模型可以有效地处理平移运动(例如,在二维框架中的水平和/或垂直运动),但是全局照度改变可能损伤同一平移模型。在没有加权预测的情况下,例如对于场景过渡,等式8可能不最大化编码效率,该场景过渡包含全局或局部照度改变,诸如交叉淡化、快闪、渐显和渐弱。在一个实施例中,当两个块的平均亮度相同时,设平移运动的SAD误差是e。假定除了平移运动之外,照度平均提高dc。然后,当不可获得加权预测时,预测SAD误差提高到大约e+dc。应当理解,可以采用相对于等式8的偏移o来补偿全局照度改变,并且将误差降低到更接近e。然后,MEMC框架可以估计偏移值偏移值然后可以被馈送到SAD估计器,以改善当前SAD值的估计值。例如,当前的SAD值被计算为:
在一个实施例中,MEMC框架可以用在不同的配置中以改善码率分配和码率控制。可以参考图3描述一个实施例,图3是图示使用源自过去和未来的相邻画面的块的加权线性组合的对当前画面的运动补偿预测(MCP)300的示意图。MEMC框架使用一个过去画面302,即画面n-1和一个未来画面306,即画面n+1来作为运动补偿参考,以预测当前画面304,即画面n。应当理解,尽管可以从过去或未来画面预测当前画面204,但是也可以预测未来画面306即画面n+1的复杂度。根据一个实施例,将从来自两个参考(302,306)的预测产生的失真值以及结果产生的运动向量作比较。可用于两个参考并且指向相同的画面的平移运动向量也是可修改的以进行进一步处理,这可以产生仿射运动向量。仿射运动向量的可用性可以增强码率控制。用于画面n+1的多个场景是可能的,包括:
(a)画面n+1类似于画面n,这可以容易地确定(例如,低预测失真值)
(b)画面n+1类似于画面n-1,这在一定程度上难以确定。用于确定这种情况的一种方式是将源自画面n+1和n-1的运动向量作比较。当具有照度考虑的这种运动向量在幅度上类似并且在方向上相反地出现(例如,相关)时,可以推断这两个参考是类似的,并且也许画面n表示暂时的遮挡(例如,障碍)或某种照度改变。此外,由MEMC框架收集的全局(画面级)和局部(块级)平均亮度和色度、源方差统计数据以及反映在两个参考图像之间的其他这样的复杂度关系的一个或更多个值(例如,两个参考图像的颜色直方图的绝对差的和)可以有助于确定画面n+1是否类似于画面n-1。在针对每一个预测参考的SAD之间的类似度也可以指示内容类似度。
(c)当未满足上述任何条件时,来自n+1至n的SAD预测误差可以指示两个画面是类似还是不类似。
参考图4来描述一个实施例,图4是图示MCP 400的示意图。MCP400缓冲未来的画面,并因此可能引入一定程度的延迟。从每一个预测方向上的两个参考画面预测要编码的当前画面n 406,其中两个参考画面来自过去:画面n-2(402)和n-1(404),并且两个画面来自未来:画面n+1(408)和n+2(410)。四个运动补偿预测可以导致一个至四个预测(例如SAD)误差。从这样的SAD误差导出的信息可以有益于在用于画面n、n+1和n+2的码率控制模型和编码参数当中进行选择。例如,假定来自画面n+1的SAD大大地超过来自画面n+2的SAD。(但是,应当理解,MCP的较大的时间预测距离可能产生较大的SAD值)。SAD的这种差异可以指示改变,该改变可能是突然的,诸如影响画面n+1的照度改变或对象遮挡(障碍)。同时,画面n和n+2可以彼此相关。如果画面n-2和n-1也与n良好地相关,则可以增强相关。如果画面n-2和n-1不与n良好地相关,则画面n和n+2可能是隔开的闪光或暂时堵塞。可以评估更多的依赖性,诸如画面n+1与n-1之间的预测误差或运动以及画面n+2与n-1之间的预测误差或运动。这些评估可以较好地识别画面之间的关系。例如,在突然的堵塞或闪光的情况下,预测误差可能较大。然而,与暂时遮蔽相关联的这种突然堵塞或闪光的小段持续时间可能隐藏预测误差。可以分配较高的比特率以在这些画面之间保持画面质量。然而,暂时遮蔽可能避免将比特率提高到可以被应用来获得等同画面质量的值。即使当两个画面中的任何一个画面都不是另一个画面的参考时,并且可选地,在两个画面不共享共同的参考的情况下,也可以建立这两个画面之间的关系。当可以获得所有这些画面的统计数据(例如,来自MEMC模块、先前的编码轮次或在转码情况下在原始比特流信息内)时,这是可能的。例如,如果一个画面具有比另一个画面更大的空间方差或边缘内容,则可以相应地调整编码参数。通过比较预测误差,可以得出类似的结论。尽管未共享参考,但是如果预定义了诸如预测距离和预测类型等其他属性,或者可以将它们的特性建模,则可以建立可靠的关系。如在此使用的,从中导出这样的与当前画面相关的统计数据和预测参数的画面可以被称为当前画面的“锚”画面,而不论该锚是否实际上是参考画面。
一个实施例将已经针对给定编码单元类型建立的码率控制模型转换为以下的码率控制模型,所述码率控制模型中的每一个用于建模不同的编码单元类型。可以根据在如上所述的“示例第一技术-码率控制建模”一节中所述的第一技术,使用MEMC框架统计数据、先前的编码轮次和由视频编码器产生的统计数据来实现这样的转换。使用N个编码单元类型之间的关系来初始化码率控制模型,并且保证向最佳模型参数的快速收敛。N个编码单元类型中的每一个使用和更新其对应的码率控制模型。例如,假定在图像序列的开始,视频编码器在使用编码单元类型C和D之前多次使用编码单元类型A和B。在图像序列中的这样的点,用于类型A和B的码率控制模型已经获得相应模型参数的良好值。为了改善针对类型C和D的码率控制,使用已经比如通过在如上所述的“示例第一技术-码率控制建模”一节中所述的第一技术得出的关系,利用A和B的转换参数来初始化C和D的参数。或者,来自A和B的编码参数可以与用于近似A和B模型的C和D的编码参数混合。
例如,考虑等式1和2的线性和二次模型。码率控制模型包括参数α1、α2、c1和c2以及用于对具有同一编码单元类型的每一个画面的头信息进行编码的比特bheader的估计值。已经针对一种编码单元类型(例如,P编码的画面)导出的参数α1和α2通过下述方式被按比例调整为用于对不同的编码单元类型(例如,B编码的画面)建模的参数:将参数α1和α2与基于MEMC的双预测的SAD相乘,然后将乘积除以基于MEMC的单预测的SAD。这样的比例调整可以使用等式5的变化形式,例如:
其中,是使用利用MEMC框架的双预测对当前画面的预测的SAD值,而是使用利用MEMC框架的单预测对先前画面的预测的SAD值。来自等式2的参数c1和c2与SAD预测误差的估计值相乘。可以针对不同类型的编码单元使用视频编码器统计数据和MEMC框架来估计SAD。因此,参数c1和c2可以被按比例调整和用于编码不同的编码单元。比例调整参数以及在不同的编码单元中使用按比例调整的参数可以实现多个码率控制模型的快速初始化。当编码开始时,这些参数具有硬编码的一般值,并在每一个画面被编码之后被更新。然而,当使用多个(例如,3个)码率控制模型时,向着稳定或最佳值的参数收敛在一定程度上可以比当使用单个码率控制模型时更慢(例如,大约慢三倍)。为了阻止终端用户服务质量的变差,例如在新场景的开始,使用统计数据以另一个编码单元类型(例如,P编码的画面)的参数来初始化特定编码单元类型(例如,B编码的画面)的码率控制参数。应当理解,可以针对不同类型的编码单元的任意组合来实现使用另一个编码单元类型的参数来初始化特定编码单元类型的码率控制参数。
一个实施例涉及使用另一个编码单元类型的参数来初始化特定编码单元类型的码率控制参数,将参考图17来描述这个实施例。图17是图示混合和组合针对不同编码单元(例如,画面)类型产生的经转换的码率控制模型的流程图(1700)。视频编码开始(1702),并且初始化用于P、B和I编码的画面类型的码率控制模型并将当前画面索引j初始化为0(1702)。视频编码器确定当前画面的编码单元类型(1704)。当当前画面是I编码的画面时,编码该画面(1706)。视频编码器然后确定用于I编码的画面的码率控制模型是否收敛(1712)。如果是,则更新用于I编码的画面的码率控制模型(1716)。如果否,则更新用于I编码的画面的码率控制模型,并将该模型与用于P编码的画面的经转换的码率控制模型混合(1718)。当当前画面是B编码的画面时,利用从B编码画面码率控制模型导出的编码参数来编码画面(1708)。视频编码器然后确定用于B编码的画面的码率控制模型是否收敛(1714)。如果是,则更新用于B编码的画面的码率控制模型(1720)。如果否,则更新用于B编码的画面的码率控制模型,并将该模型与用于P编码的画面的经转换的码率控制模型混合(1722)。当当前画面是P编码的画面时,利用从P编码画面码率控制模型导出的编码参数来编码该画面(1710)。更新用于P编码的画面的码率控制模型(1724)。视频编码器确定是否还有画面要编码(1728)。如果是,则将索引j增加1,并且控制返回到确定编码单元类型(1704)。否则,视频编码结束(1730)。
一个实施例使用多过程视频编码器,并以视频编码器的第一或先前的轮次来替代或增强MEMC框架。视频编码器的第一或先前的轮次可以提供统计数据。
2.0.3示例第三技术-比特分配
用于码率控制和码率分配的技术的一个实施例采用在在此和上面所述的第一技术中提供的方法的一部分来使能低延迟的视频通信,同时实现经压缩比特流的高视觉质量。第一技术改善了码率控制算法的稳定性和性能,第二技术使用MEMC框架或多轮次编码统计数据以进一步改善码率控制。在这一节中描述的第三技术处理码率控制和码率分配。码率分配设置每一个画面的比特目标;码率控制使画面的编码参数(其可包括特定的比率值)适合于获得比特目标。可以以多种方式来完成码率分配和码率控制,在此和在下面描述码率分配和码率控制的示例。
在一个实施例中,例如,象根据如上所述的第一技术那样,码率控制使用N个编码单元类型来编码图像序列,并且缓冲M个码率控制模型。例如,第一技术被应用并产生在所有N个编码单元类型的复杂度与比特率使用之间的关系。然后使用这样的关系来建立在以不同编码单元类型编码的画面之间的最佳比特率分配。所导出的比特目标然后与M个缓冲的码率控制模型和N-M个近似的模型一起被使用,以实现高效的码率控制。
在一个实施例中,码率控制使用N个编码单元类型来编码图像序列,并且缓冲N个码率控制模型。上述的第一技术被应用并产生在所有N个编码单元类型的复杂度与比特率使用之间的关系。然后使用这样的关系来建立在以不同编码单元类型编码的画面之间的最佳比特率分配。所导出的比特目标然后与N个缓冲的码率控制模型一起被使用,以实现高效的码率控制。尽管使用N个缓冲的码率控制模型可能引入一定程度的复杂度,但是它们可以增加比特率控制的精度,这在一些应用中是重要的。
一个示例实施例使用M个缓冲的码率控制模型,如参考图15所述。流程图(1500)图示在给定每个画面R个比特的整体目标并且使用单个码率控制模型的情况下的比特数目的确定,所述比特数目应当被分配给每一个画面类型以最大化压缩性能。视频编码器开始编码图像序列(1501)。视频编码器初始化用于P编码的画面的码率控制模型,设置I编码的画面(Ri)、B编码的画面(RB)和P编码的画面(RP)的目标比特值R,并将当前画面索引j初始化为0(1502)。视频编码器确定编码单元类型(1504)。当编码单元类型是I编码的画面时,视频编码器确定当前画面是否是要编码的第一I编码的画面(1506)。如果是,则获得特定的QP(1510),并编码当前画面(1520)。否则,应用用于P编码的画面类型的码率控制模型和用于I编码的画面的西塔(“θ”)比率θI(1512),并编码当前画面(1520)。应当理解,θ比率是可以用于从一种编码单元类型的比特数目获得另一种编码单元类型的比特数目的比例调整参数。视频编码器更新θI(1526)。当编码单元类型是P编码的画面时,视频编码器确定当前画面是否是要编码的第一P编码的画面(1508)。如果是,则获得特定的QP(1514),并编码当前的P编码的画面。否则,应用用于P编码的画面类型的码率控制模型(1516),并编码当前的P编码的画面(1522)。当编码单元类型是B编码的画面时,应用用于P编码的画面类型的码率控制模型和用于B编码的画面的θ比率θB(1518)。编码当前的B编码的画面(1524),并更新θB(1528)。视频编码器重新计算目标比特率RI、RB和RP(1530)。视频编码器确定是否还有画面要编码(1534)。如果否,则编码结束(1536)。如果是,则增加当前画面索引j(1532),并且控制返回到确定新的当前画面的编码单元类型(1504)。应当理解,这个实施例使用单码率控制模型,并且使用如上所述的第一技术的方法来导出θ比率。
一个实施例使用N个缓冲的码率控制模型。图16是图示在给定每个画面R个比特的整体目标并使用多个码率控制模型的情况下的比特数目的确定,所述比特数目应当被分配给每一个画面类型,以最大化压缩性能。视频编码器开始编码图像序列(1601)。视频编码器初始化用于P、B和I编码的画面的码率控制模型,设置I编码的画面(Ri)、B编码的画面(RB)和P编码的画面(RP)的目标比特值R,并将当前画面索引j初始化为0(1602)。视频编码器确定编码单元类型(1603)。当编码单元类型是I编码的画面时,视频编码器确定当前画面是否是要编码的第一I编码的画面(1604)。如果是,则获得特定的QP(1608),并编码当前的I画面(1618)。否则,应用用于I编码的画面类型的码率控制模型(1610),并编码当前画面(1618)。视频编码器更新θI(1624)。当编码单元类型是P编码的画面时,视频编码器确定当前画面是否是要编码的第一P编码的画面(1606)。如果是,则获得特定的QP(1612),并编码当前的P编码的画面(1620)。如果否,则应用用于P编码的画面类型的码率控制模型(1614),并编码当前的P编码的画面(1620)。当编码单元类型是B编码的画面时,视频编码器应用用于B编码的画面的码率控制模型(1616)。编码当前的B编码的画面(1622),并更新θB(1626)。视频编码器重新计算目标比特率RI、RB和RP(1628),并确定是否还有画面要编码(1632)。如果否,则编码结束(1634)。如果是,则增加当前画面索引j(1630),并且控制返回到确定新的当前画面的编码单元类型(1603)。应当理解,可以使用多个码率控制模型,并且利用在此和如上所述的第一技术的方法来导出θ比率。
图像序列可以具有不同的内容。例如,特定的图像序列在相当大程度上受益于使用B编码的画面,而其他图像序列可以未在任何相当大程度上受益于B编码的画面。考虑例如静态图像序列和高度运动的图像序列的低延迟传输情况。高运动序列可能使用大量比特(其比得上用于编码P编码的画面所花费的比特)用于编码B编码的画面,以便实现足够质量的目标。然而,相对于所花费的用于P编码的画面的对应比特,可以用少得多的用于B编码的画面的比特来以足够的质量编码静态序列。因此对于有显著差别的内容,固定的特定码率分配可能产生次佳的图像质量。在用于视频通信的码率分配的环境中,确定要花费多少比特因此可能是重要的。例如,优化确定可以是:与应当花费多少比特用于P编码的画面和/或I编码的画面相比,应当将多少比特花费在B编码的画面上。比例调整参数和θI产生与将多少比特用于编码与P编码的画面相同的画面相比,用于编码在l级的B编码画面和I编码画面的比特的比率,其中,以相同的编码参数(例如量化参数值QPNORM)来标准化所有的画面类型。这样的参数可以根据如上所述的第一技术来导出。这样的参数使得能够使用从图像序列收集的统计数据来适配原始预定义码率分配目标。例如,在给定观察到的比率或比例调整参数和θI的情况下,可以确定在给定每个画面R个比特的整体目标的情况下向每一个画面类型分配的用以最大化压缩性能的比特数目。
在一个实施例中,设γI表示向I编码的画面分配的比特的数目RI与向P编码的画面分配的比特的数目RP的比率。则RI=γI×RP。设表示比特的数目与向P编码的画面分配的比特的数目RP的比率,其中,l表示时间级别。则参数γI和被计算为比例调整参数θI和的函数,以便考虑向每一个画面类型分配的不同QP值(QPI、和QPP),以例如实现视觉质量。设置和计算参数γI和因此可以实质上为每一个图像类型计算比特数目。
在在解码器上接收I和P编码的画面的实施例中,应当理解,对于每一个KI画面,一个画面被编码为I编码的画面(帧内周期(intra period))。在两个连续的I或P编码的画面之间,NB画面被编码为B编码的画面。设L表示象在图8中那样的时间二进制分解级别的编号,而表示都属于NB中的级别l的B编码的画面的数目。使用下面的表达式来导出向P编码的画面分配的比特Rp(以及实际上和RI):
在一个实施例中,通过将比率调整为参考画面的平均QP或者经编码画面和经编码画面的预测参考画面的QP之差,来进一步扩展比率计算。因此,比率被表达为:或I编码的画面的比例调整参数θI不受影响,因为预测类型是帧内的,而不扩展到画面本身的边界之外(例如,不相对于其他画面调整帧内预测)。应当理解,等式9可以被应用到其中编码结构和帧内周期保持不变的视频序列。为了优化压缩效率,应当理解,帧内编码的画面的编码结构和***可以是自适应的。例如,可以在每次编码结构改变或***非周期性的帧内画面时计算等式9。在非周期性帧内画面***的情况下,应当理解,这样的计算可以不考虑该特定的帧内画面,例如,这样的计算可以有效地忽略该特定帧内画面。参数R用于考虑过度花费或花费不足的比特。参数γ是比例调整参数θ的函数,并且表征在编码单元之间的当前比特率关系。应当理解,如果在对序列进行编码的同时修改这样的编码结构,则这样的当前比特率关系可能受影响。例如,如果使用结构A来编码第一部分,使用结构B来编码第二部分,并且使用结构A来编码第三部分,则用于第三部分的参数γ与第一部分的参数γ相关。因此,期望缓冲用于第一部分的参数γ并使用这样的参数γ来初始化用于第三部分的参数γ。此外,如果编码结构A和B是类似的,则来自B的参数可以被转换为结构A参数,并用于在到达第三部分之前改进在第二部分中的结构A的参数。例如,如果可以从图像序列的远距离部分获得结构B的参数并且当前结构是B,则可以寻找更可靠并已被使用的类似结构的近期参数(例如,在码率-失真的意义上)。
在一个实施例中并参考图21A,可以利用包括下面步骤的过程来实现当在编码期间改变编码结构时处理θ比例调整参数:
步骤1:在编码结构切换时(2102),缓冲当前的θ比例调整参数,并用先前编码结构来标注缓冲的θ比例调整参数(2104);进行到步骤2;
步骤2:确定新的编码结构是否在以前被使用过(2106),如果是,则进行步骤3(2110),否则进行到步骤4(2108)。
步骤3:确定所使用的编码结构是否是可靠的(2110)。如果是,则用先前缓冲的与同一编码结构对应的θ比例调整参数来初始化新的θ比例调整参数(2114)。否则,新的θ比例调整参数未充分接近缓冲的参数,例如新的θ比例调整参数与缓冲的θ比例调整参数之间的差大于阈值,并且用经转换的缓冲参数来初始化新的θ比例调整参数,所述经转换的缓冲参数来自在比率-失真意义上类似的更近期的结构(2112)。在后一种情况下,例如,相对于当前结构来转换类似的结构。在一个实施例中,可选地混合经初始化的θ比例调整参数与从在比率-失真意义上最类似的结构类型缓冲的经转换的θ比例调整参数(2116)。进行到步骤5。
步骤4:用在比率-失真意义上最类似的先前使用的编码结构的θ比例调整参数来初始化新的θ比例调整参数(2108)。在该情况下,例如,相对于当前结构来转换类似的结构。进行到步骤5。
步骤5:结束编码结构转换处理(2118)。
在一个实施例中并参考图21B,可以利用包括下面步骤的过程来实现在编码期间更新θ比例调整参数:
步骤1:开始编码(2120)。初始化比率控制和θ比例调整参数(2122)。编码画面(2124),并遍历(例如,扫描通过)所存储的(例如,缓冲的)过去编码结构的参数(2126);
步骤2:对于所存储的每一个参数集,确定当前编码结构是否与所存储的参数集相同(2128);如果是,则进行到步骤3;否则,进行到步骤4;
步骤3:用当前画面的统计数据来更新所存储的θ比例调整参数(2132)。进行到步骤5。
步骤4:确定当前编码结构是否在比率-失真意义上类似于所存储的参数集(例如,新的θ比例调整参数与缓冲的θ比例调整参数之间的差是否大于阈值)(2130)。如果是,则用当前画面的经转换的统计数据(例如,θ比例调整参数)来更新在比率-失真意义上类似的结构的缓冲的θ比例调整参数(2134)。
步骤5:进行步骤2,直到已经考虑了所有所存储的参数集(2138)。否则,结束编码(2140)。
2.0.4示例第四技术-转码;
在这一节中描述的第四示例技术利用如上所述的第一和第二技术来改善转码。转码的示例是从一种数字编解码方式向另一种数字编解码方式转换。虽然可能在从比特流解码出的画面上应用MEMC框架,但是复杂度可能使这样做的成本增加。然而,经压缩的比特流可以提供可避免预分析的信息,就像对于MEMC框架或多轮次视频编码那样。
参考图18来描述涉及转码的示例实施例。图18是图示示例转码器1800的架构部件的示意图。经压缩的比特流进入视频解码器,并且完全或部分地被解码(1808)。完全或部分地出解码的画面被输入到三个可选模块。一个模块执行时间分析(1802),比如在MEMC框架中的时间分析。一个模块执行空间分析(1804),比如图7的空间统计数据分析模块。可以联合地或独立地执行空间和时间分析。而且,可以用空间-时间分析模块来执行空间和时间分析。可选缓冲器(1810)可以对于向视频编码器输入经解码的画面增加有用的延迟。来自码率控制模块(1806)的输入和可以可选地地被缓冲(缓冲器1810)的输入画面被发送到视频编码器(1812),以编码和压缩期望的比特流。
可以从经压缩的比特流得出信息。期望的信息可以包括:
(a)运动参数;
(b)加权预测参数;
(c)预测残差的经量化的变换系数或/和在逆量化和变换之后的预测残差;
(d)编码模式(帧内或帧间);
(e)量化参数(QP);以及/或者
(f)用于编码每一个块、切片或帧所花费的比特的数目。
预测残差信息与QP和用于表示画面的比特的数目一起也可以用于估计编码复杂度和/或预测误差量度(比如SAD)。包括帧内编码模式的编码模式可以产生有用的空间、时间或空间-时间信息。例如,帧内编码模式可以根据块中的内容(例如,用低或高频率分量表征的块内容)的鉴频来划分块。与被编码为帧间的块相比,在预测切片中被编码为帧内的块可以包括更多要压缩的比特。当码率控制基本单元处在一些宏块(MB)的量级并且例如小于画面时,这可能是重要的。这样的块可以例如属于新的对象。可以根据所使用的QP和用于编码画面的比特来计算该画面的编码复杂度。例如,可以将编码复杂度设置为量化步长大小与比特数目的乘积。通过从比特流中检测和观察块预测残差或量化的变换系数,可以如上所述地估计用于短码率控制基本单元的比特使用。这些估计值可以被组合以改善该画面的预测误差估计值,该预测误差估计值作为比特数目的加权平均乘以量化步长大小加上解量化的变换系数或经编码的预测残差的绝对和。与这些统计数据相关联的粒度允许在画面和/或块基础上进行这样的计算。也可以根据预测残差的绝对和估计预测误差SAD。运动和加权的预测参数可以用于在编码器上初始化相应的参数,但是也可以用作例如时间相关性和淡化场景过渡或局部照度改变的指示符。时间相关信息可以用于存储来自具有低时间相关性的画面(例如,具有高运动内容的帧)的比特。也可以在淡化过渡期间调整码率分配,这可以增强相对于“常规”场景的编码成果。在一个实施例中,首先估计原始比特流的比特率和质量关系。在用于转码阶段的码率控制处理期间,使用如上所述的前三种技术来初始化和适配每一个编码单元类型的码率控制模型,以实现视觉质量和码率控制模型的快速收敛。例如,如上所述的第一示例技术可以用于导出不同类型编码单元之间的关系。如上所述的第二示例技术可以用于适配不同编码单元类型的编码参数和模型参数,以促进更快的收敛和更好的质量。第三技术可以用于导出在不同编码单元类型之间的最佳码率分配,所述不同编码单元类型然后用于驱动码率控制模型。
应当理解,在此所述的技术和方法可以适用于现代视频编解码方式,诸如MPEG-2、H.264/AVC、VC-1和MPEG-4。
3.0实现机构
图19是图示其上可以实现本发明的实施例的计算机***1900的框图。计算机***1900包括:用于传送信息的总线1902或其他通信机构;以及与总线1902耦接以处理信息的处理器1904。计算机***1900还包括主存储器1906,诸如随机存取存储器(RAM)或其他动态存储装置,其耦接到总线1902以存储要由处理器1904执行的信息和指令。主存储器1906也可以用于存储在要由处理器1904执行的指令的执行期间的时间变量或其他中间信息。计算机***1900进一步包括只读存储器(ROM)1908或其他静态存储装置,其耦接到总线1902以存储处理器1904的静态信息和指令。诸如磁盘或光盘的存储装置1910被提供和耦接到总线1902以存储信息和指令。
计算机***1900可以经由总线1902耦接到显示器1912,诸如液晶显示器(LCD)、等离子体显示器或阴极射线管(CRT)等,以向计算机用户显示信息。包括字母数字和其他键的输入装置1914耦接到总线1902,以向处理器1904传送信息和命令选择。另一种类型的用户输入装置是光标控件1916,诸如鼠标、轨迹球或光标方向键,用于向处理器1904传送方向信息和命令选择,并用于控制在显示器1912上的光标运动。该输入装置通常具有在两个轴,即第一轴(例如,x)和第二轴(例如,y)上的两个自由度,这使所述装置可以指定平面中的位置。
本发明涉及用于实现在此所述的技术的计算机***1900的使用。根据本发明的一个实施例,由计算机***1900响应于处理器1904执行在主存储器1906中包含的由一个或更多个指令组成的一个或更多个序列来执行这些技术。这样的指令可以从另一个机器可读介质比如存储装置1910读取到主存储器1906中。在主存储器1906中包含的指令序列的执行使得处理器1904执行在此所述的处理步骤。在一些实施例中,硬连线的电路可以取代用于实现本发明的软件指令或与其组合。因此,本发明的实施例不限于硬件电路和软件的任何具体组合。
在此使用的术语“机器可读介质”指的是参与提供使得机器以特定形式工作的数据的任何介质。在利用计算机***1900实现的实施例中,例如在将指令提供给处理器1904以便执行的过程中涉及各种机器可读介质。这样的介质可以采取许多形式,包括但是不限于存储介质和传输介质。存储介质包括非易失性介质和易失性介质。非易失性介质包括例如光盘或磁盘,比如存储装置1910。易失性介质包括动态存储器,比如主存储器1906。传输介质可以包括同轴电缆、铜(或其他导体)线和光纤,其中包括包含总线102的导线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外线数据通信期间产生的声波或光波。所有这样的介质必须是有形的,以使得由介质承载的指令能够由用于将指令读取到机器中的物理机构检测到。
机器可读介质的常见形式例如包括软盘、柔性盘、硬盘、磁带或任何其他磁性介质、CD-ROM、任何其他光学介质、穿孔卡、纸带、任何其他传统或具有孔或暗色图案的其他物理介质、RAM、PROM和EPROM、闪速EPROM、任何其他存储器芯片或盒、如下所述的载波或者计算机可以读取的任何其他介质。
在承载给处理器1904执行的由一个或更多个指令组成的一个或更多个序列时可以涉及各种形式的机器可读介质。例如,最初可以在远程计算机的磁盘上承载指令。远程计算机可以将指令载入到其动态存储器中,并且使用调制解调器通过电话线来发送指令。计算机***1900本地的调制解调器可以接收电话线上的数据,并使用红外线发送器来将数据转换为红外线信号。红外线检测器可以接收在红外线信号中承载的数据,并且适当的电路可以在总线1902上布置数据。总线1902向主存储器1906传送数据,处理器1904从主存储器1906检索指令并执行指令。由主存储器1906接收的指令在被处理器1904执行之前或之后可以可选地存储在存储装置1910上。
计算机***1900还包括耦接到总线1902的通信接口1918。通信接口1918向连接到局域网1922的网络链路1920提供双向数据通信耦合。例如,通信接口1918可以是综合服务数字网络(ISDN)卡或数字用户线(DSL)、线缆或其他调制解调器(调制器/解调器),以向对应类型的电话线提供数据通信连接。作为另一示例,通信接口1918可以是局域网(LAN)卡,以向兼容的LAN提供数据通信连接。也可以实现无线链路。以任何这样的实施方式,通信接口1918发送和接收用于承载表示各种类型信息的数字数据流的电、电磁或光学信号。
网络链路1920通常通过一个或更多个网络向其他数据装置提供数据通信。例如,网络链路1920可以通过局域网1922提供到主计算机1924或到由因特网服务提供商(ISP)1926操作的数据设备的连接。ISP 1926继而通过现在通称为“因特网”的世界范围分组数据通信网络1928来提供数据通信服务。局域网1922和因特网1928都使用承载数字数据流的电、电磁或光学信号。用于承载来自或到计算机***1900的数字数据的、通过各种网络的信号和在网络链路1920上并通过通信接口1918的信号是传送信息的载波的示例形式。
计算机***1900可以通过网络、网络链路1920以及通信接口1918来发送消息和接收数据,包括程序代码。在因特网示例中,服务器1930可以通过因特网1928、ISP 1926、局域网1922以及通信接口1918来发送用于应用程序的所请求的代码。
所接收的代码可以由处理器1904在接收到该代码时执行,并且/或者被存储在存储装置1910或其他非易失性存储器内以便以后执行。以这种方式,计算机***1900可以获得以载波形式的应用代码。
4.0枚举的示例实施例
用于估计编码单元类型(例如,B编码的或I编码的)画面的量化因子的统计数据是从其他可能不同的(例如,P编码的)画面或先前经编码的编码单元确定的。这样的编码单元类型之间的比特率和质量关系可以与量化参数一起使用。估计编码单元类型之间的比特率和质量关系使得能够对画面进行精确的码率控制,不管与它们的编码单元类型如何。编码单元类型之间的比特率和质量关系可以与多个码率控制模型一起使用,以提高压缩比。可以使用由运动估计和补偿框架产生的统计数据来调整码率控制参数。可以在转码经压缩的比特流的过程中控制码率控制性能。
本发明的实施例因此可以涉及下面列出的枚举示例中的一个或更多个。
1.一种方法,包括:
从一个或更多个运动估计和运动补偿(MEMC)模块、空间统计数据分析模块、多个编码轮次中的第一编码轮次或先前轮次接收信息;
执行以下中的一个或更多个:
根据以下中的至少一个来估计当前画面的预测误差:
两个或更多个先前经编码的画面的预测误差;或
在所述MEMC收集的统计数据;以及
根据在所述空间统计数据分析模块收集的先前经编码的画面的空间方差来估计所述当前画面的空间方差。
2.根据枚举的示例实施例1的方法,其中,先前经编码的画面包括来自多个编码轮次中的所述第一编码轮次或所述先前轮次的信息。
3.根据枚举的示例实施例1的方法,其中,在所述MEMC收集的统计数据包括以下中的一个或更多个:
预测误差值;
平移运动向量值;
加权预测权重和偏移;以及
与一个或更多个高阶运动模型相关联的运动参数。
4.根据枚举的示例实施例1的方法,还包括:
基于由以下中的一个或更多个所采用的运动模型的偏离来修改码率控制参数:
一个或更多个先前的MEMC模块;或者
先前编码轮次的运动模型和编码统计数据以及针对当前编码轮次而采用的运动模型。
5.根据枚举的示例实施例1的方法,其中,所述估计的预测误差包括由所述MEMC模块估计的加权预测参数。
6.根据枚举的示例实施例1的方法,还包括:
使用至少一个过去画面或至少一个未来画面中的一个或更多个来作为一个或更多个经运动补偿的可用锚画面,以预测所述当前画面;
计算所述当前画面相对于所述锚画面中的一个或更多个的复杂度估计值;以及
利用两个或更多个预测参考,计算用于反映在所述可用的参考画面之间的复杂度关系的至少一个值。
7.根据枚举的示例实施例1的方法,还包括:
使用至少一个过去画面或至少一个未来画面中的一个或更多个来作为一个或更多个运动补偿参考画面,以预测所述当前画面;以及
在使用所述至少一个未来画面时,通过将与关联于所述至少一个未来画面的一个或更多个预测误差有关的信息与关联于所述至少一个未来画面的一个或更多个运动向量相比较,来计算估计的复杂度特征值;
其中,从自所述MEMC模块接收的信息中获得与所述一个或更多个预测误差有关的所述信息。
8.根据枚举的示例实施例4的方法,还包括:
使用在来自从所述MEMC接收的信息或第一轮次或先前轮次编码统计数据的运动模型参数和与编码器有关的运动模型参数之间的差量度来修改所述码率控制参数。
9.一种方法,包括:
接收编码结构、一个或更多个编码单元的比例调整参数以及每所述一个或更多个编码单元每画面的比特目标;以及
使用以下中的任何一个来计算向所述一个或更多个编码单元中的每个编码单元分配的比特的数目:
所述编码结构;
比例调整参数;以及
比特目标。
10.根据枚举的示例实施例9的方法,其中,计算所述比特的数目还包括:
根据所述比例调整参数来计算新的参数,并使分配给所述一个或更多个编码单元中的第一编码单元的量化参数(QP)值与分配给所述一个或更多个编码单元中的第二编码单元的QP值不同。
11.根据枚举的示例实施例9的方法,还包括:
通过使用参考画面的平均QP值或通过使用与当前画面对应的编码画面的QP值和与所述当前画面对应的预测参考画面的QP值之间的差来调整所述比例调整参数。
12.根据枚举的示例实施例9的方法,还包括:
接收一个或更多个新的编码结构或***的非周期性帧内画面;以及
重新计算要分配的比特的数目。
13.一种方法,包括以下步骤:
在用于N个编码单元类型的视频编码器上接收当前画面;
其中,所述视频编码器包括M个码率控制模型,其中,所述数目N大于所述数目M;以及
使用以下中的一个或更多个来编码所述当前画面:
特定信息;
来自所述M个码率控制模型中的至少一个码率控制模型的一个或更多个编码参数;或者
通过转换来自所述M个码率控制模型中的所述至少一个码率控制模型的所述一个或更多个编码参数中的至少一个编码参数而获得的一个或更多个编码参数。
14.根据枚举的示例实施例13的方法,其中,所述当前画面包括在图像序列中的第一画面;
其中,所述编码步骤包括使用满足一个或更多个速率约束的编码参数的步骤;
其中,表征所述当前画面的编码单元类型对应于所述M个码率控制模型中的一个码率控制模型;以及
其中,在编码所述当前画面时,所述方法还包括以下步骤:
更新M个码率控制模型中对应的一个码率控制模型;
收集与所述第一画面有关的统计数据;以及
缓冲所述收集的统计数据。
15.根据枚举的示例实施例14的方法,其中,所述当前画面包括在所述图像序列中的所述第一画面之后被编码的画面;并且
其中,所述编码步骤还包括以下步骤:
确定表征所述当前画面的编码单元类型;以及
当所述当前画面包括具有所述确定的编码单元类型的第一画面时,将所述特定信息关联到所述当前画面;
其中,所述增加的特定信息包括以下中的一个或更多个:
至少一个比例或转换参数;
至少一个重复地估计的编码参数;或
所述收集的统计数据。
16.根据枚举的示例实施例15的方法,其中,所述当前画面包括在具有所述确定的编码单元类型的所述第一画面之后的画面;并且
其中,所述编码步骤还包括以下步骤:
确定与所述确定的编码单元类型对应的码率控制模型;以及
当所述确定的码率模型是所述M个码率控制模型中的一个码率控制模型时,使用所述确定的码率控制模型的一个或更多个码率控制模型参数;以及
更新所述确定的码率控制模型。
17.根据枚举的示例实施例16的方法,其中,所述确定的码率模型不是所述M个码率控制模型中的一个码率控制模型;并且
其中,所述编码步骤还包括以下步骤:
导出所述确定的码率控制模型。
18.根据枚举的示例实施例17的方法,其中,所述导出步骤包括以下步骤:
处理针对所述编码单元类型中的每个编码单元类型而收集的所述缓冲的统计数据;
转换来自所述M个码率控制模型中的至少一个码率控制模型的参数;
基于所述转换步骤来产生所述经转换的参数;
向所述当前画面应用所述经转换的参数;
针对所述对应的编码单元类型执行所述收集步骤;以及
执行针对所述收集的统计数据的所述缓冲步骤。
19.根据枚举的示例实施例18的方法,其中,所述缓冲步骤包括:在与所述确定的编码单元类型对应的统计数据缓冲器中缓冲所述收集的统计数据的步骤。
20.根据枚举的示例实施例13的方法,还包括:
针对所有的编码单元类型,将比特统计数据标准化为相同的编码参数。
21.根据枚举的示例实施例13的方法,还包括:
接收包括至少一个新的编码单元类型的适配预测结构;
确定先前是否出现过所述新的编码单元类型;以及
当先前出现过所述新的编码单元类型时,使用所述先前存在的编码单元类型的所收集的统计数据和码率控制模型。
22.根据枚举的示例实施例13的方法,还包括:
接收包括至少一个新的编码单元类型的适配预测结构;
确定先前是否出现过所述新的编码单元类型;以及
当先前未出现过所述新的编码单元类型时,通过转换预先保存的码率控制模型来初始化与所述新的编码单元类型对应的码率控制模型。
23.根据枚举的示例实施例13的方法,还包括:
向P编码的画面分配码率控制模型并估计I编码的画面和B编码的画面的比例调整参数,或者向I编码的画面分配码率控制模型并估计B编码的画面和P编码的画面的比例调整参数;
其中,所述比例调整参数表示存储的比特比率的平均值。
24.根据枚举的示例实施例18的方法,其中,转换参数还包括使用在运动估计和运动补偿(MEMC)模块或者先前编码轮次收集的统计数据。
25.根据枚举的示例实施例24的方法,其中,在所述MEMC收集的统计数据包括预测误差。
26.一种方法,包括:
接收当前画面;
确定所述当前画面的场景类型;
基于所述确定的场景类型,执行以下步骤中的一个或更多个:
选择适合于所述场景类型的码率控制模型;
调整默认码率控制模型的参数;以及
使用所述默认的码率控制模型。
27.根据枚举的示例实施例26的方法,其中,确定所述当前画面的场景类型包括:分析来自运动估计和运动补偿模块或来自多轮次视频编码器的先前编码轮次的空间-时间统计数据。
28.一种方法,包括:
接收图像序列,其中,所述图像序列中的第一数目的画面具有第一编码单元类型;
使用与所述第一编码单元类型对应的第一码率控制模型来编码所述图像序列中的所述第一数目的画面;以及
在使用与所述第一编码单元类型对应的第一码率控制模型来编码所述图像序列中的所述第一数目的画面之后,通过转换所述第一码率控制模型的参数来编码所述图像序列中的当前画面,其中,所述当前画面对应于与所述第一编码单元类型不同的第二编码单元类型。
29.根据枚举的示例实施例28的方法,其中,所述第一码率控制模型的转换参数包括使用来自运动估计和运动补偿模块或先前编码轮次的统计数据。
30.一种方法,包括:
初始化M个码率控制模型;
针对N个编码单元类型的画面,计算N个目标比特;
其中,所述数目N大于或等于所述数目M;
接收当前画面;
确定所述N个编码单元类型中用于所述当前画面的编码单元类型;
当所述当前画面的所述编码单元类型是特定编码单元类型时,执行:
使用与所述特定编码单元类型对应的特定编码参数,或者使用所述M个码率控制模型中的与所述特定编码单元类型对应的特定码率控制模型;
基于所述特定编码参数或特定码率控制模型来编码所述当前画面;
更新与所述特定编码单元类型对应的比例调整参数;以及
针对每个编码单元类型重新计算所述N个目标比特。
31.根据枚举的示例实施例30的方法,还包括:
当所述当前画面的所述编码单元类型是与所述特定编码单元类型不同的第二编码单元类型时,执行:
使用与所述第二编码单元类型对应的第二编码参数,或者使用所述M个码率控制模型中的与所述第二编码单元类型对应的第二码率控制模型;
基于所述第二编码参数或所述第二码率控制模型来编码当前画面;以及
重新计算目标比特。
32.根据枚举的示例实施例31的方法,还包括:
当所述当前画面的所述编码单元类型是与所述特定编码单元类型不同并且与所述第二编码单元类型不同的第三编码单元类型时,执行:
使用所述M个码率控制模型中的第三码率控制模型,并且使用与所述第三编码单元类型对应并且与所述第三码率控制模型对应的第三比例调整参数;
基于所述第三码率控制模型和所述第三比例调整参数来编码当前画面;
更新所述第三比例调整参数;以及
重新计算目标比特。
33.根据枚举的示例实施例32的方法,其中,所述特定编码单元类型是P编码的画面,所述第二编码单元类型是I编码的画面,并且所述第三编码单元类型是B编码的画面。
34.一种方法,包括:
初始化用于N个编码单元类型的视频编码器,其中,所述视频编码器包括M个码率控制模型,其中,所述M个码率控制模型中的每个码率控制模型对应于所述N个编码单元类型中的一个编码单元类型,并且其中N大于M;
接收当前画面;
确定所述N个编码单元类型中的与所述当前画面对应的编码单元类型;以及
当所述当前画面的编码单元类型是特定编码单元类型时,执行:
使用对应于所述特定编码单元类型的特定码率控制模型来编码所述当前画面;
确定所述特定码率控制模型是否收敛;
更新所述特定码率控制模型;以及
当所述特定的码率控制模型不收敛时,将所述特定码率控制模型与所述M个码率控制模型中的经转换的第二码率控制模型混合,其中所述M个码率控制模型中的经转换的第二码率控制模型与所述N个编码单元类型中的第二编码单元类型相对应。
35.根据枚举的示例实施例34的方法,还包括:
当所述当前画面的所述编码单元类型是所述N个编码单元类型的第三编码单元类型时,执行:
利用来自所述M个码率控制模型中的与所述第三编码单元类型对应的第三码率控制模型的参数来编码所述当前画面;
确定所述第三码率控制模型是否收敛;
更新所述第三码率控制模型;以及
当所述第三码率控制模型不收敛时,将所述第三码率控制模型与用于所述第二编码单元类型的所述经转换的第二码率控制模型混合。
36.根据枚举的示例实施例34的方法,还包括:
当所述当前画面的所述编码单元类型是所述第二编码单元类型时,利用来自所述第二码率控制模型的参数来编码所述当前画面;以及
更新所述第二码率控制模型。
37.根据枚举的示例实施例36的方法,其中,所述第一编码单元类型是I编码的画面,所述第二编码单元类型是P编码的画面,并且所述第三编码单元类型是B编码的画面。
38.一种方法,包括:
接收一个或更多个画面的第一经压缩比特流;
完全或部分地解码所述一个或更多个画面的经压缩比特流;
向以下中的一个或更多个发送所述完全或部分地解码的画面:
用于对所述完全或部分地解码的一个或更多个画面中的一个或更多个画面执行时间分析的模块;以及
用于对所述完全或部分地解码的一个或更多个画面中的一个或更多个画面执行空间分析的模块;
向码率控制模型发送来自以下一个或更多个的输出:
所述对所述完全或部分地解码的一个或更多个画面中的一个或更多个画面执行时间分析;
所述对所述完全或部分地解码的一个或更多个画面中的一个或更多个画面执行空间分析;以及
在视频编码器上接收来自所述码率控制模型和所述完全或部分地解码的一个或更多个画面的码率控制参数;以及
通过所述视频编码器、使用所述接收的码率控制参数将所述接收的完全或部分地解码的一个或更多个画面编码和压缩为第二比特流。
39.根据枚举的示例实施例38的方法,其中,发送所述完全或部分地解码的一个或更多个画面还包括:向缓冲器发送所述完全或部分地解码的一个或更多个画面以增加延迟;
其中,在视频编码器上接收还包括:在视频编码器接收来自所述缓冲器的输出;以及
其中,使用所述接收的码率控制参数将所述接收的完全或部分地解码的一个或更多个画面编码和压缩为第二比特流还包括:使用所述接收的码率控制参数将从所述缓冲器接收的输出编码和压缩为第二比特流。
40.根据枚举的示例实施例38的方法,其中,执行时间分析的所述模块是运动估计和运动补偿模块。
41.根据枚举的示例实施例38的方法,其中,所述视频编码器是用于N个编码单元类型并且包括M个码率控制模型的视频编码器,其中N>M,并且其中,由所述视频编码器执行的编码和压缩还包括:通过转换来自所述M个码率控制模型的参数并使用所述经转换的参数来计算N-M个编码单元类型的参数。
42.根据枚举的示例实施例38的方法,其中,所述编码和压缩还包括:使用来自多编码轮次中的第一编码轮次或先前轮次的信息来进行编码和压缩。
43.一种计算机可读介质,用于存储用于视频处理的一个或更多个指令序列,其中,由一个或更多个处理器执行所述一个或更多个指令序列使得所述一个或更多个处理器执行以下步骤:
从一个或更多个运动估计和运动补偿(MEMC)模块、空间统计数据分析模块、多编码轮次的第一编码轮次或先前轮次接收信息;
执行以下中的一个或更多个:
根据以下中的至少一个来估计当前画面的预测误差:
两个或更多个先前经编码的画面的预测误差;或者
在所述MEMC收集的统计数据;以及
根据在所述空间统计数据分析模块收集的先前经编码的画面的空间方差来估计所述当前画面的空间方差。
44.一种计算机可读介质,用于存储用于视频处理的一个或更多个指令序列,其中,由一个或更多个处理器执行所述一个或更多个指令序列使得所述一个或更多个处理器执行以下步骤:
接收编码结构、一个或更多个编码单元的比例调整参数以及每所述一个或更多个编码单元每画面的比特目标;以及
使用以下中的任何一个来计算向所述一个或更多个编码单元中的每个编码单元分配的比特的数目:
所述编码结构;
比例调整参数;以及
比特目标。
45.一种计算机可读介质,用于存储用于视频处理的一个或更多个指令序列,其中,由一个或更多个处理器执行所述一个或更多个指令序列使得所述一个或更多个处理器执行以下步骤:
在用于N个编码单元类型的视频编码器上接收当前画面;
其中,所述视频编码器包括M个码率控制模型,其中所述数目N大于所述数目M;以及
使用以下中的一个或更多个来编码所述当前画面:
特定信息;
来自所述M个码率控制模型中的至少一个码率控制模型的一个或更多个编码参数;以及
通过转换来自所述M个码率控制模型中的所述至少一个码率控制模型的所述一个或更多个编码参数中的至少一个编码参数而获得的一个或更多个编码参数。
46.一种计算机可读介质,用于存储用于视频处理的一个或更多个指令序列,其中,由一个或更多个处理器执行所述一个或更多个指令序列使得所述一个或更多个处理器执行以下步骤:
接收当前画面;
确定所述当前画面的场景类型;
基于所述确定的场景类型,执行以下步骤的一个或更多个:
选择适合于所述场景类型的码率控制模型;
调整默认码率控制模型的参数;以及
使用所述默认的码率控制模型。
47.一种计算机可读介质,用于存储用于视频处理的一个或更多个指令序列,其中,由一个或更多个处理器执行所述一个或更多个指令序列使得所述一个或更多个处理器执行以下步骤:
接收图像序列,其中,所述图像序列中的第一数目的画面具有第一编码单元类型;
使用与所述第一编码单元类型对应的第一码率控制模型来编码所述图像序列中的所述第一数目的画面;以及
在使用与所述第一编码单元类型对应的第一码率控制模型来编码所述图像序列中的所述第一数目的画面之后,通过转换所述第一码率控制模型的参数来编码所述图像序列的当前画面,其中,所述当前画面对应于与所述第一编码单元类型不同的第二编码单元类型。
48.一种计算机可读介质,用于存储用于视频处理的一个或更多个指令序列,其中,由一个或更多个处理器执行所述一个或更多个指令序列使得所述一个或更多个处理器执行以下步骤:
初始化用于N个编码单元类型的视频编码器,其中,所述视频编码器包括M个码率控制模型,其中,所述M个码率控制模型中的每个码率控制模型对应于所述N个编码单元类型中的一个编码单元类型,并且其中N大于M;
接收当前画面;
确定所述N个编码单元类型中的与所述当前画面对应的编码单元类型;以及
当所述当前画面的所述编码单元类型是特定编码单元类型时,执行:
使用对应于所述特定编码单元类型的特定码率控制模型来编码所述当前画面;
确定所述特定的码率控制模型是否收敛;
更新所述特定码率控制模型;以及
当所述特定码率控制模型不收敛时,将所述特定码率控制模型与所述M个码率控制模型中的经转换的第二码率控制模型混合,其中所述M个码率控制模型中的经转换的第二码率控制模型与所述N个编码单元类型中的第二编码单元类型相对应。
49.一种计算机可读介质,用于存储用于视频处理的一个或更多个指令序列,其中,由一个或更多个处理器执行所述一个或更多个指令序列使得所述一个或更多个处理器执行以下步骤:
接收一个或更多个画面中的第一经压缩比特流;
完全或部分地解码所述一个或更多个画面中的经压缩比特流;
向以下中的一个或更多个发送所述完全或部分地解码的画面:
用于对所述完全或部分地解码的一个或更多个画面中的一个或更多个画面执行时间分析的模块;以及
用于对所述完全或部分地解码的一个或更多个画面中的一个或更多个画面执行空间分析的模块;
向码率控制模型发送来自以下中的一个或更多个的输出:
所述对所述完全或部分地解码的一个或更多个画面中的一个或更多个画面执行时间分析;
所述对所述完全或部分地解码的一个或更多个画面中的一个或更多个画面执行空间分析;以及
在视频编码器上接收来自所述码率控制模型和所述完全或部分地解码的一个或更多个画面的码率控制参数;以及
通过所述视频编码器、使用所述接收的码率控制参数将所述接收的完全或部分地解码的一个或更多个画面编码和压缩为第二比特流。
50.一种设备,包括:
信息接收器,其从一个或更多个运动估计和运动补偿(MEMC)模块、空间统计数据分析模块、多编码轮次中的第一编码轮次或先前轮次接收信息;
预测误差估计器,其根据以下中的至少一个来估计当前画面的预测误差:
两个或更多先前经编码的画面的预测误差;或
在所述MEMC上收集的统计数据;以及
空间方差估计器,其根据在所述空间统计数据分析模块上收集的先前经编码的画面的空间方差来估计所述当前画面的空间方差。
51.一种设备,包括:
编码结构接收器,其接收编码结构、一个或更多个编码单元的比例调整参数以及每所述一个或更多个编码单元每画面的比特目标;以及
比特分配子***,其使用以下中的任何一个来计算向所述一个或更多个编码单元中的每个编码单元分配的比特的数目:
所述编码结构;
比例调整参数;以及
比特目标。
52.一种设备,包括:
画面接收器,其在用于N个编码单元类型的视频编码器上接收当前画面;
其中,所述视频编码器包括M个码率控制模型,其中,所述数目N大于所述数目M;以及
编码子***,其使用以下中的一个或更多个来编码所述当前画面:
特定信息;
来自所述M个码率控制模型中的至少一个码率控制模型的一个或更多个编码参数;以及
通过转换来自所述M个码率控制模型中的所述至少一个码率控制模型的所述一个或更多个编码参数中的至少一个编码参数而获得的一个或更多个编码参数。
53.一种设备,包括:
画面接收器,其接收当前画面;
场景类型确定子***,其确定所述当前画面的场景类型;以及
以下中的一个或更多个:
码率控制模型选择器,其基于所述确定的场景类型来选择适合于所述场景类型的码率控制模型;
默认码率控制模型,其基于所述确定的场景类型而被使用;以及
参数调整器子***,其基于所述确定的场景类型而调整所述默认码率控制模型的参数。
54.一种设备,包括:
图像序列接收器,其接收图像序列,其中,所述图像序列中的第一数目的画面具有第一编码单元类型;
第一编码子***,其使用与所述第一编码单元类型对应的第一码率控制模型来编码所述图像序列中的所述第一数目的画面;以及
第二编码子***,其在使用与所述第一编码单元类型对应的第一码率控制模型来编码所述图像序列中的所述第一数目的画面之后,通过转换所述第一码率控制模型的参数来编码所述图像序列中的当前画面,其中,所述当前画面对应于与所述第一编码单元类型不同的第二编码单元类型。
55.一种设备,包括:
初始化子***,其初始化用于N个编码单元类型的视频编码器,其中,所述视频编码器包括M个码率控制模型,其中,所述M个码率控制模型中的每个码率控制模型对应于所述N个编码单元类型中的一个编码单元类型,并且其中N大于M;
画面接收器,其接收当前画面;
编码单元类型确定子***,其确定所述N个编码单元类型中的与所述当前画面对应的编码单元类型;以及
编码器,其当所述当前画面的编码单元类型是特定编码单元类型时,使用对应于所述特定编码单元类型的特定码率控制模型来编码所述当前画面;
收敛确定子***,其当所述当前画面的编码单元类型是特定编码单元类型时,确定所述特定码率控制模型是否收敛;
更新子***,其当所述当前画面的编码单元类型是特定编码单元类型时,更新所述特定码率控制模型;以及
混合子***,其当所述特定码率控制模型不收敛时,将所述特定码率控制模型与所述M个码率控制模型中的经转换的第二码率控制模型混合,其中所述M个码率控制模型中的经转换的第二码率控制模型与所述N个编码单元类型中的第二编码单元类型相对应。
56.一种设备,包括:
压缩比特流接收器,其接收一个或更多个画面的第一经压缩比特流;
解码器,其完全或部分地解码所述一个或更多个画面的经压缩比特流;
第一发送子***,其向以下中的一个或更多个发送所述完全或部分地解码的一个或更多个画面:
用于对所述完全或部分地解码的一个或更多个画面中的一个或更多个画面执行时间分析的模块;以及
用于对所述完全或部分地解码的一个或更多个画面中的一个或更多个画面执行空间分析的模块;
第二发送子***,其向码率控制模型发送来自以下中的一个或更多个的输出:
所述对所述完全或部分地解码的一个或更多个画面中的一个或更多个画面执行时间分析;
所述对所述完全或部分地解码的一个或更多个画面中的一个或更多个画面执行空间分析;以及
在视频编码器上的码率控制模型接收器,其接收来自所述码率控制模型和所述完全或部分地解码的一个或更多个画面的码率控制参数;以及
编码器-压缩器,其使用所述接收的码率控制参数将所述完全或部分地解码的一个或更多个画面编码和压缩为第二比特流。
57.根据枚举的示例实施例6的方法,其中,所述复杂度关系与以下中的一个或更多个有关:
相对于所述锚画面中的一个或更多个锚画面而言的所述当前画面的所述计算的复杂度估计值;或
在所述锚画面中的至少两个锚画面之间存在的复杂度关系;
其中,所述锚画面中的所述至少两个锚画面至少部分地是所述当前画面的预测。
58.根据枚举的示例实施例6的方法,其中,所述估计预测误差步骤至少部分地基于在所述MEMC上收集的所述统计数据;并且
所述方法还包括以下步骤:
至少部分地基于以下来调整所述统计数据:
来自除了参考画面或锚画面之外的画面的信息;或
从运动补偿时间滤波器、转码相关信息或先前编码轮次中的至少一个获得的一个或更多个统计数据;
其中,所述先前编码轮次至少部分地基于除了所述当前编码轮次的编码配置之外的编码配置。
59.根据枚举的示例实施例6的方法,其中,所述估计两个或更多个先前经编码的画面的所述预测误差包括以下步骤:
比较与不同的空间或时间距离或者不同的运动模型对应的一个或更多个预测误差;以及
至少部分地基于所述比较步骤来限定在所述当前画面和所述先前经编码的画面之间的关系。
60.根据枚举的示例实施例13的方法,其中,所述编码参数描述用来编码所述当前画面的量化或拉格朗日参数值、量化凑整偏移参数、模式确定阈值、编码单元类型和配置及其组合。
61.一种方法,包括步骤:
确定统计数据,所述统计数据用于在视频编码器中根据以下中的一个或更多个来估计在经编码的视频帧的流中的第一编码单元类型的第一帧的一个或更多个编码量化参数:
所述第一编码单元类型中的至少第二帧;
至少第二编码单元类型中的一个或更多个帧;或
一个或更多个先前经编码的编码单元类型;
其中,所述第一、第二或先前经编码的编码单元类型中的一个或更多个编码单元类型涉及内帧(I帧)、预测帧(P帧)或双向帧(B帧)中的至少一个;
至少部分地基于所述确定的统计数据来估计在所述第一、第二或先前经编码的编码单元类型中的一个或更多个编码单元类型之间的一个或更多个关系,其中,所述关系对应于与所述编码单元类型中的每个编码单元类型相关联的比特率或图像质量中的一个或更多个;以及
基于所述量化参数或所述估计的关系中的一个或更多个来控制用于从所述视频编码器发送所述经编码的视频流的码率。
62.根据枚举的示例实施例61的方法,还包括以下步骤:
确定利用所述视频编码器的运动估计和补偿功能(MECF)而产生的统计数据;
其中,所述码率控制步骤进一步基于所述确定的MEMC统计数据。
63.根据枚举的示例实施例62的方法,其中,所述确定MEMC产生的统计数据包括以下步骤:
从以下中的一个或更多个接收信息:
一个或更多个运动估计和运动补偿(MEMC)模块;
空间统计数据分析模块;
多个编码轮次中的先前轮次;
执行以下步骤中的一个或更多个:
根据以下中的至少一个来估计当前画面的预测误差:
两个或更多先前经编码的画面的预测误差;或
在所述MEMC上收集的统计数据;或
根据利用所述空间统计数据分析模块而收集的先前经编码的画面的空间方差来估计所述当前画面的空间方差。
64.根据枚举的示例实施例63的方法,还包括以下步骤:
接收当前帧;
从与所述接收的当前帧对应的一个或更多个图像特征来确定表征所述当前帧的场景类型;
其中,所述确定所述当前画面的场景类型的步骤包括:分析来自所述MEMC模块中的至少一个MEMC模块或来自多轮次视频编码器的先前编码轮次的空间-时间统计数据;
基于所述确定的场景类型,执行以下步骤中的一个或更多个:
选择适合于所述场景类型的比例控制模型;或
调整与默认码率控制模型相关联的参数;以及
基于具有所述经调整的相关联的参数的默认码率控制来执行所述码率控制步骤。
65.根据枚举的示例实施例61的方法,进一步包括以下步骤:
针对一个或更多个编码单元,接收每画面的编码结构、比例调整参数和比特目标;
使用以下中的至少一个来计算要向所述一个或更多个编码单元中的每一个编码单元分配的比特的数目:
所述编码结构;
所述比例调整参数;或
所述比特目标;
其中,所述计算所述比特数目的步骤包括以下步骤:
根据所述比例调整参数来计算至少一个新的参数;以及
使向所述第一编码单元类型分配的所述量化参数(QP)值不同于向所述第二编码单元类型或所述先前经编码的编码单元类型中的一个或更多个编码单元类型分配的QP值。
66.根据枚举的示例实施例61的方法,进一步包括以下步骤:
在所述用于N个编码单元类型的视频编码器上接收当前帧;
其中,所述视频编码器包括M个码率控制模型,并且其中所述数目N大于所述数目M;以及
使用以下中的一个或更多个来编码所述当前帧:
与所述当前帧有关的特定信息;
来自所述M个码率控制模型中的至少一个码率控制模型的一个或更多个编码参数;或
通过转换来自所述M个码率控制模型中的所述至少一个码率控制模型的所述编码参数中的至少一个编码参数而获得的一个或更多个编码参数。
67.根据枚举的示例实施例61的方法,进一步包括以下步骤:
接收在所述经编码的视频流中的图像序列,其中,所述图像序列中的第一数目的画面具有所述第一编码单元类型;
使用与所述第一编码单元类型对应的第一码率控制模型来编码所述图像序列中的所述第一数目的画面;以及
当使用与所述第一编码单元类型对应的所述第一码率控制模型来编码所述图像序列中的所述第一数目的画面时,编码所述图像序列的当前帧,其中,所述当前帧对应于与所述第一编码单元类型不同的第二编码单元类型;
其中,所述编码所述当前帧步骤包括以下步骤:
转换与所述第一码率控制模型对应的参数;
其中,所述转换所述第一码率控制模型的参数的步骤包括:使用来自所述MEMC模块或先前编码轮次中的至少一个的统计数据;以及
基于所述转换的参数来编码所述当前帧。
68.根据枚举的示例实施例61的方法,进一步包括以下步骤:
初始化M个码率控制模型;
针对N个编码单元类型的画面,计算N个目标比特;
其中,所述数目N大于或等于所述数目M;
接收当前画面;
确定所述N个编码单元类型的每一个中用于所述当前画面的编码单元类型;
当所述当前画面的编码单元类型是特定编码单元类型时,执行以下步骤:
使用与所述特定编码单元类型对应的特定编码参数,或使用所述M个码率控制模型中的与所述特定编码单元类型对应的特定码率控制模型;
基于所述特定编码参数或特定码率控制模型来编码所述当前画面;
更新与所述特定编码单元类型对应的比例调整参数;以及
重新针对每一个编码单元类型计算所述N个目标比特。
69.一种计算机可读存储介质产品,包括经编码的指令,所述经编码的指令当使用计算机***的处理器执行时,使得所述处理器执行在一个或更多个枚举的示例实施例61-69中所述的处理。
70.一种***,包括:
用于确定统计数据的装置,所述统计数据用于在视频编码器中从以下中的一个或更多个来估计在经编码的视频帧的流中的第一编码单元类型的第一帧的一个或更多个编码量化参数:
所述第一编码单元类型的至少第二帧;
至少第二编码单元类型的一个或更多个帧;或
一个或更多个先前经编码的编码单元类型;
其中,所述第一、第二或先前经编码的编码单元类型中的一个或更多个编码单元类型涉及内帧(I帧)、预测帧(P帧)或双向帧(B帧)中的至少一个;
用于至少部分地基于所述确定的统计数据来估计在所述第一、第二或先前经编码的编码单元类型中的一个或更多个编码单元类型之间的一个或更多个关系的装置,其中,所述关系对应于与所述编码单元类型中的每个编码单元类型相关联的比特率或图像质量中的一个或更多个;以及
用于基于所述量化参数或所述估计的关系中的一个或更多个来控制用于从所述视频编码器发送所述经编码的视频流的码率的装置。
71.一种***,包括:
总线,其将所述***的一个或更多个部件可通信地、电气地、光学地或电子地相互耦接;
计算机可读存储介质,其可通信地、电气地、光学地或电子地耦接到所述总线,并且包括经编码的指令;以及
一个或更多个处理器,其可通信地、电气地、光学地或电子地耦接到所述总线,并且与所述计算机可读存储介质交互地相互耦接,其中,当执行所述经编码指令中的一个或更多个时,控制或引起包括以下步骤的处理:
确定统计数据,所述统计数据用于在视频编码器中从以下中的一个或更多个来估计在经编码的视频帧的流中的第一编码单元类型的第一帧的一个或更多个编码量化参数:
所述第一编码单元类型的至少第二帧;
至少第二编码单元类型的一个或更多个帧;或
一个或更多个先前经编码的编码单元类型;
其中,所述第一、第二或先前经编码的编码单元类型中的一个或更多个编码单元类型涉及内帧(I帧)、预测帧(P帧)或双向帧(B帧)中的至少一个;
至少部分地基于所述确定的统计数据来估计在所述第一、第二或先前经编码的编码单元类型中的一个或更多个编码单元类型之间的一个或更多个关系,其中,所述关系对应于与所述编码单元类型中的每个编码单元类型相关联的比特率或图像质量中的一个或更多个;以及
基于所述量化参数或所述估计的关系中的一个或更多个来控制用于从所述视频编码器发送所述经编码的视频流的码率。
72.一种图像编码器,包括:
用于确定统计数据的部件或模块,所述统计数据用于在视频编码器中从以下中的一个或更多个来估计在经编码的视频帧的流中的第一编码单元类型的第一帧的一个或更多个编码量化参数:
所述第一编码单元类型的至少第二帧;
至少第二编码单元类型的一个或更多个帧;或
一个或更多个先前经编码的编码单元类型;
其中,所述第一、第二或先前经编码的编码单元类型中的一个或更多个编码单元类型涉及内帧(I帧)、预测帧(P帧)或双向帧(B帧)中的至少一个;
用于至少部分地基于所述确定的统计数据来估计在所述第一、第二或先前经编码的编码单元类型中的一个或更多个编码单元类型之间的一个或更多个关系的部件或模块,其中,所述关系对应于与所述编码单元类型中的每个编码单元类型相关联的比特率或图像质量中的一个或更多个;以及
用于基于所述量化参数或所述估计的关系中的一个或更多个来控制用于从所述视频编码器发送所述经编码的视频流的码率的部件或模块。
73.一种集成电路(IC),包括多个共同起作用的结构部件,所述多个共同起作用的结构部件当执行配置的、编程的或结构上的功能操作时,使得所述IC至少部分地控制在枚举的示例实施例61-68中的一个或更多个中所述的处理。
74.一种设备产品,其操作来执行计算或视频编码功能中的一个或更多个,所述功能包括在枚举的示例实施例61-68中的一个或更多个中所述的处理中的一个或更多个。
75.计算机、视频编码器或IC中的一个或更多个的用途,包括在枚举的示例实施例61-68中的一个或更多个中所述的处理中的一个或更多个。
5.0等同含义、扩展、替代和其他
在上面的说明书中,已经参考多个具体细节描述了本发明的实施例,所述多个具体细节可以在实施方式之间不同。因此,什么是本发明并且意欲被申请人作为本发明的唯一和排他指示是一组权利要求,所述组权利要求以这些权利要求发布的具体形式从本申请发布,包括任何后续修改。在此对在这些权利要求中包含的术语明确地给出的任何定义应当决定在权利要求中使用的这些术语的含义。因此,在权利要求中未明确地记载的限制、元素、特性、特征、优点或属性都不应当以任何方式限制这些权利要求的范围。因此,要在说明性而不是限定性的意义上看待说明书和附图。
Claims (15)
1.一种视频编码方法,包括:
在用于N个编码单元类型的视频编码器上接收当前画面,其中,所述N个编码单元类型至少涉及I类型、P类型或B类型;
其中,所述视频编码器包括M个码率控制模型,每个码率控制模型被保存用于将对应的编码单元类型的编码统计数据建模,其中所述数目N大于所述数目M;
转换来自所述M个码率控制模型中的至少一个码率控制模型的一个或更多个编码参数,以产生第一组经变换的参数,所述第一组经变换的参数适用于不对应于所述M个码率控制模型中的任何码率控制模型的编码单元类型;
使用所述第一组经变换的参数来编码所述当前画面。
2.根据权利要求1所述的方法,其中,利用至少一个比例调整参数或转换参数来产生所述第一组经变换的参数,所述至少一个比例调整参数或转换参数是至少部分地基于在至少两个不同的编码类型之间的比特率关系。
3.根据权利要求1所述的方法,还包括:
收集统计数据,所述统计数据与在包括所述当前画面的画面序列中的一个或更多个其他画面有关;
基于所述统计数据来调节用于产生所述第一组经变换的参数的所述一个或更多个编码参数;
将来自所述M个码率控制模型中的所述至少一个码率控制模型的一个或更多个编码参数转换为第二组经转换的参数;
至少使用所述第二组经转换的参数来编码第二画面。
4.根据权利要求3所述的方法,其中所述统计数据还与和所述M个码率控制模型中的至少一个码率控制模型相关联的编码单元类型有关。
5.根据权利要求3所述的方法,其中利用所述视频编码器的运动估计和补偿功能来产生所述统计数据。
6.根据权利要求3所述的方法,其中收集统计数据包括执行以下中的一个或更多个:
根据以下中的至少一个来估计所述当前画面的预测误差:
两个或更多个先前经编码的画面的预测误差;
在运动估计和运动补偿模块上收集的统计数据。
7.根据权利要求1所述的方法,
其中所述一个或更多个编码参数与第一编码单元类型相关联,其中所述第一编码单元类型对应于所述M个码率控制模型中的至少一个码率控制模型,并且
所述第一组经转换的参数与第二编码单元类型相关联,其中所述第二编码单元类型不对应于所述M个码率控制模型中的任何码率控制模型。
8.根据权利要求7所述的方法,
其中所述第一编码单元类型涉及内帧即I帧、预测帧即P帧或双向帧即B帧中的一个;
其中所述第二编码单元类型涉及内帧即I帧、预测帧即P帧或双向帧即B帧中不同的一个。
9.根据权利要求1所述的方法,还包括:
接收包括至少一个新的编码单元类型的适配预测结构;
确定先前是否出现过所述新的编码单元类型;以及
当先前出现过所述新的编码单元类型时,使用所述先前存在的编码单元类型的码率控制模型和所收集的统计数据用于编码第二画面。
10.根据权利要求1所述的方法,还包括:
接收包括至少一个新的编码单元类型的适配预测结构;
确定先前是否出现过所述新的编码单元类型;以及
当先前未出现过所述新的编码单元类型时,通过转换预先保存的码率控制模型来初始化与所述新的编码单元类型对应的码率控制模型。
11.根据权利要求1所述的方法,还包括:
至少基于以下中的一个或更多个来确定用于所述N-M个编码单元类型的N-M个缺少的码率控制模型:与一个或更多个先前经编码的画面相关联的质量或比特率比率。
12.一种集成电路,包括多个部件,所述多个部件用于使得所述集成电路至少部分地控制视频编码处理,所述集成电路装置包括:
用于在用于N个编码单元类型的视频编码器上接收当前画面的至少一个输入,其中,所述N个编码单元类型至少涉及I类型、P类型或B类型;
其中,所述视频编码器包括M个码率控制模型,每个码率控制模型被保存用于将对应的编码单元类型的编码统计数据建模,其中所述数目N大于所述数目M;
用于转换来自所述M个码率控制模型中的至少一个码率控制模型的一个或更多个编码参数以产生第一组经变换的参数的至少一个处理器,所述第一组经变换的参数适用于不对应于所述M个码率控制模型中的任何码率控制模型的编码单元类型;以及
用于使用所述第一组经变换的参数来编码所述当前画面的至少一个处理器。
13.一种视频编码设备产品,其操作用于执行计算或视频编码功能中的一个或更多个,所述视频编码设备产品包括:
用于在用于N个编码单元类型的视频编码器上接收当前画面的至少一个部件,其中,所述N个编码单元类型至少涉及I类型、P类型或B类型;
存储介质,所述存储介质存储M个码率控制模型,每个码率控制模型被保存用于将对应的编码单元类型的编码统计数据建模,其中所述数目N大于所述数目M;
用于转换来自所述M个码率控制模型中的至少一个码率控制模型的一个或更多个编码参数以产生第一组经变换的参数的至少一个部件,所述第一组经变换的参数适用于不对应于所述M个码率控制模型中的任何码率控制模型的编码单元类型;以及
用于使用所述第一组经变换的参数来编码所述当前画面的至少一个部件。
14.一种计算机、视频编码器或集成电路中的一个或更多个的用途,包括一种处理,所述处理包括:
在用于N个编码单元类型的视频编码器上接收当前画面,其中,所述N个编码单元类型至少涉及I类型、P类型或B类型;
其中,所述视频编码器包括M个码率控制模型,每个码率控制模型被保存用于将对应的编码单元类型的编码统计数据建模,其中所述数目N大于所述数目M;
转换来自所述M个码率控制模型中的至少一个码率控制模型的一个或更多个编码参数,以产生第一组经变换的参数,所述第一组经变换的参数适用于不对应于所述M个码率控制模型中的任何码率控制模型的编码单元类型;以及
使用所述第一组经变换的参数来编码所述当前画面。
15.一种视频编码***,包括:
用于在用于N个编码单元类型的视频编码器上接收当前画面的装置,其中,所述N个编码单元类型至少涉及I类型、P类型或B类型;
其中,所述视频编码器包括M个码率控制模型,每个码率控制模型被保存用于将对应的编码单元类型的编码统计数据建模,其中所述数目N大于所述数目M;
用于转换来自所述M个码率控制模型中的至少一个码率控制模型的一个或更多个编码参数以产生第一组经变换的参数的装置,所述第一组经变换的参数适用于不对应于所述M个码率控制模型中的任何码率控制模型的编码单元类型;以及
用于使用所述第一组经变换的参数来编码所述当前画面的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6194108P | 2008-06-16 | 2008-06-16 | |
US61/061,941 | 2008-06-16 | ||
PCT/US2009/047317 WO2010005691A1 (en) | 2008-06-16 | 2009-06-15 | Rate control model adaptation based on slice dependencies for video coding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102067610A CN102067610A (zh) | 2011-05-18 |
CN102067610B true CN102067610B (zh) | 2013-07-10 |
Family
ID=41040395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801226036A Expired - Fee Related CN102067610B (zh) | 2008-06-16 | 2009-06-15 | 基于视频编码的切片依赖性的码率控制模型适配 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8891619B2 (zh) |
EP (1) | EP2286595A1 (zh) |
JP (1) | JP5400876B2 (zh) |
KR (1) | KR101350723B1 (zh) |
CN (1) | CN102067610B (zh) |
WO (1) | WO2010005691A1 (zh) |
Families Citing this family (167)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100271554A1 (en) * | 2007-09-10 | 2010-10-28 | Volker Blume | Method And Apparatus For Motion Estimation In Video Image Data |
JP4569840B2 (ja) * | 2007-09-12 | 2010-10-27 | ソニー株式会社 | 画像符号化装置、画像符号化方法 |
US8891619B2 (en) | 2008-06-16 | 2014-11-18 | Dolby Laboratories Licensing Corporation | Rate control model adaptation based on slice dependencies for video coding |
WO2009157580A1 (ja) * | 2008-06-27 | 2009-12-30 | ソニー株式会社 | 画像処理装置及び画像処理方法 |
RU2471306C2 (ru) * | 2008-06-27 | 2012-12-27 | Сони Корпорейшн | Устройство обработки изображений и способ обработки изображений |
BRPI0904323A2 (pt) * | 2008-06-27 | 2015-06-30 | Sony Corp | Aparelho e método de processamento de imagem |
JPWO2009157581A1 (ja) * | 2008-06-27 | 2011-12-15 | ソニー株式会社 | 画像処理装置及び画像処理方法 |
US8385404B2 (en) | 2008-09-11 | 2013-02-26 | Google Inc. | System and method for video encoding using constructed reference frame |
US8385676B2 (en) * | 2009-07-30 | 2013-02-26 | Hewlett-Packard Development Company, L.P. | Context-cluster-level control of filtering iterations in an iterative discrete universal denoiser |
US20110064129A1 (en) * | 2009-09-16 | 2011-03-17 | Broadcom Corporation | Video capture and generation at variable frame rates |
US8861879B2 (en) * | 2009-09-17 | 2014-10-14 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding image based on skip mode |
US8897370B1 (en) * | 2009-11-30 | 2014-11-25 | Google Inc. | Bitrate video transcoding based on video coding complexity estimation |
US9883207B2 (en) * | 2009-12-31 | 2018-01-30 | Thomson Licensing Dtv | Methods and apparatus for adaptive coupled pre-processing and post-processing filters for video encoding and decoding |
WO2011084918A1 (en) | 2010-01-06 | 2011-07-14 | Dolby Laboratories Licensing Corporation | High performance rate control for multi-layered video coding applications |
KR20110123651A (ko) | 2010-05-07 | 2011-11-15 | 한국전자통신연구원 | 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법 |
JP2012034213A (ja) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | 画像処理装置、画像処理システムおよび画像処理方法 |
KR101677480B1 (ko) * | 2010-09-07 | 2016-11-21 | 에스케이 텔레콤주식회사 | 효과적인 화면내 예측모드 집합 선택을 이용한 영상 부호화/복호화 방법 및 장치 |
CN101951504B (zh) * | 2010-09-07 | 2012-07-25 | 中国科学院深圳先进技术研究院 | 基于重叠边界的多媒体切片转码方法和*** |
US9094685B2 (en) * | 2010-09-21 | 2015-07-28 | Dialogic Corporation | Efficient coding complexity estimation for video transcoding systems |
US8786625B2 (en) * | 2010-09-30 | 2014-07-22 | Apple Inc. | System and method for processing image data using an image signal processor having back-end processing logic |
EP2458861A1 (en) * | 2010-11-25 | 2012-05-30 | ST-Ericsson SA | Bit rate regulation module and method for regulating bit rate |
JP5988252B2 (ja) | 2011-01-12 | 2016-09-07 | サン パテント トラスト | 複数の参照ピクチャを用いた、動画像符号化方法、動画像復号方法、動画像符号化装置、及び、動画像復号装置 |
US9307262B2 (en) * | 2011-01-13 | 2016-04-05 | Texas Instruments Incorporated | Methods and systems for facilitating multimedia data encoding utilizing configured buffer information |
US8750383B2 (en) * | 2011-01-17 | 2014-06-10 | Exaimage Corporation | Systems and methods for wavelet and channel-based high definition video encoding |
US9066097B2 (en) * | 2011-02-01 | 2015-06-23 | Sony Corporation | Method to optimize the transforms and/or predictions in a video codec |
WO2012108181A1 (en) * | 2011-02-08 | 2012-08-16 | Panasonic Corporation | Methods and apparatuses for encoding and decoding video using multiple reference pictures |
JP6327435B2 (ja) | 2011-03-03 | 2018-05-23 | サン パテント トラスト | 画像符号化方法、画像復号方法、画像符号化装置、及び、画像復号装置 |
US9282333B2 (en) * | 2011-03-18 | 2016-03-08 | Texas Instruments Incorporated | Methods and systems for masking multimedia data |
US8638854B1 (en) | 2011-04-07 | 2014-01-28 | Google Inc. | Apparatus and method for creating an alternate reference frame for video compression using maximal differences |
US8804820B2 (en) * | 2011-04-21 | 2014-08-12 | Dialogic Corporation | Rate control with look-ahead for video transcoding |
JP2012253722A (ja) * | 2011-06-07 | 2012-12-20 | Sony Corp | 画像符号化装置と画像復号装置およびその方法とプログラム |
KR20120138604A (ko) * | 2011-06-14 | 2012-12-26 | 삼성전자주식회사 | 멀티미디어 시스템에서 복합 미디어 컨텐츠를 송수신하는 방법 및 장치 |
EP2724537A1 (en) * | 2011-06-22 | 2014-04-30 | Motorola Mobility LLC | Construction of combined list using temporal distance |
GB2492329B (en) | 2011-06-24 | 2018-02-28 | Skype | Video coding |
GB2492330B (en) | 2011-06-24 | 2017-10-18 | Skype | Rate-Distortion Optimization with Encoding Mode Selection |
GB2492163B (en) | 2011-06-24 | 2018-05-02 | Skype | Video coding |
US9369723B2 (en) * | 2011-07-14 | 2016-06-14 | Comcast Cable Communications, Llc | Preserving image quality in temporally compressed video streams |
US8792550B2 (en) * | 2011-08-04 | 2014-07-29 | Qualcomm Incorporated | Color/gray patch prevention for video coding |
GB2493777A (en) * | 2011-08-19 | 2013-02-20 | Skype | Image encoding mode selection based on error propagation distortion map |
GB2495467B (en) | 2011-09-02 | 2017-12-13 | Skype | Video coding |
GB2495468B (en) | 2011-09-02 | 2017-12-13 | Skype | Video coding |
GB2495469B (en) | 2011-09-02 | 2017-12-13 | Skype | Video coding |
IN2014CN02377A (zh) | 2011-09-29 | 2015-06-19 | Sharp Kk | |
DK2763414T3 (da) | 2011-09-29 | 2020-11-30 | Sharp Kk | Billedafkodningsindretning og fremgangsmåde til billedafkodning til udførelse af konvertering af bi-forudsigelse til uni-forudsigelse |
EP2579593A1 (en) * | 2011-10-04 | 2013-04-10 | Thomson Licensing | Adaptive quantisation for intra-encoded image blocks |
JP6034010B2 (ja) * | 2011-10-24 | 2016-11-30 | ソニー株式会社 | 符号化装置、符号化方法、およびプログラム |
US20130107962A1 (en) * | 2011-10-26 | 2013-05-02 | Intellectual Discovery Co., Ltd. | Scalable video coding method and apparatus using inter prediction mode |
JP6080375B2 (ja) * | 2011-11-07 | 2017-02-15 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
US20130114694A1 (en) * | 2011-11-08 | 2013-05-09 | Qualcomm Incorporated | Parameter set groups for coded video data |
TWI603611B (zh) * | 2011-12-21 | 2017-10-21 | Jvc Kenwood Corp | Motion picture encoding apparatus, motion picture encoding method, and recording medium for moving picture encoding program |
JP5988577B2 (ja) * | 2011-12-28 | 2016-09-07 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム |
US9451252B2 (en) | 2012-01-14 | 2016-09-20 | Qualcomm Incorporated | Coding parameter sets and NAL unit headers for video coding |
US9020294B2 (en) * | 2012-01-18 | 2015-04-28 | Dolby Laboratories Licensing Corporation | Spatiotemporal metrics for rate distortion optimization |
EP2842337B1 (en) | 2012-04-23 | 2019-03-13 | Google LLC | Managing multi-reference picture buffers for video data coding |
US9609341B1 (en) | 2012-04-23 | 2017-03-28 | Google Inc. | Video data encoding and decoding using reference picture lists |
CN103428523B (zh) * | 2012-05-22 | 2015-07-08 | 华为技术有限公司 | 评估视频质量的方法和装置 |
US9014504B2 (en) | 2012-05-31 | 2015-04-21 | Apple Inc. | Systems and methods for highlight recovery in an image signal processor |
US9743057B2 (en) | 2012-05-31 | 2017-08-22 | Apple Inc. | Systems and methods for lens shading correction |
US8872946B2 (en) | 2012-05-31 | 2014-10-28 | Apple Inc. | Systems and methods for raw image processing |
US9332239B2 (en) | 2012-05-31 | 2016-05-03 | Apple Inc. | Systems and methods for RGB image processing |
US9142012B2 (en) | 2012-05-31 | 2015-09-22 | Apple Inc. | Systems and methods for chroma noise reduction |
US9025867B2 (en) | 2012-05-31 | 2015-05-05 | Apple Inc. | Systems and methods for YCC image processing |
US9105078B2 (en) | 2012-05-31 | 2015-08-11 | Apple Inc. | Systems and methods for local tone mapping |
US9532080B2 (en) | 2012-05-31 | 2016-12-27 | Sonic Ip, Inc. | Systems and methods for the reuse of encoding information in encoding alternative streams of video data |
US11089247B2 (en) | 2012-05-31 | 2021-08-10 | Apple Inc. | Systems and method for reducing fixed pattern noise in image data |
US8917336B2 (en) | 2012-05-31 | 2014-12-23 | Apple Inc. | Image signal processing involving geometric distortion correction |
US8953882B2 (en) | 2012-05-31 | 2015-02-10 | Apple Inc. | Systems and methods for determining noise statistics of image data |
US9031319B2 (en) | 2012-05-31 | 2015-05-12 | Apple Inc. | Systems and methods for luma sharpening |
US9077943B2 (en) | 2012-05-31 | 2015-07-07 | Apple Inc. | Local image statistics collection |
US8817120B2 (en) | 2012-05-31 | 2014-08-26 | Apple Inc. | Systems and methods for collecting fixed pattern noise statistics of image data |
US9762903B2 (en) * | 2012-06-01 | 2017-09-12 | Qualcomm Incorporated | External pictures in video coding |
WO2013188457A2 (en) * | 2012-06-12 | 2013-12-19 | Coherent Logix, Incorporated | A distributed architecture for encoding and delivering video content |
JP6697879B2 (ja) * | 2012-07-10 | 2020-05-27 | ヴィド スケール インコーポレイテッド | 品質ドリブンストリーミング |
BR112014031122A2 (pt) * | 2012-07-17 | 2017-06-27 | Thomson Licensing | avaliação de qualidade de vídeo em um nível de fluxos de bits |
US20140056347A1 (en) * | 2012-08-23 | 2014-02-27 | Microsoft Corporation | Non-Transform Coding |
US20140086328A1 (en) * | 2012-09-25 | 2014-03-27 | Qualcomm Incorporated | Scalable video coding in hevc |
SG11201500846TA (en) * | 2012-09-26 | 2015-05-28 | Panasonic Ip Corp America | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
US9549189B2 (en) * | 2012-11-06 | 2017-01-17 | Ittiam Systems (P) Ltd. | Method for media rate control in a video encoding system |
US9135723B1 (en) * | 2012-12-19 | 2015-09-15 | Marvell International Ltd. | Efficient visually lossless compression |
CN103079065B (zh) * | 2012-12-27 | 2016-08-03 | 华为技术有限公司 | 一种视频数据处理方法以及装置 |
US9350990B2 (en) * | 2013-02-28 | 2016-05-24 | Sonic Ip, Inc. | Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming |
US9357210B2 (en) | 2013-02-28 | 2016-05-31 | Sonic Ip, Inc. | Systems and methods of encoding multiple video streams for adaptive bitrate streaming |
US20140307803A1 (en) | 2013-04-08 | 2014-10-16 | Qualcomm Incorporated | Non-entropy encoded layer dependency information |
KR102161741B1 (ko) * | 2013-05-02 | 2020-10-06 | 삼성전자주식회사 | HEVC(high efficiency video coding)에서 코딩 유닛에 대한 양자화 파라미터를 변화시키는 방법과 장치, 및 시스템 |
US9756331B1 (en) | 2013-06-17 | 2017-09-05 | Google Inc. | Advance coded reference prediction |
US9565440B2 (en) * | 2013-06-25 | 2017-02-07 | Vixs Systems Inc. | Quantization parameter adjustment based on sum of variance and estimated picture encoding cost |
US20150023436A1 (en) * | 2013-07-22 | 2015-01-22 | Texas Instruments Incorporated | Method and apparatus for noise reduction in video systems |
US20150071343A1 (en) * | 2013-09-12 | 2015-03-12 | Magnum Semiconductor, Inc. | Methods and apparatuses including an encoding system with temporally adaptive quantization |
FR3011429A1 (fr) * | 2013-09-27 | 2015-04-03 | Orange | Codage et decodage video par heritage d'un champ de vecteurs de mouvement |
MY183347A (en) * | 2013-09-30 | 2021-02-18 | Japan Broadcasting Corp | Image encoding device, image decoding device, and the programs thereof |
JP2015070488A (ja) * | 2013-09-30 | 2015-04-13 | Kddi株式会社 | 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、およびプログラム |
WO2015082298A1 (en) | 2013-12-02 | 2015-06-11 | Dolby International Ab | Method for bitrate signaling and bitstream format enabling such method |
CN104717500B (zh) * | 2013-12-12 | 2018-04-06 | 中国电信股份有限公司 | 一种视频编码码率控制方法和*** |
WO2015095166A2 (en) * | 2013-12-16 | 2015-06-25 | Arris Enterprises, Inc. | Producing an output need parameter for an encoder |
FR3016764B1 (fr) * | 2014-01-17 | 2016-02-26 | Sagemcom Broadband Sas | Procede et dispositif de transcodage de donnees video de h.264 vers h.265 |
CN103888765B (zh) * | 2014-03-27 | 2015-09-30 | 天格科技(杭州)有限公司 | 一种改进型R-λ模型H.265码率控制方法 |
GB2525208B (en) * | 2014-04-15 | 2020-04-08 | Advanced Risc Mach Ltd | Method of and apparatus for generating an encoded frame |
US10397574B2 (en) * | 2014-05-12 | 2019-08-27 | Intel Corporation | Video coding quantization parameter determination suitable for video conferencing |
US9807398B2 (en) * | 2014-09-30 | 2017-10-31 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Mode complexity based coding strategy selection |
FR3029381A1 (fr) * | 2014-11-27 | 2016-06-03 | Orange | Procede de composition d’une representation video intermediaire |
US10021396B1 (en) * | 2014-12-30 | 2018-07-10 | Ambarella, Inc. | Motion detection based on observing several pictures |
KR102365685B1 (ko) | 2015-01-05 | 2022-02-21 | 삼성전자주식회사 | 인코더의 작동 방법과 상기 인코더를 포함하는 장치들 |
WO2016111800A1 (en) * | 2015-01-05 | 2016-07-14 | Arris Enterprises, Inc. | Using motion compensated temporal filter (mctf) statistics for scene change detection when a fade, dissolve or cut occurs |
US10165272B2 (en) * | 2015-01-29 | 2018-12-25 | Arris Enterprises Llc | Picture-level QP rate control performance improvements for HEVC encoding |
US10313675B1 (en) * | 2015-01-30 | 2019-06-04 | Google Llc | Adaptive multi-pass video encoder control |
CN104683804B (zh) * | 2015-02-14 | 2017-12-29 | 北京航空航天大学 | 基于视频内容特征的参数自适应多维码率控制方法 |
US10284849B2 (en) | 2015-04-13 | 2019-05-07 | Qualcomm Incorporated | Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure |
US9936203B2 (en) * | 2015-04-13 | 2018-04-03 | Qualcomm Incorporated | Complex region detection for display stream compression |
US10244255B2 (en) | 2015-04-13 | 2019-03-26 | Qualcomm Incorporated | Rate-constrained fallback mode for display stream compression |
US10356428B2 (en) | 2015-04-13 | 2019-07-16 | Qualcomm Incorporated | Quantization parameter (QP) update classification for display stream compression (DSC) |
CN104796694B (zh) * | 2015-04-30 | 2017-08-15 | 上海交通大学 | 基于视频纹理信息的优化帧内视频编码方法 |
CN104902275B (zh) * | 2015-05-29 | 2018-04-20 | 宁波菊风***软件有限公司 | 一种控制视频通信质量甜点的方法 |
CN104994387B (zh) * | 2015-06-25 | 2017-10-31 | 宁波大学 | 一种融合图像特征的码率控制方法 |
CN106331704B (zh) * | 2015-07-07 | 2019-10-22 | 杭州海康威视数字技术股份有限公司 | 一种视频码率控制方法及视频编码装置 |
FR3040849A1 (fr) * | 2015-09-04 | 2017-03-10 | Stmicroelectronics (Grenoble 2) Sas | Procede de compression d'un flux de donnees video |
KR102492318B1 (ko) | 2015-09-18 | 2023-01-26 | 삼성전자주식회사 | 모델 학습 방법 및 장치, 및 데이터 인식 방법 |
CN106559671B (zh) * | 2015-09-30 | 2019-08-23 | 展讯通信(上海)有限公司 | 一种显示图像压缩方法及*** |
US10432952B2 (en) * | 2015-11-19 | 2019-10-01 | Qualcomm Incorporated | System and methods for fixed-point approximations in display stream compression (DSC) |
US10805635B1 (en) * | 2016-03-22 | 2020-10-13 | NGCodec Inc. | Apparatus and method for coding tree unit bit size limit management |
CN105872594A (zh) * | 2016-03-30 | 2016-08-17 | 乐视控股(北京)有限公司 | 实时码率调节方法、装置及服务端设备 |
CN109479136A (zh) * | 2016-08-04 | 2019-03-15 | 深圳市大疆创新科技有限公司 | 用于比特率控制的***和方法 |
WO2018027237A1 (en) * | 2016-08-05 | 2018-02-08 | Sportscastr.Live Llc | Systems, apparatus, and methods for scalable low-latency viewing of broadcast digital content streams of live events |
US10635274B2 (en) | 2016-09-21 | 2020-04-28 | Iunu, Inc. | Horticultural care tracking, validation and verification |
US11538099B2 (en) | 2016-09-21 | 2022-12-27 | Iunu, Inc. | Online data market for automated plant growth input curve scripts |
US10791037B2 (en) * | 2016-09-21 | 2020-09-29 | Iunu, Inc. | Reliable transfer of numerous geographically distributed large files to a centralized store |
US11244398B2 (en) | 2016-09-21 | 2022-02-08 | Iunu, Inc. | Plant provenance and data products from computer object recognition driven tracking |
CN107078852B (zh) * | 2017-01-18 | 2019-03-08 | 深圳市大疆创新科技有限公司 | 传输编码数据的方法、装置、计算机***和移动设备 |
JP2017069987A (ja) * | 2017-01-18 | 2017-04-06 | 株式会社東芝 | 動画像符号化装置及び動画像符号化方法 |
CN106961604B (zh) * | 2017-03-07 | 2018-06-15 | 腾讯科技(深圳)有限公司 | 视频编码的码率分配、编码单元码率分配方法及装置 |
CN106937118B (zh) * | 2017-03-13 | 2019-09-13 | 西安电子科技大学 | 一种基于主观感兴趣区域和时空域相结合的码率控制方法 |
WO2018213481A1 (en) | 2017-05-16 | 2018-11-22 | Sportscastr.Live Llc | Systems, apparatus, and methods for scalable low-latency viewing of integrated broadcast commentary and event video streams of live events, and synchronization of event information with viewed streams via multiple internet channels |
US10608901B2 (en) | 2017-07-12 | 2020-03-31 | Cisco Technology, Inc. | System and method for applying machine learning algorithms to compute health scores for workload scheduling |
US11877001B2 (en) | 2017-10-10 | 2024-01-16 | Qualcomm Incorporated | Affine prediction in video coding |
CN111247806B (zh) | 2017-10-27 | 2023-11-14 | 松下电器(美国)知识产权公司 | 解码装置和解码方法 |
WO2019104611A1 (en) | 2017-11-30 | 2019-06-06 | SZ DJI Technology Co., Ltd. | System and method for controlling video coding within image frame |
WO2019104862A1 (en) | 2017-11-30 | 2019-06-06 | SZ DJI Technology Co., Ltd. | System and method for reducing video coding fluctuation |
WO2019104635A1 (en) | 2017-11-30 | 2019-06-06 | SZ DJI Technology Co., Ltd. | System and method for controlling video coding at frame level |
CN109076212A (zh) * | 2017-12-27 | 2018-12-21 | 深圳市大疆创新科技有限公司 | 码率控制的方法与编码装置 |
CN108200428B (zh) * | 2018-01-29 | 2020-05-08 | 上海兆芯集成电路有限公司 | 宏块层中的码率的控制方法以及使用该方法的装置 |
US11062516B2 (en) | 2018-02-07 | 2021-07-13 | Iunu, Inc. | Augmented reality based horticultural care tracking |
CN110324622B (zh) * | 2018-03-28 | 2022-09-23 | 腾讯科技(深圳)有限公司 | 一种视频编码码率控制方法、装置、设备及存储介质 |
US10834409B2 (en) * | 2018-04-06 | 2020-11-10 | Arris Enterprises Llc | System and method of implementing multiple prediction models for local illumination compensation |
US11830225B2 (en) * | 2018-05-30 | 2023-11-28 | Ati Technologies Ulc | Graphics rendering with encoder feedback |
US10560696B2 (en) * | 2018-06-25 | 2020-02-11 | Tfi Digital Media Limited | Method for initial quantization parameter optimization in video coding |
CN108810545B (zh) * | 2018-07-04 | 2023-04-18 | 中南大学 | 用于视频编码的方法、装置、计算机可读介质及电子设备 |
US11381833B2 (en) * | 2018-07-19 | 2022-07-05 | Tencent America LLC | Method and apparatus for video coding |
JP2020028044A (ja) * | 2018-08-13 | 2020-02-20 | 富士通株式会社 | 符号化装置および符号化方法 |
US10674152B2 (en) * | 2018-09-18 | 2020-06-02 | Google Llc | Efficient use of quantization parameters in machine-learning models for video coding |
JP7167335B2 (ja) * | 2018-10-29 | 2022-11-08 | ドルビー・インターナショナル・アーベー | 生成モデルを用いたレート品質スケーラブル符号化のための方法及び装置 |
CN109561311A (zh) * | 2018-12-07 | 2019-04-02 | 莆田学院 | 一种基于ρ域的三维视频编码码率控制方法及存储设备 |
US10764603B2 (en) | 2018-12-31 | 2020-09-01 | Alibaba Group Holding Limited | Resolution-adaptive video coding |
EP3687176A1 (en) | 2019-01-22 | 2020-07-29 | InterDigital CE Patent Holdings | A client and a method for managing, at the client, a streaming session of a multimedia content |
CN117793346A (zh) * | 2019-01-31 | 2024-03-29 | 北京字节跳动网络技术有限公司 | 视频编解码中的细化量化步骤 |
CN109729353B (zh) * | 2019-01-31 | 2021-01-19 | 深圳市迅雷网文化有限公司 | 一种视频编码方法、装置、***及介质 |
CN109889827B (zh) * | 2019-04-11 | 2021-01-29 | 腾讯科技(深圳)有限公司 | 帧内预测编码方法、装置、电子设备及计算机存储介质 |
KR20220036948A (ko) * | 2019-07-05 | 2022-03-23 | 브이-노바 인터내셔널 리미티드 | 비디오 코딩에서 잔차의 양자화 |
US11720980B2 (en) | 2020-03-25 | 2023-08-08 | Iunu, Inc. | Crowdsourced informatics for horticultural workflow and exchange |
US11792408B2 (en) * | 2020-03-30 | 2023-10-17 | Alibaba Group Holding Limited | Transcoder target bitrate prediction techniques |
CN111913523B (zh) * | 2020-06-19 | 2024-05-07 | 国网河南省电力公司焦作供电公司 | 一种双缓冲irig-b码产生方法 |
TWI743919B (zh) * | 2020-08-03 | 2021-10-21 | 緯創資通股份有限公司 | 視訊處理裝置及視訊串流的處理方法 |
CA3132486A1 (en) * | 2020-09-30 | 2022-03-30 | Comcast Cable Communications, Llc | Method and systems for optimized content encoding |
CN112433690B (zh) * | 2020-12-08 | 2024-05-28 | 努比亚技术有限公司 | 数据处理方法、终端及计算机可读存储介质 |
US11290725B1 (en) * | 2021-01-21 | 2022-03-29 | Agora Lab, Inc. | System and method for determining an objective video quality measure of a real-time video communication without extensive mathematical operations |
US11973930B2 (en) | 2021-01-21 | 2024-04-30 | Agora Lab, Inc. | System for determining an objective video quality measure of a real-time video communication without extensive mathematical operations |
CN113053085B (zh) * | 2021-02-04 | 2022-06-03 | 北京戴纳实验科技有限公司 | 一种医院冰箱监管*** |
CN114501015B (zh) * | 2022-04-06 | 2022-09-02 | 杭州未名信科科技有限公司 | 视频编码码率处理方法和装置、存储介质及电子设备 |
CN115190299B (zh) * | 2022-07-11 | 2023-02-28 | 杭州电子科技大学 | Vvc仿射运动估计快速计算方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1471319A (zh) * | 2002-07-22 | 2004-01-28 | 中国科学院计算技术研究所 | 结合率失真优化的码率控制的方法及其装置 |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192081B1 (en) | 1995-10-26 | 2001-02-20 | Sarnoff Corporation | Apparatus and method for selecting a coding mode in a block-based coding system |
WO1997016031A1 (en) | 1995-10-26 | 1997-05-01 | Sarnoff Corporation | Apparatus and method for selecting a coding mode in a block-based coding system |
US5929916A (en) | 1995-12-26 | 1999-07-27 | Legall; Didier J. | Variable bit rate encoding |
US5872598A (en) | 1995-12-26 | 1999-02-16 | C-Cube Microsystems | Scene change detection using quantization scale factor rate control |
US6366704B1 (en) | 1997-12-01 | 2002-04-02 | Sharp Laboratories Of America, Inc. | Method and apparatus for a delay-adaptive rate control scheme for the frame layer |
US6343098B1 (en) | 1998-02-26 | 2002-01-29 | Lucent Technologies Inc. | Efficient rate control for multi-resolution video encoding |
US6192079B1 (en) | 1998-05-07 | 2001-02-20 | Intel Corporation | Method and apparatus for increasing video frame rate |
US7130349B1 (en) | 1998-07-16 | 2006-10-31 | Intel Corporation | Method and apparatus to improve efficiency in multiple-pass, bit-rate-controlled frame encoding |
US6963608B1 (en) * | 1998-10-02 | 2005-11-08 | General Instrument Corporation | Method and apparatus for providing rate control in a video encoder |
US6192080B1 (en) | 1998-12-04 | 2001-02-20 | Mitsubishi Electric Research Laboratories, Inc. | Motion compensated digital video signal processing |
EP1279295A1 (en) | 2000-04-27 | 2003-01-29 | Koninklijke Philips Electronics N.V. | Video compression |
EP1202579A1 (en) | 2000-10-31 | 2002-05-02 | Interuniversitair Microelektronica Centrum Vzw | A method and apparatus for adaptive encoding framed data sequences |
KR100731492B1 (ko) | 2000-12-04 | 2007-06-21 | 주식회사 케이티 | 다중채널/다중레벨 동작감지기능을 가지는 비디오 부호기 및 그 동작 감지 방법 |
KR100707669B1 (ko) | 2000-12-04 | 2007-04-13 | 주식회사 케이티 | 동작 감지 기능을 가지는 비디오 부호화기 및 그를 이용한 동작 감지 방법 |
US6909745B1 (en) * | 2001-06-05 | 2005-06-21 | At&T Corp. | Content adaptive video encoder |
US7110455B2 (en) | 2001-08-14 | 2006-09-19 | General Instrument Corporation | Noise reduction pre-processor for digital video using previously generated motion vectors and adaptive spatial filtering |
KR100481732B1 (ko) | 2002-04-20 | 2005-04-11 | 전자부품연구원 | 다 시점 동영상 부호화 장치 |
CN100380980C (zh) | 2002-04-23 | 2008-04-09 | 诺基亚有限公司 | 用于在视频编码***中指示量化器参数的方法与设备 |
DE60206738D1 (de) | 2002-06-11 | 2005-11-24 | St Microelectronics Srl | Videokodierungsverfahren und -Vorrichtung mit variabler Bitrate |
KR101017770B1 (ko) | 2003-06-26 | 2011-02-28 | 톰슨 라이센싱 | 슬라이딩 윈도 채널 제약에 부합하는 멀티패스 비디오레이트 제어 |
US20050036549A1 (en) | 2003-08-12 | 2005-02-17 | Yong He | Method and apparatus for selection of scanning mode in dual pass encoding |
WO2005020587A1 (en) | 2003-08-26 | 2005-03-03 | Samsung Electronics Co., Ltd. | Adaptive interframe wavelet video coding method, computer readable recording medium and system therefor |
US7623719B2 (en) | 2003-09-26 | 2009-11-24 | The Regents Of The University Of California | Video encoding methods and devices |
JP2005123732A (ja) | 2003-10-14 | 2005-05-12 | Matsushita Electric Ind Co Ltd | デブロックフィルタ処理装置およびデブロックフィルタ処理方法 |
EP1551185A1 (en) * | 2004-01-05 | 2005-07-06 | Thomson Licensing S.A. | Encoding method, decoding method, and encoding apparatus for a digital picture sequence |
US20050169369A1 (en) | 2004-02-03 | 2005-08-04 | Sony Corporation | Scalable MPEG video/macro block rate control |
US7869503B2 (en) * | 2004-02-06 | 2011-01-11 | Apple Inc. | Rate and quality controller for H.264/AVC video coder and scene analyzer therefor |
US20050195896A1 (en) | 2004-03-08 | 2005-09-08 | National Chiao Tung University | Architecture for stack robust fine granularity scalability |
US20060034369A1 (en) * | 2004-08-10 | 2006-02-16 | Nader Mohsenian | Method and system for parametric video quality equalization in selective re-encoding |
US7512182B2 (en) | 2004-08-30 | 2009-03-31 | General Instrument Corporation | Method and apparatus for performing motion compensated temporal filtering in video encoding |
US8948266B2 (en) | 2004-10-12 | 2015-02-03 | Qualcomm Incorporated | Adaptive intra-refresh for digital video encoding |
JP2008517498A (ja) | 2004-10-15 | 2008-05-22 | フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ | 中間レイヤ動きデータ予測を用いて符号化されたビデオシーケンスを生成するための装置および方法 |
DE102004059993B4 (de) | 2004-10-15 | 2006-08-31 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum Erzeugen einer codierten Videosequenz unter Verwendung einer Zwischen-Schicht-Bewegungsdaten-Prädiktion sowie Computerprogramm und computerlesbares Medium |
US8311113B2 (en) | 2004-11-12 | 2012-11-13 | Broadcom Corporation | Method and system for using motion prediction to equalize video quality across intra-coded frames |
KR100665102B1 (ko) | 2004-12-03 | 2007-01-04 | 한국전자통신연구원 | 전송 패킷의 길이를 고려한 비디오 부호화 율제어 방법 및그를 이용한 비디오 부호화 장치 |
US20060140273A1 (en) | 2004-12-28 | 2006-06-29 | Siu-Wai Wu | Dual-pass HDTV encoder with noise reduction |
US20060146932A1 (en) | 2004-12-30 | 2006-07-06 | Krit Panusopone | Method and apparatus for providing motion estimation with weight prediction |
US7876819B2 (en) | 2005-09-22 | 2011-01-25 | Qualcomm Incorporated | Two pass rate control techniques for video coding using rate-distortion characteristics |
WO2007035147A1 (en) | 2005-09-23 | 2007-03-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive source signal encoding |
US8446954B2 (en) * | 2005-09-27 | 2013-05-21 | Qualcomm Incorporated | Mode selection techniques for multimedia coding |
US8175149B2 (en) | 2005-11-21 | 2012-05-08 | Electronics And Telecommunications Research Institute | Method and apparatus for controlling bitrate of scalable video stream |
US20080151998A1 (en) * | 2006-12-21 | 2008-06-26 | General Instrument Corporation | Method and Apparatus for Providing Rate Control for Panel-Based Real Time Video Encoder |
US8891619B2 (en) | 2008-06-16 | 2014-11-18 | Dolby Laboratories Licensing Corporation | Rate control model adaptation based on slice dependencies for video coding |
-
2009
- 2009-06-15 US US12/999,150 patent/US8891619B2/en not_active Expired - Fee Related
- 2009-06-15 JP JP2011514726A patent/JP5400876B2/ja not_active Expired - Fee Related
- 2009-06-15 CN CN2009801226036A patent/CN102067610B/zh not_active Expired - Fee Related
- 2009-06-15 EP EP09789814A patent/EP2286595A1/en not_active Withdrawn
- 2009-06-15 WO PCT/US2009/047317 patent/WO2010005691A1/en active Application Filing
- 2009-06-15 KR KR1020117000547A patent/KR101350723B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1471319A (zh) * | 2002-07-22 | 2004-01-28 | 中国科学院计算技术研究所 | 结合率失真优化的码率控制的方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
US20110090960A1 (en) | 2011-04-21 |
JP5400876B2 (ja) | 2014-01-29 |
WO2010005691A1 (en) | 2010-01-14 |
EP2286595A1 (en) | 2011-02-23 |
KR20110015695A (ko) | 2011-02-16 |
JP2011525094A (ja) | 2011-09-08 |
KR101350723B1 (ko) | 2014-01-16 |
CN102067610A (zh) | 2011-05-18 |
US8891619B2 (en) | 2014-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102067610B (zh) | 基于视频编码的切片依赖性的码率控制模型适配 | |
US9060175B2 (en) | System and method for motion estimation and mode decision for low-complexity H.264 decoder | |
US11176711B2 (en) | Apparatus and method for coding/decoding image selectively using discrete cosine/sine transform | |
US7916783B2 (en) | Bit-rate control method and device combined with rate-distortion optimization | |
CN1136734C (zh) | 可变比特率视频编码方法及相应的视频编码器 | |
CN104641651B (zh) | 用于编码和交付视频内容的分布式体系结构 | |
CN102792688B (zh) | 用于视频的数据压缩 | |
US8711945B2 (en) | Methods and devices for coding and decoding images, computer program implementing them and information carrier enabling their implementation | |
CN103609115B (zh) | 具有基于知觉的帧内切换的模式决策的编码方法及装置 | |
CN103609122B (zh) | 用于视频编码的率失真优化 | |
CN105049850A (zh) | 基于感兴趣区域的hevc码率控制方法 | |
CN103918262A (zh) | 基于结构相似度的码率失真优化感知视频编码方法和*** | |
CN101094411A (zh) | 一种视频编码的码率控制方法 | |
CN101743753A (zh) | 利用视频编码中的帧复杂性、缓冲水平和内部帧位置的基于缓冲的速率控制 | |
CN102868883B (zh) | 一种视频编码的码率控制方法 | |
CN106060539B (zh) | 一种低传输带宽的视频编码方法 | |
CN102986211A (zh) | 视频编码中的速率控制 | |
CN103650493A (zh) | 低复杂度模式选择 | |
CN101548549A (zh) | 精细粒度可伸缩图像编码和解码 | |
Yang et al. | Perceptual feature guided rate distortion optimization for high efficiency video coding | |
US20110211637A1 (en) | Method and system for compressing digital video streams | |
Sun et al. | Rate-distortion analysis of dead-zone plus uniform threshold scalar quantization and its application—Part II: Two-pass VBR coding for H. 264/AVC | |
Wang et al. | A convolutional neural network-based rate control algorithm for VVC intra coding | |
Ye et al. | Adaptive gradient information and BFGS based inter frame rate control for high efficiency video coding | |
EP3496405A1 (en) | Devices and methods for video reconstruction from multiple source videos |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130710 Termination date: 20170615 |