JP2009272724A - ビデオ符号化・復号化装置 - Google Patents

ビデオ符号化・復号化装置 Download PDF

Info

Publication number
JP2009272724A
JP2009272724A JP2008119267A JP2008119267A JP2009272724A JP 2009272724 A JP2009272724 A JP 2009272724A JP 2008119267 A JP2008119267 A JP 2008119267A JP 2008119267 A JP2008119267 A JP 2008119267A JP 2009272724 A JP2009272724 A JP 2009272724A
Authority
JP
Japan
Prior art keywords
dma
data
pixel data
decoding
interpolation
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.)
Pending
Application number
JP2008119267A
Other languages
English (en)
Inventor
Mi Michael Bi
マイケル・ビ・ミ
Tien Ping Chua
チュア・ティエン・ピン
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.)
Panasonic Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2008119267A priority Critical patent/JP2009272724A/ja
Priority to CN2009801148713A priority patent/CN102017638A/zh
Priority to PCT/JP2009/001850 priority patent/WO2009133671A1/ja
Priority to US12/937,159 priority patent/US20110032995A1/en
Publication of JP2009272724A publication Critical patent/JP2009272724A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Bus Control (AREA)

Abstract

【課題】限られたメモリリソースを用いてシステムパフォーマンスを最大にすることができるビデオ符号化・復号化装置を提供すること。
【解決手段】ビデオ符号化・復号化装置100は、動き補償装置101のダイレクトメモリアクセス手段160が、補間手段180から補間完了を受け取った後にDMA要求を生成し、メモリアクセス調停手段110からDMA ACKを受け取った後、最大DMAバースト制約及びブロックバッファサイズ制約に従って複数個のDMA入力データを受け取り、復号化パラメータと演算処理レベルLcと最大DMAバースト制約とブロックバッファサイズ制約とに従って、参照ピクセルデータを可変サイズブロックバッファ170に格納するためのブロックメモリアドレスを生成する。
【選択図】図1

Description

本発明は、ビデオデコーダにおいて動き補償を用いる動き補償装置を備えるビデオ符号化・復号化装置に関する。
最近、マルチメディアに関連する情報のデジタル化が加速しており、それに伴って、より高画質のビデオ情報の需要が高まっている。具体的な例として、放送媒体及びレーザ記憶媒体(laser storage media)における、従来の720×480ピクセルのSD(Standard Definition)から1920×1080ピクセルのHD(High Definition)への移行が挙げられる。高画質の需要は、それと同時にシステムの複雑さが増し、復号化の処理動作が増大する。したがって、従来のパフォーマンス能力を上回る一方でコストを低いレベルに維持できる効果的なシステムアーキテクチャが求められている。
ビデオコーダーにおいて動き補償を使用することは、いくつもの大きな利点がある。テレビ信号は、残像に基づき特定の速度(例えば、30又は60フレーム/秒)で走査しなければならない。HDTVなどの多くの用途においては、フレーム間に大量の冗長性が存在する。ビデオコーダーにおいて動き補償を使用することにより、この冗長性が減少し、ビデオ信号の圧縮率を高めることができる。
現在のフレームのピクセルブロックと、フレームのメモリに格納されている前のフレームのピクセルブロックとの間の動きを推定する目的には、さまざまなアルゴリズムを使用することができる。例えば、非特許文献1,2には、ピクセル再帰的アルゴリズムが開示されている。また、非特許文献3には、ブロック照合アルゴリズムが記載されている。
これらのアルゴリズムのいずれにおいても、以前に復号化されたフレームのピクセルをフレームバッファから取り出すことが要求される。高解像度のビデオ信号をリアルタイムで符号化するためには、これらのフレームメモリに高速でアクセスしなければならない。その一方で、特定の用途、特に携帯端末用途においては、システムコスト及び電力消費量を低く維持するため、デジタルハイビジョンテレビなどの高性能の用途と比較して比較的低いシステムクロックレートによってデバイスを駆動しなければならない。
動き補償において使用するためのバッファリングメカニズムであって、ビデオデコーダが過度に複雑にならず、パフォーマンスのボトルネックが生じないバッファリングメカニズムのニーズが存在している。
特許文献1には、効果的な動き補償方法「Efficient methods of performing motion compensation based decoding and recording of compressed video bitstreams」が開示されている。特許文献1記載の発明は、オンチップメモリの使用を増やすことによって動き補償の効率を高めている。動き補償に必要な参照フレームの部分がオンチップメモリに含まれるように参照ウィンドウを作成するものである。
"Motion Compensation Television Coding: Part I", BSTT, Vol. 58, pp. 631-670, March, 1979 K. A. Probhu et al., "Pel Recursive Motion Compensated Color Codecs", Proc ICC 82, p. 2G. 8.1-8.5, Philadelphia, Pa., June 1982. A block matching algorithm is disclosed in J. R. Jain et al., "Displacement Measurement and Its Application in Interframe Image Coding", IEEE Trans. on Comm., Vol. COM-29, p. 1799-1808, December 1981. 米国特許第7,218,842号明細書
しかしながら、このような従来の動き補償方法を備えるビデオ符号化・復号化装置にあっては、以下のような問題があった。
すなわち、動き補償では、以前に復号化されたフレームのピクセルをフレームバッファから取り出すことが要求される。高解像度のビデオ信号をリアルタイムで符号化するためには、これらのフレームメモリに高速でアクセスしなければならない。その一方で、特定の用途、特に携帯端末用途においては、システムコスト及び電力消費量を低く維持するため、デジタルハイビジョンテレビなどの高性能の用途と比較して比較的低いシステムクロックレートによってデバイスを駆動しなければならない。
また、特許文献1記載の動き補償方法では、動き補償に必要な参照フレームの部分をオンチップメモリに含まれるように構成することで、動き補償の効率を高めることができるものの、参照フレームの部分を格納するための大きなメモリ空間が要求される欠点がある。
本発明は、上記に鑑みてなされたものであり、限られたメモリリソースを用いてシステムパフォーマンスを最大にすることができるビデオ符号化・復号化装置を提供することを別の目的とする。
本発明のビデオ符号化・復号化装置は、ビデオデコーダにおいて動き補償を用いる動き補償装置を備えるビデオ符号化・復号化装置であって、複数のビデオデコーダエンジンと、前記複数のビデオデコーダエンジンに接続されている複数のエンジンDMAバスと、フレームバッファと、前記フレームバッファに接続されているメインDMAバスと、復号化パラメータ、演算処理レベルLc、最大DMAバースト制約、及びブロックバッファサイズ制約に従って、DMA要求を発行し、DMA ACKを受け取った後に複数個のDMA入力データを受け取り、DMA完了を発行し、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを前記複数のビデオデコーダエンジンの1つに出力する動き補償装置と、前記動き補償装置からDMA要求を受け取り、かつ前記複数のビデオデコーダエンジンからDMA要求を前記エンジンDMAバスを通じて受け取り、DMA要求を優先順位付けし、DMA ACKを所定のDMA優先度リストに従って前記動き補償装置及び前記複数のビデオデコーダエンジンに送り、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを前記動き補償装置に提供し、前記メインDMAバスを通じて、前記フレームバッファからデータを読み取る、及び前記フレームバッファにデータを書き込むメモリアクセス調停手段と、を備える構成を採る。
本発明によれば、パフォーマンス及びメモリサイズをフレキシブルに設定できる動き補償装置を備えることにより、システムパフォーマンスを事前定義する、又は、システム全体の処理スループットをリアルタイムで最適化して、動き補償装置とそれ以外のビデオデコーダエンジンとの間でパフォーマンスのバランスをとるためにシステムパフォーマンスを自動的に設定することができる。また、参照ピクセルデータを格納するためのオンチップメモリのサイズを、動き補償装置に適用されるシステムコスト制約に従って設定できることである。さらに、パディング、ワード整列、クロミナンス成分のデインターリーブのうちの少なくとも1つの実行をフレキシブルに設定することにより、DMAコントローラと演算処理ロジックとの間でシステムの複雑さをトレードオフすることができ、DMAコントローラと演算処理ロジックとの間でシステムパフォーマンスのバランスをとることができる。その結果、高い周波数で動作する大きなオンチップデータメモリを使用することなく、限られたメモリリソースを用いて、システムパフォーマンスを最大にするフレキシブルな動き補償装置及びビデオ符号化・復号化装置を実現することができる。
以下、本発明の実施の形態について図面を参照して詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係るビデオ符号化・復号化装置の構成を示す図である。本実施の形態は、フレームバッファと、複数のビデオデコーダエンジンと、前記複数のビデオデコーダエンジンに接続されている複数のエンジンDMAバスと、動き補償を用いる動き補償装置とを備えるビデオ符号化・復号化装置に適用した例である。
図1において、ビデオ符号化・復号化装置100は、動き補償装置101と、メモリアクセス調停手段110と、複数個(N個)のビデオデコーダエンジン120−1,120−2,…,120−Nと、フレームバッファ150とを備えて構成される。
動き補償装置101は、復号化パラメータ161、演算処理レベルLc(computation level)162、最大DMAバースト制約163、ブロックバッファサイズ制約164、DMA ACK112、DMA入力データ114、及び補間完了181を受け取る入力端子を有し、復号化パラメータ161、演算処理レベルLc162、最大DMAバースト制約163、及びブロックバッファサイズ制約164に従って、DMA要求111を発行し、DMA ACK112を受け取った後に複数個のDMA入力データ114を受け取り、次いで、DMA完了115を発行し、復号化パラメータ161によって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン120−1,120−2,…,120−Nの1つに出力する。
メモリアクセス調停手段110は、動き補償装置101からDMA要求111を受け取り、かつ複数個のビデオデコーダエンジン120−1,120−2,…,120−NからDMA要求をエンジンDMAバス116〜118を通じて受け取り、DMA要求を優先順位付けし、DMA ACK112を所定のDMA優先度リストに従って動き補償装置101及び複数個のビデオデコーダエンジン120−1,120−2,…,120−Nに送り、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データ114を動き補償装置101に提供し、メインDMAバス151を通じて、フレームバッファ150からデータを読み取る、及びフレームバッファ150にデータを書き込む。
複数個のビデオデコーダエンジン120−1,120−2,…,120−Nは、エンジンDMAバス116〜118を通じてメモリアクセス調停手段110に接続されている。
フレームバッファ150は、複数個のビデオデコーダエンジン120−1,120−2,…,120−Nにより共有される外部のシステムメモリであり、メインDMAバス151を通じてメモリアクセス調停手段110に接続されている。
動き補償装置101は、ダイレクトメモリアクセス手段160、可変サイズブロックバッファ170、及び補間手段180を備え、パフォーマンス及びメモリサイズをフレキシブルに設定できるように設計されている。
ダイレクトメモリアクセス手段160は、補間手段180から補間完了181を受け取った後にDMA要求を生成し、メモリアクセス調停手段110からDMA ACK112を受け取った後、最大DMAバースト制約及びブロックバッファサイズ制約に従って複数個のDMA入力データを受け取り、復号化パラメータと演算処理レベルLcと最大DMAバースト制約とブロックバッファサイズ制約とに従って、参照ピクセルデータ171を可変サイズブロックバッファ170に格納するためのブロックメモリアドレスを生成するとともに、参照ピクセルデータ171を可変サイズブロックバッファ170に出力し、メモリアクセス調停手段110から複数個のDMA入力データを受け取った後、DMA完了115を生成し、次いで、補間開始182を生成する。
可変サイズブロックバッファ170は、フレームバッファ150からダイレクトメモリアクセスを通じて取得される参照ピクセルデータ171を格納し、バッファリングされたピクセルデータを補間手段180に提供する。可変サイズブロックバッファ170は、システムコスト及びシステムパフォーマンスの要件に従ってさまざまな所定のメモリサイズに設定可能である。
補間手段180は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン120−1,120−2,…,120−Nの1つに出力する。具体的には、補間手段180は、復号化パラメータ、補間開始、及び複数のバッファリングされたピクセルデータ172を受け取る入力端子を有し、複数のバッファリングされたピクセルデータに所定の補間フィルタを適用することによって複数個の補間されたデータ173を計算し、すべての補間されたデータ173を計算した後、補間完了181を生成する。
以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
動き補償装置101は、DMA ACK112を受け取った後、複数個のDMA入力データ114を受け取り、次いで、DMA完了115を発行する。動き補償装置101は、復号化パラメータ161によって指定される復号化モードに従って、補間されたデータ173を計算する。動き補償装置101は、補間されたデータ173を自身の出力端子の1つを通じてビデオデコーダエンジンの1つに出力する。
メモリアクセス調停手段110は、動き補償装置101からDMA要求111を受け取る。メモリアクセス調停手段110はまた、複数個のビデオデコーダエンジン120−1,120−2,…,120−NからそれぞれエンジンDMAバス116,117,118を通じてDMA要求を受け取り、DMA要求を優先順位付けし、DMA ACK112を、所定のDMA優先度リストに従って動き補償装置101及び複数個のビデオデコーダエンジン120−1,120−2,…,120−Nに送る。そして、メモリアクセス調停手段110は、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データ114を動き補償装置100に提供し、メインDMAバス151を通じて、フレームバッファ150からデータを読み取る、及びフレームバッファ150にデータを書き込む。
複数個のビデオデコーダエンジン120−1,120−2,…,120−Nは、それぞれエンジンDMAバス116,117,118を通じてメモリアクセス調停手段110に接続されている。フレームバッファ150は、メインDMAバス151を通じてメモリアクセス調停手段110に接続されている。
次に、動き補償装置101の動作について説明する。
ダイレクトメモリアクセス手段160は、最大DMAバースト制約163及びブロックバッファサイズ制約164に従って、DMA要求を生成し、複数個のDMA入力データを受け取り、DMAアクセス及び補間手段180を調整し、DMAによってフレームバッファ150から取得した参照ピクセルデータ171を可変サイズブロックバッファ170に格納するためのアドレスを生成する。
より詳細には、ダイレクトメモリアクセス手段160は、補間手段180から補間完了181を受け取った後にDMA要求111を生成し、生成したDMA要求111をメモリアクセス調停手段110に発行する。ダイレクトメモリアクセス手段160は、メモリアクセス調停手段110からDMA ACK112を受け取った後、最大DMAバースト制約163とブロックバッファサイズ制約164とに従って、メモリアクセス調停手段110から複数個のDMA入力データ114を受け取る。ダイレクトメモリアクセス手段160は、復号化パラメータ161と、演算処理レベルLc162と、最大DMAバースト制約163と、ブロックバッファサイズ制約164とに従って、参照ピクセルデータ171を可変サイズブロックバッファ170に格納するためのブロックメモリアドレスを生成する。ダイレクトメモリアクセス手段160は、可変サイズブロックバッファ170に参照ピクセルデータ171を出力する。ダイレクトメモリアクセス手段160は、複数個のDMA入力データ114を受け取った後、DMA完了115を生成し、次いで、補間開始182を生成する。
可変サイズブロックバッファ170は、参照ピクセルデータを格納するためのオンチップメモリであり、ダイレクトメモリアクセスによって外部のフレームバッファ150から取得した参照ピクセルを格納し、バッファリングされたピクセルデータ172を補間手段180に提供する。可変サイズブロックバッファ170は、システムコスト及びシステムパフォーマンスの要件に従ってさまざまな所定のメモリサイズに設定することができる。
補間手段180は、バッファリングされたピクセルデータ172に所定の補間フィルタを適用することによって複数個の補間されたデータ173を計算し、すべての補間されたデータ173を計算した後、補間完了181を生成する。
以上詳細に説明したように、本実施の形態によれば、ビデオ符号化・復号化装置100は、動き補償装置101のダイレクトメモリアクセス手段160が、補間手段180から補間完了181を受け取った後にDMA要求111を生成し、メモリアクセス調停手段110からDMA ACKを受け取った後、最大DMAバースト制約及びブロックバッファサイズ制約に従って複数個のDMA入力データを受け取り、復号化パラメータと演算処理レベルLcと最大DMAバースト制約とブロックバッファサイズ制約とに従って、参照ピクセルデータを可変サイズブロックバッファ170に格納するためのブロックメモリアドレスを生成する。
これにより、ダイレクトメモリアクセス手段160は、複数個の小さなDMAアクセスを自動的に組み合わせて大きなバーストDMAを形成する、又は、大きなバーストDMAを複数個の小さなサイズのDMAアクセスに自動的に分割することができる。また、システムパフォーマンスを事前定義する、又は、システム全体の処理スループットをリアルタイムで最適化することにより、動き補償装置101とそれ以外の複数個のビデオデコーダエンジン120−1,120−2,…,120−Nとの間で、データバスの占有時間及びフレームバッファ150にアクセスするためのバス占有時間のバランスをとることができる。その結果、高い周波数で動作する大きなオンチップデータメモリを使用することなく、限られたメモリリソースを用いて、システムパフォーマンスを最大にするフレキシブルな動き補償装置101を実現することができる。
このように、ビデオの復号化において高いパフォーマンスの動き補償装置101を実現できるので、ビデオ符号化・復号化装置100は、動き補償が必要な高解像度のビデオ用として、動き補償装置101を使用することでリアルタイムで動作することが可能になる。また、上述したように、動き補償装置101は、動き補償に必要なシステムメモリのコストを小さくすることができるので、動き補償システムのコストパフォーマンスについても高めることができる。
(実施の形態2)
実施の形態2は、動き補償装置の詳細な実現形態を説明する。
図2は、本発明の実施の形態2に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図である。本実施の形態の動き補償装置101Aは、図1の動き補償装置101に代えて適用される。
図2において、動き補償装置101Aは、DMAコマンド生成器200と、バッファアドレス生成手段210と、設定可能シーケンサ220と、補間手段230と、可変サイズブロックバッファ240と、データ整列手段250とからなる6個のコンポーネントにより構成される。
DMAコマンド生成器200は、復号化パラメータ、DMA ACK、及びDMAバーストサイクルを受け取る入力端子を有し、DMA要求を生成し、DMA ACKを受け取り、DMA要求の数をカウントし、カウンタがDMAバーストサイクルの数に達した後にDMA完了を出力する。
バッファアドレス生成手段210は、復号化パラメータ、DMA入力データ、及びDMAバーストサイクルを受け取る入力端子を有し、復号化パラメータ及びDMAバーストサイクルに従ってブロックバッファアドレスを導き、DMA入力データを参照ピクセルデータ端子を通じて可変サイズブロックバッファ内のメモリ位置に転送する。
設定可能シーケンサ220は、復号化パラメータ、演算処理レベルLc、最大DMAバースト制約、ブロックバッファサイズ制約、補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大DMAバースト制約225によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを導き、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段230の動作を開始させる補間開始を生成する。
補間手段230は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン120−1,120−2,…,120−Nの1つに出力する。具体的には、補間手段230は、復号化パラメータ、補間開始、及び複数の再配置されたピクセルデータを受け取る入力端子を有し、再配置されたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する。
可変サイズブロックバッファ240は、チャネル化されたDMA入力データを受け取る参照ピクセルデータ端子を有し、チャネル化されたDMA入力データを、ブロックバッファアドレスに従って所定位置に格納し、動き補償処理のためにバッファリングされたピクセルデータを出力する。
データ整列手段250は、復号化パラメータ、クロマインターリーブフラグ、バッファリングされたピクセルデータを受け取る入力端子を有し、復号化パラメータの一部としての動きベクトルによって示されるビデオフレーム内の位置と、フレームバッファ150におけるクロミナンスデータ形式を示すクロマインターリーブフラグとに従って、バッファリングされたピクセルデータを再配置し、フレーム境界ピクセルをパディングすることによって、再配置されたピクセルデータを提供し、ワード境界再配置によって不要なデータを削除し、クロマインターリーブフラグが設定されている場合、インターリーブされたクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化する。
以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
DMAコマンド生成器200は、メモリアクセス調停手段110(図1)に対してDMA要求202を生成し、メモリアクセス調停手段110(図1)からDMA ACK203を受け取り、DMA要求202の数をカウントし、カウンタがDMAバーストサイクル221の数に達した後にメモリアクセス調停手段110(図1)にDMA完了204を出力する。
バッファアドレス生成手段210は、復号化パラメータ201とDMAバーストサイクル221とに従ってブロックバッファアドレスを導き、メモリアクセス調停手段110(図1)からのDMA入力データ212を、参照ピクセルデータ端子を通じて参照ピクセルデータ241として可変サイズブロックバッファ240内のメモリ位置に転送する。
設定可能シーケンサ220は、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段230の動作を開始させる補間開始223を生成する。
補間手段230は、再配置されたピクセルデータ252に所定の補間フィルタを適用することによって、複数個の補間されたデータ243を計算し、すべての補間されたデータ243を計算した後、補間完了224を生成し、補間されたデータ243を出力する。
可変サイズブロックバッファ240は、チャネル化されたDMA入力データを受け取り、それらをブロックバッファアドレスに従って適切な位置に格納し、動き補償処理のため、バッファリングされたピクセルデータ242を出力する。
データ整列手段250は、復号化パラメータ201の一部としての動きベクトルによって示されるビデオフレーム内の位置と、フレームバッファ150(図1)におけるクロミナンスデータ形式を示すクロマインターリーブフラグ251とに従って、バッファリングされたピクセルデータ242を再配置する。データ整列手段250は、フレーム境界ピクセルをパディングすることによって、再配置されたピクセルデータ252を提供し、ワード境界再配置によって不要なデータを削除する。そして、データ整列手段250は、クロマインターリーブフラグが設定されている場合、2つのインターリーブされたクロミナンス成分を分割して、フレームバッファ150における設計上のクロマピクセルデータ形式に従ってストリーム化する。
このように、本実施の形態によれば、動き補償装置101Aは、復号化パラメータによって指定されるビットストリーム特性と最大DMAバースト制約によって指定されるシステムパフォーマンスの制限とブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを導き、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段230の動作を開始させる補間開始を生成する設定可能シーケンサ220を備えているので、動き補償装置101Aは、データバスのトラフィックを動的に監視することによって、データメモリへの各バーストアクセスの数及びサイズを適応的に割り当てることができ、これにより、演算処理手段と、動き補償装置101Aの内側及び外側の限られたメモリとの間での最適化されたデータストリーミングを達成することができる。
また、システムパフォーマンスを、動き補償装置101Aに適用されるシステムパフォーマンス制約に基づいて事前定義することができ、参照ピクセルデータを格納するためのオンチップメモリのサイズを、動き補償装置に適用されるシステムリソース制約に従って設定することができる。
また、本実施の形態では、動き補償装置101Aは、データ整列手段250を備えているので、システムコスト及びシステムパフォーマンスの要件に従ってさまざまな所定のメモリサイズに設定することのできる可変サイズブロックバッファ240からのバッファリングされたピクセルデータ242に対して、ピクセルデータの再配置し、不要なデータの削除、クロマピクセルデータ形式に従ったストリーム化などのデータ整列を施すことができる。
(実施の形態3)
実施の形態3は、動き補償装置の詳細な実現形態を説明する。
図3は、本発明の実施の形態3に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図である。本実施の形態の動き補償装置101Bは、図1の動き補償装置101に代えて適用される。
図3において、動き補償装置101Bは、DMAコマンド生成器300と、バッファアドレス生成手段310と、設定可能シーケンサ320と、補間手段330と、可変サイズブロックバッファ340と、パディング手段350と、ワード整列(word-aligning)手段360と、クロマインターリーブ手段370とからなる8個のコンポーネントにより構成される。
DMAコマンド生成器300は、復号化パラメータ、DMA ACK、及びDMAバーストサイクルを受け取る入力端子を有し、DMA要求を生成し、DMA ACKを受け取り、DMA要求の数をカウントし、カウンタがDMAバーストサイクルの数に達した後にDMA完了を出力する。
バッファアドレス生成手段310は、復号化パラメータ、DMA入力データ、及びDMAバーストサイクルを受け取る入力端子を有し、復号化パラメータ及びDMAバーストサイクルに従ってブロックバッファアドレスを導き、DMA入力データを参照ピクセルデータ入力端子を通じてパディング手段350に転送する。
設定可能シーケンサ320は、復号化パラメータ、演算処理レベルLc、最大バス占有時間、ブロックバッファサイズ制約、及び補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大バス占有時間によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを導き、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段330の動作を開始させる補間開始を生成する。
補間手段330は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン120−1,120−2,…,120−Nの1つに出力する。具体的には、補間手段330は、復号化パラメータ、補間開始、及び複数の再配置されたピクセルデータを受け取る入力端子を有し、バッファリングされたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する。
可変サイズブロックバッファ340は、参照ピクセルデータと、ブロックバッファアドレスをバッファアドレス生成手段310から受け取る入力端子を有し、再配置されたピクセルデータを、バッファアドレス生成手段によって生成されたブロックバッファアドレスに従って適切な位置に格納し、動き補償の演算処理のため、バッファリングされたピクセルデータを補間手段330に出力する。
パディング手段350は、復号化パラメータと、バッファリングされたピクセルデータを受け取る入力端子を有し、ビデオフレーム境界の外側に位置する参照ピクセルデータに対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータを生成し、参照ピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定する。
ワード整列手段360は、復号化パラメータと、パディングされたピクセルデータをパディング手段350から受け取る入力端子を有し、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータを生成し、パディングされたピクセルデータがワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定する。
クロマインターリーブ手段370は、復号化パラメータと、整列したピクセルデータをワード整列手段360から受け取る入力端子を有し、クロマインターリーブフラグが設定されている場合、インターリーブされているクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータを生成する。
以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
DMAコマンド生成器300は、メモリアクセス調停手段110(図1)に対してDMA要求302を生成し、メモリアクセス調停手段110(図1)からDMA ACK303を受け取り、DMA要求の数をカウントし、このカウンタがDMAバーストサイクル321の数に達した後にメモリアクセス調停手段110(図1)にDMA完了304を出力する。
バッファアドレス生成手段310は、復号化パラメータ301及びDMAバーストサイクル321に従ってブロックバッファアドレスを導き、メモリアクセス調停手段110(図1)からのDMA入力データ312を自身の参照ピクセルデータ端子341を通じて可変サイズブロックバッファ340内のメモリ位置に転送する。
設定可能シーケンサ320は、復号化パラメータ301によって指定されるビットストリーム特性と、最大バス占有時間325によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約326によって指定されるシステムリソースの制限とに従って、DMAバーストサイクル321を導く。設定可能シーケンサ320は、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段330の動作を開始させる補間開始323を生成する。
補間手段330は、再配置されたピクセルデータ352に所定の補間フィルタを適用することによって、複数個の補間されたデータ343を計算し、すべての補間されたデータを計算した後に補間完了324を生成し、補間されたデータ343を出力する。
可変サイズブロックバッファ340は、チャネル化されたDMA入力データを受け取り、それらをブロックバッファアドレスに従って適切な位置に格納し、動き補償処理のため、バッファリングされたピクセルデータ342を出力する。
パディング手段350は、ビデオフレーム境界の外側に位置するバッファリングされたピクセルデータ342に対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータ353を生成する。パディング手段350は、バッファリングされたピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータ301によって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックポジションもしくはブロックポジション又はその両方とに従って判定する。
ワード整列手段360は、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータ354を生成する。ワード整列手段360は、パディングされたピクセルデータ353がワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定する。
クロマインターリーブ手段370は、クロマインターリーブフラグが設定されている場合、2つのインターリーブされているクロミナンス成分を分割し、フレームバッファ150(図1)における設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータ352を生成する。
このように、本実施の形態によれば、動き補償装置101Bは、パディング手段350と、ワード整列手段360、及びクロマインターリーブ手段370を備え、可変サイズブロックバッファ340は、バッファリングされたピクセルデータ342をパディング手段350に供給する。動き補償装置101Bは、参照ピクセルデータを可変サイズブロックバッファ340に格納した後に、パディング処理、ワード整列処理、クロミナンス成分インターリーブ処理を設定することができ、DMAコントローラと演算処理ロジックとの間でシステムの複雑さをトレードオフすることができる。さらに、動き補償装置101Bは、パディング、ワード整列、及びクロミナンス成分のデインターリーブの実行をフレキシブルに設定することにより、DMAコントローラと演算処理ロジックとの間でシステムパフォーマンスのバランスをとることができる。
なお、本実施の形態では、参照ピクセルデータを可変サイズブロックバッファ340に格納した後に、パディング処理、ワード整列処理、及びクロミナンス成分インターリーブ処理を設定しているが、これら処理のうちの少なくとも1つを設定するものでもよい。
(実施の形態4)
実施の形態3は、参照ピクセルデータを可変サイズブロックバッファに格納した後に、パディング処理、ワード整列処理、及びクロミナンス成分インターリーブ処理を行っている。上記各処理は、参照ピクセルデータを可変サイズブロックバッファに格納する前に行ってもよい。実施の形態4は、参照ピクセルデータを可変サイズブロックバッファに格納する前に行う例である。
図4は、本発明の実施の形態4に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図である。本実施の形態の動き補償装置101Cは、図1の動き補償装置101に代えて適用される。
図4において、動き補償装置101Cは、DMAコマンド生成器400と、バッファアドレス生成手段410と、設定可能シーケンサ420と、補間手段430と、可変サイズブロックバッファ440と、パディング手段450と、ワード整列手段460と、クロマインターリーブ手段470とからなる8個のコンポーネントにより構成される。
DMAコマンド生成器400は、復号化パラメータ、DMA ACK、及びDMAバーストサイクルを受け取る入力端子を有し、DMA要求を生成し、DMA ACKを受け取り、DMA要求の数をカウントし、カウンタがDMAバーストサイクルの数に達した後にDMA完了を出力する。
バッファアドレス生成手段410は、復号化パラメータ、DMA入力データ、及びDMAバーストサイクルを有し、復号化パラメータ及びDMAバーストサイクルに従ってブロックバッファアドレスを導き、DMA入力データを参照ピクセルデータ端子を通じて可変サイズブロックバッファ内のメモリ位置に転送する。
設定可能シーケンサ420は、復号化パラメータ、演算処理レベルLc、最大バス占有時間、ブロックバッファサイズ制約、及び補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大バス占有時間によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを割当てるとともに、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段430の動作を開始させる補間開始を生成する。
補間手段430は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン120−1,120−2,…,120−Nの1つに出力する。具体的には、補間手段430は、復号化パラメータ、補間開始、及び複数のバッファリングされたピクセルデータを受け取る入力端子を有し、バッファリングされたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する。
可変サイズブロックバッファ440は、再配置されたピクセルデータ441を受け取るピクセルデータ端子を有し、再配置されたピクセルデータ441を、ブロックバッファアドレスに従って適切な位置に格納し、動き補償処理のため、バッファリングされたピクセルデータを出力する。
パディング手段450は、復号化パラメータと、バッファリングされたピクセルデータを受け取る入力端子とを有し、ビデオフレーム境界の外側に位置するバッファリングされたピクセルデータに対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータを生成し、バッファリングされたピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定する。
ワード整列手段460は、復号化パラメータと、パディングされたピクセルデータをパディング手段450から受け取る入力端子を有し、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータを生成し、パディングされたピクセルデータがワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定する。
クロマインターリーブ手段470は、復号化パラメータと、整列したピクセルデータをワード整列手段から受け取る入力端子を有し、クロマインターリーブフラグが設定されている場合、インターリーブされているクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータを生成する。
以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
DMAコマンド生成器400は、メモリアクセス調停手段110(図1)に対してDMA要求402を生成し、メモリアクセス調停手段110(図1)からDMA ACK403を受け取り、DMA要求の数をカウントし、このカウンタがDMAバーストサイクル421の数に達した後にメモリアクセス調停手段110(図1)にDMA完了404を出力する。
バッファアドレス生成手段410は、復号化パラメータ401及びDMAバーストサイクル421に従ってブロックバッファアドレスを導き、メモリアクセス調停手段110(図1)からのDMA入力データ412をバッファリングされたピクセルデータ452としてパディング手段450に参照ピクセルデータ入力端子を通じて転送する。
設定可能シーケンサ420は、復号化パラメータによって指定されるビットストリーム特性と、最大バス占有時間425によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約426によって指定されるシステムリソースの制限とに従って、DMAバーストサイクル421を導く。設定可能シーケンサ420は、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段430の動作を開始させる補間開始423を生成する。
補間手段430は、バッファリングされたピクセルデータ442に所定の補間フィルタを適用することによって、複数個の補間されたデータ443を計算し、すべての補間されたデータを計算した後に補間完了424を生成し、これらの補間されたデータ443を出力する。
可変サイズブロックバッファ440は、バッファアドレス生成手段410によって生成されるブロックバッファアドレスに従って、再配置されたピクセルデータ441を適切な位置に格納し、動き補償の演算処理のため、バッファリングされたピクセルデータ442を補間手段430に出力する。
パディング手段450は、バッファリングされたピクセルデータ452がビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定する。
ワード整列手段460は、パディングされたピクセルデータ453がワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定する。
クロマインターリーブ手段470は、クロマインターリーブフラグが設定されている場合、2つのインターリーブされているクロミナンス成分を分割し、フレームバッファ150(図1)における設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータ441を生成する。
図5は、上記動き補償装置101CのDMAコマンド生成器400の動作を示すフローチャートである。図中、Sはフローの各ステップを示す。
まず、ステップS1でDMAコマンド生成器400はDMAバーストサイクルNd=0に設定する。
次いで、ステップS2でDMAコマンド生成器400は最大DMAバーストサイクルNmaxを生成し、DMAコマンドの実際の数にNaを割り当てる。
ステップS3では、DMAコマンド生成器400はメモリアクセス調停手段110(図1)に対してDMA要求402を発行する。
ステップS4では、DMAコマンド生成器400はメモリアクセス調停手段110(図1)からのDMA ACK403を待つ。
ステップS5では、DMAコマンド生成器400はDMA ACK403を受け取ったか否かを判別し、DMA ACK403を受け取った場合はステップS6に進み、DMA ACK403を受け取っていない場合は上記ステップS4に戻る。
ステップS6では、DMAコマンド生成器400はDMAコマンドをメモリアクセス調停手段110(図1)に送り、Nd=Nd+1に設定する。
ステップS7では、DMAコマンド生成器400はNdがNmaxに等しいか否かを判別し、NdがNmaxに等しい場合はステップS8に進み、NdがNmaxに等しくない場合はステップS10に進む。
ステップS8では、DMAコマンド生成器400はデータを処理し、ステップS9でNa=Na−Nmaxに設定して上記ステップS3に戻る。このデータ処理の詳細については、図6により後述する。
ステップS10では、DMAコマンド生成器400はNdがNaに等しいか否かを判別する。
NdがNaに等しい場合は、ステップS11でDMAコマンド生成器400はデータを処理してステップS12に進む。NdがNaに等しくない場合は、上記ステップS6に戻る。
ステップS12では、DMAコマンド生成器400はすべてのDMAバーストについて処理が行われたかを判別する。すべてのDMAバーストについて処理が行われた場合は、本フローを終了し、すべてのDMAバーストについて処理が行われていなければ上記ステップS2に戻ってすべてのDMAバーストについて処理が終わるまで上記処理を繰り返す。
図6は、図5のデータ処理ステップの動作を示すフローチャートである。本フローは、図5のステップS8及びステップS11の詳細フローである。
図5のステップS8又はステップS11でNdが入力されると、ステップS21で補間手段430は補間開始フラグを待つ。
ステップS22では、補間手段430は補間開始フラグを受け取ったか否かを判別する。補間開始フラグを受け取っていない場合は、上記ステップS21に戻って補間開始フラグを待つ。
補間開始フラグを受け取った場合は、ステップS23で補間手段430は可変サイズブロックバッファ440内のデータが演算処理レベルLcに対して十分か否かを判別する。
可変サイズブロックバッファ440内に演算処理レベルLcに対する十分なデータが存在している場合は、ステップS24で補間手段430は所定の補間フィルタを使用してピクセル補間を計算する。可変サイズブロックバッファ440内に演算処理レベルLcに対する十分なデータが存在していない場合は、図5のステップS8又はステップS11に戻る。
ステップS25では、補間手段430は補間完了フラグを生成し、Nd=0に設定して図5のステップS8又はステップS11に戻る。
このように、本実施の形態によれば、動き補償装置101Cは、パディング手段450と、ワード整列手段460、及びクロマインターリーブ手段470を備え、可変サイズブロックバッファ440は、クロマインターリーブ手段470により再配列されたピクセルデータ441を入力し、バッファリングされたピクセルデータ442を補間手段430に出力する。動き補償装置101Cは、参照ピクセルデータを可変サイズブロックバッファ440に格納する前に、パディング処理、ワード整列処理、クロミナンス成分インターリーブ処理を設定することができ、DMAコントローラと演算処理ロジックとの間でシステムの複雑さをトレードオフすることができる。さらに、動き補償装置101Cは、パディング、ワード整列、及びクロミナンス成分のデインターリーブの実行をフレキシブルに設定することにより、DMAコントローラと演算処理ロジックとの間でシステムパフォーマンスのバランスをとることができる。
(実施の形態5)
図7は、本発明の実施の形態5に係るビデオ符号化・復号化装置の構成を示す図である。図1と同一構成部分には同一番号を付して重複箇所の説明を省略する。
図7において、ビデオ符号化・復号化装置500は、動き補償装置501と、メモリアクセス調停手段510と、N個のビデオデコーダエンジン120−1,120−2,…,120−Nと、フレームバッファ150とを備えて構成される。
動き補償装置501は、ダイレクトメモリアクセス手段560、可変サイズブロックバッファ570、補間手段580、及び選択器590を備え、パフォーマンス及びメモリサイズをフレキシブルに設定できるように設計されている。
動き補償装置501は、動き補償の結果を、補間出力592端子を通じて別のビデオデコーダエンジンに出力する、又は、メモリアクセス調停手段510に接続されているDMA出力データポートを通じてフレームバッファ150に出力するように設定することができる。
ダイレクトメモリアクセス手段560は、補間完了を受け取った後にDMA要求を生成し、DMA ACKを受け取った後、最大DMAバースト制約及びブロックバッファサイズ制約に従って複数個のDMA入力データを受け取り、参照ピクセルデータを出力し、複数個のDMA入力データを受け取った後、DMA完了を生成し、次いで、補間開始を生成し、バッファリングされた補間データを受け取り、それらを、所定のダイレクトメモリアクセスプロトコルに従うことによってDMA出力データ端子を通じてメモリアクセス調停手段510に送り、参照ピクセルデータを可変サイズブロックバッファに格納するためと、バッファリングされた補間データを可変サイズブロックバッファ570から取得するためのアドレスを、復号化パラメータと演算処理レベルLcと最大DMAバースト制約とブロックバッファサイズ制約とに従って生成する。
可変サイズブロックバッファ570は、参照ピクセルデータ、及び選択された補間データ591を受け取る入力端子を有し、フレームバッファ150からダイレクトメモリアクセスを通じて取得される参照ピクセルデータを格納し、バッファリングされたピクセルデータを補間手段580に提供し、選択された補間データを格納し、バッファリングされた補間データをダイレクトメモリアクセス手段560に提供する。
選択器590は、補間されたデータを受け取る入力端子を有し、復号化パラメータによって制御され、ビデオデコーダエンジンのうちの1つに補間出力を提供するため補間されたデータを動き補償装置の出力端子に出力する、又は、選択された補間データを提供するため補間されたデータを可変サイズブロックバッファ570に出力する。
以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
動き補償装置501は、復号化パラメータ561と、演算処理レベルLC562と、最大DMAバースト制約563と、ブロックバッファサイズ制約564とに従って、DMA要求511を発行する。動き補償装置501は、DMA ACK512を受け取った後、複数個のDMA入力データ514を受け取り、次いで、DMA完了515を発行する。動き補償装置501は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを、自身の補間出力592端子を通じてビデオデコーダエンジン120−1,120−2,…,120−Nのうちの1つに出力する、又は、補間されたデータを、DMA出力データ513ポートを通じてDMAを使用してメモリアクセス調停手段510に出力する。
メモリアクセス調停手段510は、動き補償装置からDMA要求511を受け取る。メモリアクセス調停手段510はまた、複数個のビデオデコーダエンジン120−1,120−2,…,120−NからそれぞれエンジンDMAバス516,517,518を通じてDMA要求を受け取り、DMA要求を優先順位付けし、DMA ACK512を、所定のDMA優先度リストに従って動き補償装置501及び複数個のビデオデコーダエンジン120−1,120−2,…,120−Nに送る。そして、メモリアクセス調停手段510は、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを動き補償装置501に提供し、DMA出力データ513を動き補償装置501から受け取り、メインDMAバス151を通じて、フレームバッファ150からデータを読み取る、及びフレームバッファにデータを書き込む。
複数個のビデオデコーダエンジン120−1,120−2,…,120−Nは、それぞれエンジンDMAバス516,517,518を通じてメモリアクセス調停手段510に接続されている。フレームバッファ150は、メインDMAバス151を通じてメモリアクセス調停手段510に接続されている。
ダイレクトメモリアクセス手段560は、DMA ACK512を受け取った後、最大DMAバースト制約563及びブロックバッファサイズ制約564に従って、複数個のDMA入力データ514を受け取り、参照ピクセルデータを出力する。ダイレクトメモリアクセス手段560は、複数個のDMA入力データ514を受け取った後、DMA完了515を生成し、次いで、補間開始582を生成する。ダイレクトメモリアクセス手段560は、バッファリングされた補間データ574を受け取り、所定のダイレクトメモリアクセスプロトコルに従うことによって、それらを自身のDMA出力データ513端子を通じてメモリアクセス調停手段510に送る。ダイレクトメモリアクセス手段560は、復号化パラメータ561と、演算処理レベルLc562と、最大DMAバースト制約563と、ブロックバッファサイズ制約564とに従って、参照ピクセルデータを格納するためのブロックバッファアドレスを生成し、バッファリングされた補間データ574を可変サイズブロックバッファ570から取得する。
可変サイズブロックバッファ570は、外部のフレームバッファ150からダイレクトメモリアクセスを通じて取得した参照ピクセル571を格納し、バッファリングされたピクセルデータ572を補間手段580に提供する。可変サイズブロックバッファ570は、選択された補間データ591を格納し、バッファリングされた補間データ574をダイレクトメモリアクセス手段560に提供する。
補間手段580は、バッファリングされたピクセルデータ572に所定の補間フィルタを適用することによって複数個の補間されたデータを計算して出力し、すべての補間されたデータ583を計算した後、補間完了581を生成する。
選択器590は、復号化パラメータ561によって制御され、ビデオデコーダエンジンのうちの1つに補間出力592を提供するため補間されたデータ583を動き補償装置501の出力端子に出力する、又は、選択された補間データ591を提供するため補間されたデータ583を可変サイズブロックバッファ570に出力する。
このように、本実施の形態によれば、動き補償装置501は、補間されたデータ583を動き補償装置501の出力端子に出力する、又は可変サイズブロックバッファ570に出力するかを選択する選択器590を備えているので、以下の効果を得ることができる。
例えば、動き補償の後に次の処理が要求される一連のビデオコーデック(例えば、H.264ビデオコーデック)用のパイプライン構成において、動き補償の後のさらなる処理のため、動き補償装置501の演算処理の結果を別のビデオデコーダエンジンに送る、又は、動き補償の後、復号化ループに次の処理が存在しない別の一連のビデオコーデック(例えば、MPEG4ビデオコーデック)の場合、DMAアクセスを通じて外部のフレームバッファ150に出力されるように動き補償装置501の中のブロックバッファにバッファリングしておくなどの選択が可能になる。
(実施の形態6)
図8は、本発明の実施の形態6に係るビデオ符号化・復号化装置の構成を示す図である。図7と同一構成部分には同一番号を付して重複箇所の説明を省略する。
図8において、ビデオ符号化・復号化装置600は、動き補償装置501と、メモリアクセス調停手段610と、システムパフォーマンス制御手段620、N個のビデオデコーダエンジン120−1,120−2,…,120−Nと、フレームバッファ150とを備えて構成される。
動き補償装置501は、動き補償の結果を、補間出力592端子を通じて別のビデオデコーダエンジンに出力する、又は、メモリアクセス調停手段610に接続されているDMA出力データポートを通じてフレームバッファ150に出力するように設定することができる。
メモリアクセス調停手段610は、動き補償装置501からDMA要求を受け取り、かつ複数のビデオデコーダエンジン120−1,120−2,…,120−NからDMA要求を、エンジンDMAバス116〜118を通じて受け取り、DMA要求を優先順位付けし、DMA ACKを所定のDMA優先度リストに従って動き補償装置501及び複数のビデオデコーダエンジン120−1,120−2,…,120−Nに送り、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを動き補償装置501に提供し、DMA出力データを動き補償装置501から受け取り、メインDMAバス151を通じて、フレームバッファ150からデータを読み取る、及びフレームバッファ150にデータを書き込み、動き補償装置501及びエンジンDMAバスからのDMA要求のメモリアクセスステータスを監視し、DMAバスステータスを生成する。
システムパフォーマンス制御手段620は、メモリアクセス調停手段610からのDMAバスステータスを受け取る入力端子を有し、メモリアクセス調停手段610に接続されている動き補償装置501及びエンジンDMAバスからのDMA要求の詳細な使用状況を含んでいるDMAバスステータスに基づいて、演算処理レベルLc及び最大DMAバースト制約を動的に変える。
以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
動き補償装置501は、復号化パラメータ561と、演算処理レベルLc562と、最大DMAバースト制約563と、ブロックバッファサイズ制約564とに従って、DMA要求511を発行する。動き補償装置501は、DMA ACK512を受け取った後、複数個のDMA入力データ514を受け取り、次いで、DMA完了515を発行する。動き補償装置501は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを、自身の補間出力592端子を通じてビデオデコーダエンジン120−1,120−2,…,120−Nのうちの1つに出力する、又は、補間されたデータを、DMA出力データ513ポートを通じてDMAを使用してメモリアクセス調停手段610に出力する。
メモリアクセス調停手段610は、動き補償装置501からDMA要求511を受け取る。メモリアクセス調停手段610はまた、複数個のビデオデコーダエンジン120−1,120−2,…,120−NからそれぞれエンジンDMAバス116〜118を通じてDMA要求を受け取り、DMA要求を優先順位付けし、DMA ACK512を、所定のDMA優先度リストに従って動き補償装置501及び複数個のビデオデコーダエンジン120−1,120−2,…,120−Nに送る。そして、メモリアクセス調停手段610は、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを動き補償装置501に提供し、DMA出力データ513を動き補償装置501から受け取り、メインDMAバス151を通じて、フレームバッファ150からデータを読み取る、及びフレームバッファ150にデータを書き込む。その後、メモリアクセス調停手段610は、動き補償装置501及びエンジンDMAバスからのDMA要求511のメモリアクセスステータスを監視し、DMAバスステータス611を生成する。
システムパフォーマンス制御手段620は、メモリアクセス調停手段610に接続されている動き補償装置501及びエンジンDMAバス116〜118からのDMA要求の詳細な使用状況を含んでいるDMAバスステータス611に基づいて、演算処理レベルLc561及び最大DMAバースト制約563を動的に導く。
複数個のビデオデコーダエンジン120−1,120−2,…,120−Nは、それぞれエンジンDMAバス116〜118を通じてメモリアクセス調停手段610に接続されている。フレームバッファ150は、メインDMAバス151を通じてメモリアクセス調停手段510に接続されている。
ダイレクトメモリアクセス手段560は、DMA ACK512を受け取った後、最大DMAバースト制約563及びブロックバッファサイズ制約564に従って、複数個のDMA入力データ514を受け取り、参照ピクセルデータを出力する。ダイレクトメモリアクセス手段560は、複数個のDMA入力データ514を受け取った後、DMA完了515を生成し、次いで、補間開始582を生成する。ダイレクトメモリアクセス手段560は、バッファリングされた補間データ574を受け取り、所定のダイレクトメモリアクセスプロトコルに従うことによって、それらを自身のDMA出力データ513端子を通じてメモリアクセス調停手段610に送る。ダイレクトメモリアクセス手段560は、参照ピクセルデータを格納するためと、バッファリングされた補間データ574を可変サイズブロックバッファ570から取得するためのブロックバッファアドレスを、復号化パラメータと、演算処理レベルLc562と、最大DMAバースト制約563と、ブロックバッファサイズ制約564とに従って生成する。
可変サイズブロックバッファ570は、外部のフレームバッファ150からダイレクトメモリアクセスを通じて取得した参照ピクセルデータ571を格納し、バッファリングされたピクセルデータ572を補間手段580に提供する。可変サイズブロックバッファ570は、選択された補間データを格納し、バッファリングされた補間データ574をダイレクトメモリアクセス手段560に提供する。
補間手段580は、バッファリングされたピクセルデータ572に所定の補間フィルタを適用することによって、複数個の補間されたデータを計算して出力し、すべての補間されたデータ583を計算した後、補間完了581を生成する。
選択器590は、復号化パラメータによって制御され、ビデオデコーダエンジンのうちの1つに補間出力592を提供するため補間されたデータ583を動き補償装置501の出力端子に出力する、又は、選択された補間データ591を提供するため補間されたデータ583を可変サイズブロックバッファ570に出力する。
このように、本実施の形態によれば、ビデオ符号化・復号化装置600は、システムパフォーマンス制御手段620が、動き補償装置501及びエンジンDMAバスからのDMA要求の詳細な使用状況を含んでいるDMAバスステータスに基づいて、演算処理レベルLc及び最大DMAバースト制約を動的に導くので、システムパフォーマンスを事前定義する、又は、動き補償装置に適用される指定されるシステムパフォーマンス制約、あるいはDMAバスのトラフィックの動的な状況に基づいて、小さなサイズの複数個のDMA要求を組み合わせる、あるいは大きなDMAバーストアクセスを小さなサイズの複数個のDMA要求に分割することができる。これにより、システムパフォーマンスを自動的に設定することができ、演算処理レベルLcを、演算処理ロジックの複雑さに従って事前定義する、又は、DMAバスのトラフィックの状況に従って動的に導くことができる。その結果、参照ピクセルデータを格納するためのオンチップメモリのサイズを、動き補償装置501に適用されるシステムリソース制約に従って設定することができる。DMA要求のサイズ及び演算処理レベルLcを動的に設定することによって、システムは、システム全体の処理スループットをリアルタイムで最適化して、動き補償装置501とそれ以外のビデオデコーダエンジンとの間でパフォーマンスのバランスをとることができる。
以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。
また、本実施の形態では、ビデオ符号化・復号化装置という名称を用いたが、これは説明の便宜上であり、復号化装置、デジタルビデオ復号化システム等であってもよいことは勿論である。
さらに、上記ビデオ符号化・復号化装置を構成する動き補償装置、ビデオデコーダエンジン、バッファの種類、その数及び接続方法などの構成例などは前述した各実施の形態に限られない。
本発明に係るビデオ符号化・復号化装置は、高いスループットのビデオ符号化・復号化を実行する装置に好適である。また、ビデオ符号化・復号化と、電子システム内の複数のコンポーネントとが外部メモリの使用を共有し、ビデオ符号化・復号化を実行する電子システムに適用可能である。例えば、外部メモリへの頻繁なアクセスを必要とする高度なビデオ規格(H.264/AVC、SMPTE VC1、China AVSなど)においてリアルタイムでのビデオ復号化を達成することができる。また、電子デバイスのアクセラレータ用として、システムコストの所定の制限とシステムパフォーマンスの要件とを指定することによってさまざまなビデオエンコーダ及びビデオデコーダに統合される包括的な動き補償装置を提供することができる。さらに、デジタルビデオエンコーダ及びデコーダにおいて使用するための動き補償装置に適用可能である。
本発明の実施の形態1に係るビデオ符号化・復号化装置の構成を示すブロック図 本発明の実施の形態2に係るビデオ符号化・復号化装置の補償装置の詳細な構成を示す図 本発明の実施の形態3に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図 本発明の実施の形態4に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図 上記実施の形態4に係るビデオ符号化・復号化装置の動き補償装置のDMAコマンド生成器の動作を示すフロー図 上記実施の形態4に係るビデオ符号化・復号化装置の動き補償装置のDMAコマンド生成器の動作を示すフロー図 本発明の実施の形態5に係るビデオ符号化・復号化装置の構成を示すブロック図 本発明の実施の形態6に係るビデオ符号化・復号化装置の構成を示すブロック図
符号の説明
100,500,600 ビデオ符号化・復号化装置
101,101A,101B,101C,501 動き補償装置
110,510,610 メモリアクセス調停手段
120−1,120−2,…,120−N ビデオデコーダエンジン
150 フレームバッファ
160,560 ダイレクトメモリアクセス手段
170,240,340,440,570 可変サイズブロックバッファ
180,580 補間手段
200,300,400 DMAコマンド生成器
210,310,410 バッファアドレス生成手段
220,320,420 設定可能シーケンサ
230,330,430 補間手段
250 データ整列手段
350 パディング手段
360,460 ワード整列手段
370,470 クロマインターリーブ手段
590 選択器
620 システムパフォーマンス制御手段

Claims (8)

  1. 動き補償を用いる動き補償装置を備えるビデオ符号化・復号化装置であって、
    複数のビデオデコーダエンジンと、前記複数のビデオデコーダエンジンに接続されている複数のエンジンDMAバスと、
    フレームバッファと、前記フレームバッファに接続されているメインDMAバスと、
    復号化パラメータ、演算処理レベルLc、最大DMAバースト制約、及びブロックバッファサイズ制約に従って、DMA要求を発行し、DMA ACKを受け取った後に複数個のDMA入力データを受け取り、DMA完了を発行し、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを前記複数のビデオデコーダエンジンの1つに出力する動き補償装置と、
    前記動き補償装置からDMA要求を受け取り、かつ前記複数のビデオデコーダエンジンからDMA要求を前記エンジンDMAバスを通じて受け取り、DMA要求を優先順位付けし、DMA ACKを所定のDMA優先度リストに従って前記動き補償装置及び前記複数のビデオデコーダエンジンに送り、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを前記動き補償装置に提供し、前記メインDMAバスを通じて、前記フレームバッファからデータを読み取る、及び前記フレームバッファにデータを書き込むメモリアクセス調停手段と、
    を備えるビデオ符号化・復号化装置。
  2. 前記動き補償装置は、
    補間手段から補間完了を受け取った後にDMA要求を生成し、前記メモリアクセス調停手段からDMA ACKを受け取った後、最大DMAバースト制約及びブロックバッファサイズ制約に従って複数個のDMA入力データを受け取り、復号化パラメータと演算処理レベルLcと最大DMAバースト制約とブロックバッファサイズ制約とに従って、参照ピクセルデータを可変サイズブロックバッファに格納するためのブロックメモリアドレスを生成するとともに、参照ピクセルデータを可変サイズブロックバッファに出力し、前記メモリアクセス調停手段から複数個のDMA入力データを受け取った後、DMA完了を生成し、補間開始を生成するダイレクトメモリアクセス手段と、
    復号化パラメータ、補間開始、及び複数のバッファリングされたピクセルデータを受け取る入力端子を有し、複数のバッファリングされたピクセルデータに所定の補間フィルタを適用することによって複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成する補間手段と、
    前記フレームバッファからダイレクトメモリアクセスを通じて取得される参照ピクセルデータを格納し、バッファリングされたピクセルデータを前記補間手段に提供する可変サイズブロックバッファと、
    を備えるビデオ符号化・復号化装置。
  3. 前記動き補償装置は、
    復号化パラメータ、DMA ACK、及びDMAバーストサイクルを受け取る入力端子を有し、DMA要求を生成し、DMA ACKを受け取り、DMA要求の数をカウントし、カウンタがDMAバーストサイクルの数に達した後にDMA完了を出力するDMAコマンド生成器と、
    復号化パラメータ、DMA入力データ、及びDMAバーストサイクルを受け取る入力端子を有し、復号化パラメータ及びDMAバーストサイクルに従ってブロックバッファアドレスを導き、DMA入力データを参照ピクセルデータ端子を通じて可変サイズブロックバッファ内のメモリ位置に転送するバッファアドレス生成手段と、
    チャネル化されたDMA入力データを受け取る参照ピクセルデータ端子を有し、チャネル化されたDMA入力データを、ブロックバッファアドレスに従って所定位置に格納し、動き補償処理のためにバッファリングされたピクセルデータを出力する可変サイズブロックバッファと、
    復号化パラメータ、クロマインターリーブフラグ、バッファリングされたピクセルデータを受け取る入力端子を有し、復号化パラメータの一部としての動きベクトルによって示されるビデオフレーム内の位置と、前記フレームバッファにおけるクロミナンスデータ形式を示すクロマインターリーブフラグとに従って、バッファリングされたピクセルデータを再配置し、フレーム境界ピクセルをパディングすることによって、再配置されたピクセルデータを提供し、ワード境界再配置によって不要なデータを削除し、クロマインターリーブフラグが設定されている場合、インターリーブされたクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化するデータ整列手段と、
    復号化パラメータ、補間開始、及び複数の再配置されたピクセルデータを受け取る入力端子を有し、再配置されたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する補間手段と、
    復号化パラメータ、演算処理レベルLc、最大DMAバースト制約、ブロックバッファサイズ制約、補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大DMAバースト制約によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを割当てるとともに、前記システムパフォーマンス及び前記リソースの制限に従って動的に設定される時点において、前記補間手段の動作を開始させる補間開始を生成する設定可能シーケンサと、
    を備える請求項1記載のビデオ符号化・復号化装置。
  4. 前記動き補償装置は、
    復号化パラメータ、DMA ACK、及びDMAバーストサイクルを受け取る入力端子を有し、DMA要求を生成し、DMA ACKを受け取り、DMA要求の数をカウントし、カウンタがDMAバーストサイクルの数に達した後にDMA完了を出力するDMAコマンド生成器と、
    復号化パラメータ、DMA入力データ、及びDMAバーストサイクルを受け取る入力端子を有し、復号化パラメータ及びDMAバーストサイクルに従ってブロックバッファアドレスを導き、DMA入力データを参照ピクセルデータ入力端子を通じてパディング手段に転送するバッファアドレス生成手段と、
    再配置されたピクセルデータと、ブロックバッファアドレスをバッファアドレス生成手段から受け取る入力端子を有し、再配置されたピクセルデータを、バッファアドレス生成手段によって生成されたブロックバッファアドレスに従って適切な位置に格納し、動き補償の演算処理のため、バッファリングされたピクセルデータを補間手段に出力する可変サイズブロックバッファと、
    復号化パラメータと、参照ピクセルデータを前記バッファアドレス生成手段から受け取る入力端子を有し、ビデオフレーム境界の外側に位置する参照ピクセルデータに対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータを生成し、前記参照ピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定するパディング手段と、
    復号化パラメータと、パディングされたピクセルデータを前記パディング手段から受け取る入力端子を有し、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータを生成し、パディングされたピクセルデータがワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定するワード整列手段と、
    復号化パラメータと、整列したピクセルデータを前記ワード整列手段から受け取る入力端子を有し、クロマインターリーブフラグが設定されている場合、インターリーブされているクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータを生成するクロマインターリーブ手段と、
    復号化パラメータ、補間開始、及び複数のバッファリングされたピクセルデータを受け取る入力端子を有し、バッファリングされたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する補間手段と、
    復号化パラメータ、演算処理レベルLc、最大DMAバースト制約、ブロックバッファサイズ制約、及び補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大DMAバースト制約によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを割当てるとともに、前記システムパフォーマンス及び前記リソースの制限に従って動的に設定される時点において、前記補間手段の動作を開始させる補間開始を生成する設定可能シーケンサと、
    を備える請求項1記載のビデオ符号化・復号化装置。
  5. 前記動き補償装置は、
    復号化パラメータ、DMA ACK、及びDMAバーストサイクルを受け取る入力端子を有し、DMA要求を生成し、DMA ACKを受け取り、DMA要求の数をカウントし、カウンタがDMAバーストサイクルの数に達した後にDMA完了を出力するDMAコマンド生成器と、
    復号化パラメータ、DMA入力データ、及びDMAバーストサイクルを有し、復号化パラメータ及びDMAバーストサイクルに従ってブロックバッファアドレスを導き、DMA入力データを参照ピクセルデータ端子を通じて可変サイズブロックバッファ内のメモリ位置に転送するバッファアドレス生成手段と、
    チャネル化されたDMA入力データを受け取る参照ピクセルデータ端子を有し、チャネル化されたDMA入力データを、ブロックバッファアドレスに従って適切な位置に格納し、動き補償処理のため、バッファリングされたピクセルデータを出力する可変サイズブロックバッファと、
    復号化パラメータと、バッファリングされたピクセルデータを前記可変サイズブロックバッファから受け取る入力端子とを有し、ビデオフレーム境界の外側に位置するバッファリングされたピクセルデータに対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータを生成し、バッファリングされたピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定するパディング手段と、
    復号化パラメータと、パディングされたピクセルデータを前記パディング手段から受け取る入力端子を有し、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータを生成し、パディングされたピクセルデータがワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定するワード整列手段と、
    復号化パラメータと、整列したピクセルデータを前記ワード整列手段から受け取る入力端子を有し、クロマインターリーブフラグが設定されている場合、インターリーブされているクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータを生成するクロマインターリーブ手段と、
    復号化パラメータ、補間開始、及び複数の再配置されたピクセルデータを受け取る入力端子を有し、再配置されたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する補間手段と、
    復号化パラメータ、演算処理レベルLc、最大DMAバースト制約、ブロックバッファサイズ制約、及び補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大DMAバースト制約によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、DMAバーストサイクルを割当てるとともに、前記システムパフォーマンス及び前記リソースの制限に従って動的に設定される時点において、前記補間手段の動作を開始させる補間開始を生成する設定可能シーケンサと、
    を備える請求項1記載のビデオ符号化・復号化装置。
  6. 前記動き補償装置は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを、補間出力端子を通じて前記ビデオデコーダエンジンの1つに出力する、又は、DMA出力データポートを通じてDMAを使用して前記メモリアクセス調停手段に出力し、
    前記メモリアクセス調停手段は、前記動き補償装置からDMA要求を受け取り、かつ前記複数のビデオデコーダエンジンからDMA要求を前記エンジンDMAバスを通じて受け取り、DMA要求を優先順位付けし、DMA ACKを所定のDMA優先度リストに従って前記動き補償装置及び前記複数のビデオデコーダエンジンに送り、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを前記動き補償装置に提供し、DMA出力データを前記動き補償装置から受け取り、前記メインDMAバスを通じて、前記フレームバッファからデータを読み取る、及び前記フレームバッファにデータを書き込む請求項1記載のビデオ符号化・復号化装置。
  7. 前記ダイレクトメモリアクセス手段は、補間完了を受け取った後にDMA要求を生成し、DMA ACKを受け取った後、最大DMAバースト制約及びブロックバッファサイズ制約に従って複数個のDMA入力データを受け取り、参照ピクセルデータを出力し、複数個のDMA入力データを受け取った後、DMA完了を生成し、補間開始を生成し、バッファリングされた補間データを受け取り、それらを、所定のダイレクトメモリアクセスプロトコルに従うことによってDMA出力データ端子を通じて前記メモリアクセス調停手段に送り、参照ピクセルデータを可変サイズブロックバッファに格納するためと、バッファリングされた補間データを可変サイズブロックバッファから取得するためのアドレスを、復号化パラメータと演算処理レベルLcと最大DMAバースト制約とブロックバッファサイズ制約とに従って生成し、
    さらに、復号化パラメータ、及び補間されたデータを受け取る入力端子を有し、復号化パラメータによって制御され、前記ビデオデコーダエンジンのうちの1つに補間出力を提供するため補間されたデータを前記動き補償装置の出力端子に出力する、又は、選択された補間データを提供するため補間されたデータを可変サイズブロックバッファに出力する選択器と、
    参照ピクセルデータ、及び選択されたデータを受け取る入力端子を有し、前記フレームバッファからダイレクトメモリアクセスを通じて取得される参照ピクセルデータを格納し、バッファリングされたピクセルデータを前記補間手段に提供し、選択された補間データを格納し、バッファリングされた補間データを前記ダイレクトメモリアクセス手段に提供する可変サイズブロックバッファと、
    を備える請求項1記載のビデオ符号化・復号化装置。
  8. 前記メモリアクセス調停手段は、前記動き補償装置からDMA要求を受け取り、かつ複数のビデオデコーダエンジンからDMA要求を前記エンジンDMAバスを通じて受け取り、DMA要求を優先順位付けし、DMA ACKを所定のDMA優先度リストに従って前記動き補償装置及び前記複数のビデオデコーダエンジンに送り、DMA入力データ及びDMA出力データをストリーム化し、DMA入力データを前記動き補償装置に提供し、DMA出力データを前記動き補償装置から受け取り、前記メインDMAバスを通じて、前記フレームバッファからデータを読み取る、及び前記フレームバッファにデータを書き込み、前記動き補償装置及び前記エンジンDMAバスからのDMA要求のメモリアクセスステータスを監視し、DMAバスステータスを生成し、
    さらに、前記メモリアクセス調停手段からのDMAバスステータス、及び復号化パラメータを受け取る入力端子を有し、前記メモリアクセス調停手段に接続されている前記動き補償装置及び前記エンジンDMAバスからのDMA要求の詳細な使用状況を含んでいるDMAバスステータスに基づいて、演算処理レベルLc及び最大DMAバースト制約を動的に変えるシステムパフォーマンス制御手段
    を備える請求項1記載のビデオ符号化・復号化装置。
JP2008119267A 2008-04-30 2008-04-30 ビデオ符号化・復号化装置 Pending JP2009272724A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008119267A JP2009272724A (ja) 2008-04-30 2008-04-30 ビデオ符号化・復号化装置
CN2009801148713A CN102017638A (zh) 2008-04-30 2009-04-22 视频编码/解码装置
PCT/JP2009/001850 WO2009133671A1 (ja) 2008-04-30 2009-04-22 ビデオ符号化・復号化装置
US12/937,159 US20110032995A1 (en) 2008-04-30 2009-04-22 Video encoding and decoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008119267A JP2009272724A (ja) 2008-04-30 2008-04-30 ビデオ符号化・復号化装置

Publications (1)

Publication Number Publication Date
JP2009272724A true JP2009272724A (ja) 2009-11-19

Family

ID=41254896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008119267A Pending JP2009272724A (ja) 2008-04-30 2008-04-30 ビデオ符号化・復号化装置

Country Status (4)

Country Link
US (1) US20110032995A1 (ja)
JP (1) JP2009272724A (ja)
CN (1) CN102017638A (ja)
WO (1) WO2009133671A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7924914B2 (en) * 2005-09-20 2011-04-12 Intel Corporation Dynamically configuring a video decoder cache for motion compensation
US9232233B2 (en) * 2011-07-01 2016-01-05 Apple Inc. Adaptive configuration of reference frame buffer based on camera and background motion
US8732352B1 (en) 2013-01-25 2014-05-20 Apple Inc. Dynamic allocation of buffers for direct memory access
CN104618717B (zh) * 2013-11-05 2018-01-16 瑞昱半导体股份有限公司 行与块的整合转换方法及其计算机可读取存储介质
US9367491B2 (en) * 2013-12-31 2016-06-14 Global Unichip, Corp. Method and apparatus for on-the-fly learning traffic control scheme
WO2016173032A1 (zh) * 2015-04-30 2016-11-03 华为技术有限公司 通信方法和装置
US9883194B2 (en) * 2015-06-15 2018-01-30 Microsoft Technology Licensing, Llc Multiple bit rate video decoding
CN105959622B (zh) * 2016-04-28 2019-05-28 浪潮(北京)电子信息产业有限公司 一种应用于多路视频采播系统的缓存仲裁方法及系统
CN117544785A (zh) * 2017-08-29 2024-02-09 株式会社Kt 视频解码和编码方法及用于存储压缩视频数据的装置
KR20210123300A (ko) 2019-02-02 2021-10-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 버퍼 관리
AU2020214083B2 (en) * 2019-02-02 2023-06-01 Beijing Bytedance Network Technology Co., Ltd. Buffer management for intra block copy in video coding
CN117395439A (zh) 2019-03-01 2024-01-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于方向的预测
CN117640927A (zh) 2019-03-04 2024-03-01 北京字节跳动网络技术有限公司 视频编解码中的帧内块复制中的实施方式方面
AU2020237079B2 (en) * 2019-03-12 2023-05-11 Tencent America LLC Method and apparatus for video encoding or decoding
CN114175645B (zh) 2019-07-06 2024-04-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的虚拟预测缓冲
CA3146391A1 (en) 2019-07-10 2021-01-14 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding
EP3981146A4 (en) 2019-07-11 2022-08-03 Beijing Bytedance Network Technology Co., Ltd. BITSTREAM CONFORMITY RESTRICTIONS FOR INTRA-BLOCK COPY IN VIDEO ENCODING
WO2021132158A1 (ja) * 2019-12-23 2021-07-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
US11622106B2 (en) * 2021-05-17 2023-04-04 Meta Platforms, Inc. Supporting multiple partition sizes using a unified pixel input data interface for fetching reference pixels in video encoders

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920352A (en) * 1994-10-28 1999-07-06 Matsushita Electric Industrial Co., Ltd. Image memory storage system and method for a block oriented image processing system
JPH10133997A (ja) * 1996-11-01 1998-05-22 Fuji Xerox Co Ltd Dma制御装置
GB9704027D0 (en) * 1997-02-26 1997-04-16 Discovision Ass Memory manager for mpeg decoder
US6215822B1 (en) * 1997-12-30 2001-04-10 Sony Corporation Motion compensated digital video decoding and buffer memory addressing therefor
US6778709B1 (en) * 1999-03-12 2004-08-17 Hewlett-Packard Development Company, L.P. Embedded block coding with optimized truncation
US7218842B1 (en) * 2001-07-25 2007-05-15 Cisco Technology, Inc. Efficient methods of performing motion compensation based decoding and recoding of compressed video bitstreams
US7253818B2 (en) * 2001-08-07 2007-08-07 Ati Technologies, Inc. System for testing multiple devices on a single system and method thereof
JP2007158550A (ja) * 2005-12-01 2007-06-21 Matsushita Electric Ind Co Ltd 画像処理装置及び画像処理方法
US7590473B2 (en) * 2006-02-16 2009-09-15 Intel Corporation Thermal management using an on-die thermal sensor
JP2007258882A (ja) * 2006-03-22 2007-10-04 Matsushita Electric Ind Co Ltd 画像復号装置
JP2007274383A (ja) * 2006-03-31 2007-10-18 Oki Electric Ind Co Ltd 画像処理用データ転送回路
JP2007304908A (ja) * 2006-05-12 2007-11-22 Sharp Corp データ転送処理装置

Also Published As

Publication number Publication date
US20110032995A1 (en) 2011-02-10
WO2009133671A1 (ja) 2009-11-05
CN102017638A (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
WO2009133671A1 (ja) ビデオ符号化・復号化装置
US7403564B2 (en) System and method for multiple channel video transcoding
US7773676B2 (en) Video decoding system with external memory rearranging on a field or frames basis
US8442107B2 (en) Memory mapping apparatus and method for video decoder/encoder
JP4909779B2 (ja) 画像データ転送方法、画像処理装置、及び撮像システム
JP2008288832A (ja) 情報処理装置および方法
JP2011077837A (ja) 画像処理装置
KR100298397B1 (ko) 비디오디코딩시스템
WO2014079303A1 (zh) 一种视频多画面合成方法、装置和系统
US20170365033A1 (en) Image processing device
JP2009267837A (ja) 復号化装置
JP2005251196A (ja) メモリインターフェースおよびデータ処理システム
US20070014367A1 (en) Extensible architecture for multi-standard variable length decoding
JP2008287460A (ja) 情報処理装置および方法
CN105472442A (zh) 一种用于超高清帧率上变换的片外缓存压缩系统
US10356439B2 (en) Flexible frame referencing for display transport
US20110099340A1 (en) Memory access control device and method thereof
US7675972B1 (en) System and method for multiple channel video transcoding
US20030123555A1 (en) Video decoding system and memory interface apparatus
TWI512675B (zh) 影像處理裝置與方法
JP2013543664A (ja) 広色域動画を取り込むための方法およびシステム
US10026149B2 (en) Image processing system and image processing method
KR20230022061A (ko) 디코딩 장치 및 그의 동작 방법
KR0180167B1 (ko) 영상부호화를 위한 프레임 재배열 장치
US20130287100A1 (en) Mechanism for facilitating cost-efficient and low-latency encoding of video streams