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

数字视频中的参数集信令的制作方法

2021-10-20 02:24:00 来源:中国专利 TAG:解码 总体上 图像 编码 专利


1.本专利文档总体上涉及视频和图像的编码和解码。


背景技术:

2.视频编码使用压缩工具将二维视频帧编码成压缩的比特流表示,这种表示在用于网络上存储或传输时更有效。当前正在努力设计下一代视频编解码器,其在编码信号方面提供更大的灵活性并提供更好的视频编码性能。


技术实现要素:

3.本文档公开了视频或图片的编码和解码方法、编码和解码设备,以至少解决如何对参数集中的参数进行编码,使得可以在不增加参数集的激活和管理的复杂性的情况下灵活更新各种工具的参数。
4.在一个示例方面,公开了一种比特流处理的方法。该方法包括:从包含对应于编码视频区域的比特的数据单元获得第一参数集标识符,从对应于第一参数集标识符的第一参数集获得工具标志,从工具标志确定出与工具标志对应的工具的工具参数的存在或被使能以用于解码编码的视频区域,其中工具对应于视频编码技术,基于确定来获得第二参数集标识符,从与第二参数集标识符对应的第二参数中获得工具参数集,并使用工具参数对视频区域进行解码。
5.在另一个示例方面,公开了一种编码视频区域的方法。该方法包括:确定用于编码视频区域的工具的工具参数,其中该工具表示视频编码技术,生成由第一参数集标识符标识的第一参数集,在第一参数集中包括与工具对应的工具标志,其中工具标志被设置为指示工具参数存在或被使能以用于编码视频区域的值,使用第二参数集标识符将工具参数包括在第一参数集中,编码视频区域的头中的第一参数集标识符,并且使用工具参数对视频区域进行编码。
6.在又一个示例方面,公开了一种视频解码器装置,其包括被配置为实施上面描述的方法的处理器。
7.在又一方面,公开了一种视频编码器装置,其包括被配置为实施上面描述的方法的处理器。
8.在另一方面,公开了一种计算机可读介质。计算机可读介质上存储有代码,该代码在由处理器执行时致使处理器实施上面描述的方法。
9.这些和其他方面将在本文档中进行进一步描述。
附图说明
10.提供本文描述的附图以提供对本说明书的进一步理解,并且构成本文档的一部分。在附图中:
11.图1a是比特流处理方法的示例的流程图。
12.图1b是编码视频区域的示例方法的流程图。
13.图2是示出了实施本公开中的方法的示例视频或图片编码器的图。
14.图3是示出了将图片划分成瓦片组的示例的图。
15.图4是示出了将图片划分成瓦片组的示例的图。
16.图5是示出了用于表示参数集中的多个工具的参数的语法结构的示例的图。
17.图6a

图6b示出了用于参考图片区域或图片的头中的工具参数的参数集的语法结构的示例。
18.图7是示出了实施本公开中的方法的示例视频或图片解码器的图。
19.图8是示出了实施本公开中的方法的提取器的示例的图。
20.图9是示出了至少包括本公开中描述的示例编码器的第一示例设备的图。
21.图10是示出了至少包括本公开中描述的示例解码器的第二示例设备的图。
22.图11是示出了包括第一示例设备和第二示例设备的电子系统的图。
23.图12示出了用于实施本文档中描述的技术的硬件平台的示例。
具体实施方式
24.本文档中使用章节标题仅用于提高可读性,并且不将每个章节中所公开的实施例和技术的范围限制于该章节。使用h.264/avc(高级视频编码)、h.265/hevc(高效视频编码)和h.266通用视频编码(vvc)标准的示例描述了某些功能。但是,公开技术的适用性不限于仅h.264/avc或h.265/hevc或h.266/vvc系统。
25.在该专利文档中,视频可以由一个或多个图片的序列组成。比特流,有时也被称为也称为视频基本流,其通过编码器处理视频或图片来生成。比特流也可以是传输流或媒体文件,其是对由视频或图片编码器生成的视频基本流执行系统层处理的输出。解码比特流产生了视频或图片。系统层处理是封装视频基本流。例如,视频基本流作为有效载荷打包到传输流或媒体文件中。系统层处理还包括将传输流或媒体文件封装为用于传输的流或用于存储的文件以作为有效载荷的操作。在系统层处理中生成的数据单元称为系统层数据单元。在系统层处理中封装有效载荷期间附加在系统层数据单元中的信息称为系统层信息,例如,系统层数据单元的头。提取比特流获得了子比特流,该子比特流包含比特流的一部分比特以及通过提取过程对语法元素进行的一个或多个必要修改。解码子比特流产生了视频或图片,其与通过解码比特流获得的视频或图片相比,可具有较低的分辨率和/或较低的帧速率。从子比特流获得的视频或图片也可以是从比特流获得的视频或图片的区域。
26.参数集是在解码部分、一个或多个图片中承载公共参数的视频比特流中的数据单元。参数集具有指定其参数集标识符的语法元素。通常,解码器在条带头(例如h.264/avc标准、h.265/hevc标准)或瓦片组头(在当前的h.266/vvc wd(工作草案)中)获得一个或可能多个参数集标识符。即,条带或瓦片组直接或间接参考此类参数集。在解码过程中,解码器激活参数集,其标识符等于条带或瓦片组参考的标识符。
27.在视频编解码器中,一种或多种编码工具具有图片自适应或图片区域自适应的特征,例如自适应环路滤波器(alf)、缩放列表、样本自适应偏移(sao)等。使用参数集高效承载此类工具的参数,使得此类参数可以在图片内的区域当中或多张图片当中高效共享。在h.266/vvc wd的当前的设计中,采用自适应参数集(aps)来首先对alf参数进行封装。期望
要在aps中编码具有在图片当中(或者甚至在图片中的区域当中)频繁变化的特征的更多信息。这里就出现了一个问题,如何在aps中对参数进行编码,使得各种工具的参数可以灵活更新,而不会增加参数集的激活和管理的复杂性。
28.问题1:
29.如果按照传统方式在单个aps中编码所有参数,则出现重复编码信息的问题。具体地,假设工具a和工具b的参数在aps中编码。以下面的场景为例:随后的瓦片组(或等效地条带)使用与前面的编码瓦片组相同的工具a参数但不同的工具b参数。在这种情况下,编码器需要生成包含新工具b参数但重复的工具a信息的新aps,其中这种工具a信息导致比特的浪费。
30.问题2:
31.为了解决问题1,jctvc

g332提供了一种在单个条带头中将多个aps标识符以信号发送的方法。在解码过程中,如果标志引导工具信息等于1,则解码器激活多个aps,并由当前激活的aps中获得的信息覆盖先前激活的aps中获得的信息。jctvc

g332中的问题是具有条带头中的多个aps标识符,并具有额外的覆盖操作。从编码器实施方式的角度来看,编码器应始终注意aps中的编码工具参数,以确保解码器在按照上述设计激活多个aps时可以获得相同的工具参数,这给编码器带来了计算负担和额外的判断操作。
32.问题3:
33.另一种现有技术是针对在解码条带或瓦片组中使用的每个工具分别将aps以信号发送。以问题1为例,如果使用工具b对条带进行编码,则编码器在条带头中以信号发送与包含工具b信息的aps对应的aps标识符,而无论该aps是否仍包含工具a信息。假设在aps中,工具b参数呈现在工具a参数之后。这里的问题是,在解码过程中,在解析工具b参数之前解码器务必首先在激活的aps中解析工具a参数。也就是说,解码这个条带可能不需要工具a参数,并且解析工具a参数的操作浪费了解码器的计算资源。此外,另一个问题是在解码过程中只有激活参数集中的部分信息有效,打破了“激活参数中的参数有效”的一般概念和操作。
34.问题4:
35.为了解决问题1,jctvc

h0069提供了aps参考方法。第一aps可以通过信令ref_aps_id等于第一aps中的第二aps的标识符来参考第二aps。在条带头中,仅以信号发送一个aps标识符。在解码第一aps时,第二aps被激活以获取工具参数。问题是由aps参考方案链接的aps链增加了编码器和解码器实施方式的复杂性。编解码器务必维护参考关系以指导aps缓冲区的存储和更新,并且只能通过追踪具有多个aps激活的参考链来明确工具参数(也可能包括工具的启用标志)。另外,另一个问题是在解码过程中只有激活参数集中的部分信息有效,打破了“激活参数中的参数有效”的一般概念和操作。
36.问题5:
37.为了解决问题1,jctvc

h0505提供了一种aps设计,其在单个aps中仅呈现仅一个工具的参数。jctvc

h0505提供了组参数集(gps)来共同以信号发送aps标识符和其他参数集标识符(例如pps标识符)。在条带头中,以信号发送gps标识符以指示要被激活以解码该条带的参数集。jctvc

h0505设计的问题是处理新参数集(即gps)的复杂性增加。另一个问题在于以下事实,由于aps中的参数通常比其他参数集(例如pps)中的参数变化更频繁,因
此gps需要频繁地更新aps标识符,这导致了没有逐图变化的gps中的其他信息(例如pps标识符)的重复编码。第三个问题在于,当aps中的一个或多个工具可以适应图片的区域时,不同的aps将被应用于单个图片中的不同区域,这也肯定地导致gps中pps标识符的重复编码。gps中部分信息的上述两次重复编码也导致gps缓冲和参考的复杂管理。
38.为了有效地编码参数,在视频比特流中引入参数集作为数据单元,该视频比特流在解码部分、一个或多个图片中承载公共参数。参数集具有指定其参数集标识符的语法元素。通常,解码器在条带头(例如h.264/avc标准、h.265/hevc标准)或瓦片组头(在当前的h.266/vvc wd(工作草案)中)获得一个或可能多个参数集标识符。即,条带或瓦片组直接或间接参考此类参数集。在解码过程中,解码器激活参数集,其标识符等于条带或瓦片组参考的标识符。
39.在视频编解码器中,一种或多种编码工具或编码技术具有图片自适应或图片区域自适应的特征,例如自适应环路滤波器(alf)、缩放列表、样本自适应偏移(sao)等。参数集用于高效承载此类工具的参数,从而使此类参数可以在图片内的区域当中或多张图片当中高效共享。在h.266/vvc wd的当前的设计中,采用自适应参数集(aps)首先对alf参数进行封装。期望要在aps中编码具有在图片当中(或者甚至在图片中的区域当中)频繁变化的特征的更多信息。那么问题来了,如何在参数集中对参数进行编码,使得各种工具的参数可以灵活更新,而又不会增加参数集激活和管理的复杂性。这个问题在视频编解码器和比特流中的参数集的设计和实施方式中很常见。
40.根据本文描述的实施例的一个方面,提供了一种处理视频或图片的编码方法,包括:确定用于编码图片或图片区域的工具的工具参数;将标识符参数设置为等于与包含工具参数的参数集对应的参数集标识符;生成第一参数集,将第一参数集标识符分配给第一参数集,对与第一参数集中的工具对应的工具标志进行编码以等于以下值,其指示工具参数存在或工具被启用以用在对图片或图片区域进行编码中,并且将标识符参数编码在第一参数集中;其中,第一参数与包含工具参数的参数集类型相同;将第一参数集标识符编码在图片或图片区域的头中;使用工具参数对图片或图片区域进行编码。
41.根据本文公开的实施例的一个方面,提供了一种用于处理比特流以重构视频或图片的解码方法,包括:解析比特流以从包含对应于编码图片或编码图片区域的比特的数据单元中获得第一参数集标识符;激活第一参数集,其标识符等于第一参数集标识符;从第一参数集中获得工具标志;如果工具标志指示在解码编码图片或编码图片区域时与工具标志对应的工具的工具参数存在或与工具标志对应的工具被启用,则从第一参数集中获得第二参数集标识符;激活与第一参数集类型相同的第二参数集,其标识符等于第二参数集标识符;其中,第二参数集中的指示参数指示第二参数集中包含的工具参数仅为与工具标志对应的工具的工具参数;从第二参数集中获得工具参数;并且使用工具参数对编码图片或编码图片区域进行解码。
42.借由上述方法以及本文描述的其他技术,可以将各种工具的参数有效地编码在参数集中,并灵活地更新,而不会增加参数集的激活和管理的复杂性。
43.实施例1
44.图2示出了利用本公开方法对视频或图片进行编码的编码器的图。编码器的输入是视频,而输出是比特流。当视频包括图片的序列时,编码器以预设顺序(即,编码顺序)一
个接一个地处理图像。编码器顺序根据在编码器的配置文件中指定的预测结构确定。注意,视频中图片的编码顺序(对应于解码器端图片的解码顺序)可以与图片的显示顺序相同或不同。
45.划分单元201根据编码器的配置来划分输入视频中的图片。通常,可将图片划分为一个或多个最大编码块。最大编码块是在编码过程中最大所允许或配置的块并且通常是图片中的正方形区域。可以将图片划分为一个或多个瓦片,并且瓦片可以包含整数个最大编码块,或者非整数个最大编码块。一个选项是瓦片可以包含一个或多个条带。即,瓦片可以进一步被划分为一个或多个条带,并且每个条带可以包含整数个最大编码块,或者非整数个最大编码块。另一选项是条带包含一个或多个瓦片,或者,瓦片组包含一个或多个瓦片。即,图片中以特定顺序(例如瓦片的光栅扫描顺序)的一个或多个瓦片形成了瓦片组。此外,瓦片组还可以覆盖以左上瓦片和右下瓦片的位置表示的图片中的矩形区域。在以下描述中,“瓦片组”被用作示例。划分单元201可以被配置为使用固定图样对图片进行划分。例如,划分单元201将图片划分为瓦片组,并且每个瓦片组具有包含一行最大编码块的单个瓦片。另一个示例是划分单元201将图片划分为多个瓦片,并在图片中以光栅扫描顺序将瓦片形成为瓦片组。可替选地,划分单元201也可以采用动态图样将图片划分成瓦片组、瓦片和块。例如,为适应最大传输单元(mtu)大小的限制,划分单元201采用动态瓦片组划分方法,以确保每个瓦片组的编码比特数不超过mtu的限制。
46.图3是示出了将图片划分成瓦片组的示例的图。划分单元201将具有16乘8最大编码块的图片30(以虚线描绘)划分成8个瓦片300、310、320、330、340、350、360和370。划分单元201将图片30划分成3个瓦片组。瓦片组3000包含瓦片300,瓦片组3100包含瓦片310、320、330、340和350,瓦片组3200包含瓦片360和370。图3中的瓦片组以图30中的瓦片光栅扫描顺序形成。
47.图4是示出了将图片划分成瓦片组的示例的图。划分单元201将具有16乘8最大编码块(以虚线描绘)的图片40划分成8个瓦片400、410、420、430、440、450、460和470。划分单元201将图片40划分成2个瓦片组。瓦片组4000包含瓦片400、410、440和450,瓦片组4100包含瓦片420、430、460和470。瓦片组4000表示为左上瓦片400以及右下瓦片450,并且瓦片组4410表示为左上瓦片420和右下瓦片470。
48.一个或多个瓦片组或瓦片可以被称为图片区域。通常,将图片划分为一个或多个瓦片根据编码器配置文件来进行。划分单元201设置划分参数以指示将图片划分为瓦片的划分方式。例如,划分方式可以是将图片划分为(几乎)相等大小的瓦片。另一示例是划分方式可以指示行和/或列中的瓦片边界的位置,以促进灵活的划分。
49.划分单元201的输出参数指示图片的划分方式。
50.预测单元202确定编码块的预测样本。预测单元202包括块划分单元203,运动估计(me)单元204,运动补偿(mc)单元205,以及帧内预测单元206。预测单元202的输入是由划分单元201输出的最大编码块,以及与最大编码块相关联的属性参数,例如最大编码块在图片中、在瓦片组中和/或在瓦片中的位置。预测单元202将最大编码块划分为一个或多个编码块,还可以将其进一步划分为更小的编码块。可以应用一种或多种划分方法,包括四叉树、二元划分和三元划分。预测单元202确定在划分中获得的编码块的预测样本。可选地,预测单元202可以进一步将编码块划分为一个或多个预测块,以确定预测样本。预测单元202采
用经解码图片缓冲区(dpb)单元214中的一个或多个图片作为参考以确定编码块的帧间预测样本。预测单元202还可以将由加法器212输出的图片的重构部分用作参考以导出编码块的预测样本。预测单元202例如通过使用一般性的率失真优化(rdo)方法来确定编码块的预测样本以及用于导出预测样本的相关联的参数,其也是预测单元202的输出参数。
51.在预测单元202内部,块划分单元203确定编码块的划分。块划分单元203将最大编码块划分为一个或多个编码块,还可以将其进一步划分为更小的编码块。可以应用一种或多种划分方法,包括四叉树、二元划分和三元划分。可选地,块划分单元203可以进一步将编码块划分为一个或多个预测块,以确定预测样本。块划分单元203可以在确定编码块的划分中采用rdo方法。块划分单元203的输出参数包括指示编码块的划分的一个或多个参数。
52.me单元204和mc单元205利用来自dpb 214的一个或多个经解码图片作为参考图片,以确定编码块的帧间预测样本。me单元204构造了包含一个或多个参考图片的一个或多个参考列表,并且为编码块确定参考图片中的一个或多个匹配块。mc单元205使用匹配块中的样本来导出预测样本,并且计算编码块中的原始样本与预测样本之间的差(即,残差)。me单元204的输出参数指示匹配块的位置,包括参考列表索引、参考索引(refidx)、及运动矢量(mv)等,其中参考列表索引指示包含匹配块所位于的参考图片的参考列表,参考索引指示包含匹配块的参考列表中的参考图片,并且mv指示在同一坐标中编码块和匹配块的位置之间的相对偏移以表示图片中的像素的位置。mc单元205的输出参数为编码块的帧间预测样本,以及用于构造帧间预测样本的参数,例如,针对匹配块中的样本的加权参数,滤波器类型和用于滤波匹配块中的样本的参数。通常,可以将rdo方法联合地应用于me单元204和mc单元205,以获取率失真(rd)意义上的最佳匹配块以及两个单元的对应输出参数。
53.具体地且可选地,me单元204和mc单元205可以使用包含编码块的当前图片作为参考来获得编码块的帧内预测样本。在本公开中,帧内预测意味着仅将包含编码块的图片中的数据用作导出编码块的预测样本的参考。在这种情况下,me单元204和mc单元205使用当前图片中的重构部分,其中重构部分来自加法器212的输出。一个示例是,编码器分配图片缓冲区以(临时)存储加法器212的输出数据。编码器的另一种方法是保留dpb单元214中的特殊图片缓冲区以保持来自加法器212的数据。
54.帧内预测单元206使用包含编码块的当前图片的重构部分作为参考来获得编码块的帧内预测样本。帧内预测单元206将编码块的重构相邻样本用作用于导出编码块的帧内预测样本的滤波器的输入,其中该滤波器可以是插值滤波器(例如,用于在使用角度帧内预测时计算预测样本)或低通滤波器(例如,用于计算dc值),或跨分量过滤器以使用已经编码的(颜色)分量导出(颜色)分量的预测值。具体地,帧内预测单元206可以执行搜索操作以在当前图片中的重构部分的范围中获得编码块的匹配块,并且将匹配块中的样本设置为编码块的帧内预测样本。帧内预测单元206调用rdo方法来确定帧内预测模式(即,用于计算编码块的帧内预测样本的方法)和对应的预测样本。除了帧内预测样本之外,帧内预测单元206的输出还包括指示使用中的帧内预测模式的一个或多个参数。
55.加法器207被配置为计算编码块的原始样本和预测样本之间的差。加法器207的输出是编码块的残差。残差可以表示为n x m的二维矩阵,其中n和m是两个正整数,并且n和m可以是相同或不同的值。
56.变换单元208将残差作为其输入。变换单元208可以将一种或多种变换方法应用于
残差。从信号处理的角度来看,可以由变换矩阵来表示变换方法。可选地,变换单元208可以确定将形状和大小与编码块的形状和大小相同的矩形块(在本公开中,正方形块是矩形块的特殊情况)用作变换块以用于残差。可选地,变换单元208可以确定将残差划分为几个矩形块(也可以包括矩形块的宽度或高度是一个样本的特殊情况),并依次对这几个矩形执行变换操作,例如,根据默认顺序(例如,光栅扫描顺序)、预定义顺序(例如,与预测模式或变换方法相对应的顺序)、针对几个候选顺序的所选顺序。变换单元208可以确定对残差执行多次变换。例如,变换单元208首先对残差执行核心变换,并且然后对完成核心变换之后获得的系数执行二次变换。变换单元208可以利用rdo方法来确定变换参数,该变换参数指示在应用于残差块的变换处理中使用的执行方式,例如,将残差块划分为变换块,变换矩阵,多次变换等。变换参数被包括在变换单元208的输出参数中。变换单元208的输出参数包括变换该残差(例如,变换系数)后获得的数据和变换参数,该残差可以由二维矩阵表示。
57.量化单元209在变换单元208对残差进行变换之后,对由变换单元208输出的数据进行量化。量化单元209中使用的量化器可以是标量量化器和矢量量化器之一或两者。在大多数视频编码器中,量化单元209采用标量量化器。标量量化器的量化步骤由视频编码器中的量化参数(qp)表示。通常,在编码器和对应的解码器中预设置或预定义qp和量化步骤之间的相同映射。
58.qp的值(例如,图片级qp和/或块级qp)可以根据应用于编码器的配置文件来设置,或者可以由编码器中的编码器控制单元来确定。例如,编码器控制单元使用速率控制(rc)方法确定图片和/或块的量化步骤,并且然后根据qp和量化步骤之间的映射将量化步骤转换为qp。
59.量化单元209的控制参数是qp。量化单元209的输出是以二维矩阵形式表示的一个或多个经量化的变换系数(也称为“级别(level)”)。
60.逆量化210对量化209的输出执行缩放操作以获得重构系数。逆变换单元211根据来自变换单元208的变换参数,对来自逆量化210的重构系数进行逆变换。逆变换单元211的输出是重构残差。特别地,当编码器确定在编码块中跳过量化时(例如,编码器实施rdo方法以确定是否将量化应用于编码块),编码器通过绕过量化单元209和逆量化210而将变换单元208的输出数据引导至逆变换单元211。
61.加法器212将来自预测单元202的编码块的预测样本和重构残差作为输入,计算编码块的重构样本,并将重构样本放入缓冲区(例如图片缓冲区)中。例如,编码器分配图片缓冲区以(临时)存储加法器212的输出数据。编码器的另一种方法是在dpb 214中保留特殊图片缓冲区以保持来自加法器212的数据。
62.滤波单元213对解码图片缓冲区中的重构图片样本执行滤波操作,并输出解码图片。滤波单元213可以包括一个滤波器或数个级联滤波器。例如,根据h.265/hevc标准,滤波单元由两个级联滤波器构成:即,解块滤波器和样本自适应偏移(sao)滤波器。滤波单元213还包括自适应环路滤波器(alf)。滤波单元213还可包括神经网络滤波器。当图片中所有编码块的重构样本已经被存储在解码图片缓冲区中时,滤波单元213可以开始对图片的重构样本进行滤波,这可以被称为“图片层滤波”。可选地,滤波单元213的图片层滤波的另一种实施方式(称为“块层滤波”)是:如果在编码图片中的所有连续编码块中未将重构样本用作参考,则开始对图片中编码块的重构样本进行滤波。块层滤波不需要滤波单元213保持滤波
操作直到图片的所有重构样本可用为止,并且因此节省了编码器中线程当中的时间延迟。滤波单元213通过调用rdo方法来确定滤波参数。滤波单元213的输出是图片的经解码样本和滤波参数,该滤波参数包括滤波器的指示信息,滤波器系数,和滤波器控制参数等。
63.编码器将来自滤波单元213的经解码图片存储在dpb 214中。编码器可以确定应用于dpb 214的一个或多个指令,这些指令用于控制对dpb 214中的图片的操作,例如,将图片的时间长度存储在dpb 214中,以及从dpb 214输出图片等。在本公开中,这些指令被取为dpb 214的输出参数。
64.熵编码单元215对图片的一个或多个编码参数执行二值化和熵编码,以将编码参数的值转换为由二进制符号“0”和“1”组成的码字,并根据规范或标准将码字写成比特流。编码参数可以分类为纹理数据和非纹理。纹理数据是编码块的变换系数,并且非纹理数据是编码参数中除纹理数据以外的其他数据,包括编码器中单元的输出参数,参数集,头,及补充信息等。熵编码单元215的输出是符合规范或标准的比特流。
65.熵编码单元215从上述单元接收输出参数,并对需要在比特流中呈现的参数进行编码。在本公开中以及还在视频编码技术领域中,“工具”是指编码或解码的过程或单元。工具可以是相对较大的单元,诸如上述单元。工具也可以是相对详细的过程,诸如由编码方式(如merge、planar等)、滤波器(如deblocking、sao、alf、nn滤波器等)等所表示的过程。工具的“工具参数”是指用于编码器或解码器执行由工具指定的编码或解码操作的一个或多个参数。例如,合并模式的工具参数包括编码块的合并索引。alf的工具参数包括滤波器系数。
66.在编码过程中,工具可以适应一个或多个图片、一个或多个图片区域(例如瓦片、瓦片组)和一个或多个编码块。从工具参数的角度来看,如果工具适应一个或多个图片,则该工具的工具参数不会针对至少在图片中的所有块都更新。通常,当工具至少适应一个或多个图片区域时,熵编码单元215将在头或参数集中对该工具的工具参数进行编码,使得至少在图片区域中的编码块当中共享公共信息以保存工具参数的编码比特。
67.假设工具a和工具b是至少适应一个或多个图片区域的两个工具。工具a和工具b的示例可以是滤波单元213中使用的各种滤波器,并且也可以是其参数适应一个或多个图片区域(诸如缩放列表、参考图片集(rps)、参考图片列表(rpl)等)的过程。工具a和工具b的工具参数是在对图片或图片区域进行编码时确定出的。例如,滤波单元213确定滤波器的参数并将这些参数传递到熵编码单元215。
68.熵编码单元215在参数集中对工具a和工具b的工具参数进行编码。这样的参数集可以是序列参数集(sps)、图片参数集(pps)、自适应参数集(aps)或承载至少一个图片或图片区域的公共参数的其他参数集。图5是示出了用于表示参数集中的多个工具的参数的语法结构的示例的图。图5中粗体的语法是由比特流中存在的一个或多个比特的串表示的语法元素,并且u(n)指定使用n比特将值表示为无符号整数,其中n为自然数,并且可以是固定值或以取决于其他语法元素的值的方式变化的值。图5中的tool_a_parameter()和tool_b_parameter()是分别表示工具a和工具b的工具参数的两个数据结构。
69.图5中的语法元素的语义呈现如下。
70.parameter_set_id标识供其他语法元素参考的参数集。
71.info_type指定参数集中的信息类型。
72.tool_a_flag等于1指定使用工具a。tool_a_flag等于0指定不使用工具a。
73.tool_b_flag等于1指定使用工具b。tool_b_flag等于0指定不使用工具b。
74.可替选地,tool_a_flag和tool_b_flag的语义可以如下。
75.tool_a_flag等于1指定tool_a_parameter()的存在。tool_a_flag等于0指定缺少tool_a_parameter()。
76.tool_b_flag等于1指定tool_b_parameter()的存在。tool_b_flag等于0指定缺少tool_b_parameter()。
77.图6a

图6b示出了用于参考图片区域或图片的头中的工具参数的参数集的语法结构的示例。例如,图6a

图6b中的语法结构可以用在瓦片组的头中。
78.region_parameter_set_id的语义如下。
79.region_parameter_set_id指定正在使用的参数集的parameter_set_id值。其参数集标识符等于region_parameter_set_id的参数集将具有等于0的info_type。
80.在图6a中,region_parameter_set_id总是呈现在图片或图片区域的头中。在图6b中,图片或图片区域的头中region_parameter_set_id的存在以工具a和工具b中的至少一个是否被启用为条件。通常,熵编码单元215例如在sps中编码用于多个图片或编码视频序列的参数集中的tool_a_enable_flag和tool_b_enable。
81.使用图5和图6a

图6b中的语法结构,熵编码单元215对工具a和工具b的工具参数进行编码。特别地,如果编码器没有更新任何工具参数,则熵编码单元215设置region_parameter_set_id等于现有参数集的标识符。
82.步骤101:熵编码单元215将标识符参数设置为等于与包含工具参数的参数集对应的参数集标识符。
83.熵编码单元215检查工具参数是否与现有参数集中的工具参数相同。如果是,则熵编码单元215将标识符参数设置为等于与包含工具参数的现有参数集相对应的参数集标识符。编码器中的示例实施方式是首先检查已经存在的工具参数是否适合对图片或图片区域进行编码。例如,熵编码单元215发现工具a参数与现有参数集中的那个相同,其参数集标识符等于1。
84.否则,熵编码单元215生成第二参数集,为第二参数集分配第二参数集标识符,将第二参数集中的指示参数设置为指示第二参数集中包含的工具参数只是工具参数的值,并且在第二参数集中编码工具参数。例如,熵编码单元215根据图5中的语法结构为工具b参数生成如下的参数集:
[0085][0086]
步骤102:熵编码单元215生成第一参数集,为第一参数集分配第一参数集标识符,对与第一参数集中的工具对应的工具标志进行编码以等于以下值,其指示该工具参数存在
或者该工具被启用在对图片或图片区域进行编码中,并对第一参数集中的标识符参数进行编码;其中第一参数与包含工具参数的参数集类型相同。请注意,如果nal(网络抽象层)单元中包含的原始字节序列有效载荷(rbsp)数据结构的类型具有指定相同值的nal单元类型(即nal_unit_type)的语法元素,则两个参数集类型相同。解析单元701从第二参数集中获得工具参数。
[0087]
熵编码单元215根据图5中的语法结构为工具a和工具b的工具参数生成第一参数集如下:
[0088][0089]
步骤103:熵编码单元215对图片区域或图片的头中的第一参数集标识符进行编码。
[0090]
熵编码单元215将图6a

图6b中的region_parameter_set_id设置为等于3,并且在图片或图片区域(例如,瓦片组或瓦片)的头中编码region_parameter_set_id。
[0091]
注意,编码器可以在对图片或图片区域进行编码的过程中调用步骤101、102和103。编码器然后使用工具参数对图片或图片区域进行编码。熵编码单元215还将上面提到的数据的编码比特写入比特流中。
[0092]
特别地,如果工具a和工具b的参数都已经存在于现有参数集中,则使用上面提到的步骤101、102和103中的处理工具a参数的方法对参数集中的工具参数进行编码。
[0093]
特别地,如果现有参数集中不存在工具a和工具b的参数,则使用上面提到的步骤101、102和103中的处理工具b参数的方法对参数集中的工具参数进行编码。
[0094]
实施例2
[0095]
图7是示出了解码器利用本公开的方法对由上述实施例1中的编码器生成的比特流进行解码的图。解码器的输入为比特流,并且解码器的输出为通过对比特流进行解码而获得经解码的视频或图片。
[0096]
解码器中的解析单元701对输入比特流进行解析。解析单元701使用标准中指定的熵解码方法和二值化方法将由一个或多个二进制符号(即“0”和“1”)组成的比特流中的每个码字转换为对应参数的数值。解析单元701还根据一个或多个可用参数导出参数值。例如,当比特流中具有标志,其指示解码块是图片中的第一个解码块时,解析单元701将地址参数(其指示图片区域的第一个解码块的地址)设置为0。
[0097]
在解析单元701的输入比特流中,用于表示工具参数的语法结构在图5和图6a

图6b中示出。
[0098]
图5是示出了用于表示参数集中的多个工具的参数的语法结构的示例的图。图5中的语法元素的语义呈现如下。
[0099]
parameter_set_id标识供其他语法元素参考的参数集。
[0100]
info_type指定参数集中的信息类型。
[0101]
tool_a_flag等于1指定使用工具a。tool_a_flag等于0指定不使用工具a。
[0102]
tool_b_flag等于1指定使用工具b。tool_b_flag等于0指定不使用工具b。
[0103]
可替选地,tool_a_flag和tool_b_flag的语义可以如下。
[0104]
tool_a_flag等于1指定tool_a_parameter()的存在。tool_a_flag等于0指定缺少tool_a_parameter()。
[0105]
tool_b_flag等于1指定tool_b_parameter()的存在。tool_b_flag等于0指定缺少tool_b_parameter()。
[0106]
图6a

图6b示出了用于在图片或图片区域的头中参考工具参数的参数集的语法结构的示例。例如,图6a

图6b中的语法结构可以在瓦片组的头中。
[0107]
region_parameter_set_id的语义如下。
[0108]
region_parameter_set_id指定正在使用的参数集的parameter_set_id的值。其参数集标识符等于region_parameter_set_id的参数集将具有等于0的info_type。
[0109]
在图6a中,region_parameter_set_id总是呈现在图片或图片区域的头中。在图6b中,图片或图片区域的头中region_parameter_set_id的存在以工具a和工具b中的至少一个是否被启用为条件。
[0110]
在解码过程中,解析单元701对比特流进行解析,以从包含与编码图片或编码图片区域对应的比特的数据单元中获得第一参数集标识符。对应于使用图6a

6b中的语法结构的编码器的前述示例,解析单元701从编码图片或编码图片区域(例如瓦片组或瓦片)的头获得region_parameter_set_id(等于3)。
[0111]
解析单元701激活第一参数集,其标识符等于第一参数集标识符。如对应于使用图5中的语法结构的编码器的上述示例,在其参数标识符等于3的第一参数集中,解析单元701获得语法元素的值如下:
[0112][0113]
如果工具标志指示与工具标志对应的工具的工具参数存在或者与工具标志对应的工具被启用在对编码图片或编码图片区域进行解码中,则解析单元701获得来自第一参数集的第二参数集标识符。然后解析单元701激活与第一参数集类型相同的第二参数集,其标识符等于第二参数集标识符;其中,第二参数集中的指示参数指示出第二参数集中包含的工具参数仅为与工具标志对应的工具的工具参数。请注意,如果网络抽象层(nal)单元中包含的原始字节序列有效载荷(rbsp)数据结构的类型具有指定相同值的nal单元类型(即nal_unit_type)的语法元素,则两个参数集类型相同。解析单元701从第二参数集中获得工具参数。
[0114]
在上述示例中,关于工具a,解析单元701首先检查tool_a_flag的值。由于tool_a_flag等于1,所以解析单元701从parameter_set_id等于3的参数集中获得tool_a_parameter_set_id的值(即等于1)。解析单元701激活其参数集标识等于1的参数集,并且获得工具a参数。
[0115]
关于工具b,解析单元701然后检查从parameter_set_id等于3的参数集获得的tool_b_flag的值。由于tool_b_flag等于1,所以解析单元701从parameter_set_id等于3的参数集获得tool_b_parameter_set_id的值(即等于2)。解析单元701激活其参数集标识为1的参数集,并且获得工具b参数。
[0116]
另外,如果parameter_set_id等于3的参数集中的tool_a_flag(或tool_b_flag)指示工具a(或工具b)是否用于解码参考parameter_set_id等于3的参数集的编码图片或编码图片区域,则解析单元701也将这个标志包含在工具a(或工具b)参数中。
[0117]
解析单元701将工具a参数和工具b参数传递给解码器中的其他单元,以使用这些工具参数对编码图片或编码图片区域进行解码。
[0118]
解析单元701可以将用于导出解码块的预测样本的一个或多个预测参数传递给预测单元702。在本公开中,预测参数可以包括上述编码器中的划分单元201和预测单元202的输出参数。
[0119]
解析单元701可以将用于重构解码块的残差的一个或多个残差参数传递给缩放单元705和变换单元706。在本公开中,该残差参数可以包括变换单元208和量化单元209的输出参数以及一个或多个经量化系数(例如,“级别”),其由量化单元209在上述编码器中输
出。
[0120]
解析单元701将滤波参数传递给滤波单元708,以对图片中的重构样本进行滤波(例如,环路滤波)。
[0121]
预测单元702可以根据预测参数来导出解码块的预测样本。预测单元702由mc单元703和帧内预测单元704构成。预测单元702的输入还可以包括从加法器707输出的当前解码图片的重构部分(其未被滤波单元708处理)以及dpb 709中的一个或多个经解码图片。
[0122]
当预测参数指示帧间预测模式被用于导出解码块的预测样本时,预测单元702采用与前述编码器中的me单元204相同的方法来构造一个或多个参考图片列表。参考列表包含来自dpb 709的一个或多个参考图片。mc单元703根据参考列表、参考索引和预测参数中的mv的指示来确定用于解码块的一个或多个匹配块,并且使用与前述编码器中的mc单元205中相同的方法来获得解码块的帧间预测样本。预测单元702输出帧间预测样本作为解码块的预测样本。
[0123]
具体地且可选地,mc单元703可以使用包含解码块的当前解码图片作为参考来获得解码块的帧内预测样本。在本公开中,帧内预测意味着仅将包含编码块的图片中的数据用作导出编码块的预测样本的参考。在这种情况下,mc单元703使用当前图片中的重构部分,其中,重构部分来自加法器707的输出,并且不被滤波单元708处理。例如,解码器分配图片缓冲区以(临时)存储加法器707的输出数据。解码器的另一种方法是预留dpb 709中的特殊图片缓冲区以保持来自加法器707的数据。
[0124]
当预测参数指示帧内预测模式用于导出解码块的预测样本时,预测单元702采用与前述编码器中的帧内预测单元206相同的方法来从解码块的重构的相邻样本中确定帧内预测单元704的参考样本。帧内预测单元704获得帧内预测模式(即,dc模式,平面模式或角度预测模式),并且在帧内预测模式的指定处理之后,使用参考样本来导出解码块的帧内预测样本。注意,在前述编码器(例如,帧内预测单元206)和解码器(例如,帧内预测单元704)中实施了帧内预测模式的相同导出处理。具体地,如果预测参数指示当前解码图片(包含解码块)中针对解码块的匹配块(包括其位置),则帧内预测单元704使用匹配块中的样本来导出解码块的帧内预测样本。例如,帧内预测单元704将帧内预测样本设置为等于匹配块中的样本。预测单元702将解码块的预测样本设置为等于由帧内预测单元704输出的帧内预测样本。
[0125]
解码器将qp(包括亮度qp和色度qp)和经量化系数传递给缩放单元705,以用于处理逆量化以获取重构系数作为输出。解码器将来自缩放单元705的重构系数和残差参数中的变换参数(即,前述编码器中的变换单元208的输出中的变换参数)馈送到变换单元706中。具体地,如果残差参数指示在对块进行解码时跳过缩放,则解码器通过绕过缩放单元705来将残差参数中的系数指引到变换单元706。
[0126]
变换单元706在标准中指定的变换处理后对输入系数执行变换操作。变换单元706中使用的变换矩阵与前述编码器中的逆变换单元211中使用的变换矩阵相同。变换单元706的输出是解码块的重构残差。
[0127]
通常,由于在标准中仅指定解码处理,因此从视频编码标准的角度出发,将解码处理中的处理和相关矩阵指定为标准文本中的“变换处理”和“变换矩阵”。因此,在本公开中,关于解编码器的描述将实施标准文本中指定的变换处理的单元命名为“变换单元”,以符合
标准。然而,基于将解码处理视为编码的逆处理的考虑,该单元始终可以命名为“逆变换单元”。
[0128]
加法器707将变换单元706的输出中的重构残差和预测单元702的输出中的预测样本作为输入数据,计算解码块的重构样本。加法器707将重构样本存储到图片缓冲区中。例如,解码器分配图片缓冲区以(临时)存储加法器707的输出数据。解码器的另一种方法是在dpb 709中预留特殊图片缓冲区,以保持来自加法器707的数据。
[0129]
解码器将滤波参数从解析单元701传递到滤波单元708。用于滤波单元708的滤波参数与前述编码器中的滤波单元213的输出中的滤波参数相同。滤波参数包括要使用的一个或多个滤波器的指示信息、滤波器系数和滤波控制参数。滤波单元708使用滤波参数对存储在解码图片缓冲区中的图片的重构样本执行滤波处理,并输出经解码图片。滤波单元708可以由一个滤波器或多个级联滤波器组成。例如,根据h.265/hevc标准,滤波单元由两个级联滤波器组成:即,解块滤波器和样本自适应偏移(sao)滤波器。滤波单元708可以包括自适应环路滤波器(alf)。滤波单元708还可包括神经网络滤波器。当图片中的所有编码块的重构样本已经被存储在解码图片缓冲区中时,滤波单元708可以开始对图片的重构样本进行滤波,这可以被称为“图片层滤波”。可选地,用于滤波单元708的图片层滤波的替代实施方式(称为“块层滤波”)是:如果在对图片中的所有连续编码块进行解码时未将重构样本用作参考,则开始对图片中的编码块的重构样本进行滤波。块层滤波不需要滤波单元708来保持滤波操作直到图片的所有重构样本可用为止,从而节省了解码器中线程之间的时间延迟。
[0130]
解码器将由滤波单元708输出的解码图片存储在dpb 709中。此外,解码器可以根据由解析单元701输出的一个或多个指令,对dpb 709中的图片执行一个或多个控制操作,例如,图片的时间长度存储在dpb 709中,和从dpb 709输出图片,等等。
[0131]
实施例3
[0132]
图8是示出了实施本公开中的方法的比特流处理器的示例的图。
[0133]
可选地,比特流处理器可以被配置为提取器,其从输入比特流中提取子比特流。提取器的输入之一是由上述图2中的编码器生成的比特流。提取器的另一个输入是应用数据,其指示用于提取的目标图片区域。提取器的输出是可由图7中的上述解码器解码的子比特流。如果是进一步可提取的,则该子比特流也可以是提取器的输入比特流。
[0134]
可选地,比特流处理器可以被配置为拼接器,其将两个或多个比特流拼接以形成拼接的比特流。拼接器的输入之一是由上述图2中的编码器生成的两个或多个比特流。拼接器的另一个输入是应用数据,其指示如何在与拼接的比特流的解码图片对应的图片中呈现与输入流的解码图片对应的图片。拼接器的输出是拼接的比特流,其可由图7中的前述解码器解码。该拼接的比特流也可以是拼接器的输入比特流。
[0135]
此外,来自提取器的子比特流可以是拼接器的输入比特流,并且拼接的比特流可以是提取器的输入比特流。
[0136]
图5和图6a

图6b中的语法结构用于提取器和拼接器中涉及的比特流。图5中语法元素的语义如下。
[0137]
parameter_set_id标识供其他语法元素参考的参数集。
[0138]
info_type指定参数集中的信息类型。
[0139]
tool_a_flag等于1指定tool_a_parameter()的存在。tool_a_flag等于0指定缺少
tool_a_parameter()。
[0140]
tool_b_flag等于1指定tool_b_parameter()的存在。tool_b_flag等于0指定缺少tool_b_parameter()。
[0141]
图6a

图6b中region_parameter_set_id的语义如下。
[0142]
region_parameter_set_id指定正在使用的参数集的parameter_set_id的值。其参数集标识符等于region_parameter_set_id的参数集的info_type将等于0。
[0143]
提取器的示例实施例:
[0144]
提取器的基本功能是从原始比特流形成子比特流。例如,用户选择高分辨率视频中的区域以在他的智能手机上显示该区域,然后智能手机将应用数据发送到远程设备(例如,远程服务器)或内部处理单元(例如,安装在其上的软件程序)以请求与所选区域(即目标图片区域)相对应的媒体数据。远程设备或内部处理单元上的提取器(或等效处理单元)从与原始高分辨率视频相对应的比特流中提取与目标图片区域相对应的子比特流。另一个示例是头戴式设备(hmd)检测观看者的当前视口,并请求用于呈现该视口的媒体数据。类似于先前的示例,hmd还生成应用数据,该应用数据指示视频图片中覆盖检测到的视口的最终呈现区域(即目标图片区域)的区域,并将该应用数据发送到远程设备或其内部处理单元。远程设备或内部处理单元上的提取器(或等效处理单元)从与覆盖更宽呈现视口的视频相对应的比特流中提取与目标图片区域相对应的子比特流。
[0145]
在该实施例中,示例输入比特流是由前述编码器通过对划分成如图4中示出的两个瓦片组的图片进行编码而生成的比特流。使这两个瓦片组可独立解码。也就是说,解码瓦片组不参考其他瓦片组的任何信息。
[0146]
在提取器的输入比特流中,仅使用工具a对瓦片组4000进行解码,并且仅使用工具b对瓦片组4100进行解码。如在语义上,参数集中的tool_a_flag和tool_b_flag指示工具a参数和工具b参数是否分别在参数集中呈现,编码器生成单个参数集以由瓦片组参考来用于填充工具参数,如下所示:
[0147][0148]
在瓦片组4000和4100的两个头中,region_parameter_set_id被设置为等于0。指示工具是否用于解码瓦片组的标志在瓦片组头、其他参数集或补充信息中可用。
[0149]
解析单元801运行与解析单元701中的处理类似的处理以确定瓦片组4000和4100
分别参考的参数集。针对每个瓦片组,解析单元801还解析标志,该标志指示在解码瓦片组时使用的工具是否在瓦片组头、其他参数集或补充信息中可用。此外,解析单元801还解析输入比特流以从输入比特流中的一个或多个数据单元(例如,参数集数据单元)中获得瓦片组参数。瓦片组参数指示将图片划分为瓦片组以及相应地可能具有一个或多个瓦片标识符的瓦片的方式。解析单元801将工具参数信息、瓦片组参数以及用于确定进行提取的目标瓦片的其他必要数据(例如图片宽度和高度)放入数据流80中,并将数据流80发送到控制单元802。在必要时在生成子比特流的过程中,解析单元801还解析输入比特流,并经由数据流81将其他数据转发给形成单元803。解析单元801还在数据流81中包括输入比特流。
[0150]
注意,本公开中的数据流是指软件实施方式中的功能的输入参数和返回参数、硬件实施方式中的总线上的数据传输及存储单元当中的数据共享(还包括寄存器当中的数据共享)。
[0151]
控制单元802从其应用数据的输入获得目标图片区域,包括目标图片区域在图片中的位置和大小。控制单元802从数据流80获得瓦片组参数以及图片的宽度和高度。控制单元802确定位于目标图片区域中的一个或多个目标瓦片组或瓦片。在这个示例中,假设目标图片区域是瓦片组4000。控制单元802将目标瓦片组的地址(例如图片40中的瓦片组4000的第一瓦片的地址)和其他信息(例如目标图片区域targetpicwidth和targetpicheight的大小)放入数据流82中。
[0152]
形成单元803接收数据流81和82,从数据流81中转发的输入比特流中提取数据单元,必要时根据目标图片区域的新参数生成新的参数集,并且然后通过组合提取的数据单元和参数集形成子比特流。形成单元803包括提取单元804和生成单元805。当提取单元804检测到其地址等于瓦片组4000的瓦片组时,提取单元804从输入比特流中提取该瓦片组的数据单元。提取单元804还提取由瓦片组4000参考的一个或多个参数集。
[0153]
生成单元805通过拼接瓦片组4000的所提取数据单元和一个或多个参数集数据单元来生成输出子比特流。在需要时,生成单元805还对瓦片组头执行改写操作,包括瓦片组地址、参数集标识符等。在本示例中,由于仅使用工具a对瓦片组4000进行解码,因此生成单元805将参数集改写为其参数集标识符等于0,以去除在解码瓦片组4000中未使用的工具b参数(即,设置tool_b_flag等于0),如下所示。
[0154][0155][0156]
另外,生成单元805还从由提取单元804转发的比特流中去除包含工具b参数的参
数集。生成单元805去除info_type等于2的一个或多个参数集的数据单元。注意,这样的去除操作可以也可以在提取单元804而不是生成单元805中实施。
[0157]
形成单元803根据视频编码标准的指定比特流结构布置数据单元以形成子比特流。形成单元803的输出是子比特流,其可由前述图7中的解码器解码。
[0158]
拼接器的示例实施例:
[0159]
拼接器的基本功能是从两个或更多个输入比特流形成比特流。一个示例是立体视频应用,例如以帧兼容类型(以左右类型为例)360度全向视频。在基于视场(fov)的流媒体中,将与覆盖观看者的当前视口的图片区域对应的比特流发送到目标设备进行渲染。这样的比特流将由以用于左视图的帧兼容格式的图片的左半部分的左图片区域和以用于右视图的帧兼容格式的图片的右半部分的右图片区域形成。拼接器将左图片区域和右图片以帧兼容格式(例如左右类型)组合,形成新的经拼接比特流。
[0160]
假设图4中的图片40是经拼接比特流的图片。瓦片组4000对应于左图片区域,并且瓦片组4100对应于右图片区域。在解码瓦片组4000时,仅使用工具a。用于左视图的瓦片组4000的参数集如下。
[0161][0162][0163]
在解码瓦片组4100中,仅使用工具a。用于右视图的瓦片组4100的参数集如下。
[0164][0165]
解析单元801运行与解析单元701中的处理类似的处理,以确定瓦片组4000和4100分别参考的参数集。在该示例中,输入比特流可以是从与帧兼容的360度全向立体视频比特
流中提取的两个比特流。对于每个瓦片组,解析单元801还解析标志,该标志指示在解码瓦片组时使用的工具是否在瓦片组头、其他参数集或补充信息中可用。解析单元801将工具参数信息、瓦片组参数以及用于确定经拼接比特流的参数(例如图片宽度和高度)的其他必要数据放入数据流80中,并将数据流80发送到控制单元802。解析单元801还解析输入比特流,并在必要时在拼接过程中经由数据流81将其他数据转发至形成单元803。解析单元801还包括数据流81中的输入比特流。
[0166]
控制单元802从其应用数据的输入中获得目标图片,包括左图片和右图片在目标图片中的位置和大小。控制单元802从数据流80中获得左图片和右图片的宽度和高度。在这个示例中,控制单元802将左图片的位置确定为图4中的瓦片组4000,并且将右图片的位置确定为瓦片组4100。控制单元802将目标瓦片组的位置(例如图片40中瓦片组4000和4100的第一瓦片的地址)和其他信息(例如目标图片targetpicwidth和targetpicheight的大小)放入数据流82中。
[0167]
形成单元803接收数据流81和82,从数据流81中转发的输入比特流中读取数据单元,必要时根据目标图片的新参数生成新的参数集,并且然后通过组合数据单元和参数集形成经拼接比特流。形成单元803包括提取单元804和生成单元805。当提取单元804检测到其地址等于瓦片组4000的瓦片组时,提取单元804从输入比特流中提取该瓦片组的数据单元。提取单元804还提取瓦片组4000所参考的一个或多个参数集。具体地,在本示例中,由于左图片的输入比特流仅包含瓦片组4000,所以提取单元804无需对此输入比特流执行进一步的提取操作。提取单元804对瓦片组4100执行相同的操作。
[0168]
生成单元805通过拼接瓦片组4000、瓦片组4100和一个或多个参数集数据单元的提取数据单元来生成输出比特流。在需要时,生成单元805还对瓦片组头执行改写操作,包括瓦片组地址、参数集标识等。在本示例中,生成单元805将瓦片组地址改写到瓦片组4000和4100的头中。生成单元805生成具有目标图片大小的新sps和pps和指示如图4中示出的瓦片组划分的瓦片组参数,以及其他必要的参数(例如简档/层/级别)。生成单元805将瓦片组4000和4100的数据单元放入同一访问单元中。生成单元805生成工具参数的新参数集如下。
[0169]
生成单元805将瓦片组头中的参数集标识符设置为新生成的参数集的对应值。
[0170][0171]
形成单元803根据视频编码标准的指定比特流结构布置数据单元以形成比特流。
形成单元803的输出为经拼接比特流,可由前述图7中的解码器进行解码。此外,经拼接比特流也可以作为前述提取器的输入,以得到仅包含瓦片组4000或4100的子比特流。经拼接比特流也可以是这个拼接器的输入比特流之一,以生成新的经拼接比特流。
[0172]
注意,在该示例中,左图片区域和右图片均来自帧兼容立体360度全向视频比特流的单个原始比特流,该原始比特流中不存在重复的参数集标识符。如果左图片区域和右图片区域来自两个单独的比特流,则用于形成经拼接比特流的参数集可能具有重复的参数集标识符。为了处理这种情况,拼接器将参数集标识符布置到参数集,并在参数集和瓦片组头中改写对应的语法元素。
[0173]
实施例4
[0174]
图9是示出了至少包含如图2中示出的示例视频编码器或图片编码器的第一示例设备的图。
[0175]
获取单元901捕获视频和图片。获取单元901可以配备有一个或多个相机以拍摄自然场景的视频或图片。可选地,获取单元901可以以用于得到深度视频或深度图片的相机来实施。可选地,获取单元901可以包括红外相机的组件。可选地,获取单元901可以配置有遥感相机。获取单元901还可以是通过使用放射线扫描对象来生成视频或图片的装置或设备。
[0176]
可选地,获取单元901可以对视频或图片执行预处理,例如,自动白平衡、自动聚焦、自动曝光、背光补偿、锐化、去噪、拼接、上采样/下采样、帧率转换、虚拟视图合成等)。
[0177]
获取单元901还可从另一设备或处理单元接收视频或图片。例如,获取单元901可以是代码转换器中的组件单元。代码转换器将一个或多个经解码(或部分经解码)图片馈送到获取单元901。另一示例是,获取单元901从另一设备,经由与该设备的数据链路获取视频或图片。
[0178]
注意,除了视频和图片之外,获取单元901还可以用于捕获其他媒体信息,例如,音频信号。获取单元901还可以接收人工信息,例如,字符、文本、以及计算机生成的视频或图片等。
[0179]
编码器902是图2中示出的示例编码器或图9中示出的源设备的实施方式。编码器902的输入为由获取单元901输出的视频或图片。编码器902对视频或图片进行编码,并输出所生成的视频或图片比特流。
[0180]
存储/发送单元903从编码器902接收视频或图片比特流,并且对该比特流执行系统层处理。例如,存储/发送单元903根据传输标准和媒体文件格式(例如,mpeg

2ts、isobmff、dash、mmt等)对比特流进行封装。存储/发送单元903将封装后获得的传输流或媒体文件存储在第一示例设备的存储器或磁盘中,或者经由有线或无线网络发送该传输流或媒体文件。
[0181]
注意,除了来自编码器902的视频或图片比特流之外,存储/发送单元903的输入还可以包括音频、文本、图像,和图形等。存储/发送单元903通过封装这样的不同类型的媒体比特流来生成传输或媒体文件。
[0182]
在本实施例中描述的第一示例设备可以是能够在视频通信的应用中生成或处理视频(或图片)比特流的设备(例如,移动电话、计算机、媒体服务器、便携式移动终端、数码相机、广播设备、内容分发网络设备(cdn)、监控摄像头、视频会议设备等)。
[0183]
实施例5
[0184]
图10是示出了至少包含如图7中示出的示例视频解码器或图片解码器的第二示例设备的图。
[0185]
接收单元1001通过从有线或无线网络获得比特流、通过读取电子设备中的存储器或磁盘、或通过经由数据链路从其他设备获取数据来接收视频或图片比特流。
[0186]
接收单元1001的输入还可包括包含视频或图片比特流的传输流或媒体文件。接收单元1001根据传输或媒体文件格式的规范从传输流或媒体文件中提取视频或图片比特流。
[0187]
接收单元1001将视频或图片比特流输出并传递给解码器1002。注意,除了视频或图片比特流,接收单元1001的输出还可以包括音频比特流、字符、文本、图像、图形等。接收单元1001在第二示例设备中将输出传递至对应处理单元。例如,接收单元1001将输出音频比特流传递给该设备中的音频解码器。
[0188]
解码器1002是图7中示出的示例解码器的实施方式。编码器1002的输入为由接收单元1001输出的视频或图片比特流。解码器1002对视频或图片比特流进行解码,并输出经解码的视频或图片。
[0189]
呈现单元1003从解码器1002接收经解码的视频或图片。呈现单元1003将经解码的视频或图片呈现给观看者。呈现单元1003可以是第二示例设备的组件,例如,屏幕。呈现单元1003也可以是与第二示例设备分离的、与第二示例设备有数据链路的设备,例如投影仪、监视器、电视机等。可选地,呈现1003在将经解码的视频或图片呈现给观看者之前对其进行后处理,例如,自动白平衡、自动聚焦、自动曝光、背光补偿、锐化、去噪、拼接、上采样/下采样、帧率转换、虚拟视图合成等。
[0190]
注意,除了经解码的视频或图片之外,呈现单元1003的输入可以是来自第二示例设备的一个或多个单元的其他媒体数据,例如,音频、字符、文本、图像、图形等。呈现单元1003的输入还可以包括人造数据,例如,本地教师在幻灯片上绘制的线条和标记,以引起远程教育应用中的注意。呈现单元1003将不同类型的媒体组合在一起,并且然后将该组合呈现给观看者。
[0191]
在本实施例中描述的第二示例设备可以是能够在视频通信的应用中解码或处理视频(或图片)比特流的设备,例如,移动电话,计算机,机顶盒,电视机,hmd,监视器,媒体服务器,便携式移动终端,数码相机,广播设备,内容分发网络设备(cdn),监视器件,视频会议设备等。
[0192]
实施例6
[0193]
图11是示出了包含图9中的第一示例设备和图10中的第二示例设备的电子系统的图。
[0194]
服务设备1101是图9中的第一示例设备。
[0195]
存储介质/传输网络1102可以包括设备或电子系统的内部存储器资源,可经由数据链路访问的外部存储器资源,和/或由有线和/或无线网络组成的数据传输网络。存储介质/传输网络1102为服务设备1101中的存储/发送单元903提供存储资源或数据传输网络。
[0196]
目的地设备1103是图10中的第二示例设备。目的地设备1103中的接收单元1001从存储介质/传输网络1102接收视频或图片比特流、包含视频或图片比特流的传输流或包含视频或图片比特流的媒体文件。
[0197]
图1a是示出由视频解码器实施的用于解码视频比特流的示例方法100的流程图。
方法100包括从包含对应于编码视频区域的比特的数据单元获得(102)第一参数集标识符,从对应于第一参数集标识符的第一参数集中获得(104)工具标志,从工具标志确定(106)与工具标志对应的工具的工具参数存在或启用以用于对编码视频区域进行解码,其中工具对应于视频编码技术,基于确定获得(108)第二参数集标识符。例如,可以从第一参数集获得第二参数集。方法100包括从对应于第二参数集标识符的第二参数集获得(110)工具参数。在一些实施例中,指示参数例如其中第二参数集中的指示参数指示第二参数集中包含的工具参数仅为与工具标志对应的工具的工具参数。例如,关于图5、图6a、图6b描述的info_type字段可以用作指示参数。与其中使用相同的单个自适应参数集以信号发送多个工具的自适应参数集相比,指示参数可用于具体指示参数集中呈现的单个工具的参数。方法100包括使用工具参数解码(112)视频区域。
[0198]
在一些实施例中,方法100可以被实施以解析如图5、图6a

图6b和本文讨论的实施例的示例所示出的比特流语法。如本文档中所讨论的,在一些实施例中,info_type字段可以用于解析特定工具参数,该特定工具参数已被用信号发送以用于视频区域的解码。例如,如示例实施例所强调的,可以简化比特流解析(和编码)以允许工具参数的有效和个性化的信号发送。
[0199]
在一些实施例中,方法100可用于获得和使用用于视频解码的多个参数。例如,方法100还可以包括从第一参数集获得另一工具标志,从该工具标志决定与另一工具标志相对应的另一工具的另一工具参数存在或启用以用于对编码视频区域进行解码,基于该决定,获得第三参数集标识符,从与第三参数集标识符对应的第三参数集中获得另一工具参数。这里,对视频区域进行解码包括使用另一工具参数对视频区域进行解码。
[0200]
在一些实施例中,比特流可以被构造成使得包含第二参数集、第三参数集和第一参数集的网络抽象层(nal)单元具有相同的nal单元类型。例如,包含第三参数集的nal单元作为相同的nal单元类型。在一些实施例中,网络抽象层单元类型由nal单元头中的固定长度码字指示。
[0201]
在一些实施例中,获得第二参数集标识符包括从第一参数集获得第二参数集标识符。
[0202]
图1b是视频编码的示例方法150的流程图。方法150包括确定(152)用于对视频区域进行编码的工具的工具参数,其中该工具表示视频编码技术,生成(154)由第一参数集标识符标识的第一参数集,在第一参数集中包括(156)与工具对应的工具标志,其中工具标志被设置为指示工具参数存在或启用以用于对视频区域进行编码的值,使用第二参数集标识符将工具参数包括(158)在第一参数集中,将第一参数集标识符编码(160)在视频区域的头中,并且使用工具参数对视频区域进行编码(162)。
[0203]
在各种实施例中,方法150可用于构建在图5、图6a和图6b中部分描绘并且在本文档中描述的示例实施例1

5中讨论的数据单元。所公开的比特流的语法允许使用在此描述的各种字段的针对视频区域的工具参数的独立信令。
[0204]
关于方法100、150,视频区域可以对应于整个视频图片。在某些情况下,视频区域可小于视频区域。例如,多个视频区域可以一起构成整个视频图片。
[0205]
关于方法100、150,在一些实施例中,视频编码技术可以基于编码视频区域中的多个编码块所共有的编码参数。本文档中提供了视频编码技术或工具的各种示例。
[0206]
在一些实施例中,方法150可以包括:在工具参数与现有工具参数集中的现有工具参数相同的情况下,设置第二参数集标识符等于现有参数集的参数集标识符,并且在工具参数与任何现有参数集中的任何现有工具参数不同的情况下,使用第二参数集标识符生成具有与第一参数集标识符不同的值。
[0207]
在一些实施例中,可以执行方法150以使用和以信号发送比特流中的多个参数。例如,该方法包括在第一参数集中包括与另一工具对应的另一工具标志,其中另一工具标志被设置为以下值,其指示与另一工具对应的另一工具参数存在或启用以用于对视频区域进行编码,并且使用第三参数集标识符将另一工具参数包括在第一参数集中。使用另一工具参数执行对视频区域的编码。
[0208]
图12示出了可用于实施本文档中描述的编码器侧或解码器侧技术的示例装置1200。装置1200包括处理器1202,其可以被配置为执行编码器侧或解码器侧技术或两者。装置1200还可以包括用于存储处理器可执行指令和用于存储视频比特流和/或显示数据的存储器(未示出)。装置1200可以包括视频处理电路(未示出),诸如变换电路、算术编码/解码电路、基于查找表的数据编码技术等等。视频处理电路可以部分地被包括在处理器中和/或部分地被包括在诸如图形处理器、现场可编程门阵列(fpga)等的其他专用电路中。
[0209]
在本实施例中描述的电子系统可以是能够在视频通信的应用中生成、存储或传输、以及解码视频(或图片)比特流的设备或系统(例如,移动电话,计算机,互联网协议电视(iptv)系统,ott(over the top)系统,互联网上的多媒体系统,数字电视广播系统,视频监视系统,便携式移动终端,数码相机,和视频会议系统等)。
[0210]
在实施例中,本实施例中的具体示例可以参考上述实施例和示例性实施方式方法中描述的示例,并且在本实施例中将不再赘述。
[0211]
显然,本领域技术人员应该知道,本公开的每个模块或每个行为可以由通用的计算装置来实施,并且这些模块或行为可以集中在单个计算装置上,或者可以分布在由多个计算装置形成的网络上,并且可以可选地由供计算装置执行的程序代码来实施,使得这些模块或行为可以存储在存储装置中以供计算装置执行,所示出或描述的行为可能在某些情况下以不同于这里所示出或描述的序列执行,或者可以分别形成每个集成电路模块,或者其中的多个模块或行为可以形成单个集成电路模块来实施。因此,本公开不限于任何特定的硬件和软件组合。
[0212]
以上仅为本公开的优选实施例,并不旨在限制本公开。对于本领域技术人员来说,本公开可以有各种修改和变化。凡在本公开的原则之内所作的任何修改、等同替换、改进和诸如此类,均应落入本公开所附权利要求书所限定的保护范围内。
[0213]
工业适用性
[0214]
由以上描述可知,工具参数被编码在单独的参数集中,而参数当中没有依赖关系,并且用于编码或解码瓦片组的工具被配置在与包含工具参数的参数集合相同类型的另一个单独的参数集中,而不引入任何新类型的参数集和对应的附加激活过程。在更新工具的工具参数时,不会在参数集中编码重复信息,并且编解码器不需要追踪激活的参数集的链。因此,可以将各种工具的参数高效地编码在参数集中,并灵活更新,而不会增加参数集激活和管理的复杂性。通过使用上述方法和设备,解决了现有方法的所有缺点。
[0215]
本文档中描述的公开的和其他实施例、模块和功能操作可以以数字电子电路或计
算机软件、固件或硬件来实施,包括本文档中公开的结构及其等同结构,或以其中一个或多个的组合。所公开的实施例和其他实施例可以被实施为一个或多个计算机程序产品,即,在计算机可读介质上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。所述计算机可读介质可以是机器可读存储设备,机器可读存储基板,存储器设备,影响机器可读传播信号的物质组成或它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,借由示例包括可编程处理器,计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件,协议栈,数据库管理系统,操作系统或其一项或多项的组合的代码。传播的信号是人工生成的信号,例如机器生成的电、光或电磁信号,其被生成以对信息进行编码以传输到合适的接收器装置。
[0216]
计算机程序(也称为程序,软件,软件应用,脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且其可以以任何形式进行部署,包括独立程序或适合在计算环境中使用的模块,组件,子例程或其他单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保持其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),专用于所讨论程序的单个文件中或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。可以将计算机程序部署为在一台计算机上执行,或者在位于一个站点上或跨多个站点分布并通过通信网络互连的多台计算机上执行。
[0217]
本文档中描述的过程和逻辑流程可以由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程处理器来执行。处理和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实施为专用逻辑电路,例如,现场可编程门阵列(fpga)或专用集成电路(asic)。
[0218]
借由示例,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁,磁光盘或光盘)接收数据或将数据传输到一个或多个大容量存储设备或这两者。但是,计算机不必具有此类设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器,介质和存储器设备,借由示例包括半导体存储器设备,例如eprom,eeprom和闪速存储器设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd rom和dvd

rom磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
[0219]
尽管该专利文档包含许多细节,但是这些细节不应解释为对任何发明或可要求保护的范围的限制,而应解释为对特定发明的特定实施例可能特定的特征的描述。在单独的实施例的上下文中在该专利文档中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实施。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至最初如此声称,但是在某些情况下可以从组合中切除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
[0220]
类似地,尽管在附图中以特定顺序描绘了操作,但是这不应被理解为要求以所示
出的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的效果。此外,在该专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离。
[0221]
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容进行其他实施方式、增强和变化。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜