CN117676138A - 编码信号的方法、编码器、解码数据流的方法以及解码器 - Google Patents
编码信号的方法、编码器、解码数据流的方法以及解码器 Download PDFInfo
- Publication number
- CN117676138A CN117676138A CN202311652468.4A CN202311652468A CN117676138A CN 117676138 A CN117676138 A CN 117676138A CN 202311652468 A CN202311652468 A CN 202311652468A CN 117676138 A CN117676138 A CN 117676138A
- Authority
- CN
- China
- Prior art keywords
- data
- encoded
- stream
- tile
- decoded
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 275
- 238000013507 mapping Methods 0.000 claims abstract description 56
- 238000013139 quantization Methods 0.000 claims description 25
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 55
- 230000006870 function Effects 0.000 description 41
- 238000010586 diagram Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 229930091051 Arenine Natural products 0.000 description 1
- 101100194363 Schizosaccharomyces pombe (strain 972 / ATCC 24843) res2 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method 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
本申请是国际申请日2018年12月6日、国际申请号PCT/GB2018/053551的国际申请于2020年8月6日进入国家阶段的申请号为201880088756.2、发明名称为“分级数据结构”的专利申请的分案申请,其全部内容结合于此作为参考。
技术领域
本发明广泛地涉及对数据诸如图像数据和视频数据进行编码和解码以及内容传递的领域。特别地,本发明涉及一种以高效方式对视频数据和元数据进行编码的方法,其允许编码和解码过程的并行化。
背景技术
已知对数据诸如图像数据和视频数据进行编码以用于存储或流传输,以便减少存储数据所需的存储空间量或数据传输所需的带宽。举例来说,编码和解码视频数据的技术是众所周知的并且被广泛使用,例如H.264/AVC标准使用图像压缩和基于运动的估计技术的组合将视频数据编码为经编码视频流,然后将经编码视频流解码为与原始视频数据非常接近的近似值。
经编码视频流通常以比特率编码。比特率将取决于若干因素而变化,其中之一是可用于流传输经编码视频流的带宽。带宽越小,经编码视频流的可用比特率就越小。最终,带宽定义了所传递的视频流的质量,因为相对较小的比特率需要相对粗略的量化,即相对较大的量化参数(QP)。在大带宽可用的情况下,则可以使用较精细的量化,即相对较小的量化参数(QP)。该过程是创建经编码视频流时采用的较广泛的速率控制机制的一部分。
视频数据可以根据编码器和解码器之间的可用带宽量以变化的比特率被实时编码,也可以在有需求之前被编码和存储,然后作为单个比特率经编码视频流或以代表以不同比特率编码的视频数据的分段进行解码,使得存在多个视频流,并且基于可用带宽来选择流。解码器可以随着带宽的变化在不同的比特率流之间动态切换。以分级的方式编码视频数据也是已知的。在这种编码技术中,残差数据(即纠正基础层中存在的低质量信息所需的数据)将以逐渐提高的质量级使用。所有这些导致了用于编码和解码数据诸如图像或视频数据的技术越来越复杂和精细。
元数据可以用于提供对基础数据的更好的理解,尤其是在解码器处,因此可以改进速率控制技术并最终提高数据再现质量。但是,使用元数据引起的数据再现质量的提高必须与计算元数据的关联的处理和时间成本、用于存储元数据的存储成本以及用于传输元数据的带宽成本相权衡。需要用于数据编码器和解码器的改进的元数据技术以减轻这些问题中的一个或多个问题,尤其是对于图像或视频编码和解码。特别地,需要新的元数据结构,该元数据结构允许实现以下中的至少一项:生成元数据时的处理成本较低,用于存储元数据的存储成本较低以及用于传输元数据的带宽要求较低。另外,需要创建一种元数据结构,该元数据结构能够更高效地对经编码数据流进行解码。
发明内容
因此,为了减轻上述问题中的一些问题,在本发明的第一方面中提供了一种编码信号的编码器和方法,所述方法包括:获得要编码的数据集,所述数据集指示所述信号的一个或多个特性;将所述数据集映射到数据结构中,所述数据结构定义数据的例子,其中,所述数据的映射包括以下步骤:将所述数据集细分为多个图块,每个图块在所述数据集中定义元素块;将每个图块细分为多个子块;为所述多个子块中的每个子块定义对应的节点;为每个节点分配值,所述值指示与所述节点相对应的所述子块是否包含大于、等于或小于阈值的数据;以及将分配值映射到所述数据结构的第一级中。
根据本发明的另一方面,提供了一种解码经编码数据流的解码器和方法,所述方法包括在解码器处:接收包括多个图块的经编码数据集;接收数据结构,所述数据结构指示编码多个图块所需的数据量;通过以下步骤识别所述经编码数据集的要解码的一部分:识别与要解码的所述部分相关联的图块;基于编码所述图块所需的数据量来确定与所述图块有关的数据的位置;从所述经编码数据集中提取所述经编码数据集的识别部分;以及解码所述经编码数据集的所述识别部分。
根据本发明的又一方面,提供了一种对经编码数据流进行解码的解码器和方法,所述方法包括在解码器处:接收包括多个图块的经编码数据集;接收数据结构,所述数据结构指示大于、小于或等于所述多个图块的阈值的数据的分布;识别所述数据结构中要解码的所述图块,所述图块具有大于或等于对识别图块进行解码的所述阈值的数据。
根据本发明的又一方面,提供了一种对经编码数据流进行解码的解码器和方法,所述方法包括:接收包括多个图块的经编码数据集;接收数据结构,所述数据结构指示对所述多个图块中的每个图块进行编码所需的数据量;通过以下步骤识别所述经编码数据集的要解码的多个部分:识别与要解码的每个部分相关联的图块;对于每个部分,基于对与所述部分相关联的所述图块进行编码所需的数据量,确定与所述部分的所述图块相关的数据的位置;对于每个所述识别部分,从所述经编码数据集中提取所述部分;以及用第一解码器对所述经编码数据集的所述第一部分进行解码,并使用不同的第二解码器对所述经编码数据集的第二部分进行解码。
还提供了一种用于编码图像的分级数据结构,所述数据结构包括多个质量级,每个质量级包括多个层,每个层包括一个或多个数据元素。可选地,其中,每个质量级定义相应的一组经编码数据,所述相应的一组经编码数据在被解码时使得解码器能够将所述图像重构到期望的质量级;每一层包括一个或多个数据元素,所述数据元素取决于层的类型被定义,并且其中:对于第一类型的层,第一类型的数据元素被定义为包括所述一组经编码数据的子集;并且对于第二类型的层,第二类型的数据元素被定义为包括与所述第一类型的数据元素相关联的一个或多个属性。
通过对映射在数据帧内出现残差数据的例子所需的数据结构进行定义,可以提供较快的解码和编码方法。特别地,对用于编码数据的数据量稀疏化,从而减少了在解码期间需要读取的数据量。此外,数据和描述数据结构的元数据允许在不参考帧的其他部分的情况下选择性地解码帧的各个部分。因此,可以并行化解码过程。
根据所附权利要求,本发明的其他方面将显而易见。
附图说明
现在将参考附图描述本发明的实施例,其中:
图1是示出用于执行示例编码方法的***的框图;
图2是残差数据的N x N像素的图块的代表性示例;
图3是示例密集四叉树;
图4示出了根据本发明一方面的一行残差数据的密集四叉树和稀疏四叉树表示;
图5是根据本发明一方面的编码视频流的方法的流程图;
图6是根据本发明一方面的16x16级的稀疏化的代表性示例;
图7是示出16x16级的稀疏化和2x2四数据集之间的关系的示例;
图8是根据本发明一方面的8x8级的稀疏化的代表性示例;
图9是根据本发明一方面的不同级的稀疏化数据的示例;
图10是根据本发明一方面的在遍历树期间出于编码目的使用映射函数的示例;
图11是根据本发明一方面的Tesserae网格的流长度的画面与经编码流之间的关系的示例;
图12是根据本发明一方面的层-0和层-1Tesserae之间的关系的示例;
图13是根据本发明一方面的如何从画面中解码流长度的示例;
图14是根据本发明一方面的解码器如何使用画面的流长度来并行解码的示例;
图15是根据本发明一方面的用于创建层-1表示的流程图;
图16是根据本发明一方面的帧内的活动区域的示例;
图17是根据本发明一方面的用于解码活动区域的流程图;
图18是根据本发明一方面的被分配有单独的活动区域的并行解码器的示例;
图19是根据本发明一方面的数据结构的示例;以及
图20是根据本发明一方面的数据结构的另一示例。
具体实施方式
现在将参考附图描述本发明的实施例。要注意的是,以下描述仅用于使得技术人员能够理解本发明,而无意将本发明的适用性限制于读者可以容易地理解和/或设想的其他实施例。
本发明提供了一种用于编码和解码数据的方法和设备,所述数据尤其是但不限于图像和视频数据。具体地,本发明提供了一种用于对要编码的数据进行编码以及以高效方式提供和编码关联元数据的方法。另外,本发明提供了一种用于以高效方式使用编码数据的关联元数据对所述经编码数据进行解码的方法。为了便于参考,在以下描述中,要编码的数据被视为残差数据,但是也可以使用其他要编码的合适的数据,例如RGB值、YUV值等。
在图1中,以示例的方式示出了***100,***100包括经由网络连接到多个客户端装置130、132的流服务器102。
流服务器102包括编码器104,该编码器被配置成利用本文描述的方法来接收和编码第一数据信号。为了便于理解,以下参考作为数据信号的视频数据进行描述,然而也可以编码其他类型的数据(诸如,例如,图像)。流服务器104被配置成将经编码数据流例如视频流106传递到多个客户端装置130和132,诸如机顶盒、智能TV、智能电话、平板计算机、笔记本电脑等。每个客户端装置130和132被配置成对经编码视频流106进行解码和渲染。在其他实施例中,经编码数据流包括不同的数据,诸如图像/图片。
为了便于理解,参考单个流服务器102和两个接收方客户端装置130、132来示出图1的***100。在未示出但本领域技术人员将理解的其他实施例中,***100可以包括多个服务器和数万个客户端装置。
流服务器102可以是能够通过网络将经编码数据传递到客户端装置的任何合适的数据存储和传递服务器。流服务器在本领域中是已知的,并且使用单播和/或多播协议。流服务器被布置成编码且经常存储视频数据,并且以一个或多个经编码数据流106将经编码视频数据提供给客户端装置130和132。每个经编码视频流106由编码器104生成。图1中的编码器104位于流服务器102上,然而在其他实施例中,编码器104位于***100中的其他地方。流服务器102可以提供实况视频内容或视频点播(VoD)视频内容中的一个或多个。编码器104利用本文描述的技术生成经编码视频流。如在比特率控制***中已知的,编码器104接收关于目标比特率(即,希望视频被编码的比特率)的信息。
编码器104还包括速率控制器108。速率控制器108是确定视频数据要被编码的比特率的软件模块。在实施例中,速率控制器108管理单通编码器104的速率控制,然而在其他实施例中,编码器104是多通编码器。速率控制器108的部分功能是获取目标比特并确定相关参数(诸如量化参数(QP)),以使编码器106以目标比特率或接近于目标比特率产生经编码数据流。这种速率控制器108的功能在本领域中是已知的。
速率控制器108还包括速率控制器管理器110。速率控制器管理器110是确定速率控制器108的目标比特率的软件模块。下面参考图3和图4详细描述速率控制器管理器110的功能。速率控制器管理器110接收初始目标比特率(即,将由编码器104生成的期望比特率),并确定由速率控制器108和编码器106使用的经修改的目标比特率,从而以该目标比特率编码数据流。如下面进一步详细描述的,速率控制器管理器110利用了机器学习原理,以便确定速率控制器108和编码器106的最佳的经修改的目标比特率。由于对流进行编码所使用的参数和编解码器,编码器106的获得的或输出的比特率通常将与目标速率的比特率不同。因此,为了获得目标比特率,确定了经修改的比特率,所述经修改的比特率被改变,以便考虑期望比特率与由于编码过程而获得的实际比特率之间的差异。
客户端装置130和132是本领域中已知的装置,并且包括接收和解码视频流所需的已知元件,诸如处理器、通信端口和解码器。解码器被配置成对经编码数据流106进行解码。
在编码器104处接收并编码视频流,以生成经编码数据流106。如下面详细描述的,通过速率控制器管理器110和速率控制器108确定用于编码视频流的参数。
本发明的一方面在于创建一种数据结构,该数据结构用于编码数据信号,并且对以小带宽且高效的解码方式解码数据信号所需的元数据进行编码。在以下描述中,为了便于参考,我们将参考特定类型的数据信号,即视频数据,但是应该理解,这不是限制性的,并且本发明同样适用于任何合适类型的信号,包括例如静态图片、图像、3D扫描、层析图片、卫星图像、雷达图像、遥测数据、声音信号等。
视频数据可以根据需要具有任何合适的帧大小。每个帧被细分为多个图块,优选地,每个图块具有相等的大小。图块大小可以是任何大小,并且在本文中被定义为NxN图块。在实施例中,图块大小可以是64x64、32x32、16x16、8x8等中的一个。为了便于理解,参考16x16元素的图块描述以下过程,然而,这仅仅是示例性的。
本发明的一方面定义了一种数据结构,该数据结构使得数据信号诸如视频数据能够以稀疏方式被编码,以减小以质量级流传输视频数据所需的带宽,并且该数据结构允许解码器更高效地对经编码数据流进行解码(或者,在存储视频数据的情况下,减少存储和解码所需的数据存储量)。如下面更详细描述的,视频数据使用树结构以自下而上的方式被编码。为了便于参考,在下文中,我们将该树称为四叉树,但是也可以使用其他结构。从概念上讲,数据结构识别视频数据中存在要编码的数据的例子,并且在存在该数据的情况下进行映射。因此,还以低成本的方式识别没有要编码的数据的区域。结果,可以减小发送经编码数据流和关联元数据信息所需的带宽。如下面详细解释的,数据结构还允许数据被并行编码并且并行地被分别解码。数据结构还允许较高效的解码。通过阅读以下描述,这些优点将变得更加清楚。
为了解码数据结构,需要对数据结构进行描述的元数据,以便允许解码器理解经编码数据的结构并解码数据。
要注意的是,本发明可以与要编码的任何类型的数据一起使用。在视频信号的示例性情况下,要编码的数据的类型可以取决于视频信号的处理方式而变化。例如,在分级方法中——诸如本文或者例如专利号为8,977,065、8,948,248、8,711,943、9,129,411、8,531,321、9,510,018、9,509,990的美国专利中进一步详细讨论的分级方法,上述美国专利通过引用并入本文——视频信号通常被分为各个帧,每个帧包括一定数量的值(例如,像素)。然后可以对信号进行递归处理以减小其大小(例如,将Y x Z像素的完整帧(例如,层0)下采样到Y/2x Zx2像素的第一下采样帧(例如,层-1)中,然后又在Y/4x Zx4像素的第二下采样帧中(例如,层-2),依此类推),然后再进行编码。被编码的内容不一定是像素的绝对值,而是例如与像素值之间的相对差相关联的值。例如,可以取相同位置的层-1处的像素的值与层-2处的像素的上采样版本的值之间的差。该差有时可以被称为残差。可以使用变换来进一步处理残差以生成经变换的残差(例如,参见专利号为9,509,990的美国专利作为这种变换的示例),例如以进一步减小熵并提高编码过程的效率。在本说明书和权利要求书中,我们提到术语“残差”或“残差数据”以描述残差或经变换的残差,因为本发明将同等地适用于两者。因此,在上述示例性分级结构中,如本专利申请中所述,可以将残差视为要编码的数据的类型。在其他示例中,视频信号的帧的像素值可以在不相对于参考帧取任何差的情况下被直接编码(从而生成某种形式的残差),或者可以对不同类型的残差进行编码(例如,时间残差,诸如MPEG标准(如H.264)中的时间残差)。在那种情况下,像素值或其他类型的残差可以被视为要编码的数据的类型。
本文描述的过程提供了一种用于将要编码的数据帧映射到稀疏分级结构的方法。如上所述,这些数据可以是残差、像素值等。通过以下述方式进行映射,可以将视频数据帧“切片”为独立的图块。每个图块可以被单独地编码和解码,从而实现并行化。此外,当以多个质量级编码和解码数据时,以下描述的方法允许在不了解先前的质量级的情况下解码每个质量级。这是重要的优点,并且熟练的读者将理解,该能力增加了解码器的效率和灵活性。
为了便于理解,以下关于要编码的数据的单个帧进行描述,其采用第一质量级的残差数据的形式。在其他实施例中,帧可以包含原始像素值、亮度、色度等。这样的帧可以具有任何大小,并且可以被细分为多个图块,每个图块的尺寸为NxN。为了便于理解,以下参考16x16元素例如16x16残差的图块进行描述。
本文描述的过程引起对数据(诸如残差数据)以及数据结构的编码,该数据结构用于映射数据在经编码数据中的出现情况。还提供了在其他数据结构中编码元数据(诸如,编码残差数据所需的位数)并描述结构元数据的能力。因此,编码过程引起对数据、元数据的编码,所述元数据描述数据和数据结构以映射数据和元数据。还描述了一种解码过程,其中,解码器使用数据结构来读取经编码数据。如下面通过将元数据和数据结构提供给解码器所详细描述的,解码器可以确定数据在经编码数据流内的位置并且选择性地对数据流的感兴趣的部分进行解码。
图2是残差数据的图块的示例,所述图块的大小为NxN。为了便于理解,以下参考残差数据的16x16图块进行描述。如前所述,该原理适用于其他大小为NxN的图块。
如从图2中可以看到的,图块的元素具有各种残差数据值。在其他实施例中,图块的元素可以是与视频数据的属性(例如亮度、色度、噪声、比特大小等)有关的其他数据和/或元数据。
如图2所示,许多元素的值为零,并且其余元素的值为非零。图2中所示的值仅作为示例示出,并且所示的值可以是任何合适的值。
残差数据的存在通常指示图像数据中特征或边缘的存在(因为已知这样的特征的频率太高而无法以较低的质量级捕获)。如下面进一步详细解释的,以下过程允许以高效方式对所有对应的像素编码残差数据。特别地,数据结构识别图块内具有残差数据的区域或区(例如,存在边缘之处)。
众所周知,在编码残差数据时,附近元素的某些组将具有全零值(表明没有理由将残差数据与这些元素相关联),而某些元素将具有非零值。因此,并非图块内的每一个元素都将为非零。所描述的过程的一方面是,例如在元素具有零值或者具有等于或小于阈值的值的情况下,不需要对高比例的元素进行编码(并因此进行解码)。所描述的过程识别图块上的残差数据的块,并且仅编码(并且因此解码)必要的块,从而稀疏化数据。这种稀疏性在图2中由图块内取值为“0”的元素来表示。所描述的过程的另一方面在于,除了稀疏化残差数据之外,还提供稀疏树结构形式的元数据,其然后允许解码残差数据,特别是高效地解码残差数据。
因此,可以通过仅编码和解码非零值来利用这种稀疏性以提高编码和解码的速度。相反,密集方法将对图块内的每个值进行编码和解码,而不管其是否为零。当大量数据为零时,这种方法可能效率不高。此外,如下面详细解释的,该过程允许在不参考其他元素的情况下单独地对帧的各个部分或元素进行解码。因此,可以利用多个单独的解码器对以所述方式被编码的数据进行解码,从而允许解码过程的并行化。
因此,本发明的一方面在于高效的方式,通过所述方式可以识别和使用图块的非零元素。
在实施例中,稀疏四叉树数据结构用于在编码和解码期间识别包含非零值的图块的元素。
图3示出了密集四叉树300的代表性示例。四叉树由节点(例如302、306)和将节点(诸如父节点302)连接到子节点306的边缘(例如304)组成。在图3的四叉树中,每个父节点具有正好四个子节点。四叉树可以包含多个叶节点308。叶节点被定义为不包含任何子节点的节点。四叉树还可以包含根节点302,其被定义为没有父节点的节点。根节点302被称为树300的最低级节点302。叶节点308被称为树的最高级节点。包含父节点和子节点两者的节点(例如306)被称为内部节点。
在图4中,示出了用于对一行残差数据402进行映射的四叉树400。所述四叉树400由叶节点403、内部节点412和根节点406组成。四叉树400的每个叶节点403对应于行402上特定残差数据项的位置。
作为示例,叶节点403映射到残差数据404的项。通过以设置的遍历顺序(例如深度优先)从根节点406遍历四叉树,可以在编码和解码期间以相同的顺序读取行402上的每个元素。如上所述,以上述方式读取行上的残差数据的每一项可能是低效的。当只有一些残差为非零时,这种低效尤其明显。
本发明的一方面在于识别在树上的最低可能级处为空的图块的区(即,该区内的每一个元素的残差值为零),以提高编码和解码过程的效率。返回图4,行402上的区410和410A仅包含值为零的残差。在这种情况下,当解码行402时,遍历可能在节点412处中断,并且在412A处再次中断,因为它们的所有子节点都映射到零残差。
因此,使用稀疏四叉树400A。稀疏四叉树以与密集四叉树相同的方式被定义,但节点为空。在稀疏四叉树中,每个父节点具有恰好四个子节点,或者没有子节点。这与图3中每个父节点具有恰好四个子节点的四叉树相反。如果内部节点的所有子节点都同样为空,则该内部节点被视为空。如果叶节点的对应残差值为零,或者对应残差值小于某个阈值,则该叶节点被视为空。
作为示例,内部节点414为空,因为其叶节点全部映射到为零的残差值,例如416、416A。在遍历稀疏四叉树期间,仅当节点不为空时才访问所述节点的子节点。因此,如果在遍历期间访问空节点,则遍历不会继续至所述空节点的子节点,因为根据定义,它们全部将同样为空。
在解码期间,以自下而上的定义遍历树400A;即,从最低级到最高级遍历树400A。在实施例中,以深度优先的方式遍历树。这样做等效于以z顺序遍历来访问N x N图块的元素。这允许将空间信息用作编码和解码过程的一部分。其还确保以与编码元素相同的顺序解码元素。在其他实施例中,可以采用其他遍历方法来利用图块的结构的其他方面。
因此,稀疏四叉树数据结构定义了残差数据的例子和位置。
图5是根据本发明一方面的构造稀疏四叉树的过程的流程图。然后可以将稀疏四叉树编码为经编码数据流的一部分。
参考图5描述的过程是用于以稀疏方式映射残差数据的例子的过程。该映射过程确定用于对数据进行编码的数据结构的第一层(层-0)。
为了便于参考,以下参考数据的图块例如残差值进行描述,所述图块的大小为16x16像素。在其他实施例中,以下过程可以用于不同大小的图块,例如8x8、32x32、64x64等。
本文所述的过程提供了一种方法,该方法用于以分级树结构将来自视频数据的第一帧的数据(残差数据、元数据或任何其他形式的数据)的图块映射为稀疏四叉树。如下面详细描述的,通过以下面描述的方式进行映射,减少了要编码(并且因此随后被解码)的数据的量。此外,当该过程用于以分级方式以多个质量级对数据流进行编码时,所描述的数据结构消除了对先前或进行中的质量级的任何要求。因此,可以单独地且在不参考任何其他层的情况下编码和解码质量级。因此,与许多已知的分级编码方案相反——在已知的分级编码方案中,需要解码最低质量级以便解码任何较高质量级——所描述的方法不需要解码任何其他质量层。
一方面是,分级树结构定义了何时存在数据(并且因此需要进行编码)的例子并提供了映射以识别存在这种数据的位置(在图块中的位置)。如下所述,由于以从下到上的方式进行编码,因此以减少要编码的数据的量的方式来识别不存在数据的帧区域,从而稀疏化数据。
为了便于理解,以下关于以第一质量级被编码的视频数据的单个帧进行描述。
在步骤S102,接收要编码的视频数据的第一帧。视频数据可以存储在本地,也可以从外部来源诸如服务器被接收。
视频的第一帧已与视频数据、元数据或描述该帧的第一特性的数据相关联。
确定与视频数据的第一帧相关联的残差数据的步骤可以通过使用本领域中任何已知的合适方法来执行。本发明定义了一种方法,该方法用于以高效方式对帧的残差数据和任何其他元数据进行编码。由于数据可以与残差数据有关,因此本文所述的过程可以用于对视频数据的帧的增强进行编码。
在步骤S104,确定残差数据。确定残差数据的步骤可以使用任何已知的过程来进行,例如,从重构信号中减去参考信号的过程,诸如公告号为WO2013011494的专利中所描述的,该专利的内容通过引用并入本文。
因此,在步骤S104,在实施例中,对于每个像素确定视频的第一帧的残差数据,从而定义残差帧。
在其他实施例中,残差帧已经被预先确定,并且被存储在存储器中。在这样的实施例中,残差帧在步骤S104被发送到编码器并且被编码为经编码数据流的一部分。
该方法的以下步骤定义了一种新颖的方法,该方法用于定义和存储对残差数据的分布进行映射的元数据。
在步骤S106,残差帧被细分为多个图块。在优选的实施例中,整个帧上的图块的大小是规则的,并且定义了16x16像素图块。
图2示出了残差数据的图块的示例。
如参考图2所描述的,本发明的一方面在于定义一种数据结构,该数据结构定义用于视频数据帧的元数据的例子和位置。
为了定义残差数据的例子在图块上出现的位置,在步骤S108,通过执行二进制映射操作将残差的16x16图块转换为二进制值。取决于元素的值,为每个元素分配二进制值。如果元素具有非零残差值,则为二进制映射中的等效元素分配值“1”,否则为其分配值“0”。在其他实施例中,使用非零阈值。例如,如果确定某个非零残差值可以被认为是可接受的,则可以将该值用作阈值,因此,如果元素大于非零阈值,则为其分配值“1”,如果该元素小于非零阈值,则为其分配值“0”(取决于如何实施过程,可以为等于非零阈值的值分配“0”或“1”)。注意,“0”和“1”只是用于识别两种替代方案的等效的逻辑二进制数字——换句话说,它们可以是实数(零和一),也可以是两个等效的逻辑值。
根据定义,在步骤S108产生的二进制映射具有与残差数据的图块相同的大小(例如16x16),并且对包含残差数据图块内的残差数据的元素的位置进行了定义。由于以稀疏方式定义数据,因此该数据定义了映射残差数据的16x16的稀疏化级(LOS)。在实施例中,鉴于层-0中保存的残差数据,16x16的LOS不被编码为经编码数据流的一部分,因为这样的数据在经编码数据流中是冗余的。但是,这种数据用于定义稀疏化的其他级。
以下过程用于识别图块内不包含任何残差信息的最大可能区域。如果可以将图块的一部分(例如8x8元素)识别为不包含任何残差信息,则描述该部分的数据需求将减少为零。因此,可以将步骤S112至S118视为定义不包含残差数据的图块的区域。
图6示出了图2的16x16的LOS的示例。从图6中可以看到,图2中的任何非零值都将转换为值1,并且因此映射残差数据。
因此,在残差数据存在的情况下,逐个像素映射16x16的LOS。
因此,其定义了四叉树数据结构600A的最高级节点。
在步骤S110,将16x16的LOS细分为多个数据集。每个数据集优选地是2x2像素的四元组。因此,将16x16的LOS细分为8x8布置的非重叠2x2四数据集。该8x8结构定义了8x8的LOS。
因此,其定义了四叉树数据结构中下方的下一级。
此外,在步骤S110,将数据集分组为节点。每个节点包括2x2的数据集分组。
图7是图6的16x16的LOS的8x8的LOS 600的表示,其中,像素已被分组为数据集,每个数据集是2x2像素的四元组。图7中示出了四个数据集A、B、C、D。为了便于理解,图7中未示出所有的数据集。
每个数据集与2x2数据集的节点相关联。在图7所示的示例中,数据集A、B、C和D将节点定义为2x2的四元组。这被识别为节点N。
在步骤S112,每个数据集与节点相关联。在优选的实施例中,节点被定义为数据集的2x2四元组。
节点N的示例在图7中用虚线框示出,其中包含数据集A、B、C、D。
在步骤S114,为每个数据集分配单个值,所述单个值指示定义每个数据集的像素是否包含任何大于阈值的残差信息或非零值。如果执行步骤S108并且发生二进制映射,则阈值是任何大于“0”的值。在其他实施例中,阈值可以是任何值。
图8表示将阈值应用于元数据的步骤。在图8中,数据集A、B和D都具有至少一个具有非零值的元素,因此,A、B和D中的每个具有值“1”。数据集C完全包含0值,因此数据集C被分配值“0”。因此,图8为图块定义了8x8的LOS,其中,数据定义了是否存在任何其他残差信息。在图8中,还示出了A、B、C、D的节点N。在替代实施例中,可以确定如果数据集包括大于特定阈值的多个非零值,则将值“1”分配给该数据集,而如果数据集包括小于特定阈值的多个非零值,则将值“0”分配给该数据集(如果数据集具有等于阈值的多个非零值,则可以取决于如何实施过程来分配值“0”或“1”)。例如,如果阈值是2并且如果数据集具有大于2的多个非零值则将分配值1,则图7中的数据集A、B和C将被分配值“0”,并且图7中的数据集D将被分配值“1”。
本发明的一部分是使用最小量的信息经由树结构来定义元数据的结构。本发明的一方面在于,如果确定定义节点N的所有四数据集(例如,A、B、C、D)不包含任何残差数据,则可以将形成该节点的所有像素识别为不包含残差数据。这样,节点就完成了,并且不需要对树结构进行进一步的高级定义。但是,可以识别该节点是否是不包含任何残差信息的较大结构的一部分。相反,如果形成节点的四数据集中的任一四数据集包含残差数据,则需要其他高级数据来定义残差数据出现的位置。
在步骤S116,为该结构确定4x4的LOS。与通过从较高级(即16x16的LOS)中分组数据而创建的8x8的LOS的创建一样,通过将8x8的LOS分组到定义2x2四元组的数据集或子节点中来创建4x4的LOS,并且基于形成四元组的8x8的LOS元素的值为每个四元组分配二进制值。在图8所示的示例中,数据结构A、B、C和D在4x4的LOS中定义2x2四元组。
以与8x8的LOS相同的方式确定4x4的LOS。基于任何元素是否包含非零值,为数据结构的每个2x2四元组或后代节点分配二进制值。在图8所示的示例中,由于元素A、B和D具有非零值,因此整个四元组被分配非零值。对于定义4x4的LOS的所有其他四元组或后代节点(未示出)重复此过程。与8x8的LOS相似,在替代实施例中,可以确定,如果2x2四元组包含大于特定阈值的多个非零值,则将值“1”分配给该数据集,而如果2x2四元组包含小于特定阈值的多个非零值,则将值“0”分配给该2x2四元组(如果2x2四元组具有等于阈值的多个非零值,则可以取决于如何实施过程来分配值“0”或“1”)。例如,如果阈值是1并且如果2x2四元组具有大于1的多个非零值则将分配值1,则图8中的由A、B、C和D形成的2x2四元组将被分配值“1”,并且对于其他2x2四元组依此类推。
在步骤S118,还基于4x4的LOS值来定义2x2的LOS,这以相同的方式进行。
从以上过程可以看出,如果2x2的LOS的元素之一被识别为没有残差数据,则在编码过程中,由于没有要编码的数据,因此可以实质上忽略或绕过帧的四分之一。
图9是整个结构的示意图。以这样的方式描述数据:定义残差数据(在16x16图块中)902,然后定义8x8的LOS 904、4x4的LOS 906和2x2的LOS 908。
在级902、904和906的每个级处的每个2x2四元组用于以分级方式在进行的级中定义元素。例如,级902处的2x2四元组910用于定义级904处的元素912的值。在2x2四元组910内,存在至少一个非零值,因此在912处记录值1。然后使用8x8的LOS 904处的2x2四元组914内的值来定义值916。随后,使用4x4的LOS 906处的2x2四元组918内的值来定义2x2的LOS908处的值920。
如上所述,由于定义了残差数据,因此16x16的LOS是冗余的,因为该信息已存在于残差数据中。但是,如上所示,在确定8x8的LOS的过程中可以使用16x16的LOS。
返回图5,在步骤S120,对与图块和稀疏四叉树结构有关的数据进行编码。数据被编码为值序列,所述值序列定义了2x2的LOS、4x4的LOS、8x8的LOS和残差数据。所述一系列值被称为流、比特流或字节流。
因此,稀疏四叉树拓扑被编码到数据流中。在实施例中,可以为节点的每个四元组(即2x2节点结构)分配节点值以指示该节点是否具有数据。该值被称为T节点值。如果该节点没有数据,则无需发送与空节点有关的任何其他数据来定义稀疏四叉树结构,因为这种信息是冗余的。
例如,如果16x16的图块包含一个不具有稀疏元素的四元组,则该图块的流(包含稀疏四叉树的拓扑和残差数据)可以按以下方式被编码:
0100(2x2的LOS的T节点)
1000(T节点,4x4的LOS)
0100(T节点,8x8的LOS)
Res1
Res2
Res3
Res4
2x2的LOS的T节点定义只有单个四元组具有残差数据。由于四个四元组中的三个四元组没有小于2x2的LOS的数据,因此无需为四叉树拓扑定义任何其他数据。因此,由于所有其他值均为空,所以4x4的LOS和8x8的LOS仅存在单个T节点。最后,定义残差数据值(Res1、Res2、Res3和Res4)。因此,以稀疏方式提供该结构以去除数据中的任何冗余。
再举一个示例,如果两个相邻的四元组未被稀疏化,则数据流可以具有以下形式:
0100(T-节点)
1000(T-节点)
0110(T-节点)
Res1
Res2
Res3
Res4
Res 5
Res 6
Res 7
Res 8
其中,在上述相同的方式中,可以看出冗余数据没有被编码。
在实施例中,在T节点的所有值都包含数据的情况下,可以用元数据的单个位替换T节点的数据,以指示Tessera的所有T节点都具有值1111。在这种情况下,无需对树进行编码或解码,因为所有节点的值都是恒定的。
在步骤S122,进行检查以测试在步骤S106产生的所有图块是否已经被编码。如果仍然剩下要编码的图块,则该过程进入步骤S108,并且针对下一个图块重复上述过程。如果没有剩下要编码的图块,则该过程终止。
这样,该过程以稀疏方式定义了对残差数据的例子进行定义的数据结构。
如上所述的数据结构被认为属于层-0。对于视频数据帧,层-0对应于使用上述过程创建的所有数据结构的集合,以定义残差数据的例子。
本发明的一方面在于上述图块和四叉树结构是本文中被称为Tessera的通用抽象数据类型的特定示例。
Tessera被定义为用于表示固定大小的编码单元的抽象数据类型。编码单元可以是NxN的任意大小,诸如如2x 2、4x 4、8x 8、16x16、32x 32等。Tessera用于表示固定大小的数据块的值和结构。
Tessera包括固定大小的数据块,并且还包括用于将数据的位置映射在所述数据块上的结构。如上所述,在实施例中,Tessera包括稀疏四叉树以映射数据的位置。在其他实施例中,可以使用其他结构,诸如八叉树。
在实施例中,Tessera还可以包括与编码和解码所需的Tessera的其他方面有关的其他信息,诸如报头信息。
如上所述,用于表示残差数据的Tessera被称为残差数据的Tessera。因此,个别的Tessera具有参数类型。参数类型定义在Tessera的固定大小的块上存储的内容。在实施例中,该参数类型是残差信息。在其他实施例中,可以使用其他参数类型,诸如元数据、亮度、色度等。
在实施例中,Tessera还可以包括在编码和解码期间对Tessera上保存的值应用的映射函数。
在实施例中,当编码Tessera时,可以使用映射函数来计算要编码的值。在N×N块上的特定位置i处,其中,i处于[0,N2)的范围内,处于所述位置处的元素的值被表示为ui,并且要编码的值被表示为vi。映射函数f()可以用于根据元素的值计算要编码的值,使得
vi=f(ui) (2)
在实施例中,映射函数被设置为识别,使得
在另一实施例中,映射函数被设置为前缀差函数,使得
其中u0=0。
因此,如下所述,通过选择不同的映射函数,可以对不同的数据进行编码且随后进行解码。对要编码的数据的选择为利用本文描述的方法的***提供了进一步的灵活性。
图10示出了使用映射函数的代表性示例。在图10所示的示例中,该函数是如上所述的前缀差函数。在其他实施例中,使用其他映射函数。
在图10中,示出了具有叶节点1002的四叉树1000,所述叶节点映射到残差值1004。映射函数1006用于根据残差值1004确定要编码的值1008。要编码的值1008可以用作下一映射函数1010的输入。
遍历四叉树1000,使得按设置的顺序访问其叶节点,即A、B、C、D、E和F。当访问节点1002时,将函数1006应用于其值1004以产生要编码的值1008。在实施例中,该函数如等式3中所定义的,其将要编码的值映射为等于节点的值,即,识别函数。
当以上面参考图5和步骤S120描述的方式将四叉树拓扑编码到数据流中时,使用T节点对数据进行编码以避免对冗余数据的编码。
在实施例中,当使用等式4中定义的前缀差函数时,先前编码的值可以馈入下一个函数调用1010。前缀差函数允许以高效的方式对具有较大残差值的数据块进行编码。如果所述数据块包含较大的残差值但残差值之间的变化很小,则前缀差将对这些值之间的差进行编码。
参考数据的编码描述了上述方法,并且使用相同的原理解码数据。在实施例中,可以以相同的方式解码Tessera,其中编码映射函数的反函数用于计算要在特定位置处解码的值。
在实施例中,当将等式4中描述的前缀差函数用于编码时,可以将前缀和函数用于解码。前缀和函数被定义为
其中ui是要解码的值,vi是解码后的值,并且u0=0。
给出了如何将等式(4)的前缀差函数和等式(5)的前缀和函数用于编码和解码数据流的示例。给出了数据流:x=[10,14,8,10,1]。将等式(4)的前缀差函数f应用于逐个元素的x以产生要编码的流:
[(10-0)]
[10,(14-10)]
[10,4,(8-14)]
[10,4,-6,(10-8)]
[10,4,-6,2,(1-10)]
f(x)=[10,4,-6,2,-9]
为了解码上述流,应用等式(5)的前缀和函数f′,使得:
[(0+10)]
[10,(0+10+4)]
[10,14,(0+10+4 -6)]
[10,14,8,(0+10+4 -6+2)]
[10,14,8,10,(0+10+4 -6+2-9)]
f′(f(x))=[10,14,8,10,1]
因此,前缀和功能恢复原始输入流x。
尽管上面参考图5描述的过程允许以高效的方式描述数据,但是对于大小为NxN的图块,实际上,视频数据的帧可以大于NxN。因此,本发明一方面在于可以组合多个Tesserae以在网格中定义较大的元素。
例如,可以将多个16x16元素的Tesserae布置成16x16的网格,以表示256x256元素的区域。通过将每个16x 16Tessera整理为16x 16网格,可以定义256x 256帧。此外,由于实际上帧通常大于256x 256,因此可以将256x 256帧堆叠到另一个16x 16网格中。定义16x16元素的较大结构的该过程可以根据需要被重复多次,以定义期望大小的帧。
图11示出了Tessera的网格或堆栈的代表性示例。
在图11中,示出了由Tesserae的网格1102表示的帧,该网格包括M行和M列的Tessera。
为了便于理解,仅显示了M x M Tessera的子集。个别的Tessera,例如1104,代表固定大小的NxN数据块。正方形1104、1106、1108和1110都代表与Tesserae相关联的数据块。为了便于理解,Tessera还包括四叉树,其未在图11中示出。
由Tessera表示的数据可以包含至少一个非零值。例如,由Tesserae 1104、1106和1110表示的数据都包含至少一个非零值。Tessera 1108表示仅具有零值的数据。因此,Tessera1108被认为是空,因为其不与任何残差数据相关联。
图11还示出了与Tesserae 1102的网格相对应的数据流1102A的示意图。流1102A是各个Tessera流1104A、1106A等的串联。流1104A具有对应的流长度1104B。如上所述,将Tessera 1104编码为值序列1104A,该值序列定义了残差数据8x8的LOS、4x4的LOS、2x2的LOS以及用于表示Tessera的任何其他数据。所述值序列被称为流。流长度是定义流中的一组数据所需的位数(或字节)。因此,流长度1104B对应于定义由流1104A表示的Tessera1104所需的位数(或字节)。
Tessera内的数据量以及因此Tessera的流长度将取决于用于编码Tessera的数据量。由于要存储的数据量是可变的,因此取决于例如残差数据的存在程度,每个Tessera的流长度也是可变的。
例如,如果将速率设置为每个元素0.5位,则对于具有所有非零值和3个LOS的16x16Tessera,编码Tessera所需的位数将被定义为:
16×16×4×0.5位每个元素=512位=64字节(1)
由于数据被稀疏化,因此不对不包含数据的元素(即,具有零值的残差数据或小于阈值的值的元素)进行编码。因此,需要将Tessera的流长度和Tessera内的各个元素存储为编码过程的一部分,使得可以对Tessera进行正确的解码。
空的Tessera 1108的流1108A的长度1108B等于零。在实施例中,流长度1108B仍被记录在流1102A中,以便指示Tessera在网格1102中但为空。
给出流1102A的总流长度1102B作为Tesserae网格1102中每个Tessera的流长度的总和。因此,流长度1102B对应于使用所描述的方法对视频数据帧进行编码所需的流长度。
在实施例中,可以使用顺序编码和解码来编码和解码流,例如代表Tessera网格1102的1102A。
顺序编码按设置的顺序编码流,使得随后可以按相同的顺序解码流。在实施例中,该顺序是根据Tessera的四叉树结构的深度优先的z顺序遍历。在其他实施例中,可以使用其他排序。
本发明的一方面在于,视频数据帧可以使用上述Tessera抽象数据类型并行和/或以非顺序方式被编码和解码。有利地,这允许单独解码帧的各个部分,而不必以顺序方式解码数据。
参考图11,形成Tesserae大网格1102的每个个别的Tessera,例如1104、1106等,可以独立于任何其他Tessera被编码且随后被解码。在以下描述中,用于表示残差数据的Tessera也被称为“图块”,而用于表示元数据的Tessera也被称为“画面”。
为了允许并行编码和解码,需要知道Tessera在Tesserae网格上的位置。例如,参考图11,为了编码和随后解码Tessera 1110,需要知道其在Tesserae网格1102上的位置。Tessera 1110在Tesserae网格1102上的位置对应于流1110A在较大流1102A内的位置。
因此,本发明一方面在于,在代表Tesserae网格的数据流内识别与给定Tessera或多个Tessera有关的数据的位置,以允许所述Tesserae网格的并行编码和解码。该方面还允许对数据流进行部分解码;也就是说,可以对个别Tessera进行解码,而无需对任何先前的Tessera也进行解码。通过使用Tessera定义Tesserae网格可以实现该方面。
作为示例,参考图11,为了使用顺序解码来对Tessera 1110进行解码,先前的图块1104、1106和1108将需要首先通过对其流1104A、1106A和1108A进行解码来被解码。为了使用并行解码来对Tessera 1110进行解码,需要知道与Tessera 1110相对应的流1110A在整个流1202A内的位置。
如上所述,本发明的关键方面在于,可以使用Tessera来定义Tesserae网格。这样的Tessera在本文中被称为画面。大小为NxN的画面记录元数据。在实施例中,所记录的元数据是NxN图块网格中的每个图块的流长度(在画面属于层-1的情况下,如下面进一步描述的)或静态画面网格中的每个画面的流长度(在画面属于层-2或更高层的情况下,如下所述)。图块记录了NxN数据块的残差信息,而画面记录了Tesserae的NxN布置的元数据。
每个图块被称为属于层-0。对应的画面被称为属于层-1。因此,本发明的一方面在于,形成Tesserae的分级结构以表示较大的网格单元。
图12示出了层-0和层-1Tesserae与两层的经编码流1224之间的关系的代表性示例。
示出了单个层-0Tessera 1202。Tessera 1202是残差数据的Tessera(即,图块),并且包括残差数据的16x16网格1204。Tessera 1202还包括2x2的LOS1206、4x4的LOS1208和8x8的LOS1210。
示出了单个层-1Tessera 1212。Tessera 1212是画面,并且包括元数据的固定大小编码单元1214,例如流长度。画面1212还包括2x2的LOS1216、4x4的LOS1218和8x8的LOS1220。
画面1212定义了与层-0处的图块相关联的元数据网格。画面1214的每个非零元素记录在图块网格中的该位置处的图块的元数据,例如流长度。作为示例,画面1212的元素1222对应于编码图块1202所需的总流长度。
层-1和层-0Tesserae形成单个流1224。从左到右读取流1224,使得在与层-0Tesserae1224B有关的部分之前读取与层-1 1224A相关的流部分。
在图12所示的示例中,可以通过对与画面1212有关的流1224的初始部分1212A进行解码来执行部分或并行解码。然后使用在编码期间使用的相同遍历顺序(例如,z顺序遍历)来遍历画面1212。在遍历期间,可以应用映射函数以获得解码的流长度值。然后,所述解码的流长度值允许层-0流1224B的部分被并行地读取和解码。
图13示出了如何从画面解码流长度的代表性示例。
示出了由NxN个元素组成的画面1300。为了便于理解,显示了元素总数的子集。每个元素对应于关联的图块的流长度。例如,元素1302包含值16,该值指示需要16个字节来读取与元素1302相关联的残差数据的Tessera。
以设置的顺序1304访问画面1300的元素。该顺序对应于元素的z顺序遍历。使用相同的遍历对画面的元素进行编码,就像对解码所使用的那样。在其他实施例中,可以使用另一顺序来访问画面1300的元素。
图13还示出了流1306。流1306对应于画面1300定义的图块网格的流。因此,流1306可以被理解为包含数据的一个或多个部分,所述部分与各个图块有关。例如,流1306的部分1302A对应于图块T1的经编码流。因此,部分1302A具有在画面1300中定义的流长度1302。
如果画面1300的元素使用映射函数被编码,则所述元素必须使用所述映射函数的逆函数被解码。例如,在图13所示的示例中,在编码期间使用了等式4中定义的前缀差映射函数,因此,应使用等式5中定义的前缀和映射函数来解码值。例如,值[16,0,-16,4,-4,16,-2]将使用等式5被转换为实际的流长度序列,如[16,16,0,4,0,16,14],其意味着图块T1的流长度为16,图块T2的流长度为16,图块T3的流长度为0(实际上在流1306中不存在),图块T4的流长度为4,图块T5的流长度为0(实际上在流1306中不存在),图块T6的流长度为16,并且图块T7的流长度为14。因此,如果仅需要解码图块T6,则解码器将首先通过对图块T1至T5的流长度求和(在本示例中为36个字节)来计算直到图块T5的流长度,然后在知道那些字节对应于图块T6的情况下将跳过前36个字节并解码接下来的16个字节。
在层-1中使用静态画面可以进行大规模并行解码,因为可以通过使用画面1300查找数据的所述部分在流1306内的位置,从而使用多个解码器对帧的各个部分进行解码。
图14是如何并行使用四个解码器来解码由图13的画面1300表示的前四个图块的示例。通常,每个图块可以由单独的解码器解码,从而允许进行大规模并行解码。
例如,如果使用差映射函数如图13所示对流长度进行编码,则每个解码器将遍历画面1300的四叉树以获得图块在流1306中的流长度(S)和位置(P)。流长度将被计算为遍历期间遇到的画面1300上的元素值的总和。该位置将被计算为遍历期间在画面1300上遇到的元素值的累积和。
作为示例,参考图13和图14,解码器D4解码图块T4。图块T4在流1306中的流长度作为遍历期间遇到的值的总和来给出:(16+0 -16+4)=4。因此,需要4个字节来解码图块T4。图块T4在流1306中的位置1308作为遍历期间遇到的值的累积和来给出:(16)+(16+0)+(16+0+-16)=32。
但是,如果将画面1300中的流长度记录为实际的流长度,即在图13的示例中为[16,16,0,4,0,16,14],则解码器可以将图块的流长度(S)计算为在与该图块相对应的位置处读取的实际值,并且将图块的位置(P)计算为在遍历期间遇到的画面1300上的元素值的累积和。例如,又使用解码器D4对图块T4进行解码的示例,流长度将是在遍历的位置4中找到的值(即4),并且该位置将是16+16+0=32。
因此,本发明的一方面在于,视频的帧可以被并行地编码和解码以允许大规模并行化和部分解码。
本发明的一个重要方面在于,以与Tessera结构允许以并行方式分别解码每个图块相同的方式(例如,为每个图块使用单独的解码器),也可以通过为每个图块使用单独的编码器来单独解码每个图块。当Tessera为每个图块定义流长度时,以上述方式,可以为每个图块独立地提取和处理数据。此外,由于与许多编码***不同,图块不具有相互依赖性,因此不需要知道相邻图块来解码图块。
可以使用各种编码方案来编码各种Tesserae。在实施例中,霍夫曼编码用于并行地编码和压缩流。因此,霍夫曼编码被用于并行地解码流。在这样的实施例中,霍夫曼编码也可以用于顺序地解码流。在另一实施例中,如果使用霍夫曼编码来顺序地编码流,则可以使用霍夫曼编码来并行地或顺序地解码流。
在实施例中,算术编码用于并行地编码和压缩流。如果使用算术编码来并行地编码和压缩流,则经编码流被并行地解码。在另一实施例中,算术编码用于顺序地编码和压缩流,并且算术编码用于顺序地解码流。
图15是创建画面(即,层-1Tessera)的过程的流程图,该画面用于定义如上所述的包括层-0的图块网格中每个图块的元数据,例如流长度。
从概念上讲,以下内容可以被描述为参考层-0描述的原理的扩展。将定义每个NxN图块的元素相组合以便定义单个实体。
参考大小为256x256个元素的视频数据帧和大小为16x16个元素的固定大小的编码单元进行以下描述。这是非限制性示例,并且以下描述的过程可以应用于任何大小的视频数据帧,例如128x128、512x512、1024x1024等。
在步骤S302,创建尺寸为16×16的画面。如上所述,该画面用于存储残差数据的每个16×16Tessera的残差信息的流长度。注意,可以将与图块相关联的其他元数据存储在静态画面中,例如,与图块中的残差的分布相关联的元数据。
在实施例中,可以初始化画面,使得其256个元素中的每一个元素被设置为具有值“0”。在这样的实施例中,必须对画面上的每个元素进行第一次遍历并将其值设置为零。
在另一实施例中,访问画面的每个叶节点并相应地设置值。
值的设置如参考确定层0的四叉树的值所述。
在S304,确定对S302中创建的画面的每个元素进行访问的顺序。在实施例中,该顺序被设置为画面的z顺序遍历。这使得能够以顺序方式访问画面的元素。在其他实施例中,可以使用其他排序,诸如随机顺序、增量行遍历等。优选地,该顺序与在先前层(层-0)所使用的顺序相同。
在S306,设置位置以追踪当前正在访问画面上的哪个元素。根据在S304计算的遍历顺序,将画面上的当前位置设置为第一位置。画面上的位置是指单个元素的位置,并且在实施例中可以是与画面的元素的遍历顺序相对应的整数索引。在另一实施例中,该位置可以是表示元素在画面的固定大小的编码单元上的行和列位置的整数元组。
在S308,计算流长度。这对应于对每个图块的残差信息进行编码所需的总位或字节。流长度被存储在画面上的当前位置中。在实施例中,映射函数用于记录要存储的值。在实施例中,该映射函数是身份(等式2)。在另外的实施例中,可以使用其他映射函数,诸如前缀差(等式4)。
在S310,进行检查以查看是否已经访问了在S304中找到的排序中的所有位置。如果该检查的结果为假,并且仍然有要访问的位置,则该过程进入步骤S312。在步骤S312,将当前位置设置为列表中要访问的下一个位置。如果在步骤S310的检查结果为真,则该过程进入S314。
在S314,在S302中创建的画面现在包含与原始256×256残差网格中的每个16×16图块有关的流长度信息。由于并非画面的每一个元素都将为非零,因此在优选实施例中,画面被编码为稀疏四叉树。因此,在S314,根据上述方式来计算画面的稀疏四叉树结构。
稀疏四叉树以与上面参考层-0所述的相同方式被定义。同样,以严格自下而上的方式对数据进行编码以便稀疏化数据。
可以根据需要将上述过程重复多次以便定义期望的帧大小,并引起进一步的分级层,例如,层-2、层-3等,其中,每个层具有其自己的稀疏四叉树以映射其组成元素的流长度。最终的分级层将定义单个画面。
在下文中,提供了一些示例以便说明如何构成层。为了便于参考,假设Tessera的大小为16x 16,即其包含256个元素(例如图块的残差,静态画面的流长度)。但是,相同的示例可以适用于其他尺寸,诸如32x 32、8x 8等。
在第一示例中,我们假设需要对256x 256像素的帧进行编码。因此,将需要使用256个图块(即,(256/16)x(256/16)),并且层-0将由所述256个图块形成。由于存在256个图块,因此将有256个与图块相关联的属性(例如,流长度)要记录。因此,将使用单个16x 16的画面,并且将由该单个画面形成层-1。
在第二示例中,我们假设需要对4,096x 4,096像素的帧进行编码。因此,将需要使用65,536个图块(即,(4,096/16)x(4,096/16)),并且层-0将由所述65,536个图块形成。由于存在65,536个图块,因此将有65,536个与图块相关联的属性(例如,流长度)要记录。因此,将需要使用256个静态画面,每个静态画面包含16x 16个元素(总共256个),每个元素与图块相关联。层-1将由上述256个静态画面形成。由于存在256个静态画面,因此有必要记录每个这种静态画面的属性(例如,其流长度)。为此,将需要使用包含256个元素的单个16x16画面(每个元素与层-1处的一个静态画面相关联)。因此,将存在包含所述单个画面的新的层,即层-2。
从上面的示例中可以清楚地看出,使用被称为Tessera的抽象数据结构以及在图块和静态画面的层级中使用它们的特定层级,可以对任何大小的帧进行编码。分级结构将在层-0中包含多个图块,在层-1中包含多个静态画面,并且在需要时取决于要编码的帧的大小,还在层-2中包含多个静态画面,依此类推。下面示出了两个表格,其例示了帧大小和与之相关联的必要层的一些示例。
表1:在16x 16Tessera大小的情况下,与要编码的帧相关联的层
表2:在32x 32Tessera大小的情况下,与要编码的帧相关联的层
这样,对于任何大小的帧,可以定义稀疏结构中的残差数据和解码残差数据所需的元数据。如上所述,由于在处理速度方面的相关优势,因此优选16x16基础元素。然而,在其他实施例中,可以使用以上原理使用其他大小的元素来编码数据。
尽管上述过程适用于设定大小的帧,但实际上,视频数据可能以各种不同的帧大小进入。因此,该过程必须灵活以适应不同的帧大小。
在实施例中,视频数据的帧可以被填充。这允许对大小介于Tesserae大小之间的数据帧进行编码。例如,使用上述数据结构对大小为3840x2160的帧进行编码。如果使用16x16基础元素,则帧大小介于256x256和4096x4096之间。因此,在帧中填充值,例如“0”,使得其能够适合4096x4096的大小。
图16示出了根据本发明一方面的被填充的帧的代表性示例。帧1602的大小为3840x2160。帧1602已被填充以包括额外的a列和b行数据,以产生被填充的帧1604。帧1604的大小为4096x4096,并且可以利用16x16基础元素使用上述数据结构来表示该帧。
在本发明的另一方面,定义了活动区域。活动区域定义帧内的感兴趣区域,使得在解码过程中可以忽略活动区域之外的区域。
本发明的一方面在于,使用上述数据结构允许解码活动区域而无需解码整个帧。这可以实现例如图像的部分解码和/或其他特征,诸如缩放。
图17是对经编码数据帧进行解码的过程的流程图。以上述方式对经编码数据进行编码以定义多层数据。
解码过程针对整个数据帧或该帧的活动区域来进行。在该示例中,要解码的数据帧对应于残差数据帧。本领域技术人员将认识到,这不是限制因素,并且以下描述的方法可以应用于不是残差数据的数据帧,例如像素强度、色度、元数据等。在实施例中,活动区域是整个数据帧。在整个数据帧被解码的情况下,该过程以下面描述的方式进行,其中所有区域都被识别和解码。
在步骤S402,在解码器处接收经编码流。使用上述方法编码流。经编码数据包括经编码残差数据和多个数据层,每个层具有上述格式。
在步骤S404,可以识别活动区域。在实施例中,编码器识别活动区域,并且该信息作为流的一部分被发送到解码器。在另一实施例中,解码器具有活动区域在哪里的先验知识。在另一实施例中,解码器例如基于外部输入或基于其他标准/决定来选择要解码的活动区域。
在实施例中,活动区域是整个数据帧。
优选地,在解码器处接收的数据流包括以多个质量级或量化级编码的数据,并且解码器接收与要解码的质量级或量化级有关的信息。
在步骤S406,识别与活动区域相对应的流部分。
如上所述,该过程可以通过使用多个解码器来进行,每个解码器聚焦于帧的特定区域。为了便于理解,以下参考单个解码器进行描述,但是在其他实施例中,可以使用多个解码器。
以下参考具有多层数据层-0(残差数据和描述数据分布的数据结构)、层-1(图块的画面流长度)和层-2(层-1的画面的流长度的画面)的帧进行描述。
实施例中的经编码数据使用z顺序遍历以顺序方式被编码。因此,数据以相同的序列被解码。在活动区域定义帧的一部分的情况下,活动中的每个图块以相同顺序被识别和解码。
在步骤S408,对数据的最高层(例如,层-2)的画面进行解码。如上所述,最高数据层包括单个画面,所述画面定义了图块的流长度(在最高层为层-1的情况下)或前一层的画面(在所有其他情况下)。
解码最高层的画面,并确定画面元素的流长度。
如参考图11所述,在画面中定义用于图块的流长度的数据。此外,每个画面在稀疏四叉树结构中被定义。如上所述,参考图4,稀疏四叉树映射以自下而上的方式从最低级到最高级遍历数据,优选地以深度优先的方式遍历数据。因此,在步骤S406,解码器将以其被编码的相同顺序访问画面的稀疏四叉树。访问最低级节点,并且如上所述,每个父节点具有正好四个子节点。如果父节点为空,也就是说,父节点的值小于阈值(诸如零),则根据定义,画面的所有其他内部节点均为空。因此,对于在稀疏四叉树的节点中具有零值的任何图块,已知该图块不存在任何数据(例如,残差数据)。因此,对于画面稀疏四叉树中由零值节点定义的任何图块,不存在任何数据,也不需要解码该图块。
如上所述,如果节点的值大于阈值(例如非零值),则以深度优先的方式遍历稀疏四叉树,直到内部叶节点值小于阈值(并且指示不存在数据)或达到最高级,这表示与最高级相关联的图块具有流长度,因此具有某种形式的数据,诸如与之相关联的残差数据。
对画面的所有元素重复上述过程。在画面为16x16的情况下,步骤S408可以返回至256个非零流长度。已知具有零流长度的元素不具有与所述元素相关联的残差,并且不需要进一步解码。每个非零流长度对应于下一层中的Tessera中的数据。例如,在步骤S408被解码的画面对应于层-2的情况下,每个非零值对应于层-1中的Tessera中的数据。
在步骤S410,对先前的数据层进行解码。例如,在步骤S408对层-2进行解码的情况下,在步骤S410对层-1进行解码。
在实施例中,计算层的数据的位置,或者在其他实施例中,将层的数据的位置提供给解码器。在实施例中,层的开始位置基于对在步骤S408被解码的层(例如,层-2)进行编码所需的数据的总和。
以与参考步骤S408所述的相同方式对层进行解码。由于向解码器提供了不包含数据的Tessera的信息,因此可以跳过这些Tessera,从而提高了解码过程的速度。
重复该过程,直到达到层-0。
在步骤S412,解码器已经解码了感兴趣层的所有流长度数据。在步骤S412,基于流长度数据的总和,识别每个图块的残差数据的位置并随后对其进行解码。残差数据的解码以已知的方式进行。当以上过程识别出图块以及包含数据的图块的元素时,不对被识别为不包含数据的图块(流长度为零的图块)进行解码,从而引起较快的解码过程。
本发明的一方面在于,活动区域的使用允许部分解码。参考图16,可以解码活动区域1602,而无需对活动区域1602外部的帧区进行解码。此外,可以对定义活动区域1602内的区的活动区域1606进行解码,而无需对整个图块进行解码。在这种情况下,认为帧1604中未被包含在活动区域1606内的任何区对于解码而言都是不必要的,即使所述区处于先前提到的活动区域1602内。
本发明一方面在于,活动区域的使用允许并行解码器。
图18示出了根据本发明一方面的使用活动区域以允许并行解码的示例。
数据帧1802将被解码。并行使用四个解码器来解码帧。根据本发明的一方面,每个解码器对与要解码的帧的区域相对应的不同活动区域进行解码。
在实施例中,解码活动区域将需要对图块以及在映射该活动区域的位置所需的层的层级中的静态画面进行解码。对于任何这种活动区域,可能有必要根据规定的层排序,在剩余层中的某些Tesserae之前,对一个层内的某些先决条件Tesserae进行解码。因此,在实施例中,在图18的情况下,使用在单独的活动区域上工作的多个解码器,在解码器之中,在所述解码器的较早层的先决条件解码的Tesserae的各个集合中可能存在重叠。在这样的实施例中,共享的先决条件Tesserae仅需要被解码一次。在实施例中,解码器可以选择是否使用该特性。在这样的实施例中,一旦某些共同的先决条件Tesserae被解码,则解码可以由单个解码器或更少数量的解码器开始,并且可以由更大数量的解码器接管。
帧18A示出了为第一解码器定义的活动区域1704。
帧18B示出了为第二解码器定义的活动区域1706。
帧18C示出了为第三解码器定义的活动区域1708。
帧18D示出了为第四解码器定义的活动区域1710。
因此,本发明允许解码过程的大规模并行化。可以使用多个解码器来解码帧的不同图块,而无需每个解码器来解码整个帧。
尽管上文参考以第一质量级(例如,以第一分辨率或以第一量化级)对视频数据帧编码进行了描述,但是在其他实施例中,可以针对多个质量级重复该过程,以上述方式对每个质量级进行编码。众所周知,数据流因此可以包括多个质量级,优选地以分级的方式进行编码。有利地,与其他分级编码技术不同,质量级之间不存在依赖性,因此允许每个个别的质量级被独立地编码/解码,可选地经由多个编码器/解码器被编码/解码。此外,利用上述原理,可以定义多个活动区域,每个活动区域与不同的质量级相关联。在其他实施例中,一个或多个质量级可以与有损编码相关联,并且一个或多个质量级可以与无损编码相关联。因此,本发明允许在有损和无损编码之间切换。优选地,在对多个质量级进行编码的情况下,首先对最低质量级进行编码,从而允许在低比特率环境中接收和解码内容。
本发明的一方面在于,在截断或中断的情况下,视频数据的帧可以至少部分地被解码。当链接(例如,网络114)由于缺乏带宽或服务中断而无法发送整个经编码流时会发生截断。由于在每个图块的基础上执行编码,而无需参考相同质量级中的图块,也无需参考不同质量级中的图块,因此可以解码所有完整的图块。在实施例中,任何丢失的图块都被认为具有零残差数据(因此不具有关联的四叉树并且流长度为零)。
图19示出了根据本发明的数据结构的示例。
特别地,该图表示与帧相关联的树结构的示例。在示出的示例中,存在九个Tesserae(被包含在带有实线的框中的树结构),并且特别地,1901将代表画面(对应于层-1或也被称为根层——因为其是本示例中可用的最低层),而八个Tesserae 1902代表图块(共同形成层-0)。每个图块由四级节点和一级叶形成,其中,根节点1921、三级的中间节点和叶1923对应于要编码的数据(例如,残差)——图19中共有88个要编码的数据。
画面1901具有类似的结构,其具有根节点1911、三级中间节点和叶。在画面1901的情况下,叶可以是图块1921的根,也可以是没有子节点的叶1922。本结构清楚地示出了本发明如何使得要编码的数据能够被稀疏化。如所讨论的,当前帧中仅要编码88个数据,并且树结构被设计成允许从根节点1911开始遍历结构以到达要编码的数据(例如,残差1923),而不必遍历那些没有附接残差的分支。因此,例如,如果在遍历期间我们到达叶1922,则因为不存在与这些叶相关联的残差,所以无需进一步遍历,并且叶1922将是终端叶。如果取而代之地我们到达与图块的根节点相对应的叶1921,则我们将继续通过遵循类似的方法遍历图块并到达残差,即仅遍历具有子节点的那些节点。本图还示出了每个节点可以不具有子节点(例如,参见叶1922)或具有四个子节点(例如,参见根节点1911)。
图20示出了根据本发明的数据结构的另一示例。
特别地,该图示出了各个层如何彼此交互,其中,层-0对应于图块,并且随后的层(从层-1到根层)对应于静态画面。
图20示出了表面的横截面(即要编码的数据的网格),并示出了稀疏化如何在表面上起作用。在图20中,在表面的白色识别区域中示出的Tesserae(或Tesseare的一部分)是不存在要编码的数据的区域。不存在数据的区域不需要被编码并且因此是结构稀疏的区域。存在数据的区域以灰色示出并且代表存在要编码的数据的区域。
编号的发明陈述
1.一种编码信号的方法,所述方法包括:
获得要编码的数据集,所述数据集指示所述信号的一个或多个特性;
将所述数据集映射到数据结构中,所述数据结构定义数据的例子,其中,所述数据的映射包括以下步骤:
将所述数据集细分为多个图块,每个图块在所述数据集中定义元素块;
将每个图块细分为多个子块;
为所述多个子块中的每个子块定义对应的节点;
为每个节点分配值,所述值指示与所述节点相对应的所述子块是否包含大于、等于或小于阈值的数据;以及
将分配值映射到所述数据结构的第一级中。
2.根据陈述1所述的方法,其中,所述数据集包括残差数据。
3.根据陈述1或2所述的方法,其中,所述方法包括以稀疏方式映射所述数据结构的所述第一级。
4.根据任一前述陈述所述的方法,其中,所述节点包括四个子块。
5.根据陈述3或4所述的方法,其中,所述映射所述数据结构的所述第一级是作为稀疏四叉树。
6.根据任一上述陈述所述的方法,其中,所述方法还包括通过以下步骤定义所述数据结构的其他级:
分组多个节点以定义多个父节点;
为每个所述父节点分配值,所述值指示所述父节点是否包含任何大于、等于或小于所述阈值的数据;以及
将分配值映射到所述数据结构的其他级中。
7.根据任一前述陈述所述的方法,所述方法还包括对以顺序方式对第一数据帧和所述数据结构进行编码的步骤进行编码。
8.根据陈述7所述的方法,其中,顺序序列是所述数据集的遍历z形。
9.根据任一上述陈述所述的方法,其中,每个元素对应于残差数据。
10.根据任一上述陈述所述的方法,其中,每个元素对应于与残差数据相关联的特性。
11.根据任一上述陈述所述的方法,其中,如果所述节点包含大于所述阈值的数据,则分配第一逻辑值,并且如果所述节点包含小于所述阈值的数据,则分配第二逻辑值。
12.根据任一上述陈述所述的方法,所述方法还包括以下步骤:对于多个图块中的每个图块,确定将数据图块和所述数据结构编码为流长度所需的关于数据长度的元数据。
13.根据陈述12所述的方法,所述方法还包括以下步骤:
将多个图块分组在一起以定义数据帧的多个编码单元;
对于所述编码单元中的每个编码单元,将形成所述编码单元的所述图块中的每个图块的流长度映射为第二数据结构,其中,所述第二数据结构的映射包括以下步骤:
将每个编码单元细分为多个编码单元数据集;
为所述多个编码单元数据集中的每一个编码单元数据集定义对应的编码单元节点;
为每个编码单元节点分配值,所述值指示与所述节点相对应的所述数据集是否包含大于、等于或小于阈值的数据;以及
将生成的分配值映射为所述第二数据结构的第一级。
14.根据陈述13所述的方法,其中,所述方法包括以稀疏方式映射所述第二数据结构。
15.根据陈述13或14所述的方法,其中,所述节点包括四个编码单元数据集。
16.根据陈述14或15所述的方法,其中,所述映射所述第二数据结构是作为稀疏四叉树。
17.根据陈述13至16中任一陈述所述的方法,其中,所述方法还包括通过以下步骤来定义稀疏四叉树的其他级:
分组多个编码单元节点以定义多个编码单元父节点;
对于所述编码单元父节点中的每个编码单元父节点,确定定义所述编码单元父节点的所述编码单元节点中的任何编码单元节点是否包含大于所述阈值的数据;
为所述编码单元父节点中的每个编码单元父节点分配值,所述值指示所述编码单元父节点是否包含大于、等于或小于所述阈值的任何数据;以及
基于所述分配值定义所述稀疏四叉树的其他级。
18.根据引用陈述7的陈述13至17中任一陈述所述的方法,所述方法还包括对所述数据和所述第二数据结构的所述流长度进行编码的步骤。
19.根据任一前述陈述所述的方法,其中,所述第一数据帧包括元数据,所述元数据指示对所述节点的所述数据的特性进行描述的属性。
20.根据陈述19所述的方法,其中,所述特性是所述节点的统计属性。
21.根据陈述20所述的方法,其中,所述统计属性是以下中的一个或多个:编码一个或多个像素所需的亮度、色度和位数。
22.根据任一前述陈述所述的方法,其中,所述图块和节点具有固定大小。
23.根据任一前述陈述所述的方法,所述方法包括以视频数据的多个质量级对所述视频数据的帧进行编码。
24.一种用于对包括多个视频数据帧的视频数据流进行编码的编码器,所述编码器被配置成针对第一数据帧执行以下步骤:
根据陈述1至23所述方法中的任一方法。
25.一种解码经编码数据流的方法,所述方法包括在解码器处:
接收包括多个图块的经编码数据集;
接收数据结构,所述数据结构指示编码多个图块所需的数据量;
通过以下步骤识别所述经编码数据集的要解码的一部分:
识别与要解码的所述部分相关联的图块;
基于编码所述图块所需的数据量来确定与所述图块有关的数据的位置;
从所述经编码数据集中提取所述经编码数据集的识别部分;以及
解码所述经编码数据集的所述识别部分。
26.根据陈述25所述的方法,其中,所述数据集是按层组织的,其中,第一层还包括:
指示所述数据在所述数据集内的分布的信息。
27.根据陈述25或26所述的方法,其中,所述数据集的所述第一层包括残差数据。
28.根据陈述26或27中任一陈述所述的方法,所述方法还包括第二层,所述第二层还包括与编码多个图块所需的数据量有关的信息。
29.根据陈述28所述的方法,所述方法还包括以下步骤:基于所述第二层中的所述信息,确定要解码的图块数据在经编码流内的位置。
30.根据陈述29所述的方法,其中,所述图块被顺序地解码。
31.根据陈述30所述的方法,其中,所述图块以z顺序序列被解码。
32.根据陈述30或31所述的方法,所述方法包括以下步骤:基于对任何先前的图块进行编码所需的数据量的总和,确定图块数据在所述经编码流中的位置。
33.根据陈述32所述的方法,所述方法还包括在所述图块数据的确定的位置处对所述经编码数据流进行解码。
34.根据陈述33所述的方法,所述方法还包括以下步骤:
获得与要被选择性解码的所述数据帧的包括多个图块的区域有关的信息;
基于所有所述图块的确定的所述流长度,确定与所述区域有关的所述经编码数据流中的所述数据的位置;
基于确定的所述流长度,对被识别为与所选区域有关的所述经编码数据流中的所述数据进行选择性解码。
35.根据陈述25至34中任一陈述所述的方法,其中,所接收的经编码视频数据流以多个量化级被编码。
36.根据陈述35所述的方法,其中,所述方法包括以第一量化级对所述经编码视频数据流进行解码。
37.根据陈述35所述的方法,所述方法还包括以下步骤:以第一量化级对第一图块或区域进行解码。
38.根据陈述37所述的方法,所述方法还包括以下步骤:以不同的第二量化级解码第二图块或区域。
39.根据陈述25至38中任一陈述所述的方法,所述方法还包括:识别所述经编码数据流的要解码的第二部分,以及解码所述第二部分。
40.根据陈述39所述的方法,其中,第一部分通过第一解码器被解码,并且所述第二部分通过不同的第二解码器解码。
41.根据陈述25至41中任一陈述所述的方法,其中,所述经编码流是视频数据、图像数据中的一个的流。
42.一种用于对经编码视频数据流进行解码的解码器,所述解码器被配置成执行根据陈述25至41中任一陈述所述的方法。
43.一种对经编码数据流进行解码的方法,所述方法包括在解码器处:
接收包括多个图块的经编码数据集;
接收数据结构,所述数据结构指示大于、小于或等于所述多个图块的阈值的数据的分布;
识别所述数据结构中要解码的所述图块,所述图块具有大于或等于
对识别图块进行解码的所述阈值的数据。
44.根据陈述43所述的方法,其中,所述数据集是按层组织的,其中,第一层还包括指示所述数据在所述数据集内的分布的所述数据结构,并且第二层包括与编码多个图块所需的数据量有关的信息。
45.根据陈述43或44所述的方法,其中,经编码流是视频数据、图像数据中的一个的流。
46.根据陈述44或45所述的方法,所述方法还包括以下步骤:基于所述第二层中的所述信息,确定要解码的图块数据在所述经编码流内的位置。
47.根据陈述46所述的方法,其中,所述图块被顺序地解码。
48.根据陈述47所述的方法,其中,所述图块以z顺序序列被解码。
49.根据陈述47或48所述的方法,所述方法包括以下步骤:基于对任何先前的图块进行编码所需的数据量的总和,确定图块数据在所述经编码流中的位置。
50.根据陈述49所述的方法,所述方法还包括在所述图块数据的确定的位置处对所述经编码数据流进行解码。
51.根据陈述50所述的方法,所述方法还包括以下步骤:
获得与要被选择性解码的所述数据帧的包括多个图块的区域有关的信息;
基于所有所述图块的确定的所述流长度,确定与所述区域有关的所述经编码数据流中的所述数据的位置;
基于确定的所述流长度,对被识别为与所选区域有关的所述经编码数据流中的所述数据进行选择性解码。
52.根据陈述43至51中任一陈述所述的方法,其中,所接收的经编码视频数据流以多个量化级被编码。
53.根据陈述52所述的方法,其中,所述方法包括以第一量化级对所述经编码视频数据流进行解码。
54.根据陈述53所述的方法,所述方法还包括以下步骤:以第一量化级对第一图块或区域进行解码。
55.根据陈述54所述的方法,所述方法还包括以下步骤:以不同的第二量化级解码第二图块或区域。
56.根据陈述43至55中任一陈述所述的方法,所述方法还包括:识别所述经编码数据流的要解码的第二部分,以及解码所述第二部分。
57.根据陈述56所述的方法,其中,第一部分通过第一解码器被解码,并且所述第二部分通过不同的第二解码器解码。
58.一种用于对经编码视频数据流进行解码的解码器,所述解码器被配置成执行根据陈述43至57中任一陈述所述的方法。
59.一种对经编码数据流进行解码的方法,所述方法包括:
接收包括多个图块的经编码数据集;
接收数据结构,所述数据结构指示对所述多个图块中的每个图块进行编码所需的数据量;
通过以下步骤识别所述经编码数据集的要解码的多个部分:
识别与要解码的每个部分相关联的图块;
对于每个部分,基于对与所述部分相关联的所述图块进行编码所需的数据量,确定与所述部分的所述图块相关的数据的位置;
对于每个所述识别部分,从所述经编码数据集中提取所述部分;以及
用第一解码器对所述经编码数据集的所述第一部分进行解码,并使用不同的第二解码器对所述经编码数据集的第二部分进行解码。
60.根据陈述59所述的方法,其中,所述数据集是按层组织的,其中,第一层还包括指示所述数据在所述数据集内的分布的所述数据结构。
61.根据陈述60所述的方法,其中,所述数据集还包括第二层,所述第二层包括与对多个图块进行编码所需的数据量有关的信息。
62.根据陈述59至61中任一陈述所述的方法,其中,所述经编码流是视频数据、图像数据中的一个的流。
63.根据陈述61或62所述的方法,所述方法还包括以下步骤:基于所述第二层中的所述信息,确定要解码的图块数据在所述经编码流内的位置。
64.根据陈述63所述的方法,其中,所述图块被顺序地解码。
65.根据陈述64所述的方法,其中,所述图块以z顺序序列被解码。
66.根据陈述63至65中任一陈述所述的方法,所述方法包括以下步骤:基于对任何先前的图块进行编码所需的数据量的总和,确定图块数据在所述经编码流中的位置。
67.根据陈述66所述的方法,所述方法还包括在所述图块数据的确定的位置处对所述经编码数据流进行解码。
68.根据陈述67所述的方法,所述方法还包括以下步骤:
获得与要被选择性解码的所述数据帧的包括多个图块的区域有关的信息;
基于所有所述图块的确定的所述流长度,确定与所述区域有关的所述经编码数据流中的所述数据的位置;
基于确定的所述流长度,对被识别为与所选区域有关的所述经编码数据流中的所述数据进行选择性解码。
69.根据陈述59至68中任一陈述所述的方法,其中,所接收的经编码视频数据流以多个量化级被编码。
70.根据陈述69所述的方法,其中,所述方法包括以第一量化级对所述经编码视频数据流进行解码。
71.一种用于对经编码视频数据流进行解码的解码器,所述解码器被配置成执行根据陈述59至70中任一陈述所述的方法。
72.一种用于编码图像的分级数据结构,所述数据结构包括多个质量级,每个质量级包括多个层,每个层包括一个或多个数据元素。
73.如陈述72中所述的数据结构,其中:
每个质量级定义相应的一组经编码数据,所述相应的一组经编码数据在被解码时使得解码器能够将所述图像重构到期望的质量级;
每一层包括一个或多个数据元素,所述数据元素取决于层的类型被定义,并且其中:
对于第一类型的层,第一类型的数据元素被定义为包括所述一组经编码数据的子集;并且
对于第二类型的层,第二类型的数据元素被定义为包括与所述第一类型的数据元素相关联的一个或多个属性。
74.如陈述72或73中所述的数据结构,其中,所述数据元素包括多个层,并且其中:
第一层包括多个值;
一个或多个层包括指示所述第一层中何处存在非零值的数据。
75.如陈述74中所述的数据结构,其中,对于所述第一类型的数据元素,所述值与经编码的残差值相关联。
76.如陈述74中所述的数据结构,其中,对于所述第一类型的数据元素,所述值与经编码的变换残差值相关联。
77.如陈述74至76中任一陈述所述的数据结构,其中,对于所述第二类型的数据元素,所述值与指示所述第一类型的数据元素的一个或多个属性的元数据相关联。
78.如陈述77中所述的数据结构,其中,所述元数据指示对应的所述第一类型的数据元素的大小。
79.如陈述78中所述的数据结构,其中,所述元数据指示与对应的第一类型的数据元素的值相关联的统计分布。
80.一种包括指令的计算机可读介质,所述指令在被处理器执行时使所述处理器执行任一前述方法陈述中的步骤。
81.一种解码经编码数据流的方法,所述方法包括在解码器处:
接收包括多个图块的经编码数据集;
接收数据结构,所述数据结构指示编码多个图块所需的数据量;
通过以下步骤识别所述经编码数据集的要解码的一部分:
识别与要解码的所述部分相关联的图块;
基于编码所述图块所需的数据量来确定与所述图块有关的数据的位置;
从所述经编码数据集中提取所述经编码数据集的识别部分;以及
解码所述经编码数据集的所述识别部分。
82.根据陈述81所述的方法,其中,所述数据集是按层组织的,其中,第一层还包括:
指示所述数据在所述数据集内的分布的信息。
83.根据陈述81或82所述的方法,其中,所述数据集的所述第一层包括残差数据。
84.根据陈述82或83中任一陈述所述的方法,所述方法还包括第二层,所述第二层还包括与编码多个图块所需的数据量有关的信息。
85.根据陈述84所述的方法,所述方法还包括以下步骤:基于所述第二层中的所述信息,确定要解码的图块数据在经编码流内的位置。
86.根据陈述85所述的方法,其中,所述数据被顺序地编码,并且所述方法还包括以下步骤:基于对任一先前的图块进行编码所需的数据量的总和,确定图块数据在所述经编码流中的位置。
87.根据陈述86所述的方法,所述方法还包括在所述图块数据的确定的位置处解码所述经编码数据流。
88.根据前述陈述81-87中任一陈述所述的方法,所述方法还包括:识别所述经编码数据流的要解码的第二部分,以及解码所述第二部分,其中,所述第一部分被第一解码器解码,并且所述第二部分被不同的第二解码器解码。
89.一种对经编码数据流进行解码的方法,所述方法包括在解码器处:
接收包括多个图块的经编码数据集;
接收数据结构,所述数据结构指示大于、小于或等于所述多个图块的阈值的数据的分布;
识别所述数据结构中要解码的具有大于或等于所述阈值的数据的所述图块;
解码识别的图块。
90.根据陈述89所述的方法,其中,所述数据集是按层组织的,其中,第一层还包括指示所述数据在所述数据集内的分布的所述数据结构,并且第二层包括与编码多个图块所需的数据量有关的信息。
91.根据陈述90所述的方法,所述方法还包括以下步骤:基于所述第二层中的所述信息,确定要解码的图块数据在经编码流内的位置。
92.根据陈述90所述的方法,其中,所述图块被顺序地编码,所述方法包括以下步骤:基于对任一先前的图块进行编码所需的数据量的总和,确定所述图块数据在所述经编码流中的位置。
93.根据陈述92所述的方法,所述方法还包括在所述图块数据的确定的位置处解码所述经编码数据流。
94.根据陈述88至93中任一陈述所述的方法,其中,接收的经编码视频数据流以多个量化级被编码,其中,所述方法包括:以第一量化级对所述经编码视频数据流的第一图块进行解码,以及以不同的第二量化级对第二图块或区域进行解码。
95.一种用于对经编码视频数据流进行解码的解码器,所述解码器被配置成执行根据陈述81至95中任一陈述所述的方法。
Claims (43)
1.一种编码信号的方法,所述方法包括:
获得要编码的数据集,所述数据集指示所述信号的一个或多个特性;
将所述数据集映射到数据结构中,所述数据结构定义数据的例子,其中,所述数据的映射包括以下步骤:
将所述数据集细分为多个图块,每个图块在所述数据集中定义元素块;
将每个图块细分为多个子块;
为所述多个子块中的每个子块定义对应的节点;
为每个节点分配值,所述值指示与所述节点相对应的所述子块是否包含大于、等于或小于阈值的数据;以及
将分配值映射到所述数据结构的第一级中。
2.根据权利要求1所述的方法,其中,所述数据集包括残差数据。
3.根据权利要求1或2所述的方法,其中,所述方法包括以稀疏方式映射所述数据结构的所述第一级。
4.根据任一前述权利要求所述的方法,其中,所述节点包括四个子块。
5.根据权利要求3或4所述的方法,其中,所述映射所述数据结构的所述第一级是作为稀疏四叉树。
6.根据任一前述权利要求所述的方法,其中,所述方法还包括通过以下步骤定义所述数据结构的其他级:
分组多个节点以定义多个父节点;
为每个所述父节点分配值,所述值指示所述父节点是否包含任何大于、等于或小于所述阈值的数据;以及
将分配值映射到所述数据结构的其他级中。
7.根据任一前述权利要求所述的方法,所述方法还包括对以顺序方式对第一数据帧和所述数据结构进行编码的步骤进行编码。
8.根据权利要求7所述的方法,其中,顺序序列是所述数据集的遍历z形。
9.根据任一前述权利要求所述的方法,其中,每个元素对应于残差数据。
10.根据任一前述权利要求所述的方法,其中,每个元素对应于与残差数据相关联的特性。
11.根据任一前述权利要求所述的方法,其中,如果所述节点包含大于所述阈值的数据,则分配第一逻辑值,并且如果所述节点包含小于所述阈值的数据,则分配第二逻辑值。
12.根据任一前述权利要求所述的方法,所述方法还包括以下步骤:对于多个图块中的每个图块,确定将数据图块和所述数据结构编码为流长度所需的关于数据长度的元数据。
13.根据权利要求12所述的方法,所述方法还包括以下步骤:
将多个图块分组在一起以定义数据帧的多个编码单元;
对于所述编码单元中的每个编码单元,将形成所述编码单元的所述图块中的每个图块的流长度映射为第二数据结构,其中,所述第二数据结构的映射包括以下步骤:
将每个编码单元细分为多个编码单元数据集;
为所述多个编码单元数据集中的每一个编码单元数据集定义对应的编码单元节点;
为每个编码单元节点分配值,所述值指示与所述节点相对应的所述数据集是否包含大于、等于或小于阈值的数据;以及
将生成的分配值映射为所述第二数据结构的第一级。
14.根据权利要求13所述的方法,其中,所述方法包括以稀疏方式映射所述第二数据结构。
15.根据权利要求13或14所述的方法,其中,所述节点包括四个编码单元数据集。
16.根据权利要求14或15所述的方法,其中,所述映射所述第二数据结构是作为稀疏四叉树。
17.根据权利要求13至16中任一项所述的方法,其中,所述方法还包括通过以下步骤来定义稀疏四叉树的其他级:
分组多个编码单元节点以定义多个编码单元父节点;
对于所述编码单元父节点中的每个编码单元父节点,确定定义所述编码单元父节点的所述编码单元节点中的任何编码单元节点是否包含大于所述阈值的数据;
为所述编码单元父节点中的每个编码单元父节点分配值,所述值指示所述编码单元父节点是否包含大于、等于或小于所述阈值的任何数据;以及
基于所述分配值定义所述稀疏四叉树的其他级。
18.根据引用权利要求7的权利要求13至17中任一项所述的方法,所述方法还包括对所述数据和所述第二数据结构的所述流长度进行编码的步骤。
19.根据任一前述权利要求所述的方法,其中,所述第一数据帧包括元数据,所述元数据指示对所述节点的所述数据的特性进行描述的属性。
20.根据权利要求19所述的方法,其中,所述特性是所述节点的统计属性。
21.根据权利要求20所述的方法,其中,所述统计属性是以下中的一个或多个:编码一个或多个像素所需的亮度、色度和位数。
22.根据任一前述权利要求所述的方法,其中,所述图块和节点具有固定大小。
23.根据任一前述权利要求所述的方法,所述方法包括以视频数据的多个质量级对所述视频数据的帧进行编码。
24.一种用于对包括多个视频数据帧的视频数据流进行编码的编码器,所述编码器被配置成针对第一数据帧执行以下步骤:
根据权利要求1至23所述方法中的任一方法。
25.一种解码经编码数据流的方法,所述方法包括在解码器处:
接收包括多个图块的经编码数据集;
接收数据结构,所述数据结构指示编码多个图块所需的数据量;
通过以下步骤识别所述经编码数据集的要解码的一部分:
识别与要解码的所述部分相关联的图块;
基于编码所述图块所需的数据量来确定与所述图块有关的数据的位置;从所述经编码数据集中提取所述经编码数据集的识别部分;以及
解码所述经编码数据集的所述识别部分。
26.根据权利要求25所述的方法,其中,所述数据集是按层组织的,其中,第一层还包括:
指示所述数据在所述数据集内的分布的信息。
27.根据权利要求25或26所述的方法,其中,所述数据集的所述第一层包括残差数据。
28.根据权利要求26或27中任一项所述的方法,所述方法还包括第二层,所述第二层还包括与编码多个图块所需的数据量有关的信息。
29.根据权利要求28所述的方法,所述方法还包括以下步骤:基于所述第二层中的所述信息,确定要解码的图块数据在经编码流内的位置。
30.根据权利要求29所述的方法,其中,所述图块被顺序地解码。
31.根据权利要求30所述的方法,其中,所述图块以z顺序序列被解码。
32.根据权利要求30或31所述的方法,所述方法包括以下步骤:基于对任何先前的图块进行编码所需的数据量的总和,确定图块数据在所述经编码流中的位置。
33.根据权利要求32所述的方法,所述方法还包括在所述图块数据的确定的位置处对所述经编码数据流进行解码。
34.根据权利要求33所述的方法,所述方法还包括以下步骤:
获得与要被选择性解码的所述数据帧的包括多个图块的区域有关的信息;
基于所有所述图块的确定的所述流长度,确定与所述区域有关的所述经编码数据流中的所述数据的位置;
基于确定的所述流长度,对被识别为与所选区域有关的所述经编码数据流中的所述数据进行选择性解码。
35.根据权利要求25至34中任一项所述的方法,其中,所接收的经编码视频数据流以多个量化级被编码。
36.根据权利要求35所述的方法,其中,所述方法包括以第一量化级对所述经编码视频数据流进行解码。
37.根据权利要求35所述的方法,所述方法还包括以下步骤:以第一量化级对第一图块或区域进行解码。
38.根据权利要求37所述的方法,所述方法还包括以下步骤:以不同的第二量化级解码第二图块或区域。
39.根据权利要求25至38中任一项所述的方法,所述方法还包括:识别所述经编码数据流的要解码的第二部分,以及解码所述第二部分。
40.根据权利要求39所述的方法,其中,第一部分通过第一解码器被解码,并且所述第二部分通过不同的第二解码器解码。
41.根据权利要求25至41中任一项所述的方法,其中,所述经编码流是视频数据、图像数据中的一个的流。
42.一种用于对经编码视频数据流进行解码的解码器,所述解码器被配置成执行根据权利要求25至41中任一项所述的方法。
43.一种字节流,包括:
编码的数据集,所述编码的数据集包括多个图块;
数据结构,所述数据结构指示编码多个图块所需的数据量;
其中,所述编码的数据集的部分通过以下被解码:
识别与要解码的所述部分相关联的图块;
基于编码所述图块所需的数据量来确定与所述图块有关的数据的位置。
Applications Claiming Priority (10)
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/053551 WO2019111009A1 (en) | 2017-12-06 | 2018-12-06 | Hierarchical data structure |
CN201880088756.2A CN111684812B (zh) | 2017-12-06 | 2018-12-06 | 解码经编码二维数据流的方法及解码器 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880088756.2A Division CN111684812B (zh) | 2017-12-06 | 2018-12-06 | 解码经编码二维数据流的方法及解码器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117676138A true CN117676138A (zh) | 2024-03-08 |
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 (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880088752.4A Active CN111699696B (zh) | 2017-12-06 | 2018-12-06 | 用于对字节流进行编码和解码的方法和设备 |
Family Applications After (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 | 用于对字节流进行分级编码和解码的方法和设备 |
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 | 深圳市资福医疗技术有限公司 | 基于四叉树的图像动态调节传输方法、设备及存储介质 |
Family Cites Families (59)
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 |
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
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111684812B (zh) | 解码经编码二维数据流的方法及解码器 | |
KR102609776B1 (ko) | 포인트 클라우드 데이터 처리 방법 및 장치 | |
US20220159284A1 (en) | Apparatus and method for processing point cloud data | |
WO2015021942A1 (zh) | 定宽度变长度像素样值串匹配增强的图像压缩方法和装置 | |
US20230080852A1 (en) | Use of tiered hierarchical coding for point cloud compression | |
WO2016054985A1 (zh) | 图像编码、解码方法及装置 | |
CN104704825B (zh) | 分段图像数据的无损压缩 | |
CN107483966A (zh) | 图像编码装置及方法、图像解码装置及方法及存储介质 | |
US20230276063A1 (en) | Npu for encoding or decoding videostream format for machine analisys | |
EP4228267A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
EP3496403A1 (en) | Hierarchical data structure | |
EP4329311A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
US11743477B1 (en) | Video-stream format for machine analysis using NPU | |
EP4373097A1 (en) | Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method | |
KR20240047385A (ko) | 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치 | |
KR20240056739A (ko) | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 | |
WO2023111574A1 (en) | Digital image processing | |
KR20130070618A (ko) | 트리 구조를 이용한 부호화/복호화 방법 및 장치 | |
WO2019045544A1 (ko) | 레이어드 기븐스 변환을 이용하여 변환을 수행하는 방법 및 장치 |
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 |