CN109963157A - 整数多描述编码技术 - Google Patents
整数多描述编码技术 Download PDFInfo
- Publication number
- CN109963157A CN109963157A CN201810749898.0A CN201810749898A CN109963157A CN 109963157 A CN109963157 A CN 109963157A CN 201810749898 A CN201810749898 A CN 201810749898A CN 109963157 A CN109963157 A CN 109963157A
- Authority
- CN
- China
- Prior art keywords
- description
- current sample
- decoder
- sum
- received
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- 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
- H04N19/39—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability involving multiple description coding [MDC], i.e. with separate layers being structured as independently decodable descriptions of input picture data
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
Abstract
本发明提出了一种对媒体流进行多描述解码的方法,包括:从媒体比特流中解码第一个描述和第二个描述这两者至少其中之一,其中第一个描述和第二个描述与媒体比特流的当前样本相关联并且均可被独立解码;如已知第二个描述丢失,则通过解码器对第一个描述执行第三移位操作来重建当前样本,其中第三移位操作是指将第一个描述左移1位;如已知第一个描述和第二个描述都已接收到,则通过解码器将第一个描述和第二个描述相加来重建当前样本。本文也阐述了相应的编码方法。
Description
技术领域
本发明涉及对媒体源信号进行多描述编码(Multiple Description Coding,简称MDC)的技术,具体领域为基于整数运算的多描述编码技术。
背景技术
在过去的几十年中,数据压缩技术的发展降低了媒体(音频、视频或多媒体)数据传输所需的巨大带宽。但数据压缩带来的一个弊端是压缩的媒体数据对数据丢失或噪声很敏感,而数据丢失或噪声在尽力型(best-effort)网络中时有发生。在某些情况下,丢失几个比特的数据可导致整个数据包无法识别。随着终端用户设备和网络环境越来越多样化,在噪声网络上进行可靠的媒体数据传输也变得更具挑战性。
为减少噪声网络上媒体传输中的数据丢失,人们已经研发了各种技术,如前向纠错(FEC)、自动重传请求(ARQ)和丢包隐藏(PLC)等。例如,多描述编码(MDC)技术可实现容错性良好的媒体传输。
发明内容
下文将阐述基于整数运算的多描述编码的方法、设备和系统。
一方面,本文公开了一种对媒体流的多个描述进行编码的方法。该方法包括:根据媒体流当前样本的值确定其等值整数;通过对当前样本执行第一移位操作来确定当前样本的第一个描述,其中第一移位操作是指将当前样本右移1位(bit);如已知等值整数为偶数,则通过对当前样本执行第一移位操作来为当前样本确定第二个描述,其中第一个描述和第二个描述均可被独立解码;如已知等值整数为奇数,则通过对当前样本执行第二移位操作来确定当前样本的第二个描述,其中第二移位操作是指将当前样本右移1位后再加1位(bit)。
另一方面,本文也公开了一种对媒体流的多个描述进行解码的方法。该方法包括从媒体比特流中解码第一个描述和第二个描述这两者至少其中之一,其中第一个描述和第二个描述与媒体比特流的当前样本相关联并且均可被独立解码;如已知第二个描述被丢失,则通过解码器对第一个描述执行第三移位操作来重建当前样本,其中第三移位操作是指将第一个描述左移1位;如已知第一个描述和第二个描述都已接收到,则通过解码器将第一个描述和第二个描述相加来重建当前样本。
此外,本文还公开了另一种对媒体流的多个描述进行解码的方法。该方法包括在媒体比特流中针对当前样本将之前编码的当前样本的描述总数进行解码;如已知解码器接收到的描述的数目小于描述总数,则通过对解码器接收的描述执行查找操作来重建当前样本,其中查找操作是指根据描述总数和由解码器接收的描述这两个信息中的至少其中之一,使用查找表进行查询获得当前样本的估计值;如已知解码器接收到的描述数目与描述总数相等,则通过对解码器接收到的各个描述相加来重建当前样本。
附图说明
在阅读以下详细描述时参考附图将有助于更好地理解本公开的内容。需要强调的是,根据惯例,图示中各个部分并不是按比例绘制的。相反,为表述清楚起见,已对各个不同部分的尺寸进行任意扩大或缩小。
图1是根据本公开实施例所绘制的采用MDC方法进行媒体传输的系统示意图。
图2是是媒体源流的结构示意图。
图3是根据本公开一个实施例所绘制的基于整数运算的多描述编码流程示例图。
图4是根据本公开一个实施例所绘制的基于整数运算的多描述解码流程示例图。
图5是根据本公开中另一实施例所绘制的基于整数运算的多描述解码流程示例图。
图6A和6B是采用多个描述来分解和重建当前样本的示例图。
图6C和6D是将当前样本分解成多个描述的示例图。
图6E是在特定值范围内的样本的编码和解码结果的示例图。
图7是根据本公开实施例所绘制的多描述编码流程示例图。
图8是根据本公开实施例所绘制的多描述解码流程示例图。
具体实施方式
网上多媒体数据共享,诸如视频会议、实时流视频广播或互联网电话服务等,都需要高效率且高保真的媒体数据传输。媒体数据可包括音频数据、视频数据或包含音频序列或视频序列的任何多媒体数据。通常,媒体数据可以以其原始形式存储或者转换成媒体源流。媒体源流可包括时间序列数据(例如:包括多个音频样本的音频序列或者包括多个图像或帧的视频序列)、媒体源流的特征提取的残差(例如:视频序列中当前图像经帧间预测之后的残差图像)或者变换域中媒体源流的等效量(例如:变换和/或量化系数)。可将媒体源流编码(或“压缩”)成媒体比特流以便在网络中传输。
随着所接收的连续数据包的数目增加,可以使用某些编码技术(例如:MP-3和MP-4)来改进渐进传输中的解码质量。如果能收到所有之前的数据包,则可以提高编码质量。然而,一旦数据包的接收顺序出现混乱(例如:数据包丢失或接收延迟),那么用于这些编码技术的解码过程可能会被中断,直到接收到丢失的数据包后才能继续。在这种情况下,解码器端可能会出现过长的延迟。
多描述编码(MDC)是指可以将媒体(如音频、视频或多媒体)流分成用于编码和解码的多个子流(称为“描述”)的技术。每个描述可提供媒体源流的近似值。每个描述具有一定的保真度或置信度用于表示媒体源流。每个描述都可被单独解码。
MDC兼容解码器可解码一个或多个描述或描述的子集来重建媒体源流。在接收多个描述的解码器中,可以基于多个描述使用媒体源流的近似值来重建媒体流,其质量可优于基于单个描述重建的媒体流。接收到的描述越多,解码媒体流可以达到的保真度就越高。MDC的信号预处理技术致力于提高MDC编码质量并降低计算成本。
MDC通过引入一定程度的冗余来减轻丢包带来的影响,由此可提供媒体流传输的容错能力。在MDC中,描述的任意子集可以用来重建媒体流。当出现网络拥塞或丢包时,可以仅损失一定的质量(如分辨率或保真度)而保证媒体流的重建不被中断,而网络拥塞或丢包在尽力型网络(如互联网)中也是常见现象。在某些情况下,媒体流的质量大致与解码器维持的数据速率成正比。
MDC技术的发展主要分为两类,各有侧重点:第一类侧重于设计特定的变换或滤波器组以获得MDC属性,可以在变换阶段之后和量化阶段之前应用MDC技术;另一类则侧重于设计可满足MDC需求的特定量化器,可以在变换阶段之后的量化阶段之后应用MDC技术。
根据本公开的实施例,信号(如音频和/或视频信号)可被分解为多个样本。信号可以用媒体源流(也被称为媒体流)表示。如要将样本分解为两个描述,则需使用当前样本的整数值进行计算。当整数值为偶数时(即在二进制中,样本的最低有效位为“0”),将样本右移1位来确定这两个描述;当整数值为奇数时(即样本的最低有效位为“1”),则将样本右移1位来确定其中一个描述,并将当前样本右移1位后再加1位来确定另一个描述。在重建过程中,如果两个描述都已接收,则可将描述相加来重构样本;如果只接收到了一个描述,则将接收到的描述左移1位来重建样本。
通过使用整数运算,本公开中MDC实施例得以简化计算并提高效率。当两个描述都被接收到时,可以实现无损重建。如果丢失了至少一个描述,可以实现均匀(或接近均匀)的估计误差,并且随着样本值变大,误差将变小。对于偶数值(即样本的最低有效位为0),原始样本可以通过第一个或第二个描述被完美复原。在编码器中,通过使用二叉树结构进行分解,双描述分解还可以扩展到多个描述(M>2)。在解码器中,可采用查找表(或二叉树结构)进行重建。
根据本公开的实施例,所公开的方法、设备和系统可适用于不同的数据类型或计算环境,诸如整数、定点或浮点等。另外,本文所公开的用于MDC编码和解码的方法、设备和系统可以在任何计算系统中用作软件或硬件模块,并且可以针对任何图像、音频、视频或其他有限信号动态范围内的数字信号系统,包括但不限于8位或10位图像或视频,8位、16位或24位数字音频信号,32位浮点数字音频信号或小位(例如:2比特)数字信号。应该注意的是,本公开的应用和实现并不仅限于上述示例,并且采用现成技术即可在任何计算环境中实现本公开的实现方式的变体、变化或修改,以最大程度减少量化错误。
图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编码和解码相关或之外的其他各种功能。
图2示出了媒体源流200的示例结构。在图2中,媒体源流200被划分为包括当前块202在内的一系列连续块。这些连续块(含当前块202)可以具有相同的结构。例如,当前块202可包含多个描述(如M个描述),其中包括描述204。当前块202的各个描述(含描述204)也可以具有相同的结构。例如,描述204可以被进一步分成多个样本(如当前样本206)。样本可以指代音频或视频流的任一编码单元,如序列、块、描述、块或描述的一部分、片段、图层等。举例说明,如果媒体源流200是音频流,则描述204的样本(如当前样本206)可以是音频数据的编码单元(如音频序列单元);如果媒体源流是视频流,则描述204的样本(如样本206)可以是视频数据的编码单元(例如:块、宏块、序列、片段、图层或图像等)。
媒体源流200也可采用其他结构形式。例如,媒体源流200可以被分解成多个样本而不被划分成块。本公开的实施例可以采取任何结构(无论是否使用块)并将该结构样本作为输入数据。又如,媒体源流200可以先被划分成块,每个块再被分解成数个样本。每个样本可以在编码时被分解成多个描述,并且在解码时至少其中一个描述可被用于重建当前样本。
图3是是根据本公开实施例所绘制的流程300示例图,示出了对媒体源流进行基于整数运算的多描述编码的流程。媒体源流可以包括音频源流、视频源流或包括音频和/或视频数据的任何媒体流。流程300可以通过图1中的系统100的软件和/或硬件模块来实现。例如,流程300可以被实现为包含在编码器(如图1中的设备104)中的模块。在某些阶段如图2流程700中的分解阶段704处,流程300的操作还可以被实现为机器可读指令。在一些实现中,流程300的部分或全部操作也可以在图3中的其他阶段实现。流程300包含操作302-308,用于为媒体源流的当前样本生成两个描述,详见下述。在一些实现中,如需为当前样本生成两个以上的描述,则可以多次运行(如迭代操作)流程300,每次为当前样本生成两个描述。换句话说,无论针对每个样本需要生成多少个描述,流程300都可被当作使用整数运算的多描述编码的“基本构建块”。
在一些实现中,在操作302之前媒体源流可以被划分或分解成多个连续样本。媒体源流可包括一维(如音频数据)、二维(如2D视频数据)、音频和视频数据的组合、或者任何其他媒体数据(例如:3D视频数据、虚拟现实视觉数据等)。在一些实现中,可使用现有技术将多维媒体数据转换或变换为一维。为便于解释起见,媒体源流在下文中将以一维的形式进行阐述,但应该注意的是,用于一维媒体源流的操作可衍生应用于多维媒体源流,因为采用现成技术即可将多维数据转化为一维数据。
在操作302处,将基于当前样本的值为当前样本确定其等值整数。当前样本的等值整数可以是用来标识当前样本值的一个整数。比如例一:当前样本可以是二进制数字“1101”,即一个四位的二进制数,因此当前样本的等值整数是“13”;又如例二:当前样本可以是二进制数字“1010”,则当前样本的等值整数是“10”。
在操作304处,通过对当前样本执行第一移位操作来确定当前样本的第一个描述,其中第一移位操作是指将当前样本右移1位。通过将当前样本的二进制数右移1位可确定第一个描述。在例一中,可确定第一个描述为“110”。在例二中,可确定第一个描述为“101”。
在操作306处,如已知等值整数是偶数,则通过对当前样本执行第一移位操作来为当前样本确定第二个描述,其中第一个描述和第二个描述均可被独立解码。
如已知当前样本的等值整数为偶数,则可通过与第一个描述相同的操作来确定第二个描述。换句话说,如当前样本的等值整数为偶数,则第二个描述可以是第一个描述的复本。例如,在例二中,由于当前样本的等值整数(“10”)为偶数,所以可确定第二个描述为“101”,与第一个描述相同。
在操作308处,如已知等值整数为奇数,则通过对当前样本执行第二移位操作来确定当前样本的第二个描述,其中第二移位操作包括将当前样本右移1位后再加1位。
如已知当前样本的等值整数为奇数,则将当前样本的二进制数右移1位后再加上1位得出第二个描述。在例一中,由于当前样本的等值整数为奇数(“13”),所以可确定第二个描述为“110”加上1位(“1”),得出“111”。因此,在例一中,第一个描述是“110”,第二个描述是“111”。
在一些实施例中,如果二进制数全为“1”则作例外处理。例如,对于八位数字“11111111”,即使其等值整数(“15”)是奇数,也可以应用操作306而不是操作308。换句话说,数字“11111111”被视为偶数处理。在这种情况下,第一个描述和第二个描述都是“1111111”。这一例外简化了解码器的计算(否则第二个描述将是“000000”,而不是“111111”,这就需要解码器作为例外情况来处理)。采用此种例外处理,解码器可将所有描述相加,并仅产生较小的误差(本例中误差为1/256)。
以图6A为例说明,媒体源流的当前样本表示为“输入Si”600。例如,当前样本可以是数字样本。第一个描述显示为“描述1”602。通过将“输入Si”600右移1位可生成“描述1”602。根据“输入Si”600是奇数还是偶数的判断,选择操作306或操作308来生成“描述2”604。如“输入Si”600是偶数,则“描述2”604可以与“描述1”602相同。如“输入Si”600是奇数时,则“描述2”604可以是在“描述1”602的基础上加上1位。
可使用诸如算术编码或霍夫曼编码等方法对第一个描述和第二个描述进行编码来生成压缩媒体流710。在一些实现中,可以无需量化而直接对第一个描述和第二个描述进行编码。
在一些实现中须为当前样本生成两个以上的描述,此时流程300将作为“基本构建块”,包含以下操作:针对媒体流的当前样本,确定当前样本所需的描述总数目;以及对当前样本执行分解操作,其中分解操作包括根据描述总数形成二叉树,且二叉树的每个节点对应表示当前样本的一个描述。
从当前样本开始作为二叉树的“根”,每次通过重复操作304-308可以生成两个描述,直到达到之前确定的当前样本的描述总数。在迭代结束之前,分解操作可以将每个描述视为当前样本,并重复操作304-308。如例三:当描述总数(M)为“4”(M=4)时,在运行操作304-308的第一次迭代中,当前样本“1100”可被分解为两个描述“110”和“110”。然后描述“110”又可被进一步分解为两个描述(都是“11”)。最终为当前样本生成四个描述(“11”,“11”,“11”,“11”)
图6C显示当M=4时用于分解多个描述的示例。例如,可以为样本620生成第一个描述“m2_1”622和第二个描述“m2_2”624。当M=4时,m2_1可以进一步被分解为“m4_1”626和“m4_2”628,并且m2_2可以进一步被分解为“m4_3”630和“m4_4”632。此处mi_j表示总数为i个描述中的第j个描述。
图6D显示当M=3时用于分解多个描述的示例。例如,m2_1可被进一步分解为m4_1和m4_2,因为此时已经为样本620确定了三个描述,则无需再对m2_2做进一步处理。
可将描述总数和为当前样本确定的描述都编码至压缩媒体流710中。与发送M次原始数据样本相比,采用本公开实施例所述的M个描述可以节省M*lnM个比特。例如:如当前样本的大小为8位,则当M=2时,该方法可以节省12.5%的编码成本(比特),当M=4时可节省25%,当M=8时可节省37.5%。
图4是根据本公开实施例所绘制的流程400示例图,示出了对压缩媒体流进行基于整数运算的多描述解码的流程。接收到的媒体流(如媒体比特流)中可包括压缩的媒体流。重建的媒体流可包括音频流、视频流或包含音频和/或视频数据的任何媒体流。流程400可以被实现为图1系统100中的软件和/或硬件模块。例如,流程400可以被实现为包含在解码器(如图1中的设备102)中的模块。在某些阶段如图8的流程800中的阶段804-808中至少一处,流程400的操作还可以被实现为机器可读指令。流程400包含操作402-406,用接收到的媒体流的两个描述中的至少其中之一来重建当前样本,详见下述。
在一些实现中须用到两个以上的描述来重建当前样本,这种情况下可采用几种不同方式。一种方式为:通过每次从两个描述中生成当前样本来多次(如迭代)运行流程400,比如反向遍历在解码器处为多个描述确定的二叉树。另一种方式为图5示出的流程500:通过查找操作从查找表中确定当前样本的估计值。
在操作402处,从媒体比特流中至少解码了第一、第二描述这两个描述的其中之一,其中第一个描述和第二个描述与媒体比特流的当前样本相关联并且可被独立解码。
在图6A的示例中,“描述1”606和“描述2”608都已被接收。而在图6B的示例中,仅接收了“描述1”606,“描述2”608则在传输中丢失。
在操作404处,如已知第二个描述被丢失,则通过对第一个描述执行第三移位操作来重建当前样本,该第三移位操作是指通过将第一个描述左移1位。此处的第二个描述可以是两个描述中缺失的任何一个,如“描述1”或“描述2”。在图6B的示例中,由于“描述2”608在传输期间丢失,所以通过将“描述1”606左移1位来重建当前样本。重建样本由估计值614来表示。
在上述流程300的例一中,用一个四位的二进制数“1101”表示当前样本。第一个描述是“110”,第二个描述是“111”。假定第二个描述已丢失,则可将第一个描述左移1位以生成估计值614,其值为“1100”。在这种情况下,估计误差为1/13。一般而言,如当前样本的等值整数为奇数,例如Si=2n+1,假定第一个描述D1=n且第二个描述D2=n+1。当只接收到一个描述时,将一个描述左移将得到2n或2n+2。无论哪种情况,估计误差都是1/Si。Si越大,估计误差越小。
在上述流程300的例二中,当前样本由二进制数“1010”表示,其等值整数是“10”,为偶数。第一个描述和第二个描述都是“101”。当只接收到一个描述时,将一个描述左移得到“1010”,这是对原始样本的无损重构。一般而言,如当前样本的等值整数为偶数,即Si=2n,即使有丢包情况仍可无误地重建当前样本。
在操作406处,如已知接收到了第一个描述和第二个描述,则可通过将第一个描述和第二个描述相加来重建当前样本。例如,在图6A的示例中,由于“描述1”606和“描述2”608都已接收到,则通过对“描述1”606和“描述2”608进行求和来重建当前样本。重建的样本由“输入Si”610表示。
在第一个示例中,如第一个描述“110”和第二个描述“111”都已被接收,则通过将“110”和“111”相加来重建当前样本,相加后得到“1101”,与原始样本“1101”相同。
图5是根据本公开实施例所绘制的流程500示例图,示出了对压缩媒体流进行基于整数运算的多描述解码的流程。接收到的媒体流(如媒体比特流)中可包括压缩的媒体流。重建的媒体流可包括音频流、视频流或包含音频和/或视频数据的任何媒体流。流程500可以被实现为图1系统100中的软件和/或硬件模块。例如,流程500可以被实现为包含在解码器(如图1中的设备102)中的模块。在某些阶段如图8的流程800中的阶段804-808中至少一处,流程500的操作还可以被实现为机器可读指令。流程500包含操作502-506,通过接收到的媒体流的多个描述(M>2)来重建当前样本,详见下述。在图5的流程500中,参考查找表以进行查找操作来对当前样本做出估计。
在操作502处,在媒体流中为当前样本将之前编码的当前样本的描述总数进行解码。
在操作504处,如已知解码器接收到的描述的数目小于描述总数,则通过对解码器接收的描述执行查找操作来重建当前样本,其中查找操作包括根据描述总数和由解码器接收的描述这两个信息中的至少其中之一,使用查找表进行查询获得当前样本的估计值。
图6E示出了当M=2或4时,对于等值整数在1-16范围之间的样本进行编码和解码的结果示例。左边表格表示编码中二叉树分解的结果。例如,如当前样本“S”为整数“2”(二进制表示为“0010”),则根据图3中的流程300,可确定第一个描述“D1”和第二个描述“D2”均为整数“1”(二进制表示为“001”)。因为当前样本可以通过将D1和D2相加,或者当其中一个丢失时左移另一个描述而实现对当前样本无误地重建,因此每个描述的误差为0.00%。
中间表格示出了当四个描述中有三个缺失而仅接收到描述“D4”时针对该情况的查找表。使用查找表简化了解码过程,从而提高了MDC解码的效率。第一列是接收到的数据(例如:当仅接收到“D4”时表示为“x-x-x-1”)。第二列列出四个可能的原始样本(例如“1,2,3,4”)。第三列是估计值,可以使用当前样本可能已丢失描述的平均值来确定。在这一示例中,可选择“2”或“3”。这里的“平均值”可以指基于所接收到的描述为当前样本预估得出的加权平均值、向下舍入到最接近的整数、均值、或统计计算数值。其余三列列出了估计值与原始值(例如“4”)之间的最大可能差异,以及相应误差(绝对误差,例如以“2”表示;或相对误差,例如以“50%”表示)。在其中一个例子中,当m4_4(即描述“D4”是四个描述中唯一一个被接收到的描述)为整数“2”(即“010”)时,可能的原始样本值可能是“5,6,7,8”。如果选择“6”或“7”,则最大估计误差都将是2位。但是相对误差将分别是2/8=25%和2/5=40%!所以估计值要取向下舍入到最接近的加权平均值的整数。一般来说,当只有一个描述被接收时,估计误差将小于或等于lnM比特。例如,当M=2时,最大的估计误差是1比特。当M=4时,最大估计误差是2比特。
根据解码器接收到的描述,可从多个查找表中选择合适的查找表,这多个查找表是基于描述总数和由解码器接收的描述的各种可能组合情况而预先设定的。例如,在图6E中,对于M=4的情况列出了两个不同的表格,中间表格适用于仅接收到“描述4”的情况,右侧表格则适用于接收到“描述3”和“描述4”的情况。以此类推,可以为解码器接收到的描述的所有可能的组合生成查找表。缺失的描述数量越少,则估计准确度越高。例如,当接收到两个描述“D3”和“D4”并且它们都是整数“2”时,右侧表格显示原始样本可以是“7”(或“8”)且误差为“1”。
在操作506处,如已知解码器接收到的描述数目与描述总数相等,则通过对解码器接收到的描述相加求和来重建当前样本。
本公开所述的MDC技术可显著提高性能、节省比特和减轻丢包影响。此外,它还可与现有的通信系统集成。运用MDC编码技术编码媒体源流可实现具有较好容错性的数据传输。下文将给出音频和视频编码流程的示例。
图7是根据本公开实施例所绘制的MDC编码流程示例图。流程700可被实现为图1系统100中的软件和/或硬件模块。例如,流程700中的一些或全部阶段可以由编码器(如设备104)实现为包含在系统100中的软件或硬件模块。编码器可以通过存储在存储器(如存储器118)中的程序代码来实现。程序代码可包括计算机可读指令,当由处理器(如处理器116)执行时使编码器以图7中描述的方式对媒体源流进行编码。编码器也可以是包含在某个设备(例如设备104)中的专用硬件。例如,编码器可以是硬件编码器。流程700包括操作704-708,用以从媒体源流702(如图2中的媒体源流200)生成压缩媒体流710作为输出。媒体源流702可包括音频序列(如音频源流)、视频序列(如视频源流)或包含音频和/或视频数据的任何多媒体源流。在应用图3-5中基于整数运算的多描述编码时,可对MDC编码流程700(部分或全部过程或阶段)进行修改变通。在一些情况下,实现基于整数运算的多描述编码技术并不一定需要流程700。
在一些实现中,MDC编码技术可用于补充或代替现有的视频或音频编码标准,或是作为现有视频或音频编码标准的一部分来实现。而在另一些实现中,则可单独应用MDC编码技术而无需与其他音频/视频系统集成。通常在编码视频序列时,编码过程可包括以下一个或多个阶段或操作:预测阶段(如帧内预测或帧间预测)、变换阶段和熵编码阶段。上述阶段可以被包括在编码过程的正向路径中。在编码过程的正向路径中,可以使用视频序列作为输入来生成编码或压缩的视频比特流。在一些实现中,编码过程可以进一步包括重建参考图像或帧的重建路径,该参考图像或帧用于在预测阶段对未来图像进行编码。在变换阶段与预测阶段之间,重建路径还可包括逆变换阶段和重建阶段。另外应该注意的是,编码过程还可以采用其他变化形式来编码视频序列。例如,虽然在本文所述的实现和示例中没有使用量化阶段等一些其他编码阶段,但实际可在合适的情况下添加这些阶段。
可以像对视频序列那样对音频序列进行编码,或使用任何音频压缩技术。例如,音频压缩可以包括以下一个或多个阶段:映射阶段、编码阶段和比特流编码阶段。也可用其他阶段替换或将其添加到示例中的一个或多个阶段。
应该注意的是,对视频序列进行编码也可以使用编码过程的其他变体形式。编码过程中的数据和操作可以按照不同的顺序进行处理和执行,也可组合为更少的阶段,或者是分成更多的阶段,而最终达到同样的目的。例如,基于非变换的编码器可在不变换的基础上量化残差数据。又如,编码器可在不同阶段分别执行变换和量化操作。
MDC编码可在音频或视频编码过程的任何阶段之前、之后或期间执行。例如,MDC编码可在量化之前执行。再如,MDC编码也可在变换之后和量化之前执行。又如,MDC编码还可在没有变换阶段的编码过程中执行。应该注意的是,MDC编码也可在编码过程的其他阶段执行。
在图7的流程700中,MDC编码器接收了媒体源流702。本文所指的“接收”一词可以指以任何方式接收、输入、获取、检索、获得、读取、访问或采用任何操作以输入信息或数据。例如,媒体源流702可以是视频流并且包括一系列视频图像(如当前图像)。
在分解阶段704,一个块(如当前块202)可被划分为多个样本,并且可以参照流程300和图3所述的操作将每个样本分解为多个描述(M个描述)。例如,当前块202可包括当前样本206。
在分包阶段706,可以将当前块202分包成M个描述。例如,当前块202的第一个描述可以通过将在分解阶段704确定的所有样本的第一个描述组合起来而成。以此类推,当前块202的第二个描述可以通过将在分解阶段704确定的所有样本的第二个描述组合起来而成。当前块202的每个描述可以形成块数据流,在网络传输之前进行压缩以消除冗余。
在压缩阶段708,可将M个描述进行压缩(如熵编码)来生成可被发送的压缩媒体流710。例如,可以使用算术编码或霍夫曼编码等熵编码技术来压缩这M个描述。当前块202的每个描述(如描述204)可以被独立地压缩,因此在传输时任何描述的丢失都不会影响对其他接收到的描述进行解码。
在一些实现中,可进一步对多个描述应用一个或多个纠错技术。此类纠错技术可包括FEC、ARQ或PLC等。
图8是根据本公开实施例所绘制的MDC解码流程800的示例图。流程800可被实现为图1系统100中的软件和/或硬件模块。例如,流程800的某些或全部阶段可以由解码器(如设备102)实现为包含在系统100中的软件或硬件模块。解码器可通过存储在存储器(如存储器110)中的程序代码来实现。程序代码可包括计算机可读指令,当由处理器(如处理器108)执行时,该计算机可读指令使得解码器以图8中描述的方式对压缩媒体流进行解码。解码器也可以被实现为包含在设备(如设备102)中的专用硬件。例如,解码器可以是硬件解码器。流程800包括操作804–808,用以将压缩媒体流802重建为媒体流810。媒体流810可包含音频流、视频流或包含音频和视频数据的任何多媒体流。在应用图3-5中基于整数运算的多描述编码时,可对MDC解码流程800(部分或全部过程或阶段)进行修改变通。在一些情况下,实现基于整数运算的多描述编码技术并不一定需要流程800。
对于MDC兼容的解码器,解码过程是编码过程的逆向操作。解码器可以接收包含压缩媒体流的媒体流(如媒体比特流),然后可被进一步解码为一个或多个描述。在接收到的编码描述中可能存在错误或丢包现象,但是通过MDC解码技术,解码的媒体流可以保持较高的保真度或质量。典型的音频和视频解码过程详见下述。
通常,在解码视频比特流时,解码过程类似于视频编码过程的重建路径,并且可以包括以下阶段或操作:熵解码阶段、逆变换阶段、预测阶段和重建阶段。应该注意的是,解码视频比特流也可采用解码过程的其他结构变化方式来进行。
可以像对视频序列那样对音频序列进行解码,或使用任何音频解压缩技术。例如,音频解压可包括以下阶段:比特流解码阶段、重建阶段量化和逆映射阶段。也可用其他阶段替换或将其添加到示例中的一个或多个阶段。
应该注意的是,对视频序列进行解码也可以使用解码过程的其他变体形式。解码过程中的数据和操作可以按照不同的顺序进行处理和执行,也可组合为更少的阶段,或者是分成更多的阶段,而最终达到同样的目的。
在一些实现中,可以在上述音频或视频解码过程的任何阶段之前、之后或期间执行MDC解码。例如,可以在音频解码过程的去量化和重建阶段和逆映射阶段之间执行MDC解码。又如,也可以在视频解码过程的去量化之后、逆变换之前执行MDC解码。再如,还可以在没有变换阶段的解码过程中执行MDC解码。应该注意的是,在解码过程中应用MDC解码并不限于任何上述示例阶段,并且可对接收和重建的多个描述应用某些或全部解码过程的后续阶段。
在流程800中,MDC解码器接收了压缩媒体流802。在解压缩阶段804,将压缩媒体流802解码以恢复第二数量(M2)的描述。由于网络传输导致的错误(如网络拥塞和丢包现象),这M2个恢复的描述可能与图7所示的M个对应的原始描述不一致(如M2可能小于M)。该阶段对应于图7中的压缩阶段708。
在解包阶段806,当前块202的M2个描述可被解包为当前块202中每个样本的M2个描述。例如,可为当前块202的当前样本206确定M2个描述。该阶段对应于图7中的分包阶段706。
在整合阶段808,可以用这M2个描述来重建当前块202的当前样本206,可使用的操作见图4或图5的相关描述。该阶段对应于图7中的分解阶段704。
根据恢复的描述中所接收和恢复的各个不同数据,可以采用不同的方法来重建媒体流810。本文所公开的用于媒体流的多描述编码和解码的设备、方法和系统可以达到更高效率,并且也可以轻松地与现有编码系统集成。
如上所述,本领域专业人士应该注意,本文所述的本公开的全部或部分内容可以使用具有计算机程序的通用计算机或处理器来实现,其计算机程序在被运行时可执行本文所述的任何相应的技术、算法和/或指令。另外,也可以有选择地使用专用计算机或处理器,配备专用硬件设备用以执行本文描述的任何方法、算法或指令。
本文所述的计算设备(以及存储在其上和/或由此执行的算法、方法、指令等)可以通过硬件、软件或其任何组合来实现。硬件可包括计算机、知识产权(IP)内核、专用集成电路(ASIC),可编程逻辑阵列、光处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处理器、数字信号处理器或其他任何适用的电路。在本权利要求中,“处理器”一词应理解为包含任何上述内容中的一个或其多个组合。“信号”和“数据”两词可以互换使用。此外,计算设备各部分功能并非必须以相同的方式来实现。
本文所述各方面内容可通过功能块组件和各种处理操作来描述。本文公开的流程和序列可以单独或以任何组合形式来执行。功能块可以通过执行任意数量的可运行特定功能的硬件和/或软件组件来实现。例如,所述的内容可以采用各种集成电路组件,例如存储器元件、处理元件、逻辑元件、查找表等,在一个或多个微处理器或其他控制设备的控制下执行各种功能。类似地,实现所述内容各个功能时如需采用软件编程或软件元件,都可以采用诸如C、C++、Java、汇编程序等的任何编程或脚本语言来实现本公开,且可以采用任何数据结构、对象、进程、例程或其他编程元素的任意组合来执行各种算法。各项功能可以在一个或多个处理器上通过执行算法来实现。此外,本公开所述各功能可以采用任意数量的常规技术来进行电子配置、信号处理和/或控制、数据处理等。本文广泛使用“机制”和“元素”这些词语,并不限于机械或物理实现,而是可以包括与处理器结合的软件例程等。
以上公开的实施方式或部分实施方式可以采取计算机程序产品的形式,该程序产品可通过计算机使用或可由计算机可读介质进行访问等。计算机可用或计算机可读介质可以是任何设备,该设备可以具体包含、存储、传送或传输供任何处理器使用或与其结合使用的程序或数据结构。该介质可以是电子的、磁的、光学的、电磁的或半导体装置等等。也可包含其他适用的介质。上述计算机可用或计算机可读介质可以被称为非暂时性存储器或介质,并且可以包括RAM或其他易失性存储器或存储设备,它们可以随时间变化而发生改变。本文所述的设备存储器并非必须物理上配备于装置中,而是可以由装置远程访问,并且不必与装置中其他物理上配备的存储器相邻,特别说明除外。
本文所述作为本公开的示例执行的一项或多项功能均可使用机器可读指令来实现,该指令用于操作前述一个或多个组合的硬件。计算代码可以以一个或多个模块的形式实现,通过该模块可以将一个或多个组合的功能作为计算工具来执行,在运行本文所述方法和系统时,输入和输出数据在每个模块与一个或多个其他模块之间进行相互传输。
信息、数据和信号可以使用各种不同的技术和方法来表示。例如,本文中提到的任何数据、指令、命令、信息、信号、比特、符号和芯片可以用电压、电流、电磁波、磁场或粒子、光学场或粒子等一项或多项组合来表示。
本文示出和描述的具体内容是本公开的说明性示例,且无意以任何方式限制本公开的范围。为行文简洁起见,可能并未详细描述常规电子元器件、控制系统、软件开发和系统的其他功能方面(以及系统的各个操作组件的组件)。此外,本文多个附图中示出的连接线或连接符旨在表示各种元件之间的示例性功能关系和/或物理或逻辑耦合关系。在实际设备中可能存在许多替代或额外的功能关系、物理连接或逻辑连接。
本文采用“示例”一词来表示举例、实例或说明。本文所述用于“示例”的任何功能或设计不一定表示其优于或胜于其他功能或设计。相反,使用“示例”一词是为了以具体的方式呈现概念。本申请中所使用的“或”字旨在表示包含性的“或”而不是排他性的“或”。也就是说,“X包括A或B”意在表示任何自然的包含性排列,除非另有说明,或者从上下文可明确判断则另当别论。换句话说,如果X包含A,X包含B,或X包含A和B,那么在任何前述实例下“X包含A或B”都成立。此外,本申请和所附权利要求书中使用的冠词“一个(英文中的a和an)”通常应解释为表示“一个或多个”,除非另有说明或上下文清楚地指出为特指一个的单数形式。另外,“一个功能”或“一项功能”这两个短语在全文中多次用到,但并不意味着同一个实施方式或同一功能。
本文中“包含”或“具有”及其同义词旨在表示包括其后列出的项目及其等同物以及附加项目。除非另外指明或限制,否则本文使用的“安装”、“连接”、“支持”和“耦合”及其同义词为广义上的含义,包括直接和间接安装、连接、支持和耦合。此外,“连接”和“耦合”并不限于物理或机械连接或耦合。
在本公开所述内容(特别是下文的权利要求书)中,“一”、“一个”和“该”以及类似的指示代词应理解为包含一个和多个的单数和复数形式。此外,本文中对数值范围的描述只是一种简便的描述方式,旨在表示包含在该范围之内的每一个单独数值,并且每个单独值并入规格范围中,等效于在本文中单独列举。最后,本文所述的所有方法的步骤可以以任何合适的顺序执行,除非本文另有说明或者与上下文明显矛盾。本文提供的示例或示例性语言(例如“诸如”)的使用旨在更好地说明本公开,并无意于限制本公开的范围,除非另有说明。
本文使用各种标题和小标题列出列举条目。包含这些内容是为了增强可读性并简化查找和引用材料的过程。这些标题和小标题无意于、也不会用来影响对权利要求的解释或以任何方式限制权利要求的范围。本文示出和描述的具体实现是本公开的说明性示例,且无意于以任何方式限制本公开的范围。
本文引用的所有参考文献(包括出版物、专利申请和专利)均通过引用纳入本文,等效于单独且明确地指明将每个参考文献通过引用纳入本文,且涵盖参考文献的全部相关内容。
虽然已经结合某些实施例和实施方式对本公开进行描述说明,但应理解为,本公开并不限于所公开的实施方式,与之相反,本公开旨在覆盖权利要求范围之内所涵盖的各种变体和等同设置,该范围应被赋予最宽泛的解释以涵盖法律允许的所有上述变体和等同设置。
Claims (16)
1.一种为媒体流编码多个描述的方法,包括:
根据媒体流当前样本的值确定其等值整数;
通过对当前样本执行第一移位操作来确定当前样本的第一个描述,其中第一移位操作是指将当前样本右移1位;
如已知等值整数为偶数,则通过对当前样本执行第一移位操作来为当前样本确定第二个描述,其中第一个描述和第二个描述均可被独立解码;以及
如已知等值整数为奇数,则通过对当前样本执行第二移位操作来确定当前样本的第二个描述,其中第二移位操作是指将当前样本右移1位后再加1位。
2.根据权利要求1所述方法,还包括
对第一个描述和第二个描述进行编码。
3.根据权利要求1所述方法,还包括
针对媒体流的当前样本确定其描述总数,该总数是指为当前样本所确定的描述的总数目;以及对当前样本执行分解操作,其中分解操作是指根据描述总数生成二叉树,且二叉树的每个节点对应表示当前样本的一个描述。
4.根据权利要求3所述方法,还包括
通过对当前样本的当前描述执行迭代操作来确定由二叉树的对应节点表示的每个描述:
通过对当前样本执行第一移位操作来确定当前描述的第一个描述;
如已知等值整数为偶数,则通过对当前样本执行第一移位操作来确定当前样本的第二个描述;以及
如已知等值整数为奇数,则通过对当前样本执行第二移位操作来确定当前样本的第二个描述;以及
重复对第一个描述和第二个描述的迭代操作,直到为当前样本确定的描述数目达到描述总数为止。
5.根据权利要求3所述方法,还包括
对描述总数进行编码;以及
对所有描述中的每一个描述进行编码。
6.根据权利要求1所述方法,其中媒体流包括音频流和视频流两者至少其中之一。
7.一种为媒体比特流解码多个描述的方法,包括:
从媒体比特流中解码第一个描述和第二个描述这两者至少其中之一,其中第一个描述和第二个描述与媒体比特流的当前样本相关联并且均可被独立解码;
如已知第二个描述被丢失,则通过解码器对第一个描述执行第三移位操作来重建当前样本,其中第三移位操作是指将第一个描述左移1位;以及
如已知第一个描述和第二个描述都已接收到,则通过解码器将第一个描述和第二个描述相加来重建当前样本。
8.根据权利要求7所述方法,还包括
从媒体比特流中对描述总数进行解码,该描述总数是指为当前样本编码的描述的总数目;以及
如已知解码器接收到的描述的数目小于描述总数,则通过对解码器接收的描述执行查找操作来重建当前样本,其中查找操作是指根据描述总数和由解码器接收到的描述这两个信息中的至少其中之一,使用查找表进行查询获得当前样本的估计值。
9.根据权利要求8所述方法,如已知解码器接收到的描述的数目小于描述总数,则通过对解码器接收的描述执行查找操作来重建当前样本,其中查找操作是指根据描述总数和由解码器接收到的描述这两个信息中的至少其中之一,使用查找表进行查询获得当前样本的估计值,这包括:
根据解码器接收到的描述,从多个查找表中选择合适的查找表,这多个查找表是基于描述总数和由解码器接收的描述的各种可能组合情况而预先设定的。
10.根据权利要求8所述方法,通过使用当前样本的可能丢失描述的平均值从查找表中获得当前样本的估计值。
11.根据权利要求8所述方法,还包括
如已知解码器接收到的描述数目与描述总数相等,则通过对解码器接收到的描述相加求和来重建当前样本。
12.根据权利要求7所述方法,其中媒体比特流包括音频比特流和视频比特流两者至少其中之一。
13.一种为媒体比特流解码多个描述的方法,包括:
在媒体比特流中针对当前样本将之前编码的当前样本的描述总数进行解码;
如已知解码器接收到的描述的数目小于描述总数,则通过对解码器接收的描述执行查找操作来重建当前样本,其中查找操作是指根据描述总数和由解码器接收的描述这两个信息中的至少其中之一,使用查找表进行查询获得当前样本的估计值;以及
如已知解码器接收到的描述数目与描述总数相等,则通过对解码器接收到的描述相加求和来重建当前样本。
14.根据权利要求13所述方法,如已知解码器接收到的描述的数目小于描述总数,则通过对解码器接收的描述执行查找操作来重建当前样本,其中查找操作是指根据描述总数和由解码器接收的描述这两个信息中的至少其中之一,使用查找表进行查询获得当前样本的估计值,包括:
根据解码器接收到的描述,从多个查找表中选择合适的查找表,这多个查找表是基于描述总数和由解码器接收的描述的各种可能组合情况而预先设定的。
15.根据权利要求13所述方法,通过使用当前样本的可能丢失描述的平均值从查找表中获得当前样本的估计值。
16.根据权利要求13所述方法,其中媒体比特流包括音频比特流和视频比特流两者至少其中之一。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/842,431 US10630747B2 (en) | 2017-12-14 | 2017-12-14 | Integer multiple description coding system |
US15/842,431 | 2017-12-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109963157A true CN109963157A (zh) | 2019-07-02 |
CN109963157B CN109963157B (zh) | 2023-04-25 |
Family
ID=66816547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810749898.0A Active CN109963157B (zh) | 2017-12-14 | 2018-07-10 | 为媒体流编码及为媒体比特流解码多个描述的方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10630747B2 (zh) |
CN (1) | CN109963157B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541228A (zh) * | 2023-07-06 | 2023-08-04 | 深圳市彤兴电子有限公司 | 显示器的触控响应检测方法、装置以及计算机设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10355865B1 (en) * | 2018-05-24 | 2019-07-16 | DeepTruth, LLC | Systems and techniques for certification of trusted media data |
US11375242B1 (en) * | 2021-01-27 | 2022-06-28 | Qualcomm Incorporated | Compression of bitstream indexes for parallel entropy coding |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101106722A (zh) * | 2007-06-18 | 2008-01-16 | 北京交通大学 | 一种基于自适应时域亚采样的多描述视频编解码方法 |
US20110051804A1 (en) * | 2009-08-31 | 2011-03-03 | Cisco Technology, Inc. | Multiple Description Coding With Spatial Shifting |
AU2012100851A4 (en) * | 2012-06-08 | 2012-07-12 | Beijing Jiaotong University | Multiple description video codec based on adaptive temporal sub-sampling |
US20130279606A1 (en) * | 2012-04-19 | 2013-10-24 | Vid Scale, Inc. | System and method for error-resilient video coding |
CN103503320A (zh) * | 2011-05-23 | 2014-01-08 | 华为技术有限公司 | 用于重构源信号的方法和解码器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1578133B1 (en) * | 2004-03-18 | 2007-08-15 | STMicroelectronics S.r.l. | Methods and systems for encoding/decoding signals, and computer program product therefor |
GB2534409A (en) * | 2015-01-23 | 2016-07-27 | Sony Corp | Data encoding and decoding |
-
2017
- 2017-12-14 US US15/842,431 patent/US10630747B2/en active Active
-
2018
- 2018-07-10 CN CN201810749898.0A patent/CN109963157B/zh active Active
-
2020
- 2020-02-14 US US16/791,519 patent/US20200186583A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101106722A (zh) * | 2007-06-18 | 2008-01-16 | 北京交通大学 | 一种基于自适应时域亚采样的多描述视频编解码方法 |
US20110051804A1 (en) * | 2009-08-31 | 2011-03-03 | Cisco Technology, Inc. | Multiple Description Coding With Spatial Shifting |
CN103503320A (zh) * | 2011-05-23 | 2014-01-08 | 华为技术有限公司 | 用于重构源信号的方法和解码器 |
US20130279606A1 (en) * | 2012-04-19 | 2013-10-24 | Vid Scale, Inc. | System and method for error-resilient video coding |
AU2012100851A4 (en) * | 2012-06-08 | 2012-07-12 | Beijing Jiaotong University | Multiple description video codec based on adaptive temporal sub-sampling |
Non-Patent Citations (2)
Title |
---|
MOGUS FENTA ADNEW(芬达): "误差恢复视频压缩中的高级可伸缩编码和运动估计", 《中国博士论文全文数据库电子期刊》 * |
张鹏: "多描述分布式视频编码研究", 《中国硕士学位论文全文数据库电子期刊》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541228A (zh) * | 2023-07-06 | 2023-08-04 | 深圳市彤兴电子有限公司 | 显示器的触控响应检测方法、装置以及计算机设备 |
CN116541228B (zh) * | 2023-07-06 | 2024-01-19 | 深圳市彤兴电子有限公司 | 显示器的触控响应检测方法、装置以及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
US10630747B2 (en) | 2020-04-21 |
CN109963157B (zh) | 2023-04-25 |
US20200186583A1 (en) | 2020-06-11 |
US20190190974A1 (en) | 2019-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11568571B2 (en) | Techniques and apparatus for lossless lifting for attribute coding | |
JP7234375B2 (ja) | 点群属性コーディングの加重中央値を予測するための手法及びデバイス並びにコンピュータプログラム | |
US9590655B2 (en) | Scalable high-bandwidth architecture for lossless compression | |
CN109963157A (zh) | 整数多描述编码技术 | |
JP2022516847A (ja) | 適応ポイントクラウド属性コーディングのための方法、装置、及びコンピュータプログラム | |
CN106489241A (zh) | 编码器、解码器和方法 | |
US11917205B2 (en) | Techniques and apparatus for scalable lifting for point-cloud attribute coding | |
US10666289B1 (en) | Data compression using dictionary encoding | |
CN109286402B (zh) | 一种Polar码编码方法及装置 | |
US20210217137A1 (en) | Techniques and apparatus for coarse granularity scalable lifting for point-cloud attribute coding | |
CN113473149A (zh) | 用于无线图像传输的语义信道联合编码方法及装置 | |
JP2019529979A (ja) | インデックスコーディング及びビットスケジューリングを備えた量子化器 | |
CN103581684A (zh) | 压缩编码和解码方法及装置 | |
CN112398484A (zh) | 一种编码方法及相关设备 | |
JP2006129467A (ja) | 整数データの無損失適応符号化・復号化 | |
Yang et al. | Rate distortion theory for causal video coding: Characterization, computation algorithm, and comparison | |
CN110679090B (zh) | 减少延迟错误校正解码 | |
JPS6376525A (ja) | 算術符号化システムにおける確率適応化方法 | |
CN106537914A (zh) | 通过限制的进位运算来执行算术编译的方法和设备 | |
WO2023159820A1 (zh) | 图像压缩方法、图像解压缩方法及装置 | |
CN109474826B (zh) | 图片压缩方法、装置、电子设备及存储介质 | |
CN109151484A (zh) | 视频压缩中的特定操作预测方法 | |
CN116863949A (zh) | 通信接收方法及其装置 | |
CN109413446A (zh) | 多描述编码中的增益控制方法 | |
WO2020186535A1 (zh) | 点云属性编码方法和装置以及点云属性解码方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |