JP2006033148A - 隣接ブロックの情報を用いた可変長コードテーブル切り替え方法 - Google Patents
隣接ブロックの情報を用いた可変長コードテーブル切り替え方法 Download PDFInfo
- Publication number
- JP2006033148A JP2006033148A JP2004205881A JP2004205881A JP2006033148A JP 2006033148 A JP2006033148 A JP 2006033148A JP 2004205881 A JP2004205881 A JP 2004205881A JP 2004205881 A JP2004205881 A JP 2004205881A JP 2006033148 A JP2006033148 A JP 2006033148A
- Authority
- JP
- Japan
- Prior art keywords
- length code
- variable length
- code table
- block
- switching method
- 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
Links
Landscapes
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】マルチメディアデータの符号化における圧縮を改良することができる効率的な可変長コード表を切り替える方法を提供すること。
【解決手段】可変長テーブルを決定するために、0以外の係数の個数に関する情報に加えて、隣接ブロックで用いた変換サイズに関する情報も利用する。これによって、より正確に可変長コードテーブルを選択できるようになり、圧縮の効率を向上させることができる。
【選択図】図2
【解決手段】可変長テーブルを決定するために、0以外の係数の個数に関する情報に加えて、隣接ブロックで用いた変換サイズに関する情報も利用する。これによって、より正確に可変長コードテーブルを選択できるようになり、圧縮の効率を向上させることができる。
【選択図】図2
Description
本発明は、あらゆる高度なマルチメディアデータ符号化、特にISO/IEC 14496-10規格に用いて符号化効率を向上させることができる。本発明は、マルチメディアデータの符号化における圧縮を改良することができる効率的な可変長コードテーブル切り替え方法を提供する。
可変長符号化および算術符号化は、マルチメディアデータの符号化に用いられるエントロピー符号化方法を代テーブルする二つの方法である。可変長符号化方法は、JPEG、ISO/IEC 13818-2、ISO/IEC 14496-2、ISO/IEC 14496-10など、様々な規格で用いられている。特にISO/IEC 14496-10規格などにおけるマルチメディアデータ符号化の可変長符号化方法では、隣接ブロックから与えられる情報に基づいて可変長コードテーブルを切り替える必要がある。ISO/IEC 14496-10規格における可変長符号化の場合、隣接ブロックに含まれる、0以外の係数の個数に関する情報が必要となる。
図1は、ISO/IEC 14496-10規格で用いられる従来の可変長コードテーブル切り替え方法を示す。この従来技術では、まず、モジュール101に示されるように、上に位置するブロックが利用可能であるか否かがチェックされる。利用可能である場合、モジュール102において、nBは上のブロックの0以外の係数の個数に設定される。上に位置するこのブロックが利用可能でない場合、モジュール103に示されるように、nBは0に設定される。従来技術では、次にモジュール104において、対象ブロックの左に位置するブロックが利用可能であるか否かがチェックされる。左のブロックが利用可能である場合、モジュール106において、nAに左のブロックの0以外の係数の個数が設定される。左のブロックが利用可能でない場合、nAに0が設定される。従来技術では、モジュール107において、上のブロックおよび左のブロックの両方が利用可能であるか否かがチェックされる。両方のブロックが利用可能である場合、モジュール109において、nAとnBの平均を求めることでnCを決定する。それ以外は、モジュール108において、nAとnBの和を求めることでnCを決定する。最後に、nCの値を用いて可変長コードテーブルを切り替える。
近年のマルチメディアデータ符号化技術の発展により、変換処理において異なるブロックサイズに対応することで符号化処理は大きく進歩している。ISO/IEC 14496-10規格は、4×4の逆変換および8×8の逆変換の2種類の逆変換方法を定義している。これら2つの異なる変換サイズを組み合わせて用いることで、これらの変換サイズのいずれかを単独で用いる場合に比べて符号化処理が改善した。
現在、ISO/IEC 14496-10規格では、8×8の変換サイズを用いた可変長符号化に対応していない。図3において影が付いていないモジュールが示すのは、ISO/IEC 14496-10規格で用いられる従来技術での、4×4変換サイズを用いた場合のシンタックス要素TotalCoeff、TrailingOnes、total_zerosおよびrun_beforeの復号処理である。まず、モジュール307において、変数nCに基づいて選択された可変長コードテーブルを用いてTotalCoeffおよびTrailingOnesが復号される。次にモジュール308において、TotalCoeffを用いて選択された可変長コードテーブルを用いてシンタックス要素total_zerosが復号される。最後にモジュール309において、total_zerosを用いて選択された可変長コードテーブルを用いてシンタックス要素が復号される。
従来技術では、隣接ブロックにおける0以外の係数の個数に基づいて可変長コードテーブルを切り替えている。しかしながら、隣接ブロック間で異なる変換サイズが用いられている場合、ブロックにおける0以外の係数の個数の最大値は、使用される変換サイズにより異なる。従って、これらの隣接ブロックの0以外の係数の個数の範囲を考慮せずに可変長コードテーブルを切り替えても効率が良くない。
この問題を解決するため、可変長コードテーブルを切り替える新しい方法を紹介する。この新しいテーブル切り替え方法により、従来技術に比べて符号化効率を向上させることができる。
現在、従来技術における可変長コードテーブルの切り替え方法では、隣接ブロックの0以外の係数の個数に関する情報のみが用いられている。本発明の新規性は、可変長テーブルを決定するために、0以外の係数の個数に関する情報に加えて、隣接ブロックで用いた変換サイズに関する情報をも利用する点にある。これによって、より正確に可変長コードテーブルを選択できるようになり、符号化の効率が向上する。
本発明の動作について以下に説明する。本発明は、符号化されたビットストリームを符号化もしくは復号化するために可変長コードテーブルを用いる前に利用できる。本発明は、変換後の係数ブロックを符号化または復号化するための最適な可変長コードテーブルを選択するために利用できる。
本発明は、異なる変換サイズが混在する場合にも可変長符号化テーブルを効率よく選択できるという効果を奏する。この効果は、可変長コードを用いた圧縮の形式において顕著である。
本発明を用いて可変長コードテーブルを選択することで、従来技術に比べて圧縮技術が向上する。図2は、本発明における、0以外の係数の個数と使用した変換サイズとに基づく可変長コードテーブルの選択を示す。本発明では、図2のモジュール201において、上および左に位置するブロックが両方とも利用可能であるか否かをチェックする。少なくともいずれかのブロックが利用可能でない場合、本発明では、モジュール202において、対象ブロックの左のブロックが利用可能であるか否かをチェックする。左のブロックが利用可能である場合、モジュール203において、変数nA’に左のブロックの0以外の係数の個数を設定する。左のブロックが利用可能でない場合、モジュール206において、変数nAに0を設定する。本発明は、モジュール204において、左のブロックの変換サイズと対象ブロックの変換サイズとを比較する。これらの変換サイズが同じでない場合、モジュール207において、変数nAにnA’をスケーリングした値を設定する。変換サイズが同じである場合、モジュール205においてnAにnA’を設定する。
次に、本発明では、モジュール208において、上のブロックが利用可能であるか否かをチェックする。上のブロックが利用可能である場合、モジュール209において、変数nB’に上のブロックの0以外の係数の個数を設定する。左のブロックが利用可能でない場合、モジュール212において、変数nBに0を設定する。本発明では、モジュール210において、上のブロックの変換サイズと対象ブロックの変換サイズとを比較する。これらの変換サイズが同じでない場合、モジュール213において、変数nBにnB’をスケーリングした値を設定する。変換サイズが同じである場合、モジュール213において、nBにnB’を設定する。
モジュール201以降、上のブロックおよび左のブロックの両方が利用可能である場合、本発明では、モジュール214において、上のブロックおよび左のブロックの変換サイズが同じであるか否かをチェックする。これらの変換サイズが異なる場合、本発明では、モジュール215において、左のブロックの変換サイズが対象ブロックの変換サイズに等しいか否かをチェックする。これらが同じ場合、モジュール217において、変数nBに0を設定し、変数nAに左のブロックの0以外の係数の個数に等しい値を設定する。変換サイズが異なる場合、モジュール216において、変数nAに0を設定し、変数nBに上のブロックの0以外の係数の個数に等しい値を設定する。左のブロックの変換サイズと上のブロックの変換サイズが同じである場合、モジュール218において、変数nAに左のブロックの0以外の係数の個数に等しい値を設定し、変数nBに上のブロックの0以外の係数の個数に等しい値を設定する。次に、モジュール219において、nAとnBの平均を求めることでnC’を計算する。続いてモジュール220において、対象ブロックの変換サイズと上記2つのブロックの変換サイズとを比較する。これらの変換サイズが異なる場合、モジュール222において、変数nCにnC’をスケーリングした値を設定する。変換サイズが同じである場合、変数nCをnC’の値と等しくする。上記隣接ブロックのうち少なくとも一つの変換サイズが対象ブロックのそれと異なる場合、または、上記隣接ブロックのうち少なくとも一つが利用可能でない場合、モジュール223において、変数nCにnAとnBとの和を設定する。最後に、変数nCを用いて可変長コードテーブルを選択する。
対象ブロックの変換サイズが8×8であるのに対して、隣接ブロックが変換サイズ4×4で符号化されている場合、8×8の隣接ブロックに対応する4つの4×4ブロックの0以外の係数の個数の平均値を使って、モジュール218におけるnAおよびnBの両方を求めることも可能である。すなわち、4つの4×4ブロックで構成される8×8隣接ブロック全体の0以外の係数の個数の合計を4で除算する。
モジュール207、213、および222において、上記変数はスケーリング係数でスケーリングされる。このスケーリング係数は、ブロックの係数の最大値を用いて求めることができる。数式1は、スケーリング係数の求め方を示す。
図3は、本発明における、シンタックス要素TotalCoeff、TrailingOnes、total_zerosおよびrun_beforeの復号処理を示す。モジュール301において、対象ブロックが変換サイズ8×8で符号化されているか否かを判断する。変換サイズが8×8である場合、本発明では、モジュール302において、ビットストリームからuse_CALVC_mapping_tableフラグを復号する。use_CALVC_mapping_tableフラグが1と等しい場合、本発明では、モジュール305において、変数nC を用いて選択された可変長コードテーブルを用いてTotalCoeffおよびTrailingOnesを復号する。use_CALVC_mapping_tableフラグが0に等しい場合、本発明では、モジュール304において、ビットストリームから直接TotalCoeff およびTrailingOnesを読み出す。シンタックス要素TotalCoeffは6ビットの固定長コードで符号化され、シンタックス要素TrailingOnesは2ビットの固定長コードで符号化される。次に、本発明では、モジュール306において、ビットストリームから直接シンタックス要素total_zerosを読み出す。シンタックス要素total_zerosは固定長コードで符号化される。この固定長コードのサイズは、(64−TotalCoeff)を2進数表現するのに必要なビット数の最大値により異なる。この固定長コードの大きさも6ビットであってもよい。最後に、本発明では、図4に示されるような新しい可変長コードテーブルからシンタックス要素run_beforeを直接読み出す。
Claims (25)
- 隣接するブロックの情報を用いて可変長コードテーブルを切り替える方法であって、
上および左の隣接ブロックの両方が利用可能であるか否かを判定するステップと、
前記利用可能な隣接ブロックの変換サイズを求めるステップと、
前記隣接ブロックがともに利用可能である場合、当該隣接ブロックの変換サイズを比較するステップと、
前記隣接ブロックの0以外の係数の個数を求めるステップと、
対象ブロックの変換サイズを求めるステップと、
前記隣接するブロックの変換サイズと対象ブロックの変換サイズとを比較するステップと、
上および左の隣接ブロックがともに利用可能であり、かつ、それらのブロックの変換サイズが同じである場合、前記0以外の係数の個数の平均を算出するステップと、
前記隣接ブロックの少なくとも一方が利用可能でない場合、または、前記隣接ブロックの変換サイズの一方のみが前記対象ブロックの変換サイズと同じである場合、前記0以外の係数の個数の和を算出するステップと、
前記隣接ブロックの変換サイズが前記対象ブロックの変換サイズと異なる場合、スケーリング係数を用いて前記0以外の係数の個数の和または平均に対してスケーリングを行うステップと、
前記0以外の係数の個数の和または平均を用いて可変長コードテーブルを切り替えるステップと、
前記可変長コードテーブルを用いてシンタックス要素を復号するステップとを含む。 - 請求項1に記載の可変長コードテーブル切り替え方法であって、前記ブロックのサイズは、当該ブロックの変換サイズにより決まる。
- 請求項1に記載の可変長コードテーブル切り替え方法であって、前記変換サイズは、残差ブロックを空間領域から周波数領域に変換するために用いる2次元マトリックスの大きさである。
- 請求項1に記載の可変長コードテーブル切り替え方法であって、ブロック間の変換サイズを比較するステップは、さらに、
各ブロックの前記変換サイズにおける係数の個数の最大値を求めるステップと、
前記ブロックの係数の個数の前記最大値を比較するステップとを含む。 - 請求項1および4に記載の可変長コードテーブル切り替え方法であって、前記隣接ブロックの変換サイズを比較し、当該変換サイズの前記係数の個数の最大値が互いに等しい場合、当該変換サイズが互いに同じであるとみなす。
- 請求項1に記載の可変長コードテーブル切り替え方法であって、一方の隣接ブロックが利用可能でない場合、当該隣接ブロックの前記0以外の係数の個数に0を設定する。
- 請求項1および6に記載の可変長コードテーブル切り替え方法であって、一方の隣接ブロックの変換サイズが対象ブロックとは異なる場合、かつ、他方の隣接ブロックが利用可能であり、その変換サイズが対象ブロックと同じである場合、前記一方のブロックの前記0以外の係数の個数に0を設定する。
- 請求項1、6および7に記載の可変長コードテーブル切り替え方法であって、対象ブロックの変換サイズが一方の隣接ブロックよりも大きい場合、当該一方の隣接ブロックの前記0以外の係数の個数に、最も近い隣接ブロックの0以外の係数の個数を設定する。
- 請求項1、6および7に記載の可変長コードテーブル切り替え方法であって、対象ブロックの変換サイズが一方の隣接ブロックよりも大きい場合、当該一方の隣接ブロックの前記0以外の係数の個数に、複数の隣接ブロックの0以外の係数の個数の平均を設定する。
- 請求項1、6、7および9に記載の可変長コードテーブル切り替え方法であって、0以外の係数の個数の平均を算出するステップは、さらに、
対象ブロックの変換サイズを取得するステップと、
隣接ブロックの変換サイズを求めるステップと、
前記対象ブロックに対応する大きさの、より大きなブロックを形成するために必要な前記隣接ブロックの数を求めるステップと、
前記ブロックの0以外の係数の個数の和を求めるステップと、
前記和を前記ブロックの数で除算するステップとを含む。 - 請求項1に記載の可変長コードテーブル切り替え方法であって、前記平均を算出するステップは、さらに、
前記二つのブロックの前記0以外の係数の個数の和を求めるステップと、
1を加えて前記和を切り上げるステップと、
前記和の値を左に1だけシフトするステップとを含む。 - 請求項1に記載の可変長コードテーブル切り替え方法であって、前記スケーリング係数を求めるプロセスは、さらに、
対象ブロックの係数の個数の最大値を求めるステップと、
隣接ブロックの係数の個数の最大値を求めるステップと、
前記対象ブロックの係数の個数の最大値を、前記隣接ブロックの係数の個数の最大値で除算するステップとを含む。 - 請求項1、11および12に記載の可変長コードテーブル切り替え方法であって、前記スケーリングを行うステップと平均を算出するステップとは、前記シフトを行うステップにおいて実現される。
- 請求項1に記載の可変長コードテーブル切り替え方法であって、前記シンタックス要素を復号化するステップは、さらに、
対象ブロックの変換サイズが8×8であるか否かを判定するステップと、
可変長コードが用いられたか否かを示すフラグを復号するステップと、
シンタックス要素TotalCoeffおよびTrailingOnesを復号するステップと、
固定長コードを用いてtotal_zerosを復号するステップと、
可変長コードテーブルを用いてシンタックス要素run_beforeを復号するステップとを含む。 - 請求項1および14に記載の可変長コードテーブル切り替え方法であって、前記フラグは、前記対象ブロックの変換サイズが8×8である場合に符号化および復号化される。
- 請求項1、14および15に記載の可変長コードテーブル切り替え方法であって、前記フラグは、ビットストリームに含まれるビットとして符号化および復号化される。
- 請求項1、14、15および16に記載の可変長コードテーブル切り替え方法であって、前記シンタックス要素TotalCoeffおよびTrailingOnesは、前記フラグが1である場合に、可変長コードテーブルを用いて符号化および復号化される。
- 請求項1、14、15および16に記載の可変長コードテーブル切り替え方法であって、前記可変長コードテーブルは、前記隣接ブロックの0以外の係数の個数の和または平均を用いて選択される。
- 請求項1、14、15および16に記載の可変長コードテーブル切り替え方法であって、前記シンタックス要素TotalCoeffおよびTrailingOnesは、前記フラグが0である場合に、固定長コードを用いて符号化および復号化される。
- 請求項1、14、15、16および19に記載の可変長コードテーブル切り替え方法であって、TotalCoeffを符号化および復号化するのに用いる固定長コードの長さは6ビットである。
- 請求項1、14、15、16および19に記載の可変長コードテーブル切り替え方法であって、TrailingOnesを符号化および復号化するのに用いる固定長コードの長さは2ビットである。
- 請求項1および14に記載の可変長コードテーブル切り替え方法であって、total_zerosを符号化および復号化するのに用いる固定長コードの長さは6ビットである。
- 請求項1および14に記載の可変長コードテーブル切り替え方法であって、total_zeros を符号化および復号化するのに用いる固定長コードの長さは、64からTotalCoeffの値を減算した値を2進数表現するために必要なビット数である。
- 請求項1および14に記載の可変長コードテーブル切り替え方法であって、ブロック中の残りの0の個数が6よりも大きく、かつ、run_beforeの値が14よりも大きい場合、前記シンタックス要素run_beforeは、18ビットの固定長コードで符号化および復号化される。
- 請求項1、14および24に記載の可変長コードテーブル切り替え方法であって、前記18ビットは、11ビットの0と、これに続く1ビットの1と、これに続くrun_beforeを2進数表現した6ビットの値とで構成される。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004205881A JP2006033148A (ja) | 2004-07-13 | 2004-07-13 | 隣接ブロックの情報を用いた可変長コードテーブル切り替え方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004205881A JP2006033148A (ja) | 2004-07-13 | 2004-07-13 | 隣接ブロックの情報を用いた可変長コードテーブル切り替え方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006033148A true JP2006033148A (ja) | 2006-02-02 |
Family
ID=35899010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004205881A Pending JP2006033148A (ja) | 2004-07-13 | 2004-07-13 | 隣接ブロックの情報を用いた可変長コードテーブル切り替え方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006033148A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010531552A (ja) * | 2007-01-08 | 2010-09-24 | クゥアルコム・インコーポレイテッド | 符号化ブロックパターンに関する可変長コーディング技法 |
US9392288B2 (en) | 2013-10-17 | 2016-07-12 | Google Inc. | Video coding using scatter-based scan tables |
US9509998B1 (en) | 2013-04-04 | 2016-11-29 | Google Inc. | Conditional predictive multi-symbol run-length coding |
US9774856B1 (en) | 2012-07-02 | 2017-09-26 | Google Inc. | Adaptive stochastic entropy coding |
-
2004
- 2004-07-13 JP JP2004205881A patent/JP2006033148A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010531552A (ja) * | 2007-01-08 | 2010-09-24 | クゥアルコム・インコーポレイテッド | 符号化ブロックパターンに関する可変長コーディング技法 |
US8335261B2 (en) | 2007-01-08 | 2012-12-18 | Qualcomm Incorporated | Variable length coding techniques for coded block patterns |
US9774856B1 (en) | 2012-07-02 | 2017-09-26 | Google Inc. | Adaptive stochastic entropy coding |
US9509998B1 (en) | 2013-04-04 | 2016-11-29 | Google Inc. | Conditional predictive multi-symbol run-length coding |
US9392288B2 (en) | 2013-10-17 | 2016-07-12 | Google Inc. | Video coding using scatter-based scan tables |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6408098B2 (ja) | ビデオ復号化方法及びビデオ復号化装置 | |
CN105379283B (zh) | 数据编码和解码 | |
CN105103548B (zh) | 一种编码、解码图像数据的方法及设备 | |
US9749643B2 (en) | Encoding/decoding method and apparatus using a tree structure | |
KR101356733B1 (ko) | 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치 | |
JP4313771B2 (ja) | 画像および/またはビデオ符号器と復号器における変換係数を符号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体 | |
US7764842B2 (en) | Image encoding method, image decoding method, image encoding apparatus, image decoding apparatus, image encoding program, and image decoding program | |
EP3523965B1 (en) | Method and device for context-adaptive binary arithmetic coding a sequence of binary symbols representing a syntax element related to picture data | |
CA2452175A1 (en) | Variable length coding method and variable length decoding method | |
JP2005520360A (ja) | 損失の無い方法でデジタル画像を符号化するための装置および方法 | |
CN1968418A (zh) | 混合图像数据处理系统和方法 | |
US9729890B2 (en) | Method and apparatus for unification of significance map context selection | |
JP2006093958A (ja) | プログレッシブjpeg復号化システム | |
WO2007063612A1 (ja) | 動画像符号化装置、動画像復号装置 | |
JP2006033148A (ja) | 隣接ブロックの情報を用いた可変長コードテーブル切り替え方法 | |
JP4644290B2 (ja) | 高域係数用符号化ブロックパターン生成方法及び装置 | |
Kuo et al. | An efficient spatial prediction-based image compression scheme | |
JP2007158698A (ja) | 画像復号装置及び画像復号方法 | |
CN113382238A (zh) | 一种加快残差系数部分比特数计算速度的方法 | |
JP2006060656A (ja) | 画像信号符号化方法及び画像信号符号化装置 | |
Chen et al. | Gray prediction decoding algorithm for VLC decoder | |
JP2006313959A (ja) | 符号化方法 | |
JPH01114278A (ja) | 直交変換符号化方法 |