(57)【要約】画像の復号において係数圧縮を利用するための方法及び装置を開示する。一例では、コンピュータ処理装置（ＣＰＵ）と画像処理装置（ＧＰＵ）とがインターフェースで接続され、ＣＰＵは係数を抽出し、圧縮係数データを、好ましくは均一サイズのデータパケットとして、復号及び係数処理のためにＧＰＵに送る。ＧＰＵは、このデータパケットを受信し、パケット内で識別された、選択された係数符号化処理に対して補完的な係数復号化方法を用いて、各パケット内のｉＴ係数データを復号するように構成されている。【選択図】図３
2014525194.tif 000002
【特許請求の範囲】
【請求項１】
画像の復号を促進するための係数圧縮を利用する方法であって、
第１の処理装置において、イメージを表すのに用いられる係数を、圧縮係数データに符号化するステップと、
前記圧縮係数データを第２の処理装置に送るステップと、
前記第２の処理装置において、前記圧縮係数データを、前記イメージを表す前記係数に復号するステップと、
を含む、方法。
【請求項２】
前記係数は、逆変換（ｉＴ）係数であって、
前記第１の処理装置において、前記ｉＴ係数を抽出するステップと、
前記ｉＴ係数のデータコンテンツに基づいて、前記符号化を実行するための係数符号化処理を適応的に選択するステップであって、前記係数符号化処理は、前記ｉＴ係数を均一のサイズのデータパケットに符号化する係数符号化処理の集合から選択されるステップと、
前記第２の処理装置において、前記復号した係数を処理するステップと、をさらに含む、
請求項１の方法。
【請求項３】
前記第１の処理装置は、前記係数符号化処理を選択して、データパケットを前記第２の処理装置に送り、
各データパケットは、前記パケット内の前記圧縮ｉＴ係数データの符号化に用いられる、前記選択された係数符号化処理を識別するデータを含む、
請求項２の方法。
【請求項４】
前記第２の処理装置は、前記復号した係数を処理して、選択的にフォーマットされた信号を供給することによって、所望の表示デバイスを駆動して、前記イメージを反映するイメージを表示する、
請求項２の方法。
【請求項５】
イメージデータを特徴付ける係数を抽出するように構成された第１の処理装置であって、前記係数を圧縮係数データに符号化し、前記符号化した係数を第２の処理装置に送るように構成された第１の処理装置と、
前記圧縮係数データを、前記イメージデータを特徴付ける係数に復号するように構成された前記第２の処理装置と、
を備える、分散型画像復号装置。
【請求項６】
前記第１の処理装置は、逆変換（ｉＴ）係数を抽出するように構成されており、
前記第２の処理装置は、前記復号した係数を処理して、選択的にフォーマットされた出力を供給することによって、所望の種類の表示デバイスを駆動するように構成されており、
前記ｉＴ係数のデータコンテンツに基づいて、前記符号化を実行するための係数符号化処理を適応的に選択するように構成されたコンポーネントをさらに備え、
前記係数符号化処理は、前記ｉＴ係数を均一のサイズのデータパケットに符号化する係数符号化処理の集合から選択される、
請求項５の装置。
【請求項７】
前記第１の処理装置は、前記選択した係数符号化処理を適応的に選択する前記コンポーネントを含み、
前記第１の処理装置は、前記ｉＴ係数をデータパケットに符号化するように構成されており、
各データパケットは、前記パケット内の前記圧縮ｉＴ係数データの符号化に用いられる、前記選択された係数符号化処理を識別するデータを含む、
請求項６の装置。
【請求項８】
画像の復号を促進するための係数圧縮を利用する方法であって、
第１の処理装置において、イメージデータを特徴付ける係数を抽出するステップと、
前記第１の処理装置において、前記係数を圧縮係数データに符号化するステップと、
を含む、方法。
【請求項９】
前記抽出された係数は、逆変換（ｉＴ）係数であって、
前記ｉＴ係数のデータコンテンツに基づいて、前記係数の符号化を実行するための係数符号化処理を適応的に選択するステップであって、前記係数符号化処理は、前記ｉＴ係数を均一のサイズのデータパケットに符号化する係数符号化処理の集合から選択されるステップと、
他の処理装置において、係数処理を完了するために前記データパケットを出力するステップと、をさらに含む、
請求項８の方法。
【請求項１０】
前記第１の処理装置は、前記選択された係数符号化処理を選択し、且つ、データパケットを出力し、
各データパケットは、前記パケット内の前記圧縮ｉＴ係数データの符号化に用いられる、前記選択された符号化処理を識別するデータを含む、
請求項９の方法。
【請求項１１】
イメージデータを特徴付ける係数を抽出するように構成された処理コンポーネントと、
前記係数を圧縮係数データに符号化して、係数処理を完了する他の集積回路に出力するように構成されたエンコーダと、
を備える、分散型の画像復号を促進するための集積回路。
【請求項１２】
前記抽出された係数は逆変換（ｉＴ）係数であって、
選択された係数符号化処理が係数符号化に用いられるように、前記ｉＴ係数のデータコンテンツに基づいて、前記符号化を実行するための前記係数符号化処理を適応的に選択するように構成された符号化制御コンポーネントをさらに備え、
前記係数符号化処理は、前記ｉＴ係数を均の一サイズのデータパケットに符号化する係数符号化処理の集合から選択される、
請求項１１の集積回路。
【請求項１３】
前記エンコーダは、データパケットを出力するように構成されており、
各データパケットは、前記パケット内の前記圧縮ｉＴ係数データの符号化に用いられる、前記選択された係数符号化処理を識別するデータを含む、
請求項１２の集積回路。
【請求項１４】
イメージデータを特徴付ける係数を抽出するように構成された処理コンポーネントと、
前記係数を圧縮係数データに符号化して、係数処理を完了する他の集積回路に出力するように構成されたエンコーダと、を備える、分散型の画像復号を促進するための集積回路の製造を促進するための、１つ以上のプロセッサにより実行される命令の集合を記憶する、
コンピュータ可読記憶媒体。
【請求項１５】
前記命令は、デバイスの前記製造に用いられるハードウェア記述言語（ＨＤＬ）命令である、
請求項１４のコンピュータ可読記憶媒体。
【請求項１６】
復号を促進するための係数圧縮を利用する方法であって、
処理装置が、イメージデータを特徴付ける符号化ｉＴ係数を表す圧縮逆変換（ｉＴ）係数データを受信するステップと、
前記処理装置が、前記圧縮ｉＴ係数データを、前記イメージデータを特徴付けるｉＴ係数に復号するステップと、
を含む、方法。
【請求項１７】
前記処理装置は、前記データパケットの各々に含まれる圧縮ｉＴ係数データに用いられる、選択された係数符号化処理を識別するデータを含む、均一のサイズのデータパケット内の前記圧縮ｉＴ係数データを受信し、前記パケット内で識別された、前記選択された係数符号化処理に対して補完的な係数復号化方法を用いて、各データパケット内の前記圧縮ｉＴ係数データを復号する、
請求項１６の方法。
【請求項１８】
ＧＰＵは、均一のサイズの、単独で復号可能なデータパケット内の前記圧縮ｉＴ係数データを受信し、前記受信したデータパケットの超並列係数復号を用いて、前記圧縮ｉＴ係数データを復号する、
請求項１６の方法。
【請求項１９】
前記復号したｉＴ係数を処理して、選択的にフォーマットされた信号を供給することによって、所望の表示デバイスを駆動して前記イメージデータを反映したイメージを表示するステップをさらに含む、
請求項１６の方法。
【請求項２０】
イメージデータを特徴付ける符号化ｉＴ係数を表す圧縮逆変換（ｉＴ）係数データを受信するように構成された入力機と、
前記圧縮ｉＴ係数データを、前記イメージデータを特徴付けるｉＴ係数に復号するように構成されたデコーダと、
前記復号したｉＴ係数をｉＴ処理するように構成された処理コンポーネントと、
を備える、分散型の画像復号を促進するための集積回路。
【請求項２１】
前記入力機は、前記データパケットの各々に含まれる圧縮ｉＴ係数データに用いられる、選択された係数符号化処理を識別するデータを含む、均一のサイズのデータパケットの前記圧縮ｉＴ係数データを受信するように構成されており、
前記デコーダは、前記パケット内で識別された、前記選択された係数符号化処理に対して補完的な係数復号化方法を用いて、各データパケット内の前記圧縮ｉＴ係数データを復号するように構成されている、
請求項２０の集積回路。
【請求項２２】
前記入力機は、均一のサイズの、単独で復号可能なデータパケットの前記圧縮ｉＴ係数データを受信するように構成されており、
前記デコーダは、受信したデータパケットの超並列係数復号を用いて、前記圧縮ｉＴ係数データを復号するように構成されている、
請求項２０の集積回路。
【請求項２３】
イメージデータを特徴付ける符号化ｉＴ係数を表す圧縮逆変換（ｉＴ）係数データを受信するように構成された入力機と、
前記圧縮ｉＴ係数データを、前記イメージデータを特徴付けるｉＴ係数に復号するように構成されたデコーダと、
前記ｉＴ係数をｉＴ処理するように構成された処理コンポーネントと、を備える集積回路の製造を促進するための、１つ以上のプロセッサによって実行される命令の集合を記憶する、
コンピュータ可読記憶媒体。
【請求項２４】
前記命令は、デバイスの前記製造に用いられるハードウェア記述言語（ＨＤＬ）命令である、
請求項２３のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、米国特許出願第１３／１８６，００７号（２０１１年７月１９日出願）の利益を主張するものであり、その内容は参照により本明細書に組み込まれる。
【０００２】
本発明は、概して、画像／映像の復号に関し、特に、画像の復号を分担する中央処理装置（ＣＰＵ）及び画像処理装置（ＧＰＵ）などの集積回路と、関連する方法とに関する。
【背景技術】
【０００３】
グラフィック処理ユニット（ＧＰＵ）は、コンピュータ生成イメージ及び映像の適切な表示を補助するために開発されている。通常、コンピュータの中央処理ユニット（ＣＰＵ）に付随する二次元（２Ｄ）及び／又は三次元（３Ｄ）エンジンは、システムメモリのフレームバッファに保存されたデータとして、イメージ及び映像をレンダリングする。ＧＰＵは、ＣＰＵのデータ処理を、選択された方法で補助し、所望の種類の映像信号出力を供給する。
【０００４】
符号化映像を復号し、表示デバイスの駆動に適した信号、例えば、ＤＡＣ（デジタル／アナログ変換器）、ＤＶＩ（デジタルビジュアルインターフェース）又はＨＤＭＩ（登録商標）（高解像度マルチメディアインターフェース）信号を生成する様々なＣＰＵ／ＧＰＵワークシェアリングシステムが開発されている。コンピュータデバイスが、ＤＶＤ映像の復号に最初に用いられるときに、ＣＰＵが、ＭＰＥＧ２ストリームなどの映像ストリームの一部を復号し、ＧＰＵが、残りの処理を行うようにして、表示デバイスに適するようにフォーマットされた出力を供給する、という画像処理機能の分割が行われている。初期のＧＰＵは、主に、色空間変換（ＹＵＶからＲＧＢ）処理と、ネイティブな復号サイズから、表示用の所望のウィンドウ又はフルスクリーンに適応するサイズにスケーリングする処理を実行するように機能していた。ＧＰＵは、その後、これらの機能がメモリ帯域幅に集中的な処理であるため、動き補正（ＭＣ）機能の処理を実行するようになった。広範な能力を有するＧＰＵの初期の例としては、エーティーアイテクノロジーズにより１９９７年に開発され、販売されたＲａｇｅＰｒｏ  ＧＰＵが挙げられる。
【０００５】
画像／映像を符号化する１つの共通の方法は、離散コサイン変換（ＤＣＴ）処理を用いて符号化することを伴い、この処理では、符号化映像コンテンツをＤＣＴ係数に変換する。このような符号化映像を再生／復号するためには、逆離散コサイン変換（ｉＤＣＴ）処理の使用は、要求されるステップの１つである。
【０００６】
映像のＭＰＥＧ２符号化では、映像は、最初に、ＹＵＶ値で表される画素上に画定される。続いて、ＹＵＶ画素データのブロックに対してＤＣＴ処理を実行し、量子化されたＤＣＴ係数のブロックを得る。次に、通常、運動ベクトル及び音声データを含むＭＰＥＧ２符号化ビットストリームの映像データを多く得る可変長符号（ＶＬＣ）を用いてエントロピ符号化する。このようなＭＰＥＧ２ビットストリームの映像を復号するためには、ＶＬＣ符号化データに関連する処理を逆の順序で行う必要がある。しかしながら、量子化処理の符号化を完全に逆の順序で実行することが出来ないため、データ品質の低下をある程度犠牲にする必要がある。
【０００７】
通常、ＭＰＥＧ２ビットストリームの他のコンポーネントの処理に加えて、コンピュータのＣＰＵは、可変長符号復号（ＶＬＤ）及び逆量子化を実行し、後にｉＤＣＴ処理される元のＤＣＴ係数に厳密に一致する逆離散コサイン変換（ｉＤＣＴ）係数を導き出す。映像の復号におけるＣＰＵの処理負荷をさらに低減するために、ｉＤＣＴ計算の実行をＧＰＵにシフトすることが行われている。１９９８年〜１９９９年、マイクロソフト社は、ＤＸＶＡ（ＤｉｒｅｃｔＸ  Ｖｉｄｅｏ  Ａｃｃｅｌｅｒａｔｉｏｎ）として公知のインターフェースを有するウィンドウズ（登録商標）ＰＣでのＤＶＤ再生のために高品質のＭＰＥＧ２復号を提供するという高い要求に起因して、ＣＰＵ−ＧＰＵインターフェースを標準化した。このインターフェースは、ＤｉｒｅｃｔＸと呼ばれる一般的なグラフィックスチップアプリケーションプログラミングインターフェース（ＡＰＩ）の一部である。ＤＸＶＡインターフェースに関する情報は、マイクロソフトのウェブサイト、ｈｔｔｐ：／／ｍｓｄｎ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｅｎ−ｕｓ／ｌｉｂｒａｒｙ／ｆｆ５６８２３８（ｖ＝ｖｓ．８５）．ａｓｐxから入手できる。ここには以下のことが記載されている。
ＤｉｒｅｃｔＸ  ＶＡインターフェースは、低レベルの逆離散コサイン変換（ｉＤＣＴ）に対処する様々な方法をサポートする。２つの基本的なタイプの工程がある。
１．ホスト以外でのｉＤＣＴ：外部でのｉＤＣＴと、イメージ再構成と、クリッピング再構成とのために、変換係数のマクロブロックをアクセラレータに送る。
２．ホストベースｉＤＣＴ：ホストにおいてｉＤＣＴを実行し、外部でのイメージ再構成と、クリッピング再構成とのために、空間領域結果のブロックをアクセラレータに送る。
何れの場合においても、基本的な逆量子化処理と、ｉＤＣＴ前のレンジ飽和と、ＭＰＥＧ２ミスマッチ制御（必要に応じて）と、ＤＣ内部オフセット（必要に応じて）とは、ホストにおいて実行される。何れの場合においても、最終のイメージ再構成と、クリッピング再構成とは、アクセラレータにおいて実行される。
【０００８】
図１に、標準的なＤＸＶＡインターフェースを介してＧＰＵと連結されたＣＰＵを示す。この装置では、ＧＰＵは、ｉＤＣＴ処理を実行する。図１に示す例では、ＣＰＵは、ＭＰＥＧ２符号化映像を処理してｉＤＣＴ係数を抽出し、ｉＤＣＴ係数のマクロブロックを、ｉＤＣＴ処理のために、例えばパーソナルコンピュータマザーボードに連結するデータバスなどのｉＤＣＴ係数データインターフェース１００を介してＧＰＵに送る。また、ＣＰＵは、表示順論理に関連する運動ベクトルリスト及び様々な他のデータ項目と、関連する音声とを送る。ただし、ｉＤＣＴ係数は、映像処理のためにＧＰＵに送られたデータの圧倒的な部分を構成する。これは、ｉＤＣＴ係数が、各映像フレームにおける各画素の表示特性を特徴付けるための情報を含むからである。
【０００９】
ＤＸＶＡ（及びこれと同等の装置）インターフェースは、ＣＰＵが、作業の一部をＧＰＵにオフロードするという、映像のリアルタイム再生のための復号処理を用いるコンセプトの理解に基づいて設計される。ＤＸＶＡインターフェースは、典型的には、毎秒３０フレームのレートで表示するように処理された比較的低解像度の映像に関しては、十分に動作するものであった。ここ何年間で、解像ファクタ（ｒｅｓｏｌｕｔｉｏｎ  ｆａｃｔｏｒｓ）は、ＤＶＤの解像度（７２０×４８０画素）から、ＨＤＴＶ（１９２０×１０８０画素）まで増大した。現在では、ＧＰＵは、デュアルストリーム又はＰＩＰ（ピクチャーインピクチャー）能力を有し得るＢｌｕ−ｒａｙ（登録商標）での映画再生をサポートする様々なコーデックにおいて、１９２０×１０８０のフルビットストリームの復号に対処することさえ要求される場合がある。
【００１０】
より高い解像度に伴う処理要求を満たすことに加えて、例えばリアルタイムの１０倍以上などの、より高いフレームレートでの復号に対する要求も存在する。例えば、より高いフレームレートは、あるフォーマットから別のフォーマットへのトランスコーディングと、円滑な超高速の順表示と、円滑な早送りのための送信順及び表示順の変換と、１２０Ｈｚ及び２４０Ｈｚでの表示における円滑な早送りと、（特に、複数の映像ストリームを１つの最終ストリームに結合する場合の）映像編集と、例えば顔又は物体検出のための映像検索アルゴリズムとに用いられ得る。
【００１１】
シェーダーとして公知の処理コンポーネントを含むＳＩＭＤ処理エンジンを利用する構造において、広範な処理機能を有するＧＰＵが開発されてきた。例えば、図２に、従来のＧＰＵ、すなわち、ＡＴＩ  Ｒａｄｅｏｎ  ＨＤ  ５８００シリーズのＧＰＵを示す。Ｒａｄｅｏｎ  ＨＤ  ５８００シリーズのＧＰＵの処理能力は、約２．７２テラフロップスである。ＧＰＵは、それぞれ１６のプロセッサ（シェーダー）を有する２０のＳＩＭＤエンジン、すなわち、３２０のシェーダーを有することを特徴とする。また、Ｒａｄｅｏｎ  ＨＤ  ５８００シリーズのＧＰＵは、ＳＩＭＤエンジンごとに４つのテクスチャユニット、すなわち合計８０のテクスチャユニットと、約１５０以上ＧＢ／秒のピーク帯域幅を供給するグラフィックスダブルデータレート（ＧＤＤＲ）メモリインターフェースとを誇示する。
【００１２】
従来のＤＸＶＡインターフェースでは、ｉＤＣＴ係数は、通常、係数ごとに３２ビットを用いて送信される。発明者らは、例えば、フレームレートをリアルタイム表示レートの１０倍又は１００倍のファクタで増大させると、メモリ帯域幅の重度の障害が生じ得ることを認識した。
【発明の概要】
【課題を解決するための手段】
【００１３】
画像の復号において係数圧縮を利用するための方法及び装置を提供する。一例では、映像又は他の画像を復号するために、コンピュータ処理装置（ＣＰＵ）と画像処理装置（ＧＰＵ）とがインターフェースで接続されており、ＣＰＵは、抽出された係数を圧縮し、圧縮係数データを、復元及び処理のためにＧＰＵに送る。超並列係数復号を促進するために、逆変換（ｉＴ）係数を、パケット基準ごとに復号可能な均一サイズのデータパケットに、圧縮しながら符号化することが好ましい。
【００１４】
例示のＣＰＵは、符号化制御コンポーネントを含んでもよい。符号化制御コンポーネントは、選択されたｉＴ係数符号化処理がｉＴ係数符号化に適応的に用いられるように、ｉＴ係数のデータコンテンツに基づいて、ｉＴ圧縮を実行するための符号化処理を適応的に選択するように構成されている。このような例では、ＧＰＵは、圧縮ｉＴ係数データと共に、選択されたｉＴ係数符号化処理を識別するデータを受信するように構成されている。また、ＧＰＵは、選択された係数符号化処理に対して補完的な係数復号化方法を用いてｉＴ係数データを復号するように構成されたデコーダを備えている。
【００１５】
本発明により製造された複数のコンポーネントプロセッサは、分散型の画像復号装置を提供するために、互いに接続可能である。このような装置は、例えば、ＣＰＵなどの第１の処理装置と、ＧＰＵなどの第２の処理装置とを備え得る。第１の処理装置は、イメージデータを特徴付ける逆変換（ｉＴ）係数を抽出し、ｉＴ係数を圧縮ｉＴ係数データに符号化するように構成されていることが好ましい。圧縮ｉＴ係数データを第２の処理装置に送るように構成されたインターフェースが設けられている。第２の処理装置は、圧縮ｉＴ係数データを、イメージデータを特徴付けるｉＴ係数に復号し、ｉＴ係数のｉＴ処理を実施するように構成されることが好ましい。
【００１６】
このような分散型の画像復号装置は、選択された符号化処理が係数符号化に用いられるように、ｉＴ係数のデータコンテンツに基づいて、ｉＴ係数符号化を実行するための符号化処理を適応的に選択するように構成されたコンポーネントを含み得る。第１の処理装置は、選択された係数符号化処理を適応的に選択するコンポーネントを含み、圧縮ｉＴ係数データと共に、選択された係数符号化処理を識別するデータを含むように構成されていることが好ましい。係数符号化処理は、単独で復号可能な均一のサイズのデータパケットを特徴付けることにより、第２の処理装置における超並列係数復号を促進することが好ましい。
【００１７】
他の例では、コンピュータ可読記憶媒体が開示されている。コンピュータ可読記憶媒体は、選択的に構成された処理装置の製造を促進するための、１つ以上のプロセッサにより実行される命令の集合を記憶する。この処理装置は、イメージデータを特徴付ける逆離散コサイン変換（ｉＴ）係数を生成するように構成された処理コンポーネントと、ｉＴ係数を圧縮ｉＴ係数データに符号化して、ｉＴ処理を完了する他の集積回路に出力するように構成されたエンコーダとを含む。
【００１８】
他の例では、選択的に構成された以下の処理装置の製造を促進するための、１つ以上のプロセッサにより実行される命令の集合を記憶するコンピュータ可読記憶媒体が開示されている。この処理装置は、イメージデータを特徴付ける符号化ｉＤＣＴ係数を表す圧縮逆離散コサイン変換（ｉＤＣＴ）係数データを受信するように構成された入力機と、圧縮ｉＤＣＴ係数データを、イメージデータを特徴付けるｉＤＣＴ係数に復号するように構成されたデコーダと、ｉＤＣＴ係数をｉＤＣＴ処理するように構成された処理コンポーネントとを含む。
【００１９】
ＣＰＵ及びＧＰＵの各々の製造を促進するための命令の集合が与えられ得る。コンピュータ可読記憶媒体は、集積回路などのデバイスの製造に用いられるハードウェア記述言語（ＨＤＬ）命令で書き込まれた命令を有し得る。
【図面の簡単な説明】
【００２０】
【図１】従来例の分散型の画像復号装置を示すブロック図である。この装置では、従来のコンピュータ処理装置（ＣＰＵ）と、従来の画像処理装置（ＧＰＵ）とがインターフェースで接続されており、ＣＰＵは、ｉＤＣＴ処理のために、ｉＤＣＴ係数をＧＰＵに送る。
【図２】従来例のＧＰＵを示すブロック図である。
【図３】本発明の実施形態による分散型の画像復号装置の構造の一例を示すブロック図である。
【図４】本発明の実施形態による圧縮ｉＤＣＴ係数データにおけるデータパケットフォーマットの一例を示す図である。
【図５ａ】従来のＭＰＥＧ２ＤＣＴ係数ブロック走査順序符号化ダイアグラムを示す図である。
【図５ｂ】従来のＭＰＥＧ２ＤＣＴ係数ブロック走査順序符号化ダイアグラムを示す図である。
【図６ａ】本発明の実施形態によるｉＤＣＴ係数ブロック走査順序符号化ダイアグラムを例示する図である。
【図６ｂ】本発明の実施形態によるｉＤＣＴ係数ブロック走査順序符号化ダイアグラムを例示する図である。
【図７ａ】一連のｉＤＣＴ係数内の非ゼロｉＤＣＴ係数の一例を示す図である。
【図７ｂ】本発明の実施形態による、図７ａに示す非ゼロｉＤＣＴ係数を含む一連のｉＤＣＴ係数の代替的なｉＤＣＴ係数符号化の一例を示す図である。
【図７ｃ】図７ｂに例示する係数符号化に用いる圧縮ｉＤＣＴ係数データにおけるデータパケットフォーマットの一例を示す図である。
【図８】本発明の実施形態によるｉＤＣＴ係数サブブロック走査順序符号化ダイアグラムの一例を示す図である。
【発明を実施するための形態】
【００２１】
図３を参照すると、例示の分散型画像復号装置３０が示されている。例示の装置３０は、コンピュータ処理装置（ＣＰＵ）などの第１の処理装置３１と、図１に示すｉＤＣＴ係数データインターフェース１００などのｉＤＣＴ係数データインターフェース３００を含む、画像処理装置（ＧＰＵ）などの第２の処理装置３２とを備えている。当業者に理解されるように、第１の処理装置３１及び第２の処理装置３２の機能性は、（従来の通信ファブリックを介しての接続だけでなく）単一パッケージ、さらには同一ダイ内に物理的に収まり得る。第１の処理装置３１は、画像／映像ビットストリーム復号処理コンポーネント３３を含む。画像／映像ビットストリーム復号処理コンポーネント３３は、イメージデータを特徴付ける逆離散コサイン変換（ｉＤＣＴ）係数を抽出し、他の従来の機能、例えば、表示順論理のための運動ベクトル及びデータの生成、並びに音声同期などを実行するように構成されている。ｉＤＣＴ係数の抽出は、図１に示す従来技術のＣＰＵでも行われる従来の方法で実行され得る。
【００２２】
図１に示す従来技術のＣＰＵとは異なり、例示の第１の処理装置３１は、ｉＤＣＴ係数パケットエンコーダ３５を含む。ｉＤＣＴ係数パケットエンコーダ３５は、処理コンポーネント３３が生成したｉＤＣＴ係数を、圧縮ｉＤＣＴ係数データの均一サイズのパケットに、圧縮しながら符号化するように構成されている。エンコーダ３５は、圧縮ｉＤＣＴ係数データを、例えば、コンピュータマザーボードにおける従来のデータバスなどのインターフェース３００を介して出力する。当業者に理解されるように、コンピュータマザーボードは、多種多様のコンピュータデバイス内に様々な形態で存在し得る。このコンピュータデバイスは、これらに限定されないが、サーバ、ノート型パソコン、モバイル機器（例えば、スマートフォン）、カムコーダ、タブレットなどを含む。
【００２３】
図１に示す従来技術のＧＰＵとは異なり、例示の第２の処理装置３２は、ｉＤＣＴ係数パケットデコーダ３６を含む。ｉＤＣＴ係数パケットデコーダ３６は、第１の処理装置３１のパケットエンコーダ３５が生成した圧縮ｉＤＣＴ係数データパケットを、インターフェース３００を経由して受信するように構成された入力機を有する。デコーダ３６は、圧縮ｉＤＣＴ係数データパケットを復号して、イメージデータを特徴付けるｉＤＣＴ係数を再構成する。次いで、デコーダは、ｉＤＣＴ係数のｉＤＣＴ処理を実施するｉＤＣＴ処理コンポーネント３８に利用可能な、復号されたｉＤＣＴ係数を生成する。ｉＤＣＴ処理コンポーネント３８が実行するｉＤＣＴ処理は、図１に示すＧＰＵが実行する従来のｉＤＣＴ処理と同じ方法で実行できる。
【００２４】
以下により詳細に説明するように、ｉＤＣＴ係数パケットエンコーダ３５は、様々な係数符号化方式を利用して、ｉＤＣＴ係数を圧縮しながら符号化するように構成され得る。生成されたパケットは、第２の処理装置３２による超並列係数復号の復元が可能になるように、識別されたｉＤＣＴ係数に個々に復号可能であることが好ましい。例えば、第２の処理装置３２は、図２に示すＧＰＵと同様のＧＰＵであってもよい。このような例では、デコーダ３６は、ＧＰＵシェーダーを利用して、圧縮ｉＤＣＴ係数データの受信したパケットの超並列係数復号の復元を実施し、ｉＤＣＴ係数を再構成するように構成されることが好ましい。均一サイズの復号可能な個々のパケットを提供することにより、並列係数復号のために、個々のパケットを個々のシェーダースレッドに割り当てることができる。
【００２５】
ＧＰＵの処理能力及びデータ転送バス３００を完全に利用するために、復号装置３０は、第１の処理装置３１と同様の複数の処理装置を備えてもよい。例えば、このような処理装置の各々は、マルチコアＣＰＵのプロセシングコアでもよい。このような例では、複数のＣＰＵコアは、例えば、同一の映像ストリームの異なる部分、又は異なる映像ストリームにおける係数符号化を実行してもよく、圧縮係数データの各々を、インターフェース３００を介してＧＰＵ３２に送信するように構成されてもよい。
【００２６】
選択された係数符号化処理が係数符号化に用いられるように、ｉＤＣＴ係数のデータコンテンツに基づいて、係数符号化を実行するための符号化処理を適応的に選択するように構成されたコンポーネントを備えてもよい。第１の処理装置３１は、選択された係数符号化処理を適応的に選択するコンポーネントを備えることが好ましい。例えば、処理コンポーネント３３は、この機能を実行するように構成されている。次に、処理コンポーネント３３は、選択された係数符号化処理を識別するデータをエンコーダ３５に供給することができ、同様に、選択された係数符号化処理を利用して符号化する圧縮ｉＤＣＴ係数データと共に、選択された係数符号化処理を識別するデータをパケットに含むことができる。
【００２７】
イメージ／映像データは、従来、連続的なイメージ／映像フレームに関連して生成されてきた。各フレームに関するｉＤＣＴ係数の生成に関連する圧縮方法の統計値は、処理コンポーネント３３によって収集され得る。データ圧縮は、フレームにおけるｉＤＣＴ係数の集合サイズよりも相当短い、フレーム全体におけるｉＤＣＴ係数を符号化する一連のデータパケットを特徴付けることが好ましい。
【００２８】
フレームに関して収集された統計値を利用して、各フレームに関する、パケット基準ごとの係数符号化方式を適応的に選択することが可能であるが、フレームに関するデータの処理に必要な時間を限定するために、このような統計値を用いて、当該フレームに続くフレームのｉＤＣＴ係数に対する圧縮方法を動的に適応及び変更することが好ましい。所望に応じて、複数のフレームにおける適応的手法の変更が保留されてもよく、これにより、各工程間、及び／又は選択された一連のフレームにおいて異なる方法の必要性を表す類似の統計値が収集された後のフリップフロップを防止できる。
【００２９】
係数符号化及び係数復号処理の選択は、所定の一連のフレームにおいて、以下の条件を満たすように行われることが望ましい。すなわち、一連のフレームに対するエンコーダ３５によるｉＤＣＴ係数の係数符号化に必要な時間Ｔｅｎｃと、第１の処理装置３１から第２の処理装置３２に、圧縮ｉＤＣＴ係数データを送るのに必要なインターフェース時間Ｔｉｃと、デコーダ３６による係数復号及びｉＤＣＴ係数の再構成に必要な時間Ｔｄｅｃとを合わせた時間が、第１の処理装置３１からインターフェース３００を介して第２の処理装置３２に非圧縮ｉＤＣＴ係数を送るのに必要なインターフェース時間Ｔｉｕ以下となるように選択される。この条件を以下の式（１）に示す。
Ｔｅｎｃ＋Ｔｉｃ＋Ｔｄｅｃ≦Ｔｉｕ      （１）
【００３０】
通常、適応的手法の選択は、各フレームにおいて非圧縮ｉＤＣＴ係数を単に通信する、最良ではない従来の方法を上回る十分な時間節約を実現できるように構成されている。収集された統計値が、処理時間の節約が全く実現され得ないこと、又は非圧縮ｉＤＣＴ係数の通信時間がかからないことを示す場合には、処理コンポーネント３３は、エンコーダ３５に係数符号化を実行させず、単に非圧縮ｉＤＣＴ係数を第２の処理装置３２に送るように命令するように構成され得る。このような例では、デコーダ３６は、ｉＤＣＴ処理コンポーネント３８による処理のために、非圧縮ｉＤＣＴ係数を単に受信して保存する。
【００３１】
ＤＸＶＡインターフェースでは、非圧縮ｉＤＣＴ係数のマクロブロックは、通常、係数ごとに３２ビットを用いて送信される。従来のインターフェースは、映像表示の標準速度に対応する標準レートである毎秒３０フレームのフレームレートにおいて、係数ごとに３２ビットの通信に適合するように設計され得る。ただし、毎秒３００フレームなどの著しく高いフレームレートにおけるビデオイメージの処理が所望される場合には、係数ごとの３２ビットの数が、所定期間中に１０倍増加し、インターフェースは、インターフェースに起因するメモリ帯域幅の障害を原因として、画像処理を達成可能な全体速度を制限することがある。しかしながら、本発明は、同一のプロセッサ間インターフェースにおける全体の処理速度の制限を著しく緩和できる。
【００３２】
ｉＤＣＴ係数の圧縮符号化では、プロセッサ間インターフェースを介して送信された係数データセグメントごとに、非圧縮ｉＤＣＴ係数を３２ビットにフォーマットするのにかかる時間に対して追加される時間が非常に短い。前述したように、例えば、従来のＧＰＵに見受けられるシェーダーは、高効率の超並列復元の実行によってｉＤＣＴ係数を迅速に再構成する係数復号処理の実行において、有利に用いられ得る。
【００３３】
第２の処理装置３２における従来のＧＰＵ構造の利用では、デコーダ３６の実装にかかる時間（又は、費用）節約は、その構造次第である。シェーダープロセッサが少ない構造ではベースライン性能が得られ、より多いシェーダープロセッサを備える構造では、より高性能となる。
【００３４】
エンコーダ３５が実行する第１の例の係数符号化では、圧縮ストリームは、フレームのｉＤＣＴ係数の各々に応じたフレーム基準ごとに総数が変化し得る固定サイズのパケットから成る。固定サイズが、例えば６４バイト、１２８バイトなどの場合には、超並列復元が促進される。このようにして、デコーダ３６は、ｉＤＣＴ係数の再構成に用いる各受信パケットを、第２の処理装置３２内の任意の利用可能なシェーダーに割り当てるように構成され得る。第２の処理装置３２が、タイムスライス法において多重スレッドを同時に処理し得る３２０個のシェーダーを有する図２に示すＧＰＵと同じ構成である場合には、各シェーダーが一度に８個のスレッドを同時に処理するように構成されると、同時に最大２５６０パケットを復号できる。
【００３５】
第２の処理装置３２は、１つ以上の表示デバイスを駆動するように設定可能なマルチ出力を備えるように構成されていることが好ましい。最新の標準タイプの出力は、アナログビデオグラフィックスアレイ（ＶＧＡ）ケーブルを経由して、多くの種類の市販のブラウン管（ＣＲＴ）モニタ／パネル／プロジェクタの駆動に用いられるデジタル／アナログ変換器（ＤＡＣ）出力、フラットパネルディスプレーなどの多くの市販のデジタル表示デバイスに非常に高い表示品位を与えるために用いられるデジタルビジュアルインターフェース（ＤＶＩ）出力と、多くの高解像度テレビなどに用いられる非圧縮デジタルデータ用の小型の音声／映像インターフェースとして用いられる高解像度マルチメディアインターフェース（ＨＤＭＩ（登録商標））出力とを含む。代替的又は追加的に、第２の処理装置３２は、表示部を有するデバイスに含まれてもよいし、デバイスの表示部を駆動するために、当該デバイスに直接接続されてもよい。第２の処理装置３２がｉＤＣＴ係数を再構成すると、ｉＤＣＴ係数は、フォーマット済み信号を選択的に供給するように従来の方法で処理され、所望の表示デバイスを駆動して、復号した係数を反映したイメージを表示する。
【００３６】
図４に、例示のパケットフォーマットを示す。パケットフォーマットは、ヘッダーから始まり、続いて、第１の係数セグメントが存在し、次に、ｉＤＣＴ係数の変数が復号され得るデータパケットを書き込むための多数の係数セグメントを有する。データパケットサイズが６４の８ビットバイトに選択された場合には、ヘッダーは４バイトを表し、圧縮ｉＤＣＴ係数データには６０バイトが存在する。図４の例では、各係数セグメントは２バイトを表す。このため、６４の８ビットバイトパケットには、第１の係数セグメントに続いて、５８の係数セグメントが存在する。
【００３７】
復号され得るｉＤＣＴ係数の変数を含む固定パケット長は、通常、データが連続的に圧縮される一方で、超並列係数復元が可能なことを意味する。ＤＣＴ係数符号化と同様に、ｉＤＣＴ係数符号化は、係数の多くがゼロ値を有するという事実を利用することが好ましい。
【００３８】
図４の例示のフォーマットのヘッダーは、任意のマクロブロック（ＭＢ）内の任意のｉＤＣＴ係数にて、ＭＢ、ＭＢ内の任意のブロックにおける係数処理をランダムに開始するのに十分な情報を含む。典型的には、８×８ブロック内に、８×８画素ブロックに関する映像データを含む６４のｉＤＣＴ係数が存在する。それ故、例示のヘッダーフォーマットは、識別されたブロック内の第１の非ゼロｉＤＣＴ係数の識別に用いられる６ビットを備える。典型的には、ＭＢ内に６〜８ブロックが存在し、４：２：０ＹＵＶ色空間では、ルーマに０〜３、彩度に４及び５の番号が使われ、４：２：２ＹＵＶ色空間では、ルーマに０〜３、彩度に４〜７の番号が使われる。それ故、例示のヘッダーフォーマットは、各ＹＵＶフォーマットにおいて識別されたＭＢ内の特定のブロックの識別に用いられる３ビットを備える。ＭＢのインデントのために、例示のパケットフォーマットには１６ビットが与えられるため、最大６５５３５個のＩＤが与えられ得る。この数は、４０００×４０００での画素表示、さらにはより高解像度での表示でも全てのＭＢを識別するのに十分な数である。
【００３９】
さらに、図４の例示のヘッダーは、パケット内のｉＤＣＴ係数データを、どの圧縮モードを用いて圧縮したかを示すための５ビットを含む。ここでは、最大３２種類の圧縮方法を選択できる。データパケットの係数セグメントに関するフォーマットは、選択された圧縮種類に応じて決定され得る。図４に、標準的な１２ビットのｉＤＣＴ係数全体に関するデータが、データパケットに符号化された場合の第１の例を示す。図７ａ〜図７ｃに関連して代替例を下記する。
【００４０】
図４に示す例のパケットフォーマットのヘッダーは、ヘッダーのビットサイズが整数バイトに均一に分割されるように、スペアの２ビットを含む。
【００４１】
図４に示す例の係数セグメントは、ｉＤＣＴ係数の「ラン（ｒｕｎ）」におけるｉＤＣＴ係数の数を表す４ビットと、１２ビットのｉＤＣＴ係数値に関する１２ビットとを含む。ここで、「ラン」は、非ゼロ値のｉＤＣＴ係数が後に続く、一連のゼロ値のｉＤＣＴ係数をいう。第１の係数セグメントにおいては、第１のｉＤＣＴ係数がヘッダーにより識別された開始係数であるため、第１の４ビットはスペアである。それに続く係数セグメントにおいては、第１の４ビットは、次の非ゼロ値のｉＤＣＴ係数を含む、ランにおけるｉＤＣＴ係数の数を識別する。ランにおけるゼロ値のｉＤＣＴ係数が１４以下である場合には、セグメントにおける最後の１２ビットは、そのランにおける非ゼロ値のｉＤＣＴ係数に関する１２ビットのｉＤＣＴ係数値を含む。ランにおけるゼロ値のｉＤＣＴ係数が１５以上ある場合には、エスケープ値、例えば、第１の４ビットにおける００００などは、セグメントにおける最後の１２ビットが、次の非ゼロ値のｉＤＣＴ係数の前の、ゼロ値のｉＤＣＴ係数の数を識別することを示すのに用いられる。
【００４２】
圧縮による係数符号化において、８×８係数ブロック内のｉＤＣＴ係数を番号付けする順序の選択は、より効率的な圧縮をもたらすための統計的分析に基づいて実行され得る。ＭＰＥＧ２のＤＣＴ係数符号化においては、図５ａに示すジグザグ走査順序を用いてもよく、これはランレングス符号化能率を向上させる。図５ｂに示す、変化したＭＰＥＧ２ＤＣＴ係数のジグザグ走査順序もあり、これは、インターレース映像において好まれる。ただし、ｉＤＣＴ及びＤＣＴ係数の符号化には、他の符号化順序が好ましくなるという違いがある。
【００４３】
図６ａ及び図６ｂは、本発明の実施形態による例示のｉＤＣＴ係数ブロック走査順序符号化ダイアグラムを示す図である。図６ａでは、走査／符号化シーケンスは、８×８ブロックを４つの４×４サブブロックに分割してタイル分けし、これをさらに、４つの２×２セクションに分割する。シークエンシングは、上端行の左から右に開始され、２×２セクション、４×４サブブロック内の２×２セクション、及びブロック内の４×４サブブロック内の係数に関連した順序で下位行に進む。図６では、走査／符号化シーケンスは、８×８ブロックを４つの４×４サブブロックに分割してタイル分けする。シークエンシングは、上端行の左から右に開始され、４×４サブブロック、及びブロック内の４×４サブブロック内の係数に関連した順序で下位行に進む。図６ｃ及び図６ｄに、ｉＤＣＴ係数走査順序符号化ダイアグラムのさらなる代替例を示す。この代替例は、図６ａ及び図６ｂに示すｉＤＣＴ係数ブロック走査順序符号化ダイアグラムの４分の１である。
【００４４】
係数符号化処理のｉＤＣＴ係数ブロック走査順序コンポーネントは、フレームの符号化が連続的又はインターレースの何れで実行されたのかを考慮して、先行する映像フレームのブロックから収集した統計値に基づいて選択される。処理中に、複数の方法でどのデータサンプルが最良の結果を得たかについて確認を試みることができる。次に、フレームの後部において、統計値全体をコンパイルして、例えば、いくつかの閾値を利用して（すなわち、ヒステリシスを追加して）、より良い係数符号化の代替方法を決定することができる。より優れた係数符号化処理が示された場合には、その後、次のフレームには代替的な係数符号化処理に切り替えることができる。
【００４５】
さらに、フレームのマクロブロック（ＭＢ）は、通常、ＭＰＥＧタイプ符号化において従来のラスター走査順序で処理される。すなわち、上端行の左から右に開始され、下位行に進む。類似のＭＢ復号処理が好ましいが、入力ＭＢを、行又は一部分などのグループに分割することにより、いくらかの量の並列圧縮を得ることができる。これは、隣接するメモリバッファのいくつかの未使用のフラグメント、又は複数の単独のメモリバッファの必要性に起因して、わずかに低い圧縮比を実現し得る。
【００４６】
他の例のｉＤＣＴ係数符号化では、ｉＤＣＴ係数データを２以上のストリームに分割できる。この分割では、ベースストリームは、各係数の少数の最下位ビットのみを備え、第２及び／又はそれに続くストリーム（カラム）が残りのビットを備える。このような代替方法は、ごく少数の係数の値が表示用の１２ビットを要求するため、より高い圧縮比を実現する。
【００４７】
この具体例を図７ａ〜図７ｃに示す。この例では、ｉＤＣＴ係数データを、係数符号／復号のために３つのストリームに分割する。
【００４８】
図７ａの例では、ＭＢ「２２」のブロック「１」において始まる８５のｉＤＣＴ係数のシーケンスにおける８つの非ゼロｉＤＣＴ係数を示す。このサンプルデータでは、８つの非ゼロ１２ビット２進値のうちの６つを、４ビットのみを利用して符号化し得、１つは７ビットを要求し、１つは１１ビットを要求する。このような統計的事実を利用して、係数符号化のために、ｉＤＣＴ係数データを３つのストリームに分割する方法を案出することができる。すなわち、各非ゼロｉＤＣＴ係数値を４最下位ビット（ＬＳＢ）、４中間ビット、及び４最上位ビット（ＭＳＢ）に分割する。
【００４９】
図７ｃに、このような係数符号化のための例示のパケットフォーマットを示す。図４に示す例示のヘッダーと同様に、図７ｃに例示するヘッダーは、ＭＢをインデントするための１６ビット、識別されたＭＢ内の特定ブロックを識別するための３ビット、どの圧縮モードを用いてパケット内のｉＤＣＴ係数データを圧縮したかを示すための５ビット、識別されたブロック内の第１の非ゼロｉＤＣＴ係数を識別するための６ビットを有する。それ故、ヘッダーのビットサイズを整数バイトに均一に分割できるスペアの２ビット含む。例えば、このようなヘッダーは、６４の８ビットバイトパケットのうちの第１の４バイトを構成する。
【００５０】
図７ａ〜図７ｃに例示する係数セグメントは、ｉＤＣＴ係数データの「ラン（ｒｕｎ）」におけるｉＤＣＴ係数部の数を表すための４ビット、但し、１２ビットのｉＤＣＴ係数値の３つの分割のうち１つの４ビットを含む。それ故、このような各セグメントは、例示の６４の８ビットバイトパケットのうちの１バイトである。ここで、「ラン」は、各分割部の非ゼロ値のｉＤＣＴ係数部が後に続く、一連のゼロ値のｉＤＣＴ係数部をいう。
【００５１】
図４に示す例と同様に、第１の係数セグメントにおいては、第１のｉＤＣＴ係数がヘッダーにより識別された開始係数であるため、第１の４ビットはスペアである。それに続く係数セグメントにおいては、第１の４ビットは、次の非ゼロ値のｉＤＣＴ係数部を含む、ランにおけるｉＤＣＴ係数部の数を識別する。ランにおけるゼロ値のｉＤＣＴ係数部が１４以下である場合には、セグメントにおける最後の４ビットは、そのランにおける非ゼロ値のｉＤＣＴ係数部に関する４ビットのｉＤＣＴ係数値部を含む。ランにおけるゼロ値のｉＤＣＴ係数部が１５以上である場合には、エスケープ値、例えば、第１の４ビットにおける００００などは、セグメントにおける最後の４ビットが、次の非ゼロ値のｉＤＣＴ係数の前の、少なくとも１５のゼロ値のｉＤＣＴ係数部を識別することを示すのに用いられる。エスケープ値を含む多重係数セグメントを用いて、ランにおける非ゼロ値の前の、複数組の１５の一連のゼロ値を示す。
【００５２】
図７ｂに、バッファ１内のＬＳＢストリーム、バッファ２内の中間ビットストリーム、及びバッファ３内のＭＳＢストリームへのｉＤＣＴ係数データのバッファリングを示す。さらに、図７ａに示す８つの非ゼロ値を有する組の８５のｉＤＣＴ係数から導き出されたストリームデータパケットの各々に関するデータを示す。データパケットの各々は、パケットにおいて選択されたバイトサイズを書き込むための追加データを含む。
【００５３】
図７ｂに示すように、ＬＳＢストリームにおけるパケットが含むヘッダーは、パケット内の係数データがＭＢ２２のブロック１のｉＤＣＴ係数から始まることを示す。係数符号化スキーム「ｘ」は、ｉＤＣＴ係数データの３分割係数符号化のＬＳＢストリームとして示される。「０」を用いて、その一連のうちの一番目のＬＳＢ係数部の各々に第１の非ゼロ値が存在することを示し、「ｓ」はスペアヘッダービットを示す。これは、例示の６４バイトパケットのうちの４バイトを表す。
【００５４】
バッファ１パケットの第１の係数セグメントにおいて、「ｓ」は第１の４スペアビットを示し、最後の４ビットは、非ゼロ値「ａ」のＬＳＢ部分に対応する値１０を含む。バッファ１パケットの次の係数セグメントにおいて、第１の４ビット内の「１」は１つのランを示し、最後の４ビットは、非ゼロ値「ｂ」のＬＳＢ部分に対応する値１１を含む。バッファ１パケットの次の係数セグメントにおいて、第１の４ビット内の「４」は４つのランを示し、最後の４ビットは、非ゼロ値「ｃ」のＬＳＢ部分に対応する値５を含む。バッファ１パケットの次の係数セグメントにおいて、第１の４ビット内の「０」は、最後の４ビットが、非ゼロ値「ｃ」に続くランにおいて第１の１５のゼロ値を含むことを示す。バッファ１パケットの次の係数セグメントにおいて、第１の４ビット内の「２」は、先行するセグメントと合わせた１７のランを示し、最後の４ビットは、非ゼロ値「ｄ」のＬＳＢ部分に対応する値４を含む。バッファ１パケットの次の係数セグメントにおいて、第１の４ビット内の「３」は３つのランを示し、最後の４ビットは、非ゼロ値「ｅ」のＬＳＢ部分に対応する値４を含む。
【００５５】
バッファ１パケットの次の係数セグメントにおいて、第１の４ビット内の「０」は、最後の４ビットが、非ゼロ値「ｅ」に続くランにおける第１の１５ゼロ値を含むことを示す。バッファ１パケットの次の係数セグメントにおいて、第１の４ビット内の「６」は、先行するセグメントと合わせた２１のランを示し、最後の４ビットは、非ゼロ値「ｆ」のＬＳＢ部分に対応する値４を含む。バッファ１パケットの次の係数セグメントにおいて、第１の４ビット内の「１」は１つのランを示し、最後の４ビットは、非ゼロ値「ｇ」のＬＳＢ部分に対応する値４を含む。
【００５６】
バッファ１パケットの次の２つの係数セグメントにおいて、第１の４ビット内の「０」は、最後の４ビットが、非ゼロ値「ｇ」に続くランにおける第１及び第２集合の１５のゼロ値を含むことを示す。バッファ１パケットの次の係数セグメントにおいて、第１の４ビット内の「７」は、２つの先行するセグメントと合わせた３７のランを示し、最後の４ビットは、非ゼロ値「ｈ」のＬＳＢ部分に対応する値６を含む。
【００５７】
以上のように、６４の８ビットバイトパケットに関する第１の１６バイトの係数符号化を表した。残りのパケットは、ｉＤＣＴ係数データのさらなるＬＳＢ部分に満たされ得る。
【００５８】
図７ｂにさらに示すように、中間ビットストリームにおけるパケットが含むヘッダーは、パケット内の係数データがＭＢ２２のブロック１のｉＤＣＴ係数から始まることを示す。係数符号化スキーム「ｙ」は、ｉＤＣＴ係数データの３分割係数符号化の中間ビットストリームとして示される。「４６」を用いて、その一連のうちの４７番目の中間係数部各々に第１の非ゼロ値が存在することを示し、「ｓ」はスペアヘッダービットを示す。これは、例示の６４バイトパケットのうちの４バイトを表す。
【００５９】
バッファ２パケットの第１の係数セグメントにおいて、「ｓ」は、第１の４スペアビット及び最後の４ビットが、非ゼロ値「ｆ」の中間ビット部分に対応する値４を含むことを示す。バッファ２パケットの次の係数セグメントにおいて、第１の４ビット内の「１」は１つのランを示し、最後の４ビットは、非ゼロ値「ｇ」の中間ビット部分に対応する値６を含む。
【００６０】
以上のように、６４の８ビットバイトパケットに関する第１の６バイトの係数符号化を表した。残りのパケットは、ｉＤＣＴ係数データのさらなる中間ビット部分に満たされ得る。
【００６１】
図７ｂにさらに示すように、ＭＳＢストリームにおけるパケットが含むヘッダーは、パケット内の係数データがＭＢ２２のブロック１のｉＤＣＴ係数から始まることを示す。係数符号化スキーム「ｚ」は、ｉＤＣＴ係数データの３分割係数符号化のＭＳＢストリームとして示される。「４７」を用いて、その一連のうちの４８番目のＭＳＢ部各々に第１の非ゼロ値が存在することを示し、「ｓ」はスペアヘッダービットを示す。バッファ２パケットの第１の係数セグメントにおいて、「ｓ」は、第１の４スペアビット及び最後の４ビットが、非ゼロ値「ｇ」の中間ビット部分に対応する値４を含むことを示す。以上のように、６４の８ビットバイトパケットに関する第１の５バイトの係数符号化を表した。残りのパケットは、ｉＤＣＴ係数データのさらなる中間ビット部分に満たされ得る。
【００６２】
図７ｂに示すように、ｉＤＣＴ係数データの所定のシリーズ／フレームにおいて、ｉＤＣＴ係数データの３分割におけるデータの中間及びＭＳＢストリームの符号化に必要なパケット数は、ＬＳＢストリームの符号化に必要なパケット数と比較して少ない。この結果、第２の処理装置３２内のパケットデコーダ３４は、最初に、データの大部分を有するベースＬＳＢストリームを復元するように構成され得る。次に、より少量の中間ビット及びＭＳＢデータが復元され、これは非常に短い傾向があり、それに続く係数復号パス内のｉＤＣＴ係数メモリに追加される。
【００６３】
ビットストリームビットレートが、量子化の変動に起因して相当量増大又は減少する場合には、ビット分割に用いられるビット数を変更するか、又は、マルチストリーム分割を用いる改善を計算できない場合に、圧縮を単一ストリームにフォールバックすることができる。
【００６４】
符号化データストリームの種々の解像度及びビットレートに関する統計データに基づいて、ランレングス及び非ゼロ係数データを示すのに用いるビット数を種々に組み合わせることにより、改善されたデータ圧縮を提供できる。
【００６５】
例えば、２分割において、１２ビットｉＤＣＴ係数データを、２ビットＬＳＢストリームと１０ビットＭＳＢストリームとに分割できる。図４及び図７ｂに示すのと同じ種類のデータパケットヘッダーを利用するこのような例では、ＬＳＢストリームにおける係数セグメントは、ｉＤＣＴ係数データの「ラン」におけるｉＤＣＴ係数部の数を表す６ビットと、１バイトセグメントを規定するｉＤＣＴ係数データのＬＳＢ部分に関する２ビットのみとを含み得る。ＭＳＢストリームにおける係数セグメントは、ｉＤＣＴ係数データの「ラン」におけるｉＤＣＴ係数部の数を表す６ビットと、２バイトセグメントを規定するｉＤＣＴ係数データのＭＳＢ部分に関する１０ビットとを含み得る。
【００６６】
３分割であるさらなる例では、１２ビットｉＤＣＴ係数データを、２ビットＬＳＢストリームと、２ビット中間ストリームと、８ビットＭＳＢストリームとに分割できる。図４及び図７ｂに示すのと同じ種類のデータパケットヘッダーを利用するこのような例では、ＬＳＢストリームにおける係数セグメントは、ｉＤＣＴ係数データの「ラン」におけるｉＤＣＴ係数部の数を表す６ビットと、１バイトセグメントを規定するｉＤＣＴ係数データのＬＳＢ部分に関する２ビットとを含み得る。また、中間ビットストリームにおける係数セグメントは、ｉＤＣＴ係数データの「ラン」におけるｉＤＣＴ係数部の数を表す６ビットと、１バイトセグメントを規定するｉＤＣＴ係数データの部分に関する２ビットとを含み得る。ＭＳＢストリームにおける係数セグメントは、ｉＤＣＴ係数データの「ラン」における数を表す８ビットと、２バイトセグメントを規定するｉＤＣＴ係数データのＭＳＢ部分に関する８ビットとを含み得る。用いられる分割タイプは、ヘッダービットにより示されることが好ましい。
【００６７】
復元のためにパケットデコーダ内のシリアルパスにおいて２以上のバッファを処理する場合には、２番目以降の各バッファは、それよりも前にいくつのビットが存在したかを示す１つの値を含み得る。
【００６８】
当業者に理解されるように、多種多様の圧縮分割スキームを用いることができる。係数及びランの両方に必要なビット数が少ない場合には、以下の追加スキームを用いることができる。例えば、２ｒ−２ｃ−２ｒ−２ｃ（２ビットラン、２ビット係数、２ビットラン、２ビット係数）、２ｒ−２ｃ−２ｃ−２ｃ（２ビットラン、２ビット係数、２ビット係数、２ビット係数）、４ｒ−２ｃ−２ｃ（４ビットラン、２ビット係数、２ビット係数）、又は６ｒ−２ｃ−２ｃ−２ｃ−２ｃ（６ビットラン、２ビット係数、２ビット係数、２ビット係数、２ビット係数）などを用いることができる。ランビット集合の後に複数組の係数ビットが続くスキームは、いくつかの場合には、生成された組の係数ビットの１つ以上がゼロ係数を規定するが、非ゼロの密度が高い場合に用いられることが好ましい。
【００６９】
（ラン値ビットと係数値ビットとを合わせた）係数セグメントを規定するためのビット数は、その合わせた数が必ずしも８の倍数になる必要はないが、８の倍数にすると、偶数のバイトカウントを有し、第１及び／又は第２の処理装置３１，３２における性能が改善し得る。
【００７０】
全てのパケットが、非適合パケットに対して特別な処理を実行する必要性を回避するための、固定全長に関する有効値を含む必要がある。全てがゼロであるパケットの端部へのパディングを利用して、これを達成できる。これは、ゼロ係数値の数、又は（用いられるビットを上回るランに関する）１つ以上のエスケープコードとして解釈される可能性がある。実際には、パケット後端における任意のエスケープは、デコーダにおいてキャンセルされ得る。ゼロを含むパッデングをバッファ分割の最終パケットに用いる、又は、任意の回数行うことにより、行又は一部分の符号化側の端における並列処理が可能になる。これは、例えば、ＭＢのこのようなグループを同時に処理する場合に実行される。
【００７１】
係数の数が少なく、「ラン」の符号化に必要なビット数が多い場合には、ビットマスクグループ分けに基づいて、さらなる代替的な圧縮方法を用いることが有利になり得る。このような代替スキームでは、ヘッダーのｉＤＣＴ係数ブロックの全体部分に関するゼロ値は、ランにおけるゼロ値を示す代わりに、無係数に関するゼロ、及び非ゼロ係数に関する１つの１を含むビットマスクである。図８に、図６ａに示すシーケンスにおいて符号化ｉＤＣＴ係数の、種々のサイズのタイル部分における１つのビットマスク識別を示す。ビットマスク値を用いて、非ゼロｉＤＣＴ係数が、０〜６の番号が付けられた任意のタイルセグメントに存在するか否かを識別できる。ビットマスクが非ゼロｉＤＣＴ係数の存在を示す場合には、それらの係数に関するデータがビットマスク値に続く。データは、ビットマスクタイル領域の各々においてｉＤＣＴ係数の全ての形態で存在してもよいし、前述のラン値及び係数値でもよい。統計値が圧縮ゲインを示す場合には、ビットマスクに８、１６、３２又は６４ビットを利用した変形例を用いることができる。
【００７２】
ｉＤＣＴ係数ブロックに関するビットマスク値及びそれに関連する係数データが、パケット境界の端部を通じてオーバーフローする場合には、パケット境界を越えた係数に関するマスク内のビットをゼロに設定してもよく、ゼロに設定する以前に圧縮した係数マスクと同一のブロックビットマスクを次のパケットにおいて繰り返し用いてもよく、そして残りの係数に関するビットを、要求に応じて１に設定する。
【００７３】
特徴及び要素を、ｉＤＣＴ係数の処理に関する圧縮の文脈において、このような係数の統計的性質に合わせて例を示して上述したが、この例示は限定を意図するものではない。この方法及び装置は、通常、非ゼロ要素ごとの、情報のわずかな有効ビットを含む少ないデータ（すなわち、多くのゼロデータ要素にちりばめられている比較的少ない非ゼロデータ要素）の任意のバッファリング／圧縮に容易に適応させることができる。
【００７４】
また、ｉＤＣＴ係数は、通常、ＭＰＥＧ及びＪＰＥＧコーデックに含まれる特定変換に用いられる。他のコーデックは、ｉＤＣＴに類似するがそれとは異なる変換を利用する。通常、いくつかの種類の係数の逆変換（ｉＴ）は、ｉＤＣＴであるか否かに関わらずに、映像／イメージデータの復号に対して用いられる。開示した方法及び装置が適用可能なｉＴ係数として技術的に特徴付けられていない比較的同等のデータを用いることもできる。
【００７５】
本発明を利用することにより、テーブル、スマートフォン、ＤＴＶなどのデバイスを、例えば、本発明を利用しなければ複雑で高価なメモリ及びメモリインターフェースを要求することになる部品コスト、設計努力を、低減して製造することができる。
【００７６】
特徴及び要素を、特定の組み合わせで上述したが、各特徴又は要素を、他の特徴及び要素を備えることなく単独で、又は他の特徴及び要素の有無に応じた様々な組み合わせで用いることができる。本明細書に記載した装置は、汎用コンピュータ又はプロセッサによって実行するために、コンピュータ可読記憶媒体に組み込まれたコンピュータプログラム、ソフトウェア又はファームウェアを利用して製造できる。例示のコンピュータ可読記憶媒体は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスク及びリムーバブルディスクなどの磁気媒体と、光磁気媒体と、ＣＤ−ＲＯＭディスク及びデジタル多用途ディスク（ＤＶＤ）などの光媒体とを含む。
【００７７】
本発明の実施形態は、コンピュータ可読記憶媒体に記憶された命令及びデータとして表され得る。例えば、本発明の態様は、ハードウェア記述言語（ＨＤＬ）であるＶｅｒｉｌｏｇを利用して実施され得る。処理されると、Ｖｅｒｉｌｏｇデータ命令は、他の中間データ（例えば、ネットリスト、ＧＤＳデータなど）を生成することができ、これは、半導体製造施設において実施される製造処理を実行するために用いられ得る。製造処理は、本発明の様々な態様を具現化する半導体デバイス（プロセッサなど）の製造に適応され得る。
【００７８】
適切なプロセッサは、例として、汎用プロセッサ、専用プロセッサ、従来のプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、複数のマイクロプロセッサ、画像処理装置（ＧＰＵ）、ＤＳＰコア、コントローラ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、任意の他の種類の集積回路（ＩＣ）及び／若しくは状態機械、又はこれらの組み合わせを含む。
【図１】
2014525194.tif 000003
【図２】
2014525194.tif 000004
【図３】
2014525194.tif 000005
【図４】
2014525194.tif 000006
【図５ａ】
2014525194.tif 000007
【図５ｂ】
2014525194.tif 000008
【図６ａ】
2014525194.tif 000009
【図６ｂ】
2014525194.tif 000010
【図６ｃ】
2014525194.tif 000011
【図６ｄ】
2014525194.tif 000012
【図７ａ】
2014525194.tif 000013
【図７ｂ】
2014525194.tif 000014
【図７ｃ】
2014525194.tif 000015
【図８】
2014525194.tif 000016
【手続補正書】
【提出日】平成26年3月27日(2014.3.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
イメージデータを特徴付ける係数を抽出するように構成された第１の処理装置であって、前記係数を圧縮係数データに符号化し、前記符号化した係数を第２の処理装置に送るように構成された第１の処理装置と、
前記圧縮係数データを、前記イメージデータを特徴付ける係数に復号するように構成された前記第２の処理装置と、
を備える、分散型画像復号装置。
【請求項２】
前記第１の処理装置は、逆変換（ｉＴ）係数を抽出するように構成されており、
前記第２の処理装置は、前記復号した係数を処理して、選択的にフォーマットされた出力を供給することによって、所望の種類の表示デバイスを駆動するように構成されており、
前記ｉＴ係数のデータコンテンツに基づいて、前記符号化を実行するための係数符号化処理を適応的に選択するように構成されたコンポーネントをさらに備え、
前記係数符号化処理は、前記ｉＴ係数を均一のサイズのデータパケットに符号化する係数符号化処理の集合から選択される、
請求項１の装置。
【請求項３】
前記第１の処理装置は、前記選択した係数符号化処理を適応的に選択する前記コンポーネントを含み、
前記第１の処理装置は、前記ｉＴ係数をデータパケットに符号化するように構成されており、
各データパケットは、前記パケット内の前記圧縮ｉＴ係数データの符号化に用いられる、前記選択された係数符号化処理を識別するデータを含む、
請求項２の装置。
【請求項４】
画像の復号を促進するための係数圧縮を利用する方法であって、
第１の処理装置において、イメージデータを特徴付ける係数を抽出するステップと、
前記第１の処理装置において、前記係数を圧縮係数データに符号化するステップと、
を含む、方法。
【請求項５】
前記抽出された係数は、逆変換（ｉＴ）係数であって、
前記ｉＴ係数のデータコンテンツに基づいて、前記係数の符号化を実行するための係数符号化処理を適応的に選択するステップであって、前記係数符号化処理は、前記ｉＴ係数を均一のサイズのデータパケットに符号化する係数符号化処理の集合から選択されるステップと、
他の処理装置において、係数処理を完了するために前記データパケットを出力するステップと、をさらに含む、
請求項４の方法。
【請求項６】
前記第１の処理装置は、前記選択された係数符号化処理を選択し、且つ、データパケットを出力し、
各データパケットは、前記パケット内の前記圧縮ｉＴ係数データの符号化に用いられる、前記選択された符号化処理を識別するデータを含む、
請求項５の方法。
【請求項７】
イメージデータを特徴付ける係数を抽出するように構成された処理コンポーネントと、
前記係数を圧縮係数データに符号化して、係数処理を完了する他の集積回路に出力するように構成されたエンコーダと、
を備える、分散型の画像復号を促進するための集積回路。
【請求項８】
前記抽出された係数は逆変換（ｉＴ）係数であって、
選択された係数符号化処理が係数符号化に用いられるように、前記ｉＴ係数のデータコンテンツに基づいて、前記符号化を実行するための前記係数符号化処理を適応的に選択するように構成された符号化制御コンポーネントをさらに備え、
前記係数符号化処理は、前記ｉＴ係数を均の一サイズのデータパケットに符号化する係数符号化処理の集合から選択される、
請求項７の集積回路。
【請求項９】
前記エンコーダは、データパケットを出力するように構成されており、
各データパケットは、前記パケット内の前記圧縮ｉＴ係数データの符号化に用いられる、前記選択された係数符号化処理を識別するデータを含む、
請求項８の集積回路。
【請求項１０】
イメージデータを特徴付ける係数を抽出するように構成された処理コンポーネントと、
前記係数を圧縮係数データに符号化して、係数処理を完了する他の集積回路に出力するように構成されたエンコーダと、を備える、分散型の画像復号を促進するための集積回路の製造を促進するための、１つ以上のプロセッサにより実行される命令の集合を記憶する、
コンピュータ可読記憶媒体。
【請求項１１】
前記命令は、デバイスの前記製造に用いられるハードウェア記述言語（ＨＤＬ）命令である、
請求項１０のコンピュータ可読記憶媒体。
【請求項１２】
復号を促進するための係数圧縮を利用する方法であって、
処理装置が、イメージデータを特徴付ける符号化ｉＴ係数を表す圧縮逆変換（ｉＴ）係数データを受信するステップと、
前記処理装置が、前記圧縮ｉＴ係数データを、前記イメージデータを特徴付けるｉＴ係数に復号するステップと、
を含む、方法。
【請求項１３】
前記処理装置は、前記データパケットの各々に含まれる圧縮ｉＴ係数データに用いられる、選択された係数符号化処理を識別するデータを含む、均一のサイズのデータパケット内の前記圧縮ｉＴ係数データを受信し、前記パケット内で識別された、前記選択された係数符号化処理に対して補完的な係数復号化方法を用いて、各データパケット内の前記圧縮ｉＴ係数データを復号する、
請求項１２の方法。
【請求項１４】
ＧＰＵは、均一のサイズの、単独で復号可能なデータパケット内の前記圧縮ｉＴ係数データを受信し、前記受信したデータパケットの超並列係数復号を用いて、前記圧縮ｉＴ係数データを復号する、
請求項１２の方法。
【請求項１５】
前記復号したｉＴ係数を処理して、選択的にフォーマットされた信号を供給することによって、所望の表示デバイスを駆動して前記イメージデータを反映したイメージを表示するステップをさらに含む、
請求項１２の方法。
【国際調査報告】
2014525194.tif 000017
2014525194.tif 000018