JP2004007526A - データ圧縮装置及び方法 - Google Patents

データ圧縮装置及び方法 Download PDF

Info

Publication number
JP2004007526A
JP2004007526A JP2003090687A JP2003090687A JP2004007526A JP 2004007526 A JP2004007526 A JP 2004007526A JP 2003090687 A JP2003090687 A JP 2003090687A JP 2003090687 A JP2003090687 A JP 2003090687A JP 2004007526 A JP2004007526 A JP 2004007526A
Authority
JP
Japan
Prior art keywords
quantization
data
scale
trial
dct
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
JP2003090687A
Other languages
English (en)
Inventor
Nicholas Ian Saunders
サウンダーズ ニコラス アイアン
Robert Mark Stephan Porter
ポーター ロバート マーク ステファン
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.)
Sony Europe BV United Kingdom Branch
Original Assignee
Sony United Kingdom 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 Sony United Kingdom Ltd filed Critical Sony United Kingdom Ltd
Publication of JP2004007526A publication Critical patent/JP2004007526A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】多世代圧縮におけるエラーを低減し、及び/又は同様の素材を量子化したときの変動を小さくする。
【解決手段】利用可能な量子化の程度のセットの中から取り出された量子化の程度でデータの量子化を実行することによって、所定のターゲット出力データ量に基づき、入力データを圧縮するデータ圧縮装置において、利用可能な量子化の程度のセットのサブセットの中から取りだされた個々の試し量子化の程度で試し量子化を実行する1以上の試し量子化器と、試し量子化器の結果に応じて、ターゲット出力データ量を超えない条件を満たす最終的な量子化の程度を利用可能な量子化の程度のセットの中から選択する選択器と、最終的な量子化の程度で入力データを量子化する最終量子化器とを備える。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明はデータ圧縮に関する。
【0002】
【従来の技術】
データ圧縮技術は、制限された帯域幅内で動的に変化する通信チャンネルによってサポートされているビットレートでデータ通信を行うために、データ通信分野で広く採用されている。代表的には、画像データは、伝送又は適当な記憶媒体に蓄積する前に圧縮され、画像の再生に先立ち伸長される。
【0003】
データ圧縮技術は、静止画像の場合は空間的な冗長度を利用し、動画像の場合は空間及び時間の双方の冗長度を利用する。時間的冗長度は、動画像において時系列における連続した画像、特に同一シーンに属する画像が非常に類似している場合に発生する。モーションピクチャーエキスパーツグループ(Motion PictureExperts group:以下、MPEGという。)は、娯楽及び放送の用途におけるビデオ圧縮符号化の国際的標準を規定している。本発明は、低いデータ圧縮率を用いて非常に高いデータレート(1Gbit/sまで)で動作するハイエンドのビデオハードウェアに対するMPEG4「スタジオプロファイル」規格の実現に関する(なお、本発明は、これに限定されるものではない)。
【0004】
離散コサイン変換(Discreet Cosine Transform:以下、DCTという)の量子化は、ビデオデータの符号化技術で広く用いられている。DCTの量子化は、データの伝送又は蓄積に先立ち、入力画像データを表すのに必要なデータのワード長を低減する画像圧縮において使用される。DCTの量子化処理において、画像は、規則的なサイズの画素値のブロックに分割され、殆どの場合、各ブロックは、横8画素、縦8画素(8×8)で構成される。従来のデータフォーマットにおいて、ビデオデータは、通常、カラー画像における赤、緑、青(RGB)成分、あるいは輝度成分Yと2つの色差成分Cb、Crに対応する3つの成分を有する。全ての3つのRGB又はYCbCr信号成分に対応する画素ブロックのグループはマクロブロック(MB)と呼ばれる。
【0005】
DCTは、画像の空間領域から空間周波数領域への変換を表し、画素値のブロックを同一次元を有する変換係数のブロックに有効に変換する。DCT係数は、画像ブロックの空間周波数成分を表す。各係数は、適当な基底関数に適用される重みとみなすことができ、基底関数の重み付け和が入力画像を完全に表現している。DCT係数の各8×8ブロックは、ゼロ空間周波数を表す1個の「DC」成分と63個の「AC」成分からなる。DCT係数の最大値は、殆どの場合、低い空間周波数のDCT係数に対応している。画像にDCTを施すだけでは、必ずしも圧縮することはできず、単に画像データを空間領域から空間周波数領域に変換するだけである。圧縮を達成するためには、各DCT係数は量子化除数(quantisation divisor)と呼ばれる正の整数で除算され、商は一番近い整数に切り上げ又は切り捨てすることにより丸められる。量子化除数を大きくすることにより、データをより圧縮することができるが、その代償として量子化が粗くなる。量子化を粗くするほど、再生画像の画質がより劣化する。DCT係数の切上げ又は切捨てによる丸めの結果として、量子化によるアーティファクトが再生画像に発生する。圧縮画像の再生の際には、各DCT係数は量子化ステップによる、当初の商ではなく、(最も近い整数に丸められた整数である)量子化係数を乗算することにより再生されるが、このことはDCT係数の当初の精度が確保されないことを意味する。したがって、量子化は「有ひずみ(lossy)」符号化技術である。
【0006】
画像データ圧縮システムでは、殆どの場合、所定の出力ビットレートを達成する最適の量子化除数を決定するために、一連の試し(trial)圧縮を行っている。試し量子化は、例えば、可能な量子化除数の全範囲に亘って分散した20個の可能な量子化除数で実行される。ターゲットビットレートの直ぐ上と直ぐ下に位置する予測出力ビットレートを与える2つの隣接した試し量子化除数を見つけ、この2つの値間で更に細かな探索を実行する。典型的には、画像圧縮を実行するために選ばれる量子化除数は、ターゲットビットレートを達成しつつ粗さが最小の量子化を与える量子化除数である。
【0007】
粗さが最小の量子化除数を選択すると、過去に1回以上の圧縮/伸長サイクルを経験したことがない「ソース(source)」画像データに対して、再生の際に最良の画質(すなわちノイズが最少の画像)が得られるが、このことは、「非ソース(non−source)」画像データに対しては必ずしも成立しないことが判明している。圧縮と伸長が1回行われた画像は第1世代の画像と呼ばれ、過去に2回圧縮/伸長サイクルが行れた画像は第2世代と呼ばれ、以下同様に高い世代となる。
【0008】
第2世代の再生画像では、殆どの場合、第1世代の再生画像の対応する量子化除数でのノイズと比較して、画像ノイズが量子化除数の全範囲で体系的に高くなる。このことは、量子化の各処理(each stage)で生じるDCT係数の丸め誤差の問題として理解される。しかしながら、第2世代の量子化除数を第1世代の量子化除数と略等しく選んだ場合、第2世代の再生画像のノイズレベルは、第1世代の再生画像のノイズレベルと略等しくなることが知られている。したがって、非ソース入力画像データに対しては、所要のデータレートを満たし、可能な限り最小の大きさを有する量子化除数は、必ずしも再生画像の最良の画質をもたらさない。代わりに、前の圧縮/伸長サイクルで用いられた量子化除数に略等しい量子化除数により、再生画像の最良の画質が得られる可能性が高い。なお、量子化除数の選択は、特定の通信チャンネルの世代毎に変わる可能性があるターゲットビットレートによって制限される。
【0009】
上述したように、データ圧縮処理の一処理として、一連の試し圧縮処理を実行して所定の出力ビットレートを達成する最適の量子化除数を決定する。ビット割当(bit allocation)と呼ばれる処理を実行し、各マクロブロック毎にターゲットビットカウントを算出する。このビット割当計算は、試し量子化除数に依存して発生するビット数を解析する処理を含む。ビット割当部は、試し量子化によって算出されたビットカウントに基づき、マクロブロックのターゲットビットカウントを算出する。更に、2分探索(binary search)と呼ばれる処理によって、マクロブロックのターゲットビットカウントの条件を満たす粗さが最小の量子化除数を見つけ出す。
【0010】
【発明が解決しようとする課題】
試しビット割当点の間隔(spacing)は、マクロブロックのターゲットビットカウントの外挿値(extrapolated values)に影響を与える。このことは、最良の画像品質を確保するために世代に亘ってMBターゲットが反復可能でなければばならない多世代(multi−generation)画像データを取り扱う際に大きな問題となる。また、後世代の画像のために、ビット割当処理によって適切な量子化除数を選択することも重要である。また、ビット割当処理によって選択された量子化除数を用いて、2分探索と呼ばれる高い分解能による一連の試し量子化を行うための開始点を定める。多世代の画像データに亘って正確且つ反復可能なターゲットを達成するために、試しビット割当ポイントの間隔を決定することが問題となっている。
【0011】
【課題を解決するための手段】
本発明は、データ圧縮装置を提供する。利用可能な量子化の程度のセットの中から取り出された量子化の程度でデータの量子化を実行することによって、所定のターゲット出力データ量に基づき、入力データを圧縮するデータ圧縮装置において、利用可能な量子化の程度のセットのサブセットの中から取りだされた個々の試し量子化の程度で試し量子化を実行する1以上の試し量子化器と、試し量子化器の結果に応じて、ターゲット出力データ量を超えない条件を満たす最終的な量子化の程度を利用可能な量子化の程度のセットの中から選択する選択器と、最終的な量子化の程度で入力データを量子化する最終量子化器とを備える。
【0012】
試し量子化処理において、利用可能な量子化の程度(available degrees of quantisation)のサブセットから取り出した1以上の量子化の程度を使用することを確保することによって、世代に亘って等しい結果、あるいは類似のデータが得られる可能性が高くなり、結果として多世代圧縮におけるエラーを低減し、及び/又は同様の素材を量子化したときの変動を小さくすることができる。
【0013】
【発明の実施の形態】
図1は、データ圧縮システムの構成を模式的に示す図である。このデータ圧縮システムは、符号化装置(encoder)10と、データ処理装置(data processingmodule)20と、復号装置(decoder)30とを備える。入力の高品位(high difinition)ビデオ信号5は、符号化装置10に供給される。符号化装置10は、冗長度を除去し、その統計的性質を利用するためにビデオ画像データをモデル化し、入力画像データ5の情報を圧縮フォーマットで表現する出力データシンボルを生成する。符号化装置10は、圧縮データ信号15Aを出力し、この圧縮データ信号15Aはデータ処理装置20に供給され、そこで、通信チャンネルを介して伝送されるか、又は記録媒体に格納される。記録媒体から読み出された、又は通信チャンネルを介して受信された圧縮データ信号15Bは、復号装置30に供給され、復号装置30は、圧縮データ信号15Bを復号して高品位の出力画像信号35を形成する。
【0014】
図2は、図1のビットレートを低減する符号化装置10の具体的な構成を示すブロック図である。高品位ビデオのフレームにおける入力RGBチャンネルに対応するデータ信号D1、D2、D3は、シャッフル部(shuffle unit)100に供給される。他の具体例として、データは、YCbCrフォーマットで供給することもできる。更に、画像は、プログレッシブフレームモードとインタレースフィールドモードのいずれでも処理することができる。シャッフル部100は、入力データをマクロブロックユニット(Macro−Block Unit:以下、MBUという)に分割する。この具体例では、1フレームは40個のMBUからなり、各MBUは204個のMBからなる。各入力フレームの画像サンプルは、外部SDRAM200に一時的に書き込まれる。このシャッフル書込処理中に、後続の符号化処理で必要とされる2つの量子化除数パラメータQ_START、DCT_PRECISIONの値が算出される。画素ブロックが外部SDRAM200から、入力画像フレーム内の隣接した画素ブロックがシャッフル順序では隣接した位置で読み出されないように画像データをインタリーブする所定のシャッフル順序に従って、読み出される。
【0015】
シャッフル処理により、復号装置30によって再生される画像におけるデータ消失の影響が軽減される。入力ビデオフレームにおいて隣接した画素ブロックは、シャッフルされたビットストリームでは、離れている。短時間のデータ消失により、ビットストリームの連続した一部が損なわれ、幾つかのデータブロックが影響を受けるが、これらのブロックは、シャッフル処理のために再生画像内では連続していない。したがって、データ隠蔽(concealment)を適切に用いて、消失したブロックを再構成することができる。シャッフル処理は、可変速再生(suttle playback)時の画質を改善することができる。更に、シャッフル処理は、入力ビデオデータをMBUに疑似ランダム的に分配することによって画像フレームの各MBUに選択された量子化パラメータの変化の度合い(variation)を低減することができる。
【0016】
現画像フレームは、外部SDRAM200から前フレームをシャッフルされたフォーマットで読み出している間に、外部SDRAM200に書き込まれる。シャッフル部100は、2対の出力信号を生成し、第1の信号対は、信号S_OP_D1と信号S_OP_D2からなり、第2の信号対は、同じMBUデータを含むが、第1の信号対に対して約1MBU遅延された信号S_OP_DD1と信号S_OP_DD2からなる。この遅延は、Q割当部(Q allocation unit)300に内蔵されているビット割当器(bit allocation module)400の処理による遅延を補償するためのものである。Q割当部300は、第1の信号対S_OP_D1、S_OP_D2を用いて、適切な符号化モードと、MBUの各MBに対するQ_SCALEパラメータと呼ばれる量子化除数を測定する(determine)。
【0017】
シャッフル部100から出力される信号は、Q割当部300に供給され、このQ割当部300は、ビット割当器400と、ターゲット挿入器500と、DCT変換器600と、2分探索(binary search module)器700とを備える。シャッフル部100から出力される第1の信号対S_OP_D1、S_OP_D2は、ビット割当器400に入力される。これらの入力信号は、ラスタ走査された12ビットビデオサンプルの8×8縦ブロックからなる。
【0018】
ビット割当器400は、無ひずみ(lossless)の差分パルス符号変調(differential pulse code modulation:以下、DPCMという)符号化とDCT量子化符号化を比較する。
【0019】
DPCMは、画像内の空間的に近い画素は相関が高いことを利用した簡単な画像圧縮技術である。DPCMでは、画素値自体は伝送されない。代わりに、符号化装置により、前に送信した画素値に基づいた画素の期待値が予測される。1回のDPCM符号化処理(single DPCM encoding stage)は、DPCMリフォーマットと、DPCM変換と、エントロピー符号化計算を含む。
【0020】
これに対し、DCT量子化符号化の処理は、1回のDCT変換と、一連の量子化除数を用いた複数回の量子化処理を含み、各量子化処理の後にハフマン(Huffman)エントロピー符号化計算が行われる。この具体例では、6個の試し(trial)量子化除数がビット割当器400により試験される。ハフマン符号化は、既知の無ひずみ圧縮技術であり、出現頻度の高い値は短い符号で、出現頻度の低い値は長い符号で表現される。DCT試し符号化処理は、オプションとして、画像領域の「アクティビティ(activity)」に依存した量子化を含む。アクティビティは、画像ブロックの適切に正規化された画素の分散(variance)から算出される尺度(measure)である。高いアクティビティを有する画像ブロックでは、量子化をより粗くしても、見る人には知覚されにくいことが知られているので、各ブロックの量子化ステップを、アクティビティのレベルに応じて適切に調整することができる。アクティビティを考慮することにより、再生画像の知覚的な画質を維持したまま、圧縮率をより高めることができる。
【0021】
DPCM及びDCT量子化の試し符号処理により、所要の符号化ビットレートに基づいた所定のフレームのターゲットビット数によって制限されるMBのターゲットビット数を計算する。各MBに対して最少の符号化ビットが得られるモード(DCTかDPCM)が選択される。ビット割当器400は、信号405をターゲット挿入器500に出力する。この信号405は、各マクロブロックに対して選択された符号化モードと、2分探索器700で使用される量子化除数Q_SCALEの値Q_BASEと、各マクロブロックに対するターゲットビット数(bit count traget)とに関する情報を含んでいる。信号405に含まれる各マクロブロック毎のQ_BASE値、符号化モード情報及びビットターゲットは、ターゲット挿入器500によって、対応する遅延された画像データのビットストリームに付加される。ターゲット挿入器500は、2つの信号505A、505Bを出力し、これらの信号はDCT変換器600に入力として供給される。
【0022】
DCT変換器600で再びDCT係数を計算するが、今回は画像データの遅延バージョンに基づき計算を行う。DCT変換器600は、データを2分探索器700に出力する。2分探索器700は、各DCTモードのMBに対して2回目の(second stage)Q割当を実行するとともに、2分探索法を用いて、各マクロブロックに対して適切な量子化除数を測定する。2分探索器700は、ビット割当器400で使用された分解能より高い分解能で(使用可能な量子化除数の範囲内で)量子化除数を測定し、ビット割当部400によって設定されたターゲットに合う最小の利用可能なQ_SCALEを各マクロブロックに対して見つけ出す。実際には、5回の2分探索における開始点を定めるためにQ_BASEを用いて、DCTモードの各マクロブロックに対してより高い分解能の量子化ステップQ_ALLOCが選択されるようにする。DPCMモードのマクロブロックは、バイパス機能によって2分探索器700を通過するので、その出力においてデータは変更されてない。
【0023】
2分探索器700からの出力は、DCTモードの各マクロブロックに対する量子化ステップの値Q_ALLOCを含み、逆戻り探索(backsearch)器800に供給される。逆戻り探索器800は、各MBに対して選択された値Q_ALLOCが符号化のための「最良」の量子化スケールであることを検査(check)する。上述したように、前に1回以上の符号化/復号化サイクルを経験したことがある画像データについては、所定のターゲットビット数(target bit count)を達成できる最も粗さが小さい量子化が必ずしもそのマクロブロックに対して可能な限り小さい量子化誤差をもたらさない。代わりに、最小の量子化誤差は、前回の符号化/復号化サイクルで使用された量子化除数に略等しい量子化除数を用いることによって達成される可能性が高い。したがって、逆戻り探索器800は、値Q_ALLOCから始まり、より粗い量子化となる様々な量子化除数に対する量子化誤差を評価する。逆戻り探索器800は、可能な限り最も小さい量子化誤差を実際に発生する量子化ステップQ_FINALを決定する(determine)。試し量子化はDCTモードのマクロブロックに対してのみ行われ、DPCMモードのマクロブロックに対してはバイパス機能が適用される。
【0024】
逆戻り探索器800から出力される、選択された量子化ステップQ_FINALと、DCT符号化器600で生成されたDCTブロックは、量子化器900に供給され、ここで、最終的な量子化が実行される。量子化処理は、以下のようにして行われる。
【0025】
DCTモードの符号化では、各8×8ブロックの1つのDC係数は、次式に従って量子化される。
【0026】
Q(DC)=DC/(DC_QUANT*DCT_SCALER)
ここで、DCは量子化前の係数であり、DC_QUANTは、方式(system)によって設定されている量子化ファクタ(quantisation facter)であり、全てのMBを量子化するのに用いられる。DC_QUANTは、下記表に示すように、DC_PRECISIONから決定される。
【0027】
【表1】
Figure 2004007526
【0028】
DC_PRECISIONは、各フレームに対して固定値、好ましくは00に設定されているる。
【0029】
DCT_SCALERは、量子化除数パラメータDCT_PRECISIONを指数とすることによって決定される量子化ファクタであり、DCT_SCALER=2DCT_PRECISIONである。この具体例では、規格(conventin)が用いられ、量子化除数パラメータDCT_PRECISIONは4つの可能な値0、1、2、3を取り、3は最も粗い量子化に対応している。なお、MPEGスタジオプロファイル標準規格では、これとは異なり、DCT_PRECISION=0が最も粗い量子化に対応し、DCT_PRECISION=3が最小粗さの量子化に対応している。
【0030】
同様に、ブロックの63個のAC係数は、次式に従って量子化される。
【0031】
Q(AC)=(AC*16)/(Q_MATRIX*AC_QUANTISE*DCT_SCALER)
ここで、ACは量子化前の係数であり、Q_MATRIXは、DCTブロックの各要素に1つ1つが対応した64個の重みの配列である。量子化除数Q_SCALEは、Q_SCALE_TYPEによって定まる線形量子化スケール又は非線形量子化スケールに対応したファクタである。各Q_SCALE_TYPEは、Q_SCALE_CODE(1)〜Q_SCALE_CODE(31)で示される31個の可能な値からなる。図3の表は、全31個のQ_SCALE_CODEに対する各Q_SCALE_TYPEに対応した量子化除数Q_SCALEの値を示したものである。上記式において、NORM_ACTは、正規化されたアクティビティファクタであり、「アクティビティオン(activity on)」の場合に0.5〜2.0の範囲にあるが、「アクティビティオフ(activity off)」の場合は1に等しくなる。
【0032】
AC_QUANTISE=NORM_ACT*Q_SCALEとし、除数の一部として組み込まれる前に、最も近い量子化除数Q_SCALE(すなわち、図3の表におけるQ_SCALE_CODEに対応するQ_SCALE)に丸められる。
【0033】
量子化の結果Q(DC)、Q(AC)は、正規無限丸め(normal infinity rounding)と呼ばれる方法で丸められる。この方法は、0.5より小さい正数を(ゼロに)切り捨て、0.5以上の整数を正の無限大に切り上げ、−0.5より大きな負数をゼロに切り上げ、−0.5以下の負数を負の無限大に切り捨てることにより丸める。
【0034】
ビット割当器400、2分探索器700及び逆戻り探索器800のそれぞれは、量子化器900によって実行される量子化処理と同じように、量子化処理を実行する。しかしながら、2分探索器700及び逆戻り探索器800では、ファクタNORM_ACTは、常に1に設定される。ビット割当器400によって実行されるビット割当処理の間のみ、ファクタNORM_ACTは1以外の値を取る。ビット割当中に生成されるMBターゲットは、アクティビティを考慮しているので、後段でこれを考慮する必要はない。
【0035】
量子化器900から出力される量子化データは、エントロピー符号器1000に供給され、ここで、無ひずみデータ圧縮が、エントロピー符号化の標準原理に基づき適用される。この具体例では、ハフマン符号化を使用している。
【0036】
エントロピー符号器1000の出力は、シャッフル部100内のパッキング器150に供給される。パッキング器150は、外部SDRAM200と協働して、エントロピー符号化器1000によって生成された可変長符号化データを固定長の同期ブロック(sync−block)にパックする。同期ブロックは、画像再生の際、独立して再生される最小のデータブロックである。
【0037】
パッキング機能は、SDRAM200の読出及び書込アドレスを操作することによって実現される。各MBUをSDRAM内の固定パッキング領域(fixed packing space)に割り当て、更にそれを、各MB用の名目パッキング領域(nominal packing space)に分割する。個々のワード長から算出される又はエントロピー符号化器1000から直接パッキング器150に供給される各MBの全体の長さも記憶する必要がある。符号化装置10からの出力は、同期ブロック1のデータ出力SB1、同期ブロック2のデータ出力SB2からなる。符号化処理で使用した量子化除数の情報も復号装置30に送られる。
【0038】
図4は、図1の復号装置の構成を示すブロック図である。復号装置30は、符号化処理の逆処理を行うものであり、アンシャッフル部2010と、アンパック部2020と、外部SDRAM2100と、エントロピー復号器2200と、逆量子化器2300と、逆DCT変換器2400とを備える。同期ブロックのデータ信号SB1、SB2は、記録媒体から読み出され、あるいはデータ伝送ネットワークを介して受信されて、アンパック部2020に供給され、アンパック部2020は、外部SDRAM2100の読出及び書込により、アンパッキング機能を実行する。アンパックデータはエントロピー復号器2200に供給され、エントロピー復号器2200は、ハフマン符号化の逆処理を実行して量子化係数を再生し、逆量子化器2300に供給する。逆量子化器2300は、符号化装置10から供給された量子化除数に関する情報を用いて、量子化係数に適切な量子化除数を乗算して元のDCT係数の近似値を得る。この逆量子化処理は、DCT係数の元の精度を回復するものではなく、量子化は「有ひずみ(lossy)」圧縮技術である。逆量子化器2300の出力は、逆DCT変換器2400に供給され、逆DCT変換器2400は、離散コサイン逆変換を用い、周波数領域のDCT係数の各ブロックを処理して空間領域の画像ブロック情報を再生する。逆DCT変換器2400の出力は、量子化の結果には情報消失があるため、符号化前の画素ブロックと等しくない。最後に、逆DCT変換器2400の出力はアンシャッフル部2010に供給され、ここで、データはアンシャッフルされ、符号化前の画像ブロックの順序が再現される。アンシャッフル部2010の出力は、3つの色成分ビデオ信号RGBからなり、これから画像を再生することができる。
【0039】
図5は、図2のビット割当器400の具体的な構成を示すブロック図である。このビット割当器400は、3つの主要な機能を有し、第1の機能では、各マクロブロック毎に無ひずみDCPMと有ひずみDCT符号化という2つの利用可能な選択肢の中から符号化モードを選択し、第2の機能では、マクロブロックユニットに関する同様のターゲットに基づいて、各マクロブロックに対するターゲットビット数MB_TARGETを算出し、第3の機能では、2分探索器700で実行される2分探索における量子化除数Q_SCALEの開始目盛り(starting scale)となるように定義される値Q_BASEを算出する。2分探索器700は、量子化除数Q_SCALEの値Q_ALLOCを測定し、これは、開始点の値Q_BASEを得るのに使用したよりも高い分解能で量子化除数Q_SCALEを探索することによって得られる。
【0040】
シャッフル部100から出力されるシャッフルされた画像データ信号S_OP_D1、S_OP_D2は、ビット割当器400に入力として供給される。これらの入力信号は、ラスタ走査された12ビットのビデオサンプルの8×8DCTブロックからなる。
【0041】
パラメータ推定回路は、図2に示す符号化装置のシャッフル部100内に配設される。このパラメータ推定回路は、一連の試し量子化の実行に先立って設定され固定されるDCT_PRECISIONの値を推定すると共に、ビット割当部400によって実行される最低分解能試し量子化(lowest resolution trial quantisations)を実行するときの量子化除数を決定する際に用いるQ_SCALEの値Q_STARTを算出する。パラメータ予測回路により生成される最終的な量子化除数パラメータDCT_PRECISION、Q_STARTの値もビット割当器400に入力として供給される。
【0042】
ビット割当部400は、DPCMリフォーマット部410、DPCM部420、ゴーロン(Golomb)長部430、DCT部440、量子化部452とハフマン長部454から成る有ひずみ符号化部450、アクティビティ部460及び決定論理ユニット470を備える。決定論理ユニット470は、ターゲット挿入部500に入力データを供給する。
【0043】
ビット割当部400は、この具体例においては204個のMBから成るマクロブロックユニットの試し符号化に基づいて符号化の決定を行う。符号化モード決定の際には、無ひずみDPCMあるいは有ひずみDCTモード符号化のいずれかを選択する。符号化モードの決定は、単一のDPCM符号化段(DPCMリフォーマット部410、DPCM部420及びゴーロン長部430と連携して実行される)を実行することによって行われ、その結果は、6個のDCT試し符号化段の出力と比較される。6個のDCT試し符号化段は、DCT部440における単一の離散コサイン変換と、後に続く有ひずみ符号化ユニット450による6サイクルとを含む。DCTモードの符号化において、アクティビティ部460は、量子化部452によってデータに適用される量子化除数を調整する。アクティビティ部460が実行する計算については、以下に詳細に説明する。
【0044】
図5に示すように、決定論理器470には、DPCM符号化のエントロピー符号化処理を行うゴーロン長器430の出力が供給されるとともに、DCT符号化のエントロピー符号処理を行うハフマン長器454の出力が供給される。決定論理ユニット470は、DPCM試し符号化とDCT試し符号化との結果を比較する。無ひずみDPCMは、マクロブロックに対して全体のビット数がより少ない場合のみ、選択される。また、決定論理ユニット470は、マクロブロックユニットとマクロブロックの双方についてターゲットビット数を算出する。
【0045】
アクティビティ器460は、DCTモードの符号化回路の一部を構成し、画像ブロックの画素の分散に基づきアクティビティの尺度を算出する。より高いアクティビティレベルを有する画像ブロックでは、量子化をより粗くしても、見る人には知覚されにくいことが知られている。各ブロックに対する量子化ステップは、ビット割当器400の量子化器452で使用される量子化除数Q_SCALEを、高いアクティビティレベルのブロックが粗く量子化されるように、適切に調整することによりオフセット(offset)することができる。後述するように、ビット割当処理のために使用されるQ_SCALE_CODEは、「アクティビティオン」か「アクティビティオフ」の状態に依存する。更に、アクティビティファクタNORM_ACTは、上述のDCTのAC係数Q(AC)の量子化の式の分母に現れている。
【0046】
アクティビティは、各マクロブロックに対して1回ずつだけ計算される。パラメータIntraMADの値は、マクロブロック内の各8×8DCTブロックに対して、YCbCrモードでは輝度(Y)DCTブロックのみ、RGBモードではR、G、Bのブロックが計算される。パラメータIntraMADは次のように定義される。
【0047】
【数1】
Figure 2004007526
【0048】
ここで、dct[i,j]は、j番目のDCTブロックのi番目の画素の画素値である。パラメータdct_dc[j]は、8×8DCTブロックについての(且つ所定の信号成分についての)dct[i,j]の平均値であり、次式で与えられる。
【0049】
【数2】
Figure 2004007526
【0050】
マクロブロック内の全てのY又はRGBのDCTブロックに対するパラメータIntraMADの最小値は、次式で与えられる。
【0051】
【数3】
Figure 2004007526
【0052】
アクティビティACTは、
ACT=1+MinMAD
で与えられる。
【0053】
アクティビティACTの値は1から数千に及ぶので、アクティビティACTを正規化して所定の範囲内に収まるようにする。この具体例では、アクティビティACTを前回のマクロブロックユニットのデータによって正規化し、0.5〜2の範囲に収まるNORM_ACTを得ている。
【0054】
NORM_ACT=(2*ACT+AVG_ACT)/(ACT+2*AVG_ACT)
ここで、AVG_ACT=前MBUからのアクティビティACTの平均である。
【0055】
画像シーケンスの開始時、あるいはシーンの変化を(標準的方法により)検出したときには、量子化除数パラメータQ_START、DCT_PRECISIONに依存したデフォルト値DEFAULT_AVG_ACTをAVG_ACTの代わりに使用する。任意のフレーム(シーケンスの最初のフレームは除く)内の最初のMBUに対しては、前フレーム内の全てのMBUに対するアクティビティACTの平均を表す値FRM_AVG_ACTをAVG_ACTの代わりに使用する。この具体例では、アクティビティACTを0.5〜2の範囲に収まるように正規化しているが、代わりに次式を用いることにより、p/q〜q/pである任意の範囲に正規化することができる。
【0056】
NORM_ACT=(q*ACT+p*AVG_ACT)/(p*ACT+q*AVG_ACT)
したがって、NORM_ACTの範囲を0.5〜2となるように選択する場合、パラメータp、qは、それぞれ値1、2である。
【0057】
符号化の多数世代に亘る反復性を良くするために、NORM_ACTは固定数のレベルに制限される。0.5〜2.0の範囲に対して、NORM_ACTは8個のレベル(4/8、5/8、6/8、7/8、1,4/3、5/3、2)に制限される。
【0058】
図6は、図2に示す符号化装置においてビット割当ポイント(bit allocationpoints)を割り当てるシステムを模式的に説明した図である。例えば4個の固定数のビット割当ポイントがQ_SCALE_CODEの値Q_START_CODEの回りに配置される。Q_START_CODEは、入力画素の特性、例えば画素差の合計を用いてシャッフル部によって算出されている。図6の例では、最小粗さ値DCT_PRECISION=0と「アクティビティオフ」を考慮している。この場合、ビット割当に用いられる値は8Q_SCALE_CODE分だけ離れており、Q_START_CODEのあらゆるエラーを考慮した範囲をカバーしている。「アクティビティオン」のときには、ビット割当に用いられる4個の値は4Q_SCALE_CODE分だけ離れることになる。
【0059】
図7は、4個のビット割当Q_SCALE_CODEに対応する4個のQ_SCALE値に対する、発生ビット数対Q_SCALEのグラフである。マクロブロックターゲットは、マクロブロックユニット(MBU)として知られるマクロブロックのグループの対応するターゲット(MBUターゲット)から算出される。Q_SCALE_CODEがQ_SCALE_CODE_LのときはMBUターゲットより大きな値のビットカウントBits_Lになり、一方Q_SCALE_CODE_UのときはMBUターゲットより小さな値のビットカウントBits_Uになる。このように、Q_SCALE_CODEが大きいほど量子化は粗くなり、ビットカウント値は小さくなる。この2個の値の間で直線補間(linear interpolation)を行うことによってMBターゲットの条件が満たされる。
【0060】
ビット割当ポイントの間隔が広すぎると、第2世代の画像データについて計算したMBターゲットが第1世代の画像に用いられたターゲットに一致する可能性は少なくなる。第2世代画像を最良の画質で再生するためには、第1世代の符号化で用いられたMBターゲットを反復可能とすることが重要である。
【0061】
図8は、第2世代画像におけるビットカウント対Q_SCALEのグラフである。曲線の平坦部は、Q_SCALE=Q1のときの第1世代の圧縮の結果である。前に圧縮された画像データに対応する「ビット数対Q_SCALE」曲線の平坦部は、2/3*Q1から2*Q1まで続いている。図9は、第2世代画像データにおけるビット数対Q_SCALEのプロファイルを示し、間隔が広すぎたビット割当ポイントによって起こる影響を表している。上方のQ_SCALEビット割当値QUは曲線の平坦部に対応するのに対し、下方のQ_SCALE割当値QLは曲線の急な負の勾配部分に対応している。理想的なQ_SCALE値は、曲線の平坦部に対応する。しかしながら、QUとQL間の直線外挿(linear extrapolation)によって、予測MBターゲットは2/3*Q1〜QUの範囲から選択されたQ_SCALEを適用することによって実際に発生する実ビット数より高くなる。この結果、2分探索器700は高すぎるQ_SCALEを選択してしまう。2分探索器700によって選択されたQ_SCALEによって逆戻り探索の開始点が決まるので、2分探索のQ_SCALE値(Q_ALLOC)が高くなりすぎると、逆戻り探索に悪影響が出て第1世代のQ_SCALEに戻ることができなくなる。
【0062】
図10乃至図12は、選択されたビット割当ポイントの変動を低減するために所定のサブセットのQ_SCALE_CODESがどのように使用されるかを模式的に説明した図である。図10(図6と同じ)は、Q_START_CODEが選択されたQ_SCALE_CODESの範囲の中心を決定する様子を示している。この場合、Q_START_CODEの値が変化すると全ての4個の選択されたQ_SCALE_CODESが変化する。図11は、Q_START_CODEを用いて、固定且つ等間隔のQ_SCALE_CODESの範囲の中からどのセットをビット割当用として選択するかを決めている。この場合、中央の2個のQ_SCALE_CODESがQ_START_CODEをまたぐように4個のQ_SCALE_CODESが選択されている。図12は、ある世代から次の世代へ移行する際、又はある画像フレームから他の画像フレームへの移行に伴ってQ_START_CODEの値が変化したときに、4個中3個の選択されたQ_SCALE_CODESが図11で選択されたものと同じであることを示している。
【0063】
図13は、ターゲットの反復性を改善する固定ビット割当ポイントの「線形(linear)」セットを示す図である。ここでは、6個のビット割当段(bit allocation stages)をアクティビティオフの場合Q_SCALE_CODES{1,7,13,19,25,31}からなるセットに含める。一方、アクティビティオンの場合には、可能な2因数の効果によって、6個のビット割当値のセットはQ_SCALE_CODES{1,3,6,9,12,15}となる。
【0064】
固定ビット割当段の間隔を狭めることによってターゲットの反復性(repeatability)を更に改善することができ、ビット数対Q_SCALEのグラフにおいて、曲線の折れ曲がり部に亘る補間が発生する可能性が低くなる。限定されたケースを図14のグラフに示す。これは理想的に、
【0065】
【数4】
Figure 2004007526
【0066】
となるが、この比率は1.5より若干高くても低くてもかまわない。この規則を非線形の固定ビット割当ポイントセットに適用した例を図15に示し、図15の非線形のセットはQ_SCALE_CODES{1,2,3,5,7,11,15,22,31}からなる。因数NORM_ACTの効果により、アクティビティオフの場合の最大の利用可能なQ_SCALE_CODEは31であり、アクティビティオンの場合の最大の利用可能なQ_SCALE_CODEは15となる。更に、ビット割当ポイントのセットはDCT_PRECISIONに依存するが、その理由は、後述するように、最小ビット割当ポイントが選択されたDCT_PRECISIONにおけるMINIMUM_Qに依存するからである。
【0067】
図16は、各MBUに対し、本発明の具体例に基づくビット割当器400によって実行されるアルゴリズムを表すフローチャートである。ステップ1は、DPCMリフォーマット器410、DPCM器420及びゴーロン長器430の協調動作で実行される。ステップ2A〜2Dは、量子化器452により実行され、ステップ3〜5は、決定論理器470により実行される。
【0068】
ステップ1において、MBU内の全MBに対して1回の無ひずみDPCM試し符号化を実行し、各MBについてDPCM符号化によって生成されるビット数MB_DPCM_BITを測定する。
【0069】
ステップ2Aにおいて、MBU内の全MBに対して6回の有ひずみDCT符号化を実行して、各ブロック及び6個の試し量子化除数Q_SCALE(1)〜(6)の各々について、MBの有ひずみDCT符号化によって生成されるビット数MB_DCT_BITS(Q_SCALE)を測定する。量子化除数Q_SCALEの各値は、31個のQ_SCALE_CODEのいずれか1つと線形又は非線形であるQ_SCALE_TYPEとの組合せにより定まる。31個の使用可能なQ_SCALE_CODEに関する量子化除数Q_SCALEの全範囲を完全に走査する代わりに、Q_SCALE_CODEのサブセット(subset:以下、SSという)を選択する。SSは、量子化除数パラメータDCT_PRECISIONの値とアクティビティがオンかオフの両方を考慮して定められる。例えば、DCT_PRECISION=1でアクティビティがオフの場合、サブセットは、
SS=[2,3,5,7,10,15,22,31]
となる。一方、アクティビティがオンの場合(この場合、NORM_ACTは0.5〜2の範囲にある)、サブセットは、
SS=[2,3,5,7,10,15]
で与えられる。
【0070】
下記表2は、「アクティビティオン」と「アクティビティオフ」の両方に対する量子化除数パラメータDCT_PRECISIONの各値について、本発明の具体例で用いられたビット割当用サブセットを示したものである。
【0071】
【表2】
Figure 2004007526
【0072】
試し量子化で使用する6個の量子化除数Q_SCALE(1)〜(6)は、該当するSSから取り出した6個のQ_SCALE_CODEに関する量子化除数に対応している。なお、各SSは、殆どの場合、6より多い数のQ_SCALE_CODEを含んでいる。量子化除数パラメータQ_STARTの値を用いて、サブセットの中から試し量子化で使用する6個のQ_SCALE_CODEを選択する。
【0073】
サブセット内で使用可能な最小のQ_SCALE_CODEは、下記式の量子化ファクタMINIMUM_Qを表すコードであり、
MINIMUM_Q=2(DCT_PRECISION)
あるいは、このコードが存在しないときは、使用可能な最小のQ_SCALE_CODEは、量子化ファクタMINIMUM_Qよりも大きな数の中で最も小さなQ_SCALE_CODEである。
【0074】
ステップ2Bにおいて、量子化除数パラメータDCT_PRECISIONの値に関係する量子化除数パラメータQ_STARTの誤差を算出し、この誤差は、
Q_START_ERROR=24/(3−2DCT_PRECISION
で与えられるので、量子化の粗さが小さくなる量子化除数パラメータDCT_PRECISIONの値に対して、Q_STARTの誤差は大きくなる。
【0075】
ステップ2Cにおいて、量子化除数パラメータQ_STARTから誤差Q_START_ERRORを減算することによってQ_SCALE_MINを算出するとともに、図3のルックアップテーブルからQ_SCALE_MINに関するQ_SCALE_CODE及びQ_SCALE_CODE_MINを求める。サブセットの中のQ_SCALE_CODE_MIN以下の、一番近いQ_SCALE_CODEを識別し、このQ_SCALE_CODEに対応した量子化除数を、6個の試し量子化パラメータの中の1番目、すなわち試し量子化除数Q_SCALE(1)として定める。なお、サブセット中にQ_SCALE_CODE_MIN以下のQ_SCALE_CODEがない場合は、試し量子化除数Q_SCALE(1)を、サブセット中の最も小さなQ_SCALE_CODEに対応した量子化ファクタに設定する。
【0076】
ステップ2Dにおいて、残る5個の試し量子化除数Q_SCALE(2)〜(6)を、サブセット中の試し量子化除数Q_SCALE(1)よりも順に大きな5個Q_SCALE_CODEに割り当てる。サブセット中にこれを満足する十分な数のQ_SCALE_CODEがないときは、試し量子化除数Q_SCALE(6)を、サブセット中の最大のQ_SCALE_CODEに設定するとともに、試し量子化除数Q_SCALE(1)〜(5)を、サブセット中の試し量子化除数Q_SCALE(6)よりも順に小さな5個のQ_SCALE_CODEに設定する。
【0077】
ステップ3において、6回の試しDCT量子化を行い、マクロブロックユニット内の全てのマクロブロックに亘るMB_DCT_BITS(Q_SCALE)の値の総和を求めて、6個の試し量子化除数Q_SCALE(1)〜(6)の各々に対する値MBU_DCT_BITS(Q_SCALE)を生成する。MBU毎のターゲットビット数は、各画像フレーム(又はフィールド)毎に定めた所定のFRAME_TARGETから、
MBU_TARGET=FRAME_TARGET/40
により算出される。
【0078】
MBU_DCT_BITS(Q_SCALE)の6個の値からなるセットをターゲットビット数MBU_TARGETと比較し、ターゲットビット数MBU_TARGETの直ぐ上と直ぐ下にある、MBU_DCT_BITS(Q_SCALE)の2つの値B_UMBU、B_LMBUをそれぞれ次のように定義する。
【0079】
B_UMBU≡MBU_DCT_BITS(Q_SCALE(n))>MBU_TARGET
B_LMBU≡MBU_DCT_BITS(Q_SCALE(n+1))≦MBU_TARGET
図17は、量子化除数Q_SCALEに対するMBU_DCT_BITSを示すグラフであり、量子化除数Q_SCALEのコードQ_SCALE(n)、Q_SCALE(n+1)にそれぞれ対応した2つのビット数の値B_LMBU、B_UMBUを示している。小さい方の量子化除数Q_SCALE(n)は、大きい方の量子化除数Q_SCALE(n+1)に比べて、ビット数が多くなっている。マクロユニットに関する「ビット対Q_SCALE」のグラフの性質を利用して、MBUに属する各MBに対するターゲットビット数MBU_TARGETを導き出す。特に、図17に示す量X、Y、Zは次のように定義される。
【0080】
X≡MBU_TARGET−B_UMBU
Y≡B_LMBU−MBU_TARGET
Z≡B_UMBU−B_LMBU=X+Y
したがって、
MBU_TARGET=(B_UMBUX+B_LMBUY)/Z
したがって、図10乃至図12のステップ4において、ターゲットビット数MB_TARGETは、次のようにして算出される。
【0081】
MB_TARGET=X*MB_DCT_BITS(Q_SCALE(n))/Z +Y*MB_DCT_BITS(Q_SCALE(n+1))/Z
そして、もしZ=0ならば、ゼロの除算を避けるために、MBU_TARGET=MBU_DCT_BITS(Q_SCALE(n))と設定する。
【0082】
ステップ5において、MBU内の各MB毎に無ひずみDPCM符号化と有ひずみDCT符号化との間で選択を行うために、MB_DPCM_BITをターゲットビット数MB_TARGETと比較する。MB_DPCM_BITがターゲットビット数MB_TARGETより大きいときは、そのマクロブロックに対して有ひずみDCT符号化を選択する。逆に、MB_DPCM_BITがターゲットビット数MB_TARGET以下ときは、そのマクロブロックに対して無ひずみDPCM符号化モードを選択する。無ひずみDPCM符号化モードがMBに対して選択される毎に、ターゲットビット数MBU_TARGETを再計算して、MBU_TARGET=MBU_TARGET−MB_DPCM_BITとする。また、MBU_DCT_BITS(Q_SCALE(n))及びMBU_DCT_BITS(Q_SCALE(n+1))を次のように再計算する。
【0083】
MBU_DCT_BITS(Q_SCALE(n))=MBU_DCT_BITS(Q_SCALE(n))              −MB_DCT_BITS(Q_SCALE(n))
MBU_DCT_BITS(Q_SCALE(n+1))=MBU_DCT_BITS(Q_SCALE(n+1))                −MB_DCT_BITS(Q_SCALE(n+1))
ターゲットビット数MBU_TARGETをステップ5において再計算しているので、ターゲットビット数MB_TARGETについても、有ひずみDCTモード符号化に現在割り当てらているMBの個数を考慮して、再計算する必要がある。ステップ6において、DPCM符号化モードに切り替わるMBが無くなるまで、全ての有ひずみDCTモードのMBに対してステップ4、5を繰り返す。これを達成するのに、代表的には5、6回の反復で十分である。
【0084】
量子化除数Q_SCALEに関する不正確な予測によって、適切な量子化除数Q_SCALEがビット割当探索範囲(6個の量子化除数Q_SCALEからなる)外に位置するような状況を検討する必要がある。このような場合、ターゲットビット数MB_TARGETを計算するために、上述のステップ3、4の方法に対する代わりの方法が必要となる。2つの可能な方法が考えられる。
【0085】
先ず、ステップ3において、MBU_DCT_BITS(Q_SCALE(n))が、nが6個の全ての値についてターゲットビット数MBU_TARGET以下であり、量子化が6個の試し値の全てについて粗すぎるときは、ステップ4におけるターゲットビット数MB_TARGETを次のように計算する。
【0086】
【数5】
Figure 2004007526
【0087】
この第1の方法を図18に示す。
【0088】
第2に、ステップ3において、MBU_DCT_BITS(Q_SCALE(n))が、nが6個の全ての値についてターゲットビット数MBU_TARGETより大きく、量子化が6個の試し値のいずれについても粗すぎないときは、試し量子化除数Q_SCALE(5)、Q_SCALE(6)をステップ3におけるQ_SCALE(n)、Q_SCALE(n+1)として選択する。この場合、ステップ4は変更されないが、今度はターゲットビット数MB_TARGETの外挿(extrapolating)効果が生じる。この第2の方法を図19に示す。
【0089】
ターゲットビット数MB_TARGETの計算に加え、ビット割当器400は、2分探索における量子化除数Q_SCALEの開始点の値Q_BASEを設定する。量子化除数Q_SCALEの開始点の値Q_BASEは、適切なMBU_DCT_BITS対Q_SCALE曲線を用いて、ターゲットビット数MB_TARGETから求められる。この具体例のように5回の2分探索を行う場合、開始点の値Q_BASEは、単にQ_SCALE_CODE=16で与えられる量子化除数Q_SCALE(すなわち量子化表の中点)である。したがって、2分探索は、この開始点の値Q_BASEから開始することにより、量子化除数Q_SCALEの全範囲をカバーすることができる。しかしながら、2分探索の回数を少なくした具体例では、開始点の値Q_BASEを、各マクロブロック対してQ_SCALE(n)とQ_SCALE(n+1)の中間に設定する。有ひずみDCTモード符号化に割り当てられたマクロブロックに対してのみ、決定論理ユニット470から開始点の値Q_BASE及びターゲットビット数MB_TARGETを出力し、ターゲット挿入器500によって1MBUだけ遅延された画像データIP_DD1、IP_DD2からなるビットストリームに付加する。ターゲットビット数MB_TARGET及び開始点の値Q_BASEを2分探索器700に供給し、2分探索器700は、これらを最終的な量子化除数Q_SCALEを決定するのに使用する。
【図面の簡単な説明】
【図1】データ記録/再生装置又はデータ送信/受信システムと共に使用される、圧縮符号化装置及び対応する復号装置の模式図である。
【図2】図1のビットレート圧縮符号化装置を模式的に説明するための図である。
【図3】図1の符号化装置のビットレート圧縮処理で使用するパラメータの表である。
【図4】図1の復号装置を模式的に示した図である。
【図5】図2の符号化装置のビット割当器を模式的に説明するための図である。
【図6】ビット割当中に試し量子化除数を割り当てるシステムを説明するための図である。
【図7】図6に対応するビット数対Qの曲線を模式的に説明するための図である。
【図8】第2世代の画像データに関するビット数対Qの曲線である。
【図9】図8の第2世代の画像データに関するターゲット外挿を示した図である。
【図10】選択ビット割当ポイントの変動を低減するのに所定のサブセットのQ_SCALE_CODESがどのように用いられるかを模式的に説明するための図である。
【図11】選択ビット割当ポイントの変動を低減するのに所定のサブセットのQ_SCALE_CODESがどのように用いられるかを模式的に説明するための図である。
【図12】選択ビット割当ポイントの変動を低減するのに所定のサブセットのQ_SCALE_CODESがどのように用いられるかを模式的に説明するための図である。
【図13】本発明の具体例に基づく、固定割当ポイントの2個の線形セットを示した図である。
【図14】極限ケースにおけるビット数対Q_SCALEのグラフ説明図である。
【図15】本発明の具体例に基づく、非線形セットの固定ビット割当ポイントを示した図である。
【図16】ビット割当部によりマクロブロックユニット毎に行われるアルゴリズムを示すフローチャートである。
【図17】Q_SCALEに対するMBU_DCT_BITSを説明するグラフである。
【図18】全部で6個の試し量子化値について量子化が粗すぎる場合における、Q_SCALEに対するMBU_DCT_BITSのグラフである。
【図19】6個の試し量子化値のいずれに対しても量子化が粗くない場合における、Q_SCALEに対するMBU_DCT_BITSのグラフである。

Claims (10)

  1. 利用可能な量子化の程度のセットの中から取り出された量子化の程度でデータの量子化を実行することによって、所定のターゲット出力データ量に基づき、入力データを圧縮するデータ圧縮装置において、
    上記利用可能な量子化の程度のセットのサブセットの中から取りだされた個々の試し量子化の程度で試し量子化を実行する1以上の試し量子化器と、
    上記試し量子化器の結果に応じて、上記ターゲット出力データ量を超えない条件を満たす最終的な量子化の程度を上記利用可能な量子化の程度のセットの中から選択する選択器と、
    上記最終的な量子化の程度で上記入力データを量子化する最終量子化器とを備えるデータ圧縮装置。
  2. 上記入力データは画像データであることを特徴とする請求項1記載のデータ圧縮装置。
  3. 上記入力データの特性から上記所定のターゲット出力データ量に適した量子化開始点を決定する量子化開始点推定器を備え、上記試し量子化の程度は上記量子化開始点に基づいて設定されることを特徴とする上記請求項1又は2記載のデータ圧縮装置。
  4. 図面を参照して説明したデータ圧縮装置。
  5. 利用可能な量子化の程度のセットの中から取り出された量子化の程度でデータの量子化を実行することによって、所定のターゲット出力データ量に基づき、入力データを圧縮するデータ圧縮方法において、
    上記利用可能な量子化の程度のセットのサブセットの中から取りだされた個々の試し量子化の程度で1以上の試し量子化を実行するステップと、
    上記試し量子化器の結果に応じて、上記ターゲット出力データ量を超えない条件を満たす最終的な量子化の程度を上記利用可能な量子化の程度のセットの中から選択するステップと、
    上記最終的な量子化の程度で上記入力データを量子化するステップとを有するデータ圧縮方法。
  6. 図面を参照して説明したデータ圧縮方法。
  7. 請求項5又は6記載のデータ圧縮方法を実施するプログラムコードを有するコンピュータソフトウェア。
  8. 請求項7記載のコンピュータソフトウェアを提供するデータ提供媒体。
  9. 上記データ提供媒体は、伝送媒体であることを特徴とする請求項8記載のデータ提供媒体。
  10. 上記データ提供媒体は、記憶媒体であることを特徴とする請求項8記載のデータ提供媒体。
JP2003090687A 2002-03-28 2003-03-28 データ圧縮装置及び方法 Pending JP2004007526A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0207455A GB2387059A (en) 2002-03-28 2002-03-28 Data compression using trial quantisations to determine final quantiser

Publications (1)

Publication Number Publication Date
JP2004007526A true JP2004007526A (ja) 2004-01-08

Family

ID=9934003

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003090687A Pending JP2004007526A (ja) 2002-03-28 2003-03-28 データ圧縮装置及び方法

Country Status (4)

Country Link
US (1) US20030215152A1 (ja)
EP (1) EP1351518A3 (ja)
JP (1) JP2004007526A (ja)
GB (1) GB2387059A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008005337A (ja) * 2006-06-23 2008-01-10 Canon Inc 画像符号化装置及び画像符号化方法
JP2008514142A (ja) * 2004-09-22 2008-05-01 ドロップレット テクノロジー インコーポレイテッド 多重技術エントロピー符号化システム及び方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7525463B2 (en) * 2003-04-17 2009-04-28 Droplet Technology, Inc. Compression rate control system and method with variable subband processing
US7936938B2 (en) 2004-09-07 2011-05-03 Canon Kabushiki Kaisha Methods and devices for encoding a digital image signal and associated decoding methods and devices
FR2875076B1 (fr) * 2004-09-07 2007-02-02 Canon Kk Procede et dispositif de codage d'un signal numerique d'image et procede et dispositif de decodage associes
US10359518B2 (en) * 2016-12-30 2019-07-23 DeepMap Inc. Vector data encoding of high definition map data for autonomous vehicles

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146324A (en) * 1990-07-31 1992-09-08 Ampex Corporation Data compression using a feedforward quantization estimator
JP3109854B2 (ja) * 1991-04-23 2000-11-20 キヤノン株式会社 画像符号化方法及び装置
US5532940A (en) * 1993-11-24 1996-07-02 Intel Corporation Process, apparatus and system for selecting quantization levels for encoding video signals
JP3050047B2 (ja) * 1994-06-24 2000-06-05 日本ビクター株式会社 動画像符号化装置及び動画像符号化方法
JP3336754B2 (ja) * 1994-08-19 2002-10-21 ソニー株式会社 デジタルビデオ信号の記録方法及び記録装置
DE4433819A1 (de) * 1994-09-22 1996-03-28 Philips Patentverwaltung Coder zur segmentweisen Codierung eines Eingangssignales
US5629780A (en) * 1994-12-19 1997-05-13 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Image data compression having minimum perceptual error
US5926569A (en) * 1995-09-28 1999-07-20 Intel Corporation Bitrate damper for selecting quantization levels for image encoding
GB2342525B (en) * 1995-10-30 2000-06-28 Sony Uk Ltd Image quantisation based on image activity
US6553068B1 (en) * 1997-03-12 2003-04-22 Matsushita Electric Industrial Co., Ltd. Video signal coding method and device adapted to control code amounts according to the characteristics of pictures
US6167085A (en) * 1997-07-31 2000-12-26 Sony Corporation Image data compression
GB2335815B (en) * 1998-03-25 2002-02-27 Sony Uk Ltd Data compression
JP3259702B2 (ja) * 1998-12-24 2002-02-25 日本電気株式会社 動画像可変ビットレート符号化装置および方法
CN1204751C (zh) * 1999-04-13 2005-06-01 松下电器产业株式会社 编码数据变换方法、再编码方法、再编码系统以及数据记录媒体
GB2356510B (en) * 1999-11-18 2004-04-21 Sony Uk Ltd Data compression

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008514142A (ja) * 2004-09-22 2008-05-01 ドロップレット テクノロジー インコーポレイテッド 多重技術エントロピー符号化システム及び方法
JP2008005337A (ja) * 2006-06-23 2008-01-10 Canon Inc 画像符号化装置及び画像符号化方法

Also Published As

Publication number Publication date
US20030215152A1 (en) 2003-11-20
GB0207455D0 (en) 2002-05-08
EP1351518A3 (en) 2004-01-07
GB2387059A (en) 2003-10-01
EP1351518A2 (en) 2003-10-08

Similar Documents

Publication Publication Date Title
RU2637879C2 (ru) Кодирование и декодирование значащих коэффициентов в зависимости от параметра указанных значащих коэффициентов
US6639945B2 (en) Method and apparatus for implementing motion detection in video compression
US8374451B2 (en) Image processing device and image processing method for reducing the circuit scale
JP2008527789A (ja) エントロピー符号化方法
WO2006098226A1 (ja) 符号化装置および符号化装置を備えた動画像記録システム
KR20060027795A (ko) 하이브리드 비디오 압축 방법
JP2001512651A (ja) 量子化マトリクスのフレーム毎の計算方法
JP2005520360A (ja) 損失の無い方法でデジタル画像を符号化するための装置および方法
KR20040018400A (ko) Golomb-rice 코딩을 사용한 dct 압축
JPH05276501A (ja) 可変長の適応映像圧縮方法及び装置
JP2003032677A (ja) 動画像圧縮符号化装置
JP4263517B2 (ja) データ圧縮装置及び方法
US6584226B1 (en) Method and apparatus for implementing motion estimation in video compression
US20050249293A1 (en) Noise filter for video processing
EP0782341A2 (en) Image data compression system
US20100002946A1 (en) Method and apparatus for compressing for data relating to an image or video frame
JP2004007526A (ja) データ圧縮装置及び方法
US5825970A (en) Quantization number selecting apparatus for DVCR and method therefor
JP2824222B2 (ja) 映像データ補償方法及び補償装置
JP2004007525A (ja) データ圧縮装置及び方法
KR20160040930A (ko) 이미지 재부호화 방법 및 그 장치
JPWO2002080575A1 (ja) 画像処理装置、画像処理方法、画像処理プログラムおよび記録媒体
KR20100013142A (ko) 프레임 메모리 압축방법
US7490123B2 (en) Data compression
CN114466190B (zh) 一种图像集合级别的码率控制方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051026

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080415

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081111