一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

视频解码方法和解码器、存储介质与流程

2022-03-23 09:25:38 来源:中国专利 TAG:

视频解码方法和解码器、存储介质
1.本技术是申请号为201780053103.6、申请日为2017年7月27日、发明名称为“视频编码方法和编码器、视频解码方法和解码器、存储介质”的发明专利申请的分案申请。
2.优先权要求
3.本公开得益于2016年8月29日提交的题为“multidimensional quantization techniques for video coding/decoding systems”的美国专利申请15/250,608的优先权,该专利申请的全部以引用方式并入本文。


背景技术:

4.本公开涉及视频压缩和解压缩技术,更具体地讲,涉及为视频压缩和解压缩系统提供改善的带宽控制和编码性能。
5.现代视频压缩系统,例如mpeg-4avc/h.264,mpeg-h第二部分/hevc/h.265,vp9,vp10和其他系统采用多种工具,包括空间和时间预测,变换,量化,回路滤波和熵编码等,作为其实现压缩的编码过程的一部分。在执行预测过程之后,通常将变换编码应用于特定块大小的残差数据,以更好地与该信息去相关并实现能量压缩。对转换处理后产生的系数进行量化,然后对其进行熵编码。这相当于单个维度中的量化。通常使用均匀量化。
6.在较早期系统中,使用离散余弦变换(“dct”),然而,最近使用该变换的整数近似以及离散正弦变换(“dst”)。还使用其他变换,例如walsh hadamard,haar等。通常使用用于预测,例如4x4,8x8,16x16,32x32和64x64块预测和变换两者的不同块大小。非正方形变换以及形状自适应变换也被一些系统使用,而在应用变换之前也可应用对残差数据的自适应色彩空间变换。
7.对于一些场景,尤其是对于高比特率/低压缩比,发现跳过块的变换过程实际上是有利的,并且在量化之后比变换编码提供更好的编码效率。此类方案在hevc中采用,并且被命名为“变换跳过”编码模式。另一方面,除了变换编码和量化之外,一些编解码器诸如h.263 还引入了在应用变换和量化之前减少残差数据的分辨率的想法。解码器随后将必须对数据进行去量化,反转变换系数,然后使用预定义插值滤波器将所得的块放大,以最终重建残差信号。然后将该残差信号添加到预测信号以生成最终重建块。然后可应用附加的回路滤波。该编码模式被命名为“降低分辨率更新”(“rru”)编码模式。在h.263中以及在mpeg-4avc/h.264和hevc/h.265中提出时,将该编码模式应用于整个图像。
8.现有的编码技术仅提供有限的灵活性来控制视频的回路量化。现有编码器仅能够在子帧/子画面级量化输入数据的单个特征—变换系数的量化,其在块或宏块级进行。一些类型的量化根本不在回路中执行,并且不能在子帧级别控制。因此,本发明人认为需要允许视频编码器沿多个维度对输入图像数据进行量化并且针对子帧级别的那些维度选择量化参数的编码技术。
附图说明
9.图1为根据本公开的实施方案的视频递送系统的简化框图。
10.图2是根据本公开的实施方案的编码系统的功能框图。
11.图3是根据本公开的实施方案的解码系统的功能框图。
12.图4示出了根据图2的编码系统和图3的解码系统由示例性像素块进行的处理。
13.图5示出了根据本公开的实施方案的解码方法。
14.图6是根据本公开的实施方案的编码系统的功能框图。
15.图7为与图6的编码系统可操作的解码系统的功能框图。
16.图8是根据本公开的另一实施方案的编码系统的功能框图。
17.图9是根据本公开的实施方案的解码系统的功能框图。
18.图10是根据本公开的另一实施方案的编码系统的功能框图。
19.图11是根据本公开的实施方案的解码系统的功能框图。
20.图12和图13示出了根据本公开的实施方案的帧的量化的示例性选择。
具体实施方式
21.本公开的实施方案提供沿多个维度对输入视频进行量化的视频编码和解码技术。根据这些技术,像素残差可由输入数据的阵列与预测数据的阵列的比较生成。可在第一维度量化像素残差。在量化之后,可以将量化像素残差变换成变换系数的阵列。变换系数可在第二维度量化,并且进行熵编码。解码技术将这些过程颠倒。在其他实施方案中,可以并行地或级联地在变换阶段的上游提供多个量化器,这为视频编码器提供更大的灵活性以争取在不同维度量化数据,从而平衡压缩效率的竞争兴趣和恢复视频的质量。可在子帧颗粒度下进行各种量化器的参数选择。
22.图1(a)示出了根据本公开的一个实施方案的一种视频递送系统100的简化框图。系统100可包括经由网络互连的多个终端110,120。终端110,120可编码视频数据以用于经由网络传输给其对应终端。因此,第一终端110可本地捕获视频数据,对视频数据进行编码并经由信道将经编码的视频数据传输至对应终端120。接收终端120可接收经编码的视频数据,对其解码,并将其本地呈现,例如在终端120处的显示器上。如果在视频数据的双向交换中接合终端,则终端120可本地捕获视频数据,对视频数据进行编码并经由另一信道将经编码的视频数据传输至对应终端110。接收终端110可接收从终端120传输的编码视频数据,对其解码,并且例如在其自己的显示器上本地呈现。所述过程可在帧和场画面编码两者上操作,但为简单起见,本讨论将描述在整体帧的上下文中的技术。
23.视频编码系统100可在多种应用中使用。在第一应用中,终端110,120可支持编码视频的实时双向交换以在它们之间建立视频会议会话。在另一应用中,终端110可编码预先产生的视频(例如电视或电影节目)并存储经编码的视频用于递送给一个或者经常递送给多个进行下载的客户端(例如,终端120)。因此,正在编码的视频可以是实时的或预先产生的,并且终端110可以充当媒体服务器,根据一到一或一到多分发模型来递送经编码的视频。出于本论述的目的,除非另外指明,视频的类型和视频发布方案是无关紧要的。
24.在图1(a)中,将终端110,120分别示为智能电话和平板电脑,但本公开的原理并不限于此。本公开的实施方案还可用于计算机(台式计算机和膝上型计算机两者),计算机服务器,媒体播放器,专用视频会议设备和/或专用视频编码设备。
25.网络表示在终端110,120之间传递已编码视频数据的任意数量的网络,包括例如
有线通信网络和/或无线通信网络。通信网络可在电路交换信道和/或分组交换信道中交换数据。代表性网络包括电信网、局域网、广域网和/或互联网。出于本论述的目的,除非另外指明,否则网络的体系结构和拓扑结构对本发明的操作是无关紧要的。
26.图1(b)是示出编码终端的部件的功能框图。编码终端可包括视频源130,预处理器135,编码系统140和发射器150。视频源130可供应要编码的视频。视频源130可被提供为捕获本地环境或者存储来自其他源的视频的存储设备的图像数据的相机。预处理器135可对要编码的视频执行信号调节操作以用于编码的视频数据。例如,预处理器135可改变源视频的帧速率,帧分辨率和其他特性。预处理器135还可对源视频执行滤波操作。
27.编码系统140可对视频执行编码操作以减小其带宽。通常,编码系统140利用源视频内的时间和/或空间冗余。例如,编码系统140可执行运动补偿预测编码,其中视频帧或场画面被解析为子单元(为方便起见称为“像素块”),并且各个像素块相对于预测像素块进行差分编码,所述预测像素块来源于先前编码的视频数据。给定像素块可根据多种预测编码模式中的任一种来编码,诸如:
28.·
帧内编码,其中输入像素块相对于共同帧的先前编码/解码数据差分编码;
29.·
单预测帧间编码,其中输入像素块相对于先前编码/解码的帧的数据差分编码;和
30.·
双预测帧间编码,其中输入像素块相对于一对先前编码/解码帧的数据差分编码。
31.·
组合帧内-帧间编码,其中输入像素块相对于来自先前编码/解码帧和来自当前/公共帧两者的数据差分编码。
32.·
多假设帧内-帧间编码,其中输入像素块相对于来自若干先前编码/解码帧的数据以及来自当前/公共帧的潜在数据差分编码。
33.像素块还可根据其他编码模式诸如先前讨论的变换跳过和rru编码模式进行编码。
34.编码系统140可包括编码器142,解码器143,回路滤波器144,画面缓冲器145和预测器146。编码器142可使用由预测器146提供的预测像素块数据将差分编码技术应用于输入像素块。解码器143可将编码器142所施加的差分编码技术反转为被指定为参考帧的编码帧的子集。回路滤波器144可将滤波技术应用于由解码器143生成的重建参考帧。画面缓冲器145可存储用于预测操作的重建参考帧。预测器146可从存储在画面缓冲器中的参考帧内预测输入像素块的数据。
35.发射器150可通过信道ch将经编码的视频数据传输至解码终端。
36.图1(c)是示出了根据本公开的实施方案的解码终端的部件的功能框图。解码终端可包括接收器160以从信道接收经编码的视频数据,解码经编码数据的视频解码系统170;后处理器180,和消费视频数据的视频宿190。
37.接收器160可从网络接收数据流,并且可将数据流的分量路由至视频解码系统170内的适当单元。虽然图1(b)和图1(c)示出了用于视频编码和解码的功能单元,但是终端110,120通常将包括用于与视频相关联的音频数据的编码/解码系统,以及可能包括其他处理单元(未示出)。因此,接收器160可解析来自数据流的其他元素的编码视频数据并将其路由至视频解码系统170。
38.视频解码系统170可执行反转由编码系统140执行的编码操作的解码操作。视频解码器可包括解码器172,回路滤波器173,画面缓冲器174和预测器175。解码器172可将编码器142所施加的差分编码技术反转为编码帧。回路滤波器144可将滤波技术应用于由解码器172生成的重建帧数据。例如,回路滤波器144可执行各种滤波操作(例如,去块,去振铃滤波,样本自适应偏移处理等)。滤波的帧数据可从解码系统输出。画面缓冲器174可存储用于预测操作的重建参考帧。预测器175可根据编码视频数据中提供的预测参考数据,从由画面缓冲器存储的参考帧内预测输入像素块的数据。
39.后处理器180可执行操作来调节用于显示的重建视频数据。例如,后处理器180可执行各种滤波操作(例如,去块,去振铃滤波等),这可模糊由编码/解码过程生成的输出视频中的视觉伪影。后处理器180还可改变重建视频的分辨率,帧速率,色彩空间等以使其符合视频宿190的要求。
40.视频宿190表示解码终端中可消耗重建视频的各种硬件和/或软件部件。视频宿190通常可包括可呈现重建视频的一个或多个显示设备。另选地,视频宿190可由存储重建视频以供稍后使用的存储器系统来表示。视频宿190还可包括根据应用程序中提供的控件来处理重建视频数据的一个或多个应用程序。在一些实施方案中,视频宿可表示传输系统,该传输系统将重建视频传输至与解码终端分开的另一设备上的显示器;例如,笔记本计算机生成的重建视频可被传输到大型平板显示器以用于观看。
41.对编码终端和解码终端(图1(b)至图1(c))的上述讨论示出了执行来编码和解码终端之间在单一方向上的视频数据的操作,诸如从终端110至终端120(图1(a))。在将在终端110,120之间执行视频双向交换的应用中,每个终端110,120将具有与编码终端(图1(b))相关联的功能单元以及每个终端110,120也将具有与解码终端(图1(c))相关联的功能单元。实际上,在某些应用中,终端110,120可在单个方向上交换编码视频的多个流,在这种情况下,单个终端(例如终端110)将具有其中提供的编码终端(图1(b))的多个实例。此类具体实施完全符合本讨论。
42.图2是根据本公开的实施方案的编码系统200的功能框图。系统200可包括像素块编码器210,像素块解码器220,回路滤波器230,预测缓冲器240,预测器250,控制器260和语法单元270。像素块编码器和解码器210,220和预测器250可迭代地在帧的各个像素块上操作。预测器250可预测在新呈现的输入像素块的编码期间使用的数据。像素块编码器210可通过预测编码技术对新像素块进行编码,并将编码像素块数据提供给语法单元270。像素块解码器220可解码经编码像素块数据,由此产生解码像素块数据。回路滤波器230可对从像素块解码器220所获得的解码像素块组装的解码帧数据执行各种滤波操作。滤波帧数据可被存储在预测缓冲器240中,可用于对稍后接收的像素块预测的源。语法单元270可组装来自符合管理编码协议的编码像素块数据的数据流。
43.像素块编码器210可包括减法器212,缩减器213,残差量化器214,变换单元215,系数量化器216和熵编码器217。像素块编码器210可接受减法器212处的输入数据的像素块。减法器212可接收来自预测器250的预测像素块,并由此生成表示输入像素块和预测像素块之间的差值的像素残差阵列。缩减器213可对从减法器212输出的残差数据执行空间分辨率降低。残差量化器214可对从缩减器213输出的样本数据执行量化。量化器214可为均匀或非均匀量化器。变换单元215可向从残差量化器214输出的样本数据应用变换,以将数据从像
素域转换成变换系数域。系数量化器216可对由变换单元215输出的变换系数执行量化。量化器216可为均匀或非均匀量化器。熵编码器217可通过例如通过可变长度码字对输出进行编码来减小系数量化器的输出带宽。
44.在操作期间,缩减器213,残差量化器214和系数量化器216可根据控制每个单元操作的编码参数来操作。例如,缩减器213可根据分辨率量化参数(qr)来操作,该分辨率量化参数确定要应用于其输入像素块的缩减水平。相似地,残差量化器214可根据系数量化参数(q
sp
)来操作,该系数量化参数确定应用到输入到量化器214的残差样本的量化水平。并且系数量化器216可根据系数量化参数(q
p
)进行操作,该系数量化参数确定要应用于输入到系数量化器216的变换系数的量化水平。这些量化器可根据信号模式m
qp
和m
qr
进行操作,该信号模式指定量化器是均匀的还是非均匀的量化器。因此,缩减器213,残差量化器214,系数量化器216中的每一个在不同维度上操作,因为它们量化图像数据的不同特征。量化维度不必彼此正交。量化参数qr,q
sp
和q
p
可由控制器260确定,并且可在由编码系统200输出的经编码的视频数据中以明确或隐含的方式发出信号。
45.在一个实施方案中,量化参数qr,q
sp
和q
p
可作为多值量化参数应用到其相应的输入数据,所述多个值量化参数可例如在像素域像素块内的不同像素位置或变换域像素块内的不同系数位置之间变化。因此,量化参数qr,q
sp
和q
p
可被提供为量化参数阵列。
46.在事件保证时,变换单元215可操作在多种变换模式中。例如,可选择变换单元215以应用dct,dst,walsh hadamard变换,haar变换,daubechies小波变换等。在实施方案中,控制器260可选择由变换单元215应用的编码模式m,并且可相应地配置变换单元215。编码模式m也可在经编码的视频数据中被明确或暗示地发出信号。
47.像素块解码器220可反转像素块编码器210的编码操作。例如,像素块解码器220可包括系数去量化器222,逆变换单元223,残差去量化器224,放大器225,和加法器226。像素块解码器220可从系数量化器216的输出获取其输入数据。尽管允许,像素块解码器220不必执行熵编码数据的熵解码,因为熵编码是无损事件。系数去量化器222可反转像素块编码器210的系数量化器216的操作。去量化器222可执行如解码信号m
qp
所指定的均匀或非均匀去量化。相似地,逆变换单元223,残差去量化器224和放大器225可分别反转变换单元215,残差量化器214和缩减器213的操作。它们可使用相同的量化参数qr,q
sp
和q
p
以及变换模式m作为像素块编码器210中的对应部分。残差去量化器224可执行如解码信号m
qr
所指定的均匀或非均匀去量化。缩减器213,残差量化器214和系数量化器216的操作可能在各个方面截断数据,因此,与向像素块编码器210中的对应部分呈现的数据相比时,由系数去量化器222,残差去量化器224和放大器225恢复的数据可能会具有编码误差。
48.加法器226可反转减法器212所执行的操作。它可接收来自预测器250的减法器212用于生成残差信号的相同预测像素块。加法器226可将预测像素块添加到由放大器225输出的重建残差值,并且可输出重建像素块数据。
49.回路滤波器230可对恢复像素块数据执行各种滤波操作。例如,回路滤波器230可包括去块滤波器232和样本自适应偏移(“sao”)滤波器233。去块滤波器232可在重建像素块之间的接缝处过滤数据,以减少由于编码而产生的像素块之间的中断。sao滤波器可例如基于边缘方向/形状和/或像素/颜色分量水平,根据sao“类型”将偏移添加到像素值。回路滤波器230可根据由控制器260选择的参数来操作。
50.预测缓冲器240可存储经滤波的像素数据以用于其他像素块的后续预测。对于不同预测模式,预测器250可使用不同类型的预测数据。例如,对于输入像素块,帧内预测从相同帧的解码数据获得预测参考,该输入像素块定位在该相同帧中。因此,预测缓冲器240可存储在编码时每个帧的解码帧块数据。对于相同的输入像素块,帧间预测可采用来自先前编码和解码帧的预测参考,所述帧被指定为“参考帧”。因此,预测缓冲器240可存储这些经解码的参考帧。
51.如所讨论,预测器250可将预测数据提供至像素块编码器210以用于生成残差。预测器250可包括帧间预测器252,帧内预测器253和模式决定单元254。帧间预测器252可接收表示要编码的新像素块的像素块数据,并且可在预测缓冲器240中搜索来自参考帧的像素块数据,以用于对输入像素块进行编码。帧间预测器252可支持多种预测模式,诸如p模式编码和b模式编码。帧间预测器252可选择帧间预测模式并提供预测数据,该预测数据提供与被编码的输入像素块最接近匹配。帧间预测器252可生成预测参考指示符,诸如运动向量,以识别参考帧中哪些部分被选择为输入像素块的预测源。
52.帧内预测器253可支持帧内(i)模式编码。帧内预测器253可从与所编码的像素块相同的帧中搜索编码像素块数据,所述像素块提供与输入像素块的最接近匹配。帧内预测器253还可生成预测参考指示符以识别帧的哪个部分被选择为输入像素块的预测源。
53.模式决定单元254可选择要应用于输入像素块的最终编码模式。通常,在给定目标比特率的情况下解码视频时,模式决定单元254选择将实现最低失真的预测模式。当选择编码模式以满足编码系统200所遵循的其他策略,诸如满足特定信道行为,或支持随机接入或数据刷新策略时,可能出现异常。模式决定单元254可将预测数据输出到像素块编码器和解码器210,220,并且可向控制器260提供对所选择的预测模式的识别以及对应于所选择的模式的预测参考指示符。
54.控制器260可控制编码系统200的整个操作。控制器260可基于对输入像素块的分析和外部约束(诸如编码比特率目标和其他操作参数)来选择像素块编码器210和预测器250的操作参数。与本讨论相关,当其选择量化参数诸如缩减参数qr,残差量化参数q
sp
,系数量化器q
p
,使用均匀或非均匀量化器,和/或变换模式m时,其可向语法单元270提供那些参数,该语法单元可包括表示由系统200输出的编码视频数据的数据流中的那些参数的数据。控制器260还可确定一个或多个量化器单元(例如,系数量化器216)不应应用量化,在这种情况下,控制器260可禁用量化器。如上所述,控制器260还可确定变换单元215的操作模式。
55.如所讨论的,量化参数qr,q
sp
和/或q
p
不必提供作为均匀应用于像素块的所有像素的单个值,而是可被提供为相应量化参数阵列,其值在每个像素位置处发生变化。在一个实施方案中,多种量化器阵列可根据预先确定的协议定义,每个协议均具有不同像素位置处的相应量化值;在操作期间,控制器260可通过提供索引或其他标识符来识别要使用的阵列。
56.在另一个实施方案中,量化参数qr,q
sp
和/或q
p
(不管是单个值的还是值阵列)可源自图像数据的特征。例如,量化参数q
sp
可基于对应于像素残差的预测像素值的强度来选择。在这种情况下,q
sp
的值可根据预测器的强度值针对每个像素而变化,例如,对于具有较大预测器值的样本而言,q
sp
的值可高于具有较小预测器值的样本。这些量化参数可使用线性,即,标量,公式,或使用更复杂的非线性/非均匀公式来定义。
57.在一个实施方案中,量化器可由以下形式的预先确定的函数表示:q(i,j)=fk(p(i,j),i,j),其中q表示有问题的量化器,i和j表示被量化的像素块内的值的位置(像素域值或变换域值),p(i,j)表示正被量化的像素强度值,并且fk表示p,i和j与q相关的函数。作为信令的一部分,控制器260可提供识别正在使用的函数的数据,以及相应函数所操作的任何其他数据(例如,可在相应函数处工作的任何标量和偏移)。
58.量化过程也可使用查找表表单(未示出)来指定。查找表表单可涉及使用内插技术来确定查找表中未包含的某些值的量化/去量化过程。另选地,量化参数qr和/或q
sp
,q
p
可根据先前编码的相邻像素块的量化参数来预测。在另一实施方案中,第一组量化参数qr和/或q
sp
,q
p
可在编码序列的更高级别构造中发信号通知(例如,帧或切片标头)并且发出信号的一组量化参数qr和/或q
sp
,q
p
的替代可在该构造的像素块被编码时逐像素块发信号通知。
59.在操作期间,控制器260可基于每个像素块或基于较大粒度(例如,每帧,每片,每个最大编码单元(“lcu”)或另一个区域)以图像数据的不同粒度来修改缩减器213,残差量化器214,系数量化器216以及变换单元215的操作参数。在实施方案中,量化参数可基于每个像素在编码帧内进行修改。
60.另外,如所讨论的,控制器260可控制回路滤波器230和预测器250的操作。对于预测器250,此类控制可包括模式选择(λ,待测模式,搜索窗口,失真策略等),并且对于回路滤波器230,包括选择滤波器参数,重新排序参数,加权预测等。
61.图3是根据本公开的实施方案的解码系统300的功能框图。解码系统300可包括语法单元310,像素块解码器320,回路滤波器330,预测缓冲器340和预测器350。语法单元310可接收经编码的视频数据流,并且可将经编码的数据解析成其组成部分。表示编码参数的数据可被提供给控制器360,而表示编码残差的数据(图2的像素块编码器210输出的数据)可被提供给像素块解码器320。像素块解码器320可反转由像素块编码器提供的编码操作(图2)。回路滤波器330可过滤重建的像素块数据。重构的像素块数据可组装成用于显示的帧并且从解码系统300输出作为输出视频。帧还可存储在预测缓冲器340中以用于预测操作。预测器350可向像素块解码器320提供预测数据,所述预测数据由编码视频数据流中接收的编码数据确定。
62.像素块解码器320可包括熵解码器321,系数去量化器322,逆变换单元323,残差去量化器324,放大器325,和加法器326。熵解码器321可执行熵解码以反转由熵编码器217执行的过程(图2)。系数去量化器322可反转像素块编码器210的系数量化器216的操作(图2)。相似地,逆变换单元323,残差去量化器324和放大器325可分别反转变换单元215,残差量化器214和缩减器213的操作(图2)。它们可以使用量化参数qr,q
sp
,和q
p
,以及量化器模式类型m
qp
和m
qr
,所述量化器模式类型提供在经编码的视频数据流中。由于缩减器213,残差量化器214和系数量化器216的操作在各个方面截断数据,因此,在与向像素块编码器210中的对应部分呈现的输入数据相比时,由系数去量化器322,残差去量化器324和放大器325恢复的数据可能会具有编码误差(图2)。
63.加法器326可反转减法器212所执行的操作(图2)。它可接收来自预测器350的预测像素块,所述预测像素块由经编码的视频数据流中的预测参考所确定。加法器326可将预测像素块添加到由放大器325输出的重建残差值,并且可输出重建像素块数据。
64.回路滤波器330可对重构像素块数据执行各种滤波操作。如图所示,回路滤波器
330可包括去块滤波器332和sao滤波器333。去块滤波器332可在重建像素块之间的接缝处过滤数据,以减少由于编码而产生的像素块之间的中断。sao滤波器可例如基于边缘方向/形状和/或像素水平来根据sao类型对像素值添加偏移。也可以以类似的方式使用其他类型的回路滤波器。去块滤波器332和sao滤波器333的操作理想地将模拟其对应部分在编码系统200中的操作(图2)。因此,在不存在传输误差或其他异常的情况下,从解码系统300的回路滤波器330获得的解码帧数据将与从编码系统200的回路滤波器230获得的解码帧数据(图2)相同;这样,编码系统200和解码系统300应在它们各自的预测缓冲器240,340中存储一组共同的参考画面。
65.预测缓冲器340可存储经滤波的像素数据以用于其他像素块的后续预测。预测缓冲器340可存储在被编码用于帧内预测时每个帧的经解码像素块数据。预测缓冲器340还可存储解码的参考帧。
66.如所讨论的,预测器350可向像素块解码器320提供预测数据。预测器350可提供由编码视频数据流中提供的预测参考指示符所确定的预测像素块数据。
67.控制器360可控制解码系统300的整个操作。控制器360可基于编码视频数据流中接收的参数来设定像素块解码器320和预测器350的操作参数。如本讨论有关,这些操作参数可包括量化参数,诸如缩减参数qr,残差量化参数q
sp
/或系数量化器q
p
和逆变换单元323的操作模式m。如所讨论,可在图像数据的各种粒度设定接收的参数,例如,基于每个像素块,每帧,逐个切片地,基于每个lcu,或基于针对输入图像定义的数据的其他类型的区域。
68.图4示出了根据图2的编码系统200和图3的解码系统300由示例性像素块进行的处理。最初,如图4(a)所示,像素块410可为m
×
n像素阵列,每个像素阵列由每个颜色分量的位深度b表示。在分辨率量化(缩减)之后,像素块420可为m/qf
x
×
n/qfy像素阵列,其仍具有每个颜色分量的位深度b。在系数量化之后,像素块430可为m/qf
x
×
n/qfy像素阵列,具有变化的位深度。此处,将样本值与其原始值除以样本精度量化值(q
sp
)。在变换和量化之后,像素块440可为变换系数阵列m/qf
x
×
n/qfy,其值将由量化参数qp量化。
69.图4(b)示出了在解码期间由编码像素块进行的处理。最初,编码像素块450可为变换系数阵列m/qf
x
×
n/qfy,其值将由图4(a)中所示的量化参数q
p
量化。在逆变换和量化后,像素块460可为m/qf
x
×
n/qfy像素阵列,其值对应于具有量化参数q
p
所诱导产生的损耗的那些像素块430。在样本精度量化之后,像素块470可为m/qf
x
×
n/qfy像素阵列,其具有每个颜色分量的位深度b,尽管具有由量化参数q
sp
所诱导产生的进一步损耗。在反转分辨率量化(放大)之后,像素块480可为m
×
n像素阵列,每个像素阵列用每颜色分量的位深度b表示,同样具有编码损耗。
70.如图4所示,图2和图3的实施方案提供用于图像数据沿若干维度的量化。在该实施方案中,除了系数变换的量化以外,可向图像数据的分辨率和位深度应用量化。因此,这些技术为编码/解码系统提供了更大的灵活性,以实现带宽压缩并保持编码质量。
71.图5示出了根据本公开的一个实施方案的解码方法500。方法500可逐像素块对编码视频数据进行操作。方法500可处理与经编码的视频数据一起提供的元数据以确定应用哪些编码模式来对被解码的像素块进行编码(框510)。该方法可根据编码模式数据来确定编码像素块残差是否为变换块的一部分(框515)。如果为肯定,则方法500可根据提供有编码视频数据的量化参数(q
p
)来对变换系数进行去量化(框520)并且可根据编码视频数据所
识别的变换模式m应用反变换(框525)。量化参数q
p
和变换模式m可由经编码的视频数据明确地或隐含地识别。
72.在框530处,方法500可确定在框515处存在或在框525处重建的残差数据是否在预测数据的域中。如果不是,则方法500可将残差数据映射至预测数据的域,该域为像素域(框535)。然后,或者如果在框530处确定残差数据已经在预测数据的域中,则方法500可将预测数据与通过处理框510-535重建的数据合并(框540)。
73.残差数据到预测数据域的映射可通过反转在像素块的编码期间所施加的量化操作而发生。图5示出了在解码由图2的编码系统200生成的编码视频数据时可采用的示例性去量化操作。因此,方法500可确定是否应用残差量化(框545),并且如果是,则方法500可使用提供有编码视频数据的参数q
sp
来反残差量化(框550)。类似地,方法500可确定是否应用下采样(框555),并且如果是,则是否仅对色度或对所有颜色分量应用下采样(框560)。如果对所有分量应用下采样,则方法500可将重建数据的所有分量放大(框565)。如果仅将下采样应用于色度,则方法500可放大重建数据的色度分量(框570)。同样,用于缩减的量化参数qq可被明确地或隐含地提供有编码视频。
74.图6是根据本公开的实施方案的编码系统600的功能框图。系统600可包括像素块编码器610,像素块解码器620,一对回路滤波器系统630.1,630.2,一对预测缓冲器640.1,640.2,预测系统650,控制器660和语法单元670。与先前实施方案一样,像素块编码器和解码器610,620和预测系统650可迭代地对图像数据的各个像素块进行操作,但回环滤波器630.1,630.2和预测缓冲器640.1,640.2可对更大的数据单元进行操作。预测系统650可预测在新呈现的输入像素块的编码期间使用的数据。
75.像素块编码器610可通过预测编码技术对新像素块进行编码,并将编码像素块数据提供给语法单元670。语法单元670可从经编码的视频数据和其他来源(未示出)构建传输比特流,例如,编码音频数据和/或应用数据的来源。语法单元670可组装来自符合管理编码协议的编码像素块数据的数据流。
76.像素块解码器620可为像素块编码器610本地的解码器,该解码器对编码像素块数据进行解码,由此生成已解码像素块数据。在该实施方案中,像素块解码器620可生成两个版本的解码像素块。第一版本可由编码像素块数据的有限解码(为方便起见称为“尽力服务”解码)生成,例如,通过反转系数采样,反转由像素块编码器610执行的系数变换过程并执行有限预测操作。第二版本可通过反转由像素块编码器610执行的所有编码过程来生成(“全力”解码),包括例如下采样,残差量化等。像素块解码器620可将两个版本的解码像素块输出至相应回路滤波器630.1,630.2中。
77.回路滤波器630.1,630.2和预测缓冲器640.1,640.2可以成对关系提供。第一回路滤波器630.1和预测缓冲器640.1可以对从像素块解码器620执行的完全解码操作输出的解码像素块数据进行操作。第二回路滤波器630.2和预测缓冲器640.2可以对从像素块解码器620执行的限制解码操作输出的解码像素块数据进行操作。在各种情况下,回路滤波器630.1,630.2可对其各自的解码帧数据执行各种滤波操作。由回路滤波器630.1,630.2生成的经滤波的帧数据可被存储在其相应的预测缓冲器640.1,640.2中,其中它们可用作稍后接收的像素块的预测源。
78.预测系统650可通过在与全力解码相关联的预测缓冲器640.1内执行运动搜索来
产生输入像素块的预测数据。预测系统650可将预测数据从预测缓冲器640.1输出到像素块编码器610和像素块解码器620以用于全力解码过程。预测系统650还可将对应像素块从预测缓冲器640.2提供至像素块解码器620,以用于尽力服务解码。
79.像素块编码器610可包括减法器612,缩减器613,残差量化器614,变换单元615,系数量化器616和熵编码器617。像素块编码器610可接受减法器612处的输入数据的像素块。减法器612可接收来自预测系统650的预测像素块,并由此生成表示输入像素块和预测像素块之间的逐像素差值的像素残差阵列。缩减器613可对从减法器612输出的残差数据执行空间分辨率降低。残差量化器614可对从缩减器613输出的样本数据执行量化。变换单元615可向从残差量化器614输出的样本数据应用变换,以将数据从像素域转换成变换系数域。系数量化器616可对由变换单元615输出的变换系数执行量化。熵编码器617可通过例如通过可变长度码字对输出进行编码来减小系数量化器的输出带宽。
80.在操作期间,缩减器613,残差量化器614和系数量化器616可根据控制每个单元操作的编码参数来操作。例如,缩减器613可根据分辨率量化参数qr来操作,该分辨率量化参数确定要应用于其输入像素块的缩减水平。相似地,残差量化器614可根据残差量化参数q
sp
来操作,该系数量化参数确定应用到输入到残差量化器614的残差样本的量化水平。并且系数量化器616可根据系数量化参数q
p
进行操作,该系数量化参数确定要应用于输入到系数量化器616的变换系数的量化水平。与先前实施方案一样,缩减器613,残差量化器614和系数量化器616中的每一个在不同维度工作,因为它们对图像数据的不同特征进行量化;量化维度不必彼此正交。量化参数qr,q
sp
和q
p
可由控制器660确定,并且可在由编码系统600输出的经编码的视频数据中以明确或隐含的方式发出信号。这些量化器也可以均匀或非均匀的方式操作。
81.在事件保证时,变换单元615可操作在多种变换模式中。例如,可选择变换单元615以应用dct,dst,walsh hadamard变换,haar变换,daubechies小波变换等。在实施方案中,控制器660可选择由变换单元615应用的编码模式m,并且可相应地配置变换单元615。编码模式m也可在经编码的视频数据中被明确或暗示地发出信号。
82.像素块解码器620可反转像素块编码器610的编码操作。例如,像素块解码器620可包括系数去量化器622,逆变换单元623,残差去量化器624,放大器625,和一对加法器626.1,626.2。像素块解码器620可从系数量化器616的输出获取其输入数据。尽管允许,像素块解码器620不必执行熵编码数据的熵解码,因为熵编码是无损事件。系数去量化器622可反转像素块编码器610的系数量化器616的操作。相似地,逆变换单元623,残差去量化器624和放大器625可分别反转变换单元615,残差量化器614和缩减器613的操作。它们可使用相同的量化参数qr,q
sp
和q
p
以及变换模式m作为像素块编码器610中的对应部分。缩减器613,残差量化器614和系数量化器616的操作可能在各个方面截断数据,因此,与向像素块编码器610中的对应部分呈现的数据相比时,由系数去量化器622,残差去量化器624和放大器625恢复的数据可能会具有编码误差。
83.加法器626.1可反转减法器612所执行的操作。它可接收来自减法器612用于生成残差信号的预测系统650的相同预测像素块。加法器626.1可将预测像素块添加到由放大器625输出的重建残差值,并且可输出重建像素块数据。
84.系数去量化器622,逆变换单元623,残差去量化器624,放大器625和第一加法器
626.1可限定像素块解码器620的全力解码路径。其包括作为对应像素块编码器610的子单元(即减法器612,缩减器613,残差量化器614,变换单元615和系数量化器616)的对应物操作的解码单元的完整阵列。
85.第二加法器626.2可以从逆变换单元623获取其输入,其表示从一组解码单元生成的像素残差数据,该组解码单元不是像素块编码器610的编码单元的完整一组对应物。因此,第二加法器626.2限定像素块解码器620的尽力服务解码路径。第二加法器626.2使用从全力预测缓冲器640.1导出的预测参考,从尽力服务预测缓冲器640.2获得的预测系统650接受预测数据。即,如果预测系统650从来自全力预测缓冲器640.1的给定帧中选择像素块作为输入像素块的预测参考,则它将所选择的像素块提供给减法器612和全力加法器626.1。预测系统650还将像素块从与存储在尽力服务预测缓冲器640.2中的同一帧的相同位置供应到第二加法器626.2。
86.回路滤波器630.1,630.2可对其相应像素块数据执行各种滤波操作。例如,回路滤波器630.1,630.2可包括去块滤波器和sao滤波器(未示出)。去块滤波器可在重建像素块之间的接缝处过滤数据,以减少由于编码而产生的像素块之间的中断。sao滤波器可例如基于边缘方向/形状和/或像素水平来根据sao类型对像素值添加偏移。回路滤波器630.1,630.2可根据由控制器660选择的参数来操作。
87.预测缓冲器640.1,640.2可存储来自相应的回路滤波器630.1,630.2的滤波像素数据,以用于其他像素块的后续预测。对于不同预测模式,预测系统650可使用不同类型的预测数据。如所讨论的,对于输入像素块,帧内预测从相同帧的解码数据获得预测参考,在相同帧中定位该输入像素块。因此,预测缓冲器640.1,640.2可存储在编码时每个帧的解码帧块数据。对于相同的输入像素块,帧间预测可采用来自先前编码和解码帧的预测参考,所述帧被指定为“参考帧”。因此,预测缓冲器640.1,640.2可存储这些经解码的参考帧。
88.如所讨论,预测系统650可将预测数据提供至像素块编码器610以用于生成残差。预测系统650可包括模式决定单元652和一对预测器654.1,654.2。模式决定单元652可包括前述实施方案的帧间预测器和帧内预测器。因此,模式决定单元652可接收表示要编码的新像素块的像素块数据,并且可在全力预测缓冲器640.1中搜索来自参考帧的像素块数据,以用于对输入像素块进行编码。决定单元652可支持多个预测模式,诸如单列表预测模式和双预测模式。当选择帧间编码时,模式决定单元可生成预测参考指示符,诸如运动向量,以识别参考帧中哪些部分被选择为输入像素块的预测源。
89.模式决定单元652还可支持帧内(i)模式编码。因此,模式决定单元652可在全力预测缓冲器640.1中从与所编码的像素块相同的帧中搜索编码像素块数据,所述像素块提供与输入像素块的最接近匹配。当选择i编码时,模式决定单元652还可生成预测参考指示符以识别帧的哪个部分被选择为输入像素块的预测源。
90.如所讨论的,通常,模式决定单元652选择将实现解码视频时的最低失真的预测模式。当选择编码模式以满足编码系统600所遵循的其他策略,诸如支持随机接入或数据刷新策略时,可能出现异常。在实施方案中,模式决定单元652可监视在由全力解码路径和尽力服务解码路径获得的解码视频数据中累积的编码误差。例如,如果它确定尽力服务解码路径中的累积编码误差超过预先确定值,则它可改变其默认预测决策。
91.全力预测器654.1可将预测数据从模式决定单元652生成的预测参考识别的全力
预测缓冲器640.1供应到减法器612和全力加法器626.1。尽力服务预测器654.2可将预测数据从模式决定单元652生成的预测参考识别的尽力服务预测缓冲器640.2供应到尽力服务加法器626.2。
92.控制器660可控制编码系统600的整个操作。控制器660可基于对输入像素块的分析和外部约束(诸如编码比特率目标和其他操作参数)来选择像素块编码器610和预测系统650的操作参数。与本讨论相关,当其选择量化参数诸如缩减参数qr,残差量化参数q
sp
,系数量化器q
p
,和/或变换模式m,其可向语法单元670提供那些参数,该语法单元可包括表示由系统600输出的编码视频数据的数据流中的那些参数的数据。控制器660还可确定一个或多个量化器单元(例如,系数量化器616)不应应用量化,在这种情况下,控制器660可禁用量化器。如上所述,控制器660还可确定变换单元615的操作模式。
93.如所讨论的,量化参数qr,q
sp
和/或q
p
不必提供作为均匀应用于像素块的所有像素的单个值,而是可被提供为相应量化参数阵列,其值在每个像素位置处发生变化。在一个实施方案中,多种量化器阵列可根据预先确定的协议定义,每个协议均具有不同像素位置处的相应量化值;在操作期间,控制器660可通过提供索引或其他标识符来识别要使用的阵列。
94.在另一个实施方案中,量化参数qr,q
sp
和/或q
p
(不管是单个值的还是值阵列)可源自图像数据的特征。例如,量化参数q
sp
可针对每个样本位置基于其对应预测样本的强度来选择,例如,针对较大预测样本值可比针对较小预测样本值选择较大量化器值。这些量化参数可使用线性,即,标量,公式,或使用更复杂的非线性/非均匀公式来定义。
95.在一个实施方案中,量化器可由以下形式的预先确定的函数表示:q(i,j)=fk(p(i,j),i,j),其中q表示有问题的量化器,i和j表示被量化的像素块内的值的位置(像素域值或变换域值),p(i,j)表示正被量化的像素强度值,并且fk表示p,i和j与q相关的函数。作为信令的一部分,控制器260可提供识别正在使用的函数的数据,以及相应函数所操作的任何其他数据(例如,可在相应函数处工作的任何标量和偏移)。
96.量化过程也可使用查找表表单(未示出)来指定。查找表表单可涉及使用内插技术来确定查找表中未包含的某些值的量化/去量化过程。另选地,量化参数qr和/或q
sp
,q
p
可根据先前编码的相邻像素块的量化参数来预测。在另一实施方案中,第一组量化参数qr和/或q
sp
,q
p
可在编码序列的更高级别构造中发信号通知(例如,帧或切片标头)并且发出信号的一组量化参数qr和/或q
sp
,q
p
的替代可在该构造的像素块被编码时逐像素块发信号通知。
97.在操作期间,控制器660可基于每个像素块或基于较大粒度(例如,每帧,每片,每个lcu或另一个区域)以图像数据的不同粒度来修改缩减器613,残差量化器614和系数量化器616以及变换单元615的操作参数。在实施方案中,量化参数可基于每个像素在编码帧内进行修改。
98.另外,如所讨论的,控制器660可控制回路滤波器630.1,630.2和预测系统650的操作。对于预测系统650,此类控制可包括模式选择(λ,待测模式,搜索窗口,失真策略等),并且对于回路滤波器630.1,630.2,包括选择滤波器参数,重新排序参数,加权预测等。
99.图6的编码系统600提供了在图2的实施方案中提供的编码灵活性,以及此外,应用各种类型的解码器。它可以在不存在传输错误的情况下以与图3的解码系统300同步操作的方式对数据进行编码。编码系统600还可与解码系统300一起工作,所述解码系统可替换在
完全解码模式和尽力服务模式之间的操作,由旁路路径327表示(图3)。
100.图6的编码系统600还可生成编码视频数据,该编码视频数据使用能力较低的视频解码器来操作,例如视频解码系统700,如图7所示具有解码器720,与图3的解码系统300相比不具有残差去量化器324或放大器325。并且,如果编码系统600(图6)作出考虑并减轻尽力服务解码路径中编码误差累积的编码决定,则解码系统700,诸如图7中所示,可利用可传递的编码性能对编码视频进行解码。
101.图8是根据本公开的另一实施方案的编码系统800的功能框图。系统800可包括像素块编码器810,像素块解码器820,回路滤波器系统830,预测缓冲器840,预测器850,控制器860和语法单元870。像素块编码器和解码器810,820和预测器850可迭代地在各个像素块上操作。预测器850可预测在新呈现的像素块的编码期间使用的数据。像素块编码器810可通过预测编码技术对新像素块进行编码,并将编码像素块数据提供给语法单元870。像素块解码器820可解码经编码像素块数据,由此产生解码像素块数据。回路滤波器830可对从像素块解码器820所获得的解码像素块组装的解码帧数据执行各种滤波操作。滤波帧数据可被存储在预测缓冲器840中,可用于对稍后接收的像素块预测的源。语法单元870可组装来自符合管理编码协议的编码像素块数据的数据流。
102.像素块编码器810可包括减法器812,多个量化器813.1-813.n,变换单元814,系数量化器815和熵编码器816。像素块编码器810可接受减法器812处的输入数据的像素块。减法器812可接收来自预测器850的预测像素块,并由此生成表示输入像素块和预测像素块之间的差值的像素残差阵列。量化器813.1,813.n均可对它们在图像数据的不同域中接收的数据执行量化。变换单元814可将变换应用于从量化器813.n中的最后一个输入到其上的数据,以将输入数据从像素域转换成变换系数的域。系数量化器815可对由变换单元814输出的变换系数执行量化。熵编码器816可通过例如通过可变长度码字对输出进行编码来减小系数量化器的输出带宽。
103.量化器813.1-813.n均可对它们在图像数据的相应域中接收的数据执行量化。在此,量化维度不必彼此正交。量化器813.1-813.n可包括上述实施方案的缩减器和残差量化器。它们还可包括其他类型的量化器,诸如颜色分量特定量化器,频域量化器,定向特定量化器(例如,仅水平的,仅竖直的,共混的),亮度专用残差缩放器等。量化器813.1-813.n可根据限定它们提供的量化水平的相应量化参数q
1-qn来操作。量化参数q
1-qn可在编码比特流中被明确地或隐含地发信号给解码系统。在一些情况下,可禁用单个量化器813.1,813.2,...,813.n,在这种情况下,它们简单地可将其输入数据传递到下一量化器而不进行改变。
104.在事件保证时,变换单元814可操作在多种变换模式中。例如,可选择变换单元814以应用dct变换,dst变换,walsh hadamard变换,haar变换,daubechies小波变换等。在实施方案中,控制器860可选择由变换单元814应用的编码模式,并且可相应地配置变换单元814。变换模式m也可在经编码的视频数据中被明确或暗示地发出信号。
105.像素块解码器820可包括反转像素块编码器810的编码操作的解码单元。例如,像素块解码器820可包括系数去量化器822,逆变换单元823,多个去量化器824.1-824.n,和加法器825。像素块解码器820可从系数量化器815的输出获取其输入数据。再次,尽管允许,像素块解码器820不必执行熵编码数据的熵解码,因为熵编码是无损事件。系数去量化器822
可反转像素块编码器810的系数量化器815的操作。类似地,逆变换单元823和去量化器824.1-824.n可分别反转变换单元814和量化器813.1-813.n的操作。它们可使用相同的量化参数q
1-qn和变换模式m作为像素块编码器810中的对应部分。量化器813.1-813.n和系数量化器815的操作可能在各个方面截断数据,因此,在与向像素块编码器810中的对应部分呈现的数据相比时,由去量化器824.1-824.n恢复的数据可能具有编码误差。
106.加法器825可反转减法器812所执行的操作。它可接收来自减法器812用于生成残差信号的预测器850的相同预测像素块。加法器825可将预测像素块添加到由最终去量化器824.1输出的重建残差值,并且可输出重建像素块数据。
107.回路滤波器830可对重构像素块数据执行各种滤波操作。例如,回路滤波器830可包括去块滤波器832和sao滤波器833。去块滤波器832可在重建像素块之间的接缝处过滤数据,以减少由于编码而产生的像素块之间的中断。sao滤波器833可例如基于边缘方向/形状和/或像素水平来根据sao类型对像素值添加偏移。回路滤波器830可根据由控制器860选择的参数来操作。
108.预测缓冲器840可存储经滤波的像素数据以用于其他像素块的后续预测。对于不同预测模式,预测器850可使用不同类型的预测数据。例如,对于输入像素块,帧内预测从相同帧的解码数据获得预测参考,该输入像素块定位在该相同帧中。因此,预测缓冲器840可存储在编码时每个帧的解码帧块数据。对于相同的输入像素块,帧间预测可采用来自先前编码和解码帧的预测参考,所述帧被指定为参考帧。因此,预测缓冲器840可存储这些解码参考帧。
109.如所讨论,预测器850可将预测数据提供至像素块编码器810以用于生成残差。预测器850可包括运动估计器852,帧内预测器853和模式决策单元854。运动估计器852可接收表示要编码的新像素块的像素块数据,并且可在预测缓冲器840中搜索来自参考帧的像素块数据,以用于对输入像素块进行编码。运动估计器852可支持多个预测模式,诸如p和b模式编码,从一个或一对参考帧供应预测数据。运动估计器852可选择帧间预测模式并提供预测数据,该预测数据提供与被编码的输入像素块最接近匹配。运动估计器852可生成预测参考指示符,诸如运动向量,以识别参考帧中哪些部分被选择为输入像素块的预测源。
110.帧内预测器853可支持帧内编码。帧内预测器853可从与所编码的像素块相同的帧中搜索编码像素块数据,所述像素块提供与输入像素块的最接近匹配。帧内预测器853还可生成预测参考指示符以识别帧的哪个部分被选择为输入像素块的预测源。
111.在另一实施方案中,预测器850可确定在编码输入像素块时不应执行预测。在这种情况下,预测器850可禁用减法器812(没有有效地通过向减法器812提供预测数据),并且减法器812可将像素值输出到量化器链813.1-813.n。在这种操作模式下,量化器813.1-813.n将对像素值而不是像素残差进行操作。类似地,像素块解码器820可在解码以这种方式编码的像素块时禁用加法器825。另外,控制器860可在解码位流中提供模式决策信号,当由解码器处理时(图9),当解码以这种方式编码的像素块时,解码位流将解码器中的加法器也被禁用。
112.模式决策单元854可选择要应用于输入像素块的最终编码模式。通常,在解码视频时,模式决策单元854选择将实现最低失真的预测模式。当选择编码模式以满足编码系统800所遵循的其他策略,诸如支持随机接入或数据刷新策略时,可能出现异常。模式决策单
元854可将预测数据输出到像素块编码器和解码器810,820,并且可向控制器860提供对所选择的预测模式的识别以及对应于所选择的模式的预测参考指示符。
113.控制器860可控制编码系统800的整个操作。控制器860可基于对输入像素块的分析和外部约束(诸如编码比特率目标和其他操作参数)来选择像素块编码器810和预测器850的操作参数。与本讨论相关,当其选择量化参数q
1-qn,和变换模式m时,其可向语法单元870提供那些参数,该语法单元可包括表示由系统800输出的编码视频数据的数据流中的那些参数的数据。控制器860还可确定一个或多个量化器单元(例如,量化器813.2)不应施加量化,在这种情况下,控制器860可禁用量化器813.2。如上所述,控制器860还可确定变换单元814的操作模式。
114.在另一个实施方案中,量化参数q
1-qn(不管是单个值的还是值阵列)可源自图像数据的特征。例如,量化参数q1可基于对应于像素残差的预测像素值的强度来选择。在这种情况下,q1的值可根据预测器的强度值针对每个像素而变化,例如,对于具有较大预测器值的样本而言,q1的值可高于具有较小预测器值的样本。这些量化参数可使用线性,即,标量,公式,或使用更复杂的非线性/非均匀公式来定义。
115.在一个实施方案中,量化器可由以下形式的预先确定的函数表示:q(i,j)=fk(p(i,j),i,j),其中q表示有问题的量化器,i和j表示被量化的像素块内的值的位置(像素域值或变换域值),p(i,j)表示正被量化的像素强度值,并且fk表示p,i和j与q相关的函数。作为信令的一部分,控制器260可提供识别正在使用的函数的数据,以及相应函数所操作的任何其他数据(例如,可在相应函数处工作的任何标量和偏移)。
116.量化过程也可使用查找表表单(未示出)来指定。查找表表单可涉及使用内插技术来确定查找表中未包含的某些值的量化/去量化过程。另选地,量化参数q
1-qn可根据先前编码的相邻像素块的量化参数来预测。在另一实施方案中,第一组量化参数q
1-qn可在编码序列的更高级别构造中发信号通知(例如,帧或切片标头)并且发出信号的一组量化参数q
1-qn的替代可在该构造的像素块被编码时逐像素块发信号通知。
117.在操作期间,控制器860可基于每个像素块或基于较大粒度,例如,每帧,每片,每个lcu或另一个区域以图像数据的不同粒度来修改量化器813,814和815以及变换单元814的操作参数。在实施方案中,量化参数可基于每个像素进行修改。
118.另外,如所讨论的,控制器860可控制回路滤波器830和预测器850的操作。对于预测器850,此类控制可包括模式选择(λ,待测模式,搜索窗口,失真策略等),并且对于回路滤波器830,包括选择滤波器参数,重新排序参数,加权预测等。
119.图9是根据本公开的实施方案的解码系统900的功能框图。解码系统900可包括语法单元910,像素块解码器920,回路滤波器930,预测缓冲器940,预测器950和控制器960。语法单元910可接收经编码的视频数据流,并且可将经编码的数据解析成其组成部分。表示编码参数的数据可被提供给控制器960,而表示编码残差的数据(图8的像素块编码器810输出的数据)可被提供给像素块解码器920。像素块解码器920可反转由像素块编码器810提供的编码操作(图8)。回路滤波器930可过滤重建的像素块数据。重构的像素块数据可组装成用于显示的帧并且从解码系统900输出作为输出视频。帧还可存储在预测缓冲器940中以用于预测操作。预测器950可向像素块解码器920提供预测数据,所述预测数据由编码视频数据流中接收的编码数据确定。
120.像素块解码器920可包括熵解码器921,系数去量化器922,逆变换单元923,多个去量化器924.1-924.n和加法器926。熵解码器921可执行熵解码以反转由熵编码器816执行的过程(图8)。系数去量化器922可反转像素块编码器810的系数量化器815的操作(图8)。相似地,逆变换单元923和去量化器924.1-924.n可分别反转变换单元814和量化器813.1-813.n(图8)的操作。它们可使用在编码视频数据流中提供的量化参数q
1-qn和变换模式m。由于量化器813.1-813.n和系数量化器815的操作在各个方面截断数据,因此在与向像素块编码器810中的对应部分呈现的输入数据相比时,由系数去量化器922和去量化器924.1-924.n重建的数据很可能将具有编码误差(图8)。
121.加法器926可反转减法器812所执行的操作(图8)。它可接收来自预测器950的预测像素块,所述预测像素块由经编码的视频数据流中的预测参考所确定。加法器926可将预测像素块添加到从先前去量化器924.1输入到其的重建残差值,并且可输出重建像素块数据。
122.回路滤波器930可对重构像素块数据执行各种滤波操作。如图所示,回路滤波器930可包括去块滤波器932和sao滤波器933。去块滤波器932可在重建像素块之间的接缝处过滤数据,以减少由于编码而产生的像素块之间的中断。sao滤波器可例如基于边缘方向/形状和/或像素水平来根据sao类型对像素值添加偏移。去块滤波器932和sao滤波器933的操作理想地将模拟其对应部分在编码系统800中的操作(图8)。因此,在不存在传输误差或其他异常的情况下,从解码系统900的回路滤波器930获得的解码帧数据将与从编码系统800的回路滤波器830获得的解码帧数据(图8)相同;这样,编码系统800和解码系统900应在它们各自的预测缓冲器840,940中存储一组共同的参考画面。
123.预测缓冲器940可存储经滤波的像素数据以用于其他像素块的后续预测。预测缓冲器940可存储在被编码用于帧内预测时每个帧的经解码像素块数据。预测缓冲器940还可存储解码的参考帧。
124.如所讨论的,预测器950可向像素块解码器920提供预测数据。预测器950可提供由编码视频数据流中提供的预测参考指示符所确定的预测像素块数据。
125.控制器960可控制解码系统900的整个操作。控制器960可基于编码视频数据流中接收的参数来设定像素块解码器920和预测器950的操作参数。与本讨论相关,这些操作参数可包括针对去量化器924.1-924.n和逆变换单元923的量化参数q
1-qn和变换模式m。如所讨论,可在图像数据的各种粒度设定接收的参数,例如,基于每个像素,每个像素块,每帧,逐个切片地,基于每个lcu,或基于针对输入图像定义的数据的其他类型的区域。
126.图8和图9的实施方案提供了沿若干维度的图像数据的量化,比图2和图3的实施方案更大数量的维度。在具体实施中,电路设计人员可能发现使用尽可能多类型的量化器813.1-813.n和去量化器924.1-924.n来设计适于其应用的编码和解码系统是方便的。在编码系统和解码系统的分配器之间没有协调的情况下,各个编码系统和解码系统可能会具有不匹配组的量化器813.1-813.n和去量化器924.1-924.n。在这种情况下,编码系统和解码系统可在视频编码会话的初始化阶段期间交换识别其量化器813.1-813.n和去量化器924.1-924.n的能力的数据。通过协商,编码系统和解码系统可确定它们是否共同共享任何量化器813.1-813.n和去量化器924.1-924.n。如果是,则编码系统和解码系统可禁用未共同共享的那些量化器813.1-813.n和去量化器924.1-924.n,将它们设置为通过状态,并使用共同分享的那些量化器813.1-813.n和去量化器924.1-924.n来进行视频编码。因此,编
码系统和解码系统可实现本公开中固有的优点,即使它们的能力不同。
127.图10是根据本公开的另一实施方案的编码系统1000的功能框图。系统1000可包括像素块编码器1010,像素块解码器1020,回路滤波器系统1030,预测缓冲器1040,预测器1050,控制器1060和语法单元1070。像素块编码器和解码器1010,1020和预测器1050可迭代地在各个像素块上操作。预测器1050可预测在新呈现的像素块的编码期间使用的数据。像素块编码器1010可对若干并行编码链中的新像素块进行编码,并可将编码像素块数据呈现给语法单元1070。像素块解码器1020也可解码并行解码链中的经编码像素块数据,由此可产生解码像素块数据。回路滤波器1030可对从像素块解码器1020所获得的解码像素块组装的解码帧数据执行各种滤波操作。滤波帧数据可被存储在预测缓冲器1040中,可用于对稍后接收的像素块预测的源。语法单元1070可组装来自符合管理编码协议的编码像素块数据的数据流。
128.像素块编码器1010可包括减法器1012和并行编码链,每个编码链包括相应量化器1013.1,1013.2,...,或1013.n,相应变换单元1014.1,1014.2,...,或1014.n,相应系数量化器1015.1,1015.2,...,或1015.n,以及相应熵编码器1016.1,1016.2,...,或1016.n。复用器1017可将熵编码器1016.1,1016.2,...,或1016.n的输出合并为一体编码视频流,其可从像素块编码器1010输出到语法单元1070。
129.像素块编码器1010可接受减法器1012处的输入数据的像素块。减法器1012可接收来自预测器1050的预测像素块,并由此生成表示输入像素块和预测像素块之间的逐像素差值的像素残差阵列。量化器1013.1-1013.n均可对它们在图像数据的不同域中接收的数据执行量化。在此,量化维度不必彼此正交。变换单元1014.1-1014.n可将变换应用于从相应量化器1013.1-1013.n输入到它们的数据,以将输入数据从像素域转换成变换系数域。系数量化器1015.1-1015.n可对从其相应的变换单元1014.1-1014.n输入至它们的变换系数进行量化。熵编码器1016.1-1016.n可减小从其相应的系数量化器1015.1-1015.n向其提供的输入数据的带宽,例如通过可变长度码字对输出进行编码。
130.量化器1013.1-1013.n均可对它们在图像数据的相应域中接收的数据执行量化。量化器1013.1-1013.n可被提供为例如缩减器,残差量化器,颜色分量特定量化器,频域量化器,定向特定量化器(例如,仅水平,仅竖直,混合),亮度特定残差缩减器等。量化器1013.1-1013.n可根据限定它们提供的量化水平的控制器1060供给的相应量化参数来操作。量化参数可在编码比特流中被明确地或隐含地发信号给解码系统。在一些情况下,可禁用单个量化器1013.1,1013.2,...,1013.n,其中它们简单地可将其输入数据传递到下一量化器而不进行改变。如果禁用两个或更多个量化器1013.1,1013.2,...,1013.n,则可全部禁用一些相关的编码链。
131.在事件保证时,变换单元1014.1-1014.n可操作在多种变换模式中。例如,可选择变换单元1014以应用dct,dst,walsh hadamard变换,haar变换,daubechies小波变换等。此外,当在相应的编码链中应用变换skip模式编码时,变换单元1014.1-1014.n可被禁用。在实施方案中,控制器1060可选择由变换单元1014.1-1014.n所施加的编码模式,该编码模式可在链与链之间不同,并且控制器1060可相应地配置变换单元1014.1-1014.n。变换模式可在经编码的视频数据中被明确或暗示地发出信号。
132.像素块解码器1020可包括反转像素块编码器1010的编码操作的解码单元。例如,
像素块解码器1020可包括系数去量化器1022.1-1022.n,逆变换单元1023.1-1023.n和去量化器1024.1-1024.n,如像素块编码器1010中那样布置成链。像素块解码器1020还可包括平均器1025和加法器1026。
133.像素块解码器1020的解码链可从像素块编码器1010的相应编码链的输出获取其输入数据。再次,尽管允许,像素块解码器1020不必执行熵编码数据的熵解码,因为熵编码是无损事件。系数去量化器1022.1-1022.n可反转像素块编码器1010的对应量化器1015.1-1015.n的操作。类似地,逆变换单元1023.1-1023.n和去量化器1024.1-1024.n可分别使变换单元1014.1-1014.n和量化器1013.1-1013.n的操作反转。它们可使用相同的量化参数和变换模式作为像素块编码器1010中的对应部分。量化器1013.1-1013.n和系数量化器1015的操作可能在各个方面截断数据,因此,在与向像素块编码器1010中的对应部分呈现的数据相比时,由系数去量化器1022.1-1022.n和去量化器1024.1-1024.n重建的残差数据可能会具有编码误差。
134.平均器1025可将各种解码链的输出求平均。不同编码链的贡献可给予相等的权重,或者另选地,可基于由控制器1060指定的权重来加权。在实施方案中,控制器1060可测量来自不同链的重建数据的失真,并且可选择平均权重,所述平均权重在平均时减少此类失真。可将平均器1025的输出作为重构的残差数据输入到加法器1026。
135.加法器1026可反转减法器1012所执行的操作。它可接收来自减法器1012用于生成残差信号的预测器1050的相同预测像素块。加法器1026可将预测像素块添加到由平均器1025输出的重建残差值,并且可输出重建像素块数据。
136.回路滤波器1030可对恢复像素块数据执行各种滤波操作。例如,回路滤波器1030可包括去块滤波器1032和sao滤波器1033。去块滤波器1032可在重建像素块之间的接缝处过滤数据,以减少由于编码而产生的像素块之间的中断。sao滤波器1033可例如基于边缘方向/形状和/或像素水平来根据sao类型对像素值添加偏移。回路滤波器1030可根据由控制器1060选择的参数来操作。
137.预测缓冲器1040可存储经滤波的像素数据以用于其他像素块的后续预测。对于不同预测模式,预测器1050可使用不同类型的预测数据。例如,对于输入像素块,帧内预测从相同帧的解码数据获得预测参考,该输入像素块定位在该相同帧中。因此,预测缓冲器1040可存储在编码时每个帧的解码帧块数据。对于相同的输入像素块,帧间预测可采用来自先前编码和解码帧的预测参考,所述帧被指定为参考帧。因此,预测缓冲器1040可存储这些解码参考帧。
138.如所讨论,预测器1050可将预测数据提供至像素块编码器1010以用于生成残差。预测器1050可包括运动估计器1052,帧内预测器1053和模式决定单元1054。运动估计器1052可接收表示要编码的新像素块的像素块数据,并且可在预测缓冲器1040中搜索来自参考帧的像素块数据,以用于对输入像素块进行编码。运动估计器1052可支持多个预测模式,诸如p和b模式,从一个或一对参考帧供应预测数据。运动估计器1052可选择帧间预测模式并提供预测数据,该预测数据提供与被编码的输入像素块最接近匹配。运动估计器1052可生成预测参考指示符,诸如运动向量,以识别参考帧中哪些部分被选择为输入像素块的预测源。
139.帧内预测器1053可支持帧内编码。帧内预测器1053可从与所编码的像素块相同的
帧中搜索编码像素块数据,所述像素块提供与输入像素块的最接近匹配。帧内预测器1053还可生成预测参考指示符以识别帧的哪个部分被选择为输入像素块的预测源。
140.模式决定单元1054可选择要应用于输入像素块的最终编码模式。通常,在解码视频时,模式决定单元1054选择将实现最低失真的预测模式。当选择编码模式以满足编码系统1000所遵循的其他策略,诸如支持随机接入或数据刷新策略时,可能出现异常。模式决定单元1054可将预测数据输出到像素块编码器和解码器1010,1020,并且可向控制器1060提供对所选择的预测模式的识别以及对应于所选择的模式的预测参考指示符。
141.控制器1060可控制编码系统1000的整个操作。控制器1060可基于对输入像素块的分析和外部约束(诸如编码比特率目标和其他操作参数)来选择像素块编码器1010和预测器1050的操作参数。与本讨论相关,当其选择量化器1013.1-1013.n和变换模式使用的量化参数时,其可向语法单元1070提供那些参数,该语法单元可包括表示由系统1000输出的编码视频数据的数据流中的那些参数的数据。控制器1060还可确定一个或多个量化器单元(例如,量化器1013.2)不应施加量化,在这种情况下,控制器1060可禁用量化器1013.2。如上所述,控制器1060还可确定变换单元1014的操作模式。
142.如所讨论的,量化参数不必提供作为均匀应用于像素块的所有像素的单个值,而是可被提供为相应量化参数阵列,其值在每个像素位置处发生变化。在一个实施方案中,多种量化器阵列可根据预先确定的协议定义,每个协议均具有不同像素位置处的相应量化值;在操作期间,控制器1060可通过提供索引或其他标识符来识别要使用的阵列。
143.在另一个实施方案中,量化参数(不管是单个值的还是值阵列)可源自图像数据的特征。例如,量化参数可基于对应于像素残差的预测像素值的强度来选择。在这种情况下,量化参数的值可根据预测器的强度值针对每个像素而变化,例如,对于具有较大预测器值的样本而言,量化参数的值可高于具有较小预测器值的样本。这些量化参数可使用线性,即,标量,公式,或使用更复杂的非线性/非均匀公式来定义。
144.在一个实施方案中,量化器可由以下形式的预先确定的函数表示:q(i,j)=fk(p(i,j),i,j),其中q表示有问题的量化器,i和j表示被量化的像素块内的值的位置(像素域值或变换域值),p(i,j)表示正被量化的像素强度值,并且fk表示p,i和j与q相关的函数。作为信令的一部分,控制器260可提供识别正在使用的函数的数据,以及相应函数所操作的任何其他数据(例如,可在相应函数处工作的任何标量和偏移)。
145.量化过程也可使用查找表表单(未示出)来指定。查找表表单可涉及使用内插技术来确定查找表中未包含的某些值的量化/去量化过程。另选地,量化参数可根据先前编码的相邻像素块的量化参数来预测。在另一实施方案中,第一组量化参数可在编码序列的更高级别构造中发信号通知(例如,帧或切片标头)并且发出信号的一组量化参数的替代可在该构造的像素块被编码时逐像素块发信号通知。
146.在操作期间,控制器1060可基于每个像素块或基于较大粒度,例如,每帧,每片,每个lcu或另一个区域以图像数据的不同粒度来修改量化器1013,1014和1015以及变换单元1014的操作参数。在实施方案中,量化参数可基于每个像素进行修改。
147.另外,如所讨论的,控制器1060可控制回路滤波器1030和预测器1050的操作。对于预测器1050,此类控制可包括模式选择(λ,待测模式,搜索窗口,失真策略等),并且对于回路滤波器1030,包括选择滤波器参数,重新排序参数,加权预测等。
148.图11是根据本公开的实施方案的解码系统1100的功能框图。解码系统1100可包括语法单元1110,像素块解码器1120,回路滤波器1130,预测缓冲器1140,预测器1150和控制器1160。语法单元1110可接收经编码的视频数据流,并且可将经编码的数据解析成其组成部分。表示编码参数的数据可被提供给控制器1160,而表示编码残差的数据(图10的像素块编码器1010输出的数据)可被提供给像素块解码器1120。像素块解码器1120可反转由像素块编码器1010提供的编码操作(图10)。回路滤波器1130可过滤重建的像素块数据。重构的像素块数据可组装成用于显示的帧并且从解码系统1100输出作为输出视频。帧还可存储在预测缓冲器1140中以用于预测操作。预测器1150可向像素块解码器1120提供预测数据,所述预测数据由编码视频数据流中接收的编码数据确定。
149.像素块解码器1120可包括熵解码器1121,去复用器1122,多个系数去量化器1123.1-1123.n,多个逆变换单元1124.1-1124.n,多个去量化器1125.1-1125.n,平均器1126和加法器1127。熵解码器1121可执行熵解码以反转由熵编码器1016执行的过程(图10)。去复用器1122可将编码视频数据从像素块编码器1010(图10)的相应链路由到像素块解码器1120中的对应解码链。每个系数去量化器1123.1,1123.2,...,1123.n可反转像素块编码器1010的对应系数量化器1015.1,1015.2,...,1015.n的操作(图10)。类似地,逆变换单元1124.1,1124.2,...,1124.n和去量化器1125.1,1125.2,...,1125.n可分别使来自像素块编码器1010的其对应单元的操作反转(图10)。它们可使用在编码视频数据流中提供的量化参数。由于量化器1013.1-1013.n和系数量化器1015.1-1015.n的操作在各个方面截断数据,因此在与向像素块编码器1010中的对应部分呈现的输入数据相比时,由系数去量化器1123.1,1123.2,...,1123.n和去量化器1125.1-1125.n重建的残差数据可能会具有编码误差(图10)。
150.平均器1126可将各种解码链的输出求平均。不同编码链的贡献可给予相等的权重,或者另选地,可基于由控制器1160指定的权重来加权,从编码视频数据获得所述权重。可将平均器1126的输出作为重构的残差数据输入到加法器1127。
151.加法器1127可反转减法器1012所执行的操作(图10)。它可接收来自预测器1150的预测像素块,所述预测像素块由经编码的视频数据流中的预测参考所确定。加法器1127可将预测像素块添加到从平均器1126输如到其的重建残差值。
152.回路滤波器1130可对重构像素块数据执行各种滤波操作。如图所示,回路滤波器1130可包括去块滤波器1132和sao滤波器1133。去块滤波器1132可在重建像素块之间的接缝处过滤数据,以减少由于编码而产生的像素块之间的中断。sao滤波器可例如基于边缘方向/形状和/或像素水平来根据sao类型对像素值添加偏移。去块滤波器1132和sao滤波器1133的操作理想地将模拟其对应部分在编码系统1000中的操作(图10)。因此,在不存在传输误差或其他异常的情况下,从解码系统1100的回路滤波器1130获得的解码帧数据将与从编码系统1000的回路滤波器1030获得的解码帧数据(图10)相同;这样,编码系统1000和解码系统1100应在它们各自的预测缓冲器1040,1140中存储一组共同的参考画面。
153.预测缓冲器1140可存储经滤波的像素数据以用于其他像素块的后续预测。预测缓冲器1140可存储在被编码用于帧内预测时每个帧的经解码像素块数据。预测缓冲器1140还可存储解码的参考帧。
154.如所讨论的,预测器1150可向像素块解码器1120提供预测数据。预测器1150可提
供由编码视频数据流中提供的预测参考指示符所确定的预测像素块数据。
155.控制器1160可控制解码系统1100的整个操作。控制器1160可基于编码视频数据流中接收的参数来设定像素块解码器1120和预测器1150的操作参数。与本讨论相关,这些操作参数可包括量化参数和操作模式。如所讨论,可在图像数据的各种粒度设定接收的参数,例如,基于每个像素块,每帧,逐个切片地,基于每个lcu,或基于针对输入图像定义的数据的其他区域。
156.图10和图11的实施方案提供了沿若干维度的图像数据的量化,比图2和图3的实施方案更大数量的维度。如同图8和图9的实施方案,即使编码系统和解码系统不具有相同的量化器能力,则图10和图11的编码系统和解码系统也可实现本讨论中固有的优点。
157.另外,图10的实施方案为编码系统提供了在编码期间测试某些量化技术以评估编码质量和带宽会话的机会。在编码之后,图10的编码系统1000可确定给定编码链的结果是差的。响应于这种确定,编码系统可将相应编码链的权重w设置为0,并从编码视频数据流中省略该链的编码数据。
158.如所讨论的,可针对被编码然后解码的每个像素块重新配置前述实施方案的量化器和去量化器的操作。因此,单个图像可经历量化操作的宽阵列。图12和图13示出了帧的量化的示例性选择。
159.同样如所讨论的,对于给定帧的量化模式的选择可在不同的粒度下进行。例如,对被编码的每个像素块重新选择量化模式可能是方便的。然而,在其他实施方案中,可以方便地基于每个切片,按lcu或基于每个帧来选择量化模式。
160.前述讨论在编码系统,解码系统和可实施它们的功能单元的上下文中描述了本公开的各种实施方案。实际上,这些系统可应用于多种设备,诸如具有集成视频摄像机的移动设备(例如,具有相机功能的电话,娱乐系统和计算机)和/或有线通信系统诸如视频会议设备和支持相机的台式计算机。在一些应用中,上文描述的功能块可以作为集成软件系统的元件提供,其中块可以作为计算机程序的元件提供,这些块作为程序指令存储在存储器中并由通用处理系统执行。在其他应用中,功能块可以作为处理系统的分立电路部件提供,例如数字信号处理器或专用集成电路内的功能单元。本公开的其他应用可以体现为专用硬件和软件部件的混合系统。此外,不需要将本文所述的功能块作为单独的组件提供。例如,尽管图1-图11示出了作为单独单元的视频编码器和解码器的部件,在一个或多个实施方案中,它们中的一些或全部可以是集成的,并且它们无需是单独的单元。除非另有说明,否则这些实施细节对于本公开的操作并不重要。
161.此外,本文所示的附图仅提供了必要的细节以呈现本公开的主题。在实施过程中,视频编码器和解码器通常将包括除本文所述的那些之外的功能单元,包括用于在所示的编码流水线中存储数据的缓冲器以及用于管理与通信网络和对应的编码器/解码器设备的通信的通信收发器。为了清楚起见,上述讨论省略了此类元件。
162.本文具体示出和/或描述了本公开的若干实施方案。然而,应当理解的是,在不脱离本公开的实质和预期范围的情况下,本公开的修改和变型由上述教导内容涵盖并且在所附权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献