字节流及对其进行分级编码和解码的方法和设备、介质与流程

文档序号:37545576发布日期:2024-04-08 13:49阅读:11来源:国知局
字节流及对其进行分级编码和解码的方法和设备、介质与流程

本发明涉及用于对诸如字节流等数据流的序列进行编码和/或解码的方法、设备、计算机程序和计算机可读介质。


背景技术:

1、当传输或存储图像和视频数据时,减小数据的大小特别有利。用于对这种数据进行编码和解码的技术是多种多样的并且是众所周知的。当代技术在处理效率、数据质量与数据压缩之间作出折衷。

2、通常通过由各自具有值的分量集表示图像颜色来用数字表示图像。例如,可以使用rgb颜色模型或ycbcr颜色空间来表示图像的颜色,其中图像的每个像素由三个不同的值表示。

3、为了压缩数据,通常首先将图像的平面分成数据元素块,诸如8×8个像素的块,且然后对每个块进行域变换。实例包括离散余弦变换和小波变换。如本领域中众所周知的,变换译码用于捕获数据中的相关结构。

4、然后,变换后的数据经过量化以使用较小的值集来表示较大的值集,并且然后通常经历另一压缩步骤,诸如熵译码。熵译码利用数据集内的频繁出现的值或值序列以减小数据量。例如,熵译码技术通过用极少位表示频繁出现的模式而用许多位表示很少出现的模式来压缩数字数据。

5、每个步骤的功效取决于前一步的结果。也就是说,变换和量化过程被设计成使过程的下一步更加有效。例如,如果变换和量化过程用频繁出现的符号或符号组来表示图像的值,以使得熵译码步骤更加有效,那么可以使整体压缩更加有效。

6、因此,熵译码操作的输出是数据流,并且以与编码操作成镜像的方式执行解码操作。首先,对数据流进行解码以重新创建信息。为了生成一系列块,使用在编码器处使用的逆过程将流分割并映射到数据平面,然后根据流中接收到块的顺序,将块布置在其在平面中的定位。例如,在典型的jpeg算法中,块以从左到右、从上到下的模式排列,并且在每个块内,系数以z字形或蛇形模式排列。然后将这些块去量化。然后,使用例如小波或离散余弦变换对块进行域变换。

7、此类熵技术利用数据的全局统计数据来识别最可能的符号并有效地对这些符号进行编码。为了对熵编码的数据集进行解码,还需要指定用于对数据进行编码的统计数据。此类统计数据通常以通常不可压缩的元数据的形式发送。这产生必须在过程中考虑的开销。虽然可以将待编码数据进一步细分为越来越小的集,但这样做会导致元数据开销增加。因而,重要的是确保描述数据所需的元数据增长不大于通过利用增强的熵编码所节省的成本,这样做得到折衷方案。

8、一些已知的编解码器(诸如avc)会将数据帧细分为块并将改变块的大小,并将计算可变大小块的统计数据。然后可以在编码过程中使用此类统计数据。然而,由于与统计数据关联的元数据开销,在统计数据的量与与提供此类统计数据相关联的成本之间同样存在折衷。

9、在优化解码过程例如以利用并行解码优化或流的子集的单独解码方面仍然存在困难。每个块与其他块连接且作为一个流发送,且因此为了将每个变换后的块准确地安装在平面中的正确定位,先前块中的每一个必须已经从组合流顺序解码——块在流中出现的顺序决定块在网格中的定位。

10、类似地,如果不对先前的块进行解码,那么不可能搜索并访问流中的每个块以允许并行或单独的解码。想象块之间的某种边界符号。然后,将无法搜索到期望块,但系统将能够搜索到块(不能说出哪一个;只能抓取保证不用于其他原因的边界符号),并且访问所述块。此外,某些熵编码算法将合并所述块,使得它们无法分离,除非在一个熵解码操作中对整个流进行解码。替代地,如果流的每个部分具有可变长度(在大多数译码算法中),那么在不损害压缩的情况下识别数据中的合适边界以使得能够将流分离成子集是困难的,从而进一步增加对顺序解码的需求。

11、为了实现并行处理,先前已经提出将图像数据分成多个部分并组合压缩流。已经提出的替代性方法是在压缩流中扫描编码数据中的边界,或者用预定义代码在流中插入标记以辅助扫描过程。所提出方法都未被证明是最佳的。

12、先前已经提出以分级方式对数据进行编码,以减小信号的总体数据大小。在这种编码技术中,残差数据(即纠正基础层中存在的低质量信息所需的数据)将以逐渐提高的质量级别使用。在wo 2013/171173中描述了此分级技术,其提出信号的再现的分层层级体系。在此提出的技术中,质量的基本层表示第一分辨率的图像,而分层层级体系中的后续层是解码侧以更高的分辨率重构图像所需的残差数据或调整层。在此wo 2013/171173中提出了技术,所述技术构造化各层中的数据以利用残差层中的相关性,以通过将值的块变换为方向分量集来减少信息熵。此分级技术中的每个层,特别是每个残差层,通常是具有许多零值元素的相对稀疏的数据集。

13、在较早提交的专利申请gb1812407.3和wo2013/171173中也公开了分级的、分层的数据结构的概念。

14、先前已经提出使用四叉树来存储稀疏矩阵。所述技术建立树来存储矩阵的空间结构。当考虑用于使用稀疏矩阵重构图像的已知格式的任何可能实现时,每种格式都需要大量的内存使用。展示效率增益的每种已知格式都需要将大量数据存储在存储器中,以正确地重构矩阵中数据的定位和值。

15、行业的目标仍然是减小存储或传输的图像和视频数据的大小,并减少图像重构中对稀疏数据集进行编码或解码的处理时间和内存利用。

16、在us2015/304667 a1中描述了可扩展编码概念。一方面通过引入长期语法元素结构来改进多层视频数据流的帧间相依层的并行解码,所述长期语法元素结构用于确保在预定时间段期间,所述相依层的图片经细分以使得所述第二层的图片的空间片段的边界与所述第一层的空间片段重叠。另一方面涉及从基础层到增强层的上采样。另一方面引入长期语法元素结构,其允许解码器确定预定时间段的层间偏移。另一方面引入改变nal单元标头内的层指示符字段将被解释的方式的类型指示符字段。另一方面允许不同编解码器/标准用于不同层。另一方面涉及以基础层块为单位指示层间偏移的语法元素结构。

17、us2016/165321 a1涉及封装要流传送至客户端装置的分割的定时媒体数据,分割的定时媒体数据包括定时样本,每个定时样本包括多个子样本。在已经将所述子样本中的若干子样本分组以形成至少一个组使得所述子样本的至少一部分属于子样本组之后,从所述定时样本之一的所述多个子样本当中选择同一组中的至少两个子样本,并且创建包括所选择的子样本的至少一个轨道。接下来,对于所述至少一个所创建的轨道,为被选择以创建所述至少一个轨道的所述子样本中的每一者创建一个子轨道盒,所述所创建的子轨道盒中的至少一者包括所选择的子样本所共有的定义和特性。所创建的轨道中的每一个被独立地封装在至少一个媒体文件中。


技术实现思路

1、根据本发明的一方面,提供一种对接收到的表示已压缩信息的经编码数据集进行解码的方法,所述方法包括:从所述数据集获得属性指示符集,所述指示符集中的每个指示符与所述数据集的子集相关联;以及对所述数据集的多个子集进行解码,包括:根据与每个子集相关联的属性指示符检索每个子集的解码参数;以及根据每个子集的检索到的解码参数对每个子集进行解码。本发明实现根据数据集的子集的共同特征而将所述子集分组在一起的方法,而无关于那些子集的空间定位。因此,在保持通过根据不同解码参数对不同子集进行解码而提供的最佳解码性能的同时减少数据集的元数据开销成为可能。能够将所述属性指示符视为索引值或密钥。优选地,所述集作为流被接收,并且每个子集是该流的一部分。总之,子集能够被分组在一起并被分配值,但是这些参数能够在所述数据集中单独指示。

2、分组可能不一定是空间性的,而是通过相关性,并且所述元数据可能不一定是编解码器固有的。分组在数据结构级别(在其他地方被称作tessara)下提供粒度。

3、优选地,所述检索步骤能够包括根据每个属性指示符检索多个解码参数,所述多个解码参数对应于解码过程的不同功能。以这种方式,能够仅使用单个属性指示符来用信号通知多个解码参数。

4、所述多个子集还包含经编码数据值,且其中所述方法还能够包括:从所述数据值重新创建所述已压缩信息。

5、所述指示符集中的每个指示符能够与所述数据集的所述多个子集中的相应子集相关联。因此,能够根据分别发送的索引来分别优化所述子集,这允许对所述子集进行选择性优化。

6、多个指示符能够是相同的。

7、能够将所述经编码数据集划分为子集的层级体系。因此,所述属性指示符可以包括在所述分级数据结构的不同层中,并且被配置成对应于后续层的相应子集,以用信号通知所述属性指示符与所述子集的对应关系,而不显式地用信号通知所述对应关系并减少元数据开销。子集的属性指示符能够包含通过分别对所述数据集的属性元数据子集进行解码来获得的数据值。因此,能够在识别用以对后面的数据集进行解码的参数之前执行第一解码过程。这能够被视为串行处理与并行处理的组合。

8、在某些实施例中,所述方法还能够包括:获得与所述数据集的初始子集相关联的初始属性指示符;根据所述初始属性指示符检索所述初始子集的初始解码参数;根据所述初始解码参数对所述初始子集进行解码,其中所述初始子集包含所述数据集的所述多个子集的所述属性指示符。此实施例规定,能够从初始索引值对所述数据集的初始部分进行解码,而不显式地用信号通知初始子集的参数。因此,例如,报头能够用信号通知第一数据结构的索引,并且对该数据结构能够进行解码以识别对应于经编码数据集的后续数据结构的索引值。以这种方式,能够优化分级处理技术以减少元数据开销。

9、所述解码参数能够包括量化参数。因此,可以根据一组类似参数来用信号通知多个子集的量化参数,因此减少元数据开销并优化所述数据的子集的量化,同时允许动态优化所述参数。

10、所述解码参数能够包括熵解码概率元数据。所述熵解码概率元数据能够表示用于范围解码操作的累积分布函数。以这种方式,能够针对一组子集优化对所述数据集执行的熵解码操作,而那些子集不必在空间上邻近所述数据集或待压缩的信息。能够提供选择性的统计传输,同时减少总体元数据开销,因为所述统计数据仅需要发送一次,或替代地,所述统计数据能够从解码器处的存储器检索并且仅由适当的索引引用。

11、因此,本发明的技术能够被认为是报头的元素,即,如果在报头中用信号通知属性指示符,则通过密钥而不是通过数据告知解码器属性,那么索引引用报头中的密钥集。

12、根据另一方面,提供一种对接收到的表示已压缩信息的经编码数据集进行解码的设备,所述设备包括被配置成执行以上方面的方法的处理器。

13、根据本发明的另一方面,提供一种将待压缩信息编码为经编码数据集的方法,所述方法包括:对所述数据集的多个子集进行编码,包括:检索每个子集的编码参数;以及根据每个子集的检索到的编码参数对每个子集进行编码;以及生成属性指示符集,所述指示符集中的每个指示符根据每个子集的所述检索到的编码参数而与所述数据集的子集相关联。检索步骤包括:检索多个编码参数,所述多个解码参数对应于编码过程的不同功能。所述多个子集包含经编码数据值,使得能够从所述数据值重新创建所述待压缩信息。所述指示符集中的每个指示符与所述数据集的所述多个子集中的相应子集相关联。多个指示符能够是相同的。能够将所述经编码数据集划分为子集的层级体系。包含数据值的子集的属性指示符分别被编码为所述数据集的属性元数据子集。所述方法还能够包括:根据检索到的初始解码参数对初始子集进行编码;生成与所述数据集的初始子集相关联的初始属性指示符,其中所述编码初始子集包含所述数据集的所述多个子集的所述属性指示符。所述编码参数能够包括量化参数。所述编码参数能够包括熵译码概率元数据。熵译码概率元数据可以表示用于范围译码操作的累积分布函数。

14、根据另一方面,能够提供一种用于将待压缩信息编码为经编码数据集的设备,所述设备包括被配置成执行以上方面的方法的处理器。

15、根据本发明的另一方面,提供一种对包括报头和有效载荷的经编码数据集进行解码的方法,所述有效载荷包括表示已压缩信息的多个经编码数据符号。解码器被配置成根据预定解码过程对所述有效载荷的子集进行解码。所述方法包括:对所述报头进行解码以推导出元数据元素集;从所述元数据元素集检索变化参数,所述变化参数指示应如何使所述预定解码过程变化;根据基于所述变化参数而修改的解码过程来对所述有效载荷进行解码,使得针对所述多个经编码数据符号优化所述解码过程;以及从经解码有效载荷重构所述已压缩信息。

16、因此,解码模块能够从报头获得值,所述值指示所述解码模块应基于指示来调适其操作和/或使用所述变化参数或快捷方式来实施解码过程。例如,此解决方案允许解码器基于所述数据集的期望内容而优化其计算效率。另外,取决于所述解码过程的应用,即如何将其应用到信息以及如何重新创建期望的信息,能够减小或优化所述数据集的总体大小。

17、在一个实施例中,所述变化参数能够指示应根据相同解码参数中的一个或多个对所述有效载荷的多个子集进行解码。因此,可能不需要为所述有效载荷的一部分用信号通知个别解码参数,并且由于可能不需要检查或变化,因此所述解码器能够优化实施方案。

18、在特别有利的实施例中,所述变化参数能够指示禁用量化,使得所述多个经编码数据符号在解码期间不被量化。以这种方式,所述解决方案能够提供诸如图像等整个数据集(的区域的动态无损编码。这对于感兴趣区域可能有益。类似地,在能够动态禁用量化的情况下,可能不需要用信号通知参数并且可能不执行量化步骤,从而减少数据大小并降低计算效率。

19、所述有效载荷能够包括各自包括元数据的多个数据结构以及多个经编码数据符号,其中所述元数据指示所述数据结构、所述经编码数据符号或两者的特征,且其中所述变化参数能够指示尚未对优化过程的所述元数据执行期望优化。当与本公开的其他方面结合使用时,此解决方案是特别有利的,例如,能够在不损害数据开销的情况下有效地处理元数据以提高计算效率。

20、所述预定解码过程能够期望所述有效载荷包括各自包括元数据的多个数据结构以及多个经编码数据符号,其中所述元数据能够指示所述数据结构、所述经编码数据符号或两者的特征,且其中所述变化参数能够指示所述数据结构仅包括数据符号并且不包括元数据。在没有元数据的情况下,这可能够减小总体数据大小,但能够使所述解码过程变化以使用预定方法来正确对数据进行解码并重构所述已压缩信息。

21、在实例中,解码器能够知道数据层正在被解码,并且能够跟踪所述字节流中的层,因此可能未向所述解码器给予图块仅包含数据叶而非元数据叶的显式指示。

22、当所述元数据是如本公开的其他方面中所描述的节点符号使得有序四叉树密集时,这是特别有利的。

23、所述变化参数能够指示应根据相同解码参数对所述有效载荷的子集的组进行解码。例如,组能够是所述子集的版本或任何类型的共同方面。此解决方案便于对所述数据进行优化,以根据共同性实现更快且更具效率的处理。

24、在某些实施例中,所述变化参数指示所述有效载荷的期望解码参数在所述经编码数据集中显式地用信号通知并且不通过引用用信号通知。因此,能够根据需要使预定或标准参数变化。

25、另外,所述有效载荷能够包括多个子集,根据解码参数集对每个子集进行解码,且其中所述变化参数能够指示所述经编码数据集的指示哪个解码参数集应用于子集的指示符元素引用多个元组列表中的元组列表,所述元组的每个元素从不同参数集引用待使用的参数。因此,能够根据待解码的数据的类型或特征来使所述解码过程变化。在用信号通知的信息(即参数)中存在重复的情况下,能够通过引用表或其他方式来减少需待传递的信息。因此,减小了总体数据大小并提高了计算效率。

26、替代地或另外,所述有效载荷能够包括多个子集,根据解码参数集对每个子集进行解码,且其中所述变化参数指示所述经编码数据集的指示哪个解码参数集已用于子集的指示符元素是对多个不同参数集中的参数集的引用。因此,能够向所述解码过程通知所述参数在表中列出,而不必查阅表以查找指向其他数据集的其他指针。这种有利的用法取决于所述参数的数量和大小及其频率而提供优化。

27、如能够看出,本公开的各方面因此提供用信号通知优化并随后修改解码操作的灵活且动态的方式,以改善计算速度、效率和存储器开销并且还减小总体数据大小。因此,由所述变化参数提供的总体优点是例如通过优化对所述字节流的处理来减少待编码/解码的数据量和/或优化解码器处的执行时间。这是通过根据检索到的变化参数而修改解码操作来执行的。

28、根据本发明的另一方面,能够提供一种对包括报头和有效载荷的经编码数据集进行解码的设备,所述设备包括被配置成执行以上方面的方法的处理器。

29、根据本发明的另一方面,能够提供一种将数据集编码为包括报头和有效载荷的经编码数据集的方法,所述有效载荷包括表示待压缩信息的多个经编码数据符号,其中解码器被配置成根据预定解码过程对所述有效载荷的子集进行解码,所述方法包括:检索变化参数,所述变化参数指示应如何使所述预定解码过程变化;将元数据元素集中的所述变化参数编码为所述报头;根据基于所述变化参数的编码过程而将所述待压缩信息编码为所述有效载荷,使得针对所述多个经编码数据符号优化所述解码过程。所述变化参数能够指示应根据相同解码参数中的一个或多个对所述有效载荷的多个子集进行解码。所述变化参数能够指示禁用量化,使得所述多个经编码数据符号在解码期间不被量化。所述经编码有效载荷能够包括各自包括元数据的多个数据结构以及多个经编码数据符号,其中所述元数据能够指示所述数据结构、所述经编码数据符号或两者的特征,且其中所述变化参数能够指示尚未对优化过程的所述元数据执行期望优化。所述预定编码过程能够期望所述有效载荷包括各自包括元数据的多个数据结构以及多个经编码数据符号,其中所述元数据能够指示所述数据结构、所述经编码数据符号或两者的特征,且其中所述变化参数指示所述数据结构仅包括数据符号并且不包括元数据。所述变化参数能够指示根据相同编码参数对所述有效载荷的子集的组进行编码。所述变化参数能够指示所述有效载荷的编码参数在所述经编码数据集中显式地用信号通知并且不通过引用用信号通知。所述有效载荷能够包括多个子集,根据编码参数集对每个子集进行编码,且其中所述变化参数指示所述经编码数据集的指示哪个编码参数集已用于子集的指示符元素引用多个元组列表中的元组列表,所述元组的每个元素从不同参数集引用使用的参数。所述有效载荷能够包括多个子集,根据编码参数集对每个子集进行编码,且其中所述变化参数指示所述经编码数据集的指示哪个编码参数集已用于子集的指示符元素是对多个不同参数集中的参数集的引用。

30、根据本发明的另一方面,能够提供一种用于将数据集编码为包括报头和有效载荷的经编码数据集的设备,所述有效载荷包括表示待压缩信息的多个经编码数据符号,其中解码器被配置成根据预定解码过程对所述有效载荷的子集进行解码,所述设备包括被配置成执行以上方面的方法的处理器。

31、根据本发明的另一方面,能够提供一种计算机可读介质,所述计算机可读介质在由处理器执行时使所述处理器执行以上方面的方法中的任一个。

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