在可变块尺寸的视频译码中的自适应重叠块预测的制作方法

文档序号:13169465阅读:159来源:国知局
在可变块尺寸的视频译码中的自适应重叠块预测的制作方法

本发明涉及在可变块尺寸的视频译码中的自适应重叠块预测。



背景技术:

数字视频可以用于例如经由视频会议(conferencing)的远程商务会议、高清晰度视频娱乐、视频广告或用户生成的视频的共享。由于视频数据中涉及的大量数据,因此传输和存储需要高性能压缩。已经提出了各种方法来减少视频流中的数据量,包括压缩和其他编码和解码技术。



技术实现要素:

本申请总体上涉及用于传输或存储的视频流数据的编码和解码。本文公开了与可变块尺寸视频译码中的自适应的重叠块预测相关的系统、方法和装置的方面。

作为本文的教导的一个方面,是一种用于解码编码的视频流的帧的方法。解码当前帧的当前块可以包括:基于与当前块相关联的当前预测参数来生成用于当前块的基本预测;识别用于解码邻近于当前块的先前解码的邻近块的邻近预测参数;确定当前块内邻近于邻近块的重叠区域,该重叠区域具有被确定作为当前预测参数和邻近预测参数之间的差的函数的尺寸。对于重叠区域内的每个像素,解码可以包括生成作为基本预测和基于邻近预测参数的预测的函数的像素值的重叠预测。

本文中的教导的另一方面是一种块基解码压缩的视频流的多个帧的方法。解码可以包括:确定当前块内并且与先前解码的第一邻近块邻近的第一重叠区域;以及生成第一重叠区域中的像素值的预测作为使用当前帧的第一预测参数的第一预测以及使用第一邻近块的第二预测参数的第二预测的函数。第一重叠区域可以具有通过在第一预测参数和第二预测参数之间的差的函数可调适的尺寸。

本文中的教导的另一方面是一种块基解码在编码的视频流的多个帧中的当前帧的多个块的当前块的方法。该方法可以包括基于第一预测参数生成当前块的像素值的预测。该方法可以包括定义在当前块内并且邻近于多个先前解码的块中的邻近块的重叠区域。重叠区域可以具有被定义为在第一预测参数与邻近块的第二预测参数之间的差的函数的尺寸。该方法可以包括为重叠区域内的每个像素生成像素值的被更新预测。被更新预测可以是第一预测和第二预测的函数,其中第二预测可以基于第二预测参数。

本公开还提供了被布置用于使所述方法实施的相应的装置,被布置用于当被执行在适当的计算机装置上时来实施该方法和装置的计算机程序代码,以及用于运行该计算机代码的计算机可读介质。

在下文中将更详细地描述这些和其他方面的变化。

附图说明

本文的描述参考附图,其中除非另有说明,否则相同的附图标记遍及多个视图中指代相同的部件。

图1是根据本公开的实施方式的计算设备的图。

图2是根据本公开的实施方式的计算和通信系统的图。

图3是根据本公开的实施方式的用于编码和解码的视频流的图。

图4是根据本公开的实施方式的编码器的框图。

图5是根据本公开的实施方式的解码器的框图。

图6是根据本发明的实施方案的用于自适应的重叠块预测的示例过程的流程图。

图7是根据本发明的实施方案的具有可变块尺寸的示例性块基的预测的框图。

图8是根据本公开的实施方式的重叠区域的示例性尺寸变化的框图。

图9是根据本发明的实施方案的用于重叠预测的示例性加权函数的框图。

具体实施方式

视频压缩方案可以包括将每个图像或帧分成诸如块的较小部分,并且使用用于限制输出中的每个块所包括的信息的技术来生成输出比特流。编码的比特流可以被解码以从有限信息重新创建源图像。可以通过减少空间冗余、减少时间冗余或其组合来限制输出中的每个块包括的信息。例如,可以通过基于编码器和解码器两者可用的信息预测帧,并且包括表示预测帧和编码的视频流中的原始帧之间的差或残余的信息,来减少时间或空间冗余。

可以将帧分成可变尺寸的块,使用先前译码的信息来预测每个块的像素值,并且每个块的预测参数和残余数据被编码为输出。解码器接收压缩的比特流中的预测参数和残余数据,并且重构帧,其可以包括基于先前解码的图像数据来预测块。

重叠预测可通过使用来自邻近块的预测信息来改进块的预测。邻近块的预测块尺寸可以在邻近块之间变化,并且可以不同于当前块的预测块尺寸。可以对应于各个相邻块来识别当前块内的各个重叠区域,并且可以基于来自相应相邻块的预测参数,针对各个重叠区域确定重叠预测。可通过诸如根据邻近块的预测参数与当前块的预测参数的比较来调适当前块中的每个重叠区域的尺寸来优化重叠预测。

图1是根据本公开的实施方式的计算设备100的图。所示的计算设备100包括通信接口110、通信单元120、用户接口(ui)130、处理器140、存储器150、指令160和电源170。如本文所使用的,术语“计算设备”包括能够执行本文所公开的任何方法或其任何一个或多个部分的任何单元或单元的组合。

计算设备100可以是固定计算设备,诸如个人计算机(pc)、服务器、工作站、小型计算机或大型计算机;或移动计算设备,诸如移动电话、个人数字助理(pda)、膝上型计算机或平板pc。尽管被示为单个单元,但是通信设备100的任何一个或多个元件可以被集成到任何数量的单独的物理单元中。例如,ui130和处理器140可以集成在第一物理单元中,并且存储器150可以集成在第二物理单元中。

通信接口110是如所示的无线天线。通信接口110可以可选地或另外地是有线通信端口,诸如以太网端口、红外端口、串行端口或能够与有线或无线电子通信介质180对接的任何其它有线或无线单元。

通信单元120被配置为经由有线或无线介质180发送或接收信号。例如,如所示,通信单元120可操作地连接到被配置为经由无线信号进行通信的天线。虽然在图1中未明确示出,通信单元120可以被配置为经由诸如射频(rf)、紫外线(uv)、可见光、光纤、有线线路或其组合的任何有线或无线通信介质发送、接收或收发两者。尽管图1示出了单个通信单元120和单个通信接口110,但是可以使用任何数量的通信单元和任何数量的通信接口。

ui130包括能够与用户连接的任何单元,例如虚拟或物理键盘、触摸板、显示器、触摸显示器、扬声器、麦克风、摄像机、传感器或其任何组合。ui130可以可操作地耦合到如所示的处理器或者与通信设备100的诸如电源170的任何其他元件。尽管被示为单个单元,ui130可以包括一个或多个物理单元。例如,ui130可以包括用于执行与用户的音频通信的音频接口。ui130可以包括用于执行与用户的基于视觉和触摸的通信的触摸显示器。尽管被示出为单独的单元,但是通信接口110、通信单元120和ui130或其部分可以被配置为组合单元。例如,通信接口110、通信单元120和ui130可以被实现为能够与外部触摸屏设备对接的通信端口。

处理器140包括现在存在或将来开发的能够操纵或处理信号或其他信息的任何设备或系统,包括光学处理器、量子处理器、分子处理器或其组合。例如,处理器140可以包括专用处理器、数字信号处理器(dsp)、多个微处理器、与dsp核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)、可编程逻辑阵列、可编程逻辑控制器、微代码、固件、任何类型的集成电路(ic)、状态机或其任何组合。如本文所使用的,术语“处理器”包括单个处理器或多个处理器。在该示例中,处理器140可操作地耦合到通信接口110、通信单元120、ui130、存储器150、指令160和电源170。

存储器150包括任何非暂时性计算机可用或计算机可读介质,诸如可以例如包含、存储、传送或传输指令160或与其相关联的任何信息以供处理器140使用或与其连接的任何有形设备。非暂时性计算机可用或计算机可读介质可以是例如固态驱动器、存储卡、可移动介质、只读存储器(rom)、随机存储器存取存储器(ram)、包括硬盘、软盘、光盘、磁卡或光卡的任何类型的盘、专用集成电路(asic)或任何类型的适合于存储电子信息或其任何组合。存储器150通过例如存储器总线(未明确示出)连接到处理器140。

指令160包括用于执行本文所公开的任何方法或其任何一个或多个部分的指令。指令160可以以硬件、软件或其任何组合来实现。例如,指令160可以被实现为存储在存储器150中的信息,诸如计算机程序,其可以由处理器140执行以执行本文所述的任何相应的方法、算法、方面或其组合。指令160或其一部分可以实现为专用处理器或电路,其可以包括用于执行如本文所述的任何方法、算法、方面或其组合的专用硬件。指令160的部分可以分布在同一机器或不同机器上的多个处理器上,或跨诸如局域网、广域网、因特网或其组合的网络地分布。

电源170是用于为计算设备100供电的任何适当设备。例如,电源170可以包括有线电源;一个或多个干电池,例如镍镉(nicd)、镍锌(nizn)、镍金属氢化物(nimh)、锂离子(li离子);太阳能电池;燃料电池;或能够为通信设备110供电的任何其他设备。如图1所示,通信接口110、通信单元120、ui130、处理器140、指令160和存储器150与电源170可操作地耦合。

虽然被示出为分离的元件,但是通信接口110、通信单元120、ui130、处理器140、指令160、电源170、存储器150或其任何组合可以集成在一个或多个更多的电子单元、电路或芯片中。

图2是根据本公开的实施方式的计算和通信系统200的图。计算和通信系统200包括一个或多个计算和通信设备100a/100b/100c、一个或多个接入点210a/210b和一个或多个网络220。例如,计算和通信系统200可以是多址接入系统,其向诸如计算和通信设备100a/100b/100c之类的一个或多个有线或无线通信设备提供诸如语音、数据、视频、消息、广播或其组合的通信。尽管图2为了简单起见示出了三个计算和通信设备100a/100b/100c、两个接入点210a/210b和一个网络220,但是可以使用任何数量的计算和通信设备、接入点和网络。

计算和通信设备100a/100b/100c可以例如是诸如图1所示的计算设备100的计算设备。如该示例所示,计算和通信设备100a/100b各自是诸如移动计算设备、膝上型计算机、瘦客户端或智能电话之类的用户设备,并且计算和通信设备100c是诸如大型机或群集的服务器。虽然计算和通信设备100a/100b被描述为用户设备,并且计算和通信设备100c被描述为服务器,但是任何计算和通信设备可以执行服务器的一些或全部功能、用户设备的一些或全部功能或者服务器和用户设备的一些或全部功能。

每个计算和通信设备100a/100b/100c被配置为执行有线或无线通信或有线、无线通信两者。例如,计算和通信设备100a/100b/100c可以被配置为发送或接收有线或无线通信信号,并且可以包括用户设备(ue)、移动站、固定或移动用户单元、蜂窝电话、个人计算机、平板计算机、服务器、消费电子产品或任何类似的设备。虽然每个计算和通信设备100a/100b/100c被示出为单个单元,但是计算和通信设备可以包括任何数量的互连元件。

每个接入点210a/210b是被配置为经由有线或无线通信链路180a/180b/180c与计算和通信设备100a/100b/100c、网络220或两者通信的任何类型的设备。例如,接入点210a/210b可以包括基站、基站收发台(bts)、节点b、增强型节点b(enode-b)、家庭节点b(hnode-b)、无线路由器、有线路由器、集线器、中继器、交换机或任何类似的有线或无线设备。虽然每个接入点210a/210b被示为单个单元,但是接入点可以包括任何数量的互连元件。

网络220是被配置为在有线或无线通信链路上提供诸如语音、数据、应用、基于因特网协议的语音(voip)或任何其它通信协议或通信协议的组合的任何类型的网络。例如,网络220可以是局域网(lan)、广域网(wan)、虚拟专用网(vpn)、移动或蜂窝电话网、因特网或任何其他电子通信手段。网络可以使用诸如传输控制协议(tcp)、用户数据报协议(udp)、因特网协议(ip)、实时传输协议(rtp)、超文本传输协议(http)或其组合的通信协议。

计算和通信设备100a/100b/100c可以使用一个或多个有线或无线通信链路或经由有线和无线通信链路的组合经由网络220彼此通信。例如,如图所示,计算和通信设备100a/100b经由无线通信链路180a/180b进行通信,并且计算和通信设备100c经由有线通信链路180c进行通信。计算和通信设备100a/100b/100c中的任一个可以使用任何有线或无线通信链路或链路进行通信。例如,第一计算和通信设备100a可以使用第一类型的通信链路经由第一接入点210a进行通信,第二计算和通信设备100b可以使用第二类型的通信链路经由第二接入点210b进行通信,以及第三计算和通信设备100c可以使用第三类型的通信链路经由第三接入点(未示出)进行通信。类似地,接入点210a/210b可以经由一种或多种类型的有线或无线通信链路230a/230b与网络220通信。尽管图2示出了经由网络220进行通信的计算和通信设备100a/100b/100c,但是计算和通信设备100a/100b/100c可以经由任何数量的通信链路(诸如直接有线或无线通信链路)彼此进行通信。

计算和通信系统200的其它实施方式是可能的。例如,网络220可以是自组织网络并且省略接入点210a/210b中的一个或多个。计算和通信系统200可以包括图2中未示出的设备、单元或元件。例如,计算和通信系统200可以包括更多的通信设备、网络和接入点。

图3是根据本公开的实施方案的用于编码和解码中的视频流300的图。诸如由摄像机捕获的视频流或由计算设备产生的视频流之类的视频流300包括视频序列310。视频序列310包括一系列邻近帧320。虽然示出了三个邻近帧320,视频序列310可以包括任何数量的邻近帧320。来自邻近帧320的每个帧330可以表示来自视频流的单个图像。帧330可以包括块340。虽然在图3中未明显示出,但是块包括像素。例如,块可以包括16×16像素组、8×8像素组、8×16像素组或任何其他像素组。除非本文另有说明,术语“块”可以包括超级块、宏块、片段、片或帧的任何其它部分。帧、块、像素或其组合可包括显示信息,例如辉度信息、色度信息或可用于存储、修改、传送或显示视频流或其一部分的任何其它信息。

图4是根据本公开的实施方案的编码器400的框图。编码器400可以在诸如图1所示的计算设备100或图2所示的计算和通信设备100a/100b/100c的设备中实现为例如存储在诸如图1所示的存储器150的数据存储单元中的计算机软件程序。计算机软件程序可以包括可以由诸如图1所示的处理器140的处理器执行的机器指令,并且可以使得设备如本文所述地编码视频数据。编码器400可以被实现为例如包括在计算设备100中的专用硬件。

编码器400编码诸如图3所示的视频流300输入视频流402。编码器400包括用于生成压缩的比特流404的前向路径。如图所示,前向路径包括帧内/帧间预测单元410、变换单元420、量化单元430以及熵编码单元440。编码器400可以包括重建路径(由断开的连接线指示)以重构用于编码另外的块的帧。如图4所示,重构路径可以包括去量化单元450、逆变换单元460、重构单元470和环路滤波单元480。编码器400的其他结构变型可以用于编码视频流402进行。

为了编码视频流402,可以以块为单位处理视频流402内的帧。因此,可从帧中的块识别当前块,且当前块可以被编码。

在帧内/帧间预测单元410处,可使用在单个帧内的帧内预测或可使用从帧至帧的帧间预测来编码当前块。帧内预测可以包括从先前已经编码和重构的当前帧中的样本生成预测块。帧间预测可包括从一个或多个先前构造的参考帧中的样本生成预测块。生成当前帧中的当前块的预测块可包括执行运动估计以生成指示参考帧中的适当参考块的运动向量。

帧内/帧间预测单元410从当前块(原始块)中减去预测块以产生残余块。变换单元420执行基于块的变换,其可包含将残余块变换为在例如频域中的变换系数。基于块的变换的示例包括karhunen-loève变换(klt)、离散余弦变换(dct)和奇异值分解变换(svd)。在一个示例中,dct包括将块变换到频域。dct产生基于空间频率的变换系数值,其中在矩阵的左上方具有最低频率(即,dc)系数,并且在矩阵的右下方具有最高频率系数。

量化单元430使用量化(也称为量化器)值或水平将变换系数转换为离散量化值,其可被称为量化的变换系数。量化的变换系数由熵编码单元440熵编码以产生熵编码的系数。熵编码可以包括使用概率分布度量。用于对块进行解码的熵编码系数和信息,其可以包括所使用的预测类型、运动向量和量化器值,被输出到压缩比特流404。可以使用各种技术来格式化压缩的比特流404,诸如运行长度编码(rle)和零游程译码。

重构路径可以用于维持编码器400和诸如图5所示的解码器500对应的解码器之间的参考帧同步。重建路径可以类似于下面讨论的解码过程,并且如图所示包括在逆量化单元450对量化的变换系数进行去量化,并且在逆变换单元460对去量化的变换系数进行逆变换,以产生导数残余块。重构单元470将由帧内/帧间预测单元410产生的预测块与导数残余块相加,以创建重构块。环路滤波单元480可应用于重构块以减少诸如块伪影失真。

编码器400的其它变型可以用于编码压缩的比特流404。例如,基于非变换的编码器可以在没有变换单元420的情况下直接量化残余块。量化单元430和去量化单元450可以被组合成单个单元。

图5是根据本发明的实施方案的解码器500的框图。解码器500可以在诸如图1所示的计算设备100或图2所示的计算和通信设备100a/100b/100c的设备中实现为,例如,存储在诸如图1所示的存储器150的数据存储单元中的计算机软件程序。计算机软件程序可以包括可以由诸如图1所示的处理器140的处理器执行的机器指令,并且可以使得设备解码如本文所述的视频数据。解码器500可以被实施为例如包括在计算设备100中的专用硬件。

解码器500接收诸如图4所示的压缩的比特流404的压缩的比特流502,并解码压缩的比特流502以生成输出视频流504。如图5的示例中所示,解码器500包括熵解码单元510、去量化单元520、逆变换单元530、帧内/帧间预测单元540、重构单元550、环路滤波单元560和去块滤波单元570。解码器500的其它结构变型可以用于解码压缩的比特流502。

熵解码单元510解码压缩的比特流502内的数据元素以产生经量化变换系数集合。熵解码单元510可以使用例如场境自适应的二进制算术解码。去量化单元520对量化的变换系数去量化,逆变换单元530对去量化的变换系数逆变换,以产生导数残余块,其可对应于由图4所示的逆变换单元460产生的导数残余块。使用从压缩的比特流502解码的报头信息,帧内/帧间预测单元540生成与在编码器400中创建的预测块相对应的预测块。在重构单元550,将预测块添加到导数残余块以创建重构块。环路滤波单元560可应用于重构块以减少块伪影。去块滤波单元570可应用于重构块以减少块失真。结果作为输出视频流504输出。

解码器500的其它变型可以用于解码压缩的比特流502。例如,解码器500可以在没有去块滤波单元570的情况下产生输出视频流504。

减少时间冗余可以包括使用帧之间的相似性,以使用基于一个或多个参考帧的相对少量的数据来编码帧。参考帧可以是视频流的先前编码的、解码的和重构的帧。例如,当前帧的块或像素可以类似于参考帧的空间对应的块或像素。当前帧的块或像素可以与不同部分处的参考帧的块或像素类似。在这种情况下,减少时间冗余包括生成指示当前帧中的块或像素的位置与参考帧中的块或像素的对应位置之间的空间差或转化的运动信息。

减少时间冗余可以包括识别与当前帧的当前块或像素相对应的参考帧或参考帧的一部分中的块或像素。例如,可以搜索可以存储在存储器中的参考帧或参考帧的部分,以寻找用于编码当前帧的当前块或像素的最佳块或像素。例如,搜索识别参考帧的块,其中参考块和当前块之间的像素值的差异被最小化,并且可以被称为运动搜索。搜索的参考帧的部分可以是有限的。例如,搜索的参考帧的部分(也称为搜索区域)可以包括参考帧的有限数量的行。识别参考块可以包括计算在搜索区域中的块的像素与当前块的像素之间的成本函数,诸如绝对差之和(sad)。可以提供多于一个参考框架。例如,可以从八个候选参考帧中选择三个参考帧。

参考帧中的参考块的位置与当前帧中的当前块之间的空间差通常表示为运动向量。参考块和当前块之间的像素值的差被称为差分数据、残余数据或者作为残余块。生成运动向量可以被称为运动估计。可以使用作为fx,y的笛卡尔坐标基于位置来指示当前块的像素。类似地,可以使用作为rx,y的笛卡尔坐标基于位置来指示参考帧的搜索区域的像素。可基于例如当前帧的像素与参考帧的对应像素之间的sad来确定当前块的运动向量(mv)。

对于帧间预测,编码器400可在块端点处传达用于预测块的编码的信息,包含,但不限于,预测模式、一个或多个预测参考帧、如果需要的一个或多个运动向量以及如果需要的子像素插值滤波器类型。

图6是根据本发明的实施方案的用于自适应的重叠块预测的方法的实例的流程图。自适应的重叠块预测可以实施在诸如图4所示的由帧内/帧间预测410进行的预测期间的编码器400的编码器中,或实施在诸如图5所示的由帧内/帧间预测540进行的预测器件的解码器500的解码器中。所示的自适应的重叠块预测包括在610基于当前块的预测参数来确定当前块的基本预测,在620识别邻近块的邻近预测参数,在630确定与当前块中的邻近块邻近的重叠区域,在640作为基本预测与基于邻近预测参数的预测的加权函数确定重叠区域的重叠预测,以及在650基于组合重叠预测来生成重叠预测块。

在610使用用于当前块的当前预测参数来进行用于当前块的基本预测。例如,用于帧间预测的预测参数可以包括参考帧和当前块的运动向量。可以使用当前块的基本预测来确定基本预测块。

在620识别邻近预测参数。识别邻近预测参数可以包括识别先前编码或解码的邻近块,并且对于每个先前编码或解码的邻近块,识别用于编码或解码邻近块的预测参数。邻近块可以是邻近于(或外围于)帧内的当前块的块。邻近块可以是以扫描顺序位于当前块之前的块。扫描顺序可以是光栅扫描顺序、波前扫描顺序、z字形扫描顺序等。

在630确定重叠区域。可以为在620识别的编码或解码的邻近块中的一个或多个确定当前块中的重叠区域。重叠区域可以包括在邻近于相应的邻近块的当前块内的区域,诸如像素分组。重叠区域确定可以以是否存在尺寸小于当前块的至少一个先前编码或解码的邻近块为条件。

在640确定用于在630识别的重叠区域的重叠预测。可基于在610确定的基本预测与使用来自对应的邻近块的邻近预测参数生成的预测的加权函数来确定重叠预测,以预测重叠区域内的当前块中的像素值。例如,对于重叠区域,可以使用对应的邻近块的预测参数来确定尺寸等于重叠区域的尺寸的预测块。基于基本预测块像素值和基于对应的邻近块的预测参数为重叠区域生成的预测块像素值的加权的组合,可以进行用于重叠区域的重叠预测。例如,重叠区域中的像素的像素值可以是的加权的平均的像素值,其来自基本预测块的像素值,和来自基于对应的邻近块的预测参数生成的用于重叠区域的预测块对应的像素值。还可以省略生成用于各个重叠区域的预测块,以有利于在从像素至像素的基础上生成重叠预测块。

在650,使用来自一个或多个邻近块的重叠预测来生成重叠预测块。例如,可以对当前块内的一个或多个重叠区域重复640的重叠预测,以形成重叠预测块。

可以基于基本预测来预测当前块不在空间上与当前块的重叠区域对应的部分。

可以将当前块的重叠预测块与基本预测块比较,并且基于比较,将基本预测块或重叠预测块用作当前块的预测块。例如,比较可以基于诸如绝对差之和的基于残余的误差度量,,其确定当前块与每个预测块之间的误差值。编码器400可以选择基本预测块或重叠预测块中产生较低的误差值的一个。

指示对当前块进行重叠预测的信息可包括在编码的比特流中。例如,可以在编码的比特流中指示用于重叠预测的加权的函数的类型的指示。可以省略来自编码的比特流的加权函数的指示,并且解码编码的比特流包括使用先前解码的相邻帧的场境信息来确定加权函数。例如,解码可以包括基于生成最小的基于残余的误差的邻近块预测参数来识别加权函数。

图7是根据本发明的实施方案的具有可变块尺寸的示例性基于块的预测的框图。当前块的至少一侧可以邻近于两个或更多个先前编码或解码的块。如所示,用于预测的当前块720由先前编码或解码的顶部邻近块721、722、723和左侧邻近块724包围。尽管在图2中示出了先前编码或解码的邻近块,在一些实施方案中,先前编码或解码的邻近块可在当前块的下方或右边或顶部、左边、底部或右边的某一组合(例如,取决于对扫描顺序)。

如图所示,在图7中,当前块720是16×16块,邻近块721是8×8块,邻近块722、723是4×4块,邻近块724是16×16块。尽管在图7中示出了16×16、8×8和4×4块,但是根据本公开可以使用任何其他块的尺寸。

可以针对当前块720相对于一个或多个先前编码或解码的邻近块的重叠预测确定重叠区域。例如,在限定的重叠区域内分组当前块720中的像素,其中为一个或多个顶部邻近块确定重叠区域,例如对应于邻近块721、722和733的重叠区域731、732和733以及对应于左侧邻近块724的重叠区域734,如当前块720的左半部分所示。如图7所示,重叠区域本身可以重叠,诸如重叠区域731和734所示,其中重叠区域731包括对应于顶部邻近块721和左侧邻近块724的重叠区域的交叉。如所示,重叠区域731-734在当前块720内,并且邻近于相应的对应邻近块721-724。

用于重叠预测的加权的函数可以确定重叠区域尺寸。重叠区域的尺寸可以对应于对应的邻近块的尺寸,诸如对应的列量度v、行量度w或行、列量度两者。v×w重叠区域尺寸可以对应于x×y邻近块尺寸,其中v=x并且w=y。例如,如图7所示,相对于8×8邻近块721确定在当前块720内的诸如8×8重叠区域731的重叠区域。

重叠区域的尺寸可对应于当前块的尺寸,例如对应的列量度v、行量度w或两者。在一些实施方案中,v×w重叠区域尺寸可对应于x′×y′当前块尺寸,其中v=x′且w=y’。作为示例,当前块可以小于相邻块,并且一个量度的重叠区域尺寸被限制为在邻近块的边界处的当前块的尺寸。作为另一示例,分别相对于4×4相邻块722和733确定如图7所示的4×8重叠区域732和733,并且行数对应于16×16当前块尺寸量度的一半,其中w=1/2y’=8。v×w重叠区域尺寸可对应于x′×y′当前块尺寸,其中v=x′/2和w=y’。例如,相对于16×16左相邻块724确定8×16重叠区域734。重叠区域的尺寸可以与邻近块尺寸和当前块尺寸两者相对应。可以使用重叠区域尺寸的其他变型。

在编码的比特流中包括指示将各种离散重叠区域尺寸中的哪一个用作所有重叠区域的共同尺寸的加权的函数索引。相关地,解码块可以包括解码索引以确定哪个离散重叠区域尺寸用于重叠预测加权的函数。作为示例,第一索引可以指示所有重叠区域具有诸如图7中所示的重叠区域732的第一量度等于邻近块边缘长度并且第二量度延伸当前块的长度的1/2的尺寸。第二索引可以指示所有重叠区域具有诸如图8中所示的重叠区域904的等于距离块边缘的第一量度和延伸当前块的长度的1/4的第二量度。编码可以包括根据邻近块的预测参数确定映射用于每个重叠区域的不同相对尺寸的加权的函数。例如,编码可以包括根据各种加权的函数生成多个预测块候选,确定用于每个候选的速率失真成本估计,以及选择提供最佳速率失真优化(例如,最低速率失真误差)的加权的函数。

图8是根据本公开的实施方式的重叠区域的示例性尺寸变化的框图。重叠区域的量度可以超过对应的邻近块的对应量度。例如,如图8所示,确定与邻近块722相对应的重叠区域902具有大于相应邻近块722中的水平像素数的水平尺寸,并且垂直尺寸相等。作为另一示例,根据邻近块的水平尺寸以及当前块的垂直尺寸的1/4来确定与邻近块722相对应的重叠区域904。重叠区域的水平和垂直量度都可以超过对应的相邻块的对应量度。重叠区域的水平和垂直量度都可以被相应的邻近块的对应量度超过。

可以通过使用一组离散尺寸函数来确定各种重叠区域尺寸,从该离散尺寸函数可以自适应地选择重叠区域尺寸作为当前块的预测参数和对应的邻近块的邻近预测参数之间的差的函数。当前块的运动向量与重叠区域的对应的邻近块的运动向量之间的比较可指示超过阈值的运动向量差,且相应地调节默认重叠区域尺寸的一个或多个量度。邻近块和当前块之间的预测参数的差的确定可以基于分别用于邻近块和当前块的参考帧之间的时间距离的比较。例如,用于邻近块的参考帧可以是先前编码的帧,并且当前块的参考帧可以是在先前编码的帧之前编码的帧,并且可以通过在参考帧之间的帧的数量或时间距离来测量差。

可以根据帧间预测来预测邻近块和当前块,在这种情况下,加权的函数的重叠区域尺寸可以根据上述描述。可以根据帧内预测来预测邻近块或当前块中的一个,而根据帧间预测来预测另一个。在这种情况下,预测参数的可用比较可能无法使用。当预测参数的比较无法使用时,加权函数可以根据当前块尺寸的预定函数来定义重叠区域尺寸。例如,重叠区域尺寸可以被定义为小重叠区域,诸如基于当前块长度的1/4。作为另一示例,重叠区域的尺寸可以被设置为零或无重叠区域,因为邻近预测可以被认为与当前块预测的差异太大。在后一种情况下,可以省略重叠预测。

定义的重叠区域尺寸可以在指示没有重叠区域的(0,0)和指示当前块尺寸的x′×y’范围之间。用于重叠预测的加权的函数可以基于预测参数之间的差来调节定义的重叠区域尺寸。例如,对于诸如图7中所示的重叠区域732的重叠区域,邻近块722的运动向量值可以非常类似于诸如图7所示的当前块720当前块的运动向量值。因此,可以省略对所定义的重叠尺寸的尺寸调节。作为另一实例,诸如图7中所示的邻近块722的邻近块的运动向量值可以不同于诸如图7所示的当前块720的当前块的运动向量值,该差可以超过所建立的阈值。在这种情况下,可以调节重叠区域尺寸。例如,如图8所示,重叠区域可以如对于重叠区域902所示那样被扩展,或者可以如对于重叠区域904所示那样被缩小。基于预测参数之间的差来调适重叠区域尺寸可以包括调适重叠预测的加权的函数,使得取决于优化当前块的重叠预测的预测参数,可以加权权重以有利于当前块预测参数或邻近块预测参数的贡献。例如,通过设定重叠区域的至少一个量度为小于当前块的对应量度,加权函数可以将来自邻近块预测参数的贡献加权为对于当前块中的一些像素为零。

在当前块和邻近块的预测参数之间的差超过阈值(即,重叠区域的尺寸为0×0)的情况下,可以省略重叠区域。在当前块和邻近块的预测参数之间的差很小或没有的情况下,可以省略重叠区域。例如,当前块预测可以基本上类似于邻近块预测,预测参数之间的差可以小于最小阈值,并且重叠区域的尺寸可以是0×0。

可以使用用于当前块720的预测参数为当前块720确定基本预测。然后,基本预测可以是每个重叠区域731-734的基本预测。例如,可以为整个当前块确定基本预测块,使得当为当前块720的重叠区域中的每个像素确定重叠预测时,可以存储用于基本预测的像素值以供稍后使用。

可以基于与重叠区域相关联的邻近块的预测参数为诸如图7中所示的重叠区域731-734的每个重叠区域确定预测。例如,使用包括对应的参考帧和用于诸如图7中所示的邻近块722的邻近块的运动向量的预测参数,为诸如图7中所示的重叠区域732的重叠区域中的像素确定预测。

基于相应的邻近预测参数,可以为诸如图7所示的重叠区域731-734的重叠区域确定重叠预测为基本预测和预测的加权的函数。例如,在诸如图7中所示的重叠区域732的重叠区域中的每个像素的重叠预测是基本预测值与基于相应邻近预测参数生成的预测像素值的平均。对于当前块中的像素可存在多于一个重叠区域。例如,诸如图7中所示的重叠区域731、732和733的两个或多个邻近重叠区域可以重叠,并且重叠预测被确定为基于用于当前块的预测参数的基本预测的平均,以及基于与重叠区域相关联的n个邻近块中的每一个的相应预测参数的n个预测。例如,参考图7,重叠区域731和734中的像素对应于基于相应邻近预测参数(即,n=2)的两个预测,其可以与基本预测平均以确定重叠预测。重叠区域731中的每个像素可以被确定为使用当前块720的预测参数的基本预测、基于邻近块721的预测参数的预测以及基于邻近块724的预测参数的预测的平均。

用于重叠预测的加权的函数可以是当前块的中心与与重叠区域相关联的邻近块的中心之间的距离的函数。例如,加权的函数可以确定有利于更小尺寸的邻近块的重叠预测,其包括平均比更大的邻近块更靠近当前块的像素,并且因此可以更可靠并且提供当前块的更好的预测块。例如,与较大重叠区域734相比,加权函数加权重叠区域732使其对当前块720的重叠预测贡献更大,因为邻近块722的中心与邻近块724的中心相比更靠近当前块720的中心。

图9是根据本发明的实施方案的用于重叠预测的示例性加权的函数的框图。可以通过第一预测和n个邻近的基于块的预测的加权的平均来优化重叠预测。例如,p0指示使用当前块预测参数的预测,ω0指示用于预测p0的权重,pn指示使用邻近块预测参数的预测,ωn指示用于预测pn的权重,并且像素952的重叠预测op的加权被表达为以下等式(1):

可根据基于相对于与重叠区域相关联的邻近块的相对像素位置的加权的函数来加权重叠区域中的每一像素处的一个或多个预测像素值。例如,可以加权重叠预测,使得当像素被定位于相对更靠近邻近块时,基于邻近块预测参数的预测的贡献更大。例如,图9所示的重叠区域734中的像素952具有到对应邻近块724的中心的相对距离954和到当前块720的中心的相对距离955。重叠预测权重ω0、ωn是相对距离954、955的函数。例如,d0指示从像素到当前块的中心的相对距离,dn指示从像素到相邻块n的中心的相对距离,并且加权的函数是相对距离值的比例,其可以被表达为以下等式(2)和(3):

重叠预测权重ω0、ωn可以是诸如左侧邻近块724的水平相对距离964的邻近块和当前块之间的边界与像素之间的定向相对距离的函数,。例如,加权函数可以基于升余弦窗函数,其中对于位于重叠区域n的邻近边缘的像素,权重ω0、ωn相等,并且对于距离邻近块n最远的重叠区域的边缘的像素,权重为ω0=1、ωn=0。作为另一示例,重叠预测权重ω0、ωn可以是诸如像素953相对于顶部邻近块723的垂直相对距离963的像素与邻近块的最近边缘之间的垂直相对距离的函数。

用于重叠预测的加权函数的类型可以利用索引编码,诸如通过图4所示的编码器400,并且包括在诸如图4所示的压缩的视频比特流404的压缩的视频比特流中。索引是用于解码的指示,例如由图5所示的解码器500指示,其中的加权的函数用于重叠预测。例如,各种升余弦加权可以被映射到第一组索引,并且基于到块中心点的相对距离的各种加权函数可以被映射到第二组索引。

用于重叠预测的加权的函数可以是本公开中描述的任何或所有加权的函数的组合。例如,加权的函数可以被实施为通过对重叠区域尺寸进行自适应的调节、通过加权用于当前块的基本预测和重叠预测中的每一个或者其组合来加权重叠预测。

词语“示例”或“方面”在本文中用于表示用作示例、实例或说明。本文描述为“实例”或“方面”的任何方面或设计不一定被解释为比其它方面或设计优选或有利。相反,词语“示例”或“方面”的使用旨在以具体方式呈现概念。如本申请中所使用的,术语“或”旨在表示包括性的“或”而不是排他性的“或”。也就是说,除非另有规定或从场境显而易见,否则“x包括a或b”意在表示任何自然的包括性排列。也就是说,如果x包括a;x包括b;或x包括a和b两者,则在任何前述实例下满足“x包括a或b”。此外,除非另有说明或从场境中显而易见地指示单数形式,否则本申请和所附权利要求中使用的冠词“一”和“一个”通常应被解释为意指“一个或多个”。此外,贯穿全文使用术语“实施例”或“实施方式”并不旨在表示相同的实施例或实施方式,除非如此描述。如本文所使用的,术语“确定”和“识别”或其任何变型包括选择、查明、计算、查找、接收、确定、建立、获得或识别或使用图1中所示的一个或多个设备以无论任何方式确定。

此外,为了说明的简单起见,尽管本文的附图和描述可以包括步骤或阶段的序列或系列,但是本文公开的方法的元件可以以各种顺序和/或同时发生。另外,本文公开的方法的元素可以与本文未明确呈现和描述的其它元素一起发生。此外,可能不需要本文所述的方法的所有元素来实施根据所公开主题的方法。

发送站100a和/或接收站100b(以及其上存储的和/或由此执行的算法、方法、指令等)的实施方式可以以硬件、软件或其任何组合来实现。硬件可以包括例如计算机、知识产权(ip)核、专用集成电路(asic)、可编程逻辑阵列、光学处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处理器、数字信号处理器或任何其他合适的电路。在权利要求中,术语“处理器”应当被理解为单独地或组合地包括任何前述硬件。术语“信号”和“数据”可互换使用。此外,发送站100a和接收站100b的部分不一定必须以相同的方式实现。

此外,在实施方式中,例如,发送站100a或接收站100b可以使用计算机程序来实现,计算机程序在被执行时执行本文所述的相应方法、算法和/或指令中的任一个。另外或可选地,例如,可以使用可以包含用于执行本文所述的任何方法、算法或指令的专用硬件的专用计算机/处理器。

发送站100a和接收站100b可以例如在实时视频系统中的计算机上实现。或者,发送站100a可以在服务器上实现,并且接收站100b可以在与服务器分离的设备上实现,例如手持通信设备。在这种情况下,发送站100a可以使用编码器400将内容编码为编码视频信号,并将编码的视频信号发送到通信设备。继而,通信设备然后可以使用解码器500解码编码的视频信号。或者,通信设备可以解码在通信设备上本地存储的内容,例如,未由发送站100a发送的内容。其他合适的发送站100a和接收站100b的实现方案是可用的。例如,接收站100b可以是通常固定的个人计算机而不是便携式通信设备,和/或包括编码器400的设备也可以包括解码器500。

此外,实施方式的全部或一部分可以采取可从例如有形计算机可用或计算机可读介质访问的计算机程序产品的形式。计算机可用或计算机可读介质可以是能够例如有形地包含、存储、传送或传输由任何处理器使用或与任何处理器结合使用的程序的任何设备。介质可以是例如电子、磁性、光学、电磁或半导体器件。也可使用其它合适的介质。

已经描述了上述实现以便允许容易地理解本申请而不是限制。相反,本申请覆盖包括在所附权利要求的范围内的各种修改和等同布置,其范围符合最宽的解释,以便包括法律允许的所有这样的修改和等同结构。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1