CN102792370B - 使用描述有效状态值及区间边界的散列表的音频编码器、音频解码器、编码音频信息的方法及解码音频信息的方法 - Google Patents
使用描述有效状态值及区间边界的散列表的音频编码器、音频解码器、编码音频信息的方法及解码音频信息的方法 Download PDFInfo
- Publication number
- CN102792370B CN102792370B CN201180013302.7A CN201180013302A CN102792370B CN 102792370 B CN102792370 B CN 102792370B CN 201180013302 A CN201180013302 A CN 201180013302A CN 102792370 B CN102792370 B CN 102792370B
- Authority
- CN
- China
- Prior art keywords
- value
- thought
- train
- hash
- spectrum
- 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
- 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/02—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 spectral analysis, e.g. transform vocoders or subband vocoders
-
- 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
-
- 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/0017—Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
-
- 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/02—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 spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/0204—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 spectral analysis, e.g. transform vocoders or subband vocoders using subband decomposition
- G10L19/0208—Subband vocoders
-
- 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/02—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 spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
-
- 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/06—Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
Abstract
一种用以基于编码音频信息来提供解码音频信息的音频解码器包含用以基于频谱值的算术编码表示来提供多个解码频谱值的算术解码器,及使用所述解码频谱值来提供时域音频表示以获得解码音频信息的频域至时域变换器。算术解码器被配置成依据由一当前数值脉络值所描述的一脉络状态来选择一映射规则,所述映射规则描述一码值到一符元码的映射。算术解码器被配置成依据多个先前已解码频谱值来确定当前数值脉络值。算术解码器被配置成评估一散列表来选定映射规则,散列表表项界定数值脉络值中的有效状态值及数值脉络值的区间边界。一映射规则索引值与是有效状态值的一数值脉络值单独相关联,且一共用映射规则索引值与位于由区间边界确定界限的一区间内部的不同数值脉络值相关联。一种编码音频使用类似的构想。
Description
技术领域
依据本发明的实施例有关于一种用以基于编码音频信息来提供解码音频信息的音频解码器,一种用以基于输入音频信息来提供编码音频信息的音频编码器,一种用以基于编码音频信息来提供解码音频信息的方法,一种用以基于输入音频信息来提供编码音频信息的方法及一种计算机程序。
依据本发明的实施例有关于一种改良型频谱无噪声编码,其可用于音频编码器或音频解码器,例如,所谓的统一语音及音频编码装置(USAC)。
背景技术
后文中将简单解释本发明背景以便于了解本发明及其优点。过去十年间努力致力于使以良好比特率效率来以数字方式储存及分配音频内容成为可能。就这个方面而言的一项重要成就是国际标准ISO/IEC 14496-3的确定。此标准的部分3有关于音频内容的编码及解码,而部分3的子部分4有关于一般音频编码。ISO/IEC 14496部分3,子部分4定义用于一般音频内容的编码及解码的构想。此外,已提出要进一步改良以改善品质及/或减少所需的比特率。
依据该项标准所述构想,时域音频信号被转换成时频表示。从时域变换成时频域通常是使用变换区块来进行,变换区块也被称为时域样本的「帧」。业已发现较佳地是使用移位,例如,移位半帧的重叠帧,原因在于重叠允许有效地避免(或至少减少)假影(artifact)。此外,业已发现须进行加窗(windowing)来避免源自于此种时间上有限帧处理上的假影。
借由将输入音频信号的一加窗部分从时域变换成时频域,在许多情况下获得能量压缩(energy compaction),使得若干频谱值包含比多个其它频谱值明显变大的幅度。据此,在许多情况下,有相对较少数频谱值具有的幅度明显高于频谱值的平均幅度。导致能量压缩的时域至时频域变换的一个典型实例为所谓的修正离散余弦变换(MDCT)。
频谱值常依据心理声学模型来定标及量化,使得对心理声学上较为重要的频谱值的量化误差相对较小,而对心理声学上较不重要的频谱值的量化误差相对较大。将已定标且已量化频谱值编码来提供它们的一比特率有效率的表示。
例如,使用量化频谱系数的所谓霍夫曼编码,记载在国际标准ISO/IEC 14496-3:2005(E)部分3子部分4中。
但业已发现频谱值的编码品质对所需的比特率具有显著影响。并且还发现经常应用在可携式消费装置并因此应当是廉价且耗电量低的音频解码器的复杂度取决于用以编码频谱值的编码方法。
综上所述,需要有一种用以编码及解码音频内容的构想,其提供比特率效率与资源效率间的改良折衷。
发明内容
依据本发明的一实施例形成一种用以基于一编码音频信息来提供一解码音频信息的音频解码器。该音频解码器包含用以基于频谱值的算术编码表示来提供多个解码频谱值的一算术解码器。该音频解码器还包含用以使用所述解码频谱值来提供一时域音频表示,以获得解码音频信息的一频域至时域变换器。该算术解码器被配置成依据由一当前数值脉络值所描述的一脉络状态来选择一映射规则,所述映射规则描述一码值至一符元码(symbol code)(该符元码典型地描述一频谱值或多个频谱值,或者一频谱值或多个频谱值的最高有效比特平面)的映射。该算术解码器被配置成依据多个先前已解码频谱值来确定该当前数值脉络值。该算术解码器还被配置成评估一散列表来选定该映射规则,散列表的表项界定所述数值脉络值中的有效状态值及数值脉络值的区间边界。一映射规则索引值与是有效状态值的一数值脉络值单独相关联。一共用映射规则索引值与位于由区间边界(其中所述区间边界由散列表的表项所描述)确定界限的一区间内部的不同数值脉络值相关联。
依据本发明的此实施例基于这一发现:借由使用单一散列表,该散列表的表项界定数值脉络值中的有效状态值及数值脉络值的区间边界,当将一当前数值脉络值映射至一映射规则索引值时,可改良运算效率使其优于习知的解决方案。据此,通过单一表的表搜寻即足以将相对较大数目的当前数值脉络值可能值映射至相对较小数目的不同映射规则索引值。将双重意义关联至散列表的所述表项,且较佳地关联至散列表的单一表项,允许维持表存取次数小,这又减少选择映射规则所需的运算资源。此外,发现使用散列表表项,典型地极其适合有效脉络映射,其中散列表表项界定数值脉络值中的有效状态值及数值脉络值的区间边界,原因在于典型地有相对较大的数值脉络值区间,应对其使用一共用映射规则索引值,其中此等数值脉络值区间典型地被数值脉络值的有效状态值分开。但已发现的是,本发明散列表表项界定数值脉络值的有效状态值及区间边界的构想,也极为适合关联至不同映射规则索引值的数值脉络值的两区间直接相邻,中间没有有效状态值的情况。
概括而言,使用一散列表,其表项界定数值脉络值中的有效状态值及数值脉络值的区间边界,提供编码效率、运算复杂度及内存需求间的良好折衷。
在一较佳实施例中,该算术解码器被配置成将该当前数值脉络值或该当前数值脉络值的定标版本与该散列表的多个以数值排序的表项做比较,而获得一散列表表项的一散列表索引值,使得该当前数值脉络值位于由所得散列表索引值所标示的该散列表表项与一相邻散列表表项所界定的一区间内部。该算术解码器较佳地被配置成确定该当前数值脉络值是否包含由所得散列表索引值标示的该散列表的一表项所界定的值;及依据确定结果来选择性地提供与由所得散列表索引值标示的该散列表的该表项所界定的一数值(当前)脉络值单独相关联的一映射规则索引值,或由所得散列表索引值所标示且与一边界由所得散列表索引值标示的该散列表的该表项所界定的一状态值(也被称为脉络值)确定界限的一区间内部的不同数值(当前)脉络值相关联的一映射规则索引值。据此,散列表表项可定义有效状态值(也被称为有效脉络值),及数值(当前)脉络值的区间。借由比较一当前数值脉络值与由该最终所得散列表表项所表示的状态值,可做出最后决策,该当前数值脉络值是一有效状态值,或是在与一共用映射规则索引值相关联的一状态值区间内部。据此,形成有效机制来利用散列表表项的双重意义。
在一较佳实施例中,该算术解码器被配置成使用该散列表,确定该当前数值脉络值是等于由该散列表的一表项所界定的一区间边界状态值(其典型地但不一定是一有效状态值),还是位于由该散列表的两(较佳地是相邻的)表项所界定的一区间内部。据此,该算术解码器较佳地被配置成若发现该当前数值脉络值等于一区间边界状态值,则提供与该散列表的一表项相关联的一映射规则索引值;及若发现该当前数值脉络值位于由该散列表的两相邻表项所界定的状态值间的一区间内部,则提供与由该散列表的两相邻表项所界定的状态值间的一区间相关联的一映射规则索引值。该算术解码器进一步被配置成依据该映射规则索引值为该算术解码器选定一累积频率表。据此,该算术解码器被配置成对等于区间边界状态值的一当前数值脉络值提供一「专用」映射规则索引值,否则,即提供一「区间相关的」映射规则索引值。据此,可使用共用且运算上有效率的机制来处理在两个区间之间的切换及有效的状态。
在一较佳实施例中,与该散列表的第一给定表项相关联的一映射规则索引值不同于与数值脉络值的第一区间相关联的一映射规则索引值,该第一区间的上边界由该散列表的该第一给定表项所界定;与该散列表的第一给定表项相关联的一映射规则索引值也不同于与数值脉络值的第二区间相关联的一映射规则索引值,该第二区间的下边界由该散列表的该第一给定表项所界定,使得该散列表的该第一给定表项借一单一值而界定该数值(当前)脉络值的两区间边界及该数值(当前)脉络值的一有效状态值。在这种情况下,第一区间由该散列表的该第一给定表项所界定的该状态值确定界限,其中由该散列表的该第一给定表项所界定的该状态值不属于该第一区间。类似地,第二区间由该散列表的该第一给定表项所界定的该状态值确定界限,其中由该散列表的该第一给定表项所界定的该状态值不属于该第二区间。此外,须注意使用此种机制,可「单独」将一「专用」映射规则索引值关联至一单一当前数值脉络状态,其在数值上介于该第一区间的最高状态值(也被称为脉络值)与该第二区间的最低状态值(也被称为脉络值)之间(其中典型地有一个整数介于该第一区间的最高数值与该第二区间的最低数值间,换言之,由该散列表的该第一给定表项所定义的数字)。如此,特别具特征性的当前数值脉络值可映射至一单独相关联的映射规则索引值,而其它具有较少特征性的当前数值脉络值可基于一区间而映射至相关联的映射规则索引值。
在一较佳实施例中,与该脉络值第一区间相关联的该映射规则索引值等于与该脉络值第二区间相关联的该映射规则索引值,使得该散列表的该第一给定表项界定处于两边均为非有效状态值的环境中的一孤立的有效状态值。换言之,可能将一特别具特征性的当前数值脉络值映射至一相关联的映射规则索引值,而在该特别具特征性的当前数值脉络值两边的相邻当前数值脉络值映射至一共用映射规则索引值,该共用映射规则索引值不同于与该特别具特征性的当前数值脉络值相关联的映射规则索引值。
在一较佳实施例中,与该散列表的第二给定表项相关联的一映射规则索引值和与一脉络值第三区间相关联的一映射规则索引值是相同的,该第三区间的一个边界由该散列表的该第二给定表项界定;且与该散列表的第二给定表项相关联的一映射规则索引值和与一脉络值第四区间相关联的一映射规则索引值相异,该第四区间的一个边界由该散列表的该第二给定表项界定,使得该散列表的该第二给定表项界定当前数值脉络值的两个区间之间的一边界,而未界定当前数值脉络值的一有效状态值。如此,依据本发明的构想也允许界定与不同的映射规则索引值相关联,中间不存在有效状态的数值(当前)脉络值的相邻区间。这可使用相对简单且运算有效的机制达成。
在一较佳实施例中,该算术解码器被配置成评估一单一散列表,其以数值排序的表项界定该当前数值脉络值的有效状态值及当前数值脉络值的区间边界,以获得该散列表的所述表项所界定的所述区间中标示该当前数值脉络值所在的一区间的一散列表索引值,以及随后使用由该所得散列表索引值所标示的该表项而确定该当前数值脉络值具有一有效状态值或是一非有效状态值。借由使用此构想,迭代重复执行的运算的复杂度可维持相当低,使得多个以数值排序的散列表表项可以低度运算量进行评估。只有在最终步骤中(每个当前数值脉络值只可执行一次),可做决策以判定该当前数值脉络值具有一有效状态值或是一非有效状态值。
在一较佳实施例中,该算术解码器被配置成若发现该当前数值脉络值并不具一有效状态值,则选择性地评估将区间索引值映射至映射规则索引值的一映射表,而获得与该当前数值脉络值所在的非有效状态值(也被称为非有效脉络值)的一区间相关联的一映射规则索引值。据此,形成用以对由散列表表项所界定的一当前数值脉络值区间,获取一映射规则索引值的一种运算有效机制。
在一较佳实施例中,该散列表的所述表项以数值排序,且该算术解码器被配置成评估一序列的散列表表项,来获得一散列表表项的一结果散列表索引值,使得该当前数值脉络值位于由该所得结果散列表索引值标示的该散列表表项与一相邻散列表表项所界定的一区间内部。在此种情况下,该算术解码器被配置成执行预定次数的迭代重复来迭代重复地确定该结果散列表索引值。每一次迭代重复只包含由该散列表的一当前表项所表示的一状态值与由该当前数值脉络值所表示的一状态值间的单次比较,及依据该单次比较结果,而选择性地更新一当前散列表索引值。据此,获得评估散列表及识别一映射规则索引值的低运算复杂度。
在一较佳实施例中,该算术解码器被配置成只有在执行预定次数的迭代重复后,才区别包含一有效状态值的一当前数值脉络值与包含一非有效状态值的一当前数值脉络值。借此方式,运算复杂度降低,因为每一次迭代重复所执行的评估维持简单。
依据本发明的另一实施例有关于一种用以基于一输入音频信息而提供一编码音频信息的音频编码器。该音频编码器包含一能量压缩(energy-compacting)时域至频域变换器,其用以基于该输入音频信息的时域表示而提供一频域音频表示,使得该频域音频表示包含频谱值的一集合。该音频编码器还包含一算术编码器,其被配置成使用一可变长度码字而编码一频谱值或其预处理版本,或相当地,多个频谱值或其预处理版本。该算术编码器被配置成将一频谱值或一频谱值的最高有效比特平面值(或相当地,多个频谱值或多个频谱值的最高有效比特平面值)映射至一码值。该算术编码器被配置成依据由一当前数值脉络值所描述的一脉络状态而选择描述将一频谱值或一频谱值的最高有效比特平面映射至一码值的一映射规则。该算术编码器被配置成依据多个先前已编码频谱值而确定该当前数值脉络值。该算术编码器被配置成评估一散列表,其表项界定所述数值脉络值中的有效状态值及数值脉络值的区间边界,其中一映射规则索引值与是有效状态值的一数值(当前)脉络值单独相关联,且其中一共用映射规则索引值与位于由区间边界(其中所述区间边界由散列表表项所描述)确定界限的一区间内部的不同数值(当前)脉络值相关联。
此音频编码器与前文讨论的音频解码器基于相同的发现,且可用前文讨论的音频解码器的相同特征及功能性予以补充,其中编码频谱值取代解码频谱值。特别是,映射规则索引值的运算可以使用与音频编码器相同的方式进行。
依据本发明的一实施例形成一种用以基于一编码音频信息来提供一解码音频信息的方法。该方法包含基于所述频谱值的一算术编码表示而提供多个解码频谱值,及使用所述解码频谱值提供一时域音频表示来获得解码音频信息。提供所述多个解码频谱值包含依据由一当前数值脉络值所描述的一脉络状态选择一映射规则,所述映射规则描述将以编码形式表示一频谱值或一频谱值的最高有效比特平面(或相当地,多个频谱值或多个频谱值的最高有效比特平面)的一码值,映射至以解码形式表示一频谱值或一频谱值的最高有效比特平面(或相当地,多个频谱值或多个频谱值的最高有效比特平面)的一符元码。该当前数值脉络值依据多个先前已解码频谱值而确定。一散列表经评估,该散列表的表项界定所述数值脉络值中的有效状态值及数值脉络值的区间边界。一映射规则索引值与是有效状态值的一当前数值脉络值单独相关联,且其中一共用映射规则索引值与位于由区间边界(其中所述区间边界由散列表表项所描述)确定界限的一区间内部的不同数值脉络值相关联。
依据本发明的一实施例形成一种用以基于一输入音频信息而提供一编码音频信息的方法。该方法包含使用能量压缩时域至频域变换,基于该输入音频信息的一时域表示而提供一频域音频表示,使得该频域音频表示包含频谱值的一集合。该方法还包含使用一可变长度码字来算术式地编码一频谱值或其预处理版本,其中一频谱值或一频谱值的最高有效比特平面值(或相当地,多个频谱值或多个频谱值的最高有效比特平面)被映射至一码值。描述将一频谱值或一频谱值的最高有效比特平面值(或相当地,多个频谱值或多个频谱值的最高有效比特平面)映射至一码值的一映射规则依据一当前数值脉络值所描述的一脉络状态而选定。该当前数值脉络值依据多个先前已编码相邻频谱值而确定。一散列表经评估,该散列表的表项界定所述数值脉络值中的有效状态值及数值脉络值的区间边界,其中一映射规则索引值与是有效状态值的一数值(当前)脉络值单独相关联,且其中一共用映射规则索引值与位于由区间边界确定界限的一区间内部的不同数值(当前)脉络值相关联。
依据本发明的另一实施例,形成一种用以实施所述方法的一的计算机程序。
附图说明
随后将参考所公开的图式来描述依据本发明的实施例,附图中:
图1a及1b显示依据本发明的实施例,一种音频编码器的方块示意图;
图2a及2b显示依据本发明的实施例,一种音频解码器的方块示意图;
图3显示用以解码频谱值的算法「values_decode()」的伪程序码表示;
图4显示用于状态计算的脉络的示意表示;
图5a显示用以映射脉络的算法「arith_map_context()」的伪程序码表示;
图5b显示用以映射脉络的另一种算法「arith_map_context()」的伪程序码表示;
图5c显示用以获得脉络状态值的算法「arith_get_context()」的伪程序码表示;
图5d显示用以获得脉络状态值的另一种算法「arith_get_context()」的伪程序码表示;
图5e显示用以从一状态值(或状态变量)导算出累积频率表索引值「pki」的算法「arith_get_pk()」的伪程序码表示;
图5f显示用以从一状态值(或状态变量)导算出累积频率表索引值「pki」的另一种算法「arith_get_pk()」的伪程序码表示;
图5g(1)及5g(2)显示用以从一可变长度码字算术式解码一符元的算法「arith_decode()」的伪程序码表示;
图5h显示用以从一可变长度码字算术式解码一符元的另一种算法「arith_decode()」的伪程序码表示的第一部分;
图5i显示用以从一可变长度码字算术式解码一符元的另一种算法「arith_decode()」的伪程序码表示的第二部分;
图5j显示用以从共用值m导算出频谱值的绝对值a,b的算法的伪程序码表示;
图5k显示用以将解码值a,b载入解码频谱值的一阵列的算法的伪程序码表示;
图5l显示用以基于解码频谱值的绝对值a,b而获得脉络子区值的算法「arith_update_context()」的伪程序码表示;
图5m显示用以填补解码频谱值阵列及脉络子区值阵列的表项的算法「arith_finish()」的伪程序码表示;
图5n显示用以从共用值m导算出频谱值的绝对值a,b的另一种算法的伪程序码表示;
图5o显示用以更新解码频谱值阵列及脉络子区值阵列的算法「arith_update_context()」的伪程序码表示;
图5p显示用以填补解码频谱值阵列的表项及脉络子区值阵列的表项的算法「arith_save_context()」的伪程序码表示;
图5q显示定义的说明;
图5r显示定义的另一说明;
图6a显示统一语音及音频编码器(USAC)原始数据区块的语法表示;
图6b显示单一通道元素的语法表示;
图6c显示成对通道元素的语法表示;
图6d显示「ICS」控制信息的语法表示;
图6e显示频域通道串流的语法表示;
图6f显示算术式编码频谱数据的语法表示;
图6g显示用以解码一频谱值集合的语法表示;
图6h显示用以解码一频谱值集合的另一语法表示;
图6i显示数据元素及变量的说明;
图6j显示数据元素及变量的另一说明;
图7显示依据本发明的第一方面,一种音频编码器的方块示意图;
图8显示依据本发明的第一方面,一种音频解码器的方块示意图;
图9显示依据本发明的第一方面,一种当前数值脉络值映射至映射规则索引值的线图表示;
图10显示依据本发明的第二方面,一种音频编码器的方块示意图;
图11显示依据本发明的第二方面,一种音频解码器的方块示意图;
图12显示依据本发明的第三方面,一种音频编码器的方块示意图;
图13显示依据本发明的第三方面,一种音频解码器的方块示意图;
图14a显示依据USAC草拟标准的工作草稿4使用的用于状态计算的脉络的示意表示;
图14b显示依据USAC草拟标准的工作草稿4,用于算术编码方案的表格综览;
图15a显示用在依据本发明的实施例中的用于状态计算的脉络的示意表示;
图15b显示依据本发明的实施例用于算术编码方案的表格综览;
图16a显示依据本发明,及依据USAC草拟标准的工作草稿5,及依据AAC(高级音频编码)霍夫曼编码,用于无噪声编码方案的只读存储器需求的线图表示;
图16b显示依据本发明,及依据USAC草拟标准的工作草稿5的构想,总USAC解码器数据只读存储器需求的线图表示;
图17显示使用依据本发明的编码方案,依据USAC草拟标准的工作草稿3或工作草稿5,用于无噪声编码的比较配置的示意表示;
图18显示依据USAC草拟标准的工作草稿3及依据本发明的实施例,由USAC算术编码器所产生的平均比特率的表格表示;
图19显示用于依据USAC草拟标准的工作草稿3的算术解码器及依据本发明的实施例的算术解码器,最小及最大比特储存器位阶的表格表示;
图20显示依据USAC草拟标准的工作草稿3,用于不同版本的算术编码器,用以解码32k比特串流的平均复杂度数目的表格表示;
图21(1)和21(2)显示表「ari_lookup_m[600]」的内容的表格表示;
图22(1)至22(4)显示表「ari_hash_m[600]」的内容的表格表示;
图23(1)至23(8)显示表「ari_cf_m[96][17]」的内容的表格表示;以及
图24显示表「ari_cf_r[]」的内容的表格表示。
具体实施方式
1.依据图7的音频编码器
图7显示依据本发明的实施例,一种音频编码器的方块示意图。音频编码器700被配置成接收输入音频信息710,及基于此来提供编码音频信息712。音频编码器包含能量压缩时域至频域变换器720,其被配置成基于输入音频信息710的时域表示来提供频域音频表示722,使得频域音频表示722包含一频谱值集合。音频编码器700还包含算术编码器730,其被配置成使用可变长度码字来编码(形成频域音频表示722的该频谱值集合中的)频谱值或其预处理版本,以获得编码音频信息712(其例如可包含多个可变长度码字)。
算术编码器730被配置成依据一脉络状态,将频谱值或频谱值的最高有效比特平面值映射至一码值(亦即映射至一可变长度码字)。该算术编码器被配置成依据(当前)脉络状态,选择描述频谱值或频谱值的最高有效比特平面值至一码值的映射的映射规则。该算术编码器被配置成依据多个先前已编码的(较佳但不一定相邻的)频谱值来确定当前脉络状态,或描述该当前脉络状态的一当前数值脉络值。为了达成此项目的,该算术编码器被配置成评估一散列表,其表项定义数值脉络值中的有效状态值及数值脉络值的区间边界,其中一映射规则索引值与是有效状态值的一数值(当前)脉络值单独相关联,且其中一共用映射规则索引值与位于由所述区间边界(其中所述区间边界较佳地由该散列表的表项来定义)确定界限的一区间内部的不同数值(当前)脉络值相关联。
如图可知,(频域音频表示722的)一频谱值或一频谱值的最高有效比特平面映射至一(编码音频信息712的)码值可使用映射规则742借频谱值编码740执行。状态追踪器750可被配置成追踪脉络状态。状态追踪器750提供描述当前脉络状态的信息754。描述当前脉络状态的信息754较佳地可呈当前数值脉络值形式。映射规则选择器760被配置成选择描述一频谱值或一频谱值的最高有效比特平面至一码值的映射的映射规则,例如累积频率表。据此,映射规则选择器760提供映射规则信息742给频谱值编码740。映射规则信息742可呈映射规则索引值形式,或呈依据映射规则索引值而选定的累积频率表形式。映射规则选择器760包含(或至少评估)散列表752,其表项定义数值脉络值中的有效状态值及数值脉络值的区间边界,其中一映射规则索引值与是有效状态值的一数值脉络值单独相关联,且其中一共用映射规则索引值与位于由所述区间边界确定界限的一区间内部的不同数值脉络值相关联。散列表762经评估来选择映射规则,亦即来提供映射规则信息742。
综上所述,音频编码器700执行由时域至频域变换器所提供的频域音频表示的算术编码。该算术编码为脉络相依性,使得映射规则(例如累积频率表)依据先前已编码的频谱值来选定。据此,在算术编码中考虑时间上及/或频率上(或至少在预定环境内部)彼此相邻及/或相邻于当前编码频谱值(亦即在该当前编码频谱值的预定环境内部的频谱值)的频谱值来调整由算术编码所评估的概率分布。当选择适当映射规则时,评估由状态追踪器750所提供的数值脉络当前值754。因通常不同映射规则的数目明显小于当前数值脉络值754的可能值数目,故映射规则选择器760分配相同映射规则(例如由映射规则索引值来描述)给相对较大数目的不同数值脉络值。虽说如此,通常存在有特定的频谱组态(以特定数值脉络值表示),特殊映射规则须与特定频谱组态相关联,以获得良好编码效率。
业已发现若单一散列表的表项定义有效状态值及数值(当前)脉络值的区间边界,则依据当前数值脉络值来选择映射规则可以特别高的运算效率进行。业已发现此项机制良好地适应映射规则选择的要求,原因在于有许多情况单一有效状态值(或有效数值脉络值)嵌置于具有(与一共用映射规则相关联的)多个非有效状态值的左侧区间与具有(与一共用映射规则相关联的)多个非有效状态值的右侧区间之间。而且,这一机制使用单一散列表,其表项定义有效状态值及数值(当前)脉络值的区间边界,可有效处理不同情况,其中例如有两个相邻的非有效状态值区间(也被称为非有效数值脉络值),其间不含有效状态值。由于表存取次数维持少数,故可实现特别高的运算效率。例如,单一迭代重复表搜寻在大部分实施例中即足以找出该当前数值脉络值是否等于任何有效状态值,或该当前数值脉络值所在的非有效状态值区间。因此,既费时又耗能的表存取次数可维持少次。如此,就运算复杂度而言,使用散列表762的映射规则选择器760可被认为是特别有效的映射规则选择器,同时仍允许获得良好编码效率(就比特率而言)。
有关从当前数值脉络值754导算出映射规则信息742的进一步细节容后详述。
2.依据图8的音频解码器
图8显示一种音频解码器800的方块示意图。音频解码器800被配置成接收编码音频信息810,及基于此来提供解码音频信息812。音频解码器800包含算术解码器820,其被配置成基于频谱值的算术编码表示821来提供多个频谱值822。音频解码器800还包含频域至时域变换器830,其被配置成接收解码频谱值822,及提供能组成解码音频信息的时域音频表示812,其可使用解码频谱值822来获得一解码音频信息812。
算术解码器820包含频谱值确定器824,其被配置成将频谱值的算术编码表示821的码值映射至表示解码频谱值中的一或多者,或者频谱值中的一或多者的至少一部分(例如,最高有效比特平面)的符元码。频谱值确定器824可被配置成依据映射规则执行映射,映射规则可由映射规则信息828a描述。映射规则信息828a例如可呈映射规则索引值形式,或选定的累积频率表(例如,依据映射规则索引值选择)的形式。
算术解码器820被配置成依据脉络状态(其可由脉络状态信息826a来描述)来选择描述码值(由频谱值的算术编码表示821来描述)至符元码(描述一或多个频谱值或其最高有效比特平面)的映射的映射规则(例如累积频率表)。算术解码器820被配置成依据多个先前已解码的频谱值来确定当前脉络状态(由当前数值脉络值来描述)。为了达成此项目的,可使用状态追踪器826,其接收先前已解码的频谱值,及基于此来提供描述当前脉络状态的当前数值脉络值826a。
算术解码器还被配置成评估散列表829,其表项定义数值脉络值中的有效状态值及数值脉络值的区间边界,来选定映射规则,其中一映射规则索引值与是有效状态值的一数值脉络值单独相关联,且其中一共用映射规则索引值与位于由区间边界确定界限的一区间内部的不同数值脉络值相关联。散列表829的评估例如可使用散列表评估器来执行,散列表评估器可以是映射规则选择器828的一部分。据此,映射规则信息828a,例如呈映射规则索引值形式,基于描述当前脉络状态的当前数值脉络值826a而获得。映射规则选择器828例如可依据散列表829的评估结果来确定映射规则信息828a。另外,评估散列表829可直接提供映射规则索引值。
有关音频信号解码器800的功能,须注意算术解码器820被配置成选择映射规则(例如,累积频率表),其一般而言良好适应于欲解码的频谱值,原因在于映射规则是依据当前脉络状态(例如,借当前数值脉络值来描述)而选定的,而当前脉络状态又是依据多个先前已解码的频谱值而确定的。据此,可利用欲解码的相邻频谱值之间的统计相依性。此外,算术解码器820可使用映射规则选择器828有效地实施,在运算复杂度、表大小与编码效率间有良好折衷。借由评估(单一)散列表829,其表项描述有效状态值及非有效状态值区间的区间边界,单一迭代重复表搜寻可能就足以从当前数值脉络值826a导算出映射规则信息828a。据此,可能将相对较大数目的不同可能数值(当前)脉络值映射至相对较小数目的不同映射规则索引值。如前文说明,借由使用散列表829可利用下述发现:在许多情况下,单独的有效状态值(有效脉络值)嵌置在具有非有效状态值(非有效脉络值)的左侧区间与具有非有效状态值(非有效脉络值)的右侧区间之间,与左侧区间的状态值(脉络值)和右侧区间的状态值(脉络值)相比较,不同的映射规则索引值与该有效状态值(有效脉络值)相关联。但散列表829的使用也很适用于数值状态值的两个区间紧邻,中间没有有效状态值的情况。
总结而言,当依据当前脉络状态(或依据描述当前脉络状态的当前数值脉络值)来选择映射规则时(或当提供映射规则索引值时),评估散列表829的映射规则选择器828获得特别好的效率,原因在于散列机制良好适用于音频解码器的典型脉络概要。
进一步细节容后详述。
3.依据图9的脉络值散列机制
后文中,将揭示脉络值散列机制,其可在映射规则选择器760及/或映射规则选择器828中实施。散列表762及/或散列表829可用来实现所述脉络值散列机制。
现在参考图9,显示当前数值脉络值散列概要,进一步细节容后详述。在图9的线图表示中,横座标910描述当前数值脉络值(即数值脉络值)的值。纵座标912描述映射规则索引值。记号914指示非有效数值脉络值(描述非有效状态)的映射规则索引值。记号916指示用于描述单独(实际)有效状态的「单独」(实际)有效数值脉络值的映射规则索引值。记号916指示用于描述「不当(improper)」有效状态的「不当」数值脉络值的映射规则索引值,其中「不当」有效状态是与其相关联的映射规则索引值与相邻的非有效数值脉络值区间中的一者的映射规则索引值相同的一种有效状态。
如图可知,散列表表项「ari_hash_m[il]」描述具有数值脉络值c1的单独(实际)有效状态。如图可知,映射规则索引值mriv1与具有数值脉络值c1的单独(实际)有效状态相对应。据此,数值脉络值c1及映射规则索引值mriv1可由散列表表项「ari_hash_m[il]」来描述。数值脉络值的区间932由数值脉络值c1确定界限,其中数值脉络值c1并不属于区间932,使得区间932的最大数值脉络值等于c1-1。映射规则索引值mriv4(与mriv1不同)与区间932的数值脉络值相关联。映射规则索引值mriv4例如可由额外表「ari_lookup_m」的表项「ari_lookup_m[il-1]」来描述。
此外,映射规则索引值mriv2可与位于区间934内部的数值脉络值相关联。区间934的下边界由数值脉络值c1确定,数值脉络值c1是有效数值脉络值,其中数值脉络值c1不属于区间932。据此,区间934的最小值等于c1+1(假设整数数值脉络值)。区间934的另一边界由数值脉络值c2确定,其中数值脉络值c2不属于区间934,使得区间934的最大值等于c2-1。数值脉络值c2为所谓的「不当」数值脉络值,其借散列表表项「ari_hash_m[i2]」来描述。例如,映射规则索引值mriv2可与数值脉络值c2相关联,使得与「不当」有效数值脉络值c2相关联的数值脉络值等于与由数值脉络值c2确定界限的区间934相关联的映射规则索引值。此外,数值脉络值的区间936也由数值脉络值c2确定界限,其中数值脉络值c2不属于区间936,使得区间936的最小值等于c2+1。通常与映射规则索引值mriv2不同的映射规则索引值mriv3与区间936的数值脉络值相关联。
如图可知,与数值脉络值区间932相关联的映射规则索引值mriv4可借表「ari_lookup_m」的表项「ari_lookup_m[il-1]」来描述;与数值脉络值区间934相关联的映射规则索引值mriv2可借表「ari_lookup_m」的表项「ari_lookup_m[il]」来描述;且映射规则索引值mriv3可借表「ari_lookup_m」的表项「ari_lookup_m[i2]」来描述。在此处列举的实例中,散列表索引值i2可能比散列表索引值i1大1。
由图9可知,映射规则选择器760或映射规则选择器828可接收当前数值脉络值764、826a,及经由评估表「ari_hash_m」的表项来判定当前数值脉络值是否为有效状态值(与其是「单独」有效状态值还是「不当」有效状态值无关),或判定该当前数值脉络值是否位于由(「单独」或「不当」)有效状态值c1、c2确定界限的区间932、934、936中的一者内部。检查该当前数值脉络值是否等于有效状态值c1、c2,以及评估该当前数值脉络值位于区间932、934、936中的哪一个区间(在当前数值脉络值不等于有效状态值的情况下),皆可使用单一共用散列表搜寻执行。
此外,评估散列表「ari_hash_m」可用来获得散列表索引值(例如,i1-1、i1或i2)。如此,映射规则选择器760、828可被配置成借由评估单一散列表762、829(例如散列表「ari_hash_m」),即可获得标示有效状态值(例如,c1或c2)及/或区间(例如,932、934、936)及该当前数值脉络值是否为有效脉络值(也称作有效状态值)的信息的散列表索引值(例如,i1-1、i1或i2)。
此外,若在散列表762、829,「ari_hash_m」的评估中发现当前数值脉络值并非「有效」脉络值(或「有效」状态值),则得自散列表(「ari_hash_m」)评估的散列表索引值(例如,i1-1、i1或i2)可用来获得与数值脉络值的区间932、934、936相关联的映射规则索引值。例如,散列表索引值(例如,i1-1、i1或i2)可用来表示额外映射表(例如,「ari_lookup_m」)的一表项,其描述与该当前数值脉络值所在的区间932、934、936相关联的映射规则索引值。
欲知进一步细节,可参考后文对算法「arith_get_pk」的详细讨论(其中对此种算法「arith_get_pk()」有不同选项,图5e及图5f显示其实例)。
此外,须注意区间大小可依案例而异。在某些情况下,一数值脉络值的区间包含单一数值脉络值。但在许多情况下,一区间可包含多个数值脉络值。
4.依据图10的音频编码器
图10显示依据本发明的实施例,一种音频编码器1000的方块示意图。依据图10的音频编码器1000类似于依据图7的音频编码器700,因而图7及图10的相同信号及装置标示以相同的参考数字。
音频编码器1000被配置成接收一输入音频信息710,及基于此来提供一编码音频信息712。音频编码器1000包含能量压缩时域至频域变换器720,其被配置成基于输入音频信息710的时域表示来提供频域表示722,使得频域表示722包含一频谱值集合。音频编码器1000还包含一算术编码器1030,其被配置成使用可变长度码字来编码(形成频域表示722的频谱值集合中的)一频谱值或其预处理版本,以获得编码音频信息712(其例如可包含多个可变长度码字)。
算术编码器1030被配置成依据脉络值而将一频谱值或多个频谱值,或者一频谱值或多个频谱值的最高有效比特平面值映射至一码值(亦即映射至一可变长度码字)。算术编码器1030被配置成依据脉络状态来选择描述一频谱值或多个频谱值,或者一频谱值或多个频谱值的最高有效比特平面的值至一码值的映射的一映射规则。该算术编码器被配置成依据多个先前编码(较佳但不一定相邻)频谱值来确定当前脉络状态。为了达成此项目的,算术编码器被配置成依据脉络子区值来修改描述与一或多个先前编码频谱值相关联的脉络状态(例如,选择相对应的映射规则)的数值先前脉络值的数字表示,以获得描述与一或多个欲编码频谱值相关联的脉络状态(例如,选择相对应的映射规则)的当前数值脉络值的数字表示。
如图可知,将一频谱值或多个频谱值,或者一频谱值或多个频谱值的最高有效比特平面映射至一码值可使用由映射规则信息742所描述的映射规则而借频谱值编码740执行。状态追踪器750可被配置成追踪脉络状态。状态追踪器750可被配置成依据脉络子区值来修改描述与一或多个先前编码频谱值的编码相关联的脉络状态的数值先前脉络值的数字表示,以获得描述与一或多个欲编码频谱值的编码相关联的脉络状态的当前数值脉络值的数字表示。数值先前脉络值的数字表示的修改例如可借数字表示修改器1052进行,数字表示修改器1052接收数值先前脉络值及一或多个脉络子区值,并提供当前数值脉络值。据此,状态追踪器1050提供描述当前脉络状态的信息754,例如以当前数值脉络值的形式。映射规则选择器1060可选择映射规则,例如累积频率表,其描述一频谱值或多个频谱值,或者一频谱值或多个频谱值的最高有效比特平面至一码值的映射。据此,映射规则选择器1060提供映射规则信息742给频谱编码740。
在某些情况下,须注意状态追踪器1050可与状态追踪器750或状态追踪器826相同。也须注意在某些情况下,映射规则选择器1060可与映射规则选择器760或映射规则选择器828相同。
综上所述,音频编码器1000对由时域至频域变换器所提供的频域音频表示执行算术编码。算术编码为脉络相依性,因而映射规则(例如,累积频率表)依据先前已编码的频谱值而选定。据此,在算术编码中考虑时间上及/或频率上(或至少在预定环境内部)彼此相邻及/或相邻于当前编码频谱值(亦即在该当前编码频谱值的预定环境内部的频谱值)的频谱值来调整由算术编码所评估的概率分布。
当确定当前数值脉络值时,描述与一或多个先前已编码的频谱值相关联的脉络状态的数值先前脉络值的数字表示依据脉络子区值来修改,以获得描述与一或多个欲编码频谱值相关联的脉络状态的当前数值脉络值的数字表示。此办法避免完全重新计算当前数值脉络值,常规方法中完全重新计算耗用大量资源。有多种用以修改数值先前脉络值的数字表示的可能性存在,包括数值先前脉络值的数字表示的重新定标的组合;脉络子区值或其导算值加至数值先前脉络值的数字表示或加至已处理的数值先前脉络值的数字表示;依据脉络子区值来置换部分数值先前脉络值的数字表示(而非全部数字表示)等。如此,通常,当前数值脉络值的数字表示是基于数值先前脉络值的数字表示而获得的,也是基于至少一个脉络子区值而获得的,其中通常执行运算组合,诸如,举例而言,加法运算、减法运算、乘法运算、除法运算、布尔(Boolean)与(AND)运算、布尔或(OR)运算、布尔与非(NAND)运算、布尔或非(NOR)运算、布尔逻辑非运算、补数运算或移位运算中的两种或多种运算,来组合数值先前脉络值与脉络子区值。据此,当从数值先前脉络值导算当前数值脉络值时,通常至少部分数值先前脉络值的数字表示维持不变(除了选择性地移位至不同位置外)。相反地,数值先前脉络值的数字表示的其它部分依一或多个脉络子区值而改变。如此,可以较少运算量而获得当前数值脉络值,同时避免完全重新计算当前数值脉络值。
如此,可获得有意义的当前数值脉络值,其极其适合映射规则选择器1060使用。
所以,借由维持脉络计算的足够简单,可获得有效编码。
5.依据图11的音频解码器
图11显示音频解码器1100的方块示意图。音频解码器1100类似于依据图8的音频解码器800,因而相同信号、装置及功能标示以相同参考数字。
音频解码器1100被配置成接收音频信息810,及基于此来提供已解码的音频信息812。音频解码器1100包含算术解码器1120,其被配置成基于频谱值的算术编码表示821来提供多个已解码的频谱值822。音频解码器1100还包含频域至时域变换器830,其被配置成接收解码频谱值822,及使用解码频谱值822提供能组成解码音频信息的时域音频表示812,以获得解码音频信息812。
算术解码器1120包含频谱值确定器824,其被配置成将频谱值的算术编码表示821的一码值映射至表示解码频谱值中的一或多者,或者解码频谱值中的一或多者的至少一部分(例如,最高有效比特平面)的一符元码。频谱值确定器824可被配置成依据映射规则执行映射,映射规则借映射规则信息828a来描述。映射规则信息828a例如可包含映射规则索引值,或可包含累积频率表表项的一选定集合。
算术解码器1120被配置成依据可由脉络状态信息1126a来描述的脉络状态来选择描述码值(由频谱值的算术编码表示821来描述)至符元码(描述一或多个频谱值)的映射的映射规则(例如,累积频率表)。脉络状态信息1126a可呈当前数值脉络值形式。算术解码器1120被配置成依据多个先前已解码的频谱值822来确定当前脉络状态。为了达成此项目的,可使用状态追踪器1126,其接收描述先前已解码的频谱值的信息。算术解码器被配置成依据脉络子区值,修改描述与一或多个先前已解码的频谱值相关联的一脉络状态的数值先前脉络值的数字表示,以获得描述与一或多个欲解码频谱值相关联的脉络状态的当前数值脉络值的数字表示。数值先前脉络值的数字表示的修改例如可借数字表示修改器1127执行,该修改器是状态追踪器1126的一部分。据此,获得当前脉络状态信息1126a,例如呈当前数值脉络值形式。映射规则的选择可借映射规则选择器1128执行,该选择器从当前脉络状态信息1126a导算出映射规则信息828a,并提供映射规则信息828a给频谱值确定器824。
有关音频信号解码器1100的功能,须注意算术解码器1120被配置成选定一映射规则(例如,累积频率表),其一般而言良好适应于欲解码的频谱值,原因在于映射规则依据当前脉络状态而选定,而当前脉络状态又是依据多个先前已解码的频谱值而确定的。据此,可利用欲解码的相邻频谱值间的统计相依性。
此外,借由依据一脉络子区值,修改描述与一或多个先前已解码的频谱值的解码相关联的一脉络状态的数值先前脉络值的数字表示,以获得描述与一或多个欲解码频谱值的解码相关联的脉络状态的当前数值脉络值的数字表示,可以较少的运算量获得有关当前脉络状态的有意义信息,其极为适合用以映射至映射规则索引值。借由维持数值先前脉络值的数字表示的至少一部分(可能呈比特移位版本或定标版本),同时依据脉络子区值来更新数值先前脉络值的数字表示的另一部分,在导算数值先前脉络值时没有考虑所述脉络子区值,但在导算当前数值脉络值时应该要考虑所述脉络子区值,因此,可维持导算当前数值脉络值的运算次数相当少。而且,可能利用下述事实:用以解码相邻频谱值的脉络通常是相似或相关的。例如,用以解码第一频谱值(或第一多个频谱值)的脉络取决于先前已解码的频谱值的第一集合。用以解码相邻于第一频谱值(或频谱值的第一集合)的第二频谱值(或频谱值的第二集合)的脉络可包含先前已解码的频谱值的第二集合。因假设第一频谱值与第二频谱值是相邻的(例如,就相关联的频率而言),确定用于第一频谱值编码的脉络的第一频谱值集合可与确定用于第二频谱值解码的脉络的第二频谱值集合包含若干重叠。据此,容易了解用于第二频谱值解码的脉络状态与用于第一频谱值解码的脉络状态有一定的相关性。脉络导算,亦即当前数值脉络值导算的运算效率可借由利用这样的相关性而达成。业已发现,借由只修改取决于在导算数值先前脉络值时未被考虑的脉络子区值的数值先前脉络值的那些部分,并且借由从该数值先前脉络值来导算当前数值脉络值,可有效利用用于相邻频谱值解码的脉络状态信息间(亦即由数值先前脉络值所描述的脉络状态与由当前数值脉络值所描述的脉络状态间)的相关性。
总结而言,此处所述构想允许导算当前数值脉络值时有特别好的运算效率。
进一步细节容后详述。
6.依据图12的音频编码器
图12显示依据本发明的实施例,一种音频编码器的方块示意图。依据图12的音频编码器1200类似于依据图7的音频编码器700,故相同装置、信号及功能标示以相同参考数字。
音频编码器1200被配置成接收输入音频信息710,及基于此来提供编码音频信息712。音频编码器1200包含能量压缩时域至频域变换器720,其被配置成基于输入音频信息710的时域表示来提供频域音频表示722,使得频域音频表示722包含一频谱值集合。音频编码器1200还包含算术编码器1230,其被配置成使用可变长度码字来编码(形成频域音频表示722的该频谱值集合中的)一个频谱值或多个频谱值或其预处理版本,以获得编码音频信息712(其例如可包含多个可变长度码字)。
算术编码器1230被配置成依据脉络状态,将一个频谱值或多个频谱值,或者一个频谱值或多个频谱值的最高有效比特平面映射至一码值(亦即映射至一可变长度码字)。算术编码器1230被配置成依据脉络状态,选择描述一个频谱值或多个频谱值,或者一个频谱值或多个频谱值的最高有效比特平面至一码值的映射的映射规则。该算术编码器被配置成依据多个先前已编码的(较佳但不一定相邻的)频谱值来确定当前脉络状态。为了达成此项目的,该算术编码器被配置成基于先前已编码的频谱值来获得多个脉络子区值,储存所述脉络子区值,及依据所储存的脉络子区值来导算出与一或多个欲编码频谱值相关联的一当前数值脉络值。此外,该算术编码器被配置成计算由多个先前已编码的频谱值所形成的一向量的范数(norm),以获得与多个先前已编码的频谱值相关联的一共用脉络子区值。
如图可知,一个频谱值或多个频谱值,或者一个频谱值或多个频谱值的最高有效比特平面映射至码值可借频谱值编码740,使用由映射规则信息742所描述的映射规则执行。状态追踪器1250可被配置成追踪脉络状态,且可包含脉络子区值运算器1252,用以计算由多个先前已编码的频谱值所形成的向量的范数,以获得与多个先前已编码的频谱值相关联的一共用脉络子区值。状态追踪器1250也较佳地被配置成依据由脉络子区值运算器1252所执行的脉络子区值运算的结果来确定当前脉络状态。据此,状态追踪器1250提供描述当前脉络状态的信息1254。映射规则选择器1260可选择描述一个频谱值或多个频谱值,或者一个频谱值或多个频谱值的最高有效比特平面至码值的映射的映射规则,例如,累积频率表。据此,映射规则选择器1260提供映射规则信息742给频谱编码740。
综上所述,音频编码器1200执行由时域至频域变换器720所提供的频域音频表示的算术编码。该算术编码为脉络相依性,使得映射规则(例如,累积频率表)依据先前已编码的频谱值而选定。据此,在算术编码中考虑时间上及/或频率上(或至少在预定环境内部)彼此相邻及/或相邻于当前编码频谱值(亦即在该当前编码频谱值的预定环境内部的频谱值)的频谱值来调整由算术编码器所评估的概率分布。
为了提供当前数值脉络值,基于由多个先前已编码的频谱值所形成的向量的范数的运算而获得与多个先前已编码的频谱值相关联的脉络子区值。当前数值脉络值的确定结果应用于当前脉络状态的选择,亦即应用于映射规则的选择。
借由计算由多个先前已编码的频谱值所形成的一向量的范数,可获得描述一或多个欲编码频谱值的脉络的一部分的有意义信息,其中先前已编码的频谱值的一向量的范数通常可用相对较少数比特表示。如此,需要储存以备以后导算当前数值脉络值要用的脉络信息量可借由应用前文讨论的脉络子区值运算办法而维持足够少。业已发现先前已编码的频谱值的一向量的范数通常包含有关脉络状态的最有效信息。相反地,业已发现先前已编码的频谱值符号(sign)通常包含对脉络状态的附属影响,因而忽略先前已编码的频谱值符号来减少需储存以备后用的信息量是合理的。而且,业已发现先前已编码的频谱值的一向量的范数运算是用以导算一脉络子区值的合理办法,原因在于通常借范数运算所获得的平均效果对有关脉络状态的最重要信息实质上没有影响。概括而言,借脉络子区值运算器1252执行的脉络子区值运算允许提供压缩脉络子区值信息供储存以备再度使用,其中尽管信息量减少,但有关脉络状态的最相关信息仍然保留了下来。
据此,可获得输入音频信息710的有效编码,同时维持算术编码器1230的运算量及储存的数据量够小。
7.依据图13的音频解码器
图13显示音频解码器1300的方块示意图。由于音频解码器1300类似于依据图8的音频解码器800和依据图11的音频解码器1100,相同装置、信号及功能标示以相同的参考数字。
音频解码器1300被配置成接收音频信息810,及基于此来提供已解码的音频信息812。音频解码器1300包含算术解码器1320,其被配置成基于频谱值的算术编码表示821来提供多个已解码的频谱值822。音频解码器1300还包含频域至时域变换器830,其被配置成接收解码频谱值822,及使用解码频谱值822提供可组成解码音频信息的时域音频表示812,以获得解码音频信息812。
算术解码器1320包含频谱值确定器824,其被配置成将频谱值的算术编码表示821的码值映射至表示解码频谱值中的一或多者,或者解码频谱值中的一或多者的至少一部分(例如,最高有效比特平面)的符元码。频谱值确定器824可被配置成依据映射规则执行映射,映射规则借映射规则信息828a来描述。映射规则信息828a例如可包含映射规则索引值,或可包含累积频率表表项的一选定集合。
算术解码器1320被配置成依据脉络状态(其可由脉络状态信息1326a来描述)来选择描述码值(由频谱值的算术编码表示821来描述)至符元码(描述一或多个频谱值)的映射的映射规则(例如,累积频率表)。算术解码器1320被配置成依据多个先前已解码的频谱值822来确定当前脉络状态。为了达成此项目的,可使用状态追踪器1326,其接收描述先前已解码的频谱值的信息。算术解码器还被配置成基于先前已解码的频谱值而获得多个脉络子区值,并且储存所述脉络子区值。该算术解码器被配置成依据所储存的脉络子区值而导算出与一或多个欲解码频谱值相关联的当前数值脉络值。算术解码器1320被配置成计算由多个先前已解码的频谱值所形成的一向量的范数,以获得与多个先前已解码的频谱值相关联的一共用脉络子区值。
计算先前已编码的频谱值的一向量的范数以获得与多个先前已解码的频谱值相关联的一共用脉络子区值,例如可借脉络子区值运算器1327来执行,该运算器是状态追踪器1326的一部分。据此,当前脉络状态信息1326a基于脉络子区值而获得,其中状态追踪器1326较佳地依据所储存的脉络子区值来提供与一或多个欲解码频谱值相关联的当前数值脉络值。映射规则的选择可借映射规则选择器1328执行,该选择器从当前脉络状态信息1326a导算出映射规则信息828a,并提供映射规则信息828a给频谱值确定器824。
有关音频信号解码器1300的功能,须注意算术解码器1320被配置成选定一映射规则(例如,累积频率表),其一般而言良好适应于欲解码的频谱值,原因在于映射规则是依据当前脉络状态而选定的,而当前脉络状态又是依据多个先前已解码的频谱值而确定的。据此,可利用欲解码的相邻频谱值间的统计相依性。
但业已发现就内存的使用而言,储存基于由多个先前已解码的频谱值所形成的一向量的范数的运算的脉络子区值,供以后确定数值脉络值时使用是有效的。业已发现此类脉络子区值仍然包含最相关的脉络信息。据此,状态追踪器1326使用的构想构成编码效率、运算效率与储存效率间的良好折衷。
进一步细节容后详述。
8.依据图1的音频编码器
后文中将叙述依据本发明的实施例的音频编码器。图1显示这种音频编码器100的方块示意图。
音频编码器100被配置成接收输入音频信息110,及基于此来提供比特串流112,比特串流112组成编码音频信息。音频编码器100选择性地包含预处理器120,其被配置成接收输入音频信息110,及基于此来提供经预处理的输入音频信息110a。音频编码器100还包含能量压缩时域至频域信号变换器(transformer)130,其也被称为信号变换器(converter)。信号变换器130被配置成接收输入音频信息110、110a,及基于此来提供频域音频信息132,其较佳地呈一频谱值集合形式。例如,信号变换器130可被配置成接收输入音频信息110、110a的一帧(例如时域样本的一区块),及提供表示个别音频帧之音频内容的一频谱值集合。此外,信号变换器130可被配置成接收输入音频信息110、110a的多个接续重叠的或非重叠的音频帧,并基于此来提供一时频域音频表示,其包含一序列接续的频谱值集合,每个频谱值集合与每一帧相关联。
能量压缩时域至频域信号变换器130可包含一能量压缩滤波器组,其提供与不同的重叠的或非重叠的频率范围相关联的频谱值。例如,信号变换器130可包含加窗修正离散余弦变换(MDCT)变换器130a,其被配置成使用变换窗来对输入音频信息110、110a(或其一帧)加窗,及对已加窗输入音频信息110、110a(或其加窗帧)执行修正离散余弦变换(MDCT)。据此,频域音频表示132可包含例如1024个频谱值的一集合,呈与输入音频信息的一帧相关联的MDCT系数形式。
音频编码器100可进一步选择性地包含频谱后处理器140,其被配置成接收频域音频表示132,及基于此来提供经后处理的频域音频表示142。频谱后处理器140例如可被配置成执行时间噪声整形(noiseshaping)及/或长期预测及/或业界已知的任何其它频谱后处理。该音频编码器进一步选择性地包含定标器/量化器150,其被配置成接收频域音频表示132或其后处理版本142,及提供已定标且已量化的频域音频表示152。
音频编码器100进一步选择性地包含心理声学模型处理器160,其被配置成接收输入音频信息110(或其后处理版本110a),及基于此来提供选择性的控制信息,其可用于能量压缩时域至频域信号变换器130的控制,用于选择性的频谱后处理器140的控制,及/或用于选择性的定标器/量化器150的控制。例如,心理声学模型处理器160可被配置成分析输入音频信息,判定输入音频信息110、110a的哪些组分对音频内容的人类感知特别重要,及输入音频信息110、110a的哪些组分对音频内容感知较不重要。据此,心理声学模型处理器160可提供控制信息,其由音频编码器100用来调整定标器/量化器150对频域音频表示132、142的定标,及/或定标器/量化器150应用的量化分辨率。结果,感知上重要的尺度因子带(scale factor band)(亦即对音频内容的人类感知特别重要的相邻频谱值群组)以大尺度因子定标且以相对较高的分辨率量化,而感知上较不重要的尺度因子带(亦即相邻频谱值群组)以相对较小的尺度因子定标且以相对较低的量化分辨率量化。据此,感知上较为重要的频率的定标频谱值通常明显大于感知上较不重要的频率的定标频谱值。
音频编码器还包含算术编码器170,其被配置成接收频域音频表示132的已定标且已量化版本152(或者是频域音频表示132的后处理版本142,或甚至是频域音频表示132本身),及基于此来提供算术码字信息172a,使得算术码字信息表示频域音频表示152。
音频编码器100还包含比特串流有效载荷(playload)格式化器190,其被配置成接收算术码字信息172a。比特串流有效载荷格式化器190还通常被配置成接收额外信息,例如描述哪些尺度因子已经由定标器/量化器150应用的尺度因子信息。此外,比特串流有效载荷格式化器190可被配置成接收其它控制信息。比特串流有效载荷格式化器190被配置成通过依据期望的比特串流语法来组装比特串流,而基于所接收的信息来提供比特串流112,比特串流语法容后详述。
后文中,将描述有关算术编码器170的细节。算术编码器170被配置成接收多个频域音频表示132的已经后处理且经定标与量化的频谱值。该算术编码器包含一最高有效比特平面抽取器174,其被配置成从一个频谱值,或甚至从两个频谱值中抽取最高有效比特平面m。此处须注意最高有效比特平面可包含一个或甚至多个比特(例如,2或3比特),它们是该频谱值的最高有效比特。如此,最高有效比特平面抽取器174提供一频谱值的最高有效比特平面值176。
但另外,最高有效比特平面抽取器174可组合多个频谱值(例如,频谱值a和b)的最高有效比特平面,提供组合的最高有效比特平面值m。频谱值a的最高有效比特平面标示以m。另外,多个频谱值a、b的组合的最高有效比特平面值标示以m。
算术编码器170还包含第一码字确定器180,其被配置成确定表示最高有效比特平面值m的算术码字acod_m[pki][m]。第一码字确定器180还可选择性地提供一或多个脱序(escape)码字(此处也标示以「ARITH_ESCAPE」),其指示例如有多少较低有效的比特平面可资利用(且,因此,指示最高有效比特平面的数值权值)。第一码字确定器180可被配置成使用具有累积频率表索引pki(或被其指称)的一选定的累积频率表来提供与最高有效比特平面值m相关联的码字。
为了判定须选用哪一个累积频率表,该算术编码器较佳地包含一状态追踪器182,其被配置成例如借由观察哪些频谱值先前已经编码来追踪算术编码器的状态。因此,状态追踪器182提供状态信息184,例如标示以「s」或「t」或「c」的状态值。算术编码器170还包含一累积频率表选择器186,其被配置成接收状态信息184,及提供描述所选累积频率表的信息188给码字确定器180。例如,累积频率表选择器186可提供累积频率表索引「pki」,其描述96个累积频率表的一集合中哪个累积频率表被选定供码字确定器使用。另外,累积频率表选择器186可提供整个所选的累积频率表或子表给码字确定器。如此,码字确定器180可使用所选的累积频率表或子表来提供最高有效比特平面值m的码字acod_m[pki][m],使得编码最高有效比特平面值m的实际码字acod_m[pki][m]与m值及累积频率表索引pki具有相依性,并从而与当前状态信息184具有相依性。有关编码程序及所得码字格式的进一步细节容后详述。
但须注意在有些实施例中,状态追踪器182可与状态追踪器750、状态追踪器1050或状态追踪器1250相同或具有相同功能。还须注意在若干实施例中,累积频率表选择器186可与映射规则选择器760、映射规则选择器1060或映射规则选择器1260相同或具有相同功能。此外,在若干实施例中,第一码字确定器180可与频谱值编码740相同或具有相同功能。
算术编码器170进一步包含一较低有效比特平面抽取器189a,其被配置成若欲编码频谱值中的一或多者超过只使用最高有效比特平面即可编码的值的范围,则从已定标且已量化频域音频表示152中抽取一或多个较低有效比特平面。根据需要,较低有效比特平面可包含一或多个比特。据此,较低有效比特平面抽取器189a提供较低有效比特平面信息189b。算术编码器170还包含第二码字确定器189c,其被配置成接收较低有效比特平面信息189d,及基于此来提供表示0、1或多个较低有效比特平面内容的0、1或多个码字「acod_r」。第二码字确定器189c可被配置成应用算术编码算法或任何其它编码算法,以从较低有效比特平面信息189b导算出较低有效比特平面码字「acod_r」。
此处须注意较低有效比特平面的数目可依据已定标且已量化频谱值152的值而变化,使得若欲编码的已定标且已量化频谱值相对较小,则完全没有较低有效比特平面,使得若当前欲编码的已定标且已量化频谱值属于中等范围,则可能有一个较低有效比特平面,以及使得若欲编码的已定标且已量化频谱值具有相对较大值,则可能有多于一个较低有效比特平面。
综上所述,算术编码器170被配置成使用阶层式编码程序来编码借信息152描述的已定标且已量化频谱值。一或多个频谱值的最高有效比特平面(例如,对每一频谱值包含1、2或3比特)经编码以获得最高有效比特平面值m的算术码字「acod_m[pki][m]」。一或多个频谱值的一或多个较低有效比特平面(每一个较低有效比特平面例如包含1、2或3比特)经编码以获得一或多个码字「acod_r」。当编码最高有效比特平面时,最高有效比特平面的值m被映射至码字acod_m[pki][m]。为了达成此项目的,依据算术编码器170的状态,亦即依据先前已编码的频谱值来编码值m,96个不同的累积频率表可资利用。如此,获得码字「acod_m[pki][m]」。此外,若存在一或多个较低有效比特平面,则提供一或多个码字「acod_r」并将其纳入比特串流。
重置描述
音频编码器100可选择性地被配置成判定借由重置脉络,例如借由将状态索引设定为默认值,是否可获得比特率的改良。据此,音频编码器100可被配置成提供一重置信息(例如,命名为「arith_reset_flag」),其指示用于算术编码的脉络是否重置,且还指示在对应解码器中用于算术解码的脉络是否应重置。
有关比特串流格式及所应用的累积频率表的细节容后详述。
9.依据图2的音频解码器
后文中,将叙述依据本发明的实施例的音频解码器。图2显示这样一种音频解码器200的方块示意图。
音频解码器200被配置成接收一比特串流210,比特串流210表示已编码音频信息,且可与由音频编码器100所提供的比特串流112相同。音频解码器200基于比特串流210来提供已解码的音频信息212。
音频解码器200包含一选择性的比特串流有效载荷解格式化器220,其被配置成接收比特串流210,及从比特串流210中抽取已编码频域音频表示222。例如,比特串流有效载荷解格式化器220可被配置成从比特串流210中抽取算术编码频谱数据,例如表示频域音频表示的一个频谱值a或多个频谱值a、b的最高有效比特平面值m的算术码字「acod_m[pki][m]」,及表示频域音频表示的一个频谱值a或多个频谱值a、b的较低有效比特平面内容的码字「acod_r」。如此,已编码频域音频表示222组成(或包含)频谱值的算术编码表示。比特串流有效载荷解格式化器220进一步被配置成从比特串流中抽取图2中未显示的额外控制信息。此外,该比特串流有效载荷解格式化器选择性地被配置成从比特串流210中抽取状态重置信息224,其也被称为算术重置旗标或「arith_reset_flag」。
音频解码器200包含算术解码器230,其也被称为「频谱无噪声解码器」。算术解码器230被配置成接收已编码频域音频表示220,及选择性地接收状态重置信息224。算术解码器230还被配置成提供已解码频域音频表示232,其可包含频谱值的已解码表示。例如,已解码频域音频表示232可包含由已编码频域音频表示220描述的频谱值的已解码表示。
音频解码器200还包含一选择性的反量化器/重定标器240,其被配置成接收已解码频域音频表示232,及基于此来提供已反量化且已重定标的频域音频表示242。
音频解码器200进一步包含一选择性的频谱预处理器250,其被配置成接收已反量化且已重定标的频域音频表示242,及基于此来提供已反量化且已重定标的频域音频表示242的预处理版本252。音频解码器200还包含一频域至时域信号变换器260,其也被称为「信号变换器」。信号变换器260被配置成接收已反量化且已重定标的频域音频表示242的预处理版本252(或者是已反量化且已重定标的频域音频表示242或已解码频域音频表示232),及基于此来提供音频信息的时域表示262。频域至时域信号变换器260例如可包含用以执行修正离散余弦反变换(IMDCT)及适当加窗(以及其它附属功能,例如,重叠与相加)的变换器。
音频解码器200可进一步包含一选择性的时域后处理器270,其被配置成接收音频信息的时域表示262,及使用时域后处理来获得已解码音频信息212。但若删除后处理,则时域表示262可与解码音频信息212相同。
此处须注意反量化器/重定标器240、频谱预处理器250、频域至时域信号变换器260及时域后处理器270可依据控制信息而被控制,该控制信息是借比特串流有效载荷解格式化器220而从比特串流210中抽取得到的。
总结音频解码器200的整体功能,已解码频域音频表示232,例如与已编码音频信息的一音频帧相关联的一频谱值集合,可使用算术解码器230,基于已编码频域表示222而获得。随后,例如1024个频谱值的集合被反量化、重定标及预处理,这些频谱值可以是MDCT系数。据此,获得经反量化、重定标及经频谱预处理的频谱值(例如,1024个MDCT系数)的集合。随后,一音频帧的时域表示从经反量化、重定标及经频谱预处理的频谱值(例如,MDCT系数)集合而导算出。据此,获得一音频帧的时域表示。一给定音频帧的时域表示可与先前音频帧及/或后续音频帧的时域表示组合。例如,可执行接续音频帧的时域表示间的重叠与相加来使相邻音频帧的时域表示间的切换平滑化,并因而获得混叠消除(aliasingcancellation)。有关基于已解码时频域音频表示232来重组已解码音频信息212的细节,例如可参考国际标准ISO/IEC14496-3部分3子部分4,其中给出了详细讨论。但也可使用其它更详尽的重叠及混叠消除方案。
后文中,将描述有关算术解码器230的若干细节。算术解码器230包含最高有效比特平面确定器284,其被配置成接收描述最高有效比特平面值m的算术码字acod_m[pki][m]。最高有效比特平面确定器284可被配置成使用包含96个累积频率表的一集合中的一个累积频率表,从算术码字「acod_m[pki][m]」导算出最高有效比特平面值m。
最高有效比特平面确定器284被配置成基于码字acod_m来导算出多个频谱值中的一者的最高有效比特平面值286。算术解码器230进一步包含一较低有效比特平面确定器288,其被配置成接收表示一频谱值的一或多个较低有效比特平面的一或多个码字「acod_r」。据此,较低有效比特平面确定器288被配置成提供一或多个较低有效比特平面的解码值290。音频解码器200还包含一比特平面组合器292,其被配置成接收一或多个频谱值的最高有效比特平面的已解码值286,及若较低有效比特平面可供当前频谱值使用,则也可接收所述频谱值的较低有效比特平面的已解码值290。据此,比特平面组合器292提供已解码频谱值,它们是已解码频域音频表示232的一部分。当然,算术解码器230通常被配置成提供多个频谱值,以获得与音频内容的一当前帧相关联的已解码频谱值的一完整集合。
算术解码器230进一步包含一累积频率表选择器296,其被配置成依据描述算术解码器状态的一状态索引298来选择96个累积频率表中的一者。算术解码器230进一步包含一状态追踪器299,其被配置成依据先前已解码的频谱值来追踪算术解码器的状态。该状态信息可选择性地响应于状态重置信息224而被重置成默认状态信息。据此,累积频率表选择器296被配置成提供所选定的累积频率表的索引(例如,pki),或一选定的累积频率表或其子表本身,用以应用于依据码字「acod_m」来解码最高有效比特平面值m。
总结音频解码器200的功能,音频解码器200被配置成接收经比特率有效编码的频域音频表示222,及基于此来提供已解码频域音频表示。在用来基于已编码频域音频表示222来获得已解码频域音频表示232的算术解码器230中,通过使用被配置成应用一累积频率表的算术解码器280来利用相邻频谱值的最高有效比特平面值的不同组合的概率。换言之,通过依据状态索引298而从包含96个不同累积频率表的一集合中选出不同累积频率表来利用频谱值间的统计相依性,状态索引298是由观察先前算出的已解码频谱值获得的。
须注意状态追踪器299可与状态追踪器826、状态追踪器1126或状态追踪器1326相同或具有相同功能。累积频率表选择器296可与映射规则选择器828、映射规则选择器1128或映射规则选择器1328相同或具有相同功能。最高有效比特平面确定器284可与频谱值确定器824相同或具有相同功能。
10.频谱无噪声编码工具综论
后文中,将解释说明有关例如借算术编码器170及算术解码器230执行的编码及解码算法的细节。
注意力聚焦在解码算法的描述。但须注意可依据解码算法的教示来执行相对应的编码算法,其中编码频谱值与解码频谱值间的映射关系是颠倒的,且其中映射规则索引值的运算实质上是相同的。在编码器中,编码频谱值替代解码频谱值。而且,欲编码频谱值替代欲解码频谱值。
须注意使用解码(容后详述)是为了允许对通常已经后处理、经定标且经量化的频谱值进行所谓的「频谱无噪声编码」。频谱无噪声编码用于音频编码/解码构想(或任何其它编码/解码构想)以进一步减少借能量压缩时域至频域信号变换器所得的量化频谱的冗余。本发明的实施例中所使用的频谱无噪声编码方案以算术编码为基础,并结合动态调适脉络。
在依据本发明的若干实施例中,频谱无噪声编码方案以2元组(2-tuple)为基础,换言之,两个相邻频谱系数组合在一起。每一个2元组被分裂成符号、最高有效逐2-比特平面,及剩余的较低有效比特平面。使用由四个先前已解码的2元组导算出的脉络相依性累积频率表对最高有效逐2-比特平面m进行无噪声编码。无噪声编码馈入量化频谱值,且使用由四个先前已解码的2元组导算出的脉络相依性累积频率表。此处,在时间及频谱上邻近的2元组被列入考虑,如图4所示。然后累积频率表(容后详述)由算术编码器使用来产生可变长度二进制码(及借算术解码器来由可变长度二进制码导算出解码值)。
例如,算术编码器170对一给定符元集合及它们各自的概率(亦即取决于各自的概率)产生二进制码。该二进制码是通过将该符元集合所在的一概率区间映射至一码字而产生的。
使用单一累积频率表来对剩下的较低有效比特平面r进行无噪声编码。累积频率例如与出现在较低有效比特平面的符元的均匀分布相对应,亦即预期在较低有效比特平面出现0或1的概率相等。
后文中,将给出频谱无噪声编码工具的另一段简短综论。使用频谱无噪声编码来进一步减少量化频谱的冗余。频谱无噪声编码方案以算术编码以基础,结合动态调适性脉络。无噪声编码馈入量化频谱值,且使用例如由四个先前已解码的邻近频谱值导算出的2元组的脉络相依性累积频率表。此处,在时间及频谱上邻近的2元组被列入考虑,如图4所示。然后累积频率表由算术编码器使用来产生可变长度二进制码。
算术编码器对一给定符元集合及它们各自的概率产生二进制码。二进制码是通过将该符元集合所在的一概率区间映射至一码字而产生的。
11.解码程序
11.1解码程序综论
后文中,将参考图3给出一频谱值编码程序的综论,该图显示解码多个频谱值的程序的伪程序码表示。
多个频谱值的解码程序包含脉络的初始化(initialization)310。脉络的初始化310包含使用函数「arith_map_context(N,arith_reset_flag)」由一先前脉络导算出当前脉络。由先前脉络导算出当前脉络可选择性地包含脉络的重置。脉络的重置以及由先前脉络导算出当前脉络容后详述。
多个频谱值的解码还包含频谱值解码312及脉络更新313的迭代重复(iteration),脉络更新313借函数「arith_update_context(i,a,b)」执行,容后详述。除非检测到所谓的「ARITH_STOP」符元,否则频谱值解码312及脉络更新312重复lg/2次,此处lg/2指示欲解码频谱值的2元组数目(例如,对一音频帧而言)。此外,将一个由lg个频谱值组成的集合解码还包含一符号解码314及一结束步骤315。
一频谱值元组的解码312包含脉络值计算312a、最高有效比特平面解码312b、算术终止符元检测312c、较低有效比特平面加法312d,及阵列更新312e。
状态值运算312a包含调用例如如图5c或5d所示的函数「arith_get_context(c,i,N)」。据此,提供当前数值脉络(状态)值c作为函数「arith_get_context(c,i,N)」的函数调用的回送值(returnvalue)。如图可知,数值先前脉络值(也标示以「c」)作为函数「arith_get_context(c,i,N)」的输入变量,由回送值来更新以获得当前数值脉络值c。
最高有效比特平面解码312b包含解码算法312ba的迭代重复执行,及从算法312ba的结果值m导算312bb得到值a,b。在算法312ba的准备中,变量lev被初始化为零。算法312ba被重复直至达到「中断」指令(或条件)为止。算法312ba包含使用函数「arith_get_pk()」,依据当前数值脉络值c,且还依据位阶值「esc_nb」来计算状态索引「pki」(其也用作累积频率表索引),关于函数「arith_get_pk()」容后详述(且例如,图5e及5f显示其实施例)。算法312ba还包含依据通过调用函数「arith_get_pk」所回送的状态索引「pki」来选择一累积频率表,其中变量「cum_freq」可依据状态索引「pki」被设定为96个累积频率表(或子表)中的一者的起始地址。变量「cfl」也可被初始化成该选定累积频率表(或子表)的长度,此长度例如等于码表(alphabet)中的符元数目,亦即可解码的不同值的数目。可利用来解码最高有效比特平面值m的从「ari_cf_m[pki=0][17]」到「ari_cf_m[pki=95][17]」的全部累积频率表(或子表)的长度为17,故可解码16个不同的最高有效比特平面值及一个脱序符元(「ARITH_ESCAPE」)。
随后,考虑所选累积频率表(借变量「cum_freq」及变量「cfl」描述),通过执行函数「arith_decode()」可获得最高有效比特平面值m。当导算最高有效比特平面值m时,可评估比特串流210中被命名为「acod_m」的比特(例如,参见图6g或图6h)。
算法312ba还包含检查最高有效比特平面值m是否等于脱序符元「ARITH_ESCAPE」。若最高有效比特平面值m不等于算术脱序符元,则中断算法312ba(「中断」条件),然后跳过算法312ba的其余指令。据此,通过在步骤312bb中设定值b和值a来继续执行程序。相反地,若已解码的最高有效比特平面值m与该算术脱序符元或「ARITH_ESCAPE」相同,则位阶值「lev」递增1。除非在位阶值「lev」大于7的情况下,位阶值「esc_nb」被设定为等于7,否则位阶值「esc_nb」被设定为等于位阶值「lev」。如上文所提到的,接着重复算法312ba直到已解码最高有效比特平面值m与算术脱序符元相异为止,其中使用的是经修改的脉络(原因在于函数「arith_get_pk()」的输入参数是依据变量「esc_nb」的值而调整适应的)。
一旦最高有效比特平面使用算法312ba的一次执行或迭代重复执行而解码时,亦即与算术脱序符元相异的最高有效比特平面值m已经解码时,频谱值变量「b」就被设定为等于最高有效比特平面值m的多个(例如,2个)较高有效比特;且频谱值变量「a」被设定为等于最高有效比特平面值m的(例如,2个)最低比特。有关此功能的细节例如参见参考数字312bb。
接着在步骤312c中检查是否存在算术终止符元。如果最高有效比特平面值m等于零且变量「lev」大于零,则存在算术终止符元。据此,算术终止条件是借「不寻常」条件标示的,其中最高有效比特平面值m等于零,而变量「lev」指示与最高有效比特平面值m相关联的增加的数值权值。换言之,若比特串流指示需给予等于零的最高有效比特平面值的数值权值增加而高于最小数值权值,这种情况在正常编码情况下不会发生,则检测到算术终止条件。换言之,若编码算术脱序符元后接有等于零的编码最高有效比特平面值,则标示算术终止条件。
在步骤212c中执行是否有算术终止条件的评估后,获得较低有效比特平面,例如,如图3中的参考数字212d所示。对每一个较低有效比特平面,解码两个二进制值。二进制值中的一者与变量a(或一频谱值元组的第一个频谱值)相关联,而二进制值中的一者与变量b(或一频谱值元组的第二个频谱值)相关联。较低有效比特平面的数目标示以变量lev。
在一或多个最低有效比特平面(若有的话)的解码中,迭代重复地执行算法212da,其中算法212da的执行次数由变量「lev」确定。此处须注意算法212da的第一次迭代重复基于如步骤212bb中设定的变量a、b的值进行。算法212da的更多的迭代重复基于变量a、b的已更新变量值进行。
在迭代重复开始时,选定一累积频率表。随后,执行算术解码来获得变量r的值,其中变量r的值描述多个较低有效比特,例如,一个与变量a相关联的较低有效比特,及一个与变量b相关联的较低有效比特。使用函数「ARITH_DECODE」来获得值r,其中累积频率表「arith_cf_r」用于算术解码。
随后更新变量a及b的值。为了达成此项目的,变量a向左移位1比特,且已移位的变量a的最低有效比特被设定成由值r的最低有效比特所定义的值。变量b向左移位1比特,且已移位的变量b的最低有效比特被设定成由变量r的比特1所定义的值,其中在变量r的二进制表示中,变量r的比特1具有等于2的数值权值。然后重复算法412ba直至全部最低有效比特皆被解码为止。
在较低有效比特平面解码后,更新阵列「x_ac_dec」,其中变量a、b的值被储存在具有阵列索引2*i及2*i+1的阵列的表项(entry)中。
随后,脉络状态通过调用函数「arith_update_context(i,a,b)」来更新,其细节参考图5g容后详述。
在步骤313中所执行的脉络状态更新后,重复算法312及313直到运行变量(runningvariable)i达到lg/2的值或直到检测到算术终止条件为止。
随后,执行结束算法「arith_finish()」,这从参考数字315可知。结束算法「arith_finish()」的细节将参考图5m描述如下。
在结束算法315之后,使用算法314来解码频谱值的符号。如图可知,不等于零的频谱值的符号被单独编码。在算法314中,对具有索引i介于i=0与i=lg-1之间的全部非零的频谱值读取符号。对具有索引i介于i=0与i=lg-1之间的每一个非零频谱值,自比特串流读取一个值(通常为单一比特)s。若读取自比特串流的s的值等于1,则该频谱值的符号反相(inverted)。为了达成此项目的,对阵列「x_ac_dec」作存取,这么做是为了判定具有索引i的频谱值是否等于零,同时也是为了更新已解码频谱值的符号。但须注意变量a、b的符号在符号解码314中保持不变。
借由在符号解码314之前执行结束算法315,可以在ARITH_STOP符元之后,重置全部需重置的频率仓(frequency bin)。
此处须注意在若干依据本发明的实施例中,获得较低有效比特平面值的构想并非特别有关。在若干实施例中,甚至可删除任何较低有效比特平面的解码。另外,可使用不同的解码算法来实现此项目的。
11.2依据图4的解码顺序
后文中,将叙述频谱值的解码顺序。
量化频谱系数「x_ac_dec[]」经无噪声编码,且从最低频率系数开始,朝向最高频率系数地传输(例如,在比特串流中)。
结果,量化频谱系数「x_ac_dec[]」从最低频率系数开始,朝向最高频率系数而被无噪声解码。量化频谱系数借两个接续(例如,频率相邻的)系数a及b集合成所谓的2元组(a,b)(也标示以{a,b})的群组而解码。此处须注意量化频谱系数有时也标示以「qdec」。
接着,用于频域模式的已解码系数「x_ac_dec[]」(例如使用修正离散余弦变换获得的用于高级音频编码的已解码系数,例如ISO/IEC14496部分3子部分4中所讨论的)被储存在阵列「x_ac_quant[g][win][sfb][bin]」中。无噪声编码码字的传输顺序使得当它们以被接收顺序解码并储存在阵列中时,「bin」为最快速递增索引,而「g」为最慢递增索引。在码字内部,解码顺序为a,b。
用于变换编码激励(TCX)的已解码系数「x_ac_dec[]」例如被直接储存在阵列「x_tcx_invquant[win][bin]」中,且无噪声编码码字的传输顺序使得当它们以所接收的顺序解码并储存在阵列中时,「bin」为最快速递增索引,而「win」为最慢递增索引。在码字内部,解码顺序为a,b。换言之,若频谱值描述语音编码器的线性预测滤波器的变换编码激励,则频谱值a、b与变换编码激励的相邻且递增频率相关联。与较低频率相关联的频谱系数通常在与较高频率相关联的频谱系数之前编码与解码。
显而易见地,音频解码器200可被配置成应用由算术解码器230所提供的已解码频域表示232,用于使用频域至时域信号变换「直接」产生时域音频信号表示,及用于使用频域至时域解码器及借频域至时域信号变换器的输出所激励的线性预测滤波器来「间接」提供时域音频信号表示。
换言之,此处详细讨论其功能的算术解码器极为适合用以解码在频域中编码的音频内容的时频域表示的频谱值,以及用以提供用于线性预测滤波器的一激励信号的时频域表示,该滤波器适用于解码(或合成)在线性预测域中编码的语音信号。如此,算术解码器极为适合用于音频解码器,其能够处理频域编码音频内容及线性预测频域编码音频内容(变换编码激励-线性预测域模式)。
11.3依据图5a及5b的脉络初始化
后文中,将叙述在步骤310中所执行的脉络初始化(也称为「脉络映射」)。
脉络初始化包含依据算法「arith_map_context()」在过去脉络与当前脉络间的映射,图5a显示算法的第一实例,且图5b显示算法的第二实例。
如图可知,当前脉络被储存在全局变量(global variable)「q[2][n_context]」中,其呈具有第一维为2而第二维为「n_context」的阵列形式。过去脉络可选择性地(但不一定)储存在变量「qs[n_context]」中,其呈具有一维「n_context」(若使用的话)的表的形式。
参考图5a中的实例算法「arith_map_context」,输入变量N描述一当前窗的长度,且输入变量「arith_reset_flag」指示脉络是否应重置。此外,全局变量「previous_N」描述前一窗的长度。此处须注意通常,就时域样本而言,与一窗相关联的频谱值数目至少约等于该窗长度的一半。此外,须注意就时域样本而言,频谱值的2元组数目至少约等于该窗长度的四分之一。
参考图5a的实例,脉络的映射可依据算法「arith_map_context()」执行。此处须注意若旗标「arith_reset_flag」为作动的(active)并因此指示脉络须被重置,则对j=0至j=N/4-1,函数「arith_map_context()」设定当前脉络阵列q的表项「q[0][j]」为零。否则,换言之,若旗标「arith_reset_flag」为非作动的(inactive),则当前脉络阵列q的表项「q[0][j]」从当前脉络阵列q的表项「q[1][k]」导算出。须注意若与当前(例如,频域编码的)音频帧相关联的频谱值数目等同于与前一音频帧相关联的频谱值数目,则对j=k=0至j=k=N/4-1,依据图5a的函数「arith_map_context()」设置当前脉络阵列q的表项「q[0][j]」为当前脉络阵列q的值「q[1][k]」。
当与当前音频帧相关联的频谱值数目和与前一音频帧相关联的频谱值数目不同时,执行更复杂的映射。但在这种情况下有关映射的细节与本发明的关键构想并无特殊关联,因此相关细节可参考图5a的伪程序码。
此外,当前数值脉络值c的初始化值由函数「arith_map_context()」回送。此初始化值例如等于表项「q[0][0]」的值向左移位12比特。据此,数值(当前)脉络值c被正确初始化用于迭代重复更新。
此外,图5b显示可做为选择使用的算法「arith_map_context()」的另一实例。详情请参考图5b的伪程序码。
综上所述,旗标「arith_reset_flag」判定脉络是否须重置。若旗标为真,则调用算法「arith_map_context()」的一重置子算法500a。但另外,若旗标「arith_reset_flag」为非作动的(其指出无需执行脉络的重置),则解码程序从初始化阶段开始,此处脉络元素向量(或阵列)q借由将储存在q[1][]中的前一帧的脉络元素拷贝并映射至q[0][]而更新。q内部的脉络元素以每2元组4-比特储存。脉络元素的拷贝及/或映射在子算法500b中执行。
在图5b的实例中,解码程序从初始化阶段开始,此处映射在储存在qs中的已保存的过去脉络与当前帧脉络q之间进行。过去脉络qs以每一频率线(frequencyline)2-比特储存。
11.4依据图5c及5d的状态值运算
后文中,将更详细地叙述状态值运算312a。
第一种实例算法将参考图5c说明,而第二种实例算法将参考图5d说明。
须注意当前数值脉络值c(如图3所示)可作为函数「arith_get_context(c,i,N)」的回送值而获得,图5c显示函数的伪程序码表示。但另外,当前数值脉络值c可作为函数「arith_get_context(c,i)」的回送值而获得,图5d显示函数的伪程序码表示。
有关状态值的运算,也参考图4,该图显示用于状态评估的脉络,亦即用于当前数值脉络值c的运算。图4显示频谱值在时间及频率二方面的二维表示。横座标410描述时间,且纵座标412描述频率。如图4可知,欲解码的频谱值元组420(较佳地使用当前数值脉络值)与时间索引t0及频率索引i相关联。如图可知,对时间索引t0,具有频率索引i-1、i-2及i-3的元组在具有频率索引i的元组120的频谱值欲解码时已经解码。如图4可知,具有时间索引t0及频率索引i-1的频谱值430在频谱值元组420解码之前已经解码,且考虑将频谱值元组430用于用以解码频谱值元组420的脉络。同理,具有时间索引t0-1及频率索引i-1的频谱值440、具有时间索引t0-1及频率索引i的频谱值450,及具有时间索引t0-1及频率索引i+1的频谱值460在频谱值元组420解码之前已经解码,且考虑将其用于确定用以解码频谱值元组420的脉络。在频谱值元组420解码时已经解码且考虑用于脉络的频谱值(系数)以影线方块显示。相反地,已经解码(在元组420的频谱值被解码时)但未考虑用于脉络(用于解码元组420的频谱值)的若干其它频谱值以虚线的方块显示,而其它频谱值(当元组420的频谱值解码时尚未被解码)以虚线的圆显示。借虚线的方块表示的元组及借虚线的圆表示的元组并未用于确定用以解码元组420的频谱值的脉络。
然而须注意,仍可评估未用于用以解码元组420的频谱值的脉络的「常规」或「正常」运算的那些频谱值中的某些频谱值,以检测多个先前已解码的相邻频谱值,所述频谱值单独或一起满足有关它们的幅度的预定条件。有关此议题的细节容后详述。
现在参考图5c,将描述算法「arith_get_context(c,i,N)」的细节。图5c以伪程序码形式显示该函数「arith_get_context(c,i,N)」的功能,其使用众所周知的C语言及/或C++语言协定。如此,将叙述有关计算由函数「arith_get_context(c,i,N)」所执行的当前数值脉络值「c」的更多细节。
须注意函数「arith_get_context(c,i,N)」接收可由数值先前脉络值c所描述的「旧状态脉络」作为输入变量。函数「arith_get_context(c,i,N)」也接收欲解码频谱值2元组的索引i作为输入变量。索引i通常为频率索引。输入变量N描述欲解码频谱值的一窗的窗长度。
函数「arith_get_context(c,i,N)」提供输入变量c的更新版本作为输出值,该输出值描述更新的状态脉络,且可被视为当前数值脉络值。概括而言,函数「arith_get_context(c,i,N)」接收数值先前脉络值c作为输入变量,及提供其更新版本,其被视为当前数值脉络值。此外,函数「arith_get_context」考虑变量i、N,也存取「全局」阵列q[][]。
有关函数「arith_get_context(c,i,N)」的细节,须注意最初以二进制形式表示数值先前脉络值的变量c在步骤504a中向右移位4-比特。据此,舍弃数值先前脉络值(以输入变量c表示)的四个最低有效比特。而且,数值先前脉络值的其它比特的数值权值降低了,例如16倍。
此外,若2元组的索引i小于N/4-1,亦即不取最大值,则当前数值脉络值经修改,表项q[0][i+1]的值加至步骤504a中所得的已移位脉络值的比特12至15(亦即加至具有212、213、214及215数值权值的比特)。为了达成此项目的,阵列q[][]的表项q[0][i+1](或更精确地说,该表项所表示的值的二进制表示)向左移位12-比特。然后,表项q[0][i+1]所表示的值的移位版本加至在步骤504a中导算出的脉络值c,亦即加至数值先前脉络值的经比特移位的(向右移位4-比特)数字表示。此处须注意阵列q[][]的表项q[0][i+1]表示与音频内容的一先前部分(例如,参考图4定义的具有时间索引t0-1的音频内容的一部分)相关联的一子区值,及具有比当前欲解码频谱值元组(使用由函数「arith_get_context(c,i,N)」所输出的当前数值脉络值c)更高的频率(例如,如参考图4定义的具有频率索引i+1的频率)。换言之,如果频谱值元组420欲使用当前数值脉络值来解码,那么表项q[0][i+1]可以以先前已解码的频谱值元组460为基础。
阵列q[][]的表项q[0][i+1](向左移位12-比特)的选择性加法以参考符数字504b显示。如图可知,表项q[0][i+1]所表示的值的加法当然唯有在频率索引i并未标示具有最高频率索引i=N/4-1的频谱值元组时执行。
随后,在步骤504c中,执行布尔与运算,其中变量c的值与十六进制值0xFFF0借与(AND)组合来获得变量c的更新值。借由执行这种与运算,变量c的四个最低有效比特被有效地设定为零。
在步骤504d中,表项q[1][i-1]的值加至在步骤504c中所得的变量c的值,借此更新变量c的值。但步骤504d中的变量c的更新唯有在欲解码的2元组的频率索引i大于零时才执行。须注意对小于欲使用当前数值脉络值来解码的频谱值的频率的频率,表项q[1][i-1]为基于音频内容的当前部分的先前已解码频谱值的元组的一脉络子区值。例如,当假设频谱值元组420欲使用由当前执行函数「arith_get_context(c,i,N)」而回送的当前数值脉络值来解码时,阵列q[][]的表项q[1][i-1]可能与具有时间索引t0及频率索引i-1的元组430相关联。
综上所述,数值先前脉络值的比特0、1、2及3(亦即四个最低有效比特的一部分)在步骤504a中借由将它们移位出数值先前脉络值的二进制数字表示而被舍弃。此外,移位的变量c(亦即移位的数值先前脉络值)的比特12、13、14及15在步骤504b中被设定为取由脉络子区值q[0][i+1]所定义的值。移位的数值先前脉络值的比特0、1、2及3(亦即原始数值先前脉络值的比特4、5、6及7)在步骤504c及504d中由脉络子区值q[1][i-1]所覆写(overwrite)。
因此,可以讲,数值先前脉络值的比特0至3表示与频谱值元组432相关联的脉络子区值,数值先前脉络值的比特4至7表示与先前已解码频谱值元组434相关联的脉络子区值,数值先前脉络值的比特8至11表示与先前已解码频谱值元组440相关联的脉络子区值,且数值先前脉络值的比特12至15表示与先前已解码频谱值元组450相关联的脉络子区值。输入到函数「arith_get_context(c,i,N)」中的数值先前脉络值与频谱值元组430的解码相关联。
作为函数「arith_get_context(c,i,N)」的输出变量而获得的当前数值脉络值与频谱值元组420的解码相关联。据此,当前数值脉络值的比特0至3描述与频谱值元组430相关联的脉络子区值,当前数值脉络值的比特4至7描述与频谱值元组440相关联的脉络子区值,当前数值脉络值的比特8至11描述与频谱值元组450相关联的脉络子区值,且当前数值脉络值的比特12至15描述与频谱值元组460相关联的脉络子区值。如此,可知数值先前脉络值的一部分,亦即数值先前脉络值的比特8至15也含括在当前数值脉络值中作为当前数值脉络值的比特4至11。相反地,当从数值先前脉络值的数字表示导算当前数值脉络值的数字表示时,当前的数值先前脉络值的比特0至7被舍弃。
在步骤504e中,当欲解码2元组的频率索引i大于一预定数字,例如大于3时,表示当前数值脉络值的变量c被选择性地更新。在这种情况下,亦即若i大于3,则判定脉络子区值q[1][i-3]、q[1][i-2]与q[1][i-1]的和是否小于(或等于)一个预定值,例如5。若发现所述脉络子区值的和小于该预定值,则一个十六进制值,例如,0x10000,加至变量c。据此,变量c被设定,使得变量c指出是否有脉络子区值q[1][i-3]、q[1][i-2]与q[1][i-1]组成一特别小的总和值的情况。例如,当前数值脉络值的比特16可用作指出这种情况的旗标。
总结而言,函数「arith_get_context(c,i,N)」的回送值由步骤504a、504b、504c、504d及504e确定,此处当前数值脉络值在步骤504a、504b、504c及504d中从数值先前脉络值导算出,且其中指示先前已解码的频谱值通常具有特别小的绝对值的环境的一旗标在步骤504e中导算出并加至变量c。如此,若在步骤504e中评估的条件未满足,则步骤504a、504b、504c、504d所得变量c的值在步骤504f中回送作为函数「arith_get_context(c,i,N)」的回送值。相反地,若在步骤504e中评估的条件得到满足,则在步骤504e中,在步骤504a、504b、504c及504d中所导算出的变量c的值增加0x10000的十六进制值且回送此增量运算的结果。
综上所述,须注意无噪声解码器输出无符号的量化频谱系数的2元组(容后详述)。首先,脉络状态c基于「环绕」欲解码2元组的先前已解码的频谱系数而被算出。在一较佳实施例中,状态(例如,由数值脉络值表示)使用最后一个解码的2元组(被称为数值先前脉络值)的脉络状态递增地更新,只考虑两个新的2元组(例如,2元组430及460)。状态以17-比特编码(例如,使用当前数值脉络值的数字表示)且由函数「arith_get_context()」回送。详情请参考图5c的程序码表示。
此外,须注意图5d显示函数「arith_get_context()」的一替代实施例的伪程序码。依据图5d的函数「arith_get_context(c,i)」类似于依据图5c的函数「arith_get_context(c,i,N)」。但依据图5d的函数「arith_get_context(c,i)」并不包括对包含最小频率索引i=0或最大频率索引i=N/4-1的频谱值元组的特殊处理或解码。
11.5映射规则选择
后文中,将描述映射规则,例如描述码字值至符元码的映射的累积频率表的选择。映射规则的选择依据由当前数值脉络值c所描述的脉络状态而进行。
11.5.1使用依据图5e的算法的映射规则选择
后文中,将描述使用函数「arith_get_pk(c)」的映射规则的选择。须注意函数「arith_get_pk()」在子算法312ba开始时解码码值「acod_m」用以提供一频谱值元组时被调用。须注意函数「arith_get_pk(c)」在算法312b的不同迭代重复时以不同参数(argument)调用。例如,在算法312b的第一次迭代重复中,函数「arith_get_pk(c)」以等于先前在步骤312a中执行函数「arith_get_context(c,i,N)」时所提供的当前数值脉络值c的参数被调用。相反地,在子算法312ba的更多的迭代重复中,函数「arith_get_pk(c)」的调用参数为由函数「arith_get_context(c,i,N)」在步骤312a中所提供的当前数值脉络值c,及变量「esc_nb」的值的经比特移位版本的和,其中变量「esc_nb」的值向左移位17-比特。因此,在算法312ba的第一次迭代重复时,亦即在解码相对较小频谱值时,由函数「arith_get_context(c,i,N)」所提供的当前数值脉络值c用作函数「arith_get_pk()」的输入值。相反地,在解码相对较大频谱值时,函数「arith_get_pk()」的输入变量经修改,将变量「esc_nb」的值列入考虑,如图3中所示。
现在参考图5e,此图显示函数「arith_get_pk(c)」的第一个实施例的伪程序码表示,须注意函数「arith_get_pk()」接收变量c作为输入值,其中变量c描述脉络状态,且其中至少在某些情况下,函数「arith_get_pk()」的输入变量c等于由函数「arith_get_context()」作为回送变量所提供的当前数值脉络值。此外,须注意函数「arith_get_pk()」以输出变量形式提供变量「pki」,其描述概率模型的索引且可被认为是映射规则索引值。
参考图5e,可知函数「arith_get_pk()」包含变量初始化506a,其中变量「i_min」被初始化为取-1的值。类似地,变量i被设定为等于变量「i_min」,使得变量i也被初始化为值-1。变量「i_max」被初始化为具有比表「ari_lookup_m[]」的表项数目小1的值(其细节将参考图21(1)及21(2)作说明)。据此,变量「i_min」与「i_max」界定出一个区间。
随后,执行搜寻506b来识别标示表「ari_hash_m」的一表项的索引值,使得函数「arith_get_pk()」的输入变量c的值位于由所述表项与一相邻表项所界定的一区间内。
在搜寻506b中,当变量「i_max」与「i_min」之间的差大于1时重复子算法506ba。在子算法506ba中,变量i被设定为等于变量「i_min」与「i_max」的值的算术平均。结果,变量i标示在由变量「i_min」与「i_max」的值所界定的一表区间中间的表「ari_hash_m[]」的一表项。随后,变量j被设定为等于表「ari_hash_m[]」的表项「ari_hash_m[i]」的值。因此,变量j具有由表「ari_hash_m[]」的一表项所定义的值,该表项位于由变量「i_min」与「i_max」的值所界定的一表区间的中间。随后,若函数「arith_get_pk()」的输入变量c的值与由表「ari_hash_m[]」的表项「j=ari_hash_m[i]」的最高比特所定义的状态值相异,则更新由变量「i_min」与「i_max」所界定的区间。例如,表「ari_hash_m[]」的表项的「较高比特」(比特8及以上)描述有效状态值。据此,值「j>>8」描述由散列表索引值i标示的表「ari_hash_m[]」的表项「j=ari_hash_m[i]」所表示的一有效状态值。如此,若变量c的值小于值「j>>8」,则这意味着由变量c所描述的状态值小于由表「ari_hash_m[]」的表项「ari_hash_m[i]」所描述的一有效状态值。在这种情况下,变量「i_max」的值被设定为等于变量i的值,而这又具有使得由「i_min」与「i_max」所界定的区间的大小缩小的效果,其中新区间大约等于前一个区间的下半部(lower half)。若发现函数「arith_get_pk()」的输入变量c大于值「j>>8」,这意味着变量c所描述的脉络值大于由阵列「ari_hash_m[]」的表项「ari_hash_m[i]」所描述的一有效状态值,则变量「i_min」的值被设定为等于变量i的值。如此,由变量「i_min」与「i_max」的值所界定的区间的大小缩小至约为由变量「i_min」与「i_max」的先前值所界定的前一个区间的大小的一半。更精确地说,在变量c的值大于由表项「ari_hash_m[i]」所定义的有效状态值的情况下,由更新的变量「i_min」的值与由变量「i_max」的先前(未改变的)值所界定的区间约等于前一个区间的上半部(upper half)。
但若发现由算法「arith_get_pk()」的输入变量c所描述的脉络值等于由表项「ari_hash_m[i]」所定义的有效状态值(亦即c==(j>>8)),则回送由表项「ari_hash_m[i]」的最低8-比特所定义的映射规则索引值作为函数「arith_get_pk()」的回送值(指令「return(回送)(j&0xFF)」)。
综上所述,表项「ari_hash_m[i]」,其最高比特(比特8及以上)描述有效状态值,在每一次迭代重复506ba中评估,且由函数「arith_get_pk()」的输入变量c所描述的脉络值(或当前数值脉络值)与由该表项「ari_hash_m[i]」所描述的有效状态值作比较。若由输入变量c所表示的脉络值小于由表项「ari_hash_m[i]」所表示的有效状态值,则表区间的上边界(由值「i_max」所描述)缩小,且若由输入变量c所描述的脉络值大于由表项「ari_hash_m[i]」所描述的有效状态值,则表区间的下边界(由变量「i_min」的值所描述)增加。在所述这两种情况下,除非区间(由「i_max」与「i_min」间的差所界定)大小小于或等于1,否则重复子算法506ba。相反地,若由输入变量c所描述的脉络值等于由表项「ari_hash_m[i]」所描述的有效状态值,则函数「arith_get_pk()」被舍弃,其中回送值由表项「ari_hash_m[i]」的最低8-比特所界定。
但若因区间大小达到其最小值(「i_max」-「i_min」小于或等于1)而结束搜寻506b,则函数「arith_get_pk()」的回送值借表「ari_lookup_m[]」的一表项「ari_lookup_m[i_max]」确定,这从参考数字506c可知。据此,表「ari_hash_m[]」的表项定义有效状态值及区间边界。在子算法506ba中,搜寻区间边界「i_min」与「i_max」迭代重复地调整,使得表「ari_hash_m[]」的表项「ari_hash_m[i]」至少近似由输入变量c所描述的脉络值,其中「ari_hash_m[i]」的散列表索引i至少约略位于由区间边界值「i_min」与「i_max」所界定的搜寻区间的中心。因此,除非由输入变量c所描述的脉络值等于由表「ari_hash_m[]」的一表项所描述的有效状态值,否则如此达成,在子算法506ba的迭代重复完成后,由输入变量c所描述的脉络值位于由「ari_hash_m[i_min]」与「ari_hash_m[i_max]」所界定的区间内部。
但若因区间大小(由「i_max-i_min」定义)达到或超过其最小值而结束子算法506ba的迭代重复,则假设由输入变量c所描述的脉络值并非一有效状态值。在这种情况下,仍然使用标示区间上边界的索引「i_max」。子算法506ba的最后一次迭代重复所达到的区间上限值「i_max」再度用作存取表「ari_lookup_m」的表索引值。表「ari_lookup_m[]」描述与多个相邻数值脉络值所形成的区间相关联的映射规则索引值。与由表「ari_lookup_m[]」的表项所描述的映射规则索引值相关联的区间借由表「ari_hash_m[]」的表项所描述的有效状态值来定义。表「ari_hash_m[]」的表项定义有效状态值及相邻数值脉络值的区间的区间边界。在执行算法506b时,判定由输入变量c所描述的数值脉络值是否等于有效状态值,且若并非此种情况,则判定由输入变量c所描述的脉络值位于数值脉络值的哪一个区间(从多个区间中选出,所述区间的边界由有效状态值定义)。因此,算法506b满足双重功能:判定输入变量c是否描述有效状态值,且若不是这样,则识别由输入变量c所表示的脉络值所在的且由有效状态值确定界限的一区间。因此,算法506e特别有效率且只需要相对较少次的表存取。
综上所述,脉络状态c确定用来解码最高有效逐2-比特平面m的累积频率表。如同函数「arith_get_pk()」执行的从c至相对应的累积频率表索引「pki」的映射。该函数「arith_get_pk()」的伪程序码表示已经参考图5e说明过。
进一步概括上述,值m使用调用累积频率表「arith_cf_m[pki][]」的函数「arith_decode()」(在下文中更加详细地加以描述)而被解码,此处「pki」对应于函数「arith_get_pk()」所回送的索引(也称为映射规则索引值),函数「arith_get_pk()」参考图5e做了描述。
11.5.2使用依据图5f的算法的映射规则选择
后文中,将参考图5f叙述映射规则选择算法「arith_get_pk()」的另一实施例,该图显示这种算法的伪程序码表示,其可用于解码一频谱值元组。依据图5f的算法可被视为算法「get_pk()」或算法「arith_get_pk()」的优化版本(例如,速度优化版本)。
依据图5f的算法「arith_get_pk()」接收描述脉络状态的变量c作为输入变量。输入变量c例如可表示当前数值脉络值。
算法「arith_get_pk()」提供变量「pki」作为输出变量,该变量描述与由输入变量c所描述的脉络状态相关联的概率分布(或概率模型)索引。变量「pki」可以是,例如,映射规则索引值。
依据图5f的算法包含阵列「i_diff[]」内容的定义。如图可知,阵列「i_diff[]」的第一个表项(具有阵列索引0)等于299,而其它阵列表项(具有阵列索引1至8)取149、74、37、18、9、4、2及1的值。据此,用于选择散列表索引值「i_min」的步进大小(stepsize)随着每一次迭代重复而缩小,原因在于阵列「i_diff[]」的表项定义所述步进大小。详情请参照下文的讨论。
但实际上可选择不同步进大小,例如阵列「i_diff[]」的不同内容,其中阵列「i_diff[]」的内容自然可经调整而适应散列表「ari_hash_m[i]」的大小。
须注意恰在算法「arith_get_pk()」开始时,变量「i_min」被初始化为取0值。
在初始化步骤508a中,变量s依据输入变量c而初始化,其中变量c的数字表示向左移位8比特以获得变量s的数字表示。
随后,执行表搜寻508b,以识别散列表「ari_hash_m[]」的一表项的散列表索引值「i_min」,使得由脉络值c所描述的脉络值位于由散列表表项「ari_hash_m[i_min]」所描述的脉络值与另一散列表表项「ari_hash_m」所描述的脉络值确定界限的一区间内,该另一表项「ari_hash_m」相邻于(就其散列表索引值而言)散列表表项「ari_hash_m[i_min]」。因此,算法508b允许确定标示散列表「ari_hash_m[]」的一表项「j=ari_hash_m[i_min]」的散列表索引值「i_min」,使得散列表表项「ari_hash_m[i_min]」至少近似于由输入变量c所描述的脉络值。
表搜寻508b包含子算法508ba的迭代重复执行,其中子算法508ba被执行预定次数,例如9次迭代重复。在子算法508ba的第一步骤中,变量i被设定为等于变量「i_min」的值与表项「i_diff[k]」的值的和。此处须注意k为运行变量(runningvariable),其针对子算法508ba的每一次迭代重复,从k=0的初值开始递增。阵列「i_diff[]」定义预定增加值,其中增加值随表索引k的增加,亦即随迭代重复次数的增加而减小。
在子算法508ba的第二步骤中,表项「ari_hash_m[]」的值被拷贝到变量j中。较佳地,表「ari_hash_m[]」的表项的最高比特描述数值脉络值的有效状态值,且表「ari_hash_m[]」的表项的最低比特(比特0至7)描述与各自的有效状态值相关联的映射规则索引值。
在子算法508ba的第三步骤中,变量S的值与变量j的值作比较,且当变量s的值大于变量j的值时,变量「i_min」被选择性地设定为值「i+1」。随后,子算法508ba的第一步骤、第二步骤,及第三步骤重复预定次数,例如九次。因此,在每次执行子算法508ba时,当且仅当由当前有效散列表索引i_min+i_diff[]所描述的脉络值小于由输入变量c所描述的脉络值时,变量「i_min」的值增加i_diff[]+1。据此,在每次执行子算法508ba时,当(且仅当)由输入变量c且因此由变量s所描述的脉络值大于由表项「ari_hash_m[i=i_min+diff[k]]」所描述的脉络值时,散列表索引值「i_min」(迭代重复地)增加。
此外,须注意在每次执行子算法508ba时,只执行单次比较,亦即关于变量s的值是否大于变量j的值的比较。据此,算法508ba的运算特别地有效率。此外,须注意就变量「i_min」的终值而言,有不同的可能结果。例如,在最后一次执行子算法512ba后,变量「i_min」的值可能使得由表项「ari_hash_m[i_min]」所描述的脉络值小于由输入变量c所描述的脉络值,且由表项「ari_hash_m[i_min+1]」所描述的脉络值大于由输入变量c所描述的脉络值。另外,可能在最后一次执行子算法508ba后,由散列表表项「ari_hash_m[i_min-1]」所描述的脉络值小于由输入变量c所描述的脉络值,且由表项「ari_hash_m[i_min]」所描述的脉络值大于由输入变量c所描述的脉络值。但另外,由散列表表项「ari_hash_m[i_min]」所描述的脉络值可能等于由输入变量c所描述的脉络值。
因此,执行基于决策的回送值提供508c。变量j被设定为具有散列表表项「ari_hash_m[i_min]」的值。随后,判定由输入变量c(及也由变量s)所描述的脉络值是否大于由表项「ari_hash_m[i_min]」所描述的脉络值(借条件「s>j」定义的第一种情况),或由输入变量c所描述的脉络值是否小于由散列表表项「ari_hash_m[i_min]」所描述的脉络值(借条件「c<j>>8」定义的第二种情况),或由输入变量c所描述的脉络值是否等于由表项「ari_hash_m[i_min]」所描述的脉络值(第三种情况)。
在第一种情况(s>j)下,由表索引值「i_min+1」标示的表「ari_lookup_m[]」的表项「ari_lookup_m[i_min+1]」回送作为函数「arith_get_pk()」的输出值。在第二种情况(c<(j>>8))下,由表索引值「i_min」标示的表「ari_lookup_m[]」的表项「ari_lookup_m[i_min]」回送作为函数「arith_get_pk()」的回送值。在第三种情况(亦即当由输入变量c所描述的脉络值等于由表项「ari_hash_m[i_min]」所描述的有效状态值时)下,由散列表表项「ari_hash_m[i_min]」的最低8-比特所描述的映射规则索引值被回送作为函数「arith_get_pk()」的回送值。
综上所述,在步骤508b中执行特别简单的表搜寻,其中该表搜寻提供变量「i_min」的变量值,而未区别由输入变量c所描述的脉络值是否等于由表「ari_hash_m[]」的状态表项之一所定义的有效状态值。在继表搜寻508b之后执行的步骤508c中,评估由输入变量c所描述的脉络值与由散列表表项「ari_hash_m[i_min]」所描述的有效状态值间的幅度关系,且依据该评估的结果来选择函数「arith_get_pk()」的回送值,其中考虑用在表评估508b中所确定的变量「i_min」的值来选择映射规则索引值,即便由输入变量c所描述的脉络值与由散列表表项「ari_hash_m[i_min]」所描述的有效状态值不同。
须进一步注意算法中的比较应较佳地(或另外)在脉络索引(数值脉络值)c与j=ari_hash_m[i]>>8间进行。实际上,表「ari_hash_m[]」的每一个表项表示一个脉络索引,脉络索引以高于第八比特的比特来编码,且其相对应的概率模型用最先的八个比特(最低有效比特)来编码。在当前实施例中,发明人主要关注在知晓当前脉络c是否大于ari_hash_m[i]>>8,其相当于检测s=c<<8是否也大于ari_hash_m[i]。
综上所述,一旦脉络状态被算出(例如可使用依据图5c的算法「arith_get_context(c,i,N)」或依据图5d的算法「arith_get_context(c,i)」达成),最高有效逐2-比特平面使用调用了和与脉络状态对应的概率模型相对应的适当累积频率表的算法「arith_decode」(容后详述)来解码。对应关系借,例如,函数「arith_get_pk()」来完成,函数「arith_get_pk()」已经参考图5f讨论过。
11.6算术解码
11.6.1使用依据图5g的算法的算术解码
后文中,将参考图5g详细讨论函数「arith_decode()」的功能。
须注意函数「arith_decode()」使用辅助(helper)函数「arith_first_symbol(void)」,若它是序列的第一个符元,则回送真(TRUE),否则即回送伪(FALSE)。函数「arith_decode()」还使用辅助函数「arith_get_next_bit(void)」,其获得且提供比特串流的下一比特。
此外,函数「arith_decode()」还使用全局变量「低(low)」、「高(high)」及「值(value)」。而且,函数「arith_decode()」接收变量「cum_freq[]」作为输入变量,其指向所选累积频率表或累积频率子表的第一个表项或元素(具有元素索引或表项索引0)。并且,函数「arith_decode()」使用输入变量「cfl」,其指示标示以变量「cum_freq[]」的所选累积频率表或累积频率子表的长度。
函数「arith_decode()」包含变量初始化570a作为第一步骤,若辅助函数「arith_first_symbol()」指示正在解码一序列符元中的第一个符元,则执行此步骤。值初始化550a依据使用辅助函数「arith_get_next_bit」而得自比特串流的多个,例如,16个比特而将变量「值」初始化,使得变量「值」具有由所述比特所表示的值。而且,变量「低」被初始化成取0值,且变量「高」被初始化成取65535的值。
在第二步骤570b中,变量「范围」被设定为比变量「高」与「低」的值间的差值大1的值。变量「cum」被设定为表示变量「值」的值在变量「高」值与变量「低」值间的相对位置的一值。据此,依据变量「值」的值,变量「cum」取,例如,0至216间的值。
指针p被初始化为比所选累积频率表的起始地址小1的值。
算法「arith_decode()」还包含迭代重复的累积频率表搜寻570c。迭代重复的累积频率表搜寻重复执行直到变量cfl小于或等于1为止。在迭代重复的累积频率表搜寻570c中,指针变量q被设定为一个等于指针变量p的当前值与变量「cfl」的值的一半的和的值。若所选累积频率表的表项*q(该表项借指针变量q来定址)的值大于变量「cum」的值,则指针变量p被设定为指针变量q的值,且变量「cfl」增加。最后,变量「cfl」向右移位一个比特,借此有效地将变量「cfl」的值除以2并忽略模(modulo)部分。
据此,迭代重复的累积频率表搜寻570c有效地比较变量「cum」的值与所选累积频率表的多个表项来识别该所选累积频率表内部的一区间,该区间由该累积频率表的表项确定界限,使得值cum位于所识别区间的内部。如此,所选累积频率表的表项界定区间,其中个别符元值与所选累积频率表的各区间相关联。而且,累积频率表的两个相邻值之间的区间宽度定义与所述区间相关联的符元的概率,使得所选累积频率表整体界定不同符元(或符元值)的概率分布。有关可用累积频率表的细节将参考图23讨论如下。
再度参考图5g,符元值从指针变量p的值导算,其中该符元值如参考数字570d所示而导算。如此,指针变量p的值与起始地址「cum_freq」的值之间的差被评估出来以获得符元值,其以变量「符元」表示。
算法「arith_decode」还包含变量「高」及「低」的调整(adaptation)570e。若以变量「符元」表示的符元值不等于零,则更新变量「高」,如参考数字570e所示。并且,更新变量「低」的值,如参考数字570e所示。变量「高」被设定为由变量「低」、变量「范围」及所选累积频率表中具有索引「符元-1」的表项所确定的值。变量「低」增加,其中增加幅度由变量「范围」及所选累积频率表中具有索引「符元」的表项所确定。如此,变量「低」与「高」的值间的差依据所选累积频率表的两相邻表项间的数值差来调整。
因此,若检测到具有低概率的符元值,则变量「低」与「高」的值间的区间缩小成狭窄宽度。相反地,若检测到的符元值包含相对较高的概率,则变量「低」与「高」的值间的区间的宽度被设定为相对较大的值。再者,变量「低」与「高」的值间的区间宽度取决于所检测的符元及对应的累积频率表表项。
算法「arith_decode()」还包含区间重整化570f,其中在步骤570e中确定的区间迭代重复地移位与定标直至达到「中断」条件为止。在区间重整化570f中,执行选择性的向下移位操作570fa。若变量「高」小于32768,则不做任何动作,且区间重整化继续执行区间大小增加操作570fb。但若变量「高」不小于32768,且若变量「低」大于或等于32768,则变量「值」、「低」及「高」全部减少32768,使得由变量「低」及「高」所界定的区间向下移位,且使得变量「值」的值也向下移位。但若发现变量「高」的值不小于32768,且变量「低」并不大于或等于32768,且变量「低」大于或等于16384,且变量「高」小于49152,则变量「值」、「低」及「高」全部减少16384,借此变量「高」与「低」的值间的区间,及变量「值」的值也向下移位。但若上述条件都不满足,则舍弃区间重整化。
但若满足步骤570fa中所评估的前述任一条件,则执行区间增加操作570fb。在区间增加操作570fb中,变量「低」的值加倍。变量「高」的值也加倍,且加倍结果再加1。变量「值」的值也加倍(向左移位一个比特),且借辅助函数「arith_get_next_bit」所得比特串流的一个比特用作最低有效比特。据此,变量「低」与「高」的值间的区间大小约略加倍,且变量「值」的精度借由使用比特串流的一新比特而增加。如前文提到的,重复步骤570fa及570fb直至达到「中断」条件为止,亦即直至变量「低」与「高」的值间的区间足够大为止。
有关算法「arith_decode()」的功能,须注意变量「低」与「高」的值间的区间在步骤570e中缩小,这取决于由变量「cum_freq」引用的累积频率表的两个相邻表项。若所选累积频率表的两个相邻值间的区间很小,亦即若相邻值相对较接近,则步骤570e中所得的变量「低」与「高」的值间的区间将相对较小。相反地,若累积频率表的两个相邻表项间隔较远,则步骤570e中所得的变量「低」与「高」的值间的区间将相对较大。
结果,若步骤570e中所得的变量「低」与「高」的值间的区间相对较小,则将执行很多次区间重整化步骤来将区间重定标至「足够」大小(使得条件评估570fa的条件皆未满足)。据此,将使用得自比特串流的相对较大数目的比特来增加变量「值」的精度。相反地,若步骤570e中所得区间大小为相对较大,将仅需要重复较少次数的区间正规化步骤570fa及570fb来将变量「低」与「高」的值间的区间重整为「足够」大小。据此,将只使用相对较少数目得自比特串流的比特来增加变量「值」的精度,及准备下一符元的解码。
综上所述,若一包含相对较高概率的符元已被解码,及与其相关联的所选累积频率表表项的区间很大,则将从该比特串流只读取相对较少数目的比特以允许解码接续其后的符元。相反地,若一包含相对较低概率的符元已被解码,及与其相关联的所选累积频率表表项的区间很小,则将从该比特串流读取相对较大数目的比特来准备解码下一符元。
据此,累积频率表的表项反映不同符元的概率,同时也反映用以解码一序列符元所需的比特数目。借由依据脉络,亦即依据先前解码符元(或频谱值),例如,借由依据脉络来选择不同的累积频率表而变更累积频率表,可利用不同符元间的随机相依性,其允许特别比特率有效率的随后(或相邻)符元的编码。
综上所述,已经参考图5g描述的函数「arith_decode()」调用对应于由函数「arith_get_pk()」回送的索引「pki」的累积频率表「arith_cf_m[pki][]」,以确定最高有效比特平面值m(其可被设定为由回送变量「符元」所表示的符元值)。
综上所述,算术解码器是使用以定标而产生标签的方法的整数实施例(integer implementation)。详情请参考书籍「Introduction to DataCompression」,作者K.Sayood,2006年,第三版,Elsevier Inc.。
依据图5g的计算机程序码描述依据本发明的一实施例所使用的算法。
11.6.2使用依据图5h及5i的算法的算术解码
图5h及5i显示算法「arith_decode()」的另一实施例的伪程序码表示,其可用作参考图5g所述算法「arith_decode」的替代物。
须注意依据图5g以及依据图5h和5i的算法均可用于依据图3的算法「values_decode()」。
概括而言,值m使用调用累积频率表「arith_cf_m[pki][]」的函数「arith_decode()」而被解码,其中「pki」对应于由函数「arith_get_pk()」所回送的索引。算术编码器(或解码器)是使用以定标而产生标签的方法的整数实施例。详情请参考书籍「Introduction to DataCompression」,作者K.Sayood,2006年,第三版,Elsevier Inc.。依据图5h及5i的计算机程序码描述所使用的算法。
11.7脱序机制
后文中将简短讨论用于依据图3的解码算法「values_decode()」的脱序机制。
当解码值m(作为函数「arith_decode()」的回送值而被提供)为脱序符元「ARITH_ESCAPE」时,变量「lev」及「esc_nb」增加1,且另一个值m被解码。在这种情况下,函数「arith_get_pk()」以值「c+esc_nb<<17」作为输入参数而被再度调用,此处变量「esc_nb」描述先前对相同的2元组解码且囿限于7的脱序符元的数目。
概括而言,当识别出脱序符元时,假设最高有效比特平面值m包含一增加的数值权值。此外,重复当前数值解码,其中修正的当前数值脉络值「c+esc_nb<<17」用作函数「arith_get_pk()」的输入变量。据此,在子算法312ba的不同迭代重复中,通常获得不同映射规则索引值「pki」。
11.8算术终止机制
后文将描述算术终止机制。当音频编码器中较高频率部分被完全量化为0的情况下,算术终止机制允许减少所需比特数目。
在一实施例中,算术终止机制可实施如下:一旦值m不是脱序符元「ARITH_ESCAPE」,解码器就检查接续的m是否形成「ARITH_ESCAPE」符元。若条件「esc_nb>0&&m==0」为真,则检测到「ARITH_STOP」符元且解码程序结束。在这种情况下,解码器直接跳至「arith_finish()」函数,「arith_finish()」函数容后详述。该条件意味着该帧其余部分由0值组成。
11.9较低有效比特平面解码
后文中,将描述一或多个较低有效比特平面的解码。较低有效比特平面的解码,例如,在图3中所示步骤312d中进行。但另外,也可使用图5j及5n中所示算法。
11.9.1依据图5j的较低有效比特平面解码
现在参考图5j,可知变量a及b的值从值m导算出。例如,值m的数字表示向右移位2-比特来获得变量b的数字表示。此外,变量a的值借由从变量m的值减变量b的值的向左移位2-比特的经比特移位版本而获得。
随后,重复最低有效比特平面值r的算术解码,其中重复次数由变量「lev」的值确定。最低有效比特平面值r使用函数「arith_decode」而获得,其中使用适应于最低有效比特平面的解码的累积频率表(累积频率表「arith_cf_r」)。变量r的最低有效比特(具有数值权值1)描述由变量a所表示的频谱值的较低有效比特平面,且变量r的具有数值权值2的一比特描述变量b所表示的频谱值的较低有效比特。据此,变量a借由将变量a向左移位1比特并加上变量r的具有数值权值1的比特作为最低有效比特而更新。同理,变量b借由将变量b向左移位1比特并加上变量r的具有数值权值2的比特而更新。
据此,变量a、b的两个载有信息的最高有效比特借最高有效比特平面值m确定,且值a及b的一或多个最低有效比特(若有的话)由一或多个较低有效比特平面值r确定。
综上所述,当不满足「ARITH_STOP」符元时,对当前2元组其余比特平面(若存在的话)解码。其余比特平面借由调用使用累积频率表「arith_cf_r[]」的函数「arith_decode()」「lev」次,而从最高有效位阶至最低有效位阶解码。已解码比特平面r允许依据算法来改进(refining)先前已解码的值m,图5j显示算法的伪程序码。
11.9.2依据图5n的较低有效比特带解码
但另外,其伪程序码表示显示于图5n的该算法也可用于较低有效比特平面的解码。在这种情况下,若不满足「ARITH_STOP」符元,则对当前2元组其余比特平面(若存在的话)解码。其余比特平面借由调用使用累积频率表「arith_cf_r()」的「arith_decode()」「lev」次,而从最高有效位阶至最低有效位阶解码。已解码比特平面r允许依据图5n中所示算法来改进先前已解码的值m。
11.10脉络更新
11.10.1依据图5k、5l及5m的脉络更新
后文中,将参考图5k及5l,描述用以完成频谱值元组解码的操作。此外,将描述用来完成与音频内容的当前部分(例如,当前帧)相关联的一频谱值元组集合之解码的操作。
现在参考图5k,可知在较低有效比特解码312d之后,阵列「x_ac_dec[]」的具有表项索引2*i的表项被设定为等于a,且阵列「x_ac_dec[]」的具有表项索引「2*i+1」的表项被设定为等于b。换言之,在较低有效比特解码312d之后,2元组(a,b)的无符号值被完全解码。依据图5k中所示算法,储存在保有频谱系数的元素(例如,阵列「x_ac_dec[]」)中。
随后,也对下一个2元组更新脉络「q」。须注意此脉络更新也须对最后一个2元组执行。此脉络更新借其伪程序码表示显示于图5l的函数「arith_update_context()」来执行。
现在参考图5l,可知函数「arith_update_context(i,a,b)」接收2元组的已解码无符号的已量化频谱系数(或频谱值)a,b作为输入变量。此外,函数「arith_update_context」也接收欲解码的已量化频谱系数的索引i(例如,频率索引)作为输入变量。换言之,输入变量i,例如,可以是其绝对值由输入变量a、b来定义的频谱值元组的索引。如图可知,阵列「q[][]」的表项「q[1][i]」可被设定为等于a+b+1的值。此外,阵列「q[][]」的表项「q[1][i]」的值可被限于「0xF」的十六进制值。如此,阵列「q[][]」的表项「q[1][i]」借由计算具有频率索引i的频谱值的当前解码元组{a,b}的绝对值的和并将和值结果加1而获得。
此处须注意阵列「q[][]」的表项「q[1][i]」可被视为脉络子区值,原因在于其描述用于额外频谱值(或频谱值元组)后续解码的脉络的一子区。
此处须注意两个当前解码频谱值的绝对值a及b(其有符号版本储存在阵列「x_ac_dec[]」的表项「x_ac_dec[2*i]」及「x_ac_dec[2*i+1]」中)的加总可被视为已解码频谱值的范数(例如,L1范数)的运算。
业已发现描述由多个先前已解码的频谱值形成的向量的范数的脉络子区值(亦即阵列「q[][]」的表项)特别有意义且存储高效。业已发现基于多个先前已解码的频谱值算出的此种范数包含精简形式的有意义的脉络信息。业已发现频谱值符号通常与脉络的选择并不是特别相关。还发现经过(across)多个先前已解码的频谱值的范数的形成(formation),即便舍弃若干细节,通常也仍保有最重要的信息。此外,还发现将当前数值脉络值限制在最大值内通常不会导致信息的严重损失。反而,业已发现对大于预定临界值的有效频谱值使用相同的脉络状态更加有效率。如此,对脉络子区值加以限制使内存效率进一步改良。此外,还发现将脉络子区值限制在某个最大值内允许特别简单且运算有效的当前数值脉络值的更新,这已经参考,例如,图5c及5d描述过。借由将脉络子区值限制于相对较小的值(例如,限制于值15),基于多个脉络子区值的脉络状态可以有效率的形式来表示,这已经参考图5c及5d讨论过。
此外,业已发现将脉络子区值限制于1至15之间的值,获得准确度与内存效率间的特佳折衷,原因在于4比特即足以储存此脉络子区值。
但须注意在若干其它实施例中,脉络子区值可只以单一解码频谱值为基础。在这种情况下,范数的形成可选择性地被省略。
该帧的下一个2元组在函数「arith_update_context」完成后解码,解码方式是借由使i递增1,且从函数「arith_get_context()」开始重做前述相同程序。
当在帧内部的lg/2个2元组被解码或依据「ARITH_ESCAPE」的终止符元出现时,频谱幅度的解码程序结束而符号的解码开始。
有关符号解码的细节已经参考图3讨论过,其中参考数字314中显示符号的解码。
一旦全部无符号且已量化的频谱系数都已解码,就加上对应符号。对「x_ac_dec」的每一个非空(non-null)量化值,读取一比特。若所读取的比特值等于0,则该量化值为正,不做任何动作,且有符号值等于先前已解码的无符号值。否则(亦即若所读取的比特值等于1),已解码系数(或频谱值)即为负,且2的补数取自无符号值。符号比特从低频至较高频读取。详情请参考图3及关于符号解码314的说明。
借由调用函数「arith_finish()」完成解码。其余频谱系数被设定为0。个别脉络状态对应地更新。
详情请参考图5m,其显示函数「arith_finish()」的伪程序码表示。如图可知,函数「arith_finish()」接收输入变量lg,其描述已解码的已量化频谱系数。较佳地,函数「arith_finish」的输入变量lg描述实际上已解码的频谱系数的数目,未考虑响应于「ARITH_STOP」符元的检测被分派0值的频谱系数。函数「arith_finish」的输入变量N描述当前窗(亦即与音频内容的当前部分相关联的窗)的窗长度。典型地,与长度为N的窗相关联的频谱值的数目等于N/2,而与窗长度为N的窗相关联的频谱值的2元组的数目等于N/4。
函数「arith_finish」也接收已解码的频谱值的向量「x_ac_dec」,或至少接收此已解码的频谱系数的向量的指标(reference)作为输入值。
函数「arith_finish」被配置成将因算术终止条件的存在而无频谱值被解码的阵列(或向量)「x_ac_dec」的表项设定为0。此外,函数「arith_finish」设定脉络子区值「q[1][i]」为预定值1,上述脉络子区值与因算术终止条件的存在而无任何值被解码的频谱值相关联。预定值1与一频谱值元组相对应,其中两个频谱值均等于0。
据此,函数「arith_finish()」允许更新整个频谱值阵列(或向量)「x_ac_dec[]」以及整个脉络子区值阵列「q[1][i]」,即便在算术终止条件存在情况下亦如此。
11.10.2依据图5o及5p的脉络更新
后文将参考图5o及5p描述脉络更新的另一实施例。2元组(a,b)的无符号值被完全解码时,对下一个2元组更新脉络q。若当前2元组为最后一个2元组,也进行更新。两项更新都借函数「arith_update_context()」执行,图5o显示其伪程序码表示。
然后,该帧的下一个2元组借使i递增1及调用函数「arith_decode()」而被解码。若该帧的lg/2个2元组已经解码,或若出现终止符元「ARITH_STOP」,则调用函数「arith_finish()」。脉络被保存,并储存在阵列(或向量)「qs」中以用于下一帧。图5p显示函数「arith_save_context()」的伪程序码。
一旦全部无符号且已量化的频谱系数都已经解码,则补上符号。对每一个未经量化值「qdec」,读取一比特。若读取比特值等于0,则量化值为正,不做任何动作,且有符号值等于先前已解码的无符号值。否则,已解码系数为负,且从无符号值取2的补数。有符号比特自低频至高频读取。
11.11解码程序的概要
后文中,将简短概述解码程序。详情请参考前文讨论以及图3、4、5a、5c、5e、5g、5j、5k、5l及5m。量化频谱系数「x_ac_dec[]」从最低频率系数开始并前进至最高频率系数而无噪声地解码。它们由集合在所谓的2元组(a,b)中的成组的两个连续系数a,b来解码。
然后,频域(亦即频域模式)的已解码系数「x_ac_dec[]」被储存在阵列「x_ac_quant[g][win][sfb][bin]」中。无噪声编码码字的传输顺序使得当它们以所接收的顺序解码并储存在阵列中时,「bin」为最快速递增索引,且「g」为最慢递增索引。在码字内部,解码顺序为a,然后为b。「TCX」的解码系数「x_ac_dec[]」(亦即使用变换编码激励的音频解码)被储存(例如,直接储存)在阵列「x_tcx_invquant[win][bin]」中,且无噪声编码码字的传输顺序使得当它们以所接收的顺序解码并储存在阵列中时,「bin」为最快速递增索引,且「win」为最慢递增索引。在码字内部,解码顺序为a,然后为b。
首先,旗标「arith_reset_flag」判定脉络是否须被重置。若旗标为真,则在函数「arith_map_context」中考虑此点。
解码程序从初始化阶段开始,此处脉络元素向量「q」借由将储存在「q[1][]」中的前一帧的脉络元素拷贝并映射至「q[0][]」而更新。「q」内部的脉络元素以每2元组4-比特储存。详情请参考图5a的伪程序码。
无噪声解码器输出无符号且已量化的频谱系数的2元组。首先,脉络状态c基于环绕欲解码2元组的先前已解码频谱系数来计算。因此,只考虑两个新的2元组,使用最后一个解码的2元组的脉络状态,递增地更新状态。状态以17-比特解码,且由函数「arith_get_context」回送。图5c显示设定函数(set function)「arith_get_context」的伪程序码表示。
脉络状态c确定用以解码最高有效逐2-比特平面m的累积频率表。从c至相对应的累积频率表索引「pki」的映射借函数「arith_get_pk()」执行。图5e显示函数「arith_get_pk()」的伪程序码表示。
使用调用累积频率表「arith_cf_m[pki][]」的函数「arith_decode()」来解码值m,此处「pki」对应于由「arith_get_pk()」回送的索引。算术编码器(及解码器)为使用以定标而产生标签的方法的整数实施例。依据图5g的伪程序码描述所使用的算法。
当解码值m为脱序符元「ARITH_ESCAPE」时,变量「lev」及「esc_nb」增加1,且另一值m被解码。在这种情况下,函数「get_pk()」再度以值「c+esc_nb<<17」作为输入参数而被调用,此处「esc_nb」是先前对相同的2元组解码且囿限于7的脱序符元的数目。
一旦值m不是脱序符元「ARITH_ESCAPE」,解码器就检查连续的m是否形成「ARITH_STOP」符元。若条件「esc_nb>0&&m==0」为真,则检测到「ARITH_STOP」符元且解码程序结束。解码器直接跳至后述的符号解码。该条件意味着该帧其余部分由0值组成。
若不满足「ARITH_STOP」符元,则对当前2元组解码其余比特平面(若存在的话)。其余比特平面借由调用使用累积频率表「arith_cf_r[]」的「arith_decode()」「lev」次而从最高有效位阶至最低有效位阶解码。已解码比特平面r允许依据其伪程序码显示于图5j的该算法来改进先前已解码的值m。此时,2元组(a,b)的无符号值被完全解码。其依据伪程序码表示显示于图5k的该算法被储存到保有频谱系数的元素中。
脉络「q」也对下一个2元组而更新。须注意此脉络更新也须对最后一个2元组执行。此脉络更新借其伪程序码表示显示于图5l的函数「arith_update_context()」执行。
然后,该帧的下一个2元组借由使i增加1,且藉由从函数「arith_get_context()」开始重做如前文所述的相同程序而被解码。当在帧内部的lg/2个2元组被解码或当出现终止符元「ARITH_STOP」时,频谱幅度的解码程序结束而符号的解码开始。
解码借由调用函数「arith_finish()」结束。其余频谱系数被设定为0。个别脉络状态对应地更新。图5m显示函数「arith_finish」的伪程序码表示。
一旦全部无符号且已量化的频谱系数都已解码,就补上对应符号。对「x_ac_dec」的每一个非空量化值,读取一比特。若所读取的比特值等于0,则该量化值为正,不做任何动作,且有符号值等于先前已解码的无符号值。否则,已解码系数为负,且2的补数取自无符号值。有符号比特从低频至高频读取。
11.12说明
图5q显示与依据图5a、5c、5e、5f、5g、5j、5k、5l及5m的算法相关的定义的说明。
图5r显示与依据图5b、5d、5f、5h、5i、5n、5o及5p的算法相关的定义的说明。
12.映射表
在依据本发明的一实施例中,特别有用的表「ari_lookup_m」、「ari_hash_m」及「ari_cf_m」用于依据图5e或图5f的函数「arith_get_pk()」的执行,以及用于参考图5g、5h及5i讨论的函数「arith_decode()」的执行。但须注意不同的表可用于依据本发明的若干实施例。
12.1依据图22的表「ari_hash_m[600]」
图22的表显示函数「arith_get_pk」(其第一实施例参考图5e来描述且其第二实施例参考图5f来描述)所使用的表「ari_hash_m」的特别有用的实施方式的内容。须注意图22的表列举表(或阵列)「ari_hash_m[600]」的600个表项。还须注意图22的表格表示以元素索引的顺序显示元素,使得第一个值「0x000000100UL」对应于具元素索引(或表索引)0的表项「ari_hash_m[0]」,且使得最后一个值「0x7ffffffff4fUL」对应于具元素索引或表索引599的表项「ari_hash_m[599]」。此处须进一步注意「0x」指出表「ari_hash_m[]」的表项以十六进制格式表示。此外,此处须注意字尾「UL」指出表「ari_hash_m[]」的表项以无符号的「长」(unsignedlong)整数值(具有32-比特的精度)表示。
此外,须注意依据图22的表「ari_hash_m[]」的表项以数值顺序排列,以允许函数「arith_get_pk()」的表搜寻506b、508b、510b的执行。
须进一步注意表「ari_hash_m」的表项的最高有效24-比特表示某些有效状态值,而最低有效8-比特表示映射规则索引值「pki」。如此,表「ari_hash_m[]」的表项描述脉络值到映射规则索引值「pki」的「直接命中(directhit)」映射。
但表「ari_hash_m[]」的表项的最高24-比特同时表示,与相同映射规则索引值相关联的数值脉络值的区间的区间边界。有关此构想的细节已经在前面讨论过。
12.2依据图21的表「ari_lookup_m」
图21的表显示表「ari_lookup_m」的特别有用的实施例的内容。此处须注意图21的表列举表「ari_lookup_m」的表项。所述表项以一维整数型表项索引(也称为「元素索引」或「阵列索引」或「表索引」)引用,其,例如,标示以「i_max」或「i_min」。须注意表「ari_lookup_m」共包含600个表项,极为适合依据图5e或图5f的函数「arith_get_pk」使用。还须注意依据图21的表「ari_lookup_m」适用于与依据图22的表「ari_hash_m」共同作用。
须注意表「ari_lookup_m[600]」的表项以在0至599之间的表索引「i」(例如,「i_min」或「i_max」)的上升顺序列举。项「0x」指示所述表项以十六进制格式描述。据此,第一个表项「0x02」对应于具有表索引0的表项「ari_lookup_m[0]」,且最后一个表项「0x5E」对应于具有表索引599的表项「ari_lookup_m[599]」。
还须注意表「ari_lookup_m[]」的表项与由表「ari_hash_m[]」的相邻表项所界定的区间相关联。如此,表「ari_lookup_m」的表项描述与数值脉络值的区间相关联的映射规则索引值,其中所述区间由表「ari_hash_m」的表项界定。
12.3依据图23的表「ari_cf_m[96][17]」
图23显示一个由96个累积频率表(或子表)「ari_cf_m[pki][17]」组成的集合,其中的一个累积频率表(或子表)由音频编码器100、700或音频解码器200、800选择,例如,用于函数「arith_decode()」的执行,亦即用于最高有效比特平面值的解码。图23中所示的96个累积频率表(或子表)中被选中的一个累积频率表(或子表)在函数「arith_decode()」的执行中发挥表「cum_freq[]」的功能。
由图23可知,每一个子区块表示具有17个表项的一个累积频率表。例如,第一个子区块2310表示「pki=0」的一累积频率表的17个表项。第二个子区块2312表示「pki=1」的一累积频率表的17个表项。最后,第96个子区块2396表示「pki=95」的一累积频率表的17个表项。如此,图23有效表示对应于「pki=0」至「pki=95」的96个不同累积频率表(或子表),其中96个累积频率表中的每一个累积频率表以一个子区块(以大括号括出)表示,且其中所述累积频率表中的每一个累积频率表包含17个表项。
在一个子区块(例如,子区块2310或2312,或子区块2396)内部,第一个值描述累积频率表的第一个表项(具有阵列索引或表索引0),且最后一个值描述累积频率表的最后一个表项(具有阵列索引或表索引16)。
据此,图23的表格表示的每一个子区块2310、2312、2396表示由依据图5g或依据图5h及5i的函数「arith_decode」使用的累积频率表的表项。函数「arith_decode」的输入变量「cum_freq[]」描述96个累积频率表(以表「arith_cf_m」的17个表项的单独子区块表示)中的哪一个累积频率表须用于当前频谱系数的解码。
12.4依据图24的表「ari_cf_r[]」
图24显示表「ari_cf_r[]」的内容。
图24显示该表的四个表项。但须注意在其它实施例中,表「ari_cf_r」最终可能是不同的。
13.效能评估及优点
依据本发明的实施例使用如前文讨论的更新的函数(或算法)及更新的表集合来获得运算复杂度、内存需求与编码效率间的改良折衷。
概略言之,依据本发明的实施例形成改良型频谱无噪声编码。依据本发明的实施例描述USAC(统一语音及音频编码)的频谱无噪声编码的加强。
依据本发明的实施例,对基于MPEG输入报告m16912及m17002中所提出的方案的频谱系数的改良型频谱无噪声编码的CE,形成已更新的提案。这两个提案经评估,消除了潜在缺点,并结合了优势。
在m16912及m17002中,所得提案以如USAC(统一语音及音频编码的草拟标准)工作草稿5的基于原始脉络的算术编码方案为基础,但可显著减少内存需求(随机存取存储器(RAM)及只读存储器(ROM)),而未增加运算复杂度,同时维持编码效率。此外,业已证实依据USAC草拟标准的工作草稿3及依据USAC草拟标准的工作草稿5,比特串流的无损耗转码是可能的。依据本发明的实施例针对取代用于USAC草拟标准的工作草稿5的频谱无噪声编码方案。
此处描述的算术编码方案以参考模型0(RM0)或USAC草拟标准的工作草稿5(WD)中的方案为基础。频率或时间上的频谱系数使脉络模型化。此脉络用于算术编码器的累积频率表的选择。与工作草稿5(WD)相比,脉络模型化进一步得到改良,且保有符元概率的表接受重新训练(retrain)。不同概率模型的数目从32个增至96个。
依据本发明的实施例将表的大小(数据ROM需求)缩小至1518个长度为32-比特的字或6072-字节(WD5:16,894.5字或67,578-字节)。静态RAM需求从每个核心编码器通道666个字(2,664个字节)减至72个字(288个字节)。同时,完全保留了编码效能,且与全部9个作业点(operating point)的总数据率相比,甚至可达到约1.29%至1.95%的增益。全部工作草稿3及工作草稿5比特串流可以无损耗方式转码而不影响比特池(bit reservoir)限制。
后文中,将提供依据USAC草拟标准的工作草稿5的编码构想的简短讨论以便于了解此处所述构想的优点。随后,将描述依据本发明的若干较佳实施例。
在USAC工作草稿5中,基于脉络的算术编码方案用于量化频谱系数的无噪声编码。使用频率上及时间上在先的已解码频谱系数作为脉络。在工作草稿5中,使用最多16个频谱系数作为脉络,其中12个频谱系数的时间在先。而且,用于脉络且欲解码的频谱系数被分组成4元组(亦即频率邻近的4个频谱系数,参见图14a)。脉络缩减并被映射至一累积频率表,然后用于解码频谱系数的下一个4元组。
对于完整的工作草稿5无噪声编码方案,需要16894.5个字(67578字节)的内存需求(只读存储器(ROM))。此外,需要每个核心编码器通道的666个静态RAM字(2664字节)来储存下一帧的状态。图14b的表格表示描述用于USAC WD4的算术编码方案的表格。
此处须注意关于无噪声编码,USAC草拟标准的工作草稿4及5是相同的。此二者皆使用相同的无噪声编码器。
估算完整USAC WD5解码器的总内存需求,对无程序码的数据ROM为37000个字(148000字节),而对静态RAM为10000至17000个字。明白可知无噪声编码器表耗用约45%的总数据ROM需求。最大的单个表已经耗用4096个字(16384字节)。
业已发现全部表及大型单个表的组合的大小超过由消费者可携式装置所使用的固定点处理器所提供的典型的高速缓冲存储器的大小,它在8至32千字节的典型范围内(例如,ARM9e、TIC64XX等)。这意味着表集合可能并未被储存在快速数据RAM中,而储存在快速数据RAM中允许数据的快速随机存取。这造成整个解码程序减慢。
此外,业已发现当前成功的音频编码技术,诸如HE-AAC已经证实可在大多数移动装置上实施。HE-AAC使用具有995个字的表大小的霍夫曼熵编码方案。详情请参考ISO/IECJTC1/SC29/WG11N2005,MPEG98,1998年2月,圣荷西市,「Revised Report on Complexity ofMPEG-2 AAC2」。
在第90届MPEG会议上,在MPEG输入报告m16912及m17002中,提出两份针对无噪声编码方案减少内存需求并改良编码效率的提案。通过分析这两个提案,可获得下列结论。
·通过缩小码字的维度,内存需求可能显著减少。如MPEG输入文件m17002中所示,借由将维度从4元组减至1元组,内存需求可从16984.5个字减至900个字而不损害编码效率;及
·借由对LSB编码应用非均匀概率分布的码簿,而非使用均匀概率分布的码簿,可去除额外冗余。
在评估过程中,可认识到编码方案从4元组移动至1元组对运算复杂度造成显著影响:编码维度的缩小以相同因数而增加欲编码符元的数目。对于从4元组减至1元组,这意味着确定脉络、存取散列表,及解码符元所需执行的运算比先前多四倍。结合用于脉络确定的更复杂算法,这导致运算复杂度增至2.5倍或者是x.xxPCU。
后文中将简单叙述依据本发明的实施例所提出的新方案。
为了克服内存量(footprint)及运算复杂度的问题,提出改良型无噪声编码方案来取代工作草稿5(WD5)中的方案。开发的主要焦点放在减少内存需求,同时维持压缩效率并且不增加运算复杂度。更明确地说,目的是为了实现压缩性能、复杂度及内存需求的多维复杂度空间的良好的(或甚至是最佳的)折衷。
新的编码方案提案借用WD5无噪声编码器的主要特征,亦即脉络适应。脉络使用先前已解码的频谱系数导算出,如同在WD5中,频谱系数来自于过去帧及当前帧(其中一帧可被视为音频内容的一部分)。但频谱系数现在通过将两个系数组合在一起以形成一个2元组而被编码。另一个差异在于频谱系数现在分裂成三部分:符号(sign)、较高有效比特或最高有效比特(MSB),及较低有效比特或最低有效比特(LSB)。符号与幅度独立地编码,幅度又再划分成两部分:最高有效比特(或较高有效比特)及其余的比特(或较低有效比特)(若存在的话)。两个元素的幅度小于或等于3的2元组通过MSB编码而直接编码。否则,首先传输一个脱序码字来标示任何额外的比特平面。在基础版本中,遗漏的信息,亦即LSB及符号,皆使用均匀概率分布来编码。另外,可使用不同概率分布。
表大小的缩小仍属可能,原因在于:
·只需储存17个符元的概率:{[0;+3],[0;+3]}+ESC符元;
·无需储存群组表(egroups、dgroups、dgvectors);
·散列表的大小可以通过适当训练加以缩小。
后文中,将叙述有关MSB编码的若干细节。如前文已经提到的,USAC草拟标准的WD5、第90届MPEG会议上递交的提案与本提案间的主要差异之一为符元的维度。在USAC草拟标准的WD5中,4元组被考虑用于脉络的产生及无噪声编码。在第90届MPEG会议上递交的提案中,使用1元组取而代之用来减少ROM需求。在开发过程中,发现2元组为减少ROM需求,而不增加运算复杂度的最佳折衷。对于脉络更新,现在考虑四个2元组,而不考虑四个4元组。如图15a中所示,三个2元组来自过去帧(也称为音频内容的先前部分),且一个2元组来自当前帧(也称为音频内容的当前部分)。
表大小的缩小是由于三个主要因素。首先,只需储存17个符元的概率(亦即{[0;+3],[0;+3]}+ESC符元)。不再需要群组表(亦即egroups、dgroups及dgvectors)。最后,散列表的大小通过实施适当训练加以缩小。
虽然维度从4维减至2维,但复杂度仍维持与USAC草拟标准的WD5相同的范围。这是借由简化脉络产生及散列表存取而实现的。
不同的简化及优化以编码性能不受影响,甚至略有改良的方式进行。这主要是借由将概率模型数目从32个增至96个来实现。
后文中,将叙述有关LSB编码的若干细节。在若干实施例中,LSB以均等概率分布来编码。与USAC草拟标准的WD5相比,LSB现在被考虑进2元组而非4元组。
后文中,将解释有关符号编码的若干细节。为了减少复杂度,符号并不使用算术核心编码器来编码。唯有当相对应的幅度为非空(non-null)时,符号才以1-比特来传输。0表示正值,而1表示负值。
后文中,将解释有关内存需求的若干细节。提出的新方案具有最多1522.5个新字(6090个字节)的整体ROM需求。详情请参考图15b的表,此图描述在所提出的编码方案中使用的表。与USAC草拟标准的WD5中的无噪声编码方案的ROM需求相比,ROM需求减少至少15462个字(61848个字节)。现在最终获得与HE-AAC的AAC霍夫曼解码器所需内存需求(995个字或3980个字节)相同数量级的内存需求。详情请参考ISO/IEC JTC1/SC29/WG11 N2005,MPEG98,1998年2月,圣荷西市,「Revised Report on Complexity of MPEG-2AAC2」,同时参考图16a。这减少无噪声编码器的总ROM需求超过92%,及对完整的USAC解码器而言从约37000个字减至约21500个字,或减少超过41%。详情请再度参考图16a及16b,其中图16a显示所提出的无噪声编码方案的ROM需求,及依据USAC草拟标准的WD4的无噪声编码方案的ROM需求,且其中图16b显示依据所提出的方案及依据USAC草拟标准的WD4的总USAC解码器数据ROM需求。
更进一步,也减少了在下一帧中脉络导算所需的信息(静态ROM)量。在USAC草拟标准的WD5中,除了每个分辨率为10比特的4元组的一群组索引需要储存以外,分辨率通常为16比特的完整系数集合(最大为1152个系数)也需要储存,总计每个核心编码器通道666个字(2664字节)(对完整的USAC WD4解码器:约10000至17000个字)。新的方案将持久信息(persistent information)减至只有每频谱系数2-比特,加总成每个核心编码器通道总计72个字(288字节)。静态存储器需求可减少594个字(2376字节)。
后文中将叙述有关可能的编码效率提高的若干细节。依据新提案的实施例的解码效率与依据USAC草拟标准的工作草稿3(WD3)及WD5的参考品质比特串流作比较。比较利用转码器基于参考软件解码器来执行。有关依据USAC草拟标准的WD3或WD5的无噪声编码与所提议的编码方案的所述比较的细节,请参考图17,其显示用于WD3/5无噪声编码方案与所提出的编码方案的比较的测试配置的示意表示。
而且,依据本发明的实施例的内存需求与依据USAC草拟标准的WD3(或WD5)的实施例作比较。
编码效率不仅维持同时略增。详情请参考图18的表,其显示由WD3算术编码器(或使用WD3算术编码器的USAC音频编码器)及由依据本发明的一实施例的音频编码器(例如,USAC音频编码器)所产生的平均比特率的表格表示。
有关每种操作模式的平均比特率的细节可见图18的表。
此外,图19显示WD3算术编码器(或使用WD3算术编码器的音频编码器)及依据本发明的一实施例的音频编码器的最小及最大比特池位阶(bit reservior level)的表格表示。
后文中,将描述有关运算复杂度的若干细节。算术编码维度的缩小通常导致运算复杂度增大。实际上,使维度缩小至2维将使得算术编码器程序的调用变为两倍。
但业已发现此种复杂度增大能通过依据本发明的实施例所提出的新的编码方案中引入的若干优化而被限制。在依据本发明的某些实施例中,脉络产生大为简化。对于每一个2元组,脉络可从最后一个产生的脉络而递增地更新。概率现在以14比特而非16比特储存,避免解码程序过程中的64-比特运算。此外,在依据本发明的若干实施例中,概率模型的映射大为优化。最坏情况大减且限缩至10次迭代重复而非95次迭代重复。
结果,所提出的无噪声编码方案的运算复杂度维持在与WD5之中的运算复杂度相同的范围。「纸笔(pen and paper)」估算借不同版本的无噪声编码来执行且被记录在图20的表中。其显示新的编码方案的复杂度只比WD5算术编码器少约13%。
综上所述,可知依据本发明的实施例提供运算复杂度、内存需求与编码效率间的特佳折衷。
14.比特串流语法
14.1频谱无噪声编码器的有效载荷(payload)
后文中,将描述有关频谱无噪声编码器的有效载荷的若干细节。在若干实施例中,有多种不同编码模式,诸如,举例而言,所谓的「线性预测域」编码模式及「频域」编码模式。在线性预测域编码模式中,噪声整形基于音频信号的线性预测分析来执行,且噪声整形信号在频域中编码。在频域编码模式中,噪声整形基于心理声学分析来执行,且音频内容的噪声整形版本在频域中编码。
来自「线性预测域」编码信号及「频域」编码信号的频谱系数经定标量化(scalar quantized),且接着借脉络相依的适应性算术编码(adaptively context dependent arithmetic coding)而无噪声地编码。量化系数在从最低频率至最高频率传输之前收集合成2元组。每一个2元组分裂成符号s、最高有效逐2-比特平面m,及其余的一或多个较低有效比特平面r(若有的话)。值m依据由邻近的频谱系数所定义的脉络来编码。换言之,m依据系数邻近关系而被编码。其余的较低有效比特平面r被熵编码而不考虑脉络。利用m及r,这些频谱系数的幅度可在解码器端重构。对全部非空符元而言,符号s使用1-比特而在算术编码器外部编码。换言之,值m及r形成算术编码器的符元。最后,对每个非空量化系数而言,符号s使用1-比特而在算术编码器外部编码。
本文已叙述详细的算术编码程序。
14.2语法元素
后文中,将参考图6a至6j来描述携带算术编码频谱信息的一比特串流的比特串流语法。
图6a显示所谓的USAC原始数据区块(「usac_raw_data_block()」)的语法表示。
USAC原始数据区块包含一或多个单一通道元素(「single_channel_element()」)及/或一或多个成对通道元素(「channel_pair_element()」)。
现在参考图6b,描述单一通道元素的语法。视核心模式而定,单一通道元素包含线性预测域通道串流(「lpd_channel_stream()」)或者是频域通道串流(「fd_channel_stream()」)。
图6c显示一成对通道元素的语法表示。成对通道元素包含核心模式信息(「core_mode0」、「core_mode1」)。除此之外,成对通道元素可包含组态信息「ics_info()」。此外,依据核心模式信息,成对通道元素包含与通道中的第一者相关联的线性预测域通道串流或频域通道串流,且成对通道元素还包含与通道中的第二者相关联的线性预测域通道串流或频域通道串流。
其语法表示显示于图6d的组态信息「ics_info()」包含多个不同的组态信息项,它们与本发明并无特别的关联。
其语法表示显示于图6e的频域通道串流(「fd_channel_stream()」)包含增益信息(「global_gain」)及组态信息「ics_info()」。此外,频域通道串流包含尺度因子数据(「scale_factor_data()」),其描述用于不同尺度因子频带的频谱值的定标的尺度因子,且例如借定标器150及重定标器240应用。频域通道串流还包含表示算术编码频谱值的算术编码频谱数据(「ac_spectral_data()」)。
其语法表示显示于图6f的算术编码频谱数据(「ac_spectral_data()」)包含用于选择性地重置脉络(如前所述)的一选择性的算术重置旗标(「arith_reset_flag」)。此外,算术编码频谱数据包含携带所述算术编码频谱值的多个算术数据区块(「arith_data」)。算术编码数据区块的结构取决于频带数目(以变量「num_bands」来表示),且还取决于算术重置旗标的状态,容后详述。
后文将参考图6g来描述算术编码数据区块的结构,其显示所述算术编码数据区块的语法表示。在算术编码数据区块内部的数据表示取决于欲编码频谱值的数目lg、算术重置旗标的状态,也取决于脉络,亦即先前已编码的频谱值。
频谱值的当前集合(例如,2元组)的编码用脉络依据参考数字660所示脉络确定算法来确定。有关脉络确定算法的细节已经参考图5a及5b在上文说明过。算术编码数据区块包含lg/2个码字集合,每一个码字的集合表示多个(例如,一个2元组)频谱值。一码字集合包含使用1至20个比特来表示频谱值元组的最高有效比特平面值m的算术码字「acod_m[pki][m]」。此外,为了正确表示,如果频谱值元组需要比最高有效比特平面更多的比特平面,码字集合包含一或多个码字「acod_r[r]」。码字「acod_r[r]」使用1至14个比特来表示较低有效比特平面。
然而,当为了频谱值的适当表示需要一或多个较低有效比特平面(除了最高有效比特平面之外)时,这使用一或多个算术脱序码字(「ARITH_ESCAPE」)来标示。如此,概括而言,对一频谱值,确定需要多少个比特平面(最高有效比特平面,及可能,一或多个额外的较低有效比特平面)。若需要一或多个较低有效比特平面,则借一或多个算术脱序码字「acod_m[pki][ARITH_ESCAPE]」来标示,这些算术脱序码字依据当前选定的累积频率表而编码,当前选定的累积频率表的累积频率表索引由变量「pki」给定。此外,如由参考数字664、662可知,若一或多个算术脱序码字含括在比特串流中,则脉络被修改。如参考数字663所示,在一或多个算术脱序码字之后,算术码字「acod_m[pki][m]」含括在比特串流中,其中「pki」标示当前有效概率模型索引(将借由含括算术脱序码字所造成的脉络修改列入考虑),且其中m标示欲编码或欲解码频谱值的最高有效比特平面值(其中m与「ARITH_ESCAPE」码字相异)。
如前文讨论,任何较低有效比特平面的存在会导致一或多个码字「acod_r[r]」的存在,其各自表示第一个频谱值的最低有效比特平面的一比特,且其各自也表示第二个频谱值的最低有效比特平面的一比特。一或多个码字「acod_r[r]」依据对应的累积频率表来编码,该表,例如,可以是固定量并且是脉络非相依性的。但也可能使用不同选择机制来选择用于一或多个码字「acod_r[r]」解码的累积频率表。
此外,须注意在每一个频谱值元组编码后,脉络被更新,如参考数字668所示,使得脉络通常变得不同,以用于随后接续的两个频谱值元组的编码及解码。
图6i显示定义算术编码数据区块的语法的定义及辅助元素的说明。
此外,图6h显示算术数据「arith_data()」的替代语法,而图6j显示相对应的定义及辅助元素的说明。
概括而言,已经描述可由音频编码器100提供且可由音频解码器200评估的比特串流格式。算术编码频谱值的比特串流经编码,使得其适合前文讨论的解码算法。
此外,一般说来编码为解码的反向运算,因而通常可假设编码器使用前文讨论的表来执行表查找,约略为借解码器执行的表查找的反向。一般而言,可以说知晓解码算法及/或期望的比特串流语法的本领域技术人员将容易设计出一种提供比特串流语法中定义的及算术解码器所需的数据的算术编码器。
此外,须注意用以确定当前数值脉络值及用以导算映射规则索引值的机制在音频编码器及音频解码器中可能是相同的,原因在于通常期望音频解码器使用与音频编码器相同的脉络,使得解码适应于编码。
15.实施的替代方案
虽然已就装置脉络描述若干方面,但显然这些方面也表示对应方法的描述,其中一方块或装置对应于一方法步骤或一方法步骤的特征。类似地,就一方法步骤的脉络所描述的方面也表示对应装置的一对应区块或项目或特征的描述。部分或全部方法步骤可借(或使用)硬件装置,例如,微处理器、可编程计算机或电子电路来执行。在若干实施例中,最重要的方法步骤中的某一或多者可借此种装置来执行。
本发明的编码音频信号可储存在数字储存媒体上或可在传输媒体,诸如,无线传输媒体或有线传输媒体,诸如Internet上传输。
依据某些实施要求,本发明的实施例可使用硬件或使用软件形式来实施。实施可使用其上储存有电子可读取控制信号的数字存储媒体,例如,软盘、DVD、蓝光碟、CD、ROM、PROM、EPROM、EEPROM,或闪存来执行,所述电子可读取控制信号与可编程计算机系统合作(或能够与之合作),因而可执行各自的方法。因此,数字储存媒体可能是计算机可读取的。
依据本发明的若干实施例包含具有电子可读取式控制信号的一数据载体,所述电子可读取式控制信号能够与可编程计算机系统合作,而执行本文所述方法之一。
一般而言,本发明的实施例能以带有程序码的计算机程序产品来实施,当该计算机程序产品在一计算机上运行时,该程序码可操作来执行所述方法之一。该程序码,例如,可储存在机器可读取载体上。
其它实施例包含储存在机器可读取载体上用以执行本文所述方法之一的计算机程序。
因此,换言之,本发明方法的一实施例是一种计算机程序,该计算机程序具有,当该计算机程序在一计算机上运行时,用以执行本文所述方法之一的程序码。
因此,本发明方法的又一实施例是一种数据载体(或数字储存媒体或计算机可读取媒体),它包含记录于其上的用以执行本文所述方法之一的计算机程序。该数据载体、数字储存媒体或记录媒体通常是具体有形的(tangible)及/或非暂态的(non-transitionary)。
因此,本发明方法的又一实施例是表示用以执行本文所述方法之一的计算机程序的一数据串流或一信号序列。该数据串流或信号序列,例如,可被配置成通过数据通讯连接,例如,通过Internet来传输。
又一实施例包含一种处理装置,例如,计算机或可编程逻辑装置,其被配置成或适用于执行本文所述方法之一。
又一实施例包含一种计算机,其上安装有用以执行本文所述方法之一的计算机程序。
依据本发明的又一实施例包含一种被配置成传输(例如以电子方式或光学方式)用以执行本文所述方法之一的计算机程序给接收器的装置或系统。该接收器,例如,可以是计算机、移动装置、存储装置等。该装置或系统,例如,可包含一种用来传输计算机程序给接收器的文件服务器。
在若干实施例中,一种可编程逻辑装置(例如,现场可编程门阵列)可用来执行本文所述方法的部分或全部功能。在若干实施例中,现场可编程门阵列可与微处理器合作以执行本文所述方法之一。一般而言,所述方法较佳地借任一种硬件装置来执行。
上述实施例仅供举例说明本发明的原理。应知本文所述配置及细节的修正及变化为本领域技术人员所显然易知。因此,意图只受随附的专利权利要求的范围的限制而非受通过说明与解释本文实施例所呈现的特定细节的限制。
16.结论
总而言之,依据本发明的实施例包含下列方面中的一或多者,其中所述方面可单独使用或组合使用。
a)脉络状态散列机制
依据本发明的一方面,散列表中的状态被认为是有效状态及群组边界。这允许显著缩小所需表的大小。
b)增值脉络更新
依据一方面,依据本发明的若干实施例包含用以更新脉络的运算有效率的方式。若干实施例使用增值脉络更新,其中当前数值脉络值从数值先前脉络值导算出。
c)脉络导算
依据本发明的一方面,使用两个频谱绝对值的和与截取(truncation)运算相结合。它属于一种频谱系数的增益向量量化(而与习知的形状-增益向量量化相反)。其目的在于限制脉络数量级,同时从邻近获取最有意义的信息。
应用于依据本发明的实施例的若干其它技术记载在先前未曾公开的专利申请案PCT EP2101/065725、PCT EP2010/065726,及PCTEP2010/065727中。此外,在依据本发明的若干实施例中,使用终止符元。此外,在若干实施例中,对于脉络只考虑无符号值。
但上文提到的先前未曾公开的国际专利申请案揭示依据本发明的若干实施例仍在使用的方面。
例如,零区的识别用在本发明的若干实施例中。据此,设定所谓的「小值旗标」(例如,当前数值脉络值c的比特16)。
在若干实施例中,可使用区域相依性脉络运算。但在其它实施例中,可省略区域相依性脉络运算以保持复杂度及表大小相当小。
此外,使用散列函数的脉络散列是本发明的一个重要方面。脉络散列可基于上述先前未曾公开的国际专利申请案中所述的二表(two-table)构想。但脉络散列的特定调整可用于若干实施例来提高运算效率。虽说如此,在依据本发明的若干其它实施例中,可使用上述先前未曾公开的国际专利申请案中所述的脉络散列。
此外,须注意增值脉络散列相当简单且运算效率高。并且,脉络与用于本发明的若干实施例的值的符号的非相依性协助简化脉络,借此使内存需求相当低。
在本发明的若干实施例中,使用利用两个频谱值的和与脉络限制的脉络导算。这两个方面可组合。二者的目的都在于借由从邻近获取最有意义的信息来限制脉络数量级。
在若干实施例中,使用小值旗标,其可能类似于对一组多个零值的识别。
在依据本发明的若干实施例中,使用算术终止机制。该构想类似于JPEG中具有类似功能的符元「区块结束(end-of-block)」的使用。但在本发明的若干实施例中,符元(「ARITH_STOP」)并未明确地含括在熵编码器中。而是使用先前不出现的,已存在的符元的一组合,亦即「ESC+0」。换言之,音频解码器被配置成检测通常并不用来表示数值的既存符元的组合,且将此既存符元的组合的出现解译为算术终止条件。
依据本发明的一实施例使用一种二表脉络散列机制。
进一步综上所述,依据本发明的若干实施例可包含下列四个主要方面中的一或多者。
·用以检测邻近的零区或小幅度区域的延伸脉络;
·脉络散列;
·脉络状态产生:脉络状态的增值更新;及
·脉络导算:包括幅度加法及限制的脉络值的特定量化。
进一步得出结论,依据本发明的实施例的一个方面在于增值脉络更新。依据本发明的实施例包含一种用于脉络更新的高效构想,这避免工作草稿(例如,工作草稿5)的大规模的计算。更确切地说,在若干实施例中,使用简单的移位运算及逻辑运算。简单的脉络更新显著地便利了脉络的运算。
在若干实施例中,脉络与值(例如,已解码频谱值)的符号具非相依性。脉络与值的符号的这种非相依性使脉络变量的运算复杂度降低。此构想以忽略脉络中的符号不会造成编码效率显著降级的发现为基础。
依据本发明的一方面,脉络使用两个频谱值的和来导算。据此,用于脉络储存的内存需求显著降低。如此,在某些情况下,使用表示两个频谱值的和的一脉络值可被视为是有利的。
并且,在某些情况下,脉络限制带来显著改良。在若干实施例中,除了使用两个频谱值的和来导算脉络之外,脉络阵列「q」的表项被限制于最大值「0xF」,而这又导致内存需求受限。对脉络阵列「q」的值加以限制带来若干优点。
在若干实施例中,使用所谓的「小值旗标」。在获得脉络变量c(也称为当前数值脉络值)时,如果若干表项「q[1][i-3]」至「q[1][i-1]」的值很小,则设定一旗标。据此,可以高效率执行脉络的运算。可获得特别有意义的脉络值(例如,当前数值脉络值)。
在若干实施例中,使用算术终止机制。当只余零值时,「ARITH_STOP」机制允许算术编码或解码有效停止。据此,就复杂度而言,可以中等成本改良编码效率。
依据本发明的一方面,使用二表脉络散列机制。脉络的映射使用区间划分算法评估表「ari_hash_m」并结合接续的对表「ari_lookup_m」的查找表评估来执行。此算法比WD3算法更有效。
后文将讨论若干额外的细节。
此处须注意表「ari_hash_m[600]」与「ari_lookup_m[600]」是两个不同的表。第一个表用来将单一脉络索引(例如,数值脉络值)映射至概率模型索引(例如,映射规则索引值),且第二个表用来将由「arith_hash_m[]」中的脉络索引确定界限的一组连续脉络映射至单一概率模型。
须进一步注意,即使维度略为不同,表「arith_cf_msb[96][16]」也可用作表「ari_cf_m[96][17]」的替代物。「ari_cf_m[][]」与「ari_cf_msb[][]」可指相同的表,原因在于概率模型的第17个系数总是零。当计算用以储存所述表所需的空间时,有时并不将其列入考虑。
综上所述,依据本发明的若干实施例提供一种所提出的新的无噪声编码(编码或解码),其产生MPEG USAC工作草稿(例如,MPEGUSAC工作草稿5)的修正。所述修正可见所附图式及相关描述。
作为结束语,须注意变量、阵列、函数等名称的前缀词「ari」及前缀词「arith」可互换使用。
Claims (16)
1.一种用以基于一编码音频信息来提供一解码音频信息的音频解码器,所述音频解码器包含:
一算术解码器,用以基于包含于所述编码音频信息中的多个频谱值的算术编码表示来提供多个解码频谱值;及
一频域至时域变换器,用以使用所述解码频谱值来提供一时域音频表示,以获得所述解码音频信息;
其中所述算术解码器被配置成依据由一当前数值脉络值所描述的一脉络状态来选择一映射规则,所述映射规则描述频谱值的所述算术编码表示的一码值到表示所述解码频谱值中的一或多者或者所述解码频谱值中的一或多者的至少一部分的一符元码的映射;
其中所述算术解码器被配置成依据多个先前已解码的频谱值来确定所述当前数值脉络值;
其中所述算术解码器被配置成评估一散列表以选定所述映射规则,所述散列表的表项界定数值脉络值中的有效状态值及数值脉络值中的非有效状态值的区间边界,
其中一映射规则索引值与是一有效状态值的一数值脉络值单独相关联,且
其中一共用映射规则索引值与位于由所述区间边界确定界限的一区间内部的不同数值脉络值相关联。
2.如权利要求1所述的音频解码器,其中所述算术解码器被配置成将所述当前数值脉络值或所述当前数值脉络值的定标版本与所述散列表的多个以数值排序的表项做比较,以获得一散列表表项的一散列表索引值,使得所述当前数值脉络值位于由所述所获得的散列表索引值标示的所述散列表表项与一相邻散列表表项所界定的一区间内部;且
其中所述算术解码器被配置成确定所述当前数值脉络值是否等于所述散列表中由所获得的散列表索引值标示的一表项所界定的值,且依据所述确定结果来选择性地提供与所述散列表中由所获得的散列表索引值标示的所述表项所界定的一当前数值脉络值单独相关联的一映射规则索引值,或者,由所获得的散列表索引值标示并与一边界由所述散列表中由所获得的散列表索引值标示的所述表项所界定的一状态值确定界限的一区间内部的不同当前数值脉络值相关联的一映射规则索引值。
3.如权利要求1所述的音频解码器,其中所述算术解码器被配置成使用所述散列表来确定所述当前数值脉络值是等于由所述散列表的一表项所界定的一区间边界状态值,还是位于由所述散列表的两个表项所界定的一区间内部;
其中所述算术解码器被配置成若发现所述当前数值脉络值等于一区间边界状态值,则提供与所述散列表的一表项相关联的一映射规则索引值,而若发现所述当前数值脉络值位于由所述散列表的两个相邻表项所界定的状态值之间的一区间内部,则提供与由所述散列表的两个相邻表项所界定的状态值之间的一区间相关联的一映射规则索引值;且
其中所述算术解码器被配置成依据所述映射规则索引值来选定用于所述算术解码器的一累积频率表。
4.如权利要求1所述的音频解码器,其中与所述散列表的第一给定表项相关联的一映射规则索引值不同于与数值脉络值的第一区间相关联的一映射规则索引值,所述第一区间的上边界由所述散列表的第一给定表项所界定,且与所述散列表的第一给定表项相关联的一映射规则索引值也不同于与数值脉络值的第二区间相关联的一映射规则索引值,所述第二区间的下边界由所述散列表的第一给定表项所界定,使得所述散列表的所述第一给定表项借一单一值而界定所述当前数值脉络值的两个区间边界及所述当前数值脉络值的一有效状态值。
5.如权利要求4所述的音频解码器,其中与所述数值脉络值的第一区间相关联的所述映射规则索引值等于与所述数值脉络值的第二区间相关联的所述映射规则索引值,使得所述散列表的所述第一给定表项界定处于两边均为非有效状态值的环境中的一孤立的有效状态。
6.如权利要求4所述的音频解码器,其中与所述散列表的一第二给定表项相关联的一映射规则索引值相同于与数值脉络值的第三区间相关联的一映射规则索引值,且相异于与数值脉络值的第四区间相关联的一映射规则索引值,所述第三区间的一边界由所述散列表的所述第二给定表项界定,所述第四区间的一边界由所述散列表的所述第二给定表项界定,使得所述散列表的所述第二给定表项界定所述当前数值脉络值的两区间之间的一边界,而未界定所述当前数值脉络值的一有效状态值。
7.如权利要求1所述的音频解码器,其中所述算术解码器被配置成评估一单一散列表,单一散列表以数值排序的表项界定所述当前数值脉络值的有效状态值及所述当前数值脉络值的区间边界,从而由所述散列表的所述表项所界定的所述区间中,获得标示所述当前数值脉络值所在的一区间的一散列表索引值,以及随后使用由所述所获得的散列表索引值所标示的所述表项来确定所述当前数值脉络值是取一有效状态值还是一非有效状态值。
8.如权利要求1所述的音频解码器,其中所述算术解码器被配置成若发现所述当前数值脉络值并未取一有效状态值,则评估将区间索引值映射至映射规则索引值的一映射表,以获得与所述当前数值脉络值所在的非有效状态值的一区间相关联的一映射规则索引值。
9.如权利要求1所述的音频解码器,其中所述散列表的所述表项以数值排序,
其中所述算术解码器被配置成评估一序列的散列表表项,以获得一散列表表项的一结果散列表索引值,使得所述当前数值脉络值位于由所述所获得的结果散列表索引值标示的所述散列表表项与一相邻散列表表项所界定的一区间内部;
其中所述算术解码器被配置成执行预定次数的迭代重复,以迭代重复地确定所述结果散列表索引值;
其中每一次迭代重复只包含由所述散列表的一当前表项所表示的一状态值与由所述当前数值脉络值所表示的一状态值之间的单次比较,且依据所述单次比较的结果来选择性地更新一当前散列表索引值。
10.如权利要求9所述的音频解码器,其中所述算术解码器被配置成唯有在执行预定次数的迭代重复后,才区别包含一有效状态值的一当前数值脉络值与包含一非有效状态值的一当前数值脉络值。
11.如权利要求1所述的音频解码器,其中所述算术解码器被配置成使用如下算法来评估所述散列表:
其中k为一运行变量;
其中kmax标示迭代重复的一预定次数;
其中i为描述一当前散列表索引值的一变量;
其中i_min为被初始化来标示所述散列表的第一表项的一散列表索引值且依据s与j间的比较而被选择性地更新的一变量;
其中ari_hash_m标示所述散列表;
其中ari_hash_m[i]标示具有散列表索引值i的所述散列表的一表项;
其中j为一变量;
其中s标示用于表示所述当前数值脉络值或其定标版本的一变量;且
其中i_diff[k]标示于第k次迭代重复用于调整所述当前散列表索引值的步进大小。
12.如权利要求11所述的音频解码器,其中所述算术解码器被进一步配置成依据如下方式,以一回送值来获取所述映射规则索引值:
其中c为描述所述当前数值脉络值的一变量;
其中i_min以所述散列表的评估结果而获得;
其中ari_lookup_m是一个表,其对所述当前数值脉络值的非有效值,描述与所述当前数值脉络值的不同区间相关联的映射规则索引值;
其中ari_lookup_m[i_min+1]标示所述表「ari_lookup_m」具有表项索引i_min+1的一表项;
其中ari_lookup_m[i_min]标示所述表「ari_lookup_m」具有表项索引i_min的一表项;
其中所述条件「s>j」定义由变量s所描述的一状态值大于由所述表项ari_hash_m[i_min]所描述的一状态值;
其中所述条件「c<(j>>8)」定义由变量s所描述的一状态值小于由所述表项ari_hash_m[i_min]所描述的一状态值,其中变量s依据变量c而初始化,变量s的数字表示由变量c的数字表示向左移位8比特获得;且
其中「j&0xFF」描述由所述表项ari_hash_m[i_min]所描述的一映射规则索引值。
13.如权利要求1所述的音频解码器,其中所述算术解码器被配置成使用如下算法来评估所述散列表:
其中c为描述所述当前数值脉络值的一变量;
其中j为一变量;
其中i_min为被初始化来取比所述散列表的第一表项的一散列表索引值小1的一值,且依据c与由一散列表表项j=ari_hash_m[i]所描述的一状态值j>>8间的比较而被选择性地更新的一变量;
其中i_max为被初始化来标示所述散列表的最后一个表项的一散列表索引值,且依据c与由一散列表表项j=ari_hash_m[i]所描述的一状态值j>>8间的比较而选择性地更新的一变量;
其中i为描述一当前散列表索引值的一变量;
其中ari_hash_m标示所述散列表;
其中ari_hash_m[i]标示所述散列表具有散列表索引值i的一表项;
其中所述条件「c<(j>>8)」定义由变量c所描述的一状态值小于由所述表项j=ari_hash_m[i]所描述的一状态值;
其中所述条件「c>(j>>8)」定义由变量c所描述的一状态值大于由所述表项j=ari_hash_m[i]所描述的一状态值;
其中「j&0xFF」描述由所述表项j=ari_hash_m[i]所描述的一映射规则索引值;
其中ari_lookup_m是一个表,其对所述当前数值脉络值的非有效值,描述与所述当前数值脉络值的不同区间相关联的映射规则索引值;且
其中ari_lookup_m[i_max]标示所述表「ari_lookup_m」具有表项索引i_max的一表项。
14.一种用以基于一输入音频信息来提供一编码音频信息的音频编码器,所述音频编码器包含:
一能量压缩时域至频域变换器,用以基于所述输入音频信息的一时域表示来提供一频域音频表示,使得所述频域音频表示包含一频谱值集合;及
一算术编码器,被配置成使用一可变长度码字来编码一频谱值或其预处理版本,其中所述算术编码器被配置成将一或多个频谱值或者一或多个频谱值的一最高有效比特平面的值映射至一码值,
其中所述算术编码器被配置成依据由一当前数值脉络值所描述的一脉络状态来选择一映射规则,所述映射规则描述一或多个频谱值或者一或多个频谱值的一最高有效比特平面至一码值的映射;且
其中所述算术编码器被配置成依据多个先前已编码频谱值来确定所述当前数值脉络值;且
其中所述算术编码器被配置成评估一散列表,所述散列表的表项界定数值脉络值中的有效状态值及数值脉络值中的非有效状态值的区间边界,其中一映射规则索引值与是一有效状态值的一数值脉络值单独相关联,且其中一共用映射规则索引值与位于由所述区间边界确定界限的一区间内部的不同数值脉络值相关联;
其中所述编码音频信息包含多个可变长度码字。
15.一种用以基于一编码音频信息来提供一解码音频信息的方法,所述方法包含以下步骤:
基于包含于所述编码音频信息中的多个频谱值的一算术编码表示来提供多个解码频谱值;及
使用所述解码频谱值来提供一时域音频表示以获得所述解码音频信息;
其中提供所述多个解码频谱值包含依据由一当前数值脉络值所描述的一脉络状态来选择一映射规则,所述映射规则描述频谱值的所述算术编码表示的一码值到表示所述解码频谱值中的一或多者或者所述解码频谱值中的一或多者的一最高有效比特平面的一符元码的映射;且
其中所述当前数值脉络值依据多个先前已解码频谱值来确定;
其中一散列表经评估,所述散列表的表项界定数值脉络值中的有效状态值及数值脉络值中的非有效状态值的区间边界,
其中一映射规则索引值与是一有效状态值的一数值脉络值单独相关联,且其中一共用映射规则索引值与位于由所述区间边界确定界限的一区间内部的不同数值脉络值相关联。
16.一种用以基于一输入音频信息来提供一编码音频信息的方法,所述方法包含以下步骤:
使用能量压缩时域至频域变换来基于所述输入音频信息的一时域表示来提供一频域音频表示,使得所述频域音频表示包含一频谱值集合;及
使用一可变长度码字来算术式地编码一频谱值或其预处理版本,其中一或多个频谱值或者一或多个频谱值的一最高有效比特平面的值被映射至一码值;
其中描述将一或多个频谱值或者一或多个频谱值的一最高有效比特平面映射至一码值的一映射规则依据由一当前数值脉络值所描述的一脉络状态来选定;
其中所述当前数值脉络值依据多个先前已编码相邻频谱值来确定;
其中一散列表经评估,所述散列表的表项界定数值脉络值中的有效状态值及数值脉络值中的非有效状态值的区间边界,
其中一映射规则索引值与是一有效状态值的一当前数值脉络值单独相关联,且其中一共用映射规则索引值与位于由所述区间边界确定界限的一区间内部的不同数值脉络值相关联;
其中所述编码音频信息包含多个可变长度码字。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29435710P | 2010-01-12 | 2010-01-12 | |
US61/294,357 | 2010-01-12 | ||
PCT/EP2011/050272 WO2011086065A1 (en) | 2010-01-12 | 2011-01-11 | Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a hash table describing both significant state values and interval boundaries |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102792370A CN102792370A (zh) | 2012-11-21 |
CN102792370B true CN102792370B (zh) | 2014-08-06 |
Family
ID=43617872
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180013284.2A Active CN102844809B (zh) | 2010-01-12 | 2011-01-11 | 基于先前解码频谱值的范数来获得上下文子区值的音频编码器、音频解码器、编码及解码音频信息的方法 |
CN201180013302.7A Active CN102792370B (zh) | 2010-01-12 | 2011-01-11 | 使用描述有效状态值及区间边界的散列表的音频编码器、音频解码器、编码音频信息的方法及解码音频信息的方法 |
CN201180013281.9A Active CN102859583B (zh) | 2010-01-12 | 2011-01-11 | 利用对数值先前脉络值的数字表示之修改的音频编码器、音频解码器、编码音频信息的方法及解码音频信息的方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180013284.2A Active CN102844809B (zh) | 2010-01-12 | 2011-01-11 | 基于先前解码频谱值的范数来获得上下文子区值的音频编码器、音频解码器、编码及解码音频信息的方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180013281.9A Active CN102859583B (zh) | 2010-01-12 | 2011-01-11 | 利用对数值先前脉络值的数字表示之修改的音频编码器、音频解码器、编码音频信息的方法及解码音频信息的方法 |
Country Status (20)
Country | Link |
---|---|
US (4) | US8898068B2 (zh) |
EP (3) | EP2524371B1 (zh) |
JP (3) | JP5624159B2 (zh) |
KR (3) | KR101339057B1 (zh) |
CN (3) | CN102844809B (zh) |
AR (3) | AR079888A1 (zh) |
AU (3) | AU2011206676B2 (zh) |
BR (6) | BR122021008581B1 (zh) |
CA (3) | CA2786945C (zh) |
ES (3) | ES2532203T3 (zh) |
HK (2) | HK1178306A1 (zh) |
MX (3) | MX2012008076A (zh) |
MY (3) | MY160067A (zh) |
PL (3) | PL2517200T3 (zh) |
PT (1) | PT2524371T (zh) |
RU (2) | RU2644141C2 (zh) |
SG (3) | SG182467A1 (zh) |
TW (3) | TWI466104B (zh) |
WO (3) | WO2011086066A1 (zh) |
ZA (3) | ZA201205939B (zh) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101325335B1 (ko) * | 2008-07-11 | 2013-11-08 | 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 | 오디오 샘플 인코드 및 디코드용 오디오 인코더 및 디코더 |
EP3300076B1 (en) | 2008-07-11 | 2019-04-24 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio encoder and audio decoder |
EP2315358A1 (en) * | 2009-10-09 | 2011-04-27 | Thomson Licensing | Method and device for arithmetic encoding or arithmetic decoding |
CA2778323C (en) | 2009-10-20 | 2016-09-20 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a detection of a group of previously-decoded spectral values |
SG182467A1 (en) | 2010-01-12 | 2012-08-30 | Fraunhofer Ges Forschung | Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a hash table describing both significant state values and interval boundaries |
KR20120084639A (ko) * | 2011-01-20 | 2012-07-30 | 한국전자통신연구원 | 엔트로피 부호화를 위한 적응적 정렬 테이블 |
KR101362696B1 (ko) * | 2011-10-19 | 2014-02-17 | 전북대학교산학협력단 | 하이브리드 아키텍쳐가 적용된 신호 변환 장치, 신호 변환 방법 및 기록매체 |
US8880412B2 (en) * | 2011-12-13 | 2014-11-04 | Futurewei Technologies, Inc. | Method to select active channels in audio mixing for multi-party teleconferencing |
CN106409299B (zh) * | 2012-03-29 | 2019-11-05 | 华为技术有限公司 | 信号编码和解码的方法和设备 |
TWI508569B (zh) * | 2012-09-14 | 2015-11-11 | Realtek Semiconductor Corp | 行動高畫質連結資料轉換器以及行動高畫質連結資料轉換方法 |
JP6248186B2 (ja) | 2013-05-24 | 2017-12-13 | ドルビー・インターナショナル・アーベー | オーディオ・エンコードおよびデコード方法、対応するコンピュータ可読媒体ならびに対応するオーディオ・エンコーダおよびデコーダ |
PT3321935T (pt) | 2013-06-21 | 2019-09-12 | Fraunhofer Ges Forschung | Escalonador de tempo, descodificador de áudio, método e um programa de computador utilizando um controlo de qualidade |
CN105518778B (zh) | 2013-06-21 | 2019-09-13 | 弗劳恩霍夫应用研究促进协会 | 抖动缓冲器控制器、音频解码器、方法及计算机可读存储介质 |
US20150113027A1 (en) * | 2013-10-22 | 2015-04-23 | National Tsing Hua University | Method for determining a logarithmic functional unit |
JP2015206874A (ja) * | 2014-04-18 | 2015-11-19 | 富士通株式会社 | 信号処理装置、信号処理方法、及び、プログラム |
US9640376B1 (en) | 2014-06-16 | 2017-05-02 | Protein Metrics Inc. | Interactive analysis of mass spectrometry data |
JP6509916B2 (ja) * | 2014-06-29 | 2019-05-08 | エルジー エレクトロニクス インコーポレイティド | 連結されたrom−ramテーブルに基づいて算術コーディングを遂行する方法及び装置 |
EP2996269A1 (en) * | 2014-09-09 | 2016-03-16 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio splicing concept |
US9385751B2 (en) | 2014-10-07 | 2016-07-05 | Protein Metrics Inc. | Enhanced data compression for sparse multidimensional ordered series data |
US10062762B2 (en) * | 2014-12-23 | 2018-08-28 | Stmicroelectronics, Inc. | Semiconductor devices having low contact resistance and low current leakage |
US10354421B2 (en) | 2015-03-10 | 2019-07-16 | Protein Metrics Inc. | Apparatuses and methods for annotated peptide mapping |
CN104872268B (zh) * | 2015-06-02 | 2018-06-12 | 应关雄 | 一种低温除氧剂 |
SG10201908093SA (en) | 2015-10-08 | 2019-10-30 | Dolby Int Ab | Layered coding for compressed sound or sound field representations |
CA3228657A1 (en) | 2015-10-08 | 2017-04-13 | Dolby International Ab | Layered coding and data structure for compressed higher-order ambisonics sound or sound field representations |
US20170231320A1 (en) * | 2016-02-16 | 2017-08-17 | Djo Consumer, Llc | Fitting system and method for customizable footwear |
CN109328382B (zh) * | 2016-06-22 | 2023-06-16 | 杜比国际公司 | 用于将数字音频信号从第一频域变换到第二频域的音频解码器及方法 |
US20180089309A1 (en) * | 2016-09-28 | 2018-03-29 | Linkedln Corporation | Term set expansion using textual segments |
US10319573B2 (en) | 2017-01-26 | 2019-06-11 | Protein Metrics Inc. | Methods and apparatuses for determining the intact mass of large molecules from mass spectrographic data |
US10797723B2 (en) | 2017-03-14 | 2020-10-06 | International Business Machines Corporation | Building a context model ensemble in a context mixing compressor |
US10361712B2 (en) * | 2017-03-14 | 2019-07-23 | International Business Machines Corporation | Non-binary context mixing compressor/decompressor |
US10546736B2 (en) | 2017-08-01 | 2020-01-28 | Protein Metrics Inc. | Interactive analysis of mass spectrometry data including peak selection and dynamic labeling |
US11626274B2 (en) | 2017-08-01 | 2023-04-11 | Protein Metrics, Llc | Interactive analysis of mass spectrometry data including peak selection and dynamic labeling |
US10510521B2 (en) | 2017-09-29 | 2019-12-17 | Protein Metrics Inc. | Interactive analysis of mass spectrometry data |
EP3483879A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Analysis/synthesis windowing function for modulated lapped transformation |
EP3483882A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Controlling bandwidth in encoders and/or decoders |
EP3483878A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio decoder supporting a set of different loss concealment tools |
WO2019091576A1 (en) * | 2017-11-10 | 2019-05-16 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits |
EP3483886A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Selecting pitch lag |
WO2019091573A1 (en) | 2017-11-10 | 2019-05-16 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for encoding and decoding an audio signal using downsampling or interpolation of scale parameters |
EP3483884A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Signal filtering |
EP3483883A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio coding and decoding with selective postfiltering |
EP3483880A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Temporal noise shaping |
WO2019113911A1 (zh) * | 2017-12-15 | 2019-06-20 | 海尔优家智能科技(北京)有限公司 | 设备控制方法、云端设备、智能设备、计算机介质及设备 |
US11044495B1 (en) | 2018-02-13 | 2021-06-22 | Cyborg Inc. | Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation |
US10929607B2 (en) | 2018-02-22 | 2021-02-23 | Salesforce.Com, Inc. | Dialogue state tracking using a global-local encoder |
US10915341B2 (en) * | 2018-03-28 | 2021-02-09 | Bank Of America Corporation | Computer architecture for processing correlithm objects using a selective context input |
KR20200000649A (ko) | 2018-06-25 | 2020-01-03 | 네이버 주식회사 | 오디오 병렬 트랜스코딩을 위한 방법 및 시스템 |
TWI827010B (zh) * | 2018-07-06 | 2023-12-21 | 弗勞恩霍夫爾協會 | 算術編碼器、算術解碼器、視訊編碼器、視訊解碼器、編碼方法、解碼方法及電腦程式 |
CN110535497B (zh) * | 2018-08-10 | 2022-07-19 | 中兴通讯股份有限公司 | Csi发送、接收方法及其装置、通信节点及存储介质 |
US11640901B2 (en) | 2018-09-05 | 2023-05-02 | Protein Metrics, Llc | Methods and apparatuses for deconvolution of mass spectrometry data |
US11144286B2 (en) | 2019-01-14 | 2021-10-12 | Microsoft Technology Licensing, Llc | Generating synchronous digital circuits from source code constructs that map to circuit implementations |
US11093682B2 (en) | 2019-01-14 | 2021-08-17 | Microsoft Technology Licensing, Llc | Language and compiler that generate synchronous digital circuits that maintain thread execution order |
US11106437B2 (en) * | 2019-01-14 | 2021-08-31 | Microsoft Technology Licensing, Llc | Lookup table optimization for programming languages that target synchronous digital circuits |
US11113176B2 (en) | 2019-01-14 | 2021-09-07 | Microsoft Technology Licensing, Llc | Generating a debugging network for a synchronous digital circuit during compilation of program source code |
US11275568B2 (en) | 2019-01-14 | 2022-03-15 | Microsoft Technology Licensing, Llc | Generating a synchronous digital circuit from a source code construct defining a function call |
US10491240B1 (en) | 2019-01-17 | 2019-11-26 | Cyborg Inc. | Systems and methods for variable length codeword based, hybrid data encoding and decoding using dynamic memory allocation |
US11346844B2 (en) | 2019-04-26 | 2022-05-31 | Protein Metrics Inc. | Intact mass reconstruction from peptide level data and facilitated comparison with experimental intact observation |
CN111862953B (zh) * | 2019-12-05 | 2023-08-22 | 北京嘀嘀无限科技发展有限公司 | 语音识别模型的训练方法、语音识别方法及装置 |
WO2022047368A1 (en) | 2020-08-31 | 2022-03-03 | Protein Metrics Inc. | Data compression for multidimensional time series data |
KR20230088400A (ko) * | 2020-10-13 | 2023-06-19 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 복수의 오디오 객체를 인코딩하는 장치 및 방법 또는 둘 이상의 관련 오디오 객체를 이용하여 디코딩하는 장치 및 방법(Apparatus and method for encoding a plurality of audio objects or appratus and method for decoding using two or more relevant audio objects) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1322405A (zh) * | 1998-09-07 | 2001-11-14 | 弗兰霍菲尔运输应用研究公司 | 信息字的平均信息量编码设备和方法,平均信息量编码信息字的解码设备和方法 |
CN101601087A (zh) * | 2006-11-16 | 2009-12-09 | 弗劳恩霍夫应用研究促进协会 | 用于编码和解码的设备 |
Family Cites Families (132)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5222189A (en) | 1989-01-27 | 1993-06-22 | Dolby Laboratories Licensing Corporation | Low time-delay transform coder, decoder, and encoder/decoder for high-quality audio |
US5388181A (en) * | 1990-05-29 | 1995-02-07 | Anderson; David J. | Digital audio compression system |
US5829007A (en) | 1993-06-24 | 1998-10-27 | Discovision Associates | Technique for implementing a swing buffer in a memory array |
US5659659A (en) | 1993-07-26 | 1997-08-19 | Alaris, Inc. | Speech compressor using trellis encoding and linear prediction |
ZA947317B (en) * | 1993-09-24 | 1995-05-10 | Qualcomm Inc | Multirate serial viterbi decoder for code division multiple access system applications |
US6449596B1 (en) | 1996-02-08 | 2002-09-10 | Matsushita Electric Industrial Co., Ltd. | Wideband audio signal encoding apparatus that divides wide band audio data into a number of sub-bands of numbers of bits for quantization based on noise floor information |
JP3305190B2 (ja) | 1996-03-11 | 2002-07-22 | 富士通株式会社 | データ圧縮装置及びデータ復元装置 |
US5721745A (en) * | 1996-04-19 | 1998-02-24 | General Electric Company | Parallel concatenated tail-biting convolutional code and decoder therefor |
US6269338B1 (en) | 1996-10-10 | 2001-07-31 | U.S. Philips Corporation | Data compression and expansion of an audio signal |
JP3367370B2 (ja) * | 1997-03-14 | 2003-01-14 | 三菱電機株式会社 | 適応符号化方法 |
DE19730130C2 (de) | 1997-07-14 | 2002-02-28 | Fraunhofer Ges Forschung | Verfahren zum Codieren eines Audiosignals |
KR100335609B1 (ko) | 1997-11-20 | 2002-10-04 | 삼성전자 주식회사 | 비트율조절이가능한오디오부호화/복호화방법및장치 |
KR100335611B1 (ko) | 1997-11-20 | 2002-10-09 | 삼성전자 주식회사 | 비트율 조절이 가능한 스테레오 오디오 부호화/복호화 방법 및 장치 |
US6029126A (en) | 1998-06-30 | 2000-02-22 | Microsoft Corporation | Scalable audio coder and decoder |
CA2246532A1 (en) | 1998-09-04 | 2000-03-04 | Northern Telecom Limited | Perceptual audio coding |
EP1062813A1 (en) | 1999-01-13 | 2000-12-27 | Koninklijke Philips Electronics N.V. | Embedding supplemental data in an encoded signal |
US6978236B1 (en) * | 1999-10-01 | 2005-12-20 | Coding Technologies Ab | Efficient spectral envelope coding using variable time/frequency resolution and time/frequency switching |
US7260523B2 (en) * | 1999-12-21 | 2007-08-21 | Texas Instruments Incorporated | Sub-band speech coding system |
US20020016161A1 (en) * | 2000-02-10 | 2002-02-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for compression of speech encoded parameters |
JP2001318698A (ja) * | 2000-05-10 | 2001-11-16 | Nec Corp | 音声符号化装置及び音声復号化装置 |
US6677869B2 (en) | 2001-02-22 | 2004-01-13 | Panasonic Communications Co., Ltd. | Arithmetic coding apparatus and image processing apparatus |
US6538583B1 (en) | 2001-03-16 | 2003-03-25 | Analog Devices, Inc. | Method and apparatus for context modeling |
US7174135B2 (en) * | 2001-06-28 | 2007-02-06 | Koninklijke Philips Electronics N. V. | Wideband signal transmission system |
US20030093451A1 (en) * | 2001-09-21 | 2003-05-15 | International Business Machines Corporation | Reversible arithmetic coding for quantum data compression |
JP2003255999A (ja) * | 2002-03-06 | 2003-09-10 | Toshiba Corp | 符号化デジタルオーディオ信号の変速再生装置 |
JP4090862B2 (ja) | 2002-04-26 | 2008-05-28 | 松下電器産業株式会社 | 可変長符号化方法および可変長復号化方法 |
US7242713B2 (en) * | 2002-05-02 | 2007-07-10 | Microsoft Corporation | 2-D transforms for image and video coding |
DK1487113T3 (da) | 2002-05-02 | 2006-11-20 | Fraunhofer Ges Forschung | Kodning og afkodning af transformationskoefficienter i billede- eller videokodere |
GB2388502A (en) * | 2002-05-10 | 2003-11-12 | Chris Dunn | Compression of frequency domain audio signals |
US7447631B2 (en) | 2002-06-17 | 2008-11-04 | Dolby Laboratories Licensing Corporation | Audio coding system using spectral hole filling |
ATE428167T1 (de) | 2002-07-19 | 2009-04-15 | Nec Corp | Audiodekodierungseinrichtung, dekodierungsverfahren und programm |
DE10236694A1 (de) * | 2002-08-09 | 2004-02-26 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zum skalierbaren Codieren und Vorrichtung und Verfahren zum skalierbaren Decodieren |
US7328150B2 (en) | 2002-09-04 | 2008-02-05 | Microsoft Corporation | Innovations in pure lossless audio compression |
DK1400954T3 (da) | 2002-09-04 | 2008-03-31 | Microsoft Corp | Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde/niveau-moduser |
US7299190B2 (en) | 2002-09-04 | 2007-11-20 | Microsoft Corporation | Quantization and inverse quantization for audio |
CN100401778C (zh) | 2002-09-17 | 2008-07-09 | 弗拉迪米尔·切佩尔科维奇 | 具有高压缩率和最小必需资源的快速codec |
FR2846179B1 (fr) | 2002-10-21 | 2005-02-04 | Medialive | Embrouillage adaptatif et progressif de flux audio |
US6646578B1 (en) | 2002-11-22 | 2003-11-11 | Ub Video Inc. | Context adaptive variable length decoding system and method |
US7876966B2 (en) | 2003-03-11 | 2011-01-25 | Spyder Navigations L.L.C. | Switching between coding schemes |
US6900748B2 (en) | 2003-07-17 | 2005-05-31 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Method and apparatus for binarization and arithmetic coding of a data value |
US7562145B2 (en) | 2003-08-28 | 2009-07-14 | International Business Machines Corporation | Application instance level workload distribution affinities |
JP2005130099A (ja) | 2003-10-22 | 2005-05-19 | Matsushita Electric Ind Co Ltd | 算術復号装置、算術符号化装置、算術符号化・復号装置、携帯端末装置、動画像撮影装置、及び、動画像記録・再生装置 |
JP2005184232A (ja) * | 2003-12-17 | 2005-07-07 | Sony Corp | 符号化装置、プログラム、およびデータ処理方法 |
JP4241417B2 (ja) * | 2004-02-04 | 2009-03-18 | 日本ビクター株式会社 | 算術復号化装置、および算術復号化プログラム |
DE102004007200B3 (de) * | 2004-02-13 | 2005-08-11 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audiocodierung |
CA2457988A1 (en) | 2004-02-18 | 2005-08-18 | Voiceage Corporation | Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization |
US7516064B2 (en) | 2004-02-19 | 2009-04-07 | Dolby Laboratories Licensing Corporation | Adaptive hybrid transform for signal analysis and synthesis |
KR20050087956A (ko) * | 2004-02-27 | 2005-09-01 | 삼성전자주식회사 | 무손실 오디오 부호화/복호화 방법 및 장치 |
CA2992065C (en) * | 2004-03-01 | 2018-11-20 | Dolby Laboratories Licensing Corporation | Reconstructing audio signals with multiple decorrelation techniques |
US20090299756A1 (en) * | 2004-03-01 | 2009-12-03 | Dolby Laboratories Licensing Corporation | Ratio of speech to non-speech audio such as for elderly or hearing-impaired listeners |
KR100561869B1 (ko) | 2004-03-10 | 2006-03-17 | 삼성전자주식회사 | 무손실 오디오 부호화/복호화 방법 및 장치 |
US7577844B2 (en) | 2004-03-17 | 2009-08-18 | Microsoft Corporation | Systems and methods for encoding randomly distributed features in an object |
AU2004321469B2 (en) * | 2004-07-14 | 2009-08-20 | Agency For Science, Technology And Research | Context-based encoding and decoding of signals |
KR100624432B1 (ko) | 2004-08-05 | 2006-09-19 | 삼성전자주식회사 | 내용 기반 적응적 이진 산술 복호화 방법 및 장치 |
EP1810182A4 (en) | 2004-08-31 | 2010-07-07 | Kumar Gopalakrishnan | METHOD AND SYSTEM FOR PROVIDING INFORMATION SERVICES RELEVANT TO VISUAL IMAGE |
RU2387024C2 (ru) | 2004-11-05 | 2010-04-20 | Панасоник Корпорэйшн | Кодер, декодер, способ кодирования и способ декодирования |
US7903824B2 (en) | 2005-01-10 | 2011-03-08 | Agere Systems Inc. | Compact side information for parametric coding of spatial audio |
KR100829558B1 (ko) | 2005-01-12 | 2008-05-14 | 삼성전자주식회사 | 스케일러블 오디오 데이터 산술 복호화 방법 및 장치와스케일러블 오디오 비트스트림 절단 방법 |
EP1836858A1 (en) * | 2005-01-14 | 2007-09-26 | Sungkyunkwan University | Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding |
PL1866915T3 (pl) * | 2005-04-01 | 2011-05-31 | Qualcomm Inc | Sposób i urządzenie do przeciwrozproszeniowego filtrowania sygnału pobudzającego predykcji mowy rozciągniętego na szerokość pasma |
KR100694098B1 (ko) | 2005-04-04 | 2007-03-12 | 한국과학기술원 | 산술 복호 방법 및 그 장치 |
KR100703773B1 (ko) * | 2005-04-13 | 2007-04-06 | 삼성전자주식회사 | 향상된 코딩 효율을 갖는 엔트로피 코딩 및 디코딩 방법과이를 위한 장치, 이를 포함하는 비디오 코딩 및 디코딩방법과 이를 위한 장치 |
US7991610B2 (en) * | 2005-04-13 | 2011-08-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Adaptive grouping of parameters for enhanced coding efficiency |
US7196641B2 (en) * | 2005-04-26 | 2007-03-27 | Gen Dow Huang | System and method for audio data compression and decompression using discrete wavelet transform (DWT) |
US7539612B2 (en) * | 2005-07-15 | 2009-05-26 | Microsoft Corporation | Coding and decoding scale factor information |
US7546240B2 (en) * | 2005-07-15 | 2009-06-09 | Microsoft Corporation | Coding with improved time resolution for selected segments via adaptive block transformation of a group of samples from a subband decomposition |
US20070036228A1 (en) * | 2005-08-12 | 2007-02-15 | Via Technologies Inc. | Method and apparatus for audio encoding and decoding |
EP1932361A1 (en) | 2005-10-03 | 2008-06-18 | Nokia Corporation | Adaptive variable length codes for independent variables |
US20070094035A1 (en) | 2005-10-21 | 2007-04-26 | Nokia Corporation | Audio coding |
KR100803206B1 (ko) | 2005-11-11 | 2008-02-14 | 삼성전자주식회사 | 오디오 지문 생성과 오디오 데이터 검색 장치 및 방법 |
EP1995974B1 (en) | 2005-12-05 | 2015-05-20 | Huawei Technologies Co., Ltd. | Method for realizing arithmetic coding |
KR101237413B1 (ko) | 2005-12-07 | 2013-02-26 | 삼성전자주식회사 | 오디오 신호의 부호화 및 복호화 방법, 오디오 신호의부호화 및 복호화 장치 |
US8665943B2 (en) | 2005-12-07 | 2014-03-04 | Sony Corporation | Encoding device, encoding method, encoding program, decoding device, decoding method, and decoding program |
US7283073B2 (en) * | 2005-12-19 | 2007-10-16 | Primax Electronics Ltd. | System for speeding up the arithmetic coding processing and method thereof |
WO2007080211A1 (en) * | 2006-01-09 | 2007-07-19 | Nokia Corporation | Decoding of binaural audio signals |
WO2007080225A1 (en) | 2006-01-09 | 2007-07-19 | Nokia Corporation | Decoding of binaural audio signals |
KR100774585B1 (ko) | 2006-02-10 | 2007-11-09 | 삼성전자주식회사 | 변조 스펙트럼을 이용한 음악 정보 검색 방법 및 그 장치 |
US8027479B2 (en) * | 2006-06-02 | 2011-09-27 | Coding Technologies Ab | Binaural multi-channel decoder in the context of non-energy conserving upmix rules |
US7948409B2 (en) * | 2006-06-05 | 2011-05-24 | Mediatek Inc. | Automatic power control system for optical disc drive and method thereof |
EP1883067A1 (en) | 2006-07-24 | 2008-01-30 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for lossless encoding of a source signal, using a lossy encoded data stream and a lossless extension data stream |
ATE496365T1 (de) * | 2006-08-15 | 2011-02-15 | Dolby Lab Licensing Corp | Arbiträre formung einer temporären rauschhüllkurve ohne nebeninformation |
US7554468B2 (en) * | 2006-08-25 | 2009-06-30 | Sony Computer Entertainment Inc, | Entropy decoding methods and apparatus using most probable and least probable signal cases |
JP4785706B2 (ja) * | 2006-11-01 | 2011-10-05 | キヤノン株式会社 | 復号装置及び復号方法 |
US20080243518A1 (en) * | 2006-11-16 | 2008-10-02 | Alexey Oraevsky | System And Method For Compressing And Reconstructing Audio Files |
KR100868763B1 (ko) * | 2006-12-04 | 2008-11-13 | 삼성전자주식회사 | 오디오 신호의 중요 주파수 성분 추출 방법 및 장치와 이를이용한 오디오 신호의 부호화/복호화 방법 및 장치 |
US7365659B1 (en) * | 2006-12-06 | 2008-04-29 | Silicon Image Gmbh | Method of context adaptive binary arithmetic coding and coding apparatus using the same |
CN101231850B (zh) | 2007-01-23 | 2012-02-29 | 华为技术有限公司 | 编解码方法及装置 |
KR101365989B1 (ko) | 2007-03-08 | 2014-02-25 | 삼성전자주식회사 | 트리 구조를 기반으로 한 엔트로피 부호화 및 복호화 장치및 방법 |
JP2008289125A (ja) * | 2007-04-20 | 2008-11-27 | Panasonic Corp | 算術復号化装置及びその方法 |
RU2439719C2 (ru) * | 2007-04-26 | 2012-01-10 | Долби Свиден АБ | Устройство и способ для синтезирования выходного сигнала |
US7813567B2 (en) | 2007-04-26 | 2010-10-12 | Texas Instruments Incorporated | Method of CABAC significance MAP decoding suitable for use on VLIW data processors |
JP4748113B2 (ja) | 2007-06-04 | 2011-08-17 | ソニー株式会社 | 学習装置および学習方法、並びにプログラムおよび記録媒体 |
EP2278582B1 (en) | 2007-06-08 | 2016-08-10 | LG Electronics Inc. | A method and an apparatus for processing an audio signal |
RU2439721C2 (ru) | 2007-06-11 | 2012-01-10 | Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен | Аудиокодер для кодирования аудиосигнала, имеющего импульсоподобную и стационарную составляющие, способы кодирования, декодер, способ декодирования и кодированный аудиосигнал |
US8521540B2 (en) * | 2007-08-17 | 2013-08-27 | Qualcomm Incorporated | Encoding and/or decoding digital signals using a permutation value |
WO2009027606A1 (fr) * | 2007-08-24 | 2009-03-05 | France Telecom | Codage/decodage par plans de symboles, avec calcul dynamique de tables de probabilites |
US7839311B2 (en) * | 2007-08-31 | 2010-11-23 | Qualcomm Incorporated | Architecture for multi-stage decoding of a CABAC bitstream |
US7777654B2 (en) * | 2007-10-16 | 2010-08-17 | Industrial Technology Research Institute | System and method for context-based adaptive binary arithematic encoding and decoding |
US8527265B2 (en) * | 2007-10-22 | 2013-09-03 | Qualcomm Incorporated | Low-complexity encoding/decoding of quantized MDCT spectrum in scalable speech and audio codecs |
US8515767B2 (en) * | 2007-11-04 | 2013-08-20 | Qualcomm Incorporated | Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs |
US7714753B2 (en) | 2007-12-11 | 2010-05-11 | Intel Corporation | Scalable context adaptive binary arithmetic coding |
US8631060B2 (en) * | 2007-12-13 | 2014-01-14 | Qualcomm Incorporated | Fast algorithms for computation of 5-point DCT-II, DCT-IV, and DST-IV, and architectures |
EP2077550B8 (en) | 2008-01-04 | 2012-03-14 | Dolby International AB | Audio encoder and decoder |
US8483854B2 (en) * | 2008-01-28 | 2013-07-09 | Qualcomm Incorporated | Systems, methods, and apparatus for context processing using multiple microphones |
JP4893657B2 (ja) * | 2008-02-29 | 2012-03-07 | ソニー株式会社 | 算術復号装置 |
EP2259253B1 (en) | 2008-03-03 | 2017-11-15 | LG Electronics Inc. | Method and apparatus for processing audio signal |
EP2293295A3 (en) | 2008-03-10 | 2011-09-07 | Fraunhofer-Gesellschaft zur Förderung der Angewandten Forschung e.V. | Device and method for manipulating an audio signal having a transient event |
US8340451B2 (en) | 2008-04-28 | 2012-12-25 | Osaka Prefecture University Public Corporation | Method for constructing image database for object recognition, processing apparatus and processing program |
US7864083B2 (en) | 2008-05-21 | 2011-01-04 | Ocarina Networks, Inc. | Efficient data compression and decompression of numeric sequences |
EP2144230A1 (en) * | 2008-07-11 | 2010-01-13 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Low bitrate audio encoding/decoding scheme having cascaded switches |
CA2871268C (en) * | 2008-07-11 | 2015-11-03 | Nikolaus Rettelbach | Audio encoder, audio decoder, methods for encoding and decoding an audio signal, audio stream and computer program |
EP3300076B1 (en) * | 2008-07-11 | 2019-04-24 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio encoder and audio decoder |
US7714754B2 (en) | 2008-07-14 | 2010-05-11 | Vixs Systems, Inc. | Entropy decoder with pipelined processing and methods for use therewith |
PT2146344T (pt) | 2008-07-17 | 2016-10-13 | Fraunhofer Ges Forschung | Esquema de codificação/descodificação de áudio com uma derivação comutável |
US20110137661A1 (en) | 2008-08-08 | 2011-06-09 | Panasonic Corporation | Quantizing device, encoding device, quantizing method, and encoding method |
US20100088090A1 (en) | 2008-10-08 | 2010-04-08 | Motorola, Inc. | Arithmetic encoding for celp speech encoders |
US7932843B2 (en) | 2008-10-17 | 2011-04-26 | Texas Instruments Incorporated | Parallel CABAC decoding for video decompression |
US7982641B1 (en) | 2008-11-06 | 2011-07-19 | Marvell International Ltd. | Context-based adaptive binary arithmetic coding engine |
GB2466666B (en) | 2009-01-06 | 2013-01-23 | Skype | Speech coding |
US8457975B2 (en) * | 2009-01-28 | 2013-06-04 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Audio decoder, audio encoder, methods for decoding and encoding an audio signal and computer program |
KR101622950B1 (ko) | 2009-01-28 | 2016-05-23 | 삼성전자주식회사 | 오디오 신호의 부호화 및 복호화 방법 및 그 장치 |
KR20100136890A (ko) * | 2009-06-19 | 2010-12-29 | 삼성전자주식회사 | 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법 |
EP2446539B1 (en) | 2009-06-23 | 2018-04-11 | Voiceage Corporation | Forward time-domain aliasing cancellation with application in weighted or original signal domain |
BR122021023896B1 (pt) | 2009-10-08 | 2023-01-10 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E. V. | Decodificador de sinal de áudio multimodal, codificador de sinal de áudio multimodal e métodos usando uma configuração de ruído com base em codificação de previsão linear |
EP2315358A1 (en) * | 2009-10-09 | 2011-04-27 | Thomson Licensing | Method and device for arithmetic encoding or arithmetic decoding |
CA2778323C (en) | 2009-10-20 | 2016-09-20 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Audio encoder, audio decoder, method for encoding an audio information, method for decoding an audio information and computer program using a detection of a group of previously-decoded spectral values |
US8149144B2 (en) | 2009-12-31 | 2012-04-03 | Motorola Mobility, Inc. | Hybrid arithmetic-combinatorial encoder |
SG182467A1 (en) | 2010-01-12 | 2012-08-30 | Fraunhofer Ges Forschung | Audio encoder, audio decoder, method for encoding and audio information, method for decoding an audio information and computer program using a hash table describing both significant state values and interval boundaries |
CN102131081A (zh) | 2010-01-13 | 2011-07-20 | 华为技术有限公司 | 混合维度编解码方法和装置 |
EP2619758B1 (en) * | 2010-10-15 | 2015-08-19 | Huawei Technologies Co., Ltd. | Audio signal transformer and inverse transformer, methods for audio signal analysis and synthesis |
US20120207400A1 (en) | 2011-02-10 | 2012-08-16 | Hisao Sasai | Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus |
US8170333B2 (en) | 2011-10-13 | 2012-05-01 | University Of Dayton | Image processing systems employing image compression |
-
2011
- 2011-01-11 SG SG2012051082A patent/SG182467A1/en unknown
- 2011-01-11 BR BR122021008581-1A patent/BR122021008581B1/pt active IP Right Grant
- 2011-01-11 EP EP11700132.1A patent/EP2524371B1/en active Active
- 2011-01-11 SG SG2012051074A patent/SG182466A1/en unknown
- 2011-01-11 PT PT117001321T patent/PT2524371T/pt unknown
- 2011-01-11 MY MYPI2012003151A patent/MY160067A/en unknown
- 2011-01-11 RU RU2012141243A patent/RU2644141C2/ru not_active Application Discontinuation
- 2011-01-11 EP EP11700402.8A patent/EP2524372B1/en active Active
- 2011-01-11 WO PCT/EP2011/050273 patent/WO2011086066A1/en active Application Filing
- 2011-01-11 ES ES11700402.8T patent/ES2532203T3/es active Active
- 2011-01-11 CA CA2786945A patent/CA2786945C/en active Active
- 2011-01-11 JP JP2012548403A patent/JP5624159B2/ja active Active
- 2011-01-11 MY MYPI2012003150A patent/MY153845A/en unknown
- 2011-01-11 BR BR122021008583-8A patent/BR122021008583B1/pt active IP Right Grant
- 2011-01-11 CN CN201180013284.2A patent/CN102844809B/zh active Active
- 2011-01-11 ES ES11700401.0T patent/ES2536957T3/es active Active
- 2011-01-11 PL PL11700401T patent/PL2517200T3/pl unknown
- 2011-01-11 CN CN201180013302.7A patent/CN102792370B/zh active Active
- 2011-01-11 BR BR112012017257A patent/BR112012017257A2/pt not_active Application Discontinuation
- 2011-01-11 BR BR122021008576-5A patent/BR122021008576B1/pt active IP Right Grant
- 2011-01-11 MX MX2012008076A patent/MX2012008076A/es active IP Right Grant
- 2011-01-11 PL PL11700132T patent/PL2524371T3/pl unknown
- 2011-01-11 ES ES11700132.1T patent/ES2615891T3/es active Active
- 2011-01-11 MX MX2012008077A patent/MX2012008077A/es active IP Right Grant
- 2011-01-11 PL PL11700402T patent/PL2524372T3/pl unknown
- 2011-01-11 MX MX2012008075A patent/MX2012008075A/es active IP Right Grant
- 2011-01-11 BR BR112012017256-5A patent/BR112012017256B1/pt active IP Right Grant
- 2011-01-11 WO PCT/EP2011/050272 patent/WO2011086065A1/en active Application Filing
- 2011-01-11 KR KR1020127021034A patent/KR101339057B1/ko active IP Right Grant
- 2011-01-11 CA CA2786944A patent/CA2786944C/en active Active
- 2011-01-11 JP JP2012548402A patent/JP5622865B2/ja active Active
- 2011-01-11 MY MYPI2012003149A patent/MY159982A/en unknown
- 2011-01-11 KR KR1020127021154A patent/KR101336051B1/ko active IP Right Grant
- 2011-01-11 AU AU2011206676A patent/AU2011206676B2/en active Active
- 2011-01-11 TW TW100100950A patent/TWI466104B/zh active
- 2011-01-11 WO PCT/EP2011/050275 patent/WO2011086067A1/en active Application Filing
- 2011-01-11 KR KR1020127020851A patent/KR101339058B1/ko active IP Right Grant
- 2011-01-11 BR BR112012017258-1A patent/BR112012017258B1/pt active IP Right Grant
- 2011-01-11 TW TW100100948A patent/TWI476757B/zh active
- 2011-01-11 TW TW100100949A patent/TWI466103B/zh active
- 2011-01-11 CA CA2786946A patent/CA2786946C/en active Active
- 2011-01-11 JP JP2012548401A patent/JP5773502B2/ja active Active
- 2011-01-11 RU RU2012141241A patent/RU2628162C2/ru active
- 2011-01-11 CN CN201180013281.9A patent/CN102859583B/zh active Active
- 2011-01-11 AU AU2011206677A patent/AU2011206677B9/en active Active
- 2011-01-11 SG SG2012051058A patent/SG182464A1/en unknown
- 2011-01-11 EP EP11700401.0A patent/EP2517200B1/en active Active
- 2011-01-11 AU AU2011206675A patent/AU2011206675C1/en active Active
- 2011-01-12 AR ARP110100097A patent/AR079888A1/es active IP Right Grant
- 2011-01-12 AR ARP110100095A patent/AR079886A1/es active IP Right Grant
- 2011-01-12 AR ARP110100096A patent/AR079887A1/es active IP Right Grant
-
2012
- 2012-07-12 US US13/547,664 patent/US8898068B2/en active Active
- 2012-07-12 US US13/547,640 patent/US8682681B2/en active Active
- 2012-07-12 US US13/547,600 patent/US8645145B2/en active Active
- 2012-08-07 ZA ZA2012/05939A patent/ZA201205939B/en unknown
- 2012-08-07 ZA ZA2012/05938A patent/ZA201205938B/en unknown
- 2012-08-07 ZA ZA2012/05936A patent/ZA201205936B/en unknown
-
2013
- 2013-04-26 HK HK13105056.5A patent/HK1178306A1/zh unknown
- 2013-05-08 HK HK13105504.3A patent/HK1177649A1/zh unknown
-
2014
- 2014-09-19 US US14/491,881 patent/US9633664B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1322405A (zh) * | 1998-09-07 | 2001-11-14 | 弗兰霍菲尔运输应用研究公司 | 信息字的平均信息量编码设备和方法,平均信息量编码信息字的解码设备和方法 |
CN101601087A (zh) * | 2006-11-16 | 2009-12-09 | 弗劳恩霍夫应用研究促进协会 | 用于编码和解码的设备 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102792370B (zh) | 使用描述有效状态值及区间边界的散列表的音频编码器、音频解码器、编码音频信息的方法及解码音频信息的方法 | |
CN103119646B (zh) | 音频编码器、音频解码器、编码音频信息的方法以及解码音频信息的方法 | |
CN102667922B (zh) | 音频编码器、音频解码器、用以将音频信息编码的方法、用以将音频信息解码的方法 | |
RU2574848C2 (ru) | Аудио кодер, аудио декодер, способ кодирования аудио информации, способ декодирования аудио информации и компьютерная программа, использующая хэш-таблицу, которая описывает значимые значения состояния и границы интервала |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |