(57)【特許請求の範囲】
【請求項１】
入力した画像データをパディング処理し、出力する画像処理装置であって、
パディング処理対象の画像データ中の一次元に配列されたｎ個の画素データを単位に入力し、当該ｎ個の画素データを保持する第１の保持手段と、
前記ｎ個の画素データそれぞれに対応し、各画素がオブジェクト内、オブジェクト外のいずれに属するかを示す属性データを保持する第２の保持手段と、
前記第２の保持手段に保持された属性データに基づき、前記第１の保持手段に保持された画素データを前記一次元の配列の一方向に伝搬させ、伝搬済み第１乃至第ｎの画素データを出力する第１の伝搬手段と、
前記第２の保持手段に保持された属性データに基づき、前記第１の保持手段に保持された画素データを前記第１の伝搬手段の伝搬する方向とは逆の方向に伝搬させ、伝搬済みの第１乃至第ｎの画素データを出力する第２の伝搬手段と、
前記第１の伝搬手段及び前記第２の伝搬手段それぞれから出力された同じ画素位置の画素データの平均値を算出し、当該算出後の第１乃至第ｎの画素データを、前記一次元に並んだｎ個の画素データのパディング処理結果として出力する演算手段とを備え、
前記第１の伝搬手段は、ｎ個の第１の選択手段Ｓ１1乃至Ｓ１n、又は、ｎ−１個の第１の選択手段Ｓ１1乃至Ｓ１n-1で構成され、
前記第２の伝搬手段は、ｎ個の第２の選択手段Ｓ２1乃至Ｓ２n、又は、ｎ−１個の第２の選択手段Ｓ２2乃至Ｓ２nで構成され、
前記第１の保持手段に保持された第ｉ番目の画素データをＰi、前記第ｉ番目の画素データに対応する前記第２の保持手段に保持された第ｉ番目の属性データをＡiとしたとき、
第ｉ番目の前記第１の選択手段Ｓ１i（１≦ｉ≦ｎ−１）は、
（１）前記属性データＡiが、画素データＰiがオブジェクト内にあることを示している場合、前記画素データＰiを、伝搬済みの第ｉ番目の画素データとして選択出力し、
（２）前記属性データＡiが、画素データＰiがオブジェクト外にあることを示している場合、前記第１の選択手段Ｓ１i+1からの出力を、伝搬済みの第ｉ番目の画素データとして選択出力し、
第ｉ番目の前記第２の選択手段Ｓ２i（２≦ｉ≦ｎ）は、
（３）前記属性データＡiが、画素データＰiがオブジェクト内にあることを示している場合、前記画素データＰiを、伝搬済みの第ｉ番目の画素データとして選択出力し、
（４）前記属性データＡiが、画素データＰiがオブジェクト外にあることを示している場合、前記第２の選択手段Ｓ２i-1からの出力を、伝搬済みの第ｉ番目の画素データとして選択出力し、
さらに、第１番目の前記第１の選択手段Ｓ１1の出力を前記第２の伝播搬手段に、第ｎ番目の前記第２の選択手段Ｓ２nの出力を前記第１の伝播搬手段に入力する
ことを特徴とする画像処理装置。
【請求項２】
前記属性データは、各画素データについて１ビットのデータであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１の保持手段、前記第２の保持手段、前記第１の伝搬手段、前記第２の伝搬手段及び前記演算手段を含むデータ処理手段から出力される一次元の画像データを順次保持することにより、二次元の画像データを保持するデータ保持手段と、
前記データ保持手段に保持された二次元の画像データを、前記データ処理手段から出力される一次元の画像データに対して異なる方向の一次元の画像データとして、前記データ処理手段に順次供給して、これにより前記データ処理手段に画像データを再処理させるデータ供給手段と、
を更に備えることを特徴とする請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記データ処理手段に画像データを再処理させる際に要する属性データを元の属性データに基づいて生成し、これを再処理の際に前記データ処理手段に供給する属性データ生成手段を更に備えることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記第１の伝搬手段、前記第２の伝搬手段及び前記演算手段の構成を含む第１のデータ処理手段と、
前記第１の伝搬手段、前記第２の伝搬手段及び前記演算手段の構成を含む第２のデータ処理手段と、
前記第１のデータ処理手段から出力される一次元の画像データを順次保持することにより、二次元の画像データを保持するデータ保持手段と、
前記データ保持手段に保持された二次元の画像データを、前記第１のデータ処理手段から出力される一次元の画像データと異なる方向の一次元の画像データとして、前記第２のデータ処理手段に順次供給するデータ供給手段と、
を更に備えることを特徴とする請求項１又は請求項２に記載の画像処理装置。
【請求項６】
前記第２のデータ処理手段に画像データを処理させる際に要する属性データを、前記第１のデータ処理手段に供給すべき属性データに基づいて生成し、これを前記第２のデータ処理手段に供給する属性データ生成手段を更に備えることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記第１のデータ処理手段及び前記第２のデータ処理手段は、複数ブロックの二次元の画像データを連続的に処理することを特徴とする請求項５又は請求項６に記載の画像処理装置。
【請求項８】
前記データ保持手段は、前記第１のデータ処理手段から出力される画像データを取り込みながら前記第２のデータ処理手段に供給すべき画像データを出力することを特徴とする請求項５乃至請求項７のいずれか１項に記載の画像処理装置。
【請求項９】
前記データ保持手段は、互いに直交する第１及び第２の方向にデータをシフトさせる機能を有し、第１のブロックの二次元の画像データを前記第１のデータ処理手段から取り込む際は、前記第１の方向にシフト動作を実行し、続く第２のブロックの二次元の画像データを前記第１のデータ処理手段から取り込む際は、前記第２の方向にシフト動作を実行することを特徴とする請求項５乃至請求項８のいずれか１項に記載の画像処理装置。
【請求項１０】
入力した画像データをパディング処理し、出力する画像処理方法であって、
パディング処理対象の画像データ中の一次元に配列したｎ個の画素データを単位に入力し、当該ｎ個の画素データを第１の保持手段に格納する工程と、
前記ｎ個の画素データそれぞれに対応し、各画素がオブジェクト内、オブジェクト外のいずれに属するかを示す属性データを第２の保持手段に格納する工程と、
前記第２の保持手段に保持された属性データに基づき、前記第１の保持手段に保持された画素データを前記一次元の配列の一方向に伝搬させ、伝搬済み第１乃至第ｎの画素データを出力する第１の伝搬工程と、
前記第２の保持手段に保持された属性データに基づき、前記第１の保持手段に保持された画素データを前記第１の伝搬工程の伝搬する方向とは逆の方向に伝搬させ、伝搬済みの第１乃至第ｎの画素データを出力する第２の伝搬工程と、
前記第１の伝搬工程及び前記第２の伝搬工程それぞれから出力された同じ画素位置の画素データの平均値を算出し、当該算出後の第１乃至第ｎの画素データを、前記一次元に並んだｎ個の画素データのパディング処理結果として出力する演算工程とを備え、
前記第１の伝搬工程は、ｎ個の第１の選択工程Ｓ１1乃至Ｓ１n、又は、ｎ−１個の第１の選択工程Ｓ１1乃至Ｓ１n-1で構成され、
前記第２の伝搬工程は、ｎ個の第２の選択工程Ｓ２1乃至Ｓ２n、又は、ｎ−１個の第２の選択工程Ｓ２2乃至Ｓ２nで構成され、
前記第１の保持手段に保持された第ｉ番目の画素データをＰi、前記第ｉ番目の画素データに対応する前記第２の保持手段に保持された第ｉ番目の属性データをＡiとしたとき、
第ｉ番目の前記第１の選択工程Ｓ１iでは、
（１）前記属性データＡiが、画素データＰiがオブジェクト内にあることを示している場合、前記画素データＰiを、伝搬済みの第ｉ番目の画素データとして選択出力し、
（２）前記属性データＡiが、画素データＰiがオブジェクト外にあることを示している場合、前記第１の選択工程Ｓ１i+1からの出力を、伝搬済みの第ｉ番目の画素データとして選択出力し、
第ｉ番目の前記第２の選択工程Ｓ２iでは、
（３）前記属性データＡiが、画素データＰiがオブジェクト内にあることを示している場合、前記画素データＰiを、伝搬済みの第ｉ番目の画素データとして選択出力し、
（４）前記属性データＡiが、画素データＰiがオブジェクト外にあることを示している場合、前記第２の選択工程Ｓ２i-1からの出力を、伝搬済みの第ｉ番目の画素データとして選択出力し、
さらに、第１番目の前記第１の選択工程Ｓ１1の出力を前記第２の伝播搬工程に、第ｎ番目の前記第２の選択工程Ｓ２nの出力を前記第１の伝播搬工程に入力する
ことを特徴とする画像処理方法。
【請求項１１】
コンピュータが読み込み実行することで、前記コンピュータを、請求項１乃至請求項９のいずれか１項に記載の画像処理装置として機能させるコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【請求項１２】
請求項１乃至請求項９のいずれか１項に記載の画像処理装置を有することを特徴とする画像符号化装置。
【請求項１３】
請求項１乃至請求項９のいずれか１項に記載の画像処理装置を有することを特徴とする画像復号装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データをその属性データに基づいて処理する画像処理装置及び画像処理方法並びにその処理を制御するメモリ媒体に関する。
【０００２】
【従来の技術】
画像（特に動画像）は、そのデータ量が非常に大きい。従って、画像を蓄積・伝送する際には、そのデータ量を大幅に削減するための圧縮処理が不可欠である。動画像を圧縮（符号化）する処理として、既にＭＰＥＧ−１、ＭＰＥＧ−２などの国際標準が定められているが、これらはテレビカメラ等で撮影した矩形領域の画像のみを対象としている。
【０００３】
画像の特徴は様々であるが、背景とその背景より手前にある被写体（オブジェクト）とからなる画像が数多く存在する。一般的に、背景となる画像は、激しい動きを伴なわず、撮影に使用するカメラの動きに合わせて全体が移動したり、背景中の様々なものが各々細かい動きをしたりする。それに対して、オブジェクトは、激しい動きを伴なう場合がある。このように、オブジェクトと背景とは異なる性質を有する。
【０００４】
ＭＰＥＧ−１、ＭＰＥＧ−２に続いて標準化が進められているＭＰＥＧ−４では、オブジェクトと背景とを別々に取り扱えるようにし、有用なオブジェクトを他で再利用することにより、動画コンテンツの生産性を高めたり、画像を見る側でオブジェクトを操作することができる枠組みを用意することで、画像に対して能動的な関係を築き、新しい表現ができるように考えられている。
【０００５】
しかしながら、オブジェクトの形状は矩形ではなく任意であるため、従来のＭＰＥＧ−１、ＭＰＥＧ−２で用いられてきた圧縮手法をそのまま適用することはできない。
【０００６】
動画圧縮では、更にフレーム間の相関を利用してデータ量を減らす。フレーム間の相関を利用するということは、オブジェクトの現フレームのデータを符号化する際に、他のフレームにおける相関の強い領域を参照し、その差分値を符号化することである。
【０００７】
オブジェクトが任意の形状であると、当然、参照される他のフレームにおけるオブジェクトの形状も任意であり、オブジェクトの外の領域においては値が無い状態である。これでは、ブロック単位の動きベクトル情報を求めることが出来ない。
【０００８】
そこで、参照されるオブジェクトにパディング処理を施して矩形領域に広げた上でブロック単位の動きベクトル探索を行なう。
【０００９】
２次元的な広がりを持つ画像データのパディング処理は、１次元のパディング処理を、横方向と縦方向に対して順に行なうことで実現する。１次元のパディング処理は以下のように行なうことができる。
【００１０】
複数のオブジェクトで挟まれたオブジェクト外の領域（行または列）は、該領域の両端のオブジェクト内の画素データの平均値に置き換え、その他のオブジェクト外の領域は、該領域に接するオブジェクト内の画素データに置き換える。
【００１１】
【発明が解決しようとする課題】
本発明は、上記の背景に鑑みてなされたものであり、例えば、パディング処理を高速化することを目的とする。
【００１２】
【発明が解決するための手段】
本発明の第１の側面に係る画像処理装置は、入力した画像データをパディング処理し、出力する画像処理装置であって、
パディング処理対象の画像データ中の一次元に配列されたｎ個の画素データを単位に入力し、当該ｎ個の画素データを保持する第１の保持手段と、
前記ｎ個の画素データそれぞれに対応し、各画素がオブジェクト内、オブジェクト外のいずれに属するかを示す属性データを保持する第２の保持手段と、
前記第２の保持手段に保持された属性データに基づき、前記第１の保持手段に保持された画素データを前記一次元の配列の一方向に伝搬させ、伝搬済み第１乃至第ｎの画素データを出力する第１の伝搬手段と、
前記第２の保持手段に保持された属性データに基づき、前記第１の保持手段に保持された画素データを前記第１の伝搬手段の伝搬する方向とは逆の方向に伝搬させ、伝搬済みの第１乃至第ｎの画素データを出力する第２の伝搬手段と、
前記第１の伝搬手段及び前記第２の伝搬手段それぞれから出力された同じ画素位置の画素データの平均値を算出し、当該算出後の第１乃至第ｎの画素データを、前記一次元に並んだｎ個の画素データのパディング処理結果として出力する演算手段とを備え、
前記第１の伝搬手段は、ｎ個の第１の選択手段Ｓ１1乃至Ｓ１n、又は、ｎ−１個の第１の選択手段Ｓ１1乃至Ｓ１n-1で構成され、
前記第２の伝搬手段は、ｎ個の第２の選択手段Ｓ２1乃至Ｓ２n、又は、ｎ−１個の第２の選択手段Ｓ２2乃至Ｓ２nで構成され、
前記第１の保持手段に保持された第ｉ番目の画素データをＰi、前記第ｉ番目の画素データに対応する前記第２の保持手段に保持された第ｉ番目の属性データをＡiとしたとき、
第ｉ番目の前記第１の選択手段Ｓ１i（１≦ｉ≦ｎ−１）は、
（１）前記属性データＡiが、画素データＰiがオブジェクト内にあることを示している場合、前記画素データＰiを、伝搬済みの第ｉ番目の画素データとして選択出力し、
（２）前記属性データＡiが、画素データＰiがオブジェクト外にあることを示している場合、前記第１の選択手段Ｓ１i+1からの出力を、伝搬済みの第ｉ番目の画素データとして選択出力し、
第ｉ番目の前記第２の選択手段Ｓ２i（２≦ｉ≦ｎ）は、
（３）前記属性データＡiが、画素データＰiがオブジェクト内にあることを示している場合、前記画素データＰiを、伝搬済みの第ｉ番目の画素データとして選択出力し、
（４）前記属性データＡiが、画素データＰiがオブジェクト外にあることを示している場合、前記第２の選択手段Ｓ２i-1からの出力を、伝搬済みの第ｉ番目の画素データとして選択出力し、
さらに、第１番目の前記第１の選択手段Ｓ１1の出力を前記第２の伝播搬手段に、第ｎ番目の前記第２の選択手段Ｓ２nの出力を前記第１の伝播搬手段に入力することを特徴とする。
【００１７】
本発明の第１の側面に係る画像処理装置において、前記属性データは、例えば、各画素データについて１ビットのデータであることが好ましい。
【００２０】
本発明の第１の側面に係る画像処理装置は、例えば、前記第１の保持手段、前記第２の保持手段、前記第１の伝搬手段、前記第２の伝搬手段及び前記演算手段を含むデータ処理手段から出力される一次元の画像データを順次保持することにより、二次元の画像データを保持するデータ保持手段と、前記データ保持手段に保持された二次元の画像データを、前記データ処理手段から出力される一次元の画像データに対して異なる方向の一次元の画像データとして、前記データ処理手段に順次供給して、これにより前記データ処理手段に画像データを再処理させるデータ供給手段と、を更に備えるが好ましい。
【００２１】
本発明の第１の側面に係る画像処理装置は、例えば、前記データ処理手段に画像データを再処理させる際に要する属性データを元の属性データに基づいて生成し、これを再処理の際に前記データ処理手段に供給する属性データ生成手段を更に備えることが好ましい。
【００２２】
本発明の第１の側面に係る画像処理装置は、例えば、前記第１の伝搬手段、前記第２の伝搬手段及び前記演算手段と同様の手段を含む第１のデータ処理手段と、前記第１の伝搬手段、前記第２の伝搬手段及び前記演算手段と同様の手段を含む第２のデータ処理手段と、前記第１のデータ処理手段から出力される１次元の画像データを順次保持することにより、結果的に２次元の画像データを保持するデータ保持手段と、前記データ保持手段に保持された二次元の画像データを、前記第１のデータ処理手段から出力される一次元の画像データと異なる方向の一次元の画像データとして、前記第２のデータ処理手段に順次供給するデータ供給手段とを更に備えることが好ましい。
【００２３】
本発明の第１の側面に係る画像処理装置は、例えば、前記第２のデータ処理手段に画像データを処理させる際に要する属性データを、前記第１のデータ処理手段に供給すべき属性データに基づいて生成し、これを前記第２のデータ処理手段に供給する属性データ生成手段を更に備えることが好ましい。
【００２４】
本発明の第１の側面に係る画像処理装置において、前記第１のデータ処理手段及び前記第２のデータ処理手段は、例えば、複数ブロックの二次元の画像データを連続的に処理することが好ましい。
【００２５】
本発明の第１の側面に係る画像処理装置において、前記データ保持手段は、例えば、前記第１のデータ処理手段から出力される画像データを取り込みながら前記第２のデータ処理手段に供給すべき画像データを出力することが好ましい。
【００２６】
本発明の第１の側面に係る画像処理装置において、前記データ保持手段は、例えば、互いに直交する第１及び第２の方向にデータをシフトさせる機能を有し、第１のブロックの二次元の画像データを前記第１のデータ処理手段から取り込む際は、前記第１の方向にシフト動作を実行し、続く第２のブロックの二次元の画像データを前記第１のデータ処理手段から取り込む際は、前記第２の方向にシフト動作を実行することが好ましい。
【００２７】
本発明の第２の側面に係る画像処理方法は、入力した画像データをパディング処理し、出力する画像処理方法であって、
パディング処理対象の画像データ中の一次元に配列したｎ個の画素データを単位に入力し、当該ｎ個の画素データを第１の保持手段に格納する工程と、
前記ｎ個の画素データそれぞれに対応し、各画素がオブジェクト内、オブジェクト外のいずれに属するかを示す属性データを第２の保持手段に格納する工程と、
前記第２の保持手段に保持された属性データに基づき、前記第１の保持手段に保持された画素データを前記一次元の配列の一方向に伝搬させ、伝搬済み第１乃至第ｎの画素データを出力する第１の伝搬工程と、
前記第２の保持手段に保持された属性データに基づき、前記第１の保持手段に保持された画素データを前記第１の伝搬工程の伝搬する方向とは逆の方向に伝搬させ、伝搬済みの第１乃至第ｎの画素データを出力する第２の伝搬工程と、
前記第１の伝搬工程及び前記第２の伝搬工程それぞれから出力された同じ画素位置の画素データの平均値を算出し、当該算出後の第１乃至第ｎの画素データを、前記一次元に並んだｎ個の画素データのパディング処理結果として出力する演算工程とを備え、
前記第１の伝搬工程は、ｎ個の第１の選択工程Ｓ１1乃至Ｓ１n、又は、ｎ−１個の第１の選択工程Ｓ１1乃至Ｓ１n-1で構成され、
前記第２の伝搬工程は、ｎ個の第２の選択工程Ｓ２1乃至Ｓ２n、又は、ｎ−１個の第２の選択工程Ｓ２2乃至Ｓ２nで構成され、
前記第１の保持手段に保持された第ｉ番目の画素データをＰi、前記第ｉ番目の画素データに対応する前記第２の保持手段に保持された第ｉ番目の属性データをＡiとしたとき、
第ｉ番目の前記第１の選択工程Ｓ１iでは、
（１）前記属性データＡiが、画素データＰiがオブジェクト内にあることを示している場合、前記画素データＰiを、伝搬済みの第ｉ番目の画素データとして選択出力し、
（２）前記属性データＡiが、画素データＰiがオブジェクト外にあることを示している場合、前記第１の選択工程Ｓ１i+1からの出力を、伝搬済みの第ｉ番目の画素データとして選択出力し、
第ｉ番目の前記第２の選択工程Ｓ２iでは、
（３）前記属性データＡiが、画素データＰiがオブジェクト内にあることを示している場合、前記画素データＰiを、伝搬済みの第ｉ番目の画素データとして選択出力し、
（４）前記属性データＡiが、画素データＰiがオブジェクト外にあることを示している場合、前記第２の選択工程Ｓ２i-1からの出力を、伝搬済みの第ｉ番目の画素データとして選択出力し、
さらに、第１番目の前記第１の選択工程Ｓ１1の出力を前記第２の伝播搬工程に、第ｎ番目の前記第２の選択工程Ｓ２nの出力を前記第１の伝播搬工程に入力することを特徴とする。
【００２９】
本発明の第４の側面に係るメモリ媒体は、上記の第１の側面に係る画像処理装置の機能をコンピュータに実行させるためのプログラムを格納したことを特徴とする。
【００３０】
【発明の実施の形態】
以下、本発明の好適な実施の形態を説明する。
【００３１】
［第１の実施の形態］
この実施の形態では、１行が１０画素のデータに対して１次元方向のパディング処理を施すが、この実施の形態は、任意の数の画素データに対する１次元方向のパディング処理に拡張することができる。
【００３２】
図１は、本発明の第１の実施の形態に係る画像処理部の構成を示すブロック図である。この画像処理部１００は、例えば、コンピュータ等の画像処理装置の一部として好適に利用され得る。
【００３３】
図１において、１０１は、パディング処理を施すべき一次元の画像データを構成する複数の画素データを入力する端子群、１０３は、一次元の画像データを構成する複数の画素データを保持するレジスタ群、１０５は、一次元の画像データを構成する各画素データに係る画素がオブジェクト内の画素であるか、オブジェクト外の画素であるかを表わす属性データとしての形状情報（ここでは、各画素に対して１ビット）を入力する端子群、１０７は、形状情報を保持するレジスタ群、１２１は、形状情報に基づいて該当する画素データを左方向に伝搬させるための左伝搬処理部、１２３は、形状情報に基づいて該当する画素データを右方向に伝搬させるための右伝搬処理部、１２５ａ〜ｊは、左伝搬処理部１２１を構成するセレクタ群、１２７ａ〜ｊは、右伝搬処理部１２３を構成するセレクタ群、１３１は、２つの画素データ間の平均値を演算するための演算器１３１ａ〜１３１ｊを含む演算器群である。
【００３４】
パディング処理を施すべき画素データ、該画素データに対する２値形状情報は、１個ずつ或いは１０個同時に端子１０１、１０５から各々入力され、レジスタ群１０３、１０７に各々保持される。形状情報（２値）の“１”は、当該画素がオブジェクト内の画素であることを表わし、“０”は、当該画素がオブジェクト外の画素であることを表わす。
【００３５】
レジスタ群１０３に保持された複数の画素データは、各々左伝搬処理部１２１及び右伝搬処理部１２３内の対応するセレクタに入力される。レジスタ群１０７に保持された形状情報は、各々左伝搬処理部１２１、右伝搬処理部１２３内の対応するセレクタの制御信号として入力される。
【００３６】
各セレクタは、該制御信号が“１”の時はレジスタ群１０３から入力される画素データを選択し、“０”の時は前段のセレクタで選択された画素データを選択する。これにより、オブジェクト外の画素をオブジェクト内の画素データで置き換えるように、画素データが伝搬する。
【００３７】
左伝搬処理部１２１では、オブジェクト内の画素データが図１の左方向に伝搬し、右伝搬処理部１２３では、オブジェクト内の画素データが図１の右方向に伝搬する。
【００３８】
各々のセレクタで選択された画素データは演算器群１３１の該当する演算器に送られる。演算器群１３１の各演算器は、対応するセレクタから供給される２つの画素データの平均値を求めて出力する。
【００３９】
図２は、図１に示す画像処理部１００における処理の具体例を示す図である。
図２の（ａ）は、２値の形状情報、（ｂ）は、入力画素データ（オブジェクト外は如何なる値でもよいので“０”としている）、（ｃ）は、左伝搬処理部１２１におけるセレクタの出力値、（ｄ）は、右伝搬処理部１２３におけるセレクタの出力値、（ｅ）は、演算器群１３１の平均値出力を表わす。
【００４０】
左伝搬処理部１２１の右端のセレクタ１２５ａの出力値が“４２”であるのは、右伝搬処理部１２３の右端のセレクタ１２７ａの出力データが、左伝搬処理部１２１の右端のセレクタ１２５ａに入力され、それが選択されて出力されるためである。同様に、右伝搬処理部１２３の左端のセレクタ１２７ｊの出力値が“１７４”であるのは、左伝搬処理部１２１の左端のセレクタ１２５ｊの出力データが右伝搬処理部１２３の左端のセレクタ１２７ｊに入力され、それが選択されて出力されるためである。
【００４１】
その他の部分のセレクタの出力値は、形状情報が“１”（オブジェクト内）の画素については入力画素データがそのまま出力され、形状情報が“０”の画素についてはオブジェクト内の画素データを左又は右に伝搬させた値が出力される。
このように、この画像処理部１００では、１画素について２つのセレクタを設け、それらの出力の平均値を演算器で計算して、パディング処理の結果として出力する。
【００４２】
以上の処理により、オブジェクトで挟まれたオブジェクト外の領域は、該領域の両端のオブジェクト内の画素データの平均値に置き換えられ、その他のオブジェクト外の領域は、該領域に接するオブジェクト内の画素データに置き換えられる。
【００４３】
上記の説明は、ハードウェアの規模と処理対象の画素数とが一致している場合に関するが、ハードウェアの規模に対して画素数が少ない場合、即ち１０画素未満の任意の画素数に対してもパディング処理が可能である。これは、画素入力の無い端子に対応する形状情報を“０”に固定することによって実現される。
【００４４】
次に、上記の処理をソフトウェアで実現する際の処理を説明する。図３は、ソフトウェアによるパディング処理の流れを示すフローチャートである。
【００４５】
Ｓ３０１では、入力画像データを第１のバッファと第２のバッファとに格納する。Ｓ３０２では、形状情報を右端から左方向にスキャンし、最初に見つけた“１”と同位置の第２のバッファの画素データを第１のバッファの右端の画素データとして格納する。Ｓ３０３では、形状情報を右端から左方向にスキャンしながら、形状情報が”０”である場合に、その”０”の右側の直近の”１”と同位置の第１のバッファの画素データをその”０”と同位置の画素データとして第１のバッファにコピーする（即ち、画素データを左に伝搬させる）。Ｓ３０４では、第１のバッファの左端の画素データを第２のバッファの左端にコピーする。Ｓ３０５は、形状情報を左端から右方向にスキャンしながら、形状情報が”０”である場合に、その”０”の左側の直近の”１”と同位置の第２のバッファの画素データをその”０”と同位置の画素データとして第２のバッファにコピーする（即ち、画素データを右に伝搬させる）。Ｓ３０６では、第１、第２のバッファ間で対応する画素データの平均を演算する。
【００４６】
ここで、第１のバッファは左伝搬処理部１２１に、第２のバッファは右伝搬処理部１２３に対応する。
【００４７】
Ｓ３０１では、画素データを伝搬する前の初期値を第１及び第２のバッファに格納する。
【００４８】
ソフトウェアによる処理でハードウェアによる処理を完全にトレースすることは効率が良くないので、図３に示すソフトウェアによる処理では、右伝搬処理部の右端の出力データを左伝搬処理部に入力する替わりにＳ３０２を実行する。Ｓ３０２では、右伝搬処理部の右端の出力データとなるべき画素データを先に探し、それを左伝搬処理部の入力に相当する第１のバッファの右端の画素データとする。
【００４９】
Ｓ３０３は、左伝搬処理部１２１の動作をそのままトレースしたもので、Ｓ３０４は、左伝搬処理部の左端の出力データを右伝搬処理部１２３に入力する処理に対応する。そして、Ｓ３０５は、右伝搬処理部１２３、Ｓ３０６は、演算器群１３１をそれぞれトレースしたものである。
【００５０】
［第２の実施の形態］
第１の実施の形態では、１０画素の全てがオブジェクト外にある場合を想定していない。１０画素の全てがオブジェクト外であれば、元々パディング処理は不要だからである。
【００５１】
しかし、単純なパイプライン処理では、パディング処理の必要があろうが無かろうが、全ての画素データをパディング処理回路によって処理する必要がある。
そのような場合、第１の実施形態では、１０画素の全てがオブジェクト外である場合に、左伝搬処理部及び右伝搬処理部の全セレクタにより閉ループが構成されるため、動作上、好ましくない。
【００５２】
この実施の形態では、１０画素の全てがオブジェクト外である場合に上記の閉ループが構成されないように改良がなされている。具体的には、この実施の形態では、左伝搬処理部１２１の出力を右伝搬処理部１２３に入力する入力部に、右伝搬処理部１２３の出力をオールゼロにマスクするマスク回路が設けられている。マスクする条件は、形状情報が全て“０”の時である。
【００５３】
図４は、本発明の第２の実施の形態に係る画像処理部の構成を示すブロック図である。この画像処理部２００は、例えば、コンピュータ等の画像処理装置の一部として好適に利用され得る。
【００５４】
図４において、４０１は、上記のマスク回路、４０３は、形状情報が全て“０”であることを検出するＮＯＲ回路である。その他の構成要素は、第１の実施の形態と同様である。
【００５５】
なお、マスク回路は、右伝搬処理部１２３の出力を左伝搬処理部１２１に入力する入力部にも設けてもよいし、該入力部のみに設けてもよい。
【００５６】
また、この実施の形態においても、第１の実施の形態と同様に、１０画素未満の任意の画素数に対してもパディング処理が可能である。
【００５７】
ところで、図４における両端の画素データにおいて、２つの画素データの平均値というものは意味がない。何故なら、端の画素データについては、それを挟む２つの画素データが存在し得ないからである。
【００５８】
よって、演算器群１３１の両端の演算器は不要であり、パディング処理後の右端の画素データをセレクタ１２７ａの出力とすると共に、左端の画素データをセレクタ１２５ｊの出力とすることもできる。
【００５９】
また、セレクタ１２５ａの出力は、必ずセレクタ１２７ａの出力と同じ値になるため（セレクタの制御信号（即ち、対応する２値形状情報）が“０”の時、出力は右に伝搬してくる画素データの値となり、“１”の時は元の画素データの値となる）、セレクタ１２５ａは不要である。同様の理由で、セレクタ１２７ｊも不要である。
【００６０】
図７は、演算器１３１群の両端の演算器、左伝搬処理部１２１の右端のセレクタ、及び右伝搬処理部１２３の左端のセレクタを削除した構成を示す図である。
【００６１】
［第３の実施の形態］
この実施の形態は、水平Ｎ画素×垂直Ｎ画素のブロックに対して２次元のパディング処理を施す画像処理部を提供する。具体的には、この実施の形態では、１次元のパディング処理を横方向及び縦方向に対して実行する。
【００６２】
なお、パディング処理を施すべきブロックは、通常、縦横同じサイズの正方ブロックであるが、この実施の形態では、後述のように正方形以外の矩形ブロックを処理することもできる。
【００６３】
この実施の形態では、１つの一次元パディング処理ユニットを、横方向のパディング処理を実行する第１ステージと、縦方向のパディング処理を実行する第２ステージの両方に使用する。
【００６４】
第１ステージでは、行単位で入力される１ブロック分の画素データに対して連続してパディング処理を施し、該パディング処理と並行して、処理済みの１ブロック分の画素データを行単位で蓄積する。
【００６５】
第２ステージでは、蓄積した１ブロック分の画素データを９０度向きを変えて読み出し、縦方向のパディング処理を１ブロック分の画素データに対して連続して施す。
【００６６】
図５は、この実施の形態に係る画像処理部の構成を示すブロック図である。この画像処理部５００は、例えば、コンピュータ等の画像処理装置の一部として好適に利用され得る。
【００６７】
図５において、５０１は、１ブロック分の二次元の画像データを構成する複数の画素データを行単位で入力する端子群、５０２は、１行分の画素数の形状情報を一括して入力する端子、５０３は、行単位で入力された複数の画素データ及び列単位で読み出された複数の画素データのいずれか一方を選択するセレクタ群、５０４は、１行分の画素数の形状情報及び１列分の画素数の形状情報のいずれか一方を選択するセレクタ、５０５は、第２の実施の形態で説明したパディング処理ユニット（画像処理部２００）である。５０７は、第１及び第２の画素データ入力端子と、該２つの画素データ入力端子から入力される画素データの一方を選択するセレクタと、選択した画素データを保持するレジスタとを備えるデータ保持ユニットをアレイ状に配置したデータ保持ユニット群である。５０９は、１回目のパディング処理後の形状情報を保持するシフトレジスタ、５１１は、縦横２回のパディング処理を施した画素データを出力する端子群である。
【００６８】
第１ステージでは、端子群５０１から入力された１行分の画素データをセレクタ５０３で選択し、パディング処理ユニット５０５に送る。パディング処理ユニット５０５では、第２の実施の形態と同様に、１行分の画素データに対してパディング処理を施し、データ保持ユニット群５０７における左端（図面上の左端）の１列の該当するデータ保持ユニットの第１の入力端子に送る。
【００６９】
データ保持ユニット群５０７の上端の１行と右端の１列を除く、各データ保持ユニットは、保持データを右側のデータ保持ユニットの第１の入力端子と上側のデータ保持ユニットの第２の入力端子に送る。第１ステージでは、各データ保持ユニットは、第１の入力端子側のデータをレジスタに取り込むようにセレクタを制御し、１行分の画素データがパディング処理される都度、右方向に画素データを移動させる。
【００７０】
この実施の形態では、一度パディング処理したデータに対して、向きを変えて再度パディング処理を施すため、その再度のパディング処理のための形状情報が必要である。しかし、最初の形状情報をそのまま用いることはできない。
【００７１】
最初のパディング処理によってデータが補充された画素位置には、次のパディング処理において再補充がなされないように、形状情報を変更する必要がある。
そこで、データが補充された画素位置の形状情報を“０”から“１”に変更する。
【００７２】
この形状情報の変更処理は、画素単位で行なう必要はなく、行単位で行なえばよい。即ち、パディング処理を施す行データの中に１つもオブジェクト内の画素が無い場合には、該行データに対する形状情報を“０”、１つでもオブジェクト内の画素が有る場合には、該行データに対する形状情報を“１”にすればよい。
このような変更後の形状情報は、例えば、パディング処理ユニット５０５内のＮＯＲ素子４０３（図４参照）の出力を反転することにより得られる。
【００７３】
パディング処理ユニット５０５から行データ毎に出力される１ビットの形状情報は、順次シフトレジスタ５０９に送られ、最終的にＮ行に対してＮビットの情報がシフトレジスタ５０９に蓄積される。それと並行して、パディング処理がなされたＮ行分の画素データがデータ保持ユニット群５０７に蓄積される。
【００７４】
１ブロックＮ行の画素データに対する横方向のパディング処理（第１ステージ）が終了したら、次は、データ保持ユニット群５０７から列単位で画素データを取り出して、セレクタ５０３を経由して、パディング処理ユニット５０５に再度入力し、再度パディング処理を施す（第２ステージ）。
【００７５】
第２ステージでは、シフトレジスタ５０９に蓄積された形状情報を並列に読み出して、セレクタ５０４を経由して、第２ステージで処理する全ての列について毎回同じ形状情報をパディング処理ユニット５０５に供給する。そして、パディング処理が施された画素データは、パディング処理ユニット５０５から端子５１１に列単位で出力される。
【００７６】
第２ステージでは、データ保持ユニット群５０７の各データ保持ユニットは、第２の入力端子のデータがレジスタに取り込まれるように各セレクタを制御し、これにより画素データの移動方向が右向きから上向きに変わる。よって、１列目の画素データが最上段から取り出されると、２列目の画素データが最上段に移動する。なお、最下段のデータ保持ユニットは、第２の画素データ入力端子にいかなる値が入力されても他に影響がないので“０”又は“１”が入力される。
【００７７】
対象のブロックの中に１つでもオブジェクト内の画素データがあれば、該ブロック内のオブジェクト外の全ての画素にデータが補充されるため、最終的な形状情報は全ての画素データについて“１”となるが、オブジェクト内の画素データが１つも存在しなければ、実質的なパディング処理が全く実行されず、最終的な形状情報は全ての画素データについて“０”となる。
【００７８】
この情報を参照することで、実質的なパディング処理が施されたか否か判定することも可能である。しかし、該ブロックにオブジェクト内の画素データが１つも存在しない時に、この実施の形態によるパディング処理を実行することは無駄である。
【００７９】
よって、事前にオブジェクト内の画素が存在するか否かを調査し、存在する場合にのみ、該パディング処理を実行することも有効である。なお、この場合、パディング処理後の最終的な形状情報は、必ず“１”になるので、該情報を参照する必要はない。
【００８０】
Ｌ×Ｍ（Ｌ，Ｍ＜Ｎ）のサイズのブロックを処理する場合、第１の実施の形態で述べたのと同様に、画素入力の無い端子に対応する形状情報を“０”に固定すればよい。データ保持ユニット５０７から列単位で画素データを取り出す場合、データの無い列に対応するシフトレジスタ５０９の出力を“０”とするには、ブロックのパディング処理の開始時に、該シフトレジスタ５０９をオール“０”初期化すればよい。これにより、パディング処理を実行した行数と同じ数のビット数だけシフトレジスタ５０９に値が格納され、それ以外は“０”のままである。
【００８１】
［第４の実施の形態］
この実施の形態も、第３の実施の形態と同様に、水平Ｎ画素×垂直Ｎ画素のブロックに対して２次元のパディング処理を実行することが可能であるが、この実施の形態では、パディング処理ユニットを２つ設けることにより、処理が高速化されている。
【００８２】
図６は、本発明の第４の実施の形態に係る画像処理部の構成を示すブロック図である。この画像処理部６００は、例えば、コンピュータ等の画像処理装置の一部として好適に利用され得る。
【００８３】
図６において、６０１は、横方向のパディング処理のみを実行する第１のパディング処理ユニット（第２の実施の形態で説明した画像処理部２００）、６０２は、縦方向のパディング処理のみを実行する第２のパディング処理ユニット（第２の実施の形態で説明した画像処理部２００）、６０３は、第２のパディング処理ユニット６０２に供給する列データを選択するセレクタ、６０５は、横方向パディング処理後の形状情報を保持するシフトレジスタ５０９の出力を一括して受け取って保持し、縦方向のパディング処理ユニット６０２に供給し続けるレジスタである。
【００８４】
その他の構成ユニットは、図５に示す第３の実施の形態における同一番号のユニットと同じである。
【００８５】
この実施の形態では、第３の実施形態における第１ステージのパディング処理と、第２ステージのパディング処理とを同時に実行する。但し、第２ステージの処理を行なべきブロックは、既に第１ステージの処理が完了しているブロックである。
【００８６】
処理方法は、最初のブロックの第１ステージまでは、第３の実施の形態と全く同じであり、第２ステージの処理が異なる。
【００８７】
最初のブロックの第２ステージでは、データ保持ユニット群５０７は、各々、第２の入力端子のデータをレジスタに取り込まれるようにセレクタが切り換えられる。これにより、画素データの移動方向が右方向から上方向に変わる。
【００８８】
第１のパディング処理ユニット６０１で処理された１行分の画素データは、データ保持ユニット群５０７の下端のデータ保持ユニットの第２の入力端子にも送らる。よって、２番目のブロックでは、横方向パディング処理が施された画素データは、データ保持ユニット群５０７を下から上に移動する。
【００８９】
これと同期して、データ保持ユニット群５０７の上端のユニットから、最初のブロックの１列分の画素データが順次出力される。該画素データは、セレクタ６０３を経由して第２のパディング処理ユニット６０２に送られ、縦方向パディング処理が施され、端子群５１１に出力される。
【００９０】
端子群５１１から１ブロック分のパディング処理データが出力された時、既に、データ保持ユニット群には次のブロックの画素データが格納されている。但し、最初のブロックでは左から右に画素データが移動しながら格納されるのに対して、２番目のブロックでは下から上に画素データが移動しながら格納される。
【００９１】
よって、２番目のブロックの画素データを列単位で、データ保持ユニット群５０７から取り出すには、データ保持ユニット群５０７の右端のデータ保持ユニット群から画素データを取り出すと共に、画素データが左から右に移動するように、各データ保持ユニット内のセレクタが切り換えられる。
【００９２】
これにより、３番目のブロックの横方向パディング処理を実行したデータも、最初のブロックと同様に、データ保持ユニット群５０７を左から右に移動しながら格納される。
【００９３】
以上のように、データ保持ユニット群５０７における画素データの移動方向を、１ブロック毎に切り換えることにより、行単位のデータから列単位のデータへの変換を連続して実行することができる。よって、２つのパディング処理ユニット６０１及び６０２を休止させることなく連続的に動作させることができ、ブロック単位の画素データのパディング処理を効率よく実行することができる。
【００９４】
この実施の形態は、第３の実施の形態をベースにしているため、横方向のパディング処理後の画素データを格納するデータ保持ユニット群５０７は、１ブロック分で十分であるが、この構成では、前段の横方向のパディング処理ユニットと後段の縦方向パディング処理ユニットとを同期して動作させる必要がある。
【００９５】
このような制約をなくすには、例えば、データ保持ユニット群を２ブロック分設けて、一方に画素データを格納している時に、もう一方から画素データを読み出すようにすればよい。これにより、２つのパディング処理ユニットを完全に同期させて動作させる必要がなくなる。
【００９６】
［第５の実施の形態］
図９は本発明の第５の実施の形態に係る画像符号化部の構成を示すブロック図である。
【００９７】
図９において、１は１フレーム分の画像データを格納し、MPEG-4の手順に従ってマクロブロック単位に出力するフレームメモリであり、２は後述する予測値を減算する減算器である。３はDCT変換を施すDCT変換器であり、４は変換係数をそれぞれ量子化する量子化器である。５は量子化結果をエントロピー符号化するエントロピー符号化器である。６は量子化結果を変換係数に戻す逆量子化器であり、７は変換係数から画素データを復元する逆DCT器である。８は予測値を加算する加算器であり、９は再生画像を格納するフレームメモリである。
【００９８】
１０は入力されたマクロブロックの画素データとフレームメモリ９に格納された画素データから動きベクトルを検出する動きベクトル検出器である。１１は検出された動きベクトルに従ってマクロブロック毎の予測値を算出する動き補償器であり、１２は動きベクトルを符号化する動きベクトル符号化器である。１３は２値の形状情報1フレーム分を格納し、MPEG-4の手順に従ってマクロブロック単位に切出して出力する２値のフレームメモリである。形状情報は各画素がオブジェクトの外か内かを示すデータである。１４はマクロブロック単位で形状情報を算術符号化する形状符号化器である。１５は前記再生画像に対応した形状情報を格納するフレームメモリである。１６は該当するマクロブロックについて動きベクトル検出器１０から動きベクトルを入力し、入力されたマクロブロックの形状情報とフレームメモリ１５の形状情報を比較して形状情報の動きベクトルを算出して動き補償を行う動き補償器である。
【００９９】
２０、２１は形状情報からパディングを制御するパディング制御器である。１７はパディング制御器２０からの制御と形状情報に従って、フレームメモリ１のオブジェクト外の画素データを補填するパディング器である。１８はパディング制御器２１からの制御と形状情報に従って、フレームメモリ９のオブジェクト外の画素データを補填するパディング器である。１９は拡張パディングを実行する拡張パディング器である。
【０１００】
上記の構成において、動画像の各フレームの符号化動作について述べる。
【０１０１】
まず、１フレーム分の画素データと形状情報がそれぞれフレームメモリ１とフレームメモリ１３に格納される。
【０１０２】
入力された符号化対象のフレームがフレーム内符号化の対象であった場合はパディング制御器２０とパディング器１７が動作し、動き補償を伴うフレーム間符号化の対象であった場合はパディング制御器２０、２１、パディング器１７、１８及び拡張パディング器１９が動作する。
【０１０３】
パディング器１７及びパディング制御器２０は、フレーム内符号化時には低域成分外挿法と呼ばれている方法でパディング処理を行ない、フレーム間符号化時には特に処理はせず、減算器２から出力される予測誤差の内、オブジェクト領域外の予測誤差の値をパディング制御器からの信号に基づいて“０”に置き換える。
【０１０４】
前記低域成分外挿法とは、オブジェクト内の画素の平均値でオブジェクト外の領域を埋めた後に、オブジェクト外の画素を該画素の上下左右４画素の平均値で置き換えるものである。パディング器１８には、前記第３乃至第４の実施形態で説明した２次元パディング処理ユニットを用いる。
【０１０５】
フレーム内符号化が選択された場合、パディング器１７は符号化に先行してパディング処理を行う。パディング制御器２０はフレーメモリ１３に格納された形状情報からオブジェクトの境界を含むマクロブロックを検出しそのマクロブロックの位置と形状情報をパディング器１７に供給する。パディング器１７はオブジェクトの境界を含むマクロブロックの画素データをフレームメモリ１から読み出して、前記低域成分外挿法によりオブジェクト外の画素データをオブジェクト内の画素データから算出する。
【０１０６】
フレーム間符号化が選択された場合、パディング器１８は符号化に先行してパディング処理を行う。パディング制御器２１はフレーメモリ１５に格納された形状情報からオブジェクトの境界を含むマクロブロックを検出しそのマクロブロックの位置と形状情報をパディング器１８に供給する。パディング器１８はオブジェクトの境界を含むマクロブロックの画素データをフレームメモリ９から読み出して、オブジェクト外の画素データをオブジェクト内の画素データから生成する。
【０１０７】
上記パディング処理と平行して、パディング制御器２１はフレーメモリ１５に格納された形状情報から左右上下がオブジェクト内部の画素を含むマクロブロックと接しているマクロブロックを検出し、マクロブロックの位置を拡張パディング器１９に供給する。拡張パディング器１９はMPEG-4符号化方式の拡張パディングの手順に従って、隣接するマクロブロックの画素データをコピーする。
【０１０８】
符号化するブロックのパディング処理が終了したら、フレーム内符号化の場合は、マクロブロック単位に画素データをフレームメモリ１から読み出し、減算器２で予測値０を引き、DCT器3でDCT変換し、その変換係数を量子化器4で量子化する。
【０１０９】
量子化結果はエントロピ符号化器５にて符号化し、外部に出力する。と同時に量子化結果は逆量子化器６にも送られ、DCT変換係数が再生され、逆DCT器７にて画素データを再生して加算器８で予測値0を加えた後、フレームメモリ9に格納する。
【０１１０】
これと平行して、フレームメモリ１３の２値形状情報は符号化器１４にて、オブジェクト外のマクロブロックに関してはTransparentとして符号化し、境界を含むマクロブロックに関してはその形状を算術符号化し、完全にオブジェクト内に含まれる場合はOpaqueとして符号化して、外部に出力する。また該２値形状情報をフレームメモリ１５にも格納し、次の形状情報の符号化に使用する。
【０１１１】
エントロピ符号化器５と形状符号化器１４の出力が外部でMPEG-4の書式に必要なヘッダ情報等の符号化データと多重化されてMPEG-4符号化データとして出力される。
【０１１２】
フレーム間符号化の場合は、マクロブロック単位に画素データがフレームメモリ1から読み出され、動き検出器１０に入力される。動き検出器１０は入力されたマクロブロックの画素データとフレームメモリ９に格納されている再生画像データの部分画像と逐次比較し、該再生画像中の最も類似度の高い領域を特定し、その偏差を動きベクトルとして出力する。
【０１１３】
出力された動きベクトルは動きベクトル符号化器１２で符号化され、外部に出力される。と同時に、動きベクトルは動き補償器１１、１６にも供給される。動き補償器１１では動きベクトルに従って、フレームメモリ９から予測値を読み出し、減算器２に入力する。減算器２では符号化するマクロブロックの画素データから、前記入力された予測値を減算する。
【０１１４】
減算結果はDCT器３でDCT変換され、その変換係数を量子化器４で量子化される。量子化結果はエントロピ符号化器５で符号化され、外部に出力される。と同時に量子化結果は逆量子化器６に供給され、DCT変換係数を再生し、逆DCT器７で画素データを再生して加算器８で動き補償器１１からの予測値を加え、フレームメモリ９に格納する。
【０１１５】
これと平行して、動き補償器１６に動き検出器１０で算出した動きベクトルを供給する。動き補償器１６は、該動きベクトルを基準としてフレームメモリ１５の形状情報と符号化マクロブロックの形状情報とを比較して形状情報の動きベクトルを算出し、動きベクトルと該動きベクトルが示す形状情報を予測値として形状符号化器１４に供給する。
【０１１６】
フレームメモリ１３の形状情報は形状符号化器１４にて、オブジェクト外のマクロブロックに関してはTransparentとして符号化し、完全にオブジェクト内に含まれる場合はOpaqueとして符号化して、外部に出力する。
【０１１７】
境界を含むマクロブロックに関しては、インターモードにおいては形状情報の動きベクトルを符号化した後、その形状を動き補償器１６からの予測値も参照して算術符号化し、外部に出力する。イントラモードでは動き補償器１６からの予測値を参照せずに算術符号化し、外部に出力する。また形状情報はフレームメモリ１５に格納し、次の形状情報の符号化に使用する。
【０１１８】
エントロピ符号化器５と形状符号化器１４と動きベクトル符号化器１２出力が外部でMPEG-4の書式に必要な情報等の符号化データと多重化されてMPEG-4符号化データとして出力される。
【０１１９】
拡張パディング器１９は実際にはフレームメモリとそのメモリコントロールの機能で実現されるので、特別に設けなくても実現が可能な場合も有る。
【０１２０】
［第６の実施の形態］
図１０は本発明の第６の実施の形態に係る画像復号部の構成を示すブロック図である。
【０１２１】
図１０において、５０は符号化データを入力し、量子化結果を再生するエントロピー復号器である。５１は量子化結果を変換係数に戻す逆量子化器であり、５２は変換係数から予測差分画素データを復元する逆DCT器である。５３は予測値を加算する加算器であり、５４はMPEG-4の手順に従ってマクロブロック単位に画像データを1フレーム分、格納するフレームメモリである。５５は再生画像を格納するフレームメモリである。５６は動きベクトルを復号して再生する動きベクトル復号器である。
【０１２２】
５７は復号された動きベクトルに従ってマクロブロック毎の予測値を算出する動き補償器である。５８はマクロブロック単位で形状データを復号する形状復号器である。
【０１２３】
５９、６０は復号された２値形状情報を格納する２値のフレームメモリである。６１は該当するマクロブロックについて動きベクトル復号器５６から動きベクトルを入力し、動きベクトルと形状復号器５８で復号された形状情報の動きベクトルにしたがってフレームメモリ５９から形状情報を読み出す動き補償器である。
【０１２４】
６２は形状情報に従ってパディングを制御するパディング制御器である。６３はフレームメモリ５９の形状情報に従って、フレームメモリ５５のオブジェクト外の画素データを補填するパディング器である。６４は拡張パディングを実行する拡張パディング器である。
【０１２５】
上記の構成において、動画像の各フレームの復号動作について述べる。
【０１２６】
まず、フレーム内符号化されたフレームの復号から説明する。マクロブロック単位で形状情報の符号化データを形状復号器５８に入力して、形状情報を復号する。
【０１２７】
形状復号器５８は、マクロブロックのモードがTransparentの場合は形状情報としてすべて“０”を出力する。このモードの形状情報に対応したマクロブロックの画素データは存在しないので、復号処理は行なわない。
【０１２８】
マクロブロックのモードがOpaqueであれば、形状情報としてすべて“１” を出力する。算術符号化されている場合はこれを復号し、オブジェクトの境界の形状情報を再生する。再生された形状情報はフレームメモリ５９とフレームメモリ６０に格納される。
【０１２９】
マクロブロックの形状情報のモードがOpaqueか算術符号化であれば、マクロブロック単位で符号化データがエントロピ復号器５０に入力される。エントロピ復号器５０では符号化データを復号処理して量子化結果を再生する。該量子化結果を逆量子化器５１に入力して、DCT変換係数を再生し、逆DCT器５２で画素データを再生して加算器５３で予測値“０”を加え、フレームメモリ５４とフレームメモリ５５に格納する。
【０１３０】
１フレーム分の処理が終了したら、フレームメモリ５４およびフレームメモリ５９の内容が外部に出力され、適宜合成される。
【０１３１】
次にフレーム間符号化されたフレームの復号を説明する。
【０１３２】
パディング器６３は境界パディングの処理を行う。パディング制御器６２はフレーメモリ６０に格納された２値形状情報からオブジェクトの境界を含むマクロブロックを検出し、該マクロブロックのオブジェクトの境界を含むマクロブロックの画素データをフレームメモリ５５から読み出して、該画素データと形状情報をパディング器６３に供給する。
【０１３３】
パディング器６３には、前記第３乃至第４の実施形態で説明した２次元パディング処理ユニットを用い、入力された画素データと２値形状情報からオブジェクト外部の画素データを生成する。
【０１３４】
続けて、パディング制御器６２はフレーメモリ６０に格納された２値形状情報から、オブジェクト内部の画素を含むマクロブロックと左右上下で接しているマクロブロックを検出し、マクロブロックの位置を拡張パディング器６４に供給する。拡張パディング器６４はMPEG-4符号化方式の拡張パディングの手順に従って、隣接するマクロブロックの画素データをコピーする。
【０１３５】
上記復号化処理と平行して、マクロブロック単位で形状情報の符号化データを形状復号器５８に入力して、２値形状情報を復号する。
【０１３６】
マクロブロックのモードがTransparentの場合は形状情報としてすべて“０”を出力する。このモードの形状情報に対応したマクロブロックの画素データは存在しないので、復号処理は行なわない。
【０１３７】
マクロブロックのモードがOpaqueであれば、形状情報としてすべて“１”を出力する。イントラモードで算術符号化されている場合はこれを復号し、オブジェクトの境界の形状情報を再生し、フレームメモリ５９に格納する。
【０１３８】
動き補償されているマクロブロックでは、まず動きベクトル復号器５６にて動きベクトルを復号し、復号した動きベクトルは動き補償器５７、６１に入力する。
【０１３９】
形状情報がインターモードで算術符号化されていれば、形状復号器５８は形状情報のための動きベクトルを算出するデータを復号し、動き補償器６１はこの動きベクトルを用いて、フレームメモリ６０から形状情報の予測値を読み出す。この予測値を参照して形状復号器５８は形状情報を復号し、２値のフレームメモリ５９に格納する。
【０１４０】
マクロブロックがフレーム内符号化されている場合は前述のフレーム内符号化データの復号動作によって復号を行いフレームメモリ５４、５５に画素データを格納する。
【０１４１】
マクロブロックがフレーム間符号化されている場合はマクロブロックの形状情報のモードがOpaqueか算術符号化であれば、マクロブロック単位で符号化データをエントロピ復号器５０に入力し、該エントロピ復号器５０で復号処理して量子化結果を再生する。
【０１４２】
量子化結果を逆量子化器５１に入力してDCT変換係数を再生し、逆DCT器５２にて変換係数から予測差分画素データを再生して加算器５３に送る。
【０１４３】
平行して、動き補償器５７は動きベクトル復号器５６で復号された動きベクトルに基づき、フレームメモリ５５から予測値を読み出し加算器５３に供給する。
加算器５３にて前記予測差分画素データに該予測値を加え、フレームメモリ５４、５５に格納する。
【０１４４】
フレーム内符号化の場合は前述のフレーム内符号化データの復号と同様に処理される。１フレーム分の処理が終了したら、フレームメモリ５４およびフレームメモリ５９の内容が外部に出力され、適宜合成される。
【０１４５】
［他の実施の形態］
なお、本発明は、複数の機器から構成されるシステムに適用しても、一つの機器からなる装置に適用してもよい。
【０１４６】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４８】
【発明の効果】
本発明によれば、例えば、パディング処理を高速で実行することができる。
【図面の簡単な説明】
【図１】第１の実施の形態に係る画像処理部の構成を示す図である。
【図２】第１の実施の形態に係る画像処理部における処理の一例を示す図である。
【図３】第１の実施の形態に係る処理をソフトウェアで実現する場合の処理の一例を示すフローチャートを示す図である。
【図４】第２の実施の形態に係る画像処理部の構成を示す図である。
【図５】第３の実施の形態に係る画像処理部の構成を示す図である。
【図６】第４の実施の形態に係る画像処理部の構成を示す図である。
【図７】第２の実施の形態の変形例に係る画像処理部の構成を示す図である。
【図８】第５の実施の形態に係る画像符号化装置の構成を示す図である。
【図９】第６の実施の形態に係る画像復号装置の構成を示す図である。
【符号の説明】
１０１  入力端子群
１０３，１０７  レジスタ群
１２５，１２７  セレクタ群
１２１  左伝搬処理部
１２３  右伝搬処理部
１３１  演算器群
４０１  マスク回路
５０７  データ保持ユニット群
５０９  シフトレジスタ
５０５，６０１，６０２  パディング処理ユニット
６０３  セレクタ
６０５  レジスタ
【図１】
0004574019.tif 000002
【図２】
0004574019.tif 000003
【図３】
0004574019.tif 000004
【図４】
0004574019.tif 000005
【図５】
0004574019.tif 000006
【図６】
0004574019.tif 000007
【図７】
0004574019.tif 000008
【図８】
0004574019.tif 000009
【図９】
0004574019.tif 000010