国产精品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>

      在自適應(yīng)編碼和解碼中選擇性地使用多個(gè)熵模型的制作方法

      文檔序號(hào):2830117閱讀:379來(lái)源:國(guó)知局

      專利名稱::在自適應(yīng)編碼和解碼中選擇性地使用多個(gè)熵模型的制作方法在自適應(yīng)編碼和解碼中選擇性地使用多個(gè)熵模型站雖冃眾工程師使用各種技術(shù)以在保持?jǐn)?shù)字音頻的質(zhì)量的同時(shí)高效地處理數(shù)字音頻。為理解這些技術(shù),理解在計(jì)算機(jī)中如何表示和處理音頻信息是有幫助的。I.在計(jì)算機(jī)中表示音頻信息計(jì)算機(jī)將音頻信息處理為表示音頻信息的一系列數(shù)字。例如,單個(gè)數(shù)字可表示一個(gè)音頻樣本,該樣本在特定時(shí)刻是一幅值。若干因素影響了音頻信息的質(zhì)量,包括樣本深度、釆樣速率和聲道模式。樣本深度(或精度)指示用于表示一個(gè)樣本的數(shù)字的范圍。對(duì)樣本的可能值越多,質(zhì)量也越高,因?yàn)樵摂?shù)字能捕捉幅度的更細(xì)微變化。例如,8位樣本具有256個(gè)可能值,而16位樣本具有65,536個(gè)可能值。采樣速率(通常是作為每秒的樣本數(shù)來(lái)測(cè)量的)也影響質(zhì)量。采樣速率越高,質(zhì)量就越高,因?yàn)榭杀硎靖嗦曇纛l率。一些常見的采樣速率是8,000、11,025、22,050、32,000、44,100、48,000和96,000樣本/秒。單聲道和立體聲是對(duì)于音頻的兩種常見的聲道模式。在單聲道模式中,音頻信息存在于一個(gè)聲道中。在立體聲模式中,音頻信息存在于通常標(biāo)為左聲道和右聲道的兩個(gè)聲道中。具有更多聲道,諸如5.1聲道、7.1聲道或9.1聲道環(huán)繞聲("1"指示亞低音揚(yáng)聲器或低頻音效聲道)的其它模式也是可能的。表1示出了具有不同質(zhì)量水平的若干音頻格式,以及對(duì)應(yīng)的原始比特率成本。樣本深度(位/樣本)采樣速率(樣本/秒)聲道模式原始比特率(比特/秒)因特網(wǎng)電話88,000單聲道64,000電話811,025單聲道88,200CD音頻1644,100立體聲1,411,200表1不同質(zhì)量音頻信息的比特率環(huán)繞聲音頻通常具有甚至更高的原始比特率。如表1所示,高質(zhì)量音頻信息的成本是高比特率。高質(zhì)量音頻信息消耗了大量的計(jì)算機(jī)存儲(chǔ)和傳輸能力。然而,公司和消費(fèi)者越來(lái)越依賴于計(jì)算機(jī)來(lái)創(chuàng)建、分發(fā)和回放高質(zhì)量音頻內(nèi)容。II.在計(jì)算機(jī)中處理音頻信息許多計(jì)算機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)缺少處理原始數(shù)字音頻的資源。壓縮(也稱為編碼或譯碼)通過(guò)將信息轉(zhuǎn)換成較低比特率的形式降低了儲(chǔ)存和傳送音頻信息的成本。壓縮可以是無(wú)損(其中質(zhì)量不受損害)或有損(其中質(zhì)量受到損害,但是因隨后的無(wú)損壓縮而得到的比特率減小更顯著)。例如,使用有損壓縮來(lái)逼近原始音頻信息,然后對(duì)該逼近進(jìn)行無(wú)損壓縮。解壓(也稱為解碼)從壓縮形式中提取原始信息的重構(gòu)版本。音頻壓縮的一個(gè)目的是數(shù)字地表示音頻信號(hào)以用可能的最少量比特來(lái)提供所察覺(jué)信號(hào)的最大質(zhì)量。用此目的作為目標(biāo),各種當(dāng)今的音頻編碼系統(tǒng)利用了人類知覺(jué)模型。編碼器和解碼器系統(tǒng)包括微軟公司的Windows媒體音頻("WMA")編碼器和解碼器以及WMAPro編碼器和解碼器的某些版本。其它系統(tǒng)由運(yùn)動(dòng)圖片專家組音頻第3層("MP3")標(biāo)準(zhǔn)、運(yùn)動(dòng)圖片專家組2高級(jí)音頻編碼("AAC")標(biāo)準(zhǔn)和杜比(Dolby)AC3的某些版本來(lái)指定。這些系統(tǒng)通常使用組合的有損和無(wú)損壓縮和解壓。A.有損壓縮和相應(yīng)的解壓常規(guī)上,音頻編碼器使用各種不同的有損壓縮技術(shù)。這些有損壓縮技術(shù)通常涉及在頻率變換之后的知覺(jué)建模/加權(quán)和量化。相應(yīng)的解壓涉及量化、反加權(quán)和頻率反變換。頻率變換技術(shù)將數(shù)據(jù)轉(zhuǎn)換成使得能更容易地從知覺(jué)上不重要的信息中分離出知覺(jué)上重要的信息的形式。較不重要的信息然后可進(jìn)行更有損的壓縮,而較重要的信息被保留,以提供對(duì)給定比特率的最佳察覺(jué)質(zhì)量。頻率變換通常接收音頻樣本,并將其轉(zhuǎn)換成頻域中的數(shù)據(jù),該數(shù)據(jù)有時(shí)也稱為頻率系數(shù)或頻譜系數(shù)。知覺(jué)建模涉及根據(jù)人類聽覺(jué)系統(tǒng)的模型來(lái)處理音頻數(shù)據(jù)以改進(jìn)對(duì)給定比特率的重構(gòu)音頻信號(hào)的察覺(jué)質(zhì)量。使用知覺(jué)建模的結(jié)果,編碼器以最小化對(duì)給定比特率的噪聲可聽見性為目標(biāo)來(lái)對(duì)音頻數(shù)據(jù)中的噪聲(例如,量化噪聲)整形。量化將輸入值的范圍映射到單個(gè)值,從而引入了不可逆的信息損失,但也許編碼器調(diào)節(jié)輸出的質(zhì)量和比特率。有時(shí),編碼器結(jié)合調(diào)整量化的速率控制器來(lái)執(zhí)行量化以調(diào)節(jié)比特率和/或質(zhì)量。有各種類型的量化,包括自適應(yīng)和非自適應(yīng)、標(biāo)量和向量、均勻和非均勻。知覺(jué)加權(quán)可被認(rèn)為是一種形式的非均勻量化。反量化和反加權(quán)將加權(quán)的、量化的頻率系數(shù)數(shù)據(jù)重構(gòu)成原始的頻率系數(shù)數(shù)據(jù)的逼近。頻率反變換然后將重構(gòu)的頻率系數(shù)數(shù)據(jù)轉(zhuǎn)換成重構(gòu)的時(shí)域音頻樣本。B.無(wú)損壓縮和解壓常規(guī)上,音頻編碼器使用各種不同無(wú)損壓縮技術(shù)中的一種或多種,這些技術(shù)也稱為熵編碼技術(shù)。一般而言,無(wú)損壓縮技術(shù)包括行程長(zhǎng)度編碼、可變長(zhǎng)度編碼和算術(shù)編碼。對(duì)應(yīng)的解壓技術(shù)(也稱為熵解碼技術(shù))包括行程長(zhǎng)度解碼、可變長(zhǎng)度解碼和算術(shù)解碼。行程長(zhǎng)度編碼是一種簡(jiǎn)單、公知的壓縮技術(shù)。一般而言,行程長(zhǎng)度編碼用具有相同值的連續(xù)碼元序列(即行程)的值和長(zhǎng)度來(lái)替換該序列。在行程長(zhǎng)度解碼中,從行程值和行程長(zhǎng)度中重構(gòu)連續(xù)碼元序列。開發(fā)了行程長(zhǎng)度編碼/解碼的眾多變型。行程級(jí)別編碼類似于行程長(zhǎng)度編碼,因?yàn)榫哂邢嗤档倪B續(xù)碼元的行程用行程長(zhǎng)度來(lái)替換。行程的值是數(shù)據(jù)中的主導(dǎo)值(predominantvalue)(例如,0),并且行程由具有不同值(例如,非零值)的一個(gè)或多個(gè)級(jí)別隔開。行程長(zhǎng)度編碼或行程級(jí)別編碼的結(jié)果(例如,行程值和行程長(zhǎng)度)可以被可變長(zhǎng)度編碼以進(jìn)一步減小比特率。如果是這樣,則可變長(zhǎng)度編碼的數(shù)據(jù)在行程長(zhǎng)度解碼之前進(jìn)行可變長(zhǎng)度解碼??勺冮L(zhǎng)度編碼是另一種公知的壓縮技術(shù)。一般而言,可變長(zhǎng)度碼["VLC"]表將VLC與唯一碼元值(或值的唯一組合)相關(guān)聯(lián)。哈夫曼(Huffman)碼是一種常見類型的VLC。較短的代碼被分配給較有可能的碼元值,而較長(zhǎng)的代碼被分配給較不可能的碼元值。對(duì)某種內(nèi)容的典型示例計(jì)算概率?;蛘?,對(duì)剛編碼的數(shù)據(jù)或?qū)⒁幋a的數(shù)據(jù)計(jì)算概率,在這一情況下,VLC自適應(yīng)以改變唯一碼元值的概率。與靜態(tài)可變長(zhǎng)度編碼相比,自適應(yīng)可變長(zhǎng)度編碼通常通過(guò)結(jié)合數(shù)據(jù)的更準(zhǔn)確概率來(lái)減小壓縮數(shù)據(jù)的比特率,但是還需要傳送指定VLC的額外信息。為編碼碼元,可變長(zhǎng)度編碼器用與VLC表中的碼元值相關(guān)聯(lián)的VLC來(lái)替換碼元值。為解碼,可變長(zhǎng)度解碼器用與VLC相關(guān)聯(lián)的碼元值來(lái)替換VLC。在標(biāo)量可變長(zhǎng)度編碼中,VLC表將單個(gè)VLC與一個(gè)值,例如直接級(jí)別的量化數(shù)據(jù)值相關(guān)聯(lián)。在向量可變長(zhǎng)度編碼中,VLC表將單個(gè)VLC與值的組合,例如,按特定順序的一組直接級(jí)別的量化數(shù)據(jù)相關(guān)聯(lián)。向量可變長(zhǎng)度編碼可得到比標(biāo)量可變長(zhǎng)度編碼更好的比特率減小(例如,通過(guò)允許編碼器在二進(jìn)制VLC中微小地利用概率)。另一方面,用于向量可變長(zhǎng)度編碼的VLC表在單個(gè)代碼表示一大組碼元或碼元具有大范圍的可能值(由于大量的可能組合)時(shí)可能極大,這在計(jì)算VLC表和找出VLC時(shí)消耗了存儲(chǔ)器和處理資源。開發(fā)了可變長(zhǎng)度編碼/解碼的眾多變型。算術(shù)編碼是另一種公知的壓縮技術(shù)。算術(shù)編碼有時(shí)在編碼一給定輸入碼元的最優(yōu)位數(shù)是分?jǐn)?shù)位數(shù)的應(yīng)用中使用,以及在某些個(gè)別的輸入碼元中存在統(tǒng)計(jì)相關(guān)的情況下使用。算術(shù)編碼一般涉及將輸入序列表示為給定范圍內(nèi)的單個(gè)數(shù)字。通常,該數(shù)字是0和1之間的分?jǐn)?shù)。輸人序列中的碼元與占據(jù)0和1之間的控件部分的范圍相關(guān)聯(lián)。范圍是基于特定碼元出現(xiàn)在輸入序列中的概率來(lái)計(jì)算的。用于表示輸入序列的分?jǐn)?shù)參考范圍來(lái)構(gòu)造。因此,輸入碼元的概率分布在算術(shù)編碼方案中是重要的。.在基于上下文的算術(shù)編碼中,將輸入碼元的不同概率分布與不同上下文相關(guān)聯(lián)。用于編碼輸入序列的概率分布在上下文改變時(shí)改變。上下文可通過(guò)測(cè)量預(yù)期會(huì)影響特定輸入碼元出現(xiàn)在輸入序列中的概率的不同因素來(lái)計(jì)算。給定壓縮和解壓對(duì)于媒體處理的重要性,壓縮和解壓是豐富開發(fā)的領(lǐng)域并不是令人驚奇的。然而,不論用于無(wú)損壓縮和解壓的現(xiàn)有技術(shù)和系統(tǒng)有什么優(yōu)點(diǎn),它們都沒(méi)有此處所描述的技術(shù)和系統(tǒng)的各種優(yōu)點(diǎn)。概述此處描述了用于在自適應(yīng)編碼和解碼中選擇性地使用多個(gè)熵模型的技術(shù)和工具。例如,選擇性地使用多個(gè)熵模型可顯著降低對(duì)多個(gè)分布/VLC表的資源使用。同時(shí),可獲得與使用多個(gè)分布/VLC表相關(guān)聯(lián)的大量編碼增益。根據(jù)第一組技術(shù)和工具,諸如編碼器或解碼器等工具對(duì)碼元從包括多個(gè)熵模型的第一模型集中選擇一熵模型。該第一模型集的多個(gè)熵模型中的每一個(gè)包括用于切換到包括一個(gè)或多個(gè)熵模型的第二模型集的模型切換點(diǎn)。該工具使用所選的熵模型來(lái)處理碼元,并輸出處理的結(jié)果。該第二模型集的一個(gè)或多個(gè)熵模型中的每一個(gè)本身可包括用于切換到另一模型集的模型切換點(diǎn)。此外,該第一模型集的多個(gè)熵模型中的每一個(gè)還可包括用于切換到另一模型集的第二模型切換點(diǎn)。更一般地,第一模型集的多個(gè)熵模型中的每一個(gè)可包括用于切換到其它模型集(其它模型集中的每一模型集本身包括零個(gè)或多個(gè)熵模型)的零個(gè)或多個(gè)模型切換點(diǎn)。以遞歸的方式,對(duì)其它模型集的一給定模型集,該模型集的熵模型可包括用于切換到另外的其它模型集的零個(gè)或多個(gè)模型切換點(diǎn),依此類推。根據(jù)第二組技術(shù)和工具,一系統(tǒng)生成熵模型。該系統(tǒng)根據(jù)第一成本度量(諸如均方誤差)來(lái)聚集概率分布,得到初步聚類(cluster)。該系統(tǒng)根據(jù)不同于第一成本度量的第二成本度量(諸如相對(duì)熵)來(lái)細(xì)化該初步聚類,得到最終聚類。該系統(tǒng)然后至少部分地基于該最終聚類來(lái)設(shè)置熵模型。根據(jù)第三組技術(shù)和工具,一系統(tǒng)獲得碼元值的概率分布。該系統(tǒng)生成熵模型。如此,該系統(tǒng)將多個(gè)較不可能的碼元值約束為具有跨概率分布的公共條件分布,而不對(duì)較有可能的碼元值進(jìn)行這樣的約束。參考附圖閱讀以下詳細(xì)描述,將更清楚本發(fā)明的前述和其它目的、特征和優(yōu)點(diǎn)。附圖簡(jiǎn)述圖1是可結(jié)合來(lái)實(shí)現(xiàn)所描述的各實(shí)施例的通用操作環(huán)境的框圖。圖2、3、4、5、6和7是可結(jié)合來(lái)實(shí)現(xiàn)所描述的各實(shí)施例的通用編碼器和/或解碼器的框圖。圖8a和8b分別是示出多聲道音頻信號(hào)和相應(yīng)的窗配置的圖表。圖9和10分別是示出帶有時(shí)間噪聲整形的編碼器和解碼器的框圖。圖11和12分別是示出帶有對(duì)比特率減小的系數(shù)預(yù)測(cè)的編碼器和解碼器的框圖。圖13和14分別是示出用于量化的頻譜系數(shù)的編碼和解碼中的系數(shù)預(yù)測(cè)的的技術(shù)的流程圖。圖15a和15b分別是示出時(shí)域中的周期性音頻信號(hào)和相應(yīng)的頻譜系數(shù)的圖表。圖16和17分別是示出帶有系數(shù)重排的編碼器和解碼器的框圖。圖18a到18c是示出用于在熵編碼前重排頻譜系數(shù)的技術(shù)的流程圖。圖19a到19c是示出用于在熵解碼之后重排頻譜系數(shù)的技術(shù)的流程圖。圖20是示出在重排之后的圖15b的頻譜系數(shù)的圖表。圖21是示出由于對(duì)示例音頻文件的每一子幀進(jìn)行系數(shù)重排而得到的編碼增益的圖表。圖22是示出分層組織的熵模型的圖示。圖23是示出用于碼元值的近似分布的哈夫曼碼的圖表。圖24和25是示出用于聚集概率分布的訓(xùn)練向量的技術(shù)的流程圖。圖26是示出用于以對(duì)多個(gè)熵模型的選擇性使用來(lái)進(jìn)行編碼的技術(shù)的流程圖。圖27是示出用于以對(duì)多個(gè)熵模型的選擇性使用來(lái)進(jìn)行解碼的技術(shù)的流程圖。詳細(xì)描述描述了用于熵編碼/解碼和相關(guān)聯(lián)的處理的各種技術(shù)和工具。這些技術(shù)和工具便于即使以非常低的比特率來(lái)創(chuàng)建、分發(fā)和回放高質(zhì)量音頻內(nèi)容。此處描述的各種技術(shù)和工具可獨(dú)立使用。某些技術(shù)和工具可組合使用(例如,在組合的編碼和/或解碼過(guò)程的不同階段中)。以下參考處理動(dòng)作的流程圖描述了各種技術(shù)。流程圖中所述的各種處理動(dòng)作可被合并成較少的動(dòng)作后被分離成更多動(dòng)作。為了簡(jiǎn)明起見,特定流程圖中所述的動(dòng)作與別處描述的動(dòng)作之間的關(guān)系通常不示出。在許多情況下,流程圖中的動(dòng)作可被重排。I.用于編碼器和/或解碼器的示例操作環(huán)境圖l示出了其中可實(shí)現(xiàn)幾個(gè)所描述的實(shí)施例的合適的計(jì)算環(huán)境(100)的通用的示例。計(jì)算環(huán)境(100)并不對(duì)使用范圍或功能提出任何局限,因?yàn)樗枋龅募夹g(shù)和工具可在不同的通用或?qū)S糜?jì)算環(huán)境中實(shí)現(xiàn)。參考圖1,計(jì)算環(huán)境(100)包括至少一個(gè)處理單元(110)和存儲(chǔ)器(120)。在圖1中,這一最基本的配置(130)被包括在虛線內(nèi)。處理單元(110)執(zhí)行計(jì)算機(jī)可執(zhí)行指令,并且可以是真實(shí)或虛擬處理器。在多處理系統(tǒng)中,多個(gè)處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行指令以提高處理能力。存儲(chǔ)器(120)可以是易失性存儲(chǔ)器(例如,寄存器、高速緩存、RAM)、非易失性存儲(chǔ)器(例如,ROM、EEPROM、閃存等)或兩者的某種組合。存儲(chǔ)器(120)儲(chǔ)存實(shí)現(xiàn)使用此處所描述的一種或多種技術(shù)的編碼器和/或解碼器的軟件(180)。計(jì)算環(huán)境可具有附加特征。例如,計(jì)算環(huán)境(100)包括存儲(chǔ)(140)、一個(gè)或多個(gè)輸入設(shè)備(150)、一個(gè)或多個(gè)輸出設(shè)備(160)以及一個(gè)或多個(gè)通信連接(170)。諸如總線、控制器或網(wǎng)絡(luò)等互連機(jī)制(未示出)將計(jì)算環(huán)境(100)的各組件互連。通常,操作系統(tǒng)軟件(未示出)為在計(jì)算環(huán)境(100)中執(zhí)行的其它軟件提供了操作環(huán)境,并協(xié)調(diào)計(jì)算環(huán)境(100)的各組件的活動(dòng)。存儲(chǔ)(140)可以是可移動(dòng)或不可移動(dòng)的,并包括磁盤、磁帶或磁帶盒、CD-ROM、DVD或可用于儲(chǔ)存信息并可在計(jì)算環(huán)境(100)內(nèi)訪問(wèn)的任何其它介質(zhì)。存儲(chǔ)(140)儲(chǔ)存用于軟件(180)的指令。輸入設(shè)備(150)可以是諸如鍵盤、鼠標(biāo)、筆或跟蹤球的觸摸輸入設(shè)備、語(yǔ)音輸入設(shè)備、掃描設(shè)備或向計(jì)算環(huán)境(100)提供輸入的另一設(shè)備。對(duì)于音頻或視頻編碼,輸入設(shè)備(150)可以是話筒、聲卡、顯卡、電視調(diào)諧卡或接受模擬或數(shù)字形式的音頻輸入的類似設(shè)備、或?qū)⒁纛l或視頻樣本讀入計(jì)算環(huán)境(100)的CD-ROM或CD-RW。輸出設(shè)備(160)可以是顯示器、打印機(jī)、CD刻錄機(jī)或提供來(lái)自計(jì)算環(huán)境(100)的輸出的另一設(shè)備。通信連接(170)允許在通信介質(zhì)上與另一計(jì)算實(shí)體的通信。通信介質(zhì)在已調(diào)制數(shù)據(jù)信號(hào)中傳輸諸如計(jì)算機(jī)可執(zhí)行指令、音頻或視頻輸入或輸出、或其它數(shù)據(jù)等信息。己調(diào)制數(shù)據(jù)信號(hào)是其一個(gè)或多個(gè)特性以對(duì)信號(hào)中的信息編碼的方式來(lái)設(shè)定或更改的信號(hào)。作為示例而非局限,通信介質(zhì)包括用電、光、RF、紅外、聲學(xué)或其它載體實(shí)現(xiàn)的有線或無(wú)線技術(shù)。該技術(shù)和工具可在計(jì)算機(jī)可讀介質(zhì)的一般上下文中描述。計(jì)算機(jī)可讀介質(zhì)可以是可在計(jì)算環(huán)境內(nèi)訪問(wèn)的任何可用介質(zhì)。作為示例而非局限,對(duì)于計(jì)算環(huán)境(100),計(jì)算機(jī)可讀介質(zhì)可包括存儲(chǔ)器(120)、存儲(chǔ)(140)、通信介質(zhì)和以上任一種的組合。該技術(shù)和工具可在諸如程序模塊中所包括的在目標(biāo)真實(shí)或虛擬處理器上的計(jì)算環(huán)境中執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫(kù)、類、組件、數(shù)據(jù)結(jié)構(gòu)等。程序模塊的功能可如各種實(shí)施例中所需地被組合或在程序模塊之間拆分。用于程序模塊的計(jì)算機(jī)可執(zhí)行指令可在本地或分布式計(jì)算環(huán)境中執(zhí)行。出于表示的目的,詳細(xì)描述使用了如"信號(hào)"、"確定"和"應(yīng)用"等術(shù)語(yǔ)來(lái)描述計(jì)算環(huán)境中的計(jì)算機(jī)操作。這些術(shù)語(yǔ)是對(duì)由計(jì)算機(jī)執(zhí)行的操作的高級(jí)抽象,并且不應(yīng)與人類執(zhí)行的動(dòng)作混淆。對(duì)應(yīng)于這些術(shù)語(yǔ)的實(shí)際計(jì)算機(jī)操作可取決于實(shí)現(xiàn)而變化。II.示例編碼器和解碼器圖2示出了其中可實(shí)現(xiàn)一個(gè)或多個(gè)所描述的實(shí)施例的第一音頻編碼器(200)。編碼器(200)是基于變換的知覺(jué)音頻編碼器(200)。圖3示出了對(duì)應(yīng)的音頻解碼器(300)。圖4示出了其中可實(shí)現(xiàn)一個(gè)或多個(gè)所描述的實(shí)施例的第二音頻編碼器(400)。編碼器(400)也是基于變換的知覺(jué)音頻編碼器,但是編碼器(400)包括用于處理多聲道音頻的附加模塊。圖5示出了對(duì)應(yīng)的音頻解碼器(500)。圖6示出了其中可實(shí)現(xiàn)一個(gè)或多個(gè)所描述的實(shí)施例的更通用的媒體編碼器(600)。圖7示出了對(duì)應(yīng)的媒體解碼器(700)。盡管圖2到7所示的系統(tǒng)是通用的,但其各自都具有可在真實(shí)系統(tǒng)中找到的特性。在任何情況下,在編碼器和解碼器內(nèi)的模塊之間示出的關(guān)系指示了編碼器和解碼器中的信息流;為簡(jiǎn)明起見未示出其它關(guān)系。取決于所需的實(shí)現(xiàn)和壓縮類型,編碼器或解碼器的模塊可被添加、省略、拆分成多個(gè)模塊、與其它模塊組合、和/或用類似模塊來(lái)替換。在替換實(shí)施例中,根據(jù)一個(gè)或多個(gè)所描述的實(shí)施例,具有不同模塊和/或其它配置的編碼器/解碼器處理音頻數(shù)據(jù)或某一其它類型的數(shù)據(jù)。例如,圖2到7中處理頻譜系數(shù)的模塊可用于僅處理基帶或基頻子范圍(諸如較低頻率)中的系數(shù),而不同的模塊(未示出)處理其它頻率子范圍(諸如較高頻率)中的頻譜系數(shù)。A.第一音頻編碼器總體上,編碼器(200)以某一采樣深度和速率接收輸入音頻樣本(205)的時(shí)間序列。輸入音頻樣本(205)是針對(duì)多聲道音頻(例如,立體聲)或單聲道音頻的。編碼器(200)壓縮音頻樣本(205),并多路復(fù)用由編碼器(200)的各模塊產(chǎn)生的信息以輸出諸如WMA格式、高級(jí)流格式("ASF")或其它格式等格式的比特流(295)。頻率變換器(210)接收音頻樣本(205),并將其轉(zhuǎn)換成頻譜域中的數(shù)據(jù)。例如,頻率變換器(210)將音頻樣本(205)拆分成塊,塊可以是可變的大小以允許可變時(shí)間分辨率。塊可重疊以減小塊之間否則會(huì)由稍后的量化引入的可察覺(jué)的不連續(xù)性。頻率變換器(210)將時(shí)變調(diào)制重疊變換("MLT")、調(diào)制DCT("MDCT")、MLT或DCT的某一其它變體、或某種其它類型的調(diào)制或非調(diào)制、重疊或非重疊頻率變換應(yīng)用于塊,或使用子帶或小波編碼。頻率變換器(210)向多路復(fù)用器("MUX")(280)輸出頻譜系數(shù)數(shù)據(jù)塊,并輸出諸如塊大小等輔助信息。對(duì)于多聲道音頻數(shù)據(jù),多聲道變換器(220)可將多個(gè)原始的、獨(dú)立編碼的聲道轉(zhuǎn)換成聯(lián)合編碼的聲道?;蛘?,多聲道變換器(220)可使左和右聲道作為獨(dú)編碼的聲道通過(guò)。多聲道變換器(220)向MUX(280)產(chǎn)生指示所使用的聲道模式的輔助信息。編碼器(200)可在多聲道變換之后向音頻數(shù)據(jù)塊應(yīng)用多聲道重新矩陣化。知覺(jué)建模器(230)對(duì)人類聽覺(jué)系統(tǒng)的特性建模以改善對(duì)給定比特率的重構(gòu)音頻信號(hào)的察覺(jué)質(zhì)量。知覺(jué)建模器(230)使用各種聽覺(jué)模型中的任一種。知覺(jué)建模器(230)輸出加權(quán)器(240)用于對(duì)音頻數(shù)據(jù)中的噪聲整形以降低噪聲的可聽見性的信息。例如,使用各種技術(shù)中的任一種,加權(quán)器(240)基于所接收到的信息生成用于量化矩陣(有時(shí)稱為掩碼)的加權(quán)因子(有時(shí)稱為縮放因子)。加權(quán)器(240)然后向從多聲道變換器(220)接收到的數(shù)據(jù)應(yīng)用加權(quán)因子??蔀榱烁行У谋硎径鴫嚎s一組加權(quán)因子。量化器(250)量化加權(quán)器(240)的輸出,從而向熵編碼器(260)產(chǎn)生量化的系數(shù)數(shù)據(jù),并向MUX(280)產(chǎn)生包括量化步長(zhǎng)的輔助信息。在圖2中,量化器(250)是自適應(yīng)的、均勻的標(biāo)量量化器。量化器(250)向每一頻譜數(shù)據(jù)應(yīng)用相同的量化步長(zhǎng),但是量化步長(zhǎng)本身可在量化循環(huán)的各個(gè)迭代之間變化以影響熵編碼器(260)輸出的比特率。其它種類的量化有非均勻、向量量化和/或非自適應(yīng)量化。熵編碼器(260)無(wú)損地壓縮從量化器(250)接收到的量化的系數(shù)數(shù)據(jù),例如執(zhí)行行程級(jí)別編碼和向量可變長(zhǎng)度編碼。某些實(shí)施例中用于熵編碼(可能包括預(yù)處理)的各種機(jī)制在第III到第V節(jié)中詳細(xì)描述?;蛘?,熵編碼器(260)使用某種其它形式或組合的熵編碼機(jī)制。熵編碼器(260)可計(jì)算編碼音頻信息所花費(fèi)的比特?cái)?shù)并將該信息傳遞到速率/質(zhì)量控制器(270)??刂破?270)與量化器(250)—起工作以調(diào)節(jié)編碼器(200)的輸出的比特率和/或質(zhì)量??刂破?270)以滿足比特率和質(zhì)量約束為目標(biāo)向量化器(250)輸出量化步長(zhǎng)。另外,編碼器(200)可向音頻數(shù)據(jù)塊應(yīng)用噪聲替代和/或頻帶截?cái)?。MUX(280)多路復(fù)用從音頻編碼器(200)的其它模塊接收到的輔助信息以及從熵編碼器(260)接收到的經(jīng)熵編碼的數(shù)據(jù)。MUX(280)可包括儲(chǔ)存要由編碼器(200)輸出的比特流(295)的虛擬緩沖器。B.第一音頻解碼器總體上,解碼器(300)接收包括經(jīng)熵編碼的數(shù)據(jù)以及輔助信息的壓縮音頻信息的比特流(305),從該比特流中,解碼器(300)重構(gòu)音頻樣本(395)。多路分解器("DEMUX")(310)解析比特流(305)中的信息,并將該信息發(fā)送到解碼器(300)的各模塊。DEMUX(310)包括一個(gè)或多個(gè)緩沖器補(bǔ)償由于音頻復(fù)雜性的波動(dòng)、網(wǎng)絡(luò)抖動(dòng)和/或其它因素而產(chǎn)生的比特率的短期變化。熵解碼器(320)無(wú)損地解壓從DEMUX(310)接收到的熵代碼,從而產(chǎn)生經(jīng)量化的頻譜系數(shù)數(shù)據(jù)。熵解碼器(320)通常應(yīng)用編碼器中使用的熵編碼技術(shù)的反過(guò)程。某些實(shí)施例中用于熵解碼的各種機(jī)制在第III到第V節(jié)中詳細(xì)描述。反量化器(330)從DEMUX(310)接收量化步長(zhǎng),并從熵解碼器(320)接收經(jīng)量化的頻譜系數(shù)數(shù)據(jù)。反量化器(330)向經(jīng)量化的頻率系數(shù)數(shù)據(jù)應(yīng)用量化步長(zhǎng),以部分地重構(gòu)頻率系數(shù)數(shù)據(jù),或以其它方式執(zhí)行反量化。噪聲生成器(340)從DEMUX(310)接收指示數(shù)據(jù)塊中的哪些頻帶進(jìn)行了噪聲替代以及用于該形式的噪聲的任何參數(shù)的信息。噪聲生成器(340)生成用于所指示的頻帶的模式,并將該信息傳遞給反加權(quán)器(350)。反加權(quán)器(350)從DEMUX(310)接收加權(quán)因子,從噪聲生成器(340)接收任何經(jīng)噪聲替代的頻帶,并從反量化器(330)接收部分重構(gòu)的頻率系數(shù)數(shù)據(jù)。在必要時(shí),反加權(quán)器(350)解壓加權(quán)因子。反加權(quán)器(350)將加權(quán)因子應(yīng)用于對(duì)未經(jīng)噪聲替代的頻帶的部分重構(gòu)的頻率系數(shù)數(shù)據(jù)。反加權(quán)器(350)然后對(duì)經(jīng)噪聲替代的頻帶將從噪聲生成器(340)接收到的噪聲模式相加。多聲道反變換器(360)從反加權(quán)器(350)接收重構(gòu)的頻譜系數(shù)數(shù)據(jù),并從DEMUX(310)接收聲道模式信息。如果多聲道音頻是獨(dú)立編碼的聲道,則多聲道反變換器(360)使該聲道通過(guò)。如果多聲道數(shù)據(jù)是聯(lián)合編碼的聲道,則多聲道反變換器(360)將數(shù)據(jù)轉(zhuǎn)換成獨(dú)立編碼的聲道。頻率反變換器(370)接收由多聲道變換器(360)輸出的頻譜系數(shù)數(shù)據(jù)以及來(lái)自DEMUX(310)的諸如塊大小等輔助信息。頻率反變換器(370)應(yīng)用編碼器中所使用的頻率變換的反過(guò)程,并輸出重構(gòu)的音頻樣本(395)的塊。C.第二音頻編碼器參考圖4,編碼器(400)以某一采樣深度和速率接收輸入音頻樣本(405)的時(shí)間序列。輸入音頻樣本(405)是針對(duì)多聲道音頻(例如,立體聲、環(huán)繞)或單聲道音頻的。編碼器(400)壓縮音頻樣本(405)并多路復(fù)用由編碼器(400)的各模塊產(chǎn)生的信息,以輸出諸如WMAPro格式或其它格式等格式的比特流(495)。編碼器(400)在用于音頻樣本(405)的多個(gè)編碼模式之間選擇。在圖4中,編碼器(400)在混合/純無(wú)損編碼模式和有損編碼模式之間切換。無(wú)損編碼模式包括混合/純無(wú)損編碼器(472),且通常用于高質(zhì)量(以及高比特率)壓縮。有損編碼模式包括諸如加權(quán)器(442)和量化器(460)等組件,且通常用于可調(diào)整質(zhì)量(以及受控比特率)壓縮。選擇決策取決于用戶輸入或其它準(zhǔn)則。對(duì)于多聲道音頻數(shù)據(jù)的有損編碼,多聲道預(yù)處理器(410)可任選地對(duì)時(shí)域音頻樣本(405)重新矩陣化。在某些實(shí)施例中,多聲道預(yù)處理器(410)選擇性地對(duì)音頻樣本(405)重新矩陣化以丟棄一個(gè)或多個(gè)己編碼聲道或增加編碼器(400)中的聲道間相關(guān),但仍允許解碼器(500)中的(某種形式的)重構(gòu)。多聲道預(yù)處理器(410)可將諸如用于多聲道后處理的指令等輔助信息發(fā)送到MUX(490)。加窗模塊(420)將音頻輸入樣本(405)的幀劃分成子幀塊(窗)。窗可具有時(shí)變大小和窗整形函數(shù)。當(dāng)編碼器(400)使用有損編碼時(shí),可變大小窗允許可變時(shí)間分辨率。加窗模塊(420)向MUX(490)輸出劃分的數(shù)據(jù)塊,并輸出諸如塊大小等輔助信息。在圖4中,小塊配置器(422)在每一聲道的基礎(chǔ)上劃分多聲道音頻的幀。小塊配置器(422)在質(zhì)量/比特率允許的情況下獨(dú)立地劃分幀中的每一聲道。例如,小塊配置器(422)將時(shí)間上相同位置的相同大小的窗歸組為小塊。頻率變換器(430)接收音頻樣本,并將其轉(zhuǎn)換成頻域中的數(shù)據(jù),從而應(yīng)用了如上對(duì)圖2的頻率變換器(210)所述的變換。頻率變換器(430)向加權(quán)器(442)輸出頻譜系數(shù)數(shù)據(jù)塊,并向MUX(490)輸出諸如塊大小等輔助信息。頻率變換器(430)向知覺(jué)建模器(440)輸出頻率系數(shù)和輔助信息兩者。知覺(jué)建模器(440)對(duì)人類聽覺(jué)系統(tǒng)的特性建模,從而根據(jù)聽覺(jué)模型來(lái)處理音頻數(shù)據(jù)。加權(quán)器(442)基于從知覺(jué)建模器(440)接收到的信息生成用于量化矩陣的加權(quán)因子。加權(quán)器(442)向從頻率變換器(430)接收到的數(shù)據(jù)應(yīng)用加權(quán)因子。加權(quán)器(442)向MUX(490)輸出諸如量化矩陣和聲道加權(quán)因子等輔助信息,并且量化矩陣可以被壓縮。對(duì)于多聲道音頻數(shù)據(jù),多聲道變換器(450)可應(yīng)用多聲道變換。例如,多聲道變換器(450)向小塊中的部分但不是全部聲道和/或量化頻帶選擇性地且靈活地應(yīng)用多聲道變換。多聲道變換器(450)選擇性地使用預(yù)定義的矩陣或自定義矩陣,并向自定義矩陣應(yīng)用有效壓縮。多聲道變換器(450)向MUX(490)產(chǎn)生指示例如所使用的多聲道變換和經(jīng)多聲道變換的小塊部分的輔助信息量化器(460)量化多聲道變換器(450)的輸出,從而向熵編碼器(470)產(chǎn)生經(jīng)量化的系數(shù)數(shù)據(jù),并向MUX(490)產(chǎn)生包括量化步長(zhǎng)的輔助信息。在圖4中,量化器(460)是對(duì)每一小塊計(jì)算一量化因子的自適應(yīng)、均勻、標(biāo)量量化器,但是量化器(460)也可執(zhí)行某種其它量化。熵編碼器(470)—般如上參考圖2的熵編碼器(260)所述地?zé)o損地壓縮從量化器(460)接收到的經(jīng)量化的系數(shù)數(shù)據(jù)。某些實(shí)施例中用于熵編碼(可能包括預(yù)處理)的各種機(jī)制在第III到第V節(jié)中詳細(xì)描述??刂破?480)與量化器(460)—起工作以調(diào)節(jié)編碼器(400)的輸出的比特率和/或質(zhì)量??刂破?480)以滿足質(zhì)量和/或比特率約束為目標(biāo)向量化器(460)輸出量化因子?;旌?純無(wú)損編碼器(472)和相關(guān)聯(lián)的熵編碼器(474)壓縮用于混合/純無(wú)損編碼模式的音頻數(shù)據(jù)。編碼器(400)對(duì)整個(gè)序列使用混合/純無(wú)損編碼模式,或在逐幀、逐塊、逐小塊或其它基礎(chǔ)上在編碼模式之間切換。MUX(490)多路復(fù)用從音頻編碼器(400)的其它模塊接收到的輔助信息以及從熵編碼器(470、474)接收到的經(jīng)熵編碼的數(shù)據(jù)。MUX(490)包括用于速率控制或其它目的的一個(gè)或多個(gè)緩沖器。D.第二音頻解碼器參考圖5,第二音頻解碼器(500)接收壓縮音頻信息的比特流(505)。比特流(505)包括經(jīng)熵編碼的數(shù)據(jù)以及輔助信息,解碼器(500)從這些數(shù)據(jù)和信息中重構(gòu)音頻樣本(595)。DEMUX(510)解析比特流(505)中的信息并將該信息發(fā)送到解碼器(500)的其它模塊。DEMUX(510)包括一個(gè)或多個(gè)緩沖器以補(bǔ)償由于音頻復(fù)雜性波動(dòng)、網(wǎng)絡(luò)抖動(dòng)和/或其它因素而產(chǎn)生的比特率短期變化。熵解碼器(520)無(wú)損地解壓從DEMUX(510)接收到的熵代碼,通常應(yīng)用編碼器(400)中使用的熵編碼技術(shù)的反過(guò)程。當(dāng)解碼以有損編碼模式壓縮的數(shù)據(jù)時(shí),熵解碼器(520)產(chǎn)生經(jīng)量化的頻譜系數(shù)數(shù)據(jù)。某些實(shí)施例中用于熵解碼的各種機(jī)制在第III和第V節(jié)中詳細(xì)描述?;旌?純無(wú)損解碼器(522)和相關(guān)聯(lián)的熵解碼器(520)無(wú)損地解壓用于混合/純無(wú)損編碼模式的無(wú)損編碼音頻數(shù)據(jù)。小塊配置解碼器(530)從DEMUX(590)接收指示幀的小塊的模式的信息,并在必要時(shí)對(duì)其解碼。小塊模式信息可被熵編碼或以其它方式參數(shù)化。小塊配置解碼器(530)然后將小塊模式信息傳遞到解碼器(500)的各其它模塊。多聲道反變換器(540)從熵解碼器(520)接收經(jīng)量化的頻譜系數(shù)數(shù)據(jù),并從小塊配置解碼器(530)接收小塊模式信息,并從DEMUX(510)接收指示例如所使用的多聲道變換和已變換的小塊部分的輔助信息。使用該信息,多聲道反變換器(540)在必要時(shí)解壓變化矩陣,并向音頻數(shù)據(jù)選擇性地且靈活地應(yīng)用一個(gè)或多個(gè)多聲道反變換。反量化器/加權(quán)器(550)從DEMUX(510)接收小塊和聲道量化因子以及量化矩陣,并從多聲道反變換器(540)接收經(jīng)量化的頻譜系數(shù)數(shù)據(jù)。反量化器/加權(quán)器(550)在必要時(shí)解壓接收到的量化因子/矩陣信息,然后執(zhí)行反量化和加權(quán)。頻率反變換器(560)接收由反量化器/加權(quán)器(550)輸出的頻譜系數(shù)數(shù)據(jù),以及來(lái)自DEMUX(510)的輔助信息和來(lái)自小塊配置解碼器(530)的小塊模式信息。頻率反變換器(570)應(yīng)用編碼器中使用的頻率變換的反過(guò)程,并向重疊器/累加器(570)輸出各塊。除了從小塊配置解碼器(530)接收小塊模式信息之外,重疊器/累加器(570)還從頻率反變換器(560)和/或混合/純無(wú)損解碼器(522)接收已解碼信息。重疊器/累加器(570)在必要時(shí)重疊并累加音頻數(shù)據(jù),并交織用其它模式編碼的幀或其它音頻數(shù)據(jù)序列。多聲道后處理器(580)可任選地重新矩陣化由重疊器/累加器(570)輸出的時(shí)域音頻樣本。對(duì)于受比特流控制的后處理,后處理變換矩陣隨時(shí)間變化,且在比特流(505)中用信號(hào)表示或包括在其中。E.通用媒體編碼器圖6示出了編碼音頻、視頻或其它媒體內(nèi)容的通用媒體編碼器(600)的各部分。為簡(jiǎn)明起見,未示出取決于媒體內(nèi)容的類型的編碼器(600)的眾多模塊以及輔助信息類型。與分別在圖2和4中所示的編碼器(200、400)—樣,編碼器(600)是基于變換的,因?yàn)閳D6所示的輸入是未量化的頻譜系數(shù)(605)。然而,在某些實(shí)施例中,此處所描述的熵編碼機(jī)制的一種或多種(例如,第V節(jié)中描述的機(jī)制)是對(duì)某種其它輸入執(zhí)行的。量化器(620)量化系數(shù)(605),從而產(chǎn)生經(jīng)量化的系數(shù)數(shù)據(jù)。例如,量化器(620)是自適應(yīng)、均勻、標(biāo)量量化器或某種其它量化器。熵編碼處理器(640)在熵編碼之前選擇性地執(zhí)行預(yù)處理。例如,預(yù)處理器(640)對(duì)經(jīng)量化的頻譜系數(shù)執(zhí)行系數(shù)預(yù)測(cè),如第III節(jié)中所描述的。或者,預(yù)處理器(640)重排經(jīng)量化的頻譜系數(shù),如第IV節(jié)中所描述的?;蛘?,預(yù)處理器(640)執(zhí)行某種其它類型的預(yù)處理。除了預(yù)處理的系數(shù)之外,預(yù)處理器(640)向輸出比特流(695)輸出描述該預(yù)處理的輔助信息。例如,輔助信息包括在系數(shù)預(yù)測(cè)中使用的預(yù)測(cè)因子,如在第III節(jié)中所描述的。或者,輔助信息包括在重排經(jīng)量化的頻譜系數(shù)時(shí)使用的信息,如在第IV節(jié)中所描述的。熵編碼器(660)無(wú)損地壓縮經(jīng)量化的系數(shù)數(shù)據(jù),例如執(zhí)行行程級(jí)別編碼和向量可變長(zhǎng)度編碼。第V節(jié)描述了用于自適應(yīng)熵編碼的機(jī)制。或者,熵編碼器(660)使用某種其它形式或組合的熵編碼機(jī)制。盡管圖6簡(jiǎn)單地示出了向熵編碼器(660)提供輸入并在沒(méi)有來(lái)自熵編碼器(660)的反饋的情況下執(zhí)行預(yù)處理的預(yù)處理器(640),但是替換地,熵編碼器(660)向預(yù)處理器(640)提供反饋,預(yù)處理器(640)使用該反饋來(lái)調(diào)整預(yù)處理。例如,預(yù)處理器(640)基于來(lái)自熵編碼器(660)的反饋調(diào)整系數(shù)重排,使得對(duì)熵編碼器(660)的輸入更好地適合熵編碼模型。F.通用媒體解碼器圖7示出了解碼音頻、視頻或其它媒體內(nèi)容的通用媒體解碼器(700)的各部分。為簡(jiǎn)明起見,未示出取決于媒體內(nèi)容類型的解碼器(700)的眾多模塊以及輔助信息類型。與分別在圖3和5中示出的解碼器(300、500)—樣,解碼器(700)是基于變換的,因?yàn)閳D7所示的輸出是重構(gòu)的頻譜系數(shù)(705)。然而,在某些實(shí)施例中,此處所描述的熵解碼機(jī)制中的一種或多種(例如,第V節(jié)中所描述的機(jī)制)是對(duì)某種其它輸出執(zhí)行的。熵解碼器(760)無(wú)損地解壓經(jīng)量化的系數(shù)數(shù)據(jù),例如執(zhí)行行程級(jí)別解碼和向量可變長(zhǎng)度解碼。第V節(jié)描述了用于自適應(yīng)熵解碼的機(jī)制?;蛘撸亟獯a器(760)使用某種其它形式或組合的熵解碼機(jī)制。熵解碼后處理器(740)在熵解碼之后選擇性地執(zhí)行后處理。例如,后處理器(740)對(duì)經(jīng)量化的頻譜系數(shù)執(zhí)行系數(shù)預(yù)測(cè),如在第III節(jié)中所描述的?;蛘?,后處理器(740)重排經(jīng)量化的頻譜系數(shù),如在第IV節(jié)中所描述的。或者,后處理器(740)執(zhí)行某種其它類型的后處理。除經(jīng)熵解碼的系數(shù)之外,后處理器(740)從比特流(795)中接收描述該后處理器的輔助信息。例如,輔助信息包括在系數(shù)預(yù)測(cè)中使用的預(yù)測(cè)因子,如在第III節(jié)中所描述的?;蛘?,輔助信息包括在重排經(jīng)量化的頻譜系數(shù)時(shí)使用的信息,如在第IV節(jié)中所描述的。反量化器(720)執(zhí)行反量化,從而產(chǎn)生重構(gòu)的系數(shù)(705)數(shù)據(jù)。例如,反量化器(720)是自適應(yīng)、均勻、標(biāo)量反量化器或某種其它量化器。III.在頻譜域中預(yù)測(cè)系數(shù)用于編碼和解碼音頻編碼器通常使用變換編碼,接著使用量化和熵編碼來(lái)實(shí)現(xiàn)壓縮。當(dāng)使用固定變換時(shí),對(duì)音頻信號(hào)的某些模式,在變換之后在相鄰系數(shù)之間仍留有相關(guān)。以下描述了利用這種相關(guān)來(lái)改進(jìn)編碼效率的各種技術(shù)和工具。具體地,在某些實(shí)施例中,諸如圖2、4或6所示的編碼器在編碼期間對(duì)經(jīng)量化的頻譜系數(shù)執(zhí)行系數(shù)預(yù)測(cè)。對(duì)應(yīng)的解碼器(諸如圖3、5或7所示的)在解碼期間對(duì)經(jīng)量化的頻譜系數(shù)執(zhí)行系數(shù)預(yù)測(cè)。A.示例問(wèn)題域在將音頻作為波形來(lái)壓縮的典型音頻編碼器中,輸入音頻信號(hào)是使用可變窗大小MDCT或具有可變大小窗的其它變換來(lái)變換的。例如,假定對(duì)圖8a所示的立體聲音頻的加窗分析得到圖8b所示的窗配置。一般而言,這一窗配置減少了解碼的信號(hào)中的前回聲(pre-echo)和后回聲(post-echo)(通過(guò)對(duì)過(guò)渡段使用較短的窗),同時(shí)促進(jìn)了總體編碼效率(通過(guò)對(duì)其它段使用較長(zhǎng)的窗)。加窗分析的一個(gè)目的是標(biāo)識(shí)窗邊界,使得任何給定窗內(nèi)的信號(hào)大部分都是固定的。在聲道變換之前或之后,量化頻譜系數(shù)。常規(guī)上,假定子幀或其它窗的頻譜系數(shù)之間沒(méi)有任何線性相關(guān)。相反,假定頻譜系數(shù)通常具有某一較高階的統(tǒng)計(jì)相關(guān),這是編碼器在熵編碼期間試圖利用的統(tǒng)計(jì)相關(guān)。在實(shí)踐中,隱含在這一編碼中的若干假設(shè)在各種情況下并不成立。例如,對(duì)于某些類型和模式的音頻信號(hào),用于子幀或其它窗的頻譜系數(shù)并不一定是不相關(guān)的。出于許多與窗中的信號(hào)可以是非固定的(見下文)的相同原因,頻譜系數(shù)可顯示出線性相關(guān)。當(dāng)代的基于波形的編碼器無(wú)法在熵編碼期間利用這一相關(guān)。作為另一示例,當(dāng)向某些音頻信號(hào)應(yīng)用加窗分析時(shí),特定窗內(nèi)的信號(hào)不一定是固定的。如果輸入音頻隨時(shí)間有較大的變化(例如,對(duì)語(yǔ)音信號(hào)),則即使短窗也可能不足以隔離過(guò)渡段。或者,如果速率控制器中的緩沖器已滿,則控制器可能迫使編碼器使用較長(zhǎng)的窗來(lái)降低比特率,即使在其它情況下是使用較小的窗?;蛘?,如果過(guò)渡較慢,則加窗分析可能無(wú)法檢測(cè)到該過(guò)渡,從而不會(huì)引入較短的窗?;蛘?,加窗分析可能針對(duì)因每幀僅一個(gè)過(guò)渡而引入的前回聲進(jìn)行保護(hù),而沒(méi)有針對(duì)幀中的其它過(guò)渡進(jìn)行保護(hù)?;蛘撸皟?nèi)的信號(hào)可能出于某種其它原因而是不固定的。標(biāo)量因子可幫助控制失真的頻譜分布。然而,對(duì)于失真的時(shí)間分布,在頻譜上的簡(jiǎn)單量化引入了在完成的變換塊上恒定的失真,這可導(dǎo)致一幀的各時(shí)間段中的可聽見的失真。時(shí)間噪聲整形("TNS")是MPEG的某些變型中的一種技術(shù),該技術(shù)在頻域中使用可預(yù)測(cè)方法來(lái)隨時(shí)間對(duì)量化噪聲整形。采用TNS,編碼器向頻譜系數(shù)應(yīng)用預(yù)測(cè)濾波器,并量化經(jīng)濾波的信號(hào),以限制量化噪聲跨時(shí)間窗的拖尾效應(yīng)。圖9和IO分別示出了編碼器和解碼器中的TNS。參考圖9,編碼器計(jì)算未量化的頻譜系數(shù)(905)和作為兩個(gè)先前重構(gòu)的系數(shù)的組合的預(yù)測(cè)值之差。對(duì)于該組合,兩個(gè)重構(gòu)的、延時(shí)的系數(shù)(在延遲910和912中)各自乘以一預(yù)測(cè)因子(911、913)并加在一起。預(yù)測(cè)因子(911、913)被量化并被包括在比特流(995)中。量化器(970)量化該差值,并且熵編碼器(990)對(duì)經(jīng)量化的差值進(jìn)行熵編碼以在比特流(995)中輸出。反量化器(980)重構(gòu)該差值,并將其加到對(duì)系數(shù)(905)的預(yù)測(cè)值中。這得到系數(shù)的重構(gòu),它被緩沖在第一延遲(910)中,然后被緩沖在第二延遲(912)中,以對(duì)用于后一系數(shù)(905)的預(yù)測(cè)值做出貢獻(xiàn)。在對(duì)應(yīng)的解碼器中,熵解碼器(1090)對(duì)來(lái)自比特流(1095)的差值進(jìn)行熵解碼,并且反量化器(1080)對(duì)該差值進(jìn)行反量化。解碼器將該差值與一預(yù)測(cè)值組合以產(chǎn)生重構(gòu)的頻譜系數(shù)(1005),其中該預(yù)測(cè)值是兩個(gè)先前重構(gòu)的系數(shù)的組合。該組合的計(jì)算涉及從比特流(1095)中恢復(fù)的兩個(gè)延遲(1010、1012)和兩個(gè)預(yù)測(cè)因子(1011、1013)。重構(gòu)的頻譜系數(shù)(1005)被緩沖在第一延遲(1010)中,然后緩沖在第二延遲(1012)中,以對(duì)用于后一系數(shù)(1005)的預(yù)測(cè)值做出貢獻(xiàn)。MPEGAAC中的TNS允許向輸入信號(hào)的不同頻譜區(qū)域引用多達(dá)三種不同的無(wú)限沖激響應(yīng)濾波器(或預(yù)測(cè)器)。濾波器系數(shù)被量化并被包括在比特流中。即使MEPGAAC允許使用短窗,在短窗中也不使用TOS,因?yàn)轭A(yù)測(cè)器描述信息所需的總信息相對(duì)較大,從而導(dǎo)致用于頻譜值的位減少。由此,在MEPGAAC中僅對(duì)長(zhǎng)窗允許TNS,這限制了TNS的使用。同樣,如圖9和10中所示,TNS中的預(yù)測(cè)在未量化/重構(gòu)的域中發(fā)生。結(jié)果,解碼器必須交織反量化和預(yù)測(cè)(以及甚至可能熵解碼)的操作,導(dǎo)致復(fù)雜度增加。另外,對(duì)于未量化/重構(gòu)的域中的預(yù)測(cè),在MPEGAAC中將TNS操作指定為浮點(diǎn)運(yùn)算,這導(dǎo)致定點(diǎn)實(shí)現(xiàn)的困難。TNS預(yù)測(cè)器是二階預(yù)測(cè)器,它需要兩次乘法用于每一頻譜系數(shù)處的預(yù)測(cè)運(yùn)算。在編碼器側(cè),對(duì)有效預(yù)測(cè)器的設(shè)計(jì)可能是困難的,并且不穩(wěn)定的預(yù)測(cè)器可能是一個(gè)問(wèn)題。類似于圖9和IO所示的一種體系結(jié)構(gòu)可用于差分脈沖碼調(diào)制,其中編碼器計(jì)算時(shí)間樣本和預(yù)測(cè)值之差,且預(yù)測(cè)值基于預(yù)測(cè)因子以及緩沖的、經(jīng)反量化的時(shí)間樣本。預(yù)測(cè)通常使用細(xì)節(jié)預(yù)測(cè)器,它難以設(shè)計(jì)且通常不穩(wěn)定,并且需要大量的信號(hào)傳輸和重構(gòu)邏輯。此外,這種方案的壓縮效率不佳??偠灾枋隽丝捎上禂?shù)預(yù)測(cè)技術(shù)和工具來(lái)解決的幾個(gè)問(wèn)題。然而,不一定要應(yīng)用這種系數(shù)預(yù)測(cè)技術(shù)和工具來(lái)解決任何或全部這些問(wèn)題。B.用于系數(shù)預(yù)測(cè)的示例體系結(jié)構(gòu)在某些實(shí)施例中,編碼器在編碼期間對(duì)經(jīng)量化的頻譜系數(shù)執(zhí)行系數(shù)預(yù)測(cè),并且對(duì)應(yīng)的解碼器在解碼期間對(duì)經(jīng)量化的頻譜系數(shù)執(zhí)行系數(shù)預(yù)測(cè)。對(duì)于某些模式和類型的內(nèi)容,系數(shù)預(yù)測(cè)減少了頻譜系數(shù)中的冗余度以改進(jìn)隨后的熵編碼的效率。預(yù)測(cè)是可逆的一在解碼期間,系數(shù)預(yù)測(cè)(在熵解碼之后)是編碼器中的系數(shù)預(yù)測(cè)的鏡像。圖11示出了具有對(duì)經(jīng)量化的頻譜系數(shù)的預(yù)測(cè)的編碼器。例如,該編碼器是圖2或4中所示的編碼器的經(jīng)修改的形式,對(duì)其添加了計(jì)算預(yù)測(cè)值和差值的各級(jí)?;蛘撸摼幋a器是圖6所示的編碼器的經(jīng)修改的形式,其中系數(shù)預(yù)測(cè)作為熵編碼之前的預(yù)處理。參考圖11,編碼器計(jì)算經(jīng)量化的頻譜系數(shù)(1105)與預(yù)測(cè)值之差(也稱為預(yù)測(cè)殘留)。對(duì)于該預(yù)測(cè)值,將經(jīng)延時(shí)的經(jīng)量化的頻譜系數(shù)(在延遲1110)中乘以預(yù)測(cè)因子(1111)。預(yù)測(cè)因子(1111)作為輔助信息在比特流(1195)中用信號(hào)表示。熵編碼器(1190)對(duì)該差值進(jìn)行熵編碼以在比特流(1195)中輸出。經(jīng)量化的頻譜系數(shù).(1105)也被緩沖在第一延遲(1110)中用于計(jì)算用于后一經(jīng)量化的頻譜系數(shù)(1105)的預(yù)測(cè)值。圖12示出了具有對(duì)經(jīng)量化的頻譜系數(shù)的預(yù)測(cè)的對(duì)應(yīng)的解碼器。例如,該解碼器是圖3或5所示的解碼器的經(jīng)修改的形式,對(duì)其添加了計(jì)算預(yù)測(cè)值并將該預(yù)測(cè)值與差值相組合的各級(jí)?;蛘?,該解碼器是圖7所示的解碼器的經(jīng)修改的形式,其中系數(shù)預(yù)測(cè)作為熵解碼之后的后處理。參考圖12,熵解碼器(1290)對(duì)來(lái)自比特流(1295)的差值進(jìn)行解碼。解碼器計(jì)算一預(yù)測(cè)值并將該差值與該預(yù)測(cè)值相組合,從而產(chǎn)生經(jīng)量化的頻譜系數(shù)(1205)。對(duì)于該預(yù)測(cè)值,將經(jīng)延時(shí)的經(jīng)量化的頻譜系數(shù)(在延遲1210)中乘以一預(yù)測(cè)因子(1211)。該預(yù)測(cè)因子(1211)從比特流(1295)中解析。經(jīng)量化的頻譜系數(shù)(1205)也被緩沖在第一延遲(1210)中用于計(jì)算用于后一經(jīng)量化的頻譜系數(shù)(1205)的預(yù)測(cè)值。在圖11和12中,編碼器中的預(yù)測(cè)和求差運(yùn)算以及解碼器中的預(yù)測(cè)和求和運(yùn)算在量化域中進(jìn)行。這簡(jiǎn)化了編碼器和解碼器設(shè)計(jì)以及復(fù)雜性,因?yàn)檫\(yùn)算在同一域中進(jìn)行。在某些實(shí)現(xiàn)中,預(yù)測(cè)、求和和求差運(yùn)算對(duì)整數(shù)值進(jìn)行。這通常簡(jiǎn)化了實(shí)現(xiàn)因?yàn)檫\(yùn)算可用整數(shù)運(yùn)算而非浮點(diǎn)運(yùn)算來(lái)執(zhí)行。為進(jìn)一步簡(jiǎn)化預(yù)測(cè),可使用均勻步長(zhǎng)0.25來(lái)量化范圍在-1到1之間的預(yù)測(cè)因子。對(duì)預(yù)測(cè)值的乘法運(yùn)算然后可使用二進(jìn)制位移/加法運(yùn)算來(lái)實(shí)現(xiàn)。在圖11和12中,預(yù)測(cè)器是一階預(yù)測(cè)器,這再一次簡(jiǎn)化了編碼器/解碼器("編解碼器")系統(tǒng)的復(fù)雜性。采用自適應(yīng)一階預(yù)測(cè)器,預(yù)測(cè)因子改變,因此不需長(zhǎng)期使用同一預(yù)測(cè)因子。對(duì)于一階預(yù)測(cè)器,對(duì)穩(wěn)定性的測(cè)試是平凡的。例如,編碼器只需將預(yù)測(cè)因子約束在-1到1(包括端點(diǎn))的范圍內(nèi)?;蛘撸A(yù)測(cè)器是高階預(yù)測(cè)器。例如,對(duì)16階預(yù)測(cè)器,預(yù)測(cè)器具有多達(dá)16個(gè)預(yù)測(cè)因子。對(duì)于自適應(yīng)系數(shù)預(yù)測(cè),編碼器在各子幀之間或在某一其它基礎(chǔ)上改變預(yù)測(cè)因子。例如,編碼器將子幀拆分成多個(gè)均勻大小的段并對(duì)每一段計(jì)算一預(yù)測(cè)因子。對(duì)于信號(hào)傳輸,編碼器用信號(hào)表示子幀的段數(shù)以及預(yù)測(cè)因子。由此,如果2048個(gè)頻譜系數(shù)的子幀被拆分成16段,則編碼器用信號(hào)表示該段數(shù)以及每一128個(gè)系數(shù)的段的預(yù)測(cè)因子。每一子幀的段數(shù)對(duì)一個(gè)序列信號(hào)表示一次、對(duì)每一子幀信號(hào)表示一次或在某一其它基礎(chǔ)上用信號(hào)表示?;蛘?,段具有可變長(zhǎng)度,和/或編碼器使用不同的機(jī)制來(lái)用信號(hào)表示預(yù)測(cè)因子(例如,僅用信號(hào)表示預(yù)測(cè)因子的變化,或用信號(hào)表示預(yù)測(cè)因子以及對(duì)其使用該預(yù)測(cè)因子的段數(shù))。對(duì)于某些輸入,系數(shù)預(yù)測(cè)不改進(jìn)性能。除了在逐段的基礎(chǔ)上禁用系數(shù)預(yù)測(cè)(如下描述)之外,編碼器和解碼器可對(duì)整個(gè)序列(例如,用序列層開/關(guān)標(biāo)志)或在某一其它級(jí)別上禁用系數(shù)預(yù)測(cè)。當(dāng)對(duì)多聲道音頻使用系數(shù)預(yù)測(cè)時(shí),在量化等在編碼期間處于多聲道變換的下游時(shí),系數(shù)預(yù)測(cè)在每一己編碼聲道上進(jìn)行。在解碼期間,系數(shù)預(yù)測(cè)也在每一已編碼聲道上進(jìn)行。由此,對(duì)于這種多聲道音頻,對(duì)每一段或每一子幀用信號(hào)表示的預(yù)測(cè)信息通常對(duì)特定已編碼聲道的每一段或每一子幀用信號(hào)表示。系數(shù)預(yù)測(cè)可以在序列級(jí)或某一其它級(jí)別上對(duì)每一已編碼聲道選擇性地禁用。當(dāng)對(duì)多聲道音頻使用系數(shù)預(yù)測(cè)時(shí),可對(duì)每一已編碼聲道、已編碼聲道的每一子幀或在某一其它級(jí)別上用信號(hào)表示每一子幀的段數(shù)。在某些情況下,系數(shù)預(yù)測(cè)主要為低頻和中頻中的頻譜系數(shù)提供了編碼增益。因此,系數(shù)預(yù)測(cè)可對(duì)較高頻率下的頻譜系數(shù)自動(dòng)禁用?;蛘?,如果從系數(shù)預(yù)測(cè)所得的編碼增益主要是用于特定頻率子范圍中的頻譜系數(shù)的,則可在這些頻率子范圍中選擇性地啟用系數(shù)預(yù)測(cè),而在別處禁用系數(shù)預(yù)測(cè)。C.用于編碼期間的系數(shù)預(yù)測(cè)的示例技術(shù)圖13示出了用于在編碼期間對(duì)經(jīng)量化的頻譜系數(shù)進(jìn)行預(yù)測(cè)的技術(shù)(1300)。例如,諸如圖11所示的編碼器執(zhí)行該技術(shù)(1300)?;騽t,另一編碼器執(zhí)行該技術(shù)(1300)。開始,編碼器對(duì)一音頻段計(jì)算(1310)預(yù)測(cè)因子。一般而言,編碼器使用若干技術(shù)中的任一種來(lái)計(jì)算該預(yù)測(cè)因子。例如,對(duì)于一階預(yù)測(cè)器,編碼器對(duì)可能預(yù)測(cè)因子執(zhí)行窮盡搜索以找出最終預(yù)測(cè)因子(例如,得到最少的經(jīng)熵編碼的比特的預(yù)測(cè)因子)?;蛘撸幋a器對(duì)段的經(jīng)量化的頻譜系數(shù)計(jì)算一相關(guān)常數(shù)(即,E{x[i-l]X[i]}/E{X[i]x[i]})以導(dǎo)出預(yù)測(cè)因子?;蛘撸瑢?duì)于高階預(yù)測(cè)器,編碼器使用線性預(yù)測(cè)系數(shù)算法(例如,涉及對(duì)自相關(guān)和自協(xié)方差的計(jì)算)并且不需要穩(wěn)定性?;蛘撸绻麨V波器的階數(shù)和精度是靈活的,則編碼器計(jì)算預(yù)測(cè)器階數(shù)(一階、二階、三階等)以及用于該段的預(yù)測(cè)因子值和精度?;蛘?,編碼器使用某種其它機(jī)制來(lái)計(jì)算預(yù)測(cè)因子。在許多情況下,經(jīng)量化的頻譜系數(shù)不展示出跨子幀的整個(gè)頻譜的均勻相關(guān)。為改善這種情形中的預(yù)測(cè),編碼器可在逐個(gè)頻譜段的基礎(chǔ)上改變預(yù)測(cè)因子。例如,編碼器將一子幀(或其它頻譜系數(shù)塊)的整個(gè)頻譜拆分成多個(gè)均勻大小的段,并對(duì)每一段計(jì)算一預(yù)測(cè)因子?;蛘?,編碼器對(duì)作為一子幀或其它頻譜系數(shù)塊的整個(gè)頻譜的一段計(jì)算一預(yù)測(cè)因子,或以其它方式來(lái)拆分該頻譜。編碼器用信號(hào)表示(1320)用于該段的預(yù)測(cè)因子信息。例如,編碼器量化該預(yù)測(cè)因子并在比特流中用信號(hào)表示它。預(yù)測(cè)因子可被熵編碼。編碼器可用信號(hào)表示一開/關(guān)位,作為預(yù)測(cè)因子信息的一部分,以在逐段的基礎(chǔ)上解碼時(shí)選擇性地禁用系數(shù)預(yù)測(cè)。表2示出了一個(gè)實(shí)現(xiàn)中對(duì)于預(yù)測(cè)因子的位表示,其中范圍在-1到1中的預(yù)測(cè)因子使用均勻步長(zhǎng)0.25來(lái)量化。<table>tableseeoriginaldocumentpage24</column></row><table>表2預(yù)測(cè)因子(輔助信息)的表示或者,預(yù)測(cè)因子信息使用某種其它表示來(lái)用信號(hào)表示。如上所述,情況可以是并非所有段都得益于頻譜系數(shù)預(yù)測(cè)。預(yù)測(cè)因子0有效地對(duì)一段禁用了預(yù)測(cè);不向該預(yù)測(cè)值給予任何權(quán)重且不必計(jì)算該預(yù)測(cè)值。釆用表2所示的代碼,用于以信號(hào)表示預(yù)測(cè)因子o的單比特碼元用作受影響的段的開/關(guān)位。以單個(gè)比特用信號(hào)表示零預(yù)測(cè)因子在零預(yù)測(cè)值是最常見的預(yù)測(cè)因子時(shí)節(jié)省了比特。如上所述,允許高階預(yù)測(cè)器。例如,為用信號(hào)表示用于高階預(yù)測(cè)器的預(yù)測(cè)因子信息,編碼器首先發(fā)送預(yù)測(cè)器的階數(shù)和精度,然后逐個(gè)發(fā)送預(yù)測(cè)因子。編碼器然后確定(1330)是否對(duì)該段使用頻譜系數(shù)預(yù)測(cè)。如果是,則編碼器預(yù)測(cè)(1340)段中的一個(gè)或多個(gè)經(jīng)量化的頻譜系數(shù),然后對(duì)該預(yù)測(cè)性編碼的系數(shù)進(jìn)行熵編碼(1350)。例如,編碼器使用了如圖11所示的延遲緩沖器和算術(shù)來(lái)進(jìn)行系數(shù)預(yù)測(cè)。或者,編碼器使用某種其它預(yù)測(cè)機(jī)制。(預(yù)測(cè)(1340)和隨后的熵編碼(1350)可以對(duì)某些類型的熵編碼(1350)迭代地進(jìn)行,但是更典型的是對(duì)于向量可變長(zhǎng)度編碼、行程級(jí)別編碼或某種其它類型的熵編碼進(jìn)行批處理。)如果編碼器跳過(guò)系數(shù)預(yù)測(cè)(1340),則編碼器只需對(duì)一個(gè)或多個(gè)經(jīng)量化的頻譜系數(shù)進(jìn)行熵編碼(1350)?;蛘撸幋a器跟隨預(yù)測(cè)因子為O時(shí)的該預(yù)測(cè)性編碼路徑。編碼器然后確定(1360)是繼續(xù)下一段還是結(jié)束該技術(shù)(1300)。如果編碼器繼續(xù),則編碼器計(jì)算(1310)用于下一段的預(yù)測(cè)因子,用信號(hào)表示(1302)該預(yù)測(cè)因子信息等等。圖13示出了在逐段的基礎(chǔ)上對(duì)預(yù)測(cè)因子的計(jì)算和信號(hào)表示,其中段數(shù)是預(yù)定的且不用信號(hào)表示?;蛘撸瑢?duì)其計(jì)算并用信號(hào)表示預(yù)測(cè)因子的段數(shù)是靈活的。這通常以增加指定段信息的比特開銷為代價(jià)改善了預(yù)測(cè)準(zhǔn)確性。對(duì)于子幀或其它塊,編碼器找出均勻或非均勻分段(例如,得到最少比特?cái)?shù)),并且在比特流中用信號(hào)表示總段數(shù)和/或其它分段信息。D.用于解碼期間的系數(shù)預(yù)測(cè)的示例技術(shù)圖14示出了用于在解碼期間對(duì)經(jīng)量化的頻譜系數(shù)進(jìn)行預(yù)測(cè)的技術(shù)(1400)。例如,諸如圖12所示的解碼器執(zhí)行該技術(shù)(1400)。或者,另一解碼器執(zhí)行該技術(shù)(1400)。開始,解碼器獲得(1410)用于一音頻段的預(yù)測(cè)因子信息。例如,解碼器解析來(lái)自比特流的預(yù)測(cè)因子信息,并重構(gòu)預(yù)測(cè)因子。如果預(yù)測(cè)因子是經(jīng)熵編碼的,則解碼器對(duì)該預(yù)測(cè)因子進(jìn)行熵解碼。如果編碼器用信號(hào)表示一開/關(guān)位作為預(yù)測(cè)因子信息的一部分以在解碼期間選擇性地啟用/禁用系數(shù)預(yù)測(cè),則解碼器獲得該開/關(guān)位。由此,解碼器可在逐個(gè)頻譜段的基礎(chǔ)上改變預(yù)測(cè)因子,其中段取決于實(shí)現(xiàn)是子幀或其它塊的整個(gè)頻譜的全部或部分,并且預(yù)測(cè)因子信息使用以上參考圖13所描述的機(jī)制中的任一種來(lái)用信號(hào)表示。解碼器對(duì)該段的一個(gè)或多個(gè)經(jīng)量化的頻譜系數(shù)的信息進(jìn)行熵解碼(1420)。當(dāng)在編碼期間使用了系數(shù)預(yù)測(cè)時(shí),該信息是經(jīng)量化的頻譜系數(shù)的預(yù)測(cè)殘留(差值)。當(dāng)在編碼期間沒(méi)有使用系數(shù)預(yù)測(cè)(零預(yù)測(cè)值)時(shí),信息是經(jīng)量化的頻譜系數(shù)本身。解碼器然后確定(1430)是否對(duì)該段使用了頻譜系數(shù)預(yù)測(cè)。如果是,則解碼器預(yù)測(cè)(1440)該段中經(jīng)量化的頻譜系數(shù)。例如,解碼器使用如圖12所示的延遲緩沖器和算術(shù)來(lái)進(jìn)行系數(shù)預(yù)測(cè)。或者,解碼器使用某種其它預(yù)測(cè)機(jī)制。(熵解碼(1420)和預(yù)測(cè)(1440)可以對(duì)某些類型的熵解碼(1420)迭代地進(jìn)行,但是更典型的是對(duì)向量可變長(zhǎng)度解碼、行程級(jí)別解碼或某種其它類型的熵解碼進(jìn)行批處理)。在某些情況下,解碼器在解碼期間跳過(guò)系數(shù)預(yù)測(cè),僅僅對(duì)經(jīng)量化的頻譜系數(shù)進(jìn)行熵解碼(1420)?;蛘撸獯a器跟隨預(yù)測(cè)因子為O時(shí)的該預(yù)測(cè)性解碼路徑。解碼器然后確定(1450)是繼續(xù)下一段還是結(jié)束該技術(shù)(1400)。如果解碼器繼續(xù),則解碼器獲得(1410)用于下一段的預(yù)測(cè)因子信息等等。在圖14中,段數(shù)是預(yù)定的且不用信號(hào)表示?;蛘?,段數(shù)和預(yù)測(cè)因子是靈活的,并且解碼器解析由編碼器用信號(hào)表示的分段信息。E.結(jié)果一般而言,對(duì)經(jīng)量化的頻譜系數(shù)的預(yù)測(cè)改進(jìn)了對(duì)于某些類型和模式的內(nèi)容的隨后的熵編碼的效率。例如,預(yù)測(cè)減少了相鄰系數(shù)之間的冗余度,使得后續(xù)的向量可變長(zhǎng)度編碼和/或行程級(jí)別編碼更高效。與其形成對(duì)比,MPEGTNS的目的是控制失真的時(shí)間分布。為測(cè)量由于對(duì)經(jīng)量化的頻譜系數(shù)進(jìn)行預(yù)測(cè)而帶來(lái)的編碼效率的改進(jìn),使用系數(shù)預(yù)測(cè)來(lái)編碼較大的一套測(cè)試歌曲。對(duì)于典型的輸入歌曲,該歌曲中的大多數(shù)子幀并未通過(guò)在量化域中使用系數(shù)預(yù)測(cè)而得到任何好處,然而,某些子幀得到非常顯著的好處。例如,對(duì)某些子幀產(chǎn)生的比特通過(guò)對(duì)經(jīng)量化的頻譜系數(shù)的預(yù)測(cè)而被丟棄了多達(dá)30%。對(duì)于某些歌曲,在以32Kb/s的額定比特率操作時(shí)采用系數(shù)預(yù)測(cè)的總體比特率減小是3%,而在以128Kb/s操作時(shí)總體比特率減小是3.75。/。。在整套歌曲上,總體比特率減小大約是0.5%。盡管多種預(yù)測(cè)使用了高階預(yù)測(cè)器或更高的精度來(lái)實(shí)現(xiàn)編碼增益,但是具有相對(duì)較低精度(例如,每一經(jīng)量化的預(yù)測(cè)因子值為3位)的一階預(yù)測(cè)器在大多數(shù)情形中對(duì)經(jīng)量化的頻譜系數(shù)能執(zhí)行得相當(dāng)好。經(jīng)量化的頻譜系數(shù)通常是非常小的整數(shù),因此提高預(yù)測(cè)因子精度不一定會(huì)改變預(yù)測(cè)的值或使其更好一殘留值對(duì)熵編碼是整數(shù),并且將預(yù)測(cè)的值計(jì)算為整數(shù)是可接受的。此外,即使在頻譜系數(shù)中存在高階相關(guān),該高階相關(guān)通常通過(guò)量化而失真,使得不需要高階預(yù)測(cè)器。然而,在某些編碼情形中,當(dāng)量化步長(zhǎng)較小并且經(jīng)量化的頻譜系數(shù)具有較大的幅度時(shí),高階預(yù)測(cè)器和/或更高精度的預(yù)測(cè)因子可導(dǎo)致編碼效率的更大改進(jìn)。以上所描述的系數(shù)預(yù)測(cè)技術(shù)和工具一般支持高階預(yù)測(cè)器和高精度預(yù)測(cè)因子。IV.頻譜系數(shù)的交織或重排如上所述,音頻編碼器通常使用變換編碼,之后使用量化和熵編碼來(lái)實(shí)現(xiàn)壓縮。對(duì)于某些音頻信號(hào)模式,在頻率變換之后在頻譜系數(shù)中還留有周期性模式。描述了各種技術(shù)和工具來(lái)利用這一冗余性以提高編碼效率。特別地,在某些實(shí)施例中,諸如圖2、4或6所示的編碼器執(zhí)行對(duì)經(jīng)量化的頻譜系數(shù)的交織或重排。對(duì)應(yīng)的解碼器(諸如圖3、5或7所示)反轉(zhuǎn)了對(duì)經(jīng)量化的頻譜系數(shù)的交織或重排。A.示例問(wèn)題域常規(guī)地,子幀或其它窗的頻譜系數(shù)被假定為它們之中沒(méi)有任何線性相關(guān)。相反,假定頻譜系數(shù)通常具有某些更高階統(tǒng)計(jì)關(guān)系,編碼器在熵編碼期間試圖利用這些統(tǒng)計(jì)關(guān)系。這些假設(shè)在某些情況下并不成立。對(duì)于某些類型和模式的音頻信號(hào),用于子幀或其它窗的頻譜系數(shù)不一定是不相關(guān)的。這例如在音頻信號(hào)在時(shí)域中為周期性,并且周期性信號(hào)的頻譜系數(shù)也顯示出周期性的時(shí)候發(fā)生。在實(shí)踐中,正弦信號(hào)通常顯示出這一行為,某些非固定信號(hào)也是如此。為了圖示,圖15a示出了時(shí)域中的周期性信號(hào),繪出了對(duì)于一樣本時(shí)間序列的幅度。圖15b示出了來(lái)自DCT運(yùn)算的對(duì)應(yīng)的經(jīng)量化的頻譜系數(shù)。在圖15b中,在每57個(gè)頻譜系數(shù)周圍有較強(qiáng)的峰值非零頻譜系數(shù),并且在其它地方的頻譜系數(shù)大多數(shù)都具有零或較小的值。使用諸如行程級(jí)別編碼或向量可變長(zhǎng)度編碼等技術(shù)直接對(duì)具有這種周期性模式的頻譜系數(shù)進(jìn)行熵編碼并不是高效的。特別地,對(duì)其周圍具有零值或小值系數(shù)的峰值系數(shù)進(jìn)行熵編碼通常在行程級(jí)別編碼和向量可變長(zhǎng)度編碼中都使用了很多位。然而,這種類型的峰值模式對(duì)于周期性信號(hào)是常見的??偠灾枋隽丝捎上禂?shù)重排技術(shù)和工具來(lái)解決的若干問(wèn)題。然而,不一定要應(yīng)用這種系數(shù)重排技術(shù)和工具來(lái)解決任何或全部這些問(wèn)題。B.用于重排頻譜系數(shù)的示例體系結(jié)構(gòu)在某些實(shí)施例中,編碼器在熵編碼之前對(duì)經(jīng)量化的頻譜系數(shù)執(zhí)行重排,并且對(duì)應(yīng)的解碼器在熵解碼之后對(duì)經(jīng)量化的頻譜系數(shù)進(jìn)行重排。對(duì)于某些模式和類型的內(nèi)容,諸如具有基音或諧波的周期性信號(hào),重排降低了頻譜系數(shù)中的冗余度以改進(jìn)隨后的熵編碼的效率。在解碼期間,重排(在熵解碼之后)補(bǔ)償了編碼器中的重排。圖16示出了具有對(duì)經(jīng)量化的頻譜系數(shù)的重排的編碼器。例如,該編碼器是圖2或4所示的編碼器的經(jīng)修改的形式,對(duì)其添加了重排頻譜系數(shù)的各階?;蛘?,該編碼器是圖6所示的編碼器的經(jīng)修改的形式,其中重排作為熵編碼之前的預(yù)處理。參考圖16,編碼器從量化器接受經(jīng)量化的頻譜系數(shù)(1605)。經(jīng)量化的頻譜系數(shù)由重排/交織模塊(1680)來(lái)處理,該模塊可任選地重排部分或全部頻譜系數(shù)(1605),從而在比特流(1695)中用信號(hào)表示重排信息。假定經(jīng)量化的頻譜系數(shù)(1605)展示出可被充分利用來(lái)改進(jìn)熵編碼效率的期性模式。在熵編碼之前,考慮經(jīng)量化的頻譜系數(shù)中的周期性,對(duì)這些系數(shù)進(jìn)行交織或重排。例如,重排將高值的峰值系數(shù)聚集在一起,這對(duì)這些系數(shù)改進(jìn)了隨后的向量可變長(zhǎng)度編碼的效率,并且重排將其它系數(shù)(例如,峰值之間的零值系數(shù)和低值系數(shù))聚集在一起,這改進(jìn)了對(duì)于這些系數(shù)的隨后的行程級(jí)別編碼的效率。為交織頻譜系數(shù),編碼器沿顯示出周期性模式的段來(lái)交織頻譜系數(shù)。作為一個(gè)簡(jiǎn)單的示例,編碼器以多遍的方式瀏覽周期中的系數(shù),首先選擇各個(gè)周期中的第一個(gè)系數(shù),然后選擇各個(gè)周期中的第二個(gè)系數(shù),然后選擇各個(gè)周期中的第三個(gè)系數(shù),依此類推。編碼器繼續(xù)該重排,直到選擇了所有系數(shù)。假定一系列頻譜系數(shù)包括四個(gè)周期A、B、C和D,并且每一周期包含四個(gè)頻譜系數(shù)。在交織之前,該序列為A0A!A2A3B0B!B2B3C0C!C2C3D0D!D2D3,而在交織后,該序列為A0B0CoDoBD!A2B2C2D2A3B3C3D3。由此,經(jīng)重排的序列首先放置系數(shù)O、4、8和12,然后放置系數(shù)l、5、9和13,依此類推。如果在每一周期中僅第一系數(shù)具有重要值,則在交織之后僅序列中的前四個(gè)系數(shù)具有重要值,并且所有其它系數(shù)具有小值或零值。向量可變長(zhǎng)度編碼有效地壓縮了前四個(gè)系數(shù),而行程級(jí)別編碼有效地處理了其余的系數(shù)。返回到圖16,在可任選重排(1680)之后,熵編碼器(1690)對(duì)頻譜系數(shù)(可能進(jìn)行了重排)進(jìn)行熵編碼。編碼器在比特流(1695)中用信號(hào)表示經(jīng)熵編碼的信皁圖17示出了具有對(duì)經(jīng)量化的頻譜系數(shù)的重排的對(duì)應(yīng)的解碼器。例如,該解碼器是圖3或5所示的解碼器的經(jīng)修改的形式,對(duì)其添加了進(jìn)行重排的各級(jí)?;蛘撸摻獯a器是圖7所示的解碼器的經(jīng)修改的形式,其中重排作為熵解碼之后的后處理。參考圖17,熵解碼器(1790)解碼來(lái)自比特流(1795)的用于經(jīng)量化的頻譜系數(shù)的信息。使用從比特流(1795)中解析的重排信息,重排/交織模塊(1780)可任選地重排部分或全部已解碼的頻譜系數(shù),從而產(chǎn)生原始順序的經(jīng)量化的頻譜系數(shù)(1705)。本質(zhì)上,解碼器中的重排反轉(zhuǎn)了編碼器中執(zhí)行的重排。在以上所示的示例序列中,執(zhí)行基于周期長(zhǎng)度的簡(jiǎn)單重排。然而,在某些情況下,這種簡(jiǎn)單重排無(wú)法解決段中的前導(dǎo)非周期性信息、前導(dǎo)零或特定周期中的其它偏移,和/或在周期開始處對(duì)峰值系數(shù)的聚集。附加的重排信息(以下描述)可以解決這些現(xiàn)象。為給出一個(gè)簡(jiǎn)單的數(shù)字示例,假定一段具有128個(gè)頻譜系數(shù),并且包括用于某些系數(shù)的周期性模式。該周期性模式的平均周期長(zhǎng)度為io個(gè)系數(shù),從第I9個(gè)系數(shù)開始,并在第102個(gè)系數(shù)處結(jié)束。按照周期長(zhǎng)度的倍數(shù),作為一種粗略的估算,第一個(gè)重排周期是該段的第三個(gè)周期(系數(shù)20-29),而最后一個(gè)重排周期是第十個(gè)周期(系數(shù)卯-99)。用于第三個(gè)周期的偏移是-1(指示該周期的起始位置在第19個(gè)系數(shù)而非第20個(gè)系數(shù)處),而用于第十個(gè)周期的偏移是2。用于其它周期的偏移也可適當(dāng)?shù)赜眯盘?hào)表示。如果要重排的周期通常以多個(gè)峰值系數(shù)開始,則可用信號(hào)表示一值以指示每一周期中甚至在重排之后也應(yīng)當(dāng)保持相鄰的初始系數(shù)的個(gè)數(shù)。對(duì)于自適應(yīng)系數(shù)重排,編碼器在逐個(gè)子幀或某一其它基礎(chǔ)上改變重排。例如,編碼器將一個(gè)子幀拆分成多個(gè)段,并對(duì)一個(gè)或多個(gè)段計(jì)算重排信息,從而用信號(hào)表示分段信息以及重排信息?;蛘撸幋a器使用一不同的機(jī)制來(lái)進(jìn)行分段和/或信號(hào)表示。對(duì)于某些輸入,系數(shù)重排不改善性能。除了在逐段的基礎(chǔ)上禁用系數(shù)重排(以下描述)之外,編碼器和解碼器可對(duì)整個(gè)序列(例如,用序列層開/關(guān)標(biāo)志)或在某一其它級(jí)別上禁用系數(shù)重排。當(dāng)對(duì)多聲道音頻使用系數(shù)重排時(shí),在量化等在編碼期間處于多聲道變換的下游時(shí),在每一已編碼聲道上進(jìn)行系數(shù)重排。在解碼期間,也對(duì)每一已編碼聲道進(jìn)行系數(shù)重排。由此,對(duì)于這一多聲道音頻,對(duì)每一段、每一子幀或每一周期用信號(hào)表示的重排信息通常是對(duì)一特定一編碼聲道對(duì)每一段、每一子幀或每一周期用信號(hào)表示的。當(dāng)對(duì)多聲道音頻使用系數(shù)重排時(shí),可對(duì)每一已編碼聲道、已編碼聲道的每一子幀、或在某一其它級(jí)別上用信號(hào)表示分段信息和重排開/關(guān)信息。在許多情況下,系數(shù)重排提供了主要用于低頻和中頻中的頻譜系數(shù)的編碼增益。因此,可對(duì)較高頻率下的頻譜系數(shù)自動(dòng)禁用系數(shù)重排。或者,如果從系數(shù)重排所得的編碼增益主要是用于特定頻率子范圍中的頻率系數(shù)的,則可在這些頻率子范圍中選擇性地啟用系數(shù)重排,并在別處禁用系數(shù)重排。在第III節(jié)中描述的系數(shù)預(yù)測(cè)可結(jié)合系數(shù)重排來(lái)使用,但是系數(shù)預(yù)測(cè)和系數(shù)重排更常見的是對(duì)不同類別的輸入分開使用。當(dāng)它們被一起使用時(shí),在編碼期間,系數(shù)預(yù)測(cè)在重排之后,并且在解碼期間,系數(shù)重排在預(yù)測(cè)之后,并且系數(shù)預(yù)測(cè)是用于經(jīng)重排的系數(shù)的至少某一些(例如,峰值系數(shù))上的。C.用于在編碼期間重排系數(shù)的示例技術(shù)圖18a示出了用于在編碼期間重排經(jīng)量化的頻譜系數(shù)的技術(shù)(1800),而圖18b和18c詳細(xì)描述了執(zhí)行該技術(shù)(1800)的某些動(dòng)作的可能方式。例如,諸如圖16所示的編碼器執(zhí)行該技術(shù)(1800)?;蛘?,另一編碼器執(zhí)行該技術(shù)(1800)。開始,編碼器對(duì)一段計(jì)算(1810)重排信息。例如,編碼器如圖18b所示計(jì)算(1810)重排信息?;蛘?,編碼器計(jì)算其它和/或附加重排信息。參考圖18b,編碼器標(biāo)識(shí)(1812)其中要重排系數(shù)的段。例如,編碼器找出具有周期性模式的頻譜系數(shù)的段。為了圖示,在圖15b中,僅前面的約800個(gè)系數(shù)具有周期性模式。編碼器可在重排中不包括該段的某些周期。例如,如果前一個(gè)或兩個(gè)周期與其它周期不類似,則前一個(gè)或兩個(gè)周期不包括在重排過(guò)程中。在某些情況下,一段的第一部分包括前導(dǎo)零或非周期性系數(shù)。由此,編碼器跟蹤段中要重排的第一個(gè)周期。類似地,編碼器也跟蹤段中要重排的最后一個(gè)周期。接著,編碼器對(duì)該段標(biāo)識(shí)(1814)周期長(zhǎng)度。例如,編碼器對(duì)段中的峰值數(shù)進(jìn)行計(jì)數(shù),并將段長(zhǎng)度除以峰值數(shù)。或者,編碼器對(duì)候選周期長(zhǎng)度執(zhí)行窮盡搜索。或者,編碼器使用二分細(xì)化方法(而不是對(duì)參數(shù)空間的窮盡搜索)來(lái)搜索候選周期長(zhǎng)度?;蛘撸幋a器評(píng)估零值/小值系數(shù)的行程長(zhǎng)度?;蛘?,編碼器使用某種其它機(jī)制來(lái)標(biāo)識(shí)段的周期長(zhǎng)度。周期長(zhǎng)度可限于整數(shù)值,或者周期長(zhǎng)度也可以是非整數(shù)值。允許小于整數(shù)的精度可顯著改善重排效率,最終改善熵編碼增益。編碼器還標(biāo)識(shí)(1816)其它重排信息,這可包括周期調(diào)整和預(yù)巻(preroll)值。例如,在允許非整數(shù)周期長(zhǎng)度的實(shí)現(xiàn)中,編碼器如下計(jì)算其它重排信息。周期i的初始起始位置為roimd(^周期長(zhǎng)度),并且周期i的初始結(jié)束位置是下一周期的初始起始位置。編碼器保持一周期位置表,該表為跟蹤目的儲(chǔ)存周期的起始位置和/或結(jié)束位置。這還允許編碼器在評(píng)估不同位置時(shí)簡(jiǎn)單地調(diào)整表中的周期位置。具體地,編碼器可將周期的起始位置和/或結(jié)束位置從初始位置移動(dòng)一個(gè)或多個(gè)系數(shù),以改善熵編碼。例如,如果在周期的起始位置之前恰有幾個(gè)較大的重要系數(shù),則編碼器將起始位置左移幾個(gè)系數(shù),使得這些較大的重要系數(shù)在周期的開始而非前一周期的結(jié)尾出現(xiàn)?;蛘?,編碼器使用某種其它機(jī)制來(lái)確定用于要重排的周期的起始和/或結(jié)束位置的調(diào)整量。編碼器還選擇一預(yù)巻值。預(yù)巻指示周期開始處未相對(duì)于彼此重排的系數(shù)。通常,周期開始處的峰值不僅僅是一個(gè)頻譜系數(shù)。例如,在周期的開始處可以有兩個(gè)或三個(gè)具有較大值的系數(shù),并且這些系數(shù)是預(yù)巻系數(shù)。預(yù)巻系數(shù)以一特殊方式來(lái)交織,從而有效地作為一組來(lái)處理以便重排。換言之,預(yù)巻系數(shù)即使在對(duì)段的周期進(jìn)行重排之后也是相鄰的。預(yù)巻值指示要重排的周期的預(yù)巻系數(shù)的個(gè)數(shù)(例如,1、2、3)?;蛘?,代替對(duì)每一段計(jì)算預(yù)巻,編碼器而是對(duì)要重排的每一周期計(jì)算預(yù)巻。或者,編碼器使用某種其它機(jī)制來(lái)標(biāo)識(shí)(1816)其它重排信息。返回到圖18a,編碼器在比特流中用信號(hào)表示(1830)用于段的重排信息。例如,編碼器對(duì)于如18b所示計(jì)算的重排信息,如圖18c所示用信號(hào)表示(1830)重排信息?;蛘撸幋a器用信號(hào)表示其它和/或附加重排信息。參考圖18c,編碼器用信號(hào)表示(1S32)用于重排的開/關(guān)位。例如,編碼器將使用系數(shù)重排時(shí)的比特成本與不使用系數(shù)重排時(shí)的比特成本進(jìn)行比較。編碼器選擇提供較好性能的模式,并且編碼器使用每一段單個(gè)位來(lái)指示選擇哪一模式?;蛘?,編碼器使用某種其它機(jī)制和/或?qū)Τ麄€(gè)段之外的某一其它持續(xù)時(shí)間用信號(hào)表示開/關(guān)信息。當(dāng)使用重排時(shí)(從判定1834出發(fā)的"是"分支),編碼器用信號(hào)表示(1836)周期長(zhǎng)度。當(dāng)允許非整數(shù)周期長(zhǎng)度時(shí),周期長(zhǎng)度可用整數(shù)部分和分?jǐn)?shù)部分來(lái)表示,這兩部分都在比特流中用信號(hào)表示。整數(shù)周期長(zhǎng)度(或非整數(shù)周期長(zhǎng)度的整數(shù)部分)用信號(hào)表示為具有l(wèi)og2(最大周期長(zhǎng)度)位的固定長(zhǎng)度碼["FLC"]。例如,最大周期長(zhǎng)度是128,并且整數(shù)周期長(zhǎng)度用log2(128)=7位來(lái)以信號(hào)表示。分?jǐn)?shù)部分可以用三位的FLC來(lái)以信號(hào)表示。或者,周期長(zhǎng)度用另一機(jī)制來(lái)以信號(hào)表示。編碼器還用信號(hào)表示(1838)將對(duì)其重排系數(shù)的第一周期。實(shí)際上,這粗略地指示用于重排的起始位置。第一個(gè)經(jīng)重排的周期可用周期長(zhǎng)度為單位來(lái)表示。第一經(jīng)重排的周期例如用三位的FLC來(lái)以信號(hào)表示,在這一情況下,第一經(jīng)重排的周期是段中從第一個(gè)周期到第八個(gè)周期的任何周期?;蛘撸谝唤?jīng)重排的周期用另一機(jī)制來(lái)以信號(hào)表示。編碼器還用信號(hào)表示(1840)對(duì)其將重排系數(shù)的最后一個(gè)周期。最后一個(gè)經(jīng)重排的周期可用周期長(zhǎng)度為單位來(lái)表示。最后一個(gè)經(jīng)重排的周期例如用信號(hào)表示為具有1og2(最大周期數(shù))位的FLC。編碼器從段中的系數(shù)數(shù)以及周期長(zhǎng)度中導(dǎo)出最大周期數(shù)?;蛘撸詈笠粋€(gè)經(jīng)重排的周期用另一機(jī)制來(lái)以信號(hào)表示。編碼器用信號(hào)表示(1842)位置調(diào)整。對(duì)于對(duì)其將重排系數(shù)的周期,編碼器用信號(hào)表示指示相對(duì)于初始起始和/或結(jié)束位置的偏移的信息。例如,對(duì)每一周期用信號(hào)表示一個(gè)調(diào)整值,并且該調(diào)整值用信號(hào)表示為系數(shù)數(shù)。這一調(diào)整值可用信號(hào)表示為具有1og2(偏移范圍)位的FLC。由此,如果偏移范圍是16,則對(duì)于-8...7系數(shù)的調(diào)整范圍,調(diào)整值用log2(16^4位來(lái)以信號(hào)表示?;蛘?,調(diào)整值用另一機(jī)制來(lái)以信號(hào)表示(例如,用信號(hào)表示相對(duì)于前一調(diào)整值的調(diào)整(而非絕對(duì)項(xiàng)),或用信號(hào)表示用于所有周期的一個(gè)調(diào)整)。編碼器還用信號(hào)表示(1844)預(yù)巻值。某些個(gè)數(shù)的系數(shù)的預(yù)巻值用信號(hào)表示為具有l(wèi)og2(最大預(yù)巻+l)位的FLC。例如,最大預(yù)巻長(zhǎng)度是3(對(duì)0、1、2或3的預(yù)巻),并且預(yù)巻值用log2(4)=2位來(lái)以信號(hào)表示?;蛘撸A(yù)巻值用另一機(jī)制來(lái)以信號(hào)表示。返回到圖18a,編碼器確定(1860)是否使用系數(shù)重排。如果不是,則編碼器僅使用向量可變長(zhǎng)度編碼、行程級(jí)別編碼或某種其它熵編碼來(lái)對(duì)該段的經(jīng)量化的頻譜系數(shù)進(jìn)行熵編碼(1880)。另一方面,如果使用了系數(shù)重排,則編碼器重排(1870)該段的至少某些系數(shù),并使用向量可變長(zhǎng)度編碼、行程級(jí)別編碼或某種其它熵編碼來(lái)對(duì)如此(選擇性地)重排的系數(shù)進(jìn)行熵編碼(1880)。例如,編碼器如下執(zhí)行重排(1870),以重排如圖18b中所示地計(jì)算并如圖18c中所示地用信號(hào)表示的信息??偠灾?,編碼器重排系數(shù),并將系數(shù)輸出到一新的系數(shù)緩沖器(或直接輸出到熵編碼器,使得重排過(guò)程不使用額外的資源來(lái)緩沖)。編碼器瀏覽指示對(duì)其將重排系數(shù)的周期的起始位置和/或結(jié)束位置的表(如上所述)。一般而言,編碼器從第一個(gè)這樣的周期循環(huán)到最后一個(gè)這樣的周期。對(duì)于一個(gè)周期,編碼器找出重排中尚未處理的第一個(gè)系數(shù)。如果該系數(shù)在一預(yù)巻區(qū)域內(nèi),則編碼器輸出該系數(shù)以及按原始順序的一個(gè)或多個(gè)接下來(lái)的預(yù)巻系數(shù)。否則,編碼器僅輸出尚未處理的第一個(gè)系數(shù)。編碼器然后將該周期中任何已處理的系數(shù)標(biāo)記為已處理。編碼器繼續(xù)下一周期的第一個(gè)未處理系數(shù)。如果對(duì)某一周期沒(méi)有未處理的系數(shù),則編碼器簡(jiǎn)單地移至下一周期。在編碼器在一次迭代中從第一個(gè)到最后一個(gè)檢查了所有周期之后,編碼器從第一個(gè)周期開始重復(fù)。最終,編碼器處理了要重排的周期中的所有系數(shù)。當(dāng)段中的系數(shù)未被重排時(shí),編碼器可簡(jiǎn)單地將這些系數(shù)復(fù)制到新的系數(shù)緩沖器(或在適當(dāng)時(shí)將其直接發(fā)送到熵編碼器)。或者,編碼器使用某種其它機(jī)制來(lái)執(zhí)行重排(1870)?;蛘撸幋a器根據(jù)其它和/或另外的重排信息來(lái)執(zhí)行重排(1870)。編碼器然后確定(1890)是繼續(xù)下一段還是結(jié)束該技術(shù)(1800)。如果編碼器繼續(xù),則編碼器計(jì)算(1810)用于下一段的重排信息,用信號(hào)表示(1802)重排信息,等等。盡管圖18a到18c將計(jì)算重排信息的動(dòng)作示為為分開的且在用信號(hào)表示重排信息的動(dòng)作之前,但這些動(dòng)作可替換地彼此或與其它動(dòng)作交錯(cuò)。D.用于在解碼期間重排系數(shù)的示例技術(shù)圖19a示出了用于在解碼期間重排經(jīng)量化的頻譜系數(shù)的技術(shù)(1800),而圖19b和19c詳細(xì)示出了執(zhí)行該技術(shù)(1900)的某些動(dòng)作的可能方式。例如,諸如圖12所示的解碼器執(zhí)行該技術(shù)(1900)?;蛘撸硪唤獯a器執(zhí)行該技術(shù)(1900)。開始,解碼器獲得(1910)用于一段的重排信息。解碼器通常從比特流中讀取輔助信息以在交織/重排中使用。例如,解碼器如圖19b所示地獲得(1910)重排信息,用于重排如圖18c所示地用信號(hào)表示的信息?;蛘撸獯a器獲得其它和/或另外的重排信息。參考圖19b,解碼器從比特流中解析(1912)用于重排的開/關(guān)位。例如,解碼器從比特流中讀取單個(gè)位,其中該單個(gè)位指示是使用具有系數(shù)重排的模式還是沒(méi)有系數(shù)重排的模式?;蛘?,該開/關(guān)信息使用某種其它機(jī)制來(lái)用信號(hào)表示和解析,和/或是用于對(duì)除整個(gè)段之外的某一其它持續(xù)時(shí)間的。當(dāng)使用系數(shù)重排時(shí)(判定1914出來(lái)的"是"分支),則解碼器從比特流中解析(1916)周期長(zhǎng)度。當(dāng)允許非整數(shù)周期長(zhǎng)度時(shí),周期長(zhǎng)度可用整數(shù)部分和分?jǐn)?shù)部分來(lái)表示,這兩部分都從比特流中解析出來(lái)。整數(shù)周期長(zhǎng)度(或非整數(shù)周期長(zhǎng)度的整數(shù)部分)被表示為具有l(wèi)og2(最大周期長(zhǎng)度)位的FLC?;蛘?。周期長(zhǎng)度用另一機(jī)制來(lái)以信號(hào)表示。解碼器還從比特流中解析(1918)對(duì)其將重排系數(shù)的第一個(gè)周期,它粗略地指示了用于重排的起始位置。第一個(gè)已重排周期可用周期長(zhǎng)度為單位來(lái)表示。第一個(gè)已重排周期例如用三位的FLC來(lái)表示?;蛘?,第一個(gè)己重排周期用另一機(jī)制來(lái)以信號(hào)表示和解析。解碼器還從比特流中解析(1940)將對(duì)其重排系數(shù)的最后一個(gè)周期。最后一個(gè)已重排周期可用周期長(zhǎng)度為單位來(lái)表示。最后一個(gè)已重排周期例如用信號(hào)表示為具有1og2(最大周期數(shù))位的FLC,其中解碼器從段中的系數(shù)數(shù)和周期長(zhǎng)度中得到最大周期數(shù)?;蛘?,最后一個(gè)己重排周期用另一機(jī)制來(lái)以信號(hào)表示和解析。有了周期長(zhǎng)度、第一個(gè)已重排周期和最后一個(gè)己重排周期,解碼器具有填充周期位置表的信息,該表儲(chǔ)存了用于跟蹤目的的周期的起始位置和/或結(jié)束位置。由此,解碼器可再現(xiàn)由對(duì)應(yīng)的編碼器使用的周期位置表。解碼器從比特流中解析(1922)位置調(diào)整。對(duì)于對(duì)其將重排系數(shù)的周期,解碼器解析指示相對(duì)于初始起始和/或結(jié)束位置的偏移的信息。例如,可對(duì)每一周期解析一個(gè)調(diào)整值,并且該調(diào)整值可被表示為系數(shù)數(shù)。這一調(diào)整值可被表示為具有1og2(偏移范圍)位的FLC?;蛘?,調(diào)整值用另一機(jī)制來(lái)以信號(hào)表示和解析。有了位置調(diào)整信息,解碼器具有調(diào)整周期位置表中的周期的起始位置和/或結(jié)束位置的信息。解碼器還解析(1924)預(yù)巻值。某些個(gè)數(shù)的系數(shù)的預(yù)巻值被表示為具有1og2(最大預(yù)巻+l)位的FLC?;蛘撸A(yù)巻值可用另一機(jī)制來(lái)以信號(hào)表示和解析。返回到圖19a,解碼器使用向量可變長(zhǎng)度解碼、行程級(jí)別解碼或某種其它熵解碼來(lái)對(duì)來(lái)自比特流的系數(shù)信息進(jìn)行熵解碼(1930)。當(dāng)編碼中未使用重排時(shí),解碼器以其原始順序?qū)Χ沃械慕?jīng)量化的頻譜系數(shù)進(jìn)行熵解碼(1930)。另一方面,當(dāng)在編碼中使用了重排時(shí),解碼器對(duì)重排的經(jīng)量化的頻譜系數(shù)進(jìn)行熵解碼(930)。解碼器還確定(1960)在解碼期間是否使用系數(shù)重排。如果在解碼期間使用系數(shù)重排,則解碼器重排(1970)經(jīng)熵解碼的段的至少某些系數(shù)。例如,解碼器如下執(zhí)行重排(1970),以重排如圖19b所示地檢索到的信息。解碼器從用于該段的重排信息(例如,周期長(zhǎng)度、第一個(gè)已重排周期、最后一個(gè)已重排周期)中生成(1972)周期位置表,并向該表應(yīng)用(1974)周期調(diào)整。該表儲(chǔ)存周期的起始位置和/或結(jié)束位置以在重排時(shí)使用?;蛘?,解碼器跳過(guò)表生成過(guò)程,或使用某種其它表結(jié)構(gòu)。解碼器然后使用周期位置表和預(yù)巻值來(lái)重排(1976)系數(shù)??偠灾獯a器重排系數(shù)并將系數(shù)輸出到新的系數(shù)緩沖器,從而反轉(zhuǎn)了在編碼期間執(zhí)行的重排。(或者,解碼器可直接重排熵解碼器的輸出,因此不使用用于系數(shù)緩沖的附加資源)。解碼器使用周期位置表(如上所述),該表指示了對(duì)其應(yīng)重排系數(shù)的周期的起始位置和/或結(jié)束位置。一般而言,解碼器以從熵解碼所得的順序處理經(jīng)熵解碼的頻譜系數(shù)。例如,解碼器將第一個(gè)已重排周期的第一個(gè)未處理的系數(shù)以及預(yù)巻區(qū)域中的任何未處理的系數(shù)放入第一個(gè)已重排周期的位置中。接著,解碼器將第二個(gè)已重排周期的下一未處理系數(shù)以及預(yù)巻區(qū)域中的任何未處理系數(shù)放入第二個(gè)已重排周期中。解碼器對(duì)每一周期重復(fù)該預(yù)巻處理直到最后一個(gè)己重排周期。然后,解碼器迭代地將連續(xù)的未處理系數(shù)放到第一個(gè)、第二個(gè)、第三個(gè)等已重排周期的位置中,在一已重排周期已被填滿時(shí)跳過(guò)該己重排周期。最終,解碼器處理了要重排的周期中的所有系數(shù)。當(dāng)該段中的系數(shù)未被重排時(shí),解碼器可僅僅將這些系數(shù)復(fù)制到新系數(shù)緩沖器中的對(duì)應(yīng)位置?;蛘撸獯a器使用某種其它機(jī)制來(lái)執(zhí)行重排(1970)。例如,使用周期位置表和預(yù)巻值,解碼器瀏覽經(jīng)熵解碼的系數(shù),選擇并輸出用于第一個(gè)己重排周期的頻譜系數(shù)。然后,編碼器瀏覽經(jīng)熵解碼的系數(shù),選擇并輸出用第二個(gè)已重排周期的頻譜系數(shù),依此類推,直到最后一個(gè)已重排周期?;蛘撸獯a器根據(jù)其它和/或另外的重排信息來(lái)執(zhí)行重排(1970)。解碼器然后確定(1990)是繼續(xù)下一段還是結(jié)束該技術(shù)(1900)。如果解碼器繼續(xù),則解碼器獲得(1910)用于下一段的重排信息,等等。盡管圖19a到19c將獲得重排信息的動(dòng)作示為分開的并且在重排的其它動(dòng)作之前,但是這些動(dòng)作替換地可彼此或與其它動(dòng)作交錯(cuò)。E.結(jié)果一般而言,對(duì)經(jīng)量化的頻譜系數(shù)的重排改進(jìn)了對(duì)周期性信號(hào)的隨后的熵編碼的效率。例如,重排對(duì)具有相同值的系數(shù)局部歸組,從而使得隨后的向量可變長(zhǎng)度編碼和/或行程級(jí)別編碼更高效。上述重排的實(shí)現(xiàn)相對(duì)簡(jiǎn)單,并且具有較低的計(jì)算復(fù)雜度。對(duì)于存儲(chǔ)器使用,在某些實(shí)現(xiàn)中,重排操作所需的唯一的額外存儲(chǔ)器是周期位置表,這是非常小的。圖20示出了在系數(shù)重排之后的圖15b的頻譜系數(shù)。周期長(zhǎng)度是56.7。重排在位置114處開始(開始段中的第三個(gè)周期),并且重排在約位置1021處結(jié)束(結(jié)束段中的第18個(gè)周期)。預(yù)巻對(duì)于段中的周期為三。在重排之后,達(dá)約位置250的系數(shù)很好地建立以用于向量可變長(zhǎng)度編碼,并且之后的系數(shù)很好地建立以用于行程級(jí)別編碼。歸因于重排的編碼增益取決于信號(hào)的周期性。如果信號(hào)在時(shí)域中是周期性的,則因?qū)︻l譜系數(shù)的重排通常能得到顯著的增益。否則,編碼增益通常較不顯著或者不存在。圖21示出了由于對(duì)具有周期性信號(hào)的一個(gè)示例音頻文件的每一子幀進(jìn)行重排而得到的編碼增益。對(duì)子幀的最大增益超過(guò)40%,而對(duì)文件平均增益為約11%。V.在自適應(yīng)編碼/解碼中選擇性地使用多種熵模型在某些實(shí)施例中,諸如圖2、4或6所示的編碼器執(zhí)行自適應(yīng)熵編碼,其中編碼器選擇性地使用多個(gè)熵模型。對(duì)應(yīng)的解碼器(諸如圖3、5或7所示)執(zhí)行自適應(yīng)熵解碼,其中解碼器選擇性地使用多個(gè)熵模型。選擇性地使用多個(gè)熵模型的技術(shù)和工具適用于其中碼元值具有多個(gè)概率分布的各種情形,包括音頻、視頻、圖像或任何其它數(shù)據(jù)的無(wú)損和有損壓縮和解壓。A.示例問(wèn)題域通常在碼元值的概率分布變化時(shí)使用碼元的自適應(yīng)編碼來(lái)改善熵編碼的效率。自適應(yīng)算術(shù)編碼可直接使用不同或變化的概率分布。對(duì)于自適應(yīng)可變長(zhǎng)度編碼(諸如自適應(yīng)哈夫曼編碼),用于碼元值的不同熵模型被包含在不同或變化的VLC表中。釆用后向自適應(yīng),編碼/解碼基于已處理的碼元來(lái)自適應(yīng)。使用前向自適應(yīng),描述自適應(yīng)的信息被明確地用信號(hào)表示。例如,用信號(hào)表示一表切換碼以指示要用于一系列碼元的VLC表。自適應(yīng)可通過(guò)動(dòng)態(tài)地改變概率分布(或用于可變長(zhǎng)度編碼/解碼的對(duì)應(yīng)VLC)來(lái)實(shí)現(xiàn)?;蛘撸赃m應(yīng)可通過(guò)從一組固定的不同的、預(yù)先訓(xùn)練的概率分布(或?qū)?yīng)的VLC表)來(lái)實(shí)現(xiàn)。使用多個(gè)不同分布/VLC表的一個(gè)缺點(diǎn)是編碼器和解碼器所需的存儲(chǔ)器,因?yàn)樗褂玫拇鎯?chǔ)器隨著分布/VLC表的數(shù)目呈線性地增長(zhǎng)。例如,如果使用了16個(gè)VLC表,則與單個(gè)VLC表的情況相比,在編碼器和解碼器中對(duì)VLC表使用了大約16倍的存儲(chǔ)器??偠灾枋隽擞糜谶x擇性地使用多個(gè)熵模型的技術(shù)和工具可解決的問(wèn)題。然而,不一定要應(yīng)用這些技術(shù)和工具來(lái)解決這一問(wèn)題。B.選擇性地使用多個(gè)熵模型選擇性地使用多個(gè)熵模型可顯著減少對(duì)多個(gè)分布/VLC表的資源使用。同時(shí),仍可實(shí)現(xiàn)與使用多個(gè)熵模型相關(guān)聯(lián)的大多數(shù)編碼增益。在各種常見情形中,選擇性地使用多個(gè)熵模型涉及對(duì)某些但非全部碼元值在不同分布/VLC表之間選擇。更一般地,它涉及在被分層組織的不同分布/VLC表之間選擇以對(duì)某些碼元值實(shí)現(xiàn)較多自適應(yīng)性而多其它碼元值實(shí)現(xiàn)較少自適應(yīng)性。假定根據(jù)某一測(cè)試,一組碼元值包括某些較有可能的碼元值和某些較不可能的碼元值。為減少用于分布/表的存儲(chǔ)器,編碼器和解碼器對(duì)較有可能的碼元值使用多個(gè)分布/表,但在多個(gè)分布/表中不表示較不可能的碼元值。這減少了用于多個(gè)分布/表的存儲(chǔ)器,但對(duì)編碼增益有可忽略的損失。(在許多情形中,相對(duì)較小一部分碼元值解決了很大百分比的概率分布)。具體地,如果熵模型被視為對(duì)一給定自適應(yīng)狀態(tài)是有條件的,則在各個(gè)不同狀態(tài)中,對(duì)較有可能的碼元值有不同的分布。然而,在不同狀態(tài)中,對(duì)較不可能的碼元值的相對(duì)分布是相同的。對(duì)于一組256個(gè)碼元值,如果大部分時(shí)間使用了這些碼元值中的32個(gè),則編碼器和解碼器可在用于32個(gè)碼元值的6個(gè)VLC表之間切換,其中這6個(gè)VLC表中的每一個(gè)還包括用于切換到用于另外224個(gè)碼元值的單個(gè)VLC表的逸出碼?;蛘?,假定對(duì)該組256個(gè)碼元值,大部分時(shí)間使用其中的7個(gè)碼元值,偶爾使用其中的21個(gè)碼元值,并且其余的碼元很少使用。編碼器和解碼器可在用于7個(gè)最常用的碼元值的11個(gè)VLC表之間切換,其中這11個(gè)VLC表中的每一個(gè)包括用于切換到用于21個(gè)接下來(lái)最常用的碼元值的2個(gè)VLC表的逸出碼。(逸出碼后可跟有用于前向自適應(yīng)的表選擇信息。)用于這21個(gè)碼元值的2個(gè)VLC表中的每一個(gè)包括用于切換到用于其余碼元值的VLC表的逸出碼。圖22示出了在熵模型/狀態(tài)的分層組織(例如,分布、VLC表)方面更復(fù)雜的示例。編碼器和解碼器對(duì)碼元值B、F、H和I使用8個(gè)熵模型,其中8個(gè)熵模型中的每一個(gè)還包含了兩個(gè)切換點(diǎn)。例如,如果編碼器和解碼器對(duì)熵模型使用概率分布,則切換點(diǎn)是分布中的特殊切換概率值。如果編碼器和解碼器對(duì)熵模型使用VLC表,則切換點(diǎn)是逸出碼或其它特殊VLC。在8個(gè)熵模型中,第一個(gè)切換點(diǎn)用于切換到用于碼元值A(chǔ)和C的熵模型,而第二個(gè)切換點(diǎn)用于切換到用于碼元值D、E、G、J和K的熵模型。編碼器和解碼器對(duì)碼元值A(chǔ)和C使用三個(gè)熵模型。編碼器和解碼器對(duì)碼元值E、J和K使用4個(gè)熵模型,其中這4個(gè)熵模型中的每一個(gè)還包含一切換點(diǎn)。該切換點(diǎn)用于切換到用于碼元值D和G的熵模型。在圖22中,碼元值的一個(gè)子集具有比其超集少的相關(guān)聯(lián)熵模型。這與其中對(duì)較有可能的碼元值實(shí)現(xiàn)更多的自適應(yīng)性,而對(duì)較不可能的碼元值實(shí)現(xiàn)較少的自適應(yīng)行的許多常見情形相一致。然而,作為替代,子集可具有比其超集多的相關(guān)聯(lián)熵模型。多個(gè)熵模型之間的選擇可以通過(guò)后向自適應(yīng)機(jī)制或前向自適應(yīng)機(jī)制來(lái)進(jìn)行。多個(gè)熵模型本身可以是固定且預(yù)先訓(xùn)練的,或者它們可動(dòng)態(tài)改變。熵模型可以適用于各種熵編碼和解碼方案。算術(shù)編碼和解碼可對(duì)某些但全部碼元值選擇性地使用多個(gè)概率分布。或者,可變長(zhǎng)度編碼和解碼可對(duì)某些但非全部碼元值使用多個(gè)VLC1.調(diào)整狀態(tài)的分布為使編碼器或解碼器對(duì)某些碼元值(但非全部碼元值)選擇性地使用多個(gè)熵模型,相應(yīng)地調(diào)整多個(gè)熵模型。以下分析參考一簡(jiǎn)單示例示出了對(duì)一組狀態(tài)的實(shí)際概率分布的調(diào)整。假定有標(biāo)為S(刀=S(O),S(l),...,S(7V-1)的N個(gè)狀態(tài)用于自適應(yīng)標(biāo)為=義(0),Z(l),...,Z(M-1)的M個(gè)碼元值的分布。尸s指示狀態(tài)的概率分布,其中&(y)是狀態(tài)為^G')的概率。^(力,義指示當(dāng)在狀態(tài)^C/)下時(shí)碼元值的概率分布,其中&(y),;^)是當(dāng)在狀態(tài)S(/)下時(shí)一碼元具有值義(0的概率分布。在M個(gè)碼元值中,L個(gè)碼元值被指定為較有可能的,而M-L個(gè)碼元值被指定為較不可能的。該組L個(gè)較有可能的碼元值是集合Q,而該組M-L個(gè)較不可能的碼元值是集合R。較有可能相比較不可能碼元的指定是實(shí)現(xiàn)相關(guān)且是靈活的,然而正確的指定導(dǎo)致更高效的編碼。并不要求對(duì)所有狀態(tài)S(力,&(A;^)>&(y),;^),其中X(《)指示Q中的一個(gè)碼元值,而Z(O指示R中的一個(gè)碼元值。換言之,并不要求給定的"較有可能的"碼元值在每一狀態(tài)下具有比給定的"較不可能的"碼元值高的概率。對(duì)狀態(tài)S(/)的經(jīng)修正的分布P逼近對(duì)狀態(tài)的實(shí)際碼元值分布&(刀,義。尸^.X義逼近&C/),義,使得(!)對(duì)集合R中的碼元值義(0的條件分布尸's(A義(z),w對(duì)所有S(/)相同,但是(2)對(duì)集合Q中的碼元值的分布對(duì)任何給定SC/)都不改變(對(duì)集合Q中的碼元值義(/),尸'巧v^.)=_/),卯))。假定N-3且M-5。狀態(tài)集合是A^{S(0),S(1),S(2)},并且碼元值集合是M-{Z(0),Z(1),X(2)J(3)J(4)}。還假定狀態(tài)概率是A(o)=0.5,&(i)=0.2,Ps(2)=0.3,如表3所示。由此,處于狀態(tài)0的概率是50%,處于狀態(tài)1的概率是20%,處于狀態(tài)2的概率是30%。<table>tableseeoriginaldocumentpage38</column></row><table><table>tableseeoriginaldocumentpage39</column></row><table>表4各狀態(tài)中碼元值的實(shí)際概率分布作為一個(gè)任意閾值,假定如果對(duì)任一狀態(tài),該狀態(tài)中的碼元值義(/)的概率乘以處于該狀態(tài)的概率大于O.l,則碼元值屬于較有可能的集合Q。即,如果對(duì)給定義(/),對(duì)任何S(刀,*尸w)〉0.1,則碼元值X(/)在集合Q中。否則,碼元值義(Z)在集合R中。對(duì)于表4中的分布,£=2,Q=(X(1),I(3))并且={義(0),^(2),義(4)}。(注意,即使&(2),義(0)>A(2),;r(),碼元值Z(1)也被指定為較有可能的碼元值,而碼元值義(0)仍被指定為較不可能的碼元值。在狀態(tài)S(1)中,Z(1)具有非常高的概率。)或者,閾值和/或測(cè)試是不同的。例如,閾值按照碼元值的百分比來(lái)設(shè)置,或者測(cè)試需要多個(gè)不同狀態(tài)中的高概率。一般而言,對(duì)于集合Q和R的大小的給定約束,可通過(guò)查看實(shí)際和近似分布之間的相對(duì)熵來(lái)找到最優(yōu)劃分。(一般而言,如此處所使用的,術(shù)語(yǔ)"最優(yōu)"描述了根據(jù)某一參數(shù)化或建模,比其它解決方案更好滿足某組準(zhǔn)則的解決方案,該解決方案取決于環(huán)境在絕對(duì)方面可以是也可以不是最優(yōu)的,而術(shù)語(yǔ)"優(yōu)化"用于指示找到這一解決方案的過(guò)程。)在該近似中,對(duì)集合Q中的碼元值Z(/),尸'w),外.)=^c/),鄰)。對(duì)狀態(tài)S(力的分布對(duì)于集合Q中的碼元未修改。然而,對(duì)于集合R中的碼元值義(/),近似分布是不同的。開始,計(jì)算對(duì)集合R中的碼元值的實(shí)際條件分布&(^j(,)^。對(duì)于集合R中的碼元值,實(shí)際條件分布(去除了集合Q中的碼元值X(1),義(3)的貢獻(xiàn),并僅用來(lái)自X(0),X(2),義(4)的貢獻(xiàn)來(lái)加權(quán))在表5中給出。&(0),義(0),^是<table>tableseeoriginaldocumentpage39</column></row><table>表5對(duì)集合R中的碼元值的實(shí)際條件分布然后,近似條件分布尸、y),義(/),y被計(jì)算為即,當(dāng)在集合R中時(shí)近似條件分布是在N個(gè)狀態(tài)上的實(shí)際條件分布的加權(quán)平均(按照&(力)。對(duì)于表4和5中的值,當(dāng)在集合R中時(shí)的近似條件分<table>tableseeoriginaldocumentpage40</column></row><table>表6對(duì)集合R中的碼元值的近似條件分布對(duì)每一狀態(tài)S(力的最終近似分布為(2)由此,對(duì)集合Q中的碼元值,在對(duì)狀態(tài)5^)的近似分布中使用了狀態(tài)s(y)中的實(shí)際概率值。對(duì)于集合R中的碼元值,將對(duì)該碼元值的近似條件分布概率尸'^),耶),w乘以對(duì)狀態(tài)s(力集合R中的碼元值的實(shí)際概率之和。對(duì)于碼元值x(o)和狀態(tài)<formula>formulaseeoriginaldocumentpage40</formula>。對(duì)于表4和6中的其它值,對(duì)狀態(tài)S(/)的最終近似概率分布在表7中給出。<table>tableseeoriginaldocumentpage40</column></row><table>表7各狀態(tài)中對(duì)碼元值的最終近似分布基本上,將表7與表4進(jìn)行比較,對(duì)于較有可能的碼元值Z(1),X(3),分布未改變,而對(duì)于較不可能的碼元值X(0),義(2),Z(4),分布已改變以實(shí)施對(duì)集合R中的碼元值的相對(duì)概率在各狀態(tài)之間相同的條件。即,在表7中的每一狀態(tài)中,X(O)的可能性是義(2)的兩倍,且Z(0)的可能性是義(4)的兩倍。對(duì)于一般的情況,從對(duì)M個(gè)碼元的N個(gè)狀態(tài)開始,可通過(guò)將對(duì)于集合R的N個(gè)條件分布聚集成P個(gè)分布(其中P<N)來(lái)減少用于某些碼元值(集合R)的狀態(tài)數(shù)。這一過(guò)程然后可對(duì)M個(gè)碼元值的某一其它子集重復(fù)。它還可在集合R的P個(gè)聚集的分布上遞歸地重復(fù),其中集合R具有帶P個(gè)狀態(tài)的風(fēng)個(gè)碼元值(IRI表示集合R中的元素的勢(shì)或個(gè)數(shù))。這對(duì)M個(gè)碼元值的N個(gè)狀態(tài)(或分布,或聚類)施加了約束。這些約束可在固定了用于M個(gè)碼元的N個(gè)狀態(tài)之后施加,或者為得到更多最優(yōu)性,可在訓(xùn)練階段本身期間施加。訓(xùn)練將以用于M個(gè)碼元的大量分布開始,并且將得到N個(gè)聚集的分布,使得它們滿足關(guān)于條件分布的額外約束。2.示例VLC表不同狀態(tài)中的碼元值的近似分布可用于各種類型的自適應(yīng)熵編碼和解碼,包括哈夫曼編碼和解碼以及其它可變長(zhǎng)度編碼和解碼。哈夫曼碼表可被視為樹,其中該樹的每一葉對(duì)應(yīng)于一碼元值。該樹的左分支具有與一個(gè)二進(jìn)制值(例如,o)的關(guān)聯(lián),并且該樹的右分支具有與相反的二進(jìn)制值(例如l)的關(guān)聯(lián)。圖23所示的樹對(duì)應(yīng)于表7中所示的近似分布。在圖23中,各個(gè)樹的虛線部分針對(duì)集合R中的碼元值,而該樹的其它部分針對(duì)集合Q中的碼元值。在表7所示的近似分布中,集合R中的碼元值的條件分布不管狀態(tài)如何都是相同的,因此圖23中的每一樹都可具有用于集合R中的碼元值公共且相同的分支。該公共、相同分支的放置可以是樹中的任何位置,一般取決于該公共分支中表示的碼元值的概率的累積與該樹的其它碼元值的概率相比如何。由此,該公共分支可以在各樹之間或高或低。對(duì)于圖23中的任何給定樹/狀態(tài),用于集合R中的所有碼元值的VLC具有如由該樹中的分支的放置所指示的相同前綴。另外,不論圖23中的狀態(tài)如何,集合R中的每一碼元值都具有如由該公共、相同分支所指示的公共后綴。對(duì)于圖23中的樹,示例哈夫曼碼如下。<table>tableseeoriginaldocumentpage41</column></row><table>表8示例哈夫曼碼和表同一表可用于狀態(tài)S(O)和S(l)。在狀態(tài)S(0)和S(1)中,用于集合R中的碼元值的公共前綴(示為帶下劃線的)不論集合R中的碼元值如何都是"11"。在狀態(tài)S(2)中,用于集合R中的碼元值的公共前綴(示為帶下劃線的)是"10"。在狀態(tài)S(O)、S(1)和S(2)中,用于各個(gè)碼元值的后綴(示為加粗)是相同的。(用于Z(0)的后綴是"0",用于Z(1)的后綴是"10",用于JT(2)的后綴是"11"。)在這一情況下,用于近似的分布的哈夫曼碼方便了用于集合R中的碼元值的二階段編碼/解碼,并且可用其來(lái)實(shí)現(xiàn)。表8所示的代碼可如表9和10中所示地進(jìn)一步拆分。<table>tableseeoriginaldocumentpage42</column></row><table>表9用于各個(gè)狀態(tài)的第一階段碼表<table>tableseeoriginaldocumentpage42</column></row><table>表10用于所有狀態(tài)的第二階段碼表對(duì)于具有集合R中的一個(gè)值的碼元,編碼器首先編碼表示集合R中的所有碼元值的逸出碼。這用信號(hào)表示了從用于對(duì)特定狀態(tài)的集合Q中的碼元值的第一碼表到用于跨所有狀態(tài)的集合R中的碼元值的第二碼表的切換。編碼器然后從第二碼表中編碼適當(dāng)?shù)拇a。在哈夫曼碼表的更復(fù)雜的分層組織中,哈夫曼碼表可包括多個(gè)公共分支,每一公共分支對(duì)應(yīng)于對(duì)碼元值的一不同子集的單個(gè)條件分布。在二階段實(shí)現(xiàn)中,第一階段哈夫曼碼表可包括多個(gè)逸出碼,對(duì)多個(gè)公共分支中的每一個(gè)都有一逸出碼。更一般地,哈夫曼碼表可用任意的分層結(jié)構(gòu)來(lái)組織,其中使用了逸出碼(以及可能的其它選擇信息)來(lái)切換到另一個(gè)或一組哈夫曼碼表。在一特定表中,也可使用逸出碼來(lái)切換到用于某些碼元值的固定長(zhǎng)度編碼/解碼方案(而非切換到另一表)?;蛘?,構(gòu)造不遵循哈夫曼碼的規(guī)則的其它類型的VLC表。例如,單個(gè)VLC表將VLC與對(duì)一組狀態(tài)中的全部狀態(tài)的集合R中的碼元值相關(guān)聯(lián),而多個(gè)VLC表(對(duì)該組中的每一狀態(tài)有一個(gè)表)將VLC與集合Q中的碼元值相關(guān)聯(lián)。此外,盡管以上示例示出了固定的、預(yù)先訓(xùn)練的碼表,但是替換地,碼表可取決于已處理的碼元值來(lái)動(dòng)態(tài)改變其代碼。對(duì)于這種動(dòng)態(tài)改變的表,編碼器和解碼器仍可對(duì)某些碼元值選擇性地使用多個(gè)碼表,并對(duì)其它碼元值使用單個(gè)碼表。一般而言,如果對(duì)M個(gè)碼元值有N個(gè)狀態(tài),則有N個(gè)VLC表,或者如果使用哈夫曼碼,則有N個(gè)樹。如果有M個(gè)碼元值的L個(gè)不相交的子集,這L個(gè)子集中的每一個(gè)都具有尸,個(gè)狀態(tài),其中/=0,1,...,1-1且對(duì)所有/,尸/<W,則N個(gè)樹中的每一個(gè)都具有L個(gè)分支(標(biāo)為&,,每一分支6,是從對(duì)該子集/可用的尸/個(gè)公共分支之一中選擇的。此外,如果L個(gè)子集中的任一個(gè)再次遞歸地劃分成各子集,每一子集具有比其父集中更少的狀態(tài),則關(guān)于尸/個(gè)分支中發(fā)出的各分支情況也是相同的。3.用于算術(shù)編碼/解碼的示例分布在其它編碼器/解碼器中,在算術(shù)編碼/解碼中使用了近似分布。算術(shù)編碼一般涉及將一系列碼元表示為給定范圍內(nèi)的單個(gè)數(shù)字。通常,該數(shù)字是0到l之間的分?jǐn)?shù)。碼元通過(guò)將其置于范圍的一部分中來(lái)編碼,其中該范圍取決于碼元值的概率分布來(lái)劃分。對(duì)于在算術(shù)編碼和解碼中的使用,表7所示的近似分布可被拆分成表6和表11。表11中對(duì)Z(O)、X(2)和X(4)的切換值指示從表11所示的狀態(tài)/分布之一到表6所示的狀態(tài)/分布的改變。<table>tableseeoriginaldocumentpage43</column></row><table>表ll對(duì)具有Q種組合的碼元值的近似分布盡管以上示例示出了固定的、預(yù)先訓(xùn)練的分布,但是替換地,分布可以取決于已被處理的碼元值而動(dòng)態(tài)地改變。對(duì)于這一動(dòng)態(tài)改變的分布,編碼器和解碼器仍可選擇性地對(duì)某些碼元值使用多個(gè)分布,而對(duì)其它碼元值使用單個(gè)分布。4.確定熵模型的示例訓(xùn)練當(dāng)編碼器和解碼器對(duì)碼元選擇性地使用多個(gè)熵模型時(shí),熵模型最終取決于這些碼元的概率分布信息。在某些實(shí)現(xiàn)中,諸如編碼器或統(tǒng)計(jì)分析軟件等工具使用以下方法來(lái)確定用于熵模型的狀態(tài)和概率分布。圖24示出了用于將概率分布聚集成用于多熵模型編碼/解碼方案的狀態(tài)的二階段技術(shù)(2400)。該技術(shù)(2400)將碼元值的概率分布作為訓(xùn)練向量來(lái)對(duì)待,并且訓(xùn)練向量被歸組成聚類,這類似于用于向量量化方案的聚集方法。開始,該工具獲得(2410)用于訓(xùn)練向量的實(shí)際概率分布。訓(xùn)練向量來(lái)自代表源的訓(xùn)練集。例如,對(duì)于音頻編碼/解碼,子幀中的碼元值的概率分布變?yōu)橐粋€(gè)訓(xùn)練向量。對(duì)于一般的音頻編碼/解碼,該訓(xùn)練集包括多個(gè)音頻源,使得對(duì)不同音頻源的多個(gè)子幀獲得概率分布。訓(xùn)練向量可從各比特率和/或質(zhì)量設(shè)置下的訓(xùn)練中獲得。該工具然后使用第一成本度量來(lái)聚集(2420)訓(xùn)練向量。例如,第一成本度量是均方誤差("MSE")。聚集本身可使用如參考圖25所解釋的通用Lloyd算法("GLA")的變型或使用某一其它機(jī)制?;旧?,在GLA變型中,該工具迭代地將訓(xùn)練向量聚集成給定數(shù)目的聚類,在對(duì)給定解碼器找到最優(yōu)編碼器和對(duì)給定編碼器找到最優(yōu)解碼器之間迭代。在幾次迭代之后,該工具找出一組使得第一成本度量被最小化的聚類。該工具然后使用第二成本度量來(lái)細(xì)化(2430)聚類。例如,第二成本度量是相對(duì)熵度量。Itakura-Saito距離是測(cè)量?jī)蓚€(gè)概率分布之間的相對(duì)熵的一種方式。在細(xì)化(2430)中,聚集邏輯的各部分可以與用于第一成本度量的聚集邏輯的各部分相同或不同。由此,根據(jù)圖24,該工具使用二階段訓(xùn)練過(guò)程。在第一階段中,該工具使用第一成本度量(例如,MSE)來(lái)獲得用于分布的近似概率質(zhì)量函數(shù)("PMF")聚類。在第二階段中,該工具使用第二成本度量(例如,Itakura-Saito距離)來(lái)進(jìn)一步細(xì)化PMF聚類。MSE的計(jì)算相對(duì)簡(jiǎn)單,但是沒(méi)有對(duì)用于編碼/解碼目的的熵以及相對(duì)熵度量進(jìn)行建模。另一方面,相對(duì)熵是用于細(xì)化聚類的一種有效度量,但是當(dāng)它是所使用的唯一度量時(shí)會(huì)導(dǎo)致非最優(yōu)的聚集。在許多情況下,二階段訓(xùn)練不僅在復(fù)雜性方面更快(因?yàn)橄鄬?duì)熵的計(jì)算更復(fù)雜),而且還導(dǎo)致用于編碼/解碼應(yīng)用的更好的聚類?;蛘撸摴ぞ呤褂昧硪环N方法來(lái)確定狀態(tài)和概率分布。例如,該工具對(duì)第一或第二成本度量使用除MSE或相對(duì)熵之外的度量?;蛘?,該工具在單階段過(guò)程中使用單個(gè)成本度量。圖25示出了用于根據(jù)GLA的變型來(lái)聚集訓(xùn)練向量的技術(shù)(2500)。與圖24中一樣,該技術(shù)(2500)將碼元值的概率分布作為訓(xùn)練向量來(lái)對(duì)待,并且訓(xùn)練向量被歸組成聚類。開始,該工具從訓(xùn)練向量中計(jì)算(2510)單個(gè)聚類。例如,對(duì)于一般的音頻編碼/解碼,訓(xùn)練向量是對(duì)來(lái)自諸如以不同比特率和/或質(zhì)量設(shè)置編碼的音頻文件等不同音頻源的子幀的概率分布。所獲得的訓(xùn)練向量的個(gè)數(shù)取決于實(shí)現(xiàn)。在一種實(shí)現(xiàn)中,該工具獲得所計(jì)算的最終聚類的大約100倍的訓(xùn)練向量。單個(gè)聚類是訓(xùn)練向量的質(zhì)心,通過(guò)對(duì)訓(xùn)練向量求平均或訓(xùn)練向量的某種其它組合來(lái)計(jì)算。該工具然后將單個(gè)聚類拆分(2520)成多個(gè)聚類。例如,該工具使用主分量分析來(lái)將單個(gè)聚類拆分成兩個(gè)聚類;一個(gè)是原始聚類,而另一個(gè)是原始聚類加上實(shí)現(xiàn)相關(guān)常量乘以主分量(例如,另一個(gè)是沿主分量的方向有某一偏移的聚類)?;蛘?,該工具使用某種其它分析來(lái)將聚類拆分成多個(gè)聚類。該工具根據(jù)某一成本度量在多個(gè)當(dāng)前聚類之間對(duì)訓(xùn)練矢量進(jìn)行分類(2530)。例如,成本度量是MSE、相對(duì)熵或某一其它度量。訓(xùn)練向量與聚類的MSE之比指示了訓(xùn)練向量的概率分布點(diǎn)與聚類的對(duì)應(yīng)點(diǎn)之間的歐幾里德距離。訓(xùn)練向量和聚類之間的相對(duì)熵可給出訓(xùn)練向量和聚類之差如下-Z訓(xùn)練向量ZlOg2(聚類JA(3)其中k指示訓(xùn)練向量和聚類中的點(diǎn)。較不正式而言,相對(duì)熵指示了由于訓(xùn)練向量和聚類之間的失配而導(dǎo)致的比特率損失。該工具將一訓(xùn)練向量與對(duì)其該訓(xùn)練向量具有最低MSE、最低相對(duì)熵等的聚類分類在一起。該工具從所分類的訓(xùn)練向量中重新計(jì)算(2540)當(dāng)前聚類。例如,對(duì)每一當(dāng)前聚類,該工具計(jì)算被分類到該聚類的訓(xùn)練向量的質(zhì)心?;蛘?,該工具將每一當(dāng)前聚類計(jì)算為被分類到該聚類的訓(xùn)練向量的某一其它組合。該工具確定(2545)聚類是否已穩(wěn)定。例如,該工具檢查重新計(jì)算(2540)之前和之后聚類中的變化是否滿足某一準(zhǔn)則。一個(gè)準(zhǔn)則是聚類在重新計(jì)算(2540)中未位移多于某一閾值量,其中閾值量取決于實(shí)現(xiàn)?;蛘撸摴ぞ呖紤]其它和/或附加準(zhǔn)則。如果聚類未穩(wěn)定,則該工具根據(jù)成本度量在(重新計(jì)算(2540)的)當(dāng)前聚類之間分類(2530)訓(xùn)練向量。當(dāng)當(dāng)前聚類穩(wěn)定時(shí),該工具確定(2550)是否有足夠的聚類。一般而言,期望的聚類數(shù)可被設(shè)為存儲(chǔ)器使用與編碼性能之間的折衷。具有更多聚類往往導(dǎo)致熵模型中的更多狀態(tài)和自適應(yīng)性,但以增加的用于儲(chǔ)存分布、VLC表等的存儲(chǔ)器使用為代價(jià)。當(dāng)使用前向自適應(yīng)時(shí),具有更多聚類也意味著用信號(hào)表示更多輔助信息(例如,用于指示分布、表等)。相反,具有較少聚類往往會(huì)增加訓(xùn)練向量和最終聚類之間的失配,這通常指示編碼期間熵模型和碼元值的實(shí)際分布之間的增加的失配。如果未達(dá)到所需數(shù)目的聚類,則該工具拆分(2560)部分或全部當(dāng)前聚類。例如,該工具使用主分量分析或某一其它分析來(lái)將一個(gè)聚類拆分成兩個(gè)聚類。假定該工具尋找G個(gè)最終聚類并且當(dāng)前具有F個(gè)當(dāng)前聚類,其中F〈G。如果拆分F個(gè)當(dāng)前聚類中的每一個(gè)將得到太多聚類,則該工具可將最前面(例如,按照有多少訓(xùn)練向量被分類到當(dāng)前聚類來(lái)計(jì)算的"最前面")的G-F個(gè)當(dāng)前聚類中的每一個(gè)拆分成兩個(gè)聚類。或者,該工具可僅僅在每次迭代中拆分第一個(gè)聚類或使用用于拆分的某一其它規(guī)則。該工具然后根據(jù)成本度量在(拆分(2560)的)當(dāng)前聚類之間分類(2530)訓(xùn)練向量。當(dāng)當(dāng)前聚類已穩(wěn)定并且達(dá)到了所需數(shù)目的聚類時(shí),該技術(shù)(2500)結(jié)束。分類(2530)、重新計(jì)算(2540)和拆分(2560)基本上構(gòu)成了GLA變型的一次迭代,并且在迭代期間,成本度量將減小。圖25的技術(shù)(2500)可被如下結(jié)合到圖24中的技術(shù)(2400)中。該工具使用MSE作為成本度量來(lái)執(zhí)行圖25的技術(shù)(2500),直到達(dá)到所需數(shù)目的聚類。此時(shí),該工具使用相對(duì)熵作為成本度量迭代地執(zhí)行分類(2530)、重新計(jì)算(2540)和檢查(2545)穩(wěn)定性,直到聚類穩(wěn)定/沒(méi)有位移多于某一闡值量。技術(shù)(2400、2500)可用于以逼近實(shí)際分布但對(duì)某些碼元值具有相同的條件分布的概率分布來(lái)產(chǎn)生最終聚類。按照第V.A.l節(jié)的分析框架,技術(shù)(2400、2500)可用于通過(guò)在分類和聚集操作中添加對(duì)集合R中的碼元值的條件分布對(duì)所有聚類/狀態(tài)都相同(對(duì)所有狀態(tài)S(/),尸'^),;^),w相同)的約束來(lái)產(chǎn)生如表7所示的近似概率分布。本質(zhì)上,對(duì)應(yīng)于集合R中的碼元值的聚類的維數(shù)如公式(1)和(2)中所示地受到約束。在分析中,處于給定狀態(tài)的概率&(力由被分類在對(duì)該狀態(tài)的聚類中的訓(xùn)練向量的個(gè)數(shù)來(lái)指示。另一約束是每一聚類的維數(shù)之和為1。參考圖25,在重新計(jì)算(2540)當(dāng)前聚類之后,可施加一個(gè)或多個(gè)條件分布約束。一般而言,假定對(duì)M個(gè)碼元值有N個(gè)狀態(tài),并且有M個(gè)碼元值的L個(gè)子集,L個(gè)子集中的每一個(gè)具有尸/個(gè)狀態(tài)和&個(gè)元素,其中尸,<W,/=0,1,....,。L個(gè)子集中給定一子集內(nèi)的所有碼元值可被歸組成一公共(逸出/切換)碼元值。將有L個(gè)這樣的逸出/切換碼元值。然后,訓(xùn)練繼續(xù)對(duì)M-(五o+A+.,.+五w)+L個(gè)碼元值(減去L個(gè)子集中的A個(gè)元素,并對(duì)逸出/切換碼元值加上L個(gè)元素)找出N個(gè)聚類(或分布)。然后,對(duì)M個(gè)碼元值的L個(gè)子集中的每一個(gè),在該子集內(nèi)計(jì)算條件分布。對(duì)L個(gè)子集中的每一個(gè)重復(fù)該訓(xùn)練,以找出用于這些子集中的每一個(gè)的尸,個(gè)聚類,其中/=0,i,...,li。用于此目的的訓(xùn)練向量將分別是l個(gè)子集內(nèi)的條件分布。如果L個(gè)子集中的任一個(gè)被進(jìn)一步細(xì)分,則可對(duì)該細(xì)分的子集遞歸地重復(fù)該過(guò)程,因?yàn)楝F(xiàn)在對(duì)A個(gè)碼元值有尸/個(gè)狀態(tài)。對(duì)于指定哪些碼元值在集合Q和R中,最初這是基于單個(gè)起始聚類的概率分布的。隨后,集合Q和R的構(gòu)成取決于處于各個(gè)狀態(tài)的概率(訓(xùn)練向量在各個(gè)聚類中的比例)以及聚類的概率分布。5.替換前述示例中的許多涉及對(duì)某些碼元值使用多個(gè)分布/表,并對(duì)其它碼元值使用單個(gè)分布/表。盡管該配置通常在不顯著損害熵編碼性能的情況下減少了存儲(chǔ)器使用,但是在第V節(jié)中描述的技術(shù)和工具更一般地適用于分層組織的熵模型。編碼器或解碼器可在對(duì)某些碼元值實(shí)現(xiàn)更多自適應(yīng)性并對(duì)其它碼元值實(shí)現(xiàn)更少自適應(yīng)性的分層組織中的不同熵模型之間選擇性地選取。分層組織的熵模型可對(duì)每一切換參考多個(gè)熵模型(例如,不僅切換到用于較不可能碼元值的單個(gè)熵模型)。例如,某一級(jí)的一組哈夫曼碼表包括一個(gè)哈夫曼碼表或多個(gè)哈夫曼碼表。訓(xùn)練可在多個(gè)階段中進(jìn)行。在第一訓(xùn)練階段,碼元值被指定為在集合Q或集合R中,其中對(duì)集合R中的碼元值的條件分布對(duì)所有狀態(tài)是相同的。然后,在用于集合R中的碼元值的后續(xù)訓(xùn)練階段中,對(duì)用于集合R中的碼元值的條件分布的較早約束被解除(lift),并且對(duì)集合R中的碼元值的概率分布被分類到用于不同熵模型的多個(gè)聚類/狀態(tài)中。一組熵模型的每一成員可包括到另一級(jí)上的不同組熵模型的切換點(diǎn)。例如,對(duì)于前向自適應(yīng),第一組哈夫曼碼表中的每一表包括兩個(gè)逸出碼一到第二組一個(gè)或多個(gè)哈夫曼碼表的第一逸出碼,以及到第三組一個(gè)或多個(gè)哈夫曼碼表的第二逸出碼。對(duì)于訓(xùn)練,碼元值可被指定為對(duì)第一組熵模型在集合Q中,對(duì)第二組熵模型在集合R中,對(duì)第三組熵模型在集合S中。對(duì)集合R中的碼元值的條件分布(忽略Q和S中的碼元值)對(duì)所有狀態(tài)是相同的,并且對(duì)集合S中的碼元值的條件分布(忽略Q和R中的碼元值)對(duì)所有狀態(tài)是相同的。除了附加范圍之外,分層組織的熵模型可包括三、四或更多級(jí)熵模型。例如,對(duì)于前向自適應(yīng),第一組哈夫曼碼表中的每一表包括到第二組哈夫曼碼表的逸出碼,而第二組哈夫曼碼表中的每一表包括到第三組哈夫曼碼表的逸出碼。訓(xùn)練可在多個(gè)階段中進(jìn)行。在第一階段,碼元值被指定為在對(duì)第一組熵模型在集合Q中或?qū)ζ渌啬P图诩蟁中。對(duì)集合R中的碼元值的條件分布(忽略Q中的碼元值)對(duì)所有狀態(tài)是相同的。然后,在對(duì)集合R中的碼元值的附加訓(xùn)練階段中,對(duì)條件分布的這一約束被解除,并且來(lái)自集合R的碼元值被指定為對(duì)第二組熵模型在集合S中,或者對(duì)任何其它組熵模型在集合T中。在這一階段中,對(duì)集合T中的碼元值的條件分布(忽略s中的碼元值)對(duì)所有狀態(tài)是相同的。除了可變長(zhǎng)度(例如,哈夫曼)編碼和解碼以及算術(shù)編碼和解碼之外,其它類型的熵編碼和解碼可結(jié)合對(duì)熵模型的選擇性使用。例如,變量到變量的編碼和解碼可包含分層組織的VLC表。C.用于編碼的示例技術(shù)圖26示出了以對(duì)多個(gè)熵模型的選擇性使用來(lái)編碼碼元的技術(shù)(2600)。諸如圖2、4或6所示的編碼器等編碼器執(zhí)行該技術(shù)(2600)。在波形音頻編碼器中,碼元通常是針對(duì)經(jīng)量化的頻譜系數(shù)的。經(jīng)量化的頻譜系數(shù)可被預(yù)處理(例如,通過(guò)系數(shù)預(yù)測(cè)或系數(shù)重排)。每一碼元可表示一經(jīng)量化的頻譜系數(shù)?;蛘?,每一碼元可表示一組經(jīng)量化的頻譜系數(shù)。對(duì)于向量哈夫曼編碼,例如,一個(gè)碼元表示一組4個(gè)經(jīng)量化的頻譜系數(shù)。對(duì)于行程級(jí)別編碼,例如,一個(gè)碼元表示一個(gè)行程級(jí)別對(duì)。對(duì)于一系列碼元,編碼器從第一組熵模型中選擇(2610)—個(gè)熵模型。例如,編碼器從對(duì)哈夫曼編碼或行程級(jí)別編碼可用的多個(gè)哈夫曼碼表中選擇一個(gè)哈夫曼碼表。或者,編碼器選擇在另一熵編碼方案中使用的熵模型。在某些實(shí)現(xiàn)中,編碼器取決于上下文信息來(lái)選擇熵模型。在其它實(shí)現(xiàn)中,編碼器在評(píng)估使用各種熵模型的編碼性能之后選擇一熵模型。以下描述使用網(wǎng)格結(jié)構(gòu)來(lái)選擇哈夫曼碼表的過(guò)程的一個(gè)示例?;蛘撸幋a器使用另一機(jī)制來(lái)選擇熵模型。返回到圖26,編碼器可任選地用信號(hào)表示(2620)指示所選的熵模型的信息。對(duì)于前向自適應(yīng),編碼器明確地用信號(hào)表示指示所選的熵模型的信息。一種前向自適應(yīng)機(jī)制在以下對(duì)哈夫曼碼表切換詳細(xì)描述?;蛘撸幋a器使用另一信號(hào)表示機(jī)制。對(duì)于后向自適應(yīng),對(duì)熵模型的選擇從解碼器處可用的上下文中推導(dǎo)。編碼器然后使用所選的熵模型來(lái)對(duì)該一系列碼元進(jìn)行熵編碼(2630)。在熵模型中的任何切換點(diǎn)處,編碼器可切換到另一組一個(gè)或多個(gè)熵模型。例如,編碼器使用第一哈夫曼碼表中的逸出碼來(lái)用信號(hào)表示到第二哈夫曼碼表的切換,然后使用該第二哈夫曼碼表來(lái)編碼碼元。編碼器然后用信號(hào)表示(2640)經(jīng)熵編碼的碼元。當(dāng)發(fā)生任何切換時(shí),編碼器也可用信號(hào)表示諸如逸出碼等切換信息或用于在模型集內(nèi)選擇的其它模型切換編碼器確定(2650)是否繼續(xù)下一序列,如果是,則選擇(2610)用于下一序列的碼元的熵模型。例如,當(dāng)在一個(gè)實(shí)現(xiàn)中使用哈夫曼碼表來(lái)編碼經(jīng)量化的頻譜系數(shù)時(shí),允許編碼器在樹皮邊界(barkboundary)處改變碼表。換言之,劃分頻譜的樹皮邊界用作改變從第一碼表集中選擇的哈夫曼碼表的可能改變位置。如果用于所編碼的當(dāng)前碼元的系數(shù)延伸超過(guò)了樹皮邊界(例如,由于碼元表示跨邊界的系數(shù)向量或系數(shù)行程級(jí)別對(duì)),則當(dāng)前碼元的系數(shù)的末尾變?yōu)橛行Ц淖兾恢??;蛘?,編碼器在其它改變位置處改變來(lái)自第一模型集的熵模型的選擇,并且根據(jù)所選的熵模型編碼的碼元序列具有某一其它持續(xù)時(shí)間。如上所述,在一個(gè)實(shí)現(xiàn)中,編碼器使用網(wǎng)格結(jié)構(gòu)來(lái)選擇哈夫曼碼表以評(píng)估不同的表。編碼器用所有可能的表來(lái)編碼兩個(gè)有效表改變位置(是樹皮邊界)之間的所有碼元。編碼器跟蹤每一表使用的位數(shù)來(lái)編碼碼元。編碼器構(gòu)造網(wǎng)格來(lái)找到最佳的可能編碼,考慮了在改變表時(shí)要用信號(hào)表示的比特。假定6,,,是在編碼到表改變位置Z時(shí)使用的最小位數(shù),其中表/是使用的上一個(gè)表。位計(jì)數(shù)",是使用表/來(lái)編碼改變位置/和改變位置&l之間的碼元所需的位。位計(jì)數(shù)^a是編碼在改變位置f處從表/到的表f的表改變所需的位。換言之,在改變位置f處使用的上一個(gè)表是表/,現(xiàn)在用表f來(lái)編碼到改變位置什l。表,.是在改變位置M處使用以獲得其中改變位置f處的當(dāng)前表是表f的最優(yōu)編碼的表。a(4)、,,n(、+氣,編碼器通過(guò)找出最小化&wa;t,,的/來(lái)對(duì)整個(gè)子幀或序列的其它部分確定最優(yōu)編碼,其中加^是/的最大值。編碼器通過(guò)査看w的值跟蹤最優(yōu)路徑來(lái)找出最優(yōu)表。編碼表改變所需的位基本上是10g2(表數(shù))+l0g2(剩余樹皮數(shù))+l。當(dāng)一表改變時(shí),編碼器發(fā)送一個(gè)位的信號(hào)來(lái)指示這是否是使用的最后一個(gè)表,并且如果不是使用的最后一個(gè)表,則編碼器用信號(hào)表示1og2(剩余樹皮數(shù))來(lái)對(duì)該表適用于多少樹皮帶進(jìn)行編碼。D.用于解碼的示例技術(shù)圖27示出了用于以對(duì)多個(gè)熵模型的選擇性使用來(lái)解碼碼元的技術(shù)(2700)。諸如圖3、5或7所示的解碼器等解碼器執(zhí)行該技術(shù)(2700)。在波形音頻解碼器中,碼元通常是針對(duì)經(jīng)量化的頻譜系數(shù)的。如果經(jīng)量化的頻譜系數(shù)已在編碼期間被預(yù)處理(例如,通過(guò)系數(shù)預(yù)測(cè)或系數(shù)重排),則系數(shù)在熵解碼之后進(jìn)行后處理(例如,通過(guò)系數(shù)預(yù)測(cè)或系數(shù)重排)。每一碼元可以表示一經(jīng)量化的頻譜系數(shù)?;蛘撸恳淮a元可表示一組經(jīng)量化的頻譜系數(shù)。對(duì)于向量哈夫曼編碼,例如,一碼元表示一組4個(gè)經(jīng)量化的頻譜系數(shù)。對(duì)于行程級(jí)別編碼,例如,一碼元表示一行程級(jí)別對(duì)。對(duì)于一系列碼元,解碼器可任選地解析(2710)指示所選熵模型的信息。例如,對(duì)于前向自適應(yīng),解碼器使用作為編碼器側(cè)信號(hào)傳送的鏡像的機(jī)制來(lái)解析指示所選熵模型的信息。解碼器從第一組熵模型中選擇(2720)—熵模型。例如,解碼器從對(duì)向量哈夫曼解碼或行程等級(jí)解碼可用的多個(gè)哈夫曼碼表中選擇一哈夫曼碼表?;蛘撸獯a器選擇在另一熵解碼方案中使用的熵模型。在某些實(shí)現(xiàn)中,解碼器取決于用于后向自適應(yīng)的上下文信息來(lái)選擇熵模型。在其它實(shí)現(xiàn)中,解碼器基于編碼器用信號(hào)表示的并從比特流中解析(2710)的信息來(lái)選擇熵模型。解碼器然后使用所選的熵模型來(lái)對(duì)該一系列碼元進(jìn)行熵解碼(2730)。在熵模型中的任何切換點(diǎn)處,解碼器可切換到另一組一個(gè)或多個(gè)熵模型。例如,解碼器接收指示到第二哈夫曼碼表的切換的、第一哈夫曼碼表的逸出碼,然后使用第二哈夫曼碼表來(lái)解碼碼元。編碼器然后輸出(2740)用于經(jīng)熵解碼的碼元,例如準(zhǔn)備好后續(xù)處理的經(jīng)量化的頻譜系數(shù)的信息。解碼器確定(2750)是否繼續(xù)下一序列,如果是,則選擇(2710)用于下一序列的碼元的熵模型。例如,當(dāng)在一個(gè)實(shí)現(xiàn)中使用哈夫曼碼表來(lái)解碼經(jīng)量化的頻譜系數(shù)時(shí),允許解碼器在樹皮邊界處改變碼表。如果用于所解碼的當(dāng)前碼元的系數(shù)延伸超過(guò)了樹皮邊界(例如,因?yàn)榇a元表示跨越邊界的系數(shù)向量或系數(shù)的行程級(jí)別對(duì)),則當(dāng)前碼元的系數(shù)的末尾變?yōu)橛行Ц淖兾恢谩;蛘?,解碼器在其它改變位置處改變對(duì)第一模型集中的熵模型的選擇,并且根據(jù)所選熵模型解碼的碼元序列具有某一其它持續(xù)時(shí)間。E.結(jié)果對(duì)較不可能的碼元值使用近似分布來(lái)編碼能夠節(jié)省編碼器和解碼器中的分布或碼表所需的存儲(chǔ)器。按照第V.A.l節(jié)的分析框架,編碼器和解碼器儲(chǔ)存用于尸W/);^。)的分布和/或碼表。即,編碼器和解碼器儲(chǔ)存用于集合Q中的碼元值義(O的每一狀態(tài)S(刀的分布和/或碼表。對(duì)于集合R中的碼元值義(O,編碼器和解碼器儲(chǔ)存用于單個(gè)分布尸'^),W)^的分布和域表。假定一表對(duì)每一狀態(tài)占據(jù)存儲(chǔ)器的B個(gè)字節(jié),并且有16個(gè)狀態(tài)。則在典型的全表情況下,編碼器和解碼器各自需要存儲(chǔ)器的16*8個(gè)字節(jié)來(lái)用于16個(gè)表。然而,如果僅碼元值的10%被指定為較有可能的(在集合Q中),則對(duì)所需存儲(chǔ)器的簡(jiǎn)單近似為(16*^*.1)+(5*.9)=2.5*5。由此,與全表情況相比,所需的存儲(chǔ)器被減少了6倍,而熵編碼增益僅有輕微的降低。鑒于可應(yīng)用所公開的本發(fā)明的原理的許多可能的實(shí)施例,應(yīng)當(dāng)認(rèn)識(shí)到,所示實(shí)施例僅是本發(fā)明的優(yōu)選示例,并且不應(yīng)認(rèn)為是限制本發(fā)明的范圍。相反,本發(fā)明的范圍由所附權(quán)利要求書來(lái)定義。因此,要求保護(hù)落入這些權(quán)利要求的精神和范圍內(nèi)的所有內(nèi)容作為本發(fā)明。權(quán)利要求1.一種方法,包括對(duì)于多個(gè)碼元,從包括多個(gè)熵模型的第一模型集中選擇一熵模型,所述第一模型集的多個(gè)熵模型中的每一個(gè)包括用于切換到包括一個(gè)或多個(gè)熵模型的第二模型集的模型切換點(diǎn);使用所選的熵模型來(lái)處理所述多個(gè)碼元;以及輸出所述處理的結(jié)果。2.如權(quán)利要求1所述的方法,其特征在于,一編碼器在編碼期間執(zhí)行所述選擇、所述處理和所述輸出,其中所述處理包括熵編碼。3.如權(quán)利要求1所述的方法,其特征在于,一解碼器在解碼期間執(zhí)行所述選擇、所述處理和所述輸出,其中所述處理包括熵解碼。4.如權(quán)利要求1所述的方法,其特征在于,所述第一模型集的多個(gè)熵模型和所述第二模型集的一個(gè)或多個(gè)熵模型是用于算術(shù)編碼和/或解碼的概率分布,并且其中,所述模型切換點(diǎn)是所述第一模型集的多個(gè)概率分布中的模型切換概率。5.如權(quán)利要求1所述的方法,其特征在于,所述第一模型集的多個(gè)熵模型分別被包含在所述第一表集的多個(gè)VLC表中,其中所述第二模型集的一個(gè)或多個(gè)熵模型分別被包含在第二表集的一個(gè)或多個(gè)VLC表中,其中所述模型切換點(diǎn)是逸出碼,并且其中,所述第一表集的多個(gè)VLC表中的每一個(gè)包括用于切換到所述第二表集的逸出碼。6.如權(quán)利要求5所述的方法,其特征在于,所述第一表集的多個(gè)VLC表和所述第二表集的一個(gè)或多個(gè)VLC表是哈夫曼碼表,并且其中所述第二表集包括單個(gè)哈夫曼碼表,使得所述單個(gè)哈夫曼碼表表示代表所述第一表集的各個(gè)的多個(gè)哈夫曼碼表的樹中的公共分支。7.如權(quán)利要求5所述的方法,其特征在于,所述第一表集的多個(gè)VLC表適用于包括較有可能的碼元值的第一碼元值集,并且其中,所述第二表集的一個(gè)或多個(gè)VLC表適用于包括較不可能的碼元值的第二碼元值集。8.如權(quán)利要求7所述的方法,其特征在于,所述第二表集包括單個(gè)VLC表,并且其中,所述處理是針對(duì)具有所述較不可能的碼元值的多個(gè)碼元的二階段可變長(zhǎng)度編碼或解碼的。9.如權(quán)利要求1所述的方法,其特征在于,還包括生成所述第一模型集的多個(gè)熵模型以及所述第二模型集的一個(gè)或多個(gè)熵模型,其中所述生成包括根據(jù)第一成本度量聚集概率分布,得到多個(gè)初步聚類;以及根據(jù)不同于所述第一成本度量的第二成本度量細(xì)化所述多個(gè)初步聚類,得到多個(gè)最終聚類。10.如權(quán)利要求1所述的方法,其特征在于,所述第二模型集包括單個(gè)熵模型,所述方法還包括生成所述第一模型集的多個(gè)熵模型以及所述第二模型集的單個(gè)熵模型,其中所述生成包括對(duì)所述第二模型集的單個(gè)熵模型將較不可能的碼元值約束為具有跨概率分布的公共條件分布。11.如權(quán)利要求1所述的方法,其特征在于,所述第二模型集的一個(gè)或多個(gè)熵模型中的每一個(gè)包括用于切換到包括一個(gè)或多個(gè)熵模型的第三模型集的第二模型切換點(diǎn)。12.如權(quán)利要求1所述的方法,其特征在于,對(duì)所述第一模型集的多個(gè)熵模型中的至少某一些,所述模型切換點(diǎn)具有在各模型之間不同的值。13.如權(quán)利要求l所述的方法,其特征在于,所述第一模型集的多個(gè)熵模型中的每一個(gè)還包括用于切換到包括一個(gè)或多個(gè)熵模型的第三模型集的第二模型切換點(diǎn)。14.如權(quán)利要求1所述的方法,其特征在于,所述多個(gè)碼元是針對(duì)用于音頻數(shù)據(jù)的經(jīng)量化的頻譜系數(shù)的。15.如權(quán)利要求l所述的方法,其特征在于,所述選擇是前向自適應(yīng)切換的一部分。16.如權(quán)利要求1所述的方法,其特征在于,所述選擇是后向自適應(yīng)切換的一部分。17.—種包括用于通過(guò)以下步驟來(lái)生成熵模型的一個(gè)或多個(gè)模塊的系統(tǒng)根據(jù)第一成本度量來(lái)聚集概率分布,得到多個(gè)初步聚類;根據(jù)不同于所述第一成本度量的第二成本度量來(lái)細(xì)化所述多個(gè)初步聚類,得到多個(gè)最終聚類;以及至少部分地基于所述多個(gè)最終聚類來(lái)設(shè)置所述熵模型。18.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述第二成本度量是相對(duì)熵。19.一種系統(tǒng),包括用于獲得對(duì)碼元值的概率分布的裝置;以及用于生成熵模型的裝置,所述生成包括將多個(gè)較不可能的碼元值約束為具有跨所述概率分布的公共條件分布,而不對(duì)多個(gè)較有可能的碼元值作此約束。20.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述熵模型分別被包含在第一表集的多個(gè)VLC表以及第二表集的單個(gè)VLC表中,其中所述多個(gè)VLC表適用于多個(gè)較有可能的碼元值,并且其中所述單個(gè)VLC表適用于多個(gè)較不可能的碼元值。全文摘要此處描述了在自適應(yīng)編碼和解碼中選擇性地使用多個(gè)熵模型的技術(shù)和工具。例如,對(duì)于多個(gè)碼元,音頻編碼器從包括多個(gè)熵模型的第一模型集中選擇一熵模型。多個(gè)熵模型中的每一個(gè)包括用于切換到包括一個(gè)或多個(gè)熵模型的第二模型集的模型切換點(diǎn)。編碼器使用所選的熵模型處理多個(gè)碼元并輸出結(jié)果。還描述了用于生成熵模型的技術(shù)和工具。文檔編號(hào)G10L15/00GK101223573SQ200680025810公開日2008年7月16日申請(qǐng)日期2006年7月14日優(yōu)先權(quán)日2005年7月15日發(fā)明者S·梅若特拉,W-G·陳申請(qǐng)人:微軟公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1