CN113545050B - 利用三角形预测的视频编解码方法及装置 - Google Patents

利用三角形预测的视频编解码方法及装置 Download PDF

Info

Publication number
CN113545050B
CN113545050B CN202080017666.1A CN202080017666A CN113545050B CN 113545050 B CN113545050 B CN 113545050B CN 202080017666 A CN202080017666 A CN 202080017666A CN 113545050 B CN113545050 B CN 113545050B
Authority
CN
China
Prior art keywords
prediction
list
merge list
motion vector
candidate
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.)
Active
Application number
CN202080017666.1A
Other languages
English (en)
Other versions
CN113545050A (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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Publication of CN113545050A publication Critical patent/CN113545050A/zh
Application granted granted Critical
Publication of CN113545050B publication Critical patent/CN113545050B/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction

Landscapes

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

Abstract

提供了一种用于视频编解码的方法。所述方法包括:将视频图片分割为多个编码单元(CU),其中所述多个CU中的至少一个CU被进一步分割为两个预测单元(PU),所述两个PU包括至少一个三角形形状的PU;基于用于常规合并预测的合并列表构建过程来构建包括多个候选的第一合并列表,其中,每一个候选是运动矢量;以及使用所述第一合并列表中的所述候选的至少一个子集来构建用于所述三角形形状的PU的单向预测合并列表。

Description

利用三角形预测的视频编解码方法及装置
相关申请的交叉引用
本申请要求于2019年1月3日提交的题为“利用三角形预测的视频编解码”的第62/788,131号美国临时申请和于2019年1月4日提交的题为“使用三角形预测的视频编解码”的第62/788,765号美国临时申请的优先权,其全部内容通过引用并入本文用于所有目的。
技术领域
本申请总体涉及视频编解码和压缩,并且具体地但不限于在视频编解码中用于使用三角形预测单元的运动补偿预测的方法和装置。
背景技术
各种电子设备(诸如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流设备等)都支持数字视频。电子设备通过实施视频压缩/解压缩来发送、接收、编码、解码和/或存储数字视频数据。数字视频设备实施视频编解码技术,诸如由通用视频编码(VVC)、联合探索测试模型(JEM)、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分(MPEG-4Part 10)、高级视频编码(AVC)、ITU-T H.265/高效视频编码(HEVC)定义的标准及此类标准的扩展中所描述的那些技术。
视频编解码通常使用利用了视频图像或序列中存在的冗余的预测方法(例如,帧间预测、帧内预测)。视频编解码技术的重要目标在于将视频数据压缩为使用更低比特率的形式,同时避免或最小化视频质量的降级。随着不断发展的视频服务变得可用,需要具有更好编解码效率的编解码技术。
视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测来减少或移除视频数据中固有的冗余。对于基于块的视频编解码,将视频帧划分为一个或更多个条带,每个条带具有多个视频块,视频块也可被称为编码树单元(CTU)。每个CTU可包含一个编码单元(CU)或者递归地被划分为更小的CU直到达到预定义的最小CU尺寸为止。每个CU(也称为叶CU)包含一个或多个变换单元(TU)并且每个CU还包含一个或多个预测单元(PU)。可以以帧内、帧间或IBC模式对每个CU进行编码。视频帧的帧内编码(I)条带中的视频块使用关于同一视频帧内的邻近块中的参考样点的空间预测来进行编码。视频帧的帧间编码(P或B)条带中的视频块可使用关于同一视频帧内的邻近块中的参考样点的空间预测或关于其它先前参考视频帧和/或未来参考视频帧中的参考样点的时间预测。
基于先前已被编码的参考块(例如,邻近块)的空间预测或时间预测得出用于待编码的当前视频块的预测块。找到参考块的过程可通过块匹配算法来完成。表示待编码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据残差块和指向参考帧中的形成预测块的参考块的运动矢量来对帧间编码块进行编码。确定运动矢量的过程通常被称为运动估计。根据帧内预测模式和残差块对帧内编码块进行编码。为了进一步压缩,将残差块从像素域变换到变换域(例如,频域),从而得出残差变换系数,残差变换系数然后可被量化。最初以二维阵列布置的量化的变换系数可被扫描以产生变换系数的一维矢量,然后被熵编码为视频比特流以实现甚至更大的压缩。
然后,将已编码的视频比特流保存于计算机可读存储介质(例如,闪存存储器)中,以由具有数字视频能力的另一电子设备访问或者有线或无线地直接发送到电子设备。然后,电子设备执行视频解压缩(其为与上文描述的视频压缩相反的过程),例如,通过对已编码的视频比特流进行解析来从比特流获得语义元素,并且至少部分地基于从比特流获得的语义元素从已编码的视频比特流将数字视频数据重建为其原始格式,并且电子设备在电子设备的显示器上呈现重建的数字视频数据。
随着数字视频质量从高清变为4K×2K或甚至8K×4K,待编码/解码的视频数据量呈指数增长。在如何在保持解码视频数据的图像质量的同时能够更有效率地对视频数据进行编码/解码方面,是一个长久挑战。
在联合视频专家组(JVET)会议中,JVET定义了通用视频编码(VVC)的第一草案和VVC测试模型1(VTM1)编码方法。决定包括使用二划分和三划分编码块结构的具有嵌套多类型树的四叉树作为VVC的初始新编码特征。从那时起,在JVET会议期间已经研发了用于实现编解码方法的参考软件VTM和草拟VVC解码过程。
发明内容
一般来说,本公开描述了在视频编解码中与使用三角形预测单元的运动补偿预测相关的技术的示例。
根据本发明的第一方面,提供一种用于视频编解码的方法,包括:将视频图片分割为多个编码单元(CU),其中所述多个CU中的至少一个CU被进一步分割为两个预测单元(PU),所述两个PU包括至少一个三角形形状的PU;基于用于常规合并预测的合并列表构建过程来构建包括多个候选的第一合并列表,其中,每一个候选是运动矢量;以及使用所述第一合并列表中的所述候选的至少一个子集来构建用于所述三角形形状的PU的单向预测合并列表。
根据本发明的第二方面,提供一种用于视频编解码的方法,包括:将视频图片分割为多个编码单元(CU),其中所述多个CU中的至少一个CU被进一步分割为两个预测单元(PU),所述两个PU包括至少一个三角形形状的PU;以及利用存储器成本降低算法处理所述三角形形状的PU,以便使所述三角形形状的PU准备好用于双向预测。
根据本公开的第三方面,提供了一种用于对视频进行编解码的装置,包括:处理器;以及存储器,被配置为存储能够由处理器执行的指令;其中处理器在执行所述指令时被配置为:将视频图片分割为多个编码单元(CU),其中所述多个CU中的至少一个CU被进一步分割为两个预测单元(PU),所述两个PU包括至少一个三角形形状的PU;基于用于常规合并预测的合并列表构建过程来构建包括多个候选的第一合并列表,其中,每一个候选是运动矢量;以及使用所述第一合并列表中的所述候选的至少一个子集来构建用于所述三角形形状的PU的单向预测合并列表。
根据本公开的第四方面,提供了一种用于对视频进行编解码的装置,包括:处理器;以及存储器,被配置为存储能够由处理器执行的指令;其中处理器在执行所述指令时被配置为:将视频图片分割为多个编码单元(CU),其中所述多个CU中的至少一个CU进一步被分割为两个预测单元(PU),所述两个PU包括至少一个三角形形状的PU;以及利用存储器成本降低算法处理所述三角形形状的PU,以便使所述三角形形状的PU准备好用于双向预测。
附图说明
将通过参照附图中所示的具体示例来呈现本公开的示例的更详细的描述。鉴于这些附图仅描绘了一些示例,并且因此不被认为是对范围的限制,将通过使用附图利用附加的特征和细节来描述和解释示例。
图1是示出根据本公开的一些实施方式的示例性视频编码和解码系统的框图。
图2是示出根据本公开的一些实施方式的示例性视频编码器的框图。
图3是示出根据本公开的一些实施方式的示例性视频解码器的框图。
图4是示出根据本公开的一些实施方式的四叉树加二叉树(QTBT)结构的示意图。
图5是示出根据本公开的一些实施方式的划分为CTU的图片的示例的示意图。
图6是示出根据本公开的一些实施方式的多类型树划分模式的示意图。
图7是示出根据本公开的一些实施方式的将CU划分为三角形预测单元的示意图。
图8是示出根据本公开的一些实施方式的邻近块的位置的示意图。
图9是示出根据本公开的一些实施方式的利用加权因子集合进行加权的示例的示意图。
图10是示出根据本公开的一些实施方式的PU分区的示例的示意图。
图11是示出根据本公开的一些实施方式的空间合并候选的位置的示意图。
图12是示出根据本公开的一些实施方式的时间合并候选的运动矢量缩放的示意图。
图13是示出根据本公开的一些实施方式的时间合并候选的候选位置的示意图。
图14是示出根据本公开的一些实施方式的用于视频编解码的示例性装置的框图。
图15是示出根据本公开的一些实施方式的用于使用三角形预测单元的运动补偿预测的视频编解码的示例性过程的流程图。
图16是示出根据本公开的一些实施方式的用于使用三角形预测单元的运动补偿预测的视频编解码的示例性过程的流程图。
具体实施方式
现在将详细参照具体实施方式,在附图中示出具体实施方式的示例。在以下详细描述中,阐述了很多非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员将显而易见的是,可使用各种替代方案。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可在具有数字视频能力的许多类型的电子设备上实现。
贯穿本说明书对“一个实施例”、“实施例”、“示例”、“一些实施例”、“一些示例”或类似语言的引用表示所描述的特定特征、结构或特性被包括在至少一个实施例或示例中。示例除非另有明确说明,否则结合一个或一些实施例描述的特征、结构、元件或特性也适用于其它实施例。
在整个公开内容中,除非另有明确说明,否则术语“第一”、“第二”、“第三”等都用作仅用于提及相关元件(例如,设备、组件、组合物、步骤等)的命名,而不指示任何空间或时间顺序。例如,“第一设备”和“第二设备”可指两个单独形成的设备,或者同一设备的两个部分、组件或操作状态,并且可被任意命名。
如本文所使用的,取决于上下文,术语“如果”或“当……时”可被理解为表示“在……时”或“响应于……”。这些术语如果出现在权利要求中,则可不指示相关限制或特征是有条件的或可选的。
术语“模块”、“子模块”、“电路”、“子电路”、“电路系统”、“子电路系统”、“单元”或“子单元”可包括存储可由一个或更多个处理器执行的代码或指令的存储器(共享、专用或组合)。模块可包括具有或不具有存储的代码或指令的一个或更多个电路。模块或电路可包括直接或间接连接的一个或更多个组件。这些组件可以或可不物理地附接到彼此或彼此相邻定位。
单元或模块可纯粹通过软件、纯粹通过硬件或通过硬件和软件的组合来实现。在纯软件实施方式中,例如,单元或模块可包括直接或间接链接在一起的功能上相关的代码块或软件组件,以便执行特定功能。
图1是示出根据本公开的一些实施方式的用于对视频块进行编码和解码的示例性系统10的框图。如图1中所示,系统10包括源设备12,源设备12生成并编码稍后将由目标设备14进行解码的视频数据。源设备12和目标设备14可以是各种各样的电子设备中的任何电子设备,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示器设备、数字媒体播放器、视频游戏机、视频流传输设备等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
在一些实施方式中,目标设备14可经由链路16接收待解码的编码视频数据。链路16可以是能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可以是使源设备12能够实时地将编码视频数据直接发送到目标设备14的通信介质。编码视频数据可根据通信标准(诸如无线通信协议)被调制,并且被发送到目标设备14。通信介质可以是任何无线或有线通信介质,诸如射频(RF)频谱或一个或更多个物理传输线。通信介质可形成基于分组的网络(例如,局域网、广域网或诸如互联网的全球网)的一部分。通信介质可包括路由器、交换机、基站或可有利于促进从源设备12到目标设备14的通信的任何其它装置。
在一些其它实施方式中,编码视频数据可从输出接口22被发送到存储设备32。随后,存储设备32中的编码视频数据可由目标设备14经由输入接口28被访问。存储设备32可包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其它合适的数字存储介质。在另一示例中,存储设备32可对应于文件服务器或可保持由源设备12生成的编码视频数据的另一中间存储设备。目标设备14可从存储设备32经由流传输或下载来访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、FTP服务器、网络附属存储(NAS)设备或本地磁盘驱动器。目标设备14可通过适合于访问存储在文件服务器上的编码视频数据的任何标准数据连接来访问编码视频数据,标准数据连接包括无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或无线信道和有线连接两者的组合。编码视频数据从存储设备32的传输可以是流传输、下载传输或流传输和下载传输两者的组合。
如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可包括诸如以下项的源或此类源的组合:视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可以是相机电话或视频电话。然而,本公开中所描述的实施方式通常可适用于视频编解码,并且可应用于无线和/或有线应用。
可由视频编码器20对捕获、预先捕获或计算机生成的视频进行编码。可经由源设备12的输出接口22直接将编码视频数据发送到目标设备14。还可(或可选地)将编码视频数据存储到存储设备32上以供稍后被目标设备14或其它设备访问,以用于解码和/或回放。输出接口22还可进一步包括调制解调器和/或发送器。
目标设备14包括输入接口28、视频解码器30和显示器设备34。输入接口28可包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16通信传送或在存储设备32上提供的编码视频数据可包括由视频编码器20生成的各种语义元素以供视频解码器30在对视频数据进行解码时使用。此类语义元素可被包括在通信介质上发送、存储在存储介质上或存储在文件服务器上的编码视频数据内。
在一些实施方式中,目标设备14可包括显示器设备34,显示器设备34可以是集成显示器设备或被配置为与目标设备14通信的外部显示器设备。显示器设备34将解码视频数据显示给用户,并且可以是各种显示器设备中的任何显示器设备,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示器设备。
视频编码器20和视频解码器30可根据专有标准或行业标准(例如,VVC、HEVC、MPEG-4、Part 10、高级视频编码(AVC))或此类标准的扩展进行操作。应当理解,本公开不限于特定的视频编码/解码标准,并且可适用于其它视频编码/解码标准。通常认为源设备12的视频编码器20可被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行编码。类似地,还通常认为目标设备14的视频解码器30可被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行解码。
视频编码器20和视频解码器30可分别被实现为各种合适的编码器电路中的任何电路,诸如一个或更多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当部分地以软件实现时,电子设备可将用于软件的指令存储于合适的非暂时性计算机可读介质中,并且使用一个或更多个处理器执行硬件中的指令以执行本公开中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可被包括在一个或更多个编码器或解码器中,编码器或解码器中的任一者可被集成为相应设备中的组合式编码器/解码器(CODEC)的一部分。
图2是示出根据本公开中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可执行对视频帧内的视频块的帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测以减少或移除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编码依赖于时间预测以减少或移除视频序列的相邻视频帧或图片内的视频数据中的时间冗余。
如图2中所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓冲器(DPB)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41进一步包括运动估计单元42、运动补偿单元44、分割单元45、帧内预测处理单元46和帧内块复制(IBC)单元48和帧内/帧间模式决定单元49。在一些实施方式中,视频编码器20还包括用于视频块重建的反量化单元58、逆变换处理单元60和加法器62。去块滤波器可位于加法器62与DPB 64之间以对块边界进行滤波以从重建视频去除块效应。除了去块滤波器之外,还可使用环路滤波器63来对加法器62的输出进行滤波。视频编码器20可采取固定或可编程硬件单元的形式,或者可分散在固定或可编程硬件单元中的一个或更多个中。
视频数据存储器40可存储将由视频编码器20的组件编码的视频数据。视频数据存储器40中的视频数据可例如从视频源18获得。DPB 64是存储供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用的参考视频数据的缓冲器。视频数据存储器40和DPB 64可以是各种存储器设备中的任何存储器设备。在各种示例中,视频数据存储器40可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。
如图2中所示,在接收到视频数据之后,预测处理单元41内的分割单元45将视频数据分割为视频块。此分割还可包括根据与视频数据相关联的预定义的划分结构(诸如四叉树结构)将视频帧分割为条带、区块(tile)或其它更大编码单元(CU)。视频帧可被划分为多个视频块(或被称为区块的视频块集合)。预测处理单元41可基于误差结果(例如,编码速率和失真等级)为当前视频块选择多个可行预测编码模式中的一个,诸如多个帧内预测编码模式中的一个或者多个帧间预测编码模式中的一个。预测处理单元41可将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建编码块以用于随后作为参考帧的一部分使用。预测处理单元41还将语义元素(诸如运动矢量、帧内模式指示符、分割信息和其它此类语义信息)提供给熵编码单元56。
为了选择用于当前视频块的合适的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以与和待编码的当前块在同一帧中的一个或更多个邻近块相关地执行当前视频块的帧内预测编码以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44与一个或更多个参考帧中的一个或更多个预测块相关地执行当前视频块的帧间预测编码以提供时间预测。视频编码器20可执行多个编码遍次,例如,来为视频数据的每个块选择合适的编码模式。
在一些实施方式中,运动估计单元42通过根据视频帧的序列内的预定模式生成运动矢量来确定用于当前视频帧的帧间预测模式,运动矢量指示当前视频帧内的视频块的预测单元(PU)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成估计针对视频块的运动的运动矢量的过程。例如,运动矢量可指示当前视频帧或图片内的视频块的PU相对于与当前帧内正被编码的当前块(或其它编码单元)相关的参考帧内的预测块(或其它编码单元)的位移。预定模式可将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以与由运动估计单元42确定用于帧间预测的运动矢量类似的方式确定用于帧内BC编码的矢量(例如,块矢量),或可利用运动估计单元42确定块矢量。
在像素差方面,预测块是被认为与待编码视频块的PU紧密匹配的参考帧的块,像素差可由绝对差总和(SAD)、平方差总和(SSD)或其它差度量确定。在一些实施方式中,视频编码器20可计算用于DPB 64中存储的参考帧的子整数像素位置的值。例如,视频编码器20可对参考帧的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行插值。因此,运动估计单元42可相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
运动估计单元42通过以下来计算针对帧间预测编码帧中的视频块的PU的运动矢量:将PU的位置与从第一参考帧列表(例如,列表0)或第二参考帧列表(例如,列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个标识存储在DPB 64中的一个或更多个参考帧。运动估计单元42将计算的运动矢量发送到运动补偿单元44,然后发送到熵编码单元56。
由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动矢量提取或生成预测块。在接收到针对当前视频块的PU的运动矢量后,运动补偿单元44可在参考帧列表中的一个参考帧列表中定位运动矢量所指向的预测块,从DPB 64取回预测块,并且将预测块转发到加法器50。然后,加法器50通过从正被编码的当前视频块的像素值减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的像素差值可包括亮度差分量或色度差分量或两者。运动补偿单元44还可生成与视频帧的视频块相关联的语义元素以供视频解码器30在对视频帧的视频块进行解码时使用。语义元素可包括例如定义用于标识预测块的运动矢量的语义元素、指示预测模式的任何标记、或本文描述的任何其它语义信息。应注意,运动估计单元42和运动补偿单元44可高度集成,但它们出于概念目的而单独说明。
在一些实施方式中,帧内BC单元48可以以与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式生成矢量并提取预测块,但是这些预测块在与正被编码的当前块的同一帧中,并且这些矢量被称为块矢量而非运动矢量。具体地,帧内BC单元48可确定将用于对当前块进行编码的帧内预测模式。在一些示例中,帧内BC单元48可例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且通过率失真分析来测试它们的性能。接下来,帧内BC单元48可在各种测试的帧内预测模式中选择合适的帧内预测模式以使用并相应地生成帧内模式指示符。例如,帧内BC单元48可使用率失真分析针对各种测试的帧内预测模式计算率失真值,并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为合适的帧内预测模式来使用。率失真分析大体上确定编码块与被编码以生成编码块的原始未编码块之间的失真(或误差)量、以及用于产生编码块的比特率(即,比特数量)。帧内BC单元48可从针对各种编码块的失真和速率计算比率,以确定哪个帧内预测模式展现针对块的最佳率失真值。
在其它示例中,帧内BC单元48可全部或部分地使用运动估计单元42和运动补偿单元44来执行根据本文描述的实施方式的用于帧内BC预测的此类功能。在任一情况下,对于帧内块复制,在像素差方面,预测块可以是被认为与待编码的块紧密匹配的块,像素差可由绝对差总和(SAD)、平方差总和(SSD)或其它差度量确定,并且预测块的识别可包括计算针对子整数像素位置的值。
无论预测块是来自根据帧内预测的同一帧还是来自根据帧间预测的不同帧,视频编码器20可通过从正被编码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差视频块。形成残差视频块的像素差值可包括亮度分量差和色度分量差两者。
作为如上文所描述的由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内BC单元48执行的帧内块复制预测的替代方案,帧内预测处理单元46可对当前视频块进行帧内预测。具体地,帧内预测处理单元46可确定帧内预测模式以用于对当前块进行编码。为此,帧内预测处理单元46可例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且帧内预测处理单元46(或在一些示例中,模式选择单元)可从测试的帧内预测模式中选择合适的帧内预测模式来使用。帧内预测处理单元46可将指示针对块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可将指示选择的帧内预测模式的信息编码到比特流中。
在预测处理单元41经由帧间预测或帧内预测确定针对当前视频块的预测块之后,加法器50通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可被包括在一个或更多个变换单元(TU)中并且提供给变换处理单元52。变换处理单元52使用变换(诸如离散余弦变换(DCT)或概念上类似的变换)将残差视频数据变换为残差变换系数。
变换处理单元52可将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小比特率。量化过程还可减小与系数中的一些或全部相关联的比特深度。可通过调整量化参数来修改量化程度。在一些示例中,量化单元54可随后执行对包括量化的变换系数的矩阵的扫描。可选地,熵编码单元56可执行扫描。
在量化之后,熵编码单元56使用例如上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语义的上下文自适应二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码或另一熵编码方法或技术,将量化的变换系数熵编码成视频比特流。然后,编码的比特流可被发送到视频解码器30,或存档于存储设备32中以供稍后发送到视频解码器30或由视频解码器30取回。熵编码单元56还可对用于正被编码的当前视频帧的运动矢量和其它语义元素进行熵编码。
反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重建残差视频块以用于生成用于预测其它视频块的参考块。如上文指出的,运动补偿单元44可从存储在DPB 64中的帧的一个或更多个参考块生成运动补偿预测块。运动补偿单元44还可将一个或更多个插值滤波器应用于预测块以计算子整数像素值以用于在运动估计时使用。
加法器62将重建的残差块加到由运动补偿单元44产生的运动补偿预测块来生成参考块以存储在DPB 64中。然后,参考块可由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块以对后续视频帧中的另一视频块进行帧间预测。
在使用视频编码器20进行视频编码的示例中,将视频帧分割为块以进行处理。对于每个给定的视频块,基于帧间预测或帧内预测形成预测。在帧间预测中,可基于来自先前重建帧的像素,通过运动估计和运动补偿来形成预测因子或预测块。在帧内预测中,可基于当前帧中的重建像素来形成预测因子。通过模式决定,可选择最佳预测因子来预测当前块。
将预测残差或残差块(即,当前块与其预测因子之间的差)发送到变换模块,例如,变换处理单元52。然后将变换系数发送到量化模块(例如,量化单元54)以进行熵约简。将量化的系数反馈到熵编解码模块(例如,熵编码单元56)以产生压缩的视频比特流。如图2中所示,来自帧间和/或帧内预测模块的预测相关信息(诸如,块分割信息、运动矢量、参考图片索引和帧内预测模式等)也经过熵编解码模块(例如,熵编码单元56),然后被保存到比特流中。
在视频编码器20中,可能需要解码器相关模块以便重建像素用于预测目的。首先,通过反量化和逆变换重建预测残差。然后将重建的预测残差与预测因子组合以产生针对当前块的未经滤波的重建像素。
为了提高编解码效率和视觉质量,通常使用环路滤波器63。例如,去块滤波器在AVC、HEVC以及VVC中可用。在HEVC中,可定义被称为SAO(样点自适应偏移)的额外环路滤波器以进一步改进编解码效率。在VVC中,可采用被称为ALF(自适应环路滤波器)的环路滤波器63。
这些环路滤波器操作是可选的。打开环路滤波器通常有助于提高编解码效率和视觉质量。它们也可在编码器决定节省计算复杂度时被关闭。
应注意,帧内预测通常基于未经滤波的重建像素,而帧间预测基于经过滤波的重建像素(如果这些滤波器被编码器打开)。
图3是示出根据本公开的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81进一步包括运动补偿单元82、帧内预测单元84、帧内BC单元85和帧内/帧间模式选择单元87。视频解码器30可执行与上文结合图2关于视频编码器20所描述的编码过程基本互逆的解码过程。例如,运动补偿单元82可基于从熵解码单元80接收的运动矢量生成预测数据,而帧内预测单元84可基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
在使用视频解码器30进行视频解码的示例中,通过熵解码单元80对接收的比特流进行解码以推导量化的系数等级(或量化的系数)和预测相关信息。然后通过反量化单元86和逆变换处理单元88来处理量化的系数等级以获得重建的残差块。基于解码的预测相关信息,通过帧内预测或运动补偿过程来形成预测因子或预测块。通过对重建的残差块和预测因子求和来获得未经滤波的重建像素。在打开环路滤波器的情况下,对这些像素执行滤波操作来推导最终重建视频以用于输出。
在一些示例中,视频解码器30的单元可被分派任务以执行本公开的实施方式。此外,在一些示例中,本公开的实施方式可分散在视频解码器30的多个单元中的一个或更多个单元中。例如,帧内BC单元85可单独地或与视频解码器30的其它单元(诸如,运动补偿单元82、帧内预测单元84和熵解码单元80)组合地执行本公开的实施方式。在一些示例中,视频解码器30可不包括帧内BC单元85,并且帧内BC单元85的功能可由预测处理单元81的其它组件(诸如运动补偿单元82)执行。
视频数据存储器79可存储将由视频解码器30的其它组件进行解码的视频数据,诸如编码视频比特流。存储在视频数据存储器79中的视频数据可例如从存储设备32、从本地视频源(诸如相机)、经由视频数据的有线或无线网络通信,或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)获得。视频数据存储器79可包括存储来自编码视频比特流的编码视频数据的编码图片缓冲器(CPB)。视频解码器30的解码图片缓冲器(DPB)92存储参考视频数据以供视频解码器30(例如,以帧内或帧间预测编码模式)在对视频数据进行解码时使用。视频数据存储器79和DPB 92可由各种存储器设备中的任何存储器设备形成,诸如动态随机存取存储器(DRAM)(包括同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器设备。出于说明性目的,视频数据存储器79和DPB 92在图3中描绘为视频解码器30的两个不同组件。但是对于本领域的技术人员将显而易见的是,视频数据存储器79和DPB 92可由同一存储器设备或单独存储器设备提供。在一些示例中,视频数据存储器79可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。
在解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语义元素的编码视频比特流。视频解码器30可在视频帧级和/或视频块级接收语义元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化的系数、运动矢量或帧内预测模式指示符、以及其它语义元素。然后,熵解码单元80将运动矢量和其它语义元素转发到预测处理单元81。
当视频帧被编码为帧内预测编码(I)帧或用于其它类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测单元84可基于标示的帧内预测模式和来自当前帧的先前解码块的参考数据来生成用于当前视频帧的视频块的预测数据。
当视频帧被编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其它语义元素产生针对当前视频帧的视频块的一个或更多个预测块。预测块中的每一个可从参考帧列表中的一个参考帧列表内的参考帧产生。视频解码器30可基于存储在DPB 92中的参考帧使用默认构建技术来构建参考帧列表,例如,列表0和列表1。
在一些示例中,当根据本文描述的帧内BC模式对视频块进行编码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收的块矢量和其它语义元素产生针对当前视频块的预测块。预测块可在由视频编码器20定义的与当前视频块的同一图片的重建区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动矢量和其它语义元素来确定针对当前视频帧的视频块的预测信息,然后使用该预测信息产生针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语义元素中的一些语义元素来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、用于针对帧的参考帧列表中的一个或更多个的构建信息、用于帧的每个帧间预测编码视频块的运动矢量、用于帧的每个帧间预测编码视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
类似地,帧内BC单元85可使用接收到的语义元素中的一些语义元素,例如标记,以确定当前视频块是使用帧内BC模式预测的、帧的哪些视频块在重建区域内且应被存储在DPB 92中的构建信息、用于帧的每个帧内BC预测视频块的块矢量、用于帧的每个帧内BC预测视频块的帧内BC预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
运动补偿单元82还可使用如由视频编码器20在视频块的编码期间使用的插值滤波器执行插值,以计算针对参考块的子整数像素的插值。在这种情况下,运动补偿单元82可从接收到的语义元素确定由视频编码器20使用的插值滤波器,并且使用这些插值滤波器来产生预测块。
反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的相同的量化参数以确定量化程度,来对在比特流中提供且由熵解码单元80熵解码的量化的变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。
在运动补偿单元82或帧内BC单元85基于矢量和其它语义元素生成针对当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块与由运动补偿单元82和帧内BC单元85生成的对应预测块相加,来重建针对当前视频块的解码视频块。环路滤波器91可位于加法器90与DPB 92之间以进一步处理解码视频块。然后,将给定帧中的解码视频块存储在DPB92中,DPB 92存储用于接下来的视频块的后续运动补偿的参考帧。DPB 92或与DPB 92分离的存储器设备还可存储解码视频以用于稍后呈现在显示器设备(诸如,图1的显示器设备34)上。
在典型的视频编码过程中,视频序列通常包括帧或图片的有序集合。每一帧可包括三个样点阵列,表示为SL、SCb和SCr。SL是亮度样点的二维阵列。SCb是Cb色度样点的二维阵列。SCr是Cr色度样点的二维阵列。在其它情况下,帧可以是单色的,因此仅包括亮度样点的一个二维阵列。
图4是示出根据本公开的一些实施方式的四叉树加二叉树(QTBT)结构的示意图。
上文所提及的视频编码/解码标准(诸如VVC、JEM、HEVC、MPEG-4第10部分)在概念上类似。例如,它们都使用基于块的处理。以下阐述一些标准中的块分割方案。
HEVC是以基于混合块的运动补偿变换编码架构为基础。用于压缩的基本单元被称为编码树单元(CTU)。对于4:2:0色度格式,最大CTU尺寸被定义为多达64乘64亮度像素和两个32乘32色度像素的块。每个CTU可包含一个编码单元(CU)或递归地被划分为四个较小CU,直到达到预定义的最小CU尺寸为止。每个CU(也称为叶CU)包含一个或多个预测单元(PU)和变换单元(TU)树。
一般来说,除单色内容外,CTU可包括一个亮度编码树块(CTB)和两个对应的色度CTB;CU可包括一个亮度编码块(CB)和两个对应的色度CB;PU可包括一个亮度预测块(PB)和两个对应的色度PB;并且TU可包括一个亮度变换块(TB)和两个对应的色度TB。然而,可能发生例外,这是因为对于亮度和色度两者,最小TB尺寸是4×4(即,对于4:2:0颜色格式不支持2×2色度TB)并且不管对应的帧内亮度CB中的帧内亮度PB的数量如何,每个帧内色度CB总是仅具有一个帧内色度PB。
对于帧内CU,亮度CB可通过一个或四个亮度PB预测,并且两个色度CB中的每一个色度CB总是通过一个色度PB预测,其中,每个亮度PB具有一个帧内亮度预测模式,并且两个色度PB共享一个帧内色度预测模式。此外,对于帧内CU,TB尺寸不能大于PB尺寸。在每个PB中,应用帧内预测以从TB的邻近重建样点预测PB内部的每个TB的样点。对于每个PB,除了33个方向帧内预测模式之外,还支持DC模式和平面模式以分别预测平坦区域和逐渐变化的区域。
对于每个帧间PU,可选择包括帧间、跳过和合并的三种预测模式中的一个。一般而言,引入运动矢量竞争(MVC)方案以从包括空间运动候选和时间运动候选的给定候选集合中选择运动候选。对于运动估计的多个参考使得在2个可能的重建参考图片列表(即列表0和列表1)中找到最佳参考。对于帧间模式(称为AMVP模式,其中,AMVP代表高级运动矢量预测),发送帧间预测指示符(列表0、列表1或双向预测)、参考索引、运动候选索引、运动矢量差(MVD)和预测残差。对于跳过模式和合并模式,仅发送合并索引,并且当前PU从由编码的合并索引所参考的邻近PU继承帧间预测指示符、参考索引和运动矢量。在跳过编码的CU的情况下,残差信号也被省略。
联合探索测试模型(JEM)建立在HEVC测试模型之上。HEVC的基本编码和解码流程在JEM中保持不变;然而,最重要的模块(包括块结构、帧内和帧间预测、残差变换、环路滤波器和熵编解码的模块)的设计元素被稍微修改,并且添加了另外的编码工具。JEM中包括以下新的编码特征。
在HEVC中,通过使用表示为编码树的四叉树结构将CTU划分为CU以适应各种局部特性。使用图片间(时间)预测还是使用图片内(空间)预测对图片区域进行编码的决定是在CU级做出的。可根据PU划分类型进一步将每个CU划分为一个、两个或四个PU。在一个PU内部,应用相同的预测过程,并且基于PU将相关信息发送到解码器。在通过基于PU划分类型应用预测过程而获得残差块之后,可根据CU的类似于编码树的另一四叉树结构将CU分割为变换单元(TU)。HEVC结构的关键特征之一是它具有包括CU、PU和TU的多个分割概念。
QTBT结构去除了多个分割类型的概念,即,它去除了对CU、PU和TU概念的区分,并且支持对于CU分割形状的更大灵活性。在QTBT块结构中,CU可具有正方形或矩形形状。如图4中所示,首先通过四元树(即,四叉树)结构对编码树单元(CTU)进行分割。可通过二叉树结构进一步对四叉树叶节点进行分割。在二叉树划分中存在两种划分类型:对称水平划分和对称垂直划分。二叉树叶节点被称为编码单元(CU),并且这样的分区用于预测和变换处理而不再进行任何进一步分割。这意味着CU、PU和TU在QTBT编码块结构中具有相同的块尺寸。在JEM中,CU有时由不同颜色分量的编码块(CB)组成,例如,在4:2:0色度格式的P和B条带的情况下,一个CU包含一个亮度CB和两个色度CB,并且CU有时由单个分量的CB组成,例如,在I条带的情况下,一个CU仅包含一个亮度CB或仅包含两个色度CB。
针对QTBT分割方案定义以下参数。
-CTU尺寸:四叉树的根节点尺寸,与HEVC中的概念相同;
-MinQTSize:允许的最小四叉树叶节点尺寸;
-MaxBTSize:允许的最大二叉树根节点尺寸;
-MaxBTDepth:允许的最大二叉树深度;
-MinBTSize:允许的最小二叉树叶节点尺寸。
在QTBT分割结构的一个示例中,CTU尺寸被设置为128×128亮度样点与两个对应的64×64色度样点块(具有4:2:0色度格式),MinQTSize被设置为16×16,MaxBTSize被设置为64×64,MinBTSize(针对宽度和高度两者)被设置为4×4,并且MaxBTDepth被设置为4。首先将四叉树分割应用于CTU以产生四叉树叶节点。四叉树叶节点可具有从16×16(即,MinQTSize)到128×128(即,CTU尺寸)的尺寸。如果四叉树叶节点是128×128,则由于尺寸超过MaxBTSize(即,64×64),所以它将不通过二叉树被进一步划分。否则,四叉树叶节点可通过二叉树被进一步分割。因此,四叉树叶节点也是二叉树的根节点,并且其二叉树深度为0。当二叉树深度达到MaxBTDepth(即,4)时,不考虑进一步划分。当二叉树节点具有等于MinBTSize的宽度(即,4)时,不考虑进一步水平划分。类似地,当二叉树节点具有等于MinBTSize的高度时,不考虑进一步垂直划分。通过预测和变换处理进一步处理二叉树的叶节点,而不再进行任何进一步分割。在JEM中,最大CTU尺寸为256×256亮度样点。
图4示出了通过使用QTBT方案的块分割的示例以及对应的树表示。实线指示四叉树划分,并且虚线指示二叉树划分。如图4中所示,首先通过四叉树结构对编码树单元(CTU)400进行分割,并且通过四叉树结构或二叉树结构进一步对四个四叉树叶节点402、404、406、408中的三个进行分割。例如,通过四叉树划分进一步对四叉树叶节点406进行分割;通过二叉树划分将四叉树叶节点404进一步分割为两个叶节点404a、404b;并且还通过二叉树划分进一步对四叉树叶节点402进行分割。在二叉树的每个划分(即,非叶)节点中,标示一个标记以指示使用哪个划分类型(即,水平或垂直),其中0指示水平划分并且1指示垂直划分。例如,对于四叉树叶节点404,标示为0以指示水平划分,并且对于四叉树叶节点402,标示为1以指示垂直划分。对于四叉树划分,不需要指示划分类型,这是因为四叉树划分总是水平和垂直地对块进行划分以产生具有相等尺寸的4个子块。
另外,QTBT方案支持亮度和色度具有单独的QTBT结构的能力。当前,对于P和B条带,一个CTU中的亮度和色度CTB共享同一QTBT结构。然而,对于I条带,亮度CTB通过QTBT结构被分割为亮度CU,并且色度CTB通过另一QTBT结构被分割为色度CU。这表示I条带中的CU由亮度分量的编码块或两个色度分量的编码块组成,并且P或B条带中的CU由全部三个颜色分量的编码块组成。
在联合视频专家组(JVET)会议中,JVET定义了通用视频编码(VVC)的第一草案和VVC测试模型1(VTM1)编码方法。决定包括使用二划分和三划分编码块结构的具有嵌套多类型树的四叉树作为VVC的初始新编码特征。
在VVC中,图片分割结构将输入视频划分为被称为编码树单元(CTU)的块。使用具有嵌套多类型树结构的四叉树将CTU划分为编码单元(CU),其中叶编码单元(CU)定义了共享相同的预测模式(例如,帧内或帧间)的区域。这里,术语“单元”定义了图像的覆盖所有分量的区域;术语“块”用于定义覆盖特定分量(例如亮度)的区域,并且在考虑色度采样格式(诸如4:2:0)时可在空间位置上不同。
将图片分割为CTU
图5是示出根据本公开的一些实施方式的划分为CTU的图片的示例的示意图。
在VVC中,图片被划分为CTU序列,并且CTU概念与HEVC的CTU概念相同。对于具有三个样点阵列的图片,CTU由N×N的亮度样点块以及两个对应的色度样点块组成。图5示出划分为CTU 502的图片500的示例。
CTU中的亮度块的最大允许尺寸被指定为128×128(尽管亮度变换块的最大尺寸为64×64)。
使用树结构对CTU进行分割
图6是示出根据本公开的一些实施方式的多类型树划分模式的示意图。
在HEVC中,通过使用表示为编码树的四元树结构将CTU划分为CU以适应各种局部特性。使用图片间(时间)预测还是使用图片内(空间)预测对图片区域进行编码的决定是在叶CU级做出的。可根据PU划分类型进一步将每个叶CU划分为一个、两个或四个PU。在一个PU内部,应用相同的预测过程,并且基于PU将相关信息发送到解码器。在通过基于PU划分类型应用预测过程而获得残差块之后,可根据CU的类似于编码树的另一四元树结构将叶CU划分为变换单元(TU)。HEVC结构的关键特征之一是它具有包括CU、PU和TU的多个分割概念。
在VVC中,使用二划分和三划分分区结构的具有嵌套多类型树的四叉树来代替多个分割单元类型的概念,即,它去除了对CU、PU和TU概念的区分(除具有对于最大变换长度来说太大的尺寸的CU需要这种概念的区分之外),并且支持对于CU分割形状的更大灵活性。在编码树结构中,CU可具有正方形或矩形形状。首先通过四元树(即,四叉树)结构对编码树单元(CTU)进行分割。然后,可通过多类型树结构进一步对四元树叶节点进行分割。如图6所示,在多类型树结构中存在四种划分类型:垂直二划分602(SPLIT_BT_VER)、水平二划分604(SPLIT_BT_HOR)、垂直三划分606(SPLIT_TT_VER)和水平三划分608(SPLIT_TT_HOR)。多类型树叶节点被称为编码单元(CU),并且除非CU对于最大变换长度来说太大,否则此分区用于预测和变换处理而不再进行任何进一步分割。这表示,在大多数情况下,CU、PU和TU在具有嵌套多类型树编码块结构的四叉树中具有相同的块尺寸。当最大支持变换长度小于CU的颜色分量的宽度或高度时,出现例外。在VTM1中,CU由不同颜色分量的编码块(CB)组成,例如,一个CU包含一个亮度CB和两个色度CB(除非视频是单色的,即,仅具有一个颜色分量)。
将CU分割为多个预测单元
在VVC中,对于基于上文所述的结构分割出的每个CU,可对整个CU块或者以下面段落中所解释的子块方式执行块内容的预测。这种预测的操作单元被称为预测单元(或PU)。
在帧内预测(或帧内部预测)的情况下,PU的尺寸通常等于CU的尺寸。换句话说,对整个CU块执行预测。对于帧间预测(或帧之间预测),PU的尺寸可等于或小于CU的尺寸。换句话说,存在CU可被划分为多个PU以用于预测的情况。
PU尺寸小于CU尺寸的一些示例包括仿射预测模式、高级时间级运动矢量预测(ATMVP)模式和三角形预测模式等。
在仿射预测模式下,CU可被划分为多个4×4PU以用于预测。可针对每个4×4PU推导运动矢量并且可相应地对4×4PU执行运动补偿。在ATMVP模式下,CU可被划分为一个或多个8×8PU以用于预测。针对每个8×8PU推导运动矢量并且可相应地对8×8PU执行运动补偿。在三角形预测模式下,CU可被划分为两个三角形形状预测单元。针对每个PU推导运动矢量并且相应地执行运动补偿。对于帧间预测,支持三角形预测模式。下面阐述三角形预测模式的更多细节。
三角形预测模式
图7是示出根据本公开的一些实施方式的将CU划分为三角形预测单元的示意图。
三角形预测模式的概念是针对运动补偿预测引入三角形分区。三角形预测模式也可被称为三角形预测单元模式。如图7中所示,CU 702、704在对角线或反对角线方向上(即,从左上角到右下角的划分或从右上角到左下角的划分)被划分为两个三角形预测单元PU1和PU2。CU中的每个三角形预测单元使用其自己的从单向预测候选列表推导的单向预测运动矢量和参考帧索引进行帧间预测。在预测三角形预测单元之后,对对角线边缘执行自适应加权过程。然后,将变换和量化过程应用于整个CU。注意,该模式仅被应用于当前VVC中的跳过和合并模式。尽管在图7中,CU被示出为正方形块,但是三角形预测模式也可被应用于非正方形(即,矩形)形状CU。
单向预测候选列表可包括一个或更多个候选,并且每个候选可以是运动矢量。因此,贯穿本公开,术语“单向预测候选列表”、“单向预测运动矢量候选列表”和“单向预测合并列表”可互换使用。
单向预测运动矢量候选列表
图8是示出根据本公开的一些实施方式的邻近块的位置的示意图。
在一些示例中,单向预测运动矢量候选列表可包括两个到五个单向预测运动矢量候选。在一些其他示例中,有可能是其他数量。它是从邻近块推导的。如图8中所示,单向预测运动矢量候选列表是从包括五个空间邻近块(1到5)和两个时间同位块(6到7)的七个邻近块推导的。将七个邻近块的运动矢量收集到第一合并列表中。然后,根据特定顺序基于第一合并列表运动矢量来形成单向预测候选列表。基于所述顺序,首先在单向预测运动矢量候选列表中放入来自第一合并列表的单向预测运动矢量,接着是双向预测运动矢量的参考图片列表0或L0运动矢量,然后是双向预测运动矢量的参考图片列表1或L1运动矢量,再接着是双向预测运动矢量的L0和L1运动矢量的平均运动矢量。此时,如果候选的数量仍然小于目标数量(其在当前VVC中为5),则将零运动矢量添加到列表以满足目标数量。
针对每个三角形PU基于其运动矢量推导预测因子。值得注意的是,所推导的预测因子覆盖比实际三角形PU更大的区域,使得沿两个三角形PU的共享对角线边缘存在两个预测因子的重叠区域。将自适应加权过程应用于两个预测因子之间的对角线边缘区域,以推导CU的最终预测。当前如下使用两个加权因子集合:
-第一加权因子集合:{7/8,6/8,4/8,2/8,1/8}和{7/8,4/8,1/8}分别用于亮度和色度样点;
-第二加权因子集合:{7/8,6/8,5/8,4/8,3/8,2/8,1/8}和{6/8,4/8,2/8}分别用于亮度和色度样点。
加权因子集合的选择基于两个三角形预测单元的运动矢量的比较。更具体地,当两个三角形预测单元的参考图片彼此不同或者它们的运动矢量差大于16个像素时,使用第二加权因子集合。否则,使用第一加权因子集合。图9示出了根据本公开的一些实施方式的利用加权因子集合进行加权的示例。在图9中,第一加权因子集合用于亮度样点902和色度样点904。
在当前VVC标准草案中,为了扩展和/或简化三角形预测模式,将三角形PU的想法扩展到预测单元的其它分区,如示出了根据本公开的一些实施方式的PU分区的示例的图10中所示。除了两个对角线三角形PU分区之外,三角形预测模式中使用的方法或概念可应用于其它PU分区。基本上,给定图10中所示的分区类型,针对每个分区(例如,PU0和PU1)推导两个单向预测因子,并且在两个分区的边界区域周围应用自适应加权。例如,用于三角形PU的方法可应用于水平和/或垂直PU。
常规合并模式运动矢量候选列表
根据当前VVC,在整个CU被预测而不被划分为多于一个PU的常规合并模式下,使用与用于三角形预测模式的过程不同的过程来构建运动矢量候选列表或合并候选列表。
图11是示出根据本公开的一些实施方式的空间合并候选的位置的示意图,如图11所示,首先,基于来自邻近块的运动矢量来选择空间运动矢量候选。在空间合并候选的推导中,在位于如图11中所描绘的位置中的候选中选择最多四个合并候选。推导的顺序是A1→B1→B0→A0→(B2)。仅当位置A1、B1、B0、A0的任何PU不可用或被帧内编解码时才考虑位置B2
接下来,推导时间合并候选。在时间合并候选的推导中,基于属于给定参考图片列表内的与当前图片具有最小图片顺序计数(POC)差的图片的同位PU来推导经缩放的运动矢量。在条带头中显式地发信号通知将被用于推导同位PU的参考图片列表。图12示出了根据本公开的一些实施方式的时间合并候选的运动矢量缩放,如图12中的虚线所示,获得时间合并候选的经缩放的运动矢量。使用POC距离tb和td从同位PU col_PU的运动矢量对时间合并候选的经缩放的运动矢量进行缩放,其中tb被定义为当前图片curr_pic的参考图片curr_ref与当前图片curr_pic之间的POC差,并且td被定义为同位图片col_pic的参考图片col_ref与同位图片col_pic之间的POC差。时间合并候选的参考图片索引被设置为等于零。在HEVC草案规范中描述了缩放过程的实际实现。对于B条带,获得并组合两个运动矢量(针对参考图片列表0的一个并且针对参考图片列表1的另一个)以形成双向预测合并候选。
图13是示出根据本公开的一些实施方式的时间合并候选的候选位置的示意图。
如图13中所描绘的,在两个候选位置C3和H之间选择同位PU的位置。如果位置H处的PU不可用,或被帧内编解码,或在当前CTU外部,则位置C3用于推导时间合并候选。否则,位置H用于推导时间合并候选。
在将空间和时间运动矢量两者插入到如上文所描述的合并候选列表中之后,添加基于历史的合并候选。所谓的基于历史的合并候选包括来自先前编解码的CU的那些运动矢量,这些运动矢量被维护在单独的运动矢量列表中,并且基于特定规则进行管理。
在插入基于历史的候选之后,如果合并候选列表未满,则将成对平均运动矢量候选进一步添加到列表中。如其名称所示,通过对已经在当前列表中的候选进行平均来构建这种类型的候选。更具体地,基于特定顺序或规则,每次采用合并候选列表中的两个候选,并且将该两个候选的平均运动矢量附加到当前列表。
在插入成对平均运动矢量之后,如果合并候选列表仍未满,则将添加零运动矢量以填满列表。
使用常规合并列表构建过程来构建用于三角形预测的第一合并列表
当前VVC中的三角形预测模式在其形成预测因子的整体过程中与常规合并预测模式共享一些类似性。例如,在两种预测模式下,需要至少基于当前CU的邻近空间运动矢量和同位运动矢量来构建合并列表。同时,三角形预测模式还具有与常规合并预测模式不同的一些方面。
例如,尽管在三角形预测模式和常规合并预测模式这两种模式下都需要构建合并列表,但构建这样的列表的详细过程是不同的。
由于需要额外的逻辑,因此这些差异导致编解码器实施方式的额外成本。构建合并列表的过程和逻辑可在三角形预测模式和常规合并预测模式之间统一和共享。
在一些示例中,在形成用于三角形预测模式的单向预测(也称为单预测)合并列表时,在将新运动矢量添加到合并列表中之前,针对已经在列表中的那些运动矢量对新运动矢量进行完全删减。换句话说,将新运动矢量与已在单向预测合并列表中的每一个运动矢量进行比较,并且仅在新运动矢量与合并列表中的每一个运动矢量均不同时才将新运动矢量添加到列表中。否则,不将新运动矢量添加到列表中。
根据本发明的一些示例,在三角形预测模式下,单向预测合并列表是从常规合并模式运动矢量候选列表构建的,其中,所述常规合并模式运动矢量候选列表可被称作常规合并列表。
更具体地,为了构建用于三角形预测模式的合并候选列表,首先基于用于常规合并预测的合并列表构建过程来构建第一合并列表。第一合并列表包含多个候选,每个候选均为运动矢量。然后,使用第一合并列表中的运动矢量进一步构建用于三角形预测模式的单向预测合并列表。
应当注意,在这种情况下构建的第一合并列表可选择与用于一般合并模式或常规合并模式的列表大小不同的列表大小。在本公开的一个示例中,第一合并列表的列表大小与用于一般合并模式的列表大小相同。在本公开的另一示例中,所构建的第一合并列表的列表大小与用于一般合并模式的列表大小不同。
从第一合并列表构建单向预测合并列表
根据本公开的一些示例,可基于以下方法中的一个从第一合并列表构建用于三角形预测模式的单向预测合并列表。
在本发明的示例中,为了构建单向预测合并列表,首先检查第一合并列表中的候选的预测列表0运动矢量并且将第一合并列表中的候选的预测列表0运动矢量选择到单向预测合并列表中。如果在此过程之后单向预测合并列表未满(例如,此列表中的候选的数量仍小于目标数量),则检查第一合并列表中的候选的预测列表1运动矢量并且将第一合并列表中的候选的预测列表1运动矢量选择到单向预测合并列表中。如果单向预测合并列表仍然未满,则将预测列表0零矢量添加到单向预测合并列表中。如果单向预测合并列表仍然未满,则将预测列表1零矢量添加到单向预测合并列表中。
在本发明的另一示例中,对于第一合并列表中的每一个候选,将所述每一个候选的预测列表0运动矢量和预测列表1运动矢量以交错方式添加到单向预测合并列表中。更具体地讲,对于第一合并列表中的每一个候选,如果候选是单向预测运动矢量,则将该候选直接添加到单向预测合并列表中。否则,如果候选为第一合并列表中的双向预测运动矢量,则首先将该候选的预测列表0运动矢量添加到单向预测合并列表中,再接着添加该候选的预测列表1运动矢量。一旦第一合并列表中的所有运动矢量候选被检查并添加,但单向预测合并列表尚未满,就可添加单向预测零运动矢量。例如,对于每一个参考帧索引,可将预测列表0零运动矢量和预测列表1零运动矢量单独添加到单向预测合并列表中,直到列表已满为止。
在本发明的又一示例中,首先将来自第一合并列表的单向预测运动矢量选择到单向预测合并列表中。如果单向预测合并列表在此过程之后未满,则对于第一合并列表中的每一个双向预测运动矢量,首先将双向预测运动矢量的预测列表0运动矢量添加到单向预测合并列表中,再接着添加该双向预测运动矢量的预测列表1运动矢量。在此过程之后,如果单向预测合并列表尚未满,则可添加单向预测零运动矢量。例如,对于每一个参考帧索引,可将预测列表0零运动矢量和预测列表1零运动矢量单独添加到单向预测合并列表中,直到所述列表已满为止。
在以上描述中,当将单向预测运动矢量添加到单向预测合并列表中时,可执行运动矢量删减过程以确保待添加的新运动矢量不同于已在单向预测合并列表中的那些运动矢量。为了降低复杂度,也可以部分方式执行此运动矢量删减过程,例如,仅针对已在单向预测合并列表中的一些运动矢量而非全部运动矢量检查待添加的新运动矢量。在极端情况下,在所述过程中不执行运动矢量删减(即,运动矢量比较操作)。
基于图片预测配置从第一合并列表构建单向预测合并列表
在本发明的一些示例中,可基于当前图片是否使用后向预测以自适应方式构建单向预测合并列表。例如,根据当前图片是否使用后向预测,可使用不同的方法来构建单向预测合并列表。如果所有参考图片的图片顺序计数(POC)值不大于当前图片的POC值,那么这意味着当前图片不使用后向预测。
在本发明的示例中,在当前图片不使用后向预测时,或在确定当前图片不使用后向预测时,首先检查第一合并列表中的候选的预测列表0运动矢量并且将第一合并列表中的候选的预测列表0运动矢量选择到单向预测合并列表中,再接着检查那些候选的预测列表1运动矢量并且将那些候选的预测列表1运动矢量选择到单向预测合并列表中;并且如果单向预测合并列表仍未满,则可添加单向预测零运动矢量。否则,如果当前图片使用后向预测,则可以如上文所描述的交错方式检查第一合并列表中的每一个候选的预测列表0运动矢量和预测列表1运动矢量并且将所述每一个候选的预测列表0运动矢量和预测列表1运动矢量选择到单向预测合并列表中,即,添加第一合并列表中的第一候选的预测列表0运动矢量,再接着添加第一候选的预测列表1运动矢量,并且然后添加第二候选的预测列表0运动矢量,再接着添加第二候选的预测列表1运动矢量,等等。在此过程结束时,如果单向预测合并列表仍未满,则可添加单向预测零矢量。
在本发明的另一示例中,如果当前图片不使用后向预测,则首先检查第一合并列表中的候选的预测列表1运动矢量并且将第一合并列表中的候选的预测列表1运动矢量选择到单向预测合并列表中,再接着检查那些候选的预测列表0运动矢量并且将那些候选的预测列表0运动矢量选择到单向预测合并列表中;并且如果单向预测合并列表仍未满,则可添加单向预测零运动矢量。否则,如果当前图片使用后向预测,则可以如上文所描述的交错方式检查第一合并列表中的每一个候选的预测列表0运动矢量和预测列表1运动矢量并且将所述每一个候选的预测列表0运动矢量和预测列表1运动矢量选择到单向预测合并列表中,即,添加第一合并列表中的第一候选的预测列表0运动矢量,再接着添加第一候选的预测列表1运动矢量,并且然后添加第二候选的预测列表0运动矢量,再接着添加第二候选的预测列表1运动矢量,等等。在此过程结束时,如果单向预测合并列表仍未满,则可添加单向预测零矢量。
在本发明的又一示例中,如果当前图片不使用后向预测,则仅首先检查第一合并列表中的候选的预测列表0运动矢量并且将第一合并列表中的候选的预测列表0运动矢量选择到单向预测合并列表中,并且如果单向预测合并列表仍未满,则可添加单向预测零运动矢量。否则,如果当前图片使用后向预测,则可以如上文所描述的交错方式检查第一合并列表中的每一个候选的预测列表0运动矢量和预测列表1运动矢量并且将所述每一个候选的预测列表0运动矢量和预测列表1运动矢量选择到单向预测合并列表中,即,添加第一合并列表中的第一候选的预测列表0运动矢量,再接着添加第一候选的预测列表1运动矢量,并且然后添加第二候选的预测列表0运动矢量,再接着添加第二候选的预测列表1运动矢量,等等。在此过程结束时,如果单向预测合并列表仍未满,则可添加单向预测零矢量。
在本发明的又一示例中,如果当前图片不使用后向预测,则仅首先检查第一合并列表中的候选的预测列表1运动矢量并且将第一合并列表中的候选的预测列表1运动矢量选择到单向预测合并列表中,并且如果单向预测合并列表仍未满,则可添加单向预测零运动矢量。否则,如果当前图片使用后向预测,则可以如上文所描述的交错方式检查第一合并列表中的每一个候选的预测列表0运动矢量和预测列表1运动矢量并且将所述每一个候选的预测列表0运动矢量和预测列表1运动矢量选择到单向预测合并列表中,即,添加第一合并列表中的第一候选的预测列表0运动矢量,再接着添加第一候选的预测列表1运动矢量,并且然后添加第二候选的预测列表0运动矢量,再接着添加第二候选的预测列表1运动矢量,等等。在此过程结束时,如果单向预测合并列表仍未满,则可添加单向预测零矢量。
在以上过程中,当检查待添加到单向预测合并列表中的新运动矢量时,可完全或部分地执行删减。当部分地执行删减时,这意味着将新的运动矢量与已经在单向预测合并列表中的一些运动矢量而非全部运动矢量进行比较。在极端情况下,在所述过程中不执行运动矢量删减(即,运动矢量比较操作)。
还可基于当前图片是否使用后向预测,在形成单向预测合并列表时自适应地执行运动矢量删减。例如,对于本公开的与基于图片预测配置的单向预测合并列表构建相关的示例,在当前图片不使用后向预测时,完全或部分地执行运动矢量删减操作。在当前图片使用后向预测时,在形成单向预测合并列表时不执行运动矢量删减操作。
允许用于三角形预测模式的双向运动补偿
三角形预测模式仅在B条带中启用。为了避免运动补偿期间的高存储器带宽要求,在当前VVC中,对于每个三角形分区仅允许单向预测。然而,在许多情况下,单向预测可能次于双向预测,并且因此,对三角形预测模式的此限制可能牺牲潜在编解码效率增益。
在本发明的一些示例中,在三角形预测模式下,针对两个三角形分区或三角形形状PU中的每一个允许单向预测和双向预测两者。可利用存储器成本降低算法处理三角形形状的PU,以便使三角形形状的PU准备好用于双向预测。为了在三角形预测模式下仍然限制运动补偿的存储器带宽需求,短插值滤波器(诸如,2抽头滤波器或4抽头滤波器)可用于双向预测下的子像素插值。当短抽头滤波器用于子像素插值时,在运动补偿期间得到的像素的数量远小于在使用长插值滤波器的情况下提取出的像素的数量。
在本发明的示例中,在三角形预测模式下,针对两个分区中的每一个允许单向预测和双向预测两者。为了在三角形预测模式下仍然限制运动补偿的存储器带宽需求,对于两个三角形分区中的每一个,在双向预测模式下仅允许整数像素预测。术语“整数像素预测”是指用于预测的运动矢量各自四舍五入到相应整数像素位置或具有整数值的坐标的位置。由于整数像素预测不需要插值操作,因此在运动补偿期间得到的像素数量远小于需要子像素插值的情况下的像素数量。
用于三角形预测模式的合并列表构建
当双向预测被允许用于三角形预测模式时,还可不同地构建用于三角形预测模式的合并列表(或三角形预测合并列表)。
在本公开的示例中,三角形预测合并列表可以以与常规合并模式下的合并列表相同的方式简单地形成。当列表中的双向预测子像素运动矢量候选用于三角形预测时,可使用短抽头插值滤波器或短插值滤波器。
在本公开的另一示例中,三角形预测合并列表可以以与常规合并模式下的合并列表相同的方式简单地形成。当列表中的双向预测子像素运动矢量候选用于三角形预测时,在使用之前将运动矢量四舍五入到该运动矢量的最接近的整数像素位置。
在本公开的又一示例中,可首先基于用于常规合并模式的相同合并列表构建过程来形成初步合并列表。然后,可基于特定规则对初步合并列表中的运动矢量进行优先级排序以形成用于三角形预测模式的最终合并列表。
在此类规则的一个示例中,可首先将初步合并列表中的单向预测运动矢量和/或整数像素双向预测运动矢量选择到最终合并列表中,再接着将子像素双向预测运动矢量选择到最终合并列表中。当列表中的双向预测子像素运动矢量候选用于三角形预测时,可使用短抽头插值滤波器。
在此类规则的另一示例中,可首先将初步合并列表中的整数像素双向预测运动矢量和/或单向预测运动矢量选择到最终三角形合并列表中,再接着将四舍五入到相应的最接近的整数像素位置的子像素双向预测运动矢量选择到最终三角形合并列表中。
当对于三角形预测模式仅允许整数运动矢量(MV)时,也可以不同地构建合并列表。
在本公开的示例中,为了构建用于三角形预测模式的合并候选列表,首先基于用于常规合并预测的合并列表构建过程来构建第一合并列表。然后,使用第一合并列表中的运动矢量进一步构建用于三角形预测模式的单向预测合并列表。在一个示例中,所选择单向运动矢量在被插入到最终三角形合并列表中之前被四舍五入到该单向运动矢量的最接近的整数像素位置。
在另一示例中,可首先将初步合并列表中的整数像素运动矢量选择到最终三角形合并列表中,再接着将四舍五入到相应的最接近的整数像素位置的子像素运动矢量选择到最终三角形合并列表中。
可执行运动矢量删减过程以确保待添加的新运动矢量不同于已在单向预测合并列表中的那些运动矢量。为了降低复杂度,也可以以部分方式执行此运动矢量删减过程,例如,仅针对已在单向预测合并列表中的一些运动矢量而非全部运动矢量检查待添加的新运动矢量。在极端情况下,不执行删减操作。还可对四舍五入的MV执行此运动矢量删减过程。
图14是示出根据本公开的一些实施方式的用于视频编解码的装置的框图。装置1400可以是终端,诸如移动电话、平板计算机、数字广播终端、平板设备或个人数字助理。
如图14所示,装置1400可包括以下组件中的一个或更多个:处理组件1402、存储器1404、电源组件1406、多媒体组件1408、音频组件1410、输入/输出(I/O)接口1412、传感器组件1414和通信组件1416。
处理组件1402通常控制装置1400的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作有关的操作。处理组件1402可包括用于执行指令以完成上述方法的全部或部分步骤的一个或多个处理器1420。此外,处理组件1402可包括用于促进处理组件1402与其他组件之间的交互的一个或多个模块。例如,处理组件1402可包括用于促进多媒体组件1408与处理组件1402之间的交互的多媒体模块。
存储器1404被配置为存储不同类型的数据以支持装置1400的操作。此类数据的示例包括用于在装置1400上操作的任何应用或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器1404可由任何类型的易失性或非易失性存储设备或其组合来实现,并且存储器1404可以是静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪存、磁盘或光盘。
电源组件1406为装置1400的不同组件供电。电源组件1406可包括电源管理系统、一个或更多个电源以及与为装置1400生成、管理和分配电力相关联的其他组件。
多媒体组件1408包括在装置1400和用户之间提供输出接口的屏幕。在一些示例中,屏幕可包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,则屏幕可被实现为从用户接收输入信号的触摸屏。触摸面板可包括用于感测触摸面板上的触摸、滑动和手势的一个或更多个触摸传感器。触摸传感器不仅可感测触摸或滑动动作的边界,而且可检测与触摸或滑动操作相关的持续时间和压力。在一些示例中,多媒体组件1408可包括前置相机和/或后置相机。当装置1400处于诸如拍摄模式或视频模式的操作模式时,前置相机和/或后置相机可接收外部多媒体数据。
音频组件1410被配置为输出和/或输入音频信号。例如,音频组件1410包括麦克风(MIC)。当装置1400处于操作模式(诸如,呼叫模式、录音模式和语音识别模式)时,麦克风被配置为接收外部音频信号。接收的音频信号可进一步被存储在存储器1404中或经由通信组件1416被发送。在一些示例中,音频组件1410还包括用于输出音频信号的扬声器。
I/O接口1412提供处理组件1402与外围接口模块之间的接口。上述外围接口模块可以是键盘、点击轮、按钮等。这些按钮可包括但不限于主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1414包括用于在装置1400的不同方面中提供状态评估的一个或更多个传感器。例如,传感器组件1414可检测装置1400的开/关状态和组件的相对位置。例如,组件是装置1400的显示器和键盘。传感器组件1414还可检测装置1400或装置1400的组件的位置变化、用户在装置1400上接触的存在或离开、装置1400的方向或加速度/减速度、以及装置1400的温度变化。传感器组件1414可包括被配置为在没有任何物理触摸的情况下检测附近物体的存在的接近传感器。传感器组件1414还可包括光学传感器,诸如在成像应用中使用的CMOS或CCD图像传感器。在一些示例中,传感器组件1414还可包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
通信组件1416被配置为促进装置1400与其它设备之间的有线或无线通信。装置1400可基于诸如WiFi、4G或其组合的通信标准来接入无线网络。在示例中,通信组件1416经由广播信道从外部广播管理系统接收广播信号或广播相关信息。在示例中,通信组件1416还可包括用于促进短距离通信的近场通信(NFC)模块。例如,NFC模块可基于射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术和其他技术来实现。
在示例中,装置1400可由专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件中的一个或更多个来实现,以执行上述方法。
非暂时性计算机可读存储介质可以是例如硬盘驱动器(HDD)、固态驱动器(SSD)、闪存、混合驱动器或固态混合驱动器(SSHD)、只读存储器(ROM)、光盘只读存储器(CD-ROM)、磁带、软盘等。
图15是示出根据本公开的一些实施方式的用于使用三角形预测单元的运动补偿预测的视频编解码的示例性过程的流程图。
在步骤1502,处理器1420将视频图片分割为多个编码单元(CU),其中所述多个CU中的至少一个CU被进一步分割为两个预测单元(PU),所述两个PU包括在至少一个三角形形状的PU。
在步骤1504,处理器1420基于用于常规合并预测的合并列表构建过程来构建包括多个候选的第一合并列表,其中,每一个候选是运动矢量。
在步骤1506,处理器1420使用第一合并列表中的候选的至少一个子集来构建用于三角形形状的PU的单向预测合并列表。
构建单向预测合并列表的步骤可包括:检查第一合并列表中的候选的预测列表0运动矢量并将该预测列表0运动矢量选择到单向预测合并列表中;在确定单向预测合并列表未满时,检查第一合并列表中的该候选的预测列表1运动矢量并将该预测列表1运动矢量选择到单向预测合并列表中;在确定单向预测合并列表仍然未满时,将预测列表0零矢量添加到单向预测合并列表中;以及在确定单向预测合并列表仍然未满时,将预测列表1零矢量添加到单向预测合并列表中。
图16是示出根据本公开的一些实施方式的用于使用三角形预测单元的运动补偿预测的视频编解码的示例性过程的流程图。
在步骤1602,处理器1420将视频图片分割为多个编码单元(CU),其中所述多个CU中的至少一个CU被进一步分割为两个预测单元(PU),所述两个PU包括至少一个三角形形状的PU。
在步骤1604,处理器1420利用存储器成本降低算法处理三角形形状的PU,以便使三角形形状的PU准备好用于双向预测。
存储器成本降低算法可包括从由以下各项组成的组中选择的至少一项:将短插值滤波器应用于双向预测下的子像素插值;以及将与三角形形状的PU相关联的运动矢量四舍五入到整数像素位置。
在一些示例中,提供一种用于视频编解码的装置。该装置包括处理器1420;以及存储器1404,被配置为存储能够由处理器执行的指令;其中处理器在执行指令时被配置为执行如图15所示的方法或如图16所示的方法。
在一些其他示例中,提供了一种非暂时性计算机可读存储介质1404,其具有存储在其中的指令。当指令由处理器1420执行时,指令使处理器执行如图15所示的方法或如图16所示的方法。
本公开的描述已经出于说明的目的被呈现,并且不旨在穷举或限于本公开。受益于在前面的描述和相关联的附图中呈现的教导,许多修改、变化和替代实施方式对于本领域普通技术人员将是显而易见的。
选择和描述示例是为了解释本公开的原理,并且使本领域的其它技术人员能够理解本公开的各种实施方式,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,将理解,本公开的范围不限于所公开的实施方式的具体示例,并且修改和其它实施方式旨在被包括在本公开的范围内。

Claims (20)

1.一种用于视频编解码的方法,包括:
将视频图片分割为多个编码单元CU,其中所述多个CU中的至少一个CU被进一步分割为两个预测单元PU,所述两个PU包括至少一个三角形形状的PU;
基于用于常规合并预测的合并列表构建过程来构建包括多个候选的第一合并列表,其中,常规合并预测是整个CU被预测而不被分割为多于一个PU的预测,每一个候选是运动矢量;以及
使用所述第一合并列表中的所述候选的至少一个子集来构建用于所述三角形形状的PU的单向预测合并列表,其中,将所述第一合并列表中的所述候选与已在所述单向预测合并列表中的全部或部分运动矢量中的每一个运动矢量进行比较,仅将与所述单向预测合并列表中的全部或部分运动矢量中的每一个运动矢量均不同的候选添加到所述单向预测合并列表中。
2.根据权利要求1所述的方法,其中,所构建的第一合并列表的列表大小与用于一般合并模式的列表大小不同。
3.根据权利要求1所述的方法,其中,构建所述单向预测合并列表的步骤包括:
检查所述第一合并列表中的所述候选的预测列表0运动矢量并且将所述预测列表0运动矢量选择到所述单向预测合并列表中;
在确定所述单向预测合并列表未满时,检查所述第一合并列表中的所述候选的预测列表1运动矢量并且将所述预测列表1运动矢量选择到所述单向预测合并列表中;
在确定所述单向预测合并列表仍然未满时,将预测列表0零矢量添加到所述单向预测合并列表中;以及
在确定所述单向预测合并列表仍然未满时,将预测列表1零矢量添加到所述单向预测合并列表中。
4.根据权利要求1所述的方法,其中,构建所述单向预测合并列表的步骤包括:
确定所述第一合并列表中的候选是否为单向预测运动矢量;以及
在确定所述候选为单向预测运动矢量时,将所述候选添加到所述单向预测合并列表中。
5.根据权利要求4所述的方法,其中,构建所述单向预测合并列表的步骤还包括:
在确定所述候选为双向预测运动矢量时,以交错方式将所述候选的预测列表0运动矢量和所述候选的预测列表1运动矢量添加到所述单向预测合并列表中。
6.根据权利要求1所述的方法,其中,构建所述单向预测合并列表的步骤包括:
确定当前图片是否使用后向预测;以及
基于所述当前图片是否使用后向预测,以自适应方式构建所述单向预测合并列表。
7.根据权利要求6所述的方法,其中,以自适应方式构建所述单向预测合并列表的步骤包括:
在确定所述当前图片使用后向预测时:
确定所述第一合并列表中的候选是否为单向预测运动矢量;
在确定所述候选为单向预测运动矢量时,将所述候选添加到所述单向预测合并列表中;以及
在确定所述候选为双向预测运动矢量时,以交错方式将所述候选的预测列表0运动矢量和所述候选的预测列表1运动矢量添加到所述单向预测合并列表中;以及
在确定所述当前图片不使用后向预测时:
检查所述第一合并列表中的所述候选的预测列表0运动矢量并且将所述预测列表0运动矢量选择到所述单向预测合并列表中;
在确定所述单向预测合并列表未满时,检查所述第一合并列表中的所述候选的预测列表1运动矢量并且将所述预测列表1运动矢量选择到所述单向预测合并列表中;以及
在确定所述单向预测合并列表仍然未满时,将单向预测零矢量添加到所述单向预测合并列表中。
8.根据权利要求1所述的方法,还包括:
利用存储器成本降低算法处理所述三角形形状的PU,以便使所述三角形形状的PU准备好用于双向预测。
9.根据权利要求8所述的方法,还包括:针对所述三角形形状的PU启用双向预测。
10.根据权利要求8所述的方法,其中,所述存储器成本降低算法包括从由以下各项组成的组中选择的至少一项:
将短插值滤波器应用于双向预测下的子像素插值;以及
将与所述三角形形状的PU相关联的运动矢量四舍五入到整数像素位置。
11.一种用于视频编解码的装置,包括:
处理器;以及
存储器,被配置为存储能够由所述处理器执行的指令;
其中,所述处理器在执行所述指令时被配置为:
将视频图片分割为多个编码单元CU,其中所述多个CU中的至少一个CU被进一步分割为两个预测单元PU,所述两个PU包括至少一个三角形形状的PU;
基于用于常规合并预测的合并列表构建过程来构建包括多个候选的第一合并列表,其中,常规合并预测是整个CU被预测而不被分割为多于一个PU的预测,每一个候选是运动矢量;以及
使用所述第一合并列表中的所述候选的至少一个子集来构建用于所述三角形形状的PU的单向预测合并列表,其中,将所述第一合并列表中的所述候选与已在所述单向预测合并列表中的全部或部分运动矢量中的每一个运动矢量进行比较,仅将与所述单向预测合并列表中的全部或部分运动矢量中的每一个运动矢量均不同的候选添加到所述单向预测合并列表中。
12.根据权利要求11所述的装置,其中,所构建的第一合并列表的列表大小与用于一般合并模式的列表大小不同。
13.根据权利要求11所述的装置,其中,所述处理器还被配置为:
检查所述第一合并列表中的所述候选的预测列表0运动矢量并且将所述预测列表0运动矢量选择到所述单向预测合并列表中;
在确定所述单向预测合并列表未满时,检查所述第一合并列表中的所述候选的预测列表1运动矢量并且将所述预测列表1运动矢量选择到所述单向预测合并列表中;
在确定所述单向预测合并列表仍然未满时,将预测列表0零矢量添加到所述单向预测合并列表中;以及
在确定所述单向预测合并列表仍然未满时,将预测列表1零矢量添加到所述单向预测合并列表中。
14.根据权利要求11所述的装置,其中,所述处理器还被配置为:
确定所述第一合并列表中的候选是否为单向预测运动矢量;以及
在确定所述候选为单向预测运动矢量时,将所述候选添加到所述单向预测合并列表中。
15.根据权利要求14所述的装置,其中,所述处理器还被配置为:
在确定所述候选为双向预测运动矢量时,以交错方式将所述候选的预测列表0运动矢量和所述候选的预测列表1运动矢量添加到所述单向预测合并列表中。
16.根据权利要求11所述的装置,其中,所述处理器还被配置为:
确定当前图片是否使用后向预测;以及
基于所述当前图片是否使用后向预测,以自适应方式构建所述单向预测合并列表。
17.根据权利要求16所述的装置,其中,所述处理器还被配置为:
在确定所述当前图片使用后向预测时:
确定所述第一合并列表中的候选是否为单向预测运动矢量;
在确定所述运动矢量为单向预测运动矢量时,将所述运动矢量添加到所述单向预测合并列表中;以及
在确定所述候选为双向预测运动矢量时,以交错方式将所述候选的预测列表0运动矢量和所述候选的预测列表1运动矢量添加到所述单向预测合并列表中;以及
在确定所述当前图片不使用后向预测时:
检查所述第一合并列表中的所述候选的预测列表0运动矢量并且将所述预测列表0运动矢量选择到所述单向预测合并列表中;
在确定所述单向预测合并列表未满时,检查所述第一合并列表中的所述候选的预测列表1运动矢量并且将所述预测列表1运动矢量选择到所述单向预测合并列表中;以及
在确定所述单向预测合并列表仍然未满时,将单向预测零矢量添加到所述单向预测合并列表中。
18.根据权利要求11所述的装置,其中,所述处理器在执行所述指令时还被配置为:
利用存储器成本降低算法处理所述三角形形状的PU,以便使所述三角形形状的PU准备好用于双向预测。
19.根据权利要求18所述的装置,其中,所述处理器还被配置为:针对所述三角形形状的PU启用双向预测。
20.根据权利要求18所述的装置,其中,所述存储器成本降低算法包括从由以下各项成的组中选择的至少一项:
将短插值滤波器应用用于双向预测下的子像素插值;以及
将与所述三角形形状的PU相关联的运动矢量四舍五入到整数像素位置。
CN202080017666.1A 2019-01-03 2020-01-03 利用三角形预测的视频编解码方法及装置 Active CN113545050B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962788131P 2019-01-03 2019-01-03
US62/788,131 2019-01-03
US201962788765P 2019-01-04 2019-01-04
US62/788,765 2019-01-04
PCT/US2020/012179 WO2020142685A1 (en) 2019-01-03 2020-01-03 Video coding with triangle prediction

Publications (2)

Publication Number Publication Date
CN113545050A CN113545050A (zh) 2021-10-22
CN113545050B true CN113545050B (zh) 2023-05-30

Family

ID=71407116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080017666.1A Active CN113545050B (zh) 2019-01-03 2020-01-03 利用三角形预测的视频编解码方法及装置

Country Status (2)

Country Link
CN (1) CN113545050B (zh)
WO (1) WO2020142685A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7420807B2 (ja) * 2018-11-29 2024-01-23 インターデイジタル ヴィーシー ホールディングス インコーポレイテッド マージリストにおける動きベクトル予測子候補の順序付け
CN110312130B (zh) * 2019-06-25 2021-10-15 浙江大华技术股份有限公司 基于三角模式的帧间预测、视频编码方法及设备
EP4262202A1 (en) * 2022-04-13 2023-10-18 Panasonic Intellectual Property Corporation of America Encoder, decoder, encoding method, and decoding method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3343924A1 (en) * 2017-01-03 2018-07-04 Thomson Licensing Method and apparatus for encoding and decoding motion information
EP3422720A1 (en) * 2017-06-26 2019-01-02 Thomson Licensing Multiple predictor candidates for motion compensation

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102215396A (zh) * 2010-04-09 2011-10-12 华为技术有限公司 一种视频编解码方法和系统
JP2013042225A (ja) * 2011-08-11 2013-02-28 Jvc Kenwood Corp 動画像復号装置、動画像復号方法及び動画像復号プログラム
US9325991B2 (en) * 2012-04-11 2016-04-26 Qualcomm Incorporated Motion vector rounding
US10856001B2 (en) * 2015-02-24 2020-12-01 Lg Electronics Inc. Polygon unit-based image processing method, and device for same
US10958927B2 (en) * 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
KR20180082330A (ko) * 2017-01-09 2018-07-18 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3343924A1 (en) * 2017-01-03 2018-07-04 Thomson Licensing Method and apparatus for encoding and decoding motion information
EP3422720A1 (en) * 2017-06-26 2019-01-02 Thomson Licensing Multiple predictor candidates for motion compensation

Also Published As

Publication number Publication date
WO2020142685A1 (en) 2020-07-09
CN113545050A (zh) 2021-10-22

Similar Documents

Publication Publication Date Title
CN113824959B (zh) 用于视频编码的方法、装置和存储介质
CN116886927B (zh) 视频编码的方法和装置、存储介质和计算机程序产品
CN113545050B (zh) 利用三角形预测的视频编解码方法及装置
US11622111B2 (en) Methods and apparatus of video coding for triangle prediction
CN115623206B (zh) 利用三角分区的视频编解码方法和装置
CN113728635A (zh) 用于三角预测的视频编解码方法和装置
CN113924774A (zh) 用于利用三角形预测进行视频编解码的方法和装置
CN113994672B (zh) 用于利用三角形预测进行视频编解码的方法和装置
CN116800960B (zh) 用于视频解码的方法、装置和存储介质
CN114080807A (zh) 利用三角分区进行视频编解码的方法和装置
CN114982230A (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