(1)第1の実施の形態
図3において、1は全体として画像符号化装置を示し、入力端子W1から入力した入力画像信号S1が画像タイプ指定回路2に入力される。
画像タイプ指定回路2は入力される画像信号S1の各フレームをIピクチヤ、Pピクチヤ又はBピクチヤのうちのどの画像符号化タイプのピクチヤとして処理するかを指定して画像符号化並替え回路3に送出する。この画像符号化装置1は、例えば15個のフレームをグループ・オブ・ピクチヤ(GOP)として、これを1単位として符号化処理を実行する。
画像符号化順序並替え回路3は指定された画像符号化タイプに従つて各フレームを符号化する順番に並び替えて画像信号S2としてスキヤンコンバータ4に送出すると共に、画像符号化タイプデータS3を予測モード決定回路5、動きベクトル検出回路6及び符号化制御回路7に送出する。また画像符号化並替え回路3は現在符号化されているフレームの動きベクトルを検出するために現在画像と、当該現在画像より時間的に過去にある画像(以下、これを過去参照画像と呼ぶ)及び又は現在画像より時間的に未来にある画像(以下、これを未来参照画像と呼ぶ)とを表す画像信号S4を動きベクトル検出回路6に送出する。
スキヤンコンバータ4は、入力されるフレームをブロツクフオーマツトの信号に変換し、この1フレームの信号を16ラインを1単位としてN個のスライスに区分する。各スライスは16×16の画素に対応する輝度信号によつて構成されるM個のマクロブロツクに分割される。これら各マクロブロツクにはアドレス(可変長符号(インクリメント値))が付加されており、このアドレスは各マクロブロツクの位置を表すものである。この場合、ピクチヤ中で最初に伝送されるマクロブロツクのアドレスは番号そのものを表し、これに続くマクロブロツクのアドレスは、当該マクロブロツクの絶対アドレスとその1つ前に伝送されたマクロブロツクの絶対アドレスとの差を表している。
動きベクトル検出回路6は画像信号S2の各フレームに同期した画像符号化タイプデータS3に従つて各フレームの画像データをフレーム内符号化によるIピクチヤ、フレーム間順方向予測符号化によるPピクチヤ又は双方向予測符号化によるBピクチヤとして処理する。かくして、Iピクチヤとして処理されるフレームの画像データは、動きベクトル検出回路6から過去参照画像を格納する過去参照画像メモリ(図示せず)に格納され、Bピクチヤとして処理されるフレームの画像データは現在画像を格納する現在画像メモリ(図示せず)に格納され、Pピクチヤとして処理されるフレームの画像データは未来参照画像を格納する未来参照画像メモリ(図示せず)に格納される。
ここで次のタイミングにおいて、Bピクチヤ又はPピクチヤとして処理すべきフレームが動きベクトル検出回路6に入力されたとき、これまでに未来参照画像メモリに格納されていた最初のPピクチヤの画像データは過去参照画像メモリに格納される。また次のBピクチヤの画像データは現在画像メモリに格納され、次のPピクチヤの画像データは未来参照画像メモリに格納される。以降このような動作が順次繰り返される。
動きベクトル検出回路6は順方向予測における動きベクトル及びそのときの動きベクトル推定残差でなる動きベクトルデータS5を予測モード決定回路5に送出する。また動きベクトル検出回路6は、Bピクチヤの場合には、逆方向予測における動きベクトル及びそのときの動きベクトル推定残差でなる動きベクトルデータS5を送出する。
予測モード決定回路5はイントラモード、順方向予測モード、逆方向予測モード又は双方向予測モードのうちどの予測モードを選択するかを決定する。
ここでイントラモードは、符号化対象となるフレームの画像データをそのまま伝送データとして伝送する処理であり、順方向予測モードは、過去参照画像との予測残差と順方向動きベクトルとを伝送する処理である。また逆方向予測モードは、未来参照画像との予測残差と逆方向動きベクトルとを伝送する処理であり、双方向予測モードは、過去参照画像と未来参照画像の2つの予測画像の平均値との予測残差と順方向及び逆方向の2つの動きベクトルとを伝送する処理である。Bピクチヤの場合には、これら4種類の予測モードをマクロブロツク単位で切り換える。
予測モード決定回路5は画像符号化並替え回路3から送出される画像符号化タイプデータS3に基づいて、Iピクチヤの場合にはイントラモードを選択し、Pピクチヤの場合にはイントラモード又は順方向予測モードのいずれかの予測モードを選択し、Bピクチヤの場合には、イントラモード、順方向予測モード、逆方向予測モード又は双方向予測モードのうちいずれかの予測モードを選択し、選択した予測モードを表す予測モードデータS6を演算回路8に送出する。
演算回路8はスキヤンコンバータ4より読み出されたマクロブロツクS7に対して、予測モードデータS6に基づいてイントラ、順方向予測、逆方向予測又は双方向予測の演算を行う。
演算回路8はマクロブロツクS7としてIピクチヤとして処理すべきフレームの画像データが入力された場合、当該画像データをイントラ符号化してDCT(Discrete Cosine Transform、離散コサイン変換)変換回路9に送出する。DCT変換回路9はイントラ符号化された画像データをDCT変換係数に変換して量子化回路10に送出する。
量子化回路10は各DCT変換係数を符号化制御回路7から指定された量子化ステツプで量子化して可変長符号化回路11及び逆量子化回路12に送出する。
可変長符号化回路11は量子化された画像データ、予測モード決定回路5から送出される予測モードデータS6及び動きベクトル検出回路6から送出される動きベクトルデータS5を例えばハフマン符号などの可変長符号に変換して伝送路(図示せず)を介して画像復号装置13に伝送すると共に、符号化制御回路7に与える。また可変長符号化回路11は各マクロブロツクのインクリメント値をカウントする。
逆量子化回路12は量子化された画像データを量子化時における量子化ステツプに応じて逆量子化して逆DCT変換回路14に送出する。逆DCT変換回路14は逆量子化回路12からの出力を逆DCT変換処理をする。逆DCT変換回路14からの出力は演算器15を介してフレームメモリ16内の過去参照画像を格納する過去参照画像記憶部(図示せず)に格納される。
次に演算回路8にスキヤンコンバータ4からPピクチヤとして処理すべきフレームの画像データが入力され、予測モード決定回路5から送出される予測モードデータS6がイントラモードの場合、当該フレームの画像データは、上述のIピクチヤの場合と同様にイントラ符号化されてDCT変換回路9、量子化回路10及び可変長符号化回路11を介して画像復号装置13に伝送されると共に、符号化制御回路7に与えられ、さらに逆量子化回路12、逆DCT変換回路14及び演算器15を介してフレームメモリ16内の未来参照画像を格納する未来参照画像記憶部(図示せず)に格納される。
予測モードデータS6が順方向予測モードを表している場合には、フレームメモリ16の過去参照画像記憶部に格納されている画像データ(この場合Iピクチヤの画像データ)が読み出されて動き補償回路17に送出される。
動き補償回路17はこの画像データを動きベクトル検出回路6から送出される順方向の動きベクトルデータS5に対応して動き補償する。
すなわち動き補償回路17は、順方向予測モードの場合、フレームメモリ16の過去参照画像記憶部の読出しアドレスを、動きベクトル検出回路6が現在出力しているマクロブロツクの位置に対応する位置から順方向の動きベクトルデータS5に対応する分だけずらしてデータを読み出して予測参照画像を生成し、演算回路8及び演算器15に送出する。
演算回路8はスキヤンコンバータ4から送出される参照画像のマクロブロツクのデータS7から、動き補償回路17から送出された当該マクロブロツクに対応する予測参照画像の画像データを減算して、予測残差としての差分データを得、この差分データをDCT変換回路9に送出する。この差分データはDCT変換回路9、量子化回路10及び可変長符号化回路11を介して画像復号装置13に伝送されると共に、符号化制御回路7に与えられる。またこの差分データは逆量子化回路12及び逆DCT変換回路14によつて局所的に復号されて演算器15に送出される。
演算器15は逆DCT変換回路14から送出される差分データに、動き補償回路17から送出される予測参照画像の画像データを加算する。これにより局所的に復号したPピクチヤの画像データが得られる。このPピクチヤの画像データはフレームメモリ16内の未来参照画像を格納する未来参照画像記憶部に格納される。
次に演算回路8にスキヤンコンバータ4からBピクチヤとして処理すべきフレームの画像データが入力され、予測モード決定回路5から送出される予測モードデータS6がイントラモード又は順方向予測モードの場合、当該フレームの画像データは上述のPピクチヤの場合と同様に処理される。これに対して予測モードデータS6が逆方向予測モードに設定された場合には、フレームメモリ16の未来参照画像記憶部に格納されている画像データ(この場合Pピクチヤの画像データ)が読み出されて動き補償回路17に送出される。
動き補償回路17はこの画像データを動きベクトル検出回路6から送出される逆方向の動きベクトルデータS5に対応して動き補償する。
すなわち動き補償回路17は、逆方向予測モードのとき、フレームメモリ16の未来参照画像記憶部の読出しアドレスを、動きベクトル検出回路6が現在出力しているマクロブロツクの位置に対応する位置から動きベクトルデータS5に対応する分だけずらしてデータを読み出して予測参照画像を生成し、演算回路8及び演算器15に送出する。
演算回路8はスキヤンコンバータ4から送出される参照画像のマクロブロツクのデータから、動き補償回路17から送出された当該マクロブロツクに対応する予測参照画像の画像データを減算して予測残差としての差分データを得、この差分データをDCT変換回路9に送出する。
このとき、演算器15は逆DCT変換回路14から送出される差分データに、動き補償回路17から送出される予測参照画像の画像データを加算することにより、局所的に復号したBピクチヤの画像データを得る。
双方向予測モードの場合には、フレームメモリ16の過去参照画像記憶部に格納されている画像データ(この場合Iピクチヤの画像データ)と、未来参照画像記憶部に格納されている画像データ(この場合Pピクチヤの画像データ)とが読み出されて動き補償回路17に送出される。
動き補償回路17はこの画像データを動きベクトル検出回路6から送出される順方向の動きベクトル及び逆方向の動きベクトルでなる動きベクトルデータS5に対応して動き補償する。
すなわち動き補償回路17は、双方向予測モードの場合、フレームメモリ16の過去参照画像記憶部と未来参照画像記憶部の読出しアドレスを、動きベクトル検出回路6が現在出力しているマクロブロツクの位置に対応する位置から順方向の動きベクトル及び逆方向の動きベクトルでなる動きベクトルデータS5に対応する分だけずらしてデータを読み出して予測参照画像を生成し、演算回路8及び演算器15に送出する。
演算回路8はスキヤンコンバータ4から送出される参照画像のマクロブロツクのデータから、動き補償回路17から送出された当該マクロブロツクに対応する予測参照画像の画像データの平均値を減算して予測残差としての差分データを得、この差分データをDCT変換回路9に送出する。
このとき、演算器15は逆DCT変換回路14から送出される差分データに、動き補償回路17から送出される予測参照画像の画像データを加算することにより、局所的に復号したBピクチヤの画像データを得る。ここでBピクチヤは他の画像の予測画像として使用されないので、フレームメモリ16には格納されない。
画像復号装置13は画像符号化装置1から固定のビツトレートで伝送されるビツトストリームをデコーダバツフア18に一旦格納した後、所定のタイミングで当該デコーダバツフア18から1フレーム分の画像データを読み出して復号部19において順次復号し、復号されたフレームを原画像の順序に並び替えて例えばデイスプレイ上に表示させる。
ここでデコーダバツフア18は、画像符号化装置1から仮想的に考えた復号化保証用バツフア(すなわちVBVバツフア)を構成し、画像符号化装置1は、復号部19がデコーダバツフア18から画像データを読み出すタイミングが分かるようになされている。
この実施例の場合、符号化制御回路7は可変長符号化回路11から送出される可変長符号化された画像データの符号発生量をマクロブロツク単位で演算すると共にインクリメント値をカウントする。また符号化制御回路7は目標符号化発生量を表す量子化ステツプ制御信号S8を量子化回路10に与えることにより1フレーム当たりの符号発生量を制御する。
さらに符号化制御回路7はVBVバツフアとして機能するデコーダバツフア18におけるデータ占有量のしきい値として、第3のしきい値、第2のしきい値及び第1のしきい値を有する。これら第3、第2及び第1のしきい値は、それぞれBピクチヤ、Pピクチヤ及びIピクチヤに対応している。またこれらしきい値の値は、画像を復号する際の画像符号化タイプの重要度の低い順に高くなるように、第3のしきい値>第2のしきい値>第1のしきい値に設定されている。かくして、符号化制御回路7は、Bピクチヤが符号化されているときに、可変長符号化回路11から送出される画像データの符号発生量に基づき、デコーダバツフア18よつて形成されるVBVバツフアにおけるデータ占有量が第3のしきい値を下回るような符号量を有する画像データが発生した場合には、量子化回路10にスキツプ実行信号S9を送出して、当該符号化中のBピクチヤのこれ以降の画像データをマクロブロツク単位でスキツプさせその結果データ占有量の傾下を抑えるようになされている。
ここで、スキツプするとは、現在実行されている符号化処理を停止させることをいう。
このような処理をしたとき、データバツフア18によつて形成されるVBVバツフア18におけるデータ占有量は、図4に示すように推移する。図4に示す太線部分は、画像データがスキツプされたことを示し、図5及び図6についても同様である。
この場合、量子化回路10はスキツプ信号S9を受けると、内部に設けられたスキツプスイツチをオン動作させることにより画像データをスキツプする。この場合、符号化制御回路7はスキツプするマクロブロツクについてのアドレス情報S10を可変長符号化回路11に送出する。量子化回路10からの符号(ビツト)発生はなくなる。また量子化回路10は画像データをスキツプしない場合には、スキツプスイツチをオフ動作させることにより画像データを量子化する。
ここで符号化制御回路7は、画像復号装置13の復号部19がデコーダバツフア18からデータを読み出すタイミングを知つており、しかも可変長符号化回路11からの送出される画像データの符号発生量を演算し、これによりデコーダバツフア18に現在格納されているデータ量を知ることができる。
可変長符号化回路11は画像データがスキツプされていない場合には、インクリメント値をカウントすると共にアドレス情報と共に画像データを符号化制御回路7及び画像復号装置13に伝送する。これに対して可変長符号化回路11は、画像データがスキツプされた場合には、インクリメント値はカウントするがスキツプされたマクロブロツクについてのアドレス情報は出力せず、行及び列方向に並べられた複数のマクロブロツクの行方向における最初のマクロブロツクのアドレス情報(以下、これを先頭アドレス情報と呼ぶ)と、行方向における最後のマクロブロツクのアドレス情報(以下、これを最終アドレス情報と呼ぶ)だけは可変長符号化して符号化制御回路7及び画像復号装置13に伝送する。
これにより符号化制御回路7及び画像復号装置13はどの画像符号化タイプの画像データがスキツプされたかを知ることができる。ここで可変長符号化回路11に対する先頭アドレス情報及び最終アドレス情報の指定は、符号化制御回路7が指定信号S10を可変長符号化回路11に送出することにより行われる。
また符号化制御回路7は、Pピクチヤが符号化されているときに、可変長符号化回路11から送出される画像データの符号発生量に基づき、デコーダバツフア18におけるデータ占有量が第2のしきい値を下回るような符号発生量を有する画像データが発生した場合には、量子化回路10にスキツプ実行信号S9を送出して、当該符号化中のPピクチヤのこれ以降の画像データをマクロブロツク単位でスキツプさせる。
ここで符号化制御回路7は、Pピクチヤをスキツプさせた場合には、デコーダバツフア18におけるデータ占有量がそれぞれ対応するしきい値を越えている場合でも、当該スキツプされたPピクチヤを予測画像として復号化の際に用いるBピクチヤ及びPピクチヤは全てスキツプさせるようになされている。これは、図5に示すように、PピクチヤP3が前のPピクチヤP2を予測画像としているためである。すなわちPピクチヤP2は符号化の途中からスキツプされているため、画像データとしては不十分なものとなり、このPピクチヤP2を用いて復号化される復号後のPピクチヤP3の画質が劣化するからである。このことはBピクチヤB5及びBピクチヤB6についても同様である。従つて次のIピクチヤの符号化まで画像データがスキツプされている。
また図5において、BピクチヤB3、BピクチヤB4、PピクチヤP3、BクピチヤB5及びBピクチヤB6がそれぞれスキツプされているのにもかかわらず、データ量が太線の分だけ減つているのは、上述した先頭アドレス情報及び最終アドレス情報が読み出されているからである。このことは図6についても同様である。
さらに符号化制御回路7は、Iピクチヤが符号化されているときに、可変長符号化回路11から送出される画像データの符号発生量に基づき、デコーダバツフア18におけるデータのバツフア占有量が第3のしきい値を下回るような符号量を有する画像データが発生した場合、量子化回路10にスキツプ実行信号S9を送出して、当該符号化中のIピクチヤのこれ以降の画像データをマクロブロツク単位でDC成分のみのマクロブロツクとして符号化する。この場合、符号化制御回路7は次のIピクチヤの符号化までBピクチヤ及びPピクチヤをスキツプさせるように量子化回路10を制御する。
これは、図6に示すように、例えばPピクチヤP2は前のIピクチヤI1を予測画像としているためである。すなわちIピクチヤI1は符号化の途中からDC成分のみの符号化とされているため、画像データとしては不十分なものとなり、このIピクチヤI1を用いて復号化される復号後のPピクチヤP2の画質が劣化するからである。このことは、IピクチヤI1やPピクチヤP2を復号化の際に用いるBピクチヤB2、BピクチヤB5、BピクチヤB5及びBピクチヤB6についても同様である。従つて次のIピクチヤの符号化まで画像データがスキツプされている。
ここで図4〜図6に示す太線は、結果としてスキツプされたマクロブロツク又はDC成分のみのイントラマクロブロツクで構成されることになる。
また符号化制御回路7は、上述のように画像データをスキツプさせた場合、スキツプさせた分だけ、以降の画像データに対する目標符号発生量を多く割り当てるように、目標符号発生量制御信号S8によつて量子化回路10を制御する。この場合、符号化制御回路7は画像を復号する際の重要度が高い画像符号化タイプ、すなわちIピクチヤ、Pピクチヤの順に目標符号発生量を多く割り当てる。
画像復号装置13は、画像符号化装置1でピクチヤがスキツプされた場合でも、伝送されてくるアドレス情報に基づいてどのマクロブロツクがスキツプされたかを判別することができ、これによりスキツプされた場合には、前のフレームをそのまま表示するようになされている。
符号化制御回路7の動作について図7を用いて説明する。
符号化制御回路7は、ステツプSP1より動作を開始して、ステツプSP2において、これから符号化するピクチヤ(以下、これを符号化対象ピクチヤと呼ぶ)がどの画像符号化タイプかを画像符号化並替え回路3から送出される画像符号化タイプデータS3に基づいて判定した後、ステツプSP3に進む。
符号化制御回路7は、ステツプSP3において、スキツプ判定フラグがセツトされているピクチヤ(以下、これをスキツプピクチヤと呼ぶ)の画像符号化タイプと、符号化対象ピクチヤの画像符号化タイプとに基づいて、符号化対象ピクチヤをスキツプするか否かを判定する。ここでスキツプ判定フラグは、後述するように、スキツプピクチヤに対して設定されるフラグを表す。
このステツプSP3において、符号化対象ピクチヤをスキツプするか否かを判定するのは、スキツプピクチヤが符号化対象ピクチヤの予測画像であるか否かを判定するためである。すなわち上述したように、符号化対象ピクチヤの予測画像がスキツプされている場合には、この予測画像を用いて復号化されるピクチヤの画質に影響を与えるため、符号化対象ピクチヤを符号化しているときに、デコーダバツフア18におけるデータ占有量が当該符号化対象ピクチヤの画像符号化タイプに対応するしきい値を下回つていない場合でもスキツプさせる必要があるからである。例えばPピクチヤP3(図5)を符号化対象ピクチヤとした場合、当該PピクチヤP2の予測画像となるPピクチヤP2はスキツプされているからである。
ステツプSP3において、符号化制御回路7が否定結果を得ると、ステツプSP4に進み、スキツプ判定フラグをリセツトする。ここでスキツプ判定フラグをリセツトするのは、ステツプ判定フラグをセツトしたままであると、スキツプを行つてはならないピクチヤの画像データがスキツプされることを防止するためである。
続いて符号化制御回路7はステツプSP5において目標符号発生量を計算した後、ステツプSP6に進んで符号化対象ピクチヤをマクロブロツク単位で符号化させる。次に符号化制御回路7はステツプSP7において、デコーダバツフア18における現在のデータ占有量を計算した後、ステツプSP8に進む。
ステツプSP8において、符号化制御回路7は、ステツプSP7において計算したデコーダバツフア18におけるデータ占有量が符号化対象ピクチヤに対応するしきい値を下回つているか否かを判定し、否定結果を得ると、ステツプSP9に進む。ステツプSP9において、符号化制御回路7は、符号化対象ピクチヤについて1フレーム分符号化されたか否かを判定し、否定結果を得るとステツプSP6に戻つて、ステツプSP6からステツプSP9までの処理ループを実行する。
符号化制御回路7は、ステツプSP3において符号化対象ピクチヤをスキツプさせると判定した場合にはステツプSP10に進み、先頭アドレス情報及び最終アドレス情報を除いて当該符号化対象ピクチヤをスキツプさせ、符号化対象ピクチヤがIピクチヤの場合にはDC成分のみのマクロブロツクとして符号化させる。また符号化制御回路7は、ステツプSP8においてデコーダバツフア18におけるデータ占有量が符号化対象ピクチヤに対応するしきい値を下回つた場合には、これ以降の符号化対象ピクチヤの画像データをマクロブロツク単位でスキツプさせる。
続いて符号化制御回路7は、ステツプSP11に進んで、符号化対象ピクチヤについて1フレーム分の符号化が終了したか否かを判定する。
符号化制御回路7はステツプSP11において否定結果を得ると、ステツプSP10に戻つて、ステツプSP10及びステツプSP11の処理ループを実行し、否定結果を得るとステツプSP12に進む。ステツプSP12において、符号化制御回路7は、スキツプしたピクチヤに対して、対応するスキツプ判定フラグをセツトした後、ステツプSP2に戻り、画像信号S1を全て処理するまで上述の動作を繰り返す。
以上の構成において、この画像符号化装置1では、可変長符号化回路11からの画像データの符号発生量に基づき、Bピクチヤを符号化しているときに、デコーダバツフア18におけるデータ占有量が第3のしきい値を下回るような符号量を有する画像データが発生した場合には、当該符号化中のBピクチヤのこれ以降の画像データがマクロブロツク単位でスキツプされるので、デコーダバツフア18において次のPピクチヤの画像データのためのVBVバツフアのデータ占有量が確保される。
またこの画像符号化装置1では、可変長符号化回路11からの画像データの符号発生量に基づき、Pピクチヤを符号化しているときに、デコーダバツフア18におけるデータ占有量が第2のしきい値を下回るような符号量を有する画像データが発生した場合には、当該符号化中のPピクチヤのこれ以降の画像データがマクロブロツク単位でスキツプされるので、デコーダバツフア18においてIピクチヤの画像データのためのVBVバツフアのデータ占有量が確保される。
またPピクチヤがスキツプされた場合には、当該Pピクチヤを予測画像とするPピクチヤ及びBピクチヤが全てスキツプされるので、画質の劣化を防止することができる。
さらにこの画像符号化装置1では、可変長符号化回路11からの画像データの符号発生量に基づき、Iピクチヤを符号化しているときに、デコーダバツフア18におけるデータ占有量が第1のしきい値を下回るような符号量を有する画像データが発生した場合には、当該符号化中のIピクチヤのこれ以降の画像データがマクロブロツク単位でスキツプされるので、デコーダバツフア18において次のIピクチヤの画像データのためのVBVバツフアのデータ占有量が確保される。
またIピクチヤがスキツプされた場合には、次のIピクチヤの符号化時まで全てのPピクチヤ及びBピクチヤがスキツプされるので、画質の劣化を防止することができる。
従つてこの画像符号化装置1では、画像を復号化する際の重要度が低い画像符号化タイプのピクチヤを優先的にスキツプさせているので、デコーダバツフア18において、次に重要度の高い画像符号化タイプのピクチヤのためのVBVバツフアのデータ占有量を確保することができる。
またこの画像符号化装置1では、画像を復号する際の重要度が低い画像符号化タイプのピクチヤを優先的にスキツプさせているので、画像を復号する際の重要度が高い画像符号化タイプのピクチヤに対してスキツプさせた分だけ目標符号発生量を多く割り当てることができ、画質の劣化を防止し得る。この場合、画像の絵柄が複雑なときには特に有効である。
さらに符号化装置1側で画像復号装置13側の画像のフリーズ状態を制御することができる。
以上の構成によれば、VBVバツフアにおけるデータ占有量のしきい値として、Bピクチヤ、Pピクチヤ及びIピクチヤにそれぞれ対応させて第3のしきい値、第2のしきい値及び第1のしきい値を設定すると共に、第3のしきい値、第2のしきい値、第1のしきい値の順にしきい値の値が大きくなるようにこれら第3、第2及び第1のしきい値の値を設定することにより、画像を復号する際の重要度の低い画像符号化タイプのピクチヤを優先的にスキツプさせる。
これにより、VBVバツフアにおいて、画像を復号化する際の重要度が高い画像符号化タイプのピクチヤのデータ占有量を優先的に確保することができ、その結果、画質を劣化させずにVBVバツフアにおけるアンダフローの発生を確実に防止することができる画像符号化装置を実現し得る。
なお上述の第1の実施の形態においては、可変長符号化回路11における符号化方式としてハフマン符号を用いた場合について述べたが、本発明はこれに限らず、可変長符号化回路11における符号化としてこの他種々の符号化方式を適用し得る。
また上述の第1の実施の形態においては、例えば15個のフレームをグループ・オブ・ピクチヤ(GOP)としこれを1単位として処理するようにした場合について述べたが、本発明はこれに限らず、GOPを構成するフレームの数としてこの他種々の数でGOPを構成してもよい。
さらに上述の第1の実施の形態においては、各画像をフレーム単位で符号化した場合について述べたが、本発明はこれに限らず、フイールド単位、又はフレーム単位とフイールド単位を混在させて符号化するようにしてもよい。すなわちノンインタレース走査方式に対応させ得るようにしてもよい。
さらに上述の第1の実施の形態においては、符号化対象となる画像の画像符号化タイプを判定する画像符号化タイプ判定手段として、画像符号化並替え回路3及び符号化制御回路7を用いた場合について述べたが、本発明はこれに限らず、画像符号化タイプ判定手段として、この他種々の画像符号化タイプ判定手段を適用し得る。
さらに上述の第1の実施の形態においては、画像符号化タイプ判定手段の出力に基づいて、第1、第2又は第3の画像を符号化する符号化手段として、画像符号化タイプ指定回路2、画像符号化順序並替え回路3、スキヤンコンバータ4、予測モード決定回路5、動きベクトル検出回路6、符号化制御回路7、演算回路8、DCT変換回路9、量子化回路10、可変長符号化回路11、逆量子化回路12、逆DCT変換回路14、演算器15、フレームメモリ16及び動き補償回路17を用いた場合について述べたが、本発明はこれに限らず、符号化手段としてこの他種々の第1の符号化手段を適用し得る。
さらに上述の第1の実施の形態においては、符号化された画像の符号発生量を演算し、当該演算結果に基づき、画像復号装置のバツフアにおける符号化された画像のデータ占有量が、第1、第2及び第3の画像にそれぞれ対応させて設定されたデータ占有量の第1、第2及び第3のしきい値のうち、現在符号化されている第1、第2又は第3の画像に対応する第1、第2又は第3のしきい値を下回るような符号発生量が発生した場合、現在符号化されている第1、第2又は第3の画像に対する符号化処理を停止させるように、符号化手段を制御する符号化制御手段として、符号化制御回路7を用いた場合について述べたが、本発明はこれに限らず、符号化制御手段としてこの他種々の符号化制御手段を適用し得る。
さらに上述の第1の実施の形態においては、画像データを3つの符号化タイプ、すなわちIピクチヤ、Pピクチヤ及びBピクチヤの画像に符号化するようにしたが、本発明はこれに限らず、3つの符号化タイプのうちから2つの符号化タイプ、すなわちIピクチヤ及びPピクチヤ、又はIピクチヤ及びBピクチヤを用いて画像を符号化するようにしても、上述の第1の実施の形態と同様の効果を得ることができる。
因に、VBVバツフアにおけるデータ占有量のしきい値として、Iピクチヤに対応する第1のしきい値を設定すると共に、Pピクチヤ又はBピクチヤに対応する第2又は第3のしきい値として第1のしきい値より大きい値のしきい値を設定するようにしたことにより、画像を復号化する際にIピクチヤより重要度の低いPピクチヤ又はBピクチヤを優先的にスキツプさせることができる。
これにより、VBVバツフアにおいて、画像を復号化する際の重要度が高い画像符号化タイプのピクチヤのデータ占有量を優先的に確保することができ、その結果、画質を劣化させずにVBVバツフアにおけるアンダフローの発生を確実に防止することができる画像符号化装置を実現し得る。
(2)第2の実施の形態
図8において、画像符号化装置25は、入力画像信号S25をエンコーダ制御部26において圧縮符号化のための前処理等の処理をした後、FIFO(先入れ先出し)メモリ27において出力データを所定時間だけ遅延する。このFIFOメモリ12の出力データは符号化手段としてのエンコーダ28によつて、ピクチヤごとに画像符号化タイプ、すなわちピクチヤタイプに応じた符号化方法によつて圧縮符号化されて、圧縮画像データS26として出力される。
エンコーダ28には動き検出回路14によつてエンコーダ制御部11の出力データに基づいて検出された動きベクトルが与えられ、かくしてエンコーダ13から出力される発生ビツト量データS27と、エンコーダ制御部26から出力されるイントラACデータS28と、動き検出回路30から出力されるME残差データS29とに基づいて符号化制御部31によつて制御される。
図8に示す画像符号化装置25は、圧縮符号化する前の画像データの特徴に基づいて発生符号量の制御を行うフイードフオワード型のレート制御を行うように構成されている。
ここで、ME残差とは、動き予測誤差をピクチヤ全体について絶対値和あるいは自乗和したものであり、ME残差データS29は、ME残差を求めるためのデータである。
符号化制御部31は、互いにバス32を介して接続されたCPU(中央処理装置)33、ROM(read only memory)34及びRAM(random access memory)35を有するコンピユータによつて構成され、CPU33が、RAM35をワーキングエリアとして、ROM34に格納されたプログラムを実行することによつて、符号化制御部31における各機能を実現する。ROM34は、本発明に係る画像符号化制御用プログラムを記憶したものであり、IC(集積回路)でも良いし、ハードデイスク、フロツピイデイスク等の磁気デイスクを記録媒体とする記憶装置でも良いし、CD(コンパクトデイスク)−ROM等の光デイスクを記録媒体とする記憶装置でも良いし、その他の種類の記録媒体を用いる記憶装置でも良い。いずれの場合にも、ICや種々の記録媒体は、本発明にかかる画像符号化制御用プログラムを記録した媒体に相当する。
エンコーダ制御部26は、図9に示すように、入力画像信号S25を入力し、符号化する順番に従つてピクチヤ(Iピクチヤ、Pピクチヤ、Bピクチヤ)の順番を並べ替える画像並べ替え回路41と、この画像並べ替え回路41の出力データを入力し、フレーム構造かフイールド構造かを判別し、判別結果に応じた走査変換及び16×16画素のマクロブロツク化を行う走査変換・マクロブロツク化回路42と、この走査変換・マクロブロツク化回路42の出力データを入力し、IピクチヤにおけるイントラACを算出し、イントラACデータS28を符号化制御部31に送ると共に、走査変換・マクロブロツク化回路42の出力データをFIFOメモリ27及び動き検出回路30に送るイントラAV演算回路43とを有する。
ここで、イントラACは、Iピクチヤにおいて、8×8画素のDCT変換(離散コサイン変換)ブロツク内の各画素の画素値とDCT変換ブロツク内の画素値の平均値との差分の絶対値の総和として定義され、絵柄の複雑さを表すものである。
エンコーダ28は、減算回路44において、FIFOメモリ27の出力データと予測画素データとの差分をとり、この減算回路44の出力データに対して、DCT変換回路45においてDCT変換ブロツク単位でDCT変換を行うことにより、DCT変換係数を出力し、このDCT変換回路45の出力データを量子化回路46によつて量子化した後、可変長符号化回路47によつて可変長符号化する。この可変長符号化回路47の出力データはバツフアメモリ48によつて一旦保持され、一定のビツトレートのビツトストリームからなる圧縮画像データS26として出力される。
量子化回路46の出力データは逆量子化回路49によつて逆量子化され、この逆量子化回路49の出力データに対して逆DCT変換回路50が逆DCT変換を行う。この逆DCT変換回路50の出力データは加算回路51によつて予測画像データとを加算され、この加算回路51の出力データを動き補償回路52において保持し、動き検出回路14から送られる動きベクトルに応じて動き補償を行つて予測画像データを減算回路44及び加算回路51に出力する。
バツフアメモリ48は、可変長符号化回路47より発生されるビツト量を表す発生ビツト量データS27を符号化制御部31に送るようになつている。
動き検出回路30は、エンコーダ制御部26の出力データに基づいて、圧縮符号化の対象となるピクチヤの注目マクロブロツクと、参照されるピクチヤにおいて注目マクロブロツクとの間の画素値の差分の絶対値和又は自乗和が最小となるマクロブロツクを探して、動きベクトルを検出して動き補償回路52に送る。また、動き検出回路30は、動きベクトルを求める際に、最小となつたマクロブロツク間における画素値の差分の絶対値和又は自乗和を、ME残差データS29として符号化制御部31に送る。
符号化制御部31は、動き検出回路30からのME残差データS29をピクチヤ全体について足し合わせた値であるME残差をME残差計算部61において算出し、このME残差計算部61によつて算出されたME残差とイントラAC演算回路43からのイントラACデータS28とに基づいて、符号化難易度計算部42によつてピクチヤの符号化の難易度を表す符号化難易度を算出する。バツフアメモリ48からの発生ビツト量データS27はこの第2の実施の形態に係る画像符号化装置28によつて圧縮符号化された画像データを伸張する画像復号化装置における入力バツフアに対応する仮想的なバツフアであるVBVバツフアのデータ占有量を、VBVバツフア占有量計算部62において算出する。なお、ME残差は、映像の動きの速さ及び絵柄の複雑さを表す。
符号化制御部31は、さらに、符号化難易度計算部63によつて算出された符号化難易度とVBVバツフア占有量計算部62によつて算出されたVBVバツフアの占有量とに基づいて目標符号量を決定すると共に、VBVバツフアのアンダフローを防止するために画像に対する符号化処理を停止するスキツプを行うか否かの判定を行う目標符号量決定部64を有し、エンコーダ28における発生符号化量が目標符号量決定部64によつて決定された目標符号量となるように量子化回路46における量子化特性値に対応する量子化インデツクスを量子化インデツクス決定部65において決定して量子化回路46に送る。かくして目標符号量決定部64によつてスキツプを行うと判定された場合には、スキツプ制御部66が量子化回路46及び可変長符号化回路47を制御してスキツプを行わせる。
ここで、符号化難易度について説明する。符号化難易度は、ピクチヤの符号化の難易度を表すものであるが、これは、同じ画質を保つために必要なデータ量の比率と言い換えることができる。符号化難易度を数値化する方法は種々考えられるが、この第2の実施の形態では、IピクチヤについてはイントラACを用いて符号化難易度を求め、Pピクチヤ及びBピクチヤについてはME残差を用いて符号化難易度を求める。前述のように、イントラACは絵柄の複雑さを表し、ME残差は映像の動きの速さ及び絵柄の複雑さを表し、これらは符号化の難易度と強い相関があるので、イントラACやME残差を変数とする一次関数等により、イントラACやME残差から符号化難易度を算出することができる。
次に、符号化難易度に基づいてVBVバツフアのアンダフローの危険度を判定する方法について説明する。すでに説明したように、VBVバツフアのアンダフローが発生するのは、目標符号量に対して発生符号量が大きく上回るような場合である。このようなことは、ビツトレートに対して入力画像の符号化難易度が非常に大きい場合に生じる。そこで、VBVバツフアのアンダフローの危険度を判定するためのパラメータとしては、ビツトレートに対する符号化難易度の比率を用いるのが適当である。また、さらに、VBVバツフアのアンダフローの危険度を判定するためには、これから符号化する予定の数枚以内のピクチヤにおける、上記ビツトレートに対する符号化難易度の比率を見ることが重要である。これは、符号化難易度は、ピクチヤタイプによつて変動するからである。そこで、この第2の実施の形態では、VBVバツフアのアンダフローの危険度を判定するためのパラメータとして、次式によつて定義されるパラメータxを用いる。
x=ΣDk/G ……(1)
ここで、Dkはピクチヤkの符号化難易度を表し、kはピクチヤの符号化順を表し、次に符号化する予定のピクチヤをk=1とする。Σはk=1からN(Nは1GOP(グループ・オブ・ピクチヤ)分のピクチヤの枚数)までの総和を意味する。また、Gは次式、
G=(〔ビツトレート〕×N)/〔ピクチヤレート〕 ……(2)
によつて定義される。
(2)式において、〔ビツトレート〕は、通信回線の伝送容量や記録媒体の記録容量に基づいて決められる1秒当たりのデータ量(ビツト量)を表し、〔ピクチヤレート〕は、1秒当たりのピクチヤの枚数(例えばNTSC圏では30、PAL圏では25)である。従つて、Gは、N枚分のピクチヤに対応する時間に割り当てられるデータ量(ビツト量)を表し、xは、N枚分のピクチヤに対応する時間に割り当てられるデータ量(ビツト量)に対するN枚分のピクチヤの符号化難易度Dkの和の比率を表す。
なお、必ずしもN枚分のピクチヤを用いてxを求める必要はなく、Nより大きい数や小さい数の枚数分のピクチヤを用いてxを求めるようにしても良い。ただし、Nよりもあまり大きい数をとるとアンダフローの危険度の判定の精度が落ち、Nよりもあまり小さい数をとるとパラメータxの変動が大きくなることに留意する必要がある。
次に、第2の実施の形態に係る画像符号化装置25の動作について説明する。入力画像信号S25は、エンコーダ制御部26に入力される。エンコーダ制御部26では、まず、画像並べ替え回路41によつて、符号化する順番に従つてピクチヤ(Iピクチヤ、Pピクチヤ、Bピクチヤ)の順番を並べ替え、次に、走査変換・マクロブロツク化回路42によつて、フレーム構造かフイールド構造かを判別し、判別結果に応じた走査変換及びマクロブロツク化を行い、次に、Iピクチヤの場合には、イントラAC演算回路43によつてイントラACを算出してイントラACデータS28を符号化制御部31に送る。また、走査変換、マクロブロツク化回路42の出力データは、イントラAC演算回路43を経て、FIFOメモリ27及び動き検出回路30に送られる。
FIFOメモリ27は、符号化難易度計算部63において、符号化が終了したピクチヤに引き続くN枚分のピクチヤの符号化難易度を算出するのに必要な時間だけ、入力した画像データを遅延して、エンコーダ28に出力する。動き検出回路30は、動きベクトルを検出して動き補償回路52に送ると共に、ME残差データS29をME残差計算部61に送る。
Iピクチヤの場合には、エンコーダ28では、減算回路44において予測画像データとの差分をとることなく、FIFOメモリ27の出力データをそのままDCT変換回路45に入力してDCT変換を行い、量子化回路46によつてDCT変換係数を量子化し、可変長符号化回路47によつて量子化回路46の出力データを可変長符号化し、バツフアメモリ48によつて可変長符号化回路47の出力データを一旦保持し、一定のビツトレートのビツトストリームからなる圧縮画像データS26として出力する。
また、逆量子化回路49によつて量子化回路46の出力データを逆量子化し、逆DCT変換回路50によつて逆量子化回路49の出力データに対して逆DCT変換を行い、逆DCT変換回路50の出力画像データを加算回路51を介して動き補償回路52に入力して保持させる。
Pピクチヤの場合には、エンコーダ28では、動き補償回路52によつて、保持している過去のIピクチヤ又はPピクチヤに対応する画像データと動き検出回路30からの動きベクトルとに基づいて予測画像データを生成し、予測画像データを減算回路44及び加算回路51に出力する。また、減算回路44によつて、FIFOメモリ27の出力データと動き補償回路52からの予測画像データとの差分をとり、DCT変換回路45によつてDCT変換を行い、量子化回路46によつてDCT変換係数を量子化し、可変長符号化回路47によつて量子化回路46の出力データを可変長符号化し、バツフアメモリ48によつて可変長符号化回路47の出力データを一旦保持し圧縮画像データS26として出力する。また、逆量子化回路49によつて量子化回路46の出力データを逆量子化し、逆DCT変換回路50によつて逆量子化回路49の出力データに対して逆DCT変換を行い、加算回路51によつて逆DCT変換回路50の出力データと予測画像データとを加算し、動き補償回路52に入力して保持させる。
Bピクチヤの場合には、エンコーダ28では、動き補償回路52によつて、保持している過去及び未来のIピクチヤ又はPピクチヤに対応する2つの画像データと動き検出回路30からの2つの動きベクトルとに基づいて予測画像データを生成し、予測画像データを減算回路44及び加算回路51に出力する。また、減算回路44によつて、FIFOメモリ27の出力データと動き補償回路52からの予測画像データとの差分をとり、DCT変換回路45によつてDCT変換を行い、量子化回路46によつてDCT変換係数を量子化し、可変長符号化回路47によつて量子化回路46の出力データを可変長符号化し、バツフアメモリ48によつて可変長符号化回路47の出力データを一旦保持し、圧縮画像データS26として出力する。なお、Bピクチヤは動き補償回路52に保持させない。
なお、バツフアメモリ48は可変長符号化回路47より発生されるビツト量を表す発生ビツト量データS27を符号化制御部31に送る。
次に、図10のフローチヤートを参照して、符号化制御部31の動作について説明する。この動作では、まず、符号化難易度計算部63によつて、イントラAC演算回路43からのイントラACデータS28とME残差計算部61で算出したME残差より、符号化難易度を計算し、パラメータxを求める(ステツプSP21)。なお、パラメータxは、今から符号化する予定のピクチヤに引き続くN枚分のピクチヤの符号化難易度に基づいて算出される。
次に、スキツプフラグが“1”か否かを判断する(ステツプSP22)。スキツプフラグは、“1”のとき、今から符号化する予定のピクチヤをスキツプすることを示し、“0”のとき、今から符号化する予定のピクチヤをスキツプしないことを示す。
スキツプフラグが“0”の場合(ステツプSP22において否定結果が得られた場合)には、目標符号量決定部64によつて、パラメータxとVBVバツフア占有量計算部62によつて算出されているVBVバツフアの占有量とに基づいて、ピクチヤjの目標符号量を計算し(ステツプSP23)、量子化インデツクス決定部65に送る。なお、ピクチヤjは、今から符号化するピクチヤを意味する。
次に、量子化インデツクス決定部65によつて、エンコーダ28における発生符号量が目標符号量決定部64によつて決定された目標符号量となるように量子化回路46における量子化特定値に対応する量子化インデツクスを決定し、量子化回路46に送る。これに応じて、ピクチヤjの符号化が行われる(ステツプSP24)。
一方、スキツプフラグ“1”の場合(ステツプSP22において肯定結果が得られた場合)には、目標符号量決定部64は、ピクチヤjをスキツプすることをスキツプ制御部66に指示し、これに応じて、スキツプ制御部66は、前のフレームを表示するように処理する(ステツプSP25)。すなわち、スキツプ制御部66は、量子化回路46を制御してマクロブロツク単位でスキツプを行わせると共に、可変長符号化回路47に対してスキツプするマクロブロツクのアドレス情報を送る。これに応じて、可変長符号化回路47は、スキツプするための情報を符号化して出力する。このようにして、ピクチヤjは、スキツプされたマクロブロツクであるスキツプマクロブロツクで構成されるピクチヤとして符号化される。
ステツプSP24又はステツプSP25が終了したら、VBVバツフア占有量計算部62によつて、ステツプSP24又はステツプSP25による発生ビツト量からVBVバツフアの占有量Bjを計算する(ステツプSP26)。なお、VBVバツフアの占有量Bjは、ピクチヤjの符号化前のVBVバツフアの占有量からピクチヤjによる発生ビツト量を引き、1ピクチヤ間の時間にVBVバツフアに蓄積されるビツト量を加算することによつて得ることができる。次に、次のピクチヤのピクチヤタイプを判定する(ステツプSP27)。ピクチヤタイプがBピクチヤの場合には、VBVバツフアの占有量BjがBピクチヤに対する占有量判定用しきい値Th(B)より小さいか否かを判別する(ステツプSP28)。ピクチヤタイプがPピクチヤの場合には、VBVバツフアの占有量BjがPピクチヤに対する占有量判定用しきい値Th(P)より小さいか否かを判断する(ステツプSP29)。ピクチヤタイプがIピクチヤの場合には、VBVバツフアの占有量BjがIピクチヤに対する占有量判定用しきい値Th(I)より小さいか否かを判断する(ステツプSP30)。なお、占有量判定用しきい値は、Th(B)>Th(P)>Th(I)となるように設定されている。
BjがTh(B)より小さくない場合(ステツプSP28において否定結果が得られる場合)、BjがTh(P)より小さくない場合(ステツプSP29において否定結果が得られた場合)又はBjがTh(I)より小さくない場合(ステツプSP30において否定結果が得られる場合)は、次のピクチヤをスキツプする必要がないので、スキツプフラグを“0”にする(ステツプSP31)。
BjがTh(B)より小さい場合(ステツプSP28において肯定結果が得られる場合)、BjがTh(P)より小さい場合(ステツプSP29において肯定結果が得られた場合)又はBjがTh(I)より小さい場合(ステツプSP30において肯定結果が得られた場合)は、パラメータxが所定の符号化難易度判定用しきい値Th(x)を越えているか否かを判断する(ステツプSP32)。なお、しきい値Th(x)は、目標符号量に対して発生符号量が大きく上回つてしまうほど難しい絵柄か否かを判別するためのしきい値である。xがTh(x)を越えていない場合(N)は、絵柄は今後さほど難しくないことを意味し、次のピクチヤをスキツプする必要がないので、スキツプフラグを“0”にする(ステツプSP31)。逆に、xがTh(x)を越えている場合(肯定結果が得られる場合)は、今後も難しい絵柄が続くことを意味するので、この場合はVBVバツフアのアンダフローの危険性が高いと判断して、次のピクチヤをスキツプするために、スキツプフラグを“1”にする(ステツプSP33)。
スキツプフラグの設定(ステツプSP31、ステツプSP33)が終了したら、次のピクチヤの処理のために、j+1を新たなjとして(ステツプSP34)、メインルーチンにリターンする(ステツプSP35)。
以上説明したように、第2の実施の形態に係る画像符号化装置25によれば、ピクチヤタイプ別にVBVバツフアの占有量判定用しきい値を設定し、Bピクチヤ、Pピクチヤ、Iピクチヤの順に優先的にスキツプするようにすると共に、符号化が終了したピクチヤに引き続く数枚のピクチヤの符号化難易度に基づいてスキツプを行うか否かを判定するようにしたので、入力画像の絵柄が難しくなり、VBVバツフアのアンダフローが発生しそうな場合に、画質に対する影響の少ないBピクチヤを優先的にスキツプすると共に、実際にはVBVバツフアのアンダフローが発生しないような場合にはピクチヤのスキツプを行わないようにすることができ、画質に対する影響を極力抑えながら、VBVバツフアのアンダフローを防止することができる。
なお、本発明は、上述の第2の実施の形態に限定されず、例えば、符号化難易度に基づいてスキツプを行うか否かを判定する際に、実施の形態で用いたパラメータxの他に、符号化難易度が増加傾向にあるのか減少傾向にあるのかという変化傾向の情報も加えて判定することで、今後の入力画像の絵柄の難しさの予測精度を更に向上させて、スキツプを行うか否かの判定をより適切に行うことができる。すなわち、例えば、今は符号化難易度が大きくても符号化難易度が減少傾向にある場合にはスキツプを行わなくともVBVバツフアのアンダフローが発生しない場合もあるので、このような場合にはスキツプを行わないようにすることでスキツプを極力少なくすることが可能となる。なお、符号化難易度の変化傾向の情報は、例えば、時系列的に求まつた符号化難易度を最小自乗法等により直線近似し、その傾きから求めることができる。この場合、符号化難易度の変化傾向の情報は、例えば、図9における符号化難易度計算部63において求める。
また、上記第2の実施の形態では、図8に示したように、エンコーダ28の他に別のエンコーダを設けることなく、圧縮符号化する前の画像データの特徴に基づいて発生符号量の制御を行うフイードフオワード型のレート制御を行う構成としたが、本発明は、圧縮符号化後のデータ量を見積もるためにエンコーダ28とは別の1バス目のエンコーダを設けて、この1バス目のエンコーダによつて圧縮符号化することによつて見積もられたデータ量に基づいて2バス目のエンコーダ28における発生符号量の制御を行うフイードフオワード型のレート制御を行う構成にも適用することができる。この場合には、1バス目のエンコーダによつて圧縮符号化することによつて得られた発生符号量に基づいて符号化難易度を求めることが可能である。
更に、本発明は、フイードフオワード型のレート制御を行う構成に限らず、既に圧縮符号化したピクチヤの符号化難易度に基づいて今後のピクチヤの符号化難易度を予測することで、MPEG方式の圧縮アルゴリズムとして有名なTM5(test model 5:ISO/IEC JTC/SC29(1993))等で代表されるような、過去に圧縮符号化して得られた発生符号量に基づいて発生符号量の制御を行うフイードバツク型のレート制御を行う構成にも適用することができる。この場合、例えば、過去に圧縮符号化したピクチヤのグローバル・コンプレキシテイ(Global Complexity)の傾向を分析し、直線近似等によつて今後の数枚分のピクチヤの符号化難易度を予測し、この予測した符号化難易度に基づいて実施の形態で用いたパラメータxの値を求め、実施の形態と同様にパラメータxの値に基づいてスキツプを行うか否かを判定するようにすれば良い。
なお、グローバル・コンプレキシテイとは、画面の複雑さを示すパラメータであり、符号化の難易度と相関があり、具体的にはピクチヤの圧縮符号化時の発生符号量とピクチヤの圧縮符号化時の平均量子化スケールコード(量子化特性値)との積として求められる(例えば、オーム社発行の「テレビジヨン学会マルチメデイア選書 MPEG」の第111ページ参照)。
また、フイードフオワード型のレート制御を行う構成において直線近似等によつて符号化難易度の変化傾向を求める場合や、フイードバツク型のレート制御を行う構成において直線近似等によつて今後の数枚分のピクチヤの符号化難易度を予測する場合において、シーンチエンジ時には符号化難易度の連続性がなくなるので、シーンチエンジ時には、符号化難易度の変化傾向を求める処理や符号化難易度を予測する処理をシーンチエンジ前までで完結させ、シーンチエンジ後に新たに処理を行うようにすれば、より精度が向上する。
また、符号化難易度は、実施の形態で挙げたイントラACやME残差等を用いたものに限らず、ピクチヤの符号化の難易度を表すものであれば、他のパラメータでも良い。
また、上記第2の実施の形態では、ピクチヤタイプ別にVBVバツフアの占有量判定用しきい値を変えているが、本発明はVBVバツフアの占有量判定用しきい値がピクチヤタイプによらずに一定である場合も含む。
1……画像符号化装置、2……画像符号化タイプ指定回路、3……画像符号化順序並替え回路、4……スキヤンコンバータ、5……予測モード決定回路、6……動きベクトル検出回路、7……符号化制御回路、8……演算回路、9……DCT変換回路、10……量子化回路、11……可変長符号化回路、12……逆量子化回路、13……画像復号装置、14……逆DCT変換回路、15……演算器、16……フレームメモリ、17……動き補償回路、18……デコーダバツフア、19……復号部、26……エンコーダ制御部、27……FIFOメモリ、28……エンコーダ、30……動き検出回路、31……符号化制御部、33……CPU、34……ROM、35……RAM、43……イントラAC演算回路、44……減算回路、45……DCT変換回路、46……量子化回路、47……可変長符号化回路、48……バツフアメモリ、49……逆量子化回路、50……逆DCT変換回路、52……動き補償回路、61……ME残差計算部、62……VBVバツフア占有量計算部、63……符号化難易度計算部、64……目標符号量決定部、65……量子化インデツクス決定部、66……スキツプ制御部。