(57)【特許請求の範囲】
【請求項１】
符号化対象データを構成する複数のエリアを順次に符号化する符号化部と、
前記符号化部による符号化がなされた１または複数のエリアの符号化データのサイズの累積値である累積符号量を算出する累積符号量算出部と、
前記累積符号量と閾値との関係を判定する判定部と、を備え、
前記符号化部は、
可逆・可変長符号化により符号化を行っている際に、前記判定部により前記累積符号量が前記閾値を上回ったと判定された場合に、前記符号化部によって符号化がなされた１または複数のエリアの次のエリアに対して不可逆・等長符号化による符号化を行い、
前記符号化部は、
不可逆・等長符号化により符号化を行っている際に、前記判定部により前記累積符号量が前記閾値を下回ったと判定された場合に、前記符号化部によって符号化がなされた１または複数のエリアの次のエリアに対して可逆・可変長符号化による符号化を行う、
符号化装置。
【請求項２】
前記符号化部は、
不可逆・等長符号化により符号化を行っている際に、前記判定部により前記累積符号量が前記閾値を下回っていないと判定された場合に、前記符号化部によって符号化がなされた１または複数のエリアの次のエリアに対して不可逆・等長符号化による符号化を継続する、
請求項１に記載の符号化装置。
【請求項３】
符号化対象データを構成する複数のエリアを順次に符号化するステップと、
符号化がなされた１または複数のエリアの符号化データのサイズの累積値である累積符号量を算出するステップと、
前記累積符号量と閾値との関係を判定するステップと、を含み、
可逆・可変長符号化により符号化が行われている際に、前記累積符号量が前記閾値を上回ったと判定された場合に、符号化がなされた１または複数のエリアの次のエリアに対して不可逆・等長符号化による符号化を行い、
不可逆・等長符号化により符号化を行っている際に、前記累積符号量が前記閾値を下回ったと判定された場合に、符号化がなされた１または複数のエリアの次のエリアに対して可逆・可変長符号化による符号化を行うステップを含む、
符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置および符号化方法に関する。
【背景技術】
【０００２】
従来、画像の符号化技術としては様々な技術が開示されている。例えば、画像の符号化技術として可逆符号化が存在するが、可逆符号化においては可変長符号化を用いることが一般的である。しかし、可変長符号化を用いた場合には、符号化後のデータ量が符号化前のデータ量よりも増加してしまう可能性がある。そこで、可変長符号化に伴うデータ量の増加に対処するため、様々な技術が開示されている。
【０００３】
例えば、特許文献１には、可逆符号化による圧縮率が目標圧縮率を満たすようにするために、可逆符号化（「ロスレス符号化」とも言う。）と不可逆符号化（「ロッシー符号化」とも言う。）との間で符号化方式を切り替える技術が開示されている。
【０００４】
また、例えば、特許文献２には、可変長符号化による符号化後のデータ量が符号化前のデータ量を超えない場合には、符号化後のデータを出力するが、可変長符号化による符号化後のデータ量が符号化前のデータ量を超えてしまう場合には、符号化前のデータを出力する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３０３６９０号公報
【特許文献２】特開２００８−１２４９６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された技術では、データを実際に符号化して符号化後のデータ量に応じて当該データに対して適用する符号化方式を判断する必要があるため、符号化後のデータを保持するバッファが必要となり回路規模が大きくなってしまう。また、特許文献１に開示された技術では、ブロック単位に処理がなされるため、符号化・復号時に多くのラインメモリが必要となってしまう。また、特許文献１に開示された技術では、複雑な演算が必要であるため、回路規模が大きくなってしまう。
【０００７】
また、特許文献２に開示された技術では、データを実際に符号化して符号化後のデータ量に応じて当該データに対して符号化後のデータを出力するか否かを判断する必要があるため、符号化後のデータを保持するバッファが必要となり回路規模が大きくなってしまう。また、特許文献２に開示された技術では、符号化前のデータを出力した場合には、データ量を減らすことはできない。
【０００８】
そこで、本発明は、回路規模の拡大を抑えながら符号化後のデータ量および画質劣化の程度を抑えることが可能な技術を提供しようとするものである。
【課題を解決するための手段】
【０００９】
本発明のある実施形態によれば、符号化対象データを構成する複数のエリアを順次に符号化する符号化部と、前記符号化部による符号化がなされた１または複数のエリアの符号化データのサイズの累積値である累積符号量を算出する累積符号量算出部と、前記累積符号量と閾値との関係を判定する判定部と、を備え、前記符号化部は、可逆・可変長符号化により符号化を行っている際に、前記判定部により前記累積符号量が前記閾値を上回ったと判定された場合に、前記符号化部によって符号化がなされた１または複数のエリアの次のエリアに対して不可逆・等長符号化による符号化を行う、ことを特徴とする、符号化装置が提供される。
【００１０】
かかる構成によれば、累積符号量が閾値を上回った場合、符号化を行ったエリアの次のエリアに対する符号化を可逆・可変長符号化から不可逆・等長符号化に変更することができる。したがって、符号化を行ったエリアの次のエリアに対する符号化を変更すれば済むために符号化後のデータを保持するバッファが不要であり、回路規模の拡大を抑えながら符号化後のデータ量および画質劣化の程度を抑えることが可能となる。
【００１１】
前記符号化部は、可逆・可変長符号化により符号化を行っている際に、前記判定部により前記累積符号量が前記閾値を上回っていないと判定された場合に、前記符号化部によって符号化がなされた１または複数のエリアの次のエリアに対して可逆・可変長符号化による符号化を継続してもよい。かかる構成によれば、累積符号量が閾値を上回っていない場合、符号化を行ったエリアの次のエリアに対する符号化を可逆・可変長符号化のままにすることができる。したがって、符号化後のデータ量が閾値を超えない間は画質劣化の程度を抑えることを優先することが可能となる。
【００１２】
前記符号化部は、不可逆・等長符号化により符号化を行っている際に、前記判定部により前記累積符号量が前記閾値を下回ったと判定された場合に、前記符号化部によって符号化がなされた１または複数のエリアの次のエリアに対して可逆・可変長符号化による符号化を行ってもよい。かかる構成によれば、累積符号量が閾値を下回った場合、符号化を行ったエリアの次のエリアに対する符号化を不可逆・等長符号化からに可逆・可変長符号化変更することができる。したがって、符号化後のデータ量が閾値を下回った場合に画質劣化の程度を抑えることを優先することが可能となる。
【００１３】
前記符号化部は、不可逆・等長符号化により符号化を行っている際に、前記判定部により前記累積符号量が前記閾値を下回っていないと判定された場合に、前記符号化部によって符号化がなされた１または複数のエリアの次のエリアに対して不可逆・等長符号化による符号化を継続してもよい。かかる構成によれば、累積符号量が閾値を下回っていない場合、符号化を行ったエリアの次のエリアに対する符号化を不可逆・等長符号化のままにすることができる。したがって、符号化後のデータ量が閾値を超えている間は符号化後のデータ量を抑えることを優先することが可能となる。
【００１４】
前記符号化部は、前記符号化対象データを構成する複数のエリアに対する符号化を開始するに際して、前記符号化対象データの先頭のエリアに対しては可逆・可変長符号化を行ってもよい。かかる構成によれば、符号化を開始してから符号化後のデータ量が閾値を超えるまでは、画質劣化の程度を抑えることを優先することが可能となる。
【００１５】
前記判定部は、各エリアに対する符号化が終了する度に前記累積符号量と前記閾値との関係を判定してもよい。かかる構成によれば、符号化対象データを構成するエリア単位で次のエリアに対する符号化の方式を判断することができるため、符号化後のデータ量および画質劣化の程度を抑えるための動作を高精度に行うことが可能となる。
【００１６】
また、本発明の別の実施形態によれば、符号化対象データを構成する複数のエリアを順次に符号化するステップと、符号化がなされた１または複数のエリアの符号化データのサイズの累積値である累積符号量を算出するステップと、前記累積符号量と閾値との関係を判定するステップと、を含み、可逆・可変長符号化により符号化が行われている際に、前記累積符号量が前記閾値を上回ったと判定された場合に、符号化がなされた１または複数のエリアの次のエリアに対して不可逆・等長符号化による符号化を行う、ことを特徴とする、符号化方法が提供される。
【００１７】
かかる方法によれば、累積符号量が閾値を上回った場合、符号化を行ったエリアの次のエリアに対する符号化を可逆・可変長符号化から不可逆・等長符号化に変更することができる。したがって、符号化を行ったエリアの次のエリアに対する符号化を変更すれば済むために符号化後のデータを保持するバッファが不要であり、回路規模の拡大を抑えながら符号化後のデータ量および画質劣化の程度を抑えることが可能となる。
【発明の効果】
【００１８】
以上説明したように、本発明によれば、回路規模の拡大を抑えながら符号化後のデータ量および画質劣化の程度を抑えることが可能である。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態に係る符号化装置の構成例を示す図である。
【図２】符号化装置の機能を説明するための図である。
【図３】符号化装置の機能を説明するための図である。
【図４】符号化装置の機能を説明するための図である。
【図５】符号化装置の機能を説明するための図である。
【図６】符号化装置の動作の流れを示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
【００２１】
図１は、本発明の実施形態に係る符号化装置１０の構成例を示す図である。図１に示すように、符号化装置１０は、差分算出部１１０、第１の選択部１２０、不可逆・等長符号化部１３０、可逆・可変長符号化部１４０、累積符号量算出部１５０、判定部１６０、第２の選択部１７０および記憶部１８０を含んでいる。符号化装置１０には画像を構成する複数の画素データが順次に入力される。
【００２２】
差分算出部１１０は、入力された画素データと当該画素の隣接画素データとの差分値を算出する。画素データは、画素が有するデータ（例えば、画素値）である。以下では、隣接画素データが入力された画素データの１つ前の画素データであるとして説明を続けるが、隣接画素データは入力された画素データに対していずれの方向に隣接する画素データであってもよい。差分算出部１１０により算出された差分値は、順次に第１の選択部１２０に出力される。
【００２３】
第１の選択部１２０は、判定部１６０から出力される判定結果に基づいて、差分算出部１１０により算出された差分値を、不可逆・等長符号化部１３０または可逆・可変長符号化部１４０に対して選択的に出力する。なお、ここでは、不可逆・等長符号化部１３０および可逆・可変長符号化部１４０を排他的に動作させるために第１の選択部１２０が設けられているが、不可逆・等長符号化部１３０および可逆・可変長符号化部１４０を並列的に動作させる場合には、第１の選択部１２０は設けられていなくてもよい。
【００２４】
不可逆・等長符号化部１３０は、量子化部１３１および等長符号化部１３２を備えており、入力される各差分値に対して不可逆かつ等長の符号化を行う。量子化部１３１は、差分値を当該差分値のビット数よりも小さいビット数のデータに量子化する。等長符号化部１３２は、量子化部１３１により量子化されたデータに対して等長符号を割り当てることによって、量子化されたデータを符号化する。等長符号化部１３２は、符号化したデータを第２の選択部１７０に出力する。
【００２５】
可逆・可変長符号化部１４０は、可変長符号化部１４１を備えており、入力される各差分値に対して可逆かつ可変長の符号化を行う。可変長符号化部１４１は、差分値に対して可変長符号（例えば、ハフマン符号など）を割り当てることによって、差分値を符号化する。可変長符号化部１４１は、符号化したデータを第２の選択部１７０に出力する。なお、可逆・可変長符号化部１４０は、符号化部の一例として機能する。
【００２６】
なお、不可逆・等長符号化部１３０および可逆・可変長符号化部１４０の各々は、符号化部の一例として機能する。また、ここでは、不可逆・等長符号化部１３０および可逆・可変長符号化部１４０の各々による符号化は、上記した差分値に対して行われることを想定しているが、符号化対象は、隣接データとの差分値以外でもよい。しかし、データ分布に偏りがあるようなデータを与えることが本発明にとって望ましい。
【００２７】
また、不可逆・等長符号化部１３０および可逆・可変長符号化部１４０の各々による符号化は、画像を構成する複数のエリア単位で行われる。以下では、画像を構成するライン（例えば、画像を構成する水平方向のライン）をエリアの例として使用して説明を行うが、エリアはどのように区切られてもよく、エリアのサイズや、エリアの位置は特に限定されない。
【００２８】
第２の選択部１７０は、判定部１６０から出力される判定結果に基づいて、不可逆・等長符号化部１３０または可逆・可変長符号化部１４０から入力された符号化データを選択的に出力する。すなわち、第２の選択部１７０は、不可逆・等長符号化部１３０または可逆・可変長符号化部１４０の選択を、第１の選択部１２０による選択に合わせて行う。第２の選択部１７０により出力された符号化データは、累積符号量算出部１５０および記憶部１８０に出力される。
【００２９】
累積符号量算出部１５０は、不可逆・等長符号化部１３０または可逆・可変長符号化部１４０による符号化がなされた１または複数のラインの符号化データのサイズの累積値である累積符号量を算出する。例えば、累積符号量算出部１５０は、第２の選択部１７０から第ｊ＋１ラインの符号化データが入力された場合には、この第ｊ＋１ラインの符号化データのサイズを第１ラインから第ｊラインまでの符号化データのサイズの累積値に加算すればよい。なお、以下では、符号化されたデータ（符号化データ）のサイズを符号量と言う場合がある。
【００３０】
判定部１６０は、累積符号量と閾値との関係を判定する。ここで、例えば、第１ラインの符号量に対する判定に使用される閾値をＴ１とすると、第ｊラインの符号量に対する判定に使用される閾値は、Ｔ１にｊを乗じた値とすることができる。この場合に用いられる閾値は上限累積符号量に相当する。しかしながら、例えば、判定部１６０は、累積符号量の代わりに１または複数のラインの符号量の平均値である平均符号量を用いてもよい。この場合に用いられる閾値は上限平均符号量に相当する。
【００３１】
判定部１６０による判定がなされるタイミングは特に限定されないが、例えば、１ラインに対する符号化が行わる度に判定がなされてもよいし、他のタイミングであってもよい。判定部１６０により出力された判定結果は、第１の選択部１２０、第２の選択部１７０および記憶部１８０に出力される。なお、以下では、閾値の例として上限累積符号量を用いて説明する。
【００３２】
記憶部１８０は、判定部１６０から入力された判定結果および第２の選択部１７０から入力された符号化データを関連付けてライン毎に記憶することができる。記憶部１８０の種類は特に限定されないが、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であってもよいし、他の記憶媒体であってもよい。記憶部１８０によって記憶された符号化データは、例えば、図示しない復号装置によって復号され得る。復号時には、判定結果に応じた復号方式にて符号化データをライン毎に復号すればよい。
【００３３】
以下では、符号化装置１０の機能の詳細について詳細に説明する。図２〜図５は、本実施形態に係る符号化装置１０の機能を説明するための図である。特に、図２には、第１ラインに対してなされる符号化の例について示されている。図２に示すように、第１ラインに対しては、可逆・可変長符号化部１４０によって可逆・可変長符号化が行われる。上限累積符号量は、符号化前のデータ量と同じに設定されてもよいが符号化前のデータ量と異なるデータ量に設定されてもよい。例えば、１２ｂｉｔの画素データ２０４８ｐｉｘｅｌ分によって１ラインが構成されている場合には、１２ｂｉｔ×２０４８ｐｉｘｅｌ＝２４，５７６ｂｉｔが上限累積符号量として設定されてもよい。
【００３４】
ここで、可逆・可変長符号化により符号化が行われた際、判定部１６０により累積符号量が上限累積符号量を上回っていないと判定された場合には、符号化部によって符号化がなされた１または複数のエリアの次のエリアに対して可逆・可変長符号化部１４０による符号化が継続される。図２に示した例では、第１ラインに対する符号化がなされた後の累積符号量が上限累積符号量を上回っていないため、第２ラインに対しては、引き続き可逆・可変長符号化部１４０による符号化がなされる。
【００３５】
この後、ｊ−１（ｊは整数）ラインまで符号化が終わった時点において、累積符号量が上限累積符号量を上回らなかったとする。その場合、第１ラインから第ｊラインまでに対しては、可逆・可変長符号化部１４０による符号化がなされる。図３には、第ｊラインに対してなされる符号化の例について示されている。
【００３６】
ここで、可逆・可変長符号化により符号化が行われた際、判定部１６０により累積符号量が上限累積符号量を上回ったと判定された場合には、符号化部によって符号化がなされた１または複数のエリアの次のエリアに対して不可逆・等長符号化部１３０による符号化が行われる。図３に示した例では、第ｊラインに対する符号化がなされた後の累積符号量が上限累積符号量を上回っているため、第ｊ＋１ラインに対しては、不可逆・等長符号化部１３０による符号化がなされる。
【００３７】
不可逆・等長符号化部１３０による符号化では、符号化前のデータが圧縮されるため（例えば、１２ｂｉｔのデータが１０ｂｉｔのデータに圧縮されるため）、いずれ累積符号量が上限累積符号量を下回ることが推測される。図４には、第ｊ＋１ラインに対してなされる符号化の例について示されている。
【００３８】
ここで、不可逆・等長符号化により符号化が行われた際、判定部１６０により累積符号量が上限累積符号量を下回っていないと判定された場合には、符号化部によって符号化がなされた１または複数のエリアの次のエリアに対して不可逆・等長符号化部１３０による符号化が継続される。図４に示した例では、第ｊ＋１ラインに対する符号化がなされた後の累積符号量が上限累積符号量を下回っていないため、第ｊ＋２ラインに対しては、不可逆・等長符号化部１３０による符号化がなされる。
【００３９】
この後、ｋ−１（ｋは整数）ラインまで符号化が終わった時点において、累積符号量が上限累積符号量を下回らなかったとする。その場合、第ｊ＋１ラインから第ｋラインまでに対しては、不可逆・等長符号化部１３０による符号化がなされる。図５には、第ｋラインに対してなされる符号化の例について示されている。
【００４０】
ここで、不可逆・等長符号化により符号化が行われた際、判定部１６０により累積符号量が上限累積符号量を下回ったと判定された場合には、符号化部によって符号化がなされた１または複数のエリアの次のエリアに対して可逆・可変長符号化部１４０による符号化が行われる。図５に示した例では、第ｋラインに対する符号化がなされた後の累積符号量が上限累積符号量を下回っているため、第ｋ＋１ラインに対しては、可逆・可変長符号化部１４０による符号化がなされる。
【００４１】
可逆・可変長符号化部１４０による符号化では、符号化前のデータが増加される可能性があるため、いずれ累積符号量が上限累積符号量を上回る可能性がある。その場合には、また、図３を用いて説明したように、符号化がなされた１または複数のエリアの次のエリアに対して不可逆・等長符号化部１３０による符号化が行われればよい。
【００４２】
以上に示したように、本実施形態に係る符号化装置１０は、累積符号量が上限累積符号量を超えることを一時的に許容する。しかし、本実施形態に係る符号化装置１０は、累積符号量が上限累積符号量を超えた時点において、不可逆・等長符号化を次のラインに適用することによって、累積符号量を上限累積符号量以下に収めることが可能である。
【００４３】
図６は、符号化装置１０の動作の流れを示すフローチャートである。符号化装置１０の動作は、累積符号量が初期化され、上限累積符号量に値が設定された状態で開始される。まず、第１の選択部１２０は、先頭のラインを取得し、当該ラインを可逆・可変長符号化部１４０に出力する。可逆・可変長符号化部１４０は、入力されたラインに対して可逆・可変長符号化を行い（ステップＳ１）、累積符号量算出部１５０は、可逆・可変長符号化がなされたデータの符号量を累積符号量に加算する（ステップＳ２）。
【００４４】
可逆・可変長符号化部１４０は、当該ラインに対する可逆・可変長符号化が終了していない場合には（ステップＳ３で「Ｎｏ」）、ステップＳ１に戻って当該ラインに対する可逆・可変長符号化を継続する（ステップＳ１）。一方、可逆・可変長符号化部１４０は、当該ラインに対する可逆・可変長符号化が終了した場合には（ステップＳ３で「Ｙｅｓ」）、動作をステップＳ４に移行させる。
【００４５】
続いて、判定部１６０は、累積符号量と上限累積符号量との関係を判定する（ステップＳ４）。ここで、累積符号量が上限累積符号量を上回っていないと判定部１６０により判定された場合には（ステップＳ４で「Ｎｏ」）、次のラインに対しても可逆・可変長符号化が継続されるが（ステップＳ１）、累積符号量が上限累積符号量を上回ったと判定部１６０により判定された場合には（ステップＳ４で「Ｙｅｓ」）、次のラインに対しては不可逆・等長符号化部１３０による符号化が行われる（ステップＳ５）。累積符号量算出部１５０は、不可逆・等長符号化がなされたデータの符号量を累積符号量に加算する（ステップＳ６）。
【００４６】
不可逆・等長符号化部１３０は、当該ラインに対する不可逆・等長符号化が終了していない場合には（ステップＳ７で「Ｎｏ」）、ステップＳ５に戻って当該ラインに対する不可逆・等長符号化を継続する（ステップＳ５）。一方、不可逆・等長符号化部１３０は、当該ラインに対する不可逆・等長符号化が終了した場合には（ステップＳ７で「Ｙｅｓ」）、動作をステップＳ８に移行させる。
【００４７】
続いて、判定部１６０は、累積符号量と上限累積符号量との関係を判定する（ステップＳ８）。ここで、累積符号量が上限累積符号量を下回っていないと判定部１６０により判定された場合には（ステップＳ８で「Ｎｏ」）、次のラインに対しても不可逆・等長符号化が継続されるが（ステップＳ５）、累積符号量が上限累積符号量を下回ったと判定部１６０により判定された場合には（ステップＳ８で「Ｙｅｓ」）、次のラインに対しては可逆・可変長符号化部１４０による符号化が行われる（ステップＳ１）。
【００４８】
以上に説明したように、本実施形態に係る符号化装置１０は、符号化対象データを構成する複数のエリアを順次に符号化する符号化部と、符号化部による符号化がなされた１または複数のエリアの符号化データのサイズの累積値である累積符号量を算出する累積符号量算出部と、累積符号量と閾値との関係を判定する判定部と、を備える。
【００４９】
また、符号化部は、可逆・可変長符号化により符号化を行っている際に、判定部により累積符号量が閾値を上回ったと判定された場合に、符号化部によって符号化がなされた１または複数のエリアの次のエリアに対して不可逆・等長符号化による符号化を行う。かかる構成によれば、符号化後のデータを保持するバッファが不要であるため、回路規模の拡大を抑えながら符号化後のデータ量および画質劣化の程度を抑えることが可能である。
【００５０】
本実施形態に係る技術は、既に開示されている先行技術文献に記載された技術とは異なっている。特開２００６−３０３６９０号公報（特許文献１）に開示された技術は、目標圧縮率を満たすように可逆符号化と不可逆符号化との間で符号化方式を切り替えるという点で本実施形態に係る技術と関連性がある。しかし、特許文献１に開示された技術によれば、データを実際に符号化して符号化後のデータ量に応じて当該データに対して適用する符号化方式を判断する必要があるため、符号化後のデータを保持するバッファが必要となり回路規模が大きくなってしまう。
【００５１】
また、特許文献１に開示された技術によれば、ブロック単位にＤＣＴ演算を行うため多くのラインメモリ（７〜１５本）が符号化・復号時に必要となってしまう。また、特許文献１に開示された技術によれば、ＤＣＴ演算の複雑さから回路規模も大きくなってしまう。例えば、３Ｍｐｉｘｅｌの画像を想定すると、２０４８画素×８ｂｉｔ（もしくはそれ以上のビット）のラインを７〜１５ライン分、パイプライン処理の途中に入れるというのは、Ｈａｒｄｗａｒｅ規模・コスト・消費電力の点で障壁が高い。
【００５２】
特開２００８−１２４９６９号公報（特許文献２）に開示された技術では、データを実際に符号化して符号化後のデータ量に応じて当該データに対して符号化後のデータを出力するか否かを判断する必要があるため、符号化後のデータを保持するバッファが必要となり回路規模が大きくなってしまう。開示内容によれば、６４×６４画素のブロック分のバッファが２つ必要となり、この２つのバッファは４０９６画素分のラインメモリ２本分に相当する。また、特許文献２に開示された技術では、符号化前のデータを出力した場合には、データ量を減らすことはできない。
【００５３】
本実施形態に係る技術によれば、符号化後のデータ量があらかじめ設定された閾値（例えば、符号化前のデータ量以下に設定された値）を超えないように可逆符号化と不可逆符号化との間で符号化方式を切り替える手法を、小さい回路規模で実現可能である。したがって、本実施形態に係る技術によれば、回路規模の拡大を抑えながら符号化後のデータ量および画質劣化の程度を抑えることが可能である。
【００５４】
本実施形態に係る技術が奏する効果は、例えば、以下に示す通りである。まず、第１の効果としては、主観画質に対する影響を最小限に抑えつつ、上限累積符号量以下に累積符号量を抑えることが可能であるという点が挙げられる。
【００５５】
本実施形態に係る技術では、累積符号量が上限累積符号量を超えない限りは、採用される符号化方式は可逆・可変長符号化方式のままである。ここで、累積符号量が上限累積符号量を超える場合とは、例えば、隣接画素間の差分値の頻度分布を取ったときに差分値が０近傍に集中しない画像（広がりを持った画像）であって、可変長符号のうち符号長が長い符号が多く選択される画像が符号化される場合である。
【００５６】
こういった画像は、絵柄が大きく変化する領域が広い画像や、ノイズを多く含む画像などである。したがって、このような画像に対して緩やかな不可逆・等長符号化を行っても、主観画質に対する影響はほとんどないと考えられるため、符号量抑制のために不可逆・等長符号化に切り替えるのは合理的である。
【００５７】
そこで、本実施形態に係る技術では、劣化が目立ちやすい画像に対して符号化を行う場合には、可逆・可変長符号化をできるだけキープする。一方、本実施形態に係る技術では、劣化が目立ちにくい画像に対して符号化を行う場合には、可逆・可変長符号化方式から不可逆・等長符号化方式に符号化方式を切り替えて累積符号量をセーブし、目標となる上限累積符号量以下に累積符号量を抑える。これにより、主観画質の維持と符号量制御を同時に実現することができる。
【００５８】
また、第２の効果としては、上限累積符号量（または上限平均符号量）を自由に設定できるという点が挙げられる。例えば、「符号化後の符号量が符号化前のデータ量を超えない」という条件を設定したい場合には、元画像の１画素あたりのビット数×画素数を上限累積符号量とすればよい。また、例えば、元画像の１画素あたりのビット数が１２ｂｉｔの場合には、「符号化後の符号量を平均１１ｂｉｔ以下に圧縮する」という条件を設定することもできる。この場合には、上限平均符号量を１１ｂｉｔに設定すればよい。
【００５９】
上限平均符号量が１１ｂｉｔに設定された場合には、上限平均符号量を１２ｂｉｔとした場合と比べて、可逆・可変長符号化後の符号量が上限平均符号量をオーバーする確率が高まるので、符号化方式として不可逆・等長符号化方式が選択される確率も高くなる。したがって、ユーザは、画質と符号量のバランスを考慮したうえで上限平均符号量を設定すればよい。当然のことながら、上限平均符号量としては、整数のみならず「１０．５ｂｉｔ」といった小数を含む値を設定することもできる。例えば、１ラインが２０４８ｐｉｘｅｌの場合、１ラインの上限累積符号量を１０．５ｂｉｔ×２０４８＝２１５０４ｂｉｔと設定すると、１画素あたりの上限平均符号量を１０．５ｂｉｔとすることができる。
【００６０】
また、第３の効果としては、ラインメモリやバッファが不要であり、小さい回路規模で実現することが可能であるという点が挙げられる。例えば、特許文献１に開示された技術では、ブロック単位での処理が前提のため、数本〜十数本のラインメモリが符号化側・復号側双方に必要となるが、本実施形態に係る技術では、例えば１ライン毎の処理がなされるため、ラインメモリは一切不要である。
【００６１】
また、例えば、特許文献１に開示された技術および特許文献２に開示された技術では、符号化対象のデータを一旦符号化して符号化後の符号量が目標値を超えたか否かを判定し、判定結果に応じて符号化済みデータの出力を切り替えている。このため、符号化後のデータを蓄積するためのローカルバッファが必要となる。
【００６２】
一方、本実施形態に係る技術は、当該ラインを符号化した結果を次のラインの符号化方式に反映させる方式を採用するため、符号化済みデータを蓄積するためのローカルバッファも不要となる。例えば、本実施形態に係る技術では、符号化後の符号量を計測するための符号量カウンタを用意すればよく、例えば、３Ｍｐｉｘｅｌの画像を符号化する場合、符号量カウンタは、１ラインあたり１５ｂｉｔあれば足りるし、全画面でも２６ｂｉｔあれば足りるため、非常に小さいゲート規模で済む。
【００６３】
本実施形態に係る技術は、いかなる画像に対しても可逆・可変長符号化を行うという手法と比べ、若干の画質劣化を許容するものであるが、その代わりに、符号化後の符号量を制御することができるというメリットを提供することができる。また、本実施形態に係る技術は、小さい回路規模で実装可能であるというメリットを提供することができる。
【００６４】
本願の発明者による予備実験によれば、１ラインに対する可逆・可変長符号化でも１２ｂｉｔ信号を平均して８ｂｉｔ程度の信号に圧縮できており、テクスチャを含むような画像に対する可逆・可変長符号化でも１２ｂｉｔ信号を平均して１０ｂｉｔ程度の信号に圧縮できている。したがって、自然画像を符号化する場合に、例えば、上限平均符号量が１２ｂｉｔに設定された場合には、かなり余裕を持った設定がなされたことになると予想される。したがって、本実施形態に係る技術を実際に適用した場合には、可逆・可変長符号化と不可逆・等長符号化とが頻繁に切り替えられるケースよりも、基本的には可逆・可変長符号化が行われ、符号量が多く発生してしまったら不可逆・等長符号化が行われるというケースが多くなることが予想される。
【００６５】
つまり、本実施形態に係る技術は、可逆・可変長符号化を行うにあたって、例えば、符号後の符号量が元のデータ量を超えないようにすることができる。また、本実施形態に係る技術は、例えば、符号化後の符号量の上限値を決めることを可能にする。これにより、設計時のメモリサイズの見積りが容易になるという利益を享受することができ、このように上限値を超えないような符号量の制御は、ある意味ではセーフティーネットのような役割を果たす。
【００６６】
本実施形態に係る技術をより効果的に実施するためには、符号化後の符号量の上限値よりも小さいビット数のデータ量に圧縮する不可逆・等長符号化が必要となる。例えば、符号化前の各画素のデータ量が１２ｂｉｔであり符号化後の符号量の上限平均符号量を１０ｂｉｔと設定する場合を想定する。この場合に、不可逆・等長符号化による圧縮の程度がデータ量を１２ｂｉｔから１０ｂｉｔとする程度であれば、可逆・可変長符号化によって１０ｂｉｔ以上に膨れてしまった平均符号量を１０ｂｉｔ以下に回復させることができない。すなわち、符号化後の累積符号量を上限累積符号量以下に収めることも不可能である。
【００６７】
このような設定がされた場合には、例えば、不可逆・等長符号化による圧縮の程度がデータ量を１２ｂｉｔから９ｂｉｔ以下とする程度であればよい。ただし、欲張って上限値を低く設定し、圧縮率の高い不可逆・等長符号化を用いると、可逆・可変長符号化部分との画質差が視認できるようになったり、不可逆・等長符号化が選ばれる確率が高くなったりして、主観画質に対する影響が大きくなってしまう。本実施形態に係る技術の目的の１つは、可逆・可変長符号化を基本としているところからも分かるように「主観画質を維持する」ところにあり、このようなメリットが失われないように本実施形態に係る技術を使用することが必要である。
【００６８】
上記した例では、１画素あたり１２ｂｉｔの信号を入力としたが、当然この例によらず、１画素あたりの信号のサイズは、８ｂｉｔでも１０ｂｉｔでも１４ｂｉｔでも構わない。また、上記した例では、符号量と上限値との関係を１ライン毎に判定することとしたが、判定の周期は、０．５ライン毎でも、２ライン毎でも構わない。また、上記では、最も回路規模が小さいパターンとしてラインメモリなしのシステムを例に挙げたが、例えば、３ライン分の信号を使った予測値との差分を取って符号化する符号化方式を本実施形態に係る技術に適用することも可能である。
【００６９】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００７０】
１０    符号化装置
１１０  差分算出部
１２０  第１の選択部
１３０  等長符号化部
１３１  量子化部
１３２  等長符号化部
１４０  可変長符号化部
１４１  可変長符号化部
１５０  累積符号量算出部
１６０  判定部
１７０  第２の選択部
１８０  記憶部
【図１】
0005956180.tif 000002
【図２】
0005956180.tif 000003
【図３】
0005956180.tif 000004
【図４】
0005956180.tif 000005
【図５】
0005956180.tif 000006
【図６】
0005956180.tif 000007