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

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

Info

Publication number
JP2004129204A
JP2004129204A JP2003090688A JP2003090688A JP2004129204A JP 2004129204 A JP2004129204 A JP 2004129204A JP 2003090688 A JP2003090688 A JP 2003090688A JP 2003090688 A JP2003090688 A JP 2003090688A JP 2004129204 A JP2004129204 A JP 2004129204A
Authority
JP
Japan
Prior art keywords
data
quantization
scale
target
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.)
Granted
Application number
JP2003090688A
Other languages
English (en)
Other versions
JP4263517B2 (ja
Inventor
Nicholas Ian Saunders
サウンダーズ ニコラス アイアン
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 JP2004129204A publication Critical patent/JP2004129204A/ja
Application granted granted Critical
Publication of JP4263517B2 publication Critical patent/JP4263517B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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/115Selection of the code volume for a coding unit prior to coding
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding 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/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
    • 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/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/142Detection of scene cut or scene change
    • 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/172Methods 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 picture, frame or field
    • 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/192Methods 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 the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/198Methods 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 smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (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)
  • Image Processing (AREA)

Abstract

【課題】最良画質を得るための量子化ステップの選択が保証されるデーター圧縮装置を提供する。
【解決手段】データ圧縮装置は、入力データが前に圧縮/伸長サイクルを経験したことがないソースデータか否かを検出するソース検出部と、ソース検出部に応答して、ソース入力データに対しては第1の値であり、非ソース入力データに対してはこの第1の値よりも大きな第2の値である所望の出力データ量を圧縮データに設定するデータ量発生器と、全体として所望の出力データ量となる個々のターゲットデータ量を、所望の出力データ量に基づいて、入力データの各サブセットに割り当てるターゲット割当器と、入力データの各サブセットを個々のターゲットデータ量に基づいて圧縮するデータ圧縮部とを備える。
【選択図】 図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】
「最良」の量子化ステップが、所謂多世代(multi−generation)画像に亘って選択されるように保証するために、上述した試し量子化によって見い出された量子化値から開始し、その後はより粗い量子化(大きな値の量子化)除数を用いて更なる検証を行う逆戻り探索(backsearch)を実施する。これらの逆戻り探索における量子化ステップの各々を用いて、データを量子化した後、逆量子化する。代替として、逆量子化の代わりに、量子化器の剰余(residual)から誤差(error)が算出される。逆量子化データと入力画像データを遅延したもの(量子化していないもの)とを比較し、この比較において最も誤差が小さくなる量子化ステップを逆戻り探索して、この量子化ステップを量子化の最終出力処理のために選択する。
【0010】
【発明が解決しようとする課題】
逆戻り探索処理において、第2世代の画像におけるマクロブロックのターゲットビット数(target bit count)が対応する第1世代画像におけるマクロブロックのターゲットビット数よりも少ない場合に問題が生じる。ターゲットビット数が不一致する結果として、第2世代の画像データは、第1世代の画像データよりも粗く(より大きな量子化除数を用いて)量子化される。図1は、この問題を模式的に説明するための図である。逆戻り探索処理は、量子化除数Q_SCALE=Q_ALLOCから始まり、ここで、量子化除数Q_ALLOCは、マクロブロックのターゲットビット数に基づきビット割当/2分探索処理(bit allocation/binary search process)により選択されたものである。また、逆戻り探索は、量子化除数Q_ALLOCに対応した量子化よりも粗い一連の、例えば12個の量子化除数QB1〜QB12を試験する。(これらの試験した中で)再生画像のノイズが最も少なかった量子化除数を、Q_FINALとして決定する。したがって、第1世代の圧縮に対応した量子化除数Qは、量子化除数Q_ALLOCよりも粗くなく(より小さな量子化除数であり)、再生された第2世代の画像に対して最良の画質を与えるそうな値であるにもかかわらず、後戻り探索では検出されない。
【0011】
原理上、この問題は、第2世代の逆戻り探索の開始点を、量子化除数Q_ALLOCよりも小さな量子化除数に対応させ、したがって逆戻り探索が量子化除数Qを確実に含むように調節することにより、解決することができるが、このようにすると、より小さな量子化除数が選択されてしまうことになる。これは、通信システムが処理できないような高いビットレートになりやすい。符号化ビットレートが所定の最大符号化ビットレートを超えると、許容できないデータ消失が起こる可能性がある。
【0012】
【課題を解決するための手段】
本発明は、データ圧縮装置を提供する。このデータ圧縮装置は、入力データが前に圧縮/伸長サイクルを経験したことがないソースデータか否かを検出するソース検出部と、ソース検出部に応答して、ソース入力データに対しては第1の値であり、非ソース入力データに対してはこの第1の値よりも大きな第2の値である所望の出力データ量を圧縮データに設定するデータ量発生器と、全体として所望の出力データ量となる個々のターゲットデータ量を所望の出力データ量に基づいて、力データの各サブセットに割り当てるターゲット割当器と、入力データの各サブセットを個々のターゲットデータ量に基づいて圧縮するデータ圧縮部とを備える。
【0013】
本発明は、前に圧縮及び伸長されたことがないデータに対しては所望のデータ量をより低いレベルのデータ量に設定することにより、上述した問題を解決する。データ量の違いは十分に小さく(例えば5%)することができ、それ自体は顕著ではないが、後の世代の圧縮処理において、第1世代で用いたのと同程度の量子化を達成する余裕(headroom)が得られる。これにより、後の世代のエラーレートを低減することができる。
【0014】
【発明の実施の形態】
図2は、データ圧縮システムの構成を模式的に示す図である。このデータ圧縮システムは、符号化装置(encoder)10と、データ処理装置(data processingmodule)20と、復号装置(decoder)30とを備える。入力の高品位(high difinition)ビデオ信号5は、符号化装置10に供給される。符号化装置10は、冗長度を除去し、その統計的性質を利用するためにビデオ画像データをモデル化し、入力画像データ5の情報を圧縮フォーマットで表現する出力データシンボルを生成する。符号化装置10は、圧縮データ信号15Aを出力し、この圧縮データ信号15Aはデータ処理装置20に供給され、そこで、通信チャンネルを介して伝送されるか、又は記録媒体に格納される。記録媒体から読み出された、又は通信チャンネルを介して受信された圧縮データ信号15Bは、復号装置30に供給され、復号装置30は、圧縮データ信号15Bを復号して高品位の出力画像信号35を形成する。
【0015】
図3は、図2のビットレートを低減する符号化装置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から、入力画像フレーム内の隣接した画素ブロックがシャッフル順序では隣接した位置で読み出されないように画像データをインタリーブする所定のシャッフル順序に従って、読み出される。
【0016】
シャッフル処理により、復号装置30によって再生される画像におけるデータ消失の影響が軽減される。入力ビデオフレームにおいて隣接した画素ブロックは、シャッフルされたビットストリームでは、離れている。短時間のデータ消失により、ビットストリームの連続した一部が損なわれ、幾つかのデータブロックが影響を受けるが、これらのブロックは、再生画像内では連続していない。この場合、データ隠蔽(concealment)を適切に用いて、消失したブロックを再構成することができる。更に、シャッフル処理は、入力ビデオデータをMBUに疑似ランダム的に分配することによって画像フレームの各MBUに選択された量子化パラメータの変化の度合い(variation)を低減することができ、可変速再生(suttle playback)時の画質が改善される。
【0017】
現画像フレームは、外部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)。
【0018】
シャッフル部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縦ブロックからなる。
【0019】
ビット割当器400は、無ひずみ(lossless)の差分パルス符号変調(differential pulse code modulation:以下、DPCMという)符号化とDCT量子化符号化を比較する。
【0020】
DPCMは、画像内の空間的に近い画素は相関が高いことを利用した簡単な画像圧縮技術である。DPCMでは、画素値自体は伝送されない。代わりに、符号化装置により、前に送信した画素値に基づいた画素の期待値が予測される。1回のDPCM符号化処理(single DPCM encoding stage)は、DPCMリフォーマットと、DPCM変換と、エントロピー符号化計算を含む。
【0021】
これに対し、DCT量子化符号化の処理は、1回のDCT変換と、一連の量子化除数を用いた複数回の量子化処理を含み、各量子化処理の後にハフマン(Huffman)エントロピー符号化計算が行われる。この具体例では、6個の試し(trial)量子化除数がビット割当器400により試験される。ハフマン符号化は、既知の無ひずみ圧縮技術であり、出現頻度の高い値は短い符号で、出現頻度の低い値は長い符号で表現される。DCT試し符号化処理は、オプションとして、画像領域の「アクティビティ(activity)」に依存した量子化を含む。アクティビティは、画像ブロックの適切に正規化された画素の分散(variance)から算出される尺度(measure)である。高いアクティビティを有する画像ブロックでは、量子化をより粗くしても、見る人には知覚されにくいことが知られているので、各ブロックの量子化ステップを、アクティビティのレベルに応じて適切に調整することができる。アクティビティを考慮することにより、再生画像の知覚的な画質を維持したまま、圧縮率をより高めることができる。
【0022】
DPCM及びDCT量子化の試し符号処理により、所要の符号化ビットレートに基づいた所定のフレームのターゲットビット数によって制限されるMBのターゲットビット数を計算する。各MBに対して最少の符号化ビットが得られるモード(DCTかDPCM)が選択される。ビット割当器400は、信号405をターゲット挿入器500に出力する。この信号405は、各マクロブロックに対して選択された符号化モードと、2分探索器700で使用される量子化除数Q_SCALEの値Q_BASEと、各マクロブロックに対するターゲットビット数(bit count traget)とに関する情報を含んでいる。信号405に含まれる情報は、ターゲット挿入器500によって、対応する遅延された画像データのビットストリームに付加される。ターゲット挿入器500は、2つの信号505A、505Bを出力し、これらの信号はDCT変換器600に入力として供給される。
【0023】
DCT変換器600で再びDCT係数を計算するが、今回は画像データの遅延バージョンに基づき計算を行う。DCT変換器600は、データを2分探索器700に出力する。2分探索器700は、DCT量子化符号化すべき各MBに対して2回目の(second stage)Q割当を実行するとともに、2分探索法を用いて、各マクロブロックに対して適切な量子化除数を測定する。2分探索器700は、ビット割当器400で使用された分解能より高い分解能で(使用可能な量子化除数の範囲内で)量子化除数を測定する。実際には、5回の2分探索における開始点を定めるためにQ_BASEを用いて、DCTモードの各マクロブロックに対してより高い分解能の量子化ステップQ_ALLOCが選択されるようにする。DPCMモードのマクロブロックは、バイパス機能によって2分探索器700を通過するので、その出力においてデータは変更されてない。
【0024】
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モードのマクロブロックに対してはバイパス機能が適用される。
【0025】
逆戻り探索器800から出力される、選択された量子化ステップQ_FINALと、DCT符号化器600で生成されたDCTブロックは、量子化器900に供給され、ここで、最終的な量子化が実行される。量子化処理は、以下のようにして行われる。
【0026】
DCTモードの符号化では、各8×8ブロックの1つのDC係数は、次式に従って量子化される。
【0027】
Q(DC)=DC/(DC_QUANT*DCT_SCALER)
ここで、DCは量子化前の係数であり、DC_QUANTは、方式(system)によって設定されている量子化ファクタ(quantisation facter)であり、全てのMBを量子化するのに用いられる。DC_QUANTは、下記表に示すように、DC_PRECISIONから決定される。
【0028】
【表1】
Figure 2004129204
【0029】
DC_PRECISIONは、各フレームに対して固定値、好ましくは00に設定されているる。
【0030】
DCT_SCALERは、量子化除数パラメータDCT_PRECISIONを指数とすることによって決定される量子化ファクタであり、DCT_SCALER=2DCT_PRECISIONである。この具体例では、規格(conventin)が用いられ、量子化除数パラメータDCT_PRECISIONは4つの可能な値0、1、2、3を取り、3は最も粗い量子化に対応している。なお、MPEGスタジオプロファイル標準規格では、これとは異なり、DCT_PRECISION=0が最も粗い量子化に対応し、DCT_PRECISION=3が最小粗さの量子化に対応している。
【0031】
同様に、ブロックの63個のAC係数は、次式に従って量子化される。
【0032】
Q(AC)=(AC*16)/(Q_MATRIX*AC_QUANTISE*DCT_SCALER)
ここで、ACは量子化前の係数であり、Q_MATRIXは、DCTブロックの各要素に1つ1つが対応した64個の重みの配列である。AC_QUANTISEは、量子化除数Q_SCALEとNORM_ACTの積である。量子化除数Q_SCALEは、Q_SCALE_TYPEによって定まる線形量子化スケール又は非線形量子化スケールに対応したファクタである。各Q_SCALE_TYPEは、Q_SCALE_CODE(1)〜Q_SCALE_CODE(31)で示される31個の可能な値からなる。図4の表は、全31個のQ_SCALE_CODEに対する各Q_SCALE_TYPEに対応した量子化除数Q_SCALEの値を示したものである。上記式において、NORM_ACTは、正規化されたアクティビティファクタであり、「アクティビティオン(activity on)」の場合に0.5〜2.0の範囲にあるが、「アクティビティオフ(activity off)」の場合は1に等しくなる。
【0033】
AC_QUANTISE=NORM_ACT*Q_SCALEとし、除数の一部として組み込まれる前に、最も近い量子化除数Q_SCALE(すなわち、図4の表におけるQ_SCALE_CODEに対応するQ_SCALE)に丸められる。
【0034】
量子化の結果Q(DC)、Q(AC)は、正規無限丸め(normal infinity rounding)と呼ばれる方法で丸められる。この方法は、0.5より小さい正数を(ゼロに)切り捨て、0.5以上の整数を正の無限大に切り上げ、−0.5より大きな負数をゼロに切り上げ、−0.5以下の負数を負の無限大に切り捨てることにより丸める。
【0035】
ビット割当器400、2分探索器700及び逆戻り探索器800のそれぞれは、量子化器900によって実行される量子化処理と同じように、量子化処理を実行する。しかしながら、2分探索器700及び逆戻り探索器800では、ファクタNORM_ACTは、常に1に設定される。ビット割当器400によって実行されるビット割当処理の間のみ、ファクタNORM_ACTは1以外の値を取る。ビット割当中に生成されるMBターゲットは、アクティビティを考慮しているので、後段でこれを考慮する必要はない。
【0036】
量子化器900から出力される量子化データは、エントロピー符号器1000に供給され、ここで、無ひずみデータ圧縮が、エントロピー符号化の標準原理に基づき適用される。この具体例では、ハフマン符号化を使用しており、出現頻度の高い値は短い符号で、出現頻度の低い値は長い符号で表現される。
【0037】
エントロピー符号器1000の出力は、シャッフル部100内のパッキング器150に供給される。パッキング器150は、外部SDRAM200と協働して、エントロピー符号化器1000によって生成された可変長符号化データを固定長の同期ブロック(sync−block)にパックする。同期ブロックは、画像再生の際、独立して再生される最小のデータブロックである。
【0038】
パッキング機能は、SDRAM200の読出及び書込アドレスを操作することによって実現される。各MBUをSDRAM内の固定パッキング領域(fixed packing space)に割り当て、更にそれを、各MB用の名目パッキング領域(nominal packing space)に分割する。個々のワード長から算出される又はエントロピー符号化器1000から直接パッキング器150に供給される各MBの全体の長さも記憶する必要がある。符号化装置10からの出力は、同期ブロック1のデータ出力SB1、同期ブロック2のデータ出力SB2からなる。符号化処理で使用した量子化除数の情報も復号装置30に送られる。
【0039】
図5は、図2の復号装置の構成を示すブロック図である。復号装置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からなり、これから画像を再生することができる。
【0040】
図6は、シャッフル部100内に設けられたDCT_PRECISION検出器(図示せず)によって実行される計算を説明するための図である。DCT_PRECISION検出器は、入力ビデオデータがソースデータか非ソースデータか判定し、非ソースデータの場合、前の符号化/復号化サイクルで使用したDCT_PRECISIONインデックスを検出する。量子化除数パラメータDCT_PRECISIONの値は、DC係数とAC係数の両方に対する量子化に影響を与える。DC_QUANTの値が既知であるとすると(この具体例では各フレームに対してDC_PRECISIONを固定値00に設定しているので、DC_QUANT=8である)、DC丸めの影響を解析することにより、前世代で使用された量子化除数パラメータDCT_PRECISIONの値を検出することができる。DCT_PRECISION検出器は、入力ビデオデータが供給され、このビデオデータのDC量子化の解析を行う。画像フィールド又はフレームの各DCTブロックについて、64画素からなるブロックの各画素について6つの最下位ビット(LSB)の値の和を求め、各ブロックに対する6ビットの値DC[5:0]を生成する。特定のDC[5:0]の出現頻度は以下のアルゴリズムに従って求められる。
【0041】
=DC[5:0]の出現回数=00 0000
=DC[5:0]の出現回数=10 0000
=DC[5:0]の出現回数=x1 0000
=DC[5:0]の出現回数=xx 1000
=DC[5:0]の出現回数=xx x100
ここで、xは0か1を表す。実質上、DC[5:0]のインスタンスの数は、64で割り切れれば和Sに対応し、(64でなく)32で割り切れれば和Sに対応し、(32でなく)16で割り切れれば和Sに対応し、(16でなく)8で割り切れれば和Sに対応し、(8でなく)4で割り切れればSに対応する。図7は、特定のDC[5:0]値の出現頻度の計算を模式的に示している。
【0042】
この具体例において、5つの和S〜Sは、全てのビデオ成分からの全DCTブロックを含んでいる。しかしながら、他の具体例として、和S〜Sを各成分(RGB又はYCbCr)について別々に計算して、最終的な量子化除数パラメータDCT_PRECISIONの決定を、例えば多数決を用いて合成してもよい。
【0043】
和S〜Sを一旦算出したら、4つの所定の閾値th〜thを用いて、前世代で使用した量子化除数パラメータDCT_PRECISIONを検出し、予測値DCT_PREC_DETECTEDを生成する。以下の疑似コードは使用したアルゴリズムを表している。
【0044】
Figure 2004129204
上述のアルゴリズムは、前世代と現世代の両方においてDC_QUANT=8(DCT_PRECISION=00)を想定している。Q(DC)=DC/DC_QUANT*2DCT_PREC且つDC_QUANT=8であるので、DCデータについて除数、例えば8を検出したときは、更なる量子化はなく、上述のアルゴリズムにおいてDCT_PREC_DETECTED=0であることが導かれる。なお、このアルゴリズムは前世代と現世代の双方でDC_QUANTを考慮するように適合化される。
【0045】
和Sが閾値thと和Sの積より大きいときは、DCデータの検出された除数は64=8*2であり、アルゴリズムは、最も粗い量子化除数パラメータDCT_PRECISIONでの量子化に対応したDCT_PREC_DETECTED=3と設定する。(S+S)の値が閾値thと和Sの積より大きいときは、DCデータの検出された除数は32=8*2であり、アルゴリズムはDCT_PREC_DETECTED=2と設定する。(S+S+S)の値が閾値thと和Sの値の積より大きいときは、DCデータの検出された除数は16=8*2であり、アルゴリズムはDCT_PREC_DETECTED=1と設定する。最後に、(S+S+S+S)の値が閾値thと和Sの値の積より大きいときは、DCデータの検出除数は8であり、アルゴリズムは、粗さが最小の量子化除数パラメータDCT_PRECISIONでの量子化に対応したDCT_PREC_DETECTED=0と設定する。この特定の具体例において、閾値はth=th=th=16であり、th=2である。閾値は試験画像シーケンスに対する計算を実行することにより経験的に求められる。このアルゴリズムは、量子化除数パラメータDCT_PRECISIONの前の値を検出するために、画素値に対する丸め効果の重大性を本質的に定量化している。
【0046】
DCT_PRECISION検出器は、前に1回以上の符号化/復号化サイクルを経験したことがあるか否かを表す「ソース」/「非ソース」信号を出力し、この信号は、図3のビット割当器400に入力として供給され、ターゲットビット数の算出に用いられる。
【0047】
図7は、図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を探索することによって得られる。
【0048】
シャッフル部100から出力されるシャッフルされた画像データ信号S_OP_D1、S_OP_D2は、ビット割当器400に入力として供給される。これらの入力信号は、ラスタ走査された12ビットのビデオサンプルの8×8DCTブロックからなる。パラメータ予測回路により生成される最終的な量子化除数パラメータDCT_PRECISION、Q_STARTの値もビット割当器400に入力として供給される。ビット割当器400は、DPCMリフォーマット器410と、DPCM器420と、ゴーロン(Golomb)長器430と、DCT変換器440と、量子化器452及びハフマン長器454からなる有ひずみ符号化器450と、アクティビティ器460と、決定論理ユニット470とを備える。決定論理ユニット470は、ターゲット挿入器500に入力を供給する。
【0049】
ビット割当器400は、この具体例においては、204個のMBからなるマクロユニットの試し符号化に基づき符号化の決定を行う。無ひずみDPCMと有ひずみDCTを選択肢とする符号化モードの決定は、1回のDPCM符号化処理(DPCMリフォーマット器410、DPCM器420及びゴーロン長器430と協調して実行される)に基づき、更に、DCT変換器440における1回の離散コサイン変換とそれに続く有ひずみ符号化ユニット450を介した6サイクルとを含む6回のDCT試し符号化処理に基づいて、行われる。アクティビティ器460は、量子化器452がデータに適用する量子化除数を調整する。アクティビティ器460で実行される演算について、以下に詳述する。
【0050】
決定論理器470には、DPCM符号化のエントロピー符号化処理を行うゴーロン長器430の出力が供給されるとともに、DCT符号化のエントロピー符号処理を行うハフマン長器454の出力が供給される。決定論理ユニット470は、DPCM試し符号化とDCT試し符号化との結果を比較する。無ひずみDPCMは、マクロブロックに対して全体のビット数がより少ない場合のみ、選択される。また、決定論理ユニット470は、マクロブロックユニットとマクロブロックの双方についてターゲットビット数を算出する。
【0051】
アクティビティ器460は、DCTモードの符号化回路の一部を構成し、画像ブロックの画素の分散に基づきアクティビティの尺度を算出する。より高いアクティビティレベルを有する画像ブロックでは、量子化をより粗くしても、見る人には知覚されにくいことが知られている。各ブロックに対する量子化ステップは、ビット割当器400の量子化器452で使用される量子化除数Q_SCALEを、高いアクティビティレベルのブロックが粗く量子化されるように、適切に調整することによりオフセット(offset)することができる。後述するように、ビット割当処理のために使用されるQ_SCALE_CODEは、「アクティビティオン」か「アクティビティオフ」の状態に依存する。更に、アクティビティファクタNORM_ACTは、上述のDCTのAC係数Q(AC)の量子化の式の分母に現れている。
【0052】
アクティビティは、各マクロブロックに対して1回ずつだけ計算される。パラメータIntraMADの値は、マクロブロック内の各8×8DCTブロックに対して、YCbCrモードでは輝度(Y)DCTブロックのみ、RGBモードではR、G、Bのブロックが計算される。パラメータIntraMADは次のように定義される。
【0053】
【数1】
Figure 2004129204
【0054】
ここで、dct[i,j]は、j番目のDCTブロックのi番目の画素の画素値である。パラメータdct_dc[j]は、8×8DCTブロックについての(且つ所定の信号成分についての)dct[i,j]の平均値であり、次式で与えられる。
【0055】
【数2】
Figure 2004129204
【0056】
マクロブロック内の全てのY又はRGBのDCTブロックに対するパラメータIntraMADの最小値は、次式で与えられる。
【0057】
【数3】
Figure 2004129204
【0058】
アクティビティACTは、
ACT=1+MinMAD
で与えられる。アクティビティACTの値は1から数千に及ぶので、アクティビティACTを正規化して所定の範囲内に収まるようにする。この具体例では、アクティビティACTを前回のマクロブロックユニットのデータによって正規化し、0.5〜2の範囲に収まるNORM_ACTを得ている。
【0059】
NORM_ACT=(2*ACT+AVG_ACT)/(ACT+2*AVG_ACT)
ここで、AVG_ACT=前MBUからのアクティビティACTの平均である。
【0060】
画像シーケンスの開始時、あるいはシーンの変化を(標準的方法により)検出したときには、量子化除数パラメータ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である任意の範囲に正規化することができる。
【0061】
NORM_ACT=(q*ACT+p*AVG_ACT)/(p*ACT+q*AVG_ACT)
したがって、NORM_ACTの範囲を0.5〜2となるように選択する場合、パラメータp、qは、それぞれ値1、2である。
【0062】
符号化の多数世代に亘る反復性を良くするために、NORM_ACTは固定数のレベルに制限される。0.5〜2.0の範囲に対して、NORM_ACTは8個のレベル(4/8、5/8、6/8、7/8、1,4/3、5/3、2)に制限される。
【0063】
図8は、各MBUに対し、本発明の具体例に基づくビット割当器400によって実行されるアルゴリズムを表すフローチャートである。ステップ1は、DPCMリフォーマット器410、DPCM器420及びゴーロン長器430の協調動作で実行される。ステップ2A〜2Dは、量子化器452により実行され、ステップ3〜5は、決定論理器470により実行される。
【0064】
ステップ1において、MBU内の全MBに対して1回の無ひずみDPCM試し符号化を実行し、各MBについてDPCM符号化によって生成されるビット数MB_DPCM_BITを測定する。
【0065】
ステップ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]
で与えられる。
【0066】
下記表2は、「アクティビティオン」と「アクティビティオフ」の両方に対する量子化除数パラメータDCT_PRECISIONの各値について、本発明の具体例で用いられたビット割当用サブセットを示したものである。
【0067】
【表2】
Figure 2004129204
【0068】
試し量子化で使用する6個の量子化除数Q_SCALE(1)〜(6)は、該当するSSから取り出した6個のQ_SCALE_CODEに関する量子化除数に対応している。なお、各SSは、殆どの場合、6より多い数のQ_SCALE_CODEを含んでいる。量子化除数パラメータQ_STARTの値を用いて、サブセットの中から試し量子化で使用する6個のQ_SCALE_CODEを選択する。
【0069】
サブセット内で使用可能な最小のQ_SCALE_CODEは、下記式の量子化ファクタMINIMUM_Qを表すコードであり、
MINIMUM_Q=2(DCT_PRECISION)
あるいは、このコードが存在しないときは、使用可能な最小のQ_SCALE_CODEは、量子化ファクタMINIMUM_Qよりも大きな数の中で最も小さなQ_SCALE_CODEである。
【0070】
ステップ2Bにおいて、量子化除数パラメータDCT_PRECISIONの値に関係する量子化除数パラメータQ_STARTの誤差を算出し、この誤差は、
Q_START_ERROR=24/(3−2DCT_PRECISION
で与えられるので、量子化の粗さが小さくなる量子化除数パラメータDCT_PRECISIONの値に対して、Q_STARTの誤差は大きくなる。
【0071】
ステップ2Cにおいて、量子化除数パラメータQ_STARTから誤差Q_START_ERRORを減算することによってQ_SCALE_MINを算出するとともに、図4のルックアップテーブルから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に対応した量子化ファクタに設定する。
【0072】
ステップ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に設定する。
【0073】
ステップ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
により算出される。
【0074】
既知の方式においては、FRAME_TARGETは、所要の符号化ビットレートにより完全に決まっている。しかしながら、本発明の具体例では、FRAME_TARGETを、所要の符号化ビットレートからだけではなく、ビデオデータが「ソース」か「非ソース」かにも依存して割り当てる。入力データを「ソース」データであると判定した場合、所要のビットレートを、僅かに減らすように調整することによって意図的に落とし、「ソース」データに対するFRAME_TARGETも有効に下げるように調整する。この具体例において、下げる調整は2.5%である。「ソース」入力データに対するFRAME_TARGETを特に低減した結果として、そのソースデータに対してビット割当器400によって算出されるマクロブロックのターゲットビット数は減少し、第1世代のQ_ALLOC_GEN1に対する(2分探索器700によって算出される)Q_ALLOCは増加し、FRAME_TARGETを低減しなかった場合に比べて僅かながら粗い、最終的な量子化Q_FINAL_GEN1を第1世代の再生画像に対して適用することになる。しかしながら、第1世代画像の画質の若干の低下は、FRAME_TARGETを低減した画像データを更に圧縮/伸長する際に得られる利点によって相殺される。このデータの第2世代及びそれ以降の世代における符号化では、FRAME_TARGETを調整しない。第2世代の調整された値Q_ALLOC_GEN2_ADJUSTEDは、Q_FINAL_GEN1よりも小さくなる傾向が、調整しなかった値Q_ALLOC_GEN2よりも遙かに強い。これを図9を参照して説明する。図9に示すように、従来の逆戻り探索の開始点がQ_FINAL_GEN1を見失っているのに対し、調整された逆戻り探索、すなわち第1世代のFRAME_TARGETの調整に基づく2分探索は、その試し量子化除数Q_SCALEの範囲内にQ_FINAL_GEN1を含んでいる。したがって、調整された逆戻り探索処理は、第2(及びそれ以降の)世代について可能な最良の画質を与えるQ_FINAL_GEN2=Q_FINAL_GEN1を発見する可能性が高い。なお、第2世代の入力データの符号化際に、第1世代の符号化の所要レートは必ずしも分かっていない。
【0075】
MBU_DCT_BITS(Q_SCALE)の6個の値からなるセットをターゲットビット数MBU_TARGETと比較し、ターゲットビット数MBU_TARGETの直ぐ上と直ぐ下にある、MBU_DCT_BITS(Q_SCALE)の2つの値B_UMBU、B_LMBUをそれぞれ次のように定義する。
【0076】
B_UMBU≡MBU_DCT_BITS(Q_SCALE(n))>MBU_TARGET
B_LMBU≡MBU_DCT_BITS(Q_SCALE(n+1))≦MBU_TARGET
図10は、量子化除数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を導き出す。特に、図10に示す量X、Y、Zは次のように定義される。
【0077】
X≡MBU_TARGET−B_UMBU
Y≡B_LMBU−MBU_TARGET
Z≡B_UMBU−B_LMBU=X+Y
したがって、
MBU_TARGET=(B_UMBUX+B_LMBUY)/Z
したがって、図8のステップ4において、ターゲットビット数MB_TARGETは、次のようにして算出される。
【0078】
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))と設定する。
【0079】
ステップ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))を次のように再計算する。
【0080】
Figure 2004129204
ターゲットビット数MBU_TARGETをステップ5において再計算しているので、ターゲットビット数MB_TARGETについても、有ひずみDCTモード符号化に現在割り当てらているMBの個数を考慮して、再計算する必要がある。ステップ6において、DPCM符号化モードに切り替わるMBが無くなるまで、全ての有ひずみDCTモードのMBに対してステップ4、5を繰り返す。これを達成するのに、代表的には5、6回の反復で十分である。
【0081】
量子化除数Q_SCALEに関する不正確な予測によって、適切な量子化除数Q_SCALEがビット割当探索範囲(6個の量子化除数Q_SCALEからなる)外に位置するような状況を検討する必要がある。このような場合、ターゲットビット数MB_TARGETを計算するために、上述のステップ3、4の方法に対する代わりの方法が必要となる。2つの可能な方法が考えられる。
【0082】
先ず、ステップ3において、MBU_DCT_BITS(Q_SCALE(n))が、nが6個の全ての値についてターゲットビット数MBU_TARGET以下であり、量子化が6個の試し値の全てについて粗すぎるときは、ステップ4におけるターゲットビット数MB_TARGETを次のように計算する。
【0083】
【数4】
Figure 2004129204
【0084】
この第1の方法を図11に示す。
【0085】
第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の方法を図12に示す。
【0086】
ターゲットビット数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を決定するのに使用する。
【0087】
図13は、2分探索器700の内部構成を示すブロック図である。2分探索器700は、5つの部分からなり、各部分は2分探索の各段に対応している。各部分は、MB遅延器710と、量子化器720と、ハフマン長算出器730と、Q_SCALE選択器740とを備える。
【0088】
2分探索器700には、離散コサイン変換されたマクロブロックデータからなる2つの入力信号BIN_IP_D1、BIN_IP_D2が、ビット割当器400で算出されたターゲットビット数MB_TARGET及び開始点の値Q_BASEと共に供給される。入力信号BIN_IP_D1、BIN_IP_D2はMB遅延器710に供給され、MB遅延器710は、この入力信号BIN_IP_D1、BIN_IP_D2を、5段の2分探索処理間でそれぞれ1マクロブロック異なるように遅延する。また、信号BIN_IP_D1、BIN_IP_D2は量子化器720にも供給され、量子化器720は、ハフマンエントロピー符号化を行うハフマン長算出器730にデータを出力する。2分探索アルゴリズムの各段は、量子化器720とハフマン長算出器730とを介したサイクルを実行する。ハフマン長算出器730は、DCT変換され、量子化されたマクロブロックを符号化するのに必要なビット長を算出する。5つの部分のそれぞれの量子化器720及びハフマン長算出器730には、入力信号IP_PGMが供給されており、この信号IP_PGMは、8×8のDCTブロック内のサンプル位置に基づいて各サンプルの量子化を変えるために使用する量子化重み付けマトリクス(Quantiser Weighting Matirices)のデータと、各テーブル/グループの組合せ毎にビット長を与えるAC係数が可変長のハフマン長符号化テーブル(Huffman length AC vairiable length coding table)とからなる。この具合例では、5回の2分探索処理で使用する全ての量子化重み付けマトリクスを1つのRAMに記憶するようにすることによって、ハードウェア要求を軽減することができる。なお、各処理段でランダムにアクセスすることが要求されるVLCデータテーブルを用いた場合は、ハードウェアとしてVLCデータテーブル毎に独立したRAMが必要である。
【0089】
MB遅延器710からの遅延された入力データと、ハフマン長算出器730の出力はQ_SCALE選択器740に入力として供給され、Q_SCALE選択器740は、マクロブロックを試験するために次のQ_SCALE値を選択し、選択したQ_SCALE値を次段の2分探索に供給する。最終的なQ_SCALE値は、5段目の2分探索部のQ_SCALE選択器740によって選択され、これをQ_ALLOCで示す。Q_ALLOCは、マクロブロックに対してターゲットビット数MB_TARGETを超えない最小のQ_SCALE値である。Q_ALLOC値は、最終的な出力信号BIN_OP_D1、BIN_OP_D2と共に、更なる処理のために逆戻り探索器800に供給される。ここで、出力信号BIN_OP_D1、BIN_OP_D2は、入力信号BIN_IP_D1、BIN_IP_D2に対して合計で5マクロブロック分遅延している。
【0090】
図14は、5段の2分探索処理を説明するための図である。
【0091】
第1段目の2分探索は、ビット割当器400によって算出された開始点の値Q_BASEを用いて、入力データを量子化し、Q_BASE_CODEで示す2分探索の開始点Q_SCALE_CODEを決定する。この具体例では、2分探索は、量子化除数Q_SCALEの全範囲を探索する5段からなる。したがって、開始点の値Q_BASEは、常に、値が16のQ_SCALE_CODEに対応するこの範囲の中心に設定される。そして、量子化データは、ハフマン長算出器730に供給される。ハフマン長算出器730で算出された第1段目におけるデータ長がターゲットビット数MB_TARGETより大きいときは、次段の2分探索のために、Q_SCALE値をQ_SCALE_CODEの8ステップ分増加し、そうでないときは、Q_SCALE値をQ_SCALE_CODEの8ステップ分減少する。この具体例では、Q_SCALE値は第2段目においてQ_SCALE_CODEの8ステップ分増加している。入力データは、次段に合わせるために、1マクロブロック分遅延される。
【0092】
第2段目において、データを値Q_SCALE_CODE=(Q_BASE_CODE+8)を用いて量子化し、第2段目におけるデータ長を算出する。第2段目のデータ長をターゲットビット数MB_TARGETと比較して、第3段目のために、Q_SCALE値をQ_SCALE_CODEの4ステップ分増加又は減少する。この具体例では、Q_SCALE値は第3段目においてQ_SCALE_CODEの4ステップ分減少している。入力データを第3段目に合わせるために、2回目のMB遅延を行う。
【0093】
第3段目において、データを値Q_SCALE_CODE=(Q_BASE_CODE+8−4)を用いて量子化し、第3段目におけるデータ長を算出する。第3段目のデータ長をターゲットビット数MB_TARGETと比較して、第4段目のために、Q_SCALE値をQ_SCALE_CODEの2ステップ分増加又は減少する。この具体例では、Q_SCALE値は第4段目においてQ_SCALE_CODEの2ステップ分増加している。入力データを第4段目に合わせるために、3回目のMB遅延を行う。
【0094】
第4段目において、データを値Q_SCALE_CODE=(Q_BASE_CODE+8−4+2)を用いて量子化し、第4段目におけるデータ長を算出する。第4段目のデータ長をターゲットビット数MB_TARGETと比較し、第5段目のために、Q_SCALE値をQ_SCALE_CODEの1ステップ分増加又は減少する。この具体例では、Q_SCALE値は第5段目においてQ_SCALE_CODEの1ステップ分増加している。入力データを第5段目に合わせるために、4回目のMB遅延を行う。
【0095】
第5段目において、データを値Q_SCALE_CODE=(Q_BASE_CODE+8−4+2+1)を用いて量子化し、第5段目におけるデータ長を算出する。第5段のデータ長をターゲットビット数MB_TARGETと比較する。第5段のデータ長がターゲットビット数MB_TARGETより大きいときは、Q_SCALE値をQ_SCALE_CODEの1ステップ分増加する。そうでないときは、Q_SCALE値は変更しない。この具体例では、Q_SCALE値は変更されていない。このようにして、2分探索アルゴリズムでは、マクロブロックに対してターゲットビット数MB_TARGETを超えない最小のQ_SCALE値を選択する。このQ_SCALE値はQ_ALLOCと呼ばれる。
【0096】
2分探索の各段において、Q_SCALE値を減少する決定は、量子化ファクタMINIMUM_Qの条件に制約される。使用可能な最小のQ_SCALE_CODEは、量子化ファクタMINIMUM_Qを表すQ_SCALE_CODEであり(又はこれが存在しなければ、量子化ファクタMINIMUM_Qより大きな数を表す最初のQ_SCALE_CODEである)、ここで、
MINIMUM_Q=2^(3−DCT_PRECISION)
である。Q_SCALE値を減少させることにより、Q_SCALE値が使用可能な最小のQ_SCALE_CODEより小さくなったときは、次段の2分探索の前に、Q_SCALE値を使用可能な最小のQ_SCALE_CODEと等しくなるように設定する。
【0097】
図15は、2分探索器700の各2分探索段における入力及び出力マクロブロックのタイミングを示す図である。
【0098】
2分探索器700は、無ひずみモード(DPCM)で符号化したマクロブロックに対しては、BYPASSモードで動作する。BYPASSモードでは、各2分探索処理の終了時に通常実行されるQ_SCALEの切換は行われない。これにより、2分探索器700の出力データは、入力データと等しい。
【0099】
図16は、逆戻り探索器800の内部構成を示すブロック図である。この逆戻り探索器800は、Q_SCALE抽出回路810と、Q_SCALEスケール増分器(incrementer)820と、前処理器(pre−processor)830と、量子化器842及び誤差算出器844をそれぞれ有する6個の量子化部840と、マクロブロック遅延器850と、Q_SCALE選択器860とを備える。
【0100】
逆戻り探索器800の入力は、2分探索器700の出力信号BIN_OP_D1、BIN_OP_D2である。この入力データには、各MBの値Q_ALLOCが含まれている。Q_SCALE抽出回路810は、入力ビットストリームから量子化除数Q_SCALEの値Q_ALLOCを抽出し、この値は、逆戻り探索処理で試験する最初の量子化スケールとして用いられる。各量子化部840は、2つの量子化スケールを試験する。Q_SCALE抽出回路810は、値Q_ALLOCをQ_SCALEスケール増分器820に出力し、ここで、これらの値は、Q_SCALE_CODEの1ステップ分だけ増加されて、量子化部840で試験される第2の量子化スケールとなり、この第2の値は量子化部840の量子化器842に入力として供給される。Q_SCALE抽出回路810から出力されるMBデータは、MB遅延器850に供給され、ここで1MB分遅延された後、Q_SCALE選択器860に入力として供給される。Q_SCALE抽出回路810からのMBデータは前処理器830にも供給されており、ここで、DCT係数の63個のAC係数のうちの第1の31個を繰り返して、各DCTブロックで2度発生するようにする。前処理器830からの出力は、6個の量子化部840のそれぞれに供給される。各量子化部840は、異なる2つの量子化レベルにおける量子化誤差を評価する。この1個の量子化部840当たり2つの量子化レベルの計算は、誤差計算にDCTの31個のAC係数のみを用いているので可能である。この具体例では、DCTの第1の31個のAC係数を用いて誤差を計算しているが、代わりに、DCTの第2の31個のAC係数を用いてもよい。量子化器842は、第1の量子化除数を用いてDCTの第1の31個のAC係数を量子化し、第2の量子化除数を用いてDCTの第2の31個ののAC係数を量子化する。
【0101】
量子化除数の範囲を6個の量子化部840で試験する際、Q_SCALE=Q_ALLOCから始め、量子化除数Q_SCALEをQ_SCALE_CODEの1ステップ分同時に増加して、全部で12個までの量子化スケールを試験する。各量子化器842は、入力信号IP_PGMが供給されており、この信号IP_PGMは、8×8のブロック内のサンプル位置に基づいて各サンプルの量子化を変える量子化重み付けマトリクスからなる。量子化器842は、量子化データを誤差算出器844に出力し、誤差算出器844は、実行された量子化に関する残差誤差(residual error)を算出する。
【0102】
量子化処理の結果として、量子化された各DCT係数は、関連する残差誤差を含んでおり、この残差誤差は、除算後の剰余(remainder)、量子化で使用したトータルの除数(total divisor)、及びその結果に適用した丸め方(rounding)に依存する。任意のDCT係数をCとすると、Cはトータルの除数q、剰余r、整数nの組合せとして次のように表すことができる。
【0103】
C=n*q+r
量子化後、係数は切捨ての丸めにより「n」に、あるいは切上げの丸めにより「n+1」になる。したがって、逆量子化後の絶対誤差は、nが切捨てなら「r」、nが切上げなら「q−r」と予想される。
【0104】
誤差算出器844は、量子化器842から丸め前の結果C/qを取り出し、「q」を既知であり、マクロブロック全体について一定であるとして、この誤差算出器844は、各DCT係数に対する残差誤差「r」又は「q−r」を評価することができる。残差誤差を各DCTブロックの第1の(又は第2の)31個のAC係数について累算して、マクロブロック全体についてトータルの誤差を求める。
【0105】
6個の誤差算出器844の各々の出力は、Q_SCALE選択器860に供給され、Q_SCALE選択器860は、各マクロブロックに対して、最小の残差誤差を発生する、Q_FINALで示される量子化除数Q_SCALEを選択する。MB遅延器850は、残差誤差の計算にかかる時間を補償するために設けられている。Q_FINAL値を遅延された入力データのビットストリームに挿入して、逆戻り探索器800の出力信号BKS_OP_D1、BKS_OP_D2を形成する。逆戻り探索器800の出力は、最終的な量子化器900に入力として供給され、ここで、値Q_FINALによりデータは量子化され、その後、エントロピー符号化器1000でハフマン符号化される。
【図面の簡単な説明】
【図1】既知の逆戻り探索法の問題を模式的に説明するための図である。
【図2】データ記録/再生装置又はデータ送信/受信システムと共に使用される、圧縮符号化装置及び対応する復号装置の模式図である。
【図3】図2のビットレート圧縮符号化装置を模式的に説明するための図である。
【図4】図2の符号化装置のビットレート圧縮処理で使用するパラメータの表である。
【図5】図2の復号装置を模式的に示した図である。
【図6】図3のシャッフル部におけるDCT_PRECISION検出回路により行われる計算を模式的に示した図である。
【図7】図3の符号化装置のビット割当器を模式的に説明するための図である。
【図8】図7のビット割当器により行われる計算を示すフローチャートである。
【図9】本発明の具体例に基づいた、調整逆戻り探索の利点を模式的に説明するための図である。
【図10】Q_SCALEに対するMBU_DCT_BITSを説明するグラフである。
【図11】全部で6個の試し量子化値について量子化が粗すぎる場合における、Q_SCALEに対するMBU_DCT_BITSのグラフである。
【図12】6個の試し量子化値のいずれに対しても量子化が粗くない場合における、Q_SCALEに対するMBU_DCT_BITSのグラフである。
【図13】図3に示す符号化装置の2分探索器の内部構成を模式的に示した図である。
【図14】図13の装置が行う5段構成の2分探索の説明するための図である。
【図15】図14の2分探索の各段におけるマクロブロック遅延を模式的に説明するための図である。
【図16】図3に示す符号化装置の2分探索器を模式的に説明するための図である。

Claims (13)

  1. 入力データが前に圧縮/伸長サイクルを経験したことがないソースデータか否かを検出するソース検出部と、
    上記ソース検出部に応答して、ソース入力データに対しては第1の値であり、非ソース入力データに対しては該第1の値よりも大きな第2の値である所望の出力データ量を圧縮データに設定するデータ量発生器と、
    全体として上記所望の出力データ量となる個々のターゲットデータ量を、上記所望の出力データ量に基づいて、上記入力データの各サブセットに割り当てるターゲット割当器と、
    上記入力データの各サブセットを上記個々のターゲットデータ量に基づいて圧縮するデータ圧縮部とを備えるデータ圧縮装置。
  2. 上記入力データは、画像データであることを特徴とする請求項1記載のデータ圧縮装置。
  3. 上記データ圧縮部は、
    上記入力データの各サブセットについて少なくとも1つの量子化の程度を試して、該量子化の程度を用いて発生するデータ量を試験する1つ以上の試し量子化器と、
    上記試し量子化器の結果に基づいて、上記ターゲットデータ量がそのサブセットについて超えないように、上記入力データの圧縮に用いる量子化の程度を選択する選択器と、
    上記入力データのサブセットを、上記選択されたそれぞれの量子化の程度に基づいて量子化する量子化器とを備えることを特徴とする請求項1又は2記載のデータ圧縮装置。
  4. 上記ターゲットデータ量を超えない最も粗さの小さな試し量子化の程度及び1つ以上のより粗い量子化の程度において、上記入力データの各サブセットを量子化する少なくとも1つの量子化器を有する逆戻り探索部と、
    上記後戻り量子化器によって実行される上記各量子化の程度での量子化により発生する量子化誤差を算出する少なくとも1つの誤差算出器とを備え、
    上記選択器は、上記入力データのサブセットの圧縮に使用する量子化の程度として、上記逆戻り量子化器による量子化で発生する誤差が最小となる上記誤差算出器が決定した量子化の程度を選択することを特徴とする請求項3記載のデータ圧縮装置。
  5. 上記誤差算出器は、複数の離散コサイン変換係数に対する残差誤差を累算して、上記量子化誤差を算出することを特徴とする請求項4記載のデータ圧縮装置。
  6. 上記誤差算出器は、
    上記逆戻り探索量子化器によって量子化されたデータを逆量子化する少なくとも1つの逆量子化器と、
    上記逆量子化したデータを対応する量子化前のデータと比較して、上記量子化誤差を検出する比較器とを備えることを特徴とする請求項4記載のデータ圧縮装置。
  7. 上記所望のデータ量に関する上記第1の値は、該所望のデータ量に関する上記第2の値より約5%少ないことを特徴とする請求項1乃至6のいずれか1項記載のデータ圧縮装置。
  8. 入力データが前に圧縮/伸長サイクルを経験したことがないソースデータか否かを検出するステップと、
    圧縮データに対する所望のデータ量として、ソース入力データに対しては第1の値であり、非ソース入力データに対しては該第1の値よりも大きな第2の値である所望の出力データ量を設定するステップと、
    全体として上記所望の出力データ量となる個々のターゲットデータ量を、上記所望の出力データ量に基づいて、上記入力データの各サブセットに割り当てるステップと、
    上記入力データの各サブセットを上記個々のターゲットデータ量に基づいて圧縮するステップとを有するデータ圧縮方法。
  9. 図面を参照して説明したデータ圧縮方法。
  10. 請求項8又は9記載のデータ圧縮方法を実施するプログラムコードを有するコンピュータソフトウェア。
  11. 請求項10記載のコンピュータソフトウェアを提供するデータ提供媒体。
  12. 上記データ提供媒体は、伝送媒体であることを特徴とする請求項11記載のデータ提供媒体。
  13. 上記データ提供媒体は、記憶媒体であることを特徴とする請求項11記載のデータ提供媒体。
JP2003090688A 2002-03-28 2003-03-28 データ圧縮装置及び方法 Expired - Fee Related JP4263517B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0207419A GB2387055A (en) 2002-03-28 2002-03-28 Data compression method including target data quantity allocation

Publications (2)

Publication Number Publication Date
JP2004129204A true JP2004129204A (ja) 2004-04-22
JP4263517B2 JP4263517B2 (ja) 2009-05-13

Family

ID=9933971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003090688A Expired - Fee Related JP4263517B2 (ja) 2002-03-28 2003-03-28 データ圧縮装置及び方法

Country Status (4)

Country Link
US (1) US6812865B2 (ja)
EP (1) EP1351519A3 (ja)
JP (1) JP4263517B2 (ja)
GB (1) GB2387055A (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2387058A (en) * 2002-03-28 2003-10-01 Sony Uk Ltd Method of selecting a quantisation parameter using trial parameters
JP4045544B2 (ja) * 2003-04-14 2008-02-13 ソニー株式会社 符号化装置及び符号化方法
US7444030B2 (en) * 2004-11-12 2008-10-28 Micron Technology, Inc. Image encoding with dynamic buffer-capacity-level-based compression adjustment
KR100695141B1 (ko) * 2005-02-15 2007-03-14 삼성전자주식회사 영상처리시스템에 있어서 메모리 억세스장치 및 방법, 데이터 기록장치 및 방법과 데이터 독출장치 및 방법
JP2007166039A (ja) * 2005-12-09 2007-06-28 Matsushita Electric Ind Co Ltd 画像符号化装置
JP4555257B2 (ja) * 2006-06-06 2010-09-29 パナソニック株式会社 画像符号化装置
KR20100079037A (ko) * 2008-12-30 2010-07-08 삼성전자주식회사 비디오 영상 부호화 방법 및 장치
US9152875B2 (en) * 2009-06-11 2015-10-06 Texas Instruments Incorporated Preserving text quality in video encoding
CN102170568B (zh) * 2011-03-11 2012-09-05 山东大学 高光谱遥感图像的无损压缩编码器及其译码器
CN103428486B (zh) * 2012-05-24 2017-06-09 富士通株式会社 图像压缩方法和装置
US10356406B2 (en) 2016-01-19 2019-07-16 Google Llc Real-time video encoder rate control using dynamic resolution switching
US10666985B1 (en) * 2018-11-18 2020-05-26 Sony Corporation Sub-block based entropy coding for image coding

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE162918T1 (de) * 1991-04-18 1998-02-15 Ampex Systems Corp Verfahren und anordnung zur bestimmung eines quantisierungsfaktors für prozesse mit datenkomprimierung und -dekomprimierung
KR0141824B1 (ko) * 1991-12-23 1998-07-15 구자홍 가변길이의 적응 영상 압축 방법 및 장치
WO1994030013A1 (en) * 1993-06-08 1994-12-22 Sony Corporation Encoder and encoding method
US5668598A (en) * 1995-03-27 1997-09-16 International Business Machines Corporation Motion video compression system with guaranteed bit production limits
GB2306831B (en) * 1995-10-30 2000-05-24 Sony Uk Ltd Video data compression
JP4061511B2 (ja) * 1997-04-15 2008-03-19 ソニー株式会社 符号化装置及び符号化方法
US6091773A (en) * 1997-11-12 2000-07-18 Sydorenko; Mark R. Data compression method and apparatus
US6101278A (en) * 1998-01-30 2000-08-08 Philips Electronics North America Corp. System for extracting coding parameters from video data
GB2335815B (en) * 1998-03-25 2002-02-27 Sony Uk Ltd Data compression
CN1174624C (zh) * 1998-09-29 2004-11-03 松下电器产业株式会社 可变比特率编码装置
WO2000021302A1 (en) * 1998-10-02 2000-04-13 General Instrument Corporation Method and apparatus for providing rate control in a video encoder
GB2351407B (en) * 1999-06-21 2003-06-11 Sony Uk Ltd Video data compression
GB2352905B (en) * 1999-07-30 2003-10-29 Sony Uk Ltd Data compression
GB2353652B (en) * 1999-08-26 2003-07-23 Sony Uk Ltd Signal processor

Also Published As

Publication number Publication date
US6812865B2 (en) 2004-11-02
GB2387055A (en) 2003-10-01
EP1351519A3 (en) 2004-01-07
JP4263517B2 (ja) 2009-05-13
EP1351519A2 (en) 2003-10-08
US20030214422A1 (en) 2003-11-20
GB0207419D0 (en) 2002-05-08

Similar Documents

Publication Publication Date Title
RU2637879C2 (ru) Кодирование и декодирование значащих коэффициентов в зависимости от параметра указанных значащих коэффициентов
US7801383B2 (en) Embedded scalar quantizers with arbitrary dead-zone ratios
US6639945B2 (en) Method and apparatus for implementing motion detection in video compression
JP3888597B2 (ja) 動き補償符号化装置、及び動き補償符号化復号化方法
KR0141824B1 (ko) 가변길이의 적응 영상 압축 방법 및 장치
KR20060027795A (ko) 하이브리드 비디오 압축 방법
US8218624B2 (en) Fractional quantization step sizes for high bit rates
US20100232497A1 (en) Lossless and near-lossless image compression
JP4263517B2 (ja) データ圧縮装置及び方法
JP2003032677A (ja) 動画像圧縮符号化装置
US6584226B1 (en) Method and apparatus for implementing motion estimation in video compression
JP3990464B2 (ja) ディジタルビデオ信号プロセッサのためのデータ効率のよい量子化テーブル
US20050249293A1 (en) Noise filter for video processing
EP0946062A2 (en) Data compression
US20100002946A1 (en) Method and apparatus for compressing for data relating to an image or video frame
JP2004007526A (ja) データ圧縮装置及び方法
US20030202712A1 (en) Data compression
US8379715B2 (en) System and method for video compression using non-linear quantization and modular arithmetic computation
KR20100013142A (ko) 프레임 메모리 압축방법
US7490123B2 (en) Data compression
GB2401739A (en) Data compression
EP1711017A2 (en) Compression encoding
KR100744442B1 (ko) 디지털 비디오 및 이미지들에 대한 개선된 캐스케이드 압축 방법 및 시스템
JPH09135418A (ja) 画像記録装置

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: 20080423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081014

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090127

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090212

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees