用于无损编码的快速编码方法

文档序号:7990839阅读:336来源:国知局
用于无损编码的快速编码方法
【专利摘要】本发明包括一种设备,所述设备包括处理器,所述处理器用于接收视频帧的当前块,并且仅基于比特率代价函数来确定所述当前块的编码模式,其中所述编码模式是从多个可用的编码模式中选出的,并且其中所述比特率代价函数的计算并不考虑所述当前块的失真。
【专利说明】用于无损编码的快速编码方法
相关申请案的交叉参考
[0001]本发明要求2011年6月30日高文等人递交的发明名称为“用于复合视频的无损编码工具(Lossless Coding Tools for Compound Video)”的第 61/503,534 号美国临时专利申请案的在先申请优先权,以及2011年7月12日高文等人递交的发明名称为“用于复合视频的额外的无损编码工具(Additional Lossless Coding Tools for Compound Video)”的第61/506,958号美国临时专利申请案的在先申请优先权,上述在先申请的内容以引入的方式并入本文本中,如全文再现一般。
关于由联邦政府赞助的 研究或开发的声明
[0002]不适用。
参考缩微胶片附录
[0003]不适用。
【技术领域】

【背景技术】
[0004]即使在影片相对较短的情况下也需要对大量的视频数据进行描述,当数据要在带宽容量受限的通信网络中流过或以其他方式传送时,这样可能会造成困难。因此,视频数据通常要先压缩然后在现代电信网络中传送。视频压缩装置通常在源处使用软件和/或硬件,以在传送之前对视频数据进行编码,从而减少用来表示数字视频图像所需的数据量。接着,压缩数据在目的地处由视频解压装置接收,该视频解压装置用于对视频数据进行解码。由于网络资源受限,因此需要能提高压缩率但大体上不会降低图像质量的改进的压缩/解压技术。

【发明内容】

[0005]在一项实施例中,本发明包含一种设备,所述设备包括处理器,所述处理器用于接收视频帧的当前块,并且仅基于比特率代价函数来确定当前块的编码模式,其中所述编码模式是从多个可用的编码模式中选出的,并且其中比特率代价函数的计算并不考虑当前块的失真。
[0006]在另一项实施例中,本发明包含一种方法,所述方法包括接收视频帧的当前块,并且仅基于比特率代价函数来确定当前块的编码模式,其中所述编码模式是从多个可用的编码模式中选出的,并且其中比特率代价函数的计算并不考虑当前块的失真。
[0007]在又一项实施例中,本发明包含用在视频编码中的设备,所述设备包括处理器,所述处理器用于针对块中的多个像素中的每个像素,用参考块中的多个对应像素中的一个像素来确定差值,其中每个差值是基于一对比较像素的两个颜色值确定的,并且如果每个差值都在预设的界限内,则生成信息以对指示所述块为跳过块,其中所述信息对所述块和参考块进行识别,并且将所述信息包含到比特流中而无需对所述块进行进一步编码。
[0008]在又一项实施例中,本发明包含用在视频编码中的方法,所述方法包括针对块中的多个像素中的每个像素,用参考块中的多个对应像素中的一个来确定差值,其中每个差值是基于一对比较像素的两个颜色值确定的,并且如果每个差值都在预设的界限内,则生成信息以对指示所述块为跳过块,其中所述信息对所述块和参考块进行识别,并且将所述信息包含到比特流中而无需对所述块进行进一步编码。
[0009]从结合附图和所附权利要求书进行的以下详细描述将更清楚地理解这些和其他特征。
【专利附图】

【附图说明】
[0010]为了更完整地理解本发明,现在参考以下结合附图和详细描述进行的简要描述,其中相同参考标号表不相同部分。
[0011]图1是变换略过编码方案的一项实施例的示意图。
[0012]图2是变换略过解码方案的一项实施例的示意图。
[0013]图3是无量化变换编码方案的一项实施例的示意图。
[0014]图4是无量化变换解码方案的一项实施例的示意图。
[0015]图5是有损编码 方案的一项实施例的不意图。
[0016]图6是有损解码方案的一项实施例的示意图。
[0017]图7是编码方法的一项实施例的流程图。
[0018]图8是解码方法的一项实施例的流程图。
[0019]图9是编码模式选择方法的一项实施例的流程图。
[0020]图10是网络单元的一项实施例的示意图。
[0021]图11是通用计算机系统的示意图。
【具体实施方式】
[0022]最初应理解,尽管下文提供一项或多项实施例的说明性实施方案,但可以使用任何数目的技术,不管是当前已知还是现有的,来实施所揭示的系统和/或方法。本发明决不应限于下文所说明的所述说明性实施方案、图式和技术,包含本文所说明并描述的示范性设计和实施方案,而是可以在所附权利要求书的范围以及其均等物的完整范围内修改。
[0023]通常,视频媒体涉及相对较快地连续显示一系列静态图像或帧,从而让观察者感觉到运动。每个帧可以包含多个图像元素或像素,每个图像元素或像素可以表示帧中的单个参考点。在数字处理期间,每个像素可以被分配一个整数值(例如,0、1、……或255),所述整数值表示对应参考点处的图像质量或特征,例如,亮度或色度。在使用中,图像或视频帧可以包含大量的像素(例如,在1920X1080的帧中包含2,073,600个像素),因此对每个像素进行独立的编码和解码(下文中简称为编码)可能是繁琐且低效的。为了提高编码效率,通常将视频帧分成多个矩形块或宏块,每个矩形块或宏块都可以用作预测、变换以及量化等处理的基本单元。例如,典型的NxN的块可以包括N2个像素,其中N是大于I的整数,并且通常是四的倍数。[0024]在国际电信联盟(ITU)电信标准化部门(ITU-T)和国际标准化组织(ISO)/国际电工技术委员会(IEC)的工作草案中,高性能视频编码(HEVC)将准备作为下一个视频标准,并且已经引入了新的块概念。例如,编码单元(CU)可以指将视频帧分为相等大小或不同大小的矩形块的子分区。在HEVC中,CU可以取代先前标准的宏块结构。根据帧间预测或帧内预测的模式,一个CU可以包括一个或多个预测单元(PU),每个预测单元可以用作预测的基本单元。例如,对于帧内预测而言,一个64x64的⑶可以被对称地分为四个32x32的PU。又例如,对于帧间预测而言,一个64x64的⑶可以被非对称地分为一个16x64的PU以及一个48x64的PU。类似地,一个I3U可以包括一个或多个变换单元(TU),每个变换单元可以用作变换和/或量化的基本单元。例如,一个32x32的I3U可以被对称地分为四个16x16的TU0 一个I3U的多个TU可以共享一个相同的预测模式,但是可以单独地进行变换。本文中,术语“块”通常可以指宏块、⑶、PU或TU中的任何一个。
[0025]根据应用,可以在无损模式(即,不存在失真或信息损失)或有损模式(即,存在失真)中对块进行编码。在使用中,高质量视频(例如,具有的YUV子采样为4:4:4)可以使用无损模式进行编码,而低质量视频(例如,具有的YUV子采样为4:2:0)可以使用有损模式进行编码。有时,单个视频帧或切片(例如,具有的YUV子采样为4:4:4或4:2:0)可以采用无损模式和有损模式对多个区域进行编码,所述区域可以是矩形或不规则形状的。每个区域可以包括多个块。例如,复合视频可以包括文本、计算机图表和天然视图内容(例如,摄像机采集的视频)等不同类型的内容的组合。在复合帧中,文本和图表的区域可以在无损模式下进行编码,而天然视图内容的区域可以在有损模式下进行编码。例如,在计算机屏幕共享应用中,可能需要文本和图表的无损编码,这是因为有损编码可能导致本文和图表的质量或保真度较差,从而造成眼部疲劳。当前的HEVC测试模型(HM),例如,HM3.0,可以相当有效地对天然视图内容进行编码。然而,当前HM可能缺少用于某些视频的无损编码模式,因此它们的编码效率和速度可能受到限制。
[0026]在当前HM的有损编码方案中,可能需要对已编码视频的比特率和失真进行平衡。为了获得较少的失真,通常需要对更多的信息(例如,像素值或变换系数)进行编码,从而产生更多的编码率并且因此产生更高的比特率。另一方面,为了获得较低的比特率,可能需要移除某些信息。例如,通过二维变换操作,空间域中的像素值被转化为频域中的变换系数。在变换系数矩阵中,对应于较小空间特征的高指数变换系数(例如,在右下角)可以具有相对较小的值。因此,在随后的量化操作中,可以将较大的量化系数应用在高指数变换系数上。在对整数进行四舍五入之后,可以在高指数位置中生成多个零值变换系数,随后,这些零值变换系数在接下来的编码步骤中可以被跳过。虽然量化可能会降低比特率,但是在编码过程中针对较小空间特征的信息可能会损失。这些损失的信息可能是不可恢复的,因此失真可能会增大,并且在已解码的视频中编码保真度会下降。
[0027]在使用中,可能有多个编码模式以对视频帧进行编码。例如,帧的特定切片可以使用多种块分区(数目、大小和形状)。对于每个分区而言,如果将要使用帧间预测,那么可以存在与一个或多个参考帧相关联的多个运动矢量。否则,如果将要使用帧内预测,那么可以存在对应于多种帧内预测模式的多个参考像素。每种编码模式可能引起不同的比特率和/或失真。因此,视频编码器中的率失真优化(RDO)模块可以用于从多个编码模式中选择最佳编码模式,以确定比特率与失真之间的最佳的平衡或权衡。[0028]当前HM可以通过使用联合率失真(RD)代价对比特率和失真的总体代价联合地进行评估。例如,可以将比特率代价(表示为R)和失真代价(表示为D)结合成单个的联合率失真(RD)代价(表示为J),其可以以数学方式表示为:
J=D+ λ R
其中λ是表示比特率与特定的质量水平之间的关系的拉格朗日系数。
[0029]可以使用多种数学度量来计算失真,例如,平方失真之和(SSD)、绝对误差之和(SAE )、绝对差之和(SAD )、绝对差的平均值(MAD ),或者平方误差的平均值(MSE )。通过使用这些失真度量中的任何一个,RDO过程可以试图寻找能够将J最小化的编码模式。
[0030]在当前HM中,编码器中最佳编码模式的选择可能是一个复杂的过程。例如,对于每个块的每一可用的编码模式(表示为m),编码器可以使用模式m对所述块进行编码并且计算R,R是对所述块进行编码所需的比特数。然后,编码器可以重建所述块并且计算D,D是原始块与重建块之间的差值。随后,编码器可以使用上述方程来计算模式代价Jm。可以针对每一可用的编码模式来重复该过程。最后,编码器可以选择具有最小Jm的一个模式。编码器中的RDO过程可能是需要大量计算的过程,这是因为例如,基于块大小、帧间预测帧、帧内预测方向的多种组合,可能潜在地存在数百种可能的编码模式。在确定最佳编码模式之前,可能需要对块的R和D进行数百次计算。
[0031]此外,当对视频帧序列进行编码时,有时某些区域可以在相对较长的时间段内保持稳定。例如,在视频会议应用中,每个用户的背景区域可以在几十分钟内保持不变。在当前编码器中,RDO模块可以仍旧针对这些区域中的块对比特率和/或失真进行评估,这可能会消耗宝贵的计算资源和时间。
[0032]本文中所公开的是用于改进视频编码的系统和方法。本发明提供了无损编码模式以及强制跳过模式,所述模式可以对复合视频等视频的编码中的有损编码模式进行补充。无损模式可以包含变换略过编码方案以及无量化变换编码方案。在块的无损编码中,由于可以不引起任何失真(或者仅有少量的失真),因此可以对RDO模式选择过程进行简化。在一项实施例中,仅保留了联合RD代价的比特率部分。因此,根据多个可用的编码模式,RDO过程只需要对能够产生最少比特数的最佳编码模式进行确定。无需将重建块与原始源块进行比较,这样可以同时节省计算资源和时间。另外,如果视频帧或切片包括在相对较长周期(例如,几十秒或几十分种)内保持稳定的一个或多个区域,那么RDO过程可以在一个或多个区域中实施强制跳过模式。在强制跳过模式的一项实施例中,如果发现CU与参考帧中的对应参考CU完全匹配(或者与预设界限中的差值近似匹配),那么可以在剩余的编码步骤中跳过该CU。由于简化的RDO模式选择方案以及强制跳过模式的实施,可以更加快速且更加有效地对视频进行编码。
[0033]在使用中,编码器之前存在一个模块,用于对视频帧的内容进行分析,并且对需要无损编码的某些区域(例如,文本和/或图表区域)进行识别。关于要在无损模式下进行编码的区域的信息或指令可以传递到编码器中。基于该信息,编码器可以使用无损模式对识别的区域进行编码。或者,用户可以手动地设定使用无损模式进行编码的某些区域,并且向编码器提供识别这些区域的信息。因此,根据编码器所接收到的信息,可以在无损模式和/或有损模式下对视频(例如,复合视频)进行编码。本文中,无损编码模式可以包含变换略过编码以及无量化变换编码。在本文中对这两种无损编码方案以及有损编码方案进行了描述。
[0034]类似地,基于包含在接收的比特流中的信息,视频解码器可以使用无损模式和/或有损模式对视频帧进行解码。所述无损解码模式可以包含变换略过解码以及无量化变换解码。在本文中对这两种无损解码方案以及有损解码方案进行了描述。
[0035]图1描绘了可以在视频编码器中实施的变换略过编码方案100的一项实施例。变换略过编码方案100可以包括如图1所示进行布置的率失真优化(RDO)模块110,预测模块120、熵编码器130以及重建模块140。在运行中,包括视频帧(或切片)序列的输入视频可以被编码器接收。本文中,帧可以指预测帧(P帧)、帧内编码帧(I帧),或者双向预测帧(B帧)中的任一者。类似地,切片可以指P切片、I切片,或者B切片中的任一者。
[0036]RDO模块110可以用于为一个或多个其他模块作出逻辑决策。在一项实施例中,基于一个或多个先前编码的帧,RDO模块110可以确定一个被编码的当前帧(或切片)如何被分为多个CU,以及一个CU如何被分为一个或多个PU和TU。例如,当前帧的均质区域(即,与先前编码的帧没有差别或者差别很小的区域)可以被分为相对较大的块,而当前帧的细节区域(即,与先前编码的帧有显著差别的区域)可以被分为相对较小的块。
[0037]此外,RDO模块110可以通过确定如何对当前帧进行预测来控制预测模块120。可以通过帧间预测和/或帧内预测对当前帧进行预测。帧间预测(即,帧之间的预测)可以利用帧序列中的时间冗余,例如,连续帧的对应块之间的相似度,来减少压缩数据。在帧间预测中,RDO模块110可以基于一个或多个参考帧中的对应块,对当前帧中的块的运动矢量进行确定。另一方面,帧内预测可以利用单个帧内的空间冗余,例如,邻近块之间的相似度,来减少压缩数据。在帧内预测中,邻近当前块的参考像素可以用于生成预测块。帧内预测(即,帧内部的预测)可以使用多个可用预测模式或方向(即,HEVC中的34个模式)中的任何一个来实施,所述预测模式或方向由RDO模块110进行确定。例如,RDO模块110可以针对每个预测模式来计算绝对误差之和(SAE),并且选择产生最小SAE的预测模式。
[0038]基于RDO模块110作出的逻辑决策,预测模块120可以利用一个或多个参考帧(中贞间预测)或多个参考像素(帧内预测)来生成预测块,所述预测块可能是当前块的估计。随后,可以从当前块中减去预测块,从而生成残余块。残余块可以包括多个残余值,每个残余值可以指示当前块中的像素与预测块中的对应像素之间的差值。随后,残余块的所有值可以由熵编码器130进行扫描并且编码为编码比特流。熵编码器130可以采用任何熵编码方案,例如,内容自适应二进制算术编码(CABAC)编码方案,指数哥伦布编码方案,或者固定长度编码方案,或其任意组合。在变换略过编码方案100中,由于残余块是在没有变换步骤或量化步骤的情况下被编码的,因此在所述编码过程中不会引起任何信息损失。
[0039]为了有助于视频帧的连续编码,残余块也可以被送入重建模块140中,重建模块140可以生成用于未来块的帧内预测的参考像素或者用于未来帧的帧间预测的参考帧。如果需要,则可以在参考帧/像素用于帧间/帧内预测之前对它们执行滤波。所属领域的技术人员对预测模块120和重建模块140的功能非常熟悉,因此将不会对这些模块进行详细描述。应注意,图1可能是视频编码器的简化的图示,因此其可能只包含编码器中呈现的部分模块。其他模块(例如,滤波器、扫描仪以及发射器)虽然未在图1中示出,但是也可以包含在内以协助视频编码。在从编码器处进行传送之前,编码比特流可以进一步配置成包含其他信息,例如视频分辨率、帧率、块分区信息(大小、坐标)、预测模式等,因此可以对视频帧的编码序列适当地进行解码。
[0040]图2描绘了可以在视频解码器中实施的变换略过解码方案200的一项实施例。变换略过解码方案200可以对应于变换略过编码方案100,并且可以包括如图2所示进行布置的熵解码器210、预测模块220,以及重建模块230。在运行中,熵解码器210可以接收含有视频帧序列信息的编码比特流,该熵解码器可以将比特流解码成未压缩格式。熵解码器210可以采用任何熵解码方案,例如,CABAC解码方案、指数哥伦布解码方案,或者固定长度解码方案,或其任意组合。
[0041]对于被解码的当前块而言,在使用熵解码器210之后,可以生成残余块。此外,包含有当前块的预测模式的信息也可以由熵解码器210进行解码。随后,基于预测模式,预测模块220可以基于先前解码的块或帧生成当前块的预测块。如果所述预测模式为帧间模式,那么可以使用一个或多个先前解码的参考帧来生成预测块。否则,如果预测模式为帧内模式,那么可以使用参考块中的多个先前解码的参考像素来生成预测块。随后,重建模块230可以将残余块与预测块结合起来以生成重建块。此外,为了协助视频帧的连续解码,可以在参考帧中使用重建块以对未来帧进行帧间预测。针对相同帧中的未来块的帧内预测,重建块的一些像素也可以用作参考像素。
[0042]在使用中,如果使用变换略过编码方案100和变换略过解码方案200等无损方案对原始块进行编码和解码,那么在整个编码过程中将不会引起任何信息损失。因此,除了在传送过程中引起的失真之外,重建块可以与原始块完全一样。这种编码的高保真度可以改进观看文本和图表等视频内容时的用户体验。
[0043]在视频帧中的某些区域的无损编码期间,有时可能需要将变换步骤包含到编码过程中。例如,对于文本区域的一些块而言,添加的变换步骤可以生成与变换略过编码方案相比更加短的比特流。在一项实施例中,RDO模块可以用于确定是否包含所述变换步骤。例如,可以执行测试变换以将残余块转化为变换系数的矩阵。如果与在残余块中没有变换的情况下对残余值进行编码所需的比特数相比,对变换系数进行编码所需的比特数较小,那么可以将变换步骤包含在内。否则,可以略过变换步骤。图3描绘了无量化变换编码方案300的一项实施例,所述编码方案可以包括RDO模块310、预测模块320、变换模块330、熵编码器340,逆变换模块350,以及重建模块360。无量化变换编码方案300的一些方面可以与图1中的变换略过编码方案100相同或者类似,因此为了简明起见将不会对类似的方面进一步进行描述。
[0044]无量化变换编码方案300可以在视频编码器中实施,所述视频编码器可以接收包括视频帧序列的输入视频。RDO模块310可以用于控制一个或多个其他模块,并且可以与图1中的RDO模块110相同或者类似。基于RDO模块310作出的逻辑决策,预测模块320可以利用参考帧(巾贞间预测)或参考像素(巾贞内预测)来生成预测块,所述预测块是当前块的估计。随后,可以从当前块中减去预测块,从而生成残余块。预测模块320可以与图1中的预测模块120相同或者类似。
[0045]无量化变换编码方案300中的残余块可以首先由变换模块330从空间域变换到频域中,而不是直接进行熵编码。变换模块330可以将残余块的值(即,残余值)转化为包括多个变换系数的变换矩阵。可以使用任何合适的算法来实施变换模块330,例如,离散余弦变换(DCT )、分形变换(FT ),或离散小波变换(DWT )。在使用中,一些算法,例如,在H.264/高级视频编码(AVC)中定义的4x4整数变换,不会引起任何信息损失,而其他算法,例如,在HEVC工作草案中定义的8x8整数DCT变换,可以引起少量信息损失。例如,由于HEVC中的8x8整数DCT变换可能并不是完全可逆的,因此逆变换模块350之后的残余块的恢复值可能略微不同于(例如,最多相差±2的值)变换模块330之前的残余块的原始值。当引起少量的信息损失时,编码可以是接近无损的,而并非是无损的。然而,与量化步骤相比,由变换步骤引起的信息损失可能是不重要的或者未被注意到的,因此无量化变换编码方案300也可以作为无损编码方案的一部分包括在本文中。
[0046]熵编码器340可以对变换模块330生成的变换系数进行扫描并将其编码为编码比特流。熵编码器340可以与熵编码器130相同或者类似。为了有助于视频帧的连续编码,变换系数也可以被送入逆变换模块350中,逆变换模块350可以执行变换模块330的逆变换,并且生成残余块的精确版本(即,无损)或近似版本(即,接近无损)。随后,残余块可以被送入重建模块360中,重建模块360可以生成用于未来块的帧内预测的参考像素或者用于未来帧的帧间预测的参考帧。重建模块360可以与图1中的重建模块140相同或者类似。在从编码器处进行传送之前,编码比特流可以包含其他信息,例如视频分辨率、帧率、块分区信息(大小、坐标)、预测模式等,因此可以对视频帧的编码序列适当地进行解码。
[0047]图4描绘了可以在视频解码器中实施的无量化变换解码方案400的一项实施例。无量化变换解码方案400可以对应于无量化变换编码方案300,并且可以包括如图4所示进行布置的熵解码器410、逆变换模块420、预测模块430,以及重建模块440。在运行中,熵解码器410可以接收含有视频帧序列信息的编码比特流,该熵解码器可以将比特流解码成未压缩格式。熵解码器410可以与图2中的熵解码器210相同或者类似。
[0048]在使用熵编码器410之后,可以生成变换系数的矩阵,该矩阵随后可以被送入逆变换模块420中。逆变换模块420可以将频域中的变换系数转化为空间域中的残余像素值。在使用中,根据逆变换模块420使用的算法是否为完全可逆的,可以生成残余块的精确版本(即,无损)或近似版本(即,接近无损)。逆变换模块420可以与图3中的逆变换模块350相同或类似。
[0049]此外,熵解码器410也可以对含有当前块的预测模式的信息进行解码。基于所述预测模式,预测模块430可以生成当前块的预测块。预测模块430可以与图2中的预测模块220相同或者类似。随后,重建模块440可以将残余块与预测块结合起来以生成重建块。此外,为了协助视频帧的连续解码,可以在参考帧中使用重建块以对未来帧进行帧间预测。针对相同帧中的未来块的帧内预测,重建块的一些像素也可以用作参考像素。
[0050]在使用中,如果使用无量化变换编码方案300和无量化变换解码方案400等接近无损的方案对原始块进行编码和解码,那么在编码过程中仅会引起少量的失真。因此,除了在传送过程中弓I起的显著失真之外,重建块可以几乎与原始块相同。有时可能需要无量化变换编码方案,这是因为与变换略过方案相比,无量化变换编码方案可以获得较高的压缩率,而不会明显地降低编码保真度。
[0051]如上文所述,在当前编码器中,RDO模块可以基于联合RD代价来选择最佳编码模式。相反,在本文所公开的变换略过无损编码方案或无量化变换编码方案中,可以略过量化步骤。在不存在由量化引起的信息损失的情况下,如果存在由编码造成的原始当前块的失真,那么可以将其忽略。因此,RDO模块(例如,图1中的RDO模块110或图3中的RDO模块310)可以在其最佳编码模式选择中将失真排除在考虑范围之外。随着失真因素的移除,仅联合RD代价函数的比特率部分得到保留,因此RD代价可以称为比特率代价。在一项实施例中,比特率代价可以以数学方式表示为:
J=X R
[0052]基于所公开的比特率代价函数,RDO模块可以对当前块的多个可用编码模式的子集或全部进行测试。已测试的编码模式在块的大小、运动矢量、帧间预测参考帧、帧内预测模式,或参考像素,或其任意组合方面可以有所不同。对于每个已测试的编码模式,可以针对当前块的编码残余块,或者针对当前块的变换系数的编码矩阵来计算比特数。在比较所有生成的比特数之后,RDO模块可以选择生成最少比特数的编码模式。
[0053]在确定最佳编码模式时,与同时计算D和R的当前编码器相比,所公开的编码模式选择方案相对而言比较简单。例如,由于D部分的移除,可以不再需要将重建模块与其原始块进行比较。因此,在每个编码模式下,可以将若干计算步骤从评估过程中移除,这样可以节省编码时间和计算的资源。考虑到在评估中可能潜在地存在当前块的数百个编码模式,因此这种节省会非常显著并且可以使编码加速,从而可以非常好地协助实时编码过程。
[0054]有时没有必要使用无损模式对整个视频帧进行编码。例如,在复合视频中含有天然视图内容(例如,由低分辨率摄像机采集的)的区域可能不需要无损编码,这是因为原始视频质量可能已经是有限的,或者是因为由有损编码引起的失真可能并不显著。图5描绘了有损编码方案500的一项实施例,所述编码方案可以与用在当前HM中的编码方案相同或者类似。有损编码方案500可以包括RDO模块510、预测模块520、变换模块530、量化模块540、熵编码器550、去量化模块560、逆变换模块570,以及重建模块580。有损编码方案500的一些方面可以与图3中的无量化变换编码方案300相同或类似,因此为了简明起见将不会对类似的方面进一步进行描述。
[0055]可以在视频编码器中实施有损编码方案500,所述视频编码器可以接收视频帧的序列。RDO模块510可以用于控制一个或多个其他模块。基于由RDO模块310作出的逻辑决策,预测模块320可以利用参考帧或参考像素来生成预测块。随后,可以从来自输入视频的当前块中减去预测块,以生成残余块。可以将残余块送入变换模块530中,该模块可以将残余像素值转化为变换系数的矩阵。
[0056]与无量化变换编码方案300相比,在有损编码方案500中,变换系数在被送入熵编码器550之前,可以由量化模块540进行量化。量化模块550可以改变变换系数的标度并且将它们四舍五入为整数,从而减少非零系数的数目。因此,以信息损失为代价可以增大压缩比。
[0057]可以对由量化模块540生成的量化变换系数进行扫描。熵编码器550可以将非零值的系数编码为编码比特流。量化变换系数也可以被送入到去量化模块560中,以恢复变换系数的原始标度。随后,逆变换模块570可以执行变换模块530的逆变换,并且生成原始残余块的噪音版本。随后,有损残余块可以被送入重建模块580中,重建模块580可以生成用于未来块的帧内预测的参考像素或者用于未来帧的帧间预测的参考帧。[0058]图6描绘了可以在视频解码器中实施的有损解码方案600的一项实施例。有损解码方案600可以对应于有损编码方案500,并且可以包括如图6所示进行布置的熵解码器610、去量化模块620、逆变换模块630、预测模块640,以及重建模块650。在运行中,熵解码器610可以接收含有视频帧序列信息的编码比特流,该熵解码器可以将比特流解码成未压缩格式。可以生成量化变换系数的矩阵,随后该矩阵被送入去量化模块620,所述去量化模块620可以与图5中的去量化模块560相同或者类似。随后,去量化模块620的输出可以被送入逆变换模块630,所述逆变换模块630可以将变换系数转化为残余块的残余值。此夕卜,熵解码器610也可以对含有当前块的预测模式的信息进行解码。基于所述预测模式,预测模块640可以生成当前块的预测块。随后,重建模块650可以将残余块与预测块结合起来以生成重建块。此外,为了协助连续解码,可以在参考帧中使用重建块以对未来帧进行帧间预测。针对相同帧中的未来块的帧内预测,重建块的一些像素也可以用作参考像素。
[0059]在一项实施例中,如果需要,那么上述所有编码方案,包含变换略过编码方案100、无量化变换编码方案300,以及有损编码方案500,都可以在单个编码器中实施。例如,当对复合视频进行编码时,编码器可以接收关于应在无损模式下进行编码的区域和/或应在有损模式下进行编码的区域的信息。基于所述信息,编码器可以使用有损模式对某些区域进行编码,并且使用无损模式对其他区域进行编码。在无损模式下,在对由变换略过编码方案100生成的比特流长度与由无量化变换编码方案300生成的比特流长度进行比较之后,编码器的RDO模块(例如,图1中的RDO模块110)可以确定是否略过变换步骤。类似地,如果需要,那么上述所有解码方案,包含变换略过解码方案200、无量化变换解码方案400,以及有损解码方案600,都可以在单个解码器中实施。
[0060]为了使解码器能够适当地重建编码视频帧,所述解码器应该能够识别出用于对视频帧进行编码的一个或多个编码方案。由于无损编码仅可以应用到视频帧的一些区域中(下文中称作无损编码区域),因此有损编码可以应用到其他区域中(下文中称作有损编码区域或常规编码区域)。在携带编码视频帧的比特流中,可以传送对无损编码区域和/或有损编码区域进行信指示的信息。在使用中,此类信息可以包装为高阶语法结构,例如,比特流的序列参数集合(SPS)或图像参数集合(PPS)。SPS或PPS可以是比特流的关键规范部分,并且可以由视频编码标准来定义。在接收到比特流之后,解码器可以从SPS或PPS中提取区域指示信息,并且随后根据区域的编码模式对每个区域进行重建。在一项实施例中,SPS或PPS可以包含多个矩形无损编码区域以及识别它们在视频帧中的位置的信息(例如,左上和右下坐标,或者右上和左下坐标)。在另一项实施例中,SPS或PPS可以包含多个矩形有损编码区域以及识别它们在视频帧中的位置的信息(例如,左上和右下坐标,或者右上和左下坐标)。
[0061]在一些应用中,例如,在视频会议期间共享屏幕,视频的某些区域可以在多个视频帧中保持稳定。在这种情况下,区域指示信息仅会以相对较低的频率发生变化(例如,几十秒一次),因此由这种信令方法引起的比特率开销可以被忽略。
[0062]在无损编码区域内,可以使用变换略过方案和/或无量化变换方案。为了进行适当的解码,比特流也还可以包含关于通过变换略过方案进行编码的块以及通过无量化变换方案进行编码的块的特定信息。在一项实施例中,在无损编码区域中可以为每个PU引入两个变换略过标记。亮度变换略过标记可以指示在PU的亮度像素的编码中是否略过(或跳过)变换步骤,而色度变换略过标记可以指示在PU的色度像素的编码中是否略过变换步骤。例如,如果对于亮度像素,变换模块(例如,图3中的变换模块330)被略过,那么可以将亮度变换略过标记设置为’ I’。否则,如果使用了变换模块并且量化模块(例如,量化模块540)被略过,那么可以将亮度变换略过标记设置为’ O’。或者,如果需要,在变换模块被略过的情况下可以将亮度变换略过标记设置为’ O’,并且在使用变换模块的情况下将亮度变换略过标记设置为’ I’。可以使用与设置亮度变换略过标记相同或类似的方法来设置色度变换略过己 O
[0063]亮度变换略过标记和色度变换略过标记可以由熵编码器(例如,图1中的熵编码器130)进行编码。所述熵编码器可以使用CABAC算法,所述算法可以使用多个内容模型。在一项实施例中,针对每个亮度变换略过标记和色度变换略过标记可以使用三个内容模型。为了提高编码效率,熵编码器可以基于索引来选择内容模型,所述索引可以与邻近PU的变换略过标记相关。例如,考虑当前PU的亮度变换略过标记的编码,并且假设可以采用相同或类似的方式对当前I3U的色度变换略过标记进行编码。两个邻近PU,即,上PU和左PU,也可以具有亮度变换略过标记。两个亮度变换略过标记之和可以配置成内容模型的索引。如果上或左PU都不具有亮度变换略过标记(例如,当前处于无损编码区域的边界),那么可以将’O’分配给亮度变换略过标记。在使用选定的内容模型进行熵编码之后,编码的亮度变换标记和编码的色度变换标记可以包含在比特流中。
[0064]在一项实施例中,PU的亮度组分和色度组分可以共享相同的无损编码方案,并且这两种组分都可以在它们的编码过程中略过变换步骤或者包含变换步骤。在这种情况下,针对这两种组分可以使用单个的变换略过标记。与亮度组分和色度组分的单独的变换略过标记相比,单个变换略过标记可以引起比特流中的较少信令开销。此外,应注意,虽然在上文的描述中变换略过标记(亮度和/或色度)设置在PU水平上,但是如果需要,也可以类似地将变换略过标记设置在TU水平上,这会产生更加精细的粒度但是也会产生更多的信令开销。
[0065]图7是编码方法700的一项实施例的流程图,所述方法可以在视频编码器中实施上述编码方案中的一些或者全部。方法700可以在步骤702处开始,此处可以接收到包括视频帧或切片序列的输入视频。对于每个帧或一组帧,也可以接收到指示一个或多个无损编码区域和/或有损编码区域的信息或指令。接下来,在步骤703中,可以将区域指示信息添加到压缩比特流的高阶语法中,所述高阶语法可以识别这些无损编码区域和/或有损编码区域。所述语法可以包含在比特流的SPS或PPS中。在一项实施例中,区域指示信息可以包含多个矩形无损编码区域以及它们在视频帧中的位置(例如,左上和右下坐标,或者右上和左下坐标)。在另一项实施例中,区域指示信息可以包含多个矩形有损编码区域以及它们在视频帧中的位置(例如,左上和右下坐标,或者右上和左下坐标)。
[0066]接下来,在步骤704中,基于接收到的信息,方法700可以确定当前正在被编码的区域(例如,矩形的)是否是无损编码区域。如果满足块704中的条件,那么方法700可以前进到步骤706,以在无损模式下对当前区域进行编码(例如,使用变换略过编码方案100和/或无量化变换编码方案300)。否则,方法700可以前进到步骤730,以在有损模式下对当前区域进行编码(例如,使用有损编码方案500)。
[0067]接下来,在步骤706中,可以针对当前区域的每个块生成残余块。为了生成残余块,RDO模块(例如,图1中的RDO模块110)可以作出逻辑决策,例如,选择当前区域的最佳块分区方案,以及确定当前块(例如,PU)的最佳帧间预测模式或帧内预测模式。基于RDO模块的逻辑决策,预测模块(例如,预测模块120)可以生成预测块,随后可以从当前块中减去预测块以获得残余块。
[0068]接下来,在步骤708中,方法700可以确定对于当前块的亮度组分和/或色度组分,变换步骤是否应被略过,这可以通过RDO模块来实施。如果满足块708中的条件,那么方法700可以前进到步骤710中,此处当前块的一个或多个变换略过标记可以被设置为’ I’。否则,方法700可以前进到步骤720,此处一个或多个变换略过标记被设置为’ O’。所述二进制值可以是任意设定的。例如,如果需要,在步骤710中可以将一个或多个变换略过标记设置为’O’,而在步骤720中可以将一个或多个变换略过标记设置为’ I’。在使用中,亮度组分和色度组分可以使用单独的变换略过标记。如果这两个组分总是使用相同编码方案,那么它们也可以共享一个变换略过标记。
[0069]步骤710之后是步骤712,此处可以使用熵编码器(例如,图1中的熵编码器130)将残余块编码为压缩的比特流。所述熵编码器可以使用任何合适的算法,例如,CABAC算法。此外,一个或多个变换略过标记’I’可以由熵编码器进行编码。在一项实施例中,针对每个亮度组分和色度组分可以使用三个内容模型。
[0070]步骤720之后是步骤722,此处可以在变换模块(例如,图3中的变换模块330)中将残余块转化为变换系数的二维矩阵。所述变换模块可以使用任何适当的变换,例如,整数DCT变换、类似整数DCT变换。接下来,在步骤724中,可以使用熵编码器(例如,图3中的熵编码器340)将变换系数编码为压缩的比特流。此外,一个或多个变换略过标记’O’可以由熵编码器进行编码。
[0071]如果在步骤704中为当前区域选择了有损编码模式,那么方法700可以前进到步骤730,此处针对当前区域的每个块可以生成残余块。为了生成残余块,RDO模块(例如,图5中的RDO模块510)可以选择当前区域的块分区方案,并且选择当前块(例如,PU)的最佳帧间预测模式或帧内预测模式。基于RDO模块的逻辑决策,预测模块(例如,预测模块520)可以生成预测块,随后可以从当前块中减去预测块以获得残余块。接下来,在步骤732中,可以在变换模块(例如,变换模块530)中将残余块转化为变换系数的矩阵。接下来,在步骤734中,可以在量化模块(例如,量化模块540中)将所述矩阵量化为已量化变换系数的另一矩阵。接下来,在步骤736中,可以使用熵编码器(例如,熵编码器550)将已量化变换系数编码为可能已经具有区域指示信息的比特流。
[0072]可以使用步骤702到736中的一些步骤对当前区域的每个块进行编码。在一项实施例中,在步骤740中,在对当前区域中的所有块进行编码之后,可以例如,通过网络将比特流传送到解码器中。应理解,方法700可能仅包含所有必要编码步骤中的一部分,因而其他步骤,例如,去量化和逆变换也可以在必要的地方并入到编码过程中。
[0073]图8是解码方法800的一项实施例的流程图,所述解码方法可以对应于编码方法700并且可以在视频解码器中实施上述解码方案中的一些或者全部。方法800可以在步骤802处开始,此处可以接收到包含视频帧序列的比特流。接下来,在步骤804中,可以针对区域指示信息来检查比特流的高阶语法(例如SPS或PPS),这样可以指示一个帧或一组帧中的哪个区域已在无损模式下进行编码。接下来,在步骤806中,基于区域指示信息,方法800可以确定当前正在被解码的区域(例如,矩形的)是否已在无损模式下进行编码。如果满足块806中的条件,那么方法800可以前进到步骤808,以在无损模式下对当前区域进行解码(例如,使用变换略过解码方案200和/或无量化变换解码方案400)。否则,方法800可以前进到步骤830,以在有损模式下对当前区域进行解码(例如,使用有损解码方案500)。
[0074]对于当前区域的每个块,在步骤808中,可以在熵解码器(例如,图2中的熵解码器210)中对一个或多个编码的变换略过标记进行解码,所述解码器可以执行熵编码器的逆变换。如果当前块的亮度组分和色度组分使用单独的变换略过标记,那么针对当前块可以对两个标记进行解码。或者,如果亮度组分和色度组分共享一个变换略过标记,那么可以对一个标记进行解码。接下来,在步骤810中,方法800可以确定变换略过标记是否为’ I’。如上文所述,变换略过标记’ I’可以指示出在当前块的编码过程中变换步骤被略过,而变换略过标记’O’可以指示出在没有量化的情况下使用了变换步骤。应理解,在本文中可以基于对应的编码方法(例如,方法700)来解读二进制值。例如,如果方法700将’ I’和’ O’的意义互换,那么方法800也要相应地做出调节。如果满足块810中的条件,那么方法800可以前进到步骤812,此处可以使用熵解码器将当前块的残余块解码为未压缩格式。否则,方法800可以前进到步骤820,此处可以使用熵解码器对变换系数的矩阵进行解码。步骤820之后是步骤822,此处可以使用逆变换模块(例如,图4中的逆变换模块420)将变换系数转化为当前块的残余块。
[0075]如果需要在有损解码模式下对当前区域进行解码(由块806确定),那么方法800可以前进到步骤830,此处可以在熵解码器(例如,图6的熵解码器610)中对量化变换系数的矩阵进行解码。接下来,在步骤832中,可以对量化变换系数进行去量化,以恢复变换系数的原始标度。接下来,在步骤834中,可以将变换系数逆变换成当前块的残余块。
[0076]在使用无损解码模式或有损解码模式获得残余块之后,在步骤840中,可以生成预测块。预测块可以基于信息(使用熵编码器从比特流解码而来)确定,所述信息包括预测模式以及一个或多个先前编码的帧或块。接下来,在步骤842中,残余块可以被添加到预测块中,从而生成重建块。根据所使用的编码方案和解码方案,重建块可以是原始块(编码之前)的精确、近似,或噪音版本。除了在传送期间引起的失真之外,来自原始块的所有信息都可以保留在变换略过编码中。根据变换和逆变换的特性,所有(或几乎所有)信息都可以保留在无量化变换编码中。某些信息可能在有损编码中损失,而损失的程度主要取决于量化步骤和去量化步骤。为了有助于块的连续解码,重建块的一些像素也可以用作对未来块进行解码的参考像素。类似地,当前帧也可以用作用于对未来帧进行解码的参考帧。
[0077]如上文所述,当对视频帧序列进行编码时,有时某些区域可以在相对较长的时间段内保持稳定。例如,在视频会议应用中,每个用户的背景区域可以在几十分钟内保持不变。又例如,在计算机屏幕共享应用中(例如,用于在线视频游戏中),含有文本和/或图表的一个或多个区域可以在几十秒或几十分钟内保持不变。由于这些稳定区域的连续编码可能消耗不必要的计算资源和时间,因此需要从编码过程中跳过这些区域。
[0078]在使用中,RDO模块(例如,图1中的RDO模块110、图3中的RDO模块310,或图5中的RDO模块510)可以起始强制跳过模式(下文中也称作跳过模式)。例如,考虑在P切片中正在被编码的一个CU。应注意,也可以使用相同或类似的跳过模式对任何其他类型的块(例如,宏块或PU)以及任何其他类型的切片或帧(例如,B切片、I切片、P帧、B帧、I帧)进行编码。所述RDO模块可以为P切片中的当前CU选择最佳编码模式。在一项实施例中,在生成任何残余值之前,可以首先将当前CU与位于一个或多个参考切片中相同位置处的一个或多个对应CU (下文中称作参考CU)进行比较。P切片的参考切片可以是任何类型的。如果在当前⑶与参考⑶的所有对应像素之间找到了一个精确的匹配,那么可以将强制跳过模式确定为当前CU的最佳编码模式。或者,在一项实施例中,如果发现当前CU与参考CU的所有对应像素之间的差值在一个较小的预设界限(例如,±1)内,那么也可以将强制跳过模式确定为当前CU的最佳编码模式。
[0079]在强制跳过模式下,RDO模块可以跳过当前⑶的剩余RDO和编码步骤,从而可以提高编码的速度。例如,RDO模块可以跳过在多个编码模式(例如,多个帧间/帧内预测模式和/或PU/TU分区)下对RD或比特率代价进行计算的RDO过程。相反地,可以将当前CU作为跳过的CU来进行标记或指示。识别跳过的CU和其匹配的参考CU的信息可以包含在比特流中。在一项实施例中,对于每个跳过的CU和其匹配的参考CU,所述信令信息可以包括大小和/或多个坐标(例如,左上和右下坐标,或者右上和左下坐标)。在比特流中不需要跳过的CU的残余值或变换系数。
[0080]在接收到比特流之后,视频解码器可以基于包含在比特流中的信令信息来检查当前CU是否已在强制跳过模式下进行编码。如果是,那么匹配的参考CU的像素值可以用于重建当前CU。由于可能潜在地存在可以在强制跳过模式下进行编码的大量的CU,因此编码这些CU的比特率也会显著的降低。另外,可以使编码过程加速,从而可以相应地节约计算资源。
[0081]图9描绘了编码模式选择方法900的一项实施例。方法900可以与图7中的编码方法700互补,因此,如果需要,那么这两种方法都可以在相同的编码器中实施。方法900可以在步骤910处开始,此处可以将当前块(例如,CU或宏块)与一个或多个对应的参考块进行比较。对应参考块可以位于任何类型的参考帧或切片中。在一项实施例中,可以将当前块内的每个像素的亮度和/或色度组分与一个或多个参考块内的每个对应像素(位于相同位置处)的亮度和/或色度组分进行比较。针对每对比较像素可以生成像素值的差值。
[0082]接下来,在步骤920中,方法900可以确定所有差值是否在预设界限或容限或范围内(例如,±1)。如果满足块920中的条件,那么方法900可以前进到步骤930。否则,方法900可以前进到步骤940。在步骤930中,可以将信息包含到比特流中以指示当前块是在强制跳过模式下编码。信息可以对跳过的CU和其匹配的参考CU进行识别。在一项实施例中,对于每个跳过的CU和其匹配的参考CU,所述信令信息可以包括大小和/或多个坐标(例如,左上和右下坐标,或者右上和左下坐标)。对于当前块而言,可以跳过剩余的编码步骤(例如,RDO模式选择,残余块的编码)。
[0083]在步骤940中,方法900可以确定当前块是否位于无损编码区域内。如果满足块920中的条件,那么方法900可以前进到步骤950。否则,方法900可以前进到步骤960。在步骤950中,可以将能够产生最少比特数的编码模式选作最佳模式。最佳模式可以由RDO模块(例如,图1中的RDO模块110或图3中的RDO模块310)进行确定,所述模块可以对多个块大小、运动矢量、帧间预测参考帧、帧内预测模式,和/或参考像素的多个组合进行测试。由于在无损模式下可能不会引起失真或仅引起少量的失真,因此在确定最佳编码模式时RDO模块可以将RD代价函数的失真部分排除在外。接下来,在步骤960中,可以使用变换略过无损编码方案和/或无量化变换编码方案在无损模式下对当前块进行编码。
[0084]在步骤970中,可以将能够产生最少RD代价的编码模式选作最佳模式。在确定最佳编码模式时不同编码模式的RD代价可以考虑到比特率部分以及失真部分。接下来,在步骤980中,可以使用有损编码方案在有损模式下对当前块进行编码。应理解,方法900可能仅包含所有必要编码步骤中的一部分,因而其他步骤,例如,变换、量化、去量化、逆变换和传送也可以在适当的地方并入到编码过程中。
[0085]图10描绘了网络单元1000的一项实施例,网络单元1000可以包括编码器和解码器,所述编码器和解码器可以如上文所述,例如,在网络或系统内对视频帧进行处理。网络单元1000可以包括:多个输入端口 1010和/或接收器单元(Rx) 1012,其用于从其他网络单元或组件接收数据;逻辑单元或处理器1020,其用于处理数据并且确定将数据发送到哪个网络单元;以及多个输出端口 1030和/或发射器单元(Tx)1032,其用于将数据传送到其他网络单元。逻辑单元或处理器1020可以用于实施上文所描述的方案中的任意一个方案,例如,变换略过编码方案100,无量化变换编码方案300,编码方法700和解码方法800中的至少一个,和/或编码模式选择方法900。逻辑单元1020可以使用硬件、软件或这两者来实施。
[0086]上述方案可以在任何通用网络组件上实施,例如计算机或特定网络组件,其具有足够的处理能力、存储资源以及网络吞吐能力来处理其上的必要工作量。图11描绘了典型的通用网络组件或计算机系统1100的示意图,所述网络组件或计算机系统适用于实施本文所公开的方法的一项或多项实施例,例如,编码方法700和解码方法800。通用网络部件或计算机系统1100包含处理器1102(可以称为中央处理器单元或CPU),所述处理器与包含以下项的存储装置通信:辅助存储器1104、只读存储器(ROM) 1106、随机存取存储器(RAM)1108、输入/输出(I/O)装置1110,以及网络连接装置1112。尽管处理器1102被图示为单个处理器,但是它并非受到此类限制而是可以包括多个处理器。处理器1102可以实施为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(FPGA )、专用集成电路(AS IC ),和/或数字信号处理器(DSP),并且/或者可以是一个或多个ASIC的一部分。处理器1102可以用于实施上文所描述的方案中的任意一个方案,包含变换略过编码方案100,无量化变换编码方案300,编码方法700和解码方法800中的至少一个,和/或编码模式选择方法900。处理器1102可以使用硬件、软件或这两者来实施。
[0087]辅助存储器1104通常包括一个或多个磁盘驱动器或磁带驱动器,用于数据的非易失性存储,而且如果RAM1108的容量不足以存储所有工作数据,所述辅助存储器则用作溢流数据存储装置。辅助存储器1104可以用于存储程序,当选择执行这些程序时,所述程序将加载到RAM1108中。R0M1106用于存储在程序执行期间读取的指令以及可能的数据。ROMl 106为非易失性存储装置,其存储容量相对于辅助存储器1104的较大存储容量而言通常较小。RAMl 108用于存储易失性数据,还可能用于存储指令。对ROMl 106和RAMl 108 二者的存取通常比对辅助存储器1104的存取快。
[0088]揭示至少一项实施例,且所属领域的技术人员对所述实施例和/或所述实施例的特征的变化、组合和/或修改在本发明的范围内。因组合、整合和/或省略所述实施例的特征而产生的替代实施例也在本发明的范围内。在明确陈述数值范围或限制的情况下,应将此些表达范围或限制理解为包含属于明确陈述的范围或限制内的类似量值的重复范围或限制(例如,从约I到约10包含2、3、4等;大于0.10包含0.11,0.12,0.13等)。例如,每当揭示具有下限R1和上限Ru的数值范围时,具体是揭示属于所述范围的任何数字。具体而言,特别揭示所述范围内的以下数字=R=Rfk* (Ru-R1),其中k为从1%到100%范围内以1%递增的变量,即,k 为 1%、2%、3%、4%、7%、...、70%、71%、72%、...、95%、96%、97%、98%、99% 或 100%。此外,还特定揭示由如上文所定义的两个R数字定义的任何数值范围。除非另有说明,否则使用术语大约是指随后数字的±10%。相对于权利要求的任一元素使用术语“任选地”意味着所述元素是需要的,或者所述元素是不需要的,两种替代方案均在所述权利要求的范围内。使用例如“包括”、“包含”和“具有”等较广术语应被理解为提供对例如“由……组成”、“基本上由……组成”以及“大体上由……组成”等较窄术语的支持。因此,保护范围不受上文所陈述的描述限制,而是由所附权利要求书界定,所述范围包含所附权利要求书的标的物的所有均等物。每一和每个权利要求作为进一步揭示内容并入说明书中,且所附权利要求书是本发明的实施例。所述揭示内容中的参考的论述并不是承认其为现有技术,尤其是具有在本申请案的在先申请 优先权日:期之后的
【公开日】期的任何参考。本发明中所引用的所有专利、专利申请案和公开案的揭示内容特此以引用的方式并入本文中,其提供补充本发明的示范性、程序性或其他细节。
[0089]虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精神或范围的情况下,所揭示的系统和方法可以许多其他特定形式来体现。本发明的实例应被视为说明性的而非限制性的,且本发明不限于本文所给出的细节。举例来说,各种元件或组件可以在另一系统中组合或集成,或某些特征可省略或不实施。
[0090]另外,在 不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其他系统、模块、技术或方法组合或整合。展示或论述为彼此耦合或直接耦合或通信的其他项目也可以以电方式、机械方式或其他方式通过某一接口、装置或中间组件间接地耦合或通信。其他变化、替代和改变的实例可以由所属领域的技术人员确定,并且可以在不脱离本文本所揭示的范围和精神的情况下作出。
【权利要求】
1.一种设备,其包括: 一个处理器,所述处理器用于: 接收视频帧的当前块;以及 仅基于比特率代价函数来确定所述当前块的编码模式,其中所述编码模式是从多个可用的编码模式中选出的,并且其中所述比特率代价函数的计算并不考虑所述当前块的失真。
2.根据权利要求1所述的设备,其中所述编码模式与所述多个可用编码模式中的所有其他编码模式相比,对所述当前块进行编码所需的比特数最少。
3.根据权利要求2所述的设备,其中使用变换略过编码方案对所述当前块进行编码,其中在所述变换略过编码方案中,变换步骤和量化步骤被略过。
4.根据权利要求2所述的设备,其中使用无量化变换编码方案对所述当前块进行编码,其中在所述无量化变换编码方案中,量化步骤被略过。
5.一种方法,其包括: 接收视频帧的当前块;以及 仅基于比特率代价函数来确定所述当前块的编码模式,其中所述编码模式是从多个可用的编码模式中选出的,并且其中所述比特率代价函数的计算并不考虑所述当前块的失真。`
6.根据权利要求5所述的方法,其中所述编码模式与所述多个可用编码模式中的所有其他编码模式相比,对所述当前块进行编码所需的比特数最少。
7.根据权利要求6所述的方法,其中使用变换略过编码方案对所述当前块进行编码,其中在所述变换略过编码方案中,变换步骤和量化步骤被略过。
8.根据权利要求6所述的方法,其中使用无量化变换编码方案对所述当前块进行编码,其中在所述无量化变换编码方案中,量化步骤被略过。
9.一种用在视频编码中的设备,其包括: 一个处理器,所述处理器用于: 针对块中的多个像素中的每个像素,确定其与参考块中的多个对应像素中的一个对应像素的差值,其中每个差值是基于一对比较像素的两个颜色值确定的;并且如果所述每个差值在预设的界限内, 则生成信息以指示所述的块为跳过块,其中所述信息对所述块和所述参考块进行识另U,以及 将所述信息包含到比特流中而无需对所述块进行进一步编码。
10.根据权利要求9所述的设备,其中所述块是编码单元(CU),并且其中所述参考块是参考CU。
11.根据权利要求10所述的设备,其中所述信息包括: 所述⑶的多个坐标;以及 所述参考CU的多个坐标。
12.根据权利要求10所述的设备,其中所述预设界限是±1。
13.根据权利要求10所述的设备,其中所述预设界限是O。
14.根据权利要求12所述的设备,其中所述块位于视频帧中的第一位置上,其中所述参考块位于参考视频帧中的第二位置上,其中所述第一位置和所述第二位置的坐标相同,其中每对比较像素位于所述块和所述参考块中的相同位置上,其中所述视频帧或所述参考视频帧是预测帧(P帧)、帧内编码帧(I帧),或双向预测帧(B帧)。
15.根据权利要求12所述的设备,其中所述块位于视频切片中的第一位置上,其中所述参考块位于参考视频切片中的第二位置上,其中所述第一位置和所述第二位置的坐标相同,其中每对比较像素位于所述块和所述参考块中的相同位置上,其中所述视频切片或所述参考视频切片是预测切片(P切片)、帧内编码切片(I切片),或双向预测切片(B切片)。
16.根据权利要求12所述的设备,其中所述处理器进一步用于: 如果所述差值中的任何一个超过所述预设界限, 则仅基于比特率代价函数来确定所述块的编码模式,其中所述编码模式是从多个可用的编码模式中选出的,其中所述比特率代价函数的计算并不考虑所述块的失真,并且其中所述编码模式与所述多个可用编码模式中的所有其他编码模式相比,对所述当前块进行编码所需的比特数最少。
17.—种用在视频编码中的方法,其包括: 针对块中的多个像素中的每个像素,确定其与参考块中的多个对应像素中的一个对应像素的差值,其中每个差值是基于一对比较像素的两个颜色值确定的;并且 如果所述每个差值在预设的界限内, 则生成信息以指示所述 块为跳过块,其中所述信息对所述块和所述参考块进行识别,以及 将所述信息包含到比特流中而无需对所述块进行进一步编码。
18.根据权利要求17所述的方法,其中所述块是编码单元(CU),并且其中所述参考块是参考⑶。
19.根据权利要求18所述的方法,其中所述信息包括: 所述⑶的多个坐标;以及 所述参考CU的多个坐标。
20.根据权利要求18所述的方法,其中所述预设界限是±1。
21.根据权利要求18所述的方法,其中所述预设界限是±0。
22.根据权利要求20所述的方法,其中所述块位于视频帧中的第一位置上,其中所述参考块位于参考视频帧中的第二位置上,其中所述第一位置和所述第二位置的坐标相同,其中每对比较像素位于所述块和所述参考块中的相同位置上,其中所述视频帧或所述参考视频帧是预测帧(P帧)、帧内编码帧(I帧),或双向预测帧(B帧)。
23.根据权利要求20所述的方法,其中所述块位于视频切片中的第一位置上,其中所述参考块位于参考视频切片中的第二位置上,其中所述第一位置和所述第二位置的坐标相同,其中每对比较像素位于所述块和所述参考块中的相同位置上,其中所述视频切片或所述参考视频切片是预测切片(P切片)、帧内编码切片(I切片),或双向预测切片(B切片)。
24.根据权利要求20所述的方法,其进一步包括: 如果所述差值中的任何一个超过所述预设界限, 则仅基于比特率代价函数来确定所述块的编码模式,其中所述编码模式是从多个可用的编码模式中选出的,其中所述比特率代价函数的计算并不考虑所述块的失真,并且其中所述编码模式与所述多个可用编码模式中的所有其他编码模式相比,对所述当前块进行编码所需的 比特数最少。
【文档编号】H04N19/176GK103782598SQ201280032348
【公开日】2014年5月7日 申请日期:2012年6月29日 优先权日:2011年6月30日
【发明者】高文, 乔治·库克, 杨名远, 于浩平, 宋锦 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1