專利名稱:用于改進的多媒體解碼器的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字通信,且更確切地說,本發(fā)明涉及信道和源解碼。
技術(shù)背景網(wǎng)絡(luò)化的多媒體應(yīng)用趨向于需要較高帶寬、較佳編碼與壓縮方案或兩者都需要。然 而,對于移動通信來說,諸如有限傳輸功率、有限帶寬和多路徑衰落的因素易于限制由 可用系統(tǒng)提供的數(shù)據(jù)速率。已將各種編碼方案用于在維持需要的數(shù)據(jù)速率的同時最小化 差錯,然而所有這些技術(shù)均受到差錯會到達解碼器側(cè)的問題的困擾。通過使用源編碼器來壓縮數(shù)據(jù)。通常,信道編碼器接著編碼壓縮的源數(shù)據(jù)以對于給 定差錯率而最大化傳輸信道的容量。在實際上接收到破壞的數(shù)據(jù)包的情況下,已使用諸如可逆可變長度編碼(例如, MPEG-4中)的源編碼技術(shù),通過以逆順序解碼數(shù)據(jù)包來進行錯誤恢復(fù)。 一種類型的源 編碼包括熵編碼。熵編碼允許實現(xiàn)對由信息源產(chǎn)生的符號的高效無損表示。然而,盡管 熵編碼可改進壓縮效率,但熵編碼也使解碼過程變復(fù)雜。熵編碼器分配可變長度二進制 數(shù)據(jù)模式(代碼字)至一或多個源符號。為改進壓縮速率,與源符號相關(guān)的二進制模式 的長度隨著符號似然性降低而增加。在源流中以較高頻率出現(xiàn)的符號被分配有較緊湊的 表示。這一般來說可允許與具有固定長度表示的直接符號字母表(symbol alphabet)相 比大量的節(jié)約。然而,如果在包含比特流的信道上傳輸,那么可變長度代碼易于增加解碼器的復(fù)雜 性。舉例來說,通過識別每一代碼字的開始和結(jié)束來處理關(guān)于下一符號將從信道的比特 流消耗多少比特的不定性。因此,需要解碼可變長度代碼的改進系統(tǒng)和方法以便對于給定量的處理功率進一步 增加數(shù)據(jù)速率。舉例來說,需要改進性能的可變長度解碼器以使較高數(shù)據(jù)速率多媒體能 夠由移動裝置或其它低功率裝置解碼。 發(fā)明內(nèi)容本文所揭示的系統(tǒng)、方法和裝置各具有若干方面,沒有單個方面可單獨負責(zé)其所需 要的屬性。在不限制由上文權(quán)利要求所表示的本發(fā)明的范圍的情況下,現(xiàn)將簡要討論其 較顯著的特征。在考慮到此論述之后,且尤其在閱讀標(biāo)題為"具體實施方式
"的部分之 后,將理解此系統(tǒng)和方法的特征如何提供包括多媒體數(shù)據(jù)的更有效解碼的優(yōu)勢。一方面包括處理所接收編碼多媒體數(shù)據(jù)的方法。方法包括確定來自所接收比特流的 在編碼多媒體數(shù)據(jù)的第一緩沖器中可用的比特的數(shù)目。方法進一步包括,如果讀取固定 長度代碼字,那么從比特流讀取處理器對齊的數(shù)據(jù)(processor-aligned data)至第一緩沖 器。固定長度代碼字包含確定的可用比特和與處理器對齊的數(shù)據(jù)的一部分相關(guān)的比特。 方法進一步包括,如果讀取可變長度代碼字,那么從比特流讀取處理器未對齊的數(shù)據(jù) (processor-unaligned data)至第一緩沖器??勺冮L度代碼字包含可用比特中的至少一些。一方面包括用于具體化一處理多媒體數(shù)據(jù)的方法的計算機可讀媒體。方法包括確定 來自所接收比特流的在編碼多媒體數(shù)據(jù)的第一緩沖器中可用的比特的數(shù)目。方法進一步 包括,如果讀取固定長度代碼字,那么從比特流讀取處理器對齊的數(shù)據(jù)至第一緩沖器。 固定長度代碼字包含確定的可用比特和與處理器對齊的數(shù)據(jù)的一部分相關(guān)的比特。方法 進一步包括,如果讀取可變長度代碼字,那么從比特流讀取處理器未對齊的數(shù)據(jù)至第一 緩沖器??勺冮L度代碼字包含可用比特中的至少一些。一方面包括用于處理所接收編碼多媒體數(shù)據(jù)的設(shè)備。設(shè)備包括用于確定來自所接收 比特流的在編碼多媒體數(shù)據(jù)的第一緩沖器中可用的比特的數(shù)目的裝置。設(shè)備進一步包括 讀取代碼字的裝置。如果讀取固定長度代碼字,那么用于讀取的裝置從比特流讀取處理 器對齊的數(shù)據(jù)至第一緩沖器。固定代碼字包含確定的可用比特和與處理器對齊的數(shù)據(jù)的 一部分相關(guān)的比特。如果讀取可變長度代碼字,那么用于讀取的裝置從比特流讀取處理 器未對齊的數(shù)據(jù)至第一緩沖器。可變長度代碼字包含可用比特中的至少一些。一方面包括用于處理多媒體數(shù)據(jù)的設(shè)備。設(shè)備包括確定器,其經(jīng)配置以確定來自所 接收比特流的在編碼多媒體數(shù)據(jù)的第一緩沖器中可用的比特的數(shù)目。設(shè)備進一步包含讀 取器,其經(jīng)配置以,如果讀取固定長度代碼字,那么從比特流讀取處理器對齊的數(shù)據(jù)至 第一緩沖器。固定長度代碼字包含確定的可用比特和與處理器對齊的數(shù)據(jù)的一部分相關(guān) 的比特。讀取器進一步經(jīng)配置以,如果讀取可變長度代碼字,那么從比特流讀取處理器 未對齊的數(shù)據(jù)至第一緩沖器??勺冮L度代碼字包含可用比特中的至少一些。一方面包括處理多媒體數(shù)據(jù)的處理器。處理器經(jīng)配置以確定來自所接收比特流的在
編碼多媒體數(shù)據(jù)的第一緩沖器中可用的比特的數(shù)目。處理器進一步經(jīng)配置以,如果讀取 固定長度代碼字,那么從比特流讀取處理器對齊的數(shù)據(jù)至第一緩沖器。固定長度代碼字 包含確定的可用比特和與處理器對齊的數(shù)據(jù)的一部分相關(guān)的比特。處理器進一步經(jīng)配置 以,如果讀取可變長度代碼字,那么從比特流讀取處理器未對齊的數(shù)據(jù)至第一緩沖器。 可變長度代碼字包含可用比特中的至少一些。一方面包括解碼多媒體數(shù)據(jù)流中的可變長度代碼的方法。方法包括讀取多媒體數(shù)據(jù) 流的一部分中的一第一數(shù)目的比特。方法進一步包括至少部分基于第一數(shù)目的比特來識 別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù)。方法進一步包括確定第一解碼數(shù)據(jù)是否指示包含解 碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)。方法進一步包括至少部分基于所述第一和第二解碼數(shù)據(jù)中的一 者來解碼多媒體數(shù)據(jù)。一方面包括用于解碼多媒體數(shù)據(jù)流中的可變長度代碼的設(shè)備。設(shè)備包括用于讀取多 媒體數(shù)據(jù)流的一部分中的第一數(shù)目的比特的裝置。設(shè)備進一步包含用于至少部分基于第 一數(shù)目的比特來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù)的裝置。設(shè)備進一步包含用于確定 第一解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)的裝置。設(shè)備進一步包含用于至少 部分基于第一和第二解碼數(shù)據(jù)中的一者來解碼多媒體數(shù)據(jù)的裝置。一方面包括用于具體化一處理多媒體數(shù)據(jù)的方法的計算機可讀媒體。方法包括讀取 多媒體數(shù)據(jù)流的一部分中的第一數(shù)目的比特。方法進一步包括至少部分基于第一數(shù)目的 比特來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù)。方法進一步包括確定第一解碼數(shù)據(jù)是否指 示包含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)。方法進一步包括至少部分基于第一和第二解碼數(shù)據(jù)中 的一者來解碼多媒體數(shù)據(jù)。一方面包括用于處理多媒體數(shù)據(jù)的設(shè)備。設(shè)備包括讀取器,其經(jīng)配置以讀取多媒體 數(shù)據(jù)流的一部分中的第一數(shù)目的比特。設(shè)備進一步包含識別器,其經(jīng)配置以至少部分基 于第一數(shù)目的比特來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù)。設(shè)備進一步包含確定器,其 經(jīng)配置以確定第一解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)。設(shè)備進一步包含解 碼器,其經(jīng)配置以至少部分基于第一和第二解碼數(shù)據(jù)中的一者來解碼多媒體數(shù)據(jù)。一方面包括用于處理多媒體數(shù)據(jù)的處理器。處理器經(jīng)配置以讀取多媒體數(shù)據(jù)流的一 部分中的第一數(shù)目的比特。處理器進一步經(jīng)配置以至少部分基于第一數(shù)目的比特來識別 第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù)。處理器進一步經(jīng)配置以確定第一解碼數(shù)據(jù)是否指示包 含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)。處理器進一步經(jīng)配置以至少部分基于第一和第二解碼數(shù)據(jù) 中的一者來解碼多媒體數(shù)據(jù)。
圖1是說明根據(jù)一方面的多媒體通信系統(tǒng)的示意方框圖。圖2是說明解碼經(jīng)編碼多媒體數(shù)據(jù)(諸如在圖1中所說明的系統(tǒng)中傳輸和接收的數(shù) 據(jù))的比特流的方法的一個實例的流程圖。圖3A和3B是圖解說明在存儲緩沖器中處理編碼多媒體數(shù)據(jù)的位(bitwise)流的方 法的示意方框圖。圖4A是說明通過圖3A和3B中圖解說明的緩沖器來處理比特流的方法的一個實例 的流程圖。圖4B是說明通過圖3A和3B中圖解說明的緩沖器來處理比特流的方法的一部分的 一個實例的流程圖。圖4C是進一步說明部分說明于圖4B中的處理比特流的方法的一部分的一個實例的流程圖,其用于處理可變長度代碼字。圖4D是更詳細地進一步說明圖4C中所說明的方法的一部分的流程圖。圖5是說明處理編碼成可變長度代碼的多媒體數(shù)據(jù)元素的方法的一方面的流程圖,所述多媒體數(shù)據(jù)元素來自編碼多媒體數(shù)據(jù)(諸如在圖1中所說明的系統(tǒng)中傳輸和接收的數(shù)據(jù))的比特流。圖6是說明諸如用于圖5所說明方法中的數(shù)據(jù)結(jié)構(gòu)的一個實例的示意方框圖。圖7是說明處理來自編碼多媒體數(shù)據(jù)(諸如在圖1中所說明的系統(tǒng)中傳輸和接收的數(shù)據(jù))的比特流的可變長度代碼的改進方法的一方面的流程圖。圖8說明根據(jù)圖4A至4D所說明的方法處理所接收編碼多媒體數(shù)據(jù)的設(shè)備的實例。 圖9說明根據(jù)圖5所說明的方法處理所接收編碼多媒體數(shù)據(jù)的設(shè)備的另一實例。 圖IO說明根據(jù)圖4A至4D所說明的方法處理所接收編碼多媒體數(shù)據(jù)的設(shè)備的另一實例。圖11說明根據(jù)圖5所說明的方法處理所接收編碼多媒體數(shù)據(jù)的設(shè)備的另一實例。
具體實施方式
以下詳細描述是針對所揭示系統(tǒng)和方法的某些具體實例。然而,系統(tǒng)和方法可具體 化為如權(quán)利要求所定義和包括的多種不同方式。在此描述中,對附圖進行參考,其中貫 穿所有圖示相同零件由相同數(shù)字表示。某些方面包括對多媒體傳輸系統(tǒng)中的解碼器的改進。多媒體數(shù)據(jù)包括可包括運動視 頻、音頻、靜止圖像或任何其它適當(dāng)類型的音頻-可視數(shù)據(jù)中的一個或一個以上者。 一個 方面包含通過以處理器對齊(例如,字對齊)方式維持和讀取數(shù)據(jù)來分析來自多媒體數(shù) 據(jù)的位流的周定和可變長度代碼的方法。另一方面包含使用多個等級的解碼表以加速解 碼表查找來解碼可變長度代碼(尤其在自此種可變長度代碼接收時)的方法。圖1是說明根據(jù)一方面的多媒體通信系統(tǒng)100的示意方框圖。系統(tǒng)100包括通過網(wǎng) 絡(luò)140與解碼器裝置150通信的編碼器裝置110。在一個實例中,編碼器裝置從外部源 102接收多媒體信號并對所述信號進行編碼以在網(wǎng)絡(luò)140上傳輸。在此實例中,編碼器裝置IIO包含耦合至存儲器114和收發(fā)機116的處理器112。 處理器112編碼來自多媒體數(shù)據(jù)源的數(shù)據(jù),并將其提供給收發(fā)機116以用于在網(wǎng)絡(luò)140 上通信。在此實例中,解碼器裝置150包含耦合至存儲器154的處理器152和收發(fā)機156。 處理器152可包括通用處理器或數(shù)字信號處理器中的一個或一個以上者。存儲器154可 包括固態(tài)或基于磁盤的存儲裝置中的一個或一個以上者。收發(fā)機156經(jīng)配置以在網(wǎng)絡(luò)140 上接收多媒體數(shù)據(jù),并將其提供至處理器152用于解碼。在一個實例中,收發(fā)機156包 括無線收發(fā)機。圖2是說明解碼經(jīng)編碼多媒體數(shù)據(jù)(諸如在系統(tǒng)100中傳輸和接收的數(shù)據(jù))的比特 流的方法的一個實例的流程圖。在一個實例中,數(shù)據(jù)的比特流包含視頻和音頻數(shù)據(jù)中的 一個或一個以上者。比特流可以諸如由移動圖片專家組(MPEG)規(guī)定的諸如MPEG-2 或MPEG-4等標(biāo)準(zhǔn)視頻編解碼器的格式來編碼。比特流也可以H.264視頻編碼標(biāo)準(zhǔn)或任 何其它視頻編碼標(biāo)準(zhǔn)來編碼。方法開始于方框132處,其中由收發(fā)機156接收編碼的多媒體比特流(例如,作為 一數(shù)據(jù)比特序列而接收的多媒體數(shù)據(jù)流)。在一個實例中,收發(fā)機156將流作為數(shù)據(jù)字 節(jié)或字存儲于存儲器154中,例如以一或多個序列存儲于存儲器中。接著在方框134處, 處理器152執(zhí)行錯誤檢測和校正。應(yīng)注意,.所接收的數(shù)據(jù)可被處理而無需首先存儲于存 儲器154中。移至方框136,處理器136分析比特流以識別和解碼數(shù)據(jù)元素。圖4B至圖4D說明 根據(jù)一個實例對來自數(shù)據(jù)流的可變長度和固定長度代碼字的分析。在此實例中,分析可變長度代碼字包含解碼那些代碼字。圖5至圖7說明根據(jù)一個方面分析和解碼可變長度 代碼的方法。接著在方框138處,處理器152基于所分析數(shù)據(jù)來解碼多媒體數(shù)據(jù)。應(yīng)認識到,視實施例而定,本文所描述的任何方法中的某些動作或事件可以不同序 列執(zhí)行、可被添加、合并或完全被省略(例如,并非所有所描述動作或事件都是實踐本 方法所必需的)。此外,在某些實施例中,(例如)可通過多線程處理、中斷處理或多個 處理器來同時(而非依序地)執(zhí)行動作或事件。圖3A和3B是圖解說明在緩沖器中處理編碼多媒體數(shù)據(jù)的比特流的方法的示意方框 圖。圖3A說明緩沖器200,其包括由當(dāng)前讀取位置指示符或指針204識別的未讀部分 202。在一個實例中,緩沖器200是存儲器154的一部分。在另一實例中,緩沖器200 可為處理器152的寄存器。緩沖器200存儲來自正由處理器152解碼的多媒體數(shù)據(jù)的比 特流的數(shù)據(jù)的部分。多媒體數(shù)據(jù)的比特流被表示為根據(jù)處理器152的字長而對齊的一序列存儲器位置。 在此實例中,處理器字為32比特。因此,在此種實例中,多媒體數(shù)據(jù)的比特流作為4 字節(jié)字的一或多個序列存儲于存儲器中。緩沖器200提供工作存儲空間,在其中可操縱當(dāng)前被解碼的多媒體數(shù)據(jù)的字長(word sized)(例如,32比特)部分。如以上參考圖2的方框136所討論,解碼多媒體數(shù)據(jù)包 括分析和解碼固定長度和可變長度的代碼字。如果解碼固定長度代碼字,那么從緩沖器 200讀取或拷貝若干比特(基于碼的長度)至第二輸出或工作緩沖器中,例如,所拷貝 比特數(shù)是代碼字中的比特數(shù)(如果所有代碼字比特都在緩沖器200中可用)。接著更新 位置指針204以反映緩沖器200中未讀比特的數(shù)目和位置。如果緩沖器200中可用的比特數(shù)不足以提供固定長度代碼字的所有比特,那么從多 媒體數(shù)據(jù)的比特流讀取額外數(shù)據(jù)。圖3B說明在從比特流讀取額外比特之后的圖3A的緩 沖器200。在所說明實例中,緩沖器200的未讀部分202 (如圖3A中所說明)被加載或 拷貝至輸出緩沖器206。另外,從比特流讀取額外編碼多媒體數(shù)據(jù)的32比特字至緩沖器 200,從而覆蓋先前數(shù)據(jù)。在一個實例中,可重新排序編碼多媒體數(shù)據(jù)的"字節(jié)順序 (endianess)"以匹配處理器的優(yōu)選字節(jié)順序。舉例來說,如果多媒體數(shù)據(jù)的比特流是大 端字節(jié)(big-endian)格式,那么可將緩沖器中的字節(jié)重新排序為小端字節(jié)(little-endian) 格式,或者如果多媒體數(shù)據(jù)的比特流是小端字節(jié)格式,那么可將緩沖器中的字節(jié)重新排 序為大端字節(jié)格式。根據(jù)經(jīng)驗已發(fā)現(xiàn),讀取與比特流中的數(shù)據(jù)對齊相對應(yīng)的32比特字實質(zhì)上使性能改 進了 20-30%。將新數(shù)據(jù)的對應(yīng)于固定長度代碼字的剩余部分的部分212加載或拷貝至 輸出緩沖器206中。將當(dāng)前讀取位置更新至讀取位置214,留下緩沖器中未讀的部分216 且可用于分析出額外代碼字。對于可變長度代碼字的處理較為復(fù)雜,因為直到對代碼字進行解碼時才知道碼的長 度。因此,如果讀取可變長度字,就將代碼字數(shù)據(jù)拷貝至輸出緩沖器206,但其也保留 于緩沖器中以稍后在所解碼的代碼字短于所請求大小的情況下受到處理。如果所解碼的
代碼字少于拷貝至輸出緩沖器206中的比特的數(shù)量,那么仍需要從比特流檢索和處理那 些過量比特。然而,因為經(jīng)請求用于解碼可變長度代碼字的比特保留于緩沖器200中, 如果保留于緩沖器200中的比特不足以用于處理可變長度代碼字,那么緩沖器200缺少 足夠的空間來從比特流讀取完整的32比特的對齊數(shù)據(jù)。在一個實例中,可變長度代碼字小于或等于緩沖器200的大小的一半,例如16比 特。在一個此種實例中,如果請求額外可變長度代碼字比特,那么從流中讀取16個比 特數(shù)據(jù)。緩沖器的未讀部分202 (如圖3A中所說明)接著移位16個比特至左側(cè)(朝向 緩沖器200的最高有效位(MSB)),且將來自流的16比特新數(shù)據(jù)存儲于緩沖器200的 最低有效位(LSB)中。因為在處理可變長度代碼字的情況下將較少比特(例如,16比特)讀取至緩沖器中, 所以存在足夠的空間來滿足對16比特的請求。然而,從比特流到緩沖器的16比特傳輸 使比特流不對齊而不能用于未來的讀取。因此,可調(diào)整緩沖器200的內(nèi)容,以在從多媒 體數(shù)據(jù)流分析可變長度代碼之后使比特流重新對齊。在一個實施例中,在解碼可變長度 代碼并確定其長度之后,更新緩沖器200的當(dāng)前讀取位置指針以反映所解碼的可變長度 代碼的比特數(shù)。接著調(diào)整緩沖器200的內(nèi)容以使比特流重新對齊。舉例來說,如果少于 16比特保留于緩沖器200中,那么可從比特流將額外16比特數(shù)據(jù)移位至緩沖器200以 使比特流重新對齊。如果多于16比特保留于緩沖器200中,那么可將所述比特中的16 比特返回至比特流,且相應(yīng)移位緩沖器200和其當(dāng)前讀取位置指針。圖4A是說明通過圖3A和3B中圖解說明的緩沖器來處理比特流的方法的一個實例 的流程圖。方法開始于方框290處,其中處理器152確定比特流數(shù)據(jù)的讀取緩沖器(例 如,圖3A中所說明的緩沖器200)中可用的比特數(shù)。接著在決策方框292處,如果讀 取可變長度代碼字,那么方法進入方框300,其中從多媒體數(shù)據(jù)的比特流讀取可變長度 代碼。或者,在方框292處,如果讀取固定長度代碼,那么方法進入方框330,其中從 比特流讀取固定長度代碼。分別參看圖4B和4C較詳細地討論與方框300和330相關(guān)的 方法的某些實施例。圖4B是說明通過參看圖3A和3B所討論的緩沖器來處理比特流的方法的一個實例 的流程圖。具體來說,圖4B說明圖4A的方框300的方法的部分,其根據(jù)一個實例處理 來自編碼多媒體比特流的固定長度代碼。方法開始于方框302處,其中處理器152從編 碼多媒體比特流請求若干固定長度代碼比特。在一個實例中,處理器152執(zhí)行經(jīng)配置以 處理或分析比特流的規(guī)定功能或模塊。移至方框304,處理器152確定比特流數(shù)據(jù)的讀 取緩沖器(例如,圖3A中所說明的緩沖器200)中可用的比特數(shù)。接著在決策方框306 處,如果可用比特數(shù)不小于所請求的比特數(shù),那么方法300進入方框308,其中處理器 152將所請求數(shù)目的比特拷貝至輸出緩沖器,諸如圖3B中所說明的輸出緩沖器206。移 至方框310,處理器152更新緩沖器指針或指示符以反映所請求數(shù)目的比特已從讀取緩 沖器去除,且因此指示讀取緩沖器200中未處理比特的數(shù)目。方法300從方框310進入 結(jié)束狀態(tài),其中可對于多媒體數(shù)據(jù)流中的下一數(shù)據(jù)集重復(fù)所述過程。返回至決策方框306,如果可用比特數(shù)小于所請求的比特數(shù),那么方法300進入方 框314,其中可用數(shù)目的比特經(jīng)加載或拷貝至圖3B的輸出緩沖器206中。接著在方框 316處,處理器152將來自比特流的數(shù)據(jù)對齊地加載或讀取至圖3B的讀取緩沖器200 中。已發(fā)現(xiàn)對(例如)32比特處理器字的數(shù)據(jù)的對齊讀取實質(zhì)上改進了分析來自多媒體 數(shù)據(jù)流的固定長度代碼的性能。在一個實例中,處理器讀取數(shù)據(jù)以便將讀取指針(例如, 多媒體流中未分析數(shù)據(jù)的起始)維持于在處理器字(例如,32比特字邊界)上對齊。在 一個實例中,流也可以處理器或計算系統(tǒng)所確定的一或多個方式對齊,例如基于系統(tǒng)或處理器對齊,包括那些基于數(shù)據(jù)地址計算或總線大小的對齊。舉例來說,對齊數(shù)據(jù)可包 括32比特字的起始地址可被4除盡的數(shù)據(jù)。移至方框318,處理器152從讀取緩沖器(例如,圖3B的讀取緩沖器200)拷貝或 加載所請求比特的剩余部分至輸出緩沖器(例如,圖3B的輸出緩沖器206)。接著,方 法300進入至方框310,如上所討論,且更新緩沖器指針或指示符(例如,圖3B的最 終讀取位置214)以反映所請求數(shù)目的比特已從緩沖器去除,且因此指示緩沖器200中 未處理比特的數(shù)目。方法300從方框310進入至結(jié)束狀態(tài),其中可對于多媒體數(shù)據(jù)流中的下一數(shù)據(jù)集重復(fù)所述過程。圖4C是進一步說明用于處理可變長度代碼字的方法320的一個實例的流程圖。方 法320開始于方框322處,其中處理器152從編碼多媒體比特流請求若干可變長度代碼 比特。在一個實例中,處理器152執(zhí)行經(jīng)配置以處理或分析比特流的規(guī)定功能或模塊。 在方框324處,處理器152確定讀取緩沖器(例如,圖3B的緩沖器200)中可用的比 特數(shù)。接著在決策方框326處,如果處理器152確定有足夠比特可用于提供所請求數(shù)目 的可變長度代碼字比特,那么方法進入方框328,其中所請求數(shù)目的比特被拷貝至輸出 緩沖器。在方框326處,如果所請求數(shù)目的比特不可用,那么方法320進入方框330, 其中從多媒體數(shù)據(jù)的比特流讀取16比特數(shù)據(jù)至緩沖器(例如,緩沖器200)中。在一個 實例中,16比特是導(dǎo)致未處理多媒體流數(shù)據(jù)的起始(未讀)位置對于處理器152未對齊 的量。在其它實施例中,可讀取根據(jù)處理器或系統(tǒng)結(jié)構(gòu)而變的不同數(shù)目的比特,其小于 全部緩沖器大小(例如,小于32比特)。
進入方框328,所請求數(shù)目的比特被拷貝至輸出緩沖器。接著在方框340處,處理 器152使用所請求的比特解碼可變長度代碼。解碼可變長度代碼包括確定可變長度代碼 字的長度(且,因此,確定從構(gòu)成可變長度代碼字的流讀取的數(shù)據(jù)比特數(shù))。移至方框342,從讀取緩沖器200刷新對應(yīng)于可變長度代碼字的長度的數(shù)目的數(shù)據(jù) 比特。在一個實例中,此包括更新讀取指針(例如)至由圖3A的讀取指針204或圖3B 的214所說明的讀取位置。接著在方框344處,如果在方框330處讀取了額外比特(其 使多媒體數(shù)據(jù)流不對齊),那么處理器152校正緩沖器的不對齊。舉例來說,如圖4D中 進一步詳細說明,如果少于16比特被保留于緩沖器200中,那么可將來自比特流的額 外16比特數(shù)據(jù)移位至緩沖器200中以使比特流重新對齊。如果多于16比特被保留于緩 沖器200中,那么可將所述比特中的16比特返回至比特流,且相應(yīng)地移位緩沖器200 和其當(dāng)前讀取位置指針。圖4D是更詳細地進一步說明圖4C的方框344的操作的流程圖。檢査和校正344 開始于方框354處,其中處理器152確定讀取緩沖器200是否在方框330處未對齊。如 果不是未對齊,那么功能344結(jié)束。如果緩沖器是未對齊,那么功能進入方框356,其 中處理器152確定讀取緩沖器(例如,緩沖器200)是否有用以存儲來自多媒體流的額 外數(shù)據(jù)的容量以便使流對齊。舉例來說,如果少于16比特被保留于緩沖器200中,那 么32比特緩沖器200具有用以存儲額外16比特的容量。因此,如果緩沖器具有容量, 那么功能344進入方框358,其中(例如)處理器152從比特流讀取額外16比特數(shù)據(jù), 并將此數(shù)據(jù)移位至緩沖器200中以使多媒體數(shù)據(jù)流重新對齊。如果多于16比特被保留 于緩沖器200中,那么可將所述比特中的16比特返回至比特流,且相應(yīng)地移位緩沖器 200和其當(dāng)前讀取位置指針。如果在決策方框356處,緩沖器200缺少額外16比特的容 量,那么功能344進入方框360,其中來自讀取緩沖器200的16比特數(shù)據(jù)被推回(例如, 加載或拷貝)至多媒體數(shù)據(jù)流的起始,且移位出緩沖器。并非將數(shù)據(jù)實際移回所述流, 在從多媒體流進行未對齊讀取時,處理器152可維持指向多媒體流的讀取位置的獨立的 對齊和未對齊的數(shù)據(jù)指針以允許將數(shù)據(jù)"推回",從而包含僅將未對齊指針設(shè)置回對齊 指針位置而不需將數(shù)據(jù)從多媒體數(shù)據(jù)流移動或去除?,F(xiàn)在,轉(zhuǎn)至用于處理可變長度編碼數(shù)據(jù)的改進方法的方法,所述方法描述如下。圖 5是說明處理多媒體數(shù)據(jù)元素的方法400的一方面的流程圖,多媒體數(shù)據(jù)元素編碼于來 自編碼的多媒體數(shù)據(jù)(諸如在圖1中所說明的系統(tǒng)中傳輸和接收的數(shù)據(jù))的比特流的可 變長度代碼。方法400開始于方框402,其中處理器152從多媒體數(shù)據(jù)流讀取若干可變 長度代碼數(shù)據(jù)比特。此數(shù)據(jù)包括可變長度代碼的至少第一部分。在一個實例中,比特數(shù)
是8,且表包括256個條目。然而,在其它實施例中,可讀取不同數(shù)目的比特。接著在 方框404處,處理器基于從流讀取的比特的第一集合在第一解碼表中査找條目。如果所 讀取的可變長度代碼字短于所讀取比特的第一集合中的比特數(shù)(例如,小于或等于8比 特),那么所讀取數(shù)據(jù)除了多媒體數(shù)據(jù)流中的下一數(shù)據(jù)項的部分以外還將包括整個代碼 字,且解碼表條目可用以解碼代碼字。如果可變長度代碼長于所讀取比特的第一集合的 比特數(shù)(例如,大于8比特),那么解碼表條目可用以部分解碼代碼字。因此,移至決 策方框406,處理器152確定條目是否包括對用于進一步解碼代碼字的第二表的參考。 如果表并不包括對第二表的參考,那么代碼字的長度小于或等于讀取數(shù)據(jù)的長度。在此 狀況下,方法400可可選地進入方框410,其中基于在第一表的條目中的解碼數(shù)據(jù)來解 碼可變長度代碼字。因此,處理較少數(shù)目個比特,且可考慮較短的查找表以解碼可變長 度代碼字,從而產(chǎn)生處理速度的顯著改進。返回至方框406,如果第一解碼表中的條目包括對第二表的參考,那么方法400可 可選地進入方框420,其中從多媒體數(shù)據(jù)流讀取第二數(shù)目的比特,因為可變長度代碼字 長于所讀取比特的第一集合,例如長度上大于8比特。接著在方框422處,處理器152 基于所讀取的第二數(shù)目的比特來識別第二參考解碼表中的條目。在一個實例中,所讀取 比特的第二數(shù)目是8,且第二參考表包括256個條目。進入至方框410,處理器使用第 二解碼表的條目中的解碼數(shù)據(jù)來解碼可變長度代碼。如果使用第二解碼表,那么來自第 一和第二解碼表條目的解碼數(shù)據(jù)可用以解碼可變長度代碼字。在其他實施例中,可使用 額外查找表,且因此如果代碼字的長度超過前兩個表中比特的數(shù)目,那么第二表將參考 第三表,如此類推。在一個實例中,如果正從多媒體數(shù)據(jù)流讀取可變長度代碼,那么數(shù)據(jù)保留在流中直 至代碼字被解碼且確定其長度。因此,接著在方框412處,處理器412刷新來自多媒體 數(shù)據(jù)流的由一個或一個以上解碼表條目規(guī)定的數(shù)目的比特。在一個實例中,方法400包 括使用參考圖4A至4D而討論的分析比特流的方法300,以從比特流讀取可變長度代碼 數(shù)據(jù)。方法400的實施例可應(yīng)用于解碼多媒體數(shù)據(jù)元素,諸如視頻數(shù)據(jù)流中的亮度(luma) 或色度數(shù)據(jù)。實施例可用于解碼包括流中的數(shù)據(jù)元素的多媒體數(shù)據(jù)元素,其包含音頻、 視頻、文本、元數(shù)據(jù)、圖像或編碼成可變長度代碼的任何其它任何適當(dāng)類型的數(shù)據(jù)中的 一個或一個以上者。圖6是說明諸如用于方法400中的數(shù)據(jù)結(jié)構(gòu)的一個實例的示意方框圖。在一個實例 中,第一解碼表442包括眾多條目444。表442可為可根據(jù)任何適當(dāng)方法(包括所屬領(lǐng) 域中已知的那些方法)作為查找表加以存取的條目的陣列。每一條目444可存儲用于解 碼代碼字的一個或一個以上數(shù)據(jù)、指示代碼字長度的數(shù)據(jù)、或指出或參考第二等級解碼 表446的數(shù)據(jù)。用于解碼代碼字的數(shù)據(jù)可包括對另一數(shù)據(jù)結(jié)構(gòu)的指針或參考(未圖示), 所述另一數(shù)據(jù)結(jié)構(gòu)包括用于解碼代碼字的其它數(shù)據(jù)。視可變長度代碼而定,表442可指 出或參考一個或一個以上第二等級解碼表446。視可變長度代碼而定,第二等級解碼表 446可包括對第三等級解碼表的另一參考,第三等級解碼表的構(gòu)造又類似于第二等級解 碼表446。每一第二等級表包括條目448,其可包括用于解碼代碼字的一個或一個以上 數(shù)據(jù)、指示代碼字長度的數(shù)據(jù)、或用于存取第三等級表的指針或參考。因此,如以上關(guān) 于圖5所描述,方法400在第一等級解碼表442中查找固定數(shù)目的代碼字比特。如果代 碼字小于代碼字比特的數(shù)目,那么使用第一等級表442中的數(shù)據(jù)來解碼代碼字。如果代 碼字較長,如第一等級表中的條目444所指示,那么查找來自第二等級解碼表446 (且 可能是第三或第四(等)等級表)的額外解碼數(shù)據(jù)并將其用于解碼所述較長代碼字。圖7是說明處理來自編碼多媒體數(shù)據(jù)(諸如在圖1中所說明的系統(tǒng)中傳輸和接收的 數(shù)據(jù))的比特流的可變長度代碼的改進方法500的一個實例的流程圖。在此實例中,代 碼包括前綴和后綴。方法500開始于方框502,其中處理器152確定后綴長度是否等于 零。如果后綴長度等于零,那么方法500進入方框504,其中處理器152確定前綴長度 是否小于或等于預(yù)定值(例如,14)。如果在方框504處,前綴小于或等于14,那么方 法500結(jié)束且可針對多媒體數(shù)據(jù)流中的下一數(shù)據(jù)集重復(fù)所述過程。如果在方框504處, 確定前綴不小于14,那么方法500進入決策方框506,其中將前綴與預(yù)定值(例如,14) 進行比較。如果前綴等于此值,那么方法500進入方框510,其中讀取4個比特。如果 前綴不等于預(yù)定值14,那么方法500進入方框512,其中讀取12個比特。接著在方框 514處,將與可變長度代碼的處理相關(guān)聯(lián)的等級碼增加15,且其中可針對多媒體數(shù)據(jù)流 中的下一數(shù)據(jù)集重復(fù)所述過程。返回至方框502,如果后綴長度不等于零,那么方法500進入決策方框520,其中 處理器152確定前綴是否小于或等于預(yù)定值(例如,14)。如果前綴小于或等于14,那 么處理器152讀取后綴比特,例如由后綴長度規(guī)定的數(shù)目的比特。如果前綴大于14,那 么方法500移至方框524,其中處理器152從多媒體數(shù)據(jù)流讀取12個比特。可針對多媒 體數(shù)據(jù)流中的下一數(shù)據(jù)集重復(fù)所述過程。在一個實例中,用于處理所接收已編碼多媒體數(shù)據(jù)的設(shè)備可包含用于確定已編碼多 媒體數(shù)據(jù)的第一緩沖器中來自所接收比特流的可用比特的數(shù)目的裝置。設(shè)備進一步包含 用于讀取代碼字的裝置。如果讀取固定長度代碼字,那么用于讀取的裝置將處理器對齊 的數(shù)據(jù)從比特流讀取至第一緩沖器中。固定代碼字包含所確定的可用比特和與處理器對 齊的數(shù)據(jù)的一部分相關(guān)聯(lián)的比特。如果讀取可變長度代碼字,那么用于讀取的裝置將處 理器未對齊的數(shù)據(jù)從比特流讀取至第一緩沖器中。可變長度代碼字包含至少一些可用比 特。圖8說明用于處理所接收已編碼多媒體數(shù)據(jù)的解碼器150的實例。用于確定的裝置 可包含確定模塊802。用于讀取代碼字的裝置可包含代碼字讀取模塊804。圖8中所說 明的解碼器150的實例可經(jīng)配置以執(zhí)行參看圖4A至4D所討論的方法。在一個實例中,用于解碼多媒體數(shù)據(jù)流中的可變長度代碼的設(shè)備包含用于讀取多媒 體數(shù)據(jù)流的一部分中的第一數(shù)目的比特的裝置。設(shè)備進一步包含用于至少部分基于第一 數(shù)目的比特來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù)的裝置。設(shè)備進一步包含用于確定第 一解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)的裝置。設(shè)備進一步包括用于至少部 分基于第一與第二解碼數(shù)據(jù)中的一者來解碼多媒體數(shù)據(jù)的裝置。圖9說明用于解碼多媒 體數(shù)據(jù)流中的可變長度代碼的解碼器150的實例。用于讀取的裝置可包含讀取模塊902。 用于識別的裝置可包含識別模塊904。用于確定的裝置可包含確定模塊906。用于解碼 的裝置可包含解碼模塊908。圖9中所說明的解碼器150的實例可經(jīng)配置以執(zhí)行參看圖 5所討論的方法。圖10說明解碼器150的另一實例。圖10中所說明的解碼器150的實例可經(jīng)配置以 執(zhí)行參看圖4A至4D所討論的方法。圖10中所說明的解碼器150的實例包含確定器 1002,其經(jīng)配置以確定來自所接收比特流的在編碼多媒體數(shù)據(jù)的第一緩沖器中可用的比 特的數(shù)目。解碼器150進一步包含讀取器1004,其經(jīng)配置成如果讀取固定長度代碼字, 那么從比特流將處理器對齊的數(shù)據(jù)讀取至第一緩沖器中。固定長度代碼字包含所確定的 可用比特和與處理器對齊的數(shù)據(jù)的一部分相關(guān)的比特。讀取器1004進一步經(jīng)配置成 如果讀取可變長度代碼字,那么從比特流將處理器未對齊的數(shù)據(jù)讀取至第一緩沖器中。 可變長度代碼字包含可用比特中的至少一些。解碼器150可進一步包含拷貝器1006,其 經(jīng)配置成如果讀取固定長度代碼字,那么在讀取處理器對齊的數(shù)據(jù)之前將確定的可用 比特拷貝至第二緩沖器,且接著將與來自第一緩沖器的處理器對齊的數(shù)據(jù)的部分相關(guān)的 比特拷貝至第二緩沖器。解碼器可進一步包括代碼字解碼器1008,其經(jīng)配置以解碼可變 長度代碼字。解碼器150可進一步包含更新器1010,其經(jīng)配置以至少部分基于所解碼 的可變長度代碼字的長度來更新第一緩沖器中可用的所述數(shù)目的比特;和調(diào)整器1012, 其經(jīng)配置以調(diào)整第一緩沖器的內(nèi)容以對齊比特流中的數(shù)據(jù)。在一方面,解碼器150進一 步包括識別器1014,其經(jīng)配置以至少部分基于第一緩沖器中的數(shù)據(jù)來識別第一數(shù)據(jù)結(jié) 構(gòu)中的第一解碼數(shù)據(jù);和第二確定器1016,其經(jīng)配置以確定第一解碼數(shù)據(jù)是否指示包含
解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)。圖11說明解碼器150的另一實例。圖11中所說明的解碼器150的實例可經(jīng)配置以 執(zhí)行參看圖5所討論的方法。圖11中所說明的解碼器150的實例包含讀取器1102,其 經(jīng)配置以讀取多媒體數(shù)據(jù)流的一部分中的第一數(shù)目的比特。解碼器150進一步包含識別 器1104,其經(jīng)配置以至少部分基于第一數(shù)目的比特來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù) 據(jù)。解碼器150進一步包含確定器1106,其經(jīng)配置以確定第一解碼數(shù)據(jù)是否指示包含解 碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)。解碼器150進一步包含解碼器1108,其經(jīng)配置以至少部分基于 第一和第二解碼數(shù)據(jù)中的一者來解碼多媒體數(shù)據(jù)。在一方面,解碼器150進一步包含 第二讀取器1110,其經(jīng)配置以讀取多媒體數(shù)據(jù)流的第二部分中的第二數(shù)目的比特;和第 二識別器1112,其經(jīng)配置以至少部分基于多媒體數(shù)據(jù)的第二部分來識別第二數(shù)據(jù)結(jié)構(gòu)中 的第二解碼數(shù)據(jù)。所屬領(lǐng)域的技術(shù)人員將認識到,結(jié)合本文所揭示的實施例來描述的各種說明性邏輯 塊、模塊、電路和算法步驟可實施為電子硬件、計算機軟件或兩者的組合。為清晰說明 硬件與軟件的此可互換性,各種說明性組件、區(qū)塊、模塊、電路和步驟已在上文大體關(guān) 于其功能性而被描述。此種功能性經(jīng)實施為硬件還是軟件取決于特殊應(yīng)用和強加于整個 系統(tǒng)上的設(shè)計約束。所屬領(lǐng)域的技術(shù)人員可對于每一特殊應(yīng)用以不同的方式來實施所述 功能性,但這些實施決策不應(yīng)被解釋為導(dǎo)致脫離本發(fā)明的范圍。結(jié)合本文所揭示的實施例來描述的各種說明性邏輯塊、模塊和電路可由處理器152 實施或執(zhí)行,或可通過通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、 現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯裝置、離散門或晶體管邏輯、離散硬件 組件、或經(jīng)設(shè)計以執(zhí)行本文所述功能的任何組合來實施或執(zhí)行。通用處理器可為微處理 器,但在替代實施例中,處理器可為任何常規(guī)處理器、控制器、微處理器或狀態(tài)機。處 理器也可被實施為計算裝置的組合,例如DSP與微處理器的組合、多個微處理器、結(jié)合 DSP核心的一或多個微處理器、或任何其它此種配置。結(jié)合本文所揭示的實施例來描述的方法或算法的步驟可直接具體化于硬件中、由處 理器執(zhí)行的軟件模塊中、或兩者的組合中。軟件模塊可常駐于RAM存儲器、閃速存儲 器、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可換式磁盤、 CD-ROM或所屬領(lǐng)域中已知的任何其它形式的存儲媒體。示范性存儲媒體耦合至處理 器,使得處理器可從存儲媒體讀取信息并寫入信息至存儲媒體中。在替代實施例中,存 儲媒體可與處理器成一體。處理器和存儲媒體可駐存于ASIC中。ASIC可駐存于用戶終 端中。在替代實施例中,處理器和存儲媒體可作為離散組件駐存于用戶終端中。
此外,應(yīng)注意圖l和圖8至圖10的解碼器裝置150是簡化實例。因此,可在不影 響如上所述的解碼器的操作的情況下添加額外元件。而且,可在不影響如上所述的解碼 器的操作的情況下組合和/或重新布置圖1、圖8、圖9、圖10和/或圖11的解碼器裝置 150的元件中的一者或其組合。因此,提供所揭示實施例的先前描述以使所屬領(lǐng)域的技術(shù)人員能夠制造或使用本發(fā) 明。所屬領(lǐng)域的技術(shù)人員將易于了解這些實施例的各種修改,且本文所定義的一般原理 可適用于其它實施例。因此,本發(fā)明并不希望限于本文所展示的實施例,而是應(yīng)符合與 本文所揭示的原理和新穎特征一致的最廣泛范圍。雖然以上詳細描述已展示、描述和指出本發(fā)明的適用于各種實施例的新穎特征,應(yīng) 了解可在不脫離本發(fā)明的精神的情況下由所屬領(lǐng)域的技術(shù)人員進行所說明裝置或過程 的形式或細節(jié)的各種省略、替代和改變。如將認識到,本發(fā)明可具體化于并未提供本文 所陳述的全部特征和益處的形式內(nèi),因為一些特征可與其它特征分開使用或?qū)嵭?。本發(fā) 明的范圍由隨附權(quán)利要求而非由以上描述指示。屬于權(quán)利要求的均等物的含義和范圍內(nèi) 的所有改變應(yīng)包含在權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種處理所接收編碼多媒體數(shù)據(jù)的方法,所述方法包含確定已編碼多媒體數(shù)據(jù)的第一緩沖器中來自所接收比特流的可用比特的數(shù)目;如果讀取固定長度代碼字,那么將處理器對齊的數(shù)據(jù)從所述比特流讀取至所述第一緩沖器,其中所述固定長度代碼字包含所述確定的可用比特和與所述處理器對齊的數(shù)據(jù)的一部分相關(guān)聯(lián)的比特;和如果讀取可變長度代碼字,那么將處理器未對齊的數(shù)據(jù)從所述比特流讀取至所述第一緩沖器,其中所述可變長度代碼字包含至少一些所述可用比特。
2. 根據(jù)權(quán)利要求1所述的方法,其進一步包含如果讀取所述固定長度代碼字,那么在讀取所述處理器對齊的數(shù)據(jù)之前將所述確 定的可用比特拷貝至第二緩沖器且接著將與所述處理器對齊的數(shù)據(jù)的所述部分相 關(guān)聯(lián)的比特從所述第一緩沖器拷貝至所述第二緩沖器。
3. 根據(jù)權(quán)利要求1所述的方法,其中讀取處理器未對齊的數(shù)據(jù)包含讀取16個比特, 且讀取處理器對齊的數(shù)據(jù)包含讀取32個比特。
4. 根據(jù)權(quán)利要求1所述的方法,其進一步包含解碼所述可變長度代碼字;至少部分基于所述已解碼可變長度代碼字的長度來更新所述第一緩沖器中可用 比特的所述數(shù)目;和調(diào)整所述第一緩沖器的內(nèi)容以對齊所述比特流中的數(shù)據(jù)。
5. 根據(jù)權(quán)利要求4所述的方法,其中解碼所述可變長度代碼字包含至少部分基于所述第一緩沖器中的數(shù)據(jù)來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù);和確定所述第一解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)。
6. 根據(jù)權(quán)利要求4所述的方法,其中調(diào)整所述第一緩沖器的內(nèi)容以對齊所述比特流中 的數(shù)據(jù)包含從所述比特流讀取處理器未對齊的數(shù)據(jù)。
7. 根據(jù)權(quán)利要求4所述的方法,其中調(diào)整所述第一緩沖器的內(nèi)容以對齊所述比特流中 的數(shù)據(jù)包含將所述處理器未對齊的數(shù)據(jù)返回所述比特流。
8. 根據(jù)權(quán)利要求1所述的方法,其中從己編碼多媒體數(shù)據(jù)的所述比特流讀取處理器對 齊的數(shù)據(jù)包含對字內(nèi)的數(shù)據(jù)字節(jié)重新排序。
9. 根據(jù)權(quán)利要求8所述的方法,其中對字內(nèi)的數(shù)據(jù)字節(jié)重新排序包含將數(shù)據(jù)從大端字 節(jié)格式重新排序為小端字節(jié)格式。
10. —種用于具體實施處理多媒體數(shù)據(jù)的方法的計算機可讀媒體,所述方法包含-確定已編碼多媒體數(shù)據(jù)的第一緩沖器中來自所接收比特流的可用比特的數(shù)目; 如果讀取固定長度代碼字,那么將處理器對齊的數(shù)據(jù)從所述比特流讀取至所述第一緩沖器,其中所述固定長度代碼字包含所述確定的可用比特和與所述處理器對齊的數(shù)據(jù)的一部分相關(guān)聯(lián)的比特;和如果讀取可變長度代碼字,那么將處理器未對齊的數(shù)據(jù)從所述比特流讀取至所述第一緩沖器,其中所述可變長度代碼字包含至少一些所述可用比特。
11. 根據(jù)權(quán)利要求IO所述的計算機可讀媒體,所述方法進一步包含解碼所述可變長度代碼字;至少部分基于所述已解碼可變長度代碼字的長度來更新所述第一緩沖器中可用 比特的所述數(shù)目;和調(diào)整所述第一緩沖器的內(nèi)容以對齊所述比特流中的數(shù)據(jù)。
12. 根據(jù)權(quán)利要求11所述的計算機可讀媒體,其中解碼所述可變長度代碼字包含至少部分基于所述第一緩沖器中的數(shù)據(jù)來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù);禾口確定所述第一解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)。
13. —種用于處理所接收已編碼多媒體數(shù)據(jù)的設(shè)備,所述設(shè)備包含用于確定已編碼多媒體數(shù)據(jù)的第一緩沖器中來自所接收比特流的可用比特的數(shù) 目的裝置;和用于讀取代碼字的裝置,其中如果讀取固定長度代碼字,那么所述用于讀取的裝 置將處理器對齊的數(shù)據(jù)從所述比特流讀取至所述第一緩沖器,其中所述固定代碼字 包含所述確定的可用比特和與所述處理器對齊的數(shù)據(jù)的一部分相關(guān)聯(lián)的比特,且其 中如果讀取可變長度代碼字,那么所述用于讀取的裝置將處理器未對齊的數(shù)據(jù)從所 述比特流讀取至所述第一緩沖器,其中所述可變長度代碼字包含至少一些所述可用 比特。
14. 根據(jù)權(quán)利要求13所述的設(shè)備,其中所述用于讀取的裝置進一步包含用于在讀取所 述處理器對齊的數(shù)據(jù)之前將所述確定的可用比特拷貝至第二緩沖器且接著將與所 述處理器對齊的數(shù)據(jù)的所述部分相關(guān)聯(lián)的比特從所述第一緩沖器拷貝至所述第二 緩沖器的裝置。
15. 根據(jù)權(quán)利要求13所述的設(shè)備,其中所述用于讀取處理器未對齊的數(shù)據(jù)的裝置包含 用于讀取16比特的裝置,且讀取處理器對齊的數(shù)據(jù)包含讀取32比特。
16. 根據(jù)權(quán)利要求13所述的設(shè)備,其進一步包含-用于解碼所述可變長度代碼字的裝置;用于至少部分基于所述已解碼可變長度代碼字的長度來更新所述第一緩沖器中 可用比特的所述數(shù)目的裝置;和用于調(diào)整所述第一緩沖器的內(nèi)容以對齊所述比特流中的數(shù)據(jù)的裝置。
17. 根據(jù)權(quán)利要求16所述的設(shè)備,其中所述用于解碼所述可變長度代碼字的裝置包含用于至少部分基于所述第一緩沖器中的數(shù)據(jù)來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼 數(shù)據(jù)的裝置;和用于確定所述第一解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)的裝置。
18. 根據(jù)權(quán)利要求16所述的設(shè)備,其中所述用于調(diào)整所述第一緩沖器的內(nèi)容以對齊所 述比特流中的數(shù)據(jù)的裝置包含用于從所述比特流讀取處理器未對齊的數(shù)據(jù)的裝置。
19. 根據(jù)權(quán)利要求16所述的設(shè)備,其中所述用于調(diào)整所述第一緩沖器的內(nèi)容以對齊所 述比特流中的數(shù)據(jù)的裝置包含用于使所述處理器未對齊的數(shù)據(jù)返回所述比特流的 裝置。
20. —種用于處理多媒體數(shù)據(jù)的設(shè)備,其包含確定器,其經(jīng)配置以確定已編碼多媒體數(shù)據(jù)的第一緩沖器中來自所接收比特流的可用比特的數(shù)目;和讀取器,其經(jīng)配置以如果讀取固定長度代碼字,那么將處理器對齊的數(shù)據(jù)從所 述比特流讀取至所述第一緩沖器,其中所述固定長度代碼字包含所述確定的可用比 特和與所述處理器對齊的數(shù)據(jù)的一部分相關(guān)聯(lián)的比特;且如果讀取可變長度代碼 字,那么將處理器未對齊的數(shù)據(jù)從所述比特流讀取至所述第一緩沖器,其中所述可 變長度代碼字包含至少一些所述可用比特。
21. 根據(jù)權(quán)利要求20所述的設(shè)備,其進一步包含拷貝器,其經(jīng)配置以如果讀取所述固定長度代碼字,那么在讀取所述處理器對齊的數(shù)據(jù)之前將所述確定的可用比特拷貝至第二緩沖器且接著將與所述處理器對 齊的數(shù)據(jù)的所述部分相關(guān)聯(lián)的比特從所述第一緩沖器拷貝至所述第二緩沖器。
22. 根據(jù)權(quán)利要求20所述的設(shè)備,其中所述讀取器經(jīng)配置以讀取包含16比特數(shù)據(jù)的處 理器未對齊的數(shù)據(jù),且所述讀取器經(jīng)配置以讀取包含32比特數(shù)據(jù)的處理器對齊的 數(shù)據(jù)。
23. 根據(jù)權(quán)利要求20所述的設(shè)備,其進一步包含-代碼字解碼器,其經(jīng)配置以解碼所述可變長度代碼字;更新器,其經(jīng)配置以至少部分基于所述已解碼可變長度代碼字的長度來更新所述 第一緩沖器中可用比特的所述數(shù)目;和調(diào)整器,其經(jīng)配置以調(diào)整所述第一緩沖器的內(nèi)容以對齊所述比特流中的數(shù)據(jù)。
24. 根據(jù)權(quán)利要求20所述的設(shè)備,其進一步包含識別器,其經(jīng)配置以至少部分基于所述第一緩沖器中的數(shù)據(jù)來識別第一數(shù)據(jù)結(jié)構(gòu) 中的第一解碼數(shù)據(jù);和第二確定器,其經(jīng)配置以確定所述第一解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第二數(shù) 據(jù)結(jié)構(gòu)。
25. 根據(jù)權(quán)利要求24所述的設(shè)備,其中所述調(diào)整器經(jīng)配置以通過至少部分地從所述比 特流讀取處理器未對齊的數(shù)據(jù)來調(diào)整所述第一緩沖器的內(nèi)容以對齊所述比特流中 的數(shù)據(jù)。
26. 根據(jù)權(quán)利要求24所述的設(shè)備,其中作為調(diào)整所述第一緩沖器的內(nèi)容以對齊所述比 特流中的數(shù)據(jù)的一部分,所述調(diào)整器進一步經(jīng)配置以使所述處理器未對齊的數(shù)據(jù)返 回所述比特流。
27. 根據(jù)權(quán)利要求20所述的設(shè)備,其中作為從已編碼多媒體數(shù)據(jù)的所述比特流讀取處 理器對齊的數(shù)據(jù)的一部分,所述讀取器進一步經(jīng)配置以對字內(nèi)的數(shù)據(jù)字節(jié)重新排 序。28. —種處理多媒體數(shù)據(jù)的處理器,所述處理器經(jīng)配置以
28. —種處理多媒體數(shù)據(jù)的處理器,所述處理器經(jīng)配置以確定已編碼多媒體數(shù)據(jù)的第一緩沖器中來自所接收比特流的可用比特的數(shù)目; 如果讀取固定長度代碼字,那么將處理器對齊的數(shù)據(jù)從所述比特流讀取至所述第 一緩沖器,其中所述固定長度代碼字包含所述確定的可用比特和與所述處理器對齊的數(shù)據(jù)的一部分相關(guān)聯(lián)的比特;和如果讀取可變長度代碼字,那么將處理器未對齊的數(shù)據(jù)從所述比特流讀取至所述 第一緩沖器,其中所述可變長度代碼字包含至少一些所述可用比特。
29. 根據(jù)權(quán)利要求28所述的處理器,其中所述處理器進一步經(jīng)配置以如果讀取所述 固定長度代碼字,那么在讀取所述處理器對齊的數(shù)據(jù)之前將所述確定的可用比特拷 貝至第二緩沖器且接著將與所述處理器對齊的數(shù)據(jù)的所述部分相關(guān)聯(lián)的比特從所 述第一緩沖器拷貝至所述第二緩沖器。
30. 根據(jù)權(quán)利要求28所述的處理器,其中所述處理器進一步經(jīng)配置以-至少部分基于所述第一緩沖器中的數(shù)據(jù)來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù);和確定所述第一解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)。
31. 根據(jù)權(quán)利要求30所述的處理器,其中所述處理器經(jīng)配置以通過至少部分地從所述 比特流讀取處理器未對齊的數(shù)據(jù)來調(diào)整所述第一緩沖器的內(nèi)容以對齊所述比特流 中的數(shù)據(jù)。
32. 根據(jù)權(quán)利要求30所述的處理器,其中作為調(diào)整所述第一緩沖器的內(nèi)容以對齊所述 比特流中的數(shù)據(jù)的一部分,所述處理器進一步經(jīng)配置以使所述處理器未對齊的數(shù)據(jù) 返回所述比特流。
33. 根據(jù)權(quán)利要求28所述的處理器,其中作為從己編碼多媒體數(shù)據(jù)的所述比特流讀取 處理器對齊的數(shù)據(jù)的一部分,所述讀取器進一步經(jīng)配置以對字內(nèi)的數(shù)據(jù)字節(jié)重新排 序。
34. —種解碼多媒體數(shù)據(jù)流中的可變長度代碼的方法,所述方法包含讀取所述多媒體數(shù)據(jù)流的一部分中的第一數(shù)目的比特; 至少部分基于所述第一數(shù)目的比特來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù); 確定所述第一解碼數(shù)據(jù)是否指示包含第二解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu);和 至少部分基于所述第一和第二解碼數(shù)據(jù)中的一者來解碼多媒體數(shù)據(jù)。
35. 根據(jù)權(quán)利要求34所述的方法,其中比特的所述第一數(shù)目與所述第一數(shù)據(jù)結(jié)構(gòu)中條 目的數(shù)目相關(guān)聯(lián)。
36. 根據(jù)權(quán)利要求34所述的方法,其中所述第一解碼數(shù)據(jù)包含一指向所述第二數(shù)據(jù)結(jié) 構(gòu)的指針。
37. 根據(jù)權(quán)利要求34所述的方法,其中解碼所述多媒體數(shù)據(jù)包含至少部分基于所述第 一解碼數(shù)據(jù)來解碼所述多媒體數(shù)據(jù)。
38. 根據(jù)權(quán)利要求34所述的方法,其中如果所述第一解碼數(shù)據(jù)指示已解碼的多媒體數(shù) 據(jù),那么解碼所述多媒體數(shù)據(jù)是至少部分基于所述第一解碼數(shù)據(jù)。
39. 根據(jù)權(quán)利要求34所述的方法,其進一步包含讀取所述多媒體數(shù)據(jù)流的第二部分中的第二數(shù)目的比特;至少部分基于所述多媒體數(shù)據(jù)的所述第二部分來識別第二數(shù)據(jù)結(jié)構(gòu)中的所述第 二解碼數(shù)據(jù)。
40. 根據(jù)權(quán)利要求39所述的方法,其中比特的所述第二數(shù)目與所述第二數(shù)據(jù)結(jié)構(gòu)中條 目的數(shù)目相關(guān)聯(lián)。
41. 根據(jù)權(quán)利要求39所述的方法,其進一步包含確定所述第二解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第三數(shù)據(jù)結(jié)構(gòu)。
42. 根據(jù)權(quán)利要求39所述的方法,其中解碼所述多媒體數(shù)據(jù)是至少部分基于所述第二 解碼數(shù)據(jù)。
43. 根據(jù)權(quán)利要求34所述的方法,其中所述第一數(shù)據(jù)結(jié)構(gòu)包含查找表。
44. 一種用于解碼多媒體數(shù)據(jù)流中的可變長度代碼的設(shè)備,所述設(shè)備包含用于讀取所述多媒體數(shù)據(jù)流的一部分中的第一數(shù)目的比特的裝置; 用于至少部分基于所述第一數(shù)目的比特來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù) 的裝置;用于確定所述第一解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu)的裝置;和 用于至少部分基于所述第一和第二解碼數(shù)據(jù)中的一者來解碼多媒體數(shù)據(jù)的裝置。
45. 根據(jù)權(quán)利要求44所述的設(shè)備,其中比特的所述第一數(shù)目與所述第一數(shù)據(jù)結(jié)構(gòu)中條 目的數(shù)目相關(guān)聯(lián)。
46. 根據(jù)權(quán)利要求44所述的設(shè)備,其中所述第一解碼數(shù)據(jù)包含指向所述第二數(shù)據(jù)結(jié)構(gòu) 的指針。
47. 根據(jù)權(quán)利要求44所述的設(shè)備,其中所述用于解碼所述多媒體數(shù)據(jù)的裝置包含用于 至少部分基于所述第一解碼數(shù)據(jù)來解碼所述多媒體數(shù)據(jù)的裝置。
48. 根據(jù)權(quán)利要求47所述的設(shè)備,其中如果所述第一解碼數(shù)據(jù)指示已解碼的多媒體數(shù) 據(jù),那么解碼所述多媒體數(shù)據(jù)是至少部分基于所述第一解碼數(shù)據(jù)。
49. 根據(jù)權(quán)利要求44所述的設(shè)備,其進一步包含用于讀取所述多媒體數(shù)據(jù)流的第二部分中的第二數(shù)目的比特的裝置; 用于至少部分基于所述多媒體數(shù)據(jù)的所述第二部分來識別第二數(shù)據(jù)結(jié)構(gòu)中的所 述第二解碼數(shù)據(jù)的裝置。
50. 根據(jù)權(quán)利要求49所述的設(shè)備,其中比特的所述第二數(shù)目與所述第二數(shù)據(jù)結(jié)構(gòu)中條 目的數(shù)目相關(guān)聯(lián)。
51. 根據(jù)權(quán)利要求49所述的設(shè)備,其進一步包含用于確定所述第二解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第三數(shù)據(jù)結(jié)構(gòu)的裝置。
52. 根據(jù)權(quán)利要求49所述的設(shè)備,其中解碼所述多媒體數(shù)據(jù)是至少部分基于所述第二 解碼數(shù)據(jù)。
53. —種用于具體實施處理多媒體數(shù)據(jù)的方法的計算機可讀媒體,所述方法包含讀取所述多媒體數(shù)據(jù)流的一部分中的第一數(shù)目的比特; 至少部分基于所述第一數(shù)目的比特來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù); 確定所述第一解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu);和 至少部分基于所述第一和第二解碼數(shù)據(jù)中的一者來解碼多媒體數(shù)據(jù)。
54. 根據(jù)權(quán)利要求53所述的計算機可讀媒體,其中所述第一解碼數(shù)據(jù)包含指向所述第 二數(shù)據(jù)結(jié)構(gòu)的指針。
55. 根據(jù)權(quán)利要求53所述的計算機可讀媒體,其中解碼所述多媒體數(shù)據(jù)是至少部分基 于所述第一解碼數(shù)據(jù)。
56. 根據(jù)權(quán)利要求55所述的計算機可讀媒體,其中如果所述第一解碼數(shù)據(jù)指示已解碼 的多媒體數(shù)據(jù),那么解碼所述多媒體數(shù)據(jù)是至少部分基于所述第一解碼數(shù)據(jù)。
57. 根據(jù)權(quán)利要求53所述的計算機可讀媒體,所述方法進一步包含讀取所述多媒體數(shù)據(jù)流的第二部分中的第二數(shù)目的比特;至少部分基于所述多媒體數(shù)據(jù)的所述第二部分來識別第二數(shù)據(jù)結(jié)構(gòu)中的所述第 二解碼數(shù)據(jù)。
58. 根據(jù)權(quán)利要求57所述的計算機可讀媒體,所述方法進一步包含-確定所述第二解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第三數(shù)據(jù)結(jié)構(gòu)。
59. 根據(jù)權(quán)利要求57所述的計算機可讀媒體,其中解碼所述多媒體數(shù)據(jù)是至少部分基 于所述第二解碼數(shù)據(jù)。
60. —種用于處理多媒體數(shù)據(jù)的設(shè)備,其包含-讀取器,其經(jīng)配置以讀取所述多媒體數(shù)據(jù)流的一部分中的第一數(shù)目的比特; 識別器,其經(jīng)配置以至少部分基于所述第一數(shù)目的比特來識別第一數(shù)據(jù)結(jié)構(gòu)中的 第一解碼數(shù)據(jù);確定器,其經(jīng)配置以確定所述第一解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié) 構(gòu);禾口解碼器,其經(jīng)配置以至少部分基于所述第一和第二解碼數(shù)據(jù)中的一者來解碼多媒 體數(shù)據(jù)。
61. 根據(jù)權(quán)利要求60所述的設(shè)備,其中比特的所述第一數(shù)目與所述第一數(shù)據(jù)結(jié)構(gòu)中條 目的數(shù)目相關(guān)聯(lián)。
62. 根據(jù)權(quán)利要求60所述的設(shè)備,其中所述第一解碼數(shù)據(jù)包含指向所述第二數(shù)據(jù)結(jié)構(gòu) 的指針。
63. 根據(jù)權(quán)利要求60所述的設(shè)備,其中所述解碼器進一步經(jīng)配置以至少部分基于所述 第一解碼數(shù)據(jù)來解碼所述多媒體數(shù)據(jù)。
64. 根據(jù)權(quán)利要求63所述的設(shè)備,其中如果所述第一解碼數(shù)據(jù)指示已解碼的多媒體數(shù) 據(jù),那么所述解碼器經(jīng)配置以至少部分基于所述第一解碼數(shù)據(jù)來解碼所述多媒體數(shù) 據(jù)。
65. 根據(jù)權(quán)利要求60所述的設(shè)備,其進一步包含第二讀取器,其經(jīng)配置以讀取所述多媒體數(shù)據(jù)流的第二部分中的第二數(shù)目的比 特;和第二識別器,其經(jīng)配置以至少部分基于所述多媒體數(shù)據(jù)的所述第二部分來識別第 二數(shù)據(jù)結(jié)構(gòu)中的所述第二解碼數(shù)據(jù)。
66. 根據(jù)權(quán)利要求65所述的設(shè)備,其中比特的所述第二數(shù)目與所述第二數(shù)據(jù)結(jié)構(gòu)中條 目的數(shù)目相關(guān)聯(lián)。
67. 根據(jù)權(quán)利要求65所述的設(shè)備,其中所述確定器進一步經(jīng)配置以確定所述第二解碼 數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第三數(shù)據(jù)結(jié)構(gòu)。
68. 根據(jù)權(quán)利要求65所述的設(shè)備,其中所述解碼器進一步經(jīng)配置以至少部分基于所述 第二解碼數(shù)據(jù)來解碼所述多媒體數(shù)據(jù)。
69. 根據(jù)權(quán)利要求60所述的設(shè)備,其中所述第一數(shù)據(jù)結(jié)構(gòu)包含查找表。
70. —種用于處理多媒體數(shù)據(jù)的處理器,其中所述處理器經(jīng)配置以讀取所述多媒體數(shù)據(jù)流的一部分中的第一數(shù)目的比特;至少部分基于所述第一數(shù)目的比特來識別第一數(shù)據(jù)結(jié)構(gòu)中的第一解碼數(shù)據(jù);和 確定所述第一解碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第二數(shù)據(jù)結(jié)構(gòu);和 至少部分基于所述第一和第二解碼數(shù)據(jù)中的一者來解碼多媒體數(shù)據(jù)。
71. 根據(jù)權(quán)利要求70所述的設(shè)備,其中比特的所述第一數(shù)目與所述第一數(shù)據(jù)結(jié)構(gòu)中條 目的數(shù)目相關(guān)聯(lián)。
72. 根據(jù)權(quán)利要求70所述的設(shè)備,其中所述第一解碼數(shù)據(jù)包含指向所述第二數(shù)據(jù)結(jié)構(gòu) 的指針。
73. 根據(jù)權(quán)利要求70所述的處理器,其中所述處理器進一步經(jīng)配置以讀取所述多媒體 數(shù)據(jù)流的第二部分中的第二數(shù)目的比特,且經(jīng)配置以至少部分基于所述多媒體數(shù)據(jù) 的所述第二部分來識別第二數(shù)據(jù)結(jié)構(gòu)中的所述第二解碼數(shù)據(jù)。
74. 根據(jù)權(quán)利要求73所述的處理器,其中比特的所述第二數(shù)目與所述第二數(shù)據(jù)結(jié)構(gòu)中 條目的數(shù)目相關(guān)聯(lián)。
75. 根據(jù)權(quán)利要求73所述的處理器,其中所述處理器進一步經(jīng)配置以確定所述第二解 碼數(shù)據(jù)是否指示包含解碼數(shù)據(jù)的第三數(shù)據(jù)結(jié)構(gòu)。
76.根據(jù)權(quán)利要求70所述的處理器,其中所述處理器經(jīng)配置以通過至少部分地從與所 述多媒體數(shù)據(jù)流相關(guān)聯(lián)的緩沖器拷貝8比特數(shù)據(jù)來讀取所述第一數(shù)目的比特。
全文摘要
實施例包括改進多媒體傳輸系統(tǒng)中的解碼器中的處理的系統(tǒng)和方法。多媒體數(shù)據(jù)可包括運動視頻、音頻、靜止圖像或任何其它適當(dāng)類型的音頻-可視數(shù)據(jù)中的一個或一個以上者。一個實施例包括通過以處理器對齊(例如,字對齊)方式維持和讀取數(shù)據(jù)來分析來自多媒體數(shù)據(jù)的逐比特流的固定和可變長度代碼的系統(tǒng)和方法。另一實施例包括使用多個等級的解碼表以加速解碼器表查找來解碼可變長度代碼(尤其在自此種可變長度代碼接收時)的系統(tǒng)和方法。
文檔編號H03M7/40GK101213754SQ200680024475
公開日2008年7月2日 申請日期2006年5月15日 優(yōu)先權(quán)日2005年5月13日
發(fā)明者濤 田, 維賈雅拉克希米·R·拉韋恩德拉恩, 陳培松 申請人:高通股份有限公司