CN112913245A - 视频译码中的块内复制预测限制 - Google Patents

视频译码中的块内复制预测限制 Download PDF

Info

Publication number
CN112913245A
CN112913245A CN201980069437.1A CN201980069437A CN112913245A CN 112913245 A CN112913245 A CN 112913245A CN 201980069437 A CN201980069437 A CN 201980069437A CN 112913245 A CN112913245 A CN 112913245A
Authority
CN
China
Prior art keywords
block
coding
video
current
ctu
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
CN201980069437.1A
Other languages
English (en)
Inventor
V.塞雷金
L.法姆范
W-J.钱
C-T.冼
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 CN112913245A publication Critical patent/CN112913245A/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/57Motion estimation characterised by a search window with variable size or shape
    • 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/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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Abstract

一种示例方法包括:针对在视频数据的当前图片中的、视频数据的当前译码树单元(CTU)的多个译码块中的每个相应译码块,确定多个相应搜索区域中的相应搜索区域,其中多个搜索区域中的至少一个搜索区域包括位于当前CTU外部的当前图片的样点,并且其中多个搜索区域中的至少一个搜索区域不包括位于当前CTU外部的当前图片的样点;针对每个相应译码块并从用于相应译码块的相应搜索区域内,选择多个预测器块中的相应预测器块;以及基于在多个预测器块中的相应预测器块中包括的样点来重构每个相应译码块的样点。

Description

视频译码中的块内复制预测限制
本申请要求2019年10月24日提交的第16/663,033号美国申请的优先权,该美国申请要求2018年10月27日提交的第62/751,585号美国临时申请的权益,其全部内容通过引用并入本文。
技术领域
本公开涉及视频编码和视频解码。
背景技术
数字视频功能可以并入到广泛的设备中,这些设备包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电话、所谓的“智能电话”、视频电话会议设备、视频流设备等。数字视频设备实现视频译码(coding)技术,诸如在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分、高级视频译码(AVC)、高效视频译码(HEVC)标准、ITU-T H.265/高效视频译码(HEVC)所定义的标准以及这些标准的扩展中所描述的那些技术。通过实施此类视频译码技术,视频设备可以更有效地发送、接收、编码、解码和/或存储数字视频信息。
视频译码技术包括空间(图片内)预测和/或时间(图片间)预测,以减少或消除视频序列中固有的冗余。对于基于块的视频译码,可以将视频条带(例如,视频图片或视频图片的一部分)分割成视频块,这些视频块也可以被称为译码树单元(CTU)、译码单元(CU)和/或译码节点。使用关于同一图片中的相邻块中的参考样点的空间预测来对图片的帧内译码(I)条带中的视频块进行编码。图片的帧间译码(P或B)条带中的视频块可以使用关于同一图片中的相邻块中的参考样点的空间预测或关于其他参考图片中的参考样点的时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。
发明内容
总的来说,本公开描述了用于使用当前图片参考(CPR)/块内复制(IBC)模式来提高译码视频数据的译码效率和/或存储器要求的技术。比如,视频译码器(例如视频编码器或视频解码器)可以针对当前图片的译码树单元(CTU)的每个译码块利用不同的搜索区域。具体地,搜索区域中的至少一些搜索区域可以包括位于当前CTU外部的当前图片的样点,并且搜索区域中的至少一些搜索区域可以不包括位于当前CTU外部的当前图片的样点。本公开的技术可以与屏幕内容译码一起使用,包括支持可能的高比特深度(大于8比特)、不同的色度采样格式(诸如4:4:4、4:2:2、4:2:0、4:0:0),以及其他技术。
作为一个示例,一种方法包括:针对在视频数据的当前图片中的、视频数据的当前译码树单元(CTU)的多个译码块中的每个相应译码块,确定多个相应搜索区域中的相应搜索区域,其中多个搜索区域中的搜索区域均不同,其中多个搜索区域中的至少一个搜索区域包括位于当前CTU外部的当前图片的样点,并且其中多个搜索区域中的至少一个搜索区域不包括位于当前CTU外部的当前图片的样点;针对每个相应译码块并从用于相应译码块的相应搜索区域内,选择多个预测器块中的相应预测器块;以及基于在多个预测器块中的相应预测器块中包括的样点来重构每个相应译码块的样点。
作为另一个示例,一种用于译码视频数据的设备包括:被配置为存储视频数据的存储器;以及一个或多个处理器,其在电路中实现并配置为:针对在视频数据的当前图片中的、视频数据的当前译码树单元(CTU)的多个译码块中的每个相应译码块,确定多个相应搜索区域中的相应搜索区域,其中多个搜索区域中的搜索区域均不同,其中多个搜索区域中的至少一个搜索区域包括位于当前CTU外部的当前图片的样点,并且其中多个搜索区域中的至少一个搜索区域不包括位于当前CTU外部的当前图片的样点;针对每个相应译码块,并且从用于相应译码块的相应搜索区域内,选择多个预测器块中的相应预测器块;以及基于包括在多个预测器块中的对应预测器块中的样点,重构每个相应译码块的样点。
作为另一个示例,一种视频译码器包括:用于针对在视频数据的当前图片中的、视频数据的当前译码树单元(CTU)的多个译码块中的每个相应译码块,确定多个相应搜索区域中的相应搜索区域的部件,其中多个搜索区域中的搜索区域均不同,其中多个搜索区域中的至少一个搜索区域包括位于当前CTU外部的当前图片的样点,并且其中多个搜索区域中的至少一个搜索区域不包括位于当前CTU外部的当前图片的样点;用于针对每个相应译码块,并且从用于相应译码块的相应搜索区域内,选择多个预测器块中的相应预测器块的部件;以及用于基于在多个预测器块中的对应预测器块中包括的样点,重构每个相应译码块的样点的部件。
作为另一个示例,一种存储有指令的计算机可读存储介质,上述指令在被执行时使得一个或多个处理器:针对在视频数据的当前图片中的、视频数据的当前译码树单元(CTU)的多个译码块中的每个相应译码块,确定多个相应搜索区域中的相应搜索区域,其中多个搜索区域中的搜索区域均不同,其中多个搜索区域中的至少一个搜索区域包括位于当前CTU外部的当前图片的样点,并且其中多个搜索区域中的至少一个搜索区域不包括位于当前CTU外部的当前图片的样点;针对每个相应译码块,并且从用于相应译码块的相应搜索区域内,选择多个预测器块中的相应预测器块;以及基于在多个预测器块中的对应预测器块中包括的样点,重构每个相应译码块的样点。
在附图和以下描述中阐述了一个或多个示例的细节。根据说明书、附图和权利要求书,其他特征、目的和优点将是显而易见的。
附图说明
图1是示出可以执行本公开的技术的示例视频编码和解码系统的框图。
图2是示出根据本公开的一种或多种技术的块内复制过程的示例的图。
图3A和3B是示出示例四叉树二叉树(QTBT)结构和相应的译码树单元(CTU)的概念图。
图4是示出可以执行本公开的技术的示例视频编码器的框图。
图5是示出可以执行本公开的技术的示例视频解码器的框图。
图6是示出根据本公开的一种或多种技术使用管线译码的CTU的概念图。
图7是示出根据本公开的一种或多种技术的用于CPR的示例搜索区域的概念图。
图8是示出根据本公开的一种或多种技术的用于CPR的示例搜索区域的概念图。
图9A-9C是示出根据本公开的一种或多种技术的用于以各种扫描顺序执行CPR的示例搜索区域的概念图。
图10是示出根据本公开的一种或多种技术的用于CPR的示例搜索区域的概念图。
图11是示出根据本公开的一种或多种技术的用于CPR的示例搜索区域的概念图。
图12A-12D是示出根据本公开的一种或多种技术的用于针对CTU的各种译码块执行CPR的示例搜索区域的概念图。
图13是示出用于编码当前块的示例方法的流程图。
图14是示出用于解码当前块的示例方法的流程图。
图15是示出根据本公开的技术的、使用混合搜索区域来预测当前图片中的视频数据块的示例方法的流程图。
具体实施方式
视频译码标准包括ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual以及ITU-T H.264(也称为ISO/IEC MPEG-4 AVC),包括其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展。
高效视频译码(HEVC)由ITU-T视频译码专家组(VCEG)以及ISO/IEC运动图片专家组(MPEG)的视频译码联合协作小组(JCT-VC)于2013年4月最终完成。
联合视频专家组(JVET)(即由MPEG以及ITU-T第16研究小组的VCEG形成的协作小组)最近在研究将被称为多功能视频译码(VVC)的新的视频译码标准。VVC的主要目标是在现有HEVC标准的基础上提供对压缩性能的显著改进,帮助部署更高质量的视频服务和新兴应用,诸如360°全方位沉浸式多媒体和高动态范围(HDR)视频。VVC标准的开发预期于2020年完成。
当前图片参考(CPR)或块内复制(IBC)(在IEEE J.Emerg.Sel.主题电路系统,2016年第6卷第4期第409-419页,X.Xu、S.Liu、T.Chuang、Y.Huang、S.Lei、K.Rapaka、C.Pang、V.Seregin、Y.Wang及M.Karczewicz的“Intra Block Copy in HEVC Screen ContentCoding Extensions(HEVC屏幕内容译码扩展中的块内复制)”中描述)已在HEVC SCC扩展的标准化期间提出(参见例如2016年12月的高效率视频译码(HEVC),Rec.ITU-T H.265及ISO/IEC 23008-2)。IBC已经被证明在对屏幕内容视频材料进行译码时是有效的。这种方法是之前在JVET-J0029和JVET-J0050中提出的,以满足对高效屏幕内容译码的需求。在第11次JVET会议上,将CPR模式(Xiaozhong Xu,Xiang Li和Shan Liu,“CE8-2.2:Current picturereferencing using reference index signaling(使用参考索引信令的当前图片参考)”,JVET-K0076,ljubljana(卢布尔雅那),SL,2018年7月(以下简称“JVET-K0076”))采用至VVC的基准集(BMS)软件中以进一步评估。
已将JVET-K0076中描述的当前图片参考(CPR)模式采用至BMS软件中。在CPR模式下,视频译码器从当前图片的已解码预测器块(在环路滤波之前,诸如自适应环路滤波器(ALF)和采样自适应偏移(SAO)中的一者或两者)预测当前图片中的块内复制(IBC)块。比如,为了使用CPR模式来预测当前块,视频编码器可以从参考区域内选择预测器块。视频编码器可以将预测器块选择为参考区域中与当前块的样点最紧密匹配的块(例如,为了减小残差数据的大小)。视频编码器可以编码表示当前块和所选择的预测器块之间的位移的矢量(例如块矢量、运动矢量等),以及表示预测器块的样点和当前块的样点之间的差异的残差数据。视频解码器可以使用互逆过程来解码当前块。比如,视频解码器可以解码矢量和残差数据,基于矢量选择预测器块,并且基于预测器块和残差数据的样点重构当前块的样点。
在当前CPR模式中,参考区域(即,可以从中选择预测器块的、当前图片的区域)可以被限制到包括正在预测的块的当前译码树单元(CTU)的重构样点。这样,在当前的CPR模式中,视频译码器可以使用位于特定CTU中的预测器块来预测特定CTU的译码块。将参考区域限制到当前CTU可减少使用CPR模式来对块进行预测所需的存储。比如,将参考区域限制到当前CTU可以使得视频译码器在译码当前CTU时仅访问/存储当前CTU的样点。然而,与具有更大的参考区域相比,这种限制可能会降低CPR译码的性能。具体而言,将参考区域限制到当前CTU可能降低对具有匹配当前块的样点的预测器块进行利用的概率,这可能导致残差数据大小的增加。残差数据大小的增加可能会不期望地降低译码效率(例如,需要更多的比特来表示视频数据)。
根据本公开的一种或多种技术,当使用CPR模式对视频数据的块进行译码时,视频译码器(例如视频编码器200和/或视频解码器300)可以利用混合搜索区域。比如,视频译码器可以针对当前图片的CTU的每个译码块利用不同的搜索区域。可以将搜索区域视为是混合的,因为至少一个译码块的搜索区域包括位于当前CTU外部的当前图片的样点,并且至少一个译码块的搜索区域不包括位于当前CTU外部的当前图片的样点。通过利用混合搜索区域,视频译码器可以平衡用于执行CPR的存储和译码效率。
图1是示出可以执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术通常涉及对视频数据进行译码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的未经编码视频、经编码视频、经解码(例如经重构)视频以及诸如信令数据之类的视频元数据。
如图1所示,在该示例中,系统100包括源设备102,其提供将会由目的设备116进行解码和显示的经编码视频数据。具体地,源设备102经由计算机可读介质110向目的设备116提供视频数据。源设备102和目的地设备116可以包括多种设备中的任何一种,包括台式计算机、笔记本(即膝上型计算机)计算机、平板计算机、机顶盒、诸如智能手机之类的电话手持机、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。在一些情况下,源设备102和目的设备116可以被配备用于无线通信,因此可以被称为无线通信设备。
在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目的设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开,源设备102的视频编码器200和目的设备116的视频解码器300可以被配置为应用用于CPR的混合搜索区域的技术。因此,源设备102表示视频编码设备的示例,而目的设备116表示视频解码设备的示例。在其他示例中,源设备和目的设备可以包括其他组件或布置。例如,源设备102可以从外部视频源(诸如外部相机)接收视频数据。同样,目的设备116可以与外部显示设备接口,而不是包括集成显示设备。
图1所示的系统100仅为一个示例。通常,任何数字视频编码和/或解码设备可以执行用于CPR的混合搜索区域的技术。源设备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可以包括用于存储经编码视频数据的各种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器,或者任何其他合适的数字存储介质。
在一些示例中,源设备102可以将经编码视频数据输出到文件服务器114或可以存储由源设备102生成的经编码视频的另一中间存储设备。目的设备116可以经由流式传输或下载从文件服务器114访问存储的视频数据。文件服务器114可以是能够存储经编码视频数据并将经编码视频数据发送到目的设备116的任何类型的服务器设备。文件服务器114可以表示网络服务器(例如用于网站)、文件传输协议(FTP)服务器、内容传递网络设备或网络附加存储(NAS)设备。目的设备116可以通过任何标准数据连接(包括因特网连接)从文件服务器114访问经编码视频数据。这可以包括适于访问存储在文件服务器114上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,数字订户线(DSL)、电缆调制解调器等),或者两者的组合。文件服务器114和输入接口122可以被配置成根据流传输协议、下载传输协议或其组合来操作。
输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线联网组件(例如以太网卡)、根据多种IEEE 802.11标准中的任何一种操作的无线通信组件,或其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准(诸如4G、4G-LTE(长期演进)、先进LTE、5G等)传输数据(诸如经编码视频数据)。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可以被配置为根据其他无线标准(诸如IEEE 802.11规范、IEEE 802.15规范(例如,ZigBeeTM)、蓝牙TM标准等)传输数据(诸如经编码视频数据)。在一些示例中,源设备102和/或目的设备116可以包括各自的片上系统(SoC)设备。例如,源设备102可以包括执行被认为是视频编码器200和/或输出接口108的功能的SoC设备,并且目的设备116可以包括执行被认为是视频解码器300和/或输入接口122的功能的SoC设备。
本公开的技术可以应用于视频译码以支持各种多媒体应用中的任何一种,各种多媒体应用诸如空中电视广播、有线电视传输、卫星电视传输、因特网流式视频传输(诸如基于HTTP的动态自适应流式传输(DASH))、被编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频进行的解码或其他应用。
目的设备116的输入接口122从计算机可读介质110(例如通信介质、存储设备112、文件服务器114等)接收经编码视频比特流。经编码视频比特流可以包括由视频编码器200定义的、也被视频解码器300使用的信令信息,诸如语法元素,其具有描述视频块或其他译码单元(例如条带、图片、图片组、序列等)的特性和/或处理的值。显示设备118向用户显示经解码视频数据的经解码图片。显示设备118可以表示各种显示设备中的任何一种,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一种类型的显示设备。
虽然在图1中未示出,但是在一些示例中,视频编码器200和视频解码器300可以各自与音频编码器和/或音频解码器集成,并且可以包括适当的MUX-DEMUX单元或其他硬件和/或软件,以处理在公共数据流中包括的音频和视频两者的多路复用流。如果适用,MUX-DEMUX单元可以符合ITU H.223多路复用器协议,或者诸如用户数据报协议(UDP)的其他协议。
视频编码器200和视频解码器300可以各自实施为各种合适的编码器和/或解码器电路系统中的任何一种,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任意组合。当这些技术部分地以软件实施时,设备可以将用于软件的指令存储在合适的非暂时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行这些指令以执行本公开的技术。视频编码器200和视频解码器300中的每一个可以被包括在一个或多个编码器或解码器中,该编码器或解码器中任一个可以被集成为相应设备中的组合编码器/解码器(CODEC)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备(诸如蜂窝电话)。
视频编码器200和视频解码器300可以根据视频译码标准操作,诸如ITU-T H.265,也称为高效视频译码(HEVC)或其扩展,诸如多视图和/或可缩放的视频译码扩展。可选地,视频编码器200和视频解码器300可以根据其他专有标准或行业标准(诸如联合探索测试模型(JEM)或ITU-T H.266,也称为多功能视频译码(VVC))来操作。VVC标准的最新草案被描述在Bross等人的ITU-T SG16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)的第11次会议的“Versa片Video Coding(多功能视频译码)(草案6)”中:该会议在ljubljana(卢布尔雅那),SI,2018年7月10-18日,JVET-K1001-v6(以下简称“VVC草案2”)。然而,本公开的技术不限于任何特定的译码标准。
通常,视频编码器200和视频解码器300可以执行图片的基于块的译码。术语“块”通常是指包括要处理的数据(例如经编码的、经解码的或以其他方式在编码和/或解码过程中使用的数据)的结构。例如,块可以包括亮度和/或色度数据的样点的二维矩阵。通常,视频编码器200和视频解码器300可以对以YUV(例如Y、Cb、Cr)格式表示的视频数据进行译码。也就是说,视频编码器200和视频解码器300可以对亮度分量和色度分量进行译码,而不是对图片样点的红、绿和蓝(RGB)数据进行译码,其中色度分量可以包括红色调和蓝色调色度分量。在一些示例中,视频编码器200在编码之前将接收到的RGB格式的数据转换成YUV表示,并且视频解码器300将YUV表示转换成RGB格式。可选的,预处理单元和后处理单元(未示出)可以执行这些转换。
本公开通常可以指图片的译码(例如编码和解码),以包括对图片的数据进行编码或解码的处理。类似地,本公开可以指图片的块的译码,以包括对块的数据进行编码或解码的过程,例如预测和/或残差译码。经编码视频比特流通常包括表示译码决策(例如译码模式)和将图片分割成块的语法元素的一系列值。因此,对图片或块的译码的引用通常应理解为对形成图片或块的语法元素的值进行译码。
HEVC定义了各种块,包括译码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频译码器(诸如视频编码器200)根据四叉树结构将译码树单元(CTU)分割为CU。也就是说,视频译码器将CTU和CU分割成四个相等的非重叠的正方形,并且四叉树的每个节点有零个或四个子节点。没有子节点的节点可以被称为“叶节点”,并且这种叶节点的CU可以包括一个或多个PU和/或一个或多个TU。视频译码器可以进一步分割PU和TU。例如,在HEVC中,残差四叉树(RQT)表示了对TU的分割。在HEVC中,PU表示帧间预测数据,而TU表示残差数据。被帧内预测的CU包括帧内预测信息,诸如帧内模式指示。
作为另一个示例,视频编码器200和视频解码器300可以被配置为根据JEM或VVC进行操作。根据JEM或VVC,视频译码器(例如视频编码器200)将图片分割成多个译码树单元(CTU)。视频编码器200可以根据树结构(诸如四叉树-二叉树(QTBT)结构或多类型树(MTT)结构)来分割CTU。QTBT结构消除了多个分割类型的概念,例如HEVC的CU、PU和TU之间的分离。QTBT结构包括两个层次:根据四叉树拆分来分割的第一层次和根据二叉树分割来分割的第二层次。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于译码单元(CU)。
在MTT分割结构中,可以使用四叉树(QT)分割、二叉树(BT)分割和一种或多种类型的三叉树(triple tree,TT)(也称为三元树(ternary tree,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或CU)进行分组。作为一个示例,砖块(brick)可以指图片中特定的片(tile)内的CTU行的矩形区。片可以是图片中特定的片列和特定的片行内的CTU的矩形区。片列指的是CTU的矩形区,其具有等于图片高度的高度和由语法元素指定的(例如,诸如在图片参数集中的)宽度。片行是指CTU的矩形区域,其具有由语法元素指定的(例如,诸如在图片参数集中的)高度并且其宽度等于图片的宽度。
在一些示例中,可以将片分割成多个砖块,每个砖块可以包括该片内的一个或多个CTU行。没有被分割成多个砖块的片也可以被称为砖块。然而,作为片的真实子集的砖块不能被称为片。
图片中的砖块也可以按条带排列。条带可以是图片的整数个砖块,其可以排他地包含在单个网络抽象层(NAL)单元中。在一些示例中,条带包括多个完整的片或者仅包括一个片的完整砖块的连续序列。
本公开可以互换地使用“NxN”和“N乘N”来指代块(诸如CU或其他视频块)在垂直和水平维度方面的样点维度,例如16×16样点或16乘16样点。一般来说,16x16的CU在垂直方向上有16个样点(y=16),在水平方向上有16个样点(x=16)。同样,NxN的CU通常在垂直方向上具有N个样点,在水平方向上具有N个样点,其中N表示非负整数值。CU中的样点可以按行和列排布。此外,CU不一定需要在水平方向和垂直方向具有相同数量的样点。例如,CU可以包括NxM个样点,其中M不一定等于N。
视频编码器200对表示预测和/或残差信息以及其他信息的CU的视频数据进行编码。预测信息指示如何预测该CU,以便形成该CU的预测器块。残差信息通常表示编码之前的CU样点和预测器块之间的逐样点差异。
为了预测CU,视频编码器200通常可以通过帧间预测或帧内预测来形成CU的预测器块。帧间预测通常是指根据先前译码的图片的数据来预测CU,而帧内预测通常是指根据同一图片的先前译码的数据来预测CU。为了执行帧间预测,视频编码器200可以使用一个或多个运动矢量来生成预测器块。视频编码器200通常可以执行运动搜索,以识别例如相对于CU和参考块之间的差异而与CU紧密匹配的参考块。视频编码器200可以使用绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)或其它这种差异计算来计算差异度量,以确定参考块是否与当前CU紧密匹配。在一些示例中,视频编码器200可以使用单向预测或双向预测来预测当前CU。
JEM和VVC的一些示例还提供仿射运动补偿模式,其可以被认为是帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动的两个或更多个运动矢量,诸如放大或缩小、旋转、透视运动或其他不规则运动类型。
为了执行帧内预测,视频编码器200可以选择帧内预测模式来生成预测器块。JEM和VVC的一些示例提供67种帧内预测模式,包括各种方向的模式,以及平面模式和DC模式。通常,视频编码器200选择帧内预测模式,该模式描述到当前块(例如CU的块)的相邻样点,根据该相邻样点来预测当前块的样点。假设视频编码器200以光栅扫描顺序(从左到右、从上到下)对CTU和CU进行译码,则这种样点通常可以在与当前块相同的图片中在当前块的上方、左上方或者左侧。
视频编码器200对表示当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用各种可用帧间预测模式中的哪一种的数据以及对应模式的运动信息进行编码。例如,对于单向或双向帧间预测,视频编码器200可以使用先进运动矢量预测(AMVP)或合并模式来编码运动矢量。视频编码器200可以使用类似的模式来编码仿射运动补偿模式的运动矢量。
在预测(诸如块的帧内预测或帧间预测)之后,视频编码器200可以计算块的残差数据。残差数据(诸如残差块)表示块和该块的使用相应预测模式形成的预测器块之间的逐样点差异。视频编码器200可以对残差块应用一个或多个变换,以在变换域而不是样点域中产生变换数据。例如,视频编码器200可以对残差视频数据应用离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换。此外,视频编码器200可以在一次变换之后应用二次变换,诸如模式依赖的不可分离二次变换(MDNSST)、信号依赖的变换、卡尔亨-洛夫(Karhunen-Loeve)变换(KLT)等。视频编码器200在应用一个或多个变换后产生变换系数。
如上所述,在用于产生变换系数的任何变换之后,视频编码器200可以执行变换系数的量化。量化通常是指量化变换系数以尽可能减少用于表示变换系数的数据量、从而提供进一步压缩的处理。通过执行量化处理,视频编码器200可以减少与一些或所有变换系数相关联的比特深度。例如,视频编码器200可以在量化期间将n比特值向下舍入到m比特值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以对要量化的值执行按比特(bitwise)右移。
在量化之后,视频编码器200可以扫描变换系数,以从包括量化的变换系数的二维矩阵中产生一维矢量。可以将扫描设计成将较高能量(因此较低频率)的系数放置在矢量的前面,并将较低能量(因此较高频率)的变换系数放置在矢量的后面。在一些示例中,视频编码器200可以利用预定义的扫描顺序来扫描量化的变换系数以产生串行化的矢量,然后对该矢量的量化的变换系数进行熵编码。在其他示例中,视频编码器200可以执行自适应扫描。在扫描量化的变换系数以形成一维矢量之后,视频编码器200可以例如根据上下文自适应二进制算术编译码(CABAC)对一维矢量进行熵编码。视频编码器200还可以对描述了与经编码视频数据相关联的元数据的语法元素的值进行熵编码,以供视频解码器300在解码视频数据时使用。
为了执行CABAC,视频编码器200可以将上下文模型中的上下文分配给要发送的符号。该上下文可以涉及例如该符号的相邻值是否为零值。概率确定可以基于分配给符号的上下文。
视频编码器200还可以例如在图片报头、块报头、条带报头中生成到视频解码器300的语法数据(诸如基于块的语法数据、基于图片的语法数据和基于序列的语法数据)或诸如序列参数集(SPS)、图片参数集(PPS)或视频参数集(VPS)的其他语法数据。视频解码器300同样可以解码这样的语法数据,以确定如何解码相应的视频数据。
以这种方式,视频编码器200可以生成包括经编码视频数据的比特流,例如,描述将图片分割成块(例如CU)的语法元素以及块的预测和/或残差信息。最终,视频解码器300可以接收比特流并对经编码视频数据进行解码。
通常,视频解码器300执行与视频编码器200执行的过程相反的过程,以对比特流的经编码视频数据进行解码。例如,视频解码器300可以使用CABAC以与视频编码器200的CABAC编码处理基本相似但相反的方式来对比特流的语法元素的值进行解码。语法元素可以定义从图片到CTU的拆分信息,并根据相应的分割结构(诸如QTBT结构)对每个CTU进行分割,以定义CTU的CU。语法元素还可以定义视频数据块(例如CU)的预测和残差信息。
残差信息可以由例如量化的变换系数来表示。视频解码器300可以对块的量化的变换系数进行逆量化和逆变换,以再现该块的残差块。视频解码器300使用发信号通知的预测模式(帧内预测或帧间预测)和相关的预测信息(例如用于帧间预测的运动信息)来形成块的预测器块。视频解码器300然后可以(在逐样点的基础上)组合预测器块和残差块,以再现原始块。视频解码器300可执行附加的处理,诸如执行去块处理,以减少沿着块边界的视觉伪像。
图2是示出根据本公开的一种或多种技术的当前图片参考(CPR)译码过程的示例的图。根据一个示例性CPR过程,视频编码器200可以例如从位于搜索区域中的视频数据的一组先前译码和重构的块中选择预测器视频块。在图1的示例中,搜索区域8包括一组先前译码和重构的视频块。搜索区域8中的块可以表示已经由视频解码器300解码和重构并存储在解码图片缓冲区314中的块,或者已经在视频编码器200的重构循环中被解码和重构并存储在解码图片缓冲区218中的块。当前块2表示要译码的视频数据的当前块。预测器块4表示与当前块2在同一图片中的经重构视频块,其用于当前块2的BC内预测。
在示例CPR过程中,视频编码器200可以确定并编码运动矢量6以及残差信号,该运动矢量6指示预测器块4相对于当前块2的位置。比如,如图1所示,运动矢量6可以指示预测器块4的左上角相对于当前块2的左上角的位置。运动矢量6也可以被称为偏移矢量、位移矢量或块矢量(BV)。视频解码器300可以利用经编码信息来解码当前块。
如上所述,在当前CPR模式中,参考区域(例如搜索区域8)可以被限制到包括正被预测的块的当前译码树单元(CTU)(例如包括当前块2的CTU)的重构样点。这种限制可能是有利的,因为它减少了执行CPR所需的存储量。然而,如上所述,这种限制可能会降低CPR的译码效率。
根据本公开的一种或多种技术,当使用CPR模式对视频数据的块进行译码时,视频译码器(例如视频编码器200和/或视频解码器300)可以利用混合搜索区域。比如,视频译码器可以为在视频数据的当前图片中的、视频数据的当前译码树单元(CTU)的多个译码块中的每个相应译码块确定多个相应搜索区域中的相应搜索区域。多个搜索区域中的搜索区域可以均不同。比如,用于CTU的任何给定译码块的搜索区域可以不同于用于CTU的任何其他译码块的搜索区域。可以将搜索区域认为是混合的,因为用于至少一个译码块的搜索区域包括位于当前CTU外部的当前图片的样点,并且用于至少一个译码块的搜索区域不包括位于当前CTU外部的当前图片的样点。通过利用混合搜索区域,视频译码器可以平衡用于执行CPR的存储与译码效率。
本公开通常可以指“发信号通知”某些信息,诸如语法元素。术语“发信号通知”通常可以指用于对经编码视频数据进行解码的语法元素和/或其他数据的值的通信。也就是说,视频编码器200可以在比特流中发信号通知语法元素的值。通常,发信号通知是指在比特流中生成值。如上所述,源设备102可以基本上实时地或者非实时地(诸如当将语法元素存储到存储设备112以供目的设备116稍后取回时可能发生的情况)向目的设备116传输比特流。
图3A和3B是说明示例四叉树二叉树(QTBT)结构130和对应的译码树单元(CTU)132的概念图。实线表示四叉树拆分,而虚线指示二叉树拆分。在二叉树的每个拆分(即非叶)节点中,发信号通知一个标志以指示使用哪种拆分类型(即水平或垂直),其中在此示例中,0指示水平拆分,而1表示垂直拆分。对于四叉树拆分,由于四叉树节点将一个块水平和垂直地拆分为大小相等的4个子块,因此无需指示拆分类型。相应地,视频编码器200可以编码针对QTBT结构130的区域树级别(即实线)的语法元素(诸如拆分信息)和针对QTBT结构130的预测树级别(即虚线)的语法元素(诸如拆分信息),并且视频解码器300可以对以上语法元素进行解码。视频编码器200可以针对由QTBT结构130的终端叶节点表示的CU对视频数据进行编码(诸如预测和变换数据),并且视频解码器300可以对以上视频数据进行解码。
通常,图3B的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并且根据预测和变换对其进行进一步处理而无需进一步分割。
在一些示例中,视频译码器可以对用CPR译码的亮度分量执行具有整数块补偿的块补偿。以此方式,视频译码器可避免对亮度分量执行插值。在一些实例中,视频译码器可使用子像素块补偿对色度分量执行块补偿。如此,视频译码器可对色度分量执行插值。
图4是示出可以执行本公开的技术的示例视频编码器200的框图。图4是出于解释的目的而提供的,并且不应被认为是对本公开中广泛示例和描述的技术的限制。为了说明的目的,本公开在诸如开发中的HEVC视频译码标准和H.266视频译码标准之类的视频译码标准的上下文中描述了视频编码器200。然而,本公开的技术不限于这些视频译码标准,并且通常可应用于视频编码和解码。
在图4的示例中,视频编码器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的单元可以被实现为一个或多个电路或逻辑元件,作为硬件电路的一部分,或者被实现为FPGA的处理器ASIC的一部分。此外,视频编码器200可包括额外的或替代的处理器或处理电路,以执行这些和其他功能。
视频数据存储器230可以存储要由视频编码器200的组件来进行编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。DPB 218可以用作参考图片存储器,参考图片存储器存储参考视频数据,供视频编码器200在预测后续视频数据时使用。视频数据存储器230和DPB 218可以由多种存储设备中的任何一种形成,诸如包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、阻变RAM(RRAM)的动态随机存取存储器(DRAM),或其他类型的存储设备。视频数据存储器230和DPB 218可以由相同的存储设备或单独的存储设备提供。在各种示例中,视频数据存储器230可以与视频编码器200的其他组件一起置于芯片上,如图所示,或者相对于那些组件置于芯片外。
在本公开中,对视频数据存储器230的引用不应解释为限于视频编码器200内部的存储器(除非特别说明如此)或者视频编码器200外部的存储器(除非特别说明如此)。而是,对视频数据存储器230的引用应理解为存储视频编码器200接收的用于经编码视频数据(例如待编码的当前块的视频数据)的参考存储器。图1的存储器106还可以对来自视频编码器200的各个单元的输出提供临时存储。
图示了图4的各个单元用来帮助理解由视频编码器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通常协调多个编码遍次(pass)来测试编码参数的组合以及得出的针对这些组合的速率失真值。编码参数可以包括CTU到CU的分割、CU的预测模式、CU的残差数据的变换类型、CU的残差数据的量化参数等。模式选择单元202可以最终选择具有比其他测试的组合更佳的速率失真值的编码参数的组合。
视频编码器200可以将从视频数据存储器230中取回的图片分割为一系列CTU,并将一个或多个CTU封装在条带内。模式选择单元202可以根据树结构(诸如上述HEVC的QTBT结构或四叉树结构)来对图片的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可以检索由相应的运动矢量标识的两个参考块的数据并且例如通过逐样点平均或加权平均来组合检索的数据。
作为另一示例,对于帧内预测或帧内预测译码,帧内预测单元226可以根据与当前块相邻的样点来生成预测器块。例如,对于定向模式,帧内预测单元226通常可以数学地组合相邻样点值,并且在当前块上沿定义的方向填充这些计算值来产生预测器块。作为另一示例,对于DC模式,帧内预测单元226可以计算当前块的相邻样点的平均值,并且生成预测器块以包括对于预测器块的每一个样点所得到的平均值。
模式选择单元202向残差生成单元204提供预测器块。残差生成单元204从视频数据存储器230接收当前块的原始的未经编码版本,并从模式选择单元202接收预测器块。残差生成单元204计算当前块和预测器块之间的逐样点差。所得到的逐样点差定义当前块的残差块。在一些示例中,残差生成单元204还可以使用残差差分脉冲译码调制(RDPCM)来确定残差块中样点值之间的差以生成残差块。在某些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。
在模式选择单元202将CU分割为PU的示例中,每个PU可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种尺寸的PU。如上所述,CU的尺寸可以指CU的亮度译码块的尺寸,而PU的尺寸可以指PU的亮度预测单元的尺寸。假设特定CU的尺寸为2N×2N,则视频编码器200可以支持用于帧内预测的2N×2N或N×N的PU尺寸,以及用于帧间预测的2N×2N、2N×N、N×2N、N×N或类似的对称PU尺寸。视频编码器20和视频解码器30还可以支持对用于帧间预测的2N×nU、2N×nD、nL×2N和nR×2N的PU尺寸的非对称分割。
在模式选择单元不将CU进一步分割为PU的示例中,每一个CU可以与亮度译码块和对应的色度译码块相关联。如上所述,CU的尺寸可以指CU的亮度译码块的尺寸。视频编码器200和视频解码器300可以支持2N×2N、2N×N或N×2N的CU尺寸。
对于其他视频译码技术,诸如作为一些示例的块内复制模式译码、仿射模式译码和线性模型(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)译码操作、指数-格伦布译码操作或另一类型的熵编码操作。在一些示例中,熵编码单元220可以在语法元素未被熵编码的旁路模式下操作。
视频编码器200可以输出比特流,其包括对条带或图片的块进行重构所需的熵编码的语法元素。具体地,熵编码单元220可以输出比特流。
上述操作是针对块来描述的。这样的描述应该理解为是用于亮度译码块和/或色度译码块的操作。如上所述,在一些示例中,亮度译码块和色度译码块是CU的亮度和色度分量。在一些示例中,亮度译码块和色度译码块是PU的亮度和色度分量。
在一些示例中,不必针对色度译码块重复对于亮度译码块执行的操作。作为一个示例,不需要重复用于识别亮度译码块的运动矢量(MV)和参考图片的操作来识别用于色度块的MV和参考图片。相反,可以缩放亮度译码块的MV来确定色度块的MV,并且参考图片可以是相同的。作为另一示例,对于亮度译码块和色度译码块,帧内预测处理可以是相同的。
视频编码器200表示被配置为编码视频数据的设备的示例,该设备包括被配置为存储视频数据的存储器以及一个或多个处理单元,该一个或多个处理单元在电路中实现并配置为:针对视频数据的当前画面中的视频数据的当前译码树单元(CTU)的多个译码块中的每个相应译码块,确定多个相应搜索区域中的相应搜索区域,其中所述多个搜索区域中的搜索区域均不同(即,没有两个搜索区域包含相同的区域,尽管一些搜索区域可能重叠),其中所述多个搜索区域中的至少一个搜索区域包括位于当前CTU外部的当前图片的样点,并且其中所述多个搜索区域中的至少一个搜索区域不包括位于当前CTU外部的当前图片的样点;针对每个相应译码块,并且从用于相应译码块的相应搜索区域内,选择多个预测器块中的相应预测器块;基于在所述多个预测器块中的对应预测器块中包括的样点,重建每个相应译码块的样点;以及在视频比特流中并且针对多个译码块中的每个相应译码块编码一个或多个语法元素,该语法元素表示标识所选择的预测器块的相应矢量的值。
图5是示出可以执行本公开的技术的示例视频解码器300的框图。图5是出于解释的目的而提供的,而非对本公开中广泛示例和描述的技术的限制。为了说明的目的,本公开描述了根据JEM、VVC和HEVC的技术描述的视频解码器300。然而,本公开的技术可以由配置为其他视频译码标准的视频译码设备来执行。
在图5的示例中,视频解码器300包括译码图片缓冲区(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和解码图片缓冲区(DPB)314。CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和DPB 314中的任何一个或全部可以在一个或多个处理器或处理电路中实现。比如,视频解码器300的单元可以被实现为一个或多个电路或逻辑元件,以作为硬件电路的一部分,或者作为FPGA的处理器ASIC的一部分。此外,视频解码器300可包括额外的或替代的处理器或处理电路,以执行这些和其他功能。
预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括附加单元,用于根据其他预测模式来执行预测。作为示例,预测处理单元304可以包括调色板单元、块内复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(LM)单元等。在其他示例中,视频解码器300可以包括更多、更少或不同的功能组件。
CPB存储器320可以存储将由视频解码器300的组件进行解码的视频数据,诸如经编码视频比特流。例如,可以从计算机可读介质110(图1)获得存储在CPB存储器320中的视频数据。CPB存储器320可以包括存储来自经编码视频比特流的经编码视频数据(例如语法元素)的CPB。而且,CPB存储器320可以存储除了译码图片的语法元素外部的视频数据,诸如表示来自视频解码器300的各个单元的、输出的临时数据。DPB 314通常存储解码图片,当对经编码视频比特流的后续数据或图片进行解码时,视频解码器300可以输出经解码图片和/或将其用作参考视频数据。CPB存储器320和DPB 314可以由多种存储设备中的任何一种形成,诸如包括SDRAM、MRAM、RRAM的动态随机存取存储器(DRAM),或者其他类型的存储设备。CPB存储器320和DPB 314可以由相同的存储设备或单独的存储设备提供。在各种示例中,CPB存储器320可以与视频解码器300的其他组件一起置于芯片上,或者相对于那些组件置于芯片外。
另外地或可替代地,在一些示例中,视频解码器300可以从存储器120(图1)中取回译码视频数据。即存储器120可以如上述讨论与CPB存储器320一起存储数据。同样,当视频解码器300的某些或全部功能在将由视频解码器300的处理电路执行的软件实现时,存储器120可以存储将由视频解码器300执行的指令。
图示图5的各个单元以帮助理解由视频解码器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(图4)所描述的方式基本上相似的方式来执行帧间预测过程。
作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测器块。再次,帧内预测单元318总体上可以以与针对帧内预测单元226(图4)所描述的方式基本上相似的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314中检索当前块的相邻样点的数据。
重构单元310可以使用预测器块和残差块来重构当前块。例如,重构单元310可以将残差块的样点添加到预测器块的对应样点来重构当前块。
滤波器单元312可以对重构块执行一个或多个滤波器操作。例如,滤波器单元312可以执行去方块操作来减少沿着重构块的边缘的块状伪影。不一定在所有示例中都执行滤波器单元312的操作。
视频解码器300可以将重构块存储在DPB 314中。比如,在不执行滤波器单元312的操作的示例中,重构单元310可以将重构块存储到DPB 314。在执行滤波器单元312的操作的示例中,滤波器单元312可以将滤波后的重构块存储到DPB 314。如上所述,DPB 314可以向预测处理单元304提供参考信息,诸如用于帧内预测的当前图片的样点以及用于随后的运动补偿的先前解码图片。此外,视频解码器300可以从DPB输出解码图片(例如解码视频),用于随后呈现在诸如图1的显示设备118的显示设备上。
以这种方式,视频解码器300表示视频解码设备的示例,该视频解码设备包括被配置为存储视频数据的存储器以及一个或多个处理单元,该处理单元在电路中实现并且配置为:针对在视频数据的当前图片中的、视频数据的当前译码树单元(CTU)的多个译码块中的每个相应译码块,确定多个相应搜索区域中的相应搜索区域,其中所述多个搜索区域中的搜索区域均不同,其中所述多个搜索区域中的至少一个搜索区域包括位于当前CTU外部的当前图片的样点,并且其中所述多个搜索区域中的至少一个搜索区域不包括位于当前CTU外部的当前图片的样点;从视频比特流中并且针对多个译码块中的每个相应译码块,解码一个或多个语法元素,该语法元素表示标识相应搜索区域中的预测器块的矢量的值;针对每个相应译码块并且基于相应的矢量,选择多个预测器块中的相应预测器块;以及基于在多个预测器块中的相应预测器块中包括的样点来重构每个相应译码块的样点。
图6是示出根据本公开的一种或多种技术的使用管线译码的(译码树单元)CTU的概念图。如图6所示,CTU 600可以被分割成虚拟管线数据单元(VPDU)602A-602D(统称为“VPDU 602”)。比如,在CTU 600包括128×128个样点的情况下,CTU 600可以被划分成多个VPDU 602,每个VPDU 602可以包括64×64个样点。在CPR的一些实施方式中,视频译码器(例如视频编码器200和/或视频解码器300)可以利用被配置为处理64×64个样点的译码单元的管线。
如上所述,本公开描述了一种技术,在该技术中视频译码器可以在使用CPR预测当前CTU的译码块时所使用的搜索区域(例如CPR搜索区域)中包括来自当前CTU外部的样点。本公开描述了用于扩展CPR搜索区域的若干种技术,每种技术可以独立使用或者与任何其他技术组合使用。
根据本公开的第一技术,视频译码器可以在CPR搜索区域中包括当前CTU上方的A行和当前CTU左侧的B列。行A和行B的可用数量可能取决于由其他工具(诸如帧内预测和去块滤波)使用的像素。包括这些样点不会显著增加存储器需求,这是因为CTU周围的样点可能已经被用于帧内预测和去块滤波。
根据本公开的第二种技术,视频译码器可以针对当前CTU中的不同译码块使用不同的搜索区域。比如,视频译码器可以在用于一些译码块而非其他译码块的CPR搜索区域中选择性地包括当前CTU上方的A行和当前CTU左侧的B列(例如第一技术的搜索区域)。作为一个示例,视频译码器可以在CPR搜索区域中选择性地包括用于对位于当前CTU的左侧和/或上方边界的块进行译码的、当前CTU上方的A行和当前CTU左侧的B列,。
图7是示出根据本公开的一种或多种技术的用于CPR的示例搜索区域的概念图。如图所示,CTU 700可以被划分成MxN个译码块702(0,0)–702(M-1,N-1)。如上文讨论的,视频译码器可以对当前CTU中的不同译码块使用不同的搜索区域。用于CTU的特定译码块的搜索区域可以基于该特定译码块在CTU内的位置来确定。作为一个示例,视频译码器可将来自上方相邻CTU 704及左上方相邻CTU 708的A个上方行的样点包括在用于位于CTU 700的最顶部行中的译码块(即,行n=0中的译码块)的搜索区域中。作为另一示例,视频译码器可将来自左侧相邻CTU 706及左上方相邻CTU 708的B个左侧列的样点包括在用于位于CTU 700的最左侧列中的译码块(即,列m=0中的译码块)的搜索区域中。这样,译码块702(0,0)的搜索区域可包括来自上方相邻的CTU 704和左上方相邻的CTU 708的A个上方行,以及来自左侧相邻的CTU 706和左上方相邻的CTU 708的B个左侧列。
图8是示出根据本公开的一种或多种技术的用于CPR的示例搜索区域的概念图。如图8所示,CTU 800可以被分成四个译码块802A-802D(统称为“译码块802”)。在一些示例中,译码块802可被称为VPDU。例如,在CTU 800包括128×128个样点的情况下,CTU 800可以被拆分成多个VPDU 802,每个VPDU 802可以包括64×64个样点。
可基于译码块802在CTU 800内的相对位置来对其进行引用。作为一个示例,译码块802A可以被称为左上方译码块。作为另一个示例,译码块802B可以被称为右上方译码块。作为另一个示例,译码块802C可以被称为左下方译码块。作为另一个示例,译码块802D可以被称为右下方译码块。
CTU 800可以与其他CTU一起位于视频数据的图片中。其他CTU可能位于基于它们相对于CTU 800的相对位置而被引用的区域中。作为一个示例,顶部相邻区域804可以包括位于CTU 800上方的一个或多个CTU。作为另一个示例,左侧相邻区域806可以包括位于CTU800左侧的一个或多个CTU。作为另一个示例,左上方相邻区域808可以包括位于CTU 800左上方的CTU。
如上文讨论的,视频译码器可以针对CTU中的译码块利用混合搜索区域。比如,视频译码器可以为译码块802中的每个利用不同的搜索区域。可以将搜索区域认为是混合的,因为译码块802的至少一个译码块的搜索区域包括位于CTU 800外部的当前图片的样点,并且译码块802的至少一个译码块的搜索区域不包括位于CTU 800外部的当前图片的样点。
视频译码器可以针对译码块802中的每个译码块确定相应搜索区域。在图8的示例中,视频译码器可以确定用于译码块802A的搜索区域包括至少一些位于CTU 800外部的样点。比如,视频译码器可以在用于译码块802A的搜索区域中包括CTU 800上方的多达N个顶部行(例如,来自上方相邻区域804的多达N个行)、CTU 800的多达M个左侧列(例如,来自左测相邻区域806的多达M个列)和/或左上方相邻区域808。这样,在一些示例中,用于译码块802A的搜索区域可以包括来自位于CTU 800的译码块802A左侧的CTU中的译码块的样点。
视频译码器可以确定用于译码块802B的搜索区域包括至少一些位于CTU 800外部的样点以及至少一些位于CTU 800内部的样点。比如,视频译码器可以包括CTU 800上方的多达N个顶部行(例如,来自上方相邻区域804的多达N行)和/或来自用于译码块802B的搜索区域中的译码块802A的样点。
视频译码器可以确定用于译码块802C的搜索区域包括至少一些位于CTU 800外部的样点以及至少一些位于CTU 800内部的样点。比如,视频议案器可以包括CTU 800的多达M个左侧列(例如,来自左侧相邻区域806的多达M个列)、来自译码块802A的样点和/或来自用于译码块802B的搜索区域中的译码块802B的样点。
视频译码器可以确定用于译码块802C的搜索区域不包括位于CTU 800外部的样点。比如,视频译码器可以包括来自译码块802A的上部样点、来自译码块802B的样点和/或来自用于译码块802B的搜索区域中的译码块802C的样点。然而,视频译码器可以不包括来自用于译码块802B的搜索区域中的左侧相邻区域806的样点。
鉴于以上所述,在一些示例中,视频译码器可以确定用于左上方译码块、右上方译码块和左下方译码块的相应搜索区域包括位于当前CTU外部的当前图片的样点。比如,视频译码器可以确定用于译码块802A、802B和802C中的每一个的搜索区域包括位于CTU 800外部的样点。类似地,视频译码器可以确定用于左上方译码块和左下方译码块的相应搜索区域包括位于当前CTU的左侧相邻CTU中的当前图片的样点。比如,视频译码器可以确定用于译码块802A和802C中的每一个的搜索区域包括位于左侧相邻区域806的CTU中的样点。
另外,在一些示例中,视频译码器可以确定用于右下方译码块的相应搜索区域不包括位于当前CTU外部的当前图片的样点。比如,视频译码器可以确定用于译码块802D的搜索区域不包括位于CTU 800外部的样点。类似地,视频译码器可确定用于右下方译码块的相应搜索区域包括左上方译码块、右上方译码块及左下方译码块。比如,视频译码器可以确定用于译码块802D的搜索区域包括来自译码块802A、802B和802C的样点。
根据本公开的第三技术,视频译码器可以使用具有搜索区域的CPR对当前CTU的当前VPDU进行译码,该搜索区域包括当前CTU内的先前译码的VPDU和当前VPDU内的经编码区域。哪些VPDU被认为是先前译码的VPDU可以是译码顺序的函数。
图9A-9C是示出根据本公开的一种或多种技术的用于以各种扫描顺序执行CPR的示例搜索区域的概念图。图9A-9C中的每一个示出了被划分成MxN个VPDU 902(0,0)-902(M-1,N-1)(统称为“VPDU 902”)的当前CTU 900。出于解释的目的,VPDU 902(1,1)将被用作当前VPDU。如图902A-902C所示,VPDU 902(1,1)可以被划分成块904A-904D(统称为“块904”)。在图9A-9C的每一个中,视频译码器可以包括用于VPDU 902(1,1)(即当前VPDU)的搜索区域中的VPDU 902的阴影VPDU。
图9A示出了用于以水平光栅扫描顺序(例如从左到右、从上到下)执行CPR的示例搜索区域。如图9A所示,视频译码器可以将当前VPDU上方的VPDU行中的VPDU以及在同一VPDU行处的当前VPDU左侧的VPDU包括在用于当前VPDU的搜索区域中。在一些示例中,视频译码器可以将当前VPDU内的块包括在用于当前VPDU内的其他块的搜索区域中。比如,视频译码器可以将块904A、904B和904C包括在用于块904D的搜索区域中。在一些示例中,视频译码器可将VPDU 902中展示为白色(无阴影)的VPDU包括在用于CTU 900的块的搜索区域中,上述VPDU含有来自先前处理的CTU(例如,按译码顺序紧接在CTU 900之前的CTU)的样点。
图9B示出了用于以垂直光栅扫描顺序(例如从上到下、从左到右)执行CPR的示例搜索区域。如图9B所示,视频译码器可以将位于当前VPDU左侧的VPDU列中的VPDU以及在同一VPDU列处的当前VPDU上方的VPDU包括在用于当前VPDU的搜索区域中。在一些示例中,视频译码器可以将当前VPDU内的块包括在用于当前VPDU内的其他块的搜索区域中。例如,视频译码器可以将块904A、904B和904C包括在用于块904D的搜索区域中。在一些示例中,视频译码器可将VPDU 902中展示为白色(无阴影)的VPDU包括在用于CTU 900的块的搜索区域中,上述VPDU含有来自先前处理的CTU(例如,按译码顺序紧接在CTU 900之前的CTU)的样点。
图9C示出了用于以Z形(zig-zag)扫描顺序执行CPR的示例搜索区域。如图9C所示,视频译码器可将以Z形顺序位于当前VPDU左侧的VPDU包括在用于当前VPDU的搜索区域中。在一些示例中,视频译码器可以将当前VPDU内的块包括在用于当前VPDU内的其他块的搜索区域中。比如,视频译码器可以将块904A、904B和904C包括在用于块904D的搜索区域中。在一些示例中,视频译码器可将VPDU 902中展示为白色(无阴影)的VPDU包括在用于CTU 900的块的搜索区域中,上述VPDU含有来自先前处理的CTU(例如,按译码顺序紧接在CTU 900之前的CTU)的样点。
图10是示出根据本公开的一种或多种技术的用于CPR的示例搜索区域的概念图。如图10所示,CTU 1000可以被划分成四个译码块1002A-1002D(统称为“译码块1002”)。在一些示例中,译码块1002可被称为VPDU。比如,在CTU 1000包括128×128个样点的情况下,CTU1000可以被拆分成多个VPDU 1002,每个VPDU 602可以包括64×64个样点。
如上所述,视频译码器可将来自当前CTU的先前译码的VPDU的样点包括在用于当前CTU的当前VPDU(例如,用于执行CPR)的搜索区域中。如图10所示,译码顺序可以为VPDU1002A-1002B-1002C-1002D。在该示例中,译码器可将VPDU 1002A包括在用于VPDU 1002B的搜索区域中(例如,VPDU 1002B可将VPDU 1002A用于参考)。视频译码器可以将VPDU 1002A和VPDU 1002B包括在用于VPDU 1002C的搜索区域中。视频译码器可以将VPDU 1002A-1002C包括在用于VPDU 1002D的搜索区域中。
图11是示出根据本公开的一种或多种技术的用于CPR的示例搜索区域的概念图。如图11所示,CTU 1100可以被划分成四个译码块1102A-1102D(统称为“译码块1102”)。在一些示例中,译码块1102可被称为VPDU。比如,在CTU 1100包括128×128个样点的情况下,CTU1100可以被拆分成多个VPDU 1102,每个VPDU 602可以包括64×64个样点。
如上所述,视频译码器可将来自当前CTU的先前译码的VPDU的样点包括在用于当前CTU的当前VPDU(例如,用于执行CPR)的搜索区域中。如图11所示,译码顺序可以为VPDU1102A-1102C-1102B-1102D。在该示例中,译码器可将VPDU 1102A包括在用于VPDU 1102C的搜索区域中(例如,VPDU 1102C可将VPDU 1102A用于参考)。视频译码器可以将VPDU 1102A和VPDU 1102C包括在用于VPDU 1102B的搜索区域中。视频译码器可以将VPDU 1102A-1102C包括在用于VPDU 1102D的搜索区域中。
根据本公开的第四技术,视频译码器可将来自相邻CTU的样点及来自当前CTU中的其他译码块的样点的组合包括在用于当前CTU中的译码块的搜索区域中。比如,VPDU的CPR搜索区域可包括位于当前VPDU内的相邻样点及经重构区域。可包含相邻样点及参考区域的大小的、可用于CPR的参考区域的配置和/或定义可取决于VPDU在CTU内的位置。
图12A-12D是示出根据本公开的一种或多种技术的用于针对CTU的各种译码块执行CPR的示例搜索区域的概念图。图12A–12D中的每一个示出了当前CTU 1200可以被划分成四个译码块1202A-1202D(统称为“译码块1202”)。在一些示例中,译码块1202可被称为VPDU。比如,在CTU 1200包括128×128个样点的情况下,CTU 1200可以被拆分成多个VPDU1202,每个VPDU 602可以包括64×64个样点。图12A-12D中的每一个中的阴影区可表示用于当前块的搜索区域。在图12A–12D中的每一个中,阴影区(且因此搜索区域)可包括上方行1204(例如n个上方行)及左侧列1206(例如m个左侧列)。上方行1204及左侧列1206的位置可基于当前块的位置而改变。
图12A示出了译码块1202A的示例搜索区域,也称为左上方译码块。如图12A中所示,上方行1204和左侧列1206可均位于CTU 1200外部。
图12B示出了译码块1202A的示例搜索区域,也称为右上方译码块。如图12B中所示,上方行1204可以位于CTU 1200外部,而左侧列1206可以至少部分位于CTU 1200内部。
图12C示出了译码块1202A的示例搜索区域,也称为左下方译码块。如图12C中所示,左侧列1206可以位于CTU 1200外部,而上方行1204可以至少部分位于CTU 1200内部。
图12D示出了译码块1202A的示例搜索区域,也称为右下方译码块。如图12D中所示,上方行1204和左侧列1206可均位于CTU 1200内部。
在一个示例中,M、N、m及n个行的范围可介于1至4内(包括端点)。如先前所述,在另一示例中,M、N、m及n可由诸如插值预测及去块滤波器之类的其他工具所需的行数来确定。
在另一示例中,位于CTU外部的M及N个行可与位于CTU内部的m及n个行具有不同计数。例如,M及N可等于1,而m及n可等于4。
在各种示例中,上文技术可应用于其他CTU及VPDU大小。例如,CTU大小可为256。在另一示例中,VPDU大小可为32×32。其他VPDU及CTU大小亦可结合上文技术使用。
图13是示出用于编码当前块的示例方法的流程图。当前块可以包括当前CU。尽管相对于视频编码器200(图1及图4)加以描述,但应理解,其他设备可经配置以执行类似于图13中方法的方法。
在该示例中,视频编码器200初始地预测当前块(350)。例如,视频编码器200可形成当前块的预测器块。比如,在当前块为当前译码树单元(CTU)的多个译码块中的当前译码块的情况下,视频编码器200可针对多个译码块中的每个相应译码块确定多个相应搜索区域中的对应搜索区域。在一些示例中,多个搜索区域中的搜索区域可以均不同。在一些示例中,多个搜索区域中的至少一个搜索区域包括位于当前CTU外部的当前图片的样点。在一些示例中,多个搜索区域中的至少一个搜索区域不包括位于当前CTU外部的当前图片的样点。
视频编码器200可接着计算当前块的残差块(352)。为了计算残差块,视频编码器200可计算当前块的原始的未经编码块与预测器块之间的差。视频编码器200可接着变换并量化残差块的系数(354)。接着,视频编码器200可扫描残差块的经量化变换系数(356)。在扫描期间或在扫描之后,视频编码器200可熵编码变换系数(358)。例如,视频编码器200可使用CAVLC或CABAC编码变换系数。视频编码器200可接着输出块的熵编码数据(360)。
图14是示出用于解码视频数据的当前块的示例方法的流程图。当前块可以包括当前CU。尽管相对于视频解码器300(图1及图5)加以描述,但应理解,其他设备可经配置以执行类似于图14中方法的方法。
视频解码器300可接收当前块的熵编码数据,诸如对应于当前块的残差块的系数的熵编码预测信息及熵编码数据(370)。视频解码器300可以对熵编码数据进行熵解码,以确定针对当前块的预测信息,并再现残差块的系数(372)。视频解码器300可预测当前块(374),例如,使用由当前块的预测信息指示的帧内或帧间预测模式,来计算针对当前块的预测器块。比如,在当前块为当前译码树单元(CTU)的多个译码块中的当前译码块的情况下,视频解码器300可针对多个译码块中的每个相应译码块确定多个相应搜索区域中的对应搜索区域。在一些示例中,多个搜索区域中的搜索区域可以均不同。在一些示例中,多个搜索区域中的至少一个搜索区域包括位于当前CTU外部的当前图片的样点。在一些示例中,多个搜索区域中的至少一个搜索区域不包括位于当前CTU外部的当前图片的样点。
视频解码器300接着可以对再现的系数进行逆扫描(376),以创建量化的变换系数块。视频解码器300可以接着对变换系数进行逆量化和逆变换,以生成残差块(378)。视频解码器300可通过组合预测器块和残差块来最终解码当前块(380)。
图15是示出根据本公开的技术的使用混合搜索区域来预测当前图片中的视频数据块的示例方法的流程图。当前块可以包括当前译码树单元(CTU)的当前译码块。尽管相对于视频编码器200(图1及图4)加以描述,但应理解,其他装置可经配置以执行类似于图15中方法的方法。比如,视频解码器300(图1和5)可以被配置成执行类似于图15中方法的方法。
视频编码器200可以针对当前图片的当前CTU的多个译码块中的每个译码块确定相应搜索区域(1502)。比如,视频编码器200可以为图8的译码块802中的每一个确定不同的搜索区域。可以将各个搜索区域认为是混合搜索区域,因为一些搜索区域包括位于当前CTU外部的样点,而一些搜索区域不包括位于当前CTU外部的样点。
多个搜索区域中的至少一个可包括至少一些位于当前CTU外部的当前图片的样点。比如,用于译码块802A(例如左上方译码块)、译码块802B(例如右上方译码块)和译码块802C(例如左下方译码块)的相应搜索区域可以包括位于CTU 800外部的当前图片的样点。作为一个示例,用于左上方译码块和左下方译码块的相应搜索区域可以包括位于当前CTU的左侧相邻CTU中的当前图片的样点。
多个搜索区域中的至少一个可以不包括位于当前CTU外部的当前图片的样点。比如,用于译码块802D(例如右下方译码块)的相应搜索区域可以不包括位于CTU 800外部的当前图片的样点。作为一个示例,用于右下方译码块的相应搜索区域可以包括左上方译码块、右上方译码块和左下方译码块。
视频编码器200可以针对每个译码块从译码块的相应搜索区域内选择相应预测器块(1504)。比如,视频编码器200可以从用于译码块802A的搜索区域内选择包括与译码块802A的样点最紧密匹配的样点的块(例如,将产生最小的残差值),从用于译码块802B的搜索区域内选择包括与译码块802B的样点最紧密匹配的样点的块,从用于译码块802C的搜索区域内选择包括与译码块802C的样点最紧密匹配的样点的块,并从用于译码块802D的搜索区域内选择包括与译码块802D的样点最紧密匹配的样点的块。
视频编码器200可确定每个译码块的相应矢量,每个相应矢量标识相应译码块的相应预测器块。比如,视频编码器200可以确定表示译码块802A和译码块802A的预测器块之间的位移的运动矢量(也称为块矢量)。运动矢量可以具有表示译码块802A和译码块802A的预测器块之间的水平位移的水平分量,以及表示译码块802A和译码块802A的预测器块之间的垂直位移的垂直分量。
视频编码器200可以在译码的视频比特流中编码矢量的表示。例如,运动补偿单元224可以选择运动矢量预测值(MVP),并从MVP中减去所确定的运动矢量,以确定运动矢量差(MVD)。运动补偿单元224可以使熵译码单元220在译码的视频比特流中编码表示MVD值的一个或多个语法元素。视频编码器200可以类似地为每个译码块802B–802D确定和编码运动矢量。
视频编码器200可以重构每个译码块的样点(1506)。例如,作为重构循环的一部分,视频编码器200可以将译码块802A的所选择的预测器块的样点添加到残差数据,以重构译码块802A的值。视频编码器200可以类似地重构译码块802B-802D的样点(例如,基于它们各自的预测器块和各自的残差数据)。
应当认识到,取决于示例,本文描述的任何技术的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,并非所有描述的动作或事件对于技术的实践都是必要的)。此外,在某些示例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器同时执行,而不是顺序执行。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任意组合中实施。如果以软件实施,这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过其传输,并由基于硬件的处理单元执行。计算机可读介质可以包括与诸如数据存储介质的有形介质相对应的计算机可读存储介质,或者包括例如根据通信协议有助于将计算机程序从一个地方传送到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以调取指令、代码和/或数据结构来实施本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储设备、磁盘存储设备或其他磁存储设备、闪存或任何其他可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机访问的介质。此外,任何连接都被恰当地称为计算机可读介质。例如,如果使用同轴电缆、光缆、双绞线、数字订户线路(DSL)、或无线技术(诸如红外线、无线电、和微波),从网站、服务器、或其他远程源发送指令,那么该同轴电缆、光缆、双绞线、DSL、或无线技术(诸如红外线、无线电和微波)都被包括在介质的定义之中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时性介质,而是指向非暂时的有形存储介质。本文使用的光盘和磁盘包括压缩光盘(CD)、激光盘、光学光盘、数字多功能盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。以上的组合也应该包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效的集成或离散的逻辑电路系统。因此,本文使用的术语“处理器”可以指任何前述结构或者适合于实施本文描述的技术的任何其他结构。此外,在一些方面,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块中提供,或者合并在组合的编码器/解码器中。同样,这些技术可以完全在一个或多个电路或逻辑元件中实施。
本公开的技术可以在多种设备或装置中实施,包括无线手机、集成电路(IC)或一组IC(例如芯片集)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,各种单元可以组合在编码器/解码器硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合,结合合适的软件和/或固件来提供。
已经描述了各种示例。这些示例和其他示例在所附权利要求的范围内。

Claims (24)

1.一种译码视频数据的方法,所述方法包括:
针对在视频数据的当前图片中的、视频数据的当前译码树单元(CTU)的多个译码块中的每个相应译码块,确定多个相应搜索区域中的相应搜索区域,其中所述多个搜索区域中的搜索区域均不同,其中所述多个搜索区域中的至少一个搜索区域包括位于所述当前CTU外部的所述当前图片的样点,并且其中所述多个搜索区域中的至少一个搜索区域不包括位于所述当前CTU外部的所述当前图片的样点;
针对每个相应译码块,并且从用于所述相应译码块的所述相应搜索区域内,选择多个预测器块中的相应预测器块;以及
基于在所述多个预测器块中的对应预测器块中包括的样点,重构每个相应译码块的样点。
2.根据权利要求1所述的方法,其中所述多个译码块包括左上方译码块、右上方译码块、左下方译码块和右下方译码块。
3.根据权利要求2所述的方法,其中用于所述左上方译码块、所述右上方译码块和所述左下方译码块的所述相应搜索区域包括位于所述当前CTU外部的所述当前图片的样点。
4.根据权利要求3所述的方法,其中用于所述右下方译码块的所述相应搜索区域不包括位于所述当前CTU外部的所述当前图片的样点。
5.根据权利要求4所述的方法,其中用于所述左上方译码块和所述所述左下方译码块的相应搜索区域包括位于所述当前CTU的左侧相邻CTU中的所述当前图片的样点。
6.根据权利要求5所述的方法,其中用于所述右下方译码块的所述相应搜索区域包括所述左上方译码块、所述右上方译码块以及所述左下方译码块。
7.根据权利要求1所述的方法,其中所述译码块中的每一个包括视频数据的64×64的样点块。
8.根据权利要求7所述的方法,其中所述译码块中的每一个包括虚拟管线数据单元(VPDU)。
9.根据权利要求1所述的方法,还包括:
从视频比特流中并且针对所述多个译码块中的每个相应译码块,解码一个或多个语法元素,所述语法元素表示标识所选择的预测器块的矢量的值,
其中针对相应译码块选择所述预测器块包括:基于所述矢量的所述值来选择所述预测器块。
10.根据权利要求1所述的方法,还包括:
在视频比特流中并且针对所述多个译码块中的每个相应译码块,编码一个或多个语法元素,所述语法元素表示标识所选择的预测器块的相应矢量的值。
11.根据权利要求1所述的方法,其中所述方法由多功能视频译码(VVC)视频译码器执行。
12.一种用于译码视频数据的设备,所述设备包括:
被配置为存储所述视频数据的存储器;以及
一个或多个处理器,其在电路中实现并配置为:
针对在视频数据的当前图片中的、所述视频数据的当前译码树单元(CTU)的多个译码块中的每个相应译码块,确定多个相应搜索区域中的相应搜索区域,其中所述多个搜索区域中的搜索区域均不同,其中所述多个搜索区域中的至少一个搜索区域包括位于当前CTU外部的所述当前图片的样点,并且其中所述多个搜索区域中的至少一个搜索区域不包括位于所述当前CTU外部的所述当前图片的样点;
针对每个相应译码块,并且从用于所述相应译码块的所述相应搜索区域内,选择多个预测器块中的相应预测器块;以及
基于在所述多个预测器块中的对应预测器块中包括的样点,重构每个相应译码块的样点。
13.根据权利要求12所述的设备,其中所述多个译码块包括左上方译码块、右上方译码块、左下方译码块和右下方译码块。
14.根据权利要求13所述的设备,其中用于所述左上方译码块、所述右上方译码块和所述左下方译码块的所述相应搜索区域包括位于所述当前CTU外部的所述当前图片的样点。
15.根据权利要求14所述的设备,其中用于所述右下方译码块的所述相应搜索区域不包括位于所述当前CTU外部的所述当前图片的样点。
16.根据权利要求15所述的设备,其中用于所述左上方译码块和所述所述左下方译码块的所述相应搜索区域包括位于所述当前CTU的左侧相邻CTU中的所述当前图片的样点。
17.根据权利要求16所述的设备,其中用于所述右下方译码块的所述相应搜索区域包括所述左上方译码块、所述右上方译码块以及所述左下方译码块。
18.根据权利要求12所述的设备,其中所述译码块中的每一个包括视频数据的64×64的样点块。
19.根据权利要求18所述的设备,其中所述译码块中的每一个包括虚拟管线数据单元(VPDU)。
20.根据权利要求12所述的设备,其中所述一个或多个处理器还被配置为:
从视频比特流中并且针对所述多个译码块中的每个相应译码块,解码一个或多个语法元素,所述语法元素表示标识所选择的预测器块的矢量的值,
其中,为了针对相应译码块选择所述预测器块,所述一个或多个处理器被配置为基于所述矢量的所述值来选择所述预测器块。
21.根据权利要求12所述的设备,其中所述一个或多个处理器还被配置为:
在视频比特流中并且针对所述多个译码块中的每个相应译码块,编码一个或多个语法元素,所述语法元素表示标识所选择的预测器块的相应矢量的值。
22.根据权利要求12所述的设备,其中所述设备为多功能视频译码(VVC)视频译码器。
23.一种视频译码器,包括:
用于针对在视频数据的当前图片中的、视频数据的当前译码树单元(CTU)的多个译码块中的每个相应译码块,来确定多个相应搜索区域中的相应搜索区域的部件,其中所述多个搜索区域中的搜索区域均不同,其中所述多个搜索区域中的至少一个搜索区域包括位于当前CTU外部的所述当前图片的样点,且其中所述多个搜索区域中的至少一个搜索区域不包括位于所述当前CTU外部的所述当前图片的样点;
用于针对每个相应译码块并且从用于所述相应译码块的所述相应搜索区域内,选择多个预测器块中的相应预测器块的部件;以及
用于基于在所述多个预测器块中的对应预测器块中包括的样点,重构每个相应译码块的样点的部件。
24.一种在其上已存储有指令的计算机可读存储介质,所述指令在被执行时使得一个或多个处理器:
针对在视频数据的当前图片中的、视频数据的当前译码树单元(CTU)的多个译码块中的每个相应译码块,确定多个相应搜索区域中的相应搜索区域,其中所述多个搜索区域中的搜索区域均不同,其中所述多个搜索区域中的至少一个搜索区域包括位于当前CTU外部的所述当前图片的样点,并且其中所述多个搜索区域中的至少一个搜索区域不包括位于所述当前CTU外部的所述当前图片的样点;
针对每个相应译码块,并且从用于所述相应译码块的所述相应搜索区域内,选择多个预测器块中的相应预测器块;以及
基于在所述多个预测器块中的对应预测器块中包括的样点,重构每个相应译码块的样点。
CN201980069437.1A 2018-10-27 2019-10-25 视频译码中的块内复制预测限制 Pending CN112913245A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862751585P 2018-10-27 2018-10-27
US62/751,585 2018-10-27
US16/663,033 2019-10-24
US16/663,033 US11418796B2 (en) 2018-10-27 2019-10-24 Intra block copy prediction restrictions in video coding
PCT/US2019/058119 WO2020086988A1 (en) 2018-10-27 2019-10-25 Intra block copy prediction restrictions in video coding

Publications (1)

Publication Number Publication Date
CN112913245A true CN112913245A (zh) 2021-06-04

Family

ID=70326167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980069437.1A Pending CN112913245A (zh) 2018-10-27 2019-10-25 视频译码中的块内复制预测限制

Country Status (6)

Country Link
US (2) US11418796B2 (zh)
EP (1) EP3871418A1 (zh)
CN (1) CN112913245A (zh)
AR (1) AR116861A1 (zh)
TW (1) TW202027507A (zh)
WO (1) WO2020086988A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11758164B2 (en) * 2018-10-23 2023-09-12 Tencent America LLC Method and apparatus for video coding
US11146805B2 (en) * 2018-11-30 2021-10-12 Tencent America LLC Method and apparatus for video coding
JP7409320B2 (ja) * 2018-12-21 2024-01-09 ソニーグループ株式会社 画像処理装置および方法
WO2020256085A1 (en) * 2019-06-21 2020-12-24 Panasonic Intellectual Property Corporation Of America System and method for video coding

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150071357A1 (en) * 2013-09-12 2015-03-12 Qualcomm Incorporated Partial intra block copying for video coding
US10986349B2 (en) * 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
US10812819B2 (en) * 2018-10-07 2020-10-20 Tencent America LLC Method and apparatus for video coding

Also Published As

Publication number Publication date
US20200137400A1 (en) 2020-04-30
TW202027507A (zh) 2020-07-16
WO2020086988A1 (en) 2020-04-30
US20220377350A1 (en) 2022-11-24
EP3871418A1 (en) 2021-09-01
US11418796B2 (en) 2022-08-16
AR116861A1 (es) 2021-06-23

Similar Documents

Publication Publication Date Title
US11863779B2 (en) Cross-component adaptive loop filter in video coding
US11445203B2 (en) Sub-partition intra prediction in video coding
CN113812148A (zh) 用于视频译码的参考图片重采样和帧间译码工具
CN114128259A (zh) 用于视频译码的合并模式译码
CN114258675A (zh) 用于视频编码的跨分量自适应环路滤波
CN111602395B (zh) 用于视频译码的量化组
CN114521330A (zh) 低频不可分离变换(lfnst)简化
CN113853784A (zh) 用于视频译码的多个自适应环路滤波器集合
CN112673636B (zh) 将运动向量取整以自适应运动向量差分辨率及提高视频译码中的运动向量存储精度
CN113557734A (zh) 视频译码中的系数域块差分脉冲译码调制
CN114223202A (zh) 低频不可分离变换(lfnst)信令
US11418796B2 (en) Intra block copy prediction restrictions in video coding
CN113632466A (zh) 视频数据的帧间-帧内预测模式
CN114375576A (zh) 用于视频编解码的缩放矩阵和信令通知
CN113170162A (zh) 用于视频译码的共享候选列表和并行候选列表推导
CN113924776A (zh) 使用不同的色度格式的具有未经滤波的参考样本的视频译码
CN113545051A (zh) 使用块大小限制的视频数据块的重构
CN115004712A (zh) 用于视频译码的经解码图片缓冲器(dpb)参数信令通知
CN113632483A (zh) 用于视频编解码的受约束的仿射运动继承
CN113545054A (zh) 视频编解码中子块变换的简化
CN113597762A (zh) 视频译码中具有非线性自适应环路滤波器的固定滤波器
CN114846796A (zh) 用于视频译码中的参考图片重采样的环绕偏移
CN114208199A (zh) 用于视频译码的色度帧内预测单元
CN114128298A (zh) 调色板模式下的增量量化参数(qp)信令
CN114375575A (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