CN116781935A - 视频译码中的分块指示 - Google Patents

视频译码中的分块指示 Download PDF

Info

Publication number
CN116781935A
CN116781935A CN202310369159.XA CN202310369159A CN116781935A CN 116781935 A CN116781935 A CN 116781935A CN 202310369159 A CN202310369159 A CN 202310369159A CN 116781935 A CN116781935 A CN 116781935A
Authority
CN
China
Prior art keywords
stripe
image
tile
block
flag
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
CN202310369159.XA
Other languages
English (en)
Inventor
王业奎
弗努·亨德里
陈建乐
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116781935A publication Critical patent/CN116781935A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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/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/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/176Methods 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 block, e.g. a macroblock
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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

Abstract

本发明公开了一种视频译码机制。所述机制包括接收码流,其中,所述码流包括划分为一个或多个条带(slice)的图像数据。所述一个或多个条带进一步划分为一个或多个分块(tile)。所述机制还包括:根据第一标志,确定第一条带包括一个分块。所述机制还包括对所述第一条带进行解码,以生成重建图像。

Description

视频译码中的分块指示
相关申请案的交叉参考
本专利申请案要求王业奎等人于2018年9月14日递交的申请案号为62/731,696、发明名称为“视频译码中的条带和分块(Slicing and Tiling In Video Coding)”的美国临时专利申请案的权益,其内容以引用的方式并入本文本中。
技术领域
本发明通常涉及视频译码,具体涉及将图像分割成条带、分块和编码树单元(coding tree unit,CTU),以支持视频译码中的增强压缩。
背景技术
即使在视频较短的情况下也需要大量的视频数据进行描述,当数据要在带宽容量受限的通信网络中流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后在现代电信网络中发送。由于内存资源可能有限,当在存储设备上存储视频时,视频的大小也可能成为问题。视频压缩设备通常在信源侧使用软件和/或硬件对视频数据进行编码,然后进行传输或存储,从而减少表示数字视频图像所需的数据量。然后,解码视频数据的视频解压缩设备在目的地侧接收压缩数据。在有限的网络资源以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。
发明内容
在一个实施例中,本发明包括一种在解码器中实现的方法。所述方法包括:所述解码器的接收器接收码流,其中,所述码流包括划分为一个或多个条带的图像数据。所述一个或多个条带进一步划分为一个或多个分块。所述方法还包括:所述解码器的处理器根据第一标志,确定第一条带包括一个分块。所述方法还包括:所述处理器对所述第一条带进行解码,以生成重建图像。本发明包括表示条带何时只包括一个分块的标志。所述解码器通常执行若干操作来确定条带中的分块、这些分块的ID以及相关的入口点偏移,以便能够对这些分块进行解码。当所述条带只包含一个分块时,这些步骤可以省略,相关数据也可以从码流中省略。经常会出现条带包括一个分块的情况。因此,当存在一个分块时,省略不必要的多分块相关计算可以明显减少所述解码器侧的计算资源使用率。此外,从所述码流中省略支持这些多分块相关计算的数据可压缩所述码流,可降低编码器和解码器侧的网络通信资源使用率以及内存资源使用率。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第一标志是设置为1的single_tile_in_slice_flag,表示所述第一条带中只有一个分块。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,将所述第一标志编码到所述第一条带相关的条带头中。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,对所述第一条带进行解码包括:根据确定所述第一条带包括所述一个分块,省略对所述第一条带的右下角分块标识符(identifier,ID)的搜索。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,对所述第一条带进行解码包括:根据确定所述第一条带包括所述一个分块,省略对所述第一条带的分块相关的入口点偏移的搜索。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,还包括:所述处理器根据第二标志,确定第一图像包括所述一个分块。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第二标志为所述第一图像相关的图像参数集中设置的single_tile_in_pic_flag。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,对所述第一条带进行解码为对所述第一图像进行解码以生成所述重建图像的一部分,对所述第一图像进行解码包括:根据确定所述第一图像包括所述一个分块,省略确定所述第一图像的分块行和分块列。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,还包括:所述处理器将所述重建图像转发给显示器,作为重建视频序列的一部分。
在一个实施例中,本发明包括一种在编码器中实现的方法。所述方法包括:所述编码器的处理器将第一图像分割成一个或多个条带。所述一个或多个条带进一步分割成一个或多个分块。所述方法还包括:所述处理器确定所述第一图像的第一条带在分割后包括一个分块。所述方法还包括:所述处理器对第一标志进行编码,表示所述第一条带包括所述一个分块。所述方法还包括:所述处理器将所述第一条带编码到码流中。所述方法还包括:所述编码器的发送器发送包括所述第一标志的所述码流以支持对所述第一条带进行解码。本发明包括表示条带何时只包括一个分块的标志。所述解码器通常执行若干操作来确定条带中的分块、这些分块的ID以及相关的入口点偏移,以便能够对这些分块进行解码。当所述条带只包含一个分块时,这些步骤可以省略,相关数据也可以从码流中省略。经常会出现条带包括一个分块的情况。因此,当存在一个分块时,省略不必要的多分块相关计算可以明显减少所述解码器侧的计算资源占用。此外,从所述码流中省略支持这些多分块相关计算的数据可压缩所述码流,可降低编码器和解码器侧的网络通信资源使用率以及内存资源使用率。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,所述第一标志是设置为1的single_tile_in_slice_flag,表示所述第一条带中只有一个分块。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,将所述第一标志编码到所述第一条带相关的条带头中。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,根据确定所述第一条带包括所述一个分块,从所述码流中省略所述第一条带的右下角分块ID。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,根据确定所述第一条带包括所述一个分块,从所述码流中省略与所述第一条带的分块相关的入口点偏移。
可选地,根据上述任一方面,在所述方面的另一种实现方式中,还包括:所述处理器确定所述第一图像在分割后包括所述一个分块;所述处理器对与所述第一图像相关的图像参数集中的single_tile_in_pic_flag进行编码,以表示所述第一图像包括所述一个分块。
在一个实施例中,本发明包括一种视频译码设备,所述视频译码设备包括:处理器、与所述处理器耦合的接收器和发送器,其中,所述处理器、所述接收器和所述发送器用于执行根据任一上述方面所述的方法。
在一个实施例中,本发明包括一种非瞬时性计算机可读介质,包括视频译码设备使用的计算机程序产品,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当处理器执行所述计算机可执行指令时,所述视频编码设备执行任一上述方面所述的方法。
在一个实施例中,本发明包括一种解码器,所述解码器包括:接收模块,用于接收码流,其中,所述码流包括划分为一个或多个条带的图像数据。所述一个或多个条带进一步划分为一个或多个分块。所述解码器还包括:确定模块,用于根据第一标志,确定第一条带包括一个分块。所述解码器还包括:解码模块,用于对所述第一条带进行解码,以生成重建图像。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述编码器还用于执行任一上述方面所述的方法。
在一个实施例中,本发明包括一种编码器,所述编码器包括:分割模块,用于将第一图像分割成一个或多个条带。所述一个或多个条带进一步分割成一个或多个分块。所述编码器还包括:确定模块,用于确定第一条带分割后包括一个分块。所述编码器还包括:编码模块,用于对第一标志进行编码,表示所述第一条带包括所述一个分块;将所述第一条带编码到码流中。所述编码器还包括:发送模块,用于发送包括所述第一标志的所述码流以支持对所述第一条带进行解码。
可选地,根据任一上述方面,在所述方面的另一种实现方式中,所述编码器还用于执行任一上述方面所述的方法。
为了描述的清晰性,上述任一实施例可以与上述其它任一或多个实施例结合以创建本发明范围内的新实施例。
这些和其它特征将结合附图和权利要求书从以下详细描述中更清楚地理解。
附图说明
为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同附图标记表示相同部分。
图1为对视频信号进行译码的示例性方法的流程图。
图2为用于视频编码的示例性编解码(编解码器)系统的示意图。
图3为示例性视频编码器的示意图。
图4为示例性视频解码器的示意图。
图5为包括经编码视频序列的示例性码流的示意图。
图6为分割用于译码的示例性图像的示意图。
图7是具有包括一个分块的条带的示例性图像的示意图。
图8为示例性视频译码设备的示意图。
图9为将包括一个分块的条带的图像编码到码流中的示例性方法的流程图。
图10为从码流中解码包括一个分块的条带的图像的示例性方法的流程图。
图11为在码流中对包括一个分块的图像进行译码的示例性系统的示意图。
具体实施方式
首先应理解,尽管下文提供一项或多项实施例的说明性实现方式,但本发明所公开的系统和/或方法可使用任何数目的技术来实现,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
许多视频压缩技术可以用来减小视频文件,同时尽量减少数据丢失。例如,视频压缩技术可以包括执行空间(例如,帧内)预测和/或时间(例如,帧间)预测来减少或去除视频序列中的数据冗余。对于基于块的视频译码,视频条带(slice)(例如,视频图像或视频图像的一部分)可以分割成视频块,视频块也可以称为树块(treeblock)、编码树块(codingtree block,CTB)、编码树单元(coding tree unit,CTU)、编码单元(coding unit,CU)和/或编码节点。一个图像的帧内译码(I)条带中的视频块使用针对同一图像内的相邻块中的参考样本的空间预测进行译码。一个图像的帧间译码单向预测(P)或双向预测(B)条带中的视频块可以采用针对同一图像内的相邻块中的参考样本的空间预测或者采用针对其它参考图像中的参考样本的时间预测进行译码。图像(picture/image)可以称为帧(frame),参考图像可以称为参考帧。空间或时间预测会产生表示图像块的预测块。残差数据表示原始图像块和预测块之间的像素差。相应地,帧间译码块根据指向构成预测块的参考样本的块的运动矢量和表示经译码块与预测块之间的差值的残差数据进行编码,而帧内译码块根据帧内译码模式和残差数据进行编码。为了进一步压缩,残差数据可以从像素域变换到变换域,从而产生残差变换系数,然后可以量化残差变换系数。量化变换系数最初可以排列于二维阵列中。可以扫描量化变换系数,以产生变换系数的一维矢量。可以应用熵译码来实现更大程度的压缩。下文将更详细地讨论这些视频压缩技术。
为了保证经编码视频能够被准确解码,按照对应的视频编码标准进行视频编码和解码。这些视频编码标准包括国际电信联盟电信标准化部门(InternationalTelecommunication Union Telecommunication Standardization Sector,ITU-T)H.261,国际标准化组织/国际电工委员会(International Organization for Standardization/International Electrotechnical Commission,ISO/IEC)运动图像专家组(MotionPicture Experts Group,MPEG)-1第2部分、ITU-T H.262或ISO/IEC MPEG-2第2部分、ITU-TH.263、ISO/IEC MPEG-4第2部分、高级视频译码(Advanced Video Coding,AVC)(也称为ITU-T H.264或ISO/IEC MPEG-4第10部分),以及高效视频译码(High Efficiency VideoCoding,HEVC)(也称为ITU-T H.265或MPEG-H第2部分)。AVC包括可分级视频编码(ScalableVideo Coding,SVC)、多视点视频编码(Multiview Video Coding,MVC)和多视点视频编码加深度(Multiview Video Coding plus Depth,MVC+D)以及三维(three dimensiona,3D)AVC(3D-AVC)等扩展版。HEVC包括可分级HEVC(Scalable HEVC,SHVC)、多视点HEVC(Multiview HEVC,MV-HEVC)和3D HEVC(3D-HEVC)等扩展。ITU-T和ISO/IEC的联合视频专家组(joint video experts team,JVET)已开始开发一种称为通用视频编码(VersatileVideo Coding,VVC)的视频编码标准。VVC包括在工作草案(Working Draft,WD)JVET-K1001-v4和JVET-K1002-v1中。
为了对视频图像进行译码,首先对图像进行分割,并将各个分割部分译码到码流中。图像分割方案有多种。例如,图像可以被分割成常规条带、非独立条带、分块(tile)和/或根据波前并行处理(Wavefront Parallel Processing,WPP)进行分割。为了简单起见,HEVC对编码器进行限制,使得在将条带分割成用于视频译码的CTB组时,只能使用常规条带、非独立条带、分块、WPP及其组合。这种分割方式可以用于支持最大传输单元(MaximumTransfer Unit,MTU)大小匹配、并行处理和减小端到端时延。MTU表示单个数据包能够传输的最大数据量。如果数据包载荷超过MTU,则通过分片过程将数据包载荷划分为两个数据包。
常规条带,也简称为条带,是图像分割后得到的部分,可以独立于同一图像中的其它常规条带重建,但是由于存在环路滤波操作,还存在相互依赖关系。每个常规条带被封装在自己的网络抽象层(Network Abstraction Layer,NAL)单元中进行传输。此外,为了支持独立重建,可以禁用帧内预测(帧内样本预测、运动信息预测、译码模式预测)和跨条带边界的熵译码依赖。这种独立重建支持并行化。例如,基于常规条带的并行化减少了处理器间或核间通信。然而,由于常规条带都是独立的,因此每个条带都与单独的条带头相关联。由于每个条带都具有条带头比特开销,且缺乏跨条带边界的预测,所以使用常规条带会产生大量的译码开销。此外,可以使用常规条带来支持匹配MTU大小要求。具体地,由于常规条带封装在单独的NAL单元中,并且可以进行独立译码,所以每个常规条带需要小于MTU方案中的MTU,以避免该条带被拆分成多个数据包。因此,为了实现并行化MTU大小匹配,图像中的条带布局会互相矛盾。
非独立条带与常规条带类似,但缩短了条带头,可以在不破坏帧间预测的情况下对图像树块边界进行分割。相应地,非独立条带允许将常规条带分散到多个NAL单元,这样可以在完成整个常规条带的编码之前,先将该常规条带的一部分发送出去,从而减小端到端时延。
分块(tile)是图像中由水平和垂直边界形成的分割部分,这些边界形成了分块的列和行。分块可以按光栅扫描顺序(从右到左、从上到下)进行译码。CTB的扫描顺序为在一个分块内执行扫描的顺序。相应地,在进行到下一个分块中的CTB之前,第一分块中的CTB按照光栅扫描顺序进行译码。与常规条带类似,分块消除了对帧间预测依和熵解码的依赖。但是,单独的NAL单元中可以不包括分块,因此,分块不能用于MTU大小匹配。每个分块可以由一个处理器/核处理,用于对相邻分块进行解码的处理单元之间的帧间预测所采用的处理器间/核间通信可以限于传输共享的条带头(当相邻分块在同一条带中时)以及共享与环路滤波相关的重建样本和元数据。当条带中包括多个分块时,可以在条带头中指示除条带中的第一入口点(entry point)偏移之外的每个分块的入口点字节偏移。对于每个条带和分块,需要满足以下条件中的至少一个:(1)条带中的所有经译码树块属于同一分块;(2)分块中的所有经译码树块属于同一条带。
在WPP中,图像被分割成单行CTB。熵解码和预测机制可以使用其它行中的CTB的数据。并行处理通过CTB行的并行解码实现。例如,当前行可以与前一行并行解码。但是,当前行的解码会比前几行的译码过程延迟两个CTB。这种延迟确保在对当前CTB进行译码之前,与位于当前行中的当前CTB上方和右侧CTB相关的数据可用。当用图形表示时,这种方法显示为波面(wavefront)。这种交错式开始解码可以使用与图像包括的CTB行一样多的处理器/核来实现并行化。由于允许在图像内的相邻树块行之间进行帧间预测,因此可能需要大量处理器间/核间通信来实现帧内预测。WPP分割不考虑NAL单元大小。因此,WPP不支持MTU大小匹配。然而,常规条带可以与WPP结合使用,并具有一定的译码开销,以根据需要实现MTU大小匹配。
分块也可以包括运动约束分块集。运动约束分块集(motion constrained tileset,MCTS)是一种分块集,设计目的是限制相关运动矢量指向MCTS内部的整样本位置和指向仅需要MCTS内部的整样本位置进行插值的分数样本位置。此外,不允许将根据MCTS之外的块推导出的运动矢量候选用于时间运动矢量预测。这样,每个MCTS可以在不需要MCTS之外的分块的情况下独立解码。时间MCTS补充增强信息(supplemental enhancementinformation,SEI)消息可以用于表示码流中存在MCTS并指示所述MCTS。MCTS SEI消息提供补充信息(作为SEI消息语义的一部分),该补充信息可用于MCTS子码流提取,以生成MCTS的一致性码流。该信息包括多个提取信息集,每个提取信息集定义多个MCTS集并且包括要在MCTS子码流提取过程使用的替换视频参数集(video parameter set,VPS)、序列参数集(sequence parameter set,SPS)和图像参数集(picture parameter set,PPS)的原始字节序列载荷(raw bytes sequence payload,RBSP)字节。因为一个或所有条带地址相关的语法元素(包括first_slice_segment_in_pic_flag和slice_segment_address)可以在提取的子码流中采用不同的值,所以在按照MCTS子码流提取过程提取子码流时,可以重写或替换参数集(VPS、SPS、PPS),并更新条带头。
上述分块和条带机制具有很高的灵活性,从而支持MTU大小匹配和并行处理。然而,随着电信网络的速度和可靠性的不断提高,MTU大小匹配变得越来越不重要。例如,MTU大小匹配的主要用途之一是支持显示错误隐藏图像。错误隐藏图像是指在数据丢失时从传输的经编码图像生成的解码图像。这种数据丢失可以包括经编码图像的一些条带的丢失或经编码图像使用的参考图像中的错误(例如,参考图像也是错误隐藏图像)。错误隐藏图像可以通过显示正确的条带并估计错误条带,例如通过从视频序列中的前一张图像复制对应于错误条带的条带产生。错误隐藏图像可以在每个条带都包括在一个NAL单元中的情况下产生。然而,如果条带被分散到多个NAL单元(例如,没有MTU大小匹配),丢失一个NAL单元可能会损坏多个条带。错误隐藏图像的生成在现代网络环境中越来越不重要,原因是:丢包很少发生,而且现代网络速度允许系统完全省略带有错误的图像而不会造成严重的视频卡顿,因为错误图像和错误较少图像之间的延迟通常较小。此外,估计错误隐藏图像的质量是一个复杂的过程,因此简单地省略错误图像可能更好。因此,视频会议和视频电话等视频会话应用,甚至广播应用通常都放弃使用隐藏错误图像。
由于错误隐藏图像的用处不大,所以MTU大小匹配的用处也不大。此外,在分割时继续支持MTU大小匹配范式可能会不必要地使译码系统变得复杂,而且会使用本来可以省略以提高译码效率的不必要的比特。另外,一些分块方案(例如,MCTS)可以显示图像的子图像。为了显示子图像,显示感兴趣区域中的条带,而省略其它条带。感兴趣区域可以开始于除图像的左上部分之外的位置,并且因此可以具有从图像的起点偏移可变值的地址。为了正确地显示子图像,可以使用拼接器重写感兴趣区域的一个或多个条带头,以计算此偏移。不需要这种条带头重写的条带和分块方案是有益的。另外,不可以将分块边界视为图像边界,除非分块边界与图像边界并置。然而,在某些情况下,由于边界的填充以及放宽了与指向参考图像中边界外的样本的运动矢量相关的约束条件,将分块边界视为图像边界可以提高译码效率。此外,HEVC可以在每个CTU的经编码数据末尾处使用名为end_of_slice_flag的标志来表示是否已到达条带的末尾。出于相同的目的,AVC在每个宏块(macroblock,MB)的经编码数据末尾处使用这个标志。但是,当最后一个CTU/MB通过其它机制已知时,没有必要对标志进行译码,产生了比特浪费。本发明提供了用于解决视频编码领域中的这些问题和其它问题的机制。
本文公开了各种机制,以提高译码效率并减少与上面讨论的条带和分块方案相关的处理开销。在一个示例中,可以分割图像以包括一个分块。解码器可以执行若干操作来确定条带中的分块、这些分块的分块标识符(identifier,ID)以及表示这些分块在码流中的位置的入口点偏移。但是,当条带包括一个分块时,没有必要进行这些计算。相应地,编码器可以将标志编码到码流中,表示条带何时包括一个分块。这样可以在解码器侧省略这些操作。这样还可以从码流中省略对应的数据(例如,一些分块ID、入口点偏移等),从而提高压缩和/或译码效率。例如,这样的标志可以实现为存储在与条带相关的条带头中的single_tile_in_slice_flag。此外,在一些示例中,解码器可以根据分块ID确定条带边界。但是,当图像包括一个分块时,没有必要进行这项计算。相应地,编码器可以将标志编码到码流中,表示图像何时包括一个分块。这样可以在解码器侧省略这些操作。这样还可以从码流中省略对应的数据(例如,一些分块ID),从而提高压缩和/或译码效率。例如,这样的标志可以实现为存储在与图像(picture/image)相关的图像参数集(picture parameter set,PPS)中的single_tile_in_pic_flag。下文将详细地描述这些示例和其它示例。
图1为对视频信号进行译码的示例性操作方法100的流程图。具体地,在编码器侧对视频信号进行编码。编码过程通过使用各种机制来压缩视频信号,从而减小视频文件。较小的文件大小有助于压缩视频文件传输给用户,同时减少相关的带宽开销。然后,解码器对压缩视频文件进行解码,以重建原始视频信号,向终端用户显示。解码过程通常与编码过程一样,有助于解码器以相同方式重建视频信号。
在步骤101中,将视频信号输入到编码器中。例如,视频信号可以是存储在存储器中的未压缩的视频文件。又如,视频文件可以由视频捕获设备(例如,摄像机)捕获,并且进行编码以支持视频的实时流传输。视频文件可以同时包括音频分量和视频分量。视频分量包括一系列图像帧,当按顺序观看时,这些图像帧会产生运动的视觉效果。这些帧包括以光表示的像素(本文称为亮度分量(或亮度样本))和颜色(称为色度分量(或颜色样本))。在一些示例中,所述帧还可以包括深度值以支持三维观看。
在步骤103中,将视频分割成块。分割包括将每个帧中的像素细分为正方形和/或矩形块以进行压缩。例如,在高效视频编码(High Efficiency Video Coding,HEVC)(也称为H.265和MPEG-H第2部分)中,可以首先将帧划分为编码树单元(coding tree unit,CTU),这些编码树单元是预定义大小(例如,64个像素×64个像素)的块。CTU包括亮度样本和色度样本。可以使用编码树将CTU分成块,然后递归地细分这些块,直到获得支持进一步编码的配置结构。例如,可以细分帧的亮度分量,直到各个块包括相对均匀的亮度(lighting)值。此外,可以细分帧的色度分量,直到各个块包括相对均匀的颜色值。因此,视频帧的内容不同,分割机制就不同。
在步骤105中,使用各种压缩机制来压缩在步骤103中分割的图像块。例如,可以使用帧间预测和/或帧内预测。帧间预测旨在利用一个事实,即一个共同场景中的对象往往出现在连续的帧中。因此,无需在相邻帧中重复描述在参考帧中描绘对象的块。一个对象(如一张桌子)可以在多个帧中保持恒定的位置。因此,该桌子只描述一次,相邻帧可以回指参考帧。模式匹配机制可用于匹配跨多个帧的对象。此外,由于对象移动或摄像机移动等原因,移动对象可以跨多个帧表示。在特定示例中,一个视频可以跨多个帧显示在屏幕上移动的汽车。运动矢量可以用来描述这种移动。运动矢量是一个二维矢量,提供从对象在一个帧中的坐标与该对象在参考帧中的坐标之间的偏移。因此,帧间预测可将当前帧中的图像块编码为运动矢量集,表示当前帧中的图像块与参考帧中的对应块之间的偏移。
帧内预测对公共帧中的块进行编码。帧内预测利用了以下事实:亮度分量和色度分量往往聚集在一个帧中。例如,一棵树的一部分中的一片绿色往往与几片类似的绿色相邻。帧内预测使用多种方向性预测模式(例如,HEVC中的33个模式)、平面模式和直流(direct current,DC)模式。方向性模式表示当前块的样本与相邻块在对应方向上的样本相似/相同。平面模式表示可以根据行边缘的邻块对行/列(例如平面)上的一系列块进行插值。实际上,平面模式通过在变化值中使用相对恒定的斜率来表示亮度/颜色在行/列之间的平滑过渡。DC模式用于边界平滑,表示块和方向性预测模式的角方向关联的所有相邻块的样本关联的平均值相似/相同。因此,帧内预测块可以将图像块表示为各种关系预测模式值而不是实际值。此外,帧间预测块可以将图像块表示为运动矢量值而不是实际值。在这两种情况下,预测块在某些情况下可以不完全表示图像块。任何差异都存储在残差块中。可以对残差块进行变换以进一步压缩文件。
在步骤107中,可以应用各种滤波技术。在HEVC中,根据环内滤波方案应用滤波器。以上讨论的基于块的预测可在解码器中创建块状图像。此外,基于块的预测方案可以对块进行编码,然后重建经编码块,以供以后用作参考块。环内滤波方案迭代地将噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和样本自适应偏移(sample adaptive offset,SAO)滤波器应用到块/帧。这些滤波器减少了这些块伪影,以便可以准确地重建经编码文件。此外,这些滤波器减少了重建参考块伪影,使得伪影不太可能在基于重建参考块编码的后续块中产生其它的伪影。
在步骤109中,一旦视频信号被分割、压缩和滤波,则将所得数据编码到码流中。码流包括上述数据以及任何期望支持解码器中适当的视频信号重建的指示数据。例如,这些数据可以包括分割数据、预测数据、残差块和向解码器提供译码指令的各种标志。码流可以存储在存储器中,所述码流用于根据请求发送到解码器。码流还可以向多个解码器广播和/或组播。码流的创建是一个迭代过程。因此,步骤101、103、105、107和109可以在多个帧和块上连续和/或同时发生。图1所示的顺序是为了清楚和便于讨论而呈现的,并非旨在将视频译码过程限制于特定顺序。
在步骤111中,解码器接收码流并开始解码过程。具体地,解码器使用熵解码方案将码流转换为对应的语法和视频数据。在步骤111中,解码器使用码流中的语法数据来确定帧的分割。所述分割应与步骤103中的块分割的结果匹配。现在描述在步骤111中使用的熵编码/解码。编码器在压缩过程中做出许多选择,例如根据输入图像中的值的空间定位从多个可能选项中选择块分割方案。指示确切的选项可以使用大量的二进制位。本文中使用的二进制位是当作变量的二进制值(例如,可以根据上下文变化的比特值)。熵译码有助于编码器舍弃任何明显不适合特定情况的选项,从而留下一组可使用的选项。然后,为每个可使用的选项分配一个码字。码字的长度基于允许选项的数目(例如,一个二进制位用于两个选项,两个二进制位用于三个到四个选项)。然后,编码器对所选选项的码字进行编码。此方案减小了码字的大小,因为码字的大小与期望的一样大,以唯一地指示可使用选项的小子集中的一个选项,而不是唯一地指示所有可能选项的可能大集中的选项。然后,解码器通过以与编码器类似的方式确定可使用选项集对所述选项进行解码。通过确定可使用选项集,解码器可以读取码字并确定编码器做出的选择。
在步骤113中,解码器执行块解码。具体地,解码器进行逆变换来生成残差块。然后,解码器使用残差块和对应的预测块,根据分割来重建图像块。预测块可包括编码器在步骤105中生成的帧内预测块和帧间预测块。然后,根据在步骤111中确定的分割数据将重建图像块放置在重建视频信号的帧中。步骤113的语法还可以通过上文讨论的熵译码在码流中指示。
在步骤115中,以类似于编码器在步骤107的方式对重建视频信号的帧执行滤波。例如,可以对帧使用噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和SAO滤波器以消除块伪影。一旦帧被滤波,可以在步骤117中将视频信号输出到显示器以供终端用户查看。
图2是用于视频译码的示例性编码和解码(编解码)系统200的示意图。具体地,编解码系统200能够实现操作方法100。广义地,编解码器系统200用于描述编码器和解码器中使用的组件。如关于操作方法100中的步骤101和103所讨论,编解码系统200接收视频信号并对视频信号进行分割,产生分割视频信号201。然后,当作为编码器时,编解码系统200将分割视频信号201压缩到经译码码流中,如关于方法100中的步骤105、107和109所讨论。如关于操作方法100中的步骤111、113、115和117所论述,当作为解码器时,编解码系统200从码流生成输出视频信号。编解码系统200包括总体译码器控制组件211、变换缩放量化组件213、帧内估计组件215、帧内预测组件217、运动补偿组件219、运动估计组件221、缩放和逆变换组件229、滤波器控制分析组件227、环内滤波器组件225、解码图像缓冲器组件223、标头格式化和上下文自适应二进制算术译码(context adaptive binary arithmeticcoding,CABAC)组件231。这些组件如图所示相耦合。在图2中,黑线表示待编码/解码数据的运动,而虚线表示控制其它组件操作的控制数据的运动。编解码系统200中的组件都可以存在于编码器中。解码器可包括编解码系统200中组件的子集。例如,解码器可以包括帧内预测组件217、运动补偿组件219、缩放和逆变换组件229、环内滤波器组件225和解码图像缓冲器组件223。现对这些组件加以说明。
分割视频信号201是已通过编码树分割成像素块的捕获视频序列。编码树使用各种划分模式将像素块细分为更小的像素块。然后,可以将这些块进一步细分为更小的块。所述块可以称为编码树上的节点。将较大的父节点划分为较小的子节点。节点被细分的次数称为节点/编码树的深度。在某些情况下,划分的块可以包括在编码单元(coding unit,CU)中。例如,CU可以是CTU的子部分,包括亮度块、红差色度(Cr)块和蓝差色度(Cb)块以及CU的对应语法指令。划分模式可以包括二叉树(binary tree,BT)、三叉树(triple tree,TT)和四叉树(quad tree,QT),用于将节点分别划分为形状不同的两个、三个或四个子节点,具体取决于所使用的划分模式。将分割视频信号201转发到总体译码器控制组件211、变换缩放和量化组件213、帧内估计组件215、滤波器控制分析组件227和运动估计组件221进行压缩。
总体译码器控制组件211用于根据应用约束条件做出与将视频序列的图像译码到码流中相关的决策。例如,总体译码器控制组件211管理码率/码流大小相对于重建质量的优化。可以根据存储空间/带宽可用性和图像分辨率请求做出这些决策。总体译码器控制组件211还根据传输速度管理缓冲器的利用率,以减轻缓存欠载和超载问题。为了管理这些问题,总体译码器控制组件211管理由其它组件进行的分割、预测和滤波。例如,总体译码器控制组件211可以动态增加压缩复杂度以增大分辨率和带宽利用率,或者降低压缩复杂度以降低分辨率和带宽利用率。因此,总体译码器控制组件211控制编解码系统200的其它组件来平衡视频信号重建质量与码率问题。总体译码器控制组件211创建控制数据,控制其它组件的操作。还将控制数据转发到标头格式化和CABAC组件231,以在码流中进行编码,从而指示在解码器中解码的参数。
分割视频信号201还发送到运动估计组件221和运动补偿组件219进行帧间预测。可以将分割视频信号201的帧或条带分为多个视频块。运动估计组件221和运动补偿组件219根据一个或多个参考帧中的一个或多个块对所接收视频块执行帧间预测译码以提供时间预测。编解码系统200可以执行多个译码过程,以便为每个视频数据块选择适当的译码模式,等等。
运动估计组件221和运动补偿组件219可以高度集成,但出于概念的目的单独说明。由运动估计组件221执行的运动估计是生成运动矢量的过程,运动矢量用于估计视频块的运动。例如,运动矢量可以指示编码对象相对于预测块的位移。预测块是被发现在像素差方面与待编码块紧密匹配的块。预测块也可以称为参考块。这种像素差可以通过绝对差和(sum of absolute difference,SAD)、平方差和(sum of square difference,SSD)或其它差度量确定。HEVC使用若干经译码对象,包括CTU、编码树块(coding tree block,CTB)和CU。例如,可以将CTU分成多个CTB,然后可以将CTB划分为多个CB包括在CU中。CU可以编码为包括预测数据的预测单元(prediction unit,PU)和/或包括CU的变换残差数据的变换单元(transform unit,TU)。运动估计组件221使用率失真分析作为率失真优化过程的一部分来生成运动矢量、PU和TU。例如,运动估计组件221可以确定当前块/帧的多个参考块、多个运动矢量等,并且可以选择具有最佳率失真特性的参考块、运动矢量等。最佳率失真特性平衡视频重建的质量(例如,压缩造成的数据丢失量)和译码效率(例如,最终编码的大小)。
在一些示例中,编解码系统200可以计算存储在解码图像缓冲器组件223中的参考图像的子整数像素位置的值。例如,视频编解码系统200可对参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行插值。因此,运动估计组件221可执行有关于整像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。运动估计组件221通过比较PU的位置与参考图像的预测块的位置来计算经帧间译码条带中视频块的PU的运动矢量。运动估计组件221将计算的运动矢量作为运动数据输出至标头格式化和CABAC组件231进行编码,将运动输出至运动补偿组件219。
由运动补偿组件219执行的运动补偿可涉及根据由运动估计组件221确定的运动矢量获取或生成预测块。同样,在一些示例中,运动估计组件221和运动补偿组件219可以在功能上集成。在接收当前视频块的PU的运动矢量之后,运动补偿组件219可以定位运动矢量指向的预测块。然后,通过从正在译码的当前视频块的像素值中减去预测块的像素值,产生像素差值,从而形成残差视频块。通常,运动估计组件221对亮度分量进行运动估计,运动补偿组件219将根据亮度分量计算的运动矢量用于色度分量和亮度分量。将预测块和残差块转发到变换缩放和量化组件213。
分割视频信号201还发送到帧内估计组件215和帧内预测组件217。与运动估计组件221和运动补偿组件219一样,帧内估计组件215和帧内预测组件217可以高度集成,但出于概念的目的单独说明。帧内估计组件215和帧内预测组件217根据当前帧中的块对当前块进行帧内预测,以替代如上所述的由运动估计组件221和运动补偿组件219在帧之间执行的帧间预测。具体地,帧内估计组件215确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内估计组件215从多个测试的帧内预测模式中选择适当的帧内预测模式对当前块进行编码。然后,将所选择的帧内预测模式转发到标头格式化和CABAC组件231进行编码。
例如,帧内估计组件215使用各种测试的帧内预测模式的率失真分析来计算率失真值,并在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定经编码块和为了产生经编码块进行编码的原始未编码块之间的失真(或误差)量以及用于产生经编码块的码率(例如,比特数)。帧内估计组件215根据各种经编码块的失真和速率计算比率,确定哪种帧内预测模式得到块的最佳率失真值。另外,帧内估计组件215可用于根据率失真优化(rate-distortion optimization,RDO)使用深度建模模式(depth modelingmode,DMM)对深度图的深度块进行译码。
当在编码器上实现时,帧内预测组件217可根据由帧内估计组件215确定的已选帧内预测模式从预测块中生成残差块,或者当在解码器上实现时,从码流中读取残差块。残差块包括预测块和原始块之间的值差,表示为矩阵。然后,将残差块转发到变换缩放和量化组件213。帧内估计组件215和帧内预测分量217可以对亮度分量和色度分量执行操作。
变换缩放和量化组件213用于进一步压缩残差块。变换缩放和量化组件213将离散余弦变换(discrete cosine transform,DCT)、离散正弦变换(discrete sine transform,DST)等变换或概念上类似的变换应用于残差块,产生包括残差变换系数值的视频块。还可以使用小波变换、整数变换、子带变换或其它类型的变换。变换可将残差信息从像素值域变换到变换域,例如频域。变换缩放和量化组件213还用于根据频率等对变换残差信息进行缩放。这种缩放涉及对残差信息应用缩放因子,以便在不同的粒度上量化不同的频率信息,可以影响重建视频的最终视觉质量。变换缩放和量化分量213还用于量化变换系数以进一步降低码率。量化过程可以减少与部分或全部系数关联的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,变换缩放和量化组件213随后可对包括量化变换系数的矩阵进行扫描。将量化变换系数转发到标头格式化和CABAC组件231,以编码到码流中。
缩放和逆变换组件229进行变换缩放和量化组件213的逆操作以支持运动估计。缩放和逆变换组件229进行反缩放、逆变换和/或反量化来重建像素域中的残差块,例如,后续用作参考块,该参考块可成为另一当前块的预测块。运动估计组件221和/或运动补偿组件219可以通过将残差块与对应预测块相加来计算参考块,以用于对后续块/帧进行运动估计。将滤波器应用于重建参考块,以减少在缩放、量化和变换过程中产生的伪影。当预测后续块时,这些伪影可以产生不准确的预测(并产生其它伪影)。
滤波器控制分析组件227和环内滤波器组件225将滤波器应用于残差块和/或重建图像块。例如,缩放和逆变换组件229中的变换残差块可以与帧内预测组件217和/或运动补偿组件219中的对应预测块组合以重建原始图像块。然后,可以将滤波器应用于重建图像块。在一些示例中,可以将滤波器应用于残差块。与图2中的其它组件一样,滤波器控制分析组件227和环内滤波器组件225高度集成且可以一起实现,但出于概念目的单独描述。应用于重建参考块的滤波器应用于特定空间区域,并且包括多个参数以调整如何应用这些滤波器。所述滤波器控制分析组件227分析重建参考块,以确定应在哪里应用这些滤波器并设置对应的参数。这些数据作为滤波器控制数据转发到标头格式化和CABAC组件231进行编码。环内滤波器组件225根据滤波器控制数据应用这些滤波器。滤波器可以包括去块效应滤波器、噪声抑制滤波器、SAO滤波器和自适应环路滤波器。这些滤波器可以根据示例应用于空间/像素域(例如,在重建像素块上)或频域中。
当作为编码器操作时,将滤波后的重建图像块、残差块和/或预测块存储在解码图像缓冲器组件223中,以供以后进行如上所述的运动估计。当作为解码器操作时,解码图像缓冲器组件223存储重建块和滤波块并向显示器转发重建块和滤波块,作为输出视频信号的一部分。解码图像缓冲器组件223可以是能够存储预测块、残差块和/或重建图像块的任何存储器设备。
标头格式化和CABAC组件231从编解码系统200的各种组件接收数据并将这些数据编码到经译码码流中以便发送给解码器。具体地,标头格式化和CABAC组件231生成各种标头以对总体控制数据和滤波器控制数据等控制数据进行编码。此外,包括帧内预测和运动数据的预测数据以及量化变换系数数据形式的残差数据均编码到码流中。最终码流包括解码器想要重建原始分割视频信号201的所有信息。这些信息还可以包括帧内预测模式索引表(也称为码字映射表)、各种块的编码上下文的定义、最可能的帧内预测模式的指示、分割信息的指示等。这些数据可以通过熵编码技术进行编码。例如,可以通过使用上下文自适应可变长度译码(context adaptive variable length coding,CAVLC)、CABAC、基于语法的上下文自适应二进制算术译码(syntax-based context-adaptive binary arithmeticcoding,SBAC)、概率区间分割熵(probability interval partitioning entropy,PIPE)译码或其它熵译码技术来对所述信息进行编码。在熵译码之后,经译码码流可以发送到另一设备(例如,视频解码器)或存档以供稍后发送或检索。
图3为示例性视频编码器300的框图。视频编码器300可用于实现编解码系统200的编码功能和/或实现操作方法100的步骤101、103、105、107和/或109。编码器300对输入视频信号进行分割,产生和分割视频信号201基本相似的分割视频信号301。然后,通过编码器300的组件将分割视频信号301压缩和编码到码流中。
具体地,将分割视频信号301转发给帧内预测组件317进行帧内预测。帧内预测组件317可与帧内估计组件215和帧内预测组件217基本相似。分割视频信号301还转发到运动补偿组件321,用于根据解码图像缓冲器323中的参考块进行帧间预测。运动补偿组件321可与运动估计组件221和运动补偿组件219基本相似。将帧内预测组件317和运动补偿组件321中的预测块和残差块转发到变换和量化组件313以对残差块进行变换和量化。变换和量化组件313可与变换缩放和量化组件213基本相似。将变换和量化残差块和对应的预测块(以及相关控制数据)转发到熵译码组件331以译码到码流中。熵译码组件331可与标头格式化和CABAC组件231基本相似。
变换和量化残差块和/或对应的预测块也从变换和量化组件313转发到逆变换和量化组件329以重建为参考块供运动补偿组件321使用。逆变换和量化组件329可与缩放和逆变换组件229基本相似。根据示例,也将环内滤波器组件325中的环内滤波器应用于残差块和/或重建参考块。环内滤波器组件325可与滤波器控制分析组件227和环内滤波器组件225基本相似。如关于环内滤波器组件225所讨论,环内滤波器组件325可以包括多个滤波器。然后,将滤波块存储在解码图像缓冲器组件323中,以供运动补偿组件321用作参考块。解码图像缓冲器组件323可与解码图像缓冲器组件223基本相似。
图4为示例性视频解码器400的框图。视频解码器400可用于实现编解码系统200的解码功能和/或实现操作方法100的步骤111、113、115和/或117。例如,解码器400从编码器300接收码流,并根据所述码流生成重建输出视频信号以向终端用户显示。
码流由熵解码组件433接收。熵解码组件433用于实现熵解码方案,例如CAVLC、CABAC、SBAC、PIPE译码或其它熵译码技术。例如,熵解码组件433可以使用标头信息来提供上下文以解译在码流中编码为码字的其它数据。解码信息包括对视频信号进行解码所需的任何信息,例如总体控制数据、滤波器控制数据、分割信息、运动数据、预测数据和残差块的量化变换系数。将量化变换系数转发到逆变换和量化组件429以重建为残差块。逆变换和量化组件429可与逆变换和量化组件329基本相似。
将重建残差块和/或预测块转发到帧内预测组件417以根据帧内预测操作重建为图像块。帧内预测组件417可与帧内估计组件215和帧内预测组件217相似。具体地,帧内预测组件417使用预测模式来定位帧中的参考块,并将残差块应用于结果以重建帧内预测图像块。重建帧内预测图像块和/或残差块以及对应的帧间预测数据通过环内滤波器组件425转发到解码图像缓冲器组件423,解码图像缓冲器组件423和环内滤波器组件425可以分别与解码图片缓冲器组件223和环内滤波器组件225基本相似。环内滤波器组件425对重建图像块、残差块和/或预测块进行滤波,并且这些信息存储在解码图像缓冲器组件423中。将解码图像缓冲器组件423中的重建图像块转发到运动补偿组件421进行帧间预测。运动补偿组件421可与运动估计组件221和/或运动补偿组件219基本相似。具体地,运动补偿组件421使用参考块中的运动矢量来生成预测块,并将残差块应用于结果中以重建图像块。所得重建块还可以通过环内滤波器组件425转发到解码图像缓冲器组件423。解码图像缓冲器组件423继续存储其它重建图像块,这些图像块可以通过分割信息重建成帧。这些帧也可以按顺序排列。所述顺序作为重建输出视频信号向显示屏输出。
图5为包括经编码视频序列的示例性码流500的示意图。例如,码流500可以由编解码系统200和/或编码器300生成,由编解码系统200和/或解码器400进行解码。又例如,码流500可以由编码器在方法100的步骤109中生成,由解码器在步骤111中使用。
码流500包括序列参数集(sequence parameter set,SPS)510、多个图像参数集(picture parameter sets,PPS)512、多个条带头514和图像数据520。SPS 510包括码流500中包括的视频序列中所有图像共用的序列数据。这些数据可以包括图像大小、位深度、译码工具参数、码率限制条件等。PPS 512包括每个图像专用的参数。因此,视频序列中的每个图像可以有一个PPS 512。PPS 512可以表示对应图像中的条带可用的译码工具、量化参数、偏移、图像专用编码工具参数(例如,滤波器控制参数)等。条带头514包括图像中每个条带专用的参数。因此,视频序列中的每个条带可以有一个条带头514。条带头514可以包括条带类型信息、图像顺序编号(picture order count,POC)、参考图像列表、预测权重、分块入口点、去块效应滤波器参数等。
图像数据520包括根据帧间预测和/或帧内预测编码的视频数据以及对应的变换和量化残差数据。根据编码前对图像进行分割的分割方式,对图像数据520进行排序。例如,图像数据520中的图像划分为条带521。每个条带521被进一步划分为分块523。分块523进一步划分为CTU 527。根据编码树,将CTU 527进一步划分为编码块。然后可以根据预测机制对编码块进行编码/解码。图像(image/picture)可以包括一个或多个条带521。每个条带521使用一个条带头514。每个条带521可以包括一个或多个分块523,分块523则可以包括多个CTU 527。
每个条带521可以是由左上角分块523和右下角分块523限定的矩形。与其它译码系统不同,条带521可以不遍历图像的整个宽度。条带521为解码器可以单独显示的最小单元。因此,将条带521划分成更小的单元有助于以足够小的粒度来显示图像的期望区域的方式生成子图像。例如,在虚拟现实(virtual reality,VR)上下文中,图像可以包括整个可视数据范围,但是用户只能观看头戴式显示器上的子图像。较小的条带521允许单独指示这些子图像。通条带521常也在单独的VCL NAL单元533中指示。此外,条带521可以不支持根据其它条带521进行预测,这样每个条带521可以独立于其它条带521进行编码。
条带521划分为整数个分块523。分块523是由水平和垂直边界产生的条带521的分割部分。分块523可以按照光栅扫描顺序进行译码,可以或可以不支持根据其它分块523进行预测,具体根据示例确定。每个分块523可以在图像中具有唯一的分块ID 524。分块ID524是数字标识符,可以用于区分一个分块523与另一个分块523。分块ID 524可采用以光栅扫描顺序数字增加的分块索引的值。光栅扫描顺序是指从左到右、从上到下。分块ID 524也可以采用其它数值。然而,分块ID 524总是以光栅扫描顺序增加以支持本文讨论的计算。例如,可以根据条带521的左上角分块523的分块ID 524和条带521的右下角分块523的分块ID524来确定条带521的边界。当分块ID 524与分块索引的值不同时,可以在码流500中,例如在PPS 512中指示转换机制。此外,每个分块523可与入口点偏移525相关。入口点偏移525表示与分块523相关的经译码数据的第一比特的位置。第一分块523的入口点偏移525可以为0,并且其它分块523的入口点偏移525分别可以等于前面分块523中的经译码数据的比特数。因此,可以推断出入口点偏移525的数量比分块523的数量少1。
分块523进一步划分为CTU 527。CTU 527是分块523的子部分,分块523能够通过编码树结构进一步细分为可由编码器编码并由解码器解码的编码块。CTU 527分别与一个CTU地址529相关。CTU地址529表示对应的CTU 527在码流500中的位置。具体地,CTU地址529可以表示对应的CTU 527在VCL NAL单元533中的位置。在一些示例中,CTU 527的CTU地址529可以显式地指示在PPS 512等中。在其它示例中,CTU地址529可以由解码器推导出。例如,CTU地址529可以根据包括对应CTU 527的分块523的分块ID 524来分配。在这种情况下,解码器可以根据左上和右下分块523的分块ID 524确定条带521中的分块523。然后,解码器可以使用条带521中确定的分块523来确定条带521中的CTU 527的数量。此外,解码器可以使用已知的分块ID 524和CTU的数量527来确定CTU地址529。另外,由于解码器知道CTU 527的数量,可以省略表示每个CTU 527是否是VCL NAL单元533中的最后一个CTU 527的标志。这是因为解码器可以通过知道VCL NAL单元533中包括的条带521中的CTU 527的数量来确定哪个CTU 527是VCL NAL单元533中的最后一个CTU 527。然而,在一些示例中,填充位可以放置在分块523中的最后一个CTU 527之后,以便帮助区分各个分块523。如可以看到的,根据分块ID 524来指示条带521的边界可以有助于解码器推断大量数据,然后可以从码流500中省略这些数据,以提高译码效率。
码流500分割成VCL NAL单元533和非VCL NAL单元531。NAL单元是经译码数据单元,其大小可设置为单个数据包的有效载荷,以便通过网络进行发送。VCL NAL单元533是包括经译码视频数据的NAL单元。例如,每个VCL NAL单元533可包括一个数据条带521,所述数据条带521包括对应的分块523、CTU 527和编码块。非VCL NAL单元531是包括支持语法但不包括经译码视频数据的NAL单元。例如,非VCL NAL单元531可以包括SPS 510、PPS 512、条带头514等。因此,解码器在离散VCL NAL单元533和非VCL NAL单元531中接收码流500。在流媒体应用中,解码器可以解码当前视频数据,而不用等待接收整个码流500。因此,分块ID524、入口点偏移525和CTU地址529有助于解码器正确定位VCL NAL单元533中的视频数据,以便进行快速解码、并行处理和其它视频显示机制。相应地,计算分块ID 524、入口点偏移525和/或CTU地址529有助于实现有效的解码和显示机制,同时减小码流500的大小并因此提高译码效率。
图6为分割用于译码的示例性图像600的示意图。例如,图像600可以由编解码系统200、编码器300和/或解码器400等编码在码流500中以及从码流500中解码。此外,可以分割图像600以实现方法100中的编码和解码。
图像600可以分割成条带621、条带623和CTU 627,分别基本上类似于条带521、条带523和CTU 527。在图6中,条带621用粗线表示,通过交替的白色背景和散列以图形的方式区分各条带621。分块623用虚线表示。位于条带621的边界上的分块623的边界显示为粗虚线,而不位于条带621的边界上的分块623的边界显示为细虚线。除由分块623的边界或条带621的边界覆盖的CTU 627的边界之外,CTU 627的边界显示为细实线。在该示例中,图像600包括9个条带621、24个分块623和216个CTU 627。
如图所示,条带621是具有边界的矩形,这些边界可以由包括在内的分块623限定。条带621可以不跨越图像600的整个宽度。分块623可以根据行和列在条带621中生成。然后,CTU 627可以从分块623中分割出来,产生图像600的分割部分,这些分割部分可以细分成编码块,从而根据帧间预测和/或帧内预测进行译码。
采用上述方法,可以改进视频编码系统。例如,设计条带的目的是,包括在条带中的CTU可以不只是按照图像的CTU光栅扫描顺序的图像的CTU集。而是将条带定义为覆盖图像的矩形区域的CTU集。此外,每个条带位于自己的NAL单元中。此外,包括在条带中的CTU的地址可以通过在条带头中以条带中左上角CTU和右下角CTU的光栅扫描顺序指示CTU地址来指示。此外,设计条带包括并且仅包括覆盖图像的矩形区域的完整分块集。每个条带位于自己的NAL单元中。这样,具有多个条带的目的可以是将覆盖图像的矩形区域的分块集放入NAL单元中。在某些情况下,图像中包括一个或多个条带,并且这些条带中的每个条带可以包括覆盖矩形区域的完整分块集。图像中可以还包括覆盖图像的其余分块的另一个条带。该条带覆盖的区域可以是具有孔的矩形区域,该孔被其它条带覆盖。例如,出于感兴趣区域的目的,图像可以包括两个条带,其中一个条带包括覆盖感兴趣区域的完整分块集,而另一个条带包括图像的剩余分块。
条带中包括的CTU的地址可以由条带中包括的分块的分块ID显式或隐式地指示。为了高效地进行指示,在一些示例中,可以仅指示左上和右下分块的分块ID。为了进一步提高指示效率,可以指示表示所述条带是否包括一个分块的标志,如果包括,则可以仅指示一个分块ID。在其它情况下,指示条带中包括的所有分块ID。在一些示例中,指定分块ID值与图像中的分块索引相同。用于显式指示条带头中的分块ID以用于推导条带中包括的CTU的地址的长度(以比特为单位),可以根据图像中的分块数量推导(例如,图像中分块数量的2为底对数的单元格)。图像中的分块数量可以在参数集中显式指示,也可以根据参数集中指示的分块配置推导。在一些示例中,用于显式指示条带头中的分块ID以用于推导条带中包括的CTU的地址的长度(以比特为单位)可以在参数集中指示。在一些示例中,推导入口点的数量等于条带中的分块数量减1,并且在条带头中不指示入口点的数量。在另一个示例中,避免为每个CTU指示(signal)表示该CTU是否为条带的末尾的标志。
在一些示例中,设计条带和分块,使得从码流中提取运动约束分块集(motionconstrained tile set,MCTS)等分块集时不需要重写条带头,以产生一致性子码流。例如,分块ID可以针对每个分块在指示了分块配置的参数集中显式地指示。分块ID在图像中都是唯一的。分块ID在图像中可以是不连续的。然而,分块ID应当沿着图像的分块光栅扫描的方向以递增顺序(例如,单调递增)进行排列。由此,图像中条带的解码顺序可以限制在左上分块的条带ID的递增值范围中。当没有显式地指示分块ID并推断分块ID与分块索引相同时,以下内容可用于在条带头中指示分块ID值。可以指示表示所述条带是否是图像的第一个条带的标志。当标志表示所述条带是图像的第一个条带时,可以不指示该条带的左上分块的分块ID,因为左上分块可以推断为具有最低条带索引的分块(例如,分块索引0–假设分块索引从0开始)。
又如,图像可以包含零个、一个或多个MCTS。MCTS可以包括一个或多个分块。当条带中的分块是MCTS的一部分时,对MCTS进行约束,使得条带中的所有分块都是同一MCTS的一部分。可以进一步约束条带,使得包括MCTS的分块的所有图像的分块配置在MCTS中的分块的位置和大小方面是相同的。在一些示例中,对条带进行约束,使得MCTS只包括在条带中。有两种结果。在这种情况下,每个MCTS位于一个单独的NAL单元中。此外,每个MCTS为矩形形状。
MCTS的指示可以如下:可以在条带头中指示一个标志来表示所述条带是否包括在包括对应条带的接入单元中存在MCTS的NAL单元。在SEI消息中指示MCTS的其它支持信息(例如,由提取MCTS产生的子码流的档次(profile)、层次和级别信息)。或者,可以在SEI消息中指示MCTS的标志指示信息和支持信息。为了能够指示将MCTS边界视为图像边界,例如在指示了分块配置的参数集中,指示表示是否将所有分块边界视为图像边界的语法元素。另外,例如,当其它语法元素不表示将所有分块边界视为与图像边界相同时,可以在条带头中指示表示是否将条带的所有条带边界视为与图像边界相同的语法元素。
仅当语法不表示将所有分块边界视为与图像边界相同时,可以指示表示是否可跨每个分块边界进行环内滤波操作的语法元素。在这种情况下,将分块边界视为图像边界表示,除其它方面外,可以不跨每个分块边界进行环内滤波操作。在其它示例中,与是否将所有分块边界视为图像边界的表示无关,指示表示是否可跨每个分块边界进行环内滤波操作的语法元素。在这种情况下,将分块边界视为图像边界表示仍然可以跨每个分块边界进行环内滤波操作。
在一些示例中,将MCTS边界视为图像边界。此外,还可以使条带头中表示是否将条带边界视为与图像边界相同的语法元素作为表示所述条带是否包括MCTS的标志的条件。在某些情况下,当条带头中的标志表示条带包括MCTS时,可以推断表示将MCTS边界视为图像边界的标志的值。
如果表示将分块或条带的边界视为图像边界,则以下内容适用。在时域亮度运动矢量预测的推导过程中,该过程中使用的右和下图像边界位置分别用pic_height_in_luma_samples–1和pic_width_in_luma_samples–1表示,分别用分块或条带的右和下边界位置(以亮度样本为单位)替换。在亮度样本插值过程中,该过程中使用的左、右、上和下图像边界位置分别用0、pic_height_in_luma_samples–1、0、pic_width_in_luma_samples–1表示,分别用分块或条带的左、右、上和下边界位置(以亮度样本为单位)替换。在色度样本插值过程中,该过程中使用的左、右、上、下图像边界位置分别用0、pic_height_in_luma_samples/SubWidthC–1、0和pic_width_in_luma_samples/SubWidthC–1表示,分别用分块或条带的左、右、上和下边界位置(以亮度样本为单位)替换。
上述机制可以如下实现。定义条带为覆盖图像矩形区域的整数个分块,且这些分块只包括在一个NAL单元中。定义条带头为经编码条带的一部分,包括与条带中表示的所有分块相关的数据元素。定义分块为图像中特定分块列和特定分块行内的CTU的矩形区域。定义分块列为CTU的矩形区域,其高度与图像的高度相等,其宽度通过图像参数集中的语法元素表示。定义分块行为CTU的矩形区域,其高度通过图像参数集中的语法元素表示,其宽度与图像的宽度相等。定位分块扫描为对分割图像的CTU的特定有序排列,其中CTU在分块中的CTU光栅扫描下连续排列,而图像中的分块在图像的分块光栅扫描下连续排列。
本章节详述如何将图像分割成子条带和分块。图像划分为条带和分块。条带是覆盖图像的矩形区域的分块序列。分块是覆盖图像的矩形区域的CTU序列。
当图像采用三个独立的颜色平面(separate_color_plane_flag=1)编码时,一个条带只包括一个颜色分量的CTU,该颜色分量由对应的color_plane_id值标识,图像的每个颜色分量阵列包括具有相同color_plane_id值的条带。图像内具有不同color_plane_id值的经编码条带可以在以下约束条件下相互交织:对于每个color_plane_id值,具有该color_plane_id值的经编码条带的NAL单元应按照每个经编码条带的NAL单元的第一个CTU的分块扫描顺序递增CTU地址的顺序排列。应注意,当separate_colour_plane_flag等于0时,图像的每个CTU正好包括在一个条带中。当separate_color_plane_flag等于1时,颜色分量的每个CTU正好包括在一个条带中(例如,图像的每个CTU的信息正好存在于三个条带中,这三个条带的color_plane_id值不同)。
本说明书中的处理元素的以下划分形成空间或分量划分:将每个图像划分为分量;将每个分量划分为CTB;将每个图像划分为分块列;将每个图像划分为分块行;将每个分块列划分为分块;将每个分块行划分为分块;将每个分块划分为CTU;将每个图像划分为条带;将每个条带划分为分块;将每个条带划分为CTU;将每个CTU划分为CTB;除在分量宽度不是CTB大小的整数倍时,右分量边界的CTB不完整以及在分量高度不是CTB大小的整数倍时,下分量边界的CTB不完整之外,将每个CTB划分为编码块;除在亮度样本中的图像宽度不是亮度CTB大小的整数倍时,右图像边界的CTU不完整以及在亮度样本中的图像高度不是亮度CTB大小的整数倍时,下图像边界的CTU不完整之外,将每个CTU划分为编码单元;将每个编码单元划分为变换单元;将每个编码单元划分为编码块;将每个编码块划分为变换块;将每个变换单元划分为变换块。
相邻块可用性推导过程的输入是:当前块的左上样本相对于当前图像的左上亮度样本的亮度位置(xCurr,yCurr)以及相对于当前图像的左上亮度样本的相邻块覆盖的亮度位置(xNbY,yNbY)。该过程的输出是覆盖位置(xNbY,yNbY)的相邻块的可用性,表示为availableN。相邻块可用性availableN的推导方式如下:如果以下一个或多个条件为真,则availableN设置为假。包括相邻块的条带的top_left_tile_id与包括当前块的条带的top_left_tile_id的值不同,或者相邻块与当前块包括在不同的分块中。
CTB光栅扫描过程和分块扫描过程可以如下:列表ColWidth[i]表示以CTB为单位的第i个分块列的宽度,其中,i的范围为0到num_tile_columns_minus1(包括端值)。该列表ColWidth[i]的推导方式如下:
列表RowHeight[j]表示以CTB为单位的第j个分块行的高度,其中,j的范围为0到num_tile_rows_minus1(包括端值)。该列表RowHeight[j]的推导方式如下:
列表ColBd[i]表示以CTB为单位的第i个分块列边界的位置,其中,i的范围为0到num_tile_columns_minus1+1(包括端值)。该列表ColBd[i]的推导方式如下:
for(ColBd[0]=0,i=0;i<=num_tile_columns_minus1;i++)
ColBd[i+1]=ColBd[i]+ColWidth[i] (6-3)
列表RowBd[j]表示以CTB为单位的第j个分块行边界的位置,其中,j的范围为0到num_tile_rows_minus1+1(包括端值)。该列表RowBd[j]的推导方式如下:
for(RowBd[0]=0,j=0;j<=num_tile_rows_minus1;j++)
RowBd[j+1]=RowBd[j]+RowHeight[j] (6-4)
列表CtbAddrRsToTs[ctbAddrRs]表示从图像的CTB光栅扫描下的CTB地址到分块扫描下的CTB地址的转换,其中,ctbAddrRs的范围为0到PicSizeInCtbsY–1(包括端值)。该列表CtbAddrRsToTs[ctbAddrRs]的推导方式如下:
列表CtbAddrTsToRs[ctbAddrTs]表示从分块扫描下的CTB地址到图像的CTB光栅扫描下的CTB地址的转换,其中,ctbAddrTs的范围为0到PicSizeInCtbsY–1(包括端值)。该列表CtbAddrTsToRs[ctbAddrTs]的推导方式如下:
for(ctbAddrRs=0;ctbAddrRs<PicSizeInCtbsY;ctbAddrRs++) (6-6)
CtbAddrTsToRs[CtbAddrRsToTs[ctbAddrRs]]=ctbAddrRs
列表TileId[ctbAddrTs]表示从分块扫描下的CTB地址到分块ID的转换,其中,ctbAddrTs的范围为0到PicSizeInCtbsY–1(包括端值)。该列表TileId[ctbAddrTs]的推导方式如下:
/>
列表NumCtusInTile[tileIdx]表示从分块索引到分块中CTU的数量的转换,其中,tileIdx的范围为0到PicSizeInCtbsY–1(包括端值)。该列表NumCtusInTile[tileIdx]的推导方式如下:
用于一组NumTilesInPic个tileId值的集合TileIdToIdx[tileId]表示从分块ID到分块索引的转换,列表FirstCtbAddrTs[tileIdx]表示从分块ID到分块扫描下的分块中的第一个CTB的CTB地址的转换,其中,tileIdx的范围为0到NumTilesInPic–1(包括端值)。集合TileIdToIdx[tileId]和列表FirstCtbAddrTs[tileIdx]的推导方式如下:
ColumnWidthInLumaSamples[i]的值表示以亮度样本为单位的第i个分块列的宽度,设置为ColWidth[i]<<CtbLog2SizeY,其中,i的范围为0到num_tile_columns_minus1(包括端值)。RowHeightInLumaSamples[j]的值表示以亮度样本为单位的第j个分块行的高度,设置为RowHeight[j]<<CtbLog2SizeY,其中,j的范围为0到num_tile_rows_minus1(包括端值)。
图像参数集RBSP语法如下:
表1
条带头语法变更如下:
表2
语法slice_data()如下:
表3
/>
图像参数集RBSP语义如下:single_tile_in_pic_flag设置为等于1,表示每个图像中只包括一个分块参考PPS。single_tile_in_pic_flag设置为等于0,表示每个图像中包括多个分块参考PPS。码流一致性可以要求single_tile_in_pic_flag的值对于在编码视频序列(coded video sequence,CVS)内激活的所有PPS应该相同。num_tile_columns_minus1+1表示分割图像的分块列的数量。num_tile_columns_minus1的范围应为0到PicWidthInCtbsY–1(包括端值)。如果不存在num_tile_columns_minus1,则推断num_tile_columns_minus1的值等于0。num_tile_rows_minus1+1表示分割图像的分块行的数量。num_tile_rows_minus1的取值范围应为0到PicHeightInCtbsY–1(包括端值)。如果不存在num_tile_rows_minus1,则推断num_tile_rows_minus1的值等于0。变量NumTilesInPic设置为等于(num_tile_columns_minus1+1)*(num_tile_rows_minus1+1)。
当single_tile_in_pic_flag等于0时,NumTilesInPic应大于0。tile_id_len_minus1+1表示用于表示PPS中(如果存在)的语法元素tile_id_val[i][j]的比特数,和参考PPS的条带头中(如果存在)的语法元素top_left_tile_id和bottom_right_tile_id的比特数。tile_id_len_minus1的取值范围应为Ceil(Log2(NumTilesInPic)到15(包括端值)。explicit_tile_id_flag设置为等于1,表示显式地指示每个分块的分块ID。explicit_tile_id_flag设置为等于0,表示不显式地指示分块ID。tile_id_val[i][j]表示第i个分块列和第j个分块行中分块的分块ID。Tile_id_val[i][j]的长度是tile_id_len_minus1+1个比特。
对于0到num_tile_columns_minus1范围内(包括端值)的任意整数m和0到num_tile_rows_minus1范围内(包括端值)的任意整数n,当i不等于m或者j不等于n时,tile_id_val[i][j]不等于tile_id_val[m][n],当j*(num_tile_columns_minus1+1)+i小于n*(num_tile_columns_minus1+1)+m时,tile_id_val[i][j]小于tile_id_val[m][n]。uniform_tile_spacing_flag设置为等于1,表示分块列边界和分块行边界均匀分布在图像上。uniform_tile_spacing_flag设置为等于0,表示分块列边界和分块行边界不是均匀分布在图像上,而是使用语法元素tile_column_width_minus1[i]and tile_row_height_minus1[i]显式地指示。如果不存在uniform_tile_spacing_flag,则推断uniform_tile_spacing_flag的值等于1。tile_column_width_minus1[i]+1表示以CTB为单位的第i个分块列的宽度。tile_row_height_minus1[i]+1表示以CTB为单位的第i个分块行的高度。
通过调用CTB光栅扫描和分块扫描转换过程来推导以下变量:列表ColWidth[i],表示以CTB为单位的第i个分块列的宽度,其中,i的范围为0到num_tile_columns_minus1(包括端值);列表RowHeight[j],表示以CTB为单位的第j个分块行的高度,其中,j的范围为0到num_tile_rows_minus1(包括端值);列表ColBd[i],表示以CTB为单位的第i个分块列边界的位置,其中,i的范围为0到num_tile_columns_minus1+1(包括端值);列表RowBd[j],表示以CTB为单位的第j个分块行边界的位置,其中,j的范围为0到num_tile_rows_minus1+1(包括端值);列表CtbAddrRsToTs[ctbAddrRs],表示从图像的CTB光栅扫描下的CTB地址到分块扫描下的CTB地址的转换,其中,ctbAddrRs的范围为0到PicSizeInCtbsY–1(包括端值);列表CtbAddrTsToRs[ctbAddrTs],表示从分块扫描下的CTB地址到图像的CTB光栅扫描下的CTB地址的转换,其中,ctbAddrTs的范围为0到PicSizeInCtbsY–1(包括端值);列表TileId[ctbAddrTs],表示从分块扫描下的CTB地址到分块ID的转换,其中,ctbAddrTs的范围为0到PicSizeInCtbsY–1(包括端值);列表NumCtusInTile[tileIdx],表示从分块索引到分块中CTU的数量的转换,其中,tileIdx的范围为0到PicSizeInCtbsY-1(包括端值);用于一组NumTilesInPic个tileId值的集合TileIdToIdx[tileId]表示从分块ID到分块索引的转换,列表FirstCtbAddrTs[tileIdx]表示从分块ID到分块扫描下的分块中的第一个CTB的CTB地址的转换,其中,tileIdx的范围为0到NumTilesInPic–1(包括端值);列表ColumnWidthInLumaSamples[i],表示以亮度样本为单位的第i个分块列的宽度,其中,i的范围为0到num_tile_columns_minus1(包括端值);列表RowHeightInLumaSamples[j],表示以亮度样本为单位的第j个分块行的高度,其中,j的范围为0到num_tile_rows_minus1(包括端值)。
ColumnWidthInLumaSamples[i]的值和RowHeightInLumaSamples[j]的值均应大于0,其中,i的范围为0到num_tile_columns_minus1(包括端值),j的范围为0到num_tile_rows_minus1(包括端值)。tile_boundary_treated_as_picture_boundary_flag设置为等于1,表示在解码过程中将每个分块边界视为与参考PPS的图像的图像边界相同。
tile_boundary_treated_as_picture_boundary_flag设置为等于0,表示在解码过程中可以将每个分块边界视为与参考PPS的图像的图像边界相同,也可以不相同。如果不存在
tile_boundary_treated_as_picture_boundary_flag,则推断
tile_boundary_treated_as_picture_boundary_flag的值等于1。loop_filter_across_tiles_enabled_flag设置为等于1,表示在参考PPS的图像中可以跨分块边界执行环内滤波操作。
loop_filter_across_tiles_enabled_flag设置为等于0,表示在参考PPS的图像中不跨分块边界执行环内滤波操作。环内滤波操作包括去块效应滤波操作、样本自适应偏移滤波操作以及自适应环路滤波操作。如果不存在loop_filter_across_tiles_enabled_flag,则推断
loop_filter_across_tiles_enabled_flag的值等于0。
条带头语义如下:如果存在slice_pic_parameter_set_id,条带头语法元素slice_pic_parameter_set_id的值在经译码图像的所有条带头中应相同。slice_pic_parameter_set_id表示当前使用的PPS的pps_pic_parameter_set_id的值。slice_pic_parameter_set_id的取值范围为0到63(包括端值)。single_tile_in_slice_flag设置为等于1,表示每个条带中只包括一个分块。single_picture_in_pic_flag设置为等于0,表示每个条带中包括多个分块。top_left_tile_id表示位于条带左上角的分块的分块ID。top_left_tile_id的长度是tile_id_len_minus1+1个比特。top_left_tile_id的值不应等于同一经译码图像的任何其它经译码条带的NAL单元的top_left_tile_id的值。当图像中包括多个条带时,图像中条带的解码顺序应在递增的top_left_tile_id值范围内。bottom_right_tile_id表示位于条带右下角的分块的分块ID。bottom_right_tile_id的长度是tile_id_len_minus1+1个比特。如果不存在bottom_right_tile_id,则推断bottom_right_tile_id的值等于top_left_tile_id。
变量NumTileRowsInSlice、NumTileColumnsInSlice和NumTilesInSlice的推导方式如下:
deltaTileIdx=TileIdToIdx[bottom_right_tile_id]–TileIdToIdx[top_left_tile_id]
NumTileRowsInSlice=(deltaTileIdx/(num_tile_columns_minus1+1))+1 (7-25)
NumTileColumnsInSlice=(deltaTileIdx%(num_tile_columns_minus1+1))+1
NumTilesInSlice=NumTileRowsInSlice*NumTileColumnsInSlice
slice_type表示根据表4的条带的译码类型。
表4
slice_type slice_type的名称
0 B(B条带)
1 P(P条带)
2 I(I条带)
当nal_unit_type的值在TBD范围(包括端值)内时,例如,图像是帧内随机接入图像(IntraRandom Access Picture,IRAP)图像,则slice_type应等于2。log2_diff_ctu_max_bt_size表示可以使用二叉树划分进行划分的编码块的亮度CTB大小与最大亮度大小(宽度或高度)之间的差值。log2_diff_ctu_max_bt_size的取值范围应为0到CtbLog2SizeY–MinCbLog2SizeY(包括端值)。如果log2_diff_ctu_max_bt_size不存在,则推断log2_diff_ctu_max_bt_size的值等于2。
变量MinQtLog2SizeY、MaxBtLog2SizeY、MinBtLog2SizeY、MaxTtLog2SizeY、MinTtLog2SizeY、MaxBtSizeY、MinBtSizeY、MaxTtSizeY、MinTtSizeY和MaxMttDepth的推导方式如下:
MinQtLog2SizeY=(slice_type==I)?MinQtLog2SizeIntraY:MinQtLog2SizeInterY (7-26)
MaxBtLog2SizeY=CtbLog2SizeY–log2_diff_ctu_max_bt_size (7-27)
MinBtLog2SizeY=MinCbLog2SizeY (7-28)
MaxTtLog2SizeY=(slice_type==I)?5:6 (7-29)
MinTtLog2SizeY=MinCbLog2SizeY (7-30)
MinQtSizeY=1<<MinQtLog2SizeY (7-31)
MaxBtSizeY = 1 << MaxBtLog2SizeY (7-32)
MinBtSizeY = 1 << MinBtLog2SizeY (7-33)
MaxTtSizeY = 1 << MaxTtLog2SizeY (7-34)
MinTtSizeY = 1 << MinTtLog2SizeY (7-35)
MaxMttDepth=(slice_type==I)?max_mtt_hierarchy_depth_intra_slices:
max_mtt_hierarchy_depth_inter_slices(7-36)
dep_quent_enabled_flag设置为等于0,表示禁用依赖性量化。dep_quent_enabled_flag设置为等于1,表示启用依赖性量化。sign_data_hiding_enabled_flag设置为等于0,表示禁用符号位隐藏。sign_data_hiding_enabled_flag设置为等于1,表示启用符号位隐藏。如果不存在sign_data_hiding_enabled_flag,则推断sign_data_hiding_enabled_flag的值等于0。
slice_boundary_treated_as_pic_boundary_flag设置为等于1,表示在解码过程中将条带的每个条带边界视为图像边界。Slice_boundary_treated_as_pic_boundary_flag=0表示在解码过程中可以将每个分块边界视为与图像边界相同,也可以不相同。如果不存在
slice_boundary_treated_as_pic_boundary_flag,则推断
slice_boundary_treated_as_pic_boundary_flag的值等于1。offset_len_minus1+1表示以比特为单位的语法元素entry_point_offset_minus1[i]的长度。offset_len_minus1的值应在范围0至31内(包括0和31)。entry_point_offset_minus1[i]+1表示以字节为单位的第i个入口点偏移,该第i个入口点偏移通过offset_len_minus1+1个比特表示。紧跟条带头的条带数据由NumTilesInSlice个子集组成,子集索引值的取值范围为0到NumTilesInSlice–1(包括端值)。条带数据的第一个字节是字节0。如果存在,出现在经编码条带的NAL单元的条带数据部分中的预防混淆字节会被计为条带数据的一部分,以达到子集识别的目的。
子集0包括经编码条带段数据的字节0到字节entry_point_offset_minus1[0](包括端值),子集k包括经编码条带数据的字节firstByte[k]到字节lastByte[k](包括端值),其中,k的范围为1到NumTilesInSlice–2(包括端值),字节firstByte[k]和字节lastByte[k]定义如下:
lastByte[ k ] = firstByte[ k ] + entry_point_offset_minus1[ k ] (7-38)
最后一个子集(其子集索引等于NumTilesInSlice–1)包括经编码条带数据的剩余字节。每个子集应包括条带中同一分块内的所有CTU的所有编码比特。
通用条带数据语义如下:end_of_tile_one_bit应等于1。对于每个分块,变量LeftBoundaryPos、TopBoundaryPos、RightBoundaryPos和BotBoundaryPos的推导方式如下:如果tile_boundary_treated_as_pic_boundary_flag为真,则:
tileColIdx = CurrTileIdx / ( num_tile_columns_minus1 + 1 ) (7-39)
tileRowIdx = CurrTileIdx % ( num_tile_columns_minus1 + 1 ) (7-40)
LeftBoundaryPos = ColBd[ tileColIdx ] << CtbLog2SizeY (7-41)
RightBoundaryPos=((ColBd[tileColIdx]+ColWidth[tileColIdx])<<CtbLog2SizeY)–1 (7-42)
TopBoundaryPos = RowBd[ tileRowIdx ] << CtbLog2SizeY (7-43)
BotBoundaryPos=((RowBd[tileRowIdx]+RowHeight[tileRowIdx])<<
CtbLog2SizeY)–1(7-44)
否则,如果slice_boundary_treated_as_pic_boundary_flag为真,则:
sliceFirstTileColIdx=TileIdToIdx[top_left_tile_id]/(num_tile_columns_minus1+1)
(7-45)
sliceFirstTileRowIdx=TileIdToIdx[top_left_tile_id]%(num_tile_columns_minus1+1)
(7-46)
sliceLastTileColIdx=TileIdToIdx[bottom_right_tile_id]/(num_tile_columns_minus1+1)
(7-47)
sliceLastTileRowIdx=TileIdToIdx[bottom_right_tile_id]%(num_tile_columns_minus1+
1) (7-48)
LeftBoundaryPos = ColBd[ sliceFirstTileColIdx ] << CtbLog2SizeY (7-49)
RightBoundaryPos=((ColBd[sliceLastTileColIdx]+ColWidth[sliceLastTileColIdx])
<< CtbLog2SizeY ) – 1 (7-50)
TopBoundaryPos = RowBd[ sliceFirstTileRowIdx ] << CtbLog2SizeY (7-51)
BotBoundaryPos=((RowBd[sliceLastTileRowIdx]+RowHeight[sliceLastTileRowIdx])
<< CtbLog2SizeY ) – 1 (7-52)
否则(slice_boundary_treated_as_pic_boundary_flag为假(False),则:
LeftBoundaryPos = 0 (7-53)
RightBoundaryPos = pic_width_in_luma_samples – 1 (7-54)
TopBoundaryPos = 0 (7-55)
BotBoundaryPos = pic_height_in_luma_samples – 1 (7-56)
时域亮度运动矢量预测的推导方式如下:如果yCb>>CtbLog2SizeY等于yColBr>>CtbLog2SizeY,yColBr小于pic_height_in_luma_samples,xColBr小于pic_width_in_luma_samples,则:
变量colCb表示覆盖ColPic表示的并置图像内的((xColBr>>3)<<3,(yColBr>>3)<<3)给出的修改位置的亮度编码块。亮度位置(xColCb,yColCb)设置为等于colCb表示的并置亮度样本编码块的左上样本相对于ColPic表示的并置图像的左上亮度样本的位置。将currCb、colCb、(xColCb,yColCb)、refIdxLX和设置为0的控制参数controlParaFlag作为输入,调用并置运动矢量的推导过程,将输出赋值给mvLXCol和availableFlagLXCol。如果yCb>>CtbLog2SizeY等于yColBr>>CtbLog2SizeY,yColBr小于或等于BotBoundaryPos,xColBr小于或等于RightBoundaryPos,则:变量colCb表示覆盖ColPic表示的并置图像内的((xColBr>>3)<<3,(yColBr>>3)<<3)给出的修改位置的亮度编码块。亮度位置(xColCb,yColCb)设置为等于colCb表示的并置亮度样本编码块的左上样本相对于ColPic表示的并置图像的左上亮度样本的位置。将currCb、colCb、(xColCb,yColCb)、refIdxLX和设置为0的控制参数controlParaFlag作为输入,调用并置运动矢量的推导过程,将输出赋值给mvLXCol和availableFlagLXCol。
在一些示例中,时域亮度运动矢量预测的推导方式如下:如果yCb>>CtbLog2SizeY等于yColBr>>CtbLog2SizeY,yColBr小于pic_height_in_luma_samples,xColBr小于pic_width_in_luma_samples,则:变量colCb表示覆盖ColPic表示的并置图像内的((xColBr>>3)<<3,(yColBr>>3)<<3)给出的修改位置的亮度编码块。亮度位置(xColCb,yColCb)设置为等于colCb表示的并置亮度样本编码块的左上样本相对于ColPic表示的并置图像的左上亮度样本的位置。将currCb、colCb、(xColCb,yColCb)、refIdxLX和设置为0的控制参数controlParaFlag作为输入,调用并置运动矢量的推导过程,将输出赋值给mvLXCol和availableFlagLXCol。如果yCb>>CtbLog2SizeY等于yColBr>>CtbLog2SizeY,则xColCtr=Min(xColCtr,RightBoundaryPos),yColCtr=Min(yColCtr,BotBoundaryPos)。变量colCb表示覆盖ColPic表示的并置图像内的((xColBr>>3)<<3,(yColBr>>3)<<3)给出的修改位置的亮度编码块。亮度位置(xColCb,yColCb)设置为等于colCb表示的并置亮度样本编码块的左上样本相对于ColPic表示的并置图像的左上亮度样本的位置。将currCb、colCb、(xColCb,yColCb)、refIdxLX和设置为0的控制参数controlParaFlag作为输入,调用并置运动矢量的推导过程,将输出赋值给mvLXCol和availableFlagLXCol。
色度样本插值过程如下:该过程的输入为:整样本单元中的亮度位置(xIntL,yIntL)、分数样本单元中的亮度位置(xFracL,yFracL)和亮度参考样本阵列refPicLXL。该过程的输出是预测亮度样本值predSampleLXL。变量shift1、shift2和shift3的推导方式如下:变量shift1设置为等于Min(4,BitDepthY–8),变量shift2设置为等于6,变量shift3设置为等于Max(2,14–BitDepthY)。色度样本预测值predSampleLXL的推导方式如下:如果xFracL和yFracL都等于0,则predSampleLXL的值的推导方式如下:
predSampleLXL=refPicLXL[xIntL][yIntL]<<shift3 (8-228)
否则,如果xFracL不等于0,yFracL等于0,则predSampleLXL的值的推导方式如下:
否则,如果xFracL等于0,yFracL不等于0,则predSampleLXL的值的推导方式如下:
否则,如果xFracL不等于0,yFracL不等于0,则predSampleLXL的值的推导方式如下:样本阵列temp[n]的推导方式如下,其中,n=0..7:
yPosL = Clip3( TopBoundaryPos, BotBoundaryPos, yIntL + n – 3 ) (8-228)
色度样本预测值predSampleLXL的推导方式如下:
表5
色度样本插值过程如下:该过程的输入为:整样本单元中的色度位置(xIntC,yIntC)、第8个分数样本单元中的色度位置(xFracC,yFracC)和色度参考样本阵列refPicLXC。该过程的输出是色度样本预测值predSampleLXC。变量shift1、shift2、shift3、picWC和picHC的推导方式如下:变量shift1设置为等于Min(4,BitDepthC–8),变量shift2设置为等于6,变量shift3设置为等于Max(2,14–BitDepthC)。变量lPos、rPos、tPos和bPos设置如下:
lPos=LeftBoundaryPos/SubWidthC (8-228)
rPos=(RightBoundaryPos+1)/SubWidthC (8-228)
tPos=TopBoundaryPos/SubHeightC (8-228)
bPos=(BotBoundaryPos+1)/SubHeightC (8-228)
色度样本预测值predSampleLXC的推导方式如下:如果xFracC和yFracC都等于0,则predSampleLXC的值的推导方式如下:
predSampleLXC=refPicLXC[xIntC][yIntC]<<shift3 (8-228)
否则,如果xFracC不等于0,yFracC等于0,则predSampleLXC的值的推导方式如下:
/>
否则,如果xFracC等于0,yFracC不等于0,则predSampleLXC的值的推导方式如下:
否则,如果xFracC不等于0,yFracC不等于0,则predSampleLXC的值的推导方式如下:样本阵列temp[n]的推导方式如下,其中,n=0..3:
yPosC=Clip3(tPos,bPos,yIntC+n–1) (8-228)
色度样本预测值predSampleLXC的推导方式如下:
表6
/>
条带数据的上下文自适应二进制算术编码(Context-Based Adaptive BinaryArithmetic Coding,CABAC)解析过程如下:在开始解析CTU语法时调用初始化过程,CTU是分块中的第一个CTU。注意:由于条带数据的起点都是分块的起点,因此该语句也涵盖了条带数据的起点。
在另一个示例中,CTB光栅扫描过程和分块扫描过程如下:列表ColWidth[i]表示以CTB为单位的第i个分块列的宽度,其中,i的范围为0到num_tile_columns_minus1(包括端值)。
该列表ColWidth[i]的推导方式如下:
/>
列表RowHeight[j]表示以CTB为单位的第j个分块行的高度,其中,j的范围为0到num_tile_rows_minus1(包括端值)。该列表RowHeight[j]的推导方式如下:
列表ColBd[i]表示以CTB为单位的第i个分块列边界的位置,其中,i的范围为0到num_tile_columns_minus1+1(包括端值)。该列表ColBd[i]的推导方式如下:
for(ColBd[0]=0,i=0;i<=num_tile_columns_minus1;i++)
ColBd[i+1]=ColBd[i]+ColWidth[i] (6-3)
列表RowBd[j]表示以CTB为单位的第j个分块行边界的位置,其中,j的范围为0到num_tile_rows_minus1+1(包括端值)。该列表RowBd[j]的推导方式如下:
for(RowBd[0]=0,j=0;j<=num_tile_rows_minus1;j++)
RowBd[j+1]=RowBd[j]+RowHeight[j] (6-4)
列表CtbAddrRsToTs[ctbAddrRs]表示从图像的CTB光栅扫描下的CTB地址到分块扫描下的CTB地址的转换,其中,ctbAddrRs的范围为0到PicSizeInCtbsY–1(包括端值)。该列表CtbAddrRsToTs[ctbAddrRs]的推导方式如下:
/>
列表CtbAddrTsToRs[ctbAddrTs]表示从分块扫描下的CTB地址到图像的CTB光栅扫描下的CTB地址的转换,其中,ctbAddrTs的范围为0到PicSizeInCtbsY–1(包括端值)。该列表CtbAddrTsToRs[ctbAddrTs]的推导方式如下:
for(ctbAddrRs=0;ctbAddrRs<PicSizeInCtbsY;ctbAddrRs++) (6-6)
CtbAddrTsToRs[CtbAddrRsToTs[ctbAddrRs]]=ctbAddrRs
列表TileId[ctbAddrTs]表示从分块扫描下的CTB地址到分块ID的转换,其中,ctbAddrTs的范围为0到PicSizeInCtbsY–1(包括端值)。该列表TileId[ctbAddrTs]的推导方式如下:
列表NumCtusInTile[tileIdx]表示从分块索引到分块中CTU的数量的转换,其中,tileIdx的范围为0到PicSizeInCtbsY–1(包括端值)。该列表NumCtusInTile[tileIdx]的推导方式如下:
用于一组NumTilesInPic个tileId值的集合TileIdToIdx[tileId]表示从分块ID到分块索引的转换,列表FirstCtbAddrTs[tileIdx]表示从分块ID到分块扫描下的分块的第一个CTB的CTB地址的转换,其中,tileIdx的范围为0到NumTilesInPic–1(包括端值)。列表TileIdToIdx[tileId]和列表FirstCtbAddrTs[tileIdx]的推导方式如下:
/>
ColumnWidthInLumaSamples[i]的值表示以亮度样本为单位的第i个分块列的宽度,并设置为等于ColWidth[i]<<CtbLog2SizeY,其中,i的范围为0到num_tile_columns_minus1(包括端值)。RowHeightInLumaSamples[j]的值表示以亮度样本为单位的第j个分块行的高度,并设置为等于RowHeight[j]<<CtbLog2SizeY,其中,j的范围为0到num_tile_rows_minus1(包括端值)。
图像参数集RBSP语法如下:
表7
/>
条带头语法如下:
表8
/>
条带头语义如下:如果存在slice_pic_parameter_set_id,则条带头语法元素slice_pic_parameter_set_id的值在经译码图像的所有条带头中应相同。slice_pic_parameter_set_id表示当前使用的PPS的pps_pic_parameter_set_id的值。slice_pic_parameter_set_id的取值范围为0到63(包括端值)。first_slice_in_pic_flag设置为等于1,表示该条带是图像中按解码顺序排列的第一个条带。first_slice_in_pic_flag设置为等于0,表示该条带不是图像中按解码顺序排列的第一个条带。Single_tile_in_slice_flag设置为等于1,表示条带中只包括一个分块。single_picture_in_pic_flag=0表示条带中包括多个分块。top_left_tile_id表示位于条带左上角的分块的分块ID。top_left_tile_id的长度为Ceil(Log2((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)))个比特。top_left_tile_id的值不应等于同一经译码图像的任何其它经译码条带的NAL单元的top_left_tile_id的值。如果不存在top_left_tile_id,则推断top_left_tile_id的值等于0。当图像中包括多个条带时,图像中条带的解码顺序应以递增的top_left_tile_id值为准。bottom_right_tile_id表示位于条带右下角的分块的分块ID。bottom_right_tile_id的长度为Ceil(Log2((num_tile_rows_minus1+1)*(num_tile_columns_minus1+1)))个比特。如果不存在bottom_right_tile_id,则推断bottom_right_tile_id的值等于top_left_tile_id。变量NumTileRowsInSlice、NumTileColumnsInSlice和NumTilesInSlice的推导方式如下:
all_tiles_mcts_flag设置为等于1,表示条带中的所有分块都是MCTS的一部分,MCTS只包括当前接入单元的条带中的分块,并且将MCTS边界(与条带的条带边界并置)视为与图像边界相同。all_tiles_mcts_flag设置为等于0,表示all_tiles_mcts_flag等于1表示的上述内容可能适用或可能不适用。slice_boundary_treated_as_pic_boundary_flag设置为等于1,表示在解码过程中将条带的每个条带边界视为与图像边界相同。
slice_boudnary_treated_as_pic_boundary_flag设置为等于0,表示在解码过程中可以将每个分块边界视为与图像边界相同,也可以不相同。如果不存在
slice_boundary_treated_as_pic_boundary_flag,则推断
slice_boundary_treated_as_pic_boundary_flag的值等于1。每个子集应包括条带中同一分块内的所有CTU的所有编码比特。
图7是具有包括一个分块的条带的示例性图像700的示意图。例如,图像700可用于实现图像600。此外,图像700可以由编解码系统200、编码器300和/或解码器400等编码在码流500中以及从码流500中解码。此外,可以分割图像700以实现方法100中的编码和解码。
图像700可以包括条带721和分块723,两者可以分别基本上类似于条带521和/或621和分块523和/或623。在一些情况下,条带721可包括一个分块723。在一些情况下,图像700可包括一个分块723。图7描述了这两种情况。分块723可以进一步细分为CTU和编码块,进行编码/解码。当条带721和/或图像700包括很少视觉数据时,可能会发生这种情况。例如,当条带721包括大量白色空间和/或黑色空间且很少或没有其它视觉信息(例如,所述条带包括致盲聚光灯或黑色洞穴/建筑入口)时,条带721可以包括一个分块723。又如,当整个图像是白色和/或黑色时,例如在场景之间的淡出期间,图像700可以包括一个分块723。这种现象在视频序列中比较常见。条带和分块方案可以支持压缩具有大量细节的高分辨率图像的相对复杂的计算。然而,这种复杂的计算使用大量的输入数据并使用解码器侧的大量处理资源。这些计算可能不提供图像(例如,图像700)的其它视觉信息,并且可能需要能减少压缩的输入。
因此,当出现关于图像700所描述的场景时,编码器可以使用一个或多个标志进行指示(signal)。解码器可以读取这些标志,并忽略对应计算,从而减少解码器侧的计算资源占用。由于省略了这些计算,相关输入也可以从码流中省略,从而提高了压缩和译码效率。可以省略的数据的示例包括条带721的边界(因为当图像700中只包括一个分块723时,只存在一个分块721)、分块ID、分块列数据、分块行数据、分块间距数据和/或分块入口点偏移。可以省略的计算包括确定右下角分块ID作为确定条带721的边界、确定分块723的入口点偏移、确定分块列和分块行、确定分块数量、确定分块间距等的一部分。在一个示例中,可以设置single_tile_in_slice_flag表示条带721中只包括一个分块723。可以在与条带721相关的条带头(例如条带头514)中指示single_tile_in_slice_flag。在另一个示例中,可以设置single_tile_in_pic_flag表示图像700中只有包括一个分块723。可以在与图像700相关的PPS(例如,PPS 512)中指示single_tile_in_pic_flag。
图8为示例性视频译码设备800的示意图。视频译码设备800适用于实现本文所述的所公开示例/实施例。视频译码设备800包括下行端口820、上行端口850和/或收发单元(Tx/Rx)810。收发单元810包括发送器和/或接收器,用于通过网络在上行和/或下行进行数据通信。视频译码设备800还包括处理器830和存储器832。处理器830包括逻辑单元和/或中央处理器(central processing unit,CPU),以处理数据。存储器832用于存储所述数据。视频译码设备800还可以包括与上行端口850和/或下行端口820耦合的电组件、光电(optical-to-electrical,OE)组件、电光(electrical-to-optical,EO)组件,和/或无线通信组件,用于通过电通信网络、光通信网络或无线通信网络进行数据通信。视频译码设备800还可以包括输入和/或输出(input/output,I/O)设备860,用于与用户进行数据通信。I/O设备860可以包括输出设备,例如显示视频数据的显示器、输出音频数据的扬声器等。I/O设备860还可以包括键盘、鼠标、轨迹球等输入设备和/或与上述输出设备进行交互的对应接口。
处理器830由硬件和软件实现。处理器830可以实现为一个或多个CPU芯片、一个或多个核(例如,作为多核处理器)、一个或多个现场可编程门阵列(field-programmablegate array,FPGA)、一个或多个专用集成电路(application specific integratedcircuit,ASIC)以及一个或多个数字信号处理器(digital signal processor,DSP)。处理器830与下行端口820、收发单元810、上行端口850和存储器832通信。处理器830包括译码模块814。译码模块814实现本文描述的公开实施例,例如方法100、方法900和/或方法1000,它们可以采用码流500、图像600和/或图像700。译码模块814还可以实现本文描述的任何其它方法/机制。此外,译码模块814可以实现编解码系统200、编码器300和/或解码器400。例如,译码模块814可以将图像分割成条带,将条带分割成分块,将分块分割成CTU,将CTU分割成块,并在充当编码器时对块进行编码。此外,译码模块814可以通过码流中的标志指示(signal)图像和/或条带何时包括一个分块。此外,当译码模块814充当解码器时,可以通过从码流中读取这些标志来确定图像和/或条带何时包括一个分块。这有助于解码器省略与多分块环境相关的各种计算,提高了压缩和译码效率,同时减少了解码器的计算时间。因此,译码模块814使视频译码设备800在分割和译码视频数据时提供其它功能和/或译码效率。因此,译码模块814改进了视频译码设备800的功能并解决了针对视频译码技术的问题。此外,译码模块814影响了视频译码设备800到不同状态的转换。或者,编码模块814可以实现为存储在存储器832中并由处理器830执行的指令(例如实现为存储在非瞬时性介质中的计算机程序产品)。
存储器832包括一种或多种存储器类型,例如磁盘、磁带机、固态硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、闪存、三态内容寻址存储器(ternary content-addressable memory,TCAM)、静态随机存取存储器(staticrandom-access memory,SRAM)等。存储器832可以用作溢出数据存储设备,以在选择程序来执行时存储这些程序以及存储在执行程序过程中读取的指令和数据。
图9为将具有包括一个分块的条带的图像(例如,图像600和/或700)编码到码流(例如,码流500)中的示例性方法900的流程图。方法900可以由编解码系统200、编码器300和/或视频译码设备800等编码器在执行方法100时执行。
编码器接收到包括多个图像的视频序列并确定将该视频序列编码到码流中时,开始执行方法900。所述视频序列在编码之前被分割成图像(picture/image)/帧以进行进一步分割。在步骤901中,将第一图像分割成一个或多个条带。一个或多个条带分割成一个或多个分块。一个或多个分块分割成一个或多个CTU。一个或多个CTU进一步分割成一个或多个编码块。
在步骤903中,编码器确定第一图像中的第一条带在分割后包括一个分块。然后,编码器可以将第一标志编码到码流中,表示第一条带包括一个分块。例如,可以将第一标志编码到与第一条带相关的条带头中。在一个特定示例中,所述第一标志是设置为1的single_tile_in_slice_flag,表示所述第一条带中只有一个分块。当设置第一标志时,编码器也可以省略某些项目。例如,编码器可以根据确定所述第一条带包括所述一个分块,可以从码流中省略所述第一条带的右下角分块ID。在另一个示例中,编码器可以根据确定所述第一条带包括所述一个分块,从码流中省略与所述第一条带的分块相关的入口点偏移。
在可选步骤905中,编码器可以确定包括第一条带的第一图像在分割后也包括一个分块。然后,编码器可以将第二标志编码到码流中,表示第一图像包括一个分块。例如,可以将第二标志编码到与第一图像相关的PPS中。在一个特定示例中,所述第二标志可以是设置为1的single_tile_in_pic_flag,表示所述第一图像中只包括一个分块。当设置第二标志时,编码器也可以省略某些项目。例如,当设置第二标志时,编码器可以省略与第一图像中的分块列和分块行相关的数据。
在步骤907中,编码器将第一图像、第一条带、第一分块、CTU和编码块编码到码流中。然后,编码器可以传输包括第一标志和/或第二标志的码流,以支持对第一条带和/或第一图像进行解码。
图10为从码流(例如,码流500)中解码出具有包括一个分块的条带的图像(例如,图像600和/或700)的示例性方法1000的流程图。方法1000可以由编解码系统200、解码器400和/或视频译码设备800等解码器在执行方法100时执行。
解码器开始接收表示视频序列的经译码数据的码流,例如作为方法900的结果时,开始执行方法1000。在步骤1001中,在解码器侧接收码流。所述码流包括划分为一个或多个条带的图像数据,所述一个或多个条带进一步划分为一个或多个分块。一个或多个分块进一步划分为CTU,CTU划分为编码块。
在步骤1003中,解码器根据第一标志,确定图像数据中的第一条带包括一个分块。例如,可以从与第一条带相关的条带头获取第一标志。在一个特定示例中,所述第一标志是设置为1的single_tile_in_slice_flag,表示所述第一条带中只有一个分块。当设置第一标志时,解码器可以省略某些过程。例如,根据确定所述第一条带包括所述一个分块,可以在解码期间省略所述第一条带的右下角分块ID的搜索。又如,根据确定所述第一条带包括所述一个分块,也可以省略与所述第一条带的分块相关的入口点偏移的搜索。
在步骤1005中,可选地,解码器也可以根据第二标志,确定图像数据中的第一图像包括一个分块。例如,可以将第二标志编码到与第一图像相关的PPS中。在一个特定示例中,所述第二标志可以是设置为1的single_tile_in_pic_flag,表示所述第一图像中只包括一个分块。当设置第二标志时,解码器可以省略某些过程。例如,解码器可以省略与当设置第二标志时根据确定第一图像包括一个分块,确定第一图像的分块行和分块列相关的过程。
在步骤1007中,解码器可以对第一条带进行解码,以生成重建图像。此外,可以对第一条带进行解码,作为对第一图像进行解码以生成重建图像的一部分。在步骤1009中,解码器还可以将重建图像作为重建视频序列的一部分向显示器转发。
图11为在码流(例如,码流500)中对包括图像(例如,图像600和/或700)进行译码的示例性系统1100的示意图。系统1100可以由编解码系统200、编码器300、解码器400和/或视频译码设备800等编码器和解码器实现。此外,系统1100可以用于实现方法100、方法900和/或方法1000。
系统1100包括视频编码器1102。视频编码器1102包括分割模块1101,用于将第一图像分割成一个或多个条带和一个或多个分块。所述视频编码器1102还包括:确定模块1103,用于确定第一条带分割后包括一个分块。所述视频编码器1102还包括:编码模块1105,用于对第一标志进行编码,表示所述第一条带包括所述一个分块;将所述第一条带编码到码流中。所述视频编码器1102还包括:发送模块1107,用于发送包括所述第一标志的所述码流以支持对所述第一条带进行解码。视频编码器1102还可以用于执行方法900的任一步骤。
系统1100还包括视频解码器1110。视频解码器1110包括:接收模块1111,用于接收码流,所述码流包括划分为一个或多个条带和一个或多个分块的图像数据。所述视频解码器1110还包括:确定模块1113,用于根据第一标志,确定第一条带包括一个分块。所述视频解码器1110还包括:解码模块1115,用于对所述第一条带进行解码,以生成重建图像。视频解码器1110还可以用于执行方法1000的任一步骤。
当第一组件和第二组件之间除了线、迹或其它介质之外没有其它中间组件时,第一组件直接与第二组件耦合。当第一组件和第二组件之间存在线、迹或其它介质之外的其它中间组件时,第一组件间接与第二组件耦合。术语“耦合”及其变体包括直接耦合和间接耦合。除非另有说明否则使用术语“约”是指以下描述的数字的±10%。
还应当理解,本文中阐述的示例性方法的步骤不一定需要按照所描述的顺序执行,并且这些方法的步骤的顺序应当理解为仅仅是示例性的。同样地,在与本发明各种实施例相一致的方法中,这些方法可以包括其它步骤,并且某些步骤可以省略或合并。
虽然本发明提供多个具体实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的示例应是说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或组件可以在另一系统中组合或集成,或者某些特征可以省略或不实现。
此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、组件、技术或方法进行组合或集成。其它改变、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离本文所公开的精神和范围。

Claims (10)

1.一种解码方法,其特征在于,所述方法包括:
接收码流,其中,所述码流包括划分为一个或多个条带(slice)的图像数据,所述一个或多个条带进一步划分为一个或多个分块(tile);
根据第一标志,确定第一条带包括的所述分块的数量,所述第一条带为所述一个或多个条带中的任意一个条带;
确定所述第一条带的左上角分块的分块标识符(identifier,ID);
根据所述第一条带包括的所述分块的数量和所述第一条带的左上角分块的分块ID,解码所述第一条带。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据第二标志的取值,确定是否跨分块边界执行环内滤波操作。
3.根据权利要求2所述的方法,其特征在于,当所述第二标志取值为0时,表示不跨分块边界执行环内滤波操作;当所述第二标志取值为1时,表示可以跨分块边界执行环内滤波操作。
4.一种编码方法,其特征在于,所述方法包括:
将第一图像分割成一个或多个条带(slice);
将所述一个或多个条带进一步分割成一个或多个分块(tile);
编码第一标志到码流中,所述第一标志用于确定第一条带包括的所述分块的数量,所述第一条带为所述一个或多个条带中的任意一个条带;
编码所述第一条带到所述码流中。
5.根据权利要求4所述的方法,其特征在于,所述编码所述第一条带包括:根据所述第一条带包括的所述分块的数量和所述第一条带的左上角分块的分块ID,编码所述第一条带。
6.根据权利要求4或5所述的方法,其特征在于,还包括:将第二标志的取值编码到所述码流中,其中,当所述第二标志取值为0时,表示不跨分块边界执行环内滤波操作;当所述第二标志取值为1时,表示可以跨分块边界执行环内滤波操作。
7.根据权利要求4或5所述的方法,其特征在于,还包括:发送所述码流。
8.一种视频译码设备,其特征在于,包括:
处理器、与所述处理器耦合的接收器和发送器,其中,所述处理器、所述接收器和所述发送器用于执行根据权利要求1至7中任一项所述的方法。
9.一种计算机可读介质,其特征在于,包括计算机可执行指令,当处理器执行所述计算机可执行指令时,所述处理器执行根据权利要求1至7中任一项所述的方法。
10.一种计算机可读介质,其特征在于,包括视频码流,所述视频码流根据权利要求4至7中任一项所述的方法生成。
CN202310369159.XA 2018-09-14 2019-09-13 视频译码中的分块指示 Pending CN116781935A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862731696P 2018-09-14 2018-09-14
US62/731,696 2018-09-14
PCT/US2019/051152 WO2020056356A1 (en) 2018-09-14 2019-09-13 Tile signaling in video coding
CN201980060324.5A CN112703742B (zh) 2018-09-14 2019-09-13 视频译码中的分块指示

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201980060324.5A Division CN112703742B (zh) 2018-09-14 2019-09-13 视频译码中的分块指示

Publications (1)

Publication Number Publication Date
CN116781935A true CN116781935A (zh) 2023-09-19

Family

ID=69777899

Family Applications (8)

Application Number Title Priority Date Filing Date
CN202310369159.XA Pending CN116781935A (zh) 2018-09-14 2019-09-13 视频译码中的分块指示
CN201980060324.5A Active CN112703742B (zh) 2018-09-14 2019-09-13 视频译码中的分块指示
CN201980060373.9A Active CN112690004B (zh) 2018-09-14 2019-09-13 一种视频译码中的基于分块的寻址方法,译码器以及视频译码设备
CN202310202849.6A Pending CN116471411A (zh) 2018-09-14 2019-09-13 一种视频译码中的基于分块的寻址方法,译码器以及视频译码设备
CN202211454883.4A Pending CN116055732A (zh) 2018-09-14 2019-09-13 视频译码方法,设备以及非瞬时性计算机可读介质
CN202310199992.4A Pending CN116684625A (zh) 2018-09-14 2019-09-13 一种视频编码中的基于分块的寻址方法,编码器以及视频译码设备
CN201980060365.4A Active CN112703736B (zh) 2018-09-14 2019-09-13 视频译码方法,视频译码设备以及非瞬时性计算机可读介质
CN201980060333.4A Active CN112703743B (zh) 2018-09-14 2019-09-13 视频译码中的条带和分块

Family Applications After (7)

Application Number Title Priority Date Filing Date
CN201980060324.5A Active CN112703742B (zh) 2018-09-14 2019-09-13 视频译码中的分块指示
CN201980060373.9A Active CN112690004B (zh) 2018-09-14 2019-09-13 一种视频译码中的基于分块的寻址方法,译码器以及视频译码设备
CN202310202849.6A Pending CN116471411A (zh) 2018-09-14 2019-09-13 一种视频译码中的基于分块的寻址方法,译码器以及视频译码设备
CN202211454883.4A Pending CN116055732A (zh) 2018-09-14 2019-09-13 视频译码方法,设备以及非瞬时性计算机可读介质
CN202310199992.4A Pending CN116684625A (zh) 2018-09-14 2019-09-13 一种视频编码中的基于分块的寻址方法,编码器以及视频译码设备
CN201980060365.4A Active CN112703736B (zh) 2018-09-14 2019-09-13 视频译码方法,视频译码设备以及非瞬时性计算机可读介质
CN201980060333.4A Active CN112703743B (zh) 2018-09-14 2019-09-13 视频译码中的条带和分块

Country Status (7)

Country Link
US (6) US11272223B2 (zh)
EP (3) EP3850843A4 (zh)
JP (2) JP7384902B2 (zh)
KR (1) KR20210057148A (zh)
CN (8) CN116781935A (zh)
MX (1) MX2021003049A (zh)
WO (4) WO2020056356A1 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11711530B2 (en) 2018-06-21 2023-07-25 Telefonaktiebolaget Lm Ericsson (Publ) Tile shuffling for 360 degree video decoding
WO2020056356A1 (en) * 2018-09-14 2020-03-19 Futurewei Technologies, Inc. Tile signaling in video coding
CN112740680A (zh) * 2018-09-19 2021-04-30 韩国电子通信研究院 图像编码/解码方法和设备以及存储比特流的记录介质
CN113170237B (zh) * 2018-09-28 2023-02-28 中兴通讯股份有限公司 视频编码与解码方法和设备
KR102629907B1 (ko) * 2018-10-02 2024-01-30 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 타일 그룹 id에 기초한 화상들의 인코딩 및 디코딩
KR102572140B1 (ko) * 2018-11-30 2023-08-30 샤프 가부시키가이샤 코딩된 비디오의 픽처들에 대한 타일 구조들을 시그널링하기 위한 시스템들 및 방법들
EP3939319B1 (en) * 2019-03-11 2023-07-05 Telefonaktiebolaget LM Ericsson (publ) Video coding comprising rectangular tile group signaling
WO2020249124A1 (en) 2019-06-14 2020-12-17 Beijing Bytedance Network Technology Co., Ltd. Handling video unit boundaries and virtual boundaries based on color format
KR20210023754A (ko) 2019-08-23 2021-03-04 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
US11496774B2 (en) * 2019-08-27 2022-11-08 Tencent America LLC Header syntax for QT/BT/TT size
KR20210030889A (ko) * 2019-09-10 2021-03-18 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
EP4014485A4 (en) 2019-09-18 2022-10-26 Beijing Bytedance Network Technology Co., Ltd. TWO-PART SIGNALING OF ADAPTIVE LOOP FILTERS IN VIDEO CODING
JP7318120B2 (ja) 2019-09-22 2023-07-31 北京字節跳動網絡技術有限公司 適応ループフィルタリングにおけるパディングプロセス
CN114450954A (zh) 2019-09-27 2022-05-06 北京字节跳动网络技术有限公司 不同视频单元之间的自适应环路滤波
KR20220071203A (ko) 2019-10-10 2022-05-31 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 적응적 루프 필터링에서 이용 불가능한 샘플 위치들에서의 패딩 프로세스
EP4042692A4 (en) 2019-10-29 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. COMPONENT ADAPTIVE LOOP FILTER
CN114667730A (zh) 2019-11-01 2022-06-24 北京字节跳动网络技术有限公司 交叉分量视频编解码的块尺寸限制
US20220408114A1 (en) * 2019-11-22 2022-12-22 Sharp Kabushiki Kaisha Systems and methods for signaling tiles and slices in video coding
KR20220087514A (ko) * 2019-11-28 2022-06-24 엘지전자 주식회사 영상/비디오 코딩 방법 및 장치
EP4070544A4 (en) 2019-12-11 2023-03-01 Beijing Bytedance Network Technology Co., Ltd. SAMPLE FILLING FOR ADAPTIVE LOOP FILTERING BETWEEN COMPONENTS
US11297320B2 (en) * 2020-01-10 2022-04-05 Mediatek Inc. Signaling quantization related parameters
US11405649B2 (en) * 2020-02-18 2022-08-02 Mediatek Inc. Specifying slice chunks of a slice within a tile
JP2023518713A (ja) * 2020-03-24 2023-05-08 アリババ グループ ホウルディング リミテッド 映像録画のサインデータハイディング
WO2021202556A1 (en) * 2020-04-01 2021-10-07 Beijing Dajia Internet Information Technology Co., Ltd. Lossless coding modes for video coding
JP2023521502A (ja) 2020-04-18 2023-05-24 北京字節跳動網絡技術有限公司 クロスコンポーネント映像コーディングの信号通知のための構文
WO2021236059A1 (en) * 2020-05-19 2021-11-25 Google Llc Dynamic parameter selection for quality-normalized video transcoding
KR20230015405A (ko) 2020-05-22 2023-01-31 알리바바 그룹 홀딩 리미티드 비디오 콘텐츠를 처리하기 위한 방법 및 장치
KR20230029670A (ko) 2020-06-30 2023-03-03 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 적응적 루프 필터링을 위한 경계 위치
CN112995237B (zh) * 2021-05-21 2021-10-08 杭州博雅鸿图视频技术有限公司 一种用于处理视频数据流的方法、装置、设备及存储介质
US11539980B1 (en) * 2021-08-10 2022-12-27 Htc Corporation Image slice transforming method and electronic device

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101099193A (zh) * 2005-01-06 2008-01-02 三菱电机株式会社 影像显示装置
JP4420459B2 (ja) 2005-06-14 2010-02-24 キヤノン株式会社 画像処理装置およびその方法
US20070189732A1 (en) * 2006-02-10 2007-08-16 Sai Pothana System and method for reconstructing MPEG-2 start codes from AVC data
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
CN101389021B (zh) * 2007-09-14 2010-12-22 华为技术有限公司 视频编解码方法及装置
US7886046B1 (en) * 2008-05-16 2011-02-08 Google Inc. Methods and apparatus for predicting impact of proposed changes and implementations in distributed networks
TWI428023B (zh) * 2008-11-18 2014-02-21 Ind Tech Res Inst 解碼方法及裝置
KR101579392B1 (ko) * 2010-09-27 2015-12-21 엘지전자 주식회사 블록 분할 방법 및 복호화 장치
US9325999B2 (en) * 2011-03-10 2016-04-26 Sharp Kabushiki Kaisha Video decoder for slices
EP3229474B1 (en) * 2011-06-30 2018-12-05 Telefonaktiebolaget LM Ericsson (publ) Reference picture signaling
US8767824B2 (en) * 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
US9338474B2 (en) * 2011-09-23 2016-05-10 Qualcomm Incorporated Reference picture list construction for video coding
US9584819B2 (en) * 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US9124895B2 (en) * 2011-11-04 2015-09-01 Qualcomm Incorporated Video coding with network abstraction layer units that include multiple encoded picture partitions
KR102331361B1 (ko) * 2011-12-29 2021-12-01 엘지전자 주식회사 비디오 인코딩 및 디코딩 방법과 이를 이용하는 장치
US9749661B2 (en) * 2012-01-18 2017-08-29 Qualcomm Incorporated Sub-streams for wavefront parallel processing in video coding
US9955178B2 (en) * 2012-03-22 2018-04-24 Lg Electronics Inc. Method for encoding and decoding tiles and wavefront parallel processing and apparatus using same
CN105049845B (zh) * 2012-04-16 2018-08-07 寰发股份有限公司 视频解码器中用于视频数据的环路滤波器处理方法及装置
WO2014003428A1 (ko) * 2012-06-26 2014-01-03 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
JP6376719B2 (ja) * 2012-06-29 2018-08-22 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
BR122020007914B1 (pt) 2012-06-29 2023-03-07 Ge Video Compression, Llc Fluxo contínuo de dados de vídeo, entidade de rede para receber o fluxo contínuo de dados de vídeo e método para decodificar o fluxo contínuo de dados recebido
JP6214235B2 (ja) * 2012-07-02 2017-10-18 キヤノン株式会社 ファイル生成方法、ファイル生成装置、及びプログラム
US20140079135A1 (en) * 2012-09-14 2014-03-20 Qualcomm Incoporated Performing quantization to facilitate deblocking filtering
ES2664361T3 (es) 2012-09-26 2018-04-19 Velos Media International Limited Método de codificación de imagen y dispositivo de codificación de imagen
JP6210375B2 (ja) * 2012-12-28 2017-10-11 サン パテント トラスト 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置及び画像符号化復号装置
EP3809707B1 (en) * 2013-01-04 2024-05-08 GE Video Compression, LLC Efficient scalable coding concept
CA2897152C (en) * 2013-01-07 2019-03-05 Kemal Ugur Inter-layer video encoding and decoding with adaptive resolution change at indicated switching points
US9807421B2 (en) * 2013-04-05 2017-10-31 Sharp Kabushiki Kaisha NAL unit type restrictions
JP6449241B2 (ja) * 2013-04-08 2019-01-09 ジーイー ビデオ コンプレッション エルエルシー 効率的なマルチビュー/レイヤ符号化を可能とする符号化コンセプト
US20150016503A1 (en) * 2013-07-15 2015-01-15 Qualcomm Incorporated Tiles and wavefront processing in multi-layer context
BR112016006670A2 (pt) * 2013-09-27 2017-08-01 Qualcomm Inc codificação residual para modos de intra previsão de profundidade
US9936207B2 (en) * 2013-10-14 2018-04-03 Qualcomm Incorporated Indication of parallel processing in video coding
US9641862B2 (en) * 2013-10-15 2017-05-02 Nokia Technologies Oy Video encoding and decoding
GB2519745B (en) * 2013-10-22 2018-04-18 Canon Kk Method of processing disordered frame portion data units
US9736488B2 (en) * 2013-11-27 2017-08-15 Nxp Usa, Inc. Decoding for high efficiency video transcoding
US9596477B2 (en) * 2013-12-26 2017-03-14 Mediatek Inc. Methods of multiple-slice coding for frame buffer compression
US9317889B1 (en) * 2013-12-31 2016-04-19 Exelis Inc. Parallel image processing method and system
JP6572222B2 (ja) * 2014-01-07 2019-09-04 キヤノン株式会社 メディアファイルの生成方法、生成装置、及びプログラム
KR102111740B1 (ko) * 2014-04-03 2020-05-15 삼성전자주식회사 영상 데이터를 처리하는 방법 및 디바이스.
US20160353128A1 (en) * 2015-06-01 2016-12-01 Microsoft Technology Licensing, Llc Decoding of intra-predicted images
CN115134608A (zh) 2015-06-11 2022-09-30 杜比实验室特许公司 使用自适应去块滤波编码和解码图像的方法及其装置
JPWO2016199608A1 (ja) * 2015-06-12 2018-03-29 ソニー株式会社 情報処理装置および情報処理方法
EP3338453A1 (en) * 2015-08-20 2018-06-27 Koninklijke KPN N.V. Forming a tiled video on the basis of media streams
US10419768B2 (en) * 2016-03-30 2019-09-17 Qualcomm Incorporated Tile grouping in HEVC and L-HEVC file formats
GB2550912B (en) * 2016-05-27 2019-09-04 Canon Kk Method, device and computer program for encapsulating and parsing timed media data
CN109691103B (zh) * 2016-07-14 2023-02-28 皇家Kpn公司 视频编码
US10863186B2 (en) * 2016-08-26 2020-12-08 Sharp Kabushiki Kaisha Image decoding apparatus and image coding apparatus
EP3293981A1 (en) * 2016-09-08 2018-03-14 Koninklijke KPN N.V. Partial video decoding method, device and system
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
US10687055B2 (en) * 2017-03-03 2020-06-16 Qualcomm Incorporated Coding MCTS-EIS SEI messages of an access unit
KR102390413B1 (ko) 2017-03-03 2022-04-25 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
EP3606084A4 (en) * 2017-03-28 2020-02-05 Samsung Electronics Co., Ltd. METHOD FOR TRANSMITTING DATA RELATING TO A THREE-DIMENSIONAL IMAGE
WO2019004283A1 (ja) * 2017-06-28 2019-01-03 シャープ株式会社 動画像符号化装置及び動画像復号装置
WO2019009473A1 (ko) * 2017-07-04 2019-01-10 엘지전자 주식회사 360도 비디오의 영역 기반 처리 방법 및 장치
WO2019103126A1 (en) * 2017-11-22 2019-05-31 Sharp Kabushiki Kaisha Systems and methods for signaling tile structures for pictures of coded video
US11509937B2 (en) * 2018-04-09 2022-11-22 Sk Telecom Co., Ltd. Method and apparatus for encoding/decoding video
EP3818710A4 (en) * 2018-07-02 2022-06-29 Nokia Technologies Oy Method and apparatus for tile-relative addressing in video coding
WO2020056356A1 (en) 2018-09-14 2020-03-19 Futurewei Technologies, Inc. Tile signaling in video coding
US20220007019A1 (en) 2018-12-04 2022-01-06 Vid Scale, Inc. Tile group partitioning

Also Published As

Publication number Publication date
CN112703736B (zh) 2022-11-25
EP3850852A1 (en) 2021-07-21
CN112703743B (zh) 2022-05-24
CN112703742A (zh) 2021-04-23
JP2024012554A (ja) 2024-01-30
US11272223B2 (en) 2022-03-08
EP3847817A1 (en) 2021-07-14
CN112690004A (zh) 2021-04-20
CN112703742B (zh) 2023-03-31
US20210204000A1 (en) 2021-07-01
EP3850843A4 (en) 2021-11-24
CN116471411A (zh) 2023-07-21
US11968407B2 (en) 2024-04-23
CN116055732A (zh) 2023-05-02
EP3850843A1 (en) 2021-07-21
WO2020056354A1 (en) 2020-03-19
JP2022500924A (ja) 2022-01-04
US20230283809A1 (en) 2023-09-07
CN112690004B (zh) 2023-01-13
WO2020056357A1 (en) 2020-03-19
CN112703736A (zh) 2021-04-23
US20210211662A1 (en) 2021-07-08
CN112703743A (zh) 2021-04-23
MX2021003049A (es) 2021-08-11
WO2020056356A1 (en) 2020-03-19
US20220159313A1 (en) 2022-05-19
KR20210057148A (ko) 2021-05-20
US20210211664A1 (en) 2021-07-08
US20210211663A1 (en) 2021-07-08
WO2020056352A1 (en) 2020-03-19
EP3847817B1 (en) 2024-05-15
CN116684625A (zh) 2023-09-01
JP7384902B2 (ja) 2023-11-21
EP3850852A4 (en) 2021-11-17
EP3847817A4 (en) 2021-11-24
US11622132B2 (en) 2023-04-04

Similar Documents

Publication Publication Date Title
CN112703742B (zh) 视频译码中的分块指示
CN113261288A (zh) 视频译码中的灵活分块指示
JP7368477B2 (ja) ビデオエンコーダ、ビデオデコーダ、及び対応する方法
US11425377B2 (en) Arbitrary and wrap-around tile grouping
CN114650428B (zh) 使用标识符指示的视频译码码流提取的方法、设备和介质
CN113330746B (zh) 视频译码中用于光栅扫描分块组和矩形分块组的分块组分配
KR20210135621A (ko) 비디오 코딩에서 슬라이스 엔트리 포인트
CN117956190A (zh) 视频译码中的显式地址指示
RU2806278C2 (ru) Устройство и способ кодирования видео

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