国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      具有并行架構(gòu)的音頻編碼器的制造方法

      文檔序號:2825857閱讀:201來源:國知局
      具有并行架構(gòu)的音頻編碼器的制造方法
      【專利摘要】本文獻(xiàn)涉及用于音頻編碼的方法及系統(tǒng)。具體地,本文獻(xiàn)涉及利用并行系統(tǒng)架構(gòu)進(jìn)行快速音頻編碼的方法及系統(tǒng)。描述了包括K個并行變換單元(303,403)的基于幀的音頻編碼器(300,400,500,600);其中,K個并行變換單元(303,403)中的每一個被配置成:將音頻信號(101)的K個幀(305)的組中的相應(yīng)幀轉(zhuǎn)換為K個頻率系數(shù)集合中的相應(yīng)集合;其中K>1;其中,K個幀(305)中的每一個包括音頻信號(101)的多個樣本。
      【專利說明】具有并行架構(gòu)的音頻編碼器
      [0001]相關(guān)申請的交叉引用
      [0002]本申請要求于2011年11月30日提交的美國臨時專利申請第61/565,037號的優(yōu)先權(quán),在此通過引用將其全部內(nèi)容合并到本申請中。
      【技術(shù)領(lǐng)域】
      [0003]本文獻(xiàn)涉及用于音頻編碼的方法及系統(tǒng)。具體地,本文獻(xiàn)涉及使用并行編碼器架構(gòu)的快速音頻編碼的方法及系統(tǒng)。
      【背景技術(shù)】
      [0004]當(dāng)今的媒體播放器支持各種不同的音頻格式比如mp3、mp4、WMA(Windows媒體音頻)、AAC (高級音頻編碼)>HE-AAC (高效率的AAC)等。另一方面,媒體數(shù)據(jù)庫(比如Simfy)提供數(shù)以百萬計的音頻文件以供下載。通常,以各種不同的音頻格式以及可以由不同媒體播放器支持的各種不同比特率對這些數(shù)以百萬計的音頻文件進(jìn)行編碼以及存儲是不經(jīng)濟(jì)的。如此,提供如下快速音頻編碼方案是有利的:該方案使得音頻文件的編碼能夠“實時(on the fly) ”,從而使得媒體數(shù)據(jù)庫當(dāng)被請求時能夠產(chǎn)生特定編碼的音頻文件(以特定的音頻格式,以特定的比特率)。

      【發(fā)明內(nèi)容】

      [0005]根據(jù)一個方面,描述了一種基于幀的音頻編碼器。該音頻編碼器可以被配置成:將包括多個時域樣本的音頻信號劃分成幀的序列,其中,每個幀通常包括預(yù)定數(shù)目的樣本。作為示例,幀可以包括固定數(shù)目M個樣本(例如M= 1024)。在一種實施方式中,音頻編碼器被配置成進(jìn)行高級音頻編碼(AAC)。
      [0006]音頻編碼器可以包括對音頻信號的K個幀(例如音頻信號的K個連續(xù)的幀)并行地進(jìn)行處理的K個并行變換單元。K個并行變換單元可以在K個不同的處理單元(例如圖形處理單元)上實現(xiàn),從而(與對K個幀的順序處理相比)將變換處理加速了因子K。變換單元可以被配置成將幀變換為頻率系數(shù)集合。換言之,變換單元可以執(zhí)行時域到頻域的變換,比如修正離散余弦變換(MDCT)。同樣地,K個并行變換單元中的每一個可以被配置成:將音頻信號的K個幀的組(也稱為幀組)的相應(yīng)幀變換為K個頻率系數(shù)集合中的相應(yīng)集合。K 可以大于 1、2、3、4、5、10、20、50、100。
      [0007]如上面所表明的,K個并行變換單元可以被配置成向幀組中的K個幀分別應(yīng)用MDCT。此外,K個并行變換單元可以被配置成向幀組中的K個幀分別應(yīng)用窗函數(shù)。應(yīng)當(dāng)注意,應(yīng)用于幀的變換的類型和/或窗的類型通常取決于幀的類型(即,本文中也稱為塊類型的幀類型)。同樣地,K個并行變換單元可以被配置成將K個幀分別變換為K個取決于幀類型的頻率系數(shù)集合。
      [0008]音頻編碼器可以包括K個并行信號起奏(attack)檢測單元。信號起奏檢測單元可以被配置成:將音頻信號的幀分類為包括聲音起奏的幀(例如瞬態(tài)幀)或分類為不包括聲音起奏的幀(例如調(diào)性(tonal)幀)。同樣地,K個并行信號起奏檢測單元可以被配置成:基于K個幀中的相應(yīng)幀中聲音起奏的有或無分別對幀組的K個幀進(jìn)行分類。K個并行信號起奏檢測單元可以在至少K個不同的處理單元上實現(xiàn)。具體地,K個并行信號起奏檢測單元可以與K個并行變換單元在相同的相應(yīng)的處理單元上實現(xiàn)。
      [0009]音頻編碼器還可以包括幀類型檢測單元,其被配置成基于對K個幀的分類來確定K個幀中的每一個幀的幀類型。幀類型的示例有短塊類型(其通常用于包括瞬態(tài)音頻信號的幀)、長塊類型(其通常用于包括調(diào)性音頻信號的幀)、開始塊類型(其通常用作從長塊類型到短塊類型的過渡幀)和/或停止類型(其通常用作從短塊類型到長塊類型的過渡幀)。如此,幀的幀類型可以取決于一個或更多個先前幀的幀類型。因此,幀類型檢測單元可以被配置成:還基于先前幀k-ι的幀類型來確定K個幀中的幀k的幀類型,其中k =1,...,K。
      [0010]作為示例,幀類型檢測單元可以被配置成:如果幀k被分類為包括起奏并且如果其先前幀k-Ι是短塊類型或是開始塊類型,則確定幀k(k = I,…,K)是短塊類型。幀類型檢測單元可以被配置成:如果幀k被分類為不包括起奏并且如果其先前幀k-Ι是長塊類型或是停止塊類型,則確定幀k(k = I,…,K)是長塊類型。幀類型檢測單元可以被配置成:如果幀k被分類為包括起奏并且如果其先前幀k-ι是長塊類型,則確定幀k(k= 1,...,!()是開始塊類型。此外,幀類型檢測單元可以被配置成:如果幀k被分類為不包括起奏并且如果其先前幀k-Ι是短塊類型,則確定幀k(k = I,…,K)是停止塊類型。
      [0011]K個并行變換單元可以與K個并行信號起奏檢測單元以及幀類型檢測單元并行操作。如此,K個并行變換單元可以在與K個并行信號起奏檢測單元不同的處理單元上實現(xiàn),從而使得能夠在至少2K個處理單元上對編碼器進(jìn)行進(jìn)一步的并行化。在這樣的情況下,變換單元可以被配置成執(zhí)行取決于幀類型的窗口化和/或變換處理的推測執(zhí)行。具體地,變換單元可以被配置成為幀組中的相應(yīng)幀確定多個取決于幀類型的頻率系數(shù)集合。更具體地,變換單元可以被配置成針對幀的每一種可能的幀類型確定取決于幀類型的頻率系數(shù)集合。音頻編碼器則可以包括選擇單元,其被配置成:從多個取決于幀類型的頻率系數(shù)集合中(針對K個幀中的每一個幀)選擇合適的頻率系數(shù)集合,其中,合適的頻率系數(shù)集合與相應(yīng)幀的幀類型對應(yīng)。
      [0012]可替代地,K個并行信號起奏檢測單元可以與幀類型檢測單元順序地操作并且與K個并行變換單元順序地操作。如此,K個并行信號起奏檢測單元可以在與K個并行變換單元相同的相應(yīng)的處理單元上實現(xiàn)。在該情況下,K個并行變換單元可以知道相應(yīng)幀的幀類型,以使得K個并行變換單元可以被配置成:將K個幀變換為與相應(yīng)幀的幀類型對應(yīng)的取決于幀類型的相應(yīng)頻率系數(shù)集合。
      [0013] 音頻編碼器可以包括K個并行量化與編碼單元。K個并行量化與編碼單元可以在至少K個不同的處理單元(例如K個并行變換單元的相應(yīng)的處理單元)上實現(xiàn)。量化與編碼單元可以被配置成:考慮相應(yīng)的所分配的比特數(shù)目來分別對頻率系數(shù)集合進(jìn)行量化和熵編碼(例如霍夫曼編碼)。換言之,幀組的K個幀的量化和編碼可以由K個并行的量化與編碼單元獨(dú)立執(zhí)行。為此,向K個并行量化與編碼單元提供相應(yīng)的所分配的比特數(shù)目的K個指示。如下面將要概述的,可以針對幀組在聯(lián)合比特分配處理中聯(lián)合確定相應(yīng)的所分配的比特數(shù)目的指示。[0014]音頻編碼器還可以包括K個并行心理聲學(xué)單元。K個并行心理聲學(xué)單元可以在至少K個不同的處理單元上實現(xiàn)。通常,K個并行心理聲學(xué)單元可以在與K個并行變換單元相同的相應(yīng)的處理單元上實現(xiàn),因為K個并行心理聲學(xué)單元通常還對由K個并行變換單元提供的相應(yīng)的K個頻率系數(shù)集合進(jìn)行處理。K個并行心理聲學(xué)單元可以被配置成:基于K個頻率系數(shù)集合來分別確定一個或更多個取決于幀(并且通常取決于頻率)的掩蔽閾值。可替代地或另外地,K個并行心理聲學(xué)單元可以被配置成針對幀組的對應(yīng)的K個幀確定K個感知熵值。一般而言,感知熵值提供了對對應(yīng)的幀的信息內(nèi)容的指示。通常,感知熵值與應(yīng)該用于對對應(yīng)的幀進(jìn)行編碼的比特數(shù)目的估計對應(yīng)。具體地,給定幀的感知熵值可以表明:在分配給量化幀的噪聲正好在一個或更多個掩蔽閾值以下這個假設(shè)下,對給定幀進(jìn)行量化和編碼需要多少比特。
      [0015]K個并行量化與編碼單元可以被配置成:考慮到相應(yīng)的一個或更多個取決于幀的掩蔽閾值,分別對K個頻率系數(shù)集合進(jìn)行量化和熵編碼。如此,可以確保頻率系數(shù)集合的量化是考慮心理聲學(xué)而進(jìn)行的,因此減小了聽得見的量化噪聲。
      [0016]音頻編碼器可以包括比特分配單元,其被配置成:分別向K個并行量化與編碼單元分配相應(yīng)的比特數(shù)目。為此,比特分配單元可以考慮幀組的可用總比特數(shù)目并且向幀組中的相應(yīng)幀分配可用的總比特數(shù)目。比特分配單元可以被配置成考慮幀組中的相應(yīng)幀的幀類型來分配相應(yīng)的比特數(shù)目。此外,為了改善對幀組中的幀的比特分配,比特分配單元可以考慮幀組中的所有幀的一些的幀類型??商娲鼗蛄硗獾?,為了向K個幀分配相應(yīng)的比特數(shù)目,比特分配單元可以考慮由K個并行心理聲學(xué)單元確定的幀組中的K個幀的K個感知熵值。具體地,比特分配單元可以被配置成:取決于幀組的可用總比特數(shù)目來對K個感知熵值進(jìn)行縮放或修改,從而使比特分配適合于幀組的K個幀的感知熵。
      [0017]音頻編碼器還可以包括比特儲存器跟蹤單元,其被配置成:對用于對音頻信號的在K個幀之前的幀進(jìn)行編碼的先前消耗的比特數(shù)目進(jìn)行跟蹤。通常,向音頻編碼器提供編碼音頻信號的目標(biāo)比特率。如此,比特儲存器跟蹤單元可以被配置成:對與目標(biāo)比特數(shù)目相關(guān)的先前消耗的比特數(shù)目進(jìn)行跟蹤。此外,比特儲存器跟蹤單元可以被配置成:用被K個并行量化與編碼單元用于對K個頻率系數(shù)集合進(jìn)行編碼的比特數(shù)目來更新先前消耗的比特數(shù)目,從而產(chǎn)生當(dāng)前消耗的比特數(shù)目。當(dāng)前消耗的比特數(shù)目然后可以成為后續(xù)K個幀的后續(xù)幀組的比特分配處理的基礎(chǔ)。
      [0018]比特分配單元可以被配置成:考慮先前消耗的比特數(shù)目(由比特儲存器跟蹤單元提供)來分配相應(yīng)的比特數(shù)目(即,用于對幀組中的K個幀進(jìn)行編碼而分配的相應(yīng)比特數(shù)目)。此外,比特分配單元可以被配置成:考慮用于對音頻信號進(jìn)行編碼的目標(biāo)比特率來分配相應(yīng)比特數(shù)目。
      [0019]同樣地,比特分配單元可以被配置成:以分組式的方式(與逐幀方式相反)向幀組中的幀分配相應(yīng)的比特。為了進(jìn)一步改善比特的分配,比特分配單元可以被配置成:通過考慮當(dāng)前所消耗的比特數(shù)目,以綜合分析的方式來向K個量化和編碼單元分配相應(yīng)的比特數(shù)目。換言之,對于幀組,可以執(zhí)行比特分配以及量化和編碼的若干次迭代,其中在后續(xù)的迭代中,比特分配單元可以考慮由K個量化和編碼單元所用的當(dāng)前所消耗的比特數(shù)目。
      [0020]同樣地,比特分配單元可以被配置成:考慮到當(dāng)前所消耗的比特數(shù)目來分配相應(yīng)的比特數(shù)目,因此分別為K個并行量化與編碼單元產(chǎn)生相應(yīng)的更新的分配的比特數(shù)目。K個并行量化與編碼單元可以被配置為考慮相應(yīng)的更新的分配的比特數(shù)目,來對相應(yīng)的K個頻率系數(shù)集合進(jìn)行量化和熵編碼。為了改善幀組的幀之間的比特分配,該迭代的比特分配處理可以以預(yù)定的迭代次數(shù)重復(fù)。
      [0021]K個并行量化與編碼單元以及K個并行變換單元可以被配置成以流水線架構(gòu)操作。這意味著K個并行變換單元可以被配置成:當(dāng)K個并行量化與編碼單元對當(dāng)前幀組的頻率系數(shù)集合進(jìn)行編碼時,對包括K個后續(xù)幀的后續(xù)幀組進(jìn)行處理。換言之,當(dāng)K個并行變換單元對K個幀的組的幀進(jìn)行變換時,K個并行量化與編碼單元可以對與K個幀的組的K個先前幀對應(yīng)的K個先前頻率系數(shù)集合進(jìn)行量化和編碼。
      [0022]根據(jù)另外的方面,描述了一種基于幀的音頻編碼器,其被配置成:在至少K個不同的處理單元上并行地對音頻信號的K個幀(即幀組)進(jìn)行編碼。與本文獻(xiàn)中所述的音頻編碼器相關(guān)的任何特征都是可應(yīng)用的。音頻編碼器可以包括以下至少之一:K個并行變換單元,其中,K個并行變換單元被配置成將K個幀分別變換為K個頻率系數(shù)集合;κ個并行信號起奏檢測單元,其中,信號起奏檢測單元被配置成:基于K個幀的相應(yīng)幀中聲音起奏的有或無,分別對K個幀進(jìn)行分類;和/或K個并行量化與編碼單元,其中,K個并行量化與編碼單元被配置成分別對K個頻率系數(shù)集合進(jìn)行量化和熵編碼。
      [0023]根據(jù)另外的方面,描述了一種基于幀的音頻編碼器,其被配置成:在至少K個的不同處理單元上并行地對音頻信號的K個幀(即幀組)進(jìn)行編碼。與本文獻(xiàn)中所述的音頻編碼器相關(guān)的任何特征都是可應(yīng)用的。音頻編碼器包括變換單元,其被配置成分別將K個幀變換為K個對應(yīng)的頻率系數(shù)集合。此外,音頻編碼器包括K個并行量化與編碼單元,其中,K個并行量化與編碼單元被配置成:考慮相應(yīng)的分配的比特數(shù)目,分別對K個頻率系數(shù)集合進(jìn)行量化和熵編碼。此外,音頻編碼器包括比特分配單元,其被配置成:基于用于對在K個幀之前的音頻信號的幀進(jìn)行編碼的先前消耗的比特數(shù)目,來分別向K個并行量化與編碼單元分配相應(yīng)的比特數(shù)目。
      [0024]根據(jù)另一個方面,描述了一種基于幀的音頻編碼器,其被配置成:在至少K個不同的處理單元上并行地對音頻信號的K個幀進(jìn)行編碼。與本文獻(xiàn)中所述的音頻編碼器相關(guān)的任何特征都是可應(yīng)用的。音頻編碼器包括K個并行信號起奏檢測單元,其中,信號起奏檢測單元被配置成分別基于相應(yīng)幀中聲音起奏的有或無對K個幀進(jìn)行分類。此外,音頻編碼器包括幀類型檢測單元,其被配置成:基于幀k的分類并且基于先前幀k-Ι的幀類型確定幀組的幀k的幀類型,其中k= I, -,K0此外,音頻編碼器包括K個并行變換單元,其中K個并行變換單元被配置成分別將K個幀變換為K個頻率系數(shù)集合。通常,與幀對應(yīng)的頻率系數(shù)的集合取決于于該幀的幀類型。換言之,變換單元被配置成執(zhí)行取決于幀類型的變換。
      [0025]根據(jù)另外的方面,描述了一種用于對包括幀的序列的音頻信號進(jìn)行編碼的方法。此方法可以包括以下中的任意一項或更多項:將音頻信號的K個幀并行地變換為對應(yīng)的K個頻率系數(shù)集合;基于K個幀的相應(yīng)幀中聲音起奏的有或無,對K個幀的每一幀并行地進(jìn)行分類;以及考慮到相應(yīng)的分配的比特數(shù)目,對K個頻率系數(shù)集合的每一個并行地進(jìn)行量化和熵編碼。
      [0026]根據(jù)另一個方面,描述了一種用于對包括幀的序列的音頻信號進(jìn)行編碼的方法。該方法可以包括:將音頻信號的K個幀并行地變換為K個對應(yīng)的頻率系數(shù)集合;考慮相應(yīng)的分配的比特數(shù)目,對K個頻率系數(shù)集合的每一個并行地進(jìn)行量化和熵編碼;以及基于用于對在K個幀之前的音頻信號的幀進(jìn)行編碼的先前消耗的比特數(shù)目來分配相應(yīng)的比特數(shù)目。
      [0027]根據(jù)另外的方面,描述了一種用于對包括幀的序列的音頻信號進(jìn)行編碼的方法。該方法可以包括:基于K個幀的相應(yīng)幀中聲音起奏的有或無,對音頻信號的K個幀的每一幀并行地進(jìn)行分類;基于幀k的分類并且基于幀k-Ι的幀類型確定K個幀的每一個幀k的幀類型,其中k = 1,...,!(;以及將K個幀的每一個幀并行地變換為K個頻率系數(shù)集合的相應(yīng)集合;其中,與幀k對應(yīng)的頻率系數(shù)的集合k取決于于幀k的幀類型。
      [0028]根據(jù)另外的方面,描述了一種軟件程序。該軟件程序可以適合于在處理器上執(zhí)行并且當(dāng)在計算裝置上執(zhí)行時用于執(zhí)行在本文獻(xiàn)中所概述的方法步驟。
      [0029]根據(jù)另一個方面,描述了一種存儲介質(zhì)。該存儲介質(zhì)可以包括軟件程序,該軟件程序適合于在處理器上執(zhí)行并且當(dāng)在計算裝置上執(zhí)行時用于執(zhí)行本文獻(xiàn)所概述的方法步驟。
      [0030]根據(jù)另外的方面,描述了一種計算機(jī)程序產(chǎn)品。計算機(jī)程序可以包括當(dāng)在計算機(jī)上執(zhí)行時用于執(zhí)行本文獻(xiàn)中所概述的方法步驟的可執(zhí)行指令。
      [0031]應(yīng)當(dāng)注意,包括如在本文獻(xiàn)中所概述的作為其優(yōu)選實施方式的方法及系統(tǒng)可以單獨(dú)使用或者與本文獻(xiàn)中公開的其他方法及系統(tǒng)結(jié)合使用。此外,本文獻(xiàn)中所概述的方法及系統(tǒng)的所有方面可以被任意組合。具體地,權(quán)利要求的特征可以以任意方式彼此進(jìn)行組合。
      【專利附圖】

      【附圖說明】
      [0032]下面參照附圖以示例性方式對本發(fā)明進(jìn)行說明,其中
      [0033]圖1a示出了示例音頻編碼器的框圖;
      [0034]圖1b不出了首頻編碼器所應(yīng)用的基于幀的不例時頻變換;
      [0035]圖2示出了示例音頻編碼器的摘要的框圖;
      [0036]圖3示出了圖2所示的編碼器摘要的示例并行架構(gòu)的框圖;
      [0037]圖4示出了圖2所示的編碼器摘要的另一個示例并行架構(gòu)的框圖;
      [0038]圖5示出了包括各種并行化編碼器處理的示例音頻編碼器的框圖;
      [0039]圖6示出了音頻編碼器的示例流水線架構(gòu)的框圖;以及
      [0040]圖7示出了迭代比特分配處理的示例流程圖。
      【具體實施方式】
      [0041]圖1a示出了示例音頻編碼器100。具體地,圖1a示出了示例高級音頻編碼(AAC)編碼器100。在基于頻帶復(fù)制(SBR)的編碼方案比如高效(HE)AAC的環(huán)境下,音頻編碼器100可以用作核心編碼器。可替代地,音頻編碼器100也可以單獨(dú)使用。AAC編碼器100通常將音頻信號101分解成稱為幀的分段的序列。稱為窗的時域處理通過修改這些幀中的數(shù)據(jù)提供幀間的平滑過渡。AAC編碼器100可以使對音頻信號的幀的編碼適應(yīng)于包括在幀(例如音頻信號的調(diào)性部分或瞬態(tài)部分)中的時域信號的特性。為此,AAC編碼器100適用于在對作為M = 1028個樣本 的長塊的整個幀的編碼與對作為M = 128個樣本的短塊的序列的幀的編碼之間動態(tài)地切換。同樣地,AAC編碼器100可以在以相對高的頻率分辨率(使用長塊)編碼與以相對高的時間分辨率(使用短塊的序列)編碼之間切換。同樣地,AAC編碼器100適用于對在調(diào)性(穩(wěn)態(tài)、和聲豐富的復(fù)雜譜信號)(使用長塊)與沖擊(瞬態(tài)信號)(使用八個短塊的序列)之間波動的音頻信號進(jìn)行編碼。
      [0042]使用修正離散余弦變換(MDCT)將樣本的每個幀轉(zhuǎn)換至頻域。為了避免頻譜泄露的問題,該問題通常發(fā)生在基于塊(也稱為基于幀)的時頻變換的情況下,MDCT利用了重疊窗口,即MDCT是所謂的重疊變換的示例。這在圖1b中被示出,其示出了包括巾貞171的序列的音頻信號101。在示出的示例中,每個幀171包括音頻信號101的M個樣本。如序列172所示,替代將變換應(yīng)用于僅單個幀,重疊MDCT以重疊的方式對兩個相鄰幀進(jìn)行變換。為了對連續(xù)幀之間的過渡進(jìn)行進(jìn)一步的平滑,另外地應(yīng)用了長度為2M的窗函數(shù)w[k]。因此,獲得了大小為M的頻率系數(shù)集合的序列。在對應(yīng)的AAC解碼器處,逆MDCT被應(yīng)用于頻率系數(shù)集合的序列,從而產(chǎn)生了長度為2M的時域樣本集合的序列。使用如圖1b所示的重疊與相加操作173,獲得長度為M的解碼樣本的幀174。
      [0043]圖1a示出了示例AAC編碼器100的另外的細(xì)節(jié)。編碼器100包括將MDCT變換應(yīng)用于音頻信號101的樣本的幀的濾波器組151。如上面所概述的,MDCT變換是一種重疊變換并且通常對音頻信號101的兩個幀的樣本進(jìn)行處理以提供頻率系數(shù)集合。頻率系數(shù)集合被提交給量化與熵編碼單元152。量化與編碼單元152確保實現(xiàn)目標(biāo)比特率與量化噪聲之間的最佳權(quán)衡。AAC編碼器100的另外的組件是感知模型153,其(除此之外)用于確定在量化和編碼期間應(yīng)用的取決于信號的掩蔽閾值。此外,AAC編碼器100可以包括將全局調(diào)節(jié)增益應(yīng)用于音頻信號101的每個幀的增益控制單元154。通過這樣做,可以增大AAC編碼器100的動態(tài)范圍。此外,可以應(yīng)用時域噪聲整形(TNS) 155、后向預(yù)測156以及聯(lián)合立體聲編碼157(例如中間/側(cè)邊信號編碼)。
      [0044]在本文獻(xiàn)中,描述了用于對圖1中示出的音頻編碼方案進(jìn)行加速的各種措施。應(yīng)當(dāng)注意,雖然在AAC編碼的情況下描述了這些措施,但是這些措施一般能適用于音頻編碼器。具體地,這些措施一般能適用于基于塊(或基于幀)的音頻編碼器。
      [0045]圖2示出了 AAC編碼器100的摘要200的示例框圖。圖解200與圖1a所示的濾波器組模塊151相關(guān)。如上面所概述的,為了使編碼適應(yīng)于音頻信號101的特定特性(調(diào)性對瞬態(tài)),AAC編碼器100將音頻信號101的幀分類為所謂的長塊及短塊。為此,AAC編碼器100對音頻信號101的每個幀(包括M = 1024個樣本)進(jìn)行分析并且關(guān)于幀的合適的塊類型做出決定。這在塊類型決定單元201中執(zhí)行。應(yīng)當(dāng)注意,除了長塊以及短塊的序列(N = 8),AAC還提供了另外的塊類型:“開始塊”(作為長塊與短塊序列之間的過渡塊)以及“停止塊”(作為短塊序列與長塊之間的過渡塊)。
      [0046]在決定塊類型后,將合適的窗應(yīng)用于音頻信號101的幀(窗單元202)。如上面所概述的,MDCT變換是重疊變換,即窗被應(yīng)用于音頻信號101的當(dāng)前幀k并且被應(yīng)用于先前幀k-Ι (即,應(yīng)用于總共2M = 2048個樣本)。窗單元202通常應(yīng)用適合于在塊類型決定單元201中確定的塊類型的窗類型。這意味著窗的形狀取決于幀k的實際類型。在將窗應(yīng)用于一組相鄰幀之后,為了產(chǎn)生與音頻信號101的幀對應(yīng)的頻率系數(shù)集合,將合適的MDCT變換應(yīng)用于相鄰幀的窗口化組。作為示例,如果當(dāng)前幀k的塊類型是“短塊”,則使用八次連續(xù)的MDCT變換203將當(dāng)前幀k的窗口化樣本的八個短塊的序列轉(zhuǎn)換成八個頻率系數(shù)集合。另一方面,如果當(dāng)前幀k的塊類型是“長塊”,則利用單次MDCT變換將當(dāng)前幀k的窗口化樣本轉(zhuǎn)換成單個的頻率系數(shù)集合。
      [0047]針對音頻信號101的所有幀重復(fù)上面的處理,從而產(chǎn)生以順序方式進(jìn)行量化和編碼的頻率系數(shù)集合的序列。因為是順序編碼方案,所以整體編碼速度受到用于對音頻信號101進(jìn)行編碼的處理單元的處理能力的限制。
      [0048]在本文獻(xiàn)中提出了打破在圖1a和圖2的情況下描述的傳統(tǒng)音頻編碼器100、200的依賴鏈,以加快整體編碼速度。具體地,提出了至少將與在圖2的情況下描述的編碼任務(wù)相關(guān)的變換并行化。圖3中示出了與順序架構(gòu)200對應(yīng)的并行化架構(gòu)300的示例。在并行化架構(gòu)300中,收集音頻信號101的多個幀305。作為示例,收集音頻信號101的K = 10個幀。為了確定幀k(k= I, -,K)是包括調(diào)性內(nèi)容還是包括瞬態(tài)內(nèi)容,針對多個K個幀30中的每一個進(jìn)行信號起奏檢測(由信號起奏檢測單元301進(jìn)行)?;趯Χ鄠€K個幀305的每一個的該分類,起奏-塊類型單元304可以確定多個K個幀305的每一個的相應(yīng)的塊類型。具體地,起奏-塊類型單元304可以確定來自多個K個幀305的特定幀k是應(yīng)該編碼為短塊的序列、長塊、開始塊還是停止塊。
      [0049]確定了相應(yīng)的塊類型以后,窗與變換單元303可以將合適的窗與合適的MDCT變換應(yīng)用于多個K個幀305的每一個。對于K個幀305這可以并行完成。鑒于相鄰幀之間的重疊,可以將相鄰幀的組饋送給K個并行窗口化和變換處理。例如,K個并行窗口化和變換處理可以用索引k= 1,...,!(來標(biāo)識。第k個處理對多個K個幀的第k幀進(jìn)行處理。由于窗口化與變換通常重疊,另外可以將第k幀的一個或更多個先前幀(例如第k-Ι幀)提供給第k個處理。同樣地,K個處理可以并行進(jìn)行,從而為音頻信號101的K個幀305提供K個頻率系數(shù)集合。
      [0050]與圖2所示的順序架構(gòu)200相比,并行架構(gòu)300可以在K個并行處理單元上實現(xiàn),因此,與圖2所描述的順序處理相比,整體處理速度加快了因子K。
      [0051]可替代地或另外地,可以通過打破對音頻信號101的幀的塊類型決定與窗口化/變換之間的依賴鏈來并行化圖2的架構(gòu)200??梢酝ㄟ^試驗性地進(jìn)行隨后可能被丟棄的計算來打破依賴鏈。這樣的對計算的推測性執(zhí)行的益處在于:由于推測性執(zhí)行,大量相同的處理任務(wù)可以被并行執(zhí)行。由并行執(zhí)行提供的提升了的速度通常在權(quán)重上超過因丟棄部分計算結(jié)果而導(dǎo)致的效率低下。
      [0052]如在圖2和圖3的情況下所概述的,AAC編碼器100首先決定塊類型,然后才進(jìn)行窗口化和變換處理。這導(dǎo)致了依賴性:只有當(dāng)執(zhí)行塊類型決定時才能夠進(jìn)行窗口化和變換。然而,當(dāng)允許如由圖4中編碼方案400示出的推測性執(zhí)行時,可以在音頻信號101的每個(重疊)幀I上利用AAC中可用的4種不同的窗類型并行執(zhí)行四種不同變換。在窗和變換單元403中并行確定每個幀I的四個頻率系數(shù)集合。因此,針對音頻信號101的每個幀I獲得四個頻率系數(shù)集合(針對長塊類型的集合、針對短塊類型的集合、針對開始塊類型的集合以及針對停止塊類型的集合)。塊類型決定301可以獨(dú)立于(例如并行于)幀k的窗口化和變換而執(zhí)行。根據(jù)在并行塊類型決定301中所確定的幀I的塊類型,可以利用選擇單元406為幀I選擇合適的頻率系數(shù)集合。由窗和變換單元403提供的其他三個頻率系數(shù)集合可以被丟棄。
      [0053]作為這樣的推測性執(zhí)行的結(jié)果,音頻信號的L個幀可以被提交給并行使用不同處理單元的窗口化與變換處理403。每個處理單元(例如第I個處理單元,I = I,…,L)針對處理單元所處理的第I幀確定四個頻率系數(shù)集合,即與當(dāng)塊類型已知時所執(zhí)行的窗口化與變換301相比,每個處理單元執(zhí)行大約四倍多的處理步驟。盡管如此,通過圖4所示的并行化架構(gòu)400,整體編碼速度可以提高因子L/4。L可以在幾百的范圍內(nèi)進(jìn)行選擇。這就使提出的方法適合應(yīng)用于具有大量并行處理器的處理器場。
      [0054]并行架構(gòu)400與并行架構(gòu)300可以兩者擇一地使用或結(jié)合使用。然而,應(yīng)當(dāng)注意,作為并行化的結(jié)果,編碼延遲通常會增加。另一方面,編碼速度可以顯著提高,因此使并行化架構(gòu)在可以通過編碼處理的大規(guī)模并行化實現(xiàn)快速(“實時”)下載的音頻下載應(yīng)用的環(huán)境下令人感興趣。
      [0055]圖5示出了另外的示例并行編碼器架構(gòu)500。架構(gòu)500是架構(gòu)300的擴(kuò)展并且包括應(yīng)用心理聲學(xué)模型153以及執(zhí)行量化與編碼152的另外的方面。以與圖3類似的方式,架構(gòu)500包括對音頻信號101的K個幀305進(jìn)行并行處理的信號起奏檢測單元301。基于已分類的幀,起奏-塊類型單元304確定K個幀305中的每一幀的塊類型。隨后,與K個幀305對應(yīng)的K個頻率系數(shù)集合在窗口化與變換單元303內(nèi)的K個并行處理中確定。這K個頻率系數(shù)集合可以用于心理聲學(xué)處理單元506以確定K個頻率系數(shù)集合的取決于頻率的掩蔽閾值。掩蔽閾值在量化與編碼單元508中被用于考慮心理聲學(xué)以取決于頻率的方式對K個頻率系數(shù)集合進(jìn)行量化和編碼。換言之,對于第k個頻率系數(shù)集合(即對于第k幀),心理聲學(xué)處理單兀506確定一個或更多個取決于頻率的掩蔽閾值。對一個或更多個掩蔽閾值的確定可以針對頻率系數(shù)集合k(k= I,-,K)并行執(zhí)行。第k幀的一個或更多個掩蔽閾值被提供給(串行或并行)量化和編碼單元152、508用于第k個頻率系數(shù)集合的量化和編碼。同樣地,對取決于頻率的掩蔽閾值的確定可以被并行化,即,對掩蔽閾值的確定可以在K個獨(dú)立處理單元上并行執(zhí)行,從而加快了整體編碼速度。
      [0056]此外,圖5示出了量化和編碼處理152的示例并行化。通常通過冪律量化來完成量化。通過這樣做,較大頻率系數(shù)值自動以較低的精確度被編碼并且一些噪聲整形已被構(gòu)建至量化處理中。然后通過霍夫曼編碼對量化值進(jìn)行編碼。為了使編碼處理適合于音頻信號101的不同局部統(tǒng)計,可以從存儲在數(shù)據(jù)庫中的多個霍夫曼表中選出特定的(最佳的)霍夫曼表。可以針對音頻信號的頻譜的不同部分選擇不同的霍夫曼表。例如,用于對第k個頻率系數(shù)集合進(jìn)行編碼的霍夫曼表可以取決于第k幀的塊類型。
      [0057]應(yīng)當(dāng)注意,對特定的(最佳的)霍夫曼表的搜索還可以并行化。假設(shè)P是可能的霍夫曼表的總數(shù)。對于第k(k= I,-,K)幀,可以在P個并行處理中(運(yùn)行在P個并行處理單元上)使用P個霍夫曼表的不同的表對第k個頻率系數(shù)集合進(jìn)行編碼。這產(chǎn)生了P個頻率系數(shù)編碼集合,其中這P個頻率系數(shù)編碼集合中的每一個具有相應(yīng)的比特長度。產(chǎn)生了具有最小比特長度的頻率系數(shù)編碼集合的霍夫曼表可以被選作第k幀的特定的(最佳的)霍夫曼表。作為完全并行化方案的替代方案,中間并行化方案比如具有α/β剪枝的分而治之的策略(其中每個分支在單獨(dú)的并行處理單元上執(zhí)行)可以被用于確定第k幀的特定的(最佳的)霍夫曼表。
      [0058]由于霍夫曼編碼是可變編碼長度方法并且由于應(yīng)當(dāng)進(jìn)行噪聲整形以保持量化噪聲低于取決于頻率的掩蔽閾值,因此全局增益值(確定量化步長)與縮放因子(確定每個縮放因子(即頻率)帶的噪聲整形因子)通常在實際量化之前應(yīng)用。對于音頻信號101的給定幀用于確定全局增益值與縮放因子(在目標(biāo)比特率和/或目標(biāo)感知失真的約束下)之間的最佳權(quán)衡的處理通常以綜合分析的方式通過兩個嵌套迭代循環(huán)來執(zhí)行。換言之,量化與編碼處理152通常包括兩個嵌套迭代循環(huán),所謂內(nèi)部迭代循環(huán)(或速率循環(huán))與外部迭代循環(huán)(或噪聲控制循環(huán))。
      [0059]在內(nèi)部迭代循環(huán)(速率循環(huán))的情況下,確定全局增益值以使經(jīng)量化與編碼的頻率系數(shù)集合滿足目標(biāo)比特率(或滿足針對特定幀k的所分配的比特數(shù)目)。通常,霍夫曼編碼表為(較頻繁)較小的量化值分配較短的碼字。如果由編碼操作產(chǎn)生的比特數(shù)目超過可用于對給定幀k進(jìn)行編碼的比特數(shù)目,則這可以通過調(diào)節(jié)全局增益來產(chǎn)生較大的量化步長來進(jìn)行校正,從而導(dǎo)致較小的量化值。用不同量化步長重復(fù)此操作直到霍夫曼編碼所需的比特數(shù)目少于或等于分配給該幀的比特。因為循環(huán)對整個編碼器比特率進(jìn)行修改直到比特率滿足目標(biāo)比特率,所以此循環(huán)稱為速率循環(huán)。
      [0060]在外部迭代循環(huán)(噪聲控制循環(huán))的情況下,取決于頻率的縮放因子適合于取決于頻率的掩蔽閾值以控制整體感知失真。為了根據(jù)取決于頻率的掩蔽閾值對量化噪聲進(jìn)行整形,將縮放因子應(yīng)用于每個縮放因子帶。該縮放因子帶與音頻信號中的頻率間隔對應(yīng),并且每個縮放因子帶包括頻率系數(shù)集合的不同子集。通常,縮放因子帶與音頻信號的整個頻率范圍被分成臨界子帶的感知激勵的分段對應(yīng)。編碼器通常針對每個縮放因子帶以默認(rèn)縮放因子I開始。如果發(fā)現(xiàn)給定帶中的量化噪聲超過了取決于頻率的掩蔽閾值(即,此帶中所允許的噪聲),則對該帶的縮放因子進(jìn)行調(diào)節(jié)以減小量化噪聲。同樣地,縮放因子與取決于頻率的增益值對應(yīng)(相比在速率調(diào)節(jié)循環(huán)中調(diào)節(jié)的總體增益值),其可以用于單獨(dú)地控制每個縮放因子帶中的量化步驟。
      [0061]由于實現(xiàn)較小的量化噪聲需要較大數(shù)量的量化步驟并且因此需要較高的比特率,所以每當(dāng)使用新的縮放因子時可能需要重復(fù)速率調(diào)節(jié)循環(huán)。換言之,速率循環(huán)嵌套在噪聲控制循環(huán)之中。執(zhí)行外部(噪聲控制)循環(huán)直到針對每個縮放因子帶(即臨界帶)實際噪聲(通過原始譜值減去量化譜值所得的差計算)低于掩蔽閾值。
      [0062]雖然內(nèi)部迭代循環(huán)總是收斂,但對于兩個迭代循環(huán)的組合這并不成立。例如,如果感知模型要求量化步長小以至于速率循環(huán)總是必須增大量化步長以使得能夠以目標(biāo)比特率進(jìn)行編碼,則兩個循環(huán)都不會收斂。如果沒有實現(xiàn)收斂,則可以設(shè)置條件來終止迭代。可替代地或另外地,可以基于目標(biāo)比特率來確定掩蔽閾值。換言之,例如在感知處理單元506中確定的掩蔽閾值可能取決于目標(biāo)比特率。這通常能夠使量化與編碼方案收斂于目標(biāo)比特率。
      [0063]應(yīng)當(dāng)注意,上述迭代量化與編碼處理(也稱為噪聲分配處理)僅是用于確定量化和編碼的頻率系數(shù)集合的一種可能處理。本文獻(xiàn)中所述的并行化方案同樣適用于量化與編碼單元508內(nèi)的并行噪聲分配處理的其他實現(xiàn)。
      [0064]作為量化與編碼處理的結(jié)果,針對音頻信號101的相應(yīng)幀獲取量化并且編碼的頻率系數(shù)集合。該量化并且編碼的頻率系數(shù)集合被表示通常取決于分配給該幀的比特數(shù)目的某一數(shù)目的比特。音頻信號101的聲學(xué)內(nèi)容從一幀到下一幀可能變化顯著,例如包括調(diào)性內(nèi)容的幀對比包括瞬態(tài)內(nèi)容的幀。因此,對幀進(jìn)行編碼所需的比特數(shù)目(鑒于某些所允許的感知失真)可能逐幀變化。例如,與包括瞬態(tài)內(nèi)容的幀相比,包括調(diào)性內(nèi)容的幀可能需要減少了的比特數(shù)目。同時,整體編碼音頻信號應(yīng)當(dāng)滿足某個目標(biāo)比特率,即每一幀的平均比特數(shù)目應(yīng)當(dāng)滿足預(yù)定的目標(biāo)值。
      [0065]為了確保預(yù)定目標(biāo)比特率并且為了考慮到幀的不同比特需求,AAC編碼器100通常利用與整體比特儲存器協(xié)作的比特分配處理。根據(jù)目標(biāo)比特率逐幀地用多個比特來填充整體比特儲存器。同時,整體比特儲存器由用于對過去的幀進(jìn)行編碼的比特數(shù)目進(jìn)行更新。同樣地,整體比特儲存器對已經(jīng)被用來對音頻信號101進(jìn)行編碼的比特的數(shù)量進(jìn)行跟蹤并且因此提供可用于對音頻信號101的當(dāng)前幀進(jìn)行編碼的比特數(shù)目的指示。比特分配處理利用此信息來分配用于對當(dāng)前幀進(jìn)行編碼的比特數(shù)目。對于該分配處理,可能要考慮當(dāng)前幀的塊類型。因此,比特分配處理可以為量化與編碼單元152提供可用于對當(dāng)前幀進(jìn)行編碼的比特的數(shù)目的指示。該指示可以包括所分配比特的最小數(shù)目、所分配比特的最大數(shù)目和/或所分配比特的平均數(shù)目。
      [0066]量化與編碼單元152使用對所分配比特數(shù)目的指示來對與當(dāng)前幀對應(yīng)的頻率系數(shù)集合進(jìn)行量化和編碼,從而確定占用了實際比特數(shù)目的量化并且編碼的頻率系數(shù)集合。通常,僅在上述量化和編碼(包括嵌套循環(huán))的執(zhí)行之后才知道實際的比特數(shù)目,并且該實際的比特數(shù)目可以在由對所分配的比特數(shù)目的指示所提供的范圍內(nèi)變化。用實際比特數(shù)目對整體比特儲存器進(jìn)行更新并且針對后續(xù)幀重復(fù)進(jìn)行比特分配處理。
      [0067]圖5示出了對與K個幀305對應(yīng)的K個頻率系數(shù)集合并行地進(jìn)行量化和編碼的并行量化與編碼方案508。如上面所概述的,第k個頻率系數(shù)集合的實際量化和編碼獨(dú)立于其他頻率系數(shù)集合的量化和編碼。因此,K個頻率系數(shù)集合的量化和編碼可以并行執(zhí)行。然而,用于第k個頻率系數(shù)集合的量化和編碼的所分配的比特的指示(例如所分配的比特的最大數(shù)目、最小數(shù)目和/或平均數(shù)目)通常取決于在第k-Ι個頻率系數(shù)集合的量化和編碼之后的整體比特儲存器的狀態(tài)。因此,本文獻(xiàn)中描述了修正的比特分配處理507和修正的比特儲存器更新處理509,其使得能夠?qū)崿F(xiàn)并行化量化和編碼處理508。
      [0068]示例比特分配處理507可以包括在K個頻率系數(shù)集合的實際量化和編碼508之后對比特儲存器進(jìn)行更新的步驟。所更新的比特儲存器然后可以成為并行地為后續(xù)的K個頻率系數(shù)集合提供比特的分 配的比特分配處理507的基礎(chǔ)。換言之,比特存儲器更新處理509與比特分配處理507可以每K個幀的組進(jìn)行(而不是以每幀為基礎(chǔ)進(jìn)行處理)。更具體地,比特分配處理507可以包括從比特儲存器為K個幀的組(而不是逐幀獲取可用比特數(shù)目)獲取可用的比特總數(shù)T的步驟。隨后,比特分配處理507可以為K個幀的組的各個幀分配可用的比特總數(shù)T,因此產(chǎn)生了 K個幀的組的相應(yīng)的第k幀所分配的相應(yīng)的比特數(shù)目Tk(k= 1,...,Κ)。比特分配處理507可以考慮K個幀中的幀的塊類型。具體地,與僅考慮每個單獨(dú)的幀的塊類型的順序比特分配處理507相比,比特分配處理507可以對K個幀的所有幀的塊類型進(jìn)行協(xié)同考慮??梢钥紤]關(guān)于K個幀的組中相鄰幀的塊類型的附加信息來提供改進(jìn)的比特分配。
      [0069]為了進(jìn)一步改善對K個幀的組的幀的比特分配,比特分配/比特儲存器更新處理可以以綜合分析的方式來進(jìn)行,因此對整體比特分配進(jìn)行優(yōu)化。圖7示出了使用綜合分析方案的示例迭代比特分配處理700。在步驟701中,用于對K個幀305的組進(jìn)行編碼的總的比特數(shù)目T接收自比特儲存器。該比特總數(shù)T隨后分發(fā)給K個幀的組中的幀,因此產(chǎn)生了為K個幀的組中的每個幀k(k= 1,...,!()所分配的比特數(shù)目Tk (步驟702)。在比特分配處理700的第一次迭代中,分發(fā)步驟702可以主要基于組305中K個幀的塊類型。數(shù)目Tk被傳遞至對K個幀進(jìn)行量化和編碼的相應(yīng)的量化和編碼單元508,因此產(chǎn)生了 K個編碼幀。K個編碼幀分別耗盡Uk(k = I,…,K)個比特。在步驟703中接收所耗盡的比特數(shù)目Uk。
      [0070]隨后,驗證迭代的比特分配處理700的停止標(biāo)準(zhǔn)是否滿足(步驟704)。示例停止標(biāo)準(zhǔn)可以包括下面一個或更多個標(biāo)準(zhǔn)的與或者或的組合:迭代的比特分配處理已經(jīng)執(zhí)行了預(yù)定的最大迭代次數(shù);所耗盡的比特的總數(shù)、即Σ Uk與可用的比特數(shù)目T滿足預(yù)定關(guān)系;數(shù)目Uk以及Tk與k = 1,…,K的一些或所有滿足預(yù)定的關(guān)系,等。例如,對于幀I如果U1〈T1,則執(zhí)行比特分配處理700的另一次迭代可能是有利的,其中Tl減小Tl與Ul的差,并且Ul與可用的比特(Tl-Ul)被分配給其他幀。
      [0071]如果不滿足停止標(biāo)準(zhǔn)(附圖標(biāo)記705),則執(zhí)行比特分配處理700的進(jìn)一步迭代,其中,考慮先前迭代的所耗盡的比特Uk(k= 1,...,!()來執(zhí)行T個比特的分配(步驟702)。另一方面,如果滿足停止標(biāo)準(zhǔn)(附圖標(biāo)記706),然后終止迭代處理并且用實際所耗盡的比特數(shù)目Uk (即最后一次迭代的所耗盡的比特)來更新比特儲存器。
      [0072]換言之,對于K個幀的組,可以首先向K個并行量化和編碼處理508的每一個處理分配初步的比特。結(jié)果,確定K個量化與編碼的頻率系數(shù)集合與K個實際所用的比特數(shù)目。然后可以對K個實際比特數(shù)目的分發(fā)進(jìn)行分析,并且可以對至K個并行量化和編碼處理508的比特分配進(jìn)行修改。例如,未被特定幀使用的所分配的比特可以被分配給其他幀(例如已經(jīng)耗盡所有所分配比特的幀)??梢岳眯拚谋忍胤峙涮幚韺個并行量化和編碼處理508進(jìn)行重復(fù),等等。為了對分組式比特分配處理507進(jìn)行優(yōu)化,可以執(zhí)行此處理的若干次迭代(例如兩次或三次迭代)。
      [0073]圖6示出了流水線方案600,此方案可以可替代地或另外地用于圖3、圖4以及圖5中示出的并行方案。在流水線方案600中,與對先前幀k-Ι的頻率系數(shù)集合的量化與編碼(附圖標(biāo)記608、609)并行地確定當(dāng)前幀k的頻率系數(shù)集合(附圖標(biāo)記301、304、303、506)。并行處理在當(dāng)前幀k的比特分配級607處匯聚。如上面所概述的,比特分配級607用作輸入比特儲存器,利用用 于對先前幀k-Ι的頻率系數(shù)集合進(jìn)行編碼的實際比特數(shù)目和/或當(dāng)前幀k的塊類型對此比特儲存器進(jìn)行更新。當(dāng)使用圖6的流水線方案600時,不同處理單元可以被用于當(dāng)前幀k的頻率系數(shù)集合的確定(附圖標(biāo)記301、304、303、506)并且用于先前幀(k-Ι)的頻率系數(shù)集合的量化和編碼(附圖標(biāo)記608、609)。這導(dǎo)致編碼方案加速了因子2。
      [0074]如圖6所示,流水線方案600可以結(jié)合并行化方案300、400、500來使用。這意味著當(dāng)當(dāng)前K個幀的組被變換以提供K個頻率系數(shù)集合(附圖標(biāo)記301、304、303、506)時,可以對先前K個幀的組的先前K個頻率系數(shù)集合進(jìn)行量化(附圖標(biāo)記608、609)。如上所概述的,對K個幀的K個頻率系數(shù)集合的確定的并行化使得能夠?qū)崿F(xiàn)在K個不同的處理單元上實現(xiàn)這些并行處理。以類似的方式,K個并行量化與編碼處理608可以在K個不同的處理單元上實現(xiàn)??傊?,2K個并行處理單元可以用在流水線方案600中以將編碼方案整體加速因子2K(例如,在K = 10的情況下,加速了因子20)。
      [0075]在圖3、圖4、圖5和圖6中示出了可以被用來提供快速音頻編碼器的實現(xiàn)的幾個架構(gòu)。可替代或另外地,可以采取措施來加速在一個或更多個處理單元上對編碼器的實際實現(xiàn)。具體地,可以用謂詞邏輯來產(chǎn)生音頻編碼器的加速實現(xiàn)。具有長處理流水線的處理單元通常具有條件轉(zhuǎn)移的缺點(diǎn),因為此條件轉(zhuǎn)移阻礙(延遲)流水線的執(zhí)行。流水線的條件執(zhí)行是在一些處理單元上可以被用來提供加速實現(xiàn)的特征?;蛘?,可以用比特掩碼(而不是顯式條件)對條件執(zhí)行進(jìn)行仿真。
      [0076]在本文獻(xiàn)中,描述了用于快速音頻編碼的各種方法及系統(tǒng)。提出了使得能夠在并行處理單元上實現(xiàn)音頻編碼器的各種部件的幾個并行編碼器架構(gòu),因此減少了整體編碼時間。用于快速音頻編碼的方法及系統(tǒng)可以用于比實時更快的音頻編碼,例如在音頻下載應(yīng)用的背景下。
      [0077]應(yīng)當(dāng)注意,描述和附圖僅僅示出了所提出方法及系統(tǒng)的原理。雖然并未在此明確描述或示出,但應(yīng)當(dāng)理解:本領(lǐng)域技術(shù)人員將能夠設(shè)計出體現(xiàn)本發(fā)明的原理并且包含在本發(fā)明的精神和范圍之內(nèi)的各種布置。此外,本文記載的所有示例主要目的明確在于僅僅為了幫助讀者理解所提出方法和系統(tǒng)的原理以及由
      【發(fā)明者】貢獻(xiàn)的概念來推動技術(shù)的教學(xué)目的,并且應(yīng)被解釋為不限于這些具體列舉的示例及條件。此外,本文記載了本發(fā)明的原理、方面與實施方式及其具體示例的所有陳述意在包含其等同物。
      [0078]本文獻(xiàn)中所述方法和系統(tǒng)可以實現(xiàn)為軟件、固件和/或硬件。某些部件可以例如實現(xiàn)為運(yùn)行在數(shù)字信號處理器或微處理器上的軟件。其他部件可以例如實現(xiàn)為硬件和或?qū)崿F(xiàn)為專用集成電路。在所述方法和系統(tǒng)中遇到的信號可以存儲在諸如隨機(jī)存取存儲器或光存儲介質(zhì)的存儲媒體上。它們可以通過網(wǎng)絡(luò)進(jìn)行傳輸,比如無線電網(wǎng)絡(luò)、衛(wèi)星網(wǎng)絡(luò)、無線網(wǎng)絡(luò)或有線網(wǎng)絡(luò),例如因特網(wǎng)。利用了本文獻(xiàn)中所述方法和系統(tǒng)的典型裝置有:被用來存儲和/或渲染音頻信號的便攜式電子裝置或其他消費(fèi)類設(shè)備。
      【權(quán)利要求】
      1.一種基于幀的音頻編碼器(300,400,500,600),包括 K個并行變換單元(303,403);其中,所述K個并行變換單元(303,403)中的每一個被配置成:將音頻信號(101)的K個幀(305)的組中的相應(yīng)幀變換成K個頻率系數(shù)集合中的相應(yīng)集合;其中K>1 ;其中,所述K個幀(305)中的每一個包括所述音頻信號(101)的多個樣本。
      2.根據(jù)權(quán)利要求1所述的音頻編碼器(300,400,500,600),其中,所述K個并行變換單元(303,403)中的每一個被配置成:向所述K個幀(305)中的相應(yīng)幀應(yīng)用修正離散余弦變換。
      3.根據(jù)任一前述權(quán)利要求所述的音頻編碼器(300,400,500,600),其中,所述K個并行變換單元(303,403)中的每一個被配置成:向所述K個幀(305)中的相應(yīng)幀應(yīng)用窗函數(shù)。
      4.根據(jù)任一前述權(quán)利要求所述的音頻編碼器(300,400,500,600),其中,所述K個并行變換單元(303,403)中的每一個被配置成:將所述K個幀(305)中的相應(yīng)幀變換成取決于幀類型的頻率系數(shù)集合。
      5.根據(jù)權(quán)利要求4所述的音頻編碼器(300,400,500,600),還包括: K個并行信號起奏檢測單元(301),其中,每個信號起奏檢測單元(301)被配置成:基于所述K個幀(305)中的相應(yīng)幀中聲音起奏的有或無,對所述K個幀(305)中的相應(yīng)幀進(jìn)行分類。
      6.根據(jù)權(quán)利要求5所 述的音頻編碼器(300,400,500,600),還包括: 幀類型檢測單元(304),被配置成:基于對所述K個幀的分類來確定所述K個幀(305)中的每一個幀的幀類型。
      7.根據(jù)權(quán)利要求6所述的音頻編碼器(300,400,500,600),其中,所述幀類型是短塊類型、長塊類型、開始塊類型和停止類型之一。
      8.根據(jù)權(quán)利要求6至7中任一項所述的音頻編碼器(300,400,500,600),其中,所述幀類型檢測單元(304)被配置成:還基于幀k-Ι的幀類型確定所述K個幀(305)中的每個幀k的幀類型,其中k = 1,…,K。
      9.根據(jù)權(quán)利要求6至8中任一項所述的音頻編碼器(400),其中,所述K個并行變換單元(403)與所述K個并行信號起奏檢測單元(301)和所述幀類型檢測單元(304)并行操作。
      10.根據(jù)權(quán)利要求6至9中任一項所述的音頻編碼器(400),其中 所述K個并行變換單元(303、403)中的每一個被配置成:將所述K個幀(305)中的相應(yīng)幀變換為多個取決于幀類型的頻率系數(shù)集合;以及 所述編碼器(400)還包括選擇單元(406),所述選擇單元(406)被配置成:從所述多個取決于幀類型的頻率系數(shù)集合中為所述K個幀(305)中的每一幀選擇頻率系數(shù)集合,其中,所選擇的集合與所述相應(yīng)幀的幀類型對應(yīng)。
      11.根據(jù)權(quán)利要求6至8中任一項所述的音頻編碼器(400),其中,所述K個并行信號起奏檢測單元(301)與所述幀類型檢測單元(304)順序地操作,所述幀類型檢測單元(304)與所述K個并行變換單元(403)順序地操作。
      12.根據(jù)權(quán)利要求6至8以及11中任一項所述的音頻編碼器(300,500,600),其中,所述K個并行變換單元(303)的每一個被配置成:將所述K個幀(305)中的相應(yīng)幀變換成與所述幀類型檢測單元(304)所確定的所述相應(yīng)幀的幀類型對應(yīng)的頻率系數(shù)集合。
      13.根據(jù)任一前述權(quán)利要求所述的音頻編碼器(300,400,500,600),還包括: K個并行量化與編碼單元(508,608);其中,所述K個并行量化與編碼單元(508,608)中的每一個被配置成:考慮相應(yīng)的所分配比特數(shù)目來對所述K個頻率系數(shù)集合中的相應(yīng)集合進(jìn)行量化和熵編碼。
      14.根據(jù)權(quán)利要求13所述的音頻編碼器(300,400,500,600),還包括: K個并行心理聲學(xué)單兀(506);其中,所述K個并行心理聲學(xué)單兀(506)中的每一個被配置成:基于所述K個頻率系數(shù)集合中的相應(yīng)集合來確定一個或更多個取決于幀的掩蔽閾值。
      15.根據(jù)權(quán)利要求14所述的音頻編碼器(300,400,500,600),其中,所述K個并行心理聲學(xué)單元(506)中的每一個被配置成:對表示所述K個幀(305)中的相應(yīng)幀的信息內(nèi)容的感知熵值進(jìn)行確定。
      16.根據(jù)權(quán)利要求14至15中任一項所述的音頻編碼器(300,400,500,600),其中,所述K個并行量化與編碼單元(508、608)中的每一個被配置成:考慮相應(yīng)的一個或更多個取決于幀的掩蔽閾值來對所述K個頻率系數(shù)集合中的相應(yīng)集合進(jìn)行量化和熵編碼。
      17.根據(jù)權(quán)利要求13至16中任一項所述的音頻編碼器(300,400,500,600),還包括: 比特分配單元(507,607),被配置成:向所述K個并行量化與編碼單元(508,608)中的每一個分配相應(yīng)的比特數(shù)目。
      18.根據(jù)從屬于權(quán) 利要求6的權(quán)利要求17所述的音頻編碼器(300,400,500,600),其中,所述比特分配單元(507,607)被配置成:考慮所述K個幀(305)的幀類型來分配相應(yīng)的比特數(shù)目。
      19.根據(jù)權(quán)利要求15所述的音頻編碼器(300,400,500,600),其中,所述比特分配單元(507,607)被配置成:考慮所述K個幀(305)的感知熵值來分配相應(yīng)的比特數(shù)目。
      20.根據(jù)權(quán)利要求17至19中任一項所述的音頻編碼器(300,400,500,600),還包括: 比特儲存器跟蹤單元(509,609),被配置成:對用于對所述音頻信號(101)的在所述K個幀(305)之前的幀進(jìn)行編碼的先前消耗的比特數(shù)目進(jìn)行跟蹤。
      21.根據(jù)權(quán)利要求20所述的音頻編碼器(300,400,500,600),其中,所述比特儲存器跟蹤單元(509,609)被配置成:用被所述K個并行量化與編碼單元(508,608)用于對所述頻率系數(shù)集合進(jìn)行編碼的比特數(shù)目來更新先前消耗的比特數(shù)目,從而產(chǎn)生當(dāng)前消耗的比特數(shù)目。
      22.根據(jù)權(quán)利要求20至21中任一項所述的音頻編碼器(300,400,500,600),其中,所述比特分配單元(507,607)被配置成:考慮先前消耗的比特數(shù)目來分配相應(yīng)的比特數(shù)目。
      23.根據(jù)權(quán)利要求20至22中任一項所述的音頻編碼器(300,400,500,600),其中,所述比特分配單元(507,607)被配置成:考慮用于對所述音頻信號(101)進(jìn)行編碼的目標(biāo)比特率來分配相應(yīng)的比特數(shù)目。
      24.根據(jù)權(quán)利要求21至23中任一項所述的音頻編碼器(300,400,500,600),其中,所述比特分配單元(507,607)被配置成:考慮當(dāng)前消耗的比特數(shù)目以綜合分析的方式來分配相應(yīng)的比特數(shù)目。
      25.根據(jù)權(quán)利要求21至24中任一項所述的音頻編碼器(300,400,500,600),其中 所述比特分配單元(507,607)被配置成:考慮當(dāng)前消耗的比特數(shù)目來分配相應(yīng)的比特數(shù)目,從而產(chǎn)生對于所述K個并行量化與編碼單元(508,608)中的每一個的相應(yīng)的更新的分配的比特數(shù)目;以及 所述K個并行量化與編碼單元(508,608)中的每一個被配置成:考慮所述相應(yīng)的更新的分配的比特數(shù)目來對所述K個頻率系數(shù)集合中的相應(yīng)集合進(jìn)行量化和熵編碼。
      26.根據(jù)權(quán)利要求20至25中任一項所述的音頻編碼器(600),其中 所述K個并行量化與編碼單元(508,608)和所述K個并行變換單元(303)被配置成以流水線架構(gòu)進(jìn)行操作。 所述K個并行量化與編碼單元(508,608)對與K個幀的組的K個先前幀對應(yīng)的K個先前頻率系數(shù)集合進(jìn)行量化和編碼,同時所述K個并行變換單元(303)對所述K個幀的組中的幀進(jìn)行變換。
      27.根據(jù)任一前述權(quán)利要求所述的音頻編碼器(300,400,500,600),其中,所述K個并行變換單元(303,403)在至少K個不同的處理單元上實現(xiàn)。
      28.根據(jù)任一前述權(quán)利要求所述的音頻編碼器(300,400,500,600),其中,所述音頻編碼器(300,400,500,600)被配置成執(zhí)行稱為AAC的高級音頻編碼。
      29.—種基于幀的音頻編碼器(300,400,500,600),被配置成:在至少K個不同的處理單元上對音頻信號(101)的K個幀(305)并行地進(jìn)行編碼;其中K>1 ;所述音頻編碼器(300,400,500,600)包括以下至少之一: K個并行變換單元(303,403),其中,所述K個并行變換單元(303,403)中的每一個被配置成:將所述K個幀(305)中的相應(yīng)幀變換為K個頻率系數(shù)集合中的相應(yīng)集合; K個并行信號起奏檢測單元(301),其中,每個信號起奏檢測單元(301)被配置成:基于所述K個幀(305)中的相應(yīng)幀中聲音起奏的有或無,對所述K個幀(305)中的相應(yīng)幀進(jìn)行分類; K個并行量化與編碼單元(508,608);其中,所述K個并行量化與編碼單元(508,608)中的每一個被配置成:考慮相應(yīng)的所分配的比特數(shù)目來對所述K個頻率系數(shù)集合中的相應(yīng)集合進(jìn)行量化和熵編碼。
      30.一種基于幀的音頻編碼器(300,400,500,600),被配置成:在至少K個不同的處理單元上對音頻信號(101)的K個幀(305)并行地進(jìn)行編碼;其中K>1 ;所述音頻編碼器(300,400,500,600)包括 變換單元(303,403),被配置成:將所述K個幀變換為K個對應(yīng)的頻率系數(shù)集合; K個并行量化與編碼單元(508,608),其中,所述K個并行量化與編碼單元(508,608)中的每一個被配置成:考慮相應(yīng)的所分配的比特數(shù)目,對K個頻率系數(shù)集合中的相應(yīng)集合進(jìn)行量化和熵編碼;以及 比特分配單元(507,607),被配置成:基于用于對所述音頻信號(101)的在所述K個幀(305)之前的幀進(jìn)行編碼的先前消耗的比特數(shù)目,向所述K個并行量化與編碼單元(508,.608)中的每一個分配相應(yīng)的比特數(shù)目。
      31.一種基于幀的音頻編碼器(300,400,500,600),被配置成:在至少K個不同的處理單元上對音頻信號(101)的K個幀(305)并行地進(jìn)行編碼;其中K>1;所述音頻編碼器(300,400,500,600)包括: K個并行信號起奏檢測單元(301),其中,每個信號起奏檢測單元(301)被配置成:基于所述K個幀(305)中的相應(yīng)幀中聲音起奏的有或無,對所述K個幀(305)中的所述相應(yīng)幀進(jìn)行分類; 幀類型檢測單元(304),被配置成:基于幀k的分類并且基于幀k-Ι的幀類型,確定K個幀(305)中的每個幀k的幀類型,其中k = 1,…,K ;以及 K個并行變換單元(303,403),其中,所述K個并行變換單元(303,403)中的每一個被配置成:將所述K個幀(305)中的相應(yīng)幀變換為K個頻率系數(shù)集合中的相應(yīng)集合;其中,與幀k對應(yīng)的頻率系數(shù)集合k取決于幀k的幀類型。
      32.一種用于對包括幀的序列的音頻信號(101)進(jìn)行編碼的方法,所述方法包括以下任意一項或更多項: 將所述音頻信號(101)的K個幀(305)并行地變換為對應(yīng)的K個頻率系數(shù)集合;其中K>1 ; 基于所述K個幀(305)中的相應(yīng)幀中聲音起奏的有或無,對所述K個幀(305)中的每一個幀并行地進(jìn)行分類;以及 考慮相應(yīng)的所分配的比特數(shù)目來對所述K個頻率系數(shù)集合中的每一個并行地進(jìn)行量化和熵編碼。
      33.一種用于對包括幀的序列的音頻信號(101)進(jìn)行編碼的方法,所述方法包括: 將所述音頻信號(101)的K個幀變換為K個對應(yīng)的頻率系數(shù)集合;其中K>1 ; 考慮相應(yīng)的所分配的比特數(shù)目來對所述K個頻率系數(shù)集合中的每一個并行地進(jìn)行量化和熵編碼;以及 基于用于對所述音頻信號(101)的在所述K個幀(305)之前的幀進(jìn)行編碼的先前消耗的比特數(shù)目來分配相應(yīng)的比特數(shù)目。
      34.一種用于對包括幀的序列的音頻信號(101)進(jìn)行編碼的方法,所述方法包括: 基于K個幀(305)中的相應(yīng)幀中聲音起奏的有或無,對所述音頻信號(101)的K個幀中的每一幀并行地進(jìn)行分類;其中K>1 ; 基于幀k的分類并且基于幀k-Ι的幀類型來確定K個幀(305)中的每一幀k的幀類型,其中k = 1,…,K ;以及 將所述K個幀(305)中的每一個幀并行地變換為K個頻率系數(shù)集合中的相應(yīng)集合;其中,與幀k對應(yīng)的頻率系數(shù)集合k取決于幀k的幀類型。
      35.一種軟件程序,所述軟件程序適合于在處理器上執(zhí)行并且當(dāng)在所述處理器上執(zhí)行時用于執(zhí)行權(quán)利要求32至34中任一項所述的方法步驟。
      36.一種包括軟件程序的存儲介質(zhì),所述軟件程序適合于在處理器上執(zhí)行并且當(dāng)在計算裝置上執(zhí)行時用于執(zhí)行權(quán)利要求32至34中任一項所述的方法步驟。
      37.一種包括可執(zhí)行指令的計算機(jī)程序產(chǎn)品,所述可執(zhí)行指令當(dāng)在計算機(jī)上執(zhí)行時用于執(zhí)行權(quán)利要求32至34中任一項所述的方法步驟。
      【文檔編號】G10L19/16GK104011794SQ201280064054
      【公開日】2014年8月27日 申請日期:2012年12月11日 優(yōu)先權(quán)日:2011年12月21日
      【發(fā)明者】沃爾夫?qū)は癄柕掳秃? 申請人:杜比國際公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1