CN111164972A - 用于在帧级别控制视频编码的系统和方法 - Google Patents
用于在帧级别控制视频编码的系统和方法 Download PDFInfo
- Publication number
- CN111164972A CN111164972A CN201780095582.8A CN201780095582A CN111164972A CN 111164972 A CN111164972 A CN 111164972A CN 201780095582 A CN201780095582 A CN 201780095582A CN 111164972 A CN111164972 A CN 111164972A
- Authority
- CN
- China
- Prior art keywords
- encoding
- image data
- parameters
- rate
- rate control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
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/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/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/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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- 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/177—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 a group of pictures [GOP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
系统和方法可以控制视频编码。视频编码器可以获取对诸如图像帧的图像数据单元进行编码的目标码率,其中,图像数据单元将基于具有一个或多个模型参数的码率控制模型进行编码。视频编码器可以基于使用一个或多个参考编码参数对一个或多个参考图像数据单元的编码来确定码率控制模型的一个或多个模型参数的值。然后,视频编码器可以基于具有一个或多个所确定的模型参数的码率控制模型来确定用于对图像数据单元进行编码的一个或多个编码参数的值,并且使用一个或多个所确定的编码参数对图像数据单元进行编码。
Description
版权声明
本专利文档的公开的一部分包含受到版权保护的材料。版权所有人不反对任何人对专利文档或专利公开(如其在专利和商标局中的专利文件或记录中出现的原样)进行复制再现,但是在其他情况下版权所有人保留所有版权。
技术领域
本公开的实施例总体上涉及视频处理,更具体地但非排他地,涉及视频编码。
背景技术
近年来视频内容的消费量激增,这主要是由于各种类型的便携式、手持式或可穿戴设备的普及。典型地,视频数据或其他媒体内容在源处被编码为编码(例如,压缩的)比特流,然后通过通信信道将其传输到接收机。然而,控制编码比特流的比特率以确保满足发送机、接收机和/或通信信道的各种约束是重要的。例如,可能希望将编码视频帧的比特率保持在某个最大比特率以下,以防止缓冲区溢出或者为了适应带宽限制。这是本发明的实施例旨在涉及的一般领域。
发明内容
本文描述的是可以控制视频编码的系统和方法。视频编码器可以获取对诸如图像帧的图像数据单元进行编码的目标码率,其中,图像数据单元将基于具有一个或多个模型参数的码率控制模型进行编码。视频编码器可以基于使用一个或多个参考编码参数对一个或多个参考图像数据单元的编码来确定码率控制模型的一个或多个模型参数的值。然后,视频编码器可以基于具有一个或多个所确定的模型参数的码率控制模型来确定用于对图像数据单元进行编码的一个或多个编码参数的值,并且使用一个或多个所确定的编码参数对图像数据单元进行编码。
本文还描述了可以控制视频编码的系统和方法。视频编码器可以获取图像帧,其中图像帧包括多个编码块组,其中每个编码块组包括一个或多个编码块,并且每个编码块组与编码控制模型相关联。此外,视频编码器可以基于第一编码块组的比特分配来确定用于与第一编码块组相关联的第一编码控制模型的一个或多个编码参数的值,并且使用具有一个或多个所确定的编码参数的第一编码控制模型对第一编码块组进行编码。
附图说明
图1示出了根据本发明的各种实施例的用于实现编码率控制的示例性系统。
图2示出了根据本发明的各种实施例的对视频进行编码/压缩。
图3示出了根据本发明的各种实施例的一系列示例性数据级别。
图4示出了根据本发明的各种实施例的要编码的示例性数据单元。
图5示出了根据本发明的各种实施例的要编码的示例性分层数据单元。
图6示出了根据本发明的各种实施例的帧级别下的示例性码率控制模型。
图7示出了根据本发明的各种实施例的使用滑动窗来防止编码波动的示例性图示。
图8示出了根据本发明的各种实施例的用于在帧级别控制视频编码的流程图。
图9示出了根据本发明的各种实施例的具有码率控制的示例性编码器。
图10示出了根据本发明的各种实施例的用于基本单元级别下的不同控制组的码率控制。
图11示出了根据本发明的各种实施例的基本单元级别下的示例性码率控制方案。
图12示出了根据本发明的各种实施例的码率控制方案的示例性硬件实现。
图13示出了根据本发明的各种实施例的用于在图像帧内控制视频编码的流程图。
具体实施方式
作为示例而非限制,在附图的各图中示出了本发明,其中相似的附图标记指示相似的元件。应当注意到:在本公开中针对“实施例”或“一个实施例”或“一些实施例”的引用不一定指的是相同实施例,并且这种引用意指至少一个实施例。
以下对本发明的描述使用H.264标准和高效视频编码(HEVC)标准作为编码方法的示例。对于本领域技术人员显而易见的是,可以使用其他类型的编码方法而不限于此。
根据本发明的各种实施例,系统可以控制视频编码,以在帧级别实现编码效率。视频编码器可以获取对诸如图像帧的图像数据单元进行编码的目标码率,其中,图像数据单元将基于具有一个或多个模型参数的码率控制模型进行编码。视频编码器可以基于使用一个或多个参考编码参数的一个或多个参考图像数据单元的编码来确定用于码率控制模型的一个或多个模型参数的值。然后,视频编码器可以基于具有一个或多个所确定的模型参数的码率控制模型来确定用于对图像数据单元进行编码的一个或多个编码参数的值,并且使用一个或多个所确定的编码参数对图像数据单元进行编码。
根据本发明的各种实施例,系统可以在图像帧内控制视频编码,例如在基本单元级别,以实现编码效率。视频编码器可以获取图像帧,其中,图像帧包括诸如基本单元的多个编码块组,其中,每个编码块组包括一个或多个编码块,并且每个编码块组与编码控制模型相关联。此外,视频编码器可以基于第一编码块组的比特分配来确定用于与第一编码块组相关联的第一编码控制模型的一个或多个编码参数的值,并且使用具有一个或多个所确定的编码参数的第一编码控制模型对第一编码块组进行编码。
图1示出了根据本发明的各种实施例的用于实现编码率控制的示例性系统100。如图1所示,编码器101可以被配置为接收输入数据102并对其进行编码,以产生输出数据104。例如,编码器101可以被配置为接收视频作为输入数据102,并且对输入视频数据进行编码以产生一个或多个经压缩的比特流作为输出数据104。
在数据编码期间,编码器101可以被配置为例如经由码率控制器103来控制编码数据的比特大小(并因此控制比特率)。编码器101和码率控制器103可以由相同或不同的计算装置来实现。在一些实施例中,码率控制器103可以形成编码器101的组成部分;反之亦然。编码器101被配置为接收输入数据102,对输入数据102进行编码,并且提供包括编码数据在内的输出数据104。输入数据102可以包括文本、图像、图形对象、动画序列、录音、视频或要编码的任何其他数据。在一些情况下,输入数据102可以包括来自诸如视觉传感器(例如,相机、红外传感器)、麦克风、近距离传感器(例如,超声波、激光雷达)、位置传感器、温度传感器、触摸传感器等一个或多个传感器的感测数据。
输入数据102的编码可以涉及数据压缩、加密、差错编码、格式转换等。例如,诸如视频或音频的多媒体数据可以被压缩以减少通过网络传输的比特数。诸如财务信息和个人标识信息之类的敏感数据在传输或存储之前可以被加密以保护机密性和/或隐私。因此,输入数据102的编码对于数据的有效和/或安全传输或存储可能是有益的。
根据本发明的各种实施例,编码器101可以被配置为对一系列视频或图像帧进行编码。在一些实施例中,编码器101可以实现一个或多个不同的编解码器。一个或多个编解码器中的每一个可以利用实现不同编码算法的各种代码、指令或计算机程序。可以选择合适的编解码器以基于各种因素(包括输入数据的类型和/或源、编码数据的接收实体、计算资源的可用性、网络环境、业务要求、法规和标准等)对给定的输入数据集合进行编码。
图2示出了根据本发明的各种实施例的对视频进行编码/压缩。如图2所示,可以使用一系列步骤对每个帧中的数据进行编码,例如预测步骤201、变换步骤202、量化步骤203和熵编码步骤204。
根据各种实施例,预测步骤201可用于减少图像帧中的冗余信息。预测步骤201可以包括帧内预测和帧间预测。帧内预测可以仅基于当前帧内包含的信息执行,而与视频序列中的其他帧无关。例如,编码过程可用于主要或完全基于帧内帧(或I帧)包含的空间信息对帧内帧(I帧)进行编码。可以通过基于参考帧(例如,先前处理过的帧)消除当前帧中的冗余来执行帧间预测。例如,编码器103可以被配置为利用帧之间的时间冗余,并且基于根据先前帧和/或后续帧进行的前向和/或后向预测来对帧间帧(例如,P帧或B帧)进行编码。
根据各种实施例,可以通过估计相机和/或视频中的对象的运动,基于前一帧和/或后一帧来前向和/或后向预测帧以进行帧间预测。例如,为了执行用于帧间预测的运动估计,可以将帧划分为多个图像块。每个图像块可以例如基于块匹配算法,与参考帧中的块相匹配。在一些实施例中,可以计算运动矢量(MV),该运动矢量表示从当前帧中的图像块的坐标到参考帧中的经匹配的图像块的坐标的偏移。此外,可以计算残差并对残差分组,该残差即为当前帧中的每个图像块与参考帧中的经匹配的块之间的差。系统可以处理残差以提高编码效率。例如,可以通过在分组后的残差上应用变换矩阵(及其转置矩阵)来生成变换系数。
可以使用任何合适的运动估计技术来确定相邻帧之间的运动矢量,包括基于像素的方法(例如,块匹配)和基于特征的方法(例如,角点检测)。如果未找到相应数据单元(例如,宏块)的可接受匹配,则编码器可以将数据单元编码为帧内数据单元。在各种实施例中,可以从其参考中减去经预测的帧,以生成残差(误差)帧。可以以与帧内帧相似的方式对残差(误差)帧中包括的数据进行空间编码。例如,可以对残差误差帧的一个或多个数据矩阵进行变换(例如,使用DCT)并进行量化。可以对残差误差帧的经量化变换的系数、运动矢量或相邻帧的运动矢量之间的差以及重构帧所需的任何其他合适的数据进行熵编码。编码数据的比特率可以至少部分地由码率控制器提供的量化参数来控制。
在变换步骤202期间,可以将输入数据和/或残差变换到适于输入数据(例如,视频)的数据内容的不同域(例如,空间频域)。可以使用任何合适的编码变换技术,包括诸如离散余弦变换(DCT)或修改后的DCT的傅立叶型变换。例如,基于数据单元的大小来确定DCT矩阵。数据单元可以包括4×4或8×8像素的块,16×16像素的宏块或任何合适的数据集合。然后使用矩阵乘法将DCT矩阵应用于数据单元,产生包括变换系数的变换矩阵。
随后,可以在量化步骤203对变换系数进行量化,并且在熵编码步骤204进行编码。在量化步骤203处,例如可以通过将每个系数除以量化矩阵中的相应元素,然后将其舍入到最接近的整数值来对变换矩阵中的系数进行量化。量化矩阵可以使用量化参数(也被称为量化索引)来导出。例如,量化参数可以是量化矩阵的每个元素的值。在另一示例中,可以通过量化参数对量化矩阵中的一些或所有元素进行缩放(乘或除),并且经缩放的量化矩阵可用于对变换矩阵进行量化。量化参数可以是在一定范围内(例如,在0和128之间且包括0和128)的整数。通常,量化参数的值越高,量化步长越大,并且量化矩阵中的元素值越大。这可能导致更多的变换系数被量化为零或接近于零。零或接近于零的系数越多,对系数进行编码所需的比特就越少,导致由系数表示的数据单元的比特大小越小(因此比特率越低)。相反的情况也是如此,即,量化参数的较低值与较小的量化步长相对应,对量化系数进行编码所需的比特数较多,且使用量化参数对数据单元进行编码的比特大小越大(因此比特率越高)。本文提供了用于通过改变用于对输入数据的一部分进行编码的量化参数来控制编码输入数据的比特率的技术。
在熵编码步骤204处,以预定顺序扫描量化矩阵中的量化系数,并且使用任何合适的编码技术进行编码。例如,由于大多数非零DCT系数可能集中在矩阵的左上角,因此从左上角到右下角的锯齿形(zigzag)扫描图案是典型的。可以使用备选的扫描顺序,例如光栅扫描。扫描顺序可用于最大化实现长串连续零系数的概率。然后可以使用游程(run-length)编码、可变长编码或任何其他熵编码技术对扫描的系数进行编码,以生成输出数据104。
然后,包括从熵编码步骤104生成的信息以及其他编码信息(例如,帧内预测模式、运动矢量)的比特流可以被存储和/或传输到接收端处的解码器(未示出)。解码器可以被配置为执行与编码器的编码步骤相反的解码步骤,以便生成重构的数据。解码器可以对接收到的比特流执行逆过程(诸如,熵解码、逆量化和逆变换)以获得残差。因此,可以基于残差和其他接收到的解码信息来对图像帧进行解码。在各种实施例中,然后可以显示或回放重构的数据(即,经解码的图像)。例如,为了对帧内编码的数据(例如,I帧)进行解码,解码步骤可以包括熵解码步骤(例如,使用可变长解码)、逆量化步骤和逆变换步骤(例如,使用逆离散余弦变换(IDCT)),其执行与编码器的相应熵编码、量化和变换步骤的逆过程。为了对帧间编码的数据(例如B帧或P帧)进行解码,解码过程可以包括附加的运动补偿支持。
参考图1,码率控制器103可以被配置为通过向编码器101提供一个或多个编码参数(也被称为码率控制参数)来控制输出数据的比特率。可以将比特率控制在某一范围内(例如,低于最大比特率,高于最小比特率)或接近目标平均比特率。备选地,可以控制比特率以根据帧的复杂度、带宽限制、缓冲区容量和其他因素而变化。编码参数可以包括一个或多个量化参数(QP),用于控制编码过程的量化步骤,从而控制所得到的输出数据的比特率。量化参数可以包括例如量化步长、指示诸如在H.264或类似编码器中使用的QP等量化步长或与该量化步长相关的值、量化矩阵或其参考等。编码参数可以包括用于控制诸如预测步骤、变换步骤和/或熵编码步骤之类的编码过程的其他方面的参数。例如,编码参数可以包括用于在对系数进行熵编码之前移除某些高频系数的截止(cutoff)索引。编码参数的其他示例可以包括比特分配信息(例如,分配用于对数据单元进行编码的最大值、最小值或目标比特)、帧率、要变换和量化的数据单元的大小、用于确定是对数据单元(例如,宏块)进行编码还是跳过编码的运动检测阈值、用于率失真优化的拉格朗日乘数、用于预测、变换和/或熵编码步骤的算法和参数等。
码率控制器103可以被配置为至少部分地基于关于输出数据104和/或编码器101的输出信息来控制码率(例如,通过提供编码参数)。输出信息可以由编码器101提供,或者可选地由码率控制器103基于输出数据104导出。输出信息可以包括例如用于对数据单元(例如,帧、片、宏块)进行编码的比特数、用于对数据单元进行编码的参数(包括算法)、编码器资源信息(例如,CPU/存储器使用情况、缓冲区使用情况)等。码率控制器103可以使用这种信息来调整用于一个或多个后续数据单元的一个或多个编码参数(例如,量化参数)。
码率控制器103可以可选地被配置为至少部分地基于关于输入数据102的输入信息来控制码率。输入信息可以包括输入数据可用于码率控制的任何特性,诸如分辨率、大小、图像复杂度、纹理、亮度、色度、运动信息等。例如,高度复杂的输入数据可以用比不太复杂的输入数据更高的比特率来编码。
在一些实施例中,码率控制器103可以被配置为基于一个或多个码率控制阈值参数来控制码率。阈值参数的值可以由用户、系统管理员、码率控制器103或任何其他组件或装置预定义和/或动态地更新。码率控制阈值参数可用于导出编码参数。在一些实施例中,用于确定对给定片进行编码的编码参数的阈值可以根据片相对于帧的其他片的编码顺序而变化。
在一些实施例中,码率控制器103可以被配置为基于附加信息来控制码率。这种信息可以包括来自被配置为接收、解码和/或回放或显示输出数据108的实体的解码器信息。例如,这种信息可以与解码器缓冲区使用情况、延迟、噪声和/或回放质量有关。附加地,这种信息可以与当前计算环境(例如,网络带宽、工作负荷)、用户指令或与码率控制相关的任何其他合适的信息有关。
根据各种实施例,输出数据104可以被存储在本地或远程数据存储器处和/或被提供给本地或远程解码器。输出数据104可以通过通信信道传输。示例性通信信道包括诸如因特网、存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、点对点(P2P)网络、Wi-Fi网络、无线电通信等的有线或无线网络。
下面的讨论集中于包括单值像素数据的输入数据的编码。然而,应理解,本文讨论的技术可以扩展到输入数据,其中每个像素由对应于多个分量(例如色彩空间通道)的多个数据值表示。例如,图像数据块可以由相同大小或不同大小的多个块表示,每个块包括与和图像数据相关联的色彩空间的特定分量或通道有关的像素数据。在一个示例中,8×8的YCbCr编码图像数据块可以由8×8的Y(亮度)数据块和两个分别对应于Cb和Cr通道的色度数据块表示(例如,其大小对应于不同的采样率)。本文讨论的编码步骤可以应用于每个亮度和色度数据块,以便对整个输入数据进行编码。
根据本发明的各种实施例,可以在任一合适的数据级别或多个合适的数据级别实现视频编码和码率控制。图3示出了一些列示例性数据级别300,其可以包括图片组(GOP)级别301、帧级别302和基本单元级别303。在各种实施例中,图片组(GOP)可以指编码视频流中连续(或不连续)图片的集合。例如,GOP可以包括如下图像帧的流:其包括帧内和帧间预测帧二者。备选地,GOP可以仅包括多个帧间预测帧。
在各种实施例中,视频编码技术可以应用于不同的基本单元。基本单元级别可以针对不同的编码标准或应用而不同地定义。例如,在H.264中,基本单元级别可以是片级别、宏块级别、块级别、像素级别等。备选地,在HEVC中,基本单元级别可以是编码树单元(CTU)级别、编码单元(CU)级别等。
图4示出了根据本发明的各种实施例的要编码的示例性数据单元。如图所示,在H.264中,数据单元可以指帧、片、宏块、块、像素或上述任一项构成的组。例如,在支持H.264的示例性系统400中,输入数据402可以包括多个图像帧,诸如视频流中的连续图像帧。帧404可以包括一个或多个片406,每个片可以包括一个或多个宏块408。此外,宏块408可以包括一个或多个块410,每个块可以包括一个或多个像素。例如,像素412可以包括与一个或多个数据分量(例如,亮度数据分量和色度数据分量)相对应的一个或多个数据集合。
图5示出了根据本发明的各种实施例的要编码的示例性分层数据单元。如图所示,输入数据502可以包括多个帧504,其可以表示视频流中的连续图像帧。例如,在支持HEVC的示例性系统500中,每个帧504可以包括一个或多个编码树单元(CTU)或最大编码单元(LCU)506,其可以使用四叉树508以分层的方式表示。如图所示,每个LCU506可以包括一个或多个编码单元(CU)。每个CU可以包括一个或多个块。每个块可以包括一个或多个像素。每个像素可以包括与一个或多个数据分量(例如,亮度数据分量和色度数据分量)相对应的一个或多个数据集合。
在各种实施例中,本文讨论的编码步骤可以应用于任一合适的数据级别或多个合适的数据级别。在某个数据级别应用编码步骤可以表示:可以在向下一数据单元应用编码步骤之前,在给定数据级别下对整个数据单元(或其一部分)进行编码。编码步骤可以在同一数据级别应用。例如,使用H.264标准,可以在块级别(例如,8×8像素块)、宏块级别(例如,16×16像素宏块)或在片级别应用变换步骤和/或量化步骤。备选地,可以在不同的数据级别执行不同的编码步骤。例如,可以在宏块级别执行变换步骤,可以在片级别执行量化步骤,并且可以在帧级别执行熵编码步骤。在一个示例中,在整个变换后的片被量化之前,可以对给定片内的所有宏块逐一进行变换,并且在对量化后的系数进行熵编码之前,可以对帧内的所有片进行量化。
类似地,码率控制参数可适用于任一合适的数据级别或多个合适的数据级别。例如,单个量化参数可以用于块、宏块或片的量化。在一些实施例中,不同的码率控制参数可以与不同的编码操作相关联,这可以应用于不同的数据级别。例如,运动检测阈值可以用于宏块的运动检测,量化参数可以用于片的量化,并且在整个帧的熵编码期间可以使用另一码率控制参数。
根据本发明的各种实施例,各种码率控制方法可以通过合并用于确定优化的编码参数和比特分配的率失真优化(RDO)过程来提高编码效率。在使用H.264标准的一个示例中,码率模型可用于预测在用特定的QP对宏块或帧进行编码之后输出的比特数;以及失真模型可用于预测与每个QP相关联的失真。码率模型和失真模型的组合可用于确定每个宏块或帧的量化参数(QP)的最优值,例如,基于对残差信号(即,预测差异信号)的方差的测量和特定目标比特分配。例如,可以使用拉格朗日优化技术选择最佳的QP。
可以采用不同的码率控制模型不受限制地控制编码率。在一个示例中,率失真优化(RDO)过程可以使用率-量化(R-QP)模型,例如,基于以下二次率失真(R-D)模型。
在RDO过程和QP确定过程之间可能存在潜在的相互依赖关系,以进行码率控制。一方面,残差信息可用于确定适当的QP,以便实现特定编码比特率。另一方面,仅在RDO过程完成之后才能确定残差信息,其需要预定的QP。
避免这种“先有鸡还是先有蛋”难题的一种解决方案是使用线性模型,基于先前编码(和共位(co-located))单元的残差信号来预测要编码的数据单元(例如,H.264标准中的帧、片、宏块)的复杂度,其允许在编码之前选择QP(例如,在编码模式决策之前)。例如,可以使用总绝对失真(SAD)或平均绝对失真(MAD)来测量残差(例如,纹理或预测误差),其假设复杂度在图片之间逐渐地变化。然而,对于非静止的视频(例如,当发生场景改变时),由于从先前帧收集的信息不再有用或相关且线性模型可能无法预测正确的MAD,因此视频质量可能急剧下降。此外,不正确的MAD可能导致QP计算错误(以及帧窗口大小计算错误),从而可能导致差的RDO性能。
在另一个示例中,率失真优化(RDO)过程可以采用R-λ模型。使用R-λ模型,拉格朗日乘数λ的确定与RDO过程无关,这有助于解决上述“先有鸡还是先有蛋”的难题。然而,因为λ是连续变量,并且QP是离散变量,所以不存在直接的一对一对应关系。随着编码的进行,当在QP值的边界(或间隙)上迭代λ时,这可能导致比特率波动而不是收敛。作为解决方案,可以使用复杂的算法来处理编码中的比特率波动。这可能会导致额外的开销,并且在各种硬件实现中可能变得不可行。
根据本发明的各种实施例,可以使用对数R-QP模型进行码率控制以避免编码波动。例如,可以采用以下对数R-QP模型。
ln(bpp)=α·QP+β
在上述对数模型中,α和β是与视频内容相关的参数。此外,可以使用每像素比特数(bpp)来表示码率R,其可以使用以下公式计算:
其中,f表示视频帧序列的频率,w和h表示视频帧的宽度和高度。在各种实施例中,每像素比特数(bpp)的使用允许码率控制模型考虑灵活的单元和/或可变的块大小(例如,对于HEVC标准中的编码单元)。
图6示出了根据本发明的各种实施例的帧级别下的示例性码率控制方案。如图6所示,在步骤601,编码器600可以从视频流获取图像帧。所获取的图像帧可以是帧内帧或帧间帧。可以使用不同的方法对不同类型的图像帧进行编码。例如,在H.264中,可以在逐帧的基础上迭代更新每个图像帧的比特率控制模型。由于针对不同类型的帧(例如,I帧和P帧)编码的比特数的差异,编码器600可以针对相同类型的编码帧应用码率控制和更新模型。例如,对于低延迟P帧结构(IPPPPPP...)或者周期性I帧结构(IPPP...IPPP...),可以只针对P帧执行模型更新。另一方面,即使码率控制模型可用于预测I帧的QP,也可以不更新用于I帧的码率控制模型。
此外,如果需要,编码器600可以初始化各种模型参数。例如,在步骤602,编码器600可以确定所获取的图像帧是否是视频序列中的第一个图像帧。如果所获取的图像帧是视频序列中的第一个图像帧,则编码器600可以在步骤603初始化模型参数。对于上述对数模型,可以使用初始值α0和β0来初始化参数α和β。否则,编码器600可以利用现有的码率控制模型,可以在对先前图像帧进行编码之后更新(或不更新)现有的码率控制模型。
如图6所示,在步骤604,编码器600可以获取所获取的图像帧在帧级别下的目标比特率(R)。可选地,编码器600可以基于目标比特率计算所获取的图像帧的每像素比特(bpp)。在步骤605,编码器600可以基于码率控制模型来计算量化参数(QP)。例如,编码器600可以使用上述对数模型来预测QP。备选地,编码器600可以使用其他方法,例如上述二次模型来预测QP。然后,在步骤606,编码器600可以使用计算出的QP对图像帧进行编码。
此外,在编码器600完成对图像帧的编码之后,系统可以分析编码数据的编码信息和/或统计。如图6所示,在步骤607,系统可以基于对编码数据的分析来确定场景是否已经显著地改变。例如,当帧内预测块比率在阈值以上时,系统可以确定场景已经显著地改变。帧内预测块率比率可以被定义为基于对图像帧进行编码时的帧内预测块数量的比率(或百分比)。当场景已经显著地改变时,可能仅基于当前图像帧内包含的信息就可以对大量图像块进行编码,这是因为当场景显著地改变时,先前图像帧中包含的信息可能完全不同。
在步骤608,如果存在场景改变,系统可以初始化模型参数。另一方面,在步骤609,当没有显著的场景改变时,系统可以相应地更新码率控制模型参数。此外,在步骤610,系统可以检查视频是否完成。如果不是,则系统可以从视频获取另一图像帧进行编码。
根据本发明的各种实施例,可以使用各种技术更新码率控制模型参数,同时防止视频编码中的波动,即使在场景没有急剧改变时也可能发生波动。例如,系统可以使用以下公式更新码率控制模型参数α和β。
αnew=αold+Δα
βnew=βold+Δβ
在各种实施例中,系统可以利用学习率μ来动态地控制码率控制模型参数α和β的更新。例如,随着编码的进行,可以基于随机梯度下降算法,使用以下公式来更新使用对数模型的模型参数α和β。
αnew=αold+μ·QP·(ln(bpp)-(αold·QP+βold))
βnew=βold+μ·(ln(bpp)-(αold·QP+βold))
备选地,滑动窗可用于防止编码波动。在各种实施例中,滑动窗可以基于历史编码信息来平滑编码/压缩中的波动。
图7示出了根据本发明的各种实施例的使用滑动窗来防止编码波动的示例性图示700。如图所示,可用于确定优化的模型参数的滑动窗701可以包括多个图像帧。滑动窗701中的每个图像帧可以与一个或多个采样点711-718相对应。随着编码的进行,可以使用滑动窗702代替滑动窗701来更新模型参数。滑动窗702可以包括一个或多个新图像帧,其与一个或多个新采样点(例如,采样点719)相对应,而与一个或多个旧采样点(例如,采样点711)相对应的一个或多个旧图像帧可以从滑动窗702中移除。
例如,使用上述对数R-QP模型,假设窗口大小为w,滑动窗701中的每个图像帧i可以与采样点((QPi,ln(bppi)),i∈[1,w])相对应。随着编码的进行,可以使用不同的滑动窗702。滑动窗702中的每个图像帧i可以与采样点((QPi,ln(bppi)),i∈[2,w+1])相对应。
假设样本点的总数为N,则系统可以通过最小化以下成本函数来确定模型参数α和β。
当滑动窗中存在两个以上不同的采样点(即N>2)时,上述条件成立。在各种实施例中,可以对滑动窗中的采样点进行预处理,以使滑动窗中的每个采样点可以与独特的QP相关联。例如,系统可以针对每个独特的QPk计算不同值的的平均值。因此,可以将与相同QP相关联但具有不同值的的多个采样点合并到一个采样点(即,不可以将具有不同每像素比特(bpp)值的两个采样点与相同的QP相关联)。
另一方面,在滑动窗口中存在不超过两个不同的采样点的情况下(即N<=2),随着编码的进行,可以基于随机梯度下降算法来更新模型参数α和β。
图8示出了根据本发明的各种实施例的用于在帧级别控制视频编码的流程图。如图8所示,在步骤801,视频编码器可以获取对诸如图像帧的图像数据单元进行编码的目标码率,其中,将基于具有一个或多个模型参数的码率控制模型对图像数据单元进行编码。在步骤802,视频编码器可以基于使用一个或多个参考编码参数对一个或多个参考图像数据单元进行编码的结果来确定用于码率控制模型的一个或多个模型参数的值。然后,在步骤803,视频编码器可以基于具有一个或多个所确定的模型参数的码率控制模型来确定用于对图像数据单元进行编码的一个或多个编码参数的值。在步骤804,视频编码器可以使用一个或多个所确定的编码参数对图像数据单元进行编码。
根据本发明的各种实施例,可以在图像帧内以基本单位级别执行各种码率控制技术,以提高码率控制的精度,例如,用于实现恒定比特率(CBR)控制。
图9示出了根据本发明的各种实施例的具有码率控制的示例性编码器。如图9所示,编码器900可以对输入数据进行编码,例如,图像输入901可以被分为多个图像块以进行编码。编码可以基于帧内预测902和帧间预测904。帧内预测902可以仅基于当前帧内包含的信息执行,而与视频序列中的其他帧无关。可以通过基于参考帧(例如,先前处理过的帧)消除当前帧中的冗余来执行帧间预测904。例如,帧间预测904可以基于运动估计903。帧间预测904可以涉及选择运动数据,运动数据包括所选择的参考图片和运动矢量(MV),所选择的参考图片和运动矢量(MV)要应用于对每个图像块的样本进行预测。
可能存在不同的可用模式对图像块进行编码。例如,在H.264中,I片中的宏块可用的编码模式包括:用于亮度样本的帧内4x4预测和帧内16x16预测,用于色度样本的帧内8x8。在HEVC中,编码模式的数量随着CU大小的增加而大大增加。系统可以执行模式选择905以选择用于对图像块进行编码的最佳编码模式。然后,使用所选择的模式,编码器900可以执行熵编码906,其可以生成输出数据909。
附加地,编码器900可执行环路滤波907,以便减少或抑制例如参考帧中的块效应(blocking artifact)。例如,在HEVC中,系统可以利用一对滤波器,其包括去块滤波器(DBF)和样本自适应偏移滤波器(SAO)。在移除块效应之后,可以将环路滤波器的输出存储在参考帧和上下文908中,并且可以在对之后的块的编码中使用,例如,用于运动估计903。
如图9所示,编码率控制模块910可以负责比特分配911、编码信息分析和模型更新912、以及编码参数预测913。例如,在H.264中,宏块码率控制方案的实现可以包括若干过程:宏块目标比特预分配、宏块组目标比特调整、宏块组编码QP预测、熵编码信息(统计)收集和宏块模型参数更新。
图10示出了根据本发明的各种实施例的针对基本单元级别下的不同控制组的码率控制。如图所示,视频编码器1000可用于将视频流1002编码到编码数据1004中。输入视频流1002可以包括诸如图像帧A-C的多个图像帧。每个图像帧A-C可以被分为诸如基本单元的不同控制组(例如,控制组a-c)的不同的编码块组。
如图10所示,每个控制组a-c可以与单独的控制模型相关联。附加地,基本单元在不同图像帧中的相应控制组可以共享相同的控制模型。例如,图像帧A-C中的每一帧中的控制组a1011可以与具有一个或多个模型参数1031的控制模型1021相关联;图像帧A-C中的每一帧中的控制组b1012可以与具有一个或多个模型参数1032的控制模型1022相关联;以及图像帧A-C中的每一帧中的控制组c1013可以与具有一个或多个模型参数1033的控制模型1031相关联。
根据各种实施例,基本单元级别上的码率控制的粒度取决于对编码块组(或控制组)的选择。例如,在H.264中,用于编码的基本单元可以是宏块,并且基本单元的控制组可以被选择为一组宏块,例如片、瓦片或一行宏块。备选地,在HEVC中,基本单元可以是编码树单元(CTU),并且基本单元的控制组可以被选择为一组CTU。在HEVC中,CTU(也被称为最大编码单元(LCU))可以被进一步划分为一个或多个编码树块(CTB)和编码单元(CU)。
根据本发明的各种实施例,可以采用各种方法在基本单元级别上进行码率控制。例如,可以基于最大编码单元(LCU)来实现HEVC标准的参考软件中的码率控制方案。可以执行比特分配步骤,以基于针对每个LCU(例如,大小为64x64像素)的R-λ控制模型计算权重。然后,系统可以基于编码LCU的结果来调整比特分配,并且计算下一LCU的QP。然后,基于R-λ的码率控制方案中诸如硬件存储和计算开销的开销可能由于精细控制粒度而非常大。此外,基于R-λ的码率控制方案可能需要复杂的算法来应对密集处理和频繁异常值。此外,由于反馈编码统计信息中存在流水线延迟,因此可能不容易实现LCU级别。
根据本发明的各种实施例,基于对数R-QP模型的码率控制方案可以高效地实现对视频编码的精确控制。即使源内容急剧改变时,比特率控制算法也可以实现信道带宽的有效利用,同时减少传输过程期间的帧级别延迟。
图11示出了根据本发明的各种实施例的基本单元级别下的示例性码率控制方案1100。如图所示,在步骤1101,编码器1100可以针对基本单元的每个控制组执行初始比特分配。例如,在H.264中,控制组可以是宏块组(例如,一行宏块)。在对每个图像帧进行编码之前,编码器1100可以根据与每个宏块组相关联的相应控制模型,对图像帧中的每个宏块组执行初始比特分配。
在各种实施例中,可以基于帧率控制模型和要编码的帧的目标比特率,在帧级别执行初始比特分配。编码器1100可以在帧级别确定要编码的帧的编码参数(例如,QP)。然后,编码器1100可以将所预测的帧级别编码QP与每个宏块组的相应控制模型一起使用,以预测每个宏块组的诸如每像素编码比特(bpp)的编码率。此外,可以基于每个宏块的所预测的比特率为每个宏块组预先分配编码帧的目标编码比特,其可以用作每个宏块中的复杂度的指标。
例如,可以使用以下公式执行每个宏块行的比特分配,
其中,N是图像帧中的宏块数,Ti是为第i个宏块行预先分配的目标比特数,且Target_bits表示整个帧的目标编码比特。
在步骤1102,编码器1100可以获取基本单元的控制组,诸如缓冲区中的一行宏块,并且确定是否需要调整控制组的比特分配。例如,在步骤1103,编码器1100可以确定所获取的控制组是否是图像帧中用于编码的第一控制组。如果所获取的组是第一组,则系统可以继续对该组进行编码。在步骤1104,如果所获取的控制组不是图像帧中的第一组(即,图像帧的目标编码比特的一部分已经编码或者消耗),则编码器1100可以基于一个或多个较早组的编码结果调整用于所获取的组的比特分配。
在各种实施例中,在对宏块行进行编码之后,编码器1100可以确定在图像帧中对宏块进行编码实际消耗的比特数和预先分配的目标比特数之间的偏差。根据该偏差对要编码的下一宏块行的预先分配的比特数进行补偿或调整是有益的。在各种实施例中,滑动窗可用于避免编码波动。例如,调整可以如下计算,
其中SW是窗大小,Ri是为第i宏块行补偿的目标比特数,Ti是为第i宏块行预先分配的目标比特数。附加地,Acc_delta_bits是当前帧的已编码的i-1宏块行的累积编码误差(即,预先分配的目标比特数和实际消耗的比特数之间的差异)。
在步骤1105,编码器1100可以使用码率控制模型,基于调整后的目标比特来计算控制组的量化参数(QP)。例如,系统可以基于目标bppi来计算针对第i宏块行的预测QPi,该目标是根据调整后的比特率Ri计算的。在各种实施例中,用于相邻宏块的编码QP可以不急剧变化,以保证令人满意的视觉质量。例如,对于相邻宏块行,根据QPi-1对QPi应用以下约束可能是有益的。
QPi-1-1≤QPi≤QPi-1+1
在各种实施例中,编码器1100还可以基于复杂度来调整预先分配给每个控制组的目标比特率。编码器1100可以根据预先分配的比特率进行编码参数调整,来确定图像块是平坦区域还是复杂区域,以便调整编码参数以提高编码效率和质量。例如,在低比特率的情况下,系统可以调整编码参数,以便关注图像帧中最敏感的区域。在各种实施例中,当预先分配的比特率小于阈值时,系统可以确定宏块组与具有较少纹理的平坦区域相对应。此外,当预先分配的比特率高于相同或不同的阈值时,编码器1100可以确定宏块组与具有更多纹理的复杂区域相对应。这些阈值可以根据平均比特率来确定,例如,与平均比特率的比率。然后,可以调整用于对特定宏块组进行编码的QP,例如,通过加上或减去预定值ΔQP。附加地,为了提高编码图像的视觉质量,可以将图像帧中的平坦区域分类为多个级别,通过不同的阈值来区分并且用不同的QP进行编码。类似地,也可以将图像帧中的复杂区域分类为多个级别,通过不同的阈值来区分并且用不同的QP进行编码。因此,系统可以通过减少分配给视觉不敏感区域的资源来确保数据传输的流畅性,尤其是在各种低编码率情况下。
附加地,可以在逐帧的基础上迭代地更新每个宏块组的比特率控制模型。由于对不同类型的帧(例如,I和P帧)进行编码的比特数的差异,系统可以仅对相同类型的编码帧应用宏块组码率控制和模型更新。例如,对于低延迟P帧结构(IPPPPPP...)或周期性I(IPPP...IPPP...)帧结构,可以仅对P帧执行模型更新。对于I帧,不更新码率控制模型(即使码率控制模型可用于预测I帧的QP)。
在步骤1106,编码器1100可以使用计算出的QP对所获取的基本单元的控制组进行编码。此外,在步骤1107,编码器1100可以更新用于宏块组的码率控制模型参数,例如,基于编码信息和/或熵编码统计。返回参考图10,帧C的编码可以基于来自图像帧A和B的历史编码信息1030。例如,在H.264中,系统可以负责对每个宏块(组)编码之后消耗的比特数进行计数,并且在每行的最后一个宏块编码之后获取误差统计。因此,可以基于用于对图像帧中的宏块行进行编码的QP以及通过分析编码过程的结果而收集的误差统计来更新宏块行的模型参数。然后,更新后的模型可以用作下一帧中相同位置处的控制组的比特率控制模型,例如,至少参与下一帧的比特预分配和QP预测过程。
在步骤1108,编码器1100可以确定特定图像帧是否完成。如果不是,则系统可以获取另一个控制组进行编码,直到其完成对图像帧的编码为止。因此,使用上述码率控制方案,系统可以实现精确的视频编码率控制。输入图像帧可以以基本上与目标比特率匹配的编码率进行一次编码。此外,系统可以充分利用信道带宽并减少传输延迟。在对每个图像帧进行编码的过程中,系统可以针对基本单元的每个控制组(例如,针对每个宏块组)调整编码参数。因此,即使在内容源急剧改变时,系统也可以进行适当的调整来确保平滑的编码率。
根据本发明的各种实施例,可以使用硬件实现来实现基本单元级别下的码率控制以实现效率。硬件实现可能需要考虑各种开销。例如,可以根据控制精度需求和实现成本来确定控制组的选择。
图12示出了根据本发明的各种实施例的码率控制方案的示例性硬件实现。如图12所示,系统1200的硬件实现可以以顺序方式(即,使用管线)处理诸如基本单元的控制组的多个编码块组,如十二(12)个宏块行。
系统1200可以使用第一QP值QP0开始处理图像帧中的第一宏块行。一旦系统完成对第一宏块行的处理,系统1200就可以无延迟地开始对第二宏块行进行处理。由于分析第一宏块行的编码统计需要时间,因此更新后的编码参数例如QP1可能不是立即可用。为了避免中断编码过程,系统1200可以延迟编码参数QP1的更新,同时继续使用旧编码参数QP0处理第二宏块行。结果,编码参数的更新可能不会发生在第二宏块行的处理开始(即,具有偏移)。
在各种实施例中,可以基于硬件实现用于分析宏块行的编码统计所需的时间来预先确定偏移。在图12所示的示例中,可以将偏移设置为六(6),这表示更新后的QP1可以应用于第二宏块行中除了前六个宏块之外的宏块,而QP0可用于对第二宏块行中的前六个宏块进行编码。随着编码的进行,QP1可用于对第三宏块行中的前六个宏块进行编码,并且更新后的QP2可以应用于第三宏块行中除了前六个宏块之外的宏块。以类似的方式,硬件实现可以能够应用更新后的编码参数(例如,QPi),以初始偏移处理图像帧中每个随后的宏块行(例如,第i行)。在图12所示的示例中,旧QP(例如,QPi-1)可用于对每个随后的宏块行中的前六个宏块进行编码。
图13示出了根据本发明的各种实施例的用于在图像帧内控制视频编码的流程图。如图13所示,在步骤1301,视频编码器可以获取图像帧,其中图像帧包括多个编码块组,其中每个编码块组包括一个或多个编码块,并且每个编码块组与编码控制模型相关联。此外,在步骤1302,视频编码器可以基于针对第一编码块组的比特分配,为与第一编码块组相关联的第一编码控制模型确定一个或多个编码参数的值。然后,在步骤1303,视频编码器可以使用具有一个或多个所确定的编码参数的第一编码控制模型对第一编码块组进行编码。
本发明的许多特征可以使用或借助于硬件、软件、固件或其组合来执行。因此,可以使用处理系统(例如,包括一个或多个处理器)来实现本发明的特征。示例性处理器可以包括但不限于:一个或多个通用微处理器(例如,单核或多核处理器)、专用集成电路、专用指令集处理器、图形处理单元、物理处理单元、数字信号处理单元、协处理器、网络处理单元、音频处理单元、加密处理单元等。
本发明的特征可以利用、使用或借助于计算机程序产品来实现,计算机程序产品是其上/其中存储有指令的存储介质(媒体)或计算机可读介质(媒体),可以将所述指令用来对处理系统进行编程以执行本文中呈现的任何特征。存储介质可以包括但不限于任何类型的盘,包括:软盘、光盘、DVD、CD-ROM、微型驱动器和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存设备、磁卡或光卡、纳米系统(包括分子存储器IC)或者适于存储指令和/或数据的任何类型的介质或设备。
存储在机器可读介质(介质)中的任何一个上,本发明的特征可以被结合在用于控制处理系统的硬件的软件和/或固件中,并且用于使得处理系统能够利用本发明的结果与其他机构交互。这样的软件或固件可以包括但不限于应用代码、设备驱动程序、操作系统和执行环境/容器。
本发明的特征还可以使用例如诸如专用集成电路(ASIC)和现场可编程门阵列(FPGA)设备的硬件组件来从硬件上实现。用于执行本文所述功能的硬件状态机的实现方式对于相关领域的技术人员将是显而易见的。
附加地,可以使用包括一个或多个处理器、存储器和/或根据本公开的教导编程的计算机可读存储介质在内的一个或多个常规通用或专用数字计算机、计算设备、机器或微处理器,来方便地实现本发明。编程技术人员可以根据本公开的教导容易地准备适当的软件编码,这对软件领域的技术人员将是显然的。
虽然以上已经描述了本发明的各种实施例,但应该理解,它们已经以示例而非限制的方式呈现。对于相关领域的技术人员来说显而易见的是,在不脱离本发明的精神和范围的情况下,可以在本文中进行形式和细节上的各种改变。
以上借助于功能构建块描述了本发明,功能构建块说明了特定功能及其关系的执行。为了描述的方便,这些功能构建块的边界在本文中经常被任意定义。只要适当地执行了指定的功能和关系,就可以定义替代边界。因此任何这种替代边界都在本发明的范围和精神之内。
已经出于示出和描述的目的提供了本发明的前述描述。这并不是穷尽性的或将本发明限制于公开的确切形式。本发明的宽度和范围不应该受到任何上述示例性实施例的限制。对于本领域技术人员而言,许多修改和变化将是显而易见的。修改和变化包括公开特征的任何相关组合。选择和描述实施例是为了最好地解释本发明的原理及其实际应用,从而使本领域的其他技术人员能够理解本发明的各种实施例以及适合于预期的特定用途的各种修改。意图是,本发明的范围由所附权利要求及其等同物限定。
Claims (20)
1.一种用于控制视频编码的方法,包括:
获取对图像数据单元进行编码的目标码率,其中将基于具有一个或多个模型参数的码率控制模型对所述图像数据单元进行编码;
基于使用一个或多个参考编码参数对一个或多个参考图像数据单元的编码,来确定所述码率控制模型的一个或多个模型参数的值;
基于具有一个或多个所确定的模型参数的码率控制模型,来确定用于对所述图像数据单元进行编码的一个或多个编码参数的值;以及
使用一个或多个所确定的编码参数对所述图像数据单元进行编码。
2.根据权利要求1所述的方法,还包括:基于比特分配或通信约束来确定所述目标码率。
3.根据权利要求1所述的方法,其中,所述目标码率是目标比特率或目标每像素比特bpp。
4.根据权利要求1所述的方法,其中,所述图像数据单元是图片组、图像帧或图像帧的一部分。
5.根据权利要求1所述的方法,还包括:确定所述图像数据单元是否包含显著的场景改变。
6.根据权利要求5所述的方法,其中,当在对所述图像数据单元进行编码中的帧内预测块比率高于阈值时,确定所述图像数据单元包含显著的场景改变。
7.根据权利要求1所述的方法,还包括:配置具有参考图像数据单元序列的滑动窗。
8.根据权利要求7所述的方法,其中,所述参考图像数据单元序列中的至少两个参考图像数据单元使用至少一个同样的编码参数进行编码。
9.根据权利要求7所述的方法,还包括:基于对多个采样点上的码率控制模型的优化来计算模型参数。
10.根据权利要求1所述的方法,还包括:基于具有学习率的梯度方法来计算模型参数。
11.一种视频编码器,包括:
存储器,存储一个或多个计算机可执行指令;以及
一个或多个处理器,被配置为访问所述存储器并执行所述计算机可执行指令以执行包括以下操作的步骤:
获取对图像数据单元进行编码的目标码率,其中将基于具有一个或多个模型参数的码率控制模型对所述图像数据单元进行编码;
基于使用一个或多个参考编码参数对一个或多个参考图像数据单元的编码,来确定所述码率控制模型的一个或多个模型参数的值;
基于具有一个或多个所确定的模型参数的所述码率控制模型,来确定用于对所述图像数据单元进行编码的一个或多个编码参数的值;以及
使用一个或多个所确定的编码参数对所述图像数据单元进行编码。
12.根据权利要求11所述的视频编码器,其中,基于比特分配或通信约束来确定所述目标码率。
13.根据权利要求11所述的视频编码器,其中,所述目标码率是目标比特率或目标每像素比特bpp。
14.根据权利要求11所述的视频编码器,其中,所述图像数据单元是图片组、图像帧或图像帧的一部分。
15.根据权利要求11所述的视频编码器,还包括:确定所述图像数据单元是否包含显著的场景改变。
16.根据权利要求15所述的视频编码器,其中,当对所述图像数据单元进行编码中的帧内预测块比率高于阈值时,确定所述图像数据单元包含显著的场景改变。
17.根据权利要求11所述的视频编码器,其中,配置具有参考图像数据单元序列的滑动窗。
18.根据权利要求17所述的视频编码器,其中,所述参考图像数据单元序列中的至少两个参考图像数据单元使用至少一个同样的编码参数进行编码。
19.根据权利要求17所述的视频编码器,其中,基于对多个采样点上的所述码率控制模型的优化或者使用具有学习率的梯度方法来计算所述模型参数。
20.一种或多种存储有计算机可执行指令的非暂时性计算机可读存储介质,所述计算机可执行指令在由计算系统执行时将所述计算系统配置为执行包括以下内容的操作:
获取对图像数据单元进行编码的目标码率,其中将基于具有一个或多个模型参数的码率控制模型对所述图像数据单元进行编码;
基于使用一个或多个参考编码参数对一个或多个参考图像数据单元的编码,来确定所述码率控制模型的一个或多个模型参数的值;
基于具有一个或多个所确定的模型参数的所述码率控制模型,来确定用于对所述图像数据单元进行编码的一个或多个编码参数的值;以及
使用一个或多个所确定的编码参数对所述图像数据单元进行编码。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2017/113926 WO2019104635A1 (en) | 2017-11-30 | 2017-11-30 | System and method for controlling video coding at frame level |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111164972A true CN111164972A (zh) | 2020-05-15 |
Family
ID=66663722
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201780095582.8A Pending CN111164972A (zh) | 2017-11-30 | 2017-11-30 | 用于在帧级别控制视频编码的系统和方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11356672B2 (zh) |
| CN (1) | CN111164972A (zh) |
| WO (1) | WO2019104635A1 (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112312136A (zh) * | 2020-09-25 | 2021-02-02 | 西安万像电子科技有限公司 | 码流控制方法及装置 |
| CN113093795A (zh) * | 2021-03-30 | 2021-07-09 | 华南理工大学 | 一种水面无人飞船的半自动无线控制方法及装置 |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110933430B (zh) * | 2019-12-16 | 2022-03-25 | 电子科技大学 | 二次编码优化方法 |
| US11025914B1 (en) * | 2020-03-15 | 2021-06-01 | Tfi Digital Media Limited | Method based on global rate-distortion optimization for rate control in video coding |
| US12262032B2 (en) | 2020-06-30 | 2025-03-25 | Microsoft Technology Licensing, Llc | Reinforcement learning based rate control |
| CN114125451B (zh) * | 2021-12-01 | 2022-12-06 | 锐宸微(上海)科技有限公司 | 视频编码方法、视频编码装置及影像处理装置 |
| CN114286097B (zh) * | 2021-12-22 | 2023-03-17 | 南通朝辉信息技术有限公司 | 二次视频编码码率控制中编码块量化增量参数优化方法 |
| CN116095335B (zh) * | 2022-01-21 | 2025-01-07 | 杭州海康威视数字技术股份有限公司 | 一种视频解码方法、装置及存储介质 |
| CN114584536B (zh) * | 2022-02-22 | 2024-03-12 | 重庆大学 | 一种基于分区率失真建模的360度流媒体传输方法 |
| CN115017459B (zh) * | 2022-05-24 | 2024-08-13 | 浙江大学 | 一种结合最小二乘法和梯度下降法的机动目标轨迹实时预测方法 |
| CN115118975B (zh) * | 2022-06-14 | 2025-09-02 | 翱捷科技股份有限公司 | 一种视频编码的码率控制方法及装置 |
| US20240137522A1 (en) * | 2022-10-12 | 2024-04-25 | City University Of Hong Kong | Processing and encoding screen content video |
| US12519961B2 (en) * | 2023-02-17 | 2026-01-06 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for improving video encoding |
| CN116233429B (zh) * | 2023-02-28 | 2025-09-30 | 中国科学院深圳先进技术研究院 | 面向机器视觉编码的目标级别恰可识别失真的生成方法 |
| US20240283927A1 (en) * | 2024-04-16 | 2024-08-22 | Intel Corporation | Adaptive in-loop filtering in video encoding |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110075730A1 (en) * | 2008-06-25 | 2011-03-31 | Telefonaktiebolaget L M Ericsson (Publ) | Row Evaluation Rate Control |
| CN103561270A (zh) * | 2013-11-08 | 2014-02-05 | 武汉大学 | 一种用于hevc的编码控制方法及装置 |
| CN104885455A (zh) * | 2013-01-30 | 2015-09-02 | 英特尔公司 | 用于高效下一代视频编码的通过使用帧层次敏感的量化的内容自适应比特率和质量控制 |
| CN105049853A (zh) * | 2015-07-06 | 2015-11-11 | 深圳市云宙多媒体技术有限公司 | 一种基于片源分析的sao编码方法及系统 |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3055153B2 (ja) * | 1990-07-20 | 2000-06-26 | ケイディディ株式会社 | 可変レートビデオ符号化制御方式 |
| EP1745653B1 (en) | 2004-01-30 | 2017-10-18 | Thomson Licensing DTV | Encoder with adaptive rate control for h.264 |
| TWI254879B (en) * | 2004-12-17 | 2006-05-11 | Quanta Comp Inc | System and method for video encoding |
| EP1830573A1 (en) | 2006-03-02 | 2007-09-05 | Thomson Licensing | Method and apparatus for determining in picture signal encoding the bit allocation for groups of pixel blocks in a picture |
| EP1835750A1 (en) | 2006-03-17 | 2007-09-19 | THOMSON Licensing | Rho domain rate control and coding mode selection for H.264 |
| CN101083768B (zh) | 2006-06-02 | 2010-04-14 | 三星电子株式会社 | 处理视频数据的编码器和编码方法及解码器和解码方法 |
| US8135063B2 (en) | 2006-09-08 | 2012-03-13 | Mediatek Inc. | Rate control method with frame-layer bit allocation and video encoder |
| KR101083383B1 (ko) * | 2007-03-14 | 2011-11-14 | 니폰덴신뎅와 가부시키가이샤 | 부호화 비트 레이트 제어 방법 및 장치, 그 프로그램 및 프로그램을 기록한 기록매체 |
| EP2255537B1 (fr) | 2008-02-21 | 2019-06-19 | Orange | Codage et decodage d'une image ou d'une sequence d'images decoupees en blocs de pixels |
| CN101262603B (zh) | 2008-03-27 | 2011-08-31 | 方春 | 一种自适应码率控制方法 |
| US9042457B2 (en) | 2008-06-10 | 2015-05-26 | Panasonic Intellectual Property Management Co., Ltd. | Image decoding apparatus and image coding apparatus wth parallel decoding |
| WO2010005691A1 (en) | 2008-06-16 | 2010-01-14 | Dolby Laboratories Licensing Corporation | Rate control model adaptation based on slice dependencies for video coding |
| CN101674472A (zh) | 2009-09-25 | 2010-03-17 | 上海大学 | 多视点视频编码的多级码率控制方法 |
| CN102148978A (zh) | 2010-02-04 | 2011-08-10 | 成都市世嘉电子实业有限公司 | 极低时延下的帧内编码码率控制方法 |
| CN101867802A (zh) | 2010-05-17 | 2010-10-20 | 上海海维工业控制有限公司 | 一种基于编码器和缓存的两级码率控制方法 |
| US8599255B2 (en) * | 2010-12-07 | 2013-12-03 | Qnap Systems, Inc. | Video surveillance system based on Gaussian mixture modeling with two-type learning rate control scheme |
| CN103313047B (zh) | 2012-03-13 | 2016-12-14 | 中国移动通信集团公司 | 一种视频编码方法及装置 |
| CN102595143B (zh) | 2012-03-19 | 2014-01-29 | 中国科学院声学研究所 | 一种无线视频传输方法 |
| US9584802B2 (en) | 2012-04-13 | 2017-02-28 | Texas Instruments Incorporated | Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput |
| CN104113761B (zh) * | 2013-04-19 | 2018-05-01 | 北京大学 | 一种视频编码中的码率控制方法及编码器 |
| CN104754361B (zh) | 2013-12-28 | 2018-01-23 | 同济大学 | 图像编码、解码方法及装置 |
| CN104853196B (zh) | 2014-02-18 | 2018-10-19 | 华为技术有限公司 | 编解码方法和装置 |
| US10091507B2 (en) | 2014-03-10 | 2018-10-02 | Euclid Discoveries, Llc | Perceptual optimization for model-based video encoding |
| US9781420B2 (en) | 2015-08-12 | 2017-10-03 | Cisco Technology, Inc. | Quality metric for compressed video |
| US20180020238A1 (en) | 2016-07-15 | 2018-01-18 | Mediatek Inc. | Method and apparatus for video coding |
| EP3510772B1 (en) | 2016-09-09 | 2020-12-09 | Dolby Laboratories Licensing Corporation | Coding of high dynamic range video using segment-based reshaping |
-
2017
- 2017-11-30 CN CN201780095582.8A patent/CN111164972A/zh active Pending
- 2017-11-30 WO PCT/CN2017/113926 patent/WO2019104635A1/en not_active Ceased
-
2020
- 2020-05-13 US US15/931,155 patent/US11356672B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110075730A1 (en) * | 2008-06-25 | 2011-03-31 | Telefonaktiebolaget L M Ericsson (Publ) | Row Evaluation Rate Control |
| CN104885455A (zh) * | 2013-01-30 | 2015-09-02 | 英特尔公司 | 用于高效下一代视频编码的通过使用帧层次敏感的量化的内容自适应比特率和质量控制 |
| CN103561270A (zh) * | 2013-11-08 | 2014-02-05 | 武汉大学 | 一种用于hevc的编码控制方法及装置 |
| CN105049853A (zh) * | 2015-07-06 | 2015-11-11 | 深圳市云宙多媒体技术有限公司 | 一种基于片源分析的sao编码方法及系统 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112312136A (zh) * | 2020-09-25 | 2021-02-02 | 西安万像电子科技有限公司 | 码流控制方法及装置 |
| CN112312136B (zh) * | 2020-09-25 | 2024-05-17 | 西安万像电子科技有限公司 | 码流控制方法及装置 |
| CN113093795A (zh) * | 2021-03-30 | 2021-07-09 | 华南理工大学 | 一种水面无人飞船的半自动无线控制方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US11356672B2 (en) | 2022-06-07 |
| WO2019104635A1 (en) | 2019-06-06 |
| US20200275104A1 (en) | 2020-08-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11356672B2 (en) | System and method for controlling video coding at frame level | |
| US11134250B2 (en) | System and method for controlling video coding within image frame | |
| US11190775B2 (en) | System and method for reducing video coding fluctuation | |
| EP1797722B1 (en) | Adaptive overlapped block matching for accurate motion compensation | |
| US10887365B2 (en) | System and methods for bit rate control | |
| US8422546B2 (en) | Adaptive video encoding using a perceptual model | |
| US10291925B2 (en) | Techniques for hardware video encoding | |
| CN106105201B (zh) | 使用像素距离的解块滤波 | |
| EP2984832B1 (en) | Intra rate control for video encoding based on sum of absolute transformed difference | |
| EP2629523A2 (en) | Data compression for video with preprocessing | |
| US20110280306A1 (en) | Real-time video coding/decoding | |
| US11064203B2 (en) | SSIM-based rate distortion optimization for improved video perceptual quality | |
| EP2522142A2 (en) | Data compression for video | |
| Dar et al. | Motion-compensated coding and frame rate up-conversion: Models and analysis | |
| WO2013112814A1 (en) | Object detection informed encoding | |
| JP6946979B2 (ja) | 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム | |
| US20210329254A1 (en) | Bitrate control method for video coding | |
| WO2006073579A2 (en) | Methods and apparatus for providing a rate control | |
| KR101781300B1 (ko) | 시간 상관도에 기반한 고속 영상 부호화 방법 | |
| US20170311002A1 (en) | High Definition VP8 Decoder | |
| JPH07203430A (ja) | 画像符号化装置 | |
| US20250254304A1 (en) | Hardware friendly block partition combination decision in video encoding | |
| JP6200220B2 (ja) | 画像処理装置、符号化装置、復号装置、及びプログラム | |
| JP2010166275A (ja) | 画像符号化装置 | |
| KR100507441B1 (ko) | 가변장 부호의 입력 특성을 이용한 영상 신호 압축 방법및 상기 방법을 수행하는 비디오 인코더 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| WD01 | Invention patent application deemed withdrawn after publication | ||
| WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200515 |