帧内预测方法和装置与流程

文档序号:29072070发布日期:2022-03-01 21:38阅读:43来源:国知局
帧内预测方法和装置1.相关申请案的交叉参考2.本专利申请案要求于2019年3月21日提交的申请案号为us62/822,047的美国临时专利申请案以及2019年4月4日提交的申请案号为us62/832,878的美国临时专利申请案的优先权。上述专利申请案通过全文引用的方式并入本文中。
技术领域
:3.本技术案(公开)的实施例大体上涉及图像处理领域,具体涉及帧内预测,尤其涉及帧内子分割或多参考线帧内预测等帧内预测中使用的平面或直流dc模式的方法和装置。
背景技术
::4.视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字电视、基于互联网和移动网络的视频传输、视频聊天、视频会议等实时会话应用、dvd和蓝光光盘、视频内容采集和编辑系统以及安全应用的可携式摄像机。5.即使在视频较短的情况下也需要对大量的视频数据进行描述,当数据要在带宽容量受限的通信网络中发送或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后在现代电信网络中发送。由于内存资源可能有限,当在存储设备上存储视频时,视频的大小也可能成为问题。视频压缩设备通常在信源侧使用软件和/或硬件,以在发送或存储之前对视频数据进行译码,从而减少用来表示数字视频图像所需的数据量。然后,在目的地侧,视频解压缩设备接收压缩后的数据。在有限的网络资源以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不牺牲图像质量的前提下提高压缩比。技术实现要素:6.本技术实施例提供独立权利要求所述的编解码装置和方法。7.上述和其它目的通过独立权利要求请求保护的主题实现。其它实现方式在从属权利要求、具体实施例和附图中显而易见。8.本发明描述了用于视频编码和解码的系统和技术,具体描述了用于使用平面或dc模式的帧内预测的方法和装置。9.一般来说,在一个创新方面,一种方法包括:10.–根据帧内预测工具的组合,选择参考样本滤波器,包括:isp或多参考线预测11.–对块进行帧内预测12.–根据条件对帧内预测结果应用pdpc。13.本发明提供了一种块的dc帧内预测模式的帧内预测方法,其中,包括:14.获取变换块的帧内预测参考线索引的值;15.根据参考线中的参考样本,获取所述变换块的预测样本,其中所述参考线由所述帧内预测参考线索引的值索引。16.应用中的参考线不仅包括参考样本行,还包括参考样本列。参考样本行是参考线的一个示例。参考样本列是参考线的另一个示例。17.最先进的视频译码(例如,通用视频译码)包括方向性、dc和平面帧内预测模式,使用最可能模式(mostprobablemode,mpm)列表的概念来指示这些模式,所述最可能模式列表在vvc规范草案中也称为候选帧内预测模式candmodelist。当使用mrl时(参考线索引不为0),dc和平面帧内预测模式可能使用不同参考样本在选定参考线内的位置。本发明对mrl和非方向性帧内预测进行了协调。这种协调包括使参考样本集与变换块左上角样本的位置对齐。18.本发明的基础理论之一是统一最可能模式(mostprobablemode,mpm)列表推导方法,使得dc和平面模式都能够表示在mpm列表中。这种统一通过减少条件分支的总数,使mpm中指示的模式的处理过程更加规范,这对硬件和软件实现都是有益的。19.在上述方法中,当所述变换块的宽度大于所述变换块的高度时,可以仅使用上参考线中的参考样本来获取所述预测样本。20.在上文所述的方法中,当所述变换块的高度大于所述变换块的宽度时,可以仅使用左参考线中的参考样本来获取所述预测样本。21.在上文所述的方法中,当所述变换块的高度等于所述变换块的宽度时,可以同时使用左参考线中的参考样本和上参考线中的参考样本来获取所述预测样本。22.在上文所述的方法中,帧内预测参考线索引的值可以由intra_luma_ref_idx表示。23.在上文所述的方法中,获取帧内预测参考线索引的值可以包括:24.确定是否启用多参考线(multi-referenceline,mrl)预测;25.获取启用所述mrl预测时所述帧内预测参考线索引的值。26.在上文所述的方法中,所述方法还可以包括:27.当所述帧内预测参考线索引的值为0时,对所述预测样本应用pdpc;或28.当所述帧内预测参考线索引的值不为0时,不对所述预测样本应用pdpc。29.在上文所述的方法中,帧内预测参考线索引的值可以为0、1或2。30.在上文所述的方法中,参考样本的数量可以对应于变换块的宽度。31.在上文所述的方法中,参考样本的数量可以对应于变换块的高度。32.在上文所述的方法中,参考样本可以在参考线内形成连续的间隔或连续的距离。33.在上文所述的方法中,可以所述参考样本通过水平索引或垂直索引来确定,所述索引都是整数值范围内的整数值,并且所述索引分别表示所述参考线中的横坐标(x’)或纵坐标(y’)。34.在上文所述的方法中,偏移可以是最左侧参考样本的垂直索引和所述变换块的左参考样本列的左上预测样本的垂直位置之间的差值。35.在上文所述的方法中,偏移可以是最上方参考样本的水平索引和所述变换块的上参考样本行的左上预测样本的水平位置之间的差值。36.在上文所述的方法中,所述参考线的最上方参考样本可以垂直偏移至所述变换块的所述左上预测样本的位置。37.在上文所述的方法中,所述参考线的最左侧参考样本可以水平偏移至所述变换块的所述左上预测样本的位置。38.在上文所述的方法中,偏移的值可以等于帧内预测参考线索引的值。39.在上文所述的方法中,所述参考线的最上方参考样本的垂直位置可以等于所述变换块的所述左上预测样本的垂直位置。40.在上文所述的方法中,所述参考线的最左侧参考样本的水平位置可以等于所述变换块的所述左上预测样本的水平位置。41.本发明还提供了一种解码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,所述解码器执行本文所述的方法。42.本发明还提供了一种编码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,所述编码器执行本文所述的方法。43.本发明还提供一种编码器,所述编码器包括用于执行上文所述的方法的处理电路。44.本发明还提供一种解码器,所述解码器包括用于执行上文所述的方法中的处理电路。45.本发明还提供一种计算机程序产品,所述计算机程序产品包括用于执行上文所述的方法的程序代码。46.本发明还提供了一种包括程序代码的非瞬时性计算机可读介质。当计算机设备执行所述程序代码,所述计算机设备执行上文所述的方法。47.本发明还提供一种编码器。所述编码器包括获取单元和预测单元。所述获取单元用于获取变换块的帧内预测参考线索引的值。所述预测单元用于根据参考线中的参考样本,获取所述变换块的预测样本,其中所述参考线由所述帧内预测参考线索引的值索引。48.本发明还提供一种解码器。所述解码器包括获取单元和预测单元。所述获取单元用于获取变换块的帧内预测参考线索引的值。所述预测单元用于根据参考线中的参考样本,获取所述变换块的预测样本,其中所述参考线由所述帧内预测参考线索引的值索引。49.在上文所述的解码器中,当所述变换块的宽度大于所述变换块的高度时,可以仅使用上参考线中的参考样本来获取所述预测样本。50.在上文所述的解码器中,当所述变换块的高度大于所述变换块的宽度时,可以仅使用左参考线中的参考样本来获取所述预测样本。51.在上文所述的解码器中,当所述变换块的高度等于所述变换块的宽度时,可以同时使用左参考线中的参考样本和上参考线中的参考样本来获取所述预测样本。52.在上文所述的解码器中,帧内预测参考线索引的值可以由intra_luma_ref_idx表示。53.在上文所述的解码器中,获取单元可用于获取帧内预测参考线索引的值,包括:54.确定是否启用多参考线(multi-referenceline,mrl)预测;55.获取启用所述mrl预测时所述帧内预测参考线索引的值。56.上文所述的解码器还可以包括:57.应用单元,用于当所述帧内预测参考线索引的值为0时,对所述预测样本应用pdpc;或58.所述应用单元用于当所述帧内预测参考线索引的值不为0时,不对所述预测样本应用pdpc。59.在上文所述的解码器中,帧内预测参考线索引的值可以为0、1或2。60.在上文所述的解码器中,参考样本的数量可以对应于变换块的宽度。61.在上文所述的解码器中,参考样本的数量可以对应于变换块的高度。62.在上文所述的解码器中,参考样本可以在参考线内形成连续的间隔或连续的距离。63.在上文所述的解码器中,可以所述参考样本通过水平索引或垂直索引来确定,所述索引都是整数值范围内的整数值,并且所述索引分别表示所述参考线中的横坐标(x’)或纵坐标(y’)。64.在上文所述的解码器中,偏移是最左侧参考样本的垂直索引和所述变换块的左参考样本列的左上预测样本的垂直位置之间的差值。65.在上文所述的解码器中,偏移是最上方参考样本的水平索引和所述变换块的上参考样本行的左上预测样本的水平位置之间的差值。66.在上文所述的解码器中,所述参考线的最上方参考样本可以垂直偏移至所述变换块的所述左上预测样本的位置。67.在上文所述的解码器中,所述参考线的最左侧参考样本可以水平偏移至所述变换块的所述左上预测样本的位置。68.在上文所述的解码器中,偏移的值可以等于帧内预测参考线索引的值。69.在上文所述的解码器中,所述参考线的最上方参考样本的垂直位置可以等于所述变换块的所述左上预测样本的垂直位置。70.在上文所述的解码器中,所述参考线的最左侧参考样本的水平位置可以等于所述变换块的所述左上预测样本的水平位置。71.本发明的实施例引入了mrl与非方向性帧内预测(即dc或平面)的协调。所述协调包括对齐参考线中的参考样本,所述参考线由所述帧内预测参考线索引的值索引。72.一个或多个实施例的细节在附图和以下描述中阐述。其它特征、目标和优点将从描述、附图和权利要求中显而易见。附图说明73.下文将参考以下附图详细描述本发明实施例,其中:74.图1a为用于实现本发明实施例的示例性视频译码系统的框图;75.图1b为用于实现本发明实施例的另一示例性视频译码系统的框图;76.图1c为用于实现本发明实施例的示例性移动设备的框图;77.图2为用于实现本发明实施例的示例性视频编码器的框图;78.图3为用于实现本发明实施例的示例性视频解码器结构的框图;79.图4为示例性编码装置或解码装置的框图;80.图5为另一示例性编码装置或解码装置的框图;81.图6为使用isp工具划分的两个子分割的示意图;82.图7为使用isp工具划分的四个子分割的示意图;83.图8为多参考线帧内预测的示意图;84.图9示出了用于平面帧内预测的参考样本选择方法;85.图10示出了用于平面帧内预测模式的另一种参考样本选择方法;86.图11示出了用于平面帧内预测模式的其它不同参考样本选择方法;87.图12示出了根据本发明实施例的用于dc帧内预测的参考样本选择方法;88.图12a至图12c示出了本发明实施例提供的用于dc帧内预测模式的其它不同参考样本选择方法;89.图13示出了本发明实施例提供的用于dc帧内预测模式的其它不同参考样本选择方法;90.图14示出了本发明实施例提供的方法;91.图15示出了本发明提供的方法;92.图16示出了本发明提供的解码器;93.图17为实现内容分发业务的内容提供系统3100的示例结构的框图;94.图18为终端设备的示例性结构的框图。95.在下文中,除非另外明确说明,否则相同的附图标记是指相同或至少功能上等效的特征。具体实施方式96.在以下描述中,参考构成本发明一部分的附图,附图通过说明的方式示出了本发明实施例的特定方面或可使用本发明实施例的特定方面。应理解,本发明的实施例可用于其它方面,并且包括未在附图中描绘的结构或逻辑变化。因此,以下详细的描述并不当作限定,本发明的范围由所附权利要求书界定。97.可以理解的是,与所描述的方法有关的内容对于与用于执行方法对应的设备或系统也同样适用,反之亦然。例如,如果描述了一个或多个特定方法步骤,则对应的设备可以包括一个或多个单元,例如,功能单元,用于执行所描述的一个或多个方法步骤(例如,执行所述一个或多个步骤的一个单元,或各自执行所述多个步骤中的一个或多个步骤的多个单元),即使图中未明确描述或说明此类一个或多个单元。另一方面,例如,如果根据一个或多个单元(例如,功能单元)来描述特定装置,对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,执行所述一个或多个单元的功能的一个步骤,或各自执行所述多个单元中的一个或多个单元的功能的多个步骤),即使图中未明确描述或说明此类一个或多个步骤。此外,应理解,除非另外具体指出,否则本文中描述的各种示例性实施例和/或方面的特征可彼此组合。98.视频译码通常指对构成视频或视频序列的图像序列进行的处理。在视频译码领域中,术语“帧(frame)”或“图像(picture/image)”可以用作同义词。视频译码(或通常称为译码)包括视频编码和视频解码两部分。在源侧执行视频编码,通常包括处理(例如,通过压缩)原始视频图像,以减少表示视频图像所需的数据量(以进行更高效的存储和/或传输)。在目的地侧执行视频解码,通常包括相对于编码器的逆处理以重建视频图像。实施例涉及的视频图像(或总称为图像)“译码”应理解为涉及视频图像或视频序列的“编码”或“解码”。编码部分和解码部分的组合也称为codec(编码和解码)。99.在无损视频译码的情况下,可以重建原始视频图像,即,重建视频图像与原始视频图像的质量相同(假设在存储或传输过程中没有传输损失或其它数据丢失)。在有损视频译码的情况下,进一步执行压缩(例如,通过量化)以减少表示无法在解码器中完全重建的视频图像的数据量,即,与原始视频图像相比,经重建视频图像的质量较低或较差。100.几种视频译码标准都属于“有损混合视频编解码器”(即,结合样本域中的空间预测和时间预测以及在变换域中应用量化的2d变换译码)。视频序列的每个图像通常被分割成一组不重叠的块,并且译码通常以块为单位执行。换句话说,在编码器中,通常以块(视频块)为单位对视频进行处理(即编码),例如,通过空间(帧内)预测和/或时间(帧间)预测来生成预测块;从当前块(当前处理/待处理的块)中减去预测块,获得残差块;在变换域中变换残差块并量化残差块,以减少待传输(压缩)的数据量,而在解码器中,将相对于编码器的逆处理部分应用于经编码或压缩的块,以重建当前块以进行表示。此外,编码器的处理环路与解码器的处理环路相同,使得两者将产生相同的预测(例如,帧内预测和帧间预测)和/或重建以对后续块进行处理(即,译码)。101.在以下实施例中,基于图1至图3描述了视频译码系统10、视频编码器20和视频解码器30。102.图1a为可以利用本技术技术的示例性译码系统10,例如,视频编码系统10(或简称为译码系统10)。视频译码系统10的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)表示可用于根据本技术中描述的各种示例执行各技术的设备示例。103.如图1a所示,译码系统10包括源设备12,源设备12用于将经编码图像数据21提供给用于对经编码图像数据13进行解码的目的地设备14。104.源设备12包括编码器20,另外即可选地,可包括图像源16、图像预处理器18等预处理器(或预处理单元)18、通信接口或通信单元22。105.图像源16可以包括或可以是任何类型的图像捕获设备,例如用于捕获真实世界图像的摄像机,和/或任何类型的图像生成设备,例如用于生成计算机动画图像的计算机图形处理器,或用于获取和/或提供真实世界图像、计算机生成图像(例如,屏幕内容、虚拟现实(virtualreality,vr)图像)和/或其任何组合(例如,增强现实(augmentedreality,ar)图像)的任何类型的其它设备。所述图像源可以为存储任一上述图像的任何类型的存储器(memory/storage)。106.区别于预处理器18和预处理单元18执行的处理,图像或图像数据17也可以称为原始图像或原始图像数据17。107.预处理器18用于接收(原始)图像数据17,对图像数据17进行预处理,得到预处理图像19或预处理图像数据19。预处理器18执行的预处理可包括修剪(trimming)、颜色格式转换(例如从rgb转换为ycbcr)、颜色校正或去噪等。应理解,预处理单元18可以是可选组件。108.视频编码器20用于接收预处理后的图像数据19并提供经编码图像数据21(下面将根据图2等进一步描述)。109.源设备12中的通信接口22可用于:接收经编码图像数据21并通过通信信道13向目的地设备14等另一设备或任何其它设备发送经编码图像数据21(或其它任何处理后的版signalprocessor,dsp)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)、离散逻辑、硬件、视频译码专用处理器或其任意组合。编码器20可以通过处理电路46实现,以包含参照图2编码器20论述的各种模块和/或本文描述的任何其它编码器系统或子系统。解码器30可以通过处理电路46实现,以包含参照图3解码器30论述的各种模块和/或本文描述的任何其它解码器系统或子系统。处理电路可用于执行稍后将论述的各种操作。如图5中所示,当所述技术部分地以软件形式实现时,设备可将软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且可以使用一个或多个处理器以硬件形式执行所述指令,以执行本发明的技术。视频编码器20和视频解码器30中的其中一个可作为组合编码器/解码器(编解码器)的一部分集成在单个设备中,如图1b所示。122.源设备12和目的地设备14可以包括多种设备中的任一种,包括任何类型的手持或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板电脑(tablet/tabletcomputer)、摄像机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏机、视频流设备(如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备等,并且可以不使用或使用任何类型的操作系统。在一些情况下,源设备12和目的地设备14可配备用于无线通信的组件。因此,源设备12和目的地设备14可以是无线通信设备。123.在某些情况下,图1a所示的视频编码系统10仅仅是示例,本技术的技术可适用于在编码设备与解码设备之间不一定包括任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它示例中,数据从本地存储器中检索,通过网络发送,等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以从存储器中检索数据并对数据进行解码。在一些示例中,编码和解码由相互不通信而只是将数据编码到存储器和/或从存储器中检索数据并对数据进行解码的设备来执行。124.图1c为用于实现本发明实施例的示例性移动设备的框图。125.为便于描述,本文参考由itu-t视频译码专家组(videocodingexpertsgroup,vceg)和iso/iec运动图像专家组(motionpictureexpertsgroup,mpeg)的视频译码联合工作组(jointcollaborationteamonvideocoding,jct-vc)开发的高效视频译码(high-efficiencyvideocoding,hevc)或通用视频译码(versatilevideocoding,vvc)参考软件或下一代视频译码标准描述本发明实施例。本领域普通技术人员应理解本发明实施例不限于hevc或vvc。126.编码器和编码方法127.图2为用于实现本技术技术的示例性视频编码器20的示意性框图。在图2的示例中,视频编码器20包括输入端201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、反量化单元210和逆变换处理单元212、重建单元214、环路滤波器单元220、解码图像缓冲器(decodedpicturebuffer,dpb)230、模式选择单元260、熵编码单元270和输出端272(或输出接口272)。模式选择单元260可以包括帧间预测单元244、帧内预测单元254和分割单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(未示出)。图2所示的视频编码器20也可以称为混合视频编码器或基于混合视频编解码器的视频编码器。128.残差计算单元204、变换处理单元206、量化单元208和模式选择单元260可以称为形成编码器20的前向信号路径,而反量化单元210、逆变换处理单元212、重建单元214、缓冲器216、环路滤波器220、解码图像缓冲器(decodedpicturebuffer,dpb)230,帧间预测单元244和帧内预测单元254组成视频编码器20的后向信号路径,其中,视频编码器20的后向信号路径对应于解码器的信号路径(参见图3中的视频解码器30)。反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器(decodedpicturebuffer,dpb)230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。129.图像和图像分割(图像和块)130.编码器20可用于通过输入端201等接收图像17(或图像数据17),例如,形成视频或视频序列的图像序列中的图像。接收的图像或图像数据也可以是经预处理图像19(或经预处理图像数据19)。为了简单起见,以下描述使用图像17。图像17也可称为当前图像或待译码的图像(尤其是在视频译码中将当前图像与其它图像区分开时,其它图像例如同一视频序列,即也包括当前图像的视频序列中的之前经编码图像和/或经解码图像)。131.(数字)图像是或可为具有强度值的样本的二维阵列或矩阵。阵列中的样本也可以称为像素(图像元素的简短形式)。阵列或图像的水平和垂直方向(或轴)的样本数定义了图像的大小和/或分辨率。为了表示颜色,通常使用三种颜色分量,即,该图像可以表示为或包括三个样本阵列。在rbg格式或颜色空间中,图像包括对应的红色、绿色和蓝色样本阵列。但是,在视频译码中,每个像素通常以亮度和色度格式或在颜色空间中表示,例如,ycbcr,包括y表示的亮度分量(有时也用l表示)和cb和cr表示的两个色度分量。亮度分量y表示亮度或灰阶强度(例如,如同灰阶图像中),两个色度分量cb和cr表示色度或颜色信息分量。相应地,ycbcr格式的图像包括亮度样本值(y)的亮度样本阵列和色度值(cb和cr)的两个色度样本阵列。rgb格式的图像可以转换成ycbcr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是单色的,则图像可以仅包括亮度样本阵列。相应地,例如,图像可以为单色格式的亮度样本阵列或4:2:0、4:2:2和4:4:4颜色格式的亮度样本阵列和两个对应的色度样本阵列。132.在实施例中,视频编码器20可以包括图像分割单元(图2中未示出),用于将图像17分割成多个(通常不重叠)图像块203。这些块也可以称为根块、宏块(h.264/avc)或编码树块(codingtreeblock,ctb),或编码树单元(codingtreeunit,ctu)(h.265/hevc和vvc)。分割单元可用于对视频序列中的所有图像使用相同的块大小和使用限定块大小的对应网格,或在图像或图像子集或图像组之间改变块大小,并将每个图像分割成对应块。133.在另外的实施例中,视频编码器可用于直接接收图像17的块203的块,例如,组成图像17的一个、几个或所有块。图像块203也可以称为当前图像块或待译码图像块。134.与图像17一样,图像块203同样是或可认为是具有强度值(样本值)的样本组成的二维阵列或矩阵,但是图像块203的尺寸比图像17的小。换句话说,例如,块203可以包括,例如,一个样本阵列(例如黑白图像17情况下的亮度阵列,或者在彩色图像情况下的亮度或色度阵列)或三个样本阵列(例如,在彩色图像17情况下的亮度阵列和两个色度阵列)或依据所应用的色彩格式的任何其它数量和/或类型的阵列。块203的水平和垂直方向(或轴)上的样本数量限定了块203的大小。因此,块可以为m×n(m列×n行)个样本阵列,或m×n个变换系数阵列等。135.在一个实施例中,图2所示的视频编码器20用于逐块对图像17进行编码,例如,对每个块203执行编码和预测。136.图2所示的视频编码器20的实施例还可以用于使用条带(也称为视频条带)对图像进行分割和/或编码,其中,可以使用一个或多个条带(通常为不重叠的)对图像进行分割或编码,并且每个条带可以包括一个或多个块(例如,ctu)。137.图2所示的视频编码器20的实施例还可以用于使用分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或编码,其中,可以使用一个或多个分块组(通常为不重叠的)对图像进行分割或编码,每个分块组可以包括一个或多个块(例如,ctu)或一个或多个分块等,其中,每个分块可以为矩形等形状,可以包括一个或多个块(例如,ctu),例如完整或部分块。138.残差计算139.残差计算单元204用于通过如下方式根据图像块203和预测块265(后续详细介绍了预测块265)来计算残差块205(也称为残差205):例如,逐个样本(逐个像素)从图像块203的样本值中减去预测块265的样本值,得到样本域中的残差块205。140.变换141.变换处理单元206用于对残差块205的样本值执行离散余弦变换(discretecosinetransform,dct)或离散正弦变换(discretesinetransform,dst)等,得到变换域中的变换系数207。变换系数207也可以称为变换残差系数,表示变换域中的残差块205。142.变换处理单元206可以用于应用dct/dst的整数近似值,例如为hevc/h.265指定的变换。与正交dct变换相比,这种整数近似值通常按一定因子进行缩放。为了保持正逆变换处理的残差块的范数,在变换过程中应用了其它的缩放因子。缩放因子通常是根据某些约束条件来选择的,例如缩放因子是用于移位运算的2的幂、变换系数的位深度、准确性与实施成本之间的权衡等。例如,通过逆变换处理单元212等为逆变换(以及在视频解码器30处通过逆变换处理单元312等为对应逆变换)指定具体的缩放因子,以及相应地,可以在编码器20中通过变换处理单元206等为正变换指定对应的缩放因子。143.视频编码器20(对应为变换处理单元206)的实施例可以用于直接输出或通过熵编码单元270进行编码或压缩后输出变换参数(例如,一种或多种变换的类型),例如使得视频解码器30可以接收并使用变换参数进行解码。144.量化145.量化单元208用于通过例如标量量化或矢量量化对变换系数207进行量化,得到经量化变换系数209。量化系数209也可以称为量化变换系数209或量化残差系数209。146.量化过程可以减少与部分或全部变换系数207关联的位深度。例如,可在量化期间将n位变换系数向下取整到m位变换系数,其中n大于m。可通过调整量化参数(quantizationparameter,qp)修改量化程度。例如,对于标量量化,可以应用不同的缩放来实现更精细或更粗略的量化。较小的量化步长对应于更精细的量化,而较大的量化步长对应于更粗略的量化。适用的量化步长可以通过量化参数(quantizationparameter,qp)表示。例如,量化参数可以是预定义的适用量化步长集的索引。例如,较小量化参数可以对应于精细量化(较小量化步长),较大量化参数可以对应于粗略量化(较大量化步长),反之亦然。量化可以包含除以量化步长以及例如通过反量化单元210执行的对应的量化或反量化,或者可以包含乘以量化步长。根据例如hevc的一些标准的实施例可以用于使用量化参数来确定量化步长。通常,量化步长可以根据使用包括除法的等式的定点近似法的量化参数来计算。量化和解量化可以引入其它缩放因子以恢复残差块的范数,由于在量化步长和量化参数的方程的定点近似法中使用的缩放,可能会修改残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化的缩放。或者,可以使用自定义量化表并在码流中从编码器指示到解码器。量化是有损操作,损失随着量化步长的增大而增大。147.在实施例中,视频编码器20(对应为量化单元208)可用于输出量化参数(quantizationparameter,qp),例如,直接输出或由熵编码单元270进行编码后输出,例如使得视频解码器30可接收并使用量化参数进行解码。148.反量化149.反量化单元210用于对量化系数执行量化单元208的反量化,得到解量化系数211,例如,根据或使用与量化单元208相同的量化步长执行与量化单元208所执行的量化方案的反量化方案。解量化系数211也可称为解量化残差系数211,对应于变换系数207,但是由于量化造成损耗,解量化系数211通常与变换系数不完全相同。150.逆变换151.逆变换处理单元212用于执行变换处理单元206执行的变换的逆变换,例如,逆离散余弦变换(discretecosinetransform,dct)或逆离散正弦变换(discretesinetransform,dst),以在像素域中得到重建残差块213(或对应的解量化系数213)。重建残差块213也可以称为变换块213。152.重建153.重建单元214(例如,加法器或求和器214)用于将变换块213(即重建残差块213)添加到预测块265,以在样本域中得到重建块215,例如,将重建残差块213的样本值和预测块265的样本值相加。154.滤波155.环路滤波器单元220(或简称“环路滤波器”220)用于对重建块215进行滤波以获得滤波块221,或通常用于对重建样本进行滤波以获得滤波样本。例如,环路滤波器单元用于顺利进行像素转变或提高视频质量。环路滤波器单元220可以包括一个或多个环路滤波器,如去块效应滤波器、样本自适应偏移(sample-adaptiveoffset,sao)滤波器或一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf)、锐化或平滑滤波器或协作滤波器或其任意组合。虽然环路滤波器单元220在图2中示为环内滤波器,但是在其它配置中,环路滤波器单元220可以实现为后环路滤波器。滤波块221也可称为经滤波重建块221。156.视频编码器20(具体是环路滤波器单元220)的实施例可用于直接或经由熵编码单元270编码等输出环路滤波器参数(如样本自适应偏移信息),使得例如解码器30可以接收和应用相同环路滤波器参数或相应的环路滤波器进行解码。157.解码图像缓冲器158.解码图像缓冲器(decodedpicturebuffer,dpb)230可以是存储参考图像或参考图像数据以供视频编码器20使用的存储器。dpb230可以由多种存储器设备中的任一种形成,例如动态随机存取存储器(dynamicrandomaccessmemory,dram),包括同步dram(synchronousdram,sdram)、磁阻ram(magnetoresistiveram,mram)、电阻ram(resistiveram,rram)或其它类型的存储设备。解码图像缓冲器(decodedpicturebuffer,dpb)230可用于存储一个或多个滤波块221。解码图像缓冲器230还可用于存储同一当前图像或之前的重建图像等不同图像的其它之前的滤波块,例如之前的重建和滤波块221,并可提供完整的之前重建即解码图像(和对应参考块和样本)和/或部分重建的当前图像(和对应参考块和样本),例如进行帧间预测。解码图像缓冲器230还可用于存储一个或多个未经滤波的重建块215,或一般存储未经滤波的重建样本,例如,未被环路滤波器单元220滤波的重建块215,或未进行任何其它处理的重建块或重建样本。159.模式选择(分割和预测)160.模式选择单元260包括分割单元262、帧间预测单元244和帧内预测单元254,用于从解码图像缓冲器230或其它缓冲器(例如,列缓冲器,图中未显示)接收或获得原始图像数据如原始块203(当前图像17的当前块203),以及重建图像数据,例如同一(当前)图像和/或一个或多个之前解码图像的滤波和/或未经滤波的重建样本或重建块。重建图像数据用作帧间预测或帧内预测等预测所需的参考图像数据,以得到预测块265或预测值265。161.模式选择单元260可用于为当前块预测模式(包括不分割)和预测模式(例如帧内或帧间预测模式)确定或选择分割类型,并生成对应的预测块265,以对残差块205进行计算和对重建块215进行重建。162.在一个实施例中,模式选择单元260可用于选择分割和预测模式(例如,从模式选择单元260支持的或可用的预测模式中选择),所述预测模式提供最佳匹配或者最小残差(最小残差是指传输或存储中进行更好的压缩),或者提供最小指示开销(最小指示开销是指传输或存储中进行更好的压缩),或者同时考虑或平衡以上两者。模式选择单元260可用于根据率失真优化(ratedistortionoptimization,rdo)确定分割和预测模式,即选择提供最小率失真优化的预测模式。本上下文中如“最佳”、“最小”、“最优”等术语不一定指总体上“最佳”、“最小”、“最优”等,也可以指满足终止或选择标准,例如,值超过或低于阈值或其它约束条件,可能会进行“次优选择”,但是降低了复杂度和处理时间。163.换句话说,分割单元262可以用于将块203分割成更小的分割块或子块(再次形成块),例如,使用四叉树(quad-tree,qt)分割、二叉树(binary-tree,bt)分割或三叉树(triple-tree,tt)分割或其任何组合迭代地进行,并且例如,对每个分割块或子块进行预测,其中,所述模式选择包括选择分割块203的树形结构并将预测模式应用于每个分割块或子块。164.下文将详细地描述由示例性视频编码器20执行的分割(例如,由分割单元260执行)和预测处理(例如,由帧间预测单元244和帧内预测单元254执行)。165.分割166.分割单元262可以将当前块203分割(或划分)成更小的分割块,例如正方形或矩形大小的较小块。可以将这些较小块(也可以称为子块)进一步分割为甚至更小的分割块。这种方法也称为树分割或层次树分割,其中,可以递归地分割例如根树层次0(层次级别0,深度0)的根块,例如分割为两个或两个以上下一较低树层次的块,例如树层次1(层次级别1,深度1)的节点。可以再次将这些块分割为两个或两个以上下一较低层次,例如树层次2(层次级别2、深度2)的块等,直到由于满足终止标准,达到最大树深度或最小块大小,分割终止。未进一步分割的块也称为树的叶块或叶节点。分割为两个分割块的树称为二叉树(binary-tree,bt),分割为三个分割块的树称为三叉树(ternary-tree,tt),分割为四个分割块的树称为四叉树(quad-tree,qt)。167.如前所述,本文中使用的术语“块”可以是图像的一部分,具体是正方形或矩形部分。例如,结合hevc和vvc,块可以是或对应于编码树单元(codingtreeunit,ctu)、编码单元(codingunit,cu)、预测单元(predictionunit,pu)和变换单元(transformunit,tu),和/或对应于对应块,例如,编码树块(codingtreeblock,ctb)、编码块(codingblock,cb)、变换块(transformblock,tb)或预测块(predictionblock,pb)。168.例如,编码树单元(codingtreeunit,ctu)可以为或包括亮度样本的ctb、具有三个样本阵列的图像的色度样本的两个对应ctb、或单色图像的样本的ctb或使用三个独立颜色平面和语法结构(用于对样本进行译码)进行译码的图像的样本的ctb。相应地,编码树块(codingtreeblock,ctb)可以为n×n个样本块,其中n可以设为某个值使得分量划分为ctb,这就是分割。编码单元(codingunit,cu)可以为或包括亮度样本的编码块、具有三个样本阵列的图像的色度样本的两个对应编码块、或单色图像的样本的编码块或使用三个独立颜色平面和语法结构(用于对样本进行译码)译码的图像的样本的编码块。相应地,编码块(codingblock,cb)可以为m×n个样本块,其中m和n可以设为某个值使得ctb划分为编码块,这就是分割。169.在实施例中,例如根据hevc,可以通过表示为编码树的四叉树结构将编码树单元(codingtreeunit,ctu)划分为多个cu。以cu为单位确定是使用帧间(时间)预测还是帧内(空间)预测对图像区域进行译码。可以根据pu划分类型将每个cu进一步划分为一个、两个或四个pu。一个pu内应用相同的预测过程,并以pu为单位向解码器发送相关信息。在根据pu划分类型应用预测过程获取残差块之后,可以根据与用于cu的编码树类似的另一种四叉树结构将cu分割为变换单元(transformunit,tu)。170.在实施例中,例如根据当前研发的称为通用视频译码(versatilevideocoding,vvc)的最新视频译码标准,使用组合式四叉树和二叉树(quad-treeandbinarytree,qtbt)分割来分割编码块。在qtbt块结构中,cu可以为正方形,也可以为矩形。例如,首先通过四叉树结构对编码树单元(codingtreeunit,ctu)进行分割。通过二叉树或三叉树结构进一步分割四叉树叶节点。分割树叶节点称为编码单元(codingunit,cu),片段用于在不进行进一步分割的情况下,进行预测和变换处理。即,在qtbt编码块结构中,cu、pu和tu的块大小相同。同时,三叉树分割等多重分割可以与qtbt块结构结合使用。171.在一个示例中,视频编码器20的模式选择单元260可以用于执行本文描述的分割技术的任何组合。172.如上所述,视频编码器20用于从(例如,预定的)预测模式集中确定或选择最佳或最优的预测模式。例如,预测模式集可以包括帧内预测模式和/或帧间预测模式。173.帧内预测174.帧内预测模式集可包括35种不同的帧内预测模式,例如,像dc(或均值)模式和平面模式的非方向性模式,或如hevc定义的方向性模式,或者可包括67种不同的帧内预测模式,例如,像dc(或均值)模式和平面模式的非方向性模式,或如vvc中定义的方向性模式。175.帧内预测单元254用于根据帧内预测模式集中的帧内预测模式,使用同一当前图像的邻块的重建样本来生成帧内预测块265。176.帧内预测单元254(或通常为模式选择单元260)还用于将帧内预测参数(或通常为指示块的选定帧内预测模式的信息)以语法元素266的形式输出到熵编码单元270,以包括到经编码图像数据21中,例如使得视频解码器30可以接收并使用预测参数进行解码。177.帧间预测178.(可能的)帧间预测模式集根据可用参考图像(即,例如存储在dpb230中的之前至少部分解码的图像)和其它帧间预测参数确定,例如是否使用整个参考图像或只使用参考图像的一部分(例如当前块的区域附近的搜索窗口区域)来搜索最佳匹配参考块,和/或例如是否应用像素插值(例如半像素和/或四分之一像素插值)。179.除上述预测模式外,还可以应用跳过模式和/或直接模式。180.帧间预测单元244可以包括运动估计(motionestimation,me)单元和运动补偿(motioncompensation,mc)单元(两者在图2中均未示出)。运动估计单元可用于接收或获取图像块203(当前图像17的当前图像块203)和解码图像231,或至少一个或多个之前重建块,例如,一个或多个其它/不同的之前解码图像231的重建块,以进行运动估计。例如,视频序列可以包括当前图像和之前的解码图像231,或者换句话说,当前图像和之前的解码图像231可以是组成视频序列的图像序列的一部分或形成视频序列的图像序列。181.例如,编码器20可用于从多个其它图像中的相同或不同图像的多个参考块中选择参考块,并将参考图像(或参考图像索引)和/或参考块的位置(x坐标、y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元。这个偏移也称为运动矢量(motionvector,mv)。182.运动补偿单元用于获取(例如接收)帧间预测参数,并根据或使用帧间预测参数进行帧间预测,以获得帧间预测块265。由运动补偿单元执行的运动补偿可能涉及根据通过运动估计确定的运动/块矢量来提取或生成预测块,还可能包括对子像素精度进行插值。插值滤波可以从已知像素的样本中生成其它像素的样本,从而可能增加可用于对图像块进行译码的候选预测块的数量。一旦接收到当前图像块的pu的运动矢量,运动补偿单元可以定位在其中一个参考图像列表中运动矢量指向的预测块。183.运动补偿单元还可以生成与所述块和视频条带相关的语法元素,以供视频解码器30用于对视频条带的图像块进行解码。除了条带和相应语法元素或作为条带和相应语法元素的替代,还可以接收和/或使用分块组(tilegroup)和/或分块(tile)以及相应语法元素。184.熵译码185.熵编码单元270用于将熵编码算法或方案(例如,可变长度编码(variablelengthcoding,vlc)方案、上下文自适应vlc方案(contextadaptivevlc,cavlc)、算术译码方案、二值化算法、上下文自适应二进制算术译码(contextadaptivebinaryarithmeticcoding,cabac)、基于语法的上下文自适应二进制算术译码(syntax-basedcontext-adaptivebinaryarithmeticcoding,sbac)、概率区间分割熵(probabilityintervalpartitioningentropy,pipe)译码或其它熵编码方法或技术)或旁路(无压缩)应用于量化系数209、帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素,得到可以通过输出端272以经编码码流21等形式输出的经编码图像数据21,使得视频解码器30等可以接收并使用用于解码的参数。可将经编码码流21传输到视频解码器30,或将其保存在存储器中稍后由视频解码器30传输或检索。186.视频编码器20的其它结构变体可用于对视频流进行编码。例如,基于非变换的编码器20可以在没有变换处理单元206的情况下直接对某些块或帧的残差信号进行量化。在另一实施方式中,编码器20可以具有组合成单个单元的量化单元208和反量化单元210。187.解码器及解码方法188.图3示出了用于实现本技术技术的示例性视频解码器30。视频解码器30用于接收例如由编码器20编码的经编码图像数据21(例如经编码码流21),得到解码图像331。经编码图像数据或码流包括用于对所述经编码图像数据进行解码的信息,例如表示经编码视频条带(和/或分块组或分块)的图像块的数据和相关的语法元素。189.在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如求和器314)、环路滤波器320、解码图像缓冲器(decodedpicturebuffer,dpb)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以为或包括运动补偿单元。在一些示例中,视频解码器30可执行通常与图2的视频编码器100描述的编码过程相反的解码过程。190.如针对编码器20所解释,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器(decodedpicturebuffer,dpb)230、帧间预测单元344和帧内预测单元354也称为组成视频编码器20的“内置解码器”。相应地,反量化单元310在功能上可与反量化单元110相同,逆变换处理单元312在功能上可与逆变换处理单元212相同,重建单元314在功能上可与重建单元214相同,环路滤波器320在功能上可与环路滤波器220相同,解码图像缓冲器330在功能上可与解码图像缓冲器230相同。因此,视频编码器20的相应单元和功能的解释相应地适用于视频解码器30的相应单元和功能。191.熵解码192.熵解码单元304用于解析码流21(或一般为经编码图像数据21)并对经编码图像数据21执行熵解码,得到量化系数309和/或经解码的译码参数(图3中未示出)等,例如帧间预测参数(例如参考图像索引和运动矢量)、帧内预测参数(例如帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数和/或其它语法元素等中的任一个或全部。熵解码单元304可用于应用与针对编码器20的熵编码单元270描述的编码方案对应的解码算法或方案。熵解码单元304还可用于向模式应用单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,以及向解码器30的其它单元提供其它参数。视频解码器30可以接收视频条带级和/或视频块级的语法元素。另外或者作为条带和相应语法元素的替代,可以接收或使用分块组和/或分块以及相应语法元素。193.反量化194.反量化单元310可用于从经编码图像数据21(例如通过熵解码单元304解析和/或解码)接收量化参数(quantizationparameter,qp)(或一般为与反量化相关的信息)和量化系数,并根据量化参数对经解码的量化系数309进行反量化以获得解量化系数311,所述解量化系数311也可以称为变换系数311。反量化过程可以包括使用视频编码器20对视频条带(或分块或分块组)中的每个视频块确定的量化参数来确定量化程度,同样确定需要应用的反量化的程度。195.逆变换196.逆变换处理单元312可用于接收解量化系数311,也称为变换系数311,并对解量化系数311应用变换,得到样本域的重建残差块213。重建残差块213也可以称为变换块313。变换可以为逆变换,例如逆dct、逆dst、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于从经编码图像数据21(例如通过熵解码单元304进行解析和/或解码)接收变换参数或对应信息,以确定应用于解量化系数311的变换。197.重建198.重建单元314(例如,求和器(adder或summer)314)可以用于将重建残差块313添加到预测块365,得到样本域的重建块315,例如,将重建残差块313的样本值和预测块365的样本值相加。199.滤波200.环路滤波器单元320(在译码环路中或之后)用于对重建块315进行滤波,得到滤波块321,从而顺利进行像素转变或提高视频质量等。环路滤波器单元320可包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sample-adaptiveoffset,sao)滤波器或一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf)、锐化或平滑滤波器或协作滤波器或其任意组合。尽管环路滤波器单元320在图3中示为环路滤波器,但在其它配置中,环路滤波器单元320可以实现为后环路滤波器。201.解码图像缓冲器202.随后将一个图像中的解码视频块321存储在解码图像缓冲器330中,解码图像缓冲器330存储作为参考图像的解码图像331,参考图像用于其它图像和/或分别输出显示的后续运动补偿。203.解码器30用于通过输出端312等输出经解码图像311,向用户显示或供用户查看。204.预测205.帧间预测单元344的功能可以与帧间预测单元244(特别是运动补偿单元)相同,帧内预测单元354的功能可以与帧间预测单元254相同,并根据从经编码的图像数据21接收的分割和/或预测参数或相应信息(例如,通过熵解码单元304等解析和/或解码)决定划分或分割并执行预测。模式应用单元360可用于根据重建图像、块或相应的样本(已滤波或未滤波)执行每个块的预测(帧内或帧间预测),得到预测块365。206.当视频条带被译码为经帧内译码(i)的条带时,模式应用单元360的帧内预测单元354用于根据当前帧或图像的之前解码块的指示(signal)的帧内预测模式和数据来生成当前视频条带的图像块的预测块365。当视频图像被译码为经帧间译码(例如b或p)的条带时,模式应用单元360的帧间预测单元344(例如,运动补偿单元)用于根据从熵解码单元304接收的运动矢量和其它语法元素针对当前视频条带的视频块生成预测块365。对于帧间预测,可以从其中一个参考图像列表中的一个参考图像产生这些预测块。视频解码器30可以根据存储在dpb330中的参考图像,使用默认构建技术来构建参考帧列表:列表0和列表1。除了条带(例如视频条带)或作为条带的替代,相同或类似的过程可应用于分块组(例如视频分块组)和/或分块(例如视频分块)的实施例,例如视频可以使用i、p或b分块组和/或分块进行译码。207.模式应用单元360用于通过解析运动矢量或相关信息以及其它语法元素来确定当前视频条带中的视频块的预测信息并使用所述预测信息针对所解码的当前视频块生成预测块。例如,模式应用单元360使用接收到的一些语法元素确定用于对视频条带的视频块进行译码的预测模式(例如帧内预测或帧间预测)、帧间预测条带类型(例如b条带、p条带或gpb条带)、用于条带的一个或多个参考图像列表的构建信息、用于条带的每个帧间编码的视频块的运动矢量、用于条带的每个帧间译码的视频块的帧间预测状态、其它信息,以对当前视频条带中的视频块进行解码。除了条带(例如视频条带)或作为条带的替代,相同或类似的过程可应用于分块组(例如视频分块组)和/或分块(例如视频分块)的实施例,例如视频可以使用i、p或b分块组和/或分块进行译码。208.图3中所示的视频解码器30的实施例可用于使用条带(也称为视频条带)对图像进行分割和/或解码,其中,可以使用一个或多个条带(通常不重叠的)对图像进行分割或解码,并且每个条带可以包括一个或多个块(例如,ctu)。209.图3所示的视频解码器30的实施例可以用于使用分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或解码,其中,可以使用一个或多个分块组(通常为不重叠的)对图像进行分割或解码,每个分块组可以包括一个或多个块(例如,ctu)或一个或多个分块等,其中,每个分块可以为矩形等形状,可以包括一个或多个块(例如,ctu),例如完整或部分块。210.可以使用视频解码器30的其它变体对经编码图像数据21进行解码。例如,解码器30可以在没有环路滤波单元320的情况下产生输出视频流。例如,基于非变换的解码器30可以在没有逆变换处理单元312的情况下直接对某些块或帧的残差信号进行反量化。在另一种实现方式中,视频解码器30中,反量化单元310和逆变换处理单元312可以组合成一个单元。211.应理解,在编码器20和解码器30中,可以对当前步骤的处理结果进一步处理,然后输出到下一步骤。例如,在插值滤波、运动矢量推导或环路滤波之后,可以对插值滤波、运动矢量推导或环路滤波的处理结果进行进一步的运算,例如修正(clip)或移位(shift)运算。212.应该注意的是,可以对当前块的推导运动矢量(包括但不限于仿射模式的控制点运动矢量、仿射、平面、atmvp模式的子块运动矢量、时间运动矢量等)进行进一步运算。例如,根据运动矢量的表示位将运动矢量的值限制在预定义范围。如果运动矢量的表示位为bitdepth,则范围为-2^(bitdepth-1)至2^(bitdepth-1)-1,其中“^”表示指数。例如,如果bitdepth设置为16,则范围为-32768~32767;如果bitdepth设置为18,则范围为-131072~131071。例如,推导的运动矢量的值(例如一个8×8块中的4个4×4子块的mv)被限制,使得所述4个4×4子块mv的整数部分之间的最大差值不超过n个像素,例如不超过1个像素。这里提供了两种根据bitdepth限制运动矢量的方法。213.方法一:通过流操作去除溢出最高有效位(mostsignificantbit,msb):214.ux=(mvx+2bitdepth)%2bitdepth(1)215.mvx=(ux》=2bitdepth-1)?(ux–2bitdepth):uxꢀꢀꢀ(2)216.uy=(mvy+2bitdepth)%2bitdepthꢀꢀꢀ(3)217.mvy=(uy》=2bitdepth-1)?(uy–2bitdepth):uyꢀꢀꢀ(4)218.其中,mvx为图像块或子块的运动矢量的水平分量,mvy为图像块或子块的运动矢量的垂直分量,ux和uy表示中间值;219.例如,如果mvx的值为–32769,则应用公式(1)和(2)后,结果值为32767。在计算机系统中,十进制数以二补数的形式存储。–32769的二补数为1,0111,1111,1111,1111(17比特),然后丢弃msb,因此得到的二补数为0111,1111,1111,1111(十进制数为32767),这与应用公式(1)和(2)后的输出相同。220.ux=(mvpx+mvdx+2bitdepth)%2bitdepthꢀꢀꢀ(5)221.mvx=(ux》=2bitdepth-1)?(ux–2bitdepth):uxꢀꢀꢀ(6)222.uy=(mvpy+mvdy+2bitdepth)%2bitdepthꢀꢀꢀ(7)223.mvy=(uy》=2bitdepth-1)?(uy–2bitdepth):uyꢀꢀꢀ(8)224.在mvp与mvd的求和过程中,可以应用上述运算,如式(5)至(8)所示。225.方法二:通过修正值去除溢出msb226.vx=clip3(–2bitdepth-1,2bitdepth-1–1,vx)227.vy=clip3(–2bitdepth-1,2bitdepth-1–1,vy)228.其中,vx为图像块或子块的运动矢量的水平分量,vy为图像块或子块的运动矢量的垂直分量;x,y和z分别对应mv修正过程的三个输入值,函数clip3的定义如下:[0229][0230]图4为本发明实施例提供的视频译码设备400的示意图。视频译码设备400适用于实现本文描述的公开实施例。在一个实施例中,视频译码设备400可以是解码器,例如图1a的视频解码器30,或编码器,例如图1a的视频编码器20。[0231]视频译码设备400包括用于接收数据的入端口410(或输入端口410)和接收器单元(receiverunit,rx)420;用于处理数据的处理器、逻辑单元或中央处理单元(centralprocessingunit,cpu)430;用于发送数据的发送器单元(transmitterunit,tx)440和出端口450(或输出端口450);以及用于存储数据的存储器460。视频译码设备400还可包括耦合到入端口410、接收单元420、发送单元440和出端口450的光电(optical-to-electrical,oe)组件和电光(electrical-to-optical,eo)组件,用于光信号或电信号的出口或入口。[0232]处理器430通过硬件和软件实现。处理器430可实现为一个或多个cpu芯片、核(例如,多核处理器)、fpga、asic和dsp。处理器430与入端口410、接收器单元420、发送器单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470实现上文所公开的实施例。例如,译码模块470执行、处理、准备或提供各种译码操作。因此,通过译码模块470为视频译码设备400的功能提供了实质性的改进,并且影响了视频译码设备400到不同状态的切换。或者,以存储在存储器460中并由处理器430执行的指令来实现译码模块470。[0233]存储器460可以包括一个或多个磁盘、磁带机和固态硬盘,可以用作溢出数据存储设备,用于在选择执行程序时存储这些程序,并且存储在程序执行过程中读取的指令和数据。例如,存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、三态内容寻址存储器(ternarycontent-addressablememory,tcam)和/或静态随机存取存储器(staticrandom-accessmemory,sram)。[0234]图5为示例性实施例提供的装置500的简化框图,所述装置500可用作图1中的源设备12和目的地设备14中的任一个或两个。[0235]装置500中的处理器502可以是中央处理器。或者,处理器502可以是现有的或今后将研发出的能够操控或处理信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器502等单个处理器来实现所公开的实现方式,但使用一个以上的处理器可以提高速度和效率。[0236]在一种实现方式中,装置500中的存储器504可以是只读存储器(readonlymemory,rom)设备或随机存取存储器(randomaccessmemory,ram)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可包括操作系统508和应用程序510,应用程序510包括允许处理器502执行本文所述方法的至少一个程序。例如,应用程序510可以包括应用1至n,还包括执行本文所述方法的视频译码应用。[0237]装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与可用于感测触摸输入的触敏元件组合的触敏显示器。显示器518可以通过总线512耦合到处理器502。[0238]虽然装置500中的总线512在本文中描述为单个总线,但是总线512可以包括多个总线。此外,辅助储存器514可以直接耦合到装置500的其它组件或可以通过网络访问,并且可以包括存储卡等单个集成单元或多个存储卡等多个单元。因此,装置500可以具有各种各样的配置。[0239]经编码图像数据21包含关于编码器(单元254)和解码器(单元354)侧如何执行块预测的信息。经编码图像数据的语法可以包括以下元素(表1):[0240]表1:与块的帧内预测相关的示例性语法元素[0241][0242][0243]intra_luma_ref_idx[x0][y0]表示帧内预测参考线索引intralumareflineidx[x][y](其中x=x0..x0+cbwidth–1,y=y0..y0+cbheight–1),如表2所示。当不具有intra_luma_ref_idx[x0][y0]时,推断intra_luma_ref_idx[x0][y0]等于0。[0244]表2:基于intra_luma_ref_idx[x0][y0]的intralumareflineidx[x][y]的规范[0245][0246]intralumareflineidx用于确定帧内预测参考线索引(refidx)的值:[0247]refidx=(cidx==0)?intralumareflineidx[xtbcmp][ytbcmp]:0,[0248]其中,cidx是一个变量,表示预测块的亮度或色度分量。cidx等于0表示亮度分量,cidx等于1或2表示色度分量。[0249]在进一步给出的描述中,cbwidth对应于块宽度,cbheight对应于块高度,maxtbsizey对应于阈值,定义如下:[0250]maxtblog2sizey=6,[0251]maxtbsizey=1《《maxtblog2sizey[0252]预测块也可以称为编码块。[0253]intra_subpartitions_mode_flag[x0][y0]等于1表示当前帧内编码单元被分割为numintrasubpartitions[x0][y0]个矩形变换块子块;intra_subpartitions_mode_flag[x0][y0]等于0表示当前帧内编码单元未被分割为矩形变换块子块。[0254]当不具有intra_subpartitions_mode_flag[x0][y0]时,推断intra_subpartitions_mode_flag[x0][y0]等于0。[0255]intra_subpartitions_split_flag[x0][y0]表示帧内子块的划分类型是否是水平划分或垂直划分。当不具有intra_subpartitions_split_flag[x0][y0]时,intra_subpartitions_split_flag[x0][y0]推断如下:[0256]–如果cbheight大于maxtbsizey,则推断intra_subpartitions_split_flag[x0][y0]等于0;[0257]–否则(cbwidth大于maxtbsizey),推断intra_subpartitions_split_flag[x0][y0]等于1。[0258]变量intrasubpartitionssplittype表示用于当前亮度编码块的划分类型,如表3所示。intrasubpartitionssplittype的推导方式如下:[0259]–如果intra_subpartitions_mode_flag[x0][y0]等于0,则将intrasubpartitionssplittype设置为0。[0260]–否则,将intrasubpartitionssplittype设置为1+intra_subpartitions_split_flag[x0][y0]。[0261]表3:名称与intrasubpartitionssplittype的关系[0262]intrasubpartitionssplittypeintrasubpartitionssplittype的名称0isp_no_split1isp_hor_split2isp_ver_split[0263]变量numintrasubpartitions表示划分帧内亮度编码块得到的变换块子块的数量。numintrasubpartitions的推导方式如下:[0264]–如果intrasubpartitionssplittype等于isp_no_split,则将numintrasubpartitions设置为1。[0265]–否则,如果以下条件之一为真,则将numintrasubpartitions设置为2:[0266]–cbwidth等于4,cbheight等于8;[0267]–cbwidth等于8,cbheight等于4。[0268]–否则,将numintrasubpartitions设置为4。[0269]语法元素intra_luma_mpm_flag[x0][y0]、intra_luma_not_planar_flag[x0][y0]、intra_luma_mpm_idx[x0][y0]和intra_luma_mpm_remainder[x0][y0]表示亮度样本的帧内预测模式。阵列索引x0、y0表示所使用编码块的左上亮度样本相对于图像的左上亮度样本的位置(x0,y0)。当intra_luma_mpm_flag[x0][y0]等于1时,根据相邻帧内预测编码单元推断帧内预测模式。[0270]当不具有intra_luma_mpm_flag[x0][y0]时,推断intra_luma_mpm_flag[x0][y0]等于1。[0271]当不具有intra_luma_not_planar_flag[x0][y0]时,推断intra_luma_not_planar_flag[x0][y0]等于1。[0272]当intra_luma_not_planar_flag[xcb][ycb]等于0时,块的帧内预测模式(intrapredmodey[xcb][ycb])设置为intra_planar。[0273]intra_chroma_pred_mode[x0][y0]表示色度样本(块的色度分量)的帧内预测模式。阵列索引x0、y0表示所使用编码块的左上亮度样本相对于图像的左上亮度样本的位置(x0,y0)。[0274]jvet-m0102中详述了帧内子块(intrasub-partition,isp)工具,该工具的简要说明如下:[0275]isp工具根据块大小将亮度帧内预测块垂直或水平划分为2个或4个子块,如表4所示。图6和图7示出了两种可能性的示例。所有子块满足具有至少16个样本的条件。[0276]表4:根据块大小的子块数量[0277]块大小子块数量4×4不划分4×8,8×42所有其它情况4[0278]对于每个子块,对编码器发送的系数进行熵解码,然后对这些系数进行反量化和逆变换,从而生成残差信号。然后,对子块进行帧内预测,最后通过将残差信号添加到预测信号中获得对应的重建样本。因此,每个子块的重建值可用于生成下一个子块的预测值,依次类推重复该过程。所有子块共享一个帧内模式。[0279]根据帧内模式和使用的划分方式,使用两种不同的处理顺序,称为正序和逆序。在正序中,待处理的第一个子块是包含cu左上样本的子块,然后向下(水平划分)或向右(垂直划分)继续。因此,用于生成子块的预测信号的参考样本仅位于各行的左侧和上方。另一方面,逆向处理顺序从包含cu左下样本的子块开始,然后向上继续,或者从包含cu右上样本的子块开始,然后向左继续。[0280]通常,帧内预测过程可以描述如下。[0281]该过程的输入是:[0282]-样本位置(xtbcmp,ytbcmp),表示当前变换块的左上样本相对于当前图像的左上样本的位置;[0283]-变量predmodeintra,表示帧内预测模式;[0284]-变量ntbw,表示变换块宽度;[0285]-变量ntbh,表示变换块高度;[0286]-变量ncbw,表示编码块宽度;[0287]-变量ncbh,表示编码块高度;[0288]–变量cidx,表示当前块的颜色分量。[0289]该过程的输出是预测样本predsamples[x][y],其中,x=0..ntbw–1,y=0..ntbh–1。[0290]变量refw和refh的推导方式如下:[0291]–如果intrasubpartitionssplittype等于isp_no_split或者cidx不等于0,则:[0292]refw=ntbw*2[0293]refh=ntbh*2[0294]–否则,(intrasubpartitionssplittype不等于isp_no_split,cidx等于0),则:[0295]refw=ncbw*2[0296]refh=ncbh*2[0297]变量refidx表示帧内预测参考线索引,推导如下:[0298]refidx=(cidx==0)?intralumareflineidx[xtbcmp][ytbcmp]:0[0299]为了生成参考样本p[x][y](其中,x=–1–refidx,y=–1–refidx..refh–1;x=–refidx..refw–1,y=–1–refidx),按顺序进行以下步骤:[0300]1.调用参考样本可用性标记过程,其中,样本位置(xtbcmp,ytbcmp)、帧内预测参考线索引refidx、参考样本宽度refw、参考样本高度refh、颜色分量索引cidx作为输入,参考样本refunfilt[x][y]作为输出(其中,x=–1–refidx,y=–1–refidx..refh–1;x=–refidx..refw–1,y=–1–refidx)。[0301]2.当至少一个样本refunfilt[x][y](其中,x=–1–refidx,y=–1–refidx..refh–1;x=–refidx..refw–1,y=–1–refidx,)标记为“不可用于帧内预测”时,调用参考样本替换过程,其中,帧内预测参考线索引refidx、参考样本宽度refw、参考样本高度refh、参考样本refunfilt[x][y]以及颜色分量索引cidx作为输入(其中,x=–1–refidx,y=–1–refidx..refh–1;x=–refidx..refw–1,y=–1–refidx),修改后的参考样本refunfilt[x][y]作为输出(其中,x=–1–refidx,y=–1–refidx..refh–1和x=–refidx..refw–1,y=–1–refidx)。[0302]3.调用参考样本滤波过程,其中,帧内预测参考线索引refidx、变换块宽度ntbw和高度ntbh、参考样本宽度refw、参考样本高度refh、未滤波的样本refunfilt[x][y]和颜色分量索引cidx作为输入(其中,x=–1–refidx,y=–1–refidx..refh–1;x=–refidx..refw–1,y=–1–refidx),参考样本p[x][y]作为输出(其中,x=–1–refidx,y=–1–refidx..refh–1;x=–refidx..refw–1,y=–1–refidx)。[0303]根据predmodeintra进行帧内样本预测的过程如下:[0304]–如果predmodeintra等于intra_planar,则调用对应的帧内预测模式过程,其中,变换块宽度ntbw、变换块高度ntbh和参考样本阵列p作为输入,预测样本阵列predsamples作为输出。[0305]–否则,如果predmodeintra等于intra_dc,则调用对应的帧内预测模式过程,其中,变换块宽度ntbw、变换块高度ntbh、帧内预测参考线索引refidx和参考样本阵列p作为输入,预测样本阵列predsamples作为输出。[0306]–否则,如果predmodeintra等于intra_lt_cclm、intra_l_cclm或intra_t_cclm,则调用对应的帧内预测模式过程,其中,帧内预测模式predmodeintra、设置为(xtbcmp,ytbcmp)的样本位置(xtbc,ytbc)、变换块宽度ntbw和高度ntbh和参考样本阵列p作为输入,预测样本阵列predsamples作为输出。[0307]–否则,调用对应的帧内预测模式过程,其中,帧内预测模式predmodeintra、帧内预测参考线索引refidx、变换块宽度ntbw、变换块高度ntbh、参考样本宽度refw、参考样本高度refh、编码块宽度ncbw和高度ncbh、颜色分量索引和参考样本阵列p作为输入,修改后的帧内预测模式predmodeintra和预测样本阵列predsamples作为输出。[0308]当以下条件全部为真时,调用位置相关预测样本滤波过程,其中,帧内预测模式predmodeintra、变换块宽度ntbw、变换块高度ntbh、预测样本predsamples[x][y](其中,x=0..ntbw–1,y=0..ntbh–1)、参考样本宽度refw、参考样本高度refh、参考样本p[x][y](其中,x=–1,y=–1..refh–1;x=0..refw–1,y=–1)和颜色分量索引cidx作为输入,修改后的预测样本阵列predsamples作为输出:[0309]–intrasubpartitionssplittype等于isp_no_split或者cidx不等于0[0310]–refidx等于0或者cidx不等于0[0311]–当以下条件之一为真时:[0312]–predmodeintra等于intra_planar[0313]–predmodeintra等于intra_dc[0314]–predmodeintra等于intra_angular18[0315]–predmodeintra等于intra_angular50[0316]–predmodeintra小于或等于intra_angular10[0317]–predmodeintra大于或等于intra_angular58。[0318]图8示出了用于对块进行帧内预测的参考样本所处的各行的位置。根据参考线(“参考线”)的索引,可以使用与预测块不相邻(即当参考线的索引不等于0时)的参考样本对预测块(“块单元”)的样本进行预测。[0319]vvc草案对平面帧内预测模式的详述如下:[0320]该过程的输入是:[0321]–变量ntbw,表示变换块宽度;[0322]–变量ntbh,表示变换块高度;[0323]–相邻样本p[x][y],其中,x=–1,y=–1..ntbh;x=0..ntbw,y=–1。[0324]该过程的输出是预测样本predsamples[x][y],其中,x=0..ntbw–1,y=0..ntbh–1。[0325]变量nw和nh的推导方式如下:[0326]nw=max(ntbw,2)[0327]nh=max(ntbh,2)[0328]预测样本predsamples[x][y](其中,x=0..ntbw–1,y=0..ntbh–1)的值推导如下:[0329]predv[x][y]=((nh–1–y)*p[x][–1]+(y+1)*p[–1][ntbh])《《log2(nw)[0330]predh[x][y]=((nw–1–x)*p[–1][y]+(x+1)*p[ntbw][–1])《《log2(nh)[0331]predsamples[x][y]=(predv[x][y]+predh[x][y]+nw*nh)》》(log2(nw)+log2(nh)+1)[0332]vvc草案对dc帧内预测过程的详述如下:[0333]该过程的输入是:[0334]–变量ntbw,表示变换块宽度;[0335]–变量ntbh,表示变换块高度;[0336]–相邻样本p[x][y],其中,x=–1,y=–1..ntbh–1;x=0..ntbw–1,y=–1。[0337]该过程的输出是预测样本predsamples[x][y],其中,x=0..ntbw–1,y=0..ntbh–1。[0338]按顺序进行以下步骤,推导预测样本predsamples[x][y]的值,其中,x=0..ntbw–1,y=0..ntbh–1:[0339]1.变量dcval的推导方式如下:[0340]–当ntbw等于ntbh时,[0341][0342]–当ntbw大于ntbh时,[0343][0344]–当ntbw小于ntbh时,[0345][0346]2.预测样本predsamples[x][y]的推导方式如下:[0347]predsamples[x][y]=dcval,其中x=0..ntbw–1,y=0..ntbh–1。[0348]现有技术方法仅在参考线的索引不为0时使用方向性帧内预测,即在这种情况下禁用dc帧内预测模式和平面帧内预测模式。[0349]不使用dc帧内预测模式的另一种情况是使用帧内子分割(intrasub-partitioning,isp)。[0350]vvc草案版本详述了帧内预测模式的不同译码方法。码流中指示的语法元素序列的选择取决于启用或禁用的特定工具。具体来说,只有当“intra_luma_ref_idx”标志和“intra_subpartitions_mode_flag”标志等于0时,才指示mpm标志(参见表5)。[0351]表5:vvc规范文本草案版本4修订版7中的语法表示的帧内模式索引的译码编码单元方法[0352][0353][0354]pdpc表示位置相关预测组合。该过程可以描述如下:[0355]该过程的输入是:[0356]–帧内预测模式predmodeintra;[0357]–变量ntbw,表示变换块宽度;[0358]–变量ntbh,表示变换块高度;[0359]–变量refw,表示参考样本宽度;[0360]–变量refh,表示参考样本高度;[0361]–预测样本predsamples[x][y],其中,x=0..ntbw–1,y=0..ntbh–1;[0362]–相邻样本p[x][y],其中,x=–1,y=–1..refh–1;x=0..refw–1,y=–1;[0363]–变量cidx,表示当前块的颜色分量。[0364]该过程的输出是修改后的预测样本predsamples[x][y],其中,x=0..ntbw–1,y=0..ntbh–1。[0365]根据cidx的值,将函数clip1cmp设置如下:[0366]–如果cidx等于0,则将clip1cmp设置为clip1y。[0367]–否则,将clip1cmp设置为clip1c。[0368]将变量nscale设置为((log2(ntbw)+log2(ntbh)–2)》》2)。[0369]预测样本阵列mainref[x]和sideref[y](其中x=0..refw–1,y=0..refh–1)的推导方式如下:[0370]mainref[x]=p[x][–1][0371]sideref[y]=p[–1][y][0372]变量refl[x][y]、reft[x][y]、wt[y]、wl[x]和wtl[x][y](其中x=0..ntbw–1,y=0..ntbh–1)的推导方式如下:[0373]–如果predmodeintra等于intra_planar或intra_dc,则[0374]refl[x][y]=p[–1][y][0375]reft[x][y]=p[x][–1][0376]wt[y]=32》》((y《《1)》》nscale)[0377]wl[x]=32》》((x《《1)》》nscale)[0378]wtl[x][y]=(predmodeintra==intra_dc)?((wl[x]》》4)+(wt[y]》》4)):0[0379]–否则,如果predmodeintra等于intra_angular18或intra_angular50,则[0380]refl[x][y]=p[–1][y][0381]reft[x][y]=p[x][–1][0382]wt[y]=(predmodeintra==intra_angular18)?32》》((y《《1)》》nscale):0[0383]wl[x]=(predmodeintra==intra_angular50)?32》》((x《《1)》》nscale):0[0384]wtl[x][y]=(predmodeintra==intra_angular18)?wt[y]:wl[x][0385]–否则,如果predmodeintra等于intra_angular2或intra_angular66,则[0386]refl[x][y]=p[–1][x+y+1][0387]reft[x][y]=p[x+y+1][–1][0388]wt[y]=(32》》1)》》((y《《1)》》nscale)[0389]wl[x]=(32》》1)》》((x《《1)》》nscale)[0390]wtl[x][y]=0[0391]–否则,如果predmodeintra小于或等于intra_angular10,则按顺序进行以下步骤:[0392]1.变量dxpos[y]、dxfrac[y]、dxint[y]和dx[x][y]通过invangle(根据intrapredmode在第8.4.4.2.7小节详述)推导如下:[0393]dxpos[y]=((y+1)*invangle+2)》》2[0394]dxfrac[y]=dxpos[y]&63[0395]dxint[y]=dxpos[y]》》6[0396]dx[x][y]=x+dxint[y][0397]2.变量refl[x][y]、reft[x][y]、wt[y]、wl[x]和wtl[x][y]的推导方式如下:[0398]refl[x][y]=0[0399]reft[x][y]=(dx[x][y]《refw–1)?mainref[dx[x][y]+(dxfrac[y]》》5)]:0[0400]wt[y]=(dx[x][y]《refw–1)?32》》((y《《1)》》nscale):0[0401]wl[x]=0[0402]wtl[x][y]=0[0403]–否则,如果predmodeintra大于或等于intra_angular58,则按顺序进行以下步骤:[0404][0405]1.变量dypos[x]、dyfrac[x]、dyint[x]和dy[x][y]通过invangle(根据intrapredmode在第8.4.4.2.7小节详述)推导如下:[0406]dypos[x]=((x+1)*invangle+2)》》2[0407]dyfrac[x]=dypos[x]&63[0408]dyint[x]=dypos[x]》》6[0409]dy[x][y]=y+dyint[x][0410]2.变量refl[x][y]、reft[x][y]、wt[y]、wl[x]和wtl[x][y]的推导方式如下:[0411]refl[x][y]=(dy[x][y]《refh–1)?sideref[dy[x][y]+(dyfrac[x]》》5)]:0[0412]reft[x][y]=0[0413]wt[y]=0[0414]wl[x]=(dy[x][y]《refh–1)?32》》((x《《1)》》nscale):0[0415]wtl[x][y]=0[0416]–否则,将refl[x][y]、reft[x][y]、wt[y]、wl[x]和wtl[x][y]都设置为0。[0417]修改后的预测样本predsamples[x][y](其中x=0..ntbw–1,y=0..ntbh–1)的值推导如下:[0418]predsamples[x][y]=clip1cmp((refl[x][y]*wl[x]+reft[x][y]*wt[y]–p[–1][–1]*wtl[x][y]+(64–wl[x]–wt[y]+wtl[x][y])*predsamples[x][y]+32)》》6)[0419]目前,vvc软件和规范草案中保留了若干个版本的mpm列表。使用若干个mpm列表的硬件设计也是不理想的。但是,如果在当前禁用帧内预测模式的情况下启用帧内预测模式,则会导致帧内标志的两种组合产生相似的帧内预测块。显然,这种设计是冗余的,为了解决这个问题,需要修改指示部分或帧内预测部分。[0420]本发明的范围是在参考样本与被预测块不相邻或待预测块被进一步划分(例如,使用isp)的情况下修改平面和dc帧内预测过程。不仅要修改预测样本确定过程,而且还修改参考样本滤波和pdpc过程。[0421]这些修改的目的是为所有帧内预测工具提供一个统一的帧内模式指示机制。[0422]本发明提出在使用dc或平面帧内预测模式时以及在参考样本与被预测的块不相邻或在预测块进行进一步划分(即,使用isp)时,修改参考样本处理过程并根据条件切换pdpc。处理过程包括从上方区域和左侧区域(如图6所示)中的重建样本中选择参考样本,并且进行滤波。[0423]本发明旨在提供一种统一的指示机制以对帧内预测模式进行编码。表6示出了帧内预测模式译码的示例性统一指示方法。[0424]表6:帧内模式索引的示例性统一译码方法[0425][0426][0427]表5和表6所示的译码方法的区别在于,在提供的示例性语法中删除了intra_luma_mpm_flag的条件指示。[0428]从规范中可以看出,当参考线索引不为0时,平面帧内预测模式无法进行。图9所示的本发明一个实施例公开了如何处理这种情况。在图9中,使用的是第三参考线。为平面帧内预测模式选择的参考样本用阴影方形部分表示。假设第一个左上样本(表示为“a)的位置是(0,0),可以对平面帧内预测进行如下修改:[0429]该过程的输入是:[0430]–变量refidx,表示帧内预测参考线索引;[0431]–变量ntbw,表示变换块宽度;[0432]–变量ntbh,表示变换块高度;[0433]–参考样本p[x][y],其中,x=–1–refidx,y=–refidx..ntbh和x=–refidx..ntbw,y=–1–refidx。[0434]该过程的输出是预测样本predsamples[x][y],其中,x=0..ntbw–1,y=0..ntbh–1。[0435]变量nw和nh的推导方式如下:[0436]nw=max(ntbw,2)[0437]nh=max(ntbh,2)[0438]预测样本predsamples[x][y](其中,x=0..ntbw–1,y=0..ntbh–1)的值推导如下:[0439]predv[x][y]=((nh–1–y)*p[x][–1–refidx]+(y+1)*p[–1–refidx][ntbh])《《log2(w)[0440]predh[x][y]=((nw–1–x)*p[–1–refidx][y]+(x+1)*p[ntbw][–1–refidx])《《log2(nh)[0441]predsamples[x][y]=(predv[x][y]+predh[x][y]+nw*nh)》》(log2(nw)+log2(nh)+1)[0442]图10所示的替代性实施例公开了从参考线中选择参考样本用于平面帧内预测模式的另一种方法。该方法可以描述如下:[0443]该过程的输入是:[0444]–变量refidx,表示帧内预测参考线索引;[0445]–变量ntbw,表示变换块宽度;[0446]–变量ntbh,表示变换块高度;[0447]–相邻样本p[x][y],其中,x=–1–refidx,y=–1–refidx..ntbh–refidx;x=–refidx..ntbw–refidx,y=–1–refidx。[0448]该过程的输出是预测样本predsamples[x][y],其中,x=0..ntbw–1,y=0..ntbh–1。[0449]变量nw和nh推导方式如下:[0450]nw=max(ntbw,2)[0451]nh=max(ntbh,2)[0452]预测样本predsamples[x][y](其中,x=0..ntbw–1,y=0..ntbh–1)的值推导如下:[0453]predv[x][y]=((nh–1–y)*p[x–refidx][–1–refidx]+(y+1)*p[–1–refidx][ntbh–refidx])《《log2(nw)[0454]predh[x][y]=((nw–1–x)*p[–1–refidx][y–refidx]+(x+1)*p[ntbw–efidx][–1–refidx])《《log2(nh)[0455]predsamples[x][y]=(predv[x][y]+predh[x][y]+nw*nh)》》(log2(nw)+log2(nh)+1)[0456]另一个替代性实施例包括对两个样本进行特殊的位移,其值分别在双向预测中用作底行样本值和右侧样本值。在图11中,可以注意到从具有间隙的参考线中选择参考样本。本实施例的规范文本可以如下:[0457]该过程的输入是:[0458]–变量refidx,表示帧内预测参考线索引;[0459]–变量ntbw,表示变换块宽度;[0460]–变量ntbh,表示变换块高度;[0461]–相邻样本p[x][y],其中,x=–1–refidx,y=–1–refidx..ntbh–refidx;x=–refidx..ntbw–refidx,y=–1–refidx。[0462]该过程的输出是预测样本predsamples[x][y],其中,x=0..ntbw–1,y=0..ntbh–1。[0463]变量nw和nh的推导方式如下:[0464]nw=max(ntbw,2)[0465]nh=max(ntbh,2)[0466]预测样本predsamples[x][y](其中,x=0..ntbw–1,y=0..ntbh–1)的值推导如下:[0467]predv[x][y]=((nh–1–y)*p[x–refidx][–1–refidx]+(y+1)*p[–1–refidx][ntbh])《《log2(nw)[0468]predh[x][y]=((nw–1–x)*p[–1–efidx][y–refidx]+(x+1)*p[ntbw][–1–refidx])《《log2(nh)[0469]predsamples[x][y]=(predv[x][y]+predh[x][y]+nw*nh)》》(log2(nw)+log2(nh)+1)[0470]当参考线索引不为0时,也无法调用dc帧内预测过程。[0471]图12至图12c和图13所示的本发明实施例公开了参考线索引不为0时使用dc模式进行帧内预测的方式。这种情况下的采样机制与上面针对平面帧内预测模式所公开的采样机制相似。[0472]该过程的输入是:[0473]–变量ntbw,表示变换块宽度;[0474]–变量ntbh,表示变换块高度;[0475]–变量refidx,表示帧内预测参考线索引;[0476]–相邻样本p[x][y],其中,x=–1–refidx,y=–1–refidx..ntbh–refidx–1;x=–refidx..ntbw–refidx–1,y=–1–refidx。[0477]该过程的输出是预测样本predsamples[x][y],其中,x=0..ntbw–1,y=0..ntbh–1。[0478]按顺序进行以下步骤,推导预测样本predsamples[x][y]的值,其中,x=0..ntbw–1,y=0..ntbh–1:[0479]1.变量dcval的推导方式如下:[0480]–当ntbw等于ntbh时,[0481][0482]–当ntbw大于ntbh时,[0483][0484]–当ntbw小于ntbh时,[0485][0486]2.预测样本predsamples[x][y]的推导方式如下:[0487]predsamples[x][y]=dcval,其中,x=0..ntbw–1,y=0..ntbh–1。[0488]上述步骤1包括从参考样本行和/或列(例如,上参考样本行和/或左参考样本列)中选择参考样本的步骤。为实现这个目的,提供了两个索引:[0489]x’=0..ntbw[0490]和[0491]y’=0..ntbh。[0492]使用索引x’和refidx从上参考样本行中选择参考样本:[0493]p[x′–refidx][–1–refidx].[0494]使用索引y’和refidx从左参考样本列中选择参考样本:[0495]p[–1–refidx][y′–refidx][0496]选择过程的结果是选定的参考样本,所述选定的参考样本进一步用于确定上文步骤1中所述的变量dcval(dc值)的值。[0497]使用上述dc帧内预测模式对块进行帧内预测的步骤2使用计算出的变量dcval的值(dc值),以获得预测样本(predsamples)(即,待预测块的样本)的值。[0498]图12a与图12类似,w的值等于h的值,但是图12a仅示出了三个参考线,即分别是三个参考样本行和三个参考样本列。这些参考线位于待预测块的上方和左侧。[0499]图12b和图12c与图12a类似,但图12b和图12c示出了w》h(图12b)和w《h(图12c)的情况。即,在这两种情况下,待预测块为矩形。[0500]如图12至图12c和图13所示,用于对变换块进行预测的参考样本是参考线的参考样本子集。需要再次重申,参考线应理解为不仅包括参考样本行,而且还包括参考样本列。参考样本行是参考线的一个示例。参考样本列是参考线的另一个示例。图12至图12c以及图13所示的用于对变换块进行预测的参考样本是连续的,在参考线内没有间隙,因此形成连续的间隔或连续的距离。每个参考样本与同样进行帧内预测的相邻样本水平或垂直相邻。[0501]intra_dc帧内预测模式的输入是:[0502]–变量ntbw,表示变换块宽度;[0503]–变量ntbh,表示变换块高度;[0504]–变量refidx,表示帧内预测参考线索引;[0505]–相邻样本p[x][y],其中,x=–1–refidx,y=0..ntbh–1;x=0..ntbw–1,y=–1–refidx。[0506]该过程的输出是预测样本predsamples[x][y],其中,x=0..ntbw–1,y=0..ntbh–1。[0507]如图12和图12a所示的示例,块为方形。变换块的宽度(ntbw)等于变换块的高度(ntbh)。这种情况下,变量dcval的推导方式如下:[0508]–当ntbw等于ntbh时,[0509][0510]在图12的示例中,帧内预测参考线索引的值为3,在图12a的示例中,帧内预测参考线索引的值为2。以图12a为例,redidx的值为2,ntbw等于ntbh。因此,选择上方第三个参考样本行和左侧第三个参考样本列。上方第三个参考样本行和左侧第三个参考样本列是通过帧内预测参考线索引值索引的参考线。[0511]如图12b和图12c所示的示例,块不是方形。变换块的宽度(ntbw)不等于变换块的高度(ntbh)。这种情况下,变量dcval的推导方式如下:[0512]–当ntbw大于ntbh时(图12b),[0513][0514]–当ntbw小于ntbh时(图12c),[0515][0516]预测样本predsamples[x][y]的推导方式如下:[0517]predsamples[x][y]=dcval,其中,x=0..ntbw–1,y=0..ntbh–1。[0518]在图12b和图12c的示例中,帧内预测参考线索引的值为3。以图12b为例,redidx的值为2,ntbw大于ntbh。因此,仅选择上方第三个参考样本行。上方第三个参考样本行是通过帧内预测参考线索引值索引的参考线。参考样本的数量对应于变换块的宽度。参考线的最左侧参考样本(即,p[0][-idx-1])水平偏移至变换块的上参考样本行的左上预测样本的位置(即,a)。偏移是最左侧参考样本的垂直索引(即,[-idx-1])和所述变换块的左参考样本列的左上预测样本的垂直位置(即,a)之间的差值。偏移用矩阵p的第一个索引表示,该索引等于0。参考线的最左侧参考样本(即,p[0][-idx-1])的水平位置等于变换块的左上预测样本的水平位置(即,a),均等于0。[0519]以图12c为例,redidx的值为2,ntbh大于ntbw。因此,仅选择左侧第三个参考样本列。左侧第三个参考样本列是通过帧内预测参考线索引值索引的参考线。参考样本的数量对应于变换块的高度。参考行的最上方参考样本(即,p[-idx-1][0])水平偏移至变换块的左参考样本列的左上预测样本的位置(即,a)。偏移是最上方参考样本的水平索引(即,[-idx-1])和所述变换块的上参考样本行的左上预测样本的水平位置(即,a)之间的差值。偏移由矩阵p的第二索引表示,该索引等于帧内预测参考线索引的值。参考线的最上方参考样本(即,p[-idx-1][0])的垂直位置等于变换块的左上预测样本的垂直位置(即,a),均等于0。[0520]任何其它帧内预测模式(包括dc帧内预测模式)包括以下步骤:[0521]步骤1:根据参考线索引(refidx)选择参考行和参考列。该索引确定预测块的左边界或上边界与相邻块的重建样本列或行之间的偏移,所述重建样本列或行进一步用于获得预测样本的值。[0522]步骤2:确定是否将参考样本滤波器应用于选定参考样本行和列。这些条件包括帧内预测模式、颜色索引(cidx)、与帧内预测过程相关的语法元素(例如,如表1所示)的值以及从这些元素的值推导的变量的值、待预测块的尺寸。在执行isp的情况下,这些条件还包括划分成应用帧内预测过程的子块的块的大小。根据检查条件是否满足的结果,使用参考样本滤波器处理选定参考样本列或行中的样本。该滤波器通常是有限脉冲响应(finiteimpulseresponse,fir)滤波器,它的3个系数为[121]/4。[0523]步骤3:从选定参考样本列或行中选择参考样本。该选择过程包括确定索引范围,表示选定参考样本行或列中的哪些样本进一步用于推导预测样本的值。[0524]步骤4:从在步骤3中确定的选定参考样本推导预测样本。该推导过程与模式相关,可包括进一步进行子采样、应用插值滤波或根据参考样本计算线性表达式,其中,根据预测样本在预测块中的位置确定用于获得预测样本值的参考样本。[0525]另一个发明实施例在参考样本与被预测块不相邻时,即当参考样本的参考线的索引(由“intra_luma_ref_idx”表示)不等于0时,禁用帧内参考样本平滑过程。另一实施例包括根据参考样本的参考线的索引,改变用于平面帧内预测模式的参考样本滤波器。[0526]表7和表8给出了示例性滤波器选择。[0527]表7:根据参考样本的参考线的索引的示例性滤波器选择[0528][0529]表8:根据参考样本的参考线的索引的示例性滤波器选择[0530][0531]本发明的另一个实施例使得当帧内子分割(intrasubpartition,isp)标志设置为1时,能够使用平面和dc帧内预测模式对子块进行帧内预测。建议isp标志为1时不进行pdpc操作。[0532]–对于使用isp模式的情况,dc帧内处理过程的示例性实施例为:计算整个块的参考样本的dc值。[0533]–将所述预测dc值用作所述被预测块的所有子块的帧内预测值。[0534]另一实施例公开了经译码图像的色度和亮度分量使用相同的空间分割方式划分成块的情况(即,当选择single_tree分割模式时)。在这种情况下,考虑了两种根据条件应用pdpc的情况。[0535]在本实施例的第一种情况中,当isp标志设置为1时,具有亮度分量的预测样本的块被划分为亮度子块,但是并置的色度块(即,具有色度分量的预测样本的并置块)未进行划分。在这种情况下,pdpc不应用于亮度子块,但pdpc应用于色度块。[0536]在本实施例的第二种情况中,当帧内预测参考线索引不为0,pdpc不应用于预测亮度块,但应用于并置的色度块,并且对于色度块的预测,帧内预测参考线索引不指示且推断为0。[0537]图14为块的dc帧内预测模式的帧内预测方法的流程图,包括:步骤1601,获取变换块的帧内预测参考线索引的值;步骤1603,根据参考线的参考样本,获取变换块的预测样本,其中,所述参考线通过所述帧内预测参考线索引的值索引。[0538]在步骤1603之前,所述方法可以包括:步骤1602,根据帧内预测参考线索引的值,选择参考样本行,如图9至图13的示例所示。[0539]图15示出了本发明提供的编码器20,所述编码器20包括:获取单元2001,用于获取变换块的帧内预测参考线索引的值;预测单元2003,用于根据参考线的参考样本,获取所述变换块的预测样本,其中,所述参考线通过所述帧内预测参考线索引的值索引。[0540]编码器20可以包括选择单元2002(图15中未示出),用于根据帧内预测参考线索引的值,选择参考样本行,如图9至图13的示例所示。[0541]图16示出了本发明提供的解码器30,所述解码器30包括获取单元(3001),用于获取变换块的帧内预测参考线索引的值;预测单元(3003),用于根据参考线的参考样本,获取所述变换块的预测样本,其中,所述参考线通过所述帧内预测参考线索引的值索引。[0542]解码器30可以包括选择单元3002(图16中未示出),用于根据帧内预测参考线索引的值,选择参考样本行,如图9至图13的示例所示。[0543]本发明提供以下一组16个方面:[0544]第一方面,一种块的dc或平面帧内预测模式的方法,包括:当启用多参考线(multi-referenceline,mrl)预测时,使用dc或平面帧内预测模式对所述块进行帧内预测,包括从参考样本行和/或列(例如(选定的)上参考样本行和/或(选定的)左参考样本列)中选择参考样本。[0545]第二方面,根据第一方面所述的方法,所述方法还包括:[0546]根据情况对帧内预测结果应用位置相关预测组合(positiondependentpredictioncombination,pdpc)。[0547]第三方面,一种根据第一和第二方面所述的方法,所述参考样本行和/或列由refidx(例如帧内预测参考线索引或参考线索引)表示,或者所述参考样本行是由多参考行中的refidx(如第一refidx)表示的一行,或者所述单列为所述多参考列中的参考样本的refidx(如第二refidx)表示的一列。[0548]第四发明,一种根据第一方面至第三方面中任一方面所述的方法,为包括块的图像选择single_tree分割模式,所述方法还包括:根据第一指示(例如isp标志)的值,将所述待预测块的亮度分量划分为亮度子块;根据情况对帧内预测结果应用pdpc的步骤包括:不对所述亮度子块应用pdpc,而是对并置的色度块(即,所述待预测块的色度分量)应用pdpc。[0549]第五方面,一种根据第一方面至第四方面中任一方面所述的方法,为包括块的图像选择single_tree分割模式,根据情况对帧内预测结果应用pdpc的步骤包括:当所述帧内预测参考线索引不为0时,对所述块的亮度分量应用pdpc;当预测并置的亮度块时,推断所述帧内预测参考线索引为0,并对并置的亮度块的预测结果(例如,并置的亮度块的帧内预测结果)应用pdpc。[0550]第六方面,一种根据第一方面至第五方面中任一方面所述的方法,所述dc帧内预测模式用于对所述块进行帧内预测,启用所述多参考线预测,且所述帧内预测参考线索引不为0。[0551]第七方面,一种根据第一方面至第六方面中任一方面所述的方法,根据位于所述待预测块的左侧的参考样本行和/或列(例如左参考样本列)推导dc值(变量dcval),从参考线和/或列(例如左参考样本列)中选择参考样本的数量以推导所述dc值,其中,所述参考样本的数量对应于所述块的宽度或所述参考样本的数量等于所述块的高度。[0552]第八方面,一种根据第一方面至第七方面中任一方面所述的方法,根据位于所述待预测块上方的参考样本行(例如上参考样本行)推导dc值(变量dcval),从参考线(例如上参考样本行)中选择多个参考样本以推导所述dc值,其中,所述多个参考样本的数量等于所述块的宽度,或者所述多个参考样本的数量与所述块的宽度相对应。[0553]第九方面,一种根据第一方面至第八方面中任一方面所述的方法,选定参考样本形成连续的间隔或连续的距离,即所述选定参考样本各自具有水平或垂直相邻的相邻样本,所述相邻样本也是选定参考样本,并且只有两个选定参考样本具有一个选定相邻样本,而其它选定参考样本具有至少两个选定参考样本(例如相邻样本)。[0554]第十方面,一种根据第一方面至第九方面中任一方面所述的方法,通过表示水平索引或垂直索引来确定所述选定参考样本,所述索引都是整数值范围内的整数值,并且所述索引表示选定的参考样本列或选定的参考样本行中的横坐标(x’)或纵坐标(y’)。[0555]第十一方面,一种根据第一方面至第十方面中任一方面所述的方法,根据位于所述待预测块左侧的所述参考样本行(例如,左参考样本列)推导dc值(变量dcval),且最上方选定参考样本垂直偏移至所述块的左上预测样本的位置。[0556]第十二方面,一种根据第一方面至第十一方面中任一方面所述的方法,所述偏移的值对应于所述帧内预测参考线索引,所述偏移的值与所述帧内预测参考线索引相关,或者所述偏移的值等于所述帧内预测参考线索引。[0557]第十三方面,一种根据第一方面至第十二方面中任一方面所述的方法,根据位于所述待预测块上方的所述参考样本行(例如,上参考样本行)推导dc值(变量dcval),且最左侧选定参考样本水平偏移至所述块的左上预测样本的位置。[0558]第十四方面,一种根据第一方面至第十三方面中任一方面所述的方法,所述偏移的值对应于所述帧内预测参考线索引,所述偏移的值与所述帧内预测参考线索引相关,或者所述偏移的值等于所述帧内预测参考线索引。[0559]第十五方面,一种根据第一方面至第十四方面中任一方面所述的方法,根据位于所述待预测块左侧的参考样本行(例如,左参考样本列)推导dc值(变量dcval),且最上方选定参考样本的垂直位置(例如,(x1,y)中的y)等于所述块的左上预测样本的垂直位置(例如,(x2,y)中的y)。[0560]第十六方面,一种根据第一方面至第十五方面中任一方面所述的方法,根据位于所述待预测块上方的所述参考样本行(例如,上参考样本行)推导dc值(变量dcval),且最左侧选定参考样本的水平位置(例如,(x,y1)中的x)等于所述块的左上预测样本的水平位置(例如,(x,y2)中的x)。[0561]本发明提供了另一组16个方面:[0562]第一方面,提供了一种块的帧内预测方法,使用dc帧内预测模式对所述块进行预测,所述方法包括:[0563]–当isp(intra_subpartitions)启用时,将所述块细分为子块(例如,使用intra_subpartitions_mode_idx和intra_subpartitions_mode_flag);[0564]–使用所述dc帧内预测模式对子块进行帧内预测。[0565]第二方面,提供了一种根据第一方面所述的方法,还包括:[0566]–根据情况对帧内预测结果应用位置相关预测组合(positiondependentpredictioncombination,pdpc)。[0567]第三方面,提供了一种根据第一方面和第二方面所述的方法,所述参考样本行和/或列由refidx(例如帧内预测参考线索引或参考线索引)表示,或者所述参考样本行是由多参考线中的refidx(如第一refidx)表示的一行,或者所述单列为所述多参考列中的参考样本的refidx(如第二refidx)表示的一列。[0568]第四方面,提供了一种根据第一方面至第三方面中任一方面所述的方法,为包括所述块的图像选择single_tree分割模式,所述方法还包括:[0569]–根据第一指示(例如,isp标志)的值将待预测块的亮度分量划分为亮度子块;[0570]根据情况对帧内预测结果应用pdpc的步骤包括:[0571]不对亮度子块应用pdpc,而对并置的色度块(即,所述待预测块的色度分量)应用pdpc。[0572]第五方面,提供了一种根据第一方面至第四方面中任一方面所述的方法,为包括所述块的图像选择single_tree分割模式,[0573]根据情况对帧内预测结果应用pdpc的步骤包括:[0574]–当所述帧内预测参考线索引的值不为0时,对所述块的亮度分量应用pdpc;[0575]–当预测并置的色度块时,推断帧内预测参考线索引为0,并对所述并置的色度块的预测结果(例如,所述并置的色度块的帧内预测结果)应用pdpc。[0576]第六方面,提供了一种根据第一方面至第五方面中任一方面所述的方法,所述dc帧内预测模式用于对所述块进行帧内预测,启用所述多参考线预测,且所述帧内预测参考线索引不为0。[0577]第七方面,提供了一种根据第一方面至第六方面中任一方面所述的方法,根据位于所述待预测块的左侧的参考样本行和/或列(例如左参考样本列)推导dc值(变量dcval),从参考线和/或列(例如左参考样本列)中选择参考样本的数量以推导所述dc值,其中,所述参考样本的数量对应于所述块的宽度或所述参考样本的数量等于所述块的高度。[0578]第八方面,提供了一种根据第一方面至第七方面中任一方面所述的方法,根据位于所述待预测块上方的参考样本行(例如上参考样本行)推导dc值(变量dcval),从参考线(例如,上参考样本行)中选择多个参考样本以推导所述dc值,其中,所述多个参考样本的数量等于所述块的宽度,或者所述多个参考样本的数量与所述块的宽度相对应。[0579]第九方面,提供了一种根据第一方面至第八方面中任一方面所述的方法,选定参考样本形成连续的间隔或连续的距离,即所述选定参考样本各自具有水平或垂直相邻的相邻样本,所述相邻样本也是选定参考样本,并且只有两个选定参考样本具有一个选定相邻样本,而其它选定参考样本具有至少两个选定参考样本(例如相邻样本)。[0580]第十方面,提供了一种根据第一方面至第九方面中任一方面所述的方法,通过表示水平索引或垂直索引来确定所述选定参考样本,所述索引都是整数值范围内的整数值,并且所述索引表示选定的参考样本列或选定的参考样本行中的横坐标(x’)或纵坐标(y’)。[0581]第十一方面,提供了一种根据第一方面至第十方面中任一方面所述的方法,根据位于所述待预测块左侧的所述参考样本行(例如,左参考样本列)推导dc值(变量dcval),且最上方选定参考样本垂直偏移至所述块的左上预测样本的位置。[0582]第十二方面,提供了一种根据第一方面至第十一方面中任一方面所述的方法,所述偏移的值对应于所述帧内预测参考线索引,所述偏移的值与所述帧内预测参考线索引相关,或者所述偏移的值等于所述帧内预测参考线索引。[0583]第十三方面,提供了一种根据第一方面至第十二方面中任一方面所述的方法,根据位于所述待预测块上方的所述参考样本行(例如,上参考样本行)推导dc值(变量dcval),且最左侧选定参考样本水平偏移至所述块的左上预测样本的位置。[0584]第十四方面,提供了一种根据第一方面至第十三方面中任一方面所述的方法,所述偏移的值对应于所述帧内预测参考线索引,所述偏移的值与所述帧内预测参考线索引相关,或者所述偏移的值等于所述帧内预测参考线索引。[0585]第十五方面,提供了一种根据第一方面至第十四方面中任一方面所述的方法,根据位于所述待预测块左侧的参考样本行(例如,左参考样本列)推导dc值(变量dcval),且最上方选定参考样本的垂直位置(例如,(x1,y)中的y)等于所述块的左上预测样本的垂直位置(例如,(x2,y)中的y)。[0586]第十六方面,提供了一种根据第一方面至第十五方面中任一方面所述的方法,根据位于所述待预测块上方的所述参考样本行(例如,上参考样本行)推导dc值(变量dcval),且最左侧选定参考样本的水平位置(例如,(x,y1)中的x)等于所述块的左上预测样本的水平位置(例如,(x,y2)中的x)。[0587]本发明提供了又一组16个方面:[0588]第一方面,提供了一种块的帧内预测方法,使用平面帧内预测模式对所述块进行预测,所述方法包括:根据帧内预测参考线索引(例如参考线索引),选择参考样本滤波器;将选定参考样本滤波器应用于参考样本行和/或列(例如(选定的或单个)上参考样本行和/或(选定的或单个)左参考样本列);对所述块进行帧内预测,包括从经滤波参考样本行和/或列中选择(或确定)参考样本(例如,根据所述帧内预测参考线索引,从所述经滤波参考样本行和/或列中选择(或确定)参考样本)。[0589]第二方面,提供了一种根据第一方面所述的方法,还包括:根据情况对帧内预测结果应用位置相关预测组合(例如,pdpc)。[0590]第三方面,提供了一种根据第一方面和第二方面所述的方法,所述参考样本行和/或列由refidx(例如帧内预测参考线索引或参考线索引)表示,或者所述参考样本行是由多参考线中的refidx(如第一refidx)表示的一行,或者所述单列为所述多参考列中的参考样本的refidx(如第二refidx)表示的一列。[0591]第四发明,提供了一种根据第一方面至第三方面中任一方面所述的方法,为包括块的图像选择single_tree分割模式,所述方法还包括:根据第一指示(例如isp标志)的值,将所述待预测块的亮度分量划分为亮度子块;根据情况对帧内预测结果应用pdpc的步骤包括:不对所述亮度子块应用pdpc,而是对并置的色度块(即,所述待预测块的色度分量)应用pdpc。[0592]第五方面,提供了一种根据第一方面至第四方面中任一方面所述的方法,为包括所述块的图像选择single_tree分割模式,[0593]根据情况对帧内预测结果应用pdpc的步骤包括:[0594]–当所述帧内预测参考线索引不为0时,对所述块的亮度分量应用pdpc;当预测并置的色度块时,推断帧内预测参考线索引为0,并对所述并置的色度块的预测结果(例如,所述并置的色度块的帧内预测结果)应用pdpc。[0595]第六方面,提供了一种根据第一方面至第五方面中任一方面所述的方法,所述dc帧内预测模式用于对所述块进行帧内预测,启用所述多参考线预测,且所述帧内预测参考线索引不为0。[0596]第七方面,提供了一种根据第一方面至第六方面中任一方面所述的方法,根据位于所述待预测块的左侧的参考样本行和/或列(例如左参考样本列)推导dc值(变量dcval),从参考线和/或列(例如左参考样本列)中选择参考样本的数量以推导所述dc值,其中,所述参考样本的数量对应于所述块的宽度或所述参考样本的数量等于所述块的高度。[0597]第八方面,提供了一种根据第一方面至第七方面中任一方面所述的方法,根据位于所述待预测块上方的参考样本行(例如上参考样本行)推导dc值(变量dcval),从参考线(例如,上参考样本行)中选择多个参考样本以推导所述dc值,其中,所述多个参考样本的数量等于所述块的宽度,或者所述多个参考样本的数量与所述块的宽度相对应。[0598]第九方面,提供了一种根据第一方面至第八方面中任一方面所述的方法,选定参考样本形成连续的间隔或连续的距离,即所述选定参考样本各自具有水平或垂直相邻的相邻样本,所述相邻样本也是选定参考样本,并且只有两个选定参考样本具有一个选定相邻样本,而其它选定参考样本具有至少两个选定参考样本(例如相邻样本)。[0599]第十方面,提供了一种根据第一方面至第九方面中任一方面所述的方法,通过表示水平索引或垂直索引来确定所述选定参考样本,所述索引都是整数值范围内的整数值,并且所述索引表示选定的参考样本列或选定的参考样本行中的横坐标(x’)或纵坐标(y’)。[0600]第十一方面,提供了一种根据第一方面至第十方面中任一方面所述的方法,根据位于所述待预测块左侧的所述参考样本行(例如,左参考样本列)推导dc值(变量dcval),且最上方选定参考样本垂直偏移至所述块的左上预测样本的位置。[0601]第十二方面,提供了一种根据第一方面至第十一方面中任一方面所述的方法,所述偏移的值对应于所述帧内预测参考线索引,所述偏移的值与所述帧内预测参考线索引相关,或者所述偏移的值等于所述帧内预测参考线索引。[0602]第十三方面,提供了一种根据第一方面至第十二方面中任一方面所述的方法,根据位于所述待预测块上方的所述参考样本行(例如,上参考样本行)推导dc值(变量dcval),且最左侧选定参考样本水平偏移至所述块的左上预测样本的位置。[0603]第十四方面,提供了一种根据第一方面至第十三方面中任一方面所述的方法,所述偏移的值对应于所述帧内预测参考线索引,所述偏移的值与所述帧内预测参考线索引相关,或者所述偏移的值等于所述帧内预测参考线索引。[0604]第十五方面,提供了一种根据第一方面至第十四方面中任一方面所述的方法,根据位于所述待预测块左侧的参考样本行(例如,左参考样本列)推导dc值(变量dcval),且最上方选定参考样本的垂直位置(例如,(x1,y)中的y)等于所述块的左上预测样本的垂直位置(例如,(x2,y)中的y)。[0605]第十六方面,提供了一种根据第一方面至第十五方面中任一方面所述的方法,根据位于所述待预测块上方的所述参考样本行(例如,上参考样本行)推导dc值(变量dcval),且最左侧选定参考样本的水平位置(例如,(x,y1)中的x)等于所述块的左上预测样本的水平位置(例如,(x,y2)中的x)。[0606]本发明还提供了以下设备和系统方面,结合了前三组方面的方法的每个方面:[0607]一种解码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合至所述处理器,并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,所述解码器执行上述三组方面中任一组方面中的第一方面至第十六方面中任一方面所述的方法。[0608]一种编码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合至所述处理器,并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,所述编码器执行上述三组方面中任一组方面中的第一方面至第十六方面中任一方面所述的方法。[0609]一种编码器,包括处理电路,用于执行根据上述三组方面中任一组方面中的第一方面至第十六方面中任一方面所述的方法。[0610]一种解码器(30),包括处理电路,用于执行根据上述三组方面中任一组方面中的第一方面至第十六方面中任一方面所述的方法。[0611]一种计算机程序产品,包括程序代码,用于执行根据上述三组方面中任一组方面中的第一方面至第十六方面中任一方面所述的方法。[0612]一种解码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合至所述处理器,并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,所述解码器执行上述三组方面中任一组方面中的第一方面至第十六方面中任一方面所述的方法。[0613]一种编码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,耦合至所述处理器,并存储由所述处理器执行的程序,其中,当所述处理器执行所述程序时,所述编码器执行上述三组方面中任一组方面中的第一方面至第十六方面中任一方面所述的方法。[0614]一种非瞬时性计算机可读介质,包括程序代码,当计算机设备执行所述程序代码时,所述计算机设备执行上述三组方面中任一组方面中的第一方面至第十六方面中任一方面所述的方法。[0615]最先进的视频译码(例如,通用视频译码)包括方向性、dc和平面帧内预测模式,使用最可能模式列表(mostprobablemode,mpm)的概念来指示这些模式,所述最可能模式列表在vvc规范草案中也称为候选帧内预测模式candmodelist。当使用mrl时(参考线索引不为0),dc和平面帧内预测模式可能使用选定参考线内不同参考样本位置。[0616]本发明的实施例引入了mrl与非方向性帧内预测(即dc或平面)的协调。协调包括使参考样本集与变换块左上角样本的位置对齐。[0617]本发明实施例的基础理论之一是最可能模式(mostprobablemode,mpm)列表推导的统一,使得dc和平面模式都能够表示在mpm列表中。这种统一通过减少条件分支的总数,使mpm中指示的模式的处理过程更加规范,这对硬件和软件实现都是有益的。[0618]下面解释上述实施例中所示的编码方法和解码方法以及使用这些方法的系统的应用。[0619]图17为用于实现内容分发业务的内容提供系统3100的框图。该内容提供系统3100包括捕获设备3102、终端设备3106和(可选)显示器3126。捕获设备3102通过通信链路3104与终端设备3106通信。所述通信链路可以包括上文所述的通信信道13。通信链路3104包括但不限于wifi、以太网、有线、无线(3g/4g/5g)、usb或其任何类型组合等。[0620]捕获设备3102生成数据,并可使用上述实施例中所示的编码方法对数据进行编码。或者,捕获设备3102可以将数据分发到流媒体服务器(图中未示出),该服务器对数据进行编码,并将经编码数据发送到终端设备3106。捕获设备3102包括但不限于摄像机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、pda、车载设备或其任何组合等。例如,捕获设备3102可以包括上文所述的源设备12。当数据包括视频时,捕获设备3102中的视频编码器20实际上可执行视频编码处理。当数据包括音频(即声音)时,捕获设备3102中的音频编码器实际上可执行音频编码处理。在一些实际场景中,捕获设备3102通过将经编码视频数据和经编码音频数据复用在一起来分发经编码视频数据和经编码音频数据。在其它实际场景中,例如在视频会议系统中,不复用经编码音频数据和经编码视频数据。捕获设备3102将经编码音频数据和经编码视频数据分别分发到终端设备3106。[0621]内容提供系统3100中的终端设备310接收并再生成经编码数据。终端设备3106可以为具有数据接收和恢复能力的设备,如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(networkvideorecorder,nvr)/数字视频录像机(digitalvideorecorder,dvr)3112、tv3114、机顶盒(settopbox,stb)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personaldigitalassistant,pda)3122、车载设备3124或其任何组合,或能够对上述经编码数据进行解码的此类设备。例如,终端设备3106可以包括上文所述的目的地设备14。当编码数据包括视频时,终端设备中的视频解码器30优先执行视频解码。当编码数据包括音频时,终端设备中的音频解码器优先执行音频解码处理。[0622]对于带显示器的终端设备,如智能手机或平板电脑3108、计算机或膝上型电脑3110、网络视频录像机(networkvideorecorder,nvr)/数字视频录像机(digitalvideorecorder,dvr)3112、tv3114、个人数字助理(personaldigitalassistant,pda)3122或车载设备3124,终端设备可以将经解码数据发送到其显示器。对于不带显示器的终端设备,如stb3116、视频会议系统3118或视频监控系统3120,使外接显示器3126与终端设备连接,以接收并显示解码数据。[0623]本系统中的各个设备执行编码或解码时,可以使用上述实施例所示的图像编码设备或图像解码设备。[0624]图18为终端设备3106的示例结构图。在终端设备3106从捕获设备3102接收码流后,协议处理单元3202分析该码流的传输协议。所述协议包括但不限于实时流协议(realtimestreamingprotocol,rtsp)、超文本传输协议(hypertexttransferprotocol,http)、http直播流协议(httplivestreamingprotocol,hls)、mpeg-dash、实时传输协议(real-timetransportprotocol,rtp)、实时消息协议(realtimemessagingprotocol,rtmp)或其任何组合。[0625]在协议处理单元3202对码流进行处理之后,生成流文件。文件输出到解复用单元3204。解复用单元3204可以将复用数据分离为经编码音频数据和经编码视频数据。如上文所述,对于一些实际场景,例如,在视频会议系统中,不复用经编码音频数据和经编码视频数据。在这种情况下,经编码数据不通过解复用单元3204发送到视频解码器3206和音频解码器3208。[0626]通过解复用处理,生成视频基本码流(elementarystream,es)、音频es和(可选)字幕。视频解码器3206,包括如上述实施例所解释的视频解码器30,通过如上述实施例所示的解码方法对视频es进行解码以生成视频帧,并将该数据发送到同步单元3212。音频解码器3208,对音频es进行解码以生成音频帧,并将该数据馈送到同步单元3212。或者,视频帧在发送至同步单元3212之前可以存储在缓冲器中(图y中未示出)。类似地,音频帧在发送至同步单元3212之前可以存储在缓冲器中(图y中未示出)。[0627]同步单元3212使视频帧和音频帧同步,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频信息和音频信息的呈现。可以使用与经译码音频和可视数据呈现相关的时间戳和与数据流发送相关的时间戳,在语法中对信息进行译码。[0628]如果码流中包括字幕,则字幕解码器3210对字幕进行解码,并使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。[0629]本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以在汽车系统等其它系统中使用。[0630]数学运算符[0631]本技术中使用的数学运算符与c编程语言中使用的数学运算符类似。但是,对整数除法和算术移位运算的结果进行了更准确的定义,并且定义了其它运算,如幂运算和实值除法。编号和计数规范通常从0开始,例如,“第一”相当于第0个,“第二”相当于第1个,等等。[0632]算术运算符[0633]以下算术运算符定义如下:[0634]+加[0635]–减法(作为双参数运算符)或者非运算(作为一元前缀运算符)[0636]*乘法,包括矩阵乘法[0637]xy求幂。指定x的y次方。在其它上下文中,该表示用作上标,而非用于解释为求幂。[0638][0639]÷用来表示数学等式中的除法,没有截断或四舍五入。[0640]用来表示数学等式中的除法,没有截断或四舍五入。[0641]f(i)的求和,其中i取从x到y(包括y)的所有整数值。[0642]x%y模数。x除以y的余数,仅对x≥0且y》0的整数x和y定义。[0643]逻辑运算符[0644]以下逻辑运算符定义如下:[0645]x&&yx和y的布尔逻辑“与”[0646]x||yx和y的布尔逻辑“或”[0647]!布尔逻辑“非”[0648]x?y:z如果x为真或不等于0,则求y的值,否则,求z的值。[0649]关系运算符[0650]以下关系运算符定义如下:[0651]》大于[0652]》=大于或等于[0653]《小于[0654]《=小于或等于[0655]==等于[0656]!=不等于[0657]当一个关系运算符应用于一个已被赋值“na”(不适用,notapplicable)的语法元素或变量时,值“na”为该语法元素或变量的不同值。值“na”不等于任何其它值。[0658]逐位运算符[0659]以下逐位运算符定义如下:[0660]&逐位“与”。当对整数参数进行运算时,运算的是整数值的二补数表示法。当对二进制参数进行运算时,如果该二进制参数包含的位比另一个参数包含的位少,则通过添加更多等于0的有效位来扩展较短的参数。[0661]|逐位“或”。当对整数参数进行运算时,运算的是整数值的二补数表示法。当对二进制参数进行运算时,如果该二进制参数包含的位比另一个参数包含的位少,则通过添加更多等于0的有效位来扩展较短的参数。[0662]^逐位“异或”。当对整数参数进行运算时,运算的是整数值的二补数表示法。当对二进制参数进行运算时,如果该二进制参数包含的位比另一个参数包含的位少,则通过添加更多等于0的有效位来扩展较短的参数。[0663]x》》yx的二补数整数表示算术右移y个二进制数位。只有y为非负整数值时才定义该函数。右移的结果是移进最高有效位(mostsignificantbit,msb)的比特位等于移位运算之前的x的msb。[0664]x《《yx的二补数整数表示算术左移y个二进制数位。只有y为非负整数值时才定义该函数。由于左移而移进最低有效位(leastsignificantbit,lsb)的比特的值等于0。[0665]赋值运算符[0666]以下算术运算符定义如下:[0667]=赋值运算符[0668]++增,即,x++等于x=x+1;当在阵列索引中使用时,等于增运算之前变量的值。[0669]––减,即,x––等于x=x–1;当在阵列索引中使用时,等于减运算之前变量的值。[0670]+=增加指定量,即,x+=3等于x=x+3,x+=(–3)等于x=x+(–3)。[0671]-=减少指定量,即,x–=3等于x=x–3,x–=(–3)等于x=x–(–3)。[0672]范围符号[0673]以下符号用来说明值的范围:[0674]x=y..zx取从y到z(包括y和z)的整数值,其中x、y和z是整数,z大于y。[0675]数学函数[0676]定义了以下数学函数:[0677][0678]asin(x)三角反正弦函数,对参数x运算,x在–1.0至1.0(包括端值)范围之间,输出值在–π÷2至π÷2(包括端值)范围之间,单位为弧度。[0679]atan(x)三角反正切函数,对参数x运算,输出值在–π÷2至π÷2(包括端值)范围之间,单位为弧度。[0680][0681]ceil(x)大于或等于x的最小整数。[0682]clip1y(x)=clip3(0,(1《《bitdepthy)–1,x)[0683]clip1c(x)=clip3(0,(1《《bitdepthc)–1,x)[0684][0685]cos(x)三角余弦函数,对参数x运算,单位为弧度。[0686]floor(x)小于或等于x的最大整数。[0687][0688]ln(x)x的自然对数(以e为底的对数,其中e是自然对数底数常数2.718281828……)。[0689]log2(x)返回x的以2为底的对数。[0690]log10(x)x以10为底的对数。[0691][0692][0693]round(x)=sign(x)*floor(abs(x)+0.5)[0694][0695]sin(x)三角正弦函数,对参数x运算,单位为弧度。[0696][0697]swap(x,y)=(y,x)[0698]tan(x)三角正切函数,对参数x运算,单位为弧度。[0699]运算顺序优先级[0700]当没有使用括号来显式指示表达式中的优先顺序时,适应以下规则:[0701]–高优先级的运算在低优先级的任何运算之前计算。[0702]–相同优先级的运算从左到右依次计算。[0703]下表从最高到最低说明运算的优先级,表中位置越高,优先级越高。[0704]对于c编程语言中也使用的运算符,本规范中使用的优先级顺序与在c编程语言中使用的优先级顺序相同。[0705]表:从最高(表格顶部)到最低(表格底部)的运算优先级[0706][0707]逻辑运算的文本说明[0708]在文本中,逻辑运算的语句用数学形式描述如下:[0709][0710]else/*其余条件的信息备注*/[0711]statementn[0712]可以采用如下方式描述:[0713]……如下/……则:[0714]–如果条件0,则为语句0[0715]–否则,如果条件1,则为语句1[0716]‑……[0717]–否则(其余条件的信息备注),则为语句n[0718]文本中的每个“如果……否则,如果……否则,……”表述通过“如果……”接着是“……如下:”或“……则:”引出。“如果……,否则,如果……否则,……”的最后一个条件总是“否则,……”。通过将“……如下:”或“……则”与结尾语句“……否则”相匹配来识别中间有“如果……否则,如果……否则,……”的语句。[0719]在文本中,逻辑运算的语句用数学形式描述如下:[0720][0721]可以采用如下方式描述:[0722]……如下/……则:[0723]–如果以下所有条件都为真,则为语句0:[0724]–条件0a[0725]–条件0b[0726]–否则,如果以下条件中的一个或多个为真,则为语句1:[0727]–条件1a[0728]–条件1b[0729]‑……[0730]–否则,为语句n[0731]在文本中,逻辑运算的语句用数学形式描述如下:[0732][0733]可以采用如下方式描述:[0734]当条件为0时,语句0[0735]当条件为1时,语句1[0736]尽管本发明实施例主要根据视频译码进行了描述,但需要说明的是,译码系统10、编码器20和解码器30(相应地,系统10)的实施例以及本文描述的其它实施例也可以用于静止图像处理或译码,即,对视频译码中独立于任何之前或连续图像的单个图像进行处理或译码。一般情况下,如果图像处理译码仅限于单个图像17,帧间预测单元244(编码器)和344(解码器)可能不可用。视频编码器20和视频解码器30的所有其它功能(也称为工具或技术)同样可用于静态图像处理,例如残差计算204/304、变换206、量化208、反量化210/310、(逆)变换212/312、分割262/362、帧内预测254/354和/或环路滤波220/320、熵编码270和熵解码304。[0737]编码器20和解码器30等的实施例,以及本文描述的与编码器20和解码器30等有关的功能可以使用硬件、软件、固件或其任意组合来实现。如果使用软件来实现,那么各种功能可作为一或多个指令或代码在计算机可读媒体上存储或发送,且由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,对应于有形介质,例如数据存储介质,或包括任何促进将计算机程序从一处传送到另一处的介质(例如根据通信协议)的通信介质。以此方式,计算机可读介质通常可以对应(1)非瞬时性的有形计算机可读存储介质,或(2)信号或载波等通信介质。数据存储介质可为可由一个或多个计算机或一个或多个处理器存取以检索用于实现本技术中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。[0738]作为示例而非限制,这类计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存或可用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其它介质。此外,任何连接都可以被适当地定义为电脑可读介质。例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光缆、双绞线、数字用户线(digitalsubscriberline,dsl)或以例如红外、无线和微波等无线方式发送的,也被包含在所定义的介质中。但是,应理解,所述计算机可读存储介质和数据存储介质并不包括连接、载波、信号或其它瞬时性介质,而是实际上针对于非瞬时性有形存储介质。本文中使用的磁盘(disk)和光盘(disc)包括压缩磁盘(compactdisc,cd)、镭射盘、光盘、数字多功能光盘(digitalversatiledisc,dvd)、软盘和蓝光光盘,磁盘通常以磁性复制数据,而光盘通常以激光进行光学复制数据。上述的组合也可以包括在电脑可读介质范畴中。[0739]可通过一个或多个数字信号处理器(digitalsignalprocessor,dsp)、通用微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程逻辑阵列(fieldprogrammablelogicarray,fpga)或其它等效集成或离散逻辑电路等一个或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实现本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入到组合编解码器中。而且,所述技术可以完全在一个或多个电路或逻辑元件中实现。[0740]本发明的技术可以在多种设备或装置中实现,这些设备或装置包括无线手机、集成电路(integratedcircuit,ic)或一组ic(例如芯片组)。本技术中描述各种组件、模块或单元是为了强调用于执行所公开技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元(包括如上所述的一个或多个处理器)的集合来提供。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1