基于块形状的视频编码和解码的方法和装置

文档序号:1358578 发布日期:2020-07-24 浏览:12次 >En<

阅读说明:本技术 基于块形状的视频编码和解码的方法和装置 (Method and apparatus for block shape based video encoding and decoding ) 是由 F.拉卡普 G.拉思 F.厄本 于 2018-12-04 设计创作,主要内容包括:提供了用于视频编码和解码的方法(1300,1500)和装置(700,1400,1600)。视频编码方法(1300)包括访问(1310)用于预测视频的图片中的块的参考样本集,基于块的形状处理(1320)该参考样本集,基于处理的参考样本集生成(1330)该块的预测块,以及基于预测块对该块进行编码。还描述了被格式化为包括编码数据的比特流、计算机可读存储介质和计算机程序产品。(Methods (1300, 1500) and apparatus (700, 1400, 1600) for video encoding and decoding are provided. A video encoding method (1300) includes accessing (1310) a set of reference samples for predicting a block in a picture of a video, processing (1320) the set of reference samples based on a shape of the block, generating (1330) a prediction block for the block based on the processed set of reference samples, and encoding the block based on the prediction block. Also described are a bitstream formatted to include encoded data, a computer-readable storage medium, and a computer program product.)

基于块形状的视频编码和解码的方法和装置

技术领域

本实施例总体上涉及视频编码和解码,尤其涉及基于块形状的块的预测。

背景技术

本文描述的任何背景信息旨在向读者介绍本领域的各个方面,这些方面可能与下面描述的本实施例相关。该讨论被认为有助于向读者提供背景信息,以便更好地理解本公开的各个方面。因此,应该理解的是,这些陈述应该从这个角度来理解。

为了实现高压缩效率,图像和视频编码方案通常采用预测和变换来利用视频内容中的空间和时间冗余。通常,帧内或帧间预测用于利用帧内或帧间相关性。然后,原始图像和预测图像之间的差异(通常表示为预测误差或预测残差)被变换、量化和熵编码。为了重构视频,通过与预测、变换、量化和熵编码对应的逆过程对压缩数据进行解码。

在高效视频编码(High Efficiency Video Coding,HEVC)标准(“ITU-T H.265,ITU电信标准化部(10/2014),系列H:视听和多媒体系统,视听服务的基础设施-运动视频的编码,高效视频编码,推荐标准ITU-T H.265”(“ITU-T H.265Telecommunicationstandardization sector of ITU(10/2014),series H:audiovisual and multimediasystems,infrastructure of audiovisual services-coding of moving video,Highefficiency video coding,Recommendation ITU-T H.265”))中,图片被分区成正方形的编码树单元(coding tree unit,CTU),编码树单元的可配置大小通常为64×64、128×128或256×256。如图1所示,CTU 110是分区成叶的四叉树的根,叶被称为编码单元(CodingUnit,CU)。对于每个CU,信令通知预测模式,该预测模式指示使用帧内预测还是帧间预测来编码该CU。如图2所示,一组连续的CTU(例如,CTU 220)可以被分组到条带210中。CU(例如,CU 230)可以被分区成一个或多个预测单元(Prediction Unit,PU),并且形成分区成变换单元(Transform Unit,TU)的四叉树(称为变换树)的根。在帧间预测中,也可以将CU非对称地细分为PU,也就是说,如果CU具有大小N×N,则PU可以具有大小N/4×N、3N/4×N、N×N/4、N×3N/4。每个PU被分配一些预测信息,例如运动信息、空间帧内预测等。PU在图1中被显示为虚线。

四叉树加二叉树(Quad-Tree plus Binary-Tree,QTBT)编码工具是新的视频编码工具,与HEVC标准的CU/PU/TU布置相比,它提供了更灵活的CTU表示和更高的压缩效率。如图3所示,四叉树加二叉树(QTBT)编码工具定义了编码树310,其中编码单元可以以四叉树和二叉树的方式被分割。图3示出了编码树单元320的示例性编码树表示,其中实线指示四叉树分区,并且虚线指示CTU 320内的CU 330的二叉分区,CU 330在空间上被嵌入在四叉树叶中。

在编码器侧决定将CTU分割成编码单元,例如通过速率失真优化过程来决定,该过程包括以最小的速率失真成本来确定CTU的QTBT表示。在QTBT表示中,CU具有正方形或矩形的形状。编码单元的大小总是2的幂,通常从4到128。CTU的QTBT分解包括两个阶段:首先以四叉树的方式将CTU分割成4个CU,然后每个四叉树叶可以进一步以二叉的方式划分成两个CU或者以四叉树的方式划分成4个CU,如图3所示。

利用QTBT表示,CU可能不会进一步被分区成PU或TU。换句话说,每个CU被认为是单个预测单元和单个变换单元。然而,如图3所示,这种QTBT表示仅允许CU的对称分割。QTBT允许的四种分割模式是:NO_SPLIT(CU不分割)、QT_SPLIT(分割成四个象限)、HOR(水平分割成两个大小相等的CU)和VER(垂直分割成两个大小相等的CU)。

最近,提出了具有新的矩形形状的CU,该CU是由被称为非对称分割模式的新的二叉分割模式产生的,如图4和图5所示。图4示出了被称为非对称分割模式的QTBT中的CU二叉分割模式,并且描绘了4个示例性分割模式410至440。在图4中,新的矩形形状包括宽度和/或高度的大小等于3·2n。此外,宽度或高度的大小为3的倍数的CU可以进一步以二叉的方式水平或垂直分割。

通过所提出的非对称二叉分割模式之一(例如HOR_UP(水平向上)410)分割大小为(w,h)(宽度和高度)的正方形CU,产生相应的矩形大小为的2个子编码单元,因此,编码器可以选择宽度或高度等于3·2n的CU。在这种情况下,可以执行大小为3的倍数的矩形块的帧内预测或帧间预测过程。另外,执行宽度或高度大小为3·2n的2D变换,并且执行随后的变换系数熵编码过程。

如图5所示的其他CU分割模式(称为水平三叉树分割模式510和垂直三叉树分割模式520)包括将CU划分成3个子编码单元(子CU),其中,在所考虑的空间划分的方向上,相应的子编码单元的大小等于父CU的大小的1/4,1/2和1/4。

发明内容

根据本公开的一方面,提供了一种视频编码方法,该方法包括:访问用于视频的图片中的块的预测的参考样本集,基于块的形状处理参考样本集,基于处理的参考样本集生成块的预测块,以及基于预测块对块进行编码。

根据本公开的一方面,提供了一种用于视频编码的装置,该装置包括:用于访问用于视频的图片中的块的预测的参考样本集的部件;用于基于块的形状处理参考样本集的部件;用于基于处理的参考样本集生成块的预测块的部件;以及用于基于预测块对块进行编码的部件。

根据本公开的一方面,提供了一种用于视频编码的装置,该装置包括处理器和耦合到处理器的至少一个存储器,该处理器被配置为访问用于视频的图片中的块的预测的参考样本集,基于块的形状处理参考样本集,基于处理的参考样本集生成块的预测块,以及基于预测块对块进行编码。

根据本公开的一方面,一种被格式化为包括表示图片的块的编码数据的比特流,该编码数据通过以下步骤被编码:访问用于视频的图片中的块的预测的参考样本集、基于块的形状处理参考样本集、基于处理的参考样本集生成块的预测块、以及基于预测块对块进行编码。

根据本公开的一方面,一种包括被格式化为包括表示图片的块的编码数据的比特流的信号,该编码数据通过以下步骤被编码:访问用于视频的图片中的块的预测的参考样本集、基于块的形状处理参考样本集、基于处理的参考样本集生成该的预测块、以及基于预测块对该块进行编码。

根据本公开的一方面,提供了一种视频解码方法,该方法包括:访问用于编码视频的图片中的块的预测的参考样本集、基于块的形状处理参考样本集、基于处理的参考样本集生成块的预测块,以及基于预测块对块进行解码。

根据本公开的一方面,提供了一种用于视频解码的装置,该装置包括:用于访问用于编码视频的图片中的块的预测的参考样本集的部件;用于基于块的形状处理参考样本集的部件;用于基于处理的该参考样本集生成块的预测块的部件;以及用于基于预测块对块进行解码的部件。

根据本公开的一方面,提供了一种用于视频解码的装置,该装置包括处理器和耦合到处理器的至少一个存储器,该处理器被配置为:访问用于编码视频的图片中的块的预测的参考样本集,基于块的形状处理参考样本集,基于处理的参考样本集生成块的预测块,以及基于预测块对块进行解码。

根据本公开的一方面,提供了一种计算机程序产品,其包括用于执行以下步骤的程序代码指令:访问用于视频的图片中的块的预测的参考样本集,基于块的形状处理参考样本集,基于处理的参考样本集生成块的预测块,以及基于预测块对块进行编码。

根据本公开的一方面,提供了一种计算机程序产品,其包括用于执行以下步骤的程序代码指令:访问用于编码视频的图片中的块的预测的参考样本集、基于块的形状处理参考样本集、基于处理的参考样本集生成块的预测块,以及基于预测块对块进行解码。

根据本公开的一方面,提供了一种携带软件程序的计算机可读存储介质,该软件程序包括用于执行以下步骤的程序代码指令:访问用于视频的图片中的块的预测的参考样本集,基于块的形状处理参考样本集,基于处理的参考样本集生成块的预测块,以及基于预测块对块进行编码。

根据本公开的一方面,提供了一种携带软件程序的计算机可读存储介质,该软件程序包括用于执行以下步骤的程序代码指令:访问用于编码视频的图片中的块的预测的参考样本集、基于块的形状处理参考样本集、基于处理的该参考样本集生成块的预测块,以及基于预测块对块进行解码。

以上呈现了主题的简化概述,以便提供对主题实施例的一些方面的基本理解。该概述不是主题的广泛概述。其并不旨在标识实施例的关键/重要元素或描写主题的范围。其唯一目的是以简化的形式呈现主题的一些构思,作为稍后呈现的更详细描述的序言。

参考附图,从下面对示例性实施例的详细描述中,本公开的附加特征和优点将变得显而易见。

附图说明

根据以下简要描述的示例性附图,可以更好地理解本公开:

图1说明了根据HEVC标准被分割成CU的CTU;

图2示出了根据HEVC标准将CTU分割成CU、PU和TU;

图3示出了根据QTBT工具的CTU;

图4示出了被称为非对称分割模式的、QTBT中的CU二叉分割模式;

图5示出了QTBT中的水平(左)和垂直(右)三叉树CU分割模式;

图6示出了根据本公开实施例的CU分割模式的示例性集合;

图7示出了根据本公开实施例的示例性视频编码器的简化框图;

图8示出了根据本公开实施例的示例性帧内预测模块的简化框图;

图9示出了根据本公开的当前块的示例性参考样本;

图10示出了根据HEVC标准的帧内预测方向;

图11示出了根据HEVC标准的正方形块形状的示例性帧内预测模式;

图12示出了根据本公开的矩形块形状的示例性帧内预测模式;

图13示出了根据本公开实施例的视频编码的示例性方法的流程图;

图14示出了根据本公开实施例的示例性视频解码器的简化框图;

图15示出了根据本公开实施例的视频解码的示例性方法的流程图;以及

图16示出了可以在其中实施和执行本公开的各方面的计算环境的框图。

具体实施方式

应当理解,附图中所示的元件可以以各种形式的硬件、软件或其组合来实施。优选地,这些元件在一个或多个适当编程的通用设备上以硬件和软件的组合来实施,通用设备可以包括处理器、存储器和输入/输出接口。本文,短语“耦合”被定义为直接连接或通过一个或多个中间组件间接连接的方式。这种中间组件可以包括基于硬件和软件的组件。

本说明书说明了本公开的原理。因此,应当理解,本领域技术人员将能够设计各种布置,尽管在本文中没有明确描述或示出,但是这些布置体现了本公开的原理,并且被包括在本公开的范围内。

本文列举的所有示例和条件语言都是为了教导的目的,以帮助读者理解本公开的原理和发明人为推进本领域所贡献的构思,并且被解释为不限于这些具体列举的示例和条件。

此外,本文列举本公开的原理、方面和实施例的所有陈述以及其具体示例旨在涵盖其结构和功能等同物两者。另外,其旨在这种等同物包括当前已知的等同物以及将来开发的等同物,即开发来执行相同功能的任何元件而不管其结构如何。

因此,例如,本领域技术人员将会理解,本文呈现的框图表示体现本公开原理的说明性电路的概念图。类似地,将会理解,任何流程图、状态转换图、伪代码等表示可以基本上在计算机可读介质中表示并由计算机或处理器执行的各种过程,无论是否明确示出了这样的计算机或处理器。

附图中所示的各种元件的功能可以通过使用专用硬件以及能够执行与适当软件相关联的软件的硬件来提供。当由处理器提供时,功能可以由单个专用处理器、单个共享处理器或多个单独的处理器(其中一些处理器可以被共享)提供。此外,术语“处理器”或“控制器”的明确使用不应被解释为专门指能够执行软件的硬件,并且可以隐含地包括但不限于数字信号处理器(digital signal processor,DSP)硬件、用于存储软件的只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)和非易失性存储器。

还可以包括传统的和/或定制的其他硬件。同样,附图中所示的任何开关都只是概念性的。它们的功能可以通过程序逻辑的操作、通过专用逻辑、通过程序控制和专用逻辑的交互、或者甚至手动来实施,具体技术可以由实施者选择,如从上下文更具体地理解的。

在权利要求中,表示为用于执行特定功能的装置的任何元件旨在包含执行该功能的任何方式,包括例如a)执行该功能的电路元件的组合,或者b)任何形式的软件,因此包括与用于执行该软件以执行该功能的适当电路相结合的固件、微代码等。由这样的权利要求定义的公开在于这样的事实,即由各种列举的装置提供的功能以权利要求所要求的方式被组合和放在一起。因此,可以认为能够提供这些功能的任何装置都等同于本文所示的那些装置。

应当理解,附图和描述已经被简化以示出与用于清楚理解本公开相关的元件,同时为了清楚起见,消除了在典型编码和/或解码设备中找到的许多其他元件。

应该理解,尽管术语第一和第二可以在本文中用来描述各种元件,但是这些元件不应该被这些术语限制。这些术语仅用于区分一个元素和另一元素。上文描述了各种方法,并且每个方法包括用于实现所描述的方法的一个或多个步骤或动作。除非方法的适当操作需要步骤或动作的特定顺序,否则可以修改或组合特定步骤和/或动作的顺序和/或使用。

应当理解,图片可以是单色格式的亮度样本阵列,或者是4:2:0、4:2:2和4:4:4颜色格式的两个对应的色度样本阵列和亮度样本阵列,或者是三颜色分量(例如,RGB)的三个阵列。在HEVC中,“块”寻址样本阵列(例如,亮度Y)中的特定区域,并且“单元”包括所有编码的颜色分量(亮度Y以及可能色度Cb和色度Cr)的并置块、语法元素、以及与块相关联的预测数据(例如,运动矢量)。然而,术语“块”在本文更一般地用于指块(例如,编码块(codingblock,CB)、变换块(transform block,TB)、编码组(coding group,CG)等)或单元(例如,CU)。

应当理解,图片或像素块或变换系数是二维阵列或矩阵。水平或x方向(或轴)表示宽度,垂直或y方向(或轴)表示高度。索引从0开始。x方向表示列,y方向表示行。最大的x索引是宽度–1。最大的y索引是高度–1。

在下面的部分中,词语“重构”和“解码”可以互换使用。通常但不是必须的,在编码器侧使用“重构”,而在解码器侧使用“解码”。此外,词语“编码(coded)”和“编码(encoded)”可以互换使用。此外,词语“图像”、“图片”、“帧”和“条带”(即图片的一部分)可以互换使用。此外,单词“编码”、“源编码”和“压缩”可以互换使用。

本公开针对视频编码和解码中的预测。视频压缩中的帧内预测指的是使用来自因果相邻块(causal neighbor block)的信息对像素块进行空间预测,该因果相邻块是同一帧中已经被解码的相邻块。这是强大的编码工具,因为它允许帧内的高压缩效率,并且任何时候只要没有更好的时间预测,它还允许帧间的高压缩效率。因此,帧内预测已经被包括为视频压缩标准(包括H.264/高级视频编码(AVC)、H.265/HEVC等)中的核心编码工具。在HEVC帧内预测中,根据因果相邻CU(即上侧和右上侧的CU、左侧和左下侧的CU以及左上侧的CU)来空间预测CU。

具体而言,本公开针对参考样本的平滑滤波。在HEVC和更早的视频编码标准中,目标块的帧内预测使用过滤后的参考样本。具体地,参考样本可以是例如当前块上侧的解码的像素行(或样本行)和左侧的解码的像素列。基于这些CU中的解码的像素值,编码器为目标块构建不同的预测并且选择导致最佳RD性能的预测。

在HEVC中,目标块的大小已经增加到64×64以支持对高分辨率视频的压缩。对应于该块大小,帧内预测模式的数量已经增加到35,其中一个是平面模式(索引为模式0),一个是DC模式(索引为模式1),其余33个(索引为模式2-34)是方向或角度模式。最近,正在探索具有多达131种预测模式的大小高达256×256的矩形块和块。

在HEVC和一些先前的视频编码标准中,针对每个CU信令通知帧内预测模式。根据块大小,对参考样本进行滤波。信令通知预测模式和滤波器(例如,位置相关预测组合(Position Dependent Prediction Combination,PDPC)或参考样本自适应滤波(Reference Sample Adaptive Filtering,RSAF))。

图6示出了根据本公开的CU分割模式的示例性的集合。CU拓扑的丰富集合产生编码结构,该编码结构在空间上匹配被包含在比特流的图像中的结构和不连续性。在矩形块形状(而不是传统的正方形形状)的情况下,感兴趣的是通过根据块形状(例如,水平或垂直的矩形块)以及例如帧内预测方向激活一些预测模式和滤波器来减少信令标志的数量。

本公开解决了现有技术中存在的一些缺点。具体地,在本公开的至少一些实施例中,具有形状相关模式可以导致更好的预测,并因此得到更高的编码增益。尽管该描述通常涉及帧内预测,但是在不脱离本公开的范围的情况下,类似的构思可以应用于帧间预测。具体地,类似的构思可以应用于对用于帧内预测和/或帧间预测模式的参考样本的过滤。

编码

图7示出了根据本公开实施例的示例性视频编码器700的简化框图。编码器700可以被包括在通信系统中的发送器或前端(headend)中。为了对具有一个或多个图片的视频序列进行编码,可以将图片分区成具有可配置大小的正方形的CTU。可以将一组连续的CTU分组到条带中。CTU是分区成CU的QTBT的根。在示例性编码器700中,图片由编码器模块编码,如下所述。使用帧内模式或帧间模式对每个块进行编码。当以帧内模式对块进行编码时,编码器700基于同一图片或帧中的至少一个块执行帧内预测(模块760)或空间预测。当以帧间模式对块进行编码时,编码器700基于来自至少一个参考图片或帧的至少一个参考块来执行帧间预测或时间预测。在单向(uni)帧间预测中,预测通常(但不是必须)基于更早的参考图片或帧。在双向(bi)帧间预测中,预测通常(但不是必须)基于更早和更晚的图片或帧。在帧间模式中,执行运动估计(模块775)和补偿(模块770)。编码器决定(模块705)使用帧内模式或帧间模式中的哪一个来对块进行编码,并通过预测模式标志来指示帧内/帧间决定。通过从原始图像块中减去(模块710)预测样本块(也称为预测器)来计算残差。

作为示例,帧内模式中的块是从重构的相邻样本中预测的。通过对存储在参考图片缓冲器780中的参考块执行运动估计(模块775)和运动补偿(模块770)来执行帧间预测。运动估计模块775可以包括运动补偿,因为其目的是确定最佳运动矢量,该最佳运动矢量可以使用迭代搜索,该迭代搜索通常在速率失真成本(RD成本)足够低或已经达到最小值时终止。

残差被变换(模块725)和量化(模块730)。变换模块725可以将图像从像素或时域变换到变换或频域。该变换可以是例如余弦变换、正弦变换、小波变换等。量化可以根据例如速率失真标准来执行。量化的变换系数以及运动矢量和其他语法元素被熵编码(模块745)以输出比特流。熵编码可以是,例如,上下文自适应二进制算术编码(ContextAdaptive Binary Arithmetic Coding,CABAC)、上下文自适应可变长度编码(ContextAdaptive Variable Length Coding,CAVLC)、霍夫曼编码、算术编码、经验值编码等。编码器也可以跳过变换,并将量化直接应用于未变换的残差信号。编码器还可以绕过变换和量化两者,即在不应用变换或量化过程的情况下直接对残差进行编码。在直接PCM编码中,不应用预测,并且块样本被直接编码到比特流中。

编码器包括解码循环,并且因此对编码块进行解码以提供用于进一步预测的参考。量化的变换系数被去量化(模块740)和逆变换(模块750)以对残差进行解码。通过组合(模块755)解码的残差和预测样本块来重构图像块。循环内滤波器(765)可以应用于重构图片,例如,以执行去块(deblocking)滤波/样本自适应偏移(Sample Adaptive Offset,SAO)滤波来减少编码伪像。过滤后的图像存储在参考图片缓冲器780中。

视频编码器700的模块可以以软件实施并且由处理器执行,或者可以使用压缩领域技术人员公知的电路组件来实施。具体地,视频编码器700可以被实施为集成电路(integrated circuit,IC)。

除了本公开中描述的差异之外,特别是除了如将在以下段落和附图中更详细地描述的模块帧内预测760中的差异和/或帧间预测模块770、775中的差异之外,视频编码器700的模块也可以存在于其他视频编码器(例如,HEVC编码器)中。对于除了帧内预测760和/或帧间预测770、775之外的功能,视频编码器700可以类似于HEVC视频编码器,并且本文不详细描述这些功能。

图8示出了根据本公开实施例的示例性帧内预测模块的简化框图800。帧内预测模块800可以类似于图7的帧内预测模块760。帧内预测模块800接收重构块811并且输出预测块835。帧内预测模块800包括三个模块:参考样本生成模块810、块帧内预测模块820和预测后处理(post-processing)模块830。

在参考样本生成模块810中,可以首先在参考样本计算模块812中根据当前块的重构相邻块来计算或确定参考样本813。在此阶段,参考像素或样本值可被复制到第一参考样本缓冲器中,如果左下像素或右上像素不可用,则对他们进行填充。接下来,在参考样本平滑模块814中,将原始参考样本/缓冲器813的平滑版本计算为滤波后的参考样本/缓冲器815。可替换地,模块814可以被绕过。然后,在参考样本选择模块816中,根据选择参数817,从原始参考样本813或过滤后的参考样本815中选择819参考样本。接下来,在模块帧内预测820中,执行预测以从选择的参考样本/缓冲器819计算当前块的帧内预测。最后,根据预测方向,可以在预测后处理模块830中对块内预测应用后处理(例如,滤波),以输出预测块835。后处理模块830可以被绕过或被移除。

除了本公开中描述的差异之外,特别是除了如将在以下段落和附图中更详细地描述的模块816、820和830以及选择参数817中的差异之外,帧内预测模块800的模块也可以存在于其他视频编码器(例如,HEVC编码器)中。例如,在HEVC标准中,817中的选择参数是当前块的像素数量(例如,块大小)和确定的预测方向。此外,在HEVC标准中,模块820和830是所确定的预测方向的函数。根据本公开,块形状(例如,水平或垂直矩形)可以是选择参数817,并且也可以影响模块816、820和830,这将在以下段落和附图中更详细地描述。块形状的特征在于块的宽度和高度之比,这就是为什么水平和垂直矩形块被认为是不同的形状。因此,矩形块的方向在考虑在内。

图9示出了根据本公开的当前块910的示例性参考样本(920,930)。图9也适用于HEVC标准。在图8的模块812中,对于大小为N×N(即,水平(x)对垂直(y)方向)的当前块910,上侧920上的一行2N(即,2*N个)重构参考样本可以从先前重构的上侧和右上侧参考像素形成到当前块910。上侧参考样本920包括样本P(0,-1)、…、P(N-1,-1)、...、P(2N-1,-1)。类似地,左侧930上的一列2N个样本可以从重构的左侧和左下侧参考像素形成到当前块910。左侧参考样本930包括样本P(-1,0)、…、P(-1,N-1)、...、P(-1,2N-1)。左上角位置的角像素P(-1,-1)也用于填充上侧行和左侧列参考之间的间隙。如果上侧或左侧的样本中的一些不可用(因为对应的参考块不在同一条带中或者当前块处于帧边界等等),则可以执行被称为参考样本置换的方法,在该方法中,从可用样本中按顺时针方向复制缺失样本。

根据本公开,块大小不需要限制为N×N(即,正方形块),并且可以是M×N(即一般的矩形块,包括正方形块),其中M等于或不同于N。对于M×N的一般块大小,在当前块的上侧可以有一行2M个重构参考样本,在当前块的左侧可以有一列2N个重构参考样本。

帧内样本预测在图8的模块820中执行,并且包括基于参考样本预测目标CU的像素。如前所述,为了有效地预测不同种类的内容,HEVC支持一系列的预测模型。平面和DC预测模式用于预测平滑和逐渐变化的区域,而角度预测模式用于捕捉不同的方向结构。HEVC支持索引从2到34的33个方向预测模式。方向预测模式对应于不同的预测方向。

图10示出了根据HEVC标准以及根据本公开的帧内预测方向。然而,本公开不限于HEVC方向。数字2至34表示与对应方向相关联的预测模式索引。模式2至17指示水平预测(H-26至H+32),模式18至34指示垂直预测(V-32至V+32)。图10中的符号“H”和“V”分别用于指示水平和垂直方向,而标识符的数字部分表示像素的位移(也称为“角度参数”)。

角度参数A,表示参考样本(分辨率为1/32像素)相对于第一行或第一列上的目标像素的位置。不同预测模式的值A如表1和表2所示。

表1

表2

具有非负位移的方向(即,H0到H+32和V0到V+32)也被表示为正方向,具有负位移的方向(即,H-2到H-26和V-2到V-32)也被表示为负方向。正预测方向也可以被定义为具有正A值的方向,负预测方向可以被定义为具有负A值的方向。

如图10所示,定义的角度方向的样本精度为1/32。也就是说,水平或垂直方向上的两个像素之间的间隔被划分成32个子间隔。如上所述,定义的方向可以被区分为垂直或水平。水平方向的预测模式仅使用左侧参考样本,或者使用一些左侧参考样本和一些上侧参考样本。类似地,垂直方向上的预测模式仅使用上侧参考样本,或者使用一些上侧参考样本和一些左侧参考样本。从H0到H+32的水平正方向仅使用左侧参考样本进行预测。类似地,从V0到V+32的垂直正方向仅使用上侧参考样本进行预测。负水平和负垂直方向(H-2至H-26和V-2至V-32)使用左侧参考样本和上侧参考样本两者进行预测。

在HEVC参考代码中,首先使用上侧和左侧参考样本构建参考阵列。对于垂直预测,参考阵列是水平的,并且对于水平预测,参考阵列是垂直的。对于具有正角度参数A的模式(模式2至10和模式26至34),参考阵列只是上侧或左侧参考样本,具体取决于方向:

对于垂直预测,topRef[x]=P[x-1][-1],0≤x≤2N (1)

对于水平预测,leftRef[y]=P[-1][y-1],0≤y≤2N (2)

其中,N是CU大小。通常在目标CU的左上角像素处将样本坐标初始化为(0,0)。因此,上侧参考样本的y坐标为-1,左侧参考样本的x坐标为-1。

对于具有负角度参数A的模式(模式11至25),参考阵列需要来自上侧和左侧参考两者的像素。在这种情况下,参考阵列将进一步扩展到超过-1的负索引。具有正索引的参考阵列上的样本值根据垂直或水平预测如上所述获得。具有负索引的参考阵列上的那些像素是通过沿着预测方向在参考阵列上投影左侧参考像素(对于垂直预测)或上侧参考像素(对于水平预测)而获得的。

一旦构建了参考阵列,就通过将像素位置沿选择的方向投影到参考阵列,然后在(x,y)处复制参考阵列样本值来获得目标CU内部的任何像素位置的预测。如下所示,通过在两个相邻样本之间进行插值,以(1/32)的样本分辨率计算参考样本值:

对于垂直预测,P[x][y]=((32-f)*topRef[x+i+1]+f*topRef[x+i+2]+16)>>5),0≤x,y<N (3)

对于水平预测,P[x][y]=((32-f)*leftRef[y+i+1]+f*leftRef[y+i+2]+16)>>5),0≤x,y<N (4)

其中i和f表示从像素位置(x,y)投影的位移的整数部分和小数部分,并且>>表示向右的移动操作。如果Δ表示投影位移,则

对于水平预测,Δ=(x+1)*A (5)

对于垂直预测,Δ=(y+1)*A (6)

然后,位移的整数部分和小数部分如下获得:

i=Δ>>5 (7)

f=Δ&31 (8)

其中&表示按位“与”运算。注意,如果f=0,即没有小数部分,则预测等于预测方向上的参考阵列样本值。在这种情况下,不需要插值。

预测模式中的一些,诸如DC模式,以及直接水平模式(H0或10)和垂直模式(V0或26),可能在预测之后在CU边界处引起不连续。因此,在HEVC以及在本公开中,这种预测模式之后是由图8的后处理模块830执行的后处理步骤,其中使用低通滤波器对边界预测样本进行平滑。

如前所述,为了构建目标块的预测,编码器(和解码器)可以仅使用块的上侧的一行参考样本和块的左侧的一列参考样本。最接近目标块的图9中的参考样本携带与目标块内容的最大相关量,因此由于更高的复杂性和存储器要求,使用附加的解码行和列被认为是不必要的。但是当目标块大小很小并且只有几个角度预测模式时,这种逻辑是适用的。随着块大小和预测模式数量的增加,通过使用来自附加的参考行和列的方向信息,可以使来自一个参考行和一个参考列的预测更加准确。

由于块可能不再是正方形,矩形块的形状在水平或垂直方向上可能不成比例地窄。因此,参考样本的预测模式和滤波的性能可能根据块的形状而有所偏差,如图11和图12的比较所示。

图11示出了根据HEVC标准的正方形块形状的示例性帧内预测模式。图1100示出了:具有相应的预测方向的a)水平预测示例和b)垂直预测示例。可以观察到,块形状和预测方向不是判别式的,也就是说,正方形形状的水平和垂直预测之间存在相似性。这同样适用于根据本公开的正方形块形状的帧内预测模式。

图12示出了根据本公开的矩形块形状的示例性帧内预测模式。图1200示出了:具有相应的预测方向的a)垂直矩形块的水平预测示例、b)垂直矩形块的垂直预测示例、c)水平矩形块的水平预测示例、以及d)水平矩形块的垂直预测示例。可以观察到,在示例a)和d)中,预测的像素接近参考样本。然而,在情况b)和c)中,预测的像素远离参考样本,这是不期望的,因为相关性往往随着距离而降低。

此外,传播不与块结构或纹理对齐的强边缘可能产生残差中的高频,从而高成本的要编码的残差。为了在生成精确预测和避免错误的强边缘之间实现良好的平衡,在某些情况下对参考样本进行低通滤波是有用的。在HEVC标准中,根据纯水平方向或纯垂直方向与帧内预测方向之间的(最小)角度的绝对值来对帧内参考样本进行滤波(模块814)。阈值或值取决于块大小(块中的像素数量)。阈值或值独立于块形状。如果角度大于该阈值或值,则应用参考样本平滑滤波器。

结果,用于帧内预测的参考样本有时被三抽头(three-tap)[1 2 1]/4平滑滤波器滤波。HEVC标准根据方向性和块大小自适应地应用平滑操作。平滑滤波器不适用于4×4的块。对于8×8的块,只有对角方向(角度内(Intra-Angular)[k],即k=2、18或34)使用参考样本平滑。对于16×16的块,除了近水平和近垂直方向(即k在9–11和25–27范围内)之外,大多数方向的参考样本都被滤波。对于32×32的块,除了水平方向(k=10)和垂直方向(k=26)之外,所有方向都使用平滑滤波器。当块大小大于或等于8×8时,平面内模式也使用平滑滤波器,并且平滑不用于(或不有用)DC内情况。

根据本公开,因此期望基于块形状来确定帧内预测模式。此外,期望基于块形状和可能的帧内预测方向来确定滤波工具。

在根据本公开的一个实施例中,根据用于启用或禁用参考平滑滤波(模块810)的块形状或者与用于启用或禁用参考平滑滤波(模块810)的块形状相关联地确定函数、特性或条件。平滑滤波可以是低通滤波过程。平滑滤波可以由HEVC标准中使用的类似滤波器来执行。函数或特性可以定义为水平矩形块的块宽度、垂直矩形块的块高度、以及正方形块的块宽度或块高度。该函数或特性可以等效地定义为例如块的最大尺寸,并且被应用于参考平滑滤波。在一个实施例中,如果最大尺寸是块的宽度(例如,水平矩形块,如图12中的项“c”和“d”),则对于与该块相关联的参考样本集的参考平滑滤波(810),可以禁用至少一个垂直帧内预测模式(图10中的V)。如果最大尺寸是块的高度(例如,垂直矩形块,如图12中的项“a”和“b”),则对于与该块相关联的参考样本集的参考平滑滤波(810),可以禁用至少一个水平帧内预测模式(图10中的H)。否则,如果块的宽度和高度具有相似的尺寸,可以启用水平和垂直帧内预测模式来对与该块相关联的参考样本集进行参考平滑滤波(810)。

换句话说,如果预测方向性(水平或垂直)与块形状(由最大尺寸定义,例如,水平预测且宽度>高度,或垂直预测且宽度<高度,图12中的情况“c”和“b”)相同,则预测被认为是长的。否则(图12中的情况“a”和“d”),预测被认为是短的。对于短预测,可以为参考平滑滤波禁用至少一个方向内预测模式(810)。

在一个实施例中,对于短预测,可以禁用参考样本平滑滤波器。例如,参考平滑滤波仅适用于图12中的项“b”和“c”。

在根据本公开的一个实施例中,函数、特性或条件可以被定义为所述块的对角线。在一个实施例中,函数、特性或条件可以被定义为块的大小的加权和,例如2*宽度+高度。在一个实施例中,可以设计其他更复杂的函数来区分块的不同形状。

在根据本公开的一个实施例中,函数、特性或条件可以包括与块的形状相关联的形状阈值/值或者值的范围的比较。在一个实施例中,如果预测是水平的,则形状阈值/值或值的范围可以与块宽度相关联,或者如果预测是垂直的,则与块高度相关联。换句话说,形状阈值/值或值的范围可以与块的最大尺寸相关联。例如,如果块的最大尺寸大于形状阈值p=4,则可以应用参考平滑滤波器。

在根据本公开的一个实施例中,函数、特性或条件可以进一步包括与块的预测方向相关联的方向阈值/值或者值的范围的比较。例如,如果块的最大尺寸大于形状阈值p=4,并且预测模式索引k对于水平矩形块小于10或者对于垂直矩形块大于26,则可以应用参考平滑滤波器。

在根据本公开的一个实施例中,可以建立块形状和块的预测方向的更复杂的函数。例如,形状阈值可以取决于预测方向:对于水平方向,如果块宽度大于p,则应用滤波器,其中,对于k=9至11,p=4,对于k<18,p=16,这意味着除了k=9至11(其中p=4)之外,对于几乎所有的水平方向,p=16。对于垂直方向,如果块高度大于p,则应用滤波器,其中,对于k=25至27,p=4,对于k>18,p=16,这意味着除了k=25至27(其中p=4)外,对于几乎所有的垂直方向,p=16。

在一个实施例中,至少一个标志可以被包括并且被可选地编码在比特流中(例如,作为语法元素),以指示当前图片、条带或块中的至少一个的(多个)形状阈值或(多个)值。至少一个标志可以在解码器处被检索,并且用于对编码块进行解码。

在根据本公开的一个实施例中,预测、残差、变换和编码可以在有和没有参考样本平滑滤波的情况下执行。在两个选项之间,可以选择产生更好的速率失真(RD)性能的选项。

在一个实施例中,至少一个标志可以被包括并且可选地被编码在比特流中(例如,作为语法元素),以指示对于当前图片、条带或块中的至少一个是否启用/禁用参考样本平滑滤波。至少一个标志可以在解码器处被检索,并且用于对编码块进行解码。

在一个实施例中,可以使用CU级别的一个比特的标志将选择的预测信令通知给解码器。可以使用取决于预测方向和块形状的上下文,利用CABAC对标志进行编码。例如,如果预测是水平且宽度>高度,或者预测是垂直且高度>宽度,则可以使用上下文1,否则可以使用上下文2。该标志可以在解码器处检索,并且用于对编码块进行解码。

在根据本公开的一个实施例中,根据用于启用或禁用帧内预测模式(模块820、830)的块形状来确定函数、特性或条件。该函数或特性可以被定义为例如块的最大尺寸,并且被应用于帧内预测。在一个实施例中,如果最大尺寸是块的宽度(例如,水平矩形块,如图12中的项“c”和“d”),则可以禁用至少一个垂直帧内预测模式来生成与块相关联的帧内预测(820,830)。如果最大尺寸是块的高度(例如,垂直矩形块,如图12中的项“a”和“b”),则可以禁用至少一个水平帧内预测模式来生成与块相关联的帧内预测(820,830)。否则,如果块的宽度和高度两者具有相似的大小,则可以启用水平和垂直帧内预测模式来生成与块相关联的帧内预测(820,830)。

换句话说,如果预测是短的,则可以对帧内预测(820,830)禁用至少一种预测模式。

在一个实施例中,对于短预测,可以禁用所有(垂直或水平)预测模式。例如,水平矩形块仅被水平预测(图12中的项“c”),以及垂直矩形块仅被垂直预测(图12中的项“b”)。

在根据本公开的一个实施例中,函数、特性或条件可以包括与块的形状相关联的形状阈值/值或值的范围的比较。在一个实施例中,如果预测是水平的,则形状阈值/值或值的范围可以与块宽度相关联,或者如果预测是垂直的,则与块高度相关联。换句话说,形状阈值/值或值的范围可以与块的最大尺寸相关联。例如,函数、特性或条件可以是块的大于形状阈值p=4的最大尺寸。如果条件为真,则对于块、条带或图片,允许/选择至少一种帧内预测模式。在一个示例中,甚至只有当块形状的条件为真时,预测方向(索引)才可用。在另一示例中,只有当条件为真时,4(4的倍数)个预测方向(索引)中的一个才可用。

在根据本公开的一个实施例中,函数、特性或条件可以进一步包括与或与块的预测方向相关联的方向阈值/值或值的范围的比较。例如,函数、特性或条件可以是块的大于形状阈值p=4的最大尺寸,并且预测模式索引k对于水平矩形块小于10或者对于垂直矩形块大于26。如果条件为真,则对于块、条带或图片,允许/选择至少一种帧内预测模式。在一个示例中,甚至只有当块形状的条件为真时,预测方向(索引)才可用。在另一示例中,只有当条件为真时,4(4的倍数)个预测方向(索引)中的一个才可用。

在根据本公开的一个实施例中,可以建立块形状和块的预测方向的更复杂的函数。如果条件为真,则对于块、条带或图片,允许/选择至少一种帧内预测模式。在一个示例中,甚至只有当块形状的条件为真时,预测方向(索引)才可用。在另一示例中,只有当条件为真时,4(4的倍数)个预测方向(索引)中的一个才可用。

在根据本公开的一个实施例中,与帧内预测模式(820,830)相关联的以上实施例中的任何一个都适用于PDPC索引编码。在另一实施例中,以上实施例中的任何一个都适用于RSAF索引编码。在又一实施例中,以上实施例中的任何一个都适用于多个参考样本切换。即,如果条件不满足,则使用如HEVC中那样的单行或单列参考进行帧内预测,否则使用多参考预测。多参考帧内预测是指使用多行和多列参考像素的帧内预测。它也称为任意层(tier)参考帧内预测或多行帧内预测。在已知的情况下,提出使用加权的多参考,其中权重与每个参考线(或层)相关联。

作为一种变型,该条件可以适用于以上实施例中描述的与帧内预测相关联的编码工具(PDPC、RSAF、多样本参考)中的任何一个。当条件满足时,总是使用工具(即预测方法),否则不使用工具。在另一变型中,当条件满足时,编码器选择使用或不使用工具(具有经典RDO循环),并发送工具是否已被使用的标志;否则(如果条件不满足),不使用工具。

图13示出了根据本公开一个实施例的视频编码的示例性方法的流程图1300。方法1300包括,在步骤1310,访问用于视频的图片中的块的预测的参考样本集。然后,在步骤1320,方法1300包括基于块的形状处理该参考样本集。接下来,在步骤1330,方法1300包括基于处理的该参考样本集生成块的预测块。最后,在步骤1340,方法1300包括基于预测块对块进行编码。步骤1310至1340可以例如由编码器700(例如760、770、775)执行,包括模块800。具体地,步骤1310至1330可以由例如模块760、800、770、775执行,包括用于步骤1320的模块810和用于步骤1330的模块820、830。块形状可以是例如正方形形状、垂直矩形形状和水平矩形形状中的一个。

根据该方法的一个实施例,预测可以是帧内预测或帧间预测。

根据该方法的一个实施例,当块形状的函数或特性或与块形状相关联的函数或特性大于值或阈值时,可以启用或选择该处理。因此,当函数或特性大于值或阈值时,条件为真。在一个实施例中,当函数或特性小于或等于值时,可以禁用或不选择该处理。

根据该方法的一个实施例,块形状的函数或特性或者与块形状相关联的函数或特性可以是块的最大尺寸。在一个实施例中,当块形状是水平矩形形状时,最大尺寸是块宽度;当块形状是垂直矩形形状时,最大尺寸是块高度;当块形状是正方形时,最大尺寸是块宽度或块高度。

根据该方法的一个实施例,函数或特性可以是块的对角线长度。

根据该方法的一个实施例,函数或特性可以是块的尺寸的加权和(例如,2*宽度+高度)。

根据该方法的一个实施例,该处理可以进一步基于预测模式。在一个实施例中,处理可以进一步基于块的预测的方向性模式。

根据该方法的一个实施例,当函数或特性大于该值时,可以针对至少一种预测模式启用或选择该处理。例如,可以针对水平矩形块中的水平预测模式和垂直矩形块中的垂直预测模式启用该处理。

根据该方法的一个实施例,对于非正方形块,可以在块的最小尺寸的方向上针对至少一个方向预测模式禁用或不选择该处理。例如,可以针对垂直矩形块中的水平预测模式和/或水平矩形块中的垂直预测模式禁用该处理。

根据该方法的一个实施例,在编码视频中包括至少一个标志,该至少一个标志指示值和处理是否被启用中的至少一个。可以在预测之前或预测期间在解码器处检索该标志。

根据该方法的一个实施例,该处理包括对该参考样本集进行平滑滤波。平滑滤波可以是低通滤波。

根据该方法的一个实施例,预测是基于块形状的。在一个实施例中,对于至少一个块形状,允许至少一种预测模式(例如,帧内预测方向)。在一个实施例中,对于至少一个块形状,不允许至少一种预测模式。在一个实施例中,如前所述,当块形状的条件为真时,启用或禁用至少一种预测模式。

应当理解,方法1300也适用于本公开中先前描述的任何附加实施例和示例。

根据一个实施例,该方法还可以包括接收图片,将图片分区成包括块的多个块,确定块的预测残差,对残差进行变换和量化以获得多个变换系数,以及对变换系数进行熵编码。变换和量化的步骤可以由例如编码器700的模块725和730执行。熵编码的步骤可以由例如编码器700的模块745执行。接收、变换和量化的步骤可以是可选的、绕过的或移除的,因为它们可能已经由另一设备预先执行和/或结果可能已经存储在存储器中。

应当理解,上述方法1300的实施例中的任何一个可以由包括帧内预测模块800的编码器700(例如,760、770、775)实施。包括帧内预测模块800的编码器700的框可以由硬件(例如,集成电路)或软件实施,该软件被存储在存储器中并且由处理器执行。

解码

图14示出了根据本公开实施例的示例性视频解码器1400的简化框图。视频解码器1400可以被包括在通信系统的接收器中。尽管并非视频解码器1400中的所有操作都是图7中描述的由视频编码器700执行的编码过程的逆操作(例如,帧内预测和帧间预测),但解码器通常执行与编码过程互逆的解码过程。具体地,解码器1400的输入包括可以由视频编码器700生成的视频比特流。比特流首先被熵解码(模块1430),以获得变换系数、运动矢量、语法元素和其他编码信息。变换系数被去量化(模块1440)并且被逆变换(模块1450)以对残差进行解码。然后将解码的残差与预测的样本块(也称为预测器)组合(模块1455),以获得解码/重构图像块。编码器决定(例如,模块705)使用帧内模式或帧间模式中的哪一个来对块进行编码,并通过预测模式标志来指示帧内/帧间决定。预测样本块可以从帧内预测(模块1460)或运动补偿预测(即,帧间预测)(模块1470)获得(模块1405)。可以对重构图像应用循环内滤波器(模块1465)。循环内滤波器可以包括去块滤波器和SAO滤波器。滤波后的图像存储在参考图片缓冲器1480中。

视频解码器1400的模块可以用软件实施并由处理器执行,或者可以使用压缩领域技术人员公知的电路组件来实施。具体地,视频编码器1400可以被实施为集成电路(IC),单独或者与视频解码器700组合作为编解码器。

除了在本公开中描述的差异之外,特别是除了如将在以下段落和附图中更详细地描述的根据本公开的如图7的模块760的帧内预测模块1460的差异或者如图7的模块770、775的帧间预测模块1475的差异之外,视频解码器1400的模块也存在于其他视频解码器(例如,HEVC解码器)中。对于除了帧内预测模块1460和/或帧间预测1475之外的功能,视频解码器1400可以类似于HEVC视频解码器,并且本文不详细描述这些功能。

此外,帧内预测模块1460可以类似于图7中的帧内预测模块760和图8中的800。并且运动补偿模块1470可以类似于图7的运动补偿模块770。

图15示出了根据本公开一个实施例的视频解码的示例性方法的流程图1500。方法1500包括,在步骤1510,访问用于编码视频的图片中的块的预测的参考样本集。然后,在步骤1520,方法1500包括基于块的形状处理该参考样本集。接下来,在步骤1530,方法1500包括基于处理的该参考样本集生成块的预测块。最后,在步骤1540,方法1500包括基于预测块对块进行解码。步骤1510至1540可以例如由解码器1400执行(例如,包括模块800)。具体地,步骤1510至1530可以由例如模块1460、800、1475执行,包括用于步骤1520的模块810和用于步骤1530的模块820、830。块状形状可以是例如正方形形状、垂直矩形形状和水平矩形形状中的一个。

根据该方法的一个实施例,预测可以是帧内预测或帧间预测。

根据该方法的一个实施例,当块形状的函数或特性或与块形状相关联的函数或特性大于值或阈值时,可以启用或选择该处理。因此,当函数或特性大于值或阈值时,条件为真。在一个实施例中,当函数或特性小于或等于值时,可以禁用或不选择该处理。

根据该方法的一个实施例,块形状的函数或特性或属性或者与块形状相关联的函数或特性或属性可以是块的最大尺寸。在一个实施例中,当块形状是水平矩形形状时,最大尺寸是块宽度;当块形状是垂直矩形形状时,最大尺寸是块高度;当块形状是正方形时,最大大小是块宽度或块高度。

根据该方法的一个实施例,函数或特性可以是块的对角线长度。

根据该方法的一个实施例,函数或特性可以是块的尺寸的加权和(例如,2*宽度+高度)。

根据该方法的一个实施例,该处理可以进一步基于预测模式。在一个实施例中,该处理可以进一步基于块的预测的方向性模式。

根据该方法的一个实施例,当函数或特性大于值时,可以针对至少一种预测模式启用或选择该处理。例如,可以针对水平矩形块中的水平预测模式和垂直矩形块中的垂直预测模式启用该处理。

根据该方法的一个实施例,对于非正方形块,可以在块的最小尺寸的方向上针对至少一个方向预测模式禁用或不选择该处理。例如,对于垂直矩形块中的水平预测模式和/或水平矩形块中的垂直预测模式,可以禁用该处理。

根据该方法的一个实施例,在编码视频中包括至少一个标志,该至少一个标志指示值和该处理是否被启用中的至少一个。可以在预测之前或预测期间在解码器处检索该标志。

根据该方法的一个实施例,该处理包括对该参考样本集进行平滑滤波。平滑滤波可以是低通滤波。

根据该方法的一个实施例,预测是基于块形状的。在一个实施例中,针对至少一个块形状,允许至少一种预测模式(例如,帧内预测方向)。在一个实施例中,针对至少一个块形状,不允许至少一种预测模式。在一个实施例中,如前所述,当块形状的条件为真时,启用或禁用至少一种预测模式。

应当理解,方法1500也适用于先前在本公开中与方法1300相关联地描述的附加实施例中和示例中的任何一个。

根据一个实施例,该方法还可以包括接收编码图片,对编码块进行熵解码,对变换系数块进行逆变换以获得解码残差,将解码残差与预测样本块进行组合以获得解码/重构图像块。变换系数可以在逆变换之前被进一步逆量化。熵解码、逆变换和逆量化的步骤可以分别由例如解码器1400的模块1430、1450和1440来执行。接收、熵解码、逆变换和逆量化以及组合的步骤可以是可选的、绕过的或移除的,因为它们可能已经由另一设备预先执行和/或提供给另一设备,或者结果可能已经从存储器中检索和/或被存储在存储器中。

应当理解,上述方法1500的实施例中的任何一个可以由解码器1400(例如,1460、800、1475)实施。解码器1400的模块可以由硬件(例如,集成电路)或以软件实施、被存储在存储器中并且由处理器执行。

图16示出了在其中可以实施本公开的示例性实施例的各个方面的示例性系统的框图1600。系统1600可以体现为包括下面描述的各种组件的设备,并且被配置为执行上述过程。这种设备的示例包括但不限于个人计算机、膝上型计算机、智能手机、智能手表、平板计算机、数字多媒体机顶盒、数字电视接收器、个人视频记录系统、连接的家用电器以及服务器。系统1600可以通信地耦合到其他类似系统,并且经由如图16所示的通信信道耦合到显示器,并且如本领域技术人员所知的用于实施上述示例性视频系统。系统1600可以独立地或联合地实施编码器700(例如,包括模块800)、解码器1400(例如,包括模块800)或(多个)编码器和(多个)解码器。此外,系统1600可以独立地或联合地实施并且被配置成执行本公开的过程中的任何一个,包括方法1300和/或1500。

系统1600可以包括至少一个处理器1610,处理器1610被配置成执行加载在其中的指令,以用于实施如上所述的各种过程。处理器1610可以包括嵌入式存储器、输入输出接口和本领域已知的各种其他电路。系统1600还可以包括至少一个存储器1620(例如,诸如RAM的易失性存储器设备、诸如ROM的非易失性存储器设备)。系统1600可以附加地包括存储设备1640,存储设备1640可以包括非易失性存储器,包括但不限于可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)、ROM、可编程只读存储器(programmable read-only memory,PROM)、动态RAM(dynamic RAM,DRAM)、静态RAM(staticRAM,SRAM)、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备1640可以包括内部存储设备、附接的存储设备和/或网络可访问存储设备。系统1600还可以包括被配置为处理数据以提供编码视频或解码视频的编码器/解码器模块1630。

编码器/解码器模块1630表示可以包括在设备中以执行编码和/或解码功能的模块,例如分别根据图7(例如,包括图8)和图14(例如,包括图8)。如压缩领域内已知的,设备可以包括编码和解码模块中的一个或两个。此外,编码器/解码器模块1630可以实施为系统1600的单独的元件,或者可以作为本领域技术人员已知的硬件和软件的组合被结合在处理器1610内。例如,编码器/解码器模块1630可以实施为一个或两个单独的集成电路和/或现场可编程门阵列(field-programmable gate array,FPGA)。

要加载到处理器1610上以执行上文描述的各种过程的程序代码可以存储在存储设备1640中,并且随后加载到存储器1620上以由处理器1610执行。根据本公开的示例性实施例,(多个)处理器1610、存储器1620、存储设备1640和编码器/解码器模块1630中的一个或多个可以在执行上文讨论的过程的执行期间存储包括但不限于输入视频、解码视频、比特流、等式、公式、矩阵、变量、操作和操作逻辑的各种项中的一个或多个。

系统1600还可以包括能够经由通信信道1660与其他设备通信的通信接口1650。通信接口1650可以包括但不限于被配置成从通信信道1660发送和接收数据的收发器。通信接口可以包括但不限于调制解调器或网卡,并且通信信道可以在有线和/或无线介质中实施。系统1600的各种组件可以使用各种合适的连接来连接或通信耦合在一起,包括但不限于内部总线、电线和印刷电路板。

根据本公开的示例性实施例可以由处理器1610执行的计算机软件或者由硬件或者由硬件和软件的组合来执行。作为非限制性示例,根据本公开的示例性实施例可以由一个或多个集成电路来实施。作为非限制性示例,存储器1620可以是适合于技术环境的任何类型,并且可以使用任何适当的数据存储技术来实施,诸如光学存储设备、磁存储设备、基于半导体的存储设备、固定存储器和可移动存储器。作为非限制性示例,处理器1610可以是适合于技术环境的任何类型,并且可以包括微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一个或多个。

本文描述的实施方式可以用例如方法或过程、装置、软件程序、数据流或信号来实施。即使仅在实施方式的单一形式的上下文中讨论(例如,仅作为方法讨论),但所讨论的特征的实施方式也可以以其他形式实施(例如,装置或程序)。装置可以用例如适当的硬件、软件和固件来实施。这些方法可以在例如装置(诸如,例如处理器,其通常指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备)中实施。处理器还包括通信设备,诸如例如计算机、蜂窝电话、便携式/个人数字助理(PDA),以及促进终端用户之间的信息通信的其他设备。

根据本公开的一方面,提供了一种用于视频编码的装置1600,该装置包括处理器1610和耦合到该处理器的至少一个存储器1620、1640,该处理器1610被配置成执行上述视频编码方法1300的任何实施例。

根据本公开的一方面,提供了一种用于视频解码的设备1600,该装置包括处理器1610和耦合到该处理器的至少一个存储器1620、1640,处理器1610被配置成执行上述视频解码方法1500的任何实施例。

根据本公开的一方面,提供了一种用于视频编码的装置,包括:用于访问用于视频的图片中的块的预测的参考样本集的部件;用于基于块的形状处理该参考样本集的部件;用于基于处理的该参考样本集生成块的预测块的部件;以及用于基于预测块对块进行编码的部件。图7(例如,包括图8)和图16的视频编码器可以包括装置的结构或部件,特别是模块760(例如,800)、770、775、1710和1730。用于视频编码的装置可以执行视频编码的方法1300中的任何一个的任何实施例。

根据本公开的一方面,提供了一种用于视频解码的装置,包括:用于访问用于编码视频的图片中的块的预测的参考样本集的部件;用于基于块的形状处理该参考样本集的部件;用于基于处理的该参考样本来生成块的预测块的部件;以及用于基于预测块对块进行编码的部件。图14(例如,包括图8)和图17可以包括用于视频解码的装置的结构或部件,特别是块1460(例如,800)、1475、1710和1730。用于视频解码的装置可以执行视频解码的方法1500中的任何一个的任何实施例。

对于本领域技术人员来说显而易见的是,实施方式可以产生各种格式化的信号,以携带例如可以被存储或传输的信息。该信息可以包括例如用于执行方法的指令,或者由所描述的实施方式之一产生的数据。例如,信号可以被格式化以携带所描述的实施例的比特流。这种信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括,例如,编码数据流和用编码的数据流调制载波。信号携带的信息可以是例如模拟或数字信息。众所周知,信号可以通过各种不同的有线或无线链路传输。该信号可以存储在处理器可读介质上。

根据本公开的一方面,信号包括被格式化为包括代表图片的块的编码数据的比特流,该编码数据根据视频编码的方法1300中的任何一个的任何实施例被编码。

根据本公开的一方面,比特流被格式化为包括代表图片的块的编码数据,该编码数据根据视频编码的方法1300中的任何一个的任何实施例中被编码。

此外,方法1300和/或1500中的任何一个可以被实施为包括可以由处理器(独立地或联合地)执行的计算机可执行指令的计算机程序产品。具有计算机可执行指令的计算机程序产品可以存储在系统1600、编码器700(例如,包括模块800)和/或解码器1400(例如,包括模块800)的相应的暂时或非暂时计算机可读存储介质中。

根据本公开的一方面,提供了一种计算机程序产品,其包括用于(独立地或联合地)执行本公开的方法1300和/或1500中的任何一个的任何实施例的程序代码指令。

重要的是要注意,在一些实施例中,过程1300和/或1500中的一个或多个元素可以被组合、以不同的顺序执行或排除,同时仍然实施本公开的各方面。其他步骤可以并行执行,其中处理器在开始另一步骤之前不等待一个步骤的完全完成。

此外,本公开的各方面可以采取计算机可读存储介质的形式。可以利用一个或多个计算机可读存储介质的任何组合。计算机可读存储介质可以采取体现在一个或多个计算机可读介质中的计算机可读程序产品的形式,并且具有体现在其上的可由计算机执行的计算机可读程序代码。本文使用的计算机可读存储介质被认为是非暂时性存储介质,其具有在其中存储信息的固有能力以及从其中提供信息的检索的固有能力。计算机可读存储介质可以是,例如,但不限于,电子的、磁的、光学的、电磁的、红外的或半导体的系统、装置或设备,或前述的任何合适的组合。

应当理解,下面的列表虽然提供了可以应用本公开的计算机可读存储介质的更具体的示例,但是仅仅是说明性的而非穷举性的列表,如本领域普通技术人员容易理解的。示例的列表包括便携式计算机磁盘、硬盘、ROM、EPROM、闪存、便携式光盘只读存储器(CD-ROM)、光学存储设备、磁存储设备、或前述的任何合适的组合。

根据本公开的一方面,提供了一种携带软件程序的计算机可读存储介质,该软件程序包括用于执行本公开的方法(包括方法1300和/或1500)中的任何一个的任何实施例的程序代码指令。

应当理解,对本公开的“一个实施例”或“实施例”或“一个实施方式”或“实施方式”及其其他变型的引用意味着结合该实施例描述的特定特征、结构、特性等被包括在本公开的至少一个实施例中。因此,出现在说明书各处的短语“在一个实施例中”或“在实施例中”或“在一个实施方式中”或“在实施方式中”以及任何其他变型不一定都指同一实施例。

另外,本公开或其权利要求可能提到“确定”各种信息。确定信息可以包括例如估计信息、计算信息、预测信息或从存储器中检索信息中的一个或多个。

此外,本公开或其权利要求可以提到“提供”各种信息。提供信息可以包括例如输出信息、存储信息、传输信息、传送信息、显示信息、示出信息或移动信息中的一个或多个。

此外,本公开或其权利要求可能提到指“访问”各种信息。访问信息可以包括例如接收信息、检索信息(例如从存储器)、存储信息、处理信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息中的一个或多个。

此外,本公开或其权利要求可以提到“接收”各种信息。与“访问”一样,接收是一个广义的术语。接收信息可以包括例如访问信息或检索信息(例如,从存储器)中的一个或多个。此外,“接收”通常以这样或那样的方式在诸如存储信息、处理信息、传输信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息的操作期间涉及。

应当理解,所示出和描述的各种特征是可互换的。除非另有说明,一个实施例中示出的特征可以结合到另一实施例中。此外,各种实施例中描述的特征可以组合或分离,除非另外指出为不可分离或不可组合。

如前所述,图中所示的各种元件的功能可以通过使用专用硬件以及能够执行与适当软件相关联的软件的硬件来提供。此外,当由处理器提供时,功能可以由单个专用处理器、单个共享处理器或多个单独的处理器(其中一些处理器可以被共享)提供。

还应当理解,因为附图中描绘的组成系统组件和方法中的一些优选地以软件实施,所以系统组件或过程功能块之间的实际连接可以根据本公开的过程被编程的方式而不同。给定本文的教导,相关领域的普通技术人员将能够设想本公开的这些和类似的实施方式或配置。

尽管本文已经参考附图描述了说明性实施例,但是应当理解,本公开不限于那些精确的实施方式,并且相关领域的普通技术人员可以在不脱离本公开的范围的情况下在其中实施各种改变和修改。此外,在不脱离本公开的范围的情况下,可以组合各个实施方式。所有这些变化和修改都旨在包括在如所附权利要求中阐述的本公开的范围内。

34页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:全向视频切片段

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类