(57)【要約】【課題】限られたメモリリソースを用いてシステムパフォーマンスを最大にすることができるビデオ符号化・復号化装置を提供すること。【解決手段】ビデオ符号化・復号化装置１００は、動き補償装置１０１のダイレクトメモリアクセス手段１６０が、補間手段１８０から補間完了を受け取った後にＤＭＡ要求を生成し、メモリアクセス調停手段１１０からＤＭＡ ＡＣＫを受け取った後、最大ＤＭＡバースト制約及びブロックバッファサイズ制約に従って複数個のＤＭＡ入力データを受け取り、復号化パラメータと演算処理レベルＬｃと最大ＤＭＡバースト制約とブロックバッファサイズ制約とに従って、参照ピクセルデータを可変サイズブロックバッファ１７０に格納するためのブロックメモリアドレスを生成する。【選択図】図１
2009272724.tif 000002
【特許請求の範囲】
【請求項１】
動き補償を用いる動き補償装置を備えるビデオ符号化・復号化装置であって、
複数のビデオデコーダエンジンと、前記複数のビデオデコーダエンジンに接続されている複数のエンジンＤＭＡバスと、
フレームバッファと、前記フレームバッファに接続されているメインＤＭＡバスと、
復号化パラメータ、演算処理レベルＬｃ、最大ＤＭＡバースト制約、及びブロックバッファサイズ制約に従って、ＤＭＡ要求を発行し、ＤＭＡ ＡＣＫを受け取った後に複数個のＤＭＡ入力データを受け取り、ＤＭＡ完了を発行し、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを前記複数のビデオデコーダエンジンの１つに出力する動き補償装置と、
前記動き補償装置からＤＭＡ要求を受け取り、かつ前記複数のビデオデコーダエンジンからＤＭＡ要求を前記エンジンＤＭＡバスを通じて受け取り、ＤＭＡ要求を優先順位付けし、ＤＭＡ ＡＣＫを所定のＤＭＡ優先度リストに従って前記動き補償装置及び前記複数のビデオデコーダエンジンに送り、ＤＭＡ入力データ及びＤＭＡ出力データをストリーム化し、ＤＭＡ入力データを前記動き補償装置に提供し、前記メインＤＭＡバスを通じて、前記フレームバッファからデータを読み取る、及び前記フレームバッファにデータを書き込むメモリアクセス調停手段と、
を備えるビデオ符号化・復号化装置。
【請求項２】
前記動き補償装置は、
補間手段から補間完了を受け取った後にＤＭＡ要求を生成し、前記メモリアクセス調停手段からＤＭＡ ＡＣＫを受け取った後、最大ＤＭＡバースト制約及びブロックバッファサイズ制約に従って複数個のＤＭＡ入力データを受け取り、復号化パラメータと演算処理レベルＬｃと最大ＤＭＡバースト制約とブロックバッファサイズ制約とに従って、参照ピクセルデータを可変サイズブロックバッファに格納するためのブロックメモリアドレスを生成するとともに、参照ピクセルデータを可変サイズブロックバッファに出力し、前記メモリアクセス調停手段から複数個のＤＭＡ入力データを受け取った後、ＤＭＡ完了を生成し、補間開始を生成するダイレクトメモリアクセス手段と、
復号化パラメータ、補間開始、及び複数のバッファリングされたピクセルデータを受け取る入力端子を有し、複数のバッファリングされたピクセルデータに所定の補間フィルタを適用することによって複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成する補間手段と、
前記フレームバッファからダイレクトメモリアクセスを通じて取得される参照ピクセルデータを格納し、バッファリングされたピクセルデータを前記補間手段に提供する可変サイズブロックバッファと、
を備えるビデオ符号化・復号化装置。
【請求項３】
前記動き補償装置は、
復号化パラメータ、ＤＭＡ ＡＣＫ、及びＤＭＡバーストサイクルを受け取る入力端子を有し、ＤＭＡ要求を生成し、ＤＭＡ ＡＣＫを受け取り、ＤＭＡ要求の数をカウントし、カウンタがＤＭＡバーストサイクルの数に達した後にＤＭＡ完了を出力するＤＭＡコマンド生成器と、
復号化パラメータ、ＤＭＡ入力データ、及びＤＭＡバーストサイクルを受け取る入力端子を有し、復号化パラメータ及びＤＭＡバーストサイクルに従ってブロックバッファアドレスを導き、ＤＭＡ入力データを参照ピクセルデータ端子を通じて可変サイズブロックバッファ内のメモリ位置に転送するバッファアドレス生成手段と、
チャネル化されたＤＭＡ入力データを受け取る参照ピクセルデータ端子を有し、チャネル化されたＤＭＡ入力データを、ブロックバッファアドレスに従って所定位置に格納し、動き補償処理のためにバッファリングされたピクセルデータを出力する可変サイズブロックバッファと、
復号化パラメータ、クロマインターリーブフラグ、バッファリングされたピクセルデータを受け取る入力端子を有し、復号化パラメータの一部としての動きベクトルによって示されるビデオフレーム内の位置と、前記フレームバッファにおけるクロミナンスデータ形式を示すクロマインターリーブフラグとに従って、バッファリングされたピクセルデータを再配置し、フレーム境界ピクセルをパディングすることによって、再配置されたピクセルデータを提供し、ワード境界再配置によって不要なデータを削除し、クロマインターリーブフラグが設定されている場合、インターリーブされたクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化するデータ整列手段と、
復号化パラメータ、補間開始、及び複数の再配置されたピクセルデータを受け取る入力端子を有し、再配置されたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する補間手段と、
復号化パラメータ、演算処理レベルＬｃ、最大ＤＭＡバースト制約、ブロックバッファサイズ制約、補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大ＤＭＡバースト制約によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、ＤＭＡバーストサイクルを割当てるとともに、前記システムパフォーマンス及び前記リソースの制限に従って動的に設定される時点において、前記補間手段の動作を開始させる補間開始を生成する設定可能シーケンサと、
を備える請求項１記載のビデオ符号化・復号化装置。
【請求項４】
前記動き補償装置は、
復号化パラメータ、ＤＭＡ ＡＣＫ、及びＤＭＡバーストサイクルを受け取る入力端子を有し、ＤＭＡ要求を生成し、ＤＭＡ ＡＣＫを受け取り、ＤＭＡ要求の数をカウントし、カウンタがＤＭＡバーストサイクルの数に達した後にＤＭＡ完了を出力するＤＭＡコマンド生成器と、
復号化パラメータ、ＤＭＡ入力データ、及びＤＭＡバーストサイクルを受け取る入力端子を有し、復号化パラメータ及びＤＭＡバーストサイクルに従ってブロックバッファアドレスを導き、ＤＭＡ入力データを参照ピクセルデータ入力端子を通じてパディング手段に転送するバッファアドレス生成手段と、
再配置されたピクセルデータと、ブロックバッファアドレスをバッファアドレス生成手段から受け取る入力端子を有し、再配置されたピクセルデータを、バッファアドレス生成手段によって生成されたブロックバッファアドレスに従って適切な位置に格納し、動き補償の演算処理のため、バッファリングされたピクセルデータを補間手段に出力する可変サイズブロックバッファと、
復号化パラメータと、参照ピクセルデータを前記バッファアドレス生成手段から受け取る入力端子を有し、ビデオフレーム境界の外側に位置する参照ピクセルデータに対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータを生成し、前記参照ピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定するパディング手段と、
復号化パラメータと、パディングされたピクセルデータを前記パディング手段から受け取る入力端子を有し、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータを生成し、パディングされたピクセルデータがワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定するワード整列手段と、
復号化パラメータと、整列したピクセルデータを前記ワード整列手段から受け取る入力端子を有し、クロマインターリーブフラグが設定されている場合、インターリーブされているクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータを生成するクロマインターリーブ手段と、
復号化パラメータ、補間開始、及び複数のバッファリングされたピクセルデータを受け取る入力端子を有し、バッファリングされたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する補間手段と、
復号化パラメータ、演算処理レベルＬｃ、最大ＤＭＡバースト制約、ブロックバッファサイズ制約、及び補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大ＤＭＡバースト制約によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、ＤＭＡバーストサイクルを割当てるとともに、前記システムパフォーマンス及び前記リソースの制限に従って動的に設定される時点において、前記補間手段の動作を開始させる補間開始を生成する設定可能シーケンサと、
を備える請求項１記載のビデオ符号化・復号化装置。
【請求項５】
前記動き補償装置は、
復号化パラメータ、ＤＭＡ ＡＣＫ、及びＤＭＡバーストサイクルを受け取る入力端子を有し、ＤＭＡ要求を生成し、ＤＭＡ ＡＣＫを受け取り、ＤＭＡ要求の数をカウントし、カウンタがＤＭＡバーストサイクルの数に達した後にＤＭＡ完了を出力するＤＭＡコマンド生成器と、
復号化パラメータ、ＤＭＡ入力データ、及びＤＭＡバーストサイクルを有し、復号化パラメータ及びＤＭＡバーストサイクルに従ってブロックバッファアドレスを導き、ＤＭＡ入力データを参照ピクセルデータ端子を通じて可変サイズブロックバッファ内のメモリ位置に転送するバッファアドレス生成手段と、
チャネル化されたＤＭＡ入力データを受け取る参照ピクセルデータ端子を有し、チャネル化されたＤＭＡ入力データを、ブロックバッファアドレスに従って適切な位置に格納し、動き補償処理のため、バッファリングされたピクセルデータを出力する可変サイズブロックバッファと、
復号化パラメータと、バッファリングされたピクセルデータを前記可変サイズブロックバッファから受け取る入力端子とを有し、ビデオフレーム境界の外側に位置するバッファリングされたピクセルデータに対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータを生成し、バッファリングされたピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定するパディング手段と、
復号化パラメータと、パディングされたピクセルデータを前記パディング手段から受け取る入力端子を有し、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータを生成し、パディングされたピクセルデータがワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定するワード整列手段と、
復号化パラメータと、整列したピクセルデータを前記ワード整列手段から受け取る入力端子を有し、クロマインターリーブフラグが設定されている場合、インターリーブされているクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータを生成するクロマインターリーブ手段と、
復号化パラメータ、補間開始、及び複数の再配置されたピクセルデータを受け取る入力端子を有し、再配置されたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する補間手段と、
復号化パラメータ、演算処理レベルＬｃ、最大ＤＭＡバースト制約、ブロックバッファサイズ制約、及び補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大ＤＭＡバースト制約によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、ＤＭＡバーストサイクルを割当てるとともに、前記システムパフォーマンス及び前記リソースの制限に従って動的に設定される時点において、前記補間手段の動作を開始させる補間開始を生成する設定可能シーケンサと、
を備える請求項１記載のビデオ符号化・復号化装置。
【請求項６】
前記動き補償装置は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを、補間出力端子を通じて前記ビデオデコーダエンジンの１つに出力する、又は、ＤＭＡ出力データポートを通じてＤＭＡを使用して前記メモリアクセス調停手段に出力し、
前記メモリアクセス調停手段は、前記動き補償装置からＤＭＡ要求を受け取り、かつ前記複数のビデオデコーダエンジンからＤＭＡ要求を前記エンジンＤＭＡバスを通じて受け取り、ＤＭＡ要求を優先順位付けし、ＤＭＡ ＡＣＫを所定のＤＭＡ優先度リストに従って前記動き補償装置及び前記複数のビデオデコーダエンジンに送り、ＤＭＡ入力データ及びＤＭＡ出力データをストリーム化し、ＤＭＡ入力データを前記動き補償装置に提供し、ＤＭＡ出力データを前記動き補償装置から受け取り、前記メインＤＭＡバスを通じて、前記フレームバッファからデータを読み取る、及び前記フレームバッファにデータを書き込む請求項１記載のビデオ符号化・復号化装置。
【請求項７】
前記ダイレクトメモリアクセス手段は、補間完了を受け取った後にＤＭＡ要求を生成し、ＤＭＡ ＡＣＫを受け取った後、最大ＤＭＡバースト制約及びブロックバッファサイズ制約に従って複数個のＤＭＡ入力データを受け取り、参照ピクセルデータを出力し、複数個のＤＭＡ入力データを受け取った後、ＤＭＡ完了を生成し、補間開始を生成し、バッファリングされた補間データを受け取り、それらを、所定のダイレクトメモリアクセスプロトコルに従うことによってＤＭＡ出力データ端子を通じて前記メモリアクセス調停手段に送り、参照ピクセルデータを可変サイズブロックバッファに格納するためと、バッファリングされた補間データを可変サイズブロックバッファから取得するためのアドレスを、復号化パラメータと演算処理レベルＬｃと最大ＤＭＡバースト制約とブロックバッファサイズ制約とに従って生成し、
さらに、復号化パラメータ、及び補間されたデータを受け取る入力端子を有し、復号化パラメータによって制御され、前記ビデオデコーダエンジンのうちの１つに補間出力を提供するため補間されたデータを前記動き補償装置の出力端子に出力する、又は、選択された補間データを提供するため補間されたデータを可変サイズブロックバッファに出力する選択器と、
参照ピクセルデータ、及び選択されたデータを受け取る入力端子を有し、前記フレームバッファからダイレクトメモリアクセスを通じて取得される参照ピクセルデータを格納し、バッファリングされたピクセルデータを前記補間手段に提供し、選択された補間データを格納し、バッファリングされた補間データを前記ダイレクトメモリアクセス手段に提供する可変サイズブロックバッファと、
を備える請求項１記載のビデオ符号化・復号化装置。
【請求項８】
前記メモリアクセス調停手段は、前記動き補償装置からＤＭＡ要求を受け取り、かつ複数のビデオデコーダエンジンからＤＭＡ要求を前記エンジンＤＭＡバスを通じて受け取り、ＤＭＡ要求を優先順位付けし、ＤＭＡ ＡＣＫを所定のＤＭＡ優先度リストに従って前記動き補償装置及び前記複数のビデオデコーダエンジンに送り、ＤＭＡ入力データ及びＤＭＡ出力データをストリーム化し、ＤＭＡ入力データを前記動き補償装置に提供し、ＤＭＡ出力データを前記動き補償装置から受け取り、前記メインＤＭＡバスを通じて、前記フレームバッファからデータを読み取る、及び前記フレームバッファにデータを書き込み、前記動き補償装置及び前記エンジンＤＭＡバスからのＤＭＡ要求のメモリアクセスステータスを監視し、ＤＭＡバスステータスを生成し、
さらに、前記メモリアクセス調停手段からのＤＭＡバスステータス、及び復号化パラメータを受け取る入力端子を有し、前記メモリアクセス調停手段に接続されている前記動き補償装置及び前記エンジンＤＭＡバスからのＤＭＡ要求の詳細な使用状況を含んでいるＤＭＡバスステータスに基づいて、演算処理レベルＬｃ及び最大ＤＭＡバースト制約を動的に変えるシステムパフォーマンス制御手段
を備える請求項１記載のビデオ符号化・復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオデコーダにおいて動き補償を用いる動き補償装置を備えるビデオ符号化・復号化装置に関する。
【背景技術】
【０００２】
最近、マルチメディアに関連する情報のデジタル化が加速しており、それに伴って、より高画質のビデオ情報の需要が高まっている。具体的な例として、放送媒体及びレーザ記憶媒体（laser storage media）における、従来の７２０×４８０ピクセルのＳＤ（Standard Definition）から１９２０×１０８０ピクセルのＨＤ（High Definition）への移行が挙げられる。高画質の需要は、それと同時にシステムの複雑さが増し、復号化の処理動作が増大する。したがって、従来のパフォーマンス能力を上回る一方でコストを低いレベルに維持できる効果的なシステムアーキテクチャが求められている。
【０００３】
ビデオコーダーにおいて動き補償を使用することは、いくつもの大きな利点がある。テレビ信号は、残像に基づき特定の速度（例えば、３０又は６０フレーム／秒）で走査しなければならない。ＨＤＴＶなどの多くの用途においては、フレーム間に大量の冗長性が存在する。ビデオコーダーにおいて動き補償を使用することにより、この冗長性が減少し、ビデオ信号の圧縮率を高めることができる。
【０００４】
現在のフレームのピクセルブロックと、フレームのメモリに格納されている前のフレームのピクセルブロックとの間の動きを推定する目的には、さまざまなアルゴリズムを使用することができる。例えば、非特許文献１，２には、ピクセル再帰的アルゴリズムが開示されている。また、非特許文献３には、ブロック照合アルゴリズムが記載されている。
【０００５】
これらのアルゴリズムのいずれにおいても、以前に復号化されたフレームのピクセルをフレームバッファから取り出すことが要求される。高解像度のビデオ信号をリアルタイムで符号化するためには、これらのフレームメモリに高速でアクセスしなければならない。その一方で、特定の用途、特に携帯端末用途においては、システムコスト及び電力消費量を低く維持するため、デジタルハイビジョンテレビなどの高性能の用途と比較して比較的低いシステムクロックレートによってデバイスを駆動しなければならない。
【０００６】
動き補償において使用するためのバッファリングメカニズムであって、ビデオデコーダが過度に複雑にならず、パフォーマンスのボトルネックが生じないバッファリングメカニズムのニーズが存在している。
【０００７】
特許文献１には、効果的な動き補償方法「Efficient methods of performing motion compensation based decoding and recording of compressed video bitstreams」が開示されている。特許文献１記載の発明は、オンチップメモリの使用を増やすことによって動き補償の効率を高めている。動き補償に必要な参照フレームの部分がオンチップメモリに含まれるように参照ウィンドウを作成するものである。
【非特許文献１】"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.
【特許文献１】米国特許第７，２１８，８４２号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、このような従来の動き補償方法を備えるビデオ符号化・復号化装置にあっては、以下のような問題があった。
【０００９】
すなわち、動き補償では、以前に復号化されたフレームのピクセルをフレームバッファから取り出すことが要求される。高解像度のビデオ信号をリアルタイムで符号化するためには、これらのフレームメモリに高速でアクセスしなければならない。その一方で、特定の用途、特に携帯端末用途においては、システムコスト及び電力消費量を低く維持するため、デジタルハイビジョンテレビなどの高性能の用途と比較して比較的低いシステムクロックレートによってデバイスを駆動しなければならない。
【００１０】
また、特許文献１記載の動き補償方法では、動き補償に必要な参照フレームの部分をオンチップメモリに含まれるように構成することで、動き補償の効率を高めることができるものの、参照フレームの部分を格納するための大きなメモリ空間が要求される欠点がある。
【００１１】
本発明は、上記に鑑みてなされたものであり、限られたメモリリソースを用いてシステムパフォーマンスを最大にすることができるビデオ符号化・復号化装置を提供することを別の目的とする。
【課題を解決するための手段】
【００１２】
本発明のビデオ符号化・復号化装置は、ビデオデコーダにおいて動き補償を用いる動き補償装置を備えるビデオ符号化・復号化装置であって、複数のビデオデコーダエンジンと、前記複数のビデオデコーダエンジンに接続されている複数のエンジンＤＭＡバスと、フレームバッファと、前記フレームバッファに接続されているメインＤＭＡバスと、復号化パラメータ、演算処理レベルＬｃ、最大ＤＭＡバースト制約、及びブロックバッファサイズ制約に従って、ＤＭＡ要求を発行し、ＤＭＡ ＡＣＫを受け取った後に複数個のＤＭＡ入力データを受け取り、ＤＭＡ完了を発行し、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを前記複数のビデオデコーダエンジンの１つに出力する動き補償装置と、前記動き補償装置からＤＭＡ要求を受け取り、かつ前記複数のビデオデコーダエンジンからＤＭＡ要求を前記エンジンＤＭＡバスを通じて受け取り、ＤＭＡ要求を優先順位付けし、ＤＭＡ ＡＣＫを所定のＤＭＡ優先度リストに従って前記動き補償装置及び前記複数のビデオデコーダエンジンに送り、ＤＭＡ入力データ及びＤＭＡ出力データをストリーム化し、ＤＭＡ入力データを前記動き補償装置に提供し、前記メインＤＭＡバスを通じて、前記フレームバッファからデータを読み取る、及び前記フレームバッファにデータを書き込むメモリアクセス調停手段と、を備える構成を採る。
【発明の効果】
【００１３】
本発明によれば、パフォーマンス及びメモリサイズをフレキシブルに設定できる動き補償装置を備えることにより、システムパフォーマンスを事前定義する、又は、システム全体の処理スループットをリアルタイムで最適化して、動き補償装置とそれ以外のビデオデコーダエンジンとの間でパフォーマンスのバランスをとるためにシステムパフォーマンスを自動的に設定することができる。また、参照ピクセルデータを格納するためのオンチップメモリのサイズを、動き補償装置に適用されるシステムコスト制約に従って設定できることである。さらに、パディング、ワード整列、クロミナンス成分のデインターリーブのうちの少なくとも１つの実行をフレキシブルに設定することにより、ＤＭＡコントローラと演算処理ロジックとの間でシステムの複雑さをトレードオフすることができ、ＤＭＡコントローラと演算処理ロジックとの間でシステムパフォーマンスのバランスをとることができる。その結果、高い周波数で動作する大きなオンチップデータメモリを使用することなく、限られたメモリリソースを用いて、システムパフォーマンスを最大にするフレキシブルな動き補償装置及びビデオ符号化・復号化装置を実現することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１５】
（実施の形態１）
図１は、本発明の実施の形態１に係るビデオ符号化・復号化装置の構成を示す図である。本実施の形態は、フレームバッファと、複数のビデオデコーダエンジンと、前記複数のビデオデコーダエンジンに接続されている複数のエンジンＤＭＡバスと、動き補償を用いる動き補償装置とを備えるビデオ符号化・復号化装置に適用した例である。
【００１６】
図１において、ビデオ符号化・復号化装置１００は、動き補償装置１０１と、メモリアクセス調停手段１１０と、複数個（Ｎ個）のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎと、フレームバッファ１５０とを備えて構成される。
【００１７】
動き補償装置１０１は、復号化パラメータ１６１、演算処理レベルＬｃ（computation level）１６２、最大ＤＭＡバースト制約１６３、ブロックバッファサイズ制約１６４、ＤＭＡ ＡＣＫ１１２、ＤＭＡ入力データ１１４、及び補間完了１８１を受け取る入力端子を有し、復号化パラメータ１６１、演算処理レベルＬｃ１６２、最大ＤＭＡバースト制約１６３、及びブロックバッファサイズ制約１６４に従って、ＤＭＡ要求１１１を発行し、ＤＭＡ ＡＣＫ１１２を受け取った後に複数個のＤＭＡ入力データ１１４を受け取り、次いで、ＤＭＡ完了１１５を発行し、復号化パラメータ１６１によって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎの１つに出力する。
【００１８】
メモリアクセス調停手段１１０は、動き補償装置１０１からＤＭＡ要求１１１を受け取り、かつ複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−ＮからＤＭＡ要求をエンジンＤＭＡバス１１６〜１１８を通じて受け取り、ＤＭＡ要求を優先順位付けし、ＤＭＡ ＡＣＫ１１２を所定のＤＭＡ優先度リストに従って動き補償装置１０１及び複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎに送り、ＤＭＡ入力データ及びＤＭＡ出力データをストリーム化し、ＤＭＡ入力データ１１４を動き補償装置１０１に提供し、メインＤＭＡバス１５１を通じて、フレームバッファ１５０からデータを読み取る、及びフレームバッファ１５０にデータを書き込む。
【００１９】
複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎは、エンジンＤＭＡバス１１６〜１１８を通じてメモリアクセス調停手段１１０に接続されている。
【００２０】
フレームバッファ１５０は、複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎにより共有される外部のシステムメモリであり、メインＤＭＡバス１５１を通じてメモリアクセス調停手段１１０に接続されている。
【００２１】
動き補償装置１０１は、ダイレクトメモリアクセス手段１６０、可変サイズブロックバッファ１７０、及び補間手段１８０を備え、パフォーマンス及びメモリサイズをフレキシブルに設定できるように設計されている。
【００２２】
ダイレクトメモリアクセス手段１６０は、補間手段１８０から補間完了１８１を受け取った後にＤＭＡ要求を生成し、メモリアクセス調停手段１１０からＤＭＡ ＡＣＫ１１２を受け取った後、最大ＤＭＡバースト制約及びブロックバッファサイズ制約に従って複数個のＤＭＡ入力データを受け取り、復号化パラメータと演算処理レベルＬｃと最大ＤＭＡバースト制約とブロックバッファサイズ制約とに従って、参照ピクセルデータ１７１を可変サイズブロックバッファ１７０に格納するためのブロックメモリアドレスを生成するとともに、参照ピクセルデータ１７１を可変サイズブロックバッファ１７０に出力し、メモリアクセス調停手段１１０から複数個のＤＭＡ入力データを受け取った後、ＤＭＡ完了１１５を生成し、次いで、補間開始１８２を生成する。
【００２３】
可変サイズブロックバッファ１７０は、フレームバッファ１５０からダイレクトメモリアクセスを通じて取得される参照ピクセルデータ１７１を格納し、バッファリングされたピクセルデータを補間手段１８０に提供する。可変サイズブロックバッファ１７０は、システムコスト及びシステムパフォーマンスの要件に従ってさまざまな所定のメモリサイズに設定可能である。
【００２４】
補間手段１８０は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎの１つに出力する。具体的には、補間手段１８０は、復号化パラメータ、補間開始、及び複数のバッファリングされたピクセルデータ１７２を受け取る入力端子を有し、複数のバッファリングされたピクセルデータに所定の補間フィルタを適用することによって複数個の補間されたデータ１７３を計算し、すべての補間されたデータ１７３を計算した後、補間完了１８１を生成する。
【００２５】
以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
【００２６】
動き補償装置１０１は、ＤＭＡ ＡＣＫ１１２を受け取った後、複数個のＤＭＡ入力データ１１４を受け取り、次いで、ＤＭＡ完了１１５を発行する。動き補償装置１０１は、復号化パラメータ１６１によって指定される復号化モードに従って、補間されたデータ１７３を計算する。動き補償装置１０１は、補間されたデータ１７３を自身の出力端子の１つを通じてビデオデコーダエンジンの１つに出力する。
【００２７】
メモリアクセス調停手段１１０は、動き補償装置１０１からＤＭＡ要求１１１を受け取る。メモリアクセス調停手段１１０はまた、複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−ＮからそれぞれエンジンＤＭＡバス１１６，１１７，１１８を通じてＤＭＡ要求を受け取り、ＤＭＡ要求を優先順位付けし、ＤＭＡ ＡＣＫ１１２を、所定のＤＭＡ優先度リストに従って動き補償装置１０１及び複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎに送る。そして、メモリアクセス調停手段１１０は、ＤＭＡ入力データ及びＤＭＡ出力データをストリーム化し、ＤＭＡ入力データ１１４を動き補償装置１００に提供し、メインＤＭＡバス１５１を通じて、フレームバッファ１５０からデータを読み取る、及びフレームバッファ１５０にデータを書き込む。
【００２８】
複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎは、それぞれエンジンＤＭＡバス１１６，１１７，１１８を通じてメモリアクセス調停手段１１０に接続されている。フレームバッファ１５０は、メインＤＭＡバス１５１を通じてメモリアクセス調停手段１１０に接続されている。
【００２９】
次に、動き補償装置１０１の動作について説明する。
【００３０】
ダイレクトメモリアクセス手段１６０は、最大ＤＭＡバースト制約１６３及びブロックバッファサイズ制約１６４に従って、ＤＭＡ要求を生成し、複数個のＤＭＡ入力データを受け取り、ＤＭＡアクセス及び補間手段１８０を調整し、ＤＭＡによってフレームバッファ１５０から取得した参照ピクセルデータ１７１を可変サイズブロックバッファ１７０に格納するためのアドレスを生成する。
【００３１】
より詳細には、ダイレクトメモリアクセス手段１６０は、補間手段１８０から補間完了１８１を受け取った後にＤＭＡ要求１１１を生成し、生成したＤＭＡ要求１１１をメモリアクセス調停手段１１０に発行する。ダイレクトメモリアクセス手段１６０は、メモリアクセス調停手段１１０からＤＭＡ ＡＣＫ１１２を受け取った後、最大ＤＭＡバースト制約１６３とブロックバッファサイズ制約１６４とに従って、メモリアクセス調停手段１１０から複数個のＤＭＡ入力データ１１４を受け取る。ダイレクトメモリアクセス手段１６０は、復号化パラメータ１６１と、演算処理レベルＬｃ１６２と、最大ＤＭＡバースト制約１６３と、ブロックバッファサイズ制約１６４とに従って、参照ピクセルデータ１７１を可変サイズブロックバッファ１７０に格納するためのブロックメモリアドレスを生成する。ダイレクトメモリアクセス手段１６０は、可変サイズブロックバッファ１７０に参照ピクセルデータ１７１を出力する。ダイレクトメモリアクセス手段１６０は、複数個のＤＭＡ入力データ１１４を受け取った後、ＤＭＡ完了１１５を生成し、次いで、補間開始１８２を生成する。
【００３２】
可変サイズブロックバッファ１７０は、参照ピクセルデータを格納するためのオンチップメモリであり、ダイレクトメモリアクセスによって外部のフレームバッファ１５０から取得した参照ピクセルを格納し、バッファリングされたピクセルデータ１７２を補間手段１８０に提供する。可変サイズブロックバッファ１７０は、システムコスト及びシステムパフォーマンスの要件に従ってさまざまな所定のメモリサイズに設定することができる。
【００３３】
補間手段１８０は、バッファリングされたピクセルデータ１７２に所定の補間フィルタを適用することによって複数個の補間されたデータ１７３を計算し、すべての補間されたデータ１７３を計算した後、補間完了１８１を生成する。
【００３４】
以上詳細に説明したように、本実施の形態によれば、ビデオ符号化・復号化装置１００は、動き補償装置１０１のダイレクトメモリアクセス手段１６０が、補間手段１８０から補間完了１８１を受け取った後にＤＭＡ要求１１１を生成し、メモリアクセス調停手段１１０からＤＭＡ ＡＣＫを受け取った後、最大ＤＭＡバースト制約及びブロックバッファサイズ制約に従って複数個のＤＭＡ入力データを受け取り、復号化パラメータと演算処理レベルＬｃと最大ＤＭＡバースト制約とブロックバッファサイズ制約とに従って、参照ピクセルデータを可変サイズブロックバッファ１７０に格納するためのブロックメモリアドレスを生成する。
【００３５】
これにより、ダイレクトメモリアクセス手段１６０は、複数個の小さなＤＭＡアクセスを自動的に組み合わせて大きなバーストＤＭＡを形成する、又は、大きなバーストＤＭＡを複数個の小さなサイズのＤＭＡアクセスに自動的に分割することができる。また、システムパフォーマンスを事前定義する、又は、システム全体の処理スループットをリアルタイムで最適化することにより、動き補償装置１０１とそれ以外の複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎとの間で、データバスの占有時間及びフレームバッファ１５０にアクセスするためのバス占有時間のバランスをとることができる。その結果、高い周波数で動作する大きなオンチップデータメモリを使用することなく、限られたメモリリソースを用いて、システムパフォーマンスを最大にするフレキシブルな動き補償装置１０１を実現することができる。
【００３６】
このように、ビデオの復号化において高いパフォーマンスの動き補償装置１０１を実現できるので、ビデオ符号化・復号化装置１００は、動き補償が必要な高解像度のビデオ用として、動き補償装置１０１を使用することでリアルタイムで動作することが可能になる。また、上述したように、動き補償装置１０１は、動き補償に必要なシステムメモリのコストを小さくすることができるので、動き補償システムのコストパフォーマンスについても高めることができる。
【００３７】
（実施の形態２）
実施の形態２は、動き補償装置の詳細な実現形態を説明する。
【００３８】
図２は、本発明の実施の形態２に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図である。本実施の形態の動き補償装置１０１Ａは、図１の動き補償装置１０１に代えて適用される。
【００３９】
図２において、動き補償装置１０１Ａは、ＤＭＡコマンド生成器２００と、バッファアドレス生成手段２１０と、設定可能シーケンサ２２０と、補間手段２３０と、可変サイズブロックバッファ２４０と、データ整列手段２５０とからなる６個のコンポーネントにより構成される。
【００４０】
ＤＭＡコマンド生成器２００は、復号化パラメータ、ＤＭＡ ＡＣＫ、及びＤＭＡバーストサイクルを受け取る入力端子を有し、ＤＭＡ要求を生成し、ＤＭＡ ＡＣＫを受け取り、ＤＭＡ要求の数をカウントし、カウンタがＤＭＡバーストサイクルの数に達した後にＤＭＡ完了を出力する。
【００４１】
バッファアドレス生成手段２１０は、復号化パラメータ、ＤＭＡ入力データ、及びＤＭＡバーストサイクルを受け取る入力端子を有し、復号化パラメータ及びＤＭＡバーストサイクルに従ってブロックバッファアドレスを導き、ＤＭＡ入力データを参照ピクセルデータ端子を通じて可変サイズブロックバッファ内のメモリ位置に転送する。
【００４２】
設定可能シーケンサ２２０は、復号化パラメータ、演算処理レベルＬｃ、最大ＤＭＡバースト制約、ブロックバッファサイズ制約、補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大ＤＭＡバースト制約２２５によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、ＤＭＡバーストサイクルを導き、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段２３０の動作を開始させる補間開始を生成する。
【００４３】
補間手段２３０は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎの１つに出力する。具体的には、補間手段２３０は、復号化パラメータ、補間開始、及び複数の再配置されたピクセルデータを受け取る入力端子を有し、再配置されたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する。
【００４４】
可変サイズブロックバッファ２４０は、チャネル化されたＤＭＡ入力データを受け取る参照ピクセルデータ端子を有し、チャネル化されたＤＭＡ入力データを、ブロックバッファアドレスに従って所定位置に格納し、動き補償処理のためにバッファリングされたピクセルデータを出力する。
【００４５】
データ整列手段２５０は、復号化パラメータ、クロマインターリーブフラグ、バッファリングされたピクセルデータを受け取る入力端子を有し、復号化パラメータの一部としての動きベクトルによって示されるビデオフレーム内の位置と、フレームバッファ１５０におけるクロミナンスデータ形式を示すクロマインターリーブフラグとに従って、バッファリングされたピクセルデータを再配置し、フレーム境界ピクセルをパディングすることによって、再配置されたピクセルデータを提供し、ワード境界再配置によって不要なデータを削除し、クロマインターリーブフラグが設定されている場合、インターリーブされたクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化する。
【００４６】
以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
【００４７】
ＤＭＡコマンド生成器２００は、メモリアクセス調停手段１１０（図１）に対してＤＭＡ要求２０２を生成し、メモリアクセス調停手段１１０（図１）からＤＭＡ ＡＣＫ２０３を受け取り、ＤＭＡ要求２０２の数をカウントし、カウンタがＤＭＡバーストサイクル２２１の数に達した後にメモリアクセス調停手段１１０（図１）にＤＭＡ完了２０４を出力する。
【００４８】
バッファアドレス生成手段２１０は、復号化パラメータ２０１とＤＭＡバーストサイクル２２１とに従ってブロックバッファアドレスを導き、メモリアクセス調停手段１１０（図１）からのＤＭＡ入力データ２１２を、参照ピクセルデータ端子を通じて参照ピクセルデータ２４１として可変サイズブロックバッファ２４０内のメモリ位置に転送する。
【００４９】
設定可能シーケンサ２２０は、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段２３０の動作を開始させる補間開始２２３を生成する。
【００５０】
補間手段２３０は、再配置されたピクセルデータ２５２に所定の補間フィルタを適用することによって、複数個の補間されたデータ２４３を計算し、すべての補間されたデータ２４３を計算した後、補間完了２２４を生成し、補間されたデータ２４３を出力する。
【００５１】
可変サイズブロックバッファ２４０は、チャネル化されたＤＭＡ入力データを受け取り、それらをブロックバッファアドレスに従って適切な位置に格納し、動き補償処理のため、バッファリングされたピクセルデータ２４２を出力する。
【００５２】
データ整列手段２５０は、復号化パラメータ２０１の一部としての動きベクトルによって示されるビデオフレーム内の位置と、フレームバッファ１５０（図１）におけるクロミナンスデータ形式を示すクロマインターリーブフラグ２５１とに従って、バッファリングされたピクセルデータ２４２を再配置する。データ整列手段２５０は、フレーム境界ピクセルをパディングすることによって、再配置されたピクセルデータ２５２を提供し、ワード境界再配置によって不要なデータを削除する。そして、データ整列手段２５０は、クロマインターリーブフラグが設定されている場合、２つのインターリーブされたクロミナンス成分を分割して、フレームバッファ１５０における設計上のクロマピクセルデータ形式に従ってストリーム化する。
【００５３】
このように、本実施の形態によれば、動き補償装置１０１Ａは、復号化パラメータによって指定されるビットストリーム特性と最大ＤＭＡバースト制約によって指定されるシステムパフォーマンスの制限とブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、ＤＭＡバーストサイクルを導き、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段２３０の動作を開始させる補間開始を生成する設定可能シーケンサ２２０を備えているので、動き補償装置１０１Ａは、データバスのトラフィックを動的に監視することによって、データメモリへの各バーストアクセスの数及びサイズを適応的に割り当てることができ、これにより、演算処理手段と、動き補償装置１０１Ａの内側及び外側の限られたメモリとの間での最適化されたデータストリーミングを達成することができる。
【００５４】
また、システムパフォーマンスを、動き補償装置１０１Ａに適用されるシステムパフォーマンス制約に基づいて事前定義することができ、参照ピクセルデータを格納するためのオンチップメモリのサイズを、動き補償装置に適用されるシステムリソース制約に従って設定することができる。
【００５５】
また、本実施の形態では、動き補償装置１０１Ａは、データ整列手段２５０を備えているので、システムコスト及びシステムパフォーマンスの要件に従ってさまざまな所定のメモリサイズに設定することのできる可変サイズブロックバッファ２４０からのバッファリングされたピクセルデータ２４２に対して、ピクセルデータの再配置し、不要なデータの削除、クロマピクセルデータ形式に従ったストリーム化などのデータ整列を施すことができる。
【００５６】
（実施の形態３）
実施の形態３は、動き補償装置の詳細な実現形態を説明する。
【００５７】
図３は、本発明の実施の形態３に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図である。本実施の形態の動き補償装置１０１Ｂは、図１の動き補償装置１０１に代えて適用される。
【００５８】
図３において、動き補償装置１０１Ｂは、ＤＭＡコマンド生成器３００と、バッファアドレス生成手段３１０と、設定可能シーケンサ３２０と、補間手段３３０と、可変サイズブロックバッファ３４０と、パディング手段３５０と、ワード整列（word-aligning）手段３６０と、クロマインターリーブ手段３７０とからなる８個のコンポーネントにより構成される。
【００５９】
ＤＭＡコマンド生成器３００は、復号化パラメータ、ＤＭＡ ＡＣＫ、及びＤＭＡバーストサイクルを受け取る入力端子を有し、ＤＭＡ要求を生成し、ＤＭＡ ＡＣＫを受け取り、ＤＭＡ要求の数をカウントし、カウンタがＤＭＡバーストサイクルの数に達した後にＤＭＡ完了を出力する。
【００６０】
バッファアドレス生成手段３１０は、復号化パラメータ、ＤＭＡ入力データ、及びＤＭＡバーストサイクルを受け取る入力端子を有し、復号化パラメータ及びＤＭＡバーストサイクルに従ってブロックバッファアドレスを導き、ＤＭＡ入力データを参照ピクセルデータ入力端子を通じてパディング手段３５０に転送する。
【００６１】
設定可能シーケンサ３２０は、復号化パラメータ、演算処理レベルＬｃ、最大バス占有時間、ブロックバッファサイズ制約、及び補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大バス占有時間によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、ＤＭＡバーストサイクルを導き、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段３３０の動作を開始させる補間開始を生成する。
【００６２】
補間手段３３０は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎの１つに出力する。具体的には、補間手段３３０は、復号化パラメータ、補間開始、及び複数の再配置されたピクセルデータを受け取る入力端子を有し、バッファリングされたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する。
【００６３】
可変サイズブロックバッファ３４０は、参照ピクセルデータと、ブロックバッファアドレスをバッファアドレス生成手段３１０から受け取る入力端子を有し、再配置されたピクセルデータを、バッファアドレス生成手段によって生成されたブロックバッファアドレスに従って適切な位置に格納し、動き補償の演算処理のため、バッファリングされたピクセルデータを補間手段３３０に出力する。
【００６４】
パディング手段３５０は、復号化パラメータと、バッファリングされたピクセルデータを受け取る入力端子を有し、ビデオフレーム境界の外側に位置する参照ピクセルデータに対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータを生成し、参照ピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定する。
【００６５】
ワード整列手段３６０は、復号化パラメータと、パディングされたピクセルデータをパディング手段３５０から受け取る入力端子を有し、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータを生成し、パディングされたピクセルデータがワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定する。
【００６６】
クロマインターリーブ手段３７０は、復号化パラメータと、整列したピクセルデータをワード整列手段３６０から受け取る入力端子を有し、クロマインターリーブフラグが設定されている場合、インターリーブされているクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータを生成する。
【００６７】
以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
【００６８】
ＤＭＡコマンド生成器３００は、メモリアクセス調停手段１１０（図１）に対してＤＭＡ要求３０２を生成し、メモリアクセス調停手段１１０（図１）からＤＭＡ ＡＣＫ３０３を受け取り、ＤＭＡ要求の数をカウントし、このカウンタがＤＭＡバーストサイクル３２１の数に達した後にメモリアクセス調停手段１１０（図１）にＤＭＡ完了３０４を出力する。
【００６９】
バッファアドレス生成手段３１０は、復号化パラメータ３０１及びＤＭＡバーストサイクル３２１に従ってブロックバッファアドレスを導き、メモリアクセス調停手段１１０（図１）からのＤＭＡ入力データ３１２を自身の参照ピクセルデータ端子３４１を通じて可変サイズブロックバッファ３４０内のメモリ位置に転送する。
【００７０】
設定可能シーケンサ３２０は、復号化パラメータ３０１によって指定されるビットストリーム特性と、最大バス占有時間３２５によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約３２６によって指定されるシステムリソースの制限とに従って、ＤＭＡバーストサイクル３２１を導く。設定可能シーケンサ３２０は、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段３３０の動作を開始させる補間開始３２３を生成する。
【００７１】
補間手段３３０は、再配置されたピクセルデータ３５２に所定の補間フィルタを適用することによって、複数個の補間されたデータ３４３を計算し、すべての補間されたデータを計算した後に補間完了３２４を生成し、補間されたデータ３４３を出力する。
【００７２】
可変サイズブロックバッファ３４０は、チャネル化されたＤＭＡ入力データを受け取り、それらをブロックバッファアドレスに従って適切な位置に格納し、動き補償処理のため、バッファリングされたピクセルデータ３４２を出力する。
【００７３】
パディング手段３５０は、ビデオフレーム境界の外側に位置するバッファリングされたピクセルデータ３４２に対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータ３５３を生成する。パディング手段３５０は、バッファリングされたピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータ３０１によって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックポジションもしくはブロックポジション又はその両方とに従って判定する。
【００７４】
ワード整列手段３６０は、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータ３５４を生成する。ワード整列手段３６０は、パディングされたピクセルデータ３５３がワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定する。
【００７５】
クロマインターリーブ手段３７０は、クロマインターリーブフラグが設定されている場合、２つのインターリーブされているクロミナンス成分を分割し、フレームバッファ１５０（図１）における設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータ３５２を生成する。
【００７６】
このように、本実施の形態によれば、動き補償装置１０１Ｂは、パディング手段３５０と、ワード整列手段３６０、及びクロマインターリーブ手段３７０を備え、可変サイズブロックバッファ３４０は、バッファリングされたピクセルデータ３４２をパディング手段３５０に供給する。動き補償装置１０１Ｂは、参照ピクセルデータを可変サイズブロックバッファ３４０に格納した後に、パディング処理、ワード整列処理、クロミナンス成分インターリーブ処理を設定することができ、ＤＭＡコントローラと演算処理ロジックとの間でシステムの複雑さをトレードオフすることができる。さらに、動き補償装置１０１Ｂは、パディング、ワード整列、及びクロミナンス成分のデインターリーブの実行をフレキシブルに設定することにより、ＤＭＡコントローラと演算処理ロジックとの間でシステムパフォーマンスのバランスをとることができる。
【００７７】
なお、本実施の形態では、参照ピクセルデータを可変サイズブロックバッファ３４０に格納した後に、パディング処理、ワード整列処理、及びクロミナンス成分インターリーブ処理を設定しているが、これら処理のうちの少なくとも１つを設定するものでもよい。
【００７８】
（実施の形態４）
実施の形態３は、参照ピクセルデータを可変サイズブロックバッファに格納した後に、パディング処理、ワード整列処理、及びクロミナンス成分インターリーブ処理を行っている。上記各処理は、参照ピクセルデータを可変サイズブロックバッファに格納する前に行ってもよい。実施の形態４は、参照ピクセルデータを可変サイズブロックバッファに格納する前に行う例である。
【００７９】
図４は、本発明の実施の形態４に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図である。本実施の形態の動き補償装置１０１Ｃは、図１の動き補償装置１０１に代えて適用される。
【００８０】
図４において、動き補償装置１０１Ｃは、ＤＭＡコマンド生成器４００と、バッファアドレス生成手段４１０と、設定可能シーケンサ４２０と、補間手段４３０と、可変サイズブロックバッファ４４０と、パディング手段４５０と、ワード整列手段４６０と、クロマインターリーブ手段４７０とからなる８個のコンポーネントにより構成される。
【００８１】
ＤＭＡコマンド生成器４００は、復号化パラメータ、ＤＭＡ ＡＣＫ、及びＤＭＡバーストサイクルを受け取る入力端子を有し、ＤＭＡ要求を生成し、ＤＭＡ ＡＣＫを受け取り、ＤＭＡ要求の数をカウントし、カウンタがＤＭＡバーストサイクルの数に達した後にＤＭＡ完了を出力する。
【００８２】
バッファアドレス生成手段４１０は、復号化パラメータ、ＤＭＡ入力データ、及びＤＭＡバーストサイクルを有し、復号化パラメータ及びＤＭＡバーストサイクルに従ってブロックバッファアドレスを導き、ＤＭＡ入力データを参照ピクセルデータ端子を通じて可変サイズブロックバッファ内のメモリ位置に転送する。
【００８３】
設定可能シーケンサ４２０は、復号化パラメータ、演算処理レベルＬｃ、最大バス占有時間、ブロックバッファサイズ制約、及び補間完了を受け取る入力端子を有し、復号化パラメータによって指定されるビットストリーム特性と、最大バス占有時間によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約によって指定されるシステムリソースの制限とに従って、ＤＭＡバーストサイクルを割当てるとともに、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段４３０の動作を開始させる補間開始を生成する。
【００８４】
補間手段４３０は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを複数のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎの１つに出力する。具体的には、補間手段４３０は、復号化パラメータ、補間開始、及び複数のバッファリングされたピクセルデータを受け取る入力端子を有し、バッファリングされたピクセルデータに所定の補間フィルタを適用することによって、複数個の補間されたデータを計算し、すべての補間されたデータを計算した後、補間完了を生成し、補間されたデータを出力する。
【００８５】
可変サイズブロックバッファ４４０は、再配置されたピクセルデータ４４１を受け取るピクセルデータ端子を有し、再配置されたピクセルデータ４４１を、ブロックバッファアドレスに従って適切な位置に格納し、動き補償処理のため、バッファリングされたピクセルデータを出力する。
【００８６】
パディング手段４５０は、復号化パラメータと、バッファリングされたピクセルデータを受け取る入力端子とを有し、ビデオフレーム境界の外側に位置するバッファリングされたピクセルデータに対してフレーム境界ピクセル値を複製し、パディングされたピクセルデータを生成し、バッファリングされたピクセルデータがビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定する。
【００８７】
ワード整列手段４６０は、復号化パラメータと、パディングされたピクセルデータをパディング手段４５０から受け取る入力端子を有し、最初の有効なピクセルデータがワード境界に整列していない場合に不要なデータを削除して、整列したピクセルデータを生成し、パディングされたピクセルデータがワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定する。
【００８８】
クロマインターリーブ手段４７０は、復号化パラメータと、整列したピクセルデータをワード整列手段から受け取る入力端子を有し、クロマインターリーブフラグが設定されている場合、インターリーブされているクロミナンス成分を分割して、フレームバッファにおける設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータを生成する。
【００８９】
以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
【００９０】
ＤＭＡコマンド生成器４００は、メモリアクセス調停手段１１０（図１）に対してＤＭＡ要求４０２を生成し、メモリアクセス調停手段１１０（図１）からＤＭＡ ＡＣＫ４０３を受け取り、ＤＭＡ要求の数をカウントし、このカウンタがＤＭＡバーストサイクル４２１の数に達した後にメモリアクセス調停手段１１０（図１）にＤＭＡ完了４０４を出力する。
【００９１】
バッファアドレス生成手段４１０は、復号化パラメータ４０１及びＤＭＡバーストサイクル４２１に従ってブロックバッファアドレスを導き、メモリアクセス調停手段１１０（図１）からのＤＭＡ入力データ４１２をバッファリングされたピクセルデータ４５２としてパディング手段４５０に参照ピクセルデータ入力端子を通じて転送する。
【００９２】
設定可能シーケンサ４２０は、復号化パラメータによって指定されるビットストリーム特性と、最大バス占有時間４２５によって指定されるシステムパフォーマンスの制限と、ブロックバッファサイズ制約４２６によって指定されるシステムリソースの制限とに従って、ＤＭＡバーストサイクル４２１を導く。設定可能シーケンサ４２０は、システムパフォーマンス及びリソースの制限に従って動的に設定される時点において、補間手段４３０の動作を開始させる補間開始４２３を生成する。
【００９３】
補間手段４３０は、バッファリングされたピクセルデータ４４２に所定の補間フィルタを適用することによって、複数個の補間されたデータ４４３を計算し、すべての補間されたデータを計算した後に補間完了４２４を生成し、これらの補間されたデータ４４３を出力する。
【００９４】
可変サイズブロックバッファ４４０は、バッファアドレス生成手段４１０によって生成されるブロックバッファアドレスに従って、再配置されたピクセルデータ４４１を適切な位置に格納し、動き補償の演算処理のため、バッファリングされたピクセルデータ４４２を補間手段４３０に出力する。
【００９５】
パディング手段４５０は、バッファリングされたピクセルデータ４５２がビデオフレーム境界の外側であるかを、復号化パラメータによって指定されるフレームの高さ及び幅のパラメータと、動きベクトルと、現在のマクロブロックもしくはブロック又はその両方のポジションとに従って判定する。
【００９６】
ワード整列手段４６０は、パディングされたピクセルデータ４５３がワード境界に整列しているかを、復号化パラメータの中の動きベクトルによって示されるサブピクセルポジションに従って判定する。
【００９７】
クロマインターリーブ手段４７０は、クロマインターリーブフラグが設定されている場合、２つのインターリーブされているクロミナンス成分を分割し、フレームバッファ１５０（図１）における設計上のクロマピクセルデータ形式に従ってストリーム化し、再配置されたピクセルデータ４４１を生成する。
【００９８】
図５は、上記動き補償装置１０１ＣのＤＭＡコマンド生成器４００の動作を示すフローチャートである。図中、Ｓはフローの各ステップを示す。
【００９９】
まず、ステップＳ１でＤＭＡコマンド生成器４００はＤＭＡバーストサイクルＮｄ＝０に設定する。
【０１００】
次いで、ステップＳ２でＤＭＡコマンド生成器４００は最大ＤＭＡバーストサイクルＮｍａｘを生成し、ＤＭＡコマンドの実際の数にＮａを割り当てる。
【０１０１】
ステップＳ３では、ＤＭＡコマンド生成器４００はメモリアクセス調停手段１１０（図１）に対してＤＭＡ要求４０２を発行する。
【０１０２】
ステップＳ４では、ＤＭＡコマンド生成器４００はメモリアクセス調停手段１１０（図１）からのＤＭＡ ＡＣＫ４０３を待つ。
【０１０３】
ステップＳ５では、ＤＭＡコマンド生成器４００はＤＭＡ ＡＣＫ４０３を受け取ったか否かを判別し、ＤＭＡ ＡＣＫ４０３を受け取った場合はステップＳ６に進み、ＤＭＡ ＡＣＫ４０３を受け取っていない場合は上記ステップＳ４に戻る。
【０１０４】
ステップＳ６では、ＤＭＡコマンド生成器４００はＤＭＡコマンドをメモリアクセス調停手段１１０（図１）に送り、Ｎｄ＝Ｎｄ＋１に設定する。
【０１０５】
ステップＳ７では、ＤＭＡコマンド生成器４００はＮｄがＮｍａｘに等しいか否かを判別し、ＮｄがＮｍａｘに等しい場合はステップＳ８に進み、ＮｄがＮｍａｘに等しくない場合はステップＳ１０に進む。
【０１０６】
ステップＳ８では、ＤＭＡコマンド生成器４００はデータを処理し、ステップＳ９でＮａ＝Ｎａ−Ｎｍａｘに設定して上記ステップＳ３に戻る。このデータ処理の詳細については、図６により後述する。
【０１０７】
ステップＳ１０では、ＤＭＡコマンド生成器４００はＮｄがＮａに等しいか否かを判別する。
【０１０８】
ＮｄがＮａに等しい場合は、ステップＳ１１でＤＭＡコマンド生成器４００はデータを処理してステップＳ１２に進む。ＮｄがＮａに等しくない場合は、上記ステップＳ６に戻る。
【０１０９】
ステップＳ１２では、ＤＭＡコマンド生成器４００はすべてのＤＭＡバーストについて処理が行われたかを判別する。すべてのＤＭＡバーストについて処理が行われた場合は、本フローを終了し、すべてのＤＭＡバーストについて処理が行われていなければ上記ステップＳ２に戻ってすべてのＤＭＡバーストについて処理が終わるまで上記処理を繰り返す。
【０１１０】
図６は、図５のデータ処理ステップの動作を示すフローチャートである。本フローは、図５のステップＳ８及びステップＳ１１の詳細フローである。
【０１１１】
図５のステップＳ８又はステップＳ１１でＮｄが入力されると、ステップＳ２１で補間手段４３０は補間開始フラグを待つ。
【０１１２】
ステップＳ２２では、補間手段４３０は補間開始フラグを受け取ったか否かを判別する。補間開始フラグを受け取っていない場合は、上記ステップＳ２１に戻って補間開始フラグを待つ。
【０１１３】
補間開始フラグを受け取った場合は、ステップＳ２３で補間手段４３０は可変サイズブロックバッファ４４０内のデータが演算処理レベルＬｃに対して十分か否かを判別する。
【０１１４】
可変サイズブロックバッファ４４０内に演算処理レベルＬｃに対する十分なデータが存在している場合は、ステップＳ２４で補間手段４３０は所定の補間フィルタを使用してピクセル補間を計算する。可変サイズブロックバッファ４４０内に演算処理レベルＬｃに対する十分なデータが存在していない場合は、図５のステップＳ８又はステップＳ１１に戻る。
【０１１５】
ステップＳ２５では、補間手段４３０は補間完了フラグを生成し、Ｎｄ＝０に設定して図５のステップＳ８又はステップＳ１１に戻る。
【０１１６】
このように、本実施の形態によれば、動き補償装置１０１Ｃは、パディング手段４５０と、ワード整列手段４６０、及びクロマインターリーブ手段４７０を備え、可変サイズブロックバッファ４４０は、クロマインターリーブ手段４７０により再配列されたピクセルデータ４４１を入力し、バッファリングされたピクセルデータ４４２を補間手段４３０に出力する。動き補償装置１０１Ｃは、参照ピクセルデータを可変サイズブロックバッファ４４０に格納する前に、パディング処理、ワード整列処理、クロミナンス成分インターリーブ処理を設定することができ、ＤＭＡコントローラと演算処理ロジックとの間でシステムの複雑さをトレードオフすることができる。さらに、動き補償装置１０１Ｃは、パディング、ワード整列、及びクロミナンス成分のデインターリーブの実行をフレキシブルに設定することにより、ＤＭＡコントローラと演算処理ロジックとの間でシステムパフォーマンスのバランスをとることができる。
【０１１７】
（実施の形態５）
図７は、本発明の実施の形態５に係るビデオ符号化・復号化装置の構成を示す図である。図１と同一構成部分には同一番号を付して重複箇所の説明を省略する。
【０１１８】
図７において、ビデオ符号化・復号化装置５００は、動き補償装置５０１と、メモリアクセス調停手段５１０と、Ｎ個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎと、フレームバッファ１５０とを備えて構成される。
【０１１９】
動き補償装置５０１は、ダイレクトメモリアクセス手段５６０、可変サイズブロックバッファ５７０、補間手段５８０、及び選択器５９０を備え、パフォーマンス及びメモリサイズをフレキシブルに設定できるように設計されている。
【０１２０】
動き補償装置５０１は、動き補償の結果を、補間出力５９２端子を通じて別のビデオデコーダエンジンに出力する、又は、メモリアクセス調停手段５１０に接続されているＤＭＡ出力データポートを通じてフレームバッファ１５０に出力するように設定することができる。
【０１２１】
ダイレクトメモリアクセス手段５６０は、補間完了を受け取った後にＤＭＡ要求を生成し、ＤＭＡ ＡＣＫを受け取った後、最大ＤＭＡバースト制約及びブロックバッファサイズ制約に従って複数個のＤＭＡ入力データを受け取り、参照ピクセルデータを出力し、複数個のＤＭＡ入力データを受け取った後、ＤＭＡ完了を生成し、次いで、補間開始を生成し、バッファリングされた補間データを受け取り、それらを、所定のダイレクトメモリアクセスプロトコルに従うことによってＤＭＡ出力データ端子を通じてメモリアクセス調停手段５１０に送り、参照ピクセルデータを可変サイズブロックバッファに格納するためと、バッファリングされた補間データを可変サイズブロックバッファ５７０から取得するためのアドレスを、復号化パラメータと演算処理レベルＬｃと最大ＤＭＡバースト制約とブロックバッファサイズ制約とに従って生成する。
【０１２２】
可変サイズブロックバッファ５７０は、参照ピクセルデータ、及び選択された補間データ５９１を受け取る入力端子を有し、フレームバッファ１５０からダイレクトメモリアクセスを通じて取得される参照ピクセルデータを格納し、バッファリングされたピクセルデータを補間手段５８０に提供し、選択された補間データを格納し、バッファリングされた補間データをダイレクトメモリアクセス手段５６０に提供する。
【０１２３】
選択器５９０は、補間されたデータを受け取る入力端子を有し、復号化パラメータによって制御され、ビデオデコーダエンジンのうちの１つに補間出力を提供するため補間されたデータを動き補償装置の出力端子に出力する、又は、選択された補間データを提供するため補間されたデータを可変サイズブロックバッファ５７０に出力する。
【０１２４】
以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
【０１２５】
動き補償装置５０１は、復号化パラメータ５６１と、演算処理レベルＬＣ５６２と、最大ＤＭＡバースト制約５６３と、ブロックバッファサイズ制約５６４とに従って、ＤＭＡ要求５１１を発行する。動き補償装置５０１は、ＤＭＡ ＡＣＫ５１２を受け取った後、複数個のＤＭＡ入力データ５１４を受け取り、次いで、ＤＭＡ完了５１５を発行する。動き補償装置５０１は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを、自身の補間出力５９２端子を通じてビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎのうちの１つに出力する、又は、補間されたデータを、ＤＭＡ出力データ５１３ポートを通じてＤＭＡを使用してメモリアクセス調停手段５１０に出力する。
【０１２６】
メモリアクセス調停手段５１０は、動き補償装置からＤＭＡ要求５１１を受け取る。メモリアクセス調停手段５１０はまた、複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−ＮからそれぞれエンジンＤＭＡバス５１６，５１７，５１８を通じてＤＭＡ要求を受け取り、ＤＭＡ要求を優先順位付けし、ＤＭＡ ＡＣＫ５１２を、所定のＤＭＡ優先度リストに従って動き補償装置５０１及び複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎに送る。そして、メモリアクセス調停手段５１０は、ＤＭＡ入力データ及びＤＭＡ出力データをストリーム化し、ＤＭＡ入力データを動き補償装置５０１に提供し、ＤＭＡ出力データ５１３を動き補償装置５０１から受け取り、メインＤＭＡバス１５１を通じて、フレームバッファ１５０からデータを読み取る、及びフレームバッファにデータを書き込む。
【０１２７】
複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎは、それぞれエンジンＤＭＡバス５１６，５１７，５１８を通じてメモリアクセス調停手段５１０に接続されている。フレームバッファ１５０は、メインＤＭＡバス１５１を通じてメモリアクセス調停手段５１０に接続されている。
【０１２８】
ダイレクトメモリアクセス手段５６０は、ＤＭＡ ＡＣＫ５１２を受け取った後、最大ＤＭＡバースト制約５６３及びブロックバッファサイズ制約５６４に従って、複数個のＤＭＡ入力データ５１４を受け取り、参照ピクセルデータを出力する。ダイレクトメモリアクセス手段５６０は、複数個のＤＭＡ入力データ５１４を受け取った後、ＤＭＡ完了５１５を生成し、次いで、補間開始５８２を生成する。ダイレクトメモリアクセス手段５６０は、バッファリングされた補間データ５７４を受け取り、所定のダイレクトメモリアクセスプロトコルに従うことによって、それらを自身のＤＭＡ出力データ５１３端子を通じてメモリアクセス調停手段５１０に送る。ダイレクトメモリアクセス手段５６０は、復号化パラメータ５６１と、演算処理レベルＬｃ５６２と、最大ＤＭＡバースト制約５６３と、ブロックバッファサイズ制約５６４とに従って、参照ピクセルデータを格納するためのブロックバッファアドレスを生成し、バッファリングされた補間データ５７４を可変サイズブロックバッファ５７０から取得する。
【０１２９】
可変サイズブロックバッファ５７０は、外部のフレームバッファ１５０からダイレクトメモリアクセスを通じて取得した参照ピクセル５７１を格納し、バッファリングされたピクセルデータ５７２を補間手段５８０に提供する。可変サイズブロックバッファ５７０は、選択された補間データ５９１を格納し、バッファリングされた補間データ５７４をダイレクトメモリアクセス手段５６０に提供する。
【０１３０】
補間手段５８０は、バッファリングされたピクセルデータ５７２に所定の補間フィルタを適用することによって複数個の補間されたデータを計算して出力し、すべての補間されたデータ５８３を計算した後、補間完了５８１を生成する。
【０１３１】
選択器５９０は、復号化パラメータ５６１によって制御され、ビデオデコーダエンジンのうちの１つに補間出力５９２を提供するため補間されたデータ５８３を動き補償装置５０１の出力端子に出力する、又は、選択された補間データ５９１を提供するため補間されたデータ５８３を可変サイズブロックバッファ５７０に出力する。
【０１３２】
このように、本実施の形態によれば、動き補償装置５０１は、補間されたデータ５８３を動き補償装置５０１の出力端子に出力する、又は可変サイズブロックバッファ５７０に出力するかを選択する選択器５９０を備えているので、以下の効果を得ることができる。
【０１３３】
例えば、動き補償の後に次の処理が要求される一連のビデオコーデック（例えば、Ｈ．２６４ビデオコーデック）用のパイプライン構成において、動き補償の後のさらなる処理のため、動き補償装置５０１の演算処理の結果を別のビデオデコーダエンジンに送る、又は、動き補償の後、復号化ループに次の処理が存在しない別の一連のビデオコーデック（例えば、ＭＰＥＧ４ビデオコーデック）の場合、ＤＭＡアクセスを通じて外部のフレームバッファ１５０に出力されるように動き補償装置５０１の中のブロックバッファにバッファリングしておくなどの選択が可能になる。
【０１３４】
（実施の形態６）
図８は、本発明の実施の形態６に係るビデオ符号化・復号化装置の構成を示す図である。図７と同一構成部分には同一番号を付して重複箇所の説明を省略する。
【０１３５】
図８において、ビデオ符号化・復号化装置６００は、動き補償装置５０１と、メモリアクセス調停手段６１０と、システムパフォーマンス制御手段６２０、Ｎ個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎと、フレームバッファ１５０とを備えて構成される。
【０１３６】
動き補償装置５０１は、動き補償の結果を、補間出力５９２端子を通じて別のビデオデコーダエンジンに出力する、又は、メモリアクセス調停手段６１０に接続されているＤＭＡ出力データポートを通じてフレームバッファ１５０に出力するように設定することができる。
【０１３７】
メモリアクセス調停手段６１０は、動き補償装置５０１からＤＭＡ要求を受け取り、かつ複数のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−ＮからＤＭＡ要求を、エンジンＤＭＡバス１１６〜１１８を通じて受け取り、ＤＭＡ要求を優先順位付けし、ＤＭＡ ＡＣＫを所定のＤＭＡ優先度リストに従って動き補償装置５０１及び複数のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎに送り、ＤＭＡ入力データ及びＤＭＡ出力データをストリーム化し、ＤＭＡ入力データを動き補償装置５０１に提供し、ＤＭＡ出力データを動き補償装置５０１から受け取り、メインＤＭＡバス１５１を通じて、フレームバッファ１５０からデータを読み取る、及びフレームバッファ１５０にデータを書き込み、動き補償装置５０１及びエンジンＤＭＡバスからのＤＭＡ要求のメモリアクセスステータスを監視し、ＤＭＡバスステータスを生成する。
【０１３８】
システムパフォーマンス制御手段６２０は、メモリアクセス調停手段６１０からのＤＭＡバスステータスを受け取る入力端子を有し、メモリアクセス調停手段６１０に接続されている動き補償装置５０１及びエンジンＤＭＡバスからのＤＭＡ要求の詳細な使用状況を含んでいるＤＭＡバスステータスに基づいて、演算処理レベルＬｃ及び最大ＤＭＡバースト制約を動的に変える。
【０１３９】
以下、上述のように構成されたビデオ符号化・復号化装置の動作について説明する。
【０１４０】
動き補償装置５０１は、復号化パラメータ５６１と、演算処理レベルＬｃ５６２と、最大ＤＭＡバースト制約５６３と、ブロックバッファサイズ制約５６４とに従って、ＤＭＡ要求５１１を発行する。動き補償装置５０１は、ＤＭＡ ＡＣＫ５１２を受け取った後、複数個のＤＭＡ入力データ５１４を受け取り、次いで、ＤＭＡ完了５１５を発行する。動き補償装置５０１は、復号化パラメータによって指定される復号化モードに従って、補間されたデータを計算し、補間されたデータを、自身の補間出力５９２端子を通じてビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎのうちの１つに出力する、又は、補間されたデータを、ＤＭＡ出力データ５１３ポートを通じてＤＭＡを使用してメモリアクセス調停手段６１０に出力する。
【０１４１】
メモリアクセス調停手段６１０は、動き補償装置５０１からＤＭＡ要求５１１を受け取る。メモリアクセス調停手段６１０はまた、複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−ＮからそれぞれエンジンＤＭＡバス１１６〜１１８を通じてＤＭＡ要求を受け取り、ＤＭＡ要求を優先順位付けし、ＤＭＡ ＡＣＫ５１２を、所定のＤＭＡ優先度リストに従って動き補償装置５０１及び複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎに送る。そして、メモリアクセス調停手段６１０は、ＤＭＡ入力データ及びＤＭＡ出力データをストリーム化し、ＤＭＡ入力データを動き補償装置５０１に提供し、ＤＭＡ出力データ５１３を動き補償装置５０１から受け取り、メインＤＭＡバス１５１を通じて、フレームバッファ１５０からデータを読み取る、及びフレームバッファ１５０にデータを書き込む。その後、メモリアクセス調停手段６１０は、動き補償装置５０１及びエンジンＤＭＡバスからのＤＭＡ要求５１１のメモリアクセスステータスを監視し、ＤＭＡバスステータス６１１を生成する。
【０１４２】
システムパフォーマンス制御手段６２０は、メモリアクセス調停手段６１０に接続されている動き補償装置５０１及びエンジンＤＭＡバス１１６〜１１８からのＤＭＡ要求の詳細な使用状況を含んでいるＤＭＡバスステータス６１１に基づいて、演算処理レベルＬｃ５６１及び最大ＤＭＡバースト制約５６３を動的に導く。
【０１４３】
複数個のビデオデコーダエンジン１２０−１，１２０−２，…，１２０−Ｎは、それぞれエンジンＤＭＡバス１１６〜１１８を通じてメモリアクセス調停手段６１０に接続されている。フレームバッファ１５０は、メインＤＭＡバス１５１を通じてメモリアクセス調停手段５１０に接続されている。
【０１４４】
ダイレクトメモリアクセス手段５６０は、ＤＭＡ ＡＣＫ５１２を受け取った後、最大ＤＭＡバースト制約５６３及びブロックバッファサイズ制約５６４に従って、複数個のＤＭＡ入力データ５１４を受け取り、参照ピクセルデータを出力する。ダイレクトメモリアクセス手段５６０は、複数個のＤＭＡ入力データ５１４を受け取った後、ＤＭＡ完了５１５を生成し、次いで、補間開始５８２を生成する。ダイレクトメモリアクセス手段５６０は、バッファリングされた補間データ５７４を受け取り、所定のダイレクトメモリアクセスプロトコルに従うことによって、それらを自身のＤＭＡ出力データ５１３端子を通じてメモリアクセス調停手段６１０に送る。ダイレクトメモリアクセス手段５６０は、参照ピクセルデータを格納するためと、バッファリングされた補間データ５７４を可変サイズブロックバッファ５７０から取得するためのブロックバッファアドレスを、復号化パラメータと、演算処理レベルＬｃ５６２と、最大ＤＭＡバースト制約５６３と、ブロックバッファサイズ制約５６４とに従って生成する。
【０１４５】
可変サイズブロックバッファ５７０は、外部のフレームバッファ１５０からダイレクトメモリアクセスを通じて取得した参照ピクセルデータ５７１を格納し、バッファリングされたピクセルデータ５７２を補間手段５８０に提供する。可変サイズブロックバッファ５７０は、選択された補間データを格納し、バッファリングされた補間データ５７４をダイレクトメモリアクセス手段５６０に提供する。
【０１４６】
補間手段５８０は、バッファリングされたピクセルデータ５７２に所定の補間フィルタを適用することによって、複数個の補間されたデータを計算して出力し、すべての補間されたデータ５８３を計算した後、補間完了５８１を生成する。
【０１４７】
選択器５９０は、復号化パラメータによって制御され、ビデオデコーダエンジンのうちの１つに補間出力５９２を提供するため補間されたデータ５８３を動き補償装置５０１の出力端子に出力する、又は、選択された補間データ５９１を提供するため補間されたデータ５８３を可変サイズブロックバッファ５７０に出力する。
【０１４８】
このように、本実施の形態によれば、ビデオ符号化・復号化装置６００は、システムパフォーマンス制御手段６２０が、動き補償装置５０１及びエンジンＤＭＡバスからのＤＭＡ要求の詳細な使用状況を含んでいるＤＭＡバスステータスに基づいて、演算処理レベルＬｃ及び最大ＤＭＡバースト制約を動的に導くので、システムパフォーマンスを事前定義する、又は、動き補償装置に適用される指定されるシステムパフォーマンス制約、あるいはＤＭＡバスのトラフィックの動的な状況に基づいて、小さなサイズの複数個のＤＭＡ要求を組み合わせる、あるいは大きなＤＭＡバーストアクセスを小さなサイズの複数個のＤＭＡ要求に分割することができる。これにより、システムパフォーマンスを自動的に設定することができ、演算処理レベルＬｃを、演算処理ロジックの複雑さに従って事前定義する、又は、ＤＭＡバスのトラフィックの状況に従って動的に導くことができる。その結果、参照ピクセルデータを格納するためのオンチップメモリのサイズを、動き補償装置５０１に適用されるシステムリソース制約に従って設定することができる。ＤＭＡ要求のサイズ及び演算処理レベルＬｃを動的に設定することによって、システムは、システム全体の処理スループットをリアルタイムで最適化して、動き補償装置５０１とそれ以外のビデオデコーダエンジンとの間でパフォーマンスのバランスをとることができる。
【０１４９】
以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。
【０１５０】
また、本実施の形態では、ビデオ符号化・復号化装置という名称を用いたが、これは説明の便宜上であり、復号化装置、デジタルビデオ復号化システム等であってもよいことは勿論である。
【０１５１】
さらに、上記ビデオ符号化・復号化装置を構成する動き補償装置、ビデオデコーダエンジン、バッファの種類、その数及び接続方法などの構成例などは前述した各実施の形態に限られない。
【産業上の利用可能性】
【０１５２】
本発明に係るビデオ符号化・復号化装置は、高いスループットのビデオ符号化・復号化を実行する装置に好適である。また、ビデオ符号化・復号化と、電子システム内の複数のコンポーネントとが外部メモリの使用を共有し、ビデオ符号化・復号化を実行する電子システムに適用可能である。例えば、外部メモリへの頻繁なアクセスを必要とする高度なビデオ規格（Ｈ．２６４／ＡＶＣ、ＳＭＰＴＥ  ＶＣ１、Ｃｈｉｎａ  ＡＶＳなど）においてリアルタイムでのビデオ復号化を達成することができる。また、電子デバイスのアクセラレータ用として、システムコストの所定の制限とシステムパフォーマンスの要件とを指定することによってさまざまなビデオエンコーダ及びビデオデコーダに統合される包括的な動き補償装置を提供することができる。さらに、デジタルビデオエンコーダ及びデコーダにおいて使用するための動き補償装置に適用可能である。
【図面の簡単な説明】
【０１５３】
【図１】本発明の実施の形態１に係るビデオ符号化・復号化装置の構成を示すブロック図
【図２】本発明の実施の形態２に係るビデオ符号化・復号化装置の補償装置の詳細な構成を示す図
【図３】本発明の実施の形態３に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図
【図４】本発明の実施の形態４に係るビデオ符号化・復号化装置の動き補償装置の詳細な構成を示す図
【図５】上記実施の形態４に係るビデオ符号化・復号化装置の動き補償装置のＤＭＡコマンド生成器の動作を示すフロー図
【図６】上記実施の形態４に係るビデオ符号化・復号化装置の動き補償装置のＤＭＡコマンド生成器の動作を示すフロー図
【図７】本発明の実施の形態５に係るビデオ符号化・復号化装置の構成を示すブロック図
【図８】本発明の実施の形態６に係るビデオ符号化・復号化装置の構成を示すブロック図
【符号の説明】
【０１５４】
１００，５００，６００  ビデオ符号化・復号化装置
１０１，１０１Ａ，１０１Ｂ，１０１Ｃ，５０１  動き補償装置
１１０，５１０，６１０  メモリアクセス調停手段
１２０−１，１２０−２，…，１２０−Ｎ  ビデオデコーダエンジン
１５０  フレームバッファ
１６０，５６０  ダイレクトメモリアクセス手段
１７０，２４０，３４０，４４０，５７０  可変サイズブロックバッファ
１８０，５８０  補間手段
２００，３００，４００  ＤＭＡコマンド生成器
２１０，３１０，４１０  バッファアドレス生成手段
２２０，３２０，４２０  設定可能シーケンサ
２３０，３３０，４３０  補間手段
２５０  データ整列手段
３５０  パディング手段
３６０，４６０  ワード整列手段
３７０，４７０  クロマインターリーブ手段
５９０  選択器
６２０  システムパフォーマンス制御手段
【図１】
2009272724.tif 000003
【図２】
2009272724.tif 000004
【図３】
2009272724.tif 000005
【図４】
2009272724.tif 000006
【図５】
2009272724.tif 000007
【図６】
2009272724.tif 000008
【図７】
2009272724.tif 000009
【図８】
2009272724.tif 000010