[go: up one dir, main page]

JP2008098751A - 算術符号化装置及び算術復号化装置 - Google Patents

算術符号化装置及び算術復号化装置 Download PDF

Info

Publication number
JP2008098751A
JP2008098751A JP2006275211A JP2006275211A JP2008098751A JP 2008098751 A JP2008098751 A JP 2008098751A JP 2006275211 A JP2006275211 A JP 2006275211A JP 2006275211 A JP2006275211 A JP 2006275211A JP 2008098751 A JP2008098751 A JP 2008098751A
Authority
JP
Japan
Prior art keywords
arithmetic
flag
value
arithmetic decoding
determined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006275211A
Other languages
English (en)
Inventor
Takashi Masuno
貴司 増野
Hiroaki Shimazaki
浩昭 島崎
Takuma Chiba
琢麻 千葉
Hiroshi Tasaka
啓 田坂
Kenjiro Tsuda
賢治郎 津田
Tatsuro Shigesato
達郎 重里
Kazuo Saigo
賀津雄 西郷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006275211A priority Critical patent/JP2008098751A/ja
Publication of JP2008098751A publication Critical patent/JP2008098751A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

【課題】算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能な算術符号化装置を提供する。
【解決手段】2重化された発生確率テーブルの一方であるテーブル0と、2重化された発生確率テーブルの他方であるテーブル1とを記憶する記憶部17と、テーブル0とテーブル1とをスライス単位に初期化する初期化部14と、テーブル0を使用して算術符号化処理を行なう算術符号化部12と、算術符号化処理の結果に基づいてテーブル0を更新するテーブル管理部15と、スライスに含まれる1マクロブロックについて算術符号化処理が完了する度に、そのマクロブロックについての算術符号化処理が有効であるか否かを判定する判定部13と、有効であると判定された場合は、テーブル1の値がテーブル0の値となるように制御し、有効でないと判定された場合は、テーブル0の値がテーブル1の値となるように制御するフラグ管理部16とを備える。
【選択図】図2

Description

本発明は、算術符号化装置及び算術復号化装置に関し、特に、H.264/AVCで規定されているCABACを用いた算術符号化装置及び算術復号化装置に関する。
動画像の符号化技術において、符号化効率の向上が図られている。これにより、携帯電話機で滑らかな動きのテレビ電話を実現したり、高画質な動画像を撮影したりすることも可能になりつつある。このような符号化技術の進展において、最新の動画像符号化技術の国際基準であるH.264/AVCでは、シンタックス要素のエントロピー符号化方式として、CAVLCとCABACという2つの方式を規定している。シンタックス要素とは、DCT係数や動きベクトルなど、シンタックス(データ列の表現規則)に従って伝送することが定められている情報のことである。
CAVLCは、Context−Adaptive Variable Length Coding(コンテキスト適応型可変長符号化方式)の略である。CAVLCでは、DCT係数を符号化する際、連続する0の長さであるランとレベルとを可変長符号化テーブルを用いてスキャンの方向と反対の方向から符号化を行なう。CABACは、Context−based Adaptive Binary Arithmac Coding(コンテキスト適応型2値算術符号化方式)の略である。すなわち、時間とともに変化する符号化対象の発生確率を変化させる方式であり、一般に算術符号化と呼ばれる方式である(例えば、特許文献1参照)。CABACでは、通常の算術符号化のほかに、圧縮すべき符号毎にコンテキストを付け、そのコンテキストごとに発生確率の変更を行なっている。
図11は、CABACを用いた従来の2値算術符号化装置の構成図である。この2値算術符号化装置は、通常の2値算術符号化部に加えて2値化部とコンテキスト算出部とを備えている。2値化部は、+3や+4などの多値信号を0と1の2値信号に変換する。コンテキスト算出部は、コンテキスト変数テーブルを備えている。コンテキスト変数テーブルとは、コンテキストの番号と、コンテキストの発生確率を示すテーブルの番号と、発生確率の高いシンボル(1又は0)とを対応付けたテーブルである。コンテキスト算出部は、コンテキスト変数テーブルを参照することにより、符号化すべき2値信号の発生確率を周囲の状況に応じて算出するとともに、実際に符号化した結果に基づいて発生確率テーブルを更新する。2値算術符号化部は、コンテキスト算出部から与えられた発生確率に従って2値信号の符号化を行なう。
H.264/AVCによると、前記したようにコンテキスト毎にその発生確率テーブルが存在することになるが、以下では簡単のため、複数の発生確率テーブルを1つのテーブルと考えることにする。すなわち、複数のコンテキストとその発生確率とを対応付けたテーブルのことを「発生確率テーブル」と呼ぶことにする。この発生確率テーブルは、前記したコンテキスト変数テーブルに相当することになる。
図12は、CABACを用いた2値算術符号化の概念図である。この図に示されるように、CABACを用いた2値算術符号化では、あらかじめ2値信号の発生確率が与えられたうえで、入力信号に応じて実数0.0から1.0の間で区間をどんどん狭めていく。ここでは、入力信号のうちの“0”の発生確率が0.8、“1”の発生確立が0.2となっているので、入力信号のうち“0”が符号化されると前の区間の下0.8の部分が、“1”が符号化されると前の区間の上0.2の部分が新しい区間として更新される。
具体的には、最初のSTEP1では“0”が符号化されたため、初期区間の0.0−1.0の下0.8にあたる0.0−0.8が新しい区間として更新される。その後、“1”“0”が順次符号化され、最終的な区間は0.64−0.768となる。算術符号の符号語は、最終区間を特定する実数値の2進表現になる。この例の場合は0.64−0.768が最終区間になるので、その間に入る実数としては0.75をとることができる。0.75の2進表現は0.11になるので、常に0となる最初の桁を除いた、小数点以下の“11”が符号語として出力される。
図13は、スライスが符号化の基本単位となっている様子を示す図である。例えば、スライス#3についての処理時間T1は、発生確率テーブルの初期化処理に要する時間T2と、スライス#3についての符号化処理に要する時間T3との合計となる。このように、CABACを用いた2値算術符号化では、スライス毎に符号化処理が行われ、実際に符号化した結果に基づいて発生確率テーブルが更新される。すなわち、1スライスについて符号化する前に発生確率テーブル全体が初期化されることになる。
図14は、1スライスに含まれるマクロブロック毎の発生符号量を示す図である。ここでは、図14(A)に示されるように、1スライスには8つのマクロブロック#1〜#8が含まれていると仮定する。このようなスライスについて算術符号化処理を行なった場合は、図14(B)に示されるように、8つのマクロブロック#1〜#8毎に、その算術符号化処理によって発生した符号量が検出される。
ここで、1マクロブロックについての発生符号量は、H.264/AVCにおいて規定されている制限値を越えてはならない。例えば、図14(B)に示されるように、マクロブロック#5についての発生符号量が制限値を超えている場合は、マクロブロック#5部分のストリームデータをPCM(Pulse Code Modulation)データに差し替えるか、又は、発生符号量を抑える制約を加えて再度マクロブロック#5について算術符号化処理(再エンコード)を行なう必要がある。
特開2004−135251号公報
しかしながら、従来技術によると、マクロブロック#5について算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことができない。すなわち、発生確率テーブルの値は、実際に符号化した結果に基づいて更新されているので、マクロブロック#5部分のストリームデータをPCMデータに差し替える場合は、マクロブロック#5について算術符号化処理を行なう前の状態に発生確率テーブルの値を戻す必要がある。しかしながら、従来技術では、このような状態に発生確率テーブルの値を戻すことができないので、マクロブロック#5部分のストリームデータをPCMデータに差し替えることはできない。マクロブロック#5について再エンコードを行なう場合にしても、マクロブロック#5について算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことはできない。そこで、この場合は、発生確率テーブルを初期化したうえで、スライスの先頭に戻って算術符号化処理をやり直す必要がある。例えば、図14(B)に示されるように、マクロブロック#5についての発生符号量が制限値を超えている場合は、発生確率テーブルを初期化したうえで、マクロブロック#1から順に算術符号化処理をやり直さなければならない。このような問題は、発生符号量が制限値を超えている場合だけでなく、1マクロブロックについての算術符号化処理が有効でない場合であれば同様に発生する。
本発明は、前記課題を解決するものであって、1マクロブロックについての算術符号化処理が有効でない場合は、そのマクロブロックについて算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能な算術符号化装置を提供することを目的とする。
前記目的を達成するために、本発明に係る算術符号化装置は、発生確率テーブルを使用して算術符号化処理を行なう算術符号化装置であって、2重化された前記発生確率テーブルの一方である第1テーブルと、2重化された前記発生確率テーブルの他方である第2テーブルとを記憶するテーブル記憶手段と、前記第1テーブルと前記第2テーブルとをスライス単位に初期化する初期化手段と、前記第1テーブルを使用して前記算術符号化処理を行なう算術符号化手段と、前記算術符号化処理の結果に基づいて前記第1テーブルを更新する更新手段と、前記スライスに含まれる1マクロブロックについて前記算術符号化処理が完了する度に、そのマクロブロックについての算術符号化処理が有効であるか否かを判定する判定手段と、前記算術符号化処理が有効であると判定された場合は、前記第2テーブルの値が前記第1テーブルの値となるように制御し、前記算術符号化処理が有効でないと判定された場合は、前記第1テーブルの値が前記第2テーブルの値となるように制御する制御手段とを備える。これにより、2重化された発生確率テーブルの一方である第1テーブルは最新のテーブルとして、また、2重化された発生確率テーブルの他方である第2テーブルはバックアップ用のテーブルとして使用されることになるので、1マクロブロックについての算術符号化処理が有効でない場合は、そのマクロブロックについて算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。
ここで、前記判定手段は、前記算術符号化処理が有効でないと判定した場合、そのマクロブロック部分のストリームデータをPCMデータに差し替えてもよい。これにより、前記算術符号化処理が有効でないマクロブロック部分のストリームデータをPCMデータに差し替えることが可能となる。
また、前記算術符号化手段は、前記算術符号化処理が有効でないと判定された場合、発生符号量を抑える制約を加えて再度そのマクロブロックについて算術符号化処理を行なってもよい。これにより、再エンコードを行なう場合は、発生確率テーブルを初期化する時間と、前記算術符号化処理が有効であったマクロブロックについて算術符号化処理をやり直す時間とを削減することが可能となる。
また、前記算術符号化装置は、さらに、前記第1テーブル及び前記第2テーブルのエントリー毎に、前記第1テーブル又は前記第2テーブルを示す第1フラグと第2フラグとを対応付けて記憶するフラグ記憶手段を備え、前記算術符号化手段は、前記第2フラグによって示されるテーブルを使用し、前記更新手段は、前記第1フラグによって示されないテーブルを更新し、前記制御手段は、前記第1フラグによって示されないテーブルが更新された場合は、前記第1フラグによって示されないテーブルを示すように前記第2フラグの値を変更し、前記算術符号化処理が有効であると判定された場合は、前記第1フラグの値を前記第2フラグに複製し、前記算術符号化処理が有効でないと判定された場合は、前記第2フラグの値を前記第1フラグに複製してもよい。これにより、第1フラグによって示されるテーブルはバックアップ用のテーブルとして、また、第2フラグによって示されるテーブルは最新のテーブルとして使用されることになる。従って、フラグの値を変えるだけでバックアップ用のテーブルと最新のテーブルとを簡便に切り替えることが可能となる。
また、前記判定手段は、前記算術符号化処理によって発生した符号量が所定量を越えていない場合は、前記算術符号化処理が有効であると判定し、前記算術符号化処理によって発生した符号量が所定量を超えている場合は、前記算術符号化処理が有効でないと判定してもよい。これにより、1マクロブロックについての算術符号化処理によって発生した符号量が所定量を超えている場合は、そのマクロブロックについて算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。
前記目的を達成するために、本発明に係る算術復号化装置は、発生確率テーブルを使用して算術復号化処理を行なう算術復号化装置であって、2重化された前記発生確率テーブルの一方である第1テーブルと、2重化された前記発生確率テーブルの他方である第2テーブルとを記憶するテーブル記憶手段と、前記第1テーブルと前記第2テーブルとをスライス単位に初期化する初期化手段と、前記第1テーブルを使用して前記算術復号化処理を行なう算術復号化手段と、前記算術復号化処理の結果に基づいて前記第1テーブルを更新する更新手段と、前記スライスに含まれる1マクロブロックについて前記算術復号化処理が完了する度に、そのマクロブロックについての算術復号化処理が有効であるか否かを判定する判定手段と、前記算術復号化処理が有効であると判定された場合は、前記第2テーブルの値が前記第1テーブルの値となるように制御し、前記算術復号化処理が有効でないと判定された場合は、前記第1テーブルの値が前記第2テーブルの値となるように制御する制御手段とを備える。これにより、2重化された発生確率テーブルの一方である第1テーブルは最新のテーブルとして、また、2重化された発生確率テーブルの他方である第2テーブルはバックアップ用のテーブルとして使用されることになるので、1マクロブロックについての算術復号化処理が有効でない場合は、そのマクロブロックについて算術復号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。
ここで、前記判定手段は、前記算術復号化処理が有効でないと判定した場合、そのマクロブロック部分のストリームデータをPCMデータに差し替えてもよい。これにより、前記算術復号化処理が有効でないマクロブロック部分のストリームデータをPCMデータに差し替えることが可能となる。
また、前記算術復号化手段は、前記算術復号化処理が有効でないと判定された場合、発生符号量を抑える制約を加えて再度そのマクロブロックについて算術復号化処理を行なってもよい。これにより、再エンコードを行なう場合は、発生確率テーブルを初期化する時間と、前記算術復号化処理が有効であったマクロブロックについて算術復号化処理をやり直す時間とを削減することが可能となる。
また、前記算術復号化装置は、さらに、前記第1テーブル及び前記第2テーブルのエントリー毎に、前記第1テーブル又は前記第2テーブルを示す第1フラグと第2フラグとを対応付けて記憶するフラグ記憶手段を備え、前記算術復号化手段は、前記第2フラグによって示されるテーブルを使用し、前記更新手段は、前記第1フラグによって示されないテーブルを更新し、前記制御手段は、前記第1フラグによって示されないテーブルが更新された場合は、前記第1フラグによって示されないテーブルを示すように前記第2フラグの値を変更し、前記算術復号化処理が有効であると判定された場合は、前記第1フラグの値を前記第2フラグに複製し、前記算術復号化処理が有効でないと判定された場合は、前記第2フラグの値を前記第1フラグに複製してもよい。これにより、第1フラグによって示されるテーブルはバックアップ用のテーブルとして、また、第2フラグによって示されるテーブルは最新のテーブルとして使用されることになる。従って、フラグの値を変えるだけでバックアップ用のテーブルと最新のテーブルとを簡便に切り替えることが可能となる。
また、前記判定手段は、前記算術復号化処理によって発生した符号量が所定量を越えていない場合は、前記算術復号化処理が有効であると判定し、前記算術復号化処理によって発生した符号量が所定量を超えている場合は、前記算術復号化処理が有効でないと判定してもよい。これにより、1マクロブロックについての算術復号化処理によって発生した符号量が所定量を超えている場合は、そのマクロブロックについて算術復号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。
なお、本発明は、このような算術符号化装置又は算術復号化装置として実現することができるだけでなく、このような算術符号化装置又は算術復号化装置が備える特徴的な手段をステップとする算術符号化方法又は算術復号化方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
以上の説明から明らかなように、本発明に係る算術符号化装置によれば、2重化された発生確率テーブルの一方である第1テーブルは最新のテーブルとして、また、2重化された発生確率テーブルの他方である第2テーブルはバックアップ用のテーブルとして使用されることになるので、1マクロブロックについての算術符号化処理が有効でない場合は、そのマクロブロックについて算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。しかも、2つのフラグを用いて制御する構成を採用すれば、フラグの値を変えるだけでバックアップ用のテーブルと最新のテーブルとを簡便に切り替えることが可能となる。
これにより、算術符号化処理が有効でないマクロブロック部分のストリームデータをPCMデータに差し替えることが可能となる。また、再エンコードを行なう場合は、発生確率テーブルを初期化する時間と、算術符号化処理が有効であったマクロブロックについて算術符号化処理をやり直す時間とを削減することが可能となる。このように処理時間が削減されると電力消費量も削減されるので、電力消費量を抑えることが必要な装置に本発明を適用すると効果的である。
同様に、本発明に係る算術復号化装置によれば、2重化された発生確率テーブルの一方である第1テーブルは最新のテーブルとして、また、2重化された発生確率テーブルの他方である第2テーブルはバックアップ用のテーブルとして使用されることになるので、1マクロブロックについての算術復号化処理が有効でない場合は、そのマクロブロックについて算術復号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。しかも、2つのフラグを用いて制御する構成を採用すれば、フラグの値を変えるだけでバックアップ用のテーブルと最新のテーブルとを簡便に切り替えることが可能となる。
これにより、算術復号化処理が有効でないマクロブロック部分のストリームデータをPCMデータに差し替えることが可能となる。また、再エンコードを行なう場合は、発生確率テーブルを初期化する時間と、算術復号化処理が有効であったマクロブロックについて算術復号化処理をやり直す時間とを削減することが可能となる。このように処理時間が削減されると電力消費量も削減されるので、電力消費量を抑えることが必要な装置に本発明を適用すると効果的である。
以下、本発明の実施の形態について図面を用いて詳細に説明する。
(実施の形態1)
図1は、本発明の概要を説明するための図である。既に説明した通り、従来技術によると、マクロブロック#5についての発生符号量が制限値を超えている場合は、そのマクロブロック#5について算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことができないので、マクロブロック#5部分のストリームデータをPCMデータに差し替えることはできない。また、マクロブロック#5について再エンコードを行なう場合は、図14(B)に示されるように、発生確率テーブルを初期化したうえで、マクロブロック#1から順に算術符号化処理をやり直さなければならない。それに対して、本発明では、図1(B)に示されるように、マクロブロック#5についての発生符号量が制限値を超えている場合でも、そのマクロブロック#5について算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことができる。
図2は、本発明の実施の形態1における算術符号化装置10の構成図である。この算術符号化装置10は、発生確率テーブルを使用して算術符号化処理を行なう装置であって、解析部11と、算術符号化部12と、判定部13と、初期化部14と、テーブル管理部15と、フラグ管理部16と、記憶部17とを備えている。ここでは、2値化部については図示を省略している。2値化部は、解析部11の前段にあればよく、算術符号化装置10内にあっても算術符号化装置10外にあってもよい。
解析部11は、2値化部からの入力信号を解析する。そして、入力信号にスライスの先頭が現れた場合はその旨を初期化部14に出力し、入力信号にマクロブロックの終端が現れた場合はその旨をフラグ管理部16に出力する。なお、2値化部からの入力信号は、解析部11を介して(又は、解析部11を介すことなく直接)算術符号化部12に入力される。
記憶部17は、本発明に係るテーブル記憶手段及びフラグ記憶手段の一例であり、例えばRAM(Random Access Memory)である。記憶部17は、テーブル0及びテーブル1のエントリー毎に第1フラグと第2フラグとを対応付けて記憶している。テーブル0は、本発明に係る第1テーブル又は第2テーブルの一例であり、2重化された発生確率テーブルの一方である。テーブル1は、本発明に係る第1テーブル又は第2テーブルの一例であり、2重化された発生確率テーブルの他方である。第1フラグは、テーブル0又はテーブル1を示すフラグである。第1フラグの値が0である場合、その第1フラグはテーブル0を示していることになり、第1フラグの値が1である場合、その第1フラグはテーブル1を示していることになる。同様に、第2フラグは、テーブル0又はテーブル1を示すフラグである。第2フラグの値が0である場合、その第2フラグはテーブル0を示していることになり、第2フラグの値が1である場合、その第2フラグはテーブル1を示していることになる。
初期化部14は、本発明に係る初期化手段の一例であり、テーブル0とテーブル1とをスライス単位に初期化する。初期化部14の機能は、2重化されたテーブル0及びテーブル1を初期化する点を除き、従来と同様である。なお、初期化部14がテーブル0及びテーブル1を初期化する際にはテーブル管理部15を介すことになる。
算術符号化部12は、本発明に係る算術符号化手段の一例であり、第2フラグによって示されるテーブルを使用して算術符号化処理を行なう。例えば、第2フラグの値が0である場合はテーブル0を使用し、第2フラグの値が1である場合はテーブル1を使用する。算術符号化部12の機能は、テーブル0又はテーブル1を使用して算術符号化処理を行なう点を除き、従来と同様である。なお、算術符号化部12がテーブル0又はテーブル1を使用する際にはテーブル管理部15を介すことになる。
テーブル管理部15は、本発明に係る更新手段の一例であり、第1フラグによって示されないテーブル、言い換えると、第1フラグによって示されるテーブルと逆のテーブルを算術符号化処理の結果に基づいて更新する。例えば、第1フラグの値が0である場合はテーブル1を更新し、第1フラグの値が1である場合はテーブル0を更新する。テーブル管理部15の機能は、テーブル0又はテーブル1を更新する点を除き、従来と同様である。
判定部13は、本発明に係る判定手段の一例であり、スライスに含まれる1マクロブロックについて算術符号化処理が完了する度に、そのマクロブロックについての算術符号化処理が有効であるか否かを判定する。例えば、算術符号化処理によって発生した符号量が所定量を越えていない場合は、そのマクロブロックについての算術符号化処理が有効であると判定し、算術符号化処理によって発生した符号量が所定量を超えている場合は、そのマクロブロックについての算術符号化処理が有効でないと判定する。ここでいう所定量とは、H.264/AVCにおいて規定されている制限値を意味する。判定部13は、発生符号量が制限値を超えているか否かを示す判定結果信号をフラグ管理部16に出力する。また、後述する廃棄指示信号をフラグ管理部16から受けた場合は、当該マクロブロックについての算術符号化処理の結果を廃棄する。
フラグ管理部16は、本発明に係る制御手段の一例であり、第1フラグによって示されないテーブルが更新された場合は、第1フラグによって示されないテーブルを示すように第2フラグの値を変更する。また、発生符号量が制限値を超えていない旨の判定結果信号を判定部13から受けた場合など、算術符号化処理が有効であると判定された場合は、第1フラグの値を第2フラグに複製する。他方、発生符号量が制限値を超えている旨の判定結果信号を判定部13から受けた場合など、算術符号化処理が有効でないと判定された場合は、第2フラグの値を第1フラグに複製する。そして、このように第1フラグの値を第2フラグに複製した場合は、当該マクロブロックについての算術符号化処理の結果を廃棄する旨の信号(廃棄指示信号)を判定部13に出力する。
図3は、発生確率テーブル内のコンテキスト配置を示す図である。発生確率テーブルは、コンテキストとその発生確率とを対応付けたテーブルである。本発明では、発生確率テーブルを2重化し、一方をテーブル0、他方をテーブル1と呼んでいる。図中に示す文字はシンタックス要素を示しており、図中の1レコードは1ビットに相当する。「mb_skip_run」や「mb_skip_flag」等は1ビットのシンタックス要素であるため1レコード内に表記し、「mb_type」は4ビットのシンタックス要素であるため4レコード内に表記している。コンテキスト(エントリー)は、シンタックス要素を構成する各符号に対応する情報であるため、図中の1レコードは1コンテキストに相当することにもなる。なお、この図3に示されるコンテキストの配置は単なる一例であって、実際はこのような配置にはなっていない。
図4は、算術符号化装置10が行なう処理の手順を示すフローチャートである。以下、算術符号化の基本単位である1スライスについての動作について説明する。
まず、入力信号にスライスの先頭が現れた場合、初期化部14は、テーブル0とテーブル1とを初期化する(ステップS1)。その後、当該スライス内のマクロブロック数だけ、ステップS2〜S8の処理が繰り返される。
すなわち、算術符号化部12は、発生確率テーブルを参照(使用)する必要が生じた場合、第2フラグによって示されるテーブルを参照する(ステップS2)。そして、参照した発生確率値を使用して算術符号化処理を行ない(ステップS3)、その算術符号化処理の結果に基づいて、第1フラグによって示されないテーブルを更新する(ステップS4)。前記した通り、テーブル参照(ステップS2)及びテーブル更新(ステップS4)はテーブル管理部15を介して行なわれる。その後、フラグ管理部16は、第1フラグによって示されないテーブルを示すように第2フラグの値を変更する(ステップS5)。
全てのコンテキスト数だけステップS2〜S5の処理が繰り返されると、判定部13は、当該マクロブロックについての発生符号量が制限値を超えているか否かを判定する(ステップS6)。フラグ管理部16は、発生符号量が制限値を超えていないと判定された場合は、第2フラグの値を第1フラグに複製する(ステップS7)。他方、発生符号量が制限値を越えていると判定された場合は、第1フラグの値を第2フラグに複製する(ステップS8)。
以上の処理が全てのスライスについて完了すると、全体の処理が終了する。
なお、発生符号量が制限値を越えていると判定された場合(ステップS6)、判定部13は、そのマクロブロック部分のストリームデータをPCMデータに差し替える。これにより、発生符号量が制限値を超えているマクロブロック部分のストリームデータをPCMデータに差し替えることが可能となる。発生符号量が制限値を越えていると判定された場合(ステップS6)、算術符号化部12は、発生符号量を抑える制約を加えたうえで、そのマクロブロックについて算術符号化部12が再エンコードを行なうようにしてもよい。この場合は、発生確率テーブルを初期化する時間と、発生符号量が制限値を超えていなかったマクロブロックについて算術符号化処理をやり直す時間とを削減することが可能となる。
ここで、第1フラグによって示されるテーブルは、算術符号化処理中のマクロブロックについて算術符号化処理を行なう直前の発生確率テーブル、すなわちバックアップ用のテーブルと考えることができる。また、第2フラグによって示されるテーブルは、算術符号化処理中に更新される発生確率テーブル、すなわち最新のテーブルと考えることができる。
そこで、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわち第2フラグによって示されるテーブルを参照するようにしている(ステップS2)。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわち第1フラグによって示されないテーブルを更新するようにしている(ステップS4)。
そして、このようにバックアップ用のテーブルでないテーブルが更新された場合は、バックアップ用のテーブルでないテーブルを示すように第2フラグの値を変更するようにしている(ステップS5)。バックアップ用のテーブルでないテーブルを示すように第2フラグの値を変更すれば、それ以降は、バックアップ用のテーブルでないテーブルを最新のテーブルと考えることができるからである。
また、発生符号量が制限値を超えていない場合は、第2フラグの値を第1フラグに複製するようにしている(ステップS7)。第2フラグの値を第1フラグに複製すれば、最新のテーブルの値をバックアップ用のテーブルに複製した場合と同じ効果を得ることができるからである。他方、発生符号量が制限値を越えている場合は、第1フラグの値を第2フラグに複製するようにしている(ステップS8)。第1フラグの値を第2フラグに複製すれば、バックアップ用のテーブルの値を最新のテーブルに複製した場合と同じ効果を得ることができるからである。
図5は、テーブル参照とテーブル更新を詳細に説明するための図である。以下、テーブル更新前のフラグの値と、テーブル参照更新態様と、テーブル更新後のフラグの値とを具体的に説明する。テーブル更新前における第1フラグの値と第2フラグの値の組み合わせとしては、(第1フラグの値,第2フラグの値)と表記すると、(0,0)(0,1)(1,0)(1,1)の4通りが存在する。そこで、ここでは、テーブル更新前における第1フラグの値と第2フラグの値の組み合わせが(0,0)の場合をケース1、(0,1)の場合をケース2、(1,0)の場合をケース3、(1,1)の場合をケース4という。
ケース1では、テーブル更新前における第1フラグの値と第2フラグの値は(0,0)である。第1フラグの値が0であるということは、バックアップ用のテーブルはテーブル0であることを意味している。また、第2フラグの値が0であるということは、最新のテーブルはテーブル0であることを意味している。そこで、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル0を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル1を更新することになる。そして、このようにテーブル1が更新された場合は、テーブル1を示すように第2フラグの値を変更する。その結果、テーブル更新後における第1フラグの値と第2フラグの値は(0,1)となる。
ケース2では、テーブル更新前における第1フラグの値と第2フラグの値は(0,1)である。第1フラグの値が0であるということは、バックアップ用のテーブルはテーブル0であることを意味している。また、第2フラグの値が1であるということは、最新のテーブルはテーブル1であることを意味している。そこで、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル1を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル1を更新することになる。そして、このようにテーブル1が更新された場合は、テーブル1を示すように第2フラグの値を変更する。その結果、テーブル更新後における第1フラグの値と第2フラグの値は(0,1)となる。なお、このケース2では、第2フラグの値は元々1であるため、実質的には第2フラグの値は変わらない。
ケース3では、テーブル更新前における第1フラグの値と第2フラグの値は(1,0)である。第1フラグの値が1であるということは、バックアップ用のテーブルはテーブル1であることを意味している。また、第2フラグの値が0であるということは、最新のテーブルはテーブル0であることを意味している。そこで、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル0を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル0を更新することになる。そして、このようにテーブル0が更新された場合は、テーブル0を示すように第2フラグの値を変更する。その結果、テーブル更新後における第1フラグの値と第2フラグの値は(1,0)となる。なお、このケース3では、第2フラグの値は元々0であるため、実質的には第2フラグの値は変わらない。
ケース4では、テーブル更新前における第1フラグの値と第2フラグの値は(1,1)である。第1フラグの値が1であるということは、バックアップ用のテーブルはテーブル1であることを意味している。また、第2フラグの値が1であるということは、最新のテーブルはテーブル1であることを意味している。そこで、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル1を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル0を更新することになる。そして、このようにテーブル0が更新された場合は、テーブル0を示すように第2フラグの値を変更する。その結果、テーブル更新後における第1フラグの値と第2フラグの値は(1,0)となる。
図6は、フラグの値を複製する処理を詳細に説明するための図である。前記したように、発生符号量が制限値を超えていないと判定された場合は、第2フラグの値が第1フラグに複製され、発生符号量が制限値を越えていると判定された場合は、第1フラグの値が第2フラグに複製される。図6(A)では、第2フラグの値が第1フラグに複製される場合を想定し、その複製前後の第1フラグの値と第2フラグの値を示している。図6(B)では、第1フラグの値が第2フラグに複製される場合を想定し、その複製前後の第1フラグの値と第2フラグの値を示している。複製前における第1フラグの値と第2フラグの値の組み合わせとしては(0,0)(0,1)(1,0)(1,1)の4通りが存在するので、ここでは、その組み合わせが(0,0)の場合をケース1、(0,1)の場合をケース2、(1,0)の場合をケース3、(1,1)の場合をケース4という。
まず、図6(A)を用いて第2フラグの値が第1フラグに複製される場合を説明する。
ケース1では、複製前における第1フラグの値と第2フラグの値は(0,0)である。第1フラグの値が0であるということは、バックアップ用のテーブルはテーブル0であることを意味している。また、第2フラグの値が0であるということは、最新のテーブルはテーブル0であることを意味している。この状態で発生符号量が制限値を超えていないと判定された場合は、第2フラグの値が第1フラグに複製される。その結果、複製後における第1フラグの値と第2フラグの値は(0,0)となる。なお、このケース1では、第1フラグの値は元々0であるため、実質的には第1フラグの値は変わらない。以降、引き続きテーブル0をバックアップ用のテーブルとして、また、引き続きテーブル0を最新のテーブルとして、次のマクロブロックが処理されることになる。
ケース2では、複製前における第1フラグの値と第2フラグの値は(0,1)である。第1フラグの値が0であるということは、バックアップ用のテーブルはテーブル0であることを意味している。また、第2フラグの値が1であるということは、最新のテーブルはテーブル1であることを意味している。この状態で発生符号量が制限値を超えていないと判定された場合は、第2フラグの値が第1フラグに複製される。その結果、複製後における第1フラグの値と第2フラグの値は(1,1)となる。以降、新たにテーブル1をバックアップ用のテーブルとして、また、引き続きテーブル1を最新のテーブルとして、次のマクロブロックが処理されることになる。
ケース3では、複製前における第1フラグの値と第2フラグの値は(1,0)である。第1フラグの値が1であるということは、バックアップ用のテーブルはテーブル1であることを意味している。また、第2フラグの値が0であるということは、最新のテーブルはテーブル0であることを意味している。この状態で発生符号量が制限値を超えていないと判定された場合は、第2フラグの値が第1フラグに複製される。その結果、複製後における第1フラグの値と第2フラグの値は(0,0)となる。以降、新たにテーブル0をバックアップ用のテーブルとして、また、引き続きテーブル0を最新のテーブルとして、次のマクロブロックが処理されることになる。
ケース4では、複製前における第1フラグの値と第2フラグの値は(1,1)である。第1フラグの値が1であるということは、バックアップ用のテーブルはテーブル1であることを意味している。また、第2フラグの値が1であるということは、最新のテーブルはテーブル1であることを意味している。この状態で発生符号量が制限値を超えていないと判定された場合は、第2フラグの値が第1フラグに複製される。その結果、複製後における第1フラグの値と第2フラグの値は(1,1)となる。なお、このケース4では、第1フラグの値は元々1であるため、実質的には第1フラグの値は変わらない。以降、引き続きテーブル1をバックアップ用のテーブルとして、また、引き続きテーブル1を最新のテーブルとして、次のマクロブロックが処理されることになる。
次に、図6(B)を用いて第1フラグの値が第2フラグに複製される場合を説明する。
ケース1では、複製前における第1フラグの値と第2フラグの値は(0,0)である。第1フラグの値が0であるということは、バックアップ用のテーブルはテーブル0であることを意味している。また、第2フラグの値が0であるということは、最新のテーブルはテーブル0であることを意味している。この状態で発生符号量が制限値を超えていると判定された場合は、第1フラグの値が第2フラグに複製される。その結果、複製後における第1フラグの値と第2フラグの値は(0,0)となる。なお、このケース1では、第2フラグの値は元々0であるため、実質的には第2フラグの値は変わらない。以降、引き続きテーブル0をバックアップ用のテーブルとして、また、引き続きテーブル0を最新のテーブルとして、次のマクロブロックが処理されることになる。
ケース2では、複製前における第1フラグの値と第2フラグの値は(0,1)である。第1フラグの値が0であるということは、バックアップ用のテーブルはテーブル0であることを意味している。また、第2フラグの値が1であるということは、最新のテーブルはテーブル1であることを意味している。この状態で発生符号量が制限値を超えていると判定された場合は、第1フラグの値が第2フラグに複製される。その結果、複製後における第1フラグの値と第2フラグの値は(0,0)となる。以降、引き続きテーブル0をバックアップ用のテーブルとして、また、新たにテーブル0を最新のテーブルとして、次のマクロブロックが処理されることになる。
ケース3では、複製前における第1フラグの値と第2フラグの値は(1,0)である。第1フラグの値が1であるということは、バックアップ用のテーブルはテーブル1であることを意味している。また、第2フラグの値が0であるということは、最新のテーブルはテーブル0であることを意味している。この状態で発生符号量が制限値を超えていると判定された場合は、第1フラグの値が第2フラグに複製される。その結果、複製後における第1フラグの値と第2フラグの値は(1,1)となる。以降、引き続きテーブル1をバックアップ用のテーブルとして、また、新たにテーブル1を最新のテーブルとして、次のマクロブロックが処理されることになる。
ケース4では、複製前における第1フラグの値と第2フラグの値は(1,1)である。第1フラグの値が1であるということは、バックアップ用のテーブルはテーブル1であることを意味している。また、第2フラグの値が1であるということは、最新のテーブルはテーブル1であることを意味している。この状態で発生符号量が制限値を超えていると判定された場合は、第1フラグの値が第2フラグに複製される。その結果、複製後における第1フラグの値と第2フラグの値は(1,1)となる。なお、このケース4では、第2フラグの値は元々1であるため、実質的には第2フラグの値は変わらない。以降、引き続きテーブル1をバックアップ用のテーブルとして、また、引き続きテーブル1を最新のテーブルとして、次のマクロブロックが処理されることになる。
図7は、フラグとテーブルの状態遷移を示す図である。ここでは、発生符号量が制限値を超えていないと判定された場合の状態遷移について説明する。
図7(A)は、テーブル0及びテーブル1が初期化された直後の状態を示している。テーブル0及びテーブル1が初期化された直後の状態では、第1フラグの値と第2フラグの値は(0,0)である。このケースは、図5でいうケース1に相当する。すなわち、第1フラグの値が0であるということは、バックアップ用のテーブルはテーブル0であることを意味している。また、第2フラグの値が0であるということは、最新のテーブルはテーブル0であることを意味している。ここでは図示を省略しているが、テーブル0及びテーブル1の同一エントリーには、同一の発生確率値(初期値)が設定されている。
図7(B)は、テーブル0及びテーブル1が初期化された後、テーブル参照とテーブル更新とが行なわれた直後の状態を示している。テーブル0及びテーブル1が初期化された直後の状態では、バックアップ用のテーブルはテーブル0であり、最新のテーブルはテーブル0である。そこで、図5のケース1で説明した通り、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル0を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル1を更新することになる。そして、このようにテーブル1が更新された場合は、テーブル1を示すように第2フラグの値を変更する。その結果、テーブル更新後における第1フラグの値と第2フラグの値は(0,1)となる。
ここでは、先頭のエントリーが参照された結果、先頭のエントリーが更新される状態を示しているが、参照されるエントリーと更新されるエントリーは同一であるとは限らない。例えば、先頭のエントリーが参照された結果、先頭のエントリーと先頭から2番目のエントリーとが更新される場合もある。このようなテーブル参照とテーブル更新とは、全てのコンテキスト数だけ繰り返されることになるが、ここでは簡単のため1回ずつ行なわれたものと仮定して説明する。
図7(C)は、テーブル参照とテーブル更新とが行なわれた後、発生符号量が制限値を超えていないと判定された直後の状態を示している。テーブル参照とテーブル更新とが行なわれた直後の状態では、バックアップ用のテーブルはテーブル0であり、最新のテーブルはテーブル1である。このケースは、図6(A)でいうケース2に相当する。すなわち、発生符号量が制限値を超えていないと判定された場合は、第2フラグの値が第1フラグに複製される。その結果、複製後における第1フラグの値と第2フラグの値は(1,1)となる。以降、新たにテーブル1をバックアップ用のテーブルとして、また、引き続きテーブル1を最新のテーブルとして、次のマクロブロックが処理されることになる。
図7(D)は、第2フラグの値が第1フラグに複製された後、テーブル参照とテーブル更新とが行なわれた直後の状態を示している。第2フラグの値が第1フラグに複製された直後の状態では、バックアップ用のテーブルはテーブル1であり、最新のテーブルはテーブル1である。そこで、図5のケース4で説明した通り、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル1を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル0を更新することになる。そして、このようにテーブル0が更新された場合は、テーブル0を示すように第2フラグの値を変更する。その結果、テーブル更新後における第1フラグの値と第2フラグの値は(1,0)となる。
図8は、フラグとテーブルの状態遷移を示す図である。ここでは、発生符号量が制限値を超えていると判定された場合の状態遷移について説明する。
図8(A)の内容は、図7(A)と同じである。すなわち、テーブル0及びテーブル1が初期化された直後の状態を示している。第1フラグの値が0であるということは、バックアップ用のテーブルはテーブル0であることを意味している。また、第2フラグの値が0であるということは、最新のテーブルはテーブル0であることを意味している。
図8(B)の内容は、図7(B)と同じである。すなわち、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル0を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル1を更新することになる。そして、このようにテーブル1が更新された場合は、テーブル1を示すように第2フラグの値を変更する。その結果、テーブル更新後における第1フラグの値と第2フラグの値は(0,1)となる。
図8(C)は、テーブル参照とテーブル更新とが行なわれた後、発生符号量が制限値を超えていると判定された直後の状態を示している。テーブル参照とテーブル更新とが行なわれた直後の状態では、バックアップ用のテーブルはテーブル0であり、最新のテーブルはテーブル1である。このケースは、図6(B)でいうケース2に相当する。すなわち、発生符号量が制限値を超えていると判定された場合は、第1フラグの値が第2フラグに複製される。その結果、複製後における第1フラグの値と第2フラグの値は(0,0)となる。以降、引き続きテーブル0をバックアップ用のテーブルとして、また、新たにテーブル0を最新のテーブルとして、次のマクロブロックが処理されることになる。
図8(D)は、第1フラグの値が第2フラグに複製された後、テーブル参照とテーブル更新とが行なわれた直後の状態を示している。第1フラグの値が第2フラグに複製された直後の状態では、バックアップ用のテーブルはテーブル0であり、最新のテーブルはテーブル0である。そこで、図5のケース1で説明した通り、算術符号化処理中にテーブルを参照する場合は、最新のテーブル、すなわちテーブル0を参照することになる。また、算術符号化処理中にテーブル更新する場合は、バックアップ用のテーブルでないテーブル、すなわちテーブル1を更新することになる。そして、このようにテーブル1が更新された場合は、テーブル1を示すように第2フラグの値を変更する。その結果、テーブル更新後における第1フラグの値と第2フラグの値は(0,1)となる。
以上のように、本発明に係る算術符号化装置によれば、第1フラグによって示されるテーブルはバックアップ用のテーブルとして、また、第2フラグによって示されるテーブルは最新のテーブルとして使用されることになるので、1マクロブロックについての算術符号化処理によって発生した符号量が制限値を超えている場合は、そのマクロブロックについて算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。しかも、2つのフラグを用いて制御する構成を採用しているので、フラグの値を変えるだけでバックアップ用のテーブルと最新のテーブルとを簡便に切り替えることが可能である。
これにより、発生符号量が制限値を超えているマクロブロック部分のストリームデータをPCMデータに差し替えることが可能となる。また、再エンコードを行なう場合は、発生確率テーブルを初期化する時間と、発生符号量が制限値を超えていなかったマクロブロックについて算術符号化処理をやり直す時間とを削減することが可能となる。このように処理時間が削減されると電力消費量も削減されるので、電力消費量を抑えることが必要な装置に本発明を適用すると効果的である。
なお、ここでは、第1フラグと第2フラグという2つのフラグを用いて制御することとしているが、本発明はこれに限定されるものではない。すなわち、テーブル0を最新のテーブルとして、また、テーブル1をバックアップ用のテーブルとして固定的に使用する構成を採用すれば、フラグを用いることなく同様の効果を得ることができる。ただし、このような構成を採用した場合は、第1フラグと第2フラグとの間でフラグの値を相互に複製する処理に代えて、テーブル0とテーブル1との間でテーブルの値を相互に複製する処理が必要となる。すなわち、発生符号量が制限値を超えている場合は、バックアップ用のテーブルであるテーブル1の値を最新のテーブルであるテーブル0に複製する処理が必要となる。他方、発生符号量が制限値を超えていない場合は、最新のテーブルであるテーブル0の値をバックアップ用のテーブルであるテーブル1に複製する処理が必要となる。このようにテーブルの値を複製するよりもフラグの値を複製する方が処理速度の面で好ましいのはいうまでもない。
また、ここでは、発生符号量が制限値を超えている場合に本発明の効果が得られる旨の説明をしたが、本発明はこれに限定されるものではない。すなわち、1マクロブロックについての算術符号化処理が有効でない場合であれば、前記と同様の効果を得ることができる。
また、図4では、第2フラグの値を変更するステップS5を全てのコンテキスト数だけ繰り返すこととしているが、本発明はこれに限定されるものではない。すなわち、第2フラグの値が変更されるタイミングは、図9に示されるように、判定処理が行なわれた直後と、判定処理が行なわれた後にテーブル更新が行なわれた直後だけである。判定処理が行なわれた直後に第2フラグの値が変わるのは、ステップS8の複製が原因でありステップS5とは関係がない。従って、第2フラグの値を変更するステップS5は、判定処理が行なわれた後にテーブル更新が行なわれた直後だけ実行するようにしてもよい。
(実施の形態2)
前記実施の形態1では、CABACを用いてデータを符号化する算術符号化装置に本発明を適用した場合ついて説明したが、本実施の形態2では、CABACを用いて符号化されたデータを復号化する算術復号化装置に本発明を適用した場合について説明する。
図10は、本発明の実施の形態における算術復号化装置20の構成図である。この算術復号化装置20は、発生確率テーブルを使用して算術復号化処理を行なう装置であって、解析部21と、算術復号化部22と、判定部23と、初期化部24と、テーブル管理部25と、フラグ管理部26と、記憶部27とを備えている。以下に説明するように、本算術復号化装置20の構成は、算術符号化をするか算術復号化をするかという点を除き、前記実施の形態1における算術符号化装置10と基本的に同じである。
解析部21は、算術符号化された入力信号を解析する。そして、入力信号にスライスの先頭が現れた場合はその旨を初期化部24に出力し、入力信号にマクロブロックの終端が現れた場合はその旨をフラグ管理部26に出力する。なお、算術符号化された入力信号は、解析部21を介して(又は、解析部21を介すことなく直接)算術復号化部22に入力される。
記憶部27は、本発明に係るテーブル記憶手段及びフラグ記憶手段の一例であり、例えばRAMである。記憶部27は、テーブル0及びテーブル1のエントリー毎に第1フラグと第2フラグとを対応付けて記憶している。
初期化部24は、本発明に係る初期化手段の一例であり、テーブル0とテーブル1とをスライス単位に初期化する。なお、初期化部24がテーブル0及びテーブル1を初期化する際にはテーブル管理部25を介すことになる。
算術復号化部22は、本発明に係る算術復号化手段の一例であり、第2フラグによって示されるテーブルを使用して算術復号化処理を行なう。なお、算術復号化部22がテーブル0又はテーブル1を使用する際にはテーブル管理部25を介すことになる。
テーブル管理部25は、本発明に係る更新手段の一例であり、第1フラグによって示されないテーブル、言い換えると、第1フラグによって示されるテーブルと逆のテーブルを算術復号化処理の結果に基づいて更新する。
判定部23は、本発明に係る判定手段の一例であり、スライスに含まれる1マクロブロックについて算術復号化処理が完了する度に、そのマクロブロックについての算術復号化処理が有効であるか否かを判定する。例えば、算術復号化処理によって発生した符号量が所定量を越えていない場合は、そのマクロブロックについての算術復号化処理が有効であると判定し、算術復号化処理によって発生した符号量が所定量を超えている場合は、そのマクロブロックについての算術復号化処理が有効でないと判定する。判定部23は、発生符号量が制限値を超えているか否かを示す判定結果信号をフラグ管理部26に出力する。また、廃棄指示信号をフラグ管理部26から受けた場合は、当該マクロブロックについての算術復号化処理の結果を廃棄する。
フラグ管理部26は、本発明に係る制御手段の一例であり、第1フラグによって示されないテーブルが更新された場合は、第1フラグによって示されないテーブルを示すように第2フラグの値を変更する。また、発生符号量が制限値を超えていない旨の判定結果信号を判定部23から受けた場合など、算術復号化処理が有効であると判定された場合は、第1フラグの値を第2フラグに複製する。他方、発生符号量が制限値を超えている旨の判定結果信号を判定部23から受けた場合など、算術復号化処理が有効でないと判定された場合は、第2フラグの値を第1フラグに複製する。そして、このように第1フラグの値を第2フラグに複製した場合は、当該マクロブロックについての廃棄指示信号を判定部23に出力する。
以上のように、本発明に係る算術復号化装置によれば、2重化された発生確率テーブルの一方である第1テーブルは最新のテーブルとして、また、2重化された発生確率テーブルの他方である第2テーブルはバックアップ用のテーブルとして使用されることになるので、1マクロブロックについての算術復号化処理が有効でない場合は、そのマクロブロックについて算術復号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが可能となる。しかも、2つのフラグを用いて制御する構成を採用しているので、フラグの値を変えるだけでバックアップ用のテーブルと最新のテーブルとを簡便に切り替えることが可能である。
これにより、算術復号化処理が有効でないマクロブロック部分のストリームデータをPCMデータに差し替えることが可能となる。また、再エンコードを行なう場合は、発生確率テーブルを初期化する時間と、算術復号化処理が有効であったマクロブロックについて算術復号化処理をやり直す時間とを削減することが可能となる。このように処理時間が削減されると電力消費量も削減されるので、電力消費量を抑えることが必要な装置に本発明を適用すると効果的である。
本発明は、1マクロブロックについての算術符号化処理が有効でない場合は、そのマクロブロックについて算術符号化処理を行なう直前の状態に発生確率テーブルの値を戻すことが必要な算術符号化装置等の用途に適用することができる。
本発明の概要を説明するための図 本発明の実施の形態1における算術符号化装置の構成図 発生確率テーブル内のコンテキスト配置を示す図 算術符号化装置が行なう処理の手順を示すフローチャート テーブル参照とテーブル更新を詳細に説明するための図 フラグの値を複製する処理を詳細に説明するための図 フラグとテーブルの状態遷移を示す図 フラグとテーブルの状態遷移を示す図 第1フラグの値と第2フラグの値との組み合わせの遷移を示す図 本発明の実施の形態2における算術復号化装置の構成図 CABACを用いた従来の2値算術符号化装置の構成図 CABACを用いた2値算術符号化の概念図 スライスが符号化の基本単位となっている様子を示す図 1スライスに含まれるマクロブロック毎の発生符号量を示す図
符号の説明
10 算術符号化装置
11 算術符号化装置の解析部
12 算術符号化装置の算術符号化部
13 算術符号化装置の判定部
14 算術符号化装置の初期化部
15 算術符号化装置のテーブル管理部
16 算術符号化装置のフラグ管理部
17 算術符号化装置の記憶部
20 算術復号化装置
21 算術復号化装置の解析部
22 算術復号化装置の算術符号化部
23 算術復号化装置の判定部
24 算術復号化装置の初期化部
25 算術復号化装置のテーブル管理部
26 算術復号化装置のフラグ管理部
27 算術復号化装置の記憶部

Claims (14)

  1. 発生確率テーブルを使用して算術符号化処理を行なう算術符号化装置であって、
    2重化された前記発生確率テーブルの一方である第1テーブルと、2重化された前記発生確率テーブルの他方である第2テーブルとを記憶するテーブル記憶手段と、
    前記第1テーブルと前記第2テーブルとをスライス単位に初期化する初期化手段と、
    前記第1テーブルを使用して前記算術符号化処理を行なう算術符号化手段と、
    前記算術符号化処理の結果に基づいて前記第1テーブルを更新する更新手段と、
    前記スライスに含まれる1マクロブロックについて前記算術符号化処理が完了する度に、そのマクロブロックについての算術符号化処理が有効であるか否かを判定する判定手段と、
    前記算術符号化処理が有効であると判定された場合は、前記第2テーブルの値が前記第1テーブルの値となるように制御し、前記算術符号化処理が有効でないと判定された場合は、前記第1テーブルの値が前記第2テーブルの値となるように制御する制御手段と
    を備えることを特徴とする算術符号化装置。
  2. 前記判定手段は、前記算術符号化処理が有効でないと判定した場合、そのマクロブロック部分のストリームデータをPCM(Pulse Code Modulation)データに差し替える
    ことを特徴とする請求項1に記載の算術符号化装置。
  3. 前記算術符号化手段は、前記算術符号化処理が有効でないと判定された場合、発生符号量を抑える制約を加えて再度そのマクロブロックについて算術符号化処理を行なう
    ことを特徴とする請求項1に記載の算術符号化装置。
  4. 前記算術符号化装置は、さらに、
    前記第1テーブル及び前記第2テーブルのエントリー毎に、前記第1テーブル又は前記第2テーブルを示す第1フラグと第2フラグとを対応付けて記憶するフラグ記憶手段を備え、
    前記算術符号化手段は、前記第2フラグによって示されるテーブルを使用し、
    前記更新手段は、前記第1フラグによって示されないテーブルを更新し、
    前記制御手段は、前記第1フラグによって示されないテーブルが更新された場合は、前記第1フラグによって示されないテーブルを示すように前記第2フラグの値を変更し、前記算術符号化処理が有効であると判定された場合は、前記第1フラグの値を前記第2フラグに複製し、前記算術符号化処理が有効でないと判定された場合は、前記第2フラグの値を前記第1フラグに複製する
    ことを特徴とする請求項1に記載の算術符号化装置。
  5. 前記判定手段は、前記算術符号化処理によって発生した符号量が所定量を越えていない場合は、前記算術符号化処理が有効であると判定し、前記算術符号化処理によって発生した符号量が所定量を超えている場合は、前記算術符号化処理が有効でないと判定する
    ことを特徴とする請求項1に記載の算術符号化装置。
  6. 発生確率テーブルを使用して算術復号化処理を行なう算術復号化装置であって、
    2重化された前記発生確率テーブルの一方である第1テーブルと、2重化された前記発生確率テーブルの他方である第2テーブルとを記憶するテーブル記憶手段と、
    前記第1テーブルと前記第2テーブルとをスライス単位に初期化する初期化手段と、
    前記第1テーブルを使用して前記算術復号化処理を行なう算術復号化手段と、
    前記算術復号化処理の結果に基づいて前記第1テーブルを更新する更新手段と、
    前記スライスに含まれる1マクロブロックについて前記算術復号化処理が完了する度に、そのマクロブロックについての算術復号化処理が有効であるか否かを判定する判定手段と、
    前記算術復号化処理が有効であると判定された場合は、前記第2テーブルの値が前記第1テーブルの値となるように制御し、前記算術復号化処理が有効でないと判定された場合は、前記第1テーブルの値が前記第2テーブルの値となるように制御する制御手段と
    を備えることを特徴とする算術復号化装置。
  7. 前記判定手段は、前記算術復号化処理が有効でないと判定した場合、そのマクロブロック部分のストリームデータをPCM(Pulse Code Modulation)データに差し替える
    ことを特徴とする請求項6に記載の算術復号化装置。
  8. 前記算術復号化手段は、前記算術復号化処理が有効でないと判定された場合、発生符号量を抑える制約を加えて再度そのマクロブロックについて算術復号化処理を行なう
    ことを特徴とする請求項6に記載の算術復号化装置。
  9. 前記算術復号化装置は、さらに、
    前記第1テーブル及び前記第2テーブルのエントリー毎に、前記第1テーブル又は前記第2テーブルを示す第1フラグと第2フラグとを対応付けて記憶するフラグ記憶手段を備え、
    前記算術復号化手段は、前記第2フラグによって示されるテーブルを使用し、
    前記更新手段は、前記第1フラグによって示されないテーブルを更新し、
    前記制御手段は、前記第1フラグによって示されないテーブルが更新された場合は、前記第1フラグによって示されないテーブルを示すように前記第2フラグの値を変更し、前記算術復号化処理が有効であると判定された場合は、前記第1フラグの値を前記第2フラグに複製し、前記算術復号化処理が有効でないと判定された場合は、前記第2フラグの値を前記第1フラグに複製する
    ことを特徴とする請求項6に記載の算術復号化装置。
  10. 前記判定手段は、前記算術復号化処理によって発生した符号量が所定量を越えていない場合は、前記算術復号化処理が有効であると判定し、前記算術復号化処理によって発生した符号量が所定量を超えている場合は、前記算術復号化処理が有効でないと判定する
    ことを特徴とする請求項6に記載の算術復号化装置。
  11. 発生確率テーブルを使用して算術符号化処理を行なう算術符号化方法であって、
    2重化された前記発生確率テーブルの一方である第1テーブルと、2重化された前記発生確率テーブルの他方である第2テーブルとをスライス単位に初期化する初期化ステップと、
    前記第1テーブルを使用して前記算術符号化処理を行なう算術符号化ステップと、
    前記算術符号化処理の結果に基づいて前記第1テーブルを更新する更新ステップと、
    前記スライスに含まれる1マクロブロックについて前記算術符号化処理が完了する度に、そのマクロブロックについての算術符号化処理が有効であるか否かを判定する判定ステップと、
    前記算術符号化処理が有効であると判定された場合は、前記第2テーブルの値が前記第1テーブルの値となるように制御し、前記算術符号化処理が有効でないと判定された場合は、前記第1テーブルの値が前記第2テーブルの値となるように制御する制御ステップと
    を含むことを特徴とする算術符号化方法。
  12. 発生確率テーブルを使用して算術復号化処理を行なう算術復号化方法であって、
    2重化された前記発生確率テーブルの一方である第1テーブルと、2重化された前記発生確率テーブルの他方である第2テーブルとをスライス単位に初期化する初期化ステップと、
    前記第1テーブルを使用して前記算術復号化処理を行なう算術復号化ステップと、
    前記算術復号化処理の結果に基づいて前記第1テーブルを更新する更新ステップと、
    前記スライスに含まれる1マクロブロックについて前記算術復号化処理が完了する度に、そのマクロブロックについての算術復号化処理が有効であるか否かを判定する判定ステップと、
    前記算術復号化処理が有効であると判定された場合は、前記第2テーブルの値が前記第1テーブルの値となるように制御し、前記算術復号化処理が有効でないと判定された場合は、前記第1テーブルの値が前記第2テーブルの値となるように制御する制御ステップと
    を含むことを特徴とする算術復号化方法。
  13. 発生確率テーブルを使用して算術符号化処理を行なうためのプログラムであって、
    2重化された前記発生確率テーブルの一方である第1テーブルと、2重化された前記発生確率テーブルの他方である第2テーブルとをスライス単位に初期化する初期化ステップと、
    前記第1テーブルを使用して前記算術符号化処理を行なう算術符号化ステップと、
    前記算術符号化処理の結果に基づいて前記第1テーブルを更新する更新ステップと、
    前記スライスに含まれる1マクロブロックについて前記算術符号化処理が完了する度に、そのマクロブロックについての算術符号化処理が有効であるか否かを判定する判定ステップと、
    前記算術符号化処理が有効であると判定された場合は、前記第2テーブルの値が前記第1テーブルの値となるように制御し、前記算術符号化処理が有効でないと判定された場合は、前記第1テーブルの値が前記第2テーブルの値となるように制御する制御ステップと
    をコンピュータに実行させるためのプログラム。
  14. 発生確率テーブルを使用して算術復号化処理を行なうためのプログラムであって、
    2重化された前記発生確率テーブルの一方である第1テーブルと、2重化された前記発生確率テーブルの他方である第2テーブルとをスライス単位に初期化する初期化ステップと、
    前記第1テーブルを使用して前記算術復号化処理を行なう算術復号化ステップと、
    前記算術復号化処理の結果に基づいて前記第1テーブルを更新する更新ステップと、
    前記スライスに含まれる1マクロブロックについて前記算術復号化処理が完了する度に、そのマクロブロックについての算術復号化処理が有効であるか否かを判定する判定ステップと、
    前記算術復号化処理が有効であると判定された場合は、前記第2テーブルの値が前記第1テーブルの値となるように制御し、前記算術復号化処理が有効でないと判定された場合は、前記第1テーブルの値が前記第2テーブルの値となるように制御する制御ステップと
    をコンピュータに実行させるためのプログラム。
JP2006275211A 2006-10-06 2006-10-06 算術符号化装置及び算術復号化装置 Pending JP2008098751A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006275211A JP2008098751A (ja) 2006-10-06 2006-10-06 算術符号化装置及び算術復号化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006275211A JP2008098751A (ja) 2006-10-06 2006-10-06 算術符号化装置及び算術復号化装置

Publications (1)

Publication Number Publication Date
JP2008098751A true JP2008098751A (ja) 2008-04-24

Family

ID=39381182

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006275211A Pending JP2008098751A (ja) 2006-10-06 2006-10-06 算術符号化装置及び算術復号化装置

Country Status (1)

Country Link
JP (1) JP2008098751A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013123226A (ja) * 2008-10-08 2013-06-20 Fraunhofer Ges Zur Foerderung Der Angewandten Forschung Ev 音声符号器、音声信号の符号化方法、コンピュータプログラムおよびデジタル記憶装置
US8731948B2 (en) 2008-07-11 2014-05-20 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio signal synthesizer for selectively performing different patching algorithms

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8731948B2 (en) 2008-07-11 2014-05-20 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio signal synthesizer for selectively performing different patching algorithms
US10014000B2 (en) 2008-07-11 2018-07-03 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio signal encoder and method for generating a data stream having components of an audio signal in a first frequency band, control information and spectral band replication parameters
US10522168B2 (en) 2008-07-11 2019-12-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio signal synthesizer and audio signal encoder
JP2013123226A (ja) * 2008-10-08 2013-06-20 Fraunhofer Ges Zur Foerderung Der Angewandten Forschung Ev 音声符号器、音声信号の符号化方法、コンピュータプログラムおよびデジタル記憶装置

Similar Documents

Publication Publication Date Title
KR101907043B1 (ko) 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 압축 컴퓨터 프로그램들
JP6023095B2 (ja) 画像の符号化および復号の方法、符号化および復号デバイス、ならびにそれに対応するコンピュータプログラム
US7769088B2 (en) Context adaptive binary arithmetic code decoding engine
JP5221047B2 (ja) 圧縮率の向上のために改善されたコンテキストモデル選択を使用するcabac符号化方法及び装置、並びにcabac復号化方法及び装置
JP2870515B2 (ja) 可変長符号化装置
WO2007129508A1 (ja) 動画像処理方法、動画像処理方法のプログラム、動画像処理方法のプログラムを記録した記録媒体及び動画像処理装置
US7365660B2 (en) Method and device for decoding syntax element in CABAC decoder
KR100717055B1 (ko) Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치
CN107105249B (zh) 图像量化参数解码方法
JP2008118304A (ja) 復号装置及び復号方法
JP2008098751A (ja) 算術符号化装置及び算術復号化装置
JP2005217871A (ja) 算術復号化装置および算術復号化プログラム
JP2008098735A (ja) 算術符号化装置及び算術復号化装置
HK1234935A1 (en) Image quantization parameter decoding method
HK1234934A1 (en) Image quantization parameter decoding method
HK1234935A (en) Image quantization parameter decoding method
JP2008219648A (ja) 算術符号化装置
HK1234934A (en) Image quantization parameter decoding method
HK1232706A1 (en) Image quantization parameter decoding method
HK1232707A1 (en) Image quantization parameter encoding method and image quantization parameter decoding method
HK1232707A (en) Image quantization parameter encoding method and image quantization parameter decoding method