CN111684802B - 用于对字节流进行分级编码和解码的方法和设备 - Google Patents
用于对字节流进行分级编码和解码的方法和设备 Download PDFInfo
- Publication number
- CN111684802B CN111684802B CN201880088741.6A CN201880088741A CN111684802B CN 111684802 B CN111684802 B CN 111684802B CN 201880088741 A CN201880088741 A CN 201880088741A CN 111684802 B CN111684802 B CN 111684802B
- Authority
- CN
- China
- Prior art keywords
- data
- decoding
- metadata
- attribute
- subset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 305
- 230000008569 process Effects 0.000 claims description 119
- 238000013139 quantization Methods 0.000 claims description 74
- 238000005315 distribution function Methods 0.000 claims description 26
- 230000001186 cumulative effect Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 16
- 239000010410 layer Substances 0.000 description 180
- 230000000875 corresponding effect Effects 0.000 description 66
- 238000012545 processing Methods 0.000 description 18
- 230000008901 benefit Effects 0.000 description 17
- 238000013507 mapping Methods 0.000 description 15
- 230000008859 change Effects 0.000 description 13
- 238000007906 compression Methods 0.000 description 12
- 230000006835 compression Effects 0.000 description 12
- 230000002829 reductive effect Effects 0.000 description 12
- 230000011664 signaling Effects 0.000 description 12
- 238000005457 optimization Methods 0.000 description 10
- 230000009466 transformation Effects 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000003491 array Methods 0.000 description 8
- 238000001914 filtration Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 230000002730 additional effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000011229 interlayer Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000013442 quality metrics Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
能够提供一种对接收到的表示已压缩信息的经编码数据集进行解码的方法,所述方法包括:从所述数据集获得属性指示符集,所述指示符集中的每个指示符与所述数据集的子集相关联;以及对所述数据集的多个子集进行解码,包括:根据与每个子集相关联的属性指示符检索每个子集的解码参数;以及根据每个子集的检索到的解码参数对每个子集进行解码。
Description
技术领域
本发明涉及用于对诸如字节流等数据流的序列进行编码和/或解码的方法、设备、计算机程序和计算机可读介质。
背景技术
当传输或存储图像和视频数据时,减小数据的大小特别有利。用于对这种数据进行编码和解码的技术是多种多样的并且是众所周知的。当代技术在处理效率、数据质量与数据压缩之间作出折衷。
通常通过由各自具有值的分量集表示图像颜色来用数字表示图像。例如,可以使用RGB颜色模型或YCbCr颜色空间来表示图像的颜色,其中图像的每个像素由三个不同的值表示。
为了压缩数据,通常首先将图像的平面分成数据元素块,诸如8×8个像素的块,且然后对每个块进行域变换。实例包括离散余弦变换和小波变换。如本领域中众所周知的,变换译码用于捕获数据中的相关结构。
然后,变换后的数据经过量化以使用较小的值集来表示较大的值集,并且然后通常经历另一压缩步骤,诸如熵译码。熵译码利用数据集内的频繁出现的值或值序列以减小数据量。例如,熵译码技术通过用极少位表示频繁出现的模式而用许多位表示很少出现的模式来压缩数字数据。
每个步骤的功效取决于前一步的结果。也就是说,变换和量化过程被设计成使过程的下一步更加有效。例如,如果变换和量化过程用频繁出现的符号或符号组来表示图像的值,以使得熵译码步骤更加有效,那么可以使整体压缩更加有效。
因此,熵译码操作的输出是数据流,并且以与编码操作成镜像的方式执行解码操作。首先,对数据流进行解码以重新创建信息。为了生成一系列块,使用在编码器处使用的逆过程将流分割并映射到数据平面,然后根据流中接收到块的顺序,将块布置在其在平面中的定位。例如,在典型的JPEG算法中,块以从左到右、从上到下的模式排列,并且在每个块内,系数以Z字形或蛇形模式排列。然后将这些块去量化。然后,使用例如小波或离散余弦变换对块进行域变换。
此类熵技术利用数据的全局统计数据来识别最可能的符号并有效地对这些符号进行编码。为了对熵编码的数据集进行解码,还需要指定用于对数据进行编码的统计数据。此类统计数据通常以通常不可压缩的元数据的形式发送。这产生必须在过程中考虑的开销。虽然可以将待编码数据进一步细分为越来越小的集,但这样做会导致元数据开销增加。因而,重要的是确保描述数据所需的元数据增长不大于通过利用增强的熵编码所节省的成本,这样做得到折衷方案。
一些已知的编解码器(诸如AVC)会将数据帧细分为块并将改变块的大小,并将计算可变大小块的统计数据。然后可以在编码过程中使用此类统计数据。然而,由于与统计数据关联的元数据开销,在统计数据的量与与提供此类统计数据相关联的成本之间同样存在折衷。
在优化解码过程例如以利用并行解码优化或流的子集的单独解码方面仍然存在困难。每个块与其他块连接且作为一个流发送,且因此为了将每个变换后的块准确地安装在平面中的正确定位,先前块中的每一个必须已经从组合流顺序解码——块在流中出现的顺序决定块在网格中的定位。
类似地,如果不对先前的块进行解码,那么不可能搜索并访问流中的每个块以允许并行或单独的解码。想象块之间的某种边界符号。然后,将无法搜索到期望块,但***将能够搜索到块(不能说出哪一个;只能抓取保证不用于其他原因的边界符号),并且访问所述块。此外,某些熵编码算法将合并所述块,使得它们无法分离,除非在一个熵解码操作中对整个流进行解码。替代地,如果流的每个部分具有可变长度(在大多数译码算法中),那么在不损害压缩的情况下识别数据中的合适边界以使得能够将流分离成子集是困难的,从而进一步增加对顺序解码的需求。
为了实现并行处理,先前已经提出将图像数据分成多个部分并组合压缩流。已经提出的替代性方法是在压缩流中扫描编码数据中的边界,或者用预定义代码在流中***标记以辅助扫描过程。所提出方法都未被证明是最佳的。
先前已经提出以分级方式对数据进行编码,以减小信号的总体数据大小。在这种编码技术中,残差数据(即纠正基础层中存在的低质量信息所需的数据)将以逐渐提高的质量级别使用。在WO 2013/171173中描述了此分级技术,其提出信号的再现的分层层级体系。在此提出的技术中,质量的基本层表示第一分辨率的图像,而分层层级体系中的后续层是解码侧以更高的分辨率重构图像所需的残差数据或调整层。在此WO 2013/171173中提出了技术,所述技术构造化各层中的数据以利用残差层中的相关性,以通过将值的块变换为方向分量集来减少信息熵。此分级技术中的每个层,特别是每个残差层,通常是具有许多零值元素的相对稀疏的数据集。
在较早提交的专利申请GB1812407.3和WO2013/171173中也公开了分级的、分层的数据结构的概念。
先前已经提出使用四叉树来存储稀疏矩阵。所述技术建立树来存储矩阵的空间结构。当考虑用于使用稀疏矩阵重构图像的已知格式的任何可能实现时,每种格式都需要大量的内存使用。展示效率增益的每种已知格式都需要将大量数据存储在存储器中,以正确地重构矩阵中数据的定位和值。
行业的目标仍然是减小存储或传输的图像和视频数据的大小,并减少图像重构中对稀疏数据集进行编码或解码的处理时间和内存利用。
在US2015/304667 A1中描述了可扩展编码概念。一方面通过引入长期语法元素结构来改进多层视频数据流的帧间相依层的并行解码,所述长期语法元素结构用于确保在预定时间段期间,所述相依层的图片经细分以使得所述第二层的图片的空间片段的边界与所述第一层的空间片段重叠。另一方面涉及从基础层到增强层的上采样。另一方面引入长期语法元素结构,其允许解码器确定预定时间段的层间偏移。另一方面引入改变NAL单元标头内的层指示符字段将被解释的方式的类型指示符字段。另一方面允许不同编解码器/标准用于不同层。另一方面涉及以基础层块为单位指示层间偏移的语法元素结构。
US2016/165321 A1涉及封装要流传送至客户端装置的分割的定时媒体数据,分割的定时媒体数据包括定时样本,每个定时样本包括多个子样本。在已经将所述子样本中的若干子样本分组以形成至少一个组使得所述子样本的至少一部分属于子样本组之后,从所述定时样本之一的所述多个子样本当中选择同一组中的至少两个子样本,并且创建包括所选择的子样本的至少一个轨道。接下来,对于所述至少一个所创建的轨道,为被选择以创建所述至少一个轨道的所述子样本中的每一者创建一个子轨道盒,所述所创建的子轨道盒中的至少一者包括所选择的子样本所共有的定义和特性。所创建的轨道中的每一个被独立地封装在至少一个媒体文件中。
发明内容
根据本发明的一方面,提供一种对接收到的表示已压缩信息的经编码数据集进行解码的方法,所述方法包括:从所述数据集获得属性指示符集,所述指示符集中的每个指示符与所述数据集的子集相关联;以及对所述数据集的多个子集进行解码,包括:根据与每个子集相关联的属性指示符检索每个子集的解码参数;以及根据每个子集的检索到的解码参数对每个子集进行解码。本发明实现根据数据集的子集的共同特征而将所述子集分组在一起的方法,而无关于那些子集的空间定位。因此,在保持通过根据不同解码参数对不同子集进行解码而提供的最佳解码性能的同时减少数据集的元数据开销成为可能。能够将所述属性指示符视为索引值或密钥。优选地,所述集作为流被接收,并且每个子集是该流的一部分。总之,子集能够被分组在一起并被分配值,但是这些参数能够在所述数据集中单独指示。
分组可能不一定是空间性的,而是通过相关性,并且所述元数据可能不一定是编解码器固有的。分组在数据结构级别(在其他地方被称作Tessara)下提供粒度。
优选地,所述检索步骤能够包括根据每个属性指示符检索多个解码参数,所述多个解码参数对应于解码过程的不同功能。以这种方式,能够仅使用单个属性指示符来用信号通知多个解码参数。
所述多个子集还包含经编码数据值,且其中所述方法还能够包括:从所述数据值重新创建所述已压缩信息。
所述指示符集中的每个指示符能够与所述数据集的所述多个子集中的相应子集相关联。因此,能够根据分别发送的索引来分别优化所述子集,这允许对所述子集进行选择性优化。
多个指示符能够是相同的。
能够将所述经编码数据集划分为子集的层级体系。因此,所述属性指示符可以包括在所述分级数据结构的不同层中,并且被配置成对应于后续层的相应子集,以用信号通知所述属性指示符与所述子集的对应关系,而不显式地用信号通知所述对应关系并减少元数据开销。子集的属性指示符能够包含通过分别对所述数据集的属性元数据子集进行解码来获得的数据值。因此,能够在识别用以对后面的数据集进行解码的参数之前执行第一解码过程。这能够被视为串行处理与并行处理的组合。
在某些实施例中,所述方法还能够包括:获得与所述数据集的初始子集相关联的初始属性指示符;根据所述初始属性指示符检索所述初始子集的初始解码参数;根据所述初始解码参数对所述初始子集进行解码,其中所述初始子集包含所述数据集的所述多个子集的所述属性指示符。此实施例规定,能够从初始索引值对所述数据集的初始部分进行解码,而不显式地用信号通知初始子集的参数。因此,例如,报头能够用信号通知第一数据结构的索引,并且对该数据结构能够进行解码以识别对应于经编码数据集的后续数据结构的索引值。以这种方式,能够优化分级处理技术以减少元数据开销。
所述解码参数能够包括量化参数。因此,可以根据一组类似参数来用信号通知多个子集的量化参数,因此减少元数据开销并优化所述数据的子集的量化,同时允许动态优化所述参数。
所述解码参数能够包括熵解码概率元数据。所述熵解码概率元数据能够表示用于范围解码操作的累积分布函数。以这种方式,能够针对一组子集优化对所述数据集执行的熵解码操作,而那些子集不必在空间上邻近所述数据集或待压缩的信息。能够提供选择性的统计传输,同时减少总体元数据开销,因为所述统计数据仅需要发送一次,或替代地,所述统计数据能够从解码器处的存储器检索并且仅由适当的索引引用。
因此,本发明的技术能够被认为是报头的元素,即,如果在报头中用信号通知属性指示符,则通过密钥而不是通过数据告知解码器属性,那么索引引用报头中的密钥集。
根据另一方面,提供一种对接收到的表示已压缩信息的经编码数据集进行解码的设备,所述设备包括被配置成执行以上方面的方法的处理器。
根据本发明的另一方面,提供一种将待压缩信息编码为经编码数据集的方法,所述方法包括:对所述数据集的多个子集进行编码,包括:检索每个子集的编码参数;以及根据每个子集的检索到的编码参数对每个子集进行编码;以及生成属性指示符集,所述指示符集中的每个指示符根据每个子集的所述检索到的编码参数而与所述数据集的子集相关联。检索步骤包括:检索多个编码参数,所述多个解码参数对应于编码过程的不同功能。所述多个子集包含经编码数据值,使得能够从所述数据值重新创建所述待压缩信息。所述指示符集中的每个指示符与所述数据集的所述多个子集中的相应子集相关联。多个指示符能够是相同的。能够将所述经编码数据集划分为子集的层级体系。包含数据值的子集的属性指示符分别被编码为所述数据集的属性元数据子集。所述方法还能够包括:根据检索到的初始解码参数对初始子集进行编码;生成与所述数据集的初始子集相关联的初始属性指示符,其中所述编码初始子集包含所述数据集的所述多个子集的所述属性指示符。所述编码参数能够包括量化参数。所述编码参数能够包括熵译码概率元数据。熵译码概率元数据可以表示用于范围译码操作的累积分布函数。
根据另一方面,能够提供一种用于将待压缩信息编码为经编码数据集的设备,所述设备包括被配置成执行以上方面的方法的处理器。
根据本发明的另一方面,提供一种对包括报头和有效载荷的经编码数据集进行解码的方法,所述有效载荷包括表示已压缩信息的多个经编码数据符号。解码器被配置成根据预定解码过程对所述有效载荷的子集进行解码。所述方法包括:对所述报头进行解码以推导出元数据元素集;从所述元数据元素集检索变化参数,所述变化参数指示应如何使所述预定解码过程变化;根据基于所述变化参数而修改的解码过程来对所述有效载荷进行解码,使得针对所述多个经编码数据符号优化所述解码过程;以及从经解码有效载荷重构所述已压缩信息。
因此,解码模块能够从报头获得值,所述值指示所述解码模块应基于指示来调适其操作和/或使用所述变化参数或快捷方式来实施解码过程。例如,此解决方案允许解码器基于所述数据集的期望内容而优化其计算效率。另外,取决于所述解码过程的应用,即如何将其应用到信息以及如何重新创建期望的信息,能够减小或优化所述数据集的总体大小。
在一个实施例中,所述变化参数能够指示应根据相同解码参数中的一个或多个对所述有效载荷的多个子集进行解码。因此,可能不需要为所述有效载荷的一部分用信号通知个别解码参数,并且由于可能不需要检查或变化,因此所述解码器能够优化实施方案。
在特别有利的实施例中,所述变化参数能够指示禁用量化,使得所述多个经编码数据符号在解码期间不被量化。以这种方式,所述解决方案能够提供诸如图像等整个数据集(的区域的动态无损编码。这对于感兴趣区域可能有益。类似地,在能够动态禁用量化的情况下,可能不需要用信号通知参数并且可能不执行量化步骤,从而减少数据大小并降低计算效率。
所述有效载荷能够包括各自包括元数据的多个数据结构以及多个经编码数据符号,其中所述元数据指示所述数据结构、所述经编码数据符号或两者的特征,且其中所述变化参数能够指示尚未对优化过程的所述元数据执行期望优化。当与本公开的其他方面结合使用时,此解决方案是特别有利的,例如,能够在不损害数据开销的情况下有效地处理元数据以提高计算效率。
所述预定解码过程能够期望所述有效载荷包括各自包括元数据的多个数据结构以及多个经编码数据符号,其中所述元数据能够指示所述数据结构、所述经编码数据符号或两者的特征,且其中所述变化参数能够指示所述数据结构仅包括数据符号并且不包括元数据。在没有元数据的情况下,这可能够减小总体数据大小,但能够使所述解码过程变化以使用预定方法来正确对数据进行解码并重构所述已压缩信息。
在实例中,解码器能够知道数据层正在被解码,并且能够跟踪所述字节流中的层,因此可能未向所述解码器给予图块仅包含数据叶而非元数据叶的显式指示。
当所述元数据是如本公开的其他方面中所描述的节点符号使得有序四叉树密集时,这是特别有利的。
所述变化参数能够指示应根据相同解码参数对所述有效载荷的子集的组进行解码。例如,组能够是所述子集的版本或任何类型的共同方面。此解决方案便于对所述数据进行优化,以根据共同性实现更快且更具效率的处理。
在某些实施例中,所述变化参数指示所述有效载荷的期望解码参数在所述经编码数据集中显式地用信号通知并且不通过引用用信号通知。因此,能够根据需要使预定或标准参数变化。
另外,所述有效载荷能够包括多个子集,根据解码参数集对每个子集进行解码,且其中所述变化参数能够指示所述经编码数据集的指示哪个解码参数集应用于子集的指示符元素引用多个元组列表中的元组列表,所述元组的每个元素从不同参数集引用待使用的参数。因此,能够根据待解码的数据的类型或特征来使所述解码过程变化。在用信号通知的信息(即参数)中存在重复的情况下,能够通过引用表或其他方式来减少需待传递的信息。因此,减小了总体数据大小并提高了计算效率。
替代地或另外,所述有效载荷能够包括多个子集,根据解码参数集对每个子集进行解码,且其中所述变化参数指示所述经编码数据集的指示哪个解码参数集已用于子集的指示符元素是对多个不同参数集中的参数集的引用。因此,能够向所述解码过程通知所述参数在表中列出,而不必查阅表以查找指向其他数据集的其他指针。这种有利的用法取决于所述参数的数量和大小及其频率而提供优化。
如能够看出,本公开的各方面因此提供用信号通知优化并随后修改解码操作的灵活且动态的方式,以改善计算速度、效率和存储器开销并且还减小总体数据大小。因此,由所述变化参数提供的总体优点是例如通过优化对所述字节流的处理来减少待编码/解码的数据量和/或优化解码器处的执行时间。这是通过根据检索到的变化参数而修改解码操作来执行的。
根据本发明的另一方面,能够提供一种对包括报头和有效载荷的经编码数据集进行解码的设备,所述设备包括被配置成执行以上方面的方法的处理器。
根据本发明的另一方面,能够提供一种将数据集编码为包括报头和有效载荷的经编码数据集的方法,所述有效载荷包括表示待压缩信息的多个经编码数据符号,其中解码器被配置成根据预定解码过程对所述有效载荷的子集进行解码,所述方法包括:检索变化参数,所述变化参数指示应如何使所述预定解码过程变化;将元数据元素集中的所述变化参数编码为所述报头;根据基于所述变化参数的编码过程而将所述待压缩信息编码为所述有效载荷,使得针对所述多个经编码数据符号优化所述解码过程。所述变化参数能够指示应根据相同解码参数中的一个或多个对所述有效载荷的多个子集进行解码。所述变化参数能够指示禁用量化,使得所述多个经编码数据符号在解码期间不被量化。所述经编码有效载荷能够包括各自包括元数据的多个数据结构以及多个经编码数据符号,其中所述元数据能够指示所述数据结构、所述经编码数据符号或两者的特征,且其中所述变化参数能够指示尚未对优化过程的所述元数据执行期望优化。所述预定编码过程能够期望所述有效载荷包括各自包括元数据的多个数据结构以及多个经编码数据符号,其中所述元数据能够指示所述数据结构、所述经编码数据符号或两者的特征,且其中所述变化参数指示所述数据结构仅包括数据符号并且不包括元数据。所述变化参数能够指示根据相同编码参数对所述有效载荷的子集的组进行编码。所述变化参数能够指示所述有效载荷的编码参数在所述经编码数据集中显式地用信号通知并且不通过引用用信号通知。所述有效载荷能够包括多个子集,根据编码参数集对每个子集进行编码,且其中所述变化参数指示所述经编码数据集的指示哪个编码参数集已用于子集的指示符元素引用多个元组列表中的元组列表,所述元组的每个元素从不同参数集引用使用的参数。所述有效载荷能够包括多个子集,根据编码参数集对每个子集进行编码,且其中所述变化参数指示所述经编码数据集的指示哪个编码参数集已用于子集的指示符元素是对多个不同参数集中的参数集的引用。
根据本发明的另一方面,能够提供一种用于将数据集编码为包括报头和有效载荷的经编码数据集的设备,所述有效载荷包括表示待压缩信息的多个经编码数据符号,其中解码器被配置成根据预定解码过程对所述有效载荷的子集进行解码,所述设备包括被配置成执行以上方面的方法的处理器。
根据本发明的另一方面,能够提供一种计算机可读介质,所述计算机可读介质在由处理器执行时使所述处理器执行以上方面的方法中的任一个。
附图说明
现将参考附图描述根据本发明的***和方法的实例,在附图中:
图1示出用于指示对数据结构进行解码的多个参数的索引的概念图;
图2A至图2C示出用于传输分级数据结构的简化字节流;
图3示出分级数据结构和与数据层的数据结构相关联的概念索引值;
图4示出分离为子集的图像平面的示意图;
图5说明映射到字节流的根层;
图6说明根层字节流部分;
图7说明根层数据结构;
图8说明映射到字节流的属性元数据元素;
图9说明耦合去稀疏化和解码模块的综述;
图10示意性地说明范围解码器;
图11是示出用于执行实例编码方法的***的框图;
图12是待编码的图像的实例;
图13是对视频数据帧进行编码的方法的流程图;
图14是分割成图块的图像的z序遍历的实例;
图15是细分为图块且随后聚类为图块集的实例图像;
图16是对视频数据帧进行自适应编码的方法的流程图;
图17是对视频数据帧进行编码的方法的流程图;
图18说明累积分布函数;
图19说明基本数据结构;
图20说明固定大小的报头;
图21说明第一可变大小的报头;
图22说明第二可变大小的报头;且
图23说明帧的字节流结构。
具体实施方式
本发明提供了一种用于对数据,特别是图像和视频数据,进行编码和解码的技术和设备。在本文所述的概念中,提出将字节流或位流划分为多个子集,每个子集将被单独解码。提出在字节流中的其他地方用信号通知实现或促进这些子集的解码的参数。字节流包括与每个子集相关联的指针或指示符,所述指针或指示符使得解码器能够从其他位置检索应该用于所述相关联子集的参数集。有利地,每个子集根据它们的共同特征而被分组以促进对那些子集的最佳处理。
因此,减少分别对类似子集进行处理和解码所需的信令成为可能。所提出技术的此益处和其他益处将在下文概述。
可选地,出于这些目的,字节流的子集表示什么可能无关紧要。例如,子集可以表示可以用于重新创建图像平面的数据值或残差值,或者子集可以是描述流中的另一子集或描述图像平面或某些其他数据的方面的元数据。所述技术允许使用特定的元数据来对任何子集进行选择性编码和解码,而不过度增加总体字节流大小。
根据指示符检索的解码参数可以在字节流本身内单独用信号通知,也可以从解码器处的存储器中检索,字节流提供应该从所述存储器中使用哪些参数的指示。例如,指示符将指向表中的条目,且其功能非常类似于索引。指示符可以在字节流的报头中、在待解码且通过预定映射与每个子集相关联的字节流的不同子集中、或者可选地与子集一起发送,并且主要位于字节流中以便于相关联。
在整个本说明书中,术语索引、索引值、指示符、指示符值、属性索引、属性指示符与属性键将可互换地使用,以引用用于用信号通知解码器应使用哪些参数集来简化对特定子集的解码的引用。这些参数可以被称作解码参数或属性。
在整个本说明书中将描述特定的解码参数,然而,对每个子集进行解码可能需要的元数据的类别的实例包括:
用于对特定类型的数据结构进行解码的统计元数据;
用于对所述数据结构进行解码的量化参数元数据;
用于结合使用不同统计数据的数据结构的数据部分对数据结构的元数据部分进行解码的统计元数据;以及
与数据结构一起使用例如以用信号通知解码器所述数据结构表示诸如汽车或天空等特定特征或任何其他辅助特征或从编码器到解码器选择性地签名信息的辅助元数据。
在每个指示符中可以存在多个索引值,指示符的每个索引值引用待使用的单个参数。然而,优选地,每个指示符将引用参数集,每个参数具有不同的函数或类型。也就是说,所述指示符可以是值集,每个值指示待使用每种类型的参数集中的哪个参数,或者可选地可以引用不同类型的多个参数的单个指示符。例如,这些函数可以是用于对每个数据结构进行解码的量化参数和多种不同类型的统计数据,其中每个数据结构包括使用不同编码熵编码技术编码的不同类型的符号。这将从以下实例中变得显而易见。
表1从概念上示出指示符可以如何引用多个参数。如果字节流用信号通知指示符应该用于特定子集,那么解码器可以使用所述指示符或索引来识别参数集中的哪个参数应该用于所述子集。
指示符 | 统计元数据#1 | 量化参数 | 统计元数据#2 |
a | 1 | 1 | 1 |
b | 1 | 2 | 2 |
c | 1 | 1 | 2 |
d | 2 | 3 | 3 |
e | 3 | 3 | 3 |
表1
如例如表1所示,a的指示符值可以对应于来自三个可能的统计元数据的集(1,2,3)的一种类型的符号的第一统计数据集1、来自三个可能的量化参数的集(1,2,3)的量化参数集1以及来自三个可能的统计元数据的集(1,2,3)的统计数据集1。因此,当对特定的字节流子集进行解码时,解码器能够识别出应对每个参数使用三个数据的集中的哪一个集。当然,此处应理解,数字仅是示例性的。
图1从概念上说明了属性指示符的原理。图1的左侧示出了五个字节流子集。五个子集中的每一个对应于数据结构。在字节流内,可以包括指示符值。此处,再次示出五个索引值。子集A和B各自与指示符值a相关联。也就是说,指示符值a被发送并与子集A和B相关联。类似地,子集C与指示符值b相关联,子集E与指示符值c相关联,并且子集D与指示符值e相关联。
指示符值中的每一个都指向可以用于解码的参数集。例如,指示符a指向参数{1,1,1}。指示符b指向参数{1,2,2}。因此,在字节流内,用信号通知指示符,并且解码器可以解释此指示符并根据所述指示符检索参数集以用于对每个子集进行解码。因此,在字节流内,解码后将识别对应子集A的指示符a。解码器将检索参数{1,1,1},以便从字节流中适当地解码子集A。
可以对字节流中的每个指示符进行差分编码。也就是说,可以基于当前指示符与先前指示符之间的差来计算指示符值。例如,如果第一数据结构A具有指示符a,则可以在字节流中针对数据结构B发送的指示符值作为指示符值b-a发送。在数据结构对应于待压缩的信息的相邻区部的情况下,统计数据可能会类似。因此,在统计数据相同的情况下,经差分编码指示符值实际上可以为0,这减少了需要传输以将多个解码参数用信号通知给解码器的元数据。这显著减小了字节流的大小。有用的实例例如可以是天空的图像,其中相邻数据结构各自具有类似的蓝色数据轮廓,并且可能具有类似的解码参数。为了对这些指示符值进行解码,解码器必须存储先前的指示符值并且对指示符值求和以推导出与所讨论的子集相关联的指示符值。
所述技术具有许多优点。例如,技术提供了元数据信号发送的减少——这使得在仅一次用信号发送解码参数的同时仍能够对字节流的子集进行差分编码成为可能。另外,使得将空间上不同但统计上类似的簇或区分组在一起成为可能。这是对任何基于统计的聚类技术的改进,所述技术可能基于网格内区的分组提供统计数据。另外,通过将统计数据分组在一起,可以实现熵编码效率。
通过选择性地发送由指示符分组的量化参数,可以选择性地对信息的不同区进行量化。这使得重要的区可以量化为更高的质量,所述重要的区例如信息中存在边缘的区或可能将读者的眼睛吸引到低质量的区,重要的是,不会在量化时给数据大小带来开销,因为量化参数只能发送一次,并由指示符针对特定子集或区引用。
在将子集分组在一起的情况下,可以使用多个不同类型的参数,并仅使用一个参考(即索引)针对每个区用信号通知所述多个不同类型的参数。这进一步减少了元数据开销。类似区可能具有类似的统计数据和量化参数,这进一步减小了总字节流大小。
另一个优点在于,能够在不增加元数据开销的情况下,根据编码和解码决定帧、平面或质量级别。最后,选择性熵编码可以提高解码速度和/或解码细节。
现在将在用于将图像或视频的稀疏平面分级编码成数据流并且从经编码数据流中重新创建所述平面以使得可以将数据流分为子集且对每个子集单独解码的技术的上下文中描述属性指示符的概念,所述属性指示符告知解码器用于对字节流子集解码的属性或参数集。
提出了包括层的层级结构。对于第一类型的层,定义第一类型的数据元素,所述第一类型的数据元素包括经编码数据集的子集;并且对于第二类型的层,定义第二类型的数据元素,所述第二类型的数据元素包括与第一类型的数据元素相关联的一个或多个属性。根据包含在第二类型数据元素中的信息来确定第一类型的数据元素在重新创建的数组中的定位。
通过定义映射在数据帧内出现残差数据的例子所需的数据结构,可以提供更快的解码和编码方法。此外,数据和描述数据结构的元数据允许在不参考帧的其他部分的情况下对帧的个别部分进行选择性地解码。因此,可以并行进行解码过程。技术进一步减少了存储器中的数据,例如通过允许瞬间将存储器中的数据作为整个平面数据的子集。
通常,数据可以具有任何性质,只要可以将值映射到数组中即可,尽管这些技术也适用于线性数据,并且最有利于图像重构。在图片或视频的情况下,数据可以是与色彩空间相关联的值(例如,RGB色彩空间中的红色分量的值,或YUV色彩空间中的Y分量的值,等),或替代地数据可以是残差数据(无论是否变换)或用于对字节流进行解码的元数据。在本申请中进一步定义了残差,但是一般而言,残差是指参考数组的值与实际数据数组之间的差。
应注意,以下描述中描述的技术与经解码数组的含义或用途无关。实际上,例如讨论了从经编码字节流中解码稀疏数组的概念。当然,可以使用数据集来通过组合多个经解码数据集重构更大的数据集。重新创建后,数据可以表示已压缩的任何信息,诸如图像或声波图。
如上所述,此处描述的技术涉及使用包含在不同数据结构中的信息来对数据结构进行单独解码的一般原理。考虑所述技术的替代方式是,技术提供了图的“分解”或解构,以允许对图的区部进行单独解码。也就是说,可以将完整的图分解成一系列图或可以单独解码的单独数据结构。
本文所述技术提供了以下益处:当单独发送这种分开的数据结构时,可以将它们正确地放回图中,并且另外,还可以通过隐式地用信号通知表示一致值的数据结构来减少所传输的总数据,例如,稀疏数据。
为了提供这些益处,技术将数据流的子集映射到数据结构(诸如树)上。换句话说,技术创建了具有‘片’的数据结构,所述数据结构存储空间信息。如果数据结构是树,则技术可被视为分级的‘具有片的树’。为了重新创建数据,可以将片映射到数据结构,以创建存储空间信息的片的数据结构。可以针对层级体系中的更多层递归过程。
图2A说明了示例性的代表性字节流或位流。术语字节流或位流贯穿整个说明书通常互换使用。说明的字节流被简化并且仅表示一种实施方式。将字节流分为根层和顶层。根层包含与顶层有关的属性元数据。顶层包含映射到待重新创建的图像的数据元素。可以提供未示出的中间层,其中,根层包含与中间层有关的属性元数据,并且中间层包含顶层的属性元数据。如从下面的描述中将理解,元素的顺序仅代表理解技术。
图2B表示顶层的数据结构,所述顶层(Top tier)在此可互换地称为顶层(toptier)、数据层、图块层或层0。数据层的字节流包括一系列数据结构,每个数据结构都包括结构元数据和数据元素。数据元素表示已压缩的信息。如图2B所说明,信息的某些部分可能不包括在字节流中,并且可能被隐式地用信号通知。数据层的数据结构各自对应于数组块或图块,如图2C所说明。图2C示出了块中的每一个如何映射到数组的区,并且示出某些区可能不包括在字节流中,而是被隐式地用信号通知。
在图2中可视化呈从下到上结构的所提出的分层结构。将理解,这仅仅是用于帮助理解本发明的原理的可视化。
层级结构定义了何时呈现数据(且因此需要进行编码)的例子,并提供了识别在何处呈现这种数据的映射。
根层包含指示后续层的属性的属性元数据元素集。基于属性,解码器可以识别数据结构是否包括在后续层中。根的每个属性元数据元素对应于或描述后续层的数据结构的定位,也就是说,属性元数据元素可以包括有关后续层中的数据结构的信息,或者可以指示所述预定定位中不包括任何数据结构。将所定义的元素映射映射到数据结构中的定位。
可选地,根层可以是数据结构本身。也就是说,数据结构可以包括描述属性元数据元素的结构元数据。换句话说,数据结构的数据元素是与后续层有关的元数据(或属性元数据元素),并且数据结构包括描述元数据(或属性元数据元素)的元数据(或结构元数据)。根层可以被称为元数据层。元数据层优选地包含元数据但不包含数据,而数据层包含元数据和数据。
根层和中间层各自显示出类似的功能性。也就是说,根层的属性元数据元素各自描述第一层的数据结构(或缺少第一层的数据结构),且第一层的属性元数据元素各自对应于第二层的数据结构(或缺少第二层的数据结构)。换句话说,每个属性元数据元素对应于待解码的整个网格的子网格。所述子网格由元数据元素的附加层、具有数据元素的多个数据结构表示,或者所述子网格可能没有数据。将会变得清楚的是,此处的空白是指网格中具有一致值的区域。
在所描述的示例性数据结构和技术中,数据平面被分为一系列图块,每个图块具有尺寸集。贯穿整个本说明书中,使用大小16×16,但是可以是任何大小N×N。取决于待解码的平面的大小,可能仅需要根元数据层。例如,在16×16数组中存储属性的根数据结构可以对应于顶层中的256个数据结构。如果顶层或数据层包含256个数据结构,且每个数据结构存储16×16的数据符号数组,则可以映射256×256数组。中间层的增加提供了映射4096×4096数据数组的可能性。如果数组是图像的平面,则数据平面适合于对UHDTV视频流进行解码。
贯穿整个说明书,术语图块可以互换使用,以指数据层的数据结构,所述数据层是用于表示待压缩的信息的数据值的字节流的子集。图块对应于所述信息的区(或网格),并且包括可以被或可以不被量化和变换并且与相同数据结构内的对应元数据元素相关联的数据符号。
如图所示,数据层的每个数据结构都对应于数组的一区部。可以预期,可以对数据层的每个数据结构进行单独并且并行地解码。然而,数据层可能不会位于数组内,直到已经对先前的层进行解码为止。因此,技术提供了串行和并行处理的组合。
在对数据层中的数据结构进行解码后,数据结构的数据元素可选地各自以预定顺序映射到数组。将预定值***到信息中,其中下面层的属性元数据元素指示存在空白区域。也就是说,当如图2中可见布置数据结构时,先前层的属性元数据元素指示在字节流中不存在针对数组的所述位置发送任何数据结构。较低层的每个属性都描述了紧邻较高层中特定定位中的数据结构(或缺少数据结构)。
存储在元数据层(即根层和层-k)的数据结构中的属性可以包括以下属性元数据元素的非穷举性列表中的一个或多个:
-正或负标记,指示在后续层中是否存在对应的数据结构;
-后续层中的对应数据结构的维度;
-使解码器能够在字节流中的后续层中定位对应数据结构的信息,诸如:流的长度;
与流中当前定位的偏移量;或在流中的固定定位;
-有助于对后续层中的对应数据结构进行熵解码的信息,诸如范围解码操作中使用的参数的指示;以及
-与字节流中的后续层中的对应数据结构相关联的其他参数或属性,诸如在数据结构中不包括数据符号的情况下使用的量化参数或预定值。
根据本发明,代替显式地用信号通知每个属性元数据元素,属性元数据元素可以是指示符或索引,其是指待使用的属性或参数集。例如,单个指示符可以用于用信号通知数据层的数据结构的所有维度、统计数据和量化参数。指示符及其对应的属性可以在字节流中单独发送,也可以由解码器通过从存储中检索属性来预先确定。因此,数据流只需要发送一次指示符及其对应的参数(或属性)一次,然后贯穿整个字节流重新使用这些参数,从而减少元数据开销。
为了完整起见,参数本身可以在字节流中单独用信号通知,并由指示符值引用,以使得它们仅在字节流中用信号通知一次,或者可以将它们预译码到解码器中,或者可以由解码器从单独的存储中检索,并由在字节流中用信号通知的指示符指向。
如上所述,字节流的每个子集可以是数据结构。先前已经在此文档中描述了如何在字节流内发送多个数据结构并对其进行分级编码,以便对多个数据结构中的每一个进行单独解码。因此,根据实例或实施方式,可以在较低层的属性元数据元素内传输与每个子集相关联的指示符值。图3中从概念上说明了这种概念。
图3说明了多个金字塔中的一个金字塔的根层,其中第一金字塔的顶层指向较高层的数据结构。使用与图2相同的符号,根层的顶层中的值是此处的指示符值[a,a,b,e,c]。在解码后,这些指示符或索引值就可以用于检索解码参数集,以对较高层的子集中的每一个进行解码。图3所说明的概念是,躁检索到指示符后,从数据库存储中检索解码参数中的每一个,以便检索适合于对由属性指示符指示的数据结构和属性指示符在分级数据结构中的定位进行解码的参数。
此处本发明可以适用于对任何类型的数据结构进行解码。例如,经解码符号的任何结构。指示符可以用于指向参数以促进对那些符号的解码。
可以预期,每个数据结构可以是用于封装必要信息的任何合适的数据结构,并且这些属性元素中的每一个可以以任何已知的方式(诸如元组)存储在数据结构中。例如,根层中的属性元数据可以是相对简单的一组经编码位,每个位指示下一层的属性。类似地,数据层的每个数据结构可以可选地是树,以存储必要的数据元素或用于对信息编码的元数据和数据符号的任何合适的数据结构组合。
顶层的数据结构可以优选地是如GB1812407.3中所定义的稀疏四叉树,所述文献的内容通过引用整体并入本文。贯穿整个本发明将使用术语稀疏四叉树来指本文档中指定的数据结构。下面将概述所述结构。当图块被映射到数组时,每个N×N图块的数据元素可以被精确地、在空间上定位在数组内,并且对应于每个图块内的稀疏信息的数据元素可以不被包括在数据结构内,即被隐式地用信号通知。
类似地,其他层的数据结构也可以是稀疏四叉树。以此方式,属性元数据元素可以是稀疏四叉树的顶层的数据元素,其各自与顶层的数据结构相关联(或描述顶层的数据结构)。在根层或元数据层的稀疏四叉树指示顶层的数据结构中不存在针对数据结构的特定区部的属性,则可选地,技术可以***预定属性,所述属性指示不包括针对数据层的对应部分的任何数据结构。替代地,所述属性可以被假定或是隐式的,从而用信号通知在数组的所述部分的顶层中不包括任何对应的数据结构。
替代地,根层和第一层的每个四叉树可以是密集四叉树,其中四叉树结构用于在空间上定位顶层中的属性以生成更高的层,但是可以不隐式地用信号通知信息。
因此,在实施方式中,每个数据结构可以是抽象数据类型,可选地是稀疏四叉树数据类型。
因此,将理解,本文所述的概念的益处可以用每一层中的任一数据结构来实现。然而,为了清楚起见,将贯穿本申请中给出的所有实例描述其中在所有层中使用稀疏四叉树的概念的优选实施方式。
在稀疏四叉树数据结构中,在建立树后,树的顶层或最后一层可以包括数据符号。树中包括数据符号的顺序表示数组的空间信息。稀疏四叉树可以取决于其使用的层来检索顶层中的任何数据元素。例如,稀疏四叉树数据结构可以包括列表、元组、集合或整数。
当稀疏四叉树数据结构用于数据层时,字节流将包含数据符号以重新创建数组,并且在元数据层中可以包含表示属性的元组。由于所述数组位于上面定义的分层结构中,因此数组位于分层结构的较大数组中。
由于说明了使用四叉树重新创建16×16数据数组的概念,并且因此树中有四个层和一个根,提供256个可能的叶,每个叶表示16×16网格中的值。其他大小的网格可以利用不同的有序树。
以下阐述了对示例性稀疏四叉树数据结构进行解码的示例过程。在解码过程期间,建立有序树。将来自字节流的代码符号转换成经解码符号,并附加到树的节点上。数据结构引入了特殊符号,解码器使用所述特殊符号来建立树。在此将此特殊符号称为节点符号。节点符号向解码器指示如何建立树。节点符号中包含信息,所述信息告诉解码器如何将信息从字节流映射到树,以及可以在字节流中期望什么。使用具体的遍历顺序,解码器将节点符号映射到树,并且随后可以将字节流中接收到的数据映射到树中正确定位的叶。然后将空间信息或原始信息的顺序包含在树内。节点符号和遍历的映射在树中留出了空白空间,可以对其进行模拟或推断,以指示预定值位于原始信息中的所述定位但未在字节流中发送。
节点符号是一系列二进制值或标记,它们向解码器指示树中的特定分支是否具有期望的子节点,其中如果所述分支的顶层后代的数据集中包括节点,则分支具有期望的子节点。也就是说,字节流包含有关是否存在子节点的信息。当解码器遍历树以到达叶(顶层中的节点)时,字节流包含一系列元素,诸如四个数据符号或四个属性元数据元素(例如元组),每个元素表示树的叶的值。随后可以使用定义的顺序将树映射到网格,其中树上的每个叶对应于网格中的定位。如果稀疏四叉树是元数据层中的结构,则不将属性元数据元素映射到网格中的定位,而是映射到数据结构。
在字节流内,数据结构的节点符号被散布。也就是说,节点符号和数据符号(或属性元素)出现在字节流内彼此之间或之中。数据结构的特征在于解码器在解码过程之前无法知道节点符号和数据符号(或属性元素)的顺序。因此,信息的散布没有设定或预定的排序。从节点符号内包含的信息中推断出数据符号(或属性元素)的定位。节点符号和数据符号(或属性元素)可能不会在字节流中一个接一个地或规则地出现,而是将不规则地且顺序地但并非随机地呈现在字节流中。
在解码中使用与编码相同的遍历,以确保保留空间信息。因此,稀疏四叉树数据结构定义了元素的例子和定位。优选地,根据深度优先前序遍历来遍历树,并且在数据层中,根据Morton顺序将数据符号映射到数组,但是只要编码器和解码器适合可以使用任何其他顺序。在元数据层中,可以使用Morton顺序将属性元数据元素与后续层的数据结构相关联。
图4说明了将贯穿整个本说明书中使用的图像。图像既反映了待编码的数据,又反映了重构的图像。当然应理解,图像是简化的数据平面,其可以表示图像的残差数据或分量数据。
可以看出,图像中存在四个区没有数据,即完全是稀疏的,并且存在八个区包含数据元素。
在所描述的示例性数据结构和技术中,数据平面被划分为一系列图块,每个图块具有尺寸集。贯穿整个本说明书中,使用大小16×16,但是可以是任何大小N×N。在此简化的实例中,字节流中仅可包含根层和顶层(或数据层),因此,将省略对任何中间元数据层的讨论。
图5示意性地示出了可以保存图4的Surface的数据的12个网格,其中术语Surface表示数据平面或其他大的数据数组。图5还描绘了字节流。
首先,可以在流的报头中用信号通知根层的起始定位。这可以采取从字节流的起始的偏移量A的形式,如图5所示。
其次,解码器可以开始从对应于根层的数据结构的流中读取数据结构。
解码器可以开始读取具有维度元组(4,3)的数据结构,所述元组包含有关所有12个网格的元数据。可以在报头中或在其他地方单独用信号通知维度。网格的维度的概念将在下面更详细地讨论。从下面的讨论中可以清楚地看出,用信号通知的维度可以具有根数据结构,其中根数据结构然后包含后续数据结构的维度,或者可以从以层级结构编码的数据平面的用信号通知的维度元组中推导出。
图6说明了此实例的数据结构,并示意性地示出了从偏移量A起始并描述根层的字节流的部分的结构。可以看出,字节流包括三个节点符号,然后是有关可能传送实际数据的数据结构的元数据。在此图中,“是”代表指示使用字节流来传送数据的元数据,“否”代表字节流中不存在的空数据结构,因为其整个数据都是隐式零。
图6中的节点符号的一些数字已用“x”掩蔽。这与小于(16,16)的数组(4,3)的维度有关,所述维度是四叉树的有可能由具有4个层的稀疏四叉树数据结构实现的维度。掩蔽数字指示对应的子节点本身处于非活动状态,并自动具有零个子节点。这些掩蔽数字的值在解码中不起作用,并且可以由编码器进行优化以最小化熵。
补充图6以示出属性元数据元素也可以如何还包括索引值,所述索引值是指适合于对特定子集进行解码的解码参数。
在下面的描述中,活动意指未掩蔽且表示在压缩信息中的数据,非活动意指掩蔽且包括可选地在待压缩的信息之外传输的数据。
图7说明了从字节流建立根层数据结构的过程。过程开始建立树并分配根节点。从字节流中读取节点符号[1xxx]。第一标记1指示此分支的其他信息包括在字节流中。三个掩蔽标记是数据结构的根节点的其他分支处于非活动状态的结果。
解码器从用信号通知的维度中检测到非活动状态,并在深度优先发现期间通过规则实施掩蔽。解码器掩蔽第一节点符号中对应于非活动子节点的位。对于活动的子节点,每当放置新的活动节点时,它都会分配适当的象限。
在进行深度优先前序遍历之后(与编码器预先约定),遍历将访问树的下一节点。再次参考图6,看到下一节点符号是[1xxx]。与根节点一样,这提供了一个活动分支和三个非活动分支。
深度优先前序遍历然后访问下一节点。从字节流中读取下一节点符号[1111]。这指示在树的这一层中存在四个分支,每个分支都具有子节点和孙节点。
在稀疏四叉树的数据结构中,树的下一层是可选的。不发送对应于树中倒数第二层的节点符号,而是由解码器隐式假定所述节点符号。将理解,此层中的节点符号将被理解为包括正标记集(或[1111])。查看此隐式信号通知特征的另一种方法是,仅在树的受访节点存在孙节点的情况下,才发送节点符号或将节点符号包括在字节流中。换句话说,节点符号应具有孙节点。
因此,解码器知道从字节流中期望的下一符号是表示后续层的数据结构的属性的属性元数据元素,因为它已经在深度优先前序遍历后达到了树的顶层。
由于处于根层,因此解码器从字节流中检索属性元数据元素(例如,属性的元组),并将元素与顶层中的节点相关联。在深度优先前序遍历和隐式地用信号通知的倒数第二层之后,待从字节流解码的接下来三个元素也将是后续层中数据结构的属性。
沿着树下降,解码器将看到节点符号为[1111],指示下一分支处于活动状态,并且此分支的字节流中存在数据符号。解码器沿着树上升,直到到达顶层。此处再次,从字节流中检索出接下来四个属性,并使其与树的接下来四个节点相关联。
沿着树下降,解码器将看到节点符号为[1111],指示此分支的字节流中存在数据符号。然而,用信号通知的维度暗指倒数第二层中仅两个分支处于活动状态。因此,解码器将从字节流中仅检索两个属性。
再次,沿着树下降,解码器将看到节点符号为[1111],指示下一分支处于活动状态。然而,用信号通知的维度暗指倒数第二层中仅两个分支处于活动状态。因此,解码器将从字节流中仅检索两个属性。现在已填充顶层的此区部。
在深度优先前序遍历之后,解码器下降到层-3。由于此层仅指示一个分支并且此分支已经被访问过,因此建立有序树的过程将在访问并填充所有节点后结束。
图7示出了10个非活动节点(在虚线分支上)。在树的拓扑发现期间,遇到了元数据和节点符号。有关其他数据结构的此信息(或属性)作为元素传递,所述元素描绘为在树的某些顶层节点上方(与图5相同)。
现在将这些元素分配给3×4模式,如图8所示。扫描顺序被称为Morton顺序,如图5所示。应注意,图5所示路径上的四个顶点处于非活动状态。这在图7中通过树的顶层中的对应的非活动节点反映。
在实例中,流中的值应按深度优先顺序进行交织。在实例中,树的数据以Morton排序映射。Morton排序将多维数据映射成一维,同时保留数据点的位置。它是由G.M.Morton在1966年引入。在本领域中使用术语Z顺序、Lebesgue曲线、Morton顺序或Morton代码。
Morton排序在本领域中是众所周知的并且应被理解。还将理解,可以利用从树到网格的数据的任何合适映射。
在实践中,使用2×2块的Morton排序意指对于8×8网格,树的符号以如下示例顺序映射到网格:
当考虑将树映射到模式时,可以认为z顺序映射导致树的每个分支都是整个数组的象限。
尽管Morton排序是优选的排序,但也可以预期使用其他顺序,诸如Hilbert空间填充曲线,也称为Hilbert模式或Hilbert曲线,这些顺序可以取决于待压缩的数据和非零元素在数组中的可能定位来提供实施方式或效率增益。在某些情况下,Hilbert曲线排序也将具有更好的位置保留特性。
图8说明了从根层映射的属性的模式如何对应于在字节流中接收到的数据结构以及在字节流中接收数据结构的顺序。
在过程的此级中,解码器知道顶层的数据结构中的每一个在字节流中的顺序。解码器知道何处存在数组的空白区域,在所述数组的空白区域中,字节流中不包括任何数据结构,因此知道在已对数据结构进行解码后如何布置数据结构的数据元素。
因此,现在可以对数据层中的数据结构中的每一个进行解码,并将它们的经编码数据添加到数组中。
在对此数据结构进行解码时,解码器遵循稀疏四叉树解码技术。将提醒读者,尽管描述了此层的数据结构是稀疏四叉树,但是数据结构可以是适合于在数组内空间定位数据元素的任何合适的数据结构。根据上面的解码过程,知道此数据结构的数据将存储在较宽的数组中的位置。此实例的稀疏四叉树数据结构存储16×16数据数组,因此包括五层:数据层或顶层、层-1、层-2、层-3和根层。
如图6所说明,字节流中第四个元素的属性元数据是索引值{123}。当将其映射到图7的树中时,可以看到外层中的第一个节点将具有此对应的属性元数据元素。使用预定的映射顺序,如图8所示,可以将属性映射到在字节流中检索到的对应数据结构,并使用指示的参数对所述字节流进行解码。
回到图4,此图示出了将所有图块重构成经解码的马的图像。从图4所示路径中说明的Morton顺序可以记起,这是右下方,并且最后包括在字节流中,从图8所示的字节流的位置Y起始。为了简洁起见,并未详细描述位置R处的根层末尾与位置Y处的最终数据结构的开始之间的字节流的内容。这些字节流的内容可以从马图像中以及从遵循如上所述的过程中推断出。
为了对每个数据结构并行地解码,可能需要知道待解码的每个数据结构的起始定位。在某些实施例中,顶层的数据结构可以具有固定的长度,以使得解码器可以预测每个结构的定位。替代地,可以单独地用信号通知每个结构的起始定位。在优选实施例中,包括在较低层中的每个数据元素的属性向解码器指示如何对对应的数据结构进行解码。例如,属性可以包括数据结构在流内的起始定位,并且还可以指示根本不包括数据结构,如上文所解释。如果对应的数据结构不包括在流中,则属性因此可以是0值,并且可以是指示数据结构的起始的正值。
上面已经描述了可以如何最佳地构造和解码数据结构以合并散布的节点符号和数据符号的集合。在已经输出符号,可以随后对其进行熵编码。可以在处理符号集之前对经编码流进行熵解码。例如,可以将符号划分为代码,然后使用Huffman编码和解码操作对其进行编码。替代地,可以使用算术译码操作(诸如范围编码和解码操作)对符号流进行编码和决策。这些和其他类似的熵译码技术在本领域中是众所周知的。
熵译码是一种无损译码,其通过表示具有很少位的频繁出现的模式和具有许多位的很少出现的模式来压缩数字数据。广义上,熵译码技术采用输入码字并使用输入码字出现在数据集中的概率来输出可变长度码字。因此,最常见的符号使用最短的代码。概率信息通常存储在解码器使用的元数据中,以根据输出代码字重新创建输入信息。
属性可以直接包括概率信息,或者可以替代地并且优选地,向解码器指示应使用概率信息集中的哪一个来对由属性所引用的特定数据结构进行解码。概率信息可以存储在解码器中,或者可以在字节流中单独地用信号通知。
熵解码操作可以从对应于用信号通知的属性的元数据的存储中检索元数据。元数据例如可以包括解码参数,并且可以包括概率的指示。例如,如果解码操作是范围解码器,则元数据可以包括概率分布或累积分布函数。
在实施方式中,一个熵解码操作可以顺序地对数据结构进行解码,或者可以使用多个熵解码操作或模块。在实践中,例如,可以使用不同类型的熵解码来对每个数据结构进行解码,属性可以指示使用Huffman编码对数据结构进行编码,并且使用算术编码对单独的数据结构进行编码。尽管优选地,使用范围解码器,其属性向用于对数据结构进行解码的范围解码模块指示应使用哪一元数据集来对所述数据结构进行解码。
下面描述了用对字节流熵译码的改进的且创新的技术。紧接上文,描述了解码过程在执行后可以如何应用于去稀疏化过程,以识别数组的稀疏区域并在数组中准确地定位值。所描述的操作将去稀疏化和解码步骤耦合在一起。
在图9中示出了高级别概述900。在解码操作901中对字节流进行解码之后,数据的输出平面经历去量化902级和组成变换903级。组成变换级903和去量化级902是本领域已知的。例如,组成变换级903可以包括如WO2013/171173中所述的平面的方向变换或小波或离散余弦变换。在这些实例中,可以通过包括索引值的属性元数据元素来用信号通知所述数据结构的量化参数。
在此描述,解码操作901可以包括两个级,即,熵解码级904和去稀疏化级905。解码器的级耦合在一起并相互相关,以便有效地识别压缩信息。熵解码级用于从数据流中解码符号。去稀疏化级用于分析符号并通知熵解码器接下来待解码什么类型的符号。
在优选的实施例中,去稀疏化级或模块1705建立树,如上文所述。去稀疏化级从熵解码器接收符号并建立树。然后,根据建立树的过程,去稀疏化级告知熵解码器接下来期望什么类型的符号,即节点符号或数据符号。通过以所述方式分析节点符号,去稀疏化级可以通过遵循树遍历并识别对于树的分支没有期望数据符号来识别下一符号将是节点符号或数据符号,在所述书的分支中节点符号包括如此指示的标记。
贯穿整个本说明书中,去稀疏化级、去稀疏化模块和去稀疏化器可以互换使用,以指模块的功能性。类似地,术语熵解码级、熵解码模块和熵解码器可以互换使用,以指所述模块的功能性。当然将理解,功能性可以由组合模块或多个子模块提供。
在熵解码级,模块可以访问多个元数据集,所述元数据集用于使用熵解码操作来对不同类型的符号进行解码。
属性索引值向熵编码级指示针对不同类型的符号应使用哪些元数据。例如,索引可以指向第一节点符号集和第二数据符号集。
首先,熵解码级将首先使用第一元数据集对符号进行解码。然后,熵解码级将把所述符号发送到去稀疏化级。然后,熵解码级将等待以接收接下来将要期望的符号类型的指示。基于接收到的指示,熵解码级将根据期望的符号的类型来使用相应的元数据集,以便使用熵解码来对下一符号进行解码。以这种方式,即使当数据集中的数据不遵循预定模式并且不同符号类型被不规则地散布在待编码或重构的原始数据内,也可以使用不同的元数据来对数据集进行解码。
因此,此处索引值将是指用于对所述数据结构进行解码的两个元数据集。根据哪两个集最适合此数据结构来在编码器处设定索引。使用上面的术语,根据每个组的类似特征和索引集将数据结构分组。因此,仅需要设定索引。元数据仅需要设定一次或存储,而无需设定多次。
当然将理解,代替使用一个熵编码器和多个元数据集,***可以代替地对于待解码的每种类型的符号利用多个熵编码器模块。例如,去稀疏化模块可以指示不同的模块基于其在数据集中接下来期望的符号的类型来执行熵解码操作。因此,索引可以指示待用于每个解码器的参数或待用于每个符号的解码器。这也适用于数据结构中只有一种类型的符号的情况。
现在将描述过程。首先假设流中的第一符号是第一类型。在实施方式中,如果去稀疏化级指示第一符号是熵解码器的第一类型的熵解码级固有地具有一定程度的智能或预定来识别第一期望类型,则这是不相关的。
熵解码级将从对应于第一符号类型的元数据的存储中检索元数据:根据索引值选择元数据。元数据例如可以包括解码参数,并且可以包括概率的指示。例如,如果解码操作是范围解码器,则元数据可以包括概率分布或累积分布函数。因此,索引将是指针对所述符号使用哪一cdf。下面将在图10的上下文中描述在本公开的上下文中范围解码器的操作。
如上所指示,可能会有一定程度的智能或预定期望被译码到熵解码级或模块中。例如,当它知道要检索数据符号时,它可能知道检索四个。取决于实施方式,熵解码级当然可以在每次尝试从流中识别符号时等待符号类型的指示。
应记起,不是熵解码级在元数据集之间切换,而是可以有多个熵解码模块,每个熵解码模块使用元数据集,并且每个熵解码模块根据接下来要期望的符号类型从不同类型的散布符号流中检索符号。
上面已经描述了熵解码级可以是任何类型的熵解码模块。例如,熵解码模块可以是Huffman解码模块,其中流中的符号具有固定长度。然而优选地,熵解码器是范围解码器,现在将在图10的上下文中描述其操作。如果使用多个解码模块,则可以使用第一类型的熵解码器对第一类型的符号进行解码,并且可以使用第二类型的熵解码器对第二类型的符号进行解码。例如,可以使用Huffman解码器对固定长度的节点符号进行解码,并且可以使用算术解码器对数据符号进行解码,如果符号的类型具有不同的长度,或者如果一种类型适合于固定长度操作而另一种适合于可变长度操作,则这可能是有益的。
图10说明了用于在本***中实施的可以执行增量解码的范围解码模块。图10说明了位的序列200。范围解码器1900采用此序列的一部分,并更新内部状态寄存器1901。
为了开始解码过程,解码器必须具有足够的信息以对第一符号明确地解码。解码器控制器将从元数据存储器1904中检索第一元数据集,所述元数据包括第一累积分布函数,待使用哪一元数据由索引值指示。根据元数据,范围解码器可以从流中识别出它需要的较少数量的位,以便以明确的概率来识别节点符号,如此处在序列200中用虚线所示。
范围解码器顺序分析流中逐渐增大的部分,直到可以确定已编码符号的概率为止。也就是说,解码器通过在分析了数据的每个部分的情况下使可能的符号变窄,将逐渐增大的数据部分与累积分布函数进行比较。在明确识别符号后,输出符号1905。
范围解码器的控制器1902现在将等待,直到它接收到触发器1903以对下一符号进行解码为止。触发器1903可以包括待解码的符号的类型,并且解码器将针对集合进行选择,或者可以基于索引值指示待使用的元数据。根据此信息,解码器将从元数据存储器1904中检索相应的元数据,所述元数据将包括针对接下来待检索的符号的累积分布函数。
根据累积分布函数,解码器将识别它是否应更新其状态(或标签),并从序列200中读入更多位或移出位1906(即以其他方式将位丢弃到回收站)。例如,解码器将识别状态(或标签值)的最高有效位在可能值的上限和下限之间是相同的还是不同的,以及在其状态下保存的位的量是否足以识别分布函数中最小值或最不频繁的值。如果最高有效位在潜在符号的上限与下限之间是相同的,则可以丢弃所述最高有效位。
示意性地,图10的图像示出了状态可以如何示出可以从经编码数据流的较后部分检索流中的数据,以及下一经识别符号可能不是数据流的初始位,但可以从数据流的较后检索。对于熟悉范围编码技术的技术人员来说,这种不确定性是众所周知的。图19仅试图展示范围解码技术以增量方式读取位的序列,并基于概率函数(优选地累积分布函数)从所述序列中识别符号,并且展示函数可以由索引值指向,以便将数据结构分组在一起。符号可能不以严格顺序的方式包括在位的序列中。
虽然为了简洁起见并未描述范围解码器的功能性,但相信它在本领域中是众所周知的。然而,***的功能性是清楚的。本公开的范围解码器被配置成根据字节流中接下来期望的符号的类型使用相应的累积分布函数,并形成针对所述数据结构指示的索引值。
例如,假定可以从先前解码的散布符号中辨识最终符号,则范围解码器可能仅能对数据结构的起始定位起作用。可以根据与先前流的起始的偏移量来定义起始。然而,存在范围解码器的某些实施方式,其中从字节流读取数据在推断出(根本没有推断出,或者没有完全推断出)一个或多个最终符号之前停止,并且执行一系列最终计算。在这种情况下,可能有必要知道结构末尾的位置,以便可以在解码的恰当级处完成向最终计算的切换。因此可以用信号通知流长度。
如上所指示,在优选实施例中,可以通过将第一类型的符号映射到有序树来确定数据中期望的符号的类型,在树中,第一类型的符号是如上所述的节点符号。第二类型的符号可以是如上所述的数据符号。在范围编码实例中,数据符号可以不具有固定宽度。将理解,将去稀疏化算法和熵解码算法耦合的过程可以应用于其他去稀疏化算法或替代地包括不同类型的散布符号的其他算法。
对字节流编码的过程可以基本上成镜像。也就是说,如上所述的稀疏化算法将符号与可选地通过的符号的类型的指示一起输出到熵编码器。然后,熵编码器基于用于所述类型的符号的参数或元数据对所述符号进行编码。符号的类型可以根据符号本身或基于来自稀疏化模块的显式信号确定。编码的第一类型的符号表示对数据集中稍后期望的符号的指示。
如上所述,本发明提供用于以实现在能够收集和确定与视频数据相关联的统计数据方面的完全灵活性的方式对图像和视频数据进行编码和解码的方法和设备。这种数据在编码和解码方面提供了优点,并且可以更好地理解待编码的数据。具体地,本发明允许将具有相同或类似统计数据的图块的识别分组在一起,即使它们在空间上可以是分开的。因此,降低了元数据的开销,同时允许统计数据的记录和传输。与现有技术的***相反,其可以可选地利用具有固定大小(或尺寸)的图块,并且允许将不相邻的、在空间上分开的图块分组在一起。再次,此处图块是指表示待压缩的信息区域的数据结构。
图11是用于执行统计译码方法的***的框图。
在图11中,示出了***1100,***1100包括经由网络1114连接到多个客户端装置1130、1132的流服务器1102。流服务器1102包括编码器1104,所述编码器被配置成利用本文所述的方法来接收第一视频流并对其进行编码。流服务器1102被配置成将经编码视频流1106传递到多个客户端装置,诸如机顶盒、智能TV、智能电话、平板计算机、膝上型计算机等,1130和1132。每个客户端装置1130和1132被配置成对经编码视频流1106进行解码和渲染。客户端装置和流服务器1102经由网络1114连接。
为了易于理解,参考单个流服务器1102和两个接收方客户端装置1130、1132示出图11的***1100,尽管在其他实施例中,***1100可以包括多个服务器(未示出)和数万个客户端装置。
流服务器1102可以是能够通过网络将经编码数据传递到客户端装置的任何合适的数据存储和传送服务器。流服务器在本领域中是已知的,并且使用单播和/或多播协议。流服务器被布置成对经编码数据流进行编码并存储经编码数据流,并且将一个或多个经编码数据流1106中的经编码视频数据提供到客户端装置1130和1132。经编码视频流1106由编码器1104生成。图11中的编码器1104位于流服务器1102上,尽管在其他实施例中,编码器1104位于***1100中的其他地方。编码器1104利用本文所述的技术生成经编码视频流。
编码器还包括统计模块1081,其被配置成确定和计算视频数据的统计特性。
客户端装置1130和1132是本领域中已知的装置,并且包括接收和解码视频流所需的已知元件,诸如处理器、通信端口和解码器。
技术考虑到以下事实:可以借助于图像的区域具有类似或相同的统计数据的事实来识别图像的区域。通过使用Shannon编码(或任何其他形式的熵编码),可以以低数据方式描述具有相同统计数据的区。由于以相同的方式定义整个区,因此只需要定义一次。在本领域中已知的是,在假定每个区附近的像素通常示出类似或相同的特性的情况下,在空间上对区进行分组。然而,在存在强不连续性(例如,以特征或边缘的形式)的情况下,这种空间分组将不是特别有效。此外,发明人已有益地认识到,虽然空间邻近区域将具有类似的统计数据,但是空间上不同的区域通常也将具有类似或相同的统计数据。
所描述的概念基于以下想法:识别图像内具有类似统计数据的区域,并对这些区进行分组,以便减少通过使用熵编码对组进行编码来定义这些区域所需的数据量。
图12是待使用所述方法进行编码的图像的实例。提供了基于统计特性对图块进行分组的能力,其中,有关分组的决策与图块在图像中的定位无关。因此,这种分组允许对图块进行分组,否则将不会基于空间特性来分组。
在图12中,待编码的图像是棋盘1200的图像。如对于这种盘所已知,板由交替的黑色和白色正方形集定义。在盘1202、1204和1206上已经识别出三个单独且大小相等的区。虽然为了易于理解已经使用了棋盘的图像,但是本领域技术人员将认识到所描述的概念可适用于任何形式的图像。
在图12中,第一区1202定义包括黑色和白色正方形两者的一部分的区。可以看出,虽然第一区1202中的像素在空间上接近,但是它们将具有不同的特性。具体地,对于第一区1202内的黑色和白色像素,像素的统计特性(例如,亮度、色度、定义像素所需的位数等)将是不同的。还示出了区1202A,其在空间上与第一区1202分离,但是具有相同的内容。因而,区1202A将具有与1202相同的统计属性。
类似地,第二区1204和第三区1206分别仅由黑色和白色像素组成。第二区1204和第三区1206也具有相同的其他区1204A和1206A,因此将分别具有相同的统计属性。
图12所示的实例是空间上不同的区的特性将是相同或基本类似的实例。然而,发现在许多场景中都发现了这种聚类,因此可以将其用作熵编码的基础。
虽然可以基于统计数据的分组进行编码,但是当引入更多的组时,所需的元数据量也将增加。由于元数据通常不可压缩,因此还必须考虑元数据的成本,以便确保元数据的成本不会超过基于熵的编码的益处。
图13是聚类数据的过程的流程图。在步骤S1302,接收待编码的第一视频数据帧。数据可以存储在本地,也可以从外部来源诸如服务器接收。在步骤S1304,将帧细分为多个图块。图块可以具有任何合适的大小,诸如8×8、16×16、32×32等像素。帧的图块的大小和数量可以根据可用的处理能力以及为了获得有意义的统计数据而获得合适的图块大小的需要而变化。优选地,对于视频数据的帧和所有其他帧,图块的数量和大小是固定的。以这种方式分割图像的步骤在本领域中是已知的。优选地,为每个图块分配索引,所述索引指示图块在图像内的位置。优选地,图块在图像内以设定的顺序排序。在优选实施例中,根据图块的z序遍历来设定顺序,如图14所示。
在图14中,示出了图像1400,其被细分为多个图块1402,每个图块包含多个像素1404。每个图块1402分配有根据z序遍历1406发现的索引1408,其保留了图块的空间接近度。有效地计算z序遍历1406在本领域中是已知的。因此,定义了定义图块的索引集。由于设定了顺序并且图块的大小一致,因此可以容易地确定定义图块的个别像素。
返回图13,在步骤S1306,对于在步骤S1304中识别出的图块中的每一个,计算图块的统计属性。
在实施例中,图块的尺寸为16×16像素,因此包含总共256个像素。这样允许计算有意义的统计数据。图块的统计属性定义了图块的一个或多个特性,诸如亮度、色度、定义图块所需的位数等。一方面统计属性是客观可测量的,因此可以对图块之间的统计进行客观比较。图块的统计数据的测量在本领域中是已知的,并且经由已知的方式进行。
因此,在步骤S1306,对于每个图块,识别图块中的每一个的一个或多个特性/统计属性。
然而,在实施例中,虽然计算了这些特性或统计数据,但是它们不与源数据流一起存储为元数据。它们与数据流分开存储;例如,存储在与执行编码的处理器相关联的存储器中。
在步骤S1308,识别定义统计属性的相同或类似例子的图块的例子。将识别出的图块分组在一起,以便定义图块集。因此,图块集是基于具有类似统计属性而分组的一组图块(可以或可以不进行空间连接)。由于图块集内的图块具有类似或相同的属性,因此它们将接近相同(或相同)。
通过将类似的图块分组为图块集,可以减少所需的元数据量。图15是已经细分为9个图块的示例图像1500。在不使用图块集的情况下,需要使用对应于9个单独图块的元数据。然而,某些图块与其他图块(诸如1502A和1502B)具有类似的统计特性。因此,将类似的图块分组在一起以形成图块集,每个图块集的示例性图块为1502A、1504和1506。因而,将需要使用对应于三个图块集的元数据,从而导致图像1500的更紧凑的元数据表示。因此,一个重要方面是根据图块的统计属性或特性将图块聚类为图块集,S1308。
由于每个组具有类似或相同的统计属性,因此可以通过其统计属性定义组并将其识别为图块集。
在实施例中,根据在图块上计算的特定统计数据或统计数据集的累积概率分布函数来形成图块集。累积概率分布函数的实例如图18所示。
图18是针对其累积概率绘制的统计数据的代表性实例,以形成累积概率分布1802。虽然分布函数1802的一般形状(细长的s形)在不同帧之间是相同的,但是分布的特定形式将取决于帧的值。随着每个帧的值改变,分布函数1802的具体形状将改变。因此,在分布函数上定义图块集会在整个帧上提供更有效的度量。此外,分配函数的使用还允许容易地识别具有类似统计数据的图块。在优选实施例中,识别出十六个图块组(即图块集)。在这种情况下,通过在累积概率分布函数1802上采样17个点来识别图块集。然后,这些点形成每个图块集的边界。1804A和1804B定义了一个这种图块的边界,从而将具有统计值s(在a<s≤b范围内)的任何图块分配给所述图块集。由于统计数据及其分布对于每一帧都会改变,因此边界值也会在帧之间改变。虽然优选十六个图块集,但是在其他实施例中,可以使用其他数量的图块集。
在其他实施例中,使用其他形式的统计排序,以及基于统计相似性的图块聚类。由于每个组具有类似或相同的统计属性,因此可以通过其统计属性定义组并将其识别为图块集。
一个关键方面是,形成图块集的个别图块的识别与图块的空间分布无关。因此,空间上不同的图块可以形成同一组的一部分。因此,在步骤S1308,记录形成每个图块集的图块的标识。
在步骤S1310,计算每个经识别的图块集的元数据。元数据描述形成图块集的图块的特性,优选地包括描述图块集的一个或多个统计属性的数据,以及对形成图块集的图块的识别。在一个实施例中,使用图块集内的所有图块重新计算整个图块集的统计数据。在其他实施例中,从单个图块(例如,图块集的中间图块)获取图块集的统计数据,并将其应用于整个图块集。因此,元数据定义了图块以及形成图块集的个别图块的一个或多个统计属性。
对图块集中的每一个重复步骤S1310的过程。因此,除了形成图块集的图块的标识(在步骤S1308中确定)以外,还确定了图块的特性(相同或类似)。这种数据以与图像和图块集相关联的元数据的形式存储。
当图块以顺序方式编码时,数据或元数据采用索引集的形式,所述索引集定义了定义图块集的统计属性。这些索引在开销方面可能是昂贵的。发明人已经有益地认识到,通过将图块经由其统计数据聚类为图块集,可以对具有特定值(即定义图块集的统计数据的值)的数据的可能性进行测量。因此,在实施例中,在步骤S1310,使用熵编码来减少与编码相关联的成本。由于图块集由多个图块定义,所以与用于熵编码的元数据相关联的开销小于熵编码的成本,从而产生数据大小的减小。
在步骤S1312,对于图块集中的每一个,对图块集和描述图块集的元数据进行编码。
由于图块集通过其类似或相同的统计属性进行识别,因此描述图块集中的图块统计特性的元数据对于图块集内的所有图块而言都是恒定的。因此,由于图块集内的图块具有相同的特性,因此在实施例中,由于对描述帧中的每个图块所需的元数据熵编码,因此大大减少了对帧进行编码的数据要求。
虽然上述过程允许基于数据集中的图块的统计相似性来减少数据集中的数据,但是可以利用彼此相邻的图块的相似性来获得进一步的增益。众所周知,彼此相邻的图块几乎没有变化或没有变化。因此,为了减少对图块进行编码所需的数据量,图块优选地以设定顺序编码,例如如图14所示的z序遍历。优选地,编码的值是图块的值与先前值之间的差。因此,如果两个图块的值相同,则经编码值为零,或者如果它们类似,则值较小。两者都具有与其编码相关联的低位成本。如上所述,在空间上类似(即彼此靠近)的图块通常也将具有类似的统计数据。因此,虽然本发明将有益地在不考虑空间相似性的情况下通过按z序遍历对图块的编码进行排序来将图块集中的图块分组,但是编码过程可以在编码过程期间有益地使用与空间相似性和统计相似性相关联的优点。
与使用图块集相关联的另一优点是,它们允许在整个图像的统计级别上做出决策。在视频编码中已知的是,作为自适应编码方法的一部分,以不同的编码级别对不同的帧进行编码。基于已确定的帧级别统计数据做出决策。本发明的另一个优点是,使用图块集以及与图块集相关联的元数据(适用于形成图块集的所有图块),允许在逐帧的基础上做出关于自适应编码的决策,其中编码的变化发生在个别帧内。
图16是帧内自适应编码过程的流程图。
众所周知,在视频编码中,可用带宽是可以发送数据量的限制因素,并最终限制了编码时使用的量化级别。与原始源数据相比,存在许多客观的帧质量量度,用于为经编码图片质量提供客观的度量。这些度量是在整个帧内获取的。还存在许多主观度量,它们定义了最终用户对图像的感知程度。由于上述方法允许获得本地统计数据,因此可以使用此类信息来识别帧内看起来对于最终用户在视觉上更重要的区域。可以以更高的量化级别对这些区域进行选择性编码,以便为这些区域提供更高质量的图像。然而,由于带宽的量有限,必须权衡取舍,并且必须降低图像的其他区域的量化级别。因而,用于整个图像的客观图像质量量度保持恒定,但是被认为在视觉上更重要的区域以较高级别量化。因此,这有助于提供主观改进的图像。
在步骤S1602,过程开始于接收如在步骤S1310所确定的每个图块集的元数据。
在步骤S1604,元数据用于确定图像中可能包含边缘或特征信息的图块集。在视频编码中已知诸如边缘的特征是压缩伪影的来源。这些特征可以通过帧的统计数据来识别,其中某些统计数据与编码误差相关联。由于压缩伪影对用户可见,因此具有压缩伪影的图块在用户主观级别上将具有较低质量级别。
在实施例中,通过统计值对图块集进行排列以定义视觉“重要性”的顺序。在实施例中,统计数据涉及与编码过程相关联的误差,并且将图块集从最小误差到最大误差进行排列。被识别为具有最大误差的图块集通常是与边缘或特征信息相关联的图块集,并且将被最终用户感知为具有最低质量级别。在其他实施例中,使用了对图块集进行排列的其他合适方法。
在步骤S1606,元数据用于确定可能具有无特征性的图块,其包含具有很少或没有变化的均匀颜色。这种图块可以与统一的背景特征或一致的特征相关联。统计数据还可以识别此类图块,因为它们示出在图块上没有值的变化。这种特征是恒定的,与不具有压缩伪影等相关联。
在步骤S1608,做出自适应量化决策,以便确定使用什么量化级别来对个别图块集进行编码。默认情况下,所有图块均以相同的量化级别编码。这是标准的编码行为,其中整个图像以相同的量化级别进行编码。
有益地认识到,图块集上的量化级别可能变化,其中以比其他图块集更高的量化级别对某些图块集进行编码。可以在个别图块集级别提供统计数据时做出此类决策,从而提供进行决策所需的信息。有益地,通过对在步骤S1604识别的图块集并因此对图块(即,可能与压缩伪影相关联的图块)进行编码,这种图块将示出较少的压缩伪影,因此将使视频的最终用户/观看者感知到更高的质量。然而,由于不能增加带宽,因此对于在步骤S1606识别出的图块集的一些或全部,对应地降低了量化级别。随着这些图块集的量化级别降低,需要更少的位来对这种帧进行编码。因此,对帧进行编码所需的数据总量保持不变,但是在整个帧中量化级别变化,以便在图像中提供增强的区(以及具有较低量化的对应区)。因此,随着以较高级别量化可能示出压缩伪影的区,图像的主观度量将增加,而可以在会对最终用户的体验产生不利影响的情况下以较低的量化级别对均匀区域进行编码。
在实施例中,在步骤S1608,选择第一图块集以便以更高的量化级别进行编码。优选地,待以较高量化级别编码的图块是被排列为视觉上最重要的图块集的图块。随后,确定由于以较高量化级别对图块集进行编码而导致的经编码帧的大小的增加。为了确保经编码数据集不超过可用带宽,将一个或多个其他图片集识别为以较低量化级别进行编码。优选地,经识别的图块集是被认为在视觉上最不重要的图块集。当以较低的量化级别对图块集进行编码时,确定经编码帧的大小的减小,并且将其与由于以较高的量化级别对图块集进行量化而导致的增加进行比较。重复此过程,直到帧的总体大小相同,从而确保不增加带宽要求。因此,过程提供了改进的编码过程。
可以对个别帧多次重复创建图块集的过程,其中图块集中的每个集基于特定的统计属性确定。通过具有多个集,记录关于视频数据的基础帧的更多信息并且可以将其有益地用于编码和解码过程。然而,由于存在与创建集相关联的开销,因此在实践中不希望具有多个集。
本发明的另一方面是基于多个统计属性将图块分组为图块集的能力。图7是基于多个统计属性定义图块集的集合的过程的流程图。
步骤S1702和S1704分别与步骤S1302和S1304相同。
虽然可以单独定义和记录每个统计属性的数据,但是在所需数据的大小方面这是昂贵的。有益地,上述方法可以用于使用若干统计数据将图块分组以形成图块集。
为了对统计数据进行分组,在步骤S1706,根据矢量定义每个统计数据,并且确定统计数据的单个矢量得分。已经发现,尽管在其他实施例中对不同数量的统计数据进行分组,但是优选对最多三个不同统计数据进行聚类。
因此,遵循上面关于图13的步骤S1308所描述的相同原理,在步骤S1708,在具有相同或类似矢量(以及因此相同或类似统计数据)的图块的组中聚类图块。如参考图13所描述,对图块的这种聚类允许对图块集进行编码,并且进一步允许熵编码。
在其他实施例中,将每个统计数据的值存储在单个矩阵中,并且聚类是基于类似统计数据相同的例子。
以下列出了根据某些实施例使用的分级数据结构的特征以及所述分级数据结构的相关优点。
提供了一种对接收到的表示已压缩信息的经编码数据集进行解码的方法,其中将经编码数据集划分为子集的层级体系,所述方法包括:对至少一个第一子集进行解码以推导出相应的属性元数据元素集;对包括数据元素的多个第二子集进行单独解码,其中每个第二子集描述已压缩的信息的区;以及,从数据元素重构已压缩的信息,其中从属性元数据元素识别已压缩的信息的区。
提供可以对字节流的个别部分进行解码,而无需参考相同字节流的其他类似区部。这有助于提高存储器利用率,因为每个部分在被单独解码后,可以在空间上位于被压缩的信息中,而无需了解其他类似区部,也无需在存储器中存储其他信息。瞬间,存储器中的数据可以是整个平面的数据的子集。常规地,整个平面被解码为一个平面,使得它不会被分开,以实现单独的解码。通过单独解码,认为可以将第一子集与第二子集分开解码,可以将第二子集与其他子集分开解码,或者优选地两者均可。也就是说,将每个子集与任何其他子集分开解码。
每个第二子集可以包括结构元数据元素和数据元素的数据结构,并且从数据元素重构已压缩的信息可以包括基于结构元数据元素将数据元素在空间上布置在数组中。因此,第二子集中的每一个本身可以是数据结构。以这种方式,可以将所提出的技术视为对较大数据结构的分解和重构,使数据结构的每个部分都可单独解码,以使得可以在不了解数据集的其他部分的情况下对存储在每个结构内的数据进行空间定位。
重构已压缩的信息可以包括:在数组的区中***预定系列的数据值,在数组的区中,属性元数据元素指示数组的区的数据集中没有第二子集。具有一致值的信息的区不需要在字节流中显式地用信号通知,因此可以减小数据的总体大小。可以认为这是对数据进行稀疏。分级数据结构提供了一种机制,通过所述机制可以准确地定位数据集中隐式地用信号通知的区,并填充其中包含的信息,而无需将所述区包括在字节流内或在解码器中进行解码。这不仅减小了数据大小,而且还大大提高了解码速度,因为对于很大程度上一致的数据数组(诸如残差),无需对子集的片区进行解码。
属性元数据元素可以指示多个第二子集中的相应一个的预定系列的数据值。因此,有可能在一个平面内或多个平面之间存在不同的一致区的情况下,以不同的方式用信号通知上述大片区的信息。替代地,预定系列的数据值可以是解码器已知的并且可以是零值。
属性元数据元素可以包括标记,所述标记指示数据集中不包括数组的区的第二子集。标记有助于解码器识别不期望子集在所述区的数据集中。在第一子集对应于分级数据结构的第一层并且第二子集对应于分级数据结构的第二层的情况下,标记可以指示在随后的层中是否存在对应的数据结构。
属性元数据元素中的每一个可以描述多个第二子集中的相应一个。例如,属性元数据元素可以指示第二子集中的具体子集的具体属性或参数。以这种方式,一个第一子集可以描述多个第二子集。在第一子集对应于分级数据结构的第一层并且第二子集对应于分级数据结构的第二层的情况下,数据结构可以在视觉上表示为倒金字塔或树。每个属性元数据元素可以因此对应于待解码的整个网格的子网格。
通常,技术提出了使用包含在不同数据结构内的信息来对数据结构单独解码的概念。
属性元数据元素可以包括多个第二子集中的相应一个中的数据结构的维度。因此,当对第二子集进行解码并将子集放置在数组中时,解码器能够识别用于放置在区中的数据的期望形状和大小。替代地,对于层级体系的每一层,可以单独地用信号通知维度或维度可以具有固定大小。
属性元数据元素可以包括定位信息,以使解码器能够定位多个第二子集中的相应一个,并且多个第二子集的单独解码步骤还可以包括:基于定位信息搜索多个第二子集中的至少一个。因此,属性元数据元素提供了对第二子集的并行解码以及这些子集的随机访问,使得无需对其进行解码以准确地重新创建已压缩的信息的部分。定位信息可以是例如子集的长度、距数据集中的定位的偏移量或数据集中的固定定位。
属性元数据元素可以指示解码参数。解码器可以使用解码参数来对第二子集彼此进行差分解码,从而提高总体解码过程的效率,因为可以针对每个子集优化参数。解码参数可以例如是熵解码参数,诸如用于对子集进行解码的统计数据或统计数据的指示。另外,由属性元素用信号通知的参数可以是量化参数。
可以基于属性元数据元素来对多个第二子集进行解码。在属性元数据元素指示解码参数的情况下,可以根据那些参数来执行解码以提高解码效率。在属性元数据元素包括例如第二子集的长度或数据结构的维度的情况下,可以将解码器定制为适合所述特定子集以提高总体效率。在现有技术中,通常将数据元素的整体或图的整体一起解码,而不是单独解码,因此,无法实现以不同方式对每个子集进行解码的这种益处。
方法还可以包括:将属性元数据元素映射到分级数据结构的第一层;以及将每个经解码第二子集映射到分级数据结构的第二层。将每个子集映射到数据结构中的层有助于实施子集的空间定位。在已对信息进行解码后,可以将其放置在数据结构中。数据结构可以是线性数据结构或非线性数据结构,诸如图。此技术允许将数据结构分解为可以被单独解码的区部,并随后在解码器中重新创建数据结构,而无需显式地用信号通知所述数据结构。也就是说,可以将完整的图分解成一系列图或可以单独解码的单独数据结构。可选地,可以将经解码第二子集细化到经解码属性元数据元素。例如,在第一子集和第二子集是图的每个部分的情况下,第二子集的元数据可以替换第一子集图的叶,以重新创建完整的图。
方法还可以包括:基于第二子集的每个数据元素在数据结构中的定位将其映射到数组。以这种方式,原始数据元素在原始数据结构中的空间定位得以保持,其中数据结构反映了信息的数组。将数据映射到数据结构有助于识别空间定位,而无需将数据结构存储在存储器中。
可以基于属性元数据元素将每个经解码第二子集映射到分级数据结构。例如,方法可以包括基于属性元数据元素将每个经解码第二子集映射到分级数据结构的第二层中的定位。属性元数据元素可以指示数据结构的第二层的定位不对应于第二子集。
可以根据预定顺序(例如Morton顺序或z序)执行映射。替代地,可以在属性元数据元素中指示第二子集的排序。数据集或数据结构的空间信息可以通过在属性元数据元素中显式地用信号通知而变化。
经编码数据集还可以包括多个第一子集,并且方法还可以包括将多个第一子集的子集映射到分级数据结构的根层;将多个第一子集中的另一子集映射到分级数据结构的中间层,其中,根层的属性元数据元素描述中间层的第一子集。以这种方式,可以将层级体系增加到多层,使得可以在可管理的部分中对大量数据进行编码和解码。可以对多个层重复所述过程。
第一子集可以是包括结构元数据的数据结构,所述结构元数据指示第一子集中没有属性元数据元素包括在数据结构中的定位中,并且第二层的对应定位不对应于第二子集。以这种方式,每个子集的总体大小可以减小,并且解码器能够容易地识别数组的区应该被重新创建为具有一致值,而子集中未显式地包括合适的属性元数据元素。
优选地,数据元素可以是数据符号,并且属性元数据元素集可以是元组的形式。
另外,提供了一种处理与视频数据流相关联的元数据的方法,所述方法包括以下步骤:对于第一视频数据帧:将第一视频数据帧细分为多个图块;针对多个图块中的每一个计算所述图块的第一统计属性;识别具有相同或类似统计属性的第一例子的图块;将所述识别出的图块分组在一起作为图块集;对于定义图块集的元数据的每个图块集,所述元数据指示定义图块集的图块的统计属性;以及基于为所述图块所属于的所述图块集中的每一个定义的所述元数据对指示第一视频数据帧的图块的元数据的数据进行编码。
因此,所述方法提供了用于识别和分组图块的方式,所述图块不必在空间上链接,而是通过其统计特性链接。能够以这种方式对图块进行分组提供了对数据的特性的更好的理解,并且还允许进行分组,否则将无法进行分组。
可选地,使用基于熵编码的技术进行编码。由于分组基于它们的统计相似性,因此可以计算数据出现的概率,从而允许基于熵的编码。
可选地,用于图块集的元数据还定义形成图块集的每个图块的定位,并且优选地,其中图块的大小是固定的。这样允许更好地理解可以跨多个帧或数据集重复的数据。
可选地,其中识别形成图块集的所述图块的步骤还包括基于图块的统计属性对图块排序,优选地,其中图块的排序定义了统计属性的概率分布函数。这种排序使得容易地识别具有相同或类似属性的图块。
可选地,其中以设定顺序对图块进行编码,优选地,其中所述方法还包括:确定图块的元数据与其前一图块之间的差异,并将元数据编码为所述差异,优选地,其中设定顺序是z序遍历。这允许进一步减少数据。
可选地,其中所述方法还包括对图块进行编码的步骤,优选地,其中对图块进行编码的步骤包括确定量化级别并且以所述量化级别对图块进行编码,更优选地,其中属于第一图块集的图块以第一量化级别进行量化,并且属于第二图块集的图块以不同的第二量化级别进行量化。通过基于统计数据进行聚类提供的对视频数据的更好理解允许以较高的量化速率选择性地量化图像的区域。因此,可以以较高的质量等级对图像中被认为重要的具体区域进行编码,从而产生改进的图像。
上面已经描述了如何在字节流中用信号通知后一数据结构的属性。具体地,描述了可以提供分级数据结构。下面描述了解码模块可以如何从字节流或数据集获得值,并基于此值确定在编码过程中使用和/或待在解码过程中使用的快捷方式的类型。解码模块可以将解码过程配置成基于所指示的快捷方式来调适其操作和/或实施作为所指示的快捷方式的解码过程。快捷方式的具体类型、每种类型的含义以及它提供的优点可能会在下面予以描述。
在某些实例中,该值可以包括在字节流的报头中,并且可以指示在建立报头时在编码过程中使用的和/或待在解码过程中使用以便对字节流解码的一个或多个修改操作。这些修改操作或快捷方式提供了许多一般优点,诸如减少待编码/解码的数据的量和/或例如通过优化字节流的处理来优化解码器处的执行时间。
本文使用的术语可以将这些快捷方式描述为变换规则、变化参数或调适参数,其指示待使用的修改操作或修改的解码过程或解码模块。这种术语可以互换地用于指类似的功能性。
在某些实例中,实施这些操作的决策可以是速率控制决策。
如上所述,快捷方式可以被实施为字节流或位流的报头中的位串。因此,取决于报头和有效载荷的配置,可以将修改运算符应用于整个数据平面、多个平面或特定质量级别(LOQ)或数据集。当然可以预期,可以以任何其他合适的方式来用信号通知快捷方式值,以修改解码模块的操作。
快捷方式的选择例如对于平面的版本可以是恒定的,并且快捷方式是固定的。对于新平面或平面版本,可以改变快捷方式。
在对平面进行编码时,编码器可以考虑哪种修改操作或选项会更有益。例如,额外的表将占用流中的空间,但可以节省总体空间。如果存在1000个元组都具有5或更小的数字,则列表的长度可能需要为5,但要为1000个不同的子集供应属性。以这种方式,快捷方式可以指示如何在解码器处设定或检索数据。
在特定实例中,此概念对于本公开的其他方面可以具有特定效用。例如,在某些实施例中,快捷方式控制哪些属性与数据结构相关联。类似地,快捷方式可以指示从多个实施选项中示出哪个实施选项。
现在将描述若干可能的快捷方式的实例。
在一个实例中,快捷方式可以指示在存在属性列表的情况下,单个索引值可以指示将针对每个子集使用属性集中的哪一个。也就是说,在tableau数据结构或根数据结构指示后面的数据结构的属性的情况下,索引值可以指向待使用的属性集。
替代地,索引值可以代替地指向其他索引集。快捷方式可以指示待使用这些选项中的哪一个。
在具体实例中,数据结构中的索引33可以指示应根据列表中33所指向的属性集来对后面的数据结构进行解码。不同的快捷方式可以指示代替地33指向元组列表,例如{43,18,5},即列表A中的行43,列表B中的行18和列表B中的行5。因此,快捷方式可以优化索引值从编码器到解码器的通信以及数据解码的速度以及数据开销。
当然,将理解,这些属性和元组可以存储在数据存储器中或在字节流或位流中用信号通知。
在另一实例中,快捷方式可以指示在数据结构中未发送索引或未指示属性。也就是说,快捷方式可以指示根据不同属性对一些数据结构进行解码,而对一些数据结构则不进行解码。在此实例的详细实施中,不允许不同平面的数据结构具有不同的属性,但是在平面之间它们可以是不同的,可能不会在报头中用信号通知这些数据结构。这可以概括为平面内或平面间差异。
在附加的快捷方式实例中,快捷方式可以向解码器指示不发送任何节点信号。例如,在上述解码过程中,可以将所有节点信号都假定为[1111],因此无需花费任何发送成本。数据结构可以仅包含数据元素,但是可以使用上述预定的映射顺序在空间上定位这些数据元素。总之,所有四叉树可能是密集的,但是不发送符号以减少开销。
在快捷方式的特别有利的实例中,编码器可以向解码器指示未发送量化参数并且尚未发生量化。因此,解码器可能无法实施数据结构的量化。这提供了选择性的无损编码。总之,快捷方式可以指示量化被禁用。
类似地,快捷方式可以指示应在块上执行特定的变换。
因此,可以看出,解码器如何使用快捷方式值或变化参数来改变解码操作或如何利用不同的解码操作来优化数据集的解码。
本领域技术人员将清楚如何本文所述的技术在包括编码器和解码器的***内体现。在解码器处,可以从数据存储中检索经编码数据集或从流服务器接收经编码数据集。在这种另一实施例中,一个或多个流服务器可以连接到多个客户端装置。在流服务器处,编码器可以接收视频或图像流并对其进行编码,并将流(例如,字节流或位流)传递到客户端装置。因此,流可以被解码器解码以重新创建已经包括的信息。如本领域技术人员所熟知,可以使用任何合适的传递流的机制,诸如单播或多播。
此处描述的技术可能适合于任何维度的数据数组的编码、解码和重构。然而,尽管技术也适用于线性数据,但它们对于图像或视频重构最为有益。在图片或视频的情况下,数据可以是与色彩空间相关联的值(例如,RGB色彩空间中的红色分量的值,或YUV色彩空间中的Y分量的值,等),或替代地数据可以是残差数据(无论是否变换)或用于对字节流或位流进行解码的元数据。在本申请中进一步定义了残差,但是一般而言,残差是指参考数组的值与实际数据数组之间的差。因此,这些技术最适合于任何数据平面。
应注意,以下实例中描述的技术与经解码数组的含义或用途无关。当然,可以使用数据集来通过组合多个经解码数据集重构更大的数据集。重新创建后,数据可以表示已压缩的任何信息,诸如图像或声波图。如从以下描述的实例中将理解,编码和解码技术特别适合与本发明一起使用,其中将借助于涉及对数据结构的层级体系中的数据进行编码的方案压缩和传输或存储的一些数据,可以从所述经稀疏化数重构原始数据。
在例如在流服务器或客户端装置或从数据存储器中解码的客户端装置中实施的编码器和解码器两者处,本文所述的方法和过程可以体现为代码(例如,软件代码)和/或数据。编码器和解码器可以以数据压缩领域中众所周知的硬件或软件来实施。例如,使用专门编程的GPU或专门设计的FPGA进行硬件加速可以提供一定的效率。为了完整性,可以将这种代码和数据存储在一个或多个计算机可读介质上,所述计算机可读介质可以包括可以存储供计算机***使用的代码和/或数据的任何装置或介质。当计算机***读取并执行存储在计算机可读介质上的代码和/或数据时,计算机***执行体现为存储在计算机可读存储介质内的数据结构和代码的方法和过程。在某些实施例中,本文所述的方法和过程的一个或多个步骤可以由处理器(例如,计算机***或数据存储***的处理器)执行。
通常,可以使用软件、固件(例如,固定逻辑电路)、可编程或非可编程硬件或这些实施方式的组合来实施本文中所描述或附图中所说明的任何功能性。如本文所使用的术语“部件”或“功能”通常表示软件、固件、硬件或它们的组合。例如,在软件实施方式的情况下,术语“部件”或“功能”可以是指当在一个或多个处理装置上执行时执行指定任务的程序代码。所说明的将部件和功能分离成不同的单元可以反映出这种软件和/或硬件和任务的任何实际或概念上的物理分组和定位。
现在将描述用于对字节流进行解码的技术。
解码模块将接收待解码的数据的一部分(例如,流)。数据的此部分将是数据流(诸如字节流或位流)的一部分。数据的此部分可以具有可变长度(例如,3个字节或等效的24个位),并且通常与描述待解码的数据的基本数据结构(例如被称为图块的数据结构)相关联,如本发明和同一申请人的其他申请中进一步描述,诸如2017年12月6日提交的欧洲专利申请第17386045.3号和/或第17386046.1号,所述申请均通过引用并入本文。
为了能够对数据的一部分进行解码,可能需要使用一些附加数据,诸如元数据。此元数据可以存在于数据本身的一部分中(例如,数据的一部分可以包括包含所述元数据的报头字段和包含待解码的数据的有效载荷字段),或者可以作为单独的数据字段的一部分被接收,诸如包括用于数据的多个部分的元数据的数据字段(例如,对于Surface中的所有流,其中Surface在其他地方予以描述),而数据的部分包括在有效载荷字段中。可以在数据的一部分之前接收此单独的数据字段。可以在有效载荷字段之前对数据的所述部分的报头字段进行解码,以便能够对待解码的数据进行解码。可以在数据的一部分之前对此单独的数据字段进行解码。元数据本身可以与描述元数据的基本数据结构(例如被称为Tableau的数据结构)相关联,如在本申请和诸如上述欧洲专利申请第17386045.3号和/或第17386046.1号的其他申请中进一步描述。
应注意,图块和Tableau是称为Tessera的相同数据结构的两个实施例,如在本申请和同一申请人的其他申请中进一步描述,诸如上述欧洲专利申请第17386045.3号和/或第17386046.1号。
如上所述,数据流(例如,字节流)可以包括数据的多个部分。通常,数据的不同部分之间不存在间隙,换句话说,数据流的第一部分的最后一个字节(或位)在数据流中紧随数据的第二部分的第一字节(或位)。元数据可以用于指示与数据的一部分相关联的长度(例如,流长度)。这些长度的范围可以从零到与流的一部分相关联的任意最大字节数。
在编码期间,处理待编码的数据(例如,变换后的残差数据),以使得将它们划分为数据分组,每个数据分组与如上所述的基本数据结构(例如,Tessera)相关联。例如,参考图19,第一数据分组G1可以与第一基本数据结构T1相关联并且被编码为第一经编码数据集E1,第二数据分组可以与第二基本数据结构T2相关联且被编码为第二经编码数据集E2,第三数据分组G3可以与第三基本数据结构T3相关联且被编码为第一经编码数据集E1,依此类推。当传输到解码器时,将需要创建数据流,所述数据流由对应于经编码数据集的序列的字节的序列形成,首先是E1,然后是E2,然后是E3,依此类推。
由于待编码的数据实际上可能是稀疏的(例如,许多待编码的数据为零,或低于某个阈值),所以这些待编码的数据分组中的一些分组可能完全为空,例如G2可以完全为空。这意指虽然G1和G3包含一些待解码的数据,因此对应的经编码数据集E1和E3分别包含待解码的数据,但G2不包含任何数据,因此对应的经编码数据集E2不包含任何数据。因此,数据流将包含对应于E1的数据的第一部分和对应于E3的数据的第二部分,而不具有对应于E2的数据部分。
由于解码模块不会先验地知道不存在对应于E2的数据部分,并且由于如上所述的数据流不具有间隙,因此解码器需要接收有关待重构的数据的每个部分的长度的信息并对各个数据分组进行解码。因此,元数据MD将包含关于数据流中数据的各个部分的长度的信息。在示例性图19中,E1的长度为X个字节,E2的长度为0个字节,E3的长度为Y个字节。
解码模块将从元数据MD中提取长度信息,并基于所述信息从数据流中提取数据的对应部分。参考示例性图19,解码模块将E1的长度提取为X个字节,因此,有效载荷数据的前X个字节将与E1相关联。另外,由于解码模块将E2的长度提取为0字节,而将E3的长度提取为Y字节,因此解码模块会将有效载荷数据中的下一个X字节与E3关联,因此知道E2不具有与其相关联的数据。因此,解码模块将对E1和E3进行解码,以分别得出数据分组G1和数据分组G3的重构版本,但是它将不重构任何分组数据G2。
如本申请和其他申请中所述,诸如上述欧洲专利申请第17386045.3号和/或第17386046.1号,待解码的数据按Tesserae的层进行组织,其中顶层(层0)是与变换后的残差数据相关联的Tesserae(也称为图块),层-1是与层0上的图块的元数据相关联的Tesseare(这些Tesserae也称为Tableaux),层-2是与层-1的Tableaux的元数据相关联的Tesserae,依此类推。这些元数据可以是例如与图块相关联的数据部分的长度(如果是指层-1)或与Tableaux相关联的数据部分的长度(如果是指层-2)。
因此,当解码模块接收到数据流时,它将提取有关与各个Tesserae相关联的数据部分的长度的信息。
对Tesserae分阶段解码,每个阶段对应于对层进行解码。这在本专利申请中进一步描述。Tableau层解码阶段涉及使用流长度来“查找”所述层的Tableaux,然后对“已找到的”Tesserae进行解码,以获得更多的流长度。图块层解码阶段包括使用流长度查找图块,并对“已找到的”图块进行解码,以获得残差(所有其他残差均为零)。
如图23所示,字节流可以包括多个字段,即一个或多个报头和有效载荷。通常,有效载荷包括待解码的实际数据,而报头提供了在对有效载荷进行解码时所需的信息。有效载荷可以包括关于多个平面的信息。换句话说,有效载荷被细分为多个部分,每个部分对应于一个平面。每个平面还包括多个子部分,每个子部分与质量级别相关联。有效载荷的逻辑结构是多层Tableaux的数组,所述数组在图块层前面,且图块在其顶层处包含残差。有效载荷中表示Tessera的数据应为流。在本实例中,流按LoQ,然后按平面,然后按方向,然后按层排序。然而,可以以任何其他方式对流进行排序,例如,第一个方向,然后是LoQ,平面,然后是层。方向、LoQ和平面之间的顺序可以通过任何方式完成,并且可以通过使用报头中的信息(例如stream_offsets info)来推断实际顺序。
有效载荷包含一系列流,每个流对应于经编码的tessera。出于本实例的目的,假定tessera的大小为16×16。首先,解码模块将推导出根tableau(例如,与第一平面内的第一LoQ的第一方向相关联)。从根tableau中,解码模块将推导出多达256个与对应的多达256个与之关联的tesserae相关联的属性,这些属性位于根层(第一层)之上。具体地,属性中的一个是与tessera相关联的流的长度。通过使用所述流长度,解码模块可以识别个别流,并且如果实施,则可以独立地对每个流解码。然后,解码模块将从所述tessera中的每一个中推导出与上一层(第二层)中的256个tesserae相关联的属性。这些属性中的一个是与tessera相关联的流的长度。通过使用所述流长度,解码模块可以识别个别流,并且如果实施,则可以独立地对每个流解码。过程将一直持续到到达顶层为止。在到达顶层后,字节流中的下一个流将对应于第二根tableau(例如,与第一平面内第一LoQ的第二方向相关联),并且过程将以相同的方式继续。
字节流可以包括固定大小的报头,即其字节/位长度是固定的报头。报头可以包括多个字段。图20示出了所述固定大小的报头的实例。
固定大小的报头可以包括第一字段,所述第一字段指示字节流格式的版本(B.1——也描述为format_version:unit8)。在实施例中,此第一字段可以包括8个位(或等效地1个字节)。此字段可以允许编码/解码过程的灵活性,以使用、调适和/或修改字节流格式的版本,并将所述版本告知解码模块。以此方式,可以使用编码/解码格式的多个不同版本,并且允许解码模块确定待使用的正确版本。
解码模块将从字节流中获得所述第一字段,并基于所述第一字段中包括的值来确定将在所述字节流的解码过程中使用的编码格式的版本。解码模块可以使用和/或实施解码过程以适应于所述版本。
固定大小的报头可以包括第二字段,所述第二字段指示使用具体字节流编码的图片帧的大小(B.2——也描述为picture_size:unit32)。图片帧的大小实际上可以对应于与所述图片帧相关联的字节流的大小。在实施例中,此第一字段可以包括32个位(或等效地4个字节)。图片帧的大小可以以字节为单位指示,但是可以使用其他单位。这允许编码/解码过程灵活地对不同大小(例如1024×720像素、2048×1540像素等)的图片帧进行编码,并且允许解码模块确定用于具体字节流的正确图片帧大小。
解码模块将从字节流中获得所述第二字段,并基于所述第二字段中包括的值来确定对应于所述字节流的图片帧的大小。解码模块可以使用和/或实施解码过程以适应于所述大小,并且具体地从经编码的字节流中重构图片帧以适应所述大小。
固定大小的报头可以包括第三字段,所述字段指示在获得字节流时待在解码模块中获取/检索的建议位数/字节数(B.3——也描述为recommended_fetch_size:unit32)。在实施例中,此第一字段可以包括32个位(或等效地4个字节)。当从服务器检索字节流时,此字段在某些应用中和/或对于某些解码模块可能特别有用,例如,以使字节流能够在“部分”的解码模块中被获取/检索。例如,这可以实现字节流的部分解码(如在例如同一申请人于2017年12月6日提交的欧洲专利申请第17386047.9号中进一步描述,所述申请的全部内容通过引用并入本文)和/或优化解码模块对字节流的检索(如在例如同一申请人于2012年7月20日提交的欧洲专利申请第12759221.0号中进一步描述,所述申请的全部内容通过引用并入本文)。
解码模块将从字节流中获得所述第三字段,并基于所述第三字段中包括的值来确定待从单独模块(例如,服务器和/或内容传递网络)中检索的字节流的位数和/或字节数。解码模块可以使用和/或实施解码过程,以从字节流向单独的模块请求所述数量的位和/或字节,并从单独的模块中检索它们。
固定大小的报头可以包括另一个字段,所述字段指示字节流中的通用值(B.3.1——也描述为element_interpretation:uint8)。在实施例中,此第一字段可以包括8个位(或等效地1个字节)。
解码模块将从字节流中获得所述另一个字段,并基于所述另一个字段中包括的值来确定所述字段所指示的值。
固定大小的报头可以包括第四字段,所述第四字段指示各种***信息,包括待在解码过程中使用的变换操作的类型(B.4——也描述为管线:unit8)。在实施例中,此第一字段可以包括8个位(或等效地1个字节)。变换操作通常是将值从初始域变换成变换后的域的操作。这种变换的一个实例是整数组成变换。这种变换的另一个实例是组成变换。组成变换(整数和/或标准)在同一申请人于2013年5月13日提交的欧洲专利申请第13722424.2号中进一步描述,并且所述申请通过引用并入本文。
解码模块将从字节流中获得所述第四字段,并基于所述第四字段中包括的至少一个值来确定待在解码过程中使用的变换操作的类型。解码模块可以将解码过程配置成使用所指示的变换操作,和/或实施解码过程,所述解码过程当将一个或多个经解码的变换系数和/或值(例如,残差)转换为原始非变换域时使用所指示的变换操作。
固定大小的报头可以包括第五字段,所述第五字段指示待在解码过程中使用的上采样滤波操作的类型(B.5——也描述为上采样器:unit8)。在实施例中,此第一字段可以包括8个位(或等效地1个字节)。上采样滤波操作包括将某些数学运算应用于第一数量的样本/值以产生第二数量的样本/值的滤波器,其中第二数量高于第一数量。数学运算可以是预定义的,可以基于算法(例如,使用神经网络或某种其他自适应滤波技术)进行调适,或者可以基于在解码模块处接收到的附加信息进行调适。这种上采样滤波操作的实例包括最近邻滤波操作、锐化滤波操作、双三次滤波操作和卷积神经网络(CNN)滤波操作。在本申请以及由同一申请人于2017年12月6日提交的英国专利申请第1720365.4号中进一步详细描述了这些滤波操作,所述申请通过引用并入本文。
解码模块将从字节流中获得所述第五字段,并基于所述第五字段中包括的至少一个值来确定待在解码过程中使用的上采样操作的类型。解码模块可以将解码过程配置成使用所指示的上采样操作和/或实施使用所指示的上采样操作的解码过程。待使用的上采样操作的指示允许编码/解码过程的灵活性,例如,以基于其特征更好地适合于待编码/解码的图片的类型。
固定大小的报头可以包括第六字段,所述第六字段指示当建立固定大小的报头和/或其他报头时在编码过程中使用的和/或待在解码过程中使用以对字节流进行解码的一个或多个修改操作(参见下文)(B.6——也描述为快捷方式:shortcuts_t)。这些修改操作也称为快捷方式。这些快捷方式提供的一般优点是,例如通过优化字节流的处理,减少了待编码/解码的数据的量和/或优化了解码器的执行时间。
解码模块将从字节流中获得所述第六字段,并基于所述第六字段中包括的至少一个值来确定在编码过程中使用和/或待在解码过程中使用的快捷方式的类型。解码模块可以将解码过程配置成基于所指示的快捷方式来调适其操作和/或实施使用所指示的快捷方式的解码过程。
固定大小的报头可以包括第七个字段,所述第七字段指示待用于表示数字的整数的第一位数和待用于表示数字的小数部分的第二位数(B.7——也描述为element_descriptor:元组(uint5,utin3))。在一个实施例中,此第一字段可以包括8个位(或等效地1个字节),其被细分为5个位用于第一位数和3个位用于第二位数。
解码模块将从字节流中获得所述第七字段,并基于所述第七字段中包括的至少一个值来确定专用于表示具有整数和小数部分的数字的整数部分的位数以及专用于表示小数数字的位数。
固定大小的报头可以包括第八字段,所述第八字段指示形成帧且当对字节流进行解码时使用的多个平面(B.8——也描述为num_plane:unit8)。在实施例中,此第一字段可以包括8个位(或等效地1个字节)。在本申请中定义了平面,并且所述平面例如是颜色空间中的维度中的一个,例如,YUV空间中的亮度分量Y或RGB空间中的红色分量R。
解码模块将从字节流中获得所述第八字段,并基于所述第五字段中包括的至少一个值来确定图片中所包括的平面的数量。
固定大小的报头可以包括第九字段,所述第九字段指示包括在单独的报头中的辅助报头部分的大小,例如,第一可变大小报头或第二可变大小报头(B.9——也描述为aux_header_size:uunt16)。在实施例中,此第一字段可以包括16个位(或等效地2个字节)。此字段允许编码/解码过程灵活,并定义潜在的附加报头字段。
解码模块将从字节流中获得所述第九字段,并基于所述第九字段中包括的至少一个值来确定包括在单独的报头中的辅助报头部分的大小。解码模块可以配置解码过程以读取字节流中的辅助报头。
固定大小的报头可以包括第十字段,所述第十字段指示多个辅助属性(B.10——也描述为num_aux_tile_attribute:uint4和num_aux_tableau_attribute:uint4)。在实施例中,此第一字段可以包括被分成两个4位区部的8个位(或等效地1个字节)。此字段允许编码/解码过程灵活,并为图块和Tableaux定义潜在的附加属性。可以在编码/解码过程中定义这些附加属性。
解码模块将从字节流中获得所述第十字段,并基于所述第十字段中包括的至少一个值来确定与图块相关联的多个辅助属性和/或与tableau相关联的多个辅助属性。解码模块可以将解码过程配置成读取字节流中的所述辅助属性。
字节流可以包括第一可变大小的报头,即其字节/位长度可以取决于在其中传输的数据而改变的报头。报头可以包括多个字段。图21示出了所述第一可变大小的报头的实例。
第一可变大小的报头可以包括第一字段,所述第一字段指示与图块和/或tableau的辅助属性相关联的字段的大小(C.1——也描述为aux_attribute_sizes:unti16[num_aux_tile_attribute+num_aux_tableau_attribute])。在实施例中,第二字段可以包括多个子字段,每个子字段指示图块和/或tableau的对应辅助属性的大小。这些子字段的数量以及对应地图块和/或tableau的辅助属性的数量,可以在不同报头的字段中指示,例如上述固定报头,具体地在字段B.10中指示。在实施例中,对于每个辅助属性,此第一字段可以包括16个位(或等效地2个字节)。由于辅助属性可能不包括在字节流中,因此此字段将允许编码/解码过程定义辅助属性的大小(如果辅助属性将包括在字节流中)。例如,这与通常预定义大小的属性(参见下文的C.2)形成对比,因此不需要指定和/或传达其大小。
解码模块将从字节流中获得所述第一字段,并基于所述第一字段中包括的值来确定与tessera(即,图块或tableau)相关联的辅助属性的大小。具体地,解码模块可以例如基于单独接收到的关于辅助属性的数量的信息,从字节流中的所述第一字段中获得解码模块期望解码的辅助属性中的每一个辅助属性的大小。解码模块可以将解码过程配置成读取字节流中的辅助属性。
第一可变大小的报头可以包括第二字段,所述第二字段针对图块和/或tableau的每个属性指示相应属性的多个不同版本(C.2——也描述为nums_attribute:unti16[4+num_aux_tile_attribute+num_aux_tableau_attribute])。第二字段可以包括多个子字段,每个子字段针对对应的属性指示所述相应属性的多个不同版本。这些子字段的数目以及对应地用于图块和/或tableau的标准属性和辅助属性的数目,可以至少部分地在不同报头的字段中指示,例如上述固定报头,具体地在B.10字段中指示。属性可以包括与图块和/或tableau相关联的标准属性以及如上所述的辅助属性。在实施例中,存在与图块相关联的三个标准属性(例如,残差统计、T节点统计和量化参数)和与tableau相关联的两个标准属性(例如,流长度统计和T节点统计)。在实施例中,由于图块和tableaux的T节点统计可以是相同的,因此它们可能仅需要被指定一次。在这种实施例中,将仅需要包括四个不同的标准属性(因此,仅四个子字段,C.2.1至C.2.4,与四个标准属性残差统计、T节点统计、量化参数和流长度统计中的一个相关联的每一个子字段包括在第二字段中,每个子字段指示相应属性的多个不同版本。因此,在所述第二字段中可以存在四个不同的子字段,每个子字段指示需要针对解码过程指定的图块和/或tableau的标准属性的数量。借助于实例,如果与T节点统计相关联的子字段指示数字20,则意指T节点统计将存在20个不同的可用版本用于图块和/或属性。
解码模块将从字节流中获得所述第二字段,并基于所述第二字段中包括的值来确定相应属性的多个不同版本,所述属性与图块和/或tableau相关联。解码模块可以将解码过程配置成使用对应属性的可用版本。
第一可变大小的报头可以包括第三字段,所述第三字段指示多个不同的图块分组,其中,每个图块分组与公共属性相关联(C.3——也描述为num_tileset:uint16)。在实施例中,此第一字段可以包括16个位(或等效地2个字节)。在实施例中,公共属性可以是图块的T节点统计。例如,如果图块分组(也称为“图块集”)与同一T节点统计相关联,则意指所述分组中的所有图块均应与同一T节点统计相关联。具有一个或多个公共属性的图块分组的使用允许译码和解码过程在指定相同属性的多个版本并将它们与正确的图块相关联方面变得灵活。例如,如果图块组属于“组A”,并且“组A”与“属性A”相关联(例如,具体的T节点统计),则组A中的所有图块均应使用所述属性A。类似地,如果图块组属于“组B”,并且“组B”与“属性B”相关联(例如,与组A的不同的具体的T节点统计),则组B中的所有图块应使用所述属性B。这在允许将图块与尽可能接近图块的统计分布的统计分布相关联,而不必针对每个图块指定不同的统计时特别有用。以这种方式,在优化熵编码和解码之间达到了平衡(如果与图块相关联的分布是所述图块的精确分布,则将出现最佳编码和解码),同时使待传输的数据量最小。将图块进行分组,并且将“公共”统计用于所述图块组,所述统计与所述分组中包括的图块的统计尽可能接近。例如,如果具有256个图块,则在理想情况下,将需要发送256个不同的统计(每个图块一个),以便优化熵编码和解码过程(经编码/经解码符号的统计分布越接近所述符号的实际分布,则熵编码器/解码器越有效)。然而,在压缩效率方面,发送统计是不切实际且昂贵的。因此,典型的***将只为所有256个图块发送一个单个统计。然而,如果将图块分组为有限数量的分组,例如10个,而每个分组中的每个图块具有类似的统计,则仅需要发送10个统计。以这种方式,与针对所有256个图块仅发送一个公共统计相比,将获得更好的编码/解码效果,而同时仅发送10个统计,因此不会降低压缩效率。
解码模块将从字节流中获得所述第三字段,并基于所述第三字段中包括的值来确定多个不同的图块分组。解码模块可以将解码过程配置成当对与具体分组对应的图块进行编码时使用与所述分组相关联的一个或多个属性。
第一可变大小的报头可以包括第四字段,所述第四字段指示多个不同的tableaux分组,其中每个tableaux分组与一个公共属性相关联(C.4——也描述为num_tableauset:uint16)。在实施例中,此第四字段可以包括16个位(或等效地2个字节)。此字段起作用且是基于与第三字段相同的原理,例外是在这种情况下,它是指tableaux,而不是图块。
解码模块将从字节流中获得所述第四字段,并基于所述第四字段中包括的值来确定多个不同的tableaux分组。解码模块可以将解码过程配置成当对与具体分组对应的tableau进行解码时使用与所述分组相关联的一个或多个属性。
第一可变大小的报头可以包括第五字段,所述第五字段指示多个平面中的每个平面的宽度(C.5——也描述为宽度:uint16[num_plane])。在实施例中,对于多个平面中的每个平面,此第五字段可以包括16个位(或等效地2个字节)。在本说明书中进一步定义了平面,但通常是与具体特征相关联的元素的网格(通常是二维网格),例如在视频的情况下,特征可以是亮度或具体颜色(例如红色、蓝色或绿色)。宽度可以对应于平面的维度中的一个。通常,存在多个平面。
解码模块将从字节流中获得所述第五字段,并基于所述第五字段中包括的值来确定与元素(例如,图片元素、残差等)的平面相关联的第一维度。此第一维度可以是所述平面的宽度。解码模块可以将解码过程配置成当对字节流进行解码时使用关于其相应平面的所述第一维度。
第一可变大小的报头可以包括第六字段,所述第六字段指示多个平面中的每个平面的宽度(C.6——也描述为高度:uint16[num_plane])。在实施例中,对于多个平面中的每个平面,此第六字段可以包括16个位(或等效地2个字节)。高度可以对应于平面的维度中的一个。
解码模块将从字节流中获得所述第六字段,并基于所述第六字段中包括的值来确定与元素(例如,图片元素、残差等)的平面相关联的第二维度。此第二维度可以是所述平面的高度。解码模块可以将解码过程配置成当对字节流进行解码时使用关于其相应平面的所述第二维度。
第一可变大小的报头可以包括第七字段,所述第七字段指示针对多个平面中的每个平面的编码/解码级别的数量(C.7——也描绘为num_loqs:uint8[num_plane])。在实施例中,对于多个平面中的每个平面,此第七字段可以包括16个位(或等效地2个字节)。编码/解码级别对应于分级编码过程中的不同级别(例如,不同的分辨率)。编码/解码级别在应用中也称为质量级别。
解码模块将从字节流中获得所述第七字段,并基于所述第七字段中包括的值来确定多个平面(例如,图片元素、残差等)中的每个平面的多个编码级别。解码模块可以将解码过程配置成当对字节流进行解码时使用关于其相应平面的所述数量的编码级别。
第一可变大小的报头可以包括第八字段,所述第八字段包含有关辅助属性的信息(C.8——也描述为aux_header:uint8[aux_header_size])。在实施例中,取决于在例如固定报头(例如,B.9)的字段中指定的大小,此八个字段可以包括多个8个位(或等效地为1个字节)。
解码模块将从字节流中获得所述第八字段,并确定有关辅助属性的信息。解码模块可以将解码过程配置成当对字节流进行解码时使用所述信息来对辅助属性进行解码。
字节流可以包括第二可变大小的报头,即其字节/位长度可以取决于在其中传输的数据而改变的报头。报头可以包括多个字段。图22示出了所述第二可变大小的报头的实例。
第二个可变大小的报头可以包括第一字段,所述第一字段包含针对每个属性的有关与相应属性相关联的一个或多个统计的信息(参看D.1)。可以例如经由如上所述的字段C.2单独地推导出与相应属性相关联的统计的数量。统计可以以任何形式提供。在本申请的实施例中,使用包括有关累积分布函数的信息的特定数据信息集(类型residual_stat_t)来提供统计。
具体地,所述第一字段中的第一子字段组可以包含关于与残差值相关联的一个或多个统计的信息(也称为D.1.1——也描述为residual_stats:residual_stat_t[nums_attribute[0]])。换句话说,统计可以识别残差数据集是如何分布的。可以在单独的字段中,例如在如上所述的字段C.2的第一子字段C.2.1(也指示为nums_attribute[0])中指示此第一子字段组中包括的统计的数量。例如,如果nums_attribute[0]等于10,则在所述第一字段中将包含10个不同的残差统计。例如,第一字段中的前10个子字段对应于所述不同的10个残差统计。
所述第一字段中的第二子字段组可以包含有关与Tessera中的节点相关联的一个或多个统计的信息(也称为D.1.2——也描述为tnode_stats:tnode_stat_t[nums_attribute[1]])。换句话说,统计可以识别节点集是如何分布的。可以在单独的字段中,例如在如上所述的字段C.2的第二子字段C.2.2中指示此第二子字段组中包括的统计的数量(也指示为nums_attribute[1])。例如,如果nums_attribute[1]等于5,则在所述第一字段中将包含5个不同的t节点统计。例如,考虑以上实例,在第一字段中的前10个子字段之后,接下来的5个子字段对应于所述5个不同的t节点统计。
所述第一字段中的第三子字段组可以包含有关一个或多个量化参数的信息(也称为D.1.3,也描述为quantization_parameters:quantization_parameters_t[nums_attribute[2]])。可以在单独的字段中,例如在如上所述的字段C.2的第三子字段C.2.3中指示此第三子字段组中包括的量化参数的数量(也指示为nums_attribute[2])。例如,如果nums_attribute[2]等于10,则在所述第一字段中将包含10个不同的量化参数。例如,考虑以上实例,在第一字段中的前15个子字段之后,接下来的10个子字段对应于所述10个不同的量化参数。
所述第一字段中的第四子字段组可以包含有关与流长度相关联的一个或多个统计的信息(也称为D.1.4——也描述为stream_length_stats:stream_length_stat_t[nums_attribute[3]])。换句话说,统计可以识别流长度集是如何分布的。可以在单独的字段中,例如在如上所述的字段C.2的第四子字段C.2.4中指示此第四子字段组中包括的统计的数量(也指示为nums_attribute[3])。例如,如果nums_attribute[4]等于12,则在所述第一字段中将包含12个不同的流长度统计。例如,考虑以上实例,在第一字段中的前25个子字段之后,接下来的12个子字段对应于所述12个不同的流长度统计。
所述第一字段中的其他子字段组可以包含有关辅助属性的信息(也描述为aux_atttributes:uint1[aux_attributes_size[i]][num_aux_tile_attribute+num_aux_tableau_attribute])。辅助属性的数量可以在另一字段中指示,例如如上所述的字段C.2。
指定属性的一个或多个版本(例如统计)使得编码和解码过程具有灵活性和准确性,因为例如可以为具体的tesserae(图块和/或tableaux)分组指定更准确的统计,从而可能以更有效的方式对所述分组进行编码和/或解码。
解码模块将从字节流中获得所述第一字段,并基于所述第一字段中包含的信息来确定待在解码过程中使用的一个或多个属性。解码模块可以存储经解码的一个或多个属性,以在解码过程中使用。解码模块可以在对数据(例如,图块和/或tableau)集进行解码时并基于适用于所述数据集的属性的指示,从存储的经解码的一个或多个中检索所指示的属性并在对所述数据集进行解码时使用。
第二可变大小的报头可以包括第二字段,对于多个图块分组中的每个分组,所述第二字段包含在对所述分组进行解码时使用的对应属性集的指示(D.2——也称为图块:uint16[3+num_aux_tile_attributes][num_tiles])。图块的分组的数量可以在单独的字段中指示,例如在上述字段C.3中指示。第二字段使编码/解码过程能够指定在对图块进行解码时将使用上述字段D.1中所指示的属性集中的哪一个。
解码模块将从字节流中获得所述第二字段,并基于所述第二字段中包含的信息来确定当对相应图块分组进行解码时将使用属性集中的哪一个。解码模块将从存储所有属性的存储库中检索在所述第二字段中所指示的那些属性,并在对相应图块分组进行解码时使用它们。当对多个图块分组中的每一个进行解码时,解码过程将重复所述操作。
借助于实例,并使用上述关于字段D.1描述的实例,假设对于第一图块分组,在所述第二字段中所指示的属性集对应于残差统计编号2、t_node统计编号1和量化参数编号4(为简单起见,假设没有辅助属性)。当接收模块接收到所述指示时,它将从存储的属性(如上所述)中检索10个存储的残差统计中的第二残差统计、5个存储的t_node统计中的第一t_node统计以及10个存储的量化参数的第四量化参数。
第二个可变大小的报头可以包括第四字段,对于多个tableaux分组中的每一个,所述第四字段包含当对所述分组进行解码时将使用的对应属性集的指示(D.4——也描述为tableausets:uint16[2+num_aux_tableaux_attributes][num_tableaux])。tableaux的分组的数量可以在单独的字段中指示,例如在上述字段C.4中指示。第四字段使编码/解码过程能够指定在对tableau进行解码时将使用上述字段D.1中所指示的属性集中的哪一个。
此第四个字段后面的原理和操作对应于针对第二个字段描述的原理和操作,不同之处在于,在这种情况下,它适用于tableaux,而不是图块。具体,解码模块将从字节流中获得所述第四字段,并基于所述第四字段中包含的信息来确定当对相应tableaux分组进行解码时将使用属性集中的哪一个。解码模块将从存储所有属性的存储库中检索在所述第四字段中所指示的那些属性,并在对相应tableaux分组进行解码时使用它们。当对多个tableaux分组中的每一个进行解码时,解码过程将重复所述操作。
第二可变大小的报头可以包括第五字段,对于每个平面、每个编码/解码级别和每个方向,所述第五字段包含在对根tableau进行解码时将使用的对应属性集的指示(D.5——也描述为root_tableauset_indices:uint16[loq_idx][num_planes][4])。第五字段使编码/解码过程能够指定在对根tableau进行解码时将使用上述字段D.1中所指示的属性集中的哪一个。
解码模块将从字节流中获得所述第五字段,并基于所述第五字段中包含的信息来确定当对相应根tableau进行解码时将使用属性集中的哪一个。解码模块将从存储所有属性的存储库中检索在所述第五字段中所指示的那些属性,并在对相应图块分组进行解码时使用它们。
以这种方式,解码模块将有效地存储当对与所述字节流相关联的图块和/或Tableaux进行解码时使用的所有可能的属性,然后针对图块和/或Tableaux的分组中的每一个仅检索所述第二字段中所指示的属性的子集,以对图块和/或tableaux的相应分组进行解码。
第二可变大小的报头可以包括第三字段,所述第三字段包含有关图块分组的统计的信息(D.3——也描述为cdf_tilesets:line_segments_cdf15_t<tilese_index_t>)。统计信息可以提供关于某个图块分组出现的次数的信息。统计可以以累积分布函数的形式提供。在本申请中,提供累积分布函数的方式被识别为函数类型,具体地类型line_segments_cdf15_t<x_axis_type>。通过使用所述统计,使得编码/解码过程能够压缩关于图块的分组的信息(例如,图块的索引),并且因此优化过程。例如,如果存在N个不同的图块分组,并且对应地存在N个不同的索引,而不是以需要位(其中/>是上限函数)的未压缩方式传输这些索引,则可以使用熵编码器对分组进行压缩,从而显著减少传达图块分组所需的位数。这可以表示显著的节省。例如,假设在字节流中编码了10,000个图块,并且将这些图块划分为100个分组。在不压缩索引的情况下,需要与每个图块一起发送索引,这意味着每个图块至少/>位,这意味着总计70,000位。相反,如果使用熵编码器将索引压缩为每个索引平均1.5位,则将使用的总位数为15,000,从而将使用的位数减少近80%。
解码模块将从字节流中获得所述第三字段,并基于所述第三字段中包含的信息来确定关于图块分组的统计信息。当推导图块属于哪个分组时,解码模块将使用所述统计信息。例如,可以使用所述统计信息来压缩关于图块分组的信息(例如,图块集索引),然后在解码器处使用相同的统计(例如,使用熵解码器)来对其进行重构。
第二可变大小的报头可以包括第六字段,所述第六字段包含有关Tableaux分组的统计的信息(D.6——也描述为cdf_tableausets:line_segments_cdf15_t<tableauset_index_t>)。统计信息可以提供关于某个tableaux分组出现的次数的信息。统计可以以累积分布函数的形式提供。
此字段与第三个字段完全相同地起作用,但用于tableaux分组,而不是图块分组。具体地,解码模块将从字节流中获得所述第六字段,并且基于所述第六字段中包含的信息来确定关于tableaux分组的统计信息。当推导tableau属于哪个分组时,解码模块将使用所述统计信息。例如,可以使用所述统计信息来压缩关于tableau分组的信息(例如,tableau集索引),然后在解码器处使用相同的统计(例如,使用熵解码器)来对其进行重构。
第二可变大小的报头可以包括第七字段,所述第七字段对于每个平面、每个编码/解码级别和每个方向包含与所述相应平面、编码/解码级别和方向相关联的字节的一个或多个子流在字节流的有效载荷内的定位的指示(D.7——也描述为root_stream_offsets:root_stream_offset_t[loq_idx][num_planes][4])。定位可以被指示为相对于有效载荷的起始的偏移量。借助于实例,假设3个平面、3个编码/解码级别和4个方向,将存在3*3*4=36个不同的子流,并且对应地将存在36个不同的定位(例如,偏移量)指示。
解码模块将从字节流中获得所述第七字段,并基于所述第七字段中包含的信息来确定在有效载荷中何处找到具体子流。子流可以与在具体编码/解码级别内的具体平面中包含的具体方向相关联。解码模块将使用所述信息来定位子流并对应地对所述子流进行解码解码。解码模块可以基于此信息同时和/或并行地实施对各个子流的解码。由于至少两个原因,这可能是有利的。首先,它将允许子流排序的灵活性。解码器可以基于子流的定位来重构子流所属的方向、平面和编码/解码级别,而无需固定所述顺序。其次,这将使解码器能够彼此独立地对子流进行解码,因为每个子流都有效地彼此分离。
第二可变大小的报头可以包括第八字段,对于每个平面、每个编码/解码级别和每个方向,所述第八字段包含与根tableau相关联的字节流的大小(D.8——也描述为root_stream_lengths:root_stream_length_t[loq_idx][num_planes][4])。
解码模块将从字节流中获得所述第八字段,并基于所述第八字段中包含的信息来确定与根tableau相关联的流的长度。
本文档中描述的实例的进一步编号的项包括以下项。
1.处理与视频数据流相关联的元数据的方法,所述方法包括针对第一视频数据帧执行以下操作的步骤:
将所述第一视频数据帧细分为多个图块;
针对多个图块中的每一个计算第一统计属性;
识别具有相同或类似统计属性的第一例子的图块,并将所述识别出的图块分组在一起作为图块集;
对于每个图块集定义所述图块集的元数据,所述元数据指示定义所述图块集的所述图块的统计属性;以及
基于为所述图块所属于的所述图块集中的每一个定义的所述元数据对指示所述第一视频数据帧的所述图块的所述元数据的数据进行编码。
2.根据项1的方法,其中使用基于熵编码的技术来进行所述编码.
3.根据先前项中任一项的方法,其中图块集的所述元数据还定义形成所述图块集的所述图块中的每一个的定位。
4.根据先前项中任一项的方法,其中所述图块的大小是固定的。
5.根据先前项中任一项的方法,其中识别形成图块集的所述图块的步骤还包括基于它们的统计属性对所述图块进行排序。
6.根据项5的方法,其中所述图块的排序定义所述统计属性的概率分布函数。
7.根据先前项中任一项的方法,其中以设定的顺序对图块进行编码。
8.根据项7的方法,其中所述方法还包括确定图块的所述元数据与其先前的图块之间的差异,并将所述元数据编码为所述差异。
9.根据项7或8中的方法,其中设定的顺序是z序遍历。
10.根据先前项中任一项的方法,其中所述方法还包括对所述图块进行编码的所述步骤。
11.根据项10的方法,其中对所述图块进行编码的所述步骤包括确定量化级别并以所述量化级别对图块进行编码。
12.根据项11的方法,其中以第一量化级别对属于第一图块集的图块进行量化,并且以不同的第二量化级别对属于第二图块集的图块进行量化。
13.根据先前项中任一项的方法,其中所述图块的所述统计属性选自以下组中的一个或多个:视频数据的帧中的亮度、色度和对一个或多个像素进行编码所需的位数。
14.根据先前项中任一项的方法,其中所述第一视频数据帧是残差帧,所述残差帧指示第一数据帧与参考帧之间的差异。
15.根据先前项中任一项的方法,其中所述方法还包括:识别所述图块的一个或多个其他统计属性,并识别具有多个相同或类似的统计属性的例子的图块,并将所述识别出的图块分组在一起作为所述图块集。
16.一种用于对与视频数据流相关联的元数据进行编码的***,所述***包括处理器,所述处理器被配置成针对第一视频数据帧:
将所述第一视频数据帧细分为多个图块;
针对多个图块中的每一个计算所述图块的第一统计属性;
识别具有相同或类似统计属性的第一例子的图块,并将所述识别出的图块分组在一起作为图块集;
对于每个图块集定义所述图块集的元数据,所述元数据指示定义所述图块集的所述图块的统计属性;以及
基于为所述图块所属于的所述图块集中的每一个定义的所述元数据对指示所述第一视频数据帧的所述图块的所述元数据的数据进行编码。
17.一种对与视频数据流相关联的元数据进行解码的方法,所述方法包括在解码器处针对第一视频数据帧执行以下操作的步骤:
获得信息以使得所述解码器能够将所述第一视频数据帧细分为多个图块;
接收经编码元数据流,所述经编码元数据流包括识别具有相同或类似统计属性的第一例子的图块的信息,以及将所述识别出的图块分组在一起作为图块集的信息;
获得关于所述相同或类似统计属性的信息;以及
利用获得的关于所述相同或类似统计属性的信息,针对形成所述图块集的所述图块中的每一个对所述元数据进行解码。
18.根据项17的方法,其中使用基于熵编码的技术来对经编码数据流进行解码。
19.根据项16或17的方法,其中图块集的所述经解码元数据还定义形成所述图块集的所述图块中的每一个的定位。
20.根据项16至19中任一项的方法,其中所述图块的大小是固定的。
21.根据项16至20中任一项的方法,包括以下步骤:获得关于所述图块被编码的顺序的信息,并基于所述顺序对经编码流进行解码。
22.根据项22的方法,其中所述方法还包括确定图块的所述元数据与其先前的图块之间的差异,并将所述元数据解码为所述差异。
23.根据项21或22的方法,其中设定的顺序是z序遍历。
24.根据项16至23中任一项的方法,还包括:获得关于量化级别的信息,并以所述量化级别对所述数据流进行解码。
25.根据项24的方法,其中以第一量化级别对属于第一图块集的图块进行解码,并且以不同的第二量化级别对属于第二图块集的图块进行解码。
26.一种用于对经编码视频数据流进行解码的解码器,所述解码器被配置成执行根据项17至25中任一项的方法。
A-1.一种对与视频数据流相关联的元数据进行解码的方法,所述方法包括在解码器处针对第一视频数据帧执行以下操作的步骤:
获得信息以使得所述解码器能够将所述第一视频数据帧细分为多个图块;
接收经编码元数据流,所述经编码元数据流包括识别具有相同或类似统计属性的第一例子的图块的信息,以及将所述识别出的图块分组在一起作为图块集的信息;
获得关于所述相同或类似统计属性的信息;以及
利用获得的关于所述相同或类似统计属性的信息,针对形成所述图块集的所述图块中的每一个对所述元数据进行解码。
A-2.根据项A-1的方法,其中使用基于熵编码的技术来对经编码数据流进行解码。A-3.根据项A-1或A-2的方法,其中图块集的所述经解码元数据还定义形成所述图块集的所述图块中的每一个的定位。
A-4.根据先前项中任一项的方法,其中所述图块的大小是固定的。
A-5.根据先前项中任一项的方法,包括以下步骤:获得关于所述图块被编码的顺序的信息,并基于所述顺序对经编码流进行解码。
A-6.根据项A-5的方法,其中所述方法还包括确定图块的所述元数据与其先前的图块之间的差异,并将所述元数据解码为所述差异。
A-7.根据项A-5或A-6的方法,其中设定的顺序是z序遍历。
A-8.根据先前项中任一项的方法,还包括:获得关于量化级别的信息,并以所述量化级别对所述数据流进行解码。
A-9.根据项A-8的方法,其中以第一量化级别对属于第一图块集的图块进行解码,并且以不同的第二量化级别对属于第二图块集的图块进行解码。
A-10.一种用于对经编码视频数据流进行解码的解码器,所述解码器被配置成执行根据项A-1至A-9中任一项的方法。
A-11.一种处理与视频数据流相关联的元数据的方法,所述方法包括针对第一视频数据帧执行以下操作的步骤:
将所述第一视频数据帧细分为多个图块;
针对多个图块中的每一个计算第一统计属性;
识别具有相同或类似统计属性的第一例子的图块,并将所述识别出的图块分组在一起作为图块集;
对于每个图块集定义所述图块集的元数据,所述元数据指示定义所述图块集的所述图块的统计属性;以及
基于为所述图块所属于的所述图块集中的每一个定义的所述元数据对指示所述第一视频数据帧的所述图块的所述元数据的数据进行编码。
A-12.根据项A-11的方法,其中使用基于熵编码的技术来进行所述编码。
A-13.根据项A-11或A-12中任一项的方法,其中图块集的所述元数据还定义形成所述图块集的所述图块中的每一个的定位。
A-14.根据项A-11至A-13中任一项的方法,其中所述图块的大小是固定的。
A-15.根据项A-11至A-14中任一项的方法,其中识别形成图块集的所述图块的步骤还包括基于它们的统计属性对所述图块进行排序。
Claims (21)
1.一种对接收到的表示已压缩信息的二维阵列的经编码数据集进行解码的方法,所述方法包括:
从所述数据集获得属性指示符集,所述属性指示符集中的每个指示符与所述数据集的子集相关联;以及
其特征在于,每个指示符是指向用于解码的参数集的索引值,并且所述方法还包括:
对所述数据集的多个子集进行解码,其中子集是待单独解码的数据集的集合的一部分,所述解码包括:
根据与每个子集相关联的属性指示符检索每个子集的解码参数;以及
根据每个子集的检索到的解码参数对每个子集进行解码;
其中检索步骤包括:根据每个属性指示符检索多个解码参数,所述多个解码参数对应于解码过程的不同功能。
2.根据权利要求1所述的方法,其中所述多个子集包含经编码数据值,且其中所述方法还包括:
从所述数据值重新创建所述已压缩信息。
3.根据任一前述权利要求所述的方法,其中所述属性指示符集中的每个指示符与所述数据集的所述多个子集中的相应子集相关联。
4.根据任一前述权利要求所述的方法,其中多个所述指示符是相同的。
5.根据任一前述权利要求所述的方法,其中将所述经编码数据集划分为子集的层级体系。
6.根据任一前述权利要求所述的方法,其中通过对所述数据集的属性元数据子集进行单独解码来获得包含数据值而不是元数据值的子集的所述属性指示符,其中所述属性元数据子集是包括由所述属性指示符指向的所述解码参数的所述数据集的子集。
7.根据任一前述权利要求所述的方法,还包括:
获得与所述数据集的初始子集相关联的初始属性指示符,其中所述初始属性指示符是指向用于解码所述初始子集的解码参数的索引值;
根据所述初始属性指示符检索所述初始子集的初始解码参数;
根据所述初始解码参数对所述初始子集进行解码,其中所述初始子集包含所述数据集的所述多个子集的所述属性指示符。
8.根据任一前述权利要求所述的方法,其中所述解码参数包括量化参数或熵解码概率元数据或两者。
9.根据权利要求8所述的方法,其中所述熵解码概率元数据表示用于范围解码操作的累积分布函数。
10.一种对接收到的表示已压缩信息的经编码数据集进行解码的设备,所述设备包括被配置成执行根据权利要求1至9中任一项所述的方法的处理器。
11.一种将待压缩信息的二维阵列编码为经编码数据集的方法,所述方法包括:
对所述数据集的多个子集进行编码,其中所述子集是待单独编码的数据集的一部分,包括:
检索每个子集的编码参数;以及
根据每个子集的检索到的编码参数对每个子集进行编码;
其特征在于:
生成属性指示符集,所述指示符集中的每个指示符根据每个子集的所述检索到的编码参数而与所述数据集的子集相关联,其中每个指示符是指向用于编码的参数集的索引值,并且其中检索步骤包括:检索多个编码参数,所述多个编码参数对应于编码过程的不同功能。
12.根据权利要求11所述的方法,其中所述多个子集包含经编码数据值,使得能够从所述数据值重新创建所述待压缩信息。
13.根据权利要求11至12中任一项所述的方法,其中所述属性指示符集中的每个指示符与所述数据集的所述多个子集中的相应子集相关联。
14.根据权利要求11至13中任一项所述的方法,其中多个所述指示符是相同的。
15.根据权利要求11至14中任一项所述的方法,其中将所述经编码数据集划分为子集的层级体系。
16.根据权利要求11至15中任一项所述的方法,其中包含数据值而不是元数据值的子集的所述属性指示符被单独编码为所述数据集的属性元数据子集,其中所述属性元数据子集是包括由所述属性指示符指向的所述编码参数的所述数据集的子集。
17.根据权利要求11至16中任一项所述的方法,还包括:
根据检索到的初始编码参数对初始子集进行编码;
生成与所述数据集的初始子集相关联的初始属性指示符,其中所述初始属性指示符是指向用于编码所述初始子集的编码参数的索引值;
其中经编码初始子集包含所述数据集的所述多个子集的所述属性指示符。
18.根据权利要求11至17中任一项所述的方法,其中所述编码参数包括量化参数或熵译码概率元数据或两者。
19.根据权利要求18所述的方法,其中所述熵译码概率元数据表示用于范围译码操作的累积分布函数。
20.一种用于将待压缩信息编码为经编码数据集的设备,所述设备包括被配置成执行根据权利要求11至19中任一项所述的方法的处理器。
21.一种计算机可读介质,包括使处理器执行权利要求1至9或权利要求11至19中任一项所述的方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311713269.XA CN117811585A (zh) | 2017-12-06 | 2018-12-06 | 字节流及对其进行分级编码和解码的方法和设备、介质 |
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17386046.1 | 2017-12-06 | ||
EP17386046.1A EP3496403A1 (en) | 2017-12-06 | 2017-12-06 | Hierarchical data structure |
EP18386002.2 | 2018-02-08 | ||
EP18386002 | 2018-02-08 | ||
GB1812407.3 | 2018-07-30 | ||
GBGB1812407.3A GB201812407D0 (en) | 2018-07-30 | 2018-07-30 | Methods and apparatuses for encoding and decoding a bytestream |
GBGB1815437.7A GB201815437D0 (en) | 2018-09-21 | 2018-09-21 | Hierarchical data structure |
GB1815437.7 | 2018-09-21 | ||
PCT/GB2018/053548 WO2019111006A1 (en) | 2017-12-06 | 2018-12-06 | Methods and apparatuses for hierarchically encoding and decoding a bytestream |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311713269.XA Division CN117811585A (zh) | 2017-12-06 | 2018-12-06 | 字节流及对其进行分级编码和解码的方法和设备、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111684802A CN111684802A (zh) | 2020-09-18 |
CN111684802B true CN111684802B (zh) | 2023-12-22 |
Family
ID=64607029
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880088752.4A Active CN111699696B (zh) | 2017-12-06 | 2018-12-06 | 用于对字节流进行编码和解码的方法和设备 |
CN202311652468.4A Pending CN117676138A (zh) | 2017-12-06 | 2018-12-06 | 编码信号的方法、编码器、解码数据流的方法以及解码器 |
CN201880088739.9A Active CN111699695B (zh) | 2017-12-06 | 2018-12-06 | 用于对经编码数据集进行解码的方法、设备和存储介质 |
CN202311512007.7A Pending CN117544793A (zh) | 2017-12-06 | 2018-12-06 | 用于对字节流进行编码和解码的方法和设备 |
CN202311713269.XA Pending CN117811585A (zh) | 2017-12-06 | 2018-12-06 | 字节流及对其进行分级编码和解码的方法和设备、介质 |
CN201880088756.2A Active CN111684812B (zh) | 2017-12-06 | 2018-12-06 | 解码经编码二维数据流的方法及解码器 |
CN201880088741.6A Active CN111684802B (zh) | 2017-12-06 | 2018-12-06 | 用于对字节流进行分级编码和解码的方法和设备 |
Family Applications Before (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880088752.4A Active CN111699696B (zh) | 2017-12-06 | 2018-12-06 | 用于对字节流进行编码和解码的方法和设备 |
CN202311652468.4A Pending CN117676138A (zh) | 2017-12-06 | 2018-12-06 | 编码信号的方法、编码器、解码数据流的方法以及解码器 |
CN201880088739.9A Active CN111699695B (zh) | 2017-12-06 | 2018-12-06 | 用于对经编码数据集进行解码的方法、设备和存储介质 |
CN202311512007.7A Pending CN117544793A (zh) | 2017-12-06 | 2018-12-06 | 用于对字节流进行编码和解码的方法和设备 |
CN202311713269.XA Pending CN117811585A (zh) | 2017-12-06 | 2018-12-06 | 字节流及对其进行分级编码和解码的方法和设备、介质 |
CN201880088756.2A Active CN111684812B (zh) | 2017-12-06 | 2018-12-06 | 解码经编码二维数据流的方法及解码器 |
Country Status (4)
Country | Link |
---|---|
US (10) | US11089316B2 (zh) |
EP (6) | EP3721625A1 (zh) |
CN (7) | CN111699696B (zh) |
WO (6) | WO2019111013A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280365B (zh) * | 2017-09-19 | 2019-04-12 | 平安科技(深圳)有限公司 | 数据访问权限管理方法、装置、终端设备及存储介质 |
GB2596002B (en) * | 2019-02-13 | 2023-11-22 | V Nova Int Ltd | Object analysis |
CN109982086B (zh) * | 2019-04-10 | 2020-12-08 | 上海兆芯集成电路有限公司 | 图像压缩方法及其装置 |
GB201905400D0 (en) | 2019-04-16 | 2019-05-29 | V Nova Int Ltd | Video coding technology |
CN113906681B (zh) * | 2019-09-12 | 2022-10-18 | 深圳市大疆创新科技有限公司 | 点云数据的编解码方法、***和存储介质 |
CN114788283A (zh) | 2019-10-02 | 2022-07-22 | 威诺瓦国际有限公司 | 用于向后兼容的分级改进的嵌入式信令以及超分辨率信令的用途 |
GB202001839D0 (en) | 2020-02-11 | 2020-03-25 | V Nova Int Ltd | Use of tiered hierarchical coding for point cloud compression |
GB2608962A (en) * | 2020-04-14 | 2023-01-18 | V Nova Int Ltd | Transformed coefficient ordering for entropy coding |
CN111787323B (zh) * | 2020-05-23 | 2021-09-03 | 清华大学 | 一种基于对抗学习的可变比特率生成式压缩方法 |
GB2598701B (en) | 2020-05-25 | 2023-01-25 | V Nova Int Ltd | Wireless data communication system and method |
KR102356037B1 (ko) * | 2020-10-14 | 2022-02-07 | 성균관대학교산학협력단 | 다시점 360도 영상 스트리밍 방법 및 장치 |
CN112261023A (zh) * | 2020-10-15 | 2021-01-22 | 苏州浪潮智能科技有限公司 | 一种卷积神经网络的数据传输方法和装置 |
GB2601990B (en) | 2020-10-16 | 2024-06-19 | V Nova Int Ltd | Distributed analysis of a multi-layer signal encoding |
WO2022103171A1 (en) * | 2020-11-13 | 2022-05-19 | Samsung Electronics Co., Ltd. | Method and device of depth densification using rgb image and sparse depth |
GB2601368B (en) * | 2020-11-27 | 2023-09-20 | V Nova Int Ltd | Video decoding using post-processing control |
GB2601362B (en) * | 2020-11-27 | 2023-08-16 | V Nova Int Ltd | Video encoding using pre-processing |
US12047575B2 (en) * | 2020-12-03 | 2024-07-23 | Intel Corporation | Methods, apparatus, and articles of manufacture for multi-symbol equiprobable mode entropy coding |
US20220156322A1 (en) * | 2021-09-29 | 2022-05-19 | Intel Corporation | Graph reordering and tiling techniques |
GB2614054A (en) | 2021-12-17 | 2023-06-28 | V Nova Int Ltd | Digital image processing |
US20230247206A1 (en) * | 2022-02-03 | 2023-08-03 | Tencent America LLC | Methods, devices, and storage medium for multi-symbol arithmetic coding |
GB2614763B (en) | 2022-03-29 | 2024-05-01 | V Nova Int Ltd | Upsampling filter for applying a predicted average modification |
GB2611129B (en) | 2022-03-31 | 2024-03-27 | V Nova Int Ltd | Signal processing with overlay regions |
CN115114565B (zh) * | 2022-08-24 | 2022-12-27 | 启东晶尧光电科技有限公司 | 一种基于大数据分析的直线电机故障检测方法及*** |
GB202215675D0 (en) | 2022-10-21 | 2022-12-07 | V Nova Int Ltd | Distributed analysis of a multi-layer signal encoding |
CN117272938B (zh) * | 2023-11-22 | 2024-02-20 | 神思电子技术股份有限公司 | 一种用于文本生成的动态限定域解码方法、设备及介质 |
CN117294800B (zh) * | 2023-11-24 | 2024-03-15 | 深圳市资福医疗技术有限公司 | 基于四叉树的图像动态调节传输方法、设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067701A (zh) * | 2011-10-24 | 2013-04-24 | 捷讯研究有限公司 | 使用分区选择的有效图编码和解码 |
CN103733622A (zh) * | 2011-06-16 | 2014-04-16 | 弗劳恩霍夫应用研究促进协会 | 熵编码中的上下文初始化 |
CN103814574A (zh) * | 2011-09-23 | 2014-05-21 | 高通股份有限公司 | 用于视频译码的参考图像列表构造 |
CN103959787A (zh) * | 2011-06-24 | 2014-07-30 | 奥林奇公司 | 用于对图像编码和解码的方法、编码和解码设备以及相应的计算机程序 |
CN105052133A (zh) * | 2012-10-01 | 2015-11-11 | Ge视频压缩有限责任公司 | 将子块细分的推导用于来自基础层的预测的可伸缩视频编码 |
CN105393542A (zh) * | 2013-06-18 | 2016-03-09 | Vid拓展公司 | Hevc扩展的层间参数集 |
CN106170921A (zh) * | 2014-02-20 | 2016-11-30 | 古鲁洛吉克微***公司 | 涉及符号压缩的数据的源编码和解码方法及装置 |
CN106664424A (zh) * | 2014-01-03 | 2017-05-10 | 诺基亚技术有限公司 | 参数集编码 |
AU2017203354A1 (en) * | 2011-10-17 | 2017-06-08 | Kabushiki Kaisha Toshiba | Decoding device and decoding method |
CN107105295A (zh) * | 2012-07-02 | 2017-08-29 | 高通股份有限公司 | 用于高效视频译码(hevc)和扩展的视频参数集 |
WO2017195582A1 (en) * | 2016-05-13 | 2017-11-16 | Sharp Kabushiki Kaisha | Temporal sub-layer descriptor |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5228098A (en) * | 1991-06-14 | 1993-07-13 | Tektronix, Inc. | Adaptive spatio-temporal compression/decompression of video image signals |
WO1995014350A1 (en) * | 1993-11-15 | 1995-05-26 | National Semiconductor Corporation | Quadtree-structured walsh transform coding |
US5446806A (en) * | 1993-11-15 | 1995-08-29 | National Semiconductor Corporation | Quadtree-structured Walsh transform video/image coding |
US6028963A (en) * | 1996-06-17 | 2000-02-22 | Canon Kabushiki Kaisha | Image encoding based on judgement on prediction error |
JPH10215453A (ja) * | 1997-01-30 | 1998-08-11 | Sharp Corp | 動画像符号化装置および動画像復号装置 |
JP3213584B2 (ja) * | 1997-09-19 | 2001-10-02 | シャープ株式会社 | 画像符号化装置及び画像復号装置 |
CA2265089C (en) * | 1998-03-10 | 2007-07-10 | Sony Corporation | Transcoding system using encoding history information |
US6278715B1 (en) * | 1998-11-05 | 2001-08-21 | Qualcom Incorporated | System and method for reducing deinterleaver memory requirements through chunk allocation |
US20020044695A1 (en) * | 2000-05-05 | 2002-04-18 | Bostrom Alistair K. | Method for wavelet-based compression of video images |
US6654760B2 (en) | 2001-06-04 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | System and method of providing a cache-efficient, hybrid, compressed digital tree with wide dynamic ranges and simple interface requiring no configuration or tuning |
US7483581B2 (en) * | 2001-07-02 | 2009-01-27 | Qualcomm Incorporated | Apparatus and method for encoding digital image data in a lossless manner |
US6894628B2 (en) * | 2003-07-17 | 2005-05-17 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables |
US20060008009A1 (en) * | 2004-07-09 | 2006-01-12 | Nokia Corporation | Method and system for entropy coding for scalable video codec |
TWI433545B (zh) * | 2007-10-30 | 2014-04-01 | Nippon Telegraph & Telephone | 影像編碼裝置及影像解碼裝置 |
CN101588252B (zh) * | 2008-05-23 | 2011-07-20 | 华为技术有限公司 | 一种多点会议的控制方法及装置 |
US8634456B2 (en) * | 2008-10-03 | 2014-01-21 | Qualcomm Incorporated | Video coding with large macroblocks |
US8503527B2 (en) * | 2008-10-03 | 2013-08-06 | Qualcomm Incorporated | Video coding with large macroblocks |
US8194862B2 (en) * | 2009-07-31 | 2012-06-05 | Activevideo Networks, Inc. | Video game system with mixing of independent pre-encoded digital audio bitstreams |
US20110274162A1 (en) * | 2010-05-04 | 2011-11-10 | Minhua Zhou | Coding Unit Quantization Parameters in Video Coding |
HUE057597T2 (hu) * | 2010-04-13 | 2022-05-28 | Ge Video Compression Llc | Videó kódolás képek többes fa struktúrájú alosztásainak használatával |
EP2559166B1 (en) * | 2010-04-13 | 2017-11-01 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Probability interval partioning encoder and decoder |
CA2794771C (en) * | 2010-05-21 | 2016-03-29 | Research In Motion Limited | Methods and devices for reducing sources in binary entropy coding and decoding |
WO2012044104A2 (ko) * | 2010-09-30 | 2012-04-05 | 삼성전자 주식회사 | 계층적 구조의 심볼을 부호화하는 비디오 부호화 방법 및 그 장치, 계층적 구조의 심볼을 복호화하는 비디오 복호화 방법 및 그 장치 |
AU2011201344B2 (en) * | 2011-03-23 | 2013-06-13 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding video data |
US8977065B2 (en) | 2011-07-21 | 2015-03-10 | Luca Rossato | Inheritance in a tiered signal quality hierarchy |
US9129411B2 (en) | 2011-07-21 | 2015-09-08 | Luca Rossato | Upsampling in a tiered signal quality hierarchy |
US8531321B1 (en) | 2011-07-21 | 2013-09-10 | Luca Rossato | Signal processing and inheritance in a tiered signal quality hierarchy |
US8711943B2 (en) | 2011-07-21 | 2014-04-29 | Luca Rossato | Signal processing and tiered signal encoding |
US8948248B2 (en) | 2011-07-21 | 2015-02-03 | Luca Rossato | Tiered signal decoding and signal reconstruction |
US9584819B2 (en) * | 2011-10-24 | 2017-02-28 | Qualcomm Incorporated | Grouping of tiles for video coding |
US9510018B2 (en) | 2011-11-23 | 2016-11-29 | Luca Rossato | Signal analysis and generation of transient information |
CN103313046B (zh) * | 2012-03-06 | 2019-06-14 | 中兴通讯股份有限公司 | 一种残差的表示方法和熵编码输入装置 |
WO2013171168A1 (en) * | 2012-05-14 | 2013-11-21 | Luca Rossato | Encoding and decoding based on blending of sequences of samples along time |
KR102001415B1 (ko) * | 2012-06-01 | 2019-07-18 | 삼성전자주식회사 | 다계층 비디오 코딩을 위한 레이트 제어 방법, 이를 이용한 비디오 인코딩 장치 및 비디오 신호 처리 시스템 |
US9549182B2 (en) * | 2012-07-11 | 2017-01-17 | Qualcomm Incorporated | Repositioning of prediction residual blocks in video coding |
US9667994B2 (en) | 2012-10-01 | 2017-05-30 | Qualcomm Incorporated | Intra-coding for 4:2:2 sample format in video coding |
CN116347068A (zh) * | 2013-01-04 | 2023-06-27 | Ge视频压缩有限责任公司 | 高效可伸缩编码概念 |
US9578339B2 (en) * | 2013-03-05 | 2017-02-21 | Qualcomm Incorporated | Parallel processing for video coding |
GB2516826B (en) | 2013-07-23 | 2016-06-22 | Canon Kk | Method, device and computer program for encapsulating partitioned timed media data by creating tracks to be independently encapsulated in at least one media f |
US9401944B2 (en) * | 2013-10-22 | 2016-07-26 | Qualcomm Incorporated | Layered adaptive HTTP streaming |
US20150264404A1 (en) | 2014-03-17 | 2015-09-17 | Nokia Technologies Oy | Method and apparatus for video coding and decoding |
US9930342B2 (en) * | 2014-06-20 | 2018-03-27 | Qualcomm Incorporated | Systems and methods for signaling hypothetical reference decoder parameters in a parameter set |
US9762912B2 (en) * | 2015-01-16 | 2017-09-12 | Microsoft Technology Licensing, Llc | Gradual updating using transform coefficients for encoding and decoding |
EP3360330B1 (en) * | 2015-10-08 | 2021-03-24 | Koninklijke KPN N.V. | Enhancing a region of interest in video frames of a video stream |
US10819997B2 (en) * | 2016-01-20 | 2020-10-27 | Arris Enterprises Llc | Encoding video data according to target decoding device decoding complexity |
FI20165547A (fi) * | 2016-06-30 | 2017-12-31 | Nokia Technologies Oy | Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten |
GB2555788A (en) * | 2016-11-08 | 2018-05-16 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
WO2018135321A1 (ja) * | 2017-01-19 | 2018-07-26 | ソニー株式会社 | 画像処理装置および方法 |
-
2018
- 2018-12-06 EP EP18814995.9A patent/EP3721625A1/en active Pending
- 2018-12-06 WO PCT/GB2018/053555 patent/WO2019111013A1/en unknown
- 2018-12-06 EP EP18814998.3A patent/EP3721631A1/en active Pending
- 2018-12-06 EP EP18814996.7A patent/EP3721633A1/en active Pending
- 2018-12-06 WO PCT/GB2018/053554 patent/WO2019111012A1/en unknown
- 2018-12-06 CN CN201880088752.4A patent/CN111699696B/zh active Active
- 2018-12-06 CN CN202311652468.4A patent/CN117676138A/zh active Pending
- 2018-12-06 CN CN201880088739.9A patent/CN111699695B/zh active Active
- 2018-12-06 US US16/770,229 patent/US11089316B2/en active Active
- 2018-12-06 EP EP18814993.4A patent/EP3721632A1/en active Pending
- 2018-12-06 US US16/770,231 patent/US11575922B2/en active Active
- 2018-12-06 CN CN202311512007.7A patent/CN117544793A/zh active Pending
- 2018-12-06 US US16/954,050 patent/US11259037B2/en active Active
- 2018-12-06 CN CN202311713269.XA patent/CN117811585A/zh active Pending
- 2018-12-06 EP EP18814994.2A patent/EP3721624A1/en active Pending
- 2018-12-06 WO PCT/GB2018/053546 patent/WO2019111004A1/en unknown
- 2018-12-06 CN CN201880088756.2A patent/CN111684812B/zh active Active
- 2018-12-06 EP EP18814999.1A patent/EP3721626A1/en active Pending
- 2018-12-06 US US16/770,228 patent/US11297339B2/en active Active
- 2018-12-06 US US16/770,226 patent/US11743479B2/en active Active
- 2018-12-06 WO PCT/GB2018/053548 patent/WO2019111006A1/en unknown
- 2018-12-06 WO PCT/GB2018/053547 patent/WO2019111005A1/en unknown
- 2018-12-06 WO PCT/GB2018/053551 patent/WO2019111009A1/en unknown
- 2018-12-06 CN CN201880088741.6A patent/CN111684802B/zh active Active
- 2018-12-06 US US16/769,794 patent/US11601662B2/en active Active
-
2022
- 2022-03-25 US US17/704,454 patent/US11902551B2/en active Active
-
2023
- 2023-02-06 US US18/165,206 patent/US20230188736A1/en active Pending
- 2023-03-06 US US18/179,154 patent/US20230283791A1/en active Pending
- 2023-07-31 US US18/362,814 patent/US20240048741A1/en active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103733622A (zh) * | 2011-06-16 | 2014-04-16 | 弗劳恩霍夫应用研究促进协会 | 熵编码中的上下文初始化 |
CN103959787A (zh) * | 2011-06-24 | 2014-07-30 | 奥林奇公司 | 用于对图像编码和解码的方法、编码和解码设备以及相应的计算机程序 |
CN103814574A (zh) * | 2011-09-23 | 2014-05-21 | 高通股份有限公司 | 用于视频译码的参考图像列表构造 |
AU2017203354A1 (en) * | 2011-10-17 | 2017-06-08 | Kabushiki Kaisha Toshiba | Decoding device and decoding method |
CN103067701A (zh) * | 2011-10-24 | 2013-04-24 | 捷讯研究有限公司 | 使用分区选择的有效图编码和解码 |
CN107105295A (zh) * | 2012-07-02 | 2017-08-29 | 高通股份有限公司 | 用于高效视频译码(hevc)和扩展的视频参数集 |
CN105052133A (zh) * | 2012-10-01 | 2015-11-11 | Ge视频压缩有限责任公司 | 将子块细分的推导用于来自基础层的预测的可伸缩视频编码 |
CN105393542A (zh) * | 2013-06-18 | 2016-03-09 | Vid拓展公司 | Hevc扩展的层间参数集 |
CN106664424A (zh) * | 2014-01-03 | 2017-05-10 | 诺基亚技术有限公司 | 参数集编码 |
CN106170921A (zh) * | 2014-02-20 | 2016-11-30 | 古鲁洛吉克微***公司 | 涉及符号压缩的数据的源编码和解码方法及装置 |
WO2017195582A1 (en) * | 2016-05-13 | 2017-11-16 | Sharp Kabushiki Kaisha | Temporal sub-layer descriptor |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111684802B (zh) | 用于对字节流进行分级编码和解码的方法和设备 | |
US11632560B2 (en) | Methods and apparatuses for encoding and decoding a bytestream | |
WO2021000658A1 (zh) | 点云编解码方法、编码器、解码器及计算机存储介质 | |
KR102071764B1 (ko) | 영상 부호화, 복호화 방법 및 장치 | |
CN104704825B (zh) | 分段图像数据的无损压缩 | |
US10542267B2 (en) | Classification preserving image transform compression | |
JP2023543752A (ja) | 点群コーデック方法及びシステム、並びに点群エンコーダ及び点群デコーダ | |
Ibarria | Geometric prediction for compression | |
ABASS | PREDICTION OF PRESSURE DROP IN PACKED BED FOR WATER AND AIR SYSTEMS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |