(57)【要約】【課題】面内の画質がスライス単位で不均一になりすぎることを抑制する。【解決手段】符号化装置１は、各スライスに対し、前フレームで求めた目標符号量に基づき量子化スケールを算出する量子化スケール算出回路１０１と、前フレームで求めた各スライスの量子化スケールを保持・設定する量子化スケール保持設定回路１０２とを有する。符号化装置１は、量子化スケール保持設定回路１０１により設定された量子化スケールを用いて現フレームを量子化し符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する符号化ステージ１を実施すると共に、全スライスに同一の量子化スケールを設定して量子化し、符号化して発生符号量を算出する符号化ステージ２を実施し、符号化ステージ１における量子化スケールと、符号化ステージ２における発生符号量とに基づき、全スライスの量子化スケールを更新する。【選択図】図２
2012004794.tif 000002
【特許請求の範囲】
【請求項１】
１フレームをスライス化して符号化する符号化装置であって、
各スライスに対し、前フレームで求めた目標符号量に基づき量子化スケールを算出する量子化スケール算出手段と、
前フレームで求めた各スライスの量子化スケールを保持・設定する量子化スケール保持設定手段と、
を有し、
前記量子化スケール保持設定手段により設定された量子化スケールを用いて現フレームを量子化し符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する第１の符号化処理を実施すると共に、
全スライスに同一の量子化スケールを設定して量子化し、符号化して発生符号量を算出する第２の符号化処理を実施し、
前記量子化スケール算出手段は、前記第１の符号化処理における量子化スケールと、前記第２の符号化処理における発生符号量とに基づき、全スライスの量子化スケールを更新することを特徴とする符号化装置。
【請求項２】
前記量子化スケール算出手段は、画像が簡単なスライスの消費ビットを減少させるよう全スライスの量子化スケールを更新することを特徴とする請求項１記載の符号化装置。
【請求項３】
前記量子化スケール算出手段は、画像が複雑なスライスの消費ビットを増加させるよう全スライスの量子化スケールを更新することを特徴とする請求項１又は２記載の符号化装置。
【請求項４】
前記量子化スケール算出手段は、
前記第１の符号化処理において、最も粗い量子化スケールＱｈで符号化したスライスＮｘ（ｘは自然数）を全部求めるスライス抽出手段と、
前記第２の符号化処理において、発生した各スライスの符号量Ｂｘ（ｘは自然数）を読み出す符号量読出手段と、
前記スライスＮｘの符号量Ｂｘのうち最大である符号量Ｂｈが、全スライスの符号量Ｂｘの平均値Ｂａを超える場合、各スライスについてその符号量Ｂｘが平均値Ｂａを下回るスライスの量子化スケールを、量子化スケールＱｈに置き換える量子化スケース更新手段と、
を有することを特徴とする請求項１乃至３のいずれか１項記載の符号化装置。
【請求項５】
１フレームをスライスに分割して量子化する量子化手段と、
各スライスの符号長を算出する符号長算出手段と、
目標符号量及び量子化スケールを決定するためのパラメータを設定するパラメータ設定手段と、
を有し、
前記パラメータ設定手段は、
前記量子化スケール算出手段及び前記量子化スケール保持設定手段と、
１フレームの目標符号量から各スライスの前記目標符号量を算出する目標符号量算出手段と、
前記各スライスの前記目標符号量を保持し、前記符号長算出手段に設定する目標符号量設定保持設定手段と、
を有し、
前記第１の符号化処理では、前記量子化スケール保持設定手段により設定された量子化スケールを用いて前記量子化手段により現フレームを量子化し、前記符号量算出手段により、符号化して発生符号量を算出し、
前記第２の符号化処理では、前記量子化手段が、前記同一の量子化スケールを全スライスに設定して量子化し、前記符号量算出手段により、符号化して発生符号量を算出することを特徴とする請求項１乃至４のいずれか１項記載の符号化装置。
【請求項６】
前記第１の符号化処理では、前記量子化スケール保持設定手段により設定された量子化スケールを用いて各スライスを量子化し符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する処理を１以上繰り返すことを特徴とする請求項１乃至５のいずれか１項記載の符号化装置。
【請求項７】
１フレームをスライス化して符号化する符号化方法であって、
前フレームで求めた各スライスの量子化スケールを用いて量子化し符号化して算出された発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する第１の符号化処理工程と、
全スライスに同一の量子化スケールを設定して量子化し、符号化して発生符号量を算出する第２の符号化処理工程と、
前記第１の符号化処理工程にて求めた量子化スケールと、前記第２の符号化処理工程にて求めた発生符号量とに基づき、全スライスの量子化スケールを更新する第３の符号化処理工程と、
を有することを特徴とする符号化方法。
【請求項８】
前記第３の符号化処理工程は、
前記第１の符号化処理工程において、最も粗い量子化スケールＱｈで符号化したスライスＮｘ（ｘは自然数）を全部求めるスライス抽出工程と、
前記第２の符号化処理工程において、発生した各スライスの符号量Ｂｘ（ｘは自然数）を読み出す符号量読出工程と、
前記スライスＮｘの符号量Ｂｘのうち最大である符号量Ｂｈが、全スライスの符号量Ｂｘの平均値Ｂａを超える場合、各スライスについてその符号量Ｂｘが平均値Ｂａを下回るスライスの量子化スケールを、量子化スケールＱｈに置き換える量子化スケース更新工程と、
を有することを特徴とする請求項７記載の符号化方法。
【請求項９】
前記第１の符号化処理工程は、
前フレームで求めた各スライスの量子化スケールを用いて各スライスを量子化する量子化工程と、
前記量子化工程にて量子化されたスライスを符号化して発生符号量を算出する符号化工程と、
前記符号化工程にて算出された前記発生符号量と前フレームで求めた目標符号量とから量子化スケールを更新する量子化スケール更新工程と、
を有することを特徴とする請求項７又は８記載の符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は符号化装置、及び符号化方法に関し、特にスライス単位で画像を高能率に符号化する符号化装置、及び符号化方法に関する。
【背景技術】
【０００２】
近年のマルチメディア時代において、画像を効率的に圧縮して伝送する技術は極めて重要であり、高画質化が進む一方で、特にリアルタイム処理で符号化を行う際の遅延時間もクローズアップされている。
【０００３】
遅延時間のなるべく少ない（低遅延な）符号化方法は、各種開発されており、それらの多くは、面間予測を使用しない面内のみの処理で、かつ、面内を複数の領域（スライス）に分割して、順次符号化、出力するものである。
【０００４】
なお、リアルタイム処理でかつスライス単位で量子化スケールを変化させる方法としては、特許文献１及び特許文献２などが知られている。例えば特許文献１に記載の技術は、動画像データをあらかじめ設定した平均ビットレートのもとで、可変ビットレートで符号化する動画像可変ビットレート符号化装置に関する。この動画像可変ビットレート符号化装置は、与えられた量子化幅で入力動画像データを符号化し、符号化データと発生符号量とを出力する動画像符号化手段と、動画像符号化手段で既に符号化済みの画像について、動画像符号化手段に与えた量子化幅と、動画像符号化手段から得られる発生符号量とから、平均ビットレートに対応して、第１の画像単位ごとに、以降に入力される画像に適用するための基準となる基準量子化幅を定める量子化幅設定手段とを有する。さらに、動画像符号化手段から得られる発生符号量と平均ビットレートに対する過不足量とから第１の画像単位よりも小さい第２の画像単位ごとに基準量子化幅を調整し、その調整後の量子化幅を動画像符号化手段に与える量子化幅調整手段を有するものである。
【０００５】
また、特許文献２に記載の技術は、動画像データをあらかじめ設定した平均ビットレートのもとで、可変ビットレートで符号化する動画像可変ビットレート符号化方法に関するものである。この動画像可変ビットレート符号化方法は、与えられた量子化幅で入力動画像データを符号化し、符号化データと発生符号量とを出力する動画像符号化工程と、動画像符号化工程に与えた量子化幅と、動画像符号化工程から得られる発生符号量とから、第１の画像単位ごとの複雑度を計算する第１画像単位複雑度計算工程とを有する。さらに、動画像符号化工程に与えた量子化幅と、動画像符号化工程から得られる発生符号量とから、符号化開始時から現在まで符号化した画像までの平均複雑度を計算する平均複雑度計算工程と、第１の画像単位ごとの複雑度と平均複雑度とを比較して小さな方の複雑度を選択し、前記選択した複雑度とあらかじめ設定された平均ビットレートとから第１の画像単位の量子化幅を計算する量子化幅計算工程とを有する。さらにまた、量子化幅計算工程にて計算された量子化幅を、動画像符号化工程から得られる発生符号量とあらかじめ設定された平均ビットレートとからの過不足量とから第１の画像単位より小さい第２の画像単位ごとに量子化幅を調整し、動画像符号化工程に与える量子化幅調整工程とを有するものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３２５９７０２号公報
【特許文献２】特許第３５０８９１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、画像には情報量が多い画像（複雑な画像）と、情報量が少ない画像（簡単な画像）とがあるため、領域ごとの発生符号量が一定にならない。したがって、単位領域あたりの発生符号量をある程度一定にするには、画像の複雑さに応じて領域ごとに量子化スケールを変化させることが考えられるが、必ずしも適切な量子化スケールの算出が行われず、面内の画質が不均一になることがあった。
【０００８】
すなわち、従来の課題としては、下記のものがあげられる。
画像が簡単なスライスの量子化スケールが細かくなりすぎる。
画像が簡単なスライスに過大な符号量が割り当てられる。
画像が簡単なスライスの画質が必要以上に良くなる。
画像が複雑なスライスに十分な符号量が割り当てられない。
画像が複雑なスライスの量子化スケールが粗くなりすぎる。
画像が複雑なスライスの画質が必要以上に悪くなる。
画質が不均一になり、見苦しくなる。
【０００９】
本発明は、このような問題点を解決するためになされたものであり、画像が簡単なスライスの消費ビットを減少させ、又は画像が簡単ではないスライスの消費ビットを増加させることにより、面内の画質がスライス単位で不均一になりすぎることを抑制した符号化装置、及び符号化方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために、本発明に係る符号化装置は、１フレームをスライス化して符号化する符号化装置であって、各スライスに対し、前フレームで求めた目標符号量に基づき量子化スケールを算出する量子化スケール算出手段と、前フレームで求めた各スライスの量子化スケールを保持・設定する量子化スケール保持設定手段と、を有し、前記量子化スケール保持設定手段により設定された量子化スケールを用いて現フレームを量子化し符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する第１の符号化処理を実施すると共に、全スライスに同一の量子化スケールを設定して量子化し、符号化して発生符号量を算出する第２の符号化処理を実施し、前記量子化スケール算出手段は、前記第１の符号化処理における量子化スケールと、前記第２の符号化処理における発生符号量とに基づき、全スライスの量子化スケールを更新することを特徴とするものである。
【００１１】
本発明においては、第１の符号化処理における量子化スケールと、第２の符号化処理における発生符号量とに基づき、全スライスの量子化スケールを更新する。第１の符号化処理における量子化スケールでは、量子化スケール保持設定手段により設定された量子化スケールを用いて量子化し符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新しているため、ある程度量子化スケールと画像の複雑度が対応している。一方、第２の符号化処理においては、同一の量子化スケールを使用して全スライスを量子化しているので、発生符号量は、画像の複雑さと相関が強い。これらの値を利用することで、面内の画質がスライス単位で不均一になりすぎることを抑制することができる。
【００１２】
また、前記量子化スケール算出手段は、画像が簡単なスライスの消費ビットを減少させるよう、又は、画像が複雑なスライスの消費ビットを増加させるよう全スライスの量子化スケールを更新することを特徴とするものである。これにより、面内の画質のスライス単位での不均一を抑制することができる。
【００１３】
さらに、前記量子化スケール算出手段は、前記第１の符号化処理において、最も粗い量子化スケールＱｈで符号化したスライスＮｘ（ｘは自然数）を全部求めるスライス抽出手段と、前記第２の符号化処理において、発生した各スライスの符号量Ｂｘ（ｘは自然数）を読み出す符号量読出手段と、前記スライスＮｘの符号量Ｂｘのうち最大である符号量Ｂｈが、全スライスの符号量Ｂｘの平均値Ｂａを超える場合、各スライスについてその符号量Ｂｘが平均値Ｂａを下回るスライスの量子化スケールを、量子化スケールＱｈに置き換える量子化スケース更新手段とを有することを特徴とするものである。これにより、スライスＮｘの符号量Ｂｘのうち最大である符号量Ｂｈが、全スライスの符号量Ｂｘの平均値Ｂａを超える場合、各スライスについてその符号量Ｂｘが平均値Ｂａを下回るスライスの量子化スケールを、量子化スケールＱｈに置き換えるため、符号量が過剰に割り振られているスライスの量子化スケールを粗く更新することができ、その分の符号量を符号量が足りていないスライスに回すことができる。
【００１４】
さらにまた、１フレームをスライスに分割して量子化する量子化手段と、各スライスの符号長を算出する符号長算出手段と、目標符号量及び量子化スケールを決定するためのパラメータを設定するパラメータ設定手段とを有し、前記パラメータ設定手段は、前記量子化スケール算出手段及び前記量子化スケール保持設定手段と、１フレームの目標符号量から各スライスの前記目標符号量を算出する目標符号量算出手段と、前記各スライスの前記目標符号量を保持し、前記符号長算出手段に設定する目標符号量設定保持設定手段とを有し、前記第１の符号化処理では、前記量子化スケール保持設定手段により設定された量子化スケールを用いて前記量子化手段により現フレームを量子化し、前記符号量算出手段により、符号化して発生符号量を算出し、前記第２の符号化処理では、前記量子化手段が、前記同一の量子化スケールを使用して量子化し、前記符号量算出手段により、符号化して発生符号量を算出することを特徴とするものである。この構成では、パラメータ設定手段により、より正確に量子化スケールを決定することができ、相対的に過大な符号量が割り当てられているようなスライスが生成されるのを抑制することができる。
【００１５】
また、前記第１の符号化処理では、前記量子化スケール保持設定手段により設定された量子化スケールを用いて各スライスを量子化し符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する処理を１以上繰り返すことを特徴とするものである。この構成では、最適な値に収束するまで量子化スケールの更新を行うことも可能である。
【００１６】
本発明に係る符号化方法は、１フレームをスライス化して符号化する符号化方法であって、前フレームで求めた各スライスの量子化スケールを用いて量子化し符号化して算出された発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する第１の符号化処理工程と、全スライスに同一の量子化スケールを設定して量子化し、符号化して発生符号量を算出する第２の符号化処理工程と、前記第１の符号化処理工程にて求めた量子化スケールと、前記第２の符号化処理工程にて求めた発生符号量とに基づき、全スライスの量子化スケールを更新する第３の符号化処理工程と、を有することを特徴とするものである。
また、前記第３の符号化処理工程は、前記第１の符号化処理工程において、最も粗い量子化スケールＱｈで符号化したスライスＮｘ（ｘは自然数）を全部求めるスライス抽出工程と、前記第２の符号化処理工程において、発生した各スライスの符号量Ｂｘ（ｘは自然数）を読み出す符号量読出工程と、前記スライスＮｘの符号量Ｂｘのうち最大である符号量Ｂｈが、全スライスの符号量Ｂｘの平均値Ｂａを超える場合、各スライスについてその符号量Ｂｘが平均値Ｂａを下回るスライスの量子化スケールを、量子化スケールＱｈに置き換える量子化スケース更新工程と、を有することを特徴とするものである。
さらにまた、前記第１の符号化処理工程は、前フレームで求めた各スライスの量子化スケールを用いて各スライスを量子化する量子化工程と、前記量子化工程にて量子化されたスライスを符号化して発生符号量を算出する符号化工程と、前記符号化工程にて算出された前記発生符号量と前フレームで求めた目標符号量とから量子化スケールを更新する量子化スケール更新工程と、を有することを特徴とするものである。
【発明の効果】
【００１７】
本発明によれば、画像が簡単なスライスの消費ビットを減少させ、又は画像が簡単ではないスライスの消費ビットを増加させることにより、面内の画質がスライス単位で不均一になりすぎることを抑制した符号化装置、及び符号化方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態にかかる符号化装置を示すブロック図である。
【図２】本発明の実施の形態に係る符号量制御回路の詳細を示すブロック図である。
【図３】量子化スケール算出回路の詳細を示すブロック図である。
【図４】符号化ステージ１乃至３の各工程を示すフローチャートである。
【図５】量子化スケールの更新２の方法を示すフローチャートである。また、
【図６】量子化スケールの更新２を説明するための図である。
【発明を実施するための形態】
【００１９】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、フレームを複数のスライスに分割して符号化する符号化装置であって、面内の画質がスライス単位で不均一になりすぎないようにした符号化装置に適用したものである。
【００２０】
図１は、本実施の形態にかかる符号化装置を示すブロック図である。図１に示すように、符号化装置１は、フレーム化回路１０、スライス化回路１１、ブロック化回路１２、ＤＣＴ（Discrete Cosine Transform）変換回路１３、符号量制御回路２０、ハフマン符号化回路１７及びビットストリーム生成回路１８を有する。
【００２１】
入力デジタル画像信号は、フレーム化回路１０で、１画面単位（以下、フレームという）で区切られ、続くスライス化回路１１によって横長の短冊状（例えば１６ライン分の領域、以下、スライスという）で区切られる。このスライスを単位として符号量制御とビットストリームの出力を行うが、スライスは、さらにブロック化回路１２で長方形（例えば、１６×１６画素分の領域、以下、マクロブロックという）に区切られた後、ＤＣＴ変換回路１３でマクロブロックを構成する輝度信号、色差信号ごとの集合単位（以下、ブロックという）で離散コサイン変換（Discrete Cosine Transform）を行い、その結果のＤＣＴ係数が符号量制御回路２０へ入力される。
【００２２】
符号量制御回路２０は、量子化回路１４とハフマン符号長算出回路１５とパラメータ設定回路１６とより構成され、後述する符号化ステージ１乃至３の処理（第１乃至第３の符号化処理）でスライス単位の目標符号量と量子化スケールが決定された後、各ブロックのＤＣＴ係数が量子化される。
【００２３】
量子化の結果は、ハフマン符号化回路１７でハフマン符号化されて、ビットストリーム生成回路１８で復号時に必要な情報が付加されたビットストリームがスライス単位で順次生成、出力される。
【００２４】
次に、符号量制御回路２０について更に詳細に説明する。図２は、本発明の実施の形態に係る符号量制御回路２０の詳細を示すブロック図である。図２に示すように、パラメータ設定回路１６は、量子化スケール算出回路１０１、量子化スケール保持設定回路１０２、発生符号量保持回路１０３、目標符号量算出回路１０４、目標符号量保持設定回路１０５及び符号化ステージ判定回路１０６を有している。
【００２５】
ここで、量子化スケール算出回路１０１は、各スライスに対し、目標符号量保持設定回路１０５に保存してある前フレームで求めた目標符号量に基づき量子化スケールを算出する。また、量子化スケール保持設定回路１０２は、前フレームで求めた各スライスの量子化スケールを保持し、量子化回路１４に設定する。目標符号量算出回路１０４は、１フレームの目標符号量から各スライスの前記目標符号量を算出する。また、目標符号量保持設定回路１０５は、各スライスの目標符号量を保持し、ハフマン符号長算出回路１５に設定する。
【００２６】
そして、この符号量制御回路２０は、符号化ステージ１乃至３の処理を実施する。符号化ステージ１では、量子化スケール保持設定回路１０２により設定された量子化スケールを用いて量子化回路１４により現フレームを量子化し、ハフマン符号長算出回路１５により符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する。符号化ステージ２では、全スライスに同一の量子化スケールを設定して量子化回路１４により量子化し、ハフマン符号長算出回路１５により符号化して発生符号量を算出する。そして、符号化ステージ３において、量子化スケール算出回路１０１は、符号ステージ１における量子化スケールと、符号化ステージ２における発生符号量とに基づき、全スライスの量子化スケールを更新する。
【００２７】
以下、下記ブロックについて詳細に説明する。
【００２８】
符号化ステージ判定回路１０６は、符号化の手順である符号化ステージ１乃至３を判定する。ステージ番号は単純に１、２、３、１、２、３、・・の繰り返しであり、ステージ番号は初期値が１、そして、後述するステップＳ５の終了時に＋１されて２、後述するステップＳ１０の終了時に＋１されて３に更新され、次のスライスのステップＳ１の開始時に再び初期値の１とし、このステージ番号により、各ステージを判定する。
【００２９】
量子化スケール算出回路１０１は、ハフマン符号長算出回路１５の算出結果である発生符号量を用いて量子化スケールをスライス単位で更新する。量子化スケール算出回路１０１は、上述のように、各スライスに対し、目標符号量保持設定回路１０５に保存してある前フレームで求めた目標符号量に基づき量子化スケールを算出する。この量子化スケールに基づき、ハフマン符号長算出回路１５は、発生符号量を算出する。量子化スケール算出回路１０１は、この発生符号量と、後述する目標符号量算出回路１０４が算出した前フレームにおける目標符号量とから、量子化スケールを更新するのである。
【００３０】
例えば、スライスの目標符号量を１０００ビット、ハフマン符号長算出回路１５の量子化スケールを３２段階（０：最も粗い〜３１：最も細かい）中の１６とする。この場合、ハフマン符号長算出回路１５の結果（発生符号量）もビット数で表され、この発生符号量が９００ビットであれば、量子化スケールを１７に、逆に１１００ビットであれば、量子化スケールを１５等に設定する。
【００３１】
量子化スケール保持設定回路１０２は、量子化スケール算出回路１０１で算出された量子化スケールを保持し、量子化回路１４で使用する量子化スケールをスライス単位で設定する。１フレーム前の全てのスライスの量子化スケールは、量子化スケール保持設定回路１０２内のメモリに保存されているため、このメモリから読み出して当該スライスの量子化スケールとして使用する。
【００３２】
発生符号量保持回路１０３は、ハフマン符号長算出回路１５の算出結果である発生符号量を保持する。
【００３３】
目標符号量算出回路１０４は、発生符号量保持回路１０３で保持された発生符号量を用いて目標符号量をスライス単位で算出する。例えば、１フレームの目標符号量から、符号化に最低限必要なヘッダ等の符号量を減算したものを原資として、各スライスの発生符号量に応じて比例配分する。ここで、本実施の形態においては、１秒を構成する３０フレーム間の目標符号量は固定とし、１フレームを構成する例えば１５スライス間の符号量は可変として説明する。なお、各フレーム間で符号量を可変としてもよく、また、各スライス間で目標符号量を一定としてもよい。
【００３４】
目標符号量保持設定回路１０５は、目標符号量算出回路１０４で算出された前フレームの目標符号量を保持し、ハフマン符号化回路１５で使用する目標符号量をスライス単位で設定する。
【００３５】
次に、このように構成された符号量制御回路２０の動作について説明する。符号量制御回路２０は、前フレームで求めた各スライスの量子化スケールで符号化した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新し（符号化ステージ１）、全スライスに同一の量子化スケールを設定して量子化し、符号化して発生符号量を算出し（符号化ステージ２）、符号化ステージ１にて求めた量子化スケールと、符号化ステージ２にて求めた発生符号量とに基づき、全スライスの量子化スケールを更新する（符号化ステージ３）。
【００３６】
この符号化ステージ３は、量子化スケール算出回路１０１で実施される。ここで、量子化スケール算出回路１０１の詳細について説明する。
図３は、量子化スケール算出回路１０１の詳細を示すブロック図である。図３に示すように、量子化スケール算出回路１０１は、スライス抽出部１１１、符号量読出部１１２、及び量子化スケール更新部１１３を有する。スライス抽出部１１１は、符号化ステージ１において、最も粗い量子化スケールＱｈで符号化したスライスＮｘ（ｘはスライス番号、例えば０≦ｘ≦１５）を全部求める。また、符号量読出部１１２は、符号化ステージ２において、発生した各スライスの符号量Ｂｘ（ｘはスライス番号）を発生符号量保持回路１０３から読み出す。そして、量子化スケール更新部１１３は、符号化ステージ３において、スライスＮｘの符号量Ｂｘのうち最大である符号量Ｂｈが、全スライスの符号量Ｂｘの平均値Ｂａを超える場合、各スライスについてその符号量Ｂｘが平均値Ｂａを下回るスライスの量子化スケールを、量子化スケールＱｈに置き換える。このようにして全スライスの量子化スケールが更新される。
【００３７】
以下、これら符号化ステージ１乃至３の各処理について詳細に説明する。図４は、符号化ステージ１乃至３の各工程を示すフローチャートである。
【００３８】
＜符号化ステージ１＞
符号量制御回路２０へ面内で最初のスライスに関わるＤＣＴ係数が入力されると、符号化ステージ判定回路１０６において符号化ステージ１と判定されて、符号化ステージ１の処理が開始される。
【００３９】
まず、量子化回路１４は、量子化スケール保持設定回路１０２に保存してある、前フレームで求めた量子化スケールを読み出し（ステップＳ１）、現フレームにおける各スライスに関わるＤＣＴ係数をブロック単位で量子化する（量子化１）（ステップＳ２）。なお、最初のフレームが入力された場合は、例えば、量子化スケールを３２段階（０：最も粗い〜３１：最も細かい）としたとき、１等とする。
【００４０】
ブロック単位で量子化した結果は、ハフマン符号長算出回路１５においてハフマン符号化による発生符号量の算出が行われ（符号量算出１）（ステップＳ３）、符号量算出１で算出した発生符号量と、目標符号量保持設定回路１０５に保存してある前フレームで求めた目標符号量とから量子化スケール算出回路１０１において量子化スケールの更新を行い（量子化スケールの更新１）（ステップＳ４）、その結果を次のフレームで使用する量子化スケールとして量子化スケール保持設定回路１０２に保存する（量子化スケールの保存１）（ステップＳ５）。なお、ステップ５においては、発生符号量の保存は行わない。
【００４１】
ここで、量子化スケールの更新１の具体的な動作としては、発生符号量が目標符号量を超える場合には量子化スケールを１段階粗くし、逆に、発生符号量が目標符号量を下回る場合には量子化スケールを１段階細かくすること等することができる。ここで、量子化スケールの更新１は、量子化スケールの値がある程度収束するまで、繰り返し行ってもよい。
【００４２】
＜符号化ステージ２＞
符号化ステージ１（ステップＳ１〜ステップＳ５）が終了すると、符号化ステージ２の処理が開始される。先ず、全スライスに固定かつ同一の量子化スケールを設定し（ステップＳ７）、符号化ステージ１と同じ回路を用いて処理する。すなわち、量子化回路１４により量子化し（量子化２）（ステップＳ８）、ハフマン符号長算出回路１５においてハフマン符号化による発生符号量の算出を行う（符号量算出２）（ステップＳ９）。そして、符号量算出２で算出した発生符号量を発生符号量保持回路１０３に保存する（ステップＳ１０）。なお、ステップ１０においては量子化スケールの保存は行わない。
【００４３】
なお、全スライスに固定かつ同一の量子化スケールとは、一例として、量子化スケールを３２段階（０：最も粗い〜３１：最も細かい）とした場合、１等とすることができる。
【００４４】
以上の符号化ステージ１〜２（ステップＳ１〜ステップＳ１０）を面内で最後のスライスまで繰り返し、面内で最後のスライスの処理が終了する（ステップＳ１１：Ｙｅｓ）と、符号化ステージ３の処理が開始される。
【００４５】
＜符号化ステージ３＞
符号化ステージ３では、ステップＳ５で保存した量子化スケールと、ステップＳ１０で保存した発生符号量とを用いて、全てのスライスの量子化スケールの再更新（量子化スケールの更新２）（ステップＳ１２）を行い、次のフレームの符号化で用いる量子化スケールとして量子化スケール保持設定回路１０２に保存する（ステップＳ１３）。次に、目標符号量算出回路１０４において各スライスの目標符号量を算出する（ステップＳ１４）。これは、例えば、１フレーム分の符号量を符号量算出２で算出した発生符号量に応じて比例配分する等する。次に、次のフレームの符号化で用いる目標符号量として目標符号量保持設定回路１０５に保存する（ステップＳ１５）。
【００４６】
＜「量子化スケールの更新２」の詳細＞
次に、量子化スケールの更新２（図３のステップＳ１２）について、図５（量子化スケールの更新２）を参照して説明する。図５は、量子化スケールの更新２の方法を示すフローチャートである。また、図６（ａ）及び（ｂ）は、量子化スケールの更新２を説明するための図であって、図６（ａ）は、符号化ステージ１で符号化された各スライスの量子化スケール及び発生符号量を示し、図６（ｂ）は、符号化ステージ２で符号化された各スライスの発生符号量を示す（量子化スケールは、７としている）。
【００４７】
先ず、量子化スケール算出回路１０１は、量子化スケール保持設定回路１０２に保存してある全てのスライスの量子化スケールを読み出す。また、発生符号量保持回路１０３に保存してある固定量子化スケールでの発生符号量Ｂｘ（ｘはスライス番号を示し、例えば、１≦ｘ≦１５）を読み出す（ステップＳ１００）。
【００４８】
ここで、図６（ａ）は、量子化スケール算出回路１０１が読み出した符号化ステージ１で求めた量子化スケールとする。なお、以下の例では、説明の簡単のため、スライス番号は、０乃至３として説明する。
【００４９】
図６（ａ）に示すように、Ｎ0は、量子化スケール１０、発生符号量１５００、Ｎ1は、量子化スケール５、発生符号量７００、Ｎ2は、量子化スケール８、発生符号量５００、Ｎ3は、量子化スケール５、発生符号量１０００となっている。
【００５０】
また、図６（ｂ）は、量子化スケール算出回路１０１が読み出した、符号化ステージ２で算出した発生符号量Ｂｘを示す。図６（ｂ）に示すように、Ｎ0の発生符号量１３００、Ｎ1の発生符号量８００、Ｎ2の発生符号量４００、Ｎ3の発生符号量１１００となっている（ここでは、固定の量子化スケール＝７としている）。
【００５１】
次に、先ず、符号化ステージ１で求めた全ての量子化スケールの中で最も粗い量子化スケールＱｈを持つスライスＮｘ（１乃至複数個）を抽出する（ステップＳ１０１）。図６（ａ）の例では、量子化スケールが最も粗いのは、Ｑｈ＝５で、スライスＮ1、Ｎ3である。
【００５２】
次に、図６（ｂ）に示す符号化ステージ２でのスライスＮ1、Ｎ3の有する発生符号量Ｂｘのうちで最大の発生符号量である最大発生符号量Ｂｈを求める（ステップＳ１０２）。図６（ｂ）に示すように、スライスＮ1の発生符号量は８００、スライスＮ3の発生符号量は１１００であるため、最大発生符号量Ｂｈ＝１１００と求まる。
【００５３】
次に、図６（ｂ）における全スライスＮｘの発生符号量Ｂｘの平均値Ｂａを求める（ステップＳ１０３）。ここでの平均は、符号化ステージ２における発生符号量Ｂｘの平均である。図６（ｂ）の例では、（１３００＋８００＋４００＋１１００）／４＝９００と求まる。
【００５４】
そして、最大の発生符号量Ｂｈと平均値Ｂａを比較して、最大の発生符号量Ｂｈの方が大きい場合（ステップＳ１０４：Ｙｅｓ）は、面内で最も粗い量子化スケールＱｈを有するスライス（のうちの少なくとも１つ）の画像が、面内で相対的に複雑であり、かつ、ステップ５における発生符号量が目標符号量を超えている状態であると判断してステップＳ１０５へ進み、そうでない場合は量子化スケールの更新はせずにステップＳ１３へ進む。
【００５５】
図６（ｂ）に示す例では、最大発生符号量Ｂｈ＝１１００＞平均値Ｂａ＝９００であるので、ステップＳ１０５に進む。
【００５６】
ここで、符号化ステージ２での発生符号量Ｂｘとは、全スライス同一の量子化スケールで符号化した結果であるため、画像の複雑さと相関が強いと考えられる。一例として、スライス１〜１４のＢｘが９００ビット、スライス１５のＢｘが２４００ビットのとすると、平均値Ｂａは
（９００×１４＋２４００）／１６＝１０００ビット
であるため、スライス１５は「相対的に複雑」であると言える。一方、量子化スケールが粗くなるのは、目標符号量に対して発生符号量が多い場合であり、「相対的に複雑である」かどうかは関係ない。しかし、量子化スケールが（粗くなることが続き、ついには）最も粗くなったスライスが、上記スライス１５であるならば、「面内で相対的に複雑であり、かつ、ステップ５における発生符号量が目標符号量を超えている状態である」と考えられる。すなわち、スライス１５の符号量が不足している。以降の量子化スケール更新処理は、量子化スケールを粗く更新する処理である。つまり、この更新処理により、いくらかの符号量に余剰が生まれる。その余剰の一部又は全部が、このような符号量の足りていないスライス１５等に回されるための処理である。
【００５７】
次のステップＳ１０５では、各スライスの発生符号量Ｂｘと平均値Ｂａを比較して、発生符号量Ｂｘの方が小さい場合は、当該スライスの画像は面内で相対的に簡単であり、かつ、相対的に過大な符号量が割り当てられている可能性があると判断してステップＳ１０６へ進み、そうでない場合は量子化スケールの更新はせずにステップＳ１３へ進む。続くステップＳ１０６では当該スライスの量子化スケールを、面内で最も粗い量子化スケールＱｈ＝５に更新する。
【００５８】
図６（ｂ）に示す例では、先ずスライスＮ0のＢｘ＝１３００＞Ｂａ＝９００であるので、量子化スケールの更新はしない。スライスＮ1とスライスＮ3は、最も粗い量子化スケールＱｈなので、ここでの処理は省略する。スライスＮ2のＢｘ＝４００＜Ｂａ＝９００であるので、図６（ａ）に示す符号化ステージ１でのスライスＮ0の量子化スケール８は、量子化スケールＱｈ＝５に更新される。以上のように、符号化ステージ１の量子化スケールが更新される。
【００５９】
そして、ステップＳ１０４〜ステップＳ１０６を面内で最後のスライスまで繰り返した後（Ｓ１０７）、更新された量子化スケールを保存する（量子化スケールの保存２）（ステップＳ１３）。ここでは、符号化ステージ１で算出され保存されたステップＳ５の量子化スケールが上書きされることになる。
【００６０】
ここで、当該スライスの量子化スケールが面内で最も粗い量子化スケールであるＱｈと同じである可能性があるが、この場合には、量子化スケールを更新しても符号量に差は生じない。一方、量子化スケールＱｈにより、量子化スケールが粗くなった場合は、その分、当該スライスに最低限割り当てる目標符号量が少なくなり、その分を他のスライスの目標符号量に割り当てることができる。また、実際の発生符号量も少なくなるため、目標符号量を下回った場合って余剰ビット数が生じた場合には、まだ符号化していないスライスの目標符号量に上乗せするようなことも可能となる。
【００６１】
以上説明したように、本実施の形態によれば、符号化ステージ１で求めた量子化スケールを、符号化ステージ２で求めた発生符号量Ｂｘに基づき、本来必要ではない符号量が割り当てられているスライスの量子化スケールを粗くすることができるので、その分、余剰となった符号量を、本来符号量が足りていないスライスに回すことができる。このことにより、
画像が簡単なスライスの量子化スケールが細かくなりすぎない。
画像が簡単なスライスに過大な符号量が割り当てられない。
画像が簡単なスライスの画質が必要以上に良くならない。
画像が複雑なスライスに十分な符号量が割り当てられる。
画像が複雑なスライスの量子化スケールが粗くなりすぎない。
画像が複雑なスライスの画質が必要以上に悪くならない。
画質が不均一になりすぎず、見苦しくならない。
等といった効果を奏する。
【００６２】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【００６３】
例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００６４】
１  符号化装置
１０  フレーム化回路
１１  スライス化回路
１２  ブロック化回路
１３  ＤＣＴ変換回路
１４  量子化回路
１５  ハフマン符号長算出回路
１６  パラメータ設定回路
１７  ハフマン符号化回路
１８  ビットストリーム生成回路
２０  符号量制御回路
１０１  量子化スケール算出回路
１０２  量子化スケール保持設定回路
１０３  発生符号量保持回路
１０４  目標符号量算出回路
１０５  目標符号量保持設定回路
１０６  符号化ステージ判定回路
１１１  スライス抽出部
１１２  符号量読出部
１１３  量子化スケール更新部
【図１】
2012004794.tif 000003
【図２】
2012004794.tif 000004
【図３】
2012004794.tif 000005
【図４】
2012004794.tif 000006
【図５】
2012004794.tif 000007
【図６】
2012004794.tif 000008