本公开涉及视频编码和解码方法,更具体地,涉及通过预测运动矢量对视频图像的运动矢量进行编码和解码的方法和设备。
背景技术:
在诸如h.264高级视频编码(avc)和高效视频编码(hevc)的编解码器中,先前编码并与当前块相邻的块的运动矢量或先前编码的图片中的共位块的运动矢量可以用于当前块的预测运动矢量,从而预测当前块的运动矢量。
在视频编码和解码方法中,为了对图像进行编码,一个图片可以被分割成宏块,并且每个宏块可以通过使用帧间预测或帧内预测进行预测编码。
帧间预测是通过消除图片之间的时间冗余来压缩图像的方法,并且运动估测编码是帧间预测的代表性示例。在运动估测编码中,通过使用至少一个参考图片预测当前图片中的每个块。通过使用预定的评估函数在预定搜索范围内搜索与当前块最相似的参考块。
基于参考块预测当前块,并且对通过从当前块中扣除通过预测生成的预测块获取的残差块进行编码。这里,为了精确地进行预测,对参考图片的搜索范围进行内插以生成小于整数像素单位像素的子像素单元像素,并且对所生成的子像素单元像素进行帧间预测。
技术实现要素:
技术效果
根据本公开的运动矢量解码和编码设备和方法,可以确定运动矢量的最佳预测运动矢量和分辨率,从而对视频进行有效的编码或解码,并且可以降低设备的复杂性。
本领域普通技术人员将理解,本公开可以实现的目的和有益效果不限于上文具体描述的内容,并且从以下详细描述中可以更清楚地理解本公开的其它目的。
附图说明
图1a是根据实施方式的用于对运动矢量进行编码的设备的框图。
图1b是根据实施方式的对运动矢量进行编码的方法的流程图。
图2a是根据实施方式的用于对运动矢量进行解码的设备的框图。
图2b是根据实施方式的对运动矢量进行解码的方法的流程图。
图3a是示出基于各种分辨率执行运动补偿的内插的图。
图3b是1/4像素单元、1/2像素单元、一像素单元和二像素单元的运动矢量分辨率的图。
图4a是用于获取候选预测运动矢量的当前块的候选块的图。
图4b示出了根据实施方式的生成候选预测运动矢量的过程。
图5a是根据实施方式的编码单元和预测单元的图。
图5b示出了根据实施方式的用于传输已经被自适应地确定的运动矢量分辨率的预测单元句构的一部分。
图5c示出了根据另一实施方式的用于传输已经被自适应地确定的运动矢量分辨率的预测单元句构的一部分。
图5d示出了根据另一实施方式的用于传输已经被自适应地确定的运动矢量分辨率的预测单元句构的一部分。
图6a是用于解释根据实施方式的通过使用多个分辨率来生成候选合并列表的图。
图6b是用于解释根据另一实施方式的通过使用多个分辨率来生成候选合并列表的图。
图7a示出了由具有不同分辨率的两个运动矢量指向的像素。
图7b示出了构成扩展四倍的图片的像素和不同分辨率的运动矢量。
图8是根据本公开实施方式的基于根据树形结构的编码单元的视频编码设备的框图。
图9示出了根据实施方式的基于树形结构的编码单元的视频解码设备的框图。
图10示出了根据实施方式的编码单元的概念。
图11示出了根据实施方式的基于编码单元的视频编码器的框图。
图12示出了根据实施方式的基于编码单元的视频解码器的框图。
图13示出了根据实施方式的根据深度的较深编码单元和分区。
图14示出了根据实施方式的编码单元与变换单元之间的关系。
图15示出了根据实施方式的多项编码信息。
图16示出了根据实施方式的根据深度的较深编码单元。
图17、图18和图19示出了根据实施方式的编码单元、预测单元与变换单元之间的关系。
图20示出了根据表1的编码模式信息的编码单元、预测单元与变换单元之间的关系。
图21示出了根据实施方式的存储有程序的盘片的物理结构。
图22示出了通过使用盘片来记录和读取程序的盘片驱动器。
图23示出了用于提供内容分发服务的内容供应系统的整体结构。
图24示出了根据实施方式的应用本公开的视频编码方法和视频解码方法的移动电话的外部结构。
图25示出移动电话的内部结构。
图26示出了根据实施方式的采用通信系统的数字广播系统。
图27示出了根据实施方式的使用视频编码设备和视频解码设备的云计算系统的网络结构。
实施本发明的最佳方式
根据本公开的一方面,运动矢量编码设备包括:预测器,预测器配置为通过使用当前块的空间候选块和时间候选块来获取多个预定运动矢量分辨率的候选预测运动矢量,以及通过使用候选预测运动矢量来确定当前块的预测运动矢量、当前块的运动矢量和当前块的运动矢量分辨率;以及编码器,编码器配置为对下列信息进行编码:表示当前块的预测运动矢量的信息、当前块的运动矢量与当前块的预测运动矢量之间的残差运动矢量、以及表示当前块的运动矢量分辨率的信息,其中,多个预定运动矢量分辨率包括大于一像素单元的分辨率的像素单元的分辨率。
预测器可以通过使用包括从候选预测运动矢量中选出的一个或多个候选预测运动矢量的第一候选运动矢量的集合来搜索第一运动矢量分辨率的像素单元的参考块;以及通过使用包括从候选预测运动矢量中选出的一个或多个候选预测运动矢量的第二候选运动矢量的集合来搜索第二运动矢量分辨率的像素单元的参考块,其中:第一运动矢量分辨率和第二运动矢量分辨率彼此不同;以及第一候选预测运动矢量的集合和第二候选预测运动矢量的集合可以从包括在空间候选块和时间候选块中的候选块中彼此不同的候选块获取。
预测器可以通过使用包括从候选预测运动矢量中选出的一个或多个候选预测运动矢量的第一候选运动矢量的集合来搜索第一运动矢量分辨率的像素单元的参考块;以及可以通过使用包括从候选预测运动矢量中选出的一个或多个候选预测运动矢量的第二候选运动矢量的集合来搜索第二运动矢量分辨率的像素单元的参考块,其中:第一运动矢量分辨率和第二运动矢量分辨率可以彼此不同,以及第一候选预测运动矢量的集合和第二候选预测运动矢量的集合可以包括数量彼此不同的候选预测运动矢量。
在当前块的运动矢量的分辨率的像素单元大于最小运动矢量分辨率的像素单元时,编码器可以根据当前块的运动矢量的分辨率来缩小(down-scale)残差运动矢量,从而对残差运动矢量进行编码。
在当前块是构成图像的当前编码单元,针对每个编码单元确定相同的运动矢量分辨率,以及在当前编码单元中存在以amvp(高级运动矢量预测)模式预测的预测单元时,编码器可以将表示以amvp模式预测的预测单元的运动矢量分辨率的信息编码为表示当前块的运动矢量分辨率的信息。
在当前块是构成图像的当前编码单元,为每个预测单元确定相同的运动矢量分辨率,以及在当前编码单元中存在以amvp(高级运动矢量预测)模式预测的预测单元时,编码器可以将表示当前块中以amvp模式预测的每个预测单元的运动矢量分辨率的信息编码为表示当前块的运动矢量分辨率的信息。
根据本公开的一方面,运动矢量编码设备包括:预测器,预测器配置为通过使用当前块的空间候选块和时间候选块来获取多个预定运动矢量分辨率的候选预测运动矢量,以及通过使用候选预测运动矢量来确定当前块的预测运动矢量、当前块的运动矢量和当前块的运动矢量分辨率;以及编码器,编码器配置为对下列信息进行编码:表示当前块的预测运动矢量的信息、当前块的运动矢量与当前块的预测运动矢量之间的残差运动矢量、以及表示当前块的运动矢量分辨率的信息,其中,预测器:通过使用包括从候选预测运动矢量中选出的一个或多个候选预测运动矢量的第一候选运动矢量的集合来搜索第一运动矢量分辨率的像素单元的参考块;以及通过使用包括从候选预测运动矢量中选出的一个或多个候选预测运动矢量的第二候选运动矢量的集合来搜索第二运动矢量分辨率的像素单元的参考块,其中:第一运动矢量分辨率和第二运动矢量分辨率彼此不同;以及第一候选预测运动矢量的集合和第二候选预测运动矢量的集合从包括在空间候选块和时间候选块中的候选块中彼此不同的候选块中获取,或者包括数量彼此不同的候选预测运动矢量。
根据本公开的一方面,运动矢量编码设备配置为:生成包括当前块的至少一个候选合并的候选合并列表(mergecandidatelist),以及通过使用包括在候选合并列表中的至少一个候选合并中的一个候选合并的运动矢量来确定并编码当前块的运动矢量,其中,候选合并列表包括通过根据多个预定运动矢量分辨率缩小包括在候选合并列表中的至少一个候选合并的运动矢量而获取的运动矢量。
缩小可以包括:基于当前块的运动矢量的分辨率来选择由最小运动矢量分辨率的运动矢量指向的像素周围的周边像素之一,而不是选择由最小运动矢量分辨率的运动矢量指向的像素;以及将最小运动矢量分辨率的运动矢量调整为指向所选择的像素。
根据本公开的一方面,运动矢量解码设备包括:获取器,获取器配置为通过使用当前块的空间候选块和时间候选块来获取多个预定运动矢量分辨率的候选预测运动矢量,从候选预测运动矢量中获取表示当前块的预测运动矢量的信息,以及获取当前块的运动矢量与当前块的预测运动矢量之间的残差运动矢量和表示当前块的运动矢量分辨率的信息;以及解码器,解码器配置为基于残差运动矢量、表示当前块的预测运动矢量的信息和当前块的运动矢量分辨率信息来重建当前块的运动矢量,其中,多个预定运动矢量分辨率包括大于一像素单元的分辨率的像素单元的分辨率。
多个预定运动矢量分辨率的候选预测运动矢量可以包括:包括第一运动矢量分辨率的一个或多个候选预测运动矢量的第一候选预测运动矢量的集合;以及包括第二运动矢量分辨率的一个或多个候选预测运动矢量的第二候选预测运动矢量的集合,其中:第一运动矢量分辨率和第二运动矢量分辨率可以彼此不同;以及第一候选预测运动矢量的集合和第二候选预测运动矢量的集合可以从包括在空间候选块和时间候选块中的候选块中彼此不同的候选块中获取,或者可以包括数量彼此不同的候选预测运动矢量。
在当前块的运动矢量的分辨率的像素单元大于最小运动矢量分辨率的像素单元时,解码器可以根据最小运动矢量分辨率放大(up-scale)残差运动矢量,从而重建残差运动矢量。
在当前块是构成图像的当前编码单元,针对每个编码单元确定相同的运动矢量分辨率,以及在当前编码单元中存在以amvp(高级运动矢量预测)模式预测的预测单元时,获取器从比特流中获取表示以amvp模式预测的预测单元的运动矢量分辨率的信息以作为表示当前块的运动矢量分辨率的信息。
根据本公开的一方面,运动矢量解码设备配置为:生成包括当前块的至少一个候选合并的候选合并列表(mergecandidatelist),以及通过使用包括在候选合并列表中的至少一个候选合并中的一个候选合并的运动矢量来确定并解码当前块的运动矢量,其中,候选合并列表包括通过根据多个预定运动矢量分辨率缩小包括在候选合并列表中的至少一个候选合并的运动矢量而获取的运动矢量。
根据本公开的一方面,运动矢量解码设备包括:获取器,获取器配置为通过使用当前块的空间候选块和时间候选块来获取多个预定运动矢量分辨率的候选预测运动矢量,从候选预测运动矢量中获取表示当前块的预测运动矢量的信息,以及获取当前块的运动矢量与当前块的预测运动矢量之间的残差运动矢量和表示当前块的运动矢量分辨率的信息;以及解码器,解码器配置为基于残差运动矢量、表示当前块的预测运动矢量的信息和当前块的运动矢量分辨率信息来重建当前块的运动矢量,其中,多个预定运动矢量分辨率的候选预测运动矢量包括:包括第一运动矢量分辨率的一个或多个候选预测运动矢量的第一候选预测运动矢量的集合;以及包括第二运动矢量分辨率的一个或多个候选预测运动矢量的第二候选预测运动矢量的集合,其中:第一运动矢量分辨率和第二运动矢量分辨率彼此不同;以及第一候选预测运动矢量的集合和第二候选预测运动矢量的集合从包括在空间候选块和时间候选块中的候选块中彼此不同的候选块中获取,或者包括数量彼此不同的候选预测运动矢量。
根据本公开的一方面,可以提供一种非暂时性计算机可读记录介质,在非暂时性计算机可读记录介质中记录有用于执行运动矢量解码方法的程序。
具体实施方式
在下文中,将参考图1a至图7b来描述根据本公开的用于编码和解码用于视频编码和解码设备和方法的运动矢量分辨率的设备和方法。在下文中,视频编码设备和方法可以分别包括用于对稍后将描述的运动矢量进行编码的设备和方法。此外,视频解码设备和方法可以分别包括用于对稍后将描述的运动矢量进行解码的设备和方法。
此外,将参考图8至图20描述可以应用于先前提出的视频编码和解码方法的根据实施方式的基于具有树形结构的编码单元的视频编码技术和视频解码技术。此外,将参考图21至图27描述可以应用先前提出的视频编码和解码方法的实施方式。
在下文中,“图像”可以指视频的静止图像或运动图像,或视频本身。
在下文中,“样本”是指分配给图像的采样位置并将被处理的数据。例如,空间域的图像中的像素可以是样本。
在下文中,“当前块”可以指将被编码或将被解码的当前图像中的编码单元或预测单元的块。
在整个说明书中,除非另有与之相反的特定描述,否则当一部分“包括(include/comprise)”元件时,该部分还可以包括其它元件,而不排除其它元件。如本文所使用的术语“单元”是指执行某些任务的软件部件或硬件部件,例如现场可编程门阵列(fpga)或专用集成电路(asic)。然而,术语“单元”不限于软件或硬件。有利地,“单元”可配置为驻存在可寻址存储介质上并且配置为在一个或多个处理器上执行。因此,单元可以例如包括诸如软件部件、面向对象的软件部件、类部件和任务部件的部件、程序、功能、属性、过程、子例程、程序代码段、驱动器、固件、微代码、电路、数据、数据库、数据结构、表格、数组和变量。在部件和“单元”中提供的功能可以组合成更少的部件和“单元”,或者可以进一步分为额外的部件和“单元”。
首先,将参考图1a至图7b描述用于对运动矢量进行编码从而对视频进行编码的方法和设备,以及用于对运动矢量进行解码从而对视频进行解码的方法和设备。
图1a是根据实施方式的运动矢量编码设备10的框图。
在视频编码中,帧间预测表示使用当前图像与其它图像之间的相似度的预测方法。在当前图像之前重建的参考图像中,检测与当前图像中的当前区域相似的参考区域,将坐标上的当前区域与参考区域之间的距离表示为运动矢量,并且可以将当前区域和参考区域的像素值之间的差值表示为残差数据。因此,不同于直接输出当前区域的图像信息,可以输出表示参考图像的索引、运动矢量和通过对当前区域的帧间预测的残差数据以提高编码/解码操作的效率。
根据本实施方式的运动矢量编码设备10可以对用于对视频中的每个图像的块执行帧间预测的运动矢量进行编码。块的类型可以是正方形或矩形,或者可以是任意几何形状。块不限于具有均匀尺寸的数据单元。根据实施方式的块可以是根据树形结构的编码单元中的最大编码单元、编码单元、预测单元或变换单元。下面将参考图8至图20描述基于根据树形结构的编码单元的视频编码和解码方法。
运动矢量编码设备10可以包括预测器11和编码器13。
根据本实施方式的运动矢量编码设备10可以对用于对视频中的每个图像的每个块执行帧间预测的运动矢量执行编码。
运动矢量编码设备10可以参考不同于当前块的块的运动矢量来确定当前块的运动矢量,从而执行运动矢量预测、预测单元(pu)合并或高级运动矢量预测(amvp)。
根据本实施方式的运动矢量编码设备10可以参考与当前块在时间上或空间上相邻的另一个块的运动矢量来确定当前块的运动矢量。运动矢量编码设备10可以确定包括可以是当前块的运动矢量所参考的目标的候选块的运动矢量的预测候选。运动矢量编码设备10可以参考从预测候选中选出的一个运动矢量来确定当前块的运动矢量。
根据本实施方式的运动矢量编码设备10将编码单元分割为作为预测的基本单元的预测单元,通过运动估测来针对与当前编码单元最相似的预测块搜索与当前图片相邻的参考图片,并且确定表示当前块与预测块之间的运动信息的运动参数。
根据本实施方式的预测单元从编码单元分割,并且可以不被分割为四叉树,但是可以仅被分割一次。例如,一个编码单元可以被分割为多个预测单元,并且从分割获取的预测单元可以不被额外地分割。
运动矢量编码设备10可以针对运动估测在横向方向和纵向方向上将参考图片的分辨率扩展最大n倍(n是整数),并且可以在像素位置中以1/n的精度确定当前块的运动矢量。在这种情况下,n被称为图片的最小运动矢量分辨率。
例如,如果最小运动矢量分辨率的像素单元是1/4像素,则运动矢量编码设备10可以将图片的分辨率在横向和纵向上扩展四倍,从而确定1/4像素位置精度的运动矢量。然而,根据图像的特性确定1/4像素单元的运动矢量可能不足,并且另一方面,与确定1/2像素单元的运动矢量相比,确定1/4像素单元的运动矢量可能是低效的。因此,根据本实施方式的运动矢量编码设备10可以自适应地确定当前块的运动矢量的分辨率,并且可以对确定的预测运动矢量、实际运动矢量和运动矢量分辨率进行编码。
根据本实施方式的预测器11可以通过使用候选预测运动矢量中的一个来确定用于当前块的帧间预测的最佳运动矢量。
预测器11通过使用当前块的空间候选块和时间候选块来获取多个预定运动矢量分辨率的候选预测运动矢量,并且可以通过使用候选预测运动矢量来确定当前块的预测运动矢量、当前块的运动矢量以及当前块的运动矢量分辨率。空间候选块可以包括在空间上与当前块相邻的至少一个周边块。此外,时间候选块可以包括在空间上与这样的块相邻的至少一个周边块,该块与具有不同于当前块的图片顺序计数(poc)的参考图片内的当前块处于相同位置。根据本实施方式的预测器11可以通过复制、组合或变换至少一个候选预测运动矢量来确定当前块的运动矢量。
预测器11可以通过使用候选预测运动矢量来确定当前块的预测运动矢量、当前块的运动矢量和当前块的运动矢量分辨率。多个预定运动矢量分辨率可以包括大于一像素单元的分辨率的像素单元的分辨率。换言之,多个预定运动矢量分辨率可以包括二像素单元、三像素单元、四像素单元等的分辨率。然而,多个预定运动矢量分辨率可以不仅包括一个或多个像素单元的分辨率,还包括一个或更少像素单元的分辨率。
预测器11可以通过使用包括从候选预测运动矢量中选出的一个或多个候选预测运动矢量的第一候选预测运动矢量的集合来搜索第一运动矢量分辨率的像素单元的参考块,并且可以通过使用包括从候选预测运动矢量中选出的一个或多个候选预测运动矢量的第二候选预测运动矢量的集合来搜索第二运动矢量分辨率的像素单元中的参考块。第一运动矢量分辨率和第二运动矢量分辨率可以彼此不同。可以从包括在空间候选块和时间候选块中的候选块中不同的候选块获取第一候选预测运动矢量的集合和第二候选预测运动矢量的集合。第一候选预测运动矢量的集合和第二候选预测运动矢量的集合可以包括不同数量的候选预测运动矢量。
稍后将参考图4b来描述供预测器11通过使用多个预定运动矢量分辨率的候选预测运动矢量来确定当前块的预测运动矢量、当前块的运动矢量和当前块的运动矢量分辨率的方法。
编码器13可对表示当前块的预测运动矢量的信息、表示当前块的运动矢量与当前块的预测运动矢量之间的残差运动矢量的信息、以及表示当前块的运动矢量分辨率的信息进行编码。因为使用了实际运动矢量与预测运动矢量之间的残差运动矢量,所以编码器13可以通过使用少量的比特来对当前块的运动矢量进行编码,并且因此可以提高视频编码的压缩率。如稍后将描述的,编码器13可以对表示当前块的运动矢量分辨率的索引进行编码。此外,编码器13可以基于最小运动矢量分辨率和当前块的运动矢量分辨率之间的差值在缩小残差运动矢量之后对残差运动矢量进行编码。
图1b是根据实施方式的对运动矢量进行编码的方法的流程图。
在操作12中,根据本实施方式的运动矢量编码设备10可以通过使用当前块的空间候选块和时间候选块的运动矢量来获取多个预定运动矢量分辨率的候选预测运动矢量。多个预定运动矢量分辨率可以包括大于一像素单元的分辨率的像素单元的分辨率。
在操作14中,根据本实施方式的运动矢量编码设备10可以通过使用在操作12中获取的候选预测运动矢量来确定当前块的预测运动矢量、当前块的运动矢量和当前块的运动矢量分辨率。
在操作16中,根据本实施方式的运动矢量编码设备10可以对表示在操作14中确定的预测运动矢量的信息、表示当前块的运动矢量与当前块的预测运动矢量之间的残差运动矢量的信息、以及表示当前块的运动矢量分辨率的信息进行编码。
图2a是根据实施方式的运动矢量解码设备的框图。
运动矢量解码设备20可以通过解析所接收的比特流来确定用于执行当前块的帧间预测的运动矢量。
获取器21可以通过使用当前块的空间候选块和时间候选块来获取多个预定运动矢量分辨率的候选预测运动矢量。空间候选块可以包括在空间上与当前块相邻的至少一个周边块。此外,时间候选块可以包括在空间上与这样的块相邻的至少一个周边块,该块与具有不同于当前块的图片顺序计数(poc)的参考图片内的当前块处于相同位置。多个预定运动矢量分辨率可以包括大于一像素单元的分辨率的像素单元的分辨率。换言之,多个预定运动矢量分辨率可以包括二像素单元、三像素单元、四像素单元等的分辨率。然而,多个预定运动矢量分辨率可以不仅包括一个或多个像素单元的分辨率,还包括一个或更少像素单元的分辨率。
多个预定运动矢量分辨率的候选预测运动矢量可以包括包含第一运动矢量分辨率的一个或多个候选预测运动矢量的第一候选预测运动矢量的集合,以及包含第二运动矢量分辨率的一个或多个候选预测运动矢量的第二候选预测运动矢量的集合。第一运动矢量分辨率和第二运动矢量分辨率彼此不同。可以从包括在空间候选块和时间候选块中的候选块中不同的候选块获取第一候选预测运动矢量的集合和第二候选预测运动矢量的集合。此外,第一候选预测运动矢量的集合和第二候选预测运动矢量的集合可以包括不同数量的候选预测运动矢量。
获取器21可以从所接收的比特流中从候选预测运动矢量中获取表示当前块的预测运动矢量的信息、以及关于当前块的运动矢量与当前块的预测运动矢量之间的残差运动矢量和当前块的运动矢量分辨率的信息。
解码器23可以基于由获取器21获取的残差运动矢量、表示当前块的预测运动矢量的信息以及当前块的运动矢量分辨率信息来重建当前块的运动矢量。解码器23可以基于最小运动矢量分辨率和当前块的运动矢量分辨率之间的差值来放大和重建与所接收的残差运动矢量有关的数据。
稍后将参考图5a至图5d描述根据本实施方式的运动矢量解码设备20通过解析所接收的比特流来获取当前块的运动矢量分辨率的方法。
图2b是根据实施方式的对运动矢量进行解码的方法的流程图。
在操作22中,根据本实施方式的运动矢量解码设备20可以通过使用当前块的空间候选块和时间候选块来获取多个预定运动矢量分辨率的候选预测运动矢量。
在操作24中,根据本实施方式的运动矢量解码设备20可以从比特流中从候选预测运动矢量中获取表示当前块的预测运动矢量的信息、当前块的运动矢量与当前块的预测运动矢量之间的残差运动矢量、以及表示当前块的运动矢量分辨率的信息。多个预定运动矢量分辨率可以包括大于一像素单元的分辨率的像素单元的分辨率。
在操作26中,根据本实施方式的运动矢量解码设备20可以基于表示在操作24中获取的当前块的预测运动矢量和残差运动矢量的信息以及当前块的运动矢量分辨率信息来重建当前块的运动矢量。
图3a是示出基于各种分辨率执行运动补偿的内插的图。
运动矢量编码设备10可以确定多个预定运动矢量分辨率的运动矢量,以用于对当前块执行帧间预测。多个预定运动矢量分辨率可以包括2k像素单元的分辨率(k是整数)。如果k大于0,则运动矢量可以仅指向参考图像中的一些像素,而如果k小于0,则通过使用n抽头(n是整数)的有限脉冲响应(fir)滤波器的内插来生成子像素单元像素,并且运动矢量可以指向所生成的子像素单元像素。例如,运动矢量编码设备10可以以1/4像素单元确定最小运动矢量分辨率,并且可以以1/4像素单元、1/2像素单元、1像素单元和2像素单元来确定多个预定运动矢量分辨率。
例如,可以通过使用n抽头fir滤波器执行内插来生成1/2像素单元的子像素(a至1)。当涉及纵向方向上的1/2子像素时,可以使用整数像素单元的a1、a2、a3、a4、a5和a6通过内插来生成子像素a,可以使用整数像素单元的b1、b2、b3、b4、b5和b6通过内插来生成子像素b。可以以与上述相同的方式生成子像素c、d、e和f。
子像素在横向上的像素值可以如下计算。例如,a和b可以被计算为a=(a1-5×a2+20×a3+20×a4-5×a5+a6)/32,并且b=(b1-5×b2+20×b3+20×b4-5×b5+b6)/32。可以以与上述相同的方式计算子像素c、d、e和f的像素值。
与横向方向上的子像素类似,纵向方向上的子像素可以使用6抽头fir滤波器通过内插来生成。可以通过使用a1、b1、c1、d1、e1和f1来生成子像素g,并且可以通过使用a2、b2、c2、d2、e2和f2来生成子像素h。
可以以与横向方向上的子像素的像素值的计算相同的方式来计算纵向方向上的子像素的像素值。例如,g可以被计算为g=(a1-5×b1+20×c1+20×d1-5×e1+f1)/32。
可以通过使用1/2像素单元的其它子像素来内插对角线方向的1/2像素单元的子像素m。换言之,子像素m的像素值可以被计算为m=(a-5×b+20×c+20×d-5×e+f)/32。
当生成1/2像素单元的子像素时,可以通过使用1/2像素单元的子像素和整数像素单元的像素来生成1/4像素单元的子像素。内插可以由两个相邻像素执行,生成1/4像素单元的子像素。或者,可以通过对整数像素单元的像素值直接应用内插滤波器而不使用1/2像素单元的子像素值来生成1/4像素单元的子像素。
6抽头滤波器被示例性地提供为内插滤波器,但是运动矢量编码设备10可以通过使用具有不同数量的抽头的滤波器来内插图片。例如,内插滤波器可以包括4抽头、7抽头、8抽头和12抽头滤波器。
如图3a所示,当通过参考图片上的内插来生成1/2像素单元的子像素和1/4像素单元的子像素时,将内插参考图片和当前块彼此比较以搜索具有1/4像素单元的绝对差(sad)之和或最小率失真代价的块,并确定具有1/4像素单元分辨率的运动矢量。
图3b是表示最小运动矢量分辨率处于1/4像素单元的情况下的1/4像素单元、1/2像素单元、一像素单元和二像素单元中的运动矢量分辨率的图。图3b示出了可以基于坐标(0,0)在1/4像素单元、1/2像素单元、一像素单元和二像素单元中的分辨率的运动矢量指向的像素的坐标(表示为黑色方块)。
根据本实施方式的运动矢量编码设备10可以基于在整数像素位置处确定的运动矢量来搜索针对与当前块类似的块的参考图片,从而在子像素单元中执行运动补偿。
例如,运动矢量编码设备10可以确定整数像素位置处的运动矢量,并且可以将参考图片的分辨率提高两倍,并且基于在整数像素位置处确定的运动矢量在(-1,-1)至(1,1)的范围内搜索最相似的预测块。接下来,将分辨率再次扩展两次以将分辨率提高4倍,并随后基于在1/2像素位置处的运动矢量在(-1,-1)至(1,1)的范围内搜索最相似的预测块,从而最终确定1/4像素单元分辨率的运动矢量。
例如,在基于坐标(0,0)的整数像素位置处的运动矢量为(-4,-3)的情况下,1/2像素单元分辨率的运动矢量变为(-8,-6),并且1/2像素单元分辨率的运动矢量最终确定为(-8,-7)。另外,1/4像素单元分辨率的运动矢量变为(-16,-14)并移动(-1,0),然后1/4像素单元分辨率的最终运动矢量可以确定为(-17,-14)。
根据本实施方式的运动矢量编码设备10可以基于在整数像素位置处确定的运动矢量来基于大于1个像素位置的像素位置来针对与当前块类似的块搜索参考图片,从而在大于一像素单元的像素单元中执行运动补偿。在下文中,将大于一像素位置(例如,2像素、3像素和4像素)的像素位置称为超像素。
例如,当基于坐标(0,0)的整数像素位置处的运动矢量为(-4,-8)时,二像素单元分辨率的运动矢量被确定为(-2,-4)。为了对1/4像素单元的运动矢量进行编码,比用于对整数像素单元中的运动矢量进行编码的比特消耗更多的比特,但是可以执行1/4像素单元的精确帧间预测,从而可以减少对残差块进行编码所消耗的比特数。
然而,如果通过小于1/4像素单元的像素单元(例如,1/8像素单元)中的内插生成子像素,并且如果估测1/8像素单元的运动矢量,则消耗了太多比特来对运动矢量进行编码,并且编码的压缩率可能降低。
此外,如果图像中存在大量噪声,并且如果纹理较小,则可以在超像素单元中设置分辨率并执行运动估测,使得可以提高编码的压缩率。
图4a是用于获取候选预测运动矢量的当前块的候选块的图。
预测器11可以获取针对当前块的预测运动矢量的一个或多个候选,从而相对于待编码的当前块的参考图片对当前块执行运动估测。预测器11可以获取当前块的空间候选块和时间候选块中的至少一项,从而获取针对预测运动矢量的候选。
如果参考具有不同poc的参考帧预测当前块,则预测器11可以通过使用位于当前块周围的块、包括在与当前块时间上不同(具有不同的poc)的参考帧中的共位块和共位块的周边块来获取候选预测运动矢量。
例如,空间候选块可以包括与当前块410的相邻的块的左块(a1)411、上块(b1)412、左上块(b2)413、右上块(b0)414和左下块(a0)425中的至少一项。时间候选块可以包括包含在具有与当前块不同的poc的参考帧中的共位块430和共位块430的相邻块(h)431中的至少一项。运动矢量编码设备10可以获取时间候选块和空间候选块的运动矢量作为候选预测运动矢量。
预测器11可以获取多个预定运动矢量分辨率的候选预测运动矢量。候选预测运动矢量中的每一个候选预测运动矢量可以具有与其它候选预测运动矢量的分辨率不同的分辨率。换言之,预测器11可以通过使用候选预测运动矢量中的第一候选预测运动矢量来搜索第一运动矢量分辨率的像素单元中的参考块,并且通过使用第二候选预测运动矢量来搜索第二运动矢量分辨率的像素单元中的参考块。第一候选预测运动矢量和第二候选预测运动矢量可以通过使用包括在空间候选块和时间候选块中的块之中的彼此不同的块来获取。
预测器11可以确定根据运动矢量的分辨率而变化的候选块的集合(即,候选预测运动矢量的集合)的数量和种类。
例如,在最小运动矢量分辨率为1/4像素并且多个预定运动矢量分辨率为1/4像素、1/2像素、一像素和二像素的情况下,预测器11可以针对每个分辨率生成预定数量的候选预测运动矢量。每个分辨率的候选预测运动矢量可以是不同候选块的运动矢量。预测器11通过针对每个分辨率使用不同的候选块来获取候选预测运动矢量,从而提高搜索到光学参考块的概率并降低率失真代价,从而可以提高编码效率。
为了确定当前块的运动矢量,预测器11可以通过使用每个候选预测运动矢量来确定参考图片内的搜索开始位置,并且可以基于每个候选预测运动矢量的分辨率来搜索最佳参考块。换言之,当获取当前块的预测运动矢量时,运动矢量编码设备10在与每个候选预测运动矢量对应的预定分辨率的像素单元中搜索参考块,并基于当前块的运动矢量与每个预测运动矢量之间的差值比较率失真代价以确定具有最小代价的预测运动矢量。
编码器13可对表示作为所确定的一个预测运动矢量与当前块的实际运动矢量之间的差值矢量的残差运动矢量的信息以及用于执行当前块的帧间预测的运动矢量分辨率进行编码。
编码器13可以确定和编码如下面的等式1所示的残差运动矢量。mvx是当前块的实际运动矢量中的x分量,并且mvy是当前块的实际运动矢量中的y分量。pmvx是当前块的预测运动矢量中的x分量,并且pmvy是当前块的预测运动矢量中的y分量。mvdx是当前块的残差运动矢量中的x分量,并且mvdy是当前块的残差运动矢量中的y分量。
mvdx=mvx-pmvx
mvdy=mvy-pmvy------------------------------------------(1)
解码器23可以通过使用指向从比特流获取的预测运动矢量和残差运动矢量的信息来重建当前块的运动矢量。解码器23可以通过将预测运动矢量和残差运动矢量相加来确定最终运动矢量,如下面的等式2所示。
mvx=pmvx+mvdx
mvy=pmcy+mvdy------------------------------------------(2)
如果最小矢量分辨率是子像素单元,则运动矢量编码设备10可以通过将预测运动矢量和实际运动矢量乘以整数值来表示整数值的运动矢量。如果从坐标(0,0)开始的1/4像素单元分辨率的预测运动矢量表示坐标(1/2,3/2)并且最小运动矢量分辨率在1/4像素单元,则运动矢量编码设备10可以将通过将预测运动矢量乘以整数4而获取的矢量(2,6)编码为预测运动矢量。如果最小运动矢量分辨率是1/8像素单元,则预测运动矢量乘以整数8以获取矢量(4,12),并且矢量(4,12)可以被编码为预测运动矢量。
图4b示出了根据实施方式的生成候选预测运动矢量的过程。
如上所述,预测器11可以获取多个预定运动矢量分辨率的候选预测运动矢量。
例如,在最小运动矢量分辨率为1/4像素并且多个预定运动矢量分辨率包括1/4像素、1/2像素、1像素和2像素的情况下,预测器11可以针对每个分辨率生成预定数量的候选预测运动矢量。预测器11可以根据多个预定运动矢量分辨率来生成彼此不同的候选预测运动矢量的集合460、470、480和490。集合460、470、480和490可以包括从彼此不同的候选块获取的预测运动矢量,并且可以包括彼此数量不同的预测运动矢量。由于预测器11使用分辨率的差分候选块,因此提高了搜索最佳预测块的几率,并且降低率失真代价以提高编码效率。
可以从两个不同的时间候选块或空间候选块确定1/4像素单元分辨率的候选预测运动矢量460。例如,预测器11获取相对于当前块的左块411和上块412的运动矢量作为1/4像素单元的候选预测运动矢量460,并且可以搜索具有相对于每个候选预测运动矢量的最佳运动矢量。换言之,预测器11可以通过使用当前块的左块411的运动矢量来确定搜索开始位置,并且可以搜索针对最佳运动矢量和参考块的1/4像素单元的参考块。换言之,预测器11可以通过使用上块412的运动矢量来确定搜索开始位置,并且可以搜索针对另一最佳运动矢量和参考块的1/4像素单元的参考块。
可以从一个时间候选块或空间候选块中确定1/2像素单元分辨率的候选预测运动矢量470。1/2像素单元分辨率的候选预测运动矢量可以不同于1/4像素单元分辨率的候选预测运动矢量。例如,预测器11可以获取当前块的右上块414的运动矢量作为1/2像素单元的候选预测运动矢量470。换言之,预测器11可以通过使用右上块414的运动矢量来确定搜索开始位置,并且可以搜索针对另一最佳运动矢量和参考块的1/2像素单元的参考块。
可以从一个时间候选块或空间候选块中确定一像素单元分辨率的候选预测运动矢量480。一像素单元分辨率的预测运动矢量可以不同于1/4像素单元分辨率和1/2像素单元分辨率中使用的预测运动矢量。例如,预测器11可以将时间候选块430的运动矢量确定为一像素单元中的候选预测运动矢量480。换言之,预测器11可以通过使用时间候选块430的运动矢量来确定搜索开始位置,并且可以搜索针对另一最佳运动矢量和参考块的一像素单元中的参考块。
可以从一个时间候选块或空间候选块中确定二像素单元分辨率的候选预测运动矢量490。二像素单元分辨率的预测运动矢量可以不同于其它分辨率中使用的预测运动矢量。例如,预测器11可以将左下块425的运动矢量确定为二像素单元的预测运动矢量490。换言之,预测器11可以通过使用左下块425的运动矢量来确定搜索开始位置,并且可以搜索针对另一最佳运动矢量和参考块的二像素单元的参考块。
预测器11可以基于当前块的运动矢量和每个预测运动矢量来比较率失真代价,使得可以最终确定当前块的运动矢量和预测运动矢量以及运动矢量分辨率495。
在当前块中的运动矢量的分辨率的像素单元大于最小运动矢量分辨率的像素单元的情况下,运动矢量编码设备10可以根据当前块的运动矢量的分辨率在缩小残差运动矢量之后对残差运动矢量进行编码。此外,在当前块中的运动矢量的分辨率的像素单元大于最小运动矢量分辨率的像素单元时,运动矢量解码设备20可以根据最小运动矢量分辨率在放大残差运动矢量之后对残差运动矢量进行重建。
在最小运动矢量分辨率是1/4像素单元并且当前块的运动矢量分辨率被确定为1/2像素单元的情况下,编码器13可以通过由1/2像素单元调整所确定的实际运动矢量和预测运动矢量来计算残差运动矢量,从而减小残差运动矢量的尺寸。
编码器13可以将实际运动矢量和预测运动矢量的尺寸减小一半,并且还可以将残差运动矢量的尺寸减小一半。换言之,当最小运动矢量分辨率是1/4像素单元时,在乘以4之后表示的预测运动矢量(mvx,mvy)可以除以2以表示预测运动矢量。例如,在最小运动矢量分辨率是1/4像素单元且预测运动矢量为(-24,-16)的情况下,1/2像素单元分辨率的运动矢量为(-12,-8),并且二像素单元分辨率的运动矢量为(-3,-2)。下面的等式3表示通过使用比特位移计算将实际运动矢量(mvx,mvy)和预测运动矢量(pmvx,pmcy)的尺寸减小一半的过程。
mvdx=(mvx)>>1-(pmvx)>>1
mvdy=(mvy)>>1-(pmcy)>>1-------------------------------(3)
解码器23可以通过将最终确定的预测运动矢量(pmvx,pmcy)和接收的残差运动矢量(pmvx,pmcy)相加来确定关于如等式4所示的当前块的最终运动矢量(mvx,mvy)。解码器23可以通过使用如等式4所示的比特位移计算来放大所获取的预测运动矢量和残差运动矢量,并且可以重建当前块的运动矢量。
mvx=(pmvx)<<1+(mvdx)<<1
mvy=(pmcy)<<1+(mvdy)<<1-----------------------------(4)
如果最小运动矢量分辨率是1/2n像素单元并且相对于当前块确定2k像素单元分辨率的运动矢量,则根据本实施方式的编码器13可以通过使用下面的等式5来确定残差运动矢量。
mvdx=(mvx)>>(k+n)-(pmvx)>>(k+n)
mvdy=(mvy)>>(k+n)-(pmcy)>>(k+n)-------------------(5)
如下面的等式6所示,解码器23可以通过将最终确定的预测运动矢量和接收的残差运动矢量相加来确定当前块的最终运动矢量。
mvx=(pmvx)<<(k+n)+(mvdx)<<(k+n)
mvy=(pmcy)<<(k+n)+(mvdy)<<(k+n)------------------(6)
当残差运动矢量的尺寸减小时,表示残差运动矢量的比特数也减少,因此可以提高编码效率。
如上参考图3a和图3b所述,在2k像素单元的运动矢量中k小于0,参考图片执行内插从而生成非整数位置处的像素。相反,在k大于0的运动矢量的情况下,在参考图片中仅搜索2k位置处的像素,而不是所有的像素。因此,如果当前块的运动矢量分辨率等于或大于一像素单元,则解码器23可以根据待解码的当前块中的运动矢量的分辨率来省略参考图片上的内插。
图5a是根据实施方式的编码单元和预测单元的图。
在当前块是配置图像的当前编码单元,为编码单元确定针对帧间预测的相同的运动矢量分辨率,并且在当前编码单元内存在以高级运动矢量预测(amvp)模式预测的一个或多个预测单元的情况下,编码器13可以仅编码一次表示以amvp模式预测的预测单元的运动矢量分辨率的信息以作为表示当前块的运动矢量分辨率的信息,并且可以将编码信息发送到运动矢量解码设备20。获取器21可以仅从比特流获取一次表示以amvp模式预测的预测单元的运动矢量分辨率的信息以作为表示当前块的运动矢量分辨率的信息。
图5b是根据实施方式的用于传输已经被自适应地确定的运动矢量分辨率的预测单元句构的一部分。图5b示出了定义根据本实施方式的运动矢量解码设备20用于获取表示当前块的运动矢量分辨率的信息的操作的句构。
例如,如图5a所示,在当前编码单元560尺寸是2nx2n且预测单元563具有与编码单元560的尺寸相等的尺寸(2nx2n)并且以amvp模式预测的情况下,编码器13相对于当前编码单元560可以编码一次表示编码单元560的运动矢量分辨率的信息,并且获取器21可以从比特流获取一次表示编码单元560的运动矢量分辨率的信息。
在当前编码单元570尺寸为2nx2n并且被分割为尺寸分别为2nxn的两个预测单元573和577时,由于预测单元573以合并模式被预测,所以编码器13不会传输表示预测单元573的运动矢量分辨率的信息;并且由于预测单元577以amvp模式被预测,所以编码器13传输一次表示预测单元577的运动矢量分辨率的信息,并且获取器21可以从比特流获取一次表示预测单元577的运动矢量分辨率的信息。换言之,编码器13将表示预测单元577的运动矢量分辨率的信息作为表示当前编码单元570的运动矢量分辨率的信息传输一次,并且解码器23可以接收表示预测单元577的运动矢量分辨率的信息作为表示当前编码单元570的运动矢量分辨率的信息。表示运动矢量分辨率的信息可以是诸如表示多个预定运动矢量之一的“cu_resolution_idx[x0][y0]”的索引类型。
参考图5b所示的句构,表示是否提取当前编码单元的运动矢量分辨率的信息的“parsedmvresolution(510)”的初始值和表示当前编码单元的运动矢量分辨率的信息的“mv_resolution_idx(512)”可以分别设置为0。首先,预测单元573由于在合并模式中被预测而不满足条件513,所以获取器21不接收表示当前预测单元的运动矢量分辨率的信息的“cu_resolution_idx[x0][y0]”。
预测单元577由于在amvp模式中被预测而满足条件513,并且由于“parsedmvresolution”的值是0而满足条件514,并且获取器21可以接收“cu_resolution_idx[x0][y0](516)”。由于接收到“cu_resolution_idx[x0][y0]”,所以“parsedmvresolution”的值可以设置为1(518)。接收到的“cu_resolution_idx[x0][y0]”可以存储在“mv_resolution_idx”(520)中。
在当前编码单元580尺寸为2nx2n并且被分割为尺寸为2nxn的两个预测单元583和587并且预测单元583和预测单元587都以amvp模式被预测的情况下,编码器13编码一次并发送表示当前编码单元580的运动矢量分辨率的信息,并且获取器21可以从比特流接收一次表示编码单元580的运动矢量分辨率的信息。
参考图5b所示的句构,预测单元583满足条件513且“parsedmvresolution”的值为0满足条件514,并且获取器21可以获取“cu_resolution_idx[x0][y0](516)”。由于解码器23获取“cu_resolution_idx[x0][y0]”,所以“parsedmvresolution”的值可以被设置为1(518),并且获取的“cu_resolution_idx[x0][y0]”可以被存储在“mv_resolution_idx”(520)。然而,由于预测单元587因为“parsedmvresolution”的值为1而不满足条件514,所以获取器21不获取“cu_resolution_idx[x0][y0](516)”。换言之,由于获取器21已经从预测单元583接收到表示当前编码单元580的运动矢量分辨率的信息,所以获取器21不需要从预测单元587获取表示运动矢量分辨率的信息(等于预测单元583的运动矢量分辨率)。
在当前编码单元590尺寸为2nx2n并被分割为尺寸为2nxn的两个预测单元593和597,并且预测单元593和预测单元597都以合并模式被预测的情况下,条件513不满足,因此,获取器21不获取表示当前编码单元590的运动矢量分辨率的信息。
在当前块是配置图像的当前编码单元,为每个预测单元确定用于帧间预测的相同的运动矢量分辨率,并且在当前编码单元中存在一个或多个以amvp模式预测的预测单元时,根据另一实施方式的编码器13可以向运动矢量解码设备20发送表示当前块中的以amvp模式预测的每个预测单元的运动矢量分辨率的信息以作为表示当前块的运动矢量分辨率的信息。获取器21可以从比特流中获取表示当前块中的每个预测单元的运动矢量分辨率的信息作为表示当前块的运动矢量分辨率的信息。
图5c根据另一实施方式的用于传输已经被自适应地确定的运动矢量分辨率的预测单元句构的一部分。图5c示出了定义根据另一实施方式的运动矢量解码设备20用于获取表示当前块的运动矢量分辨率的信息的操作的句构。
图5c的句构与图5b的句构的不同之处在于:没有表示是否提取当前编码单元的运动矢量分辨率的“parsedmvresolution(510)”,并且获取器21可以获取表示当前编码单元(524)中的每个预测单元的运动矢量分辨率的信息“cu_resolution_idx[x0,y0]”。
例如,返回参考图5a,在当前编码单元580的尺寸为2nx2n并被分割为尺寸为2nxn的两个预测单元583和587,预测单元583和预测单元587都以amvp模式被预测,并且预测单元583的运动矢量分辨率为1/4像素单元且预测单元587的运动矢量分辨率为二像素单元的情况下,获取器21可以获取表示一个编码单元580的两个运动矢量分辨率的信息(例如,预测单元583的运动矢量分辨率1/2和预测单元587的运动矢量分辨率1/4)(524)。
在不考虑预测单元的预测模式而适应当前预测单元确定运动矢量分辨率的情况下,根据另一实施方式的编码器13编码并发送表示每个预测单元的运动矢量分辨率的信息而不考虑预测模式,并且获取器21可以从比特流获取表示每个预测单元的运动矢量分辨率的信息,而不考虑预测模式。
图5d是根据另一实施方式的用于传输已经被自适应地确定的运动矢量分辨率的预测单元句构的一部分。图5d示出了定义根据另一实施方式的运动矢量解码设备20用于获取表示当前块的运动矢量分辨率的信息的操作的句构。
参考图5b至图5c描述的句构是在假设自适应地确定运动矢量分辨率的方法仅适用于预测模式是amvp模式的情况,但图5d示出了在假设自适应地确定运动矢量分辨率的方法在不考虑预测模式的情况下被应用的句构的示例。参考图5d的句构,获取器21可以接收每个预测单元的“cu_resolution_idx[x0][y0]”,而不考虑预测单元的预测模式(534)。
表示上面参考图5b至图5d描述的运动矢量分辨率的索引“cu_resolution_idx[x0][y0]”可以被编码为一元的或固定的长度以被发送。另外,当仅使用两个运动矢量分辨率时,“cu_resolution_idx[x0][y0]”可以是标记形式的数据。
运动矢量编码设备10可以自适应地配置在截片或块单元中编码时使用的多个预定运动矢量分辨率。此外,运动矢量解码设备20可以自适应地配置在截片或块单元中解码时使用的多个预定运动矢量分辨率。在截片或块单元中自适应地配置的多个预定运动矢量分辨率可以被称为候选运动矢量分辨率组。换言之,运动矢量编码设备10和运动矢量解码设备20可以基于与已经被编码或解码的周边块有关的信息来改变当前块的候选运动矢量组的种类和数量。
例如,在最小运动矢量分辨率为1/4像素单元的情况下,运动矢量编码设备10或运动矢量解码设备20可以使用1/4像素单元、1/2像素单元、一像素单元和二像素单元的分辨率作为相对于所有图像固定的候选运动矢量分辨率组。代替使用相对于所有图像固定的候选运动矢量分辨率组,运动矢量编码设备10或运动矢量解码设备20可以在已经被编码的周边块具有小运动矢量分辨率的情况下使用1/8像素单元、1/4像素单元和1/2像素单元的分辨率作为当前块的候选运动矢量分辨率组,并且可以在已经被编码的周边块具有大运动矢量分辨率的情况下使用1/2像素单元、一像素单元和二像素单元的分辨率作为当前块的候选运动矢量分辨率组。运动矢量编码设备10或运动矢量解码设备20可以基于运动矢量的尺寸和其它信息来改变截片或块单元中的候选运动矢量分辨率组的种类和数量。
构成候选运动矢量分辨率组的分辨率的种类和数量可以由运动矢量编码设备10和运动矢量解码设备20连续设置和使用,或者可以基于与周边块有关的信息或其它信息以同样的方式解释。或者,与在运动矢量编码设备10中使用的候选运动矢量分辨率组有关的信息可以被编码为比特流,并且被清楚地发送到运动矢量解码设备20。
图6a是根据实施方式的通过使用多个分辨率来生成候选合并列表的图。
运动矢量编码设备10可以使用合并模式,其中基于空间/时间周边块的运动信息来设置当前块的运动信息,从而减少与针对每个预测单元发送的运动信息相关的数据量。在编码设备和解码设备中生成用于预测的运动信息的相同的候选合并列表之后,运动矢量编码设备10将列表中的候选选择信息发送到解码设备,从而有效地减少与运动信息有关的数据量。
如果当前块具有在合并模式中预测的预测单元,则运动矢量解码设备20以与运动矢量编码设备10相同的方式生成候选合并列表,并从比特流获取列表中的候选选择信息以对当前块的运动矢量进行解码。
候选合并列表可以包括基于空间周边块的运动信息的空间候选和基于时间周边块的运动信息的时间候选。运动矢量编码设备10和运动矢量解码设备20可以根据预定顺序允许多个预定运动矢量分辨率的空间候选和时间候选被包括在候选合并列表中。
参考图3a至图4b的上述确定运动矢量分辨率的方法可以不限于在amvp模式中预测当前块的预测单元的情况,也可以应用于使用直接使用候选预测运动矢量中的一个候选预测运动矢量作为最终运动矢量而不发送残差运动矢量的预测模式(例如,合并模式)的情况。
换言之,运动矢量编码设备10和运动矢量解码设备20可以将候选预测运动矢量调整为适合于多个预定运动矢量分辨率,并且可以将调整的候选预测运动矢量确定为当前块的运动矢量。换言之,包括在候选合并列表中的候选块的运动矢量可以包括通过根据多个预定运动矢量分辨率对最小运动矢量分辨率的运动矢量进行缩小而获取的运动矢量。稍后将参考图7a和图7b描述缩小方法。
例如,假设最小运动矢量分辨率是1/4像素单元,多个预定运动矢量分辨率是1/4像素单元、1/2像素单元、一像素单元和二像素单元,并且候选合并列表包括a1、b1、b0、a0、b2和共位块。运动矢量解码设备20的获取器21以1/4像素单元分辨率配置候选预测运动矢量,并将1/4像素单元分辨率的预测运动矢量调整为1/2像素单元、一像素单元和二像素单元分辨率以根据分辨率的顺序顺序地获取多个分辨率的候选合并列表。
图6b是根据另一实施方式的通过使用多个分辨率来生成候选合并列表的图。
如图6b所示,运动矢量编码设备10和运动矢量解码设备20以1/4像素单元分辨率配置候选预测运动矢量,并且将1/4像素单元分辨率中的每个候选预测运动矢量调整为1/2像素单元分辨率、一像素单元分辨率和二像素单元分辨率,以根据候选预测运动矢量的顺序顺序地获取多个分辨率的候选合并列表。
在当前块包括以合并模式预测的预测单元时,运动矢量解码设备20可以基于由获取器21从比特流获取的多个分辨率的候选合并列表和与候选合并索引有关的信息来确定当前块的运动矢量。
图7a示出了由具有不同分辨率的两个运动矢量指向的像素。
为了将高分辨率的运动矢量调整为相应的低分辨率的运动矢量,运动矢量编码设备10可以调整运动矢量以指向周边像素,而不是由高分辨率的运动矢量指向的像素。选择一个周边像素被称为凑整。
例如,为了基于坐标(0,0)来调整指向坐标(19,27)的1/4像素单元分辨率的运动矢量,1/4像素单元分辨率的运动矢量(19,27)除以整数4,并且在分割过程中发生凑整。为了便于描述,将假设每个分辨率的运动矢量从坐标(0,0)开始,并且表示坐标(x,y)(x和y是整数)。
参考图7a,最小运动矢量分辨率是1/4像素单元,并且为了将1/4像素单元分辨率的运动矢量715调整为一像素单元分辨率的运动矢量,由1/4像素单元分辨率的运动矢量715指向的像素710周围的四个整数像素720、730、740和750可以是由一像素单元分辨率的相应运动矢量725、735、745和755指向的候选像素。换言之,当像素710的坐标值为(19,27)时,像素720的坐标值可以是(7,24),像素730的坐标值可以是(16,28)中,像素740的坐标值可以是(20,28),并且像素750的坐标值可以是(20,24)。
当根据本实施方式的运动矢量编码设备10可以将1/4像素单元分辨率的运动矢量710调整为一像素单元分辨率的相应运动矢量时,一像素单元分辨率的运动矢量可以指向右上整数像素740。换言之,当1/4像素单元分辨率的运动矢量从坐标(0,0)开始并且指向坐标(19,27)时,相应的一像素单元分辨率的运动矢量从坐标(0,0)开始并指向坐标(20,28),并且一像素单元分辨率中的最终运动矢量可以是(5,7)。
当将高分辨率的运动矢量调整为低分辨率的运动矢量时,根据本实施方式的运动矢量编码设备10可允许调整的低分辨率的运动矢量总是指向由高分辨率的运动矢量指向的像素的右上部分。根据另一实施方式的运动矢量编码设备10可以允许调整的低分辨率的运动矢量总是指向由高分辨率的运动矢量指向的像素的左上部分、左下部分或右下部分。
运动矢量编码设备10可以根据当前块的运动矢量分辨率从由高分辨率的运动矢量指向的像素周围的左上部分、右上部分、左下部分和右下部分处的四个像素中不同地选择由低分辨率的运动矢量指向的像素。
例如,参考图7b,可以进行调整使得1/2像素单元分辨率的运动矢量可以指向由1/4像素单元分辨率的运动矢量指向的像素1060的左上像素1080,一像素单元分辨率的运动矢量可以指向由1/4像素单元分辨率的运动矢量指向的像素的右上像素1070,并且二像素单元分辨率的运动矢量可以指向由1/4像素单元分辨率的运动矢量指向的像素的右下像素1090。
运动矢量编码设备10可以基于分辨率、1/4像素单元分辨率的候选运动矢量、周边块的信息、编码信息和任意模式中的至少一项来确定将由高分辨率的运动矢量指向的周边像素之一,而不是指向先前由高分辨率的运动矢量指向的像素。
此外,为了便于描述,在图3a至图7b中仅描述运动矢量编码设备10的操作,并且省略了运动矢量解码设备20的操作,或者仅描述运动矢量解码设备20的操作而省略了运动矢量编码设备10的操作,但是本领域普通技术人员将理解,运动矢量编码设备10和运动矢量解码设备20可以分别执行与运动矢量解码设备20和运动矢量编码设备10相对应的操作。
在下文中,将参考图8至图20描述根据实施方式的基于树形结构的编码单元和变换单元的视频编码方法及其设备以及视频解码方法及其设备。以上参考图1a至图7b描述的运动矢量编码设备10可以包括在视频编码设备800中。换言之,运动矢量编码设备10可以通过上述参考图1a至图7b描述的方法对表示用于在视频编码设备800将编码的图像上执行帧间预测的预测运动矢量的信息、表示残差运动矢量的信息、以及表示运动矢量分辨率的信息进行编码。
图8是根据本公开的实施方式的基于根据树形结构的编码单元的视频编码设备800的框图。
根据实施方式的基于根据树形结构的编码单元的、涉及视频预测的视频编码设备800包括编码单元确定器820和输出单元830。在下文中,为便于描述,基于根据树形结构的编码单元的、涉及视频预测的视频编码设备800将简称为“视频编码设备800”。
编码单元确定器820可基于最大编码单元来分割当前图片,所述最大编码单元是具有图像的当前图片的最大尺寸的编码单元。如果当前图片大于最大编码单元,那么当前图片的图像数据可被分割成至少一个最大编码单元。根据实施方式的最大编码单元可以是具有32×32、64×64、128×128、256×256等尺寸的数据单元,其中数据单元的形状是具有2的幂次方的宽度和长度的正方形。
根据实施方式的编码单元的特征可以是最大尺寸和深度。深度表示编码单元从最大编码单元空间分割的次数,并且随着深度加深,根据深度的较深编码单元可从最大编码单元分割到最小编码单元。最大编码单元的深度是最浅深度,并且最小编码单元的深度是最深深度。由于对应于每个深度的编码单元的尺寸随着最大编码单元的深度加深而减小,因此,对应于较浅深度的编码单元可包括对应于较深深度的多个编码单元。
如上文所述,当前图片的图像数据根据编码单元的最大尺寸分割成最大编码单元,并且最大编码单元中的每个最大编码单元可包括根据深度分割的较深编码单元。由于根据实施方式的最大编码单元根据深度进行分割,因此,最大编码单元中包括的空间域的图像数据可根据深度进行分层分类。
限制最大编码单元的高度和宽度进行分层分割的总次数的编码单元的最大深度和最大尺寸可以预先确定。
编码单元确定器820对通过根据深度分割最大编码单元的区域而获取的至少一个分割区域进行编码,并且根据至少一个分割区域确定输出最终编码的图像数据的深度。换言之,通过根据当前图片的最大编码单元对根据深度的较深编码单元中的图像数据进行编码并且选择具有最小编码误差的深度,编码单元确定器120确定最终深度。所确定的最终深度和根据最大编码单元的图像数据输出到输出单元830。
最大编码单元中的图像数据基于与等于或小于最大深度的至少一个深度对应的较深编码单元进行编码,并且对图像数据进行编码的结果基于较深编码单元中的每个较深编码单元进行比较。在比较较深编码单元的编码误差之后,可选择具有最小编码误差的深度。针对每个最大编码单元,可选择至少一个最终深度。
随着编码单元根据深度进行分层分割,并且随着编码单元的数量增加,最大编码单元的尺寸被分割。此外,即使编码单元对应于一个最大编码单元中的相同深度,也要通过分别测量每个编码单元的图像数据的编码误差来确定是否将对应于相同深度的编码单元中的每个编码单元分割到较深深度。因此,即使在图像数据被包括在一个最大编码单元中时,根据深度的编码误差也可根据一个最大编码单元中的区域而不同,因此,最终深度可根据图像数据中的区域而不同。因此,在一个最大编码单元中可确定一个或多个最大深度,并且最大编码单元的图像数据可根据至少一个最终深度的编码单元划分。
因此,根据实施方式的编码单元确定器820可确定最大编码单元中包括的具有树形结构的编码单元。根据实施方式的“具有树形结构的编码单元”包括在最大编码单元包括的所有较深编码之中的、与确定为最终深度的深度对应的编码单元。最终深度的编码单元可根据最大编码单元的相同区域中的深度来分层确定,并且可在不同区域中独立确定。类似地,当前区域中的最终深度可独立于另一区域中的最终深度进行确定。
根据实施方式的最大深度是与从最大编码单元到最小编码单元的分割次数相关的索引。根据实施方式的第一最大深度可表示从最大编码单元到最小编码单元的总分割次数。根据实施方式的第二最大深度可表示从最大编码单元到最小编码单元的深度等级的总数。例如,当最大编码单元的深度为0时,最大编码单元被分割一次的编码单元的深度可设置为1,并且最大编码单元被分割两次的编码单元的深度可设置为2。这里,如果最小编码单元是最大编码单元被分割四次的编码单元,那么存在深度0、1、2、3和4的深度等级,因此,第一最大深度可设置为4,并且第二最大深度可设置为5。
预测编码和变换可根据最大编码单元来执行。预测编码和变换也根据最大编码单元基于根据等于或小于最大深度的深度的较深编码单元来执行。
由于每当最大编码单元根据深度分割时较深编码单元的数量都增加,因此,在随着深度加深而生成的所有较深编码单元上执行包括预测编码和变换在内的编码。为便于描述,现在将基于当前深度的编码单元在最大编码单元中描述预测编码和变换。
根据实施方式的视频编码设备800可不同地选择用于对图像数据进行编码的数据单元的尺寸或形状。为了对图像数据进行编码,执行诸如预测编码、变换和熵编码的操作,并且同时,可将相同的数据单元用于所有操作或者将不同的数据单元用于每个操作。
例如,视频编码设备800不仅可选择用于对图像数据进行编码的编码单元,而且可选择不同于编码单元的数据单元,从而在编码单元中的图像数据上执行预测编码。
根据实施方式,为了在最大编码单元中执行预测编码,可基于与最终深度对应的编码单元(即,基于不再分割成对应于较深深度的编码单元的编码单元)执行预测编码。在下文中,不再进行分割并且成为用于预测编码的基础单元的编码单元现在将被称为“预测单元”。通过分割预测单元而获取的分区可包括预测单元或通过分割预测单元的高度和宽度中的至少一个而获取的数据单元。分区是编码单元的预测单元被分割的数据单元,并且预测单元可以是与编码单元具有相同尺寸的分区。
例如,当2n×2n(其中n是正整数)的编码单元不再分割并且成为2n×2n的预测单元时,分区的尺寸可以是2n×2n、2n×n、n×2n或n×n。根据实施方式的分区模式的示例可选择性地包括通过对称地分割预测单元的高度或宽度而获取的对称分区、通过不对称地分割预测单元的高度或宽度(诸如1:n或n:1)而获取的分区、通过几何分割预测单元而获取的分区或具有任意形状的分区。
预测单元的预测模式可以是帧内模式(intramode)、帧间模式(intermode)和跳跃模式(skipmode)中的至少一项。例如,帧内模式和帧间模式可在2n×2n、2n×n、n×2n或n×n的分区上执行。此外,跳跃模式可以只在2n×2n的分区上执行。编码可在编码单元中的一个预测单元上独立执行,使得可选择具有最小编码误差的预测模式。
根据实施方式的视频编码设备800也可不仅基于用于对图像数据进行编码的编码单元而且基于不同于编码单元的数据单元而在编码单元中的图像数据上执行变换。为了在编码单元中执行变换,可基于具有小于或等于编码单元的尺寸的变换单元来执行变换。例如,变换单元可包括用于帧内模式的数据单元和用于帧间模式的变换单元。
根据实施方式,编码单元中的变换单元可按与编码单元根据树形结构进行分割的类似方式递归地分割成更小尺寸的区域。因此,编码单元中的残差数据可根据具有树形结构的变换单元依据变换深度进行分割。
根据实施方式,表明通过分割编码单元的高度和宽度来达到变换单元的分割次数的变换深度也可设置在变换单元中。例如,在2n×2n的当前编码单元中,当变换单元的尺寸是2n×2n时变换深度可为0,当变换单元的尺寸是n×n时变换深度可为1,以及当变换单元的尺寸是n/2×n/2时变换深度可为2。换言之,具有树形结构的变换单元可根据变换深度进行设置。
根据深度的分割信息不仅需要与深度有关的信息,而且需要与预测和变换相关的信息。因此,编码单元确定器820不仅确定具有最小编码误差的深度,而且确定其中将预测单元分割成分区的分区模式、根据预测单元的预测模式以及用于变换的变换单元的尺寸。
下文将参考图9到图19详细描述根据实施方式的最大编码单元中的根据树形结构的编码单元以及确定预测单元/分区和变换单元的方法。
编码单元确定器820可通过使用基于拉格朗日乘子的率失真优化(rate-distortionoptimization)来测量根据深度的较深编码单元的编码误差。
输出单元830以比特流的形式输出基于由编码单元确定器820确定的至少一个深度进行编码的最大编码单元的图像数据以及根据深度的信息。
通过对图像的残差数据进行编码可获取编码的图像数据。
根据深度的分割信息可包括深度信息、与预测单元有关的分区模式信息、预测模式信息以及变换单元分割信息。
最终深度信息可通过使用根据深度的分割信息进行限定,从而表明是否在较深深度而非当前深度的编码单元上执行编码。如果当前编码单元的当前深度是深度,那么通过使用当前深度的编码单元对当前编码单元进行编码,因此,当前深度的分割信息可限定为不将当前编码单元分割到较深深度。反之,如果当前编码单元的当前深度不是该深度,那么必须在较深深度的编码单元上执行编码,因此,当前深度的分割信息可限定为将当前编码单元分割为较深深度的编码单元。
如果当前深度不是该深度,那么在分割成较深深度的编码单元的编码单元上执行编码。由于较深深度的至少一个编码单元存在于当前深度的一个编码单元中,因此,可在较深深度的每个编码单元上重复执行编码,从而可在具有相同深度的编码单元上递归地执行编码。
由于针对一个最大编码单元确定具有树形结构的编码单元并且必须针对深度的编码单元确定至少一项分割信息,因此,可针对一个最大编码单元确定至少一项分割信息。此外,最大编码单元的数据的深度可根据位置而变化,这是因为数据根据深度进行分层分割,因此,可针对数据来设置深度和分割信息。
因此,根据本实施方式的输出单元830可将与对应深度和编码模式有关的编码信息分配到最大编码单元中包括的编码单元、预测单元和最小单元中的至少一项。
根据实施方式的最小单元是通过将构成最深深度的最小编码单元分割成4份而获取的正方形数据单元。或者,根据实施方式的最小单元可以是可被包括在最大编码单元所包括的编码单元、预测单元、分区单元和变换单元的全部中的最大正方形数据单元。
例如,由输出单元830输出的编码信息可分类成根据较深编码单元的编码信息和根据预测单元的编码信息。根据较深编码单元的编码信息可包括预测模式信息和分区尺寸信息。根据预测单元的编码信息可包括与帧间模式期间的估测方向有关的信息、与帧间模式的参考图像索引有关的信息、与运动矢量有关的信息、与帧内模式的色度分量有关的信息以及与帧内模式期间的内插法有关的信息。
与根据图片、截片或gop限定的编码单元的最大尺寸有关的信息以及与最大深度的有关信息可插入到比特流的标头、序列参数集或图像参数集中。
与当前视频准许的变换单元的最大尺寸的有关信息以及与变换单元的最小尺寸有关的信息也可通过比特流的标头、序列参数集或图片参数集输出。输出单元830可对与预测相关的参考信息、预测信息和截片类型信息进行编码并输出这些信息。
根据针对视频编码设备800的最简单的实施方式,较深编码单元可以是通过将较浅深度的编码单元(上一层的编码单元)的高度或宽度一分为二所得到的编码单元。换言之,在当前深度的编码单元的尺寸是2n×2n时,较深深度的编码单元的尺寸是n×n。此外,具有2n×2n尺寸的当前编码单元可最大包括四个均具有n×n尺寸的较深深度编码单元。
因此,通过基于最大编码单元的尺寸和考虑到当前图片的特征而确定的最大深度来确定每个最大编码单元的具有最佳形状和最佳尺寸的编码单元,视频编码设备800可形成具有树形结构的编码单元。此外,由于可通过使用各种预测模式和变换中的任一项在每个最大编码单元上执行编码,因此,可根据各种图像尺寸的编码单元的特征来确定最佳编码模式。
因此,如果具有高分辨率或大数据量的图像在传统宏块中编码,那么每个图片的宏块数量过度增加。因此,针对每个宏块生成的压缩信息的数量增加,因而难以传输压缩的信息并且数据压缩效率降低。然而,通过使用根据本实施方式的视频编码设备,图像压缩效率可能增加,这是因为在考虑图像的特征同时调整编码单元,同时考虑图像的尺寸而增大编码单元的最大尺寸。
图9是根据实施方式的基于根据树形结构的编码单元的视频解码设备900的框图。
以上参考图1b至图7b描述的运动矢量解码设备20可包括在视频解码设备900中。换言之,运动矢量解码设备20对表示用于在将由视频解码设备900进行解码的图像上执行帧间预测的预测运动矢量的信息、残差运动矢量以及表示来自比特流的关于编码视频的运动矢量分辨率的信息进行解析,并且可基于解析的信息来重建运动矢量。
根据本实施方式的基于树形结构的编码单元的、涉及视频预测的视频解码设备2900包括接收器910、图像数据与编码信息提取器920以及图像数据解码器930。在下文中,为便于描述,根据本实施方式的基于树形结构的编码单元的、涉及视频预测的视频解码设备900简称为“视频解码设备900”。
根据本实施方式,用于视频解码设备900的解码操作的各种术语(诸如,编码单元、深度、预测单元、变换单元和各种类型的分割信息)的定义与参考图8和视频编码设备800描述的那些定义相同。
接收器910接收并解析编码视频的比特流。图像数据与编码信息提取器920从解析的比特流中提取用于每个编码单元的编码图像数据,其中编码单元具有根据每个最大编码单元的树形结构,并且将提取的图像数据输出到图像数据解码器930。图像数据与编码信息提取器920可从与当前图片有关的标头、序列参数集或图片参数集中提取与当前图片的编码单元的最大尺寸有关的信息。
此外,图像数据与编码信息提取器920从解析的比特流中提取关于根据每个最大编码单元的具有树形结构的编码单元的最终深度和分割信息。提取的最终深度和提取的分割信息输出到图像数据解码器930。换言之,比特流中的图像数据分割成最大编码单元,使得图像数据解码器930针对每个最大编码单元将图像数据解码。
根据每个最大编码单元的深度和分割信息可针对一项或多项深度信息进行设置,并且根据深度的分割信息可包括对应编码单元的分区模式信息、预测模式信息以及变换单元的分割信息。此外,根据深度的分割信息可被提取为深度信息。
由图像数据与编码信息提取器920提取的根据每个最大编码单元的深度和分割信息是被确定当诸如视频编码设备800等编码器根据每个最大编码单元针对根据深度的每个较深编码单元重复执行编码时会生成最小编码误差的深度和分割信息。因此,视频解码设备900可通过根据生成最小编码误差的编码方法对数据进行解码来重建图像。
由于与深度和编码模式有关的编码信息可分配到对应编码单元、预测单元和最小单元之中的预定数据单元,因此,图像数据与编码信息提取器920可根据预定数据单元提取深度和分割信息。如果对应最大编码单元的深度和分割信息根据每个预定数据单元进行记录,那么可以推断,具有相同深度和分割信息的预定数据单元就是相同最大编码单元中包括的数据单元。
图像数据解码器930通过基于根据每个最大编码单元的深度和分割信息将每个最大编码单元中的图像数据解码来重建当前图片。换言之,图像数据解码器930可基于与每个最大编码单元中包括的具有树形结构的编码单元之中的每个编码单元的分区模式、预测模式和变换单元有关的读取信息对编码的图像数据进行解码。解码过程可包括预测和逆变换,所述预测包括帧内预测和运动补偿。
基于与根据深度的编码单元的预测单元的分区模式和预测模式有关的信息,图像数据解码器930可根据每个编码单元的分区类型和预测模式来执行帧内预测或运动补偿。
此外,图像数据解码器930可读取与用于每个编码单元的根据树形结构的变换单元有关的信息,从而基于每个编码单元的变换单元来执行逆变换,从而针对每个最大编码单元进行逆变换。由于逆变换,可重建编码单元的空间域的像素值。
图像数据解码器930可通过使用根据深度的分割信息来确定当前最大编码单元的深度。如果分割信息表明图像数据不再以当前深度分割,那么当前深度就是深度。因此,图像数据解码器930可通过使用与预测单元的分区模式、预测模式信息和针对与当前深度相对应的每个编码单元的变换单元的尺寸有关的信息来对当前最大编码单元的图像数据进行解码。
换言之,通过观察分配给编码单元、预测单元和最小单元之中的预定数据单元的编码信息集,可收集含有包括相同分割信息的编码信息的数据单元,并且可将收集的数据单元视作将由图像数据解码器930以相同编码模式解码的一个数据单元。因此,可通过获取与每个编码单元的编码模式有关的信息来对当前编码单元进行解码。
图10示出了根据实施方式的编码单元的概念。
编码单元的尺寸可由宽度×高度来表示,并且可以是64×64、32×32、16×16和8×8。64×64的编码单元可分割成64×64、64×32、32×64或32×32的分区,并且32×32的编码单元可分割成32×32、32×16、16×32或16×16的分区,16×16的编码单元可分割成16×16、16×8、8×16或8×8的分区,以及8×8的编码单元可分割成8×8、8×4、4×8或4×4的分区。
在视频数据1010中,分辨率是1920×1080,编码单元的最大尺寸是64,并且最大深度是2。在视频数据1020中,分辨率是1920×1080,编码单元的最大尺寸是64,并且最大深度是3。在视频数据1030中,分辨率是352×288,编码单元的最大尺寸是16,并且最大深度是1。图10所示的最大深度是指从最大编码单元到最小编码单元的总分割次数。
如果分辨率较高或数据量较大,那么编码单元的最大尺寸可较大,从而不仅增加编码效率,而且准确反映图像的特征。因此,分辨率比视频数据1030高的视频数据1010和1020的编码单元的最大尺寸可以是64。
由于视频数据1010的最大深度是2,因此,视频数据1015的编码单元1010可包括长轴尺寸为64的最大编码单元,以及长轴尺寸为32和16的编码单元,这是因为通过将最大编码单元分割两次,深度加深两个层。另一方面,由于视频数据1030的最大深度是1,因此,视频数据1030的编码单元1035可包括长轴尺寸为16的最大编码单元,以及长轴尺寸为8的编码单元,这是因为通过将最大编码单元分割一次,深度加深一层。
由于视频数据1020的最大深度是3,因此,视频数据1020的编码单元1025可包括长轴尺寸为64的最大编码单元,以及长轴尺寸为32、16和8的编码单元,这是因为通过将最大编码单元分割三次,深度加深3个层。随着深度加深,可提高关于详细信息的表达能力。
图11示出了根据实施方式的基于编码单元的视频编码器1100的框图。
根据实施方式的视频编码器1100执行视频编码设备800的图片编码器1520的操作,以对图像数据进行编码。换言之,帧内预测器1120在当前图像1105之中根据预测单元在编码单元上以帧内模式执行帧内预测,并且帧间预测器1115通过使用当前图像1105和从重建图片缓存器1110获取的参考图像根据预测单元在编码单元上以帧间模式执行帧间预测。当前图像1105可被分割成最大编码单元,随后最大编码单元可相继被编码。在这方面,可在从最大编码单元分割的树形结构的编码单元上执行编码。
通过从关于当前图像1105的编码的编码单元的数据中移除关于从帧内预测器1120或帧间预测器1115中输出的每个模式的编码单元的预测数据,生成残差数据,并且残差数据作为经量化的变换系数通过变换器1125和量化器1130根据变换单元输出。经量化的变换系数通过反量化器1145和逆变换器1150而重建成空间域中的残差数据。将空间域中的重建残差数据添加到用于从帧内预测器1120或帧间预测器1115中输出的每个模式的编码单元的预测数据,从而重建成用于当前图像1105的编码单元的空间域中的数据。空间域中的重建数据通过去块化器1155和sao执行器1160生成为重建图像。重建图像存储在重建图片缓存器1110中。存储在重建图片缓存器1110中的重建图像可用作另一图像的帧间预测的参考图像。通过变换器1125和量化器1130量化的变换系数可通过熵编码器1135而输出为比特流1140。
为了将图像编码器1100应用于视频编码设备800,图像编码器1100的全部元件(即,帧间预测器1115、帧内预测器1120、变换器1125、量化器1130、熵编码器1135、反量化器1145、逆变换器1150、去块化单元1155和sao执行器1160)基于根据每个最大编码单元的具有树形结构的编码单元之中的每个编码单元来执行操作。
具体而言,帧内预测器1120和帧间预测器1115可考虑当前最大编码单元的最大尺寸和最大深度确定具有树形结构的编码单元之中的每个编码单元的分区模式和预测模式,并且变换器1125可确定是否分割具有树形结构的编码单元之中的每个编码单元中的具有四叉树形结构的变换单元。
图12示出了根据实施方式的基于编码单元的视频解码器1200的框图。
熵解码器1215对来自比特流1205的待解码的编码图像数据和解码所需的编码信息进行解析。编码图像数据是经量化的变换系数,并且反量化器1220和逆变换器1225从经量化的变换系数中重建残差数据。
帧内预测器1240根据每个预测单元以帧内模式在编码单元上执行帧内预测。帧间预测器1235通过使用从重建图片缓存器1230获取的参考图像而为每个预测单元在当前图像中以帧内模式在编码单元上执行帧间预测。
对关于通过帧内预测器1240或帧间预测器1235的每个模式的编码单元的预测数据和残差数据求和,并且因此可重建关于当前图像1105的编码单元的空间域中的数据,并且可通过去块化单元1245和sao执行器1250将空间域中的重建数据输出为重建图像1260。可将存储在重建图片缓存器1230的重建图像输出为参考图像。
为了对视频解码设备900的图片解码器930中的图像数据进行解码,可执行根据实施方式的图像解码器1200的熵解码器1215之后的操作。
为了将图像解码器1200应用于根据实施方式的视频解码设备900,图像解码器1200的全部元件(即,熵解码器1215、反量化器1220、逆变换器1225、帧内预测器1240、帧间预测器1235、去块化单元1245和sao执行器1250)可针对每个最大编码单元基于具有树形结构的编码单元来执行操作。
具体而言,帧内预测器1240和帧间预测器1235可针对具有树形结构的编码单元中的每个编码单元来确定分区模式和预测模式,并且逆变换器1225可确定是否根据针对每个编码单元的四叉树来分割变换单元。
图13示出了根据实施方式的根据深度的较深编码单元和分区。
视频编码设备800和视频解码设备900使用分层编码单元从而考虑图像的特征。编码单元的最大高度、最大宽度和最大深度可根据图像的特征而自适应地确定,或者可根据用户需要而不同地设置。根据深度的较深编码单元的尺寸可根据编码单元的预定最大尺寸进行确定。
在根据实施方式的编码单元的分层结构1300中,编码单元的最大高度和最大宽度均是64,并且最大深度是3。在这种情况下,最大深度是指编码单元从最大编码单元分割到最小编码单元的总次数。由于深度沿着编码单元的分层结构1300的竖直轴加深,因此,较深编码单元的高度和宽度均被分割。此外,沿着编码单元的分层结构1300的水平轴示出作为每个较深编码单元的预测编码的基础的预测单元和分区。
换言之,编码单元1310是编码单元的分层结构1300中的最大编码单元,其中深度为0并且尺寸(即,高度乘宽度)为64×64。深度沿着竖直轴加深,而且编码单元1320的尺寸为32×32且深度为1,编码单元1330的尺寸为16×16且深度为2,以及编码单元1340的尺寸为8×8且深度为3。尺寸为8×8且深度为3的编码单元1340是最小编码单元。
编码单元的预测单元和分区根据每个深度沿着水平轴布置。换言之,如果尺寸为64×64且深度为0的编码单元1310是预测单元,那么预测单元可分割成尺寸为64×64的编码单元1310中包括的分区,即,尺寸为64×64的分区1310、尺寸为64×32的分区1312、尺寸为32×64的分区1314,或者尺寸为32×32的分区1316。
同样,尺寸为32×32且深度为1的编码单元1320的预测单元可分割成尺寸为32×32的编码单元1320中包括的分区,即,尺寸为32×32的分区1320、尺寸为32×16的分区1322、尺寸为16×32的分区1324以及尺寸为16×16的分区1326。
同样,尺寸为16×16且深度为2的编码单元1330的预测单元可分割成尺寸为16×16的编码单元1330中包括的分区,即,编码单元1330中包括的尺寸为16×16的分区1330、尺寸为16×8的分区1332、尺寸为8×16的分区1334以及尺寸为8×8的分区1336。
同样,尺寸为8×8且深度为3的编码单元1340的预测单元可分割成尺寸为8×8的编码单元1340中包括的分区,即,编码单元1340中包括的尺寸为8×8的分区1340、尺寸为8×4的分区1342、尺寸为4×8的分区1344以及尺寸为4×4的分区1346。
视频编码设备800的编码单元确定器820必须在最大编码单元1310中包括的每个深度的编码单元上执行编码从而确定最大编码单元1310的深度。
包括相同范围和相同尺寸的数据的、根据深度的较深编码单元的数量随着深度加深而增加。例如,需要四个对应于深度2的编码单元来覆盖一个对应于深度1的编码单元中包括的数据。因此,为了将根据深度的相同数据的编码结果进行比较,对应于深度1的编码单元和对应于深度2的四个编码单元均被编码。
为了根据每个深度执行编码,可通过沿着编码单元的分层结构1300的水平轴、根据深度在编码单元中的每个预测单元上执行编码,选择相应深度的代表性编码误差的最小编码误差。或者,随着深度沿着编码单元的分层结构1300的竖直轴加深,可通过针对每个深度执行编码,根据深度来比较代表性编码误差而搜索出最小编码误差。最大编码单元1310中生成最小编码误差的深度和分区可被选作最大编码单元1310的深度和分区模式。
图14示出了根据实施方式的编码单元与变换单元之间的关系。
视频编码设备800或视频解码设备900根据每个最大编码单元的、尺寸等于或小于最大编码单元的编码单元对图像进行编码或解码。在编码期间用于变换的变换单元的尺寸可基于不大于对应编码单元的数据单元进行选择。
例如,在视频编码设备800或视频解码设备900中,当编码单元1410的尺寸是64×64时,那么可通过使用尺寸为32×32的变换单元1420来执行变换。
此外,可通过在尺寸为32×32、16×16、8×8和4×4(都小于64×64)的变换单元中的每个变换单元上执行变换,从而对尺寸为64×64的编码单元1410的数据进行编码,并且随后可选择关于原始图像具有最小编码误差的变换单元。
图15示出根据实施方式的多项编码信息。
视频编码设备800的输出单元830可针对与深度对应的每个编码单元来编码并传输分区模式信息1500、预测模式信息1510和变换单元尺寸信息1520,以作为分割信息。
分区模式信息1500表明与通过分割当前编码单元的预测单元而获取的分区的形状的有关信息,其中分区是用于对当前编码单元进行预测编码的数据单元。例如,尺寸为2n×2n的当前编码单元cu_0可分割成下列分区中的任一个:尺寸为2n×2n的分区1502、尺寸为2n×n的分区1504、尺寸为n×2n的分区1506以及尺寸为n×n的分区1508。这里,与当前编码单元有关的分区模式信息1500设置成表示下列中的一个:尺寸为2n×n的分区1504、尺寸为n×2n的分区1506以及尺寸为n×n的分区1508。
预测模式信息1510表明每个分区的预测模式。例如,预测模式信息1510可表明在由分区模式信息1500表明的分区上执行的预测编码的模式,即,帧内模式1512、帧间模式1514或跳跃模式1516。
变换单元尺寸信息1520表明在当前编码单元上执行变换时将依据的变换单元。例如,所述变换单元可以是第一帧内变换单元尺寸1522、第二帧内变换单元尺寸1524、第一帧间变换单元尺寸1526或者第二帧间变换单元尺寸1528。
根据实施方式的视频解码设备900的图像数据与编码信息提取器1610可提取并使用分区模式信息1500、预测模式信息1510和变换单元尺寸信息1520,以根据每个较深编码单元进行解码。
图16示出了根据实施方式的根据深度的较深编码单元。
分割信息可用来表明深度的变化。分割信息表明当前深度的编码单元是否分割成较深深度的编码单元。
用于对深度为0且尺寸为2n_0×2n_0的编码单元1600进行预测编码的预测单元1610可包括下列分区类型的分区:尺寸为2n_0×2n_0的分区模式1612、尺寸为2n_0×n_0的分区模式1614、尺寸为n_0×2n_0的分区模式1616和尺寸为n_0×n_0的分区模式1618。只示出通过对称地分割预测单元而获取的分区模式1612、1614、1616和1618,但如上所述,分区模式不限于此,并且可包括不对称分区、具有预定形状的分区、具有几何形状的分区等。
根据每个分区模式,在尺寸为2n_0×2n_0的一个分区、尺寸为2n_0×n_0的两个分区、尺寸为n_0×2n_0的两个分区和尺寸为n_0×n_0的四个分区上必须重复执行预测编码。可在尺寸为2n_0×2n_0、n_0×2n_0、2n_0×n_0和n_0×n_0的分区上执行帧内模式和帧间模式的预测编码。只在尺寸为2n_0×2n_0的分区上执行跳跃模式的预测编码。
如果尺寸为2n_0×2n_0、2n_0×n_0和n_0×2n_0的分区模式1612、1614和1616中的一个分区模式的编码误差是最小误差,那么预测单元1610可不分割成更深深度。
如果尺寸为n_0×n_0的分区模式1618中的编码误差是最小误差,那么深度从0变成1并执行分割(操作1620),并且在深度为2且尺寸为n_0×n_0的分区模式的编码单元1630上重复执行编码,以搜索最小编码误差。
用于对深度为1且尺寸为2n_1×2n_1(=n_0×n_0)的编码单元1630进行预测编码的预测单元1640可包括:尺寸为2n_1×2n_1的分区模式1642、尺寸为2n_1×n_1的分区模式1644、尺寸为n_1×2n_1的分区模式1646和尺寸为n_1×n_1的分区模式1648。
如果尺寸为n_1×n_1的分区模式1648的编码误差是最小误差,那么深度从1变成2并执行分割(操作1650),并且可在深度为2且尺寸为n_2×n_2的编码单元1660上重复执行编码,以搜索最小编码误差。
当最大深度为d时,根据深度的较深编码单元可设置到深度对应于d-1时,并且分割信息可设置到深度对应于d-2时。换言之,当在对应于深度d-2的编码单元进行分割之后执行编码直到深度为d-1时(在操作1670中),用于对深度为d-1且尺寸为2n_(d-1)×2n_(d-1)的编码单元1680进行预测编码的预测单元1690可包括下列分区模式的分区:尺寸为2n_(d-1)×2n_(d-1)的分区模式1692、尺寸为2n_(d-1)×n_(d-1)的分区模式1694、尺寸为n_(d-1)×2n_(d-1)的分区模式1696和尺寸为n_(d-1)×n_(d-1)的分区模式1698。
可在分区模式之中的尺寸为2n_(d-1)×2n_(d-1)的一个分区、尺寸为2n_(d-1)×n_(d-1)的两个分区、尺寸为n_(d-1)×2n_(d-1)的两个分区、尺寸为n_(d-1)×n_(d-1)的四个分区上重复地执行预测编码,以搜索具有最小编码误差的分区模式。
即使在尺寸为n_(d-1)×n_(d-1)的分区类型1698具有最小编码误差时,由于最大深度为d,因此,深度为d-1的编码单元cu_(d-1)不再分割到更深深度,并且构成当前最大编码单元1600的编码单元的深度被确定为d-1,而且当前最大编码单元1600的分区模式可被确定为n_(d-1)×n_(d-1)。此外,由于最大深度为d,因此,不设置针对与深度d-1对应的编码单元1652的分割信息。
数据单元1699可以是当前最大编码单元的“最小单元”。根据本实施方式的最小单元可以是通过将具有最深深度的最小编码单元分割成4个而获取的正方形数据单元。通过重复执行编码,根据本实施方式的视频编码设备800可通过比较根据编码单元1600的深度的编码误差来选择具有最小编码误差的深度从而确定深度,并且可将对应分区类型和预测模式设置为深度的编码模式。
因此,在所有的深度0、1、……、d-1、d中比较根据深度的最小编码误差,并且可将具有最小编码误差的深度确定为深度。深度、预测单元的分区模式和预测模式可作为分割信息而被编码和传输。此外,由于编码单元必须从深度0分割到深度,因此,只有深度的分割信息被设置为“0”,而除该深度之外的深度的分割信息被设置为“1”。
根据本实施方式的视频解码设备900的图像数据与编码信息提取器920可提取并使用与编码单元1600有关的深度和预测单元信息,以对编码单元1612进行解码。根据本实施方式的视频解码设备900可通过使用根据深度的分割信息而将分割信息为“0”的深度确定为深度,并且可将与对应深度有关的分割信息用于解码。
图17、图18和图19示出了根据实施方式的编码单元、预测单元与变换单元之间的关系。
编码单元1710是最大编码单元中的由视频编码设备800确定的、根据深度的较深编码单元。预测单元1760是根据深度的编码单元1710中的每个的预测单元的分区,以及变换单元1770是根据深度的编码单元中的每个编码单元的变换单元。
当较深编码单元1710中的最大编码单元的深度为0时,编码单元1712和1754的深度为1,编码单元1714、1716、1718、1728、1750和1752的深度为2,编码单元1720、1722、1724、1726、1730、1732和1748的深度为3,以及编码单元1740、1742、1744和1746的深度为4。
通过分割编码单元获取预测单元1760中的一些分区1714、1716、1722、1732、1748、1750、1752和1754。换言之,分区1714、1722、1750和1754是具有尺寸2n×n的分区模式,分区1716、1748和1752是具有尺寸n×2n的分区模式,以及分区1732是具有尺寸n×n的分区模式。较深编码单元1710的预测单元和分区小于或等于每个编码单元。
在小于编码单元1752的数据单元中,对变换单元1770中的编码单元1752的图像数据执行变换或逆变换。此外,变换单元1770中的编码单元1714、1716、1722、1732、1748、1750、1752和1754是在尺寸和形状方面不同于预测单元1760中的数据单元的数据单元。换言之,根据实施方式的视频编码设备800和视频解码设备900可在相同编码单元的单个数据单元上执行帧内预测/运动估算/运动补偿/以及变换/逆变换。
因此,对最大编码单元的每个区域中具有分层结构的编码单元中的每个编码单元递归地执行编码,以确定最佳编码单元,因此,可获取具有递归树形结构的编码单元。编码信息可包括与编码单元有关的分割信息、分区模式信息、预测模式信息和变换单元尺寸信息。以下表1示出可由根据实施方式的视频编码设备800和视频解码设备800设置的编码信息的示例。
表1
根据本实施方式的视频编码设备800的输出单元830可输出与具有树形结构的编码单元有关的编码信息,并且根据本实施方式的视频解码设备900的图像数据与编码信息提取器920可从接收的比特流中提取与具有树形结构的编码单元有关的编码信息。
分割信息表明当前编码单元是否分割成较深深度的编码单元。如果当前深度d的分割信息为0,那么当前编码单元不再分割到较深深度所处的深度是深度,因此,可针对该深度来限定分区模式信息、预测模式信息和变换单元尺寸信息。如果当前编码单元根据分割信息进一步分割,那么必须在较深深度的四个分割编码单元上独立执行编码。
预测模式可以是帧内模式、帧间模式和跳跃模式中的一个。帧内模式和帧间模式可限定于所有分区模式,而跳跃模式只限定于尺寸为2n×2n的分区模式。
分区模式信息可表明通过对称地分割预测单元的高度或宽度而获取的尺寸为2n×2n、2n×n、n×2n和n×n的对称分区模式,以及通过不对称地分割预测单元的高度或宽度而获取的尺寸为2n×nu、2n×nd、nl×2n和nr×2n的不对称分区模式。可分别通过以1:3和3:1分割预测单元的高度来获取尺寸为2n×nu和2n×nd的不对称分区模式,并且可分别通过以1:3和3:1分割预测单元的宽度来获取尺寸为nl×2n和nr×2n的不对称分区模式。
变换单元的尺寸可设置为在帧内模式下有两个类型并且在帧间模式下有两个类型。换言之,如果变换单元的分割信息为0,那么变换单元的尺寸可以是2n×2n,也就是当前编码单元的尺寸。如果变换单元的分割信息为1,那么可通过分割当前编码单元来获取变换单元。此外,如果尺寸为2n×2n的当前编码单元的分区模式是对称分区模式,那么变换单元的尺寸可以是n×n,而如果当前编码单元的分区模式是不对称分区模式,那么变换单元的尺寸可以是n/2×n/2。
根据本实施方式的与具有树形结构的编码单元有关的编码信息可分配到与深度对应的编码单元、预测单元和最小单元中的至少一项。与深度对应的编码单元可包括包含相同编码信息的预测单元和最小单元中的至少一个。
因此,通过比较相邻数据单元的编码信息来确定相邻数据单元是否包括在与深度对应的相同编码单元中。此外,可通过使用数据单元的编码信息来确定与深度对应的对应编码单元,因此可推断出最大编码单元中的深度的分布。
因此,如果基于相邻数据单元的编码信息来预测当前编码单元,那么可直接参考并使用与当前编码单元相邻的较深编码单元中的数据单元的编码信息。
在另一实施方式种,如果基于相邻数据单元的编码信息来预测当前编码单元,那么可通过使用数据单元的编码信息来搜索与当前编码单元相邻的数据单元,并且可以参考所搜索的相邻编码单元来预测当前编码单元。
图20示出了根据表1的编码模式信息的编码单元、预测单元与变换单元之间的关系。
最大编码单元2000包括编码单元2002、2004、2006、2012、2014、2016、以及具有深度的2018。此处,由于编码单元2018是具有深度的编码单元,因此,分割信息可设置为0。尺寸为2n×2n的编码单元2018的分区模式信息可设置为下列中的一项:包括2n×2n的分区模式2022、包括2n×n的分区模式2024、包括n×2n的分区模式2026、包括n×n的分区模式2028、包括2n×nu的分区模式2032、包括2n×nd的分区模式2034、包括nl×2n的分区模式2036以及包括nr×2n的分区模式2038。
变换单元分割信息(tu尺寸标记)是一种变换索引,并且与变换索引对应的变换单元的尺寸可根据编码单元的预测单元类型或分区模式而改变。
例如,当分区模式信息设置为下列对称分区模式中的一项:2n×2n分区模式2022、2n×n分区模式2024、n×2n分区模式2026、n×n分区模式2028时,如果变换单元分割信息为0,则设置尺寸为2n×2n的变换单元2042,而如果变换单元分割信息为1,则可设置尺寸为n×n的变换单元2044。
当分区模式信息设置为下列不对称分区模式中的一项:2n×nu分区模式2032、2n×nd分区模式2034、nl×2n分区模式2036以及nr×2n分区模式2038时,如果变换单元分割信息(tu尺寸标记)为0,则可设置尺寸为2n×2n的变换单元2052,而如果变换单元分割信息为1,则可设置尺寸为n/2×n/2的变换单元2054。
以上参考图19描述的变换单元分割信息(tu尺寸标记)是值为0或1的标记,但根据实施方式的变换单元分割信息不限于具有1比特的标记,并且在变换单元分割信息根据设置以0、1、2、3等的方式增加时,变换单元可分层地分割。变换单元分割信息可以是变换索引的一个示例。
在这种情况下,实际使用的变换单元的尺寸可通过使用根据本实施方式的变换单元分割信息以及变换单元的最大尺寸和变换单元的最小尺寸一起来表示。根据本实施方式的视频编码设备800可对最大变换单元尺寸信息、最小变换单元尺寸信息和最大变换单元分割信息进行编码。对最大变换单元尺寸信息、最小变换单元尺寸信息和最大变换单元分割信息进行编码的结果可插入到sps。根据本实施方式的视频解码设备900可通过使用最大变换单元尺寸信息、最小变换单元尺寸信息和最大变换单元分割信息来对视频进行解码。
例如,(a)如果当前编码单元的尺寸是64×64并且最大变换单元尺寸是32×32,那么(a-1)变换单元的尺寸在tu尺寸标记为0时可以是32×32,(a-2)在tu尺寸标记为1时可以是16×16,以及(a-3)在tu尺寸标记为2时可以是8×8。
作为另一示例,(b)如果当前编码单元的尺寸是32×32并且最小变换单元尺寸是32×32,那么(b-1)变换单元的尺寸在tu尺寸标记为0时可以是32×32。此处,由于变换单元的尺寸不可小于32×32,因此,tu尺寸标记无法设置成除了0之外的值。
作为另一示例,(c)如果当前编码单元的尺寸是64×64并且最大tu尺寸标记是1,那么tu尺寸标记可以是0或1。此处,tu尺寸标记无法设置成除了0或1之外的值。
因此,如果将最大tu尺寸标记定义为“maxtransformsizeindex”,将最小变换单元尺寸定义为“mintransformsize”,并且当tu尺寸标记为0时变换单元尺寸为“roottusize”,那么可在当前编码单元中确定的当前最小变换单元尺寸“currmintusize”可由等式(1)限定:
currmintusize=max(mintransformsize,roottusize/(2^maxtransformsizeindex))...(1)
与可在当前编码单元中确定的当前最小变换单元尺寸“currmintusize”相比,tu尺寸标记为0时的变换单元尺寸“roottusize”可表示可以在系统中选择的最大变换单元尺寸。“roottusize/(2^maxtransformsizeindex)”表示在tu尺寸标记为0时变换单元尺寸“roottusize”被分割与最大tu尺寸标记对应的次数时的变换单元尺寸,并且“mintransformsize”表示最小变换尺寸。因此,“roottusize/(2^maxtransformsizeindex)”和“mintransformsize”之中的较小值可以是可在当前编码单元中确定的当前最小变换单元尺寸“currmintusize”。
根据实施方式,最大变换单元尺寸roottusize可根据预测模式的类型而改变。
例如,如果当前预测模式是帧间模式,那么“roottusize”可通过使用下列等式(2)来确定。在等式(2)中,“maxtransformsize”表示最大变换单元尺寸,并且“pusize”表示当前预测单元尺寸。
roottusize=min(maxtransformsize,pusize).........(2)
换言之,如果当前预测模式是帧间模式,那么在tu尺寸标记为0时,变换单元尺寸“roottusize”可以是最大变换单元尺寸和当前预测单元尺寸之中的较小值。
如果当前分区单元的预测模式是帧内模式,那么“roottusize”可通过使用下列等式(3)来确定。在等式(3)中,“partitionsize”表示当前分区单元的尺寸。
roottusize=min(maxtransformsize,partitionsize)...........(3)
换言之,如果当前预测模式是帧内模式,那么在tu尺寸标记为0时,变换单元尺寸“roottusize”可以是最大变换单元尺寸和当前分区单元的尺寸之中的较小值。
然而,根据分区单元中的预测模式的类型而改变的当前最大变换单元尺寸“roottusize”仅仅是实施方式,并且用于确定当前最大变换单元尺寸的因素不限于此。
根据以上参考图8到图20描述的基于树形结构的编码单元的视频编码方法,在树形结构的每个编码单元中将空间域的图像数据编码,根据基于树形结构的编码单元的视频解码方法,在每个最大编码单元上执行解码,以重建空间域的图像数据,从而可重建由图片和图片序列形成的视频。重建的视频可由播放设备播放、可存储在存储介质中、或可通过网络传输。
本公开的一个或多个实施方式可编写为计算机程序,并且可在通过使用非暂时性计算机可读记录介质执行程序的通用数字计算机中实施。非暂时性计算机可读记录介质的示例包括磁存储介质(例如,rom、软盘、硬盘等)、光记录介质(例如,cd-rom或dvd)等。
为便于描述,参考图1a到图20描述的视频编码方法和/或视频编码方法将统一被称为“本公开的视频编码方法”。此外,参考图1a到图20描述的视频解码方法和/或视频解码方法将统一被称为“本公开的视频解码方法”。
另外,已参考图1a到图20描述的视频编码设备(包括视频编码设备、视频编码设备800或视频编码器1100)将被称为“本公开的视频编码设备”。此外,已参考图1a到图20描述的视频解码设备(包括视频解码设备900或视频解码器1200)将被称为“本公开的视频解码设备”。
现在将详细描述根据实施方式的存储程序的非暂时性计算机可读记录介质,诸如,盘片26000。
图21示出了根据实施方式的存储有程序的盘片26000的物理结构。盘片26000作为一种存储介质,其可以是硬盘驱动器、压缩只读存储器(cd-rom)盘、蓝光光盘或数字多功能盘(dvd)。盘片26000包括多个同心盘道tr,所述同心盘道各自在盘片26000的圆周方向上分成特定数量的扇区se。在盘片26000的特定区域中,可分配并存储执行上述量化参数确定方法、视频编码方法和视频解码方法的程序。
现在将参考图22描述使用存储介质实现的计算机系统,所述存储介质存储用于执行上述视频编码方法和视频解码方法的程序。
图22示出了用于通过使用盘片26000来记录和读取程序的盘片驱动器26800。计算机系统26700可经由盘片驱动器26800在盘片26000中存储用于执行本公开的视频编码方法和视频解码方法中的至少一项的程序。为了在计算机系统26700中运行存储在盘片26000中的程序,可从盘片26000中读取程序并且通过使用盘片驱动器26800将它传输到计算机系统26700。
执行本公开的视频编码方法和视频解码方法中的至少一项的程序可不仅存储在图21和图22所示的盘片26000中,还可存储在存储卡、rom盒式磁带或固态驱动器(ssd)中。
下文将描述应用上文所述的视频编码方法和视频解码方法的系统。
图23示出了用于提供内容分发服务的内容供应系统11000的整体结构的示意图。通信系统的服务区域分成预定尺寸的小区,并且无线基站11700、11800、11900和12000分别安装在这些小区中。
内容供应系统11000包括多个独立装置。例如,诸如计算机12100、个人数字助理(pda)12200、摄像机12300和移动电话12500的多个独立装置经由互联网服务提供商11200、通信网络11400以及无线基站11700、11800、11900和12000连接到互联网11100。
然而,内容供应系统11000不限于如图23所示,并且装置可选择性地连接到该系统。多个独立装置可直接连接到通信网络11400,而不经过无线基站11700、11800、11900和12000。
摄像机12300是能够拍摄视频图像的成像装置,例如,数字摄像机。移动电话12500可采用例如个人数字通信(pdc)、码分多址(cdma)、宽带码分多址(w-cdma)、全球移动通信系统(gsm)以及个人手持式电话系统(phs)等各种协议中的至少一个通信方法。
摄像机12300可经由无线基站11900和通信网络11400连接到流式服务器11300。流式服务器11300允许经由摄像机12300从用户接收的内容经过实时广播进行流传输。从摄像机12300接收的内容可由摄像机12300或流式服务器11300进行编码。由摄像机12300拍摄的视频数据可经由计算机12100传输到流式服务器11300。
通过使用相机12600拍摄的视频数据也可经由计算机12100传输到流式服务器11300。相机12600是能够拍摄静态图像和视频图像的成像装置,类似于数字相机。通过使用相机12600拍摄的视频数据可通过使用相机12600或计算机12100进行编码。对视频执行编码和解码的软件可存储在可由计算机12100访问的非暂时性计算机可读记录介质中,例如,cd-rom盘、软盘、硬盘驱动器、ssd或存储卡。
如果视频数据通过使用内置在移动电话12500的相机拍摄,那么视频数据可从移动电话12500中接收。
视频数据也可由安装在摄像机12300、移动电话12500或相机12600中的大规模集成电路(lsi)系统进行编码。
内容供应系统11000可对由用户使用摄像机12300、相机12600、移动电话12500或另一成像装置记录的内容数据(例如,在音乐会期间记录的内容)进行编码并将编码的内容数据传输到流式服务器11300。流式服务器11300可采用流内容类型将编码的内容数据传输到请求内容数据的其它客户端。
客户端是能够对编码的内容数据进行解码的装置,例如,计算机12100、pda12200、摄像机12300或移动电话12500。因此,内容供应系统11000允许客户端接收和播放编码的内容数据。此外,内容供应系统11000允许客户端接收编码的内容数据,并且实时解码和播放编码的内容数据,从而实现个人播放。
内容供应系统11000中包括的多个独立装置的编码操作和解码操作可与根据实施方式的视频编码设备和视频解码设备的相似。
现在将参考图24和图25详细地描述根据实施方式的内容供应系统11000中包括的移动电话12500。
图24示出根据实施方式的应用本公开的视频编码方法和视频解码方法的移动电话12500的外部结构。移动电话12500可以是智能电话,它的功能不受限制并且其大量的功能可改变或扩展。
移动电话12500包括外部天线12510,经由该外部天线12510,射频(rf)信号可与无线基站12000进行交换。移动电话12500还包括显示屏12520,所述显示屏12520用于显示由相机12530拍摄的图像或经由天线12510接收并解码的图像,例如,液晶显示器(lcd)或有机发光二极管(oled)屏。移动电话12500包括操作面板12540,所述操作面板12540包括控制按钮和触摸面板。如果显示屏12520是触摸屏,那么操作面板12540还包括显示屏12520的触摸感应面板。移动电话12500包括用于输出语音和声音的扬声器12580或另一类型的声音输出单元,以及用于输入语音和声音的麦克风12550或声音输入单元的另一类型。移动电话12500还包括相机12530,诸如,电荷耦合装置(ccd)相机,以拍摄视频或静态图像。移动电话12500可还包括:存储介质12570,该存储介质12570用于存储编码/解码的数据,例如,由相机12530拍摄、经由电子邮件接收或根据各种方式获取的视频或静态图像;以及槽12560,存储介质12570经由该槽12560装载到移动电话12500中。存储介质12570可以是闪存,例如,安全数字(sd)卡或者包括在塑料盒中的电可擦除可编程只读存储器(eeprom)。
图25示出移动电话12500的内部结构。为了系统地控制包括显示屏12520和操作面板12540的移动电话12500的部分,电源电路12700、操作输入控制器12640、图像编码器12720、相机接口12630、lcd控制器12620、图像解码器12690、多路复用器/多路分解器12680、记录/读取单元12670、调制/解调单元12660以及声音处理器12650经由同步总线12730连接到中央控制器12710。
如果用户操作电源按钮并从“关机”状态设置到“开机”状态,那么电源电路12700将电力从电池组供应到移动电话12500的所有部分,从而在操作模式下设置移动电话12500。
中央控制器12710包括中央处理单元(cpu)、只读存储器(rom)和随机存取存储器(ram)。
在移动电话12500将通信数据传输到外部时,移动电话12500由中央控制器12710控制生成数字信号。例如,声音处理器12650可生成数字声音信号,视频编码器12720可生成数字图像信号,并且消息的文本数据可经由操作面板12540和操作输入控制器12640生成。当数字信号由中央控制器12710控制传输到调制/解调单元12660时,调制/解调单元12660对数字信号的频带进行调制,并且通信电路12610在频带经调制的数字声音信号上执行数模转换(dac)和频率转换。从通信电路12610输出的传输信号可经由天线12510传输到语音通信基站或无线基站12000。
例如,当移动电话12500处于对话模式时,经由麦克风12550获取的声音信号由中央控制器12710控制被声音处理器12650转换成数字声音信号。数字声音信号可通过调制/解调单元12660和通信单元12610转换成传输信号,并且可经由天线12510传输。
当文本消息(例如,电子邮件)在数据通信模式期间传输时,文本消息的文本数据经由操作面板12540输入,并且经由操作输入控制器12640传输到中央控制器12610。由中央控制器12610控制,文本数据经由调制/解调单元12660和通信电路12610变换成传输信号,并且经由天线12510传输到无线基站12000。
为了在数据通信模式期间传输图像数据,经由相机接口12630将相机12530拍摄的图像数据提供到图像编码器12720。拍摄的图像数据可经由相机接口12630和lcd控制器12620直接显示在显示屏12520上。
图像编码器12720的结构可对应于上文所述的视频编码设备100的结构。图像编码器12720可根据本公开的视频编码方法将从相机12530接收的图像数据变换成压缩且编码的图像数据,并且随后可将编码的图像数据输出到多路复用器/多路分解器12680。在相机12530的记录操作期间,由移动电话12500的麦克风12550获取的声音信号可经由声音处理器12650变换成数字声音数据,并且数字声音数据可传输到多路复用器/多路分解器12680。
多路复用器/多路分解器12680将从图像编码器12720接收的编码图像数据与从声音处理器12650接收的声音数据多路复用。多路复用数据的结果可经由调制/解调单元12660和通信单元12610转换成传输信号,并且可随后经由天线12510传输。
当移动电话12500接收来自外部的通信数据时,在经由天线12510接收的信号上执行频率恢复和模数转换(adc),以将该信号转换成数字信号。调制/解调单元12660对数字信号的频带进行调制。根据数字信号的类型,频带经过调制的数字信号传输到视频解码器12690、声音处理器12650或lcd控制器12620。
在对话模式期间,移动电话12500将经由天线12510接收的信号放大,并且通过在放大的信号上执行频率转换和adc来获取数字声音信号。由中央控制器12710控制,接收的数字声音信号经由调制/解调单元12660和声音处理器12650转换成模拟声音信号,并且模拟声音信号经由扬声器12580输出。
当在数据通信模式期间时,接收在互联网网站访问的视频文件的数据,经由调制/解调单元12660将经由天线12510从无线基站12000接收的信号作为多路复用数据输出,并且将多路复用数据传输到多路复用器/多路分解器12680。
为了对经由天线12510接收的多路复用的数据进行解码,多路复用器/多路分解器12680将多路复用的数据多路分解成编码视频数据流和编码音频数据流。经由同步总线12730,编码视频数据流和编码音频数据流分别被提供到视频解码器12690和声音处理器12650。
图像解码器12690的结构可对应于上文所述的视频解码设备的结构。图像解码器12690可通过使用上述根据本实施方式的视频解码方法对编码的视频数据进行解码,以生成重建的视频数据并且经由lcd控制器12620将重建的视频数据提供到显示屏12520。
因此,在互联网网站访问的视频文件的数据可显示在显示屏12520上。同时,声音处理器12650可将音频数据转换成模拟声音信号,并且将模拟声音信号提供到扬声器12580。因此,在互联网网站访问的视频文件中含有的音频数据也可经由麦克风12580而播放。
移动电话12500或另一类型的通信终端可以是包括本公开的视频编码设备和视频解码设备的收发终端,可以是只包括本公开的视频编码设备的收发终端,或者可以是只包括本公开的视频解码设备的收发终端。
根据实施方式的通信系统不限于上文参考图24描述的通信系统。例如,图26示出根据实施方式的采用通信系统的数字广播系统。
根据实施方式的图26的数字广播系统可通过使用本公开的视频编码设备和视频解码设备来接收经由卫星或地面网络传输的数字广播。
更具体地,广播站12890通过使用无线电波而将视频数据流传输到通信卫星或广播卫星12900。广播卫星12900传输广播信号,并且广播信号经由家用天线12860传输到卫星广播接收器。在每个家庭中,编码的视频流可由tv接收器12810、机顶盒12870或另一装置解码并播放。
当根据本实施方式的视频解码设备实施于播放设备12830中时,播放设备12830可对记录在存储介质12820(诸如,盘片或存储卡)上的编码视频流进行解析和解码,以重建数字信号。因此,重建的视频信号可例如在显示器12840上播放。
在连接到用于卫星/地面广播的天线12860或用于接收电缆电视(tv)广播的电缆12850的机顶盒12870中,可安装本公开的视频解码设备。从机顶盒12870输出的数据也可在tv显示器12880上播放。
作为另一示例,根据本实施方式的视频解码设备可安装在tv接收器12810中,而不是机顶盒12870中。
具有适当天线12210的汽车12220可接收从卫星12200或无线基站11700传输的信号。解码的视频可在安装于汽车12920中的车载导航系统12930的显示屏上播放。
视频信号可由本公开的视频编码设备进行编码,并且可随后记录并存储到存储介质中。更具体地,图像信号可由dvd记录器存储在dvd光盘12960中,或者可由硬盘记录器12950存储在硬盘中。作为另一示例,视频信号可存储在sd卡12970中。如果硬盘记录器12950包括根据本实施方式的视频解码设备,那么记录在dvd光盘12960、sd卡12970或另一存储介质上的视频信号可在tv显示器12880上播放。
车载导航系统12930可不包括图26的相机12530、相机接口12630和视频编码器12720。例如,计算机12100和tv接收器12810可不包括图26的相机12530、相机接口12630和视频编码器12720。
图27示出了根据实施方式的使用视频编码设备和视频解码设备的云计算系统的网络结构。
云计算系统可包括云计算服务器14100、用户数据库(db)14100、多个计算资源14200以及用户终端。
响应于来自用户终端的请求,云计算系统经由数据通信网络(例如,互联网)来提供多个计算资源14200的按需外包服务。在云计算环境下,通过使用虚拟化技术将位于物理上不同位置的数据中心处的计算资源相结合,服务提供商为用户提供所需的服务。服务用户不必将计算资源(例如,应用、存储、操作系统(os)和安全软件)安装到他/她自己的终端中以进行使用,而是可在所需的时间点从通过虚拟化技术生成的虚拟空间中的服务之中选择并使用所需服务。
指定服务用户的用户终端经由包括互联网和移动远程通信网络的数据通信网络连接到云计算服务器14000。从云计算服务器14000可对用户终端提供云计算服务,具体地如视频播放服务。用户终端可以是能够连接到互联网的各种类型的电子装置,例如,台式pc14300、智能tv14400、智能电话14500、笔记本电脑14600、便携式多媒体播放器(pmp)14700、平板pc14800等。
云计算服务器14100可将分布在云网络中的多个计算资源14200进行组合,并且将组合的结果提供到用户终端。多个计算资源14200可包括各种数据服务,并且可包括从用户终端上传的数据。如上文所述,云计算服务器14100可通过根据虚拟化技术将分布在不同区域中的视频数据库进行组合来将所需的服务提供到用户终端。
与订阅云计算服务的用户有关的用户信息存储在用户数据库14100中。用户信息可包括用户的登录信息、地址、姓名和个人信用信息。用户信息可还包括视频的索引。此处,索引可包括已经播放的视频列表、正在播放的视频列表、过去播放的视频的暂停点等。
存储在用户数据库14100中的与视频有关的信息可在用户装置之间共享。例如,当响应于来自笔记本电脑14600的请求而将视频服务提供到笔记本电脑14600时,视频服务的播放历史便存储在用户数据库14100中。当从智能电话14500接收播放该视频服务的请求时,云计算服务器14000基于用户数据库14100来搜索并播放该视频服务。当智能电话14500接收来自云计算服务器14000的视频数据流时,通过对视频数据流进行解码来播放视频的过程类似于上文参考图24描述的移动电话12500的操作。
云计算服务器14000可参考存储在用户数据库14100中的所需视频服务的播放历史。例如,云计算服务器14000接收来自用户终端的播放存储在用户数据库14100中的视频的请求。如果这个视频已在播放,那么由云计算服务器14000执行的流传输这个视频的方法可根据用户终端的请求而改变,即,根据从视频的开头还是暂停点开始播放该视频。例如,如果用户终端请求从视频的开头开始播放该视频,那么云计算服务器14000将从视频的第一帧开始的视频的流数据传输到用户终端。如果用户终端请求从视频的暂停点开始播放该视频,那么云计算服务器14000将从对应于暂停点的帧开始的视频的流数据传输到用户终端。
在这种情况下,用户终端可包括如上文参考图1a到图20描述的本公开的视频解码设备。作为另一示例,用户终端可包括如上文参考图1a到图20描述的本公开的视频编码设备。或者,用户终端可包括如上文参考图1a到图20描述的本公开的视频解码设备和视频编码设备两者。
上文参考图21到图27描述了根据上文参考图1a到图20描述的实施方式的视频编码方法、视频解码方法、视频编码设备和视频解码设备的各种应用。然而,关于上文参考图1a到图20描述的根据各种实施方式的将视频编码方法和视频解码方法存储在存储介质中的方法或者在装置中实施视频编码设备和视频解码设备的方法的实施方式不限于上文参考图21到图27描述的实施方式。
所得到的方法、过程、设备、产品和/或系统是直接的、经济的、不复杂的、高度通用的和准确的。此外,可以通过使已知部件适应准备、有效和经济的制造、应用和利用来实现过程、设备、产品和系统。本公开的另一个重要方面是,它有价值地支持和服务于降低成本、简化系统和提高性能的历史趋势。因此,本发明构思的实施方式的这些和其它有价值的方面将技术水平进一步提高到至少一个新的水平。
虽然已经结合具体的最佳模式描述了本发明,但是应当理解,根据前述的描述,许多替代、修改和变化对于本领域技术人员将是显而易见的。换言之,本发明旨在包含落入所附权利要求的范围内的所有这样的替代、修改和变化。在此阐述的或在附图中示出的所有事项将以说明性和非限制性的意义来解释。所得到的方法、过程、设备、产品和/或系统是直接的、经济的、不复杂的、高度通用的和准确的。此外,可以通过使已知部件适应准备、有效和经济的制造、应用和利用来实现过程、设备、产品和系统。本公开的另一个重要方面是,它有价值地支持和服务于降低成本、简化系统和提高性能的历史趋势。因此,本发明构思的实施方式的这些和其它有价值的方面将技术水平进一步提高到至少一个新的水平。
虽然已经结合具体的最佳模式描述了本发明,但是应当理解,根据前述的描述,许多替代、修改和变化对于本领域技术人员将是显而易见的。换言之,本发明旨在包含落入所附权利要求的范围内的所有这样的替代、修改和变化。在此阐述的或在附图中示出的所有事项将以说明性和非限制性的意义来解释。