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

用于嵌入图像的补充增强信息消息的制作方法

2022-04-27 08:29:22 来源:中国专利 TAG:


1.本技术总体上涉及视频数据编码和解码,尤其涉及对包括嵌入图像的补充增强信息消息进行编码和解码的方法和装置。


背景技术:

2.如数字电视、膝上型或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流媒体设备等各种电子设备都支持数字视频。所述电子设备通过执行由mpeg-4、itu-t h.263、itu-t h.264/mpeg-4第10部分、高级视频编码(avc)、高效视频编码(hevc)和通用视频编码(vvc)标准定义的视频压缩/解压缩标准来传输、接收、编码、解码和/或存储数字视频数据。视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测以减少或去除视频数据中固有的冗余。对于基于块的视频编码,视频帧被划分为一个或多个条带(slice),每个条带具有多个视频块,所述视频块也可以称为编码树单元(ctu)。每个ctu可以包含一个编码单元(cu)或者被递归地拆分为较小的cu,直到达到预设的最小cu的大小。每个cu(也称为叶子cu)包含一个或多个变换单元(tu),每个cu还包含一个或多个预测单元(pu)。每个cu可以采用帧内、帧间或ibc模式进行编码。使用相对于同一视频帧内的相邻块中的参考样本的空间预测对视频帧的帧内编码(i)条带中的视频块进行编码。视频帧的帧间编码(p或b)切片中的视频块可使用相对于同一视频帧内相邻块中的参考样本的空间预测或相对于其他先前的和/或未来的参考视频帧中的参考样本的时间预测。
3.基于先前编码参考块(如相邻块)的空间或时间预测产生针对待编码的当前视频块的预测块。查找参考块的过程可以通过块匹配算法来完成。表示待编码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据指向形成该预测块的参考帧中的参考块的运动向量、以及该残差块对帧间编码块进行编码。确定该运动向量的过程通常称为运动估计。根据帧内预测模式以及该残差块对帧内编码块进行编码。为了进一步压缩,将该残差块从像素域变换到变换域,如频域,从而产生残差变换系数,然后可以对其进行量化。可对最初以二维阵列排列的所述量化了的变换系数进行扫描以产生变换系数的一维向量,然后将其熵编码到视频比特流中以实现更多的压缩。
4.然后将该编码视频比特流保存在计算机可读存储介质(如闪速存储器)中,以由具有数字视频能力的另一个电子设备访问或者直接以有线或无线的方式传输到该电子设备。然后,该电子设备通过例如解析该编码视频比特流以从该比特流获得语义元素以及至少部分地基于从该比特流获得的语义元素从该编码视频比特流将该数字视频数据重建为其原始格式来进行视频解压缩(这是与上述视频压缩相反的过程),并且在该电子设备的显示器上呈现该重建的数字视频数据。
5.为了保持灵活性和可扩展性,视频编码标准通常定义用于编码视频比特流的语法的选项,这些选项详细说明了该比特流中的语法允许的参数。在许多情况下,这些选项还提供有关解码器应执行的解码操作的详细信息,以从该比特流中导出这些语法参数并在解码
中获得正确的结果。
6.补充增强信息(sei)消息是由诸如h.264/avc和hevc之类的标准在高级语法中使用的视频编码选项。sei消息在比特流中提供元数据以增强视频的使用。例如,sei消息的使用允许视频编码器在视频比特流中包含特定的元数据,该元数据不是输出图片的正确解码所要求的,但可以用于各种其它目的,如图片输出定时、显示以及错误检测和隐藏。在这些情况下,sei消息通常作为视频解码过程的一部分进行处理。例如,sei消息可包含从编码器侧的对应图片的解码样本导出的校验和。在解码器侧,这种信息使解码器能够通过比较来自sei消息的这个哈希值和来自解码图片的重新计算的版本来执行错误检测。到目前为止,sei消息还没有在不涉及所确定的图片的情况下被独立使用。


技术实现要素:

7.本技术描述了与视频数据编码和解码相关的实施方式,具体来讲,描述了对包括嵌入图像的补充增强信息消息进行编码和解码的方法和装置。
8.根据本技术的第一方面,提供一种将图片编码为视频比特流的方法,该方法包括:识别图片;确定用于该图片的参数集合;使用该参数集合生成该图片的嵌入图像补充增强信息(sei)消息;以及将该嵌入图像sei消息添加到该视频比特流的元数据中。
9.根据本技术的第二方面,一种电子装置包括一个或多个处理单元、存储器和存储在该存储器中的多个程序。当由一个或多个处理单元执行时,这些程序使得该电子装置执行如上所述的将图片编码为视频比特流的方法。
10.根据本技术的第三方面,一种非暂时性计算机可读存储介质存储由具有一个或多个处理单元的电子装置执行的多个程序。在由一个或多个处理单元执行时这些程序使得该电子装置执行如上所述的将图片编码为视频比特流的方法。
11.根据本技术的第四方面,提供一种从编码视频比特流中提取图片的方法,该方法包括:在该编码视频比特流的视频元数据中识别嵌入图像补充增强信息sei消息;从该嵌入图像sei消息中提取参数集合;以及使用该参数集合从存储在该嵌入图像sei消息中的图像数据生成图片。
12.根据本技术的第五方面,一种电子装置包括一个或多个处理单元、存储器和存储在该存储器中的多个程序。当由一个或多个处理单元执行时,这些程序使得该电子装置执行如上所述的从编码视频比特流中提取图片的方法。
13.根据本技术的第六方面,一种非暂时性计算机可读存储介质存储由具有一个或多个处理单元的电子装置执行的多个程序。当由一个或多个处理单元执行时,这些程序使得该电子装置执行如上所述的从编码视频比特流中提取图片的方法。
附图说明
14.所包括的附图用以提供对实施方式的进一步理解并且结合在本文中并构成说明书的一部分,图示了所描述的实施方式并且与说明书一起用于解释基本原理。相同的附图标记指代相应的部分。
15.图1是示出了根据本技术的一些实施方式的示例性视频编码和解码系统的框图。
16.图2是示出了根据本技术的一些实施方式的示例性视频编码器的框图。
17.图3是示出了根据本技术的一些实施方式的示例性视频解码器的框图。
18.图4a至4d是示出了根据本技术的一些实施方式的帧如何被递归地四叉树分割成不同大小的多个视频块的框图。
19.图5a至5c是示出了根据本技术的一些实施方式的包含多个嵌入图像补充增强信息(sei)消息的编码视频比特流数据结构,至少一个包含嵌入图像的嵌入sei消息的数据结构以及嵌入图像的数据结构的框图。
20.图6是示出了根据本技术的一些实施方式的视频编码器实现通过使用图片生成嵌入图像sei消息并将该sei消息添加到视频比特流中的技术的示例性过程的流程图。
21.图7是示出了根据本技术的一些实施方式的视频解码器实现从视频比特流提取嵌入图像sei消息并且使用该嵌入图像sei消息生成图片的技术的示例性过程的流程图。
具体实施方式
22.现在将详细参考具体实施方式,其示例在附图中示出。在下面的详细描述中,阐述了许多非限制性的具体细节以帮助理解在此呈现的主题。但是对于本领域的普通技术人员来说显而易见的是,在不脱离权利要求的范围的情况下可以使用各种替代方案,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域的普通技术人员来说显而易见的是,这里呈现的主题可以在具有数字视频能力的多种类型的电子设备上实现。
23.图1是示出了根据本发明的一些实施方式的用于并行地编码和解码视频块的示例性系统10的框图。如图1所示,系统10包括源设备12,其生成并编码待由目标设备14在稍后时间进行解码的视频数据。源设备12和目标设备14可包括多种电子设备中的任一种,包括台式计算机或膝上型电脑、平板电脑、智能手机、机顶盒、数字电视、摄像机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备,等等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
24.在一些实施方式中,目标设备14可经由链路16接收待解码的编码视频数据。链路16可包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可包括通信介质以使得源设备12能够将编码视频数据实时地直接传输到目标设备14。编码视频数据可根据诸如无线通信协议之类的通信标准被调制,并被传输到目标设备14。该通信介质可包括任何无线或有线通信介质,如射频(rf)频谱或一种或多种物理传输线路。该通信介质可形成基于分组的网络,如局域网、广域网或如因特网的全球网的一部分。该通信介质可包括路由器、交换机、基站或其他任何可能有助于促进从源设备12到目标设备14的通信的设备。
25.在其他的一些实施方式中,编码视频数据可以从输出接口22被传输到存储设备32。随后,目标设备14可通过输入接口28访问存储设备32中的编码视频数据。存储设备32可包括各种分布式或本地访问的数据存储介质中的任何一种,如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪存、易失性或非易失性存储器,或其他任何适当的用于存储已编码的视频数据的数字存储介质。在进一步的示例中,存储设备32可对应于可以保存源设备12生成的编码视频数据的文件服务器或另一种中间存储设备。目标设备14可通过流传输或下载从存储设备32中访问已存储的视频数据。该文件服务器可以是能够存储编码视频数据并将编码视频数据传输到目标设备14的任何类型的计算机。示例性文件服务器包括网络(web)服务器(例
如,用于网站)、ftp服务器、网络附加存储(nas)设备或本地磁盘驱动器。目标设备14可以通过任何标准数据连接访问编码视频数据,所述标准数据连接包括适用于访问存储在文件服务器上的编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等),或二者的组合。来自存储设备32的已编码的视频数据的传输可以是流传输、下载传输或二者的组合。
26.如图1所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可包括诸如视频捕获设备之类的源,如摄像机、包含先前捕获的视频的视频档案、用于从视频内容提供商接收视频的视频流界面和/或用于将计算机图形数据生成为源视频的计算机图形系统或所述源的组合。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可形成相机电话或视频电话。然而,本技术中描述的实施方式通常可适用于视频编码,并且可适用于无线和/或有线应用。
27.捕获的、预先捕获的或计算机生成的视频可由视频编码器20编码。编码视频数据可通过源设备12的输出接口22直接传输到目标设备14。编码视频数据也可以(或替代地)被存储到存储设备32上以由目标设备14或其他设备以后访问,以进行解码和/或回放。输出接口22还可包括调制解调器和/或发射器。
28.目标设备14包括输入接口28、视频解码器30和显示设备34。输入接口28可包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16传送的或在存储设备32上提供的编码视频数据可包括由视频编码器20生成的供视频解码器30在对视频数据进行解码时使用的多种语义元素。所述语义元素可包括在在通信介质上传输的、在存储介质上存储的或在文件服务器上存储的已编码的视频数据内。
29.在一些实施方式中,目标设备14可包括显示设备34,该显示设备34可以是集成的显示设备和被配置为与目标设备14进行通信的外部显示设备。显示设备34向用户显示解码视频数据,并且可包括多种显示设备中的任一种,例如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或其他类型的显示设备。
30.视频编码器20和视频解码器30可根据专有或行业标准(如vvc、hevc、mpeg-4第10部分,高级视频编码(avc),或此类标准的延伸)进行操作。应理解本技术不限于特定的视频编码/解码标准,可以适用于其他视频编码/解码标准。通常设想源设备12的视频编码器20可被配置为根据当前或未来的标准中的任何一个来编码视频数据。类似地,通常还设想目标设备14的视频解码器30可被配置为根据当前或未来的标准中的任何一个来解码视频数据。
31.视频编码器20和视频解码器30均可以实现为多种适当的编码器电路中的任何一种,例如一个或多个微处理器、数字信号处理器(dsp)、应用型专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当部分以软件实现时,电子设备可将用于软件的指令存储在适当的非暂时性计算机可读介质中并使用一个或多个处理器在硬件中执行所述指令来执行本发明中公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可包括在一个或多个编码器或解码器中,其中的任何一个可以被集成为相应设备中的组合编码器/解码器(codec)的一部分。
32.图2是示出了根据本技术中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可执行视频帧内的视频块的帧内和帧间预测编码。帧内预测编码依赖于空间
预测来减少或消除给定视频帧或图片内视频数据中的空间冗余。帧间预测编码依赖于时间预测来减少或消除视频序列的相邻视频帧或图片内的视频数据中的时间冗余。
33.如图2所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓存器(dpb)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41还包括运动估计单元42、运动补偿单元44、分割单元45、帧内预测处理单元46和帧内块复制(bc)单元48。在一些实施方式中,视频编码器20还包括用于视频块重建的逆量化单元58、逆变换处理单元60和加法器62。去块滤波器(未示出)可位于加法器62与dpb 64之间以对块边界进行滤波,以从重建的视频中消除块效应伪像。除了去块滤波器之外,还可以使用环路滤波器(未示出)来对加法器62的输出进行滤波。视频编码器20可采用固定或可编程硬件单元的形式,或者可在示出的一个或多个固定的或可编程硬件单元中被划分。
34.视频数据存储器40可存储由视频编码器20的各部件编码的视频数据。视频数据存储器40中的视频数据可以例如从视频源18获得。dpb 64是存储参考视频数据以用于由视频编码器20对视频数据进行编码(例如以帧内或帧间预测编码模式)的缓存器。视频数据存储器40和dpb 64可由多种存储器设备中的任一种形成。在各种示例中,视频数据存储器40可以与视频编码器20的其他部件在芯片上,或者相对于所述部件在芯片外。
35.如图2所示,在接收视频数据之后,预测处理单元41内的分割单元45将视频数据划分成视频块。该划分还可包括根据预定义的分割结构(例如与视频数据相关联的四叉树结构)将视频帧划分为条带、瓦片(tile)或其他更大的编码单元(cu)。该视频帧可被划分为多个视频块(或称为瓦片的视频块组)。预测处理单元41可基于误差结果(如编码率和失真水平)为当前的视频块从多个可能的预测编码模式中选择一个预测编码模式,该预测编码模式如多个帧内预测编码模式中的一个或多个帧间预测编码模式中的一个。预测处理单元41可将由此得到的帧内或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建该编码块以随后用作参考帧的一部分。预测处理单元41还向熵编码单元56提供如运动向量、帧内模式指示符、分割信息和其他此类语义信息等语义元素。
36.为了为当前视频块选择适当的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可相对于与待编码的当前块同一帧中的一个或多个相邻块执行当前视频块的帧内预测编码,以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个预测块执行对当前视频块的帧间预测编码,以提供时间预测。视频编码器20可以执行多个编码通道,例如,为视频数据的每个块选择适当的编码模式。
37.在一些实施方式中,运动估计单元42根据视频帧序列内的预定型式通过生成运动向量来为当前视频帧确定帧间预测模式,该运动向量指示当前视频帧内的视频块的预测单元(pu)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动向量的过程,其估计视频块的运动。运动向量,例如,可指示当前视频帧或图片内的视频块的pu相对于参考帧内的、相对于在当前视频帧内被编码的当前块(或其他已编码单元)的预测块(或其他已编码单元)的位移。该预定型式可将该序列中的视频帧指定为p帧或b帧。帧内bc单元48可以以类似于由运动估计单元42确定运动向量以进行帧间预测的方式类似的方式确定用于帧内bc编码的向量,例如块向量,或者可以利用运动估计单元42来确定该块向量。
38.预测块是在像素差方面被认为与待编码视频块的pu紧密匹配的参考帧的块,像素差可以由绝对差之和(sad)、平方差之和(ssd)或其他差值度量确定。在一些实施方式中,视频编码器20可以计算存储在dpb 64中的参考帧的亚整数像素位置的值。例如,视频编码器20可以插入该参考帧的四分之一像素位置、八分之一像素位置或其他分数的像素位置的值。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并输出具有分数像素精度的运动向量。
39.运动估计单元42通过将pu的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)中选择的参考帧的预测块的位置进行比较来计算帧间预测编码帧中视频块的pu的运动向量,第一参考帧列表和第二参考帧列表中的每一个标识存储在dpb 64中的一个或多个参考帧。运动估计单元42将计算的运动向量发送到运动补偿单元44,然后发送到熵编码单元56。
40.由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动向量来获取或生成预测块。在接收到当前视频块的pu的运动向量后,运动补偿单元44可以在参考帧列表之一中定位运动向量所指向的预测块,从dpb 64取得预测块,并将预测块转发到加法器50。然后,加法器50通过从被编码的当前视频块的像素值中减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的所述像素差值可包括亮度差分量或色度差分量或包括两者。运动补偿单元44还可产生与视频帧的视频块相关联的语义元素以供视频解码器30在对视频帧的视频块进行解码时使用。所述语义元素可包括如定义用于识别该预测块的运动向量的语义元素、指示该预测模式的任何标志或本文描述的其他任何语义信息。应注意,运动估计单元42和运动补偿单元44可高度集成,但出于概念目的而分别图示。
41.在一些实施方式中,帧内bc单元48可以以与上文结合运动估计单元42和运动补偿单元44描述的方式类似的方式生成向量并获取预测块,但所述预测块与正在被编码的当前块位于同一帧内,并且所述向量被称为块向量而不是运动向量。具体而言,帧内bc单元48可确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内bc单元48可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且通过率失真分析来测试其性能。接下来,帧内bc单元48可以在各种经测试的帧内预测模式中选择适当的帧内预测模式来使用并相应地生成帧内模式指示符。例如,帧内bc单元48可以使用针对各种经过测试的帧内预测模式的率失真分析来计算率失真值,并且在经过测试的模式中选择具有最佳率失真特性的帧内预测模式作为适当的帧内预测模式来使用。率失真分析通常确定编码块与原始未编码块之间的失真(或误差)量以及用于产生编码块的比特率(即比特数)。帧内bc单元48可根据各个编码块的失真和速率计算比率以确定哪种帧内预测模式展示出块的最佳速率失真值。
42.在其他示例中,帧内bc单元48可全部或部分地使用运动估计单元42和运动补偿单元44以根据本文描述的实施方式来执行用于帧内bc预测的此类功能。在任一情况下,对于帧内块复制,预测块可以是就像素差而言,被认为与待编码块紧密匹配的块,所述像素差由绝对差之和(sad)、平方之和(ssd)或其他差值度量来确定,并且该预测块的识别可包括亚整数像素位置的值的计算。
43.无论预测块是根据帧内预测来自同一帧,还是根据帧间预测来自不同帧,视频编
码器20都可以通过从被编码的当前视频块的像素值中减去该预测块的像素值来形成残差视频块,从而形成像素差值。形成该残差视频块的所述像素差值可包括亮度分量差和色度分量差。
44.如上文描述的,帧内预测处理单元46可以对当前视频块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测、或者由帧内bc单元48执行的帧内块复制预测的替代方案。具体而言,帧内预测处理单元46可确定用于对当前块进行编码的帧内预测模式。为此,帧内预测处理单元46可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且帧内预测处理单元46(或在一些示例中为模式选择单元)可从经过测试的帧内预测模式中选择适当的帧内预测模式来使用。帧内预测处理单元46可向熵编码单元56提供指示块的所选帧内预测模式的信息。熵编码单元56可对指示比特流中的对所选帧内预测模式的信息进行编码。
45.在预测处理单元41通过帧间预测或帧内预测确定当前视频块的预测块之后,加法器50通过从当前视频块中减去该预测块来形成残差视频块。该残差块中的残差视频数据可包括在一个或多个变换单元(tu)中并被提供给变换处理单元52。变换处理单元52使用诸如离散余弦变换(dct)或概念上类似的变换来将残差视频数据变换为残差变换系数。
46.变换处理单元52可将所得到的变换系数发送到量化单元54。量化单元54将所述变换系数量化以进一步降低比特率。量化过程还可以减小与系数中的一些或所有系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可对包含经过量化的变换系数的矩阵进行扫描。可替代地,熵编码单元56可进行这种扫描。
47.在量化之后,熵编码单元56使用例如上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)、基于语义的上下文自适应二进制算术编码(sbac)、概率区间分区熵(pipe)编码或其他熵编码方法或技术将量化的变换系数熵编码成视频比特流。然后这种编码后的比特流可被传送到视频解码器30,或存档在存储装置32中以供以后传送到视频解码器30或由视频解码器30取得。熵编码单元56还可对用于被编码的当前视频帧的所述运动向量和其他语义元素进行熵编码。
48.逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换以重建像素域中的残差视频块,以生成用于预测其他视频块的参考块。如上所述,运动补偿单元44可从dpb 64中存储的帧的一个或多个参考块生成运动补偿预测块。运动补偿单元44还可将一个或多个内插滤波器应用于该预测块以计算用于运动估计的亚整数像素值。
49.加法器62将该重建的残差块加到运动补偿单元44产生的该运动补偿预测块相加以产生存储在dpb 64中的参考块。该参考块然后可由帧内bc单元48、运动估计单元42以及运动补偿单元44用作预测块以对后续视频帧中的另一个视频块进行帧间预测。
50.图3是示出了根据本技术的一些实施方式的示范性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、加法器90和dpb 92。预测处理单元81还包括运动补偿单元82、帧内预测处理单元84和帧内bc单元85。视频解码器30执行解码过程,该解码过程通常与上文结合图2所描述的与视频编码器20有关的编码过程是相反的。例如,运动补偿单元82可基于从熵解码单元80接收的运动向量生成预测数据,而帧内预测单元84可基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
51.在一些示例中,视频解码器30的单元可以被分配执行本发明的实施方式的任务。此外,在一些示例中,本发明的实施方式可以在视频解码器30的一个或多个单元之间划分。例如,帧内bc单元85可以单独地或与视频解码器30的其他单元(如运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合起来执行本发明的实施方式。在一些示例中,视频解码器30可以不包括帧内bc单元85并且帧内bc单元85的功能可由预测处理单元81的其他组件(如运动补偿单元82)执行。
52.视频数据存储器79可以存储待由视频解码器30的其他部件进行解码的视频数据,如编码视频比特流。可以经由对视频数据进行有线或无线网络传送或者通过访问物理数据存储介质(例如,闪存驱动器或硬盘)从存储设备32、本地视频源(如相机)获得存储在视频数据存储器79中的视频数据。视频数据存储器79可包括存储来自编码视频比特流的编码视频数据的编码图片缓存器(cpb)。视频解码器30的解码图片缓存器(dpb)92存储参考视频数据以在视频解码器30解码(如以帧内或帧间预测编码模式)视频数据时使用。视频数据存储器79和dpb 92可由多种存储器设备中的任一种形成,如动态随机存取存储器(dram),包括同步dram(sdram)、磁阻ram(mram)、电阻ram(rram)或其他类型的存储设备。出于例示目的,在图3中将视频数据存储器79和dpb 92示为视频解码器30的两个不同组件。但是对于本领域中普通的技术人员显而易见的是,视频数据存储器79和dpb 92可以由同一存储器设备或单独的存储器设备提供。在一些示例中,视频数据存储器79可与视频解码器30的其他组件在芯片上,或者相对于所述组件在芯片外。
53.在该解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语义元素的编码视频比特流。视频解码器30可以在视频帧水平和/或视频块水平接收所述语义元素。视频解码器30的熵解码单元80对该比特流进行熵解码以生成量化系数、运动向量或帧内预测模式指示符以及其他语义元素。熵解码单元80然后将所述运动向量和其他的所述语义元素转发到预测处理单元81。
54.当该视频帧被编码为帧内预测编码(i)帧或用于其他类型帧中的帧内编码预测块时,预测处理单元81的帧内预测处理单元84可基于通过信号传输的帧内预测模式和来自当前帧的先前解码块的参考数据来为当前视频帧的视频块生成预测数据。
55.当该视频帧被编码为帧间预测编码(即,b或p)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的所述运动向量和其他语义元素为当前视频帧的视频块产生一个或多个预测块。每个预测块可从所述参考帧列表中的一个的参考帧产生。视频解码器30可基于存储在dpb 92中的参考帧使用默认的构建技术来构建参考帧列表,即列表0和列表1。
56.在一些示例中,在根据本文所描述的帧内bc模式编码该视频块时,预测处理单元81的帧内bc单元85基于从熵解码单元80接收的块向量和其他语义元素为当前的视频块产生预测块。所述预测块可以在与由视频编码器20定义的当前视频块相同的图片的重建区域内。
57.运动补偿单元82和/或帧内bc单元85通过对所述运动向量和其他的语义元素进行解析来确定用于当前视频帧的视频块的预测信息,然后使用该预测信息来产生被解码的当前视频块的预测块。例如,运动补偿单元82使用所接收的语义元素中的一些来确定用于编码该视频帧的视频块的预测模式(如帧内或帧间预测)、帧间预测帧类型(如b或p)、帧的参
考帧列表中的一个或多个参考帧列表的构造信息、帧的每个帧间预测编码视频块的运动向量、帧的每个帧间预测编码视频块的帧间预测状态以及用于对当前视频帧中的视频块进行解码的其他信息。
58.类似地,帧内bc单元85可以使用接收到的语义元素中的一些(如标志)来确定当前视频块是使用以下各项预测的:帧内bc模式、关于帧的视频块处于该重建区域内并应存储在dpb 92中的构造信息、用于该帧的每个帧内bc预测视频块的块向量、用于该帧的每个帧内bc预测视频块的帧内bc预测状态以及用于解码当前视频帧中的所述视频块的其他信息。
59.运动补偿单元82还可以在所述视频块的编码期间如视频编码器20一样使用所述内插滤波器来进行内插以计算用于参考块的亚整数像素的内插值。在这种情况下,运动补偿单元82可从所接收的语义元素来确定视频编码器20所使用的所述内插滤波器,并且使用所述内插滤波器来产生预测块。
60.逆量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的用于确定量化程度的相同的量化参数,对在比特流中提供的并且由熵解码单元80进行熵解码的经量化的变换系数进行逆量化。逆变换处理单元88将逆变换(如逆dct、逆整数变换或概念上类似的逆变换过程)应用于所述变换系数,以重建该像素域中的残差块。
61.在运动补偿单元82或帧内bc单元85基于所述向量和其他语义元素生成用于当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块和由运动补偿单元82和帧内bc单元85生成的相应预测块相加来重建用于当前视频块的解码视频块。环内滤波器(未图示)可以位于加法器90与dpb 92之间以对该解码视频块进行进一步的处理。然后将给定帧中的解码视频块存储在dpb 92中,dpb 92存储用于以后的视频块的后续运动补偿的参考帧。dpb 92或与dpb 92分开的存储器设备也可以存储解码视频以供稍后呈现在如图1的显示设备34等显示设备上。
62.在典型的视频编码过程中,视频序列通常包括帧或图片的有序集合。每个帧可包括三个样本阵列,表示为sl、scb和scr。sl是亮度样本的二维阵列。scb是cb色度样本的二维阵列。scr是cr色度样本的二维阵列。在其他示例下,帧可以是单色的,并且因此仅包括亮度样点的一个二维阵列。
63.如图4a所示,视频编码器20(或更具体地来讲,分割单元45)通过首先将帧划分为一组编码树单元(ctu)来生成该帧的编码表示。视频帧可包括从左到右和从上到下的光栅扫描顺序连续排序的整数个ctu。每个ctu是最大的逻辑编码单元并且该ctu的宽度和高度由视频编码器20在序列参数集中用信号通知,以使视频序列中的所有ctu具有相同的大小,即128
×
128、64
×
64、32
×
32和16
×
16中的一个。但需要说明的是,本技术并不一定限于特定的大小。如图4b所示,每个ctu可包括亮度样本的一个编码树块(ctb)、色度样本的两个对应编码树块以及用于对所述编码树块的样本进行编码的语义元素。语义元素描述像素的编码块的不同类型的单元的属性以及如何可以在视频解码器30处重建视频序列,所述语义元素包括帧间或帧内预测、帧内预测模式、运动向量以及其他参数。在单色图片或具有三个单独色彩平面的图片中,ctu可包括单个编码树块和用于对该编码树块的样本进行编码的语义元素。编码树块可以是n
×
n个样本块。
64.为了实现更好的性能,视频编码器20可以对该ctu的所述编码树块递归地执行树分割,例如二叉树分割、四叉树分割或二者的组合,并将该ctu分割成较小的编码单元(cu)。
如图4c所示,首先将64
×
64的ctu 400分成四个较小的cu,每个cu的块大小为32
×
32。在这四个较小的cu中,cu 410和cu 420均按块大小各自划分成四个16
×
16的cu。两个16
×
16的cu 430和440分别按块大小进一步划分为四个8
×
8的cu。图4d示出了一种四叉树数据结构,图中示出了如图4c中描绘的ctu400的分区过程的最终结果,该四叉树的每个叶子节点对应相应大小在32
×
32到8
×
8范围内的cu。类似于图4b中所描绘的ctu,每个cu可以包括亮度样点的编码块(cb)和相同大小的帧的色度样点的两个对应的编码块,以及用于对编码块的样点进行编码的语义元素。在单色图片或具有三个单独的色彩平面的图片中,cu可以包括单个编码块和用于对编码块的样点进行编码的语义结构。
65.在一些实施方式中,视频编码器20可进一步将cu的编码块分割成一个或多个m
×
n的预测块(pb)。预测块是样本的矩形(正方形或非正方形)块,该块被应用相同的(帧间或帧内)预测。cu的预测单元(pu)可包括亮度样本的预测块、色度样本的两个对应预测块以及用于所述预测块进行预测的语义元素。在单色图片或具有三个单独色彩平面的图片中,pu可包括单个预测块和用于对该预测块进行预测的语义结构。视频编码器20可以为该cu的每个pu的亮度、cb和cr预测块生成预测亮度、cb和cr块。
66.视频编码器20可使用帧内预测或帧间预测来生成用于pu的预测块。如果视频编码器20使用帧内预测来生成pu的预测块,则视频编码器20可基于与该pu相关联的帧的解码样本来生成pu的预测块。如果视频编码器20使用帧间预测来生成pu的预测块,则视频编码器20可基于除与pu相关联的帧之外的一个或多个帧的解码样本来生成pu的预测块。
67.在视频编码器20生成cu的一个或多个pu的预测亮度、cb和cr块之后,视频编码器20可通过从cu的原始亮度编码块中减去该cu的预测亮度块来生成该cu的亮度残差块,以使该cu的亮度残差块中的每个样本指示该cu的预测亮度块之一中的亮度样本与该cu的原始亮度编码块中的对应样本之间的差异。类似地,视频编码器20可分别生成该cu的cb残差块和cr残差块,以使该cu的cb残差块中的每个样本指示在cu的预测cb块之一中的cb样本与cu的原始cb编码块中的对应样本之间的差异,并且cu的cr残差块中的每个样本可以指示cu的预测cr块之一中的cr样本与cu的原始cr编码块中的对应样本之间的差。
68.此外,如图4c所示,视频编码器20可采用四叉树分割来将cu的亮度、cb和cr残差块分解为一个或多个亮度、cb和cr变换块。变换块是样本的矩形(正方形或非正方形)块,该块被应用相同的变换。cu的变换单元(tu)可包括亮度样本的变换块、色度样本的两个对应变换块以及用于对所述变换块样本进行变换的语义元素。因此,cu的每个tu可与亮度变换块、cb变换块和cr变换块相关联。在一些示例中,与该tu相关联的亮度变换块可以是该cu的亮度残差块的子块。该cb变换块可以是该cu的cb残差块的子块。该cr变换块可以是该cu的cr残差块的子块。在单色图片或具有三个单独色彩平面的图片中,tu可包括单个变换块和用于对该变换块的样本进行变换的语义结构。
69.视频编码器20可将一个或多个变换应用于tu的亮度变换块以生成该tu的亮度系数块。系数块可以是多个变换系数的二维阵列。变换系数可以是标量。视频编码器20可将一个或多个变换应用于tu的cb变换块以生成用于该tu的cb系数块。视频编码器20可将一个或多个变换应用于tu的cr变换块以生成用于该tu的cr系数块。
70.在生成系数块(如亮度系数块、cb系数块或cr系数块)之后,视频编码器20可将该系数块量化。量化通常是指对变换系数进行量化以可能减少用于表示变换系数的数据量从
而提供进一步压缩的过程。在视频编码器20将系数块量化之后,视频编码器20可对指示经量化的变换系数的语义元素进行熵编码。例如,视频编码器20可对指示经量化的变换系数的语义元素进行上下文自适应二进制算术编码(cabac)。最后,视频编码器20可以输出包括形成编码帧和相关联数据的表示的比特序列的比特流,该比特序列被保存在存储设备32中或传输到目标设备14。
71.在接收由视频编码器20生成的比特流之后,视频解码器30可解析该比特流以从该比特流获得语义元素。视频解码器30可以至少部分地基于从该比特流获得的语义元素来重建该视频数据的帧。重建视频数据的过程通常与视频编码器20执行的编码过程是相互的。例如,视频解码器30可以对与当前cu的tu相关联的系数块进行逆变换,以重建与当前cu的tu关联的残差块。视频解码器30还可以通过将用于当前cu的pu的预测块的样本加到当前cu的tu的变换块的对应样本来重建当前cu的编码块。在重建帧的每个cu的编码块之后,视频解码器30可重建该帧。
72.如上所述,sei消息已被用于各种目的的多个视频编码标准。下面的表1列出了基于hevc的sei消息类型的一些示例并简要描述了它们的功能。例如,具有“图片快照”类型的sei消息包含快照id号,指示具有该快照id的重建视频内容中的图片被标记用作视频内容的静止图像快照。换言之,该sei消息本身不包括该图片,并且它只有一个指向存储在该重建的视频内容中的图片的指针(即快照id)。为了访问该图片,视频解码器30必须重建包括该图片的视频内容的至少一部分,这不仅计算量大而且耗时。此外,该图片快照sei消息不包括允许进一步处理图片的附加信息,例如照片编辑、徽标、标题、文本、突出显示、质量增强等。通常,来自没有进一步编辑或增强的视频的单个帧不足以用于传达视频的全部内容。
[0073][0074]
表1:基于hevc的sei消息
[0075]
另一方面,智能手机的普及在互联网上产生越来越多的视频内容,并且在现有的
540的数据结构,包括图像格式540-1、图像id 540-3、图像宽度540-5、图像高度540-7和图像数据540-9。在一个实施方式中,这些参数定义如下:
[0081]
embedded_image(payloadsize){说明embedded_image_format用于该嵌入图像的格式embedded_image_id具有输出顺序的视频中对应的图片识别号embedded_image_width该嵌入图像的宽度embedded_image_height该嵌入图像的高度for(i=0;i《payloadsize-7;i ) embedded_image_byte该嵌入图像的二进制数据} [0082]
由于embedded_image 540独立于视频内容数据520而存在,所以它可以具有自己的图像格式,该图像格式可能与视频内容数据520相同或不同。例如,嵌入图像格式540-1可以是用于一类图像格式的一个整数,如vif(vvc帧内编码图像格式)、heif(hevc/avc帧内编码图像)、jpeg、gif、bmp、png、tif、webp、jp2、yuv。在某些情况下,图片快照类型通过具有特殊的embedding_image_format“snapshot”而与嵌入图像类型合并。在图像格式540-1是“snapshot”的情况下,该sei消息可以具有任何图像数据540-9,因为图像id 540-3用于指代来自该视频的解码图片。
[0083]
该嵌入图像sei消息为视频内容提供者提供了一种将所需缩略图/封面图像与该视频比特流绑定的方式,以使相同的嵌入图像可用于不同的平台或应用。这里描述的技术也适用于支持sei消息的所有视频编码标准,如h.264/avc、hevc、vvc、以及支持sei消息的任何未来的视频编码标准。为了说明的目的,下面描述了两个示例性过程,这两个过程描述了视频编码器或解码器如何将这种嵌入sei消息生成到编码视频位流中并从该编码视频位流中提取嵌入图像。
[0084]
图6是示出了根据本技术的一些实施方式的视频编码器(如视频编码器20)实现通过使用图片生成嵌入图像sei消息并将该sei消息添加到视频比特流中的技术的示例性过程的流程图。首先,视频编码器20识别图片(610)。需要说明的是,该图片可以是如上所述的要被编码的视频内容的一个图像帧(610-1),也可以是并不是该视频内容的一部分的任意的图片(如视频拍摄者的图像或制作视频内容的公司的标志)(610-3)。在第一种情况下,该视频比特流包括多个嵌入图像sei消息,每个嵌入图像sei消息包括对应于编码到该视频比特流中的相应图像帧的图像数据和相应图像帧的图片顺序计数(poc)。在后一种情况下,可将该图像id设置为空值。多个嵌入图像sei消息中任意两个连续的嵌入图像sei消息的poc之间的差异可以是常数或变量。
[0085]
随后,视频编码器20确定用于该图片的参数集合(630)。示例性参数包括如上文结合图5c所描述的图像格式、图像标识符和图像尺寸(630-1)。在一些实施方式中,该图片的图像尺寸由图像宽度、图像高度和图像原点限定,该图像原点可以被限定为该图片的左上角。接着,视频编码器20根据前面结合图5b所描述的该嵌入图像sei消息的格式使用该参数集合生成嵌入图像sei消息。最后,视频编码器像在前面结合图5a所描述的那样将该嵌入图像sei消息添加到该视频比特流的元数据中(670)。应注意,上述各种编码技术,如帧内预测和帧间预测,可用于对该嵌入图像进行编码。
[0086]
图7是示出了根据本技术的一些实施方式的视频解码器(如视频解码器30)实现从视频比特流提取嵌入图像sei消息并且使用该嵌入图像sei消息生成图片的技术的示例性过程的流程图。首先,视频解码器30像在前面结合图5a所描述的那样在该编码视频比特流的视频元数据中识别嵌入图像sei消息(710)。应注意,可以使用如上所述的各种编码技术对该嵌入图像进行编码,如帧内预测和帧间预测。然后,视频解码器30像在前面结合图5b所描述的那样从该嵌入图像sei消息中提取参数集合(730)。最后,视频解码器30使用该参数集合从存储在该嵌入图像sei消息中的图像数据生成图片(750)。所述图片可以被使用作为视频流的封面图像(750-1)。或者,如果该视频流具有多个嵌入图像sei消息,则视频解码器30可以生成多个图片并将它们形成为序列以作为该编码视频比特流的概要播放(750-3)。通过这种操作,最终用户可以了解视频的内容,而无需将整个视频比特流解码。
[0087]
在一些实施方式中,用于生成该嵌入图像sei消息的图片具有与编码到该视频比特流中的对应图像帧相比相同或更低的分辨率。具有相同分辨率的图片可以用作该视频的封面图像,且具有较低分辨率的图片可以用作该视频的缩略图像。该嵌入图像可以是该视频序列中图片的缩小版本,并且具有固定大小或固定缩小比例或固定尺寸。与视频剪辑大小相比,该嵌入图像的开销非常小。例如,为了针对一分钟的1080p sdr30fps视频生成一个嵌入图像,缩小尺寸为960x540的嵌入图像的大小约为50kb(使用jpeg压缩质量75)。
[0088]
在一些实施方式中,视频编码器20可以仅提取该视频内容中的图片的一部分以生成该嵌入图像。在这种情况下,该嵌入图像的尺寸由图像宽度、图像高度和图像原点限定。在默认情况下,可以选择图片原点为图片的左上角。在这种情况下,视频编码器20不需要将图像原点用信号发送给视频解码器30。或者,图像原点可以是图片中的任意点。在这种情况下,视频编码器20可能需要将图像原点用信号发送给视频解码器30。
[0089]
通过上述方法,视频比特流与其由内容制作者生成的缩略图图像和封面图像一起打包。这种打包是通过一种新的类型的嵌入sei消息或通过一种新的类型的元数据来实现的。因此,视频比特流及其由视频制作者生成的缩略图可以在不同平台和设备之间轻松共享。此外,视频制作者可以以非常灵活的方式生成缩略图像。这些缩略图像不必是直接从相关视频中选择的帧。视频制作者可以自由选择任何帧并在为该视频生成这些缩略图像时使用任何视频编辑。
[0090]
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输并由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质,或者包括便于将计算机程序从一个地方转移到另一个地方的任何介质的通信介质,例如,根据通信协议。在这种方式中,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一台或多台计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以实现本技术中描述的实施方式的任何可用介质。计算机程序产品可包括计算机可读介质。
[0091]
在此处的实施方式的描述中使用的术语仅用于描述特定实施方式的目的,并不旨在限制权利要求的范围。在实施方式和所附权利要求的描述中使用的单数形式“一个”和“该/所述”也旨在包括复数形式,除非上下文另有明确指示。还应理解,本文所用的术语“和/或”是指并且涵盖一个或多个相关联的所列项目的任何和所有可能的组合。将会进一步理解,当在本说明书中使用时,术语“包括”指定所陈述的特征、要素和/或组件的存在,但不排除其它一个或多个特征、要素、组件和/或它们的组的存在或添加。
[0092]
还应理解,虽然术语第一、第二等在本文中可用于描述各种要素,但这些要素不应受限于这些术语。这些术语仅用于区分一种要素与另一种要素。例如,在不脱离实施方式的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极都是电极,但不是同一个电极。
[0093]
本技术的描述是为了说明和描述的目的而呈现的,并不旨在穷举或限制以所公开形式的本发明。受益于前述描述和相关附图中呈现的教导,本领域普通技术人员将明白许多修改、变化和替代实施方式。选择和描述实施例是为了最好地解释本发明的原理、实际应用,并使本领域的其它技术人员能够理解本发明的各种实施方式,并最好地利用具有各种修改的基本原理和各种实施方式,如适用于预期的特定用途。因此,应当理解,权利要求的范围不限于所公开的实施方式的具体示例,并且修改和其它实施方式旨在包括在所附权利要求的范围内。
再多了解一些

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

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

相关文献