CN114556956A - 使用旁路子流和经熵编码子流的低时延编码 - Google Patents

使用旁路子流和经熵编码子流的低时延编码 Download PDF

Info

Publication number
CN114556956A
CN114556956A CN202080070069.5A CN202080070069A CN114556956A CN 114556956 A CN114556956 A CN 114556956A CN 202080070069 A CN202080070069 A CN 202080070069A CN 114556956 A CN114556956 A CN 114556956A
Authority
CN
China
Prior art keywords
compressible
entropy
symbols
symbol
stream
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
Application number
CN202080070069.5A
Other languages
English (en)
Inventor
D·弗林
A·图拉皮斯
K·玛姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of CN114556956A publication Critical patent/CN114556956A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种系统包括编码器,该编码器被配置为对包括可压缩符号和非可压缩符号两者的位流进行熵编码。该编码器将该位流解析成可压缩符号子流和非可压缩子流。当对该可压缩符号子流进行熵编码时,该非可压缩符号子流绕过该编码器的熵编码部件。当累积一定量的经熵编码符号和旁路符号的字节时,使用所累积的经熵编码符号字节和旁路字节来形成固定或已知大小的块,而无需等待该编码器处理完整位流。以互补方式,解码器根据分组或块重构该位流。

Description

使用旁路子流和经熵编码子流的低时延编码
背景技术
技术领域
本公开整体涉及使用基于熵的编码器的位流的压缩和解压缩。
相关技术描述
各种设备,包括但不限于个人计算机系统、台式计算机系统、膝上型电脑和笔记本电脑、平板电脑或平板设备、数字相机、数字视频录像机和移动电话或智能电话,可包括使用诸如算术编码、霍夫曼译码等熵编码技术实施编码或解码过程的软件和/或硬件。例如,设备可包括一种装置(例如,集成电路(IC),诸如片上系统(SOC)或IC的子系统),该装置可根据涉及基于熵的编码的一种或多种处理方法接收和处理来自一个或多个源的数字输入并输出经处理的信息(例如图片/帧或图片/帧区)或其他信息。又如,可在设备上实施可根据涉及基于熵的编码的一种或多种处理方法接收和处理来自一个或多个源的数字输入并输出经处理的信息的软件程序。
发明内容
在一些实施方案中,一种用于对位流进行编码的系统包括计算设备,该计算设备被配置为将待编码的符号流分离成:(a)可压缩符号子流和(b)非可压缩符号子流。为了对位流进行编码,该计算设备还被配置为对可压缩符号子流的符号进行熵编码,并且允许不可压缩符号子流绕过编码器,该编码器对可压缩符号子流进行熵编码。另外,该计算设备被配置为形成包括来自可压缩符号子流的经熵编码符号和来自非可压缩符号旁路(bypass)子流的非可压缩符号的块,并且响应于累积经熵编码符号和非可压缩符号的量满足该块的有效载荷的有效载荷大小,提供该块以供传输或存储。在一些实施方案中,该块可形成为供通过网络传输的分组。另外,在一些实施方案中,该系统还可包括旁路缓冲器和经熵编码符号缓冲器,其中旁路字节和经熵编码符号字节被写入相应缓冲器并且响应于累积的字节量满足块或分组的有效载荷大小而串接以形成块或分组。在其他实施方案中,旁路字节和经熵编码符号字节可直接写入块或分组中,其中一个子流以正向次序从块或分组的一端写入,而另一子流以反向次序从块或分组的另一端写入。
在一些实施方案中,一种用于对位流进行解码的系统包括计算设备,该计算设备被配置为接收包括有效载荷的分组,该有效载荷包括经熵编码符号部分和非经熵编码符号部分。该分组还包括标头,该标头指示有效载荷的填充有经熵编码符号的长度或有效载荷的填充有非经熵编码符号的长度。为了对分组进行解码,该计算设备被配置为基于该标头来确定有效载荷中的经熵编码符号的起始点和有效载荷中的非经熵编码符号的起始点,从经熵编码符号的所确定的起始点读取经熵编码符号并对所读取的经熵编码符号进行解码,从非经熵编码符号的所确定的起始点读取非经熵编码符号,并且将所解码的经熵编码符号和非经熵编码符号组合成经解码符号流。
附图说明
图1A示出了根据一些实施方案的编码器的示例性编码环路。
图1B示出了根据一些实施方案的由编码器编码的示例性块或分组。
图1C示出了根据一些实施方案的解码器的示例性解码环路。
图1D示出了根据一些实施方案的在被编码之前的包括可压缩符号和非可压缩符号的示例性位流和通过对位流进行编码产生的块或分组集合。
图2示出了根据一些实施方案的直接写入分组或块的编码器的示例性编码环路。
图3示出了根据一些实施方案的将旁路位写入预留旁路字节的编码器的示例性编码环路。
图4示出了根据一些实施方案的包括预留旁路字节的示例性分组或块。
图5示出了根据一些实施方案的用于对包括可压缩符号和非可压缩符号的符号流进行编码的示例性过程。
图6示出了根据一些实施方案的用于对包括经熵编码符号部分和非经熵编码符号部分的分组的有效载荷进行解码的示例性过程。
图7示出了根据一些实施方案的可实现编码器或解码器的示例性计算机系统。
本说明书包括参考“一个实施方案”或“实施方案”。出现短语“在一个实施方案中”或“在实施方案中”并不一定是指同一个实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
“包括”,该术语是开放式的。如在所附权利要求书中所使用的,该术语不排除附加结构或步骤。考虑以下引用的权利要求:“一种包括一个或多个处理器单元...的装置”此类权利要求不排除该装置包括附加部件(例如,网络接口单元、图形电路等)。
“被配置为”,各种单元、电路或其他部件可被描述为或叙述为“被配置为”执行一项或多项任务。在此类上下文中,“被配置为”用于通过指示单元/电路/部件包括在操作期间执行这一项或多项任务的结构(例如,电路)来暗指该结构。如此,单元/电路/部件据称可被配置为即使在指定的单元/电路/部件当前不可操作(例如,未接通)时也执行该任务。与“被配置为”语言一起使用的单元/电路/部件包括硬件——例如电路、存储可执行以实现操作的程序指令的存储器等。引用单元/电路/部件“被配置为”执行一项或多项任务明确地旨在针对该单元/电路/部件不援引35U.S.C.§112(f)。此外,“被配置为”可包括由软件和/或固件(例如,FPGA或执行软件的通用处理器)操纵的通用结构(例如,通用电路)以能够执行待解决的一项或多项任务的方式操作。“被配置为”还可包括调整制造过程(例如,半导体制作设施),以制造适用于实现或执行一项或多项任务的设备(例如,集成电路)。
“第一”“第二”等。如本文所用,这些术语充当它们所在之前的名词的标签,并且不暗指任何类型的排序(例如,空间的、时间的、逻辑的等)。例如,缓冲电路在本文中可被描述为执行“第一”值和“第二”值的写入操作。术语“第一”和“第二”未必暗指第一值必须在第二值之前被写入。
“基于”。如本文所用,该术语用于描述影响确定的一个或多个因素。该术语不排除影响确定的附加因素。即,确定可仅基于这些因素或至少部分地基于这些因素。考虑短语“基于B来确定A”。在这种情况下,B为影响A的确定的因素,此类短语不排除A的确定也可基于C。在其他实例中,可仅基于B来确定A。
具体实施方式
诸如算术编码、霍夫曼编码等熵编码可以是处理图像、视频、点云和/或其他类型的数据的瓶颈。例如,对经熵编码数据进行解码可以是利用图像、视频或点云数据的应用程序的瓶颈。而且,熵编码和解码可以是高度可序列化和计算昂贵的过程。
在一些实施方案中,熵编码器可对待压缩/编码到可压缩符号子流和非可压缩符号子流中的传入符号位流进行解析。因为算术编码利用符号出现概率来压缩符号,所以位流中具有偶数出现概率或不出现概率的一些符号就压缩效率而言可能不受益于熵编码。然而,此类非可压缩符号仍然可能需要计算资源和时间来由编码器的熵编码部件处理。因此,可通过从待由编码器的熵编码部件熵编码的符号子流排除非可压缩符号来减少压缩效率和处理时间,并且相反地将非可压缩符号引导到旁路子流中。
在一些实施方案中,可通过根据可压缩符号位流的已由熵编码部件编码的经编码符号以及根据旁路位流的非可压缩符号形成块或分组来实现时延的进一步改进。例如,代替等待处理完整位流,可将位流的已经过处理的部分形成为块或分组,从而减少编码和解码时延。可减少解码时延是因为解码器在对经熵编码的可压缩符号进行解码并将所解码的可压缩符号与非可压缩符号组合以重构初始位流之前不需要缓冲完整位流。
在一些实施方案中,分组或块可具有固定大小或者可具有向解码器发信号通知的已知大小。例如,在一些实施方案中,分组或块可具有256个字节的固定大小。
在一些实施方案中,分组或块可包括标头。标头可指示分组或块的有效载荷部分的填充有经熵编码符号字节的长度,或者可指示分组或块的填充有旁路字节的部分。因为分组具有固定或已知的有效载荷大小,所以解码器可从固定或已知有效载荷大小减去所指示部分长度以确定这些部分中的另一个部分的长度。此外,解码器可利用该信息来确定这些部分之间的分界点或分割点。因此,解码器可能够确定两个部分(例如经熵编码的可压缩符号部分和非可压缩符号旁路部分)的有效载荷中的起始点。因为解码器知道两个部分开始的位置,所以解码器可同时从两个部分读取,而不必首先缓冲两个部分中的一个部分。例如,另选策略是以正向次序对一个部分进行编码并且以反向次序对另一个部分进行编码。然而,在此类实施方案中,可需要解码器缓冲反向排序部分的全长以到达从其进行读取的起始点。然而,在此类实施方案中,可不需要发信号通知块或分组的标头中的部分的相应大小。
在一些实施方案中,块或分组大小(S_p)控制总体系统时延。在一些实施方案中,块或分组大小(S_p)可以是固定的或者可以是自适应选择的。另外,可隐式地定义或在位流标头中显式地发信号通知块或分组大小(S_p)。
在使用256字节分组或块大小的一些实施方案中,有效载荷大小可为255个字节,并且标头大小可为1个字节。即使分组或块的有效载荷的一部分是熵编码的,标头信息也可能不是熵编码的。在一些实施方案中,两个部分(例如,经熵编码符号部分和旁路非可压缩符号部分)的编码次序(正向或反向)可以是固定的或基于隐式规则自适应地切换或在位流中显式地发信号通知。
在一些实施方案中,标头可放置在分组或块的起始或端处。这是可能的,因为分组或块具有已知大小,使得解码器可将标头定位为已知大小分组或块的最后一个字节。
在一些实施方案中,编码器在构造分组或块的序列时的行为对解码器的资源需求和端到端系统时延具有显著影响。特别地,在利用熵编码器对符号进行编码和作为熵编码器的内部重归一化过程的一部分在其逐位输出中出现的该符号的表示之间存在时延。相似地,在产生一个位(经熵编码或绕过)和组合八个位以形成一个字节之间存在时延。此外,由熵编码器译码的符号和旁路位(例如,与包括在旁路子流中的非可压缩符号相对应的位)之间可存在数据依赖性。
图1A示出了根据一些实施方案的编码器的示例性编码环路。
在一些实施方案中,编码过程可包括将位流分离成可压缩符号和非可压缩符号。可将可压缩符号提供到熵编码器(诸如算术编码器),该熵编码器将字节输出到经熵编码符号缓冲器。例如,编码器100接收待编码的符号120,并且符号解析器102将这些符号解析到包括可压缩符号的第一子流122和包括非可压缩符号的第二子流124中。经由熵编码器108对可压缩子流122进行熵编码,并且将其输出到经编码符号缓冲器110。另外,可将旁路子流124添加到旁路缓冲器104。当经编码符号缓冲器110或旁路缓冲器104中已经累积足够的字节以将这些字节相加形成分组或块时,多路复用器106将来自相应缓冲器的经编码符号和非可压缩符号组合成固定或已知长度(例如,256个字节)的块或分组。虽然未示出,但编码器100还可包括一种部件,该部件在所形成的分组或块中包括标头,并且在标头中指示包括在分组或块中的部分中的至少一个部分的大小(例如经熵编码符号部分的长度或非可压缩符号部分的长度)。例如,图1B中示出了示例性分组。
在一些实施方案中,输出到经编码符号缓冲器110的字节可标记为(S_ac),并且输出到旁路缓冲器104的字节可标记为(S_bp)。当用于两个缓冲器的字节的大小之和(例如S_ac+S_bp)等于分组大小S_p(例如S_p=255)时,可通过串接存储在经编码符号缓冲器110或旁路缓冲器104中的字节来创建新分组。也可在分组的开始处添加固定大小的标头以指定经熵编码字节(例如经算术编码字节)S_ac的数量。所生成的分组可直接流式传输到解码器侧,而没有任何额外的编码时延
图1B示出了根据一些实施方案的由编码器编码的示例性块或分组。
分组130包括标头132和有效载荷134。有效载荷包括经熵编码符号部分136和旁路非可压缩符号部分138。标头指示分组130的有效载荷134的经熵编码部分136的长度或分组130的有效载荷134的旁路非可压缩符号部分138的长度。在一些实施方案中,分组可具有固定或已知总体长度140,该总体长度可为256个字节,并且标头132可具有已知长度,诸如一个字节。
图1C示出了根据一些实施方案的解码器的示例性解码环路。
在一些实施方案中,解码器诸如解码器150一接收到分组或块就以接收分组或块的次序对分组或块进行解码。解码器150的分组解析器152可读取传入分组或块的固定大小标头以确定分组或块的有效载荷的部分的相应大小诸如S_ac和S_bp,其中可从分组的有效载荷的已知或固定分组长度减去一个部分的长度来确定另一个部分的长度。例如,S_bp可等于S_p-S_ac。
在一些实施方案中,分组解析器152可经由经熵编码缓冲器168将经熵编码字节流160输出到熵解码器158,并且可将旁路字节流162输出到旁路缓冲器154。在一些实施方案中,由熵编码器158解码的经熵编码字节可对包括在旁路缓冲器154中的旁路字节中的位具有解码依赖性。例如,图1C示出了依赖性164。在一些实施方案中,经熵编码缓冲器168可在等待包括经熵编码字节所依赖的位的旁路字节的同时缓冲经熵编码字节流160。
来自熵解码器158的经熵解码符号可与来自旁路缓冲器154的旁路字节在多路复用器156处组合以形成经解码符号166的重构流。
图1D示出了根据一些实施方案的在被编码之前的包括可压缩符号和非可压缩符号的示例性位流和通过对位流进行编码产生的块或分组集合。
在一些实施方案中,传入位流诸如位流120可包括可压缩符号和非可压缩符号两者,如位流170中所示。例如,位流170包括可压缩符号172和非可压缩符号174。编码器诸如编码器100可输出分组的序列以表示位流170。例如,编码器可输出分组180的序列,其中每个分组包括标头132、经熵编码的可压缩符号136和旁路非可压缩符号138。
图2示出了根据一些实施方案的直接写入分组或块的编码器的示例性编码环路。
在一些实施方案中,来自已由熵编码器108熵编码的可压缩符号子流122的经编码符号可直接写入分组诸如分组130。例如,经熵编码符号可在经熵编码字节136中以正向次序写入。另外,来自非可压缩符号子流124的旁路符号可在旁路字节138中以反向次序直接写入分组130。
在一些实施方案中,符号解析器102可进一步解析或接收上下文202,并且将这些上下文提供到熵编码器108以用于对可压缩符号子流122的可压缩符号进行编码。
图3示出了根据一些实施方案的将旁路位写入预留旁路字节的编码器的示例性编码环路。
在一些场景中,可需要解码器诸如解码器150缓冲经熵编码流160或旁路流162以解决依赖性。另选地,解码器可缓冲分组,直到接收到所需的分组以解决依赖性。然而,在某些情况下,这可增加解码器的解码时延。例如,想象一下符号序列{x_0,x_1,...}的极端情况,其中x_0是旁路位并且x_1是对x_0具有解码依赖性的经算术编码位(例如,x_1的上下文由x_0的值确定)。如果所形成的分组中没有更多旁路位,则旁路字节将不被写入第一分组中。这是因为旁路缓冲器104可需要累积8个旁路位来形成可写入分组的旁路字节。实际上,可不写入第一个旁路字节,直到产生七个更多旁路位。该时延理论上是无界的,这意味着解码器在解码可恢复之前可能必须缓冲显著数量的分组(或更糟糕,所有分组)。
在一些实施方案中,通过在所形成的分组中预留至少一个旁路字节来解决此类忧虑。在一个实施方案中,通过在当前分组中预留字节和反向传播“未来”旁路位来界定解码时延/资源。
例如,每当将旁路符号发送到编码器时,便可执行以下过程:
○如果编码器的逐字节旁路位累积器为空,则在当前分组中预留一个字节以用作旁路字节(例如,增量S_bp)。将所预留的旁路字节的位置记录为P_bp。
○将位附加到累积器字节
○如果累积器字节为满,则将完成字节写入预留位置P_bp
只有当分组被完全分配(S_bp+S_ac==S_p)并且任何所预留的旁路字节都已完成时,可传输该分组。(另外的经熵编码字节被写入后续分组)。需注意,P_bp可以是指向缓冲器位置的指针。还需注意,用于旁路二进制位累积器的存储可占用预留字节。
例如,图3示出了具有预留旁路字节138的分组130,该预留旁路字节包括8个位302。这些位中的两个位已经写入有非可压缩符号,而另6个位尚未被填充。
虽然以上内容界定了解码资源,但却对编码器施加负担(尽管比等效解码器的负担略小)。允许编码器和解码器资源和系统时延两者都受到约束的另选实施方案如下。包含至少一个旁路字节(例如,S_bp>0)的每个分组都由指示旁路子缓冲器的最终字节中的有效位数量的另外标头构成。该标头可例如包括每个分组的第一个旁路字节的前三个位,或另选地,包括最后一个字节的最后三个位。这种机制允许编码器在不等待任何预留字节完成的情况下相反地使用部分字节刷新分组。
更一般地,编码器可根据特定设计约束选择经熵编码字节和旁路字节的任意组合以形成分组。为了确保解码器具有对这种流进行解码的资源,可在参数集中发信号通知解码器可需要来进行缓冲的缓冲器的最大数量。
图4示出了根据一些实施方案的包括预留旁路字节的示例性分组或块。
例如,分组130的402可指示预留旁路字节302的位1、2和3是有效的。在这种方案中,编码器可不必缓冲分组130,直到预留旁路字节302的所有8个位被填充,而是可在预留旁路字节被填充并且相反地在标头402中被指示预留旁路字节302中的哪些位是有效位之前提供分组130以供传输或存储。例如,位404可以是有效的,而位406可以是无效的空位或填补位。
在一些实施方案中,另外的增强可包括发信号通知分组序列的最后一个分组的S_ac和S_bp两者。例如,最后一个分组可具有低于S_p的有用字节数量。
在一些实施方案中,编码器可用额外字节填补最后一个分组,因此最后一个分组具有S_p的大小。填补字节可在解码器侧上丢弃。可隐式地推导出或在位流或另一层中显式地发信号通知在不使用填补字节的情况下知道何时停止解码所需的信息。另一个另选方案将包括用零个字节或一个字节填补分组。
在一些实施方案中,编码器可在标头中显式地写入分组的大小(对于比正常的更小的分组)。此类信息也可通过文件格式/网络传输层处理。
在一些实施方案中,编码器可在标头中显式地写入大小S_bp。需注意,如果支持两个标头,则可将标头放置在一起(在开始处),但也可将第二标头(用于S_bp)放置在位置(header_size_ap+1+S_ap)处(当然如果该位置<S_p的话)。还需注意,如果只剩下一个字节,可在其中输入0(空旁路)。
可隐式地指定或在高级语法标头/参数集中显式地发信号通知被选择来处理最后一个分组的方法。
在一些实施方案中,发信号通知S_ac和S_bp两者使得可在不必等待填充完整分组的情况下发信号通知数据(例如,以预定义时延发送可用数据)。虽然该方法可能浪费一些字节,但对于一些低时延应用,可能需要该方法。另外,发信号通知S_ac和S_bp两者使得可在不必将特定帧与下一帧交错的情况下发送对应于该帧的分组。可在高级语法标头/参数集中指定发信号通知单个大小还是两个大小。
不需要发信号通知S_ac和S_bp两者的另选构造是可能的。例如,一个实施方案假设可标识包含分组的整个数据单元的长度的传输系统。在这种情况下,可清楚地标识最后一个分组超过数据单元长度,并且对值S_p进行剪裁以使得分组适配数据单元。这种过程与双正向子缓冲器构造或正向加反向子缓冲器方法一起作用。在另一个实施方案中,实施方案依赖于解分组过程的自终止特性,但需要在正向方向上写入两个子流。在该构造中,解析过程的终止导致所有有效数据被消耗。该构造允许另外的数据在不使用本公开中所概述的方法的截短分组之后。
如上所提及,在一些情况下,在分组之间可存在依赖性,其中对经熵编码符号进行解码需要包括在旁路流中的一些符号。为了解决这些依赖性,可使用以下技术中的一些技术:
○分组标头可发信号通知上下文的概率是否被“重启”(即,重置为默认值)。允许重启概率使得可独立地对相关联的分组进行解码,
称为独立分组(与依赖分组相反)。
○对于独立分组,编码器可确保一个符号不会在两个分组上编码。
○出于容错原因,该此前的要求也可扩展到依赖分组。
○指定是否应当重置概率的标头信息可扩展以显式地指定初始概率值。例如,代替使用默认概率状态(即,对于所有符号均匀的概率),可定义偏向于不同符号统计的许多预设。
○可通过更高级别的语法结构(例如,序列参数集、条带/图块/块标头)打开和关闭该特征。
在一些实施方案中,依赖/独立分组机制可使得可实施波前过程。在该情况下,可引入指定独立分组位置的另一标头信息。
在一些实施方案中,可以至少以下方式处理分组排序信息:
○在位流中显式地将分组次序指定为标头信息。例如,可使用特定数目N个字节(例如,1个字节)来指示次序,该次序指定以数字2^N为模的分组索引。这可类似于针对视频编解码器进行图片次序计数的方式,视频编解码器将信息分裂成发信号通知的LSB元素和隐式地推导出的MSB分量。
○从另一个系统级别(例如,在TCP分组的情况下为网络层)获得信息。
○从接收到分组的次序隐式地推导出次序。
在一些实施方案中,分组排序信息可与先前章节中描述的概率重置信息组合,以便实现更紧凑的标头。例如,对于概率信息使用1至2个位,而对于排序信息使用其余位(例如,7至6个位)。
在一些实施方案中,示例性位流语法可如下:
位流语法
Figure BDA0003581837930000111
chunk_padding_enabled_flag等于1指示包含少于254个chunk_ae_byte元素的块的最后一个字节包含可变数量的填补位。chunk_flush_enabled_flag等于0指示位流中不存在chunk_bypass_5bits和chunk_bypass_pad。
chunk_num_ae_bytes指示块中存在的chunk_ae_byte和chunk_bypass_byte元素的数量。
变量NumChunkBypassBytes如下推导:
Max(0,(chunk_padding_enabled_flag?253:254)-chunk_num_ae_bytes)
hunk_ae_byte[i]指定当前块的经算术编码符号子流的第i个字节。如下将每个chunk_ae_byte[i]附加到AeByteStream数组:
for(i=0;i<chunk_num_ae_bytes;i++)
AeByteStream[AeStreamLen++]=chunk_ae_byte[i]
chunk_bypass_byte[j]指定当前块的旁路符号子流的第j个字节。如下将每个chunk_bypass_byte附加到BypassBitStream数组:
for(j=0;j<NumChunkBypassBytes;j++)
for(b=7;b>=0;b--)
BypassBitStream[BypassBitStreamLen++]=(chunk_bypass_byte[j]>>b)&1
chunk_bypass_5bits指定当前块的旁路符号子流端处至多五个旁路位的值。如下将每个位附加到BypassBitStream数组:
for(b=4;b>=0;b--)
BypassBitStream[BypassBitStreamLen++]=(chunk_bypass_5bits>>
b)&1
chunk_bypass_num_flushed_bits指定待从BypassBitStream的端丢
弃的旁路位的数量:
BypassBitstreamLen-=chunk_bypass_num_flushed_bits
在具有反向排序旁路字节的一些实施方案中,示例性位流语法可如下:
位流语法
Figure BDA0003581837930000121
chunk_num_ae_bytes是块中存在的chunk_ae_byte元素的数量。chunk_num_ae_bytes的值指示块中存在的chunk_bypass_byte元素的数量。
变量NumChunkBypassBytes如下推导:
NumChunkBypassBytes=Max(0,256-2-chunk_num_ae_bytes)
hunk_ae_byte[i]指定当前块的经算术编码符号子流的第i个字节。如下将每个chunk_ae_byte[i]附加到AeByteStream数组:
for(i=0;i<chunk_num_ae_bytes;i++)
AeByteStream[AeStreamLen++]=chunk_ae_byte[i]
chunk_bypass_byte[j]指定当前块的旁路符号子流的第j个字节。如下将每个chunk_bypass_byte附加到BypassBitStream数组:
for(j=NumChunkBypassBytes-1;j>=0;j--)
for(b=7;b>=0;b--)
BypassBitStream[BypassBitStreamLen++]=(chunk_bypass_byte[j]>>
b)&1
chunk_bypass_5bits指定当前块的旁路符号子流端处至多五个旁路位的值。如下将每个位附加到BypassBitStream数组(在附加chunk_bypass_bytes之后):
for(b=4;b>=0;b--)
BypassBitStream[BypassBitStreamLen++]=(chunk_bypass_5bits>>b)
&1
chunk_bypass_num_flushed_bits指定待从BypassBitStream的端丢弃的旁路位的数量:
BypassBitstreamLen-=chunk_bypass_num_flushed_bits
示例性编码过程
图5示出了根据一些实施方案的用于对包括可压缩符号和非可压缩符号的符号流进行编码的示例性过程。在框502处,编码器接收符号流以进行熵编码。编码器可在硬件中实施或者可经由执行计算设备的一个或多个处理器的程序指令来实施。在框504处,编码器的解析器将符号流分离成包括可压缩符号的第一子流和包括非可压缩符号的第二子流。在框506处,对可压缩符号子流的符号进行熵编码。需注意,非可压缩符号子流绕过框506的熵编码步骤。在框508处,然后将在506处编码的经熵编码符号和在框504处被分离成非可压缩符号的第二子流的非可压缩符号组合在分组的有效载荷的块中。在框510处,将另外的经熵编码符号和尚未经熵编码的另外非可压缩符号累积在508处形成的块中。例如,可在朝向块的后部的方向上从块的前部将经熵编码符号添加到块,并且可在朝向块的前部的方向上从块的后部将非可压缩符号添加到块,诸如图1B所示。在框512处,响应于所累积的经熵编码符号和累积在块中的非可压缩符号达到块的有效载荷大小(诸如256个字节),提供块以供例如在分组的有效载荷中进行传输或提供块以供存储。
示例性解码过程
图6示出了根据一些实施方案的用于对包括经熵编码符号部分和非经熵编码符号部分的分组的有效载荷进行解码的示例性过程。在框602处,解码器接收待解码的流的分组。解码器可在硬件中实施或者可经由一个或多个处理器所执行的程序指令来实施。分组包括有效载荷,该有效载荷包括经熵编码符号部分和非经熵编码符号部分。分组还包括指示经熵编码符号部分的长度或非经熵编码符号部分的长度的标头。在框604处,解码器基于标头中指示的长度来确定经熵编码符号部分和非经熵编码符号部分的相应起始点。例如,如果有效载荷具有已知块大小,并且经熵编码符号部分的长度或非经熵编码符号部分的长度是已知的(例如,经由包括在标头中的信息),则这些部分中的一个部分的起始点将是块的起始或端,并且这些部分中的另一个部分的起始点可基于从有效载荷的已知块大小减去已知部分长度来确定。
在框606处,解码器从经熵编码符号部分的所确定的起始点读取经熵编码符号。在框608处,解码器对在框606处从经熵编码符号部分读取的经熵编码符号进行熵解码。
在框610处,从有效载荷的非经熵编码符号部分的所确定的起始点读取非经熵编码符号。需注意,非经熵编码符号绕过框608处的熵解码步骤。
在框612处,将经熵解码符号和非经熵编码符号组合成作为解码器的输出提供的经解码符号流。
示例性计算机系统
图7示出了根据一些实施方案的示例性计算机系统700,该示例性计算机系统可实现编码器或解码器或本文所述的部件中的任何其他部件(例如,上文参考图1至图6描述的部件中的任何部件)。计算机系统700可被配置为执行上述实施方案中的任一个实施方案或所有实施方案。在不同的实施方案中,计算机系统700可以是各种类型的设备中的任一者,包括但不限于:个人计算机系统、台式计算机、膝上型电脑、笔记本电脑、平板电脑、一体电脑、平板计算机或上网本计算机、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动设备、消费者设备、视频游戏机、手持式视频游戏设备、应用服务器、存储设备、电视、视频记录设备、外围设备(诸如交换机、调制解调器、路由器)或一般性的任何类型的计算或电子设备。
如本文所述的编码器或解码器的各种实施方案可在一个或多个计算机系统700中执行,该计算机系统可与各种其他设备交互。需注意,根据各种实施方案,上文关于图1至图6所述的任何部件、动作或功能可在被配置为图7的计算机系统700的一种或多种计算机上实现。在例示的实施方案中,计算机系统700包括经由输入/输出(I/O)接口730耦接到系统存储器720的一个或多个处理器710。计算机系统700还包括耦接到I/O接口730的网络接口740以及一个或多个输入/输出设备750诸如光标控制设备760、键盘770和显示器780。在一些情况下,可以想到实施方案可以使用计算机系统700的单个实例来实现,而在其他实施方案中,多个此类系统或者构成计算机系统700的多个节点可被配置为托管实施方案的不同部分或实例。例如,在一个实施方案中,一些元素可以经由计算机系统700的与实现其他元素的那些节点不同的一个或多个节点来实现。
在各种实施方案中,计算机系统700可以是包括一个处理器710的单处理器系统、或包括若干个处理器710(例如两个、四个、八个或另一合适数量)的多处理器系统。处理器710可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器710可以是实现多种指令集架构(ISA)(诸如x86、PowerPC、SPARC或MIPS ISA或任何其他合适的ISA)中的任一种的通用或嵌入式处理器。在多处理器系统中,处理器710中的每一个处理器通常可但并非必须实现相同的ISA。
系统存储器720可被配置为存储点云压缩或点云解压缩程序指令722和/或可由处理器710访问的传感器数据。在各种实施方案中,系统存储器720可使用任何合适的存储器技术来实现,合适的存储器技术为诸如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或任何其他类型的存储器。在例示的实施方案中,程序指令722可被配置为实现结合上述功能中的任一种的图像传感器控制应用程序。在一些实施方案中,程序指令和/或数据可被接收、发送或存储在不同类型的计算机可访问介质上或与系统存储器720或计算机系统700分开的类似介质上。尽管将计算机系统700描述为实现前面各图的功能框的功能,但可经由这种计算机系统实现本文所述的任何功能。
在一个实施方案中,I/O接口730可被配置为协调设备中的处理器710、系统存储器720、和任何外围设备(包括网络接口740或其他外围设备接口,诸如输入/输出设备750)之间的I/O通信。在一些实施方案中,I/O接口730可执行任何必要的协议、定时或其他数据转换以将来自一个部件(例如系统存储器720)的数据信号转换为适于由另一部件(例如处理器710)使用的格式。在一些实施方案中,I/O接口730可包括对例如通过各种类型的外围总线(诸如,外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变型)附接的设备的支持。在一些实施方案中,I/O接口730的功能例如可被分裂到两个或更多个单独部件诸如北桥接件和南桥接件中。此外,在一些实施方案中,I/O接口730(诸如到系统存储器720的接口)的功能中的一些或全部可直接并入到处理器710中。
网络接口740可被配置为允许在计算机系统700和附接到网络785的其他设备(例如,携载件或代理设备)之间或者在计算机系统700的节点之间交换数据。在各种实施方案中,网络785可包括一种或多种网络,包括但不限于局域网(LAN)(例如,以太网或企业网)、广域网(WAN)(例如,互联网)、无线数据网、某种其他电子数据网络或它们的某种组合。在各种实施方案中,网络接口740可支持经由有线或无线通用数据网络(诸如任何合适类型的以太网网络)的通信,例如;经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)的通信;经由存储区域网络(诸如光纤通道SAN)、或经由任何其他合适类型的网络和/或协议的通信。
在一些实施方案中,输入/输出设备750可包括一个或多个显示终端、键盘、小键盘、触控板、扫描设备、语音或光学识别设备、或者适于由一个或多个计算机系统700输入或访问数据的任何其他设备。多个输入/输出设备750可存在于计算机系统700中,或者可分布在计算机系统700的各个节点上。在一些实施方案中,类似的输入/输出设备可与计算机系统700分开,并且可通过有线或无线连接(诸如通过网络接口740)与计算机系统700的一个或多个节点进行交互。
如图7所示,存储器720可包括程序指令722,这些程序指令可能够由处理器执行以实现上述任何元素或动作。在一个实施方案中,程序指令可执行上文所述的方法。在其他实施方案中,可包括不同的元件和数据。需注意,数据可包括上文所述的任何数据或信息。
本领域的技术人员应当理解,计算机系统700仅仅是例示性的,而并非旨在限制实施方案的范围。具体地,计算机系统和设备可以包括可执行所指出的功能的硬件或软件的任何组合,包括计算机、网络设备、互联网设备、PDA、无线电话、寻呼机等。计算机系统700还可以连接到未示出的其他设备,或者反之可作为独立的系统进行操作。此外,由所示出的部件所提供的功能在一些实施方案中可被组合在更少的部件中或者被分布在附加部件中。类似地,在一些实施方案中,所示出的部件中的一些部件的功能可不被提供,和/或其他附加功能可能是可用的。
本领域的技术人员还将认识到,虽然各种项目被示出为在被使用期间被存储在存储器中或存储装置上,但是为了存储器管理和数据完整性的目的,这些项目或其部分可在存储器和其他存储设备之间进行传输。另选地,在其他实施方案中,这些软件部件中的一些或全部软件部件可以在另一设备上的存储器中执行,并且经由计算机间通信来与例示的计算机系统进行通信。系统部件或数据结构中的一些或全部也可(例如作为指令或结构化数据)被存储在计算机可访问介质或便携式制品上以由合适的驱动器读取,其多种示例在上文中被描述。在一些实施方案中,存储在与计算机系统700分开的计算机可访问介质上的指令可经由传输介质或信号(诸如经由通信介质诸如网络和/或无线链路而传送的电信号、电磁信号或数字信号)传输到计算机系统700。各种实施方案还可包括在计算机可访问介质上接收、发送或存储根据以上描述所实现的指令和/或数据。一般来讲,计算机可访问介质可包括非暂态计算机可读存储介质或存储器介质,诸如磁介质或光学介质,例如盘或DVD/CD-ROM、易失性或非易失性介质,诸如RAM(例如SDRAM、DDR、RDRAM、SRAM等)、ROM等。在一些实施方案中,计算机可访问介质可包括传输介质或信号,诸如经由通信介质诸如网络和/或无线链路而传送的电气信号、电磁信号、或数字信号。
在不同的实施方案中,本文所述的方法可以在软件、硬件或它们的组合中实现。此外,可改变方法的框的次序,并且可对各种要素进行添加、重新排序、组合、省略、修改等。对于受益于本公开的本领域的技术人员,显然可做出各种修改和改变。本文所述的各种实施方案旨在为例示的而非限制性的。许多变型、修改、添加和改进是可能的。因此,可为在本文中被描述为单个示例的部件提供多个示例。各种部件、操作和数据存储库之间的界限在一定程度上是任意性的,并且在具体的示例性配置的上下文中示出了特定操作。预期了功能的其他分配,它们可落在所附权利要求的范围内。最后,被呈现为示例性配置中的分立部件的结构和功能可被实现为组合的结构或部件。这些和其他变型、修改、添加和改进可落入如以下权利要求书中所限定的实施方案的范围内。

Claims (20)

1.一种存储程序指令的非暂态计算机可读介质,所述程序指令在由一个或多个处理器执行时使得所述一个或多个处理器:
将待熵编码的符号流分离成:(a)可压缩符号子流和(b)非可压缩符号旁路子流;
对所述可压缩符号子流的所述符号进行熵编码;以及
形成包括来自所述可压缩符号子流的经熵编码符号和来自所述非可压缩符号旁路子流的非可压缩符号的块;以及
响应于累积经熵编码符号和非可压缩符号的量满足所述块的有效载荷的有效载荷大小,提供所述块以供传输或存储。
2.根据权利要求1所述的非暂态计算机可读介质,其中所述块的所述有效载荷大小小于待编码的所述符号流的长度,并且其中所述程序指令使得所述一个或多个处理器:
在处理待熵编码的所述符号流的全长之前,提供所述块以供传输或存储。
3.根据权利要求1所述的非暂态计算机可读介质,其中所述程序指令还使得所述一个或多个处理器:
填充所述块的标头,所述标头指示:
所述块的所述有效载荷的填充有来自所述可压缩子流的可压缩符号的长度;或者
所述块的所述有效载荷的填充有来自所述非可压缩子流的非可压缩符号的长度,
其中所述有效载荷具有解码器已知的或向所述解码器发信号通知的定义总长度。
4.根据权利要求3所述的非暂态计算机可读介质,其中所述标头进一步填充有关于在对所述块的经熵编码符号进行熵解码之前是否将重置熵编码概率的指示符。
5.根据权利要求1所述的非暂态计算机可读介质,其中为了形成所述块,所述程序指令使得所述一个或多个处理器:
以正向次序将所述子流中的第一子流写入分组的第一端;以及
以反向次序将所述子流中的第二子流写入所述分组的第二端。
6.根据权利要求1所述的非暂态计算机可读介质,其中为了形成所述块,所述程序指令使得所述一个或多个处理器:
将所述可压缩符号子流的所述经熵编码符号写入可压缩符号子流缓冲器;
将所述旁路子流的所述非可压缩符号写入旁路子流缓冲器;和
响应于写入所述可压缩符号子流缓冲器的所述经熵编码符号和写入所述旁路符号子流缓冲器的所述非可压缩符号的总和累积到满足所述块的有效载荷大小,将所述可压缩子流缓冲器与所述旁路子流缓冲器串接以形成所述块的所述有效载荷。
7.根据权利要求1所述的非暂态计算机可读介质,其中为了形成所述块,所述程序指令使得所述一个或多个处理器:
预留所述块的所述有效载荷的字节以用于写入非可压缩符号位;和
避免提供所述块以供传输,直到至少所预留字节填充有非可压缩符号位。
8.非暂态计算机可读介质1,其中所述程序指令使得所述一个或多个处理器:
标识对所述旁路子流中的一个或多个非可压缩符号具有解码依赖性的一个或多个经熵编码字节;
估计在解码器处缓冲以使得所述解码器能够使用所述一个或多个非可压缩符号对所述一个或多个经熵编码字节进行解码的块的数量,其中所述一个或多个非可压缩符号与对所述一个或多个非可压缩符号具有所述解码依赖性的所述一个或多个经熵编码字节包括在分开的块中;以及
响应于确定在所述解码器处缓冲的块的所估计数量小于所缓冲的块的阈值数量,继续提供块以供传输或存储,所述块包括对尚未包括在所提供的块中的一个或多个非可压缩符号具有编码依赖性的经熵编码字节;或者
响应于在所述解码器处缓冲的块的所估计数量等于或大于所述阈值块数量,避免提供块以供传输或存储,所述块包括对尚未包括在所提供的块中的一个或多个非可压缩符号具有编码依赖性的经熵编码字节。
9.根据权利要求1所述的非暂态计算机可读介质,其中为了形成所述块,所述程序指令使得所述一个或多个处理器:
预留所述块的所述有效载荷的字节以用于写入非可压缩符号位;以及
在所述块的标头中指示:
所述块的所述有效载荷的填充有来自所述可压缩子流的可压缩符号的长度;或者
所述块的所述有效载荷的填充有来自所述非可压缩子流的非可压缩符号的长度;以及
在所预留字节的所有位未填充有非可压缩符号位的情况下,所预留字节的填充有非可压缩符号位的有效位。
10.一种存储程序指令的非暂态计算机可读介质,所述程序指令在由一个或多个处理器执行时使得所述一个或多个处理器:
接收包括以下的分组:
有效载荷,所述有效载荷包括经熵编码符号部分和非经熵编码符号部分;和
标头,所述标头指示:
所述有效载荷的填充有经熵编码符号的长度;或者
所述有效载荷的填充有非经熵编码符号的长度;
基于所述标头来确定所述有效载荷中的所述经熵编码符号的起始点和所述有效载荷中的所述非经熵编码符号的起始点;
从所述经熵编码符号的所确定的起始点读取所述经熵编码符号并对所读取的经熵编码符号进行解码;
从所述非经熵编码符号的所确定的起始点读取所述非经熵编码符号;以及
将所解码的经熵编码符号和所述非经熵编码符号组合成经解码符号流。
11.根据权利要求10所述的非暂态计算机可读介质,其中所述标头还包括:
指示包括在所述有效载荷中的非经熵编码字节的无效位的数据。
12.根据权利要求10所述的非暂态计算机可读介质,其中所述标头还包括指示在对所述分组的经熵编码符号进行熵解码之前将重置熵编码概率的指示符,
其中所述程序指令使得所述一个或多个处理器:
重置用于所述经熵编码符号的所述熵解码的概率。
13.根据权利要求10所述的非暂态计算机可读介质,其中被压缩到包括所述分组和一个或多个另外分组的分组集合中的帧序列的序列标头包括指示在对所述帧序列的经熵编码符号进行熵解码之前将重置熵编码概率的指示符,
其中所述程序指令使得所述一个或多个处理器:
重置用于所述集合中的所述分组和所述一个或多个另外分组的所述经熵编码符号的所述熵解码的概率。
14.根据权利要求10所述的非暂态计算机可读介质,其中被压缩到包括所述分组的一个或多个分组的集合中的帧的帧标头包括指示在对所述帧的经熵编码符号进行熵解码之前将重置熵编码概率的指示符,并且
其中所述程序指令使得所述一个或多个处理器:
重置用于所述一个或多个分组的集合的所述经熵编码符号的所述熵解码的概率。
15.根据权利要求10所述的非暂态计算机可读介质,其中帧的帧标头或帧序列的序列标头包括指示在对所述帧的经熵编码符号进行熵解码之前或在对所述帧序列的经熵编码符号进行熵解码之前将重置熵编码概率的指示符,并且
其中所述分组包括在所述帧序列或所述帧中,并且其中所述分组的所述标头包括指示在对所述分组的经熵编码符号进行熵解码之前将重置熵编码概率的指示符,
其中所述程序指令使得所述一个或多个处理器:
在对所述帧序列或所述帧进行解码之前重置概率;和
在对包括在所述帧序列中的或包括在所述帧中的所述分组进行解码之前另外重置概率。
16.一种系统,所述系统包括:
存储程序指令的一个或多个存储器;和
一个或多个处理器,其中所述程序指令当在所述一个或多个处理器上执行时使得所述一个或多个处理器:
将待熵编码的符号流分离成:(a)可压缩符号子流和(b)非可压缩符号子流;
对所述可压缩符号子流的所述符号进行熵编码;以及
形成包括来自所述可压缩符号子流的经熵编码符号和来自旁路子流的非可压缩符号的分组;和
响应于累积经熵编码符号和非可压缩符号的量满足所述分组的有效载荷的有效载荷大小,提供所述分组以供传输或存储。
17.根据权利要求16所述的系统,其中所述程序指令在由所述一个或多个处理器执行时使得所述一个或多个处理器:
预留所述分组的所述有效载荷的字节以用于写入非可压缩符号位;以及
避免提供所述分组以供传输,直到至少所预留字节填充有非可压缩符号位。
18.根据权利要求17所述的系统,其中所述程序指令在由所述一个或多个处理器执行时使得所述一个或多个处理器:
响应于避免提供所述分组以供传输或存储持续超过阈值时间量:
在所预留字节的至少一些位未填充有非可压缩符号位的情况下提供所述分组以供传输或存储。
19.根据权利要求18所述的系统,其中所述程序指令在由所述一个或多个处理器执行时使得所述一个或多个处理器:
在所述分组的标头中包括指示所预留字节的填充有非可压缩符号位的有效位的数据。
20.根据权利要求16所述的系统,其中为了形成所述块,所述程序指令使得所述一个或多个处理器:
以正向次序将子流中的第一子流写入分组的第一端;以及
以反向次序将所述子流中的第二子流写入所述分组的第二端。
CN202080070069.5A 2019-10-02 2020-10-02 使用旁路子流和经熵编码子流的低时延编码 Pending CN114556956A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962909691P 2019-10-02 2019-10-02
US62/909,691 2019-10-02
US17/061,411 2020-10-01
US17/061,411 US11398833B2 (en) 2019-10-02 2020-10-01 Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream
PCT/US2020/054142 WO2021067866A1 (en) 2019-10-02 2020-10-02 Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream

Publications (1)

Publication Number Publication Date
CN114556956A true CN114556956A (zh) 2022-05-27

Family

ID=75275046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080070069.5A Pending CN114556956A (zh) 2019-10-02 2020-10-02 使用旁路子流和经熵编码子流的低时延编码

Country Status (4)

Country Link
US (2) US11398833B2 (zh)
EP (1) EP4018672A1 (zh)
CN (1) CN114556956A (zh)
WO (1) WO2021067866A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US10897269B2 (en) 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US11113845B2 (en) 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US10607373B2 (en) 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
US10939129B2 (en) 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11202098B2 (en) 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
US11367224B2 (en) 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
CN109547711A (zh) * 2018-11-08 2019-03-29 北京微播视界科技有限公司 视频合成方法、装置、计算机设备及可读存储介质
US11057564B2 (en) 2019-03-28 2021-07-06 Apple Inc. Multiple layer flexure for supporting a moving image sensor
US11711544B2 (en) 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11398833B2 (en) 2019-10-02 2022-07-26 Apple Inc. Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream
US11538196B2 (en) 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11475605B2 (en) 2020-01-09 2022-10-18 Apple Inc. Geometry encoding of duplicate points
US11373276B2 (en) * 2020-01-09 2022-06-28 Tencent America LLC Techniques and apparatus for alphabet-partition coding of transform coefficients for point cloud compression
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102783035A (zh) * 2010-02-18 2012-11-14 捷讯研究有限公司 并行熵编码和解码方法和设备
US20140210652A1 (en) * 2011-10-06 2014-07-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Entropy coding
US20140334557A1 (en) * 2012-01-20 2014-11-13 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Coding concept allowing parallel processing, transport demultiplexer and video bitstream
CN106416248A (zh) * 2014-06-09 2017-02-15 高通股份有限公司 用于显示流压缩dsc的熵译码技术
US20180167481A1 (en) * 2016-12-12 2018-06-14 Hughes Network Systems, Llc Compressibility estimation for lossless data compression

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7885988B2 (en) * 2006-08-24 2011-02-08 Dell Products L.P. Methods and apparatus for reducing storage size
US7881544B2 (en) * 2006-08-24 2011-02-01 Dell Products L.P. Methods and apparatus for reducing storage size
US7961959B2 (en) * 2006-08-24 2011-06-14 Dell Products L.P. Methods and apparatus for reducing storage size
US7970216B2 (en) * 2006-08-24 2011-06-28 Dell Products L.P. Methods and apparatus for reducing storage size
US8520740B2 (en) * 2010-09-02 2013-08-27 International Business Machines Corporation Arithmetic decoding acceleration
US10123053B2 (en) 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
US8643515B2 (en) * 2011-10-28 2014-02-04 International Business Machines Corporation Compressing data using an encoding table
US9191670B2 (en) * 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
GB2513110A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
US9223765B1 (en) * 2013-10-09 2015-12-29 Google Inc. Encoding and decoding data using context model grouping
GB2523348B (en) * 2014-02-20 2016-03-30 Gurulogic Microsystems Oy Encoder, decoder and method
GB2527607B (en) * 2014-06-27 2016-10-05 Gurulogic Microsystems Oy Encoder, decoder and method
US10277248B2 (en) 2015-07-07 2019-04-30 Tidal Systems, Inc. Compression engine with consistent throughput
US10887430B2 (en) 2015-10-21 2021-01-05 Dragonwave-X, Llc Compression in communications
US11044495B1 (en) * 2018-02-13 2021-06-22 Cyborg Inc. Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation
US10587286B1 (en) 2019-03-18 2020-03-10 Blackberry Limited Methods and devices for handling equiprobable symbols in entropy coding
US11398833B2 (en) 2019-10-02 2022-07-26 Apple Inc. Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102783035A (zh) * 2010-02-18 2012-11-14 捷讯研究有限公司 并行熵编码和解码方法和设备
US20140210652A1 (en) * 2011-10-06 2014-07-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Entropy coding
US20140334557A1 (en) * 2012-01-20 2014-11-13 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Coding concept allowing parallel processing, transport demultiplexer and video bitstream
CN106416248A (zh) * 2014-06-09 2017-02-15 高通股份有限公司 用于显示流压缩dsc的熵译码技术
US20180167481A1 (en) * 2016-12-12 2018-06-14 Hughes Network Systems, Llc Compressibility estimation for lossless data compression

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FLYNN D. ET AL.: "G-PCC Bypass coding of bypass bins", 126.MPEG MEETING;20190325-20190329;GENEVA(MOTION PICTURE EXPERT GROUP OF ISO/IEC JTC1/SC29/WG11), NO.M47827, XP030212128, 29 March 2019 (2019-03-29), pages 1 - 2 *
FLYNN D.ET AL.: "G-PCC Bypass coding of bypass bins", 126.MPEG MEETING;GENEVA(MOTION PICTURE EXPERT GROUP OF ISO/IEC JTC1/SC29/WG11), NO.M47827, XP030212128, 29 March 2019 (2019-03-29) *
SHARMAN K.ET AL.: "CABAC Packet-based Stream", 98.MPEG MEETING;GENEVA;(MOTION PICTURE EXPERT GROUP OF ISO/IEC JTC1/SC29/WG11) NO.M22058, XP030050621, 2 December 2011 (2011-12-02) *

Also Published As

Publication number Publication date
US11398833B2 (en) 2022-07-26
EP4018672A1 (en) 2022-06-29
WO2021067866A1 (en) 2021-04-08
US20220360280A1 (en) 2022-11-10
US11705924B2 (en) 2023-07-18
US20210105022A1 (en) 2021-04-08

Similar Documents

Publication Publication Date Title
US11705924B2 (en) Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream
US10587286B1 (en) Methods and devices for handling equiprobable symbols in entropy coding
CA2156889C (en) Method and apparatus for encoding and decoding data
US10489426B2 (en) Category-prefixed data batching of coded media data in multiple categories
US5717394A (en) Method and apparatus for encoding and decoding data
US8520740B2 (en) Arithmetic decoding acceleration
US20130262809A1 (en) Processing system and method including data compression api
JP2005510981A (ja) 複数チャネル・ビデオトランスコーディング・システムおよび方法
US20120033738A1 (en) Virtual frame buffer system and method
TWI675584B (zh) 具有多個句法解析電路和/或多個後解碼電路的視訊處理系統
CN108377394B (zh) 视频编码器的图像数据读取方法、计算机装置及计算机可读存储介质
US7728742B2 (en) Method and apparatus for compressing and decompressing data
US7689047B2 (en) Reduced buffer size for JPEG encoding
US20050007263A1 (en) Video coding
GB2306279A (en) Apparatus for decoding data
CN112290953B (zh) 多道数据流的阵列编码装置和方法、阵列解码装置和方法
US20240070921A1 (en) Concatenation of chunked entropy streams
JP2002223449A (ja) 画像圧縮符号化装置及び画像圧縮符号化方法
CN113905233B (zh) 基于音频视频编码标准的熵解码方法、可读介质及其电子设备
CA2273144C (en) Apparatus and system for decoding data
KR100987252B1 (ko) 비트스트림 데이터 처리를 위한 인터페이스 장치 및 방법
CN116016943A (zh) 数据解码方法、装置、电子设备及存储介质
JPH11251922A (ja) 圧縮符号化装置及び方法

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