通过将图像划分成包括图块的条带对图像进行译码的设备和方法与流程

文档序号:26195460发布日期:2021-08-06 18:49阅读:67来源:国知局
通过将图像划分成包括图块的条带对图像进行译码的设备和方法与流程
本公开涉及图像译码(包括编码和解码)领域。特别地,本公开涉及改进图像的编码和解码。为此,本公开示出了用于对图像进行编码的设备、用于对图像进行解码的设备、以及对应方法和计算机程序。上述设备和方法用于将图像划分成一个或多个条带以及至少对保存有译码的图像数据的条带进行编码,其中,每个条带包括一个或多个图块。设备和方法的实施例可以应用于360度(360°)视频图像。
背景技术
:例如,360度视频或球形视频是使用诸如头戴式显示器(head-mounteddisplay,hmd)之类的设备体验沉浸式视频的方式。通过捕获整个世界的全景图,这项技术可以为消费者提供沉浸式“身临其境”的体验。通常使用由多台相机组成的特殊装置或包含多个嵌入式相机镜头的专用虚拟现实(virtualreality,vr)相机来录制360度视频。然后,将生成的片段接合在一起以形成单个视频。此过程可以由相机本身完成,也可以使用视频编辑软件来完成,该软件可以分析常见的视觉效果,以将不同的相机素材同步并链接在一起,从而表示相机装置周围的整个观察范围。本质上,相机或相机系统将360度场景映射到球体上。然后,基于投影(例如等距柱状投影),将接合后的图像(即球体表面上的图像)从球形映射(或展开)为二维(two-dimensional,2d)矩形表示形式,然后使用例如标准视频编解码器进行编码。在观看端,解码后,视频被映射到虚拟球体上,而观看者位于虚拟球体的中心。观看者可以在虚拟球体内部导航,以根据需要查看360度世界的视图,从而获得沉浸式体验。如上所述,为了对360度视频进行译码,需要将内容投影到2d表示形式。除了等距柱状投影之外,可能的投影还包括投影到立方体、八面体等的面。这例如在帧的边缘或边界处引入了不连续性,并且在某些情况下在面(诸如立方体等的面)的边缘或边界处引入了不连续性。因此,在译码期间通常不保留内容跨这种边界的平滑度。当将编码(解码)的视频渲染到视口时,伪影通常出现在重新连接的边缘的接缝处。这些伪影会干扰观看体验。技术实现要素:本申请实施例提供了根据独立权利要求的用于编码和解码的设备(或装置)和方法。前述和其他目的通过独立权利要求的主题来实现。根据从属权利要求、说明书、以及附图,进一步的实施方式是显而易见的。本公开的第一方面涉及一种用于对图像进行编码的设备,其中,该设备用于:将图像划分成一个或多个条带(slice,也称为片或切片),每个条带包括一个或多个图块(tile),并且一个或多个条带保存有译码的图像数据;对保存有译码的图像数据的该一个或多个条带进行编码。一般地,在本公开中,“译码的图像数据”意味着其包含表示(视频)图像的样本值的数据。特别地,保存有译码的图像数据的一个或多个条带可以保存有表示图像中的样本值的数据。非译码的图像数据包含可以增强译码的图像数据的可用性但对于解码视频图像中的样本值不是直接必需的信息。未保存有译码的图像数据的一个或多个条带可以保存有非译码的图像数据。第一方面的设备改进了图像的编码。在第一方面的实施方式中,保存有译码的图像数据的一个或多个条带形成子图像,子图像覆盖图像的矩形区域。当视频包含不同视角而解码设备仅对其中的子集感兴趣时,矩形条带/区域是有利的。如果避免了条带之间的依赖性(帧间预测),则解码设备仅需解码所需的子集。对于360视频,用户在给定时间仅看向视频的一部分,故这尤其有用。在第一方面的实施方式中,如果给定条带中的至少一个图块保存有译码的图像数据,则整个给定条带保存有译码的图像数据。条带可以具有高级入口点(entrypoint),并且每个条带可以在单独的网络抽象层(networkabstractionlayer,nal)单元中。这使其成为用于引入例如未译码区域的合适语法元素。特别地,未保存有译码的图像数据的一个或多个条带可以形成一个或多个未译码区域。由于子图像可以是一组条带,因此子图像也合适。用于引入未译码区域的单元(即,图块、ctu)越小,附加信令的开销可能越大。在第一方面的实施方式中,一个或多个条带形成为矩形。在第一方面的实施方式中,图像被划分成多个条带,并且一个或多个条带未保存有译码的图像数据。这些条带可以用于各种应用,例如几何填充,或者提供关于图像编(解)码的辅助信息。在第一方面的实施方式中,如果给定条带中的至少一个图块未保存有译码的图像数据,则整个给定条带未保存有译码的图像数据。创建的未译码区域/条带可以用于各种应用。使用未译码区域/条带的优点是,由于每个图像由属于同一图像的译码/未译码区域构成,所以参考图像列表(referencepicturelist,rpl)的大小保持恒定。在第一方面的实施方式中,未保存有译码的图像数据的一个或多个条带保存有用于几何填充的填充数据。在第一方面的实施方式中,未保存有译码的图像数据的一个或多个条带保存有条带头数据。在第一方面的实施方式中,上述设备还用于在未保存有译码的图像数据的条带的边界禁用环内滤波器。在第一方面的实施方式中,上述图像是360°视频的图像。在第一方面的实施方式中,其中,上述图像是360°视频的图像,该设备还用于:根据投影格式重建该360°视频的图像的样本,以获得一组2d面,其中,每个2d面由保存有译码的图像数据的一个或多个条带形成。在第一方面的实施方式中,至少子图像的左边界和上边界分别是未保存有译码的图像数据的条带的边界,或者是另一子图像的边界,或者是图像边界。在第一方面的实施方式中,上述设备用于对未保存有译码的图像数据的一个或多个条带进行编码。本公开的第二方面涉及一种用于对图像进行解码的设备,其中,该设备用于:将图像划分成一个或多个条带,每个条带包括一个或多个图块,并且一个或多个条带保存有译码的图像数据;对保存有译码的图像数据的该一个或多个条带进行解码。第二方面的设备改进了图像的解码。特别地,第二方面的实施方式实现与第一方面的实施方式相同的优点。在第二方面的实施方式中,保存有译码的图像数据的一个或多个条带形成子图像,子图像覆盖图像的矩形区域。在第二方面的实施方式中,如果给定条带中的至少一个图块保存有译码的图像数据,则整个给定条带保存有译码的图像数据。在第二方面的实施方式中,一个或多个条带形成为矩形。在第二方面的实施方式中,图像被划分成多个条带,并且一个或多个条带未保存有译码的图像数据。在第二方面的实施方式中,如果给定条带中的至少一个图块未保存有译码的图像数据,则整个给定条带未保存有译码的图像数据。在第二方面的实施方式中,未保存有译码的图像数据的一个或多个条带保存有用于几何填充的填充数据。在第二方面的实施方式中,未保存有译码的图像数据的一个或多个条带保存有条带头数据。在第二方面的实施方式中,上述设备用于:从用于对图像进行编码的设备接收关于图像缓冲器中的图像的保留缓冲器空间的信息,其中,保留缓冲器空间未保存有译码的图像数据。然而,保留缓冲器空间也可能保存有译码的图像数据。在第二方面的实施方式中,上述设备用于:从用于对图像进行编码的设备接收信息,其中,未保存有译码的图像数据的一个或多个条带从用于解码的该信息中省略。在第二方面的实施方式中,上述设备用于在未保存有译码的图像数据的条带的边界禁用环内滤波器。在第二方面的实施方式中,上述图像是360°视频的图像。在第二方面的实施方式中,其中,上述图像是360°视频的图像,该设备还用于:根据投影格式重建该360°视频的图像的样本,以获得一组2d面,其中,每个2d面由保存有译码的图像数据的一个或多个条带形成。在第二方面的实施方式中,至少子图像的左边界和上边界分别是未保存有译码的图像数据的条带的边界,或者是另一子图像的边界,或者是图像边界。本公开的第三方面涉及一种用于对图像进行编码的方法,其中,该方法包括:将图像划分成一个或多个条带,每个条带包括一个或多个图块,并且一个或多个条带保存有译码的图像数据;对保存有译码的图像数据的该一个或多个条带进行编码。第三方面的方法可以具有对应于第一方面的设备的特征和实施方式的其他特征和实施方式。本公开的第四方面涉及一种用于对图像进行解码的方法,其中,该方法包括:将图像划分成一个或多个条带,每个条带包括一个或多个图块,并且一个或多个条带保存有译码的图像数据;对保存有译码的图像数据的该一个或多个条带进行解码。第四方面的方法可以具有对应于第二方面的设备的特征和实施方式的其他特征和实施方式。本公开的第五方面涉及包括程序代码的计算机程序,当在计算机上执行时,用于执行根据第三方面或第四方面的方法,和/或用于控制根据第一方面或第二方面的设备。本公开的第六方面涉及一种译码方法,其中,译码包括解码或编码,该方法包括:为图像缓冲器中的图像保留缓冲器空间,其中,该缓冲器空间未保存有译码数据,特别是译码的图像数据;发信令通知或解码该保留的缓冲器空间的信息。该方法可以包括将图像划分成图块,其中,至少一个图块未保存有译码数据,特别是未保存有译码的图像数据,并且其中,保留的缓冲器空间用于该至少一个图块。该方法还可以包括:所有图块被分组成条带,条带完全由保存有译码数据的图块组成,或完全由未保存有译码数据的图块组成。当译码是解码时,该方法包括对保留的缓冲器空间的信息进行解码。当译码是编码时,该方法包括发信令通知保留的缓冲器空间的信息。例如,保留的缓冲器空间的信息可以用于规范化操作。规范化操作可以包括由编解码器规定的任何处理,该处理需要以完全相同的方式完成,以便正确解码比特流。作为第六方面的实施方式,保留的缓冲器空间可以用于生成样本,该样本用于提高帧间预测性能。作为第六方面的实施方式,保留的缓冲器空间可以用于生成样本,该样本用于提高帧内预测性能。作为第六方面的另一实施方式,保留的缓冲器空间还可以用于生成样本,该样本用于环路滤波目的。在该实施方式中,这在单个ctu解码时不能应用。需要首先解码所有图块,然后可以对面边界进行环路滤波。根据本发明第六方面的方法可以由根据本公开的第七方面的装置来执行。根据第一方面的方法的其他特征和实施方式对应于根据本发明第七方面的装置的特征和实施方式。根据第八方面,本公开涉及一种用于对视频流进行解码的装置,该装置包括处理器和存储器。该存储器存储有指令,该指令使处理器执行根据第一方面或第二方面或第六方面的方法。根据第九方面,本公开涉及一种用于对视频流进行编码的装置,该装置包括处理器和存储器。该存储器存储有指令,该指令使处理器执行根据第一方面或第二方面或第六方面的方法。根据第十方面,提出了一种计算机可读存储介质,其上存储有指令,当被执行时,该指令使一个或多个处理器用于对视频数据进行译码。该指令使一个或多个处理器执行根据第一方面或第二方面或第六方面的方法,或根据第一方面或第二方面或第六方面的任何可能实施例的方法。根据第十一方面。本公开涉及一种计算机程序,其包括程序代码,当在计算机上执行时,该程序代码用于执行根据第一方面或第二方面或第六方面的方法,或根据第一方面或第二方面或第六方面的任何可能实施例的方法。本公开的第十二方面涉及一种用于对360°视频的图像进行译码的方法,其中,译码包括编码和解码,并且该方法包括:为图像缓冲器中的图像保留缓冲器空间,其中,该缓冲器空间未保存有译码数据,尤其是译码的图像数据;发信令通知(编码器)或解码(解码器)保留的缓冲器空间的信息。在第十二方面的实施方式中,该方法还包括:将图像划分成图块,其中,至少一个图块未保存有编码数据,并且其中,保留的缓冲器空间用于该至少一个图块,并且其中,例如,该方法还可以包括:将与至少一个图块对应的缓冲器空间初始化为常数值。在第十二方面的实施方式中,所有图块被分组成条带,条带完全由保存有译码数据的图块组成,或完全由未保存有译码数据的图块组成。在第十二方面的实施方式中,该方法(用于编码)不对由未保存有译码数据的图块组成的条带进行编码在第十二方面的实施方式中,该方法(用于解码)不接收覆盖完整图像缓冲器的条带,和/或不接收用于未译码缓冲器空间的条带。在第十二方面的实施方式中,保留的缓冲器空间的信息通过标志指示。在第十二方面的实施方式中,该标志是tile_coded_flag,tile_coded_flag等于1指定图块保存有ctu数据,而tile_coded_flag等于0指定图块未保存有ctu数据。在第十二方面的实施方式中,该标志是tile_coded_flag,tile_coded_flag等于0指定图块保存有ctu数据,而tile_coded_flag等于1指定图块未保存有ctu数据。在第十二方面的实施方式中,该方法还包括:根据投影格式重建360°视频的图像的样本,以获得一组2d面,其中,该组2d面经由边界互相连接。在第十二方面的实施方式中,未保存有编码数据的图块与保存有编码数据的图块具有空间关系。在第十二方面的实施方式中,每个2d面保存有译码数据,并且在图像缓冲器中未不保存有译码数据的至少一个条带的区域包围,或者被完全由未保存有译码数据的图块组成的至少一个条带的区域包围。在第十二方面的实施方式中,投影格式包括立方体格式、二十面体格式、等距柱状格式、或以上格式的修改。在第十二方面的实施方式中,缓冲器空间被保留用于几何填充,并用于运动补偿(motioncompensation,mc)。在第十二方面的实施方式中,几何填充在图像级别上执行。在第十二方面的实施方式中,缓冲器空间被保留用于另一图块或条带的上采样版本,并用于预测。在第十二方面的实施方式中,保留的缓冲器空间的信息用于规范化操作。在第十二方面的实施方式中,保留的缓冲器空间用于生成样本,该样本用于改进帧间预测性能。在第十二方面的实施方式中,几何填充在缓冲器级别上执行,不需要修改在ctu级别上的帧间预测过程。在第十二方面的实施方式中,保留的缓冲器空间用于生成样本,该样本用于改进帧内预测性能。在第十二方面的实施方式中,通过在解码图块之前使用3d相邻面的非重投影样本来填充填充区域,来应用几何纠正的帧内预测。在第十二方面的实施方式中,保留的缓冲器空间用于生成样本,该样本用于环路滤波目的。在第十二方面的实施方式中,通过使用3d相邻面的非重投影样本来填充填充区域,并跨面边界应用环路滤波器,来执行面边界滤波。在第十二方面的实施方式中,sps_360_video_enabled_flag等于1指定发信令通知360°几何结构并且将360°译码工具用于视频。在第十二方面的实施方式中,sps_360_video_enabled_flag等于0指定发信令通知360°几何结构并且将360°译码工具用于视频。在第十二方面的实施方式中,pps_360_video_geometry_type指定360°视频的几何类型。本公开的第十三方面提供了一种编码器,该编码器包括处理电路,该处理电路用于执行根据第十二方面或其任何实施方式的方法。本公开的第十四方面提供了一种解码器,该解码器包括处理电路,该处理电路用于执行根据第十二方面或其任何实施方式的方法。本公开的第十五方面提供了一种计算机程序产品,其包括用于执行根据第十二方面或其任何实施方式的方法的程序代码。本公开的第十六方面提供了一种解码器,该解码器包括:一个或多个处理器;以及非暂时性计算机可读存储介质,耦合到处理器并存储由处理器执行的程序,其中,当由处理器执行时,该程序配置解码器执行根据第十二方面或其任何实施方式的方法。本公开的第十七方面提供了一种编码器,该编码器包括:一个或多个处理器;以及非暂时性计算机可读存储介质,耦合到处理器并存储由处理器执行的程序,其中,当由处理器执行时,该程序配置编码器执行根据第十二方面或其任何实施方式的方法。在附图和以下描述中阐述了一个或多个实施例的细节。根据说明书、附图、和权利要求书,其他特征、目的、和优点将是显而易见的。附图说明在下文中,参考附图更详细地描述了示例实施例,其中:图1a是示出用于实现本发明实施例的视频译码系统的示例的框图;图1b是示出用于实现本发明实施例的视频译码系统的另一示例的框图;图2是用于实现本发明实施例的视频编码器的示例的框图;图3是用于实现本发明实施例的视频解码器的示例结构的框图;图4是示出编码装置或解码装置的示例的框图;图5是示出编码装置或解码装置的另一示例的框图;图6a是示出立方体投影格式的示例的示意图;图6b是示出立方体投影格式的示例的另一示意图;图7是示出根据立方体投影格式的球形视频的2d表示的示例的示意图;图8a是根据立方体投影格式的球形视频的2d表示的另一示例的示意图;图8b是根据立方体投影格式的球形视频的2d表示的另一示例的示意图;图9是示出扩展的立方体面的示例的示意图;图10a是示出布置的示例的示意图;图10b是示出包括填充空间的布置的示例的示意图;图11a是根据实施例的示例方法的流程图;图11b是根据实施例的示例方法的流程图;图11c是示例方法的流程图,该示例方法涉及使用“未译码”图块进行几何填充的图像编码;图11d是示例方法的示意图,该示例方法涉及使用“未译码”图块进行几何填充的图像编码;图12a是示例方法的流程图,该示例方法涉及使用“未译码”图块进行几何填充的图像解码;图12b是示例方法的示意图,该示例方法涉及使用“未译码”图块进行几何填充的图像解码;图13a是划分图块的示例;以及图13b是应用使用“未译码”图块的几何填充的划分图块的示例。在下文中,相同的附图标记指代相同或至少功能上等同的特征。具体实施方式在下面的描述中,参考了附图,这些附图形成了本公开的一部分,并且在附图中通过说明的方式示出了本发明的特定方面。应理解,在不脱离本发明的范围的情况下,可以利用其他方面并且可以进行结构或逻辑上的改变。因此,以下具体实施方式不应被理解为限制性的,因为本发明的范围由所附权利要求书限定。例如,应当理解,与所描述的方法有关的公开对于配置为执行该方法的相应设备或系统也可以成立,反之亦然。例如,如果描述了特定的方法步骤,则相应的设备可以包括执行所描述的方法步骤的单元,即使该单元未在图中明确描述或示出。另一方面,例如,如果基于功能单元描述了特定装置,则相应的方法也可以包括执行所描述的功能的步骤,即使该方法未在附图中明确描述或示出。此外,应当理解,除非另外特别指出,否则本文所述的各个示例方面的特征可以彼此组合。在视频译码(videocoding)中,图像通常是图像缓冲器中的连续区域。对于某些应用,将图像划分为仅其中一部分需要被译码的非连续区域可能是有利的。其他部分可以使用从译码数据生成的数据进行填充,这可以提高预测性能。在当前视频标准中,不存在未保存有译码数据的区域。可以使用图块(tile)或条带(slice)划分图像,但每个图块和条带都保存有译码的图像数据。这种划分不允许在图像中创建不进行编码的区域。为了解决这个问题,本发明实施例提供了用于发信令通知“未译码”条带(在本公开中,这些也称为“空”条带,即,在本公开中术语“未译码条带”和“空条带”可以互换)的方法和装置。未保存有译码的图像数据的一个或多个条带可以是一个或多个“未译码条带”。这些类型的条带可以用于在缓冲器中创建具有与其他内容的特殊空间关系的区域,但这些区域未保存有译码数据。因此,这些条带可以从比特流中省略。视频译码通常指对图像序列的处理,图像序列形成视频或视频序列。代替术语“图像(picture)”,术语“帧(frame)”或“图片(image)”在视频译码领域可以用作同义词。视频译码(或一般而言,译码)包括两个部分:视频编码和视频解码。视频编码在源侧执行,通常包括处理(例如,通过压缩)原始视频图像以减少表示该视频图像所需的数据量(以便更有效地存储和/或传输)。视频解码在目的地侧执行,通常包括相对于编码器的逆处理,以重建视频图像。涉及视频图像(或一般而言,图像)的“译码”的实施例应被理解为涉及视频图像或相应视频序列的“编码”或“解码”。编码部分和解码部分的组合也称为codec(codinganddecoding,编解码)。引入在本公开中使用的两个术语:3d布置:在被背投影到3d球体(例如,立方体的面)之前,译码样本根据投影格式在3d几何结构中的布置,包括在译码布置中的连接的边的标识。译码布置:用于编码的译码样本的2d布置。在无损视频译码的情况下,可以重建原始视频图像,即,重建的视频图像具有与原始视频图像相同的质量(假设在存储或传输期间不发生传输损失或其他数据损失)。在有损视频译码的情况下,执行进一步的压缩(例如通过量化),以减少表示视频图像的数据量,这些视频图像无法在解码器处完全重建,即,相比于原始视频图像的质量,重建的视频图像的质量较低或较差。若干视频译码标准属于“有损混合视频编解码器”组(即,组合样本域中的空间和时间预测和变换域中用于应用量化的2d变换编码)。视频序列的每个图像通常被分为一组非重叠的块,并且译码通常在块水平上执行。换句话说,在编码器处,视频通常在块(视频块)水平上处理(即编码),例如,通过使用空间(图像内)预测和/或时间(图像间)预测以生成预测块,从当前块(当前处理的/待处理的块)减去预测块以获得残差块,在变换域中对残差块进行变换并对残差块进行量化以减少待发送的数据量(压缩),而在解码器处,相对于编码器的逆处理应用于编码块或压缩块以重建当前块以进行呈现。此外,编码器复制解码器处理回路,使得二者将生成相同的预测(例如,帧内预测和帧间预测)和/或重建,以处理(即,译码)后续块。在以下实施例中,基于图1至图3描述了视频译码系统10、视频编码器20、和视频解码器30。图1a是示出可以利用本申请的技术的示例译码系统10的示意性框图,例如视频译码系统10(或简称译码系统10)。视频译码系统10的视频编码器20(或简称编码器20)和视频解码器30(或简称解码器30)表示可用于执行根据本申请描述的各种示例的技术的示例设备。例如,视频编码器20可以用于执行以上
发明内容中描述的第三方面的方法。视频编码器20可以包括
发明内容中描述的第一方面的设备。视频解码器30可以用于执行以上
发明内容中描述的第四方面的方法。视频解码器30可以包括
发明内容中描述的第二方面的设备。如图1a所示,译码系统10包括源设备12,该源设备12用于例如向目的地设备14提供编码图像数据21以对该编码图像数据13进行解码。此外,源设备12可以用于向目的地设备14提供用于解码(图像数据21)的信息21a。源设备12包括编码器20,并且可以额外地(即可选地)包括图像源16、预处理器(或预处理单元)18(例如图像预处理器18)、以及通信接口或通信单元22。图像源16可以包括或可以是任何类型的图像捕获设备(例如用于捕获真实世界图像的相机)和/或任何类型的图像生成设备(例如用于生成计算机动画图像的计算机图形处理器)或任何类型的用于获得和/或提供真实世界图像、计算机生成的图像(例如屏幕内容、虚拟现实(virtualreality,vr)图像)和/或以上的组合(例如增强现实(augmentedreality,ar)图像)的其他设备。图像源可以是存储任意上述图像的任何类型的存储器或存储设备。区别于预处理器18和由预处理单元18执行的处理,图像或图像数据17还可以称为原始图像(rawpicture)或原始图像数据17。预处理器18用于接收(原始)图像数据17,并用于对该图像数据17执行预处理,以获得预处理图像19或预处理图像数据19。由预处理器18执行的预处理例如可以包括裁剪、颜色格式转换(例如从rgb到ycbcr)、颜色纠正、或去噪。可以理解,预处理单元18可以是可选的组件。视频编码器20用于接收预处理图像数据19并提供编码图像数据21以及可选的用于解码的信息21a(以下将例如基于图2描述进一步的细节)。源设备12的通信接口22可以用于接收编码图像数据21以及可选的用于解码的信息21a,并用于将编码图像数据21(或任何进一步处理的版本)通过通信信道13发送至另一设备(例如目的地设备14或任何其他设备)以进行存储或直接重建。目的地设备14包括解码器30(例如视频解码器30),并且可以额外地(即可选地)包括通信接口或通信单元28、后处理器32(或后处理单元32)、以及显示设备34。目的地设备14的通信接口28用于例如直接从源设备12或从任何其他源(例如存储设备,例如编码图像数据存储设备)接收编码图像数据21以及可选的用于解码的信息21a(或其任何其他处理版本),并向解码器30提供编码图像数据21。通信接口22和通信接口28可以用于经由源设备12和目的地设备14之间的直接通信链路(例如直接有线连接或无线连接)或任何类型的网络(例如有线网络或无线网络或以上任意组合、或任何类型的专用网络和公共网络、或以上任何类型的组合)发送或接收编码图像数据21以及可选的用于解码的信息21a或编码数据13。通信接口22例如可以用于将编码图像数据21封装为适当的格式(例如包)和/或使用任何类型的传输编码或处理来处理编码图像数据,以通过通信链路或通信网络进行传输。通信接口28形成通信接口22的对应部分,例如可以用于接收发送的数据并使用任何类型的相应传输解码或处理和/或解包(de-packaging)来处理传输数据,以获得编码图像数据21和可选的用于解码的信息21a。通信接口22和通信接口28都可以被配置为如图1a中从源设备12指向目的地设备14的通信信道13的箭头所示的单向通信接口,或被配置为双向通信接口,并且可以用于例如发送和接收消息,例如以建立连接、应答或交换与通信链路和/或数据传输(例如译码的图像数据传输)有关的任何其他信息。解码器30用于接收编码图像数据21,并提供解码图像数据31或解码图像32(以下将例如基于图3或图5描述进一步的细节)。目的地设备14的后处理器32用于对解码图像数据31(也称为重建图像数据)(例如解码图像31)进行后处理,以获得后处理图像数据33,例如后处理图像33。由后处理单元32执行的后处理例如可以包括颜色格式转换(例如从ycbcr到rgb)、颜色纠正、裁剪、或重采样、或任何其他处理,以准备解码图像数据31用于例如由显示设备34进行显示。目的地设备14的显示设备34用于接收后处理图像数据33,以将图像显示给例如用户或观看者。显示设备34可以是或可以包括用于展现重建图像的任何类型的显示器,例如集成或外部显示器或显示屏。显示器例如可以包括液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclightemittingdiode,oled)显示器、等离子显示器、投影仪、微型led显示器、硅基液晶(liquidcrystalonsilicon,lcos)、数字光处理器(digitallightprocessor,dlp)或任何类型的其他显示器。尽管图1a将源设备12和目的地设备14描绘为单独的设备,但是设备的实施例还可以包括这两种设备或这两种设备的功能,即,源设备12或相应的功能以及目的地设备14或相应的功能。在此类实施例中,可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任何组合来实现源设备12或相应的功能以及目的地设备14或相应的功能。基于描述,对于本领域技术人员显而易见的是,如图1a所示的源设备12和/或目的地设备14内的不同单元或功能的存在和(精确)划分可以根据实际设备和应用而改变。编码器20(例如视频编码器20)和/或解码器30(例如视频解码器30)可以经由如图1b所示的处理电路实现,处理电路可以是一个或多个微处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)、离散逻辑、硬件、专用视频编码或其任意组合。编码器20可以经由处理电路46实现,以实施参照图2的编码器20讨论的各种模块和/或本文描述的任何其他编码器系统或子系统。解码器30可以经由处理电路46实现,以实施参照图3的解码器30讨论的各种模块和/或本文描述的任何其他解码器系统或子系统。处理电路可以用于执行如后文所讨论的各种操作。如图5所示,如果技术部分地以软件实现,则设备可以将软件的指令存储在合适的非暂时性计算机可读存储介质中,并且可以使用一个或多个处理器以硬件方式执行指令以执行本公开的技术。例如,视频编码器20和视频解码器30之一可以集成为如图1b所示的单个设备中的组合编码器/解码器(codec)的一部分。源设备12和目的地设备14可以包括多种设备中的任何一种,包括任何种类的手持式或固定式设备,例如笔记本或手提电脑、移动电话、智能电话、平板或平板电脑、照相机、台式计算机、机顶盒、电视、显示设备、数字媒体播放器、视频游戏机、视频流设备(例如内容服务服务器或内容传送服务器)、广播接收器设备、广播发射器设备等,并且可以不使用操作系统或使用任何类型的操作系统。在一些情况下,源设备12和目的地设备14可以被装备用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。在一些情况下,图1a所示的视频译码系统10仅是示例,本申请的技术可以应用于不一定包括编码设备和解码设备之间的任何数据通信的视频译码设置(例如视频编码或视频解码)。在其他示例中,从本地存储器中提取数据,通过网络流传输数据等。视频编码设备可将数据编码并存储到存储器,和/或视频解码设备可从存储器读取和解码数据。在一些示例中,编码和解码由不彼此通信而是仅将数据编码到存储器和/或从存储器读取和解码数据的设备执行。为便于描述,在此例如通过参考高效视频编码(high-efficiencyvideocoding,hevc)或多功能视频编码(versatilevideocoding,vvc)的参考软件、由itu-t视频编码专家组(videocodingexpertsgroup,vceg)和iso/iec运动图像专家组(motionpictureexpertsgroup,mpeg)的视频编码联合工作组(jointcollaborationteamonvideocoding,jct-vc)开发的下一代视频译码标准来描述本发明的实施例。本领域普通技术人员将理解,本发明的实施例不限于hevc或vvc。编码器和编码方法图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还可以称为混合视频编码器或根据混合视频译码器的视频编码器。残差计算单元204、变换处理单元206、量化单元208、模式选择单元260可以称为形成编码器20的前向信号路径,而反量化单元210、反变换处理单元212、重建单元214、缓冲器216、环路滤波器220、解码图像缓冲器(dbp)230、帧间预测单元244和帧内预测单元254可以称为形成视频编码器20的反向信号路径,其中,视频编码器20的反向信号路径对应于解码器(参见图3的解码器30)的信号路径。反量化单元210、反变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器(dpb)230、帧间预测单元244、和帧内预测单元254也被称为形成视频编码器20的“内置解码器”。图像和图像划分(图像和块)编码器20可以用于例如经由输入201接收图像17(或图像数据17),例如形成视频或视频序列的图像序列中的图像。接收的图像或图像数据还可以是预处理图像19(或预处理图像数据19)。为了简单起见,以下描述指图像17。图像17还可以称为当前图像和待编码图像(尤其在视频译码中,以将当前图像与其他图像区分开,例如,其他图像是同一视频序列中的先前编码的和/或解码的图像,该视频序列即包括当前图像的视频序列)。(数字)图像是或可以认为是具有强度值的样本的二维阵列或矩阵。阵列中的样本也可以称为像素(图像元素的简写形式)或pel。阵列或图像的水平方向和垂直方向(或轴)上的样本数量定义了图像的尺寸和/或分辨率。为了表示颜色,通常采用三种颜色分量,即,图像可以用三个样本阵列表示或包括三个样本阵列。在rgb格式或颜色空间中,图像包括相应的红、绿、蓝样本阵列。然而,在视频译码中,每个样本通常由亮度和色度格式或颜色空间表示,例如ycbcr,其包括由y(有时也使用l替代)指示的亮度分量和由cb和cr指示的两个色度分量。亮度(或简称luma)分量y表示亮度或灰度强度(例如,如在灰度图像中),而两个色度(或简称chroma)分量cb和cr表示色度或颜色信息分量。相应地,ycbcr格式的图像包括亮度样本值(y)的亮度样本阵列以及色度值(cb和cr)的两个色度样本阵列。rgb格式的图像可以转换或变换到ycbcr格式,反之亦然。该过程也称为颜色变换或转换。如果图像是单色的,则该图像可以仅包括亮度样本值。相应地,例如,图像可以是以单色格式的亮度样本阵列或以4:2:0、4:2:2、和4:4:4颜色格式的一个亮度样本阵列和两个相应色度样本阵列。视频编码器20的实施例可以包括图像划分单元(图2中未示出),该图像划分单元用于将图像17分为多个(通常非重叠的)图像块203。这些块还可以称为根块(rootblock)、宏块(h.264/avc)、或译码树块(codingtreeblock,ctb)或译码树单元(codingtreeunit,ctu)(h.265/hevc和vvc)。图像划分单元可以用于对视频序列中的所有图像使用相同的块尺寸和定义块尺寸的相应网格,或者用于改变图像或图像组或图像子集之间的块尺寸,并将每个图像划分为相应的块。在其他实施例中,视频编码器可以用于直接接收图像17的块203,例如,形成图像17的一个、若干个、或所有块。图像块203还可以称为当前图像块或待编码的图像块。与图像17一样,图像块203是或可以被视为具有强度值(样本值)的样本的二维阵列或矩阵,不过比图像17的维度小。换句话说,块203例如可以包括一个样本阵列(例如在单色图像17情况下的亮度阵列,或在彩色图像情况下的亮度或色度阵列)或三个样本阵列(例如,在彩色图像17情况下的一个亮度阵列和两个色度阵列)或任何其他数量和/或种类的阵列,这取决于所应用的颜色格式。块203的水平方向和垂直方向(或轴)上的样本数量定义了块203的尺寸。相应地,块例如可以是mxn(m列乘n行)的样本阵列或mxn的变换系数阵列。如图2所示的视频编码器20的实施例可以用于逐个块地对图像17进行编码,例如,按块203执行编码和预测。残差计算残差计算单元204可以用于例如通过逐个样本(逐个像素)地从图像块203的样本值减去预测块265的样本值以获得样本域中的残差块205,基于图像块203和预测块265(关于预测块265的其他细节在后文提供)计算残差块205(也称为残差205)。变换变换处理单元206可以用于对残差块205的样本值应用变换(例如离散余弦变换(discretecosinetransform,dct)或离散正弦变换(discretesinetransform,dst))以获得变换域中的变换系数207。变换系数207也可以称为变换残差系数并表示变换域中的残差块205。变换处理单元206可以用于应用dct/dst的整数近似,例如h.265/hevc指定的变换。与正交dct变换相比,这种整数近似通常按特定因子缩放。为了保留由正向和逆向变换处理的残差块的范数,将附加缩放因子用作变换过程的一部分。缩放因子通常基于某些约束条件来选择,例如缩放因子是用于移位操作的2的幂、变换系数的位深、准确度与实现成本之间的权衡等。例如,可以为由反变换处理单元212执行的反变换(以及例如由视频解码器20处的反变换处理单元312执行的相应反变换)指定特定缩放因子,并且可以相应地指定例如由编码器20处的变换处理单元206执行的前向变换的相应缩放因子。视频编码器20(分别是变换处理单元206)的实施例可以用于直接或经由熵编码单元270编码或压缩后输出变换参数,例如变换的类型,从而例如视频解码器30可以接收并使用该变换参数进行解码。量化量化单元208可以用于例如通过应用标量量化或向量量化来对变换系数207进行量化以获得量化系数209。量化系数209还可以称为量化变换系数209或量化残差系数209。量化过程可以降低与一些或全部变换系数207关联的位深。例如,在量化期间,n位的变换系数可以向下取整到m位的变换系数,其中n大于m。通过调节量化参数(quantizationparameter,qp)可以修改量化程度。例如,对于标量量化,可以应用不同的缩放比例以实现更精细的或更粗略的量化。较小的量化步长对应于较精细的量化,而较大的量化步长对应于较粗略的量化。量化参数(qp)可以指示适用的量化步长。例如,量化参数可以是适用量化步长的预定义集合的索引。例如,小量化参数可以对应于精细量化(小量化步长),而大量化参数可以对应于粗略量化(大量化步长),或反之亦然。量化可以包括除以量化步长,相应的和/或逆去量化(例如,通过反量化单元210执行)可以包括乘以量化步长。根据一些标准(例如hevc)的实施例可以用于使用量化参数以确定量化步长。一般地,可以使用包括除法的等式的定点近似(fixedpointapproximation)基于量化参数来计算量化步长。可以为量化和去量化引入附加缩放因子,以恢复残差块的范数,由于在用于量化步长和量化参数的方程的定点近似中使用了缩放,因此该范数可能会经过了修改。在一个示例实施方式中,可以组合反变换的缩放和去量化。或者,可以使用自定义的量化表,并例如在比特流中将该表从编码器发送到解码器。量化是有损操作,其中损失随着量化步长的增加而增加。视频编码器20(分别为量化单元208)的实施例可以用于直接地或经由熵编码单元270进行编码后输出量化参数(qp),从而例如视频解码器30可以接收并应用量化参数进行解码。反量化反量化单元210用于,通过基于或使用与量化单元208相同的量化步长来应用量化单元208所应用的量化方案的逆方案,对量化系数应用量化单元208的反量化以获得去量化系数211。去量化系数211还可以称为去量化残差系数211,并对应于变换系数207(虽然由于量化的损失而通常不等于变换系数)。反变换反变换处理单元212用于应用变换处理单元206所应用的变换的反变换(例如,逆离散余弦变换或逆离散正弦变换或其他反变换)以获得样本域中的重建残差块213(或对应的去量化系数213)。重建残差块213也可以称为变换块213。重建重建单元214(例如加法器或求和器214)用于例如通过将重建残差块213的样本值与预测块265的样本值(逐个样本地)相加,将变换块213(即重建残差块213)与预测块265相加,以获得样本域中的重建块215。滤波环路滤波器单元220(或简称“环路滤波器”220)用于对重建块215进行滤波以获得滤波块221,或一般地,用于对重建样本进行滤波以获得滤波样本。环路滤波器单元例如用于平滑样本过渡,或以其他方式提高视频质量。环路滤波器单元220可以包括一个或多个环路滤波器,例如去块滤波器(de-blockingfilter)、样本自适应偏移(sample-adaptiveoffset,sao)滤波器或一个或多个其他滤波器,例如双边滤波器、自适应环路滤波器(adaptiveloopfilter,alf)、锐化、平滑滤波器或协同滤波器、或以上的任何组合。虽然图2所示的环路滤波器单元220是环内滤波器(inloopfilter),但在其他配置中,环路滤波器单元220可以实现为后环路滤波器(postloopfilter)。滤波块221也可以称为滤波重建块221。视频编码器20(分别为环路滤波器单元220)的实施例可以用于例如直接地或经由熵编码单元270进行编码后输出环路滤波器参数(例如样本自适应偏移信息),从而例如解码器30可以接收并应用相同的环路滤波器参数或相应的环路滤波器进行解码。解码图像缓冲器解码图像缓冲器(dpb)230可以是存储参考图像(或一般而言,参考图像数据)的存储器,用于视频编码器20对视频数据进行编码。dpb230可以由多种存储设备中的任何一种形成,例如动态随机存取存储器(dynamicrandomaccessmemory,dram),包括同步dram(synchronousdram,sdram)、磁阻ram(magnetoresistiveram,mram)、电阻ram(resistiveram,rram)或其他类型的存储设备。解码图像缓冲器(dpb)230可以用于存储一个或多个滤波块221。解码图像缓冲器230还可以用于存储同一当前图像或不同图像(例如先前重建的图像)的其他先前的滤波块,例如,先前的重建和滤波块221,并且可以提供完整的先前重建的(即解码的)图像(和对应的参考块和样本)和/或部分重建的当前图像(和对应的参考块和样本),例如以用于帧间预测。解码图像缓冲器(dpb)230还可以用于例如在重建块215没有经环路滤波器单元220滤波时,存储一个或多个非滤波的重建块215(或一般而言,非滤波的重建样本);或存储在未译码(或空)图块区域中的数据,相应地,在图8a的示例中,面边界4和4’、7和7’、8和8’、9和9’是连续的,而面边界10和12’、11和5、12和2是不连续的边界;在图8b的示例中,面边界3和3’、7和7’、5和5’、12和12’是连续的,而面边界1和10’、9’和1’、8和9是不连续的边界;或重建块或样本的任何其他进一步处理的版本。模式选择(划分和预测)模式选择单元260包括划分单元262、帧间预测单元244、和帧内预测单元254,并用于例如从解码图像缓冲器230或其他缓冲区(例如行缓冲区,未示出)接收或获得原始图像数据和重建图像数据,原始图像数据例如是原始块203(当前图像17的当前块203),重建图像数据例如是同一(当前)图像和/或来自一个或多个先前解码图像的滤波和/或非滤波重建样本或块。重建图像数据用作用于预测(例如帧间预测或帧内预测)的参考图像数据,以获得预测块265或预测值265。模式选择单元260可以用于为当前块预测模式(包括不划分)确定或选择分区和预测模式(例如帧内预测模式或帧间预测模式),并生成相应预测块265,该预测块265用于计算参考块205和用于重建重建块215。模式选择单元260的实施例可以用于选择划分和预测模式(例如,从模式选择单元260所支持的或可用于模式选择单元260的模式中选择),该划分和预测模式提供最佳匹配,或者换句话说,提供最小残差(最小残差意味着更好的压缩以进行传输或存储),或最小的信令开销(最小的信令开销意味着更好的压缩以进行传输或存储),或者同时考虑或平衡两者。模式选择单元260可以用于基于率失真优化(ratedistortionoptimization,rdo)确定划分和预测模式,即,选择提供最小率失真的预测模式。在本文中,术语“最佳”、“最小”、“最优”等不一定指整体上的“最佳”、“最小”、“最优”,而是可以指实现了终止或选择标准,如值超过或低于阈值,或得到“次优选择”但降低了复杂度和处理时间的其他约束。换句话说,划分单元262可以用于例如迭代地使用四叉树划分(quad-tree-partitioning,qt)、二叉树划分(binary-treepartitioning,bt)、或三叉树划分(triple-tree-partitioning,tt)或以上任意组合将块203分为较小的块分区或子块(其形成块),并用于例如为每个块分区或子块执行预测,其中,模式选择包括选择划分的块203的树结构,并且预测模式应用至每个块分区或子块。在下文中,将更详细地解释由示例视频编码器20执行的划分(例如由划分单元260执行)和预测处理(由帧间预测单元244和帧内预测单元254执行)。划分划分单元262可以将当前块203划分(或划分)成较小的分区,例如正方形或矩形的较小块。这些较小块(也可以称为子块)可以被进一步划分成更小的分区。这也称为树划分(tree-partitioning)或分层树划分(hierarchicaltree-partitioning),其中,例如位于根树层级0(分层层级0、深度0)的根块可以被递归地划分,例如被划分成下一较低树层级的两个或更多个块,例如位于树层级1(分层层级1、深度1)的节点,其中,这些块可以再次划分成下一较低层级的两个或更多个块,例如树层级2(分层层级2、深度2)等,直到例如由于满足终止标准而划分终止,终止标准例如是达到最大树深度或最小块尺寸。没有被进一步划分的块也称为树的叶块(leaf-block)或叶节点。使用划分成两个分区的树称为二叉树(binary-tree,bt),使用划分成三个分区的树称为三叉树(ternary-tree,tt),使用划分成四个分区的树称为四叉树(quad-tree,qt)。如上所述,本文使用的术语“块”可以是图像的一部分,特别是正方形或矩形部分。例如,参考hevc和vvc,块可以是或对应于译码树单元(codingtreeunit,ctu)、译码单元(codingunit,cu)、预测单元(predictionunit,pu)、和变换单元(transformunit,tu)和/或对应于相应的块,例如译码树块(codingtreeblock,ctb)、编码块(codingblock,cb)、变换块(transformblock,tb)、或预测块(predictionblock,pb)。例如,译码树单元(ctu)可以是或包括具有三个样本阵列的图像的亮度样本的ctb、色度样本的两个相应的ctb、或单色图像或使用三个独立的颜色平面和用于编码样本的语法结构(syntaxstructure)进行编码的图像的样本的ctb。相应地,译码树块(ctb)可以是对于某个n值的nxn样本块,使得将组成部分划分为ctb是一次划分。译码单元(cu)可以是或包括具有三个样本阵列的图像的亮度样本的编码块、色度样本的两个相应的编码块、或单色图像或使用三个独立的颜色平面和用于编码样本的语法结构进行编码的图像的样本的编码块。相应地,编码块(cb)可以是对于某些m和n值的mxn样本块,使得将ctb划分为编码块是一次划分。在实施例中,例如根据hevc,通过使用表示为译码树的四叉树结构可以将译码树单元(ctu)划分为cu。在cu水平上决定是使用图像间(时间)预测还是图像内(空间)预测对图像区域进行编码。根据pu划分类型,每个cu可以被进一步划分为一个、两个、或四个pu。在一个pu内,应用相同的预测过程,并且基于pu将相关信息发送到解码器。在通过基于pu划分类型应用预测过程获得残差块后,根据与用于cu的译码树相似的另一四叉树结构,cu可以被划分成变换单元(tu)。在实施例中,例如根据当前发展中的最新视频编码标准(称为通用视频编码(versatilevideocoding,vvc)),使用四叉树和二叉树(quad-treeandbinarytree,qtbt)划分以划分编码块。在qtbt块结构中,cu要么是正方形,要么是矩形。例如,首先通过四叉树结构划分译码树单元(ctu)。通过二叉树或三叉树结构进一步划分四叉树的叶节点。划分树的叶节点称为译码单元(cu),这种划分用于预测和变换处理,不再进行任何进一步的划分。这意味着在qtbt编码块结构中,cu、pu、和tu具有相同的块尺寸。同时,还提出了多划分(例如三叉树划分)与qtbt块结构一起使用。在一个示例中,视频编码器20的模式选择单元260可以用于执行本文所述的划分技术的任何组合。如上所述,视频编码器20用于从(预定义的)预测模式集合中确定或选择最优或最佳预测模式。该预测模式集合例如可以包括帧内预测模式和/或帧间预测模式。帧内预测帧内预测模式集合可以包括例如hevc中所定义的35个不同的帧内预测模式,例如非方向性模式(如dc(或平均)模式和平面模式)或方向性模式,或者可以包括例如vvc中所定义的67个不同的帧内预测模式,例如非方向性模式(如dc(或平均)模式和平面模式)或方向性模式。帧内预测单元254用于使用同一当前图像的相邻块的重建样本,根据帧内预测模式集合中的帧内预测模式生成帧内预测块265。帧内预测单元254(或一般而言,模式选择单元260)还用于将帧内预测参数(或一般而言,指示所选择的用于块的帧内预测模式的信息)输出到熵编码单元270,该帧内预测参数以语法元素266的形式包括在译码的图像数据21中,从而例如视频解码器30可以接收并使用该预测参数进行解码。帧间预测帧间预测模式的集合(或可能的帧间预测模式)取决于可用参考图像(即,例如存储在dbp230中的先前至少部分解码的图像)和其他帧间预测参数,例如,是使用整个参考图像还是仅使用参考图像的一部分(例如,当前块的区域周围的搜索窗口区域)来搜索最佳匹配参考块,和/或例如是否应用样本插值,例如半像素和/或四分之一像素插值。除了以上预测模式之外,还可以应用跳过模式(skipmode)和/或直接模式(directmode)。帧间预测单元244可以包括运功估计(motionestimation,me)单元和运动补偿(motioncompensation,mc)单元(图2中均未示出)。运动估计单元可以用于接收或获得图像块203(当前图像17的当前图像块203)和解码图像231或至少一个或多个先前重建块(例如一个或多个其他/不同的先前解码图像231的重建块)以进行运动估计。例如,视频序列可以包括当前图像和先前解码图像231,或换句话说,当前图像和先前解码图像231可以是(或形成)形成视频序列的图像序列的一部分。编码器20例如可以用于从多个其他图像中的相同或不同图像中的多个参考块中选择参考块,并将参考图像(或参考图像索引)和/或参考块的位置(x、y坐标)和当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元。该偏移也称为运动矢量(motionvector,mv)。运动补偿单元用于获得(例如接收)帧间预测参数,并用于基于或使用帧间预测参数执行帧间预测以获得帧间预测块265。由运动补偿单元执行的运动补偿可以涉及基于由运动估计确定的运动/块矢量取得或生成预测块,可能执行子样本精度的插值。插值滤波可以从已知样本生成额外的样本,因此潜在地增加了可以用于对图像块进行编码的候选预测块的数量。在接收到当前图像块的pu的运动矢量后,运动补偿单元可以将运动矢量所指向的预测块放置于参考图像列表之一中。运动补偿单元还可以生成与块和视频条带关联的语法元素,由视频解码器30用于解码视频条带的图像块。熵译码熵编码单元270用于对量化系数209、帧间预测参数、帧内预测参数、环路滤波器参数、和/或其他语法元素应用熵编码算法或方法(例如,变长编码(variablelengthcoding,vlc)、上下文自适应vlc方案(contextadaptivevlcscheme,cavlc)、算术编码方案、二值化、上下文自适应二进制算术编码(contextadaptivebinaryarithmeticcoding,cabac)、基于语法的上下文自适应二进制算术编码(syntax-basedcontext-adaptivebinaryarithmeticcoding,sbac)、概率间隔划分熵(probabilityintervalpartitioningentropy,pipe)编码或另一熵编码方法或技术)或绕过(不压缩)这些参数,以获得译码的图像数据21,译码的图像数据21可以以编码比特流21的形式经由输出272输出,从而例如视频解码器30可以接收并使用这些参数进行解码。编码比特流21可以发送到视频解码器30,或存储在存储器中以供后续传输或由视频解码器30提取。视频解码器20的其他结构变形形式可以用于对视频流进行编码。例如,对于某些块或帧,基于非变换的编码器20可以直接量化残差信号,无需变换处理单元206。在另一实施方式中,编码器20可以使量化单元208和反量化单元210组合为单个单元。解码器和解码方法图3示出了用于实现本申请的技术的视频解码器30的示例。视频解码器30用于接收例如由编码器20进行编码的译码的图像数据21(例如编码比特流21)以获得解码图像331。译码的图像数据或比特流包括用于解码译码的图像数据的信息,译码的图像数据例如是表示编码视频条带的图像块以及相关联的语法元素的数据。在图3的示例中,解码器30包括熵解码单元304、反量化单元310、反变换处理单元312、重建单元314(例如求和器314)、环路滤波器320、解码图像缓冲器(dbp)330、帧间预测单元344和帧内预测单元354。帧间预测单元344可以是或包括运动补偿单元。在一些示例中,视频解码器30可以执行与相对图2的视频编码器100所述的编码通道互易的解码通道。如相对编码器20所述,反量化单元210、反变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器(dpb)230、帧间预测单元344、和帧内预测单元354也被称为形成视频编码器20的“内置解码器”。相应地,反量化单元310可以在功能上等同于反量化单元110,反变换处理单元312可以在功能上等同于反变换处理单元212,重建单元314可以在功能上等同于重建单元214,环路滤波器320可以在功能上等同于环路滤波器220,解码图像缓冲器330可以在功能上等同于解码图像缓冲器230。因此,为视频编码器20的各个单元和功能提供的说明相应地适用于视频解码器30的各个单元和功能。熵解码熵解码单元304用于解析比特流21(或一般而言,编码图像数据21)并例如对编码图像数据执行熵解码以获得例如量化系数309和/或解码译码参数(图3中未示出),例如,帧间预测参数(例如参考图像索引和运动矢量)、帧内预测参数(例如帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数、和/或其他语法元素中的任何或全部。熵解码单元304可以用于应用与针对编码器20的熵编码单元270所述的编码方案对应的解码算法或方案。熵解码单元304还可以用于向模式选择单元360提供帧间预测参数、帧内预测参数、和/或其他语法元素,并向解码器30的其他单元提供其他参数,视频解码器30可以接收视频条带级和/或视频块级的语法元素。反量化反量化单元310可以用于接收来自译码的图像数据21的量化参数(qp)(或一般而言,与反量化有关的信息)和量化系数(例如,通过熵解码单元304解析和/或解码),并用于基于量化参数对解码的量化系数309应用反量化,以获得去量化系数311,去量化系数311也可以称为变换系数311。反量化过程可以包括使用由视频编码器20为视频条带中的每个视频块确定的量化参数,以确定量化程度,以及同样地确定应该应用的反量化程度。反变换反变换处理单元312可以用于接收去量化系数311(也称为变换系数311),并用于对去量化系数311应用变换,以获得样本域中的重建残差块213。重建残差块213也可以称为变换块313。该变换可以是反变换,例如逆dct、逆dst、逆整数变换、或概念上相似的反变换过程。反变换处理单元312还可以用于接收来自译码的图像数据21的变换参数或相应的信息(例如,由熵解码单元304解析和/或解码)以确定待应用至去量化系数311的变换。重建重建单元314(例如加法器或求和器314)可以用于例如通过将重建残差块313的样本值与预测块365的样本值相加,将重建的残差块313与预测块365相加,以获得样本域中的重建块。滤波环路滤波器单元320(在编码环路中或在编码环路后)用于对重建块315进行滤波以获得滤波器块321,例如以平滑像素过渡或提高视频质量。环路滤波器单元320可以包括一个或多个环路滤波器,例如去块滤波器、样本自适应偏移(sao)滤波器或一个或多个其他滤波器,例如双边滤波器、自适应环路滤波器(alf)、锐化、平滑滤波器或协同滤波器、或以上的任何组合。虽然图3所示的环路滤波器单元320是环内滤波器,但在其他配置中,环路滤波器320可以实现为后环路滤波器。解码图像缓冲器图像的解码视频块321随后存储在解码图像缓冲器330中,解码图像缓冲器330存储解码图像331作为参考图像,以用于其他图像的后续运动补偿和/或输出或进行显示。解码器30用于经由输出312输出解码图像311以向用户呈现或供用户观看。预测帧间预测单元344可以在功能上等同于帧间预测单元244(尤其等同于运动补偿单元),并且帧内预测单元354可以在功能上等同于帧内预测单元254,并基于从译码的图像数据21接收到(例如,通过熵解码单元304进行解析和/或解码)的相应信息和划分和/或预测参数执行划分或划分决策和预测。模式选择单元360可以用于基于重建图像、块、或相应样本(滤波的或未滤波器的)按块执行预测(帧内预测或帧间预测),以获得预测块365。当视频条带被编码为帧内编码(i)条带时,模式选择单元360的帧内预测单元354用于基于指示的帧内预测模式和来自当前图像的先前解码块的数据为当前视频条带的图像块生成预测块365。当视频条带或图像被编码为帧间编码(即b或p)条带时,模式选择单元360的帧间预测单元344(例如运动补偿单元)用于基于运动矢量和从熵解码单元304接收的其他语义元素为当前视频条带的视频块生成预测块365。对于帧间预测,可以从参考图像列表之一内的参考图像之一产生预测块。视频解码器30可以基于存储在dpb330中的参考图像使用默认构建技术来构建参考帧列表,列表0和列表1。模式选择单元360用于通过解析运动矢量以及其他语义元素来确定当前视频条带的视频块的预测信息,并使用该预测信息为正被解码的当前视频块生成预测块。例如,模式选择单元360使用一些接收到的语法元素来确定用于对视频条带的视频块进行译码的预测模式(例如帧内预测或帧间预测)、帧间预测条带类型(例如b条带、p条带、或gpb条带)、条带的一个或多个参考图像列表的构造信息、条带的每个帧间编码视频块的运动矢量、条带的每个帧间编码视频块的帧间预测状态、以及其他信息,以解码当前视频条带中的视频块。视频解码器30的其他变形形式可以用于对编码图像数据21进行解码。例如,解码器30可以在不使用环路滤波单元320的情况下产生输出视频流。例如,基于非变换的解码器30可以直接对某些块或帧反量化残差信号,而不使用反变换处理单元321。在另一实施方式中,视频解码器30可以使反量化单元310和反变换处理单元312组合成单个单元。应理解,在编码器20和解码器30中,当前步骤的处理结果可以被进一步处理,然后输出至下一步骤。例如,在插值滤波、运动矢量导出、或环路滤波之后,可以对插值滤波、运动矢量导出、或环路滤波的处理结果执行进一步的操作,例如裁剪或移位。应注意,可以对当前块导出的运动矢量(包括但不限于仿射模式的控制点运动矢量,仿射、平面、atmvp模式中的子块运动矢量,时间运动矢量等等)应用进一步的操作。例如,运动矢量的值被约束到根据其代表比特的预定义范围。如果运动矢量的代表比特是位深(bitdepth),则该范围是-2^(bitdepth-1)~2^(bitdepth-1)-1,其中“^”表示求幂。例如,如果bitdepth设为等于16,则范围为-32768~32767;如果bitdepth设为等于18,则范围为-131072~131071。这里提供了用于约束运动矢量的两种方法。方法1:通过以下操作移除溢出msb(mostsignificantbit,最高有效位)ux=(mvx+2bitdepth)%2bitdepth(1)mvx=(ux>=2bitdepth-1)?(ux-2bitdepth):ux(2)uy=(mvy+2bitdepth)%2bitdepth(3)mvy=(uy>=2bitdepth-1)?(uy-2bitdepth):uy(4)例如,如果mvx的值为-32769,则在应用公式(1)和(2)后,得到的值为32767。在计算机系统中,十进制数字存储为二进制补码。-32769的二进制补码是1,0111,1111,1111,1111(17位)。然后丢弃msb,所以得到的二进制补码是0111,1111,1111,1111(十进制数为32767),该值与应用公式(1)和(2)的输出相同。ux=(mvpx+mvdx+2bitdepth)%2bitdepth(5)mvx=(ux>=2bitdepth-1)?(ux-2bitdepth):ux(6)uy=(mvpy+mvdy+2bitdepth)%2bitdepth(7)mvy=(uy>=2bitdepth-1)?(uy-2bitdepth):uy(8)如公式(5)至(8)所示,可以在mvp和mvd的求和期间应用上述运算。方法2:通过削减以下值移除溢出msb:vx=clip3(-2bitdepth-1,2bitdepth-1-1,vx)vy=clip3(-2bitdepth-1,2bitdepth-1-1,vy)其中,函数clip3的定义如下:图4是根据本公开实施例的视频译码设备400的示意图。视频译码设备400适于实现本文描述的公开实施例。在实施例中,视频译码设备400可以是诸如图1a的视频解码器30的解码器,或是诸如图1a的视频编码器20的编码器。视频译码设备400可以包括如
发明内容中所述的第一方面的设备或第二方面的设备。视频译码设备400包括用于接收数据的入口端口410(或输入端口410)和接收单元(rx)420;用于处理数据的处理器、逻辑单元、或中央处理单元(centralprocessingunit,cpu)430;用于发送数据的发射器单元(tx)和出口端口450(输出端口450);以及用于存储数据的存储器460。视频译码设备400还可以包括耦合到入口端口、接收器单元420、发射器单元440、以及出口端口450的光电(optical-to-electrical,oe)部件和电光(electrical-to-optical,eo)部件,用于光信号或电信号的输入和输出。处理器430通过硬件和软件来实现。处理器430可以实现为一个或多个cpu芯片、核(例如多核处理器)、fpgas、asic、和dsp。处理器430与入口端口410、接收器单元420、发射器单元440、出口端口450、以及存储器460通信。处理器430包括译码模块470。译码模块470实现以上所述的公开实施例。例如,译码模块470实现、处理、准备、或提供各种译码操作。因此,将译码模块470包括在内为视频译码设备400的功能提供了实质性的改进,并且实现了视频译码设备400到不同状态的转换。或者,译码模块470实现为存储在存储器460中并由处理器430执行的指令。存储器460可以包括一个或多个磁盘、磁带驱动器、和固态驱动器,并且可以用作溢出数据存储设备,以在选择要执行的程序时存储程序,并存储在程序执行期间读取的指令和数据。存储器460可以是例如易失性和/或非易失性的,并且可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、三态内容可寻址存储器(ternarycontent-addressablememory,tcam)、和/或静态随机存储器(staticrandom-accessmemory,sram)。图5是根据示例性实施例的装置500的简化框图,装置500可以用作图1中的源设备12和/或目的地设备14。装置500中的处理器502可以是中央处理单元。或者,处理器502可以是任何其他类型的设备或多个设备,能够操作或处理现有信息或以后开发的信息。尽管所公开的实施方式可以利用如图所示的单个处理器(例如,处理器502)来实践,但是使用一个以上的处理器可以实现速度和效率上的优势。在实施方式中,装置500中的存储器504可以是只读存储器(rom)设备或随机存取存储器(ram)设备。任何其他合适类型的存储设备可以用作存储器504。存储器504可以包括由处理器502使用总线512访问的代码和数据506。存储器504还可以包括操作系统508和应用程序510。应用程序510包括至少一个程序,该程序允许处理器502执行本文描述的方法。例如,应用程序510可以包括应用程序1至n,应用程序1至n还包括执行本文描述的方法的视频译码应用。装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与可操作以感测触摸输入的触敏元件组合的触敏显示器。显示器518可以经由总线512连接到处理器502。尽管在这里被描述为单个总线,但是装置500的总线512可以由多个总线组成。此外,辅助存储器514可以直接耦合到装置500的其他组件,或者可以经由网络访问,并且可以包括单个集成单元(例如存储卡)或多个单元(例如多个存储卡)。装置500因此可以以多种配置来实现。对于360度序列,可以在单个视点的所有方向上捕获场景。这可以使用彼此靠近布置并具有不同视线方向的多个相机实现。然后,将捕获的内容接合,可以认为这些内容是围绕视点的具有纹理的球,其表示360场景。然而,当前显示器和视频编解码器需要场景的平坦(2d)矩形图像。因此,需要将该球体转换成这种2d格式。进行这种转换有多种方式,包括但不限于:a)等距柱状格式涉及投影到矩形,类似于用于从地球球体生成世界地图的投影。这里,失真取决于位置。b)立方体格式涉及将球体映射到立方体的面上。每个面看起来像普通的2d图像,不存在任何可见的几何失真。然而,在两个面的边界处存在几何失真。c)二十面体格式涉及将球体映射到二十面体的面上。在两个面的边界处存在几何失真,但是因为相邻面之间的角度较小,其失真程度小于立方体格式。d)如jvet-l1004中所定义的基于等距柱状格式或立方体格式的其他格式,例如(但不限于)调整的立方体贴图投影格式、等角立方体贴图投影、混合等角立方体贴图投影、调整的等面积投影格式等。在实施例中,可以按以下方式为当前译码块从球体上的连接面或邻接面中获得样本(例如滤波器支持样本):选项1:通过直接复制来自第三2d面的样本,或如果这些样本可用或被重建,通过使用这些样本以执行环路滤波,或者选项2:通过使用几何信息来将第三2d面的样本(如果可用或被重建)投影到3d球体,基于几何信息和选择的插值滤波器将3d球体中的投影样本映射到投影格式,然后使用投影格式中的映射样本作为滤波器支持样本以执行环路滤波。在下文中,当讨论所公开的概念时,将使用立方体格式作为示例。图6a和图6b示出了立方体投影格式的示例600。图7、图8a和图8b示出了根据立方体投影格式600的球形视频的2d表示的示例700、800、850。在这些示例中,面包括前面、后面、左面、右面、底面、以及顶面。此外,在这些示例中,面边界或边缘使用连续编号1至12以及连续编号1’至12’标记,使得一对边界(具有给定编号的一个边界和具有同一编号和撇号的另一边界)构成3d立方体投影格式中的邻接或对应边界。例如,如图6b所示,边界6和6’构成3d立方体投影格式中的邻接边界。类似地,边界5和5’构成3d立方体投影格式中的邻接边界,等等。这里,术语“边界”和“边缘”可以互换使用。当360度的内容映射到2d表示时,在内容中引入了球体上不存在的不连续性。图7示出了非紧凑立方体布局或2d表示,其中,尽可能保留了立方体面的连通性。换句话说,立方体被展开成使得所有的边仍然如同在3d中连接一样在2d中连接。然而,该格式存在两个未使用区域,右上区域(由3、3’、1’、2’围绕)和左下区域(由10、10’、11、12围绕)。因此,可能更适合使用紧凑立方体格式,图8a和图8b示出了紧凑立方体格式的示例。图8a和图8b示出了紧凑立方体格式的不同边界类型,其可以在环路滤波期间处理。连续边界(虚线805、806)是在3d立方体投影格式及其2d表示中均彼此连接的面之间的边界。不连续边界(点虚线807)是在3d立方体投影格式中彼此不连接但在其2d表示中彼此连接的面之间的边界。在图8a和图8b的示例中,与帧边界对齐的至少一些面边界(点线803、804)可以不进行环路滤波。此外,在图8a和图8b的示例中,与帧边界对齐的至少一些面边界(线801、802)可以进行环路滤波。相应地,在图8a的示例中,面边界4和4’、7和7’、8和8’、9和9’是连续的,而面边界10和12’、11和5、12和2是不连续的边界。在图8b的示例中,面边界3和3’、7和7’、5和5’、12和12’是连续的,而面边界1和10’、9’和1’、8和9是不连续的边界。图1a至图5中描述的系统和装置还可以用于维持不连续边界样本信息,该信息指示哪些样本位于一个或多个不连续边界上。另外/替代地,图1a至图5中描述的系统或装置可以用于维持重建状态信息,该信息指示用于由不连续边界样本信息指示的样本的环路滤波的相邻样本是否已经被重建。例如,可以按以下两个方式之一实现重建状态信息的维护:1.即时(onthefly):使用关于面布置的知识以及块的处理顺序(即,是否有条带/图块)。然后,可以推导出连接的相邻块是否已经被解码以及是否因此可用,或者2.为面边界的块存储标志。这可以在译码块级别上完成。在块被重建后,可以将该标志设为真。当所有连接的相邻块的标志都设为真后,可以执行环路滤波。为了改进运动补偿,使用每个立方体的面的四个相邻面扩展每个立方体面(图9)。这里,术语“相邻面”指的是在组装的立方体中共享边界的面。注意,这些面在译码布置中不一定共享边界。可以用“未译码”切片解决的一个问题是基于立方体的投影格式中的360°视频的几何填充。使用几何填充,可以改进跨面边界的帧间预测性能。特别地,在本发明实施例中,未保存有译码的图像数据的一个或多个条带可以保存有用于这种几何填充的填充数据。通过在运动矢量跨越面边界时检测并即时投影所需样本,几何填充可以在块级别上实现。但这存在的问题是,对于只是特定种类的内容所需的工具,其影响块级别上的视频译码方案。一种更简单的实施方式是每个立方体面具有单独的参考图像,并基于块的位置来选择所使用的图像。这种高级别方案需要大量的额外存储,需要6个参考图像而不是一个。还要注意,对于这种情况,需要低级别的改变:基于块的位置改变所使用的图像。图像级别的方法可以用于在编码器和解码器进行几何填充。为了减少所需存储,在图像缓冲区中,每个编码面被样本区域围绕,该区域不进行编码,而是仅用于生成几何填充。为了实现这种区域的生成,在本公开中使用“未译码”条带。图10a是示出包括填充空间的布置(用于编码或解码)的示例的示意图。图像17/31可以被划分成一个或多个条带101a、101b。图像17/31包括保存有译码的图像数据的一个或多个条带101a。图像17/31可以包括未保存有译码的图像数据的一个或多个条带101b。条带101a、101b可以是矩形的。条带101a、101b可以垂直跨越图像,或者可以水平跨越图像。每个条带101a、101b可以包括一个或多个图块102。图块102可以保存有译码的图像数据(深色部分)或可以未保存有译码的图像数据(白色部分)。在图10a中,作为示例,如果条带101a/101b的图块102保存/未保存有译码的图像数据,则整个条带101a/101b分别保存/未保存有译码的图像数据。例如,填充的立方体面可以放置在图像缓冲器中,使得仅主面是译码图块102(深色部分),而填充区域位于“未译码”条带101b(白色部分)中。图10a示出了包括填充空间的面的立方体面布置,深色部分表示主面,并且需要被译码(保存有译码的图像数据的图块102);而白色部分表示填充区域,并且不需要被译码,但可以被译码。图10b是示出包括填充空间的布置的另一示例的示意图。与图10a一样,图像17/31可以被划分成一个或多个条带101a、101b。同样,条带101a、101b可以是矩形的,和/或条带101a、101b可以垂直跨越图像或可以水平跨越图像,和/或每个条带101a、101b可以包括一个或多个图块102。在图10b的示例中,填充的立方体面可以放置在图像缓冲器中,使得仅主面是译码图块102,而填充区域位于“未译码”条带101b中。图10示出了包括填充空间的面的立方体面布置,深色部分表示主面并且需要被译码;而白色部分表示填充区域并且不需要被译码。深色部分可以称为保存有译码的图像数据的图块102或条带101a。白色部分可以称为“未译码”图块102或条带101b,或可以称为未保存有译码的图像数据的图块102或条带101b。这使得能够非常简单地描述可以利用填充空间的其他过程:·可以在缓冲器级别上执行几何填充。不需要修改ctu级别上的帧间预测过程。·通过使用3d相邻面的非重投影样本填充填充区域并在面边界上应用环路滤波器,可以执行面边界滤波。通过在图块被解码之前使用3d相邻面的非重投影样本填充填充区域,还可以应用几何纠正的帧内预测。发信令通知未译码区域:jvet-n1001-v6(“多功能视频译码(草案5)”)可以用作基础。然而,本发明实施例不限于此。在解码侧,本发明实施例可以分别包括用于解码的设备400、用于解码的方法120、以及解码器30。在编码侧,本发明实施例可以分别包括用于编码的设备400、用于编码的方法110、以及编码器20。该草案支持将图像划分为矩形条带。因此,本发明实施例被配置为将图像17/31划分成一个或多个条带101a、101b。该一个或多个条带101a、101b可以形成为矩形。每个条带101a、101b可以包括一个或多个图块102。一个或多个条带101a可以保存有译码的图像数据。此外,保存有译码的图像数据的一个或多个条带101a可以形成子图像,其中,子图像覆盖图像17/31的矩形区域。本发明实施例支持图块粒度的未译码区域。特别地,一个或多个条带101b可以未保存有译码的图像数据。为了比特流一致性,实施例可以(但不限于)考虑以下限制:·如果条带101a中的图块102被编码,则整个条带101a处于译码区域。特别地,如果给定条带101a中的至少一个图块102保存有译码的图像数据,则整个给定条带101a保存有译码的图像数据。·如果未译码图块102是条带101b的一部分,则整个条带101b是未译码区域。特别地,如果给定条带101b中的至少一个图块102未保存有译码的图像数据,则整个给定条带101b未保存有译码的图像数据。·保存有未译码区域的条带101b从比特流21中省略。然而,用于编码的设备20也可以对未保存有译码的图像数据的一个或多个条带101b进行编码。·保存有未译码区域的条带101b,尤其是未保存有译码的图像数据的一个或多个条带101b,可以保存有用于几何填充的填充数据,或可以保存有条带头数据(例如,比较下表)。以下给出了用于发信令通知未译码区域的可能语法和语义(用斜体标记相对于jvet-n1001-v6的更改)。其他实施例可以使用不同的语法和语义。发信令通知未译码图块或条带:以下描述了图像参数集rbsp语法allow_uncoded_areas_flag等于1指定涉及pps的图像的一个或多个图块可以是未译码的。allow_uncoded_areas_flag等于0指定涉及pps的图像的图块都不是未译码的。tile_is_coded_flag[i]等于1指定id为i的图块保存有ctu数据。tile_is_coded_flag等于0指定id为i的图块未保存有ctu数据。缓冲器中的对应区域为空,并且对于亮度分量,初始化为常数值(1<<(bitdepthy–1)),对于色度分量(如果存在),初始化为常数值(1<<bitdepthc-1))。当tile_is_coded_flag不存在时,可以推断出其等于1。对于一致的比特流,每个译码条带完全由译码图块组成,即,对于译码条带中的每个图块,tile_is_coded_flag需要为1(完全由未译码图块组成的条带不会在比特流中编码)。以下描述了上述“发信令通知未译码区域”的替代方案,特别地,描述了发信令通知空图块的示例:以下描述了图像参数集rbsp语法sps_360_video_enabled_flag等于1指定发信令通知了360°几何结构并且360°译码工具可以用于该视频。sps_360_video_enabled_flag等于0指定不发信令通知360°几何结构并且360°译码工具不用于该视频。pps_360_video_geometry_type指定360°视频的几何类型。表1中指定了pps_360_video_geometry_type的值。表1–pps_360_video_geometry_type的解释值描述0等距柱状投影1立方体贴图投影/format_360_cmp2混合等角立方体贴图投影/format_360_hec3等角立方体贴图投影/format_360_eacunit_cube_packing_width和unit_cube_packing_height分别指定相对投影图像样本单元中的投影图像的宽度和高度。unit_cube_packing_width和unit_cube_packing_height的值均应大于0。unit_cube_packing_width除以3应等于unit_cube_packing_height除以2。coded_cube_packing_width和coded_cube_packing_height分别指定相对封装图像样本单元中的封装立方体面的宽度和高度。packed_picture_width和packed_picture_height的值均应大于0。cube_face_transform_type[i]指定待应用于第i个立方体面以重映射到第i个单元立方体面的旋转和镜像。当转换是从译码立方体面到单位立方体面,并且cube_face_transform_type[i]指定了旋转和镜像时,旋转在镜像之前应用。当转换是从单位立方体面到译码立方体面,并且cube_face_transform_type[i]指定了旋转和镜像时,镜像在旋转之前应用。在这种情况下,其他旋转角度为负。表2中指定了cube_face_transform_type[i]的值。表2–cube_face_transform_type[i]的值值描述0无变换1水平镜像2旋转180度(逆时针)3在水平镜像之前旋转180度(逆时针)4在水平镜像之前旋转90度(逆时针)5旋转90度(逆时针)6在水平镜像之前旋转270度(逆时针)7旋转270度(逆时针)coded_face_width[i]指定第i个立方体面的宽度,以亮度样本为单位。coded_face_width[i]应不等于0,并且应是mincbsizey的整数倍。coded_face_width[i]应小于pic_width_in_luma_samples。coded_face_height[i]指定第i个立方体面的高度,以亮度样本为单位。coded_face_height[i]应不等于0,并且应是mincbsizey的整数倍。coded_face_height[i]应小于pic_height_in_luma_samples。coded_face_top[i]指定第i个立方体面的上方亮度样本行,以亮度样本为单位。coded_face_top[i]的范围应是0到pic_height_in_luma_samples。coded_face_left[i]指定第i个立方体面的最左亮度样本行,以亮度样本为单位。coded_face_left[i]的范围应是0到pic_width_in_luma_samples。cube_face_padding_size[i]指定缓冲器中在每侧上填充第i个立方体面的亮度样本的量。缓冲器中的对应图块未保存有译码样本,即,对于这些图块,tile_coded_flag必须等于0。unit_face_top[i]和unit_face_left[i]分别指定投影图像内的第i个投影区域的上方样本行和最左样本列。unit_face_top[i]和unit_face_left[i]在相对投影图像样本单元中指示。注1–两个投影区域可能不彼此部分重叠或完全重叠。以下给出了用于发信令通知空图块的可能语法和语义。语法:语义:1.tile_coded_flag等于1指定该图块保存有ctu数据。tile_coded_flag等于0指定该图块未保存有ctu数据。缓冲器中的对应区域为空。当tile_coded_flag不存在时,推断其等于1。环路滤波器在未译码区域的边界处的处理未译码区域的边界上禁用环路滤波器。将条件添加到每个环路滤波器以确保这一点。应当注意,仍然可以定义一类新的环路滤波器,用于处理未译码区域的边界。尽管当前的环路滤波器可以在块级别上执行,但是这种新的环路滤波器将必须在整个图像被重建之后执行。特别地,根据本发明实施例的设备(编码或解码)可以被配置为在未保存有译码的图像数据的条带的边界处禁用环路内滤波器。去块滤波器去块滤波器过程应用于图像的所有译码子块边缘和变换块边缘,除了以下类型的边缘:–在图像的边界处的边缘,–当pps_loop_filter_across_virtual_boundaries_disabled_flag等于1时与图像的虚拟边界一致的边缘,–当allow_uncoded_areas_flag等于1时与未译码区域的边界一致的边缘,–当loop_filter_across_bricks_enabled_flag等于0时与砖块(brick)边界一致的边缘,–当loop_filter_across_slices_enabled_flag等于0时与条带边界一致的边缘,–与slice_deblocking_filter_disabled_flag等于1的条带的上边界或左边界一致的边缘,–slice_deblocking_filter_disabled_flag等于1的条带内的边缘,–不对应于所考虑分量的8x8样本网格边界的边缘,–不是相关联变换单元的边缘的色度变换块的边缘。样本自适应偏移对于每个译码单元和由颜色分量索引cidx指示的译码单元的每个颜色分量的每个译码块,其中,颜色分量索引cidx的范围为从firstcompidx到lastcompidx(含),译码块宽度为ncbw,译码块高度为ncbh,译码块的左上样本的位置为(xcb,ycb),当edgetype等于edge_ver并且xcb%8等于0或者当edgetype等于edge_hor并且ycb%8等于0时,通过以下有序步骤对边缘进行滤波:1.如下导出变量filteredgeflag:–如果edgetype等于edge_ver并且以下条件中的一个或多个为真,则filteredgeflag设为等于0:–当前译码块的左边界是图像的左边界。–当前译码块的左边界是砖块(brick)的左边界,并且loop_filter_across_bricks_enabled_flag等于0。–当前译码块的左边界是条带的左边界,并且loop_filter_across_slices_enabled_flag等于0。–当前译码块的左边界与未译码区域的边界一致,并且allow_uncoded_areas_flag等于1。–当前译码块的左边界是图像的垂直虚拟边界之一,并且pps_loop_filter_across_virtual_boundaries_disabled_flag等于1。–否则,如果edgetype等于edge_hor并且以下条件中的一个或多个为真,则变量filteredgeflag设为等于0:–当前亮度译码块的上边界是图像的上边界。–当前译码块的上边界是砖块的上边界,并且loop_filter_across_bricks_enabled_flag等于0。–当前译码块的上边界是条带的上边界,并且loop_filter_across_slices_enabled_flag等于0。–当前译码块的上边界与未译码区域的上边界一致,并且allow_uncoded_areas_flag等于1。–当前译码块的上边界是图像的水平虚拟边界之一,并且pps_loop_filter_across_virtual_boundaries_disabled_flag等于1。–否则,filteredgeflag设为等于1:否则,如果saotypeidx[cidx][rx][ry]等于2,则应用以下有序步骤:1.基于saoeoclass[cidx][rx][ry],在表格8-21中指定hpos[k]和vpos[k](k=0..1)的值。2.如下导出变量edgeidx:–如下导出修改的样本位置(xsik′,ysjk′)和(xyik′,yyjk′):(xsik′,ysjk′)=(xsi+hpos[k],ysj+vpos[k])(8-1158)(xyik′,yyjk′)=(cidx==0)?(xsik′,ysjk′):(xsik′*subwidthc,ysjk′*subheightc)(8-1159)–如果对于所有样本位置(xsik′,ysjk′)和(xyik′,yyjk′)(k=0..1),以下条件中的一个或多个为真,则edgeidx设为等于0:–位置(xsik′,ysjk′)处的样本在图像边界之外。–loop_filter_across_slices_enabled_flag等于0并且位置(xsik′,ysjk′)处的样本属于不同条带。–loop_filter_across_bricks_enabled_flag等于0并且位置(xsik′,ysjk′)处的样本属于不同砖块。–allow_uncoded_areas_flag等于1并且位置(xsik′,ysjk′)处的样本属于未译码区域。–否则,如下导出edgeidx:–应用以下内容:edgeidx=2+sign(recpicture[xsi][ysj]-recpicture[xsi+hpos[0]][ysj+vpos[0]])+sign(recpicture[xsi][ysj]-recpicture[xsi+hpos[1]][ysj+vpos[1]])(8-1160)–当edgeidx等于0、1、或2时,如下修改edgeidx:edgeidx=(edgeidx==2)?0:(edgeidx+1)(8-1161)自适应环路滤波器–如下导出给定亮度样本阵列recpicture内的每个对应亮度样本(x,y)的位置(hx+i,vy+j)(i,j=-3..3):–如果allow_uncoded_areas_flag等于1并且位置xctb–1属于未译码区域,则以下内容适用:boundaryposx=xctbhx+i=clip3(boundaryposx,pic_width_in_luma_samples-1,xctb+x+i)(8-1175)–否则,如果allow_uncoded_areas_flag等于1并且位置xctb+ctbsizey属于未译码区域,则以下适用:boundaryposx=xctb+ctbsizeyhx+i=clip3(0,boundaryposx-1,xctb+x+i)(8-1176)–如果allow_uncoded_areas_flag等于1并且位置yctb-1属于未译码区域,则以下适用:boundaryposy=yctbvy+j=clip3(boundaryposy,pic_height_in_luma_samples-1,yctb+y+j)(8-1178)–否则,如果allow_uncoded_areas_flag等于1并且位置yctb+ctbsizey属于未译码区域,则以下适用:boundaryposy=yctb+ctbsizeyvy+j=clip3(0,boundaryposy-1,yctb+y+j)(8-1179)如下导出给定亮度样本阵列recpicture内的每个对应亮度样本(x,y)的位置(hx+i,vy+j)(i,j=-2..5):–如果allow_uncoded_areas_flag等于1并且位置xctb-1属于未译码区域,则以下适用:boundaryposx=xctbhx+i=clip3(boundaryposx,pic_width_in_luma_samples-1,xctb+x+i)(8-1175)–否则,如果allow_uncoded_areas_flag等于1并且位置xctb+ctbsizey属于未译码区域,则以下适用:boundaryposx=xctb+ctbsizeyhx+i=clip3(0,boundaryposx-1,xctb+x+i)–否则,如果pps_loop_filter_across_virtual_boundaries_disabled_flag等于1并且对于任何n=0..pps_num_ver_virtual_boundaries–1,xctb+x-ppsvirtualboundariesposx[n]大于或等于0并且小于2,则以下适用:hx+i=clip3(ppsvirtualboundariesposx[n],pic_width_in_luma_samples-1,xctb+x+i)(8-1186)–否则,如果pps_loop_filter_across_virtual_boundaries_disabled_flag等于1并且对于任何n=0..pps_num_ver_virtual_boundaries–1,ppsvirtualboundariesposx[n]-xctb-x大于0且小于6,则以下适用:hx+i=clip3(0,ppsvirtualboundariesposx[n]-1,xctb+x+i)(8-1187)–否则,以下适用:hx+i=clip3(0,pic_width_in_luma_samples-1,xctb+x+i)(8-1188)–如果allow_uncoded_areas_flag等于1并且位置yctb-1属于未译码区域,则以下适用:boundaryposy=yctbvy+j=clip3(boundaryposy,pic_height_in_luma_samples-1,yctb+y+j)(8-1178)–否则,如果allow_uncoded_areas_flag等于1并且位置yctb+ctbsizey属于未译码区域,则以下适用:boundaryposy=yctb+ctbsizeyvy+j=clip3(0,boundaryposy-1,yctb+y+j)(8-1179)对于滤波重建色度样本alfpicture[x][y]的导出,当前色度译码树块内的每个重建色度样本recpicture[x][y]如下进行滤波,其中x=0..ctbwidthc–1,y=0..ctbheightc–1:–如下导出给定色度样本阵列recpicture内的每个对应色度样本(x,y)的位置(hx+i,vy+j)(i,j=-2..2):–如果allow_uncoded_areas_flag等于1并且位置xctbc–1属于未译码区域,则以下适用:boundaryposxc=xctbchx+i=clip3(boundaryposxc,pic_width_in_luma_samples/subwidthc-1,xctbc+x+i)(8-1175)–否则,如果allow_uncoded_areas_flag等于1并且位置xctbc+ctbwidthc属于未译码区域,则以下适用:boundaryposxc=xctbc+ctbwidthchx+i=clip3(0,boundaryposxc-1,xctbc+x+i)(8-1175)–否则,如果pps_loop_filter_across_virtual_boundaries_disabled_flag等于1并且对于任何n=0..pps_num_ver_virtual_boundaries–1,xctbc+x-ppsvirtualboundariesposx[n]/subwidthc大于或等于0且小于2,则以下适用:hx+i=clip3(ppsvirtualboundariesposx[n]/subwidthc,pic_width_in_luma_samples/subwidthc-1,xctbc+x+i)(8-1225)–否则,如果pps_loop_filter_across_virtual_boundaries_disabled_flag等于1并且对于任何n=0..pps_num_ver_virtual_boundaries–1,ppsvirtualboundariesposx[n]/subwidthc-xctbc–x大于0且小于3,则以下适用:hx+i=clip3(0,ppsvirtualboundariesposx[n]/subwidthc-1,xctbc+x+i)(8-1126)–否则,以下适用:hx+i=clip3(0,pic_width_in_luma_samples/subwidthc-1,xctbc+x+i)(8-1227)–如果allow_uncoded_areas_flag等于1并且位置yctbc–1属于未译码区域,则以下适用:boundaryposyc=yctbcvy+j=clip3(boundaryposyc,pic_height_in_luma_samples/subheightc-1,yctbc+y+j)(8-1178)–否则,如果allow_uncoded_areas_flag等于1并且位置yctbc+ctbheightc属于未译码区域,则以下适用:boundaryposy=yctbc+ctbheightcvy+j=clip3(0,boundaryposyc-1,yctbc+y+j)(8-1179)图11a示出了根据实施例的用于对图像17进行编码的方法110。方法110可以由编码器20执行或在编码器20中执行。方法110包括步骤111:将图像17划分成一个或多个条带101a、101b。每个条带101a、101b包括一个或多个图块102。一个或多个条带101a保存有译码的图像数据。此外,方法110包括步骤112:对保存有译码的图像数据的一个或多个条带101a进行编码。图11b示出了根据实施例的用于对图像31进行解码的方法120。方法120可以由解码器30执行或在解码器30中执行。方法120包括步骤121:将图像31划分成一个或多个条带101a、101b。每个条带101a、101b包括一个或多个图块102。一个或多个条带101a保存有译码的图像数据。此外,方法110包括步骤122:对保存有译码的图像数据的一个或多个条带101a进行解码。图11c示出了示例方法1100的流程图,方法1100涉及对具有未译码图块102的图像进行编码。同样如图11b所示,在步骤1101,帧被划分成图块102。每个立方体面由保存有译码ctu数据的一个或多个图块102表示。填充区域(例如,未保存有译码的图像数据的条带101b)由未译码图块102表示。在步骤1102,每个译码图块102被划分成非重叠块。对于每个块,减去预测块。在步骤1103,对块进行变换、量化、和熵编码。参考解码器可将已译码的块提供给编码器。参考解码器执行反变换和量化(在此可能引入量化误差)。在步骤1104,使重建块可用于同一帧中其他块的帧内预测。在步骤1105,该块可以进行环路滤波(由编码器选择)并存储在参考图像缓冲器中。在步骤1106,解码器30也需要该消息,因此该消息也进行熵译码。每当对新图像进行编码时,对于参考图像,在执行运动估计之前,在面边界旁的“未译码”图块102中应用几何填充。在步骤1107,其随后还可以用于其他帧的帧间预测。编码器需要选择块和用作特定块的预测的模式(帧内/帧间)。图12a示出了示例方法1200的流程图,方法1200涉及对具有未译码图块102的图像进行解码。同样如图12b所示,对于参考图像,在执行运动补偿之前,对面边界旁的“未译码”图块区域(例如,未保存有译码的图像数据的条带101b)应用几何填充。划分成译码图块和“未译码”图块102的帧被解码。对于译码图块102中的每个块,执行以下内容:从熵译码器读取块的残差以及用于帧内预测和帧内预测的对应参数(步骤1201)。计算该块的反变换和量化,以便重建该块(步骤1202)。然后,将残差加到获得的预测(步骤1203)。使重建块可用于同一帧中的其他块的帧内预测(步骤1204)。另外,该块可以进行环路滤波(由编码器选择)并存储在参考图像缓冲器中(步骤1205)。在步骤1206,解码器也需要该信息,因此该信息也进行熵译码。每当对新图像进行解码,对于参考图像,在执行运动估计之前,在面边界旁的“未译码”图块102区域中应用几何填充。在步骤1207,其随后还可以用于其他帧的帧间预测。帧以输出顺序从缓冲器中输出。作为示例,在步骤1202中提及的预测(部分帧间预测)涉及几何填充和未译码图块,以跨不连续面边界执行运动补偿。环路滤波器也涉及几何填充和未译码图块,例如以在步骤1206和步骤1207跨不连续面边界执行环路滤波。以下描述360°视频的参考图像几何填充过程:a.1.2360°视频的参考图像几何填充过程该过程的输入是pic_width_in_luma_samples乘pic_height_in_luma_samples的亮度样本阵列refpiclxl以及两个picwidthinsamplesc乘picheightinsamplesc的色度样本阵列refpiclxcb和refpiclxcr。a.1.2.1.1生成立方体面的填充区域的亮度样本这一条指定生成译码立方体面的填充区域的亮度样本的语义。offsetx设为等于0.5,offsety设为等于0.5。以下适用于每个封装填充的立方体面n(n为从0到5,包含0和5):–对于每个第n个封装填充的立方体面,以下适用:paddedfacetop设为等于coded_face_top[n]-cube_face_padding_size[n],paddedfaceleft设为等于coded_face_top[n]-cube_face_padding_size[n],paddedfacewidth设为等于coded_face_width[n]+2*cube_face_padding_size[n],paddedfaceheight设为等于coded_face_height[n]+2*cube_face_padding_size[n]。变量unitfacewidth、unitfaceheight、unitfacecolumn、和unitfacecolumn如下设置:unitfacewidth=unit_cube_packing_width/3unitfaceheight=unit_cube_packing_height/2unitfacecolumn=floor(unit_face_left÷lw)unitfacerow=floor(unit_face_top÷lh)变量unitfacepaddingwidth和unitfacepaddingheight如下设置:对于范围分别为[paddedfaceleft,paddedfaceleft+paddedfacewidth]和[paddedfaceleft,paddedfacetop+paddedfaceheight]的每个样本位置(xcodedface,ycodedface),以下适用:调用过程a.1.2.1.1.3,使用xcodedface、ycodedface、paddedfaceleft、paddedfacetop、paddedfacewidth、paddedfaceheight、cube_face_padding_size[n]作为输入。如果isinface的值等于0,则以下适用:x设为等于xcodedface-coded_face_left[n]。y设为等于ycodedface-coded_face_top[n]。调用a.1.2.1.1.4条,使用x、y、coded_face_width[n]、coded_face_height[n]、unitfacewidth、unitfaceheight、transformtype[n]、offsetx、offsety作为输入,并且输出被分配给样本位置(hpos,vpos)。xunitface设为等于unit_face_left[n]+hpos。yunitface设为等于unit_face_top[n]+vpos。调用a.1.2.1.1.5条,使用xunitface、yunitface、unitfacecolumn、unitfacerow、unitfacewidth、unitfaceheight、unitfacepaddingwidth、unitfacepaddingheight、pps_360_video_geometry_type作为输入,并且输出被分配给位置(xpos,ypos,zpos)。调用a.1.2.1.1.6条,使用位置(xpos,ypos,zpos)、unitfacewidth、unitfaceheight作为输入,并且输出被分配给(hpossrcunitface,vpossrcunitface)。facesrcidx设为等于lookuptab(unitfacecolumnsrc,unitfacerowsrc)。x2设为等于hpossrcunitface-unit_face_left[facesrcidx]。y2设为等于vpossrcunitface-unit_face_top[facesrcidx]。调用a.1.2.1.1.7条,使用(x2,y2)、coded_face_width[n]、coded_face_height[n]、unitfacewidth、unitfaceheight、transformtype[n]、offsetx、offsety作为输入,并且输出被分配给(hpos3,vpos3)。hpossrccoded设为等于hpos3+coded_face_left[facesrcidx]。vpossrccoded设为等于vpos3+coded_face_top[facesrcidx]。调用xxx条,使用(hpossrccoded,vpossrccoded)作为输入,并且输出被分配给由(xcodedface,ycodedface)指定的样本。a.1.2.1.2检查位置是否在立方体面或填充区域内该过程的输入是:–封装区域内的样本位置(x,y),其中,x和y在相对封装图像样本单元中,而样本位置是封装图像内的整数样本位置,相对封装图像样本单元中的填充立方体面的位置(paddedfaceleft,paddedfacetop)和尺寸(paddedfacewidth,paddedfaceheight),填充的尺寸(facepaddingsize)。该过程的输出是:–布尔值isinface,指示样本位置是在面的译码区域内(isinface==1)还是在面的填充区域内(ininface==0)。如下导出输出:a.1.2.1.3样本位置从译码立方体面坐标转换到单元立方体面坐标该过程的输入是:–封装区域内的样本位置(x,y),其中,x和y在相对封装图像样本单元中,而样本位置是封装图像内的整数样本位置,–相对投影图像样本单元内的投影区域的宽和高(projregwidth,projregheight),–相对封装图像样本单元内的封装区域的宽和高(projregwidth,projregheight),–变换类型(transformtype),以及–分别在水平和垂直相对封装图像样本单元中的范围为0(含)到1(含)的采样位置的偏移值(offsetx,offsety)。注-等于0.5的offsetx和offsety指示采样位置处于封装图像样本单元中的样本的中心点。该过程的输出是:–相对投影图像样本单元中的投影区域内的样本位置的中心点(hpos,vpos),其中,hpos和vpos可以具有非整数实值。如下导出输出:a.1.2.1.4将一个样本位置投影到单元立方体的面平面该过程的输入是:–相对投影图像样本单元中分别沿横轴和纵轴的样本位置的中心点(hpos,vpos),其中,hpos和vpos可以具有非整数实值。–unitfacecolumn和unitfacerow,指定了样本位置所属的单元面的位置。–unitfacewidth和unitfaceheight,分别是相对投影图像样本单元中的单像投影亮度立方体面的宽和高,以及–unitfacepaddingwidth和unitfacepaddingheight,分别是相对投影图像样本单元中的单像投影亮度立方体面的填充宽度和填充高度,以及–geometrytype,指定了所使用的基于立方体的译码几何结构的类型。geometrytype的值在xxx中阐述。以及该过程的输出是:相对投影图像样本单元中分别沿x轴、y轴、z轴的样本位置的相对立方体坐标(x,y,z),其中,x、y、z可以具有非整数实值。如下导出样本位置的投影:a.1.2.1.5相对立方体坐标到一个相对投影图像样本位置的投影该过程的输入是:–相对投影图像样本单元中分别沿x轴、y轴、z轴的样本位置的相对立方体坐标(xpos,ypos,zpos),其中,xpos、ypos、zpos可以具有非整数实值。unitfacewidth和unitfaceheight,分别是相对投影图像样本单元中的单像投影亮度立方体面的宽度和高度。该过程的输出是:相对投影图像样本单元中分别沿横轴和纵轴的样本位置的中心点(hpos,vpos),其中,hpos和vpos可以具有非整数实值。如下导出样本位置的投影:a.1.2.1.6将样本位置从单元立方体面坐标转换到译码立方体面坐标该过程的输入是:–相对投影图像样本单元中的投影区域内的样本位置的中心坐标(hpos,vpos),其中,hpos和vpos可以具有非整数实值。–相对投影图像样本单元中的投影区域宽度和高度(projregwidth,projregheight),–相对封装图像样本单元中的封装区域的宽度和高度(packedregwidth,packedregheight),–变换类型(transformtype),以及–分别在水平和垂直相对封装图像样本单元中的范围从0(含)到1(含)的样本位置的偏移值(offsetx,offsety)。注-offsetx和offsety等于0.5指示采样位置位于封装图像样本单元中的样本的中心点。该过程的输出是:–封装区域内的样本位置(x,y),其中,x和y在相对封装图像样本单元中。如下导出输出:一种使用“未译码”条带发信令通知图像缓冲器中的未译码区域的有效方法。这些区域用于生成附加数据,附加数据可以用于预测或环路滤波。这允许非常简单地实现和描述辅助工具,否则将需要在块级别上实现。图13a是不使用“未译码”图块进行几何填充的情况下划分图块的示例。而图13b是使用“未译码”图块进行几何填充的情况下划分图块的示例。比较图13b和图13a,本发明实施例可以在块级别上没有改变的情况下显著降低接缝伪影。本发明的实施例包括计算机程序,或者是计算机程序,该计算机程序包括当在计算机上执行时用于执行本文描述的任何方法的程序代码。本发明的实施例包括计算机可读介质,或者是计算机可读介质,该计算机可读介质包括程序代码,该程序代码在由处理器执行时使计算机系统执行本文所述的任何方法。本领域技术人员将理解,各个附图中的“框”(“单元”)代表或描述了本发明实施例的功能(而不一定是硬件或软件中的各个“单元”),因此等同地描述了装置实施例以及方法实施例的功能或特征(单元等效于步骤)。如上所述,用于图像译码的布置可以以诸如上述视频编码装置或视频解码装置之类的硬件或方法来实现。该方法可以被实现为计算机程序。然后在计算设备中执行计算机程序。诸如视频解码装置、视频编码装置、或任何其他对应的图像译码装置之类的装置用于执行上述方法之一。该装置包括任何必要的硬件组件。这些组件可以包括至少一个处理器、至少一个存储器、至少一个网络连接、总线等。代替专用硬件组件,可以与其他组件共享内存或处理器,或者在云服务、集中式计算单元、或其他可通过网络连接使用的资源上进行访问。取决于本发明方法的某些实施要求,本发明方法可以以硬件或软件或其任何组合来实施。实施方式可以使用数字存储介质(特别是软盘、cd、dvd、或蓝光光盘)、rom、prom、eprom、eeprom、或具有在其上存储的电子可读控制信号的闪存来执行,这些控制信号能够与可编程计算机系统合作,以便执行至少一种本发明方法的实施例。因此,本公开的另一实施例是或包括一种计算机程序产品,该计算机程序产品具有存储在机器可读载体上的程序代码,当该计算机程序产品在计算机上运行时,该程序代码可用于执行至少一种本发明的方法。换句话说,因此,本发明方法的实施例是或包括一种计算机程序,该计算机程序具有用于在计算机程序在计算机、处理器等上运行时执行至少一种本发明方法的程序代码。因此,本公开的另一实施例是或包括一种机器可读数字存储介质,该机器可读数字存储介质包括存储在其上的计算机程序,当该计算机程序产品在计算机、处理器等上运行时,该计算机程序用于执行本发明的至少一种方法。因此,本公开的另一实施例是或包括表示计算机程序的数据流或信号序列,当计算机程序产品在计算机、处理器等上运行时,该数据流或信号序列可操作用于执行至少一种本发明的方法。因此,本公开的另一实施例是或包括适于执行本发明方法中的至少一个的计算机、处理器、或任何其他可编程逻辑设备。因此,本公开的另一实施例是或包括计算机、处理器、或在其上存储有计算机程序的任何其他可编程逻辑设备,当计算机程序产品在计算机、处理器、或任何其他可编程逻辑设备(例如fpga(现场可编程门阵列)或asic(专用集成电路))上运行时,该计算机程序可操作用于执行至少一种本发明的方法。尽管参考特定实施例具体示出和描述了上述内容,但是本领域技术人员应当理解,在不脱离其精神和范围的情况下,可以对形式和细节进行各种其他改变。因此,应当理解,在不脱离本文所公开的和所附权利要求书所理解的较宽泛概念的前提下,可以进行各种改变以适应不同的实施例。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1