(57)【特許請求の範囲】
【請求項１】
第１フィルタ処理、又はこれとは異なる第２フィルタ処理のいずれかにより、入力画素データを処理するフィルタ演算装置であって、
少なくとも、
前記入力画素データを１画素分遅延して出力する第１画素遅延手段と、
前記第１画素遅延手段の出力を１画素分遅延して出力する第２画素遅延手段と、
前記第１画素遅延手段の出力を４倍して出力する第１乗算手段と、
前記第１フィルタ処理による処理、又は前記第２フィルタ処理により、前記入力画素データを処理するように、処理手段を切替えるフィルタ処理切替信号を発生させるフィルタ処理切替信号発生手段と、
前記フィルタ処理切替信号に応じて第１フィルタ処理により前記入力画素データを処理する場合は前記第１画素遅延手段の出力を１倍に、前記フィルタ処理切替信号に応じて第２フィルタ処理により前記入力画素データを処理する場合は前記第１画素遅延手段の出力を２倍にする第２乗算手段と、
前記フィルタ処理切替信号に応じて第１フィルタ処理により前記入力画素データを処理する場合は、「０」を、前記フィルタ処理切替信号に応じて第２フィルタ処理により前記入力画素データを処理する場合は、前記第２画素遅延手段の出力を選択して出力する第１選択手段と、
前記入力画素データと、前記第２乗算手段の出力と、前記第１選択手段の出力、を加算する加算手段と、
前記フィルタ処理切替信号に基づいて、第１フィルタ処理により前記入力画素データを処理する場合は、前記加算手段の出力を選択する旨の選択制御信号を出力し、第２フィルタ処理により前記入力画素データを処理する場合は、８回の選択出力を１セットとして、最初と最後に前記第１乗算手段の出力を選択し、その他は前記加算手段の出力を選択する処理を繰り返し行うための選択制御信号を出力する選択制御信号発生手段と、
前記選択制御信号により、前記第１乗算手段の出力、或いは前記加算手段の出力の何れかを選択的に出力する第２選択手段と、
前記入力画素データを横方向に処理する横方向処理モードと、縦方向に処理する縦方向処理モードを切替えるモード切替信号を出力するモード切替信号出力手段と、
前記フィルタ処理切替信号及び前記モード切替信号に基づいて、第１フィルタ処理により前記入力画素データを横方向処理、或いは縦方向処理する場合は、１／２倍する旨の乗数制御信号を出力し、第２フィルタ処理により前記入力画素データを横方向処理する場合は、１倍する旨の乗数制御信号を出力し、また、第２フィルタ処理により前記入力画素データを縦方向処理する場合は、１／１６倍する旨の乗数制御信号を出力する乗数制御信号発生手段と、
前記第２選択手段の出力を１画素分遅延して出力する第３画素遅延手段と、
前記第３画素遅延手段の出力を、前記乗数制御信号発生手段により出力される前記乗数制御信号により、１倍、１／２倍、又は１／１６倍にする第３乗算手段と、
を具備した、
ことを特徴とするフィルタ演算装置。
【請求項２】
請求項１に記載のフィルタ演算装置において、
前記加算手段が、
前記第１フィルタ処理による演算結果、又は前記第２フィルタ処理による演算結果、又は前記入力画素データを横方向に処理する横方向処理モードによる演算結果、又は前記入力画素データを縦方向に処理する縦方向処理モードによる演算結果、のいずれかの演算結果に対して「丸め」を施す為の値を保持するレジスタの出力を加算することを可能としたものである、
ことを特徴とするフィルタ演算装置。
【請求項３】
請求項１に記載のフィルタ演算装置において、
前記入力画素データを、８画素分遅延して出力する第４画素遅延手段と、
前記第４画素遅延手段の出力を、前記第４画素遅延手段の遅延時間と同じ時間遅延して出力する第５画素遅延手段と、
前記モード切替信号に応じて前記入力画素データを横方向処理する場合は、前記第１画素遅延手段を選択し、前記入力画素データを縦方向処理する場合は、前記第４画素遅延手段の出力を選択し、選択した信号を前記第１乗算手段と前記第２乗算手段に対して出力する第３選択手段と、
前記モード切替信号に応じて前記入力画素データを横方向処理する場合は、前記第２画素遅延手段を選択し、前記入力画素データを縦方向処理する場合は、前記第５画素遅延手段の出力を選択し、選択した信号を前記第１選択手段に対して出力する第４選択手段と、
を具備した、
ことを特徴とするフィルタ演算装置。
【発明の詳細な説明】
【０００１】
技術分野
本発明は、画像の符号化方式で使用されるフィルタ演算装置に関するものである。
【０００２】
背景技術
画像の符号化に関する国際標準方式としては、ＩＳＯ（国際標準化機構）によるＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）や、ＩＴＵ−Ｔ（国際電気通信連合  電気通信標準化部門）による勧告Ｈ．２６１等がある。最近ではＭＰＥＧが用いられることが増えているが、現状では、従前より存在するＨ．２６１の利用もまだ続いている。即ち現在は、両方の方式が併存している為、両方の方式に利用可能なフィルタ演算装置が必要である。
【０００３】
そこでまず初めに、これらの方式について簡単に説明する。
ＩＳＯのＭＰＥＧによる符号化方式は、空間的相関を利用した圧縮方法として直交変換を行うＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）を、時間的相関を利用したものとして、双方向動き補償フレーム間予測に用いている。この方式で用いられる半画素動き補償は、予測画素の位置が２画素の間なら２画素の平均、４画素の間なら４画素平均、という簡単なものである。その為、半画素動き補償は、その予測精度向上の意味合いだけでなく、空間的な低域通過フィルタの働きをも持つ。さらに、４画素値の平均を求める場合は、横方向の平均画素値を求め、さらにその平均画素値に対して、縦方向の平均画素値を求めて４画素値の平均とする場合もある。
【０００４】
一方、ＩＴＵ−Ｔの勧告Ｈ．２６１による符号化方式は、ＭＰＥＧと同様に空間的相関や時間的相関を利用した圧縮手法を用いているが、この方式では、量子化によって発生した歪みが予測メモリの中に蓄積して画質劣化が増加し、また予測効率が低下する事を防止する為に、ループ内フィルタ、即ち空間的な低域通過フィルタを用いている。
【０００５】
このループ内フィルタの処理では、図２１に示すような、画素の位置に応じた重み付けがなされる。
即ち、図２１の領域２１００にある画素ｐの画素値Ｐについては、
Ｐ’＝１６×（Ｐ／１６）        …（１）
領域２１０１にある画素ｐの画素値Ｐについては、
Ｐ’＝（（４×Ａ）＋（８×Ｐ）＋（４×Ｂ））／１６      …（２）
領域２１０２にある画素ｐの画素値Ｐについては、
Ｐ’＝（Ａ＋（２×Ｂ）＋Ｃ＋（２×Ｄ）＋（４×Ｐ）＋（２×Ｅ）＋Ｆ＋（２×Ｇ）＋Ｈ））／１６    …（３）
のようにして、各領域にある画素ｐの画素値Ｐは新たな画素値Ｐ’を得る。尚、式（１）〜式（３）において、ａ〜ｈは図２１に示した画素ｐに隣接する画素を、Ａ〜Ｈは図２１に示した画素ａ〜ｈそれぞれに対応する画素値を示している。そして、このような重み付けの為の処理を横方向、縦方向の２回に渡って行う。
【０００６】
上述したＩＳＯのＭＰＥＧによる符号化方式、及びＩＴＵ−Ｔの勧告Ｈ．２６１による符号化方式によるフィルタ処理を同一の装置上で実現している従来のフィルタ演算装置は、通常、これら２つの符号化方式のフィルタ処理に関する部分の装置を共通化し、ハードウェアの規模が増大しないように構成されている。これは、これら２つの符号化方式に関わる部分を１つの装置内でそれぞれ独立したものとするとハードウェアの規模が増大してしまうからである。
【０００７】
そこで、このような従来のフィルタ演算装置Ｘの構成、動作について、図面を参照しつつ、簡単に説明する。
図１４は、横方向半画素動き補償及び横方向ループ内フィルタ手段１４００、及び縦方向半画素動き補償及び縦方向ループ内フィルタ手段１４０１を有する従来のフィルタ演算装置Ｘの構成を簡単に示した図であり、図１５は横方向半画素動き補償及び横方向ループ内フィルタ手段１４００の構成を示すブロック図、図１６は縦方向半画素動き補償及び縦方向ループ内フィルタ手段１４０１の構成を示すブロック図である。
【０００８】
まず、横方向半画素動き補償及び横方向ループ内フィルタ手段１４００の構成について、図１５を参照しつつ説明すると、この横方向半画素動き補償及び横方向ループ内フィルタ手段１４００は、入力画素Ｄ２１を所定時間遅延して出力する第１画素遅延手段１５００と、入力画素Ｄ２１を２倍して出力する乗算手段１５０１と、「半画素動き補償モード」と「ループ内フィルタモード」とを切替える為のモード切替信号Ｓ２１により入力画素Ｄ２１或いは乗算手段１５０１により２倍された入力画素Ｄ２１の何れかを選択的に出力する第１選択手段１５０２と、第１ループ内フィルタ制御信号Ｓ２２に基づいて「０」或いは第１画素遅延手段１５００の出力の何れかを選択的に出力する第２選択手段１５０３と、半画素動き補償制御信号Ｓ２３に基づいて第１選択手段１５０２の出力或いは第２選択手段１５０３の出力の何れかを選択的に出力する第３選択手段１５０４と、第２選択手段１５０３の出力と第３選択手段１５０４の出力を加算して出力データＤ２２として出力する第１加算手段１５０５と、第１加算手段１５０５の出力信号を所定時間遅延した後に出力データＤ２３として出力する第２画素遅延手段１５０６と、第２ループ内フィルタ制御信号Ｓ２４に基づいて入力画素Ｄ２１或いは第２画素遅延手段１５０６の出力信号の何れかを選択的に出力する第４選択手段１５０７と、第２画素遅延手段１５０６の出力と第４選択手段１５０７の出力を加算し出力データＤ２４として出力する第２加算手段１５０８と、第２加算手段１５０８の出力信号を所定時間遅延した後に出力データＤ２５として出力する第３画素遅延手段１５０９と、を備えている。
【０００９】
次に横方向半画素動き補償及び横方向ループ内フィルタ手段１４００の動作について、半画素動き補償とループ内フィルタの場合に分けて説明する。また、第１画素遅延手段１５００、第２画素遅延手段１５０６、第３画素遅延手段１５０９では、１クロックの遅延が発生するとする。
【００１０】
半画素動き補償の場合の入力データフォーマットについて、図３を参照しつつ説明すると、図３（ａ）に示すように、８×８の横方向の半画素を生成する為の横方向の入力データフォーマットは９×９画素構成となっており、図３（ａ）の矢印が示すように、二次元空間上、左から右へ、上から下へと順次処理を行う。
【００１１】
より具体的には、図３（ａ）に示すように、Ａ→Ｂ→Ｃ→…→Ｉ→Ｊ→Ｋ→…→Ｚの順序で処理を行うことになる。この動作の詳細を図１７のタイミングチャートに示す。図１７において、Ｓ２１は図１５に示した第１選択手段１５０２のａを出力させる制御信号、Ｓ２２は図１５に示した第２選択手段１５０３のａを出力させる制御信号、Ｓ２３は図１５に示した第３選択手段１５０４のａを出力させる制御信号、Ｓ２４は図１５に示した第４選択手段１５０７のａを出力させる制御信号となる。
【００１２】
次にループ内フィルタの場合の入力データフォーマットについて、図４を参照しつつ説明すると、図４（ａ）に示すように、ループ内フィルタの横方向の入力データフォーマットは８×８画素構成となっており、図４（ａ）の矢印が示すように、二次元空間上、左から右へ、上から下へと順次処理を行う。
【００１３】
より具体的には、図４（ａ）に示すように、Ａ→Ｂ→Ｃ→…→Ｆ→Ｇ→Ｈ→Ｉ→Ｊ→…→Ｚの順序で処理を行うことになる。この動作の詳細を図１８のタイミングチャートに示す。図１８において、Ｓ２１は図１５に示した第１選択手段１５０２のｂを出力させる制御信号、Ｓ２３は図１５に示した第２選択手段１５０３のａを出力させる制御信号、Ｓ２２は図１５に示した第３選択手段１５０４において、時刻ｔ０〜ｔ１の期間にｂを出力、ｔ１〜ｔ７の期間にａを出力、ｔ７〜ｔ９の期間にｂを出力，ｔ９〜ｔ１０の期間にａを出力し、以降、前記のｔ０〜ｔ１０を繰り返す制御信号、Ｓ２４は図１５に示した第４選択手段１５０７において、時刻ｔ１〜ｔ２の期間にａを出力、時刻ｔ２〜ｔ８の期間にｂを出力、ｔ８〜ｔ１０の期間にａを出力し、以降、前記のｔ１〜ｔ１０を繰り返す制御信号となる。
【００１４】
次に、縦方向半画素動き補償及び縦方向ループ内フィルタ手段１４０１の構成について図１６を参照しつつ説明すると、この縦方向半画素動き補償及び縦方向ループ内フィルタ手段１４０１は、入力画素Ｄ３１を所定時間（１クロック）遅延して出力データＤ３２として出力する第１画素遅延手段１６００と、入力画素Ｄ３２を７画素分（７クロック相当）遅延して出力データＤ３３として出力する第１遅延手段１６０１と、入力画素Ｄ３１を２倍して出力する乗算手段１６０２と、「半画素動き補償モード」と「ループ内フィルタモード」とを切替える為のモード切替信号Ｓ３１により入力画素Ｄ３１或いは乗算手段１６０２により２倍された入力画素Ｄ３１の何れかを選択的に出力する第１選択手段１６０３と、第１ループ内フィルタ制御信号Ｓ３２に基づいて「０」或いは出力データＤ３３の何れかを選択的に出力する第２選択手段１６０４と、半画素処理制御信号Ｓ３３に基づいて第１選択手段１６０３の出力或いは第２選択手段１６０４の出力の何れかを選択的に出力する第３選択手段１６０５と、第２選択手段１６０４の出力と第３選択手段１６０５の出力を加算して出力データＤ３４として出力する第１加算手段１６０６と、第１加算手段１６０６の出力信号を所定時間（１クロック相当）遅延して出力データＤ３５として出力する第２画素遅延手段１６０７と、出力データＤ３５を８画素分（８クロック相当）遅延して出力データＤ３６として出力する第２遅延手段１６０８と、前述のモード切替信号Ｓ３１により出力データＤ３５或いは出力データＤ３６の何れかを選択的に出力する第４選択手段１６０９と、第２ループ内フィルタ制御信号Ｓ３４に基づいて出力データＤ３２或いは第４選択手段１６０９の出力データの何れかを選択的に出力する第５選択手段１６１０と、第４選択手段１６０９の出力データと第５選択手段１６１０の出力データとを加算して出力データＤ３７として出力する第２加算手段１６１１と、第２加算手段１６１１の出力データを所定時間（１クロック相当）遅延して出力データＤ３８として出力する第３画素遅延手段１６１２と、出力データＤ３８を１６分の１にして出力する除算手段１６１３と、を備えている。
【００１５】
次に縦方向半画素動き補償及び縦方向ループ内フィルタ手段１４０１の動作について、半画素動き補償とループ内フィルタの場合に分けて説明する。
半画素動き補償の場合の入力データフォーマットについて、図３を参照しつつ説明すると、先述した横方向処理の場合と同様に、図３（ａ）に示すように９×９画素構成となっており、図３（ａ）の矢印が示すように、二次元空間上、左から右へ、上から下へと順次処理を行う。
【００１６】
より具体的には、図３（ａ）に示すように、Ａ→Ｂ→Ｃ→…→Ｉ→Ｊ→Ｋ→…→Ｚの順序で処理を行うことになる。この動作の詳細を図１９のタイミングチャートに示す。図１９において、Ｓ３１は図１６に示した第１選択手段１６０３及び第４選択手段１６０９のａを出力させる制御信号、Ｓ３２は図１６に示した第２選択手段１６０４のｂを出力させる制御信号、Ｓ３３は図１６に示した第３選択手段１６０５のｂを出力させる制御信号、Ｓ３４は図１６に示した第５選択手段１６１０のａを出力させる制御信号となる。
【００１７】
次にループ内フィルタの場合の入力データフォーマットについて、図４を参照しつつ説明すると、先述したループ内フィルタの横方向処理の場合における入力データフォーマットと同様に、縦方向処理の入力データフォーマットは、図４（ａ）に示すように８×８画素構成となっており、図４（ａ）の矢印が示すように、二次元空間上、左から右へ、上から下へと順次処理を行う。
【００１８】
より具体的には、図４（ａ）の矢印が示すように、Ａ→Ｂ→Ｃ→…→Ｆ→Ｇ→Ｈ→Ｉ→Ｊ→…→Ｚの順序で処理を行うことになる。動作の詳細を図２０のタイミングチャートに示す。図２０において、Ｓ３１は図１６に示した第１選択手段１６０３及び第４選択手段１６０９のｂを出力させる制御信号、Ｓ３２は図１６に示した第２選択手段１６０４において、時刻ｔ０〜ｔ８の期間にａを出力、ｔ８〜ｔ５６の期間にｂを出力、ｔ５６〜ｔ６４の期間にａを出力させる制御信号、Ｓ３３は図１６に示した第３選択手段１６０５のａを出力させる制御信号、Ｓ３４は図１６に示した第５選択手段１６１０において、時刻ｔ９〜ｔ１７の期間にａを出力、ｔ１７〜ｔ６５の期間にｂを出力、ｔ６５〜ｔ７３の期間にａを出力させる制御信号となる（尚、図２０においてｔ２２以降は省略されている）。
【００１９】
以上のように半画素動き補償とループ内フィルタを実現する従来のフィルタ演算装置においては、横方向処理と縦方向処理について各々別の装置が必要である為、ハード規模が大きくなってしまい、問題であった。
【００２０】
そこで、本発明はこのような状況に鑑みてなされたものであり、入力される画素データに対する、半画素動き補償及びループ内フィルタの処理における横方向処理装置と縦方向処理装置において、コアとなる演算部は共有できることに着目し、演算部の内部にあって共有化の妨げとなっていた部分、例えばデータの遷移タイミングを調整する部分を、前処理部でモードの切替によって、データ遷移のタイミングを調整する機構を設けることで、横方向処理装置と縦方向処理装置の演算部の共有化を実現し、ハード規模の削減を可能としたフィルタ演算装置を提供するものである。
【００２１】
発明の開示
本発明の請求項１に記載のフィルタ演算装置では、第１フィルタ処理、又はこれとは異なる第２フィルタ処理のいずれかにより、入力画素データを処理するフィルタ演算装置であって、少なくとも、前記入力画素データを１画素分遅延して出力する第１画素遅延手段と、前記第１画素遅延手段の出力を１画素分遅延して出力する第２画素遅延手段と、前記第１画素遅延手段の出力を４倍して出力する第１乗算手段と、前記第１フィルタ処理による処理、又は前記第２フィルタ処理により、前記入力画素データを処理するように、処理手段を切替えるフィルタ処理切替信号を発生させるフィルタ処理切替信号発生手段と、前記フィルタ処理切替信号に応じて第１フィルタ処理により前記入力画素データを処理する場合は前記第１画素遅延手段の出力を１倍に、前記フィルタ処理切替信号に応じて第２フィルタ処理により前記入力画素データを処理する場合は前記第１画素遅延手段の出力を２倍にする第２乗算手段と、前記フィルタ処理切替信号に応じて第１フィルタ処理により前記入力画素データを処理する場合は、「０」を、前記フィルタ処理切替信号に応じて第２フィルタ処理により前記入力画素データを処理する場合は、前記第２画素遅延手段の出力を選択して出力する第１選択手段と、前記入力画素データと、前記第２乗算手段の出力と、前記第１選択手段の出力、を加算する加算手段と、前記フィルタ処理切替信号に基づいて、第１フィルタ処理により前記入力画素データを処理する場合は、前記加算手段の出力を選択する旨の選択制御信号を出力し、第２フィルタ処理により前記入力画素データを処理する場合は、８回の選択出力を１セットとして、最初と最後に前記第１乗算手段の出力を選択し、その他は前記加算手段の出力を選択する処理を繰り返し行うための選択制御信号を出力する選択制御信号発生手段と、前記選択制御信号により、前記第１乗算手段の出力、或いは前記加算手段の出力の何れかを選択的に出力する第２選択手段と、前記入力画素データを横方向に処理する横方向処理モードと、縦方向に処理する縦方向処理モードを切替えるモード切替信号を出力するモード切替信号出力手段と、前記フィルタ処理切替信号及び前記モード切替信号に基づいて、第１フィルタ処理により前記入力画素データを横方向処理、或いは縦方向処理する場合は、１／２倍する旨の乗数制御信号を出力し、第２フィルタ処理により前記入力画素データを横方向処理する場合は、１倍する旨の乗数制御信号を出力し、また、第２フィルタ処理により前記入力画素データを縦方向処理する場合は、１／１６倍する旨の乗数制御信号を出力する乗数制御信号発生手段と、前記第２選択手段の出力を１画素分遅延して出力する第３画素遅延手段と、前記第３画素遅延手段の出力を、前記乗数制御信号発生手段により出力される前記乗数制御信号により、１倍、１／２倍、又は１／１６倍にする第３乗算手段と、を具備した、ことを特徴とする。
【００２２】
このフィルタ演算装置であれば、入力される画像データに対する横方向処理装置と縦方向処理装置の演算部の共有化が可能なので、ハードウェア部分の回路規模を削減可能となり、ひいてはフィルタ演算装置の規模を縮小できるようになるという効果がある。
【００２３】
請求項２に記載のフィルタ演算装置は、請求項１に記載のフィルタ演算装置において、前記加算手段が、前記第１フィルタ処理による演算結果、又は前記第２フィルタ処理による演算結果、又は前記入力画素データを横方向に処理する「横方向処理モード」による演算結果、又は前記入力画素データを縦方向に処理する「縦方向処理モード」による演算結果、のいずれかの演算結果に対して「丸め」を施す為の値を保持するレジスタの出力を加算することを可能とすることは、好ましい実施の形態である。
【００２４】
このフィルタ演算装置であれば、各処理に合わせた「丸め」を施す為の値を格納するレジスタを備えて、４つの値の入力が可能な加算手段により丸めを施す為の値を加算する機能を持たせることで、精度劣化を抑える、という効果がある。
【００２５】
請求項３に記載のフィルタ演算装置は、請求項１に記載のフィルタ演算装置において、
前記入力画素データを、８画素分遅延して出力する第４画素遅延手段と、前記第４画素遅延手段の出力を、前記第４画素遅延手段の遅延時間と同じ時間遅延して出力する第５画素遅延手段と、前記モード切替信号に応じて前記入力画素データを横方向処理する場合は、前記第１画素遅延手段を選択し、前記入力画素データを縦方向処理する場合は、前記第４画素遅延手段の出力を選択し、選択した信号を前記第１乗算手段と前記第２乗算手段に対して出力する第３選択手段と、前記モード切替信号に応じて前記入力画素データを横方向処理する場合は、前記第２画素遅延手段を選択し、前記入力画素データを縦方向処理する場合は、前記第５画素遅延手段の出力を選択し、選択した信号を前記第１選択手段に対して出力する第４選択手段と、を具備した、ことを特徴とする。
【００２６】
このフィルタ演算装置であれば、入力される画像データに対する横方向処理及び縦方向処理が一方向にしか順次処理できない場合であっても、やはり横方向処理装置と縦方向処理装置の演算部の共有化が可能となるので、ハードウェア部分の回路規模が削減可能となり、ひいてはフィルタ演算装置の規模を縮小できるという効果がある。
【００２７】
発明を実施するための最良の形態
以下、本発明の実施の形態について図面を参照しながら説明する。尚、ここで示す実施の形態はあくまでも一例であって、必ずしもこの実施の形態に限定されるものではない。
【００２８】
実施の形態１．
まず、本発明に係るフィルタ演算装置の一例を、第１の実施の形態として図面を参照しつつ説明する。
図１は、縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１００を内包した本発明に係るフィルタ演算装置Ａの概念図であり、図２は縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１００の構成を示したブロック図である。
【００２９】
図１に示したフィルタ装置Ａはフィルタ演算の入出力データを格納するための記憶装置を２つ備えており、入力用記憶装置と出力用記憶装置へは同時にアクセスさせないように制御するスイッチ又はセレクタを備えている。
【００３０】
ここで、このフィルタ装置Ａの動作の一例として、まず横方向処理を行って、次いで縦方向処理を行う場合の動作について説明する。
まず、横方向処理の入力データを記憶装置１に、出力データを記憶装置２に格納する場合、記憶装置１の端子Ｏ１と縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１００の端子ＦＩとを、縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１００の端子ＦＯと記憶装置２の端子Ｉ１とを接続する。次に、横方向処理の出力データに対して縦方向処理を行う場合、記憶装置２の端子Ｏ２と縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１００の端子ＦＩとを、縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１００の端子ＦＯと記憶装置１の端子Ｉ２とを接続し、横方向処理におけるフィルタ装置と記憶装置の接続関係を逆転させる。
【００３１】
ここで示した例は、リード・ライト用に１つだけポートを備えた記憶装置を用いた場合のものであるが、リード用とライト用にそれぞれ１ポート備えたデュアルポートを有する記憶装置を用いた場合であれば、記憶装置は１つで構わない。
【００３２】
次に、図２に示した縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１００について説明する。
この図２に示したブロック図にあるように、縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１００は、入力画素Ｄ１を所定時間遅延（１クロック相当）して出力する第１画素遅延手段２００と、第１画素遅延手段２００の出力を所定時間遅延（１クロック相当）して出力する第２画素遅延手段２０１と、第１画素遅延手段２００の出力を４倍して出力する乗算手段２０２と、第１画素遅延手段２００の出力を「半画素動き補償モード」と「ループ内フィルタモード」とを切替える為のモード切替信号Ｓ１により、「半画素動き補償モード」の場合は０ビット（すなわち１倍）左論理シフトし、また「ループ内フィルタモード」の場合は１ビット（すなわち２倍）左論理シフトし、これを出力データＤ２として出力する左シフト手段２０３と、モード切替信号Ｓ１により「０」或いは第２画素遅延手段２０１の出力の何れかを選択的に出力データＤ３として出力する第１選択手段２０４と、入力画素Ｄ１と出力データＤ２と出力データＤ３と、を加算する加算手段２０５と、制御信号Ｓ２により乗算手段２０２の出力或いは加算手段２０５の出力の何れかを選択的に出力する第２選択手段２０６と、モード切替信号Ｓ１に基づいて第２選択手段２０６の制御信号Ｓ２を出力する選択制御信号発生手段２０７と、第２選択手段２０６の出力を所定時間遅延（１クロック相当）し、これを出力データＤ４として出力する第３画素遅延手段２０８と、出力データＤ４をシフト量制御信号Ｓ４により、０ビット（すなわち１倍）、１ビット（すなわち１／２倍）、４ビット（すなわち１／１６）のいずれかに算術右シフトし、出力データＤ５として出力する右シフト手段２０９と、モード切替信号Ｓ１及び「横方向処理モード」と「縦方向処理モード」を切替える為のモード切替信号Ｓ３に基づいて、右シフト手段２０９のシフト量を制御するシフト量制御信号Ｓ４を出力するシフト量制御手段２１０と、を備えている。
【００３３】
次に、図２に示した縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１００の横方向処理の動作について、半画素動き補償とループ内フィルタの場合に分けて説明する。
半画素動き補償の場合の入力データフォーマットについて、図３を参照しつつ説明すると、図３（ａ）に示すように、８×８の横方向の半画素を生成する為の横方向の入力データフォーマットは９×９画素構成となっており、図３（ａ）の矢印が示すように、二次元空間上、左から右へ、上から下へと順次処理を行う。
【００３４】
より具体的には、図３（ａ）に示すように、Ａ→Ｂ→Ｃ→…→Ｉ→Ｊ→Ｋ→…→Ｚの順序で処理を行うことになる。この動作の詳細を図５のタイミングチャートに示す。図５において、Ｓ１は「半画素動き補償モード」がＯＮとなると図２に示した第１選択手段２０４のｂを出力させる制御信号、Ｓ２は図２に示した第２選択手段２０６のｂを出力させる制御信号、Ｓ３は図２に示したシフト量制御手段２１０を「横方向処理モード」に切替える制御信号、Ｓ４は図２に示した第３画素遅延手段２０８からの出力を１ビット右算術シフト（すなわち１／２）させる制御信号となる。
【００３５】
次にループ内フィルタの場合の入力データフォーマットについて、図４を参照しつつ説明すると、ループ内フィルタの横方向の入力データフォーマットは図４（ａ）に示すように８×８画素構成となっており、図４（ａ）の矢印が示すように、二次元空間上、左から右へ、上から下へと順次処理を行う。
【００３６】
より具体的には、図４（ａ）に示すように、Ａ→Ｂ→Ｃ→…→Ｆ→Ｇ→Ｈ→Ｉ→Ｊ→…→Ｚの順序で処理を行うことになる。この動作の詳細を図６のタイミングチャートに示す。図６において、Ｓ１は「ループ内フィルタモード」がＯＮとなると図２に示した第１選択手段２０４のａを出力させる制御信号、Ｓ２は図２に示した第２選択手段２０６において、時刻ｔ１〜ｔ２の期間にａを出力、ｔ２〜ｔ８の期間にｂを出力、ｔ８〜ｔ９の期間にａを出力し、以降、前記のｔ１〜ｔ９を繰り返す制御信号、Ｓ３は図２に示したシフト量制御手段２１０を「横方向処理モード」に切替える制御信号、Ｓ４は図２に示した第３画素遅延手段２０８からの出力を０ビット右算術シフト（すなわち１倍）させる制御信号となる。そしてループ内フィルタの出力データＤ５は、記憶装置に格納される。尚、この記憶装置とは、例えば図１に示したようなものである。
【００３７】
次に、図２に示した縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１００の縦方向処理の動作について、半画素動き補償とループ内フィルタの場合に分けて説明する。
半画素動き補償の場合の入力データフォーマットについて、図３を参照しつつ説明すると、図３（ｂ）に示すように、８×８の縦方向の半画素を生成する為の縦方向の入力データフォーマットは９×９画素構成となっており、図３（ｂ）の矢印が示すように、二次元空間上、上から下へ、左から右へと順次処理を行う。
【００３８】
より具体的には、図３（ｂ）に示すように、Ａ→Ｂ→Ｃ→…→Ｉ→Ｊ→Ｋ→…→Ｚの順序で処理を行うことになる。この動作の詳細は、先述した横方向処理の場合と同様であり、即ちそのタイミングチャートは図５に示すものと同一となる。
【００３９】
次にループ内フィルタの場合の入力データフォーマットについて、図４を参照しつつ説明すると、ループ内フィルタの縦方向の入力データフォーマットは図４（ｂ）に示すように８×８画素構成となっており、図４（ｂ）の矢印が示すように、二次元空間上、上から下へ、左から右へと順次処理を行う。より具体的には、縦方向処理は、横方向処理の出力データに対して行われ、また、通常はこのように処理される。
【００４０】
図７に示すデータは、図４（ｂ）に示す８×８のデータに対する横方向処理の結果であり、図７中の矢印に示すように、２次元空間上、上から下へ、左から右へ、と順次処理を行う。つまり、図４においてＡ→Ｂ→Ｃ→…→Ｆ→Ｇ→Ｈ→Ｉ→Ｊ→…→Ｚの順序で処理を行うこととなり、横方向処理後の値が入力される。この動作の詳細を図８のタイミングチャートに示す。図８において、Ｓ１は「ループ内フィルタモード」がＯＮとなると図２に示した第１選択手段２０４のａを出力させる制御信号、Ｓ２は図２に示した第２選択手段２０６において、時刻ｔ１〜ｔ２の期間にａを出力、ｔ２〜ｔ８の期間にｂを出力、ｔ８〜ｔ９の期間にａを出力、以降、前記のｔ１〜ｔ９を繰り返す制御信号、Ｓ３は図２に示したシフト量制御手段２１０を「縦方向処理モード」に切替える制御信号、Ｓ４は図２に示したシフト量制御手段２１０からの出力を４ビット右算術シフト（すなわち１／１６倍）させる制御信号となる。
【００４１】
以上の説明のように、図４（ａ）に示す８×８のデータに対して横方向、及び縦方向の処理を行うと、図９に示すような値が算出され、その結果、ループ内フィルタが実現されるのである。
【００４２】
このようにフィルタ演算装置Ａを構成することにより、同一の装置で半画素動き補償の横方向処理及び縦方向処理、更にループ内フィルタの横方向処理及び縦方向処理が可能となるので、ハードウェアの規模を削減することが可能となる。
【００４３】
なお、本実施の形態の応用例として図１０に示すように、各処理に合わせた「丸め」を施す為の値を格納するレジスタ１００１を備えて、４つの値の入力が可能な加算手段１０００により丸めを施す為の値を加算する機能を持たせた、縦横方向半画素動き補償及び縦横方向ループ内フィルタ１００’とすることで、精度劣化を抑えることも考えられる。
【００４４】
実施の形態２．
次に、先述のフィルタ演算装置Ａと異なる構成を有するフィルタ演算装置Ｂを、第２の実施の形態として、図面を参照しつつ説明する。
このフィルタ演算装置Ｂの概念図は、先に第１の実施の形態で示したフィルタ演算装置Ａの概念図である図１と同様であり、縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１０１を内包している。また縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１０１の構成を示すブロック図は図１１に示す通りである。
【００４５】
まず、フィルタ演算装置Ｂの動作の特徴について、簡単に説明する。
通常、図２２（ａ）に示すフィルタ演算に使用するデータを０、１、２、３、…のように縦に読む場合、実際のメモリ１次元空間には図中矢印の順番に従って、図２２（ｂ）に示すように格納されている。そして図２２（ｂ）に示すように格納されたデータを読み出す為には、アドレッシングに特殊操作が必要となるが、本実施の形態に係るフィルタ演算装置Ｂであれば、このようなアドレッシング機能を装備していない記憶装置であってもフィルタ演算が可能である。
【００４６】
このフィルタ演算装置Ｂにおける縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１０１について、図面を参照しつつ説明する。
縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１０１は、図１１に示したブロック図にあるように、入力画素Ｄ４１を所定時間遅延（１クロック相当）して出力する第１画素遅延手段１１００と、さらに第１画素遅延手段１１００の出力を所定時間遅延（１クロック相当）して出力する第２画素遅延手段１１０１と、入力画素Ｄ４１を所定時間遅延（８クロック相当）して出力する第４画素遅延手段１１０２と、第４画素遅延手段１１０２の出力を所定時間遅延（８クロック相当）して出力する第５画素遅延手段１１０３と、「横方向処理モード」と「縦方向処理モード」を切替える為のモード切替信号Ｓ４３によって、「横方向処理モード」の場合は第１画素遅延手段１１００の出力（図１１の第３選択手段１１０４に示す「ａ」）を、「縦方向処理モード」の場合は第４画素遅延手段１１０２の出力（図１１の第３選択手段１１０４に示す「ｂ」）を選択的に出力する第３選択手段１１０４と、「横方向処理モード」と「縦方向処理モード」を切替える為のモード切替信号Ｓ４３によって、「横方向処理モード」の場合は第２画素遅延手段１１０１の出力（図１１の第４選択手段１１０５に示す「ａ」）を、「縦方向処理モード」の場合は第５画素遅延手段１１０３の出力（図１１の第４選択手段１１０５に示す「ｂ」）を選択的に出力する第４選択手段１１０５と、を有している。
【００４７】
尚、その他の構成、即ち乗算手段１１０６、左シフト手段１１０７、第１選択手段１１０８、加算手段１１０９、第２選択手段１１１０、選択制御信号発生手段１１１１、第３画素遅延手段１１１２、右シフト手段１１１３、シフト量制御手段１１１４、については、第１の実施の形態で示した、フィルタ演算装置Ａに内包される縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１００を構成する乗算手段２０２、左シフト手段２０３、第１選択手段２０４、加算手段２０５、第２選択手段２０６、選択制御信号発生手段２０７、第３画素遅延手段２０８、右シフト手段２０９、シフト量制御手段２１０、それぞれと同一であるので、ここではその説明を省略する。また、図１１中、Ｄ４２〜Ｄ４５は出力データ、Ｓ４１はモード切替信号、Ｓ４２は制御信号、Ｓ４４はシフト量制御信号であるが、これらは図２で示した出力データＤ２〜Ｄ５、モード切替信号Ｓ１、制御信号Ｓ２、シフト量制御信号Ｓ４と同様のものである。
【００４８】
次に、図１１に示した縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１０１において、「横方向処理モード」と「縦方向処理モード」を切替える為のモード切替信号Ｓ４３によって「横方向処理モード」とされた時の、横方向処理における縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１０１の動作について述べると、第３選択手段１１０４、及び第４選択手段１１０５は上述の通り動作し、また、この縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１０１の動作は、第１の実施の形態で説明した、図２に示した縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１００と同様の動作をするので、ここでは横方向処理の動作の説明は省略する。
【００４９】
次に、図１１に示した縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１０１において、「横方向処理モード」と「縦方向処理モード」を切替える為のモード切替信号Ｓ４３によって「縦方向処理モード」とされた時の、縦方向処理における縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段１０１の動作について、半画素動き補償とループ内フィルタの場合に分けて説明する。
【００５０】
半画素動き補償の場合の入力データフォーマットについて、図３を参照しつつ説明すると、図３（ｂ）に示すように、８×８の縦方向の半画素を生成する為の縦方向の入力データフォーマットは９×９画素構成となっており、図３（ｂ）の矢印が示すように、二次元空間上、左から右へ、上から下へと順次処理を行う。
【００５１】
より具体的には、図３（ｂ）に示すように、Ａ→Ｂ→Ｃ→…→Ｉ→Ｊ→Ｋ→…→Ｚの順序で処理を行うことになる。この動作の詳細を図１２のタイミングチャートに示す。図１２において、Ｓ４１は「半画素動き補償モード」がＯＮとなると図１１に示した第１選択手段１１０８のｂを出力させる制御信号、Ｓ４２は図１１に示した第２選択手段１１１０のｂを出力させる制御信号、Ｓ４３は図１１に示したシフト量制御手段１１１４を「縦方向処理モード」に切替え、また、第３選択手段１１０４及び第４選択手段１１０５のｂを出力させる制御信号、Ｓ４４は図１１に示した第３画素遅延手段１１１２からの出力を１ビット右算術シフト（すなわち１／２倍）させる制御信号となる。
【００５２】
次にループ内フィルタの場合の入力データフォーマットについて、図４を参照しつつ説明すると、ループ内フィルタの縦方向の入力データフォーマットは、図４（ｂ）に示すように８×８画素構成となっており、図４（ｂ）の矢印が示すように、二次元空間上、上から下へ、左から右へと順次処理を行う。
【００５３】
より具体的には、図４（ｂ）に示すように、Ａ→Ｂ→Ｃ→…→Ｆ→Ｇ→Ｈ→Ｉ→Ｊ→…→Ｚの順序で処理を行うことになり、図７に示すように、縦方向処理後の値が入力される。この動作の詳細を図１３のタイミングチャートに示す。図１３において、Ｓ４１は「ループ内フィルタモード」がＯＮとなると図１１に示した第１選択手段１１０８のａを出力させる制御信号、Ｓ４２は図１１に示した第２選択手段１１１０において、時刻ｔ８〜ｔ１６の期間にａを出力、ｔ１６〜ｔ６４の期間にｂを出力、ｔ６４〜ｔ７２の期間にａを出力し、以降、前記のｔ８〜ｔ７２を繰り返す制御信号、Ｓ４３は図１１に示したシフト量制御信号１１１４を「縦方向処理モード」に切替え、また、第３選択手段１１０４及び第４選択手段１１０５のａを出力させる制御信号、Ｓ４４は図１１に示した第３画素遅延手段１１１２からの出力を４ビット右算術シフト（すなわち１／１６倍）させる制御信号となる。
【００５４】
以上のように図４（ｂ）又は図３（ｂ）に示すような、上から下へ、左から右へと順次処理が不可能で、図４（ａ）又は図３（ａ）に示すような、左から右へ、上から下への順次処理のみにしか対応できない装置においても同一の装置で横方向と縦方向の処理が可能である為、ハード規模の削減が可能である。
【００５５】
産業上の利用可能性
以上のように本発明に係るフィルタ演算装置は、入力される画素データに対する、半画素動き補償及びループ内フィルタの処理における横方向処理装置と縦方向処理装置において、横方向処理装置と縦方向処理装置の演算部の共有化を実現し、ハード規模の削減を可能とするものとして、極めて有用である。
【図面の簡単な説明】
【図１】第１の実施の形態及び第２の実施の形態に係るフィルタ演算装置の概念図である。
【図２】第１の実施の形態に係る縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段のブロック図である。
【図３】半画素動き補償の入力データフォーマットの概念図である。
【図４】ループ内フィルタの入力データのフォーマットの概念図である。
【図５】第１の実施の形態に係るフィルタ演算装置による半画素動き補償の横及び縦方向処理の動作を表わすタイミングチャートである。
【図６】第１の実施の形態に係るフィルタ演算装置によるループ内フィルタの横方向処理の動作を表わすタイミングチャートである。
【図７】ループ内フィルタの横方向処理後の結果を示した概念図である。
【図８】第１の実施の形態に係るフィルタ演算装置によるループ内フィルタの縦方向処理の動作を表わすタイミングチャートである。
【図９】ループ内フィルタの縦方向処理後の結果を示した概念図である。
【図１０】第１の実施の形態に係るフィルタ演算装置の別の形態を示すブロック図である。
【図１１】第２の実施の形態に係る縦横方向半画素動き補償及び縦横方向ループ内フィルタ手段のブロック図である。
【図１２】第２の実施の形態に係るフィルタ演算装置による半画素動き補償の縦方向処理の動作を表わすタイミングチャートである。
【図１３】第２の実施の形態に係るフィルタ演算装置によるループ内フィルタの縦方向処理の動作を表わすタイミングチャートである。
【図１４】従来のフィルタ演算装置の概念図である。
【図１５】従来のフィルタ演算装置に係る横方向半画素動き補償及び横方向ループ内フィルタ手段のブロック図である。
【図１６】従来のフィルタ演算装置に係る縦方向半画素動き補償及び縦方向ループ内フィルタ手段のブロック図である。
【図１７】従来のフィルタ演算装置に係る半画素動き補償の横方向処理装置の動作を表わすタイミングチャートである。
【図１８】従来のフィルタ演算装置に係るループ内フィルタの横方向処理装置の動作を表わすタイミングチャートである。
【図１９】従来のフィルタ演算装置に係る半画素動き補償の縦方向処理装置の動作を表わすタイミングチャートである。
【図２０】従来のフィルタ演算装置に係るループ内フィルタの縦方向処理装置の動作を表わすタイミングチャートである。
【図２１】ループ内フィルタの処理を示す概念図である。
【図２２】フィルタ演算に使用するデータを縦に読む場合のアドレッシング機能を説明するための図である。
【図１】
0003626686.tif 000002
【図２】
0003626686.tif 000003
【図３】
0003626686.tif 000004
【図４】
0003626686.tif 000005
【図５】
0003626686.tif 000006
【図６】
0003626686.tif 000007
【図７】
0003626686.tif 000008
【図８】
0003626686.tif 000009
【図９】
0003626686.tif 000010
【図１０】
0003626686.tif 000011
【図１１】
0003626686.tif 000012
【図１２】
0003626686.tif 000013
【図１３】
0003626686.tif 000014
【図１４】
0003626686.tif 000015
【図１５】
0003626686.tif 000016
【図１６】
0003626686.tif 000017
【図１７】
0003626686.tif 000018
【図１８】
0003626686.tif 000019
【図１９】
0003626686.tif 000020
【図２０】
0003626686.tif 000021
【図２１】
0003626686.tif 000022
【図２２】
0003626686.tif 000023