(57)【特許請求の範囲】
【請求項１】
画像を複数のブロックに分割し、該ブロック毎に動画像符号化処理を行う動画像符号化装置であって、
前記ブロックの列を示すブロックラインに含まれるブロックに対し、量子化された直交変換係数を含む符号化データを、ブロックライン毎に並列に生成する並列符号化処理部と、
前記ブロックラインに含まれる各ブロックの符号化で使用した量子化パラメータに対する量子化パラメータの予測値を、ブロックライン毎に並列に算出する並列ＱＰ予測部と、
前記ブロックラインに含まれる各ブロックに対し、前記符号化データと前記量子化パラメータの予測値とを用いてエントロピー符号化を、ブロックライン毎に並列に行う並列エントロピー符号化部と、を備え、
前記並列ＱＰ予測部は、
２以上の値を示すＮ個のブロックラインずつ並列処理する場合、Ｋ−１番目のブロックラインの処理ブロックの水平位置を、Ｋ番目のブロックラインの処理ブロックの水平位置よりも少なくとも１ブロック以上先に処理し、
処理ブロックがブロックラインの先頭である場合においては、処理ブロックが属するスライスを単位にして定まる量子化パラメータで処理ブロックの直前に処理されたブロックの量子化パラメータを初期化し、初期化した量子化パラメータに基づいて処理ブロックの前記量子化パラメータの予測値を算出し、
処理ブロックがブロックラインの先頭以外の場合においては、ブロックライン内のブロックの量子化パラメータに基づいて処理ブロックの前記量子化パラメータの予測値を算出し、
前記並列符号化処理部は、
前記並列ＱＰ予測部で算出した量子化パラメータの予測値と各ブロックの処理に使用した量子化パラメータおよび符号化の結果が全て0か否かの情報に基づいて処理ブロックの量子化パラメータを決定する動画像符号化装置。
【請求項２】
画像を複数のブロックに分割し、該ブロック毎に動画像符号化処理を行う動画像符号化装置が実行する動画像符号化方法であって、
前記ブロックの列を示すブロックラインに含まれるブロックに対し、量子化された直交変換係数を含む符号化データを、ブロックライン毎に並列に生成し、
前記ブロックラインに含まれる各ブロックの符号化で使用した量子化パラメータに対する量子化パラメータの予測値を、ブロックライン毎に並列に算出し、
前記ブロックラインに含まれる各ブロックに対し、前記符号化データと前記量子化パラメータの予測値とを用いてエントロピー符号化を、ブロックライン毎に並列に行う処理を有し、
前記予測値を算出する処理は、
２以上の値を示すＮ個のブロックラインずつ並列処理する場合、Ｋ−１番目のブロックラインの処理ブロックの水平位置を、Ｋ番目のブロックラインの処理ブロックの水平位置よりも少なくとも１ブロック以上先に処理し、
処理ブロックがブロックラインの先頭である場合においては、処理ブロックが属するスライスを単位にして定まる量子化パラメータで処理ブロックの直前に処理されたブロックの量子化パラメータを初期化し、初期化した量子化パラメータに基づいて処理ブロックの前記量子化パラメータの予測値を算出し、
処理ブロックがブロックラインの先頭以外の場合においては、ブロックライン内のブロックの量子化パラメータに基づいて処理ブロックの前記量子化パラメータの予測値を算出し、
前記符号化データを生成する処理は、
前記予測値を算出する処理で算出した量子化パラメータの予測値と各ブロックの処理に使用した量子化パラメータおよび符号化の結果が全て0か否かの情報に基づいて処理ブロックの量子化パラメータを決定する動画像符号化方法。
【請求項３】
画像を複数のブロックに分割し、該ブロック毎に動画像符号化処理を行う動画像符号化装置に実行させるための動画像符号化プログラムであって、
前記ブロックの列を示すブロックラインに含まれるブロックに対し、量子化された直交変換係数を含む符号化データを、ブロックライン毎に並列に生成し、
前記ブロックラインに含まれる各ブロックの符号化で使用した量子化パラメータに対する量子化パラメータの予測値を、ブロックライン毎に並列に算出し、
前記ブロックラインに含まれる各ブロックに対し、前記符号化データと前記量子化パラメータの予測値とを用いてエントロピー符号化を、ブロックライン毎に並列に行う処理を有し、
前記予測値を算出する処理は、
２以上の値を示すＮ個のブロックラインずつ並列処理する場合、Ｋ−１番目のブロックラインの処理ブロックの水平位置を、Ｋ番目のブロックラインの処理ブロックの水平位置よりも少なくとも１ブロック以上先に処理し、
処理ブロックがブロックラインの先頭である場合においては、処理ブロックが属するスライスを単位にして定まる量子化パラメータで処理ブロックの直前に処理されたブロックの量子化パラメータを初期化し、初期化した量子化パラメータに基づいて処理ブロックの前記量子化パラメータの予測値を算出し、
処理ブロックがブロックラインの先頭以外の場合においては、ブロックライン内のブロックの量子化パラメータに基づいて処理ブロックの前記量子化パラメータの予測値を算出し、
前記符号化データを生成する処理は、
前記予測値を算出する処理で算出した量子化パラメータの予測値と各ブロックの処理に使用した量子化パラメータおよび符号化の結果が全て０か否かの情報に基づいて処理ブロックの量子化パラメータを決定する動画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各ピクチャを複数のブロックに分割してブロックごとに処理する動画像符号化装置、動画像符号化方法、動画像符号化プログラムに関する。
【背景技術】
【０００２】
近年の動画像符号化では、画像をブロックに分割し、ブロックに含まれる画素を予測して予測差分を符号化することで高い圧縮率を達成している。符号化対象のピクチャ内の画素から予測画素を構成する予測モードをイントラ予測といい、動き補償と呼ばれる過去に符号化した参照画像から予測画素を構成する予測モードをインター予測という。
【０００３】
動画像符号化装置において、インター予測では、予測画素として参照する領域を動きベクトルという水平成分・垂直成分の２次元座標データで表現し、動きベクトルと画素の予測差分データを符号化する。動きベクトルは、その符号量を抑えるため、符号化対象ブロックに隣接するブロックの動きベクトルから予測ベクトルを生成し、動きベクトルと予測ベクトルとの差分ベクトルを符号化する。
【０００４】
ＭＰＥＧ（Moving Picture Experts Group）−４ ＡＶＣ／Ｈ．２６４（以下、Ｈ．２６４ともいう）、規格化作業中のＨＥＶＣ（High Efficiency Video Coding）に代表される動画像標準規格では、各ブロックはラスタ順序でアドレスづけされて、処理順序はそのアドレスの順序で規定される。
【０００５】
動画像符号化・復号処理では、１秒あたりの処理画素数が膨大で、特に動き補償や直交変換などに、高い演算性能が必要となるため、並列化処理が重要である。動画像符号化においては、上記した予測ベクトルのように処理済みの周辺ブロックから各種予測値を算出するために、ブロック間に依存関係が存在する。よって、ブロックごとに並列処理を行うことは難しい。
【０００６】
標準規格上の処理順序やブロックの依存関係に影響を与えずに、ブロックごとの並列処理を達成する手法として、処理ブロックの水平位置をずらしながらブロックラインごとに並列処理する方法が挙げられる。
【０００７】
以下では、このような並列化処理をブロックライン並列処理と呼ぶこととする。次に、２ブロックラインのブロックライン並列処理を行う場合に関して簡単に説明する。
【０００８】
動画像処理装置は、ブロックラインを並列処理するため、ブロックライン単位に処理する処理ユニットを持ち、ユニット１とユニット２とする。例えばユニット１は、奇数ブロックライン、ユニット２は、偶数ブロックラインを処理する。
【０００９】
図１は、ブロックライン並列処理を説明するための図である。図１に示すように、ユニット１が処理する１番目のブロックライン（１ブロックライン目）のブロックの水平アドレスと、ユニット２が処理する２番目のブロックライン（２ブロックライン目）のブロックの水平アドレスとを２ブロック以上ずらす。
【００１０】
これにより、ユニット２の処理ブロックＸに注目すると、その処理ブロックＸの左ブロックＡとともに、ユニット１が処理する左上ブロックＢと上ブロックＣと右上ブロックＤは処理済みである。ブロックＸでは、これらの処理済みブロックの符号化結果を利用することができる。
【００１１】
例えば、奇数ブロックラインの終了を待たずに、偶数ブロックラインの処理を開始できるため、動き予測や直交変換などの処理に関して並列化を達成することができる。以上では、２ブロックライン並列処理の場合を説明したが、Ｎブロックライン並列処理にした場合も、動画像処理装置に対し、Ｎブロックライン単位にＮ個のユニットを割り当てればよい。
【００１２】
なお、プログラムとしてブロックライン並列処理を実行する場合、処理ユニットは、スレッドとしてもよいし、ＣＰＵ（Central Processing Unit）としてもよい。
【００１３】
Ｈ．２６４では、エントロピー符号化に関しては、出力ビット系列の順序を、標準規格上の処理ブロックの順序で処理する。そのため、動画像処理装置は、上記のブロックライン並列処理を行った結果を一旦保存し、標準規格上の処理ブロックの順序でエントロピー符号化処理する。
【００１４】
これに対し、ＨＥＶＣにおいては、出力ビット系列の順序をブロックラインごとにインターリーブする技術が開示されている。図２は、ＨＥＶＣにおけるエントロピー処理部のブロックライン並列処理を説明するための図である。図２に示すように、エントロピー符号化・復号処理に関しても、ブロックラインごとに並列化処理を行うことができる。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】ISO/IEC 14496-10 (MPEG-4 Part 10) ／ ITU-T Rec.H.264
【非特許文献２】Thomas Wiegand、Woo-Jin Han、Benjamin Bross、Jens-Rainer Ohm、Gary J. Sullivan、"Working Draft 5 of High-Efficiency Video Coding" JCTVC-G1103, JCT-VC 7th Meeting, 2011年12月
【非特許文献３】ＨＥＶＣ参照ソフトウェア  ＨＭ５．０  "https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/HM-5.0/"
【非特許文献４】MPEG-2, Test Model 5 (TM5), Doc. ISO/IEC JTC1/SC29/WG11/N0400, Test Model Editing Committee, April 1993.
【発明の概要】
【発明が解決しようとする課題】
【００１６】
Ｈ．２６４やＨＥＶＣに代表される動き補償と直交変換処理（例えばＤＣＴ（Discrete Cosine Transform））とを組み合わせたハイブリッド符号化方式では、画像をブロックに分割し、各ブロックの予測画素を生成し、原画素と予測画素の差分画素に対して、ＤＣＴなどの直交変換を行い、直交変換の出力係数を量子化することで、圧縮を実現する。
【００１７】
情報量を制御するために、量子化の精度を調整する量子化パラメータ（ＱＰ（Quantization Parameter）とも呼ぶ）を用意し、ブロックごとにＱＰ値を符号化する。
【００１８】
ただし、変換係数が全て０のブロックの場合、逆量子化した結果も全て０となり、復号処理においてＱＰを必要としないため、このような場合には、このＱＰは無効となり、ＱＰ値は符号化されない。
【００１９】
各ブロックで、ＱＰの予測値（ＱＰ予測値とも呼ぶ）が生成されるため、処理ブロックのＱＰが無効となった場合、処理ブロックのＱＰ値は、ＱＰの予測値に設定される。ブロックごとのＱＰ値の決定方法としては、非特許文献４に記載されたＴＭ５で用いられるアルゴリズムが知られている。
【００２０】
Ｈ．２６４やＨＥＶＣにおける、ＱＰ値の符号化方法は、処理ブロックのＱＰ値とＱＰ予測値との差分値ＱＰ＿ＤＥＬＴＡを符号化する。ＱＰ予測値は、例えば、ラスタ順序で処理ブロックの直前のＱＰ値であるＱＰprevである。ＱＰ＿ＤＥＬＴＡは、次の式（１）で算出される。
ＱＰ＿ＤＥＬＴＡ＝ＱＰ−ＱＰprev  ・・・式（１）
動画像復号装置は、動画像符号化装置においてエントロピー符号化されたＱＰ＿ＤＥＬＴＡを復号し、式（２）においてＱＰ値を復元する。
ＱＰ＝ＱＰ＿ＤＥＬＴＡ＋ＱＰprev  ・・・式（２）
処理ピクチャの最初のブロックなど直前のブロックが存在しない場合、ＱＰprevは、最初のブロックの処理に先だって決定することができる値とすればよい。例えば、Ｈ．２６４においては、ピクチャ先頭ブロックのＱＰprevは、Ｓｌｉｃｅというヘッダ情報に記載されたＳｌｉｃｅＱＰ値となる。
【００２１】
また、Ｈ．２６４やＨＥＶＣでは、直交変換の量子化以外にも、デブロッキングフィルタのフィルタ強度決定に、各ブロックのＱＰ値を使用する。無効になったＱＰは、動画像復号装置に通知されないため、ＱＰが無効になったブロックのＱＰ値は、ＱＰprevとして処理される。
【００２２】
ここで、ブロックライン並列処理の、Ｋ−１ブロックラインと、Ｋブロックラインに着目する。Ｋブロックラインの処理開始時に、Ｋブロックラインの先頭のＸブロックを処理するとき、Ｋ−１ブロックラインの２ブロックずれた程度しか処理が完了していない。Ｋブロックラインの先頭ブロックのラスタ順序で前に位置するブロックは、K−１ブロックラインの最終ブロックＹであるため、Ｙブロックの処理はまだ終わっていない。
【００２３】
このため、Ｘブロックを処理するときには、ＱＰprevが確定しないという課題がある。ＸブロックのＱＰprevが確定しないため、Ｘブロックの次のブロックのＱＰprevも確定しない。
【００２４】
よって、ＱＰ予測値の算出は、ブロックラインごとに並列にできずに、逐次処理となってしまう。図３は、従来のブロックライン並列処理を行う動画像処理装置の概略構成を示すブロック図である。
【００２５】
図３Ａは、従来のブロックライン並列処理を行う符号化装置の概略構成を示すブロック図である。図３Ｂは、従来のブロックライン並列処理を行う復号装置の概略構成を示すブロック図である。
【００２６】
図３に示すように、従来の動画像処理装置では、ＱＰ予測値を算出するＱＰ予測部がボトルネックとなってしまう。
【００２７】
図４Ａは、ＱＰ予測処理におけるブロックライン並列処理（その１）を示す図である。図４Ａに示す例では、１番目のブロックラインと２番目のブロックラインを並列処理しているとする。このとき、２番目のブロックラインの処理ブロックをＸとしたときに、ＸのＱＰ予測値を算出するには、ブロックＹの処理完了まで待機する必要がある。２番目のブロックラインの処理は、１番目のブロックラインの処理を完了しないと開始することができない。
【００２８】
図４Ｂは、ＱＰ予測処理におけるブロックライン並列処理（その２）を示す図である。図４Ｂに示すように、ブロックＹの処理が完了すると、２番目のブロックラインの処理が開始できるようになる。
【００２９】
図４Ｃは、ＱＰ予測処理におけるブロックライン並列処理（その３）を示す図である。図４Ｃに示す例では、１番目のブロックラインを処理していたＱＰ予測部が、３番目のブロックラインのブロックＷのＱＰ値を算出するためには、２番目のブロックラインのブロックＶの処理が完了するまで待機する。
【００３０】
すなわち、３番目のブロックラインの処理は、２番目のブロックラインの処理が完了しないと開始することはできない。このように、Ｋ番目のブロックラインの処理を開始するにはＫ−１番目のブロックラインの処理が完了していることが要求されるため、従来技術では、このＱＰ予測値を算出する処理は逐次処理となってしまう。
【００３１】
符号化処理部を並列化し、ＱＰ予測部を逐次的に処理する場合、次のような問題が発生する。ブロックＸにおけるＱＰprevが確定していないため、例えば、Ｋ番目のブロックラインの先頭でＱＰ＿ＤＥＬＴＡが算出できずに、ブロックＹの処理が完了するまで、ブロックＸのエントロピー処理が開始できないという問題が発生する。
【００３２】
よって、エントロピー処理の開始が遅延するため、符号化処理部の結果を保存しておくバッファが増加してしまう。同様に、デブロックキングフィルタの処理を開始することができないという問題も発生する。
【００３３】
動画像復号装置について、同様にブロックライン並列処理を考える。ＨＥＶＣにおいては、エントロピー復号処理は、ブロックラインごとに並列に処理することができる。上記と同様に、Ｋ−１番目のブロックラインとＫ番目のブロックラインに着目し、Ｋ番目のブロックラインの先頭ブロックＸのＱＰ復元処理を考えると、ブロックＸのＱＰ＿ＤＥＬＴＡが復号できた時点では、ブロックＹのＱＰ＿ＤＥＬＴＡは復号できていないため、ＹのＱＰ値を復元することはできない。
【００３４】
ブロックＸのＱＰ予測値であるＱＰprevは、ブロックＹのＱＰ値であるため、ブロックＸのＱＰ予測値の算出は行うことができず、ブロックＸのＱＰ値が復元できない。このため、動画像符号化装置と同様に各ブロックのＱＰ予測値の算出は、逐次処理となってしまい、並列処理のボトルネックとなる。
【００３５】
そこで、開示の技術は、ＱＰ予測値の算出処理を並列化することを可能とし、ブロックライン並列処理の効率を向上させることを目的とする。
【課題を解決するための手段】
【００３６】
開示の一態様における動画像符号化装置は、画像を複数のブロックに分割し、該ブロック毎に動画像符号化処理を行う動画像符号化装置であって、前記ブロックの列を示すブロックラインに含まれるブロックに対し、量子化された直交変換係数を含む符号化データを、ブロックライン毎に並列に生成する並列符号化処理部と、前記ブロックラインに含まれる各ブロックの符号化で使用した量子化パラメータに対する量子化パラメータの予測値を、ブロックライン毎に並列に算出する並列ＱＰ予測部と、前記ブロックラインに含まれる各ブロックに対し、前記符号化データと前記量子化パラメータの予測値とを用いてエントロピー符号化を、ブロックライン毎に並列に行う並列エントロピー符号化部と、を備え、前記並列ＱＰ予測部は、２以上の値を示すＮ個のブロックラインずつ並列処理する場合、Ｋ−１番目のブロックラインの処理ブロックの水平位置を、Ｋ番目のブロックラインの処理ブロックの水平位置よりも少なくとも１ブロック以上先に処理し、処理ブロックがブロックラインの先頭である場合においては、前記並列処理で処理が完了しているブロックに含まれる量子化パラメータ又は、処理ブロックが属するスライスを単位にして定まる量子化パラメータで処理ブロックの直前に処理されたブロックの量子化パラメータを初期化し、初期化した量子化パラメータに基づいて処理ブロックの前記量子化パラメータの予測値を算出し、処理ブロックがブロックラインの先頭以外の場合においては、ブロックライン内のブロックの量子化パラメータに基づいて処理ブロックの前記量子化パラメータの予測値を算出し、前記並列符号化処理部は、前記並列ＱＰ予測部で算出した量子化パラメータの予測値と各ブロックの処理に使用した量子化パラメータおよび符号化の結果が全て0か否かの情報に基づいて処理ブロックの量子化パラメータを決定する。
【発明の効果】
【００３７】
開示の技術によれば、ＱＰ予測値の算出処理を並列化することを可能とし、ブロックライン並列処理の効率を向上させることができる。
【図面の簡単な説明】
【００３８】
【図１】ブロックライン並列処理を説明するための図。
【図２】ＨＥＶＣにおけるエントロピー処理部のブロックライン並列処理を説明するための図。
【図３Ａ】従来のブロックライン並列処理を行う符号化装置の概略構成を示すブロック図。
【図３Ｂ】従来のブロックライン並列処理を行う復号装置の概略構成を示すブロック図。
【図４Ａ】ＱＰ予測処理におけるブロックライン並列処理（その１）を示す図。
【図４Ｂ】ＱＰ予測処理におけるブロックライン並列処理（その２）を示す図。
【図４Ｃ】ＱＰ予測処理におけるブロックライン並列処理（その３）を示す図。
【図５】実施例１における動画像復号装置の構成の一例を示すブロック図。
【図６】実施例１における並列復号部の各部の構成の一例を示すブロック図。
【図７】実施例１における復号処理部の構成の一例を示すブロック図。
【図８】Ｎ＝３の場合の並列ＱＰ予測処理における利用可能ブロックの一例を示す図。
【図９】実施例１におけるＱＰ予測部の構成の一例を示すブロック図。
【図１０Ａ】実施例１におけるＱＰ予測処理（その１）の一例を示す図。
【図１０Ｂ】実施例１におけるＱＰ予測処理（その２）の一例を示す図。
【図１１】実施例１におけるブロック復号処理の一例を示すフローチャート。
【図１２】実施例２における動画像符号化装置の構成の一例を示すブロック図。
【図１３】実施例２における並列符号化部の各部の構成の一例を示すブロック図。
【図１４】実施例２における符号化処理部の構成の一例を示すブロック図。
【図１５】実施例２におけるＱＰ予測部の構成の一例を示すブロック図。
【図１６】実施例２におけるブロック符号化処理の一例を示すフローチャート。
【図１７】実施例３における動画像処理装置の構成の一例を示すブロック図。
【発明を実施するための形態】
【００３９】
以下、添付図面を参照しながら各実施例について詳細に説明する。なお、動画像に含まれる画像（ピクチャ）は、フレーム又はフィールドの何れであってもよい。フレームは、動画像データ中の一つの静止画像であり、一方、フィールドは、フレームから奇数行のデータあるいは偶数行のデータのみを取り出すことにより得られる静止画像である。
【００４０】
また、処理対象の動画像は、カラー動画像であってもよく、又はモノクロ動画像であってもよい。
【００４１】
［実施例１］
＜構成＞
図５は、実施例１における動画像復号装置の構成の一例を示すブロック図である。図５に示す例では、動画像復号装置１０は、並列復号部１０１と、復号画素記憶部１０５とを有する。並列復号部１０１は、並列エントロピー復号部１０２と、並列ＱＰ予測部１０３と、並列復号処理部１０４とを有する。
【００４２】
なお、動画像復号装置１０は、Ｎ個のブロックラインを並列処理することとする。また、ブロックラインとは、例えば画像内における水平方向のブロック列をいう。
【００４３】
並列復号部１０１の各部は、各ブロックラインにおいて処理するブロックを同一のブロックとする。また、例えば、Ｋ−１番目のブロックラインの処理ブロックの水平位置は、Ｋ番目のブロックラインの処理ブロックの水平位置よりも２ブロック以上先とする。
【００４４】
これは、ブロックライン間で、水平位置が２ブロック以上ずれるようにすることで、各ブロックラインを並列に復号処理したとしても、処理ブロックの上と右上のブロックの復号情報が利用できるようにするためである。上ブロックのみの復号情報を利用する場合は、ブロックライン間の水平位置のずれ量は１ブロックでよい。以下では、上ブロックは、処理ブロックの１ブロック上のブロックを示し、右上ブロックは、処理ブロックの１ブロック上のブロックの右に隣接するブロックを示す。
【００４５】
並列復号部１０１は、複数のブロックに分割された画像に対し、動画像符号化方式を用いて符号化されたストリームを、例えばＮ個のブロックラインで並列処理して復号する。ブロックラインのブロック毎に復号された画素は、復号画素記憶部１０５に出力される。復号された画素を復号画素という。
【００４６】
並列エントロピー復号部１０２は、入力されたストリームに対し、ブロックライン毎に分割し、ブロックライン毎に、このブロックラインに含まれるブロックのストリームを並列にエントロピー復号する。並列エントロピー復号部１０２は、エントロピー復号されたデータを並列復号処理部１０４に出力する。
【００４７】
並列ＱＰ予測部１０３は、ブロックラインに含まれる各ブロックの量子化パラメータ（ＱＰ）の予測値（ＱＰ予測値）を、ブロックライン毎に並列に算出する。算出されたＱＰ予測値を並列復号処理部１０４に出力する。
【００４８】
並列復号処理部１０４は、ブロックラインに含まれる各ブロックに対し、並列エントロピー復号部１０２により復号されたデータと、並列ＱＰ予測部１０３により算出されたＱＰ予測値とを用いて復号処理した復号画素を、ブロックライン毎に並列に生成する。生成された復号画素は復号画素記憶部１０５に出力される。
【００４９】
復号画素記憶部１０５は、並列復号部１０１から出力された各ブロックの復号画素を記憶する。復号画素は、画像単位で集合すると画像（ピクチャ）となる。復号画素記憶部１０５は、１ピクチャ分の復号処理が完了したときに、復号された画像が出力される。
【００５０】
《並列復号部》
次に、並列復号部１０１について説明する。図６は、実施例１における並列復号部１０１の各部の構成の一例を示すブロック図である。図６に示す例では、並列エントロピー復号部１０２は、第１エントロピー復号部２２１と、第２エントロピー復号部２２２と、第Ｎエントロピー復号部２２３とを有する。
【００５１】
図６に示す例では、並列ＱＰ予測部１０３は、第１ＱＰ予測部２３１と、第２ＱＰ予測部２３２と、第ＮＱＰ予測部２３３とを有する。図６に示す例では、並列復号処理部１０４は、第１復号処理部２４１と、第２復号処理部２４２と、第Ｎ復号処理部２４３と、ブロック情報保持部２４４とを有する。
【００５２】
ここで、Ｌ＝１〜Ｎに対して、第Ｌエントロピー復号部と、第ＬＱＰ予測部と、第Ｌ復号処理部とは、１つのブロックラインをそれぞれ対応して処理する。以下では、第Ｌエントロピー復号部と、第ＬＱＰ予測部と、第Ｌ復号処理部とを総称してブロックライン復号処理部と呼ぶ。例えば、ブロックライン復号処理部２０１は、第１エントロピー復号部２２１と、第１ＱＰ予測部２３１と、第１復号処理部２４１とを有する。
【００５３】
ブロックライン復号処理部は、Ｋ番目のブロックラインを処理すると、次は、Ｋ＋Ｎ番目のブロックラインを処理する。
【００５４】
並列エントロピー復号部１０２は、入力されたストリームをブロックライン毎に分割する。各エントロピー復号部２２１〜２２３は、分割されたストリームにおけるＮブロックライン単位で、各ブロックラインを並列にエントロピー復号する。各エントロピー復号部２２１〜２２３は、動画像符号化装置でのエントロピー符号化処理に対応するエントロピー復号処理を行う。
【００５５】
各復号処理部２４１〜２４３は、ブロックライン単位で並列に復号処理を行う。図７は、実施例１における復号処理部の構成の一例を示すブロック図である。各復号処理部２４１〜２４３は、いずれも同様の処理を行うため、以下では、第１復号処理部２４１を用いて説明する。
【００５６】
第１復号処理部２４１は、ＱＰ復元部３０１と、逆量子化部３０２と、逆直交変換部３０３と、動きベクトル復元部３０４と、予測画素生成部３０５と、復号画素生成部３０６とを有する。
【００５７】
ＱＰ復元部３０１は、後述する第１ＱＰ予測部２３１から入力されたＱＰ予測値と、第１エントロピー復号部２２１から入力されたＱＰ差分値とを用いてＱＰ値を復元する（例えば式（２）参照）。復元されたＱＰ値は、逆量子化部３０２に出力される。
【００５８】
逆量子化部３０２は、復元されたＱＰ値と直交変換係数とを乗算することで逆量子化を行う。逆量子化された直交変換係数は、逆直交変換部３０３に出力される。
【００５９】
逆直交変換部３０３は、逆量子化部３０２から入力された直交変換係数に対して、逆直交変換処理を行い、予測誤差画素を生成する。生成された予測誤差画素は、復号画素生成部３０６に出力される。
【００６０】
動きベクトル復元部３０４は、ブロック情報記憶部２４４から、処理ブロックの周辺ブロックの動きベクトル情報を取得し、予測ベクトルを算出する。動きベクトル復元部３０４は、予測ベクトルと、第１エントロピー復号部２２１から入力された差分ベクトルとを加算することにより、動きベクトルが復元される。復元された動きベクトルは、予測画素生成部３０５に出力される。
【００６１】
予測画素生成部３０５は、過去に復号したピクチャが保存されている復号画素記憶部１０５から動きベクトルが指す参照ピクチャの画素データを取得し、予測画素を生成する。生成された予測画素は、復号画素生成部３０６に出力される。
【００６２】
復号画素生成部３０６は、予測画素生成部３０５から入力された予測画素と、逆直交変換部３０３から入力された予測誤差画素とを加算し、復号画素を生成する。生成された復号画素は、復号画素記憶部１０５に記憶される。
【００６３】
次に、各ＱＰ予測部の処理について説明する。まず、各ＱＰ予測部による予測処理で、利用可能なブロックを説明する。図８は、Ｎ＝３の場合の並列ＱＰ予測処理における利用可能ブロックの一例を示す図である。図８に示す例では、Ｎ＝３であり、各ブロックラインで、２ブロックずつ遅延させて並列処理される。
【００６４】
このとき、処理ブロックＸに対し、利用可能なブロックは、図８に示す網掛けブロックである。図８に示す網掛けブロックは、処理ブロックを処理する際に、既に処理が完了しているブロック、つまり利用可能なブロックを示す。図８に示す太線枠のブロックは、処理対象のブロック（処理ブロックとも呼ぶ）を示す。各ＱＰ予測部は、処理ブロックのＱＰ予測値を算出する際、利用可能ブロック（処理完了ブロック）を参照することでＱＰ予測値を求める。以下では、このＱＰ予測値の求め方について詳述する。
【００６５】
図９は、実施例１におけるＱＰ予測部の構成の一例を示すブロック図である。各ＱＰ予測部２３１〜２３３は、いずれも同様の処理を行うため、以下では、第１ＱＰ予測部２３１を用いて説明する。
【００６６】
図９に示す第１ＱＰ予測部２３１は、直前ＱＰ記憶部４０１と、ＱＰ選択部４０２と、上ＱＰ取得部４０３とを有する。
【００６７】
直前ＱＰ記憶部４０１は、現在の処理ブロックの直前に処理されたブロックのＱＰ値をＱＰ復元部３０１から受け取り、記憶している。直前ＱＰ記憶部４０１が記憶しているＱＰ値は、ピクチャ処理開始時に初期化される。
【００６８】
例えば、Ｈ．２６４と同様にＳｌｉｃｅヘッダ情報に符号化されたＳｌｉｃｅＱＰ値で初期化する。Ｓｌｉｃｅは、１ピクチャに属するブロックをグループに分割したときの単位である。
【００６９】
上ＱＰ取得部４０３は、ブロック情報記憶部２４４から、例えば、処理ブロックの上に位置するブロックのＱＰ値を取得する。
【００７０】
ＱＰ選択部４０２は、直前ＱＰ記憶部４０１か、あるいは、上ＱＰ取得部４０３かのいずれかの出力するＱＰ値を選択して、ＱＰ予測値としてＱＰ復元部３０１に出力する。
【００７１】
例えば、ＱＰ選択部４０２は、処理ブロックがブロックライン先頭のブロックであれば、上ＱＰ取得部４０３から出力されたＱＰ値を選択し、処理ブロックがブロックライン先頭以外のブロックであれば、直前ＱＰ記憶部４０１から出力されたＱＰ値を選択する。ＱＰ選択部４０２は、選択したＱＰ値をＱＰ予測値として、ＱＰ復元部３０１に出力する。
【００７２】
上記例の場合のＱＰ値の予測（選択）について図を用いて説明する。図１０Ａは、実施例１におけるＱＰ予測処理（その１）の一例を示す図である。図１０Ａに示す例では、処理ブロックＸの位置を処理ブロックとしたとき、図１０Ａに示すように処理ブロックＸが先頭ブロックであるときには、上ブロックＡのＱＰ値がＱＰ選択部４０２により選択される。
【００７３】
図１０Ｂは、実施例１におけるＱＰ予測処理（その２）の一例を示す図である。図１０Ｂに示すように、処理ブロックＸが、先頭ブロック以外の場合では、直前に処理したブロックＢのＱＰ値がＱＰ選択部４０２により選択される。
【００７４】
ここで、処理ブロックＸに近いブロックのＱＰ値がＱＰ予測値として使用されるため、ラスタ順序で直前のＱＰ値を使用した場合と比較して、ＱＰ値の予測効率はほとんど低下しない。
【００７５】
上記例では、ブロックラインの先頭以外では直前に処理したブロックのＱＰ値を用いてＱＰ予測値を生成したが、処理ブロックに隣接するブロックから予測するのであれば、他の方法でＱＰ値を生成してもよい。
【００７６】
また、ＱＰ選択部４０２の処理は、次のような処理であってもよい。処理するブロックラインが２〜Ｎ番目のブロックラインのときは、直前ＱＰ記憶部４０１が保存しているＱＰ値はＳｌｉｃｅＱＰ値であり、Ｓｌｉｃｅ単位に１つ定まる値である。そのため、各ブロックのＱＰ予測値として、ＳｌｉｃｅＱＰ値を採用するには、予測効率があまりよくないと考えられる。
【００７７】
そこで、ＱＰ選択部４０２は、処理するブロックラインが２〜Ｎ番目のブロックラインの先頭ブロックが処理されるときは、上ＱＰ取得部４０３が取得したＱＰ値を選択し、それ以外では、直前ＱＰ記憶部４０１が保持したＱＰ値を選択してもよい。
【００７８】
また、ＱＰ選択部４０２は、Ｎ＋１番目以降のブロックラインの先頭ブロックを処理するときは、直前ＱＰ記憶部４０１が保持しているＱＰ値を選択する。このときの直前ＱＰ記憶部４０１が保持しているＱＰ値は、処理ブロックのＮブロック上に位置するブロックラインの最後のブロック（最終ブロックとも呼ぶ）のＱＰ値である。
【００７９】
Ｋ番目のブロックラインとＫ＋Ｎ番目のブロックラインは、同一の復号処理部とＱＰ予測部とエントロピー復号部とで処理されるため、Ｋ番目のブロックラインの処理ブロックの直前に処理したブロックは、Ｋ−Ｎ番目のブロックラインの最後のブロックである。
【００８０】
さらに、ＱＰ選択部４０２は、ブロックラインの先頭ブロックでは、常に直前ＱＰ記憶部４０１に記憶されるＱＰ値を採用するようにしてもよい。また、ＱＰ選択部４０２は、処理するブロックラインが１〜Ｎ番目のブロックラインの先頭ブロックであるときは、ＱＰ予測値はＳｌｉｃｅＱＰ値としてもよい。
【００８１】
このとき、同様にＮ＋１番目のブロックラインの先頭ブロックのＱＰ予測値は、Ｎブロック上に位置するブロックラインの最後のブロックのＱＰ値としてもよい。
【００８２】
以上の構成を有することで、量子化パラメータの予測値を求める処理を、ブロックライン毎に並列処理することができる。
【００８３】
＜動作＞
次に、実施例１における動画像復号装置１０の動作について説明する。図１１は、実施例１におけるブロック復号処理の一例を示すフローチャートである。図１１に示すブロック復号処理は、１ブロックの処理である。
【００８４】
ステップＳ１０１で、各エントロピー復号部は、入力されたストリームから各ブロックの差分動きベクトル、ＱＰ差分値、量子化された直交変換係数などの符号化情報をエントロピー復号する。これらのエントロピー復号された情報は、処理されたエントロピー復号部に対応する復号処理部に出力する。
【００８５】
ステップＳ１０２で、復号処理部の動きベクトル復元部３０４は、ブロック情報記憶部２４４から周辺ブロックの動きベクトル情報を取得し、予測ベクトルを算出する。
【００８６】
ステップＳ１０３で、動きベクトル復元部３０４は、差分動きベクトルと予測ベクトルとを加算することで、動きベクトルを復元する。復元された動きベクトルの情報は、ブロック情報記憶部２４４に記憶される。
【００８７】
ステップＳ１０４で、予測画素生成部３０５は、過去に復号されたピクチャが保存されている復号画素記憶部１０５から動きベクトルが指す参照ピクチャの画素データを取得し、予測画素を生成する。
【００８８】
ステップＳ１０５で、各ＱＰ予測部は、処理ブロックのＱＰ予測値を生成し、ＱＰ復元部３０１に入力する。
【００８９】
ステップＳ１０６で、ＱＰ復元部３０１は、入力されたＱＰ予測値とＱＰ差分値とからＱＰ値を復元する。ＱＰ値は、逆量子化部３０２に入力されるとともにブロック情報記憶部２４４に保存される。ＱＰ予測値は、処理ブロックの上ブロックあるいは、ブロックライン復号処理部２０１が過去に処理したブロックのＱＰ値とすることで、ＱＰ予測値の生成を待機する必要がなくなり、並列処理の効率が向上する。
【００９０】
ステップＳ１０７で、逆量子化部３０２は、量子化された直交変換係数と、ＱＰ値とを乗算する。
【００９１】
ステップＳ１０８で、逆直交変換部３０３は、逆量子化された直交変換係数に対し、逆直交変換処理を行い、予測誤差画素を生成する。
【００９２】
ステップＳ１０９で、復号画素生成部３０６は、予測誤差画素と予測画素とを加算し、復号画素を生成する。
【００９３】
ステップＳ１１０で、復号画素記憶部１０５は、復号画素を記憶する。以上の処理で、ブロックの復号処理が終了し、次のブロックの復号処理に移行する。１ピクチャに含まれるすべてのブロックの復号処理が終了したときに、復号画素記憶部１０５に記憶された復号画像は、例えばディスプレイなどの表示部に出力される。
【００９４】
以上、実施例１によれば、動画像復号装置において、ＱＰ予測値の算出処理を並列化することを可能とし、ブロックライン並列処理の効率を向上させることができる。
【００９５】
［実施例２］
次に、実施例２における動画像符号化装置について説明する。実施例２では、実施例１に対応して、ブロックライン単位でＱＰの予測処理を並列化する。
【００９６】
＜構成＞
図１２は、実施例２における動画像符号化装置５０の構成の一例を示すブロック図である。図１２に示す例では、動画像復号装置５０は、並列符号化部５０１と、復号画素記憶部５０５とを有する。並列符号化部５０１は、並列符号化処理部５０２と、並列ＱＰ予測部５０３と、並列エントロピー符号化部５０４とを有する。なお、動画像符号化装置５０は、Ｎ個のブロックラインを並列処理することとする。
【００９７】
並列符号化部５０１の各部は、各ブロックラインにおいて処理するブロックを同一のブロックとする。また、例えば、Ｋ−１番目のブロックラインの処理ブロックの水平位置は、Ｋ番目のブロックラインの処理ブロックの水平位置よりも２ブロック以上先とする。
【００９８】
これは、ブロックライン間で、水平位置が２ブロック以上ずれるようにすることで、各ブロックラインを並列に符号化処理したとしても、処理ブロックの上と右上のブロックの符号化情報が利用できるようにするためである。上ブロックのみの復号情報を利用する場合は、ブロックライン間の水平位置のずれ量は１ブロックでよい。
【００９９】
並列符号化部５０１は、画像を複数のブロックに分割し、動画像符号化方式を用いて例えばＮ個のブロックラインで並列処理して符号化する。並列符号化部５０１で、局所復号された復号画素は、復号画素記憶部５０５に記憶される。
【０１００】
並列符号化処理部５０２は、ブロックライン毎に、このブロックラインに含まれるブロックに対し、量子化された直交変換係数、差分動きベクトル情報などを並列に生成する。生成された直交変換係数や差分動きベクトル情報（符号化データとも呼ぶ）は、並列エントロピー符号化部５０４に出力される。量子化で用いられたＱＰ値は、並列ＱＰ予測部５０３に出力される。
【０１０１】
並列ＱＰ予測部５０３は、ブロックラインに含まれる各ブロックの量子化パラメータ（ＱＰ）の予測値（ＱＰ予測値）を、ブロックライン毎に並列に算出する。算出されたＱＰ予測値を並列エントロピー符号化部５０４に出力する。
【０１０２】
並列エントロピー符号化部５０４は、ブロックラインに含まれる各ブロックに対し、量子化された直交変換係数、ＱＰ値とＱＰ予測値との差分であるＱＰ差分値、差分動きベクトル情報などを用いてエントロピー符号化を、ブロックライン単位で並列に行う。並列エントロピー符号化部５０４で符号化されたストリームは、動画像復号装置１０などに出力される。
【０１０３】
復号画素記憶部５０５は、並列符号化部５０１から出力された各ブロックの局所的な復号画素を記憶する。局所的な復号は、ローカルデコードなどとも呼ばれる。
【０１０４】
《並列符号化部》
次に、並列符号化部５０１について説明する。図１３は、実施例２における並列符号化部５０１の各部の構成の一例を示すブロック図である。図１３に示す例では、並列符号化処理部５０２は、第１符号化処理部６２１と、第２符号化処理部６２２と、第Ｎ符号化処理部６２３と、ブロック情報記憶部６２４とを有する。
【０１０５】
図１３に示す例では、並列ＱＰ予測部５０３は、第１ＱＰ予測部６３１と、第２ＱＰ予測部６３２と、第ＮＱＰ予測部６３３とを有する。図１３に示す例では、並列エントロピー符号化部５０４は、第１エントロピー符号化部６４１と、第２エントロピー符号化部６４２と、第Ｎエントロピー符号化部６４３とを有する。
【０１０６】
ここで、Ｌ＝１〜Ｎに対して、第Ｌ符号化処理部と、第ＬＱＰ予測部と、第Ｌエントロピー符号化部とは、１つのブロックラインをそれぞれ対応して処理する。以下では、第Ｌ符号化処理部と、第ＬＱＰ予測部と、第Ｌエントロピー符号化部とを総称してブロックライン符号化処理部と呼ぶ。
【０１０７】
例えば、ブロックライン符号化処理部６０１は、第１符号化処理部６２１と、第１ＱＰ予測部６３１と、第１エントロピー符号化部６４１とを有する。
【０１０８】
ブロックライン符号化処理部は、Ｋ番目のブロックラインを符号化処理すると、次は、Ｋ＋Ｎ番目のブロックラインを符号化処理する。
【０１０９】
並列符号化処理部５０２は、入力された画像を複数のブロックラインに分割する。各符号化処理部６２１〜６２３は、ブロックライン単位で並列に符号化処理を行う。符号化処理は、例えばＨ．２６４やＨＥＶＣなどの符号化処理である。
【０１１０】
図１４は、実施例２における符号化処理部の構成の一例を示すブロック図である。各符号化処理部６２１〜６２３は、いずれも同様の処理を行うため、以下では、第１符号化処理部６２１を用いて説明する。
【０１１１】
第１符号化処理部６２１は、予測差分部７０１と、直交変換部７０２と、量子化部７０３と、ＱＰ確定部７０４と、逆量子化部７０５と、逆直交変換部７０６と、復号画素生成部７０７と、動き検出部７０８と、予測信号生成部７０９と、差分ベクトル生成部７１０とを有する。
【０１１２】
動き検出部７０８は、復号画素記憶部５０５から参照ピクチャの画素データを取得し、動きベクトルの検出を行う。検出された動きベクトルの情報は、ブロック情報記憶部６２４に記憶され、次のブロックの符号化に利用される。
【０１１３】
予測信号生成部７０９は、入力された参照画像の領域位置情報に基づいて、復号画素記憶部５０５から参照画素を取得し、予測画素信号を生成する。生成された予測画素信号は、予測差分部７０１に出力される。
【０１１４】
差分ベクトル生成部７１０は、予測ベクトルを生成する。予測ベクトルは、一例として処理ブロックの左と上と、右上に位置するブロックの動きベクトルをブロック情報記憶部６２４から取得し、３つの動きベクトルのうち、中間値を予測ベクトルとする。
【０１１５】
上述したように、各ブロックラインは、例えば水平に２ブロックずつずれて処理しているため、処理ブロックの上と右上のブロックの符号化処理は完了している。そのため、差分ベクトル生成部７１０は、周辺ブロックの動きベクトルを取得することができる。
【０１１６】
差分ベクトル生成部７１０は、動き検出部７０８から処理ブロックの動きベクトルを取得し、動きベクトルと予測ベクトルとの差分ベクトルを生成する。生成された差分ベクトルは、第１エントロピー符号化部６４１に出力される。
【０１１７】
予測差分部７０１は、原画像と、予測画素信号との差分を算出することで、予測誤差信号を生成する。予測誤差信号は、直交変換部７０２に出力される。
【０１１８】
直交変換部７０２は、予測誤差信号に対して、例えば離散コサイン変換などの直交変換処理を行う。変換された直交変換係数は、量子化部７０３に出力される。
【０１１９】
量子化部７０３は、量子化パラメータ（ＱＰ）値に基づいて、直交変換係数を量子化する。量子化手法の一例としては、直交変換係数をＱＰで定まる値によって除算し、整数値に丸める方法である。量子化された直交変換係数をＱＰ値で乗算すれば、逆量子化することができる。丸める処理によって、量子化は不可逆な変換となる。量子化された直交変換係数は、第１エントロピー符号化部６４１に出力される。
【０１２０】
また、量子化部７０３は、量子化された直交変換係数がすべて０であった否かのフラグ情報を生成し、量子化で使用したＱＰ値とともに、ＱＰ確定部７０４に出力する。ＱＰ値は、逆量子化部７０５、第１ＱＰ予測部６３１に出力される。
【０１２１】
第１ＱＰ予測部６３１は、処理ブロックのＱＰ予測値を生成する。生成されたＱＰ予測値は、ＱＰ確定部７０４及び第１エントロピー符号化部６４１に出力される。
【０１２２】
ＱＰ予測値は、処理ブロックの上ブロックあるいは、第１ＱＰ予測部６３１が所属しているブロックライン符号化処理部が過去に処理したブロックのＱＰ値とすることで、ＱＰ予測値の生成を待機する必要がなくなり、並列処理の効率が向上する。
【０１２３】
ＱＰ確定部７０４は、量子化部７０３から入力されたＱＰ値とＱＰ予測値とから、処理ブロックのＱＰを確定する。直交変換係数がすべて０であった場合、ＱＰ差分情報は、エントロピー符号化されないため、量子化部７０３で使用したＱＰ値は、復号装置側に通知されないので無効になる。
【０１２４】
例えば、ＱＰ確定部７０４は、量子化部７０３が生成した量子化された直交変換係数がすべて０であったか否かのフラグ情報を取得する。ＱＰ確定部７０４は、すべて０を示すフラグ情報を取得した場合、処理ブロックのＱＰ値はＱＰ予測値に設定する。ＱＰ確定部７０４は、すべて０ではないことを示すフラグ情報を取得した場合、処理ブロックのＱＰ値は、量子化部７０３で使用されたＱＰ値に設定する。ＱＰ確定部７０４が確定したＱＰ値は、ブロック情報記憶部６２４に記憶される。
【０１２５】
逆量子化部７０５は、量子化された直交変換係数に対し、逆量子化処理を行う。逆量子化された直交変換係数は、逆直交変換部７０６に出力される。
【０１２６】
逆直交変換部７０６は、逆量子化された直交変換係数に対し、逆直交変換処理を行う。逆直交変換された信号を復号画素生成部７０７に出力する。
【０１２７】
復号画素生成部７０７は、逆直交変換された信号に、予測信号生成部７０９から取得した予測画素信号を加算することで、局所的な復号画素を生成する。生成された復号画素は、復号画素記憶部５０５に記憶される。
【０１２８】
次に、各ＱＰ予測部の処理について説明する。図１５は、実施例２におけるＱＰ予測部の構成の一例を示すブロック図である。各ＱＰ予測部６３１〜６３３は、いずれも同様の処理を行うため、以下では、第１ＱＰ予測部６３１を用いて説明する。
【０１２９】
図１５に示す第１ＱＰ予測部６３１は、直前ＱＰ記憶部８０１と、ＱＰ選択部８０２と、上ＱＰ取得部８０３とを有する。
【０１３０】
直前ＱＰ記憶部８０１は、現在の処理ブロックの直前に処理したブロックのＱＰ値をＱＰ確定部７０４から受け取り、記憶している。直前ＱＰ記憶部８０１が記憶しているＱＰ値は、ピクチャ処理開始時に初期化される。
【０１３１】
例えば、Ｈ．２６４と同様にＳｌｉｃｅヘッダ情報に符号化されたＳｌｉｃｅＱＰ値で初期化する。Ｓｌｉｃｅは、１ピクチャに属するブロックをグループに分割したときの単位である。
【０１３２】
上ＱＰ取得部８０３は、ブロック情報記憶部６２４から、処理ブロックの上に位置するブロックのＱＰ値を取得する。
【０１３３】
ＱＰ選択部８０２は、直前ＱＰ記憶部８０１か、あるいは、上ＱＰ取得部８０３かのいずれかの出力するＱＰ値を選択して、ＱＰ予測値としてＱＰ確定部７０４や第１エントロピー符号化部６４１に出力する。
【０１３４】
例えば、ＱＰ選択部８０２は、処理ブロックがブロックライン先頭のブロックであれば、上ＱＰ取得部８０３から出力されたＱＰ値を選択し、処理ブロックがブロックライン先頭以外のブロックであれば、直前ＱＰ記憶部８０１から出力されたＱＰ値を選択する。ＱＰ選択部８０２は、選択したＱＰ値をＱＰ予測値として、ＱＰ確定部７０４や第１エントロピー符号化部６４１に出力する。
【０１３５】
上記例の場合のＱＰ値の予測（選択）については、図１０Ａ及び図１０Ｂに示す通りである。ここで、処理ブロックＸに近いブロックのＱＰ値がＱＰ予測値として使用されるため、ラスタ順序で直前のＱＰ値を使用した場合と比較して、ＱＰ値の予測効率はほとんど低下しない。
【０１３６】
上記例では、ブロックラインの先頭以外では直前に処理したブロックのＱＰ値を用いてＱＰ予測値を生成したが、処理ブロックに隣接するブロックから予測するのであれば、他の方法でＱＰ値を生成してもよい。
【０１３７】
なお、動画像復号装置１０の実施例１と同様に、ＱＰ選択部８０２の処理は次のような処理あってもよい。処理するブロックラインが２〜Ｎ番目のブロックラインのときは、直前ＱＰ記憶部８０１が保存しているＱＰ値はＳｌｉｃｅＱＰ値であり、Ｓｌｉｃｅ単位に１つ定まる値である。そのため、各ブロックのＱＰ予測値として、ＳｌｉｃｅＱＰ値を採用するとき、予測効率はそれほどよくない場合がある。
【０１３８】
そこで、ＱＰ選択部８０２は、処理するブロックラインが２〜Ｎ番目のブロックラインの先頭ブロックを処理するときは、上ＱＰ取得部８０３が取得したＱＰ値を選択し、それ以外では、直前ＱＰ記憶部８０１が保持したＱＰ値を選択してもよい。
【０１３９】
また、ＱＰ選択部８０２は、Ｎ＋１番目以降のブロックラインの先頭ブロックを処理するときは、直前ＱＰ記憶部８０１が保持しているＱＰ値を選択する。このときの直前ＱＰ記憶部８０１が保持しているＱＰ値は、処理ブロックのＮブロック上に位置するブロックラインの最後のブロックのＱＰ値である。
【０１４０】
Ｋ番目のブロックラインとＫ＋Ｎ番目のブロックラインは、同一の復号処理部とＱＰ予測部とエントロピー復号部とで処理されるため、Ｋ番目のブロックラインの処理ブロックの直前に処理したブロックは、Ｋ−Ｎ番目のブロックラインの最後のブロックである。
【０１４１】
さらに、ＱＰ選択部８０２は、ブロックラインの先頭ブロックでは、常に直前ＱＰ記憶部８０１に記憶されるＱＰ値を採用するようにしてもよい。また、ＱＰ選択部８０２は、処理するブロックラインが１〜Ｎ番目のブロックラインの先頭ブロックであるときは、ＱＰ予測値はＳｌｉｃｅＱＰ値としてもよい。
【０１４２】
このとき、同様にＮ＋１番目のブロックラインの先頭ブロックのＱＰ予測値は、Ｎブロック上に位置するブロックラインの最後のブロック（最終ブロック）のＱＰ値としてもよい。
【０１４３】
各エントロピー符号化部６４１〜６４３は、各ブロックの差分動きベクトル、ＱＰ差分値、量子化された直交変換係数などを、ブロックライン毎にエントロピー符号化する。
【０１４４】
以上の構成を有することで、量子化パラメータの予測値を求める処理を、ブロックライン毎に並列処理することができる。
【０１４５】
＜動作＞
次に、実施例２における動画像符号化装置５０の動作について説明する。図１６は、実施例２におけるブロック符号化処理の一例を示すフローチャートである。図１６に示すブロック符号化処理は、１ブロックの処理である。
【０１４６】
ステップＳ２０１で、各符号化処理部に処理対象のブロック（処理ブロック）が入力される。動き検出部７０８は、復号画素記憶部５０５から参照ピクチャの画素データを取得し、動きベクトルが検出される。
【０１４７】
ステップＳ２０２で、差分ベクトル生成部７１０は、検出された動きベクトルと、生成した予測ベクトルとの差分ベクトルを生成する。
【０１４８】
ステップＳ２０３で、動き検出部７０８は、検出された動きベクトルをブロック情報記憶部６２４に記憶する。
【０１４９】
ステップＳ２０４で、予測信号生成部７０９は、動き検出部７０８で検出された動きベクトルが参照する参照画像の領域位置情報を取得し、予測画素信号を生成する。
【０１５０】
ステップＳ２０５で、予測差分部７０１は、予測信号生成部７０９により生成された予測画素信号と、入力された原画像との差分をとり、予測誤差信号を生成する。
【０１５１】
ステップＳ２０６で、直交変換部７０２は、予測差分部７０１で生成された予測誤差信号に対し、直交変換処理を行い、直交変換係数を生成する。
【０１５２】
ステップＳ２０７で、量子化部７０３は、直交変換係数に対し、量子化パラメータ（ＱＰ）値に基づいて量子化する。
【０１５３】
ステップＳ２０８で、各ＱＰ予測部は、処理ブロックのＱＰ予測値を生成する。ＱＰ予測値は、例えば、処理ブロックの上ブロック、あるいはＱＰ予測部が属するブロックライ
符号化部が過去に処理したブロックのＱＰ値とする。
【０１５４】
ステップＳ２０９で、ＱＰ確定部７０４は、量子化部７０３から取得したＱＰ値と、ＱＰ予測部から取得したＱＰ予測値とのいずれかに、処理ブロックのＱＰ値を確定する。確定の仕方は上述した通りである。
【０１５５】
ステップＳ２１０で、各エントロピー符号化部は、処理ブロックの量子化された直交変換係数、ＱＰ差分値、差分ベクトルなどをエントロピー符号化する。
【０１５６】
ステップＳ２１１で、逆量子化部７０５と逆直交変換部７０６とは、量子化された直交変換係数に対し、逆量子化処理を行い、逆直交変換処理を行って、予測誤差信号に相当する信号を生成する。
【０１５７】
ステップＳ２１２で、復号画素生成部７０７は、予測信号生成部７０９から取得した予測画素信号と、逆直交変換部７０６から取得した信号とを加算し、局所的な復号画素を生成する。
【０１５８】
ステップＳ２１３で、復号画素記憶部５０５は、生成された復号画素を記憶する。以上の処理で、ブロックの符号化処理が終了し、次のブロックの符号化処理に移行する。
【０１５９】
以上、実施例２によれば、動画像符号化装置において、ＱＰ予測値の算出処理を並列化することを可能とし、ブロックライン並列処理の効率を向上させることができる。
【０１６０】
［実施例３］
図１７は、動画像処理装置の構成の一例を示すブロック図である。動画像処理装置９０は、各実施例で説明した動画像符号化装置、又は動画像復号装置の一例である。図１７に示すように、動画像処理装置９０は、制御部９０１、主記憶部９０２、補助記憶部９０３、ドライブ装置９０４、ネットワークＩ／Ｆ部９０６、入力部９０７、表示部９０８を含む。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
【０１６１】
制御部９０１は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵである。また、制御部９０１は、主記憶部９０２や補助記憶部９０３に記憶されたプログラムを実行する演算装置であり、入力部９０７や記憶装置からデータを受け取り、演算、加工した上で、表示部９０８や記憶装置などに出力する。
【０１６２】
主記憶部９０２は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部９０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【０１６３】
補助記憶部９０３は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【０１６４】
ドライブ装置９０４は、記録媒体９０５、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
【０１６５】
また、記録媒体９０５は、所定のプログラムを格納する。この記録媒体９０５に格納されたプログラムは、ドライブ装置９０４を介して動画像処理装置９０にインストールされる。インストールされた所定のプログラムは、動画像処理装置９０により実行可能となる。
【０１６６】
ネットワークＩ／Ｆ部９０６は、有線及び／又は無線回線などのデータ伝送路により構築されたＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワークを介して接続された通信機能を有する周辺機器と動画像処理装置９０とのインターフェースである。
【０１６７】
入力部９０７は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部９０８の表示画面上でキーの選択等を行うためのマウスやスライスパット等を有する。また、入力部９０７は、ユーザが制御部９０１に操作指示を与えたり、データを入力したりするためのユーザインターフェースである。
【０１６８】
表示部９０８は、ＬＣＤ（Liquid Crystal Display）等を有し、制御部９０１から入力される表示データに応じた表示が行われる。なお、表示部９０８は、外部に設けられてもよく、その場合は、動画像処理装置９０は、表示制御部を有する。
【０１６９】
このように、前述した実施例で説明した動画像符号化処理又は動画像復号処理は、コンピュータに実行させるためのプログラムとして実現されてもよい。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、前述した動画像符号化処理又は動画像復号処理を実現することができる。
【０１７０】
また、この動画像符号化プログラム又は動画像復号プログラムを記録媒体９０５に記録し、このプログラムが記録された記録媒体９０５をコンピュータや携帯端末に読み取らせて、前述した動画像符号化処理又は動画像復号処理を実現させることも可能である。
【０１７１】
なお、記録媒体９０５は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。なお、記録媒体８０５には、搬送波は含まれない。
【０１７２】
動画像処理装置９０で実行されるプログラムは、各実施例で説明した各部を含むモジュール構成となっている。実際のハードウェアとしては、制御部９０１が補助記憶部９０３からプログラムを読み出して実行することにより上記各部のうち１又は複数の各部が主記憶部９０２上にロードされ、１又は複数の各部が主記憶部９０２上に生成されるようになっている。
【０１７３】
また、前述した各実施例で説明した動画像符号化処理又は動画像復号処理は、１つ又は複数の集積回路に実装してもよい。
【０１７４】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０１７５】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
複数のブロックに分割された画像に対し、動画像符号化方式を用いて符号化されたストリームを復号する動画像復号装置であって、
前記ブロックの列を示すブロックラインに含まれるブロックのストリームを、ブロックライン毎に並列にエントロピー復号する並列エントロピー復号部と、
前記ブロックラインに含まれる各ブロックの量子化パラメータの予測値を、ブロックライン毎に並列に算出する並列ＱＰ予測部と、
前記ブロックラインに含まれる各ブロックに対し、前記並列エントロピー復号部により復号されたデータと、前記並列ＱＰ予測部により算出された予測値とを用いて復号処理した復号画素を、ブロックライン毎に並列に生成する並列復号処理部と、を備え、
前記並列ＱＰ予測部は、
２以上の値を示すＮ個のブロックラインずつ並列処理する場合、Ｋ−１番目のブロックラインの処理ブロックの水平位置を、Ｋ番目のブロックラインの処理ブロックの水平位置よりも少なくとも１ブロック以上先に処理し、前記処理ブロックに対して、前記並列処理で処理が完了しているブロックを参照して前記予測値を算出する動画像復号装置。
（付記２）
前記並列ＱＰ予測部は、
前記画像の上から２番目以降のブロックラインの先頭ブロックを処理する場合、前記先頭ブロックの１ブロック上のブロックを参照する付記１記載の動画像復号装置。
（付記３）
前記並列ＱＰ予測部は、
前記画像の上から２〜Ｎ番目のブロックラインの先頭ブロックを処理する場合、前記先頭ブロックの１ブロック上のブロックを参照し、Ｎ＋１番目以降のブロックラインの前記先頭ブロックを処理する場合、前記先頭ブロックのＮブロック上のブロックラインにおける最終ブロックを参照する付記１記載の動画像復号装置。
（付記４）
前記予測値は、
前記画像の上から１〜Ｎ番目のブロックラインの先頭ブロックを処理する場合、該画像のヘッダ情報に含まれる量子化パラメータ値とし、Ｎ＋１番目以降のブロックラインの前記先頭ブロックを処理する場合、前記先頭ブロックのＮブロック上のブロックラインにおける最終ブロックの量子化パラメータ値とする付記１記載の動画像復号装置。
（付記５）
画像を複数のブロックに分割し、該ブロック毎に動画像符号化処理を行う動画像符号化装置であって、
前記ブロックの列を示すブロックラインに含まれるブロックに対し、量子化された直交変換係数を含む符号化データを、ブロックライン毎に並列に生成する並列符号化処理部と、
前記ブロックラインに含まれる各ブロックの量子化パラメータの予測値を、ブロックライン毎に並列に算出する並列ＱＰ予測部と、
前記ブロックラインに含まれる各ブロックに対し、前記符号化データと前記予測値とを用いてエントロピー符号化を、ブロックライン毎に並列に行う並列エントロピー符号化部と、を備え、
前記並列ＱＰ予測部は、
２以上の値を示すＮ個のブロックラインずつ並列処理する場合、Ｋ−１番目のブロックラインの処理ブロックの水平位置を、Ｋ番目のブロックラインの処理ブロックの水平位置よりも少なくとも１ブロック以上先に処理し、前記処理ブロックに対して、前記並列処理で処理が完了しているブロックを参照して前記予測値を算出する動画像符号化装置。
（付記６）
複数のブロックに分割された画像に対し、動画像符号化方式を用いて符号化されたストリームを復号する動画像復号装置が実行する動画像復号方法であって、
前記ブロックの列を示すブロックラインに含まれるブロックのストリームを、ブロックライン毎に並列にエントロピー復号し、
前記ブロックラインに含まれる各ブロックの量子化パラメータの予測値を、ブロックライン毎に並列に算出し、
前記ブロックラインに含まれる各ブロックに対し、前記並列エントロピー復号処理により復号されたデータと、前記予測値とを用いて復号処理した復号画素を、ブロックライン毎に並列に生成する処理を有し、
前記予測値を算出する処理は、
２以上の値を示すＮ個のブロックラインずつ並列処理する場合、Ｋ−１番目のブロックラインの処理ブロックの水平位置を、Ｋ番目のブロックラインの処理ブロックの水平位置よりも少なくとも１ブロック以上先に処理し、前記処理ブロックに対して、前記並列処理で処理が完了しているブロックを参照して前記予測値を算出する動画像復号方法。
（付記７）
画像を複数のブロックに分割し、該ブロック毎に動画像符号化処理を行う動画像符号化装置が実行する動画像符号化方法であって、
前記ブロックの列を示すブロックラインに含まれるブロックに対し、量子化された直交変換係数を含む符号化データを、ブロックライン毎に並列に生成し、
前記ブロックラインに含まれる各ブロックの量子化パラメータの予測値を、ブロックライン毎に並列に算出し、
前記ブロックラインに含まれる各ブロックに対し、前記符号化データと前記予測値とを用いてエントロピー符号化を、ブロックライン毎に並列に行う処理を有し、
前記予測値を算出する処理は、
２以上の値を示すＮ個のブロックラインずつ並列処理する場合、Ｋ−１番目のブロックラインの処理ブロックの水平位置を、Ｋ番目のブロックラインの処理ブロックの水平位置よりも少なくとも１ブロック以上先に処理し、前記処理ブロックに対して、前記並列処理で処理が完了しているブロックを参照して前記予測値を算出する動画像符号化方法。
（付記８）
複数のブロックに分割された画像に対し、動画像符号化方式を用いて符号化されたストリームを復号する動画像復号装置に実行させるための動画像復号プログラムであって、
前記ブロックの列を示すブロックラインに含まれるブロックのストリームを、ブロックライン毎に並列にエントロピー復号し、
前記ブロックラインに含まれる各ブロックの量子化パラメータの予測値を、ブロックライン毎に並列に算出し、
前記ブロックラインに含まれる各ブロックに対し、前記並列エントロピー復号処理により復号されたデータと、前記予測値とを用いて復号処理した復号画素を、ブロックライン毎に並列に生成する処理を有し、
前記予測値を算出する処理は、
２以上の値を示すＮ個のブロックラインずつ並列処理する場合、Ｋ−１番目のブロックラインの処理ブロックの水平位置を、Ｋ番目のブロックラインの処理ブロックの水平位置よりも少なくとも１ブロック以上先に処理し、前記処理ブロックに対して、前記並列処理で処理が完了しているブロックを参照して前記予測値を算出する動画像復号プログラム。
（付記９）
画像を複数のブロックに分割し、該ブロック毎に動画像符号化処理を行う動画像符号化装置に実行させるための動画像符号化プログラムであって、
前記ブロックの列を示すブロックラインに含まれるブロックに対し、量子化された直交変換係数を含む符号化データを、ブロックライン毎に並列に生成し、
前記ブロックラインに含まれる各ブロックの量子化パラメータの予測値を、ブロックライン毎に並列に算出し、
前記ブロックラインに含まれる各ブロックに対し、前記符号化データと前記予測値とを用いてエントロピー符号化を、ブロックライン毎に並列に行う処理を有し、
前記予測値を算出する処理は、
２以上の値を示すＮ個のブロックラインずつ並列処理する場合、Ｋ−１番目のブロックラインの処理ブロックの水平位置を、Ｋ番目のブロックラインの処理ブロックの水平位置よりも少なくとも１ブロック以上先に処理し、前記処理ブロックに対して、前記並列処理で処理が完了しているブロックを参照して前記予測値を算出する動画像符号化プログラム。
【符号の説明】
【０１７６】
１０  動画像復号装置
５０  動画像符号化装置
９０  動画像処理装置
１０１  並列復号部
１０２  並列エントロピー復号部
１０３  並列ＱＰ予測部
１０４  並列復号処理部
１０５  復号画素記憶部
２０１  ブロックライン復号処理部
２４４  ブロック情報記憶部
３０１  ＱＰ復元部
４０１  直前ＱＰ記憶部
４０２  ＱＰ選択部
４０３  上ＱＰ取得部
５０１  並列符号化部
５０２  並列符号化処理部
５０３  並列ＱＰ予測部
５０４  並列エントロピー符号化部
５０５  復号画素記憶部
６０１  ブロックライン符号化処理部
６２４  ブロック情報記憶部
７０４  ＱＰ確定部
８０１  直前ＱＰ記憶部
８０２  ＱＰ選択部
８０３  上ＱＰ取得部
９０１  制御部
９０２  主記憶部
９０３  補助記憶部
【図１】
0006317720.tif 000002
【図２】
0006317720.tif 000003
【図３Ａ】
0006317720.tif 000004
【図３Ｂ】
0006317720.tif 000005
【図４Ａ】
0006317720.tif 000006
【図４Ｂ】
0006317720.tif 000007
【図４Ｃ】
0006317720.tif 000008
【図５】
0006317720.tif 000009
【図６】
0006317720.tif 000010
【図７】
0006317720.tif 000011
【図８】
0006317720.tif 000012
【図９】
0006317720.tif 000013
【図１０Ａ】
0006317720.tif 000014
【図１０Ｂ】
0006317720.tif 000015
【図１１】
0006317720.tif 000016
【図１２】
0006317720.tif 000017
【図１３】
0006317720.tif 000018
【図１４】
0006317720.tif 000019
【図１５】
0006317720.tif 000020
【図１６】
0006317720.tif 000021
【図１７】
0006317720.tif 000022