(57)【要約】【課題】符号化を行うに際しての処理時間を落とすことなく、精度が良好となる量子化が実現できるデータ符号化装置を得る。【解決手段】ブロックを構成する各データを量子化パラメータに対応する量子化ステップにより量子化するデータ符号化装置において、ブロックを構成する複数のデータについて共通する量子化パラメータに対応する量子化ステップで除して量子化データを得る量子化部１３と、量子化部で得た各量子化データを復号して逆量子化データを算出する逆量子化部１４と、各データとこれに対応する逆量子化データとの誤差を算出する誤差算出部と、各量子化データと各誤差とをパラメータとして各データに対する評価値を演算する評価値演算部１５１と、ブロックを構成する各データの評価値の総和が最小となる量子化パラメータを選択する量子化パラメータ選択部１５２とを具備することで、量子化手続きの繰り返しだけで最適な量子化パラメータを選択する。【選択図】図１
2010141711.tif 000002
【特許請求の範囲】
【請求項１】
ＤＣＴ変換された情報で構成されたｎ×ｎのデータから成るブロック単位に分割し、各データを量子化パラメータに対応した量子化ステップによりスカラー量子化して符号化するデータ符号化装置において、
前記ブロックを構成する複数のデータについて共通の量子化パラメータに対応する量子化ステップで除して量子化データを得る符号部と、
前記符号部で得た各量子化データを復号して逆量子化データを算出する復号部と、
前記各データとこれに対応する逆量子化データとの誤差を算出する誤差算出部と、
前記各量子化データと算出した各誤差とをパラメータとして各データに対する評価値を演算する評価値演算部と、
所定範囲の複数の量子化パラメータについて算出されたブロックを構成する複数のデータの評価値の総和が最小となる量子化パラメータを前記所定範囲の量子化パラメータから選択する量子化パラメータ選択部と
を具備することを特徴とするデータ符号化装置。
【請求項２】
前記評価値演算のために前記符号部において得られた複数の量子化データは、前記ブロック内において指定された範囲内の隣接する複数のデータを量子化パラメータに対応する量子化ステップで除したものである請求項１に記載のデータ符号化装置。
【請求項３】
前記評価値演算部の評価値は、前記量子化データをＬ、前記誤差をＤ、α及びβを０以外の数とした時、下記の式で演算される請求項１に記載のデータ符号化装置。
評価値＝ΣＬ×ΣＤ＋ΣＬ×α＋ΣＤ×β
【請求項４】
前記αとβを異なる数値とし、前記評価値における量子化率又は誤差のいずれかに重みをおいた請求項３に記載のデータ符号化装置。
【請求項５】
ｎ×ｎのブロックデータ内の各データを量子化パラメータに対応する量子化ステップによりスカラー量子化して量子化データを得るに際して、前記量子化パラメータを最適化するデータ符号化方法であって、
前記量子化された量子化データを復号して逆量子化データを得る復号化ステップと、
前記量子化前のデータとこれに対応する逆量子化データとの誤差を算出する誤差算出ステップと、
前記量子化データと算出した誤差とをパラメータとしてデータに対する評価値を演算する評価値演算ステップと、
所定範囲の複数の量子化パラメータについて算出されたブロックを構成する各データの前記評価値の総和が最小となる量子化パラメータを前記所定範囲の量子化パラメータから選択する量子化ステップ選択ステップと
を具備することを特徴とするデータ符号化方法。
【請求項６】
ｎ×ｎのブロックデータ内において、指定した範囲内のデータについて量子化と逆量子化を繰り返し、最適な量子化パラメータを選択する請求項５に記載のデータ符号化方法。
【請求項７】
前記量子化パラメータ選択ステップは、基準量子化パラメータ及び比率パラメータを設定し、前記基準量子化パラメータ及び比率パラメータで算出した誤差又は量子化率の最大値をそれぞれ設定し、前記ブロックデータに対して算出された評価値の総和が最小となる量子化ステップの誤差又は量子化率の総和が前記各最大値より大きい値となる場合は、当該量子化ステップを最適な量子化パラメータとして選択対象にしない選択対象外ステップを含む請求項５に記載のデータ符号化方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、量子化を伴う画像または音声情報の圧縮符号化システムにおけるデータ符号化装置及びデータ符号化方法に関し、特に、情報の量子化に際して、量子化パラメータを制御し、最適化することにより、高品質で効率的な圧縮を可能とするデータ符号化装置及びデータ符号化方法に関する。
【背景技術】
【０００２】
データ符号化装置においては、ＤＣＴ変換された情報から構成されるｎ×ｎのデータから成るブロック単位に分割し、各データを量子化パラメータに対応する量子化ステップによりスカラー量子化して符号化する処理が行われている。
例えば、データ符号化装置において画像情報を符号化する場合、図９に示すように、原画像１をｎ×ｎのデータから成るマクロブロックにブロック分割２し、ＤＣＴ変換３を行った後、その結果を量子化パラメータ（ＱＰ）に対応する量子化ステップ（ＱＳ）で除して量子化４を行って圧縮データ５を得るのが一般的である。
復号化する場合は、圧縮データ５を逆量子化６し、ＤＣＴ逆変換７を行った後、ブロック合成８して原画像９を得る。
また、音声情報を符号化する場合は、フレーム単位でＭＤＣＴ変換を行った後、量子化を行うのが一般的である。
【０００３】
量子化を行うに際して使用する量子化ステップ（ＱＳ）は、量子化パラメータ（ＱＰ）から算出されるスカラー量である。ＱＳの算出方法は符号化方法により異なるが、例えばＭＰＥＧ１，２，４では、ＱＰに２をかけたものがＱＳとなる。Ｈ．２６４／ＡＶＣでは、２の｛（ＱＰ−４）／６｝乗の近似値がＱＳとなる。このＱＳは整数ではないが整数演算可能である。
【０００４】
従来、データ符号化を行う方式としては、量子化ステップＱでの除算をＫビット固定小数点近似での逆数乗算とする際、量子化ステップＱが偶数の場合はＫ＋１ビット以下を切り捨てとする方式が特許文献１の「画像圧縮用量子化装置」として提案されている。
【０００５】
また、量子化ステップＱによる量子化手段において、量子化演算で発生する小数点以下の端数３ビットを参照することで丸めの閾値を５Ｑ／８とし、四捨五入による丸めの閾値Ｑ／２よりも大きく設定することで、量子化演算結果が小さくなるように丸める方式が特許文献１の「従来の技術」において、圧縮効率を向上する量子化手段の例として記載されている。
【０００６】
更に、データ符号化を行うに際して、基準の量子化ステップ（ＱＳ）とその−１，＋１のＱＳで量子化と逆量子化及び可変長符号化を実行し、量子化誤差と可変長符号化ビット量の積が最も小さいＱＳを選択する方式が特許文献２の「高能率符号化装置」として提案されている。
【０００７】
また、入力画像をＤＣＴ変換し、量子化、逆量子化、逆ＤＣＴ及び可変長符号化を行い、元画像と出力画像との差分と出力ビット量からのコスト計算までをそれぞれの符号化モードと複数の量子化パラメータＱＰの全組み合わせで実行して、コストが最小となる符号化モードと量子化パラメータＱＰを決定する方式が特許文献３の「画像符号化装置、及び画像符号化方法」として提案されている。
【特許文献１】特許第３０４４５１４号
【特許文献２】特開平８−１３０４７９号
【特許文献３】特開２００６−１２１５３８号
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載された符号化方法では、符号化を行うに際して各データを一律な近似方法で量子化を行うため、量子化データに応じた変更ができないという問題点があった。
【０００９】
特許文献２に記載された符号化方法では、データと逆量子化データとの誤差を求め、誤差が最小になる量子化ステップ（ＱＳ）を選択しているが、誤差が小さい時でも量子化データ（入力データを量子化ステップで除した値）が大きくなる場合もあり、他の要因を排除した誤差のみの判断基準では最適なＱＳの選択精度に限度があった。
また、最適なＱＳを導き出すために可変長符号化も処理対象とする方法についても述べられているが、この場合は処理時間を必要とするという問題点があった。
【００１０】
特許文献３に記載された符号化方法では、特許文献２に記載の方法に加えて、ＤＣＴと逆ＤＣＴも処理対象とし、且つ符号化モードと量子化パラメータＱＰとの全組み合わせを実行するため、更なる処理時間を必要とする。また、処理の対象としている機能ブロックが量子化にとどまらず多岐にわたるため、既存の資産を利用した改造や再構築を行うのが困難であるという問題点があった。
【００１１】
本発明は上記実情に鑑みて提案されたもので、符号化を行うに際しての処理時間を落とすことなく、精度が良好となる量子化が実現できるデータ符号化装置及びデータ符号化方法を提供することを目的としている。
【課題を解決するための手段】
【００１２】
上記目的を達成するため本発明は、ＤＣＴ変換された情報から構成されるｎ×ｎのデータから成るブロック単位に分割し、各データを量子化パラメータに対応する量子化ステップによりスカラー量子化して符号化するデータ符号化装置において、次の構成を含むことを特徴としている。
符号部（量子化部）。この符号部は、前記ブロックを構成する複数のデータについて共通する量子化ステップで除して量子化データを得るものである。
復号部（逆量子化部）。この復号部は、前記符号部で得た各量子化データを復号して逆量子化データを算出するものである。
誤差算出部。この誤差算出部は、前記各データとこれに対応する逆量子化データとの誤差を算出するものである。
評価値演算部。この評価値演算部は、前記各量子化データと算出した各誤差とをパラメータとして各データに対する評価値を演算するものである。
量子化パラメータ選択部。この量子化ステップ選択部は、所定範囲（最適化の検索範囲）の複数の量子化パラメータについて算出されたブロックを構成する複数のデータの評価値の総和が最小となる量子化パラメータを前記所定範囲の量子化パラメータから選択するものである。
【００１３】
請求項２は、請求項１のデータ符号化装置において、評価値演算のために前記符号部において得られた複数の量子化データは、前記ブロック内において指定された範囲内の隣接する複数のデータを量子化パラメータに対応する量子化ステップで除したものであることを特徴としている。
【００１４】
請求項３は、請求項１のデータ符号化装置において、前記評価値演算部の評価値は、量子化データをＬ、データと逆量子化データとの誤差をＤ、α及びβを０以外の数とした時、
評価値＝ΣＬ×ΣＤ＋ΣＬ×α＋ΣＤ×β
の式で演算することを特徴としている。
【００１５】
請求項４は、請求項３のデータ符号化装置において、前記αとβを異なる数値とし、前記評価値における量子化率又は誤差のいずれかに重みをおいたものであることを特徴としている。
【００１６】
請求項５の発明は、ｎ×ｎのブロックデータ内のデータを量子化パラメータに対応する量子化ステップによりスカラー量子化して量子化データを得るに際して、前記量子化パラメータを最適化するデータ符号化方法であって、次の各ステップを含むことを特徴としている。
復号化ステップ。この復号化ステップにより、前記量子化された量子化データを復号して逆量子化データを得る。
誤差算出ステップ。この誤差算出ステップにより、前記量子化前のデータとこれに対応する逆量子化データとの誤差を算出する。
評価値演算ステップ。この評価値演算ステップにより、前記量子化データと算出した誤差とをパラメータとしてデータに対する評価値を演算する。
量子化パラメータ選択ステップ。この量子化パラメータ選択ステップにより、所定範囲の複数の量子化パラメータについて算出されたブロックを構成する複数のデータの前記評価値の総和が最小となる量子化パラメータを前記所定範囲の量子化パラメータから選択する。
【００１７】
請求項６は、請求項５のデータ符号化方法において、ｎ×ｎのブロックデータ内において、指定した範囲内のデータについて量子化と逆量子化を繰り返し、最適な量子化パラメータを選択することを特徴としている。
【００１８】
請求項７は、請求項５のデータ符号化方法において、前記量子化パラメータ選択ステップは、基準量子化パラメータ及び比率パラメータを設定し、前記基準量子化パラメータ及び比率パラメータで算出した誤差又は量子化率の最大値をそれぞれ設定し、前記ブロックデータに対して算出された評価値の総和が最小となる量子化パラメータの誤差又は量子化率の総和が前記各最大値より大きい値となる場合は、該量子化パラメータを最適な量子化ステップとして選択対象にしない選択対象外ステップを含むことを特徴としている。
【発明の効果】
【００１９】
本発明のデータ符号化装置及びデータ符号化方法によれば、量子化データと、各データとこれに対応する逆量子化データとの誤差とをパラメータとしてデータに対する評価値を演算し、評価値の総和が最小となる量子化パラメータを選択することで、量子化手続きのみの繰り返しで最適な量子化パラメータを選択することができ、符号化を行うに際しての処理時間を落とすことなく、精度が良好となる量子化が実現できる。
【００２０】
また、評価値をΣＬ×ΣＤ＋ΣＬ×α＋ΣＤ×βの式で演算するに際して（Ｌ：量子化データ、Ｄ：データと逆量子化データとの誤差、α，β：０以外の数）、αとβを異なる数値とすることで、評価値における量子化率又は誤差のいずれかに重みをおくことができる。
【００２１】
また、基準量子化パラメータ及び比率パラメータを設定し、基準量子化パラメータ及び比率パラメータで算出した誤差又は量子化率の最大値をそれぞれ設定し、ブロックデータに対して算出された評価値の総和が最小となる量子化パラメータの誤差又は量子化率の総和が各最大値より大きい値となる場合は、当該量子化パラメータを最適な量子化パラメータとして選択対象にしないことで、誤差や量子化率のみが小さい量子化パラメータを選択から排除することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明のデータ符号化方法を実現するデータ符号化装置の実施の形態の一例について、図面を参照しながら説明する。図１は、本発明のデータ符号化装置の構成を示すブロック図である。
【００２３】
本発明のデータ符号化装置１０は、図９の量子化におけるデータ処理を行うための装置であり、ＤＣＴ変換された後にｎ×ｎのデータから成るブロック単位に分割された入力データ（ブロックデータ）を入力し、各データを量子化パラメータに対応する量子化ステップによりスカラー量子化して符号化して出力データとして出力する。
データ符号化装置１０は、ｎ×ｎの一つのブロックデータを蓄える入力データバッファ１１と、ｎ×ｎの一つの量子化後のブロックデータを蓄える量子化データバッファ１２と、データに対して入力された量子化パラメータ（ＱＰ）に従って量子化を行って量子化データを得る量子化部（符号部）１３と、量子化部１３で得られた量子化データの逆量子化を行って逆量子化データを得る逆量子化部（復号部）１４と、量子化部１３、逆量子化部１４等の装置内の各部全体を制御するとともに、逆量子化部１４からの逆量子化データと入力データバッファ１１からのデータとから評価演算を行う制御・評価部１５を有して構成されている。
【００２４】
入力データバッファ１１は、一つの入力データブロックを蓄えるものであり、ブロックデータ（ｎ×ｎのデータから成るブロック単位の入力データ）を一時的に記憶し、制御・評価部１５の要求により入力データを構成する複数のデータについて制御・評価部１５へ出力する。
量子化データバッファ１２は、量子化後のデータブロックを蓄えるものであり、最適な量子化パラメータ（ＱＰ）を選択するに際して、その過程において量子化が行われたｎ×ｎのブロックデータを一時的に記憶し、最適な量子化パラメータ（ＱＰ）が選択された場合、それにより量子化が行われたｎ×ｎのブロックデータについて出力するものである。
【００２５】
量子化部１３は、制御・評価部１５を介して入力されたデータに対して、制御・評価部１５で指示された量子化パラメータ（ＱＰ）に従って量子化を行い、その結果を逆量子化部１４、及び制御・評価部１５へ出力するものである。
逆量子化部１４は、量子化部１３により量子化が行われたデータを入力し、制御・評価部１５で指示された量子化パラメータ（ＱＰ）に従って逆量子化を行い、その結果を制御・評価部１５へ出力するものである。
【００２６】
制御・評価部１５には、逆量子化部１４からの逆量子化データと入力データバッファ１１からのデータが入力されるとともに、基準ＱＰ及び入力パラメータが入力され、評価演算が行われて最適な量子化パラメータ（ＱＰ）が選択される。
基準ＱＰは、制御・評価部１５の評価演算において、量子化パラメータ（ＱＰ）を選択する場合に使用されるもので、選択方法の詳細については後述する。入力パラメータは、評価値を求めるための数式におけるα、βの定数、量子化パラメータ（ＱＰ）の最適化の検索範囲となる−値及び＋値（所定範囲）、最大誤差比率、最大量子化率比率であり、これらのパラメータの使用の仕方についても後述する。
最適な量子化パラメータ（ＱＰ）の選択過程において、各量子化パラメータに対応する量子化ステップにより量子化部１３において量子化が行われたデータは制御・評価部１５に戻され、量子化データバッファ１２へ出力される。
【００２７】
次に、制御・評価部１５において最適な量子化パラメータ（ＱＰ）を選択する場合の最適化理論について、図２を参照しながら説明する。図２は、量子化データの例を示すグラフ図である。
【００２８】
データについてスカラー量である量子化ステップ（ＱＳ）で除して量子化（符号化）を行う場合、ＱＳが大きくなると符号化サイズは小さくなるが、その分、品質が悪くなるのが通常である。ところがＱＳを大きくしても必ずしも品質が悪くならないケースがある。
これは、量子化後の値は整数であるため、量子化の際の丸め誤差に起因するものである。そのため、量子化率が同じでも誤差の異なる場合がある。
【００２９】
図２のグラフは、データ「１０」に対して量子化ステップ（ＱＳ）として１〜１６を選択した場合の「量子化データ」「逆量子化データ」「誤差」「誤差（％）」「量子化率」をそれぞれ算出したものである。
「量子化データ」は、データ「１０」を各量子化ステップ（ＱＳ）で除して小数点以下の切り捨てを行った数値（整数）である。
「逆量子化データ」は、各量子化データに各量子化ステップ（ＱＳ）を乗じた数値（整数）である。
「誤差」は、データ「１０」から各逆量子化データを減じた数値（整数）である。
「誤差（％）」は、各誤差をデータ「１０」で除した値（％）である。
「量子化率」は、各量子化データをデータ「１０」で除した値（％）である。
【００３０】
図２のケースでは、データ「１０」に対してＱＳが６から１０の場合、量子化率は「１０％」で同じであるが、誤差は「０〜４０％」で異なる。量子化率が同じであれば、より誤差の少ないＱＳを選択した方が高品質な圧縮が可能である。
また、例えばＱＳの既定値を「４」とし、±1の範囲でＱＳの最適化を行うことを想定すると、ＱＳが「５」と「３」の場合では、「５」の場合の方が誤差が少ない上に量子化率も良いことが分かる。この性質を利用すれば、各データの量子化に際して、データ毎にＱＳを選択することで、より高品質で効率的な量子化が可能となる。
【００３１】
一方、図２のケースにおいて、ＱＳの既定値を「６」とし、±１の範囲でＱＳの最適化を行う場合、ＱＳが「６」の時の誤差が４０％、量子化率が１０％、ＱＳが「７」の時の誤差が３０％、量子化率が１０％に対して、ＱＳが「５」の時は、誤差が０％、量子化率が２０％となり、ＱＳ「６」「７」に比較して「５」の方が誤差は少ないが、量子化率は悪くなる現象が生じる。誤差は０％が一番良く小さい値が好ましいし、量子化率は０でない小さい値が好ましいが、データに対してＱＳを選択する場合、上述のように誤差が小さいが量子化率が大きくなる場合や、その逆の場合が生じることがある。
【００３２】
本発明では、量子化前の元データと量子化データ及び逆量子化後のデータを用いて評価値を求め、評価値が最少となるよう量子化パラメータ（ＱＰ）に対応する量子化ステップ（ＱＳ）を選択することで最適化を行う。評価値の計算式については種々のものが考えられるが、以下、評価値の第１例〜第５例の５種類について説明する。
【００３３】
評価値の第１例としては、量子化データの誤差（Ｄ：量子化前のデータと逆量子化後のデータとの差分絶対値）と量子化率（Ｒ：量子化データ／量子化前の元データ）を掛け合わせた値を評価値と定義する。実際には、評価値が「０」になることを避けるため、評価値には、誤差（Ｄ）、量子化率（Ｒ）にそれぞれ定数項α，βを加算した値の積（ Ｒ＋β）×（Ｄ＋α）が設定される。また、定数項α，βは量子化率と誤差の重みを調整するための係数にもなる。
【００３４】
最適な量子化パラメータ（ＱＰ）に対応する量子化ステップ（ＱＳ）の判断する基準となる第１の評価値の例は、下記の式（１）又は（１）'で示される。ｎ×ｎのブロックデータの集合体が画像である場合、ｎ×ｎのブロック内（ｎ＝１６）の２５６個のデータの評価値の総和（絶対値和または二乗和）が最終的な評価値（判断基準となる評価値）となる。
評価値（１）＝Σ｛（ Ｒ＋β）×（Ｄ＋α）−α×β｝
＝Σ（Ｒ×Ｄ +Ｒ×α + Ｄ×β）               式（１）
また、評価値（１）に対して固定値αβを加算することで、乗算回数を削減して算出できる下記の評価値（１）'を使用してもよい。
評価値（１）'＝Σ｛（ Ｒ＋β）（Ｄ＋α）｝
＝Σ（Ｒ×Ｄ +Ｒ×α + Ｄ×β＋α×β）     式（１）'
なお、これらの式において、
Ｒ＝ 量子化率（量子化データ／量子化前の元データ）
Ｄ＝ 誤差（量子化前のデータと逆量子化後のデータとの差分絶対値）
である。
定数項α、βには、０以外の任意の正の値が設定できる。その場合、量子化率（Ｒ）を優先させたい場合はβを、精度（Ｄ）を優先させたい場合はαを小さくすることにより、重み付けを調整することができる。
また、実数演算を避ける為に量子化前の元データには任意の整数値を乗じてもよい。
【００３５】
図２の表の例では、α、βをそれぞれ０．５とし、ｎ×ｎのブロックデータを構成する各データについて（ Ｒ＋β）（Ｄ＋α）で評価値を算出し、その評価値総和である評価値（１）'が小さいものが量子化ステップ（ＱＳ）として適していると判断する。
【００３６】
また、評価値の第２例として、量子化データをＬと定義し、ブロック内の量子化データ（Ｌ）の絶対値和又は二乗和と、誤差（Ｄ）の絶対値和又は二乗和から評価値を下記の式（２）又は（２）'から求めても良い。
評価値（２）＝（ΣＬ＋β）×（ΣＤ ＋α）−α×β
＝ΣＬ×ΣＤβ + ΣＬ×α + ΣＤ×β              式（２）
評価値（２）に対して固定値αβを加算することで、乗算回数を削減して算出できる下記の評価値（２）'を使用してもよい。
評価値（２）' ＝（ΣＬ＋β）×（ΣＤ ＋α）                  式（２）'
なお、これらの式において、
ΣＬ＝ ブロック内の量子化データ（Ｌ）の絶対値和、又は二乗和
ΣＤ＝ ブロック内の誤差(Ｄ)の絶対値和、又は二乗和
である。
定数項α、βには、０以外の任意の正の値が設定できる。その場合、量子化データ（Ｌ）を優先させたい場合はβを、精度（誤差Ｄ）を優先させたい場合はαを小さくすることにより、重み付けを調整することができる。
【００３７】
評価値の第３例として、前記した評価値（２）を基本として算出する下記の評価値（３）で評価しても良い。
評価値（３）＝α×ΣＬ×ΣΣＤ＋β×ΣＤ×ΣΣＬ        式（３）
ここで、
ΣＬ＝ブロック内の量子化データ（Ｌ）の絶対値和、又は二乗和
ΣＤ＝ブロック内の誤差(Ｄ)の絶対値和、又は二乗和
ΣΣＬ＝比較対象とする全ＱＰで求めたΣＬの総和
ΣΣＤ＝比較対象とする全ＱＰで求めたΣＤの総和
である。
定数項α、βには、０以外の任意の正の値が設定できる。
量子化率（Ｌ）を優先させたい場合はβを、精度（誤差Ｄ）を優先させたい場合はαを小さくすることにより、重み付けを調整することができる。
【００３８】
また、評価値の第４例として、ブロック内の量子化データから生成ビット量を予測しその値をＢＬと定義し、可変長符号化を実施することなく生成ビット量を予測し、その予測ビット量（ＢＬ）又はその二乗と誤差（Ｄ）の絶対値和又は二乗和から評価値を下記の式（４）又は（４）'から求めてもよい。
予測ビット量（ＢＬ）の計算方法については後述する。
評価値（４）＝ＢＬ×ΣＤ＋ＢＬ×α＋ΣＤ×β         式（４）
又は
評価値（４) '＝（ＢＬ＋β）×（ΣＤ＋α）           式（４）'
ここで、
ＢＬ＝ブロック内の量子化データから予測計算した予測ビット量、又はその二乗
ΣＤ＝ブロック内の誤差（Ｄ）の絶対値和、又は二乗和
定数項α、βには、０以外の任意の正の値が設定できる。
予測ビット量（ＢＬ）を優先させたい場合はβを、精度（誤差Ｄ）を優先させたい場合はαを小さくすることにより、重み付けを調整することができる。
【００３９】
評価値の第５例として、前記した評価値（４）を基本として算出する下記の評価値（５）で評価しても良い。
評価値（５）＝α×ＢＬ×ΣΣＤ＋β×ΣＤ×ΣＢＬ        式（５）
ここで、
ＢＬ＝ブロック内の量子化データから予測計算した予測ビット量、又はその二乗
ΣＤ＝ブロック内の誤差（Ｄ）の絶対値和、又は自二乗和
ΣＢＬ＝比較対象とする全ＱＰで求めたＢＬの総和
ΣΣＤ＝比較対象とする全ＱＰで求めたΣＤの総和
定数値α、βには、０以外の任意の正の値が設定できる。
予測ビット量（ＢＬ）を優先させたい場合はβを、精度（誤差Ｄ）を優先させたい場合はαを小さくすることにより、重み付けを調整することができる。
【００４０】
次に、予測ビット量（ＢＬ）を計算する方法について説明する。
予測ビット量を求める対象ブロックは、複数のＤＣＴブロックから構成されている。
以下の式の内、ＲおよびＴについてはＤＣＴブロック毎に求めた値の総和である。
ＢＬ＝Ｌ＋Ｎ＋Ｃ＋Ｔ＋ＱＤ                          式（６）
ここで、
Ｌ＝量子化データの絶対値和
Ｎ＝非ゼロの量子化データの総数
Ｃ＝各ＤＣＴブロックでジグザグスキャン順に量子化データを追った場合、ゼロ
係数の次に非ゼロ係数が出現した回数
Ｔ＝ＤＣＴブロック毎でジグザグスキャン順に量子化データを追った場合の最後
に出現した非ゼロ係数の位置。
最後の非ゼロ係数が先頭に位置したなら１とし、終端の場合は該当ＤＣＴブ
ロックの係数の個数とする。全てゼロの場合は０とする。
Ｑｄ＝一つ前のブロックに適用されたＱＰ値と現ブロック評価中のＱＰ値との
差分絶対値
である。
Ｌ，Ｎ，Ｃ，Ｔ，Ｑｄ各項には、可変長符号化処理や対象のコーデック仕様に併せて定数項を定義し、乗じることで調整を行ってもよい。
【００４１】
以下、上記した各評価値別の処理について説明する。
前記した評価値（１）を使用して制御・評価部１５における量子化パラメータ（ＱＰ）を最適化する具体的な方法について、図３及び図４を参照しながら説明する。図３は制御・評価部１５の機能を詳細に説明したブロック図であり、図４は最適化の手順を示したフローチャートである。
【００４２】
図３の量子化パラメータ最適化処理ブロックは、入力された量子化パラメータＱＰに従って量子化を行う量子化部１３と、逆量子化を行う逆量子化部１４と、量子化部１３と逆量子化部１４を制御し、その結果と入力データとから評価演算を行う制御・評価部１５と、一つの入力データブロックを蓄える入力データバッファ１１と、一つの量子化後のデータブロックを蓄える量子化データバッファ１２とから構成される。
入力された基準ＱＰとパラメータは制御・評価部１５に渡され、入力データは入力データバッファ１１に保存される。
【００４３】
制御・評価部１５におけるＱＰの最適化は、量子化前のデータと逆量子化部１４で逆量子化された値から誤差を求め、誤差と量子化率をパラメータとして上述した式（１）で算出した評価値（１）の総和が最少となるＱＰを選択することで行われる。
すなわち、制御・評価部１５は、各量子化データと算出した各誤差（各データとこれに対応する逆量子化データとの誤差）とをパラメータとして各データに対する評価値を演算する評価値演算部１５１と、任意の複数の量子化パラメータについて算出されたブロックを構成するデータ毎の評価値の総和が最小となる量子化パラメータを任意の量子化パラメータから選択する量子化パラメータ選択部１５２を有して構成されている。
【００４４】
評価値演算部１５１には、エンコーダによって設定される基準ＱＰ、及び、入力パラメータが入力される（ステップ１０１）。入力パラメータには、評価値（１）を求めるための定数値であるα及びβ、ユーザが定めた最適化の検索範囲（所定範囲）であるＱＰの範囲（±値）と、最大誤差比率、最大量子化率比率が含まれている。
制御・評価部１５において最適化を行うのは、エンコーダによって設定される基準ＱＰの前後でかつユーザが定めた範囲内とする。例えばエンコーダで設定された基準ＱＰが「１０」、ユーザが定めた最適化の範囲を−１から＋２とすると、先ず基準ＱＰを入力して評価値が算出され、その後に−１（９），＋１（１１），＋２（１２）のＱＰが入力されることで、ＱＰ＝９，１０，１１，１２の場合の評価値をそれぞれ測定し、評価値が最少となるＱＰを最終的な最適な量子化パラメータ（ＱＰ）として選択する。
また、評価値演算部１５１には、入力データバッファ１１に保存されたｎ×ｎの入力データを構成する一つのデータが入力される（ステップ１０２）。
【００４５】
評価値演算部１５１は、基準ＱＰを量子化部１３と逆量子化部１４に出力し、入力データバッファから送られたデータ（ｎ×ｎブロック内の一つのデータ）を量子化部１３に出力する。量子化部１３では、基準ＱＰとデータから量子化データを算出し（ステップ１０３）、評価値演算部１５１に出力する。
逆量子化部１４では、量子化データを逆量子化した逆量子化データを算出し、評価値演算部１５１に出力する。
評価値演算部１５１では、データと量子化データＬから量子化率Ｒを算出し（ステップ１０４）、データと逆量子化データとの差分から評価値演算部１５１内の誤差算出部で誤差Ｄを算出し（ステップ１０５）、それぞれの値から評価値（１）としての｛（ Ｒ＋β）×（Ｄ＋α）−α×β｝を算出して（ステップ１０６）一時的に記憶する。
入力データバッファ１１に記憶されたｎ×ｎブロックデータを構成する各データ（２５６個）について、上述の演算が繰り返して行われ（ステップ１０７）、全てのデータに対する量子化率及び誤差が算出された後に、量子化率の絶対値（又は二乗）総和と誤差値の絶対値（又は二乗）総和を演算する（ステップ１０８）。
【００４６】
演算された量子化率の総和、入力パラメータとして入力された最大誤差比率、最大量子化率比率により算出された最大誤差値、最大量子化値をそれぞれ記憶し、前記した式（１）の評価値の総和を算出して、これを評価値の初期値（基準ＱＰに対する評価値）として評価値演算部１５１に記憶する。
【００４７】
最大誤差値は、下記の式（７）に示すように、エンコーダで設定された基準ＱＰの場合の誤差の総和に対して、ユーザが定めた最大誤差比率パラメータを乗じた値としている。
同様に、最大量子化値は、下記の式（８）に示すように、エンコーダで設定された基準ＱＰの場合の量子化率の総和に対して、ユーザが定めた最大量子化率比率パラメータを乗じた値としている。
最大誤差値＝基準ＱＰの場合の誤差総和 × 最大誤差比率パラメータ      式（７）
最大量子化率値＝
基準ＱＰの場合の量子化率総和 × 最大量子化率比率パラメータ      式（８）
【００４８】
基準ＱＰは、量子化ステップ選択部１５２においてＱＰの最適化を行う場合に、比較される初期ＱＰとして評価値総和とともに記憶される（ステップ１１０）。量子化パラメータ選択部１５２においては、評価値が小さいＱＰに順次更新することが行われ、量子化部１３で算出された各データに対する各量子化データについては、評価値演算部１５１を介してＱＰが更新される場合に量子化データバッファ１２に出力され、ｎ×ｎのブロックデータとして記憶される。
【００４９】
次に、最適化の検索範囲であるＱＰの範囲（±値）内において、基準ＱＰを除く各ＱＰに対して量子化部１３及び逆量子化部１４に出力し、上記同様の演算を行った結果から誤差及び量子化率を求め、式（７）（８）で求めた最大誤差値、最大量子化値と比較し（ステップ１０９）、これを超える（大きな値）だった場合、該当ＱＰは選択の対象外とする。
この作業を行うことで、誤差は小さいが量子化率が大きいＱＰや、逆に量子化率は小さいが誤差が大きい値となるＱＰを最適な量子化パラメータ（ＱＰ）候補から排除することができる。
【００５０】
ＱＰが最大誤差値及び最大量子化値に関して選択対象内である場合は、式（１）により評価値の総和であるΣ｛（ Ｒ＋β）×（Ｄ＋α）−α×β｝を求め、その時点で最小の評価値総和よりも小さい場合は、評価値演算部１５１に記憶している評価値総和と量子化パラメータ選択部１５２に記憶しているＱＰをそれぞれ更新し（ステップ１１０）、量子化データバッファ１２のｎ×ｎのブロックデータについても書き換えて更新する。
【００５１】
最適化の検索範囲である対象範囲内に属する全てのＱＰ（基準ＱＰ±）について量子化、逆量子化と最大誤差判定、最大量子化率判定、評価値総和の判定が完了した場合（ステップ１１１）に、最終的に量子化パラメータ選択部１５２に記憶されているＱＰを最適な量子化パラメータとして選択し（ステップ１１２）、このＱＰで量子化が行われて記憶されている量子化データバッファ１２内のｎ×ｎのブロックデータを出力データとして外部へ出力する。
【００５２】
上記例では、ｎ×ｎブロックを構成する２５６個の各データをデータ範囲とし、これらの各データについて量子化データ及び逆量子化データを得て評価値総和を算出するようにしたが、ｎ×ｎブロック内において指定された範囲内の隣接する複数のデータをデータ範囲とし、これらのデータについて量子化データ及び逆量子化データを得て評価値総和を算出してもよい。
これにより、より簡便な処理で最適な量子化パラメータＱＰを選択できるので、更なる処理速度の向上を図ることができる。
【００５３】
上記例では、評価値演算部１５１において評価値（１）を演算するに際して、量子化率をＲ、データと逆量子化データとの誤差をＤ、α及びβを０以外の数とした時、評価値（１）＝（Ｄ＋α）（Ｒ＋β）−α×βとして定数項のみの乗算値α×βを評価値に含ませないようにしたが、上述した評価値（１）'＝（Ｄ＋α）（Ｒ＋β）の式（１）'で演算するようにしてもよい。
【００５４】
次に、評価値（２）又は評価値（２) 'を用いる場合について、評価値（１）又は（１）'を使用する場合と異なる処理を中心に、図５を参照して説明する。
評価値演算部１５１には、エンコーダによって設定される基準ＱＰ、及び、入力パラメータが入力される（ステップ２０１）。入力パラメータには、評価値（１）の場合と同様に、評価値（２）を求めるための定数値であるα及びβ、ユーザが定めた最適化の検索範囲（所定範囲）であるＱＰの範囲（±値）と、最大誤差比率、最大量子化値比率が含まれている。
また、評価値演算部１５１には、入力データバッファ１１に保存されたｎ×ｎの入力データ（ブロックデータ）が入力される（ステップ２０２）。
【００５５】
制御・評価部１５は、基準ＱＰと入力データバッファ１１のデータを量子化部１３と逆量子化部１４に渡し、量子化の結果から量子化値の絶対値（又は二乗）の総和（ΣＬ＝ ブロック内の量子化データ（Ｌ）の絶対値和、又は二乗和）を求め（ステップ２０３）、逆量子化の結果と入力データとの差分から誤差の総和（ΣＤ＝ ブロック内の誤差(Ｄ)の絶対値和、又は二乗和）を求める（ステップ２０４）。
【００５６】
それらの総和と最大誤差比率、最大量子化変換値比率により最大誤差値、最大量子化変換値を求め記憶し、式（２）又は式（２）'から評価値（２）の（ΣＬ＋β）×（ΣＤ ＋α）−α×β又は評価値（２）'の（ΣＬ＋β）×（ΣＤ ＋α）を求めて評価値の初期値とし記憶する。量子化後のデータは量子化データバッファ１２に記憶する。基準ＱＰは初期ＱＰとする。
【００５７】
次に与えられたパラメータ範囲内の基準ＱＰを除く各ＱＰを量子化部１３と逆量子化部１４に渡し、結果から誤差、量子化値を求め、先に求めた最大誤差値、最大量子化変換値と比較し、より大きな値だった場合、該当ＱＰは選択の対象外とする（ステップ２０５）。
対象内の場合は、式（２）又は式（２）'から評価値（２）＝（ΣＬ＋β）×（ΣＤ ＋α）−α×β、又は、評価値（２）'＝（ΣＬ＋β）×（ΣＤ ＋α）を求め、その時点で最小の評価値よりも小さい場合は記憶している評価値とＱＰを更新し、量子化データバッファ１２も更新する（ステップ２０６）。
対象範囲内の全ＱＰについて量子化、逆量子化と最大誤差判定、最大量子化変換値判定、評価値の判定が完了したら（ステップ２０７）、最終的に記憶されているＱＰと量子化データバッファ１２内のデータを出力する（ステップ２０８）。
【００５８】
次に、評価値（３）を用いる場合について、図６を参照して説明する。
評価値（３）には、評価対象となる与えられたパラメータ範囲内の全てのＱＰを用いることによって求められるパラメータ（ΣΣＬ、ΣΣＤ）を含むため、前段（ステップ３０１〜３０６）では評価対象となる全てのＱＰを用いてこれらのパラメータ（ΣΣＬ、ΣΣＤ）を求めておき、後段（ステップ３０７〜３１１）では個々のＱＰについて前段で求めたパラメータ（ΣΣＬ、ΣΣＤ）を使用した評価値（３）による評価演算を行う。
評価値演算部１５１には、エンコーダによって設定される基準ＱＰ、及び、入力パラメータが入力される（ステップ３０１）。入力パラメータには、評価値を求めるための定数値であるα及びβ、ユーザが定めた最適化の検索範囲（所定範囲）であるＱＰの範囲（±値）と、最大誤差比率、最大量子化値比率が含まれている。
また、評価値演算部１５１には、入力データバッファ１１に保存されたｎ×ｎの入力データ（ブロックデータ）が入力される（ステップ３０２）。
【００５９】
制御・評価部１５は、基準ＱＰと入力データバッファ１１のデータを量子化部１３と逆量子化部１４に渡し、量子化の結果から、量子化値の絶対値（又は二乗）の総和（ΣＬ＝ブロック内の量子化データ（Ｌ）の絶対値和、又は二乗和）を求めて記憶し（ステップ３０３）、逆量子化の結果と入力データとの差分から誤差の総和（ΣＤ＝ブロック内の誤差(Ｄ)の絶対値和、又は二乗和）を求めて記憶される（ステップ３０４）。量子化後のデータは量子化データバッファ１２に記憶する。
【００６０】
全ての対象となる個々のＱＰについて量子化データの絶対値（又は二乗）和、及び誤差絶対値（又は二乗）和が算出され、それらを記憶した後（ステップ３０５）に、量子化データの絶対値（又は二乗）和の全ＱＰについての総和（ΣΣＬ）と誤差絶対値（又は二乗）和の全ＱＰについての総和（ΣΣＤ）を演算する（ステップ３０６）。
ステップ３０６で算出した量子化値の総和（ΣΣＬ）及び誤差値の総和（ΣΣＤ）と最大誤差比率、最大量子化変換値比率により最大誤差値、最大量子化変換値を求め記憶し、評価値を求めて評価値の初期値とし記憶する。基準ＱＰは初期ＱＰとする。
【００６１】
与えられたパラメータ範囲内のＱＰを順次入力し（ステップ３０７）、各ＱＰに該当するステップ３０４、ステップ３０５で算出した誤差（ΣＤ）、量子化値（ΣＬ）を先に求めた最大誤差値、最大量子化変換値と比較し、より大きな値だった場合、該当ＱＰは選択の対象外とする（ステップ３０８）。
対象内の場合は、式（３）から評価値（３）としてα×ΣＬ×ΣΣＤ＋β×ΣＤ×ΣΣＬを求め、その時点で最小の評価値よりも小さい場合は記憶している評価値とＱＰを更新し、量子化データバッファ１２も更新する（ステップ３０９）。
対象範囲内の全ＱＰについて量子化、逆量子化と最大誤差判定、最大量子化変換値判定、評価値の判定が完了したら（ステップ３１０）、最終的に記憶されているＱＰと量子化データバッファ１２内のデータを出力する（ステップ３１１）。
【００６２】
次に、評価値（４) 又は評価値（４) ' を用いる場合について、図７を参照して説明する。
評価値演算部１５１には、エンコーダによって設定される基準ＱＰ、及び、入力パラメータが入力される（ステップ４０１）。入力パラメータには、評価値（１）の場合と同様に、評価値（４）又は評価値（４) 'を求めるための定数値であるα及びβ、ユーザが定めた最適化の検索範囲（所定範囲）であるＱＰの範囲（±値）と、最大誤差比率、最大予測ビット量比率が含まれている。
また、評価値演算部１５１には、入力データバッファ１１に保存されたｎ×ｎの入力データ（ブロックデータ）が入力される（ステップ４０２）。
【００６３】
制御・評価部１５は、基準ＱＰと入力データバッファ１１のデータを量子化部１３と逆量子化部１４に渡し、量子化データを求め（ステップ４０３）、更に式（６）より予測ビット量ＢＬを算出し（ステップ４０４）、逆量子化の結果と入力データとの差分から誤差の総和（ΣＤ＝ ブロック内の誤差(Ｄ)の絶対値和、又は二乗和）を求める（ステップ４０５）。
【００６４】
それらの総和と最大誤差比率、最大予測ビット量比率により最大誤差値、最大予測ビット量を求め記憶し、式（４）又は式（４) 'から評価値（４）＝ＢＬ×ΣＤ＋ＢＬ×α＋ΣＤ×β、又は、評価値（４) '＝（ＢＬ＋β）×（ΣＤ＋α）を求めて評価値の初期値とし記憶する。量子化後のデータは量子化データバッファ１２に記憶する。基準ＱＰは初期ＱＰとする。
【００６５】
次に与えられたパラメータ範囲内の基準ＱＰを除く各ＱＰを量子化部１３と逆量子化部１４に渡し、結果から誤差、予測ビット量を求め、先に求めた最大誤差値、最大予測ビット量と比較し、より大きな値だった場合、該当ＱＰは選択の対象外とする（ステップ４０６）。
対象内の場合は、式（４）から評価値（４）＝ＢＬ×ΣＤ＋ＢＬ×α＋ΣＤ×β、又は、式（４) 'から評価値（４) '＝（ＢＬ＋β）×（ΣＤ＋α）を求め、その時点で最小の評価値よりも小さい場合は記憶している評価値とＱＰを更新し、量子化データバッファ１２も更新する（ステップ４０７）。
対象範囲内の全ＱＰについて量子化、逆量子化と最大誤差判定、最大予測ビット量判定、評価値の判定が完了したら（ステップ４０８）、最終的に記憶されているＱＰと量子化データバッファ１２内のデータを出力する（ステップ４０９）。
【００６６】
次に、評価値（５)を用いる場合について、図８を参照して説明する。
評価値（５）には、評価対象となる与えられたパラメータ範囲内の全てのＱＰを用いることによって求められるパラメータ（ΣＢＬ、ΣΣＤ）を含むため、前段（ステップ５０１〜５０７）では評価対象となる全てのＱＰを用いてこれらのパラメータ（ΣＢＬ、ΣΣＤ）を求めておき、後段（ステップ５０８〜５１１）では個々のＱＰについて前段で求めたパラメータ（ΣＢＬ、ΣΣＤ）を使用した評価値（５）による評価演算を行う。
評価値演算部１５１には、エンコーダによって設定される基準ＱＰ、及び、入力パラメータが入力される（ステップ５０１）。入力パラメータには、評価値（１）の場合と同様に、評価値（５）を求めるための定数値であるα及びβ、ユーザが定めた最適化の検索範囲（所定範囲）であるＱＰの範囲（±値）と、最大誤差比率、最大予測ビット量比率が含まれている。
また、評価値演算部１５１には、入力データバッファ１１に保存されたｎ×ｎの入力データ（ブロックデータ）が入力される（ステップ５０２）。
【００６７】
制御・評価部１５は、基準ＱＰと入力データバッファ１１のデータを量子化部１３と逆量子化部１４に渡し、量子化データを求め（ステップ５０３）、更に式（６）より予測ビット量ＢＬを算出して記憶し（ステップ５０４）、逆量子化の結果と入力データとの差分から誤差の総和（ΣＤ＝ブロック内の誤差の絶対値和、又は二乗和）求めて記憶する（ステップ５０５）。量子化後のデータは量子化データバッファ１２に記憶する。
【００６８】
全ての対象となる個々のＱＰに対する予測ビット量及び誤差が算出された後（ステップ５０６）に、予測ビット量の全ＱＰについての総和（ΣＢＬ）と誤差値の絶対値（又は二乗）和の全ＱＰについての総和（ΣΣＤ）を演算し記憶する（ステップ５０７）。
ステップ５０７で算出した予測ビット量の総和及び誤差値の総和と最大誤差比率、最大予測ビット量率により最大誤差値、最大予測ビット量を求め記憶する。
【００６９】
与えられたパラメータ範囲内のＱＰを順次入力し（ステップ５０８）、各ＱＰに該当するステップ５０４、ステップ５０５で算出した誤差（ΣＤ）、予測ビット量（ＢＬ）を先に求めた最大誤差値、最大予測ビット量と比較し、より大きな値だった場合、該当ＱＰは選択の対象外とする（ステップ５０９）。
対象内の場合は、式（５）から評価値（５）＝α×ＢＬ×ΣΣＤ＋β×ΣＤ×ΣＢＬを求め、その時点で最小の評価値よりも小さい場合は記憶している評価値とＱＰを更新し、量子化データバッファ１２も更新する（ステップ５１０）。
対象範囲内の全ＱＰについて量子化、逆量子化と最大誤差判定、最大予測ビット量判定、評価値の判定が完了したら（ステップ５１１）、最終的に記憶されているＱＰと量子化データバッファ１２内のデータを出力する（ステップ５１２）。
【００７０】
上述したデータ符号化装置及びデータ符号化方法によれば、量子化部１３及び逆量子化部１４における量子化手続きのみの繰り返しで最適な量子化パラメータＱＰを選択できるので、処理速度を殆ど落とすことなく、より精度のよい量子化が実行可能となる。
【００７１】
本発明は、符号化を行うに際しての処理時間を落とすことなく、精度が良好となる量子化が実現できるので、量子化を伴う画像または音声情報の圧縮符号化システムにおけるデータ符号化装置及びデータ符号化方法において有用な技術となる。
【図面の簡単な説明】
【００７２】
【図１】本発明の一実施形態に係るデータ符号化装置の構成を示すブロック図である。
【図２】本発明のデータ符号化装置に入力されたデータ「１０」に対して量子化ステップ（ＱＳ）として１〜１６を選択した場合の「量子化データ」「逆量子化データ」「誤差」「誤差（％）」「量子化率」を示すグラフ図である。
【図３】本発明のデータ符号化装置の制御・評価部の構成を説明するためのブロック図である。
【図４】本発明において評価値（１）又は（１）'を使用したデータ符号化の手順を説明するためのフローチャート図である。
【図５】本発明において評価値（２）又は（２）'を使用したデータ符号化の手順を説明するためのフローチャート図である。
【図６】本発明において評価値（３）を使用したデータ符号化の手順を説明するためのフローチャート図である。
【図７】本発明において評価値（４）又は（４）'を使用したデータ符号化の手順を説明するためのフローチャート図である。
【図８】本発明において評価値（５）を使用したデータ符号化の手順を説明するためのフローチャート図である。
【図９】画像符号化及び復号化のステップを説明するためのブロック図である。
【符号の説明】
【００７３】
１０…データ符号化装置、  １１…入力データバッファ、  １２…量子化データバッファ、  １３…量子化部（符号部）、  １４…逆量子化部（復号部）、  １５…制御・評価部、  １５１…評価値演算部、  １５２…量子化パラメータ選択部。
【図１】
2010141711.tif 000003
【図２】
2010141711.tif 000004
【図３】
2010141711.tif 000005
【図４】
2010141711.tif 000006
【図５】
2010141711.tif 000007
【図６】
2010141711.tif 000008
【図７】
2010141711.tif 000009
【図８】
2010141711.tif 000010
【図９】
2010141711.tif 000011