多描述编码中的增益控制方法与流程

文档序号:17009268发布日期:2019-03-02 02:10阅读:308来源:国知局
多描述编码中的增益控制方法与流程

本公开涉及媒体源信号的多描述编码(multipledescriptioncoding,简称mdc)技术,具体领域为采用增益控制方法应用多描述编码技术进行信号预处理。



背景技术:

在过去的几十年中,数据压缩技术的发展降低了媒体(音频、视频或多媒体)数据传输所需的巨大带宽。但数据压缩带来的一个弊端是压缩的媒体数据对数据丢失或噪声很敏感,而数据丢失或噪声在尽力型(best-effort)网络中时有发生。在某些情况下,丢失几个比特的数据可导致整个数据包无法识别。随着终端用户设备和网络环境越来越多样化,在噪声网络上进行可靠的媒体数据传输也变得更具挑战性。

为减少噪声网络上媒体传输中的数据丢失,人们已经研发了各种技术,如前向纠错(fec)、自动重传请求(arq)和丢包隐藏(plc)等。例如,多描述编码(mdc)技术可实现容错性良好的媒体传输。



技术实现要素:

下文将阐述在多描述编码中信号预处理(如增益控制)的方法、设备和系统。

一方面,本文公开了对媒体流的多个描述进行编码的方法。该方法包括:为媒体流的当前块确定第一数量的复制块;为当前块确定多个互补正向增益因子;以及通过将多个互补正向增益因子应用于第一数量的复制块来确定当前块的第一数量的描述信息。

另一方面,本文也公开了一种用于对媒体流的多个描述进行解码的方法。该方法包括在媒体流中为媒体流的当前块确定第一数量的描述,其中每个描述包括对应于当前块的缩放块;确定第一数量的缩放块的反向增益因子,以及通过将反向增益因子应用于第一数量的缩放块来确定当前块。

此外,本文还公开了用于实现上述方法的设备装置,即一非暂时性计算机可读介质用于存储指令,计算机系统的处理器执行该指令后可进行处理操作,用于对媒体流的多个描述进行解码。该非暂时性计算机可读介质包括一系列指令,该指令用于通过对从媒体流解码的量化数据进行去量化以便在媒体流中为媒体流的当前块确定第一数量的描述,其中每个描述包括对应于当前块的缩放块;该指令也用于确定第一数量的缩放块的反向增益因子,并且通过将反向增益因子应用于第一数量的缩放块来确定当前块。

附图说明

在阅读以下详细描述时参考附图将有助于更好地理解本公开的内容。需要强调的是,根据惯例,图示中各个部分并不是按比例绘制的。相反,为表述清楚起见,已对各个不同部分的尺寸进行任意扩大或缩小。

图1是根据本公开实施例所绘制的采用mdc方法进行媒体传输的系统示例图。

图2是根据本公开实施例所绘制的mdc编码流程示例图。

图3是根据本公开实施例所绘制的mdc解码流程示例图。

图4是根据本公开实施例所绘制的针对媒体源流进行mdc编码的流程示例图。

图5是根据本公开实施例所绘制的针对媒体流进行mdc解码的流程示例图。

图6是媒体源流的结构示意图。

图7是与媒体源流的当前块对应的复制块的结构示意图。

具体实施方式

网上多媒体数据共享,诸如视频会议、实时流视频广播或互联网电话服务等,都需要高效率且高保真的媒体数据传输。媒体数据可包括音频数据、视频数据或包含音频序列或视频序列的任何多媒体数据。通常,媒体数据可以以其原始形式存储或者转换成媒体源流。媒体源流可包括时间序列数据(例如:包括多个音频样本的音频序列或者包括多个图像或帧的视频序列)、媒体源流的特征提取的残差(例如:视频序列中当前图像经帧间预测之后的残差图像)或者变换域中媒体源流的等效量(例如:变换和/或量化系数)。可将媒体源流编码(或“压缩”)成媒体比特流以便在网络中传输。

随着所接收的连续数据包的数目增加,可以使用某些编码技术(例如:mp-3和mp-4)来改进渐进传输中的解码质量。如果能收到所有之前的数据包,则可以实现编码质量的提高。然而,一旦数据包的接收顺序出现混乱(例如:数据包丢失或接收延迟),那么用于这些编码技术的解码过程可能会被中断,直到接收到丢失的数据包后才能继续。在这种情况下,解码器端可能会出现过长的延迟。

多描述编码(mdc)是指可以将媒体(如音频、视频或多媒体)流分成用于编码和解码的多个子流(称为“描述”)的技术。每个描述可提供媒体源流的近似值。每个描述具有一定的保真度或置信度用于表示媒体源流。

mdc兼容解码器可解码一个或多个描述或描述的子集来重建媒体源流。在接收多个描述的解码器中,可以基于多个描述使用媒体源流的近似值来重建媒体流,其质量可优于基于单个描述重建的媒体流。接收到的描述越多,解码媒体流可以达到的保真度就越高。mdc的信号预处理技术致力于提高mdc编码质量并降低计算成本。

mdc通过引入一定程度的冗余以减轻丢包带来的影响,由此可提供媒体流传输的容错能力。在mdc中,描述的任意子集可以用来重建媒体流。当出现网络拥塞或丢包时,可以仅损失一定的质量(如分辨率或保真度)而保证媒体流的重建不被中断,而网络拥塞或丢包在尽力型网络中也是常见现象。在某些情况下,媒体流的质量大致与解码器维持的数据速率成正比。

mdc技术的发展主要分为两类,各有侧重点:第一类侧重于设计特定的变换或滤波器组以获得mdc属性,可以在变换阶段之后和量化阶段之前执行mdc技术;另一类则侧重于设计可满足mdc需求的特定量化器,可以在变换阶段之后的量化阶段之后执行mdc技术。

本公开中公开的mdc处理方法、设备和系统主要用于信号预处理,并且也可以应用于信道编码、信源编码或同时应用于这两种编码。根据本公开的实施例,可以在量化阶段之前使用mdc技术对信号进行预处理(例如:信号划分和增益控制)。在一些示例中,可以在变换阶段之前执行基于mdc的信号预处理,然后进入量化阶段;在另一些示例中,也可以在变换阶段之后和量化阶段之前执行基于mdc的信号预处理;在又一实例中,也可以在编码过程中的量化阶段之前执行基于mdc的信号预处理,而无需变换阶段。

根据本公开的实施例,所公开的方法、设备和系统可适用于不同的数据类型或计算环境,诸如整数、定点或浮点等。另外,本文所公开的用于mdc编码和解码的方法、设备和系统可以在任何计算系统中用作软件或硬件模块,并且可以针对任何图像、音频、视频或其他有限信号动态范围内的数字信号系统,包括但不限于8位或10位图像或视频,8位、16位或24位数字音频信号,32位浮点数字音频信号或小位(例如:2比特)数字信号。应该注意的是,本公开的应用和实现并不仅限于上述示例,并且采用现成技术即可在任何计算环境中实现本公开的实现方式的变体、变化或修改,以最大程度减少量化错误。

例如,可以在量化之前获得mdc属性。mdc属性可包含多个增益因子,该增益因子根据媒体源流的特性(例如:能量特性或统计特性)而确定。媒体源流可以被复制以形成多个原始描述,然后分别加以应用增益因子以形成多个缩放描述。多个经缩小的描述可被量化以形成比特流进行传输。增益因子可用于控制编码媒体比特流的容错能力,从而提高编码质量并降低计算成本。

图1是根据本公开实施例所绘制的采用mdc方法进行媒体传输的系统100示例图。如图1所示,系统100可包含多个设备和网络,诸如设备102、设备104和网络106。该设备可以是微型计算机、大型计算机、超级计算机、通用计算机、特殊用途或专用计算机、集成计算机、数据库计算机、远程服务器计算机、个人计算机、笔记本电脑、平板电脑、手机、个人数据助理(pda)、可穿戴计算设备等一台或多台计算机的任何配置,或由计算服务提供商提供的计算服务(例如web主机或云服务)来实现。在一些实现中,计算设备可以由多组计算机的形式来实现,各个计算设备可位于不同地理位置,并通过诸如网络进行彼此间的通信。虽然某些操作可以由多台计算机共同完成,但在一些实现中,不同的计算机会被分配不同的操作。在一些实现中,系统100可以使用具有计算机程序的通用计算机或处理器来实现,在运行计算机程序时可执行本文描述的相应的方法、算法和/或指令。另外,也可以使用专用计算机或处理器,配备专用硬件设备用以执行本文描述的任何方法、算法或指令。

设备102可以包括处理器108和存储器110等硬件内部配置。处理器108可以是能够操作或处理信息的任何类型的一个或多个设备。在一些实现中,处理器108可以包括中央处理器(如中央处理单元,即cpu)。在另一些实现中,处理器108可以包括图形处理器(如图形处理单元,即gpu)。尽管本文示例中可以用所示的单个处理器来实现,但是如果使用多个处理器将可体现速度和效率方面的优势。例如,处理器108可分布在多个机器或设备(每个机器或设备带有一个或多个处理器)上,这些机器或设备可以直接耦合或通过网络(如局域网)实现互联。存储器110可以是能够存储代码和数据的任何暂时或非暂时性的一个或多个设备,这些代码和数据可由处理器(通过诸如总线)访问。本文所述的存储器110可以是随机存取存储器设备(ram)、只读存储器设备(rom)、光盘或磁盘、硬盘驱动器、固态驱动器,闪存驱动器、安全数字(sd)卡、记忆棒、紧凑型闪存(cf)卡或任何合适类型的存储设备的任意组合。在一些实现中,存储器110可以分布在多个机器或设备上,诸如基于网络的存储器或基于云的存储器。存储器110可以包括数据(未示出)、操作系统(未示出)和应用程序(未示出),数据可以是用于处理的任何数据(如音频流、视频流或多媒体流),应用程序可以是允许处理器108执行指令以生成控制信号的程序,这些控制信号可用于执行下文描述的方法中所述的各项功能。

在一些实现中,设备102除了可包括处理器108和存储器110之外,还可以包括辅助、附加或外部存储设备(未示出)。如使用上述额外存储设备,则可在高处理需求时提供额外的存储空间。辅助存储设备可以是任何合适的非暂时性计算机可读介质形式的存储设备,如存储卡、硬盘驱动器、固态驱动器、闪存驱动器或光驱等。此外,辅助存储设备既可以是设备102的组件,也可以是通过网络访问的共享设备。在一些实现中,存储器110中的应用程序可以全部或部分地存储在辅助存储设备中,并根据处理需要加载到存储器110中。

设备102除了包括处理器108和存储器110之外,还可以包括输入/输出(i/o)设备,例如设备102可包括i/o设备112。i/o设备112可通过多种方式实现,比如它可以是耦合到设备102的显示器,并被配置为可以显示图形数据的图像。i/o设备112可以是向用户传输视觉、听觉或触觉信号的任何设备,如显示器、触敏设备(例如触摸屏)、扬声器、耳机、发光二极管(led)指示灯或振动电机等。i/o设备112也可以是任何类型的需要或不需要用户干预的输入设备,如键盘、数字小键盘、鼠标、轨迹球、麦克风、触敏设备(如触摸屏幕)、传感器或手势感应输入设备。如果i/o设备112是显示器,则其可以是液晶显示器(lcd)、阴极射线管(crt)或能够向个人提供可见输出的任何其他输出设备。在一些情况下,输出设备也可以作为输入设备,例如接收触摸式输入的触摸屏显示器。

此外,i/o设备112也可以由传输信号(和/或数据)的通信设备组成。例如,i/o设备112可包含一个从设备102向另一个设备发送信号或数据的有线装置。又例如,i/o设备112也可包含使用兼容协议的无线发射器或接收器,用于将信号从设备102发送到另一设备,或者将来自另一设备的信号接收到设备102。

设备102除了配备处理器108和存储器110之外,还可以额外包括通信设备114来与另一个设备进行通信。或者也可以采用网络106进行通信。网络106可以是任何组合的任何合适类型的一个或多个通信网络,包括但不限于使用蓝牙通信、红外通信、近场连接(nfc)、无线网络、有线网络、局域网(lan)、广域网(wan)、虚拟专用网络(vpn)、蜂窝数据网络和互联网。通信设备114可以通过多种方式实现,诸如应答器或收发器设备、调制解调器、路由器、网关、电路、芯片、有线网络适配器、无线网络适配器、蓝牙适配器、红外适配器、nfc适配器、蜂窝网络芯片,或耦合到设备102的任何组合的任何适当类型的设备,以提供与网络106的通信功能。

设备104与设备102类似,配备了处理器116、存储器118、i/o设备120和通信设备122。设备104的元件116-122的实现可类似于设备102中的108-114。设备102和104可分别执行多媒体传输的不同功能。例如,设备102可以用作解码器设备(简称为“解码器”),而设备104可以用作编码器设备(简称为“编码器),反之亦然。设备102可通过网络106与设备104通信。设备102和104还可与连接到网络106的其他设备(未示出)进行通信。

设备102和104(以及存储在其上和/或由此执行的算法、方法、指令等)可以在硬件上实现,硬件包括如知识产权(ip)内核、专用集成电路(asic)、可编程逻辑阵列、光处理器、可编程逻辑控制器、微代码、固件、微控制器、服务器、微处理器、数字信号处理器等或任何其他适用的电路。在本公开中,“处理器”一词应理解为包含任何上述内容中的一项或多项的组合。“信号”、“数据”和“信息”等术语可互换使用。此外,设备102和104的部分功能并不必以相同的方式来实现。

应该注意的是,mdc兼容的编码设备(如设备102和104)和系统的部件或组件并不局限于图1中所示的那些的元件。在不脱离本公开的范围的情况下,mdc兼容编码设备和系统可以包括更多或更少的部件、组件、硬件或软件模块,用于执行与mdc编码和解码相关或之外的其他各种功能。

本公开中描述的mdc技术可以显著改善丢包所带来的影响。另外,它可以轻易方便地与现有的通信系统集成。采用mdc编码对媒体源流进行编码可实现具有良好容错能力的传输。下文将阐述典型的音频和视频编码过程。

图2是根据本公开实施例所绘制的mdc编码流程示例图。流程200可以通过图1中的系统100的软件和/或硬件模块来实现。例如,流程200可以通过编码器(如设备104)编码为包含在系统100中的软件或硬件模块。编码器可以通过存储在存储器(如存储器118)中的程序代码来实现。程序代码可包括计算机可读指令,当由处理器(如处理器116)执行时使编码器以图2中描述的方式对媒体源流进行编码。编码器也可以是包含在某个设备(例如设备104)中的专用硬件。例如,编码器可以是硬件编码器。流程200包括数据和操作202-212,用于从媒体源流202产生输出量化索引流212。媒体源流202可以包括音频序列(如音频源流)、视频序列(如视频源流)或包含音频和视频数据的任何多媒体源流。

通常在编码视频序列时,编码过程可包括以下阶段或操作过程:预测阶段(例如:帧内预测或帧间预测)、变换和量化阶段以及熵编码阶段。上述阶段可以被包括在编码过程的前向路径中。在编码过程的前向路径中,可以使用视频序列作为输入来产生编码或压缩的视频比特流。在一些实现中,编码过程可以进一步包括重建参考图像或帧的重建路径,该参考图像或帧用于在预测阶段对未来图像进行编码。重建路径还可以包括去量化和逆变换阶段以及变换和量化阶段与预测阶段之间的重建阶段。另外应该注意的是,编码过程还可以采用其他变化形式来编码视频序列。

在预测阶段可对当前图像执行帧间预测或帧内预测。例如,对于帧间预测,可使用当前图像和参考数据(例如:一个或多个参考图像)来进行运动预估。帧间预测模式下的运动预估可生成运动数据(如运动矢量)。运动矢量可描述从参考图像的块到当前图像的块之间的变换(如偏移)。使用生成的运动数据和参考数据可以执行运动补偿以生成运动补偿数据(称为“预测数据”)。预测数据可以包括图像或图像的一部分(例如:片段、图层、宏块或块)。例如,可以通过根据运动矢量偏移参考图像的块来确定当前图像的运动补偿图像(称为“预测图像”)。也可以从当前图像中减去预测数据以生成残差数据(例如,残差图像,残差片段,残差片段,残余宏块或残余块)。可以确定帧间预测中使用的参考数据并将其存储在缓冲器中(例如:存储在图1中的存储器110中)。残差数据和运动数据可在稍后的操作中被熵编码,且在熵编码之前可对残差数据进行变换和量化。

又如,如果对当前图像执行帧内预测,则可使用来自当前图像的先前编码块为当前图像的当前块生成预测块。可将预测块从当前块中减去得到残差数据(如残差块)。在之后的操作中可对残差块进行变换、量化和熵编码。

在变换和量化阶段,残差数据将被变换和量化。该变换可生成变换系数用于在视频比特流中编码以便输出。例如,如果变换是基于块的,则可以使用karhunen-loève变换(klt)、离散余弦变换(“dct”)、离散正弦变换(“dst”)或奇异值分解变换(“svd”)。变换可以将块变换到频域。

量化可以将变换系数转换为离散量子值(称为“量化变换系数”)。量化可减少由变换系数表示的离散状态的数量,从而减小数据大小。量化会导致编码和解码期间的图像质量受到损失(称为“有损”)。

在熵编码阶段,经变换和量化的残差数据、运动数据和其他相关数据可以被熵编码为视频比特流。熵编码可通过任何无损编码技术来执行,例如固定长度或可变长度编码(例如:霍夫曼编码或算术编码)。在一些实现中,也可以在熵编码阶段之前附加应用一个环路滤波器。环路滤波器可减少由视频压缩导致的失真(如“块效应”)。其他用于对视频比特流进行解码的信息也可被熵编码,这些信息包括:指示所使用预测模式的语法数据(即指示当前块是帧内预测的还是帧间预测)的信息、变换类型、量化级别和可选环路滤波器的环路滤波器参数(如滤波器强度)等。

在重建路径中的去量化和逆变换阶段,可以对经变换和量化的残差数据和运动数据(如运动矢量)进行去量化(逆量化)并进行逆变换以便在重建阶段进行重建。去量化和逆变换阶段以及重建阶段可确保编码器(例如:图1中的设备104)和解码器(例如:图1中的设备102)可以使用相同的参考数据进行预测。

在重建阶段可确定当前图像的重建图像。例如,可使用当前图像的参考数据以及在去量化和逆变换阶段确定的去量化和逆变换的运动数据来确定预测图像。通过对预测图像和在去量化和逆变换阶段确定的去量化和逆变换残差数据求和,可以确定重建图像。重建的图像可以用作将来的参考数据,用于编码当前图像的后续图像。重建的图像也可以被存储在缓存器中(例如:图1中的存储器118中)以用作将来的参考数据。在一些实现中,可以在重建阶段之后附加应用一个环路滤波器;而在另一些实现中,也可以在不使用环路滤波器的情况下使用重建的图像。重建可以类似于解码过程中的重建阶段。

在熵编码阶段之后可输出熵编码的视频比特流。例如,视频比特流可以被存储为计算机化文件。又如,视频比特流也可以通过网络(例如:图1中的网络106)传输到其他设备(如解码器)。

可以像对视频序列那样对音频序列进行编码,或使用任何音频压缩技术。例如,音频压缩可包括以下阶段:映射阶段、量化和编码阶段以及比特流编码阶段。也可用其他阶段替换或将其添加到示例中的一个或多个阶段。

应该注意的是,对视频序列进行编码也可以使用编码过程的其他变体形式。编码过程中的数据和操作可以按照不同的顺序进行处理和执行,也可组合为更少的阶段,或者是分成更多的阶段,而最终达到同样的目的。例如,基于非变换的编码器可在不变换的基础上量化残差数据。又如,编码器可在不同阶段分别执行变换和量化操作。

mdc编码可在音频或视频编码过程的任何阶段之前、之后或期间执行。例如,mdc编码可在量化之前执行。再如,mdc编码也可在变换之后和量化之前执行。又如,mdc编码还可在没有变换阶段的编码过程中执行。应该注意的是,mdc编码也可在编码过程的其他阶段执行。

回头再来参考图2中的流程200。如图2所示,mdc编码器接收了媒体源流202。本文所指的“接收”一词可以指以任何方式接收、输入、获取、检索、获得、读取、访问或采用任何动作以输入信息或数据。例如,媒体源流202可以是视频流并且包括一系列视频图像(如当前图像)。

在分包阶段204,将为媒体源流202生成第一数量(m1个)原始描述。例如,媒体源流202可被划分或分解成连续的块。每个块的长度或大小可以是固定的也可以是可变的。便于解释起见,在不脱离本公开的范围的情况下,固定长度块将在下文中被描述为示例。例如,每个块可以被进一步分成多个(如m1个)子块。每个子块可以进一步分成多个(如l个)样本。样本可以是媒体源流202的编码单元,包括诸如用于音频流的音频样本或用于视频流的图像。每个连续块的结构可以是相同的。为了便于解释而不失一般性,下面将以当前块的操作作为示例进行描述,并且可以将类似操作应用于连续块中的其他块。在划分或分解之后,可以复制连续的块以形成m1个原始描述,其中当前块被复制以在各自的m1个原始描述中形成m1个复制块(包括当前块本身)。m1个原始描述可以是相同的。例如,这m1个原始描述中的每一个都可以包括m1个子块,并且每个m1子块可以包括l个样本。

在mdc增益生成阶段206,将为mdc增益控制生成多个正向增益因子。在一些实现中,正向增益因子可以是互补的。本文中的“互补”一词可以指彼此互补的增益因子(如根据之前预设的关系),使得在将增益因子应用于(如缩小)多个描述(如描述中的复制块)之后,缩放描述可以用于在理想的情况下(如无数据丢失的情况)基本完全重建原始媒体源流。在一些实现中,正向增益因子可以包括一对互补增益因子:主要正向增益因子和次要增益因子。应该注意的是,这里使用的正向增益因子的数量可以是根据不同实施方式而确定的任何数量(例如,1,2,3,4或任何合适的数量),而并不仅限于2。在一些实现中,正向增益因子的数量是两个。可以基于媒体源流202的特性(例如:能量特性或统计特性)来选择正向增益因子,并且可以根据mdc增益生成阶段206的具体设计来选择正向增益因子。关于如何选择正向增益因子的详细内容可参考图4-7的相关描述。

在mdc增益控制阶段208,通过将在mdc增益生成阶段206生成的正向增益因子应用于在分包阶段204生成的m1个原始描述来生成m1个不同的描述。例如,可使用正向增益因子对当前块的m1个复制块进行缩小操作。例如,复制块中的第j个子块可以通过主增益因子进行缩小,而同一复制块中的其他子块则可通过次增益因子进行缩小。对于不同原始描述中的不同复制块,可以采用不同的次序选择第j个子块(即对于与当前块对应的各个复制块,j的数字都不同)。通过这样的操作,可以从m1个相同的原始描述中生成m1个不同的描述。关于如何使用正向增益因子进行mdc增益控制的详细内容可参考图4-7的相关描述。

在量化阶段210,对m1个描述进行量化以产生量化数据。例如,可以将m1个描述转换为m1个量化索引流以形成量化索引流212。例如,可在该阶段使用一个或多个标量或矢量量化器。应该注意的是,可以采用不同的量化技术,而并不限于本公开中的任何特定的量化方案。比如在一些实现中,可以应用不同的比特分配方案来获得m1个不同的量化索引流;而在另一些实现中,也可在执行比特分配之前执行熵编码以去除量化索引中的冗余。

在一些实现中,在量化阶段210之前或之后,可进一步对多个描述应用一个或多个纠错技术。此类纠错技术可包括fec、arq或plc等。

图3是根据本公开实施例所绘制的mdc解码流程300的示例图。流程300可被实现为图1中系统100中的软件和/或硬件模块。例如,流程300的某些或全部阶段可以由解码器(如设备102)实现为包含在系统100中的软件或硬件模块。解码器可通过存储在存储器(如存储器110)中的程序代码来实现。程序代码可包括计算机可读指令,当由处理器(如处理器108)执行时,该计算机可读指令使得解码器以图2中描述的方式对量化索引流进行解码。解码器也可以被实现为包含在设备(如设备102)中的专用硬件。例如,解码器可以是硬件解码器。流程300包括操作302-310以从量化索引流302产生媒体流310。媒体流310可包括音频流、视频流或包括音频和视频数据的任何多媒体流。

对于mdc兼容的解码器,解码过程是编码过程的逆向操作。解码器可以接收包括量化索引流的媒体流(如媒体比特流),其可被进一步解码为一个或多个描述。在接收到的编码描述中可能存在错误或丢包现象,但是通过mdc解码技术,解码的媒体流可以保持较高的保真度或质量。典型的音频和视频解码过程详见下述。

通常,在解码视频比特流时,解码过程类似于视频编码过程的重建路径,并且可以包括以下阶段或操作:熵解码阶段、去量化和逆变换阶段、预测阶段和重建阶段。应该注意的是,解码视频比特流也可采用解码过程的其他结构变化方式来进行。

解码器可接收视频比特流并且在熵解码阶段将其熵解码。例如,解码器可接收表示视频比特流当前图像的编码数据(即“当前图像数据”)。

在熵解码阶段,当前图像数据可以被熵解码至熵编码之前的状态。熵解码的当前图像数据可以包括运动数据(例如:用于运动补偿的运动矢量)以及经变换和量化的残差数据。当前图像数据中用于指示当前图像被帧内预测或帧间预测的信息也可以被熵解码,以便解码器决定要执行哪种预测模式。然后可以在去量化和逆变换阶段对经变换和量化的残差数据进行去量化和逆变换操作,以确定残差数据。在一些实现中,去量化和逆变换阶段既可作为一个阶段也可分成两个单独的阶段来实现。

残差数据可以包括用于帧内或帧间预测的数据。帧内预测可以使用相同图像(如当前图像)的空间相关性来进行视频压缩。例如,帧内预测可以根据先前处理的当前图像的参考块(如空间上邻近的块)来判断参考块的内容是否与当前块的内容相似,从而预测当前图像(称为“当前块”)的块的内容(如像素值)。例如,如果以光栅扫描顺序处理和压缩原始视频,则可以使用当前块之前的块(例如:根据光栅扫描顺序决定)作为用于帧内预测的参考块,因为它们可以在当前块之前被重建,并可以在重建当前块时使用。例如,如果预测模式为帧内预测,则残差数据可以包括参考块和残差块。

帧间预测可以使用图像之间的时间依赖性来进行视频压缩。帧间预测可以使用当前图像和一个或多个参考图像(例如:当前图像的时间上邻近的图像)来进行运动预估,然后对当前图像执行运动补偿。例如,运动补偿可根据运动向量来移动(如平移)参考图像的一部分(例如:片段、图层、宏块或块)以构建经运动补偿的图像。又如,如果预测模式为帧间预测,则残差数据可以包括参考图像和残差图像。

在预测阶段,可以采用帧间预测模式或帧内预测模式来确定当前图像的预测图像。经解码的当前图像数据可以包括语法数据(如参数)以指示解码器将使用哪种预测模式。

在一些示例中,如果是帧间预测,可以执行运动补偿,并且可以使用当前图像的运动数据(如运动矢量)和参考数据(例如:参考图像、参考片段、参考图层、参考宏块、参考块等)来确定运动补偿图像(“预测图像”)。在另一些示例中,如果是帧内预测,则可以使用参考块(如包括在残差数据中的参考块)与残差数据(如残差图像)相加来确定预测图像。

在重建阶段可以确定当前图像的重建图像。重建阶段可类似于视频编码过程中的重建阶段。例如,可以通过将在预测阶段确定的预测图像与在去量化和逆变换阶段确定的残差数据(如残差图像)相加来确定重建图像。重建的图像可以以视频序列输出。在一些实现中,可以在重建阶段之后附加使用一个环路滤波器对重建的图像进行滤波。在另一示例中,也可以在不使用环路滤波器的情况下输出重建的图像。视频序列可以输出至屏幕上显示,也可以作为存储在存储介质中的计算机化文件输出。

在重建阶段之后,重建的图像可以用作未来的参考数据,用于在预测阶段处理紧接在当前图像之后的一帧未来图像。重建的图像除了可输出至视频序列中之外,还可以存储在缓冲器中(例如:图1的存储器110中)以用作未来的参考数据。在一些实现中,可以先使用环路滤波器对未来参考数据进行滤波,再到预测阶段使用。

可以像解码视频比特流一样解码音频比特流,或者也可使用任何音频解压缩技术。例如,音频解压缩可包括以下阶段:比特流解码阶段、去量化和重建阶段以及逆映射阶段。还可采用其他阶段取代或补充示例中的阶段。

应该注意的是,解码视频比特流也可以采用解码过程的其他变化形式。数据和操作可以按照不同的顺序进行处理和执行,也可组合为更少的阶段,或者是分成更多的阶段,而最终达到同样的目的。

在一些实现中,可以在上述音频或视频解码过程的任何阶段之前、之后或期间执行mdc解码。例如,可以在音频解码过程的去量化和重建阶段和逆映射阶段之间执行mdc解码。又如,也可以在去量化之后、视频解码过程的逆变换之前执行mdc解码。再如,还可以在没有变换阶段的解码过程中执行mdc解码。应该注意的是,在解码过程中应用mdc解码并不限于任何上述示例阶段,并且可对接收和重建的多个描述应用某些或全部解码过程的后续阶段。

回头再来参考流程300,mdc解码器接收了量化索引流302。在去量化和分包阶段304,量化索引流302中的量化索引被去量化并被变换以恢复第二数量(m2)的描述。通常,由于量化过程和网络传输导致的错误,被恢复的m2个描述与其对应的原始描述并不一致。另外,由于网络拥塞或数据包丢失,mdc解码器恢复出来的描述可能会比原始编码描述要少(即m2可能小于m1)。

在mdc增益生成阶段306,将生成一组反向增益因子,用于对被恢复的描述进行放大。在一些实现中,反向增益因子可以包括主要反向增益因子和次要反向增益因子。应该注意的是,此处使用的反向增益因子的数量可以是任何数量(例如:1,2,3,4或任何合适的数量),而不仅限于是2。在一些实现中,每个反向增益因子可以是mdc编码过程中使用的相应的正向增益因子的倒数。例如,主要反向增益因子可以是主要正向增益因子的倒数,而次要反向增益因子可以是次要正向增益因子的倒数。关于反向增益因子的详细内容可参考图5-7的相关描述。

在mdc增益恢复阶段308,通过将在mdc增益生成阶段306所确定的反向增益因子应用于在去量化和分包阶段304所恢复的描述来重建媒体流310。根据恢复的描述中所接收和恢复的具体数据不同,可以使用不同的方法来重建媒体流310。关于mdc增益恢复的详细内容可参考图5-7的相关描述。

图4是根据本公开实施例所绘制的针对媒体源流进行mdc编码的流程400的示例图。媒体源流可以包括音频源流、视频源流或包括音频和/或视频数据的任何媒体流。流程400可以被实现为图1系统100中的软件和/或硬件模块。例如,流程400可以被实现为包含在编码器(例如:图1中的设备104)中的模块。流程400的操作还可以被实现为计算机可读指令,用于实现图2中流程200的阶段204-208。流程400包括数据和操作402-406,用于从媒体源流中产生量化索引流,详见下述。

可以执行操作402来实现图2中的分包阶段204,操作402将为媒体源流的当前块确定第一数量(m1个)复制块。在一些实现中,在操作402之前,媒体源流可以被划分或分解成一些连续的块。当前块可以是连续块中的任意块,并且针对当前块的操作可以类似地应用于任一其他块。媒体源流可以包括一维(如音频数据)、二维(如视频数据)或任何维度的任何媒体数据。在一些实现中,可使用现有技术将多维媒体数据转换或变换为一维。为便于解释起见,媒体源流在下文中将以一维的形式进行阐述,但应该注意的是,用于一维媒体源流的操作可衍生应用于多维媒体源流,因为采用现有技术即可将多维数据转化为一维数据。

图6示出了媒体源流600的结构。在图6中,媒体源流600被划分为包括当前块602在内的一系列连续块。这些连续块(含当前块602)可以具有相同的结构。例如,当前块602可以被进一步被分成包括子块604的多个子块(例如:m1个子块)。当前块602的子块(包括子块604)也可以具有相同的结构。例如,子块604可以被进一步分成多个样本(例如:l个样本)。举例说明,如果媒体源流600是音频流,则子块604的任何样本(如样本606)可以是音频数据的编码单元(如音频序列单元)。又如,如果媒体源流是视频流,则子块604(如样本606)的任何样本可以是视频数据的编码单元(例如:块、宏块、序列、片段、图层或图像)。

在媒体源流被划分或分解之后,可以复制连续的块以形成m1个原始描述,其中可以在操作402处将当前块复制以形成m1个复制块(包括当前块本身)。这m1个原始描述可以都是相同的。

图7示出了与当前块702对应的m1个复制块的结构。如图7所示,当前块702包括m1个子块,用符号x0,0,x0,1,…,x0,m1-1表示。每个子块包括l个样本。例如,当前块702的子块710包含样本712(共l个)。应该注意的是,在本公开中,对于不同的子块而言样本的数量(即l)可以是相同的,也可以是不同的。可在操作402处将当前块702进行多次复制。举例说明,如图7所示,当前块702被复制了(m1-1)次以生成m1个复制块,包括:第0个复制块702(即702本身);第一个复制块704;……第m个复制块706;……和第(m1-1)个复制块708。m1个复制块可以都是相同的。例如,对于第m个复制块706,子块714(xm,j)可以包括l个样本s(i),表示为:

xm,j=[s(jl)s(jl+1)...s(jl+l-1)],form,j=0,1,…,m1-1算式(1)

回头再来参考图4,在操作404处为当前块确定了多个正向增益因子。可执行操作404以实现图2中的mdc增益生成阶段206。正向增益因子可用于缩小m1个原始描述。在一些实现中,正向增益因子可以是互补的。可根据媒体源流的特征(例如:能量特征或统计特征)来确定正向增益因子。在一些实现中,可将正向增益因子设计成具有下述部分或全部特征:可设计正向增益因子使得每个原始描述的动态范围可以被压缩以降低原始比特率;还可以设计正向增益因子使得由正向增益因子缩小的每个描述的总能量小于或等于其相应子块的原始能量;也可设计正向增益因子使得每个编码的描述具有一定的保真度或置信度而被独立解码;还可设计正向增益因子使得多个编码描述彼此互补,并且当接收到的描述越多,重建质量就越高。

例如,可以在操作404处确定一对互补的正向增益因子,包括主要正向增益因子α0和次要正向增益因子α1。可将α0和α1设计为具有上述特征。在一些实现中,可将α0和α1设定为:

根据算式(2)得出α0≥α1,因此α0被称为主要正向增益因子。同样根据算式(2)得出,当α0增加时,α1减小,反之亦然。另外,α0和α1在0和1之间。应该注意的是,α0可以是符合算式(2)的任何特定值。对于符合算式(2)的任何α0和α1,由α0和α1缩小的每个描述的总能量不应超过其相应子块的原始能量。在这种情况下,α0和α1可以被称为“互补”,这一特征在算式(3)中更为明显,算式(3)是算式(2)的另一种表达式:

α0+α1(m1-1)=1算式(3)

在操作406处,通过将多个互补的正向增益因子应用于m1个复制块来为当前块确定m1个描述。m1个描述可以互不相同。可执行操作406以实现图2中的mdc增益控制阶段208。m1个不同的描述中的每一个可以包括对应于当前块的缩放块,并且可以通过将正向增益因子应用于对应的复制块来确定该缩放块。

例如,m1个原始描述中的其中一个原始描述中如果包括与当前块对应的复制块,可以应用正向增益因子(例如:相乘、相加、相除、相减、加幂或其他任何线性或非线性缩小运算)到复制块的子块。正向增益因子可用于调整(如增加或减少)信号(如复制块)的强度或幅度。例如,复制块中的子块可以通过α0进行缩小(即“主要子块”),而除了复制块中主要子块之外的其他子块则可以通过α1进行缩小(即“次要子块”)。在该示例中,主要子块的每个样本通过α0进行缩小(如相乘),而次要子块的每个样本则通过α1进行缩小(如相乘)。

不同的原始描述可以包括对应于当前块的各个复制块,并且各个复制块的主要子块可以位于不同的位置。例如,第一原始描述中的第一复制块的主要子块的位置可以与第二原始描述中的第二复制块的主要子块的位置不同,其中第一和第二复制块都是当前块的复制块。

例如,第一复制块可以是当前块的第n(0<n<m-1)个复制块(即第一个描述是第n个原始描述),并且第一主要子块可以由xn,i表示(即第一主要子块是第一复制块的第i个子块)。第二个复制块可以是当前块的第l(0<l<m-1andl≠n)个复制块(即第二个描述是第l个原始描述),第二个主要子块由xl,k表示(即第二主要子块是第二复制块的第k个子块)。在本示例中,第一复制块中xn,i的位置不同于第二复制块中xl,k的位置(即i≠k)。

对于当前块对应的每个复制块,其主要子块的位置可以不同于其他复制块。在一些实现中,主要子块的位置在各个复制块中都不尽相同。为便于解释起见且不失一般性,如图7所示的m1个复制块(例如:包括复制块702-708)可以用大小为m1×m1的矩阵来表示,如下所示:

在算式(4)中,每行表示一个原始描述中的一个复制块。应该注意的是,原则上对于任何复制块,可将α0应用于其任何数量的子块(即主要子块可以是任何数量),而不限于一个。对于不同的应用,可以设计任意数量的主要子块。

在一些实现中,每个复制块中有一个主要子块,并且不同复制块的主要子块位置可以互不相同。换句话说,在这类实现中,如算式(4)所示,每行中只能有一个子块可通过α0进行缩小,并且每列中也只有一个子块可以通过α0进行缩小。在这类实现中,算式(4)中的所有其他重复子块可通过α1进行缩小。可采用各种不同方式实现上述操作。例如,对应于算式(4)中的子块排列顺序,正向增益因子可采用下列m1×m1矩阵表示:

在算式(5)中,每行或每列可被称为“正向增益向量(forwardgainvector)”。每个正向增益向量包括一个主增益因子(α0)和(m1-1)个次增益因子(α1)。主要增益因子和任一次要增益因子互补,如算式(2)和算式(3)所示。并且每个正向增益向量的值的总和等于1。

在算式(5)中,只有对角位置有α0,其他所有位置都是α1,可表示为:

算式(5)中的α0和α1也可应用于算式(4)中的相应子块。例如,在算式(4)和算式(5)之间可运用元素对应乘积(或称“哈达玛积”),如下所示:

又如,根据算式(4)中的子块排列,也可将正向增益因子设置为m1×m1矩阵,表示为:

在算式(7)中,只有反对角位置是α0,而其他所有位置都是α1。算式(7)中的α0和α1也可应用于算式(4)中的相应子块。例如,可在算式(4)和算式(7)之间进行元素对应乘积运算。

应该注意的是,算式(5)和算式(7)给出的两个实施例中,原始描述的每个复制块仅包含一个主要子块,实际也可以利用现有技术简便地采用其他方式来设置正向增益因子。为便于解释而不失一般性,下文将以算式(5)作为正向增益因子的示例设置进行阐述。

通过将算式(5)中所示的正向增益因子应用到算式(4)中所示的子块上,可得出m1个缩放块,其中每个缩放块包括m1个缩放子块。例如,通过下列算式可得出m1×m1个缩放子块,表示为ym,j(m,j=0,1,…,m1-1):

在这一实现中,因为α0被分配至每行中的不同列,所以生成的m1个缩放描述,包括m1个缩放块ym,j(m,j=0,1,…,m1-1)也不再相同。另外,因为α0和α1在0和1之间,所以每个缩放描述的动态范围可以小于或等于其对应的原始描述。通过这样的操作,每个缩放描述的比特率可以小于或等于其相应原始数据样本(如原始连续块)的比特率。

在一些实现中,使用正向增益因子对xm,j进行缩放除了根据不同数据类型或计算环境(例如:整数、定点或浮点)进行乘法运算之外,还可执行其他各种操作。例如,对于整数或浮点类型,可对算式(8)中已缩小的子块进行舍入操作(例如:向下取整、向上取整或舍入取整),并且可以使用各种方法(例如:编码为附加整数位)将由舍入操作舍去的信息(例如:缩放子块的截尾尾数)编码到描述中。此类各操作可用于进一步提高重建信号的质量,其细节将在下文中进一步阐述。

在一些实现中,在操作406之后可以量化m1个缩放描述以生成量化数据(如量化索引流),以实现图2中的量化阶段210。量化操作的细节可参考图2中的内容,下文中将不再赘述。在量化之后,m1个缩放描述可被转换为m1个量化索引流。

在一些实现中,在量化之后,m1个量化索引流可被熵编码以形成用于传输(例如:经由图1中的网络106)的比特流。例如,比特流可包括含有量化索引的量化索引流。

图5是根据本公开实施例所绘制的针对媒体流进行mdc解码的流程500的示例图。接收到的媒体流(如媒体比特流)中可包含量化索引流。重建的媒体流可包括音频流、视频流或包括音频和/或视频数据的任何媒体流。流程500可被实现为图1系统100中的软件和/或硬件模块。例如,流程500可被实现为包含在解码器(如图1中的设备102)中的模块。流程500的操作也可实现为机器可读指令,用于实现图3流程300中的阶段304-308。流程500包括操作502-506用于从接收到的媒体流产生重建的媒体流,详见下述。

在操作502处,在媒体流中确定媒体流当前块的第一数量(m2个)描述。当前块是由解码器解码的媒体流中的一个数据块。可执行操作502以实现图3中的去量化和分包阶段304。例如,媒体流可包括量化数据(如量化索引流)。量化数据可被熵解码(例如:用于恢复m2个量化索引流),并可以进一步被去量化以恢复m2个缩放描述。这m2个描述中的每一个都可包括对应于当前块的缩放块。这m2个描述也可包括对应于当前块的m2个缩放块。媒体流在编码器处进行编码时可被分割或分解为包括当前块的连续块。

在一些实现中,编码器可以为媒体流生成第二数量(如m1个)原始描述,每个原始描述包括对应于当前块的复制块。这m1个复制块中的每一块(包括当前块本身)可以再包括m1个子块。在复制块中,m1个子块中的每一个还可以包括第三数量(如l个)样本(例如:音频流中的音频采样或视频流中的图像)。媒体流在编码器处的划分或分解对于这m1个复制块可以是相同的。

在一些实现中,编码器可以产生正向增益因子并将其应用于m1个原始描述以生成m1个不相同的描述。例如,可将主要正向增益因子α0和次要正向增益因子α1应用于m1个原始描述以生成m1个缩放描述。在具体实施中,正向增益因子可以是互补的。例如,可以通过将正向增益因子应用于m1个复制块来生成m1个缩放块。关于正向增益因子的应用的详细内容可参考图4、6和7的相关描述,下文将不再赘述。

由于网络拥塞或出现丢包现象,对于连续块中的任意块,与解码器所恢复的块相对应的缩放块的数量可以等于或小于由编码器生成的缩放块的数量。例如,在上述实现中,m2可以等于或小于m1。

在操作504处,为m2个缩放块确定反向增益因子。可执行操作504以实现图3中的mdc增益生成阶段306。反向增益因子可以与编码器使用的正向增益因子相对应。例如,反向增益因子可以包括对应于α0的主要反向增益因子β0,以及对应于α1的次要反向增益因子β1。

在一些实现中,反向增益因子可以是相应的正向增益因子的倒数。例如,β0可以是1/α0,β1可以是1/α1。应该注意的是,根据具体应用需要,可以采用任何线性或非线性关系基于正向增益因子来确定反向增益因子,而不仅限于倒数关系。反向增益因子与正向增益因子之间的倒数关系仅用作示例,在本公开的实现中,也可采用其他形式的反向增益因子。

在操作506处,通过将反向增益因子应用于m2个缩放块来确定当前块。可执行操作506以实现图3中的mdc增益恢复阶段308。例如,当前块可包括多个(如m1个)子块,并且这m2个恢复的缩放块中的每一个还可以包括m1个放大的子块。另外,当前块的每个子块都可以对应于这m2个缩放块的缩放子块。例如,当前块的第j个子块zj可以对应于m2个经放大的子块并且每一个也是相应缩放块中的第j个子块。在这个例子中,可将反向增益因子应用于而得出zj。

为便于解释起见而不失一般性,可以假设编码器将按照算式(5)对算式(4)中的m1个复制块应用正向增益因子,并得到m1×m1个缩放子块,如算式(8)所示。同时我们也假设正向增益因子为互补的,如算式(3)所示。

另外,由于量化过程中引入的错误和/或传输期间导致的丢包,所恢复的缩放描述可能与量化过程之前编码器处生成的缩放描述略有不同。例如,量化之前在编码器处生成的缩放子块ym,j(m和j可以是0和m1-1之间的任何数字)可以在编码器处被量化并在解码器处被恢复至对应的缩放子块表示为:

例如,在一些实现中,根据算式(8),可表示为:

其中是其相应未缩小的子块xm,j的近似值。

应该注意的是,当m2小于m1时,相差的这m1-m2个对应于当前块的缩放块可能会出现在编码器生成的m1个缩放描述中的m1-m2个描述中,但未必是连续出现。换句话说,对于当前块的第j个子块zj,如果存在由编码器生成的m1个缩放子块ym,j(m=0,1,…,m1-1)和由解码器恢复的m2个缩放子块则集合d={m0,m1,…,mm2-1}(m2<m1)可以是大小为m2的{0,1,...,m1-1}的任何子集,并且集合d中的数字不一定是连续的。

根据由解码器恢复的缩放描述的数量和结构,可以通过以下方式来确定当前块。

例一,当m2等于m1时,解码器可以恢复对应于当前块的m1个缩放块。可按照下式确定当前块中的zj:

根据算式(10)可得出当前块的每个子块,即可在第一例中重建当前块。

例二,当m2小于m1并且zj中的m2个包含应用了经主要正向增益因子α0缩小的子块(即且yj,j=α0xj,j),则可以根据下式得出zj:

根据算式(11)可得出当前块的每个子块,即可在第二例中重建当前块。

例三,当m2大于1且小于m1,且zj中的m2个不含则可根据下式得出zj:

根据算式(12)可得出当前块的每个子块,即可在第三例中重建当前块。从算式(12)可看出在这m2个上应用了次要反向增益因子β1。在一些实现中,如果β1=1/α1,则算式(12)可进一步表示为:

例四,当m2=1且中只有唯一一个则zj可根据下式得出:

根据算式(13)可得出当前块的每个子块,即可在第四例中重建当前块。从算式(13)可看出在这m2个上应用了次要主要增益因子β0。在一些实现中,如果β0=1/α0,则算式(13)可进一步表示为:

从上述示例可以看出,当所有m1个缩放描述都被接收和恢复时(即上述第一种情况下),可以以接近原始媒体源的相对较高的保真度来重建媒体流。而当缩放描述仅被部分接收和恢复时(即在第二到第四种情况下),仍可以以一定的保真度重建媒体流。从算式(10)到(13)中可看出,解码器接收到越多描述(即m2越接近m1),就可以以越高的保真度重建媒体流。

在一些实现中,上述方法(如流程400或500)可以通过存储在非暂时性计算机可读介质中的指令来实现。计算机系统的处理器执行该指令后可进行处理操作,用于实现上述方法。例如,执行存储在非暂时性计算机可读介质中的指令可以对媒体流的多个描述进行解码。媒体流可包括音频数据和/或视频数据。

在一些实现中,非暂时性计算机可读介质可以包括操作指令以用于:针对媒体流的当前块,通过对量化数据进行去量化来确定媒体流的第一数量(m2个)描述(如量化索引流),其中每个描述可以包括对应于当前块的缩放块;确定m2个缩放块的反向增益因子;并且通过将反向增益因子应用于m2个缩放块来确定当前块。

在一些实现中,当前块可以包括第二数量(m1个)子块,并且每个子块可以包括第三数量(l个)样本。此外,每个缩放块还可以包括m2个缩放子块,并且每个缩放子块可以再包括l个缩放样本。

在一些实现中,反向增益因子可包括一个主要反向增益因子β0(对应于主要正向增益因子α0)和一个次要反向增益因子β1(对应于次要正向增益因子α1)。将α0和α1应用于第一数量缩放块,用于对当前块进行编码(例如:根据图2-5中所述方式)。在一些实现中,β0可以是α0的倒数,且β1可以是α1的倒数。在一些实现中,可以设定α0和α1满足下列算式:

α0+α1(m1-1)=1

另外,可设定α0满足下列算式:

在一些实现中,基于解码器所恢复的缩放描述的数量和结构,可以通过下列方式来确定当前块:

例一:当m2等于m1时,可通过下列算式来确定当前块的一个当前子块:

其中是对应于当前子块的m2个缩放子块。中的每一个都可以被包含在当前块的m2个缩放块的其中一个缩放块中。

例二:当m2小于m1,且中包含由α0缩小的子块时,可以通过下列算式为当前块确定当前子块:

其中d是对应于的数量为m2的一组索引。关于d的详细内容可参考流程500中对操作506的描述。

例三:当m2大于1但小于m1,且中不包括时,可以通过下列算式为当前块确定当前子块:

例四:当仅包含唯一则可用来确定当前块的当前子块。

根据本公开的实现,媒体源信号可被映射到多个描述以供传输。本文所公开的媒体流的多描述编码和解码的设备、方法和系统可以达到更高效率,并且也可以轻松地与现有编码系统集成。

如上所述,本领域专业人士应该注意,本文所述的本公开的全部或部分内容可以使用具有计算机程序的通用计算机或处理器来实现,其计算机程序在被运行时可执行本文所述的任何相应的技术、算法和/或指令。另外,也可以有选择地使用专用计算机或处理器,配备专用硬件设备用以执行本文描述的任何方法、算法或指令。

本文所述的计算设备(以及存储在其上和/或由此执行的算法、方法、指令等)可以通过硬件、软件或其任何组合来实现。硬件可包括计算机、知识产权(ip)内核、专用集成电路(asic),可编程逻辑阵列、光处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处理器、数字信号处理器或其他任何适用的电路。在本权利要求中,“处理器”一词应理解为包含任何上述内容中的一个或其多个组合。“信号”和“数据”两词可以互换使用。此外,计算设备各部分功能并非必须以相同的方式来实现。

本文所述各方面内容可通过功能块组件和各种处理操作来描述。本文公开的流程和序列可以单独或以任何组合形式来执行。功能块可以通过执行任意数量的可运行特定功能的硬件和/或软件组件来实现。例如,所述的内容可以采用各种集成电路组件,例如存储器元件、处理元件、逻辑元件、查询表等,在一个或多个微处理器或其他控制设备的控制下执行各种功能。类似地,实现所述内容各个方面时如需采用软件编程或软件元件,都可以采用诸如c、c++、java、汇编程序等的任何编程或脚本语言来实现本公开,且可以采用任何数据结构、对象、进程、例程或其他编程元素的任意组合来执行各种算法。各项功能可以在一个或多个处理器上通过执行算法来实现。此外,本公开所述各功能可以采用任意数量的常规技术来进行电子配置、信号处理和/或控制、数据处理等。本文广泛使用“机制”和“元素”这些词语,并不限于机械或物理实现,而是可以包括与处理器结合的软件例程等。

以上公开的实施方式或部分实施方式可以采取计算机程序产品的形式,该程序产品可通过计算机使用或可由计算机可读介质进行访问等。计算机可用或计算机可读介质可以是任何设备,该设备可以具体包含、存储、传送或传输供任何处理器使用或与其结合使用的程序或数据结构。该介质可以是电子的、磁的、光学的、电磁的或半导体装置等等。也可包含其他适用的介质。上述计算机可用或计算机可读介质可以被称为非暂时性存储器或介质,并且可以包括ram或其他易失性存储器或存储设备,它们可以随时间变化而发生改变。本文所述的设备存储器并非必须物理上配备于装置中,而是可以由装置远程访问,并且不必与装置中其他物理上配备的存储器相邻,特别说明除外。

本文所述作为本公开的示例执行的一项或多项功能均可使用机器可读指令来实现,该指令用于操作前述一个或多个组合的硬件。计算代码可以以一个或多个模块的形式实现,通过该模块可以将一个或多个组合的功能作为计算工具来执行,在运行本文所述方法和系统时,输入和输出数据在每个模块与一个或多个其他模块之间进行相互传输。

信息、数据和信号可以使用各种不同的技术和方法来表示。例如,本文中提到的任何数据、指令、命令、信息、信号、比特、符号和芯片可以用电压、电流、电磁波、磁场或粒子、光学场或粒子等一项或多项组合来表示。

本文示出和描述的具体内容是本公开的说明性示例,且无意以任何方式限制本公开的范围。为行文简洁起见,可能并未详细描述常规电子元器件、控制系统、软件开发和系统的其他功能方面(以及系统的各个操作组件的组件)。此外,本文多个附图中示出的连接线或连接符旨在表示各种元件之间的示例性功能关系和/或物理或逻辑耦合关系。在实际设备中可能存在许多替代或额外的功能关系、物理连接或逻辑连接。

本文采用“示例”一词来表示举例、实例或说明。本文所述用于“示例”的任何功能或设计不一定表示其优于或胜于其他功能或设计。相反,使用“示例”一词是为了以具体的方式呈现概念。本申请中所使用的“或”字旨在表示包含性的“或”而不是排他性的“或”。也就是说,“x包括a或b”意在表示任何自然的包含性排列,除非另有说明,或者从上下文可明确判断则另当别论。换句话说,如果x包含a,x包含b,或x包含a和b,那么在任何前述实例下“x包含a或b”都成立。此外,本申请和所附权利要求书中使用的冠词“一个(英文中的a和an)”通常应解释为表示“一个或多个”,除非另有说明或上下文清楚地指出为特指一个的单数形式。另外,“一个功能”或“一项功能”这两个短语在全文中多次用到,但并不意味着同一个实施方式或同一功能。

本文中“包含”或“具有”及其同义词旨在表示包括其后列出的项目及其等同物以及附加项目。除非另外指明或限制,否则本文使用的“安装”、“连接”、“支持”和“耦合”及其同义词为广义上的含义,包括直接和间接安装、连接、支持和耦合。此外,“连接”和“耦合”并不限于物理或机械连接或耦合。

在本公开所述内容(特别是下文的权利要求书)中,“一”、“一个”和“该”以及类似的指示代词应理解为包含一个和多个的单数和复数形式。此外,本文中对数值范围的描述只是一种简便的描述方式,旨在表示包含在该范围之内的每一个单独数值,并且每个单独值并入规格范围中,等效于在本文中单独列举。最后,本文所述的所有方法的步骤可以以任何合适的顺序执行,除非本文另有说明或者与上下文明显矛盾。本文提供的示例或示例性语言(例如“诸如”)的使用旨在更好地说明本公开,并无意于限制本公开的范围,除非另有说明。

本文使用各种标题和小标题列出列举条目。包含这些内容是为了增强可读性并简化查找和引用材料的过程。这些标题和小标题无意于、也不会用来影响对权利要求的解释或以任何方式限制权利要求的范围。本文示出和描述的具体实现是本公开的说明性示例,且无意于以任何方式限制本公开的范围。

本文引用的所有参考文献(包括出版物、专利申请和专利)均通过引用纳入本文,等效于单独且明确地指明将每个参考文献通过引用纳入本文,且涵盖参考文献的全部相关内容。

虽然已经结合某些实施例和实施方式对本公开进行描述说明,但应理解为,本公开并不限于所公开的实施方式,与之相反,本公开旨在覆盖权利要求范围之内所涵盖的各种变体和等同设置,该范围应被赋予最宽泛的解释以涵盖法律允许的所有上述变体和等同设置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1