JP5567155B2 - 改良されたマルチメディアデコーダに関する方法及び装置 - Google Patents

改良されたマルチメディアデコーダに関する方法及び装置 Download PDF

Info

Publication number
JP5567155B2
JP5567155B2 JP2013000188A JP2013000188A JP5567155B2 JP 5567155 B2 JP5567155 B2 JP 5567155B2 JP 2013000188 A JP2013000188 A JP 2013000188A JP 2013000188 A JP2013000188 A JP 2013000188A JP 5567155 B2 JP5567155 B2 JP 5567155B2
Authority
JP
Japan
Prior art keywords
bits
read buffer
multimedia data
data
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013000188A
Other languages
English (en)
Other versions
JP2013118656A (ja
Inventor
ビジャヤラクシュミ・アール.・ラビーンドラン
ペイソン・チェン
タオ・ティアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2013118656A publication Critical patent/JP2013118656A/ja
Application granted granted Critical
Publication of JP5567155B2 publication Critical patent/JP5567155B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • H03M7/425Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Description

35U.S.C.§119に基づく優先権の主張
本特許出願は、米国仮特許出願番号60/681,194(出願日:2005年5月13日)及び"VIDEO DECODER OPTIMIZATIONS"(ビデオデコーダ最適化)という題名を有する米国仮特許出願番号60/789,455(出願日:2006年4月4日)の利益を主張し、本明細書において参照することによって該特許出願全体を本明細書に組み入れるものである。
本発明は、デジタル通信に関するものである。本発明は、より具体的には、チャネル及びソース復号に関するものである。
ネットワーク化されたマルチメディアの用途は、より広い帯域幅、より優れたコーディング及び圧縮方式、またはその両方を必要とする傾向がある。しかしながら、移動通信の場合は、制限された送信電力、制限された帯域幅及びマルチパスフェージング等の要因が、利用可能なシステムによって提供されるデータ速度を制限する傾向がある。望ましいデータ速度を維持しつつ誤りを最小限にするために様々な符号化方式が用いられているが、これらの技術はすべて、復号器側に到着する誤りに関する問題に苦しんでいる。
データは、ソース符号器を通じて圧縮される。典型的には、チャネル符号器が、所定の誤り率に関する送信チャネルの容量を最大化するために圧縮されたソースデータを符号化する。
壊れたパケットが実際に受信された場合は逆の順序でパケットを復号することによって誤りから回復するためのソースコーディング技術、例えば(MPEG−4等における)可逆可変長コーディング、が用いられている。1つの型のソースコーディングは、エントロピーコーディングを含む。エントロピーコーディングは、情報源によって生成されたシンボルの効率的なロスレス表現を可能にする。しかしながら、エントロピーコーディングは、圧縮効率を向上させることができるが、エントロピーコーディングは、復号プロセスを複雑化させる。エントロピーコーダーは、可変長のバイナリデータパターン、コードワード、を1つ以上のソースシンボルに割り当てる。圧縮率を向上させるために、ソースシンボルと関連するバイナリパターンの長さが、シンボル尤度の低下に応じて大きくなる。ソースストリーム内においてより高い頻度で発生するシンボルは、より簡素な表現が割り当てられる。この割り当ては、平均して、固定長の表現を有する直接的なシンボルアルファベット全体における実質的な節約を可能にすることができる。
しかしながら、可変長符号は、ビットストリームを具備するチャネルにおいて送信された場合は、復号器の複雑さを増大させる傾向がある。例えば、次のシンボルに関してチャネルのビットストリームからどれだけのビットを費やすかについての不明瞭さは、各コードワードの最初と最後を識別することによって対処される。
従って、所定の処理電力量に関するデータ速度をさらに上昇させるために可変長符号を復号するための改良されたシステム及び方法が必要である。例えば、より高速のデータ速度のマルチメディアをモバイル又はその他の低電力デバイスによって復号するのを可能にするために可変長復号器の性能を向上させる必要がある。
本明細書において開示されたシステム、方法、及びデバイスは各々が幾つかの側面を有しており、いずれの単一の側面も、望ましい属性を確保する役割を単独で果たしているわけではない。以下では、上記の請求項によって表される本発明の適用範囲を限定することなしに、本発明のより顕著な特長が簡単に説明される。当業者は、この説明を検討後に、そして特に「発明を実施するための最良の形態」という題名の部分を読んだ後に、このシステム及び方法の特長が、マルチメディアデータのより効率的な復号を含む利点をどのようにして提供するかを理解するであろう。
一側面は、受信された符号化されたマルチメディアデータを処理する方法を含む。前記方法は、受信されたビットストリームからの符号化されたマルチメディアデータの第1のバッファにおいて利用可能なビット数を決定することを含む。前記方法は、固定長コードワードを読み取る場合は、プロセッサアライメントされたデータを前記ビットストリームから前記バッファ内に読み込むことをさらに含む。前記固定長コードワードは、前記決定された利用可能なビットと、前記プロセッサアライメント(processor-aligned)されたデータの一部分と関連づけられたビットと、を具備する。前記方法は、可変長コードワードを読み取る場合は、プロセッサアライメントされないデータを前記ビットストリームから前記バッファ内に読み込むことをさらに含む。前記可変長コードワードは、前記利用可能なビットの少なくとも一部を具備する。
一側面は、マルチメディアデータを処理するための方法を具体化するためのコンピュータによって読み取り可能な媒体を含む。前記方法は、受信されたビットストリームからの符号化されたマルチメディアデータの第1のバッファにおいて利用可能なビット数を決定することを含む。前記方法は、固定長コードワードを読み取る場合は、プロセッサアライメントされたデータを前記ビットストリームから前記バッファ内に読み込むことをさらに含む。前記固定長コードワードは、前記決定された利用可能なビットと、前記プロセッサアライメントされたデータの一部分と関連づけられたビットと、を具備する。前記方法は、可変長コードワードを読み取る場合は、プロセッサアライメントされないデータを前記ビットストリームから前記第1のバッファ内に読み込むことをさらに含む。前記可変長コードワードは、前記利用可能なビットの少なくとも一部を具備する。
一側面は、受信された符号化されたマルチメディアデータを処理するための装置を含む。前記装置は、受信されたビットストリームからの符号化されたマルチメディアデータの第1のバッファにおいて利用可能なビット数を決定するための手段を含む。前記装置は、コードワードを読み取るための手段をさらに含む。固定長コードワードを読み取る場合は、読み取るための前記手段は、プロセッサアライメントされたデータを前記ビットストリームから前記バッファ内に読み込む。前記固定長コードワードは、前記決定された利用可能なビットと、前記プロセッサアライメントされたデータの一部分と関連づけられたビットと、を具備する。可変長コードワードを読み取る場合は、読み取るための前記手段は、プロセッサアライメントされないデータを前記ビットストリームから前記バックアップ内に読み込む。前記可変長コードワードは、前記利用可能なビットの少なくとも一部を具備する。
一側面は、マルチメディアデータを処理するための装置を含む。前記装置は、受信されたビットストリームからの符号化されたマルチメディアデータの第1のバッファにおいて利用可能なビット数を決定するように構成された決定器を含む。前記装置は、固定長コードワードを読み取る場合は、プロセッサアライメントされたデータを前記ビットストリームから前記第1のバッファ内に読み込むように構成された読み取り器をさらに具備する。前記固定長コードワードは、前記決定された利用可能なビットと、前記プロセッサアライメントされたデータの一部分と関連づけられたビットと、を具備する。前記読み取り器は、可変長コードワードを読み取る場合は、プロセッサアライメントされないデータを前記ビットストリームから前記第1のバッファ内に読み込むようにさらに構成される。前記可変長コードワードは、前記利用可能なビットの少なくとも一部を具備する。
一側面は、マルチメディアデータを処理するためのプロセッサを含む。前記プロセッサは、受信されたビットストリームからの符号化されたマルチメディアデータの第1のバッファにおいて利用可能なビット数を決定するように構成される。前記プロセッサは、固定長コードワードを読み取る場合は、プロセッサアライメントされたデータを前記ビットストリームから前記第1のバッファ内に読み込むようにさらに構成される。前記固定長コードワードは、前記決定された利用可能なビットと、前記プロセッサアライメントされたデータの一部分と関連づけられたビットと、を具備する。前記プロセッサは、可変長コードワードを読み取る場合は、プロセッサアライメントされないデータを前記ビットストリームから前記第1のバッファ内に読み込むようにさらに構成される。前記可変長コードワードは、前記利用可能なビットの少なくとも一部を具備する。
一側面は、マルチメディアデータストリーム内の可変長符号を復号する方法を含む。前記方法は、前記マルチメディアデータストリームの一部分において第1のビット数を読み取ることを含む。前記方法は、第1のデータ構造における第1の復号データを前記第1のビット数に少なくとも部分的に基づいて識別することをさらに含む。前記方法は、前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定することをさらに含む。前記方法は、前記第1及び第2の復号データのうちの1つに少なくとも部分的に基づいてマルチメディアデータを復号することをさらに含む。
一側面は、マルチメディアデータストリーム内の可変長符号を復号するための装置を含む。前記装置は、前記マルチメディアデータストリームの一部分において第1のビット数を読み取るための手段を含む。前記装置は、第1のデータ構造における第1の復号データを前記第1のビット数に少なくとも部分的に基づいて識別するための手段をさらに含む。前記装置は、前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定するための手段をさらに含む。前記装置は、前記第1及び第2の復号データのうちの1つに少なくとも部分的に基づいてマルチメディアデータを復号するための手段をさらに具備する。
一側面は、マルチメディアデータを処理するための方法を具体化するためのコンピュータ読み取り可能媒体を含む。前記方法は、前記マルチメディアデータストリームの一部分において第1のビット数を読み取ることを含む。前記方法は、第1のデータ構造における第1の復号データを前記第1のビット数に少なくとも部分的に基づいて識別することをさらに含む。前記方法は、前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定することをさらに含む。前記方法は、前記第1及び第2の復号データのうちの1つに少なくとも部分的に基づいてマルチメディアデータを復号することをさらに含む。
一側面は、マルチメディアデータを処理するための装置を含む。前記装置は、前記マルチメディアデータストリームの一部分において第1のビット数を読み取るように構成された読み取り器を含む。前記装置は、第1のデータ構造における第1の復号データを前記第1のビット数に少なくとも部分的に基づいて識別するように構成された識別器をさらに含む。前記装置は、前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定するように構成された決定器をさらに具備する。前記装置は、前記第1及び第2の復号データのうちの1つに少なくとも部分的に基づいてマルチメディアデータを復号するように構成された復号器をさらに具備する。
一側面は、マルチメディアデータを処理するためのプロセッサを含む。前記プロセッサは、前記マルチメディアデータストリームの一部分において第1のビット数を読み取るように構成される。前記プロセッサは、第1のデータ構造における第1の復号データを前記第1のビット数に少なくとも部分的に基づいて識別するようにさらに構成される。前記プロセッサは、前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定するようにさらに構成される。前記プロセッサは、前記第1及び第2の復号データのうちの1つに少なくとも部分的に基づいてマルチメディアデータを復号するようにさらに構成される。
一側面によるマルチメディア通信システムを示す概略的ブロック図である。 符号化されたマルチメディアデータのビットストリーム、例えば図1に示されるシステムにおいて送信及び受信されるビットストリーム、を復号する方法の一例を示す流れ図である。 メモリバッファ内の符号化されたマルチメディアデータのビット単位のストリームを処理する方法を図示した概略的ブロック図である。 メモリバッファ内の符号化されたマルチメディアデータのビット単位のストリームを処理する方法を図示した概略的ブロック図である。 図3A及び3Bにおいて図示されたバッファを介してビットストリームを処理する方法の一例を示す流れ図である。 図3A及び3Bにおいて図示されたバッファを介してビットストリームを処理する方法の一部分の一例を示す流れ図である。 可変長コードワードを処理するために図4Bにおいて部分的に示されているビットストリームを処理する方法の一部分の一例をさらに示す流れ図である。 図4Cにおいてさらに詳細に示された方法の一部分をさらに示す流れ図である。 符号化されたマルチメディアデータのビットストリーム、例えば図1に示されたシステムにおいて送信及び受信されるビットストリーム、からの可変長符号で符号化されたマルチメディアデータ要素を処理する方法の一側面を示す流れ図である。 図5に示された方法において用いられるようなデータ構造の一例を示す概略的ブロック図である。 符号化されたマルチメディアデータのビットストリーム、例えば図1に示されたシステムにおいて送信及び受信される符号化されたマルチメディアデータのビットストリーム、からの可変長符号を処理する改良された方法の一側面を示す流れ図である。 受信された符号化されたマルチメディアデータを図4A乃至4Dに示された方法により処理するための装置の例を示す。 受信された符号化されたマルチメディアデータを図5に示された方法により処理するための装置の他の例を示す。 受信された符号化されたマルチメディアデータを図4A乃至4Dに示された方法により処理するための装置の他の例を示す。 受信された符号化されたマルチメディアデータを図5に示された方法により処理するための装置の他の例を示す。
以下の発明を実施するための最良の形態は、開示されたシステム及び方法の一定の例に関するものである。しかしながら、これらのシステム及び方法は、請求項による定義に応じて及び請求項によって網羅された範囲で多数の異なる方法で具体化することが可能である。本説明においては、図面が参照されており、同一のものについては図面全体に渡って同一の参照符号を付すこととする。
一定の側面は、マルチメディア送信システムにおける復号器の改良を含む。マルチメディアデータは、動画映像、音声、静止画像、又はその他の適切な型の音声−映像データのうちの1つ以上を含むことができる。1つの側面は、マルチメディアデータをプロセッサアライメントされた(例えばワードアライメントされた)方法で維持すること及び読み取ることによってビット単位のマルチメディアデータストリームからの固定長及び可変長の符号を構文解析する方法を具備する。他の側面は、復号器テーブルの検索を高速化するために複数のレベルの復号テーブルを用いて特に受信された状態の可変長符号を復号する方法を具備する。
図1は、1つの側面によるマルチメディア通信システム100を示す概略的ブロック図である。システム100は、ネットワーク140を介して復号器デバイス150と通信中の符号器デバイス110を含む。一例においては、符号器デバイスは、外部のソース102からマルチメディア信号を受信し、該信号をネットワーク140において送信するために符号化する。
この例においては、符号器デバイス110は、メモリ114に結合されたプロセッサ112と、トランシーバ116と、を具備する。プロセッサ112は、マルチメディアデータソースからのデータを符号化し、ネットワーク140において通信するためにトランシーバ116に提供する。
この例においては、復号器デバイス150は、メモリ154に結合されたプロセッサ152と、トランシーバ156と、を具備する。プロセッサ152は、汎用プロセッサ又はデジタル信号プロセッサのうちの1つ以上を含むことができる。メモリ154は、ソリッドステート又はディスクに基づく記憶装置のうちの1つ以上を含むことができる。トランシーバ156は、ネットワーク140を通じてマルチメディアデータを受信して前記マルチメディアデータを復号のためにプロセッサ152に提供するように構成される。一例においては、トランシーバ156は、無線トランシーバを含む。
図2は、符号化されたマルチメディアデータのビットストリーム、例えばシステム100において送信及び受信されるビットストリーム、を復号する方法の一例を示す流れ図である。一例においては、データのビットストリームは、映像データ及び音声データのうちの1つ以上を具備する。ビットストリームは、ムービング・ピクチャズ・エキスパート・グループ(MPEG)、例えば、MPEG−2、又はMPEG−4、によって指定される標準的な映像コーデック等のフォーマットで符号化することができる。ビットストリームは、H.264映像コーディング基準又はその他の映像コーディング基準で符号化することも可能である。
方法は、ブロック132において開始し、ブロック132において、符号化されたマルチメディアビットストリーム(例えば、データビットのシーケンスとして受信されたマルチメディアデータのストリーム)がトランシーバ156によって受信される。一例においては、トランシーバ156は、ストリームを、例えばメモリ内における1つ以上のシーケンスでデータバイト又はデータワードとしてメモリ154内に格納する。次にブロック134において、プロセッサ152は、誤りの検出及び訂正を行う。受信されたデータは、最初にメモリ154に格納せずに処理することができる点に注目すべきである。
ブロック136に移動し、プロセッサ136は、ビットストリームを構文解析してデータ要素を識別及び復号する。図4B乃至4Dは、一例によるデータストリームからの可変長及び固定長のコードワードの構文解析を示す。この例においては、可変長コードワードを構文解析することは、これらのコードワードを復号することを具備する。図5乃至7は、一側面により可変長符号を構文解析及び復号する方法を示す。次にブロック138において、プロセッサ152は、構文解析されたデータに基づいてマルチメディアデータを復号する。
実施形態に依存して、本明細書において説明される方法の一定の行為又はイベントは、異なる順序で行うことが可能であること、追加すること、1つにまとめること、又は完全に省略することが可能であることを認識すべきである(例えば、すべての説明されている行為又はイベントが方法を実践させる上で必要であるわけではない)。さらに、一定の実施形態においては、行為又はイベントは、順次ではなく同時並行して、例えばマルチスレッド処理、割り込み処理、又は複数のプロセッサを通じて行うことができる。
図3A及び3Bは、バッファ内の符号化されたマルチメディアデータのビットストリームを処理する方法を図示する概略的ブロック図である。図3Aは、現在の読み取り位置指標又はポインタ204によって識別される非読み取り部分202を含むバッファ200を示す。一例においては、バッファ200は、メモリ154の一部である。他の例においては、バッファ200は、プロセッサ152のレジスタであることができる。バッファ200は、マルチメディアデータビットストリームからのデータのうちでプロセッサ152によって現在復号中の部分を格納する。
マルチメディアデータビットストリームは、プロセッサ152のワードサイズに従ってアライメントされた一連のメモリ記憶場所として表わされる。この例においては、プロセッサワードは、32ビットである。従って、該例においては、マルチメディアデータビットストリームは、4バイトワードの1つ以上のシーケンスとしてメモリに格納される。
バッファ200は、マルチメディアデータのうちで現在復号中であるワードサイズの、例えば32ビットの部分を処理することができる作業格納域を提供する。図2のブロック136を参照して上述されるように、マルチメディアデータを復号することは、固定長及び可変長のコードワードを構文解析すること及び復号することを含む。固定長コードワードが復号される場合は、ビット数がバッファ200から符号長に基づいた第2の出力バッファ又は作業バッファ内に読み込まれるか又はコピーされ、例えば、コピーされたビット数は、コードワード内のビット数である(バッファ200において全コードワードビットを利用可能である場合)。次に、バッファ200内の読み取られないビットの数及び位置を反映させるために位置ポインタ204が更新される。
バッファ200において利用可能なビット数が固定長コードワードの全ビットを提供する上で不適切である場合は、追加のデータがマルチメディアデータビットストリームから読み取られる。図3Bは、追加ビットがビットストリームから読み取られた後の図3Aのバッファを示す。示される例においては、(図3Aにおいて示される)バッファ200の読み取られない部分202が出力バッファ206にローディング又はコピーされる。さらに、追加の符号化されたマルチメディアデータの32ビットワードがビットストリームからバッファ200内に読み込まれて前データをオーバーライトする。一例においては、プロセッサの好まれるビット順序の設定に一致させるために、符号化されたマルチメディアデータの「エンディアンネス(endianness)」の順序を変更することができる。例えば、マルチメディアデータビットストリームがビッグエンディアンフォーマットである場合は、バッファ内のバイトの順序をリトルエンディアンフォーマットに変更することができ、その逆も可能である。
ビットストリーム内のデータのアライメントに対応する32ビットワードを読み取ることは有意なことに性能を20乃至30%向上させることが経験的に判明している。固定長コードワードの残りの部分に対応する新しいデータの一部分212が出力バッファ206内にローディング又はコピーされる。現在の読み取り位置は、読み取り位置214に更新され、バッファ内において一部分216を読み取られない状態にして追加のコードワードの構文解析のために利用可能にする。
可変長コードワードの場合は、コードワードが復号されるまで符号の長さが不明であるため、可変長コードワードに関する処理のほうが複雑である。従って、可変長ワードを読み取る場合は、コードワードデータが出力バッファ206にコピーされるが、復号されたコードワードが要求されたサイズよりも短い場合にのちに処理するためにバッファ内にもとどまる。復号されたコードワードが、出力バッファ206内にコピーされたビット量よりも少ない場合は、依然としてこれらの余分のビットをビットストリームから取り出して処理する必要がある。しかしながら、可変長コードワードの復号のために要求されたビットがバッファ200内にとどまるため、可変長コードワードを処理する上で不十分な数のビットがバッファ200内に残る場合は、バッファ200は、アライメントされたデータの全32ビットをビットストリームから読み取るための十分なスペースがない。
一例においては、可変長コードワードは、バッファ200のサイズの1/2、例えば16ビット、以下である。1つの該例において、追加の可変長コードワードが要求される場合は、16ビットのデータがストリームから読み取られる。次に、(図3Aに示されるように)バッファ202の読み取られない部分が16ビットだけ左に(バッファ200の最上位ビット(MSB)方向)にシフトされ、ストリームからの16ビットの新しいデータがバッファ200の下方の最下位ビット(LSB)内に格納される。
可変長コードワードを処理中の場合はより少ないビット、例えば16ビット、がバッファ内に読み込まれるため、16ビットの要求を満たすための十分なスペースが存在する。しかしながら、ビットストリームからバッファへの16ビットの転送は、将来の読み取りに関してビットストリームを非アライメント状態にする。従って、マルチメディアデータストリームからの可変長符号が構文解析された後にバッファ200の内容を調整してビットストリームを再アライメントさせることが可能である。一実施形態においては、可変長符号が復号されてその長さが決定された後に、復号された可変長符号のビット数を反映させるためにバッファ200の現在の読み取り位置ポインタが更新される。例えば、16よりも少ない数のビットがバッファ200内に残っている場合は、ビットストリームを再アライメントさせるためにビットストリームからのデータの追加の16ビットをバッファ200内にシフトさせることができる。16よりも多いビットがバッファ200内にとどまっている場合は、これらのビットのうちの16ビットをビットストリーム及びバッファ200に戻してその現在読み取り位置ポインタを適宜シフトさせることができる。
図4Aは、図3A及び3Bに図示されるバッファを介してビットストリームを処理する方法の一例を示す流れ図である。方法は、ブロック290において開始し、ブロック290において、プロセッサ152は、ビットストリームデータの読み取りバッファ、例えば図3Aに示されるバッファ200、において利用可能なビット数を決定する。次に判断ブロック292において、可変長コードワードを読み取る場合は、方法は、ブロック300に進み、ブロック300において、可変長符号がマルチメディアデータビットストリームから読み取られる。代替として、ブロック292において、固定長符号を読み取る場合は、方法は、ブロック330に進み、ブロック330において、固定長符号がビットストリームから読み取られる。ブロック300及び330と関連づけられた方法の一定の実施形態が、図4B及び4Cをそれぞれ参照してより詳細に説明される。
図4Bは、図3A及び3Bを参照して説明されたバッファを介してビットストリームを処理する方法の一例を示す流れ図である。特に、図4Bは、一例により符号化されたマルチメディアストリームからの固定長符号を処理する図4Aのブロック300の方法の一部分を示す。方法300は、ブロック302において開始し、ブロック302において、プロセッサ152は、符号化されたマルチメディアビットストリームからの幾つかの固定長符号ビットを要求する。一例においては、プロセッサ152は、ビットストリームを処理又は構文解析するように構成された指定の関数又はモジュールを実行する。ブロック304に移動し、プロセッサ152は、ビットストリームデータの読み取りバッファ、例えば図3Aに示されるバッファ200、において利用可能なビット数を決定する。次に判断ブロック306において、利用可能なビット数が要求されたビット数よりも少なくない場合は、方法300は、ブロック308に進み、ブロック308において、プロセッサ152は、要求されたビット数を出力バッファ、例えば図3に示される出力バッファ206、内にコピーする。ブロック310に移動し、プロセッサ152は、要求されたビット数が読み取りバッファから取り除かれていることを反映させるために、従って読み取りバッファ200内の未処理ビット数を示すためにバッファポインタ又は指標を更新する。方法300は、ブロック310から終了状態に進み、終了状態においては、マルチメディアデータストリーム内の次の組のデータに関してプロセスを繰り返すことができる。
判断ブロック306に戻り、利用可能なビット数が要求されたビット数よりも少ない場合は、方法300は、ブロック314に進み、ブロック314において、利用可能なビット数が図3Bの出力バッファ206内にローディング又はコピーされる。次にブロック316において、プロセッサ152は、ビットストリームから図3Bの読み取りバッファ200内へのデータのアライメントされたローディング又は読み取りを行う。例えばデータの32ビットのプロセッサワードのアライメントされた読み取りを行うことは、マルチメディアデータストリームからの固定長符号の構文解析性能を有意に向上させることが判明している。一例においては、プロセッサは、プロセッサワード、例えば32ビットワード境界においてアライメントされた読み取りポインタ(例えば、マルチメディアストリーム内の構文解析されていないデータの開始)を維持するためにデータに従って読み取る。一例においては、ストリームは、プロセッサ又は計算システムによって決定された1つ以上の方法で、例えばデータアドレス計算又はバスサイズに基づいたシステムアライメント又はプロセッサアライメントを含むシステムアライメント又はプロセッサアライメントに基づいてアライメントすることも可能である。例えば、アライメントされたデータは、32ビットワードの開始アドレスが4で割り切れるデータを含むことができる。
ブロック318に移動し、プロセッサ152は、要求されたビットの残りの部分を読み取りバッファ(例えば、図3Bの読み取りバッファ200)から出力バッファ(例えば、図3Bの出力バッファ206)にコピー又はローディングする。次に、方法300は、上述されたブロック310に進み、要求されたビット数がバッファから取り除かれていることを反映させるために、従ってバッファ200内の未処理ビット数を示すためにバッファポインタ又は指標(例えば、図3Bの最終的読み取り位置214)を更新する。方法300は、ブロック310から最終状態に進み、マルチメディアデータストリーム内の次の組のデータに関してプロセスを繰り返すことができる。
図4Cは、可変長コードワードを処理するための方法320の一例をさらに示す流れ図である。方法320は、ブロック322において開始し、ブロック322において、プロセッサ152は、符号化されたマルチメディアビットストリームからの可変長符号ビット数を要求する。一例においては、プロセッサ152は、ビットストリームを処理又は構文解析するように構成された指定の関数又はモジュールを実行する。ブロック324において、プロセッサ152は、読み取りバッファ(例えば、図3Bのバッファ200)において利用可能なビット数を決定する。次に判断ブロック326において、要求された可変長コードワードビット数を提供する上で十分なビットが利用可能であるとプロセッサ152が決定した場合は、方法は、ブロック328に進み、ブロック328において、要求されたビット数が出力バッファ内にコピーされる。判断ブロック326において、要求されたビット数が利用可能でない場合は、方法320はブロック330に進み、ブロック330において、マルチメディアデータビットストリームからの16ビットのデータがバッファ、例えばバッファ200、内に読み込まれる。一例においては、16ビットは、未処理のマルチメディアストリームデータの開始(読み取られていない)位置がプロセッサ152に関して非アライメント状態になる量である。その他の実施形態においては、プロセッサ又はシステムアーキテクチャに基づいて変化し、全バッファサイズよりも少ない(例えば32ビットよりも少ない)異なるビット数を読み取ることができる。
ブロック328に進み、要求されたビット数が出力バッファ内にコピーされる。次にブロック340において、プロセッサ152は、要求されたビットを用いて可変長符号を復号する。可変長符号を復号することは、可変長コードワードの長さ(従って、可変長コードワードを構成していてストリームから読み取られたデータビット数)を決定することを含む。
ブロック342に移動し、可変長コードワードの長さに対応する数のデータビットが読み取りバッファ200からフラッシング(flushed)される。一例においては、このことは、例えば図3Aの読み取りポインタ204又は図3Bの読み取りポインタ214によって示される読み取り位置に読み取りポインタを更新することを含む。次にブロック344において、追加のビットが(マルチメディアデータストリームを誤アライメントにした)ブロック330において読み取られた場合は、プロセッサ152は、バッファの誤アライメントを修正する。例えば、図4Dにおいてさらに詳細に示されるように、16ビットよりも少ない数のビットがバッファ200内に残っている場合は、ビットストリームを再アライメントさせるためにビットストリームからの追加の16ビットのデータをバッファ200内にシフトさせることができる。16ビットよりも多い数のビットがバッファ200内に残っている場合は、これらのビットのうちの16ビットをビットストリーム及びバッファ200に戻してその現在の読み取り位置ポインタを適宜シフトすることができる。
図4Dは、図4Cのブロック344の動作をさらに詳細に示した流れ図である。検査及び訂正344は、ブロック354において開始し、ブロック354において、プロセッサ152は、読み取りバッファ200がブロック300において誤アライメントされたかどうかを決定する。誤アライメントされなかった場合は、機能344は終了する。バッファが誤アライメントされた場合は、機能はブロック356に進み、ブロック356において、プロセッサ152は、読み取りバッファ、例えばバッファ200、がストリームをアライメントさせるためにマルチメディアストリームからの追加のデータを格納する容量を有するかどうかを決定する。例えば、16ビットよりも少ない数のビットがバッファ200内に残っている場合は、32ビットバッファ200は、追加の16ビットを格納する容量を有する。従って、バッファが前記容量を有する場合は、機能344は、ブロック358に進み、ブロック358において、例えばプロセッサ152は、追加の16ビットのデータをビットストリームから読み取り、マルチメディアデータストリームを再アライメントさせるためにこのデータをバッファ200内にシフトさせる。16ビットを超える数のビットがバッファ200内に残っている場合は、これらのビットのうちの16ビットをビットストリーム及びバッファ200に戻してその現在の読み取り位置ポインタを適宜シフトさせることができる。判断ブロック356において、バッファ200が追加の16ビットの容量を有さない場合は、機能344はブロック360に進み、ブロック360において、読み取りバッファ200からの16ビットのデータが押し戻される、例えばマルチメディアデータストリームの始めにローディング又はコピーされ、シフトされてバッファから取り除かれる。マルチメディアからのアライメントされていない読み取り時に、実際にデータを移動させてストリームに戻すのではなく、プロセッサ152は、データの「押し戻し」がデータを移動させること又はマルチメディアデータストリームから取り除くことなしにアライメントされないポインタをアライメントされたポインタ位置に単に設定し戻すことのみを具備できるようにするために、マルチメディアストリームの読み取り位置を指し示す別個のアライメントされた及びアライメントされないデータポインタを維持することができる。
次に、可変長の符号化されたデータを処理する改良された方法に関する方法が以下において説明される。図5は、符号化されたマルチメディアデータのビットストリーム、例えば、図1に示されたシステム内において送信及び受信されるビットストリーム、からの可変長符号で符号化されたマルチメディアデータ要素を処理する方法400の一側面を示す流れ図である。方法400は、ブロック402において開始し、プロセッサ152は、可変長符号データのビット数をマルチメディアデータストリームから読み取る。このデータは、可変長符号の少なくとも第1の一部分を含む。一例においては、ビット数は8であり、テーブルは、256のエントリを含む。しかしながら、その他の実施形態においては、異なるビット数を読み取ることができる。次にブロック404において、プロセッサは、ストリームから読み取られた第1の組のビットに基づいて第1の復号テーブル内のエントリを検索する。読み取り中の可変長コードワードが読み取られた第1のビットの組内のビット数よりも短い、例えば8ビット以下である、場合は、読み取られたデータは、マルチメディアデータストリーム内の次のデータ項目の一部分に加えてコードワード全体を含み、復号テーブルエントリは、コードワードを復号するために用いることができる。可変長符号が読み取られた第1のビットの組のビッ数よりも長い、例えば8ビットよりも大きい、場合は、復号テーブルエントリは、コードワードを部分的に復号するために用いることができる。判断ブロック406に移動し、プロセッサ152は、エントリがコードワードをさらに復号する際に用いるための第2のテーブルへの参照を含むかどうかを決定する。テーブルが第2のテーブルへの参照を含まない場合は、コードワードの長さは、読み取られたデータの長さ以下である。その場合は、方法400は、オプションでブロック410に進むことができ、ブロック410においては、第1のテーブルのエントリ内の復号データに基づいて可変長コードワードが復号される。従って、これよりも少ない数のビットが処理され、可変長コードワードを復号するためにこれよりも短いルックアップテーブルを考慮することができ、その結果処理速度が有意に向上する。
ブロック406に戻り、第1の復号テーブル内のエントリが第2のテーブルへの参照を含む場合は、方法400は、オプションでブロック420に進むことができ、ブロック420において、可変長コードワードが読み取られたビットの第1の組よりも長い、例えば長さの点で8ビットよりも大きいため、第2のビット数がマルチメディアデータストリームから読み取られる。次にブロック422において、プロセッサ152は、読み取られた第2のビット数に基づき、第2の参照された復号テーブル内のエントリを識別する。一例においては、読み取られた第2のビット数は8であり、第2の参照された復号テーブルは、256のエントリを含む。ブロック410に進み、プロセッサは、第2の復号テーブルのエントリ内の復号データを用いて可変長符号を復号する。第2の復号テーブルが用いられる場合は、第1及び第2の復号テーブルの両方のエントリからの復号データを用いて可変長コードワードを復号することができる。その他の実施形態においては、追加のルックアップテーブルを用いることが可能であり、従って、コードワードの長さが第1の2つのテーブル内のビット数を超える場合は、第2のテーブルは、第3のテーブルを参照し、以下同様である。
一例において、可変長符号がマルチメディアデータストリームから読み取り中である場合は、データは、コードワードが復号されてその長さが決定されるまでストリーム内にとどまる。次にブロック412において、プロセッサ412は、復号テーブルエントリ(又は複数のエントリ)によって指定された数のビットをマルチメディアデータストリームからフラッシングする。一例においては、方法400は、可変長符号データをビットストリームから読み取るために図4A乃至4Dを参照して説明されているビットストリームを構文解析する方法300を用いることを含む。
方法400の実施形態は、映像データストリーム内のルマデータ及びクロマデータ等のマルチメディアデータ要素の復号に適用することができる。音声、映像、テキスト、メタデータ、画像、又は可変長符号で符号化されたその他のあらゆる適切な型のデータのうちの1つを具備するストリーム内のデータ要素を含むマルチメディアデータ要素を復号するための実施形態を用いることができる。
図6は、例えば方法400において用いられているようなデータ構造の一例を示す概略的ブロック図である。一例においては、第1の復号テーブル442は、数多くのエントリ444を含む。テーブル442は、当業において知られる方法を含むいずれかの適切な方法に従ってルックアップテーブルとしてアクセスすることができるエントリの配列であることができる。各エントリ444は、コードワードを復号するためのデータ、コードワードの長さを示すデータ、又は第2レベル復号テーブル446を指し示す又は参照するデータのうちの1つ以上を格納することができる。コードワードを復号するためのデータは、コードワードを復号する際に用いるためのさらなるデータを含む他のデータ構造(示されていない)を示すポインタ又は参照を含むことができる。可変長符号に依存して、テーブル442は、1つ以上の第2レベル復号テーブル446を指し示すか又は参照することができる。可変長符号に依存して、第2レベル復号テーブル446は、第3レベル復号テーブルへのさらなる参照を含むことができ、第3レベル復号テーブルは、第2レベルテーブル446と類似する構造を有する。各第2レベルテーブルは、エントリ448を含み、該エントリは、コードワードを復号するためのデータ、コードワードの長さを示すデータ、又は第3レベルテーブルにアクセスするためのポインタ又は参照のうちの1つ以上を含むことができる。図5を参照して上述されるように、方法400は、第1レベル復号テーブル442において固定された数のコードワードビットを検索する。コードワードがコードワードビット数よりも短い場合は、第1レベルテーブル442内のデータを用いてコードワードが復号される。第1レベルテーブル内のエントリ444によって示されようにコードワードがそれよりも長い場合は、第2レベル復号テーブル446(さらに可能なことに第3レベル又は第4レベルのテーブル)からの追加の復号データを検索してより長いコードワードを復号するために用いることができる。
図7は、符号化されたマルチメディアデータのビットストリーム、例えば図1に示されるシステムにおいて送信及び受信されるビットストリーム、からの可変長符号を処理する改良された方法500の一例を示す流れ図である。この例においては、符号は、接頭辞及び接尾辞を含む。方法500は、ブロック502において開始し、ブロック502において、プロセッサ152は、接尾辞の長さがゼロであるかどうかを決定する。接尾辞の長さがゼロである場合は、方法500は、ブロック504に進み、ブロック504において、プロセッサ152は、接頭辞が予め決められた値、例えば14、以下であるかどうかを決定する。ブロック504において、接頭辞が14以下である場合は、方法500は終了し、マルチメディアデータストリーム内の次の組のデータに関してプロセスを繰り返すことができる。ブロック504において、接頭辞が14未満でないと決定された場合は、方法500は、判断ブロック506に進み、判断ブロック506において、接頭辞が予め決められた値、例えば14、と比較される。接頭辞がこの値に等しい場合は、方法500はブロック510に進み、ブロック510において、4ビットが読み取られる。接頭辞が予め決められた値14でない場合は、方法500はブロック512に進み、ブロック512において12ビットが読み取られる。次にブロック514において、可変長符号の処理と関連づけられたレベル符号が15だけ増分され、マルチメディアデータストリーム内の次の組のデータに関してプロセスを繰り返すことができる。
ブロック502に戻り、接尾辞長がゼロでない場合は、方法500は、判断ブロック520に進み、判断ブロック520において、プロセッサ152は、接頭辞が予め決められた値、例えば14、以下であるかどうかを決定する。接頭辞が14以下である場合は、プロセッサ152は、接尾辞ビット、例えば接尾辞長によって指定されたビット数、を読み取る。接頭辞が14よりも大きい場合は、方法500は、ブロック524に移動し、ブロック524において、プロセッサ152は、マルチメディアデータストリームから12ビットを読み取る。マルチメディアデータストリーム内の次の組のデータに関してプロセスを繰り返すことができる。
一例においては、受信された符号化されたマルチメディアデータを処理するための装置は、受信されたビットストリームからの符号化されたマルチメディアデータの第1のバッファにおいて利用可能なビット数を決定するための手段を具備することができる。装置は、コードワードを読み取るための手段をさらに具備する。固定長コードワードを読み取る場合は、読み取るための手段は、プロセッサアライメントされたデータをビットストリームから第1のバッファ内に読み込む。固定されたコードワードは、決定された利用可能なビットと、プロセッサアライメントされたデータの一部分と関連づけられたビットと、を具備する。可変長コードワードを読み取る場合は、読み取るための手段は、プロセッサアライメントされないデータをビットストリームから第1のバッファ内に読み込む。可変長コードワードは、利用可能なビットの少なくとも一部を具備する。図8は、受信された符号化されたマルチメディアデータを処理するための復号器150の例を示す。決定するための手段は、決定モジュール802を具備することができる。コードワードを読み取るための手段は、コードワード読み取るモジュール804を具備することができる。図8に示される復号器150の例は、図4A乃至4Dを参照して説明される方法を実行するように構成することができる。
一例においては、マルチメディアデータストリーム内の可変長符号を復号するための装置は、マルチメディアデータストリームの一部分において第1のビット数を読み取るための手段を具備する。装置は、第1のデータ構造における第1の復号データを第1のビット数に少なくても部分的に基づいて識別するための手段をさらに具備する。装置は、第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定するための手段をさらに具備する。装置は、第1及び第2の復号データのうちの1つに少なくとも部分的に基づいてマルチメディアデータを復号するための手段をさらに含む。図9は、マルチメディアデータストリーム内の可変長符号を復号するための復号器150の例を示す。読み取るための手段は、読み取りモジュール902を具備することができる。識別するための手段は、識別モジュール904を具備することができる。決定するための手段は、決定モジュール906を具備することができる。復号するための手段は、復号モジュール908を具備することができる。図9に示される復号器150の例は、図5を参照して説明される方法を実行するように構成することができる。
図10は、復号器150の他の例を示す。図10に示される復号器150の例は、図4A乃至4Dを参照して説明される方法を実行するように構成することができる。図10に示される復号器150の例は、受信されたビットストリームからの符号化されたマルチメディアデータの第1のバッファにおいて利用可能なビット数を決定するように構成された決定器1002を具備する。復号器150は、固定長コードワードを読み取る場合は、プロセッサアライメントされたデータをビットストリームから第1のバッファ内に読み込むように構成された読み取り器1004をさらに具備する。固定長コードワードは、決定された利用可能なビットと、プロセッサアライメントされたデータの一部分と関連づけられたビットと、を具備する。読み取り器1004は、可変長コードワードを読み取る場合は、プロセッサアライメントされないデータをビットストリームから第1のバッファ内に読み込むようにさらに構成される。可変長コードワードは、利用可能なビットの少なくとも一部を具備する。復号器150は、固定長コードワードを読み取る場合は、プロセッサアライメントされたデータを読み取り次にプロセッサアライメントされたデータの一部分と関連づけられたビットを第1のバッファから第2のバッファにコピーする前に決定された利用可能なビットを第2のバッファ内にコピーするように構成されたコピー器1006をさらに具備することができる。復号器150は、可変長コードワードを復号するように構成されるコードワード復号器1008をさらに含むことができる。復号器150は、復号された可変長コードワードの長さに少なくとも部分的に基づいて第1のバッファにおいて利用可能なビット数を更新するように構成された更新器1010と、第1のバッファの内容を調整してビットストリーム内のデータをアライメントさせるように構成された調整器1012と、をさらに具備することができる。一側面においては、復号器150は、第1のデータ構造における第1の復号データ第1のバッファ内のデータに少なくとも部分的に基づいて識別するように構成された識別器1014と、第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定するように構成された第2の決定器1016と、をさらに含む。
図11は、復号器150の他の例を示す。図11に示される復号器150の例は、図5を参照して説明される方法を実行するように構成することができる。図11に示される復号器150の例は、マルチメディアデータストリームの一部分において第1のビット数を読み取るように構成された読み取り器1102を具備する。復号器150は、第1のデータ構造における第1の復号データ第1のビット数に少なくとも部分的に基づいて識別するように構成された識別器1104をさらに具備する。復号器150は、第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定するように構成された決定器1106をさらに具備する。復号器150は、第1及び第2の復号データのうちの1つに少なくとも部分的に基づいてマルチメディアデータを復号するように構成された復号器1108をさらに具備する。一側面においては、復号器150は、マルチメディアデータストリームの第2の一部分内の第2のビット数を読み取るように構成された第2の読み取り器1110と、第2のデータ構造における復号データをマルチメディアデータの第2の一部分に少なくとも部分的に基づいて識別するように構成された第2の識別器1112と、をさらに具備する。
本明細書において開示された実施形態に関連して説明されている様々な例示的論理ブロック、モジュール、回路、及びアルゴリズム上のステップは、電子ハードウェアとして、コンピュータソフトウェアとして、又は両方の組合せとして実装できることを当業者は理解するであろう。ハードウェアとソフトウェアのこの互換性を明確に例示するため、上記においては、様々な例示的構成要素、ブロック、モジュール、回路、及びステップが、各々の機能の観点で一般的に説明されている。これらの機能がハードウェアとして又はソフトウェアとして実装されるかは、全体的システムに対する特定の用途上の及び設計上の制約事項に依存する。当業者は、説明されている機能を各々の特定の用途に合わせて様々な形で実装することができるが、これらの実装決定は、本発明の適用範囲からの逸脱を生じさせるものであるとは解釈すべきではない。
本明細書において開示された実施形態に関連して説明されている様々な例示的な論理ブロック、モジュール、及び回路は、プロセッサ152によって実装又は実行することができ、又は、本明細書において説明されている機能を果たすように設計された汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、その他のプログラミング可能な論理デバイス、ディスクリートゲートロジック、ディスクリートトランジスタロジック、ディスクリートハードウェア構成品、又はそのあらゆる組合せ、とともに実装又は実行することができる。汎用プロセッサはマイクロプロセッサであることができるが、代替として、従来のどのようなプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであってもよい。プロセッサは、計算装置の組合せ、例えば、DSPと、1つのマイクロプロセッサとの組合せ、複数のマイクロプロセッサの組合せ、DSPコアと関連する1つ以上のマイクロプロセッサの組合せ、又はその他のあらゆる該コンフィギュレーションとの組合せ、として実装することもできる。
本明細書において開示された実施形態に関連して説明されている方法又はアルゴリズムのステップは、ハードウェア内において直接具体化させること、プロセッサによって実行されるソフトウェアモジュール内において具体化させること、又は両方の組合せ内において具体化させることができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、ERPOMメモリ、EERPOMメモリ、レジスタ、ハードディスク、取り外し可能ディスク、CD−ROM、又は当業において知られるその他のあらゆる形態の記憶媒体に常駐することが可能である。典型的記憶媒体は、プロセッサが記憶媒体から情報を読み出すことができるように及び記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体は、プロセッサと一体化させることができる。プロセッサ及び記憶媒体は、ASIC内に常駐することができる。ASICは、ユーザー端末内に常駐することができる。代替として、プロセッサ及び記憶媒体は、ユーザー端末において個別構成要素として常駐することができる。
さらに、図1及び8乃至10の復号器デバイス150は、単純化された例であることに注目すべきである。従って、上述される復号器の動作に対して影響を与えずに追加の要素を加えることができる。さらに、図1、8、9、10及び/又は11の復号器デバイス150の要素のうちの1つ又はその組み合わせは、上述される復号器の動作に対して影響を及ぼさずに結合させること及び/又は再配置することができる。
従って、開示された実施形態に関する上記の説明は、当業者が本発明を製造又は使用できるようにすることを目的とするものである。これらの実施形態に対する様々な修正は、当業者にとっては容易に明確になるであろう。さらに、本明細書において定められた一般原理は、その他の実施形態に対しても適用することができる。以上のように、本発明は、本明細書において示されている実施形態に限定されることが意図されるものではなく、本明細書において開示されている原理及び斬新な特長に一致する限りにおいて最も広範な適用範囲が認められるべきである。
上記の発明を実施するための最良の形態は、様々な実施形態に対して当てはまる本発明の斬新な特長を示している、説明している、及び指摘している一方で、例示されているデバイス又はプロセスの様々な省略、置換、及びその形態及び詳細の変更を本発明の精神から逸脱せずに当業者によって行うことができることが理解されるであろう。認識されるように、幾つかの特長は、互いに別個に用いること又は実践することができるため、本発明は、本明細書において示されているすべての特長及び利益を提供しない形式内において具体化させることができる。本発明の適用範囲は、上記の説明によってではなく添付された請求項によって示される。添付された請求項の意味及び同等の意味の範囲内にあるすべての変更は、その適用範囲内に包含されるべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
受信された符号化されたマルチメディアデータを処理する方法であって、
受信されたビットストリームからの符号化されたマルチメディアデータの第1のバッファにおいて利用可能なビット数を決定することと、
固定長コードワードを読み取る場合は、プロセッサアライメントされたデータを前記ビットストリームから前記第1のバッファ内に読み込むことと、
可変長コードワードを読み取る場合は、プロセッサアライメントされないデータを前記ビットストリームから前記第1のバッファ内に読み込むこと、とを具備し、前記固定長コードワードは、前記決定された利用可能なビットと、前記プロセッサアライメントされたデータの一部分と関連づけられたビットと、を具備し、前記可変長コードワードは、前記利用可能なビットの少なくとも一部を具備する、方法。
[C2]
前記固定長コードワードを読み取る場合は、前記プロセッサアライメントされたデータを読み取り次に前記プロセッサアライメントされたデータの前記一部分と関連づけられたビットを前記第1のバッファから第2のバッファにコピーする前に前記決定された利用可能なビットを前記第2のバッファ内にコピーすることをさらに具備する[C1]に記載の方法。
[C3]
プロセッサアライメントされないデータを読み取ることは、16ビットを読み取ることを具備し、プロセッサアライメントされたデータを読み取ることは、32ビットを読み取ることを具備する[C1]に記載の方法。
[C4]
前記可変長コードワードを復号することと、
前記第1のバッファにおいて利用可能な前記ビット数を前記復号された可変長コードワードの前記長さに少なくとも部分的に基づいて更新することと、
前記第1のバッファの前記内容を調整して前記ビットストリームにおいてデータをアライメントさせること、とをさらに具備する[C1]に記載の方法。
[C5]
前記可変長コードワードを復号することは、
第1のデータ構造における第1の復号データを前記第1のバッファ内のデータに少なくとも部分的に基づいて識別することと、
前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定すること、とを具備する[C4]に記載の方法。
[C6]
前記第1のバッファの前記内容を調整して前記ビットストリーム内においてデータをアライメントさせることは、プロセッサアライメントされないデータを前記ビットストリームから読み取ることを具備する[C4]に記載の方法。
[C7]
前記第1のバッファの前記内容を調整して前記ビットストリーム内においてデータをアライメントさせることは、前記プロセッサアライメントされないデータを前記ビットストリームに戻すことを具備する[C4]に記載の方法。
[C8]
プロセッサアライメントされたデータを符号化されたマルチメディアデータの前記ビットストリームから読み取ることは、ワード内のデータバイトの順序を変更することを具備する[C1]に記載の方法。
[C9]
ワード内のデータバイトの順序を変更することは、データの順序をビッグエンディアンフォーマットからリトルエンディアンフォーマットに変更することを具備する[C8]に記載の方法。
[C10]
マルチメディアデータを処理するための方法であって、
受信されたビットストリームからの符号化されたマルチメディアデータの第1のバッファにおいて利用可能なビット数を決定することと、
固定長コードワードを読み取る場合は、プロセッサアライメントされたデータを前記ビットストリームから前記第1のバッファ内に読み込むことと、
可変長コードワードである場合は、プロセッサアライメントされないデータを前記ビットストリームから前記第1のバッファ内に読み込むこと、とを具備し、前記固定長コードワードは、前記決定された利用可能なビットと、前記プロセッサアライメントされたデータの一部分と関連づけられたビットと、を具備し、前記可変長コードワードは、前記利用可能なビットの少なくとも一部を具備する方法、を具体化するためのコンピュータ読み取り可能媒体。
[C11]
前記方法は、
前記可変長コードワードを復号することと、
前記第1のバッファにおいて利用可能な前記ビット数を前記復号された可変長コードワードの前記長さに少なくとも部分的に基づいて更新することと、
前記第1のバッファの前記内容を調整して前記ビットストリーム内においてデータをアライメントさせること、とをさらに具備する[C10]に記載のコンピュータ読み取り可能媒体。
[C12]
前記可変長コードワードを復号することは、
第1のデータ構造における第1の復号データを前記第1のバッファ内のデータに少なくとも部分的に基づいて識別することと、
前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定すること、とを具備する[C11]に記載のコンピュータ読み取り可能媒体。
[C13]
受信された符号化されたマルチメディアデータを処理するための装置であって、
受信されたビットストリームからの符号化されたマルチメディアデータの第1のバッファにおいて利用可能なビット数を決定するための手段と、
コードワードを読み取るための手段と、を具備し、固定長コードワードを読み取る場合は、読み取るための前記手段は、プロセッサアライメントされたデータを前記ビットストリームから前記第1のバッファ内に読み込み、前記固定長コードワードは、前記決定された利用可能なビットと、前記プロセッサアライメントされたデータの一部分と関連づけられたビットと、を具備し、可変長コードワードを読み取る場合は、読み取るための前記手段は、プロセッサアライメントされないデータを前記ビットストリームから前記第1のバッファ内に読み込み、前記可変長コードワードは、前記利用可能なビットの少なくとも一部を具備する、装置。
[C14]
読み取るための前記手段は、前記プロセッサアライメントされたデータを読み取り次に前記プロセッサアライメントされたデータの前記一部分と関連づけられたビットを前記第1のバッファから第2のバッファにコピーする前に前記決定された利用可能なビットを前記第2のバッファ内にコピーするための手段をさらに具備する[C13]に記載の装置。
[C15]
プロセッサアライメントされないデータを読み取るための前記手段は、16ビットを読み取るための手段を具備し、プロセッサアライメントされたデータを読み取ることは、32ビットを読み取ることを具備する[C13]に記載の装置。
[C16]
前記可変長コードワードを復号するための手段と、
前記第1のバッファにおいて利用可能な前記ビット数を前記復号された可変長コードワードの前記長さに少なくとも部分的に基づいて更新するための手段と、
前記第1のバッファの前記内容を調整して前記ビットストリーム内においてデータをアライメントさせるための手段と、をさらに具備する[C13]に記載の装置。
[C17]
前記可変長コードワードを復号するための前記手段は、
第1のデータ構造における第1の復号データを前記第1のバッファ内のデータに少なくとも部分的に基づいて識別するための手段と、
前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定するための手段と、を具備する[C16]に記載の装置
[C18]
前記第1のバッファの前記内容を調整して前記ビットストリーム内においてデータをアライメントさせるための前記手段は、プロセッサアライメントされないデータを前記ビットストリームから読み取るための手段を具備する[C16]に記載の装置。
[C19]
前記第1のバッファの前記内容を調整して前記ビットストリーム内においてデータをアライメントさせるための前記手段は、プロセッサアライメントされないデータを前記ビットストリームに戻すための手段を具備する[C16]に記載の装置。
[C20]
マルチメディアデータを処理するための装置であって、
受信されたビットストリームからの符号化されたマルチメディアデータの第1のバッファにおいて利用可能なビット数を決定するように構成された決定器と、
固定長コードワードを読み取る場合は、プロセッサアライメントされたデータを前記ビットストリームから前記第1のバッファ内に読み込み、可変長コードワードである場合は、プロセッサアライメントされないデータを前記ビットストリームから前記第1のバッファ内に読み込むように構成された読み取り器と、を具備し、前記固定長コードワードは、前記決定された利用可能なビットと、前記プロセッサアライメントされたデータの一部分と関連づけられたビットと、を具備し、前記可変長コードワードは、前記利用可能なビットの少なくとも一部を具備する、装置。
[C21]
固定長コードワードを読み取る場合は、前記プロセッサアライメントされたデータを読み取り次に前記プロセッサアライメントされたデータの前記一部分と関連づけられたビットを前記第1のバッファから第2のバッファにコピーする前に前記決定された利用可能なビットを前記第2のバッファ内にコピーするように構成されたコピー器をさらに具備する[C20]に記載の装置。
[C22]
前記読み取り器は、16ビットのデータを具備するプロセッサアライメントされないデータを読み取るように構成され、前記読み取り器は、32ビットのデータを具備するプロセッサアライメントされたデータを読み取るように構成される[C20]に記載の装置。
[C23]
前記可変長コードワードを復号するように構成されたコードワード復号器と、
前記第1のバッファにおいて利用可能な前記ビット数を前記復号された可変長コードワードの前記長さに少なくとも部分的に基づいて更新するように構成された更新器と、
前記第1のバッファの前記内容を調整して前記ビットストリーム内においてデータをアライメントさせるように構成された調整器と、をさらに具備する請求項20に記載の装置。
[C24]
第1のデータ構造における第1の復号データを前記第1のバッファ内のデータに少なくとも部分的に基づいて識別するように構成された識別器と、
前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定するように構成された第2の決定器と、をさらに具備する[C20]に記載の装置。
[C25]
前記調整器は、プロセッサアライメントされないデータを前記ビットストリームから少なくとも部分的に読み取ることによって前記第1のバッファの前記内容を調整して前記ビットストリーム内においてデータをアライメントさせるように構成される[C24]に記載の装置。
[C26]
前記調整器は、前記第1のバッファの前記内容を調整して前記ビットストリーム内においてデータをアライメントさせることの一部として、プロセッサアライメントされないデータを前記ビットストリームに戻すようにさらに構成される[C24]に記載の装置。
[C27]
前記読み取り器は、プロセッサアライメントされたデータを符号化されたマルチメディアデータの前記ストリームから読み取ることの一部として、ワード内のデータバイトの順序を変更するようにさらに構成される[C20]に記載の装置。
[C28]
マルチメディアデータを処理するためのプロセッサであって、
受信されたビットストリームからの符号化されたマルチメディアデータの第1のバッファにおいて利用可能なビット数を決定し、
固定長コードワードを読み取る場合は、プロセッサアライメントされたデータを前記ビットストリームから前記第1のバッファ内に読み込み、可変長コードワードを読み取る場合は、プロセッサアライメントされないデータを前記ビットストリームから前記第1のバッファ内に読み込むように構成され、前記固定長コードワードは、前記決定された利用可能なビットと、前記プロセッサアライメントされたデータの一部分と関連づけられたビットと、を具備し、前記可変長コードワードは、前記利用可能なビットの少なくとも一部を具備する、プロセッサ。
[C29]
前記プロセッサは、固定長コードワードを読み取る場合は、前記プロセッサアライメントされたデータを読み取って次に前記プロセッサアライメントされたデータの前記一部分と関連づけられたビットを前記第1のバッファから第2のバッファにコピーする前に前記決定された利用可能なビットを前記第2のバッファ内にコピーするようにさらに構成される[C28]に記載のプロセッサ。
[C30]
前記プロセッサは、第1のデータ構造における第1の復号データを前記第1のバッファ内のデータに少なくとも部分的に基づいて識別し、前記復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定するようにさらに構成される[C28]に記載のプロセッサ。
[C31]
前記プロセッサは、プロセッサアライメントされないデータを前記ビットストリームから少なくとも部分的に読み取ることによって前記第1のバッファの前記内容を調整して前記ビットストリーム内においてデータをアライメントさせるように構成される[C30]に記載のプロセッサ。
[C32]
前記プロセッサは、前記第1のバッファの前記内容を調整して前記ビットストリーム内においてデータをアライメントさせることの一部として、プロセッサアライメントされないデータを前記ビットストリームに戻すようにさらに構成される[C30]に記載のプロセッサ。
[C33]
前記プロセッサは、プロセッサアライメントされたデータを符号化されたマルチメディアデータの前記ストリームから読み取ることの一部として、ワード内のデータバイトの順序を変更するようにさらに構成される[C28]に記載のプロセッサ。
[C34]
マルチメディアデータストリームにおいて可変長符号を復号する方法であって、
前記マルチメディアデータストリームの一部分において第1のビット数を読み取ることと、
第1のデータ構造における第1の復号データを前記第1のビット数に少なくとも部分的に基づいて識別することと、
前記第1の復号データが第2の復号データを具備する第2のデータ構造を示しているかどうかを決定することと、
前記第1及び第2の復号データのうちの1つに少なくとも部分的に基づいてマルチメディアデータを復号すること、とを具備する、方法。
[C35]
前記第1のビット数は、前記第1のデータ構造における前記エントリ数と関連づけられる[C34]に記載の方法。
[C36]
前記第1の復号データは、前記第2のデータ構造を指し示すポインタを具備する[C34]に記載の方法。
[C37]
前記マルチメディアデータを復号することは、前記第1の復号データに少なくとも部分的に基づいて前記マルチメディアデータを復号することを具備する[C34]に記載の方法。
[C38]
前記マルチメディアデータを復号することは、前記第1の復号データが復号されたマルチメディアデータを示している場合に前記第1の復号データに少なくとも部分的に基づく[C34]に記載の方法。
[C39]
前記マルチメディアデータストリームの第2の一部分において第2のビット数を読み取ることと、
第2のデータ構造における前記第2の復号データを前記マルチメディアデータの前記第2の一部分に少なくとも部分的に基づいて識別すること、とをさらに具備する[C34]に記載の方法。
[C40]
前記第2のビット数は、前記第2のデータ構造における前記エントリ数と関連づけられる[C39]に記載の方法。
[C41]
前記第2の復号データは、復号データを具備する第3のデータ構造を示しているかどうかを決定することをさらに具備する[C39]に記載の方法。
[C42]
前記マルチメディアデータを復号することは、前記第2の復号データに少なくとも部分的に基づく[C39]に記載の方法。
[C43]
前記第1のデータ構造は、ルックアップテーブルを具備する[C34]に記載の方法。
[C44]
マルチメディアデータストリーム内の可変長符号を復号するための装置であって、
前記マルチメディアデータストリームの一部分において第1のビット数を読み取るための手段と、
第1のデータ構造における第1の復号データを前記第1のビット数に少なくとも部分的に基づいて識別するための手段と、
前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定するための手段と、
前記第1及び第2の復号データのうちの1つに少なくとも部分的に基づいてマルチメディアデータを復号するための手段と、を具備する、装置。
[C45]
前記第1のビット数は、前記第1のデータ構造内の前記エントリ数と関連づけられる[C44]に記載の装置。
[C46]
前記第1の復号データは、前記第2のデータ構造を指し示すポインタを具備する[C44]に記載の装置。
[C47]
前記マルチメディアデータを復号するための前記手段は、前記第1の復号データに少なくとも部分的に基づいて前記マルチメディアデータを復号するための手段を具備する[C44]に記載の装置。
[C48]
前記マルチメディアデータを復号することは、前記第1の復号データが復号されたマルチメディアデータを示している場合に前記第1の復号データに少なくとも部分的に基づく[C47]に記載の装置。
[C49]
前記マルチメディアデータストリームの第2の一部分において第2のビット数を読み取るための手段と、
第2のデータ構造における前記第2の復号データを前記マルチメディアデータの前記第2の一部分に少なくとも部分的に基づいて識別するための手段と、をさらに具備する[C44]に記載の装置。
[C50]
前記第2のビット数は、前記第2のデータ構造における前記エントリ数と関連づけられる[C49]に記載の装置。
[C51]
前記第2の復号データが復号データを具備する第3のデータ構造を示しているかどうかを決定するための手段をさらに具備する[C49]に記載の装置。
[C52]
前記マルチメディアデータを復号することは、前記第2の復号データに少なくとも部分的に基づく[C49]に記載の装置。
[C53]
マルチメディアデータを処理するための方法であって、
前記マルチメディアデータストリームの一部分において第1のビット数を読み取ることと、
第1のデータ構造における第1の復号データを前記第1のビット数に少なくとも部分的に基づいて識別することと、
前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定することと、
前記第1及び第2の復号データのうちの1つに少なくとも部分的に基づいてマルチメディアデータを復号すること、とを具備する方法、を具体化するためのコンピュータ読み取り可能媒体。
[C54]
前記第1の復号データは、前記第2のデータ構造を指し示すポインタを具備する[C53]に記載のコンピュータ読み取り可能媒体。
[C55]
前記マルチメディアデータを復号することは、前記第1の復号データに少なくとも部分的に基づく[C53]に記載のコンピュータ読み取り可能媒体。
[C56]
前記マルチメディアデータを復号することは、前記第1の復号データが復号されたマルチメディアデータを示している場合に前記第1の復号データに少なくとも部分的に基づく[C55]に記載のコンピュータ読み取り可能媒体。
[C57]
前記マルチメディアデータストリームの第2の一部分において第2のビット数を読み取ることと、
第2のデータ構造における前記第2の復号データを前記マルチメディアデータの前記第2の一部分に少なくとも部分的に基づいて識別すること、とをさらに具備する[C53]に記載のコンピュータ読み取り可能媒体。
[C58]
前記方法は、前記第2の復号データが復号データを具備する第3のデータ構造を示しているかどうかを決定することをさらに具備する[C57]に記載のコンピュータ読み取り可能媒体。
[C59]
前記マルチメディアデータを復号することは、前記第2の復号データに少なくとも部分的に基づく[C57]に記載のコンピュータ読み取り可能媒体。
[C60]
マルチメディアデータを処理するための装置であって、
前記マルチメディアデータストリームの一部分において第1のビット数を読み取るように構成された読み取り器と、
第1のデータ構造における第1の復号データを前記第1のビット数に少なくとも部分的に基づいて識別するように構成された識別器と、
前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定するように構成された決定器と、
前記第1又は第2の復号データのうちの1つに少なくとも部分的に基づいてマルチメディアデータを復号するように構成された復号器と、を具備する、装置。
[C61]
前記第1のビット数は、前記第1のデータ構造における前記エントリ数と関連づけられる[C60]に記載の装置。
[C62]
前記第1の復号データは、前記第2のデータ構造を指し示すポインタを具備する[C60]に記載の装置。
[C63]
前記復号器は、前記第1の復号データに少なくとも部分的に基づいて前記マルチメディアデータを復号するようにさらに構成される[C60]に記載の装置。
[C64]
前記復号器は、前記第1の復号データが復号されたマルチメディアデータを示している場合に前記第1の復号データに少なくとも部分的に基づいて前記マルチメディアデータを復号するように構成される[C63]に記載の装置。
[C65]
前記マルチメディアデータストリームの第2の一部分において第2のビット数を読み取るように構成された第2の読取り器と、
第2のデータ構造における前記第2の復号データを前記マルチメディアデータの前記第2の一部分に少なくとも部分的に基づいて識別するように構成された第2の識別器と、をさらに具備する[C60]に記載の装置。
[C66]
前記第2のビット数は、前記第2のデータ構造における前記エントリ数と関連づけられる[C65]に記載の装置。
[C67]
前記決定器は、前記第2の復号データが復号データを具備する第3のデータ構造を示しているかどうかを決定するようにさらに構成される[C65]に記載の装置。
[C68]
前記復号器は、前記第2の復号データに少なくとも部分的に基づいて前記マルチメディアデータを復号するようにさらに構成される[C65]に記載の装置。
[C69]
前記第1のデータ構造は、ルックアップテーブルを具備する[C60]に記載の装置。
[C70]
マルチメディアデータを処理するためのプロセッサであって、
前記マルチメディアデータストリームの一部分において第1のビット数を読み取り、
第1のデータ構造における第1の復号データを前記第1のビット数に基づいて識別し、
前記第1の復号データが復号データを具備する第2のデータ構造を示しているかどうかを決定し、さらに前記第1及び第2の復号データのうちの1つに少なくとも部分的に基づいてマルチメディアデータを復号するように構成される、プロセッサ。
[C71]
前記第1のビット数は、前記第1のデータ構造における前記エントリ数と関連づけられる[C70]に記載の装置。
[C72]
前記第1の復号データは、前記第2のデータ構造を指し示すポインタを具備する[C70]に記載の装置。
[C73]
前記プロセッサは、前記マルチメディアデータストリームの第2の一部分において第2のビット数を読み取るようにさらに構成され、第2のデータ構造における前記第2の復号データを前記マルチメディアデータの前記第2の一部分に少なくとも部分的に基づいて識別するように構成される[C70]に記載のプロセッサ。
[C74]
前記第2のビット数は、前記第2のデータ構造における前記エントリ数と関連づけられる[C73]
[C75]
前記プロセッサは、前記第2の復号データが復号データを具備する第3のデータ構造を示しているかどうかを決定するようにさらに構成される[C73]に記載のプロセッサ。
[C76]
前記プロセッサは、前記マルチメディアデータストリームと関連づけられたバッファから8ビットのデータを少なくとも部分的にコピーすることによって前記第1のビット数を読み取るように構成される[C70]に記載のプロセッサ。

Claims (33)

  1. マルチメディアデータストリームにおける可変長符号を復号する方法であって、
    読み出しバッファ内で利用可能な可変長コードワード(VLC)ビットの数を決定することと、
    要求された数のVLCビットが利用可能でない場合に、前記マルチメディアデータストリームの一部の第1の数のビットを前記読み出しバッファ内にローディングすることと、
    前記要求された数のVLCビットを出力バッファ内に複写することと、
    前記出力バッファ内の前記要求された数のVLCビットに基づいて、可変長コードワードを復号することと、
    少なくとも前記可変長コードワードの長さに対応する数のビットを前記読み出しバッファからフラッシングすることと、
    前記フラッシング後、前記読み出しバッファ内への前記第1の数のビットのローディングに基づいて前記マルチメディアデータストリームを再アライメントすることと、を具備する方法。
  2. 前記再アライメントすることは、前記読み出しバッファが、前記マルチメディアデータストリームにおけるアライメントポイントに対して読み出し及び格納を行うための容量を有するかどうかを決定することと、前記読み出しバッファが当該容量を有すると決定された場合に、所定数のビットを前記マルチメディアデータストリームから前記読み出しバッファに読み出すことと、を具備する請求項1に記載の方法。
  3. 前記再アライメントすることはさらに、前記読み出しバッファが前記容量を有しないと決定された場合に、前記所定数のビットを前記読み出しバッファから前記マルチメディアデータストリームにプッシュすること、を具備する請求項2に記載の方法。
  4. 前記所定数のビットは、16ビットを含む請求項3に記載の方法。
  5. 前記読み出しバッファにおける前記第1の数のビットの読み出しは、前記要求された数のVLCビットが利用可能でないときに、固定数のビットを前記マルチメディアデータストリームから前記読み出しバッファにローディングすることと、前記要求された数のVLCビットが利用可能であるときに、前記固定数のビットの前記ローディングをスキップすることと、を具備する請求項1に記載の方法。
  6. 前記再アライメントすることに先立って、前記読み出しバッファがミスアライメントされたかどうかを決定することと、前記読み出しバッファがミスアライメントされないとの決定に応答して、前記再アライメントをスキップすることと、をさらに具備する請求項5に記載の方法。
  7. 前記再アライメントすることに先立って、前記読み出しバッファがミスアライメントされたかどうかを決定することと、前記読み出しバッファがミスアライメントされないとの決定に応答して、前記再アライメントをスキップすることと、をさらに具備する請求項1に記載の方法。
  8. マルチメディアデータストリームにおける可変長符号を復号する装置であって、
    読み出しバッファ内で利用可能な可変長コードワード(VLC)ビットの数を決定する手段と、
    要求された数のVLCビットが利用可能でない場合に、前記マルチメディアデータストリームの一部の第1の数のビットを前記読み出しバッファ内にローディングする手段と、
    前記要求された数のVLCビットを出力バッファ内に複写する手段と、
    前記出力バッファ内の前記要求された数のVLCビットに基づいて、可変長コードワードを復号する手段と、
    少なくとも前記可変長コードワードの長さに対応する数のビットを前記読み出しバッファからフラッシングする手段と、
    前記フラッシング後、前記読み出しバッファ内への前記第1の数のビットのローディングに基づいて前記マルチメディアデータストリームを再アライメントする手段と、を具備する装置。
  9. 前記再アライメントする手段は、前記読み出しバッファが、前記マルチメディアデータストリームにおけるアライメントポイントに対して読み出し及び格納を行うための容量を有するかどうかを決定する手段と、前記読み出しバッファが当該容量を有すると決定された場合に、所定数のビットを前記マルチメディアデータストリームから前記読み出しバッファに読み出す手段と、を具備する請求項8に記載の装置。
  10. 前記再アライメントする手段はさらに、前記読み出しバッファが前記容量を有しないと決定された場合に、前記所定数のビットを前記読み出しバッファから前記マルチメディアデータストリームにプッシュする手段を具備する請求項9に記載の装置。
  11. 前記所定数のビットは、16ビットを含む請求項10に記載の装置。
  12. 前記第1の数のビットを読み出す手段は、前記要求された数のVLCビットが利用可能でないときに、固定数のビットを前記マルチメディアデータストリームから前記読み出しバッファにローディングする手段を具備し、前記要求された数のVLCビットが利用可能であるときに、前記固定数のビットの前記ローディングをスキップする手段をさらに具備する請求項8に記載の装置。
  13. 前記読み出しバッファがミスアライメントされたかどうかを決定する手段と、前記読み出しバッファがミスアライメントされないとの決定に応答して、前記再アライメント手段による再アライメントをスキップする手段とをさらに具備する請求項12に記載の装置。
  14. 前記読み出しバッファがミスアライメントされたかどうかを決定する手段と、前記読み出しバッファがミスアライメントされないとの決定に応答して、前記再アライメント手段による再アライメントをスキップする手段とをさらに具備する請求項8に記載の装置。
  15. コンピュータ読み取り可能な記録媒体であって、コンピュータに、
    読み出しバッファ内で利用可能なビットの数を決定し、
    要求された数のビットが利用可能でない場合に、マルチメディアデータストリームの一部の第1の数のビットを前記読み出しバッファ内にローディングし、
    前記要求された数のビットを出力バッファ内に複写し、
    前記出力バッファ内の前記要求された数のビットに基づいて、可変長コードワードを復号し、
    少なくとも前記可変長コードワードの長さに対応する数のビットを前記読み出しバッファからフラッシングし、
    前記読み出しバッファがフラッシングされた後、前記読み出しバッファ内への前記第1の数のビットのローディングに基づいて前記マルチメディアデータストリームを再アライメントすることを行わせるための命令を格納したコンピュータ読み取り可能な記録媒体。
  16. 前記再アライメントを行わせるための命令は、前記コンピュータに、前記読み出しバッファが、前記マルチメディアデータストリームにおけるアライメントポイントに対して読み出し及び格納を行うための容量を有するかどうかを決定し、前記読み出しバッファが当該容量を有すると決定された場合に、所定数のビットを前記マルチメディアデータストリームから前記読み出しバッファに読み出させるための命令を具備する請求項15に記載のコンピュータ読み取り可能な記録媒体。
  17. 前記再アライメントを行わせるための命令はさらに、前記コンピュータに、前記読み出しバッファが前記容量を有しないと決定された場合に、前記所定数のビットを前記読み出しバッファから前記マルチメディアデータストリームにプッシュさせるための命令を具備する請求項16に記載のコンピュータ読み取り可能な記録媒体。
  18. 前記読み出しバッファにおける前記第1の数のビットの読み出しを行わせるための命令は、要求された数のビットが利用可能でないときに、前記コンピュータに、固定数のビットを前記マルチメディアデータストリームからローディングさせ、前記要求された数のビットが利用可能であるときに、前記コンピュータに、前記固定数のビットの前記ローディングをスキップさせるための命令を具備する請求項17記載のコンピュータ読み取り可能な記録媒体。
  19. 前記命令は、前記コンピュータに、前記読み出しバッファがミスアライメントされたかどうかを決定し、前記読み出しバッファがミスアライメントされないとの決定に応答して、前記再アライメントするための命令をスキップさせるための命令をさらに具備する請求項18に記載のコンピュータ読み取り可能な記録媒体。
  20. 前記命令は、前記コンピュータに、前記読み出しバッファがミスアライメントされたかどうかを決定し、前記読み出しバッファがミスアライメントされないとの決定に応答して、前記再アライメントするための命令をスキップさせるための命令をさらに具備する請求項15に記載のコンピュータ読み取り可能な記録媒体。
  21. マルチメディアデータを処理するための装置であって、
    読み出しバッファ内で利用可能なビットの数を決定するように構成された決定ユニットと、
    要求された数のビットが利用可能でない場合に、マルチメディアデータストリームの一部の第1の数のビットを前記読み出しバッファ内にローディングするように構成された読み出しユニットと、
    前記要求された数のビットを出力バッファ内に複写するように構成された複写ユニットと、
    前記出力バッファ内の前記要求された数のビットに基づいて、可変長コードワードを復号するように構成された復号ユニットと、
    少なくとも前記可変長コードワードの長さに対応する数のビットを前記読み出しバッファからフラッシングするように構成されたフラッシングユニットと、
    前記フラッシュング後、前記読み出しバッファ内への前記第1の数のビットのローディングに基づいて前記マルチメディアデータストリームを再アライメントするように構成された調整ユニットと、を具備する装置。
  22. 前記調整ユニットは、前記読み出しバッファが、前記マルチメディアデータストリームにおけるアライメントポイントに対して読み出し及び格納を行うための容量を有するかどうかを決定し、前記読み出しバッファが当該容量を有すると決定された場合に、所定数のビットを前記マルチメディアデータストリームから前記読み出しバッファに読み出すように構成された請求項21に記載の装置。
  23. 前記調整ユニットはさらに、前記読み出しバッファが前記容量を有しないと決定された場合に、前記所定数のビットを前記読み出しバッファから前記マルチメディアデータストリームにプッシュするように構成された請求項22に記載の装置。
  24. 前記所定数のビットは、16ビットを含む請求項23に記載の装置。
  25. 前記読み出しユニットは、要求された数のビットが利用可能でないときに、固定数のビットを前記マルチメディアデータストリームからローディングし、前記要求された数のビットが利用可能であるときに、前記固定数のビットの前記ローディングをスキップするように構成された請求項21に記載の装置。
  26. 前記読み出しバッファがミスアライメントされたかどうかを決定するための手段と、前記読み出しバッファがミスアライメントされないとの決定に応答して、前記調整ユニットによる前記再アライメントをスキップするための手段とをさらに具備する請求項25に記載の装置。
  27. 前記読み出しバッファがミスアライメントされたかどうかを決定するための手段と、前記読み出しバッファがミスアライメントされないとの決定に応答して、前記調整ユニットによる前記再アライメントをスキップするための手段と、をさらに具備する請求項21に記載の装置。
  28. マルチメディアデータを処理するためのプロセッサであって、該プロセッサは、
    読み出しバッファ内で利用可能なビットの数を決定し、
    要求された数のビットが利用可能でない場合に、マルチメディアデータストリームの一部の第1の数のビットを前記読み出しバッファ内にローディングし、
    前記要求された数のビットを出力バッファ内に複写し、
    前記出力バッファ内の前記要求された数のビットに基づいて、可変長コードワードを復号し、
    少なくとも前記可変長コードワードの長さに対応する数のビットを前記読み出しバッファからフラッシングし、
    前記フラッシング後、前記読み出しバッファ内への前記第1の数のビットのローディングに基づいて前記マルチメディアデータストリームを再アライメントする、ように構成されたプロセッサ。
  29. 前記プロセッサはさらに、再アライメントにおいて、前記読み出しバッファが、前記マルチメディアデータストリームにおけるアライメントポイントに対して読み出し及び格納を行うための容量を有するかどうかを決定し、前記読み出しバッファが当該容量を有すると決定された場合に、所定数のビットを前記マルチメディアデータストリームから前記読み出しバッファに読み出すように構成された請求項28に記載のプロセッサ。
  30. 前記プロセッサはさらに、前記再アライメントにおいて、前記読み出しバッファが前記容量を有しないと決定された場合に、前記所定数のビットを前記読み出しバッファから前記マルチメディアデータストリームにプッシュするように構成された請求項29に記載のプロセッサ。
  31. 前記プロセッサはさらに、要求された数のビットが利用可能でないときに、固定数のビットを前記マルチメディアデータストリームからローディングし、前記要求された数のビットが利用可能であるときに、前記固定数のビットの前記ローディングをスキップするように構成された請求項30に記載のプロセッサ。
  32. 前記固定数のビットは、16ビットを含む請求項31に記載のプロセッサ。
  33. 前記プロセッサは、前記再アライメントすることに先立って、前記読み出しバッファがミスアライメントされたかどうかを決定し、前記読み出しバッファがミスアライメントされないとの決定に応答して、前記再アライメントをスキップするようにさらに構成された請求項31に記載のプロセッサ。
JP2013000188A 2005-05-13 2013-01-04 改良されたマルチメディアデコーダに関する方法及び装置 Expired - Fee Related JP5567155B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US68119405P 2005-05-13 2005-05-13
US60/681,194 2005-05-13
US78945506P 2006-04-04 2006-04-04
US60/789,455 2006-04-04

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010279331A Division JP2011109678A (ja) 2005-05-13 2010-12-15 改良されたマルチメディアデコーダに関する方法及び装置

Publications (2)

Publication Number Publication Date
JP2013118656A JP2013118656A (ja) 2013-06-13
JP5567155B2 true JP5567155B2 (ja) 2014-08-06

Family

ID=37432015

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2008511468A Expired - Fee Related JP5209467B2 (ja) 2005-05-13 2006-05-15 改良されたマルチメディアデコーダに関する方法及び装置
JP2010279331A Withdrawn JP2011109678A (ja) 2005-05-13 2010-12-15 改良されたマルチメディアデコーダに関する方法及び装置
JP2013000188A Expired - Fee Related JP5567155B2 (ja) 2005-05-13 2013-01-04 改良されたマルチメディアデコーダに関する方法及び装置

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2008511468A Expired - Fee Related JP5209467B2 (ja) 2005-05-13 2006-05-15 改良されたマルチメディアデコーダに関する方法及び装置
JP2010279331A Withdrawn JP2011109678A (ja) 2005-05-13 2010-12-15 改良されたマルチメディアデコーダに関する方法及び装置

Country Status (6)

Country Link
US (2) US7268708B2 (ja)
EP (2) EP1880471A4 (ja)
JP (3) JP5209467B2 (ja)
KR (1) KR100944923B1 (ja)
CN (2) CN101873499B (ja)
WO (1) WO2006124850A2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2011118108A (ru) * 2011-05-06 2012-11-20 ЭлЭсАй Корпорейшн (US) Устройство (варианты) и способ параллельного декодирования для нескольких стандартов связи
CN103269257B (zh) * 2013-05-13 2016-08-24 杰发科技(合肥)有限公司 一种检测变长编码码流错误的方法和解码及错误检测装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5173695A (en) * 1990-06-29 1992-12-22 Bell Communications Research, Inc. High-speed flexible variable-length-code decoder
JPH0490267A (ja) * 1990-08-02 1992-03-24 Ricoh Co Ltd 可変長符号の復号回路
JP2968112B2 (ja) * 1991-12-27 1999-10-25 株式会社ピーエフユー 符号変換方法
US5226082A (en) * 1992-07-02 1993-07-06 At&T Bell Laboratories Variable length decoder
JPH07107303A (ja) * 1993-09-30 1995-04-21 Nec Corp ハフマン符号の復号化方法
JP3153404B2 (ja) * 1994-02-02 2001-04-09 松下電器産業株式会社 ディジタルビデオ・ビットストリームコーダ
US5566089A (en) * 1994-10-26 1996-10-15 General Instrument Corporation Of Delaware Syntax parser for a video decompression processor
JP3279852B2 (ja) * 1994-12-14 2002-04-30 株式会社日立製作所 信号復号装置
JPH09246988A (ja) * 1996-03-05 1997-09-19 Canon Inc 復号装置及びその方法
JP2870515B2 (ja) * 1996-12-27 1999-03-17 日本電気株式会社 可変長符号化装置
US6043765A (en) * 1997-09-26 2000-03-28 Silicon Engineering, Inc. Method and apparatus for performing a parallel speculative Huffman decoding using both partial and full decoders
KR100253366B1 (ko) * 1997-12-03 2000-04-15 김영환 엠펙용 가변길이코드 디코더
JPH11215008A (ja) * 1998-01-27 1999-08-06 Oki Electric Ind Co Ltd 復号回路
JP2000059234A (ja) * 1998-08-10 2000-02-25 Mitsubishi Electric Corp 可変長符号処理装置
KR100601602B1 (ko) * 1999-03-24 2006-07-14 삼성전자주식회사 비트스트림 디코딩 장치
JP2000286717A (ja) * 1999-03-30 2000-10-13 Matsushita Electric Ind Co Ltd デコード装置
JP3533339B2 (ja) * 1999-04-16 2004-05-31 シャープ株式会社 復号化装置および復号化方法、並びに、プログラム記録媒体
JP2001274690A (ja) * 2000-03-28 2001-10-05 Toshiba Corp 可変長復号器
JP2002084198A (ja) * 2000-09-11 2002-03-22 Matsushita Electric Ind Co Ltd 可変長符号の復号方法及び装置、並びに復号テーブル
US6580377B1 (en) * 2001-05-30 2003-06-17 Sony Corporation Huffman decoding using cascaded sub-table lookup method
US6573847B1 (en) * 2002-01-08 2003-06-03 Intel Corporation Multi-table mapping for huffman code decoding
JP2003309471A (ja) * 2002-04-15 2003-10-31 Fujitsu Ltd 可変長符号データ復号装置および復号方法

Also Published As

Publication number Publication date
US20070205929A1 (en) 2007-09-06
EP2495878A2 (en) 2012-09-05
WO2006124850A2 (en) 2006-11-23
WO2006124850A3 (en) 2007-04-26
KR100944923B1 (ko) 2010-03-03
CN101213754A (zh) 2008-07-02
JP2008541631A (ja) 2008-11-20
EP2495878A3 (en) 2012-09-26
CN101213754B (zh) 2013-11-13
KR20080014866A (ko) 2008-02-14
CN101873499B (zh) 2013-03-06
EP1880471A2 (en) 2008-01-23
JP2013118656A (ja) 2013-06-13
JP2011109678A (ja) 2011-06-02
JP5209467B2 (ja) 2013-06-12
CN101873499A (zh) 2010-10-27
US7268708B2 (en) 2007-09-11
EP1880471A4 (en) 2011-12-28
US7466248B2 (en) 2008-12-16
US20060267807A1 (en) 2006-11-30

Similar Documents

Publication Publication Date Title
US6633242B2 (en) Entropy coding using adaptable prefix codes
US8782379B2 (en) H.264 video decoder CABAC core optimization techniques
US7839311B2 (en) Architecture for multi-stage decoding of a CABAC bitstream
US7411529B2 (en) Method of decoding bin values using pipeline architecture and decoding device therefor
EP0801501A3 (en) Viterbi decoder for digital packet signals
US5877711A (en) Method and apparatus for performing adaptive data compression
JP5567155B2 (ja) 改良されたマルチメディアデコーダに関する方法及び装置
US20050174270A1 (en) Programmable variable length decoder including interface of cpu processor
US20100289674A1 (en) Variable-length code decoding apparatus and method
WO2020263438A1 (en) Features of range asymmetric number system encoding and decoding
KR20050073330A (ko) Vld 버퍼 관리 장치
US20100074542A1 (en) Apparatus for decoding context adaptive variable length code and table search method for decoding context adaptive variable length code
KR100487411B1 (ko) 가변 길이 디코더
WO2006032167A1 (en) Video encoding/decoding method
KR20090113208A (ko) 정수들의 시퀀스를 인코딩하기 위한 방법, 인코딩된 정수 시퀀스를 운반하는 저장 디바이스 및 신호, 그리고 정수들의 시퀀스를 디코딩하기 위한 방법
JP2004516759A (ja) 自己プリフィックス(Self−PREFIXED)共通可変長符号を用いたデータ圧縮方法
MY112861A (en) Viterbi decoder for digital packet signals

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131029

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140131

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140331

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140430

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140520

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140618

R150 Certificate of patent or registration of utility model

Ref document number: 5567155

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees