CN114731415A - 针对多类型树块结构的合并估计区域 - Google Patents

针对多类型树块结构的合并估计区域 Download PDF

Info

Publication number
CN114731415A
CN114731415A CN202080074747.5A CN202080074747A CN114731415A CN 114731415 A CN114731415 A CN 114731415A CN 202080074747 A CN202080074747 A CN 202080074747A CN 114731415 A CN114731415 A CN 114731415A
Authority
CN
China
Prior art keywords
mer
block
codec
height
width
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
CN202080074747.5A
Other languages
English (en)
Inventor
H.黄
W-J.钱
M.卡尔切维茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN114731415A publication Critical patent/CN114731415A/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/917Television signal processing therefor for bandwidth reduction

Landscapes

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

Abstract

视频编码器可以使用合并估计区域(MER)对视频数据的图片进行编码。视频编码器可以对MER内的编解码单元并行地确定合并候选列表。视频编码器还可以根据约束将视频数据的图片划分成编解码单元,其中该约束指定该划分被约束以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中。

Description

针对多类型树块结构的合并估计区域
相关申请的交叉引用
本申请要求于2020年10月29日提交的美国申请No.17/084,119、于2019年11月1日提交的美国临时申请No.62/929,680、于2019年11月8日提交的美国临时申请No.62/932,950的权益,以上三者中的每一个的全部内容通过引用合并于此。
技术领域
本公开涉及视频编码和视频解码。
背景技术
数字视频功能可以被集成到各种各样的设备中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电话、所谓的“智能电话”、视频电话会议设备、视频流设备等等。数字视频设备实现视频编解码技术,例如那些在由下述定义的标准中描述的技术:MPEG-2、MPEG-4、ITU-T H.263、ITU-TH.264/MPEG-4第10部分、高级视频编解码(AVC)、ITU-T H.265/高效视频编解码(HEVC)、以及上述各标准的扩展。通过实现这些视频编解码技术,上述视频设备可以更有效地对数字视频信息进行发送、接收、编码、解码和/或存储。
视频编解码技术包括空间(图片内)预测和/或时间(图片间)预测,以减少或去除视频序列中固有的冗余。对于基于块的视频编解码,可以将视频条带(slice)(例如,视频图片或视频图片的一部分)划分为视频块,这些视频块也可以被称为编解码树单元(CTU)、编解码单元(CU)和/或编解码节点。对于图片的帧内编解码的(I)条带中的视频块,使用相对于同一图片中相邻块中的参考样点的空间预测进行编码。图片的帧间编解码的(P或B)条带中的视频块,可以使用相对于同一图片中相邻块中参考样点的空间预测或者相对于其他参考图片中的参考样点的时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。
发明内容
总体而言,本公开描述了用于视频编码和解码的技术,包括用于定义和/或信令通知视频数据的图片中的合并估计区域(merge estimation region,MER)的技术。视频编码器和/或视频解码器可以被配置为对MER内的多个块(例如,编解码单元)并行地进行合并模式运动矢量预测过程(例如,运动矢量预测器列表构建,诸如合并候选列表构建)。
在一些示例视频编解码器(即,视频编码器和/或视频解码器)中,可以根据多种不同的划分结构来对视频数据的图片进行划分。例如,视频编解码器可以使用二叉树分割和三叉树分割来对视频数据的图片进行划分。通常情况下,视频编码器使用二叉树分割将块划分为两个块,而使用三叉树分割将块划分为三个块。根据本公开的技术,当使用MER对图片进行编解码时,视频编解码器可以被配置为根据约束对图片进行划分,该约束包括对二叉树分割和三叉树分割两者的约束。
在一个示例中,该约束确保对于每个包含一个或多个编解码单元的MER,这些编解码单元全部都在该MER中。另外,该约束确保对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中。以这种方式,视频编码器可以对图片进行划分,以使得视频编码器和视频解码器两者都可以在全部的MER中执行并行合并候选列表构建。因此,可以更快地执行帧间预测处理。
在一个示例中,本公开描述了一种编码视频数据的方法,该方法包括:确定针对视频数据的图片的一个或多个MER;根据约束将视频数据的图片划分为编解码单元,其中该约束指定该划分被约束以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中;以及根据MER对编解码单元进行编码。
在另一示例中,本公开描述了一种被配置为编码视频数据的装置,该装置包括:被配置为存储视频数据的图片的存储器;以及与该存储器通信的一个或多个处理器。这一个或多个处理器被配置为:确定针对视频数据的图片的一个或多个MER;根据约束将视频数据的图片划分为编解码单元,其中该约束指定该划分被约束以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中;以及根据MER对编解码单元进行编码。
在另一示例中,本公开描述了一种被配置为编码视频数据的装置,该装置包括:用于确定针对视频数据的图片的一个或多个MER的部件;用于根据约束将视频数据的图片划分为编解码单元的部件,其中该约束指定该划分被约束以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中;以及用于根据MER对编解码单元进行编码的部件。
在另一示例中,本公开描述了一种存储指令的非暂时性计算机可读存储介质,指令被执行时,使得被配置为编码视频数据的一个或多个处理器:确定针对视频数据的图片的一个或多个MER;根据约束将视频数据的图片划分为编解码单元,其中该约束指定该划分被约束以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中;以及根据MER对编解码单元进行编码。
在以下附图和描述中阐明了一个或多个示例的细节。根据说明书、附图和权利要求书,其他特征、目的和优势将是显而易见的。
附图说明
图1是示出可以执行本公开的技术的一种示例视频编码和解码系统的框图。
图2A和图2B是示出一种示例四叉树二叉树(QTBT)结构以及对应的编解码树单元(CTU)的示意图。
图3是示出可以执行本公开的技术的一种示例视频编码器的框图。
图4是示出可以执行本公开的技术的一种示例视频解码器的框图。
图5是示出示例合并估计区域的示意图。
图6是示出关于32×32的MER的示例编解码单元划分的示意图。
图7是示出一种示例的划分的编解码顺序的示意图。
图8是示出三叉树划分和二叉树划分不期望的合并估计区域的示例的示意图。
图9是示出三叉树划分和二叉树划分允许的合并估计区域的示例的示意图。
图10是示出本公开的一种示例编码方法的流程图。
图11是示出本公开的一种示例解码方法的流程图。
图12是示出本公开的另一种示例编码方法的流程图。
具体实施方式
总体而言,本公开描述了用于视频编码和解码的技术,包括用于定义和/或信令通知视频数据的图片中的合并估计区域(MER)的技术。视频编码器和/或视频解码器可以被配置为对MER内的多个块(例如,编解码单元)并行地进行合并模式运动矢量预测过程(例如,运动矢量预测器列表构建,诸如合并候选列表构建)。
在一些示例视频编解码器中,可以根据多种不同的划分结构来对视频数据的图片进行划分。例如,视频编码器可以使用二叉树分割和三叉树分割两者来对视频数据的图片进行划分。通常情况下,视频编码器使用二叉树分割将块划分为两个块,而使用三叉树分割将块划分为三个块。根据本公开的技术,当使用MER对图片进行编码时,视频编码器可以被配置为根据约束对图片进行划分,该约束包括对二叉树分割和三叉树分割两者的约束。
在一个示例中,该约束确保对于每个包含一个或多个编解码单元的MER,这些编解码单元全部都在该MER中。另外,该约束确保对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中。以这种方式,视频编码器可以对图片进行划分,以使得视频编码器和视频解码器两者都可以在全部的MER中执行并行合并候选列表构建。因此,可以更快地执行帧间预测处理。
在本公开的一个具体示例中,MER的尺寸可以是M×N个样点,其中M是MER在样点方面的高度,且N是MER在样点方面的宽度。待划分的块的尺寸为H×W个样点,其中H是块在样点方面的高度,且W是块在样点方面的宽度。在该示例中,为了确保可以从当前块分割的已划分编解码单元符合上述约束,视频编码器可以被配置为在W大于M且H小于或等于N的情况下禁用该块的水平二叉树分割,在W小于或等于M且H大于N的情况下禁用该块的垂直二叉树分割,在W大于M且H小于或等于2*N的情况下禁用该块的水平三叉树分割,以及在W小于或等于2*M且H大于N的情况下禁用该块的垂直三叉树分割。
图1是示出可以执行本公开的技术的一种示例视频编码和解码系统100的框图。本公开的技术通常针对编解码(编码和/或解码)视频数据。通常,视频数据包括用于处理视频的任何数据。因而,视频数据可以包括原始的,未编码的视频,已编码视频,已解码(例如,重建的)视频以及视频元数据,例如信令数据。
如图1所示,在本示例中,系统100包括源设备102,源设备102提供将要由目标设备116解码和显示的已编码视频数据。具体的,源设备102经由计算机可读介质110向目标设备116提供视频数据。源设备102和目标设备116可以包括多种设备中的任何设备,包括台式计算机、笔记本(即,膝上型)电脑、移动设备、平板电脑、机顶盒、例如智能电话的电话手机、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备、广播接收器设备等。在某些情况下,源设备102和目标设备116被配置用于无线通信,并且因此被称为无线通信设备。
在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目标设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开,源设备102的视频编码器200和目标设备116的视频解码器300可以被配置为对用于合并估计区域(MER)确定的技术进行应用。因而,源设备102表示视频编码设备的示例,而目标设备116表示视频解码设备的示例。在其他示例中,源设备和目标设备可以包括其他组件或布置。例如,源设备102可以从诸如外部相机的外部视频源接收视频数据。同样地,目标设备116可以与外部显示设备连接,而不是包括集成显示设备。
图1中所示的系统100仅仅是一个示例。总的来说,任何数字视频编码和/或解码设备都可以执行用于合并估计区域确定的技术。源设备102和目标设备116仅仅是这些编解码设备的示例,其中,源设备102生成经编码的视频数据以传输到目标设备116。本公开将“编解码”设备称为进行数据的编解码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300表示编解码设备的示例,具体分别表示视频编码器的示例和视频解码器的示例。在某些示例中,源设备102和目标设备116可以以基本对称的方式运行,使得源设备102和目标设备116中的每一个都包括视频编码组件和视频解码组件。因此,系统100可以支持视频源设备102和目标设备116之间的单向或双向视频传输,例如,用于视频流式传输,视频回放,视频广播或视频电话。
通常,视频源104表示视频数据(即,原始的、未编码的视频数据)的源,并将视频数据的连续系列的图片(也称为“帧”)提供给视频编码器200。视频编码器200为这些图片编码数据。源设备102的视频源104可以包括例如摄像机的视频捕获设备,包含先前捕获的原始视频的视频档案,和/或用于从视频内容提供者接收视频的视频馈送接口。作为另一可替换方案,视频源104可以生成基于计算机图形的数据作为源视频,或者实时视频,存档视频和计算机生成的视频的组合。在每种情况下,视频编码器200都对捕获到的视频数据、预捕获到的视频数据或计算机生成的视频数据进行编码。视频编码器200可以将图片从接收顺序(有时称为“显示顺序”)重新排列为用于编解码的编解码顺序。视频编码器200可以生成包括已编码视频数据的比特流。之后,源设备102可以经由输出接口108将已编码视频数据输出到计算机可读介质110上,以用于通过例如目标设备116的输入接口122的接收和/或检索。
源设备102的存储器106和目标设备116的存储器120表示通用存储器。在某些示例中,存储器106和存储器120可以存储原始视频数据,例如,来自视频源104的原始视频和来自视频解码器300的原始的、已解码的视频数据。另外或可替换地,存储器106和存储器120可以存储可分别由例如视频编码器200和视频解码器300执行的软件指令。尽管在本示例中存储器106和存储器120被与视频编码器200和视频解码器300分离地被示出,但应该理解的是,视频编码器200和视频解码器300还可以包括内部存储器,以实现功能上相似或等效的目的。此外,存储器106和存储器120可以存储例如从视频编码器200输出并输入到视频解码器300的已编码视频数据。在某些示例中,存储器106和存储器120的部分可以被分配为一个或多个视频缓存器,例如,以存储原始视频数据、已解码视频数据和/或已编码视频数据。
计算机可读介质110可以表示能够将已编码视频数据从源设备102传输到目标设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示使得源设备102,例如经由射频网络或基于计算机的网络,实时地将已编码视频数据直接发送到目标设备116的通信介质。根据诸如无线通信协议的通信标准,输出接口108可以对包括已编码视频数据的传输信号进行调制,并且输入接口122可以对接收到的传输信号进行解调。通信介质可以包括任何无线或有线通信介质,例如射频(RF)频谱或一条或更多条物理传输线。通信介质可以形成基于分组的网络的部分,诸如局域网,广域网或诸如因特网的全球网络。通信介质可以包括路由器、交换机、基站或任何其他有助于从源设备102到目标设备116的通信的装备。
在某些示例中,源设备102可以将已编码数据从输出接口108输出到存储设备112。类似地,目标设备116可以经由输入接口122访问来自存储设备112的已编码数据。存储设备112可以包括多种分布式的或本地访问的数据的存储媒介中的任何一种,例如硬盘驱动器、Blu-ray光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或用于存储已编码视频数据的任何其他合适的数字存储媒介。
在某些示例中,源设备102可以将已编码视频数据输出到文件服务器114或可以存储由源设备102生成的已编码视频数据的另一中间存储设备。目标设备116可以以流式或下载的方式来访问文件服务器114所存储的视频数据。
文件服务器114可以是能够存储已编码视频数据并能将所述已编码视频数据发送至目标设备116的任何类型的服务器设备。文件服务器114可以表示web服务器(例如,用于网站)、被配置为提供文件传输协议服务(例如,文件传输协议(FTP)或单向文件传输(FileDelivery over Unidirectional Transport,FLUTE)协议)的服务器、内容分发网络(content,delivery network,CDN)设备、超文本传输协议(hypertext transferprotocol,HTTP)服务器、多媒体广播多播服务(Multimedia Broadcast MulticastService,MBMS)或增强型MBMS(eMBMS)服务器、和/或网络连接式存储(NAS)设备。文件服务器114可以附加地或可替换地实现一个或多个HTTP流协议,例如,基于HTTP的动态自适应流(Dynamic Adaptive Streaming over HTTP,DASH)、HTTP实时流(HTTP Live Streaming,HLS)、实时流协议(Real Time Streaming Protocol,RTSP)、HTTP动态流,等等。
目标设备116可以通过包括因特网连接的任何标准数据连接来访问文件服务器114的已编码视频数据。这可以包括无线信道(例如Wi-Fi连接)、有线连接(例如数字用户线缆(DSL)、电缆调制解调器等)、或者二者的组合,该组合适合于访问存储在文件服务器114上的已编码视频数据。输入接口122可以被配置为根据以上讨论的用于从文件服务器114检索或接收媒体数据的多种协议中的任一种或多种,或者根据用于检索媒体数据的其他这种协议,来运行。
输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线网络组件(例如以太网卡)、根据多种IEEE 802.11标准中的任一种运行的无线通信组件、或其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准来传送例如已编码视频数据的数据,所述蜂窝通信标准包括例如4G、4G-LTE(长期演进)、LTE Advanced、5G等等。在输出接口108包括无线发送器的某些示例中,输出接口108和输入接口122可以被配置为根据其他无线标准来传送例如已编码视频数据的数据,所述其他无线标准包括IEEE802.11规范、IEEE 802.15规范(例如ZigBeeTM)、BluetoothTM标准等等。在某些示例中,源设备102和/或目标设备116可以包括相应的片上系统(SoC)设备。例如,源设备102可以包括执行分发给视频编码器200和/或输出接口108的功能的SoC设备,而目标设备116可以包括执行分发给视频解码器300和/或输入接口122的功能的SoC设备。
可以将本公开的技术应用于支持多种多媒体应用中任一种视频编解码。所述多媒体应用包括例如空中电视广播、有线电视传输、卫星电视传输、因特网流视频传输,例如基于HTTP的动态自适应流(DASH)、编码至数据存储介质上的数字视频、存储于数据存储介质上的数字视频的解码、或其他应用。
目标设备116的输入接口122接收来自计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)的已编码视频比特流。已编码视频比特流可以包括由视频编码器200定义的信令信息,所述信令信息也被视频解码器300使用,例如具有描述视频块或其他已编解码单元(例如,条带、图片、图片组、序列等)的特征和/或处理的值的语法元素。显示设备118向用户显示已解码视频数据的已解码图片。显示设备118可以表示多种显示设备中的任何一种,所述多种显示设备例如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一种类显示设备。
虽然图1中未示出,在某些示例中,视频编码器200和视频解码器300分别可以与音频编码器和/或音频解码器集成在一起,并且可以包括适当的MUX-DEMUX单元或其他硬件和/或软件,以处理包括普通数据流中的音频和视频两者的复用流。如果适用,则MUX-DEMUX单元可以遵循ITU H.223多路复用器协议或例如用户数据报协议(UDP)的其他协议。
视频编码器200和视频解码器300均可以实现为多种合适的编码器和/或解码器电路中的任何一种,上述多种合适的编码器和/或解码器电路例如包括:一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或以上各种电路的任意组合。在使用软件部分地实现上述技术的情况下,设备可以将用于软件的指令存储在合适的非暂时性计算机可读介质中,并在使用一个或多个处理器的硬件中执行这些指令,以进行本公开的技术。视频编码器200和视频解码器300中的每一个可以被包括在一个或多个编码器或解码器中,视频编码器200和视频解码器300中的任一个可以被集成为相应设备中的组合编码器/解码器(CODEC)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,例如蜂窝电话。
视频编码器200和视频解码器300可以根据诸如ITU-T H.265(也称为高效视频编解码(HEVC))或其扩展(例如多视图和/或可缩放视频编解码扩展)的视频编解码标准来运行。可替换地,视频编码器200和视频解码器300可以根据诸如联合探索测试模型(JointExploration Test Model,JEM)或ITU-T H.266(也称为通用视频编码(Versatile VideoCoding,VVC))的其他专有或工业标准运行。2019年10月1日至11日在瑞士(CH)的日内瓦(Geneva)举办的ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)第16次会议提案的JVET-P2001-v9章节中的Bross等人的“Versatile Video Coding(草案7)”描述了VVC标准的最新草案(以下简称“VVC草案7”)。然而,本公开的技术不限于任何特定的编解码标准。
通常,视频编码器200和视频解码器300可以执行基于块的图片编解码。术语“块”通常是指包括待处理的(例如,已编码的、已解码的、或者在编码和/或解码过程中使用的)数据的结构。例如,块可以包括亮度和/或色度数据的样点的二维矩阵。通常,视频编码器200和视频解码器300可以对以YUV(例如,Y,Cb,Cr)格式表示的视频数据进行编解码。也就是说,视频编码器200和视频解码器300不是对图片的样点的红、绿和蓝(RGB)数据进行编解码,而是可以对亮度和色度分量进行编解码,其中色度分量可以包括红色色度分量和蓝色色度分量两者。在某些示例中,视频编码器200在编码之前将接收到的RGB格式的数据转换成YUV表示,而视频解码器300将YUV表示转换成RGB格式。可替换地,预处理单元和后处理单元(未示出)可以执行这些转换。
本公开通常可以指图片的编解码(例如,编码和解码),以包括对该图片的数据进行编码或解码的过程。类似地,本公开可以指对图片的块的编解码,以包括对块的数据进行编码或解码的过程,例如,预测和/或残差编解码。已编码视频比特流通常包括用于语法元素(syntax elements)的一系列值,这些语法元素表示编解码决策(例如,编解码模式)和图片到块的划分方式。因此,通常应该将对图片或块进行编解码的描述理解为用于形成该图片或块的语法元素的编解码值。
HEVC定义了各种块,包括编解码单元(CU)、预测单元(PU)、和变换单元(TU)。根据HEVC,视频编解码器(例如,视频编码器200)根据四叉树结构将编解码树单元(CTU)划分为CU。也就是说,该视频编解码器将CTU和CU划分为四个相等的且不重叠的正方形,并且该四叉树的每个节点具有零个或四个子节点。没有子节点的节点可以被称为“叶节点”,并且这种叶节点的CU可以包括一个或多个PU和/或一个或多个TU。视频编解码器可以对PU和TU进行进一步划分。例如,在HEVC中,残差四叉树(RQT)表示TU的划分。在HEVC中,PU表示帧间预测数据,而TU表示残差数据。帧内预测所得的CU包括帧内预测信息,例如帧内模式指示。
作为另一示例,视频编码器200和视频解码器300可以被配置为根据VVC运行。根据VVC,视频编解码器(例如,视频编码器200)将图片划分为多个编解码树单元(CTU)。视频编码器200可以根据树结构对CTU进行划分,该树结构包括诸如四叉树-二叉树(quadtree-binary tree,QTBT)结构或多类型树(Multi-Type Tree,MTT)结构。QTBT结构取消了多种划分类型的概念,例如HEVC的CU、PU和TU之间的区别。QTBT结构包括两个级别:根据四叉树划分进行划分所获得的第一级,以及根据二叉树划分进行划分所获得的第二级。该QTBT结构的根节点对应于CTU。二叉树的叶节点对应于编解码单元(CU)。
在MTT划分结构中,可以利用四叉树(QT)划分、二叉树(BT)划分以及一种或更多种三叉树(TT)(也称为三分树(TT))划分对各块进行划分。在三叉或三分树划分中,将块分割为三个子块。在某些示例中,三叉或三分树划分以不通过中心对原始块进行划分的方式将块划分为三个子块。MTT中的划分类型(例如QT、BT和TT)可以是对称的,也可以是不对称的。
在某些示例中,视频编码器200和视频解码器300可以使用单个QTBT或MTT结构来表示亮度分量和色度分量中的每一个。而在其他示例中,视频编码器200和视频解码器300可以使用两个或更多个QTBT或MTT结构,例如一个QTBT/MTT结构用于亮度分量而另一个QTBT/MTT结构用于两个色度分量(或者两个QTBT/MTT结构用于相应的色度分量)。
视频编码器200和视频解码器300可以被配置为使用基于HEVC的四叉树划分、QTBT划分、MTT划分、或其他划分结构。为了说明的目的,基于QTBT划分对本公开的技术进行了描述。然而,应该理解的是,本公开的技术还可以应用于配置为使用四叉树划分或其它类型的划分的视频编解码器。
在某些示例中,CTU包括亮度样点的编解码树块(coding tree block,CTB)、具有三个样点阵列的图片的色度样点的两个对应的CTB、或者单色图片的或通过使用三个独立的颜色平面和用于对样点进行编解码的语法结构被编解码的图片的样点的CTB。对于N的某个值,CTB可以是N×N的样点块,以使得分量到CTB的划分是一种划分。分量是阵列、或者是组成颜色格式为4:2:0、4:2:2或4:4:4的图片的三个阵列(亮度和两个色度)中的一个阵列的单个样点,或者是组成单色格式的图片的阵列或阵列中的单个样点。在某些示例中,对于M和N的某些值,编解码块是M×N的样点块,以使得CTB到编解码块的划分是一种划分。
可以以多种方式对图片中的各个块(例如,CTU或CU)进行分组。作为一个示例,砖块(brick)指图片中特定区块(tile)内的CTU行的矩形区域。区块是图片中的特定区块列和特定区块行内的CTU组成的矩形区域。区块列是指CTU组成的矩形区域,该矩形区域的高度等于图片的高度,其宽度(例如,诸如在图片参数集中)由语法元素指定。区块行是指CTU组成的矩形区域,该矩形区域的高度(例如,诸如在图片参数集中)由语法元素指定,其宽度等于图片的宽度。
在某些示例中,可以将区块划分为多个砖块,每个砖块包括该区块内的一个或多个CTU行。没有被划分为多个砖块的区块也可以称为砖块。但是,作为区块的真子集的砖块不能称为区块。
图片中的砖块也可以排列于条带中。条带可以是图片的可以排他包含在单个网络抽象层(network abstraction layer,NAL)单元中的整数个砖块。在某些示例中,条带包括多个完整的区块或仅包括一个区块的连续序列的完整砖块。
本公开可以互换地使用“N×N”和“N乘N”来指代块(例如CU或其他视频块)在垂直维度和水平维度上的样点维度,例如16×16样点或16乘16样点。通常,16×16的CU在垂直方向上会有16个样点(y=16),并且在水平方向上会有16个样点(x=16)。同样地,N×N的CU通常在垂直方向上具有N个样点并且在水平方向上也具有N个样点,其中N表示非负的整数值。CU中的样点可以以行和列的方式排列。此外,CU在水平方向上的样点数量不必与垂直方向上的样点数量相同。举例来说,CU可以包括N×M个样点,其中M不必要等于N。
视频编码器200对表示预测和/或残差信息以及其他信息的CU的视频数据进行编码。预测信息指示将如何对该CU进行预测以便形成针对该CU的预测块。残差信息通常表示预测块与编码之前的CU样点之间的逐样点差值。
为了预测CU,视频编码器200通常可以通过帧间预测或帧内预测来形成用于CU的预测块。帧间预测通常指根据先前已编解码的图片的数据来预测CU,而帧内预测通常指根据同一图片的先前已编解码的数据来预测CU。为了执行帧间预测,视频编码器200可使用一个或多个运动向量来生成预测块。视频编码器200通常可以进行运动搜索,例如,根据CU与参考块之间的差,来识别与CU紧密匹配的参考块。视频编码器200可以使用绝对差值和(SAD)、平方差值和(SSD)、平均绝对差(MAD)、均方差(MSD)或其他此类差值计算来计算差值度量,以确定参考块是否紧密匹配当前CU。在某些示例中,视频编码器200可以使用单向预测或双向预测来预测该当前CU。
VVC的某些示例还提供可以被认为是帧间预测模式的仿射运动补偿模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动的两个或更多个运动向量,该非平移运动例如为放大或缩小、旋转、透视运动或其他不规则运动类型。
为了进行帧内预测,视频编码器200可以选择帧内预测模式来生成预测块。VVC的某些示例提供了67种帧内预测模式,包括各种方向模式以及平面模式和DC模式。通常,视频编码器200选择描述根据其预测当前块的样点的当前块(例如,CU的块)的相邻样点的帧内预测模式。假设视频编码器200以光栅扫描顺序(从左到右,从上到下)对CTU和CU进行编解码,则相邻样点通常位于同一图片中当前块的上方,左上方,或左侧。
视频编码器200对表示当前块的预测模式的数据进行编码。举例来说,对于帧间预测模式,视频编码器200可以对表示使用多种可用帧间预测模式中的哪一种的数据以及用于对应模式的运动信息进行编码。对于单向或双向帧间预测,例如,视频编码器200可以使用高级运动向量预测(AMVP)或合并模式来对运动向量进行编码。对于仿射运动补偿模式,视频编码器200可以使用类似的模式来对运动向量进行编码。
在诸如块的帧内预测或帧间预测的预测之后,视频编码器200可以计算针对该块的残差数据。残差数据,例如残差块,表示该块与使用对应的预测模式形成的该块的预测块之间的逐样点差值。视频编码器200可以对残差块应用一种或更多种变换,以在变换域而非样点域中生成经变换的数据。举例来说,视频编码器200可以将离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。另外,视频编码器200可以在一次变换之后应用二次变换,例如,模式依赖的不可分的二次变换(mode-dependent non-separable secondary transform,MDNSST)、信号依赖的变换、Karhunen-Loeve变换(KLT)等。视频编码器200在应用一种或更多种变换之后产生变换系数。
如上所述,在进行任何生成变换系数的变换之后,视频编码器200可以对这些变换系数进行量化。量化通常是指对变换系数进行量化以使得可能减少用于表示所述变换系数的数据量,从而提供进一步的压缩。通过进行量化过程,视频编码器200可以减小与变换系数中某些或全部相关联的位深度。例如,视频编码器200可以在量化期间将n位值舍入为m位值,其中n大于m。在某些示例中,为了进行量化,视频编码器200可以对待量化的值进行按位右移。
在量化之后,视频编码器200可以对变换系数进行扫描,从而根据包括已量化变换系数的二维矩阵来生成一维向量。该扫描可以被设计为将较高能量(因此频率较低)的变换系数放在向量的前部,而将较低能量(因此频率较高)的变换系数放在向量的后部。在某些示例中,视频编码器200可以利用预定义的扫描顺序来扫描已量化变换系数以生成串行化的向量,并且然后对该向量的已量化变换系数进行熵编码。在其他示例中,视频编码器200可以进行自适应扫描。在对已量化变换系数进行扫描而形成一维向量之后,视频编码器200可以例如根据上下文自适应二进制算术编解码(context-adaptive binary arithmeticcoding,CABAC)对该一维向量进行熵编码。视频编码器200还可以对描述元数据的语法元素的值进行熵编码,该元数据与视频解码器300在解码视频数据中使用的已编码视频数据相关联。
为了进行CABAC,视频编码器200可以将上下文模型内的上下文分配给要发送的符号。该上下文可以涉及例如该符号的相邻值是否为零值。概率确定可以基于分配给该符号的上下文。
视频编码器200可以进一步例如在图片标头、块标头、条带标头中向视频解码器300生成诸如基于块的语法数据、基于图片的语法数据和基于序列的语法数据或生成诸如序列参数集(SPS)、图片参数集(PPS)或视频参数集(VPS)之类的其它语法数据。视频解码器300可以同样解码此类语法数据以确定如何解码对应视频数据。
以这种方式,视频编码器200可以生成比特流。该比特流包括已编码视频数据,例如,描述将图片划分为块(例如,CU)的语法元素以及针对上述块的预测和/或残差信息。最终,视频解码器300可以接收该比特流并对上述已编码视频数据进行解码。
通常,视频解码器300进行与视频编码器200相反的过程,来对比特流的已编码视频数据进行解码。比如,尽管与视频编码器200的CABAC编码过程相反,但视频解码器300可以以大体上相似的方式来使用CABAC以对比特流的语法元素的值进行解码。语法元素可以定义将图片划分为CTU的划分信息、以及根据对应的划分结构(诸如QTBT结构)的每个CTU的划分,从而定义该CTU的CU。语法元素还可以对视频数据的块(例如,CU)的预测和残差信息进行定义。
残差信息可以由例如已量化变换系数表示。视频解码器300可以对块的已量化变换系数进行逆量化和逆变换以重现该块的残差块。视频解码器300使用已信令通知的预测模式(帧内或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)来形成该块的预测块。视频解码器300然后可以将该预测块和上述残差块(在逐样点的基础上)进行组合以重现原始块。视频解码器300可以进行附加处理,例如进行解块过程以减少沿着块的边界的视觉伪像。
根据本公开的技术,如将在下文详述的,视频编码器200可以被配置为确定针对视频数据的图片的一个或多个合并估计区域(MER),根据约束将视频数据的图片划分为编解码单元,其中该约束指定该划分被约束以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中;以及根据MER对编解码单元进行编码。
本公开通常可以指“信令通知(signaling)”某些信息,例如语法元素。术语“信令通知(signaling)”通常可以指语法元素的值和/或用于对已编码视频数据进行解码的其他数据的通信。即,视频编码器200可以信令通知比特流中的语法元素的值。通常,信令是指在比特流中生成值。如上所述,源设备102可以基本上实时地将比特流传送到目标设备116,也可以不是实时的,诸如在将语法元素存储到存储设备112以用于稍后目标设备116的检索时可能发生的情况。
图2A和图2B是示出一种示例四叉树-二叉树(QTBT)结构130和对应的编解码树单元(CTU)132的示意图。实线表示四叉树分割,而虚线表示二叉树分割。在二叉树的每个分割(即非叶)节点中,信令通知一个标志以指示使用了哪种分割类型(即,水平或垂直),其中,在本示例中0指示水平分割,而1指示垂直分割。对于四叉树分割,不需要指示分割类型,这是因为四叉树节点将块水平地和垂直地分割为尺寸相等的4个子块。因此,视频编码器200可以对QTBT结构130的区域树级别(例如,实线)的语法元素(例如分割信息)和QTBT结构130的预测树级别(例如,虚线)的语法元素(例如分割信息)进行编码,而视频解码器300可以对QTBT结构130的区域树级别(例如,实线)的语法元素(例如,分割信息)和QTBT结构130的预测树级别(例如,虚线)的语法元素(例如,分割信息)进行解码。针对由QTBT结构130的终端叶节点表示的CU,视频编码器200可以对例如预测和变换数据的视频数据进行编码,而视频解码器300可以对例如预测和变换数据的视频数据进行解码。
通常,图2B的CTU 132可以与定义了与QTBT结构130在第一级和第二级的节点相对应的块的尺寸的参数相关联。这些参数可以包括CTU尺寸(表示样点中CTU 132的尺寸)、最小四叉树尺寸(MinQTSize,表示最小允许的四叉树叶节点尺寸)、最大二叉树尺寸(MaxBTSize,表示最大允许的二叉树根节点尺寸)、最大二叉树深度(MaxBTDepth,表示最大允许的二叉树深度)和最小二叉树尺寸(MinBTSize,表示最小允许的二叉树叶节点尺寸)。
对应于CTU的QTBT结构的根节点可以在QTBT结构的第一级具有四个子节点,可以根据四叉树划分对每个子节点进行划分。即,该第一级的节点是叶节点(没有子节点)或具有四个子节点。QTBT结构130的示例将这样的节点表示为包括父节点和以实线作为分支的子节点。如果该第一级的节点不大于最大允许的二叉树根节点尺寸(MaxBTSize),则这些节点可以被相应的二叉树进一步划分。可以迭代进行一个节点的二叉树分割,直到由该分割产生的节点达到最小允许的二叉树叶节点尺寸(MinBTSize)或最大允许的二叉树深度(MaxBTDepth)。QTBT结构130的示例以虚线作为分支的方式来表示这样的节点。二叉树叶节点被称为编解码单元(CU),其用于预测(例如,帧内预测或帧间预测)和变换,而不需要任何进一步的划分。如上面所讨论的,CU也可以被称为“视频块”或“块”。
在QTBT划分结构的一个示例中,将CTU的尺寸设置为128×128(亮度样点和两个对应的64×64的色度样点),MinQTSize设置为16×16,MaxBTSize设置为64×64,MinBTSize(针对宽度和高度两者)设置为4,以及MaxBTDepth设置为4。首先对CTU应用四叉树划分以生成四叉树叶节点。四叉树叶节点的尺寸可以从16×16(即MinQTSize)到128×128(即CTU尺寸)。如果四叉树叶节点为128×128的,则该四叉树叶节点不会再被二叉树进一步分割,因为该尺寸超过了MaxBTSize(即,此示例中为64×64)。否则,四叉树叶节点还会被二叉树进一步划分。因此,四叉树叶节点也是二叉树的根节点并具有为0的二叉树深度。当二叉树的深度达到MaxBTDepth(此示例中为4)时,不允许进一步分割。宽度等于MinBTSize(此示例中为4)的二叉树节点表明不允许对该二叉树节点再进行垂直分割(即,宽度划分)。类似地,高度等于MinBTSize的二叉树节点表明不允许对该二叉树节点再进行水平分割(即,高度划分)。如上所述,二叉树的叶节点被称为CU,并且根据预测和变换被进一步处理而无需再进行划分。
图3是示出可以进行本公开的技术的一种示例视频编码器200的框图。出于阐述的目的提供图3,而不应该将其视为限制本公开中广泛例示和描述的技术。为了说明的目的,本公开根据VVC(开发中的ITU-T H.266)和HEVC(ITU-T H.265)的技术描述了视频编码器200。然而,本公开的技术可以由被配置到其他视频编解码标准的视频编码设备执行。
在图3的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重建单元214、滤波器单元216、已解码图片缓存器(DPB)218和熵编码单元220。视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重建单元214、滤波器单元216、DPB 218和熵编码单元220中的任一个或全部可以在一个或多个处理器中或在处理电路中实现。例如,视频编码器200的单元可以被实现为一个或多个电路或逻辑元件,作为硬件电路的一部分、或作为处理器、ASIC或FPGA的一部分。此外,视频编码器200可以包括另外的或可替换的处理器或处理电路以实现这些或其他功能。
视频数据存储器230可以存储待由视频编码器200的组件进行编码的视频数据。视频编码器200可以接收存储于视频数据存储器230中的视频数据(例如,来自视频源104(图1)的视频数据)。DPB 218可以充当参考图片存储器,该参考图片存储器存储在视频编码器200预测后续视频数据中使用的参考视频数据。视频数据存储器230和DPB 218可以由多种存储设备中的任一种形成,例如动态随机访问存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻性RAM(RRAM)或其他类型的存储设备。视频数据存储器230和DPB 218可以被提供为相同的存储设备或分离的存储设备。在多个示例中,视频数据存储器230可以与视频编码器200的其他组件一起在芯片上(on-chip),如上所示,或者相对于那些组件在芯片外(off-chip)。
在本公开中,对视频数据存储器230的描述不应该被解释为受限于视频编码器200内部的存储器,除非如此具体地描述,或者受限于视频编码器200外部的存储器,除非如此具体地描述。准确的说,对视频数据存储器230的描述应该被理解为参考存储器,参考存储器存储视频编码器200接收的、用于编码的视频数据(例如,用于待被编码的当前块的视频数据)。图1的存储器106还可以为来自视频编码器200的各个单元的输出提供临时存储。
对图3的各个单元进行说明,以帮助理解由视频编码器200进行的操作。这些单元可以实现为固定功能电路,可编程电路或两者的组合。固定功能电路是指提供特定功能并为可以进行的操作进行预设的电路。可编程电路是指可以被编程以进行各种任务并且在可以进行的操作中提供灵活功能的电路。例如,可编程电路可以执行软件或固件,以使得可编程电路以软件或固件的指令所定义的方式来运行。固定功能电路可以执行软件指令(例如,对参数进行接收或输出),但是固定功能电路执行的操作的类型通常是不可变的。在某些示例中,上述单元中的一个或多个可以是不同的电路块(固定功能或可编程),而在某些示例中,上述单元中的一个或多个可以是集成电路。
视频编码器200可以包括算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或由可编程电路形成的可编程核。在使用由可编程电路执行的软件来进行视频编码器200的操作的示例中,存储器106(图1)可以对视频编码器200接收并执行的软件的指令(例如,目标代码)进行存储,或者在视频编码器200中的另一存储器(未显示)对这些指令进行存储。
视频数据存储器230被配置为存储接收到的视频数据。视频编码器200可以从视频数据存储器230中检索视频数据的图片,并将上述视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是待被编码的原始视频数据。
模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括根据其他预测模式进行视频预测的另外的功能单元。作为示例,模式选择单元202可以包括调色板单元、块内复制单元(可以是运动估计单元222和/或运动补偿单元224中的一部分)、仿射单元、线性模型(LM)单元等。
模式选择单元202通常协调多个编码通路,以测试编码参数的组合和所得到的该组合的速率失真值。这些编码参数可以包括从CTU到CU的划分、用于CU的预测模式、用于CU的残差数据的变换类型、用于CU的残差数据的量化参数等。模式选择单元202可以最终选择具有比其他经测试的组合更好的速率失真值的编码参数的组合。
如将在下文所详述的,当根据合并估计区域(MER)使用帧间预测对视频数据进行编码时,视频编码器200可以被配置为根据约束对视频数据进行划分。例如,视频编码器200可以被配置为确定针对视频数据的图片的一个或多个MER,并且根据约束将视频数据的图片划分为编解码单元,其中该约束指定该划分被约束以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中。
视频编码器200可以将从视频数据存储器230检索到的图片划分为一系列CTU,并将一个或多个CTU封装在条带内。模式选择单元202可以根据树结构,例如上述的QTBT结构或HEVC的四叉树结构,来对图片的CTU进行划分。如上所述,视频编码器200可以根据树结构通过划分CTU来形成一个或多个CU。这种CU通常还可以被称为“视频块”或“块”。
通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成针对当前块(例如,当前CU,或HEVC中PU和TU的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可以进行运动搜索以识别一个或多个参考图片(例如,存储在DPB 218中的一个或多个预先已编解码图片)中的一个或多个紧密匹配的参考块。具体地,运动估计单元222可以例如根据绝对差值和(SAD)、平方差值和(SSD)、平均绝对差(MAD)、均方差(MSD)等来计算表示潜在参考块与该当前块有多相似的值。运动估计单元222通常可以使用当前块与所考虑的参考块之间的逐样点差值来进行这些计算。运动估计单元222可以识别出具有这些计算所得的最小值的参考块,来指示与当前块最紧密匹配的参考块。
运动估计单元222可以形成一个或多个运动向量(MV),所述运动向量定义参考块在参考图片中的位置相对于当前块在当前图片中的位置。之后,运动估计单元222可以将运动向量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动向量,而对于双向帧间预测,运动估计单元222可以提供两个运动向量。运动补偿单元224之后可以使用运动向量来生成预测块。例如,运动补偿单元224可以使用运动向量来检索参考块的数据。作为另一示例,如果运动向量具有分数样点精度,则运动补偿单元224可以根据一个或多个内插滤波器来插入用于预测块的值。此外,对于双向帧间预测,运动补偿单元224可以检索针对相应的运动向量所标识的两个参考块的数据并且例如通过逐样点平均或加权平均来对检索到的数据进行组合。
如将在下文中所详述的,运动估计单元222和运动补偿单元224可以被配置为根据MER来执行帧间预测。例如,运动估计单元22和运动补偿单元224可以被配置为对包含在MER内的全部编解码单元并行地执行合并候选列表构建过程。
作为另一个示例,对于帧内预测或帧内预测编解码,帧内预测单元226可以根据与当前块相邻的样点来生成预测块。例如,对于方向模式,帧内预测单元226通常可以对相邻样点的值进行数学组合,并在定义的方向上跨越当前块填充这些计算出的值以产生预测块。作为另一示例,对于DC模式,帧内预测单元226可以计算当前块的相邻样点的平均值并且生成预测块,以针对该预测块的每个样点包括所得到的平均值。
模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始的未编码的版本,并从模式选择单元202接收预测块。残差生成单元204计算当前块和预测块之间的逐样点差值。所得逐样点差值定义了针对该当前块的残差块。在某些示例中,残差生成单元204还可以确定残差块中的样点值之间的差值以使用残差差分脉冲代码调制(Residual Differential Pulse Code Modulation,RDPCM)来生成残差块。在某些示例中,可以使用进行二进制减法的一个或多个减法器电路来形成残差生成单元204。
在某些示例中,模式选择单元202将CU划分为PU,每个PU可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有多种尺寸的PU。如上所示,CU的尺寸指CU的亮度编解码块的尺寸,PU的尺寸指PU的亮度预测单元的尺寸。假设特定CU的尺寸为2N×2N,则视频编码器200可以支持用于帧内预测的PU尺寸为2N×2N或N×N,以及用于帧间预测的对称PU的尺寸为2N×2N、2N×N、N×2N、N×N或类似的尺寸。视频编码器200和视频解码器300还可以支持用于帧间预测的不对称划分的PU的尺寸为2N×nU、2N×nD、nL×2N以及nR×2N。
在某些示例中,模式选择单元202不再将CU划分为PU,每个CU可以与亮度编解码块和对应的色度编解码块相关联。如上所述,CU的尺寸是指CU的亮度编解码块的尺寸。视频编码器200和视频解码器300可以支持CU的尺寸为2N×2N、2N×N或N×2N。
对于其他视频编解码技术(诸如,块内复制模式编解码、仿射模式编解码以及线性模型(LM)模式编解码),作为某些示例,模式选择单元202经由与编解码技术相关联的相应单元生成针对正在被编码的当前块的预测块。在某些示例中,例如调色板模式编解码,模式选择单元202不会生成预测块,并且而是生成指示基于选择的调色板重建块的方式的语法元素。在该模式中,模式选择单元202可以将这些语法元素提供给熵编码单元220以进行编码。
如上所述,残差生成单元204接收当前块的视频数据和对应的预测块的视频数据。残差生成单元204之后生成当前块的残差块。残差生成单元204计算预测块和当前块之间的逐样点差值以生成残差块。
变换处理单元206对残差块应用一种或更多种变换以生成变换系数的块(在本文中称为“变换系数块”)。变换处理单元206可以对残差块应用多种变换以形成变换系数块。例如,变换处理单元206可以对残差块应用离散余弦变换(DCT)、方向变换、Karhunen-Loeve变换(KLT)或概念上类似的变换。在某些示例中,变换处理单元206对残差块进行多种变换,例如初级变换和次级变换,诸如旋转变换。在某些示例中,变换处理单元206不对残差块进行变换。
量化单元208可以对变换系数块中的变换系数进行量化,以生成已量化变换系数块。量化单元208可以根据与当前块相关联的量化参数(QP)值来对变换系数块的变换系数进行量化。视频编码器200(例如,经由模式选择单元202)可以通过调整与CU相关联的QP值来调整应用于与当前块相关联的变换系数块的量化程度。量化会引起信息丢失,因此,已量化变换系数的精度会比变换处理单元206生成的原始变换系数的精度低。
逆量化单元210和逆变换处理单元212可以分别对已量化变换系数块进行逆量化和逆变换,以基于变换系数块重建残差块。重建单元214基于重建残差块和由模式选择单元202生成的预测块来生成与当前块相对应的重建块(尽管可能具有某种程度的失真)。例如,重建单元214可以将重建残差块的样点加到模式选择单元202所生成的预测块的对应样点来生成重建块。
滤波器单元216可以对重建块进行一种或更多种滤波器操作。例如,滤波器单元216可以进行解块操作以减少沿着CU的边界的块状伪影。在某些示例中,可以跳过滤波器单元216的操作。
视频编码器200将重建块存储于DPB 218中。例如,在不执行滤波器单元216的操作的示例中,重建单元214可以将重建块存储到DPB 218中。在执行滤波器单元216的操作的示例中,滤波器单元216可以将经滤波的重建块存储到DPB 218中。运动估计单元222和运动补偿单元224可以从DPB 218中检索由重建(且可能经滤波的)块形成的参考图片,以对后续已编码图像的块进行帧间预测。另外,帧内预测单元226可以使用当前图片在DPB 218中的重建块来对该当前图片中的其他块进行帧内预测。
通常,熵编码单元220可以对从视频编码器200的其他功能组件接收到的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的已量化变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的模式内信息)进行熵编码。熵编码单元220可以对作为视频数据的另一个示例的语法元素进行一种或更多种熵编码操作以生成经熵编码的数据。例如,熵编码单元220可以进行上下文自适应可变长度编解码(CAVLC)操作、CABAC操作、可变至可变(V2V)长度编解码操作、基于语法的上下文自适应二进制算术编解码(SBAC)操作、概率区间分割熵(PIPE)编解码操作、指数-Golomb编码操作或对数据进行的另一种熵编码操作。在某些示例中,熵编码单元220可以在语法元素未被熵编码的旁路模式下运行。
视频编码器200可以输出包括重建条带或图片的块所需的经熵编码的语法元素的比特流。具体地,熵编码单元220可以输出比特流。
以上所述的操作是相对于块来描述的。这种描述应当被理解为用于亮度编解码块和/或色度编解码块的操作。如上所述,在某些示例中,亮度编解码块和色度编解码块分别是CU的亮度分量和色度分量。在某些示例中,亮度编解码块和色度编解码块是PU的亮度分量和色度分量。
在某些示例中,不必对色度编解码块重复进行对亮度编解码块进行过的操作。作为一个示例,不需要将用于识别亮度编解码块的运动向量(MV)和参考图片的操作重复用于识别色度块的MV和参考图片。准确地说,可以对亮度编解码块的MV进行缩放来确定色度块的MV,并且参考图片可以是相同的。作为另一示例,对于亮度编解码块和色度编解码块,帧内预测过程可以是相同的。
视频编码器200表示被配置为对视频数据进行编码的设备的示例。该设备包括配置为存储视频数据的存储器和在电路中实现的一个或多个处理器,所述一个或多个处理器被配置为:确定针对视频数据的图片的一个或多个合并估计区域(MER);根据约束将视频数据的图片划分为编解码单元,其中该约束指定该划分被约束以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中;以及根据MER对编解码单元进行编码。
图4是示出可以进行本公开的技术的一种示例视频解码器300的框图。出于阐述的目的提供图4,而不应该将其视为限制本公开中广泛例示和描述的技术。为了说明的目的,本公开基于VVC(开发中的ITU-T H.266)和HEVC(ITU-T H.265)的技术描述了视频解码器300。然而,本公开的技术可以由配置为其他视频编解码标准的视频编解码设备来执行。
在图4的示例中,视频解码器300包括已编解码图片缓存器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310、滤波器单元312以及已解码图片缓存器(DPB)314。CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310、滤波器单元312和DPB 314中的任一个或全部可以在一个或多个处理器中或处理电路中实现。例如,视频解码器300的单元可以被实现为一个或多个电路或逻辑元件,作为硬件电路的一部分或作为处理器、ASIC或FPGA的一部分。此外,视频解码器300可以包括另外的或可替换的处理器或处理电路以执行这些或其他功能。
预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括另外的单元以根据其他预测模式进行预测。作为示例,预测处理单元304可以包括调色板单元、块内复制单元(可以形成运动补偿单元316的一部分)、仿射单元、线性模型(LM)单元等。在其他示例中,视频解码器300可以包括更多,更少或不同的功能组件。
CPB存储器320可以存储待由视频解码器300的组件进行解码的视频数据,例如已编码视频比特流。存储在CPB存储器320中的视频数据可以例如从计算机可读介质110(图1)获得。CPB存储器320可以包括对基于已编码视频比特流的已编码视频数据(例如,语法元素)进行存储的CPB。而且,CPB存储器320可以存储除了已编解码图片的语法元素之外的视频数据,例如表示来自视频解码器300的多个单元的输出的临时数据。DPB 314通常存储已解码图片。视频解码器300在对已编码视频比特流的后续数据和图片进行解码时,可以输出和/或使用上述已解码图片以作为参考视频数据。CPB存储器320和DPB 314可以由多种存储器设备中的任一种形成,诸如DRAM。上述多种存储器设备包括SDRAM、MRAM、RRAM或其他类型的存储器设备。CPB存储器320和DPB 314可以由相同的存储器设备或分离的存储器设备提供。在多个示例中,CPB存储器320可以与视频解码器300的其他组件在芯片上,或者相对于那些组件在芯片外。
另外地或可替换地,在某些示例中,视频解码器300可以从存储器120(图1)中检索已编解码视频数据。也就是说,存储器120可以如上文所述与CPB存储器320一起存储数据。同样地,当视频解码器300的某些或全部功能由待由视频解码器300的处理电路执行的软件实现时,存储器120可以存储待由视频解码器300执行的指令。
对图4中所示的多个单元进行说明以帮助理解由视频解码器300执行的操作。这些单元可以实现为固定功能电路,可编程电路或两者的组合。与图3相似的是,固定功能电路是指提供特定功能并为可以执行的操作进行预设的电路。可编程电路是指可以被编程以执行多种任务并且在可以执行的操作中提供灵活功能的电路。举例来说,可编程电路可以执行软件或固件,以使得可编程电路以软件或固件的指令所定义的方式来运行。固定功能电路可以执行软件指令(例如,接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在某些示例中,上述单元中的一个或多个可以是不同的电路块(固定功能或可编程的),而在某些示例中,上述单元中的一个或多个可以是集成电路。
视频解码器300可以包括ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核。在视频解码器300的操作由在可编程电路上执行的软件执行的示例中,片上或片外存储器可以存储视频解码器300接收并执行的软件的指令(例如,目标代码)。
熵解码单元302可以从CPB接收已编码视频数据,并对该视频数据进行熵解码以重现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310以及滤波器单元312可以基于从比特流中提取的语法元素来生成已解码视频数据。
通常,视频解码器300在逐块的基础上重建图片。视频解码器300可以单独地对每个块执行重建操作(其中当前正在被重建,即,被解码,的块可以被称为“当前块”)。
熵解码单元302可以对定义已量化变换系数块的已量化变换系数的语法元素和变换信息进行熵解码,变换信息例如是量化参数(QP)和/或(多个)变换模式指示。逆量化单元306可以使用与已量化变换系数块相关联的QP来确定量化的程度,并且同样地,确定逆量化的程度以供逆量化单元306应用。逆量化单元306可以例如进行按位左移的运算来对已量化变换系数进行逆量化。逆量化单元306从而可以形成包括变换系数的变换系数块。
在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一种或更多种逆变换应用于变换系数块以生成与当前块相关联的残差块。例如,逆变换处理单元308可以对变换系数块应用逆DCT、逆整数变换、逆Karhunen-Loeve变换(KLT)、逆旋转变换、逆方向变换或另一种逆变换。
此外,预测处理单元304根据由熵解码单元302进行熵解码所得到的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示DPB 314中的从其检索参考块的参考图片以及标识参考图片中的参考块相对于当前图片中的当前块的位置的运动向量。运动补偿单元316通常可以以针对运动补偿单元224(图3)所描述的方式基本相似的方式来进行帧间预测过程。
如将在下文所详述的,运动补偿单元316可以被配置为根据MER执行帧间预测。例如,运动补偿单元316可以被配置为对包含在MER内的全部编解码单元并行地执行合并候选列表构建过程。
作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据预测信息语法元素指示的帧内预测模式来生成预测块。同样地,帧内预测单元318通常可以以与针对帧内预测单元226(图3)所描述的方式基本相似的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314检索当前块的相邻样点的数据。
重建单元310可以使用预测块和残差块来重建当前块。例如,重建单元310可以将残差块的样点加到预测块的对应样点上以重建当前块。
滤波器单元312可以对重建块进行一种或更多种滤波器操作。例如,滤波器单元312可以进行解块操作以减少沿着重建块的边缘的块状伪像。滤波器单元312的操作不必要在所有示例中都执行。
视频解码器300可以将重建块存储在DPB 314中。例如,在其中滤波器单元312的操作不被执行的示例中,重建单元310可以将重建块存储至DPB314。在其中滤波器单元312的操作被执行的示例中,滤波器312可以将经滤波的重建块存储至DPB 314。如上所述,DPB314可以向预测处理单元304提供参考信息,例如用于帧内预测的当前图片的样点以及用于后续运动补偿的预先解码的图片。同时,视频解码器300可以输出来自DPB 314的已解码图片(例如,已解码视频),以用于后续在例如图1的显示设备118的显示设备上呈现。
以这种方式,视频解码器300表示被配置为解码视频数据的示例设备。该设备包括被配置为存储视频数据的存储器以及在电路中实现的一个或多个处理单元。一个或多个处理单元被配置为:确定针对视频数据的图片的合并估计区域(MER),以使得对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中;以及对MER中的编解码单元并行地执行运动估计。
运动矢量预测器列表(或运动矢量候选列表)可以包括合并候选列表和AMVP候选列表。运动矢量预测器列表可以用于对运动矢量进行编码和解码以用于不同的帧间预测模式(例如,合并模式和AMVP模式)。出于描述的目的,参考合并候选列表构建来描述示例,但是本公开的技术可以被扩展为其他候选列表构建技术,例如用于AMVP候选列表构建的技术。
在某些示例视频编解码技术(例如,HEVC和VVC)中的合并候选列表构建过程由于使用空间合并候选会引入相邻块之间的依赖关系。在某些示例视频编码器实现中,通常并行地或至少流水线式地执行相邻块的运动估计阶段(例如,由图3的运动估计单元222执行的运动估计)以提高吞吐量。由于相邻块之间的依赖关系,相邻块的合并候选列表不能被并行地生成,且可以表示并行编码器/解码器设计的瓶颈。
因此,在HEVC中引入了并行合并估计过程。HEVC中的并行合并估计过程使用区域(称为合并估计区域(MER))的指示,其中视频编码器200和视频解码器300可以同时导出两个或更多个块的合并候选列表。也就是说,视频编码器200(例如,经由运动估计单元222和运动补偿单元224)和视频解码器300(例如,经由运动补偿单元316)可以对指示的区域(例如,MER)内的多个块并行地执行合并候选列表构建过程。
视频编码器200和视频解码器300可以通过检查候选块是否在指示的合并估计区域(MER)中来确定对其执行并行合并候选列表构建过程的块。与当前块在同一MER中的候选块不包括在合并候选列表中。所以,这种候选的运动数据在合并候选列表构建时不需要是可用的。
在MER的尺寸是32×32个样点的示例中,视频编码器200和视频解码器300可以被配置为对32×32样点区域中的全部块(例如,编解码单元或预测单元)并行地构建合并候选列表,这是因为在同一32×32MER内的全部合并候选都不被添加到合并候选列表中。图5示出了将CTU 500划分为七个CU和十个PU的示例。第一CU包括PU0和PU1,第二CU包括PU2,第三CU包括PU3,第四CU包括PU4,第五CU包括PU5和PU6,第六CU包括PU7,第七CU包括PU8和PU9。在图5中,CTU 500包括64×64的亮度编解码树块。针对32×32的MER 510(虚线块)内的PU的运动估计是被独立执行的,以使得对每个MER 510内的PU并行地执行运动估计(例如,包括合并候选列表构建)。为了说明,图5示出了PU0、PU5和PU9的可能的空间合并候选。
在图5的示例中,PU0的合并候选520可用于合并候选列表中,因为这些候选在包括PU0的32×32的MER之外。对于包含PU2-PU6的32×32的MER,PU2-PU6的合并候选列表不能包括来自PU2-PU6中的任一个的运动数据,因为该MER内部的合并估计和合并候选列表构建应该是独立的(例如,将被并行地执行)。因此,对于PU5,合并候选530不可用,因为这些候选在包含PU5的同一MER中。PU5的合并候选540不可用,因为该候选位置尚未被编解码。因此,PU5的合并列表可以仅包括暂时候选(如果可用)和零MV候选。对于PU9,合并候选520可用,因为这些候选在包含PU9的MER之外,合并候选530不可用,因为该候选与PU9在同一MER中,并且合并候选540也不可用,因为那些候选位置尚未被编解码。
为了使编码器(例如,视频编码器200)能够平衡并行度和编解码效率,并行合并估计级别(例如,MER的尺寸)可以是自适应的,并且可以使用语法元素信令通知该并行合并估计级别。举例来说,视频编码器200可以信令通知指示图片参数集(PPS)中的MER的尺寸的语法元素(例如,log2_parallel_merge_level_minus2)。HEVC中允许以下MER尺寸:4×4(无法进行并行合并列表构建)、8×8、16×16、32×32和64×64。由更大的MER使能的更高程度的并行化,将更多的潜在候选排除在合并候选列表之外。然而,较大的MER会降低编解码效率。
在VVC中,二叉树(BT)划分和三叉树(TT)划分都被使用。在BT划分中,块可以被分割为两个块。在TT划分中,块可以被分割为三个块。由于BT和TT划分以及VVC编解码顺序,HEVC合并估计区域技术不能直接应用于根据VVC划分的图片。首先,VVC编解码单元可以在多于一个MER上延伸,但这样的编解码单元不包含完整的MER。图6示出了示例。编解码单元A和编解码单元D没有完全落入任一32×32的区域内,也没有完整地包含整个MER。在图6的示例中,B的左合并候选应被标记为不可用,因为B的左合并候选与B位于同一32×32的区域中;而B的左下合并候选应被标记为可用,因为B的左下合并候选位于不同的32×32的区域中。然而,这导致下述结果,其中在该结果中编解码单元B的左合并候选和左下合并候选都在编解码单元A内部,但只有左下合并候选(其在编解码单元A内部)被标记为可用,而左合并候选(其也在编解码单元A内部)被标记为不可用。
另外,VVC中的块编解码顺序不一定遵循z扫描顺序,如图7所示。在图7的示例中,编解码单元的编解码顺序为A->B->C->D->E。编解码单元A和编解码单元C在同一个MER中。同样地,编解码单元B和编解码单元D在同一MER中。然而,禁用编解码单元A和编解码单元C之间的合并候选(例如,对不可用于合并的候选进行标记)不足以启用并行合并估计。在编解码单元A和编解码单元C之间按编解码顺序被编解码的编解码单元B可以从编解码单元A被合并,并且编解码单元C可以从编解码单元B被合并。这导致编解码单元C和编解码单元A的编码之间的依赖关系,这意味着编解码单元A和编解码单元C不能被并行地编码。
鉴于这些缺陷,本公开描述了用于对以BT划分结构和TT划分结构(例如,BT划分结构和TT划分结构中的至少之一)进行划分的视频数据的图片的并行合并估计(例如,并行合并候选列表构建)的技术。例如,在某些示例中,可以以BT划分结构对图片进行划分,而这些技术适用于这样的图片。在其他示例中,可以以TT划分结构对图片进行划分,而这些技术也适用于这样的图片。在其他实例中,本公开的技术适用于以BT划分结构和TT划分结构两者进行划分的图片。
根据本公开的技术,视频编码器200和视频解码器300被配置为按照被定义为矩形区域使得以下条件得以满足的合并估计区域(MER)来执行并行运动估计:
条件1:对于每个包含一个或多个编解码单元的MER,这些编解码单元全部都在该MER中。
条件2:对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中。
示例1
在本公开的一个示例技术中,MER被定义为尺寸为N×N的正方形区域,其中N是亮度和/或色度样点的单位。在一个示例中,N大于或等于BT划分的最大尺寸和/或TT划分的最大尺寸。以这种方式,全部的BT分割和TT分割都在MER区域内;因此上述条件1和条件2得以满足。BT分割或TT分割通常是根据BT划分结构或TT划分结构将较大的块划分成多个块。最大BT尺寸(例如,maxBTSize语法元素)和最大TT尺寸(例如,maxTTSize语法元素)可以单独用信令进行通知并且可以互不相同。
在一个示例中,视频编码器200可以信令通知具有指示MER是否被应用的值的语法元素mer_enable_flag。如果mer_enable_flag的值为真(例如,等于1),则视频解码器300可以将MER尺寸N设置为等于BT尺寸和TT尺寸中的最大值(例如,max(maxBTSize,maxTTSize))。即,视频解码器300可以对mer_enable_flag进行接收和解码,并且确定是否使用MER。如果MER被使用,则视频解码器300可以基于max(maxBTSize,maxTTSize)来设置MER尺寸。
在另一示例中,视频编码器200可以信令通知以高级别语法结构指示的MER尺寸N的语法元素。视频编码器200可以在比特流一致性约束下运行,该比特流一致性约束是MER尺寸N应该大于或等于BT尺寸和TT尺寸中的最大值(例如,max(maxBTSize,maxTTSize))或者MER不被应用(例如,MER尺寸N等于最小块尺寸)。视频编码器200可以被配置为在最小块尺寸为4的情况下将N的值信令通知为log2(N/4)。
在另一示例中,视频编码器200可以信令通知其值指示MER尺寸N与BT尺寸和TT尺寸中的最大值(例如,max(maxBTSize,maxTTSize))的差值的语法元素。在某些示例中,视频编码器200可以信令通知语法元素mer_enable_flag以指示MER是否被应用,并且如果mer_enable_flag的值为真,则该差值被信令通知为非负值log2DiffMERSizeMaxBtTtSize。如果mer_enable_flag的值为真,则视频解码器300可以将N导出为max(maxBTSize,maxTTSize)<<log2DiffMERSizeMaxBtTtSize;否则,视频解码器300可以将N设置为等于最小块尺寸。
示例2
在本公开的第二示例中,MER可以被定义为尺寸为M×N个样点的区域,其中M和N可以是不同的值。也就是说,在本示例中,MER可能是非正方形的。视频编码器200和视频解码器300可以被配置为对BT分割和TT分割进行约束,以使得以上两个条件得以满足。即,视频编码器200可以使用BT分割和/或TT分割(例如,BT和/或TT划分结构)将视频数据的图片划分成编解码单元,以使得以下条件得以满足。
条件1:对于每个包含一个或多个编解码单元的MER,这些编解码单元全部都在该MER中。
条件2:对于每个包含一个或多个MER的编解码单元,这些MER全部都在该编解码单元中。
因此,在本公开的一般示例中,视频编码器200可以被配置为确定针对视频数据的图片的一个或多个MER。例如,视频编码器200可以被配置为确定MER的样点方面的M×N尺寸。视频编码器200还被配置为根据约束将视频数据的图片划分成编解码单元,其中该约束指定该划分被约束以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中。在更具体的示例中,视频编码器200可以被配置为使用二叉树分割或三叉树分割中的一种或多种、根据约束将视频数据的图片划分成编解码单元,其中该约束指定二叉树分割和三叉树分割被约束以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中。之后,视频编码器200可以根据MER对编解码单元进行编码。例如,视频编码器200可以对MER中的编解码单元并行地执行合并候选列表构建。
图8和图9示出了根据本公开所述的约束,用于64×64的MER的128×128的CTU(在亮度样点中)的不允许的和允许的BT分割和TT分割的示例。具体地,图8中的BT分割和TT分割不被允许,而图9中的BT分割和TT分割被允许。图8示出了64×64-L(亮度)/32×32-C(色度)流水所不期望的TT分割和BT分割的示例。具有对应32×32色度块的64×64亮度块是用于一些示例实现的硬件处理的基本单元(例如,对于4:2:0色度子采样格式)。图8中的虚线表示MER,而实线表示从128×128CTU的BT分割和TT分割产生的编解码单元。如在图8的每个示例中所看到的,示例BT分割和TT分割中的每一个都导致穿过至少一个MER边界的至少一个编解码单元。也就是说,图8中的示例编解码单元并不全部都在MER内;一个或多个MER也不全部都在每个编解码单元内。
图9示出了对于64×64-L/32×32-C流水的所允许的TT分割和BT分割的示例。同样地,虚线指示MER,而实线表示从BT分割和TT分割产生的编解码单元。如在图9的每个示例中可以看出的,示例BT分割和TT分割中的每一个得到全部都在一个或多个MER内的编解码单元,或者得到全部都在一个编解码单元内的一个或多个MER。即,或者编解码单元全部都在MER内,或者一个或多个MER全部都在每个编解码单元内,从而满足上述条件1和条件2。
在某些示例中,M等于N(例如,MER是正方形的)并且视频编码器200可以以高级别语法将M的值信令通知为log2_parallel_merge_level_minusS。在本示例中,“S”是最小块尺寸(例如,2)的log2。在另一示例中,视频编码器200可以以高级别语法信令通知指示M的值和N的值(例如,log2_parallel_merge_level_M_minusS和log2_parallel_merge_level_N_minusS)两者的语法元素。在本示例中,“S”是最小块尺寸(例如,2)的log2。在另一示例中,M和N的值可以是固定值,不需要信令通知。
在本公开的另一示例中,视频编码器200可以被配置为基于MER的尺寸和当前块的尺寸、根据约束来划分图片的某个块(例如,当前块)。作为一个具体示例,视频编码器200可以被配置为应用以下规则来限制BT划分和TT划分。
-如果W>M且H<=N,则禁止对当前块进行水平BT分割。
-如果W<=M且H>N,则禁止对当前块进行垂直BT分割。
-如果W>M且H<=2*N,则禁止对当前块进行水平TT分割。
-如果W<=2*M且H>N,则禁止对当前块进行垂直TT分割。
在以上示例中,W和H分别是当前块的宽度和高度。因此,在一般示例中,视频编码器200可以被配置为基于将块的宽度和高度与MER的宽度和高度进行比较来禁用水平二叉树分割。相似地,视频编码器200可以被配置为基于将块的宽度和高度与MER的宽度和高度进行比较来禁用垂直二叉树分割。视频编码器200还可以被配置为基于将块的宽度和高度与MER的宽度和高度进行比较来禁用水平三叉树分割,并且基于将块的宽度和高度与MER的宽度和高度进行比较来禁用垂直三叉树分割。
在更具体的示例中,视频编码器200可以被配置为:在W大于M且H小于或等于N的情况下禁止对块进行水平二叉树分割,在W小于或等于M且H大于N的情况下禁止对块进行垂直二叉树分割,在W大于M且H小于或等于2*N的情况下禁止对块进行水平三叉树分割,以及在W小于或等于2*M且H大于N的情况下禁止对块进行垂直三叉树分割。以这种方式,视频编码器200可以对图片进行划分,使得视频编码器200和视频解码器300都可以在全部MER中执行并行合并候选列表构建。从而,可以更快地执行帧间预测处理。
在以上示例中,当某个BT或TT分割被禁用时,视频编码器200将不进行该划分。如果某个BT或TT分割未被禁用,这并不意味着视频编码器200必须进行该分割,只是视频编码器200可以在某些情况下确定进行该分割。
在某些示例实现中,视频编码器200和视频解码器300可以被配置为在图片边界处对BT分割进行如下限制:
-如果当前块的左下角在图片内部,而当前块的右下角在图片边界之外,即,x+W>=picW且y+H<picH,则对当前块禁用水平BT分割。
-如果当前块的左下角在图片边界之外,而当前块的右下角在图片边界内部,即,x+W<picW并且y+H>=picH,则对当前块禁用垂直BT分割。
在以上示例中,picW和picH分别是图片的宽度和高度。变量x和y是当前块的左上角像素/样点的坐标。如果MER被应用,则视频编码器200可以根据在图片边界处对BT分割的经修改的约束来运行,以使得如果垂直BT分割被MER条件禁用,则水平BT分割在图片边界处未被禁用。同样地,如果水平BT分割被MER条件禁用,则垂直BT分割在图片边界处不被禁用。因此,以下适用于图片边界:
-如果W<=M且H>N且x+W>=picW且y+H<picH,则禁止对当前块进行水平BT分割。
-如果W>M且H<=N且x+W<picW且y+H>=picH,则禁止对当前块进行垂直BT分割。
示例3
在本示例中,以上MER条件2在图片边界处被修改如下:
-对于每个包含一个或多个MER的编解码单元,MER全部都在编解码单元中或图片边界之外。
在本示例中,当MER被应用时,不一定需要修改图片边界处的BT和TT限制。
在一个示例中,视频编码器200可以应用以下约束来限制BT划分和TT划分:
-如果y+H<picH且W>M且H<=N,则禁止对当前块进行水平BT分割。
-如果x+W<picW且W<=M且H>N,则禁止对当前块进行垂直BT分割。
-如果W>M且H<=2*N,则禁止对当前块进行水平TT分割。
-如果W<=2*M且H>N,则禁止对当前块进行垂直TT分割。
在本示例中,picW和picH分别是图片的宽度和高度。变量x和变量y是当前块左上角像素的坐标。
用于启用MER的条带条件
在某些示例中,视频编码器200和视频解码器300可以被配置为仅在帧间预测条带中或在启用了块内复制模式的帧内条带中应用MER。因此,在一个示例中,视频编码器200可以仅对帧间预测条带或启用了块内复制模式的帧内条带应用上述对BT分割和TT分割的约束中的一个或多个。
在某些示例中,视频编码器200和视频解码器300可以被配置为只有在条带中启用了合并模式才应用MER。
上述技术可以适用于视频编码器200和视频解码器300两者。在其他示例中,上述技术可以仅适用于视频编码器200。
图10是示出用于对当前块进行编码的一种示例方法的流程图。当前块可以包括当前CU。尽管参考视频编码器200(图1和图3)进行了描述,但是应当理解的是,其他设备可以被配置为执行与图6的方法类似的方法。
在本示例中,视频编码器200最初对当前块进行预测(350)。例如,视频编码器200可以形成针对当前块的预测块。接着,视频编码器200可以计算针对当前块的残差块(352)。为了计算残差块,视频编码器200可以计算原始的未编码的块与针对当前块的预测块之间的差。之后,视频编码器200可以对该残差块的系数进行变换和量化(354)。接下来,视频编码器200可以对残差块的已量化的变换系数进行扫描(356)。在扫描期间或在扫描之后,视频编码器200可以对变换系数进行熵编码(358)。例如,视频编码器200可以使用CAVLC或CABAC来对变换系数进行编码。然后,视频编码器200可以输出块的经熵编码数据(360)。
视频编码器200还可以被配置为根据关于MER的约束执行划分,如上所述。以下参考图12详细描述示例技术。
图11是示出用于对视频数据的当前块进行解码的一种示例方法的流程图。当前块可以包括当前CU。尽管参考视频解码器300(图1和图4)进行了描述,但是应当理解的是,其他设备可以被配置为执行与图7类似的方法。
视频解码器300可以接收用于当前块的经熵编码的数据,例如经熵编码的预测信息和针对对应于当前块的残差块的系数的经熵编码数据(370)。视频解码器300可以对经熵编码的数据进行熵解码,以确定针对当前块的预测信息并且重现残差块的系数(372)。视频解码器300可以例如,使用由针对当前块的预测信息所指示的帧内或帧间预测模式来预测当前块(374),以计算针对当前块的预测块。然后,视频解码器300可以对重现的系数进行逆扫描(376),以创建已量化变换系数的块。接着,视频解码器300可以对变换系数进行逆量化和逆变换以产生残差块(378)。视频解码器300最终可以通过将预测块和残差块进行组合来对当前块进行解码(380)。
图12是示出本公开的另一示例编码方法的流程图。图12的技术可由视频编码器200的一个或多个结构组件执行。
在本公开的一个示例中,视频编码器200可以被配置为确定针对视频数据的图片的一个或多个MER(1200)。视频编码器200还可以根据约束将视频数据的图片划分成编解码单元,其中该约束指定该划分被约束以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中(1210)。之后,视频编码器200可以根据MER对编解码单元进行编码(1220)。例如,视频编码器200可以对MER中的编解码单元并行地执行合并候选列表构建。
在一个示例中,为了对视频数据的图片进行划分,视频编码器200可以被配置为使用二叉树分割或三叉树分割中的一种或多种、根据约束将视频数据的图片划分成编解码单元,其中该约束指定二叉树分割和三叉树分割被约束以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中。
在另一示例中,为了根据约束将视频数据的图片划分成编解码单元,视频编码器200可以被配置为基于MER的尺寸和块的尺寸、根据约束来对图片的块进行划分。例如,视频编码器200可以被配置为:基于将块的宽度和高度与MER的宽度和高度进行比较来禁用水平二叉树分割;基于将块的宽度和高度与MER的宽度和高度进行比较来禁用垂直二叉树分割;基于将块的宽度和高度与MER的宽度和高度进行比较来禁用水平三叉树分割;以及基于将块的宽度和高度与MER的宽度和高度进行比较来禁用垂直三叉树分割。
在另一示例中,MER中的每一个MER的尺寸为M×N个样点,其中M是MER在样点方面的高度,N是MER在样点方面的宽度。在本示例中,块的尺寸是H×W个样点,其中H块在样点方面的高度,W是块在样点方面的宽度。在本示例中,为了根据约束对图片的块进行划分,视频编码器200可以被配置为:在W大于M且H小于或等于N的情况下禁止对块进行水平二叉树分割,在W小于或等于M且H大于N的情况下禁止对块进行垂直二叉树分割,在W大于M且H小于或等于2*N的情况下禁止对块进行水平三叉树分割,以及在W小于或等于2*M且H大于N的情况下禁止对块进行垂直三叉树分割。
在本公开的另一示例中,视频编码器200可以被配置为生成指示M的值和N的值的语法元素。
下面描述本公开的其他说明性示例。
方面1-一种编解码视频数据的方法,该方法包括:确定视频数据的图片的合并估计区域(MER)以使得:对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中;以及对MER中的编解码单元并行地执行运动估计。
方面2-根据方面1所述的方法,其中对MER中的编解码单元并行地执行运动估计包括对MER中的编解码单元并行地执行合并候选列表构建。
方面3-根据方面1所述的方法,其中MER具有N×N的尺寸并且N大于或等于最大二叉树尺寸或最大三叉树尺寸。
方面4-根据方面1所述的方法,其中MER具有M×N的尺寸并且其中该方法还包括:对图片进行划分,使得二叉树划分和三叉树划分中的至少一个受到约束,从而使得对于每个包含一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,MER全部都在该编解码单元中。
方面5-根据方面4所述的方法,其中对图片进行划分包括:基于当前块的宽度和高度来禁用水平二叉树分割;基于当前块的宽度和高度来禁用垂直二叉树分割;基于当前块的宽度和高度来禁用水平三叉树分割;并基于当前块的宽度和高度来禁用垂直三叉树分割。
方面6-根据方面4所述的方法,其中对图片进行划分包括:在当前块的左下角位于图片边界内部而当前块的右下角位于图片边界之外的情况下在图片边界处禁用水平二叉树分割;并且在当前块的左下角位于图片边界之外而当前块的右下角位于图片边界内部的情况下,在图片边界处禁用垂直二叉树分割。
方面7-一种编解码视频数据的方法,该方法包括:确定针对视频数据的图片的一个或多个合并估计区域(MER)以使得:对于每个包含图片边界处的一个或多个编解码单元的MER,这一个或多个编解码单元全部都在该MER中,并且对于每个包含一个或多个MER的编解码单元,这一个或多个MER全部都在该编解码单元中或在图片边界之外;以及对MER中的编解码单元并行地执行运动估计。
方面8-根据方面1-7的任一组合所述的方法,还包括:确定仅对帧间预测条带或启用了块内复制模式的帧内条带使用MER。
方面9-根据方面1-7的任一组合所述的方法,还包括:确定仅对其中合并模式被启用的条带使用MER。
方面10-根据方面1-9中任一项所述的方法,其中编解码包括解码。
方面11-根据方面1-9中任一项所述的方法,其中编解码包括编码。
方面12-一种用于编解码视频数据的设备,该设备包括用于执行方面1-11中任一项所述的方法的一个或多个部件。
方面13-根据方面12所述的设备,其中一个或多个部件包括在电路中实现的一个或多个处理器。
方面14-根据方面12和13中任一项所述的设备,还包括用于存储视频数据的存储器。
方面15-根据方面12-14中任一项所述的设备,还包括被配置为显示已解码的视频数据的显示器。
方面16-根据方面12-15中任一项所述的设备,其中该设备包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
方面17-根据方面12-16中任一项所述的设备,其中该设备包括视频解码器。
方面18-根据方面12-17中任一项所述的设备,其中该设备包括视频编码器。
方面19-一种其上存储有指令的计算机可读存储介质,指令在被执行时使得一个或多个处理器执行方面1-9中任一项所述的方法。
方面20-本公开中描述的技术的任一组合。
应该认识到,根据示例,可以以不同的顺序执行,也可以添加,合并或完全省略(例如,并非所有描述的动作或事件是实践这些技术所必要的)本文描述的技术中的任一种的某些动作或事件。此外,在某些示例中,可以例如通过多线程处理、中断处理或多个处理器并发地执行动作或事件,而不是顺序地执行动作或事件。
在一个或多个示例中,可以以硬件,软件,固件或其任意组合来实现所述功能。如果以软件实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质进行传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质或者通信介质。计算机可读存储介质对应于诸如数据存储介质的有形介质。通信介质包括有助于,例如根据通信协议,将计算机程序从一处传送到另一处的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可以由一台或更多台计算机或一个或多个处理器访问以检索指令、代码和/或数据结构,从而实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,上述计算机可读存储介质可以包括:RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储、或其他磁性存储设备、闪存存储器或任何其他可以用于以指令或数据结构形式存储所需程序代码且可由计算机访问的介质。而且,任何连接都适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或诸如红外,无线电和微波的无线技术从网站、服务器或其他远程源发送指令,则上述同轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电和微波的无线技术都包含于介质的定义。然而,应当理解,计算机可读存储介质和数据存储介质并不包括连接、载波、信号或其他瞬时介质,而是指非瞬时的有形存储介质。本文使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和Blu-ray光盘,其中磁盘通常以磁性方式复制数据,而光盘则通过激光光学方式复制数据。上述的组合也应包括在计算机可读介质的范围内。
可以由一个或多个处理器来执行指令,该一个或多个处理器例如一个或多个信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效的集成或离散逻辑电路。因此,如本文所使用的术语“处理器”和“处理电路”可以指任何前述结构或适合于实现本文所述的技术的任何其他结构。另外,在某些方面,本文所述的功能可以在被配置用于进行编码和解码的专用硬件和/或软件模块内提供,或结合在组合编解码器中。同样,所述技术可以在一个或多个电路或逻辑元件中充分实现。
本公开的技术可以在各种各样的设备或装置中实现,包括无线手机,集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述了多个组件,模块或单元以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同硬件单元来实现。准确地说,如上所述,结合适当的软件和/或固件,多个单元可以组合在编解码器硬件单元中,或者由互操作硬件单元集来提供,包括如上所述的一个或多个处理器。
已经对多种示例进行了描述。这些和其他示例均在所附权利要求的范围内。

Claims (30)

1.一种编码视频数据的方法,所述方法包括:
确定针对视频数据的图片的一个或多个合并估计区域MER;
根据约束将视频数据的所述图片划分为编解码单元,其中所述约束指定所述划分被约束以使得:对于每个包含一个或多个编解码单元的MER,所述一个或多个编解码单元全部都在所述MER中,并且对于每个包含一个或多个MER的编解码单元,所述MER全部都在所述编解码单元中;以及
根据所述MER对所述编解码单元进行编码。
2.根据权利要求1所述的方法,其中,对视频数据的所述图片进行划分包括:
使用二叉树分割或三叉树分割中的一种或多种、根据所述约束将视频数据的所述图片划分为编解码单元,其中,所述约束指定所述二叉树分割和所述三叉树分割被约束以使得:对于每个包含一个或多个编解码单元的MER,所述一个或多个编解码单元全部都在所述MER中,并且对于每个包含一个或多个MER的编解码单元,所述MER全部都在所述编解码单元中。
3.根据权利要求1所述的方法,其中,根据所述约束将视频数据的所述图片划分为编解码单元包括:
基于所述MER的尺寸和块的尺寸根据所述约束来对所述图片的所述块进行划分。
4.根据权利要求3所述的方法,其中,基于所述MER的尺寸和所述块的尺寸根据所述约束来对所述图片的所述块进行划分包括:
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用水平二叉树分割;
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用垂直二叉树分割;
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用水平三叉树分割;以及
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用垂直三叉树分割。
5.根据权利要求3所述的方法,其中,所述MER中的每一个MER的尺寸都是M×N个样点,其中M是所述MER在样点方面的高度,其中N是所述MER在样点方面的宽度,其中所述块的尺寸是H×W个样点,其中H是所述块在样点方面的高度,其中W是所述块在样点方面的宽度,以及其中根据所述约束对所述图片的所述块进行划分包括:
在W大于M且H小于或等于N的情况下禁止对所述块进行水平二叉树分割;
在W小于或等于M且H大于N的情况下禁止对所述块进行垂直二叉树分割;
在W大于M且H小于或等于2*N的情况下禁止对所述块进行水平三叉树分割;以及
在W小于或等于2*M且H大于N的情况下禁止对所述块进行垂直三叉树分割。
6.根据权利要求5所述的方法,还包括:
生成指示M的值和N的值的语法元素。
7.根据权利要求1所述的方法,其中,根据所述MER对所述编解码单元进行编码包括:
对所述MER中的编解码单元并行地执行合并候选列表构建。
8.根据权利要求1所述的方法,还包括:
用相机捕获视频数据的所述图片。
9.一种被配置为编码视频数据的装置,所述装置包括:
被配置为存储视频数据的图片的存储器;以及
与所述存储器通信的一个或多个处理器,所述一个或多个处理器被配置为:
确定针对视频数据的所述图片的一个或多个合并估计区域MER;
根据约束将视频数据的所述图片划分为编解码单元,其中所述约束指定所述划分被约束以使得:对于每个包含一个或多个编解码单元的MER,所述一个或多个编解码单元全部都在所述MER中,并且对于每个包含一个或多个MER的编解码单元,所述MER全部都在所述编解码单元中;以及
根据所述MER对所述编解码单元进行编码。
10.根据权利要求9所述的装置,其中,为了对视频数据的所述图片进行划分,所述一个或多个处理器还被配置为:
使用二叉树分割或三叉树分割中的一种或多种、根据所述约束将视频数据的所述图片划分为编解码单元,其中所述约束指定所述二叉树分割和所述三叉树分割被约束以使得:对于每个包含一个或多个编解码单元的MER,所述一个或多个编解码单元全部都在所述MER中,并且对于每个包含一个或多个MER的编解码单元,所述MER全部都在所述编解码单元中。
11.根据权利要求9所述的装置,其中,为了根据所述约束将视频数据的所述图片划分为编解码单元,所述一个或多个处理器还被配置为:
基于所述MER的尺寸和块的尺寸根据所述约束来对所述图片的所述块进行划分。
12.根据权利要求11所述的装置,其中,为了基于所述MER的尺寸和所述块的尺寸根据所述约束对所述图片的所述块进行划分,所述一个或多个处理器还被配置为:
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用水平二叉树分割;
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用垂直二叉树分割;
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用水平三叉树分割;以及
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用垂直三叉树分割。
13.根据权利要求11所述的装置,其中,所述MER中的每一个MER的尺寸都是M×N个样点,其中M是所述MER在样点方面的高度,其中N是所述MER在样点方面的宽度,其中所述块的尺寸是H×W个样点,其中H是所述块在样点方面的高度,其中W是所述块在样点方面的宽度,并且其中为了根据所述约束对所述图片的所述块进行划分,所述一个或多个处理器还被配置为:
在W大于M且H小于或等于N的情况下禁止对所述块进行水平二叉树分割;
在W小于或等于M且H大于N的情况下禁止对所述块进行垂直二叉树分割;
在W大于M且H小于或等于2*N的情况下禁止对所述块进行水平三叉树分割;以及
在W小于或等于2*M且H大于N的情况下禁止对所述块进行垂直三叉树分割。
14.根据权利要求13所述的装置,其中,所述一个或多个处理器还被配置为:
生成指示M的值和N的值的语法元素。
15.根据权利要求9所述的装置,其中,为了根据所述MER对所述编解码单元进行编码,所述一个或多个处理器还被配置为:
对所述MER中的编解码单元并行地执行合并候选列表构建。
16.根据权利要求9所述的装置,还包括:
被配置为捕获视频数据的所述图片的相机。
17.一种被配置为编码视频数据的装置,所述装置包括:
用于确定针对视频数据的图片的一个或多个合并估计区域(MER)的部件;
用于根据约束将视频数据的所述图片划分为编解码单元的部件,其中,所述约束指定所述划分被约束以使得:对于每个包含一个或多个编解码单元的MER,所述一个或多个编解码单元全部都在所述MER中,并且对于每个包含一个或多个MER的编解码单元,所述MER全部都在所述编解码单元中;以及
用于根据所述MER对所述编解码单元进行编码的部件。
18.根据权利要求17所述的装置,其中,所述用于对视频数据的所述图片进行划分的部件包括:
用于使用二叉树分割或三叉树分割中的一种或多种、根据所述约束将视频数据的所述图片划分为编解码单元的部件,其中,所述约束指定所述二叉树分割和所述三叉树分割被约束以使得:对于每个包含一个或多个编解码单元的MER,所述一个或多个编解码单元全部都在所述MER中,并且对于每个包含一个或多个MER的编解码单元,所述MER全部都在所述编解码单元中。
19.根据权利要求17所述的装置,其中,所述用于根据所述约束将视频数据的所述图片划分为编解码单元的部件包括:
用于基于所述MER的尺寸和块的尺寸根据所述约束来对所述图片的所述块进行划分的部件。
20.根据权利要求19的装置,其中,所述用于基于所述MER的尺寸和所述块的尺寸根据所述约束对所述图片的所述块进行划分的部件包括:
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用水平二叉树分割的部件;
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用垂直二叉树分割的部件;
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用水平三叉树分割的部件;以及
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用垂直三叉树分割的部件。
21.根据权利要求19的装置,其中,所述MER中的每一个MER的尺寸都是M×N个样点,其中M是所述MER在样点方面的高度,其中N是所述MER在样点方面的宽度,其中所述块的尺寸是H×W个样点,其中H是所述块在样点方面的高度,其中W是所述块在样点方面的宽度,并且其中所述用于根据所述约束对所述图片的所述块进行划分的部件包括:
在W大于M且H小于或等于N的情况下禁止对所述块进行水平二叉树分割的部件;
在W小于或等于M且H大于N的情况下禁止对所述块进行垂直二叉树分割的部件;
在W大于M且H小于或等于2*N的情况下禁止对所述块进行水平三叉树分割的部件;以及
在W小于或等于2*M且H大于N的情况下禁止对所述块进行垂直三叉树分割的部件。
22.根据权利要求21所述的装置,还包括:
用于生成指示M的值和N的值的语法元素的部件。
23.根据权利要求17所述的装置,其中,所述用于根据所述MER对所述编解码单元进行编码的部件包括:
用于对所述MER中的编解码单元并行地执行合并候选列表构建的部件。
24.一种存储指令的非暂时性计算机可读存储介质,当所述指令被执行时,使得被配置为编码视频数据的一个或多个处理器:
确定针对视频数据的图片的一个或多个合并估计区域(MER);
根据约束将视频数据的所述图片划分为编解码单元,其中所述约束指定所述划分被约束以使得:对于每个包含一个或多个编解码单元的MER,所述一个或多个编解码单元全部都在所述MER中,并且对于每个包含一个或多个MER的编解码单元,所述MER全部都在所述编解码单元中;以及
根据所述MER对所述编解码单元进行编码。
25.根据权利要求24所述的非暂时性计算机可读存储介质,其中,为了对视频数据的图片进行划分,所述指令还使得所述一个或多个处理器:
使用二叉树分割或三叉树分割中的一种或多种、根据所述约束将视频数据的所述图片划分为编解码单元,其中,所述约束指定所述二叉树分割和所述三叉树分割被约束以使得:对于每个包含一个或多个编解码单元的MER,所述一个或多个编解码单元全部都在所述MER中,并且对于每个包含一个或多个MER的编解码单元,所述MER全部都在所述编解码单元中。
26.根据权利要求24所述的非暂时性计算机可读存储介质,其中,为了根据所述约束将视频数据的所述图片划分为编解码单元,所述指令还使得所述一个或多个处理器:
基于所述MER的尺寸和块的尺寸根据所述约束来对所述图片的所述块进行划分。
27.根据权利要求26所述的非暂时性计算机可读存储介质,其中,为了基于所述MER的尺寸和所述块的尺寸根据所述约束对所述图片的所述块进行划分,所述指令还使得所述一个或多个处理器:
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用水平二叉树分割;
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用垂直二叉树分割;
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用水平三叉树分割;以及
基于将所述块的宽度和高度与所述MER的宽度和高度进行比较来禁用垂直三叉树分割。
28.根据权利要求26所述的非暂时性计算机可读存储介质,其中,所述MER中的每一个MER的尺寸都是M×N个样点,其中M是所述MER在样点方面的高度,其中N是所述MER在样点方面的宽度,其中所述块的尺寸是H×W个样点,其中H是所述块在样点方面的高度,其中W是所述块在样点方面的宽度,并且其中为了根据所述约束对所述图片的所述块进行划分,所述指令还使得所述一个或多个处理器:
在W大于M且H小于或等于N的情况下禁止对所述块进行水平二叉树分割;
在W小于或等于M且H大于N的情况下禁止对所述块进行垂直二叉树分割;
在W大于M且H小于或等于2*N的情况下禁止对所述块进行水平三叉树分割;以及
在W小于或等于2*M且H大于N的情况下禁止对所述块进行垂直三叉树分割。
29.根据权利要求28所述的非暂时性计算机可读存储介质,其中,所述指令还使得所述一个或多个处理器:
生成指示M的值和N的值的语法元素。
30.根据权利要求24所述的非暂时性计算机可读存储介质,其中,为了根据所述MER对所述编解码单元进行编码,所述指令还使得所述一个或多个处理器:
对所述MER中的编解码单元并行地执行合并候选列表构建。
CN202080074747.5A 2019-11-01 2020-10-30 针对多类型树块结构的合并估计区域 Pending CN114731415A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201962929680P 2019-11-01 2019-11-01
US62/929,680 2019-11-01
US201962932950P 2019-11-08 2019-11-08
US62/932,950 2019-11-08
US17/084,119 US11539982B2 (en) 2019-11-01 2020-10-29 Merge estimation region for multi-type-tree block structure
US17/084,119 2020-10-29
PCT/US2020/058253 WO2021087287A1 (en) 2019-11-01 2020-10-30 Merge estimation region for multi-type-tree block structure

Publications (1)

Publication Number Publication Date
CN114731415A true CN114731415A (zh) 2022-07-08

Family

ID=75688353

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080074747.5A Pending CN114731415A (zh) 2019-11-01 2020-10-30 针对多类型树块结构的合并估计区域

Country Status (4)

Country Link
US (1) US11539982B2 (zh)
EP (1) EP4052466A1 (zh)
CN (1) CN114731415A (zh)
WO (1) WO2021087287A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112369022A (zh) * 2018-06-27 2021-02-12 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质
US11606555B2 (en) * 2018-12-20 2023-03-14 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for video coding using uniform segment split in pictures
EP3997869A4 (en) 2019-08-10 2022-10-26 Beijing Bytedance Network Technology Co., Ltd. SUBPICTURE DEPENDENT SIGNALING IN VIDEO STREAMS
EP4022917A4 (en) 2019-10-02 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. SYNTAX FOR SUBPICTURE SIGNALING IN A VIDEO BITSTREAM
WO2021073630A1 (en) 2019-10-18 2021-04-22 Beijing Bytedance Network Technology Co., Ltd. Syntax constraints in parameter set signaling of subpictures
WO2021139806A1 (en) * 2020-01-12 2021-07-15 Beijing Bytedance Network Technology Co., Ltd. Constraints for video coding and decoding
WO2021155862A1 (en) * 2020-02-07 2021-08-12 Beijing Bytedance Network Technology Co., Ltd. Bv list construction process of ibc blocks under merge estimation region
WO2023274360A1 (en) * 2021-06-30 2023-01-05 Beijing Bytedance Network Technology Co., Ltd. Utilization of recursive prediction unit in video coding
US20230079859A1 (en) * 2021-09-13 2023-03-16 Apple Inc. Systems and methods for streaming extensions for video encoding

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT3468197T (pt) 2011-09-09 2022-05-31 Lg Electronics Inc Processo de inter-predição e aparelho para o efeito
KR20210008105A (ko) * 2018-05-30 2021-01-20 디지털인사이트 주식회사 영상 부호화/복호화 방법 및 장치

Also Published As

Publication number Publication date
EP4052466A1 (en) 2022-09-07
US20210136422A1 (en) 2021-05-06
WO2021087287A1 (en) 2021-05-06
US11539982B2 (en) 2022-12-27

Similar Documents

Publication Publication Date Title
CN112204969B (zh) 用于视频编解码的编解码自适应多重变换信息
US20180205946A1 (en) Coding video data using derived chroma mode
CN113853784B (zh) 用于视频译码的多个自适应环路滤波器集合的方法和装置
US11539982B2 (en) Merge estimation region for multi-type-tree block structure
CN113940069A (zh) 用于视频译码中的低频不可分离变换的变换和最后有效系数位置信令
JP7463399B2 (ja) ビデオコーディングのための勾配ベースの予測改良
CN113748679A (zh) 用于视频编解码的帧内块复制合并数据语法
JP2022538061A (ja) ビデオコーディングのための組み合わされたインターおよびイントラ予測モード
TW202123699A (zh) 具有協調的運動場儲存及運動補償的幾何分區模式
CN113994694A (zh) 视频译码中的简化帧内色度模式译码
US10764605B2 (en) Intra prediction for 360-degree video
CN112673636B (zh) 将运动向量取整以自适应运动向量差分辨率及提高视频译码中的运动向量存储精度
CN114223202A (zh) 低频不可分离变换(lfnst)信令
CN113728650A (zh) 自适应环路滤波器集合索引信令
CN113557734A (zh) 视频译码中的系数域块差分脉冲译码调制
TW202038609A (zh) 用於視訊寫碼之共享候選清單及平行候選清單推導
CN114868387B (zh) 在进行视频译码时对块的色度变换跳过和联合色度译码启用
CN113924776A (zh) 使用不同的色度格式的具有未经滤波的参考样本的视频译码
CN113632466A (zh) 视频数据的帧间-帧内预测模式
CN112771860A (zh) 针对视频译码中最差情况的带宽减少的仿射限制
CN113545054A (zh) 视频编解码中子块变换的简化
CN114128283A (zh) 用于视频编解码的自适应参数集的存储器约束
CN114830649A (zh) 推断bdpcm经译码的块中的帧内译码模式
CN114830667A (zh) 视频编解码中用于参考图片重采样的参考图片缩放比例
CN114731394A (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