CN111699695B - 用于对经编码数据集进行解码的方法、设备和存储介质 - Google Patents
用于对经编码数据集进行解码的方法、设备和存储介质 Download PDFInfo
- Publication number
- CN111699695B CN111699695B CN201880088739.9A CN201880088739A CN111699695B CN 111699695 B CN111699695 B CN 111699695B CN 201880088739 A CN201880088739 A CN 201880088739A CN 111699695 B CN111699695 B CN 111699695B
- Authority
- CN
- China
- Prior art keywords
- sub
- data
- values
- range
- probability
- 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 180
- 238000003860 storage Methods 0.000 title claims description 9
- 238000009826 distribution Methods 0.000 claims abstract description 200
- 238000005315 distribution function Methods 0.000 claims description 25
- 230000001186 cumulative effect Effects 0.000 claims description 23
- 230000001419 dependent effect Effects 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 71
- 230000008569 process Effects 0.000 description 66
- 230000000875 corresponding effect Effects 0.000 description 35
- 238000007906 compression Methods 0.000 description 17
- 230000006835 compression Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 10
- 230000011664 signaling Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 238000004088 simulation Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000013144 data compression Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 108091029480 NONCODE Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
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算法中,图像中的块以光栅模式布置。然后将这些块去量化。然后,使用例如小波或离散余弦变换对块进行域变换。
先前已经提出以分级方式对数据进行编码,以减小信号的总体数据大小。在这种编码技术中,残差数据(即纠正基础层中存在的低质量信息所需的数据)将以逐渐提高的质量级别使用。在WO 2013/171173中描述了这种分级技术,提出了信号的再现的分层层级体系。在此提出的技术中,质量的基本层表示第一分辨率的图像,而分层层级体系中的后续层是解码侧以更高的分辨率重构图像所需的残差数据或调整层。在WO 2013/171173 中提出了一种技术,所述技术构造每一层中的数据以利用残差层中的相关性,通过将值块变换成方向分量集来减少信息熵。这种分级技术中的每一层,尤其是每个残差层,通常是具有许多零值元素的相对稀疏的数据集。
在较早提交的专利申请GB1812407.3中还公开了分级的、分层的数据结构的概念。GB1812407.3和WO 2013/171173均通过引用整体并入。
先前已经提出使用四叉树来存储稀疏矩阵。所述技术建立树来存储矩阵的空间结构。当考虑用于使用稀疏矩阵重构图像的已知格式的任何可能实现时,每种格式都需要大量的内存使用。展示效率增益的每种已知格式都需要将大量数据存储在内存中,以正确地重构矩阵中数据的定位和值。
行业目标仍然是减小存储或传输的图像和视频数据的大小,并减少图像重构中对稀疏数据集进行编码或解码的处理时间和内存利用率。还需要编码和解码技术,其有助于进一步减少表示经压缩信息以及解码器解压缩所需的元数据两者所需的数据量。
发明内容
根据本发明的第一方面,提供了一种对接收到的经编码数据集进行解码的方法,所述经编码数据集表示信息,所述信息包括具有在值范围内的值的多个数据元素且已借助于熵编码进行压缩,所述方法包括:接收包括所述经编码数据集和带状分布数据集的数据,其中所述带状分布数据集包括一对或多对值,每对包括子范围值和概率值,所述子范围值指示所述值范围的相应子-范围,所述概率值表示所述多个数据元素中的一个数据元素的值在相应子范围内的概率;以及借助于基于由所述带状分布数据集定义的概率分布,对所述经编码数据集执行熵解码来重构已经被压缩的所述信息。
发明人已经认识到,可以通过基于分布数据集进行译码来改进使用熵译码对数据进行编码和解码的过程,所述分布数据集本身在大小上小于统计数据,所述统计数据通常被作为描述熵译码中所述数据内的值的分布的熵函数。通过使借助于熵解码对经编码数据集进行解码的过程基于带状分布数据集,而非基于已经被压缩的信息的完整概率分布数据,解码器可以对获得的或接收到的经编码数据进行解压缩,而大大降低对内存、存储和带宽的要求,否则会在获取完整统计数据集的过程中对其进行消耗。
在一些实施例中,诸如在其中所用的熵译码的方法是Huffman法的实施例中,由经编码数据包括的数据符号与多个数据元素中数据元素可取的值之间存在对应关系。然而,在其他实施例中,可能不存在一对一的对应关系,且可以使用其他形式的熵译码。在其中存在这种对应关系的方法中,经编码数据通过包括多个符号,其中每个符号对应于数据元素中的一个或多个的值,所述对应关系已通过熵编码进行配置,所述熵编码根据表示数据元素的值的相对概率或分布的编码概率函数或“熵函数”对数据进行编码。通常,熵编码将每个数据元素分配或替换为符号,使得符号的长度(或符号所占用或需要的数据量)以取决于相对频率的方式分配给或替换数据元素,所述相对频率即多个数据元素中具有相同值的数据元素的概率。优选地,这是相反的相关性,使得更长或更大的符号对应于不太频繁出现的数据元素值。
通常以产生作为由解码器进行的熵编码的输出的数据集或符号的流或其他序列的形式来接收经编码数据集。带状分布数据内的值通常呈升序子范围值的顺序。然而,也有可能成对的子范围和概率值在接收到的带状分布数据中可能未按序布置,并且可以通过解码器本身对值进行排序或隐式排序来获得用于熵解码的概率分布。
可以将带状分布数据集的接收视为接收一个或多个值(子范围值),每个值表示子范围的宽度,并且视为针对每个宽度值和高度值(概率值)接收。例如,每个值可以对应于子范围的上边界或下边界。可以从子范围和所述子范围的邻近或连续子范围的边界值 (他们是上带值或下带值)推断出子范围的上边界和下边界。优选地,上带由每个子范围值给出。在一些实施例中,子范围值可以被视为“连接点”,原因在于他们表示表示带状分布数据的直方图上柱条边缘所在的点(或至少是值轴点的范围)。
替代地,每个值可以指示所述值是子范围中的中心值或中间值。然后可以根据已知的或接收到的子范围中间值组合地计算每个子范围的下带和上带的值。
优选地,将数据元素可以取的值的范围分为两个或更多个连续的子范围。子范围可以被视为值范围内的“带”,因此将接收到的数据描述为带状分布数据。子范围可以具有不同的最小值或下边界,例如他们可以是连续的子范围集。然而,在一些实施例中,带状分布数据可以表示累积分布函数,并且在这种情况下,多个子范围可以具有相同的最小值或下边界以及不同的最大值或上边界。
在典型的实施例中,范围内的值是离散的,并且优选地对应于整数值。然而,分数值是可能的。其中使用离散值的示例应用是以压缩形式传输图像中像素的像素值。
尽管带状分布数据中每对值中的概率值表示数据元素的值在子范围内的概率,但是概率值可能不是已经被压缩的信息中所述子范围内的数据元素的实际数量或实际概率的准确计数。通常,所表示的概率是真实计数或概率的近似值。然而,这不应排除所表示的概率与在多个数据元素中出现的给定子范围中的值的真实概率完全相等的可能性。否则,概率值可以被视为频率值,或被视为表示多个数据元素中一个数据元素的值在相应子范围内的计数。
如上所述,带状分布数据可以表示为直方图,在所述直方图中所述带状分布数据包括成对的子范围值和概率值,所述成对的子范围值和概率值可以绘制在直方图的x轴(数据元素值轴)和y轴(概率轴)上。然而,不需要在编码或解码过程期间以图形方式表示此方法中涉及的任何分布数据。每对值可以被视为指示矩形的宽度和高度,所述矩形的面积与变量(是具有在值的子范围中的值的那些数据元素)的频率成比例,并且所述矩形的宽度与分组间隔(是子范围的限度)相等。
如上所述,可以使用任何可用的熵解码方法来执行熵解码。优选地,使用范围解码器。算术解码和Huffman解码也是可能的。
通常,带状分布数据集包括多个所述若干对值。将理解,对于许多类型的分布,数据元素值的概率可以用增加数量的成对值来更准确地表示,这对应于表示所述分布的更离散的直方图。
在这些实施例中,优选地子范围中的两个或更多个在限度上是不相等的。离散值的子范围的限度是子范围中的最低值与最高值之间(包括最低值和最高值)的限度。这通常是指概率密度函数型分布,而不非累积分布。在其中带状分布数据表示累积概率函数的实施例中,限度上不相等的两个或更多个子范围通常是指上边界与紧接在前面的子范围的上边界相隔不相等的限度的子范围中的两个或更多个。因此,在非累积分布函数中,对于子范围中的两个或更多个,子范围中的值的数量可以不同,以使得子范围中的两个或更多个的大小不同。在累积函数中,这可以意指对于子范围中的两个或更多个,不在紧接在前面的子范围(下一最大的子范围)内的子范围的值的范围是不同的。
指示不同大小的子范围的带状分布数据的接收可以表示被优化以更准确地反映概率分布数据(即数据元素值的实际分布函数)的带状分布数据。优选地,子范围中的两个或更多个中的每一个的限度反过来取决于对应于相应子范围的值范围的区中的概率密度。这种相反的相关性通常被配置成使得子区在具有较低概率密度的范围的区中具有更大的限度。尽管范围内的值通常是离散的,但此处使用的术语概率密度是指与连续变量的概率密度类似的量。也就是说,密度是指在值范围内所取的每个值的平均概率。也就是说,对于范围具有给定大小的区,子范围的限度通常在其中数据元素的值在所述区内的总体概率较低的区中较大,且当数据元素的值在所述区内的总体概率较高时较小。因此,接收到的带状分布可以经优化,以便更准确地反映在数据中更频繁出现的值的真实统计分布,和/或不太准确地反映不太频繁出现的值的真实统计分布。因此,通过根据概率分布配置子范围的布置优化了在压缩程度与编码统计所需的数据量之间通过所述方法实现的折衷。
为了使解码器对信息进行解码,通常需要分布函数或熵函数,基于所述分布函数或熵函数对信息进行编码以进行重构。因此,所述方法通常涉及根据带状分布数据计算概率分布的步骤。这可以以多种方式中的任何一种来执行。优选地,过程包括将可以被视为或表示分布函数的样本的带状分布数据变换成表示在值范围中的每个值的概率值的或包括可以从中推断出这些概率值的信息的函数或数据集。因此,在一些实施例中,方法还包括根据带状分布数据集计算概率分布。
在一些实施例中,解码器可以被配置成接收表示累积分布函数的样本值的带状分布数据。在这些实施例中,解码器可以被配置成根据那些累积分布函数值以概率密度函数的形式重构概率分布。因此,在一些实施例中,带状分布数据表示带状累积分布函数,且计算概率分布可以对应地包括将带状分布数据变换成表示概率密度函数的数据。
优选地,计算概率分布包括将预定概率函数应用于带状分布数据的每个子范围。概率分布的计算通常是指分别将表示子范围和那些子范围的概率的x和y值集转换成表示子范围中的每个值的概率的函数。通常,由于通过从针对所述子范围接收到的单个概率值中生成在子范围中的对应多个值的多个概率而引入的不准确性,概率分布将是可能与由数据元素保持的值的真实统计分布不同的近似值。在典型的实施例中,已经借助于使用与解码器相同的概率分布对数据元素进行熵编码来生成经编码数据,其中已经根据相同的带状分布数据计算出公共概率分布。因此,对数据进行编码通常将包括以下类似步骤:根据带状分布数据计算概率分布,以便产生用于产生经编码数据的熵编码的概率分布。通常,编码器和解码器两者为此使用相同的预定函数。因此,编码器和解码器可以仅通过发送包括数对概率值和子范围值的、需要的数据远少于计算得到的概率分布(或呈概率分布数据形式的真实分布)的带状分布数据集来使用描述在范围内的所有值的近似概率的相同函数,而不必传输所有概率值,这样会具有高带宽成本。
预定概率函数通常是矩形函数或三角形函数。因此,描述概率的个别子范围内的变化的函数可以假定为采取特定形式,诸如仅在每个子范围内具有恒定值(矩形函数)或在所述子范围内具有线性递增或递减值(三角函数)。取决于分布数据,各种不同的预定概率函数可能是适当的,并且可以使得真实统计数据与根据带状分布数据计算得到的近似概率分布之间的偏差最小化。矩形函数是优选的,因为所述函数是优选的,因为所述函数在计算上易于应用并且不需要在带状分布数据中用信号通知附加值。三角函数方法也可以应用预先配置的或硬译码的梯度值,或者应用梯度值,所述梯度值在子范围中的一个、多个或全部的带状分布数据中一起或单独地用信号通知。将理解,例如,用信号通知不同子范围的不同梯度将增加带状分布数据集所需的数据。还设想除了上述矩形函数和三角函数之外的其他函数。
如上所述,在一些实施例中,带状分布数据集对应于累积分布函数。在这种情况下,不同的子范围可以共享最小值或下边界,并且可以具有不同的最大值或上边界。因此,对于子范围,它对应于多个数据元素中的一个数据元素的值小于或等于相应子范围的上边界的概率。在一些实施例中,由带状分布数据包括的概率值被提供为邻近子范围的概率值之间的差,使得每个子范围的实际概率值可以由执行所述方法的解码器例如使用前缀和来计算。这种方法的优点在于,如果将表示概率值的值表示为差,则值的大小(即,用信号通知它们所需的数据量)可能会较小。在这种方法中,对应于累积分布函数的带状分布数据集是有利的,因为这种函数必定是单调的,因此不必用任何值来用信号通知 +/-号以使解码器知道概率值。因此,在其中每个概率值包括对应子范围的概率与连续的优选地在前的子范围的概率之间的差的实施例中,使用累积分布避免了用信号通知符号位。有利地,这进一步减少了带状分布数据所需的数据。
在一些实施例中,所述方法还包括对于所述子范围中的至少一个,基于所述带状分布数据集,计算多个频率值,以便获得经编码数据的概率函数,所述多个频率值中的每一个表示所述多个数据元素中值等于所述子范围中的相应值的数据元素的计数。创建具有更多数量的x值的概率函数的方法可以被视为高分辨率函数,并且可以提供以下优点:所生成的函数更可能表示数据元素中值的实际概率。然而,由于计算的附加步骤,例如,在概率值之间内插函数,此方法可能会在解码器上带来附加的计算开销。通常,编码器需要执行计算或内插以便使用与解码器相同的计算技术或函数来执行编码,并且使得编码器也引起计算成本。然而,借助于更准确地表示数据的真实统计分布,此方法可能具有增加压缩程度的有利结果。
通常对多个子范围或优选地对所有子范围执行此计算。然而,作为极端实例,也可以使用包含比所述范围中值的数量少一个子范围的带状分布数据来执行此操作。在那种情况下,只需要细分直方图中可以表示数据的一个柱条(计算所述子范围中值的两个概率值),以便达到“连续”(在范围中每个值的一个频率值的意义上)分布。如上所述,通常借助于内插法来执行计算。就这些频率值中的每一个是计算值来说,多个频率值通常表示数据元素的计数。优选地,它是一个估计值,因此可能是一种准确的表示形式(等于数据条带划分之前的实际值),但通常是不精确等于计数值的近似值。在此计算之后,优选地用获得的概率函数来执行熵解码。
在一些实施例中,带状分布数据集定义Laplace分布且包括一对表征Laplace分布的值,其中子范围值对应于或是定位参数μ,且概率值对应于或是尺度参数b。在方法的一些应用中,数据元素通常符合(或近似符合)Laplace分布。例如,对于典型的图像数据通常是这种情况,如与本公开稍后所述的方法一起使用。因此,可以借助于两个参数对这种分布进行参数化表征,由此为其发送单个子范围和概率值(特别是分布)。结合起来,这两个参数定义了子范围和数据元素的值在所述子范围中的概率。具体地,根据由这两个参数表征的Laplacian,可以通过对子范围的边界之间的函数进行积分来从数学上推断出数据元素的值在所述范围内的任意定义的子范围之间的概率。
在一些实施例中,对应于带状分布数据的带状直方图中子范围的宽度及其面积的变化可以根据参数μ和b数学地或启发式地定义,其方式为在相同的参数下,使得带状直方图与Laplacian的分散尽可能小。除了根据数据元素对μ和b进行全局估计外,这可能不涉及其他经验数据。一旦宽度固定,就可以改变面积,由此消除它们与初始Laplacian ansatz的关系,以便适合根据经验获得的信息的非Laplacian分布。然而,在这种实施例中,然后通常要求传输或以其他方式用信号通知y值。相反,如果它们恰好对应于选定的一对μ和b值,则有可能单独用信号通知作为统计元数据的这两个参数,由此通过与编码器中使用的相同技术在解码器处生成相同的x和y值。然而,关于Laplacian参数化的使用,应注意的是Laplacian分布沿x轴延伸到+/-无穷大。由于这个原因,优选地,所述方法使用的数学/启发式定义,并且可选地,元数据包括x轴截断以便使范围是有限的。
在典型的实施例中,数据元素是定义元数据(拓扑、节点顺序)的树节点符号和/或定义树数据结构的数据的数据符号。例如,在涉及使用树结构或树结构的层级体系对数据进行编码的压缩方案中,所述方法可以与此方法结合使用。具体地,在树结构上使用熵编码(优选地可以是稀疏化数据结构)可以减少带宽、内存、存储以及传输或存储例如相关信息所需的处理。所述方法通过允许将熵编码和解码应用于经压缩的树结构或包括表示这种结构的数据子集的数据集或流,而解码器不必获取定义由树数据结构包括的数据元素的分布的完整统计数据,来进一步改进此方法。
在优选的实施例中,带状分布数据集被接收为与接收到的经解码数据集相关联的元数据。例如,带状分布数据可以被接收为可以在包括经编码数据的流前面的报头。
在各种实施例中,待压缩的信息中的数据元素可以各自包含或指示多于一个的值。例如,在数据元素对应于图像的两个像素的情况下,每个像素可具有两个值,例如表示所述像素的“红色”和“绿色”,并因此指示2D颜色空间内的位置。在这种情况下,概率的分布可以表示为表面图,其中两个值范围可以由数据元素在两个轴上保持,且由这些轴定义的平面或2D数组中的位置所定义的值组合的概率值可以由数据元素在第三轴上取值。因此,在一些实施例中,值范围是第一值范围,且多个数据元素中的每一个包括在第二值范围内的第二值,且其中所述带状分布数据集包括一个或多个三个值的集合,每个三个值的集合包括第一子范围值、第二子范围值和概率值,所述第一子范围值指示所述第一值范围的相应子范围,所述第二子范围值指示所述第二值范围的相应子范围,所述概率值表示所述多个数据元素中的一个数据元素具有在第一范围的所述相应子范围内的第一值且具有在第二范围的所述相应子范围内的第二值的概率。可以通过编码器以与先前描述的一维值范围相同的方式产生带状分布数据来以相同方式对此二维值空间分布执行条带划分。类似地,数据范围可以由解码器以相同的方式使用,并且用于熵编码和解码。数据不限于具有一维或二维、值或范围。实际上,数据元素可以各自包括第三值(表示 RGB颜色空间中的值)或其他值。这些都可以由编码器和解码器类似地处理。
上面已经指出,用减少的带状分布数据集表示定义信息中的值分布的统计数据可以有利地节省数据需求。已发现带状分布数据中的带数(即子范围)对于实现这一点是重要的。在优选的实施例中,带状分布数据集包括对应于15个子范围的15对子范围和概率值。已发现具体地使用15个子范围是最佳的。这是因为使用较大的子范围会增加带宽和处理成本,因为这需要发送和接收更多的数据。另一方面,使用较小的子范围会增加 Kullback-Leibler散度,Kullback-Leibler散度是带状分布数据和概率分布数据之间的差的度量,准确地表示了压缩信息的统计数据。然而,设想子范围的数量可以在13至17的范围内,或更优选地在14至16的范围内。
使用预定或不变数量的子范围也是有益的,因为它允许执行解码而无需用信号通知或接收子范围的数量。因此,解码器可以执行解码过程而不必接收将具有附加带宽成本的此附加信息。
根据本发明的第二方面,提供了一种解码器设备,所述解码器设备被配置成执行根据第一方面所述的方法。
根据本发明的第三方面,提供了一种计算机可读存储介质,其上存储有被配置成用于执行根据第三方面所述的方法的程序代码。
根据本发明的第四方面,提供了一种压缩信息以便获得经编码数据集的方法,所述信息包括具有在值范围内的值的多个数据元素,所述方法包括:获得概率分布数据,所述概率分布数据包括多个概率值,对于所述值范围中的每一个,所述概率值表示所述多个数据元素中的一个数据元素的值等于相应值的概率;定义所述值范围的一个或多个子范围;对于所述一个或多个子范围中的每一个,计算概率值,以便获得带状分布数据集,所述概率值表示所述多个数据元素中的一个数据元素的值在相应子范围内的概率,所述带状分布数据集包括一对或多对值,每对包括指示所述值范围的相应子范围的子范围值和所述相应子范围的概率值;以及基于所述带状分布数据集,对所述多个数据元素执行熵编码,以便获得经编码数据集。通过这种方式,可以将包括定义如何在数据元素中分配值的完整统计数据的概率分布数据集转换成在大小上远小于概率分布集同时还继续提供所述分布的指示的带状分布数据集,尽管此指示的精度可能会降低。
所述方法还包括发送或存储所述经编码数据集和带状分布数据,使得所述带状分布数据与所述经编码数据集相关联。然后,诸如被配置成符合根据第一方面所述的解码的计算装置的接收者可以使用带状分布数据来对经编码数据进行解码。
所述方法还包括定义所述值范围的多个子范围,使得所述带状分布数据集包括多个所述若干对值。可以执行子范围的这种定义,使得所定义的子范围中的两个或更多个不相等且限度不相等。如本公开中较早提到的,正是这种能力允许进一步优化编码和解码的效率。
具体地,在一些实施例中,执行定义所述多个子范围,使得所述子范围中的两个或更多个中的每一个的限度反过来取决于对应于所述相应子范围的所述值范围的区中的概率密度。
在优选的实施例中,执行定义所述多个子范围,使得对于所述值范围内给定大小的区,在其中所述多个数据元素中的一个数据元素的值在所述区内的概率较大的区内,子范围的数量较大,且在其中所述多个数据元素中的一个数据元素的值在所述区内的概率较小的区内,子范围的数量较小。此处所指的区意指范围的一部分,给定大小可以是范围的任何给定比例且不必是任何特定大小。有利地,子范围的实体或子范围边界的密度在包含更多可能值的范围的部分中较大,而在包含更少可能值的范围的部分中较低。此处密度可以被视为在所述范围的给定区内子范围紧靠在一起或紧密地定位的程度的度量。换句话说,密度对应于平均“范围的给定部分内的子范围的数量”的量度。借助于这种特定的优化技术,编码器可以产生带状分布数据,所述带状分布数据使带状分布数据表示数据的真实统计数据的准确性最大化,同时使所述带状分布数据需要包括的值的数量最小化。
在一些实施例中,带状分布数据是借助于涉及初始子范围的中间计算步骤获得的。在这种实施例中,定义多个子范围包括:定义具有相等限度的多个初始子范围;以及计算对所述初始子范围的一个或多个边界的调整,以便获得定义多个子范围的经调整边界集,所述多个子范围中的两个或更多个在限度上是不相等的,由此定义所述多个子范围。多个初始子范围的数量可以大于带状分布数据中使用的子范围的数量。优选地是这种情况,因为这样可以允许由于基于更大数量的初始子范围值进行所述计算而更有效且更准确地计算带状分布数据的概率值。初始子范围的数量可以比最终子范围的数量大例如2倍、3倍、10倍、100倍或1,000倍,或大约这些倍数。例如,在值范围内通常有32,000个值,且在带状分布数据中有10,000个初始子范围和15个子范围。优选地,通过将范围划分为预定数量的初始子范围来定义初始子范围。
将较大数量的初始子范围转换成15个子范围,或任何其他减少数量的子范围通常涉及优选地在子范围上以邻接的方式执行的聚类或合并操作。减少子范围的数量的此操作可以在单个操作中执行,或者可以执行多次,即作为多个操作,优选地是一组递归操作。例如,数量可以从10,000减少到1,000,然后从1,000减少到15,或者可以从10,000减少到9,999,然后从9,999减少到9,998,依此类推,或者可以从.10,000减少到15。
可以选择或配置初始子范围的数量,使得范围中的值的数量可以被初始子范围的数量整除而不会剩余。替代地,初始子范围的大小可以大致相等,也就是说,如果范围内的值的数量不能完全被初始子范围的数据量整除,则它们可能包含尽可能相等的值的数量。
在其中概率分布数据表示累积分布函数的实施例中,所述方法可以包括定义多个初始子范围,所述多个初始子范围具有以相同限度分开的上边界,也就是说在累积概率函数的情况下,子范围中的“限度”是指从其后的或不包括在紧接在前面或更小的子范围的第一或最小值到上边界或相应子范围中包括的最大值的限度。
优选地,计算所述调整,使得取决于概率分布来调整或可以取决于概率分布来调整所有边界。通过调整一些边界而不调整其他边界,可以实现有益的效果,这取决于特定的分布数据。在那些具有特别高或低概率的范围的区中可能会实现更大的益处,因为正是那些区通过分别用较小和较大的子范围表示来最大程度地提供前述优化。
优选地,通过调整多个初始子范围中的每一个的边界来实现借助于调整边界定义的多个子范围,所述边界是在带状分布数据中表示的子范围。
通常,经计算的调整包括以下中的任一项:更改初始子范围的边界的范围内的位置;移除初始子范围的边界,以便将两个初始子范围合并成单个子范围;以及***边界,以便将初始子范围分为两个子范围。位置通常意指在边界所对应的范围内的值。也就是说,改变位置通常对应于改变子范围中的一个或多个的最大值和/或最小值。将理解,如果在调整操作中处理的初始子范围是范围中的“最左边”(可以理解为包含范围中的最低值),则除非添加了新的子范围,并且其本身成为新的最左边的子范围,否则通常无法调整所述子范围的下边界。类似地,如果调整了非最左子范围的下边界或最右子范围的上边界,则通常有必要同时调整所讨论的子范围的相邻子范围,或者子范围及其相邻子范围将重叠。
优选地,一旦确定了子范围边界,就可以计算那些子范围的概率值。优选地,计算所述多个子范围中的每一个的概率值包括:对于子范围中的每一个,根据由所述概率分布数据包括的所述概率值的对应于在所述相应子范围内的所述值的相应子集,计算所述多个数据元素中的一个数据元素的值在所述相应子范围内的概率。因此,可以使带状分布数据的概率值基于概率分布数据或值的真实分布。这可能会在带状分布数据中更准确地反映真实统计数据,但通常由于需要处理子范围内的所有个别概率值而增加计算成本,并且这样做可能潜在地必须处理多个子范围内的多个数据元素。
根据带状分布数据计算概率值的另一方法涉及使用初始子范围的概率值。因此,所述方法还可以包括:对于多个初始子范围中的每一个,计算初始概率值,所述初始概率值表示多个数据元素中的一个数据元素的值在相应的初始子范围内的概率,其中根据多个初始概率值执行计算子范围的概率值。此过程可以可视化为生成由相等大小的值组(相等的初始子范围)组成的直方图,其中概率值,即每个相等大小的组的直方图柱条的高度,表示数据元素的数据值在组中的概率。因此,可以根据初始子范围的初始概率值计算带状分布数据的每个子范围的概率的总和或平均值,诸如均值。例如,可以计算对应于子范围或在子范围内的初始概率值的总和或平均值,以便获得子范围的概率值。例如,这可以通过找到初始概率值的分段线性分布来执行。与基于分布数据中的概率值中的个别值进行带状分布数据的计算相比,这是计算成本较低的方法。
通常,借助于迭代计算和/或借助于动态编程执行定义所述多个子范围。例如,当从均等划分范围的多个初始子范围开始时,可以使用迭代过程来转变、添加或删除初始子范围的边界,其中,重复任何或所有步骤,以便增加指示具有高概率密度的范围的部分的子范围的数量,并减少指示具有低概率密度的部分的子范围的数量。可以通过成本函数和成本函数的导数来控制迭代。可以在迭代方案中并入用于找到成本函数的局部最小值的众所周知的数值分析技术。
作为此迭代方法的替代或补充,可以在调整子范围的边界时使用动态编程。可以借助于将计算带状分布数据中多个子范围中的带状分布数据中多个子范围的边界的任务划分为多个子问题,然后递归地找到这些子问题的最佳解决方案,来朝上述配置优化定义子范围的值的位置。
优选地,所定义的所述值范围的子范围的数量为15,使得由带状概率数据包括的成对的子范围和概率值的数量为15。因此,编码器可以被配置成产生包括关于第一方面所描述的最佳的多个子范围的带状分布数据。
根据本发明的第五方面,提供了一种编码器设备,所述编码器设备被配置成执行根据第四方面所述的方法。
根据本发明的第六方面,提供了一种计算机可读存储介质,其上存储有用于执行根据第四方面所述的方法的程序代码。
根据本发明的第七方面,提供了一种***,所述***包括根据第二方面所述的解码器设备和根据第五方面所述的编码器设备,其中所述解码器设备适于从所述编码器设备接收包括经编码数据和带状分布数据的数据。解码器设备可以适于直接或间接地接收所述数据。这可以经由数据连接网络传输,或者可以借助于存储介质接收。
附图说明
图1是示出在根据本发明的第一示例方法中使用的多个数据元素的值分布的曲线图;
图2是示出表示根据第一示例方法的从图1中表示的概率分布数据获得的带状分布数据的直方图的图;
图3是说明根据本发明的第二示例方法所包括的编码步骤的流程图;
图4是示出通过根据本发明的第二示例方法编码的多个数据元素的概率分布数据的曲线图;
图5是示出表示在根据本发明的第二示例方法期间生成的初始子范围和对应的概率值的直方图的图;
图6是示出表示通过根据本发明的第二示例方法获得的带状分布数据的直方图的图;
图7是说明根据本发明的第三示例方法使用的累积分布函数的曲线图。
具体实施方式
参考图1和图2,现在描述对信息集合进行编码和解码的第一示例方法。待压缩的信息集合(未示出)包括具有值的多个数据元素。在本实例中,每个数据元素表示一个像素,并且具有表示所述像素的像素值或强度值的值。为了简单起见,在当前情况下,这可以被视为灰度图像,其中每个像素的值可以在0(对应于零强度,或白色像素)与32,000 (表示黑色)之间。然而,将理解,根据本发明,待压缩的信息可以是多种形式中的任何一种,并且仅出于示例性目的选择了当前情况的图像。
图1中的曲线图示出图像中像素所保存的值的分布采用最大的Laplace函数的形式,其中最大值对应于图像中最大数量的数据元素(像素)所保持的像素值,沿着范围的一半在102处指示。
在本实例中,数据元素所取的值可以是离散的,并且具体地由0到32,000之间的整数组成。为了简化说明,图1中的曲线图将分布描述为一条平滑线。然而,这不应视为指示对应于标记为V的轴线的值本质上是连续的。
编码器装置获得概率分布数据101,并将范围划分为多个子范围。这可以被视为将概率分布函数101中的32,000个柱条(如上文所述,未个别示出)分组为数量减少的区间。在本实例中,编码器装置被配置成将范围划分为15个区间或子范围。
然后,编码器装置可以针对15个子范围中的每一个计算概率值,所述概率值表示多个数据元素中的给定一个数据元素的值在相应子范围内的概率。这是通过根据落入每个区间的值的概率分布函数101计算概率值的总和来执行的。因此,由于成对的子范围值(Vi)和相关联的概率值(Pi)集,有效地生成了具有对应于所定义的子范围的柱条的直方图2201。
因此,产生带状分布数据2201。在当前情况下,这包括15对子范围和概率值。例如,在2202处指示的子范围是最低子范围。第一子范围2202的限度是0至2,133。因此,第一子范围2202的最小值或下边界是0,而所述子范围的最大值或上边界是2,133。每个子范围的值(Vi)作为子范围值存储。第一子范围2202的子范围值V1是2,133。也可以存储第一子范围2202的下边界,即0。然而,在本实例中,仅使用上边界来定义子范围,并且单独地用信号通知将重构经压缩数据的解码器装置,或者所述装置以其他方式预先确定或知道最早子范围2202的下边界是0。类似地,根据待压缩的信息的性质,最低子范围的下边界,即值范围的最小值,可以在其他示例中取其他值。
由于子范围是连续的,因此可以从每个子范围前面的子范围的上边界推断出图2中所示的第二子范围和后续子范围的下边界。
最低子范围2202的概率值P1是通过将来自0至2133(包括两端值)的所有值的概率分布函数101的概率值相加计算得出的。可以看出,由于关于中心子范围2203对称的Laplace分布的形状,在带状分布数据2201中的所有子范围中,最低的2202和最高的2204具有最低的概率值(P1,P15),并且中心或中间子范围2203具有最大的概率值P8。
然后,编码器装置使用图2中示出的带状分布数据对构成待压缩图像信息的多个数据元素执行熵编码。具体地,带状分布数据被视为熵函数,熵编码器使用所述熵函数确定如何将输入图像信息转换成输出位流。
众所周知,熵编码通过利用待压缩的具有不同值的数据集的数据元素的概率的差来实现数据压缩。将了解的是,在本实例中,由于借助于带状分布函数向熵编码器指示这些概率差来实现数据压缩。然而,还将了解的是,由于将概率分布数据101分组到子范围 2202中,概率分布信息中的一些丢失。这意指,在给定的子范围内,熵编码器没有像概率分布数据101将被用作熵函数那样准确地指示值在数据集中出现的所述子范围内的概率的差。因此,条带划分过程,即增加数据集的概率信息的离散度的过程,很可能导致熵编码器实现的压缩程度降低。然而,有利的是,与概率分布数据101相比,带状分布数据集2201的大小小得多,即需要的数据少得多,因为所述带状分布数据集包括15对整数,而所述概率分布数据需要32,000对整数。因此,可以看出,与使用完整统计数据 101的方法相比,定义有关以带状分布数据形式压缩的信息的统计信息可以有益地节省带宽、内存和计算机处理资源。与使用带状分布数据2201而不是完整概率分布数据统计信息101压缩数据而导致的不利压缩损失相比,已示出此效果更加显著。
在本实例的变型中,在使用带状分布数据对多个数据元素进行编码之前,可以将其他步骤应用于所述数据。在所示的实例中,带状分布数据2201的直方图表示指示熵函数已作为阶跃函数有效地输入到熵编码器,所述阶跃函数即其中给定子范围中的所有值均被视为在多个数据元素中出现的可能性相同的函数。这是有利的,因为对于编码器和解码器,将成对的概率和子范围值转换成这种函数在计算上是简单的,并且还因为仅需要为每个子范围定义一对数字,这意指使带状分布数据集的大小最小化。
然而,在其他变型中,其他数学函数可以应用于子范围。例如,代替所示的矩形函数,可以使用三角函数。这可以涉及对在2201中示出的每个柱条施加梯度,使得柱条的顶部具有斜率。例如,“正”斜率可以应用于最低的七个子范围,而将“负”斜率(即负梯度) 可以应用于图2中的最终的或最高的七个柱条的顶部。这将在每个子范围上投影出本质上呈线性的估计的增加或减少,并且可以用于增加带状分布数据与表示多个数据元素中值的分布的真实统计数据101之间的对应关系。梯度对于多个子范围可以是相同的,因此可以是预定的,或者可以是硬编码的,或者可以对于多个子范围一次地明确地用信号通知。在其他变型中,成对的子范围对和概率值对(Vi,Pi)中的每对可以伴随有第三值 (Gi),所述第三值指示待应用于每个子范围的梯度,或者指示所述子范围的梯度与预定或默认梯度的偏差。以这种方式,可以用信号通知变化的梯度,由此增加了根据带状分布数据集计算出的概率分布与从中获得带状分布数据2201的概率分布数据101之间的对应关系。然而,将理解,这增加了存储和/或发送带状分布数据所需的数据量。
在其他变体中,可以将曲线应用于每个子范围。在又另外的变型中,可以使用内插过程以便基于带状分布数据中的有限数量的概率值来生成表示由数据元素保持的概率或值的估计值的曲线。与使用图2所示的阶梯函数相比,使用这种内插曲线对数据元素进行编码可以实现更大程度的压缩。然而,此优点是以由编码器和解码器两者进行内插过程所消耗的计算和带宽资源为代价来实现。
然后可以例如通过例如通过数据通信网络将经编码数据作为位流发送来将经编码数据集提供到接收者解码器装置。经编码数据集与带状分布数据一起提供给解码器,其中所述带状分布数据作为元数据包括在位流前面的报头中。然后,解码器使用带状分布数据来获得可以在对经编码位流进行熵解码中使用的熵函数。解码器装置被配置成使得可以从带状分布数据获得与编码器用于压缩信息的熵函数相同的熵函数。例如,当使用诸如图2所示的阶梯函数来执行编码时,解码器被配置成将成对的概率和子范围值对应地转换成与用于执行编码的阶梯函数相同的阶梯函数。
然后,解码器执行熵解码,在本示例范围解码中,尽管在接收到的位流上,只要编码器和解码器使用的译码方法相同,就可以使用其他形式的熵译码。因此,由编码装置压缩的信息由解码装置重构。
在上述变型或任何其他变型中,根据上述方法,其中由编码器对带状分布数据进行进一步处理,以便改变或细化待用于编码的熵函数,那些相同的附加函数也被配置成由解码器执行。例如,在解码器使用矩形函数或具有不变梯度值的三角函数的情况下,解码器将被配置成对应地使用分别与编码器所应用的矩形或三角函数相同的矩形或三角函数。此配置可以在解码器中被预先配置,或者可以诸如在伴随的接收到的位流的报头中用信号通知定义待应用的附加函数或处理的配置参数。
尽管上述方法借助于减少编码统计数据的数据占用量来提供有益效果,但是可以通过优化布置子范围的方式来获得进一步的有益效果。这在以下实例中得到证明。
参考图3至图6,描述了根据本发明的对信息集进行编码的第二示例方法。在步骤3301,由编码器装置获得表示多个数据元素的值的分布的概率分布数据集。概率分布数据如图4所说明,由4401处的线指示。为了与先前实例一致,范围的限度在本实例中与在第一实例中相同,即0至32,000。同样,概率分布数据4401包括32,000对离散值,所述离散值对表示每个值出现在待压缩的信息的多个数据元素中的概率,尽管这同样被说明为平滑线,使得表示这些个别值的个别柱条在图中不可见。
概率分布数据4401与先前实例的概率分布数据的不同之处在于,在当前情况下,分布关于中间值不对称。因此,值的分布形状对应于区4407A和4407B中的Laplace形式,在区4408中与此形式有偏差。在此区中,可以看到分布包括“驼峰”,其中值的相对概率大于如果函数的形状完全遵循Laplace形式的情况。应注意的是,尽管4407个类似Laplace 的区的形状与图1中的对应区的形状相同,但是图下总面积(即整个范围内所有概率的总和)在每种情况下都是一致的,因此所述图不一定按比例示出。
图4所示的概率分布数据的形式不一定表示任何特定的真实信息或信息类型,而是被选择来说明优化带状分布数据子范围布置的原理。
在步骤3302,将图4中的V轴线上所示的值范围划分为多个相等大小的初始子范围。步骤与上述实例中的划分过程类似地执行,并借助于图2进行了说明。对于本实例,初始子范围如图5所示。在这种情况下,范围被划分为以直方图5501形式示出的29个子范围。这包括对应于29个初始子范围的29个柱条,且其高度对应于也在步骤3302计算得到的初始子范围的概率值。编码器和解码器可能会出于压缩目的使用这些初始子范围及其相关联的概率值来执行熵译码。然而,可以以两种方式改进编码和解码过程,使编码和解码过程更有效。首先,如上面在描述第一实例中所述,具有减少数量的子范围将是有益的,因为这允许用减少数量的元数据(更少对数的概率和子范围值)发送编码统计数据。其次,可以借助于根据包含在子范围内或接近子范围的范围内的值的概率值来设定子范围的大小,从而实现对熵译码所提供的压缩程度的改善。
在步骤3303,调整初始子范围的边界,以获得新的子范围,新的子范围的大小反过来取决于它们的概率值。新的子范围6601在图6的直方图中示出。可以看出,新的子范围的数量小于初始子范围的数量。在此实例中,已调整了初始子范围的边界,包括移除那些边界中的一些,以便将两个或多个子范围合并成较少数量的子范围或单个子范围。因此,在带状分布数据6601中存在16个子范围。
从图5所示的直方图到图6所示的直方图的调整还包括在适当的情况下重新设定子范围的大小。将理解,当待压缩的信息的熵函数的精度更大时,可以通过熵编码实现的压缩程度更大。还将理解,与所述区对应于所述信息中不太频繁出现的值的情况相比,当所述区对应于待压缩的信息中更频繁出现的值时,对于范围的给定区,以这种方式可以实现更大程度的压缩。换句话说,考虑到整个范围的精确度可能有限,因此更精确地表示更可能的值,而不太精确地表示不太可能的值是有益的。
从图6中可以明显看出,已经根据此原理在步骤3303中调整了边界。例如,由直方图上最低柱条6602所说明的子范围也是最宽的。这是因为,如从图4和图5中可以看到,例如,与图4至图6的图的中心部分的值相比,待压缩的信息中的数据元素在范围的所述区中所取的值的概率相对较低。中心柱条6603对应于分布的峰值,并且对应于图5所说明的初始数据中的初始子范围柱条5503。因此,与由5503处的柱条指示的初始子范围相比,在带状分布数据6601中由中心柱条6603指示的新的子范围的限度更小。类似地,新的最低子范围6602比图5中的最低子范围宽,因为与同等精确地指示分布的较高概率部分所经历的负面影响相比,关于这些较低概率值表示方式的不精确性对压缩的负面影响较小。总体上,从图6中可以看出,柱条已经按照其边界或限度进行了合并和调整,以使得每个柱条的宽度在概率分布数据4401的对应部分的高度更大的地方也更大,且反之亦然。“驼峰”区也证明了这一点,因为驼峰区6608包含比对称相对区6608′更大数量的的子范围。这是由于多个数据元素中的一个数据元素的值在驼峰区6608内的总体概率大于对于相对区6608′的概率。因此,编码器通过将更多数量的子范围分配给驼峰区6608,并在分布的较低概率部分中相对减少了子范围的数量,来优化条带划分。
此外,可以看出,从6613到6616的柱条的宽度增加的速率反映了4408区中概率随着V轴线值的增加而降低的速率。随着区4408中的值逐渐升高,概率降低的速率开始相对缓慢,然后朝向所述区的上端急剧增加。因此,柱条6613、6614和6615的宽度类似,而柱条6616的宽度大得多,这是因为对应于6616子范围的分布具有的总体概率要比对应于柱条6613至6615的分布区低得多。
在步骤3304,为在图6中的V轴线上示出的新的子范围计算概率值,以便获得由在6601处示出的直方图的柱条的高度所指示的带状概率值。例如,这可以基于在步骤3302 找到的初始子范围的概率值,例如通过从所述数据中找到分段分布。这也可以通过根据来自步骤3301的概率分布数据计算每个子范围的总概率来计算得到。由此获得带状分布数据。
在步骤3305,编码器装置使用在步骤3304获得并在图6中示出的带状分布数据作为数据值的熵函数,对多个数据元素执行熵编码。如在描述第一实例中所指出,这可能涉及进一步处理带状分布数据,以将熵函数视为不同于图6所示的阶梯函数的形式。
在步骤3307,将由熵编码过程产生的输出位流与伴随此数据的带状分布数据一起发送给接收者。因此,接收者能够使用配置有与熵编码器相同的参数的熵解码器并且使用最小带状分布数据集(为了进行此操作而非出于统计目的)来对数据进行解码。由于对在对数据编码和发送数据之前执行条带划分的优化,因此期望第二实例的过程所实现的压缩程度大于第一实例所能实现的压缩程度。
到目前为止所示的分布被表示为相似的概率密度函数,具有表示个别值在概率分布数据中的多个数据元素中出现的概率的概率值。还可以设想,在这种情况下可以使用累积分布函数,概率值表示任何数据元素的取值小于或等于范围中给定值的概率,而不是元素的取值等于范围中所述给定值的概率。
参考图7,现在描述第三实例。在编码器中为数据集(例如,图块中包括的残差数据、画面中包括的流长度、图块集和/或表集索引等)确定累积分布函数(CDF)。CDF可以例如从与数据集相关联的直方图推导出。直方图通常是对基于真实样本的概率分布函数 (pdf)的估计。可以使用任何合适的方法来生成直方图和对应的CDF。替代地,可以使用理论概率密度函数。为简单起见,图E中所示的CDF被示出为连续函数,但是应理解,它也可以通过对直方图区间求和来构造,因此看起来像是阶梯曲线。
在具体点(例如,x0至x15)处对CDF进行“采样”,以生成对应的值(例如,y0至y15)。在本实施例中,使用了16个样本。然而,应理解,可以使用不同数量的样本,而不脱离本发明的精神。完成此操作后,构建一个矢量,所述矢量包括除第一个和最后一个点(因为它们始终分别对应于0和1)和具体采样点以外的值。在本实例中,这意指14个值(y1至y14)和16个采样点(x0至x15)。在所描述的类型中,这些值对应于使用2个字节(16 位)(包括其尾数(即mantissa16[14]))进行编码的14个值,且对应于使用由类型(即 x_axis_type)指定的位数进行编码的16个采样点(即x_axis_type[16])。
当解码器接收到此矢量时,解码器将读取其内容,特别是采样点和值,并通过例如内插值来重构CDF。换句话说,解码模块以采样值(y)集和对应的采样点(x)集的形式接收关于统计分布(例如,CDF)的信息。它使用采样值来重构统计分布,例如通过内插值并重构统计分布。例如,在CDF的情况下,这意指通过对内插值来从所述值重构 CDF曲线。解码模块在对与之相关联的对应数据集进行解码时使用所述统计分布。以这种方式,可以在不损害准确性的情况下有效地压缩关于数据集的统计分布的信息,在从编码模块发送到解码模块时需要使用的位数方面,所述信息通常是昂贵的。具体地,与直方图需要单独地对每个区间进行编码的性质相比,由于CDF的性质(单调曲线),使用CDF而非直方图特别有效。
如上所述,本发明提供了用于对数据进行解码的技术和设备,所述技术和设备特别适用于传输和存储图像和视频数据。当与用于将稀疏2D数组编码为数据流并从经编码数据流重新创建稀疏2D数组的技术结合使用时,本发明特别有利。
这种技术可以利用待解码和/或编码的数据的2D数组的稀疏性,即期望数组中零的相对量以及在数组内对这些零值进行分组的方式。类似地,这些技术在频繁出现的值具有任何预定值(而不是零)而不是相同且分组在一起的情况下是有益的。
通常,数据可以具有任何性质,只要可以将值映射到2D数组中即可,尽管这些技术也适用于线性数据,并且最有利于图像重构。在图片或视频的情况下,数据可以是与色彩空间相关联的值(例如,RGB色彩空间中的红色分量的值,或YUV色彩空间中的Y 分量的值,等),或替代地数据可以是残差数据(无论是否变换)或用于对字节流进行解码的元数据。在本申请中进一步定义了残差,但是一般而言,残差是指参考数组的值与实际数据数组之间的差。
应注意,以下实例中描述的技术与经解码数组的含义或用途无关。实际上,例如讨论了从经编码字节流中解码稀疏数组的概念。当然,可以使用数据集来通过组合多个经解码数据集重构更大的数据集。重新创建后,数据可以表示已压缩的任何信息,诸如图像或声波图。如从以下描述的实例中将理解,编码和解码技术特别适合与本发明一起使用,其中借助于涉及对数据结构的层级体系中的数据进行编码的方案压缩和传输或存储的一些数据优选地包含经稀疏化数据,可以从所述经稀疏化数重构原始数据。
可以借助于熵编码对根据以下实例处理的数据集进行压缩,且通过基于表示数据结构的元素取值的统计分布的熵函数用由编码器使用的逆译码过程对输出字节流进行解码来对所述数据集进行解码。应认识到,如本公开中较早描述的统计数据的条带划分划分提供了进一步有利的效率增加。
多个个别数据集可以组合以重构更大的数据集,并且可以根据用于并行处理每个数据集的最佳大小来选择更大数组内的个别数据集的维度。例如,使用OpenCL术语,可以通过限制子数据集的维度使每个数据集的工作项目效率更高。
以下实例涉及对具体稀疏数组进行去稀疏化和解码的说明性实例。具体地,描述示出了去稀疏化和解码的过程可以如何彼此交互。尽管描述涉及具体实例,但是本领域技术人员将容易理解其背后的一般原理以及可以如何将过程更普遍地应用于对数据进行去稀疏化和解码。
图8说明将贯穿整个本说明书中使用的重新创建的稀疏2D数组100的实例。此数组是在实例字节流中编码的重新创建的数组。可以看出,数组包含大量零和少量非零值簇,作为符号。
此实例的技术通过不发送或隐式地用信号通知数组稀疏(或一致)的象限(或块)来利用数据的稀疏性或一致性,并因此实现压缩增益。此外,由于解码器不需要在内存中存储大量数据或监视所定义的符号,因此可以提高解码器效率。
如果没有针对数组中的象限发送任何数据,则在解码器中当然会带来重大挑战。下文提出了一种技术,通过所述技术,解码器可以有效地重新创建稀疏数据的2D数组,其中许多稀疏数据尚未收到,而任何非零值都准确地位于所述数组内。具体地,用于对数据进行编码和/或解码的特定结构以及用于对所述结构进行解码的顺序使得所述技术能够最小化解码器需要接收的信息量,从而优化解码并减少待传输的数据量。此外,数据结构和实施方式在处理能力、速度和内存使用方面均提供了有效的实施方式。
在解码过程期间,建立有序树。将来自字节流的代码符号转换成经解码符号,并附加到树的节点上。本发明引入了特殊符号,解码器使用所述特殊符号来建立树。在此将此特殊符号称为节点符号。节点符号向解码器指示如何建立树。节点符号中包含信息,所述信息告诉解码器如何将信息从字节流映射到树,以及可以在字节流中期望什么。使用具体的遍历顺序,解码器将节点符号映射到树,并且随后可以将字节流中接收到的数据映射到树中正确定位的叶。然后将空间信息或原始信息的顺序包含在树内。节点符号和遍历的映射在树中留出了空白空间,可以对其进行模拟或推断,以指示预定值位于原始信息中的所述定位但未在字节流中发送。
在字节流内,节点符号被散布。也就是说,节点符号和数据符号出现在字节流内彼此之间或彼此当中,并且不同的符号也可以视为在字节流内彼此分布或分散。字节流的特征在于解码器在解码过程之前无法知道节点符号和数据符号的顺序。因此,符号的散布没有设定或预定的排序。数据符号的定位是从节点符号内包含的信息中推断出的。节点符号和数据符号可能不会在字节流中一个接一个地或规则地出现,而是将不规则地但并非随机地出现在字节流中。
以下更详细说明了过程。参考图9a,技术首先读取流200以识别第一符号。通常,这些图以及例如图9a示出了接收到的字节流200的表示。可以理解,表示200不是真正的字节流,而是逻辑表示。出于描述的目的,假设解码器知道或以其他方式已经从更宽的字节流中识别出了流长度以及其他元数据,并且仅考虑一个具体的简单的经编码数据集。将逻辑表示分为字节或半字节。逻辑表示是一系列的四位值或半字节,每个表示T 节点符号204(节点符号),以及一系列的四个符号205(数据符号),每个表示顶层或0 层中的一个值和节点。当解释对数据进行解码的过程时,这将从下文变得清楚。
解码器通过建立树201开始。树是计算机科学中众所周知的数据结构。具体地,树是有序树,即,树是有根树,其中子树的顺序很重要。示例性树201是由节点和连接节点 202的边缘组成的四叉树,然而,取决于待压缩的信息,可以利用二叉树、八叉树和其他树。父节点通过边缘连接到子节点。在四叉树中,每个父节点正好有四个子节点。四叉树可以包含许多叶节点。叶节点定义为不包含任何子节点的节点,并且替代地可以称为外节点或终端节点。根节点定义为无父节点的节点。包含父节点和子节点两者的节点称为内节点。
本示例技术定义了一种称为稀疏四叉树的数据结构。在稀疏四叉树中,每个父节点具有正好四个子节点,或者没有子节点。
如上所提及,在建立树后,树的顶层210或最后一层包含数组100的数据值。树中包括数据值的顺序表示数组的空间信息。在本实例中,由于说明了使用四叉树重新创建 16×16数据网格的概念,因此树中有四个层和一个根,提供256个可能的叶,每个叶表示16×16网格中的值。如所提及,其他大小的网格可以利用不同的有序树。
在解码期间,以通常从下到上的定义遍历树201;也就是说,通常从最低级别到最高级别遍历树201。通常尽可能贪婪地从低到高遍历树,并交织以最小的回溯来在整个广度上进行扫描。在一个实施例中,以深度优先前序的方式遍历树。这允许将空间信息用作编码和解码过程的一部分。它还确保以与对元素进行编码的顺序相同的顺序对元素进行解码。在其他实施例中,可以采用其他遍历方法来利用图块结构的其他方面,诸如广度优先、中序或后序。重要的是在解码中使用与编码相同的遍历,以确保保留空间信息。因此,稀疏四叉树数据结构定义了数据的例子和定位。
字节流200中的数据可以是节点符号204或数据符号205。节点符号204是一系列二进制值或标志,它们向解码器指示树201中的特定分支是否具有期望的子节点,其中如果所述分支的顶层后代的数据集中包括数据节点,则分支具有期望的子节点。也就是说,字节流包含有关是否存在子节点的信息。如果不是,则可以假定来自所述节点的所有后代叶都是相同的预定值(在实例中,值为零)。当解码器遍历树以到达叶(顶层中的节点) 时,字节流200包含一系列四个数据符号205,每个数据符号表示树的叶的值。随后可以使用定义的顺序将树映射到网格,其中树上的每个叶对应于网格中的定位。以这种方式,网格的空间信息是固有的或是由树的结构预定的,并且不会用信号通知所述信息。
如上所述,节点符号和数据符号散布在字节流内。当解码器解析字节流并建立树时,它可以将识别的数据符号分配到树内的数据定位。通过以预定的遍历建立树,解码器可以预期流中的下一符号将是数据符号还是节点符号。
如果表面小于16×16(对于具有5层的树),则解码器可以在一些级预期已从字节流中省略“为16×16表面预期作为下一符号的内容”,因此可以预期不同的下一节点或数据符号。例如,仅可以传输在用信号通知的区域中的节点符号和数据符号,由此防止某些节点符号和数据符号的发送和接收。类似地,节点符号的某些位可以被设定为任何值,但是在解码期间可以不被视为对应于数组的面积的实值。用信号通知的区/体积也可以包括每个节点,其节点符号具有掩蔽位和非掩蔽位的混合,如下所述。
当到达顶层时,字节流将优选地包括用于分支的所有四个数据符号,即使该数据符号对应于预定值,即对于稀疏树为零。也就是说,针对外层或最低抽象级别中的所有节点对数据符号进行显式编码。当在网格表示中考虑到这一点时,当块中的至少一个值不为零时,发送最小块中的所有值。可选地,不发送对应于树中倒数第二层的节点符号,而是由解码器隐式假定所述节点符号。由于在这种情况下显式发送数据符号,因此将理解,此层中的节点符号应理解为包括正标记集(或[1111],如从下文的描述中变得清楚)。应注意,值可以不是正值,但可以是掩蔽值。
查看此隐式信号通知特征的另一种方法是,仅在树的受访节点存在孙节点的情况下,才发送节点符号或将节点符号包括在字节流中。换句话说,节点符号应具有孙节点。无代码层的数量(当前为1)可以是可更改的。
在解码器处,因为它知道不要期望此层的节点符号,所以当在遍历中访问此节点时,解码器可以假定待检索的符号是数据符号,并可以相应地建立树的分支。
已经发现,隐式节点符号信号通知和显式数据符号信号通知的这种组合在最小化内存存储的同时实现了最佳效率。由于未在字节流中发送层的节点符号,而是发送了外层中的所有数据符号,因此总体上,这在实践中实现了效率增益,其中在统计上很可能在整个数据集中将非零值聚类或分组在一起。
在现有技术中,没有考虑对稀疏化之后的后续编码级的影响。根据本公开,在有助于熵编码器避免对稀有符号进行编码的情况下,可以忽略稀疏性。同样,如果稀疏性不足以证明节点符号正当(这将成为隐式[1111]),则本发明可选地允许通过布置来实现密集的四叉树。
在附图中,在标记为a的图中说明了建立树的级,而在标记为b的图中说明了网格处理的知识。因此,在图9a中,过程知道树201具有根202,并且由于它是四叉树,因此它具有四个分支203。此过程尚不能推断出任何信息以映射到2b的网格100。
如图9a所示,重构的树结构具有层集。层被视为与根具有相同距离的节点的子集。距离是两个节点之间的最小分支(或边缘)数。层数由待重构的数组的大小设定。此大小可以是预定的,也可以在字节流中用信号通知。
在组合多个数据集的情况下,层数对应于网格的维度,因此可以设定成优化并行处理,也就是说,使每个工作项都达到最佳效率。
实例考虑了四叉树,但是节点可以具有任何数量的子节点。树因此可以被称为n-树,即没有节点具有多于n个子节点的树。也就是说,四叉树是n-树,其中n为4。四叉树在本领域中是众所周知的,且是一种树数据结构,其中每个内节点正好有四个子节点(叶节点除外),并且所有叶都在同一级别上,所述级别对应于网格中的定位。数据可以紧凑地存储在作为隐式数据结构的数组中。
在所描述的实例中,树具有四个层207、208、209、210和根206,所述层和根重构树以形成16×16网格。也就是说,上升值为4。上升值是n-树的根的海拔的绝对值。它对应于除根外的n-树中的层数。海拔是一个索引-j,它随到根的距离增加,在到根的最大距离处达到0。注:-j始终≤0。换句话说,n-树中的层数对应于上升值加1。
为了完整起见,海拔-j-1处的节点是海拔-j处的节点的父节点,其中两个节点仅通过一个分支链接在一起,且海拔-j+1处的节点是海拔-j处的节点的子节点,其中两个节点仅通过一个分支(或边缘)链接在一起。海拔-j+x处的节点是海拔-j处节点的后代,其中x是两个节点之间的距离,且海拔-j-x处的节点是海拔-j处节点的祖先,其中x是两个节点之间的距离。
在解码器已经读取字节流后,解码器开始建立树201。在此级处,如图所示,网格100 是空的。解码器知道树201必须具有根节点202,并从所述根节点202模拟四个分支203,因为解码器知道树201是四叉树(或4叉树)。因此,根202和前四个分支203是已知的或假定的。
在描述模拟的步骤的情况下,对本领域技术人员显而易见的是,这些步骤仅用于说明,并且可以由本领域技术人员以不同的方式或顺序来实施。
可以以任何已知的方式遍历树。此处的实例使用深度优先的方法,特别是深度优先前序遍历。深度优先前序遍历可以被视为从最小海拔到最大海拔遍历有序树的策略。如果到达叶,则策略将在遍历同一树的其他区部之前回溯所述叶的祖先。
换句话说,在进入下一兄弟节点之前,在每个子节点上尽可能加深树。在上下文中,解码器将从树的根206开始,并在退回到前一层中的下一兄弟节点之前,尽可能远地朝向层0 210(即顶层)行进。在已经访问所述层中的所有兄弟节点之后,解码器将重复退回,直到完成所述网格的深度优先前序遍历为止。
返回到图9a的实例,取流200的第一4位值204。在此实例中,值为1000。此值可以被称为T节点符号。标签是附加到树中节点上的数据,而不是树的结构和节点顺序中隐含的数据。T节点符号通知解码器流中的数据,并告知解码器如何重构树201。
在流的4位值(T节点符号)中,“1”指示节点的子节点是期望的子节点,也就是说,将在流中发送表示所述节点的子节点的数据,或替代地,“1”指示子节点将具有自身的子节点,因此其将存在。另一方面,“0”指示不期望节点的子节点,也就是说,不会在流中针对这些节点发送任何数据,并且不期望针对所述分支接收到任何子节点,或替代地,“0”指示子节点将不会有自身的子节点,因此其将不存在。解码器可以假定来自那些后面的分支的所有叶都是零值。这将可选地进行模拟,并在下文中予以描述。
在根节点201的分支203的末端处,解码器现在知道存在具有将在流中接收数据的其他子节点的节点和不再发送或将不发送其他数据的三个节点。
以深度优先前序遍历顺序并参考图10a,过程移至最左边的节点302。在T节点符号204中,在流中针对此分支接收到1。应记起,T节点符号204指示将接收到其他数据,取流的下一4位值304。在此实例中,值为1010。如图所示,解码器模拟所述节点302 的4个分支。再次,不能推断出3b的网格100中的信息。
箭头311示出了遍历,如将在下面更详细地解释。遍历最左边的分支303,并且由于T节点符号302的第一值是‘1’,所以解码器寻找下一4位值。解码器现在位于层-2 208,如图11a所示。如图所示,在紧接着404中检索到的数据是1000,表示对于最左边的分支403,将接收其他数据,但是对于剩余的三个分支,将不发送其他数据。再次,不能推断出图11b的网格100中的信息,并且箭头411说明了遍历。
解码器现在已从层-2 208的最左边节点填充层-3 207和层-2 208的根和最左边部分,如图11a所示。移到图12a,由于解码器已经到达层-1,因此它现在期望4个数据符号。应注意,如果解码器达到所述级别,即使实际值为零(对于稀疏数组或替代地与预定值相同),也将发送层0中的所有值,因此对于层-1 209,不会用信号通知任何符号,因为这将始终是已知的,并且没有任何符号附加到此层的节点512。
现在,解码器从流中获取数据符号,以在顶层的节点513中填充树。在实例中,符号或值为‘2’、‘3’、‘1’和‘0’,并且解码器填充树,如图所示。在示例遍历顺序中,从左到右用符号填充树,并且层0(顶层)中的每个叶是已知的。可以将这四个数据符号视为标签的一部分,应记起标签是附加到树的节点的数据。511再次示出了遍历顺序。
由于此象限中的第四个数据符号为0,因此,并不发送层-1的节点符号,其在此实例中为[1110](仅当选择隐式发送第4个符号的预定值时),优选的实施方式而是直接将针对此象限的所有数据值包括在字节流中,即使值是零(或预定值)。换句话说,所有兄弟节点数据值都在至少一个兄弟节点非零的情况下发送。以这种方式,无需发送层-1节点符号。已经示出,层-1的节点符号的隐式信号通知和每个包含非零值的2×2块的所有值的显式信号通知比仅发送非零值并用信号通知其在字节流中的定位更有效。
如果例如树是二叉树,则代替对倒数第二层编码和发送倒数第二层,字节流而是包括两个数据值,其中两个相邻数据值中的至少一个是非零的。
在检索到数据符号后,在优选的实施方式中,可以将所述数据符号下面的树丢弃到不再需要的程度。以这种方式,由于散布的数据符号导致不需要网格的整个结构以便准确地识别或放置数据值,因此可以实现对内存资源的有效利用。
以下是本实例的概述:
1)字节流(1000)的第一T节点符号对应于根层的T节点符号。
2)字节流(1010)的第二T节点符号对应于层-3的T节点符号。
3)字节流(1000)的第三T节点符号对应于层-2的T节点符号。
4)不存在针对层-1发送的T节点,因为层-1的T节点将始终为(1111),因此,在层-2的T节点符号指示针对所述分支存在子节点和数据符号后,则所述节点隐式存在。
5)标签中的值对应于层0,并“附加”到层-1的分支。
为了进一步澄清,从根层到层0,数据结构中共有五层(其中一层是节点集)。每个层都与数据集相关联。在根层、层-3和层-2的情况下,此数据集称为‘T节点符号’或节点符号(这些术语可以互换使用),并有效地指示来自具体层的四个子节点将具有子节点(在这种情况下,其逻辑值为“1”)还是不具有子节点(在这种情况下,其逻辑值为“0”)。在不存在子节点的情况下,这指示在树的所述分支的顶层中不存在任何数据符号。层0是一个特殊的层,因为它包含叶,即不具有子节点的节点,具体地在那些叶中包括数据符号。
在字节流中,将存在针对根层、层-3和层-2的节点符号。由于节点符号的工作方式及其含义(如本申请中所述),并且由于层0是“最终”层的事实,因此隐式发送层-1的节点符号,因为层-2中的节点符号已经隐式指示了层-2的子节点(即层-1)是否具有子节点。假设子节点只能是层0中的数据符号(例如,残差或元数据),则字节流将仅直接指示层0数据符号。应注意,每个数据结构最多有21个节点符号(根一个,层-3最多四个,层-2最多16个)。
从命名的角度来看,术语“标签”可以是指:(a)根层或层-3的节点符号(例如,在当前图中,它们将是数据块[1000]和[1010]);(b)层-2的“组”和层0的数据符号(例如,在当前图中,它们将是字节流中的第三和第四数据块,即[1000]和{2,3,1,0}或字节流中的最后四个数据块,即[1110]、{1,2,1,0}、{2,2,1,0}和{0,2,0,1});且(c)层0中的每个个别数据符号(例如,在当前图中,数据块{2,3,1,0}、{1,2,1,0}、{2,2,1,0}和{0,2,0,1}中的每一个)。
现在,具有可以映射到网格100的值,如图12b所示。在填充树时填充网格还是在填充树之后填充网格并不重要,但是出于说明目的,此处当将数据放入树中时填充网格。如上所述,可以使用数据结构固有的空间信息来映射树。在实践中,过程可能要等到整个树都被填充为止。
在实例中,每个数据符号或值被称为离散值,然而在优选实施例中,数组中的值是相对于数据集中的另一个符号的差分编码值。换句话说,除了网格的第一未稀疏化元素中的绝对值之外,差可能是相对于先前未稀疏化元素的值。例如,如果第一值为4,且第二值为5,则检索到的第一值为4,且第二值为1,这是第一值和第二值之间的差。如将理解,可以在映射之前或作为映射的一部分将差值转化成实值。
如图12b所示,经解码值的16×16网格100可以由接收到的符号来填充。网格是完全填充的密集矩形2D数组。四个符号表示网格左上方的2×2块。
在实例中,2×2块排序为:左上、右上、左下、右下。如将理解,在实践中,此顺序可以是任何顺序,前提是编码器和解码器是一致的。
在实例中,流中的值应以深度优先顺序进行交织,所述深度优先顺序对应于图像空间中的z序。在实例中递归地定义了z序,但是如可以理解的,当然可以是任何顺序。Z 序是重叠的二维对象的排序。在实例中,树的数据以Morton排序映射到网格。Morton 排序将多维数据映射成一维,同时保留数据点的位置。它是由G.M.Morton在1966年引入。将实例的Morton顺序细分为2×2的块。在本领域中使用术语Z序、Lebesgue曲线、 Morton顺序或Morton代码。
Morton排序在本领域中是众所周知的并且应被理解。还将理解,可以利用从树到网格的数据的任何合适映射。
在实践中,使用2×2块的Morton排序意指对于8×8网格,树的符号以如下示例顺序映射到网格:
当考虑将树映射到网格时,可以认为z序映射导致树的每个分支都是网格的象限。层 -1分支各自是2×2块,层2分支各自是4×4块,而层-3分支各自是8×8块(根表示16×16网格)。Morton排序和深度优先前序遍历如图13象征性地说明。
尽管Morton排序是优选的排序,但也可以考虑使用其他顺序,诸如Hilbert空间填充曲线,也称为Hilbert模式或Hilbert曲线,这些顺序可以取决于待压缩的数据和非零元素在数组中的可能定位来提供实施方式或效率增益。在某些情况下,Hilbert曲线排序也将具有更好的位置保留特性。
参考图12a和图12b,可以看出前四个符号已经被解码和映射。遵循遍历顺序,解码器对树进行解码,如图14a所示。箭头711示出了遍历顺序。由于先前针对层-2接收到的数据指示此节点的值为0,因此解码器能够模拟或推断树的稀疏部分并将零值映射到网格。在T节点符号中接收到0的情况下,0指示不针对所述节点发送任何数据。如果没有数据待发送,则解码器假定值为零。
当前上下文假定网格是稀疏的,因此假定在不发送数据的情况下值为零。当然,应容易理解,任何值都可以用作未发送的值。例如,未发送的值可以是任何值或1。
如图14a所示,过程假定顶层210中的值713为零,并模拟树。然后,还可以遵循z 序映射将零值映射到网格100上,如图14b所示。将四个零值映射到先前映射的2×2块右边的2×2块。
虽然在此处描述了模拟过程,但是将理解,可以针对所述分支终止遍历,并使用推断的值填充网格,而不必模拟树,因为这些值将通过遍历终止来指示。然而,在此处将模拟描述为一种实施选项,所述实施选项可以使技术概念的表达更加清晰。
模拟过程如图15a所示继续。在此图中,为清楚起见,删除了树的最左边分支。先前解析的节点符号指示遍历811中的下一节点终止。因此,解码器可以模拟此节点的叶813 在层0中是稀疏的。可以根据z序映射将零符号映射到网格。如图15b所示,将2×2零值的块输入到放置的第一块的下方,即4×4象限的左下方。
网格100中的象限是通过模拟所述节点的最终叶913来完成的。由于所述节点的节点符号指示为1000,因此可以模拟稀疏值,如图16a所示。零值根据z序映射到4×4象限的最终2×2块,如图16b所示。输入零值的2×2块作为象限的右下块。现在,过程具有完整的象限。在实践中,可以针对每一层在一个单一步骤中进行模拟(例如,同时模拟与所述层中的零节点符号相关联的所有节点,并且将对应的零映射在网格中)。模拟可以是概念上的过程,即隐式而非显式地进行。
图17a说明了深度优先前序遍历。箭头1011指示过程如何遍历树以考虑下一节点。现在,过程沿树下降,所述树已经填充了来自上一个节点的所有分支。然后过程继续到兄弟节点。兄弟节点是具有相同海拔和相同父节点的节点。由于所有叶均已填充,因此要考虑的下一节点是层-2中的兄弟节点。
参考图18a,应记起父节点的节点符号是1010。因此,由于与第二分支相关联的节点符号为零,因此过程期望不会在此分支(即兄弟节点)的流中接收到任何数据。因此,来自此节点的所有叶都可以模拟为零值,也就是说,来自此节点的层0中的所有值均为零值。换句话说,此象限中的所有值均为零。在模拟树后,可以将值映射在网格上。如图18b所示,遵循z序,象限右上方的4×4块都可以映射为零值。
通过遍历树,下一兄弟节点由节点符号指示为在流中具有数据(对应的节点符号为1)。因此,过程从流中检索下一节点符号1204。如图19a所示并如图19b中重构,在此实例中,下一节点符号为1110。此节点符号指示层-1中的三个节点(即,来自层-2中的节点的三个子节点)具有包含非零值的节点。最终节点仅包含零值。在图19a中,某些节点和分支已被删除,并且箭头1211指示遍历。
过程以类似的方式继续进行,并且从字节流中检索符号,使用这些符号作为层0中的叶来建立树,并根据z序映射将这些符号映射到网格。为简洁起见,未说明后续步骤。对于此节点的最终兄弟节点,由于在T节点符号中指示为0,因此从流中未检索出任何数据。过程将利用作为来自此节点的层0中的叶的零值来模拟树。将零映射到网格以完成象限。使用节点符号将层-2中的节点的最终兄弟节点指示为稀疏,并且过程使用来自所述节点的后代的所有叶的零值填充树。将零映射到网格,其中零值针对象限中的所述 4×4块。
现在,遍历将遵循遍历顺序追溯到层-3中的下一父节点。由于从流中检索到根节点的第一节点符号指示此分支在流中没有节点符号,因此可以推断出,层0中来自此分支(从根开始的第二个分支)后代的所有叶均为零值。因此,过程重构密集树,同时为此子树中的所有叶模拟零值。将零映射到网格。8×8象限全部由零表示。此8×8象限可以称为稀疏化区域。稀疏化区域是包含零的网格区域,所述零在流中未编码,但默认情况下已知为零。稀疏化区域外的零以与非零相同的方式从节点符号中解码。
可以模拟树的每个分支,并且每个叶依次用零填充。然而,线性步骤不是必需的,并且过程可以智能地识别所有叶均为零,并在一个步骤中将零映射到网格。
根的所有兄弟节点都遵循相同的过程,如原始根节点符号所示。现在,用最终两个8×8 象限完成网格,所述象限与来自树的零值映射。
在过程终止并且进行了所有模拟后,解码过程已经有效地重构了接收到的稀疏树的密集对应物。也就是说,树,其中原始n-树的根层上方的每个节点都有n个子节点,并且每个层都是密集的。
图20说明了概述,并且应记起图8是重新创建的数组。示出了16个叶以及对应的T节点符号。字节流中已接收到16个符号(或标签)。已将240个零“隐式”编码为节点的T 节点符号,并且解码和去稀疏化过程指示对区域进行了稀疏化。在从字节流推导出的接收到的树中,存在7个节点,而没有后代节点。在过程中可选地模拟这些节点的子节点,以推导出密集树。将树映射到在2D数组中准确定位16个非零值的网格,同时稀疏的零区域放置在网格内,而没有在字节流中发送数据。
通过使用树结构、节点符号(其告诉过程哪个分支将具有子节点,和哪个分支将不具有子节点)以及深度遍历顺序,过程可以通过仅发送少量信息来重构完全稀疏化的网格。如上所述,由于可以提高解码器的效率,因此可以提高其性能。过程将已构造的树映射到网格上。网格可以包含稀疏化区域,即包含零的网格区域,所述零在流中未编码,但默认情况下已知为零。稀疏化区域外的零以与非零相同的方式从节点符号中解码。
上面的实例考虑了正方形网格,具体地是16×16网格,其中存在5个树层,因此具有 256个节点。如图21所说明,在具有虚线示出16×16正方形网格的矩形网格1400的情况下,可能存在掩蔽位,其指示树的区部是不相关的并且未被考虑。树仍是有序的,但可能不再是完整的四叉树,因为树的一部分可能没有完成。树的用信号通知的部分被视为活动体积。如果存在0或4个子节点,则树可能是完整的,可选地,树可能是不完整的。
如果树的用信号通知的部分是环形空间,并且已将解码器设置为对环形视频(例如,从在太阳方向看不到任何东西的太空飞船)进行解码,则四叉树将具有特定且可预期的活动体积来确定掩蔽。所提出的技术在解码器中的实施可以在预定算法的控制下使环形空间成直线地逐帧来回移动。另一实例仍然是矩形,但是相机中的像素损坏,这是一个非常普遍的问题。在另一实例中,在一段时间的退化之后,可能存在无用像素的区域。
图21的实例示出了包含在16×16的网格内的5×10的活动体积1416。网格1415的掩蔽部分用‘x’用信号通知。可以使用字节流中的元数据来用信号通知活动体积的大小。解码器将忽略节点符号的对应于在用信号通知的活动体积外的块的任何部分。因此,节点符号的那些位可以是任何值,并且通常由解码器选择以优化熵。可选地,可以不传输节点符号的位。例如,在图21中,右上方的8×8块和右下方的8×8块两者都在活动体积之外。因此,字节流的第一个节点符号(与树的根相关联)将为1x1x。也就是说,节点符号的第二和第四位可以是任何值。在建立树时,解码器将忽略第二和第四位,因为解码器知道第二和第四位存在于已被单独告知的活动体积之外。当遇到掩蔽位或对应于未用信号通知的或掩蔽的区域的节点符号的位时,针对所述分支的树的处理将终止,即针对所述分支的遍历将终止,并继续按顺序进行到下一节点。
上面已经描述了节点符号可以如何表示稀疏或包含公共预定值的数组的区部。可选地,为了改善先前或随后的编码级的编码,还认为可以将公共或预定值作为数据符号显式地用信号通知,并且在节点符号中设定对应的正标记。也就是说,尽管区域是稀疏的,但是仍可以在字节流中显式地用信号通知值,并且在字节流(和树)中对应地设定节点符号,以使解码器对所述值进行正确地解码并空间定位所述值。当稀疏值或公共值是表示成本低廉的值时,或者在数据流的这种人为修改可以在编码链中的随后熵编码级中提供改进的熵编码的情况下,这种选择性稀疏化可以提供益处。选择性稀疏化可以通过分析预测的字节流、机器学习、统计分析或通过反复试验和错误来自动设定。
上面的描述给出了如何在二维网格的压缩中使用本发明的稀疏树的实例,然而,下面还提及本发明还可以适用于线性网格或一维数组的压缩。给出的实例是一维或二维的。实际上,技术可以应用于任意数量的维度,并且可以使用非4-树的n-树。例如,将Morton顺序的3D变体与八叉树而不是四叉树结合使用将允许进行体积成像。作为另一实例,可以用四叉树示出一维去稀疏化,但是用二叉树(即2-树)可以进行很多相同的操作。
待解码的示例1D数组具有50个元素,从0开始编号。假定此维度信息是预先给出的。预先知道,在算法末尾未显式解码的每个元素的默认值为0。预先不知道待显式解码的元素数量,但期望保证至少为1。显式解码的元素可以为非零或0。
预先知道数据的描述具有五个层,如图22所示。检索到的符号中的值指示如何导航树的层。通过遵循图上的标注0、1或x,得到层0中待显式解码的那些元素。这些选择的含义是:
1意指“跳至+1更深层中的第一节点”(更深意指是在层0的方向上)
0意指“继续到当前层中的下一箭头。如果没有其他箭头,则回溯到-1更浅层。”
x意指“不在乎是0还是1,而是执行1动作”
图22中的节点符号的一些数字已用“x”掩蔽。这与小于(16,16)的(4,3)有关。掩蔽数字指示对应的子节点本身处于非活动状态,并自动具有零个子节点。这些掩蔽数字的值在解码中不起作用,并且可以由编码器进行优化以最小化熵。
因此,从根或层-4开始,并遵循逻辑字节流1500,第一符号是1,这意指跳到更深层中的第一节点(步骤1501)。检索下一符号。在此,第一位是1,因此跳到更深层中的第一节点(步骤1502)。检索下一符号。第一位是0,因此沿着同一层继续(步骤1503)。由于位于指示数据值的层中,因此未显示地用信号通知1D数组的前四个元素,并将所述前四个元素假定为预定值。
再次,接下来读取0,因此沿着同一层继续(步骤1504)。下一位是1,这指示应移至更深层(步骤1505)。现在,到达应在其中检索数据值的层。检索数据值并将其放置在树中的此定位(步骤1506)。然后,遵循遍历顺序,再次追溯树,并读取符号的最后一位 (在这种情况下为0),因此继续操作(步骤1507)。由于已到达符号的末尾,因此将遵循遍历顺序再次沿树上升,并继续执行过程。
在已遵循字节流后,如图23所示,对树进行了填充。树是有序的4-树,因此兄弟节点是有序的(在此图中,顺序是从左到右),并且只有层0中的节点可以具有标签。顶层包括在字节流中用信号通知的显式元素值。层-3中的三个右手节点处于非活动状态,因为50个元素的数组长度小于65。层-3符号中的x标注指示此位的值是不相关的,并且可以是任何值,因为其被忽略。过程仅与前50个符号有关,因为知道这是数组的长度。即使所有50个元素都是显式的,这些节点也将保持无子节点。例如,此实例对1D数组的位置8、9、10、11中的元素进行显式译码。显式元素分别具有显式值2、3、1、7和4、 0、8、12,如相关节点上的标签所示。
解码顺序从三个节点符号开始,然后是4个数据值,接着是另一节点符号。并不知道后面的符号是节点符号还是数据符号或值,直到先前的节点符号已被解码为止。
本发明允许以并行方式执行上述对接收到的数据进行解码的过程。具体地,可以以这样的方式执行图9至图20所说明的程序,使得并行而不是顺序地处理流200内的多个数据结构。通过获得与数据集200的子集相关联的偏移值,可以识别那些子集的开始定位或最早的元素定位。这意指在流中稍后出现并对应于更高层(即距根层206更远的层) 的子集可以在其定位已知后立即进行处理,而不是当已经借助于处理流中位于它们之前的子集来确定它们的定位时进行处理。
上面已经描述了可以如何构造和解码字节流以合并散布的节点符号和数据符号的集合。在已经输出符号,可以随后对其进行熵编码。可以在处理符号集之前对经编码流进行熵解码。例如,可以将符号划分为代码,然后使用Huffman编码和解码操作对其进行编码。替代地,可以使用算术译码操作(诸如范围编码和解码操作)对符号流进行编码和决策。这些和其他类似的熵译码技术在本领域中是众所周知的。
熵译码是一种无损译码,其通过表示具有很少位的频繁出现的模式和具有许多位的很少出现的模式来压缩数字数据。广义上,熵译码技术采用输入码字并使用输入码字出现在数据集中的概率来输出可变长度码字。因此,最常见的符号使用最短的代码。概率信息通常存储在解码器使用的元数据中,以根据输出代码字重新创建输入信息。
以下描述用于对字节流进行熵译码的技术。紧接上文,描述了解码过程在执行后可以如何应用于去稀疏化过程,以识别数组的稀疏区域并在数组中准确地定位值。所描述的操作将去稀疏化和解码步骤耦合在一起。
在图24中示出了高级别概述1700。在解码操作1701中对字节流进行解码之后,数据的输出平面经历去量化1702级和组成变换1703级。组成变换级1703和去量化级1702 是本领域已知的。例如,组成变换级1703可以包括如WO2013/171173中所述的平面的方向变换或小波或离散余弦变换。
在此描述,解码操作1701可以包括两个级,即,熵解码级1704和去稀疏化级1705。解码器的级耦合在一起并相互相关,以便有效地识别压缩信息。熵解码级用于从数据流中解码符号。去稀疏化级用于分析符号并告知熵解码器接下来待解码什么类型的符号。
在优选的实施例中,去稀疏化级或模块1705建立树,如以上在图7至图23的上下文中所述。去稀疏化级从熵解码器接收符号并建立树。然后,根据建立树的过程,去稀疏化级通知熵解码器接下来期望什么类型的符号,即节点符号或数据符号。通过以所述方式分析节点符号,去稀疏化级可以通过遵循树遍历并识别对于树的分支没有期望数据符号来识别下一符号将是节点符号或数据符号,在所述书的分支中节点符号包括如此指示的标志。
贯穿整个本说明书中,去稀疏化级、去稀疏化模块和去稀疏化器可以互换使用,以指模块的功能性。类似地,术语熵解码级、熵解码模块和熵解码器可以互换使用,以指所述模块的功能性。当然将理解,功能性可以由组合模块或多个子模块提供。
在熵解码级,模块可以访问多个元数据集,所述元数据集用于使用熵解码操作来对不同类型的符号进行解码。首先,熵解码级将首先使用第一元数据集对符号进行解码。然后,熵解码级将把所述符号发送到去稀疏化级。然后,熵解码级将等待以接收接下来将要期望的符号类型的指示。基于接收到的指示,熵解码级将根据期望的符号的类型来使用相应的元数据集,以便使用熵解码来对下一符号进行解码。以这种方式,即使当数据集中的数据不遵循预定模式并且不同符号类型被不规则地散布在待编码或重构的原始数据内,也可以使用不同的元数据来对数据集进行解码。
当然将理解,代替使用一个熵编码器和多个元数据集,***可以代替地对于待解码的每种类型的符号利用多个熵编码器模块。例如,去稀疏化模块可以指示不同的模块基于其在数据集中接下来期望的符号的类型来执行熵解码操作。
现在将在图25的上下文中详细描述过程。首先假设流中的第一符号是第一类型。在优选的示例实施方式中,将从上文记起,第一类型是节点符号。在实施方式中,如果去稀疏化级1805指示第一符号是熵解码器的第一类型的熵解码级1804固有地具有一定程度的智能或预定来识别第一期望类型,则这是不相关的。
熵解码级将从对应于第一符号类型的元数据的存储器中检索元数据。元数据例如可以包括解码参数,并且可以包括概率的指示。例如,如果解码操作是范围解码器,则元数据可以包括概率分布或累积分布函数。
在识别第一符号之后(步骤1801),进行到去稀疏化级(步骤1802)。去稀疏化级使用第一符号来确定流中稍后期望的符号类型。
在优选的实施方式中,去稀疏化级遵循上述过程。也就是说,去稀疏化级将接收到的符号分配给树的根,并分析符号的位以遍历树。例如,如果如在图9a的所描述的实例中一般,符号是[1000],则遍历树并且去稀疏化级将识别下一符号将是节点符号。
去稀疏化级将接下来期望的符号类型返回到熵解码级(步骤1803)。基于此信息,熵解码级能够根据接收到的符号类型的元数据从数据流中解码下一符号。
遵循上述实例,下一符号将是节点符号,并且如果使用范围解码器,则熵解码级可以利用用于前一节点符号的累积分布函数(步骤1804)。再次,进行到去稀疏化级(步骤1805)。遵循实例,下一符号将是节点符号,所述节点符号使用相同的累积分布函数进行熵解码。在此,已经达到了图11a的级。树已建立有三个受访节点。遵循实例,去稀疏化级假定未在字节流中发送下一层,且现在期望数据符号。
因此,去稀疏化级现在用信号通知熵解码模块期望的符号是不同的第二类型(步骤 1806)。熵译码级因此检索第二类型的符号的元数据。再次,如果熵译码操作是范围译码操作,则元数据的存储器将包括第二相应的累积分布函数。熵译码操作因此使用此第二参数集,即此第二累积分布函数,从流中检索下一符号(步骤1807、1808)。
返回图12a的实例,接下来的三个符号当然将是数据符号,当然,接下来的三个符号将是数据符号,因为在示例过程中,显式地用信号通知了块的所有四个兄弟节点数据符号。因此,去稀疏化级将用信号通知熵解码级接下来的三个符号具有第二类型(步骤1809)。当然,如上所指示,可能会有一定程度的智能或预定期望被译码到熵解码级或模块中。例如,当它知道要检索数据符号时,它可能知道检索四个。取决于实施方式,熵解码级当然可以在每次尝试从流中识别符号时等待符号类型的指示。
在实例中,过程将根据树的遍历继续进行。也就是说,在图14a至图19a的实例中,期望的下一符号将是节点符号,并且去稀疏化级将指示解码器使用第一参数或元数据集来识别下一符号。
既然已经理解了过程,应记起,不是熵解码级在元数据集之间切换,而是可以有多个熵解码模块,每个熵解码模块使用元数据集,并且每个熵解码模块根据接下来要期望的符号类型从不同类型的散布符号流中检索符号。
上面已经描述了熵解码级可以是任何类型的熵解码模块。例如,熵解码模块可以是 Huffman解码模块,其中流中的符号具有固定长度。然而,优选地,熵解码器是范围解码器。如果使用多个解码模块,则可以使用第一类型的熵解码器对第一类型的符号进行解码,并且可以使用第二类型的熵解码器对第二类型的符号进行解码。例如,可以使用 Huffman解码器对固定长度的节点符号进行解码,并且可以使用算术解码器对数据符号进行解码,如果符号的类型具有不同的长度,或者如果一种类型适合于固定长度操作而另一种适合于可变长度操作,则这可能是有益的。
本领域技术人员将清楚如何本文所述的技术在包括编码器和解码器的***内体现。在解码器处,可以从数据存储器中检索经编码数据集或从流服务器接收经编码数据集。在这种另一实施例中,一个或多个流服务器可以连接到多个客户端装置。在流服务器处,编码器可以接收视频或图像流并对其进行编码,并将流(例如,可互换使用的字节流或位流)传递到客户端装置。因此,流可以被解码器解码以重新创建已经包括的信息。如本领域技术人员所熟知,可以使用任何合适的传递流的机制,诸如单播或多播。
此处描述的技术可能适合于任何维度的数据数组的编码、解码和重构。然而,尽管技术也适用于线性数据,但它们对于图像或视频重构最为有益。在图片或视频的情况下,数据可以是与色彩空间相关联的值(例如,RGB色彩空间中的红色分量的值,或YUV 色彩空间中的Y分量的值,等),或替代地数据可以是残差数据(无论是否变换)或用于对字节流或位流进行解码的元数据。在本申请中进一步定义了残差,但是一般而言,残差是指参考数组的值与实际数据数组之间的差。因此,这些技术最适合于任何数据平面。
应注意,以上实例中描述的技术与经解码数组的含义或用途无关。当然,可以使用数据集来通过组合多个经解码数据重构更大的数据集。重新创建后,数据可以表示已压缩的任何信息,诸如图像或声波图。如从以下描述的实例中将理解,编码和解码技术特别适合与本发明一起使用,其中借助于涉及对数据结构的层级体系中的数据进行编码的方案压缩和传输或存储的一些数据,可以从所述经稀疏化数重构原始数据。
在例如在流服务器或客户端装置或从数据存储器中解码的客户端装置中实施的编码器和解码器两者处,本文所述的方法和过程可以体现为代码(例如,软件代码)和/或数据。编码器和解码器可以以数据压缩领域中众所周知的硬件或软件来实施。例如,使用专门编程的GPU或专门设计的FPGA进行硬件加速可以提供一定的效率。为了完整性,可以将这种代码和数据存储在一个或多个计算机可读介质上,所述计算机可读介质可以包括可以存储供计算机***使用的代码和/或数据的任何装置或介质。当计算机***读取并执行存储在计算机可读介质上的代码和/或数据时,计算机***执行体现为存储在计算机可读存储介质内的数据结构和代码的方法和过程。在某些实施例中,本文所述的方法和过程的一个或多个步骤可以由处理器(例如,计算机***或数据存储***的处理器) 执行。
通常,可以使用软件、固件(例如,固定逻辑电路)、可编程或非可编程硬件或这些实施方式的组合来实施本文中所描述或附图中所说明的任何功能性。如本文所使用的术语“部件”或“功能”通常表示软件、固件、硬件或它们的组合。例如,在软件实施方式的情况下,术语“部件”或“功能”可以是指当在一个或多个处理装置上执行时执行指定任务的程序代码。所说明的将部件和功能分离成不同的单元可以反映出这种软件和/或硬件和任务的任何实际或概念上的物理分组和定位。
Claims (15)
1.一种对接收到的表示信息的经编码数据集进行解码的方法,所述信息包括具有在值范围内的值的多个数据元素且已借助于熵编码进行压缩,所述方法包括:
接收包括所述经编码数据集和带状分布数据集的数据,
特征在于:所述带状分布数据集包括多对值,每对包括子范围值(x0)和概率值(y1),所述子范围值指示所述值范围的相应子范围,所述概率值表示所述多个数据元素中的一个数据元素的值在所述相应子范围内的概率,其中,所述带状分布数据集对应于累积分布函数,所述子范围中的两个或更多个在限度上是不相等的,并且所述子范围的值表示相应子范围的上边界,使得两个或更多个所述子范围具有与紧邻在前面的子范围的上边界相隔不相等的限度的上边界;以及
借助于基于由所述带状分布数据集定义的概率分布,对所述经编码数据集执行熵解码来重构已经被压缩的所述信息。
2.根据权利要求1所述的方法,其中所述子范围中的两个或更多个中的每一个的限度反过来取决于对应于所述相应子范围的所述值范围的区中的概率密度。
3.根据前述权利要求中任一项所述的方法,还包括根据所述带状分布数据集计算所述概率分布;其中计算所述概率分布包括将所述带状分布数据变换成表示概率密度函数的数据,并且所述带状分布数据集包括对应于15个子范围的15对子范围和概率值。
4.根据权利要求3所述的方法,其中计算所述概率分布包括将预定概率函数应用于所述带状分布数据的每个子范围,并且所述预定概率函数是矩形函数或三角函数。
5.根据权利要求1或2所述的方法,还包括对于所述子范围中的至少一个,基于所述带状分布数据集,计算多个频率值,以便获得经编码数据的概率函数,所述多个频率值中的每一个表示所述多个数据元素中值等于所述子范围中的相应值的数据元素的计数。
6.根据权利要求1或2所述的方法,其中所述带状分布数据集定义Laplace分布,并且包括表征所述Laplace分布的一对值,在所述Laplace分布中,所述子范围值对应于定位参数μ且所述概率值对应于尺度参数b。
7.一种解码器设备,其被配置成执行根据权利要求1至6中任一项所述的方法。
8.一种压缩信息以便获得经编码数据集的方法,所述信息包括具有在值范围内的值的多个数据元素,所述方法包括:
获得(3301)概率分布数据,所述概率分布数据包括多个概率值,对于所述值范围中的每一个,所述概率值表示所述多个数据元素中的一个数据元素的值等于相应值的概率;
定义(3302)所述值范围的多个子范围;
特征在于:对于所述子范围中的每一个,计算(3304)概率值,以便获得带状分布数据集,所述概率值表示所述多个数据元素中的一个数据元素的值在相应子范围内的概率,所述带状分布数据集包括一对或多对值,每对包括指示所述值范围的相应子范围的子范围值和所述相应子范围的概率值,其中,所述带状分布数据集对应于累积分布函数,所述子范围中的两个或更多个在限度上是不相等的,所述子范围的值表示相应子范围的上边界,使得两个或更多个所述子范围具有与紧邻在前面的子范围的上边界相隔不相等的限度的上边界;
基于所述带状分布数据集,对所述多个数据元素执行熵编码(3305),以便获得经编码数据集;以及
发送或存储(3307)所述经编码数据集和带状分布数据,使得所述带状分布数据与所述经编码数据集相关联。
9.根据权利要求8所述的方法,其中执行定义所述多个子范围,使得所述子范围中的两个或更多个中的每一个的限度反过来取决于对应于所述相应子范围的所述值范围的区中的概率密度。
10.根据权利要求8或权利要求9所述的方法,其中执行定义所述多个子范围,使得对于所述值范围内给定大小的区,在其中所述多个数据元素中的一个数据元素的值在所述区内的概率较大的区内,子范围的数量较大,且在其中所述多个数据元素中的一个数据元素的值在所述区内的概率较小的区内,子范围的数量较小。
11.根据权利要求8或9所述的方法,其中定义所述多个子范围包括:
定义具有相等限度的多个初始子范围;以及
计算对所述初始子范围的一个或多个边界的调整,以便获得定义多个子范围的经调整边界集,所述多个子范围中的两个或更多个在限度上是不相等的,由此定义所述多个子范围;其中经计算的调整包括以下中的任一项:更改初始子范围的边界的范围内的位置;移除初始子范围的边界,以便将两个初始子范围合并成单个子范围;以及***边界,以便将初始子范围分为两个子范围。
12.根据权利要求8或权利要求9所述的方法,其中计算所述多个子范围中的每一个的概率值包括:对于子范围中的每一个,根据由所述概率分布数据包括的所述概率值的对应于在所述相应子范围内的所述值的相应子集,计算所述多个数据元素中的一个数据元素的值在所述相应子范围内的概率。
13.根据权利要求8或9所述的方法,其中所定义的所述值范围的子范围的数量为15,使得由带状概率数据包括的成对的子范围和概率值的数量为15。
14.一种编码器设备,其被配置成执行根据权利要求8至13中任一项所述的方法。
15.一种计算机可读存储介质,在其上存储有被配置用于执行根据权利要求1至6或8至13中任一项所述的方法的程序代码。
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/053554 WO2019111012A1 (en) | 2017-12-06 | 2018-12-06 | Method and apparatus for decoding a received set of encoded data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111699695A CN111699695A (zh) | 2020-09-22 |
CN111699695B true CN111699695B (zh) | 2022-06-21 |
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 (2)
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 | 编码信号的方法、编码器、解码数据流的方法以及解码器 |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 | 用于对字节流进行分级编码和解码的方法和设备 |
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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6028963A (en) * | 1996-06-17 | 2000-02-22 | Canon Kabushiki Kaisha | Image encoding based on judgement on prediction error |
CN101836456A (zh) * | 2007-10-30 | 2010-09-15 | 日本电信电话株式会社 | 图像编码方法和解码方法、其装置、其程序以及记录有程序的记录介质 |
WO2012126037A1 (en) * | 2011-03-23 | 2012-09-27 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding video data |
CN102939719A (zh) * | 2010-05-21 | 2013-02-20 | 捷讯研究有限公司 | 用于在二进制熵编码和解码中减少源的方法和设备 |
CN103119849A (zh) * | 2010-04-13 | 2013-05-22 | 弗兰霍菲尔运输应用研究公司 | 概率区间分割编码器和译码器 |
Family Cites Families (54)
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 |
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 |
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 |
WO2012044104A2 (ko) * | 2010-09-30 | 2012-04-05 | 삼성전자 주식회사 | 계층적 구조의 심볼을 부호화하는 비디오 부호화 방법 및 그 장치, 계층적 구조의 심볼을 복호화하는 비디오 복호화 방법 및 그 장치 |
ES2906869T3 (es) * | 2011-06-16 | 2022-04-20 | Ge Video Compression Llc | Inicialización de contexto en codificación entrópica |
FR2977111A1 (fr) * | 2011-06-24 | 2012-12-28 | France Telecom | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
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 |
US9131245B2 (en) * | 2011-09-23 | 2015-09-08 | Qualcomm Incorporated | Reference picture list construction for video coding |
BR112014004797B1 (pt) * | 2011-10-17 | 2022-02-15 | Kabushiki Kaisha Toshiba | Método de decodificação |
ES2496365T3 (es) * | 2011-10-24 | 2014-09-18 | Blackberry Limited | Codificación y descodificación de mapas significativos usando selección de la partición |
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 | 삼성전자주식회사 | 다계층 비디오 코딩을 위한 레이트 제어 방법, 이를 이용한 비디오 인코딩 장치 및 비디오 신호 처리 시스템 |
US9602827B2 (en) * | 2012-07-02 | 2017-03-21 | Qualcomm Incorporated | Video parameter set including an offset syntax element |
US9549182B2 (en) * | 2012-07-11 | 2017-01-17 | Qualcomm Incorporated | Repositioning of prediction residual blocks in video coding |
KR102445274B1 (ko) * | 2012-10-01 | 2022-09-20 | 지이 비디오 컴프레션, 엘엘씨 | 향상 레이어에서 변환 계수 블록들의 서브블록-기반 코딩을 이용한 스케일러블 비디오 코딩 |
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 |
KR20160021222A (ko) * | 2013-06-18 | 2016-02-24 | 브이아이디 스케일, 인크. | Hevc 확장을 위한 계층간 파라미터 집합 |
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 |
CN106664424A (zh) * | 2014-01-03 | 2017-05-10 | 诺基亚技术有限公司 | 参数集编码 |
GB2523348B (en) * | 2014-02-20 | 2016-03-30 | Gurulogic Microsystems Oy | Encoder, decoder and method |
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 |
WO2017195582A1 (en) * | 2016-05-13 | 2017-11-16 | Sharp Kabushiki Kaisha | Temporal sub-layer descriptor |
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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6028963A (en) * | 1996-06-17 | 2000-02-22 | Canon Kabushiki Kaisha | Image encoding based on judgement on prediction error |
CN101836456A (zh) * | 2007-10-30 | 2010-09-15 | 日本电信电话株式会社 | 图像编码方法和解码方法、其装置、其程序以及记录有程序的记录介质 |
CN103119849A (zh) * | 2010-04-13 | 2013-05-22 | 弗兰霍菲尔运输应用研究公司 | 概率区间分割编码器和译码器 |
CN102939719A (zh) * | 2010-05-21 | 2013-02-20 | 捷讯研究有限公司 | 用于在二进制熵编码和解码中减少源的方法和设备 |
WO2012126037A1 (en) * | 2011-03-23 | 2012-09-27 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding video data |
Non-Patent Citations (3)
Title |
---|
An Overview of Lossless Digital Image Compression Techniques;Ming Yang, N.Bourbakis;《48th Midwest Symposium on Circuits and System,20060221》;20060221;第1100页左栏第36-44行 * |
Multi-Resolution Based Hybrid Spatiotemporal Compression of Encrypted Videos;Qiuming Yao, Wenjun Zeng, Wei Liu;《2009 IEEE International Conference on Acoustics, Speech and Signal Processing》;20090526;3.2小节 * |
视频压缩中熵编码技术研究;高敏;《中国博士学位论文全文数据库(电子期刊)》;20170215;全文 * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111699695B (zh) | 用于对经编码数据集进行解码的方法、设备和存储介质 | |
US11632560B2 (en) | Methods and apparatuses for encoding and decoding a bytestream | |
WO2021000658A1 (zh) | 点云编解码方法、编码器、解码器及计算机存储介质 | |
CN110663255B (zh) | 用于编码和重构点云的方法和设备 | |
US10282863B2 (en) | Lossless compression of fragmented image data | |
JP6178798B2 (ja) | 終了可能な空間ツリー型位置符号化および復号 | |
CN115102934B (zh) | 点云数据的解码方法、编码方法、装置、设备及存储介质 | |
CN115396668A (zh) | 点云数据的解码方法、编码方法、装置、存储介质及设备 | |
CN114868153A (zh) | 莫顿码的构建方法、编码器、解码器、及存储介质 |
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 |