(57)【要約】【課題】算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能な算術符号化装置を提供する。【解決手段】２重化された発生確率テーブルの一方であるテーブル０と、２重化された発生確率テーブルの他方であるテーブル１とを記憶する記憶部１７と、テーブル０とテーブル１とをスライス単位に初期化する初期化部１４と、テーブル０を使用して算術符号化処理を行なう算術符号化部１２と、算術符号化処理の結果に基づいてテーブル０を更新するテーブル管理部１５と、スライスに含まれる１マクロブロックについて算術符号化処理が完了する度に、そのマクロブロックについての算術符号化処理が有効であるか否かを判定する判定部１３と、有効であると判定された場合は、テーブル１の値がテーブル０の値となるように制御し、有効でないと判定された場合は、テーブル０の値がテーブル１の値となるように制御するフラグ管理部１６とを備える。【選択図】図２
2008098751.tif 000002
【特許請求の範囲】
【請求項１】
発生確率テーブルを使用して算術符号化処理を行なう算術符号化装置であって、
２重化された前記発生確率テーブルの一方である第１テーブルと、２重化された前記発生確率テーブルの他方である第２テーブルとを記憶するテーブル記憶手段と、
前記第１テーブルと前記第２テーブルとをスライス単位に初期化する初期化手段と、
前記第１テーブルを使用して前記算術符号化処理を行なう算術符号化手段と、
前記算術符号化処理の結果に基づいて前記第１テーブルを更新する更新手段と、
前記スライスに含まれる１マクロブロックについて前記算術符号化処理が完了する度に、そのマクロブロックについての算術符号化処理が有効であるか否かを判定する判定手段と、
前記算術符号化処理が有効であると判定された場合は、前記第２テーブルの値が前記第１テーブルの値となるように制御し、前記算術符号化処理が有効でないと判定された場合は、前記第１テーブルの値が前記第２テーブルの値となるように制御する制御手段と
を備えることを特徴とする算術符号化装置。
【請求項２】
前記判定手段は、前記算術符号化処理が有効でないと判定した場合、そのマクロブロック部分のストリームデータをＰＣＭ（Pulse Code Modulation）データに差し替える
ことを特徴とする請求項１に記載の算術符号化装置。
【請求項３】
前記算術符号化手段は、前記算術符号化処理が有効でないと判定された場合、発生符号量を抑える制約を加えて再度そのマクロブロックについて算術符号化処理を行なう
ことを特徴とする請求項１に記載の算術符号化装置。
【請求項４】
前記算術符号化装置は、さらに、
前記第１テーブル及び前記第２テーブルのエントリー毎に、前記第１テーブル又は前記第２テーブルを示す第１フラグと第２フラグとを対応付けて記憶するフラグ記憶手段を備え、
前記算術符号化手段は、前記第２フラグによって示されるテーブルを使用し、
前記更新手段は、前記第１フラグによって示されないテーブルを更新し、
前記制御手段は、前記第１フラグによって示されないテーブルが更新された場合は、前記第１フラグによって示されないテーブルを示すように前記第２フラグの値を変更し、前記算術符号化処理が有効であると判定された場合は、前記第１フラグの値を前記第２フラグに複製し、前記算術符号化処理が有効でないと判定された場合は、前記第２フラグの値を前記第１フラグに複製する
ことを特徴とする請求項１に記載の算術符号化装置。
【請求項５】
前記判定手段は、前記算術符号化処理によって発生した符号量が所定量を越えていない場合は、前記算術符号化処理が有効であると判定し、前記算術符号化処理によって発生した符号量が所定量を超えている場合は、前記算術符号化処理が有効でないと判定する
ことを特徴とする請求項１に記載の算術符号化装置。
【請求項６】
発生確率テーブルを使用して算術復号化処理を行なう算術復号化装置であって、
２重化された前記発生確率テーブルの一方である第１テーブルと、２重化された前記発生確率テーブルの他方である第２テーブルとを記憶するテーブル記憶手段と、
前記第１テーブルと前記第２テーブルとをスライス単位に初期化する初期化手段と、
前記第１テーブルを使用して前記算術復号化処理を行なう算術復号化手段と、
前記算術復号化処理の結果に基づいて前記第１テーブルを更新する更新手段と、
前記スライスに含まれる１マクロブロックについて前記算術復号化処理が完了する度に、そのマクロブロックについての算術復号化処理が有効であるか否かを判定する判定手段と、
前記算術復号化処理が有効であると判定された場合は、前記第２テーブルの値が前記第１テーブルの値となるように制御し、前記算術復号化処理が有効でないと判定された場合は、前記第１テーブルの値が前記第２テーブルの値となるように制御する制御手段と
を備えることを特徴とする算術復号化装置。
【請求項７】
前記判定手段は、前記算術復号化処理が有効でないと判定した場合、そのマクロブロック部分のストリームデータをＰＣＭ（Pulse Code Modulation）データに差し替える
ことを特徴とする請求項６に記載の算術復号化装置。
【請求項８】
前記算術復号化手段は、前記算術復号化処理が有効でないと判定された場合、発生符号量を抑える制約を加えて再度そのマクロブロックについて算術復号化処理を行なう
ことを特徴とする請求項６に記載の算術復号化装置。
【請求項９】
前記算術復号化装置は、さらに、
前記第１テーブル及び前記第２テーブルのエントリー毎に、前記第１テーブル又は前記第２テーブルを示す第１フラグと第２フラグとを対応付けて記憶するフラグ記憶手段を備え、
前記算術復号化手段は、前記第２フラグによって示されるテーブルを使用し、
前記更新手段は、前記第１フラグによって示されないテーブルを更新し、
前記制御手段は、前記第１フラグによって示されないテーブルが更新された場合は、前記第１フラグによって示されないテーブルを示すように前記第２フラグの値を変更し、前記算術復号化処理が有効であると判定された場合は、前記第１フラグの値を前記第２フラグに複製し、前記算術復号化処理が有効でないと判定された場合は、前記第２フラグの値を前記第１フラグに複製する
ことを特徴とする請求項６に記載の算術復号化装置。
【請求項１０】
前記判定手段は、前記算術復号化処理によって発生した符号量が所定量を越えていない場合は、前記算術復号化処理が有効であると判定し、前記算術復号化処理によって発生した符号量が所定量を超えている場合は、前記算術復号化処理が有効でないと判定する
ことを特徴とする請求項６に記載の算術復号化装置。
【請求項１１】
発生確率テーブルを使用して算術符号化処理を行なう算術符号化方法であって、
２重化された前記発生確率テーブルの一方である第１テーブルと、２重化された前記発生確率テーブルの他方である第２テーブルとをスライス単位に初期化する初期化ステップと、
前記第１テーブルを使用して前記算術符号化処理を行なう算術符号化ステップと、
前記算術符号化処理の結果に基づいて前記第１テーブルを更新する更新ステップと、
前記スライスに含まれる１マクロブロックについて前記算術符号化処理が完了する度に、そのマクロブロックについての算術符号化処理が有効であるか否かを判定する判定ステップと、
前記算術符号化処理が有効であると判定された場合は、前記第２テーブルの値が前記第１テーブルの値となるように制御し、前記算術符号化処理が有効でないと判定された場合は、前記第１テーブルの値が前記第２テーブルの値となるように制御する制御ステップと
を含むことを特徴とする算術符号化方法。
【請求項１２】
発生確率テーブルを使用して算術復号化処理を行なう算術復号化方法であって、
２重化された前記発生確率テーブルの一方である第１テーブルと、２重化された前記発生確率テーブルの他方である第２テーブルとをスライス単位に初期化する初期化ステップと、
前記第１テーブルを使用して前記算術復号化処理を行なう算術復号化ステップと、
前記算術復号化処理の結果に基づいて前記第１テーブルを更新する更新ステップと、
前記スライスに含まれる１マクロブロックについて前記算術復号化処理が完了する度に、そのマクロブロックについての算術復号化処理が有効であるか否かを判定する判定ステップと、
前記算術復号化処理が有効であると判定された場合は、前記第２テーブルの値が前記第１テーブルの値となるように制御し、前記算術復号化処理が有効でないと判定された場合は、前記第１テーブルの値が前記第２テーブルの値となるように制御する制御ステップと
を含むことを特徴とする算術復号化方法。
【請求項１３】
発生確率テーブルを使用して算術符号化処理を行なうためのプログラムであって、
２重化された前記発生確率テーブルの一方である第１テーブルと、２重化された前記発生確率テーブルの他方である第２テーブルとをスライス単位に初期化する初期化ステップと、
前記第１テーブルを使用して前記算術符号化処理を行なう算術符号化ステップと、
前記算術符号化処理の結果に基づいて前記第１テーブルを更新する更新ステップと、
前記スライスに含まれる１マクロブロックについて前記算術符号化処理が完了する度に、そのマクロブロックについての算術符号化処理が有効であるか否かを判定する判定ステップと、
前記算術符号化処理が有効であると判定された場合は、前記第２テーブルの値が前記第１テーブルの値となるように制御し、前記算術符号化処理が有効でないと判定された場合は、前記第１テーブルの値が前記第２テーブルの値となるように制御する制御ステップと
をコンピュータに実行させるためのプログラム。
【請求項１４】
発生確率テーブルを使用して算術復号化処理を行なうためのプログラムであって、
２重化された前記発生確率テーブルの一方である第１テーブルと、２重化された前記発生確率テーブルの他方である第２テーブルとをスライス単位に初期化する初期化ステップと、
前記第１テーブルを使用して前記算術復号化処理を行なう算術復号化ステップと、
前記算術復号化処理の結果に基づいて前記第１テーブルを更新する更新ステップと、
前記スライスに含まれる１マクロブロックについて前記算術復号化処理が完了する度に、そのマクロブロックについての算術復号化処理が有効であるか否かを判定する判定ステップと、
前記算術復号化処理が有効であると判定された場合は、前記第２テーブルの値が前記第１テーブルの値となるように制御し、前記算術復号化処理が有効でないと判定された場合は、前記第１テーブルの値が前記第２テーブルの値となるように制御する制御ステップと
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、算術符号化装置及び算術復号化装置に関し、特に、Ｈ．２６４／ＡＶＣで規定されているＣＡＢＡＣを用いた算術符号化装置及び算術復号化装置に関する。
【背景技術】
【０００２】
動画像の符号化技術において、符号化効率の向上が図られている。これにより、携帯電話機で滑らかな動きのテレビ電話を実現したり、高画質な動画像を撮影したりすることも可能になりつつある。このような符号化技術の進展において、最新の動画像符号化技術の国際基準であるＨ．２６４／ＡＶＣでは、シンタックス要素のエントロピー符号化方式として、ＣＡＶＬＣとＣＡＢＡＣという２つの方式を規定している。シンタックス要素とは、ＤＣＴ係数や動きベクトルなど、シンタックス（データ列の表現規則）に従って伝送することが定められている情報のことである。
【０００３】
ＣＡＶＬＣは、Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ（コンテキスト適応型可変長符号化方式）の略である。ＣＡＶＬＣでは、ＤＣＴ係数を符号化する際、連続する０の長さであるランとレベルとを可変長符号化テーブルを用いてスキャンの方向と反対の方向から符号化を行なう。ＣＡＢＡＣは、Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍａｃ  Ｃｏｄｉｎｇ（コンテキスト適応型２値算術符号化方式）の略である。すなわち、時間とともに変化する符号化対象の発生確率を変化させる方式であり、一般に算術符号化と呼ばれる方式である（例えば、特許文献１参照）。ＣＡＢＡＣでは、通常の算術符号化のほかに、圧縮すべき符号毎にコンテキストを付け、そのコンテキストごとに発生確率の変更を行なっている。
【０００４】
図１１は、ＣＡＢＡＣを用いた従来の２値算術符号化装置の構成図である。この２値算術符号化装置は、通常の２値算術符号化部に加えて２値化部とコンテキスト算出部とを備えている。２値化部は、＋３や＋４などの多値信号を０と１の２値信号に変換する。コンテキスト算出部は、コンテキスト変数テーブルを備えている。コンテキスト変数テーブルとは、コンテキストの番号と、コンテキストの発生確率を示すテーブルの番号と、発生確率の高いシンボル（１又は０）とを対応付けたテーブルである。コンテキスト算出部は、コンテキスト変数テーブルを参照することにより、符号化すべき２値信号の発生確率を周囲の状況に応じて算出するとともに、実際に符号化した結果に基づいて発生確率テーブルを更新する。２値算術符号化部は、コンテキスト算出部から与えられた発生確率に従って２値信号の符号化を行なう。
【０００５】
Ｈ．２６４／ＡＶＣによると、前記したようにコンテキスト毎にその発生確率テーブルが存在することになるが、以下では簡単のため、複数の発生確率テーブルを１つのテーブルと考えることにする。すなわち、複数のコンテキストとその発生確率とを対応付けたテーブルのことを「発生確率テーブル」と呼ぶことにする。この発生確率テーブルは、前記したコンテキスト変数テーブルに相当することになる。
【０００６】
図１２は、ＣＡＢＡＣを用いた２値算術符号化の概念図である。この図に示されるように、ＣＡＢＡＣを用いた２値算術符号化では、あらかじめ２値信号の発生確率が与えられたうえで、入力信号に応じて実数０．０から１．０の間で区間をどんどん狭めていく。ここでは、入力信号のうちの“０”の発生確率が０．８、“１”の発生確立が０．２となっているので、入力信号のうち“０”が符号化されると前の区間の下０．８の部分が、“１”が符号化されると前の区間の上０．２の部分が新しい区間として更新される。
【０００７】
具体的には、最初のＳＴＥＰ１では“０”が符号化されたため、初期区間の０．０−１．０の下０．８にあたる０．０−０．８が新しい区間として更新される。その後、“１”“０”が順次符号化され、最終的な区間は０．６４−０．７６８となる。算術符号の符号語は、最終区間を特定する実数値の２進表現になる。この例の場合は０．６４−０．７６８が最終区間になるので、その間に入る実数としては０．７５をとることができる。０．７５の２進表現は０．１１になるので、常に０となる最初の桁を除いた、小数点以下の“１１”が符号語として出力される。
【０００８】
図１３は、スライスが符号化の基本単位となっている様子を示す図である。例えば、スライス＃３についての処理時間Ｔ１は、発生確率テーブルの初期化処理に要する時間Ｔ２と、スライス＃３についての符号化処理に要する時間Ｔ３との合計となる。このように、ＣＡＢＡＣを用いた２値算術符号化では、スライス毎に符号化処理が行われ、実際に符号化した結果に基づいて発生確率テーブルが更新される。すなわち、１スライスについて符号化する前に発生確率テーブル全体が初期化されることになる。
【０００９】
図１４は、１スライスに含まれるマクロブロック毎の発生符号量を示す図である。ここでは、図１４（Ａ）に示されるように、１スライスには８つのマクロブロック＃１〜＃８が含まれていると仮定する。このようなスライスについて算術符号化処理を行なった場合は、図１４（Ｂ）に示されるように、８つのマクロブロック＃１〜＃８毎に、その算術符号化処理によって発生した符号量が検出される。
【００１０】
ここで、１マクロブロックについての発生符号量は、Ｈ．２６４／ＡＶＣにおいて規定されている制限値を越えてはならない。例えば、図１４（Ｂ）に示されるように、マクロブロック＃５についての発生符号量が制限値を超えている場合は、マクロブロック＃５部分のストリームデータをＰＣＭ（Pulse Code Modulation）データに差し替えるか、又は、発生符号量を抑える制約を加えて再度マクロブロック＃５について算術符号化処理（再エンコード）を行なう必要がある。
【特許文献１】特開２００４−１３５２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来技術によると、マクロブロック＃５について算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことができない。すなわち、発生確率テーブルの値は、実際に符号化した結果に基づいて更新されているので、マクロブロック＃５部分のストリームデータをＰＣＭデータに差し替える場合は、マクロブロック＃５について算術符号化処理を行なう前の状態に発生確率テーブルの値を戻す必要がある。しかしながら、従来技術では、このような状態に発生確率テーブルの値を戻すことができないので、マクロブロック＃５部分のストリームデータをＰＣＭデータに差し替えることはできない。マクロブロック＃５について再エンコードを行なう場合にしても、マクロブロック＃５について算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことはできない。そこで、この場合は、発生確率テーブルを初期化したうえで、スライスの先頭に戻って算術符号化処理をやり直す必要がある。例えば、図１４（Ｂ）に示されるように、マクロブロック＃５についての発生符号量が制限値を超えている場合は、発生確率テーブルを初期化したうえで、マクロブロック＃１から順に算術符号化処理をやり直さなければならない。このような問題は、発生符号量が制限値を超えている場合だけでなく、１マクロブロックについての算術符号化処理が有効でない場合であれば同様に発生する。
【００１２】
本発明は、前記課題を解決するものであって、１マクロブロックについての算術符号化処理が有効でない場合は、そのマクロブロックについて算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能な算術符号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
前記目的を達成するために、本発明に係る算術符号化装置は、発生確率テーブルを使用して算術符号化処理を行なう算術符号化装置であって、２重化された前記発生確率テーブルの一方である第１テーブルと、２重化された前記発生確率テーブルの他方である第２テーブルとを記憶するテーブル記憶手段と、前記第１テーブルと前記第２テーブルとをスライス単位に初期化する初期化手段と、前記第１テーブルを使用して前記算術符号化処理を行なう算術符号化手段と、前記算術符号化処理の結果に基づいて前記第１テーブルを更新する更新手段と、前記スライスに含まれる１マクロブロックについて前記算術符号化処理が完了する度に、そのマクロブロックについての算術符号化処理が有効であるか否かを判定する判定手段と、前記算術符号化処理が有効であると判定された場合は、前記第２テーブルの値が前記第１テーブルの値となるように制御し、前記算術符号化処理が有効でないと判定された場合は、前記第１テーブルの値が前記第２テーブルの値となるように制御する制御手段とを備える。これにより、２重化された発生確率テーブルの一方である第１テーブルは最新のテーブルとして、また、２重化された発生確率テーブルの他方である第２テーブルはバックアップ用のテーブルとして使用されることになるので、１マクロブロックについての算術符号化処理が有効でない場合は、そのマクロブロックについて算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。
【００１４】
ここで、前記判定手段は、前記算術符号化処理が有効でないと判定した場合、そのマクロブロック部分のストリームデータをＰＣＭデータに差し替えてもよい。これにより、前記算術符号化処理が有効でないマクロブロック部分のストリームデータをＰＣＭデータに差し替えることが可能となる。
【００１５】
また、前記算術符号化手段は、前記算術符号化処理が有効でないと判定された場合、発生符号量を抑える制約を加えて再度そのマクロブロックについて算術符号化処理を行なってもよい。これにより、再エンコードを行なう場合は、発生確率テーブルを初期化する時間と、前記算術符号化処理が有効であったマクロブロックについて算術符号化処理をやり直す時間とを削減することが可能となる。
【００１６】
また、前記算術符号化装置は、さらに、前記第１テーブル及び前記第２テーブルのエントリー毎に、前記第１テーブル又は前記第２テーブルを示す第１フラグと第２フラグとを対応付けて記憶するフラグ記憶手段を備え、前記算術符号化手段は、前記第２フラグによって示されるテーブルを使用し、前記更新手段は、前記第１フラグによって示されないテーブルを更新し、前記制御手段は、前記第１フラグによって示されないテーブルが更新された場合は、前記第１フラグによって示されないテーブルを示すように前記第２フラグの値を変更し、前記算術符号化処理が有効であると判定された場合は、前記第１フラグの値を前記第２フラグに複製し、前記算術符号化処理が有効でないと判定された場合は、前記第２フラグの値を前記第１フラグに複製してもよい。これにより、第１フラグによって示されるテーブルはバックアップ用のテーブルとして、また、第２フラグによって示されるテーブルは最新のテーブルとして使用されることになる。従って、フラグの値を変えるだけでバックアップ用のテーブルと最新のテーブルとを簡便に切り替えることが可能となる。
【００１７】
また、前記判定手段は、前記算術符号化処理によって発生した符号量が所定量を越えていない場合は、前記算術符号化処理が有効であると判定し、前記算術符号化処理によって発生した符号量が所定量を超えている場合は、前記算術符号化処理が有効でないと判定してもよい。これにより、１マクロブロックについての算術符号化処理によって発生した符号量が所定量を超えている場合は、そのマクロブロックについて算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。
【００１８】
前記目的を達成するために、本発明に係る算術復号化装置は、発生確率テーブルを使用して算術復号化処理を行なう算術復号化装置であって、２重化された前記発生確率テーブルの一方である第１テーブルと、２重化された前記発生確率テーブルの他方である第２テーブルとを記憶するテーブル記憶手段と、前記第１テーブルと前記第２テーブルとをスライス単位に初期化する初期化手段と、前記第１テーブルを使用して前記算術復号化処理を行なう算術復号化手段と、前記算術復号化処理の結果に基づいて前記第１テーブルを更新する更新手段と、前記スライスに含まれる１マクロブロックについて前記算術復号化処理が完了する度に、そのマクロブロックについての算術復号化処理が有効であるか否かを判定する判定手段と、前記算術復号化処理が有効であると判定された場合は、前記第２テーブルの値が前記第１テーブルの値となるように制御し、前記算術復号化処理が有効でないと判定された場合は、前記第１テーブルの値が前記第２テーブルの値となるように制御する制御手段とを備える。これにより、２重化された発生確率テーブルの一方である第１テーブルは最新のテーブルとして、また、２重化された発生確率テーブルの他方である第２テーブルはバックアップ用のテーブルとして使用されることになるので、１マクロブロックについての算術復号化処理が有効でない場合は、そのマクロブロックについて算術復号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。
【００１９】
ここで、前記判定手段は、前記算術復号化処理が有効でないと判定した場合、そのマクロブロック部分のストリームデータをＰＣＭデータに差し替えてもよい。これにより、前記算術復号化処理が有効でないマクロブロック部分のストリームデータをＰＣＭデータに差し替えることが可能となる。
【００２０】
また、前記算術復号化手段は、前記算術復号化処理が有効でないと判定された場合、発生符号量を抑える制約を加えて再度そのマクロブロックについて算術復号化処理を行なってもよい。これにより、再エンコードを行なう場合は、発生確率テーブルを初期化する時間と、前記算術復号化処理が有効であったマクロブロックについて算術復号化処理をやり直す時間とを削減することが可能となる。
【００２１】
また、前記算術復号化装置は、さらに、前記第１テーブル及び前記第２テーブルのエントリー毎に、前記第１テーブル又は前記第２テーブルを示す第１フラグと第２フラグとを対応付けて記憶するフラグ記憶手段を備え、前記算術復号化手段は、前記第２フラグによって示されるテーブルを使用し、前記更新手段は、前記第１フラグによって示されないテーブルを更新し、前記制御手段は、前記第１フラグによって示されないテーブルが更新された場合は、前記第１フラグによって示されないテーブルを示すように前記第２フラグの値を変更し、前記算術復号化処理が有効であると判定された場合は、前記第１フラグの値を前記第２フラグに複製し、前記算術復号化処理が有効でないと判定された場合は、前記第２フラグの値を前記第１フラグに複製してもよい。これにより、第１フラグによって示されるテーブルはバックアップ用のテーブルとして、また、第２フラグによって示されるテーブルは最新のテーブルとして使用されることになる。従って、フラグの値を変えるだけでバックアップ用のテーブルと最新のテーブルとを簡便に切り替えることが可能となる。
【００２２】
また、前記判定手段は、前記算術復号化処理によって発生した符号量が所定量を越えていない場合は、前記算術復号化処理が有効であると判定し、前記算術復号化処理によって発生した符号量が所定量を超えている場合は、前記算術復号化処理が有効でないと判定してもよい。これにより、１マクロブロックについての算術復号化処理によって発生した符号量が所定量を超えている場合は、そのマクロブロックについて算術復号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。
【００２３】
なお、本発明は、このような算術符号化装置又は算術復号化装置として実現することができるだけでなく、このような算術符号化装置又は算術復号化装置が備える特徴的な手段をステップとする算術符号化方法又は算術復号化方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【発明の効果】
【００２４】
以上の説明から明らかなように、本発明に係る算術符号化装置によれば、２重化された発生確率テーブルの一方である第１テーブルは最新のテーブルとして、また、２重化された発生確率テーブルの他方である第２テーブルはバックアップ用のテーブルとして使用されることになるので、１マクロブロックについての算術符号化処理が有効でない場合は、そのマクロブロックについて算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。しかも、２つのフラグを用いて制御する構成を採用すれば、フラグの値を変えるだけでバックアップ用のテーブルと最新のテーブルとを簡便に切り替えることが可能となる。
【００２５】
これにより、算術符号化処理が有効でないマクロブロック部分のストリームデータをＰＣＭデータに差し替えることが可能となる。また、再エンコードを行なう場合は、発生確率テーブルを初期化する時間と、算術符号化処理が有効であったマクロブロックについて算術符号化処理をやり直す時間とを削減することが可能となる。このように処理時間が削減されると電力消費量も削減されるので、電力消費量を抑えることが必要な装置に本発明を適用すると効果的である。
【００２６】
同様に、本発明に係る算術復号化装置によれば、２重化された発生確率テーブルの一方である第１テーブルは最新のテーブルとして、また、２重化された発生確率テーブルの他方である第２テーブルはバックアップ用のテーブルとして使用されることになるので、１マクロブロックについての算術復号化処理が有効でない場合は、そのマクロブロックについて算術復号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。しかも、２つのフラグを用いて制御する構成を採用すれば、フラグの値を変えるだけでバックアップ用のテーブルと最新のテーブルとを簡便に切り替えることが可能となる。
【００２７】
これにより、算術復号化処理が有効でないマクロブロック部分のストリームデータをＰＣＭデータに差し替えることが可能となる。また、再エンコードを行なう場合は、発生確率テーブルを初期化する時間と、算術復号化処理が有効であったマクロブロックについて算術復号化処理をやり直す時間とを削減することが可能となる。このように処理時間が削減されると電力消費量も削減されるので、電力消費量を抑えることが必要な装置に本発明を適用すると効果的である。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００２９】
（実施の形態１）
図１は、本発明の概要を説明するための図である。既に説明した通り、従来技術によると、マクロブロック＃５についての発生符号量が制限値を超えている場合は、そのマクロブロック＃５について算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことができないので、マクロブロック＃５部分のストリームデータをＰＣＭデータに差し替えることはできない。また、マクロブロック＃５について再エンコードを行なう場合は、図１４（Ｂ）に示されるように、発生確率テーブルを初期化したうえで、マクロブロック＃１から順に算術符号化処理をやり直さなければならない。それに対して、本発明では、図１（Ｂ）に示されるように、マクロブロック＃５についての発生符号量が制限値を超えている場合でも、そのマクロブロック＃５について算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことができる。
【００３０】
図２は、本発明の実施の形態１における算術符号化装置１０の構成図である。この算術符号化装置１０は、発生確率テーブルを使用して算術符号化処理を行なう装置であって、解析部１１と、算術符号化部１２と、判定部１３と、初期化部１４と、テーブル管理部１５と、フラグ管理部１６と、記憶部１７とを備えている。ここでは、２値化部については図示を省略している。２値化部は、解析部１１の前段にあればよく、算術符号化装置１０内にあっても算術符号化装置１０外にあってもよい。
【００３１】
解析部１１は、２値化部からの入力信号を解析する。そして、入力信号にスライスの先頭が現れた場合はその旨を初期化部１４に出力し、入力信号にマクロブロックの終端が現れた場合はその旨をフラグ管理部１６に出力する。なお、２値化部からの入力信号は、解析部１１を介して（又は、解析部１１を介すことなく直接）算術符号化部１２に入力される。
【００３２】
記憶部１７は、本発明に係るテーブル記憶手段及びフラグ記憶手段の一例であり、例えばＲＡＭ（Random Access Memory）である。記憶部１７は、テーブル０及びテーブル１のエントリー毎に第１フラグと第２フラグとを対応付けて記憶している。テーブル０は、本発明に係る第１テーブル又は第２テーブルの一例であり、２重化された発生確率テーブルの一方である。テーブル１は、本発明に係る第１テーブル又は第２テーブルの一例であり、２重化された発生確率テーブルの他方である。第１フラグは、テーブル０又はテーブル１を示すフラグである。第１フラグの値が０である場合、その第１フラグはテーブル０を示していることになり、第１フラグの値が１である場合、その第１フラグはテーブル１を示していることになる。同様に、第２フラグは、テーブル０又はテーブル１を示すフラグである。第２フラグの値が０である場合、その第２フラグはテーブル０を示していることになり、第２フラグの値が１である場合、その第２フラグはテーブル１を示していることになる。
【００３３】
初期化部１４は、本発明に係る初期化手段の一例であり、テーブル０とテーブル１とをスライス単位に初期化する。初期化部１４の機能は、２重化されたテーブル０及びテーブル１を初期化する点を除き、従来と同様である。なお、初期化部１４がテーブル０及びテーブル１を初期化する際にはテーブル管理部１５を介すことになる。
【００３４】
算術符号化部１２は、本発明に係る算術符号化手段の一例であり、第２フラグによって示されるテーブルを使用して算術符号化処理を行なう。例えば、第２フラグの値が０である場合はテーブル０を使用し、第２フラグの値が１である場合はテーブル１を使用する。算術符号化部１２の機能は、テーブル０又はテーブル１を使用して算術符号化処理を行なう点を除き、従来と同様である。なお、算術符号化部１２がテーブル０又はテーブル１を使用する際にはテーブル管理部１５を介すことになる。
【００３５】
テーブル管理部１５は、本発明に係る更新手段の一例であり、第１フラグによって示されないテーブル、言い換えると、第１フラグによって示されるテーブルと逆のテーブルを算術符号化処理の結果に基づいて更新する。例えば、第１フラグの値が０である場合はテーブル１を更新し、第１フラグの値が１である場合はテーブル０を更新する。テーブル管理部１５の機能は、テーブル０又はテーブル１を更新する点を除き、従来と同様である。
【００３６】
判定部１３は、本発明に係る判定手段の一例であり、スライスに含まれる１マクロブロックについて算術符号化処理が完了する度に、そのマクロブロックについての算術符号化処理が有効であるか否かを判定する。例えば、算術符号化処理によって発生した符号量が所定量を越えていない場合は、そのマクロブロックについての算術符号化処理が有効であると判定し、算術符号化処理によって発生した符号量が所定量を超えている場合は、そのマクロブロックについての算術符号化処理が有効でないと判定する。ここでいう所定量とは、Ｈ．２６４／ＡＶＣにおいて規定されている制限値を意味する。判定部１３は、発生符号量が制限値を超えているか否かを示す判定結果信号をフラグ管理部１６に出力する。また、後述する廃棄指示信号をフラグ管理部１６から受けた場合は、当該マクロブロックについての算術符号化処理の結果を廃棄する。
【００３７】
フラグ管理部１６は、本発明に係る制御手段の一例であり、第１フラグによって示されないテーブルが更新された場合は、第１フラグによって示されないテーブルを示すように第２フラグの値を変更する。また、発生符号量が制限値を超えていない旨の判定結果信号を判定部１３から受けた場合など、算術符号化処理が有効であると判定された場合は、第１フラグの値を第２フラグに複製する。他方、発生符号量が制限値を超えている旨の判定結果信号を判定部１３から受けた場合など、算術符号化処理が有効でないと判定された場合は、第２フラグの値を第１フラグに複製する。そして、このように第１フラグの値を第２フラグに複製した場合は、当該マクロブロックについての算術符号化処理の結果を廃棄する旨の信号（廃棄指示信号）を判定部１３に出力する。
【００３８】
図３は、発生確率テーブル内のコンテキスト配置を示す図である。発生確率テーブルは、コンテキストとその発生確率とを対応付けたテーブルである。本発明では、発生確率テーブルを２重化し、一方をテーブル０、他方をテーブル１と呼んでいる。図中に示す文字はシンタックス要素を示しており、図中の１レコードは１ビットに相当する。「mb_skip_run」や「mb_skip_flag」等は１ビットのシンタックス要素であるため１レコード内に表記し、「mb_type」は４ビットのシンタックス要素であるため４レコード内に表記している。コンテキスト（エントリー）は、シンタックス要素を構成する各符号に対応する情報であるため、図中の１レコードは１コンテキストに相当することにもなる。なお、この図３に示されるコンテキストの配置は単なる一例であって、実際はこのような配置にはなっていない。
【００３９】
図４は、算術符号化装置１０が行なう処理の手順を示すフローチャートである。以下、算術符号化の基本単位である１スライスについての動作について説明する。
【００４０】
まず、入力信号にスライスの先頭が現れた場合、初期化部１４は、テーブル０とテーブル１とを初期化する（ステップＳ１）。その後、当該スライス内のマクロブロック数だけ、ステップＳ２〜Ｓ８の処理が繰り返される。
【００４１】
すなわち、算術符号化部１２は、発生確率テーブルを参照（使用）する必要が生じた場合、第２フラグによって示されるテーブルを参照する（ステップＳ２）。そして、参照した発生確率値を使用して算術符号化処理を行ない（ステップＳ３）、その算術符号化処理の結果に基づいて、第１フラグによって示されないテーブルを更新する（ステップＳ４）。前記した通り、テーブル参照（ステップＳ２）及びテーブル更新（ステップＳ４）はテーブル管理部１５を介して行なわれる。その後、フラグ管理部１６は、第１フラグによって示されないテーブルを示すように第２フラグの値を変更する（ステップＳ５）。
【００４２】
全てのコンテキスト数だけステップＳ２〜Ｓ５の処理が繰り返されると、判定部１３は、当該マクロブロックについての発生符号量が制限値を超えているか否かを判定する（ステップＳ６）。フラグ管理部１６は、発生符号量が制限値を超えていないと判定された場合は、第２フラグの値を第１フラグに複製する（ステップＳ７）。他方、発生符号量が制限値を越えていると判定された場合は、第１フラグの値を第２フラグに複製する（ステップＳ８）。
【００４３】
以上の処理が全てのスライスについて完了すると、全体の処理が終了する。
なお、発生符号量が制限値を越えていると判定された場合（ステップＳ６）、判定部１３は、そのマクロブロック部分のストリームデータをＰＣＭデータに差し替える。これにより、発生符号量が制限値を超えているマクロブロック部分のストリームデータをＰＣＭデータに差し替えることが可能となる。発生符号量が制限値を越えていると判定された場合（ステップＳ６）、算術符号化部１２は、発生符号量を抑える制約を加えたうえで、そのマクロブロックについて算術符号化部１２が再エンコードを行なうようにしてもよい。この場合は、発生確率テーブルを初期化する時間と、発生符号量が制限値を超えていなかったマクロブロックについて算術符号化処理をやり直す時間とを削減することが可能となる。
【００４４】
ここで、第１フラグによって示されるテーブルは、算術符号化処理中のマクロブロックについて算術符号化処理を行なう直前の発生確率テーブル、すなわちバックアップ用のテーブルと考えることができる。また、第２フラグによって示されるテーブルは、算術符号化処理中に更新される発生確率テーブル、すなわち最新のテーブルと考えることができる。
【００４５】
そこで、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわち第２フラグによって示されるテーブルを参照するようにしている（ステップＳ２）。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわち第１フラグによって示されないテーブルを更新するようにしている（ステップＳ４）。
【００４６】
そして、このようにバックアップ用のテーブルでないテーブルが更新された場合は、バックアップ用のテーブルでないテーブルを示すように第２フラグの値を変更するようにしている（ステップＳ５）。バックアップ用のテーブルでないテーブルを示すように第２フラグの値を変更すれば、それ以降は、バックアップ用のテーブルでないテーブルを最新のテーブルと考えることができるからである。
【００４７】
また、発生符号量が制限値を超えていない場合は、第２フラグの値を第１フラグに複製するようにしている（ステップＳ７）。第２フラグの値を第１フラグに複製すれば、最新のテーブルの値をバックアップ用のテーブルに複製した場合と同じ効果を得ることができるからである。他方、発生符号量が制限値を越えている場合は、第１フラグの値を第２フラグに複製するようにしている（ステップＳ８）。第１フラグの値を第２フラグに複製すれば、バックアップ用のテーブルの値を最新のテーブルに複製した場合と同じ効果を得ることができるからである。
【００４８】
図５は、テーブル参照とテーブル更新を詳細に説明するための図である。以下、テーブル更新前のフラグの値と、テーブル参照更新態様と、テーブル更新後のフラグの値とを具体的に説明する。テーブル更新前における第１フラグの値と第２フラグの値の組み合わせとしては、（第１フラグの値，第２フラグの値）と表記すると、（０，０）（０，１）（１，０）（１，１）の４通りが存在する。そこで、ここでは、テーブル更新前における第１フラグの値と第２フラグの値の組み合わせが（０，０）の場合をケース１、（０，１）の場合をケース２、（１，０）の場合をケース３、（１，１）の場合をケース４という。
【００４９】
ケース１では、テーブル更新前における第１フラグの値と第２フラグの値は（０，０）である。第１フラグの値が０であるということは、バックアップ用のテーブルはテーブル０であることを意味している。また、第２フラグの値が０であるということは、最新のテーブルはテーブル０であることを意味している。そこで、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル０を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル１を更新することになる。そして、このようにテーブル１が更新された場合は、テーブル１を示すように第２フラグの値を変更する。その結果、テーブル更新後における第１フラグの値と第２フラグの値は（０，１）となる。
【００５０】
ケース２では、テーブル更新前における第１フラグの値と第２フラグの値は（０，１）である。第１フラグの値が０であるということは、バックアップ用のテーブルはテーブル０であることを意味している。また、第２フラグの値が１であるということは、最新のテーブルはテーブル１であることを意味している。そこで、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル１を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル１を更新することになる。そして、このようにテーブル１が更新された場合は、テーブル１を示すように第２フラグの値を変更する。その結果、テーブル更新後における第１フラグの値と第２フラグの値は（０，１）となる。なお、このケース２では、第２フラグの値は元々１であるため、実質的には第２フラグの値は変わらない。
【００５１】
ケース３では、テーブル更新前における第１フラグの値と第２フラグの値は（１，０）である。第１フラグの値が１であるということは、バックアップ用のテーブルはテーブル１であることを意味している。また、第２フラグの値が０であるということは、最新のテーブルはテーブル０であることを意味している。そこで、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル０を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル０を更新することになる。そして、このようにテーブル０が更新された場合は、テーブル０を示すように第２フラグの値を変更する。その結果、テーブル更新後における第１フラグの値と第２フラグの値は（１，０）となる。なお、このケース３では、第２フラグの値は元々０であるため、実質的には第２フラグの値は変わらない。
【００５２】
ケース４では、テーブル更新前における第１フラグの値と第２フラグの値は（１，１）である。第１フラグの値が１であるということは、バックアップ用のテーブルはテーブル１であることを意味している。また、第２フラグの値が１であるということは、最新のテーブルはテーブル１であることを意味している。そこで、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル１を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル０を更新することになる。そして、このようにテーブル０が更新された場合は、テーブル０を示すように第２フラグの値を変更する。その結果、テーブル更新後における第１フラグの値と第２フラグの値は（１，０）となる。
【００５３】
図６は、フラグの値を複製する処理を詳細に説明するための図である。前記したように、発生符号量が制限値を超えていないと判定された場合は、第２フラグの値が第１フラグに複製され、発生符号量が制限値を越えていると判定された場合は、第１フラグの値が第２フラグに複製される。図６（Ａ）では、第２フラグの値が第１フラグに複製される場合を想定し、その複製前後の第１フラグの値と第２フラグの値を示している。図６（Ｂ）では、第１フラグの値が第２フラグに複製される場合を想定し、その複製前後の第１フラグの値と第２フラグの値を示している。複製前における第１フラグの値と第２フラグの値の組み合わせとしては（０，０）（０，１）（１，０）（１，１）の４通りが存在するので、ここでは、その組み合わせが（０，０）の場合をケース１、（０，１）の場合をケース２、（１，０）の場合をケース３、（１，１）の場合をケース４という。
【００５４】
まず、図６（Ａ）を用いて第２フラグの値が第１フラグに複製される場合を説明する。
ケース１では、複製前における第１フラグの値と第２フラグの値は（０，０）である。第１フラグの値が０であるということは、バックアップ用のテーブルはテーブル０であることを意味している。また、第２フラグの値が０であるということは、最新のテーブルはテーブル０であることを意味している。この状態で発生符号量が制限値を超えていないと判定された場合は、第２フラグの値が第１フラグに複製される。その結果、複製後における第１フラグの値と第２フラグの値は（０，０）となる。なお、このケース１では、第１フラグの値は元々０であるため、実質的には第１フラグの値は変わらない。以降、引き続きテーブル０をバックアップ用のテーブルとして、また、引き続きテーブル０を最新のテーブルとして、次のマクロブロックが処理されることになる。
【００５５】
ケース２では、複製前における第１フラグの値と第２フラグの値は（０，１）である。第１フラグの値が０であるということは、バックアップ用のテーブルはテーブル０であることを意味している。また、第２フラグの値が１であるということは、最新のテーブルはテーブル１であることを意味している。この状態で発生符号量が制限値を超えていないと判定された場合は、第２フラグの値が第１フラグに複製される。その結果、複製後における第１フラグの値と第２フラグの値は（１，１）となる。以降、新たにテーブル１をバックアップ用のテーブルとして、また、引き続きテーブル１を最新のテーブルとして、次のマクロブロックが処理されることになる。
【００５６】
ケース３では、複製前における第１フラグの値と第２フラグの値は（１，０）である。第１フラグの値が１であるということは、バックアップ用のテーブルはテーブル１であることを意味している。また、第２フラグの値が０であるということは、最新のテーブルはテーブル０であることを意味している。この状態で発生符号量が制限値を超えていないと判定された場合は、第２フラグの値が第１フラグに複製される。その結果、複製後における第１フラグの値と第２フラグの値は（０，０）となる。以降、新たにテーブル０をバックアップ用のテーブルとして、また、引き続きテーブル０を最新のテーブルとして、次のマクロブロックが処理されることになる。
【００５７】
ケース４では、複製前における第１フラグの値と第２フラグの値は（１，１）である。第１フラグの値が１であるということは、バックアップ用のテーブルはテーブル１であることを意味している。また、第２フラグの値が１であるということは、最新のテーブルはテーブル１であることを意味している。この状態で発生符号量が制限値を超えていないと判定された場合は、第２フラグの値が第１フラグに複製される。その結果、複製後における第１フラグの値と第２フラグの値は（１，１）となる。なお、このケース４では、第１フラグの値は元々１であるため、実質的には第１フラグの値は変わらない。以降、引き続きテーブル１をバックアップ用のテーブルとして、また、引き続きテーブル１を最新のテーブルとして、次のマクロブロックが処理されることになる。
【００５８】
次に、図６（Ｂ）を用いて第１フラグの値が第２フラグに複製される場合を説明する。
ケース１では、複製前における第１フラグの値と第２フラグの値は（０，０）である。第１フラグの値が０であるということは、バックアップ用のテーブルはテーブル０であることを意味している。また、第２フラグの値が０であるということは、最新のテーブルはテーブル０であることを意味している。この状態で発生符号量が制限値を超えていると判定された場合は、第１フラグの値が第２フラグに複製される。その結果、複製後における第１フラグの値と第２フラグの値は（０，０）となる。なお、このケース１では、第２フラグの値は元々０であるため、実質的には第２フラグの値は変わらない。以降、引き続きテーブル０をバックアップ用のテーブルとして、また、引き続きテーブル０を最新のテーブルとして、次のマクロブロックが処理されることになる。
【００５９】
ケース２では、複製前における第１フラグの値と第２フラグの値は（０，１）である。第１フラグの値が０であるということは、バックアップ用のテーブルはテーブル０であることを意味している。また、第２フラグの値が１であるということは、最新のテーブルはテーブル１であることを意味している。この状態で発生符号量が制限値を超えていると判定された場合は、第１フラグの値が第２フラグに複製される。その結果、複製後における第１フラグの値と第２フラグの値は（０，０）となる。以降、引き続きテーブル０をバックアップ用のテーブルとして、また、新たにテーブル０を最新のテーブルとして、次のマクロブロックが処理されることになる。
【００６０】
ケース３では、複製前における第１フラグの値と第２フラグの値は（１，０）である。第１フラグの値が１であるということは、バックアップ用のテーブルはテーブル１であることを意味している。また、第２フラグの値が０であるということは、最新のテーブルはテーブル０であることを意味している。この状態で発生符号量が制限値を超えていると判定された場合は、第１フラグの値が第２フラグに複製される。その結果、複製後における第１フラグの値と第２フラグの値は（１，１）となる。以降、引き続きテーブル１をバックアップ用のテーブルとして、また、新たにテーブル１を最新のテーブルとして、次のマクロブロックが処理されることになる。
【００６１】
ケース４では、複製前における第１フラグの値と第２フラグの値は（１，１）である。第１フラグの値が１であるということは、バックアップ用のテーブルはテーブル１であることを意味している。また、第２フラグの値が１であるということは、最新のテーブルはテーブル１であることを意味している。この状態で発生符号量が制限値を超えていると判定された場合は、第１フラグの値が第２フラグに複製される。その結果、複製後における第１フラグの値と第２フラグの値は（１，１）となる。なお、このケース４では、第２フラグの値は元々１であるため、実質的には第２フラグの値は変わらない。以降、引き続きテーブル１をバックアップ用のテーブルとして、また、引き続きテーブル１を最新のテーブルとして、次のマクロブロックが処理されることになる。
【００６２】
図７は、フラグとテーブルの状態遷移を示す図である。ここでは、発生符号量が制限値を超えていないと判定された場合の状態遷移について説明する。
【００６３】
図７（Ａ）は、テーブル０及びテーブル１が初期化された直後の状態を示している。テーブル０及びテーブル１が初期化された直後の状態では、第１フラグの値と第２フラグの値は（０，０）である。このケースは、図５でいうケース１に相当する。すなわち、第１フラグの値が０であるということは、バックアップ用のテーブルはテーブル０であることを意味している。また、第２フラグの値が０であるということは、最新のテーブルはテーブル０であることを意味している。ここでは図示を省略しているが、テーブル０及びテーブル１の同一エントリーには、同一の発生確率値（初期値）が設定されている。
【００６４】
図７（Ｂ）は、テーブル０及びテーブル１が初期化された後、テーブル参照とテーブル更新とが行なわれた直後の状態を示している。テーブル０及びテーブル１が初期化された直後の状態では、バックアップ用のテーブルはテーブル０であり、最新のテーブルはテーブル０である。そこで、図５のケース１で説明した通り、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル０を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル１を更新することになる。そして、このようにテーブル１が更新された場合は、テーブル１を示すように第２フラグの値を変更する。その結果、テーブル更新後における第１フラグの値と第２フラグの値は（０，１）となる。
【００６５】
ここでは、先頭のエントリーが参照された結果、先頭のエントリーが更新される状態を示しているが、参照されるエントリーと更新されるエントリーは同一であるとは限らない。例えば、先頭のエントリーが参照された結果、先頭のエントリーと先頭から２番目のエントリーとが更新される場合もある。このようなテーブル参照とテーブル更新とは、全てのコンテキスト数だけ繰り返されることになるが、ここでは簡単のため１回ずつ行なわれたものと仮定して説明する。
【００６６】
図７（Ｃ）は、テーブル参照とテーブル更新とが行なわれた後、発生符号量が制限値を超えていないと判定された直後の状態を示している。テーブル参照とテーブル更新とが行なわれた直後の状態では、バックアップ用のテーブルはテーブル０であり、最新のテーブルはテーブル１である。このケースは、図６（Ａ）でいうケース２に相当する。すなわち、発生符号量が制限値を超えていないと判定された場合は、第２フラグの値が第１フラグに複製される。その結果、複製後における第１フラグの値と第２フラグの値は（１，１）となる。以降、新たにテーブル１をバックアップ用のテーブルとして、また、引き続きテーブル１を最新のテーブルとして、次のマクロブロックが処理されることになる。
【００６７】
図７（Ｄ）は、第２フラグの値が第１フラグに複製された後、テーブル参照とテーブル更新とが行なわれた直後の状態を示している。第２フラグの値が第１フラグに複製された直後の状態では、バックアップ用のテーブルはテーブル１であり、最新のテーブルはテーブル１である。そこで、図５のケース４で説明した通り、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル１を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル０を更新することになる。そして、このようにテーブル０が更新された場合は、テーブル０を示すように第２フラグの値を変更する。その結果、テーブル更新後における第１フラグの値と第２フラグの値は（１，０）となる。
【００６８】
図８は、フラグとテーブルの状態遷移を示す図である。ここでは、発生符号量が制限値を超えていると判定された場合の状態遷移について説明する。
【００６９】
図８（Ａ）の内容は、図７（Ａ）と同じである。すなわち、テーブル０及びテーブル１が初期化された直後の状態を示している。第１フラグの値が０であるということは、バックアップ用のテーブルはテーブル０であることを意味している。また、第２フラグの値が０であるということは、最新のテーブルはテーブル０であることを意味している。
【００７０】
図８（Ｂ）の内容は、図７（Ｂ）と同じである。すなわち、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル０を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル１を更新することになる。そして、このようにテーブル１が更新された場合は、テーブル１を示すように第２フラグの値を変更する。その結果、テーブル更新後における第１フラグの値と第２フラグの値は（０，１）となる。
【００７１】
図８（Ｃ）は、テーブル参照とテーブル更新とが行なわれた後、発生符号量が制限値を超えていると判定された直後の状態を示している。テーブル参照とテーブル更新とが行なわれた直後の状態では、バックアップ用のテーブルはテーブル０であり、最新のテーブルはテーブル１である。このケースは、図６（Ｂ）でいうケース２に相当する。すなわち、発生符号量が制限値を超えていると判定された場合は、第１フラグの値が第２フラグに複製される。その結果、複製後における第１フラグの値と第２フラグの値は（０，０）となる。以降、引き続きテーブル０をバックアップ用のテーブルとして、また、新たにテーブル０を最新のテーブルとして、次のマクロブロックが処理されることになる。
【００７２】
図８（Ｄ）は、第１フラグの値が第２フラグに複製された後、テーブル参照とテーブル更新とが行なわれた直後の状態を示している。第１フラグの値が第２フラグに複製された直後の状態では、バックアップ用のテーブルはテーブル０であり、最新のテーブルはテーブル０である。そこで、図５のケース１で説明した通り、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル０を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル１を更新することになる。そして、このようにテーブル１が更新された場合は、テーブル１を示すように第２フラグの値を変更する。その結果、テーブル更新後における第１フラグの値と第２フラグの値は（０，１）となる。
【００７３】
以上のように、本発明に係る算術符号化装置によれば、第１フラグによって示されるテーブルはバックアップ用のテーブルとして、また、第２フラグによって示されるテーブルは最新のテーブルとして使用されることになるので、１マクロブロックについての算術符号化処理によって発生した符号量が制限値を超えている場合は、そのマクロブロックについて算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。しかも、２つのフラグを用いて制御する構成を採用しているので、フラグの値を変えるだけでバックアップ用のテーブルと最新のテーブルとを簡便に切り替えることが可能である。
【００７４】
これにより、発生符号量が制限値を超えているマクロブロック部分のストリームデータをＰＣＭデータに差し替えることが可能となる。また、再エンコードを行なう場合は、発生確率テーブルを初期化する時間と、発生符号量が制限値を超えていなかったマクロブロックについて算術符号化処理をやり直す時間とを削減することが可能となる。このように処理時間が削減されると電力消費量も削減されるので、電力消費量を抑えることが必要な装置に本発明を適用すると効果的である。
【００７５】
なお、ここでは、第１フラグと第２フラグという２つのフラグを用いて制御することとしているが、本発明はこれに限定されるものではない。すなわち、テーブル０を最新のテーブルとして、また、テーブル１をバックアップ用のテーブルとして固定的に使用する構成を採用すれば、フラグを用いることなく同様の効果を得ることができる。ただし、このような構成を採用した場合は、第１フラグと第２フラグとの間でフラグの値を相互に複製する処理に代えて、テーブル０とテーブル１との間でテーブルの値を相互に複製する処理が必要となる。すなわち、発生符号量が制限値を超えている場合は、バックアップ用のテーブルであるテーブル１の値を最新のテーブルであるテーブル０に複製する処理が必要となる。他方、発生符号量が制限値を超えていない場合は、最新のテーブルであるテーブル０の値をバックアップ用のテーブルであるテーブル１に複製する処理が必要となる。このようにテーブルの値を複製するよりもフラグの値を複製する方が処理速度の面で好ましいのはいうまでもない。
【００７６】
また、ここでは、発生符号量が制限値を超えている場合に本発明の効果が得られる旨の説明をしたが、本発明はこれに限定されるものではない。すなわち、１マクロブロックについての算術符号化処理が有効でない場合であれば、前記と同様の効果を得ることができる。
【００７７】
また、図４では、第２フラグの値を変更するステップＳ５を全てのコンテキスト数だけ繰り返すこととしているが、本発明はこれに限定されるものではない。すなわち、第２フラグの値が変更されるタイミングは、図９に示されるように、判定処理が行なわれた直後と、判定処理が行なわれた後にテーブル更新が行なわれた直後だけである。判定処理が行なわれた直後に第２フラグの値が変わるのは、ステップＳ８の複製が原因でありステップＳ５とは関係がない。従って、第２フラグの値を変更するステップＳ５は、判定処理が行なわれた後にテーブル更新が行なわれた直後だけ実行するようにしてもよい。
【００７８】
（実施の形態２）
前記実施の形態１では、ＣＡＢＡＣを用いてデータを符号化する算術符号化装置に本発明を適用した場合ついて説明したが、本実施の形態２では、ＣＡＢＡＣを用いて符号化されたデータを復号化する算術復号化装置に本発明を適用した場合について説明する。
【００７９】
図１０は、本発明の実施の形態における算術復号化装置２０の構成図である。この算術復号化装置２０は、発生確率テーブルを使用して算術復号化処理を行なう装置であって、解析部２１と、算術復号化部２２と、判定部２３と、初期化部２４と、テーブル管理部２５と、フラグ管理部２６と、記憶部２７とを備えている。以下に説明するように、本算術復号化装置２０の構成は、算術符号化をするか算術復号化をするかという点を除き、前記実施の形態１における算術符号化装置１０と基本的に同じである。
【００８０】
解析部２１は、算術符号化された入力信号を解析する。そして、入力信号にスライスの先頭が現れた場合はその旨を初期化部２４に出力し、入力信号にマクロブロックの終端が現れた場合はその旨をフラグ管理部２６に出力する。なお、算術符号化された入力信号は、解析部２１を介して（又は、解析部２１を介すことなく直接）算術復号化部２２に入力される。
【００８１】
記憶部２７は、本発明に係るテーブル記憶手段及びフラグ記憶手段の一例であり、例えばＲＡＭである。記憶部２７は、テーブル０及びテーブル１のエントリー毎に第１フラグと第２フラグとを対応付けて記憶している。
【００８２】
初期化部２４は、本発明に係る初期化手段の一例であり、テーブル０とテーブル１とをスライス単位に初期化する。なお、初期化部２４がテーブル０及びテーブル１を初期化する際にはテーブル管理部２５を介すことになる。
【００８３】
算術復号化部２２は、本発明に係る算術復号化手段の一例であり、第２フラグによって示されるテーブルを使用して算術復号化処理を行なう。なお、算術復号化部２２がテーブル０又はテーブル１を使用する際にはテーブル管理部２５を介すことになる。
【００８４】
テーブル管理部２５は、本発明に係る更新手段の一例であり、第１フラグによって示されないテーブル、言い換えると、第１フラグによって示されるテーブルと逆のテーブルを算術復号化処理の結果に基づいて更新する。
【００８５】
判定部２３は、本発明に係る判定手段の一例であり、スライスに含まれる１マクロブロックについて算術復号化処理が完了する度に、そのマクロブロックについての算術復号化処理が有効であるか否かを判定する。例えば、算術復号化処理によって発生した符号量が所定量を越えていない場合は、そのマクロブロックについての算術復号化処理が有効であると判定し、算術復号化処理によって発生した符号量が所定量を超えている場合は、そのマクロブロックについての算術復号化処理が有効でないと判定する。判定部２３は、発生符号量が制限値を超えているか否かを示す判定結果信号をフラグ管理部２６に出力する。また、廃棄指示信号をフラグ管理部２６から受けた場合は、当該マクロブロックについての算術復号化処理の結果を廃棄する。
【００８６】
フラグ管理部２６は、本発明に係る制御手段の一例であり、第１フラグによって示されないテーブルが更新された場合は、第１フラグによって示されないテーブルを示すように第２フラグの値を変更する。また、発生符号量が制限値を超えていない旨の判定結果信号を判定部２３から受けた場合など、算術復号化処理が有効であると判定された場合は、第１フラグの値を第２フラグに複製する。他方、発生符号量が制限値を超えている旨の判定結果信号を判定部２３から受けた場合など、算術復号化処理が有効でないと判定された場合は、第２フラグの値を第１フラグに複製する。そして、このように第１フラグの値を第２フラグに複製した場合は、当該マクロブロックについての廃棄指示信号を判定部２３に出力する。
【００８７】
以上のように、本発明に係る算術復号化装置によれば、２重化された発生確率テーブルの一方である第１テーブルは最新のテーブルとして、また、２重化された発生確率テーブルの他方である第２テーブルはバックアップ用のテーブルとして使用されることになるので、１マクロブロックについての算術復号化処理が有効でない場合は、そのマクロブロックについて算術復号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。しかも、２つのフラグを用いて制御する構成を採用しているので、フラグの値を変えるだけでバックアップ用のテーブルと最新のテーブルとを簡便に切り替えることが可能である。
【００８８】
これにより、算術復号化処理が有効でないマクロブロック部分のストリームデータをＰＣＭデータに差し替えることが可能となる。また、再エンコードを行なう場合は、発生確率テーブルを初期化する時間と、算術復号化処理が有効であったマクロブロックについて算術復号化処理をやり直す時間とを削減することが可能となる。このように処理時間が削減されると電力消費量も削減されるので、電力消費量を抑えることが必要な装置に本発明を適用すると効果的である。
【産業上の利用可能性】
【００８９】
本発明は、１マクロブロックについての算術符号化処理が有効でない場合は、そのマクロブロックについて算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが必要な算術符号化装置等の用途に適用することができる。
【図面の簡単な説明】
【００９０】
【図１】本発明の概要を説明するための図
【図２】本発明の実施の形態１における算術符号化装置の構成図
【図３】発生確率テーブル内のコンテキスト配置を示す図
【図４】算術符号化装置が行なう処理の手順を示すフローチャート
【図５】テーブル参照とテーブル更新を詳細に説明するための図
【図６】フラグの値を複製する処理を詳細に説明するための図
【図７】フラグとテーブルの状態遷移を示す図
【図８】フラグとテーブルの状態遷移を示す図
【図９】第１フラグの値と第２フラグの値との組み合わせの遷移を示す図
【図１０】本発明の実施の形態２における算術復号化装置の構成図
【図１１】ＣＡＢＡＣを用いた従来の２値算術符号化装置の構成図
【図１２】ＣＡＢＡＣを用いた２値算術符号化の概念図
【図１３】スライスが符号化の基本単位となっている様子を示す図
【図１４】１スライスに含まれるマクロブロック毎の発生符号量を示す図
【符号の説明】
【００９１】
１０  算術符号化装置
１１  算術符号化装置の解析部
１２  算術符号化装置の算術符号化部
１３  算術符号化装置の判定部
１４  算術符号化装置の初期化部
１５  算術符号化装置のテーブル管理部
１６  算術符号化装置のフラグ管理部
１７  算術符号化装置の記憶部
２０  算術復号化装置
２１  算術復号化装置の解析部
２２  算術復号化装置の算術符号化部
２３  算術復号化装置の判定部
２４  算術復号化装置の初期化部
２５  算術復号化装置のテーブル管理部
２６  算術復号化装置のフラグ管理部
２７  算術復号化装置の記憶部
【図１】
2008098751.tif 000003
【図２】
2008098751.tif 000004
【図３】
2008098751.tif 000005
【図４】
2008098751.tif 000006
【図５】
2008098751.tif 000007
【図６】
2008098751.tif 000008
【図７】
2008098751.tif 000009
【図８】
2008098751.tif 000010
【図９】
2008098751.tif 000011
【図１０】
2008098751.tif 000012
【図１１】
2008098751.tif 000013
【図１２】
2008098751.tif 000014
【図１３】
2008098751.tif 000015
【図１４】
2008098751.tif 000016