説明

符号化装置、及び符号化方法

【課題】面内の画質がスライス単位で不均一になりすぎることを抑制する。
【解決手段】符号化装置1は、各スライスに対し、前フレームで求めた目標符号量に基づき量子化スケールを算出する量子化スケール算出回路101と、前フレームで求めた各スライスの量子化スケールを保持・設定する量子化スケール保持設定回路102とを有する。符号化装置1は、量子化スケール保持設定回路101により設定された量子化スケールを用いて現フレームを量子化し符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する符号化ステージ1を実施すると共に、全スライスに同一の量子化スケールを設定して量子化し、符号化して発生符号量を算出する符号化ステージ2を実施し、符号化ステージ1における量子化スケールと、符号化ステージ2における発生符号量とに基づき、全スライスの量子化スケールを更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は符号化装置、及び符号化方法に関し、特にスライス単位で画像を高能率に符号化する符号化装置、及び符号化方法に関する。
【背景技術】
【0002】
近年のマルチメディア時代において、画像を効率的に圧縮して伝送する技術は極めて重要であり、高画質化が進む一方で、特にリアルタイム処理で符号化を行う際の遅延時間もクローズアップされている。
【0003】
遅延時間のなるべく少ない(低遅延な)符号化方法は、各種開発されており、それらの多くは、面間予測を使用しない面内のみの処理で、かつ、面内を複数の領域(スライス)に分割して、順次符号化、出力するものである。
【0004】
なお、リアルタイム処理でかつスライス単位で量子化スケールを変化させる方法としては、特許文献1及び特許文献2などが知られている。例えば特許文献1に記載の技術は、動画像データをあらかじめ設定した平均ビットレートのもとで、可変ビットレートで符号化する動画像可変ビットレート符号化装置に関する。この動画像可変ビットレート符号化装置は、与えられた量子化幅で入力動画像データを符号化し、符号化データと発生符号量とを出力する動画像符号化手段と、動画像符号化手段で既に符号化済みの画像について、動画像符号化手段に与えた量子化幅と、動画像符号化手段から得られる発生符号量とから、平均ビットレートに対応して、第1の画像単位ごとに、以降に入力される画像に適用するための基準となる基準量子化幅を定める量子化幅設定手段とを有する。さらに、動画像符号化手段から得られる発生符号量と平均ビットレートに対する過不足量とから第1の画像単位よりも小さい第2の画像単位ごとに基準量子化幅を調整し、その調整後の量子化幅を動画像符号化手段に与える量子化幅調整手段を有するものである。
【0005】
また、特許文献2に記載の技術は、動画像データをあらかじめ設定した平均ビットレートのもとで、可変ビットレートで符号化する動画像可変ビットレート符号化方法に関するものである。この動画像可変ビットレート符号化方法は、与えられた量子化幅で入力動画像データを符号化し、符号化データと発生符号量とを出力する動画像符号化工程と、動画像符号化工程に与えた量子化幅と、動画像符号化工程から得られる発生符号量とから、第1の画像単位ごとの複雑度を計算する第1画像単位複雑度計算工程とを有する。さらに、動画像符号化工程に与えた量子化幅と、動画像符号化工程から得られる発生符号量とから、符号化開始時から現在まで符号化した画像までの平均複雑度を計算する平均複雑度計算工程と、第1の画像単位ごとの複雑度と平均複雑度とを比較して小さな方の複雑度を選択し、前記選択した複雑度とあらかじめ設定された平均ビットレートとから第1の画像単位の量子化幅を計算する量子化幅計算工程とを有する。さらにまた、量子化幅計算工程にて計算された量子化幅を、動画像符号化工程から得られる発生符号量とあらかじめ設定された平均ビットレートとからの過不足量とから第1の画像単位より小さい第2の画像単位ごとに量子化幅を調整し、動画像符号化工程に与える量子化幅調整工程とを有するものである。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第3259702号公報
【特許文献2】特許第3508916号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、画像には情報量が多い画像(複雑な画像)と、情報量が少ない画像(簡単な画像)とがあるため、領域ごとの発生符号量が一定にならない。したがって、単位領域あたりの発生符号量をある程度一定にするには、画像の複雑さに応じて領域ごとに量子化スケールを変化させることが考えられるが、必ずしも適切な量子化スケールの算出が行われず、面内の画質が不均一になることがあった。
【0008】
すなわち、従来の課題としては、下記のものがあげられる。
画像が簡単なスライスの量子化スケールが細かくなりすぎる。
画像が簡単なスライスに過大な符号量が割り当てられる。
画像が簡単なスライスの画質が必要以上に良くなる。
画像が複雑なスライスに十分な符号量が割り当てられない。
画像が複雑なスライスの量子化スケールが粗くなりすぎる。
画像が複雑なスライスの画質が必要以上に悪くなる。
画質が不均一になり、見苦しくなる。
【0009】
本発明は、このような問題点を解決するためになされたものであり、画像が簡単なスライスの消費ビットを減少させ、又は画像が簡単ではないスライスの消費ビットを増加させることにより、面内の画質がスライス単位で不均一になりすぎることを抑制した符号化装置、及び符号化方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記の目的を達成するために、本発明に係る符号化装置は、1フレームをスライス化して符号化する符号化装置であって、各スライスに対し、前フレームで求めた目標符号量に基づき量子化スケールを算出する量子化スケール算出手段と、前フレームで求めた各スライスの量子化スケールを保持・設定する量子化スケール保持設定手段と、を有し、前記量子化スケール保持設定手段により設定された量子化スケールを用いて現フレームを量子化し符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する第1の符号化処理を実施すると共に、全スライスに同一の量子化スケールを設定して量子化し、符号化して発生符号量を算出する第2の符号化処理を実施し、前記量子化スケール算出手段は、前記第1の符号化処理における量子化スケールと、前記第2の符号化処理における発生符号量とに基づき、全スライスの量子化スケールを更新することを特徴とするものである。
【0011】
本発明においては、第1の符号化処理における量子化スケールと、第2の符号化処理における発生符号量とに基づき、全スライスの量子化スケールを更新する。第1の符号化処理における量子化スケールでは、量子化スケール保持設定手段により設定された量子化スケールを用いて量子化し符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新しているため、ある程度量子化スケールと画像の複雑度が対応している。一方、第2の符号化処理においては、同一の量子化スケールを使用して全スライスを量子化しているので、発生符号量は、画像の複雑さと相関が強い。これらの値を利用することで、面内の画質がスライス単位で不均一になりすぎることを抑制することができる。
【0012】
また、前記量子化スケール算出手段は、画像が簡単なスライスの消費ビットを減少させるよう、又は、画像が複雑なスライスの消費ビットを増加させるよう全スライスの量子化スケールを更新することを特徴とするものである。これにより、面内の画質のスライス単位での不均一を抑制することができる。
【0013】
さらに、前記量子化スケール算出手段は、前記第1の符号化処理において、最も粗い量子化スケールQhで符号化したスライスNx(xは自然数)を全部求めるスライス抽出手段と、前記第2の符号化処理において、発生した各スライスの符号量Bx(xは自然数)を読み出す符号量読出手段と、前記スライスNxの符号量Bxのうち最大である符号量Bhが、全スライスの符号量Bxの平均値Baを超える場合、各スライスについてその符号量Bxが平均値Baを下回るスライスの量子化スケールを、量子化スケールQhに置き換える量子化スケース更新手段とを有することを特徴とするものである。これにより、スライスNxの符号量Bxのうち最大である符号量Bhが、全スライスの符号量Bxの平均値Baを超える場合、各スライスについてその符号量Bxが平均値Baを下回るスライスの量子化スケールを、量子化スケールQhに置き換えるため、符号量が過剰に割り振られているスライスの量子化スケールを粗く更新することができ、その分の符号量を符号量が足りていないスライスに回すことができる。
【0014】
さらにまた、1フレームをスライスに分割して量子化する量子化手段と、各スライスの符号長を算出する符号長算出手段と、目標符号量及び量子化スケールを決定するためのパラメータを設定するパラメータ設定手段とを有し、前記パラメータ設定手段は、前記量子化スケール算出手段及び前記量子化スケール保持設定手段と、1フレームの目標符号量から各スライスの前記目標符号量を算出する目標符号量算出手段と、前記各スライスの前記目標符号量を保持し、前記符号長算出手段に設定する目標符号量設定保持設定手段とを有し、前記第1の符号化処理では、前記量子化スケール保持設定手段により設定された量子化スケールを用いて前記量子化手段により現フレームを量子化し、前記符号量算出手段により、符号化して発生符号量を算出し、前記第2の符号化処理では、前記量子化手段が、前記同一の量子化スケールを使用して量子化し、前記符号量算出手段により、符号化して発生符号量を算出することを特徴とするものである。この構成では、パラメータ設定手段により、より正確に量子化スケールを決定することができ、相対的に過大な符号量が割り当てられているようなスライスが生成されるのを抑制することができる。
【0015】
また、前記第1の符号化処理では、前記量子化スケール保持設定手段により設定された量子化スケールを用いて各スライスを量子化し符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する処理を1以上繰り返すことを特徴とするものである。この構成では、最適な値に収束するまで量子化スケールの更新を行うことも可能である。
【0016】
本発明に係る符号化方法は、1フレームをスライス化して符号化する符号化方法であって、前フレームで求めた各スライスの量子化スケールを用いて量子化し符号化して算出された発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する第1の符号化処理工程と、全スライスに同一の量子化スケールを設定して量子化し、符号化して発生符号量を算出する第2の符号化処理工程と、前記第1の符号化処理工程にて求めた量子化スケールと、前記第2の符号化処理工程にて求めた発生符号量とに基づき、全スライスの量子化スケールを更新する第3の符号化処理工程と、を有することを特徴とするものである。
また、前記第3の符号化処理工程は、前記第1の符号化処理工程において、最も粗い量子化スケールQhで符号化したスライスNx(xは自然数)を全部求めるスライス抽出工程と、前記第2の符号化処理工程において、発生した各スライスの符号量Bx(xは自然数)を読み出す符号量読出工程と、前記スライスNxの符号量Bxのうち最大である符号量Bhが、全スライスの符号量Bxの平均値Baを超える場合、各スライスについてその符号量Bxが平均値Baを下回るスライスの量子化スケールを、量子化スケールQhに置き換える量子化スケース更新工程と、を有することを特徴とするものである。
さらにまた、前記第1の符号化処理工程は、前フレームで求めた各スライスの量子化スケールを用いて各スライスを量子化する量子化工程と、前記量子化工程にて量子化されたスライスを符号化して発生符号量を算出する符号化工程と、前記符号化工程にて算出された前記発生符号量と前フレームで求めた目標符号量とから量子化スケールを更新する量子化スケール更新工程と、を有することを特徴とするものである。
【発明の効果】
【0017】
本発明によれば、画像が簡単なスライスの消費ビットを減少させ、又は画像が簡単ではないスライスの消費ビットを増加させることにより、面内の画質がスライス単位で不均一になりすぎることを抑制した符号化装置、及び符号化方法を提供することができる。
【図面の簡単な説明】
【0018】
【図1】本発明の実施の形態にかかる符号化装置を示すブロック図である。
【図2】本発明の実施の形態に係る符号量制御回路の詳細を示すブロック図である。
【図3】量子化スケール算出回路の詳細を示すブロック図である。
【図4】符号化ステージ1乃至3の各工程を示すフローチャートである。
【図5】量子化スケールの更新2の方法を示すフローチャートである。また、
【図6】量子化スケールの更新2を説明するための図である。
【発明を実施するための形態】
【0019】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、フレームを複数のスライスに分割して符号化する符号化装置であって、面内の画質がスライス単位で不均一になりすぎないようにした符号化装置に適用したものである。
【0020】
図1は、本実施の形態にかかる符号化装置を示すブロック図である。図1に示すように、符号化装置1は、フレーム化回路10、スライス化回路11、ブロック化回路12、DCT(Discrete Cosine Transform)変換回路13、符号量制御回路20、ハフマン符号化回路17及びビットストリーム生成回路18を有する。
【0021】
入力デジタル画像信号は、フレーム化回路10で、1画面単位(以下、フレームという)で区切られ、続くスライス化回路11によって横長の短冊状(例えば16ライン分の領域、以下、スライスという)で区切られる。このスライスを単位として符号量制御とビットストリームの出力を行うが、スライスは、さらにブロック化回路12で長方形(例えば、16×16画素分の領域、以下、マクロブロックという)に区切られた後、DCT変換回路13でマクロブロックを構成する輝度信号、色差信号ごとの集合単位(以下、ブロックという)で離散コサイン変換(Discrete Cosine Transform)を行い、その結果のDCT係数が符号量制御回路20へ入力される。
【0022】
符号量制御回路20は、量子化回路14とハフマン符号長算出回路15とパラメータ設定回路16とより構成され、後述する符号化ステージ1乃至3の処理(第1乃至第3の符号化処理)でスライス単位の目標符号量と量子化スケールが決定された後、各ブロックのDCT係数が量子化される。
【0023】
量子化の結果は、ハフマン符号化回路17でハフマン符号化されて、ビットストリーム生成回路18で復号時に必要な情報が付加されたビットストリームがスライス単位で順次生成、出力される。
【0024】
次に、符号量制御回路20について更に詳細に説明する。図2は、本発明の実施の形態に係る符号量制御回路20の詳細を示すブロック図である。図2に示すように、パラメータ設定回路16は、量子化スケール算出回路101、量子化スケール保持設定回路102、発生符号量保持回路103、目標符号量算出回路104、目標符号量保持設定回路105及び符号化ステージ判定回路106を有している。
【0025】
ここで、量子化スケール算出回路101は、各スライスに対し、目標符号量保持設定回路105に保存してある前フレームで求めた目標符号量に基づき量子化スケールを算出する。また、量子化スケール保持設定回路102は、前フレームで求めた各スライスの量子化スケールを保持し、量子化回路14に設定する。目標符号量算出回路104は、1フレームの目標符号量から各スライスの前記目標符号量を算出する。また、目標符号量保持設定回路105は、各スライスの目標符号量を保持し、ハフマン符号長算出回路15に設定する。
【0026】
そして、この符号量制御回路20は、符号化ステージ1乃至3の処理を実施する。符号化ステージ1では、量子化スケール保持設定回路102により設定された量子化スケールを用いて量子化回路14により現フレームを量子化し、ハフマン符号長算出回路15により符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する。符号化ステージ2では、全スライスに同一の量子化スケールを設定して量子化回路14により量子化し、ハフマン符号長算出回路15により符号化して発生符号量を算出する。そして、符号化ステージ3において、量子化スケール算出回路101は、符号ステージ1における量子化スケールと、符号化ステージ2における発生符号量とに基づき、全スライスの量子化スケールを更新する。
【0027】
以下、下記ブロックについて詳細に説明する。
【0028】
符号化ステージ判定回路106は、符号化の手順である符号化ステージ1乃至3を判定する。ステージ番号は単純に1、2、3、1、2、3、・・の繰り返しであり、ステージ番号は初期値が1、そして、後述するステップS5の終了時に+1されて2、後述するステップS10の終了時に+1されて3に更新され、次のスライスのステップS1の開始時に再び初期値の1とし、このステージ番号により、各ステージを判定する。
【0029】
量子化スケール算出回路101は、ハフマン符号長算出回路15の算出結果である発生符号量を用いて量子化スケールをスライス単位で更新する。量子化スケール算出回路101は、上述のように、各スライスに対し、目標符号量保持設定回路105に保存してある前フレームで求めた目標符号量に基づき量子化スケールを算出する。この量子化スケールに基づき、ハフマン符号長算出回路15は、発生符号量を算出する。量子化スケール算出回路101は、この発生符号量と、後述する目標符号量算出回路104が算出した前フレームにおける目標符号量とから、量子化スケールを更新するのである。
【0030】
例えば、スライスの目標符号量を1000ビット、ハフマン符号長算出回路15の量子化スケールを32段階(0:最も粗い〜31:最も細かい)中の16とする。この場合、ハフマン符号長算出回路15の結果(発生符号量)もビット数で表され、この発生符号量が900ビットであれば、量子化スケールを17に、逆に1100ビットであれば、量子化スケールを15等に設定する。
【0031】
量子化スケール保持設定回路102は、量子化スケール算出回路101で算出された量子化スケールを保持し、量子化回路14で使用する量子化スケールをスライス単位で設定する。1フレーム前の全てのスライスの量子化スケールは、量子化スケール保持設定回路102内のメモリに保存されているため、このメモリから読み出して当該スライスの量子化スケールとして使用する。
【0032】
発生符号量保持回路103は、ハフマン符号長算出回路15の算出結果である発生符号量を保持する。
【0033】
目標符号量算出回路104は、発生符号量保持回路103で保持された発生符号量を用いて目標符号量をスライス単位で算出する。例えば、1フレームの目標符号量から、符号化に最低限必要なヘッダ等の符号量を減算したものを原資として、各スライスの発生符号量に応じて比例配分する。ここで、本実施の形態においては、1秒を構成する30フレーム間の目標符号量は固定とし、1フレームを構成する例えば15スライス間の符号量は可変として説明する。なお、各フレーム間で符号量を可変としてもよく、また、各スライス間で目標符号量を一定としてもよい。
【0034】
目標符号量保持設定回路105は、目標符号量算出回路104で算出された前フレームの目標符号量を保持し、ハフマン符号化回路15で使用する目標符号量をスライス単位で設定する。
【0035】
次に、このように構成された符号量制御回路20の動作について説明する。符号量制御回路20は、前フレームで求めた各スライスの量子化スケールで符号化した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新し(符号化ステージ1)、全スライスに同一の量子化スケールを設定して量子化し、符号化して発生符号量を算出し(符号化ステージ2)、符号化ステージ1にて求めた量子化スケールと、符号化ステージ2にて求めた発生符号量とに基づき、全スライスの量子化スケールを更新する(符号化ステージ3)。
【0036】
この符号化ステージ3は、量子化スケール算出回路101で実施される。ここで、量子化スケール算出回路101の詳細について説明する。
図3は、量子化スケール算出回路101の詳細を示すブロック図である。図3に示すように、量子化スケール算出回路101は、スライス抽出部111、符号量読出部112、及び量子化スケール更新部113を有する。スライス抽出部111は、符号化ステージ1において、最も粗い量子化スケールQhで符号化したスライスNx(xはスライス番号、例えば0≦x≦15)を全部求める。また、符号量読出部112は、符号化ステージ2において、発生した各スライスの符号量Bx(xはスライス番号)を発生符号量保持回路103から読み出す。そして、量子化スケール更新部113は、符号化ステージ3において、スライスNxの符号量Bxのうち最大である符号量Bhが、全スライスの符号量Bxの平均値Baを超える場合、各スライスについてその符号量Bxが平均値Baを下回るスライスの量子化スケールを、量子化スケールQhに置き換える。このようにして全スライスの量子化スケールが更新される。
【0037】
以下、これら符号化ステージ1乃至3の各処理について詳細に説明する。図4は、符号化ステージ1乃至3の各工程を示すフローチャートである。
【0038】
<符号化ステージ1>
符号量制御回路20へ面内で最初のスライスに関わるDCT係数が入力されると、符号化ステージ判定回路106において符号化ステージ1と判定されて、符号化ステージ1の処理が開始される。
【0039】
まず、量子化回路14は、量子化スケール保持設定回路102に保存してある、前フレームで求めた量子化スケールを読み出し(ステップS1)、現フレームにおける各スライスに関わるDCT係数をブロック単位で量子化する(量子化1)(ステップS2)。なお、最初のフレームが入力された場合は、例えば、量子化スケールを32段階(0:最も粗い〜31:最も細かい)としたとき、1等とする。
【0040】
ブロック単位で量子化した結果は、ハフマン符号長算出回路15においてハフマン符号化による発生符号量の算出が行われ(符号量算出1)(ステップS3)、符号量算出1で算出した発生符号量と、目標符号量保持設定回路105に保存してある前フレームで求めた目標符号量とから量子化スケール算出回路101において量子化スケールの更新を行い(量子化スケールの更新1)(ステップS4)、その結果を次のフレームで使用する量子化スケールとして量子化スケール保持設定回路102に保存する(量子化スケールの保存1)(ステップS5)。なお、ステップ5においては、発生符号量の保存は行わない。
【0041】
ここで、量子化スケールの更新1の具体的な動作としては、発生符号量が目標符号量を超える場合には量子化スケールを1段階粗くし、逆に、発生符号量が目標符号量を下回る場合には量子化スケールを1段階細かくすること等することができる。ここで、量子化スケールの更新1は、量子化スケールの値がある程度収束するまで、繰り返し行ってもよい。
【0042】
<符号化ステージ2>
符号化ステージ1(ステップS1〜ステップS5)が終了すると、符号化ステージ2の処理が開始される。先ず、全スライスに固定かつ同一の量子化スケールを設定し(ステップS7)、符号化ステージ1と同じ回路を用いて処理する。すなわち、量子化回路14により量子化し(量子化2)(ステップS8)、ハフマン符号長算出回路15においてハフマン符号化による発生符号量の算出を行う(符号量算出2)(ステップS9)。そして、符号量算出2で算出した発生符号量を発生符号量保持回路103に保存する(ステップS10)。なお、ステップ10においては量子化スケールの保存は行わない。
【0043】
なお、全スライスに固定かつ同一の量子化スケールとは、一例として、量子化スケールを32段階(0:最も粗い〜31:最も細かい)とした場合、1等とすることができる。
【0044】
以上の符号化ステージ1〜2(ステップS1〜ステップS10)を面内で最後のスライスまで繰り返し、面内で最後のスライスの処理が終了する(ステップS11:Yes)と、符号化ステージ3の処理が開始される。
【0045】
<符号化ステージ3>
符号化ステージ3では、ステップS5で保存した量子化スケールと、ステップS10で保存した発生符号量とを用いて、全てのスライスの量子化スケールの再更新(量子化スケールの更新2)(ステップS12)を行い、次のフレームの符号化で用いる量子化スケールとして量子化スケール保持設定回路102に保存する(ステップS13)。次に、目標符号量算出回路104において各スライスの目標符号量を算出する(ステップS14)。これは、例えば、1フレーム分の符号量を符号量算出2で算出した発生符号量に応じて比例配分する等する。次に、次のフレームの符号化で用いる目標符号量として目標符号量保持設定回路105に保存する(ステップS15)。
【0046】
<「量子化スケールの更新2」の詳細>
次に、量子化スケールの更新2(図3のステップS12)について、図5(量子化スケールの更新2)を参照して説明する。図5は、量子化スケールの更新2の方法を示すフローチャートである。また、図6(a)及び(b)は、量子化スケールの更新2を説明するための図であって、図6(a)は、符号化ステージ1で符号化された各スライスの量子化スケール及び発生符号量を示し、図6(b)は、符号化ステージ2で符号化された各スライスの発生符号量を示す(量子化スケールは、7としている)。
【0047】
先ず、量子化スケール算出回路101は、量子化スケール保持設定回路102に保存してある全てのスライスの量子化スケールを読み出す。また、発生符号量保持回路103に保存してある固定量子化スケールでの発生符号量Bx(xはスライス番号を示し、例えば、1≦x≦15)を読み出す(ステップS100)。
【0048】
ここで、図6(a)は、量子化スケール算出回路101が読み出した符号化ステージ1で求めた量子化スケールとする。なお、以下の例では、説明の簡単のため、スライス番号は、0乃至3として説明する。
【0049】
図6(a)に示すように、N0は、量子化スケール10、発生符号量1500、N1は、量子化スケール5、発生符号量700、N2は、量子化スケール8、発生符号量500、N3は、量子化スケール5、発生符号量1000となっている。
【0050】
また、図6(b)は、量子化スケール算出回路101が読み出した、符号化ステージ2で算出した発生符号量Bxを示す。図6(b)に示すように、N0の発生符号量1300、N1の発生符号量800、N2の発生符号量400、N3の発生符号量1100となっている(ここでは、固定の量子化スケール=7としている)。
【0051】
次に、先ず、符号化ステージ1で求めた全ての量子化スケールの中で最も粗い量子化スケールQhを持つスライスNx(1乃至複数個)を抽出する(ステップS101)。図6(a)の例では、量子化スケールが最も粗いのは、Qh=5で、スライスN1、N3である。
【0052】
次に、図6(b)に示す符号化ステージ2でのスライスN1、N3の有する発生符号量Bxのうちで最大の発生符号量である最大発生符号量Bhを求める(ステップS102)。図6(b)に示すように、スライスN1の発生符号量は800、スライスN3の発生符号量は1100であるため、最大発生符号量Bh=1100と求まる。
【0053】
次に、図6(b)における全スライスNxの発生符号量Bxの平均値Baを求める(ステップS103)。ここでの平均は、符号化ステージ2における発生符号量Bxの平均である。図6(b)の例では、(1300+800+400+1100)/4=900と求まる。
【0054】
そして、最大の発生符号量Bhと平均値Baを比較して、最大の発生符号量Bhの方が大きい場合(ステップS104:Yes)は、面内で最も粗い量子化スケールQhを有するスライス(のうちの少なくとも1つ)の画像が、面内で相対的に複雑であり、かつ、ステップ5における発生符号量が目標符号量を超えている状態であると判断してステップS105へ進み、そうでない場合は量子化スケールの更新はせずにステップS13へ進む。
【0055】
図6(b)に示す例では、最大発生符号量Bh=1100>平均値Ba=900であるので、ステップS105に進む。
【0056】
ここで、符号化ステージ2での発生符号量Bxとは、全スライス同一の量子化スケールで符号化した結果であるため、画像の複雑さと相関が強いと考えられる。一例として、スライス1〜14のBxが900ビット、スライス15のBxが2400ビットのとすると、平均値Baは
(900×14+2400)/16=1000ビット
であるため、スライス15は「相対的に複雑」であると言える。一方、量子化スケールが粗くなるのは、目標符号量に対して発生符号量が多い場合であり、「相対的に複雑である」かどうかは関係ない。しかし、量子化スケールが(粗くなることが続き、ついには)最も粗くなったスライスが、上記スライス15であるならば、「面内で相対的に複雑であり、かつ、ステップ5における発生符号量が目標符号量を超えている状態である」と考えられる。すなわち、スライス15の符号量が不足している。以降の量子化スケール更新処理は、量子化スケールを粗く更新する処理である。つまり、この更新処理により、いくらかの符号量に余剰が生まれる。その余剰の一部又は全部が、このような符号量の足りていないスライス15等に回されるための処理である。
【0057】
次のステップS105では、各スライスの発生符号量Bxと平均値Baを比較して、発生符号量Bxの方が小さい場合は、当該スライスの画像は面内で相対的に簡単であり、かつ、相対的に過大な符号量が割り当てられている可能性があると判断してステップS106へ進み、そうでない場合は量子化スケールの更新はせずにステップS13へ進む。続くステップS106では当該スライスの量子化スケールを、面内で最も粗い量子化スケールQh=5に更新する。
【0058】
図6(b)に示す例では、先ずスライスN0のBx=1300>Ba=900であるので、量子化スケールの更新はしない。スライスN1とスライスN3は、最も粗い量子化スケールQhなので、ここでの処理は省略する。スライスN2のBx=400<Ba=900であるので、図6(a)に示す符号化ステージ1でのスライスN0の量子化スケール8は、量子化スケールQh=5に更新される。以上のように、符号化ステージ1の量子化スケールが更新される。
【0059】
そして、ステップS104〜ステップS106を面内で最後のスライスまで繰り返した後(S107)、更新された量子化スケールを保存する(量子化スケールの保存2)(ステップS13)。ここでは、符号化ステージ1で算出され保存されたステップS5の量子化スケールが上書きされることになる。
【0060】
ここで、当該スライスの量子化スケールが面内で最も粗い量子化スケールであるQhと同じである可能性があるが、この場合には、量子化スケールを更新しても符号量に差は生じない。一方、量子化スケールQhにより、量子化スケールが粗くなった場合は、その分、当該スライスに最低限割り当てる目標符号量が少なくなり、その分を他のスライスの目標符号量に割り当てることができる。また、実際の発生符号量も少なくなるため、目標符号量を下回った場合って余剰ビット数が生じた場合には、まだ符号化していないスライスの目標符号量に上乗せするようなことも可能となる。
【0061】
以上説明したように、本実施の形態によれば、符号化ステージ1で求めた量子化スケールを、符号化ステージ2で求めた発生符号量Bxに基づき、本来必要ではない符号量が割り当てられているスライスの量子化スケールを粗くすることができるので、その分、余剰となった符号量を、本来符号量が足りていないスライスに回すことができる。このことにより、
画像が簡単なスライスの量子化スケールが細かくなりすぎない。
画像が簡単なスライスに過大な符号量が割り当てられない。
画像が簡単なスライスの画質が必要以上に良くならない。
画像が複雑なスライスに十分な符号量が割り当てられる。
画像が複雑なスライスの量子化スケールが粗くなりすぎない。
画像が複雑なスライスの画質が必要以上に悪くならない。
画質が不均一になりすぎず、見苦しくならない。
等といった効果を奏する。
【0062】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【0063】
例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【0064】
1 符号化装置
10 フレーム化回路
11 スライス化回路
12 ブロック化回路
13 DCT変換回路
14 量子化回路
15 ハフマン符号長算出回路
16 パラメータ設定回路
17 ハフマン符号化回路
18 ビットストリーム生成回路
20 符号量制御回路
101 量子化スケール算出回路
102 量子化スケール保持設定回路
103 発生符号量保持回路
104 目標符号量算出回路
105 目標符号量保持設定回路
106 符号化ステージ判定回路
111 スライス抽出部
112 符号量読出部
113 量子化スケール更新部

【特許請求の範囲】
【請求項1】
1フレームをスライス化して符号化する符号化装置であって、
各スライスに対し、前フレームで求めた目標符号量に基づき量子化スケールを算出する量子化スケール算出手段と、
前フレームで求めた各スライスの量子化スケールを保持・設定する量子化スケール保持設定手段と、
を有し、
前記量子化スケール保持設定手段により設定された量子化スケールを用いて現フレームを量子化し符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する第1の符号化処理を実施すると共に、
全スライスに同一の量子化スケールを設定して量子化し、符号化して発生符号量を算出する第2の符号化処理を実施し、
前記量子化スケール算出手段は、前記第1の符号化処理における量子化スケールと、前記第2の符号化処理における発生符号量とに基づき、全スライスの量子化スケールを更新することを特徴とする符号化装置。
【請求項2】
前記量子化スケール算出手段は、画像が簡単なスライスの消費ビットを減少させるよう全スライスの量子化スケールを更新することを特徴とする請求項1記載の符号化装置。
【請求項3】
前記量子化スケール算出手段は、画像が複雑なスライスの消費ビットを増加させるよう全スライスの量子化スケールを更新することを特徴とする請求項1又は2記載の符号化装置。
【請求項4】
前記量子化スケール算出手段は、
前記第1の符号化処理において、最も粗い量子化スケールQhで符号化したスライスNx(xは自然数)を全部求めるスライス抽出手段と、
前記第2の符号化処理において、発生した各スライスの符号量Bx(xは自然数)を読み出す符号量読出手段と、
前記スライスNxの符号量Bxのうち最大である符号量Bhが、全スライスの符号量Bxの平均値Baを超える場合、各スライスについてその符号量Bxが平均値Baを下回るスライスの量子化スケールを、量子化スケールQhに置き換える量子化スケース更新手段と、
を有することを特徴とする請求項1乃至3のいずれか1項記載の符号化装置。
【請求項5】
1フレームをスライスに分割して量子化する量子化手段と、
各スライスの符号長を算出する符号長算出手段と、
目標符号量及び量子化スケールを決定するためのパラメータを設定するパラメータ設定手段と、
を有し、
前記パラメータ設定手段は、
前記量子化スケール算出手段及び前記量子化スケール保持設定手段と、
1フレームの目標符号量から各スライスの前記目標符号量を算出する目標符号量算出手段と、
前記各スライスの前記目標符号量を保持し、前記符号長算出手段に設定する目標符号量設定保持設定手段と、
を有し、
前記第1の符号化処理では、前記量子化スケール保持設定手段により設定された量子化スケールを用いて前記量子化手段により現フレームを量子化し、前記符号量算出手段により、符号化して発生符号量を算出し、
前記第2の符号化処理では、前記量子化手段が、前記同一の量子化スケールを全スライスに設定して量子化し、前記符号量算出手段により、符号化して発生符号量を算出することを特徴とする請求項1乃至4のいずれか1項記載の符号化装置。
【請求項6】
前記第1の符号化処理では、前記量子化スケール保持設定手段により設定された量子化スケールを用いて各スライスを量子化し符号化して算出した発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する処理を1以上繰り返すことを特徴とする請求項1乃至5のいずれか1項記載の符号化装置。
【請求項7】
1フレームをスライス化して符号化する符号化方法であって、
前フレームで求めた各スライスの量子化スケールを用いて量子化し符号化して算出された発生符号量と、前フレームで求めた目標符号量とから当該量子化スケールを更新する第1の符号化処理工程と、
全スライスに同一の量子化スケールを設定して量子化し、符号化して発生符号量を算出する第2の符号化処理工程と、
前記第1の符号化処理工程にて求めた量子化スケールと、前記第2の符号化処理工程にて求めた発生符号量とに基づき、全スライスの量子化スケールを更新する第3の符号化処理工程と、
を有することを特徴とする符号化方法。
【請求項8】
前記第3の符号化処理工程は、
前記第1の符号化処理工程において、最も粗い量子化スケールQhで符号化したスライスNx(xは自然数)を全部求めるスライス抽出工程と、
前記第2の符号化処理工程において、発生した各スライスの符号量Bx(xは自然数)を読み出す符号量読出工程と、
前記スライスNxの符号量Bxのうち最大である符号量Bhが、全スライスの符号量Bxの平均値Baを超える場合、各スライスについてその符号量Bxが平均値Baを下回るスライスの量子化スケールを、量子化スケールQhに置き換える量子化スケース更新工程と、
を有することを特徴とする請求項7記載の符号化方法。
【請求項9】
前記第1の符号化処理工程は、
前フレームで求めた各スライスの量子化スケールを用いて各スライスを量子化する量子化工程と、
前記量子化工程にて量子化されたスライスを符号化して発生符号量を算出する符号化工程と、
前記符号化工程にて算出された前記発生符号量と前フレームで求めた目標符号量とから量子化スケールを更新する量子化スケール更新工程と、
を有することを特徴とする請求項7又は8記載の符号化方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−4794(P2012−4794A)
【公開日】平成24年1月5日(2012.1.5)
【国際特許分類】
【出願番号】特願2010−137188(P2010−137188)
【出願日】平成22年6月16日(2010.6.16)
【出願人】(000004329)日本ビクター株式会社 (3,896)
【Fターム(参考)】