(57)【特許請求の範囲】
【請求項１】
フィルタ処理を行う画素演算装置であって、
Ｎ個の画素処理手段と、
Ｎ個の画素データ及びフィルタ係数を供給する供給手段と、
Ｎ個の画素処理手段を並列に動作させる制御手段とを備え、
前記Ｎ個の画素処理手段は、クロック入力毎にＮ個の画素データを右シフトする第１シフタと、クロック入力毎にＮ個の画素データを左シフトする第２シフタを形成し、
前記第１シフタは、前記供給手段に供給された画素データを右シフトした後、前クロック入力において左隣の画素処理手段から右シフトされた画素データを右シフトし、
前記第２シフタは、前記供給手段に供給された画素データを左シフトした後、前クロック入力において右隣の画素処理手段から左シフトされた画素データを左シフトし、
各画素処理手段は、供給手段に供給された画素データとフィルタ係数とを用いて演算した後、各画素処理手段に対して隣接する２つの画素処理手段からクロック入力毎にシフトされる２つの画素データをクロック入力毎に取得し、取得した画素データを用いてクロック入力毎に演算し、演算結果をクロック入力毎に累積することを特徴とする画素演算装置。
【請求項２】
フィルタ処理のタップ数を指定する手段をさらに備え、
前記画素処理手段は、隣接する画素処理手段からの画素データの取得と、取得した画素データを用いた演算及び累積とを、指定されたタップ数に応じたクロック入力回数繰り返すことを特徴とする請求項１記載の画素処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像をリサイズするためのフィルタリング回路を含む画素演算装置に関する。
【０００２】
【従来の技術】
近年、デジタル映像機器の技術進歩が著しく、動画の圧縮処理／伸張処理、リサイズ等を扱ういわゆるメディアプロセッサが実用化されている。
画像のリサイズには、ＦＩＲ（ｆｉｎｉｔｅ ｉｍｐｕｌｓｅ ｒｅｓｐｏｎｓｅ)フィルタがよく用いられる。
【０００３】
図１は、従来技術におけるＦＩＲフィルタ処理を行う回路例を示すブロック図である。同図はタップ数７、係数が対称なＦＩＲフィルタである。
同図において、データ入力端子１００１より時系列的に入力されたデータは、遅延器１００２、１００３、１００４、１００５、１００６、１００７とこの順に順次転送される。フィルタ係数が対称である場合、つまりデータ入力端子の入力及び各遅延器の出力（タップと呼ばれる）に対応する係数が、中央のタップ（遅延機１００４の出力）に対して対称である場合、各タップのデータにフィルタ係数を乗算するのではなく、同じ係数のタップのデータ同士の加算を行ってから係数を乗算する。
【０００４】
例えば、データ入力部１００１の入力データと遅延器１００７の出力データは、加算器１００８で加算され、さらに乗算器１００８にて加算結果と係数h0とが乗算される。遅延器１００２の出力と遅延器１００６の出力は、加算器１００９で加算され、さらに、乗算器１００９にて加算結果と係数h1とが乗算される。
乗算器１０１１〜乗算器１０１４の各出力データは、加算器１０１５により加算される。加算器１０１５の出力データはフィルタ処理結果としてデータ出力端子１０１６から時系列的に出力される。係数h0〜h3は画像の縮小率に応じて定められる。例えば縮小率が１／２であれば、時系列の出力データを１／２に間引くことにより縮小画像が得られる。
【０００５】
また、フィルタ係数が対称に選ばれるのは、直線位相（位相特性が周波数に対して直線になること）が得られることにより画像の視覚上好ましいからである。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来の方法では、画像データに対してフィルタリング処理を行う場合、回路の構成上、画像を構成する画素データを端から順に入力していくので、１クロックで入力できる画素データは１つであるため、処理速度を高めるには動作周波数を高める必要がある。高い動作周波数での動作は、コスト及び消費電力大きくなるという問題がある。
【０００７】
また、従来の方法ではタップ数毎に回路が異なるため自由度がなく、タップ数毎別に回路を設けると莫大なコストがかかってしまう。
本発明の第１の目的は、タップ数を可変にすることができ、周波数を上げずに処理を高速化するフィルタリング処理を行う画素演算装置を提供することにある。
【０００８】
本発明の第２の目的は、さらにフィルタリング処理だけでなくＭＣ（動き補償）処理にも利用可能で、回路規模の小型化を図った画素演算装置を提供することにある。
第３の目的は、さらにフィルタリング処理だけでなくＭＥ（動き予測）処理にも利用可能であり、回路規模の小型化を図った画素演算装置を提供することにある。
【０００９】
第４の目的は、さらにフィルタリング処理だけでなく、デジタル映像機器におけるＯＳＤ（On Screen Display）処理にも利用であり、回路規模の小型化を図った画素演算装置を提供することにある。
【００１０】
【課題を解決するための手段】
上記第１の目的を達成する画素演算装置は、フィルタ処理を行う画素演算装置であって、Ｎ個の画素処理手段と、Ｎ個の画素データ及びフィルタ係数を供給する供給手段と、Ｎ個の画素処理手段を並列に動作させる制御手段とを備える。
各画素処理手段は、供給手段に供給された画素データとフィルタ係数とを用いて演算した後、各画素処理手段に対して隣接する画素処理手段から画素データを取得し、取得した画素データを用いて演算して演算結果を累積する。前記制御手段は、隣接する画素処理手段からの画素データの取得と、取得した画素データを用いた演算及び累積とをタップ数に応じた回数繰り返すようＮ個の画素処理手段を制御する。
【００１１】
ここで、前記Ｎ個の画素処理手段は、Ｎ個の画素データを右シフトする第１シフタと、Ｎ個の画素データを左シフトする第２シフタを形成する。各画素処理手段は、隣接する２つの画素処理手段からシフトアウトされる２つの画素データを用いて演算する。
上記第２の目的を達成する画素演算装置は、画素データとして差分画像の画素データと参照フレームの画素データとを供給手段から供給する。
【００１２】
【発明の実施の形態】
本発明の画素演算ユニットは、主に（ａ）画像の拡大／縮小に用いられるフィルタ処理、（ｂ）動き補償（Moving Compensation、以下ＭＥ）処理、（ｃ）ＯＳＤ（On Screen Display）処理、（ｄ）動き予測（Moving Estimation、以下ＭＥ）処理などを選択的に実行するように構成される。（ａ）フィルタ処理については、画素演算ユニットは、でタップ数を固定することなく可変とし、水平方向又は垂直方向に連続する複数の画素（例えば１６画素）を並列に処理する。さらに、垂直方向のフィルタ処理は、圧縮動画データの伸長処理と同期して行う。
【００１３】
以下、本発明の実施の形態における画素演算ユニットについて次の順に説明する。
１  メディアプロセッサの構成
１．１  画素演算ユニットの構成
１．２  画素並列処理部の構成
２．１  フィルタ処理
２．２  ＭＣ（動き補償）処理
２．３  ＯＳＤ（オンスクリーンディスプレイ）処理
２．４  ＭＥ（動き予測）処理
３．１  垂直フィルタ処理（その１）
３．１．１  １／２縮小
３．１．２  １／４縮小
３．２  垂直フィルタ処理（その２）
３．２．１  １／２縮小
３．２．２  １／４縮小
４  変形例
＜１  メディアプロセッサの構成＞
本実施形態における画素演算ユニットがメディア処理（圧縮音声動画データの伸長処理、音声動画データの圧縮処理など）を行うメディアプロセッサに内臓されている場合について以下説明する。メディアプロセッサは、例えばデジタルＴＶ放送を受信するセットトップボックス、テレビ受像機、ＤＶＤ録画再生装置などに実装される。
【００１４】
図２は、画素演算ユニットを備えるメディアプロセッサの構成を示すブロック図である。同図においてメディアプロセッサ２００は、デュアルポートメモリ１００、ストリームユニット２０１、入出力バッファ（以下Ｉ／Ｏバッファと略す）２０２、セットアッププロセッサ２０３、ビットストリームＦＩＦＯ２０４、可変長符号復号部（ＶＬＤ）２０５、可変長符号復号部２０５、変換エンジン（Transfer Engine、以下ＴＥ）２０６、画素演算ユニットＡ（以下ＰＯＵＡ）２０７、画素演算ユニットＢ（以下ＰＯＵＢ）２０８、ＰＯＵＣ２０９、オーディオユニット２１０、ＩＯＰ２１１、入出力プロセッサ（以下ＩＯＰ）２１１、ビデオバッファメモリ２１２、ビデオユニット２１３、ホストユニット２１４、ＲＥ２１５、フィルタ部２１６を備える。
【００１５】
デュアルポートメモリ１００は、外部メモリ２２０に対する入出力ポート（以下外部ポート）と、メディアプロセッサ２００内部に対する入出力（以下内部ポートと呼ぶ）と、キャッシュメモリとを備え、メディアプロセッサ２００内の各構成要素のうち外部メモリ２２０にデータを読み書きする構成要素（以下マスターデバイス）からのアクセス要求を内部ポートから受け付け、受け付けたアクセス要求に従って外部メモリ２２０をアクセスする。その際、デュアルポートメモリ１００は、内部のキャッシュメモリに外部メモリ２２０のデータの一部をキャッシングする。また、外部メモリ２２０はＳＤＲＡＭやＲＤＲＡＭなどのメモリであり、圧縮動画データ、圧縮音声データ、復号後の音声データ、復号後の動画データなどを一時的に記憶する。
【００１６】
ストリームユニット２０１は、外部からストリームデータ（いわゆるＭＰＥＧストリーム）を入力し、入力されたストリームデータをビデオエレメンタリーストリーム、オーディオエレメンタリーストリームに分離し、それぞれをＩ／Ｏバッファ２０２に書き込む。
Ｉ／Ｏバッファ２０２は、ビデオエレメンタリーストリーム、オーディオエレメンタリーストリーム、オーディオデータ（伸長されたオーディオデータ）を一時的に保持するバッファメモリである。ビデオエレメンタリーストリーム、オーディオエレメンタリーストリームはそれぞれストリームユニット２０１からＩ／Ｏバッファ２０２に格納され、さらにＩＯＰ２１１の制御によってデュアルポートメモリ１００を介して外部メモリ２２０に格納される。オーディオデータは、ＩＯＰ２１１の制御によって外部メモリ２２０からデュアルポートメモリ１００を介してＩ／Ｏバッファ２０２に格納される。
【００１７】
セットアッププロセッサ２０３は、オーディオエレメンタリーストリームのデコード（伸長）と、ビデオエレメンタリーストリームのマクロブロックのヘッダ解析とを行う。オーディオエレメンタリーストリーム及びビデオエレメンタリーストリームは、ＩＯＰ２１１の制御によって、外部メモリ２２０からデュアルポートメモリ１００を介してビットストリームＦＩＦＯ２０４に転送される。セットアッププロセッサ２０３はビットストリームＦＩＦＯ２０４からオーディオエレメンタリーストリームを読み出してデコードし、デコード後のオーディオデータをセットアップメモリ２１７に格納する。セットアップメモリ２１７内のオーディオデータは、ＩＯＰ２１１によってデュアルポートメモリ１００を介して外部メモリ２２０に転送される。また、セットアッププロセッサ２０３は、ビットストリームＦＩＦＯ２０４からビデオエレメンタリーストリームを読み出してマクロブロックヘッダを解析し、解析結果をＶＬＤ２０５に通知する。
【００１８】
ビットストリームＦＩＦＯ２０４は、ビデオエレメンタリーストリームを可変長符号復号部２０５に、オーディオエレメンタリーストリームをセットアッププロセッサ２０３に供給するためのＦＩＦＯメモリである。ビデオエレメンタリーストリーム及びオーディオエレメンタリーストリームは、ＩＯＰ２１１の制御によって外部メモリ２２０からデュアルポートメモリ１００を介してビットストリームＦＩＦＯ２０４に転送される。
【００１９】
ＶＬＤ２０５は、ビットストリームＦＩＦＯ２０４から供給されるビデオエレメンタリーストリームに含まれる可変長符号を復号する。この復号結果はマクロブロック単位のＤＣＴ係数群である。
ＴＥ２０６は、ＶＬＤ２０５の復号結果に対してマクロブロック単位にＩＱ（逆量子化）処理及びＩＤＣＴ（逆ＤＣＴ）処理を行う。これらの処理結果はマクロブロックである。１マクロブロックは、４つの輝度ブロック（Ｙ１〜Ｙ４）と２つの色差ブロック（Ｃｂ、Ｃｒ）からなる。１ブロックは８×８画素である。但し、Ｐピクチャ、Ｂピクチャについては１ブロックは８×８個の差分値としてＴＥ２０６から出力され。ＴＥ２０６は復号結果をデュアルポートメモリ１００を介して外部メモリ２２０に格納する。
【００２０】
ＰＯＵＡ２０７は、主に（ａ）フィルタ処理、（ｂ）ＭＣ処理、（ｃ）ＯＳＤ処理、（ｄ）動き予測（Moving Estimation）処理などを選択的に実行する。
（ａ）のフィルタ処理では、ＰＯＵＡ２０７は外部メモリ２２０に格納されたビデオデータ（フレームデータ）に含まれる１６個の画素データを並列にフィルタリングし、フィルタリング後の１６個の画素を間引く又は補間することにより縮小、拡大する。縮小語の後のデータはＰＯＵＣ２０９の制御によってデュアルポートメモリ１００を介して外部メモリ２２０に格納される。
【００２１】
（ｂ）のＭＣ処理では、ＰＯＵＡ２０７は、ＴＥ２０６によって外部メモリ２２０に格納されたＰピクチャ及びＢピクチャについてのＩＱ及びＩＤＣＴ処理結果（つまり画素データの差分値）と、参照フレーム中の画素データとを１６並列に加算する。１６組の差分値と画素データは、セットアッププロセッサ２０３におけるマクロブロックヘッダ解析によって検出された動きベクトルに従って、ＰＯＵＣ２０９によってＰＯＵＡ２０７に入力される。
【００２２】
（ｃ）ＯＳＤ処理では、ＰＯＵＡ２０７は、外部メモリ２２０等に格納されたＯＳＤ画像（静止画）をデュアルポートメモリ１００を介して入力し、外部メモリ２２０内の表示用フレームデータに上書きする。ここでＯＳＤ画像とは、ユーザのリモコン操作などに応じて表示されるメニュー画像や、時刻表示、チャネル番号表示などをいう。
【００２３】
（ｄ）のＭＥ処理とは、未圧縮のフレームデータ内の符号化対象のマクロブロックに対して、参照フレーム中の相関性の高い矩形領域を探索し、符号化対象のマクロブロックから相関性の最も高い矩形領域を指す動きベクトルを求める処理である。ＰＯＵＡ２０７は、符号化対象のマクロブロックの画素と、探索領域内の矩形領域の画素との差分を１６個並列で算出する。
【００２４】
ＰＯＵＢ２０８は、ＰＯＵＡ２０７と同一構成であり、上記（ａ）〜（ｄ）の処理を動的に分担する。
ＰＯＵＣ２０９は、ＰＯＵＡ２０７及びＰＯＵＢ２０８に対する画素データ群の供給と、処理結果の外部メモリ２２０への転送とを制御する。
オーディオユニット２１０は、Ｉ／Ｏバッファ２０２に格納されたオーディオデータを出力する。
【００２５】
ＩＯＰ２１１は、メディアプロセッサ２００内のデータ入出力（データ転送）を制御する。データ転送には次の種類がある。第１は、Ｉ／Ｏバッファ２０２に格納されたストリームデータをデュアルポートメモリ１００を介して外部メモリ２２０内のストリームバッファ領域に転送することである。第２は、外部メモリ２２０に格納されたビデオエレメンタリーストリーム及びオーディオエレメンタリーストリームをデュアルポートメモリ１００を介してビットストリームＦＩＦＯ２０４に転送することである。第３は、外部メモリ２２０に格納されたオーディオデータをデュアルポートメモリ１００を介してＩ／Ｏバッファ２０２に転送することである。
【００２６】
ビデオユニット２１３は、外部メモリ２２０のビデオデータ（画像フレーム）から2,3ライン分の画素データを読み出して、ビデオバッファメモリ２１２に格納し、その2,3ライン分の画素データを映像信号に変換して外部に接続されたテレビ受像器等のディスプレィ装置に出力する。
ホストユニット(HOST)２１４は、外部のホストマイコンからの指示を受け取り、指示に応じてＭＰＥＧデコード、ＭＰＥＧエンコード、ＯＳＤ処理、縮小・拡大処理など開始・終了を制御する。
【００２７】
レンダリングエンジン(RE)２１５は、マスターデバイスであり、コンピュ−タ・グラフィックスにおけるレンダリング処理を行う。外部に専用ＬＳＩ２１８とが接続されている場合に間でデータ入出力を行う。
フィルタ２１６は、静止画データの拡大縮小処理を行う。外部に専用ＬＳＩ２１８とが接続されている場合に間でデータ入出力を行う。
【００２８】
上記ではメディアプロセッサが、ストリームユニット２０１からストリームデータを入力してデコード（伸長）する場合を中心に説明したが、圧縮されていないビデオデータ及びオーディオデータをエンコード（圧縮）する場合は、逆の流れとなる。その際、ＰＯＵＡ２０７（又はＰＯＵＢ２０８）はＭＥ処理を、ＴＥ２０６はＤＣＴ処理及びＱ（量子化）処理を、ＶＬＤ２０５は可変長符号化を、行う。
＜１．１  画素演算ユニットの構成＞
図３は、画素演算ユニットの構成を示すブロック図である。
【００２９】
ＰＯＵＡ２０７とＰＯＵＢ２０８は同じ構成であるため、ここではＰＯＵＡ２０７を説明する。
同図のようにＰＯＵＡ２０７は、画素並列処理部２１、入力バッファ群２２出力バッファ群２３、命令メモリ２４、命令デコーダ２５、指示回路２６、ＤＤＡ回路２７を備える。
【００３０】
画素並列処理部２１は、画素転送部１７、１６個の画素処理部１〜画素処理部１６、画素転送部１８を備え、入力バッファ群２２から入力される複数の画素を対象に上記（ａ）フィルタ処理、（ｂ）ＭＣ処理、（ｃ）ＯＳＤ処理、（ｄ）ＭＥ）処理を行い、出力バッファ群２３に出力する。（ａ）〜（ｄ）の各処理は、マクロブロック単位すなわち１６画素を１６回（１６ライン分）繰り返すことにより終了する。各処理の起動は、ＰＯＵＣ２０９により制御される。また、画素転送部１７は、フィルタ処理において１６個の画素のさらに左側（又は上側）の複数画素（ここでは８画素）を保持し、クロック毎に右シフトする。画素転送部１８は、フィルタ処理において１６個の画素のさらに右側（又は下側）の複数画素（ここでは８画素）を保持し、クロック毎に左シフトアウトする。
【００３１】
入力バッファ群２２は、ＰＯＵＣ２０９の制御により、デュアルポートメモリ１００から転送される処理対象となる複数の画素を保持し、さらにフィルタ処理ではフィルタ係数も保持する。
出力バッファ群２３は、画素並列処理部２１による処理結果（１６画素に対応する１６の処理結果）の並びを任意に変更して一時的に保持する。フィルタ処理では画素の並びを変更して保持することにより画素の間引き（縮小時）又は補間（拡大時）とを行う。
【００３２】
命令メモリ２４は、フィルタ処理用のマイクロプログラム（フィルタμＰ）、ＭＣ処理用のマイクロプログラム（ＭＣμＰ）、ＯＳＤ処理用のマイクロプログラム（ＯＳＤμＰ）、ＭＥ処理用のマイクロプログラム（ＭＥμＰ）を記憶している。これ以外にも命令メモリ２４は、マクロブロックのフォーマット変換用のマイクロプログラム、画素の数値表現を変換するためのマイクロプログラムなどを記憶している。ここで、マクロブロックのフォーマットとは、ＭＰＥＧ規格に定められている「４：２：０」、「４：２：２」、「４：４：４」などのＹ、Ｃｂ、Ｃｒブロックの画素のサンプリングレートの比率をいう。画素の数値表現には画素のとりうる値として０〜２５５で表現される場合（一般的なＭＰＥＧデータ等）と−１２８〜１２７で表現される場合（ＤＶカメラ等）がある。
【００３３】
命令デコーダ２５は、命令メモリ２４からマイクロプログラム中のマイクロコードを逐次読み出して解読し、解読結果に従ってＰＯＵＡ２０７内の各部を制御する。
指示回路２６は、ＰＯＵＣ２０９から命令メモリ２４のどのマイクロプログラムを起動すべきかの指示（開始アドレス等）を受付けて、指示されたマイクロプログラムを起動する。
【００３４】
ＤＤＡ回路２７は、フィルタ処理において、入力バッファ群２２に保持されたフィルタ係数群の選択制御を行う。
＜１．２  画素並列処理部の構成＞
図４、図５は、画素並列処理部の左半分、右半分の詳細な構成を示すブロック図である。
【００３５】
図４において画素転送部１７は、８個の入力ポートＡ１７０１〜Ｈ１７０８、画素データ保持し１クロック時間遅延する８個の遅延器Ａ１７０１〜遅延器Ｈ１７０９、入力ポートの画素データと左の遅延器出力の内一方を選択する７個の選択部Ａ１７１７〜Ｇ１７２３から構成され、入力バッファ群２２から並列入力される８画素を８つの遅延器に保持し、８つの遅延器に保持した画素をクロック同期して右シフトする右シフタとして機能する。
【００３６】
図５において画素転送部１８は画素転送部１７と比べシフトする方向が左である点で異なり、これ以外は同様の構成なので説明を省略する。
図４、図５における１６個の画素処理部１〜画素処理部１６は、いずれも同一構成であるので、画素処理部２を代表として説明する。
画素処理部２は、入力ポートＡ２０１〜入力ポートＣ２０３と、選択部Ａ２０４、Ｂ２０５、遅延器Ａ２０６〜Ｄ２０９、加算器Ａ１２０、乗算器Ａ２１１、加算器Ｂ２１２、出力ポートＤ２１３とから構成される。
【００３７】
選択部Ａ２０４は、入力ポートＡ２０１から入力される画素データと左隣の画素転送部１７から出力される画素データとのうち一方を選択する。
選択部Ａ２０４と遅延器Ａ２０６は、右隣の画素処理部３から入力される画素データを左隣の画素処理部１にシフト出力する機能も果たす。
選択部Ｂ２０５は、入力ポートＢ２０２から入力される画素データと右隣外部メモリ２２０からシフト出力される画素データとのうち一方を選択する。
【００３８】
選択部Ｂ２０５と遅延器Ｂ２０７は、左隣の画素処理部１から入力される画素データを右隣の画素処理部３にシフト出力する機能も果たす。
遅延器Ａ２０６、遅延器Ｂ２０７はそれぞれ選択部Ａ２０４、選択部Ｂ２０５に選択された画素データを保持する。
遅延器Ｂ２０７は、入力ポートＣ２０３からの画素データを保持する
加算器Ａ１２０は遅延器Ａ２０６と遅延器Ｂ２０７から出力される画素データを加算する。
【００３９】
乗算器Ａ２１１は、加算器Ａ１２０の加算結果と遅延器Ｃ２０８からの画素データとを乗算する。この乗算器Ａ２１１はフィルタ処理では画素データとフィルタ係数との乗算に利用される。
加算器Ｂ２１２は、乗算器Ａ２１１の乗算結果を遅延器Ｄ２０９のデータとを加算する。
【００４０】
遅延器Ｄ１０９は、加算器Ｂ２１２の加算結果を累積する。
画素処理部２は、これらの構成要素を選択的に組み合わせて動作させることにより上記（ａ）フィルタ処理、（ｂ）ＭＣ処理、（ｃ）ＯＳＤ処理、（ｄ）ＭＥ処理を実行する。これらの構成要素を選択的に組み合わせる動作は、命令メモリ２４及び命令デコーダ２５によるマイクロプログラム制御によってなされる。
【００４１】
図６（ａ）は、入力バッファ群２２の詳細な構成を示すブロック図である。
同図のように入力バッファ群２２は、画素転送部１７に画素データを供給する８個のラッチ２２１と、画素処理部１〜１６に画素データを供給する１６個のラッチ部２２２と、画素転送部１８に画素データを供給する８個のラッチ２２３とから構成される。これらは、ＰＯＵＣ２０９の制御により外部メモリ２２０からデュアルポートメモリ１００を介して画素データ群が転送される。
【００４２】
各ラッチ部２２２は、画素処理部の入力ポートＡ、Ｂに画素データを供給する２個のラッチと、画素処理部の入力ポートＣに画素データ又はフィルタ係数を供給する選択部２２４からなる。
図６（ｂ）は、選択部２２４の詳細な構成を示すブロック図である。
同図のように選択部２２４は、８つのラッチ２２４ａ〜２２４ｈと、８つのラッチからデータの何れか１つを選択するセレクタ２２４ｉとからなる。
【００４３】
ラッチ２２４ａ〜２２４ｈは、フィルタ処理においてフィルタ係数a0〜a7（又はa0/2、a1〜a7）を保持する。これらフィルタ係数は、ＰＯＵＣ２０９により外部メモリ２２０からデュアルポートメモリ１００を介してラッチ２２４ａ〜２２４ｈに転送される。
セレクタ２２４ｉは、ＤＤＡ回路２７の制御によってクロックに同期してラッチ２２４ａから２２４ｈに順次選択される。このようにフィルタ係数の画素処理部への供給は、マイクロコードにより直接制御されるのではなく、ＤＤＡ回路２７によりハードウェアにより制御されるので高速化される。
【００４４】
図７は、出力バッファ群２３の構成を示すブロック図である。
同図のように出力バッファ群２３は、１６個のセレクタ２４ａ〜２４ｐと、１６個のラッチ２３ａ〜２３ｐとからなる。
セレクタ２４ａ〜２４ｐは、いずれも画素処理部１〜１６の１６個の処理結果が入力され、そのうち１つを選択する。この選択制御は命令デコーダ２５によってなされる。
【００４５】
ラッチ２３ａ〜２３ｐはそれぞれセレクタ２４ａ〜２４ｐの選択結果を保持する。
例えば、フィルタ処理の結果を１／２に縮小する場合には、１６個の画素に対する画素処理部１〜１６の１６個の処理結果のうち、画素処理部１、３、５、・・・１５の処理結果を８個のセレクタ２４ａ〜２４ｈが選択してラッチ２３ａ〜２３ｈに格納され、さらに、次の１６個の画素に対する画素処理部１〜１６の１６個の処理結果のうち、画素処理部２、４、６、・・・１６の処理結果を８個のセレクタ２４ｉ〜２４ｐが選択してラッチ２３ｉ〜２３ｐに格納される。このようにして画素が間引かれ、１／２縮小された１６個の画素データが出力バッファ群２３に保持され、さらにＰＯＵＣ２０９の制御によりデュアルポートメモリ１００を介して外部メモリ２２０に転送される。
＜２．１  フィルタ処理＞
画素演算ユニットにおけるフィルタ処理の詳細について説明する。
【００４６】
ＰＯＵＣ２０９はフィルタ処理の対象となるマクロブロックを特定し、ＰＯＵＡ２０７又はＰＯＵＢ２０８に対して３２個の画素データ及びフィルタ係数a0/2,a1〜a7を初期値として入力バッファ群２２に転送し、さらに指示回路２６にタップ数の通知とともにフィルタ処理の開始を指示する。
図８は、画素演算ユニット（ＰＯＵＡ２０７）にてフィルタ処理を行う場合の画素データの初期入力値を示す図である。同図において入力ポート欄は図４、図５に示した各入力ポートを意味する。入力画素欄は、入力バッファ群２２から各入力ポートに供給される画素データを意味する。出力ポート欄は図４、図５に示した出力ポートＤ（加算器Ｂ出力）を、出力画素欄はその出力値を意味する。
【００４７】
入力ポートに画素データを供給する入力バッファ群２２には、図９に示すように水平方向に連続する３２個の画素データX1〜X32が、ＰＯＵＣ２０９によって転送されて保持されている。ここでのフィルタ処理の対象はX9〜X24の16個の画素データである。図８のように画素処理部１〜１６の入力ポートＡ及びＢには画素データX9〜X24が、入力ポートＣには入力バッファ群２２にて選択されたフィルタ係数a0/2が初期値として供給される。
【００４８】
さらに、入力バッファ群２２から初期入力値が画素並列処理部２１に供給された後、フィルタ処理として所望するタップ数に応じた数のクロック入力によりフィルタ処理がなされる。
図１０は、16個の画素処理部のうち画素処理部１を代表として、その演算過程を示す説明図である。同図では、入力クロック数毎に、画素処理部１内の遅延器Ａ〜Ｄの保持内容と、加算器Ｂの出力値とを記している。また、図１１は、画素処理部１のクロック入力毎の出力ポートＤ（加算器Ｂ出力）の出力値を示す図である
画素処理部１は最初のクロック入力（CLK1）によって初期入力値として遅延器Ａ及びＢは画素データX9を、遅延器Ｄはフィルタ係数a0/2を保持し、遅延器Dは０クリアされる。このとき選択部Ａ及びＢは何れも入力ポートを選択している。その結果加算器Ａは(X9+X9)を、乗算器Ａは(X9+X9)*a0/2を、加算器Ｂは(X9*a0/2+0（つまりa0*X9）を出力する（図１１参照）。
【００４９】
２回目のクロック入力（CLK2）以降では、選択部Ａ及びＢは入力ポートＡ、Ｂではなく隣接する画素処理部又は画素転送部からのシフト出力を選択する。
２回目のクロック入力（CLK2）によって、遅延器Ａ〜Ｄには、画素データX10、X8、フィルタ係数a1、a0*X9を保持する。その結果、加算器Ｂはa0*X9+a1(X10+X8)を出力する（図１１参照）。このように２回目は、フィルタ係数a1（遅延器Ｃ）と、両隣からシフト出力される画素データの和（加算器Ａ）とを乗算器Ａにて乗算している。加算器Ｂは、この乗算結果と遅延器Ｄの累積値とを加算している。
【００５０】
３回目のクロック入力（CLK3）では、画素処理部１は２回目のクロック入力と同様に動作をすることにより、加算器Ｂからa0*X9+a1(X10+x8)+a2(X11+X7)を出力する。
４回目〜９回目のクロック入力（CLK4〜CLK９）でも同様に動作をすることにより、加算器Bは図１１に示す出力値をそれぞれ出力することになる。
【００５１】
このようにして、画素処理部１のファイルタ処理結果（出力データ）は９クロックの場合、
a0・X9+a1(X10+X8)+a2(X11+X7)+a3(X12+X6)
+a4(X13+X5)+a5(X14+X4)+a6(X15+X3)+a7(X16+X2)+a8(X17+X1)
となる。
【００５２】
図１０、図１１ではCLK９までの処理過程を示しているが、入力クロック数はＰＯＵＣ２０９から通知されたタップ数に応じて命令デコーダ２５の制御によって打ち切られる。すなわち、各画素処理部は、タップ数３の場合はCLK２でフィルタ処理を終了し、タップ数５の場合はCLK３で終了し、タップ数７の場合はCLK4でフィルタ処理を終了する。別言すると、タップ数（２ｎ−１）のフィルタ処理ではｎ回のクロック入力で終了する。
【００５３】
命令デコーダ２５は１６画素の並列処理を１６ライン分繰り返し、これにより４ブロックのフィルタ処理を終える。その際、１６個のフィルタ処理結果は、出力バッファ群２３において間引き処理または補間処理されることによって縮小又は拡大される。出力バッファ群２３の縮小又は拡大後の画素群は１６個保持される毎にＰＯＵＣ２０９の制御によってデュアルポートメモリ１００を介して外部メモリ２２０に転送される。また、命令デコーダ２５は、16ライン目終了時にＰＯＵＣ２０９に終了した旨を通知する。ＰＯＵＣ２０９は、次のマクロブロックについて上記と同様にＰＯＵＡ２０７を初期入力値とフィルタ係数の供給及びフィルタ処理の開始を指示する。
【００５４】
なお、画素処理部２のファイルタ処理結果は９クロックの場合次式となる。
a0・X10+a1(X11+X9)+a2(X12+X8)+a3(X13+X7)
+a4(X14+X6)+a5(X15+X5)+a6(X16+X4)+a7(X17+X3)+a8(X18+X2)
画素処理部３のファイルタ処理結果は９クロックの場合次式となる。
a0・X11+a1(X12+X10)+a2(X13+X9)+a3(X14+X8)
+a4(X15+X7)+a5(X16+X6)+a6(X17+X5)+a7(X18+X4)+a8(X19+X3)
画素処理部４〜１６のファイルタ処理結果も画素位置が異なるのみで同様なので省略する。
【００５５】
このように画素並列処理部２１は、16個の入力画素に対して並列にフィルタ処理を実行し、しかも入力クロック数の制御によってタップ数を任意にすることができる。
なお、図８では、画素処理部１の入力ポートＡ、Ｂ、Ｃの入力画素が（X9、X9、a0/2）としているが、（X9、0、a0）又は（0、X9、a0）としてもよい。画素処理部２〜１６も対象画素が異なるだけで同様にしてもよい。
＜２．２  ＭＣ（動き補償）処理＞
復号対象フレームがＰピクチャである場合のＭＣ処理の詳細について説明する。
【００５６】
ＰＯＵＣ２０９は指示回路２６にＭＣ処理の開始を指示するとともに、ＭＣ処理の対象となる復号処理中のフレーム内のマクロブロック（差分値）と、参照フレームにおける動きベクトルが指す矩形領域を特定し、ＰＯＵＡ２０７又はＰＯＵＢ２０８に対して１６個の差分値D1〜D16及び矩形領域内の１６個の画素データP1〜P16を入力バッファ群２２に設定する。
【００５７】
図１２は、画素演算ユニットにてＭＣ処理（Ｐピクチャ）を行う場合の入出力画素データを示す図である。同図において入力ポート欄は、図４及び図５に示した画素転送部１７、画素処理部１〜１６、画素転送部１８の入力ポートを意味する。入力画素欄は、入力ポートに入力される画素データを意味する。ＭＣ処理では画素転送部１７及び１８は使用されないので、入力画素は何であってもよい（don't care）。出力ポート欄は図４、図５に示した出力ポートＤ（加算器Ｂ出力）を、出力画素欄はその出力値を意味する。
【００５８】
図１３はＭＣ処理における画素処理部１〜１６への入力画素の説明図である。同図に示すようにD1〜D16は復号対象フレームのマクロブロック（ＭＢ）中の１６個の差分値である。P1〜P16は参照フレームにおいて動きベクトルが指す矩形領域中の１６個の画素データである。
ＭＣ処理では、画素処理部１〜１６内の選択部Ａ、Ｂはそれぞれ常に入力ポートＡ、Ｂを選択する。これにより、入力ポートＡからの画素データ、入力ポートＢからの差分値は、選択部Ａ、Ｂを介して遅延器Ａ、Ｂに入力され保持され、さらに加算器Ａにて加算される。この加算結果は乗算器にて１倍され、加算器Ｂにて０を加えられて出力ポートＤから出力される。つまり入力ポートＡからの画素データと入力ポートＢからの差分値と単純に加算され出力ポートＤから出力される。
【００５９】
さらに１６個の加算結果は出力バッファ群２３に格納され、ＰＯＵＣ２０９によりデュアルポートメモリ１００を介して外部メモリ２２０内の復号対象フレームに書き戻される。
以上の処理を復号対象フレームの１６画素単位に繰り返すことによりＭＣ処理がなされる。なお、各画素処理部では単純加算しているだけであり１クロック毎に１６画素の加算結果を得ることができる。
【００６０】
次に復号対象フレームがＢピクチャの場合のＭＣ処理を説明する。
図１４は、画素演算ユニットにてＭＣ処理（Ｂピクチャ）を行う場合の入出力画素データを示す図である。同図において入力ポート欄、入力画素欄、出力ポート欄、出力画素欄は、図１２と同様である。ただし、入力画素欄は第1クロック（CLK1）と第２クロック（CLK2）と2回に分けて入力される点が図１２と異なっている。
【００６１】
P1〜P16と、B1〜B16は異なる２つの参照フレームにおいてそれぞれ動きベクトルが指す矩形領域中の１６個の画素データである。
ＭＣ処理では、画素処理部１〜１６内の選択部Ａ、Ｂはそれぞれ常に入力ポートＡ、Ｂを選択する。第１クロック（CLK１）において入力ポートＡ、Ｂから選択部Ａ、Ｂを介して遅延器Ａ、ＢにP1、B1が保持され、同時に入力ポートCから定数1/2遅延器Cに保持される。これにより乗算器Ａから（P1+B1)/2が得られる。第２クロック(CLK2)において、乗算結果（P1+B1)/2が遅延器Ｄに保持され、同時に入力ポートＡ、Ｂ、Ｃからの(1,0,D1)が遅延器Ａ、Ｂ、Ｃに保持されるので、乗算器ＡからのD1と遅延器Dからの（P1+B1)/2とが加算器Ｂにより加算される。その結果出力ポートから（P1+B1)/2+D1が出力される。
【００６２】
さらに１６個の加算結果は出力バッファ群２３に格納され、ＰＯＵＣ２０９によりデュアルポートメモリ１００を介して外部メモリ２２０内の復号対象フレームに書き戻される。
以上の処理を復号対象フレームの１６画素単位に繰り返すことによりＢピクチャに対するＭＣ処理がなされる。
＜２．３  ＯＳＤ（オンスクリーンディスプレイ）処理＞
ＰＯＵＣ２０９は指示回路２６にＯＳＤ処理の開始を指示するとともに、外部メモリ２２０に保持されたＯＳＤ画像から順次１６個の画素データX1〜X16を読み出して入力バッファ群２２に設定する。
【００６３】
図１５は、画素演算ユニットにてＯＳＤ（オンスクリーンディスプレイ）処理を行う場合の入出力画素データを示す図である。
同図において画素転送部１７、１８は使用されない。画素処理部１〜１６の入力ポートＡには入力バッファ群２２から画素データX1〜X16が、入力ポートＢにはそれぞれ０が、入力ポートＣにはそれぞれ１が入力される。図１６にＯＳＤ画像中の１６個の画素が順次入力バッファ群２２に書き込まれる様子を示す。
【００６４】
画素処理部１〜１６内の各選択部Ａ、Ｂは、ＯＳＤ処理では入力ポートを常に選択する。例えば、画素処理部１では、入力ポートＡの画素データX1、入力ポートＢの”０”は、それぞれ遅延器Ａ、Ｂに保持され、さらに加算器Ａにより加算される（X1+0＝X1）。加算結果は乗算器Ａにて入力ポートＣから入力された”１”と乗算され加算器Ｂにて”０”が加算される。その結果、入力ポートＡの画素データX1はそのまま加算器Bから出力されることになる。同様に画素処理部２〜画素処理部１６からの入力ポートＡの画素データX2〜X16がそのまま加算器Ｂから出力される。
【００６５】
加算器Ｂから出力された画素データX1〜X16は出力バッファ群２３に格納され、さらにＰＯＵＣ２０９によってデュアルポートメモリ１００を介して外部メモリ２２０内の表示用フレームデータに上書きされる。
上記処理を図１６に示したように、ＯＳＤ画像全体に繰り返すことにより、外部メモリ２２０内のＯＳＤ画像を表示用フレームデータに上書きコピーすることになる。これは、ＯＳＤ処理のうち最も単純な処理であり、ＰＯＵＡ２０７又はＰＯＵＢ２０８は単にＯＳＤ画像を１６画素単位に中継しているだけである。
【００６６】
なお、ＯＳＤ処理の他の形態として、（１）ＯＳＤ画像と表示用フレームデータとをブレンドしてもよい。ブレンド率が０．５の場合には、入力バッファ群２２から画素処理部１〜画素処理部１６の各入力ポートＡにＯＳＤ画像の画素データ、各入力ポートＢに表示用フレームデータの画素データを供給すればよい。
また、ブレンド率がα：（１−α）の場合は、入力バッファ群２２から第１クロックにおいて各画素処理部の入力ポートＡ、Ｂ、Ｃに（ＯＳＤ画像の画素データ、０、α）を、第２クロックにおいて（０、表示用フレームデータの画素データ、１−α）を供給すればよい。
【００６７】
また、ＯＳＤ画像を縮小表示する場合には、入力バッファ群２２からＯＳＤ画像に上記フィルタ処理を施し、出力バッファ群２３から表示用フレームデータ内の縮小表示すべき位置に上書きコピーすればよい。
さらに、ＯＳＤ画像をフィルタ処理によって縮小した後上記ブレンドをするようにしてもよい。
＜２．４  ＭＥ（動き予測）処理＞
図１７は、画素演算ユニットにてＭＥ（動き予測）処理を行う場合の入出力画素データを示す図である。同図の入力画素欄においてX1〜X16は符号化対象のフレーム中のマクロブロックの16画素であり、R1〜R16は参照フレーム中の１６×１６画素の矩形領域中の１６画素である。図１８はこれらの画素の関係を示す説明図である。同図の参照フレーム中動きベクトル（ＭＶ）探索範囲は、符号化対象のマクロブロックと同じ位置の周辺（例えば水平及び垂直方向に＋１６画素〜−１６画素）の動きベクトルを探索する対象となる範囲である。このＭＶ探索範囲には、１６画素×１６画素の矩形領域が、画素単位の探索であれば１６×１６通りの位置に存在し、ハーフペル（１／２画素）単位の探索であれば３２×３２通りの位置に存在する。図１３ではＭＶ探索範囲内の左上の矩形領域のみを図示している。
【００６８】
ＭＥ処理は、ＭＶ探索範囲内の個々の矩形領域と、符合化対象のマクロブロックとの間で、各画素同士の差分の総和を求め、さらに総和が最小の矩形領域（つまり相関性の最も高い矩形領域）と符号化対象マクロブロックとの相対的な位置の変位を動きベクトルと決定する。符号化対象ブロックは相関性の最も高い矩形領域と差分がとられる。
【００６９】
入力バッファ群２２には、ＰＯＵＣ２０９の制御によって、符号化対象の画素データX1〜X16と、一の矩形領域の画素データR1〜R16とが転送される。この矩形領域内の画素データR1〜R16はクロック毎に矩形領域内の１ライン分が転送される。従って一の矩形領域について16ライン分のR1〜R16が転送される。
図１７によれば、図４に示した例えば画素処理部１は、第１クロックで入力ポートＡの画素データX1と、入力ポートＢの画素データR1との減算及び絶対値化が加算器Ａにてなされ、乗算器Ａを素通りする（１倍される）。加算器Ｂは乗算器出力と遅延器Ｄの保持データとの加算値が出力される。第１クロックでは加算器Bは１ライン目の｜X1-R1｜を出力することになる。
【００７０】
第２クロックでは、遅延器に１ライン目の｜X1-R1｜が保持されるので、加算器Ｂは、乗算器Ａからの２ライン目の｜X1-R1｜と遅延器Dに保持された１ライン目の｜X1-R1｜とを加算する。
第３クロックでは、遅延器に１及び２ライン目の｜X1-R1｜が累積されるので、加算器Ｂは、乗算器Ａからの３ライン目の｜X1-R1｜と遅延器Dに保持された１ライン目の｜X1-R1｜とを加算する。
【００７１】
同様の繰り返しにより第１６クロックでは、加算器Ｂは、１〜１６ラインまでの｜X1-R1｜の累積値(Σ｜X1-R1｜)を出力する。
画素処理部２〜１６についても各々累積値(Σ｜X1-R1｜)〜(Σ｜X16-R16｜)がを出力する。
これら１６個の累積値は第１７クロックにおいて出力バッファ群２３に保持され、ＰＯＵＣ２０９によって取り出され、１６個の累積値の合計が算出された後外部メモリ２２０内のワークエリアに保存される。
【００７２】
以上により一矩形領域と符号化対象マクロブロックとの画素データの差分の総和の計算が終了する。
この後さらに、ＭＶ探索範囲内の他の矩形領域についても同様にして差分の総和が算出される。ＭＶ探索範囲内の全て矩形領域（あるいは必要な矩形領域）について差分の総和が算出されると、そのうち最小の値をもつ矩形領域が最も相関性の高い矩形領域と判断され、動きベクトルが生成される。
【００７３】
なお、上記ＭＥ処理では画素処理部からの１６個の累積値の合計を別途行っているが、１６個の累積値の合計を画素処理部１〜１６において算出するようにしてもよい。この場合、一の矩形領域についての１６個の累積値は出力バッファ群２３からそのまま外部メモリ２２０のワークエリアに保存しておき、このワークエリアに１６個以上の矩形領域について累積値群が保存されたときに、画素処理部１〜１６のそれぞれが１つの矩形領域を分担して１６個の累積値を順次累積することにより差分の総和を求めるようにすればよい。
【００７４】
また、上記ＭＥ処理では画素単位で差分の算出を行っているが、ハーフペル単位で行うようにしてもよい。その場合、ハーフラインと実ラインのうち、実ラインに対しては上記のように１クロックで｜X1-R1｜を算出し、ハーフラインに対しては、例えば２クロックのうち１クロックでハーフペルの画素値（(R1+R1')/2)を算出し、次の１クロックで差分｜X1-(R1+R1')/2｜を算出するようにしてもよい。あるいは、５クロックのうち４クロックでハーフペルの画素値（(R1+R1'+R2+R2')/4)を算出し、次の１クロックで差分を算出するようにしてもよい。
＜３．１  垂直フィルタ処理（その１）＞
図１９は、図２に示したメディアプロセッサにおいて垂直フィルタ処理する場合のデータの流れを示した、メディアプロセッサの模式的なブロック図である。
【００７５】
同図において、デコーダ部３０１は、図２中のビデオエレメンタリーストリームをデコード（伸長する）ＶＬＤ２０５、ＴＥ２０６及びＰＯＵＡ２０７（ＭＣ処理）に相当し、ビデオエレメンタリーストリームをデコード（伸長）する。
フレームメモリ３０２は、外部メモリ２２０に相当し、デコード結果のビデオデータ（フレームデータ）を保持する
垂直フィルタ３０３は、ＰＯＵＢ２０８に相当し、垂直方向のフィルタ処理により垂直方向の縮小を行うする。
、バッファメモリ３０４は、外部メモリ２２０に相当し、縮小されたビデオデータ（表示用のフレームデータ）を保持する。
【００７６】
画像出力部３０５は、ビデオバッファメモリ２１２、ビデオユニット２１３に相当し、表示フレームデータを映像信号に変換して出力する。
なお、ＰＯＵＡ２０７はＭＣ処理を、ＰＯＵＢ２０８は垂直フィルタ処理を分担する。また、水平フィルタ処理による水平方向の縮小は、フレームメモリ３０２のデコードフレームデータに対してＰＯＵＡ２０７、ＰＯＵＢ２０８の一方が行うものとする。
＜３．１．１  １／２縮小＞
図２０は、図１９において１/２縮小処理を行う場合のフレームメモリ３０２、バッファメモリ３０４のデータ供給状態の時間変化を示す図である。
【００７７】
図２０において、グラフ７０１〜７０３の縦軸は、それぞれフィールドの垂直同期信号の周期Vを単位とする時間を示す。同図では５周期分を記してあり、グラフ７０〜７０３では時間軸が一致している。グラフ７０１の横軸は、フレームメモリ３０２データ量を示す。グラフ７７０２の横軸は、バッファメモリ３０４のデータ量を示す。グラフ７０３は画像出力部３０５において出力中のフレーム（フィールド）を示す。
【００７８】
グラフ７０１中の実線７０４はデコーダ部３０１からフレームメモリ３０２へのフレームデータの供給量を示している。破線７０５はフレームメモリ３０２から垂直フィルタ部３０３へのフレームデータの供給量を示している。
グラフ７０２中の破線７０６は垂直フィルタ部３０３からバッファメモリ３０４への１stフィールド縮小画像の供給量を示している。一点鎖線７０７は垂直フィルタ部３０３からバッファメモリ３０４への２ndフィールド縮小画像の供給量を示している。
【００７９】
またグラフ７０２中の実線７０８はバッファメモリ３０４から画像出力部３０５への１stフィールド縮小画像データの供給状態を示している。１／２縮小の場合、縮小画像の表示位置はフレームの上半分の位置から下半分の位置までとりうるため、同図の実線７０９は表示位置に応じてタイミングが異なっている。同様に、実線７０９はバッファメモリ３０４から画像出力部３０５への２ndフィールド縮小画像データの供給状態を示している。
【００８０】
グラフ７０１で示すように、デコーダ部３０１からフレームメモリ３０２へのnフレームのフレームデータの供給はn-１フレームの２ndフィールドのフレームメモリ３０２から垂直フィルタ部３０３への供給開始直後に開始し、フレームメモリ３０２から垂直フィルタ部３０３へのnフレームのフレームデータの供給はnフレームの１stフィールドのフレームメモリ３０２から垂直フィルタ部３０３への供給完了直前までに終了するように制御を行う。
【００８１】
グラフ７０２で示すように、垂直フィルタ部３０３からバッファメモリ３０４へのnフレームの１stフィールドのフレームデータの供給はn-１フレームの２ndフィールド表示中に、nフレームの２ndフィールドのフレームデータの供給はnフレームの１stフィールド表示中にそれぞれ完了するように制御を行う。
このように装置を制御する事により、デコーダ部３０１からフレームメモリ３０２間は、２Vの期間に１フレームのフレームデータを転送する能力があれば十分である。フレームメモリ３０２から垂直フィルタ部３０３間は、１Vの期間に１/２フレームのフレームデータを転送する能力があれば十分である。デコーダ部３０１は２Vの期間に１フレームのフレームデータを生成する演算能力、垂直フィルタ部３０３は１Vの期間に１/２フレームのフレームデータをフィルタ処理する演算能力があれば十分である。垂直フィルタ部３０３からバッファメモリ３０４間は、１Vの期間に１/４フレームのフレームデータを転送する能力があれば十分である。バッファメモリ３０４から画像出力部３０５間は、１Vの期間に１/４フレームのフレームデータを転送する能力があれば十分である。フレームメモリ３０２は、フレームデータ１フレームを保持し、バッファメモリ３０４は、フレームデータ１/２フレームを保持する容量があれば十分である。
【００８２】
次に、図２０と対比するため、図２１にバッファメモリ３０４を備えていない場合のデータ供給状態の時間変化を示す。
縮小処理を行わない場合、フレームメモリ３０２へのnフレームのデジタル画像データの供給は実線５０６で示すように、破線５０７で示すn-１フレームの２ndフィールドの垂直フィルタ部３０３への供給が始まった時から開始し、破線５０８で示すnフレームの１stフィールドの垂直フィルタ部３０３への供給が完了する前に終了する。そのため、図５のグラフ上で示す２Vの期間の間に１フレームのデジタル画像データを一定の速度で供給する。
【００８３】
また、nフレームの１stフィールドのフレームメモリ３０２から垂直フィルタ部３０３へのデジタル画像データの供給は破線５０８で示すように、実線５１１が示すフレームメモリ３０２へのnフレームのデジタル画像データの供給が終了する直後に完了し、続いて２ndフィールドの処理を開始する。そのため、フレームメモリ３０２から垂直フィルタ部３０３へのデジタル画像データの供給は、図２１のグラフ上で示す１Vの期間の間に１フィールドのデジタル画像データを一定の速度で供給される。
【００８４】
ところが、１/２縮小処理を行う場合、フレームメモリ３０２へのnフレームのデジタル画像データの供給開始が可能となるタイミングは、n-１フレームの２ndフィールドの表示位置によって異なってくる。n-１フレームの２ndフィールドの表示位置によって、フレームメモリ３０２から垂直フィルタ部３０３へのデジタル画像データの供給は破線５０９から５１０の間のどこかで行われ、フレームメモリ３０２へのnフレームのデジタル画像データの供給開始が可能となるタイミングが時間的に最も遅れるのは、破線５１０で示す表示位置の場合である。この場合、１/２縮小画像は画像出力部５０１の下半分に出力される。また、フレームメモリ３０２へのnフレームのデジタル画像データの供給は、破線５１１で示すnフレームの１stフィールドの垂直フィルタ部３０３への供給が完了する前にに終了していなければならない。そのため、図２１のグラフ上で示す１Vの期間の間に１フレームのデジタル画像データを一定の速度で供給する必要があり、縮小を行わない場合に比べ２倍の供給能力が必要となる。
【００８５】
また、nフレームの１stフィールドのフレームメモリ３０２から垂直フィルタ部３０３へのデジタル画像データの供給は破線５１１で示すように、実線５１２が示すフレームメモリ３０２へのnフレームのデジタル画像データの供給が終了する直後に完了し、続いて２ndフィールドの処理を開始する。そのため、図５のグラフ上で示す１/２Vの期間の間に１フィールドのデジタル画像データを一定の速度で供給する必要があり、縮小を行わない場合に比べ２倍の供給能力が必要となる。垂直フィルタ部３０３も、供給されるデジタル画像データに見合った性能が要求されるため、縮小を行わない場合に比べ２倍の演算能力が必要となる。
【００８６】
また、図２３は、図２０と対比するため、バッファメモリ３０４を備えていない場合であって１/４縮小処理を行う場合のデータ供給状態の時間変化を示す。
１/４縮小処理を行う場合のグラフを図２３に示す。上記と同様の理由より、フレームメモリ３０２へのデジタル画像データの供給能力、フレームメモリ３０２から垂直フィルタ部３０３への供給能力、垂直フィルタ部の演算能力はそれぞれ縮小処理を行わない場合の４倍が必要となる。このように、バッファメモリ３０４を備えない場合は、縮小率が上がると必要なピーク性能も大きくなってしまう。
＜３．１．２  １／４縮小＞
図２２は、図１９示したメディアプロセッサにて１/４縮小を行う場合の各部のデータ供給状態とその時間変化を示す図である。
【００８７】
図２２において、グラフの横軸、縦軸は図２０と同様である。
グラフ上の実線８０４はデコーダ部３０１からフレームメモリ３０２へのフレームデータの供給状態を示している。グラフ上の破線８０５はフレームメモリ３０２から垂直フィルタ部３０３へのフレームデータの供給状態を示している。グラフ上の破線８０６は垂直フィルタ部３０３からバッファメモリ３０４への１stフィールド縮小画像データの供給状態を示している。グラフ上の破線８０７は垂直フィルタ部３０３からバッファメモリ３０４への２ndフィールド縮小画像データの供給状態を示している。グラフ上の実線８０８はバッファメモリ３０４から画像出力部３０５への１stフィールド縮小画像データの供給状態を示している。グラフ上の実線８０９はバッファメモリ３０４から画像出力部３０５への２ndフィールド縮小画像データの供給状態を示している。
【００８８】
同図に示すように、デコーダ部３０１からフレームメモリ３０２間は、２Vの期間に１フレームのフレームデータを転送する能力があれば十分である。フレームメモリ３０２から垂直フィルタ部３０３間は、１Vの期間に１/２フレームのフレームデータ転送する能力があれば十分である。デコーダ部３０１は２Vの期間に１フレームのフレームデータを生成する演算能力があれば十分である。垂直フィルタ部３０３は１Vの期間に１/２フレームのフレームデータをフィルタ処理する演算能力、垂直フィルタ部３０３からバッファメモリ３０４間は、１Vの期間に１/８フレームのフレームデータ転送能力、バッファメモリ３０４から画像出力部３０５間は、１Vの期間に１/８フレームのフレームデータ転送能力があれば十分である。フレームデータ１フレームを保持できるフレームメモリ３０２、フレームデータ１/４フレームを保持できるバッファメモリ３０４がそれぞれ必要となる。
【００８９】
これらの各必要性能は最短でも１Vの期間での平均の能力であり、縮小率が大きくなっても短い期間に大きなピーク性能を要求される事がない。また、最も処理性能を必要とされるのが縮小なしの場合である。この場合、デコーダ部３０１からフレームメモリ３０２間は、２Vの期間に１フレームのフレームデータ転送能力で足りる。フレームメモリ３０２から垂直フィルタ部３０３間は、１Vの期間に１/２フレームのフレームデータ転送能力で足りる。デコーダ部３０１は２Vの期間に１フレームのフレームデータを生成する演算能力で足りる。垂直フィルタ部３０３は１Vの期間に１/２フレームのフレームデータをフィルタ処理する演算能力で足りる。垂直フィルタ部３０３からバッファメモリ３０４間は、１Vの期間に１/２フレームのフレームデータ転送能力で足りる。バッファメモリ３０４から画像出力部３０５間は、１Vの期間に１/２フレームのフレームデータ転送能力で足りる。フレームメモリ３０２はフレームデータ１フレームを保持でき、バッファメモリ３０４は、フレームデータ１フレームを保持できればよい。この能力であらゆる垂直縮小処理を行う事ができる。これらにより回路規模を削減し、動作クロックを引き下げる事が出来る。
＜３．２  垂直フィルタ処理（その２）＞
図２４は、メディアプロセッサにおいて垂直フィルタ処理を行う場合のデータの流れを示した模式的なブロック図である。
【００９０】
同図は、デコード部４０１、バッファメモリ４０２、垂直フィルタ部４０３、バッファメモリ４０４、映像出力部４０５、制御部４０６からなる。同図は、図１９と比べて、デコード部４０１、垂直フィルタ部４０３、バッファメモリ４０４、映像出力部４０５は、同名の構成要素と同様である。従って同じ点は説明を省略し、異なる点を中心に説明する。
【００９１】
バッファメモリ４０２は、1フレーム分の記憶容量より少ない容量でよい点でフレームメモリ３０２とは異なる。
垂直フィルタ部４０３は、垂直方向の６４ライン（処理前のフレーム中の４マクロブロックライン）のフィルタ処理を終える毎に制御部４０６にその旨（フィルタ状態）を通知する点で垂直フィルタ部３０３と異なる。なお、通知の単位はマクロブロックライン２〜３単位としてもよい。
【００９２】
デコード部４０１は、６４ライン単位のデコードを終える毎に制御部４０６にその旨（デコード状態）を通知する点でデコード部３０１と異なる。なお、通知の単位は１６ライン単位でもよい。
制御部４０６は、図２中のＩＯＰ２１１に相当し、デコード部４０１と垂直フィルタ部４０３の動作状態を、それぞれからの通知に基づいて監視し、垂直フィルタ処理がデコード処理を越さないように、かつデコード処理が垂直フィルタ処理を追い越さないようにデコード部４０１及び垂直フィルタ部４０３を制御する。つまり、制御部４０６の次の２つを制御する。１つは、フィルタ処理の対象となるマクロブロックラインの画素データ群をデコード部４０１がバッファメモリ４０２に書き込んでいないのに、垂直フィルタ部４０３が前のフレーム（又はフィールド）のマクロブロックラインの画素データ群を対象にフィルタ処理を行うことを防止することである。もう１つは、垂直フィルタ部４０３が垂直フィルタ処理の対象だが未処理のマクロブロックラインに対して、デコード部４０１が次のフレームの画素データ群を上書きしてしまうことを防止することである。
【００９３】
図２５は、制御部４０６における制御内容を示す説明図である。
同図の横軸は時間であり、制御部４０６、VSYNC（垂直同期信号）、デコード部４０１、垂直フィルタ部４０３、映像出力部４０５の各動作を記してある。
同図のように  デコード部４０１は６４ラインのデコードを終える毎にその旨を制御部４０６に通知し、垂直フィルタ部４０３は６４ラインのフィルタしょりを終える毎にその旨を制御部４０６に通知する。制御部４０６は、これらの通知を下に、デコードが完了したライン番号Ndと、フィルタ処理が完了したライン番号Nfとを保持及び更新し、Nd（現フレーム）＞Nf（現フレーム）、Nd（次のフレーム）＜Nｆ（現フレーム）を満たすよう、デコード部４０１、垂直フィルタ部４０３を制御する。具体的には、制御部４０６は、NdとNfが接近した場合（その差がしきい値以下になった場合）にはデコード部４０１、垂直フィルタ部４０３の一方を一時的に停止させる。なお、Nd、Nfはマクロブロックラインの番号であってもよい。
【００９４】
また、NdとNfが接近した場合には、制御部４０６の制御によって、デコード部４０１、垂直フィルタ部４０３の一方は制御部４０６により一時的に停止されるが、NdとNfが接近したか否かの判定及びデコード部４０１又は垂直フィルタ部４０３を一時的に停止させる制御は、制御部４０６以外が担当するように構成してもよい。
【００９５】
たとえば、垂直フィルタ部４０３がデコード部４０１に上記フィルタ状態の通知を行うようにし、デコード部４０１は、フィルタ状態の通知と内部のデコード状態とに従って、NdとNfとが接近したか否かを判定し、判定結果に応じてデコード動作を一時的に停止し又は垂直フィルタ部４０３を一時的に停止させる構成としてもよい。
【００９６】
あるいは、逆に、デコード部４０１が垂直フィルタ部４０３に上記デコード状態の通知を行うようにし、垂直フィルタ部４０３は、デコード状態の通知と内部のフィルタ状態とに従って、NdとNfとが接近したか否かを判定し、判定結果に応じてフィルタ処理を一時的に停止し又はデコード部４０１を一時的に停止させる構成としてもよい。
＜３．２．１  １／２縮小＞
図２６は図２４において１/２縮小処理を行う場合の各部の供給データ量を示す図である。
【００９７】
グラフ９０１の横軸はバッファメモリ４０２上のフレームデータ量を示し、縦軸は時間を示している。グラフ９０２の横軸はバッファメモリ４０４上のフレームデータ量を示し、縦軸は時間を示している。グラフ９０３は画像出力部４０５の状態を時系列上に並べたものであり、時間軸はグラフ９０１、９０２の縦軸と合っている。
【００９８】
グラフ上の実線９０４はデコーダ部４０１からバッファメモリ４０２へのフレームデータの供給状態を示している。グラフ上の破線９０５はバッファメモリ４０２から垂直フィルタ部４０３へのフレームデータの供給状態を示している。グラフ上の破線９０６は垂直フィルタ部４０３からバッファメモリ４０４への１stフィールド縮小画像データの供給状態を示している。グラフ上の破線９０７は垂直フィルタ部４０３からバッファメモリ４０４への２ndフィールド縮小画像データの供給状態を示している。グラフ上の実線９０８はバッファメモリ４０４から画像出力部４０５への１stフィールド縮小画像データの供給状態を示している。グラフ上の実線９０９はバッファメモリ４０４から画像出力部４０５への２ndフィールド縮小画像データの供給状態を示している。
【００９９】
グラフ９０１で示すように、デコーダ部４０１からバッファメモリ４０２へのnフレームのフレームデータの供給が開始された直後に、バッファメモリ４０２から垂直フィルタ部４０３へのnフレームのフレームデータの供給を開始し、デコーダ部４０１からバッファメモリ４０２へのnフレームのフレームデータの供給が終了する直後にバッファメモリ４０２から垂直フィルタ部４０３へのnフレームのフレームデータの供給が終了するように制御を行う。グラフ９０２で示すように、垂直フィルタ部４０３からバッファメモリ４０４へのnフレームのフレームデータの供給はn-１フレーム表示中に完了するように制御を行う。
【０１００】
このように装置を制御する事により、デコーダ部４０１からバッファメモリ４０２間は、２Vの期間に１フレームのフレームデータ転送能力、バッファメモリ４０２から垂直フィルタ部４０３間は、２Vの期間に１フレームのフレームデータ転送能力、デコーダ部４０１は２Vの期間に１フレームのフレームデータを生成する演算能力、垂直フィルタ部４０３は２Vの期間に１フレームのフレームデータをフィルタ処理する演算能力、垂直フィルタ部４０３からバッファメモリ４０４間は、２Vの期間に１/２フレームのフレームデータ転送能力、バッファメモリ４０４から画像出力部４０５間は、１Vの期間に１/４フレームのフレームデータ転送能力、数ライン分のフレームデータを保持できるバッファメモリ４０２、フレームデータ１フレームを保持できるバッファメモリ４０４がそれぞれ必要となる。
＜３．２．２  １／４縮小＞
図２７は図２４において１/４縮小を行った場合の各部のデータ供給量を示す図である。
【０１０１】
グラフ１００１の横軸はバッファメモリ４０２上のフレームデータ量を示し、縦軸は時間を示している。グラフ１００２の横軸はバッファメモリ４０４上のフレームデータ量を示し、縦軸は時間を示している。グラフ１００３は画像出力部４０５の状態を時系列上に並べたものであり、時間軸はグラフ１００１、１００２の縦軸と合っている。
【０１０２】
グラフ上の実線１００４はデコーダ部４０１からバッファメモリ４０２へのフレームデータの供給状態を示している。グラフ上の破線１００５はバッファメモリ４０２から垂直フィルタ部４０３へのフレームデータの供給状態を示している。グラフ上の破線１００６は垂直フィルタ部４０３からバッファメモリ４０４への１stフィールド縮小画像データの供給状態を示している。グラフ上の破線１００７は垂直フィルタ部４０３からバッファメモリ４０４への２ndフィールド縮小画像データの供給状態を示している。グラフ上の実線１００８はバッファメモリ４０４から画像出力部４０５への１stフィールド縮小画像データの供給状態を示している。グラフ上の実線１００９はバッファメモリ４０４から画像出力部４０５への２ndフィールド縮小画像データの供給状態を示している。
【０１０３】
このように装置を制御する事により、デコーダ部４０１からバッファメモリ４０２間は、２Vの期間に１フレームのフレームデータ転送能力で足り、バッファメモリ４０２から垂直フィルタ部４０３間は、２Vの期間に１フレームのフレームデータ転送能力で足り、デコーダ部４０１は２Vの期間に１フレームのフレームデータを生成する演算能力で足り、垂直フィルタ部４０３は２Vの期間に１フレームのフレームデータをフィルタ処理する演算能力で足り、垂直フィルタ部４０３からバッファメモリ４０４間は、２Vの期間に１/４フレームのフレームデータ転送能力で足り、バッファメモリ４０４から画像出力部４０５間は、１Vの期間に１/８フレームのフレームデータ転送能力で足りる。バッファメモリ４０２は、数ライン分のフレームデータを保持でき、バッファメモリ４０４はフレームデータ１/２フレームを保持できれば足りる。
【０１０４】
これらの各必要性能は最短でも１Vの期間での平均の能力であり、縮小率が短い期間で大きなピーク性能を要求される事がない。
また、最も処理性能を必要とされるが縮小なしの場合であり、その場合に要求されるのがデコーダ部４０１からバッファメモリ４０２間は、２Vの期間に１フレームのフレームデータ転送能力、バッファメモリ４０２から垂直フィルタ部４０３間は、２Vの期間に１フレームのフレームデータ転送能力、デコーダ部４０１は２Vの期間に１フレームのフレームデータを生成する演算能力、垂直フィルタ部４０３は２Vの期間に１フレームのフレームデータをフィルタ処理する演算能力、垂直フィルタ部４０３からバッファメモリ４０４間は、２Vの期間に１フレームのフレームデータ転送能力、バッファメモリ４０４から画像出力部４０５間は、１Vの期間に１/２フレームのフレームデータ転送能力、数ライン分のフレームデータを保持できるバッファメモリ４０２、フレームデータ２フレームを保持できるバッファメモリ４０４であり、この能力であらゆる垂直縮小処理を行う事ができる。これらにより回路規模を削減し、動作クロックを引き下げる事が出来る。
＜４．変形例＞
図２８、２９は、画素並列処理部の左半分、右半分の第１の変形例を示す図である。これらの図は、図３、４に対して同じ構成要素には同じ符号を付しているので説明を省略し、異なる点を中心に説明する。
【０１０５】
図２８、２９は、図３、４の画素処理部１〜１６の代わりに画素処理部１ａ〜１６ａを、画素転送部１７、１８の代わりに画素転送部１７ａ、１８ｂを備える。画素処理部１ａ〜１６ａはいずれも同じ構成なので、画素処理部１ａを代表して説明する。
画素処理部１ａは、画素処理部１における選択部Ａ１０４、選択部Ｂ１０５の代わりに選択部Ａ１０４ａ、選択部Ｂ１０５ａを備える。
【０１０６】
選択部Ａ１０４ａは、選択部Ａ１０４と比べると２入力から３入力になっている点が異なる。つまり、選択部Ａ１０４ａは、２つ隣の画素転送部（又は画素処理部）の遅延器（遅延器Ｂ）から画素データ入力が増えている。
選択部Ｂ１０５ａは、同様に２つ隣の画素転送部（又は画素処理部）の遅延器（遅延器Ｂ）の画素データ入力が増えている。
【０１０７】
また、画素転送部１７ａは、選択部Ｂ１７０３〜選択部Ｇ１７０８の代わりに選択部Ｂ１７０３ａ〜選択部Ｇ１７０８ａを備える。選択部Ｂ１７０３ａ〜選択部Ｇ１７０８ａは、それぞれ２入力ではなく３入力になっている。増えている入力は、２つ左の遅延器からの画素データ入力である。
また、画素転送部１８ａは、選択部Ｂ１８０３〜選択部Ｇ１８０８の代わりに選択部Ｂ１８０３ａ〜選択部Ｇ１８０８ａを備える。選択部Ｂ１８０３ａ〜選択部Ｇ１８０８ａは、それぞれ２入力ではなく３入力になっている。増えている入力は、２つ右の遅延器からの画素データ入力である。
【０１０８】
この構成によれば、処理対象の画素と、その画素から左右に２つ隣の画素を順に用いたフィルタ処理を行うことができる。
例えば、画素処理部１ａでは次式などを演算することができる。
a0・X9+a1(X11+X7)+a2(X13+X5)+a3(X15+X3)
図３０、３１は、画素並列処理部の左半分、右半分の第２の変形例を示す図である。
【０１０９】
図３０、３１は、図３、４の画素処理部１と画素処理部１６との代わりに画素処理部１ｂと画素処理部１６ｂとを備える。
画素処理部１ｂは、画素処理部１における選択部Ｂ１０５の代わりに選択部ｂ１０５ｂを備える。選択部Ｂ１０５ｂは、遅延器Ｂ１０７からのフィードバック入力を有している点で選択部Ｂ１０５と異なっている。
【０１１０】
画素処理部１６ｂは、画素処理部１６における選択部Ａ１６０４の代わりに選択部Ａ１６０４ｂを備える。選択部Ａ１６０４ｂは、遅延器Ａ１６０６からのフィードバック入力を有している点で選択部Ａ１６０５と異なっている。
この構成によれば、画素処理部１ｂは例えば次の演算を行う。
a3*X6＋a2*X7＋a1*X8＋a0*X9＋a1*X10＋a2*X11＋a3*X12
このとき画素処理部２の出力は、次のようになる。
【０１１１】
a3*X20＋a2*X21＋a1*X22＋a0*X23＋a1*X24＋a2*X24＋a3*X24
このとき、画素処理部１６ｂの出力は次のようになる。
a3*X21＋a2*X22＋a1*X23＋a0*X24＋a1*X24＋a2*X24＋a3*X24
このように、図３０、３１では、左端の画素処理部１ｂにデータ列の左端の画素データが転送されてきた場合に、選択部Ｂ１０５ｂは画素処理部１ｂ内の遅延器Ｂからのフィードバック入力を選択する。右端の画素処理部１６ｂにデータ列の右端の画素データが転送されてきた場合、選択部Ａ１６０４ｂは、遅延器Ａ１６０６からのフィードバック入力を選択する。
【０１１２】
図３２、３３は、画素並列処理部の左半分、右半分の第２の変形例を示す図である。
図３２、３３は、図３、４の画素処理部１〜１６の代わりに画素処理部１ｃ〜１６ｃ、画素転送部１７、１８の代わりに画素転送部１７ｃ、１８ｃを備える。画素処理部１ｃ〜１６ｃはいずれも同じ構成なので、画素処理部１aを代表して説明する。
【０１１３】
画素処理部１ｃは、画素処理部１における選択部Ａ１０４、選択部Ｂ１０５の代わりに選択部Ａ１０４ｃ、選択部Ｂ１０５ｃを備える。
選択部Ａ１０４ｃは、選択部Ａ１０４と比べると２入力から３入力になっている点が異なる。つまり、選択部Ａ１０４ｃは、２つ隣の画素転送部（又は画素処理部）の遅延器（遅延器Ｂ）の画素データ入力が増えている。
【０１１４】
選択部Ｂ１０５ｃは、２つ隣の画素転送部（又は画素処理部）の遅延器（遅延器Ｂ）の画素データ入力と、遅延器Ｂ１０７からのフィードバック入力とが増えている。
画素転送部１７ｃ、１８ｃは、図２８、図２９に示した画素転送部１７ａ、１８ａと同様に２入力ではなく３入力になっている。
【０１１５】
この構成によれば、画素処理部１ｃは例えば次の演算を行う。
a3*X9＋a2*X9＋a1*X9＋a0*X9＋a1*X11＋a2*X13＋a3*X15
このとき画素処理部２ｃの出力は、次のようになる。
a3*X10＋a2*X10＋a1*X10＋a0*X10＋a1*X12＋a2*X14＋a3*X16
このとき画素処理部１５ｃの出力は、次のようになる。
a3*X17＋a2*X19＋a1*X21＋a0*X23＋a1*X23＋a2*X23＋a3*X23
このとき画素処理部１６ｃの出力は、次のようになる。
a3*X18＋a2*X20＋a1*X22＋a0*X24＋a1*X24＋a2*X24＋a3*X24
図３４は、ＰＯＵＡ２０７の変形例を示す図である。
【０１１６】
同図のＰＯＵＡ２０７は、図２と比べてアップサンプリング回路２２ａとダウンサンプリング回路２３ａとが追加されている。図２と同じ点は説明を省略し、異なる点を中心に説明する。
アップサンプリング回路２２ａは、入力バッファ群２２から入力される画素データ群を垂直方向に拡大する。例えば、入力バッファ群２２から入力される画素データ群を垂直方向に２倍にするよう画素データを補間するため、入力バッファ群２２からの画素データ群の入力１回に対して、同じ画素データ群を２回画素並列処理部２１に出力する。
【０１１７】
ダウンサンプリング回路２３ａは、画素並列処理部２１から入力される画素データ群を垂直方向に縮小する。例えば、画素並列処理部２１から入力される画素データ群を垂直方向に１／２倍にするよう画素データを間引く。つまり、画素並列処理部２１からの画素データ群の入力２回に対して、１回分を破棄し１回分を出力する。
【０１１８】
この構成によれば、画素並列処理部２１の入力側で垂直方向に２倍、出力側で垂直方向に１／２倍するので、外部メモリ２２０における１フレームあたりのデータ量を垂直方向に１／２にすることができ、その結果、ＰＯＵＣ２０９によるＰＯＵＡ２０７へのデータ転送量を１／２にすることができる。これにより、デュアルポートメモリ１００の内部ポートへのアクセスが集中する場合にバスネックを解消することができる。
【０１１９】
また、本発明の画素演算装置は画像のをリサイズ等を行うのフィルタリング処理を複数画素に対して並列に行うので、動画の圧縮処理／伸張処理、リサイズ等を扱うメディアプロセッサなどのデジタル映像機器に利用される。
【０１２０】
【発明の効果】
本発明の画素演算装置は、フィルタ処理を行う画素演算装置であって、Ｎ個の画素処理手段と、Ｎ個の画素データ及びフィルタ係数を供給する供給手段と、Ｎ個の画素処理手段を並列に動作させる制御手段とを備える。
各画素処理手段は、供給手段に供給された画素データとフィルタ係数とを用いて演算した後、各画素処理手段に対して隣接する画素処理手段から画素データを取得し、取得した画素データを用いて演算して演算結果を累積する。前記制御手段は、隣接する画素処理手段からの画素データの取得と、取得した画素データを用いた演算及び累積とをタップ数に応じた回数繰り返すようＮ個の画素処理手段を制御する。
【０１２１】
ここで、前記Ｎ個の画素処理手段は、Ｎ個の画素データを右シフトする第１シフタと、Ｎ個の画素データを左シフトする第２シフタを形成する。各画素処理手段は、隣接する２つの画素処理手段からシフトアウトされる２つの画素データを用いて演算する。
この構成によれば、タップ数を可変にすることができ、周波数をあげずに処理を高速化するフィルタリング処理を行うことができるという効果がある。
【０１２２】
また、本発明の画素演算装置は、画素データとして差分画像の画素データと参照フレームの画素データとを供給手段から供給する。
この構成によれば、フィルタリング処理だけでなくＭＣ（動き補償）処理にも利用可能で、フィルタ装置とＭＣ回路とを独立に設ける必要がないので、回路規模の小型化を図ることができるという効果がある。
【図面の簡単な説明】
【図１】従来技術におけるＦＩＲフィルタ処理を行う回路例を示すブロック図である。
【図２】画素演算ユニットを備えるメディアプロセッサの構成を示すブロック図である。
【図３】画素演算ユニット（ＰＯＵＡ、ＰＯＵＢ）の構成を示すブロック図である。
【図４】画素並列処理部の左半分の構成を示すブロック図である。
【図５】画素並列処理部の右半分の構成を示すブロック図である。
【図６】（ａ）は、入力バッファ群２２の詳細な構成を示すブロック図である。
（ｂ）は、入力バッファ群２２内の選択部の詳細な構成を示すブロック図である。
【図７】出力バッファ群２３の構成を示すブロック図である。
【図８】画素演算ユニットにてフィルタ処理を行う場合の画素データの初期入力値を示す図である。
【図９】画素処理部１に対する画素データの初期入力値を示す説明図である。
【図１０】画素処理部１でのフィルタ処理における演算過程を示す図である。
【図１１】画素処理部１でのフィルタ処理の演算内容を示す説明図である。
【図１２】画素演算ユニットにてＭＣ（動き補償）処理（Ｐピクチャ）を行う場合の入出力画素データを示す図である。
【図１３】ＭＣ処理における復号対象フレームと参照フレームとを示す説明図である。
【図１４】画素演算ユニットにてＭＣ処理（Ｂピクチャ）を行う場合の入出力画素データを示す図である。
【図１５】画素演算ユニットにてＯＳＤ（オンスクリーンディスプレイ）処理を行う場合の入出力画素データを示す図である。
【図１６】画素演算ユニットにおけるＯＳＤ（オンスクリーンディスプレイ）処理の説明図である。
【図１７】画素演算ユニットにてＭＥ（動き予測）処理を行う場合の入出力画素データを示す図である。
【図１８】画素演算ユニットにてＭＥ（動き予測）の説明図である。
【図１９】メディアプロセッサにおいて垂直フィルタ処理を行う場合のデータの流れを示した模式的なブロック図である。
【図２０】垂直１／２縮小を行う場合の説明図である。
【図２１】従来技術において垂直１／２縮小を行う場合の説明図である。
【図２２】垂直１／４縮小を行う場合の説明図である。
【図２３】従来技術において垂直１／４縮小を行う場合の説明図である。
【図２４】メディアプロセッサにおいて垂直フィルタ処理を行う場合のデータの流れを示した模式的な別のブロック図である。
【図２５】デコード処理と垂直フィルタ処理とのタイミングを示す説明図である。
【図２６】垂直１／２縮小を行う場合の説明図である。
【図２７】垂直１／４縮小を行う場合の説明図である。
【図２８】画素並列処理部の左半分の第１の変形例を示す図である。
【図２９】画素並列処理部の右半分の第１の変形例を示す図である。
【図３０】画素並列処理部の左半分の第２の変形例を示す図である。
【図３１】画素並列処理部の右半分の第２の変形例を示す図である。
【図３２】画素並列処理部の左半分の第３の変形例を示す図である。
【図３３】画素並列処理部の右半分の第３の変形例を示す図である。
【図３４】画素処理ユニットの変形例を示す図である。
【符号の説明】
１    画素処理部
１〜１６  画素処理部
１７    画素転送部
１８    画素転送部
２１    画素並列処理部
２２    入力バッファ群
２２ａ  アップサンプリング回路
２３    出力バッファ群
２３ａ  ダウンサンプリング回路
２３ａ〜２３ｈ  ラッチ
２３ａ〜２３ｐ  ラッチ
２３ｉ〜２３ｐ  ラッチ
２４    命令メモリ
２４ａ〜２４ｈ  セレクタ
２４ａ〜２４ｐ  セレクタ
２４ｉ〜２４ｐ  セレクタ
２５    命令デコーダ
２６    指示回路
２７    ＤＤＡ回路
１００    デュアルポートメモリ
１０４    選択部Ａ
１０４ａ  選択部Ａ
１０４ｃ  選択部Ａ
１０５    選択部Ｂ
１０５ａ  選択部Ｂ
１０５ｂ  選択部Ｂ
１０５ｃ  選択部Ｂ
１０７    遅延器Ｂ
１０９    遅延器Ｄ
１２０    加算器Ａ
２００    メディアプロセッサ
２０１    ストリームユニット
２０１    入力ポートＡ
２０２    Ｉ／Ｏバッファ
２０２    入力ポートＢ
２０３    セットアッププロセッサ
２０３    入力ポートＣ
２０４    ビットストリームＦＩＦＯ
２０５    可変長符号復号部
２０６    ＴＥ
２０７    ＰＯＵＡ
２０８    ＰＯＵＢ
２０９    ＰＯＵＣ
２１０    オーディオユニット
２１１    ＩＯＰ
２１２    ビデオバッファメモリ
２１３    ビデオユニット
２１４    ホストユニット
２１５    ＲＥ
２１６    フィルタ部
２１７    セットアップメモリ
２１８    専用ＬＳＩ
２２０    外部メモリ
４０１    デコーダ部
４０２    バッファメモリ
４０３    垂直フィルタ部
４０４    バッファメモリ
４０５    映像出力部
４０６    制御部
【図１】
0004686048.tif 000002
【図２】
0004686048.tif 000003
【図３】
0004686048.tif 000004
【図４】
0004686048.tif 000005
【図５】
0004686048.tif 000006
【図６】
0004686048.tif 000007
【図７】
0004686048.tif 000008
【図８】
0004686048.tif 000009
【図９】
0004686048.tif 000010
【図１０】
0004686048.tif 000011
【図１１】
0004686048.tif 000012
【図１２】
0004686048.tif 000013
【図１３】
0004686048.tif 000014
【図１４】
0004686048.tif 000015
【図１５】
0004686048.tif 000016
【図１６】
0004686048.tif 000017
【図１７】
0004686048.tif 000018
【図１８】
0004686048.tif 000019
【図１９】
0004686048.tif 000020
【図２０】
0004686048.tif 000021
【図２１】
0004686048.tif 000022
【図２２】
0004686048.tif 000023
【図２３】
0004686048.tif 000024
【図２４】
0004686048.tif 000025
【図２５】
0004686048.tif 000026
【図２６】
0004686048.tif 000027
【図２７】
0004686048.tif 000028
【図２８】
0004686048.tif 000029
【図２９】
0004686048.tif 000030
【図３０】
0004686048.tif 000031
【図３１】
0004686048.tif 000032
【図３２】
0004686048.tif 000033
【図３３】
0004686048.tif 000034
【図３４】
0004686048.tif 000035