CN112640455A - 视频编码中具有子图块的图块分区 - Google Patents

视频编码中具有子图块的图块分区 Download PDF

Info

Publication number
CN112640455A
CN112640455A CN201980054347.5A CN201980054347A CN112640455A CN 112640455 A CN112640455 A CN 112640455A CN 201980054347 A CN201980054347 A CN 201980054347A CN 112640455 A CN112640455 A CN 112640455A
Authority
CN
China
Prior art keywords
picture
sub
tile
segment
segments
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.)
Granted
Application number
CN201980054347.5A
Other languages
English (en)
Other versions
CN112640455B (zh
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 CN112640455A publication Critical patent/CN112640455A/zh
Application granted granted Critical
Publication of CN112640455B publication Critical patent/CN112640455B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/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/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/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)和方法(20、30)。每个图块或片段(T)包括单个矩形或正方形区域。编码器生成(22)分区结构,并且根据该分区结构对图块进行编码(28)。编码器还生成比特流(12),该比特流包括多个编码片段和指示用于将图片划分为多个灵活图块或片段的分区结构的信息,并且将该比特流发送(29)给解码器。在接收到后,解码器使用比特流中的编码片段和信息对多个编码片段进行解码(38)。

Description

视频编码中具有子图块的图块分区
技术领域
本公开大体上涉及图片编码和解码技术,并且更具体地,涉及具有子片段的图片片段的编码和解码。
背景技术
高效率视频编码(HEVC)是由ITU-T和运动图片专家组(MPEG)二者标准化的基于块的视频编解码,利用空间预测技术和时间预测技术二者。空间预测减少了空间冗余,并且使用来自当前图片的同一帧内的帧内(I)预测来实现。时间预测减少了时间冗余,并且使用先前解码的参考图片,在块级别上使用帧间(P)或双向帧间(B)预测来实现。然而,无论特定类型的预测技术如何,得到的原始像素数据和经预测的像素数据之间的差异(被称为“残差”)被变换到频域并被量化。对经变换的残差进行量化,其水平由量化参数(QP)确定,有助于控制比特率和视频质量之间的折衷。
然后,经变换和量化的残差在被发送到解码器之前,与必要的预测参数一起被熵编码。也被熵编码的预测参数包括预测模式和运动矢量。接收到后,解码器执行熵解码、逆量化和逆变换以获得残差。然后,解码器使用帧内预测或帧间预测技术从残差重构图像。
MPEG和ITU-T都正在联合视频探索组(JVET)内研究HEVC的后继者。该视频编解码的名称为“多功能视频编码(VCC)”。HEVC视频编码标准包括用于分割图片(例如分为片或图块)的不同工具。例如,图块将图片分为空间上独立的矩形区域。然而,划分始终跨整个图片,分别从左到右和从上到下。图片参数集合(PPS)用于依据编码树单元指定行的厚度和列的宽度。
发明内容
本文的实施例对于使用灵活划分(例如,将减少图片的编码片段的传输成本的划分)对图片进行编码和解码是有用的。例如,一个或多个实施例实现了一种分区结构,其中该分区结构的每个图片片段包括一个或多个子片段,其中每个子片段包括多个单元。通过提供子片段和单元二者的大小,可以用较少的码字来表示包括子片段的图片片段的大小,由此节省对应编码片段的传输成本。
一个或多个实施例包括一种对图片进行解码的方法。所述方法包括接收比特流,所述比特流包括多个编码片段和与所述多个编码片段相关联的信息。所述方法还包括:从所述比特流中的信息导出将图片分为多个图片片段的分区结构。每个图片片段与所述多个编码片段中的一个编码片段相对应并且包括一个或多个子片段。此外,至少一个图片片段包括至少两个子片段。所述分区结构的每个子片段还包括多个单元,并且针对所述多个单元中的每一个,每个单元与所述图片的区域相对应。所述方法还包括:从所述比特流中的信息导出所述分区结构的子片段的大小和所述分区结构的单元的大小。然后,所述方法还包括:根据所述分区结构,对在所述比特流中接收的所述多个编码片段进行解码。对所述图片片段中的给定一个图片片段的第二单元的任何帧内预测模式的导出取决于所述图片片段中的所述给定一个图片片段的第一单元的导出的帧内预测模式,而与用于任何其他图片片段的单元的任何帧内预测模式无关。
本公开的一个或多个实施例还包括一种对图片进行编码的对应方法,其可以与用于对图片进行解码的方法结合或分开使用。在一个实施例中,一种对图片进行编码的方法包括定义将图片分为图片片段的分区结构。所述分区结构的每个图片片段包括一个或多个子片段,至少一个图片片段包括至少两个子片段。所述分区结构的每个子片段包括多个单元,每个单元与所述图片的区域相对应。所述方法还包括:根据所述分区结构对所述图片片段进行编码,以生成多个编码片段。每个编码片段与所述分区结构的所述图片片段中的一个图片片段相对应。此外,每个编码片段是独立的,使得对所述图片片段中的给定一个图片片段的第二单元的任何帧内预测模式的导出取决于所述图片片段中的所述给定一个图片片段的第一单元的导出的帧内预测模式,而与用于任何其他图片片段的单元的任何帧内预测模式无关。所述方法还包括:生成比特流,所述比特流包括所述多个编码片段和指示用于将所述图片分为所述图片片段的所述分区结构的信息。所述信息指示所述分区结构的单元的大小和所述分区结构的子片段的大小。
本公开的一个或多个实施例还提供一种解码器电路,所述解码器电路被配置为接收比特流,所述比特流包括多个编码片段和与所述多个编码片段相关联的信息。所述解码器电路还被配置为:从所述比特流中的信息导出将所述图片分为多个图片片段的分区结构,其中,每个图片片段与所述多个编码片段中的一个编码片段相对应并且包括一个或多个子片段,至少一个图片片段包括至少两个子片段。此外,每个子片段包括多个单元,每个单元与所述图片的区域相对应。所述解码器电路还被配置为:从所述比特流中的信息导出所述分区结构的子片段的子片段大小和所述分区结构的单元的单元大小。然后,所述解码器电路还被配置为:根据所述分区结构对在所述比特流中接收的所述多个编码片段进行解码。在这些实施例中,对所述图片片段中的给定一个图片片段的第二单元的帧内预测模式的导出取决于所述图片片段中的所述给定一个图片片段的第一单元的导出的帧内预测模式,而与用于任何其他图片片段的单元的任何帧内预测模式无关。
本公开的一个或多个实施例还提供一种解码器,包括:通信电路,被配置为接收比特流,所述比特流包括多个编码片段和与所述多个编码片段相关联的信息;存储器,被配置为存储指令;以及处理电路,可操作地连接到所述存储器和所述通信电路。所述处理电路被配置为:执行存储在存储器中的指令,由此,所述解码器被配置为:从所述比特流中的信息导出将所述图片分为多个图片片段的分区结构,其中,每个图片片段与所述多个编码片段中的一个编码片段相对应并且包括一个或多个子片段,至少一个图片片段包括至少两个子片段。此外,每个子片段包括多个单元,每个单元与所述图片的区域相对应。通过执行指令,所述处理电路还将所述解码器配置为:从所述比特流中的信息导出所述分区结构的子片段的子片段大小和所述分区结构的单元的单元大小。通过执行指令,所述处理电路还将所述解码器配置为:根据所述分区结构对在所述比特流中接收的所述多个编码片段进行解码。在这些实施例中,对所述图片片段中的给定一个图片片段的第二单元的帧内预测模式的导出取决于所述图片片段中的所述给定一个图片片段的第一单元的导出的帧内预测模式,而与用于任何其他图片片段的单元的任何帧内预测模式无关。
本公开的一个或多个实施例还提供一种编码器电路,所述编码器电路被配置为定义将图片分为多个图片片段的分区结构。每个图片片段包括一个或多个子片段,所述分区结构的至少一个图片片段包括至少两个子片段。此外,每个子片段包括多个单元,每个单元与所述图片的区域相对应。所述编码器电路还被配置为:根据所述分区结构对所述图片片段进行编码,以生成多个编码片段。每个编码片段与所述分区结构的所述图片片段中的一个图片片段相对应。此外,每个编码片段是独立的,使得对所述图片片段中的给定一个图片片段的第二单元的帧内预测模式的导出取决于所述图片片段中的所述给定一个图片片段的第一单元的导出的帧内预测模式,而与用于任何其他图片片段的单元的任何帧内预测模式无关。所述编码器电路还被配置为:生成比特流,所述比特流包括多个编码片段和指示用于将所述图片分为所述图片片段的所述分区结构的信息,以及发送所述比特流。在这些实施例中,所述信息指示所述分区结构的单元的单元大小和所述分区结构的子片段的子片段大小。
本公开的一个或多个实施例还提供一种编码器,所述编码器包括:存储器,被配置为存储指令;以及处理电路,可操作地连接到所述存储器。所述处理电路被配置为执行存储在所述存储器中的指令,由此,所述编码器被配置为:定义将图片分为多个图片片段的分区结构。每个图片片段包括一个或多个子片段,所述分区结构的至少一个图片片段包括一个或多个子片段。此外,每个子片段包括多个单元,每个单元与所述图片的区域相对应。通过执行指令,所述处理电路还将所述编码器配置为:根据所述分区结构对所述图片片段进行编码,以生成多个编码片段。每个编码片段与所述分区结构的所述图片片段中的一个图片片段相对应。此外,每个编码片段是独立的,使得对所述图片片段中的给定一个图片片段的第二单元的帧内预测模式的导出取决于所述图片片段中的所述给定一个图片片段的第一单元的导出的帧内预测模式,而与用于任何其他图片片段的单元的任何帧内预测模式无关。通过执行指令,所述处理电路还将所述编码器配置为:生成比特流,所述比特流包括多个编码片段和指示用于将所述图片分为所述图片片段的所述分区结构的信息,以及发送所述比特流。在这些实施例中,所述信息指示所述分区结构的单元的单元大小和所述分区结构的子片段的子片段大小。
附图说明
图1示出了使用QTBT将CTU划分为CU的示例。
图2示出了示例图块划分。
图3A至图3B示出了具有高分辨率图块和低分辨率图块的示例图块化结构。
图4示出了HEVC中不支持的图块结构的示例。
图5示出了HEVC中可以支持的示例图块结构。
图6A示出了示例划分,其示出了单元和图片片段。
图6B示出了示例划分,其示出了单元、子片段和图片片段。
图7示出了根据本公开的一个实施例的示例比特流。
图8示出了根据本公开的一个实施例的被划分为64个单元的图片。
图9示出了根据本公开的一个实施例的示例三个片段分区结构。
图10示出了根据本公开的一个实施例的已经使用图8和图9中示出的分区结构进行了划分的图片。
图11A至图11C示出了根据本公开的一个实施例的根据分区结构划分的图片,其中图11A示出了单元、图11B示出了子片段或子图块、以及图11C示出了片段或图块。
图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示出了根据本公开的一个实施例的包括解码器和编码器在内的系统。
图36A至图36C示出了根据本公开的一个实施例的根据分区结构进行了划分的图片,其中图36A示出了片段或图块、图36B示出了子片段或子图块、以及图36C示出了单元。
具体实施方式
本申请要求2018年6月21日提交的美国申请No.62/688301的优先权,其全部内容通过引用合并于此。
四叉树和二叉树(QTBT)结构
如前所述,HEVC是由ITU-T和MPEG标准化的基于块的视频编解码,利用时间预测和空间预测二者。HEVC使用块结构,其中可以通过四叉树(QT)结构来划分每个顶层编码块,即,编码块划分中的最大块,本文中被称为编码树单元(CTU)。该划分产生编码块划分,本文中被称为编码单元(CU)。然后,可以利用四叉树结构将CU进一步递归地划分为较小的大小相等的CU,直到8×8的块大小。
多功能视频编码(VVC)的当前版本中的块结构与HEVC中的块结构不同。具体地,VVC中的块结构被称为四叉树加二叉树加三叉树块结构(QTBT+TT)。QTBT+TT中的CU可以具有正方形或矩形形状。与HEVC中一样,首先通过四叉树结构对编码树单元(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 BDA0002944609260000101
表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)。此外,在一个或多个实施例中,将图片分为子片段,每个子片段包括一个单元或多个单元。每个子片段被指派有图块ID,该图块ID标识该子片段被指派给的特定图块。后一个实施例是有益的,因为它支持具有非矩形图块的灵活图块分区、以及棋盘图案中的分区。
本公开的实施例使得能够将更灵活的图块分区用于各种用例,例如360度视频。此外,在与固定图块分区相比时,与灵活图块分区相关联的比特成本较低。具体地,使用常规的图块划分,图块的数量更高,并且每个图块都伴随着成本(例如与CABAC刷新和适应性重置、比特流偏移等相关联的处理)。然而,本实施例的灵活图块划分使用了较少的图块,由此减少了比特成本。
本实施例还实现了用于并行处理的灵活的CPU负载均衡,在并行处理中,编码器例如可以分析输入图片并选择将图片分为尽可能少的图块的图块划分(以减少比特成本),同时等同地填充可用数量的核。此外,与常规方法相比,本公开的实施例还促进了对环路滤波器的增加的控制,使得传统图块更加灵活。
本实施例对于诸如多视图(MV)视频编码之类的严格的用例(例如其中对于带宽或解码能力是主要瓶颈)甚至更加有益。在这些情况下,本实施例实现了更好的资源分配。在指定了感兴趣区域(RoI)的应用中,本公开的实施例还提供了更加灵活的资源分配。
与常规的图块化方法相比,本公开的灵活图块划分实施例使用更大的图块。由于较大的图块大小,本实施例还通过对帧内运动矢量施加较少的限制来对图片的质量做出贡献。此外,本公开的灵活图块划分方法移除了图块之间的不必要的划分线。这种线移除减少了对于图块之间的线进行滤波的成本。
本公开的实施例以比常规手段(例如HEVC)可以提供的图块布局更灵活的图块布局,将来自视频图片序列的图片划分为图块。这包括配置编码器以生成分区结构和图块以进行编码,以及配置解码器以对分区结构和图块进行解码。在一些实施例中,本公开的灵活图块划分方法与常规形式的HEVC的处理共存。因此,如前所述,比特流中的tiles_enabled_flag可以用于指定是应使用传统的图块划分方案,还是应使用根据本实施例的灵活图块划分方案。
图6A示出了一个示例,其中将图片10划分为四(4)个图块或“片段”T1、T2、T3、T4(统称为“T”)(如黑色实线所示),其中每个图块或片段T1、T2、T3、T4包括16个单元U。这为图片10提供了总共64个单元U。图6B示出了图片10,其中片段T1、T2、T3、T4被进一步划分为16个子片段(例如T1-1、T1-2、T1-3、T1-4),如黑色实线和虚线所示。每个子片段包含4个单元U。
在比特流中以信号传送灵活图块结构。例如,编码器在诸如序列参数集合(SPS)或图片参数集合(PPS)之类的参数集合中以信号传送灵活图块结构。然而,如本领域普通技术人员将理解的,本公开不限于在参数集合中以信号传送灵活图块结构。尽管本文的实施例将图块结构描述为在PPS中以信号传送,但这仅出于说明目的,并且可以通过其他方式以信号传送该信息。
一般说明
图7示出了被解码为图片10的比特流12。图8示出了被划分为64个单元U的图片10。图11A至图11C示出了另一示例图片10,其中图11A示出了64个单元U,图片10也使用如图11B中所示的子片段(例如T1-1、T1-2、T1-3、T1-4)。单元U的一个示例是从H.264已知的宏块。单元U的另一示例是从HEVC已知的CTU。
如图7所示,比特流12包括一个或多个编码片段T和一个或多个码字16、17、18。一个或多个码字16包括指定比特流中的字节或比特的数量的信息,该字节或比特包括对每个编码片段T进行解码所需的数据。一个或多个码字17携带指定单元U的空间大小的信息。一个或多个码字18携带指定子片段的空间大小的信息。作为示例,单元U的空间大小是水平64个亮度样本和垂直64个亮度样本;然而,如本领域普通技术人员将理解的,本公开不限于单元U的这些大小和形状。根据本公开的实施例,包括不规则形状的单元(例如不是正方形形状的单元)在内的其他单元大小和形状也是可能的。
如图7至图8所示,已经使用分区结构将图片10空间地划分为三个片段T1、T2、T3。从比特流12中的信息导出定义分区结构的信息。例如,对来自比特流12的编码片段14进行解码,以导出图片10中的对应解码片段的样本值。另外,可以从比特流12中的一个或多个码字16解析编码片段14的大小和/或位置。如前所述,本公开的一个实施例利用一个或多个码字16携带指定比特流中的字节或比特的数量的信息,该字节或比特包括对编码片段14进行解码所需的信息。然而,备选地,本公开的实施例可以利用一个或多个码字16携带导出编码片段14在比特流12中的定位或位置所需的信息。
如图8所示,每个片段T1、T2、T3的边界与单元U的边界对齐。这意味着每个片段T1、T2、T3包括整数个单元U,并且每个单元U与一个片段T相关联。例如,如图8所示,最右边的两个片段T2、T3各自包括16个单元,而最左边的片段T1包括32个单元。
图9示出了一个实施例,其中使用图8所示的相同分区结构S来划分图片10。然而,为了清楚起见,图9没有示出单元U。如图9所示,第一片段T1的一侧19-1分别与两个或更多个邻近或相邻的片段T2、T3的侧边19-2、19-3邻接。
图10示出了已经使用与图8和图9中示出的相同分区结构S进行了划分的图片10。如图10所示,图片10包括三个片段T1、T2、T3。图10的所有片段T1、T2、T3包括一个或多个单元U;然而,为了清楚起见,图10将片段T1和T3示为包括单元U的子集。具体地,片段T1包括单元U1,而邻近或相邻的片段T3包括单元U2、U3。片段T1、T2、T3中的每一个彼此独立。这意味着,在对单元U进行解码时,对片段T1、T2、T3的边界的处理与图片边界类似。这影响解码期间元素的导出过程,例如对帧内预测模式的导出和对量化参数值的导出。
对仅使用来自当前图片的先前解码样本的预测进行样本预测的单元,使用和以信号传送帧内预测模式(例如帧内(B)预测模式和帧内(P)预测模式)。通常,特定单元U2中的帧内预测模式的导出取决于其他单元U3中的先前导出的帧内预测模式。由于片段是独立的,因此特定单元U2中的帧内预测模式的导出仅取决于属于相同当前片段T3的单元U3中的先前导出的帧内预测模式,而不取决于与不同的片段(例如片段T1)相关联的任何单元(例如单元U1)中的任何帧内预测模式。因此,图10的分区结构S使得第一片段T1中的单元U1中的帧内预测模式不可用于导出不同的第二片段T3中的单元U2、U3的帧内预测模式。
然而,第一片段T1中的单元U1可用于导出另一单元中的帧内预测模式,但仅当该另一单元在相同的片段T1中时。因此,针对第二片段T3中的单元U2、U3,片段边界对帧内模式导出的作用与图片边界相同或相似。换言之,针对图片片段T3的第一单元U2的帧内预测模式的导出可以取决于针对图片片段T3的第二单元U3的导出的帧内预测模式。
量化参数(QP)值在本领域中也是众所周知的。例如,通常使用先前导出的QP值来导出单元U的QP值。本领域已知的一种导出过程是首先从比特流12中导出经预测的QP值,然后将增量QP值与经预测的QP值相加。由于片段T1、T2、T3彼此独立,因此特定单元(例如片段T3的单元U2)中的QP值的导出例如可以仅取决于相同片段T3中的单元的先前导出的QP值。特定给定单元U2、U3中的QP值的导出不取决于与不同片段中的任何其他单元(例如片段T1中的单元U1)相关联的任何QP值。这意味着图10中的分区结构S使得第一片段T1中的单元U1中的QP值不可用于导出不同的第二片段T1中的单元U2、U3的QP值。
一些单元U中的QP值可以用于导出另一单元U中的QP值,但仅当该另一单元在相同的片段T1中时。因此,针对第二片段T3中的单元U2、U3,片段边界对QP值导出的作用与图片边界相同或相似。
图11A至图11C示出了根据分区结构S划分但是包括对子片段SS1-SS16的使用(如图11B所示)的相同图片10。图11A示出了单元U。如前所述,在比特流12中用一个或多个码字17以信号传送单元的空间大小。图11B示出了子片段SS1-SS16,每个子片段包括数量大于1的整数个单元U。因此,每个子片段SS1-SS16包括至少两个单元U,并且每个单元U仅属于一个子片段。在比特流12中用一个或多个码字18以信号传送子片段SS1-SS16的空间大小。子片段(21)的空间大小以单元来表示。在图11B的示例中,子片段的空间大小是水平2个单元和垂直2个单元。应注意,子片段可以是矩形的,使得宽度和高度不同。一个或多个码字(24)中携带的信息可以由一个高度值和一个宽度值组成。该信息可以被视为一个子片段大小(即,值对),或被视为独立的宽度和高度值。码字(24)由解码器从比特流12解码,并用于导出子片段的大小。
图11C示出了图10的片段T1、T2、T3和分区结构S。每个片段T1、T2、T3包括至少一个单元U。片段T1、T2、T3包括数量大于0的整数个子片段SS1-SS16。因此,每个片段T1、T2、T3包括至少一个子片段SS1-SS16,并且每个子片段SS1-SS16仅属于一个片段T1、T2、T3。可以注意到,如果所有片段T1、T2、T3包括单个子片段,则在一个或多个实施例中,子片段是冗余的,并且不需要被包括在信息中作为分区结构S的一部分来以信号传送。因此,在图片10中的至少一个片段T1、T2、T3包括多于一个的子片段SS1-SS16的情况下,子片段很有用。片段T1、T2、T3的空间大小用子片段SS1-SS16来表示,这意味着在导出片段T1、T2、T3的空间大小和/或空间分区结构S时,使用子片段SS1-SS16的大小。在图11A至图11C的示例中,两个片段T2、T3的空间大小是水平2个子片段和垂直2个子片段,并且一个片段T1的空间大小是水平2个子片段和垂直4个子片段。
应注意,在一些实施例中,片段T1、T2、T3可以是矩形的,使得片段的宽度和高度不同。在其他实施例中,片段T1、T2、T3是非矩形的,并且通过为一个片段(例如子片段T1)分配每个单元U和/或子片段SS来表示。这样的分配用于表示例如“棋盘片段”,其中片段T1、T2、T3中的一些表示棋盘上的白色正方形,而其他片段T1、T2、T3表示棋盘上的黑色正方形。在一些实施例中,片段(例如,片段T1)可以等同于图块或片。在一些实施例中,子片段可以等同于子图块。
第一实施例
如图9所示,视频流中的图片10或图片10的一部分被分为空间分区结构S,其中分区结构S包括至少三个片段T1、T2、T3。每个片段T1、T2、T3包括单元U,其中片段T1、T2、T3中的至少一个包括两个或多个单元U。在比特流12的一个或多个码字17中以信号传送单元U的空间大小,并且从比特流12的一个或多个码字17中解码单元U的空间大小。另外,从比特流12解析指示至少一个编码片段T在比特流12中的大小或位置的一个或多个码字16。
至少一个片段T1具有与两个或多于一个的相邻片段T2、T3的侧边19-2、19-2邻接的至少一侧19-1。另外,片段T1、T2、T3彼此独立,使得针对第一片段T1中的任何单元U的任何帧内预测模式的导出仅取决于先前导出的也在第一片段T1中的单元U中的帧内预测模式。针对第一片段T1中的单元U的任何帧内预测模式的导出不取决于不同的第二片段T2中的任何单元U中的任何帧内预测模式。这样的片段在本文中被称为“灵活图块”或简称为“图块”,并且与相对于单个单元定义的严格按列和行布置的HEVC图块不同。也就是说,在HEVC中,图片中没有图块具有与多于一个的相邻片段邻接的一侧。而是,HEVC中给定图块的给定侧仅与另一相邻图块的一侧邻接。灵活图块还可以包括与灵活子图块或更简单地表示为子图块相同的可选子片段。应注意,本公开可互换地使用术语片段、灵活图块和图块。然而,在这些实施例的上下文中,术语“灵活图块”和“图块”被定义为与片段相同,并且都与HEVC图块不同,如前所述。
图12A是示出了根据本公开的第一实施例的用于使用灵活图块对图片或图片的一部分进行编码的方法20的流程图。
方法20在编码器处实现,并且以编码器为图片定义灵活图块结构开始(框22)。灵活图块结构包括至少一个灵活图块,该灵活图块具有与两个或更多个相邻灵活图块邻接的至少一侧。然后,编码器定义至少一个语法元素来描述如何构造灵活图块结构(框24)。至少一个语法元素包括描述灵活图块的一个或多个属性,或者语法元素包括用于导出灵活图块的属性的手段。这样的属性包括例如描述如何指派和/或访问各个灵活图块的标识符、宽度、高度和位置。然后,编码器在视频比特流中以信号传送用于灵活图块结构的至少一个语法元素(框26),并且根据灵活图块结构将图片或图片的一部分编码到视频比特流中(框28)。该灵活图块结构包括至少一个灵活图块,该灵活图块具有与多于一个的相邻灵活图块邻接的至少一侧。
图12B是示出了根据本公开的第一实施例的用于对使用灵活图块编码的图片或图片的一部分进行解码的方法30的流程图。
如图12B所示,方法30以解码器接收视频比特流(框32)并且从接收自编码器的视频比特流中解析用于灵活图块结构的至少一个语法元素(框34)开始。然后,解码器可以根据至少一个语法元素构造灵活图块结构,并且指派或导出各个灵活图块的属性(框36)。这些属性包括可以用于指派和/或访问灵活图块的标识符、宽度、高度和位置。然后,解码器根据灵活图块结构对图片或图片的一部分进行解码(框38)。如前所述,该灵活图块结构包括至少一个灵活图块,该灵活图块具有与多于一个的相邻灵活图块的对应侧邻接的至少一侧。
第二实施例-指定图块宽度和高度
在第一实施例中,以预定义的顺序扫描灵活图块,并且为每个图块指定图块宽度和图块高度。在一个或多个实施例中,预定义的顺序是例如沿着单元(例如,CTU)的光栅扫描顺序,并且以单元指定图块大小。备选地,预定义的顺序是沿着子片段的光栅扫描顺序,并且以子片段指定图块大小。
图13A是示出了由编码器构造和以信号传送灵活图块的方法40的流程图。
如方法40中所示,编码器首先确定图片具有一个图块还是多个图块(框42)。如果图片仅具有一个图块,则编码器将tile_enabled_flag设置为等于0,以指示图片仅具有单个图块(框44),并结束过程。否则,如果图片具有多于一个的灵活图块,则编码器创建空的图块列表(框46)。可选地,该方法包括确定子片段是否用于任何图块的步骤(框43)。如果否,则该方法以编码器创建空的图块列表(框46)继续。如果该分区结构包括子片段(框45),则确定并在数据流中以信号传送子图块的高度和或宽度。子图块高度和/或宽度可以是预定义的。遵循预定义的扫描顺序,编码器将灵活图块添加到列表,包括标识灵活图块的高度和宽度的信息(框48)(例如,以单元或子片段(如果使用子片段)表示)。只要图片具有更多的灵活图块,编码器就会继续向列表添加灵活图块(框50)。
图13B是示出了由解码器解析和构造灵活图块的方法60的流程图。
如方法60中所示,解码器首先确定图片是具有一个图块还是多个图块(框62)。如果tile_enabled_flag被设置为0,指示图片仅具有一个具有所标识的宽度和高度的灵活图块,则方法结束。否则,尽管列表中仍然有灵活图块(框64),但是解码器遵循预定义的扫描顺序解析列表中的下一图块,该图块由其宽度和长度指定(框66)。如果可选的子片段是分区结构的一部分并且未被预定义,则解码器可选地从比特流解析子图块的高度和/或宽度。这可以在方法13B中的各个点发生(例如,在确定有多于一个的图块之后)。
表2标识了用于本公开的一个或多个实施例中的示例语法。该语法可以在当前现有的HEVC视频编码规范之上实现。
表2-示例图块语法
Figure BDA0002944609260000211
表2中语法元素的语义
tiles_enabled_flag:该标志可以被设置为值1或0。当被设置为1时,该标志指定在参考PPS的每个图片中有多于一个图块。当被设置为0时,该标志指定在参考PPS的每个图片中仅有一个图块。
flexible_tiles_enabled_flag:该标志可以被设置为值1或0。当被设置为1时,该标志指定使用灵活图块将参考PPS的图片划分为图块。flexible_tiles_enabled_flag等于0指定不使用灵活图块将参考PPS的图片划分为图块。
sub-tile_width_minus1加1指定子图块单元以编码树单元为单位的宽度。sub-tile_width_minus1应在0到PicWidthInCtbsY-1的范围内,含两端值。
sub-tile_height_minus1加1指定子图块单元以编码树单元为单位的高度。sub-tile_height_minus1应在0到PicHeightInCtbsY-1的范围内,含两端值。
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 BDA0002944609260000221
在一个实施例中,解码器在解析PPS中的第一个tile_height_minus1语法元素之后,调用以下函数。
Figure BDA0002944609260000231
在一个实施例中,语法元素tile_width_minus1和tile_height_minus1受到限制,使得在CTU_tile_assignment[tile_coordinate_y+y][tile_coordinate_x+x]=tile_id之前必须满足以下所有条件:
1.the 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_flag=1的一比特指示使用灵活图块。然后,分别利用10比特以信号传送25个较小的图块TS,并且利用16比特(使用tile_width_minus1=11(7比特)和tile_height_minus1=19(9比特))以信号传送大图块TL。如果使用图块大小,则结果将是1+图块大小(5+5)+25×2+(3+5)=69比特。
在图36A至图36C所示的该实施例的变型中,定义多于一个子图块大小。图36A示出了具有5个片段或图块T1...T5的示例分区结构S。图36B示出了具有两种不同类型A和B的7个子片段或子图块SS1...SS7的示例分区结构S。图36C示出了具有5个片段或图块T1...T5和84个单元或CTU的示例分区结构S。每个子图块大小以CTU为单位指定。
对于每个图块,宽度和高度以那些先前定义的子图块单元之一来指定,并且关于所使用的子图块大小的信息与该特定图块的宽度和高度一起发送。在以下示例中,如图36A-36C所示,使用两个不同大小的子图块:名为子图块A的4×4CTU之一和名为子图块B的3×3CTU之一。然后:
以子图块单元A为单位,将图块T1的高度和宽度指定为1×1。
以子图块单元A为单位,将图块T2的高度和宽度指定为1×2。
以子图块单元B为单位,将图块T3的高度和宽度指定为1×1。
以子图块单元B为单位,将图块T4的高度和宽度指定为1×1。
以子图块单元B为单位,将图块T5的高度和宽度指定为1×2。
当可以以多于一个子图块单元指定图块时,编码器优选地选择该图块中给出较小单元计数的子图块单元,以指定该图块的宽度和高度。
第三实施例-使用子图块和用于图块大小复制的标志来指定图块高度和宽度
在优选实施例中,通过可选地使用子图块单元以信号传送图块的高度和宽度来传递图块分区结构。图块由整数个子图块组成,其中子图块由整数个编码单元(例如CTU)组成。在比特流中以信号传送编码单元或子图块的空间大小(例如以编码单元表示)。
例如,在比特流中以信号传送的CTU单元大小具有64×64个亮度样本。然后,以信号传送子图块单元大小,其宽度为4,高度为2。这意味着,由于使用CTU单元大小来以信号传送子图块单元大小,因此子图块的宽度为256个亮度样本,高度为128个亮度样本。那么,以信号传送一个图块具有宽度2和高度1,这意味着该图块的宽度为512个亮度样本,高度为128个亮度样本。当所有图块的宽度的最大公约数大于1个CTU宽度和/或当所有图块的高度的最大公约数大于1个CTU高度时,使用子图块单元是有益的。可以使用较小的值(这可以使用比特流中的较少比特来实现)以子图块来表示图块的高度和宽度。
此外,在该实施例中,使用一标志来指定当前图块大小是否与最接近的先前以信号传送的图块大小相等。如果该标志具有一个值,则从先前图块复制当前图块的图块大小。如果该标志具有另一值,则使用编码单元或子图块的高度和宽度来显式地以信号传送图块的高度和宽度。如下面更详细地描述的,解码器对该标志进行解码,并且基于其值来确定当前图块大小是否与最接近的先前以信号传送的图块大小相等。
在该实施例的一个变型中,首先对图片中的图块数量进行解码。然后,在已知数量的其大小被解码的图块上存在循环。可选地,由于最后一个图块的大小由图片的剩余面积给出,因此不以信号传送该最后一个图块的大小。
在该实施例的另一变型中,不以信号传送图片中的图块数量。代替地,解码器持续对图块大小进行解码,直到解码器确定所有必需的图块大小均已被解码为止。当所有必需的图块大小已被解码时,解码器停止对图块大小进行解码,并且继续对来自比特流的其他数据进行解码。确定所有必需的图块大小是否已被解码的一种方式是确定图片中的所有CTU是否都在图块大小已被解码的图块中。确定所有必需的图块大小是否已被解码的另一种方式是确定与经解码的图块大小相对应的图块是否共同覆盖了整个图片。
在该实施例的又一变型中,以信号传送可选码字来传递图块被复制到下一图块位置的次数。例如,第一图块大小等于128×128。那么,在比特流中可以有一个或多个码字,用于指定该图块大小是否:
1)未被复制到任何其他图块,这意味着使用宽度和高度显式地以信号传送下一图块大小;或者
2)被复制到下一图块;或者
3)被复制到接下来的n个图块,其中以信号传送要复制的次数。
如图16A所示,解码器被配置为使用以下一个或多个方面对视频比特流的图片的编码表示进行解码。
具体地,如方法70中所示,解码器接收编码元素,根据该编码元素导出用于对图片进行解码的特定空间大小(框72)。空间大小是单元和/或子图块之一。例如,解码器导出子图块宽度和子图块高度,以用于解码图块大小,其中子图块宽度和高度以两个整数数量的导出的单元大小传递。备选地,解码器被配置为使用特定的空间单元大小和或子图块大小对图片进行解码。解码器从视频比特流中显式地解码多于一个图块大小(框74)。在这些情况下,图块大小包括从比特流导出的宽度值(为整数数量的单元宽度或子图块宽度)以及从比特流导出的高度值(为整数数量的单元高度或子图块高度)。在一个实施例中,解码器从视频比特流中解码至少一个图块大小,其中图块大小包括从先前解码的图块大小复制的宽度值和高度值(框76)。在一个实施例中,解码器被配置为对至少一个当前图块的标志进行解码(框78)。在这些情况下,一个值可以指示当前图块的图块大小从先前解码的图块大小复制,而另一个值指示图块大小应从比特流中的信息显式地解码。在一个实施例中,解码器通过从比特流中解码指定图块大小的数量的数值来确定要解码的图块大小的数量(框80)。在一个实施例中,解码器通过确定是否存在额外的要解码的图块大小来确定要解码的图块大小的数量(框82)。具体地,在这些情况下,解码器可以确定图片中的所有CTU是否在图块大小已被解码的图块中。备选地,解码器可以确定与经解码的图块大小相对应的图块是否共同覆盖整个图片。无论解码器对图块大小进行解码的特定方式如何,根据该实施例配置的解码器使用经解码的图块大小对图片的编码表示进行解码。
如图16B中所示,根据该实施例,编码器被配置为使用以下一个或多个方面来对视频比特流的图片的表示进行编码。
具体地,如方法90中所示,在一个实施例中,编码器可以被配置为对用于对至少一个图片进行编码的特定空间大小进行编码(框92)。例如,空间大小是单元或子图块的空间大小。在一个或多个实施例中,编码器通过将一个经编码的整数子图块宽度值和/或一个经编码的整数子图块高度值插入到比特流中,来对用于对图块大小进行编码的特定子图块宽度和/或子图块高度进行编码。这些值以空间单元大小表示。在一个实施例中,编码器可以被配置为将多于一个图块大小显式地编码到比特流中(框94)。在这些情况下,编码器可以被配置为:通过将指示单元或子图块的宽度的一个经编码的整数图块宽度值和指示单元或子图块的高度的一个经编码的整数图块高度值插入比特流中,来对每个图块大小进行编码。在一个实施例中,编码器还可以被配置为:通过将图块大小设置为等于先前导出或解码的图块大小来导出至少一个图块大小(框96)。在一个实施例中,编码器还可以被配置成为针对至少一个当前图块插入标志值(框98)。在这些实施例中,可以使用一个值向解码器指定当前图块的图块大小应从先前解码的图块大小复制,或者编码器可以将图块大小显式地插入比特流中,使得解码器可以显式地导出图块大小。在一个实施例中,编码器还可以被配置为:通过将指定图块大小的数量的数值插入比特流中,来指示以信号传送的图块大小的数量。无论编码器对信息进行编码的特定方式如何,编码器被配置为使用图块大小来将至少一个图片编码到视频比特流中。
表3标识了在本公开的该实施例中使用的示例语法。该语法可以在当前现有的HEVC视频编码规范之上实现。
表3-示例语法
Figure BDA0002944609260000281
表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 BDA0002944609260000291
number_of_tiles_in_picture_minus2加2指定图片中的图块数量。number_of_tiles_in_picture_minus2应在0到PicSizeInCtbsY-2的范围内,含两端值。
subtile_width_minus1加1指定子图块单元以编码树单元为单位的宽度。subtile_width_minus1应在0到PicWidthInCtbsY-1的范围内,含两端值。
subtile_height_minus1加1指定子图块单元以编码树单元为单位的高度。subtile_height_minus1应在0到PicHeightInCtbsY-1的范围内,含两端值。
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 BDA0002944609260000292
Figure BDA0002944609260000301
比特流一致性要求在将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(无图块)”
在一个实施例中,以上条件1和2是可选的。
此外,针对i的每个值,执行tile_height_minus1[i]的语义中指定的变量tile_id和二维数组CTU_tile_assigment的值的导出。这意味着,即使在以下情况下,也在变量i的每次循环之后执行导出:
1.不存在use_previous tile_size_flag;
2.当use_previous tile_size_flag等于0时;以及
3.当use_previous tile_size_flag等于1时。
类似地,对于在任何循环中完成的任何指派,三个比特流一致性条件应为真。
在一个实施例中,每个循环需要到达break语句;对于i的每个值都如此。
在一个实施例中,要求在对CTU_tile_assigment的所有指派之后,针对0到PicWidthInCtbsY-1(含两端值)范围内的任何x和0到PicHeightInCtbsY-1(含两端值)范围内的任何y,CTU_tile_assignment[x][y]不应等于“no tile(无图块)”。
第四实施例-状态标志
在第四实施例中,本公开提供了一种用于确定给定单元(例如单元U或如子图块SS的子图块)是否开始新的图块的方法。例如,子图块和或单元的大小被定义,然后以预定义的顺序(例如光栅扫描顺序)扫描以进行编码或解码。
例如,在一个实施例中,子图块被定义为与单元(例如CTU)或单元的矩形集合具有相同的大小,然后以光栅扫描顺序进行扫描。在光栅扫描中,以稳定的速率从左到右水平进行扫描,然后进行消隐并快速地移动回左侧,重新启动并扫描下一行,使得垂直位置稳定地增加。当然,本领域的普通技术人员将理解,当在本实施例和其他实施例中将光栅扫描顺序描述为示例时,可以使用其他预定义的扫描顺序(例如从右至左水平扫描或垂直初始扫描)。
无论特定的扫描顺序如何,在一个或多个实施例中,对于每个子图块,存在按顺序的标志序列,每个标志指定给定子图块是否开始新的图块。在一个或多个实施例中,当位于给定子图块上方和左侧的另一子图块属于同一图块时,针对给定子图块不发送标志。在这些情况下,可以推断给定子图块和另一子图块二者位于同一图块中。参考子图块来描述本文的一个或多个实施例。然而,本领域普通技术人员将理解,这些教导适用于指定给定的子图块或单元是否开始新的图块(例如,在子图块是单元或针对给定图片未采用子图块的情况下)。类似地,本领域普通技术人员将理解,关于单元指定的一个或多个实施例适用于以预定义的顺序扫描子图块。
表4以图形示出了显示正在扫描的子图块的定位是否指示该子图块开始新的图块的状态标志的示例实施例、以及用于设置指示该单元是否开始新的图块的标志的值(如果有的话)。可以使用类似的状态标志系统来示出给定单元是否开始新的图块。
Figure BDA0002944609260000321
Figure BDA0002944609260000331
Figure BDA0002944609260000341
表4:一些可能的单元定位和相关联的信号传送
对于在错误!未找到参考源中示出的所有情况,除了最后一行中的不明确情况(即,正在扫描的子图块在图块B、图块C中、或开始新的图块)外,其他先前扫描的子图块(即,位于正在扫描的子图块左侧和顶部的子图块,如果它们存在的话)的一个标志和已知状态足以指定当前正在扫描的子图块的正确状态。为了消除在表4的最后一行中示出的情况下的不明确性,本公开引入了消歧比特。例如,在一个实施例中,将按定义的扫描顺序的所有消歧比特放置在消歧数组中。然后将该数组显式地以信号传送给解码器。
表5提供了用于该实施例的第一示例语法。表5中所示的语法可以在当前现有的HEVC视频编码规范之上实现。另外,仅出于说明目的,子图块的大小等于CTU的大小。当然,本领域普通技术人员将意识到,子图块可以是几个单元或CTU,或者语法可以应用于单元。
Figure BDA0002944609260000342
Figure BDA0002944609260000351
表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 BDA0002944609260000361
Figure BDA0002944609260000371
表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():该函数根据表4中提供的详情从相邻块复制图块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 BDA0002944609260000381
Figure BDA0002944609260000391
表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_flagl被设置为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.可以使用子图块。可以显式地以信号传送子图块的粒度。本文中使用另一个词语“粒度”来指定子图块的大小。例如,在x和y坐标系中或相对于单元大小指定子图块的大小。在一个或多个实施例中,显式地以信号传送粒度。备选地,它可以是预定义的。
3.图块的特定大小规格。例如,该实施例可以指定为当前图块使用最新的图块的大小,或者使用紧邻当前图块的左侧或上方的图块的大小。例如,通过以信号传送模式值来将指定的大小应用于当前图块或者应用于所有剩余的图块。
图18A是示出了根据该实施例的用于构造和以信号传送图块的方法110的流程图。方法110由编码器实现,并且以编码器确定图片是否仅具有一个图块开始(框112)。如果是,则在结束方法110之前,编码器将tile_enabled_flag设置为等于0(框114)。然而,如果编码器确定图片具有多个图块,则编码器创建空的图块列表(框116)。然后,在图块剩余时且遵循预定义的扫描顺序(框118),编码器设置copy_tile_size_mode(框120)。如果copy_tile_size_mode被设置为0(框122),则编码器将图块(包括图块高度和宽度)添加到图块列表(框124)。然后该过程结束。可选地,分区结构采用子图块,在一个或多个实施例中,例如在图18A的方法110中,显式地指示采用了子图块。如果使用子图块,则可以使用标志(例如,设置为1)来以信号传送子图块的使用,并且可以如本文所述的以信号传送粒度。否则,可以将标志设置为0,并且替代地,使用单元(例如CTU)的粒度。可以在设置tile_enabled_flag的信号传送之前或之后以信号传送子图块指示和粒度。
关于解码器,它解析并构造由编码器发送的图块。在该实施例中,解码器根据图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 BDA0002944609260000421
Figure BDA0002944609260000431
Figure BDA0002944609260000441
表8:示例图块语法
表8中语法元素的语义
tiles_enabled_flag:当该标志为1时,它指示参考PPS的每个图片中有多个图块。当该标志为0时,它指示参考PPS的每个图片仅具有单个图块。
flexible_tiles_enabled_flag:当该标志为1时,它指示定义了灵活图块。当该标志为0时,它指示在没有使用灵活图块语法的情况下定义图块。
sub_tiles_flag:当该标志被设置为1时,它指示使用了子图块。
tile_horizontal_granularity:该值指定以编码树单元为单位的图块水平粒度。
tile_vertical_granularity:该值指定以编码树单元为单位的图块垂直粒度。
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
在该实施例中,本公开提供了一种用于将图片划分为子图块、然后以预定义的扫描顺序扫描子图块的方法。在该过程中,为每个子图块指定图块标识符(图块id)。如上所述,预定义的顺序为光栅扫描顺序,并且子图块大小等于一个CTU单元的大小,或者子图块大小被指定为不同的大小(例如使用显式的码字)。当然,本领域普通技术人员将理解,图块标识符也可以备选地或附加地针对单元指定。
图19A和图19B是分别示出了由编码器和解码器实现的用于构造和以信号传送图块的方法的流程图。具体地,图19A提供了由编码器构造和以信号传送图块的方法170。如方法170中所示,在一些实施例中,编码器可以做出是使用子图块还是使用单元的初始确定(框171)。在一个实施例中,编码器通过检查子图块大小是否等于CTU大小来做出该确定,然后在比特流12中的标志中以信号传送结果。如果使用子图块,则可以确定子图块的粒度(框172)(例如在比特流12中以信号传送不等于CTU的子图块大小)。然后,对于图片中的每个子图块(框173),编码器在比特流中以信号传送子图块的图块ID(框175),并且将图块ID指派给子图块(框176)。
然而,如果不使用子图块(框171),则方法170检查以查看图片10中是否有更多的单元U(框175)。如果否,则方法170结束。然而,只要图片10中有单元剩余,方法170便将与单元相关联的图块的图块ID指派给子图块。
图19B中所示的方法180在解码器处实现。具体地,在一些实施例中,解码器可以做出是使用子图块还是使用单元的初始确定(框181)。例如,在一个实施例中,解码器基于包括在比特流12中用于指示子图块大小是否等于CTU大小的标志来做出确定。如果标志指示使用了子图块,则解码器确定子图块的粒度(框182)。例如,如果比特流12中的信息指示子图块大小不等于CTU大小,则解码器解析子图块大小以确定子图块粒度。然后,对于图片中的每个子图块(框183),编码器在比特流中以信号传送子图块的图块ID(框185),并且将图块ID指派给子图块(框186)。
然而,如果不使用子图块(框181),则方法180检查以查看图片10中是否有更多的单元U(框184)。如果否,则方法170结束。然而,只要图片10中有单元剩余,方法180便要求编码器将与单元相关联的图块的图块ID指派给子图块。
HEVC视频编码规范之上的实施例5的示例语法表和语义描述可以参见表9。
Figure BDA0002944609260000461
表9:示例图块语法
表9中语法元素的语义
tiles_enabled_flag:当该标志被设置为1时,它指示在参考PPS的每个图片中有多于一个图块。当该标志被设置为0时,它指示在参考PPS的每个图片中仅有一个图块。
sub_tile_size_equal_to_ctu_size_flag:当该标志被设置为1时,它指示子图块的高度和宽度均等于CTU的高度和宽度。sub_tile_size_equal_to_ctu_size_flag等于0指定子图块的高度和宽度不是均等于CTU的高度和宽度。
当sub_tile_size_equal_to_ctu_size_flag等于1时,num_sub_tiles_horizontal、num_sub_tiles_vertical、sub_tile_width_minus1和sub_tile_height_minus1的值指定如下:
num_sub_tiles_horizontal=PicWidthInCtbsY
num_sub_tiles_vertical=PicHeightInCtbsY
sub_tile_width_minus1=0
sub_tile_height_minus1=0
sub_tile_width_minus1加1:该值指定以编码树单元为单位的子图块宽度。变量num_sub_tiles_horizontal被设置为PicWidthInCtbsY/(sub_tile_width_minus1+1)。
sub_tile_height_minus1加1:该值指定以编码树单元为单位的子图块高度。变量num_sub_tiles_vertical被设置为PicHeightInCtbsY/(sub_tile_height_minus1+1)。
tile_id[y][x]指定坐标为y和x的子图块的图块ID。CTU_tile_assignment的值:例如,CTU_tile_assignment的值指定如下:
for(yy=0;yy<sub_tile_height_minus1+1;yy++)
for(xx=0;xx<sub_tile_width_minus1+1;xx++)
CTU_tile_assignment[y*(sub_tile_height_minus1+1)+yy][x*(sub_tile_width_minus1+1)+xx]=tile_id[y][x]
在实施例的备选版本中,sub_tile_size_equal_to_ctu_size_flag不存在于语法中,并且sub_tile_width_minus1和sub_tile_height_minus1始终被设置。在实施例的又一备选版本中,sub_tile_size_equal_to_ctu_size_flag、sub_tile_width_minus1和sub_tile_height_minus1都不存在于语法中,并且子图块的高度和宽度被设置为CTU的高度和宽度,即,sub_tile_width_minus1被设置为0,sub_tile_height_minus1被设置为0,num_sub_tiles_horizontal被设置为PicWidthInCtbsY,并且num_sub_tiles_vertical被设置为PicHeightInCtbsY。
第七实施例-使用具有针对唯一子图块的码值的子图块的图块ID
该实施例的各方面可以应用于本文所述的其他实施例(例如第五实施例),以指示唯一或独立的子片段。
首先,设置标志来确定是启用了灵活图块,还是部署了传统图块结构,例如当前的HEVC图块结构。
其次,该实施例定义了一种用于使用固定码值(例如等于0的码值)对独立图块进行编码的方法。如果图块具有与子图块(例如单元或CTU,或者多个单元或CTU)相同的大小,则图块被定义为是独立的。在给定图片包括多个独立图块的情况下,该特征有益地节省了比特。
第三,该实施例定义了一种允许利用固定长度编码对图块id进行可选编码的方法。在这些情况下,使用标志来以信号传送是使用了图块ID值的固定长度编码,还是使用了图块ID值的可变长度编码。
本领域普通技术人员将理解,本公开不限于这些特征和实施例。相反,可以改变这些特征以及在各个实施例中组合它们的方式。此外,并非所有特征都需要实现。例如,即使没有利用固定长度编码对图块id进行编码的能力,也可以使用标志来指示将灵活图块和对独立图块进行编码的方法一起使用。
表10提供了用于该实施例的示例语法。表10中所示的语法可以在当前现有的HEVC视频编码规范之上实现。
Figure BDA0002944609260000481
Figure BDA0002944609260000491
表10:示例图块语法
表10中语法元素的语义
tiles_enabled_flag:当该标志被设置为1时,它指示参考PPS的每个图片中有多于一个图块。当该标志被设置为0时,它指示参考PPS的每个图片中仅有一个图块。
flexible_tiles_enabled_flag:当该标志被设置为1时,它指示定义了灵活图块。当该标志被设置为0时,它指示在没有使用灵活图块语法的情况下定义图块。
sub-tile_width:该值指定以编码树单元为单位的子图块宽度。
sub-tile_height:该值指定以编码树单元为单位的子图块高度。
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。
第八实施例7-使用四叉树分割标志和灵活分割标志分为图块
在本公开的第八实施例中,使用四叉树和/或灵活图块分割将图片分为图块。使用四叉树进行分割的该过程与用于分割CU的HEVC过程类似。
为了简化说明本实施例,子图块被设置为CTU大小。然而,本领域普通技术人员应容易理解,对于本公开的其他实施例,一个或多个实施例中的子图块大小是预定义的,或者是在比特流中显式地以信号传送的(例如以信号传送CTU的矩形集合)。
另外,并非所有图块的宽度和高度都是以CTU计的2的因子。在一个实施例中,如果高度和宽度不是2的因子,则四叉树的分割使用整数除法(integer division)。例如,如图20所示,如果给定图块TA的大小为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),将该图块(包括图块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),将该图块(包括图块ID、图块位置和图块尺寸)添加到已完成图块列表中,(框244),并且返回以检查是否可获得任何未完成图块。如果该图块可以被进一步分割,则解码器解析指示是否应根据四叉树分割(或者“居中”水平或垂直分割(如果高度或宽度等于CTU的高度或宽度))来分割图块的标志(框246)。如果该标志确实指示了这种分割,则解码器从未完成图块列表中移除当前图块(框248),并且在返回确定是否可获得任何其他未完成图块(框236)之前,将经分割的图块添加到未完成图块列表中(框250)。
如图21D所示,解码器解析由编码器以信号传送的标志,以确定图块是否应被进一步分割(框252)。如果图块将不被进一步分割,则解码器返回确定是否可获得任何其他未完成图块(框236)。然而,如果图块应被进一步分割,则解码器解析指示应垂直还是水平分割图块的标志(框254)。然而,请注意,当图块宽度等于CTU宽度或图块高度等于CTU高度时,无需解析该标志来确定垂直/水平分割。
然后,解码器解析码字以确定分割图块的特定CTU位置(框256),并且在返回确定是否可获得任何其他未完成图块(框236)之前,在该位置分割图块(框258)。
表11提供了用于该实施例的示例语法。表11中所示的语法可以在当前现有的HEVC视频编码规范之上实现。
Figure BDA0002944609260000531
Figure BDA0002944609260000541
表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:指定以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 in horizontal_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以在该位置处进行分割。
第九实施例8-分割线
在该实施例中,通过指定图块之间的边界来描述图块结构。在本公开内,图块之间的边界也被称为“分割线”。
在该实施例的一方面,分割线是由它们的起点和终点描述的直线。由于起点和终点可以互换,而不会影响分割线,因此以下将二者都称为端点。
由于分割线或者是水平的、或者是垂直的,因此三个坐标和一个方向标志足以用以唯一地描述每条线。此外,该实施例使用一个标志来以信号传送水平分割线组,并且使用一个标志来以信号传送垂直分割线组。这进一步减少了总比特计数。
例如,可以使用9条水平和垂直分割线来表示图14所示的示例图块结构S,如图22A至图22C所示。具体地,图22A示出了示例性图块化结构,在该实施例中,该图块结构具有六(6)条水平线h1-h6和三(3)条垂直线v1-v3。图22B示出了六(6)条水平线分量,以及图22C示出了三(3)条垂直线分量。这等同于用于端点的坐标的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 BDA0002944609260000581
指定corner_list中的四个单独的角,而T形连接点
Figure BDA0002944609260000582
Figure BDA0002944609260000583
Figure BDA0002944609260000584
Figure BDA0002944609260000585
指定两个单独的角点。
一旦创建并填充了corner_list后,解码器处理该列表。具体地,只要corner_list不为空(框292),解码器就以预定义的扫描顺序获得一个或多个角。具体地,解码器以扫描顺序取第一个角,并定位corner_list中形成图块的三个对应角(框294)。然后,解码器将图块添加到complete_tile_list(框296),并从corner_list中移除四个已使用的角(框298)。该过程一直持续到corner_list为空为止。
表12提供了用于该实施例的示例语法。表12中所示的语法可以在当前现有的HEVC视频编码规范之上实现。分割线的水平/垂直列表中的每个端点(不位于图片边界上)应位于垂直/水平列表中的一条分割线的长度上(即,不是另一起点或终点)。这将有助于确保适合的图块划分。
Figure BDA0002944609260000586
表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]:该值列出所有水平分割线。分割线由其端点的坐标指定。因为该列表中的每条分割线都是水平的,因此三个坐标足以唯一地描述每条分割线-即,单个v值和两个x值。
vertical_divider_lines[i]:该值列出所有垂直分割线。分割线由其端点的坐标指定。因为该列表中的每条分割线都是垂直的,因此三个坐标足以用以唯一地描述每条分割线-即,两个y值和一个x值。
corner_list:这是由其位置和方向
Figure BDA0002944609260000591
描述的所有角点的列表。该列表考虑了所有图片边界以及所有水平和垂直分割线(包括其交叉点)。
在该实施例的一个变型中,使用子图块,并且以子图块坐标给出分割线的端点的坐标。子图块大小是预定义的。备选地,子区块大小被显式地以信号传送。使用子图块坐标节省了比特,因为它创建了较粗的网格,在该网格中,使用较小的码字表示端点的坐标。
在该实施例的又一变型中,假设完整的网格。然后指定应移除的分割线的起点和终点。为了描述图15中所示的图块化结构,该实施例描述了应移除的6条分割线,因此,需要3×6个码字加上用于水平和垂直分割线组的两个码字来描述分区结构。
在又一方面,除了起点和终点之外,分割线还具有弯曲点。弯曲点表示“接点(joint)”。根据本公开,接点在线的描述中用作前一点的终点,并且用作下一点的起点。
多个分割线集合可以导致相同的图块化结构。编码器针对最小数量的分割线进行了优化。一方面,分割线具有共同的部分。在另一方面,分割线没有共同的部分。
在又一方面,分割线被指定一次,然后被复制到网格中的给定位置。
第十实施例-T形连接点
本公开的该实施例使用点的集合来描述图块结构,该点的集合在该结构中并且具有特定属性。这些点在本文中被称为“T形连接点”。
如前所述,该图块结构包括内部线集合,也被称为“分割线”。每条分割线是具有两个端点的直线,该分割线在所述端点处终止(即,分割线不再继续)。在分割线的这些端点的位置处定义了所谓的“T形连接点”。因为每条分割线在该分割线与另一条垂直分割线的连接点处终止(由于矩形的图块化结构,所以不是另一条分割线的端点),或者在图片中与第一分割线垂直的边界的连接点处终止,因此每个T形连接点具有以下四个可能形状之一:
Figure BDA0002944609260000601
Figure BDA0002944609260000602
因此,可以使用连接点的位置和四个形状
Figure BDA0002944609260000603
Figure BDA0002944609260000604
之一来充分地描述每个T形连接点。由每个T形连接点指向的三个方向在本文中被称为该T形连接点的“臂”。
那么,可以通过在图片中延伸所有T形连接点的所有三个臂,直到每个臂或者到达图片的边界,或者到达另一T形连接点位置为止,来根据T形连接点的集合确定图片10的图块化结构S。
在该实施例的一个方面,通过移除冗余的T形连接点来缩减T形连接点的集合。如本文所述,冗余的T形连接点是位于图片边界上并且在移除它们的情况下也不改变图块化结构的那些T形连接点。在图24A至图24C中示出了具有冗余的T形连接点的图块化结构S的示例。具体地,图24A示出了示例性图块化结构S。图24B示出了所有T形连接点的集合,并且图24B示出了在移除冗余的T形连接点之后的T形连接点的集合。冗余度是一一进行检查的。这意味着,如果T形连接点是冗余的并因此将其从集合中移除,则不应将其包含在集合中的剩余T形连接点的冗余度检查中。
图25A至图25B示出了示例图块化结构S(图25A)以及描述该特定图块化结构的对应的T形连接点的集合(图25B)。
图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 BDA0002944609260000611
Figure BDA0002944609260000621
表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形连接点或图片边界为止。
·如果将每个臂的两侧的单元指派给同一图块,则通过添加新创建的图块来更新已完成图块列表。
}
在该实施例的变型中,使用子图块,并且以子图块坐标给出T形连接点的坐标。子图块大小是预定义的。备选地,子区块大小被显式地以信号传送。使用子图块坐标节省了比特,因为它创建了较粗的网格,在该网格中,使用较小的码字表示T形连接点的坐标。
第十一实施例-稀疏矩阵
该实施例基于以下观察:图块的数量通常远低于图片中块的数量。该实施例利用这种稀疏性来对图块化结构进行编码。
更详细地,可以利用每个图块的两个相对角的位置唯一地指定该图块。为简单起见,将左上角视为图块的起始位置,而将右下角视为图块的终止位置。在矩阵中标记图块的对应起点坐标和终点坐标,该矩阵中列和行的数量等于图片宽度和高度除以图片单元(例如子图块、单元或CTU)的宽度和高度。
与网格上起始角坐标相对应的矩阵被视为稀疏矩阵,并且例如使用诸如压缩稀疏列(CSC)或压缩稀疏行(CSR)之类的稀疏矩阵压缩方法进行压缩。终止角矩阵也是如此。对稀疏矩阵进行压缩的另一种可能方式是,以与HEVC中在对变换系数进行压缩时针对系数显著性或系数符号的矩阵所采用的相同或相似的方式来压缩矩阵。图27A至图27C示出了图块化结构如何与起始角矩阵和终止角矩阵相关。具体地,图27A示出了被划分成示例性图块化结构S的图片10。图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 BDA0002944609260000651
表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的函数。假设光栅扫描方向是从左到右和从上到下,则函数描述如下:
update_complete_tile_list(){
按照光栅扫描方向,在start_corners_matrix中找到第一个1值在end_corners_matrix中找到对应的1值。
使用起始角和终止角的坐标将图块添加到complete_tile_list。
将对应起始角设置为start_corners_matrix中的零。
}
可以使用硬件和/或软件的合适组合来实现根据本文描述的一个或多个实施例的编码器400和解码器450。因此,编码器包括一个或多个处理器和例如一个或多个存储器,并且被配置为执行根据本文实施例的方法。图30是示出了编码器400的组件的示意图。处理器500可以是能够执行包含在一个或多个存储器515中存储的计算机程序520中的软件指令的合适的中央处理单元(CPU)、多处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)等中的一个或多个的任意组合。一个或多个存储器515例如是数据缓冲器、读写存储器(RWM)、只读存储器(ROM)、随机存取存储器(RAM)、高速缓存存储器、闪存设备、光学存储设备等。编码器可以包括具有输入和/或输出电路530的接口540,该输入和/或输出电路530被配置为例如经由发射机或收发机550来发送比特流。
如图31所示,编码器400可以具有被配置为执行本文描述的方法的单元、模块或电路。例如,编码器400包括定义分区单元600,其定义如本文所述的将图片分为图片片段的分区结构。编码器400还包括:编码单元610,其根据分区结构对图片片段进行编码以生成多个编码片段;以及生成单元620,其生成包括多个编码片段和指示用于将图片分为多个图片片段的分区结构的信息在内的比特流。
此外,解码器450包括一个或多个处理器和例如一个或多个存储器,并且被配置为执行根据本文的实施例的方法。图32是示出了解码器450的组件的示意图。处理器510可以是能够执行包含在一个或多个存储器540中存储的计算机程序550中的软件指令的合适的中央处理单元(CPU)、多处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)等中的一个或多个的任意组合。一个或多个存储器540例如是数据缓冲器、读写(RWM)存储器或只读(ROM)存储器。解码器450包括具有输入和/或输出电路535的接口545,该输入和/或输出电路535被配置为例如经由接收机或收发机560接收比特流。
如图33所示,解码器450可以具有被配置为执行本文描述的方法的单元、模块或电路。例如,解码器450包括被配置为接收比特流的接收单元630。解码器450还包括导出单元640,其被配置为从比特流中的信息导出分区结构、分区结构的子片段的大小和分区结构的单元的大小中的一个或多个;以及解码单元650,其被配置为根据分区结构对在比特流中接收的编码片段进行解码。
参考由编码器定义或由解码器导出的单个分区结构来描述本文的实施例,例如图34A中所示的编码器400和图34B中所示的解码器450。图34A示出了发送具有指示单个分区结构730的信息的比特流700的示例编码器400。比特流700包括:指示单元710的大小的信息、指示子片段720的大小的信息、以及与片段740和另一片段750有关的信息。
图34B示出了接收具有指示单个分区结构730的信息的比特流700的对应示例解码器。比特流700包括:指示单元710的大小的信息、指示子片段720的大小的信息、以及与片段740和另一片段750有关的信息。
当然,本领域普通技术人员将理解,编码器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示出了本文描述的编码器400或解码器450将有用的示例系统或方法800。系统包括媒体源810(例如,捕获、渲染器或文件)。媒体源被馈送到投影映射820,然后被馈送到图块编码器或转码器,例如如本文所述用于划分媒体源的图像的编码器400。经编码的信息被存储在存储器830中,然后被馈送到服务器840。它可以通过网络850发送到观看设备860。例如,图像是视频之一,并且观看设备860具有如本文所述的解码器450,用于对经划分的图像进行解码,渲染870图像,并在显示器880上向观看设备860的用户显示图像。这样的观看设备可以是例如头戴式显示器(HMD)设备或任何显示设备。
一个或多个实施例适用于其中观看设备860接收与设备的特定注视方向相关的一个或多个图像的应用。在一个实施例中,设备已经从服务器840接收到信息,该信息解释了哪些图块流是可用的,以及关于每个图块流的信息,诸如空间覆盖和比特率。捕获观看设备860的注视方向,并且观看设备860向服务器840请求图块流的子集。观看设备860接收图块流,根据图块流构成单个比特流,并将该比特流馈送给解码器880。观看设备860具有关于图块流的必要信息,并且知道它如何构成单个比特流。因此,观看设备860能够将经解码的图片转换成适于渲染的图片。
在另一实施例中,捕获观看设备860的注视方向并将该注视方向发送给服务器840。服务器840根据所存储的图块流构成单个比特流,并将该比特流发送给解码器450。与比特流一起发送如何将经解码的图片转换为适于渲染的图片的必要信息。观看设备860使用解码器450对图片进行解码,将其转换并渲染。可选地,观看设备860或客户端连续发送针对流应具有的比特率的请求。
应注意,本公开中的实施例包括具有矩形形状的片段或图块,其中每个片段或图块具有四个侧边或边缘。另外,每一侧边或边缘都与其他片段或图块或图片边界邻接。也就是说,可以将图片扩展为等于整数个单元的大小。在本公开中,“图块”是片段的类型,并且术语“侧边”和“边缘”可以互换使用。
还应注意,关于解码器描述了一些实施例,但是本领域普通技术人员将理解对应的编码器。类似地,关于编码器描述了一些实施例,但是本领域普通技术人员将理解对应的解码器。
参考附图更全面地描述本文中设想的一些实施例。然而,其他实施例包含在本文公开的主题的范围内。所公开的主题不应被解释为仅限于本文阐述的实施例;而是,这些实施方式仅作为示例被提供,以将主题的范围传达给本领域技术人员。

Claims (57)

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

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862688301P 2018-06-21 2018-06-21
US62/688,301 2018-06-21
PCT/EP2019/066400 WO2019243539A1 (en) 2018-06-21 2019-06-20 Tile partitions with sub-tiles in video coding

Publications (2)

Publication Number Publication Date
CN112640455A true CN112640455A (zh) 2021-04-09
CN112640455B CN112640455B (zh) 2024-06-14

Family

ID=67003504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980054347.5A Active CN112640455B (zh) 2018-06-21 2019-06-20 视频编码中具有子图块的图块分区

Country Status (6)

Country Link
US (2) US11553180B2 (zh)
EP (1) EP3811612A1 (zh)
JP (1) JP7313385B2 (zh)
CN (1) CN112640455B (zh)
MX (1) MX2020013864A (zh)
WO (1) WO2019243539A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020140063A1 (en) * 2018-12-27 2020-07-02 Futurewei Technologies, Inc. Flexible tile signaling in video coding
WO2020185145A1 (en) * 2019-03-08 2020-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Methods providing encoding/decoding of dependent/independent partitions and related devices
US11412264B2 (en) * 2019-09-24 2022-08-09 Qualcomm Incorporated Parameter set signaling for video coding
EP4380153A1 (en) * 2022-11-29 2024-06-05 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding video picture data using picture tiles

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120189049A1 (en) * 2011-01-26 2012-07-26 Qualcomm Incorporated Sub-slices in video coding
CN104221388A (zh) * 2012-04-16 2014-12-17 瑞典爱立信有限公司 指示压缩视频序列的并行处理可能性的固定分片结构标志
CN105432082A (zh) * 2013-04-08 2016-03-23 微软技术许可有限责任公司 用于兴趣区编码的运动约束图块集合
WO2017212930A1 (ja) * 2016-06-08 2017-12-14 ソニー株式会社 画像処理装置および方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090279601A1 (en) 2008-05-08 2009-11-12 Telefonaktiebolaget Lm Ericsson (Publ) Method and Apparatus of Displaying Video
US20090320081A1 (en) 2008-06-24 2009-12-24 Chui Charles K Providing and Displaying Video at Multiple Resolution and Quality Levels
US9300976B2 (en) 2011-01-14 2016-03-29 Cisco Technology, Inc. Video encoder/decoder, method and computer program product that process tiles of video data
CN102685474B (zh) * 2011-03-10 2014-11-05 华为技术有限公司 预测模式的编解码方法、编解码设备及网络系统
US10298939B2 (en) 2011-06-22 2019-05-21 Qualcomm Incorporated Quantization in video coding
US9398307B2 (en) 2011-07-11 2016-07-19 Sharp Kabushiki Kaisha Video decoder for tiles
CN103650501B (zh) 2011-08-25 2017-10-27 太阳专利托管公司 使用瓦片编码方案对视频进行编码、提取和解码的方法和装置
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
EP3328081B1 (en) 2011-11-11 2019-10-16 GE Video Compression, LLC Effective prediction using partition coding
FI4002842T3 (fi) 2012-06-26 2023-11-02 Lg Electronics Inc Videodekoodausmenetelmä, videokoodausmenetelmä ja tallennusväline, joka tallentaa koodatun videoinformaation
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
US9161039B2 (en) 2012-09-24 2015-10-13 Qualcomm Incorporated Bitstream properties in video coding
EP3072294A2 (en) 2013-11-20 2016-09-28 Koninklijke Philips N.V. Generation of images for an autosteroscopic multi-view display
CN105744272B (zh) 2014-12-09 2019-07-19 深圳力维智联技术有限公司 基于非对称Tile划分的图像编解码方法及其装置
US10070130B2 (en) 2015-01-30 2018-09-04 Qualcomm Incorporated Flexible partitioning of prediction units
US20180139453A1 (en) * 2015-03-13 2018-05-17 Lg Electronics Inc. Method of processing video signal and device for same
WO2016180486A1 (en) 2015-05-12 2016-11-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Composite scalable video streaming
US10148961B2 (en) * 2015-05-29 2018-12-04 Qualcomm Incorporated Arithmetic coder with multiple window sizes
US10404992B2 (en) 2015-07-27 2019-09-03 Qualcomm Incorporated Methods and systems of restricting bi-prediction in video coding
TWI762260B (zh) 2016-02-09 2022-04-21 弗勞恩霍夫爾協會 用於圖像/視訊資料串流而允許有效可縮減性或有效隨機存取之技術
US10419768B2 (en) 2016-03-30 2019-09-17 Qualcomm Incorporated Tile grouping in HEVC and L-HEVC file formats
US10547854B2 (en) * 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
WO2018018486A1 (en) 2016-07-28 2018-02-01 Mediatek Inc. Methods of reference quantization parameter derivation for signaling of quantization parameter in quad-tree plus binary tree structure
CN117041600A (zh) 2016-10-04 2023-11-10 有限公司B1影像技术研究所 图像编码/解码方法和计算机可读记录介质
GB2557430B (en) 2016-10-12 2020-01-15 Mediatek Inc Methods and apparatuses of constrained multi-type-tree block partition for video coding
US11172208B2 (en) 2017-02-28 2021-11-09 Nokia Technologies Oy Method and apparatus for improving the visual quality of viewport-based omnidirectional video streaming
KR20220127948A (ko) 2017-03-22 2022-09-20 한양대학교 산학협력단 적응적인 화소 분류 기준에 따른 인루프 필터링 방법
US10560723B2 (en) * 2017-05-08 2020-02-11 Qualcomm Incorporated Context modeling for transform coefficient coding
US10893256B2 (en) 2017-06-26 2021-01-12 Nokia Technologies Oy Apparatus, a method and a computer program for omnidirectional video
WO2019073112A1 (en) 2017-10-09 2019-04-18 Nokia Technologies Oy APPARATUS, METHOD, AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING
EP3721636A1 (en) 2017-12-07 2020-10-14 Koninklijke KPN N.V. Method for adaptive streaming of media
CN109996069B (zh) 2018-01-03 2021-12-10 华为技术有限公司 视频图像编解码方法及设备
EP3741108A4 (en) 2018-01-17 2021-10-13 Nokia Technologies Oy APPARATUS, PROCESS AND COMPUTER PROGRAM FOR OMNIDIRECTIONAL VIDEO
CN111819842B (zh) 2018-04-05 2022-11-04 Lg电子株式会社 发送360度视频的方法和装置、接收360度视频的方法和装置
CN118018765A (zh) 2018-09-05 2024-05-10 华为技术有限公司 视频解码方法及视频解码器
EP4307675A3 (en) * 2019-03-23 2024-04-17 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for intra prediction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120189049A1 (en) * 2011-01-26 2012-07-26 Qualcomm Incorporated Sub-slices in video coding
CN104221388A (zh) * 2012-04-16 2014-12-17 瑞典爱立信有限公司 指示压缩视频序列的并行处理可能性的固定分片结构标志
CN105432082A (zh) * 2013-04-08 2016-03-23 微软技术许可有限责任公司 用于兴趣区编码的运动约束图块集合
WO2017212930A1 (ja) * 2016-06-08 2017-12-14 ソニー株式会社 画像処理装置および方法

Also Published As

Publication number Publication date
MX2020013864A (es) 2021-03-25
US20230097014A1 (en) 2023-03-30
JP7313385B2 (ja) 2023-07-24
WO2019243539A1 (en) 2019-12-26
EP3811612A1 (en) 2021-04-28
JP2021528003A (ja) 2021-10-14
US20210274174A1 (en) 2021-09-02
US11553180B2 (en) 2023-01-10
CN112640455B (zh) 2024-06-14

Similar Documents

Publication Publication Date Title
CN112640455B (zh) 视频编码中具有子图块的图块分区
US11477470B2 (en) Encoding and decoding pictures based on tile group ID
ES2674553T3 (es) Inicialización de la paleta predictora en codificación de vídeo basada en paletas
ES2746102T3 (es) Codificación de valores de racha en base al índice de paleta en la codificación de vídeo basada en paletas
US20180152716A1 (en) Transmitting Apparatus and Method Thereof for Video Processing
KR101650635B1 (ko) 최종 유의 변환 계수의 코딩
CN113892128A (zh) 点云编解码方法和装置
WO2017039883A1 (en) Acceleration interface for video decoding
US11683513B2 (en) Partitioning of coded point cloud data
JP2023024970A (ja) ビデオエンコーディングおよびデコーディングにおける改善されたタイルアドレスシグナリング
US20240171755A1 (en) Picture Tile Attributes Signaled Per-Tile
CN112585970B (zh) 灵活图块分区
RU2760850C1 (ru) Гибкие разбиения тайлов
US12034926B2 (en) Flexible tile partitions
CN114930851A (zh) 基于变换的图像编码方法及其装置
CN116600140A (zh) 图像编码和解码设备及发送图像数据的设备
CN114051731A (zh) 图像编码设备、图像解码设备、图像编码方法和图像解码方法
RU2784414C1 (ru) Сигнализация размера выходного изображения для передискретизации опорного изображения
CN114762341A (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
GR01 Patent grant
GR01 Patent grant