CN112585970A - 灵活图块分区 - Google Patents

灵活图块分区 Download PDF

Info

Publication number
CN112585970A
CN112585970A CN201980054733.4A CN201980054733A CN112585970A CN 112585970 A CN112585970 A CN 112585970A CN 201980054733 A CN201980054733 A CN 201980054733A CN 112585970 A CN112585970 A CN 112585970A
Authority
CN
China
Prior art keywords
picture
tile
partition structure
segments
segment
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
CN201980054733.4A
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.)
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 CN112585970A publication Critical patent/CN112585970A/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/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/124Quantisation
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/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
    • 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/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/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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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

Landscapes

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

Abstract

公开了用于将来自视频图片序列的图片划分为具有多个灵活图块或片段的布局的编码器(400)、解码器(450)和方法(230、30)。每个图块或片段(T)包括单个矩形或正方形区域。编码器生成(22)分区结构,并且根据该分区结构对图块进行编码(28)。编码器还生成比特流(12),该比特流包括多个编码片段和指示用于将图片划分为多个灵活图块或片段的分区结构的信息,并且将该比特流发送(29)给解码器。在接收到后,解码器使用比特流中的编码片段和信息对多个编码片段进行解码(38)。

Description

灵活图块分区
技术领域
本公开大体上涉及视频编码和解码技术,并且更具体地,涉及图片的灵活片段的编码和解码。
背景技术
高效率视频编码(HEVC)是由ITU-T和运动图片专家组(MPEG)二者标准化的基于块的视频编解码,利用空间预测技术和时间预测技术二者。空间预测减少了空间冗余,并且使用来自当前图片的同一帧内的帧内(I)预测来实现。时间预测减少了时间冗余,并且使用先前解码的参考图片,在块级别上使用帧间(P)或双向帧间(B)预测来实现。然而,无论特定类型的预测技术如何,得到的原始像素数据和经预测的像素数据之间的差异(被称为“残差”)被变换到频域并被量化。对经变换的残差进行量化,其水平由量化参数(QP)确定,有助于控制比特率和视频质量之间的折衷。
然后,经变换和量化的残差在被发送到解码器之前,与必要的预测参数一起被熵编码。也被熵编码的预测参数包括预测模式和运动矢量。接收到后,解码器执行熵解码、逆量化和逆变换以获得残差。然后,解码器使用帧内预测或帧间预测技术从残差重构图像。
MPEG和ITU-T都正在联合视频探索组(JVET)内研究HEVC的后继者。该视频编解码的名称为“多功能视频编码(VCC)”。
发明内容
本文的实施例对于使用灵活划分(例如,将减少图片的编码图片片段的传输成本的划分)对图片进行编码和解码是有用的。例如,一个或多个实施例实现了一种灵活分区结构,其中该分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接。
一个或多个实施例包括一种对图片进行解码的方法。所述方法包括:接收比特流。所述比特流包括多个编码图片片段和与所述多个编码图片片段相关联的信息。所述方法还包括:从所述比特流中的所述信息导出分区结构。所述分区结构将所述图片分为图片片段。每个图片片段与所述多个编码图片片段中的一个编码图片片段相对应,并且每个图片片段包括至少一个单元。所述分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接。所述方法还包括:根据所述分区结构,对在所述比特流中接收的所述多个编码图片片段进行解码。对用于所述第一图片片段的第一单元的任何帧内预测模式的导出取决于用于所述第一图片片段的第二单元的导出的帧内预测模式,而与用于所述分区结构的任何其他图片片段的单元的任何帧内预测模式无关。
一个或多个实施例包括对图片进行编码的对应方法,其可以与本文描述的用于对图片进行解码的方法结合或分开使用。所述方法包括:定义将图片分为图片片段的分区结构。每个图片片段包括至少一个单元。所述分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接。所述方法还包括:根据所述分区结构对多个图片片段进行编码,以生成多个编码图片片段。每个编码图片片段与所述分区结构的所述图片片段中的一个图片片段相对应。每个编码图片片段是独立的,使得对用于所述第一图片片段的第一单元的任何帧内预测模式的导出取决于用于所述第一图片片段的第二单元的导出的帧内预测模式,而与用于所述分区结构的任何其他图片片段的单元的任何帧内预测模式无关。所述方法还包括:生成比特流,所述比特流包括所述多个编码图片片段和指示用于将所述图片分为所述多个图片片段的所述分区结构的信息;以及发送所述比特流。
本公开的实施例还提供了一种解码器电路,被配置为接收比特流。所述比特流包括多个编码图片片段和与所述多个编码图片片段相关联的信息。所述解码器电路还被配置为从所述比特流中的所述信息导出分区结构。所述分区结构将图片分为图片片段。每个图片片段与所述多个编码图片片段中的一个编码图片片段相对应,并且每个图片片段包括至少一个单元。所述分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接。所述解码器电路还被配置为:根据所述分区结构,对在所述比特流中接收的所述多个编码图片片段进行解码。对用于所述第一图片片段的第一单元的任何帧内预测模式的导出取决于用于所述第一图片片段的第二单元的导出的帧内预测模式,而与用于所述分区结构的任何其他图片片段的单元的任何帧内预测模式无关。
本公开的实施例还提供了一种解码器,包括:接收电路,被配置为接收比特流,所述比特流包括多个编码图片片段和与所述多个编码图片片段相关联的信息;存储器,包括可执行指令;以及处理电路,可操作地连接到所述接收电路和所述存储器,并且被配置为执行可执行指令以定义将图片分为图片片段的分区结构。每个图片片段包括至少一个单元。所述分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接。所述处理还被配置为:根据所述分区结构对多个图片片段进行编码,以生成多个编码图片片段。每个编码图片片段与所述分区结构的所述图片片段中的一个图片片段相对应。每个编码图片片段是独立的,使得对用于所述第一图片片段的第一单元的任何帧内预测模式的导出取决于用于所述第一图片片段的第二单元的导出的帧内预测模式,而与用于所述分区结构的任何其他图片片段的单元的任何帧内预测模式无关。所述处理电路还被配置为:生成比特流,所述比特流包括多个编码图片片段和指示用于将所述图片分为所述多个图片片段的所述分区结构的信息。
本公开的实施例还提供了一种编码器电路,被配置为定义将图片分为图片片段的分区结构。每个图片片段包括至少一个单元。所述分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接。所述编码器电路还被配置为:根据所述分区结构对多个图片片段进行编码,以生成多个编码图片片段。每个编码图片片段与所述分区结构的所述图片片段中的一个图片片段相对应。每个编码图片片段是独立的,使得对用于所述第一图片片段的第一单元的任何帧内预测模式的导出取决于用于所述第一图片片段的第二单元的导出的帧内预测模式,而与用于所述分区结构的任何其他图片片段的单元的任何帧内预测模式无关。所述编码器电路还被配置为:生成比特流,所述比特流包括所述多个编码图片片段和指示用于将得到图片分为多个图片片段的分区结构的信息;以及发送所述比特流。
本公开的实施例还提供了一种编码器,包括:存储器,包括可执行指令;处理电路,可操作地连接到所述存储器;以及发射机。所述处理电路被配置为:定义将图片分为图片片段的分区结构。每个图片片段包括至少一个单元。所述分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接。所述处理电路还被配置为:根据所述分区结构对多个图片片段进行编码,以生成多个编码图片片段。每个编码图片片段与所述分区结构的所述图片片段中的一个图片片段相对应。每个编码图片片段是独立的,使得对用于所述第一图片片段的第一单元的任何帧内预测模式的导出取决于用于所述第一图片片段的第二单元的导出的帧内预测模式,而与用于所述分区结构的任何其他图片片段的单元的任何帧内预测模式无关。所述处理电路还被配置为:生成比特流,所述比特流包括多个编码图片片段和指示用于将所述图片分为所述多个图片片段的所述分区结构的信息。所述发射机被配置为发送比特流。
附图说明
图1示出了使用QTBT将CTU划分为CU的示例。
图2示出了示例图块划分。
图3A至图3B示出了具有高分辨图块和低分辨率图块的示例图块化结构。
图4示出了在HEVC中不支持的图块结构的示例。
图5示出了可以在HEVC中得到支持的示例图块结构。
图6示出了示例划分,其示出了单元和图块。
图7示出了根据本公开的一个实施例的示例比特流。
图8示出了将图片划分为64个单元。
图9示出了根据本公开的一个实施例的示例三个片段分区结构。
图10示出了根据本公开的一个实施例的已经使用图8和图9中示出的分区结构进行了划分的图片。
图11A至图11B示出了根据本公开的一个实施例的根据分区结构划分的图片,其中图11A示出了单元,图11B示出了片段或图块。
图12A是示出了根据本公开的第一实施例的用于使用灵活图块对图片或图片的一部分进行编码的方法的流程图。
图12B是示出了根据本公开的第一实施例的用于对使用灵活图块编码的图片或图片的一部分进行解码的方法的流程图。
图13A是示出了根据本公开的一个实施例的由编码器构造和以信号传送灵活图块的方法的流程图。
图13B是示出了根据本公开的一个实施例的由解码器解析和构造灵活图块的方法的流程图。
图14示出了根据本公开的一个实施例的示例图块分区,其中使用10个图块来划分图片。
图15示出了根据本公开的一个实施例的示例图块分区,其中将大小为2048×1280的图片划分为26个图块。
图16A示出了根据本公开的一个实施例的在解码器处实现的用于对视频比特流的图片的编码表示进行解码的方法。
图16B示出了根据本公开的一个实施例的在编码器处实现的用于对视频比特流的图片的表示进行编码的方法。
图17A至图17C示出了根据本公开的一个实施例的图14中示出的图片的图块分区和对应的ctu_status比特。
图18A是示出了根据本公开的一个实施例的在编码器处实现的用于构造和以信号传送图块的方法的流程图。
图18B至图18C示出了根据本公开的一个实施例的在解码器处实现的用于解析和构造由编码器发送的图块的方法。
图19A至图19B是示出了根据本公开的一个实施例的分别由编码器和解码器实现的用于构造和以信号传送图块的方法的流程图。
图20示出了根据本公开的一个实施例的图块的整数分割。
图21A至图21B示出了根据本公开的一个实施例的由编码器实现的用于构造和以信号传送图块的方法。
图21C至图21D示出了根据本公开的一个实施例的由解码器实现的用于对图21A至图21B中的编码器构造和以信号传送的图块进行解析的方法。
图22A至图22C示出了根据本公开的一个实施例的与图14的图块结构相对应的水平和垂直分割线。
图23A是示出了根据本公开的一个实施例的在编码器处实现的用于确定给定图块结构的水平和垂直分割线的方法的流程图。
图23B是示出了根据本公开的一个实施例的在解码器处实现的用于处理具有利用对应的水平和垂直分割线来描述的给定图块结构的图块的方法的流程图。
图24A至图24C示出了根据本公开的一个实施例的在移除冗余的T形连接点之前和之后的示例图块结构和对应的T形连接点集合。
图25A至图25B示出了根据本公开的一个实施例的示例图块化结构和对应的T形连接点集合。
图26A是示出了根据本公开的一个实施例的在编码器处实现的用于创建T形连接点集合的方法的流程图。
图26B是示出了根据本公开的一个实施例的在解码器处实现的用于创建T形连接点集合的方法的流程图。
图27A至图27C示出了根据本公开的一个实施例的示例性图块化结构和对应的起始角矩阵和终止角矩阵。
图28A是示出了根据本公开的一个实施例的在编码器处实现的用于创建起始角矩阵和终止角矩阵的方法的流程图。
图28B是示出了根据本公开的一个实施例的在解码器处实现的用于处理起始角矩阵和终止角矩阵的方法的流程图。
图29示出了根据本公开的一个实施例的系统,该系统被配置为交换被编码和解码的一系列图像。
图30是示出了编码器的组件的示意框图。
图31是示出了解码器的组件的示意框图。
图32至图33是分别示出了编码器和解码器的一些功能组件的示意框图。
图34A是根据本公开的一个实施例的根据分区结构对图像进行编码的编码器。
图34B是根据本公开的一个实施例的根据分区结构对图像进行解码的解码器。
图35是根据本公开的一个实施例的包括解码器和编码器在内的系统。
具体实施方式
本申请要求2018年6月21日提交的美国申请No.62/688314的优先权,其全部内容通过引用合并于此。
四叉树和二叉树(QTBT)结构
如前所述,HEVC是由ITU-T和MPEG标准化的基于块的视频编解码,利用时间预测和空间预测二者。HEVC使用块结构,其中通过四叉树(QT)结构来划分每个顶层编码块,即,编码块划分中的最大块,本文中被称为编码树单元(CTU)。该划分产生编码块分区,本文中被称为编码单元(CU)。然后,可以利用四叉树结构将CU进一步递归地划分为较小的大小相等的CU,直到8×8的块大小。
VVC的当前版本中的块结构与HEVC中的块结构不同。具体地,VVC中的块结构被称为四叉树加二叉树加三叉树块结构(QTBT+TT)。QTBT+TT中的CU可以具有正方形或矩形形状。与HEVC中一样,首先通过四叉树结构对编码树单元(CTU)进行划分。然后,以二叉树结构在垂直或水平方向上用大小相等的分区进一步划分CTU,以形成编码块(也被称为CU)。因此,块可以具有正方形或矩形形状。
编码器可以在比特流中设置四叉树和二叉树的深度。图1示出了使用QTBT+TT分割CTU的示例。TT允许将CU分为三个分区,而不是大小相等的两个分区。这增加了使用更适合图片中的内容结构的块结构的可能性。
上下文自适应二进制算术编码(CABAC)
上下文自适应二进制算术编码(CABAC)是HEVC和VVC中使用的熵编码工具。CABAC被配置为对二进制符号进行编码,其保持复杂度较低,并且允许对符号的更频繁使用的比特的概率进行建模。由于编码模式通常在局部具有强相关性,因此基于局部上下文来自适应地选择概率模型。
HEVC中片的概念将图片分为独立编码的片,其中以CTU为单位按照光栅扫描顺序来读取每个片。可以将不同的编码类型用于相同图片的片。例如,片可以是I片、P片或B片。然而,片的主要目的是在丢失数据的情况下实现重新同步。
图块
HEVC视频编码标准还包括被称为“图块”的工具,其将图片分为矩形的空间上独立的区域。使用图块,可以将HEVC中的图片划分为多行样本和多列样本,其中任意给定图块位于给定行和给定列的交点处。图2示出了使用四(4)行图块和五(5)列图块的图块划分的示例,导致图片总共二十(20)个图块。如图2所示,HEVC中的图块始终与CTU边界对齐。
通过指定行的厚度和列的宽度,在图片参数集合(PPS)中以信号传送图块结构。各个行和列可以具有不同的大小,但是划分始终跨整个图片,分别从左到右以及从上到下。
表1列出了在HEVC中用于指定图块结构的PPS语法。如表1所示,标志(即,tiles_enabled_flag)指示是否使用了图块。如果tiles_enabled_flag被设置,则指定图块列数(即,num_tile_columns_minus1)和图块行数(即,num_tile_rows_minus1)。uniform_spacing_flag是指定是显式地以信号传送列宽度和行高度、还是应使用将图块边界均等地间隔开的预定方法的标志。如果指示显式的以信号传送,则一一以信号传送列宽度,随后是行高度。以CTU为单位以信号传送列宽度和行高度信息。最后,标志loop_filter_across_tiles_enabled_flag指定是否为图片中的所有图块边界打开或关闭跨图块边界的环路滤波器。
Figure BDA0002945571200000081
Figure BDA0002945571200000091
表1-HEVC中的图块语法
与片类似,相同图片的图块之间没有解码依赖性。这包括帧内预测、上下文选择和运动矢量预测。然而,一个例外是,在图块之间一般允许环路滤波依赖性。然而,可以通过适当地设置loop_filter_across_tiles_enabled_flag来禁用这些依赖性。
与片相反,图块不需要那么多的头数据。每个图块的头开销包括比特流偏移的信号传送,这些比特流偏移存在于片头中,并指示图片中所有图块的起始点。解码器对起始点进行解码,以实现将编码图片分为编码图块,以便分发它们进行并行解码。在HEVC中,当启用图块时,在片头中包含比特流偏移是强制性的。然而,HEVC中限制了图块和片的组合。具体地,图块中的所有CTU属于相同的片,或者所有CTU属于相同的图块。
比特流偏移还可以允许提取图块并拼接图块,以将图块重新构成为输出流。这需要一些编码器侧约束,以使图块在时间上独立。一个约束限制了运动矢量,使得对图块的运动补偿仅使用包括在先前图片的空间共位图块中的样本。另一个约束限制了时间运动矢量预测(TMVP),使得该过程在时间上独立地进行。为了完全独立,必须经由先前描述的loop_filter_across_tiles_enabled_flag来禁用对图块之间的边界的去块化。然而,禁用去块化会在图块之间引入可见的线。因此,一些实现禁用去块化,而其他实现不禁用。
有时将图块用于打算使用头戴式显示(HMD)设备来消费的360度视频。在使用当今的HMD设备时的视场被限制在整个球面的20%左右。这意味着整个360度视频中仅20%被用户消费。通常,对于HMD设备来说整个360度视频球面都是可获得的,该HMD设备然后裁剪出要为用户渲染的部分。该部分(即,用户看到的球面部分)被称为视口。众所周知的资源的优化是使HMD设备视频系统知道用户的头部移动和正在看的方向,使得花费较少的资源来处理没有渲染给用户的视频样本。资源可以是例如从服务器到客户端的带宽或设备的解码能力。对于未来的HMD设备,其视场将比当前可能的视场更大,非均匀资源分配仍将是有益的。具体地,人类视觉系统在中央视觉面积(大约18°水平视图)中要求较高的图像质量,而对周围区域(对于舒适的水平视图,大约为120°或更大)中的图像质量的要求较低。因此,通过与周围区域相比在中央视觉面积中分配更多的资源,非均匀资源分配将有助于满足人类视觉系统的需求。
优化感兴趣区域(ROI)的资源是针对图块的另一用例。RoI可以在内容中指定,或通过诸如眼动追踪之类的方法来提取。使用头部移动来减少所需资源的一种方法是使用图块。该方法首先使用图块多次对视频序列进行编码。图块分区结构在所有编码中是相同的;然而,视频序列以不同的视频质量进行编码。这为视频序列产生了至少一个高质量的编码,并且为视频序列产生了一个低质量的编码。这意味着对于特定时间点的每个图块,存在至少一个高质量的图块表示和至少一个低质量的图块表示。高质量图块与低质量图块之间的差异可以是:以比低质量图块高的比特率对高质量图块进行编码,或者高质量图块的分辨率比低质量图块的高。
图3A至图3B示出了具有比低质量图块的分辨率高的分辨率的高质量图块的示例。具体地,图3A示出了刚由解码器解码的图片。在该上下文中,显示来自解码器的输出的图片(即,经解码的图片)是在压缩域中显示的图片。在该示例中,压缩域中的所有8个图块A-H具有相等的空间大小。然后,在图片被解码之后但是在图片被渲染之前,图块A-H被缩放并在空间上被布置。已经准备用于渲染(即,缩放和重新布置之后)的图片是要在输出域中显示的图片。在图3B中看到的输出域示出了在渲染或呈现给用户时的图片。
如图3A至图3B所示,图块B、D、F和H是高质量图块,因为它们在输出域中具有更高的分辨率。然而,图块A、C、E和G是低分辨率图块,因为缩放步骤降低了实际分辨率。
除了说明图块如何具有不同的分辨率外,图3A至图3B还说明了压缩域(图3A)中的图块不需要按照与它们在输出域(图3B)中排序相同的方式进行空间排序。考虑到图块在空间和时间上都是独立的,图块在压缩域中的空间放置不是至关重要的。
在HEVC中启用图块时,有多种因素会增加比特成本。首先,禁用跨图块的预测,这意味着不跨图块来预测运动矢量和帧内模式。图块的使用也禁用量化参数(QP)预测和上下文选择。其次,针对每个图块初始化CABAC,这意味着CABAC适应性受到妨碍。第三,必须针对每个图块以信号传送比特流偏移。第四,需要在PPS中指定图块划分结构。最后,在每个图块之后刷新CABAC,并且编码数据必须按字节对齐。
图块很有用;然而,一些考虑需要解决。例如,在HEVC的当前形式中,HEVC限制图块以确保它们跨整个图片。然而,这限制了图块的灵活性。例如,图4示出了不受HEVC当前实现支持的图块结构的示例。为了虚拟地支持这种图块结构,可以在HEVC中指定分区结构,如图5所示。然而,图5中示出的图块结构包含更多图块边界。这会损害压缩效率,并且导致不必要的图块化伪影。另外,如果图块要完全在空间上独立,则当前形式的HEVC仅允许针对图片的所有图块边界启用或禁用环路滤波依赖性。因此,传统的HEVC解决方案将出现不必要的环路滤波限制,因为它们不支持灵活的图块分区。
本公开的实施例通过提供灵活图块划分方法来解决这些问题。这些方法为编码器将图片划分为图块提供了更多的自由。在一个实施例中,每个图块包括单个矩形面积,并且在比特流中将每个图块的宽度和高度以信号传送给解码器。接收到后,解码器被配置为从比特流解码每个图块的单独的宽度和高度值。在另一实施例中,将图片分为单元,每个单元被指派有标识该单元被指派给的特定图块的图块ID。后一个实施例是有益的,因为它支持具有非矩形图块的灵活图块分区、以及棋盘图案中的分区。
本公开的实施例使得能够将更灵活的图块分区用于各种用例,例如360度视频。此外,在与固定图块分区相比时,与灵活图块分区相关联的比特成本较低。具体地,使用常规的图块划分,图块的数量更高,并且每个图块都伴随着成本(例如与CABAC刷新和适应性重置、比特流偏移等相关联的处理)。然而,本实施例的灵活图块划分使用了较少的图块,由此减少了比特成本。
本实施例还实现了用于并行处理的灵活的CPU负载均衡,在并行处理中,编码器例如可以分析输入图片并选择将图片分为尽可能少的图块的图块划分(以减少比特成本),同时等同地填充可用数量的核。此外,与常规方法相比,本公开的实施例还促进了对环路滤波器的增加的控制,使得传统图块更加灵活。
本实施例对于诸如多视图(MV)视频编码之类的严格的用例(例如其中对于带宽或解码能力是主要瓶颈)甚至更加有益。在这些情况下,本实施例实现了更好的资源分配。在指定了感兴趣区域(RoI)的应用中,本公开的实施例还提供了更加灵活的资源分配。
与常规的图块化方法相比,本公开的灵活图块划分实施例使用更大的图块。由于较大的图块大小,本实施例还通过对帧内运动矢量施加较少的限制来对图片的质量做出贡献。此外,本公开的灵活图块划分方法移除了图块之间的不必要的划分线。这种线移除减少了对于图块之间的线进行滤波的成本。
本公开的实施例以比常规手段(例如HEVC)可以提供的图块布局更灵活的图块布局,将来自视频图片序列的图片划分为图块。这包括配置编码器以生成分区结构和图块以进行编码,以及配置解码器以对分区结构和图块进行解码。在一些实施例中,本公开的灵活图块划分方法与常规形式的HEVC的处理共存。因此,如前所述,比特流中的tiles_enabled_flag可以用于指定是应使用传统的图块划分方案,还是应使用根据本实施例的灵活图块划分方案。
应注意,一些实施例引用术语“单元”。如本文定义的,单元是图片的矩形区域(例如编码树单元或编码单元),使得图块由一个或多个单元组成。图6示出了一个示例,其中将图片10划分为四(4)个图块或“片段”T1、T2、T3、T4(统称为“T”)(如黑色实线所示),其中每个图块T包括16个单元U。这为图片10提供了总共64个单元U。
在比特流12中以信号传送灵活图块结构。例如,编码器在诸如序列参数集合(SPS)或图片参数集合(PPS)之类的参数集合中以信号传送灵活图块结构。然而,如本领域普通技术人员将理解的,本公开不限于在参数集合中以信号传送灵活图块结构。尽管本文的实施例将图块结构描述为在PPS中以信号传送,但这仅出于说明目的,并且可以通过其他方式以信号传送该信息。
一般说明
图7示出了被解码为图片10的比特流12。图8示出了被划分为64个单元U的图片10。单元U的一个示例是从H.264已知的宏块。单元U的另一示例是从HEVC已知的CTU。
如图7所示,比特流12包括一个或多个编码片段T和一个或多个码字16、18。一个或多个码字16包括指定比特流中的字节或比特的数量的信息,该字节或比特包括对每个编码片段14进行解码所需的数据。一个或多个码字18携带指定单元U的空间大小的信息。作为示例,单元的空间大小是水平64个亮度样本和垂直64个亮度样本;然而,如本领域普通技术人员将理解的,本公开不限于单元的这些大小和形状。根据本公开的实施例,包括不规则形状的单元(例如不是正方形形状的单元)在内的其他单元大小和形状也是可能的。
如图7至图8所示,已经使用分区结构S将图片10在空间上划分为三个片段T1、T2、T3(统称为“T”)。定义分区结构S的信息是从比特流12中的信息导出的。例如,对来自比特流12的编码片段14进行解码,以导出图片10中的对应解码片段的样本值。另外,可以从比特流12中的一个或多个码字16解析编码片段14的大小和/或位置。如前所述,本公开的一个实施例利用一个或多个码字16携带指定比特流中的字节或比特的数量的信息,该字节或比特包括对编码片段14进行解码所需的信息。然而,备选地,本公开的实施例可以利用一个或多个码字16携带导出编码片段14在比特流12中的定位或位置所需的信息。
如图8所示,每个片段T的边界与单元U的边界对齐。这意味着每个片段T包括整数个单元U,并且每个单元U与一个片段T相关联。例如,如图8所示,最右边的两个片段T1、T2各自包括16个单元,而最左边的片段T3包括32个单元U。
图9示出了一个实施例,其中使用图8所示的相同分区结构S来划分图片10。然而,为了清楚起见,图9没有示出单元U。如图9所示,片段T3的一侧19-3分别与两个或更多个邻近或相邻的片段T1、T2的侧边19-1、19-2邻接。
图10示出了已经使用与图8和图9中示出的相同分区结构S进行了划分的图片10。如图10所示,图片10包括三个片段T1、T2、T3。图10的所有片段T1、T2、T3包括一个或多个单元U;然而,为了清楚起见,图10将片段T1和T3示为包括单元U的子集。具体地,片段T3包括单元U1,而邻近或相邻的片段T1包括单元U1、U2。片段T1、T2、T3中的每一个彼此独立。这意味着,在对单元U进行解码时,对片段T1、T2、T3的边界的处理与图片边界类似。这影响解码期间元素的导出过程,例如对帧内预测模式的导出和对量化参数值的导出。
对仅使用来自当前图片的先前解码样本的预测进行样本预测的单元,使用和以信号传送帧内预测模式(例如帧内(B)预测模式和帧内(P)预测模式)。通常,特定单元U1中的帧内预测模式的导出取决于其他单元U2中的先前导出的帧内预测模式。由于片段是独立的,因此特定单元U1中的帧内预测模式的导出仅取决于属于相同当前片段T2的单元U1中的先前导出的帧内预测模式,而不取决于与不同的片段(例如片段T3)相关联的任何单元(例如单元U3)中的任何帧内预测模式。因此,图10的分区结构S使得片段T3中的单元U3的帧内预测模式不可用于导出不同的片段T1中的单元U1、U2的帧内预测模式。
然而,片段T3中的单元U3可用于导出另一单元中的帧内预测模式,但仅当该另一单元在相同的片段T3中时。因此,针对第二片段T1中的单元U1、U2,片段边界对帧内模式导出的作用与图片边界相同或相似。
量化参数(QP)值在本领域中也是众所周知的。例如,通常使用先前导出的QP值来导出单元U的QP值。本领域已知的一种导出过程是首先从比特流12中导出经预测的QP值,然后将增量QP值与经预测的QP值相加。由于片段T1、T2、T3彼此独立,因此特定单元(例如片段T1的单元U2)中的QP值的导出例如可以仅取决于相同片段T1中的单元的先前导出的QP值。特定给定单元U1、U2中的QP值的导出不取决于与不同片段中的任何其他单元(例如片段T3中的单元U3)相关联的任何QP值。这意味着图10中的分区结构S使得片段T3中的单元U3中的QP值不可用于导出不同的片段T3中的单元U1、U2的QP值。
一些单元U中的QP值可以用于导出另一单元U中的QP值,但仅当该另一单元在相同的片段T1中时。因此,针对第二片段T1中的单元U1、U1,片段边界对QP值导出的作用与图片边界相同或相似。
图11A至图11B示出了根据分区结构S划分的相同图片10。图11A示出了单元U。如前所述,在比特流12中用一个或多个码字16、18以信号传送单元的空间大小。图11B示出了图片10的片段T1、T2、T3和分区结构S。每个片段T1、T2、T3包括至少一个单元U。每个片段T1、T2、T3的空间大小以单元来表示,这意味着在导出片段的空间大小和/或空间分区结构时,使用单元U的大小。在图11A至图11B的示例中,两个片段T1和T2的空间大小是水平4个单元和垂直4个单元。一个片段的空间大小是水平T3个单元和垂直8个单元。
应注意,在一些实施例中,片段T1、T2、T3可以是矩形的,使得片段的宽度和高度不同。在其他实施例中,片段T1、T2、T3是非矩形的,并且通过将每个单元U分配给一个片段来表示。这样的分配用于表示例如“棋盘片段”,其中片段T中的一些表示棋盘上的白色正方形,而其他片段T表示棋盘上的黑色正方形。在一些实施例中,给定片段T可以等同于图块或片。
第一实施例
如图9中的第一实施例所示,视频流中的图片10或图片10的一部分被分为空间分区结构S,其中分区结构S包括至少三个片段T1、T2、T3。每个片段包括单元U,至少一个片段T(例如片段T1)例如包括两个或更多个单元U。在比特流12的一个或多个码字18中以信号传送单元U的空间大小,并从比特流12的一个或多个码字18中解码单元U的空间大小。另外,从比特流12解析指示至少一个编码片段18在比特流12中的大小或位置的一个或多个码字16。
至少一个片段T3具有与多于一个相邻片段T1、T2邻接的至少一侧19-3。另外,片段T1、T2、T3彼此独立,使得针对片段T1中的任何单元U(例如单元U1)的任何帧内预测模式的导出仅取决于先前导出的也在片段T1中的单元U2中的帧内预测模式。对片段T1中的单元U1的任何帧内预测模式的导出不取决于不同的片段T2中的任何单元U3中的任何帧内预测模式。这样的片段在本文中被称为“灵活图块”或简称为“图块”,并且与严格按列和行布置的HEVC图块不同。也就是说,在HEVC中,图片中没有HEVC图块具有与多于一个相邻HEVC图块邻接的一侧。而是,给定的HEVC图块的给定侧仅与另一相邻HEVC图块的一侧邻接。
应注意,本公开可互换地使用术语片段、灵活图块和图块。然而,在这些实施例的上下文中,术语“灵活图块”和“图块”被定义为与片段相同,并且都与HEVC图块不同,如前所述。
图12A是示出了根据本公开的第一实施例的用于使用灵活图块对图片或图片的一部分进行编码的方法20的流程图。
方法20在编码器处实现,并且以编码器为图片定义灵活图块结构开始(框22)。灵活图块结构包括至少一个灵活图块或“片段”,该灵活图块或“片段”具有与两个或更多个相邻灵活图块或“片段”邻接的至少一侧。然后,编码器定义至少一个语法元素来描述如何构造灵活图块结构(框24)。至少一个语法元素包括描述灵活图块的一个或多个属性,或者语法元素包括用于导出灵活图块的属性的手段。这样的属性包括例如描述如何指派和/或访问各个灵活图块的标识符、宽度、高度和位置。然后,编码器在视频比特流中以信号传送用于灵活图块结构的至少一个语法元素(框26),根据灵活图块结构将图片或图片的一部分编码到视频比特流中(框28),并且发送比特流12(框29)。
图12B是示出了根据本公开的第一实施例的用于对使用灵活图块编码的图片或图片的一部分进行解码的方法30的流程图。
如图12B所示,方法30以解码器接收视频比特流(框32)并且从接收自编码器的视频比特流中解析用于灵活图块结构的至少一个语法元素(框34)开始。然后,解码器可以根据至少一个语法元素构造灵活图块结构,并且指派或导出各个灵活图块的属性(框36)。这些属性包括例如用于指派和/或访问灵活图块的标识符、宽度、高度和位置。然后,解码器根据灵活图块结构对图片或图片的一部分进行解码(框38)。如前所述,该灵活图块结构包括至少一个灵活图块,该灵活图块具有与多于一个的相邻灵活图块的对应侧邻接的至少一侧。
第二实施例
在第二实施例中,以预定义的顺序扫描灵活图块,并且为每个图块指定图块宽度和图块高度。例如,预定义的顺序例如是沿着CTU的光栅扫描顺序,并且可以以CTU单元指定图块大小。
图13A是示出了由编码器构造和以信号传送灵活图块的方法40的流程图。
如方法40中所示,编码器首先确定图片具有一个图块还是多个图块(框42)。如果图片仅具有一个图块,则编码器将tile_enabled_flag设置为等于0,以指示图片仅具有单个图块(框44),并结束该过程。否则,如果图片具有多于一个的灵活图块,则编码器创建空的图块列表(框46)。遵循预定义的扫描顺序,编码器将灵活图块添加到列表中,包括标识灵活图块的高度和宽度的信息(框48)。只要图片具有更多的灵活图块,编码器就会继续向列表添加灵活图块(框50)。
图13B是示出了由解码器解析和构造灵活图块的方法60的流程图。
如方法60中所示,解码器首先确定图片是具有一个图块还是多个图块(框62)。如果tile_enabled_flag被设置为0,指示图片仅具有一个带有所标识的宽度和高度的灵活图块,则该过程结束。否则,尽管列表中仍然有灵活图块(框64),但遵循预定义的扫描顺序解析列表中的下一图块,该图块由其宽度和长度指定(框66)。
表2标识了用于本公开的一个或多个实施例中的示例语法。该语法可以在当前现有的HEVC视频编码规范之上实现。
Figure BDA0002945571200000181
表2-示例图块语法
表2中语法元素的语义
tiles_enabled_flag:该标志可以被设置为值1或0。当被设置为1时,该标志指定在参考PPS的每个图片中有多于一个图块。当被设置为0时,该标志指定在参考PPS的每个图片中仅有一个图块。
tile_width_minus1[i]加1:指定第i个图块以编码树单元为单位的宽度。
tile_height_minus1[i]加1:指定第i个图块以编码树单元为单位的高度。
read_more_tiles():
如果图片中有至少一个CTU没有被指派给图块,则将read_more_tiles()的返回值设置为TRUE(真)。
否则,将read_more_tiles()的返回值设置为FALSE(假)。
在一个实施例中,解码器在解析PPS中的第一个tile_width_minus1语法元素之前,调用以下函数:
Figure BDA0002945571200000191
在一个实施例中,解码器在解析PPS中的第一个tile_width_minus1语法元素之后,调用以下函数:
Figure BDA0002945571200000192
Figure BDA0002945571200000201
在一个实施例中,语法元素tile_width_minus1和tile_height_minus1受到限制,使得在CTU_tile_assignment[tile_coordinate_y+y][tile_coordinate_x+x]=tile_id之前必须满足以下所有条件:
1.tile_coordinate_y+y必须小于PicHeightInCtbsY;
2.tile_coordinate_x+x必须小于PicWidthInCtbsY;以及
3.CTU_tile_assignment[tile_coordinate_y+y][tile_coordinate_x+x]必须等于“no tile(无图块)”。
图14示出了示例图块分区,其中使用10个图块T0...T9来划分图片10。在图14的每个图块中看到的数字表示图块编号(即,整数0、1、2、...),随后是图块的以CTU为单位的宽度和高度(例如4×2)。使用上面表2的示例语法,图块分区由总共63个来表示。
图15示出了另一示例图块分区,将具有2048×1280大小的图片10划分为26个图块。如图15所示,并非所有图块都具有相同的大小和形状。而是,存在一个大尺寸的图块TL和多个较小的图块Ts。图15中的大矩形图块TL是灵活图块,因为它具有与较小图块Ts中的多于一个较小图块Ts的侧边邻接的一侧。另外,该图片包括32×20=640个CTU,每个CTU的大小为64×64个亮度样本。这种图块分区被用于360视频流传输,其中一些较小的图块Ts被用于覆盖视口,并且单个大图块TL以较低的分辨率覆盖整个球面。
使用上面表2中的示例语法,图15的图块分区可以用总共267比特表示。用于tiles_enabled_sflag=1的一比特指示使用灵活图块。然后,分别利用10比特以信号传送25个较小的图块Ts,并且利用16比特(使用tile_width_minus1=11(7比特)和tile_height_minus1=19(9比特))以信号传送大图块TL。如果使用图块大小,则结果将是1+图块大小(5+5)+25×2+(3+5)=69比特。
第三实施例
在优选实施例中,通过以信号传送图块的高度和宽度来传递图块分区结构。图块由整数个诸如CTU的编码单元组成。在比特流中以信号传送编码单元的空间大小。
例如,在比特流中以信号传送的CTU单元大小具有64×64个亮度样本。然后,以信号传送一个图块具有宽度2和高度1,这意味着该图块具有128个亮度样本(即,2×64个亮度两本)的宽度和64个亮度样本(即,1×64个亮度两本)的高度。
此外,在该实施例中,使用一标志来指定当前图块大小是否与最接近的先前以信号传送的图块大小相等。如果该标志具有一个值,则从先前图块复制当前图块的图块大小。如果该标志具有另一值,则使用编码单元的高度和宽度来显式地以信号传送图块的高度和宽度。如下面更详细地描述的,解码器对该标志进行解码,并且基于其值来确定当前图块大小是否与最接近的先前以信号传送的图块大小相等。
在该实施例的一个变型中,首先对图片10中的图块数量进行解码。然后,在已知数量的其大小被解码的图块上存在循环。可选地,由于最后一个图块的大小由图片的剩余面积给出,因此不以信号传送该最后一个图块的大小。
在该实施例的另一变型中,不以信号传送图片中的图块数量。代替地,解码器持续对图块大小进行解码,直到解码器确定所有必需的图块大小均已被解码为止。当所有必需的图块大小已被解码时,解码器停止对图块大小进行解码,并且继续对来自比特流的其他数据进行解码。确定所有必需的图块大小是否已被解码的一种方式是确定图片中的所有CTU是否都在图块大小已被解码的图块中。确定所有必需的图块大小是否已被解码的另一种方式是确定与经解码的图块大小相对应的图块是否共同覆盖了整个图片。
在该实施例的又一变型中,以信号传送可选码字来传递图块被复制到下一图块位置的次数。例如,第一图块大小等于128×128。那么,在比特流中可以有一个或多个码字,用于指定该图块大小是否:
1)未被复制到任何其他图块,这意味着使用宽度和高度显式地以信号传送下一图块大小;或者
2)被复制到下一图块;或者
3)被复制到接下来的n个图块,其中以信号传送要复制的次数。
如图16A所示,解码器被配置为使用以下一个或多个方面对视频比特流的图片的编码表示进行解码。
具体地,如方法70中所示,解码器接收编码元素,利用该编码元素导出用于对图片进行解码的特定空间单元大小。备选地,解码器被配置为使用特定空间单元大小对图片进行解码(框72)。解码器还可以从视频比特流中显式地解码多于一个图块大小(框74)。在这些情况下,图块大小包括从比特流导出的宽度值(为整数数量的单元宽度)以及从比特流导出的高度值(为整数数量的单元高度)。在一个实施例中,解码器可以从视频比特流中解码至少一个图块大小,其中图块大小包括从先前解码的图块大小复制的宽度值和高度值(框76)。在一个实施例中,解码器被配置为对至少一个当前图块的标志进行解码(框78)。在这些情况下,一个值可以指示当前图块的图块大小从先前解码的图块大小复制,而另一个值指示图块大小应从比特流中的信息显式地解码。在一个实施例中,解码器通过从比特流中解码指定图块大小的数量的数值来确定要解码的图块大小的数量(框80)。在一个实施例中,解码器通过确定是否存在额外的要解码的图块大小来确定要解码的图块大小的数量(框82)。具体地,在这些情况下,解码器可以确定图片中的所有CTU是否在图块大小已被解码的图块中。备选地,解码器可以确定与经解码的图块大小相对应的图块是否共同覆盖整个图片。无论解码器对图块大小进行解码的特定方式如何,根据该实施例配置的解码器使用经解码的图块大小对图片的编码表示进行解码。
如图16B中所示,根据该实施例,编码器可以被配置为使用以下一个或多个方面来对视频比特流的图片的表示进行编码。
具体地,如方法90中所示,在一个实施例中,编码器可以被配置为对用于对至少一个图片进行编码的特定空间单元大小进行编码(框92)。在一个实施例中,编码器可以被配置为将多于一个图块大小显式地编码到比特流中(框94)。在这些情况下,编码器可以被配置为:通过将指示单元的宽度的一个经编码的整数图块宽度值和指示单元的高度的一个经编码的整数图块高度值插入比特流中,来对每个图块大小进行编码。在一个实施例中,编码器还可以被配置为:通过将图块大小设置为等于先前导出或解码的图块大小来导出至少一个图块大小(框96)。在一个实施例中,编码器还可以被配置成为针对至少一个当前图块插入标志值(框98)。在这些实施例中,可以使用一个值向解码器指定当前图块的图块大小应从先前解码的图块大小复制,或者编码器可以将图块大小显式地插入比特流中,使得解码器可以显式地导出图块大小。在一个实施例中,编码器还可以被配置为:通过将指定图块大小的数量的数值插入比特流中,来指示以信号传送的图块大小的数量。无论编码器对信息进行编码的特定方式如何,编码器被配置为使用图块大小来将至少一个图片编码到视频比特流中。
表3标识了在本公开的该实施例中使用的示例语法。该语法可以在当前现有的HEVC视频编码规范之上实现。
Figure BDA0002945571200000231
Figure BDA0002945571200000241
表3-示例语法
表3中语法元素的语义
tiles_enabled_flag等于1指定在参考PPS的每个图片中有多于一个图块。tiles_enabled_flag等于0指定在参考PPS的每个图片中仅有一个图块。
比特流一致性的要求是,对于在CVS内激活的所有PPS,tiles_enabled_flag的值应相同。
flexible_tiles_enabled_flag等于1指定使用灵活图块将参考PPS的图片划分为图块。flexible_tiles_enabled_flag等于0指定不使用灵活图块将参考PPS的图片划分为图块。
如果flexible_tiles_enabled_flag等于1,则变量tile_id的值和二维数组CTU_tile_assigment的值指定如下:
Figure BDA0002945571200000242
Figure BDA0002945571200000251
number_of_tiles_in_picture_minus2加2指定图片中的图块数量。number_of_tiles_in_picture_minus2应在0到PicSizeInCtbsY-2的范围内,含两端值。
use_previous_tile_size_flag等于1指定当前图块的大小等于先前图块的大小。use_previous_tile_size_flag等于0表示当前图块的大小不等于先前图块的大小。当不存在时,推断use_previous_tile_size_flag的值等于0。
当use_previous_tile_size_flag等于1时,数组tile_height_minus1和tile_width_minus1的第i个元素的值如下导出:
Figure BDA0002945571200000252
变量tile_id的值和二维数组CTU_tile_assigment的值如下导出:
Figure BDA0002945571200000253
Figure BDA0002945571200000261
比特流一致性要求在将CTU_tile_assignment[tile_coordinate_x+ctu_y][tile_coordinate_y+y]指派给值tile_id之前,以下所有条件应为真:
1.tile_coordinate_y+ctu_y的值应小于PicHeightInCtbsY
2.tile_coordinate_x+ctu_x的值应小于PicWidthInCtbsY
3.CTU_tile_assignment[tile_coordinate_x+ctu_x][tile_coordinate_y+ctu_y]的值应等于“no tile(无图块)”
针对i的每个值,执行tile_height_minus1[i]的语义中指定的变量tile_id和二维数组CTU_tile_assigment的值的导出。这意味着,该导出是在变量i的每次循环之后执行的,包括:在use_previous tile_size_flag不存在时,在use_previous tile_size_flag等于0时,以及在use_previous tile_size_flag等于1时。类似地,对于在任何循环中完成的任何指派,三个比特流一致性条件应为真。
第四实施例
在第四实施例中,本公开提供了一种用于确定给定单元(例如单元U)是否开始新的图块的方法。具体地,定义单元的大小,然后以预定义的顺序扫描。例如,在一个实施例中,单元被定义为具有与CTU相同的大小,然后以光栅扫描顺序进行扫描。在光栅扫描中,以稳定的速率从左到右水平进行扫描,然后进行消隐并快速地移动回左侧,重新启动并扫描下一行,使得垂直位置稳定地增加。当然,本领域的普通技术人员将理解,当在本实施例和其他实施例中将光栅扫描顺序描述为示例时,可以使用其他预定义的扫描顺序(例如从右至左水平扫描或垂直初始扫描)。
无论特定的扫描顺序如何,对于每个单元,都存在指定该单元是否开始新的图块的标志。当位于给定单元上方和左侧的另一单元属于同一图块时,针对该给定单元不发送标志。在这些情况下,可以推断给定单元和另一单元均位于同一图块中。
表4以图形示出了正在扫描的单元的定位是否指示该单元开始新的图块,以及用于设置指示该单元是否开始新的图块的标志的值(如果有的话)。
Figure BDA0002945571200000271
Figure BDA0002945571200000281
表4:一些可能的单元定位和相关联的信号传送
对于表4中示出的所有情况,除了最后一行中的不明确情况(即,正在扫描的单元在图块B中、在图块C中,或者开始新的图块)外,一个标志和其他先前扫描的单元(即,位于正在扫描的单元左侧和顶部的单元,如果它们存在的话)的已知状态足以指定当前正在扫描的单元的正确状态。为了消除在表4的最后一行中示出的情况下的不明确性,本公开引入了消歧比特。例如,在一个实施例中,将按定义的扫描顺序的所有消歧比特放置在消歧数组中。然后将该数组显式地以信号传送给解码器。
表5提供了用于该实施例的第一示例语法。表5中所示的语法可以在当前现有的HEVC视频编码规范之上实现。另外,仅出于说明目的,单元的大小等于CTU的大小。
Figure BDA0002945571200000291
Figure BDA0002945571200000301
表5:第一示例语法
表5中语法元素的语义
tiles_enabled_flag:该标志被设置为1,以指定在参考PPS的每个图片中有多于一个图块。该标志被设置为0,以指定在参考PPS的每个图片中仅有一个图块。
tiles_status_flag_enabled该标志被设置为1,以指定使用状态标志方法来以信号传送图块化结构。该标志被设置为0,以指定不使用图块状态标志方法来以信号传送图块化结构。
ctu_status[i]其被设置为0,以指定使用copy_id()从可用的相邻图块为当前CTU复制图块ID。其被设置为1,以指定使用set_new_id()为当前CTU设置新的图块ID。
如表4所示,存在一些情况,在这些情况下CTU状态仍然不确定(例如,表4的第2、3、5、6和8行中的情况)。在这些情况下,可以根据表6中所示的信号传送详情来确定状态。
Figure BDA0002945571200000311
表6:用于不明确的情况的信号传送详情
ctu_status_disambiguator_flag:该标志包括消岐比特,该消岐比特与ctu_status一起使用,用于在需要时确定CTU的状态。该比特流的长度等于ctu_status中消岐比特的数量。当且仅当ctu_status_flag的值为0时,才设置ctu_status_disambiguator_flag。在这些情况下,当disambiguator_bit=0时,应从左侧的单元复制ctu_status。当disambiguator_bit=1时,应从上方的单元复制ctu_status。
exist():该函数指示带有图块ID的相邻块(tileIdAboveLeft、tileIdAbove或tileIdLeft)是否存在图块ID。
set_new_id():该函数为当前CTU设置新的图块ID。
copy_id():该函数根据表6中提供的详情从相邻块复制图块ID。
assign_ctu_to_tile():该函数使用ctu_status和ctu_status_disambiguator标志将给定CTU指派给显式的图块ID。它还向给定CTU指派位于以下位置的相邻CTU的状态:紧邻给定CTU的左侧、紧邻给定CTU的上方、以及紧邻给定CTU的左上方(即,对角),如果它们存在的话。
read_more_tiles():该函数以预定义的扫描顺序(例如光栅扫描顺序)进行读取,如下所示:
如果图片中有至少一个CTU没有被指派给图块,则将read_more_tiles()的返回值设置为TRUE(真);
否则,将read_more_tiles()的返回值设置为FALSE(假)
在该实施例的一方面,在以信号传送新的图块时,以信号传送图块ID。图块ID可以是新的图块ID或先前定义的图块ID。通过这种方式以信号传送图块ID允许具有非矩形或不连续的图块的更灵活的图块结构。
比特计数
图17A至图17C示出了根据一个实施例的图14中所示的图片的图块分区(图17A)的ctu_status比特(图17B)。在该实施例中,空的单元指示在ctu_status中没有为该CTU以信号传送比特。“?”指示符表示需要消歧比特。图17C示出了对应的ctu_status消歧比特。
表7提供了用于该实施例的第二示例语法。表7中所示的语法将替代表5中所示的第一示例语法,并且可以在当前现有的HEVC视频编码规范之上实现。另外,仅出于说明目的,单元的大小等于CTU的大小。
Figure BDA0002945571200000331
Figure BDA0002945571200000341
表7:第二示例语法
表7中语法元素的语义
tiles_enabled_flag:该标志被设置为1,以指示每个图片中的多个图块参考PPS。该标志被设置为0,以指示每个图片中仅单个图块参考PPS。
tile_flag:该标志指示是将当前CTU的图块ID设置为等于相邻CTU的图块ID,还是开始新的图块。
当tile_flag等于0时,CTU_tile_assignment[x][y]的值被指定如下:
CTU_tile_assignment[x][y]=previous_tile;
当tile_flag等于1时,CTU_tile_assignment[x][y]的值和tile_id被指定如下:
CTU_tile_assignment[x][y]=tile_id;
tile_id=tile_id+1;
tile_flag1:该标志指示是将当前CTU的图块ID设置为等于相邻CTU的图块ID,还是开始新的图块。
当tile_flag1被设置为1时,CTU_tile_assignment[x][y]的值和tile_id被指定如下:
CTU_tile_assignment[x][y]=tile_id;
tile_id=tile_id+1;
tile_flag2:该标志指示是将当前CTU的图块ID设置为等于紧邻当前CTU上方的CTU的图块ID,还是设置为等于紧邻当前CTU左侧的CTU的图块ID。
当tile_flag2被设置为0时,CTU_tile_assignment[x][y]的值被设置为当前CTU的左侧的CTU的值,如下所示:
CTU_tile_assignment[x][y]=CTU_tile_assignment[x][y-1];
当tile_flag2被设置为1时,CTU_tile_assignment[x][y]的值被设置为紧邻当前CTU上方的CTU的值,如下所示:
CTU_tile_assignment[x][y]=CTU_tile_assignment[x-1][y];
第五实施例
在第五实施例中,本公开提供了一种与以上第一实施例提供的方法类似的用于扫描图块的方法。然而,该第四实施例包括以下附加特征中的一个或多个。具体地,该实施例还允许:
1.在“传统图块模式”下的传统图块的使用,并在“灵活图块模式”下的灵活图块的使用。例如,使用诸如flexible_tiles_enabled_flag之类的标志来以信号传送对于要操作的模式的确定;和/或
2.图块的特定大小规格。例如,该实施例可以指定为当前图块使用最新的图块的大小,或者使用紧邻当前图块的左侧或上方的图块的大小。例如,可以通过以信号传送模式值来将指定的大小应用于当前图块或者应用于所有剩余的图块。
图18A是示出了根据该实施例的用于构造和以信号传送图块的方法110的流程图。方法110由编码器实现,并且以编码器确定图片是否仅具有一个图块开始(框112)。如果是,则在结束方法110之前,编码器将tile_enabled_flag设置为等于0(框114)。然而,如果编码器确定图片具有多个图块,则编码器创建空的图块列表(框116)。然后,在图块剩余时且遵循预定义的扫描顺序(框118),编码器设置copy_tile_size_mode(框120)。如果copy_tile_size_mode被设置为0(框122),则编码器将图块(包括图块高度和宽度)添加到图块列表(框124)。然后该过程结束。
关于解码器,它解析并构造由编码器发送的图块。在该实施例中,解码器可以根据图18B至图18C所示的方法130执行这些功能。如图18B所示,解码器确定tile_enabled_flag是否被设置为0(框132)。如果是,则解码器将知道图片仅包括单个图块,因此方法130结束。否则,解码器确定flexible_tiles_enabled_flag是否被设置为1(框134)。如果否,则解码器使用传统图块来执行其解码功能(框136)。然而,如果解码器确定flexible_tiles_enabled_flag未被设置为1,则解码器开始处理图块。具体地,在剩余图块待处理(框138)时,解码器解析copy_tiles_size_mode值(框140),并使用该值来确定当前图块(即,当前正在处理的图块)的宽度和高度。
具体地,如果copy_tile_size_mode等于0(框142),则解码器遵循预定义的扫描顺序来解析由编码器创建的图块列表中由其宽度和长度指定的下一图块(框144)。
如果copy_tile_size_mode等于1(框146),则解码器将最后以信号传送的图块的宽度和高度复制到当前图块的宽度和高度(框148)。
转到图18C,如果copy_tile_size_mode等于2(框150),则解码器将左侧图块的宽度和高度复制到当前图块的宽度和高度(框152)。
如果copy_tile_size_mode等于3(框154),则解码器将紧邻当前正在处理的图块上方的图块的宽度和高度复制到当前正在处理的图块的宽度和高度(框156)。
如果copy_tile_size_mode等于4,并且不是在图块列表的末尾时(框158),解码器将最后以信号传送的图块的宽度和高度复制到当前图块的宽度和高度(框160)。
如果copy_tile_size_mode等于5,并且不是在图块列表的末尾时(框162),解码器复制紧邻当前图块左侧的图块的宽度和高度,并且将这些值复制到当前图块的宽度和高度(框164)。
如果copy_tile_size_mode等于6,并且不是在图块列表的末尾时(框166),解码器将紧邻当前图块上方的图块的宽度和高度复制到当前图块的宽度和高度(框168)。
表8提供了用于该实施例的示例语法。表8中所示的语法可以在当前现有的HEVC视频编码规范之上实现。
Figure BDA0002945571200000371
Figure BDA0002945571200000381
Figure BDA0002945571200000391
表8:示例图块语法
表8中语法元素的语义
tiles_enabled_flag:当该标志为1时,它指示参考PPS的每个图片中有多个图块。当该标志为0时,它指示参考PPS的每个图片仅具有单个图块。
flexible_tiles_enabled_flag:当该标志为1时,它指示定义了灵活图块。当该标志为0时,它指示在没有使用灵活图块语法的情况下定义图块。
copy_tile_size_mode:该值指示如何决定当前的图块大小。具体地:
·copy_tile_size_mode等于0指示显式地以信号传送图块大小。
·copy_tile_size_mode等于1指示使用最后的以信号传送的大小
·copy_tile_size_mode等于2指示使用当前图块的顶部/左侧样本左侧的图块大小
·copy_tile_size_mode等于3指示使用当前图块的顶部/左侧样本上方的图块大小
·copy_tile_size_mode等于4指示对所有剩余图块使用最后的以信号传送的图块
·copy_tile_size_mode等于5指示对所有剩余图块使用当前图块的顶部/左侧样本左侧的图块
·copy_tile_size_mode等于6指示对所有剩余图块使用当前图块的顶部/左侧样本上方的图块。
copy_from_last_signaled_tile():这是将最后的以信号传送的图块的宽度和长度复制到当前图块的宽度和长度的函数。
copy_from_above_tile():这是将当前图块上方的图块的宽度和长度复制到当前图块的宽度和长度的函数。
copy_from_left_tile():这是将当前图块左侧的图块的宽度和长度复制到当前图块的宽度和长度的函数。
第六实施例
在第六实施例中,本公开提供了一种用于将图片划分为单元、然后以预定义的扫描顺序扫描单元的方法。在该过程中,为每个单元指定图块标识符(图块id)。预定义的顺序为光栅扫描顺序,并且单元大小等于一个CTU单元的大小。
图19A和图19B是分别示出了由编码器和解码器实现的用于构造和以信号传送图块的方法的流程图。具体地,图19A中所示的方法170提供了由编码器构造和以信号传送图块的方法170。如方法170中所示,对于图片中的每个单元(框172),编码器在比特流中以信号传送用于该单元的图块ID(框174),并且将图块ID指派给该单元(框176)。
图19B中所示的方法180提供了在解码器处实现的方法180。具体地,针对图片中的每个单元(182),解码器解析与该单元相关联的图块的图块ID(框184),并且将图块ID指派给该单元。
HEVC视频编码规范之上的实施例5的示例语法表和语义描述可以参见表9。
Figure BDA0002945571200000401
Figure BDA0002945571200000411
表9:示例图块语法
表9中语法元素的语义
tiles_enabled_flag:当该标志被设置为1时,它指示在参考PPS的每个图片中有多于一个图块。当该标志被设置为0时,它指示在参考PPS的每个图片中仅有一个图块。
tile_id[y][x]:这指定坐标y和x处的CTU的图块ID。CTU_tile_assignment的值被指定如下:
CTU_tile_assignment[y][x]=tile_id[y][x]。
第七实施例
本公开的该实施例与第五实施例类似,但是包括以下附加特征。
首先,设置标志来确定是启用了灵活图块,还是部署了传统图块结构,例如当前的HEVC图块结构。
其次,该实施例定义了一种用于使用固定码值(例如等于0的码值)对独立图块进行编码的方法。如果图块具有与单元(例如CTU)相同的大小,则图块被定义为独立的。在给定图片包括多个独立图块的情况下,该特征有益地节省了比特。
第三,该实施例定义了一种允许利用固定长度编码对图块id进行可选编码的方法。在这些情况下,使用标志来以信号传送是使用了图块ID值的固定长度编码,还是使用了图块ID值的可变长度编码。
本领域普通技术人员将理解,本公开不限于这些特征和实施例。相反,可以改变这些特征以及在各个实施例中组合它们的方式。此外,并非所有特征都需要实现。例如,即使没有利用固定长度编码对图块id进行编码的能力,也可以使用标志来指示将灵活图块和对独立图块进行编码的方法一起使用。
表10提供了用于该实施例的示例语法。表10中所示的语法可以在当前现有的HEVC视频编码规范之上实现。
Figure BDA0002945571200000421
Figure BDA0002945571200000431
表10:示例图块语法
表10中语法元素的语义
tiles_enabled_flag:当该标志被设置为1时,它指示参考PPS的每个图片中有多于一个图块。当该标志被设置为0时,它指示参考PPS的每个图片中仅有一个图块。
flexible_tiles_enabled_flag:当该标志被设置为1时,它指示定义了灵活图块。当该标志被设置为0时,它指示在没有使用灵活图块语法的情况下定义图块。
use_zero_to_indicate_independent_tile_flag:当该标志被设置为1时,它指示以等于0的tile_id对独立图块进行编码。独立图块是图块宽度等于CTU宽度且图块高度等于CTU高度的图块。当该标志被设置为0时,它指示以与非独立图块相同的方式对独立图块进行编码。
use_fixed_length_code_for_tile_id_flag:当该标志被设置为1时,它指示使用固定长度编码对图块id进行编码。当该标志被设置为0时,它指示使用固定长度编码对图块id进行编码。
number_of_unique_tile_id:这是用于图块ID的值,指示图块依赖于所有其他图块。
tile_id[i][j]:该值指定坐标为i和j的CTU的图块ID。
第八实施例
在本公开的第八实施例中,使用四叉树和/或灵活图块分割将图片分为图块。该实施例中用于使用四叉树来分割图片的过程与用于分割CU的HEVC过程类似。
为了简化说明本实施例,将最小图块单元设置为CTU大小。然而,本领域普通技术人员应容易理解,对于本公开的其他实施例,最小图块单元是CU或CTU的矩形集合。
另外,并非所有图块的宽度和高度都是以CTU计的2的因子。在一个实施例中,如果高度和宽度不是2的因子,则四叉树的分割使用整数除法(integer division)。例如,如图20所示,如果给定图块的大小为5×7个CTU,则四叉树分割会将图块分为大小分别为2×3、2×4、3×3和3×4的图块T1、T2、T3和T4。类似地,水平或垂直“居中(midway)”分割也使用整数除法。
本文定义“居中”分割,使得对于长度为N个CTU的给定图块A(其中N是大于1的正整数),得到的第一经分割的图块B的长度为N/2,第二经分割的图块C的长度为N/2+N%2,其中“/”指示整数除法,“%”表示模运算符。图块的长度可以是图块的宽度、图块的高度或二者。
例如,如果给定图块的大小为1×5,则根据本公开的实施例,可以将该图块分割为两个图块-第一图块的大小为1×2,第二图块的大小为1×3。
图21A至图21B示出了由编码器实现的用于构造和以信号传送图块的方法190。如图21A所示,首先,编码器将图片/片设置为未完成图块列表中的唯一图块(框192)。然后,编码器创建空的已完成图块列表(框194)。然后,编码器检查以确定是否可获得任何未完成图块(框196)。如果否,则方法190结束。否则,编码器以光栅扫描顺序获得下一未完成图块(框198)。然后,编码器确定该图块是否可以被进一步分割(框200)。如果否,则编码器从未完成图块列表中移除该图块(框202),并在返回以确定是否可获得任何其他未完成图块(框196)之前,将该图块(包括图块ID、图块位置和图块尺寸)添加到已完成图块列表中(框204)。然后,编码器以信号传送指示是否应根据四叉树分割(或者“居中”水平或垂直分割(如果高度或宽度等于CTU的高度或宽度))来分割图块的标志(框206)。如果该标志确实指示了分割,则编码器从未完成图块列表中移除当前图块(框208),并且在返回确定是否可获得任何其他未完成图块(框196)之前,将经分割的图块添加到未完成图块列表中(框210)。
如图21B所示,如果该标志没有指示分割,则编码器以信号传送指示图块是否应被进一步分割的标志(框212)。如果图块将不被分割,则编码器再次确定是否可获得任何其他未完成图块(框196)。然而,如果图块应被进一步分割,则编码器以信号传信指示应垂直还是水平分割图块的标志(框214)。然而,请注意,当图块宽度等于CTU宽度或图块高度等于CTU高度时,不需要垂直/水平分割指示。
然后,编码器以信号传送要分割图块的特定CTU位置(框216),并在该位置分割图块(框218)。通过这样分割,编码器从未完成图块列表中移除当前图块,并且在返回确定是否可获得任何其他未完成图块(框196)之前,将经分割的图块添加到未完成图块列表中(框220)。
图21C至图21D示出了由解码器实现的用于对图21A至图21B中由编码器构造和以信号传送的图块进行解析的方法230。如图21C所示,解码器首先将图片/片设置为未完成图块列表中的唯一图块(框232)。然后,解码器创建空的已完成图块列表(框234)。然后,解码器检查以确定是否可获得任何未完成图块(框236)。如果否,则方法230结束。否则,解码器以光栅扫描顺序获得下一未完成图块(框238)。然后,解码器确定该图块是否可以被进一步分割(框240)。如果否,则解码器从未完成图块列表中移除该图块(框242),并在返回以确定是否可获得任何其他未完成图块(框196)之前,将该图块(包括图块ID、图块位置和图块尺寸)添加到已完成图块列表中(框244)。如果该图块可以被进一步分割,则解码器解析指示是否应根据四叉树分割(或者“居中”水平或垂直分割(如果高度或宽度等于CTU的高度或宽度))来分割图块的标志(框246)。如果该标志确实指示了这种分割,则解码器从未完成图块列表中移除当前图块(框248),并且在返回确定是否可获得任何其他未完成图块(框236)之前,将经分割的图块添加到未完成图块列表中(框250)。
如图21D所示,解码器解析由编码器以信号传送的标志,以确定图块是否应被进一步分割(框252)。如果图块将不被进一步分割,则解码器返回确定是否可获得任何其他未完成图块(框236)。然而,如果图块应被进一步分割,则解码器解析指示应垂直还是水平分割图块的标志(框254)。然而,请注意,当图块宽度等于CTU宽度或图块高度等于CTU高度时,无需解析该标志来确定垂直/水平分割。
然后,解码器解析码字以确定分割图块的特定CTU位置(框256),并且在返回确定是否可获得任何其他未完成图块(框236)之前,在该位置分割图块(框258)。
表11提供了用于该实施例的示例语法。表11中所示的语法可以在当前现有的HEVC视频编码规范之上实现。
Figure BDA0002945571200000461
Figure BDA0002945571200000471
表11:示例图块语法
表11中语法元素的语义
tiles_enabled_flag:该标志被设置为1,以指示在参考PPS的每个图片中有多于一个图块。该标志被设置为0,以指示在参考PPS的每个图片中仅有一个图块。
quadtree_split_flag:该标志被设置为1,以指示在tile_width大于ctu_width且tile_height大于ctu_height的情况下使用四叉树分割图块,如果tile_width等于ctu_width且tile_height大于ctu_height则进行水平分割,或者如果tile_width大于ctu_width且tile_height等于ctu_height则进行垂直分割。该标志被设置为0,以指示不使用四叉树分割来分割图块。注意,比特流一致性要求,当tile_width等于ctu_width且tile_height等于ctu_height时,quadtree_split_flag的值应等于0。
flexible_split_flag:该标志被设置为1,以指示使用灵活图块分割来分割图块。该标志被设置为0,以指示不对图块进行进一步分割。
split_in_horizontal_direction_flag:该标志被设置为1,以指示在水平方向上进行灵活分割。该标志被设置为0,以指示在垂直方向上进行灵活分割。如果不存在split_in_horizontal_direction_flag,则如果tile_width等于ctu_width且tile_height大于ctu_height,将标志值推断为1;如果tile_width大于ctu_width且tile_height等于ctu_height,将标志值推断为0。
split_position_minus1加1指定以CTU为单位的灵活分割的分割位置。如果split_in_horizontal_direction_flag被设置为1,则split_position_minus1应在0到tile_width minus 2的范围内,或者如果split_in_horizontal_direction_flag等于0,则split_position_minus1应在0到tile_height minus 2的范围内。
read next_tile():该函数递归地读取图块,并且如果针对当前图块不再有分割,则以光栅扫描顺序移动到下一图块。如果出现以下两种情况之一,则无需进一步分割。
1.图块宽度等于CTU宽度,且图块高度等于CTU高度;和/或
2.flexible_split_flag已被设置为0。
当确定图块将不被进一步分割时,将图块(包括图块ID、图块的x和y位置、宽度和高度)添加到已完成图块列表中。
split_tile_horizontally():该函数在以CTU高度计的位置tile_height/2处,将当前图块水平分割为图块A和图块B,其中该除法是整数除法。
split_tile_vertically():该函数在以CTU宽度计的位置tile_width/2处,将当前图块垂直分割为图块A和图块B,其中该除法是整数除法。
split_tile_using_quadtree():该函数在以CTU高度计的位置tile_height/2和以CTU宽度计的位置tile_width/2处,将当前图块水平和垂直地分割为图块A、图块B、图块C和图块D,其中该除法是整数除法。
split_tile_using_flexible_split():该函数在位置split_position_minus1加1处,将当前图块分割为图块A和图块B,如果split_in_horizontal_direction等于1,则水平地分割,或者如果split inhorizontal_direction_flag等于0,则垂直地分割。
根据本公开的实施例,可以以语法的不同变型来表达相同的图块结构。也就是说,可以以不同的顺序进行分割,但仍实现相同的结果。
另外,通常可以指派比所允许的值高的split_position_minus1值。例如,如果tile_width为6,则需要3比特来选择图块的5个分割位置中的任意一个。因此,在这种情况下,无法选择23-5=3个位置(尽管可能可以不受语义限制地选择它们)。在一个实施例中,在位置数量大于2的情况下,使用附加位置来以信号传送解析中的接下来几个标志。如果可获得至少2个位置,则在split_in_horizontal_direction等于0的情况下,如果split_position_minus1+1=tile_width,或者在split_in_horizontal_direction等于1的情况下,如果split_position_minus1+1=tile_height,则将接下来的quadtree_split_flag(如果可用的话)设置为0。在split_in_horizontal_direction等于0的情况下,如果split_position_minus1+1=tile_width+1,或者在split_in_horizontal_direction等于1的情况下,如果split_position_minus1+1=tile_height+1,则将该接下来的quadtree_split_flag设置为1。
在该实施例中,在类似于图14的图片的图块结构中,不将quadtree_split_flag设置为1,这意味着每个图块分割终止花费2比特。在一些实施例中,语法元素的顺序可以与所提出的图块语法中提供的顺序不同。例如,可以将flexible_split_flag放在quadtree_split_flag之前,其中等于0的quad_tree_split_flag将终止图块的进一步分割。在该示例中,可以使用19+10=29比特来表示图15的图块结构,并且可以使用73-19=54比特来表示图14的图块结构。在一个实施例中,可以在解析图块结构之前以信号传送额外的标志,来指示应先解析quad_tree_split_flag还是flexible_split_flag。在又一实施例中,不使用quadtree split_flag。而是,仅使用flexible_split_flag。在这方面,在split_in_horizontal_direction_flag之后,可以使用标志“split_midways_flag”来指定应居中分割图块,还是应读取位置split_position_minus1以在该位置处进行分割。
第九实施例
在该实施例中,通过指定图块之间的边界来描述图块结构。在本公开内,图块之间的边界也被称为“分割线”。
在该实施例的一方面,分割线是由它们的起点和终点描述的直线。由于起点和终点可以互换,而不会影响分割线,因此以下将二者都称为端点。
由于分割线或者是水平的、或者是垂直的,因此三个坐标和一个方向标志足以用以唯一地描述每条线。此外,该实施例使用一个标志来以信号传送水平分割线组,并且使用一个标志来以信号传送垂直分割线组。这进一步减少了总比特计数。
例如,可以使用9条水平分割线(h1、h2、h3、h4、h5、h6)和垂直分割线(v1、v2、v3)来表示图14所示的示例图块结构,如图22A至图22C所示。这等同于用于端点的坐标的3×9=36个码字、以及分别用于水平和垂直分割线的2个标志。
图23A是示出在编码器处实现的用于确定给定图块结构的水平和垂直分割线的方法260的流程图。仅出于说明目的,在图14中所示的图片的图块化结构的上下文中描述方法260。
如图23A所示,编码器确定tile_enabled_flag的值(框262)。如果该标志被设置为0,则它意味着图片仅包括一个具有与图片相同的宽度和高度的图块。因此,该过程结束。
然而,如果该标志未被设置为0,则编码器创建形成期望的图块化结构的所有水平分割线(AHDL)的列表(框264),以及创建形成期望的图块化结构的所有垂直分割线(AVDL)的列表(框266)。如果AHDL不为空(框268),则编码器以信号传送水平分割线并将AHDL发送给解码器(框270)。类似地,如果AVDL不为空(框272),则编码器以信号传送垂直分割线并将AVDL发送给解码器(框274)。可以颠倒创建和以信号传送AHDL和AVDL的顺序,而不影响实施例的一般方面。
图23B是示出了在解码器处实现的用于处理具有利用对应的水平和垂直分割线来描述的给定图块结构的图块的方法280的流程图。如上所述,在图14中所示的图片的图块化结构的上下文中描述解码器功能的该实施例。然而,这仅是为了便于描述。
如图23B所示,解码器首先确定tile_enabled_flag是否被设置为0(框282)。如果该标志被设置为0,则它意味着图片仅包括一个具有与图片相同的宽度和高度的图块。因此,该过程结束。
然而,如果该标志未被设置为0,则解码器创建空的complete_tile_list(框284),解析AHDL,并创建horizontal_divider_lines(HDL)列表(框286)。解码器还解析AVDL,并创建vertical_divider_lines(VDL)列表(框288)。可以颠倒解析AHDL和AVDL的顺序,而不影响实施例的一般方面。
然后,解码器创建corner_list,其中所有角及其方向由图片边界、HDL和VDL创建(框290)。例如,参考图22的图示,交叉点
Figure BDA0002945571200000514
指定corner_list中的四个单独的角,而T形连接点
Figure BDA0002945571200000513
Figure BDA0002945571200000515
Figure BDA0002945571200000516
Figure BDA0002945571200000517
指定两个单独的角点。
一旦创建并填充了corner_list后,解码器处理该列表。具体地,只要corner_list不为空(框292),解码器就以预定义的扫描顺序获得一个或多个角。具体地,解码器以扫描顺序取第一个角,并定位corner_list中形成图块的三个对应角(框294)。然后,解码器将图块添加到complete_tile_list(框296),并从corner_list中移除四个已使用的角(框298)。该过程一直持续到corner_list为空为止。
表12提供了用于该实施例的示例语法。表12中所示的语法可以在当前现有的HEVC视频编码规范之上实现。分割线的水平/垂直列表中的每个端点(不位于图片边界上)应位于垂直/水平列表中的一条分割线的长度上(即,不是另一起点或终点)。这将有助于确保适合的图块划分。
Figure BDA0002945571200000511
Figure BDA0002945571200000521
表12:示例图块语法
表12中语法元素的语义
tiles_enabled_flag:该标志被设置为1,以指示在参考PPS的每个图片中有多于一个图块。该标志被设置为0,以指示在参考PPS的每个图片中仅有一个图块。
tile_divider_line_enabled_flag:该标志被设置为1,以指示使用分割线来描述图块化结构。该标志被设置为0,以指示不使用分割线来描述图块化结构。
horizontal_divider_lines_count:该值指定水平分割线的数量。
vertical_divider_lines_count:该值指定垂直分割线的数量。
horizontal_divider_lines[i]:该值列出所有水平分割线。分割线由其端点的坐标指定。因为该列表中的每条分割线都是水平的,因此三个坐标足以唯一地描述每条分割线-即,单个y值和两个x值。
vertical_divider_lines[i]:该值列出所有垂直分割线。分割线由其端点的坐标指定。因为该列表中的每条分割线都是垂直的,因此三个坐标足以用以唯一地描述每条分割线。-即两个y值和一个x值。
corner_list:这是由其位置和方向
Figure BDA0002945571200000522
描述的所有角点的列表。该列表考虑了所有图片边界以及所有水平和垂直分割线(包括其交叉点)。
在一个方面,本公开的该实施例假设完整的网格。然后指定应移除的分割线的起点和终点。为了描述图15中所示的图块化结构,该实施例描述了应移除的6条分割线,因此,需要3×6个码字加上用于水平和垂直分割线组的两个码字来描述图块化结构。
在又一方面,除了起点和终点之外,分割线还具有弯曲点。弯曲点表示“接点(joint)”。根据本公开,接点在线的描述中用作前一点的终点,并且用作下一点的起点。
多个分割线集合可以导致相同的图块化结构。编码器可以针对最小数量的分割线进行优化。一方面,分割线可以具有共同的部分。在另一方面,分割线没有共同的部分。
在又一方面,分割线被指定一次,然后被复制到网格中的给定位置。
第十实施例
本公开的该实施例使用点的集合来描述图块结构,该点的集合在该结构中并且具有特定属性。这些点在本文中被称为“T形连接点”。
如前所述,该图块结构包括内部线集合,也被称为“分割线”。每条分割线是具有两个端点的直线,该分割线在所述端点处终止(即,分割线不再继续)。在分割线的这些端点的位置处定义了所谓的“T形连接点”。因为每条分割线在该分割线与另一条垂直分割线的连接点处终止(由于矩形的图块化结构,所以不是另一条分割线的端点),或者在图片中与第一分割线垂直的边界的连接点处终止,因此每个T形连接点具有以下四个可能形状之一:
Figure BDA0002945571200000531
Figure BDA0002945571200000532
因此,可以使用连接点的位置和四个形状
Figure BDA0002945571200000533
Figure BDA0002945571200000534
之一来充分地描述每个T形连接点。由每个T形连接点指向的三个方向在本文中被称为该T形连接点的“臂”。
然后,可以通过在图片中延伸T形连接点的所有三个臂,直到每个臂或者到达图片的边界,或者到达另一T形连接点位置为止,来根据T形连接点的集合确定图片的图块化结构。
在该实施例的一个方面,通过移除冗余的T形连接点来缩减T形连接点的集合。如本文所述,冗余的T形连接点是位于图片边界上并且在移除它们的情况下也不改变图块化结构的那些T形连接点。在图24A至图24B中示出了具有冗余的T形连接点的图块化结构的示例。在图24C还呈现了移除冗余的T形连接点之后的T形连接点集合T-J。冗余度是一一进行检查的。这意味着,如果T形连接点T-J是冗余的并因此将从集合中移除,则不应将其包含在集合中的T形连接点T-J中的剩余T形连接点的冗余度检查中。
图25A至图25B示出了示例图块化结构S以及描述特定图块化结构S的对应的T形连接点T-J的集合。
图26A是示出了在编码器处实现的用于创建如前所述的T形连接点的集合的方法300的流程图。方法300以编码器选择图块结构并创建与该图块结构相对应的分割线的集合开始(框302)。然后,编码器创建T形连接点的集合(STJ)(框304)。在该实施例中,STJ包括关于每个T形连接点的位置和朝向的信息。然而,在该实施例中,这可以使用多种过程来完成;编码器为所创建的集合中的分割线的每一端的位置指派一个T形连接点,并且基于该分割线是水平还是垂直的以及端点是左/右还是上/下端点,来为该T形连接点指派适合的方向。
然后,编码器移除冗余的T形连接点。具体地,针对图片边界上的每个T形连接点(框306),编码器确定STJ中是否存在具有相同列号或行号的另一T形连接点,如果是,则确定方向是否与正被检查的T形连接点不同(框308)。如果是,则编码器移除该T形连接点(框310)。
图26B是示出了在解码器处实现的用于创建如前所述的T形连接点的集合的方法320的流程图。方法300以解码器对T形连接点的集合或列表进行解码开始(框322)。每个T形连接点具有位置和方向或类型。有4个方向/类型。没有两个T形连接点应具有相同的位置,并且没有T形连接点应具有图片之外的位置。导出图块分区结构。然后,解码器从T形连接点的集合或列表导出图块分区,使得每个T形连接点从其所有三个臂延伸,直到每个臂到达另一T形连接点或图片边界为止(框324)。
表13提供了用于该实施例的示例语法。表13中所示的语法可以在当前现有的HEVC视频编码规范之上实现。
Figure BDA0002945571200000551
表13:示例图块语法
表13中语法元素的语义
tiles_enabled_flag:该标志被设置为1,以指示在参考PPS的每个图片中有多于一个图块。该标志被设置为0,以指示在参考PPS的每个图片中仅有一个图块。
tiles_enabled_flag:该标志被设置为1,以指示在参考PPS的每个图片中有多于一个图块。该标志被设置为0,以指示在参考PPS的每个图片中仅有一个图块。
tile_t_junction_enabled_flag:该标志被设置为1,以指示使用T形连接点来描述图块化结构。
t_junction_size_minus1加1:该值指定以信号传送的T形连接点的数量。
t_junction_new_row_seq:该值是其长度等于T形连接点的数量的比特序列。
t_junction_new_row_seq:该值从1开始,并在T形连接点每次改变扫描线时切换。作为示例性情况,对于14的图块结构,t_junction_new_row_seq被设置为:1110010110。使用该方法,只要T形连接点与前一T形连接点位于相同的扫描线上,就无需以信号传送该T形连接点的x和y二者。
t_junction_list:这是按照定义的扫描顺序的所有T形连接点(包括它们的位置和方向)的列表。
complete_tile_list:这是保留所有已完成图块的列表。利用已完成图块的四个角来指定已完成图块。利用包括图片中的所有单元的一个图块来初始化complete_tile_list。
update_complete_tile_list():这被定义为更新已完成图块列表的函数,并且描述如下:
update_complete_tile_list(){
·使用t_junction_list[i]的位置和方向,延伸t_junction_list[i]的所有臂,直到每个臂到达另一T形连接点或图片边界为止。
·如果将每个臂的两侧的单元指派给同一图块,则通过添加新创建的图块来更新已完成图块列表。
}
第十一实施例
该实施例基于以下观察:图块的数量通常远低于图片中块的数量。该实施例利用这种稀疏性来对图块化结构进行编码。
更详细地,可以利用每个图块的两个相对角的位置唯一地指定该图块。为简单起见,将左上角视为图块的起始位置,而将右下角视为图块的终止位置。在矩阵中标记图块的对应起点坐标和终点坐标,该矩阵中列和行的数量等于图片宽度和高度除以图片单元(例如CTU)的宽度和高度。
与网格上起始角坐标相对应的矩阵被视为稀疏矩阵,并且例如使用诸如压缩稀疏列(CSC)或压缩稀疏行(CSR)之类的稀疏矩阵压缩方法进行压缩。终止角矩阵也是如此。对稀疏矩阵进行压缩的另一种可能方式是,以与HEVC中在对变换系数进行压缩时针对系数显著性或系数符号的矩阵所采用的相同或相似的方式来压缩矩阵。图27A至图27C示出了图片10的图块化结构(图27A)如何与起始角矩阵(图27B)和终止角矩阵(图27C)相关。
与标准CSC和CSR的一个不同之处在于,起始角矩阵和终止角矩阵中的仅有的非零值等于1。因此,在比特流中发送的只是那些非零值的位置。
图28A是示出了在编码器处实现的用于创建如前所述的起始角矩阵和终止角矩阵的方法330的流程图。如图28A所示,方法330以编码器确定图片是否仅具有一个图块开始(框332)。如果是,则编码器将tile_enabled_flag设置为等于0(框334),并且该过程结束。
如果编码器确定图片具有多于一个图块,则编码器通过在对应的矩阵中标记每个图块的起点和终点来创建起始角矩阵和终止角矩阵(框336)。然后,编码器(例如使用CSC或CSR)创建起始角比特流和终止角比特流(框338),并且通过设置sparse_matrix_compression_flag来以信号传送压缩类型(CSC或CSR)(框340)。
图28B是示出了在解码器处实现的用于处理如前所述的起始角矩阵和终止角矩阵的方法350的流程图。如图28B所示,方法350以解码器确定tile_enabled_flag是否被设置为0开始(框352)。如果是,则该过程结束,因为图片仅包括具有与图片相同的宽度和高度的单个图块。
然而,如果图片中有多于一个图块,则解码器创建空的图块列表(框354)。然后,解码器从比特流中解析经压缩的起始角和终止角,并将它们扩展为起始角矩阵和终止角矩阵(框356)。然后,倘若在起始角矩阵中定义了起始角(框358),则解码器按照光栅扫描顺序读取下一起始角的位置(框360)。
然后,解码器在终止角矩阵中定位对应的终止角,并将图块(例如图块位置和图块id,或者例如图块位置以及宽度和高度)添加到complete_tile_list(框362)。然后,解码器将矩阵中的对应起始角和终止角设置为零,并重复该过程。
作为合理性检查,解码器可以确定:
·起始角(起始角矩阵中的那些)的数量等于图块的数量。
·终止角(终止角矩阵中的那些)的数量等于图块的数量。
·起始角矩阵的第一个元素始终被设置为1
·终止角矩阵的最后一个元素始终被设置为1
表14提供了用于该实施例的示例语法。表14中所示的语法可以在当前现有的HEVC视频编码规范之上实现。
Figure BDA0002945571200000581
Figure BDA0002945571200000591
表14:示例图块语法
表14中语法元素的语义
tiles_enabled_flag:该标志被设置为1,以指示在参考PPS的每个图片中有多于一个图块。:该标志被设置为0,以指示在参考PPS的每个图片中仅有一个图块。
sparse_matrix_compression_enabled_flag:该标志被设置为1,以指示使用稀疏矩阵来描述图块化结构。
sparse_matrix_compression_mode:这指示将哪种稀疏矩阵压缩方法用于起始角矩阵和终止角矩阵。该模式被设置为0指示使用压缩稀疏列(CSR)方法。
start_corners_stream_1是用于构建start_corners_matrix的第一数组。该数组被构造为:start_corners_stream_1[i]=start_corners_matrix中第(i)行上非零元素的数量。
tiles_count:该值指定了图块数量。这还给出了start_corner_matrix和end_corner_matrix中非零值的数量。
start_corners_stream_2是用于构建start_corners_matrix的第二数组。该数组包含start_corners_matrix的每个元素的列索引(0到n-1),因此具有start_corners_matrix中非零元素的长度数。
end_corners_stream_1是用于构建end_corners_matrix的第一数组。该数组被构造为:end_corners_stream_1[i]=end_corners_matrix中第(i)行上非零元素的数量。
end_corners_stream_2是用于构建end_corners_matrix的第二数组。该数组包含end_corners_matrix的每个元素的列索引(0到n-1),因此具有end_corners_matrix中非零元素的长度数。
start_corners_matrix是由两个数组start_corners_stream1和start_corners_stream_2唯一地定义的起始角矩阵。
end_corners_matrix是由两个数组end_corners_stream1和end_corners_stream_2唯一地定义的终止角矩阵。
complete_tile_list是已完成图块列表,初始化为空列表。
update_complete_tile_list()是从start_corners_matrix和end_corners_matrix读取图块并将它们添加到complete_tile_list的函数。假设光栅扫描方向是从左到右和从上到下,则函数描述如下:
Figure BDA0002945571200000601
参考由编码器定义或由解码器导出的单个分区结构来描述本文的实施例,例如图34A中所示的编码器400和图34B中所示的解码器450。图34A示出了发送具有指示单个分区结构750的信息的比特流700的示例编码器400。分区结构750包括片段或图块720、730和740。比特流700包括:指示单元710的大小的信息、以及与片段720、730和740相关的信息,其中片段720的边缘与片段730的边缘和片段740的边缘邻接。
图34B示出了接收具有指示单个分区结构750的信息的比特流700的对应示例解码器。分区结构750包括片段或图块720、730和740。比特流700包括:指示单元710的大小的信息、以及与图块或片段720、730和740相关的信息,其中片段720的边缘与片段730的边缘和片段740的边缘邻接。
当然,本领域普通技术人员将理解,编码器400和解码器450可以如图34A至图34B所示单独使用,或者如图29所示结合使用以交换一系列图像。
在交换一系列图像的这种情况下,在一个或多个实施例中,比特流包括图片的标识的指示符,或者以其他方式将特定分区结构与一个图片或多个图片相关联。如图29所示,分区结构400示出了用于图片片段421、422、423的分割线420。分区结构的给定图片片段包括至少两个子片段,例如,由形成子片段的边界的分割线410形成的子片段。子片段可以包括多个单元。例如,如图29所示,子片段480包括4个单元。第一图片片段421的边缘与相邻图片片段422和423的对应边缘邻接。如图29所示,编码器400和解码器450分别对具有相同的分区结构400或不同的分区结构430和450的多个图像进行编码和解码。这些不同的分区结构可以是如本文所述的灵活分区结构。备选地或附加地,如图29所示,不同的分区结构还可以包括传统的分区结构,其中分割线440和460跨图像。
图35示出了本文描述的编码器或解码器将有用的示例系统或方法800。系统包括媒体源(例如,捕获、渲染器或文件)。媒体源810被馈送到投影映射820,然后被馈送到图块编码器或转码器,例如如本文所述用于划分媒体源的图像的编码器400。经编码的信息被存储在存储器830中,然后被馈送到服务器840。它可以通过网络850发送到观看设备860。例如,图像是视频之一,并且观看设备860具有如本文所述的解码器450,用于对经划分的图像进行解码,渲染870图像,并在显示器880上向观看设备860的用户显示图像。这样的观看设备可以是例如头戴式显示器(HMD)设备或任何显示设备。
一个或多个实施例适用于其中观看设备860接收与设备的特定注视方向相关的一个或多个图像的应用。在一个实施例中,设备已经从服务器840接收到信息,该信息解释了哪些图块流是可用的,以及关于每个图块流的信息,诸如空间覆盖和比特率。捕获观看设备860的注视方向,并且观看设备860向服务器840请求图块流的子集。观看设备860接收图块流,根据图块流构成单个比特流,并将该比特流馈送给解码器450。观看设备860具有关于图块流的必要信息,并且知道它如何构成单个比特流。因此,观看设备860能够将经解码的图片转换成适于渲染的图片。
在另一实施例中,捕获观看设备860的注视方向并将该注视方向发送给服务器840。服务器840根据所存储的图块流构成单个比特流,并将该比特流发送给解码器450。与比特流一起发送如何将经解码的图片转换为适于渲染的图片的必要信息。观看设备860对图片进行解码(解码器450),将其转换并渲染(渲染870)。可选地,观看设备860或客户端连续发送针对流应具有的比特率的请求。
编码器400和解码器450可以使用硬件和/或软件的合适组合来实现。因此,编码器包括一个或多个处理器和例如一个或多个存储器,并且被配置为执行根据本文实施例的方法。图30是示出了编码器400的组件的示意图。处理器500可以是能够执行包含在一个或多个存储器515中存储的计算机程序520中的软件指令的合适的中央处理单元(CPU)、多处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)等中的一个或多个的任意组合。一个或多个存储器515例如是数据缓冲器、读写存储器(RWM)、只读存储器(ROM)、随机存取存储器(RAM)、高速缓存存储器、闪存设备、光学存储设备等。编码器可以包括具有输入和/或输出电路530的接口540,该输入和/或输出电路530被配置为例如经由发射机或收发机550来发送比特流。
如图31所示,编码器400可以具有被配置为执行本文描述的方法的单元、模块或电路。例如,编码器400包括定义分区单元600,其定义如本文所述的将图片分为图片片段的分区结构。编码器400还包括:编码单元610,其根据分区结构对图片片段进行编码以生成多个编码图片片段。编码器400包括:生成单元620,其生成包括多个编码图片片段和指示用于将图片分为多个图片片段的分区结构的信息在内的比特流。
此外,解码器450包括一个或多个处理器和例如一个或多个存储器,并且被配置为执行根据本文的实施例的方法。图32是示出了解码器450的组件的示意图。处理器510可以是能够执行包含在一个或多个存储器540中存储的计算机程序550中的软件指令的合适的中央处理单元(CPU)、多处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)等中的一个或多个的任意组合。一个或多个存储器540例如是数据缓冲器、读写(RWM)存储器或只读(ROM)存储器。解码器450包括具有输入和/或输出电路535的接口545,该输入和/或输出电路535被配置为例如经由接收机或收发机560接收比特流。
如图33所示,解码器450可以具有被配置为执行本文描述的方法的单元、模块或电路。例如,解码器450包括被配置为接收比特流的接收单元630。解码器450包括:导出单元640,其被配置为从比特流中的信息导出分区结构。解码器450包括:解码单元650,其被配置为根据分区结构对在比特流中接收的编码图片片段进行解码。
应注意,本公开中的实施例包括具有矩形形状的片段或图块,其中每个片段或图块具有四个侧边或边缘。另外,每一侧边或边缘都与其他片段或图块或图片边界邻接。也就是说,可以将图片扩展为等于整数个单元的大小。
在本公开中,“图块”是片段的类型,并且术语“侧边”和“边缘”可以互换使用。
参考附图更全面地描述本文中设想的一些实施例。然而,其他实施例包含在本文公开的主题的范围内。所公开的主题不应被解释为仅限于本文阐述的实施例;而是,这些实施方式仅作为示例被提供,以将主题的范围传达给本领域技术人员。

Claims (57)

1.一种对图片进行解码的方法(30),所述方法包括:
接收(32)比特流(12),所述比特流包括多个编码图片片段和与所述多个编码图片片段相关联的信息;
从所述比特流中的所述信息导出(34)将所述图片分为图片片段的分区结构,其中,每个图片片段与所述多个编码图片片段中的一个编码图片片段相对应并且包括至少一个单元,并且其中,所述分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接;以及
根据所述分区结构,对在所述比特流中接收的所述多个编码图片片段进行解码(38),其中,对用于所述第一图片片段的第一单元(U1)的帧内预测模式的导出取决于用于所述第一图片片段的第二单元(U2)的导出的帧内预测模式,而与用于所述分区结构的其他图片片段的单元的帧内预测模式无关。
2.根据权利要求1所述的方法,其中,从所述比特流中的所述信息导出还包括:基于用于所述第二单元的量化参数值来导出(36)用于所述第一单元的量化参数值,其中,对用于所述第一单元的量化参数值的导出与用于任何其他图片片段的单元的量化参数值无关。
3.根据权利要求1至2中任一项所述的方法,其中,导出所述分区结构包括:接收(134)编码器正在使用灵活划分的指示。
4.根据权利要求1至3中任一项所述的方法,其中,对所述多个编码图片片段进行解码包括:根据预定义的解码顺序(66)对每个图片片段进行解码。
5.根据权利要求4所述的方法,其中,所述预定义的解码顺序是光栅扫描顺序。
6.根据权利要求1至5中任一项所述的方法,其中,导出所述分区结构包括:从相邻图片片段复制(152、156、164、168)图片片段的大小。
7.根据权利要求6所述的方法,其中,与所述多个编码图片片段相关联的信息包括复制模式,所述复制模式基于相邻图片片段在所述分区结构中的位置或者用于对图片片段进行解码的顺序来指示对所述相邻图片片段的选择。
8.一种用于对图片进行编码的方法(20),所述方法包括:
定义(22)将图片分为图片片段的分区结构,其中,每个图片片段包括至少一个单元,并且其中,所述分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接;
根据所述分区结构对所述多个图片片段进行编码(28),以生成多个编码图片片段,其中,每个编码图片片段与所述分区结构的所述图片片段中的一个图片片段相对应,并且每个编码图片片段是独立的,使得对用于所述第一图片片段的第一单元(U1)的帧内预测模式的导出取决于用于所述第一图片片段的第二单元(U2)的导出的帧内预测模式,而与用于所述分区结构的其他图片片段的单元的帧内预测模式无关;
生成比特流(12),所述比特流包括所述多个编码图片片段和指示用于将所述图片分为所述多个图片片段的所述分区结构的信息;以及
发送(29)所述比特流。
9.根据权利要求8所述的方法,其中,每个编码图片片段是独立的,使得对用于所述第一单元的量化参数值的导出取决于用于所述第二单元的量化参数值,而与用于所述分区结构的其他图片片段的单元的量化参数值无关。
10.根据权利要求8至9中任一项所述的方法,其中,生成比特流还包括:在所述比特流中生成(26)编码器正在使用灵活划分的指示。
11.根据权利要求8至10中任一项所述的方法,还包括:确定(72)所述分区结构中的单元的大小,其中,单元定义了所述图片的区域。
12.根据权利要求1至11中任一项所述的方法,其中,所述分区结构的每个单元是编码树单元CTU。
13.根据权利要求1至12中任一项所述的方法,其中,所述图片片段是灵活图块。
14.根据权利要求1至13中任一项所述的方法,其中,所述图片片段是灵活的片。
15.根据权利要求1至14中任一项所述的方法,其中,所述分区结构的每个单元与所述图片的矩形或正方形区域中的不同区域相对应。
16.根据权利要求1至15中任一项所述的方法,其中,所述分区结构的每个单元是所述图片的区域,并且所述信息包括用于所述分区结构的所有单元的单个大小。
17.根据权利要求1至16中任一项所述的方法,其中,所述信息包括所述分区结构的第一图片片段的高度、宽度或二者。
18.根据权利要求1至17中任一项所述的方法,其中,所述信息包括相对于所述分区结构的单元的大小的指定所述高度或宽度的整数。
19.根据权利要求1至14中任一项所述的方法,其中,所述信息包括接收所述分区结构的第二图片片段与所述第一图片片段相比在高度、宽度或二者方面不同的指示。
20.根据权利要求19所述的方法,其中,所述指示是标志或模式。
21.根据权利要求19所述的方法,其中,指示的缺少指示:所述分区结构的图片片段关于所述第一图片片段的高度或宽度中的至少一个与另一图片片段相同。
22.根据权利要求1至14和19至21中任一项所述的方法,其中,所述信息指示接收编码图片片段的解码器应从所述分区结构的相邻图片片段复制与所述分区结构的图片片段的大小有关的属性。
23.根据权利要求22所述的方法,其中,所述信息基于特定相邻图片片段在所述分区结构中的位置来指示所述特定相邻图片片段。
24.根据权利要求1至5和8至14中任一项所述的方法,其中,所述信息包括图片片段标识符,每个图片片段标识符指示用于所述分区结构的单元的图片片段之一。
25.根据权利要求1至5、9至18和28中任一项所述的方法,其中,所述分区结构中的至少一个单元与所述图片的非矩形区域相对应。
26.根据权利要求1至5、8至14和24至25中任一项所述的方法,其中,所述分区结构的每个单元是所述图片的区域,并且其中,所述信息指示用于所述分区结构的所有单元的一个大小。
27.根据权利要求1至5和8至14中任一项所述的方法,其中,所述信息包括指示单元是图片片段中的唯一单元的独立单元标识符。
28.根据权利要求1至5和8至14中任一项所述的方法,其中,所述信息包括定义在所述分区结构的图片片段之间共享的端点的信息。
29.根据权利要求1至5、8至14和28中任一项所述的方法,其中,所述分区结构的每个单元是所述图片的区域,并且所述信息包括用于所述分区结构的所有单元的单个大小。
30.根据权利要求1至5、8至14和28至29中任一项所述的方法,其中,所述分区结构使用垂直分割线和水平分割线中的至少一个将所述图片分为图片片段。
31.根据权利要求1至5、8至14和28至30中任一项所述的方法,其中,所述分区结构使用所述图片片段的分割线的起始角和终止角将所述图片分为图片片段。
32.根据权利要求1至5、8至14和28至31中任一项所述的方法,其中,所述分区结构使用四叉树分割、居中分割、灵活分割和整数除法中的至少一种将所述图片分为图片片段。
33.根据权利要求1至5、8至14和28至32中任一项所述的方法,其中,针对所述分区结构的特定图片片段,所述信息指示以下一项或多项:
是否应使用四叉树分割、居中分割、灵活分割和整数除法中的至少一种来分割图片片段;
用于所述特定图片片段的特定分割方法;
应使用几次特定分割方法;以及
应沿哪个方向分割所述特定图片片段。
34.根据权利要求1至5、8至14和28至31中任一项所述的方法,其中,所述信息包括分割所述分区结构的图片片段的分割线的端点的坐标。
35.根据权利要求1至5、8至14和28至31中任一项所述的方法,其中,所述分区结构使用T形连接点将所述图片分为图片片段,并且其中,T形连接点定义了所述分区结构中两个或三个图片片段的边界处的点。
36.根据权利要求35所述的方法,其中,所述信息指示T形连接点的位置和方向之一或二者。
37.根据权利要求1至5、8至14、28至31和35至36中任一项所述的方法,其中,所述分区结构使用交叉点将所述图片分为图片片段,并且其中,交叉点定义了所述分区结构中四个图片片段的边界处的点。
38.根据权利要求37所述的方法,其中,所述信息指示交叉点的位置。
39.根据权利要求1至5、8至14和28至30中任一项所述的方法,其中,所述分区结构通过将图片片段的角布置在网格上来分割分区结构的图片片段,其中在所述网格上针对每个图片片段定义了起始角和终止角。
40.根据权利要求1至5、8至14、28至30和39中任一项所述的方法,其中,所述信息包括:
起始角指示符的序列或矩阵,其指示所述分区结构中的图片片段在所述网格上的起始;
终止角指示符的序列或矩阵,其指示所述分区结构中的图片片段在所述网格上的终止;或者
以上二者。
41.根据权利要求1至5、8至14、28至30和39至40中任一项所述的方法,其中所述分区结构使用每个图片片段的起始角和终止角之一或二者来分割分区结构的图片片段,其中,所述起始角和所述终止角定义了稀疏矩阵,并且其中,所述稀疏矩阵使用稀疏矩阵解压缩方法进行解码。
42.一种解码器电路(510),被配置为:
接收(32)比特流(12),所述比特流包括多个编码图片片段和与所述多个编码图片片段相关联的信息;
从所述比特流中的所述信息导出(34)将图片分为图片片段的分区结构,其中,每个图片片段与所述多个编码图片片段中的一个编码图片片段相对应并且每个图片片段包括至少一个单元,并且其中,所述分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接;以及
根据所述分区结构,对在所述比特流中接收的所述多个编码图片片段进行解码(38),其中,对用于所述第一图片片段的第一单元(U1)的任何帧内预测模式的导出取决于用于所述第一图片片段的第二单元(U2)的导出的帧内预测模式,而与用于所述分区结构的任何其他图片片段的单元的任何帧内预测模式无关。
43.根据权利要求52所述的解码器电路,还被配置为实现根据权利要求2至7和12至41中任一项所述的方法。
44.根据权利要求42至43中任一项所述的解码器电路,其中,所述解码器电路被包括在用于显示经解码的图片片段的显示器(880)中。
45.一种解码器(450),包括:
接收电路(535、545),被配置为接收(32)比特流(12),所述比特流包括多个编码图片片段和与所述多个编码图片片段相关联的信息;
存储器(540),包括可执行指令;以及
处理电路(510),可操作地连接到所述接收电路和所述存储器,并且被配置为执行所述可执行指令以:
从所述比特流中的所述信息导出(34)将图片分为图片片段的分区结构,其中,每个图片片段与所述多个编码图片片段中的一个编码图片片段相对应并且每个图片片段包括至少一个单元,并且其中,所述分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接;以及
根据所述分区结构,对在所述比特流中接收的所述多个编码图片片段进行解码(38),其中,对用于所述第一图片片段的第一单元(U1)的任何帧内预测模式的导出取决于用于所述第一图片片段的第二单元(U2)的导出的帧内预测模式,而与用于所述分区结构的任何其他图片片段的单元的任何帧内预测模式无关。
46.根据权利要求55所述的解码器,其中,所述处理电路还被配置为实现根据权利要求2至7和12至41中任一项所述的方法。
47.根据权利要求45至46中任一项所述的解码器,其中,所述解码器被包括在用于显示经解码的图片片段的显示器(880)中。
48.一种包括可执行指令的计算机程序(550),所述可执行指令在由解码器(450)中的处理电路(510)执行时,使所述解码器执行根据权利要求2至7和12至41中任一项所述的方法。
49.一种包含权利要求48所述的计算机程序(550)的载体,其中,所述载体是电信号、光信号、无线电信号或计算机可读存储介质之一。
50.一种包括可执行指令(550)的非暂时性计算机可读存储介质(540),所述可执行指令(550)在由解码器(450)中的处理电路(510)执行时,使所述解码器执行根据权利要求2至7和12至41中任一项所述的方法。
51.一种编码器电路(500),被配置为:
定义(22)将图片分为图片片段的分区结构,其中,每个图片片段包括至少一个单元,并且其中,所述分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接;
根据所述分区结构对所述多个图片片段进行编码(28),以生成多个编码图片片段,其中,每个编码图片片段与所述分区结构的所述图片片段中的一个图片片段相对应,并且每个编码图片片段是独立的,使得对用于所述第一图片片段的第一单元(U1)的任何帧内预测模式的导出取决于用于所述第一图片片段的第二单元(U2)的导出的帧内预测模式,而与用于所述分区结构的任何其他图片片段的单元的任何帧内预测模式无关;
生成比特流(12),所述比特流包括所述多个编码图片片段和指示用于将所述图片分为所述多个图片片段的所述分区结构的信息;以及
发送(29)所述比特流。
52.根据权利要求61所述的编码器电路,还被配置为实现根据权利要求9至41中任一项所述的方法。
53.一种编码器(400),包括:
存储器(515),包括可执行指令(520);
处理电路(500),被配置为执行指令以:
定义(32)将图片分为图片片段的分区结构,其中,每个图片片段包括至少一个单元,并且其中,所述分区结构的第一图片片段的边缘与两个或更多个相邻图片片段的对应边缘邻接;
根据所述分区结构对所述多个图片片段进行编码(28),以生成多个编码图片片段,其中,每个编码图片片段与所述分区结构的所述图片片段中的一个图片片段相对应,并且每个编码图片片段是独立的,使得对用于所述第一图片片段的第一单元(U1)的帧内预测模式的导出取决于用于所述第一图片片段的第二单元(U2)的导出的帧内预测模式,而与用于所述分区结构的任何其他图片片段的单元的帧内预测模式无关;
生成比特流(12),所述比特流包括所述多个编码图片片段和指示用于将所述图片分为所述多个图片片段的所述分区结构的信息;以及
发射机(550),被配置为发送所述比特流。
54.根据权利要求63所述的编码器,还被配置为执行根据权利要求9至41中任一项所述的方法。
55.一种包括可执行指令的计算机程序(520),所述可执行指令在由编码器(400)中的处理电路(500)执行时,使所述编码器执行根据权利要求9至41中任一项所述的方法。
56.一种包含实施例55所述的计算机程序(520)的载体,其中,所述载体是电信号、光信号、无线电信号、或计算机可读存储介质之一。
57.一种包含计算机程序的非暂时性计算机可读存储介质(515),所述计算机程序包括可执行指令(520),所述可执行指令(520)在由编码器(400)中的处理电路(500)执行时,使所述编码器执行根据权利要求9至41中任一项所述的方法。
CN201980054733.4A 2018-06-21 2019-06-20 灵活图块分区 Pending CN112585970A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862688314P 2018-06-21 2018-06-21
US62/688,314 2018-06-21
PCT/EP2019/066402 WO2019243541A2 (en) 2018-06-21 2019-06-20 Flexible tile partitions

Publications (1)

Publication Number Publication Date
CN112585970A true CN112585970A (zh) 2021-03-30

Family

ID=67003505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980054733.4A Pending CN112585970A (zh) 2018-06-21 2019-06-20 灵活图块分区

Country Status (6)

Country Link
US (1) US20210152828A1 (zh)
EP (1) EP3811613A2 (zh)
CN (1) CN112585970A (zh)
BR (1) BR112020025887A2 (zh)
RU (1) RU2760850C1 (zh)
WO (1) WO2019243541A2 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102154407B1 (ko) * 2018-11-15 2020-09-09 한국전자기술연구원 타일 기반 스트리밍을 위한 모션 제한 av1 영상 부호화 방법 및 장치
US11606555B2 (en) * 2018-12-20 2023-03-14 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for video coding using uniform segment split in pictures
CN113261289A (zh) * 2018-12-27 2021-08-13 华为技术有限公司 视频译码中的灵活分块改进
WO2020185145A1 (en) * 2019-03-08 2020-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Methods providing encoding/decoding of dependent/independent partitions and related devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105144720A (zh) * 2013-01-04 2015-12-09 Ge视频压缩有限责任公司 高效可伸缩编码概念
CN105432082A (zh) * 2013-04-08 2016-03-23 微软技术许可有限责任公司 用于兴趣区编码的运动约束图块集合

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103650501B (zh) * 2011-08-25 2017-10-27 太阳专利托管公司 使用瓦片编码方案对视频进行编码、提取和解码的方法和装置
KR102272561B1 (ko) * 2011-10-31 2021-07-02 미쓰비시덴키 가부시키가이샤 동화상 복호 장치
WO2014003428A1 (ko) * 2012-06-26 2014-01-03 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
FR2993084A1 (fr) * 2012-07-09 2014-01-10 France Telecom Procede de codage video par prediction du partitionnement d'un bloc courant, procede de decodage, dispositifs de codage et de decodage et programmes d'ordinateur correspondants
CN105744272B (zh) * 2014-12-09 2019-07-19 深圳力维智联技术有限公司 基于非对称Tile划分的图像编解码方法及其装置
EP3468186A4 (en) * 2016-06-08 2019-09-18 Sony Corporation IMAGE PROCESSING DEVICE AND METHOD

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105144720A (zh) * 2013-01-04 2015-12-09 Ge视频压缩有限责任公司 高效可伸缩编码概念
CN105432082A (zh) * 2013-04-08 2016-03-23 微软技术许可有限责任公司 用于兴趣区编码的运动约束图块集合

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IAIN E. G. RICHARDSON: "《H.264 and MPEG-4 Video Compression:Video Coding for Next-generation Multimedia》", pages: 168 - 184 *

Also Published As

Publication number Publication date
EP3811613A2 (en) 2021-04-28
WO2019243541A3 (en) 2020-02-06
US20210152828A1 (en) 2021-05-20
BR112020025887A2 (pt) 2021-03-23
RU2760850C1 (ru) 2021-11-30
WO2019243541A2 (en) 2019-12-26

Similar Documents

Publication Publication Date Title
US11477470B2 (en) Encoding and decoding pictures based on tile group ID
CN109076240B (zh) 将全向图像映射到布局输出格式的方法和装置
US9967577B2 (en) Acceleration interface for video decoding
CN112585970A (zh) 灵活图块分区
US20180152716A1 (en) Transmitting Apparatus and Method Thereof for Video Processing
US20230097014A1 (en) Tile Partitions with Sub-Tiles in Video Coding
EP2153661A2 (en) Methods and apparatus for the use of slice groups in encoding multi-view video coding (mvc) information
TWI739042B (zh) 視訊編碼方法
CN113261289A (zh) 视频译码中的灵活分块改进
WO2019243534A1 (en) Tile shuffling for 360 degree video decoding
JP2023024970A (ja) ビデオエンコーディングおよびデコーディングにおける改善されたタイルアドレスシグナリング
US20240171755A1 (en) Picture Tile Attributes Signaled Per-Tile
CN116600140A (zh) 图像编码和解码设备及发送图像数据的设备
CN114051731A (zh) 图像编码设备、图像解码设备、图像编码方法和图像解码方法
CN104581186A (zh) 一种图像压缩中对帧内移动矢量进行编码和解码的方法

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