视频编码与解码方法和设备与流程

文档序号:26013439发布日期:2021-07-23 21:34阅读:147来源:国知局
视频编码与解码方法和设备与流程

本专利文档总体涉及视频处理和通信。



背景技术:

随着视频处理技术的发展,通常需要将视频或图片划分为多个区域以促进重新同步、并行处理、感兴趣区域编码和流式传输、分组传输和/或视口相关的流式传输。有必要改进现有的划分方法,以便更有效地访问图片内的感兴趣区域。



技术实现要素:

本专利文档特别地描述了用于编码数字视频或图片以生成一个或多个比特流、解码比特流以重构数字视频或图片、并提取一个或多个比特流以形成一个或多个子比特流的技术。

在一个示例方面,公开了一种用于视频或图片处理的方法。该方法包括:将图片划分为一个或多个瓦片(tile);并且基于所述一个或多个瓦片使用一个或多个配置来生成一个或多个比特流。生成所述一个或多个比特流中的每个包括:将所述一个或多个瓦片中的每个划分为一个或多个条带(slice),并且针对一个或多个条带中的每个条带执行以下操作:第一编码步骤,用于在条带头中对瓦片标识符进行编码,以及第二编码步骤,用于在条带头中对指示条带在瓦片中的位置的条带第二地址进行编码。所述瓦片标识符指示所述条带所驻留在的瓦片。所述第二地址基于指示条带在图片中的位置的条带第一地址和瓦片地址来确定。

在另一个示例方面,公开了一种用于解码视频或图片处理中的图片的方法。所述图片被划分为一个或多个瓦片,并且所述一个或多个瓦片中的每个被划分为一个或多个条带。所述方法包括:从比特流中的条带头获得瓦片标识符,从比特流中的条带头获得第二地址,基于所述瓦片标识符和所述第二地址来确定指示所述条带在图片中的位置的条带第一地址。所述瓦片标识符指示所述条带所驻留在的瓦片。所述第二地址指示条带在瓦片中的位置。

在另一个示例方面,公开了一种用于处理视频或图片的一个或多个比特流的方法。所述图片被划分为一个或多个瓦片,并且所述一个或多个瓦片中的每个被划分为一个或多个条带。所述方法包括:确定一个或多个目标瓦片标识符,其标识位于图片的目标区域中的一个或多个目标瓦片。一个或多个目标瓦片标识符被包括在一个或多个比特流中。所述方法包括:从一个或多个比特流的每个中从条带头获得瓦片标识符。所述瓦片标识符指示所述条带所驻留在的瓦片。所述方法包括:基于来自条带头的瓦片标识符等于一个或多个目标瓦片标识符之一的确定来组成子比特流。所述方法包括:确定与所述目标区域相对应的目标瓦片参数。所述目标瓦片参数包括指示所述一个或多个目标瓦片的划分方式的目标瓦片划分参数。所述目标瓦片参数还包括所述一个或多个目标瓦片标识符。所述方法包括:在所述子比特流的数据单元中编码目标瓦片参数。

在另一示例方面,公开了一种用于视频或图片处理的设备。该设备包括:编码器控制单元,其被配置为生成一个或多个配置,以及编码器,其被配置为从编码器控制单元接收一个或多个配置以生成一个或多个比特流。编码器包括:划分单元,被配置为将图片划分为一个或多个瓦片,并将所述一个或多个瓦片中的每个划分为一个或多个条带。划分单元还被配置为:针对所述一个或多个条带中的每个条带执行以下操作:确定指示所述条带所驻留在的瓦片的瓦片标识符,以及确定指示条带在瓦片中的位置的条带第二地址。所述第二地址基于指示条带在图片中的位置的条带第一地址和瓦片地址来确定。

在另一示例方面,公开了一种用于解码视频或图片处理中的图片的设备。图片被划分为一个或多个条带,并且所述一个或多个瓦片中的每个被划分为一个或多个条带。该设备被配置为实施以下方法,该方法包括:从比特流中的条带头获得瓦片标识符,从比特流中的条带头获得第二地址,基于所述瓦片标识符和所述第二地址来确定指示所述条带在图片中的位置的条带第一地址。所述瓦片标识符指示所述条带所驻留在的瓦片。所述第二地址指示条带在瓦片中的位置。

在另一示例方面,公开了一种用于处理视频或图片的一个或多个比特流的设备。所述图片被划分为一个或多个瓦片,并且所述一个或多个瓦片中的每个被划分为一个或多个条带。所述设备包括:控制单元,被配置为确定一个或多个目标瓦片标识符,所述一个或多个目标瓦片标识符标识位于图片的目标区域中的一个或多个目标瓦片。所述一个或多个目标瓦片标识符被包括在一个或多个比特流中。所述设备包括:解析单元,被配置为从一个或多个比特流的每个中从条带头获得瓦片标识符。所述瓦片标识符指示所述条带所驻留在的瓦片。所述设备包括:形成单元,被配置为:基于来自条带头的瓦片标识符等于一个或多个目标瓦片标识符之一的确定来组成子比特流;确定与所述目标区域相对应的目标瓦片参数;在子比特流的数据单元中编码所述目标瓦片参数。所述目标瓦片参数包括指示所述一个或多个目标瓦片的划分方式的目标瓦片划分参数。所述目标瓦片参数还包括所述一个或多个目标瓦片标识符。

在另一示例方面,公开了一种计算机程序存储介质。该计算机程序存储介质包括存储在其上的代码。当所述代码由处理器执行时,致使处理器执行上述方法。

这些和其他方面在本文档中进行了描述。

附图说明

图1a示出了将图片划分为符合h.265标准的多个条带和瓦片的示例。

图1b示出了将图片划分为h.265标准的多个条带和瓦片的另一个示例。

图2描述根据当前技术的一个或多个实施例对视频或图片进行编码的示例编码器。

图3示出了根据当前技术的一个或多个实施例将图片划分为瓦片和条带的示例。

图4示出了根据当前技术的一个或多个实施例将图片划分为瓦片和条带的另一个示例。

图5a示出了根据本技术的一个或多个实施例的用于在比特流中表示瓦片参数的语法结构的示例。

图5b示出了根据本技术的一个或多个实施例的用于在比特流中表示瓦片参数的语法结构的另一示例。

图5c示出了根据本技术的一个或多个实施例的用于在比特流中表示瓦片参数的语法结构的另一示例。

图5d示出了根据本技术的一个或多个实施例的用于在比特流中表示瓦片参数的语法结构的另一示例。

图5e示出了根据本技术的一个或多个实施例的用于在比特流中表示瓦片参数的语法结构的另一示例。

图5f示出了根据本技术的一个或多个实施例的用于在比特流中表示瓦片参数的语法结构的另一示例。

图5g示出了根据本技术的一个或多个实施例的用于在比特流中表示瓦片参数的语法结构的又一示例。

图6a示出了根据本技术的一个或多个实施例的用于在比特流中表示瓦片标识符和条带地址的语法结构的又一示例。

图6b示出了根据本技术的一个或多个实施例的用于在比特流中表示瓦片标识符和条带地址的语法结构的又一示例。

图7描述了根据本技术的一个或多个实施例的对比特流进行解码的示例解码器。

图8示出了根据本技术的一个或多个实施例的提取器的示例。

图9描述了实施根据本技术的一个或多个实施例的技术的源设备的示例。

图10示出了根据本技术的一个或多个实施例的媒体设备的示例。

图11示出了根据本技术的一个或多个实施例的子比特流中的图片的瓦片和条带划分的示例。

图12示出了根据本技术的一个或多个实施例的包括至少一个视频编码器或图片编码器的示例设备。

图13示出了根据本技术的一个或多个实施例的包括至少一个示例解码器的另一示例设备。

图14示出了根据本技术的一个或多个实施例的示例电子系统。

图15是根据本技术的一个或多个实施例的用于视频或图片处理的方法的流程图表示。

图16是根据本技术的一个或多个实施例的用于解码视频或图片处理中的图片的方法的流程图表示。

图17是根据本技术的一个或多个实施例的处理视频或图片处理中的一个或多个比特流的方法的流程图表示。

具体实施例

本文档中使用章节标题仅用于提高可读性,并且不将每个章节中所披露的实施例和技术的范围限制于该章节。使用h.264/avc和h.265/hevc标准的示例描述了某些功能。但是,公开技术的适用性不仅限于h.264/avc或h.265/hevc系统。

用于压缩数字视频和图片的技术利用像素样本之间的相关特性来去除视频和图片中的冗余。编码器可以将图片划分为包含多个单元的一个或多个区域。这样的区域破坏了图片内的预测依赖性,使得可以在不参考同一图片中另一区域的数据的情况下对区域进行解码(或者至少可以正确解析与该区域相对应的语法元素)。区域的划分促进了数据丢失的重新同步、并行处理、感兴趣编码区域和流式传输、分组传输、视口相关流式传输等。例如,在h.264/avc标准中,这样的区域的一个示例可以是条带和条带组。在h.265/hevc标准中,这样的区域的一个示例可以是条带和瓦片。

在下一代视频编码标准的发展中,运动图像专家组(mpeg)要求下一代视频编解码器能够从压缩比特流中高效提取所需的视口。另外,在涉及4k,8k甚至更高分辨率视频的应用中,可以允许观看者选择视口以在终端设备上呈现。因此,有必要使得能够从与原始分辨率相对应的比特流中高效地提取子比特流。

因为h.265/hevc标准在当前发布的视频编码标准中间提供了最高的编码效率,所以在当前阶段,通常选择h.265/hevc作为部署上述视频服务的编解码器。h.265/hevc标准定义了条带和瓦片。图片可以划分为一个或多个瓦片和条带。图1a和图1b示出了按照h.265/hevc标准将图片划分为多个条带和瓦片的示例。根据h.265/hevc标准,符合性要求是每个条带和瓦片均满足以下一个或两个条件:

-条带中的所有树形编码单元(ctu)都属于同一瓦片。

-瓦片中的所有ctu都属于同一条带。

通过限制在瓦片边界处的环路滤波操作(例如,在pps中将loop_filter_across_tiles_enabled_flag设置为0),可以独立地解码图片中的瓦片而无需参考瓦片之外的图片的其他区域。假设了将相同的瓦片划分应用于编码视频序列(cvs)中的所有图片。此外,如果编码器将一个或多个瓦片组成的区域的搜索范围限制为一个或多个参考图片中瓦片的并置区域(collocatedregion)以进行帧间预测编码,则解码器将对该区域进行解码,而无需参考该区域外的既在空间上处于包含区域的当前解码图片中又在时间上处于参考图片的任何其他部分。这样的区域可以被称为运动约束瓦片集合(mcts)。

从原始比特流中提取与mcts对应的部分比特流导致了子比特流。对子比特流进行解码获得了与由mcts表示的图片区域的分辨率相同的分辨率的视频。为了使子比特流可解码,在提取过程中需要重写一些语法元素。例如,如果从原始比特流中提取位于图片中心的一个或多个mcts以形成子比特流,则在提取过程中要重写条带地址(例如,在条带头中用信号发送),以便在子比特流中条带地址从0开始。

但是,现有技术存在一些问题。一般地,针对条带层原始字节序列载荷(rbsp)的网络抽象层(nal)单元被分类为视频编码层(vcl)nal单元。现有技术需要在从比特流中提取mcts的子集的vclnal单元并重新放置该vclnal单元时进行vclnal单元修改以形成子比特流。这种修改操作极大地增加了向终端设备提供子比特流的流式传输的设备的计算负担。

此外,除了在pps中关于瓦片划分的指示指定了每个瓦片的大小和位置之外,在对应于瓦片的比特流中没有呈现其他数据结构或语法元素,这导致了实现中的额外复杂性。例如,设备必须获取条带地址以确定该条带驻留在哪个瓦片。当执行从原始比特流中提取子比特流时,设备中的提取器首先对pps进行解码,以明确要在原始图片中提取的目标条带所覆盖的区域,解码该原始比特流中的每个条带头,以获取条带地址的值。提取器然后将条带地址转换为该条带的坐标值(例如,该条带中的第一样本的坐标)来确定该条带是否处于该目标瓦片中。如果是,则提取器提取包含该条带的nal单元以构造子比特流,并在必要时重写条带地址。

该专利文档描述了可以被应用来避免在提取过程中在条带头中重写条带地址的各种技术。例如,条带地址可以被表示为条带中的第一样本的坐标。在一些实施例中,条带地址被计算为参数集中指示的第一地址与条带头中指示的第二地址之和。第一地址是图片中所有条带的全局地址,而第二地址是条带中第一个样本相对于全局地址的偏移量。当提取单个瓦片或多个相邻瓦片(在2d图片或在球形图片中)的nal单元以形成子比特流时,提取器仅需要修改参数集中的第一地址,使得所提取的瓦片被放置到通过解码子比特流获得的图片中的预期位置(表示为“子图片”),而无需修改条带头中的第二地址。

例如,瓦片中的条带的地址为(600,800)。在比特流中,参数集中的第一地址被编码为(0,0),第二地址被编码为(600,800)。提取器收集与该瓦片相对应的nal单元以构建子比特流。在该子图片中,条带的地址是(0,0)。提取器将新的第一地址确定为(-600,-800),并使用新的第一地址替换参数集中的地址。也就是说,该提取器将参数集中的第一地址重写为(-600,-800)。因此,该提取器不需要重写条带头中的第二地址,从而消除了上述问题。

在以下示例实施例中描述了所公开技术的一些示例。注意,视频由一个或多个图片的序列组成。通过编码器处理视频或图片来生成比特流,也称为视频基本流。比特流也可以是传输流或媒体文件,其是对由视频或图片编码器生成的视频基本流执行系统层处理的输出。解码比特流产生了视频或图片。系统层处理是封装视频基本流。例如,视频基本流作为有效载荷打包到传输流或媒体文件中。系统层处理还包括将传输流或媒体文件封装为用于传输的流或用于存储的文件以作为有效载荷的操作。在系统层处理中生成的数据单元称为系统层数据单元。在系统层处理中封装有效载荷期间附加在系统层数据单元中的信息称为系统层信息,例如,系统层数据单元的头。提取比特流获得了子比特流,该子比特流包含比特流的一部分比特以及通过提取过程对语法元素进行的一个或多个必要修改。解码子比特流产生了视频或图片,其与通过解码比特流获得的视频或图片相比,可具有较低的分辨率和/或较低的帧速率。从子比特流获得的视频或图片也可以是从比特流获得的视频或图片的区域。

实施例1

本实施例描述了可以由编码器使用的各种技术。图2描绘了根据本技术的一个或多个实施例的对视频或图片进行编码的示例编码器200。如图2所示,编码器200的输入是视频,而输出是比特流。视频包括图片的序列。编码器200以预设顺序(例如,编码顺序)一个接一个地处理图像。编码顺序根据在编码器的配置文件中指定的预测结构确定。注意,视频中图片的编码顺序(对应于解码器端图片的解码顺序)可以与图片的显示顺序相同或不同。

划分单元201根据编码器200的配置来划分输入视频中的图片。通常,可将图片划分为一个或多个最大编码块。最大编码块是在编码处理中最大所允许或配置的块并且通常是正方形区域。可以将图片划分为一个或多个瓦片,并且瓦片可以包含整数个最大编码块,或者非整数个最大编码块。瓦片可以进一步被划分为一个或多个条带,并且每个条带可以包含整数个最大编码块,或者非整数个最大编码块。划分单元201可以被配置为使用以下来划分图片:使用固定图样(例如,图片被划分为包含一行最大编码块的条带),或使用动态图样。例如,为适应最大传输单元(mtu)大小的限制,划分单元201可以采用动态条带划分方法,以确保每个条带的编码比特数不超过mtu的限制。

图3示出了根据本技术的一个或多个实施例的将图片划分为瓦片和条带的示例。划分单元201将图片30划分为8个瓦片300,310,320,330,340,350,360和370。通常,将图片划分为一个或多个瓦片根据编码器配置文件来执行。划分单元201设置划分参数以指示将图片划分为瓦片的划分方式。例如,划分方式可以是将图片划分为相等大小或几乎相等大小的瓦片。作为另一示例,划分方式可以指示行和/或列中的瓦片边界的位置,以促进灵活的划分。

划分单元201将标识符分配给瓦片。在一些实施方案中,划分单元201以光栅扫描顺序(即,在水平方向上从左至右且在竖直方向上从顶部至底部)在图片中扫描瓦片。然后,划分单元201将瓦片标识符一个接一个地分配给瓦片。瓦片标识符可以从默认值或预设值开始以升序或降序设置。例如,如图3所示,划分单元201分别将瓦片标识符0,1,2,3,4,5,6和7分配给瓦片300,310,320,330,340,350,360和370。在一些实施方式中,划分单元201还可以将任意值的瓦片标识符分配给瓦片。例如,划分单元201可以分别将瓦片识别符19,2000,69,256,1450,109,666和190分配给瓦片300,310,320,330,340,350,360和370,只要划分单元201满足图片中的任何两个瓦片被分配不同瓦片标识符的符合性限制即可。

图4示出了根据本技术的一个或多个实施例的将图片划分为瓦片和条带的另一示例。划分单元201将图片40划分为8个瓦片4100,4110,4120,4130,4140,4150,4160和4170。划分单元201分别将瓦片识别符10,11,12,13,14,15,16和17分配给瓦片4100,4110,4120,4130,4140,4150,4160和4170。在一些实施方式中,划分单元201还可以将任意值的瓦片标识符分配给瓦片。例如,划分单元201可以分别将瓦片识别符100,20,60,45,37,1000,555和32分配给瓦片4100,4110,4120,4130,4140,4150,4160和4170,只要划分单元201满足图片中的任何两个瓦片被分配不同瓦片标识符的符合性限制即可。

划分单元201还确定了瓦片参数,其包括指示将图片划分为瓦片的划分方式的瓦片划分参数以及瓦片标识符。划分单元201将瓦片参数作为其输出参数之一。

划分单元201还将图片中的每个瓦片划分为一个或多个条带。划分单元201可以选择采用动态条带划分方案和/或固定条带划分方案。返回参考图3,划分单元201使用动态条带划分方案。划分单元201为条带确定瓦片识别符以指示该条带驻留在哪个瓦片中。划分单元201然后将瓦片300划分为一个条带3000并且将这个条带的瓦片识别符设置为等于0,将瓦片310划分为三个条带3100,3101,3102并且将该条带的瓦片识别符设置为等于1。还将瓦片320划分为三个条带3200,3201和3202并且将该条带的瓦片标识符设置为等于2。类似地,将瓦片330划分为两个条带3300和3301并且将该条带的瓦片标识符设置为等于3,依此类推。动态条带划分的一个实施方式示例是去适应mtu大小的限制。编码器监视条带的编码比特数,并在编码比特数达到根据mtu的大小的阈值时终止条带。特别地,在对瓦片中的最后一个条带进行编码时,如果该条带的编码比特数低于阈值,则编码器可以将比特填充(pad)到包含该条带的编码比特的分组中。

返回参考图4,在该示例中划分单元201使用固定条带划分方案。划分单元201将图片40中的每个瓦片以相同方式划分为4个条带。划分单元201为条带确定瓦片识别符以指示该条带驻留在哪个瓦片。划分单元201将瓦片4100划分为四个条带41000,41001,41002和41003,并且将条带的瓦片标识符设置为等于10。然后将瓦片4110划分为四个条带41100,41101,41102和41103,并且将条带的瓦片标识符设置为等于11。类似地,将瓦片4120划分为四个条带41200,41201,41202和41203,并且将条带的瓦片标识符设置为等于12,依此类推。注意,划分单元201的输出参数包括条带的瓦片标识符。

在划分图片中,划分单元201记录瓦片在图片中的地址。在一些实施例中,瓦片的地址可以被表示为瓦片的第一样本在图片中的位置的坐标。在一些实施例中,瓦片的地址可以被表示为瓦片的第一编码块在图片中的排序号。划分单元201还记录由瓦片覆盖的图片中的范围,例如,作为瓦片的起始样本和结束样本在图片中的位置,或作为瓦片的起始编码块和结束编码块在图片中的排序号。

此外,划分单元201记录条带在图片中的地址。条带在图片中的地址被表示为条带的第一地址。在一些实施例中,条带的第一地址可以被表示为条带中的第一样本在图片中的位置的坐标。在一些实施例中,条带的第一地址可以被表示为条带中的第一块在图片中的排序号。划分单元201还记录由条带覆盖的图片中的范围,例如,作为条带的起始样本和结束样本在图片中的位置,或作为条带的起始编码块和结束编码块在图片中的排序号。因为划分单元201已经知道编码块的大小(例如,从编码器配置文件知道),所以划分单元201可以将坐标转换为排序号,反之亦然。

当划分单元201根据条带的第一地址、图片中的瓦片、瓦片在图片中的覆盖范围确定了条带处于瓦片中时,划分单元201将该条带的第二地址确定为条带的第一样本在瓦片中的位置的坐标,或确定为条带的第一编码块在瓦片中的排序号。如果第一地址由坐标表示,则第二地址等于条带中的第一样本的位置与条带所驻留在的瓦片中的第一样本的位置之间的偏移。如果第一地址由编码块的排序号表示,则第二条带地址等于瓦片中的第一编码块的排序号。排序号基于预定义或选定顺序(例如,光栅扫描顺序)的瓦片中编码块的扫描顺序来确定。例如,瓦片中的第一条带的第二条带地址等于0,因为无论使用哪种扫描顺序,瓦片中的第一条带的第一编码块的排序号均为0。还应当注意的是划分单元201的输出参数还包括条带的第二地址。

返回参考图2,预测单元202确定编码块的预测样本。预测单元202包括块划分单元203,运动估计(me)单元204,运动补偿(mc)单元205,以及帧内预测单元206。预测单元202的输入包括由划分单元201输出的最大编码块。预测单元202的输入还包括与最大编码块相关联的属性参数,例如最大编码块在图片中、在条带中和/或在瓦片中的位置。预测单元202使用诸如四叉树、二元分割和/或三元分割之类的一种或多种划分方法将最大编码块划分为一个或多个编码块,还可以将其进一步划分为更小的编码块。预测单元202确定在划分中获得的编码块的预测样本。可选地,预测单元202可以进一步将编码块划分为一个或多个预测块,以确定预测样本。预测单元202可采用经解码图片缓冲区(dpb)单元214中的一个或多个图片作为参考以确定编码块的帧间预测样本。预测单元202还可以将来自加法器212的图片的重构部分(未由滤波单元213处理)用作参考以导出编码块的帧间预测样本。在一些实施例中,预测单元202使用一般性的率失真优化(rdo)方法来确定编码块的预测样本以及用于导出预测样本的相关参数,其也是预测单元202的输出参数。

在预测单元202内部,块划分单元203确定编码块的划分。块划分单元203将最大编码块划分为一个或多个编码块,还可以将其进一步划分为更小的编码块。可以应用一种或多种划分方法,例如四叉树、二元分割和三元分割。可选地,块划分单元203可以进一步将编码块划分为一个或多个预测块,以确定预测样本。块划分单元203可以在确定编码块的划分中采用rdo方法。块划分单元203的输出参数包括指示编码块的划分的一个或多个参数。

me单元204和mc单元205使用来自dpb单元214的一个或多个经解码图片作为参考图片,以确定编码块的帧间预测样本。me单元204构造包含一个或多个参考图片的一个或多个参考列表,并且为编码块确定参考图片中的一个或多个匹配块。mc单元205使用匹配块中的样本来导出预测样本,并且计算编码块中的原始样本与预测样本之间的差(例如,残差)。me单元204的输出参数指示匹配块的位置,包括参考列表索引、参考索引(refidx)、及运动矢量(mv)等。参考列表索引指示包含匹配块所位于的参考图片的参考列表。参考索引指示包含匹配块的参考列表中的参考图片。mv指示在相同坐标中编码块和匹配块的位置之间的相对偏移,以表示图片中的像素的位置。mc单元205的输出参数包括编码块的帧间预测样本,以及用于构造帧间预测样本的参数。例如,可以将针对匹配块中的样本的加权参数,滤波器类型和用于滤波匹配块中的样本的参数作为输出参数包括在内。在一些实施例中,可以将rdo方法联合应用于me单元204和mc单元205,以获取率失真(rd)意义上的最佳匹配块以及两个单元的对应输出参数。

在一些实施方式中,me单元204和mc单元205可以使用包含编码块的当前图片作为参考来获得编码块的帧内预测样本。在本文中,帧内预测意味着仅将包含编码块的图片中的数据用作导出编码块的预测样本的参考。在这种情况下,me单元204和mc单元205使用当前图片中的重构部分。重构部分来自加法器212的输出,并且不被滤波单元213处理。例如,编码器200分配图片缓冲区以(临时)存储加法器212的输出数据。编码器的另一种方法是保留dpb单元214中的特殊图像缓冲区以保持来自加法器212的数据。

帧内预测单元206使用包含编码块的当前图片的重构部分作为参考来获得编码块的帧内预测样本。重建部分未被滤波单元213处理。帧内预测单元206将编码块的重构相邻样本用作用于导出编码块的帧内预测样本的滤波器的输入。该滤波器可以是插值滤波器(例如,用于在使用角度帧内预测时计算预测样本)或低通滤波器(例如,用于计算dc值)。在一些实施方式中,帧内预测单元206可以执行搜索操作以在当前图片中的重构部分的范围中获得编码块的匹配块。然后,帧内预测单元将匹配块中的样本设置为编码块的帧内预测样本。在一些实施例中,帧内预测单元206调用rdo方法来确定帧内预测模式(例如,用于计算编码块的帧内预测样本的方法)和对应的预测样本。除了帧内预测样本之外,帧内预测单元206的输出还包括指示使用中的帧内预测模式的一个或多个参数。

加法器207被配置为计算编码块的原始样本和预测样本之间的差。在一些实施例中,加法器207的输出是编码块的残差。残差可以表示为nxm2维矩阵,其中n和m是两个正整数。n和m可以是相同或不同的值。

变换单元208将来自加法器207的输出(例如,残差)作为其输入。变换单元208可以将一种或多种变换方法应用于残差。从信号处理的角度来看,可以由变换矩阵来表示变换方法。可选地,变换单元208可以确定将形状和大小与编码块的形状和大小相同的矩形块(注意,正方形块是矩形块的特殊情况)用作变换块以用于残差。可选地,变换单元208可以确定将残差划分为几个矩形块(包括矩形块的宽度或高度是一个样本的特殊情况),并依次对这几个矩形执行变换操作。例如,变换操作可以根据默认顺序(例如,光栅扫描顺序)、预定义顺序(例如,与预测模式或变换方法相对应的顺序)和/或针对几个候选顺序的所选顺序来执行。变换单元208可以确定对残差执行多次变换。例如,变换单元208首先对残差执行核心变换,然后对完成核心变换之后获得的系数执行二次变换。变换单元208可以使用rdo方法来确定变换参数,该变换参数指示在应用于残差块的变换处理中使用的执行方式。例如,执行方式包括将残差块划分为变换块,变换矩阵,多次变换等。变换参数被包括在变换单元208的输出参数中。变换单元208的输出参数还可以包括:可由二维矩阵表示的残差(例如,变换系数)变换后获得的数据。

量化单元209在变换单元208对残差进行变换之后,对由变换单元208输出的数据进行量化。量化单元209中使用的量化器可以是标量量化器和矢量量化器之一或两者。在一些视频编码器中,量化单元209采用标量量化器。标量量化器的量化步骤由视频编码器中的量化参数(qp)表示。在一些实施例中,在编码器和对应的解码器中预设置或预定义qp和量化步骤之间的相同映射。qp的值(例如,图片水平qp和/或块水平qp)可以根据应用于编码器的配置文件来设置,或者可以由编码器中的编码器控制单元来确定。例如,编码器控制单元使用速率控制(rc)方法确定图片和/或块的量化步骤,然后根据qp和量化步骤之间的映射将量化步骤转换为qp。量化单元209的控制参数包括qp。量化单元209的输出包括以二维矩阵形式表示的一个或多个经量化的变换系数(也称为“水平(level)”)。

逆量化单元210对量化单元209的输出执行缩放操作以获得重构系数。逆变换单元211根据来自变换单元208的变换参数,对来自逆量化单元210的重构系数进行逆变换。逆变换单元211的输出包括重构残差。特别地,当编码器确定在块编码中跳过量化时(例如,编码器实施rdo方法以确定是否将量化应用于编码块),编码器通过绕过量化单元209和逆量化单元210而将变换单元208的输出数据引导至逆变换单元211。

加法器212将来自预测单元202的编码块的预测样本和重构残差作为其输入,并计算编码块的重构样本。然后,加法器212将重构样本放入缓冲区(例如图片缓冲区)中。例如,编码器200分配图片缓冲区以(临时)存储加法器212的输出数据。编码器200的另一种方法是在dpb单元214中保留特殊图片缓冲区以保持来自加法器212的数据。

滤波单元213对解码图片缓冲区中的重构图片样本执行滤波操作,并输出解码图片。滤波单元213可以包括一个滤波器或多个级联滤波器。例如,根据h.265/hevc标准,滤波单元210包括两个级联滤波器:解块滤波器和样本自适应偏移(sao)滤波器。滤波单元213还可包括神经网络滤波器。当图片中所有编码块的重构样本已经被存储在解码图片缓冲区中时,滤波单元213可以开始对图片的重构样本进行滤波,这可以被称为“图片层滤波”。可选地,滤波单元213的图片层滤波的另一种实现方式(称为“块层滤波”)是:如果在编码图片中的所有连续编码块中未将重构样本作为参考,则开始对图片中编码块的重构样本进行滤波。块层滤波不需要滤波单元213保持滤波操作直到图片的所有重构样本可用为止,从而节省了编码器中线程之间的时间延迟。在一些实施例中,滤波单元213通过调用rdo方法来确定滤波参数。滤波单元213的输出包括图片的经解码样本和滤波参数,该滤波参数包括滤波器的指示信息,滤波器系数,和滤波器控制参数等。

编码器200将来自滤波单元213的经解码图片存储在dpb214中。编码器200可以确定应用于dpb214的一个或多个指令,这些指令用于控制对dpb214中的图片的操作。例如,指令包括图片的时间长度存储在dpb214中,以及从dpb214输出图片等。注意,这些指令可以是dpb214的输出参数。

熵编码单元215对图片的一个或多个编码参数执行二值化和熵编码,以将编码参数的值转换为由二进制符号“0”和“1”组成的码字,并根据规范或标准将码字写成比特流。编码参数可以分类为纹理数据和非纹理数据。纹理数据是编码块的变换系数,非纹理数据是编码参数中除纹理数据以外的其他数据,包括编码器中单元的输出参数,参数集,头,及补充信息等。熵编码单元215的输出包括符合规范或标准的比特流。

熵编码单元215从划分单元201接收输出参数,特别是瓦片参数,包括:指示图片到瓦片的划分方式的瓦片划分参数以及瓦片标识符,指示条带所驻留在的瓦片的条带的瓦片标识符,以及指示条带在瓦片中的位置的条带的第二地址。熵编码单元215在比特流中的数据单元(例如,参数集数据单元,将在下面讨论)中对瓦片参数进行编码。

图5a-5e示出了根据本技术的一个或多个实施例的用于表示比特流中的瓦片参数的语法结构的示例。注意,在图5a和图5e中用粗体表示的语法是:由比特流中存在的一个或多个比特的串表示的语法元素,而u(1)和ue(v)是两种编码方法,其功能与已发布的标准(例如h.264/avc和h.265/hevc)相同。

图5f示出了根据本技术的一个或多个实施例的用于对指示出图片到瓦片的划分方式的瓦片划分参数进行编码的语法结构的示例。图5f中的语法元素在概念上被打包在称为tile_partitioning()的数据结构中。图5g示出了根据本技术的一个或多个实施例的用于对瓦片标识符进行编码的语法结构的示例。相似地,图5g中的语法元素在概念上被打包在称为tile_ids()的数据结构中。在图5g中,变量numtilesinpic设置为等于(num_tile_columns_minus1+1)和(num_tile_rows_minus1+1)的乘积。

在图5a和图5f中,语法元素的语义与在h.265/hevc标准中指定的相同。图5g中的语法元素的语义被介绍如下:

tile_id_present_flag:tile_id_present_flag等于1指定了存在瓦片标识符语法元素。tile_id_present_flag等于0指定了不存在瓦片标识符语法元素。当tile_id_present_flag等于0时,图片中的瓦片的瓦片标识符被导出为从0开始,并连同图片中瓦片的扫描顺序(例如,光栅扫描顺序)一起以升序增加。当未呈现瓦片标识符语法元素时,将tile_id_present_flag推断为0。

tile_id_ascending_flag:tile_id_asencding_flag等于1指定了将图片中的瓦片的瓦片标识符导出为由tile_id_starting_value指定的预设值开始并连同图片中的瓦片的扫描顺序一起以升序增加的值。tile_id_ascending_flag等于0指定了将图片中的瓦片的扫描顺序中的第i个瓦片的瓦片标识符设置为等于由tile_id[i]指定的值。

tile_id[i]:tile_id[i]指定了图片中的瓦片的扫描顺序(例如,光栅扫描顺序)中的第i个瓦片的瓦片标识符。

返回参考图3作为示例,熵编码单元215根据来自划分单元201的瓦片划分参数将图5f中的语法元素的值设置为:

num_tile_columns_minus1=3;

num_tile_rows_minus1=1;

uniform_spacing_flag=1。

熵编码单元215根据来自划分单元201的瓦片标识符将图5g中的语法元素的值设置为:

tile_id_present_flag=0。

返回参考图4作为另一示例,熵编码单元215根据来自划分单元201的瓦片划分参数将图5f中的语法元素的值设置为:

num_tile_columns_minus1=3;

num_tile_rows_minus1=1;

uniform_spacing_flag=1。

熵编码单元215根据来自划分单元201的瓦片标识符将图5g中的语法元素的值设置为:

tile_id_present_flag=1;

tile_id_ascending_flag=1;

tile_id_starting_value=10。

熵编码单元215对以上语法元素进行编码,并将编码比特写入比特流。图5a,5b和5c中的语法结构可以在比特流中的一个或多个数据单元中被分别呈现。在一些实施例中,数据单元可以是参数集数据单元。即使图5a,5b和5c中的语法结构以单个数据单元呈现,熵编码单元215也可以组织部分彼此相邻的这三个语法结构的对应比特,如图5d中的示例所示,其中tile_ids()中的语法元素的比特跟随语法元素tile_partitioning()的比特。在一些实施例中,熵编码单元215还可组织彼此相邻的这三个语法结构的对应比特,如图5e的示例中所示,其中tile_partitioning()的比特跟随tiles_enable_flag,并且tile_ids()中的语法元素的比特跟随语法元素tile_partitioning()的比特。

图6a-6b示出了根据本技术的一个或多个实施例的用于表示比特流中的瓦片标识符和条带地址(例如,第二地址)的语法结构的示例。注意,粗体的语法是由比特流中存在的一个或多个比特的串表示的语法元素,而u(1)和ue(v)是两种编码方法,其功能与已发布的标准(例如h.264/avc和h.265/hevc)相同。

图6a中的语法元素的语义表示如下。

slice_tile_id:slice_tile_id指定了条带所驻留在的瓦片的瓦片标识符;

slice_address:slice_address指定了在瓦片的编码块扫描(例如,光栅扫描)中条带或条带片段中的第一编码块的地址。

返回参考图3作为示例,根据来自划分单元201的条带的瓦片标识符和条带的第二地址,熵编码单元215将用于条带3300的图6a中的语法元素的值设置为:

slice_tile_id=3;

slice_address=0。

假设在编码中在瓦片330中的条带3301之前有12个编码块,用于条带3301的值被设置为:

slice_tile_id=3;

slice_address=12。

熵编码单元215可以在条带头或条带片段头中组织图6b中所示的语法元素的编码比特。熵编码单元215可以在slice_tile_id和slice_address之间添加零个或更多个其他语法元素。在一些实施例中,熵编码单元215可以将slice_address表示为瓦片中的条带或条带片段中的第一样本的坐标。

图6b中的语法元素的语义被表示如下。

slice_tile_id:slice_tile_id指定了条带所驻留在的瓦片的瓦片标识符。

first_slice_in_tile_flag:first_slice_in_tile_flag等于1指定了条带或条带片段是按解码顺序的瓦片的第一条带或条带片段。first_slice_in_pic_flag等于0指定了条带或条带片段不是按解码顺序的瓦片的第一条带或条带片段。

slice_address:slice_address指定了瓦片的编码块扫描(例如,光栅扫描)中的条带或条带片段中的第一编码块的地址。

在一些实施例中,熵编码单元215可以在条带头或条带片段头中组织图6b中所示的语法元素的编码比特。在一些实施方式中,熵编码单元215可以在slice_tile_id和first_slice_in_tile_flag之间添加零个或更多个其他语法元素。在一些实施方式中,熵编码单元215可以在first_slice_in_tile_flag和slice_address之间添加零个或更多个其他语法元素。在一些实施方式中,熵编码单元215可以将slice_address表示为瓦片中的条带或条带片段中的第一样本的坐标。

返回参考图3作为示例,根据来自划分单元201的条带的瓦片识别符和条带的第二地址,熵编码单元215将用于条带3300的图6b中的语法元素的值设置为:

slice_tile_id=3;

first_slice_in_tile_flag=1。

假设按照编码顺序在瓦片330中的条带3301之前具有12个编码块,用于片3301的语法元素的值被设置为:

slice_tile_id=3;

first_slice_in_tile_flag=0;

slice_address=12。

熵编码单元215可以在条带头或条带片段头中组织图6a中的语法元素的编码比特。在一些实施例中,熵编码单元215可以在slice_tile_id和slice_address之间添加零个或更多个其他语法元素。在一些实施方式中,熵编码单元215可将slice_address表示为瓦片中的条带或条带片段中的第一样本的坐标。

图15是根据本技术的一个或多个实施例的用于视频或图片处理的方法1500的流程图。方法1500包括,在步骤1501,将图片划分为一个或多个瓦片。方法1500还包括,在步骤1502,基于一个或多个瓦片使用一个或多个配置来生成一个或多个比特流。特别地,生成一个或多个比特流中的每个包括将一个或多个瓦片中的每个划分为一个或多个条带,并且针对一个或多个条带中的每个条带执行:(1)第一编码步骤,以在条带头中对瓦片标识符进行编码,以及(2)第二编码步骤,以在条带头中对指示条带在瓦片中的位置的条带的第二地址进行编码。瓦片标识符指示条带所驻留在的瓦片,并且基于指示条带在图片中的位置的条带的第一地址和瓦片的地址来确定第二地址。

实施例2

本实施例描述了可以由解码器使用的各种技术。图7描绘了根据本技术的一个或多个实施例的对比特流进行解码的示例解码器700。如图7所示,解码器700的输入是比特流,并且解码器700的输出是通过对比特流进行解码而获得的经解码视频或图片。

解码器700中的解析单元701解析输入的比特流。解析单元701使用标准中规定的熵解码方法和/或二值化方法来将包括一个或多个二进制符号(即“0”和“1”)的比特流中的每个码字转换为对应参数的数值。解析单元701还根据一个或多个可用参数来导出参数值。例如,当比特流中的标志指示解码块是图片中的第一解码块时,解析单元701将指示图片中的条带的第一解码块的地址的地址参数设置为0。

解析单元701对比特流中的一个或多个数据单元(诸如参数集数据单元)进行解析,以获得瓦片参数。瓦片参数包括指示图片到瓦片的划分方式瓦片划分参数和相应地一个或多个瓦片标识符。

图5a-5e示出了用于通过解析单元701来解析比特流中的瓦片参数的语法结构的示例。可以从比特流中的一个或多个数据单元分别解析并获得图5a,5b和5c中的语法结构。在一些实施例中,数据单元可以是参数集数据单元。在一些实施例中,如果图5a,5b和5c中的语法结构在比特流中在单个数据单元中呈现,则解析单元701可以通过读取彼此相邻的对应比特来解析这三个语法结构。例如,如图5d的示例所示,tile_ids()中的语法元素的比特跟随语法元素tile_partitioning()的比特。在一些实施例中,解析单元701还可以通过读取彼此相邻的对应比特来解析这三个语法结构。如图5e的示例中所示,tile_partitioning()的比特跟随tiles_enable_flag,并且tile_ids()中的语法元素的比特跟随语法元素tile_partitioning()的比特。

解析单元701可以获得图5f中的语法元素的值,如下:

num_tile_columns_minus1等于3;

num_tile_rows_minus1等于1;

uniform_spacing_flag等于1。

解析单元701还可以获得图5g中的语法元素的值,如下:

tile_id_present_flag等于0。

解析单元701然后可以将划分方式确定为“将图片均匀地划分为4列和2行”,并且将瓦片的瓦片标识符分配为“在图片中在瓦片的光栅扫描顺序下以升序从0开始。”即,解析单元701可以确定图片30的瓦片划分和瓦片标识符,如图3所示的那样。

解析单元701可以获得图5f中的语法元素的值,如下:

num_tile_columns_minus1等于3;

num_tile_rows_minus1等于1;

unique_spacing_flag等于1。

解析单元701还可以获得图5g中的语法元素的值。如下:

tile_id_present_flag等于1;

tile_id_ascending_flag等于1;

tile_id_starting_value等于10。

然后,解析单元701可以将划分方式确定为“将图片均匀地划分为4列和2行”,并且将瓦片的瓦片标识符分配为“在图片中在瓦片的光栅扫描顺序下以升序从10开始。”即,解析单元701确定图片40的瓦片划分和瓦片标识符,如图4所示的那样,

另外,根据图片的宽度和高度以及瓦片划分方式,解析单元701可以导出瓦片在图片中的地址。瓦片的地址可以表示为瓦片中的第一样本在图片中的位置的坐标,或者条带中的第一编码块在图片中的排序号。例如,假设图片的高度和宽度为picheight和picwidth,则图片中瓦片的光栅扫描顺序为tiler(从0开始)。以图3为例采取瓦片划分。解析单元701将被表示为瓦片中的第一样本在图片中的坐标的瓦片地址(tilex,tiley)计算为:

tilex=(picwidth/(num_tile_columns_minus1+1)*(tiler%(num_tile_columns_minus1+1)),

tiley=(picheight/(num_tile_rows_minus1+1))*(tiler/(num_tile_columns_minus1+1))。

此外,解析单元701还将图3中的瓦片的宽度(tilewidth)和高度(tileheight)确定为:

tilewidth=picwidth/(num_tile_columns_minus1+1),

tileheight=picheight/(num_tile_rows_minus1+1)。

以上计算中使用的所有算术运算符均与h.265/hevc标准中指定的算术运算符相同。

返回参考图3作为示例,解析单元701可以获得图6a所示的第一条带的语法元素的值,如下:

slice_tile_id等于3;

slice_address等于0。

解析单元701还可以获得图6a中的第二条带的语法元素,如下:

slice_tile_id等于3;

slice_address等于12。

假设解析单元701在与图片30相对应的比特流中没有获得slice_tile_id等于3的任何其他条带,并且在第一条带中存在12个解码块,则解析单元701可以确定两个条带都驻留在如slice_tile_id所指示的其瓦片标识符等于3的瓦片中。也就是说,条带330中的条带3300(第一条带)和3301(第二条带)。

条带的地址可以被表示为条带中的第一样本在图片中的位置的坐标,或条带中的第一块在图片中的排序号。假设解码块的大小为nblockxnblock,则解析单元701可以将被表示为瓦片中的坐标的条带的第二条带地址(xblockintile,yblockintile)计算为:

xblockintile=(slice_address%(tilewidth/nblock))*nblock,

yblockintile=(slice_address/(tilewidth/nblock))*nblock。

解析单元701然后将被表示为图片中的坐标的条带的第一条带地址(xblockinpic,yblockinpic)计算为:

xblockinpic=xblockintile+tilex,

xblockinpic=yblockintile+tiley。

以上计算中使用的所有算术运算符均与h.265/hevc标准中指定的算术运算符相同。解析单元701可以在解码块大小的知识的情况下将坐标转换为排序号,反之亦然。

再次返回参考图3作为示例,解析单元701可以获得图6b中的第一条带的语法元素的值,如下:

slice_tile_id等于3;

first_slice_in_tile_flag等于1。

解析单元701还可以获得图6b中的第二条带的语法元素,如下:

slice_tile_id等于3;

first_slice_in_tile_flag等于0;

slice_address等于12。

假设解析单元701在与图片相对应的比特流中没有获得slice_tile_id等于3的任何其他条带,并且在第一条带中存在12个解码块,则解析单元701确定两个条带都驻留在如slice_tile_id所指示的其瓦片标识符等于3的瓦片中。也就是说,瓦片330中的条带3300(第一条带)和3301(第二条带),以及条带3300的slice_address为0。

假设解码块的大小为nblockxnblock,则解析单元701可以计算被表示为瓦片中的坐标的条带的第二条带地址(xblockintile,yblockintile),如下:

xblockintile=(slice_address%(tilewidth/nblock))*nblock,

yblockintile=(slice_address/(tilewidth/nblock))*nblock。

解析单元701然后计算被表示为图片中的坐标的条带的第一条带地址(xblockinpic,yblockinpic),如下:

xblockinpic=xblockintile+tilex,

xblockinpic=yblockintile+tiley。

以上计算中使用的所有算术运算符与h.265/hevc标准中指定的算术运算符相同。解析单元701可以在解码块大小的知识的情况下将坐标转换为排序号,反之亦然。

解析单元701可以将以上确定出的参数传递给解码器中的其他单元,以使他们确定在相关解码处理(例如,导出相邻块和样本,将解码块的重构样本存储到缓冲区,和确定要滤波的样本等)中使用的瓦片、条带和解码块的位置。

解析单元701可以将用于导出解码块的预测样本的一个或多个预测参数传递给预测单元702。预测参数可以包括上述编码器中的划分单元201和预测单元202的输出参数。

解析单元701可以将用于重构解码块的残差的一个或多个残差参数传递给缩放单元705和变换单元706。该残差参数可以包括变换单元208和量化单元209的输出参数以及一个或多个经量化参数(例如,“水平”),其由量化单元209在编码器中输出。

解析单元701还可以将滤波参数传递给滤波单元708,以对图片中的重构样本进行滤波(例如,环路滤波)。

预测单元702可以根据预测参数来导出解码块的预测样本。预测单元702包括mc单元703和帧内预测单元704。预测单元702的输入还可以包括从加法器707输出的当前解码图片的重构部分(未被滤波单元708处理)以及dpb709中的一个或多个经解码图片。

当预测参数指示帧间预测模式被用于导出解码块的预测样本时,预测单元702采用与编码器中的me单元204相同的方法来构造一个或多个参考图片列表。参考列表可包含来自dpb709的一个或多个参考图片。mc单元703可根据参考列表、参考索引和预测参数中的mv的指示来确定用于解码块的一个或多个匹配块。mc单元703可以使用与编码器中的mc单元205中相同的方法来获得解码块的帧间预测样本。预测单元702输出帧间预测样本作为解码块的预测样本。

在一些实施例中,mc单元703可以使用包含解码块的当前解码图片作为参考来获得解码块的帧内预测样本。注意,帧内预测意味着仅将包含编码块的图片中的数据用作导出编码块的预测样本的参考。在这种情况下,mc单元703使用当前图片中的重构部分。重构部分来自加法器707的输出,并且不被滤波单元708处理。例如,解码器分配图像缓冲区以(临时)存储加法器707的输出数据。解码器的另一种方法是保留dpb709中的特殊图片缓冲区以保持来自加法器707的数据。

当预测参数指示帧内预测模式用于导出解码块的预测样本时,预测单元702采用与编码器中的帧内预测单元206相同的方法来从解码块的重构的相邻样本中确定帧内预测单元704的参考样本。帧内预测单元704获得帧内预测模式(例如,dc模式,平面模式或角度预测模式),并且在帧内预测模式的指定处理之后,使用参考样本来导出解码块的帧内预测样本。注意,在编码器(例如,帧内预测单元206)和解码器(例如,帧内预测单元704)中实现了帧内预测模式的相同导出处理。在一些实施例中,如果预测参数指示当前解码图片(包含解码块)中针对解码块的匹配块(包括其位置),则帧内预测单元704使用匹配块中的样本来导出解码块的帧内预测样本。例如,帧内预测单元704可以将帧内预测样本设置为等于匹配块中的样本。预测单元702可以将解码块的预测样本设置为等于由帧内预测单元704输出的帧内预测样本。

解码器700将qp和经量化系数传递给缩放单元705,以用于处理逆量化以获取重构系数作为输出。解码器700将来自缩放单元705的重构系数和残差参数中的变换参数(例如,编码器200中的变换单元208的输出中的变换参数)馈送到变换单元706。在一个实施例中,如果残差参数指示在对块进行解码时跳过缩放,则解码器700通过绕过缩放单元705来将残差参数中的系数指引到变换单元706。

变换单元706在标准中指定的变换处理后对输入系数执行变换操作。变换单元706中使用的变换矩阵与编码器200中的逆变换单元211中使用的矩阵相同。变换单元706的输出是解码块的重构残差。

通常,由于在标准中仅指定解码处理,因此从视频编码标准的角度出发,将解码处理中的处理和相关矩阵指定为标准文本中的“变换处理”和“变换矩阵”。因此,关于解码器的描述将实施变换处理的单元命名为“变换单元”。但是,该单元也可以被称为“逆变换单元”,因为解码处理可以被认为是编码的逆过程。

加法器707将变换单元706的输出中的重构残差和预测单元702的输出中的预测样本作为输入数据。加法器707计算解码块的重构样本。加法器707将重构样本存储到图片缓冲区中。例如,解码器分配图片缓冲区以(临时)存储加法器707的输出数据。解码器的另一种方法是在dpb709中保留特殊图片缓冲区,以保留来自加法器707的数据。

解码器700将滤波参数从解析单元701传递到滤波单元708。用于滤波单元708的滤波参数与编码器200中的滤波单元213的输出中的滤波参数相同。滤波参数包括要使用的一个或多个滤波器的信息、滤波器系数和滤波控制参数。滤波单元708使用滤波参数对存储在解码图片缓冲区中的图片的重构样本执行滤波处理,并输出经解码图片。滤波单元708可以包括一个滤波器或多个级联滤波器。例如,根据h.265/hevc标准,滤波单元包括两个级联滤波器:解块滤波器和样本自适应偏移(sao)滤波器。滤波单元708还可包括神经网络滤波器。当图片中的所有编码块的重构样本已经被存储在解码图片缓冲区中时,滤波单元708可以开始对图片的重构样本进行滤波,这可以被称为“图片层滤波”。在一些实施例中,用于滤波单元708的图片层滤波的替代实施方式(称为“块层滤波”)是:如果在对图片中的所有连续编码块进行解码时未将重构样本用作参考,则开始对图片中的编码块的重构样本进行滤波。块层滤波不需要滤波单元708来保持滤波操作直到图片的所有重构样本可用为止,从而节省了解码器中线程之间的时间延迟。

解码器700将由滤波单元708输出的解码图片存储在dpb709中。此外,解码器700可以根据由解析单元701输出的一个或多个指令,对dpb709中的图片执行一个或多个控制操作(例如,图片的时间长度存储在dpb709中,和从dpb709输出图片,等等)。

图16是根据本技术的一个或多个实施例的用于对视频或图片处理中的图片进行解码的方法1600的流程图表示。图片被划分为一个或多个瓦片,并且一个或多个瓦片中的每个被划分为一个或多个条带。方法1600包括:在步骤1601,从比特流中的条带头获得瓦片标识符。瓦片标识符指示条带所驻留在的瓦片。方法1600包括:在步骤1602,从比特流中的条带头获得第二地址。第二地址指示条带在瓦片中的位置。方法1600还包括:在步骤1603中,基于瓦片标识符和第二地址,确定指示条带在图片中的位置的条带第一地址。

实施例3

图8示出了根据本技术的一个或多个实施例的提取器800的示例。提取器的输入之一是由图2中的编码器200生成的比特流。提取器的另一输入是应用数据,其指示用于提取的目标图片区域。提取器的输出是可由图7中的解码器700解码的子比特流。如果是可进一步提取的,则该子比特流也可以是提取器的输入比特流。

提取器的基本功能是从原始比特流形成子比特流。例如,用户选择高分辨率视频中的区域以在他的智能手机上显示该区域,然后智能手机将应用数据发送到远程设备(例如,远程服务器)或内部处理单元(例如,安装在其上的软件程序)以请求与所选区域(例如,目标图片区域)相对应的媒体数据。远程设备或内部处理单元上的提取器(或等效处理单元)从与原始高分辨率视频相对应的比特流中提取与目标图片区域相对应的子比特流。

另一个示例是头戴式设备(hmd)检测观看者的当前视口,并请求用于呈现该视口的媒体数据。类似于先前的示例,hmd还生成应用数据,该应用数据指示视频图片中覆盖检测到的视口的最终呈现区域(例如目标图像区域)的区域,并将该应用数据发送到远程设备或其内部处理单元。远程设备或内部处理单元上的提取器(或等效处理单元)从与覆盖更宽呈现视口的视频相对应的比特流中提取与目标图片区域相对应的子比特流。

在本实施例中,示例输入比特流是由编码器200通过使用上述的瓦片参数和条带划分对图片进行编码而生成的比特流。

解析单元801解析输入比特流,以从输入比特流中的一个或多个数据单元(例如,参数集数据单元)获得瓦片参数。瓦片参数包括:指示将图片划分为瓦片的划分方式的瓦片划分参数和一个或多个对应的瓦片标识符。解析单元801运行与解析单元701中相似的处理以获得瓦片参数。解析单元801将瓦片参数和用于确定要提取的目标瓦片的其他必要数据(例如,图片的宽度和高度)放置在数据流80中,并将数据流80发送给控制单元802。

注意,这里的数据流是指软件实现中的功能的输入参数和返回参数,和/或硬件实现中的总线上的数据传输及存储单元之间的数据共享(还包括寄存器之间的数据共享)。

解析单元801使用与解析单元701中相似的方法,对输入的比特流进行解析,以从条带的条带头中获得条带层瓦片标识符。解析单元801将条带层瓦片标识符放置在数据流81中并将该数据流81发送至形成单元803。解析单元801还解析输入的比特流,并在必要时在生成子比特流的过程中经由数据流81将其他数据转发到形成单元803。解析单元801还将输入的比特流包括在数据流81中。

控制单元802从其对应用数据的输入中获得目标图片区域,该目标数据区域包括图片中目标图片区域的位置和大小。控制单元802从数据流80获得瓦片参数以及图片的宽度和高度。控制单元802采用与解析单元701中相似的方法来确定图片中瓦片的地址和大小,然后确定位于目标图片区域中的一个或多个目标瓦片。控制单元802还根据瓦片参数获得目标瓦片标识符作为目标瓦片的瓦片标识符。在该示例中,假设目标图片区域包括瓦片320和330,控制单元802将目标瓦片标识符(例如,对于瓦片320为2,对于瓦片303为3)以及目标图片区域的大小(即targetpicwidth和的targetpicheight)放置在数据流82中。

形成单元803接收数据流81和82,并从在数据流81中转发的输入的比特流中提取数据单元。形成单元803还根据用于目标图片区域的新参数来生成新参数集,然后通过组成所提取的数据单元和新参数集来形成子比特流。形成单元803包括提取单元804和生成单元805。当提取单元804检测到与目标瓦片标识符之一相等的条带层瓦片标识符时,提取单元804提取该条带的一个或多个数据单元。再次回到图3作为示例,提取单元804提取其条带层瓦片标识符等于2的条带3200、3201和3203的条带数据单元。提取单元804还提取其条带层瓦片标识符等于3的条带3300和3301的条带数据单元。在该示例中,提取单元804将targetpicwidth设置为等于瓦片320和330的宽度之和的宽度,并且将targetpicheight设置为等于瓦片320(或瓦片330)的高度。

生成单元805生成一个或多个新参数集数据单元,以用信号通知目标图片区域和子比特流的新特征。例如,生成单元805根据视频编码标准在参数集中设置相应的语法元素以指示目标图片区域的图片宽度和高度(例如,targetpicwidth和targetpicheight)。生成单元805还设置参数集中的对应语法元素以指示所提取的子比特流的操作点。

生成单元805使用熵编码单元215采用的类似方法,在新参数集中设置与瓦片参数相关的语法元素。例如,生成单元805将图5a中语法元素的值设置为:

iles_enable_flag=1

这是因为在作为通过使用图7中的解码器对所提取的子比特流进行解码而获得的经解码图片的目标图片区域中,存在两个瓦片。生成单元805根据目标图片区域的瓦片划分参数(例如,均匀划分为2个瓦片列,或等效地并排组合两个瓦片以形成目标图片区域)将图5f中的语法元素的值设置为:

num_tile_columns_minus1=1;

num_tile_rows_minus1=0;

uniform_spacing_flag=1。

生成单元805根据目标瓦片标识符(例如2和3)将图5g中的语法元素的值设置为:

tile_id_present_flag=1;

tile_id_ascending_flag=1;

tile_id_starting_value=2。

注意,“目标瓦片参数”可以被用来共同指代目标瓦片划分参数和目标瓦片的目标瓦片标识符,该目标瓦片划分参数指示出目标瓦片形成目标图片区域的组合方式。

形成单元803根据视频编码标准的指定比特流结构将数据单元进行组装以形成子比特流,该数据单元包括从数据流81中的比特流提取的条带数据单元(以及其他关联的数据单元)和新参数集的数据单元。形成单元803的输出是子比特流,该子比特流可由图7中的解码器700解码。

此外,由于此示例中的子比特流包含两个瓦片,因此子比特流仍是可提取的,并且可以是提取器的输入,例如,其中目标图片区域集合覆盖了其瓦片标识符为2的瓦片。

使用上述技术,在处理条带数据单元中不需要重写操作,并且通过简单地比较条带层瓦片标识符和目标瓦片标识符来消除对于通过比较图片中的条带地址和条带覆盖区域来进行的哪个条带处于目标条带中的复杂确定。因此,通过使用编码器生成原始比特流,提取器获得子比特流,以及解码器对子比特流(以及原始比特流)进行解码,解决了现有方法中的缺陷。

图17是根据本技术的一个或多个实施例的用于处理视频或图片处理中的一个或多个比特流的方法1700的流程图表示。方法1700包括:在步骤1701,确定标识位于图片的目标区域中的一个或多个目标瓦片的一个或多个目标瓦片标识符。一个或多个目标瓦片标识符被包括在一个或多个比特流中。方法1700包括:在步骤1702,从一个或多个比特流的每个中,从条带头获得瓦片标识符。瓦片标识符指示条带所驻留在的瓦片。方法1700包括:在步骤1703,基于确定来自条带头的瓦片标识符等于一个或多个目标瓦片标识符之一来从比特流组成子比特流。方法1700包括:在步骤1704,确定对应于目标区域的目标瓦片参数。目标瓦片参数包括指示一个或多个目标瓦片的划分方式的目标瓦片划分参数。目标瓦片参数还包括一个或多个目标瓦片标识符。方法1700还包括:在步骤1705,在子比特流的数据单元中编码目标瓦片参数。

实施例4

图9描绘了实施根据本技术的一个或多个实施例的技术的源设备900的示例。

编码器控制单元901生成编码器配置,并将其经由数据流90传递给编码器902。编码器配置指示在对输入视频进行编码中的瓦片划分方式和一个或多个编码参数。编码器902根据图2中描绘的示例编码器来实现。编码器902使用数据流90中的编码器配置对输入视频进行编码以生成输出比特流。输出比特流可由图7中描绘的示例解码器解码。

在一些实施例中,源设备900可以使用不同的编码器配置对相同的输入视频进行编码来生成多个独立的比特流。这样的比特流可以具有彼此不同的多个质量特征,其是对应的多个编码器配置中的不同集合的结果(例如,用于图片的量化参数,图片的分辨率,用于瓦片的量化参数和瓦片的分辨率等)。

例如,为了促进全方向360度视频的基于视口的流传输,源设备900可以生成具有不同编码质量的多个比特流(例如,使用不同的量化参数)。当hmd需要与观看者当前焦点的视口相对应的比特流时,媒体服务器可以形成一个比特流,其包含覆盖当前视口的高质量区域(以在hmd上呈现)和其他相对低质量的区域(以用于其他视口的“暂时”呈现)——当观看者移动到另一个视口时。当hmd检测到观看者聚焦于新视口时,hmd向服务器发送请求,并且服务器生成一个新的比特流,其包含覆盖当前已移位视口的高质量区域以在hmd上进行呈现,并将此新的比特流发送给hmd。

在这种情况下,编码器控制单元901设置两个编码器配置。两个编码器配置中的瓦片划分方式相同,但是量化参数不同。编码器902使用两个配置分别对输入视频进行编码,以获得两个比特流903和904。

在生成比特流903中,编码器控制单元901在第一编码器配置中设置高量化参数,并且通过对比特流903进行解码而获得的图片具有相对较低的感知质量。

在生成比特流904中,编码器控制单元901在第二编码器配置中设置低量化参数,并且通过对比特流904进行解码而获得的图片具有相对较高的感知质量。

为了支持通过组合来自比特流903和904的数据单元来提取子比特流,编码器902在生成多个比特流中分配不同的瓦片标识符。例如,在生成比特流903和比特流904时,编码器902采用图3中的瓦片参数和图4中的瓦片参数(包括瓦片划分方式和对应的瓦片标识符的分配)。即,在比特流903中在图片中的8个瓦片的瓦片标识符为0、1、2、3、4、5,而在比特流904中在图片中的8个瓦片的瓦片标识符是10、11、12、13、14、15、16和17。

图10示出了根据本技术的一个或多个实施例的媒体设备1000的示例。媒体设备1000包括应用单元1001和提取器1002。

应用单元1001收集应用需求并生成应用数据。应用需求可以是例如用户对高分辨率图片中的区域的选择,和由hmd检测到的视口等。所生成的应用数据与图8中所描述的相同,作为控制单元802的输入,其包括用于提取的目标图片区域。所生成的应用数据还可以包括当前聚焦视口在图片中的位置。应用单元1001经由数据流100传递所生成的应用数据。

提取器1002根据图8所示的提取器来实现,具有处理多个输入比特流的附加功能。提取器1002包括与图8所示相同的单元和数据流。例如,当提取器1002的输入是单个比特流时,提取器1002以与上述相同的方式处理单个比特流。

作为另一示例,提取器1002的输入包括多个比特流。例如,由源设备900生成的两个比特流903和904现在分别变为输入比特流1003和输入比特流1004。

提取器1002中的解析单元801解析多个输入比特流,以从多个输入比特流中的数据单元(例如,参数集数据单元)获得多个瓦片参数。每个瓦片参数包括指示将图片划分为瓦片的划分方式的瓦片划分参数和相应地一个或多个瓦片标识符。提取器1002中的解析单元801运行与解析单元701相似的处理以获得瓦片参数。解析单元801将瓦片参数和用于确定从输入比特流1003和1004获得的用于提取的目标瓦片的其他必要数据(例如,图片宽度和高度)放置在提取器1002中的数据流80中,并将数据流80发送到提取器1002中的控制单元802。

提取器1002中的解析单元801使用与解析单元701中相似的方法来解析多个输入比特流中的每个,以从条带的条带头中获得条带层瓦片标识符。提取器1002中的解析单元801将从输入比特流1003和1004获得的条带层瓦片标识符放置到数据流81中,并将数据流81发送到提取器1002中的形成单元803。提取器1002中的解析单元801还解析多个输入比特流中的每个,以在必要时在生成子比特流的过程中经由数据流81将其他数据转发到提取器1002中的形成单元803。提取器1002中的解析单元801还将多个输入比特流包括在数据流81中。

提取器1002中的控制单元802从数据流100获得目标图片区域,包括图片中目标图片区域的位置和大小,并且还可以是图片中当前聚焦视口的位置。提取器1002中的控制单元802从数据流80获得瓦片参数以及图片的宽度和高度。提取器1002中的控制单元802采用与解析单元701所使用的方法类似的方法来确定瓦片在图片中的地址和大小,然后确定位于目标图片区域中的一个或多个目标瓦片。控制单元802还根据瓦片参数将目标瓦片标识符确定为目标瓦片的瓦片标识符。在该示例中,假设图片中的当前聚焦视口是图片的右半部分,则提取器1002中的控制单元802确定目标图片区域包括输入比特流1004中的图片的右半部分(对于高感知质量)和输入比特流1003中的图片的左半部分(用于降低感知质量以节省传输比特)。因此,来自多个比特流的最终提取的图片包括如图3所示的瓦片300、310、340和350,以及如图4所示的瓦片4120、4130、4160和4170。提取器1002中的控制单元802将目标瓦片标识符(例如,对于输入比特流1003中的瓦片的0、1、4和5,以及对于输入比特流1004中的瓦片的12、13、16和17)和目标图片区域的大小(例如,targetpicwidth和targetpicheight)放置在数据流82中。在该示例中,提取器1002中的控制单元802将targetpicwidth和targetpicheight分别设置为等于图片的宽度和高度。

提取器1002中的控制单元802还将8个瓦片的组合方式放置在数据流82中以形成图片。等效地,这种组合方式还可以指示将图片到瓦片的划分方式。图11示出了根据本技术的一个或多个实施例的子比特流中的图片的瓦片和条带划分的示例。图片110是通过对子比特流(例如,输出比特流1005)进行解码而获得的图片。瓦片110300、110310、110340和110350是来自输入比特流1003的图3所示的瓦片300、310、340和350(分别具有相等的瓦片标识符)。瓦片1104120、1104130、1104160、1104170是图4所示的瓦片4120、4130、4160和4170(分别具有相等的瓦片标识符)。提取器1002中的控制单元802将瓦片划分方式和对应的瓦片标识符(例如以图片110的瓦片参数的形式)放置在数据流82中。

提取器1002中的形成单元803接收数据流81和82,从在数据流81中转发的多个输入比特流提取数据单元,针对目标图片区域根据新参数生成新参数集,并且然后通过组成所提取的数据单元和新参数集而形成子比特流。提取器1002中的形成单元803包括提取单元804和生成单元805。当提取单元804检测到等于目标瓦片标识符之一的条带层瓦片标识符时,提取单元804提取该条带的一个或多个数据单元。在该示例中,提取单元804从输入比特流1003提取如图3所示的条带3000、3100、3101、3102、3400,3401、3500和3501的条带数据单元,其条带层瓦片标识符等于0、1、4和5之一。提取单元804还从输入比特流1004提取如图4所示的条带41200、41201、41202、41203、41300、41301、41302、41303、41600、41601、41602、41603、41700、41701、41702和41703,其条带层瓦片标识符等于12、13、16和17之一。图片110中的对应条带是图片110的左半部分中的条带1103000、1103100、1103101、1103102、1103400、1103401、1103500和1103501,和图片110的右半部分中的11041200、11041201、11041202、11041203、11041300、11041301、11041302、11041303、11041600、11041601、11041602、11041603、11041700、11041701、11041702和11041703,如图11所示。

生成单元805生成一个或多个新参数集数据单元,以指示目标图片区域(例如,图片110)和子比特流(例如,输出比特流1005)的新特征。例如,生成单元805根据视频编码标准在参数集中设置对应的语法元素,以指示目标图片区域的图片宽度和高度(例如,targetpicwidth和targetpicheight)。生成单元805还在参数集中设置对应的语法元素以指示子比特流的操作点。

生成单元805使用与熵编码单元215所使用的相似的方法在新参数集中设置与瓦片参数相关的语法元素。例如,生成单元805将图5a中的语法元素的值设置为:

tiles_enable_flag=1

这是因为图片110中有8个瓦片,该图片是通过使用图7中的解码器对输出比特流1005进行解码而获得的解码图片。生成单元805根据图片110的瓦片划分参数(例如,均匀划分为4个瓦片列和2个瓦片行)而将图5f中的语法元素的值设置为:

num_tile_columns_minus1=3;

num_tile_rows_minus1=1;

uniform_spacing_flag=1。

生成单元805根据图110中的目标瓦片标识符将图5g中的语法元素的值设置为:

tile_id_present_flag=1;

tile_id_ascending_flag=0;

tile_id[0]=0(图11中的瓦片110300)

tile_id[1]=1(图11中的瓦片110310)

tile_id[2]=12(图11中的瓦片1104120)

tile_id[3]=13(图11中的瓦片1104130)

tile_id[4]=4(图11中的瓦片110340)

tile_id[5]=5(图11中的瓦片110350)

tile_id[6]=16(图11中的瓦片1104160)

tile_id[7]=17(图11中的瓦片1104170)

注意,“目标瓦片参数”可以被用来共同指代目标瓦片划分参数和目标瓦片的目标瓦片标识符,该目标瓦片划分参数指示目标瓦片形成目标图片区域的组合方式。

提取器1002中的形成单元803根据视频编码标准的指定比特流结构将数据单元组装以形成子比特流,该数据单元包括从数据流81中的多个输入比特流提取的条带数据单元(以及其他相关数据单元)和新参数集的数据单元。提取器1002中的形成单元803的输出是输出比特流1005,其可由图7中的解码器700解码。

此外,由于该示例中的输出比特流1005包含8个瓦片,因此输出比特流1005仍然是可提取的,并且可以是图8或图10所示的提取器的输入。

实施例5

图12示出了根据本技术的一个或多个实施例的至少包括视频编码器或图片编码器的示例设备1200。在图12中,获取单元1201捕获视频和图片。获取单元1201可以配备有一个或多个相机以拍摄自然场景的视频或图片。在一些实施例中,获取单元1201可以以用于得到深度视频或深度图片的相机来实现。在一些实施例中,获取单元1201可以包括红外相机的组件。在一些实施例中,获取单元1201可以配置有遥感相机。获取单元1201还可以是通过使用放射线扫描对象来生成视频或图片的设备或装置。

在一些实施例中,获取单元1201可以对视频或图片执行预处理(例如,自动白平衡,自动聚焦,自动曝光,背光补偿,锐化,去噪,拼接,上采样/下采样,帧-速率转换,虚拟视图合成等)。

在一些实施例中,获取单元1201还可从另一设备或处理单元接收视频或图片。例如,获取单元1201可以是代码转换器中的组件单元。代码转换器将一个或多个经解码(或部分经解码)图片馈送到获取单元1201。作为另一示例,获取单元1201经由数据链路从另一设备获取去往该设备的视频或图片。

注意,获取单元1201可以用于捕获除了视频和图片之外的其他类型的媒体信息(例如,音频信号)。获取单元1201还可以接收人工信息(例如,字符,文本,以及计算机生成的视频或图片等)。

根据本技术的一个或多个实施例来实现编码器1202。编码器1202的输入是由获取单元1201输出的视频或图片。编码器1202对视频或图片进行编码,并输出所生成的视频或图片比特流。

存储/发送单元1203从编码器1202接收视频或图片比特流,并且对该比特流执行系统层处理。例如,存储/发送单元1203根据传输标准和媒体文件格式(例如,mpeg-2ts,isobmff,dash,mmt等)封装比特流。存储/发送单元1203将封装后获得的传输流或媒体文件存储在第一示例设备的存储器或磁盘中,或者经由有线或无线网络发送该传输流或媒体文件。

注意,除了来自编码器1202的视频或图片比特流之外,存储/发送单元1203的输入还可以包括音频,文本,图像,和图形等。存储/发送单元1203通过封装这样的不同类型的媒体比特流来生成传输或媒体文件。

存储/发送单元1203还可以包括根据本技术的一个或多个实施例实现的提取器。存储/发送单元1203可以生成用于存储或传输的子比特流。

在本实施例中描述的示例设备1200可以是能够在视频通信的应用中生成或处理视频(或图片)比特流的设备(例如,移动电话,计算机,媒体服务器,便携式移动终端,数码相机,广播设备,cdn(内容分发网络)设备,监控摄像头,视频会议设备等)。

实施例6

图13示出了根据本技术的一个或多个实施例的包括至少一个示例解码器的另一示例设备1300。

接收单元1301通过从有线或无线网络获得比特流,通过读取电子设备中的存储器或磁盘,或者通过经由数据链路从其他设备获取数据来接收视频或图片比特流。接收单元1301的输入还可以包括包含视频或图片比特流的传输流或媒体文件。接收单元1301根据传输流或媒体文件格式的规范从传输流或媒体文件提取视频或图片比特流。

接收单元1301还可包括根据本技术的一个或多个实施例实现的提取器。接收单元1301可以通过提取一个或多个接收到的比特流以进行解码和呈现来生成子比特流。

接收单元1301将视频或图片比特流输出并传递给解码器1302。注意,除了视频或图片比特流之外,接收单元1301的输出还可以包括音频比特流,字符,文本,图像,和图形等。接收单元1301将输出传递给示例设备1300中的对应处理单元。例如,接收单元1301将输出音频比特流传递给该设备1300中的音频解码器。

编码器1302的输入是由接收单元1301输出的视频或图片比特流。解码器1302对视频或图片比特流进行解码,并输出经解码的视频或图片。

呈现单元1303从解码器1302接收经解码的视频或图片。呈现单元1303将经解码的视频或图片呈现给观看者。呈现单元1303可以是示例设备1300的组件(例如,屏幕)。呈现单元1303还可以是与示例设备1300分离的设备,其具有到示例设备1300的数据链路(例如,投影仪,监视器,电视机等)。在一些实施例中,呈现单元1303在将经解码的视频或图片呈现给观看者之前对其进行后处理(例如,自动白平衡,自动聚焦,自动曝光,背光补偿,锐化,去噪,拼接,上采样/下采样,帧率转换,虚拟视图合成等)。

注意,除了经解码的视频或图片之外,呈现单元1303的输入可以包括来自第二示例设备的一个或多个单元的其他媒体数据(例如,音频,字符,文本,图像,图形等)。呈现单元1303的输入还可以包括人造数据(例如,本地教师在幻灯片上绘制的线条和标记,以引起远程教育应用中的注意)。呈现单元1303将不同类型的媒体包括在一起,然后将构图呈现给观看者。

在本实施例中描述的示例设备1300可以是能够在视频通信的应用中解码或处理视频(或图片)比特流的设备(例如,移动电话,计算机,机顶盒,电视机,hmd,监视器,媒体服务器,便携式移动终端,数码相机,广播设备,内容分发网络设备,监视器件,视频会议设备等)。

实施例7

图14示出了根据本技术的一个或多个实施例的示例电子系统。系统1400包括服务设备1401,存储介质/传输网络1402和目的地设备1403。服务设备1401可以根据上述实施例5来实现。存储介质/传输网络1402可以包括设备或电子系统的内部存储资源,可经由数据链路访问的外部存储资源,和/或包括有线和/或无线网络的数据传输网络。存储介质/传输网络1402为服务设备1401中的存储/发送单元1203提供存储资源或数据传输网络。

目的地设备1403可以根据上述实施方式6来实现。例如,目的地设备1403中的接收单元1301从存储介质/传输网络1402接收视频或图片比特流,包含视频或图片比特流的传输流或包含视频或图片比特流的媒体文件。

在本实施例中描述的电子系统1400可以是能够在视频通信的应用中生成、存储或传输、以及解码视频(或图片)比特流的设备或系统(例如,移动电话,计算机,iptv系统,ott系统,互联网上的多媒体系统,数字电视广播系统,视频监视系统,便携式移动终端,数码相机,和视频会议系统等)。

注意,所描述的实施方式可以通过用对应的概念和区域定义替换“瓦片”和“条带”而被应用于用于划分图片的任何其他类似的概念和区域定义。例如,通过用h.264/avc标准中指定的“条带组”替换“瓦片”,将本公开中的方法应用于h.264/avc编解码器。

将会理解,本文档公开了可以在视频或图片处理的不同阶段(例如,编码,解码,提取)中应用于各种实施例的技术,以避免条带地址的冗余写入并使确定条带位置的计算成本最小化,从而提高访问各个条带以协助重新同步、并行处理、感兴趣区域编码和流传输、分组传输和/或视口相关流的效率。

在示例方面,一种用于视频或图片处理的方法包括:将图片划分为一个或多个瓦片;并且基于所述一个或多个瓦片使用一个或多个配置来生成一个或多个比特流。生成所述一个或多个比特流中的每个包括:将所述一个或多个瓦片中的每个划分为一个或多个条带,并且针对一个或多个条带中的每个条带执行以下操作:第一编码步骤,用于在条带头中对瓦片标识符进行编码,以及第二编码步骤,用于在条带头中对指示条带在瓦片中的位置的条带第二地址进行编码。所述瓦片标识符指示所述条带所驻留在的瓦片。所述第二地址基于指示条带在图片中的位置的条带第一地址和瓦片地址来确定。

在一些实施例中,生成所述一个或多个比特流中的每个包括:在图片的数据单元中对瓦片参数进行编码。所述瓦片参数包括瓦片划分参数,所述瓦片划分参数指示图片中的一个或多个瓦片的划分方式,并且所述瓦片参数还包括标识所述一个或多个瓦片中的每个瓦片的瓦片标识符。在一些实施例中,所述数据单元包括参数集的数据单元。

在一些实施例中,所述条带第一地址包括所述条带的第一样本在所述图片中的位置。在一些实施例中,所述条带第一地址包括所述瓦片的第一编码块在所述图片中的排序号。

在一些实施例中,所述第二地址包括所述条带的第一样本在所述瓦片中的位置。在一些实施方式中,所述第二地址包括所述条带的第一样本的位置与所述瓦片的第一样本的位置之间的坐标偏移。在一些实施例中,所述第二地址包括所述条带的第一编码块在所述瓦片中的排序号。在一些实施例中,所述条带的第一编码块的排序号基于编码块的扫描顺序来确定。在一些实施方式中,所述扫描顺序包括光栅扫描顺序。

在一些实施例中,所述一个或多个配置包括值不同的至少一个参数,所述一个参数包括:用于图片的量化参数,图片的分辨率,用于一个或多个瓦片的量化参数,或所述一个或多个瓦片的分辨率。

在另一个示例方面,描述了一种用于解码视频或图片处理中的图片的方法。所述图片被划分为一个或多个瓦片,并且所述一个或多个瓦片中的每个被划分为一个或多个条带。所述方法包括:从比特流中的条带头获得瓦片标识符,其中所述瓦片标识符指示所述条带所驻留在的瓦片;从比特流中的条带头获得第二地址,其中所述第二地址指示条带在瓦片中的位置;并且基于所述瓦片标识符和所述第二地址来确定指示所述条带在图片中的位置的条带第一地址。

在一些实施例中,所述方法包括从比特流中的图片的数据单元获得瓦片参数。所述瓦片参数包括指示所述一个或多个瓦片的划分方式的瓦片划分参数,其中所述瓦片参数还包括标识所述一个或多个瓦片中的每个瓦片的瓦片标识符。在一些实施例中,所述数据单元包括参数集的数据单元。

在一些实施例中,所述条带第一地址包括所述条带的第一样本在所述图片中的位置。在一些实施例中,所述条带第一地址包括所述瓦片的第一编码块在所述图片中的排序号。

在一些实施例中,所述第二地址包括所述条带的第一样本在所述瓦片中的位置。在一些实施方式中,所述第二地址包括所述条带的第一样本的位置与所述瓦片的第一样本的位置之间的坐标偏移。在一些实施例中,所述第二地址包括所述条带的第一编码块在所述瓦片中的排序号。在一些实施例中,所述条带的第一编码块的排序号基于编码块的扫描顺序来确定。在一些实施方式中,所述扫描顺序包括光栅扫描顺序。

在另一个示例性方面,描述了一种用于解码视频或图片处理中的图片的设备。该设备包括被配置为实现上述解码方法的解析单元。

在另一个示例方面,描述了一种用于处理视频或图片的一个或多个比特流的方法。所述图片被划分为一个或多个瓦片,并且所述一个或多个瓦片中的每个被划分为一个或多个条带。所述方法包括:确定一个或多个目标瓦片标识符,其标识位于图片的目标区域中的一个或多个目标瓦片。一个或多个目标瓦片标识符被包括在一个或多个比特流中。所述方法包括:从一个或多个比特流的每个中从条带头获得瓦片标识符。所述瓦片标识符指示所述条带所驻留在的瓦片。所述方法包括:基于来自条带头的瓦片标识符等于一个或多个目标瓦片标识符之一的确定来组成子比特流,并确定与所述目标区域相对应的目标瓦片参数。所述目标瓦片参数包括指示所述一个或多个目标瓦片的划分方式的目标瓦片划分参数,并且所述目标瓦片参数还包括所述一个或多个目标瓦片标识符。所述方法包括:在所述子比特流的数据单元中编码目标瓦片参数。

在一些实施例中,所述数据单元包括参数集的数据单元。在一些实施例中,方法包括:解析一个或多个比特流以获得一个或多个瓦片参数。每个瓦片参数包括指示图片中一个或多个瓦片的划分方式的瓦片参数,并且所述瓦片参数还包括标识一个或多个瓦片中的每个瓦片的瓦片标识符

在另一示例方面,公开了一种用于视频或图片处理的设备,包括:编码器控制单元,其被配置为生成一个或多个配置,以及编码器,其被配置为从编码器控制单元接收一个或多个配置以生成一个或多个比特流。编码器包括:划分单元,被配置为将图片划分为一个或多个瓦片,并将所述一个或多个瓦片中的每个划分为一个或多个条带。划分单元还被配置为:针对所述一个或多个条带中的每个条带执行以下操作:确定指示所述条带所驻留在的瓦片的瓦片标识符,以及确定指示条带在瓦片中的位置的条带第二地址。所述第二地址基于指示条带在图片中的位置的条带第一地址和瓦片地址来确定。

在一些实施例中,所述划分单元被配置为确定瓦片参数,所述瓦片参数包括指示所述图片中一个或多个瓦片的划分方式的瓦片划分参数,所述瓦片参数还包括标识一个或多个瓦片中的每个瓦片的瓦片标识符。

在一些实施例中,所述编码器包括编码单元(例如如上所述的熵编码单元215),其被配置为:从划分单元接收所述瓦片参数、针对一个或多个条带中的每个的瓦片标识符,以及针对一个或多个条带中的每个的条带第二地址;在图片的数据单元中编码所述瓦片参数,在一个或多个条带的每个的条带头中编码所述瓦片标识符,并且在一个或多个条带的每个的条带头中编码所述条带第二地址。在一些实施方式中,数据单元包括参数集的数据单元。

在一些实施例中,所述条带第一地址包括所述条带的第一样本在所述图片中的位置。在一些实施例中,所述条带第一地址包括所述瓦片的第一编码块在所述图片中的排序号。

在一些实施例中,所述第二地址包括所述条带的第一样本在所述瓦片中的位置。在一些实施方式中,所述第二地址包括所述条带的第一样本的位置与所述瓦片的第一样本的位置之间的坐标偏移。在一些实施例中,所述第二地址包括所述条带的第一编码块在所述瓦片中的排序号。在一些实施例中,所述条带的第一编码块的排序号基于编码块的扫描顺序来确定。在一些实施方式中,所述扫描顺序包括光栅扫描顺序。

在一些实施例中,所述一个或多个配置包括值不同的至少一个参数,所述一个参数包括:用于图片的量化参数,图片的分辨率,用于一个或多个瓦片的量化参数,或一个或多个瓦片的分辨率。

在另一示例方面,公开了一种用于处理视频或图片的一个或多个比特流的设备。所述图片被划分为一个或多个瓦片,并且所述一个或多个瓦片中的每个被划分为一个或多个条带。所述设备包括:控制单元,被配置为确定一个或多个目标瓦片标识符,所述一个或多个目标瓦片标识符标识位于图片的目标区域中的一个或多个目标瓦片。所述一个或多个目标瓦片标识符被包括在一个或多个比特流中。所述设备包括:解析单元,被配置为从一个或多个比特流的每个中从条带头获得瓦片标识符。所述瓦片标识符指示所述条带所驻留在的瓦片。所述设备包括:形成单元,被配置为:基于来自条带头的瓦片标识符等于一个或多个目标瓦片标识符之一的确定来组成子比特流;确定与所述目标区域相对应的目标瓦片参数,其中所述目标瓦片参数包括指示所述一个或多个目标瓦片的划分方式的目标瓦片划分参数,所述目标瓦片参数还包括所述一个或多个目标瓦片标识符;并且在子比特流的数据单元中编码所述目标瓦片参数。

在一些实施例中,所述数据单元包括参数集的数据单元。在一些实施例中,所述解析单元被配置为解析一个或多个比特流以获得一个或多个瓦片参数。每个瓦片参数包括指示图片中一个或多个瓦片的划分方式的瓦片参数,并且所述瓦片参数还包括标识一个或多个瓦片中的每个瓦片的瓦片标识符。

在另一示例方面,公开了一种计算机程序存储介质。该计算机程序存储介质包括存储在其上的代码。当所述代码由处理器执行时,致使处理器执行上述方法。

本文档中描述的公开的和其他实施例、模块和功能操作可以以数字电子电路或计算机软件、固件或硬件来实现,包括本文档中公开的结构及其等同结构,或以其中一个或多个的组合。所公开的实施例和其他实施例可以被实现为一个或多个计算机程序产品,即,在计算机可读介质上编码的计算机程序指令的一个或多个模块,以由数据处理设备执行或控制数据处理设备的操作。所述计算机可读介质可以是机器可读存储设备,机器可读存储基板,存储设备,影响机器可读传播信号的物质组成或它们中的一个或多个的组合。术语“数据处理设备”涵盖用于处理数据的所有设备,装置和机器,例如包括可编程处理器,计算机或多个处理器或计算机。除了硬件之外,该设备还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件,协议栈,数据库管理系统,操作系统或其一项或多项的组合的代码。传播的信号是人工产生的信号,例如机器产生的电,光或电磁信号,其被产生以对信息进行编码以传输到合适的接收器设备。

计算机程序(也称为程序,软件,软件应用程序,脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且可以以任何形式进行部署,包括独立程序或适合在计算环境中使用的模块,组件,子例程或其他单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),专用于所讨论程序的单个文件或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)。可以将计算机程序部署为在一台计算机上执行,或者在位于一个站点上或分布在多个站点上并通过通信网络互连的多台计算机上执行。

本文档中描述的过程和逻辑流程可以由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程处理器来执行。处理和逻辑流程也可以由专用逻辑电路执行,并且设备也可以实现为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。

例如,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁,磁光盘或光盘)接收数据或将数据传输到一个或多个大容量存储设备或将数据传输到这两个或两个以上大容量存储设备。但是,计算机不必具有此类设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器,介质和存储设备,包括例如半导体存储设备,例如eprom,eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cdrom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

尽管该专利文件包含许多细节,但是这些细节不应解释为对任何发明或可要求保护的范围的限制,而应解释为对特定发明的特定实施例可能特定的特征的描述。在单独的实施例的上下文中在该专利文件中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至最初如此声称,但是在某些情况下可以从组合中切除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变型。

类似地,尽管在附图中以特定顺序描绘了操作,但是这不应被理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的效果。此外,在该专利文献中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离。

仅描述了一些实施方式和示例,并且可以基于本专利文献中描述和示出的内容进行其他实施方式、增强和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1