CN112088531A - 视频编码和解码中改进的片地址信令 - Google Patents

视频编码和解码中改进的片地址信令 Download PDF

Info

Publication number
CN112088531A
CN112088531A CN201980032460.3A CN201980032460A CN112088531A CN 112088531 A CN112088531 A CN 112088531A CN 201980032460 A CN201980032460 A CN 201980032460A CN 112088531 A CN112088531 A CN 112088531A
Authority
CN
China
Prior art keywords
segment group
segment
bitstream
group
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980032460.3A
Other languages
English (en)
Inventor
R·舍伯格
M·达姆格哈尼安
M·彼得松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN112088531A publication Critical patent/CN112088531A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

提供了一种用于从位流解码图象的方法,该图象被分区成多个段组。该方法包括:解码位流的第一部分以形成将段组索引值映射到段组地址的地址映射;以及解码位流的第二部分。位流的第二部分包括表示多个段组的码字。解码位流的第二部分包括解码第一段组。解码第一段组包括:1)解码第一段组的第一段组索引值;2)基于第一段组索引值和地址映射确定第一段组的第一段组地址;3)基于第一段组地址确定第一段组的第一空间位置,第一空间位置表示第一段组在图象内的位置;以及4)解码第一段组的至少一个样本值,并将该至少一个样本值指派给所解码的图象中由第一空间位置给出的位置。

Description

视频编码和解码中改进的片地址信令
技术领域
公开的是与视频编码和解码相关的实施例。
背景技术
高效视频编码(High Efficiency Video Coding)(HEVC)是由ITU-T和MPEG标准化的基于块的视频编解码器,它利用时间和空间预测两者。在编码器中,原始像素数据和预测像素数据之间的差异(称为残差(residual))被变换到频域,进行量化,然后进行熵编码(entropy-code),之后与必要的预测参数(诸如预测模式和运动向量)一起传送(这些预测参数也是熵编码的)。通过量化变换的残差,可以控制位率和视频质量之间的折衷。解码器执行熵解码、逆量化和逆变换,以获得残差;并且然后将残差加到帧内或帧间预测以重构图象(picture)。
MPEG和ITU-T正在联合视频探索小组(JVET)内研究HEVC的后继者。开发中的这个视频编解码器的名称是通用视频编码(VVC)。
VVC视频编码标准草案(draft VVC video coding standard)使用称为四叉树加二叉树加三叉树块结构(QTBT+TT)的块结构,其中每个图象首先被分区成称为编码树单元(CTU)的正方形块。所有CTU的大小都是相等的,并且分区是在没有任何语法(syntax)控制它的情况下完成的。每个CTU被进一步分区成能具有正方形或矩形形状的编码单元(CU)。CTU首先由四叉树结构分区;然后,它可以进一步以二进制结构用相等大小的分区(或者垂直或者水平)来分区,以形成CU。从而,块可能具有正方形或矩形形状。四叉树和二叉树的深度能由编码器在位流(bitstream)中设置。图1中图示了使用QTBT划分CTU的示例。该结构的三叉树(TT)部分增加了将CU划分为三个分区而不是两个大小相等的分区的可能性;这增加了使用更好地适合图象中内容结构的块结构的可能性。
VVC视频编码标准草案包括名为“片(tile)”的工具,该工具将图象划分成矩形的空间独立的区域。VVC编码标准草案中的片非常类似于在HEVC中使用的片。使用片,能将VVC中的图象分区成样本的行和列,其中片是行和列的交集。图2示出了使用4个片行和5个片列的片分区的示例,导致图象总共有20个片。
通过指定行的厚度和列的宽度,在图象参数集(PPS)中发信号通知(signal)片结构。各个行和列能具有不同的大小,但是分区总是跨越整个图象,分别从左到右和从上到下。
表1中列出了VVC标准草案中用于指定片结构的PPS语法。首先,存在指示是否使用片的标志single_tile_in_pic_flag。如果标志被设置为0,则指定片列和行的数量。uniform_tile_spacing_flag是指定是否显式地发信号通知列宽和行高或者是否应使用预先定义的方法来均匀隔开片边界的标志。如果指示了显式地发信号通知,则按顺序发信号通知列宽,继之以行高。最后,loop_filter_cross_tiles_enabled_flag指定对于图象中的所有片边界是打开还是关闭跨片边界的环内滤波器(in-loop filter)。片语法还包括原始字节序列有效载荷(RBSP)尾随位。
表1-VVC标准草案中的片语法
pic_parameter_set_rbsp( ) { 描述符
pps_pic_parameter_set_id ue(v)
pps_seq_parameter_set_id ue(v)
transform_skip_enabled_flag u(1)
single_tile_in_pic_flag u(1)
if( !single_tile_in_pic_flag ) {
num_tile_columns_minus1 ue(v)
num_tile_rows_minus1 ue(v)
uniform_tile_spacing_flag u(1)
if( !uniform_tile_spacing_flag ) {
for( i = 0; i < num_tile_columns_minus1; i++ )
tile_column_width_minus1[ i ] ue(v)
for( i = 0; i < num_tile_rows_minus1; i++ )
tile_row_height_minus1[ i ] ue(v)
}
loop_filter_across_tiles_enabled_flag u(1)
}
rbsp_trailing_bits( )
}
同一张图象的片之间没有解码依赖性。这包括帧内预测、对于熵编码的上下文选择和运动向量预测。一个例外是,在片之间通常允许环内滤波依赖性。
VVC中的编码图象的位被分区成tile_group_layer_rbsp()数据组块(datachunk),其中每个这样的组块都被封装到其自己的组网络抽象层(NAL)单元中。数据组块由片组报头和片组数据组成,其中片组数据由整数个编码的完整片组成。表2示出了相关的VVC规范标准草案语法。下面进一步描述tile_group_header()和tile_group()数据语法。
表2-VVC标准草案中的片组层
tile_group_layer_rbsp( ) { 描述符
tile_group_header( )
tile_group_data( )
rbsp_tile_group_trailing_bits( )
}
片组报头以tile_group_pic_parameter_set_id语法元素开始。该元素指定应该被激活并用于解码片组的图象参数集(PPS)(见表1)。片组地址码字指定片组中第一片的片地址。地址被表示为0和n-1之间的数字,其中n是图象中的片的数量。使用图2作为示例,存在的片的数量等于20,因此该图象的有效片组地址值在0和19之间。片地址以光栅扫描次序(raster scan order)指定片,并被示出在图2的底部。解码器解码该地址值,并通过使用从活动PPS解码的片结构信息,解码器能导出图象中第一片的空间坐标。例如,如果我们假设图2中的片全都具有256×256亮度样本(luma sample)的相同大小,则片地址8意味着片组中第一片的y坐标为int(8 / 5) * 256 = 1*256 = 256,而x坐标为(8%5)*256 = 3*256=768亮度样本。
片组报头中的下一个码字num_tiles_in_tile_group_minus1指定片组中存在的片的数量。如果片组中存在多于一个片,则发信号通知除第一个之外的片的入口点(entrypoint)。首先,存在码字offset_len_minus1,它指定用于发信号通知偏移中的每个偏移的位数。然后,存在入口点偏移码字entry_point_offset_minus1的列表。这些指定了位流中的字节偏移,这些字节能由解码器用来找到每个片的起始点,以便并行解码它们。没有这些偏移,解码器将不得不解析片数据,以便找出每个片在位流中开始的地方。片组中的第一片紧跟在片组报头之后,因此没有针对该片发送的字节偏移。这意味着偏移的数量比片组中的片的数量少一。
表3-VVC标准草案中的片组报头
tile_group_header( ) { 描述符
tile_group_pic_parameter_set_id ue(v)
if( NumTilesInPic > 1 ) {
tile_group_address u(v)
num_tiles_in_tile_group_minus1 ue(v)
}
...
if( num_tiles_in_tile_group_minus1 > 0 ) {
offset_len_minus1 ue(v)
for( i = 0; i < num_tiles_in_tile_group_minus1; i++ )
entry_point_offset_minus1[ i ] u(v)
}
byte_alignment( )
}
片组数据包含片组中的所有CTU。首先,在片组中的所有片上都有for循环。在该循环内部,在片组中的所有CTU上都有for循环。注意,不同片中的CTU的数量可能不同,因为片行高和片列宽不必须相等。出于熵编码原因,在每个片的末尾都有一位设置为1。每个片以字节对齐结束,这意味着用于片组中每个片的数据都从位流中的偶数字节地址开始。这对于以字节数指定入口点是必要的。注意,片组报头也以字节对齐结束。
表4-VVC标准草案中的片组数据
tile_group_data( ) { 描述符
tileIdx = tile_group_address
for( i = 0; i <= num_tiles_in_tile_group_minus1; i++, tileIdx++ ) {
ctbAddrInTs = FirstCtbAddrTs[ tileIdx ]
for( j = 0; j < NumCtusInTile[ tileIdx ]; j++, ctbAddrInTs++ ) {
CtbAddrInRs = CtbAddrTsToRs[ ctbAddrInTs ]
coding_tree_unit( )
}
end_of_tile_one_bit /* equal to 1 */ ae(v)
if( i < num_tiles_in_tile_group_minus1 )
byte_alignment( )
}
}
片的报头开销由信令、地址、片组中的片的数量、字节对齐以及每个片的入口点偏移组成。在VVC标准草案中,当启用片时,片组报头中包括入口点偏移是强制的。
入口点偏移还简化了片组或片的提取和拼接(stitching),以将它们重构为输出流。这要求一些编码器侧约束,以使片组或片在时间上独立。编码器约束之一是需要限制运动向量,使得对于片组或片的运动补偿仅使用包括在先前图象的空间上共置区域中的样本。另一个约束是要限制时间运动向量预测(TMVP),使得该过程在时间上独立于不共置的区域。为了完全独立,还要求禁用片组或片之间的环内滤波。
片有时被用于提取和拼接360度视频,该视频旨在用于使用头戴式显示器(HMD)装置的消费。使用现今的HMD装置时,视野被限制在整个球体的20%左右,这意味着用户仅消费整个360度视频的20%。通常,使整个360度视频球体对HMD装置可用,并且装置然后裁剪出(crop out)为用户呈递(render)的那部分。那部分,即用户看到的球体的那部分,被称为视口(viewport)。众所周知的资源优化是要使HMD装置视频系统意识到头部移动和用户正在看的方向,使得在处理没有向用户呈递的视频样本上花费更少的资源。这里的资源可以是从服务器到客户端的带宽,或者是装置的解码能力。对于具有大于当前技术水平的视野的未来HMD装置,非均匀的资源分配将仍然是有益的,因为人类视觉系统需要在中央视觉区域(大约18˚水平视图)中更高的图像质量,而对外围区域(对于舒适的水平视图大约为120˚或更高)中图像质量它提出了较低要求。
优化感兴趣区域(ROI)的资源是片的另一个用例。ROI能在内容中指定,或者通过诸如眼睛跟踪的方法提取。
使用头部移动来减少所需资源量的一种最先进的方法是要使用片。这能通过首先对视频序列进行多次编码来完成,其中在所有编码中片分区结构是相同的。编码以不同的视频质量完成,这导致至少一个高质量编码和一个低质量编码。这意味着对于在特定时间点的每个片位置,存在至少一个高质量片表示和至少一个低质量片表示。高质量片和低质量片之间的差异可以是:与低质量片相比,高质量片以更高的位率编码;或者与低质量片相比,高质量片具有更高的分辨率。
图3示出了将视频编码成具有高质量片的一个流302和具有低质量片的另一个流304的示例。这里我们假设每个片都放在其自己的片组中。片在VVC草案中以光栅扫描次序编号,这里使用白色文本示出所述光栅扫描次序。这些片编号被用作片组地址。根据用户正在看的地方,客户端请求不同质量的片,使得对应于用户正在看的地方的片以高质量接收,而用户不在看的地方的片以低质量接收。然后,客户端在位流域中将片拼接在一起,并将输出位流馈送到视频解码器。例如,图3示出了拼接之后的输出流306,其中片列310和316(两个外部列)由来自低质量流304的片组成;并且其中片列3123和316(两个内部列)由来自高质量流302的片组成。注意,输出图象的宽度小于输入。原因是,我们在这里假设,对于用户正在看的地方后面的区域,根本没有请求任何片。
发明内容
重要的是进行拼接,使得输出位流符合位流规范(诸如未来公布的VVC规范),以便能使用没有任何修改的任何符合标准的解码器来解码输出流。为了使图3中所示的拼接示例符合VVC规范草案,片组地址(片组报头中的tile_group_address码字)需要由拼接器来更新。例如,输出图象中右下方片组的片组地址必须设置为等于15,而输入低质量流和高质量流中该片的片组地址等于19。
提供了改进编码和解码视频(例如改进片拼接在一起)的实施例。本公开还引入了术语段组(segment group)、段和单元。如这里所使用的,术语段是比片(在VVC草案中使用的)更通用的术语,并且注意到实施例可应用于不同种类的图象分区方案,并且不仅仅是从HEVC和VVC草案已知的片分区。如这里所使用的,来自这些草案的“片”是段的一个示例,但是也可以有段的其它示例。
如图4中所示,视频流的单个图象402以各种方式被分区。例如,图象402被分区成单元410、段412和段组414。如图所示,图象402包括64个单元410(图4的顶部)、16个段412(图4的中部)和8个段组414(图4的底部)。如图所示,图象402的分区结构413(由虚线示出)定义了段412。每个段412包括多个单元410。段412可以包括整数个完整单元或者完整和部分单元的组合。多个段412形成段组414。段组可以包括按光栅扫描次序的段。备选地,段组可以包括一起形成矩形的段的任何组。备选地,段组可以由段的任何子集组成。
如图5中所示,图象402可以由分区结构(以虚线示出)分区成多个段;这里,示出有四个段,包括段502和504。图5还示出了三个单元510、512和514;这些单元中的两个(512和514)属于当前段504,而单元中的一个(510)属于不同的相邻段502。段相对于其它段是独立的,这意味着在对单元进行解码时,段边界类似于图象边界被处置。这在解码期间影响元素的导出过程,诸如例如,帧内预测模式的导出和量化参数值的导出。
帧内预测模式在当前技术中是众所周知的,并且仅针对将来自当前图象的先前解码样本的预测用于样本预测的单元发信号通知和使用帧内预测模式。常见的是,当前单元512中的帧内预测模式的导出取决于其它相邻单元514中先前导出的帧内预测模式。在段是独立的情况下,当前单元512中的帧内预测模式的导出可以仅依赖于属于当前段504的单元514中先前导出的帧内预测模式,并且可以不依赖于属于不同段502的任何单元510中的任何帧内预测模式。
这意味着图5中的分区结构使得不同段502中的单元510中的帧内预测模式不可用于导出当前段504中的单元512的帧内预测模式。因而,对于当前段504中的单元512,段边界对帧内预测模式导出的影响可以与图象边界相同。注意,不同段502中的一些单元510中的模式很可能已经被用于导出当前段504中的单元512中的帧内预测模式,如果那些单元本属于同一段的话。
如这里所使用的,段可能(在某些情况下)等同于片或切片(slice),并且因此这些术语可以互换使用。同样,段组可以(在某些情况下)等同于片组,而单元可以(在某些情况下)等同于CTU。
如上面所解释的,过程可能期望将一个或多个位流作为输入,并通过从一个或多个输入位流中选择片来产生输出位流;这种过程可以称为拼接过程。现有视频编码和解码解决方案的一个问题是,可能要求通过拼接过程来修改片组层的数据,以便产生符合位流规范(诸如未来公布的VVC规范)的输出位流。这使得拼接在计算上非常复杂,因为每秒必须重写的分组的数量可能变得非常高。例如,考虑60帧每秒(fps)的帧速率,其中每个图象包括16个片组。如果每个片都放在其自己的分组中,那么可能需要重写960(=60*16)个分组每秒。
现有视频编码和解码解决方案的另一个问题是,在不修改位流的片组层部分的情况下提取、拼接和/或重定位位流中的片是不可能的。
实施例通过用片组报头中的索引值替换当前片地址信令并通过输送这种索引值与片地址之间的映射来克服这些和其它问题。例如,这种映射可以在诸如PPS的参数集中输送。如果在编码期间是考虑到拼接而设置了索引值,则索引值能在拼接期间保持原样(例如,当对诸如不同质量的版本进行编码时,编码器可以强制执行以下条件:索引值跨不同版本是唯一的)。然后,能通过仅修改索引值于参数集中片地址的映射来完成片组地址的改变。
为了便于提取、拼接和/或重定位位流中的片而不修改位流的片组层部分,实施例提供了参数集中的片组中片的数量和索引值之间的映射,其中在片组报头中发送索引。
实施例的优点包括允许仅通过重写参数集来执行拼接,而片组报头保持原样。如果我们采用上面的60 fps示例,并且假设参数集在位流中作为分组每秒发送一次,那么实施例将要求每秒至多重写1个分组,而不是每秒961个分组。因此,拼接的计算复杂度显著降低。
根据第一方面,提供了一种用于从位流解码图象的方法,该图象被分区成多个段组。该方法包括:解码位流的第一部分以形成将段组索引值映射到段组地址的地址映射;以及解码位流的第二部分。位流的第二部分包括表示多个段组的码字。解码位流的第二部分包括解码第一段组。解码第一段组包括:1)解码第一段组的第一段组索引值;2)基于第一段组索引值和地址映射确定第一段组的第一段组地址;3)基于第一段组地址确定第一段组的第一空间位置,第一空间位置表示第一段组在图象内的位置;以及4)解码第一段组的至少一个样本值,并将该至少一个样本值指派给所解码的图象中由第一空间位置给出的位置。
在一些实施例中,地址映射包括阵列和/或列表、阵列和/或列表的并行集合、散列图(hash map)和关联阵列(associative array)中的一个或多个。在实施例中,解码位流的第一部分以形成地址映射包括:从位流解码指示列表值的数量的第一值;以及通过从位流解码多个列表值来形成列表,列表值的数量等于第一值。在实施例中,基于第一段组索引值和地址映射来确定第一段组的第一段组地址包括使用第一段组索引值来执行查找操作。
在一些实施例中,解码位流的第一部分以形成地址映射包括:从位流解码指示列表值的数量的第一值;以及通过从位流解码表示键-值对(key-value pair)k和v的多个值来形成第一列表(KEY)和第二列表(VALUE),键-值对的数量等于第一值。第一列表包括键k,并且第二列表包括键-值对的值v,并且第一列表和第二列表的排序使得对于给定的键-值对,第一列表中给定键k的索引对应于第二列表中给定值v的索引。在实施例中,解码位流的第一部分以形成地址映射包括:从位流解码指示散列值的数量的第一值;以及通过从位流解码表示键-值对k和v的多个值来形成散列图,键-值对的数量等于第一值,其中对于给定的键-值对,给定键k的索引由散列图映射到给定值v。
在一些实施例中,基于第一段组索引值和地址映射确定第一段组的第一段组地址包括:确定索引(i),使得对应于第一列表中的索引的值(KEY[i])与第一段组索引值匹配;以及将第一段组地址确定为对应于第二列表中的索引的值(VALUE[i])。
中的在一些实施例中,基于第一段组索引值和地址映射来确定第一段组的第一段组地址包括使用第一段组索引值来执行散列查找操作。在一些实施例中,被解码的表示键-值对k和v的值包括表示键k的增量值,使得对于第一键-值对,键k由增量值确定,并且对于其它键-值对,键k通过将增量值与先前确定的键值相加以生成当前键k来确定。
在一些实施例中,段组对应于片组、子图象和/或切片。在一些实施例中,段组包括一个或多个段,并且在一些实施例中,段组仅包括一个段。
在实施例中,段组对应于片组。在一些实施例中,位流的第一部分被包括在参数集中,并且该方法进一步包括解码附加段组,其中地址映射被用于解码附加段组。在一些实施例中,位流的第一部分被包括在参数集中,并且该方法进一步包括解码附加图象,其中地址映射被用于解码附加图象。
根据第二方面,提供了一种用于从位流解码图象的方法,该图象被分区成多个段组。该方法包括:解码位流的第一部分以形成将段组索引值映射到针对第一段组要解码的段的数量的大小映射;以及解码位流的第二部分。位流的第二部分包括表示多个段组的码字。解码位流的第二部分包括解码第一段组。解码第一段组包括:1)解码第一段组的第一段组索引值;2)基于第一段组索引值和大小映射来确定第一段组的第一大小;以及3)解码多个段以形成所解码的图象,段的数量等于第一大小。
在一些实施例中,大小映射包括阵列和/或列表、阵列和/或列表的并行集合、散列图和关联阵列中的一个或多个。在实施例中,解码位流的第一部分以形成大小映射包括:从位流解码指示列表值的数量的第一值;以及通过从位流解码多个列表值来形成列表,列表值的数量等于第一值。在实施例中,基于第一段组索引值和大小映射来确定第一段组的第一大小包括使用第一段组索引值来执行查找操作。
在一些实施例中,段组对应于片组、子图象和/或切片。在一些实施例中,段组包括一个或多个段,并且在一些实施例中,段组仅包括一个段。
根据第三方面,提供了一种用于将图象编码成位流的方法,该图象被分区成多个段组。该方法包括针对多个段组,确定将段组索引值映射到段组地址的地址映射;编码位流的第一部分;以及编码位流的第二部分。编码位流的第一部分包括生成形成地址映射的码字,地址映射将段组索引值映射到段组地址。编码位流的第二部分包括生成表示多个段组的码字。编码位流的第二部分包括编码第一段组。编码第一段组包括:1)从第一段组的第一段组地址确定第一段组索引值,其中地址映射将第一段组索引值映射到第一段组地址;2)编码第一段组的第一段组索引值;以及3)编码第一段组的样本值。
根据第四方面,提供了一种用于将图象编码成位流的方法,该图象被分区成多个段组。该方法包括:确定将段组索引值映射到针对第一段组要编码的段的数量的大小映射;编码位流的第一部分;以及编码位流的第二部分。编码位流的第一部分包括生成形成大小映射的码字,所述大小映射将段组索引值映射到针对第一段组要编码的段的数量。编码位流的第二部分包括生成表示多个段组的码字。编码位流的第二部分包括编码第一段组。编码第一段组包括:1)确定第一段组的第一段组索引值,其中大小映射将第一段组的第一段组索引值映射到第一大小,所述第一大小是针对第一段组要编码的段的数量;2)编码第一段组的第一段组索引值;以及3)编码第一段组的多个段,段的数量等于第一大小。
在一些实施例中,编码第一段组索引值包括生成表示第一段组索引值的一个或多个码字。
根据第五方面,解码器适合于执行第一或第二方面的实施例中的任何一个。
根据第六方面,编码器适合于执行第三或第四方面的实施例中的任何一个。
在一些实施例中,编码器和解码器可以共置于同一节点中,或者它们可以彼此分离。在实施例中,编码器和/或解码器是网络节点的一部分;在实施例中,编码器和/或解码器是用户设备的一部分。
根据第七方面,提供了一种用于从位流解码图象的解码器,该图象被分区成多个段组。解码器包括解码单元和确定单元。解码单元被配置成解码位流的第一部分以形成将段组索引值映射到段组地址的地址映射;并且被进一步配置成解码位流的第二部分。位流的第二部分包括表示多个段组的码字。解码位流的第二部分包括解码第一段组。解码第一段组包括:1)(由解码单元)解码第一段组的第一段组索引值;2)基于第一段组索引值和地址映射(由确定单元)确定第一段组的第一段组地址;3)基于第一段组地址(由确定单元)确定第一段组的第一空间位置,第一空间位置表示第一段组在图象内的位置;以及4)(由解码单元)解码第一段组的至少一个样本值,并将该至少一个样本值指派给所解码的图象中由第一空间位置给出的位置。
根据第八方面,提供了一种用于从位流解码图象的解码器,该图象被分区成多个段组。解码器包括解码单元和确定单元。解码单元被配置成解码位流的第一部分以形成将段组索引值映射到针对第一段组要解码的段的数量的大小映射;并且被进一步配置成解码位流的第二部分。位流的第二部分包括表示多个段组的码字。解码位流的第二部分包括解码第一段组。解码第一段组包括:1)(由解码单元)解码第一段组的第一段组索引值;2)基于第一段组索引值和大小映射来(由确定单元)确定第一段组的第一大小;以及3)(由解码单元)解码多个段以形成所解码的图象,段的数量等于第一大小。
根据第九方面,提供了一种用于从位流编码图象的编码器,该图象被分区成多个段组。编码器包括编码单元和确定单元。确定单元被配置成针对多个段组,确定将段组索引值映射到段组地址的地址映射。编码单元被配置成编码位流的第一部分;并且被进一步配置成编码位流的第二部分。编码位流的第一部分包括生成形成地址映射的码字,地址映射将段组索引值映射到段组地址。编码位流的第二部分包括生成表示多个段组的码字。编码位流的第二部分包括编码第一段组。编码第一段组包括:1)从第一段组的第一段组地址(由确定单元)确定第一段组索引值,其中地址映射将第一段组索引值映射到第一段组地址;2)(由编码单元)编码第一段组的第一段组索引值;以及3)(由编码单元)编码第一段组的样本值。
根据第十方面,提供了一种用于将图象编码成位流的编码器,该图象被分区成多个段组。编码器包括编码单元和确定单元。确定单元被配置成确定将段组索引值映射到针对第一段组要编码的段的数量的大小映射。编码单元被配置成编码位流的第一部分;并且被进一步配置成编码位流的第二部分。编码位流的第一部分包括生成形成大小映射的码字,所述大小映射将段组索引值映射到针对第一段组要编码的段的数量。编码位流的第二部分包括生成表示多个段组的码字。编码位流的第二部分包括编码第一段组。编码第一段组包括:1)(由确定单元)确定第一段组的第一段组索引值,其中大小映射将第一段组的第一段组索引值映射到第一大小,所述第一大小是针对第一段组要编码的段的数量;2)(由编码单元)编码第一段组的第一段组索引值;以及3)(由编码单元)编码第一段组的多个段,段的数量等于第一大小。
根据第十一方面,提供了一种包括指令的计算机程序,所述指令当由节点的处理电路执行时,使得该节点执行第一、第二、第三和第四方面中任一方面的方法。
根据第十二方面,提供了包含第十一方面的任一实施例的计算机程序的载体,其中所述载体是电信号、光信号、无线电信号和计算机可读存储介质之一。
附图说明
被结合在本文中并形成说明书一部分的附图图示了各种实施例。
图1图示了根据相关技术的四叉树加二叉树加三叉树块结构。
图2图示了根据相关技术使用以光栅扫描次序标记的4个片行和5个片列的片分区的示例。
图3图示了将高质量流和低质量流拼接成单个输出流的示例。
图4图示了根据实施例的对图象分区的示例。
图5图示了根据实施例的对图象分区的示例。
图6图示了根据实施例的对编码位流进行解码的示例。
图7图示了根据实施例的将两个输入流拼接成单个输出流的示例。
图8图示了根据实施例的将段组索引映射到段组地址的地址映射的示例。
图9是图示根据实施例的过程的流程图。
图10是图示根据实施例的过程的流程图。
图11是图示根据实施例的过程的流程图。
图12是图示根据实施例的过程的流程图。
图13是示出根据实施例的编码器和解码器的功能单元的图。
图14是根据实施例的编码器和/或解码器的框图。
具体实施方式
图6示出了位流602和由解码位流602产生的对应所解码的图象402。此示例中的位流602包括参数集604和八个编码段组606,每个编码段组对应于所解码的图象402中的段组414。也就是说,当被解码时,编码段组606导致所解码的图象402中的段组414。典型的位流包含多于一个图象,但是为了说明起见,该图只示出一个图象。
参数集604包括被解码器解码为段组地址值的列表的语法元素616。该列表可以被实现为段组地址值的阵列。在本描述中,术语阵列和列表可以互换使用。参数集604还包含被解码器解码成分区结构(例如,如图4中所示的分区结构413)的语法元素614,该分区结构指定图象402如何被分区成段(例如,如图4中所示的段412)。在一些实施例中,该信息(614和616)可以是相同参数集(如图6中所示)的一部分,可以是不同参数集的一部分,或者可以以某种其它方式编码。例如,语法元素614和616之一可以是序列参数集的一部分,而另一个可以是图象参数集的一部分。语法元素614和616也可以放置在位流中的任何地方,乃至在带外(out-of-band)输送。在实施例中,重要的是语法元素614和616中的任何一个都不放在编码段组606中,例如使得可以修改信息而不必修改各个编码段组606。
每个编码段组606包括段组报头608和段组数据608。段组数据608包括被解码成属于段组的段的样本值的编码位。在本文描述的实施例中,段组报头608包括一个或多个码字612,它们被解码器解码成索引值i。索引值i被用作段组地址值的列表中的索引,以导出该段组的段组地址。解码器使用段组地址来为段组中第一段确定在图象中的空间位置。
通过使用参数集中的段组地址值的列表和段组报头中该列表的索引,能在不修改段组报头的情况下完成段组的拼接。这是因为段组地址值通过间接层变得与编码段组数据解耦。使用图3中的示例(如上所述),下面的表5示出了索引和段组地址值之间的映射可能看起来如何。表5中的中间列示出了当将视频编码为高质量和低质量时索引和段组地址之间的示例映射。在原始编码期间,使用输送段组地址值列表的语法元素616,将该映射写入参数集604。表5中最右列示出拼接之后在输出位流中索引和段组地址值之间的映射可能看起来如何。在编码期间,写入段组的索引能保持原样,并且能通过使用输送段组地址值列表的语法元素616写入新参数集604来完成拼接,该新参数集604包括最右一列中所示的映射。然后,编码段组606的拼接能通过复制或转发未修改的tile_group_layer_rbsp()组块来完成。
表5–索引和段组地址之间的示例映射
Figure 916069DEST_PATH_IMAGE001
如这里所述,具有地址的是段组。在一些实施例中,备选地或附加地,可以针对每段而不只是针对每个段组发信号通知地址。
根据一些实施例,在不重写视频编码层(VCL)NAL单元数据的情况下,有可能将来自两个或更多图象的段组拼接成一个图象。这在图7中示出,其中原始图象702和704的每个段组具有到参数集中段组地址值的唯一索引映射。当将段组拼接成新图象706时,段组中的索引被保留,但被映射到参数集中的新段组地址。
现在描述几个示例。
第一示例如下。第一示例涉及将单个列表用于存储在参数集中的段组地址。在该实施例中,段组地址值作为单个列表存储在参数集中,这里我们称之为LIST。在这种情况下,语法元素616是LIST的编码表示,并且可以由被解码成指定LIST中有多少条目(即LIST的长度)的数字N的码字组成。语法元素616附加地由每条目一个或多个码字组成,这些码字被解码成指定段组地址值的N个数字。例如,LIST可以在位流中被编码为段组地址值的顺序阵列。
以下伪代码显示了可如何从位流解码和构造LIST:
n = decode_n_value_from_bitstream();
for(i=0 ; i<n ; i++) {
LIST[i] = decode_value_from_bitstream();
}
函数decode_n_value_from_bitstream()和decode_value_from_bitstream()从位流中读取下一个码字或多个码字,并返回一值。码字可以是固定长度码字、可变长度码字、熵编码码字或任何其它类型的码字。码字也可以被称为语法元素。
然后,在解码来自参数集的段组地址值的LIST之后,可以解码段组。在每个段组报头中,存在被解码器解码成索引值i的一个或多个码字612。索引值i被用作进入LIST的索引,以导出段组的段组地址值,诸如地址变得等于LIST[i]。
为了实现上面的示例,其中段组地址值被存储在列表中,并且段组报头包含进入该列表的索引,编码器能将段组地址值编码为编码图象参数集的一部分。例如,能通过首先对列表的大小进行编码,之后对列表的地址值中的每个进行顺序编码,来对列表进行编码。另外,当对段组数据进行编码时,编码器能将进入地址值列表的索引编码到段组报头中,其中由索引表示的地址值对应于图象内段组的空间位置。编码列表大小和/或编码地址值能包括将一个或多个码字编码到位流中;例如,编码器可以使用固定宽度编码、可变宽度编码、基于熵的编码等。同样,解码列表大小和/或解码地址值能包括解码来自位流的一个或多个码字。
当解码已经以刚刚描述的方式编码的位流时,解码器能解码段组地址值列表。例如,解码器能从位流中解码列表的大小,并且然后解码表示列表的地址值中的每个。作为对列表进行解码的一部分,解码器能将地址值存储在列表或(例如)阵列数据结构中,例如由LIST[e] = value所表示的那样,其中e从0到比被解码的列表的大小小于1变动,并且value是被解码的对应地址值。地址值可以被存储在列表中,使得第e个解码的地址值被存储为列表中的第e个条目(尽管基于列表已经被如何编码,其它表示也是可能的)。解码器然后可以解码画面中段组中的每个段组的段组数据。当解码当前段组时,解码器可以解码对应于当前段组的段组报头。解码段组报头可以包括解码来自位流(例如,来自一个或多个码字)的索引值i,其中索引值i表示进入段组地址值列表中的索引。一旦索引值i被解码,解码器就能通过将段组的地址值设置为列表中第i个条目的地址值来导出当前段组的地址值。例如,解码器可以执行查找操作来确定该值。解码器还可以使用地址值来为当前段组确定在正被解码的图象中的空间位置。这可以包括为当前段组中的第一段确定在正被解码的图象中的空间位置。解码器然后可以当将当前段组的段数据解码成解码样本值时,使用所确定的空间位置。例如,可以由解码器使用该空间位置来将解码的样本值存储在所解码的图象中的正确位置。
下面的表6和表7示出了上述示例的示例语法,继之以示例语义(semantics)。语法和语义旨在被看作对当前VVC规范草案的修改。在JVET-L 0686-v2-SpectExt.docx JVET输入贡献中提供了当前VVC规范草案。然而,VVC标准的使用对于应用上述示例不是必需的,并且对其的引用是出于说明性目的。
表6–用于第一示例的参数集语法和语义
parameter_set_rbsp( ) { 描述符
...
num_tile_group_addresses_minus1 ue(v)
for( i = 0; i < num_tile_group_addresses_minus1+1; i++ )
{
pps_tile_group_address[ i ] u(v)
}
...
}
num_tile_group_addresses_minus1加1指定与PPS关联的片组地址的数量。num_tile_group_addresses_minus1的值应在0到maxNbrOfTileGroupAddresses(0和maxNbrOfTileGroupAddresses包括在内)的范围中。[编者注:例如可以将maxNbrOfTileGroupAddresses设置为2046作为示例数字。]
pps_tile_group_address[ i ]被用于指定与PPS关联的第i个片组地址。
pps_tile_group_address[ i ]的长度为Ceil( Log2 ( NumTilesInPic ) )位,其中Ceil是指向上取整运算符(ceiling operator)。[编者注:NumTilesInPic是表示图象中片的数量的变量。这个数字是从参数集中的其它码字导出的。]
pps_tile_group_address [i]的值应在0到NumTilesInPic − 1(0和NumTilesInPic −1包括在内)的范围中。
位流一致性的要求是,对于不等于i的任何j值,pps_tile_group_address[ i ]的值应不等于pps_tile_group_address[ j ]的值。
表7–用于第一示例的片组报头语法和语义
tile_group_header( ) { 描述符
...
tile_group_address_idc ue(v)
num_tiles_in_tile_group_minus1 ue(v)
...
}
tile_group_address_idc被用于指定片组中第一片的片地址。
tile_group_address_idc的值应在0到num_tile_group_addresses_minus1(0和num_tile_group_addresses_minus1包括在内)的范围中。
变量TileGroupAddress被设置为等于pps_tile_group_address[ tile_group_address_idc ]。
TileGroupAddress的值应在0到NumTilesInPic − 1(0和NumTilesInPic − 1包括在内)的范围中。
TileGroupAddress的值应不等于同一编码图象的任何其它编码片组NAL单元的TileGroupAddress的值。
num_tiles_in_tile_group_minus1加1指定片组中片的数量。num_tiles_in_tile_group_minus1的值应在0到NumTilesInPic − 1(0和NumTilesInPic − 1包括在内)的范围中。[编者注:此描述存在于当前的VVC规范草案中。]
在第一示例的备选版本中,pps_tile_group_address[ i ]的最大值的限制是以不同方式定义的;例如,使用固定的最大值,诸如NumTilesInPic的倍数,或者在位流中发信号通知。在备选版本中,pps_tile_group_address[ i ]码字由可变长度码字而不是固定长度码字发信号通知。可变长度码字可以是通用可变长度码(UVLC)码字。
类似地,在第一示例的备选版本中,num_tile_group_addresses_minus_1的最大值的限制是以不同方式定义的;例如,使用固定的最大值,如NumTilesInPic的倍数,或者在位流中发信号通知。
第二示例如下。第二示例涉及将字典用于存储在参数集中的段组地址。在该实施例中,段组地址值作为字典存储在参数集中。字典可以通过合适的数据结构(例如散列图或关联阵列)来实现。
在这个示例的一个版本中,字典可以被编码为单个列表,其中单个列表中的每个条目由一对值组成,其中该对中的第一个元素是字典键值,而该对中的第二个元素是字典值(也称为键-值对)。在另一个版本中,使用两个列表,第一个列表是键列表,而第二个列表是值列表。这两个列表可以被称为列表的并行集合,因为它们在一个列表中的第i个条目与另一个列表的第i个条目关联的意义上是并行的。这两个列表可以被实现为两个阵列或阵列的并行集合。字典的其它编码和表示是可能的。出于说明性目的,这里描述了使用两个列表的变化。这个示例优于使用单个列表的示例的一个优点是,当将多个流拼接在一起时,这个示例能避免具有(潜在的许多)空时隙,即在最终输出流中不使用的列表值。
在这个示例中,语法元素616是两个列表(这里称为KEY和VALUE)的编码表示。在一些实施例中,列表是相同的大小,并且因此表示该大小的单个码字足够了。因此,语法元素616可以由列表大小继之以KEY和VALUE列表的值组成。可以使用固定长度、可变长度、熵编码或其它编码技术将每个值编码为一个或多个码字。在实施例中,VALUE或KEY列表的解码码字按它们被解码的次序被放入那些列表中,例如使得KEY的第二解码值作为第二元素被放入KEY中。在一些实施例中,KEY列表的值在VALUE列表的顺序编码值之前进行顺序编码;在其它实施例中,次序被颠倒,并且在其它实施例中,KEY和VALUE列表的对应元素被一起编码。
下面提供了解码字典的示例。将字典编码成位流是类似的,并且本质上是解码的逆操作。如同上面的第一示例,段组地址值信息的编码和解码可以与表示包括段组的段的样本值的段组数据的编码和解码单独(例如,在其之前)发生。
为了实现这个示例,首先解码器可以解码地址值信息。下面呈现两种变化。
对于其中在放入VALUE中的任何值之前对放入KEY中的所有值进行解码的变型,下面的伪代码描述了解码器可如何运作:
n = decode_n_value_from_bitstream();
for(i=0 ; i<n ; i++)
KEY[i] = decode_key_value_from_bitstream();
for(i=0 ; i<n ; i++)
VALUE[i] = decode_value_from_bitstream();
在另一个变型中,放入KEY和VALUE中的值是交替的,如下面的伪代码中所示:
n = decode_n_value_from_bitstream();
for(i=0 ; i<n ; i++) {
KEY[i] = decode_key_value_from_bitstream();
VALUE[i] = decode_value_from_bitstream();
}
函数decode_n_value_from_bitstream()、decode_key_value_from_bitstream()和decode_value_from_bitstream()各从位流中读取下一个码字或多个码字,并返回一值。码字可以是固定长度码字、可变长度码字、熵编码码字或任何其它类型的码字。
一旦地址值信息已经被解码,解码器然后就可以解码图象中段组中的每个段组的段组数据。当解码当前段组时,解码器可以解码对应于当前段组的段组报头。解码段组报头可以包括解码来自位流(例如,来自一个或多个码字)的索引值i,其中索引值i表示进入KEY列表的索引,KEY列表包含进入VALUE列表的另外索引。一旦索引值i被解码,解码器就能通过确定列表值KEY[pos]与索引值i匹配的列表KEY中的位置pos,并且然后确定段组地址值是VALUE[pos],来导出当前段组的地址值。
通过提供键值来检索与键值关联的值的操作被称为使用键值的查找操作。在此实施例中,查找操作(例如通过使用KEY[k]作为键值)能使用任何适当的方法来实现(例如通过采用散列函数或其它方式)。
图8中图示了在该示例中从索引i导出段组地址。图8示出了包括具有KEY和VALUE列表的字典的参数集。图8还示出了两个段组报头,一个具有索引i=4,而另一个具有索引i=1。如图所示,索引i=4是从第一段组报头解码而来的。值4在参数集中的字典中找到,KEY[1]对应于VALUE[1]=3,其用于确定第一个段组的段组地址(其在此是3)。在第二段组中,索引i=1被解码,其中在字典中为KEY[0]找到1。对应的VALUE[0]=5因此被用于确定第二段组的段组地址(其在此是5)。这在图8中由从段组报头到对应KEY条目的箭头并且然后由从对应KEY条目到所解码的图象中的对应段组地址的箭头图示。
备选地,当KEY和VALUE列表正在进行解码时,可能填充散列图MAP,使得对于在列表KEY中具有位置pos的KEY中的每个键k,MAP{k}=v,其中v=VALUE[pos]。使用此散列图,能通过执行散列图查找操作(诸如MAP{i})完成根据索引i确定段组地址。此数据结构的优点是,当在段组数据的解码期间确定段组地址时,它可以避免KEY列表的线性搜索。
如在此第一示例中,当将段数据解码成解码样本时,解码器可以使用段组地址来确定空间位置。
表8和表9示出了这个示例的示例语法,继之以示例语义。语法和语义旨在被看作对当前VVC规范草案的修改。在JVET-L0686-v2-SpectExt.docx JVET输入贡献中提供了当前VVC规范草案。然而,VVC标准的使用对于应用上述示例不是必需的,并且对其的引用是出于说明性目的。
表8–用于第二示例的参数集语法和语义
parameter_set_rbsp( ) { 描述符
...
num_tile_group_addresses_minus1 ue(v)
for( i = 0; i < num_tile_group_addresses_minus1+1; i++ )
{
pps_tile_group_idc[ i ] ue(v)
pps_tile_group_address[ i ] u(v)
}
...
}
num_tile_group_addresses_minus1加1指定与PPS关联的片地址的数量。num_tile_group_addresses_minus1的值应在0到NumTilesInPic - 1(0和NumTilesInPic − 1包括在内)的范围中。
pps_tile_group_idc[ i ]被用于指定与PPS关联的第i个片组idc。
pps_tile_group_idc应小于或等于8*NumTilesInPic。
位流一致性的要求是,对于不等于i的任何j值,pps_tile_group_idc[ i ]的值应不等于pps_tile_group_idc[ j ]的值。
pps_tile_group_address[ i ]被用于指定与PPS关联的第i个片组地址。
pps_tile_group_address [ i ]的长度为Ceil( Log2 ( NumTilesInPic ) )位。
pps_tile_group_address [ i ]的值应在0到NumTilesInPic - 1(0和NumTilesInPic − 1包括在内)的范围中。
位流一致性的要求是,对于不等于i的任何j值,pps_tile_group_address[ i ]的值应不等于pps_tile_group_address[ j ]的值。
表9–用于第二示例的片组报头语法和语义
tile_group_header( ) { 描述符
...
tile_group_address_idc ue(v)
num_tiles_in_tile_group_minus1 ue(v)
...
}
tile_group_address_idc被用于指定片组中第一片的片地址。
变量TileGroupAddress被设置为等于pps_tile_group_address[ i ],其中i是这样的值,针对该值,pps_tile_group_idc[ i ]等于tile_group_address_idc。
位流一致性的要求是,在0到num_tile_group_addresses_minus1(0和num_tile_group_addresses_minus1包括在内)的范围中有这样的值i,针对该值i,pps_tile_group_address[ i ]等于tile_group_address_idc。
位流一致性的要求是,TileGroupAddress的值应不等于同一编码图象的任何其它编码片组NAL单元的TileGroupAddress的值。
num_tiles_in_tile_group_minus1加1指定片组中片的数量。num_tiles_in_tile_group_minus1的值应在0到NumTilesInPic - 1(0和NumTilesInPic − 1包括在内)的范围中。[编者注:此描述存在于当前的VVC规范草案中。]
在这个示例的备选版本中,pps_tile_group_adress[ i ]的最大值的限制是以不同方式定义的;例如,使用固定的最大值,如NumTilesInPic的倍数,或者在位流中发信号通知。在备选版本中,pps_tile_group_address[ i ]码字由可变长度码字而不是固定长度码字发信号通知。可变长度码字可以是UVLC码字。
类似地,在这个示例的备选版本中,num_tile_group_addresses_minus_1的最大值的限制是以不同方式定义的;例如,使用固定的最大值,如NumTilesInPic的倍数,或者在位流中发信号通知。
第三示例如下。第三示例类似于第二示例,并且涉及将字典用于存储在参数集中的段组地址,其中使用增量信令(delta signaling)对字典进行编码和解码。
在该示例中,字典键值被编码并解码为进入位流或来自位流的增量值。例如,列表KEY和VALUE的解码能由以下伪代码来描述:
n = decode_n_value_from_bitstream();
for(i=0 ; i<n ; i++) {
delta_key = decode_key_value_from_bitstream();
if(i==0)
KEY[i] = delta_key;
else
KEY[i] = KEY[i-1] + delta_key + 1;
VALUE[i] = decode_value_from_bitstream();
}
如在上面第二示例中,可以按任何次序对值进行解码,并且可以不限于在上面伪代码中描述的次序。在实施例中,要解码的值的数量是2*n(KEY的一个值和VALUE的对应值),并且对值进行解码的次序是静态的,使得编码器能没有歧义地正确地输送这两个列表KEY和VALUE。
这个示例优于上面第二示例的一个优点是,它节省位,因为与绝对值相比,发信号通知增量值在位方面一般不那么昂贵。另一个优点是,当增量值被限制为大于或等于1时;在这种情况下,每个字典键值将根据定义被唯一指定。
表10和表11示出了这个实施例的示例语法,继之以示例语义。如前所述,VVC标准的使用对于应用上述示例不是必需的,并且对其的引用是出于说明性目的。
表10–用于第三示例的参数集语法和语义
parameter_set_rbsp( ) { 描述符
...
num_tile_group_addresses_minus1 ue(v)
for( i = 0; i < num_tile_group_addresses_minus1+1; i++ )
{
pps_tile_group_idc_delta_minus1[ i ] ue(v)
pps_tile_group_address[ i ] u(v)
}
...
}
num_tile_group_addresses_minus1加1指定与PPS关联的片地址的数量。num_tile_group_addresses_minus1的值应在0到NumTilesInPic - 1(0和NumTilesInPic − 1包括在内)的范围中。
pps_tile_group_idc_delta_minus1[ i ]加1被用于指定与PPS关联的第i个片组idc。
变量TileGroupAddressIdcPPS[ i ]被如下导出:
1.TileGroupAddressIdcPPS[ 0 ]被设置为等于pps_tile_group_idc_delta_minus1[ 0 ]。
2.对于大于0的i值,TileGroupAddressIdcPPS[ i ]被设置为等于TileGroupAddressIdcPPS [ i – 1 ]+pps_tile_group_idc_delta_minus1[ i ]+1。
TileGroupAddressIdcPPS[ num_tile_group_addresses_minus1 ]应小于或等于8*NumTilesInPic。
pps_tile_group_address[ i ]被用于指定与PPS关联的第i个片组地址。
pps_tile_group_address[ i ]的长度为Ceil( Log2 ( NumTilesInPic ) )位。
pps_tile_group_address [ i ]的值应在0到NumTilesInPic - 1(0和NumTilesInPic − 1包括在内)的范围中。
位流一致性的要求是,对于不等于i的任何j值,pps_tile_group_address[ i ]的值应不等于pps_tile_group_address[ j ]的值。
表11–用于第三示例的片组报头语法和语义
tile_group_header( ) { 描述符
...
tile_group_address_idc ue(v)
num_tiles_in_tile_group_minus1 ue(v)
...
}
tile_group_address_idc被用于指定片组中第一片的片地址。
TileGroupAddress被设置为等于pps_tile_address[ i ],其中i是这样的值,针对该值,TileGroupAddressIdcPPS[ i ]等于tile_group_address_idc。
备选地,变量TileGroupAddress被如下导出:
1.如果在片组报头中不存在tile_group_address_idc,则TileGroupAddress的值被设置为等于0。
2.否则,TileGroupAddress被设置为等于pps_tile_address[ i ],其中i是这样的值,针对该值,TileGroupAddressIdcPPS[ i ]等于tile_group_address_idc。
位流一致性的要求是,在0到num_tile_group_addresses_minus1(0和num_tile_group_addresses_minus1包括在内)的范围中有这样的值i,针对该值i,TileGroupAddressIdcPPS[ i ]等于tile_group_address_idc。
位流一致性的要求是,TileGroupAddress的值应不等于同一编码图象的任何其它编码片组NAL单元的TileGroupAddress的值。
num_tiles_in_tile_group_minus1加1指定片组中片的数量。num_tiles_in_tile_group_minus1的值应在0到NumTilesInPic - 1(0和NumTilesInPic − 1包括在内)的范围中。[编者注:此描述存在于当前的VVC规范草案中。]
在此示例的备选版本中,第一片组索引不是使用pps_tile_group_idc_delta_minus1[0]语法元素设置的,而是在其自己的语法元素中明确指定的。表12示出了备选版本的示例参数集语法继之以语义。
表12 第三示例的备选版本的参数集语法
parameter_set_rbsp( ) { 描述符
...
num_tile_group_addresses_minus1 ue(v)
if (num_tile_group_addresses_minus1 > 0)
pps_first_tile_group_idc ue(v)
for( i = 0; i < num_tile_group_addresses_minus1+2; i++ )
{
pps_tile_group_idc_delta_minus1[ i ] ue(v)
pps_tile_group_address[ i ] u(v)
}
...
}
pps_first_tile_group_idc和pps_tile_group_idc_delta_minus1[ i ]加1被用于指定与PPS关联的第i个片组idc。
变量TileGroupAddressIdcPPS[ i ]被如下导出:
1.TileGroupAddressIdcPPS[ 0 ]被设置为等于pps_first_tile_group_idc。
2.对于大于0的i值,TileGroupAddressIdcPPS[ i ]被设置为等于TileGroupAddressIdcPPS [ i - 1 ]+pps_tile_group_idc_delta_minus1[ i ]+1。
TileGroupAddressIdcPPS[ num_tile_group_addresses_minus1 ]应小于或等于2046。
在当前示例的其它备选版本中,pps_tile_group_adress[ i ]的最大值的限制是以不同方式定义的;例如,使用固定的最大值,如NumTilesInPic的倍数,或者在位流中发信号通知。
类似地,在当前实施例的其它备选版本中,num_tile_group_addresses_minus_1的最大值的限制是以不同方式定义的;例如,使用固定的最大值,如NumTilesInPic的倍数,或者在位流中发信号通知。
在备选版本中,pps_tile_group_address[ i ]码字由可变长度码字而不是固定长度码字发信号通知。可变长度码字可以是UVLC码字。
第四示例如下。第四示例涉及将列表或字典或其它间接层用于存储除段组地址值以外的值。例如,先前的示例能够实现位流中片组的重新定位。为了便于提取、拼接或重新定位位流中的片而不修改位流的片组层部分,我们现在引入片组和片组中的片的数量之间的映射(例如,在PPS中)。
例如,通过使用列表、字典或具有增量信令的字典来对映射进行编码和解码,能类似于上面的示例1-3来完成映射。例如,根据上面的示例1,地址值可以被表示片组中片的数量的值代替。出于说明目的,下面使用类似于示例2的字典提供进一步的细节。
在当前的VVC规范草案中,使用num_tiles_in_tile_group_minus1码字来发信号通知片组中的片的数量。这个示例不要求使用该特定码字;覆盖(covey)片组中存在的片的数量的任何单个或多个码字也将适用。使用num_tiles_in_tile_group_minus1的备选信令的一个示例是要使用两个码字,这两个码字以片为单位发信号通知片组的高度和宽度。然后,片组中的片的数量是从这两个码字中导出的两个值的乘积。
假设使用num_tiles_in_tile_group_minus1,则能使用以下伪代码对PPS字典进行解码:
n = decode_n_value_from_bitstream();
for(i=0 ; i<n ; i++) {
KEY[i] = decode_key_value_from_bitstream();
ADDRESS[i] = decode_address_value_from_bitstream();
SIZE[i] = decode_size_value_from_bitstream();
}
函数decode_n_value_from_bitstream()、decode_key_value_from_bitstream()、decode_address_value_from_bitstream()和decode_size_value_from_bitstream()各从位流中读取下一个码字或多个码字,并返回一值。码字可以是固定长度码字、可变长度码字、熵编码码字或任何其它类型的码字。
然后,在每个段组报头中,存在被解码器解码成索引值i的一个或多个码字612。然后,确定列表KEY中的位置k,针对位置k,列表值KEY[k]与索引值i相同。然后将地址值设置为等于ADDRESS[k],并将大小值设置为等于SIZE[k]。
表13和表14示出了这个实施例的示例语法,继之以示例语义。语法和语义旨在被看作对当前VVC规范草案的修改。在JVET-L0686-v2-SpectExt.docx JVET输入贡献中提供了当前VVC规范草案。然而,VVC标准的使用对于应用上述示例不是必需的,并且对其的引用是出于说明性目的。
表13–用于第四示例的参数集语法和语义
parameter_set_rbsp( ) { 描述符
...
num_tile_group_addresses_minus1 ue(v)
for( i = 0; i < num_tile_group_addresses_minus1+1; i++ )
{
pps_tile_group_idc[ i ] ue(v)
pps_tile_group_address[ i ] u(v)
pps_tiles_in_tile_group_minus1[ i ] ue(v)
}
...
}
num_tile_group_addresses_minus1加1指定与PPS关联的片地址的数量。num_tile_group_addresses_minus1的值应在0到NumTilesInPic - 1(0和NumTilesInPic − 1包括在内)的范围中。
pps_tile_group_idc[ i ]被用于指定与PPS关联的第i个片组idc。
pps_tile_group_idc应小于或等于8*NumTilesInPic。
位流一致性的要求是,对于不等于i的任何j值,pps_tile_group_idc[ i ]的值应不等于pps_tile_group_idc[ j ]的值。
pps_tile_group_address[ i ]被用于指定与PPS关联的第i个片组地址。
pps_tile_group_address [ i ]的长度为Ceil( Log2 ( NumTilesInPic ) )位。
pps_tile_group_address [ i ]的值应在0到NumTilesInPic - 1(0和NumTilesInPic − 1包括在内)的范围中。
位流一致性的要求是,对于不等于i的任何j值,pps_tile_group_address[ i ]的值应不等于pps_tile_group_address[ j ]的值。
pps_tiles_in_tile_group_minus1[ i ]加1指定与PPS关联的第i个片的数量。num_tiles_in_tile_group_minus1[ i ]的值应在0到NumTilesInPic - 1(0和NumTilesInPic − 1包括在内)的范围中。
表14–用于第四示例的片组报头语法和语义
tile_group_header( ) { 描述符
...
tile_group_address_idc ue(v)
...
}
tile_group_address_idc用于指定片组中第一片的片地址以及片组中的片的数量。
变量TileGroupAddress被设置为等于pps_tile_group_address[ i ],其中i是这样的值,针对该值,pps_tile_group_idc[ i ]等于tile_group_address_idc。
位流一致性的要求是,在0到num_tile_group_addresses_minus1(0和num_tile_group_addresses_minus1包括在内)的范围中有这样的值i,对于该值i,pps_tile_group_address[ i ]等于tile_group_address_idc。
位流一致性的要求是,TileGroupAddress的值应不等于同一编码图象的任何其它编码片组NAL单元的TileGroupAddress的值。
变量NumTilesInTileGroup被设置为等于PPS_tiles_in_tile_group_minus1[ i ]+ 1的值,其中i是这样的值,针对该值,pps_tile_group_idc[ i ]等于tile_group_address_idc。
字典中要发信通知的其它潜在值包括每个片组的字节或位计数、片组中每片的字节或位计数、片组中每片的高度和宽度等。
图9是图示根据实施例的过程的流程图。过程900是一种用于从位流解码图象的方法,该图象被分区成多个段组。该方法包括:解码位流的第一部分以形成将段组索引值映射到段组地址的地址映射(步骤902);以及解码位流的第二部分(步骤904)。位流的第二部分包括表示多个段组的码字。解码位流的第二部分包括解码第一段组(步骤906)。解码第一段组包括:1)解码第一段组的第一段组索引值(步骤908);2)基于第一段组索引值和地址映射确定第一段组的第一段组地址(步骤910);3)基于第一段组地址确定第一段组的第一空间位置,第一空间位置表示第一段组在图象内的位置(步骤912);以及4)解码第一段组的至少一个样本值,并将该至少一个样本值指派给所解码的图象中由第一空间位置给出的位置(步骤914)。
在一些实施例中,所述地址映射包括阵列和/或列表、阵列和/或列表的并行集合、散列图和关联阵列中的一个或多个。在实施例中,解码位流的第一部分以形成地址映射包括:从位流解码指示列表值的数量的第一值;以及通过从位流解码多个列表值来形成列表,列表值的数量等于第一值。在实施例中,基于所述第一段组索引值和所述地址映射来确定所述第一段组的所述第一段组地址包括使用所述第一段组索引值来执行查找操作。
在一些实施例中,解码位流的第一部分以形成地址映射包括:从所述位流解码指示列表值的数量的第一值;以及通过从位流解码表示键-值对k和v的多个值来形成第一列表(KEY)和第二列表(VALUE),键-值对的数量等于第一值。第一列表包括键k,而第二列表包括键-值对的值v,并且第一列表和第二列表的排序使得对于给定键-值对,第一列表中给定键k的索引对应于第二列表中给定值v的索引。在实施例中,解码位流的第一部分以形成地址映射包括:从位流解码指示散列值的数量的第一值;以及通过从所述位流解码表示键-值对k和v的多个值来形成散列图,所述键-值对的数量等于所述第一值,其中对于给定的键-值对,所述给定键k的索引由所述散列图映射到给定值v。
在一些实施例中,基于所述第一段组索引值和所述地址映射确定所述第一段组的第一段组地址包括:确定索引(i),使得对应于所述第一列表中的所述索引的值(KEY[i])与所述第一段组索引值匹配;以及将所述第一段组地址确定为对应于所述第二列表中的索引的值(VALUE[ i ])。在一些实施例中,基于所述第一段组索引值和所述地址映射来确定所述第一段组的所述第一段组地址包括使用所述第一段组索引值来执行散列查找操作。在一些实施例中,被解码的表示键-值对k和v的值包括表示所述键k的增量值,使得对于所述第一键-值对,所述键k由所述增量值确定,而对于其它键-值对,所述键k通过将所述增量值与先前确定的键值相加以生成当前键k来确定。
在一些实施例中,段组对应于片组、子图象和/或切片。在一些实施例中,段组包括一个或多个段,并且在一些实施例中,段组仅包括一个段。
在实施例中,段组对应于片组。在一些实施例中,所述位流的第一部分被包括在参数集中,并且所述方法进一步包括解码附加段组,其中所述地址映射被用于解码所述附加段组。在实施例中,所述位流的第一部分被包括在参数集中,并且所述方法进一步包括解码附加图象,其中所述地址映射被用于解码所述附加图象。也就是说,图象可以被编码成多个段组,并且图象的每个段组可以通过使用在参数集中传送的相同地址映射被解码。更进一步,多个图象可以被编码为流的一部分,并且每个这样的图象也可以通过使用在参数集中传送的相同地址映射被解码。
图10是图示根据实施例的过程的流程图。过程1000是一种用于从位流解码图象的方法,该图象被分区成多个段组。该方法包括:解码所述位流的第一部分以形成将段组索引值映射到针对第一段组要解码的段的数量的大小映射(步骤1002);以及解码所述位流的第二部分(步骤1004)。位流的第二部分包括表示所述多个段组的码字。解码位流的第二部分包括解码第一段组(步骤1006)。解码第一段组包括:1)解码所述第一段组的第一段组索引值(步骤1008);2)基于所述第一段组索引值和所述大小映射来确定所述第一段组的第一大小(步骤1010);以及3)解码多个段以形成所解码的图象,段的数量等于所述第一大小(步骤1012)。
在一些实施例中,大小映射包括阵列和/或列表、阵列和/或列表的并行集合、散列图和关联阵列中的一个或多个。在实施例中,解码位流的第一部分以形成大小映射包括:从位流解码指示列表值的数量的第一值;以及通过从位流解码多个列表值来形成列表,列表值的数量等于第一值。在实施例中,基于所述第一段组索引值和所述大小映射来确定所述第一段组的所述第一大小包括使用所述第一段组索引值来执行查找操作。
在一些实施例中,段组对应于片组、子图象和/或切片。在一些实施例中,段组包括一个或多个段,并且在一些实施例中,段组仅包括一个段。
图11是图示根据实施例的过程的流程图。过程1100是一种用于将图象编码成位流的方法,该图象被分区成多个段组。该方法包括:针对多个段组,确定将段组索引值映射到段组地址的地址映射(步骤1102);编码位流的第一部分(步骤1104);以及编码位流的第二部分(步骤1106)。编码所述位流的第一部分包括生成形成所述地址映射的码字,所述地址映射将段组索引值映射到段组地址。编码所述位流的第二部分包括生成表示所述多个段组的码字。编码位流的第二部分包括编码第一段组(步骤1108)。编码第一段组包括:1)从所述第一段组的第一段组地址确定第一段组索引值,其中所述地址映射将所述第一段组索引值映射到所述第一段组地址(步骤1110);2)编码所述第一段组的第一段组索引值(步骤1112);以及3)编码所述第一段组的样本值(步骤1114)。
地址映射可以通过例如把索引值作为输入并返回地址值作为输出来将索引值映射到地址值。例如,通过返回阵列或列表的第i个元素,阵列或列表可以将索引值i映射到给定的地址值;类似地,散列图可以通过返回与键i关联的值来将索引值i映射到给定地址。将索引映射到值的其它方式是可能的,并且由在此提供的实施例涵盖。
图12是图示根据实施例的过程的流程图。过程1200是一种用于将图象编码成位流的方法,该图象被分区成多个段组。该方法包括:确定将段组索引值映射到针对第一段组要编码的段的数量的大小映射(步骤1202);编码所述位流的第一部分(步骤1204);以及编码位流的第二部分(步骤1206)。编码所述位流的第一部分包括生成形成所述大小映射的码字,所述大小映射将段组索引值映射到针对所述第一段组要编码的段的数量。编码所述位流的第二部分包括生成表示所述多个段组的码字。编码位流的第二部分包括编码第一段组(步骤1208)。编码第一段组包括:1)确定所述第一段组的第一段组索引值,其中所述大小映射将所述第一段组的第一段组索引值映射到第一大小,所述第一大小是针对所述第一段组要编码的段的数量(步骤1210);2)编码所述第一段组的第一段组索引值(步骤1212);以及3)编码所述第一段组的多个段,段的数量等于所述第一大小(步骤1214)。
在一些实施例中,编码第一段组索引值包括生成表示所述第一段组索引值的一个或多个码字。
图13是示出根据实施例的解码器1302和编码器1304的功能单元的图。解码器1302包括解码单元1310和确定单元1312。编码器1304包括编码单元1314和确定单元1316。
在实施例中,解码单元1310被配置成解码位流的第一部分以形成将段组索引值映射到段组地址的地址映射;并且被进一步配置成解码位流的第二部分。位流的第二部分包括表示多个段组的码字。解码位流的第二部分包括解码第一段组。解码第一段组包括:1)(由解码单元1310)解码第一段组的第一段组索引值;2)基于第一段组索引值和地址映射(由确定单元1312)确定第一段组的第一段组地址;3)基于第一段组地址(由确定单元1312)确定第一段组的第一空间位置,第一空间位置表示第一段组在图象内的位置;以及4)(由解码单元1310)解码第一段组的至少一个样本值,并将该至少一个样本值指派给所解码的图象中由第一空间位置给出的位置。
在实施例中,解码单元1310被配置成解码所述位流的第一部分以形成将段组索引值映射到针对第一段组要解码的段的数量的大小映射;并且被进一步配置成解码所述位流的第二部分。位流的第二部分包括表示多个段组的码字。解码位流的第二部分包括解码第一段组。解码第一段组包括:1)(由解码单元1310)解码第一段组的第一段组索引值;2)基于所述第一段组索引值和所述大小映射来(由确定单元1312)确定所述第一段组的第一大小;以及3)(由解码单元1310)解码多个段以形成所解码的图象,段的数量等于所述第一大小。
在实施例中,确定单元1316被配置成针对所述多个段组,确定将段组索引值映射到段组地址的地址映射。编码单元1314被配置成编码位流的第一部分;并且被进一步配置成编码位流的第二部分。位流的第一部分包括形成所述地址映射的码字,所述地址映射将段组索引值映射到段组地址。位流的第二部分包括表示多个段组的码字。编码位流的第二部分包括编码第一段组。编码第一段组包括:1)从所述第一段组的第一段组地址(由确定单元1316)确定第一段组索引值,其中所述地址映射将所述第一段组索引值映射到所述第一段组地址;2)(由编码单元1314)编码第一段组的第一段组索引值;以及3)(由编码单元1314)编码第一段组的样本值。
在实施例中,确定单元1316被配置成确定将段组索引值映射到针对第一段组要编码的段的数量的大小映射。编码单元1314被配置成编码位流的第一部分;并且被进一步配置成编码位流的第二部分。位流的第一部分包括形成所述大小映射的码字,所述大小映射将段组索引值映射到针对所述第一段组要编码的段的数量。位流的第二部分包括表示多个段组的码字。编码位流的第二部分包括编码第一段组。编码第一段组包括:1)(由确定单元1316)确定所述第一段组的第一段组索引值,其中所述大小映射将所述第一段组的第一段组索引值映射到第一大小,所述第一大小是针对所述第一段组要编码的段的数量;2)(由编码单元1314)编码第一段组的第一段组索引值;以及3)(由编码单元1314)编码所述第一段组的多个段,段的数量等于所述第一大小。
图14是根据一些实施例的节点(例如,编码器1302和/或解码器1304)的框图。如图X中所示,节点可以包括:处理电路(PC)1402,其可以包括一个或多个处理器(P)1455(例如,通用微处理器和/或一个或多个其它处理器,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等);包括传送器(Tx)1445和接收器(Rx)1447的网络接口1448,以用于使节点能够向连接到网络1410(例如,因特网协议(IP)网络)的其它节点传送数据和从其接收数据,网络接口1448连接到所述网络1410;以及本地存储单元(也称为“数据存储系统”)1408,其可以包括一个或多个非易失性存储装置和/或一个或多个易失性存储装置。在其中PC 1402包括可编程处理器的实施例中,可以提供计算机程序产品(CPP)1441。CPP 1441包括存储计算机程序(CP)1443的计算机可读介质(CRM)1442,所述计算机程序(CP)1443包括计算机可读指令(CRI)1444。CRM 1042可以是非暂时性计算机可读介质,诸如磁介质(例如硬盘)、光介质、存储器装置(例如,随机存取存储器、闪速存储器)等。在一些实施例中,计算机程序1443的CRI 1444被配置成使得当由PC 1402执行时,CRI使节点执行本文描述的步骤(例如,本文参考流程图描述的步骤)。在其它实施例中,节点可以被配置成执行本文描述的步骤,而不需要代码。也就是说,例如,PC 1402可以仅由一个或多个ASIC组成。因此,本文描述的实施例的特征可以用硬件和/或软件实现。
虽然本文描述了本公开的各种实施例,但应该理解,已经仅通过示例而非限制的方式呈现了它们。从而,本公开的广度和范围不应该由上面描述的示例性实施例中的任何实施例来限制。而且,除非本文另有指示或者以另外的方式与上下文明显矛盾,否则由本公开涵盖上述元素在其所有可能的变化中的任何组合。
此外,虽然上面描述的并且在附图中图示的过程被示为一系列步骤,但这么做仅仅为了说明。因而,预期的是,可以添加一些步骤,可以省略一些步骤,可以重新布置步骤的次序,并且可以并行执行一些步骤。

Claims (37)

1.一种用于从位流解码图象的方法,所述图象被分区成多个段组,所述方法包括:
解码所述位流的第一部分以形成将段组索引值映射到段组地址的地址映射;以及
解码所述位流的第二部分;
其中所述位流的所述第二部分包括表示所述多个段组的码字,
其中解码所述位流的所述第二部分包括解码第一段组,以及
其中解码所述第一段组包括:
1)解码所述第一段组的第一段组索引值;
2)基于所述第一段组索引值和所述地址映射确定所述第一段组的第一段组地址;
3)基于所述第一段组地址确定所述第一段组的第一空间位置,所述第一空间位置表示所述第一段组在所述图象内的位置;以及
4)解码所述第一段组的至少一个样本值,并将所述至少一个样本值指派给所解码的图象中由所述第一空间位置给出的位置。
2.如权利要求1所述的方法,其中所述地址映射包括阵列和/或列表、阵列和/或列表的并行集合、散列图和关联阵列中的一个或多个。
3.如权利要求1-2中任一项所述的方法,其中解码所述位流的所述第一部分以形成所述地址映射包括:
从所述位流解码指示列表值的数量的第一值;以及
通过从所述位流解码多个列表值来形成列表,列表值的所述数量等于所述第一值。
4.如权利要求1-3中任一项所述的方法,其中基于所述第一段组索引值和所述地址映射来确定所述第一段组的所述第一段组地址包括使用所述第一段组索引值来执行查找操作。
5.如权利要求1-2中任一项所述的方法,其中解码所述位流的所述第一部分以形成所述地址映射包括:
从所述位流解码指示列表值的数量的第一值;
通过从所述位流解码表示键-值对k和v的多个值来形成第一列表(KEY)和第二列表(VALUE),键-值对的数量等于所述第一值,其中所述第一列表包括键k,并且所述第二列表包括所述键-值对的值v,并且其中所述第一列表和所述第二列表的排序使得对于给定的键-值对,所述第一列表中给定键k的索引对应于所述第二列表中给定值v的索引。
6.如权利要求1-2中任一项所述的方法,其中解码所述位流的所述第一部分以形成所述地址映射包括:
从所述位流解码指示散列值的数量的第一值;
通过从所述位流解码表示键值对k和v的多个值来形成散列图,键-值对的数量等于所述第一值,其中对于给定的键-值对,给定键k的索引由所述散列图映射到给定值v。
7.如权利要求5所述的方法,其中基于所述第一段组索引值和所述地址映射确定所述第一段组的所述第一段组地址包括:
确定索引(i),使得对应于所述第一列表中的索引的值(KEY[i])与所述第一段组索引值匹配;以及
将所述第一段组地址确定为对应于所述第二列表中的索引的值(VALUE[i])。
8.如权利要求5-6中任一项所述的方法,其中基于所述第一段组索引值和所述地址映射来确定所述第一段组的所述第一段组地址包括使用所述第一段组索引值来执行散列查找操作。
9.如权利要求5-7中任一项所述的方法,其中被解码的表示键-值对k和v的值包括表示所述键k的增量值,使得对于第一键-值对,所述键k由所述增量值确定,并且对于其它键-值对,所述键k通过将所述增量值与先前确定的键值相加以生成当前键k来确定。
10.如权利要求1-9中任一项所述的方法,其中段组对应于片组。
11.如权利要求1-10中任一项所述的方法,其中段组对应于子图象。
12.如权利要求1-11中任一项所述的方法,其中段对应于切片。
13.如权利要求1-12中任一项所述的方法,其中段组包括一个或多个段。
14.如权利要求1-12中任一项所述的方法,其中段组仅包括一个段。
15.如权利要求1-14中任一项所述的方法,其中所述位流的所述第一部分被包括在参数集中,并且所述方法进一步包括解码附加段组,其中所述地址映射被用于解码所述附加段组。
16.如权利要求1-15中任一项所述的方法,其中所述位流的所述第一部分被包括在参数集中,并且所述方法进一步包括解码附加图象,其中所述地址映射被用于解码所述附加图象。
17.一种用于从位流解码图象的方法,所述图象被分区成多个段组,所述方法包括:
解码所述位流的第一部分以形成将段组索引值映射到针对第一段组要解码的段的数量的大小映射;以及
解码所述位流的第二部分;
其中所述位流的所述第二部分包括表示所述多个段组的码字,
其中解码所述位流的所述第二部分包括解码第一段组,以及
其中解码所述第一段组包括:
1)解码所述第一段组的第一段组索引值;
2)基于所述第一段组索引值和所述大小映射来确定所述第一段组的第一大小;以及
3)解码多个段以形成所解码的图象,段的所述数量等于所述第一大小。
18.如权利要求17所述的方法,其中所述大小映射包括阵列和/或列表、阵列和/或列表的并行集合、散列图和关联阵列中的一个或多个。
19.如权利要求17-18中任一项所述的方法,其中解码所述位流的所述第一部分以形成所述大小映射包括:
从所述位流解码指示列表值的数量的第一值;以及
通过从所述位流解码多个列表值来形成列表,列表值的所述数量等于所述第一值。
20.如权利要求19所述的方法,其中基于所述第一段组索引值和所述大小映射来确定所述第一段组的所述第一大小包括使用所述第一段组索引值来执行查找操作。
21.如权利要求17-20中任一项所述的方法,其中段组对应于片组。
22.如权利要求17-21中任一项所述的方法,其中段组对应于子图象。
23.如权利要求17-22中任一项所述的方法,其中段对应于切片。
24.如权利要求17-23中任一项所述的方法,其中段组包括一个或多个段。
25.如权利要求17-23中任一项所述的方法,其中段组仅包括一个段。
26.一种用于将图象编码成位流的方法,所述图象被分区成多个段组,所述方法包括:
针对所述多个段组,确定将段组索引值映射到段组地址的地址映射;
编码所述位流的第一部分;以及
编码所述位流的第二部分;
其中编码所述位流的所述第一部分包括生成形成所述地址映射的码字,所述地址映射将段组索引值映射到段组地址,
其中编码所述位流的所述第二部分包括生成表示所述多个段组的码字,
其中编码所述位流的所述第二部分包括编码第一段组,以及
其中编码所述第一段组包括:
1)从所述第一段组的第一段组地址确定第一段组索引值,其中所述地址映射将所述第一段组索引值映射到所述第一段组地址;
2)编码所述第一段组的第一段组索引值;以及
3)编码所述第一段组的样本值。
27.如权利要求26所述的方法,其中编码所述第一段组索引值包括生成表示所述第一段组索引值的一个或多个码字。
28.一种用于将图象编码成位流的方法,所述图象被分区成多个段组,所述方法包括:
确定将段组索引值映射到针对第一段组要编码的段的数量的大小映射;
编码所述位流的第一部分;以及
编码所述位流的第二部分;
其中编码所述位流的所述第一部分包括生成形成所述大小映射的码字,所述大小映射将段组索引值映射到针对所述第一段组要编码的段的数量,
其中编码所述位流的所述第二部分包括生成表示所述多个段组的码字,
其中编码所述位流的所述第二部分包括编码第一段组,以及
其中编码所述第一段组包括:
1)确定所述第一段组的第一段组索引值,其中所述大小映射将所述第一段组的所述第一段组索引值映射到第一大小,所述第一大小是针对所述第一段组要编码的段的数量;
2)编码所述第一段组的所述第一段组索引值;以及
3)编码所述第一段组的多个段,段的所述数量等于所述第一大小。
29.如权利要求28所述的方法,其中编码所述第一段组索引值包括生成表示所述第一段组索引值的一个或多个码字。
30.一种适合于执行权利要求1-25中的任一项的解码器。
31.一种适合于执行权利要求26-29中的任一项的编码器。
32.一种用于从位流解码图象的解码器,所述图象被分区成多个段组,所述解码器包括:
解码单元和确定单元,
其中所述解码单元被配置成解码所述位流的第一部分以形成将段组索引值映射到段组地址的地址映射;
其中所述解码单元被进一步配置成解码所述位流的第二部分;
其中所述位流的所述第二部分包括表示所述多个段组的码字,解码所述位流的所述第二部分包括解码第一段组,并且解码所述第一段组包括:
1)(由所述解码单元)解码所述第一段组的第一段组索引值;
2)基于所述第一段组索引值和所述地址映射(由所述确定单元)确定所述第一段组的第一段组地址;
3)基于所述第一段组地址(由所述确定单元)确定所述第一段组的第一空间位置,所述第一空间位置表示所述第一段组在所述图象内的位置;以及
4)(由所述解码单元)解码所述第一段组的至少一个样本值,并将所述至少一个样本值指派给所解码的图象中由所述第一空间位置给出的位置。
33.一种用于从位流解码图象的解码器,所述图象被分区成多个段组,所述解码器包括:
解码单元和确定单元;
其中所述解码单元被配置成解码所述位流的第一部分以形成将段组索引值映射到针对第一段组要解码的段的数量的大小映射;
其中所述解码单元被进一步配置成解码所述位流的第二部分;
其中所述位流的所述第二部分包括表示所述多个段组的码字,解码所述位流的所述第二部分包括解码第一段组,并且解码所述第一段组包括:
1)(由所述解码单元)解码所述第一段组的第一段组索引值;
2)基于所述第一段组索引值和所述大小映射来(由所述确定单元)确定所述第一段组的第一大小;以及
3)(由所述解码单元)解码多个段以形成所解码的图象,段的所述数量等于所述第一大小。
34.一种用于从位流编码图象的编码器,所述图象被分区成多个段组,所述编码器包括:
编码单元和确定单元;
其中所述确定单元被配置成针对所述多个段组,确定将段组索引值映射到段组地址的地址映射;
其中所述编码单元被配置成编码所述位流的第一部分;
其中所述编码单元被进一步配置成编码所述位流的第二部分;
其中编码所述位流的所述第一部分包括生成形成所述地址映射的码字,所述地址映射将段组索引值映射到段组地址,
其中编码所述位流的所述第二部分包括生成表示所述多个段组的码字,
其中编码所述位流的所述第二部分包括编码第一段组,并且编码所述第一段组包括:
1)从所述第一段组的第一段组地址(由所述确定单元)确定第一段组索引值,其中所述地址映射将所述第一段组索引值映射到所述第一段组地址;
2)(由所述编码单元)编码所述第一段组的第一段组索引值;以及
3)(由所述编码单元)编码所述第一段组的样本值。
35.一种用于将图象编码成位流的编码器,所述图象被分区成多个段组,所述编码器包括:
编码单元和确定单元;
其中所述确定单元被配置成确定将段组索引值映射到针对第一段组要编码的段的数量的大小映射;
其中所述编码单元被配置成编码所述位流的第一部分;
其中所述编码单元被进一步配置成编码所述位流的第二部分;
其中编码所述位流的所述第一部分包括生成形成所述大小映射的码字,所述大小映射将段组索引值映射到针对所述第一段组要编码的段的数量;
其中编码所述位流的所述第二部分包括生成表示所述多个段组的码字;
其中编码所述位流的所述第二部分包括编码第一段组,并且编码所述第一段组包括:
1)(由所述确定单元)确定所述第一段组的第一段组索引值,其中所述大小映射将所述第一段组的第一段组索引值映射到第一大小,所述第一大小是针对所述第一段组要编码的段的数量;
2)(由所述编码单元)编码所述第一段组的第一段组索引值;以及
3)(由所述编码单元)编码所述第一段组的多个段,段的所述数量等于所述第一大小。
36.一种包括指令的计算机程序,所述指令当由节点的处理电路执行时,使得所述节点执行如权利要求1-29中任一项所述的方法。
37.一种包含如权利要求36所述的计算机程序的载体,其中所述载体是电信号、光信号、无线电信号和计算机可读存储介质之一。
CN201980032460.3A 2018-12-20 2019-12-13 视频编码和解码中改进的片地址信令 Pending CN112088531A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862782722P 2018-12-20 2018-12-20
US62/782722 2018-12-20
PCT/SE2019/051275 WO2020130912A1 (en) 2018-12-20 2019-12-13 Improved tile address signalling in video encoding and decoding

Publications (1)

Publication Number Publication Date
CN112088531A true CN112088531A (zh) 2020-12-15

Family

ID=71101533

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980032460.3A Pending CN112088531A (zh) 2018-12-20 2019-12-13 视频编码和解码中改进的片地址信令

Country Status (8)

Country Link
US (2) US11272178B2 (zh)
EP (2) EP3866471A1 (zh)
JP (2) JP7158497B2 (zh)
KR (1) KR102569347B1 (zh)
CN (1) CN112088531A (zh)
BR (1) BR112020021892A2 (zh)
CO (1) CO2020013102A2 (zh)
WO (1) WO2020130912A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116737248A (zh) * 2023-08-09 2023-09-12 武汉凌久微电子有限公司 一种硬解码器的休眠和唤醒方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102279486B1 (ko) * 2014-03-13 2021-07-20 삼성전자 주식회사 무선 통신 시스템에서 연결을 생성하는 방법 및 장치
US11863789B2 (en) * 2020-03-31 2024-01-02 Tencent America LLC Method for signaling rectangular slice partitioning in coded video stream

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130101035A1 (en) * 2011-10-24 2013-04-25 Qualcomm Incorporated Grouping of tiles for video coding
US20140079126A1 (en) * 2012-09-18 2014-03-20 Vid Scale, Inc. Method and Apparatus for Region of Interest Video Coding Using Tiles and Tile Groups
CN104160702A (zh) * 2011-11-04 2014-11-19 高通股份有限公司 具有包含多个经编码图片分区的网络抽象层单元的视频译码
US20150195577A1 (en) * 2014-01-03 2015-07-09 Nokia Corp Parameter set coding
WO2018046705A2 (en) * 2016-09-08 2018-03-15 Koninklijke Kpn N.V. Partial video decoding method, device and system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300976B2 (en) * 2011-01-14 2016-03-29 Cisco Technology, Inc. Video encoder/decoder, method and computer program product that process tiles of video data
US10013474B2 (en) * 2011-10-25 2018-07-03 The United States Of America, As Represented By The Secretary Of The Navy System and method for hierarchical synchronization of a dataset of image tiles
JP6214235B2 (ja) 2012-07-02 2017-10-18 キヤノン株式会社 ファイル生成方法、ファイル生成装置、及びプログラム
GB2513303B (en) * 2013-04-16 2017-06-07 Canon Kk Method and device for partitioning an image
US20160124841A1 (en) * 2013-06-06 2016-05-05 Hitachi, Ltd. Information processing system and data processing method
CN105379256B (zh) * 2013-07-22 2019-11-12 索尼公司 信息处理装置和方法
US10694192B2 (en) * 2014-06-27 2020-06-23 Koninklijke Kpn N.V. HEVC-tiled video streaming
JP6440747B2 (ja) * 2014-06-27 2018-12-19 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ Hevcでタイル化されたビデオ・ストリームに基づく関心領域の決定
ES2907602T3 (es) * 2014-12-31 2022-04-25 Nokia Technologies Oy Predicción entre capas para la codificación y decodificación de vídeo escalable
US10891264B2 (en) * 2015-04-30 2021-01-12 Vmware, Inc. Distributed, scalable key-value store
US10419768B2 (en) * 2016-03-30 2019-09-17 Qualcomm Incorporated Tile grouping in HEVC and L-HEVC file formats
US10291923B2 (en) * 2016-05-24 2019-05-14 Qualcomm Incorporated Mapping of tile grouping and samples in HEVC and L-HEVC file formats
US10917564B2 (en) 2016-10-12 2021-02-09 Qualcomm Incorporated Systems and methods of generating and processing files for partial decoding and most interested regions
KR102424829B1 (ko) 2017-02-22 2022-07-25 에스케이텔레콤 주식회사 비디오 데이터가 부호화된 비트스트림을 처리하는 방법
US11062738B2 (en) 2017-03-23 2021-07-13 Qualcomm Incorporated Signalling of video content including sub-picture bitstreams for video coding
US10649969B2 (en) * 2017-06-13 2020-05-12 Western Digital Technologies, Inc. Memory efficient persistent key-value store for non-volatile memories
US11436353B2 (en) * 2017-09-13 2022-09-06 Vmware, Inc. Merge updates for key value stores

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130101035A1 (en) * 2011-10-24 2013-04-25 Qualcomm Incorporated Grouping of tiles for video coding
CN104160702A (zh) * 2011-11-04 2014-11-19 高通股份有限公司 具有包含多个经编码图片分区的网络抽象层单元的视频译码
US20140079126A1 (en) * 2012-09-18 2014-03-20 Vid Scale, Inc. Method and Apparatus for Region of Interest Video Coding Using Tiles and Tile Groups
US20150195577A1 (en) * 2014-01-03 2015-07-09 Nokia Corp Parameter set coding
WO2018046705A2 (en) * 2016-09-08 2018-03-15 Koninklijke Kpn N.V. Partial video decoding method, device and system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116737248A (zh) * 2023-08-09 2023-09-12 武汉凌久微电子有限公司 一种硬解码器的休眠和唤醒方法
CN116737248B (zh) * 2023-08-09 2023-11-14 武汉凌久微电子有限公司 一种硬解码器的休眠和唤醒方法

Also Published As

Publication number Publication date
JP2023024970A (ja) 2023-02-21
US11272178B2 (en) 2022-03-08
EP3766245A4 (en) 2021-01-27
CO2020013102A2 (es) 2020-11-10
US20220150495A1 (en) 2022-05-12
KR20210002601A (ko) 2021-01-08
EP3866471A1 (en) 2021-08-18
WO2020130912A1 (en) 2020-06-25
US20210144372A1 (en) 2021-05-13
JP2021528879A (ja) 2021-10-21
EP3766245A1 (en) 2021-01-20
JP7158497B2 (ja) 2022-10-21
BR112020021892A2 (pt) 2021-07-27
KR102569347B1 (ko) 2023-08-22

Similar Documents

Publication Publication Date Title
US11622132B2 (en) Slicing and tiling for sub-image signaling in video coding
US10356432B2 (en) Palette predictor initialization and merge for video coding
CN108028940B (zh) 调色板模式视频译码中转义像素信号值的限制
US20190306513A1 (en) Position dependent intra prediction combination extended with angular modes
CN112640463B (zh) 视频编码中用于图块相对寻址的方法和装置
US20220150495A1 (en) Video encoding and decoding
TW201713116A (zh) 在區塊內複製模式中之參考圖像清單結構
US20210409779A1 (en) Parameter set signaling in digital video
US20210368207A1 (en) Constraint on syntax elements for still picture profiles
BR112021012632A2 (pt) Codificador de vídeo, decodificador de vídeo e métodos correspondentes
CN114567786B (zh) 以4:4:4色度格式进行视频编解码的方法和装置
US20230344999A1 (en) Explicit Address Signaling In Video Coding
US20220086464A1 (en) Methods and apparatus of segment-based video coding using palette mode
US20230024994A1 (en) Picture segment ordering
CN114787921A (zh) 用于假设参考解码器和用于输出层集的视频数据流、视频编码器、装置和方法
CN113973210B (zh) 媒体文件封装方法、装置、设备及存储介质
JP2023506878A (ja) サブピクチャに関連するビデオコーディング
US20230179803A1 (en) Virtual boundary signaling
WO2024077806A1 (zh) 一种编解码方法、装置、编码器、解码器及存储介质
US20220272340A1 (en) Flexible picture partitioning

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination