一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用非矩形融合模式协调加权预测的方法和装置与流程

2022-06-05 21:49:41 来源:中国专利 TAG:
1.本技术(本发明)实施例大体上涉及运动图像处理领域,更具体地涉及非矩形划分模式与加权预测组合用于译码淡出时的非矩形划分模式。
背景技术
::2.视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字电视、基于互联网和移动网络的视频传输、视频聊天和视频会议等实时会话应用、dvd和蓝光光盘、视频内容采集和编辑系统以及安全应用的可携式摄像机。3.即使视频相对较短,也需要大量的视频数据来描述,当数据要在带宽容量有限的通信网络中流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后通过现代电信网络进行传输。由于内存资源可能有限,当在存储设备中存储视频时,该视频的尺寸也可能是一个问题。视频压缩设备通常在信源侧使用软件和/或硬件对视频数据进行编码,然后传输或存储视频数据,从而减少表示数字视频图像所需的数据量。然后,对视频数据进行解码的视频解压缩设备在目的地侧接收压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。技术实现要素:4.实施例提供了用于对包括加权预测参数的视频序列进行编码和解码的多种方法。所述加权预测参数是由淡出加权参数和混合加权参数组合得到的。淡出加权参数的值是根据参考索引值和参考图像列表确定的,而混合加权参数是根据预测样本在预测块中的位置确定的。5.在本技术的第一方面中,一种帧间预测方法包括:确定是否允许非矩形帧间预测模式用于块组;获取所述块组的一个或多个帧间预测模式参数和加权预测参数;根据所述一个或多个帧间预测模式参数和加权预测参数,获取当前块的预测值,其中,所述一个或多个帧间预测模式参数中的一个帧间预测模式参数表示所述当前块的参考图像信息,所述块组包括所述当前块。6.在一种可行的实现方式中,所述参考图像信息包括是否对参考图像索引启用加权预测;如果加权预测被启用,则所述非矩形帧间预测模式被禁用。7.在一种可行的实现方式中,如果加权预测被禁用,则所述非矩形帧间预测模式被启用。8.在一种可行的实现方式中,所述确定是否允许非矩形帧间预测模式包括:指示三角融合候选的最大数量(maxnumtrianglemergecand)大于1。9.在一种可行的实现方式中,所述块组包括图像,所述加权预测参数和用于确定是否允许所述非矩形帧间预测模式的指示信息在所述图像的图像头中。10.在一种可行的实现方式中,所述块组包括条带,所述加权预测参数和用于确定是否允许所述非矩形帧间预测模式的指示信息在所述条带的条带头中。11.在一种可行的实现方式中,所述非矩形帧间预测模式为三角划分模式。12.在一种可行的实现方式中,所述非矩形帧间预测模式为几何(geo)划分模式。13.在一种可行的实现方式中,所述加权预测参数用于条带级亮度补偿。14.在一种可行的实现方式中,所述加权预测参数用于块级亮度补偿。15.在一种可行的实现方式中,所述加权预测参数包括:标志,表示所述加权预测是否应用于预测块的亮度分量和/或色度分量;线性模型参数,指定所述预测块的值的线性变换。16.在本技术的第二方面中,一种用于帧间预测的装置包括:非瞬时性存储器,存储有处理器可执行指令;处理器,耦合到所述存储器并用于执行所述处理器可执行指令,以实现本技术所述第一方面中的任一可行的实现方式。17.在本技术的第三方面中,一种用于帧间预测的码流包括:用于确定是否允许非矩形帧间预测模式用于块组的指示信息;所述块组的一个或多个帧间预测模式参数和加权预测参数,其中,当前块的预测值是根据所述一个或多个帧间预测模式参数和加权预测参数获得的,所述一个或多个帧间预测模式参数中的一个帧间预测模式参数表示所述当前块的参考图像信息,所述块组包括所述当前块。18.在一种可行的实现方式中,所述参考图像信息包括是否对参考图像索引启用加权预测;如果加权预测被启用,则所述非矩形帧间预测模式被禁用。19.在一种可行的实现方式中,如果加权预测被禁用,则所述非矩形帧间预测模式被启用。20.在一种可行的实现方式中,所述指示信息包括三角融合候选的最大数量(maxnumtrianglemergecand)大于1。21.在一种可行的实现方式中,所述块组包括图像,所述加权预测参数和所述指示信息在所述图像的图像头中。22.在一种可行的实现方式中,所述块组由条带组成,所述加权预测参数和所述指示信息在所述条带的条带头中。23.在一种可行的实现方式中,所述非矩形帧间预测模式为三角划分模式。24.在一种可行的实现方式中,所述非矩形帧间预测模式为几何(geo)划分模式。25.在一种可行的实现方式中,所述加权预测参数用于条带级亮度补偿。26.在一种可行的实现方式中,所述加权预测参数用于块级亮度补偿。27.在一种可行的实现方式中,所述加权预测参数包括:标志,表示所述加权预测是否应用于预测块的亮度分量和/或色度分量;线性模型参数,指定所述预测块的值的线性变换。28.在本技术的第四方面中,一种帧间预测装置包括:确定模块,确定是否允许非矩形帧间预测模式用于块组;获取模块,用于获取所述块组的一个或多个帧间预测模式参数和加权预测参数;预测模块,用于根据所述一个或多个帧间预测模式参数和加权预测参数,获取当前块的预测值,其中,所述一个或多个帧间预测模式参数中的一个帧间预测模式参数表示所述当前块的参考图像信息,所述块组包括所述当前块。29.在一种可行的实现方式中,所述参考图像信息包括是否对参考图像索引启用加权预测;如果加权预测被启用,则所述非矩形帧间预测模式被禁用。30.在一种可行的实现方式中,如果加权预测被禁用,则所述非矩形帧间预测模式被启用。31.在一种可行的实现方式中,所述确定模块具体用于:指示三角融合候选的最大数量(maxnumtrianglemergecand)大于1。32.在一种可行的实现方式中,所述块组包括图像,所述加权预测参数和用于确定是否允许所述非矩形帧间预测模式的指示信息在所述图像的图像头中。33.在一种可行的实现方式中,所述块组包括条带,所述加权预测参数和用于确定是否允许所述非矩形帧间预测模式的指示信息在所述条带的条带头中。34.在一种可行的实现方式中,所述非矩形帧间预测模式为三角划分模式。35.在一种可行的实现方式中,所述非矩形帧间预测模式为几何(geo)划分模式。36.在一种可行的实现方式中,所述加权预测参数用于条带级亮度补偿。37.在一种可行的实现方式中,所述加权预测参数用于块级亮度补偿。38.在一种可行的实现方式中,所述加权预测参数包括:标志,表示所述加权预测是否应用于预测块的亮度分量和/或色度分量;线性模型参数,指定所述预测块的值的线性变换。39.在本发明实施例中,可以只使用允许或启用双向帧间预测的条带(例如双向(b)预测条带(也称为b条带))的条带头中的信号相关信息进行高效编码和/或解码。40.上述和其它目的通过独立权利要求请求保护的主题实现。其它实现方式在从属权利要求、说明书和附图中是显而易见的。41.以下附图和说明书详细阐述了一个或多个实施例。其它特征、目的和优点在说明书、附图和权利要求书中是显而易见的。附图说明42.下面参考所附附图和示意图更详细地描述本发明实施例。43.图1a为用于实现本发明实施例的视频译码系统的一个示例的框图。44.图1b为用于实现本发明实施例的视频译码系统的另一个示例的框图。45.图2为用于实现本发明实施例的视频编码器的一个示例的框图。46.图3为用于实现本发明实施例的视频解码器的一种示例性结构的框图。47.图4为编码装置或解码装置的一个示例的框图。48.图5为编码装置或解码装置的另一个示例的框图。49.图6为加权预测编码器决策和参数估计的流程图。50.图7示出了三角预测模式的一个示例。51.图8示出了几何预测模式的一个示例。52.图9示出了几何预测模式的另一个示例。53.图10为实现内容分发服务的内容供应系统3100的一种示例性结构的框图。54.图11为终端设备的一种示例性结构的框图。55.图12为本技术提供的帧间预测方法的一个示例的框图。56.图13为本技术提供的用于帧间预测的装置的一个示例的框图。57.图14为本技术提供的用于帧间预测的装置的另一个示例的框图。58.在下文,如果没有另外明确说明,相同的附图标记指代相同特征或至少在功能上等效的特征。具体实施方式59.以下描述中,参考组成本发明一部分并以说明的方式示出本发明实施例的具体方面或可以使用本发明实施例的具体方面的附图。应当理解的是,本发明实施例可以在其它方面中使用,并且可以包括附图中未描绘的结构变化或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本发明的范围由所附权利要求书界定。60.例如,应当理解的是,与描述方法有关的公开内容可以对用于执行所述方法的对应设备或系统也同样适用,反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括功能单元等一个或多个单元,来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元分别执行多个步骤中的一个或多个),即使附图中未明确描述或说明这种一个或多个单元。此外,如果根据功能单元等一个或多个单元描述具体装置,则对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或多个步骤分别执行多个单元中一个或多个单元的功能),即使附图中未明确描述或说明这种一个或多个单元。进一步地,可以理解的是,除非另外明确提出,本文中所描述的各示例性实施例和/或方面的特征可以相互组合。61.视频译码通常是指处理形成视频或视频序列的图像序列。在视频编码领域,术语“帧(frame)”与“图像(picture/image)”可以用作同义词。视频译码(或通常称为译码)包括视频编码和视频解码两部分。视频编码在源侧执行,通常包括处理(例如通过压缩)原始视频图像,以减少表示视频图像所需的数据量(从而更高效地存储和/或传输)。视频解码在目的地侧执行,通常包括相对于编码器作逆处理,以重建视频图像。实施例涉及的视频图像(或通常称为图像)的“译码”应当理解为涉及视频图像或相应视频序列的“编码”或“解码”。编码部分和解码部分也合称为编解码(codec)(编码和解码)。62.在无损视频译码情况下,可以重建原始视频图像,即经重建视频图像具有与原始视频图像相同的质量(假设存储或传输期间没有传输损耗或其它数据丢失)。在有损视频译码情况下,通过量化等执行进一步压缩,来减少表示视频图像所需的数据量,而解码器侧无法完全重建视频图像,即经重建视频图像的质量相比原始视频图像的质量较低或较差。63.几个视频编码标准属于“有损混合型视频编解码器”组(即,将样本域中的空间预测和时间预测与变换域中用于应用量化的二维变换编码相结合)。视频序列中的每个图像通常划分成不重叠的块集合,通常在块层级进行译码。换句话说,编码器侧通常在块(视频块)层级处理亦即编码视频,例如,通过空间(帧内)预测和/或时间(帧间)预测来生成预测块,从当前块(当前处理/待处理的块)中减去预测块以获取残差块,在变换域变换残差块并量化残差块,以减少待传输(压缩)的数据量,而解码器侧将相对于编码器的逆处理部分应用于经编码或经压缩块,以重建用于表示的当前块。此外,编码器复制解码器处理循环,使得编码器和解码器生成相同的预测(例如帧内预测和帧间预测)和/或重建,用于处理亦即译码后续块。64.在以下视频译码系统10的实施例中,视频编码器20和视频解码器30根据图1a、图1b、图2和图3进行描述。65.图1a为示例译码系统10的示意性框图,例如可以利用本技术中技术的视频译码系统10(或简称为译码系统10)。视频译码系统10中的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)为两个示例,即可以用于根据本技术中描述的各种示例执行各种技术的设备。66.如图1a所示,译码系统10包括源设备12,源设备12用于将经编码图像数据21提供给目的地设备14等,以对经编码图像数据21进行解码。67.源设备12包括编码器20,并且可以另外(即可选地)包括图像源16、预处理器(或预处理单元)18(例如图像预处理器18)和通信接口或通信单元22。68.图像源16可以包括或可以是任何类型的用于捕获真实世界图像等的图像捕获设备;和/或任何类型的图像生成设备(例如用于生成计算机动画图像的计算机图形处理器);或者任何类型的用于获取和/或提供真实世界图像、计算机动画图像(例如屏幕内容、虚拟现实(virtualreality,vr)图像)和/或其任何组合(例如增强现实(augmentedreality,ar)图像)的设备。图像源可以为任何类型的存储任一上述图像的存储器(memory/storage)。69.为了区分预处理器18和预处理单元18执行的处理,图像或图像数据17也可以称为原始图像或原始图像数据17。70.预处理器18用于接收(原始)图像数据17并对图像数据17执行预处理,得到预处理图像19或预处理图像数据19。预处理器18执行的预处理可以包括修剪(trimming)、颜色格式转换(例如从rgb转换为ycbcr)、调色或去噪等。可以理解的是,预处理单元18可以为可选组件。71.视频编码器20用于接收预处理图像数据19并提供经编码图像数据21(结合图2等描述更多细节)。72.源设备12中的通信接口22可以用于接收经编码图像数据21,并通过通信信道13将经编码图像数据21(或对经编码图像数据21进一步处理后得到的数据)发送给另一设备(例如目的地设备14)或任何其它设备,以便进行存储或直接重建。73.目的地设备14包括解码器30(例如视频解码器30),并且可以另外(即可选地)包括通信接口或通信单元28、后处理器32(或后处理单元32)和显示设备34。74.目的地设备14中的通信接口28用于直接从源设备12或从存储设备(例如经编码图像数据存储设备)等任何其它源,接收经编码图像数据21(或对经编码图像数据21进一步处理后得到的数据),并将经编码图像数据21提供给解码器30。75.通信接口22和通信接口28可以用于经由源设备12与目的地设备14之间的直接通信链路(例如,直接有线或无线连接)或者经由任何类型的网络(例如,有线网络、无线网络或其任何组合,或者任何类型的私网和公网或其任何类型的组合)发送或接收经编码图像数据21或经编码数据21。76.例如,通信接口22可以用于将经编码图像数据21封装成合适的格式(例如数据包),和/或通过任何类型的传输编码或处理方式来处理经编码图像数据,以便通过通信链路或通信网络进行传输。77.例如,与通信接口22对应的通信接口28可以用于接收传输数据,并通过任何类型的对应传输解码或处理和/或解封装方式来处理传输数据,得到经编码图像数据21。78.通信接口22和通信接口28都可以配置为图1a中从源设备12指向目的地设备14的通信信道13的箭头所指示的单向通信接口,或者配置为双向通信接口,并且可以用于发送和接收消息等,以建立连接、确认并交换与通信链路和/或数据传输(例如经编码图像数据传输)相关的任何其它信息,等等。79.解码器30用于接收经编码图像数据21并提供经解码图像数据31或经解码图像31(下文结合图3或图5等描述更多细节)。80.目的地设备14中的后处理器32用于对经解码图像数据31(也称为经重建图像数据)(例如经解码图像31)进行后处理,得到后处理图像数据33(例如后处理图像33)。后处理单元32执行的后处理可以包括颜色格式转换(例如从ycbcr转换为rgb)、调色、修剪(trimming)或重采样,或者任何其它处理,以便提供经解码图像数据31由显示设备34等显示,等等。81.目的地设备14中的显示设备34用于接收后处理图像数据33,以便向用户或观看者等显示图像。显示设备34可以为或可以包括任何类型的用于表示经重建图像的显示器,例如集成或外部显示器或显示屏。例如,显示器可以包括液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclightemittingdiode,oled)显示器、等离子显示器、投影仪、微型led显示器、硅基液晶(liquidcrystalonsilicon,lcos)显示器、数字光处理器(digitallightprocessor,dlp)或任何类型的其它显示器。82.虽然图1a中将源设备12和目的地设备14绘示为单独的设备,但是设备实施例也可以同时包括这两种设备或同时包括这两种设备的功能,即源设备12或对应的功能以及目的地设备14或对应的功能。在这些实施例中,可以使用相同硬件和/或软件,或使用单独的硬件和/或软件,或其任何组合来实施源设备12或对应的功能以及目的地设备14或对应的功能。83.本领域技术人员基于描述明显可知,不同单元的功能或图1a所示的源设备12和/或目的地设备14的功能的存在和(准确)分割可能根据实际设备和应用有所不同。84.编码器20(例如视频编码器20)或解码器30(例如视频解码器30)或者编码器20和解码器30可以通过图1b所示的处理电路来实现,例如一个或多个微处理器、一个或多个数字信号处理器(digitalsignalprocessor,dsp)、一个或多个专用集成电路(application-specificintegratedcircuit,asic)、一个或多个现场可编程门阵列(field-programmablegatearray,fpga)、一个或多个离散逻辑、一个或多个硬件、一个或多个视频译码专用处理器或其任意组合。编码器20可以通过处理电路46实现,以包含参照图2中的编码器20描述的各种模块和/或本文描述的任何其它编码器系统或子系统。解码器30可以通过处理电路46实现,以包含参照图3中的解码器30描述的各种模块和/或本文描述的任何其它解码器系统或子系统。处理电路可以用于执行下文描述的各种操作。如图5所示,如果上述技术部分在软件中实现,则一种设备可以将该软件的指令存储在合适的非瞬时性计算机可读介质中,并且可以使用一个或多个处理器在硬件中执行这些指令,以执行本发明中的技术。视频编码器20或视频解码器30可以作为组合编解码器(codec)的一部分集成在单个设备中,如图1b所示。85.源设备12和目的地设备14可以包括多种设备中的任一种,包括任何类型的手持或固定设备,例如笔记本或膝上型电脑、手机、智能手机、平板或平板电脑、摄像机、台式电脑、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏机、视频流设备(例如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备等,并且可以不使用或使用任何类型的操作系统。在一些情况下,源设备12和目的地设备14可以用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。86.在一些情况下,图1a所示的视频编码及解码系统10仅为示例,本技术中的技术可以适用于不必包含编码和解码设备之间的任何数据通信的视频编码设置(例如,视频编码或视频解码)。在其它示例中,数据可从本地存储器检索、在网络上流式传输等。视频编码设备可以对数据进行编码并且将数据存储到存储器,和/或视频解码设备可以从存储器检索数据并且对数据进行解码。在一些示例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的设备执行编码和解码。87.为便于描述,本文(例如)参考由itu-t视频编码专家组(videocodingexpertsgroup,vceg)和iso/iec运动图像专家组(motionpictureexpertsgroup,mpeg)的视频编码联合协作团队(jointcollaborationteamonvideocoding,jct-vc)开发的高效视频编码(high-efficiencyvideocoding,hevc)或下一代视频编码标准通用视频编码(versatilevideocoding,vvc)参考软件来描述本发明实施例。本领域普通技术人员理解本发明实施例不限于hevc或vvc。88.编码器和编码方法89.图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也可以称为混合视频编码器或基于混合型视频编解码器的视频编码器。90.残差计算单元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的“内置解码器”。91.图像和图像划分(图像和块)92.编码器20可以用于通过输入端201等接收图像17(或图像数据17)。图像17可以是组成视频或视频序列的一系列图像中的图像。接收到的图像或图像数据也可以是预处理图像19(或预处理图像数据19)。为简单起见,以下描述使用图像17。图像17还可以称为当前图像或待译码图像(尤其是在视频译码中为了将当前图像与同一视频序列(也就是同样包括当前图像的视频序列)中的其它图像(例如先前的经编码和/或解码图像)区分开)。93.(数字)图像为或可以视为由具有强度值的样本(sample)组成的二维阵列或矩阵。阵列中的样本也可以称为像素(pixel/pel)(图像元素的简称)。阵列或图像的水平方向和垂直方向(或轴线)上的样本数量限定了图像的尺寸和/或分辨率。为了表示颜色,通常采用3个颜色分量,即图像可以表示为或可以包括3个样本阵列。在rgb格式或颜色空间中,一个图像包括对应的红色、绿色和蓝色样本阵列。但是,在视频译码中,每个像素通常以亮度和色度格式或颜色空间表示,例如ycbcr,包括y表示的亮度分量(有时也用l表示)和cb和cr表示的2个色度分量。亮度(luminance,简写为luma)分量y表示亮度或灰度级强度(例如在灰度等级图像中两者相同),而2个色度(chrominance,简写为chroma)分量cb和cr表示色度或颜色信息分量。因此,ycbcr格式的图像包括由亮度样本值(samplevalue)(y)组成的亮度样本阵列和2个由色度值(cb和cr)组成的色度样本阵列。rgb格式的图像可以转换或变换为ycbcr格式,反之亦然。该过程也称为颜色变换或转换。如果图像是黑白的,则该图像可以仅包括亮度样本阵列。相应地,例如,图像可以为黑白格式的亮度样本阵列或4:2:0、4:2:2和4:4:4颜色格式的亮度样本阵列和2个对应的色度样本阵列。94.视频编码器20的实施例可以包括图像划分单元(图2中未示出),用于将图像17划分成多个(通常不重叠的)图像块203。这些块也可以称为根块、宏块(h.264/avc),或(h.265/hevc和vvc中的)编码树块(codingtreeblock,ctb)或编码树单元(codingtreeunit,ctu)。图像划分单元可以用于对视频序列中的所有图像使用相同的块尺寸和使用限定块尺寸的对应网格,或者在图像或图像子集或图像组之间改变块尺寸,并将每个图像划分成多个对应块。95.在其它实施例中,视频编码器可以用于直接接收图像17中的块203,例如组成图像17的一个、几个或所有块。图像块203也可以称为当前图像块或待译码图像块。96.与图像17类似,图像块203同样是或可以视为具有强度值(样本值)的像素点组成的二维阵列或矩阵,但是图像块203的尺寸比图像17的尺寸小。换句话说,根据所应用的颜色格式,块203可以包括(例如)一个样本阵列(例如黑白图像17情况下的亮度阵列或彩色图像情况下的亮度阵列或色度阵列)或3个样本阵列(例如彩色图像17情况下的1个亮度阵列和2个色度阵列)或任何其它数量和/或类型的阵列。块203的水平方向和垂直方向(或轴线)上的样本数量限定了块203的尺寸。相应地,一个块可以为m×n(m列×n行)的样本阵列,或m×n的变换系数阵列等。97.图2所示的视频编码器20的实施例可以用于逐块对图像17进行编码,例如对每个块203执行编码和预测。98.图2所示的视频编码器20的实施例还可以用于使用条带(slice)(也称为视频条带)对图像进行划分和/或编码。一个图像可以划分成一个或多个(通常不重叠的)条带或使用一个或多个(通常不重叠的)条带进行编码,每个条带可以包括一个或多个块(例如ctu)。99.图2所示的视频编码器20的实施例还可以用于使用分块(tile)组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行划分和/或编码。一个图像可以划分成一个或多个(通常不重叠的)分块组或使用一个或多个(通常不重叠的)分块组进行编码;每个分块组可以包括一个或多个块(例如ctu)或一个或多个分块等;每个分块可以为矩形等并可以包括一个或多个完整或部分块(例如ctu)等。100.残差计算101.残差计算单元204可以用于通过以下方式根据图像块203和预测块265(后续详细介绍了预测块265)来计算残差块205(也称为残差205)以得到样本域中的残差块205:例如,逐个样本(逐个像素)从图像块203的样本值中减去预测块265的样本值。102.变换103.变换处理单元206可以用于在残差块205的样本值上应用离散余弦变换(discretecosinetransform,dct)或离散正弦变换(discretesinetransform,dst)等变换,以在变换域中获取变换系数207。变换系数207也可以称为变换残差系数,表示变换域中的残差块205。104.变换处理单元206可以用于应用dct/dst(例如为h.265/hevc指定的变换)的整数近似值。与正交dct变换相比,这种整数近似值通常由某一因子按比例缩放。为了维持经正变换和逆变换处理的残差块的范数,应用其它比例缩放因子作为变换过程的一部分。比例缩放因子通常是根据某些约束条件选择的,例如,比例缩放因子是用于移位运算的2的幂、变换系数的位深度、精度与实现成本之间的权衡等。例如,通过逆变换处理单元212等为逆变换(以及在视频解码器30侧,通过逆变换处理单元312等为对应的逆变换)指定具体比例缩放因子;相应地,可以在编码器20侧通过变换处理单元206等为正变换指定对应比例缩放因子。105.视频编码器20(相应地,变换处理单元206)的实施例可以用于直接输出或通过熵编码单元270进行编码或压缩后输出变换参数(例如,一种或多种变换的类型),使得视频解码器30可以接收并使用变换参数进行解码,等等。106.量化107.量化单元208可以用于通过应用标量量化或矢量量化等来量化变换系数207,得到经量化系数209。经量化系数209也可以称为经量化变换系数209或经量化残差系数209。108.量化过程可以减小与部分或全部变换系数207相关的位深度。例如,可以在量化期间将n位变换系数向下舍入到m位变换系数,其中,n大于m。可以通过调整量化参数(quantizationparameter,qp)修改量化程度。例如,对于标量量化,可以应用不同的缩放来实现较细或较粗的量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。可以通过量化参数(quantizationparameter,qp)指示合适的量化步长。例如,量化参数可以为合适的量化步长的预定义集合的索引。例如,较小的量化参数可以对应精细量化(较小量化步长),较大量化参数可以对应粗糙量化(较大量化步长),反之亦然。量化可以包含除以量化步长以及例如通过逆量化210执行的对应反量化或解量化,或者可以包含乘以量化步长。根据hevc等一些标准的实施例可以使用量化参数来确定量化步长。一般而言,可以基于量化参数使用包括除法的等式的定点近似来计算量化步长。可以引入额外比例缩放因子来进行量化和反量化,以恢复可能由于在用于量化步长和量化参数的等式的定点近似中使用的缩放而修改的残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化的缩放。可选地,可以使用自定义量化表并在码流等中将其从编码器通过信号发送到解码器。量化是有损操作,其中,量化步长越大,损耗越大。109.视频编码器20(对应地,量化单元208)的实施例可以用于直接输出或通过熵编码单元270进行编码后输出量化参数(quantizationparameter,qp),使得视频解码器30可以接收并使用量化参数进行解码,等等。110.反量化111.反量化单元210用于在经量化系数上应用量化单元208的反量化,得到经解量化系数211,例如根据或使用与量化单元208相同的量化步长,应用量化单元208应用的量化方案的反量化方案。经解量化系数211也可以称为经反量化残差系数211,对应于变换系数207,但是由于量化造成的损耗,通常与变换系数不相同。112.逆变换113.逆变换处理单元212用于应用变换处理单元206应用的变换的逆变换,例如,逆离散余弦变换(discretecosinetransform,dct)或逆离散正弦变换(discretesinetransform,dst)或其它逆变换,以在样本域中获取经重建残差块213(或对应的经解量化系数213)。经重建残差块213也可以称为变换块213。114.重建115.重建单元214(例如加法器或求和器214)用于通过以下方式将变换块213(即经重建残差块213)添加到预测块265,以在样本域中获取经重建块215:例如,逐个样本将经重建残差块213的样本值和预测块265的样本值相加。116.滤波117.环路滤波器单元220(或简称“环路滤波器”220)用于对经重建块215进行滤波,获得经滤波块221,或通常用于对经重建样本进行滤波,得到经滤波样本值。例如,环路滤波器单元用于顺利进行像素转变或以其它方式提高视频质量。环路滤波器单元220可以包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sample-adaptiveoffset,sao)滤波器或一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf)、锐化或平滑滤波器、协同滤波器或其任意组合。虽然环路滤波器单元220在图2中示出为环内滤波器,但在其它配置中,环路滤波器单元220可以实施为环后滤波器。经滤波块221也可以称为经滤波的经重建块221。118.视频编码器20(相应地,环路滤波器单元220)的实施例可以用于输出环路滤波器参数(例如样本自适应偏移信息),例如直接输出或由熵编码单元270进行编码后输出,使得解码器30可以接收并应用相同的环路滤波器参数或相应的环路滤波器用于解码。119.解码图像缓冲区120.解码图像缓冲区(decodedpicturebuffer,dpb)230可以是存储参考图像或通常存储参考图像数据供视频编码器20在对视频数据进行编码时使用的存储器。dpb230可以由多种存储器设备中的任一种形成,例如动态随机存取存储器(dynamicrandomaccessmemory,dram),包括同步dram(synchronousdram,sdram)、磁阻ram(magnetoresistiveram,mram)、电阻ram(resistiveram,rram)或其它类型的存储器设备。解码图像缓冲区(decodedpicturebuffer,dpb)230可以用于存储一个或多个经滤波块221。解码图像缓冲区230还可以用于存储同一当前图像或不同图像(例如先前的经重建图像)中的其它先前经滤波块(例如先前经滤波的经重建块221),并可以提供先前完整的经重建(即经解码)图像(和对应的参考块和样本)和/或部分重建的当前图像(和对应的参考块和样本),以进行帧间预测等。解码图像缓冲区(decodedpicturebuffer,dpb)230还可以用于,如果经重建块215未由环路滤波器单元220进行滤波,存储一个或多个未经滤波的经重建块215,或通常存储未经滤波的经重建样本;用于存储未进行任何其它进一步处理的经重建块或经重建样block,cb)、变换块(transformblock,tb)或预测块(predictionblock,pb)。130.例如,编码树单元(codingtreeunit,ctu)可以为或可以包括具有3个样本阵列的图像中的亮度样本组成的一个ctb以及色度样本组成的两个对应ctb,或者可以为或可以包括黑白图像或使用3个单独颜色平面和语法结构进行译码的图像中的样本组成的一个ctb。这些语法结构用于对样本进行译码。相应地,编码树块(codingtreeblock,ctb)可以为n×n个样本块,其中,n可以设为某个值,使得一个分量分成多个ctb,这就是一种划分方式。编码单元(codingunit,cu)可以为或可以包括具有3个样本阵列的图像中的亮度样本组成的一个编码块以及色度样本组成的两个对应编码块,或者黑白图像或使用3个单独颜色平面和语法结构进行译码的图像中的样本组成的一个编码块。这些语法结构用于对样本进行译码。相应地,编码块(codingblock,cb)可以为m×n个样本块,其中,m和n可以设为某个值,使得一个ctb分成多个编码块,这就是一种划分方式。131.在实施例中,例如根据hevc,可以使用表示为编码树的四叉树结构将编码树单元(codingtreeunit,ctu)分割成多个cu。在cu层级决定是否使用帧间(时间)预测或帧内(空间)预测对图像区域进行译码。每个cu可以根据pu分割类型进一步分割成1个、2个或4个pu。一个pu内进行相同的预测过程,并以pu为单位向解码器发送相关信息。在根据pu分割类型进行预测过程得到残差块之后,可以根据类似于用于cu的编码树的其它四叉树结构将cu划分成变换单元(transformunit,tu)。132.在实施例中,例如根据当前开发的称为通用视频编码(versatilevideocoding,vvc)的最新视频编码标准,使用四叉树结合二叉树(quad-treeandbinary-tree,qtbt)划分等来划分编码块。在qtbt块结构中,一个cu可以为正方形或矩形。例如,编码树单元(codingtreeunit,ctu)首先通过四叉树结构进行划分。四叉树叶节点进一步通过二叉树或三叉(ternary/triple)树结构进行划分。划分树叶节点称为编码单元(codingunit,cu),这种分割(segmentation)用于预测和变换处理,无需任何进一步划分。这表示在qtbt编码块结构中,cu、pu和tu的块尺寸相同。与此同时,三叉树划分等多重划分可以与qtbt块结构一起使用。133.在一个示例中,视频编码器20中的模式选择单元260可以用于执行本文描述的划分技术的任意组合。134.如上所述,视频编码器20用于从(预定的)预测模式集合中确定或选择最佳或最优的预测模式。预测模式集合可以包括帧内预测模式和/或帧间预测模式等。135.帧内预测136.帧内预测模式集合可以包括35种不同的帧内预测模式,例如像dc(或均值)模式和平面模式的非方向性模式或如hevc中定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如像dc(或均值)模式和平面模式的非方向性模式或如vvc中定义的方向性模式。137.帧内预测单元254用于根据帧内预测模式集合中的帧内预测模式,使用同一当前图像的相邻块的经重建样本来生成帧内预测块265。138.帧内预测单元254(或总称为模式选择单元260)还用于将帧内预测参数(或总称为表示块的选定帧内预测模式的信息)以语法元素266的形式输出到熵编码单元270,以包含在经编码图像数据21中,使得视频解码器30可以接收并使用预测参数进行解码,等等。139.帧间预测140.(可能的)帧间预测模式集合取决于可用参考图像(即(例如)上述存储在dpb230中的至少部分经解码图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或只使用参考图像的一部分(例如当前块的区域周围的搜索窗口区域)来搜索最佳匹配参考块,和/或例如取决于是否进行像素插值(例如二分之一/半像素插值和/或四分之一像素插值)。141.除上述预测模式之外,还可以使用跳过模式和/或直接模式。142.帧间预测单元244可以包括运动估计(motionestimation,me)单元和运动补偿(motioncompensation,mc)单元(两者在图2中未示出)。运动估计单元可以用于接收或获取图像块203(当前图像17的当前图像块203)和经解码图像231,或者至少一个或多个先前的经重建块(例如一个或多个其它/不同的先前经解码图像231的经重建块),以进行运动估计。例如,视频序列可以包括当前图像和先前经解码图像231,或换句话说,当前图像和先前经解码图像231可以为一系列图像的一部分或组成一系列图像,这一系列图像组成视频序列。143.例如,编码器20可以用于从多个其它图像中的同一或不同图像的多个参考块中选择一个参考块,并将参考图像(或参考图像索引)和/或参考块的位置(x坐标、y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元。这种偏移也称为运动矢量(motionvector,mv)。144.运动补偿单元用于获取(例如接收)帧间预测参数,并根据或使用帧间预测参数进行帧间预测,得到帧间预测块265。由运动补偿单元执行的运动补偿可以包括根据通过运动估计确定的运动/块矢量来提取或生成预测块,还可以包括执行插值以获得子像素精度。插值滤波可以根据已知像素样本生成其它像素样本,从而可能增加可以用于对图像块进行译码的候选预测块的数量。一旦接收到当前图像块的pu对应的运动矢量,运动补偿单元可以在其中一个参考图像列表中定位运动矢量指向的预测块。145.运动补偿单元还可以生成与块和视频条带相关的语法元素,以供视频解码器30在解码视频条带的图像块时使用。除条带和相应语法元素之外或作为条带和相应语法元素的替代,还可以生成或使用分块组和/或分块以及相应语法元素。146.熵编码147.熵编码单元270用于将熵编码算法或方案(例如可变长度编码(variablelengthcoding,vlc)方案、上下文自适应vlc(contextadaptivevlc,cavlc)方案、算术编码方案、二值化,上下文自适应二进制算术编码(contextadaptivebinaryarithmeticcoding,cabac)、基于语法的上下文自适应二进制算术编码(syntax-basedcontext-adaptivebinaryarithmeticcoding,sbac)、概率区间划分熵(probabilityintervalpartitioningentropy,pipe)编码或其它熵编码方法或技术)等应用于或不应用于(无压缩)经量化系数209、帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素,得到可以通过输出端272以经编码码流21等形式输出的经编码图像数据21,使得视频解码器30可以接收并使用这些参数进行解码,等等。可以将经编码码流21发送给视频解码器30,或者将其存储在存储器中稍后由视频解码器30发送或检索。148.视频编码器20的其它结构变型可以用于对视频流进行编码。例如,基于非变换的编码器20可以在没有变换处理单元206的情况下为某些块或帧直接量化残差信号。在另一种实现方式中,编码器20可以包括组合成单个单元的量化单元208和反量化单元210。149.解码器和解码方法150.图3为用于实现本技术中技术的视频解码器30的一个示例。视频解码器30用于接收(例如)由编码器20编码的经编码图像数据21(例如经编码码流21),得到经解码图像331。经编码图像数据或码流包括用于解码该经编码图像数据的信息,例如表示经编码视频条带(和/或分块组或分块)的图像块的数据和相关语法元素。151.在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如求和器314)、环路滤波器320、解码图像缓冲区(decodedpicturebuffer,dpb)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以为或可以包括运动补偿单元。在一些示例中,视频解码器30可以执行大体上与参照图2中的视频编码器100描述的编码过程互逆的解码过程。152.如参照编码器20所述,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decodedpicturebuffer,dpb)230、帧间预测单元344和帧内预测单元354还组成视频编码器20的“内置解码器”。相应地,反量化单元310在功能上可以与反量化单元110相同,逆变换处理单元312在功能上可以与逆变换处理单元212相同,重建单元314在功能上可以与重建单元214相同,环路滤波器320在功能上可以与环路滤波器220相同,解码图像缓冲区330在功能上可以与解码图像缓冲区230相同。因此,视频编码器20的相应单元和功能的解释相应地适用于视频解码器30的相应单元和功能。153.熵解码154.熵解码单元304用于解析码流21(或通常称为经编码图像数据21)并对经编码图像数据21执行熵解码等,得到经量化系数309和/或经解码编码参数(图3中未示出)等,例如帧间预测参数(例如参考图像索引和运动矢量)、帧内预测参数(例如帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数和/或其它语法元素中的任一个或全部。熵解码单元304可以用于应用与参照编码器20中的熵编码单元270描述的编码方案对应的解码算法或方案。熵解码单元304还可以用于将帧间预测参数、帧内预测参数和/或其它语法元素提供给模式应用单元360,并将其它参数提供给解码器30中的其它单元。视频解码器30可以接收视频条带级和/或视频块级的语法元素。除条带和相应的语法元素之外或作为条带和相应的语法元素的替代,还可以接收和/或使用分块组和/或分块以及相应语法元素。155.反量化156.反量化单元310可以用于从经编码图像数据21(例如通过熵解码单元304等解析和/或解码)接收量化参数(quantizationparameter,qp)(或通常称为与反量化相关的信息)和经量化系数,并根据这些量化参数对经解码量化系数309进行反量化,得到经解量化系数311。经解量化系数311也可以称为变换系数311。反量化过程可以包括使用视频编码器20为视频条带(或分块或分块组)中的每个视频块确定的量化参数来确定量化程度,同样也确定需要应用的反量化的程度。157.逆变换158.逆变换处理单元312可以用于接收经解量化系数311(也称为变换系数311),并对经解量化系数311进行变换,得到样本域中的经重建残差块213。经重建残差块213也可以称为变换块313。变换可以为逆变换,例如逆dct、逆dst、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于(例如通过熵解码单元304等解析和/或解码)从经编码图像数据21接收变换参数或对应的信息,以确定要对经解量化系数311进行的变换。159.重建160.重建单元314(例如加法器或求和器314)可以用于通过以下方式将经重建残差块313添加到预测块365以得到样本域中的经重建块315:例如,将经重建残差块313的样本值和预测块365的样本值相加。161.滤波162.环路滤波器单元320(在译码环路中或之后)用于对经重建块315进行滤波,得到经滤波块321,从而顺利进行像素转变或以其它方式提高视频质量等。环路滤波器单元320可以包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sample-adaptiveoffset,sao)滤波器或一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf)、锐化或平滑滤波器、协同滤波器或其任意组合。虽然环路滤波器单元320在图3中示出为环内滤波器,但在其它配置中,环路滤波器单元320可以实施为环后滤波器。163.解码图像缓冲区164.随后将一个图像的经解码视频块321存储在解码图像缓冲区330中,解码图像缓冲区330存储经解码图像331作为参考图像,以便后续对其它图像进行运动补偿和/或输出或显示。165.解码器30用于通过输出端312等输出经解码图像311,向用户显示或供用户观看。166.预测167.帧间预测单元344在功能上可以与帧间预测单元244(特别是与运动补偿单元)相同,帧内预测单元354在功能上可以与帧内预测单元254相同,并根据从经编码图像数据21(例如通过熵解码单元304等解析和/或解码)接收的划分方式和/或预测参数或相应的信息来执行分割或划分决策和执行预测。模式应用单元360可以用于根据经重建图像、块或相应的样本(经滤波或未经滤波)对每个块执行预测(帧内预测或帧间预测),得到预测块365。168.当视频条带被译码为经帧内译码(i)条带时,模式应用单元360中的帧内预测单元354用于根据指示(signal)的帧内预测模式和来自当前图像的先前经解码块的数据生成当前视频条带的图像块的预测块365。当视频图像被译码为经帧间译码(即b或p)条带时,模式应用单元360中的帧间预测单元344(例如运动补偿单元)用于根据运动矢量和从熵解码单元304接收的其它语法元素为当前视频条带的视频块生成预测块365。对于帧间预测,可以根据其中一个参考图像列表内的其中一个参考图像产生这些预测块。视频解码器30可以根据存储在dpb330中的参考图像,使用默认构建技术来构建参考帧列表0和列表1。除条带(例如视频条带)之外或作为条带的替代,相同或类似的过程可以应用于使用分块组(例如视频分块组)和/或分块(例如视频分块)的实施例或由这些实施例应用,例如,视频可以使用i、p或b分块组和/或分块进行译码。169.模式应用单元360用于通过解析运动矢量或相关信息以及其它语法元素为当前视频条带的视频块确定预测信息,并使用该预测信息为正在解码的当前视频块生成预测块。例如,模式应用单元360使用接收到的一些语法元素来确定用于对视频条带的视频块进行译码的预测模式(例如帧内或帧间预测)、帧间预测条带类型(例如b条带、p条带或gpb条带)、用于条带的一个或多个参考图像列表的构建信息、用于条带的每个经帧间编码视频块的运动矢量、用于条带的每个经帧间译码视频块的帧间预测状态以及其它信息,以对当前视频条带中的视频块进行解码。除条带(例如视频条带)之外或作为条带的替代,相同或类似的过程可以应用于使用分块组(例如视频分块组)和/或分块(例如视频分块)的实施例或由这些实施例应用,例如,视频可以使用i、p或b分块组和/或分块进行译码。170.图3中所示的视频解码器30的实施例可以用于使用条带(也称为视频条带)对图像进行划分和/或解码。一个图像可以划分成一个或多个(通常不重叠的)条带或使用一个或多个(通常不重叠的)条带进行解码,每个条带可以包括一个或多个块(例如ctu)。171.在实施例中,图3所示的视频解码器30可以用于使用分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行划分和/或解码。一个图像可以划分成一个或多个(通常不重叠的)分块组或使用一个或多个(通常不重叠的)分块组进行解码;每个分块组可以包括一个或多个块(例如ctu)或一个或多个分块等;每个分块可以为矩形等并可以包括一个或多个完整或部分块(例如ctu)等。172.视频解码器30的其它变型可以用于对经编码图像数据21进行解码。例如,解码器30可以在没有环路滤波器单元320的情况下生成输出视频流。例如,基于非变换的解码器30可以在没有逆变换处理单元312的情况下针对某些块或帧直接反量化残差信号。在另一种实现方式中,视频解码器30可以包括组合成单个单元的反量化单元310和逆变换处理单元312。173.应当理解的是,在编码器20和解码器30中,可以对当前步骤的处理结果做进一步处理,然后输出到下一步骤。例如,在插值滤波、运动矢量推导或环路滤波之后,可以对插值滤波、运动矢量推导或环路滤波的处理结果进行进一步运算,例如限幅(clip)或移位(shift)运算。174.需要说明的是,可以对当前块的推导运动矢量(包括但不限于仿射模式的控制点运动矢量,仿射模式、平面模式、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来限制运动矢量的方法。175.方法1:通过平滑运算来去除溢出的最高有效位(mostsignificantbit,msb)176.ux=(mvx 2bitdepth)%2bitdepthꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(1)177.mvx=(ux》=2bitdepth–1)?(ux–2bitdepth):uxꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(2)178.uy=(mvy 2bitdepth)%2bitdepthꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(3)179.mvy=(uy》=2bitdepth–1)?(uy–2bitdepth):uyꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(4)180.其中,mvx为一个图像块或子块的运动矢量的水平分量;mvy为一个图像块或子块的运动矢量的垂直分量;ux和uy表示中间值。181.例如,如果mvx的值为–32769,则使用公式(1)和(2)之后得到的值为32767。在计算机系统中,以二进制补码的形式存储十进数。–32769的二进制补码为1,0111,1111,1111,1111(17位),这时丢弃msb,那么得到的二进制补码为0111,1111,1111,1111(十进数为32767),这与使用公式(1)和(2)之后得到的输出结果相同。182.ux=(mvpx mvdx 2bitdepth)%2bitdepthꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(5)183.mvx=(ux》=2bitdepth–1)?(ux–2bitdepth):uxꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(6)184.uy=(mvpy mvdy 2bitdepth)%2bitdepthꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(7)185.mvy=(uy》=2bitdepth–1)?(uy–2bitdepth):uyꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(8)186.这些运算可以在对mvp和mvd求和的过程中执行,如公式(5)至(8)所示。187.方法2:对值进行限幅来去除溢出的msb188.vx=clip3(–2bitdepth–1,2bitdepth–1–1,vx)189.vy=clip3(–2bitdepth–1,2bitdepth–1–1,vy)190.其中,vx为一个图像块或子块的运动矢量的水平分量,vy为一个图像块或子块的运动矢量的垂直分量;x、y和z分别与mv限幅过程的3个输入值对应,函数clip3的定义如下:[0191][0192]图4为本发明一个实施例提供的视频译码设备400的示意图。视频译码设备400适用于实现本文描述的公开实施例。在一个实施例中,视频译码设备400可以是解码器(例如图1a中的视频解码器30)或编码器(例如图1a中的视频编码器20)。[0193]视频译码设备400包括:用于接收数据的入端口410(或输入端口410)和接收单元(rx)420;用于处理所述数据的处理器、逻辑单元或中央处理器(centralprocessingunit,cpu)430;用于发送所述数据的发送单元(tx)440和出端口450(或输出端口450);用于存储所述数据的存储器460。视频译码设备400还可以包括包括与入端口410、接收单元420、发送单元440和出端口450耦合的光电(optical-to-electrical,oe)组件和电光(electrical-to-optical,eo)组件,用作光信号或电信号的出口或入口。[0194]处理器430通过硬件和软件来实现。处理器430可以实现为一个或多个cpu芯片、一个或多个核(例如多核处理器)、一个或多个fpga、一个或多个asic和一个或多个dsp。处理器430与入端口410、接收单元420、发送单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470实现上文描述的公开实施例。例如,译码模块470执行、处理、准备或提供各种译码操作。因此,将译码模块470包含在内为视频译码设备400的功能提供了实质性的改进,并且影响了视频译码设备400到不同状态的转换。可选地,以存储在存储器460中并由处理器430执行的指令来实现译码模块470。[0195]存储器460可以包括一个或多个磁盘、一个或多个磁带机以及一个或多个固态硬盘,并且可以用作溢出数据存储设备,以在选择程序来执行时存储这些程序以及存储在执行程序过程中读取的指令和数据。例如,存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、三态内容寻址存储器(ternarycontent-addressablememory,tcam)和/或静态随机存取存储器(staticrandom-accessmemory,sram)。[0196]图5为一个示例性实施例提供的装置500的简化框图。装置500可以用作图1a的源设备12和目的地设备14中的任一个或两个。[0197]装置500中的处理器502可以是中央处理单元。可选地,处理器502可以是现有的或今后将开发出的能够操作或处理信息的任何其它类型的设备或多个设备。虽然所公开的实现方式可以使用如图所示的处理器502等单个处理器来实施,但使用多个处理器可以提高速度和效率。[0198]在一种实现方式中,装置500中的存储器504可以是只读存储器(readonlymemory,rom)设备或随机存取存储器(randomaccessmemory,ram)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可包括操作系统508和应用程序510,应用程序510包括至少一个程序,这个程序使得处理器502执行本文所述方法。例如,应用程序510可以包括应用1至n,还可以包括执行本文所述方法的视频译码应用。[0199]装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与触敏元件组合的触敏显示器,该触敏元件能够用于感测触摸输入。显示器518可以通过总线512耦合到处理器502。[0200]虽然装置500中的总线512在本文中描述为单个总线,但是总线512可以包括多个总线。此外,辅助存储器514可以直接耦合到装置500中的其它组件或可以通过网络被访问,并且可以包括单个集成单元(例如一个存储卡)或多个单元(例如多个存储卡)。因此,装置500可以通过多种配置实现。[0201]如2004年5月加拿大的ieee电路与系统国际学术研讨会,j.m.boyce发表在第789至792页上的论文“weightedpredictionintheh.264/mpegavcvideocodingstandard(h.264/mpegavc视频编码标准中的加权预测)”所述,加权预测(weightedprediction,wp)是一种工具,它特别有利于编码淡出(codingfade)。h.264视频编码标准的主要档次和扩展档次中采用了加权预测(weightedprediction,wp)工具,通过将乘法加权因子和附加偏移应用于运动补偿预测而形成加权预测,以提高编码效率(codingefficiency)。在显式模式下,加权因子和偏移可以被译码在每个可允许参考图像索引对应的条带头中。在隐式模式下,加权因子不被译码,而是根据两个参考图像的相对图像顺序编号(pictureordercount,poc)距离推导出的。提供的实验结果度量使用wp对编码效率的提升程度。当对渐黑(fade-to-black)序列进行译码时,码率降低高达67%。[0202]当wp应用于单向预测时,如在p图像中一样,wp类似于先前针对抗误码提出的漏预测(leakyprediction)。漏预测是wp的一个特例,其中,缩放因子限制在0≤α≤1的范围内。h.264中的wp不仅可以使用负的缩放因子,而且还可以使用大于1的缩放因子。加权因子通过经译码的标签字段逐个像素应用,以高效地压缩覆盖区域和未覆盖区域。h.264中的wp工具与先前涉及用于提高压缩效率的加权预测的提案之间的一个关键区别是,参考图像索引与加权因子参数存在关联性,这样可以在多参考图像环境中高效地指示这些参数。如2008年10月美国加利福尼亚州圣地亚哥的第15次ieee图像处理国际会议,r.zhang和g.cote发表在第2836至2839页上的论文“accurateparameterestimationandefficientfadedetectionforweightedpredictioninh.264videocompression(用于h.264视频压缩中的加权预测的准确参数估计和高效淡出检测)”所写,在实时编码系统中应用wp的流程可以形式化为图6所示的一系列步骤。首先,通过视频分析610生成一些统计数据611。接着,使用几个先前图像到当前图像的小窗口内的统计数据611检测淡出。每个图像都分配有状态值631,状态值631表示图像是否处于正常(normal)状态或处于淡出(fade)状态。每个图像都保存有这些状态值。当对图像进行编码时,如果当前图像或其多个参考图像中的一个参考图像处于fade状态,则wp会用于这一对当前图像和参考图像。在步骤650中,处理当前图像和对应参考图像的统计数据,以估计wp参数。然后,将这些参数传递给编码引擎660。否侧,正常编码完成。[0203]如2009年11月埃及开罗的第16次ieee图像处理国际会议(internationalconferenceonimageprocessing,icip),a.leontaris和a.m.tourapis发表在第1029至1032页上的论文“weightedpredictionmethodsforimprovedmotioncompensation(用于改进运动补偿的加权预测方法)”所述,h.264中的宏块被分成宏块分区。对于每个宏块分区,参考图像是从可用参考列表(在规范中经常表示为refpiclist)中选择的,即从经译码的p条带或b条带对应的列表0或经译码的b条带对应的参考列表1中选择的。每个分区使用的参考图像可以不同。通过这些参考图像,使用可选地具有子像素精度的运动信息为每个列表生成预测块,即在单向列表预测时生成预测块p以及在双向预测时生成预测块p0和p1。这些预测块可以根据加权预测对当前条带的可用性进一步处理。对于p条带,wp参数在条带头中传输。对于b条带,有两个选择:在显式wp中,参数在条带头中传输;在隐式wp中,参数是根据在条带头中指示的图像顺序编号(pictureordercount,poc)数量推导出的。本文只重点关注显式wp以及如何使用这种方法来提高运动补偿性能。需要说明的是,在hevc和vvc中,pb的使用方式与avc中的宏块分区的类似。[0204]对于b条带中的单向列表显式wp或p条带,预测块是根据单个参考图像得到的。假设p表示预测块p中的样本值。如果不使用加权预测,则最终的帧间预测样本为f=p。否则,预测样本为:[0205][0206]项wx和ox是参考列表x的wp增益和偏移参数。项logwd在码流中传输,并控制加权预测过程的数学精度。当logwd≥1时,上面的表达式向着远离零的方向舍入。类似地,双向预测考虑两个预测块,每个参考列表对应一个预测块。假设p0和p1表示两个预测块p0和p1中的样本。如果不使用加权预测,则如下执行预测:[0207]f=(p0 p1 1)>>1[0208]在双向加权预测的情况下,如下执行预测:[0209]f=((p0×w0 p1×w1 2logwd)>>(logwd 1)) ((o0 o1 1)>>1)[0210]值得注意的是,加权预测可以补偿光照变化,例如淡入(fade-in)、淡出(fade-out)或交错淡出(cross-fade)。[0211]在vvc中的高层级上,加权预测是在序列参数集(sequenceparameterset,sps)、图像参数集(pictureparameterset,pps)和条带头中指示的。在sps中,以下语法元素用于此目的:[0212]–sps_weighted_pred_flag等于1表示加权预测可以应用于参考sps的p条带。sps_weighted_pred_flag等于0表示加权预测不应用于参考sps的p条带;[0213]–sps_weighted_bipred_flag等于1表示显式加权预测可以应用于参考sps的b条带。sps_weighted_bipred_flag等于0表示显式加权预测不应用于参考sps的b条带。[0214]在pps中,以下语法元素用于此目的:[0215]–pps_weighted_pred_flag等于0表示加权预测不应用于参考pps的p条带。pps_weighted_pred_flag等于1表示加权预测应用于参考pps的p条带。当sps_weighted_pred_flag等于0时,pps_weighted_pred_flag的值应等于0;[0216]–pps_weighted_bipred_flag等于0表示显式加权预测不应用于参考pps的b条带。pps_weighted_bipred_flag等于1表示显式加权预测应用于参考pps的b条带。当sps_weighted_bipred_flag等于0时,pps_weighted_bipred_flag的值应等于0。[0217]在条带头中,加权预测参数被指示为pred_weight_table(),pred_weight_table()的结构如表1所示并包括以下元素:[0218]luma_log2_weight_denom是所有亮度加权因子的分母以2为底的对数。luma_log2_weight_denom的取值范围应为0至7(包括端值)。[0219]delta_chroma_log2_weight_denom是所有色度加权因子的分母以2为底的对数的差值。当delta_chroma_log2_weight_denom不存在时,delta_chroma_log2_weight_denom被推断为0。[0220]变量chromalog2weightdenom被推导为luma_log2_weight_denom delta_chroma_log2_weight_denom,该变量的取值范围应为0至7(包括端值)。[0221]luma_weight_l0_flag[i]等于1表示使用refpiclist[0][i]对列表0进行预测所使用的亮度分量的加权因子存在。luma_weight_l0_flag[i]等于0表示这些加权因子不存在。[0222]chroma_weight_l0_flag[i]等于1表示使用refpiclist[0][i]对列表0进行预测所使用的色度预测值的加权因子存在。chroma_weight_l0_flag[i]等于0表示这些加权因子不存在。当chroma_weight_l0_flag[i]不存在时,chroma_weight_l0_flag[i]被推断为0。[0223]delta_luma_weight_l0[i]是应用于使用refpiclist[0][i]对列表0进行预测所使用的亮度预测值的加权因子的差值。[0224]变量lumaweightl0[i]被推导为(1《《luma_log2_weight_denom) delta_luma_weight_l0[i]。当luma_weight_l0_flag[i]等于1时,delta_luma_weight_l0[i]的取值范围应为–128至127(包括端值)。当luma_weight_l0_flag[i]等于0时,lumaweightl0[i]被推断为2luma_log2_weight_denom。[0225]luma_offset_l0[i]是应用于使用refpiclist[0][i]对列表0进行预测所使用的亮度预测值的附加偏移。luma_offset_l0[i]的取值范围应为–128至127(包括端值)。当luma_weight_l0_flag[i]等于0时,luma_offset_l0[i]被推断为0。[0226]delta_chroma_weight_l0[i][j]是应用于使用refpiclist[0][i]对列表0进行预测所使用的色度预测值的加权因子的差值,其中,对于cb,j等于0,对于cr,j等于1。[0227]变量chromaweightl0[i][j]被推导为(1《《chromalog2weightdenom) delta_chroma_weight_l0[i][j]。当chroma_weight_l0_flag[i]等于1时,delta_chroma_weight_l0[i][j]的取值范围应为–128至127(包括端值)。当chroma_weight_l0_flag[i]等于0时,chromaweightl0[i][j]被推断为2chromalog2weightdenom。[0228]delta_chroma_offset_l0[i][j]是应用于使用refpiclist[0][i]对列表0进行预测所使用的色度预测值的附加偏移的差值,其中,对于cb,j等于0,对于cr,j等于1。[0229]变量chromaoffsetl0[i][j]的推导如下:[0230]chromaoffsetl0[i][j]=clip3(–128,127,(128 delta_chroma_offset_l0[i][j]–((128*chromaweightl0[i][j])》》chromalog2weightdenom)))[0231]delta_chroma_offset_l0[i][j]的取值范围应为–4*128至4*127(包括端值)。当chroma_weight_l0_flag[i]等于0时,chromaoffsetl0[i][j]被推断为0。[0232]luma_weight_l1_flag[i]、chroma_weight_l1_flag[i]、delta_luma_weight_l1[i]、luma_offset_l1[i]、delta_chroma_weight_l1[i][j]和delta_chroma_offset_l1[i][j]的语义分别与luma_weight_l0_flag[i]、chroma_weight_l0_flag[i]、delta_luma_weight_l0[i]、luma_offset_l0[i]、delta_chroma_weight_l0[i][j]和delta_chroma_offset_l0[i][j]的语义相同,其中,l0、l0、列表0和list0分别由l1、l1、列表1和list1替代。[0233]变量sumweightl0flags被推导为luma_weight_l0_flag[i] 2*chroma_weight_l0_flag[i]之和,其中,i=0..numrefidxactive[0]–1。[0234]当slice_type为b时,变量sumweightl1flags被推导为luma_weight_l1_flag[i] 2*chroma_weight_l1_flag[i]之和,其中,i=0..numrefidxactive[1]–1。[0235]码流一致性的要求为:当slice_type为p时,sumweightl0flags应小于或等于24;当slice_type为b时,sumweightl0flags与sumweightl1flags之和应小于或等于24。[0236]表1:加权预测参数语法[0237][0238][0239][0240]文献jvet-o0244(v.seregin等人在瑞典哥德堡的第15次jvet会议上发表的“ahg17:onzerodeltapocinreferencepicturestructure(ahg17:关于参考图像结构中的零增量poc)”)中指出,在当前的vvc规范草案中,参考图像是在参考图像结构(referencepicturestructure,rps)中指示的,其中,abs_delta_poc_st表示可以等于0的增量poc值。rps可以在sps和条带头中指示。需要这种功能为同一参考图像指示不同的权重,如果在接入单元中跨层使用的同一poc值支持分层可扩展性,则可能需要这种功能。其中指出,当加权预测未被启用时,不需要重复参考图像。本文献还提出,当加权预测未被启用时,不允许使用零增量poc值。[0241]表2:序列参数集原始字节序列载荷(rawbytesequencepayload,rbsp)语法[0242][0243][0244][0245][0246][0247][0248][0249]表3:参考图像列表结构语法[0250][0251]语法结构ref_pic_list_struct(listidx,rplsidx)可以存在于sps中,也可以存在于条带头中。根据语法结构是包括在条带头中还是包括在sps中,以下内容适用:[0252]–如果语法结构ref_pic_list_struct(listidx,rplsidx)存在于条带头中,则该语法结构表示当前图像(包括条带的图像)的参考图像列表listidx。[0253]–否则(语法结构ref_pic_list_struct(listidx,rplsidx)存在于sps中),该语法结构表示参考图像列表listidx的候选,而且本节其余部分中规定的语义中的术语“当前图像”是指:(1)包括一个或多个条带的每个图像,其中,一个或多个条带包括的ref_pic_list_idx[listidx]等于sps中包括的语法结构ref_pic_list_struct(listidx,rplsidx)列表中的索引,(2)在参考sps的cvs中的每个图像。[0254]num_ref_entries[listidx][rplsidx]表示语法结构ref_pic_list_struct(listidx,rplsidx)中的条目的数量。num_ref_entries[listidx][rplsidx]的取值范围应为0至sps_max_dec_pic_buffering_minus1 14(包括端值)。[0255]ltrp_in_slice_header_flag[listidx][rplsidx]等于0表示语法结构ref_pic_list_struct(listidx,rplsidx)中的ltrp条目的poclsb存在于语法结构ref_pic_list_struct(listidx,rplsidx)中。ltrp_in_slice_header_flag[listidx][rplsidx]等于1表示语法结构ref_pic_list_struct(listidx,rplsidx)中的ltrp条目的poclsb不存在于语法结构ref_pic_list_struct(listidx,rplsidx)中。[0256]inter_layer_ref_pic_flag[listidx][rplsidx][i]等于1表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目是ilrp条目。inter_layer_ref_pic_flag[listidx][rplsidx][i]等于0表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目不是ilrp条目。当inter_layer_ref_pic_flag[listidx][rplsidx][i]不存在时,inter_layer_ref_pic_flag[listidx][rplsidx][i]的值被推断为0。[0257]st_ref_pic_flag[listidx][rplsidx][i]等于1表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目是strp条目。st_ref_pic_flag[listidx][rplsidx][i]等于0表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目是ltrp条目。当inter_layer_ref_pic_flag[listidx][rplsidx][i]等于0且st_ref_pic_flag[listidx][rplsidx][i]不存在时,st_ref_pic_flag[listidx][rplsidx][i]的值被推断为1。[0258]变量numltrpentries[listidx][rplsidx]的推导如下:[0259][0260]abs_delta_poc_st[listidx][rplsidx][i]表示变量absdeltapocst[listidx][rplsidx][i]的值,如下所示:[0261][0262]abs_delta_poc_st[listidx][rplsidx][i]的取值范围应为0至215–1(包括端值)。[0263]strp_entry_sign_flag[listidx][rplsidx][i]等于1表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目的值大于或等于0。strp_entry_sign_flag[listidx][rplsidx][i]等于0表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目的值小于0。当strp_entry_sign_flag[listidx][rplsidx][i]不存在时,strp_entry_sign_flag[listidx][rplsidx][i]的值被推断为1。[0264]列表deltapocvalst[listidx][rplsidx]的推导如下:[0265][0266]rpls_poc_lsb_lt[listidx][rplsidx][i]表示由语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目参考的图像的图像顺序编号的值对maxpicordercntlsb取模。语法元素rpls_poc_lsb_lt[listidx][rplsidx][i]的长度为(log2_max_pic_order_cnt_lsb_minus4 4)个比特。[0267]ilrp_idc[listidx][rplsidx][i]表示语法结构ref_pic_list_struct(listidx,rplsidx)中第i个条目的ilrp在直接相关层列表中的索引。ilrp_idc[listidx][rplsidx][i]的取值范围应为0至generallayeridx[nuh_layer_id]–1(包括端值)。[0268]在表2中,加权预测参数是在参考图像列表指示之后指示的。在表4中,这些语法元素被重新排序,以根据加权预测标志的值限制增量poc语法元素的二值化。[0269]表4:序列参数集rbsp的修改语法[0270][0271][0272][0273]此外,增量poc(变量absdeltapocst)的值有条件地在解码端恢复,如下所示:[0274]abs_delta_poc_st[listidx][rplsidx][i]表示变量absdeltapocst[listidx][rplsidx][i]的值,如下所示:[0275][0276]三角划分模式(triangularpartitioningmode,tpm)和几何运动划分(geo)还分别称为三角融合模式和几何融合模式,它们是实现预测分区之间的非水平边界和非垂直边界的划分技术,其中,预测单元pu1和预测单元pu1使用它们与不同颜色分量相关的样本子集的加权平均过程在区域中组合。tpm能够使预测分区之间的边界只沿着矩形块对角线,而根据geo的边界可以位于任意位置上。在应用加权平均过程的区域中,正方形内的整数数字表示应用于预测单元pu1的亮度分量的权重wpu1。在一个示例中,应用于预测单元pu2的亮度分量的权重wpu2计算如下:[0277]wpu2=8–wpu1。[0278]应用于对应预测单元的色度分量的权重可能不同于应用于对应预测单元的亮度分量的权重。[0279]关于tpm语法的详细信息如表5所示,其中,4个语法元素用于指示关于tpm的信息:[0280]mergetriangleflag是确定是否选择tpm的标志(“0”表示不选择tpm;否则,选择tpm);[0281]merge_triangle_split_dir是tpm的分割方向标志(“0”表示分割方向是从左上角到右下角;否则,分割方向是从右上角到左下角);[0282]merge_triangle_idx0和merge_triangle_idx1是用于tpm的融合候选0和1的索引。[0283]表5:包括tpm语法的融合数据语法[0284][0285][0286]tpm在以下提案中详述:r-l.liao和c.s.lim发表在2018年10月中国澳门的第12次jvet会议的文献jvet-l0124中的“ce10.3.1.b:triangularpredictionunitmode(ce10.3.1.b:三角预测单元模式)”。geo在以下论文中解释说明:s.esenlik、h.gao、a.filippov、v.rufitskiy、a.m.kotra、b.wang、e.alshina、m.和j.sauer发表在2019年7月瑞典哥德堡的第15次jvet会议的文献jvet-o0489中的“non-ce4:geometricalpartitioningforinterblocks(非ce4:帧间块的几何划分)”。[0287]所公开的使tpm和/或geo与wp协调的方法是在应用wp时禁用tpm和/或geo。第一实施例如表6所示,可以通过检查编码单元(codingunit)的变量weightedpredflag的值是否等于0来完成。[0288]变量weightedpredflag的推导如下:[0289]–如果slice_type为p,则weightedpredflag被设置为pps_weighted_pred_flag。[0290]–否则(slice_type为b),weightedpredflag被设置为pps_weighted_bipred_flag。[0291]条带级加权预测过程可以使用语法元素pps_weighted_pred_flag和sps_weighted_pred_flag在图像级和条带级之间切换。[0292]如上所述,变量weightedpredflag表示条带级加权预测是否可以在获取条带的帧间预测样本时使用。[0293]表6:使tpm与wp协调的融合数据语法[0294][0295][0296]ciip_flag[x0][y0]表示组合的帧间融合和帧内预测是否应用于当前编码单元(codingunit)。阵列索引x0和y0表示当前编码块的左上亮度样本相对于图像的左上亮度样本的位置(x0,y0)。[0297]当ciip_flag[x0][y0]不存在时,ciip_flag[x0][y0]的推断如下:[0298]–如果以下所有条件都为真(true),则ciip_flag[x0][y0]被推断为1:[0299]–sps_ciip_enabled_flag等于1,[0300]–general_merge_flag[x0][y0]等于1,[0301]–merge_subblock_flag[x0][y0]等于0,[0302]–regular_merge_flag[x0][y0]等于0,[0303]–cbwidth小于128,[0304]–cbheight小于128,[0305]–cbwidth*cbheight大于或等于64;[0306]–否则,ciip_flag[x0][y0]被推断为0。[0307]当ciip_flag[x0][y0]等于1时,变量intrapredmodey[x][y](其中,x=x0..x0 cbwidth–1,y=y0..y0 cbheight–1)被设置为intra_planar。[0308]变量mergetriangleflag[x0][y0]表示在解码b条带时,基于三角形的运动补偿是否用于生成当前编码单元的预测样本。该变量的推导如下:[0309]–如果以下所有条件都为真,则mergetriangleflag[x0][y0]被设置为1:[0310]–sps_triangle_enabled_flag等于1,[0311]–slice_type为b,[0312]–general_merge_flag[x0][y0]等于1,[0313]–maxnumtrianglemergecand大于或等于2,[0314]–cbwidth*cbheight大于或等于64,[0315]–regular_merge_flag[x0][y0]等于0,[0316]–merge_subblock_flag[x0][y0]等于0,[0317]–ciip_flag[x0][y0]等于0,[0318]–weightedpredflag等于0;[0319]–否则,mergetriangleflag[x0][y0]被设置为0。[0320]第二实施例如表7所示。如果weightedpredflag等于1,则语法元素max_num_merge_cand_minus_max_num_triangle_cand不存在,并被推断具有一个值,使得maxnumtrianglemergecand小于2。[0321]表7:使tpm与wp协调的通用条带头语法[0322][0323][0324][0325][0326][0327][0328][0329]具体地,以下语义可以用于第二实施例:[0330]max_num_merge_cand_minus_max_num_triangle_cand表示从maxnummergecand中减去条带中支持的三角融合模式候选的最大数量。[0331]当max_num_merge_cand_minus_max_num_triangle_cand不存在,sps_triangle_enabled_flag等于1,slice_type为b,weightedpredflag等于0,且maxnummergecand大于或等于2时,max_num_merge_cand_minus_max_num_triangle_cand被推断为pps_max_num_merge_cand_minus_max_num_triangle_cand_minus1 1。[0332]当max_num_merge_cand_minus_max_num_triangle_cand不存在,sps_triangle_enabled_flag等于1,slice_type为b,weightedpredflag等于1,且maxnummergecand大于或等于2时,max_num_merge_cand_minus_max_num_triangle_cand被推断为maxnummergecand或xnummergecand–1。[0333]三角融合模式候选的最大数量maxnumtrianglemergecand推导如下:[0334]maxnumtrianglemergecand=maxnummergecand–[0335]max_num_merge_cand_minus_max_num_triangle_cand[0336]当max_num_merge_cand_minus_max_num_triangle_cand存在时,maxnumtrianglemergecand的取值范围应为2至maxnummergecand(包括端值)。[0337]当max_num_merge_cand_minus_max_num_triangle_cand不存在(sps_triangle_enabled_flag等于0或maxnummergecand小于2)时,maxnumtrianglemergecand被设置为0。[0338]当maxnumtrianglemergecand等于0时,不允许三角融合模式用于当前条带。[0339]本发明公开的机制不仅适用于tpm和geo,而且还适用于其它非矩形预测和划分模式,例如使用三角分区的组合的帧内帧间预测。[0340]由于tpm和geo只应用于b条带,因此上述实施例中的变量weightedpredflag可以直接由变量pps_weighted_bipred_flag代替。[0341]第三实施例如表6所示,可以通过检查编码单元(codingunit)的变量weightedpredflag的值是否等于0来完成。[0342]变量weightedpredflag的推导如下:[0343]–如果以下所有条件都为真,则weightedpredflag被设置为0:[0344]luma_weight_l0_flag[i]等于0,其中,i的范围为0至numrefidxactive[0]。[0345]luma_weight_l1_flag[i]等于0,其中,i的范围为0至numrefidxactive[1]。[0346]chroma_weight_l0_flag[i]等于0,其中,i的范围为0至numrefidxactive[0]。[0347]chroma_weight_l0_flag[i]等于0,其中,i的范围为0至numrefidxactive[1]。[0348]–否则,weightedpredflag被设置为1。[0349]weightedpredflag的推导过程表示:如果亮度分量和色度分量的所有加权标志以及当前条带的所有参考索引的所有加权标志都为0,则加权预测在当前条带中禁用;否则,加权预测可以用于当前条带。[0350]如上所述,变量weightedpredflag表示条带级加权预测是否可以在获取条带的帧间预测样本时使用。[0351]第四实施例如表6所示,其中,weightedpredflag由slice_weighted_pred_flag代替,slice_weighted_pred_flags是在条带头中指示的,如表8所示。[0352]如上所述,语法slice_weighted_pred_flag表示条带级加权预测是否可以在获取条带的帧间预测样本时使用。[0353]表8:指示条带级加权预测标志的通用条带头语法[0354][0355][0356][0357][0358][0359][0360]具体地,以下语义可以用于第四实施例:[0361]slice_weighted_pred_flag等于0表示加权预测不应用于当前条带。slice_weighted_pred_flag等于1表示加权预测应用于当前条带。当slice_weighted_pred_flag不存在时,slice_weighted_pred_flag的值被推断为0。[0362]第五实施例是通过一致性约束禁用块级tpm。在tpm编码块(codedblock)的情况下,帧间预测值p0710和p1720(如图7所示)对应的参考图像的亮度分量和色度分量的加权因子可以不存在。[0363]关于更多细节,refidxa和predlistflaga表示帧间预测值p0的参考索引和参考图像列表;refidxb和predlistflagb表示帧间预测值p1的参考索引和参考图像列表。[0364]变量lumaweightedflag和chromaweightedflag的推导如下:[0365]lumaweightedflaga=predlistflaga?luma_weight_l1_flag[refidxa]:luma_weight_l0_flag[refidxa][0366]lumaweightedflagb=predlistflagb?luma_weight_l1_flag[refidxb]:luma_weight_l0_flag[refidxb][0367]chromaweightedflaga=predlistflaga?chroma_weight_l1_flag[refidxa]:chromaweight_l0_flag[refidxa][0368]chromaweightedflagb=predlistflagb?chroma_weight_l1_flag[refidxb]:chromaweight_l0_flag[refidxb][0369]lumaweightedflag=lumaweightedflaga||lumaweightedflagb[0370]chromaweightedflag=chromaweightedflaga||chromaweightedflagb[0371]码流一致性的要求为:lumaweightedflag和chromaweightedflag可以等于0。[0372]第六实施例是在使用显式加权预测时,对tpm编码块(codedblock)禁用混合加权样本预测过程。[0373]图7和图8分别说明了本发明针对tpm和geo的基本思想。需要说明的是,tpm的实施例也可以用于geo模式。[0374]在tpm编码块的情况下,如果帧间预测值p0710或p1720对应的参考图像的亮度分量或色度分量的加权因子存在,则根据wp参数(p0和p1的wp参数730{w0,o0}和wp参数740{w1,o1})的加权过程用于生成帧间预测值块;否则,根据混合加权参数的加权过程用于生成块750的帧间预测值。如图9所示,帧间预测值901需要两个预测块p0911和p1912,这两个预测块具有重叠区域921,其中,非零权重应用于块911和912,以部分混合预测值p0911和p1912。在图9中,与块901相邻的块表示为931、932、933、934、935和936。图8示出了tpm融合模式和geo融合模式之间的区别。在geo融合模式的情况下,预测值851和852之间的重叠区域不仅仅可以位于帧间预测块850的对角线上。预测值p0851和p1852的接收可以通过将权重和偏移{w0,o0}830和{w1,o1}840分别应用于或不应用于块810和820,从其它图像中复制块810和820来实现。[0375]关于更多细节,refidxa和predlistflaga表示帧间预测值p0的参考索引和参考图像列表;refidxb和predlistflagb表示帧间预测值p1的参考索引和参考图像列表。[0376]变量lumaweightedflag和chromaweightedflag的推导如下:[0377]lumaweightedflaga=predlistflaga?luma_weight_l1_flag[refidxa]:luma_weight_l0_flag[refidxa][0378]lumaweightedflagb=predlistflagb?luma_weight_l1_flag[refidxb]:luma_weight_l0_flag[refidxb][0379]chromaweightedflaga=predlistflaga?chroma_weight_l1_flag[refidxa]:chromaweight_l0_flag[refidxa][0380]chromaweightedflagb=predlistflagb?chroma_weight_l1_flag[refidxb]:chromaweight_l0_flag[refidxb][0381]lumaweightedflag=lumaweightedflaga||lumaweightedflagb[0382]chromaweightedflag=chromaweightedflaga||chromaweightedflagb[0383]然后,如果lumaweightedflag为真,则显式加权过程被调用;如果lumaweightedflag为假(false),则混合加权过程被调用。此外,色度分量也由chromaweightedflag确定。[0384]在一个可选实施例中,统一使用所有分量的加权标志。如果lumaweightedflag或chromaweightedflag中的一个为真,则显式加权过程被调用;如果lumaweightedflag和chromaweightedflag都为假,则混合加权过程被调用。[0385]使用双向预测机制预测的矩形块的显式加权过程如下所述执行。[0386]该过程的输入包括:[0387]–两个变量ncbw和ncbh,表示当前编码块(codingblock)的宽度和高度;[0388]–两个(ncbw)×(ncbh)阵列predsamplesa和predsamplesb;[0389]–预测列表标志predlistflaga和predlistflagb;[0390]–参考索引refidxa和refidxb;[0391]–变量cidx,表示颜色分量索引;[0392]–样本位深度bitdepth。[0393]该过程的输出为预测样本值组成的(ncbw)×(ncbh)阵列pbsamples。[0394]变量shift1被设置为max(2,14–bitdepth)。[0395]变量log2wd、o0、o1、w0和w1的推导如下:[0396]–如果亮度样本的cidx等于0,则以下内容适用:[0397]log2wd=luma_log2_weight_denom shift1[0398]w0=predlistflaga?lumaweightl1[refidxa]:lumaweightl0[refidxa][0399]w1=predlistflagb?lumaweightl1[refidxb]:lumaweightl0[refidxb][0400]o0=(predlistflaga?luma_offset_l1[refidxa]:luma_offset_l0[refidxa])《《[0401](bitdepthy–8)o1=(predlistflagb?luma_offset_l1[refidxb]:luma_offset_l0[refidxb])《《(bitdepthy–8)[0402]–否则(色度样本的cidx不等于0),以下内容适用:[0403]log2wd=chromalog2weightdenom shift1[0404]w0=predlistflaga?chromaweightl1[refidxa][cidx–1]:[0405]chromaweightl0[refidxa][cidx–1][0406]w1=predlistflaga?chromaweightl1[refidxb][cidx–1]:[0407]chromaweightl0[refidxb][cidx–1][0408]o0=(predlistflaga?chromaoffsetl1[refidxa][cidx–1]:[0409]chromaoffsetl0[refidxa][cidx–1])《《(bitdepthc–8)[0410]o1=(predlistflagb?chromaoffsetl1[refidxb][cidx–1]:[0411]chromaoffsetl0[refidxb][cidx–1])《《(bitdepthc–8)[0412]预测样本pbsamples[x][y](其中,x=0..ncbw–1,y=0..ncbh–1)的推导如下:[0413]pbsamples[x][y]=clip3(0,(1《《bitdepth)–1,(predsamplesa[x][y]*w0 predsamplesb[x][y]*w1 ((o0 o1 1)《《log2wd))》》(log2wd 1))[0414]条带级加权预测的参数可以表示为一组变量,这些变量被分配给参考图像列表中的每个元素。元素的索引进一步表示为“i”。这些参数可以包括:[0415]–lumaweightl0[i][0416]–luma_offset_l0[i]是应用于使用refpiclist[0][i]对列表0进行预测所使用的亮度预测值的附加偏移。luma_offset_l0[i]的取值范围应为–128至127(包括端值)。当luma_weight_l0_flag[i]等于0时,luma_offset_l0[i]被推断为0。[0417]变量lumaweightl0[i]被推导为(1《《luma_log2_weight_denom) delta_luma_weight_l0[i]。当luma_weight_l0_flag[i]等于1时,delta_luma_weight_l0[i]的取值范围应为–128至127(包括端值)。当luma_weight_l0_flag[i]等于0时,lumaweightl0[i]被推断为2luma_log2_weight_denom。[0418]使用双向预测机制预测的矩形块的混合加权过程如下所述执行。[0419]该过程的输入包括:[0420]–两个变量ncbw和ncbh,表示当前编码块(codingblock)的宽度和高度;[0421]–两个(ncbw)×(ncbh)阵列predsamplesla和predsampleslb;[0422]–变量triangledir,表示划分方向;[0423]–变量cidx,表示颜色分量索引。[0424]该过程的输出为预测样本值组成的(ncbw)×(ncbh)阵列pbsamples。[0425]变量ncbr的推导如下:[0426]ncbr=(ncbw》ncbh)?(ncbw/ncbh):(ncbh/ncbw)[0427]变量bitdepth的推导如下:[0428]–如果cidx等于0,则bitdepth被设置为bitdepthy。[0429]–否则,bitdepth被设置为bitdepthc。[0430]变量shift1和offset1的推导如下:[0431]–变量shift1被设置为max(5,17–bitdepth)。[0432]–变量offset1被设置为1《《(shift1–1)。[0433]根据triangledir、ws和cidx的值,预测样本pbsamples[x][y](其中,x=0..ncbw–1,y=0..ncbh–1)的推导如下:[0434]–变量widx的推导如下:[0435]–如果cidx等于0且triangledir等于0,则以下内容适用:[0436]widx=(ncbw》ncbh)?(clip3(0,8,(x/ncbr–y) 4))[0437]:(clip3(0,8,(x–y/ncbr) 4))[0438]–如果cidx等于0且triangledir等于1,则以下内容适用:[0439]widx=(ncbw》ncbh)?(clip3(0,8,(ncbh–1–x/ncbr–y) 4))[0440](clip3(0,8,(ncbw–1–x–y/ncbr) 4))[0441]–如果cidx大于0且triangledir等于0,则以下内容适用:[0442]widx=(ncbw》ncbh)?(clip3(0,4,(x/ncbr–y) 2)):(clip3(0,4,(x–y/ncbr) 2))[0443]–否则(如果cidx大于0且triangledir等于1),以下内容适用:[0444]widx=(ncbw》ncbh)?(clip3(0,4,(ncbh–1–x/ncbr–y) 2))(clip3(0,4,(ncbw–1–x–y/ncbr) 2))[0445]–表示预测样本权重的变量wvalue使用widx和cidx推导如下:[0446]wvalue=(cidx==0)?clip3(0,8,widx):clip3(0,8,widx*2)[0447]–预测样本值的推导如下:[0448]pbsamples[x][y]=clip3(0,(1《《bitdepth)–1,(predsamplesla[x][y]*wvalue predsampleslb[x][y]*(8–wvalue) offset1)》》shift1)[0449]对于几何模式,使用双向预测机制预测的矩形块的混合加权过程如下所述执行。[0450]该过程的输入包括:[0451]–两个变量ncbw和ncbh,表示当前编码块(codingblock)的宽度和高度;[0452]–两个(ncbw)×(ncbh)阵列predsamplesla和predsampleslb;[0453]–变量angleidx,表示几何分区的角度索引;[0454]–变量distanceidx,表示几何分区的距离索引;[0455]–变量cidx,表示颜色分量索引。[0456]该过程的输出包括预测样本值组成的(ncbw)×(ncbh)阵列pbsamples和变量partidx。[0457]变量bitdepth的推导如下:[0458]–如果cidx等于0,则bitdepth被设置为bitdepthy。[0459]–否则,bitdepth被设置为bitdepthc。[0460]变量shift1和offset1的推导如下:[0461]–变量shift1被设置为max(5,17–bitdepth)。[0462]–变量offset1被设置为1《《(shift1–1)。[0463]亮度的权重阵列sampleweightl[x][y]和色度的权重阵列sampleweightc[x][y](其中,x=0..ncbw–1,y=0..ncbh–1)的推导如下:[0464]以下变量的值设置如下:[0465]–hwratio被设置为ncbh/ncbw[0466]–displacementx被设置为angleidx[0467]–displacementy被设置为(displacementx 8)%32[0468]–partidx被设置为angleidx》=13&&angleidx《=27?1:0[0469]–rho通过表示为dis的查找表(如表8-12所述)被设置为以下值:[0470]rho=(dis[displacementx]《《8) (dis[displacementy]《《8)[0471]如果以下条件之一为真,则变量shifthor被设置为0:[0472]angleidx%16等于8,[0473]angleidx%16不等于0且hwratio≥1;[0474]否则,shifthor被设置为1。[0475]如果shifthor等于0,则offsetx和offsety的推导如下:[0476]offsetx=(256–ncbw)》》1[0477]offsety=(256–ncbh)》》1 angleidx《16?(distanceidx*ncbh)》》3:–((distanceidx*ncbh)》》3)[0478]如果shifthor等于1,则offsetx和offsety的推导如下:[0479]offsetx=(256–ncbw)》》1 angleidx《16?(distanceidx*ncbw)》》3:–((distanceidx*ncbw)》》3)[0480]offsety=(256–ncbh)》》1[0481]变量weightidx和weightidxabs通过查找表(表9)(其中,x=0..ncbw–1,y=0..ncbh–1)计算如下:[0482]weightidx=(((x offsetx)《《1) 1)*dis[displacementx] (((y offsety)《《1) 1))*dis[displacementy]–rho。[0483]weightidxabs=clip3(0,26,abs(weightidx))。[0484]sampleweightl[x][y](其中,x=0..ncbw–1,y=0..ncbh–1)的值根据表示为geofilter的表10设置如下:[0485]sampleweightl[x][y]=weightidx《=0?geofilter[weightidxabs]:8–[0486]geofilter[weightidxabs][0487]sampleweightc[x][y](其中,x=0..ncbw–1,y=0..ncbh–1)的值设置如下:[0488]sampleweightc[x][y]=sampleweightl[(x《《(subwidthc–1))][(y《《(subheightc–[0489]1))][0490]注:sampleweightl[x][y]的值也可以从sampleweightl[x–shiftx][y–shifty]中推导出。如果angleidx大于4且小于12,或者angleidx大于20且小于24,则shiftx为分割角度的正切,而shifty为1;否则,shiftx为1,而shifty为分割角度的余切。如果正切(相对于余切)值是无穷大,则shiftx为1(相对于0)或shifty为0(相对于1)。[0491]预测样本值的推导如下,其中,x表示为l或c,cidx等于0或不等于0:[0492]pbsamples[x][y]=partidx?[0493]clip3(0,(1《《bitdepth)–1,(predsamplesla[x][y]*(8–sampleweightx[x][y]) [0494]predsampleslb[x][y]*sampleweightx[x][y] offset1)》》shift1):clip3(0,(1《《[0495]bitdepth)–1,(predsamplesla[x][y]*sampleweightx[x][y] predsampleslb[x][y]*(8–sampleweightx[x][y]) offset1)》》shift1)[0496]表9:推导几何划分距离的查找表dis[0497]idx0124678910121415dis[idx]8888420–2–4–8–8–8idx161718202223242526283031dis[idx]–8–8–8–8–4–2024888[0498]表10:推导几何划分滤波器权重的滤波器权重查找表geofilter[0499][0500][0501]在vvc规范草案7(文件jvet-p2001-ve:b.bross、j.chen、s.liu、y.-k.wang发表的“versatilevideocoding(draft7)(通用视频编码(草案7))”,即瑞士日内瓦的第16次jvet会议的输出文件jvet-p2001;该文件包含在文件jvet-p2001-v14:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/16_geneva/wg11/jvet-p2001-v14.zip中)中,图像头(pictureheader,ph)的概念介绍如下:将一部分语法元素从条带头(sliceheader,sh)中移到ph中,以减少由于将相同或类似值分配给与ph关联的每个sh中的相同语法元素带来的信令开销。如表11所示,用于控制tpm融合模式的融合候选的最大数量的语法元素是在ph中指示的,而如表12和表14所示,加权预测参数仍然是在sh中指示的。表12和表13中使用的语法元素的语义描述如下。[0502]表11:图像头rbsp语法[0503][0504][0505]图像头rbsp语义unit)语法中。sps_triangle_enabled_flag等于1表示基于三角形的运动补偿可以用于clvs中。[0518]pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1等于0表示pic_max_num_merge_cand_minus_max_num_triangle_cand存在于参考图像参数集(pictureparameterset,pps)的ph中。pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1大于0表示pic_max_num_merge_cand_minus_max_num_triangle_cand不存在于参考pps的ph中。pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1的取值范围应为0至maxnummergecand–1。[0519]pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1等于0表示pic_max_num_merge_cand_minus_max_num_triangle_cand存在于参考pps的条带的ph中。pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1大于0表示pic_max_num_merge_cand_minus_max_num_triangle_cand不存在于参考pps的ph中。pps_max_num_merge_cand_minus_max_num_triangle_cand_plus1的取值范围应为0至maxnummergecand–1。[0520]pic_six_minus_max_num_merge_cand表示从6中减去与ph关联的条带中支持的融合运动矢量预测(motionvectorprediction,mvp)候选的最大数量。融合mvp候选的最大数量maxnummergecand推导如下:[0521]maxnummergecand=6–picsix_minus_max_num_merge_cand[0522]maxnummergecand的取值范围应为1至6(包括端值)。当pic_six_minus_max_num_merge_cand不存在时,pic_six_minus_max_num_merge_cand的值被推断为pps_six_minus_max_num_merge_cand_plus1–1。[0523]表12:通用条带头语法[0524][0525][0526][0527]通用条带头语义[0528]当条带头语法元素slice_pic_order_cnt_lsb存在时,该语法元素的值在经编码图像(codedpicture)的所有条带头中应是相同的。[0529]变量cuqpdeltaval表示包括cu_qp_delta_abs的编码单元(codingunit)的亮度量化参数与其预测参数之间的差值,该变量被设置为0。变量cuqpoffsetcb、cuqpoffsetcr和cuqpoffsetcbcr表示在确定包括cu_chroma_qp_offset_flag的编码单元的量化参数qp'cb、qp'cr和qp'cbcr的相应值时要使用的值,这些变量全部都被设置为0。[0530]slice_pic_order_cnt_lsb表示当前图像的图像顺序编号对maxpicordercntlsb取模。语法元素slice_pic_order_cnt_lsb的长度为(log2_max_pic_order_cnt_lsb_minus4 4)个比特。slice_pic_order_cnt_lsb的取值范围应为0至maxpicordercntlsb–1(包括端值)。[0531]在当前图像是gdr图像时,变量rppicordercntval的推导如下:[0532]rppicordercntval=picordercntval recovery_poc_cnt。[0533]slice_subpic_id表示包括条带的子图像的子图像标识符。如果slice_subpic_id存在,则变量subpicidx的值被推导出,使得subpicidlist[subpicidx]等于slice_subpic_id。否则(slice_subpic_id不存在),变量subpicidx被推导为0。slice_subpic_id的长度(以比特为单位)推导如下:[0534]–如果sps_subpic_id_signalling_present_flag等于1,则slice_subpic_id的长度等于sps_subpic_id_len_minus1 1。[0535]–否则,如果ph_subpic_id_signalling_present_flag等于1,则slice_subpic_id的长度等于ph_subpic_id_len_minus1 1。[0536]–否则,如果pps_subpic_id_signalling_present_flag等于1,则slice_subpic_id的长度等于pps_subpic_id_len_minus1 1。[0537]–否则,slice_subpic_id的长度等于ceil(log2(sps_num_subpics_minus1 1))。[0538]slice_address表示条带的条带地址。当slice_address不存在时,slice_address的值被推断为0。[0539]如果rect_slice_flag等于0,则以下内容适用:[0540]–条带地址是光栅扫描分块索引。[0541]–slice_address的长度为ceil(log2(numtilesinpic))个比特。[0542]–slice_address的取值范围应为0至numtilesinpic–1(包括端值)。[0543]否则(rect_slice_flagis等于1),以下内容适用:[0544]–条带地址是第subpicidx个子图像内的条带的条带索引。[0545]–条带地址的长度为ceil(log2(numslicesinsubpic[subpicidx]))个比特。[0546]–slice_address的取值范围应为0至numslicesinsubpic[subpicidx]–1(包括端值)。[0547]码流一致性的要求为以下约束条件适用:[0548]–如果rect_slice_flag等于0或subpics_present_flag等于0,则slice_address的值应不等于同一经编码图像的任何其它经编码条带(codedslice)网络抽象层(networkabstractionlayer,nal)单元的slice_address的值。[0549]–否则,slice_subpic_id和slice_address的一对值应不等于同一经编码图像的任何其它经编码条带nal单元的slice_subpic_id和slice_address的一对值。[0550]–当rect_slice_flag等于0时,图像中的条带应按照条带的slice_address值升序排列。[0551]–图像中的条带的形状应使得每个编码树单元(codingtreeunit,ctu)在解码时应使其整个左边界和整个上边界由图像边界组成或由先前一个或多个经解码ctu的边界组成。[0552]num_tiles_in_slice_minus1 1(存在时)表示条带中的分块的数量。num_tiles_in_slice_minus1的取值范围应为0至numtilesinpic–1(包括端值)。[0553]变量numctuincurrslice表示当前条带中的ctu的数量,列表ctbaddrincurrslice[i](i的范围为0至numctuincurrslice–1(包括端值))表示条带内的第i个编码树块(codingtreeblock,ctb)的图像光栅扫描地址,这两者的推导如下:[0554][0555][0556]变量subpicleftboundarypos、subpictopboundarypos、subpicrightboundarypos和subpicbotboundarypos的推导如下:[0557][0558]slice_type表示条带的编码类型,如表13所示。[0559]表13:名称与slice_type的关联关系[0560]slice_typeslice_type的名称0b(b条带)1p(p条带)2i(i条带)[0561]slice_rpl_sps_flag[i]等于1表示当前条带的参考图像列表i是根据sps中的listidx等于i的其中一个语法结构ref_pic_list_struct(listidx,rplsidx)推导出的。slice_rpl_sps_flag[i]等于0表示当前条带的参考图像列表i是根据直接包括在当前图像的条带头中的listidx等于i的语法结构ref_pic_list_struct(listidx,rplsidx)推导出的。[0562]当slice_rpl_sps_flag[i]不存在时,以下内容适用:[0563]–如果pic_rpl_present_flag等于1,则slice_rpl_sps_flag[i]的值被推断为pic_rpl_sps_flag[i];[0564]–否则,如果num_ref_pic_lists_in_sps[i]等于0,则ref_pic_list_sps_flag[i]的值被推断为0;[0565]–否则,如果num_ref_pic_lists_in_sps[i]大于0且如果rpl1_idx_present_flag等于0,则slice_rpl_sps_flag[1]的值被推断为slice_rpl_sps_flag[0]。[0566]slice_rpl_idx[i]表示用于推导当前图像的参考图像列表i的listidx等于i的语法结构ref_pic_list_struct(listidx,rplsidx)在sps中包括的listidx等于i的语法结构ref_pic_list_struct(listidx,rplsidx)列表中的索引。语法元素slice_rpl_idx[i]由ceil(log2(num_ref_pic_lists_in_sps[i]))个比特表示。当slice_rpl_idx[i]不存在时,slice_rpl_idx[i]的值被推断为0。slice_rpl_idx[i]的取值范围应为0到num_ref_pic_lists_in_sps[i]–1(包括端值)。当slice_rpl_sps_flag[i]等于1且num_ref_pic_lists_in_sps[i]等于1时,slice_rpl_idx[i]的值被推断为0。当slice_rpl_sps_flag[i]等于1且rpl1_idx_present_flag等于0时,slice_rpl_idx[1]的值被推断为slice_rpl_idx[0]。[0567]变量rplsidx[i]的推导如下:[0568][0569]slice_poc_lsb_lt[i][j]表示第i个参考图像列表中的第j个ltrp条目的图像顺序编号对maxpicordercntlsb取模的值。语法元素slice_poc_lsb_lt[i][j]的长度为(log2_max_pic_order_cnt_lsb_minus4 4)个比特。[0570]变量poclsblt[i][j]的推导如下:[0571][0572]slice_delta_poc_msb_present_flag[i][j]等于1表示slice_delta_poc_msb_cycle_lt[i][j]存在。slice_delta_poc_msb_present_flag[i][j]等于0表示slice_delta_poc_msb_cycle_lt[i][j]不存在。[0573]假设prevtid0pic为解码顺序中的先前图像,先前图像与当前图像具有相同的nuh_layer_id,先前图像的temporalid等于0,先前图像不是跳过随机接入前置(randomaccessskippedleading,rasl)图像或可解码随机接入前置(randomaccessdecodableleading,radl)图像。假设setofprevpocvals为以下内容组成的集合:[0574]–prevtid0pic的picordercntval,[0575]–由prevtid0pic的refpiclist[0]或refpiclist[1]中的条目参考且与当前图像具有相同nuh_layer_id的每个图像的picordercntval,[0576]–解码顺序在prevtid0pic之后、与当前图像具有相同nuh_layer_id且解码顺序在当前图像之前的每个图像的picordercntval。[0577]当pic_rpl_present_flag等于0且setofprevpocvals中存在多个值(其值对maxpicordercntlsb取模的值等于poclsblt[i][j])时,slice_delta_poc_msb_present_flag[i][j]的值应等于1。[0578]slice_delta_poc_msb_cycle_lt[i][j]表示变量fullpoclt[i][j]的值,如下所示:[0579][0580][0581]slice_delta_poc_msb_cycle_lt[i][j]的取值范围应为0至2(32–log2_max_pic_order_cnt_lsb_minus4–4)(包括端值)。当slice_delta_poc_msb_cycle_lt[i][j]不存在时,slice_delta_poc_msb_cycle_lt[i][j]的值被推断为0。[0582]num_ref_idx_active_override_flag等于1表示p条带和b条带存在语法元素num_ref_idx_active_minus1[0]且b条带存在语法元素num_ref_idx_active_minus1[1]。num_ref_idx_active_override_flag等于0表示语法元素num_ref_idx_active_minus1[0]和num_ref_idx_active_minus1[1]不存在。当num_ref_idx_active_override_flag不存在时,num_ref_idx_active_override_flag的值被推断为1。[0583]num_ref_idx_active_minus1[i]用于推导等式145所示的变量numrefidxactive[i]。num_ref_idx_active_minus1[i]的取值范围应为0至14(包括端值)。[0584]当i等于0或1时,在当前条带为b条带,num_ref_idx_active_override_flag等于1,且num_ref_idx_active_minus1[i]不存在时,num_ref_idx_active_minus1[i]被推断为0。[0585]在当前条带为p条带,num_ref_idx_active_override_flag等于1,且num_ref_idx_active_minus1[0]不存在时,num_ref_idx_active_minus1[0]被推断为0。[0586]变量numrefidxactive[i]的推导如下:[0587][0588]numrefidxactive[i]–1的值表示参考图像列表i中可以用于解码条带的最大参考索引。当numrefidxactive[i]的值等于0时,参考图像列表i中的参考索引不可以用于解码条带。[0589]在当前条带为p条带时,numrefidxactive[0]的值应大于0。[0590]在当前条带为b条带,numrefidxactive[0]和numrefidxactive[1]都应大于0。[0591]表14:加权预测参数语法[0592][0593][0594]加权预测参数语义[0595]luma_log2_weight_denom是所有亮度加权因子的分母以2为底的对数。luma_log2_weight_denom的取值范围应为0至7(包括端值)。[0596]delta_chroma_log2_weight_denom是所有色度加权因子的分母以2为底的对数的差值。当delta_chroma_log2_weight_denom不存在时,delta_chroma_log2_weight_denom被推断为0。[0597]变量chromalog2weightdenom被推导为luma_log2_weight_denom delta_chroma_log2_weight_denom,该变量的取值范围应为0至7(包括端值)。[0598]luma_weight_l0_flag[i]等于1表示使用refpiclist[0][i]对列表0进行预测所使用的亮度分量的加权因子存在。luma_weight_l0_flag[i]等于0表示这些加权因子不存在。[0599]chroma_weight_l0_flag[i]等于1表示使用refpiclist[0][i]对列表0进行预测所使用的色度预测值的加权因子存在。chroma_weight_l0_flag[i]等于0表示这些加权因子不存在。当chroma_weight_l0_flag[i]不存在时,chroma_weight_l0_flag[i]被推断为0。[0600]delta_luma_weight_l0[i]是应用于使用refpiclist[0][i]对列表0进行预测所使用的亮度预测值的加权因子的差值。[0601]变量lumaweightl0[i]被推导为(1《《luma_log2_weight_denom) delta_luma_weight_l0[i]。当luma_weight_l0_flag[i]等于1时,delta_luma_weight_l0[i]的取值范围应为–128至127(包括端值)。当luma_weight_l0_flag[i]等于0时,lumaweightl0[i]被推断为2luma_log2_weight_denom。[0602]luma_offset_l0[i]是应用于使用refpiclist[0][i]对列表0进行预测所使用的亮度预测值的附加偏移。luma_offset_l0[i]的取值范围应为–128至127(包括端值)。当luma_weight_l0_flag[i]等于0时,luma_offset_l0[i]被推断为0。[0603]delta_chroma_weight_l0[i][j]是应用于使用refpiclist[0][i]对列表0进行预测所使用的色度预测值的加权因子的差值,其中,对于cb,j等于0,对于cr,j等于1。[0604]变量chromaweightl0[i][j]被推导为(1《《chromalog2weightdenom) delta_chroma_weight_l0[i][j]。当chroma_weight_l0_flag[i]等于1时,delta_chroma_weight_l0[i][j]的取值范围应为–128至127(包括端值)。当chroma_weight_l0_flag[i]等于0时,chromaweightl0[i][j]被推断为2chromalog2weightdenom。[0605]delta_chroma_offset_l0[i][j]是应用于使用refpiclist[0][i]对列表0进行预测所使用的色度预测值的附加偏移的差值,其中,对于cb,j等于0,对于cr,j等于1。[0606]变量chromaoffsetl0[i][j]的推导如下:[0607]chromaoffsetl0[i][j]=clip3(–128,127,(128 delta_chroma_offset_l0[i][j]–(128*chromaweightl0[i][j])》》chromalog2weightdenom)))[0608]delta_chroma_offset_l0[i][j]的取值范围应为–4*128至4*127(包括端值)。当chroma_weight_l0_flag[i]等于0时,chromaoffsetl0[i][j]被推断为0。[0609]luma_weight_l1_flag[i]、chroma_weight_l1_flag[i]、delta_luma_weight_l1[i]、luma_offset_l1[i]、delta_chroma_weight_l1[i][j]和delta_chroma_offset_l1[i][j]的语义分别与luma_weight_l0_flag[i]、chroma_weight_l0_flag[i]、delta_luma_weight_l0[i]、luma_offset_l0[i]、delta_chroma_weight_l0[i][j]和delta_chroma_offset_l0[i][j]的语义相同,其中,l0、l0、列表0和list0分别由l1、l1、列表1和list1代替。[0610]变量sumweightl0flags被推导为luma_weight_l0_flag[i] 2*chroma_weight_l0_flag[i]之和,其中,i=0..numrefidxactive[0]–1。[0611]当slice_type为b时,变量sumweightl1flags被推导为luma_weight_l1_flag[i] 2*chroma_weight_l1_flag[i]之和,其中,i=0..numrefidxactive[1]–1。[0612]码流一致性的要求为:当slice_type为p时,sumweightl0flags应小于或等于24;当slice_type为b时,sumweightl0flags与sumweightl1flags之和应小于或等于24。[0613]参考图像列表结构语义[0614]语法结构ref_pic_list_struct(listidx,rplsidx)可以存在于sps中,也可以存在于条带头中。根据语法结构是包括在条带头中还是包括在sps中,以下内容适用:[0615]–如果语法结构ref_pic_list_struct(listidx,rplsidx)存在于条带头中,则该语法结构表示当前图像(包括条带的图像)的参考图像列表listidx。[0616]–否则(存在于sps中),语法结构ref_pic_list_struct(listidx,rplsidx)表示参考图像列表listidx的候选。本节其余内容规定的语义中的术语“当前图像”是指:(1)包括一个或多个条带的每个图像,其中,一个或多个条带包括的ref_pic_list_idx[listidx]等于sps中包括的语法结构ref_pic_list_struct(listidx,rplsidx)列表中的索引,(2)参考sps的编码视频序列(codedvideosequence,cvs)中的每个图像。[0617]num_ref_entries[listidx][rplsidx]表示语法结构ref_pic_list_struct(listidx,rplsidx)中的条目的数量。num_ref_entries[listidx][rplsidx]的取值范围应为0至maxdecpicbuffminus1 14(包括端值)。[0618]ltrp_in_slice_header_flag[listidx][rplsidx]等于0表示语法结构ref_pic_list_struct(listidx,rplsidx)中的ltrp条目的poclsb存在于语法结构ref_pic_list_struct(listidx,rplsidx)中。ltrp_in_slice_header_flag[listidx][rplsidx]等于1表示语法结构ref_pic_list_struct(listidx,rplsidx)中的长期参考图像(long-termreferencepicture,ltrp)条目的poclsb不存在于语法结构ref_pic_list_struct(listidx,rplsidx)中。[0619]inter_layer_ref_pic_flag[listidx][rplsidx][i]等于1表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目是层间参考图像(inter-layerreferencepicture,ilrp)条目。inter_layer_ref_pic_flag[listidx][rplsidx][i]等于0表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目不是ilrp条目。当inter_layer_ref_pic_flag[listidx][rplsidx][i]不存在时,inter_layer_ref_pic_flag[listidx][rplsidx][i]的值被推断为0。[0620]st_ref_pic_flag[listidx][rplsidx][i]等于1表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目是strp条目。st_ref_pic_flag[listidx][rplsidx][i]等于0表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目是ltrp条目。当inter_layer_ref_pic_flag[listidx][rplsidx][i]等于0且st_ref_pic_flag[listidx][rplsidx][i]不存在时,st_ref_pic_flag[listidx][rplsidx][i]的值被推断为1。[0621]变量numltrpentries[listidx][rplsidx]的推导如下:[0622][0623]abs_delta_poc_st[listidx][rplsidx][i]表示变量absdeltapocst[listidx][rplsidx][i]的值,如下所示:[0624][0625]abs_delta_poc_st[listidx][rplsidx][i]的取值范围应为0至215–1(包括端值)。[0626]strp_entry_sign_flag[listidx][rplsidx][i]等于1表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目的值大于或等于0。strp_entry_sign_flag[listidx][rplsidx][i]等于0表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目的值小于0。当strp_entry_sign_flag[listidx][rplsidx][i]不存在时,strp_entry_sign_flag[listidx][rplsidx][i]的值被推断为1。[0627]列表deltapocvalst[listidx][rplsidx]的推导如下:[0628][0629][0630]rpls_poc_lsb_lt[listidx][rplsidx][i]表示由语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目参考的图像的图像顺序编号对maxpicordercntlsb取模的值。语法元素rpls_poc_lsb_lt[listidx][rplsidx][i]的长度为(log2_max_pic_order_cnt_lsb_minus4 4)个比特。[0631]ilrp_idx[listidx][rplsidx][i]表示语法结构ref_pic_list_struct(listidx,rplsidx)中的第i个条目的ilrp在直接参考层列表中的索引。ilrp_idx[listidx][rplsidx][i]的取值范围应为0至numdirectreflayers[generallayeridx[nuh_layer_id]]–1(包括端值)。[0632]因此,不同的机制可以用于控制geo/tpm融合模式,取决于wp是否应用于通过以下方式从中获取参考块p0和p1的参考图像:[0633]–将表14中列出的wp参数从sh移动到ph;[0634]–将geo/tpm参数从ph移回sh;[0635]–改变maxnumtrianglemergecand的语义,即,当可以使用经过wp的参考图像(例如,至少一个标志lumaweightedflag为真)时,将这些条带的maxnumtrianglemergecand设置为0或1。[0636]对于tpm融合模式,示例性参考块p0和p1在图7中分别表示为710和720。对于geo融合模式,示例性参考块p0和p1在图8中分别表示为810和820。[0637]因此,不同的机制可以用于控制geo/tpm融合模式,取决于wp是否应用于通过以下方式从中获取参考块p0和p1的参考图像:[0638]–将表14中列出的wp参数从sh移动到ph;[0639]–将geo/tpm参数从ph移回sh;[0640]–改变maxnumtrianglemergecand的语义,即,当可以使用经过wp的参考图像(例如,至少一个标志lumaweightedflag为真)时,将这些条带的maxnumtrianglemergecand设置为0或1。[0641]对于tpm融合模式,示例性参考块p0和p1在图7中分别表示为710和720。对于geo融合模式,示例性参考块p0和p1在图8中分别表示为810和820。[0642]在一个实施例中,当非矩形模式(例如,geo和tpm)的启用和wp参数在图像头中指示时,可以使用以下语法,如下表所示:[0643]表11:图像头rbsp语法[0644][0645][0646][0647]……[0648]当luma_weight_l0_flag[i]、chroma_weight_l0_flag[i]、luma_weight_l1_flag[j]和chroma_weight_l1_flag[j]的所有值都被设置为0时,变量wpdisabled被设置为1,其中,i=0..numrefidxactive[0],j=0..numrefidxactive[1];否则,wpdisabled的值被设置为0。[0649]当变量wpdisabled被设置为0时,pic_max_num_merge_cand_minus_max_num_triangle_cand的值被设置为maxnummergecand。[0650]在第二实施例中,wp参数的指示和非矩形模式(例如,geo和tpm)的启用在条带头中执行。下表给出了示例性语法。[0651][0652][0653][0654][0655][0656][0657][0658]……[0659]当luma_weight_l0_flag[i]、chroma_weight_l0_flag[i]、luma_weight_l1_flag[j]和chroma_weight_l1_flag[j]的所有值都被设置为0时,变量wpdisabled被设置为1,其中,i=0..numrefidxactive[0],j=0..numrefidxactive[1];否则,wpdisabled的值被设置为0。[0660]当变量wpdisabled被设置为0时,max_num_merge_cand_minus_max_num_triangle_cand的值被设置为maxnummergecand。[0661]在上述公开的实施例中,加权预测参数可以在图像头或条带头中指示。[0662]在第三实施例中,在考虑块可以用来进行非矩形加权预测的参考图像列表时,确定是否启用tpm或geo。当块的融合列表只包括一个参考图像列表k中的元素时,变量wpdisabled[k]的值确定该融合模式是否被启用。[0663]在第四实施例中,非矩形帧间预测模式的融合列表被构造为使得该融合列表只包括未启用加权预测的元素。[0664]说明书的以下部分举例说明了第四实施例:[0665]该过程的输入包括:[0666]–当前亮度编码块(codingblock)的左上样本相对于当前图像的左上亮度样本的亮度位置(xcb,ycb);[0667]–变量cbwidth,表示当前编码块的以亮度样本为单位的宽度;[0668]–变量cbheight,表示当前编码块的以亮度样本为单位的高度。[0669]该过程的输出如下,其中,x为0或1:[0670]–相邻编码单元(codingunit)的可用性标志availableflaga0、availableflaga1、availableflagb0、availableflagb1和availableflagb2;[0671]–相邻编码单元的参考索引refidxlxa0、refidxlxa1、refidxlxb0、refidxlxb1和refidxlxb2;[0672]–相邻编码单元的预测列表使用标志predflaglxa0、predflaglxa1、predflaglxb0、predflaglxb1和predflaglxb2;[0673]–相邻编码单元的1/16分数样本精度的运动矢量mvlxa0、mvlxa1、mvlxb0、mvlxb1和mvlxb2;[0674]–半样本插值滤波器索引hpelifidxa0、hpelifidxa1、hpelifidxb0、hpelifidxb1和hpelifidxb2;[0675]–双向预测权重索引bcwidxa0、bcwidxa1、bcwidxb0、bcwidxb1和bcwidxb2。[0676]为了推导availableflagb1、refidxlxb1、predflaglxb1、mvlxb1、hpelifidxb1和bcwidxb1,以下内容适用:[0677]–相邻亮度编码块内的亮度位置(xnbb1,ynbb1)被设置为(xcb cbwidth–1,ycb–1)。[0678]–第6.4.4节详述的相邻块可用性推导过程被调用,其中,输入包括设置为(xcb,ycb)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xnbb1,ynbb1)、设置为真的checkpredmodey和设置为0的cidx,输出被赋值给块可用性标志availableb1。[0679]–变量availableflagb1、refidxlxb1、predflaglxb1、mvlxb1、hpelifidxb1和bcwidxb1的推导如下:[0680]–如果availableb1为假,则availableflagb1被设置为0,mvlxb1的两个分量都被设置为0,refidxlxb1被设置为–1且predflaglxb1被设置为0(其中,x为0或1),hpelifidxb1被设置为0,bcwidxb1被设置为0。[0681]–否则,availableflagb1被设置为1,并进行以下赋值:[0682]mvlxb1=mvlx[xnbb1][ynbb1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(501)[0683]refidxlxb1=refidxlx[xnbb1][ynbb1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(502)[0684]predflaglxb1=predflaglx[xnbb1][ynbb1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(503)[0685]hpelifidxb1=hpelifidx[xnbb1][ynbb1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(504)[0686]bcwidxb1=bcwidx[xnbb1][ynbb1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(505)[0687]为了推导availableflaga1、refidxlxa1、predflaglxa1、mvlxa1、hpelifidxa1和bcwidxa1,以下内容适用:[0688]–相邻亮度编码块内的亮度位置(xnba1,ynba1)被设置为(xcb–1,ycb cbheight–1)。[0689]–第6.4.4节详述的相邻块可用性推导过程被调用,其中,输入包括设置为(xcb,ycb)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xnba1,ynba1)、设置为真的checkpredmodey和设置为0的cidx,输出被赋值给块可用性标志availablea1。[0690]–变量availableflaga1、refidxlxa1、predflaglxa1、mvlxa1、hpelifidxa1和bcwidxa1的推导如下:[0691]–如果以下一个或多个条件为真,则availableflaga1被设置为0,mvlxa1的两个分量都被设置为0,refidxlxa1被设置为–1且predflaglxa1被设置为0(其中,[0692]x为0或1),hpelifidxa1被设置为0,bcwidxa1被设置为0:[0693]–availablea1为假,[0694]–availableb1为真,亮度位置(xnba1,ynba1)和(xnbb1,ynbb1)具有相同的运动矢量和相同的参考索引,[0695]–wpdisabledx[refidxlx[xnba1][ynba1]]被设置为0,融合模式为非矩形融合模式(例如,块的三角标志在当前亮度位置(xcurr,ycurr)上被设置为1),[0696]–wpdisabledx[refidxlx[xnbb1][ynbb1]]被设置为0,融合模式为非矩形融合模式(例如,块的三角标志在当前亮度位置(xcurr,ycurr)上被设置为1);[0697]–否则,availableflaga1被设置为1,并进行以下赋值:[0698]mvlxa1=mvlx[xnba1][ynba1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(506)[0699]refidxlxa1=refidxlx[xnba1][ynba1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(507)[0700]predflaglxa1=predflaglx[xnba1][ynba1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(508)[0701]hpelifidxa1=hpelifidx[xnba1][ynba1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(509)[0702]bcwidxa1=bcwidx[xnba1][ynba1]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(510)[0703]为了推导availableflagb0、refidxlxb0、predflaglxb0、mvlxb0、hpelifidxb0和bcwidxb0,以下情况适用:[0704]–相邻亮度编码块内的亮度位置(xnbb0,ynbb0)被设置为(xcb cbwidth,ycb–1)。[0705]–第6.4.4节详述的相邻块可用性推导过程被调用,其中,输入包括设置为(xcb,ycb)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xnbb0,ynbb0)、设置为真的checkpredmodey和设置为0的cidx,输出被赋值给块可用性标志availableb0。[0706]–变量availableflagb0、refidxlxb0、predflaglxb0、mvlxb0、hpelifidxb0和bcwidxb0的推导如下:[0707]–如果以下一个或多个条件为真,则availableflagb0被设置为0,mvlxb0的两个分量都被设置为0,refidxlxb0被设置为–1且predflaglxb0被设置为0(其中,x为0或1),hpelifidxb0被设置为0,bcwidxb0被设置为0:[0708]–availableb0为假,[0709]–availableb1为真,亮度位置(xnbb1,ynbb1)和(xnbb0,ynbb0)具有相同的运动矢量和相同的参考索引,[0710]–wpdisabledx[refidxlx[xnbb0][ynbb0]]被设置为0,融合模式为非矩形融合模式(例如,块的三角标志在当前亮度位置(xcurr,ycurr)上被设置为1),[0711]–wpdisabledx[refidxlx[xnbb1][ynbb1]]被设置为0,融合模式为非矩形融合模式(例如,块的三角标志在当前亮度位置(xcurr,ycurr)上被设置为1);[0712]–否则,availableflagb0被设置为1,并进行以下赋值:[0713]mvlxb0=mvlx[xnbb0][ynbb0]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(511)[0714]refidxlxb0=refidxlx[xnbb0][ynbb0]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(512)[0715]predflaglxb0=predflaglx[xnbb0][ynbb0]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(513)[0716]hpelifidxb0=hpelifidx[xnbb0][ynbb0]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(514)[0717]bcwidxb0=bcwidx[xnbb0][ynbb0]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(515)[0718]为了推导availableflaga0、refidxlxa0、predflaglxa0、mvlxa0、hpelifidxa0和bcwidxa0,以下内容适用:[0719]–相邻亮度编码块内的亮度位置(xnba0,ynba0)被设置为(xcb–1,ycb cbwidth)。[0720]–第6.4.4节详述的相邻块可用性推导过程被调用,其中,输入包括设置为(xcb,ycb)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xnba0,ynba0)、设置为真的checkpredmodey和设置为0的cidx,输出被赋值给块可用性标志availablea0。[0721]–变量availableflaga0、refidxlxa0、predflaglxa0、mvlxa0、hpelifidxa0和bcwidxa0的推导如下:[0722]–如果以下一个或多个条件为真,则availableflaga0被设置为0,mvlxa0的两个分量都被设置为0,refidxlxa0被设置为–1且predflaglxa0被设置为0(其中,x为0或1),hpelifidxa0被设置为0,bcwidxa0被设置为0:[0723]–availablea0为假,[0724]–availablea1为真,亮度位置(xnba1,ynba1)和(xnba0,ynba0)具有相同的运动矢量和相同的参考索引,[0725]–wpdisabledx[refidxlx[xnba0][ynba0]]被设置为0,融合模式为非矩形融合模式(例如,块的三角标志在当前亮度位置(xcurr,ycurr)上被设置为1),[0726]–wpdisabledx[refidxlx[xnba1][ynba1]]被设置为0,融合模式为非矩形融合模式(例如,块的三角标志在当前亮度位置(xcurr,ycurr)上被设置为1);[0727]–否则,availableflaga0被设置为1,并进行以下赋值:[0728]mvlxa0=mvlx[xnba0][ynba0]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(516)[0729]refidxlxa0=refidxlx[xnba0][ynba0]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(517)[0730]predflaglxa0=predflaglx[xnba0][ynba0]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(518)[0731]hpelifidxa0=hpelifidx[xnba0][ynba0]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(519)[0732]bcwidxa0=bcwidx[xnba0][ynba0]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(520)[0733]为了推导availableflagb2、refidxlxb2、predflaglxb2、mvlxb2、hpelifidxb2和bcwidxb2,以下情况适用:[0734]–相邻亮度编码块内的亮度位置(xnbb2,ynbb2)被设置为(xcb–1,ycb–1)。[0735]–第6.4.4节详述的相邻块可用性推导过程被调用,其中,输入包括设置为(xcb,ycb)的当前亮度位置(xcurr,ycurr)、相邻亮度位置(xnbb2,ynbb2)、设置为真的checkpredmodey和设置为0的cidx,输出被赋值给块可用性标志availableb2。[0736]–变量availableflagb2、refidxlxb2、predflaglxb2、mvlxb2、hpelifidxb2和bcwidxb2的推导如下:[0737]–如果以下一个或多个条件为真,则availableflagb2被设置为0,mvlxb2的两个分量都被设置为0,refidxlxb2被设置为–1且predflaglxb2被设置为0(其中,x为0或1),hpelifidxb2被设置为0,bcwidxb2被设置为0:[0738]–availableb2为假,[0739]–availablea1为真,亮度位置(xnba1,ynba1)和(xnbb2,ynbb2)具有相同的运动矢量和相同的参考索引,[0740]–availableb1为真,亮度位置(xnbb1,ynbb1)和(xnbb2,ynbb2)具有相同的运动矢量和相同的参考索引,[0741]–availableflaga0 availableflaga1 availableflagb0 availableflagb1等于4,[0742]–wpdisabledx[refidxlx[xnbb1][ynbb1]]被设置为0,融合模式为非矩形融合模式(例如,块的三角标志在当前亮度位置(xcurr,ycurr)上被设置为1),[0743]–wpdisabledx[refidxlx[xnbb2][ynbb2]]被设置为0,融合模式为非矩形融合模式(例如,块的三角标志在当前亮度位置(xcurr,ycurr)上被设置为1);[0744]–否则,availableflagb2被设置为1,并进行以下赋值:[0745]mvlxb2=mvlx[xnbb2][ynbb2]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(521)[0746]refidxlxb2=refidxlx[xnbb2][ynbb2]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(522)[0747]predflaglxb2=predflaglx[xnbb2][ynbb2]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(523)[0748]hpelifidxb2=hpelifidx[xnbb2][ynbb2]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(524)[0749]bcwidxb2=bcwidx[xnbb2][ynbb2]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(525)[0750]在上面公开的实施例中,使用以下变量定义:[0751]当luma_weight_l0_flag[i]和chroma_weight_l0_flag[i]的所有值都被设置为0时,变量wpdisabled0[i]被设置为1,其中,i=0..numrefidxactive[0]。否则,wpdisabled0[i]的值被设置为0。[0752]当luma_weight_l1_flag[i]和chroma_weight_l1_flag[i]的所有值都被设置为0时,变量wpdisabled1[i]被设置为1,其中,i=0..numrefidxactive[1]。否则,wpdisabled1[1]的值被设置为0。[0753]在另一个实施例中,根据以下条件之一,在条带头处定义变量slicemaxnumtrianglemergecand:[0754]–slicemaxnumtrianglemergecand=(lumaweightedflag||chromaweightedflag)?0:maxnumtrianglemergecand;[0755]–slicemaxnumtrianglemergecand=(lumaweightedflag||chromaweightedflag)?1:maxnumtrianglemergecand;[0756]–slicemaxnumtrianglemergecand=slice_weighted_pred_flag?0:maxnumtrianglemergecand;[0757]或者[0758]–slicemaxnumtrianglemergecand=slice_weighted_pred_flag?1:maxnumtrianglemergecand。[0759]不同的实施例使用上面列出的不同情况。[0760]此变量的值进一步用于在块级解析融合信息。下表给出了示例性语法。[0761][0762][0763][0764]当非矩形帧间预测模式为geo模式时,进一步描述以下实施例。[0765]因此,不同的机制可以用于控制geo/tpm融合模式,取决于wp是否应用于通过以下方式从中获取参考块p0和p1的参考图像:[0766]–将表14中列出的wp参数从sh移动到ph;[0767]–将geo参数从ph移回sh;[0768]–改变maxnumgeomergecand的语义,即,当可以使用经过wp的参考图像(例如,至少一个标志lumaweightedflag为真)时,将这些条带的maxnumgeomergecand设置为0或1。[0769]对于geo融合模式,示例性参考块p0和p1在图8中分别表示为810和820。[0770]在一个实施例中,当非矩形模式(例如,geo和tpm)的启用和wp参数在图像头中指示时,可以使用以下语法,如下表所示:[0771]表11:图像头rbsp语法[0772][0773][0774][0775]……[0776]当luma_weight_l0_flag[i]、chroma_weight_l0_flag[i]、luma_weight_l1_flag[j]和chroma_weight_l1_flag[j]的所有值都被设置为0时,变量wpdisabled被设置为1,其中,i=0..numrefidxactive[0],j=0..numrefidxactive[1];否则,wpdisabled的值被设置为0。[0777]当变量wpdisabled被设置为0时,pic_max_num_merge_cand_minus_max_num_geo_cand的值被设置为maxnummergecand。[0778]在另一个实施例中,pic_max_num_merge_cand_minus_max_num_geo_cand被设置为maxnummergecand–1。[0779]在第二实施例中,wp参数的指示和非矩形模式(例如,geo和tpm)的启用在条带头中执行。下表给出了示例性语法。[0780][0781][0782][0783][0784][0785]当luma_weight_l0_flag[i]、chroma_weight_l0_flag[i]、luma_weight_l1_flag[j]和chroma_weight_l1_flag[j]的所有值都被设置为0时,变量wpdisabled被设置为1,其中,i=0..numrefidxactive[0],j=0..numrefidxactive[1];否则,wpdisabled的值被设置为0。[0786]当变量wpdisabled被设置为0时,max_num_merge_cand_minus_max_num_geo_cand的值被设置为maxnummergecand。[0787]在另一个实施例中,当变量wpdisabled被设置为0时,max_num_merge_cand_minus_max_num_geo_cand的值被设置为maxnummergecand–1。[0788]在上述公开的实施例中,加权预测参数可以在图像头或条带头中指示。[0789]在其它实施例中,根据以下条件之一,在条带头处定义变量slicemaxnumgeomergecand:[0790]–slicemaxnumgeomergecand=(lumaweightedflag||chromaweightedflag)?0:maxnumgeomergecand;[0791]–slicemaxnumgeomergecand=(lumaweightedflag||chromaweightedflag)?1:maxnumgeomergecand;[0792]–slicemaxnumgeomergecand=slice_weighted_pred_flag?0:maxnumgeomergecand;[0793]或者[0794]–slicemaxnumgeomergecand=slice_weighted_pred_flag?1:maxnumgeomergecand。不同的实施例使用上面列出的不同情况。此变量的值进一步用于在块级解析融合信息。下表给出了示例性语法。[0795]7.3.9.7融合数据语法[0796][0797][0798][0799]相关图像头语义如下所述:[0800]pic_max_num_merge_cand_minus_max_num_geo_cand表示从maxnummergecand中减去与图像头关联的条带中支持的geo融合模式候选的最大数量。[0801]当pic_max_num_merge_cand_minus_max_num_geo_cand不存在,sps_geo_enabled_flag等于1,且maxnummergecand大于或等于2时,pic_max_num_merge_cand_minus_max_num_geo_cand被推断为pps_max_num_merge_cand_minus_max_num_geo_cand_plus1–1。[0802]geo融合模式候选的最大数量maxnumgeomergecand推导如下:[0803]maxnumgeomergecand=[0804]maxnummergecand–pic_max_num_merge_cand_minus_max_num_geo_cand(87)[0805]当pic_max_num_merge_cand_minus_max_num_geo_cand存在时,maxnumgeomergecand的取值范围应为2至maxnummergecand(包括端值)。[0806]当pic_max_num_merge_cand_minus_max_num_geo_cand不存在(sps_geo_enabled_flag等于0或maxnummergecand小于2)时,maxnumgeomergecand被设置为0。[0807]当maxnumgeomergecand等于0时,不允许geo融合模式用于与ph关联的条带。[0808]下面对上述实施例中所示的编码方法和解码方法的应用以及使用这些应用的系统进行解释说明。[0809]图10为用于实现内容分发服务的内容供应系统3100的框图。内容供应系统3100包括捕获设备3102、终端设备3106,并且可选地包括显示器3126。捕获设备3102通过通信链路3104与终端设备3106通信。该通信链路可以包括上述通信信道13。通信链路3104包括但不限于wi-fi、以太网、电缆、无线(3g/4g/5g)、usb或者其任何种类的组合等。[0810]捕获设备3102生成数据,并且可以通过上述实施例中所示的编码方法对数据进行编码。可选地,捕获设备3102可以将数据分发给流媒体服务器(图中未示出),该服务器对数据进行编码并将经编码数据发送给终端设备3106。捕获设备3102包括但不限于摄像机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、pda、车载设备,或它们的任意组合等。例如,捕获设备3102可以包括如上所述的源设备12。当数据包括视频时,捕获设备3102中包括的视频编码器20实际上可以执行视频编码处理。当数据包括音频(即声音)时,捕获设备3102中包括的视频编码器实际上可以执行音频编码处理。对于一些实际场景,捕获设备3102通过将经编码视频数据和经编码音频数据一起复用来分发经编码视频数据和经编码音频数据。对于其它实际场景,例如在视频会议系统中,不复用经编码音频数据和经编码视频数据。捕获设备3102将经编码音频数据和经编码视频数据分别分发给终端设备3106。[0811]在内容供应系统3100中,终端设备310接收并再生成经编码数据。终端设备3106可以是具有数据接收和恢复能力的设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(networkvideorecorder,nvr)/数字视频录像机(digitalvideorecorder,dvr)3112、电视3114、机顶盒(settopbox,stb)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personaldigitalassistant,pda)3122、车载设备3124,或能够对上述经编码数据进行解码的以上设备的任意组合等。例如,终端设备3106可以包括上文所述的目的地设备14。当经编码数据包括视频时,终端设备中包括的视频解码器30优先执行视频解码。当经编码数据包括音频时,终端设备中包括的音频解码器优先执行音频解码处理。[0812]对于具有显示器的终端设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(networkvideorecorder,nvr)/数字视频录像机(digitalvideorecorder,dvr)3112、电视3114、个人数字助理(personaldigitalassistant,pda)3122或车载设备3124,终端设备可以将经解码数据馈送给其显示器。对于不配备显示器的终端设备,例如stb3116、视频会议系统3118或视频监控系统3120,在其中连接外部显示器3126以接收和显示经解码数据。[0813]当该系统中的每个设备执行编码或解码时,可以使用如上述实施例中所示的图像编码设备或图像解码设备。[0814]图11是为终端设备3106的一种示例性结构的示意图。在终端设备3106从捕获设备3102接收到流后,协议处理单元3202分析该流的传输协议。该协议包括但不限于实时流协议(realtimestreamingprotocol,rtsp)、超文本传输协议(hypertexttransferprotocol,http)、http直播流媒体协议(httplivestreamingprotocol,hls)、mpeg-dash、实时传输协议(real-timetransportprotocol,rtp)、实时消息传输协议(realtimemessagingprotocol,rtmp),或其任何种类的组合等。[0815]协议处理单元3202对流进行处理后,生成流文件。文件被输出给解复用单元3204。解复用单元3204可以将复用数据分成经编码音频数据和经编码视频数据。如上所述,对于其它实际场景,例如在视频会议系统中,不复用经编码音频数据和经编码视频数据。在这种情况下,不通过解复用单元3204,将经编码数据发送给视频解码器3206和音频解码器3208。[0816]通过解复用处理,生成视频基本流(elementarystream,es)、音频es和可选的字幕。视频解码器3206,包括上述实施例中说明的视频解码器30,通过上述实施例中所示的解码方法对视频es进行解码以生成视频帧,并将此数据馈送给同步单元3212。音频解码器3208对音频es进行解码以生成音频帧,并将此数据馈送给同步单元3212。可选地,在将视频帧馈送给同步单元3212之前可以将视频帧存储在缓冲区(图11中未示出)中。类似地,在将音频帧馈送给同步单元3212之前可以将音频帧存储在缓冲区(图11中未示出)中。[0817]同步单元3212同步视频帧和音频帧,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频和音频信息的呈现。信息可以使用与经译码音频和可视数据的呈现有关的时间戳以及与数据流本身的发送有关的时间戳而以语法进行译码。[0818]如果流中包括字幕,则字幕解码器3210对字幕进行解码,使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。[0819]本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以包括在汽车系统等其它系统中。[0820]数学运算符[0821]本技术中使用的数学运算符与c编程语言中使用的数学运算符类似。但是,本技术准确定义了整除运算和算术移位运算的结果,并且还定义了其它运算,例如幂运算和实值除法。编号和计数规范通常从0开始,例如,“第一个”相当于第0个,“第二个”相当于第1个,以此类推。[0822]算术运算符[0823]算术运算符的定义如下:[0824] 加法运算[0825]–减法运算(二元运算符)或者取反(一元前缀运算符)[0826]*乘法运算,包括矩阵乘法运算[0827]xy幂运算,表示x的y次幂。根据上下文,这种表示符用作上标,而不是作为幂运算。[0828]/整除运算,沿向0的取值方向截断。例如,7/4和–7/–4截断至1,–7/4和7/–4截断至–1。[0829]÷除法运算,不做截断或取整。[0830]除法运算,不做截断或取整。[0831]i取x到y(包括y)的所有整数值时,函数f(i)的累加和。[0832]x%y模运算,表示x除y的余数,其中,x和y都是整数,并且x》=0和y》0。[0833]逻辑运算符[0834]逻辑运算符的定义如下:[0835]x&&yx和y的布尔逻辑“与”运算[0836]x||yx和y的布尔逻辑“或”运算[0837]!布尔逻辑“非”运算[0838]x?y:z如果x为真或不等于0,则求y的值,否则,求z的值。[0839]关系运算符[0840]关系运算符的定义如下:[0841]》大于[0842]》=大于或等于[0843]《小于[0844]《=小于或等于[0845]==等于[0846]!=不等于[0847]当一个关系运算符应用于一个已被赋值“na”(不适用)的语法元素或变量时,值“na”被视为该语法元素或变量的不同值。值“na”被视为不等于任何其它值。[0848]按位运算符[0849]按位运算符的定义如下:[0850]&按位“与”运算。当对整数参数运算时,运算的是整数值的补码表示。当对二进制参数运算时,如果它包含的位比另一个参数少,则通过添加更多等于0的有效位来扩展较短的参数。[0851]|按位“或”运算。当对整数参数运算时,运算的是整数值的补码表示。当对二进制参数运算时,如果它包含的位比另一个参数少,则通过添加更多等于0的有效位来扩展较短的参数。[0852]^按位“异或”运算。当对整数参数运算时,运算的是整数值的补码表示。当对二进制参数运算时,如果它包含的位比另一个参数少,则通过添加更多等于0的有效位来扩展较短的参数。[0853]x》》y将x以2的补码整数表示的形式向右算术移动y个二进制位。只有y为非负整数值时才有这个函数定义。右移的结果是移进最高有效位(mostsignificantbit,msb)的比特位等于移位运算之前的x的msb。[0854]x《《y将x以2的补码整数表示的形式向左算术移动y个二进制位。只有y为非负整数值时才有这个函数定义。左移的结果是移进最低有效位(leastsignificantbit,lsb)的比特位等于0。[0855]赋值运算符[0856]算术运算符的定义如下:[0857]=赋值运算符[0858] 递增,即x 相当于x=x 1;当用于数组下标时,在自加运算前先求变量值。[0859]––递减,即,x––相当于x=x–1;当用于数组下标时,在自减运算前先求变量值。[0860] =自加指定值,即x =3相当于x=x 3,x =(–3)相当于x=x (–3)。[0861]–=自减指定值,即x–=3相当于x=x–3,x–=(–3)相当于x=x–(–3)。[0862]范围表示法[0863]下面的表示法用来说明值的范围:[0864]x=y..zx取从y到z(包括y和z)的整数值,其中,x、y和z是整数,z大于y。[0865]数学函数[0866]数学函数的定义如下:[0867][0868]asin(x)三角反正弦函数,对参数x运算,x在–1.0至1.0(包括端值)的范围之间,输出值在–π÷2至π÷2(包括端值)范围之间,单位为弧度。[0869]atan(x)三角反正切函数,对参数x运算,输出值在–π÷2至π÷2(包括端值)范围之间,单位为弧度。[0870][0871]ceil(x)大于或等于x的最小整数。[0872]clip1y(x)=clip3(0,(1《《bitdepthy)–1,x)[0873]clip1c(x)=clip3(0,(1《《bitdepthc)–1,x)[0874][0875]cos(x)三角余弦函数,对参数x运算,单位为弧度。[0876]floor(x)小于或等于x的最大整数。[0877][0878]ln(x)返回x的自然对数(以e为底的对数,其中,e是自然对数底数常数2.718281828……)。[0879]log2(x)x以2为底的对数。[0880]log10(x)x以10为底的对数。[0881][0882][0883]round(x)=sign(x)*floor(abs(x) 0.5)[0884][0885]sin(x)表示三角正弦函数,对参数x运算,单位为弧度。[0886][0887]swap(x,y)=(y,x)[0888]tan(x)表示三角正切函数,对参数x运算,单位为弧度。[0889]运算优先级顺序[0890]当没有使用括号来显式表示表达式中的优先顺序时,以下规则适用:[0891]–高优先级的运算在低优先级的任何运算之前计算。[0892]–相同优先级的运算从左到右依次计算。[0893]下表从最高到最低的顺序说明运算的优先级,表中位置越高,优先级越高。[0894]对于c编程语言中也使用的运算符,本规范中运算符优先级顺序与c编程语言中优先级顺序相同。[0895]表:运算优先级从最高(表格顶部)到最低(表格底部)排序[0896][0897]逻辑运算的文本说明[0898]在文本中,用数学形式描述如下的逻辑运算语句:[0899][0900]可以用以下方式描述:[0901]……如下/……以下为准:[0902]–如果条件0,则语句0[0903]–否则,如果条件1,则语句1[0904]‑……[0905]–否则(关于剩余条件的提示性说明),则语句n[0906]文本中的每个“如果……否则,如果……否则,……”语句都以“……如下”或“……以下为准”引入,后面紧跟着“如果……”。“如果……否则,如果……否则,……”的最后一个条件总有一个“否则,……”中间有“如果……否则,如果……否则”语句可以通过使“……如下”或“……以下为准”与结尾“否则……”匹配来识别。[0907]在文本中,用数学形式描述如下的逻辑运算语句:[0908][0909]可以用以下方式描述:[0910]……如下/……以下为准:[0911]–如果以下所有条件为真,则语句0:[0912]–条件0a[0913]–条件0b[0914]–否则,如果满足以下一个或多个条件,则语句1:[0915]–条件1a[0916]–条件1b[0917]‑……[0918]–否则,语句n[0919]在文本中,用数学形式描述如下的逻辑运算语句:[0920][0921]可以用以下方式描述:[0922]当条件0时,语句0[0923]当条件1时,语句1。[0924]编码器20和解码器30等的实施例以及本文参照编码器20和解码器30等描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质中或通过通信介质发送,且由基于硬件的处理单元执行。计算机可读介质可以包括与有形介质(例如,数据存储介质)对应的计算机可读存储介质,或包括任何便于将计算机程序从一处发送到另一处的介质(例如,根据通信协议)的通信介质。通过这种方式,计算机可读介质通常可以对应(1)非瞬时性的有形计算机可读存储介质或(2)信号或载波等通信介质。数据存储介质可以是通过一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索用于实施本发明所述技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。[0925]作为示例而非限制,这类计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存或可以用于存储指令或数据结构形式的所需程序代码并且可以由计算机访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴缆线、光纤缆线、双绞线、数字用户线(digitalsubscriberline,dsl)或红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,则同轴缆线、光纤缆线、双绞线、dsl或红外线、无线电和微波等无线技术包含在介质的定义中。但是,应当理解的是,计算机可读存储介质和数据存储介质并不包括连接、载波、信号或其它瞬时性介质,而是涉及非瞬时性有形存储介质。本文所使用的磁盘和光盘包括压缩光盘(compactdisc,cd)、激光光盘、光学光盘、数字多功能光盘(digitalversatiledisc,dvd)和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包括在计算机可读介质的范围内。[0926]指令可以通过一个或多个数字信号处理器(digitalsignalprocessor,dsp)、一个或多个通用微处理器、一个或多个专用集成电路(applicationspecificintegratedcircuit,asic)、一个或多个现场可编程逻辑阵列(fieldprogrammablelogicarray,fpga)或其它同等集成或离散逻辑电路等一或多个处理器来执行。因此,本文所使用的术语“处理器”可以指上述结构中的任一种或适于实施本文所述技术的任何其它结构。另外,在一些方面中,本文描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,这些技术可以在一个或多个电路或逻辑元件中完全实现。[0927]本发明中的技术可以在多种设备或装置中实现,这些设备或装置包括无线手机、集成电路(integratedcircuit,ic)或一组ic(例如芯片组)。本发明描述了各种组件、模块或单元,以强调用于执行所公开技术的设备的功能方面,但未必需要由不同的硬件单元实现。实际上,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过包括如上所述的一个或多个处理器的互操作硬件单元的集合来提供。[0928]下面提供了本发明的其它实施例。需要说明的是,以下部分使用的编号不一定需要与上述部分使用的编号保持一致。[0929]实施例1:一种用于图像块的帧间预测的方法,其中,对一组预测块执行加权预测参数的指示和非矩形帧间预测的启用,所述方法包括:获取块的帧间预测模式参数,其中,所述获取包括检查是否对所述块组启用非矩形帧间预测模式,所述块组包括所述预测块;获取与所述块关联的加权预测参数、一个块相对于为所述块指示的参考图像的帧间预测模式参数和为所述块组指定的加权预测参数。[0930]实施例2:根据实施例1所述的方法,其中,通过指示大于1的三角融合候选(maxnumtrianglemergecand)的最大数量来执行非矩形帧间预测的启用。[0931]实施例3:根据实施例1或2所述的方法,其中,当加权预测参数表示对至少一个参考索引启用加权预测时,非矩形帧间预测被推断为禁用。[0932]实施例4:根据实施例1至3中任一个所述的方法,其中,块组是图像,帧间预测非矩形模式参数的启用和加权预测参数都在图像头中指示。[0933]实施例5:根据实施例1至4中任一个所述的方法,其中,块组是条带,帧间预测非矩形模式参数的启用和加权预测参数都在条带头中指示。[0934]实施例6:根据实施例1至5中任一个所述的方法,其中,帧间预测模式参数包括用于确定所述参考图像的参考索引和用于确定所述参考块在所述参考图像中的位置的运动矢量信息。[0935]实施例7:根据实施例1至6中任一个所述的方法,其中,非矩形融合模式是三角划分模式。[0936]实施例8:根据实施例1至7中任一个所述的方法,其中,非矩形融合模式是geo模式。[0937]实施例9:根据实施例1至8中任一个所述的方法,其中,加权预测是条带级亮度补偿机制(例如全局加权预测)。[0938]实施例10:根据实施例1至9中任一个所述的方法,其中,加权预测是块级亮度补偿机制,例如局部照明补偿(localilluminationcompensation,lic)。[0939]实施例11:根据实施例1至10中任一个所述的方法,其中,加权预测参数包括:一组标志,表示加权预测是否应用于所述预测块的亮度分量和色度分量;线性模型参数α和β,指定所述预测块的值的线性变换。[0940]在本技术的第一方面中,如图12所示,公开了一种帧间预测方法1200,包括:s1201:确定是否允许非矩形帧间预测模式用于块组;s1202:获取所述块组的一个或多个帧间预测模式参数和加权预测参数;s1203:根据所述一个或多个帧间预测模式参数和加权预测参数,获取当前块的预测值,其中,所述一个或多个帧间预测模式参数中的一个帧间预测模式参数表示所述当前块的参考图像信息,所述块组包括所述当前块。[0941]在一种可行的实现方式中,所述参考图像信息包括是否对参考图像索引启用加权预测;如果加权预测被启用,则所述非矩形帧间预测模式被禁用。[0942]在一种可行的实现方式中,如果加权预测被禁用,则所述非矩形帧间预测模式被启用。[0943]在一种可行的实现方式中,所述确定是否允许非矩形帧间预测模式包括:指示三角融合候选的最大数量(maxnumtrianglemergecand)大于1。[0944]在一种可行的实现方式中,所述块组包括图像,所述加权预测参数和用于确定是否允许所述非矩形帧间预测模式的指示信息在所述图像的图像头中。[0945]在一种可行的实现方式中,所述块组包括条带,所述加权预测参数和用于确定是否允许所述非矩形帧间预测模式的指示信息在所述条带的条带头中。[0946]在一种可行的实现方式中,所述非矩形帧间预测模式为三角划分模式。[0947]在一种可行的实现方式中,所述非矩形帧间预测模式为几何(geo)划分模式。[0948]在一种可行的实现方式中,所述加权预测参数用于条带级亮度补偿。[0949]在一种可行的实现方式中,所述加权预测参数用于块级亮度补偿。[0950]在一种可行的实现方式中,所述加权预测参数包括:标志,表示所述加权预测是否应用于预测块的亮度分量和/或色度分量;线性模型参数,指定所述预测块的值的线性变换。[0951]在本技术的第二方面中,公开了一种用于帧间预测的装置1300,如图13所示,包括:非瞬时性存储器1301,存储有处理器可执行指令;处理器1302,耦合到存储器1301并用于执行所述处理器可执行指令,以实现本技术所述第一方面中的任一可行的实现方式。[0952]在本技术的第三方面中,一种用于帧间预测的码流包括:用于确定是否允许非矩形帧间预测模式用于块组的指示信息;所述块组的一个或多个帧间预测模式参数和加权预测参数,其中,当前块的预测值是根据所述一个或多个帧间预测模式参数和加权预测参数获得的,所述一个或多个帧间预测模式参数中的一个帧间预测模式参数表示所述当前块的参考图像信息,所述块组包括所述当前块。[0953]在一种可行的实现方式中,所述参考图像信息包括是否对参考图像索引启用加权预测;如果加权预测被启用,则所述非矩形帧间预测模式被禁用。[0954]在一种可行的实现方式中,如果加权预测被禁用,则所述非矩形帧间预测模式被启用。[0955]在一种可行的实现方式中,所述指示信息包括三角融合候选的最大数量(maxnumtrianglemergecand)大于1。[0956]在一种可行的实现方式中,所述块组包括图像,所述加权预测参数和所述指示信息在所述图像的图像头中。[0957]在一种可行的实现方式中,所述块组由条带组成,所述加权预测参数和所述指示信息在所述条带的条带头中。[0958]在一种可行的实现方式中,所述非矩形帧间预测模式为三角划分模式。[0959]在一种可行的实现方式中,所述非矩形帧间预测模式为几何(geo)划分模式。[0960]在一种可行的实现方式中,所述加权预测参数用于条带级亮度补偿。[0961]在一种可行的实现方式中,所述加权预测参数用于块级亮度补偿。[0962]在一种可行的实现方式中,所述加权预测参数包括:标志,表示所述加权预测是否应用于预测块的亮度分量和/或色度分量;线性模型参数,指定所述预测块的值的线性变换。[0963]在本技术的第四方面中,如图14所示,公开了一种帧间预测装置1400,包括:确定模块1401,用于确定是否允许非矩形帧间预测模式用于块组;获取模块1402,用于获取所述块组的一个或多个帧间预测模式参数和加权预测参数;预测模块1403,用于根据所述一个或多个帧间预测模式参数和加权预测参数,获取当前块的预测值,其中,所述一个或多个帧间预测模式参数中的一个帧间预测模式参数表示所述当前块的参考图像信息,所述块组包括所述当前块。[0964]在一种可行的实现方式中,所述参考图像信息包括是否对参考图像索引启用加权预测;如果加权预测被启用,则所述非矩形帧间预测模式被禁用。[0965]在一种可行的实现方式中,如果加权预测被禁用,则所述非矩形帧间预测模式被启用。[0966]在一种可行的实现方式中,确定模块1401具体用于:指示三角融合候选的最大数量(maxnumtrianglemergecand)大于1。[0967]在一种可行的实现方式中,所述块组包括图像,所述加权预测参数和用于确定是否允许所述非矩形帧间预测模式的指示信息在所述图像的图像头中。[0968]在一种可行的实现方式中,所述块组包括条带,所述加权预测参数和用于确定是否允许所述非矩形帧间预测模式的指示信息在所述条带的条带头中。[0969]在一种可行的实现方式中,所述非矩形帧间预测模式为三角划分模式。[0970]在一种可行的实现方式中,所述非矩形帧间预测模式为几何(geo)划分模式。[0971]在一种可行的实现方式中,所述加权预测参数用于条带级亮度补偿。[0972]在一种可行的实现方式中,所述加权预测参数用于块级亮度补偿。[0973]在一种可行的实现方式中,所述加权预测参数包括:标志,表示所述加权预测是否应用于预测块的亮度分量和/或色度分量;线性模型参数,指定所述预测块的值的线性变换。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献