(57)【特許請求の範囲】
【請求項１】
矩形形状を有する画像データの一部であり任意の形状を持つ画像オブジェクトに対して、前記矩形形状領域内のうち、前記画像オブジェクト外の領域に、パディング処理のために取得された画素データを代入する画像処理装置であって、
一次元方向に並ぶ画素データと、前記画素データが前記画像オブジェクト内の画素かオブジェクト外の画素かを示す属性情報とを入力する入力手段と、
処理対象画素データと同じ行もしくは列の、予め設定されたｎ個の画素データ中に、前記処理対象画素データに後続するオブジェクト内の画素があるか否かを示す第１のフラグ情報を、前記ｎ個の画素データに対応する前記属性情報に基づいて発生する第１のフラグ情報発生手段と、
処理対象画素データと同じ行もしくは列の前記ｎ個の画素データ中に、前記処理対象画素データより先行して、オブジェクト内の画素が存在したか否かを示す第２のフラグ情報を、前記処理対象画素データより先行する画素の前記属性情報に基づいて発生する第２のフラグ情報発生手段と、
（１）前記処理対象画素データに対応する属性データがオブジェクト内の画素であることを示す場合、前記処理対象画素データをパディング処理結果の画素データとして出力し、
（２）前記処理対象画素データに対応する属性データがオブジェクト外の画素であることを示し、且つ、前記第１、第２のフラグ情報が共に、オブジェクト内の画素があることを示している場合、前記処理対象画素データと同じ行もしくは列に存在し、前記処理対象画素データに先行し、当該処理対象画素データに最も近い画素データと、前記処理対象画素データと同じ行もしくは列に存在し、前記処理対象画素データに後続し、当該処理対象画素データに最も近い画素データとの平均値を、前記処理対象画素データに対するパディング処理結果の画素データとして出力し、
（３）前記処理対象画素データに対応する属性データがオブジェクト外の画素であることを示し、且つ、前記第１のフラグ情報がオブジェクト内の画素があることを示し、且つ、前記第２のフラグ情報がオブジェクト内の画素が無いことを示している場合、前記処理対象画素データと同じ行もしくは列に存在し、前記処理対象画素データに後続し、当該処理対象画素データに最も近いオブジェクト内の画素データを、前記処理対象画素データに対するパディング処理結果の画素データとして出力し、
（４）前記処理対象画素データに対応する属性データがオブジェクト外の画素であることを示し、且つ、前記第１のフラグ情報がオブジェクト内の画素が無いことを示し、且つ、前記第２のフラグ情報がオブジェクト内の画素があることを示している場合、前記処理対象画素データと同じ行もしくは列に存在し、前記処理対象画素データに先行し、当該処理対象画素データに最も近いオブジェクト内の画素データを、前記処理対象画素データに対するパディング処理結果の画素データとして出力し、前記処理対象画素データに隣接し後続する未処理の画素データを、次の処理対象画素データとする出力手段と
を有することを特徴とする画像処理装置。
【請求項２】
矩形形状を有する画像データの一部であり任意の形状を持つ画像オブジェクトに対して、前記矩形形状領域内のうち、前記画像オブジェクト外の領域に、パディング処理のために取得された画素データを代入する画像処理方法であって、
一次元方向に並ぶ画素データと、前記画素データが前記画像オブジェクト内の画素かオブジェクト外の画素かを示す属性情報とを順次入力する入力工程と、
処理対象画素データと同じ行もしくは列の、予め設定されたｎ個の画素データ中に、前記処理対象画素データに後続するオブジェクト内の画素があるか否かを示す第１のフラグ情報を、前記ｎ個の画素データに対応する前記属性情報に基づいて発生する第１のフラグ情報発生工程と、
処理対象画素データと同じ行もしくは列の前記ｎ個の画素データ中に、前記処理対象画素データより先行して、オブジェクト内の画素が存在したか否かを示す第２のフラグ情報を、前記処理対象画素データより先行する画素の前記属性情報に基づいて発生する第２のフラグ情報発生工程と、
（１）前記処理対象画素データに対応する属性データがオブジェクト内の画素であることを示す場合、前記処理対象画素データをパディング処理結果の画素データとして出力し、
（２）前記処理対象画素データに対応する属性データがオブジェクト外の画素であることを示し、且つ、前記第１、第２のフラグ情報が共に、オブジェクト内の画素があることを示している場合、前記処理対象画素データと同じ行もしくは列に存在し、前記処理対象画素データに先行し、当該処理対象画素データに最も近い画素データと、前記処理対象画素データと同じ行もしくは列に存在し、前記処理対象画素データに後続し、当該処理対象画素データに最も近い画素データとの平均値を、前記処理対象画素データに対するパディング処理結果の画素データとして出力し、
（３）前記処理対象画素データに対応する属性データがオブジェクト外の画素であることを示し、且つ、前記第１のフラグ情報がオブジェクト内の画素があることを示し、且つ、前記第２のフラグ情報がオブジェクト内の画素が無いことを示している場合、前記処理対象画素データと同じ行もしくは列に存在し、前記処理対象画素データに後続し、当該処理対象画素データに最も近いオブジェクト内の画素データを、前記処理対象画素データに対するパディング処理結果の画素データとして出力し、
（４）前記処理対象画素データに対応する属性データがオブジェクト外の画素であることを示し、且つ、前記第１のフラグ情報がオブジェクト内の画素が無いことを示し、且つ、前記第２のフラグ情報がオブジェクト内の画素があることを示している場合、前記処理対象画素データと同じ行もしくは列に存在し、前記処理対象画素データに先行し、当該処理対象画素データに最も近いオブジェクト内の画素データを、前記処理対象画素データに対するパディング処理結果の画素データとして出力し、前記処理対象画素データに隣接し後続する未処理の画素データを、次の処理対象画素データとする出力工程と
を有することを特徴とする画像処理方法。
【請求項３】
請求項１に記載の画像処理装置を有することを特徴とする画像符号化装置。
【請求項４】
請求項１に記載の画像処理装置を有することを特徴とする画像復号装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像処理装置及び方法、詳しくは、画像データに対してパディング処理を施す画像処理装置及び方法に関するものである。
【０００２】
【従来の技術】
画像、特に動画像は非常に多くのデータ量があり、その画像を蓄積・伝送する際にはデータ量を大幅に削減するための圧縮処理が不可欠である。動画像を圧縮符号化する処理として、既にＭＰＥＧ−１、ＭＰＥＧ−２などの国際標準が定められているが、これらはテレビカメラ等で撮影した矩形領域の画像のみを対象としている。
【０００３】
画像にはさまざまなものがあるが、背景と、背景より手前にある被写体（オブジェクト）とからなる画像も数多く存在する。一般的に、背景となる画像は激しい動きを伴なわず、撮影するカメラの動きに合わせて全体が移動したり、背景中のさまざまなものがそれぞれ細かい動きを示したりする。それに対し、オブジェクトは時に激しい動きを伴なう。このように、オブジェクトと背景は異なる性質を有する。
【０００４】
ＭＰＥＧ−１、ＭＰＥＧ−２に続いて標準化が進められているＭＰＥＧ−４では、オブジェクトと背景を別々に取り扱えるようにし、有用なオブジェクトを他で再利用することにより、動画コンテンツの生産性を高めたり、画像を見る側で前記オブジェクトを操作できる枠組みを用意することで、画像に対して能動的な関係を築き、新しい表現ができるように考えられている。
【０００５】
しかしながら、前記オブジェクトの形状は矩形ではなく任意であるため、従来のＭＰＥＧ−１、ＭＰＥＧ−２で用いられてきた圧縮手法をそのまま適用することはできない。
【０００６】
任意形状のオブジェクトの周囲にオブジェクトと相関のあるデータを補充することにより、オブジェクトを矩形の画像に変換し、それから圧縮処理を行なうようにしている。
【０００７】
動画圧縮では、更にフレーム間の相関を利用してデータ量を減らすようにしている。フレーム間の相関を利用するということは、オブジェクトの現フレームのデータを符号化する際に、他のフレーム（前フレーム）における相関の強い領域を参照し、その差分値を符号化するものである。
【０００８】
オブジェクトが任意の形状であるため、当然、参照される他のフレームにおけるオブジェクトの形状も任意であり、オブジェクトの外の領域においては値が無い状態である。これでは、ブロック単位の動きベクトル情報を求めることが出来ない。
【０００９】
そこで、参照されるオブジェクトにパディング処理を施して、矩形領域に広げた上で前記ブロック単位の動きベクトル探索を行なうようにしている。
【００１０】
２次元的な広がりを持つ画像データのパディング処理は、１次元のパディング処理を、横方向と縦方向に対して順に行なうことで実現する。１次元のパディング処理は以下のように行なう。
【００１１】
オブジェクトで挟まれたオブジェクト外の領域（行または列）は、該領域の両端のオブジェクト内の画素データの平均値に置き換え、その他のオブジェクト外の領域は、該領域に接するオブジェクト内の画素データに置き換える。このパディング処理の概要を図１を用いて説明する。
【００１２】
図１では水平（横）方向パディング処理を説明するため、ブロック内の一行分の２値形状情報（属性データ）と画素データを示している。但し、オブジェクト外の領域の画素データは他の値で置き換えられるため、元の値はほとんど意味が無いので、該画素データの値は省略して示していない。
【００１３】
図１（ａ）が２値形状情報で、同図（ｂ）がオブジェクト領域内の画素データである。ここでは、ブロック１行分の画素数を１６画素とした。該１６画素の中には、連結していない４つのオブジェクト外の領域がある。すなわち、画素値７８のすぐ左の１画素の領域、画素値７４と画素値５６で挟まれた４画素で構成される領域、画素値６４と画素値４２で挟まれた２画素で構成される領域、そして、画素値４２の右側にある３画素で構成される領域である。
【００１４】
両端の２つの領域は、該領域に接するオブジェクト内の画素データで置き換えられるため、一番左の１画素は画素値７８に置き換えられ、右端の３画素は画素値４２に置き換えられる。
【００１５】
残りの２つの領域は、オブジェクト内の画素データに挟まれているので、左側の４画素は画素値７４と５６の平均値６５に置き換えられ、右側の２画素は画素値６４と４２の平均値５３に置き換えられる。その結果、図１（ｃ）に示すような画素データが、パディング処理の結果として得られる。
【００１６】
ブロックデータは、複数の行データから成り、それぞれの行データに上記水平方向パディング処理を施すことにより、図２（ａ）に示すオブジェクト領域内の画素データは、図２（ｂ）のように広がる。ここで、斜線部はオブジェクト内の領域あるいはパディング処理によって画素データが置き換えられた領域を示す。
【００１７】
水平パディング処理の次は垂直方向パディング処理を行なう。処理の単位が横１行から縦１列に変わるだけで、処理方法は上述した内容と同じである。垂直パディング処理の後には、図２（ｃ）のようにブロック内全てが有効な画素データで埋め尽くされる。
【００１８】
【発明が解決しようとする課題】
上述したようにパディング処理は、１画素といえどもそれを処理するには、最悪１行分の全形状情報とオブジェクト内の画素データに関する情報を知っていなければならない。これは、前記情報を同時に把握するか、時間をかけて全情報を逐次的に調べていく必要があることを意味する。
【００１９】
並列処理では、必然的に全部の情報を同時に把握する必要がある。しかし、逐次処理では、同時に把握するか、逐次的に調べていくか、選択の余地が有り、それぞれに一長一短がある。
【００２０】
それに加えて、ハードウェア化にあたっては他の要因（回路構成の単純さや制御の容易さ）もあるため、パディング処理を逐次的に行なう簡易な回路はこれまで提案されていなかった。
【００２１】
本発明はかかる課題を解決するためになされたものであり、１次元の画像データ及び形状データに基づいて、画素単位にパディング処理を行うことを可能ならしめる画像処理装置及び方法を提供しようとするものである。
【００２２】
【課題を解決するための手段】
かかる課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
矩形形状を有する画像データの一部であり任意の形状を持つ画像オブジェクトに対して、前記矩形形状領域内のうち、前記画像オブジェクト外の領域に、パディング処理のために取得された画素データを代入する画像処理装置であって、
一次元方向に並ぶ画素データと、前記画素データが前記画像オブジェクト内の画素かオブジェクト外の画素かを示す属性情報とを入力する入力手段と、
処理対象画素データと同じ行もしくは列の、予め設定されたｎ個の画素データ中に、前記処理対象画素データに後続するオブジェクト内の画素があるか否かを示す第１のフラグ情報を、前記ｎ個の画素データに対応する前記属性情報に基づいて発生する第１のフラグ情報発生手段と、
処理対象画素データと同じ行もしくは列の前記ｎ個の画素データ中に、前記処理対象画素データより先行して、オブジェクト内の画素が存在したか否かを示す第２のフラグ情報を、前記処理対象画素データより先行する画素の前記属性情報に基づいて発生する第２のフラグ情報発生手段と、
（１）前記処理対象画素データに対応する属性データがオブジェクト内の画素であることを示す場合、前記処理対象画素データをパディング処理結果の画素データとして出力し、
（２）前記処理対象画素データに対応する属性データがオブジェクト外の画素であることを示し、且つ、前記第１、第２のフラグ情報が共に、オブジェクト内の画素があることを示している場合、前記処理対象画素データと同じ行もしくは列に存在し、前記処理対象画素データに先行し、当該処理対象画素データに最も近い画素データと、前記処理対象画素データと同じ行もしくは列に存在し、前記処理対象画素データに後続し、当該処理対象画素データに最も近い画素データとの平均値を、前記処理対象画素データに対するパディング処理結果の画素データとして出力し、
（３）前記処理対象画素データに対応する属性データがオブジェクト外の画素であることを示し、且つ、前記第１のフラグ情報がオブジェクト内の画素があることを示し、且つ、前記第２のフラグ情報がオブジェクト内の画素が無いことを示している場合、前記処理対象画素データと同じ行もしくは列に存在し、前記処理対象画素データに後続し、当該処理対象画素データに最も近いオブジェクト内の画素データを、前記処理対象画素データに対するパディング処理結果の画素データとして出力し、
（４）前記処理対象画素データに対応する属性データがオブジェクト外の画素であることを示し、且つ、前記第１のフラグ情報がオブジェクト内の画素が無いことを示し、且つ、前記第２のフラグ情報がオブジェクト内の画素があることを示している場合、前記処理対象画素データと同じ行もしくは列に存在し、前記処理対象画素データに先行し、当該処理対象画素データに最も近いオブジェクト内の画素データを、前記処理対象画素データに対するパディング処理結果の画素データとして出力し、前記処理対象画素データに隣接し後続する未処理の画素データを、次の処理対象画素データとする出力手段とを有する。
【００２３】
【発明の実施の形態】
先ず、パディング処理を行なう回路について説明する。かかる回路は図３に示す構成である。
【００２４】
この回路は、１行１０画素のデータに対して１次元方向のパディング処理を行なうものであるが、任意の数の画素データに対する１次元方向のパディング処理に拡張できるものである。
【００２５】
同図において、３０１はパディング処理を施こす画素データ（１画素＝８ビットとする）を入力する端子群、３０３は上記画素データを保持するレジスタ群、３０５は上記画素データの各画素がオブジェクト内もしくはオブジェクト外であるかを表わす形状情報（各画素に対し１ビットの属性データ）を入力する端子群、３０７は上記形状情報を保持するレジスタ群である。３２１は、上記画素データを左方向に伝搬させるための左伝搬処理部、３２３は上記画素データを右方向に伝搬させるための右伝搬処理部、３２５ａ〜ｊは、上記左伝搬処理部を構成するセレクタ群、３２７ａ〜ｊは、上記右伝搬処理部を構成するセレクタ群、３３１ａ〜ｊは、２つの画素データ間の平均値を演算するための加算器群である。
【００２６】
パディング処理を施こす画素データと該画素データに対する２値形状情報を１つずつ、あるいは、１０個同時に端子３０１，３０５から入力し、それぞれレジスタ３０３，３０７に保持する。形状情報（２値）は、“１”がオブジェクト内を表わし、“０”がオブジェクト外を表わす。
【００２７】
レジスタ３０３群に保持された画素データは、それぞれ左伝搬処理部３２１、右伝搬処理部３２３内の対応するセレクタに入力される。
【００２８】
レジスタ３０７群に保持された形状情報は、それぞれ左伝搬処理部３２１、右伝搬処理部３２３内の対応するセレクタの制御信号として入力される。
【００２９】
各セレクタは、該制御信号が“１”の時はレジスタ群３０３から入力される画素データを選択し、“０”の時は前段のセレクタで選択された画素データを選択するように動作する。これにより、オブジェクト外の画素を、オブジェクト内の画素データで置き換えるように、画素データが伝搬して行く。
【００３０】
左伝搬処理部３２１では、オブジェクト内の画素データが左方向に伝搬し、右伝搬処理部３２３では、オブジェクト内の画素データが右方向に伝搬する。
【００３１】
各々のセレクタで選択された画素データは加算器群３３１に送られ、該加算器群にて平均値が求められて、出力される。
【００３２】
具体的な数値例を図４に示し、その動作を説明する。
【００３３】
同図（ａ）は２値の形状情報、同図（ｂ）は入力画素データ（オブジェクト外は意味が無いので省略）、同図（ｃ）は左伝搬処理部におけるセレクタの出力値、同図（ｄ）は右伝搬処理部におけるセレクタの出力値、同図（ｅ）は平均値出力を表わす。
【００３４】
各画素位置には各々２つのセレクタがあり、形状情報が“１”（オブジェクト内）の画素では入力画素データを選択し、形状情報が“０”の画素では、オブジェクト内の画素データを左または右に伝搬した値を選択する。
【００３５】
各画素ごとに選択された２つの値は、加算器群３３１にて平均値が求められ、パディング処理した結果として出力される。平均値は加算した値を１ビット右シフト（１／２）することで容易に求めることができる。尚、オブジェクト内の画素では、２つの選択値が同じ値（入力画素データ）になるため、平均しても画素値は変わらない。
【００３６】
オブジェクトに挟まれた領域は、選択した左伝播画素値と右伝播画素値の元データが異なるため、各画素ごとに平均を求め、パディング処理した結果として出力する。
【００３７】
以上の処理により、オブジェクトで挟まれたオブジェクト外の領域は、該領域の両端のオブジェクト内の画素データの平均値に置き換えられ、その他のオブジェクト外の領域は、該領域に接するオブジェクト内の画素データに置き換えられる。
【００３８】
同一構成で、１０画素未満の任意の画素数に対しても、パディング処理が可能である。画素入力の無い端子に対応する形状情報を“０”に固定しておけばよい。
【００３９】
このように、パディング処理は並列処理に適したものであり、１行あるいは１列単位（以下では、１行あるいは１列を単に１行と記す）で並列に処理すると、上述の画素伝播処理を高速かつ効率的に行なうことが出来る。
【００４０】
しかし、他の処理、例えば、ＤＣＴ変換後の量子化処理やジグザグスキャン変換処理、可変長符号化処理などは、１サイクル当たり１画素あるいは１シンボルを処理するのが一般的であり、その方が回路規模を小さくでき、回路を効率的に使用できる。
【００４１】
よって、上記パディング処理回路と他の処理回路の間に、画素データの直並列変換処理や並直列変換処理等が必要になってくる。また、他の処理が並列処理をしていないのに、該パディング処理回路だけが並列処理をするということは、処理能力にミスマッチが生じ、該パディング処理回路はフル稼働せずに間欠動作することになってしまう。
【００４２】
そこで、他の処理と同じように、１サイクルで１画素ずつパディング処理の結果を出力するような構成が望まれる。
【００４３】
＜第１の実施の形態＞
以下、本発明にかかる第１の実施形態では、１サイクルで１画素ずつパディング処理の結果を出力するパディング処理回路について説明する。
【００４４】
本実施形態は、簡単にいえば、各サイクルの処理対象画素を含む３種類の画素データと数個の２値情報とに基づき、処理対象画素のパディング処理後の画素値を求める演算判定部と、該演算判定部に入力するデータを生成するデータ生成部とからなる。
【００４５】
本実施形態における３種類の画素データと２値情報の内訳は次のとおりである。まず第１は、前述したように各サイクルにおいて処理対象となる画素データ、そして、該画素データに対する２値の形状情報である。
【００４６】
第２は、未処理の画素データの中から処理対象画素に最も近い有効（オブジェクト内）画素データと該有効画素データ（以下では、後方最近接画素と称す）が存在するか否かを示すフラグ（以下では、後方最近接画素フラグと称す）情報である。
【００４７】
そして第３は、処理済みの画素データの中から処理対象画素に最も近い有効（オブジェクト内）画素データ（以下では、前方最近接画素と称す）と該有効画素データが存在するか否かを示すフラグ（以下では、前方最近接画素フラグと称す）情報である。
【００４８】
図５は第１の実施形態における逐次パディング処理回路の回路構成図である。
同図において、左側の大ブロック５０１は前記３種類の画素データとそれぞれの形状情報（２値情報）を生成し出力するデータ生成部であり、右側の大ブロック５５１はデータ生成部から与えられた画素データや形状・フラグ情報等から画素の平均値を演算したり、どの画素データをパディング処理した画素値として出力するかを判定する処理を行なう演算判定部である。
【００４９】
次に２つの大ブロックの構成要素について説明する。まず最初はデータ生成部５０１について説明する。
【００５０】
図示において、５０３ａ，５０３ｂ，５０３ｃ，５０３ｄ…は８ビット入／出力のフリップフロップであり、それらは画素データを保持し処理サイクル（搬送クロック）毎にシフトするシフトレジスタとして動作し、５０３ａにはその時点で処理対象となる画素データを保持し出力している。
【００５１】
５０５ａ，５０５ｂ，５０５ｃ，５０５ｄ…は１ビット入／出力のフリップフロップであり、それら形状情報を保持し処理サイクル毎にシフトするシフトレジスタとして動作し、前記シフトレジスタ５０３の画素データに対応する２値形状情報を保持している。よって、５０５ａにはその時点で処理対象となる画素の形状情報を保持し出力している。
【００５２】
５０７ｂ，５０７ｃ，５０７ｄ，…は、各々対応する前記形状情報によって切り替えられるセレクタ群であり、該形状情報が“１”の時、対応するレジスタ５０３の出力を選択し、“０”の時は、左側（後続）のセレクタ５０７の出力を選択する。従って、注目画素に対して１画素の後の形状情報が“０”である限りは、１つ左側のセレクタ５０７からの出力が選択されることになり、結果的に、セレクタ５０７ｂからは、注目画素に対し、後方に位置する有意な画素（オブジェクト内画素）の画素値が出力されることになる。
【００５３】
５０９は、前記シフトレジスタ５０５の全出力の論理和を演算する論理素子（ＯＲゲート）で、後方最近接画素が存在するかどうかを示す後方最近接画素フラグ情報を出力する。なお、このＯＲゲートに入力されるビット数は、処理する単位に依存するものであり、例えば１ブロックが１０×１０画素であり、この中の１ラインを処理するのであれば１０ビット入力になる。また、シフトレジスタ５０３、５０５、セレクタ５０７もそれに依存した個数だけ備えることになる。
【００５４】
５１１は、処理済みの画素データ（注目画素よりも時間的に前に位置することになる）の中で一番まじかの有効画素（その時の形状情報が“１”であるときにラッチするようにしている）を保持するレジスタで、前方最近接画素を出力する。
【００５５】
５１３は、処理済みの各画素データに対応する形状情報を累積的に論理和演算した結果を保持する１ビットのレジスタで、前方最近接画素が存在するかどうかを示す前方最近接画素フラグ情報を出力する。
【００５６】
以上６つの信号が、データ生成部５０１から出力され演算判定部５５１に送られる。
【００５７】
次に演算判定部５５１の構成要素について説明する。
【００５８】
５５３は後方最近接画素と前方最近接画素の平均値を演算し、出力する加算器、５５５は前方最近接画素フラグが“１”の場合に前方最近接画素を選択し、“０”の場合には後方最近接画素を選択するセレクタ、５５７は前方最近接画素と後方最近接画素の両方が存在することを検出するための論理積素子、５５９は前記論理積素子の出力に基づき、前方・後方の両最近接画素が存在する場合に前記加算器５５３が出力する画素平均値を選択し、存在しない場合はセレクタ５５５の出力を選択するセレクタである。５６１は現サイクルの処理対象画素に対応する形状情報に基づき、処理対象画素が有効（オブジェクト内）画素である時、この画素（注目画素値）を選択し、そうでない場合は、前記セレクタ５５９の出力を選択するセレクタである。
【００５９】
以上の構成を有することで、注目画素がオブジェクト内にある場合（注目画素に対する形状情報が“１”の場合）には、注目画素の値が出力されることになる。
【００６０】
そして、注目画素がオブジェクト外（注目画素に対する形状情報が“０”の場合）にあって、前方最近画素が存在しない（レジスタ５１３の出力が“０”）場合には、後方最近画素が選択される。そして、前方最近画素が存在し、後方画素がない場合には、前方最近画素が選択され、前方・後方最近画素が存在する場合（レジスタ５１３及びＯＲゲート５０９の出力が共に“１”）の場合には、加算器５１１の出力（前方最近画素と後方最近画素の加算平均値）がセレクタ５５９で選択され、演算判定部５５１の出力値として出力されることになる。
【００６１】
前記２値形状情報と２つのフラグ情報から、演算判定部５５１がどのような画素データを出力するかを整理したものが図６である。上記説明と多少重複するかもしれないが、図６のテーブルに沿って動作説明を行なう。
【００６２】
まず前提として、パディング処理すべき一行分の画素データとそれに付随する形状情報は、既にシフトレジスタ５０３と５０５にシフト入力されているものとする。また、レジスタ５１３で保持する累積的な論理和演算の結果は、先頭画素を処理する直前にリセットされるものとする。
【００６３】
さて、現サイクルの処理対象画素（注目画素）に対応する形状情報が“１”の場合は、他のフラグ情報がいかなる値であろうと、処理対象画素を出力する。これは、セレクタ５６１でレジスタ５０３ａの出力を選択することで実現される。
【００６４】
一方、処理対象画素の形状情報が“０”の時は以下ｉ〜iiiの３通りとなる。
【００６５】
ｉ）２つのフラグ情報（レジスタア５１３の出力と、ＯＲゲート５０９の出力）が両方とも“１”の場合は、処理対象画素を挟む両側に有効画素が存在するというとなので、処理対象画素に一番近い両側の２つの画素値（レジスタ５１１の値とセレクタ５０７の値）の平均値を加算器５５３にて演算し、それをセレクタ５５９，５６１を経由して出力する。
【００６６】
ii）２つのフラグ情報の一方のみが“１”の時は、存在する前方または後方最近接画素がパディング処理後の画素となる。これは、前方最近接画素フラグ情報に基づき、２つの最近接画素の一方をセレクタ５５５で選択することによって実現する。
【００６７】
iii）前記形状情報が“０”で、２つのフラグ情報が両方とも“０”の時は、パディング処理ができないので、出力に意味は無い。この構成では、後方最近接画素を出力するセレクタ５０７ｂのデータを出力するようになっているが、このデータはまったく意味の無いものである。
【００６８】
以上は、本発実施形態における基本的な構成と処理内容のみを説明した。この構成のままでは、複数の行データを連続して効率良く処理することは出来ない。
【００６９】
そこで、以下では、複数の行データを連続して処理する際の問題点とそれに対する解決方法を説明する。
【００７０】
複数の行データを連続して処理するには、シフトレジスタ５０３と５０５に画素データと形状情報を連続的に入力していかなければならないが、形状情報を連続的に入力すると、後方最近接画素が存在するかどうかを検出する論理積素子５０９に次の行の形状情報が早く入力され、正しい後方最近接画素フラグ情報が得られない。
【００７１】
この問題を解決する方法として次の２つが考えられる。
【００７２】
（１）並列ロード機能を有するシフトレジスタを使用し、一行分の形状情報をまとめて一度に該シフトレジスタ（５０５）にロードし、それ以降のサイクルにおけるシフト動作中は、空いたところに“０”を順次シフト入力する。
【００７３】
（２）形状情報をシフトするシフトレジスタの他に、同じ規模のシフトレジスタをもう１つ用意し、各画素毎に１ビットの属性情報を入力する。この属性情報は、同一行の画素に対しては同じ値をとり、隣の行との間では異なる値となるように、該シフトレジスタに入力する。レジスタ５０５ａと他の全ての属性情報と比較（１対多の比較）し、属性情報が一致しない位置の形状情報をゼロにマスクすることにより、処理対象画素と同じ属性情報の形状情報のみが、論理積素子５０９への有効な入力となるように制御する。
【００７４】
（３）上記（２）と同様シフトレジスタをもう１つ用意し、各行データの最終画素に同期して“０”を入力し、その他の画素に対しては“１”を入力する。これは行データの終端を表わす画素終端情報となる。最終画素の形状情報から出発して１つずつ形状情報を論理和合成し、全形状情報の論理和を求める。各画素位置では、左側から伝搬してくる論理和形状情報に、各画素位置における画素終端情報を論理積演算してから、その後に該画素位置の形状情報を論理和合成する。
こうすることにより、画素終端情報が“０”である画素より左側の形状情報は無視される。
【００７５】
いずれも、形状情報の扱い方を工夫したものである。形状情報を上記のように処理することは、以下に説明する第２の実施形態についても適用可能なものである。
【００７６】
＜第２の実施の形態＞
本第２の実施形態は、上記のデータ生成部５０１から演算判定部５５１へ送る画素データを、処理対象画素と後方最近接画素、それに処理結果を条件付で保持した画素の３つとするものである。
【００７７】
３つめの画素データを得るために、本実施形態では、演算判定部５５１から出力する処理結果をデータ生成部へフィードバックする。
【００７８】
演算判定部５５１にて、これらの画素データを使って演算・判定をしてパディング処理結果を出力するために使用する制御信号として、処理対象画素の２値形状情報と後方最近接画素フラグ情報、それに処理対象画素が一行の先頭画素であることを示す先頭画素指定信号の３つを用いる。
【００７９】
図７に示す本第２の実施形態の回路構成を示す。新たに使用する構成要素は、次に述べる３つである。
【００８０】
７１１は１サイクル前に演算判定部から出力されたパディング処理結果の画素データを条件付きで保持するレジスタ（演算判定部５５１の出力結果がフィードバックされている）、７１３は前記条件（処理対象画素の形状情報が“１”、または先頭画素指定信号が“１”になった場合）を検出するための論理和素子、そして、７１５は平均値を演算する加算器５５３の出力をセレクタ５５９で選択する条件を検出する論理積素子である。
【００８１】
シフトレジスタ５０３、５０５、セレクタ５０７の動作は先に説明した第１の実施形態と同様であるので、その説明は省略する。
【００８２】
図８に、第２の実施形態における演算判定部５５１において用いる３つ判定制御信号の値とそれに対する出力を示す。以下、図８のテーブルに沿って説明する。
【００８３】
先の第１の実施形態で説明したのと同様、処理に必要な１行分の画素データ及び形状情報は既にシフト入力されているものとする。
【００８４】
現サイクルの処理対象画素に対応する形状情報が“１”の場合は、他のフラグ情報がいかなる値であろうと、処理対象画素を出力する。これは、第１の実施形態とまったく同じである。
【００８５】
次に、処理対象画素に対する形状情報が“０”の場合であるが、この場合は次のようになる。
【００８６】
ｉ）後方最近接画素フラグが“１”で、先頭画素指定信号が“１”の時は、後方最近接画素を選択して出力する。これは、セレクタ５５５にて後方最近接画素を選択することにより実現する。この場合、次のサイクルで該最近接画素がレジスタ７１１から出力される。
【００８７】
ii）また、後方最近接画素フラグが“１”、先頭画素指定信号が“０”の時は、本実施形態では使用していない前方最近接画素フラグの値により前後最近接画素の平均もしくは後方最近接画素が出力として求められるが、セレクタ５５５からの画素データと後方最近接画素データとの平均は、後述する理由により前記求められる出力と一致している。そのため、後方最近接画素フラグが“１”、先頭画素指定信号が“０”という条件を論理積素子７１５で検出して、セレクタ５５９で該平均を選択し、セレクタ５６１を通して出力する。
【００８８】
前方最近接画素フラグが“１”に相当する場合、レジスタ７１１には前方最近接画素が保持され、該フラグが“０”に相当する場合、先頭画素を処理する時に取りこんだ後方最近接画素が、該レジスタに保持されるため、レジスタ７１１の出力と後方最近接画素との平均は、（本実施形態では使用していないが）前方最近接画素フラグの値の応じてきちんと切り替わっている。
【００８９】
iii）後方最近接画素フラグが“０”、先頭画素指定信号が“１”の時は、有効画素が１つも無いため、パディング処理は不可能である。この場合何を出力しても問題無い。
【００９０】
iv）前記形状情報が“０”で、後方最近画素フラグが“０”、先頭画素指定信号が“０”の時は、パディング処理不可能な場合と前方最近接画素を出力する場合とがあるので、レジスタ７１１に取り込まれた前方最近接画素を出力しておけば問題無い。
【００９１】
複数の行データを連続して処理する際の問題点とそれに対する解決方法は前記第１の実施形態と同じである。
【００９２】
レジスタ７１１および論理和素子７１３をデータ生成部５０１から演算判定部に移動しても、機能的にはまったく同じであるが、演算と判定にどのデータや情報を遭うのかを明確にするため、図７のような構成にした。次に説明する第３、第４の実施形態も同様である。
【００９３】
レジスタ７１１に取り込まれる画素データは、形状情報が“１”の場合は処理対象画素で、形状情報が“０”且つ先頭画素の時は、後方最近接画素となるので、該レジスタの入力を形状情報に基づき、処理対象画素と後方最近接画素の一方を選択するように構成しても同じ働きをする。該構成図を第２実施形態の変形例として図１４に示す。図示の如く、処理対象画素の形状情報に基づいて、処理対象画素値、又は、後方最近接画素のいずれか一方を選択するセレクタ１４００を追加した。
【００９４】
＜第３の実施の形態＞
前記第２の実施形態では、条件付で保持していたパディング処理結果を、本第３の実施形態では無条件に毎サイクルごとに取りこむ。別の言い方をすれば、１画素前のパディング処理結果を３つ目の画素データとして利用する。
【００９５】
よって、前記第２の実施形態と同様、演算判定部５５１から出力する処理結果をデータ生成部へフィードバックする。
【００９６】
演算判定部５５１にて、これらの画素データを処理するために使用する制御信号として、処理対象画素の形状情報、後方最近接画素フラグ情報、先頭画素指定信号、それに１画素前の形状情報の４つを使用する。
【００９７】
本第３の実施形態と前記第２の実施形態とを比較すると、セレクタ５５５で後方最近接画素を選択する条件に、処理対象画素が先頭画素であるという条件を付加している。これは、後方最近接画素に直接置き換えるパディング処理を先頭画素だけに適用するためである。
【００９８】
また、セレクタ５５９で平均値を選択する条件に、１画素前の形状情報が“１”であるという条件を付加している。これは、形状情報が“１”から“０”へ変わる時のみ、新たに計算した平均値を使用し、“０”が続く時には最初の“０”で計算して出力した平均値をフィードバックして再利用するからである。
【００９９】
図９に、本第３の実施形態の回路構成を示す。上記機能を実現するため、次に述べる４つの新たな構成要素を有する。その他の構成要素は図７の同一番号要素と同じである。
【０１００】
９１１は演算判定部からフィードバックされた処理結果を１サイクル毎に取り込むレジスタ、９１３は１画素前の形状情報を得るために５０５ａの出力を１サイクル遅延させるレジスタ、９１５はセレクタ５５５で後方最近接画素を選択する条件を検出する論理積素子、そして、９１７はセレクタ５５９で平均値を選択する条件を検出する論理積素子である。
【０１０１】
図１０に、前記４つの判定制御信号の値とそれに対するパディング処理出力関係を示す。以下、同表に沿って説明する。
【０１０２】
前記第２の実施形態で説明したのと同様、処理に必要な１行分の画素データはシフト入力されているものとする。
【０１０３】
現サイクルの処理対象画素の形状情報が“１”の場合は、他のフラグ情報がいかなる値であろうと、処理対象画素を出力する。これは、前記第１、第２の実施形態とまったく同じである。
【０１０４】
次に、処理対象画素（注目画素）の形状情報が“０”の場合について説明する。
【０１０５】
ｉ）後方最近接画素フラグが“１”、先頭画素指定信号が“１”の時は、１画素前の形状情報（この形状情報はまったく意味が無い）が何であろうと、前記第２の実施形態と同様、後方最近接画素を選択して出力する。そして、次のサイクルで該後方最近接画素がレジスタ９１１から出力される。
【０１０６】
ii）後方最近接画素フラグが“１”、先頭画素指定信号が“０”の場合、出力する内容は前後の最近接画素の平均値もしくは後方最近接画素のいずれかである。
【０１０７】
処理対象画素の形状情報が“１”から“０”へ変化した最初の画素に対して、すなわち、１画素前の形状情報が“１”の場合は、平均値を計算する加算器５５３の出力を選択する。この出力は前述したようにレジスタ９１１に取り込まれる。
【０１０８】
形状情報が“０”、“０”と続く場合、すなわち、１画素前の形状情報が“０”の場合は、レジスタ９１１に取り込んだ前後の最近接画素の平均値、あるいは、後方最近接画素（先頭画素指定信号が“１”の時に取り込んだ画素）を出力する。この時の動作は基本的に、処理結果として一度出力したものをレジスタ９１１に取り込んで再び出力するものである。
【０１０９】
iii）前記形状情報が“０”で、後方最近接画素フラグが“０”、先頭画素指定信号が“１”の時は、有効画素が１つも無いため、パディング処理は不可能である。この場合出力が何であっても問題無い。
【０１１０】
iv）後方最近接画素フラグが“０”、先頭画素指定信号が“０”の時は、パディング処理不可能な場合と前方最近接画素を出力する場合とがある。前方最近接画素は形状情報が“１”の画素がレジスタ９１１に取り込まれているので、該レジスタを選択して出力しておけば問題無い。
【０１１１】
複数の行データを連続して処理する際の問題とそれに対する解決方法は前記第１、第２の実施形態と同じである。
【０１１２】
＜第４の実施の形態＞
本第４の実施形態は、後方最近接画素が容易に得られるようＦＩＦＯ(First In First Out)レジスタを使用することが最大の特徴である。
【０１１３】
本第４の実施形態の構成を図１１に示す。レジスタ５０３ａのみを残して、レジスタ５０３ｂ，５０３ｃ，５０４ｄ，…の替わりに、ＦＩＦＯ１１０１を使用する。それに対応して、レジスタ５０５ｂ，５０５ｃ，５０５ｄ，…の替わりに、並列ロード機能を有するシフトレジスタ１１０３を使用する。その他の構成要素は前記第２の実施形態と同様の機能を有する。
【０１１４】
ＦＩＦＯ１１０１には、有効画素（形状情報が“１”の画素）のみを蓄積することにより、このＦＩＦＯ１１０１から後方最近接画素を出力するように動作させる。すなわち、処理対象画素がもし有効画素（形状情報が“１”）であるなら該画素データをレジスタ５０３ａから出力し、ＦＩＦＯからは次に有効な画素（後方最近接画素）を出力する。これにより、これまで必要であったセレクタ群５０７が不要となる。
【０１１５】
ＦＩＦＩＯからの出力が本当に後方最近接画素であるかどうかは、シフトレジスタ１１０３から出力される形状情報の全論理和（論理和素子５０９の出力）によって決まる。
【０１１６】
１行の最終画素の形状情報をシフトレジスタ１１０３からレジスタ５０５ａに出力する時に、該シフトレジスタに対して次の行の全形状情報を与え、次のサイクルで取り込む。そのためには、これまでの実施形態で使用してきた先頭画素指定信号よりも２サイクル先行したロード信号が必要であり、該タイミングのロード信号を前記シフトレジスタにロード制御信号として入力する。
【０１１７】
該ロード信号によってシフトレジスタ１１０３へ形状情報を取り込んだ直後のサイクルでは、まだ１行前の最終画素を処理しているので、論埋和素子５０９から出力される後方最近接画素フラグ情報が、前の行の処理に影響しないよう、前記ロード信号をレジスタ１１０５で１サイクル遅延させた信号でマスクする。
【０１１８】
前記遅延信号は、さらにレジスタ１１０７でもう１サイクル遅延させ先頭画素指定信号として、演算判定部５５１へ入力する。
【０１１９】
演算判定部５５１へ入力する信号の種類は、前記第２の実施形態と同じである。よって該演算判定部の構成も前記第２の実施形態と同じものを用いる。当然のことながら、制御信号と処理出力の関係を表わす表も第２の実施形態と同じなので、ここでは省略する。
【０１２０】
以上説明したように、本第４の実施形態では、ＦＩＦＯ１１０１、シフトレジスタ１１０３、遅延用レジスタ１１０５，１１０７、フラグ情報マスク用論理積素子１１０９を新たに使用している。
【０１２１】
ＦＩＦＯ１１０１には処理する画素データが順次与えられるが、該画素データと同時に入力される２値形状情報の値が“１”の画素データのみを、ＦＩＦＯ内に取り込む。すなわち、前記形状情報はＦＩＦＯの入力イネーブル制御信号として使われる。これにより、ＦＩＦＯ内には有効画素のみが蓄積され、ＦＩＦＯからの出力が後方最近接画素として利用可能になるわけである。
【０１２２】
一方、ＦＩＦＯの出力がいつも正しく後方最近接画素を出力するよう、ある条件で出力を更新する必要がある。処理対象画素の２値形状情報が“１”になる時、それまで後方最近接画素として出力していた画素データは、処理対象画素となるため、この時にＦＩＦＯの出力を更新しなければならない。
【０１２３】
そのためには、処理対象画素の形状情報を、出力更新制御信号として１サイクル前にＦＩＦＯに入力する。シフトレジスタ１１０３からレジスタ５０５ａへ送る信号がこのタイミングの信号に当たるので、該信号をＦＩＦＯ１１０１の出力更新制御信号として入力する。
【０１２４】
シフトレジスタ１１０３には、１行分の形状情報を前記タイミングで一括してロード入力し、その後は１サイクル毎にシフト動作を行なう。この時“０”をシフト入力し、後方最近接画素フラグ情報が他の行の形状情報から影響を受けないようにする。
【０１２５】
＜第５の実施の形態＞
第１〜４実施形態では１画素ずつパディング処理をしていたが、これを２画素ずつパディング処理するように拡張したのが、本第５の実施形態である。以下では、処理する２つの画素の内、先頭に近い画素を第１の処理対象画素、次の画素を第２の処理対象画素と言うことにする。
【０１２６】
本第５の実施形態が基本とするのは、第１の実施形態であり、これを２画素処理へと拡張する。
【０１２７】
本第５の実施形態の構成を図１２に、制御信号と処理出力との関係を図１３の表に示す。本実施形態においても、データ生成部５０１と演算判定部５５１という２つのブロックを用いてパディング処理を行なうようにし、これまでの実施形態と似た構成にした。
【０１２８】
図１２において、
１２０１ａ，１２０１ｂ，１２０１ｃ，…は、１行の先頭画素データから１画素おきに画素データを保持しシフトする８ビット幅のシフトレジスタ、
１２０３ａ，１２０３ｂ，１２０３ｃ，…は、１行の２番目の画素データから１画素おきに画素データを保持しシフトする８ビット幅のシフトレジスタ、
１２０５ａ，１２０５ｂ，１２０５ｃ，…は、１行の先頭画素データから１画素おきの画素データに対する形状情報を保持しシフトする１ビット幅のシフトレジスタ、
１２０７ａ，１２０７ｂ，１２０７ｃ，…は、１行の２番目の画素データから１画素おきの画素データに対する形状情報を保持しシフトする１ビット幅のシフトレジスタ、
１２０９は、次のサイクルに向けて前方最近接画素を更新するかどうかを検出する論理和素子、
１２１１は、前方最近接画素を保持するレジスタ５１１に入力する画素を選択するセレクタ、
１２５１は、前方最近接画素と第１の処理対象画素とを切り換えるセレクタ、
１２５３は、後方最近接画素と第２の処理対象画素とを切り換えるセレクタ、
１２５５は、前方最近接画素フラグの値に第１の処理対象画素の形状情報を合成する論理和素子、
１２５７は、後方最近接画素フラグの値に第２の処理対象画素の形状情報を合成する論理和素子、
１２６１は、先頭画素から１画素おきの画素に対するパディング処理結果を選択するセレクタ、
１２６３は、２番目の画素から１画素おきの画素に対するパディング処理結果を選択するセレクタである。
【０１２９】
その他の構成要素は前記第１の実施形態（図５）における同一番号要素と同じである。
【０１３０】
以下、図１３の表を元にして説明する。
【０１３１】
２つの処理対象画素に対応する２値形状情報がそれぞれ“１”である場合には、処理対象画素自身が選択され出力されることは一目瞭然なので、各々の処理対象画素に対する形状情報が“０”である場合について詳しく見てみることにする。
【０１３２】
まず、第１の処理対象画素の形状情報が“０”である場合について考える。本実施形態における後方最近接画素というのは、第１の処理対象画素にとっては、２画素後以降の後方最近接画素であって、同時処理する第２の処理対象画素を含んでいない。後方最近接画素フラグも同様である。
【０１３３】
そこで演算判定部５５１では、第２の処理対象画素の形状情報が“１”の場合、セレクタ１２５３にて、入力された後方最近接画素を第２の処理対象画素に切り換えて、加算器５５３に入力する。また、後方最近接画素フラグの値に第２の処理対象画素の形状情報を論理和合成した値を、（加算器で計算した平均値を選択する条件を検出するための）論理積素子５５７に入力する。
【０１３４】
第１の処理対象画素の形状情報が“０”である場合についてのみ考えているので、セレクタ１２５１、論理和素子１２５５の存在は無視され、レジスタ５１１から出力される前方最近接画素は、前記第１の実施形態と同様に処理される。
【０１３５】
以上により、第１の処理対象画素に対しては、前記第１の実施形態と同様の処理結果が出力されることになる。
【０１３６】
次に、第２の処理対象画素の形状情報が“０”である場合について考える。本実施形態における前方最近接画素というのは、第２の処理対象画素にとっては、２画素以前の前方最近接画素であって、同時処理する第１の処理対象画素を含んでいない。前方最近接画素フラグも同様である。
【０１３７】
そこで演算判定部５５１では、第１の処理対象画素の形状情報が“１”の時、セレクタ１２５１にて、入力された前方最近接画素を第１の処理対象画素に切り換えて、加算器５５３に入力する。また、前方最近接画素フラグの値に第１の処理対象画素の形状情報を論理和合成した値を、（加算器で計算した平均値を選択する条件を検出するための）論理積素子５５７に入力する。
【０１３８】
第２の処理対象画素の形状情報が“０”である場合についてのみ考えているので、セレクタ１２５３、論理和素子１２５７の存在は無視され、論理和素子５０９から出力される後方最近接画素は、前記第１の実施形態と同様に処理される。
【０１３９】
以上により、第２の処理対象画素に対しても、前記第１の実施形態と同様の処理結果が出力されることになる。
【０１４０】
２つの処理対象画素の形状情報がいずれも“０”である場合は、前述した、それぞれの形状情報が“０”の場合の動作説明に包含されている。
【０１４１】
よって、２つの形状情報がいずれの値であろうと、２つの処理対象画素に対するパディング処理出力は、前記第１の実施形態と同じものになるため、図１２の構成で２画素同時処理がきちんとできることが確認できた。
【０１４２】
本実施形態は、前記第１の実施形態を基本としているが、第２〜第４の実施形態を基本にして、２画素同時処理へと拡張することも当然でき、さらに多くの画素を同時処理することも可能である。
【０１４３】
以上説明したように本実施形態によれば、画像処理装置（パディング処理装置）は、処理対象となる画素データと該画素データの２値形状情報とからなる第１のデータと、未処理の画素データの中で処理対象画素に最も近い有効な画素データである後方最近接画素と該画素が存在するかどうかを示すフラグ情報とからなる第２のデータ、並びに、他の画素データを含む第３のデータに基づいて、前記画素の内の２画素の平均値、あるいは、前記画素のいずれかを選択することにより、パディング処理した画素データを出力する構成をとることにより、逐次的なパディング処理を効率良く行なうことが可能となった。
【０１４４】
＜第６の実施の形態＞
図１５は本発明の第６の実施の形態に係る画像符号化部の構成を示すブロック図である。
【０１４５】
図１５において、１は１フレーム分の画像データを格納し、MPEG-4の手順に従ってマクロブロック単位に出力するフレームメモリであり、２は後述する予測値を減算する減算器である。３はDCT変換を施すDCT変換器であり、４は変換係数をそれぞれ量子化する量子化器である。５は量子化結果をエントロピー符号化するエントロピー符号化器である。６は量子化結果を変換係数に戻す逆量子化器であり、７は変換係数から画素データを復元する逆DCT器である。８は予測値を加算する加算器であり、９は再生画像を格納するフレームメモリである。
【０１４６】
１０は入力されたマクロブロックの画素データとフレームメモリ９に格納された画素データから動きベクトルを検出する動きベクトル検出器である。１１は検出された動きベクトルに従ってマクロブロック毎の予測値を算出する動き補償器であり、１２は動きベクトルを符号化する動きベクトル符号化器である。１３は２値の形状情報１フレーム分を格納し、MPEG-4の手順に従ってマクロブロック単位に切出して出力する２値のフレームメモリである。形状情報は各画素がオブジェクトの外か内かを示すデータである。１４はマクロブロック単位で形状情報を算術符号化する形状符号化器である。１５は前記再生画像に対応した形状情報を格納するフレームメモリである。１６は該当するマクロブロックについて動きベクトル検出器１０から動きベクトルを入力し、入力されたマクロブロックの形状情報とフレームメモリ１５の形状情報を比較して形状情報の動きベクトルを算出して動き補償を行う動き補償器である。
【０１４７】
２０、２１は形状情報からパディングを制御するパディング制御器である。１７はパディング制御器20からの制御と形状情報に従って、フレームメモリ1のオブジェクト外の画素データを補填するパディング器である。１８はパディング制御器２１からの制御と形状情報に従って、フレームメモリ９のオブジェクト外の画素データを補填するパディング器である。１９は拡張パディングを実行する拡張パディング器である。
【０１４８】
上記の構成において、動画像の各フレームの符号化動作について述べる。
【０１４９】
まず、１フレーム分の画素データと形状情報がそれぞれフレームメモリ１とフレームメモリ１３に格納される。
【０１５０】
入力されたフレームが符号化対象のフレームがフレーム内符号化の対象であった場合はパディング制御器２０とパディング器１７が動作し、動き補償を伴うフレーム間符号化の対象であった場合はパディング制御器２０、２１、パディング器１７、１８及び拡張パディング器１９が動作する。
【０１５１】
パディング器１７及びパディング制御器２０は、フレーム内符号化時には低域成分外挿法と呼ばれている方法でパディング処理を行ない、フレーム間符号化時には特に処理はせず、減算器２から出力される予測誤差の内、オブジェクト領域外の予測誤差の値をパディング制御器からの信号に基づいて“０”に置き換える。
【０１５２】
前記低域成分外挿法とは、オブジェクト内の画素の平均値でオブジェクト外の領域を埋めた後に、オブジェクト外の画素を該画素の上下左右４画素の平均値で置き換えるものである。
【０１５３】
パディング器１８には、前記第１〜第５の実施形態で説明した１次元のパディング処理ユニットを２つ又は１つ用いる。２つのパディング処理ユニットを用いる場合は、一方で水平方向のパディング処理を行ない、もう一方で垂直方向のパディング処理をする。１つのパディング処理ユニットで処理する場合は、水平方向のパディング処理をした後、同じユニットで垂直方向のパディング処理を行なう。
【０１５４】
フレーム内符号化が選択された場合、パディング器１７は符号化に先行してパディング処理を行う。パディング制御器２０はフレーメモリ１３に格納された形状情報からオブジェクトの境界を含むマクロブロックを検出しそのマクロブロックの位置と形状情報をパディング器１７に入力する。パディング器１７はオブジェクトの境界を含むマクロブロックの画素データをフレームメモリ１から読み出して、前記低域成分外挿法によりオブジェクト外の画素データをオブジェクト内の画素データから算出する。
【０１５５】
フレーム間符号化が選択された場合、パディング器１８は符号化に先行してパディング処理を行う。パディング制御器２１はフレーメモリ１５に格納された形状情報からオブジェクトの境界を含むマクロブロックを検出しそのマクロブロックの位置と形状情報をパディング器18に入力する。パディング器１８はオブジェクトの境界を含むマクロブロックの画素データをフレームメモリ９から読み出して、オブジェクト外の画素データをオブジェクト内の画素データから生成する。
【０１５６】
上記パディング処理と平行して、パディング制御器２１はフレーメモリ１５に格納された形状情報から左右上下がオブジェクト内部の画素を含むマクロブロックと接しているマクロブロックを検出し、マクロブロックの位置を拡張パディング器１９に入力する。拡張パディング器１９はMPEG-4符号化方式の拡張パディングの手順に従って、隣接するマクロブロックの画素データをコピーする。
【０１５７】
符号化するブロックのパディング処理が終了したら、フレーム内符号化の場合は、マクロブロック単位に画素データをフレームメモリ1から読み出し、減算器２で予測値０を引き、DCT器３でDCT変換し、その変換係数を量子化器4で量子化する。
【０１５８】
量子化結果はエントロピ符号化器５にて符号化し、外部に出力する。と同時に量子化結果は逆量子化器６にも送られ、DCT変換係数が再生され、逆DCT器７にて画素データを再生して加算器８で予測値０を加えた後、フレームメモリ９に格納する。
【０１５９】
これと平行して、フレームメモリ１３の２値形状情報は符号化器１４にて、オブジェクト外のマクロブロックに関してはTransparentとして符号化し、境界を含むマクロブロックに関してはその形状を算術符号化し、完全にオブジェクト内に含まれる場合はOpaqueとして符号化して、外部に出力する。また該２値形状情報をフレームメモリ１５にも格納し、次の形状情報の符号化に使用する。
【０１６０】
エントロピ符号化器5と形状符号化器14の出力が外部でMPEG-4の書式に必要なヘッダ情報等の符号化データと多重化されてMPEG-4符号化データとして出力される。
【０１６１】
フレーム間符号化の場合は、マクロブロック単位に画素データがフレームメモリ１から読み出され、動き検出器１０に入力される。動き検出器１０は入力されたマクロブロックの画素データとフレームメモリ９に格納されている再生画像データの部分画像と逐次比較し、該再生画像中の最も類似度の高い領域を特定し、その偏差を動きベクトルとして出力する。
【０１６２】
出力された動きベクトルは動きベクトル符号化器１２で符号化され、外部に出力される。と同時に、動きベクトルは動き補償器１１、１６にも供給される。動き補償器１１では動きベクトルに従って、フレームメモリ９から予測値を読み出し、減算器２に出力する。減算器２では符号化するマクロブロックの画素データから、前記入力された予測値を減算する。
【０１６３】
減算結果はDCT器３でDCT変換され、その変換係数を量子化器４で量子化される。量子化結果はエントロピ符号化器５で符号化され、外部に出力される。と同時に量子化結果は逆量子化器６に供給され、DCT変換係数を再生し、逆DCT器７で画素データを再生し、加算器８で動き補償器１１からの予測値を加え、フレームメモリ９に格納する。
【０１６４】
これと平行して、動き補償器１６に動き検出器１０で算出した動きベクトルを供給し、該動きベクトルを基準としてフレームメモリ１５の形状情報と符号化マクロブロックの形状情報とを比較して形状情報の動きベクトルを算出し、動きベクトルと該動きベクトルが示す形状情報を予測値として形状符号化器１４に供給する。
【０１６５】
フレームメモリ１３の形状情報は形状符号化器１４にて、オブジェクト外のマクロブロックに関してはTransparentとして符号化され、完全にオブジェクト内に含まれる場合はOpaqueとして符号化して、外部に出力する。
【０１６６】
境界を含むマクロブロックに関しては、インターモードにおいては形状情報の動きベクトルを符号化した後、その形状を動き補償器１６からの予測値も参照して算術符号化し、外部に出力する。
【０１６７】
イントラモードでは動き補償器１６からの予測値を参照せずに算術符号化し、外部に出力する。また形状情報はフレームメモリ１５に格納し、次の形状情報の符号化に使用する。
【０１６８】
エントロピ符号化器５と形状符号化器１４と動きベクトル符号化器１２の出力が外部でMPEG-4の書式に必要な情報等の符号化データと多重化されてMPEG-4符号化データとして出力される。
【０１６９】
拡張パディング器１９は実際にはフレームメモリとそのメモリコントロールの機能で実現されるので、特別に設けなくても実現が可能な場合も有る。
【０１７０】
＜第７の実施の形態＞
図１６は本発明の第７の実施形態に係る画像復号部の構成を示すブロック図である。
【０１７１】
図１６において、５０は符号化データを入力し、量子化結果を再生するエントロピー復号器である。５１は量子化結果を変換係数に戻す逆量子化器であり、５２は変換係数から予測差分画素データを復元する逆DCT器である。
５３は予測値を加算する加算器であり、５４はMPEG-4の手順に従ってマクロブロック単位に画像データを1フレーム分、格納するフレームメモリである。
５５は再生画像を格納するフレームメモリである。５６は動きベクトルを復号して再生する動きベクトル復号器である。
【０１７２】
５７は復号された動きベクトルに従ってマクロブロック毎の予測値を算出する動き補償器である。５８はマクロブロック単位で形状データを復号する形状復号器である。
【０１７３】
５９、６０は復号された２値形状情報を格納する２値のフレームメモリである。６１は該当するマクロブロックについて動きベクトル復号器５６から動きベクトルを入力し、動きベクトルと形状復号器58で復号された形状情報の動きベクトルにしたがってフレームメモリ５９から形状情報を読み出す動き補償器である。
【０１７４】
６２は形状情報に従ってパディングを制御するパディング制御器である。６３はフレームメモリ５９の形状情報に従って、フレームメモリ５５のオブジェクト外の画素データを補填するパディング器である。６４は拡張パディングを実行する拡張パディング器である。
【０１７５】
上記の構成において、動画像の各フレームの復号動作について述べる。
【０１７６】
まず、フレーム内符号化されたフレームの復号から説明する。マクロブロック単位で形状情報の符号化データを形状復号器５８に入力して、形状情報を復号する。
【０１７７】
マクロブロックのモードがTransparentの場合は形状情報としてすべて“０”を出力する。このモードの形状情報に対応したマクロブロックの画素データは存在しないので、復号処理は行なわない。
【０１７８】
マクロブロックのモードがOpaqueであれば、形状情報としてすべて“１” を出力する。算術符号化されている場合はこれを復号し、オブジェクトの境界の形状情報を再生する。再生された形状情報はフレームメモリ５９とフレームメモリ６０に格納される。
【０１７９】
マクロブロックの形状情報のモードがOpaqueか算術符号化であれば、マクロブロック単位で符号化データがエントロピ復号器５０に入力される。エントロピ復号器５０では符号化データを復号処理して量子化結果を再生する。該量子化結果を逆量子化器５１に供給して、DCT変換係数を再生し、逆DCT器５２で画素データを再生して加算器５３で予測値“０”を加え、フレームメモリ５４とフレームメモリ５５に格納する。
【０１８０】
１フレーム分の処理が終了したら、フレームメモリ５４およびフレームメモリ５９の内容が外部に出力され、適宜合成される。
【０１８１】
次にフレーム間符号化されたフレームの復号を説明する。
【０１８２】
パディング器６３は境界パディングの処理を行う。パディング制御器６２はフレーメモリ６０に格納された２値形状情報からオブジェクトの境界を含むマクロブロックを検出し、該マクロブロックのオブジェクトの境界を含むマクロブロックの画素データをフレームメモリ５５から読み出して、該画素データと形状情報をパディング器６３に供給する。
【０１８３】
パディング器６３には、前記第１〜第５の実施形態で説明した１次元のパディング処理ユニットを２つ又は１つ用いて、第６の実施形態で説明したようにパディング処理する。そして、入力された画素データと２値形状情報からオブジェクト外部の画素データを生成する。
【０１８４】
続けて、パディング制御器６２はフレーメモリ６０に格納された２値形状情報から、オブジェクト内部の画素を含むマクロブロックと左右上下で接しているマクロブロックを検出し、マクロブロックの位置を拡張パディング器６４に入力する。拡張パディング器６４はMPEG-4符号化方式の拡張パディングの手順に従って、隣接するマクロブロックの画素データをコピーする。
【０１８５】
上記復号化処理と平行して、マクロブロック単位で形状情報の符号化データが形状復号器５８に供給され、２値形状情報を復号する。
【０１８６】
マクロブロックのモードがTransparentの場合は形状情報としてすべて“０”を出力する。このモードの形状情報に対応したマクロブロックの画素データは存在しないので、復号処理は行なわない。
【０１８７】
マクロブロックのモードがOpaqueであれば、形状情報としてすべて“１”を出力する。イントラモードで算術符号化されている場合はこれを復号し、オブジェクトの境界の形状情報を再生し、フレームメモリ５９に格納する。
【０１８８】
動き補償されているマクロブロックにおいて、動きベクトル復号器５６は動きベクトルを復号し、復号した動きベクトルを動き補償器５７、６１に供給する。
【０１８９】
形状情報がインターモードで算術符号化されていれば、形状復号器５８は形状情報のための動きベクトルを算出するデータを復号し、動き補償器６１はこの動きベクトルを用いて、フレームメモリ６０から形状情報の予測値を読み出す。この予測値を参照して形状復号器５８は形状情報を復号し、２値のフレームメモリ５９に格納する。
【０１９０】
マクロブロックがフレーム内符号化されている場合は前述のフレーム内符号化データの復号動作によって復号を行いフレームメモリ５４、５５に画素データを格納する。
【０１９１】
マクロブロックがフレーム間符号化されている場合はマクロブロックの形状情報のモードがOpaqueか算術符号化であれば、マクロブロック単位の符号化データがエントロピ復号器５０に供給され、該エントロピ復号器５０で復号処理して量子化結果を再生する。
【０１９２】
量子化結果を逆量子化器５１に入力してDCT変換係数を再生し、逆DCT器５２にて変換係数から予測差分画素データを再生して加算器５３に送る。
【０１９３】
平行して、動き補償器５７は動きベクトル復号器５６で復号された動きベクトルに基づき、フレームメモリ５５から予測値を読み出し加算器５３に供給する。
加算器５３は前記予測差分画素データに該予測値を加え、フレームメモリ５４、５５に格納する。
【０１９４】
フレーム内符号化の場合は前述のフレーム内符号化データの復号と同様に処理される。１フレーム分の処理が終了したら、フレームメモリ５４およびフレームメモリ５９の内容が外部に出力され、適宜合成される。
【０１９５】
【発明の効果】
以上説明したように本発明によれば、逐次的なパディング処理を効率良く行なうことが可能になる。
【図面の簡単な説明】
【図１】入力した画素データ及び形状情報と、パディング処理後の画素データの関係を示す図である。
【図２】パディング処理によってブロックの画素データがどのように処理されるかを示す図である。
【図３】並列パディング処理回路の一例を示す図である。
【図４】図３のパディング処理回路による処理の例を示す図である。
【図５】第１の実施形態の回路構成を示す図である。
【図６】第１の実施形態における制御信号とパディング処理出力の関係を示すテーブルを示す図である。
【図７】第２の実施形態の回路構成を示す図である。
【図８】第２の実施形態における制御信号とパディング処理出力の関係を示すテーブルを示す図である。
【図９】第３の実施形態の回路構成を示す図である。
【図１０】第３の実施形態における制御信号とパディング処理出力の関係を示すテーブルを示す図である。
【図１１】第４の実施形態の回路構成を示す図である。
【図１２】第５の実施形態の回路構成を示す図である。
【図１３】第５の実施形態における制御信号とパディング処理出力の関係を示すテーブルを示す図である。
【図１４】第２の実施形態の変形例の回路構成を示す図である。
【図１５】第６の実施の形態に係る画像符号化装置の構成を示す図である。
【図１６】第７の実施の形態に係る画像復号装置の構成を示す図である。
【図１】
0004574021.tif 000002
【図２】
0004574021.tif 000003
【図３】
0004574021.tif 000004
【図４】
0004574021.tif 000005
【図５】
0004574021.tif 000006
【図６】
0004574021.tif 000007
【図７】
0004574021.tif 000008
【図８】
0004574021.tif 000009
【図９】
0004574021.tif 000010
【図１０】
0004574021.tif 000011
【図１１】
0004574021.tif 000012
【図１２】
0004574021.tif 000013
【図１３】
0004574021.tif 000014
【図１４】
0004574021.tif 000015
【図１５】
0004574021.tif 000016
【図１６】
0004574021.tif 000017