(57)【特許請求の範囲】
【請求項１】
画像信号または予測残差信号を変換後にその変換係数を量子化して符号化する映像信号符号化方法において，
符号化する際，前記変換係数を量子化した結果を逆量子化し，逆量子化の結果を逆変換して生成した復号信号または前記逆量子化の結果を逆変換した結果に前記予測残差信号を加算して生成した復号信号の画素値が予め定めた定義域を超えるかどうかを判定する過程と，
前記定義域を超えると判定された場合に，復号信号の画素値が定義域を超えないように符号化しなおす過程とを有し，
復号信号の算出時に復号信号の画素値が前記定義域を超えないように符号化する
ことを特徴とする映像信号符号化方法。
【請求項２】
請求項１に記載の映像信号符号化方法において，
復号信号の画素値が前記定義域を超えると判定された場合，有意係数なしとして符号化する
ことを特徴とする映像信号符号化方法。
【請求項３】
請求項１に記載の映像信号符号化方法において，
前記復号信号の画素値が定義域を超えないように符号化しなおす過程では，
前記量子化した結果の非零係数の量子化番号を変更する第１の過程と，
量子化番号変更後の量子化番号から復号信号を生成する第２の過程と，
生成した復号信号の画素値が前記定義域を超えたかどうかの判定を行う第３の過程とを実行し，
復号信号の画素値が前記定義域を超えなくなるまで，前記第１の過程と前記第２の過程と前記第３の過程とを繰り返す
ことを特徴とする映像信号符号化方法。
【請求項４】
請求項３に記載の映像信号符号化方法において，
前記非零係数の量子化番号を変更する際，量子化番号の大きい係数から値を変更する
ことを特徴とする映像信号符号化方法。
【請求項５】
請求項３または請求項４に記載の映像信号符号化方法において，
非零係数の量子化番号を変更する際，量子化番号を０に近づけるように変更する
ことを特徴とする映像信号符号化方法。
【請求項６】
請求項３に記載の映像信号符号化方法において，
予め量子化番号の変更回数を定め，既定の変更回数内で復号信号の画素値が前記定義域に収まらなかった場合，前記第１の過程と前記第２の過程と前記第３の過程の繰り返し処理を中止し，変換係数なしとして符号化する
ことを特徴とする映像信号符号化方法。
【請求項７】
請求項１から請求項６までのいずれか１項に記載の映像信号符号化方法を用いて符号化した符号化データを復号する映像信号復号方法であって，
前記符号化データを入力して復号する過程と，
復号した結果を逆量子化する過程と，
前記逆量子化した結果を用いて復号信号を生成する過程と，
前記生成された復号信号の画素値が予め定めた定義域に含まれるかどうかの判定をしないで，前記復号信号を映像信号として出力する過程とを有する
ことを特徴とする映像信号復号方法。
【請求項８】
画像信号または予測残差信号を変換後にその変換係数を量子化して符号化する映像信号符号化装置において，
符号化する際，前記変換係数を量子化した結果を逆量子化し，逆量子化の結果を逆変換して生成した復号信号または前記逆量子化の結果を逆変換した結果に前記予測残差信号を加算して生成した復号信号の画素値が予め定めた定義域を超えるかどうかを判定する手段と，
前記定義域を超えると判定された場合に，復号信号の画素値が定義域を超えないように符号化しなおす手段とを備え，
復号信号の算出時に復号信号の画素値が前記定義域を超えないように符号化する
ことを特徴とする映像信号符号化装置。
【請求項９】
請求項８に記載の映像信号符号化装置を用いて符号化した符号化データを復号する映像信号復号装置であって，
前記符号化データを入力して復号する手段と，
復号した結果を逆量子化する手段と，
前記逆量子化した結果を用いて復号信号を生成する手段と，
前記生成された復号信号の画素値が予め定めた定義域に含まれるかどうかの判定をしないで，前記復号信号を映像信号として出力する手段とを備える
ことを特徴とする映像信号復号装置。
【請求項１０】
請求項１から請求項６までのいずれか１項に記載の映像信号符号化方法を，コンピュータに実行させるための映像信号符号化プログラム。
【請求項１１】
請求項７に記載の映像信号復号方法を，コンピュータに実行させるための映像信号復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は, 映像符号化の符号化方法および復号方法に関するものである。
【背景技術】
【０００２】
Ｈ．２６４などの従来のロッシーな予測符号化方式では，復号信号を生成する際，必ずクリッピング処理を行っている（非特許文献１参照）。クリッピング処理は，量子化誤差により，予測信号と復号した残差信号を加えた際，元の画素値の範囲を超える可能性をなくし，エンコーダとデコーダの復号画像を一致させるために必須の機能である。クリッピング処理は，エンコーダとデコーダの双方に入っており，エンコーダ，デコーダで同一の復号画像が生成されることを保証している。
【０００３】
従来のエンコーダとデコーダのブロック図を，図１０と図１１に示す。図１０に示す従来の符号化装置４００は，映像信号を入力し，減算器４０１により映像信号と予測信号との差分から予測残差信号を求める。この予測残差信号を直交変換部４０２で直交変換し，その変換係数を量子化部４０３で量子化し，量子化インデックスを算出する。量子化インデックスは，情報源符号化部４０４で可変長符号化され，符号化ストリームとして出力される。
【０００４】
一方，量子化インデックスは，逆量子化部４０５にも送信され，逆量子化部４０５で逆量子化された後，逆直交変換部４０６で逆直交変換される。加算器４０７により逆直交変換結果の残差信号と予測信号とが加算され，復号信号が生成される。この復号信号は，クリッピング部４０８によりクリッピングされた後，フレームメモリ４０９に参照画像として格納される。動き検出部４１０は，動きベクトルの探索により動きベクトルを検出し，動き補償部４１１は，フレームメモリ４０９に格納された参照画像と動きベクトルとから予測信号を生成して出力する。この動きベクトルは，情報源符号化部４０４へ送られ，可変長符号化されて出力される。
【０００５】
図１１に示す従来の復号装置５００は，符号化ストリームを入力すると，復号部５０１により復号する。復号された量子化インデックスは，逆量子化部５０２へ送られ，動きベクトルは動き補償部５０６へ送られる。量子化インデックスは，逆量子化部５０２で逆量子化され，その出力が逆直交変換部５０３で逆直交変換される。動き補償部５０６では，フレームメモリ５０５に格納されている復号済みの参照画像と動きベクトルとから予測信号が生成される。加算器５０４は，逆直交変換部５０３の出力である予測残差信号と動き補償部５０６の出力である予測信号とを加算し，復号信号を生成する。この復号信号は，クリッピング部５０７でクリッピングされた後，映像信号として出力される。また，フレームメモリ５０５に格納される。
【０００６】
図１２は，符号化側および復号側におけるクリッピングに関係する部分の従来方法のフローチャートである。ステップＳ４０で量子化インデックスが逆量子化され，さらに逆直交変換によって予測残差信号の画素成分に復号される。ステップＳ４１では，予測残差信号に予測信号が加算されて，復号信号が生成される。ステップＳ４２では，この復号信号の画素値が定義域を超えていないかどうかの判定と，定義域を超えている場合にはその復号信号の画素値が定義域に入るようにクリッピングする処理が行われる。
【０００７】
ここで，符号化装置（エンコーダ）４００のクリッピング部４０８と，復号装置（デコーダ）５００のクリッピング部５０７とは，エンコーダ，デコーダで同一の復号画像が生成されることを保証するために設けられているが，もし，このクリッピング部４０８，５０７のいずれかがない場合には，エンコーダ，デコーダで復号画像の不一致（これをドリフトという）が発生することとなり，エンコーダとデコーダの復号画像が一致せず，復号された映像が乱れて，正しい予測符号化を行うことができないことになる。
【０００８】
例えば，８ビット（０〜２５５）の入力信号について，原信号が２５２，予測信号が２４０，量子化後の残差信号が１６とすると，復号信号は２５６となり，８ビットの表現範囲を超える。このため，クリッピング部４０８，５０７では，２５５を超えた画素値は２５５にクリッピングする。同様に，０未満の値も０にクリッピングする。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】ITU-T Rec. H.264，“Advanced video coding for generic audiovisual services”，pp.160-161, March, 2005.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
予測の残差信号を符号化する予測符号化方式では，復号信号は，予測信号と復号した残差信号との和から求める。その際に量子化誤差により，入力信号の定義域を超える可能性がある。このため，復号信号を生成するときに，定義域を超えているかどうかを判別するモジュールと，定義域を超えている場合に復号信号をクリッピングするモジュールが必要である。
【００１１】
非特許文献１に記載されている方式では，エンコーダとデコーダでクリッピング処理を行っている。クリッピングの処理は，復号した画素値について，２つの値（上限値と下限値）の大小比較を２回行う必要がある。上限値と下限値を確認し，範囲を超えている場合には，上限値または下限値を代入する。このクリッピング処理は，すべての復号画素について確認を行い，必要に応じて画素値の変更をする必要がある。すべての復号画素を対象とするため，処理負荷は無視できない。しかも，このクリッピング処理は，常に発生するものでもない。
【００１２】
クリッピング処理を行わない場合，つまり，復号信号が上限値と下限値の間に存在していても，確認を行うためにすべての復号画素の値に対して，上限値と下限値の比較を行わなければならない。このため，処理を行わない場合でも復号時の処理負荷は大きい。
【００１３】
本発明は，上記課題の解決を図り，デコーダ側でクリッピング処理を行わなくても，エンコーダとデコーダにおける復号画像が一致することを保証する手段を設けることにより，デコーダでのクリッピング処理を不要とし，デコーダの低消費電力化およびデコーダの小型化を可能にすることを目的とする。
【課題を解決するための手段】
【００１４】
前述したように処理負荷の大きいクリッピング処理を省略できれば，復号時の処理負荷を軽減できる。そこで，本発明では，符号化時に，クリッピング処理が発生しないことを保証する符号化処理を行うことで，復号時のクリッピング処理を不要とする。
【００１５】
すなわち，本発明の映像信号符号化装置は，符号化する際，復号信号の算出時に復号信号の値の定義域を超えないように符号化を行う。そのため，映像信号符号化装置は，復号信号について定義域の範囲を超えるかどうかを判定する手段と，定義域の範囲を超えた場合に，その範囲を超えないように符号化しなおす手段とを備える。
【００１６】
具体的には，映像信号符号化装置は，定義域の範囲を超える復号信号の画素の確認を行い，定義域の範囲を超える画素が確認された場合には，以下のいずれかの処理を行う。
１．有意係数なしで符号化する。
１．１  ＣＢＰ（Coded Block Pattern ）を０にする。
１．２  ベクトル量子化の場合，有意係数なし（すべて０のベクトル）のコードブックを用意し，０ベクトルを出力する。
２．量子化インデックスを変更し，すべての画素が定義域内に収まるように修正する。
２．１  ベクトル量子化であれば，コードブック内のベクトルを調査し，定義域の範囲を超えないベクトルがない場合には，有意係数なしで符号化する。
２．２  量子化インデックスを変更する際，量子化誤差が所定の閾値を超えた時点で，量子化インデックスの変更処理を打ち切り，有意係数なしで符号化する。
【００１７】
以上のように，本発明の映像信号符号化方法は，画像信号または予測残差信号を変換後に量子化して符号化する映像符号化方式において，符号化する際，復号信号の算出時に予め定めた定義域を超えるかどうかを判定する過程と，定義域を超えると判定された場合に，復号信号が定義域を超えないように符号化しなおす過程とを有し，復号信号の算出時に入力信号の定義域を超えないように符号化することを特徴とする。
【００１８】
本発明の映像信号復号方法では，符号化時における復号信号の算出時に復号信号の値の定義域を超えないように符号化した符号化データを入力し，その符号化データを復号する際，復号信号が予め定めた定義域に含まれるかどうかの判定をせずに復号処理を行うことを特徴とする。
【００１９】
上記映像信号符号化方法においては，復号信号が予め定めた定義域を超えたかどうかを判定する際，予め定めた定義域を入力画像信号の定義域と同一とすることができる。
【００２０】
また，上記映像信号符号化方法において，復号信号が予め定めた定義域を超えたと判定された場合，非零係数なしとして符号化するようにしてもよい。
【００２１】
また，上記映像信号符号化方法において，復号信号が予め定めた定義域を超えたと判定された場合，非零係数の量子化番号を変更する手段と，量子化番号変更後の復号信号を復号する手段と，復号した復号信号が予め定めた定義域を超えたかどうかの判定を行う手段とを有し，復号信号が予め定めた定義域を超えなくなるまで，繰り返し量子化番号を変更することを特徴とする。
【００２２】
また，上記映像信号符号化方法において，非零係数の量子化番号を変更する際，量子化番号の大きい係数から値を変更するようにすれば，効率よく量子化番号を変更することができる。
【００２３】
また，上記映像信号符号化方法において，非零係数の量子化番号を変更する際，量子化番号を０に近づけるように変更することにより，量子化番号を定義域内に収めることができるようになる。
【００２５】
また，上記映像信号符号化方法において，復号信号が予め定めた定義域を超えたと判定された場合，予め量子化番号の変更回数を定め，既定の変更回数内で復号信号が定義域に収まらなかった場合に，処理を中止し，変換係数なしとして符号化することにより，無駄に量子化番号の変更を繰り返すことを抑止することができる。
【発明の効果】
【００２６】
本発明によれば，復号信号生成時のクリッピング処理を省略でき，デコーダ側の演算コストを削減できる。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施例による符号化装置のブロック図である。
【図２】図１に示すクリッピング処理部の内部構成を示すブロック図である。
【図３】本発明の他の実施例による符号化装置のブロック図である。
【図４】図３に示すクリッピング処理部の内部構成を示すブロック図である。
【図５】本発明の実施例のフローチャート１である。
【図６】本発明の実施例のフローチャート２である。
【図７】本発明の実施例のフローチャート３である。
【図８】本発明の実施例による復号装置のブロック図である。
【図９】符号化装置をソフトウェアプログラムを用いて実現する場合のハードウェア構成例を示す図である。
【図１０】従来例の符号化装置のブロック図である。
【図１１】従来例の復号装置のブロック図である。
【図１２】従来例のフローチャートである。
【発明を実施するための形態】
【００２８】
以下，本発明の実施形態について，図面を用いながら説明する。図１は，本発明による符号化装置の構成例を示すブロック図である。ここでは，動き補償予測符号化方式を例に説明する。
【００２９】
符号化装置１００は，入力した映像信号と，動き補償部１１１から出力される予測信号との差分を減算器１０１により算出し，予測残差信号を出力する。予測残差信号は，直交変換部１０２で周波数成分の直交変換係数に変換され，各周波数成分は量子化部１０３で量子化されて量子化インデックスが算出される。量子化インデックスは，量子化インデックス変更部１０４に入力され，クリッピングが発生しなければ，そのまま出力される。出力された量子化インデックスは，情報源符号化部１０５で可変長符号化され，符号化ストリームとして出力される。また，量子化インデックスは，逆量子化部１０６で逆量子化され，逆直交変換部１０７で予測残差信号の画素成分に復号される。復号された予測残差信号は，クリッピング処理部１０８に入力される。
【００３０】
クリッピング処理部１０８は，予測信号と復号した残差信号を入力し，一旦，局所復号信号を生成して，クリッピングが発生しないかどうかを確認し，量子化インデックス変更情報とクリッピングが不要な復号信号を出力する。量子化インデックス変更部１０４は，このクリッピング処理部１０８からのクリッピング情報に基づき，量子化インデックス（量子化番号）を変更する。
【００３１】
クリッピング処理部１０８が出力した復号信号は，フレームメモリ１０９に参照画像として格納される。動き検出部１１０は，入力した映像信号について，フレームメモリ１０９に格納された参照画像に対する動きベクトルの探索により動きベクトルを検出し，動き補償部１１１は，フレームメモリ１０９に格納された参照画像と動きベクトルとから予測信号を生成して出力する。この動きベクトルは，情報源符号化部１０５へ送られ，可変長符号化されて出力される。
【００３２】
図２は，クリッピング処理部１０８の内部構成を示すブロック図である。図２のクリッピング処理部１０８では，復号した残差信号と予測信号とを加算器１０８１により加算して復号信号を生成し，その復号信号について，クリッピング有無判定部１０８２でクリッピング発生の有無を確認する。すなわち，定義域の範囲を超える復号信号の画素の有無を確認する。この定義域は，映像の入力信号の定義域と同一でよい。クリッピングが発生しない場合（すべての画素が定義域内の場合）には，スイッチＳＷを閉じ，復号信号をそのまま出力する。量子化インデックスの変更が必要な場合には，クリッピング情報として，量子化インデックス変更情報を出力する。クリッピング情報には，クリッピング発生の有無，クリッピングが発生した画素の位置や大きさなどを含めてもよい。
【００３３】
これにより，図１に示す量子化インデックス変更部１０４では，クリッピング情報に基づき，量子化インデックスを変更する。スカラ量子化の場合，量子化インデックスの変更を０に近づく方向，すなわち絶対値が小さくなる方向に調整を行う。直交変換を行わない符号化方式では，クリッピングが発生した画素位置の量子化インデックスを変更する。ベクトル量子化を利用している場合には，コードブック内の他のベクトルに変更する。
【００３４】
図３は，本発明の他の実施例による符号化装置の構成例を示すブロック図である。図３に示す符号化装置２００も，動き補償付きフレーム間予測符号化方式を前提にしており，クリッピング処理部２０８以外の部分については，図１で説明した符号化装置１００と同様であるため，その部分の説明は省略する。
【００３５】
図４に，クリッピング処理部２０８の内部構成例を示す。図４のクリッピング処理部２０８は，図２と同様，復号した残差信号と予測信号とを加算器２０８１で加算して，クリッピング有無判定部２０８２でクリッピング発生の有無を確認する。クリッピングが発生しない場合には，スイッチＳＷ１を閉じ，復号信号をそのまま出力する。
【００３６】
量子化インデックスの変更が必要な場合には，クリッピング情報としてクリッピングの発生の有無を出力する。それに加えて，本実施例のクリッピング処理部２０８は，量子化誤差判定部２０８３を有する。この量子化誤差判定部２０８３は，量子化前の残差信号と復号した残差信号の差分絶対値和や差分自乗和の誤差電力を比較する。比較の結果，量子化前の残差信号よりも復号した残差信号の電力が大きい場合，つまり，予測信号をそのまま復号信号とした方が符号化雑音が小さいと判断される場合，スイッチＳＷ２を予測信号側へ切り替えて，予測信号を復号信号として出力する。
【００３７】
続いて，クリッピングが発生しなくなるまでの処理の流れを示す。図５〜図７に，実施例の処理フローを示す。
【００３８】
図５の実施例では，量子化インデックスの逆量子化，さらに逆直交変換によって予測残差信号が算出され（ステップＳ１０），それに予測信号が加算されて復号信号が生成される（ステップＳ１１）。その復号信号に対してクリッピングが必要かどうかの判定が行われる（ステップＳ１２）。クリッピングが不要であれば，復号信号が出力される。
【００３９】
クリッピングの確認後，値が定義域を超えておりクリッピングが必要な状態であれば，量子化インデックスを変更し（ステップＳ１３），再度，ステップＳ１０へ戻って逆量子化と逆直交変換を行い，その後，同様に予測信号を加算してクリッピングの有無を確認する（ステップＳ１１，Ｓ１２）。この処理を繰り返すことで，クリッピングが発生しない復号信号を生成することができる。
【００４０】
この図５の例では，繰り返し処理が必要になるが，図６，図７に示す方法をとることにより，繰り返し処理を不要とすることもできる。図６では，逆量子化と逆直交変換を行い（ステップＳ２０），その結果に予測信号を加算して復号信号を生成する処理を行い（ステップＳ２１），クリッピングの有無を確認する（ステップＳ２２）。クリッピングが発生すれば，その時点で，予測残差信号を強制的に０にする（ステップＳ２３）。すなわち，ＣＢＰ（Coded Block Pattern ）を０にして，有意係数なしとして符号化する。これにより，繰り返し処理は不要になる。ただし，本来送るべき予測残差信号を０とすることで，符号化雑音が増加する。
【００４１】
同様にベクトル量子化を利用している場合には，すべて０のベクトルをコードブックに用意し，ＣＢＰ＝０の代わりに利用する。すなわち，図７に示すように，逆量子化を行い（ステップＳ３０），その結果に予測信号を加算して復号信号を生成する処理を行い（ステップＳ３１），クリッピングの有無を確認する（ステップＳ３２）。クリッピングが発生すれば，０ベクトルを出力する（ステップＳ３３）。
【００４２】
このように，クリッピングの発生を監視し，量子化インデックスを変更することで，クリッピングの発生しない復号信号を生成することができる。
【００４３】
図８は，図１または図３の符号化装置１００，２００で符号化したデータを復号する復号装置のブロック図である。
【００４４】
本発明の実施例による復号装置３００は，符号化ストリームを復号する復号部３０１，復号した量子化インデックスを逆量子化する逆量子化部３０２，逆量子化した結果の直交変換係数を逆直交変換して残差信号を生成する逆直交変換部３０３，残差信号と予測信号とを加算して復号結果の映像信号を出力する加算器３０４，加算器３０４の出力する復号信号を参照画像として記憶するフレームメモリ３０５，復号部３０１で復号した動きベクトルとフレームメモリ３０５内の参照画像とから予測信号を生成する動き補償部３０６とを備える。
【００４５】
これらの各部の機能は，図１１に示した従来の復号装置５００と同様である。ただし，従来技術では必要であった復号信号に対するクリッピング部５０７が，本実施例の復号装置３００では不要となっており，設けられていない。したがって，復号装置３００は，従来の復号装置５００に比べて，低消費電力化，小型化が可能になる。
【００４６】
以上説明した図１〜図８の例では，フレーム間予測符号化と直交変換を利用した映像符号化方式の例を示しているが，本発明では，直交変換の利用は必須ではない。また，Ｈ．２６４で採用されているフレーム内予測符号化でも，本発明を用いてデコーダにおけるクリッピングを不要とすることができる。例えば，フレーム内予測差分を直交変換なしで量子化・逆量子化を行う方法で利用可能である。量子化インデックスは，符号化対象ブロックに１つまたは複数存在する。例えば，ベクトル量子化を行う場合，ブロックに１つの量子化インデックスとなる。Ｈ．２６４などのスカラ量子化の場合，有意係数の数だけ量子化インデックスが存在する。
【００４７】
以上の映像信号符号化および復号の処理は，コンピュータとソフトウェアプログラムとによっても実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも，ネットワークを通して提供することも可能である。
【００４８】
図９に，本実施例の符号化装置をソフトウェアプログラムを用いて実現する場合のハードウェア構成例を示す。本システムは，プログラムを実行するＣＰＵ１０と，ＣＰＵ１０がアクセスするプログラムやデータが格納されるＲＡＭ等のメモリ１１と，カメラ等からの符号化対象の映像信号を入力する映像信号入力部１２（ディスク装置等による映像信号を記憶する記憶部でもよい）と，復号装置でのクリッピングを不要とする符号化処理をＣＰＵ１０に実行させるソフトウェアプログラムである映像信号符号化プログラム１４が格納されたプログラム記憶装置１３と，ＣＰＵ１０がメモリ１１にロードされた映像信号符号化プログラム１４を実行することにより生成された符号化ストリームを，例えばネットワークを介して出力する符号化ストリーム出力部１５（ディスク装置等による符号化ストリームを記憶する記憶部でもよい）とが，バスで接続された構成になっている。
【００４９】
図８に示す本実施例の復号装置３００も，コンピュータとソフトウェアプログラムとによって実現する場合には，図９と同様なシステムによって実現することができる。
【符号の説明】
【００５０】
１００  符号化装置
１０１  減算器
１０２  直交変換部
１０３  量子化部
１０４  量子化インデックス変更部
１０５  情報源符号化部
１０６  逆量子化部
１０７  逆直交変換部
１０８  クリッピング処理部
１０９  フレームメモリ
１１０  動き検出部
１１１  動き補償部
【図１】
0005390319.tif 000002
【図２】
0005390319.tif 000003
【図３】
0005390319.tif 000004
【図４】
0005390319.tif 000005
【図５】
0005390319.tif 000006
【図６】
0005390319.tif 000007
【図７】
0005390319.tif 000008
【図８】
0005390319.tif 000009
【図９】
0005390319.tif 000010
【図１０】
0005390319.tif 000011
【図１１】
0005390319.tif 000012
【図１２】
0005390319.tif 000013