JP2017184250A - 係数圧縮を用いて復号するための装置及び方法 - Google Patents

係数圧縮を用いて復号するための装置及び方法 Download PDF

Info

Publication number
JP2017184250A
JP2017184250A JP2017093558A JP2017093558A JP2017184250A JP 2017184250 A JP2017184250 A JP 2017184250A JP 2017093558 A JP2017093558 A JP 2017093558A JP 2017093558 A JP2017093558 A JP 2017093558A JP 2017184250 A JP2017184250 A JP 2017184250A
Authority
JP
Japan
Prior art keywords
coefficient
data
coefficients
idct
packets
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.)
Withdrawn
Application number
JP2017093558A
Other languages
English (en)
Inventor
エル. シュミット マイケル
L Schmit Michael
エル. シュミット マイケル
ダブリュ. ツァン ビッキー
W Tsang Vicky
ダブリュ. ツァン ビッキー
ジデュスリ ラダクリシュナ
Giduthuri Radhakrishna
ジデュスリ ラダクリシュナ
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2017184250A publication Critical patent/JP2017184250A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】画像の復号において係数圧縮を実行するための方法及び装置を提供する。【解決手段】復号装置300において、コンピュータ処理装置(CPU)31と画像処理装置(GPU)32とがインターフェース300で接続される。CPU31は、イメージデータを特徴付ける係数を抽出し、選択された係数符号化処理に基づいて、係数を圧縮して圧縮係数データを生成し、均一サイズのデータパケットとして、復号及び係数処理のためにGPU32に送る。GPU32は、このデータパケットを受信し、パケット内で識別された、選択された係数符号化処理に対して補完的な係数復号化方法を用いて、各パケット内の係数データを復号する。【選択図】図3

Description

(関連出願の相互参照)
本願は、米国特許出願第13/186,007号(2011年7月19日出願)の利益を主張するものであり、その内容は参照により本明細書に組み込まれる。
本発明は、概して、画像/映像の復号に関し、特に、画像の復号を分担する中央処理装置(CPU)及び画像処理装置(GPU)などの集積回路と、関連する方法とに関する。
グラフィック処理ユニット(GPU)は、コンピュータ生成イメージ及び映像の適切な表示を補助するために開発されている。通常、コンピュータの中央処理ユニット(CPU)に付随する二次元(2D)及び/又は三次元(3D)エンジンは、システムメモリのフレームバッファに保存されたデータとして、イメージ及び映像をレンダリングする。GPUは、CPUのデータ処理を、選択された方法で補助し、所望の種類の映像信号出力を供給する。
符号化映像を復号し、表示デバイスの駆動に適した信号、例えば、DAC(デジタル/アナログ変換器)、DVI(デジタルビジュアルインターフェース)又はHDMI(登録商標)(高解像度マルチメディアインターフェース)信号を生成する様々なCPU/GPUワークシェアリングシステムが開発されている。コンピュータデバイスが、DVD映像の復号に最初に用いられるときに、CPUが、MPEG2ストリームなどの映像ストリームの一部を復号し、GPUが、残りの処理を行うようにして、表示デバイスに適するようにフォーマットされた出力を供給する、という画像処理機能の分割が行われている。初期のGPUは、主に、色空間変換(YUVからRGB)処理と、ネイティブな復号サイズから、表示用の所望のウィンドウ又はフルスクリーンに適応するサイズにスケーリングする処理を実行するように機能していた。GPUは、その後、これらの機能がメモリ帯域幅に集中的な処理であるため、動き補正(MC)機能の処理を実行するようになった。広範な能力を有するGPUの初期の例としては、エーティーアイテクノロジーズにより1997年に開発され、販売されたRagePro GPUが挙げられる。
画像/映像を符号化する1つの共通の方法は、離散コサイン変換(DCT)処理を用いて符号化することを伴い、この処理では、符号化映像コンテンツをDCT係数に変換する。このような符号化映像を再生/復号するためには、逆離散コサイン変換(iDCT)処理の使用は、要求されるステップの1つである。
映像のMPEG2符号化では、映像は、最初に、YUV値で表される画素上に画定される。続いて、YUV画素データのブロックに対してDCT処理を実行し、量子化されたDCT係数のブロックを得る。次に、通常、運動ベクトル及び音声データを含むMPEG2符号化ビットストリームの映像データを多く得る可変長符号(VLC)を用いてエントロピ符号化する。このようなMPEG2ビットストリームの映像を復号するためには、VLC符号化データに関連する処理を逆の順序で行う必要がある。しかしながら、量子化処理の符号化を完全に逆の順序で実行することが出来ないため、データ品質の低下をある程度犠牲にする必要がある。
通常、MPEG2ビットストリームの他のコンポーネントの処理に加えて、コンピュータのCPUは、可変長符号復号(VLD)及び逆量子化を実行し、後にiDCT処理される元のDCT係数に厳密に一致する逆離散コサイン変換(iDCT)係数を導き出す。映像の復号におけるCPUの処理負荷をさらに低減するために、iDCT計算の実行をGPUにシフトすることが行われている。1998年〜1999年、マイクロソフト社は、DXVA(DirectX Video Acceleration)として公知のインターフェースを有するウィンドウズ(登録商標)PCでのDVD再生のために高品質のMPEG2復号を提供するという高い要求に起因して、CPU−GPUインターフェースを標準化した。このインターフェースは、DirectXと呼ばれる一般的なグラフィックスチップアプリケーションプログラミングインターフェース(API)の一部である。DXVAインターフェースに関する情報は、マイクロソフトのウェブサイト、http://msdn.microsoft.com/en−us/library/ff568238(v=vs.85).aspxから入手できる。ここには以下のことが記載されている。
DirectX VAインターフェースは、低レベルの逆離散コサイン変換(iDCT)に対処する様々な方法をサポートする。2つの基本的なタイプの工程がある。
1.ホスト以外でのiDCT:外部でのiDCTと、イメージ再構成と、クリッピング再構成とのために、変換係数のマクロブロックをアクセラレータに送る。
2.ホストベースiDCT:ホストにおいてiDCTを実行し、外部でのイメージ再構成と、クリッピング再構成とのために、空間領域結果のブロックをアクセラレータに送る。
何れの場合においても、基本的な逆量子化処理と、iDCT前のレンジ飽和と、MPEG2ミスマッチ制御(必要に応じて)と、DC内部オフセット(必要に応じて)とは、ホストにおいて実行される。何れの場合においても、最終のイメージ再構成と、クリッピング再構成とは、アクセラレータにおいて実行される。
図1に、標準的なDXVAインターフェースを介してGPUと連結されたCPUを示す。この装置では、GPUは、iDCT処理を実行する。図1に示す例では、CPUは、MPEG2符号化映像を処理してiDCT係数を抽出し、iDCT係数のマクロブロックを、iDCT処理のために、例えばパーソナルコンピュータマザーボードに連結するデータバスなどのiDCT係数データインターフェース100を介してGPUに送る。また、CPUは、表示順論理に関連する運動ベクトルリスト及び様々な他のデータ項目と、関連する音声とを送る。ただし、iDCT係数は、映像処理のためにGPUに送られたデータの圧倒的な部分を構成する。これは、iDCT係数が、各映像フレームにおける各画素の表示特性を特徴付けるための情報を含むからである。
DXVA(及びこれと同等の装置)インターフェースは、CPUが、作業の一部をGPUにオフロードするという、映像のリアルタイム再生のための復号処理を用いるコンセプトの理解に基づいて設計される。DXVAインターフェースは、典型的には、毎秒30フレームのレートで表示するように処理された比較的低解像度の映像に関しては、十分に動作するものであった。ここ何年間で、解像ファクタ(resolution factors)は、DVDの解像度(720×480画素)から、HDTV(1920×1080画素)まで増大した。現在では、GPUは、デュアルストリーム又はPIP(ピクチャーインピクチャー)能力を有し得るBlu−ray(登録商標)での映画再生をサポートする様々なコーデックにおいて、1920×1080のフルビットストリームの復号に対処することさえ要求される場合がある。
より高い解像度に伴う処理要求を満たすことに加えて、例えばリアルタイムの10倍以上などの、より高いフレームレートでの復号に対する要求も存在する。例えば、より高いフレームレートは、あるフォーマットから別のフォーマットへのトランスコーディングと、円滑な超高速の順表示と、円滑な早送りのための送信順及び表示順の変換と、120Hz及び240Hzでの表示における円滑な早送りと、(特に、複数の映像ストリームを1つの最終ストリームに結合する場合の)映像編集と、例えば顔又は物体検出のための映像検索アルゴリズムとに用いられ得る。
シェーダーとして公知の処理コンポーネントを含むSIMD処理エンジンを利用する構造において、広範な処理機能を有するGPUが開発されてきた。例えば、図2に、従来のGPU、すなわち、ATI Radeon HD 5800シリーズのGPUを示す。Radeon HD 5800シリーズのGPUの処理能力は、約2.72テラフロップスである。GPUは、それぞれ16のプロセッサ(シェーダー)を有する20のSIMDエンジン、すなわち、320のシェーダーを有することを特徴とする。また、Radeon HD 5800シリーズのGPUは、SIMDエンジンごとに4つのテクスチャユニット、すなわち合計80のテクスチャユニットと、約150以上GB/秒のピーク帯域幅を供給するグラフィックスダブルデータレート(GDDR)メモリインターフェースとを誇示する。
従来のDXVAインターフェースでは、iDCT係数は、通常、係数ごとに32ビットを用いて送信される。発明者らは、例えば、フレームレートをリアルタイム表示レートの10倍又は100倍のファクタで増大させると、メモリ帯域幅の重度の障害が生じ得ることを認識した。
画像の復号において係数圧縮を利用するための方法及び装置を提供する。一例では、映像又は他の画像を復号するために、コンピュータ処理装置(CPU)と画像処理装置(GPU)とがインターフェースで接続されており、CPUは、抽出された係数を圧縮し、圧縮係数データを、復元及び処理のためにGPUに送る。超並列係数復号を促進するために、逆変換(iT)係数を、パケット基準ごとに復号可能な均一サイズのデータパケットに、圧縮しながら符号化することが好ましい。
例示のCPUは、符号化制御コンポーネントを含んでもよい。符号化制御コンポーネントは、選択されたiT係数符号化処理がiT係数符号化に適応的に用いられるように、iT係数のデータコンテンツに基づいて、iT圧縮を実行するための符号化処理を適応的に選択するように構成されている。このような例では、GPUは、圧縮iT係数データと共に、選択されたiT係数符号化処理を識別するデータを受信するように構成されている。また、GPUは、選択された係数符号化処理に対して補完的な係数復号化方法を用いてiT係数データを復号するように構成されたデコーダを備えている。
本発明により製造された複数のコンポーネントプロセッサは、分散型の画像復号装置を提供するために、互いに接続可能である。このような装置は、例えば、CPUなどの第1の処理装置と、GPUなどの第2の処理装置とを備え得る。第1の処理装置は、イメージデータを特徴付ける逆変換(iT)係数を抽出し、iT係数を圧縮iT係数データに符号化するように構成されていることが好ましい。圧縮iT係数データを第2の処理装置に送るように構成されたインターフェースが設けられている。第2の処理装置は、圧縮iT係数データを、イメージデータを特徴付けるiT係数に復号し、iT係数のiT処理を実施するように構成されることが好ましい。
このような分散型の画像復号装置は、選択された符号化処理が係数符号化に用いられるように、iT係数のデータコンテンツに基づいて、iT係数符号化を実行するための符号化処理を適応的に選択するように構成されたコンポーネントを含み得る。第1の処理装置は、選択された係数符号化処理を適応的に選択するコンポーネントを含み、圧縮iT係数データと共に、選択された係数符号化処理を識別するデータを含むように構成されていることが好ましい。係数符号化処理は、単独で復号可能な均一のサイズのデータパケットを特徴付けることにより、第2の処理装置における超並列係数復号を促進することが好ましい。
他の例では、コンピュータ可読記憶媒体が開示されている。コンピュータ可読記憶媒体は、選択的に構成された処理装置の製造を促進するための、1つ以上のプロセッサにより実行される命令の集合を記憶する。この処理装置は、イメージデータを特徴付ける逆離散コサイン変換(iT)係数を生成するように構成された処理コンポーネントと、iT係数を圧縮iT係数データに符号化して、iT処理を完了する他の集積回路に出力するように構成されたエンコーダとを含む。
他の例では、選択的に構成された以下の処理装置の製造を促進するための、1つ以上のプロセッサにより実行される命令の集合を記憶するコンピュータ可読記憶媒体が開示されている。この処理装置は、イメージデータを特徴付ける符号化iDCT係数を表す圧縮逆離散コサイン変換(iDCT)係数データを受信するように構成された入力機と、圧縮iDCT係数データを、イメージデータを特徴付けるiDCT係数に復号するように構成されたデコーダと、iDCT係数をiDCT処理するように構成された処理コンポーネントとを含む。
CPU及びGPUの各々の製造を促進するための命令の集合が与えられ得る。コンピュータ可読記憶媒体は、集積回路などのデバイスの製造に用いられるハードウェア記述言語(HDL)命令で書き込まれた命令を有し得る。
従来例の分散型の画像復号装置を示すブロック図である。この装置では、従来のコンピュータ処理装置(CPU)と、従来の画像処理装置(GPU)とがインターフェースで接続されており、CPUは、iDCT処理のために、iDCT係数をGPUに送る。 従来例のGPUを示すブロック図である。 本発明の実施形態による分散型の画像復号装置の構造の一例を示すブロック図である。 本発明の実施形態による圧縮iDCT係数データにおけるデータパケットフォーマットの一例を示す図である。 従来のMPEG2DCT係数ブロック走査順序符号化ダイアグラムを示す図である。 従来のMPEG2DCT係数ブロック走査順序符号化ダイアグラムを示す図である。 本発明の実施形態によるiDCT係数ブロック走査順序符号化ダイアグラムを例示する図である。 本発明の実施形態によるiDCT係数ブロック走査順序符号化ダイアグラムを例示する図である。 一連のiDCT係数内の非ゼロiDCT係数の一例を示す図である。 本発明の実施形態による、図7aに示す非ゼロiDCT係数を含む一連のiDCT係数の代替的なiDCT係数符号化の一例を示す図である。 図7bに例示する係数符号化に用いる圧縮iDCT係数データにおけるデータパケットフォーマットの一例を示す図である。 本発明の実施形態によるiDCT係数サブブロック走査順序符号化ダイアグラムの一例を示す図である。
図3を参照すると、例示の分散型画像復号装置30が示されている。例示の装置30は、コンピュータ処理装置(CPU)などの第1の処理装置31と、図1に示すiDCT係数データインターフェース100などのiDCT係数データインターフェース300を含む、画像処理装置(GPU)などの第2の処理装置32とを備えている。当業者に理解されるように、第1の処理装置31及び第2の処理装置32の機能性は、(従来の通信ファブリックを介しての接続だけでなく)単一パッケージ、さらには同一ダイ内に物理的に収まり得る。第1の処理装置31は、画像/映像ビットストリーム復号処理コンポーネント33を含む。画像/映像ビットストリーム復号処理コンポーネント33は、イメージデータを特徴付ける逆離散コサイン変換(iDCT)係数を抽出し、他の従来の機能、例えば、表示順論理のための運動ベクトル及びデータの生成、並びに音声同期などを実行するように構成されている。iDCT係数の抽出は、図1に示す従来技術のCPUでも行われる従来の方法で実行され得る。
図1に示す従来技術のCPUとは異なり、例示の第1の処理装置31は、iDCT係数パケットエンコーダ35を含む。iDCT係数パケットエンコーダ35は、処理コンポーネント33が生成したiDCT係数を、圧縮iDCT係数データの均一サイズのパケットに、圧縮しながら符号化するように構成されている。エンコーダ35は、圧縮iDCT係数データを、例えば、コンピュータマザーボードにおける従来のデータバスなどのインターフェース300を介して出力する。当業者に理解されるように、コンピュータマザーボードは、多種多様のコンピュータデバイス内に様々な形態で存在し得る。このコンピュータデバイスは、これらに限定されないが、サーバ、ノート型パソコン、モバイル機器(例えば、スマートフォン)、カムコーダ、タブレットなどを含む。
図1に示す従来技術のGPUとは異なり、例示の第2の処理装置32は、iDCT係数パケットデコーダ36を含む。iDCT係数パケットデコーダ36は、第1の処理装置31のパケットエンコーダ35が生成した圧縮iDCT係数データパケットを、インターフェース300を経由して受信するように構成された入力機を有する。デコーダ36は、圧縮iDCT係数データパケットを復号して、イメージデータを特徴付けるiDCT係数を再構成する。次いで、デコーダは、iDCT係数のiDCT処理を実施するiDCT処理コンポーネント38に利用可能な、復号されたiDCT係数を生成する。iDCT処理コンポーネント38が実行するiDCT処理は、図1に示すGPUが実行する従来のiDCT処理と同じ方法で実行できる。
以下により詳細に説明するように、iDCT係数パケットエンコーダ35は、様々な係数符号化方式を利用して、iDCT係数を圧縮しながら符号化するように構成され得る。生成されたパケットは、第2の処理装置32による超並列係数復号の復元が可能になるように、識別されたiDCT係数に個々に復号可能であることが好ましい。例えば、第2の処理装置32は、図2に示すGPUと同様のGPUであってもよい。このような例では、デコーダ36は、GPUシェーダーを利用して、圧縮iDCT係数データの受信したパケットの超並列係数復号の復元を実施し、iDCT係数を再構成するように構成されることが好ましい。均一サイズの復号可能な個々のパケットを提供することにより、並列係数復号のために、個々のパケットを個々のシェーダースレッドに割り当てることができる。
GPUの処理能力及びデータ転送バス300を完全に利用するために、復号装置30は、第1の処理装置31と同様の複数の処理装置を備えてもよい。例えば、このような処理装置の各々は、マルチコアCPUのプロセシングコアでもよい。このような例では、複数のCPUコアは、例えば、同一の映像ストリームの異なる部分、又は異なる映像ストリームにおける係数符号化を実行してもよく、圧縮係数データの各々を、インターフェース300を介してGPU32に送信するように構成されてもよい。
選択された係数符号化処理が係数符号化に用いられるように、iDCT係数のデータコンテンツに基づいて、係数符号化を実行するための符号化処理を適応的に選択するように構成されたコンポーネントを備えてもよい。第1の処理装置31は、選択された係数符号化処理を適応的に選択するコンポーネントを備えることが好ましい。例えば、処理コンポーネント33は、この機能を実行するように構成されている。次に、処理コンポーネント33は、選択された係数符号化処理を識別するデータをエンコーダ35に供給することができ、同様に、選択された係数符号化処理を利用して符号化する圧縮iDCT係数データと共に、選択された係数符号化処理を識別するデータをパケットに含むことができる。
イメージ/映像データは、従来、連続的なイメージ/映像フレームに関連して生成されてきた。各フレームに関するiDCT係数の生成に関連する圧縮方法の統計値は、処理コンポーネント33によって収集され得る。データ圧縮は、フレームにおけるiDCT係数の集合サイズよりも相当短い、フレーム全体におけるiDCT係数を符号化する一連のデータパケットを特徴付けることが好ましい。
フレームに関して収集された統計値を利用して、各フレームに関する、パケット基準ごとの係数符号化方式を適応的に選択することが可能であるが、フレームに関するデータの処理に必要な時間を限定するために、このような統計値を用いて、当該フレームに続くフレームのiDCT係数に対する圧縮方法を動的に適応及び変更することが好ましい。所望に応じて、複数のフレームにおける適応的手法の変更が保留されてもよく、これにより、各工程間、及び/又は選択された一連のフレームにおいて異なる方法の必要性を表す類似の統計値が収集された後のフリップフロップを防止できる。
係数符号化及び係数復号処理の選択は、所定の一連のフレームにおいて、以下の条件を満たすように行われることが望ましい。すなわち、一連のフレームに対するエンコーダ35によるiDCT係数の係数符号化に必要な時間Tencと、第1の処理装置31から第2の処理装置32に、圧縮iDCT係数データを送るのに必要なインターフェース時間Ticと、デコーダ36による係数復号及びiDCT係数の再構成に必要な時間Tdecとを合わせた時間が、第1の処理装置31からインターフェース300を介して第2の処理装置32に非圧縮iDCT係数を送るのに必要なインターフェース時間Tiu以下となるように選択される。この条件を以下の式(1)に示す。
Tenc+Tic+Tdec≦Tiu (1)
通常、適応的手法の選択は、各フレームにおいて非圧縮iDCT係数を単に通信する、最良ではない従来の方法を上回る十分な時間節約を実現できるように構成されている。収集された統計値が、処理時間の節約が全く実現され得ないこと、又は非圧縮iDCT係数の通信時間がかからないことを示す場合には、処理コンポーネント33は、エンコーダ35に係数符号化を実行させず、単に非圧縮iDCT係数を第2の処理装置32に送るように命令するように構成され得る。このような例では、デコーダ36は、iDCT処理コンポーネント38による処理のために、非圧縮iDCT係数を単に受信して保存する。
DXVAインターフェースでは、非圧縮iDCT係数のマクロブロックは、通常、係数ごとに32ビットを用いて送信される。従来のインターフェースは、映像表示の標準速度に対応する標準レートである毎秒30フレームのフレームレートにおいて、係数ごとに32ビットの通信に適合するように設計され得る。ただし、毎秒300フレームなどの著しく高いフレームレートにおけるビデオイメージの処理が所望される場合には、係数ごとの32ビットの数が、所定期間中に10倍増加し、インターフェースは、インターフェースに起因するメモリ帯域幅の障害を原因として、画像処理を達成可能な全体速度を制限することがある。しかしながら、本発明は、同一のプロセッサ間インターフェースにおける全体の処理速度の制限を著しく緩和できる。
iDCT係数の圧縮符号化では、プロセッサ間インターフェースを介して送信された係数データセグメントごとに、非圧縮iDCT係数を32ビットにフォーマットするのにかかる時間に対して追加される時間が非常に短い。前述したように、例えば、従来のGPUに見受けられるシェーダーは、高効率の超並列復元の実行によってiDCT係数を迅速に再構成する係数復号処理の実行において、有利に用いられ得る。
第2の処理装置32における従来のGPU構造の利用では、デコーダ36の実装にかかる時間(又は、費用)節約は、その構造次第である。シェーダープロセッサが少ない構造ではベースライン性能が得られ、より多いシェーダープロセッサを備える構造では、より高性能となる。
エンコーダ35が実行する第1の例の係数符号化では、圧縮ストリームは、フレームのiDCT係数の各々に応じたフレーム基準ごとに総数が変化し得る固定サイズのパケットから成る。固定サイズが、例えば64バイト、128バイトなどの場合には、超並列復元が促進される。このようにして、デコーダ36は、iDCT係数の再構成に用いる各受信パケットを、第2の処理装置32内の任意の利用可能なシェーダーに割り当てるように構成され得る。第2の処理装置32が、タイムスライス法において多重スレッドを同時に処理し得る320個のシェーダーを有する図2に示すGPUと同じ構成である場合には、各シェーダーが一度に8個のスレッドを同時に処理するように構成されると、同時に最大2560パケットを復号できる。
第2の処理装置32は、1つ以上の表示デバイスを駆動するように設定可能なマルチ出力を備えるように構成されていることが好ましい。最新の標準タイプの出力は、アナログビデオグラフィックスアレイ(VGA)ケーブルを経由して、多くの種類の市販のブラウン管(CRT)モニタ/パネル/プロジェクタの駆動に用いられるデジタル/アナログ変換器(DAC)出力、フラットパネルディスプレーなどの多くの市販のデジタル表示デバイスに非常に高い表示品位を与えるために用いられるデジタルビジュアルインターフェース(DVI)出力と、多くの高解像度テレビなどに用いられる非圧縮デジタルデータ用の小型の音声/映像インターフェースとして用いられる高解像度マルチメディアインターフェース(HDMI(登録商標))出力とを含む。代替的又は追加的に、第2の処理装置32は、表示部を有するデバイスに含まれてもよいし、デバイスの表示部を駆動するために、当該デバイスに直接接続されてもよい。第2の処理装置32がiDCT係数を再構成すると、iDCT係数は、フォーマット済み信号を選択的に供給するように従来の方法で処理され、所望の表示デバイスを駆動して、復号した係数を反映したイメージを表示する。
図4に、例示のパケットフォーマットを示す。パケットフォーマットは、ヘッダーから始まり、続いて、第1の係数セグメントが存在し、次に、iDCT係数の変数が復号され得るデータパケットを書き込むための多数の係数セグメントを有する。データパケットサイズが64の8ビットバイトに選択された場合には、ヘッダーは4バイトを表し、圧縮iDCT係数データには60バイトが存在する。図4の例では、各係数セグメントは2バイトを表す。このため、64の8ビットバイトパケットには、第1の係数セグメントに続いて、58の係数セグメントが存在する。
復号され得るiDCT係数の変数を含む固定パケット長は、通常、データが連続的に圧縮される一方で、超並列係数復元が可能なことを意味する。DCT係数符号化と同様に、iDCT係数符号化は、係数の多くがゼロ値を有するという事実を利用することが好ましい。
図4の例示のフォーマットのヘッダーは、任意のマクロブロック(MB)内の任意のiDCT係数にて、MB、MB内の任意のブロックにおける係数処理をランダムに開始するのに十分な情報を含む。典型的には、8×8ブロック内に、8×8画素ブロックに関する映像データを含む64のiDCT係数が存在する。それ故、例示のヘッダーフォーマットは、識別されたブロック内の第1の非ゼロiDCT係数の識別に用いられる6ビットを備える。典型的には、MB内に6〜8ブロックが存在し、4:2:0YUV色空間では、ルーマに0〜3、彩度に4及び5の番号が使われ、4:2:2YUV色空間では、ルーマに0〜3、彩度に4〜7の番号が使われる。それ故、例示のヘッダーフォーマットは、各YUVフォーマットにおいて識別されたMB内の特定のブロックの識別に用いられる3ビットを備える。MBのインデントのために、例示のパケットフォーマットには16ビットが与えられるため、最大65535個のIDが与えられ得る。この数は、4000×4000での画素表示、さらにはより高解像度での表示でも全てのMBを識別するのに十分な数である。
さらに、図4の例示のヘッダーは、パケット内のiDCT係数データを、どの圧縮モードを用いて圧縮したかを示すための5ビットを含む。ここでは、最大32種類の圧縮方法を選択できる。データパケットの係数セグメントに関するフォーマットは、選択された圧縮種類に応じて決定され得る。図4に、標準的な12ビットのiDCT係数全体に関するデータが、データパケットに符号化された場合の第1の例を示す。図7a〜図7cに関連して代替例を下記する。
図4に示す例のパケットフォーマットのヘッダーは、ヘッダーのビットサイズが整数バイトに均一に分割されるように、スペアの2ビットを含む。
図4に示す例の係数セグメントは、iDCT係数の「ラン(run)」におけるiDCT係数の数を表す4ビットと、12ビットのiDCT係数値に関する12ビットとを含む。ここで、「ラン」は、非ゼロ値のiDCT係数が後に続く、一連のゼロ値のiDCT係数をいう。第1の係数セグメントにおいては、第1のiDCT係数がヘッダーにより識別された開始係数であるため、第1の4ビットはスペアである。それに続く係数セグメントにおいては、第1の4ビットは、次の非ゼロ値のiDCT係数を含む、ランにおけるiDCT係数の数を識別する。ランにおけるゼロ値のiDCT係数が14以下である場合には、セグメントにおける最後の12ビットは、そのランにおける非ゼロ値のiDCT係数に関する12ビットのiDCT係数値を含む。ランにおけるゼロ値のiDCT係数が15以上ある場合には、エスケープ値、例えば、第1の4ビットにおける0000などは、セグメントにおける最後の12ビットが、次の非ゼロ値のiDCT係数の前の、ゼロ値のiDCT係数の数を識別することを示すのに用いられる。
圧縮による係数符号化において、8×8係数ブロック内のiDCT係数を番号付けする順序の選択は、より効率的な圧縮をもたらすための統計的分析に基づいて実行され得る。MPEG2のDCT係数符号化においては、図5aに示すジグザグ走査順序を用いてもよく、これはランレングス符号化能率を向上させる。図5bに示す、変化したMPEG2DCT係数のジグザグ走査順序もあり、これは、インターレース映像において好まれる。ただし、iDCT及びDCT係数の符号化には、他の符号化順序が好ましくなるという違いがある。
図6a及び図6bは、本発明の実施形態による例示のiDCT係数ブロック走査順序符号化ダイアグラムを示す図である。図6aでは、走査/符号化シーケンスは、8×8ブロックを4つの4×4サブブロックに分割してタイル分けし、これをさらに、4つの2×2セクションに分割する。シークエンシングは、上端行の左から右に開始され、2×2セクション、4×4サブブロック内の2×2セクション、及びブロック内の4×4サブブロック内の係数に関連した順序で下位行に進む。図6では、走査/符号化シーケンスは、8×8ブロックを4つの4×4サブブロックに分割してタイル分けする。シークエンシングは、上端行の左から右に開始され、4×4サブブロック、及びブロック内の4×4サブブロック内の係数に関連した順序で下位行に進む。図6c及び図6dに、iDCT係数走査順序符号化ダイアグラムのさらなる代替例を示す。この代替例は、図6a及び図6bに示すiDCT係数ブロック走査順序符号化ダイアグラムの4分の1である。
係数符号化処理のiDCT係数ブロック走査順序コンポーネントは、フレームの符号化が連続的又はインターレースの何れで実行されたのかを考慮して、先行する映像フレームのブロックから収集した統計値に基づいて選択される。処理中に、複数の方法でどのデータサンプルが最良の結果を得たかについて確認を試みることができる。次に、フレームの後部において、統計値全体をコンパイルして、例えば、いくつかの閾値を利用して(すなわち、ヒステリシスを追加して)、より良い係数符号化の代替方法を決定することができる。より優れた係数符号化処理が示された場合には、その後、次のフレームには代替的な係数符号化処理に切り替えることができる。
さらに、フレームのマクロブロック(MB)は、通常、MPEGタイプ符号化において従来のラスター走査順序で処理される。すなわち、上端行の左から右に開始され、下位行に進む。類似のMB復号処理が好ましいが、入力MBを、行又は一部分などのグループに分割することにより、いくらかの量の並列圧縮を得ることができる。これは、隣接するメモリバッファのいくつかの未使用のフラグメント、又は複数の単独のメモリバッファの必要性に起因して、わずかに低い圧縮比を実現し得る。
他の例のiDCT係数符号化では、iDCT係数データを2以上のストリームに分割できる。この分割では、ベースストリームは、各係数の少数の最下位ビットのみを備え、第2及び/又はそれに続くストリーム(カラム)が残りのビットを備える。このような代替方法は、ごく少数の係数の値が表示用の12ビットを要求するため、より高い圧縮比を実現する。
この具体例を図7a〜図7cに示す。この例では、iDCT係数データを、係数符号/復号のために3つのストリームに分割する。
図7aの例では、MB「22」のブロック「1」において始まる85のiDCT係数のシーケンスにおける8つの非ゼロiDCT係数を示す。このサンプルデータでは、8つの非ゼロ12ビット2進値のうちの6つを、4ビットのみを利用して符号化し得、1つは7ビットを要求し、1つは11ビットを要求する。このような統計的事実を利用して、係数符号化のために、iDCT係数データを3つのストリームに分割する方法を案出することができる。すなわち、各非ゼロiDCT係数値を4最下位ビット(LSB)、4中間ビット、及び4最上位ビット(MSB)に分割する。
図7cに、このような係数符号化のための例示のパケットフォーマットを示す。図4に示す例示のヘッダーと同様に、図7cに例示するヘッダーは、MBをインデントするための16ビット、識別されたMB内の特定ブロックを識別するための3ビット、どの圧縮モードを用いてパケット内のiDCT係数データを圧縮したかを示すための5ビット、識別されたブロック内の第1の非ゼロiDCT係数を識別するための6ビットを有する。それ故、ヘッダーのビットサイズを整数バイトに均一に分割できるスペアの2ビット含む。例えば、このようなヘッダーは、64の8ビットバイトパケットのうちの第1の4バイトを構成する。
図7a〜図7cに例示する係数セグメントは、iDCT係数データの「ラン(run)」におけるiDCT係数部の数を表すための4ビット、但し、12ビットのiDCT係数値の3つの分割のうち1つの4ビットを含む。それ故、このような各セグメントは、例示の64の8ビットバイトパケットのうちの1バイトである。ここで、「ラン」は、各分割部の非ゼロ値のiDCT係数部が後に続く、一連のゼロ値のiDCT係数部をいう。
図4に示す例と同様に、第1の係数セグメントにおいては、第1のiDCT係数がヘッダーにより識別された開始係数であるため、第1の4ビットはスペアである。それに続く係数セグメントにおいては、第1の4ビットは、次の非ゼロ値のiDCT係数部を含む、ランにおけるiDCT係数部の数を識別する。ランにおけるゼロ値のiDCT係数部が14以下である場合には、セグメントにおける最後の4ビットは、そのランにおける非ゼロ値のiDCT係数部に関する4ビットのiDCT係数値部を含む。ランにおけるゼロ値のiDCT係数部が15以上である場合には、エスケープ値、例えば、第1の4ビットにおける0000などは、セグメントにおける最後の4ビットが、次の非ゼロ値のiDCT係数の前の、少なくとも15のゼロ値のiDCT係数部を識別することを示すのに用いられる。エスケープ値を含む多重係数セグメントを用いて、ランにおける非ゼロ値の前の、複数組の15の一連のゼロ値を示す。
図7bに、バッファ1内のLSBストリーム、バッファ2内の中間ビットストリーム、及びバッファ3内のMSBストリームへのiDCT係数データのバッファリングを示す。さらに、図7aに示す8つの非ゼロ値を有する組の85のiDCT係数から導き出されたストリームデータパケットの各々に関するデータを示す。データパケットの各々は、パケットにおいて選択されたバイトサイズを書き込むための追加データを含む。
図7bに示すように、LSBストリームにおけるパケットが含むヘッダーは、パケット内の係数データがMB22のブロック1のiDCT係数から始まることを示す。係数符号化スキーム「x」は、iDCT係数データの3分割係数符号化のLSBストリームとして示される。「0」を用いて、その一連のうちの一番目のLSB係数部の各々に第1の非ゼロ値が存在することを示し、「s」はスペアヘッダービットを示す。これは、例示の64バイトパケットのうちの4バイトを表す。
バッファ1パケットの第1の係数セグメントにおいて、「s」は第1の4スペアビットを示し、最後の4ビットは、非ゼロ値「a」のLSB部分に対応する値10を含む。バッファ1パケットの次の係数セグメントにおいて、第1の4ビット内の「1」は1つのランを示し、最後の4ビットは、非ゼロ値「b」のLSB部分に対応する値11を含む。バッファ1パケットの次の係数セグメントにおいて、第1の4ビット内の「4」は4つのランを示し、最後の4ビットは、非ゼロ値「c」のLSB部分に対応する値5を含む。バッファ1パケットの次の係数セグメントにおいて、第1の4ビット内の「0」は、最後の4ビットが、非ゼロ値「c」に続くランにおいて第1の15のゼロ値を含むことを示す。バッファ1パケットの次の係数セグメントにおいて、第1の4ビット内の「2」は、先行するセグメントと合わせた17のランを示し、最後の4ビットは、非ゼロ値「d」のLSB部分に対応する値4を含む。バッファ1パケットの次の係数セグメントにおいて、第1の4ビット内の「3」は3つのランを示し、最後の4ビットは、非ゼロ値「e」のLSB部分に対応する値4を含む。
バッファ1パケットの次の係数セグメントにおいて、第1の4ビット内の「0」は、最後の4ビットが、非ゼロ値「e」に続くランにおける第1の15ゼロ値を含むことを示す。バッファ1パケットの次の係数セグメントにおいて、第1の4ビット内の「6」は、先行するセグメントと合わせた21のランを示し、最後の4ビットは、非ゼロ値「f」のLSB部分に対応する値4を含む。バッファ1パケットの次の係数セグメントにおいて、第1の4ビット内の「1」は1つのランを示し、最後の4ビットは、非ゼロ値「g」のLSB部分に対応する値4を含む。
バッファ1パケットの次の2つの係数セグメントにおいて、第1の4ビット内の「0」は、最後の4ビットが、非ゼロ値「g」に続くランにおける第1及び第2集合の15のゼロ値を含むことを示す。バッファ1パケットの次の係数セグメントにおいて、第1の4ビット内の「7」は、2つの先行するセグメントと合わせた37のランを示し、最後の4ビットは、非ゼロ値「h」のLSB部分に対応する値6を含む。
以上のように、64の8ビットバイトパケットに関する第1の16バイトの係数符号化を表した。残りのパケットは、iDCT係数データのさらなるLSB部分に満たされ得る。
図7bにさらに示すように、中間ビットストリームにおけるパケットが含むヘッダーは、パケット内の係数データがMB22のブロック1のiDCT係数から始まることを示す。係数符号化スキーム「y」は、iDCT係数データの3分割係数符号化の中間ビットストリームとして示される。「46」を用いて、その一連のうちの47番目の中間係数部各々に第1の非ゼロ値が存在することを示し、「s」はスペアヘッダービットを示す。これは、例示の64バイトパケットのうちの4バイトを表す。
バッファ2パケットの第1の係数セグメントにおいて、「s」は、第1の4スペアビット及び最後の4ビットが、非ゼロ値「f」の中間ビット部分に対応する値4を含むことを示す。バッファ2パケットの次の係数セグメントにおいて、第1の4ビット内の「1」は1つのランを示し、最後の4ビットは、非ゼロ値「g」の中間ビット部分に対応する値6を含む。
以上のように、64の8ビットバイトパケットに関する第1の6バイトの係数符号化を表した。残りのパケットは、iDCT係数データのさらなる中間ビット部分に満たされ得る。
図7bにさらに示すように、MSBストリームにおけるパケットが含むヘッダーは、パケット内の係数データがMB22のブロック1のiDCT係数から始まることを示す。係数符号化スキーム「z」は、iDCT係数データの3分割係数符号化のMSBストリームとして示される。「47」を用いて、その一連のうちの48番目のMSB部各々に第1の非ゼロ値が存在することを示し、「s」はスペアヘッダービットを示す。バッファ2パケットの第1の係数セグメントにおいて、「s」は、第1の4スペアビット及び最後の4ビットが、非ゼロ値「g」の中間ビット部分に対応する値4を含むことを示す。以上のように、64の8ビットバイトパケットに関する第1の5バイトの係数符号化を表した。残りのパケットは、iDCT係数データのさらなる中間ビット部分に満たされ得る。
図7bに示すように、iDCT係数データの所定のシリーズ/フレームにおいて、iDCT係数データの3分割におけるデータの中間及びMSBストリームの符号化に必要なパケット数は、LSBストリームの符号化に必要なパケット数と比較して少ない。この結果、第2の処理装置32内のパケットデコーダ34は、最初に、データの大部分を有するベースLSBストリームを復元するように構成され得る。次に、より少量の中間ビット及びMSBデータが復元され、これは非常に短い傾向があり、それに続く係数復号パス内のiDCT係数メモリに追加される。
ビットストリームビットレートが、量子化の変動に起因して相当量増大又は減少する場合には、ビット分割に用いられるビット数を変更するか、又は、マルチストリーム分割を用いる改善を計算できない場合に、圧縮を単一ストリームにフォールバックすることができる。
符号化データストリームの種々の解像度及びビットレートに関する統計データに基づいて、ランレングス及び非ゼロ係数データを示すのに用いるビット数を種々に組み合わせることにより、改善されたデータ圧縮を提供できる。
例えば、2分割において、12ビットiDCT係数データを、2ビットLSBストリームと10ビットMSBストリームとに分割できる。図4及び図7bに示すのと同じ種類のデータパケットヘッダーを利用するこのような例では、LSBストリームにおける係数セグメントは、iDCT係数データの「ラン」におけるiDCT係数部の数を表す6ビットと、1バイトセグメントを規定するiDCT係数データのLSB部分に関する2ビットのみとを含み得る。MSBストリームにおける係数セグメントは、iDCT係数データの「ラン」におけるiDCT係数部の数を表す6ビットと、2バイトセグメントを規定するiDCT係数データのMSB部分に関する10ビットとを含み得る。
3分割であるさらなる例では、12ビットiDCT係数データを、2ビットLSBストリームと、2ビット中間ストリームと、8ビットMSBストリームとに分割できる。図4及び図7bに示すのと同じ種類のデータパケットヘッダーを利用するこのような例では、LSBストリームにおける係数セグメントは、iDCT係数データの「ラン」におけるiDCT係数部の数を表す6ビットと、1バイトセグメントを規定するiDCT係数データのLSB部分に関する2ビットとを含み得る。また、中間ビットストリームにおける係数セグメントは、iDCT係数データの「ラン」におけるiDCT係数部の数を表す6ビットと、1バイトセグメントを規定するiDCT係数データの部分に関する2ビットとを含み得る。MSBストリームにおける係数セグメントは、iDCT係数データの「ラン」における数を表す8ビットと、2バイトセグメントを規定するiDCT係数データのMSB部分に関する8ビットとを含み得る。用いられる分割タイプは、ヘッダービットにより示されることが好ましい。
復元のためにパケットデコーダ内のシリアルパスにおいて2以上のバッファを処理する場合には、2番目以降の各バッファは、それよりも前にいくつのビットが存在したかを示す1つの値を含み得る。
当業者に理解されるように、多種多様の圧縮分割スキームを用いることができる。係数及びランの両方に必要なビット数が少ない場合には、以下の追加スキームを用いることができる。例えば、2r−2c−2r−2c(2ビットラン、2ビット係数、2ビットラン、2ビット係数)、2r−2c−2c−2c(2ビットラン、2ビット係数、2ビット係数、2ビット係数)、4r−2c−2c(4ビットラン、2ビット係数、2ビット係数)、又は6r−2c−2c−2c−2c(6ビットラン、2ビット係数、2ビット係数、2ビット係数、2ビット係数)などを用いることができる。ランビット集合の後に複数組の係数ビットが続くスキームは、いくつかの場合には、生成された組の係数ビットの1つ以上がゼロ係数を規定するが、非ゼロの密度が高い場合に用いられることが好ましい。
(ラン値ビットと係数値ビットとを合わせた)係数セグメントを規定するためのビット数は、その合わせた数が必ずしも8の倍数になる必要はないが、8の倍数にすると、偶数のバイトカウントを有し、第1及び/又は第2の処理装置31,32における性能が改善し得る。
全てのパケットが、非適合パケットに対して特別な処理を実行する必要性を回避するための、固定全長に関する有効値を含む必要がある。全てがゼロであるパケットの端部へのパディングを利用して、これを達成できる。これは、ゼロ係数値の数、又は(用いられるビットを上回るランに関する)1つ以上のエスケープコードとして解釈される可能性がある。実際には、パケット後端における任意のエスケープは、デコーダにおいてキャンセルされ得る。ゼロを含むパッデングをバッファ分割の最終パケットに用いる、又は、任意の回数行うことにより、行又は一部分の符号化側の端における並列処理が可能になる。これは、例えば、MBのこのようなグループを同時に処理する場合に実行される。
係数の数が少なく、「ラン」の符号化に必要なビット数が多い場合には、ビットマスクグループ分けに基づいて、さらなる代替的な圧縮方法を用いることが有利になり得る。このような代替スキームでは、ヘッダーのiDCT係数ブロックの全体部分に関するゼロ値は、ランにおけるゼロ値を示す代わりに、無係数に関するゼロ、及び非ゼロ係数に関する1つの1を含むビットマスクである。図8に、図6aに示すシーケンスにおいて符号化iDCT係数の、種々のサイズのタイル部分における1つのビットマスク識別を示す。ビットマスク値を用いて、非ゼロiDCT係数が、0〜6の番号が付けられた任意のタイルセグメントに存在するか否かを識別できる。ビットマスクが非ゼロiDCT係数の存在を示す場合には、それらの係数に関するデータがビットマスク値に続く。データは、ビットマスクタイル領域の各々においてiDCT係数の全ての形態で存在してもよいし、前述のラン値及び係数値でもよい。統計値が圧縮ゲインを示す場合には、ビットマスクに8、16、32又は64ビットを利用した変形例を用いることができる。
iDCT係数ブロックに関するビットマスク値及びそれに関連する係数データが、パケット境界の端部を通じてオーバーフローする場合には、パケット境界を越えた係数に関するマスク内のビットをゼロに設定してもよく、ゼロに設定する以前に圧縮した係数マスクと同一のブロックビットマスクを次のパケットにおいて繰り返し用いてもよく、そして残りの係数に関するビットを、要求に応じて1に設定する。
特徴及び要素を、iDCT係数の処理に関する圧縮の文脈において、このような係数の統計的性質に合わせて例を示して上述したが、この例示は限定を意図するものではない。この方法及び装置は、通常、非ゼロ要素ごとの、情報のわずかな有効ビットを含む少ないデータ(すなわち、多くのゼロデータ要素にちりばめられている比較的少ない非ゼロデータ要素)の任意のバッファリング/圧縮に容易に適応させることができる。
また、iDCT係数は、通常、MPEG及びJPEGコーデックに含まれる特定変換に用いられる。他のコーデックは、iDCTに類似するがそれとは異なる変換を利用する。通常、いくつかの種類の係数の逆変換(iT)は、iDCTであるか否かに関わらずに、映像/イメージデータの復号に対して用いられる。開示した方法及び装置が適用可能なiT係数として技術的に特徴付けられていない比較的同等のデータを用いることもできる。
本発明を利用することにより、テーブル、スマートフォン、DTVなどのデバイスを、例えば、本発明を利用しなければ複雑で高価なメモリ及びメモリインターフェースを要求することになる部品コスト、設計努力を、低減して製造することができる。
特徴及び要素を、特定の組み合わせで上述したが、各特徴又は要素を、他の特徴及び要素を備えることなく単独で、又は他の特徴及び要素の有無に応じた様々な組み合わせで用いることができる。本明細書に記載した装置は、汎用コンピュータ又はプロセッサによって実行するために、コンピュータ可読記憶媒体に組み込まれたコンピュータプログラム、ソフトウェア又はファームウェアを利用して製造できる。例示のコンピュータ可読記憶媒体は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスク及びリムーバブルディスクなどの磁気媒体と、光磁気媒体と、CD−ROMディスク及びデジタル多用途ディスク(DVD)などの光媒体とを含む。
本発明の実施形態は、コンピュータ可読記憶媒体に記憶された命令及びデータとして表され得る。例えば、本発明の態様は、ハードウェア記述言語(HDL)であるVerilogを利用して実施され得る。処理されると、Verilogデータ命令は、他の中間データ(例えば、ネットリスト、GDSデータなど)を生成することができ、これは、半導体製造施設において実施される製造処理を実行するために用いられ得る。製造処理は、本発明の様々な態様を具現化する半導体デバイス(プロセッサなど)の製造に適応され得る。
適切なプロセッサは、例として、汎用プロセッサ、専用プロセッサ、従来のプロセッサ、デジタルシグナルプロセッサ(DSP)、複数のマイクロプロセッサ、画像処理装置(GPU)、DSPコア、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、任意の他の種類の集積回路(IC)及び/若しくは状態機械、又はこれらの組み合わせを含む。
従来例の分散型の画像復号装置を示すブロック図である。この装置では、従来のコンピュータ処理装置(CPU)と、従来の画像処理装置(GPU)とがインターフェースで接続されており、CPUは、iDCT処理のために、iDCT係数をGPUに送る。 従来例のGPUを示すブロック図である。 本発明の実施形態による分散型の画像復号装置の構造の一例を示すブロック図である。 本発明の実施形態による圧縮iDCT係数データにおけるデータパケットフォーマットの一例を示す図である。 従来のMPEG2DCT係数ブロック走査順序符号化ダイアグラムを示す図である。 従来のMPEG2DCT係数ブロック走査順序符号化ダイアグラムを示す図である。 本発明の実施形態によるiDCT係数ブロック走査順序符号化ダイアグラムを例示する図である。 本発明の実施形態によるiDCT係数ブロック走査順序符号化ダイアグラムを例示する図である。 図6a及び図6bに示すiDCT係数ブロック走査順序符号化ダイアグラムの4分の1である、さらなる代替例のiDCT係数ブロック走査順序符号化ダイアグラムを示す図である。 図6a及び図6bに示すiDCT係数ブロック走査順序符号化ダイアグラムの4分の1である、さらなる代替例のiDCT係数ブロック走査順序符号化ダイアグラムを示す図である。 一連のiDCT係数内の非ゼロiDCT係数の一例を示す図である。 本発明の実施形態による、図7aに示す非ゼロiDCT係数を含む一連のiDCT係数の代替的なiDCT係数符号化の一例を示す図である。 図7bに例示する係数符号化に用いる圧縮iDCT係数データにおけるデータパケットフォーマットの一例を示す図である。 本発明の実施形態によるiDCT係数サブブロック走査順序符号化ダイアグラムの一例を示す図である。

Claims (12)

  1. イメージデータを特徴付ける係数を抽出するように構成された第1の処理装置であって、符号化イメージを受信し、イメージデータを特徴付ける係数を抽出し、選択された係数圧縮方法に基づいて前記係数を圧縮係数データの複数の均一サイズの個々に復号可能なパケットに符号化し、抽出された係数から前記圧縮係数データの複数の均一サイズの個々に復号可能なパケットへの符号化についての統計値を収集し、前記統計値に基づいて、前記選択された係数圧縮方法を動的に更新し、前記複数の均一サイズの個々に復号可能なパケットを第2の処理装置に送るように構成された第1の処理装置と、
    前記複数の均一サイズの個々に復号可能なパケットの各々を並行して独立に復号するように構成された前記第2の処理装置と、を備え、
    前記第1の処理装置は、前記選択された係数圧縮方法に従って前記符号化すること、前記送ること及び前記復号することを実行する時間が非圧縮係数を送る時間以上であると判別したことに基づいて、非圧縮係数を前記第2の処理装置に送る、
    分散型イメージ復号装置。
  2. 前記第1の処理装置は、前記係数のデータコンテンツに基づいて、前記選択された係数圧縮方法を動的に更新するように構成されており、
    前記圧縮方法は、前記係数を前記複数の均一サイズの個々に復号可能なデータパケットに圧縮する係数圧縮方法のセットの中から選択され、
    前記第2の処理装置は、前記復号した係数を処理して、選択的にフォーマットされた出力を供給することによって、所望の種類の表示デバイスを駆動するように構成されている、
    請求項1の装置。
  3. 前記複数の均一サイズの個々に復号可能なデータパケットの各々は、個々の均一サイズのパケット内の前記圧縮係数データの符号化に用いられる、前記選択された係数圧縮方法を識別するデータを含む、
    請求項2の装置。
  4. イメージの復号を促進するための係数圧縮を利用する方法であって、
    第1の処理装置において、
    符号化イメージを受信するステップと、
    前記符号化イメージから係数を抽出するステップと、
    選択された係数圧縮方法に基づいて前記係数を圧縮係数データの複数の均一サイズの個々に復号可能なパケットに符号化するステップと、
    抽出された係数から前記圧縮係数データの複数の均一サイズの個々に復号可能なパケットへの符号化についての統計値を収集するステップと、
    前記統計値に基づいて、前記選択された係数圧縮方法を動的に更新するステップと、
    前記複数の均一サイズの個々に復号可能なパケットを第2の処理装置に送るステップと、
    前記第2の処理装置において、
    前記複数の均一サイズの個々に復号可能なパケットの各々を並行して独立に復号するステップと、
    前記第1の処理装置が、前記選択された係数圧縮方法に従って前記符号化すること、前記送ること及び前記復号することを実行する時間が非圧縮係数を送る時間以上であると判別したことに基づいて、非圧縮係数を前記第2の処理装置に送るステップと、
    を含む、方法。
  5. 前記第1の処理装置において、前記係数のデータコンテンツに基づいて、前記選択された係数圧縮方法を動的に更新するステップであって、前記圧縮方法は、前記係数を前記複数の均一サイズの個々に復号可能なデータパケットに圧縮する係数圧縮方法のセットの中から選択されるステップと、
    前記第2の処理装置において、前記復号した係数を処理して、選択的にフォーマットされた出力を供給することによって、所望の種類の表示デバイスを駆動するステップと、をさらに含む、
    請求項4の方法。
  6. 前記複数の均一サイズの個々に復号可能なデータパケットの各々は、個々の均一サイズのパケット内の前記圧縮係数データの符号化に用いられる、前記選択された係数圧縮方法を識別するデータを含む、
    請求項5の方法。
  7. 符号化イメージを受信し、イメージデータを特徴付ける係数を前記符号化イメージから抽出するように構成された処理コンポーネントと、
    選択された係数圧縮方法に基づいて、前記係数を、圧縮係数データの複数の均一サイズの個々に復号可能なパケットであって他の集積回路に出力するためのパケットに符号化して、係数処理を完了するように構成されたエンコーダと、
    抽出された係数から前記圧縮係数データの複数の均一サイズの個々に復号可能なパケットへの符号化についての統計値を収集し、前記統計値に基づいて、前記選択された係数圧縮方法を動的に更新するように構成された符号化制御コンポーネントと、を備え、
    前記エンコーダは、前記選択された係数圧縮方法に従って前記符号化すること、前記送ること及び前記復号することを実行する時間が非圧縮係数を送る時間以上であると判別したことに基づいて、非圧縮係数を前記他の集積回路に送る、
    分散型のイメージ復号を促進するための集積回路。
  8. 前記符号化制御コンポーネントは、前記係数のデータコンテンツに基づいて、前記選択された係数圧縮方法を動的に更新するように構成されており、
    前記圧縮方法は、前記係数を均一サイズのデータパケットに符号化する圧縮方法のセットの中から選択される、
    請求項7の集積回路。
  9. 前記複数の均一サイズの個々に復号可能なデータパケットの各々は、個々の均一サイズのパケット内の前記圧縮係数データの符号化に用いられる、前記選択された係数圧縮方法を識別するデータを含む、
    請求項8の集積回路。
  10. イメージの復号を促進するための係数圧縮を利用する方法であって、
    単独で復号可能な複数の均一サイズのデータパケットを受信するステップであって、前記均一サイズのデータパケットは、イメージデータを特徴付ける符号化された係数と、個々の均一サイズのデータパケットに含まれる係数データの圧縮に用いられる、選択された圧縮方法を識別するデータとを有する、ステップと、
    処理ユニットにおいて、前記個々の均一サイズのデータパケット内で識別される前記選択された圧縮方法に対して補完的な復元方法を用いて、各データパケット内の圧縮係数データを、前記イメージデータを特徴付ける係数に独立に復号化するステップと、を含み、
    前記選択された圧縮方法に従って前記符号化すること、前記受信すること及び前記復号化することを実行する時間が非圧縮係数を受信する時間以上であるとの判別に基づいて、非圧縮係数が受信される、
    方法。
  11. 前記処理ユニットは、受信したデータパケットの超並列係数復元を用いて、前記圧縮係数データを独立に復号する、
    請求項10の方法。
  12. 復号した係数を処理して、選択的にフォーマットされた信号を供給することによって、前記イメージデータを反映するイメージを表示するように所望の表示デバイスを駆動するステップをさらに含む、
    請求項10の方法。
JP2017093558A 2011-07-19 2017-05-10 係数圧縮を用いて復号するための装置及び方法 Withdrawn JP2017184250A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/186,007 US20130021350A1 (en) 2011-07-19 2011-07-19 Apparatus and method for decoding using coefficient compression
US13/186,007 2011-07-19

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014521635A Division JP2014525194A (ja) 2011-07-19 2012-06-27 係数圧縮を用いて復号するための装置及び方法

Publications (1)

Publication Number Publication Date
JP2017184250A true JP2017184250A (ja) 2017-10-05

Family

ID=46506628

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014521635A Ceased JP2014525194A (ja) 2011-07-19 2012-06-27 係数圧縮を用いて復号するための装置及び方法
JP2017093558A Withdrawn JP2017184250A (ja) 2011-07-19 2017-05-10 係数圧縮を用いて復号するための装置及び方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014521635A Ceased JP2014525194A (ja) 2011-07-19 2012-06-27 係数圧縮を用いて復号するための装置及び方法

Country Status (6)

Country Link
US (1) US20130021350A1 (ja)
EP (1) EP2735147A1 (ja)
JP (2) JP2014525194A (ja)
KR (1) KR20140056281A (ja)
CN (1) CN103814573A (ja)
WO (1) WO2013012527A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2972588A1 (fr) 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR2977111A1 (fr) 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
WO2013082709A1 (en) * 2011-12-06 2013-06-13 Aastra Technologies Limited Collaboration system and method
US9311721B1 (en) * 2013-04-04 2016-04-12 Sandia Corporation Graphics processing unit-assisted lossless decompression
WO2014167609A1 (ja) * 2013-04-12 2014-10-16 株式会社スクウェア・エニックス・ホールディングス 情報処理装置、制御方法、プログラム、及び記録媒体
US9075945B1 (en) * 2014-06-27 2015-07-07 Google Inc. Method for implementing efficient entropy decoder by using high level synthesis
CN105469354A (zh) * 2014-08-25 2016-04-06 超威半导体公司 图形处理方法、系统和设备
US9674540B2 (en) 2014-09-25 2017-06-06 Microsoft Technology Licensing, Llc Processing parameters for operations on blocks while decoding images
US10542233B2 (en) * 2014-10-22 2020-01-21 Genetec Inc. System to dispatch video decoding to dedicated hardware resources
CN104469488B (zh) * 2014-12-29 2018-02-09 北京奇艺世纪科技有限公司 视频解码方法及系统
KR102302674B1 (ko) * 2015-05-13 2021-09-16 삼성전자주식회사 영상신호 제공장치 및 영상신호 제공방법
US10237566B2 (en) 2016-04-01 2019-03-19 Microsoft Technology Licensing, Llc Video decoding using point sprites
JP6377222B2 (ja) * 2017-07-31 2018-08-22 株式会社スクウェア・エニックス・ホールディングス 情報処理装置、制御方法、プログラム、及び記録媒体
CN116843775B (zh) * 2023-09-01 2023-12-22 腾讯科技(深圳)有限公司 一种基于反离散余弦变换的解码方法和装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2824994B2 (ja) * 1989-02-06 1998-11-18 キヤノン株式会社 カラー画像処理装置
US5784631A (en) * 1992-06-30 1998-07-21 Discovision Associates Huffman decoder
US5379070A (en) * 1992-10-02 1995-01-03 Zoran Corporation Parallel encoding/decoding of DCT compression/decompression algorithms
KR960010199B1 (ko) * 1993-07-16 1996-07-26 배순훈 디지탈 신호처리 칩 제어장치
US5867601A (en) * 1995-10-20 1999-02-02 Matsushita Electric Corporation Of America Inverse discrete cosine transform processor using parallel processing
US6823016B1 (en) * 1998-02-20 2004-11-23 Intel Corporation Method and system for data management in a video decoder
US6636222B1 (en) * 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
KR100750092B1 (ko) * 2000-01-28 2007-08-21 삼성전자주식회사 가변장 코딩방법 및 장치
US8924506B2 (en) * 2000-12-27 2014-12-30 Bradium Technologies Llc Optimized image delivery over limited bandwidth communication channels
US7609899B2 (en) * 2004-05-28 2009-10-27 Ricoh Company, Ltd. Image processing apparatus, image processing method, and recording medium thereof to smooth tile boundaries
KR100681252B1 (ko) * 2004-10-02 2007-02-09 삼성전자주식회사 트랜스코딩을 위해 출력 매크로블록 모드와 출력움직임벡터를 추정하는 방법 및 이를 이용한 트랜스코더
JP2007027813A (ja) * 2005-07-12 2007-02-01 Sharp Corp 通信システム
US7529416B2 (en) * 2006-08-18 2009-05-05 Terayon Communication Systems, Inc. Method and apparatus for transferring digital data between circuits
JP4691011B2 (ja) * 2006-12-25 2011-06-01 日本電信電話株式会社 符号化伝送方法、その装置、そのプログラム、およびその記録媒体
US20100104006A1 (en) * 2008-10-28 2010-04-29 Pixel8 Networks, Inc. Real-time network video processing
US8320448B2 (en) * 2008-11-28 2012-11-27 Microsoft Corporation Encoder with multiple re-entry and exit points
EP2192780A1 (en) * 2008-11-28 2010-06-02 Thomson Licensing Method for video decoding supported by Graphics Processing Unit
US20120208580A1 (en) * 2011-02-11 2012-08-16 Qualcomm Incorporated Forward error correction scheduling for an improved radio link protocol

Also Published As

Publication number Publication date
CN103814573A (zh) 2014-05-21
US20130021350A1 (en) 2013-01-24
WO2013012527A1 (en) 2013-01-24
EP2735147A1 (en) 2014-05-28
KR20140056281A (ko) 2014-05-09
JP2014525194A (ja) 2014-09-25

Similar Documents

Publication Publication Date Title
JP2017184250A (ja) 係数圧縮を用いて復号するための装置及び方法
US8218641B2 (en) Picture encoding using same-picture reference for pixel reconstruction
US8218640B2 (en) Picture decoding using same-picture reference for pixel reconstruction
JP5399416B2 (ja) 参照フレームの圧縮を伴うビデオ符号化システム
CN102204242B (zh) 用于增加帧显示速率的方法和系统
US11445160B2 (en) Image processing device and method for operating image processing device
TWI626841B (zh) 具有減少色彩解析度的視訊流之自適應處理
WO2023020560A1 (zh) 视频编解码的方法、装置、电子设备及存储介质
US20210250575A1 (en) Image processing device
CN102550009B (zh) 用于彩色图像的联合标量嵌入式图形编码
KR102267792B1 (ko) 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩
CN110708547B (zh) 针对变换模式的有效熵编码组分组方法
CN106954074B (zh) 一种视频数据处理方法和装置
US20110051815A1 (en) Method and apparatus for encoding data and method and apparatus for decoding data
CN111541895B (zh) 用于残差电平数据的位置相关熵编码的嵌入式编解码器(ebc)电路系统
TWI820063B (zh) 影像處理裝置及影像處理裝置的操作方法
US10390019B2 (en) Method and device for encoding a multidimensional digital signal, in particular an image signal, and corresponding method and device for decoding
JPH11155143A (ja) 画像圧縮符号化・復号化方法、画像圧縮符号化・復号化装置、画像圧縮符号化伝送方法、画像圧縮符号化伝送システムおよび画像圧縮符号化・復号化プログラムを記録した記録媒体
US10652543B2 (en) Embedded codec circuitry and method for frequency-dependent coding of transform coefficients
GB2559912A (en) Video encoding and decoding using transforms

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20170920