用于视频压缩的贴片拷贝的制作方法

文档序号:11594809阅读:217来源:国知局



背景技术:

可以将数字视频用于例如通过视频会议、高清晰度视频娱乐、视频广告以及用户生成的视频共享的远程商务会议。由于在视频数据中涉及到的大量数据,需要高性能压缩以用于传输和存储。因此,提供通过具有有限带宽的通信信道发送的高分辨率视频,诸如使用贴片拷贝的视频编码,将是有利的。



技术实现要素:

本公开涉及编码和解码视频流数据以用于传输或存储。在本文中公开了用于使用贴片拷贝编码和解码的系统、方法以及装置的方面。

本文中的教导的一个方面是一种用于使用贴片拷贝的视频编码的方法。使用贴片拷贝的视频编码可以包括:由处理器响应于存储在非临时计算机可读介质上的指令通过从帧识别贴片而编码来自于输入视频流的帧,通过编码来自于贴片中的第一贴片而生成第一编码的贴片,在输出比特流中包括第一编码的贴片,通过编码来自于贴片中的第二贴片而生成第二编码的贴片,确定第一编码的贴片与第二编码的贴片之间的差在阈值内,在该差在阈值内的条件下,识别偏移,该偏移指示帧中的第一贴片和帧中的第二贴片的空间位置之间的差,在输出比特流中包括该偏移,从输出比特流省略第二编码的贴片,以及发送或存储输出比特流。

本文中的教导的另一方面是一种用于使用贴片拷贝的视频解码的方法。使用贴片拷贝的视频解码可以包括:接收包括表示视频数据的帧的信息的编码的比特流,由处理器响应于存储在非临时计算机可读介质上的指令解码帧。使用贴片拷贝的视频解码可以包括解码帧,解码帧包括解码贴片,解码贴片包括解码用于贴片的报头,该报头包括贴片拷贝模式标志和表示用于贴片主体的大小的信息。在贴片拷贝模式标志指示值为零的条件下,通过解码表示贴片主体的编码的比特流流中的信息而对应于当前贴片生成解码的贴片。在贴片拷贝模式标志指示值为一的条件下,包括在贴片报头中的偏移信息被解码,该偏移信息指示帧中的当前贴片与帧中的参考贴片的空间位置之间的差。使用贴片拷贝的视频解码可以包括定位表示参考贴片的贴片内容信息并通过解码表示参考贴片的编码的信息而生成对应于当前贴片的解码的贴片。使用贴片拷贝的视频解码可以包括输出或存储解码的贴片。

本文中的教导的另一方面是一种用于使用贴片拷贝的视频解码的方法,其可以包括由处理器响应于存储在非临时计算机可读介质上的指令而解码来自于接收到的编码的视频比特流中的帧,从编码的视频比特流解码偏移,该偏移指示帧中的当前贴片和帧中的参考贴片的空间位置之间的差。使用贴片拷贝的视频编码可以包括基于该偏移从编码的视频比特流识别表示参考贴片的编码的信息。使用贴片拷贝的视频编码可以包括通过解码表示参考贴片的编码的信息而生成对应于当前贴片的解码贴片,解码的视频比特流省略了表示当前贴片的编码的信息。使用贴片拷贝的视频编码可以包括输出或存储解码的贴片。

本发明的进一步的方面是一种被配置为执行前述段落中的步骤的装置。该装置可以包括处理器和存储指令的非临时存储器,该指令使处理器进行前述段落中的步骤。

下面将另外详细地描述这些及其它方面的变化。

附图说明

这里的描述对附图进行参考,在附图中相同的参考标号遍及多个图指代相同部分,除非另外说明。

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

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

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

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

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

图6是根据本公开的实施方式的帧的一部分的表示的框图。

图7是根据本公开的实施方式的帧贴片化的示例的图。

图8是根据本公开的实施方式的列贴片化的帧的示例的图。

图9是根据本公开的实施方式的行贴片化的帧的示例的图。

图10是根据本公开的实施方式的行和列贴片化的帧的示例的图。

图11是根据本公开的实施方式的包括贴片信息的输出比特流结构的示例的图。

图12是根据本公开的实施方式的使用贴片拷贝的编码的框图;

图13是根据本公开的实施方式的使用贴片拷贝被编码的包括贴片信息的输出比特流结构的示例的框图。

图14是根据本公开的实施方式的使用贴片拷贝解码的框图。

具体实施方式

视频压缩方案可以包括将每个图像或帧分解成诸如块的较小部分,并使用用以限制针对输出中的每个块所包括的信息的技术来生成输出比特流。编码的比特流可以被解码以从该有限信息重新创建块和源图像。可以通过减少空间冗余、减少时间冗余或其组合来限制针对输出中的每个块所包括的信息。然而,编码的益处可能受到资源的可用性的限制,并且某些数据的丢失或毁坏可能影响其它数据的编码。例如,诸如分区的编码技术可以通过并行性来减少解码时间;然而,分区可以是依赖性的,使得一个分区的毁坏或丢失可以影响其它分区的解码。

根据本文中的教导,编码可以包括使用贴片化的编码和解码以改善错误恢复和并行性,并且减少资源利用和延迟。使用贴片化的编码和解码可以包括:将帧列贴片化,使得每个贴片包括贴片宽度乘以帧高度的块;将帧行贴片化,使得每个贴片包括帧宽度乘以贴片高度的块;或者将帧行和列贴片化,使得每个贴片包括贴片宽度乘以贴片高度的块。列贴片化可以改善错误恢复和并行性,并且可以利用较少的资源。每个列贴片可以独立于其它贴片地被编码。行贴片可以通过无关性来改善错误恢复,并且可以减少延迟。行贴片可以独立于其它贴片被编码,或者可以包括依赖性。然而,在某些实施方式中,诸如大规模贴片编码,贴片编码可以不利用多个贴片间冗余。

贴片编码可以包括贴片拷贝以通过减少贴片间冗余提升编码效率。贴片拷贝的实施方式可以包括评估候选编码的贴片,诸如邻近于当前贴片的先前编码的贴片,以确定候选贴片的编码的内容与编码的当前贴片相比是否是相同的或者在相似性的阈值内。与编码的当前贴片相比相同或者在相似性阈值内的候选贴片可以被识别为参考贴片,并且当前贴片可以被识别为拷贝贴片,其中,当前贴片的编码的内容被从输出省略,并且参考贴片的标识符被作为当前贴片包括在输出中。

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

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

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

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

ui130包括能够与用户对接的任何单元,诸如虚拟或物理键区、触控板、显示器、触摸显示器、扬声器、扩音器、视频相机、传感器或其任何组合。ui130可以操作地耦合到如所示的处理器140或者诸如电源170的计算设备100的任何其它元件。虽然被示为单个单元,但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可以是用于对通信接口110供电的任何适当设备。例如,电源170可以包括有线电源;一个或多个干电池,诸如镍镉(nicd)、镍锌(nizn)、镍金属氢化物(nimh)、锂离子(li离子);太阳能电池;燃料电池;或能够对通信接口110供电的任何其它设备。通信接口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可以是自组织网络。网络220可以省略接入点210a/210b中的一个或多个。计算和通信系统200可以包括图2中未示出的设备、单元或元件。例如,计算和通信系统200可以包括更多的计算设备、网络以及接入点。

图3是根据本公开的实施方式的在编码和解码中使用的视频流300的图。诸如由视频相机捕捉的视频流或由计算设备生成的视频流的视频流300包括视频序列310。视频序列310可以包括邻近帧序列320。虽然示出了三个邻近帧320,但视频序列310可以包括任何数目的邻近帧320。来自邻近帧320的每个帧330可以表示来自视频流的单个图像。帧330包括块340。虽然在图3中未示出,但块340可以包括像素。例如,块可以包括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以生成编码(压缩)的比特流404。编码器400包括用于生成压缩的比特流404的前向路径。如所示,前向路径包括内部/中间预测单元410、变换单元420、量化单元430以及熵编码单元440。编码器400可以包括用以重构帧以编码其它块的重构路径(用虚线连接线指示)。在图4中,重构路径包括去量化单元450、逆变换单元460、重构单元470以及环路滤波单元480。可以使用编码器400的其它结构变体来编码视频流402。

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

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

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

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

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

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

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

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

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

可以使用解码器500的其它结构变体来解码压缩的比特流502。例如,解码器500可以在没有去块滤波单元570的情况下输出视频流504。如果编码器400省略了量化单元430和去量化单元450,则还可以省略去量化单元520。

图6是根据本公开的实施方式的诸如图3中所示的帧330的帧的部分600的表示的框图。如所示,帧的部分600包括在笛卡尔平面或矩阵中分两行和两列的四个64×64块610。在某些实施方式中,64×64块可以是最大编码单元,n=64。每个64×64块可以包括四个32×32块620。每个32×32块可以包括四个16×16块630。每个16×16块可以包括四个8×8块640。每个8×8块640可以包括四个4×4块650。每个4×4块650可以包括16个像素,其可以在笛卡尔平面或矩阵中的每个各块中分四行和四列来表示。像素包括表示在帧中捕捉的图像的信息,诸如辉度信息、色彩信息以及位置信息。块,诸如所示的16×16像素块,可以包括辉度块660,其包括辉度像素662;以及两个色度块670/680,诸如u或cb色度块670以及v或cr色度块680。色度块670/680包括色度像素690。例如,辉度块660包括16×16个辉度像素662,并且色度块670/680中的每一个包括如所示的8×8个色度像素690。虽然示出了块的一个布置,但可以使用任何布置。例如,虽然图6示出了n×n块,但在某些实施方式中,可以使用n×m块,其中,n≠m。例如,可以使用32×64块、64×32块、16×32块、32×16块或任何其他尺寸块。在某些实施方式中,可以使用n×2n块、2n×n块或其组合。

视频编码可以包括有序的块级编码。有序的块级编码包括按顺序编码帧的块。例如,按光栅扫描顺序,识别块并从帧或者帧的部分的左上角中的块开始处理,并且沿着行从左向右且从顶行至底行进行,依次识别每个块以用于处理。帧的顶行和左列中的64×64块可以是被编码的第一块,而紧挨着第一块右侧的64×64块可以是被编码的第二块。从顶部起的第二行可以是被编码的第二行,使得第二行的左列中的64×64块可以在第一行的最右列中的64×64块之后被编码。

编码块可以包括使用四叉树编码,其可以包括按照光栅扫描顺序编码块内的较小块单元。例如,可以使用四叉树编码对图6中所示的帧的部分的左下角中所示的64×64块进行编码,其中,编码左上方的32×32块,然后编码右上方的32×32块,然后编码左下方的32×32块,并且然后编码右下方的32×32块。可以使用四叉树编码对每个32×32块编码,其中,编码左上方的16×16块,然后编码右上方的16×16块,然后编码左下方的16×16块,并且然后编码右下方的16×16块。可以使用四叉树编码对每个16×16块编码,其中,编码左上方的8×8块,然后编码右上方的8×8块,然后编码左下方的8×8块,并且然后编码右下方的8×8块。可以使用四叉树编码对每个8×8块编码,其中,编码左上方的4×4块,然后编码右上方的4×4块,然后编码左下方的4×4块,并且然后编码右下方的4×4块。在某些实施方式中,针对16×16块可以省略8×8块,并且可以使用四叉树编码对16×16块进行编码,其中,编码左上方的4×4块,然后按照光栅扫描顺序编码16×16块中的其它4×4块。

视频编码可以包括通过例如从相应编码的帧省略原始帧中的某些信息来压缩包括在原始帧或输入帧中的信息。可以用减少谱冗余、减少空间冗余、减少时间冗余或其组合来实现压缩。

减少谱冗余可以包括使用基于辉度分量(y)和两个色度分量(u和v或cb和cr)的色彩模型,其被称为yuv或ycbcr色彩模型或色彩空间。使用yuv色彩模型可以包括使用相对大量的信息来表示帧的部分的辉度分量,并且使用相对少量的信息来表示用于该帧部分的每个相应色度分量。例如,可以通过可以包括16×16像素块的高分辨率辉度分量并且通过两个较低分辨率色度分量,其中的每一个将帧的部分表示为8×8像素块,来表示帧的一部分。像素指示值,例如在0至255范围内的值。可以使用例如八个比特来存储或发送像素。虽然参考yuv色彩模型描述了本公开,但可以使用任何色彩模型。

减少空间冗余可以另外或替换地包括使用例如离散余弦变换(dct)将块变换到频域中。诸如图4中所示的变换单元420的编码器的单元可以基于空间频率使用变换系数值来执行dct。

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

减少时间冗余可以包括识别参考帧或参考帧的部分中的块或像素,其与当前帧的当前块或像素相对应。例如,参考帧或参考帧的部分可以被存储在存储器中。可以为用于编码当前帧的当前块或像素的最佳块或像素搜索参考帧。例如,该搜索识别参考帧的块,对于该参考帧的块而言,参考块与当前块之间的像素值的差被最小化。该搜索可以称为运动搜索。可以限制被搜索的参考帧的部分(即,搜索区)。例如,搜索区可以包括有限行数的参考帧。识别参考块可以包括计算搜索区中的块的像素与当前块的像素之间的成本函数,诸如绝对差之和(sad)。

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

虽然在本文中的描述为了清楚起见参考帧的矩阵或笛卡尔表示,但帧可以在任何数据结构中被存储、发送、处理或其组合,使得可以针对帧或图像而高效地表示像素值。例如,可以在诸如所示的矩阵的二维数据结构中或者诸如向量数组的一维数据结构中存储、发送和/或处理帧。帧的诸如所示的二维表示的表示可以对应于帧作为图像的渲染中的物理位置。例如,帧的左上角中的块的左上角中的位置与帧作为图像的渲染的左上角中的物理位置相对应。

可以通过将块划分成一个或多个分区来改善基于块的编码效率。分区可以是矩形分区,矩形包括正方形。使用分区的视频编码可以包括从多个候选分区方案之中选择分区方案。例如,用于64×64编码单元的候选分区方案可以包括尺寸在从4×4个像素至64×64个像素范围内的矩形尺寸分区,诸如4×4、4×8、8×4、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32或64×64个像素。使用分区的视频编码可以包括全分区搜索,其包括通过使用每个可用的候选分区方案对编码单元编码并选择诸如产生最少速率失真错误的方案的最佳方案来选择分区方案。

编码视频帧可以包括识别用于编码诸如块610的当前块的分区方案。识别分区方案包括确定要编码块为可以是如所示的64×64的最大编码单元大小的单个分区,还是将块划分成多个分区,多个分区可以与诸如所示的32×32块620、16×16块630或8×8块640的子块相对应。识别分区方案可以包括确定是否要划分成一个或多个更小分区。例如,可以将64×64块划分成四个32×32分区。四个32×32分区中的三个可以作为32×32分区被编码,并且可以将第四个32×32分区进一步划分成四个16×16分区。四个16×16分区中的三个可以作为16×16分区被编码,并且可以将第四个16×16分区进一步划分成四个8×8分区,其中的每一个可以作为8×8分区被编码。识别分区方案可以包括使用分区决策树。

用于当前块的视频编码可以包括从多个候选编码模式中识别最佳编码模式,这提供处理具有各种统计特性的视频信号的灵活性,并且常常改善压缩效率。例如,视频编码器可以评估每个候选编码模式以识别最佳编码模式。该最佳编码模式可以是使得用于当前块的诸如速率失真成本的错误度量最小化的编码模式。可以通过基于当前块与相应预测块之间的相似性来限制可用候选编码模式的集合,从而降低搜索候选编码模式的复杂性。可以通过进行定向细化模式搜索来降低搜索每个候选编码模式的复杂性。例如,可以针对候选块大小的有限集,诸如16×16、8×8以及4×4,生成错误度量,可以将错误度量按照递降顺序组织,并且可以评估附加候选块大小,诸如4×8和8×4块大小。

图7是根据本公开的实施方式的贴片的帧的示例的图。诸如图3中所示的帧330的帧700包括块710。例如,帧700可以包括如所示的块710的二维8×8矩阵、块的16×16矩阵、块的64×64矩阵或者任何其它能够表示视频序列的图像的块的矩阵或配置。如所示,帧700被布置为具有块710的行和列的矩阵。行中的块的数目或基数在本文中称为帧宽度。列中的块的数目或基数在本文中称为帧高度。例如,图7中所示的帧700具有八的帧宽度,指示每个帧行的八个水平邻近块的基数,以及八的帧高度,指示每个帧列的八个垂直邻近块的基数。

虽然在图7中未示出,但块710可以包括像素。例如,块可以包括16×16的像素组、8×8的像素组、8×16的像素组或任何其它像素组。块710可以被布置为具有像素的行和列的矩阵。行中的像素的数目或基数在本文中称为块宽度。列中的像素的数目或基数在本文中称为块高度。

贴片化包括组织帧成为子区段或贴片。例如,帧可以被如图8中所示的列贴片化、如图9中所示的行贴片化、或者可以使用如图10中所示的列贴片化和行贴片化的组合来组织。

贴片化可以改善用于存储或发送视频序列的错误恢复。例如,每个贴片可以独立于每个其它贴片地被编码和解码。丢失或毁坏的贴片,诸如在通过诸如udp网络连接的有损网络连接的传输期间部分地或完全丢失或毁坏的贴片,不影响解码其它贴片。

贴片化可以改善用于编码和解码视频序列的并行性。例如,每个贴片可以独立于每个其它贴片地被编码和解码。可以使用例如多个处理器、多个编码器、多个核或其组合并行地编码或解码多个贴片。并行处理增加编码或解码速度。

贴片化可以降低硬件利用率。视频帧可以被逐块地解码,并且使用块高度乘以帧宽度的临时存储缓冲器来缓冲解码的结果。例如,在16000像素宽且具有64×64像素的块大小的视频帧中,每个像素可以利用一个字节的存储,使得解码帧利用64×16000字节或1mb的临时存储器来存储块以用于重构。相反地,可以具有最小贴片宽度的列贴片化的帧被独立于其它贴片地解码。解码可以包括利用块高度乘以贴片宽度的存储器来缓冲解码的结果。例如,在4000像素宽的贴片中,解码贴片利用64×4000字节或256kb的临时存储器(缓冲器)。利用较少的存储器缓冲器资源降低硬件成本。

贴片化可以减少延迟。这能够在与编码帧中的其他贴片同时地发送或存储帧中的一个或多个编码的贴片时发生。在示例中,经由速率限制带宽传输介质以25fps和每帧40ms发送时间,视频流可以被编码并被发送用于实时通信。与编码帧中的其它贴片同时地发送一个或多个编码的贴片将延迟减少(n_rows-1)×40ms/n_rows。例如,针对两个行(n_rows=2),延迟减少了20ms,并且针对四个行(n_rows=4),延迟减少了30ms。

图8是根据本公开的实施方式的列贴片化的帧800的示例的图。除了列贴片化的帧800包括列贴片820/830,列贴片化的帧800类似于图6中所示的帧的部分600。列贴片的行中的块810的数目或基数在本文中被称为贴片宽度。列贴片的列中的块810的数目或基数可以是帧高度。例如,图8中所示的列贴片820/830每个具有四的贴片宽度,指示每个贴片行的四个水平邻近块810的基数,和八的帧高度,指示每个贴片列的八个垂直邻近块810的基数。

图9是根据本公开的实施方式的行贴片化的帧900的示例的图。除了行贴片化的帧900包括行贴片化920/930,行贴片化的帧900类似于图6中所示的帧的部分600。行贴片的列中的块910的数目或基数在本文中称为贴片高度。行贴片的行中的块910的数目或基数可以是帧宽度。例如,图9中所示的行贴片920/930每个具有四的贴片宽度,指示每个贴片列的四个水平邻近块910的基数,和八的帧宽度,指示每个贴片行的八个水平邻近块910的基数。

图10是根据本公开的实施方式的行和列贴片化的帧1000的示例的图。除了行和列贴片化的帧1000包括行和列贴片1020/1030,行和列贴片化的帧1000类似于图6中所示的帧的部分600,。行和列贴片的列中的块1010的数目或基数在本文中称为贴片高度。行和列贴片的行中的块1010的数目或基数在本文中称为贴片宽度。例如,图10中所示的行和列贴片1020/1030每个具有四的贴片宽度,指示每个贴片列的四个水平邻近块1010的基数,和二的贴片宽度,指示每个贴片行的两个水平邻近块1010的基数。

图11是根据本公开的实施方式的包括贴片信息的输出比特流结构的示例的框图。在本示例中,输出比特流包括在输出比特流1100中组织的编码的视频数据。例如,如所示,输出比特流1100包括表示帧1110或帧序列的信息。

如所示,表示帧1110的信息包括帧报头1112和帧主体1114。帧主体1114包括表示贴片1120/1130/1140的信息。表示贴片112/1130/1140的信息包括贴片报头1122/1132/1142和贴片主体1124/1134/1144。例如,用于贴片1120的在左侧示出的贴片信息包括贴片报头1122和贴片主体1124;用于贴片1130的在中心示出的贴片信息包括贴片报头1132和贴片主体1134;并且用于贴片1140的在右侧示出的贴片信息包括贴片报头1142和贴片主体1144。

贴片主体1124/1134/1144包括对应于贴片的视频内容,其可以是压缩的视频内容。贴片报头1122/1132/1134包括各贴片控制参数,诸如贴片内容数据大小(tds)。贴片内容数据大小指示比特流中的编码的贴片内容的诸如比特数的大小,诸如相应贴片主体的大小。编码的贴片的大小可以是贴片报头的大小与贴片内容数据大小的和。

解码器可以至少部分地基于贴片报头中所指示的信息来识别比特流中的贴片的位置。例如,解码器从比特流中的当前位置开始解码比特流,其可以与诸如用于图11中所示的最左侧贴片1120的贴片报头1122的贴片报头的起始相对应。贴片报头1122指示相应贴片主体1124的贴片内容数据大小。解码器可以将下一或后续贴片1130的起始的比特流位置确定为当前贴片的起始的比特流位置、贴片报头的大小以及贴片内容数据大小的和。

例如,贴片报头1122/1132/1142可以具有定义的大小hs,诸如八个比特(hs=8),并且贴片报头在比特流中的识别的位置或方位n,诸如方位或比特流位置100(n=100)处,开始。贴片报头可以被包括在比特流中从诸如比特流位置100的比特流位置n到诸如比特流位置107的比特流位置n+7(n+hs-1)的八个比特处。贴片报头指示贴片主体的贴片内容数据尺寸,诸如十个比特(tds=10)。贴片主体可以被包括在比特流中从诸如比特流位置108的贴片报头之后的比特流位置n+hs到诸如比特流位置117的比特流位置n+hs+tds-1的十个比特处,并且后续贴片可以从诸如比特流位置118的后续位置n+hs+tds处被包括在比特流中。

如图11中所示的输出可以包括用于贴片的编码的内容,其相对于先前包括在输出比特流中的贴片的编码的内容而言是冗余的。在示例中,用于诸如在图11中的左侧示出的贴片1120的第一贴片的编码的内容可以在对应于用于第一贴片的诸如贴片主体1124的贴片主体的输出比特流的部分中被包括在输出比特流流中。用于按照扫描顺序且在帧中空间上邻近于的第一贴片的后续贴片的编码的内容可以与包括在用于第一贴片的输出比特流中的编码的内容相同,并且可以在对应于用于第二贴片的诸如贴片主体1134的贴片主体的输出比特流部分中被包括在输出比特流中。

图12是根据本公开的实施方式的使用贴片拷贝的编码的框图。在某些实施方式中,可以在诸如图4中所示的编码器400的编码器中实现使用贴片化拷贝的编码。如所示,使用贴片化拷贝的编码包括在1200识别贴片,在1210编码第一贴片,在1220输出第一编码的贴片,在1230生成第二编码的贴片,在1240确定第二编码的贴片是否与先前编码的贴片匹配,在1250输出第二编码的贴片,在1260识别参考贴片偏移,在1270输出参考贴片偏移,在1280从输出省略第二编码的贴片,以及在1290发送或存储输出。

虽然在图12中并未单独地示出,但在某些实施例中可以在1200识别输入视频序列的当前帧。为了编码输入视频序列识别当前帧,诸如图3中所示的帧330,可以包括识别输入视频流,诸如图3中所示的视频流300。

在1200识别贴片。例如,可以如图7-10中所示从输入视频序列的当前帧识别一个或多个贴片。可以针对帧识别少数的贴片,诸如四个或八个贴片。可以针对帧识别大量的贴片,诸如1024×1024个贴片。虽然图7-10示出了使用少数的行贴片化、列贴片化或行和列贴片化的矩形贴片的示例,但可以使用任何其它数目、布置、大小或形状的贴片来实现使用贴片拷贝的视频编码。例如,可以使用诸如包括64×64个像素的贴片的正方形贴片来实现使用贴片拷贝的视频编码。该像素可以在一个或多个块中或者在任意形状的贴片中。

在1210开始编码贴片。例如,在1200编码来自从当前帧识别的贴片的一个或多个贴片以在1210生成熵编码的贴片。可以按照扫描顺序,诸如光栅扫描顺序,将贴片编码。为了简单和清楚起见,在本文中参考按照光栅扫描顺序编码贴片来描述贴片拷贝;然而,可以使用任何扫描顺序来实现贴片编码。

在1210生成第一编码的贴片可以包括例如通过诸如图4中所示的内部/中间预测单元410预测编码单元预测编码、通过诸如图4中所示的变换单元420的变换编码单元变换编码、通过诸如图4中所示的量化单元430的量化单元量化、通过诸如图4中所示的熵编码单元440的熵编码单元熵编码或其组合。

预测编码贴片可以包括生成诸如一个或多个运动矢量的运动信息,该运动信息表示当前帧中的贴片或其一部分,诸如块,与参考帧的相应部分之间的运动,并且生成作为对应于贴片或其一部分的当前帧的部分与参考帧的相应部分之间的差的残余。可以熵编码运动信息和残余信息或者对应于残余信息的变换并量化的信息,以生成用于贴片的熵编码的内容。

可以在1220输出编码的贴片。例如,在1220包括第一编码的贴片到输出比特流中。在1220输出编码的贴片可以包括确定贴片内容数据大小。贴片内容数据大小可以是例如熵编码的运动信息和熵编码的残余信息的比特数的大小之和。用于贴片的贴片内容数据大小可以包括熵编码的运动信息、熵编码的残余信息以及诸如包括在用于包括在贴片中的块的块报头中的信息的相应编码参数或信息的大小之和。

在1220输出编码的贴片可以包括生成贴片报头,确定用于贴片中的输出比特流的起始位置,并且在该起始位置处开始在输出比特流中包括表示贴片报头的比特。在某些实施方式中,在输出比特流中包括表示贴片报头的比特包括在输出比特流的报头部分中包括贴片内容数据大小,如在图11中的1122/1132/1142所示。例如,用于在图11中的左侧示出的贴片1120的贴片报头1122包括指示相应贴片主体1124的大小的贴片内容数据大小信息。

在1220输出编码的贴片可以包括在输出比特流中的贴片信息的贴片主体部分中包括可以包括熵编码的运动信息和熵编码的残余信息的贴片内容。用于在图11中的左侧示出的贴片1120的贴片主体1124包括例如用于贴片的编码的贴片内容。

在1230生成当前或第二编码的贴片。在1230生成当前编码的贴片可以包括识别帧中的当前贴片,并且类似于在1210示出的贴片编码来编码当前贴片以生成当前熵编码的贴片。当前贴片可以按照扫描顺序在空间上邻近于帧的一个或多个先前编码的贴片,诸如在1210编码并在1220输出的贴片。例如,扫描顺序可以是光栅扫描顺序,并且当前贴片可以在先前编码的贴片的下方、在先前编码的贴片的右侧或两者。在1230生成当前编码的贴片可以包括确定用于当前编码的贴片的贴片内容数据大小。贴片内容数据大小可以基于当前编码的贴片的熵编码的内容。

在1240确定当前编码的贴片是否与先前编码的贴片匹配。确定在1230生成的当前编码的贴片是否与诸如在1210编码的贴片的先前编码的贴片匹配可以包括识别按照扫描顺序邻近于当前编码的时间所表示的当前帧的位置的候选贴片。先前编码的贴片可以是在空间上邻近的,诸如按照扫描顺序紧邻于当前帧中的位置。例如,扫描顺序可以是光栅扫描顺序,并且识别紧邻于当前块上方、左上方、右上方以及左侧的先前编码的贴片为候选贴片。

在1240确定当前编码的贴片是否与先前编码贴片匹配可以包括确定用于当前编码的贴片的熵编码的内容与用于相应候选贴片的熵编码的内容之间的差。用于当前编码的贴片的熵编码的内容与用于候选贴片的熵编码的内容之间的差可以在阈值内,并且候选贴片被识别为用于当前编码的贴片的参考贴片。该阈值可以是零。例如,被识别为用于当前编码的贴片的参考贴片的候选贴片的熵编码的内容可以与当前编码的贴片的熵编码的内容相同。

在1240确定当前编码的贴片是否与先前编码的贴片匹配可以包括评估每个候选贴片以确定相应贴片是否可以被识别为参考贴片。可以评估候选贴片直至每个候选贴片被评估,或者直至候选贴片被识别为参考贴片。可以按照可以是诸如左、上、左上、右上的定义顺序或诸如基于运动信息而确定的顺序的确定顺序的顺序来评估候选贴片,因为两个贴片之间的公共运动矢量可能意味着贴片内容是类似的。例如,用于当前贴片、候选贴片或两者的运动信息可以指示从右上方向左侧减小的运动相似性,并且可以确定相应的候选贴片评估顺序,诸如右上、上、左上、左。

在1250输出当前(例如,第二)编码贴片。例如,在1240处的确定当前编码的贴片是否与先前编码的贴片匹配可以不识别指示当前编码的贴片与每个相应候选贴片之间的差的参考贴片,并且然后在输出比特流中包括当前编码的贴片,其可以类似于在1220在输出比特流中包括第一编码贴片。例如,在1250处的在输出比特流中包括当前编码的贴片包括在对应于用于当前贴片的贴片报头的输出比特流的部分中包括贴片内容数据大小,并且在对应于用于当前贴片的贴片主体的输出比特流的部分中包括用于当前编码的贴片的内容,其可以包括熵编码的内容。

虽然在图12中并未单独地示出,但在1250输出当前编码的贴片内容可以包括:生成贴片拷贝模式指示符,诸如比特或标志,指示符指示在输出比特流中包括用于当前编码的块的编码的内容;在用于当前贴片的报头中包括贴片拷贝模式指示符和贴片内容数据大小;以及在输出比特流中包括用于当前贴片的内容。在示例中,值为零的贴片拷贝模式指示符指示在输出比特流中包括用于当前编码的块的编码的内容。

在1260识别参考贴片偏移。例如,在1240识别参考贴片,并且在1260识别参考贴片偏移。识别参考贴片偏移可以包括识别被编码为当前编码的贴片的贴片的当前帧中的位置与被编码为参考贴片的贴片的当前帧中的位置之间的空间差。可以将参考贴片偏移表示为行偏移和列偏移,诸如当前贴片与参考贴片之间的绝对行和列距离。例如,在1230生成的当前编码的贴片与当前帧的第三列和第四行相对应,在1240识别的参考贴片与当前帧的第二列和第三行相对应。在本示例中,参考贴片偏移表示为(1,1)。

在1270在输出比特流中包括参考贴片偏移。虽然在图12中并未单独地示出,但在1270输出参考贴片偏移可以包括生成用于当前贴片的贴片报头,在用于当前贴片的贴片报头中包括参考贴片偏移,并且在输出比特流中包括用于当前贴片的贴片报头。虽然在图12中并未单独地示出,但在1270输出参考贴片偏移可以包括生成贴片拷贝模式指示符,诸如比特或标志,指示符指示贴片是拷贝贴片。该比特或标志指示从输出比特流省略用于在1230生成的当前编码的块的编码的内容。在1270的处理还可以在用于当前贴片的报头中包括贴片拷贝模式指示符,并且在输出比特流中包括用于当前贴片的报头。例如,值为一的贴片拷贝模式指示符指示贴片是拷贝贴片。

在1280处从输出省略用于当前(例如,第二)编码的贴片的在1230生成的编码的内容。例如,响应于当前贴片被指定为拷贝贴片,输出比特流可以包括用于当前贴片的贴片报头,并且省略用于当前贴片的贴片主体。

候选贴片可以是拷贝贴片,并且在1240处的确定当前贴片和候选贴片是否匹配可以包括基于候选贴片的报头中的偏移信息来识别用于候选贴片的参考贴片,并且然后比较参考贴片的编码的内容与当前贴片的编码的内容。如果确定了贴片匹配,则当前贴片被指定为拷贝贴片,并且在1260针对该当前贴片识别与参考贴片相关联的偏移信息,并且在1270包括在用于当前贴片的报头中。结果是两个拷贝贴片具有公共参考贴片。

在1290发送或存储输出(即,输出比特流)。例如,可以经由有线或诸如图2中所示的无线网络的无线通信系统发送输出到诸如图5中所示的解码器500的另一设备。

图13是根据本公开的实施方式的包括使用贴片拷贝编码的贴片信息的输出比特流结构的示例的框图。输出比特流可以包括在输出比特流1300中组织的编码的视频数据。例如,如所示,输出比特流1300包括表示帧1310或帧序列的信息。

表示帧1310的信息包括帧报头1112和帧主体1314。帧主体1314包括表示贴片1320/1330/1340的信息。表示贴片1320/1330/1340的信息包括贴片报头1322/1332/1342和贴片主体1328/1348。例如,用于贴片1320的在左侧示出的贴片信息包括贴片报头1322和贴片主体1328;用于贴片1330的在中心示出的贴片信息包括贴片报头1332;并且用于贴片1140的在右侧示出的贴片信息包括贴片报头1342和贴片主体1348。

除了报头1322/1342包括贴片拷贝模式指示符1324/1344,用于诸如在左侧的贴片1320或在右侧的贴片1340的贴片的贴片信息可以类似于如图11中所示的用于贴片的贴片信息,贴片拷贝模式指示符1324/1344可以被包括在比特流中贴片内容数据大小信息1326/1346之前,并且在本示例中其被包括为贴片报头的第一比特。分别用于在左侧的贴片1320和在右侧的贴片1340的贴片拷贝模式指示符1324/1344被示为具有为零的值,其指示用于相应贴片的编码的内容被包括在用于编码的输出比特流中的相应贴片1320/1340的相应贴片主体部分1328/1348中,如所示。

用于拷贝诸如如图13中所示的在中心的贴片1330的贴片的贴片信息可以包括贴片报头1332,并且省略贴片主体,如所示。用于拷贝模式贴片1330的贴片报头1332包括贴片拷贝模式指示符1334,其可以具有指示贴片是拷贝模式贴片的值。该值可以是为一的值。该值可以被包括为贴片报头的第一比特,如所示。用于拷贝模式贴片1330的贴片报头1332省略了贴片内容数据库大小,并且包括参考贴片偏移1335。在本示例中,参考贴片偏移1335包括参考贴片行偏移1336和参考贴片列偏移1338,但两者都不是必需的。

图14是根据本公开的实施方式的使用贴片拷贝的解码1400的框图。使用贴片化拷贝的解码1400可以在诸如图5中所示的解码器500的解码器中实现。如图14的示例中所示,使用贴片化拷贝的解码1400包括在1410接收编码的视频比特流,在1420从编码的视频比特流解码帧,在1430解码帧的贴片,在1440解码贴片的报头,在1450确定贴片拷贝模式标志被设置成为零或一的值,在1460从贴片主体生成解码贴片,在1470解码贴片报头中的偏移,在1480基于偏移来定位参考贴片,在1490使用参考贴片内容而生成解码的贴片,以及在1495输出或存储解码的贴片。

在1410接收编码的视频比特流。例如,可以从诸如图4中所示的编码器400的另一设备接收诸如图13中所示的比特流1300的编码的视频比特流。其可以经由有线或诸如图2中所示的无线网络的无线通信系统被接收。可以通过熵编码解压缩在解码器处接收到的编码的视频比特流。接收到的编码的视频比特流可能已如图12中所示被使用贴片拷贝编码。

在1420从编码的视频比特流解码当前帧。例如,编码的视频比特流可以包含来自帧序列的视频数据,包括诸如图13中所示的帧1310的单个帧的视频数据。解码可以在逐帧的基础上而发生。

在1430解码当前帧的当前或第一贴片。例如,可以将当前帧分区为诸如图13中所示的贴片1320/1330/1340的多个贴片,其当前贴片被解码。

在1440解码用于当前贴片的报头。例如,当前贴片可以包含表示诸如图13中所示的贴片报头1322/1332/1342的贴片报头的信息。解码当前贴片报头的比特可以提供指示相应贴片主体的大小的信息。在某些实施方式中,解码的贴片报头比特还可以包括贴片拷贝模式指示符,诸如比特或标志。例如,当前贴片报头可以包括如图13中所示的贴片拷贝模式指示符1324/1334。

在1450确定当前贴片是否是拷贝贴片。例如,如果解码贴片拷贝模式指示符具有为零的值,则确定当前贴片不是拷贝贴片。在这种情况下,解码贴片内容可以通过在1460解码对应于当前贴片的贴片的主体而以常规方式进行。作为另一示例,如果解码的贴片拷贝模式指示符具有为一的值,则可以确定当前贴片是拷贝贴片。

在1470处从当前贴片报头解码参考贴片偏移。例如,在解码贴片拷贝模式指示符具有为一的值的条件下,当前贴片报头还可以包括偏移信息,其识别被编码为当前贴片的贴片的当前帧中的位置与被编码为参考贴片的贴片的当前帧中的位置之间的空间差。可以将参考贴片偏移表示为行偏移和列偏移,诸如当前贴片与参考贴片之间的绝对行和列距离。例如,在1430生成的当前解码的贴片可以与当前帧的第三列和第四行相对应,参考贴片可以与当前帧的第二列和第三行相对应。在这种情况下,解码的参考贴片偏移表示为(1,1)。解码器可以通过单独地提取贴片报头中的解码的偏移信息且在不依赖于解码贴片拷贝模式指示符的情况下识别当前贴片为拷贝贴片。

在1470解码参考贴片偏移可以包括在不使用熵编码的情况下从解码的比特流读取当前贴片的报头。例如,可以在没有熵编码的压缩的情况下编码贴片报头,并且因此从接收到的编码的比特流解码报头不需要熵编码。

在1470解码参考贴片偏移可以包括使用熵编码解码当前贴片的报头。例如,可以使用熵编码编码将贴片报头,并且因此从接收到的编码的比特流的解码报头包括熵解码。

在1480可以通过基于解码的参考贴片偏移信息定位参考贴片来找到对应于当前贴片的贴片内容。例如,解码参考贴片偏移可以指示当前帧内的参考贴片位置相对于当前帧内的当前贴片的位置而言在上方一行且在向左一列。然后通过在确定位置处读取解码的参考贴片来找到对应于当前贴片的贴片内容。

在1490使用在对应参考贴片处找到的贴片内容来生成解码的当前贴片。例如,由于当前贴片是拷贝贴片且在编码期间从编码的比特流省略用于当前贴片的贴片内容,所以可以解码在1480定位的参考贴片的贴片内容以生成解码的当前贴片。

在1495输出解码的当前贴片到另一设备或者存储在存储器中用于将来输出到另一设备。例如,可以输出在1460/1490生成的解码的贴片用于在块级和在像素级进一步解码以再现视频帧。

单词“示例”或“方面”在本文中被用来意指充当示例、实例或图示。在本文中描述为“示例”或“方面”的任何方面或设计不一定要理解为相对于其它方面或设计而言是优选或有利的。相反地,单词“示例”或“方面”的使用旨在以具体的方式提出概念。如在本申请中使用的术语“或”旨在意指包括性“或”而不是排他性“或”。也就是说,除非另外指定,或者从场境显而易见,“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