CN105264600B - 分层音频编码和传输 - Google Patents
分层音频编码和传输 Download PDFInfo
- Publication number
- CN105264600B CN105264600B CN201480032114.2A CN201480032114A CN105264600B CN 105264600 B CN105264600 B CN 105264600B CN 201480032114 A CN201480032114 A CN 201480032114A CN 105264600 B CN105264600 B CN 105264600B
- Authority
- CN
- China
- Prior art keywords
- audio
- layer
- audio frame
- frame
- data
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/002—Dynamic bit allocation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
- G10L19/24—Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/10537—Audio or video recording
- G11B2020/10546—Audio or video recording specifically adapted for audio data
Abstract
本公开描述用于生成分层音频的系统和方法的实施例,使得计算设备可以基于诸如其可用带宽、设备容量或用户选择的标准来请求可变的数据量。可以生成基层和对前一层进行递进增强的一个或多个增强层。计算设备可以获取基层和/或一个或多个增强层,并且实时或接近实时地基于可用带宽的波动和其他可能标准来调整获取哪些层。
Description
相关申请交叉引用
本申请要求2013年4月5日递交的、题为“LAYERED AUDIO CODING ANDTRANSMISSION”美国临时申请No.61/809,251的优先权,其公开通过引用方式在此整体并入。
背景技术
通常来说,诸如服务器的计算设备可以存储大量音频数据。如果用户具有合适许可并连接到服务器,则他们可以访问这些音频数据。在一些情形中,具有许可并连接到服务器的用户可以下载音频数据以存储在本地计算设备上。下载完成后,用户可以发起下载于本地计算设备的音频数据的回放。备选地,用户可以流传输音频数据,以实时地在本地计算设备上播放音频数据(例如,音频数据仍处于下载过程中)。除了流传输,用户可以从包装介质(例如,光盘,如DVD或蓝光盘)访问用于回放的音频数据。
发明内容
本公开的一个方面提供生成分层音频的方法。所述方法包括访问第一音频帧和第二音频帧。所述方法还包括将第一音频帧与第二音频帧相比较。所述方法还包括基于该比较,识别第一音频帧的第一部分和第二音频帧的第二部分之间的相似性。所述方法还包括用对与第一部分相对应的第一音频帧中的位置的引用来替换第二音频帧中的第二部分,以创建修改的第二音频帧。所述方法还包括基于第一音频帧生成第一音频层。所述方法还包括基于修改的第二音频帧生成第二音频层。所述方法还包括使第一音频层和第二音频层可用于在网络上向客户端设备传输。第一音频层在网络上的传输可以需要第一带宽量,并且第一音频层和第二音频层二者在网络上的传输可以需要比第一带宽量更大的第二带宽量,从而如果第二带宽量对客户端设备可用,则使客户端设备能够一并接收和输出第一音频层和第二音频层,与此同时如果第一带宽量对客户端设备可用,仍然使客户端设备能够获取和输出第一音频层。
上一段的方法可以具有以下特征的任何子组合:其中所述方法还包括识别第一音频帧中的第三部分和第二音频帧中的第四部分之间的第二相似性,以及用对与第三部分相对应的第一音频帧中的第二位置的第二引用来替换第二音频帧中的第四部分;其中所述方法还包括识别第一音频帧中的第一部分和第二音频帧中的第三部分之间的第二相似性,以及用对与第一部分相对应的第一音频帧中的位置的第二引用来替换第二音频帧中的第三部分;其中第一音频层包括核心音频层,并且第二音频层包括对核心音频层进行补充的扩展音频层;其中扩展音频层包括以下至少一个:对核心音频层的音频声道进行补充的附加音频声道,比核心音频层的比特率更高的比特率,大于核心音频层中的比特个数的比特个数,或者对核心音频层的音频内容进行补充的附加音频内容;以及其中所述方法还包括访问第三音频帧,将第一音频帧和修改的第二音频帧与第三音频帧相比较,识别修改的第二音频帧中的第三部分和第三音频帧中的第四部分之间的第二相似性,用对与第三部分相对应的修改的第二音频帧中的位置的第二引用来替换第三音频帧中的第四部分,以创建修改的第三音频帧,以及基于第三音频帧生成第三音频层。
本公开的另一个方面提供一种用于生成分层音频的系统。所述系统包括音频帧比较器,所述音频帧比较器包括硬件处理器。所述硬件处理器可以被配置为访问第一音频帧和第二音频帧。所述硬件处理器还可以被配置为将第一音频帧与第二音频帧相比较。所述硬件处理器还可以被配置为基于该比较,识别第一音频帧的第一部分和第二音频帧的第二部分之间的相似性。所述硬件处理器还可以被配置为用对与第一音频帧的第一部分相对应的第一音频帧中的位置的引用来替换第二音频帧中的第二部分,以创建修改的第二音频帧。所述系统还包括层生成器,所述层生成器被配置为基于第一音频帧生成第一音频层以及基于修改的第二音频帧生成第二音频层。
上一段的系统可以具有以下特征的任何子组合:其中所述系统还包括被配置为在网络上向客户端设备提供第一音频层和第二音频层的流传输模块;其中所述系统还包括被配置为将第一音频层和第二音频层存储在计算机可读存储介质中的记录模块;其中所述音频帧比较器还被配置为识别第一音频帧中的第三部分和第二音频帧中的第四部分之间的第二相似性,以及用对与第一音频帧中的第三部分相对应的第一音频帧中的位置的引用来替换第二音频帧中的第四部分;其中第二音频帧中的第二部分和第二音频帧中的第四部分不连续;其中所述第二音频帧包括第一音频帧内所不包括的第五部分,并且修改的第二音频帧中的所述引用和所述第二引用被所述第五部分相分隔;其中所述音频帧比较器还被配置为识别第一音频帧中的第一部分和第二音频帧中的第三部分之间的第二相似性,以及用对与第一部分相对应的第一音频帧中的位置的第二引用来替换第二音频帧中的第三部分;其中第一音频层包括核心音频层,并且第二音频层包括对核心音频层进行补充的扩展音频层;其中扩展音频层包括以下至少一个:对核心音频层的音频声道进行补充的附加音频声道,比核心音频层的比特率更高的比特率,大于核心音频层中的比特个数的比特个数,或者对核心音频层的音频内容进行补充的附加音频内容;其中所述音频帧比较器还被配置为基于第一音频帧和修改的第二音频帧生成散列值;其中所述音频帧比较器还被配置为访问第三音频帧,将第一音频帧和修改的第二音频帧与第三音频帧相比较,以及识别修改的第二音频帧中的第三部分和第三音频帧中的第四部分之间的第二相似性;其中所述音频帧比较器还被配置为,用对与第三部分相对应的修改的第二音频帧中的位置的引用来替换第三音频帧中的第四部分,以创建修改的第三音频帧;其中所述层生成器还被配置为基于修改的第三音频帧生成第三音频层;以及其中所述流传输模块还被配置为在网络上向客户端设备提供第三音频层,其中第一音频层、第二音频层以及第三音频层在网络上的传输需要第三带宽量。
本公开的另一个方面提供一种非瞬态物理计算机存储器,包括存储在其上的可执行指令,所述可执行指令在被硬件处理器执行时被配置为至少访问第一音频帧和第二音频帧。所述可执行指令还被配置为至少将第一音频帧与第二音频帧相比较。所述可执行指令还被配置为至少基于该比较识别第一音频帧的第一部分和第二音频帧的第二部分之间的相似性。所述可执行指令还被配置为至少用对与第一部分相对应的第一音频帧中的位置的引用来替换第二音频帧中的第二部分,以创建修改的第二音频帧。所述可执行指令还被配置为至少基于第一音频帧生成第一音频层。所述可执行指令还被配置为至少基于修改的第二音频帧生成第二音频层。
上一段的非瞬态物理计算机存储器可以具有以下特征的任何子组合:其中所述可执行指令还被配置为至少,识别第一音频帧中的第三部分和第二音频帧中的第四部分之间的第二相似性,以及用对与第三部分相对应的第一音频帧中的第二位置的第二引用来替换第二音频帧中的第四部分;其中所述可执行指令还被配置为至少,识别第一音频帧中的第一部分和第二音频帧中的第三部分之间的第二相似性,以及用对与第一部分相对应的第一音频帧中的位置的第二引用来替换第二音频帧中的第三部分;其中第一音频层包括核心音频层,并且第二音频层包括对核心音频层进行补充的扩展音频层;其中扩展音频层包括以下至少一个:对核心音频层的音频声道进行补充的附加音频声道,比核心音频层的比特率更高的比特率,大于核心音频层中的比特个数的比特个数,或者对核心音频层的音频内容进行补充的附加音频内容。
本公开的另一个方面提供一种重建音频流的方法。所述方法包括在网络上访问服务器,以获取第一音频层和第二音频层。所述方法还包括接收第一音频层和第二音频层,第一和第二音频层中每一个都包括多个音频帧。第一音频层可以包括基层并且第二音频层可以包括对基层的增强。所述方法还可以包括识别第二音频层的第一音频帧中的引用。所述引用可以指示第一音频层的第二音频帧中的位置,所述引用是音频数据的替换。所述方法还包括用与引用所指示的位置相对应的第一音频层的第二音频帧中的音频数据的第一部分替换第二音频层的第一音频帧中的引用。所述方法还包括向解码器或扬声器输出第二音频层,从而实现替代基层的、对要回放的基层的增强。
上一段的方法可以具有以下特征的任何子组合:所述方法还包括在识别引用前,从第一音频帧中提取散列值,以及将所述散列值与第一音频帧中的第二部分和第二音频帧中的第三部分相比较;所述方法还包括如果第一音频帧中的第二部分和第二音频帧中的第三部分与所述散列值不匹配,输出第一音频层;其中第一音频帧包括引用和不涉及另一个音频帧的数据;以及所述方法还包括基于第二音频帧中的第一部分和第一音频帧中不涉及另一个音频帧的数据,生成第三音频帧。
本公开的另一个方面提供一种用于重建音频流的系统。所述系统包括包括硬件处理器的层构建器,所述硬件处理器被配置为访问第一音频层和第二音频层。所述硬件处理器还可以被配置为识别第二音频层的第一音频帧中的引用。所述引用可以指示第一音频层的第二音频帧中的位置。所述硬件处理器还可以被配置为用与引用所指示的位置相对应的第二音频层中的第一部分替换第一音频帧中的引用。所述硬件处理器还可以被配置为输出第二音频层。
上一段的系统可以具有以下特征的任何子组合:所述层构建器还被配置为在识别引用前从第一音频帧中提取散列值,以及将所述散列值与第一音频帧中的第二部分和第二音频帧中的第三部分相比较;所述层构建器还被配置为如果第一音频帧中的第二部分和第二音频帧中的第三部分与所述散列值不匹配,输出第一音频层;所述系统还包括被配置为在网络上访问服务器以获取第一音频层和第二音频层的网络通信设备,其中所述处理器还被配置为从所述网络通信设备访问第一音频层和第二音频层;所述系统还包括被配置为读取计算机可读存储介质的计算机可读存储介质读取器,其中所述计算机可读存储介质包括第一音频层和第二音频层;所述处理器还被配置为经由计算机可读存储介质读取器从计算机可读存储介质访问第一音频层和第二音频层;第一音频帧包括引用和不涉及另一个音频帧的数据;所述层构建器还被配置为基于第二音频帧中的第一部分和第一音频帧中不涉及另一个音频帧的数据,生成第三音频帧;所述层构建器还被配置为按照引用和第一音频帧中不涉及另一个音频帧的数据在第一音频帧中出现的顺序,生成第三音频帧;所述系统还包括被配置为对第三音频帧进行解码的解码器,其中所述解码器还被配置为向扬声器输出已解码的第三音频帧。
本公开的另一个方面提供一种非瞬态物理计算机存储器,包括存储在其上的可执行程序指令,所述可执行程序指令在被硬件处理器执行时被配置为至少访问第一音频层和第二音频层。所述可执行程序指令还被配置为至少识别第二音频层的第一音频帧中的引用。所述引用指示第一音频层的第二音频帧中的位置。所述可执行程序指令还被配置为至少用与引用所指示的位置相对应的第二音频层中的第一部分替换第一音频帧中的引用。所述可执行程序指令还被配置为至少输出第二音频层。
上一段的非瞬态物理计算机存储器可以具有以下特征的任何子组合:所述可执行指令还被配置为至少,在识别引用前从第一音频帧中提取散列值,以及将所述散列值与第一音频帧中的第二部分和第二音频帧中的第三部分相比较;所述可执行指令还被配置为至少如果第一音频帧中的第二部分和第二音频帧中的第三部分与所述散列值不匹配,输出第一音频层;所述可执行指令还被配置为至少在网络上访问服务器以获取第一音频层和第二音频层;所述可执行指令还被配置为至少读取计算机可读存储介质,并且所述计算机可读存储介质包括第一音频层和第二音频层。
为概述本公开的目的,在此已描述本发明的某些方法、优点和新颖特征。应当理解,根据本公开的发明的任何实施例,其不必实现全部这些优点。因此,本公开的发明可以体现或执行为实现或优化本文所教导的一个优点或一组优点,而不必实现本文所教导或建议的其他优点。
附图说明
在全部附图中,重复使用附图标记以指示参照元件之间的对应关系。提供附图以示出本文所描述的发明的实施例,而不对其范围进行限制。
图1示出了音频分层环境的实施例。
图2A示出了基层段和增强层段的示例性框图。
图2B示出了基层段和备选增强层段的示例性框图。
图3示出了图1的音频分层环境的工作流的示例性框图。
图4示出了示例性增强层音频块。
图5示出了分层音频块的示例性元数据结构。
图6A-E示出了音频层编码处理的实施例。
图7A-C示出了用命令替换相同数据的示例性特征。
图8A-B示出了音频层解构处理的实施例。
图9示出了用于生成分层音频的处理的实施例。
图10示出了用于重构音频流的处理的实施例。
图11示出了用于重构音频流的处理的另一个实施例。
具体实施方式
简介
如上所述,用户可能希望从服务器下载或流传输内容。然而,用户操作的本地计算设备可能具有服务器连接问题或者降低的带宽,这可能使数据流的质量变差和/或阻止流传输。在一些实例中,系统可以被配置为检测可用带宽并相应地调整流传输。例如,系统可以组织音频文件的帧(每个帧都包括多个音频采样),使得每个帧首先包括更重要的数据,最后包括较不重要的数据。因此,如果可用带宽不足以传输每个帧的全部时,系统可以消除包括较不重要的数据的每个音频帧的部分(例如,降低比特率),使得可以成功传输音频帧。
服务器支持的流传输应用在数据传输中一般不充当主动角色。相反,流传输应用支持允许使用网络来访问流传输数据的其他计算设备。流传输应用不可以执行除读取和传输以外的任何数据处理。
事实上,一些服务器可能是包括其他服务器、数据仓库等的内容传输网络的一部分。最后从初始服务器(例如原点服务器)流传输的内容可能存储在除与本地计算设备相连的服务器以外的设备上(例如边缘服务器)。边缘服务器可以支持缓存设施,使得当第一本地计算机设备请求数据时,数据可以存储在缓存中。当第二本地计算设备请求相同数据时,可以从缓存而非内容传输网络中的其他设备来获取数据。然而,如果原点服务器将基于可用带宽来处理数据,其将使边缘服务器上的缓冲失效。虽然来自第一本地计算设备和第二本地计算设备的请求可能相同,发送给第一本地计算设备的数据可能不适用于第二本地计算设备,因此可能无法进行适当缓存。
此外,多媒体流的大量增长以及高质量级地传输这些流时的经营价值对网络各层级中的存储造成越来越大的负担,并导致在网络传输的数据量。由于这些系统压力,当与非流传输机制中传输的多媒体体验相比时(例如光盘以及在消费者拥有的设备上传输和存储的用于回放的文件),其往往牺牲音频质量。
因此,本文描述了一种音频分层系统的实施例,其可以允许本地计算设备基于网络资源(例如,可用带宽,延时等)来请求可变的数据量(或者由服务器来提供)。音频系统可以包括多个音频帧。音频分层系统可以将每个音频帧分为一个或多个层。例如,音频帧可以被分为基层和一个或多个增强层。基层可以包括核心数据量(例如,常规且完全可播放的音轨)。第一增强层(如存在)可以包括对核心数据量进行增强(例如,增加分辨率细节、增加声道、增加更高采样频率,及其组合等)的递增数据量。第一增强层可以依赖于基层。第二增强层(如存在)可以包括对第一增强层和/或基层中的组合数据进行增强的增量数据,并且可以依赖于第一增强层和基层。类似的,在一些实施例中可以提供附加的增强层。当与基层组合时,一个或多个增强层可以将基本或部分音轨变换为更丰富更具细节的音轨。
增强层可以包含用于组成更高性能音轨的指令和数据。例如,增强层可以增加附加的音频声道。基层可以包括环绕声格式的5.1声道(例如,包括左前、右前、中央、左后方环绕、右后方环绕、以及低音炮)。当与基层组合时,增强层可以包括形成6.1声道音频流的数据。再例如,增强层可以增加采样频率。因此,增强层可以是48kHz的流,第一增强层可以包括获得96kHz流的数据,并且第二增强层可以包括获得192kHz流的数据,等等。再例如,增强层可以增加细节(例如,基层可以是16比特流,并且增强层可以包括得到24比特流的数据)。再例如,增强层可以增加音量可独立控制的可选或备选音频流(例如,基层可以包括体育比赛中场地的声音,第一增强层可以包括主队播音员音频流,第一备选增强层可以包括客队播音员音频流,第二增强层可以包括英语播音员音频流,第二备选增强层可以包括西班牙语播音员音频流,诸如此类)。
基层和增强层可以在音频分层系统中的服务器上可用。本地计算设备可以访问服务器以下载或流传输基层和/或增强层。如果本地计算设备具有足够的可用带宽量使得内容回放可以如基层那样不中断并获取全部增强层,则本地计算设备可以获取基层和增强层的一部分或全部。类似地,如果可用带宽表明如果不获取除基层和第一增强层以外的数据内容回放可以不中断,则本地计算设备可以只获取基层和第一增强层。类似地,如果可用带宽表明如果不获取除基层以外的数据内容回放将不中断,则本地计算设备可以只获取基层。
在一些实施例中,本地计算设备(或服务器)基于可用带宽的波动,实时或接近实时地调整本地计算设备获取(或服务器发送)的数据量。例如,当大量数据带宽对本地计算设备可用时,本地计算设备可以获取基层和增强层的一部分或全部。如果带宽量下降,本地计算设备可以调整,从而只获得基层和第一增强层。此后,如果带宽量增加,则本地计算设备可以再次获取基层和全部增强层。因此,即使网络环境中发生波动,音频分层系统也可以支持连续、不中断的内容回放。
在一个实施例中,音频分层系统基于个别音频帧的比较来生成基层和增强层。音频分层系统可以先将第一音频帧和第二音频帧相比较。第一音频帧和第二音频帧可以是相分离的流中对应相同时间段的音频帧(例如,低比特率流和高比特率流)。基于帧的差异(例如,帧的大小),音频分层系统可以识别一个音频帧作为基层的音频帧(例如,较小的音频帧),识别另一个音频帧作为第一增强层的音频帧(例如,较大的音频帧)。然后,音频分层系统可以将两个音频帧相比较以识别相似性。例如,基层音频帧和第一增强层音频帧可以共享比特序列或字节序列。在这种情形中,可以用对基层音频帧的引用和相同序列在基层增强层中所在的位置来替换或者替代第一增强层音频帧中的序列。基层音频帧和第一增强层音频帧可以共享多个连续和非连续的序列,并且可以用合适的引用来替换或替代第一增强层音频帧中的每一个相同序列。为简洁起见,本公开下文中都使用术语“替换”。然而,在一些实施例中,替换可以理解为替代的含义。
类似地,可以将对应于第二增强层的第三音频帧与基层音频帧和第一增强层音频帧相比较。如上所述,可以用引用来替换第二增强层音频帧中与基层音频帧中序列相似的序列。可以用对第一增强层音频帧的引用来替换第二增强层音频帧中与第一增强层音频帧中序列相似或相同的序列。这里描述的处理可以用于每个附加增强层中的音频帧。
音频分层系统还可以生成插在增强层音频帧之中的散列(例如校验和、循环冗余校验(CRC)、MD5、SHA-1等)。可以使用任何公开可用或专用计算算法来生成散列,例如,基于增强层音频帧的数据部分中的比特或字节或者父音频帧(例如,第一增强层的父层是基层,第二增强层的父层是第一增强层等)的数据部分中的比特或字节。例如,可以基于父音频帧的某个定义数据部分(例如,父音频帧的第一部分和最后部分)和增强层音频帧的某个定义数据部分(例如,增强层音频帧的第一部分和最后部分)来生成散列。散列可用于校验获取的内容,下文将详细描述。
在一个实施例中,当本地计算设备获取基层和一个或多个增强层时,对散列进行校验以确保或尝试确保数据的有效性。可以将目标音频帧中的散列与目标音频帧中的比特或字节以及父层音频帧中的比特或字节相比较。如果散列与相比较的比特或字节相关联(例如匹配),则本地计算设备可以基于目标音频帧来重建数据流。如果散列与相比较的比特或字节不关联,则本地计算设备无法基于目标音频帧来重建数据流。相反,如果散列可确认有效,则本地计算设备可以基于下一个最高增强层中的音频帧(或者基层音频帧)来重建数据流。如果散列不能确认有效,则本地计算设备可以与下一个最低增强层音频帧进行相同处理,直到散列可以确认有效(如果能够)。因此,在一个实施例中,即使一个或多个增强层请求中的数据损坏,本地计算设备也能够提供连续、不中断的内容回放。
本地计算设备可以基于插入的引用,将接收的基层和/或增强层重建为单个数据流或音频文件。本地计算设备可以对所获取的数据确认有效的最高增强层(例如,没有子层的增强层可以被认为是最高增强层,以及以基层作为父层的增强层可以被认为是最低增强层)(如果增强层中的数据不能确认有效,则为基层)中的音频帧进行处理,并且基于该层中的音频帧来构建流或音频文件。例如,本地计算设备可以基于最高增强层音频帧来创建目标音频帧(例如,存储在缓存中或直接发送给解码器)。最高增强层音频帧可以包括一个或多个引用和数据部分。引用可以起到命令的作用,使得当引用被识别时,本地计算设备可以执行该引用以获取当前音频帧或父音频帧中的引用内容。本地计算设备可以执行一个或多个引用并将获取的内容存储在存储目标音频帧的缓存中(或者,本地计算设备可以直接向解码器发送引用比特)。本地计算设备可以按照从音频帧的首部到音频帧的尾部的顺序来执行引用。该处理可以持续,直到最高增强层音频帧全部被处理。在这种方式中,除非散列校验失败,较低增强层音频帧不能被分析,如下文所述。
示例性音频分层系统的概览
图1以概览方式示出了音频分层环境100的实施例。音频分层环境100可以实现到端用户的分层音频数据的流传输。端用户操作的设备可以将分层音频数据重建为单个音频数据流,即使网络环境中存在波动,该音频数据流也能够不中断地播放。
示出的面向对象音频环境的各组件可以用计算机硬件和/或软件来实现。在所示的实施例中,音频分层环境100包括客户端110、实现在内容服务器120中(用于说明目的)的内容传输模块122,以及音频层创建系统130。音频分层环境100可以可选地包括边缘服务器125和缓存128。通过概览方式,音频层创建系统130可以为内容创建用户(未示出)提供创建分层音频数据的功能。内容传输模块122(如图所示,可选地安装在内容服务器120上)可用于在网络115上向客户端设备110和/或边缘服务器125流传输分层音频数据。网络115可以包括局域网(LAN)、广域网(WLAN)、互联网、或者它们的组合。边缘服务器125还可以用于在网络115上向客户端设备110流传输分层音频数据。当数据被首次请求时,边缘服务器125可以将分层音频数据存储在缓存128中,使得当相同数据再次被请求时,从缓存128而不是内容服务器120来获取数据。客户端设备110可以是端用户系统,所述端用户系统将分层音频数据重建为单个音频数据流并呈现该音频数据,以便向一个或多个扬声器(未示出)输出。例如,客户端设备110可以是任何形式的电子音频设备或计算设备。例如,客户端设备110可以是桌面计算机、膝上型笔记本、平板、个人数字助理(PDA)、电视、无线手持设备(例如智能手机)、声棒、机顶盒、音频/视频(AV)接收器、家庭影院系统组件、及其组合等。虽然图1中示出了一个客户端设备110,但这不表示限制。音频分层环境100可以包括任何数量的客户端设备110。
在示出的实施例中,音频层创建系统130包括音频帧比较器132和层生成器134。音频帧比较器132和层生成器134可以提供基于一个或多个音频流来生成分层音频数据的工具。音频流可以存储在音频数据仓库150(包括数据库、文件系统或者数据存储)中并从中获取。可以使用任何类型的音频(例如,与电影、电视、电影预告片、音乐、音乐视频、其他在线视频、视频游戏、广告等相关联的音频)来生成分层音频数据。在一些实施例中,在音频帧比较器132和层生成器134操作音频流之前,音频流被编码(例如,通过音频层创建系统130中的编码器)为未压缩LPCM(线性脉冲码调制)音频以及相关联的属性元数据。在其他实施例中,在音频帧比较器132和层生成器134操作音频流之前,已经对音频流应用压缩(例如,通过音频层创建系统130中的编码器,未示出)。压缩可以采用无损形式,或者采用有损音频比特率降低形式,尝试以降低比特率提供与压缩前实质相同的可听到结果。
音频帧比较器132可以提供用户界面,该用户界面使内容创建者用户能够访问、编辑或以其他方式来操作一个或多个音频文件,以将一个或多个音频文件转换为一个或多个分层音频文件。音频帧比较器132还可以在不需要用户交互的情况下,程序化地根据一个或多个音频文件生成一个或多个分层音频文件。每个音频文件可以由音频帧组成,每个音频帧可以包括多个音频块。音频帧比较器132可以对增强层音频帧进行修改,使其包括用于在稍后促进将层组合为单个音频流的命令,下文将详细描述(参见例如图3)。
层生成器134可以编译与特定层相对应的音频帧,以生成适合在网络上传输的音频基层和一个或多个音频增强层。层生成器134可以将生成的分层音频数据存储在音频数据仓库150中,或者立即向内容服务器120发送生成的分层音频数据。
音频层创建系统130可以在网络(未示出)上向内容服务器120提供生成的分层音频文件。内容服务器120可以容宿生成的分层音频文件,以用于后续传输。内容服务器120可以包括一个或多个机器,例如物理计算设备。内容服务器120可被客户端设备110在网络115上访问。例如,内容服务器120可以是网络服务器、应用服务器、云计算资源(例如物理或虚拟服务器)等。内容服务器120可以实现为可地理分布或并置的多个计算设备,每个计算设备都包括分层音频文件的副本。
内容服务器120还可以向边缘服务器125提供生成的分层音频文件。边缘服务器125可以在网络115上向客户端设备110发送生成的分层音频文件,和/或可以将生成的分层音频文件存储在可包括数据库、文件系统或其他数据存储的缓存128中,以用于后续传输。边缘服务器125可以是网络服务器、应用服务器、云计算资源(例如物理或虚拟服务器)等。边缘服务器125可以实现为可地理分布或并置的多个计算设备,每个计算设备都包括分层音频文件的副本。
客户端设备110可以访问内容服务器120以请求音频内容。响应于接收该请求,内容服务器120可以向客户端设备110流传输、下载或者以其他方式发送一个或多个分层音频文件。内容服务器120可以使用合适的应用层协议(例如超文本传输协议HTTP)向客户端设备110提供每个分层音频文件。内容服务器120还可以向客户端设备110提供分层音频文件,可以使用任何合适的传输协议(例如传输控制协议(TCP)或用户数据报文协议(UDP))来发送分层音频文件。
在示出的实施例中,客户端设备110包括内容接收模块111、层构建器112、音频播放器113。内容接收模块111可以在网络115上从内容服务器120和/或边缘服务器125接收生成的分层音频文件。层构建器112可以将生成的分层音频文件编译为音频流。例如,层构建器112执行分层音频文件所含的命令,以根据流传输的分层音频文件来构建单个音频流,下文将详细描述。音频播放器113可以解码和回放音频流。
客户端设备110可以监控可用网络115资源,例如网络带宽、延时等。基于可用网络115资源,客户端设备110可以确定请求哪个音频层(如存在)用于从内容服务器120中的内容传输模块122进行流传输或下载。例如,当网络资源变得更多可用时,客户端设备110可以请求附加的增强层。类似地,当网络资源变得更少可用时,客户端设备110可以请求较少的增强层。在一个实施例中,这种监控活动可以使内容服务器120从监控可用网络115资源中解脱出来。因此,内容服务器120可以用作被动式网络存储设备。在其他实施例中,内容服务器120监控可用网络带宽并相应地适配分层音频文件的传输。在其他实施例中,客户端设备110或者内容服务器120都不监控网络带宽。相反,内容服务器120为客户端设备110提供下载或流传输不同比特率版本的音频文件的选项,并且客户端设备110的用户可以选择用于流传输的合适版本。选择较高比特率版本的音频文件可能导致内容服务器120向客户端设备110流传输或下载更多的增强层。
虽然未示出,但是音频帧比较器132和/或层生成器134可从音频层创建系统130移动到内容服务器120中。在该实施例中,音频层创建系统130可以向内容服务器120上传音频流或个别音频帧。因此,在一些实施例中,可以在内容服务器120上执行分层音频文件的生成。附加地或备选地,层构建器112可以从客户端设备110移动到内容服务器120中。在对来自客户端设备110的请求实时响应时,内容服务器120可以应用层构建并向客户端设备110发送完整的、可解码音频帧。这么做是有益的,在高效存储分层内容的同时,仍然能够通过传统流传输或者可能不支持多层依赖性的下载协议来进行发送。
为方便说明,本说明书主要在通过网络进行流传输或下载音频的环境中描述音频分层技术。然而,音频分层技术还可以在非网络环境中实现。例如,分层音频数据可以存储在计算机可读存储介质上,例如DVD盘、蓝光盘、硬盘驱动等。媒体播放器(例如蓝光播放器)可以将存储的分层音频数据重建为单个音频流,对音频流进行解码,并回放已解码的音频流。例如,增强层可以包括优质内容或附加特征(例如,导演评论、无损音频等)。如果提供支付、输入密码等,这可以解密或解锁增强层(因此可以包括在音频流中)。
此外,可以组合、修改或省略参照图1描述的某些组件的功能。例如,在一个实现中,音频层创建系统130可以实现在内容服务器120上。可以直接从音频层创建系统130向客户端设备110流传输音频流。许多其他配置也可以。
示例性音频层和工作流
图2A示出了基层段和增强层段的示例性框图。如图2A所示,基层段210和增强层段220A-N每一个都可以包括n个音频块,其中n是整数。在实施例中,音频块可以是ISO/IEC14496第12部定义的音频采样或音频帧。每个块可以包括多个音频帧和首部信息。下文参考图4详细描述了示例性块。
继续参考图2A,基层段210中的块0可以对应于增强层段220A-N中的块0,并且类似地,每一个其他块都可以相互对应。基层段210和增强层段220A-N中的边界可以对齐。例如,可以根据客户端设备上的相同时钟信号来处理基层段210和增强层段220A-N。
在一个实施例中,基层段210中的块0包括可用于播放基本音轨的数据。增强层段220A中的块0可以包括在与基层段210中的块0组合时、构成具有比基本音轨更高性能的音轨的数据。类似地,增强层段220B中的块0可以包括在与基层段210中的块0和增强层段220A中的块0组合时、构成具有比基本音轨和基于基层段210和增强层段220A的音轨更高性能的音轨的数据。
图2B示出了基层段和备选增强层段的示例性框图。如图2B所示,基层段210和增强层段220A-1、220B-1、220A-2、220B-2、220C-2-1至220N-2-1、以及220C-2-2至220N-2-2均可以包括n个音频块,其中n是整数。这些块可以与上文参考图2A描述的块相似。
继续参考图2B,增强层段220A-1和220A-2可以是备选增强层段。例如,增强层段220A-1可以包括增强基层段210中块的内容的块。类似地,增强层段220A-2可以包括增强基层段210中块的内容的块。然而,增强层段220A-1和增强层段220A-2不能同时用于增强基层段210中块的内容。例如,增强层段210可以包括与体育比赛的场地声音相关联的音频。增强层段220A-1可以包括与主队播音员相关联的音频,并且增强层段220A-2可以包括与客队播音员相关联的音频。
增强层段220B-1可以包括对增强层段220A-1的音频进行增强的音频。类似地,增强层段220B-2可以包括对增强层段220A-2的音频进行增强的音频。如果选择增强层段220A-2,则不可以使用增强层段220B-1。类似地,如果选择增强层段220A-1,则不可以使用增强层段220B-2。
任何增强层段还可以与备选增强层段相关联。例如,增强层段220B-2可以与增强层段220C-2-1和作为备选增强层段的增强层段220C-2-2相关联。
图3示出了图1的音频分层环境100的示例性工作流300的框图。如图3所示,可以向编码器320发送一个或多个音频资源文件310。编码器320可以与发明人为Beaton等、题为“Modular Scalable Compressed Audio Data Stream”的美国专利No.7,333,929中描述的可缩放编码器相似,该专利通过引用方式整体并入本文。虽然图3示出了单个编码器320,但其不意味着限制。示例性工作流300可以包括多个编码器320。例如,如果一个或多个音频资源文件310包括多个增强层(从属层或备选层),则每个编码器320可被指派给不同层,以维持基层和多个增强层之间的时间对齐。然而,负责处理所有层的单个编码器320也能够维持时间对齐。
在一个实施例中,流解构器330从一个或多个编码器320接收一个或多个编码音频源文件310,并且生成基层340、增强层345A、以及增强层345B。示出两个增强层用于说明目的,但是在其他实施例中可以生成更多或更少的增强层。编码器320和/或流解构器330可以表示图1的音频层创建系统130提供的功能(例如,音频帧比较器132和层生成器134)。流解构器330可以基于编码音频源文件310和/或从内容创建用户接收的作者指令(例如,识别每个增强层中承载了什么增强,比如,目标流比特率、声道数量、备选层的类型等)332来生成层。
流解构器330(例如,音频帧比较器132和层生成器134)可以基于对来自编码音频源文件310的个别音频帧的比较来生成基层340和增强层345A-B。流解构器330首先比较第一音频帧和第二音频帧,其中这两个音频帧对应于相同时间帧。基于帧间差异(例如,差异可以包括帧的大小、帧中存在的声道数量等),流解构器330可以将一个音频帧识别为基层340中的音频帧,将另一个音频帧识别为增强层345A中的音频帧。例如,因为增强层音频帧对基层音频帧进行增强,所以流解构器330可以将较大的音频帧识别为增强层345A中的音频帧。
然后,流解构器330可以将这两个音频帧相比较以识别相似性。例如,基层340音频帧和增强层345A音频帧可以共享比特或字节序列。音频帧可以包括数据部分和非数据部分(例如,首部),并且共享序列可以存在于音频帧的数据部分或非数据部分。这样的话,可以用命令将增强层345A中的序列替换。该命令可以是对基层340音频帧的引用,并且指示相同序列在基层340中的位置。该命令可以由客户端设备110在重建音频流时执行。例如,音频帧中的命令可以编译为与命令所引用的音频帧相分离的表格。当命令被执行时,可以用被引用位置处的数据来替换命令。以下参考图4详细描述示例性命令。基层340音频帧和增强层345A音频帧可以共享多个连续和非连续序列,并且可以用合适的命令来替换增强层345A音频帧中的每个相同序列。
类似地,流解构器330可以将与增强层345B相对应的第三音频帧与基层340音频帧和增强层345A音频帧相比较。如上文所述,可以用引用基层340音频帧的命令来替换增强层345B音频帧中与基层340中的序列相关(或相匹配)的序列。可以用引用增强层345A音频帧的命令来替换增强层345B音频帧中与增强层345A中的序列相关的序列。如果生成多于两个的增强层,则可以对每个附加增强层中的音频帧执行在此描述的处理。
基层340、增强层345A以及增强层345B可被封装(例如复用),使得每个层都对应于音轨文件350。例如,可以在网络上向客户端应用360提供音轨文件350。将层的封装版本存储在分离的文件中是有帮助的,可以使内容服务器120(参见图1)只需要存储和提供文件,而不必包括在流传输前对层进行组装的智能。然而,在另一个实施例中,内容服务器120在流传输前执行该组装。备选地,基层340、增强层345A、以及增强层345B可被封装,使得这些层对应于单个音轨文件350。
客户端应用360可以包括基于各音轨文件350生成音频流的层构建器,例如,图1的层构建器112。客户端应用360可以根据执行层中的块的命令序列来呈现音频流的音频帧。可以向解码器370发送被呈现的音频帧,从而可以解码音频帧。客户端应用360和/或解码器370可以表示图1的客户端设备110提供的功能。
示例性音频层层级结构和比特率
如上所述,基层和增强层可以具有在创建时建立的层级结构。因此,第一增强层可以是基层的子层,第二增强层可以是第一增强层的子层,诸如此类。
如上所述,增强层可以增加分辨率细节、声道、更高音频采样频率等,以提高基层。例如,以下表1示出了用于各声道计数(channel count)的示例性层比特率(单位:Kbps)。
声道计数 | 基层比特率 | 增强层#1比特率 | 增强层#2比特率 | 增强层#3比特率 |
2.x | 128 | 160 | ||
2.x | 160 | 255 | ||
2.x | 128 | 160 | 255 |
5.x | 192 | 384 | ||
5.x | 192 | 255 | 510 | |
5.x | 192 | 255 | 384 | 510 |
7.x | 447 | 768 | ||
7.x | 447 | 639 | ||
7.x | 447 | 510 | 639 | 768 |
表1
其中x可以是用于表示低音炮或低频效声道(LFE)是否存在的0或1。表1中每一行示出了包括基层比特率和一个或多个增强层比特率的分层音频的独立示例。
在一个实施例中,客户端设备接收的最高等级层(该层和所有较低层都通过了散列校验)可以用作由客户端设备呈现的执行层。如果该层的散列校验失败,则对次最高层测试散列校验,如果该层和所有较低层的校验通过,则该层可以是执行层,诸如此类。以下将详细描述散列校验。执行层可以使用来自父层的数据。
示例性增强层音频块
图4示出了示例性增强层音频块400。在一个实施例中,增强层音频块400通过图1的音频层创建系统130来生成。如图4所示,增强层音频块400包括首部410、块特定命令420A-N,以及数据字段450。如上所述,数字字段450可以包括单个音频帧或多个音频帧。首部410可以包括同步字(syncword)411、CRC 412、保留字段414、以及计数416。同步字411可以是编码在层的层级结构中、识别增强层音频块和哪个增强层音频块是其一部分的同步字。例如,同步字411可以识别增强层(例如,第一增强层、第二增强层等)。
在一个实施例中,CRC 412可以基于增强层音频块400中的数据和父层中音频块的数据来计算(例如,父层中和增强层音频块400对应于相同时间帧的音频块)。在一个实施例中,CRC 412基于增强层音频块400中的字节和父音频块中的字节。
CRC 412可用于验证增强层音频块400的完整性和/或验证增强层音频块400确实是与父层紧邻的子层中的音频块。在一个实施例中,客户端设备110使用CRC 412来执行这一验证。例如,当接收分层音频数据时,客户端设备110可以从执行层中的音频块提取散列。然后,客户端设备110可以基于该音频块和执行层的父层中的音频块中的数据来生成测试散列。如果提取的散列和测试散列相匹配,则该音频块验证通过并将进行回放。如果提取的散列和测试散列不匹配,则该音频块验证不通过并且不进行音频块的回放。在该情形中,客户端设备110可以前进到父层,并将父层设置为执行层。可以在新的执行层中重复相同的散列验证处理。客户端设备110可以继续更新执行层,直到散列可以验证通过。
然而,虽然执行层可以针对一个音频块而改变,但是执行层可以针对每个新的音频块而重置。虽然第一执行层中第一音频帧的散列可能没有验证通过,但是第一执行层中第二音频帧的散列可能验证通过。因此,客户端设备110可能先播放高性能音轨,然后开始播放较低性能的音轨(例如,基本音轨),然后再一次地播放高性能音轨。客户端设备110可以无缝地从高性能音轨切换到较低性能音轨,再切换到高性能音轨。因此,客户端设备110可以提供连续、不中断的内容回放(但为可变的性能等级)。
在一个实施例中,保留字段414包括为将来用途预留的比特。计数416可以指示在首部410之后的命令的数量。
命令420A-N可以是一系列内存复制操作(例如,使用示例性C编程语言实现中的“memcpy”函数)。当被客户端设备110执行时,内存复制操作可以基于数据450来重建有效音频帧。命令420A-N可以组织为使音频帧的重建按照第一个字节到最后一个字节的顺序来进行。如上所述,命令420A-N可以是引用或指针。命令420A-N可以涉及一个或多个父层和/或当前层的音频块中存在的数据。
例如,命令420A可以包括保留字段421、源字段422、大小字段424、以及源偏移字段426。命令420B-N也可以包括相似的字段。保留字段421可以包括保留用于后续使用的一个比特的字段。源字段422可以是指示被复制数据的层的索引。例如,源字段422可以指示要从父层、祖父层、基层等复制的数据。源字段422的值可以与层级结构中的层的相对位置相对应(例如基层可以是0,第一增强层可以是1等)。因此,当客户端设备110执行命令420A时,该命令可以指示将被复制到重建的音频帧中的数据的位置。
大小字段424可以指示从源字段所指示的层中的音频块复制的字节的数量。源偏移字段426可以是指向数据可被复制的音频块的第一个字节的偏移指针。
在一个实施例中,数据字段450包括连续块中的字节。数据字段450中的数据可以是基于父层中音频帧的音轨和在基于父层中音频帧的音轨上更高性能版本的音轨(例如,数据字段450中的数据是将父层音频块中的数据递增增强的数据)之间差异的数据。
在一些实施例中,当前音频块中的初始数据和父层音频块中的数据相同。之后,当前音频块可以包括父层音频块中不存在的附加数据。因此,可以用对父层音频帧的一个或多个引用来替换当前音频块中的初始数据。相应地,如图所示,命令420A-N可以位于首部410之后,并在数据字段450之前。然而,在其他实施例中,当前音频块中的初始数据和父层音频块中的数据不同。因此,命令420A-N可以不连续(未示出)。相反,命令420A-N可以在首部410之后,但插在数据块之间。
示例性音频块元数据结构
图5示出了分层音轨文件502、504和506的示例性元数据结构500。音轨文件502表示诸如ISO/IEC 14496第12部分定义的包括基层的示例性音轨文件,音轨文件504表示包括第一增强层的示例性音轨文件,并且音轨文件506表示包括第二增强层的示例性音轨文件。
在一个实施例中,音轨文件502包括音轨510和数据518。音轨510包括识别音轨(例如层)的首部512。音轨文件504也包括音轨520,音轨520包括识别音轨文件504的音轨的首部522。音轨520还包括音轨引用524,音轨引用524包括引用类型526。引用类型526可以包括音轨520所依赖的音轨列表(例如,在该情形中为基层)。数据528可以包括与音轨文件502相对应的层的音频块。类似地,音轨文件506包括数据538和音轨530,音轨530包括识别音轨文件506的音轨的首部532。引用类型536可以包括音轨530所依赖的音轨列表(例如,在该情形中为基层和第一增强层)。
示例性音频层编码处理
图6A-E示出了音频层编码处理600。编码处理600可以由本文描述的任何系统实现。如图6A所示,音频帧610可以具有510Kbps的比特率。音频帧610可以是存储在音频数据仓库150中的音频文件的一部分(例如,音频源文件310之一)。音频帧610可以通过流解构器330传递,在该示例中,流解构器330可以生成四个不同的音频帧,每个音频帧用于不同的音频层。例如,流解构器330可以生成具有192kbps比特率且与基层650相关联的音频帧620,如图6B所示。流解构器330可以生成当与来自音频帧620的数据组合时具有255kpbs比特率且与第一增强层660相关联的音频帧630,如图6C所示。流解构器330还可以生成当与来自音频帧620和音频帧630的数据组合时具有384kpbs比特率且与第二增强层670相关联的音频帧640,如图6D所示。流解构器330还可以生成当与来自音频帧620、630、640的数据组合时具有510kpbs比特率且与第三增强层680相关联的音频帧645,如图6E所示。虽然图6A示出了单个音频帧610,但这不意味着限制。可以向流解构器330提供多个输入音频帧。此外,虽然图6A-E示出了音频帧610被分离为三个不同的音频帧620、630和640,但这不意味着限制。流解构器330可以生成任何数量的音频帧和任何数量的音频层。
如图6C的概念性所示,可以通过使用基层650音频帧和音频帧630之间的数据差异来产生第一增强层660。任何数据相似性都可以用涉及基层650音频帧的命令来替换。可以将数据差异和命令编码,以产生第一增强层660音频帧。
如图6D的概念性所示,可以通过使用基层650音频帧、第一增强层660音频帧、以及音频帧640之间的数据差异来产生第二增强层670。任何数据相似性都可以用涉及基层650音频帧和/或第一增强层660音频帧的命令来替换。可以将数据差异和命令编码,以产生第二增强层670音频帧。
如图6E的概念性所示,可以通过使用基层650音频帧、第一增强层660音频帧、第二增强层670音频帧、以及音频帧640之间的数据差异来产生第三增强层680。任何数据相似性都可以用涉及基层650音频帧、第一增强层660音频帧、和/或第二增强层670音频帧的命令来替换。可以将数据差异和命令编码,以产生第三增强层680音频帧。
用命令替换数据的示例
图7A-C示出了用帧中的命令替换共同数据的示例性场景。如图7A所示,基层710包括三个字节711-713,第一增强层720包括五个字节721-725,且第二增强层730包括七个字节731-737。所示出的字节的数量仅用于说明目的,并且实际帧中的字节的数量可以不同。
基层710中的三个字节711-713等同于第一增强层720中的前三个字节721-723。因此,可以用引用字节711-713的命令替换第一增强层720中的字节721-723,如图7B所示。备选地,可以用引用基层710中的合适字节711、712或713的命令替换每个字节721、722和723(未示出)。
基层710中的三个字节711-713等同于第二增强层730中的前三个字节731-733。第一增强层720中的最后两个字节724-725等同于第二增强层730中的字节734-735。因此,可以用引用字节711-713的命令替换第二增强层730中的字节731-733,并且可以用引用字节724-725的命令替换第二增强层730中的字节734-735,如图7C所示。备选地,可以用引用基层710中的合适字节711、712或713的命令替换每个字节731、732和733,并且可以用引用第一增强层720中的合适字节724或725的命令替换每个字节734和735。
如本文所述,音频帧比较器132可以比较音频帧中的比特或字节。为实现数据压缩的益处,无论数据位于子层或父层中何处(例如,音频帧比较器132可能发现子层音频帧的数据部分中的数据与父层音频帧的首部部分中的数据相同),音频帧比较器132都可以用子层中的命令替换相同数据。例如,第二增强层730中的字节736-737可以表示第一增强层720和第二增强层730之间的差异。一般地,字节736-737可以不在父层中。然而,字节737恰好与基层710中的字节712相同。因此,音频帧比较器132可以用引用字节712的命令替换字节737中的数据。
在一些实施例中,命令和被替换的数据大小不同。因此,例如,在插入命令来替换数据后,字节721可能不是字节长度。图7A-C是示出该处理的简化图。一般地,子层音频帧和父层增强层之间可存在几百或几千的共同字节。但是,命令可能只有几个字节(例如,四个字节),如图4所示。因此,无论哪些数据相同,插入命令都可以实现向客户端设备110流传输或存储在计算机可读存储介质上的数据量的显著降低。因此,本文描述的系统或处理可以通过创建层来提供某种音频数据压缩。
示例性音频层重建处理
图8A-B示出了示例性音频层重建处理800。处理800可以由本文描述的任何系统实现。如图8A所示,可以没有对任何其他音频层的引用的情况下重建基层650音频帧(并且在一个实施例中,不需要重建)。示例性基层650音频帧可以与比特率为192kbps的音频帧620相对应。
如图8B所示,比特率为384kbps的音频帧640可基于基层650音频帧、第一增强层660音频帧、以及第二增强层670音频帧来构建。如上所述,只要客户端设备中的第二增强层670、第一增强层660以及基层650的散列校验通过,第二增强层670就可以是执行层。第二增强层670音频帧可以包括涉及第二增强层670音频帧、第一增强层660音频帧以及基层650音频帧中的数据的命令。命令的执行可以产生音频帧640。可以针对任何其他(或任何未示出)增强层按照层级结构继续进行相似的处理,以产生任何需要的输出帧或流。
附加实施例
在其他实施例中,基层不是常规且完全可播放的音轨。例如,有两个版本的音轨可用:5.1声道音轨和7.1声道音轨。每个音轨可以共享一些数据(例如,与前声道相关联的音频,与低音炮相关联的音频等);但是,这些数据单独可能不是完全可播放的音轨。尽管如此,为实现本文所述的效率,这些共享数据可以包括在基层中。第一增强层可以包括当与基层中的数据组合时包括完全可播放5.1声道音轨的剩余数据。
第一备选增强层可以包括当与基层中的数据组合时包括完全可播放7.1声道音轨的剩余数据。具有第一增强层和第一备选增强层而不是只有包括7.1声道信息的一个增强层,在需要5.1声道信息的情形中可能更为高效。只有一个增强层时,客户端设备110可能获取在重建音频层时要被丢弃的多余数据(例如,第六和第七声道数据)。然而,当具有两个增强层时,客户端设备110可以只获取所需要的数据。
如上所述,可以将分层音频数据存储在非瞬态计算机可读存储介质中,例如光盘(如DVD或蓝光)、硬盘驱动、USB键等。此外,可以将一个或多个音频层加密。在一些实施例中,可以使用散列函数对加密的音频层进行加密。
附加示例性处理
图9示出了用于生成分层音频的示例性处理900。在一个实施例中,处理900可以由本文描述的任何系统(包括上文参考图1讨论的音频层创建系统130)来执行。根据实施例,处理900可以包括更少和/或更多的框,或者可以以与所示不同的顺序来执行框。
在框902中,访问第一音频帧和第二音频帧。在一个实施例中,从音频数据仓库150中访问音频帧。第一音频帧可以与基层音频帧相对应,并且第二音频帧可以与增强层音频帧相对应。第一音频帧和第二音频帧可以对应于相同的时间段。
在框904中,将第一音频帧和第二音频帧相比较。在一个实施例中,将第一音频帧和第二音频帧的字节相比较。
在框906中,识别第一音频帧的第一部分和第二音频帧的第二部分之间的相似性。在一个实施例中,第一部分和第二部分包括相同的比特序列或字节序列。在一些实施例中,第一部分和第二部分都位于各音频帧中的相应位置(例如,音频帧的数据部分的开始)。在其他实施例中,第一部分和第二部分位于各音频帧的不同位置(例如,第一部分在数据部分的开始并且第二部分在数据部分的结尾,第一部分在首部中并且第二部分在数据部分中,等等)。
在框908中,用对与第一部分相对应的第一音频帧中的位置的引用来替换第二部分,以创建修改的第二音频帧。在一个实施例中,引用包括在可被客户端设备(例如客户端设备110)执行、用于从分层音频数据重建音频流的命令中。
在框910中,基于第一音频帧生成第一音频层。在一个实施例中,第一音频层包括多个音频帧。
在框912中,基于第二音频帧生成第二音频层。在一个实施例中,第二音频层包括多个音频帧。
在一些实施例中,使第一音频层和第二音频层能够在网络上向客户端设备传输。在网络上传输第一音频层可能需要第一带宽量,并且在网络上传输第一音频层和第二音频层可能需要比第一带宽量更大的第二带宽量。如果第二带宽量对客户端设备可用,则可以使客户端设备能够一并接收和输出第一音频层和第二音频层。如果只有第一带宽量对客户端设备可用,则也可以使客户端设备能够接收和输出第一音频层。
在其他实施例中,可以将第一音频层和第二音频层存储在计算机可读存储介质中(例如,光盘、闪存驱动、硬盘驱动等)。可以经由计算机可读存储介质向客户端设备传输音频层。
图10示出了用于重建音频流的示例性处理1000。在一个实施例中,处理1000可以由本文描述的任何系统(包括上文参考图1讨论的客户端设备110)来执行。根据实施例,处理900可以包括更少和/或更多的框,并且可以以与所示不同的顺序来执行框。例如,处理1000可以不包括与下文描述的散列校验相关的框1004、1006和/或1008。
在框1002中,访问第一音频层和第二音频层。在一个实施例中,在网络上从内容服务器(例如内容服务器120)流传输或下载第一音频层和第二音频层。在另一个实施例中,从存储第一音频层和第二音频层的计算机可读存储介质访问第一音频层和第二音频层。
在框1004中,将第二音频层中第一音频帧的散列与第一音频层中第二音频帧的部分和第一音频帧的部分相比较。在一个实施例中,第二音频帧的部分包括第二音频帧中的字节。在另一个实施例中,第一音频帧的部分包括第一音频帧中的字节。
在框1006中,处理1000基于该比较,确定在散列与第一音频帧及第二音频帧的部分之间是否存在匹配。如果存在匹配,则处理1000前进到框1010.如果不存在匹配,则处理1000前进到框1008。
在框1008,向解码器输出第一音频层。在一个实施例中,如果不存在匹配,则第二音频层中的音频帧不能验证通过。因此,替代地,向解码器输出较低质量的音频帧。
在框1010中,识别第一音频帧中的引用。在一个实施例中,该引用包括在命令中。命令可以引用父层音频帧中的位置。
在框1012中,用与引用指示的位置相对应的第二音频帧中的第二部分替换引用。在一个实施例中,引用指示的位置包括父层的标识、要复制的字节的数量、以及音频帧内开始复制的偏移。在另一个实施例中,针对每个识别的引用,重复框1010和1012。可以将所引用位置中的数据存储在缓存中或者直接向解码器发送。对于第一音频帧中不是引用的数据,也将这些数据缓存或者直接向解码器发送。可以将数据缓存或者直接向解码器发送,从而其出现在第一音频帧中。缓存的数据(或解码器中的数据)可以表示要向扬声器输出的音频流。
在框1014中,向解码器发送第二音频层。在一个实施例中,第二音频层包括其中的引用已被所引用位置处的数据替换的音频帧。解码器可以向扬声器、执行音频分析的组件、执行水印检测的组件、另一个计算设备等输出结果数据。
图11示出了用于重建音频流的另一个示例性处理1100。在一个实施例中,处理1100可以由本文描述的任何系统(包括上文参考图1讨论的客户端设备110)来执行。处理1100示出了客户端设备可以如何确定要解码哪一层音频帧,使得即使一个或多个增强层音频帧中的数据损坏,客户端设备也可以提供连续、不中断的内容回放。根据实施例,处理1100可以包括更少和/或更多的框,并且可以以与所示不同的顺序来执行框。一般地,在某些实施例中,如果较高级的层损坏、丢失数据、或者散列或校验和失败,则客户端设备可以输出较低级的层来替代较高级的层。
在框1102中,访问第一音频层、第二音频层、第三音频层、以及第四音频层。在一个实施例中,在网络上从内容服务器(例如内容服务器120)流传输或下载音频层。在另一个实施例中,从存储音频层的计算机可读存储介质访问音频层。虽然参考四个音频层来描述处理1100,但这不意味着限制。可以用任何数量的音频层来执行处理1100。然后,处理1100前进到框1104。
在框1104中,设置变量N和X。例如,将变量N设置为4,变量X设置为4。变量N可以表示正在处理的当前音频层,并且变量X可以表示可以从中向解码器输出音频帧的音频层。然后,处理1100前进到框1106。
在框1106中,将第N层中音频帧的散列与第N-1音频层中音频帧的部分和第N层中音频帧的部分相比较。在一个实施例中,第N-1音频层音频帧的部分包括第N-1音频层音频帧中的字节。在另一个实施例中,第N音频层音频帧的部分包括第N音频层音频帧中的字节。然后,处理1100前进到框1108。
在框1108中,处理1100基于该比较确定在散列与第N-1音频层音频帧及第N音频层音频帧的部分之间是否存在匹配。如果存在匹配,则处理1100前进到框1116。如果不存在匹配,处理1100前进到框1110。
如果处理前进到框1110,则音频帧中发生错误。与第N及更高的增强层相对应的任何音频帧将不被解码。在框1110中,处理1100确定变量N是否等于2。如果变量N等于2,则不需要对更多的层进行处理并且处理1100前进到框1114。如果变量N不等于2,处理1100前进到框1112。
在框1112中,再次设置变量N和X。例如,将变量N设置为等于N-1,变量N设置为等于N。然后,处理1100回到框1106。
在框1114中,向解码器输出第一音频层。在一个实施例中,如果第一音频层和第二音频层之间不存在匹配(例如,当变量N为2时进行校验),则第二音频层中的音频帧不能验证通过。因此,替代地,向解码器输出最低质量的音频帧(对应于第一音频层)。
如果处理前进到框1116,则在第N音频层中的音频帧中没有发生错误。在框1116中,设置变量X。例如,将变量X设置为等于变量N和变量X中的最大值。然后,处理1100前进到框1118。
在框1118中,处理1100确定变量N是否等于2。如果变量N等于2,则不需要对更多的层进行处理并且处理1100前进到框1122。如果变量N不等于2,处理1100前进到框1120。
在框1120中,再次设置变量N。例如,将变量N设置为等于N-1。然后,处理1100回到框1106。
在框1122中,识别第X音频层中音频帧中的引用。在一个实施例中,引用包括在命令中。命令可以引用父层音频帧中的位置。然后,处理1100前进到框1124。
在框1124中,用与引用所指示的位置相对应的来自另一音频帧的部分替换引用。在一个实施例中,引用所指示的位置包括父层的标识、要复制的字节的数量、以及音频帧内开始复制的偏移。在另一个实施例中,针对每个识别的引用,重复框1122和1124。可以将所引用位置中的数据存储在缓存中或者直接向解码器发送。缓存的数据(或解码器中的数据)可以表示要向扬声器输出的音频流。然后,处理1100前进到框1126。
在框1126中,向解码器输出第X音频层。在一个实施例中,第X音频层包括其中的引用已被所引用位置处的数据替换的音频帧。解码器可以向扬声器、执行音频分析的组件、执行水印检测的组件、另一个计算设备等输出结果数据。
术语
将根据本公开将清楚本文描述以外的许多其它变型。例如,根据实施例,本文所描述的任一算法的特定动作、事件或功能可以以不同的顺序执行,可以一起添加、合并或省去(例如,并非所有描述的动作或事件对于算法的实践而言都是必要的)。此外,在一些实施例中,可以例如通过多线程处理、中断处理或多处理器或处理器核或在其它并行体系结构上并发地执行动作或事件,而非顺序地执行。此外,不同的任务或处理可以由能够一起工作的不同机器和/或计算系统来执行。
可以将结合本文公开的实施例描述的各种说明性逻辑块、模块和算法步骤实现为电子硬件、计算机软件或其结合。为了清楚地说明硬件和软件的可互换性,上文总体上已经从功能方面描述了各种说明性部件、块、模块和步骤。将这些功能实现为硬件还是软件取决于具体应用和施加至整个系统上的设计约束。对于每个具体应用,可以不同的方式实现所描述的功能,但是这种实现决策不应该解释为背离本公开的范围。
结合本文公开的实施例描述的各种说明性逻辑块和模块可以通过如下的机器来实现或执行:设计成执行本文所描述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑电路、分立硬件部件、或其任意组合。通用处理器可以是微处理器,但是备选地,处理器可以是控制器、微控制器或状态机、其组合等。处理器可以包括被配置为处理计算机可读指令的电气电路。在另一个实施例中,处理器包括FPGA或不需要处理计算机可执行指令来执行逻辑操作的其他可编程器件。处理器还可以被实现为计算设备的组合(例如,DSP和微处理器的组合)、多个微处理器、结合DSP核的一个或多个微处理器、或任意其它这种配置。计算环境可以包括任何类型的计算机系统,包括但不限于基于微处理器的计算机系统、主机计算机、数字信号处理器、便携式计算设备、个人组织器、设备控制器和设备内的计算引擎,仅举几个例子。
结合本文公开的实施例来描述的方法、处理或算法的步骤可以在硬件、存储在一个或多个存储设备中并由一个或多个处理器执行的软件模块以及二者的组合中直接实现。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可拆卸盘、CD-ROM或现有技术中已知的任意其它形式的计算机可读存储介质或物理计算机存储器中。示例存储介质可以与处理器耦合,使得处理器可以从存储介质读取信息,以及将信息写入存储介质。备选地,存储介质可以是处理器的组成部分。存储介质可以是易失性或非易失性的。处理器和存储介质可以驻留在ASIC中。
本文使用的条件语言,其中例如“能够”、“可能”、“可以”、“例如”等,除非特别声明或在使用时结合上下文来理解,否则一般旨在表示某些实施例包括而其它实施例没有包括的一些特征、元件和/或状态。因此,这种条件语言一般并非旨在暗示以任意方式需要用于一个或多个实施例,或者暗示在具有或没有作者输入或提示的情况下,一个或多个实施例有必要包括下述逻辑:用于决定这些特征、元件和/或状态是否应该被包括在任意特定实施例中或者在任意特定实施例中被执行。术语“包括”、“包含”、“具有”等是同义的,并且以开放方式包括地使用,并且不排除附加元件、特征、动作、操作等。同义术语“或”使用在其包括意义中(并且不在其排他意义中),使得当例如用于连接元件列表时,术语“或”意味着列表中一个、一些或所有元件。此外,本文中使用的术语“每个”除具有一般含义外,还可以意味着“每个”所应用的元件集合的任何子集。
诸如短语“X、Y和Z中至少一个”的析取用语,除非特有声明,应在所使用的上下文中一般地被理解为表示可以是X、Y或Z中任一项或任一个或其组合。因此,这种连接用语一般不旨在暗示一些实施例要求至少一个X、至少一个Y以及至少一个Z中每个都存在。
除非另有明确声明,冠词“一”、“一个”一般被解释为包括一个或多个描述项目。因此,诸如“被配置为……的设备”旨在包括一个或多个列出的设备。该一个或多个列出的设备也可以一并被配置为执行所声明的陈述。例如,“被配置为执行陈述A、B和C的处理器”可以包括被配置为执行陈述A的第一处理器,该第一处理器与被配置为执行陈述B和C的第二处理器相结合地工作。
尽管以上的详细描述已经示出、描述和指出了所应用到各种实施例的新颖特征,但是应该理解,可以在不背离本公开的精神的情况下,对所示意的设备或算法进行各种形式和细节上的省略、替换和改变。应认识到,由于一些特征可以与其它特定分开使用或实践,因此本文描述的本发明的一些实施例可以实现为不提供本文所述的全部特征和益处的形式。
Claims (15)
1.一种用于生成分层音频的系统,所述系统包括:
包括硬件处理器的音频帧比较器,所述硬件处理器被配置为:
访问第一音频帧和第二音频帧;
将第一音频帧与第二音频帧相比较;
基于该比较,识别第一音频帧的第一部分中的音频数据和第二音频帧的第二部分中的音频数据之间的匹配;以及
用对与第一音频帧的第一部分中的音频数据相对应的第一音频帧中的位置的引用来替换第二音频帧中的第二部分中的音频数据,以创建修改的第二音频帧;以及
层生成器,被配置为基于第一音频帧生成第一音频层并基于修改的第二音频帧生成第二音频层。
2.根据权利要求1所述的系统,还包括被配置为在网络上向客户端设备提供第一音频层和第二音频层的流传输模块。
3.根据权利要求1或2所述的系统,还包括被配置为将第一音频层和第二音频层存储在计算机可读存储介质中的记录模块。
4.根据权利要求1或2所述的系统,其中所述音频帧比较器还被配置为:
识别第一音频帧中的第三部分中的音频数据和第二音频帧中的第四部分中的音频数据之间的第二匹配;以及
用对与第一音频帧中的第三部分中的音频数据相对应的第一音频帧中的第二位置的第二引用来替换第二音频帧中的第四部分中的音频数据。
5.根据权利要求4所述的系统,其中第二音频帧中的第二部分和第二音频帧中的第四部分不连续。
6.根据权利要求5所述的系统,其中所述第二音频帧包括第一音频帧内所不包括的第五部分,并且修改的第二音频帧中的所述引用和所述第二引用被所述第五部分相分隔。
7.根据权利要求1或2所述的系统,其中所述音频帧比较器还被配置为:
识别第一音频帧中的第一部分中的音频数据和第二音频帧中的第三部分中的音频数据之间的第二匹配;以及
用对与第一部分中的音频数据相对应的第一音频帧中的位置的第二引用来替换第二音频帧中的第三部分中的音频数据。
8.根据权利要求1或2所述的系统,其中第一音频层包括核心音频层,并且第二音频层包括对核心音频层进行补充的扩展音频层。
9.根据权利要求8所述的系统,其中扩展音频层包括以下至少一个:对核心音频层的音频声道进行补充的附加音频声道,比核心音频层的比特率更高的比特率,大于核心音频层中的比特个数的比特个数,或者对核心音频层的音频内容进行补充的附加音频内容。
10.根据权利要求1或2所述的系统,所述音频帧比较器还被配置为基于第一音频帧和修改的第二音频帧生成散列值。
11.一种重建音频流的方法,所述方法包括:
在网络上访问服务器,以获取第一音频层和第二音频层;
接收第一音频层和第二音频层,第一和第二音频层中每一个都包括多个音频帧,其中第一音频层包括基层并且第二音频层包括对基层的增强;
识别第二音频层的第一音频帧中的引用,其中所述引用指示第一音频层的第二音频帧中的位置,所述引用是音频数据的替换;
用与所述引用所指示的位置相对应的第一音频层的第二音频帧中的音频数据的第一部分替换第二音频层的第一音频帧中的引用;以及
向解码器或扬声器输出第二音频层,从而替代基层,能够回放对基层的增强。
12.根据权利要求11所述的方法,还包括:
在识别引用前,从第一音频帧中提取散列值;以及
将所述散列值与第一音频帧中的第二部分和第二音频帧中的第三部分相比较。
13.根据权利要求11或12所述的方法,还包括:如果第一音频帧中的第二部分和第二音频帧中的第三部分与所述散列值不匹配,输出第一音频层。
14.根据权利要求11或12所述的方法,其中第一音频帧包括所述引用和不涉及另一个音频帧的数据。
15.根据权利要求14所述的方法,还包括:基于第二音频帧中的第一部分和第一音频帧中不涉及另一个音频帧的数据,生成第三音频帧。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361809251P | 2013-04-05 | 2013-04-05 | |
US61/809,251 | 2013-04-05 | ||
PCT/US2014/033049 WO2014165806A1 (en) | 2013-04-05 | 2014-04-04 | Layered audio coding and transmission |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105264600A CN105264600A (zh) | 2016-01-20 |
CN105264600B true CN105264600B (zh) | 2019-06-07 |
Family
ID=50736177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480032114.2A Active CN105264600B (zh) | 2013-04-05 | 2014-04-04 | 分层音频编码和传输 |
Country Status (4)
Country | Link |
---|---|
US (3) | US9613660B2 (zh) |
EP (1) | EP2981955B1 (zh) |
CN (1) | CN105264600B (zh) |
WO (1) | WO2014165806A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014108738A1 (en) * | 2013-01-08 | 2014-07-17 | Nokia Corporation | Audio signal multi-channel parameter encoder |
US9911423B2 (en) | 2014-01-13 | 2018-03-06 | Nokia Technologies Oy | Multi-channel audio signal classifier |
US9697843B2 (en) * | 2014-04-30 | 2017-07-04 | Qualcomm Incorporated | High band excitation signal generation |
US10140996B2 (en) | 2014-10-10 | 2018-11-27 | Qualcomm Incorporated | Signaling layers for scalable coding of higher order ambisonic audio data |
JP6797197B2 (ja) | 2015-10-08 | 2020-12-09 | ドルビー・インターナショナル・アーベー | 圧縮された音または音場表現のための層構成の符号化 |
MY193124A (en) | 2015-10-08 | 2022-09-26 | Dolby Int Ab | Layered coding for compressed sound or sound field representations |
IL302588A (en) | 2015-10-08 | 2023-07-01 | Dolby Int Ab | Layered coding and data structure for compressed high-order sound or surround sound field representations |
US20190191191A1 (en) * | 2017-12-19 | 2019-06-20 | Western Digital Technologies, Inc. | Hybrid techniques for content distribution with edge devices |
JP7102024B2 (ja) * | 2018-04-10 | 2022-07-19 | ガウディオ・ラボ・インコーポレイテッド | メタデータを利用するオーディオ信号処理装置 |
US10937434B2 (en) * | 2018-05-17 | 2021-03-02 | Mediatek Inc. | Audio output monitoring for failure detection of warning sound playback |
US11523449B2 (en) * | 2018-09-27 | 2022-12-06 | Apple Inc. | Wideband hybrid access for low latency audio |
US11430451B2 (en) * | 2019-09-26 | 2022-08-30 | Apple Inc. | Layered coding of audio with discrete objects |
CN111859088B (zh) * | 2020-07-23 | 2021-12-10 | 积木堂(上海)信息技术有限公司 | 一种基于大数据的用户权限管理系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102239518A (zh) * | 2009-03-27 | 2011-11-09 | 华为技术有限公司 | 编码和解码方法及装置 |
US8321230B2 (en) * | 2006-02-06 | 2012-11-27 | France Telecom | Method and device for the hierarchical coding of a source audio signal and corresponding decoding method and device, programs and signals |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4332979A (en) | 1978-12-19 | 1982-06-01 | Fischer Mark L | Electronic environmental acoustic simulator |
US5592588A (en) | 1994-05-10 | 1997-01-07 | Apple Computer, Inc. | Method and apparatus for object-oriented digital audio signal processing using a chain of sound objects |
IT1281001B1 (it) | 1995-10-27 | 1998-02-11 | Cselt Centro Studi Lab Telecom | Procedimento e apparecchiatura per codificare, manipolare e decodificare segnali audio. |
US6252965B1 (en) | 1996-09-19 | 2001-06-26 | Terry D. Beard | Multichannel spectral mapping audio apparatus and method |
US6160907A (en) | 1997-04-07 | 2000-12-12 | Synapix, Inc. | Iterative three-dimensional process for creating finished media content |
DE69932861T2 (de) | 1999-10-30 | 2007-03-15 | Stmicroelectronics Asia Pacific Pte Ltd. | Verfahren zur kodierung eines audiosignals mit einem qualitätswert für bit-zuordnung |
US6499010B1 (en) * | 2000-01-04 | 2002-12-24 | Agere Systems Inc. | Perceptual audio coder bit allocation scheme providing improved perceptual quality consistency |
US7136810B2 (en) | 2000-05-22 | 2006-11-14 | Texas Instruments Incorporated | Wideband speech coding system and method |
US7330814B2 (en) | 2000-05-22 | 2008-02-12 | Texas Instruments Incorporated | Wideband speech coding with modulated noise highband excitation system and method |
JP2002008115A (ja) | 2000-06-23 | 2002-01-11 | Sony Corp | 情報配信システム、端末装置、サーバ装置、記録媒体、情報配信方法 |
JP2002204437A (ja) | 2000-12-28 | 2002-07-19 | Canon Inc | 通信装置、通信システム、通信方法、及び記憶媒体 |
US6614370B2 (en) | 2001-01-26 | 2003-09-02 | Oded Gottesman | Redundant compression techniques for transmitting data over degraded communication links and/or storing data on media subject to degradation |
US7583805B2 (en) | 2004-02-12 | 2009-09-01 | Agere Systems Inc. | Late reverberation-based synthesis of auditory scenes |
US7006636B2 (en) | 2002-05-24 | 2006-02-28 | Agere Systems Inc. | Coherence-based audio coding and synthesis |
US7116787B2 (en) | 2001-05-04 | 2006-10-03 | Agere Systems Inc. | Perceptual synthesis of auditory scenes |
US7292901B2 (en) | 2002-06-24 | 2007-11-06 | Agere Systems Inc. | Hybrid multi-channel/cue coding/decoding of audio signals |
US7606372B2 (en) | 2003-02-12 | 2009-10-20 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Device and method for determining a reproduction position |
DE10344638A1 (de) | 2003-08-04 | 2005-03-10 | Fraunhofer Ges Forschung | Vorrichtung und Verfahren zum Erzeugen, Speichern oder Bearbeiten einer Audiodarstellung einer Audioszene |
JP2005086537A (ja) | 2003-09-09 | 2005-03-31 | Nippon Hoso Kyokai <Nhk> | 高臨場音場再現情報送信装置、高臨場音場再現情報送信プログラム、高臨場音場再現情報送信方法および高臨場音場再現情報受信装置、高臨場音場再現情報受信プログラム、高臨場音場再現情報受信方法 |
US7394903B2 (en) | 2004-01-20 | 2008-07-01 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Apparatus and method for constructing a multi-channel output signal or for generating a downmix signal |
EP1851656A4 (en) | 2005-02-22 | 2009-09-23 | Verax Technologies Inc | SYSTEM AND METHOD FOR FORMATTING MULTIMODE CONTENT OF SOUNDS AND METADATA |
WO2006107833A1 (en) | 2005-04-01 | 2006-10-12 | Qualcomm Incorporated | Method and apparatus for vector quantizing of a spectral envelope representation |
US7539612B2 (en) | 2005-07-15 | 2009-05-26 | Microsoft Corporation | Coding and decoding scale factor information |
GB0523946D0 (en) | 2005-11-24 | 2006-01-04 | King S College London | Audio signal processing method and system |
EP1974346B1 (en) | 2006-01-19 | 2013-10-02 | LG Electronics, Inc. | Method and apparatus for processing a media signal |
US8626178B2 (en) | 2006-01-31 | 2014-01-07 | Niels Thybo Johansen | Audio-visual system control using a mesh network |
JP4687538B2 (ja) | 2006-04-04 | 2011-05-25 | パナソニック株式会社 | 受信装置、送信装置およびその通信方法 |
EP2369836B1 (en) | 2006-05-19 | 2014-04-23 | Electronics and Telecommunications Research Institute | Object-based 3-dimensional audio service system using preset audio scenes |
US20080005347A1 (en) | 2006-06-29 | 2008-01-03 | Yahoo! Inc. | Messenger system for publishing podcasts |
US8010370B2 (en) | 2006-07-28 | 2011-08-30 | Apple Inc. | Bitrate control for perceptual coding |
US8032371B2 (en) * | 2006-07-28 | 2011-10-04 | Apple Inc. | Determining scale factor values in encoding audio data with AAC |
PL2067138T3 (pl) | 2006-09-18 | 2011-07-29 | Koninl Philips Electronics Nv | Kodowanie i dekodowanie obiektów audio |
JP5238706B2 (ja) | 2006-09-29 | 2013-07-17 | エルジー エレクトロニクス インコーポレイティド | オブジェクトベースオーディオ信号のエンコーディング/デコーディング方法及びその装置 |
MX2009003564A (es) | 2006-10-16 | 2009-05-28 | Fraunhofer Ges Forschung | Aparato y metodo para transformacion de parametro multicanal. |
WO2008084436A1 (en) | 2007-01-10 | 2008-07-17 | Koninklijke Philips Electronics N.V. | An object-oriented audio decoder |
WO2008143561A1 (en) | 2007-05-22 | 2008-11-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and arrangements for group sound telecommunication |
JP5752414B2 (ja) | 2007-06-26 | 2015-07-22 | コーニンクレッカ フィリップス エヌ ヴェ | バイノーラル型オブジェクト指向オーディオデコーダ |
WO2009001292A1 (en) | 2007-06-27 | 2008-12-31 | Koninklijke Philips Electronics N.V. | A method of merging at least two input object-oriented audio parameter streams into an output object-oriented audio parameter stream |
KR101370290B1 (ko) | 2007-07-31 | 2014-03-05 | 삼성전자주식회사 | 복호화 레벨을 구비하는 멀티미디어 데이터의 생성 방법과장치 및 복호화 레벨을 이용한 멀티미디어 데이터의 재구성방법과 장치 |
US9031267B2 (en) | 2007-08-29 | 2015-05-12 | Microsoft Technology Licensing, Llc | Loudspeaker array providing direct and indirect radiation from same set of drivers |
EP2083584B1 (en) | 2008-01-23 | 2010-09-15 | LG Electronics Inc. | A method and an apparatus for processing an audio signal |
US20090238378A1 (en) | 2008-03-18 | 2009-09-24 | Invism, Inc. | Enhanced Immersive Soundscapes Production |
US8351612B2 (en) | 2008-12-02 | 2013-01-08 | Electronics And Telecommunications Research Institute | Apparatus for generating and playing object based audio contents |
US20120095760A1 (en) | 2008-12-19 | 2012-04-19 | Ojala Pasi S | Apparatus, a method and a computer program for coding |
KR101805212B1 (ko) | 2009-08-14 | 2017-12-05 | 디티에스 엘엘씨 | 객체-지향 오디오 스트리밍 시스템 |
US8908874B2 (en) | 2010-09-08 | 2014-12-09 | Dts, Inc. | Spatial audio encoding and reproduction |
US9001728B2 (en) * | 2011-08-05 | 2015-04-07 | Broadcom Corporation | Data transmission across independent streams |
-
2014
- 2014-04-04 CN CN201480032114.2A patent/CN105264600B/zh active Active
- 2014-04-04 EP EP14725302.5A patent/EP2981955B1/en active Active
- 2014-04-04 US US14/245,882 patent/US9613660B2/en active Active
- 2014-04-04 US US14/245,903 patent/US9558785B2/en active Active
- 2014-04-04 WO PCT/US2014/033049 patent/WO2014165806A1/en active Application Filing
-
2017
- 2017-04-03 US US15/477,981 patent/US9837123B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8321230B2 (en) * | 2006-02-06 | 2012-11-27 | France Telecom | Method and device for the hierarchical coding of a source audio signal and corresponding decoding method and device, programs and signals |
CN102239518A (zh) * | 2009-03-27 | 2011-11-09 | 华为技术有限公司 | 编码和解码方法及装置 |
Non-Patent Citations (1)
Title |
---|
An Investigation into Embedded Audio Coding Using An ACC Perceptually Lossless Base Layer;Kevin Adi stambha ET AL;《internet article,2004,XP002728048, Retrieved from the internet: URL: http://www.assta.org/sst/2004/proceedings/papers/sst2004-289.pdf》;20140731;全文 |
Also Published As
Publication number | Publication date |
---|---|
US20170270968A1 (en) | 2017-09-21 |
CN105264600A (zh) | 2016-01-20 |
US9558785B2 (en) | 2017-01-31 |
US20140303762A1 (en) | 2014-10-09 |
EP2981955A1 (en) | 2016-02-10 |
WO2014165806A1 (en) | 2014-10-09 |
US9837123B2 (en) | 2017-12-05 |
US9613660B2 (en) | 2017-04-04 |
US20140303984A1 (en) | 2014-10-09 |
EP2981955B1 (en) | 2023-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105264600B (zh) | 分层音频编码和传输 | |
US20230289329A1 (en) | Low latency and low defect media file transcoding using optimized storage, retrieval, partitioning, and delivery techniques | |
US8566393B2 (en) | Methods and systems for scalable video chunking | |
AU2015259417B2 (en) | Distributed secure data storage and transmission of streaming media content | |
US8165343B1 (en) | Forensic watermarking | |
JP6620108B2 (ja) | 複数のオブジェクトオーディオのポスト符号化ビットレート低減 | |
US9104719B2 (en) | Storing data and metadata in a distributed storage network | |
US8355433B2 (en) | Encoding video streams for adaptive video streaming | |
US8886896B2 (en) | Storage format for media streams | |
US20150073812A1 (en) | Server side crossfading for progressive download media | |
CA2870865C (en) | Server side crossfading for progressive download media | |
TW201607302A (zh) | 用於使用清單屬性來過濾媒體清單的系統 | |
KR20100106418A (ko) | 부분적으로 이용가능한 멀티미디어 컨텐트의 재생 시스템 및 방법 | |
US20150205755A1 (en) | Extensible Media Format System and Methods of Use | |
US9313084B2 (en) | Systems and methods for client-side media chunking | |
JP2014187510A (ja) | ストリーミング配信システム、ストリーミング配信方法、ストリーミング配信プログラムおよびストリーミング配信サーバ | |
JP2019110541A (ja) | 情報処理装置および情報処理方法 | |
CN109076250A (zh) | 交互式音频元数据处置 | |
WO2021002142A1 (ja) | 情報処理装置、情報処理方法、再生処理装置及び再生処理方法 | |
CN102084355B (zh) | 多媒体内容的双类型重放 | |
JP6919904B2 (ja) | ネットワーク環境におけるデータ処理を改善するシステムおよび方法 | |
US20130301869A1 (en) | Forensic marking apparatus and method for real-time content service | |
KR102411973B1 (ko) | 네트워크 환경에서 데이터 처리를 향상시키는 시스템 및 방법 | |
US20200202896A1 (en) | Server side crossfading for progressive download media |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |