CN104011794A - 具有并行架构的音频编码器 - Google Patents
具有并行架构的音频编码器 Download PDFInfo
- Publication number
- CN104011794A CN104011794A CN201280064054.3A CN201280064054A CN104011794A CN 104011794 A CN104011794 A CN 104011794A CN 201280064054 A CN201280064054 A CN 201280064054A CN 104011794 A CN104011794 A CN 104011794A
- Authority
- CN
- China
- Prior art keywords
- frame
- coefficient
- parallel
- unit
- frequency set
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 81
- 230000005236 sound signal Effects 0.000 claims abstract description 74
- 238000012545 processing Methods 0.000 claims description 60
- 238000011002 quantification Methods 0.000 claims description 53
- 230000009466 transformation Effects 0.000 claims description 39
- 230000000873 masking effect Effects 0.000 claims description 20
- 230000008447 perception Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 48
- 238000006243 chemical reaction Methods 0.000 description 26
- 238000013139 quantization Methods 0.000 description 12
- 230000004087 circulation Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000001052 transient effect Effects 0.000 description 8
- 238000009432 framing Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 238000007493 shaping process Methods 0.000 description 4
- 238000001228 spectrum Methods 0.000 description 4
- 206010021403 Illusion Diseases 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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/022—Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Spectroscopy & Molecular Physics (AREA)
Abstract
本文献涉及用于音频编码的方法及系统。具体地,本文献涉及利用并行系统架构进行快速音频编码的方法及系统。描述了包括K个并行变换单元(303,403)的基于帧的音频编码器(300,400,500,600);其中,K个并行变换单元(303,403)中的每一个被配置成:将音频信号(101)的K个帧(305)的组中的相应帧转换为K个频率系数集合中的相应集合;其中K>1;其中,K个帧(305)中的每一个包括音频信号(101)的多个样本。
Description
相关申请的交叉引用
本申请要求于2011年11月30日提交的美国临时专利申请第61/565,037号的优先权,在此通过引用将其全部内容合并到本申请中。
技术领域
本文献涉及用于音频编码的方法及系统。具体地,本文献涉及使用并行编码器架构的快速音频编码的方法及系统。
背景技术
当今的媒体播放器支持各种不同的音频格式比如mp3、mp4、WMA(Windows媒体音频)、AAC(高级音频编码)、HE-AAC(高效率的AAC)等。另一方面,媒体数据库(比如Simfy)提供数以百万计的音频文件以供下载。通常,以各种不同的音频格式以及可以由不同媒体播放器支持的各种不同比特率对这些数以百万计的音频文件进行编码以及存储是不经济的。如此,提供如下快速音频编码方案是有利的:该方案使得音频文件的编码能够“实时(on the fly)”,从而使得媒体数据库当被请求时能够产生特定编码的音频文件(以特定的音频格式,以特定的比特率)。
发明内容
根据一个方面,描述了一种基于帧的音频编码器。该音频编码器可以被配置成:将包括多个时域样本的音频信号划分成帧的序列,其中,每个帧通常包括预定数目的样本。作为示例,帧可以包括固定数目M个样本(例如M=1024)。在一种实施方式中,音频编码器被配置成进行高级音频编码(AAC)。
音频编码器可以包括对音频信号的K个帧(例如音频信号的K个连续的帧)并行地进行处理的K个并行变换单元。K个并行变换单元可以在K个不同的处理单元(例如图形处理单元)上实现,从而(与对K个帧的顺序处理相比)将变换处理加速了因子K。变换单元可以被配置成将帧变换为频率系数集合。换言之,变换单元可以执行时域到频域的变换,比如修正离散余弦变换(MDCT)。同样地,K个并行变换单元中的每一个可以被配置成:将音频信号的K个帧的组(也称为帧组)的相应帧变换为K个频率系数集合中的相应集合。K可以大于1、2、3、4、5、10、20、50、100。
如上面所表明的,K个并行变换单元可以被配置成向帧组中的K个帧分别应用MDCT。此外,K个并行变换单元可以被配置成向帧组中的K个帧分别应用窗函数。应当注意,应用于帧的变换的类型和/或窗的类型通常取决于帧的类型(即,本文中也称为块类型的帧类型)。同样地,K个并行变换单元可以被配置成将K个帧分别变换为K个取决于帧类型的频率系数集合。
音频编码器可以包括K个并行信号起奏(attack)检测单元。信号起奏检测单元可以被配置成:将音频信号的帧分类为包括声音起奏的帧(例如瞬态帧)或分类为不包括声音起奏的帧(例如调性(tonal)帧)。同样地,K个并行信号起奏检测单元可以被配置成:基于K个帧中的相应帧中声音起奏的有或无分别对帧组的K个帧进行分类。K个并行信号起奏检测单元可以在至少K个不同的处理单元上实现。具体地,K个并行信号起奏检测单元可以与K个并行变换单元在相同的相应的处理单元上实现。
音频编码器还可以包括帧类型检测单元,其被配置成基于对K个帧的分类来确定K个帧中的每一个帧的帧类型。帧类型的示例有短块类型(其通常用于包括瞬态音频信号的帧)、长块类型(其通常用于包括调性音频信号的帧)、开始块类型(其通常用作从长块类型到短块类型的过渡帧)和/或停止类型(其通常用作从短块类型到长块类型的过渡帧)。如此,帧的帧类型可以取决于一个或更多个先前帧的帧类型。因此,帧类型检测单元可以被配置成:还基于先前帧k-1的帧类型来确定K个帧中的帧k的帧类型,其中k=1,…,K。
作为示例,帧类型检测单元可以被配置成:如果帧k被分类为包括起奏并且如果其先前帧k-1是短块类型或是开始块类型,则确定帧k(k=1,…,K)是短块类型。帧类型检测单元可以被配置成:如果帧k被分类为不包括起奏并且如果其先前帧k-1是长块类型或是停止块类型,则确定帧k(k=1,…,K)是长块类型。帧类型检测单元可以被配置成:如果帧k被分类为包括起奏并且如果其先前帧k-1是长块类型,则确定帧k(k=1,…,K)是开始块类型。此外,帧类型检测单元可以被配置成:如果帧k被分类为不包括起奏并且如果其先前帧k-1是短块类型,则确定帧k(k=1,…,K)是停止块类型。
K个并行变换单元可以与K个并行信号起奏检测单元以及帧类型检测单元并行操作。如此,K个并行变换单元可以在与K个并行信号起奏检测单元不同的处理单元上实现,从而使得能够在至少2K个处理单元上对编码器进行进一步的并行化。在这样的情况下,变换单元可以被配置成执行取决于帧类型的窗口化和/或变换处理的推测执行。具体地,变换单元可以被配置成为帧组中的相应帧确定多个取决于帧类型的频率系数集合。更具体地,变换单元可以被配置成针对帧的每一种可能的帧类型确定取决于帧类型的频率系数集合。音频编码器则可以包括选择单元,其被配置成:从多个取决于帧类型的频率系数集合中(针对K个帧中的每一个帧)选择合适的频率系数集合,其中,合适的频率系数集合与相应帧的帧类型对应。
可替代地,K个并行信号起奏检测单元可以与帧类型检测单元顺序地操作并且与K个并行变换单元顺序地操作。如此,K个并行信号起奏检测单元可以在与K个并行变换单元相同的相应的处理单元上实现。在该情况下,K个并行变换单元可以知道相应帧的帧类型,以使得K个并行变换单元可以被配置成:将K个帧变换为与相应帧的帧类型对应的取决于帧类型的相应频率系数集合。
音频编码器可以包括K个并行量化与编码单元。K个并行量化与编码单元可以在至少K个不同的处理单元(例如K个并行变换单元的相应的处理单元)上实现。量化与编码单元可以被配置成:考虑相应的所分配的比特数目来分别对频率系数集合进行量化和熵编码(例如霍夫曼编码)。换言之,帧组的K个帧的量化和编码可以由K个并行的量化与编码单元独立执行。为此,向K个并行量化与编码单元提供相应的所分配的比特数目的K个指示。如下面将要概述的,可以针对帧组在联合比特分配处理中联合确定相应的所分配的比特数目的指示。
音频编码器还可以包括K个并行心理声学单元。K个并行心理声学单元可以在至少K个不同的处理单元上实现。通常,K个并行心理声学单元可以在与K个并行变换单元相同的相应的处理单元上实现,因为K个并行心理声学单元通常还对由K个并行变换单元提供的相应的K个频率系数集合进行处理。K个并行心理声学单元可以被配置成:基于K个频率系数集合来分别确定一个或更多个取决于帧(并且通常取决于频率)的掩蔽阈值。可替代地或另外地,K个并行心理声学单元可以被配置成针对帧组的对应的K个帧确定K个感知熵值。一般而言,感知熵值提供了对对应的帧的信息内容的指示。通常,感知熵值与应该用于对对应的帧进行编码的比特数目的估计对应。具体地,给定帧的感知熵值可以表明:在分配给量化帧的噪声正好在一个或更多个掩蔽阈值以下这个假设下,对给定帧进行量化和编码需要多少比特。
K个并行量化与编码单元可以被配置成:考虑到相应的一个或更多个取决于帧的掩蔽阈值,分别对K个频率系数集合进行量化和熵编码。如此,可以确保频率系数集合的量化是考虑心理声学而进行的,因此减小了听得见的量化噪声。
音频编码器可以包括比特分配单元,其被配置成:分别向K个并行量化与编码单元分配相应的比特数目。为此,比特分配单元可以考虑帧组的可用总比特数目并且向帧组中的相应帧分配可用的总比特数目。比特分配单元可以被配置成考虑帧组中的相应帧的帧类型来分配相应的比特数目。此外,为了改善对帧组中的帧的比特分配,比特分配单元可以考虑帧组中的所有帧的一些的帧类型。可替代地或另外地,为了向K个帧分配相应的比特数目,比特分配单元可以考虑由K个并行心理声学单元确定的帧组中的K个帧的K个感知熵值。具体地,比特分配单元可以被配置成:取决于帧组的可用总比特数目来对K个感知熵值进行缩放或修改,从而使比特分配适合于帧组的K个帧的感知熵。
音频编码器还可以包括比特储存器跟踪单元,其被配置成:对用于对音频信号的在K个帧之前的帧进行编码的先前消耗的比特数目进行跟踪。通常,向音频编码器提供编码音频信号的目标比特率。如此,比特储存器跟踪单元可以被配置成:对与目标比特数目相关的先前消耗的比特数目进行跟踪。此外,比特储存器跟踪单元可以被配置成:用被K个并行量化与编码单元用于对K个频率系数集合进行编码的比特数目来更新先前消耗的比特数目,从而产生当前消耗的比特数目。当前消耗的比特数目然后可以成为后续K个帧的后续帧组的比特分配处理的基础。
比特分配单元可以被配置成:考虑先前消耗的比特数目(由比特储存器跟踪单元提供)来分配相应的比特数目(即,用于对帧组中的K个帧进行编码而分配的相应比特数目)。此外,比特分配单元可以被配置成:考虑用于对音频信号进行编码的目标比特率来分配相应比特数目。
同样地,比特分配单元可以被配置成:以分组式的方式(与逐帧方式相反)向帧组中的帧分配相应的比特。为了进一步改善比特的分配,比特分配单元可以被配置成:通过考虑当前所消耗的比特数目,以综合分析的方式来向K个量化和编码单元分配相应的比特数目。换言之,对于帧组,可以执行比特分配以及量化和编码的若干次迭代,其中在后续的迭代中,比特分配单元可以考虑由K个量化和编码单元所用的当前所消耗的比特数目。
同样地,比特分配单元可以被配置成:考虑到当前所消耗的比特数目来分配相应的比特数目,因此分别为K个并行量化与编码单元产生相应的更新的分配的比特数目。K个并行量化与编码单元可以被配置为考虑相应的更新的分配的比特数目,来对相应的K个频率系数集合进行量化和熵编码。为了改善帧组的帧之间的比特分配,该迭代的比特分配处理可以以预定的迭代次数重复。
K个并行量化与编码单元以及K个并行变换单元可以被配置成以流水线架构操作。这意味着K个并行变换单元可以被配置成:当K个并行量化与编码单元对当前帧组的频率系数集合进行编码时,对包括K个后续帧的后续帧组进行处理。换言之,当K个并行变换单元对K个帧的组的帧进行变换时,K个并行量化与编码单元可以对与K个帧的组的K个先前帧对应的K个先前频率系数集合进行量化和编码。
根据另外的方面,描述了一种基于帧的音频编码器,其被配置成:在至少K个不同的处理单元上并行地对音频信号的K个帧(即帧组)进行编码。与本文献中所述的音频编码器相关的任何特征都是可应用的。音频编码器可以包括以下至少之一:K个并行变换单元,其中,K个并行变换单元被配置成将K个帧分别变换为K个频率系数集合;K个并行信号起奏检测单元,其中,信号起奏检测单元被配置成:基于K个帧的相应帧中声音起奏的有或无,分别对K个帧进行分类;和/或K个并行量化与编码单元,其中,K个并行量化与编码单元被配置成分别对K个频率系数集合进行量化和熵编码。
根据另外的方面,描述了一种基于帧的音频编码器,其被配置成:在至少K个的不同处理单元上并行地对音频信号的K个帧(即帧组)进行编码。与本文献中所述的音频编码器相关的任何特征都是可应用的。音频编码器包括变换单元,其被配置成分别将K个帧变换为K个对应的频率系数集合。此外,音频编码器包括K个并行量化与编码单元,其中,K个并行量化与编码单元被配置成:考虑相应的分配的比特数目,分别对K个频率系数集合进行量化和熵编码。此外,音频编码器包括比特分配单元,其被配置成:基于用于对在K个帧之前的音频信号的帧进行编码的先前消耗的比特数目,来分别向K个并行量化与编码单元分配相应的比特数目。
根据另一个方面,描述了一种基于帧的音频编码器,其被配置成:在至少K个不同的处理单元上并行地对音频信号的K个帧进行编码。与本文献中所述的音频编码器相关的任何特征都是可应用的。音频编码器包括K个并行信号起奏检测单元,其中,信号起奏检测单元被配置成分别基于相应帧中声音起奏的有或无对K个帧进行分类。此外,音频编码器包括帧类型检测单元,其被配置成:基于帧k的分类并且基于先前帧k-1的帧类型确定帧组的帧k的帧类型,其中k=1,…,K。此外,音频编码器包括K个并行变换单元,其中K个并行变换单元被配置成分别将K个帧变换为K个频率系数集合。通常,与帧对应的频率系数的集合取决于于该帧的帧类型。换言之,变换单元被配置成执行取决于帧类型的变换。
根据另外的方面,描述了一种用于对包括帧的序列的音频信号进行编码的方法。此方法可以包括以下中的任意一项或更多项:将音频信号的K个帧并行地变换为对应的K个频率系数集合;基于K个帧的相应帧中声音起奏的有或无,对K个帧的每一帧并行地进行分类;以及考虑到相应的分配的比特数目,对K个频率系数集合的每一个并行地进行量化和熵编码。
根据另一个方面,描述了一种用于对包括帧的序列的音频信号进行编码的方法。该方法可以包括:将音频信号的K个帧并行地变换为K个对应的频率系数集合;考虑相应的分配的比特数目,对K个频率系数集合的每一个并行地进行量化和熵编码;以及基于用于对在K个帧之前的音频信号的帧进行编码的先前消耗的比特数目来分配相应的比特数目。
根据另外的方面,描述了一种用于对包括帧的序列的音频信号进行编码的方法。该方法可以包括:基于K个帧的相应帧中声音起奏的有或无,对音频信号的K个帧的每一帧并行地进行分类;基于帧k的分类并且基于帧k-1的帧类型确定K个帧的每一个帧k的帧类型,其中k=1,…,K;以及将K个帧的每一个帧并行地变换为K个频率系数集合的相应集合;其中,与帧k对应的频率系数的集合k取决于于帧k的帧类型。
根据另外的方面,描述了一种软件程序。该软件程序可以适合于在处理器上执行并且当在计算装置上执行时用于执行在本文献中所概述的方法步骤。
根据另一个方面,描述了一种存储介质。该存储介质可以包括软件程序,该软件程序适合于在处理器上执行并且当在计算装置上执行时用于执行本文献所概述的方法步骤。
根据另外的方面,描述了一种计算机程序产品。计算机程序可以包括当在计算机上执行时用于执行本文献中所概述的方法步骤的可执行指令。
应当注意,包括如在本文献中所概述的作为其优选实施方式的方法及系统可以单独使用或者与本文献中公开的其他方法及系统结合使用。此外,本文献中所概述的方法及系统的所有方面可以被任意组合。具体地,权利要求的特征可以以任意方式彼此进行组合。
附图说明
下面参照附图以示例性方式对本发明进行说明,其中
图1a示出了示例音频编码器的框图;
图1b示出了音频编码器所应用的基于帧的示例时频变换;
图2示出了示例音频编码器的摘要的框图;
图3示出了图2所示的编码器摘要的示例并行架构的框图;
图4示出了图2所示的编码器摘要的另一个示例并行架构的框图;
图5示出了包括各种并行化编码器处理的示例音频编码器的框图;
图6示出了音频编码器的示例流水线架构的框图;以及
图7示出了迭代比特分配处理的示例流程图。
具体实施方式
图1a示出了示例音频编码器100。具体地,图1a示出了示例高级音频编码(AAC)编码器100。在基于频带复制(SBR)的编码方案比如高效(HE)AAC的环境下,音频编码器100可以用作核心编码器。可替代地,音频编码器100也可以单独使用。AAC编码器100通常将音频信号101分解成称为帧的分段的序列。称为窗的时域处理通过修改这些帧中的数据提供帧间的平滑过渡。AAC编码器100可以使对音频信号的帧的编码适应于包括在帧(例如音频信号的调性部分或瞬态部分)中的时域信号的特性。为此,AAC编码器100适用于在对作为M=1028个样本的长块的整个帧的编码与对作为M=128个样本的短块的序列的帧的编码之间动态地切换。同样地,AAC编码器100可以在以相对高的频率分辨率(使用长块)编码与以相对高的时间分辨率(使用短块的序列)编码之间切换。同样地,AAC编码器100适用于对在调性(稳态、和声丰富的复杂谱信号)(使用长块)与冲击(瞬态信号)(使用八个短块的序列)之间波动的音频信号进行编码。
使用修正离散余弦变换(MDCT)将样本的每个帧转换至频域。为了避免频谱泄露的问题,该问题通常发生在基于块(也称为基于帧)的时频变换的情况下,MDCT利用了重叠窗口,即MDCT是所谓的重叠变换的示例。这在图1b中被示出,其示出了包括帧171的序列的音频信号101。在示出的示例中,每个帧171包括音频信号101的M个样本。如序列172所示,替代将变换应用于仅单个帧,重叠MDCT以重叠的方式对两个相邻帧进行变换。为了对连续帧之间的过渡进行进一步的平滑,另外地应用了长度为2M的窗函数w[k]。因此,获得了大小为M的频率系数集合的序列。在对应的AAC解码器处,逆MDCT被应用于频率系数集合的序列,从而产生了长度为2M的时域样本集合的序列。使用如图1b所示的重叠与相加操作173,获得长度为M的解码样本的帧174。
图1a示出了示例AAC编码器100的另外的细节。编码器100包括将MDCT变换应用于音频信号101的样本的帧的滤波器组151。如上面所概述的,MDCT变换是一种重叠变换并且通常对音频信号101的两个帧的样本进行处理以提供频率系数集合。频率系数集合被提交给量化与熵编码单元152。量化与编码单元152确保实现目标比特率与量化噪声之间的最佳权衡。AAC编码器100的另外的组件是感知模型153,其(除此之外)用于确定在量化和编码期间应用的取决于信号的掩蔽阈值。此外,AAC编码器100可以包括将全局调节增益应用于音频信号101的每个帧的增益控制单元154。通过这样做,可以增大AAC编码器100的动态范围。此外,可以应用时域噪声整形(TNS)155、后向预测156以及联合立体声编码157(例如中间/侧边信号编码)。
在本文献中,描述了用于对图1中示出的音频编码方案进行加速的各种措施。应当注意,虽然在AAC编码的情况下描述了这些措施,但是这些措施一般能适用于音频编码器。具体地,这些措施一般能适用于基于块(或基于帧)的音频编码器。
图2示出了AAC编码器100的摘要200的示例框图。图解200与图1a所示的滤波器组模块151相关。如上面所概述的,为了使编码适应于音频信号101的特定特性(调性对瞬态),AAC编码器100将音频信号101的帧分类为所谓的长块及短块。为此,AAC编码器100对音频信号101的每个帧(包括M=1024个样本)进行分析并且关于帧的合适的块类型做出决定。这在块类型决定单元201中执行。应当注意,除了长块以及短块的序列(N=8),AAC还提供了另外的块类型:“开始块”(作为长块与短块序列之间的过渡块)以及“停止块”(作为短块序列与长块之间的过渡块)。
在决定块类型后,将合适的窗应用于音频信号101的帧(窗单元202)。如上面所概述的,MDCT变换是重叠变换,即窗被应用于音频信号101的当前帧k并且被应用于先前帧k-1(即,应用于总共2M=2048个样本)。窗单元202通常应用适合于在块类型决定单元201中确定的块类型的窗类型。这意味着窗的形状取决于帧k的实际类型。在将窗应用于一组相邻帧之后,为了产生与音频信号101的帧对应的频率系数集合,将合适的MDCT变换应用于相邻帧的窗口化组。作为示例,如果当前帧k的块类型是“短块”,则使用八次连续的MDCT变换203将当前帧k的窗口化样本的八个短块的序列转换成八个频率系数集合。另一方面,如果当前帧k的块类型是“长块”,则利用单次MDCT变换将当前帧k的窗口化样本转换成单个的频率系数集合。
针对音频信号101的所有帧重复上面的处理,从而产生以顺序方式进行量化和编码的频率系数集合的序列。因为是顺序编码方案,所以整体编码速度受到用于对音频信号101进行编码的处理单元的处理能力的限制。
在本文献中提出了打破在图1a和图2的情况下描述的传统音频编码器100、200的依赖链,以加快整体编码速度。具体地,提出了至少将与在图2的情况下描述的编码任务相关的变换并行化。图3中示出了与顺序架构200对应的并行化架构300的示例。在并行化架构300中,收集音频信号101的多个帧305。作为示例,收集音频信号101的K=10个帧。为了确定帧k(k=1,…,K)是包括调性内容还是包括瞬态内容,针对多个K个帧30中的每一个进行信号起奏检测(由信号起奏检测单元301进行)。基于对多个K个帧305的每一个的该分类,起奏-块类型单元304可以确定多个K个帧305的每一个的相应的块类型。具体地,起奏-块类型单元304可以确定来自多个K个帧305的特定帧k是应该编码为短块的序列、长块、开始块还是停止块。
确定了相应的块类型以后,窗与变换单元303可以将合适的窗与合适的MDCT变换应用于多个K个帧305的每一个。对于K个帧305这可以并行完成。鉴于相邻帧之间的重叠,可以将相邻帧的组馈送给K个并行窗口化和变换处理。例如,K个并行窗口化和变换处理可以用索引k=1,…,K来标识。第k个处理对多个K个帧的第k帧进行处理。由于窗口化与变换通常重叠,另外可以将第k帧的一个或更多个先前帧(例如第k-1帧)提供给第k个处理。同样地,K个处理可以并行进行,从而为音频信号101的K个帧305提供K个频率系数集合。
与图2所示的顺序架构200相比,并行架构300可以在K个并行处理单元上实现,因此,与图2所描述的顺序处理相比,整体处理速度加快了因子K。
可替代地或另外地,可以通过打破对音频信号101的帧的块类型决定与窗口化/变换之间的依赖链来并行化图2的架构200。可以通过试验性地进行随后可能被丢弃的计算来打破依赖链。这样的对计算的推测性执行的益处在于:由于推测性执行,大量相同的处理任务可以被并行执行。由并行执行提供的提升了的速度通常在权重上超过因丢弃部分计算结果而导致的效率低下。
如在图2和图3的情况下所概述的,AAC编码器100首先决定块类型,然后才进行窗口化和变换处理。这导致了依赖性:只有当执行块类型决定时才能够进行窗口化和变换。然而,当允许如由图4中编码方案400示出的推测性执行时,可以在音频信号101的每个(重叠)帧l上利用AAC中可用的4种不同的窗类型并行执行四种不同变换。在窗和变换单元403中并行确定每个帧l的四个频率系数集合。因此,针对音频信号101的每个帧l获得四个频率系数集合(针对长块类型的集合、针对短块类型的集合、针对开始块类型的集合以及针对停止块类型的集合)。块类型决定301可以独立于(例如并行于)帧k的窗口化和变换而执行。根据在并行块类型决定301中所确定的帧l的块类型,可以利用选择单元406为帧l选择合适的频率系数集合。由窗和变换单元403提供的其他三个频率系数集合可以被丢弃。
作为这样的推测性执行的结果,音频信号的L个帧可以被提交给并行使用不同处理单元的窗口化与变换处理403。每个处理单元(例如第l个处理单元,l=1,…,L)针对处理单元所处理的第l帧确定四个频率系数集合,即与当块类型已知时所执行的窗口化与变换301相比,每个处理单元执行大约四倍多的处理步骤。尽管如此,通过图4所示的并行化架构400,整体编码速度可以提高因子L/4。L可以在几百的范围内进行选择。这就使提出的方法适合应用于具有大量并行处理器的处理器场。
并行架构400与并行架构300可以两者择一地使用或结合使用。然而,应当注意,作为并行化的结果,编码延迟通常会增加。另一方面,编码速度可以显著提高,因此使并行化架构在可以通过编码处理的大规模并行化实现快速(“实时”)下载的音频下载应用的环境下令人感兴趣。
图5示出了另外的示例并行编码器架构500。架构500是架构300的扩展并且包括应用心理声学模型153以及执行量化与编码152的另外的方面。以与图3类似的方式,架构500包括对音频信号101的K个帧305进行并行处理的信号起奏检测单元301。基于已分类的帧,起奏-块类型单元304确定K个帧305中的每一帧的块类型。随后,与K个帧305对应的K个频率系数集合在窗口化与变换单元303内的K个并行处理中确定。这K个频率系数集合可以用于心理声学处理单元506以确定K个频率系数集合的取决于频率的掩蔽阈值。掩蔽阈值在量化与编码单元508中被用于考虑心理声学以取决于频率的方式对K个频率系数集合进行量化和编码。换言之,对于第k个频率系数集合(即对于第k帧),心理声学处理单元506确定一个或更多个取决于频率的掩蔽阈值。对一个或更多个掩蔽阈值的确定可以针对频率系数集合k(k=1,…,K)并行执行。第k帧的一个或更多个掩蔽阈值被提供给(串行或并行)量化和编码单元152、508用于第k个频率系数集合的量化和编码。同样地,对取决于频率的掩蔽阈值的确定可以被并行化,即,对掩蔽阈值的确定可以在K个独立处理单元上并行执行,从而加快了整体编码速度。
此外,图5示出了量化和编码处理152的示例并行化。通常通过幂律量化来完成量化。通过这样做,较大频率系数值自动以较低的精确度被编码并且一些噪声整形已被构建至量化处理中。然后通过霍夫曼编码对量化值进行编码。为了使编码处理适合于音频信号101的不同局部统计,可以从存储在数据库中的多个霍夫曼表中选出特定的(最佳的)霍夫曼表。可以针对音频信号的频谱的不同部分选择不同的霍夫曼表。例如,用于对第k个频率系数集合进行编码的霍夫曼表可以取决于第k帧的块类型。
应当注意,对特定的(最佳的)霍夫曼表的搜索还可以并行化。假设P是可能的霍夫曼表的总数。对于第k(k=1,…,K)帧,可以在P个并行处理中(运行在P个并行处理单元上)使用P个霍夫曼表的不同的表对第k个频率系数集合进行编码。这产生了P个频率系数编码集合,其中这P个频率系数编码集合中的每一个具有相应的比特长度。产生了具有最小比特长度的频率系数编码集合的霍夫曼表可以被选作第k帧的特定的(最佳的)霍夫曼表。作为完全并行化方案的替代方案,中间并行化方案比如具有α/β剪枝的分而治之的策略(其中每个分支在单独的并行处理单元上执行)可以被用于确定第k帧的特定的(最佳的)霍夫曼表。
由于霍夫曼编码是可变编码长度方法并且由于应当进行噪声整形以保持量化噪声低于取决于频率的掩蔽阈值,因此全局增益值(确定量化步长)与缩放因子(确定每个缩放因子(即频率)带的噪声整形因子)通常在实际量化之前应用。对于音频信号101的给定帧用于确定全局增益值与缩放因子(在目标比特率和/或目标感知失真的约束下)之间的最佳权衡的处理通常以综合分析的方式通过两个嵌套迭代循环来执行。换言之,量化与编码处理152通常包括两个嵌套迭代循环,所谓内部迭代循环(或速率循环)与外部迭代循环(或噪声控制循环)。
在内部迭代循环(速率循环)的情况下,确定全局增益值以使经量化与编码的频率系数集合满足目标比特率(或满足针对特定帧k的所分配的比特数目)。通常,霍夫曼编码表为(较频繁)较小的量化值分配较短的码字。如果由编码操作产生的比特数目超过可用于对给定帧k进行编码的比特数目,则这可以通过调节全局增益来产生较大的量化步长来进行校正,从而导致较小的量化值。用不同量化步长重复此操作直到霍夫曼编码所需的比特数目少于或等于分配给该帧的比特。因为循环对整个编码器比特率进行修改直到比特率满足目标比特率,所以此循环称为速率循环。
在外部迭代循环(噪声控制循环)的情况下,取决于频率的缩放因子适合于取决于频率的掩蔽阈值以控制整体感知失真。为了根据取决于频率的掩蔽阈值对量化噪声进行整形,将缩放因子应用于每个缩放因子带。该缩放因子带与音频信号中的频率间隔对应,并且每个缩放因子带包括频率系数集合的不同子集。通常,缩放因子带与音频信号的整个频率范围被分成临界子带的感知激励的分段对应。编码器通常针对每个缩放因子带以默认缩放因子1开始。如果发现给定带中的量化噪声超过了取决于频率的掩蔽阈值(即,此带中所允许的噪声),则对该带的缩放因子进行调节以减小量化噪声。同样地,缩放因子与取决于频率的增益值对应(相比在速率调节循环中调节的总体增益值),其可以用于单独地控制每个缩放因子带中的量化步骤。
由于实现较小的量化噪声需要较大数量的量化步骤并且因此需要较高的比特率,所以每当使用新的缩放因子时可能需要重复速率调节循环。换言之,速率循环嵌套在噪声控制循环之中。执行外部(噪声控制)循环直到针对每个缩放因子带(即临界带)实际噪声(通过原始谱值减去量化谱值所得的差计算)低于掩蔽阈值。
虽然内部迭代循环总是收敛,但对于两个迭代循环的组合这并不成立。例如,如果感知模型要求量化步长小以至于速率循环总是必须增大量化步长以使得能够以目标比特率进行编码,则两个循环都不会收敛。如果没有实现收敛,则可以设置条件来终止迭代。可替代地或另外地,可以基于目标比特率来确定掩蔽阈值。换言之,例如在感知处理单元506中确定的掩蔽阈值可能取决于目标比特率。这通常能够使量化与编码方案收敛于目标比特率。
应当注意,上述迭代量化与编码处理(也称为噪声分配处理)仅是用于确定量化和编码的频率系数集合的一种可能处理。本文献中所述的并行化方案同样适用于量化与编码单元508内的并行噪声分配处理的其他实现。
作为量化与编码处理的结果,针对音频信号101的相应帧获取量化并且编码的频率系数集合。该量化并且编码的频率系数集合被表示通常取决于分配给该帧的比特数目的某一数目的比特。音频信号101的声学内容从一帧到下一帧可能变化显著,例如包括调性内容的帧对比包括瞬态内容的帧。因此,对帧进行编码所需的比特数目(鉴于某些所允许的感知失真)可能逐帧变化。例如,与包括瞬态内容的帧相比,包括调性内容的帧可能需要减少了的比特数目。同时,整体编码音频信号应当满足某个目标比特率,即每一帧的平均比特数目应当满足预定的目标值。
为了确保预定目标比特率并且为了考虑到帧的不同比特需求,AAC编码器100通常利用与整体比特储存器协作的比特分配处理。根据目标比特率逐帧地用多个比特来填充整体比特储存器。同时,整体比特储存器由用于对过去的帧进行编码的比特数目进行更新。同样地,整体比特储存器对已经被用来对音频信号101进行编码的比特的数量进行跟踪并且因此提供可用于对音频信号101的当前帧进行编码的比特数目的指示。比特分配处理利用此信息来分配用于对当前帧进行编码的比特数目。对于该分配处理,可能要考虑当前帧的块类型。因此,比特分配处理可以为量化与编码单元152提供可用于对当前帧进行编码的比特的数目的指示。该指示可以包括所分配比特的最小数目、所分配比特的最大数目和/或所分配比特的平均数目。
量化与编码单元152使用对所分配比特数目的指示来对与当前帧对应的频率系数集合进行量化和编码,从而确定占用了实际比特数目的量化并且编码的频率系数集合。通常,仅在上述量化和编码(包括嵌套循环)的执行之后才知道实际的比特数目,并且该实际的比特数目可以在由对所分配的比特数目的指示所提供的范围内变化。用实际比特数目对整体比特储存器进行更新并且针对后续帧重复进行比特分配处理。
图5示出了对与K个帧305对应的K个频率系数集合并行地进行量化和编码的并行量化与编码方案508。如上面所概述的,第k个频率系数集合的实际量化和编码独立于其他频率系数集合的量化和编码。因此,K个频率系数集合的量化和编码可以并行执行。然而,用于第k个频率系数集合的量化和编码的所分配的比特的指示(例如所分配的比特的最大数目、最小数目和/或平均数目)通常取决于在第k-1个频率系数集合的量化和编码之后的整体比特储存器的状态。因此,本文献中描述了修正的比特分配处理507和修正的比特储存器更新处理509,其使得能够实现并行化量化和编码处理508。
示例比特分配处理507可以包括在K个频率系数集合的实际量化和编码508之后对比特储存器进行更新的步骤。所更新的比特储存器然后可以成为并行地为后续的K个频率系数集合提供比特的分配的比特分配处理507的基础。换言之,比特存储器更新处理509与比特分配处理507可以每K个帧的组进行(而不是以每帧为基础进行处理)。更具体地,比特分配处理507可以包括从比特储存器为K个帧的组(而不是逐帧获取可用比特数目)获取可用的比特总数T的步骤。随后,比特分配处理507可以为K个帧的组的各个帧分配可用的比特总数T,因此产生了K个帧的组的相应的第k帧所分配的相应的比特数目Tk(k=1,…,K)。比特分配处理507可以考虑K个帧中的帧的块类型。具体地,与仅考虑每个单独的帧的块类型的顺序比特分配处理507相比,比特分配处理507可以对K个帧的所有帧的块类型进行协同考虑。可以考虑关于K个帧的组中相邻帧的块类型的附加信息来提供改进的比特分配。
为了进一步改善对K个帧的组的帧的比特分配,比特分配/比特储存器更新处理可以以综合分析的方式来进行,因此对整体比特分配进行优化。图7示出了使用综合分析方案的示例迭代比特分配处理700。在步骤701中,用于对K个帧305的组进行编码的总的比特数目T接收自比特储存器。该比特总数T随后分发给K个帧的组中的帧,因此产生了为K个帧的组中的每个帧k(k=1,…,K)所分配的比特数目Tk(步骤702)。在比特分配处理700的第一次迭代中,分发步骤702可以主要基于组305中K个帧的块类型。数目Tk被传递至对K个帧进行量化和编码的相应的量化和编码单元508,因此产生了K个编码帧。K个编码帧分别耗尽Uk(k=1,…,K)个比特。在步骤703中接收所耗尽的比特数目Uk。
随后,验证迭代的比特分配处理700的停止标准是否满足(步骤704)。示例停止标准可以包括下面一个或更多个标准的与或者或的组合:迭代的比特分配处理已经执行了预定的最大迭代次数;所耗尽的比特的总数、即∑Uk与可用的比特数目T满足预定关系;数目Uk以及Tk与k=1,…,K的一些或所有满足预定的关系,等。例如,对于帧l如果U1<T1,则执行比特分配处理700的另一次迭代可能是有利的,其中T1减小T1与U1的差,并且U1与可用的比特(T1-U1)被分配给其他帧。
如果不满足停止标准(附图标记705),则执行比特分配处理700的进一步迭代,其中,考虑先前迭代的所耗尽的比特Uk(k=1,…,K)来执行T个比特的分配(步骤702)。另一方面,如果满足停止标准(附图标记706),然后终止迭代处理并且用实际所耗尽的比特数目Uk(即最后一次迭代的所耗尽的比特)来更新比特储存器。
换言之,对于K个帧的组,可以首先向K个并行量化和编码处理508的每一个处理分配初步的比特。结果,确定K个量化与编码的频率系数集合与K个实际所用的比特数目。然后可以对K个实际比特数目的分发进行分析,并且可以对至K个并行量化和编码处理508的比特分配进行修改。例如,未被特定帧使用的所分配的比特可以被分配给其他帧(例如已经耗尽所有所分配比特的帧)。可以利用修正的比特分配处理对K个并行量化和编码处理508进行重复,等等。为了对分组式比特分配处理507进行优化,可以执行此处理的若干次迭代(例如两次或三次迭代)。
图6示出了流水线方案600,此方案可以可替代地或另外地用于图3、图4以及图5中示出的并行方案。在流水线方案600中,与对先前帧k-1的频率系数集合的量化与编码(附图标记608、609)并行地确定当前帧k的频率系数集合(附图标记301、304、303、506)。并行处理在当前帧k的比特分配级607处汇聚。如上面所概述的,比特分配级607用作输入比特储存器,利用用于对先前帧k-1的频率系数集合进行编码的实际比特数目和/或当前帧k的块类型对此比特储存器进行更新。当使用图6的流水线方案600时,不同处理单元可以被用于当前帧k的频率系数集合的确定(附图标记301、304、303、506)并且用于先前帧(k-1)的频率系数集合的量化和编码(附图标记608、609)。这导致编码方案加速了因子2。
如图6所示,流水线方案600可以结合并行化方案300、400、500来使用。这意味着当当前K个帧的组被变换以提供K个频率系数集合(附图标记301、304、303、506)时,可以对先前K个帧的组的先前K个频率系数集合进行量化(附图标记608、609)。如上所概述的,对K个帧的K个频率系数集合的确定的并行化使得能够实现在K个不同的处理单元上实现这些并行处理。以类似的方式,K个并行量化与编码处理608可以在K个不同的处理单元上实现。总之,2K个并行处理单元可以用在流水线方案600中以将编码方案整体加速因子2K(例如,在K=10的情况下,加速了因子20)。
在图3、图4、图5和图6中示出了可以被用来提供快速音频编码器的实现的几个架构。可替代或另外地,可以采取措施来加速在一个或更多个处理单元上对编码器的实际实现。具体地,可以用谓词逻辑来产生音频编码器的加速实现。具有长处理流水线的处理单元通常具有条件转移的缺点,因为此条件转移阻碍(延迟)流水线的执行。流水线的条件执行是在一些处理单元上可以被用来提供加速实现的特征。或者,可以用比特掩码(而不是显式条件)对条件执行进行仿真。
在本文献中,描述了用于快速音频编码的各种方法及系统。提出了使得能够在并行处理单元上实现音频编码器的各种部件的几个并行编码器架构,因此减少了整体编码时间。用于快速音频编码的方法及系统可以用于比实时更快的音频编码,例如在音频下载应用的背景下。
应当注意,描述和附图仅仅示出了所提出方法及系统的原理。虽然并未在此明确描述或示出,但应当理解:本领域技术人员将能够设计出体现本发明的原理并且包含在本发明的精神和范围之内的各种布置。此外,本文记载的所有示例主要目的明确在于仅仅为了帮助读者理解所提出方法和系统的原理以及由发明者贡献的概念来推动技术的教学目的,并且应被解释为不限于这些具体列举的示例及条件。此外,本文记载了本发明的原理、方面与实施方式及其具体示例的所有陈述意在包含其等同物。
本文献中所述方法和系统可以实现为软件、固件和/或硬件。某些部件可以例如实现为运行在数字信号处理器或微处理器上的软件。其他部件可以例如实现为硬件和或实现为专用集成电路。在所述方法和系统中遇到的信号可以存储在诸如随机存取存储器或光存储介质的存储媒体上。它们可以通过网络进行传输,比如无线电网络、卫星网络、无线网络或有线网络,例如因特网。利用了本文献中所述方法和系统的典型装置有:被用来存储和/或渲染音频信号的便携式电子装置或其他消费类设备。
Claims (37)
1.一种基于帧的音频编码器(300,400,500,600),包括
K个并行变换单元(303,403);其中,所述K个并行变换单元(303,403)中的每一个被配置成:将音频信号(101)的K个帧(305)的组中的相应帧变换成K个频率系数集合中的相应集合;其中K>1;其中,所述K个帧(305)中的每一个包括所述音频信号(101)的多个样本。
2.根据权利要求1所述的音频编码器(300,400,500,600),其中,所述K个并行变换单元(303,403)中的每一个被配置成:向所述K个帧(305)中的相应帧应用修正离散余弦变换。
3.根据任一前述权利要求所述的音频编码器(300,400,500,600),其中,所述K个并行变换单元(303,403)中的每一个被配置成:向所述K个帧(305)中的相应帧应用窗函数。
4.根据任一前述权利要求所述的音频编码器(300,400,500,600),其中,所述K个并行变换单元(303,403)中的每一个被配置成:将所述K个帧(305)中的相应帧变换成取决于帧类型的频率系数集合。
5.根据权利要求4所述的音频编码器(300,400,500,600),还包括:
K个并行信号起奏检测单元(301),其中,每个信号起奏检测单元(301)被配置成:基于所述K个帧(305)中的相应帧中声音起奏的有或无,对所述K个帧(305)中的相应帧进行分类。
6.根据权利要求5所述的音频编码器(300,400,500,600),还包括:
帧类型检测单元(304),被配置成:基于对所述K个帧的分类来确定所述K个帧(305)中的每一个帧的帧类型。
7.根据权利要求6所述的音频编码器(300,400,500,600),其中,所述帧类型是短块类型、长块类型、开始块类型和停止类型之一。
8.根据权利要求6至7中任一项所述的音频编码器(300,400,500,600),其中,所述帧类型检测单元(304)被配置成:还基于帧k-1的帧类型确定所述K个帧(305)中的每个帧k的帧类型,其中k=1,…,K。
9.根据权利要求6至8中任一项所述的音频编码器(400),其中,所述K个并行变换单元(403)与所述K个并行信号起奏检测单元(301)和所述帧类型检测单元(304)并行操作。
10.根据权利要求6至9中任一项所述的音频编码器(400),其中
所述K个并行变换单元(303、403)中的每一个被配置成:将所述K个帧(305)中的相应帧变换为多个取决于帧类型的频率系数集合;以及
所述编码器(400)还包括选择单元(406),所述选择单元(406)被配置成:从所述多个取决于帧类型的频率系数集合中为所述K个帧(305)中的每一帧选择频率系数集合,其中,所选择的集合与所述相应帧的帧类型对应。
11.根据权利要求6至8中任一项所述的音频编码器(400),其中,所述K个并行信号起奏检测单元(301)与所述帧类型检测单元(304)顺序地操作,所述帧类型检测单元(304)与所述K个并行变换单元(403)顺序地操作。
12.根据权利要求6至8以及11中任一项所述的音频编码器(300,500,600),其中,所述K个并行变换单元(303)的每一个被配置成:将所述K个帧(305)中的相应帧变换成与所述帧类型检测单元(304)所确定的所述相应帧的帧类型对应的频率系数集合。
13.根据任一前述权利要求所述的音频编码器(300,400,500,600),还包括:
K个并行量化与编码单元(508,608);其中,所述K个并行量化与编码单元(508,608)中的每一个被配置成:考虑相应的所分配比特数目来对所述K个频率系数集合中的相应集合进行量化和熵编码。
14.根据权利要求13所述的音频编码器(300,400,500,600),还包括:
K个并行心理声学单元(506);其中,所述K个并行心理声学单元(506)中的每一个被配置成:基于所述K个频率系数集合中的相应集合来确定一个或更多个取决于帧的掩蔽阈值。
15.根据权利要求14所述的音频编码器(300,400,500,600),其中,所述K个并行心理声学单元(506)中的每一个被配置成:对表示所述K个帧(305)中的相应帧的信息内容的感知熵值进行确定。
16.根据权利要求14至15中任一项所述的音频编码器(300,400,500,600),其中,所述K个并行量化与编码单元(508、608)中的每一个被配置成:考虑相应的一个或更多个取决于帧的掩蔽阈值来对所述K个频率系数集合中的相应集合进行量化和熵编码。
17.根据权利要求13至16中任一项所述的音频编码器(300,400,500,600),还包括:
比特分配单元(507,607),被配置成:向所述K个并行量化与编码单元(508,608)中的每一个分配相应的比特数目。
18.根据从属于权利要求6的权利要求17所述的音频编码器(300,400,500,600),其中,所述比特分配单元(507,607)被配置成:考虑所述K个帧(305)的帧类型来分配相应的比特数目。
19.根据权利要求15所述的音频编码器(300,400,500,600),其中,所述比特分配单元(507,607)被配置成:考虑所述K个帧(305)的感知熵值来分配相应的比特数目。
20.根据权利要求17至19中任一项所述的音频编码器(300,400,500,600),还包括:
比特储存器跟踪单元(509,609),被配置成:对用于对所述音频信号(101)的在所述K个帧(305)之前的帧进行编码的先前消耗的比特数目进行跟踪。
21.根据权利要求20所述的音频编码器(300,400,500,600),其中,所述比特储存器跟踪单元(509,609)被配置成:用被所述K个并行量化与编码单元(508,608)用于对所述频率系数集合进行编码的比特数目来更新先前消耗的比特数目,从而产生当前消耗的比特数目。
22.根据权利要求20至21中任一项所述的音频编码器(300,400,500,600),其中,所述比特分配单元(507,607)被配置成:考虑先前消耗的比特数目来分配相应的比特数目。
23.根据权利要求20至22中任一项所述的音频编码器(300,400,500,600),其中,所述比特分配单元(507,607)被配置成:考虑用于对所述音频信号(101)进行编码的目标比特率来分配相应的比特数目。
24.根据权利要求21至23中任一项所述的音频编码器(300,400,500,600),其中,所述比特分配单元(507,607)被配置成:考虑当前消耗的比特数目以综合分析的方式来分配相应的比特数目。
25.根据权利要求21至24中任一项所述的音频编码器(300,400,500,600),其中
所述比特分配单元(507,607)被配置成:考虑当前消耗的比特数目来分配相应的比特数目,从而产生对于所述K个并行量化与编码单元(508,608)中的每一个的相应的更新的分配的比特数目;以及
所述K个并行量化与编码单元(508,608)中的每一个被配置成:考虑所述相应的更新的分配的比特数目来对所述K个频率系数集合中的相应集合进行量化和熵编码。
26.根据权利要求20至25中任一项所述的音频编码器(600),其中
所述K个并行量化与编码单元(508,608)和所述K个并行变换单元(303)被配置成以流水线架构进行操作。
所述K个并行量化与编码单元(508,608)对与K个帧的组的K个先前帧对应的K个先前频率系数集合进行量化和编码,同时所述K个并行变换单元(303)对所述K个帧的组中的帧进行变换。
27.根据任一前述权利要求所述的音频编码器(300,400,500,600),其中,所述K个并行变换单元(303,403)在至少K个不同的处理单元上实现。
28.根据任一前述权利要求所述的音频编码器(300,400,500,600),其中,所述音频编码器(300,400,500,600)被配置成执行称为AAC的高级音频编码。
29.一种基于帧的音频编码器(300,400,500,600),被配置成:在至少K个不同的处理单元上对音频信号(101)的K个帧(305)并行地进行编码;其中K>1;所述音频编码器(300,400,500,600)包括以下至少之一:
K个并行变换单元(303,403),其中,所述K个并行变换单元(303,403)中的每一个被配置成:将所述K个帧(305)中的相应帧变换为K个频率系数集合中的相应集合;
K个并行信号起奏检测单元(301),其中,每个信号起奏检测单元(301)被配置成:基于所述K个帧(305)中的相应帧中声音起奏的有或无,对所述K个帧(305)中的相应帧进行分类;
K个并行量化与编码单元(508,608);其中,所述K个并行量化与编码单元(508,608)中的每一个被配置成:考虑相应的所分配的比特数目来对所述K个频率系数集合中的相应集合进行量化和熵编码。
30.一种基于帧的音频编码器(300,400,500,600),被配置成:在至少K个不同的处理单元上对音频信号(101)的K个帧(305)并行地进行编码;其中K>1;所述音频编码器(300,400,500,600)包括
变换单元(303,403),被配置成:将所述K个帧变换为K个对应的频率系数集合;
K个并行量化与编码单元(508,608),其中,所述K个并行量化与编码单元(508,608)中的每一个被配置成:考虑相应的所分配的比特数目,对K个频率系数集合中的相应集合进行量化和熵编码;以及
比特分配单元(507,607),被配置成:基于用于对所述音频信号(101)的在所述K个帧(305)之前的帧进行编码的先前消耗的比特数目,向所述K个并行量化与编码单元(508,608)中的每一个分配相应的比特数目。
31.一种基于帧的音频编码器(300,400,500,600),被配置成:在至少K个不同的处理单元上对音频信号(101)的K个帧(305)并行地进行编码;其中K>1;所述音频编码器(300,400,500,600)包括:
K个并行信号起奏检测单元(301),其中,每个信号起奏检测单元(301)被配置成:基于所述K个帧(305)中的相应帧中声音起奏的有或无,对所述K个帧(305)中的所述相应帧进行分类;
帧类型检测单元(304),被配置成:基于帧k的分类并且基于帧k-1的帧类型,确定K个帧(305)中的每个帧k的帧类型,其中k=1,…,K;以及
K个并行变换单元(303,403),其中,所述K个并行变换单元(303,403)中的每一个被配置成:将所述K个帧(305)中的相应帧变换为K个频率系数集合中的相应集合;其中,与帧k对应的频率系数集合k取决于帧k的帧类型。
32.一种用于对包括帧的序列的音频信号(101)进行编码的方法,所述方法包括以下任意一项或更多项:
将所述音频信号(101)的K个帧(305)并行地变换为对应的K个频率系数集合;其中K>1;
基于所述K个帧(305)中的相应帧中声音起奏的有或无,对所述K个帧(305)中的每一个帧并行地进行分类;以及
考虑相应的所分配的比特数目来对所述K个频率系数集合中的每一个并行地进行量化和熵编码。
33.一种用于对包括帧的序列的音频信号(101)进行编码的方法,所述方法包括:
将所述音频信号(101)的K个帧变换为K个对应的频率系数集合;其中K>1;
考虑相应的所分配的比特数目来对所述K个频率系数集合中的每一个并行地进行量化和熵编码;以及
基于用于对所述音频信号(101)的在所述K个帧(305)之前的帧进行编码的先前消耗的比特数目来分配相应的比特数目。
34.一种用于对包括帧的序列的音频信号(101)进行编码的方法,所述方法包括:
基于K个帧(305)中的相应帧中声音起奏的有或无,对所述音频信号(101)的K个帧中的每一帧并行地进行分类;其中K>1;
基于帧k的分类并且基于帧k-1的帧类型来确定K个帧(305)中的每一帧k的帧类型,其中k=1,…,K;以及
将所述K个帧(305)中的每一个帧并行地变换为K个频率系数集合中的相应集合;其中,与帧k对应的频率系数集合k取决于帧k的帧类型。
35.一种软件程序,所述软件程序适合于在处理器上执行并且当在所述处理器上执行时用于执行权利要求32至34中任一项所述的方法步骤。
36.一种包括软件程序的存储介质,所述软件程序适合于在处理器上执行并且当在计算装置上执行时用于执行权利要求32至34中任一项所述的方法步骤。
37.一种包括可执行指令的计算机程序产品,所述可执行指令当在计算机上执行时用于执行权利要求32至34中任一项所述的方法步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161578376P | 2011-12-21 | 2011-12-21 | |
US61/578,376 | 2011-12-21 | ||
PCT/EP2012/075056 WO2013092292A1 (en) | 2011-12-21 | 2012-12-11 | Audio encoder with parallel architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104011794A true CN104011794A (zh) | 2014-08-27 |
CN104011794B CN104011794B (zh) | 2016-06-08 |
Family
ID=47469935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280064054.3A Active CN104011794B (zh) | 2011-12-21 | 2012-12-11 | 具有并行架构的音频编码器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9548061B2 (zh) |
EP (1) | EP2795617B1 (zh) |
JP (1) | JP5864776B2 (zh) |
CN (1) | CN104011794B (zh) |
WO (1) | WO2013092292A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109688990A (zh) * | 2016-09-06 | 2019-04-26 | 新感知公司 | 用于向用户提供附属感觉信息的方法和系统 |
CN111402904A (zh) * | 2018-12-28 | 2020-07-10 | 南京中感微电子有限公司 | 音频数据恢复方法、装置及蓝牙设备 |
US10993872B2 (en) | 2017-04-20 | 2021-05-04 | Neosensory, Inc. | Method and system for providing information to a user |
US11079854B2 (en) | 2020-01-07 | 2021-08-03 | Neosensory, Inc. | Method and system for haptic stimulation |
US11467667B2 (en) | 2019-09-25 | 2022-10-11 | Neosensory, Inc. | System and method for haptic stimulation |
US11497675B2 (en) | 2020-10-23 | 2022-11-15 | Neosensory, Inc. | Method and system for multimodal stimulation |
US11862147B2 (en) | 2021-08-13 | 2024-01-02 | Neosensory, Inc. | Method and system for enhancing the intelligibility of information for a user |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2648632C2 (ru) * | 2014-01-13 | 2018-03-26 | Нокиа Текнолоджиз Ой | Классификатор многоканального звукового сигнала |
US10573324B2 (en) | 2016-02-24 | 2020-02-25 | Dolby International Ab | Method and system for bit reservoir control in case of varying metadata |
US10699538B2 (en) | 2016-07-27 | 2020-06-30 | Neosensory, Inc. | Method and system for determining and providing sensory experiences |
WO2018151770A1 (en) | 2017-02-16 | 2018-08-23 | Neosensory, Inc. | Method and system for transforming language inputs into haptic outputs |
US11227615B2 (en) * | 2017-09-08 | 2022-01-18 | Sony Corporation | Sound processing apparatus and sound processing method |
US11538489B2 (en) | 2019-06-24 | 2022-12-27 | Qualcomm Incorporated | Correlating scene-based audio data for psychoacoustic audio coding |
US11361776B2 (en) * | 2019-06-24 | 2022-06-14 | Qualcomm Incorporated | Coding scaled spatial components |
US12142285B2 (en) | 2019-06-24 | 2024-11-12 | Qualcomm Incorporated | Quantizing spatial components based on bit allocations determined for psychoacoustic audio coding |
US11467668B2 (en) | 2019-10-21 | 2022-10-11 | Neosensory, Inc. | System and method for representing virtual object information with haptic stimulation |
US11995240B2 (en) | 2021-11-16 | 2024-05-28 | Neosensory, Inc. | Method and system for conveying digital texture information to a user |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060247928A1 (en) * | 2005-04-28 | 2006-11-02 | James Stuart Jeremy Cowdery | Method and system for operating audio encoders in parallel |
US7363230B2 (en) * | 2002-08-01 | 2008-04-22 | Yamaha Corporation | Audio data processing apparatus and audio data distributing apparatus |
EP1973372A2 (en) * | 2002-02-13 | 2008-09-24 | NEC Corporation | Location system with enhanced security |
CN101350199A (zh) * | 2008-07-29 | 2009-01-21 | 北京中星微电子有限公司 | 音频编码器及音频编码方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848391A (en) | 1996-07-11 | 1998-12-08 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Method subband of coding and decoding audio signals using variable length windows |
IL160386A (en) | 1999-04-06 | 2005-11-20 | Broadcom Corp | Video encoding and video/audio/data multiplexing device |
JP2001242894A (ja) * | 1999-12-24 | 2001-09-07 | Matsushita Electric Ind Co Ltd | 信号処理装置、信号処理方法及び携帯型機器 |
US6567781B1 (en) | 1999-12-30 | 2003-05-20 | Quikcat.Com, Inc. | Method and apparatus for compressing audio data using a dynamical system having a multi-state dynamical rule set and associated transform basis function |
AU2001238402A1 (en) | 2000-02-18 | 2001-08-27 | Intelligent Pixels, Inc. | Very low-power parallel video processor pixel circuit |
JP4579379B2 (ja) * | 2000-06-29 | 2010-11-10 | パナソニック株式会社 | 制御装置及び制御方法 |
JP3885684B2 (ja) * | 2002-08-01 | 2007-02-21 | ヤマハ株式会社 | オーディオデータのエンコード装置およびエンコード方法 |
JP2004309921A (ja) * | 2003-04-09 | 2004-11-04 | Sony Corp | 符号化装置、符号化方法及びプログラム |
JP5100124B2 (ja) | 2004-10-26 | 2012-12-19 | パナソニック株式会社 | 音声符号化装置および音声符号化方法 |
JP2007212895A (ja) * | 2006-02-10 | 2007-08-23 | Matsushita Electric Ind Co Ltd | オーディオ信号符号化装置、方法、及びプログラム |
US8532984B2 (en) * | 2006-07-31 | 2013-09-10 | Qualcomm Incorporated | Systems, methods, and apparatus for wideband encoding and decoding of active frames |
US8374857B2 (en) * | 2006-08-08 | 2013-02-12 | Stmicroelectronics Asia Pacific Pte, Ltd. | Estimating rate controlling parameters in perceptual audio encoders |
US7676647B2 (en) | 2006-08-18 | 2010-03-09 | Qualcomm Incorporated | System and method of processing data using scalar/vector instructions |
US8515052B2 (en) | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
US9678775B1 (en) | 2008-04-09 | 2017-06-13 | Nvidia Corporation | Allocating memory for local variables of a multi-threaded program for execution in a single-threaded environment |
ES2654432T3 (es) * | 2008-07-11 | 2018-02-13 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Codificador de señal de audio, método para generar una señal de audio y programa informático |
US9342486B2 (en) | 2008-10-03 | 2016-05-17 | Microsoft Technology Licensing, Llc | Fast computation of general fourier transforms on graphics processing units |
KR101797033B1 (ko) * | 2008-12-05 | 2017-11-14 | 삼성전자주식회사 | 부호화 모드를 이용한 음성신호의 부호화/복호화 장치 및 방법 |
US9165394B2 (en) | 2009-10-13 | 2015-10-20 | Nvidia Corporation | Method and system for supporting GPU audio output on graphics processing unit |
-
2012
- 2012-12-11 WO PCT/EP2012/075056 patent/WO2013092292A1/en active Application Filing
- 2012-12-11 US US14/367,447 patent/US9548061B2/en active Active
- 2012-12-11 EP EP12808755.8A patent/EP2795617B1/en active Active
- 2012-12-11 CN CN201280064054.3A patent/CN104011794B/zh active Active
- 2012-12-11 JP JP2014547840A patent/JP5864776B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1973372A2 (en) * | 2002-02-13 | 2008-09-24 | NEC Corporation | Location system with enhanced security |
US7363230B2 (en) * | 2002-08-01 | 2008-04-22 | Yamaha Corporation | Audio data processing apparatus and audio data distributing apparatus |
US20060247928A1 (en) * | 2005-04-28 | 2006-11-02 | James Stuart Jeremy Cowdery | Method and system for operating audio encoders in parallel |
CN101350199A (zh) * | 2008-07-29 | 2009-01-21 | 北京中星微电子有限公司 | 音频编码器及音频编码方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11644900B2 (en) | 2016-09-06 | 2023-05-09 | Neosensory, Inc. | Method and system for providing adjunct sensory information to a user |
US11079851B2 (en) | 2016-09-06 | 2021-08-03 | Neosensory, Inc. | Method and system for providing adjunct sensory information to a user |
CN109688990A (zh) * | 2016-09-06 | 2019-04-26 | 新感知公司 | 用于向用户提供附属感觉信息的方法和系统 |
US10993872B2 (en) | 2017-04-20 | 2021-05-04 | Neosensory, Inc. | Method and system for providing information to a user |
US11207236B2 (en) | 2017-04-20 | 2021-12-28 | Neosensory, Inc. | Method and system for providing information to a user |
US11660246B2 (en) | 2017-04-20 | 2023-05-30 | Neosensory, Inc. | Method and system for providing information to a user |
CN111402904A (zh) * | 2018-12-28 | 2020-07-10 | 南京中感微电子有限公司 | 音频数据恢复方法、装置及蓝牙设备 |
CN111402904B (zh) * | 2018-12-28 | 2023-12-01 | 南京中感微电子有限公司 | 音频数据恢复方法、装置及蓝牙设备 |
US11467667B2 (en) | 2019-09-25 | 2022-10-11 | Neosensory, Inc. | System and method for haptic stimulation |
US11614802B2 (en) | 2020-01-07 | 2023-03-28 | Neosensory, Inc. | Method and system for haptic stimulation |
US11079854B2 (en) | 2020-01-07 | 2021-08-03 | Neosensory, Inc. | Method and system for haptic stimulation |
US11497675B2 (en) | 2020-10-23 | 2022-11-15 | Neosensory, Inc. | Method and system for multimodal stimulation |
US11877975B2 (en) | 2020-10-23 | 2024-01-23 | Neosensory, Inc. | Method and system for multimodal stimulation |
US11862147B2 (en) | 2021-08-13 | 2024-01-02 | Neosensory, Inc. | Method and system for enhancing the intelligibility of information for a user |
Also Published As
Publication number | Publication date |
---|---|
JP2015505070A (ja) | 2015-02-16 |
WO2013092292A1 (en) | 2013-06-27 |
US20150025895A1 (en) | 2015-01-22 |
EP2795617B1 (en) | 2016-08-10 |
EP2795617A1 (en) | 2014-10-29 |
JP5864776B2 (ja) | 2016-02-17 |
US9548061B2 (en) | 2017-01-17 |
CN104011794B (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104011794B (zh) | 具有并行架构的音频编码器 | |
US10841584B2 (en) | Method and apparatus for pyramid vector quantization de-indexing of audio/video sample vectors | |
CN101189662B (zh) | 带多级码本和冗余编码的子带话音编解码器 | |
CN103065637B (zh) | 音频编码器和解码器 | |
CN101512639A (zh) | 用于语音/音频发送器和接收器的方法和设备 | |
CN102968998A (zh) | 使用mdct频谱的组合编码的可缩放的语音和音频编码 | |
CN101849258A (zh) | 在可缩放语音和音频编解码器中的用于经量化的mdct频谱的码簿索引的编码/解码的技术 | |
RU2016122865A (ru) | Кодер для кодирования аудиосигнала, система передачи аудио и способ определения значений коррекции | |
JP6979048B2 (ja) | 低複雑度の調性適応音声信号量子化 | |
US11335355B2 (en) | Estimating noise of an audio signal in the log2-domain | |
CN107533847A (zh) | 音频编码器、音频解码器、用于编码音频信号的方法及用于解码经编码的音频信号的方法 | |
CN111816197A (zh) | 音频编码方法、装置、电子设备和存储介质 | |
JP2019032551A (ja) | 符号化方法、符号化装置、プログラム、および記録媒体 | |
US8825494B2 (en) | Computation apparatus and method, quantization apparatus and method, audio encoding apparatus and method, and program | |
US10699721B2 (en) | Encoding and decoding of digital audio signals using difference data | |
CN101685436B (zh) | 音频信号处理装置与方法 | |
KR20200012862A (ko) | 디지털 오디오 신호들에서의 가변 알파벳 크기 | |
CN101377926B (zh) | 加速量化循环程序功能的音频编码方法 | |
RU2782182C1 (ru) | Аудиокодер с зависимым от сигнала управлением точностью и числом, аудиодекодер и связанные способы и компьютерные программы | |
US20250006210A1 (en) | Method of encoding/decoding speech signal and device for performing the same | |
US20230298603A1 (en) | Method for encoding and decoding audio signal using normalizing flow, and training method thereof | |
JP4563881B2 (ja) | オーディオ符号化装置及びプログラム | |
Wu et al. | MPEG-2/4 low-complexity advanced audio coding optimization and implementation on DSP |
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 |