掌桥专利:专业的专利平台
掌桥专利
首页

用于处理配置数据的方法、设备、计算机程序和计算机可读介质

文献发布时间:2023-06-19 12:16:29


用于处理配置数据的方法、设备、计算机程序和计算机可读介质

技术领域

本发明涉及方法、设备、计算机程序和计算机可读介质。特别但非排他地,本发明涉及用于处理配置信息的方法、设备、计算机程序和计算机可读介质,所述配置信息涉及可用于重构图像在相对高质量水平下的表示的残差数据。

背景技术

信号的压缩和解压缩是许多已知系统中的考虑因素。许多类型的信号,例如视频,可以被压缩和编码以例如通过数据通信网络进行传输。当对这样的信号进行解码时,可能希望提高信号的质量水平和/或恢复原始信号中包含的尽可能多的信息。

一些已知的系统利用可伸缩编码技术。可伸缩编码涉及对信号以及信息进行编码,以允许例如根据解码器的能力和可用带宽重构一种或多种不同的质量水平下的信号。

关于可伸缩编码系统中的信号重构,有一些考虑因素。一个这样的考虑因素是存储、使用和/或传输的信息量。信息量可以例如根据所重构信号的期望质量水平、重构时使用的信息的性质和/或配置这种信息的方式而变化。另一项考虑是编码器和/或解码器有效处理信息的能力。编码器和/或解码器处理信息的效率可以是编码器和/或解码器的性能水平中的因素。

发明内容

本发明的各个方面在所附权利要求书中阐述。

另外的特征和优点将从下面仅举例来说给出的、参考附图进行的优选实施方案的描述中变得显而易见。

附图说明

图1示出了根据本发明的实施方案的信号处理系统的示例的示意性框图;

图2A和图2B示出了根据本发明的实施方案的信号处理系统的另一示例的示意性框图;

图3示出了根据本发明的实施方案的数据处理技术的示例的示意图;

图4是描绘根据本发明的实施方案的方法的示例的流程图;

图5示出了根据本发明的实施方案的数据处理技术的示例的示意图;且

图6示出了根据本发明的实施方案的设备的示例的示意性框图。

具体实施方式

参考图1,示出了信号处理系统100的示例。信号处理系统100用于处理信号。信号类型的示例包括但不限于视频信号、图像信号、音频信号、体积信号(诸如在医学、科学或全息成像中使用的那些信号)、或其他多维信号。

信号处理系统100包括第一设备102和第二设备104。第一设备102和第二设备104可以具有客户端-服务器关系,其中第一设备102执行服务器装置的功能,并且第二设备104执行客户端装置的功能。信号处理系统100可以包括至少一个附加设备(未示出)。第一设备102和/或第二设备104可以包括一个或多个部件。一个或多个部件可以以硬件和/或软件实现。一个或多个部件可以在信号处理系统100中位于同一位置或可以彼此远离。设备类型的示例包括但不限于计算机化的装置、手持式或膝上型计算机、平板计算机、移动装置、游戏控制台、智能电视、机顶盒、增强和/或虚拟现实耳机等。

第一设备102经由数据通信网络106通信地耦合到第二设备104。数据通信网络106的示例包括但不限于互联网、局域网(LAN)和广域网(WAN)。第一设备102和/或第二设备104可以具有与数据通信网络106的有线和/或无线连接。

第一设备102包括编码器108。编码器108被配置为对包括在信号中的数据进行编码,所述数据在下文中被称为“信号数据”。例如,在信号是视频信号的情况下,编码器108被配置为编码视频数据。视频数据包括多个图像或帧的序列。编码器108除了编码信号数据之外还可以执行一个或多个其他功能。编码器108可以以各种不同的方式体现。例如,编码器108可以体现为硬件和/或软件。

尽管在该示例中,第一设备102包括编码器108,但是在其他示例中,第一设备102与编码器108分离。在这样的示例中,第一设备102通信地耦合到编码器108。第一设备102可以体现为一个或多个软件功能和/或硬件模块。

第二设备104包括解码器110。解码器110被配置为解码信号数据。解码器110除了解码信号数据之外还可以执行一个或多个其他功能。解码器110可以以各种不同的方式体现。例如,解码器110可以体现为硬件和/或软件。

尽管在该示例中,第二设备104包括解码器110,但是在其他示例中,第二设备104与解码器110分离。在这样的示例中,第二设备104通信地耦合到解码器110。第二设备104可以体现为一个或多个软件功能和/或硬件模块。

编码器108对信号数据进行编码,并且经由数据通信网络106将编码后的信号数据传输至解码器110。解码器110对接收到的编码后的信号数据进行解码,并生成解码后的信号数据。解码器110可以输出解码后的信号数据或使用解码后的信号数据导出的数据。例如,解码器110可以输出这样的数据以在与第二设备104相关联的一个或多个显示装置上显示。

在本文描述的一些示例中,编码器108将信号在给定质量水平下的表示和信息传输到解码器110,解码器110可以使用该信息来重构信号在一种或多种更高质量水平下的表示。这样的信息可以被称为“重构数据”。在一些示例中,表示的“重构”涉及获得并非原始表示的精确副本的表示。所述表示与原始表示相同的程度可能取决于各种因素,包括但不限于量化水平。信号在给定质量水平下的表示可以被认为是给定质量水平下信号中包括的数据的再现、版本或描绘。在一些示例中,重构数据被包括在由编码器108编码并且被传输到解码器110的信号数据中。例如,重构数据可以呈元数据的形式。在一些示例中,重构数据与信号数据被分开编码和传输。

解码器110用于重构信号在一种或多种更高质量水平下的表示的信息可以包括残差数据,如下文更详细地描述。残差数据是重构数据的示例。解码器110用于重构信号在一种或多种更高质量水平下的表示的信息还可以包括与残差数据的处理有关的配置数据。配置数据可以指示残差数据已被编码器108处理的方式和/或残差数据要被解码器110处理的方式。配置数据可以例如以元数据的形式用信号发送到解码器110。

参考图2A和图2B,示意性地示出了信号处理系统200的示例。信号处理系统200包括具有编码器的第一设备202和具有解码器的第二设备204。在第一设备202和第二设备204中的每一个中,在两种逻辑水平上示出了项目。这两种水平由虚线分隔。最高的第一水平上的项目与相对高质量水平下的数据有关。最低的第二水平上的项目与相对低质量水平下的数据有关。相对高和相对低的质量水平与具有多个质量水平的分层层次结构有关。在一些示例中,分层层次结构包括多于两个质量水平。在这样的示例中,第一设备202和第二设备204可以包括多于两种不同的水平。可能存在图2A和图2B中所描绘的水平之上和/或之下的一种或多种其他水平。

首先参考图2A,第一设备202获得图像在相对高质量水平下的第一表示206。给定图像的表示是包括在图像中的数据的表示。图像可以是视频的给定帧。图像在相对高质量水平下的第一表示206在下文中将被称为“输入数据”,因为在该示例中,它是作为输入被提供给第一设备202中的编码器的数据。第一设备202可以接收输入数据206。例如,第一设备202可以从至少一个其他设备接收输入数据206。第一设备202可以被配置为接收输入数据206的连续部分,例如,视频的连续帧,并对每个连续帧执行本文所述的操作。例如,视频可以包括帧F

第一设备202基于输入数据206导出数据212。在该示例中,基于输入数据206的数据212是图像在相对低质量水平下的表示212。在该示例中,数据212通过对输入数据206执行下采样操作来导出,并且因此在下文中将被称为“下采样数据”。在其他示例中,数据212通过对输入数据206执行除下采样操作之外的操作来导出。

在该示例中,在相对低质量水平下处理下采样数据212以生成处理后的数据213。在其他示例中,不在相对低质量水平下处理下采样数据212。这样,第一设备202可以生成相对低质量水平下的数据,其中相对低质量水平下的数据包括下采样数据212或处理后的数据213。

在一些示例中,生成处理后的数据213涉及对下采样数据212进行编码。对下采样数据212进行编码会产生相对低质量水平下的经编码图像。第一设备202可以输出经编码图像,例如以用于传输到第二设备204。例如形成经编码视频的一系列经编码图像,作为用于传输到第二设备204的输出,可以被称为“基本”流。不在第一设备202中产生,而是可以通过与第一设备202分离的编码装置来产生经编码图像。经编码图像可以是H.264编码视频的一部分。生成处理后的数据213可以例如包括生成视频的连续帧,作为诸如H.264视频编码器的单独的编码装置的输出。与由单独的编码装置生成的任何中间数据对照,用于生成处理后的数据213的中间数据集可以包括这种编码器的输出。

生成相对低质量水平下的处理后的数据213可以进一步涉及对相对低质量水平下的经编码图像进行解码。如将在下面变得显而易见的,可以执行解码操作以模仿在第二设备204处的解码操作。对经编码图像进行解码会产生相对低质量水平下的经解码图像。在一些示例中,第一设备202对相对低质量水平下的经编码图像进行解码,以产生相对低质量水平下的经解码图像。在其他示例中,第一设备202例如从与第一设备202分离的编码和/或解码装置接收相对低质量水平下的经解码图像。可以使用H.264解码器对经编码图像进行解码。由单独的解码装置进行的解码可以包括:将诸如被配置为传输到远程解码装置的经编码数据流的经编码视频输入到与第一设备202一起实现的单独的黑盒解码器中,以生成视频的连续经解码帧。因此,处理后的数据213可以包括通过复杂的非线性编码和解码过程生成的视频数据帧,其中编码和解码过程可能涉及根据诸如H.264的特定编码标准对时空相关性进行建模。然而,因为将任何编码器的输出馈送到对应的解码器,所以从第一设备202有效地隐藏了这种复杂性。

在示例中,生成相对低质量水平下的处理后的数据213还涉及基于下采样数据212与第一设备202所获得的经解码图像之间的比较,例如基于下采样数据212与经解码图像之间的差异,来获得校正数据。校正数据可以用于校正在对下采样数据212进行编码和解码时引入的错误。在一些示例中,第一设备202输出校正数据以及经编码信号,所述校正数据例如用于传输到第二设备204。这允许接收者校正在对下采样数据212进行编码和解码时引入的错误。该校正数据也可以被称为“第一增强”流。由于校正数据可以是基于下采样数据212与经解码图像之间的差异,因此可以将其视为残差数据的形式(例如,与下文稍后所述的另一组残差数据不同)。

在一些示例中,生成相对低质量水平下的处理后的数据213还涉及使用校正数据来校正经解码图像。例如,作为用于传输的输出的校正数据可以被放置成适合于与经解码图像组合的形式,然后被添加到经解码图像。这可以在逐帧的基础上执行。在其他示例中,第一设备202使用下采样数据212,而不是使用校正数据来校正经解码图像。例如,在某些情况下,可以仅使用编码然后解码的数据,而在其他情况下,可以用其他处理代替编码和解码。

在一些示例中,生成处理后的数据213涉及执行除上述编码、解码、获得和校正动作以外的一个或多个操作。

第一设备202基于相对低质量水平下的数据来获得数据214。如上所述,相对低质量水平下的数据可以包括处理后的数据213或下采样数据212,其中下采样数据212不以较低水平处理。如上所述,在某些情况下,处理后的数据213可以包括使用校正数据校正的经重构视频流(例如,来自编码-解码操作)。在图2A和图2B的示例中,数据214是图像在相对高质量水平下的第二表示,图像在相对高质量水平下的第一表示是输入数据206。相对高质量水平下的第二表示可以被认为是图像在相对高质量水平下的初始或预测表示。在该示例中,第一设备202通过对相对低质量水平下的数据执行上采样操作来导出数据214。数据214在下文中将被称为“上采样数据”。然而,在其他示例中,例如在不通过对输入数据206进行下采样来导出数据212的情况下,可以使用一个或多个其他操作来导出数据214。应当注意,对相对高和相对低质量水平的引用可以对应于对第一和第二质量水平的引用,其中第二质量水平高于第一质量水平。如本文所述,在某些情况下,质量水平可以对应于不同的空间分辨率。

使用输入数据206和上采样数据214来获得残差数据216。残差数据216与图像相关联。残差数据216可以呈一组残差元素的形式。一组残差元素216中的残差元素可以与输入数据206中的相应图像元素相关联。图像元素的示例是像素。

在该示例中,通过从输入数据206中的对应图像元素的值中减去上采样数据214中的图像元素的值来获得给定的残差元素。这样,残差数据216可与上采样数据214结合使用以重构输入数据206。残差数据216还可以被称为“重构数据”或“增强数据”。在一种情况下,残差数据216可以形成“第二增强”流的一部分。

第一设备202获得与残差数据216的处理有关的配置数据。配置数据指示残差数据216已被第一设备202处理和/或生成的方式和/或残差数据216要被第二设备204处理的方式。配置数据可以包括一组配置参数。配置数据可用于控制第二设备204使用残差数据216处理数据和/或重构输入数据206的方式。配置数据可以与残差数据216的一个或多个特性有关。不同的配置数据可能导致对残差数据216和/或使用残差数据216执行不同的处理。因此,配置数据可用于使用残差数据216重构输入数据206。

在该示例中,第一设备202将基于下采样数据212的数据、基于残差数据216的数据以及配置数据传输到第二设备204,以使第二设备204能够重构输入数据206。

现在转到图2B,第二设备204接收基于下采样数据212(例如从下采样数据212导出)的数据220。第二设备204还接收基于残差数据216的数据。例如,第二设备204可以接收“基本”流(数据220)、“第一增强流”(任何校正数据)和“第二增强流”(残差数据216)。第二设备204还接收与残差数据216的处理有关的配置数据。基于下采样数据212的数据220可以是下采样数据212本身、处理后的数据213或从下采样数据212或处理后的数据213导出的数据。基于残差数据216的数据可以是残差数据216本身或从残差数据216导出的数据。

在一些示例中,接收到的数据220包括处理后的数据213,所述处理后的数据可以包括相对低质量水平下的经编码图像和/或校正数据。在一些示例中,例如在第一设备202已处理下采样数据212以生成处理后的数据213的情况下,第二设备204处理接收到的数据220以生成处理后的数据222。由第二设备204进行的这种处理可以包括对经编码图像(例如,形成“基本”经编码视频流的一部分的经编码图像)进行解码,以产生相对低质量水平下的经解码图像。在一些示例中,由第二设备204进行的处理包括使用获得的校正数据来校正经解码图像。因此,处理后的数据222可以包括第一或相对低的质量水平下的校正数据帧。在一些示例中,相对低质量水平下的经编码图像由与第二设备204分离的解码装置解码。可以使用H.264解码器对相对低质量水平下的经编码图像进行解码。

在其他示例中,接收到的数据220包括下采样数据212,并且不包括处理后的数据213。在一些这样的示例中,第二设备204不处理接收到的数据220以生成处理后的数据222。

第二设备204使用相对低质量水平下的数据来导出上采样数据214。如上所述,相对低质量水平下的数据可以包括处理后的数据222或接收到的数据220,其中第二设备204不处理相对低质量水平下的接收到的数据220。上采样数据214是图像在相对高质量水平下的初步表示。可以通过对相对低质量水平下的数据执行上采样操作来导出上采样数据214。

第二设备204获得残差数据216。残差数据216可与上采样数据214一起使用以重构输入数据206。残差数据216指示输入数据206与上采样数据214之间的比较。

第二设备204还获得与残差数据216的处理有关的配置数据。配置数据可被第二设备204用来重构输入数据206。例如,配置数据可以指示与残差数据216有关的特性或属性,所述特性或属性影响残差数据216将要使用和/或处理的方式或究竟是否将要使用残差数据216。在一些示例中,配置数据包括残差数据216。

关于这种配置数据的使用,有一些考虑因素。一个这样的考虑因素是生成、存储、传输和/或处理的信息量。使用的信息越多,处理这样的信息可能涉及的资源量就越大。这样的资源的示例包括传输资源、存储资源和处理资源。相比于一些已知的技术,本文所描述的示例允许使用相对少量的信息。这可以减少经由数据通信网络106传输的数据量。在数据与高质量视频数据有关的情况下,在已知系统中传输的信息量可能特别高的情况下,节省可能是特别有意义的。

与这种配置数据的使用有关的另一个考虑因素是在编码器和/或解码器处为了处理配置数据而涉及的处理量和/或相对处理复杂性。相比于一些已知技术,本文所描述的示例减少了编码器和/或解码器为了获得和/或处理配置数据而执行的处理量和/或处理复杂性。简化由编码器和/或解码器执行的处理会提高编码器和/或解码器的效率。

参考图3,示意性地示出了数据处理技术300的示例。数据处理技术300可由包括编码器的设备(诸如上述的第一设备102)来执行。如下面更详细描述的,数据处理技术300涉及执行配置数据的逐字节处理。

获得配置数据310。配置数据310与残差数据(例如如上所述的残差数据216)的处理有关。

配置数据310包括配置参数320的值。在该示例中,配置数据310还包括其他配置参数的值。配置参数320的值具有可变的位长度。这样,可用于表示配置参数320的值的位数基于配置参数320的值而变化。

在一些示例中,配置参数320的值指定版本号。版本可以是根据其布置配置数据310的语法的版本。语法可以被认为是定义要处理配置数据310的方式和/或定义要包括在配置数据310中的配置参数的框架。编码器108和/或解码器110可以被配置成根据由配置参数320指示的语法的版本操作。

在一些示例中,配置参数320涉及配置消息的有效载荷部的大小。配置消息可由编码器108生成以包含配置数据310和/或将配置数据310传送到解码器110。配置消息可以包括报头部和有效载荷部。报头部可以包括指定有效载荷部的大小的配置参数。有效载荷部的大小具有可变的位长度。

在一些示例中,使用游程编码(run-length encoding)操作和哈夫曼编码(Huffman encoding)操作中的一者或两者来编码残差数据216。编码残差数据216得到经编码残差数据。经编码残差数据可以被输出以供解码器110处理。在一些示例中,配置参数320与经编码残差数据的大小有关。例如,配置参数320可与经游程编码数据的大小和/或经哈夫曼编码数据的大小有关。

配置数据310被布置成字节序列330。字节序列330包括整数个字节。在该示例中,配置数据310被布置成包括5个字节的字节序列,但是将理解,在其他示例中可以使用其他字节数。在该示例中,字节序列330中的给定字节包括8个位。字节序列330可以是更大的字节序列或逐字节流的一部分。将配置数据310布置成字节序列330使得能够对配置数据310执行逐字节处理。在逐字节处理中,数据是在逐字节基础上处理的。

以逐字节方式处理配置数据310可能比以逐位方式处理配置数据310更有效。逐位处理可能涉及跟踪给定字节中的哪个位是将要读取或写入的下一个位。当表示给定参数的一组位跨越字节边界时,可以执行附加处理以读取该组位并获得给定参数。在执行逐字节处理的情况下,可以减少这种处理。在一些示例中,与逐位方式相比,当以逐字节方式处理数据时,可以减少执行周期数。

在一些示例中,字节序列330被写入存储器。字节序列330可被写入存储器以由协议栈的传输层处理。与以逐位方式处理配置数据310的情况相比,如果以逐字节方式处理配置数据310,则在将配置数据310存储在存储器中和/或从存储器检索配置数据310时可能涉及较少的处理。可寻址存储器的最小单元可以包含一个字节。这样,信息可以以逐字节方式存储在存储器中。因此,如果将配置数据310打包成字节序列,则在将配置数据310存储在存储器中和/或从存储器检索配置数据310时可能涉及较少的步骤。通过将配置数据310以逐字节形式提供给存储器,还可以减少用于将配置数据310打包到可寻址存储器单元中的填充量。

此外,如果将配置数据310布置成字节序列,则可以更有效地执行配置数据310经由诸如互联网的网络的传输。数据可以经由传输控制协议(TCP)在互联网上传输。TCP在协议栈的传输层中操作。TCP从流中获得数据,将数据打包到TCP片段中,并使用互联网模块(例如互联网协议(IP))将每个TCP片段经由互联网传输到接收者。数据流可以从存储器获得。TCP片段可以包括整数个字节。这样,如果TCP从逐字节流而不是从逐位流获得将被打包到TCP片段中的数据,则可能涉及较少的处理。通过将数据以逐字节形式提供给TCP,还可以减少用于将数据打包到TCP片段中的填充量。

在该示例中,在协议栈的应用层执行将配置数据310布置成字节序列330。这样,应用层可按逐字节方式而不是逐位方式来处理配置数据310。

在该示例中,字节序列330包括可变长度元素340。可变长度元素340在字节序列330中包括整数个字节。在该示例中,可变长度元素340包括两个字节。在其他示例中,可变长度元素可以包括其他数量的字节。可变长度元素可以被称为“多字节”元素,但在一些示例中,可变长度元素包括单个字节。可变长度元素340的一个或多个字节在字节序列330中可以是连续的。在一些示例中,可变长度元素340的一个或多个字节在字节序列330中是不连续的。

可变长度元素340被布置为存储具有可变的位长度的配置参数320的值。

可变长度元素340的至少一个给定字节具有一个或多个预定位,所述一个或多个预定位被布置成指示可变长度元素340是否包括至少一个给定字节的一个或多个附加字节。在该示例中,一个或多个预定位包括单个预定位。在其他示例中,一个或多个预定位包括一个以上的预定位。在一些示例中,可变长度元素340的每个字节包括一个或多个预定位。在其他示例中,可变长度元素340的至少一个字节不包括一个或多个预定位。

在一个或多个预定位包括单个预定位的情况下,单个预定位可以被认为是指示在可变长度元素340中是否存在一个或多个附加字节的标志。例如,如果可变长度元素340包含至少一个给定字节的附加字节,则预定位的值可以被设置为1。另一方面,如果可变长度元素340不包含至少一个给定字节的附加字节,则预定位的值可以被设置为0。换句话说,预定位指示可变长度元素340是否扩展到至少一个给定字节之外。

这样,可使用可变长度元素340来表示配置参数320的值,而不考虑配置参数320的值的位长度。可变长度元素340包括可用于存储配置参数320的值的最小字节数。因此与使用固定长度元素的情况相比,使用可变长度元素340可减少存储、处理和/或传输的信息量,所述固定长度元素的大小对应于配置参数320的值的最大可能位长度。可变长度元素340使得可用于表示配置参数320的可能值的数目能够根据需要并以灵活的方式增加。这样,可变长度元素340可用于提供对配置数据310的未来开发和/或修改,例如通过允许增加配置参数320的值的位长度,而不需要对数据处理技术300进行相对复杂的修改。

在图3所示的示例中,可变长度元素340包括两个字节。在该示例中,可变长度元素340的第一字节包含指示在可变长度元素340中包括第二字节的预定位。可变长度元素340的第二字节包含指示在可变长度元素340中不包括第一字节和第二字节的附加字节的预定位。当字节序列330由解码器110处理时,可变长度元素340的第一字节可以在可变长度元素340的第二字节之前被读取。基于由可变长度元素340的第一字节中的预定位提供的指示,解码器110确定第二字节也是可变长度元素340的一部分。然后读取第二字节。基于由第二字节中的预定位提供的指示,解码器110确定下一字节不是可变长度元素340的一部分,并且因此对可变长度元素340的读取完成。

一个或多个预定位可以被布置在至少一个给定字节的末尾。例如,一个或多个预定位可包括至少一个给定字节的一个或多个末位。在一些示例中,一个或多个预定位包括至少一个给定字节的一个或多个首位。在一些示例中,至少一个给定字节中的每一个包括布置成存储配置参数320的值的七个位和布置成指示可变长度元素340是否包括至少一个给定字节的一个或多个附加字节的一个位。

响应于确定配置参数320的值与预定阈值具有预定关系,可以将配置参数320的值存储在可变长度元素340中。在一些示例中,预定关系包括配置参数320的值大于或等于预定阈值。在一些示例中,如果确定配置参数320的值与预定阈值没有预定关系,则将配置参数320的值存储在固定长度元素中,而不是存储在可变长度元素340中。固定长度元素包括预定整数个字节。这样,可以选择性地包括可变长度元素340。

预定阈值可以与固定长度元素的位长度有关。例如,如果固定长度元素包括单个位,则可由固定长度元素表示0与255之间的值。这种情况下的预定阈值例如可以是255。这样,如果具有可变的位长度的配置参数的值大于255,则可以使用可变长度元素340代替固定长度元素或作为其补充,来存储配置参数320的值。换言之,固定长度元素和可变长度元素可以用于存储配置参数320的值。

输出包括可变长度元素340的字节序列330以供解码器110处理,以使解码器110能够使用配置数据310重构输入数据206。

参考图4,示出了处理配置数据的方法400的示例。方法400可由包括编码器的设备(诸如上述第一设备102)来执行。

在一些示例中,获得残差数据216。残差数据216可由解码器110用来使用上采样数据214重构输入数据206。

在项目410处,获得配置数据。所述配置数据与残差数据216的处理有关。所述配置数据可由解码器110用来使用上采样数据214重构输入数据206。

确定获得的配置数据中包括的配置参数的值。所述配置参数的值可以具有可变的位长度。

在项目430处,确定配置参数的值与预定阈值具有第一预定关系还是第二预定关系。

在该示例中,第一预定关系包括配置参数的值小于预定阈值。在该示例中,第二预定关系包括配置参数的值大于或等于预定阈值。

响应于确定配置参数的值与预定阈值具有第一预定关系,在项目440处,将配置参数的值存储在第一固定长度元素中。然后输出第一固定长度元素以供解码器110处理。第一固定长度元素可包括整数个字节。在一些示例中,第一固定长度元素具有一个字节的长度。第一固定长度元素的长度不依赖于配置参数的值。

在一些示例中,对存储配置参数的可能值的查找表的引用存储在第一固定长度元素中。例如,第一固定长度元素可包括可用于从查找表中获得配置参数的值的值。

响应于确定配置参数的值与预定阈值具有第二预定关系,在项目450处,将配置参数的值存储在至少一个第二固定长度元素中。至少一个第二固定长度元素包括整数个字节。至少一个第二固定长度元素中的每一个可以具有一个字节的长度。至少一个第二固定长度元素可以被认为是可变长度元素,因为至少一个第二固定长度元素由可变数量的固定长度元素形成。至少一个第二固定长度元素的总长度依赖于配置参数的值。至少一个第二固定长度元素包括可用于存储配置参数的值的最小字节数。

在项目460处,将被布置为指示配置参数的值被存储在至少一个第二固定长度元素中的数据存储在第一固定长度元素中。在一些示例中,所述数据包括第一固定长度元素的至少一个预定位。存储在第一固定长度元素中的数据使得解码器110能够确定配置参数的值被存储在至少一个第二固定长度元素中。

这样,将配置参数的值选择性地存储在至少一个第二固定长度元素中。仅在第一固定长度元素不足以存储配置参数的值时才可能使用至少一个第二固定长度元素。与使用至少一个第二固定长度元素而不考虑配置参数的值的情况相比,选择性地使用至少一个第二固定长度元素可以减少使用、存储和/或传输的信息量。

输出第一固定长度元素和至少一个第二固定长度元素以供解码器110处理。第一固定长度元素和当配置参数的值与预定阈值具有第二预定关系时至少一个第二固定长度元素可以被布置成字节序列。可以输出所述字节序列以供解码器110处理。

解码器110接收第一固定长度元素,并基于第一固定长度元素的内容确定是将配置参数的值存储在第一固定长度元素中还是至少一个第二固定长度元素中。在一些示例中,响应于第一固定长度元素的预定位具有第一值,解码器110可以确定配置参数的值被存储在第一固定长度元素中。响应于预定位具有第二值,解码器110可以确定配置参数的值被存储在至少一个第二固定长度元素中。在一些示例中,响应于配置参数的值与预定阈值具有第一预定关系,解码器110可以确定配置参数的值被存储在第一固定长度元素中。响应于配置参数的值与预定阈值具有第二预定关系,解码器110可以确定配置参数的值被存储在至少一个第二固定长度元素中。在确定配置参数的值是位于第一固定长度元素中还是至少一个第二固定长度元素中之后,解码器110然后能够获得配置元素的值。

参考图5,示意性地示出了数据处理技术500的示例。数据处理技术500可由包括编码器的设备(诸如上述的第一设备102)来执行。图5所示的某些项目与图3所示的项目相似。因此,相似的项目使用了对应的附图标记(增加了200)。

获得配置数据510。配置数据510与残差数据216的处理有关。

配置数据510包括多个配置参数521、522、523、524的值。尽管在该示例中描绘了四个配置参数,但在其他示例中,配置数据510中包括其他数量的配置参数。在该示例中,配置参数521、522、523、524的值由不同的位长度表示。在其他示例中,配置参数521、522、523、524的值中的一些由相同的位长度表示。在该特定示例中,配置参数521具有由3个位的位长度表示的值,配置参数522具有由6个位的位长度表示的值,配置参数523具有由5个位的位长度表示的值,并且配置参数524具有由2个位的位长度表示的值。

配置数据510被打包成字节序列530。通过以预定顺序布置配置参数521、522、523、524的值来打包配置数据510。预定顺序可以是与获得配置参数521、522、523、524的顺序不同的顺序。因此,配置参数521、522、523、524可以被重新布置。

配置参数521、522、523、524的值被布置成使得字节序列530中的给定字节被由不同位长度表示的值填充。在该特定示例中,配置参数522和配置参数524被打包到字节序列530中的第一字节532中。配置参数522和配置参数524的值的组合位长度是八个位。因此,第一字节532完全由配置参数522和配置参数524的组合填充。类似地,配置参数521和配置参数523被打包到字节序列530中的第二字节534中。配置参数521和配置参数523的值的组合位长度是八个位。因此,第二字节534完全由配置参数521和配置参数523的组合填充。

通过用按预定顺序布置的由不同位长度表示的值来填充字节序列530中的给定字节,减少了字节序列530中使用的填充量。这样,与不按预定顺序布置由不同位长度表示的值的情况相比,将数据更有效地打包成字节序列530。将数据更有效地打包成字节序列530可减少用于存储配置数据510的字节数。

在由不同位长度表示的值没有重新布置成预定顺序的比较情况下,字节序列530中的第一字节存储配置参数521的值以及5个填充位,因为配置参数521和配置参数522的值的组合位长度大于8个位。字节序列530中的第二字节存储配置参数522的值以及2个填充位,因为配置参数522和配置参数533的值的组合位长度大于8个位。字节序列530中的第三字节然后可以存储配置参数523和配置参数524的值以及1个填充位。因此,在这种比较情况下,三个字节用于存储四个配置参数521、522、523、524的值,相比之下,当所述值被重新布置成预定顺序时仅用两个字节。根据预定顺序将配置数据510打包成字节序列530因此减少了要传输到解码器110的信息量。

参考图6,示出了设备600的示例的示意性框图。

在示例中,设备600包括编码器。在另一示例中,设备600包括解码器。

设备600的示例包括但不限于移动计算机、个人计算机系统、无线装置、基站、电话装置、桌上型计算机、膝上型计算机、笔记本计算机、上网本计算机、大型计算机系统、手持式计算机、工作站、网络计算机、应用服务器、存储装置、诸如相机的消费型电子装置、摄像机、移动装置、视频游戏控制台、手持式视频游戏装置、或大体来说任何类型的计算或电子装置。

在该示例中,设备600包括被配置为处理信息和/或指令的一个或多个处理器601。一个或多个处理器601可以包括中央处理单元(CPU)。一个或多个处理器601与总线602耦合。一个或多个处理器601执行的操作可以由硬件和/或软件执行。一个或多个处理器601可包括多个位于同一位置的处理器或多个位于不同位置的处理器。

在该示例中,设备600包括被配置为为一个或多个处理器601存储信息和/或指令的计算机可用易失性存储器603。计算机可用易失性存储器603与总线602耦合。计算机可用易失性存储器603可以包括随机存取存储器(RAM)。

在该示例中,设备600包括被配置为为一个或多个处理器601存储信息和/或指令的计算机可用非易失性存储器604。计算机可用非易失性存储器604与总线602耦合。计算机可用非易失性存储器604可以包括只读存储器(ROM)。

在该示例中,设备600包括被配置为存储信息和/或指令的一个或多个数据存储单元605。一个或多个数据存储单元605与总线602耦合。一个或多个数据存储单元605可以例如包括磁盘或光盘以及磁盘驱动器或固态驱动器(SSD)。

在该示例中,设备600包括被配置为将信息传送给一个或多个处理器601和/或从一个或多个处理器601传送信息的一个或多个输入/输出(I/O)装置606。一个或多个I/O装置606与总线602耦合。一个或多个I/O装置606可以包括至少一个网络接口。所述至少一个网络接口可以使设备600能够经由一个或多个数据通信网络进行通信。数据通信网络的示例包括但不限于互联网和局域网(LAN)。一个或多个I/O装置606可以使用户能够经由一个或多个输入装置(未示出)向设备600提供输入。一个或多个输入装置可以包括例如遥控器、一个或多个物理按钮等。一个或多个I/O装置606可以使信息能够经由一个或多个输出装置(未示出)提供给用户。一个或多个输出装置可以例如包括显示屏。

描绘了设备600的各种其他实体。例如,当存在时,操作系统607、数据信号处理模块608、一个或多个另外的模块609以及数据610被示出为驻留在计算机可用易失性存储器603、计算机可用非易失性存储器604和一个或多个数据存储单元605中的一者中或者它们的组合中。数据信号处理模块608可以通过存储在计算机可用非易失性存储器604内的存储器位置、一个或多个数据存储单元605内的计算机可读存储介质和/或其他有形的计算机可读存储介质中的计算机程序代码来实现。有形的计算机可读存储介质的示例包括但不限于光学介质(例如,CD-ROM、DVD-ROM或蓝光)、闪存卡、软盘或硬盘或者能够存储计算机可读指令或作为专用集成电路(ASIC)的任何其他介质,所述计算机可读指令诸如至少一个ROM或RAM或可编程ROM(PROM)芯片中的固件或微代码。

设备600因此可以包括数据信号处理模块608,其可以由一个或多个处理器601执行。数据信号处理模块608可以被配置为包括用以实现本文描述的至少一些操作的指令。在操作期间,一个或多个处理器601启动、运行、执行、解释或以其他方式执行信号处理模块608中的指令。

尽管本文参考附图描述的示例的至少一些方面包括在处理系统或处理器中执行的计算机过程,但是本文描述的示例还扩展到计算机程序,例如载体上或载体中的适于将示例付诸实践的计算机程序。载体可以是能够承载程序的任何实体或装置。

应该理解,设备600可以包括与图6所描绘的部件相比更多、更少和/或不同的部件。

设备600可以位于单个位置或可以分布在多个位置。这样的位置可以是本地或远程的。

本文描述的技术可以以软件或硬件来实现,或者可以使用软件和硬件的组合来实现。所述技术可包括将设备配置为执行和/或支持本文描述的任何或全部技术。

应当理解,关于任一个实施方案所描述的任何特征都可以单独使用,或者与所描述的其他特征结合使用,并且还可以与任何其他实施方案的一个或多个特征结合使用,或者与任何其他实施方案的任何组合结合使用。此外,在不脱离所附权利要求限定的本发明的范围的情况下,还可以采用上面未描述的等效物和修改。

相关技术
  • 用于处理配置数据的方法、设备、计算机程序和计算机可读介质
  • 感测车辆周围环境中的物体的方法,数据处理设备,计算机程序产品和计算机可读数据介质
技术分类

06120113235970