JP4532607B2 - ブロック・ベースのコード化システムにおいてコード化モードを選択するための装置および方法 - Google Patents

ブロック・ベースのコード化システムにおいてコード化モードを選択するための装置および方法 Download PDF

Info

Publication number
JP4532607B2
JP4532607B2 JP51668997A JP51668997A JP4532607B2 JP 4532607 B2 JP4532607 B2 JP 4532607B2 JP 51668997 A JP51668997 A JP 51668997A JP 51668997 A JP51668997 A JP 51668997A JP 4532607 B2 JP4532607 B2 JP 4532607B2
Authority
JP
Japan
Prior art keywords
macroblock
coding
bits
residual signal
code
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.)
Expired - Lifetime
Application number
JP51668997A
Other languages
English (en)
Other versions
JPH11513873A (ja
Inventor
チャン,ティハオ
チエン,マックス
クォーク,ウィルソン
サン,フイファング
Original Assignee
メディアテック インコーポレイション
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 メディアテック インコーポレイション filed Critical メディアテック インコーポレイション
Publication of JPH11513873A publication Critical patent/JPH11513873A/ja
Application granted granted Critical
Publication of JP4532607B2 publication Critical patent/JP4532607B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/103Selection of coding mode or of prediction mode
    • 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/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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/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
    • 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/146Data rate or code amount at the encoder output
    • 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/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、動きのある画像(motion video)のコード化(coding)を最適化するための装置(apparatus)および付随した方法に関する。さらに特定すると、本発明は、マクロブロックのために選択された量子化スケールに基づいて、マクロブロック・コード化モードを選択する装置および方法に関する。
デジタル画像技術の開発の進展は、画像圧縮コーディングの高い費用を削減し、また異なる製造業者の設備の相互運用性(インタオペラビリティ)の問題を解決するというつねに大きくなり続ける問題を提示する。これらの目標を達成するために、メディア統合系動画像圧縮の国際標準(Moving Picture Experts Group、MPEG)が、(一般的にはMPEG−1と呼ばれている)ISO/IEC国際規格13818−1(1994年)および(一般的にはMPEG−2と呼ばれている)13818−2(1995年1月20日草案)を作成していて、これらは参照することによって全体としてここに組込まれる。これらの規格の1つの目標は、デスクトップ・ビデオ・パブリッシング、ビデオ会議、デジタル記憶媒体、およびテレビ放送といった複数の異なった用途およびサービスを処理するために、十分な柔軟性を持つ標準的なコード化/復号化戦略を確立することである。
MPEG規格は、MPEGに準拠したビットストリーム()を生成するための一般的な汎用コード化方法およびシンタックスを指定しているが、多くのバリエションがパラメータの多くに対して指定された値において許されており、それにより広範囲にわたって応用および相互運用性を維持している(support)。実際、MPEGは正当な(valid)ビット・ストリームを作成するために必要とされる特定のアルゴリズムを定義していない。さらに、MPEGエンコーダの設計者は、画像前処理、動き推定、コード化モード決定、分解能可変性(スケーラビリティ、scalability)、およびレート(rate)制御といった領域において独自のMPEG固有の(MPEG-specific)アルゴリズムを開発し、また実現する際に大きな柔軟性を授けられている。この柔軟性は、異なるMPEG固有のアルゴリズムの開発および実現を助長し、それにより市場において製品の区別化に帰着する。しかしながら、MPEGエンコーダ設計者の1つの共通した目標とは、規定されたビット・レートおよび動作遅延の制約に対して本来的な(subjective)歪み(distortion)を最小限に抑えることである。
コード化モード決定の領域では、MPEGは、複数の異なるマクロブロックコード化モードを提供する。一般的には、これらのコード化モードは、2つの幅広い分類、インター・モード・コード化(インター・モード・コーディング)とイントラ・モード・コード化(イントラ・モード・コーディング)とにグループ化される。イントラ・モード・コード化は、そのマクロブロックまたはピクチャからのみの情報を使用する、マクロブロックまたはピクチャのコード化を伴う。反対に、インター・モード・コード化は、それ自体および異なる時間に起こるマクロブロックおよびピクチャの両方からの情報を使用する、マクロブロックまたはピクチャのコード化を伴う。具体的には、MPEG−2は、イントラ・モード、動き補償なしモード(no motion compensation、No MC)、順方向/逆方向/平均インター・モード、およびフィールド/フレームDCTモードを含むマクロブロック・コード化モードを提供する。各コード化モードの詳細な説明については、MPEG−1とMPEG−2用のISO/IEC国際規格を参照する。
これらのコード化モードは、マクロブロックをコード化するために必要なビット数において異なる効率を生み出す異なるコード化戦略(予測、prediction)を提供する。このため、各モードは、量子化スケールの粗さ(coarseness)、ピクチャ・タイプ、およびマクロブロック内での信号の性質といったある数の異なった因子に応じて、別のモードよりさらに効率的である。最適なコード化性能を達成するためには、各別個モードに対して特定のマクロブロックをコード化するために必要なビット数を計算し、また比較することによって、もっとも効率的なコード化モードを選択することが必要である。もっとも効率的なコード化モードは、マクロブロックを最も少ないビット量でコード化すべきである。しかしながら、最適解の決定は、運動ベクトルのMPEG差分符号化および離散コサイン変換(DCT)係数によりさらに複雑化されて、その決定は、スライス長に等しい期間、マクロブロックからマクロブロックへ持ち越される依存状態を導入する。スライスとは、ラスタ・スキャン順序で同じ水平の行に置かれるマクロブロックのシーケンスである。このような依存状態のため、「全検索」計算は、ここでは各個別マクロブロックを異なるモードでコード化できるスライスをコード化する(code)際に異なるモードの様々な組み合わせの効率を比較しなければならない。
例証すると、スライスが10の長さのマクロブロックを有して、5つの異なったコード化モードがあると、各スライスに対して510の利用可能なコード化組み合わせがある。全検索のための計算は、モードの数に基づいてスライス・サイズに指数関数的に比例している。このようにして、依存状態は、指数関数的に大きくなる関数に帰着し、それにより前記計算の複雑度を何倍にも増加させる。実際、上記の計算に関連した時間遅延は、多くのMPEGアプリケーションに対して容認しがたい。したがって、長い時間遅延および耐え難い計算オーバヘッドのため、全検索計算の結果に基づいてコード化モードを選択することは実用的ではない。
現在のMPEGコーディング戦略(例えば、テストモジュール4およびテストモジュール5(TM4とTM5))では、各マクロブロックのためのコード化モードは、予測残差(エラー信号)のエネルギを比較することにより選択される。すなわち、イントラ/インター・モードの決定は、各コード化モードの予測残差の分散に対して、マクロブロック・ピクセルの分散(σ2)を比較することによって下される。しかしながら、この規準で選択されたコード化モードは、高い分散が必ずしもマクロブロックのコード化に必要なビット数の増加に転換しないので、最適コード化性能を達成しない場合がある。したがって、このような分散だけに基づいたコーディング戦略は、必ずしも最終的な圧縮ビット・カウントを削減しない場合がある。
したがって、技術分野において、最適解に近づき、また実用的な実現を促進するために比較的に簡略であるコード化モードを選択するための装置および方法に対する必要性が存在する。
本発明は、マクロブロックのために選択された量子化スケールに基づいて、マクロブロック・コード化モードを選択するための装置および方法である。ある特定のコード化モードの効率は、歪み(つまり、ある特定の量子化スケール)に対する動作点(operating point)によって影響される。例えば、マクロブロックを符号化する際に低い歪みを作り出すコード化モードが、実際には、マクロブロックを符号化する際に高い歪みが許容可能である場合に、不十分に機能する場合がある。このため、本発明は、マクロブロックのために選択される量子化スケールに従った適切なコード化モードを選択する。
具体的には、各マクロブロックをコード化するために必要とされるビットの総数は、運動ベクトルをコード化するために必要とされるビット、および予測残差をコード化するためのビットという、2つの部分から成る。動きベクトルをコード化するためのビット数は、一般には、ルックアップ・テーブルから獲得される。予測残差を符号化するためのビット数は、その分散の値に正比例し、また量子化器ステップ(量子化スケール)の値に反比例する、と仮定する推定によって獲得される。この推定を使用すると、マクロブロックをコード化するために必要なビット総数が計算され、そして各コード化モードについて比較される。もっとも少ないビット数を持つコード化モードを選択することによって、本発明は、実用的な実現のための低い複雑度のほぼ最適な解を達成する。
本発明の教示は、添付図面といっしょに、引き続く詳説な記述を考慮することにより容易に理解できる。
図1は、レート制御と共にモード選択を共同して(jointly)決定するための本発明のシステムのブロック図である。
図2は、マクロブロックのための最適モードの決定を導き出すためのフローチャートである。
図3は、予測残差信号をコード化するためのブロック図である。
理解を容易にするために、可能な場合には、図に共通している同一要素を示すために、同一の参照番号が使用された。
図1は、レート制御と連携してマクロブロックに対するコード化モードを決定するための本発明の装置100のブロック図を示す。好ましい実施の形態では、装置100は、エンコーダ、またはよりブロック・ベースの複雑な動き補償コード化システムの一部分である。装置100は、動き推定モジュール140、動き補償モジュール150、モード決定モジュール120、レート制御モジュール130、DCTモジュール160、量子化モジュール170、可変長コード化モジュール180、バッファ(buffer)190、逆量子化モジュール175、逆DCTモジュール165、減算器115、および総和器(summer)155を備える。エンコーダ100は複数のモジュールを備えているが、当業者は、様々なモジュールによって実行される機能が、図1に示されるように別々のモジュール内に隔離される必要がないことを理解するだろう。例えば、動き補償モジュール150、逆量子化モジュール175、および逆DCTモジュール165を含むモジュールの組が、一般には、「埋込デコーダ(embedded decorder)」として知られている。
図1は、MPEG規格に従って輝度および2つの色差信号(Y、Cr、Cb)として表され、またデジタル化される入力動画像(画像シーケンス、画像列)110を図示する。これらの信号は、各ピクチャ(フレーム)が複数のマクロブロックによって表されるように、さらに複数の層に分割されている。各マクロブロックは、4個の輝度ブロック、1個のCrブロック、および1個のCbブロックを含み、ブロックは8×8のサンプル・アレイとして定義される。ピクチャのブロック・ユニットへ分割すると、2つの連続するピクチャ間の変更を認識する能力が向上し、また(以下に説明される)低振幅の変換係数の排除によって画像圧縮が改善される。デジタル化された信号は、オプションで、適切なウィンドウ、解像度、および入力フォーマットを選択するためのフォーマット変換といった前処理を経る場合がある。
入力動画像(input video image)110は、動きベクトルを推定するための動き推定モジュール140内に受け取られる。動きベクトルは、現在のピクチャ内のブロックの座標位置から基準フレームの座標へのオフセットを提供するために動き補償により使用される二次元ベクトルである。画像シーケンスの連続(consecutive)フレーム間に存在する高い冗長性のため、現在のフレームは、運動情報(動きベクトル)を使用することによって、以前の基準フレームと、現在のフレームおよび以前のフレームの間の差異とから再構築されることができる。動きベクトルを使用すると、チャネル上に伝送される情報量を削減することによって、画像圧縮が大幅に高まる。なぜなら、現在のフレーム内での変更だけがコード化され、伝送されるからである。現在では、動き推定を実現するために、様々な方法がエンコーダ設計者に利用可能となる。
動き推定モジュール140からの動きベクトルは、サンプル値の予測の効率を改善するために、動き補償モジュール150によって受け取られる。動き補償は、予測エラーを形成するために使用され以前の復号化サンプル値を含む過去若しくは将来の基準フレーム、またはその両方の基準フレームにオフセットを提供するために動きベクトルを使用する予測を伴う。すなわち、動き補償モジュール150は、以前に復号化されたフレームおよび動きベクトルを使用し、現在のフレームの推定を構築する。
さらに、与えられたマクロブロックに対して動き補償予測を実行するに先立って、コード化モードが選択されなければならない。前述したように、複数のコード化モードが使用可能であり、またコード化モードをマクロブロックごとに適切に選択すると、最適なコード化性能を生み出す。各コード化モードに対する予測は、動き補償モジュール150によって実行される。このため、コード化モードに応じて、動き補償モジュールは、過去若しくは将来の参照ピクチャ、または両方の参照ピクチャに基づいてブロックの内容の動き補償された予測(予測された画像)152を形成する。この動き補償された予測152は、現在のマクロブロック内の入力ビデオ画像110から減算器115を介して差し引かれ、エラー信号(e)または予測残差を形成する。各マクロブロックのための全コード化モードの予測残差は、推定のためのモード決定モジュール120に転送される。
モード決定モジュール120は、レート制御と共に各マクロブロックのためのコード化モジュールの選択を共同して決定するために予測残差を使用する。ただ、最小の分散を生じさせるマクロブロックのためのコード化モードを単に選択するTM4およびTM5と異なって、モード決定モジュール120は、ある特定のコード化モードの効率に関する特定の量子化スケールの影響を考慮する方法を適用する。モード決定モジュール120は、各コード化モードに対して各マクロブロックをコード化するために必要とされるビットの総数を推定する。推定は、予測残差を符号化するためのビット数がその分散の値に正比例し、また量子化器ステップ(量子化スケール)の値に反比例するという仮定を用いて、予測残差をコード化するためのビット数を得る。この簡略化されたアプローチの下に、ほぼ最適な解が全検索の複雑さのほんの一部で得られる。この推定の詳細な記述は、図2を参照して以下に議論される。
マクロブロックのためのコード化モードを選択して、モード決定モジュール120は、選択されたコード化モードからの対応する予測残差信号をDCTモジュール160に渡す。それから、DCTモジュールは、予測残差信号の各ブロックに順方向離散コサイン変換プロセスを適用し、DCT係数の一組の8×8ブロックを作り出す。離散コサイン変換は、DCT係数が一組のコサイン基底関数の振幅を表す可逆離散直交変換である。離散コサイン変換の1つの有利な点は、DCT係数が非相関である(uncorrelated)ということである。DCT係数のこの相関のないこと(decorrelation、相関が除去されていること)は、圧縮にとって重要である。なぜなら、各係数は、圧縮効率を失うことなく独立して処理されていることができるからである。さらに、DCT基底関数またはサブバンド分解(decomposition)は、量子化の次のステップに重要である心理視覚の規準の効果的な使用する機会を与える(permit)。
結果として生じるDCT係数の8×8のブロックは、DCT係数が量子化される量子化モジュール170によって受け取られる。量子化のプロセスは、一組の量子化値でDCT係数を除算し、整数値を生成するために適切に丸めることによってDCT係数が表現される精度を縮小する。量子化値は、(視覚的に重み付けされた量子化として知られている)基底関数の可視性に基づいた規準を使用して、各DCT係数にに対して個別に設定されることができる。すなわち、量子化値は、与えられた基底関数の可視性のしきい値、つまり、人間の目によってちょうど検出可能な係数の振幅に一致する。DCT係数をこの値を用いて量子化することによって、DCT係数の多くはゼロに変換されて、それによって画像圧縮効率を改良する。量子化のプロセスは、鍵となる演算であり、また視覚的な品質を達成するために、そしてエンコーダの出力を所与のビットレートに一致させるためにエンコーダを制御する(レート制御)ための重要なツールである。異なる量子化値を各DCT係数に適用きるので、一般には、「量子化マトリックス」が、基準テーブル、例えば輝度量子化テーブルまたは色差(chrominance)量子化テーブル、として確立される。このため、エンコーダは、変換されたブロック内の各周波数係数がどのように量子化されるのかを決定する量子化マトリックスを選択する。
しかしながら、量子化エラーの自覚的な知覚結果(subjective perception)は、周波数と共に大きく変化し、そしてより高い周波数のためにより粗い量子化値を使用することが有利である。すなわち、量子化エラーに対する人間の知覚感度は、より高い空間周波数に対してより低くなる。その結果とし、高い周波数は、低い周波数より少ない許容値を用いてもっと粗く量子化される。さらに、正確な量子化マトリックスは、意図された表示の特性、観察距離(viewing distance)、およびソースにおける雑音の量といった多くの外部パラメータに依存している。このため、アプリケーションのために、またはフレームの個々のシーケンスのためにさえ、ある特定の量子化マトリックスを仕立てることが可能である。一般的には、カスタマイズ化された量子化マトリックスは、圧縮された動画とともにコンテキストとして格納されることができる。再び、現在では、多くの方法が、量子化プロセスを実現するために、エンコーダ設計者に対して利用可能である。
次に、結果として生じる量子化されたDCT係数の8×8ブロックは、信号接続171を介して可変長コード化モジュール180によって受け取られて、この場合、量子化された係数の二次元ブロックが、そのブロックを量子化されたDCT係数の一次元文字列に変換するために「ジグザグ」順序で、走査される(scan)。ジグザグ・スキャン(zig-zag scanning)順序は、最低の空間周波数から最高の空間周波数までのDCT係数の近似的な順次的な順序である。量子化は、通常、高い空間周波数をゼロに縮小するので、量子化されたDCT係数の一次元文字列は、典型的にはゼロの文字列が後に続くいくつかの整数によって表現される。
それから、可変長コード化(VLC)モジュール180が、量子化されたDCT係数の文字列、並びにマクロブロック・タイプおよび動きベクトルといったマクロブロックの全ての副次的な情報を符号化する。VLCモジュール180は、コード化効率を効率よく改善するために、可変長コード化(可変長コーディング)およびラン・レングス・コード化(run-length coding、ラン・レングス・コーディング)を利用する。可変長コード化は、頻繁なイベントにはより短いコード・ワードが割り当てられ、またあまり頻繁ではないイベントにはより長いコード・ワードが割り当てられる可逆コード化プロセスであるが、ラン・レングス・コード化は、単独記号を持つ一続き(run)のシンボルを符号化することによりコード化効率を上げる。これらのコーディング機構は、技術分野において周知であり、整数長コード・ワードが使用されるとき、しばしばハフマン・コード化として参照される。このため、VLCモジュール180は、入力画像を正当なデータ・ストリームに変換するという最終ステップを実行する。
データ・ストリームは、「先入れ先出し」(FIFO)バッファ190内に受け取られる。異なるピクチャ・タイプおよび可変長コード化を使用する結果は、総体的なビットレートが可変であるということである。すなわち、各フレームをコード化するために使用されるビット数は異なり得る。このため、固定レートのチャネルを伴う用途では、FIFOバッファが使用され、ビットレートを平滑化するためにエンコーダ出力をチャネルに一致させる。このようにして、FIFOバッファ190の出力信号は、入力ビデオ像(input video image)110の圧縮された表現であって、それは記憶媒体または遠隔通信チャネルに送られる。
レート制御モジュール130は、データ・ストリームの伝送後に(図示されていない受信機またはターゲット記憶デバイス内の)デコーダ側におけるオーバフローおよびアンダフローを防止するために、FIFOバッファ190に入るデータ・ストリームのビットレートを監視し、また調整するために役立つ。固定レートチャネルは、(図示されていない)デコーダ内の入力バッファに一定レートでビットを搬送することを想定している。ピクチャ・レートによって決定される規則正しい間隔で、デコーダは、その入力バッファから次のピクチャのための全ビットを瞬間的に削除する。少なすぎるビットが入力バッファ内にある場合、すなわち次のピクチャのための全ビットが受け取られてはいないかった場合、入力バッファがアンダフローし、エラーに帰着する。同様に、多すぎるビットが入力バッファ内にある場合、すなわち入力バッファの容量がピクチャの始め部分の間において限界を越えている場合、入力バッファはオーバフローし、オーバフロー・エラーに帰着する。このため、エンコーダによって作成されるビットの数を制御して、それによってオーバフロー状態およびアンダフロー状態を防止するために、バッファ190のステータスをモニタすることが、レート制御モジュール130のタスクである。レート制御アルゴリズムは、画像品質および圧縮効率に影響を与えることにおいて重要な役割を果たす。
現在、ビットレートを制御する1つの方法は、量子化プロセスを改変する(alter)ことであり、これは入力画像の歪みに影響を及ぼす。量子化器スケール(ステップ・サイズ)を改変することによって、ビットレートが、変更され、そして制御されることができる。例示すれば、バッファがオーバフローに向かっている場合、量子化スケールが増加されるべきである。この動作は、量子化プロセスが追加のDCT係数をゼロに削減することを引き起こして、それによりマクロブロックをコード化するために必要なビット数を削減する。これは、実際には、ビットレートを削減して、潜在的なオーバフロー状態が解決されるはずである。
反対に、バッファがアンダフローに向かっている場合、量子化スケールは減少されるべきである。この動作は、量子化された非ゼロのDCT係数の数が増加させることを引き起こして、それによってマクロブロックをコード化するために必要なビットの数が増加する。このため、増加されたビットレートが、潜在的なアンダフロー条件を解決するはずである。
量子化スケールは、図1に説明されるようにコード化モードの適切な選択を決定するために使用される。このため、レート制御モジュール130は量子化スケールを改変しオーバフロー状態またはアンダフロー状態を訂正するため、モード決定モジュール120は、マクロブロックのために現在の量子化スケールの下で最適なコード化モードを選択することによって応答する。コード化モードの選択が量子化スケールによって影響を受ける方法は、以下の図2に参照して議論される。
さらに、量子化モジュール170からの結果として生じる量子化されたDCT係数の8×8ブロックが、信号接続172を介して逆量子化モジュール175によって受け取られる。この段階において、エンコーダは、データを復号化することによって入力ビデオ画像のI−フレームとP−フレームを、それらが以降の符号化の基準フレームとして使用されるために再生成する。逆量子化モジュール175は、量子化されたDCT係数を量子化を解除すること(dequantizing、逆量子化すること)によって、復号化プロセスを開始する。すなわち、量子化されたDCT係数は、一組の量子化値によって乗算され、整数値を作り出すために適切に丸められる。
結果として生じるDCT係数の量子化解除された(dequantized、逆量子化された)8×8ブロックは、逆DCTが各マクロブロックに適用され復号化されたエラー信号を作り出す逆DCTモジュール165に回される(pass)。このエラー信号は、加算器155を介して動き補償モジュールから予測信号に加算されて戻し、復号化された基準ピクチャを作り出す。一般には、I−フレームまたはP−フレームが復号化される場合、それは格納され、もっとも古い格納された基準を置き換える。このようにして、マクロブロックのために選択される量子化スケールに基づいてマクロブロック・コード化モードを選択する装置100が、開示される。
制約された最適化の問題が、コード化モードの選択に定式化された。解決策は、コード化されているピクチャを構成する全マクロブロックのレート−歪み特性、またはR(D)曲線に基づいている。最適化された結果に基づいて、各マクロブロックに対してコード化モードを選択するための方法が提示される。
量子化スケールに従ったコード化モード選択の最適化に基づいたコード化性能における「上界(upper bound)」が、初期に得られる。上界は、一組の制約に対してほぼ最適な(near-optimal)解を表す。一旦、上界が計算されると、実際的な最適次善の(sub-optimal)方法の性能を査定するために使用される。
準最適な(near-optimum)解のための第1の制約は、以下の通りであり、
Figure 0004532607
これは、ピクチャに対する歪み、DPICTが、ピクチャ内のマクロブロックの数である全てのNMBに対する個々のマクロブロック歪みDMBの蓄積として測定されることを述べている。この目的関数は、個々のマクロブロック歪みDiをピクチャにわたって同じにすることのよって、
1=D2= ... =DNMB (2)
そして、各マクロブロックをコード化することから生成されたビットRMBiを、ピクチャ全体のターゲット・ビット割当て(ピクチャ・ビット・バジェット)RPICTに合計させることによって、最小化される。
Figure 0004532607
マクロブロック歪みの尺度DMBのための選択物(choice)は、マクロブロック内のピクセルにわたって平均平方和(mean-square-sum、MSE)計算されることができ、マクロブロックをコード化する際に使用される量子化器スケールであり、または、その選択物は、本来的な(subjective)歪みをより正確に反映する尺度、例えば輝度および周波数で重み付けされたMSEまたは空間的な活性度(spatial-activity)で重み付けされた量子化器スケール、であり得る。この最適化問題の解決策は、目的関数および個々のマクロブロックR(D)関数が単調であるという事実のために一意である。
上記のように、動きベクトルおよびDCT係数のMPEG差分符号化による、最適解(全検索)の計算において膨大な計算のオーバヘッドがあり、これは、スライス長により指定される期間中に、マクロブロックからマクロブロックへ伝搬する依存性を持ち込む。全検索プロセスを回避するために、上界の計算は、依存性の問題を委ねる(address)ために「グリーディ(greedy、貪欲な)アルゴリズム」を採用する。グリーディ・アルゴリズムは、以前にコード化されたマクロブロックのために選択された最良のコード化モードに基づいてコード化モードを選択することによって、計算上のオーバヘッドを削減する。実際には、グリーディ・アルゴリズム・プロセスは、全検索プロセスでのようにスライスの全長に関して依存性を考える代わりに、以前にコード化されたマクロブロックにのみに依存性を制限する。したがって、上界は、大局的な最適解である代わりに、準最適な解である。
最適なコード化モードを得るために、同じ量子化スケールを用いて各コード化モードに対して各マクロブロックをコード化するために必要とされるビットの総数の計算および比較が実施される。各マクロブロックのビットの総数、Btは、動きベクトルBmvをコード化するために必要とされるビット、および予測残差Bresをコード化するために必要とされるビットという2つの部分から成る。Bresは、マクロブロック・タイプ、量子化器スケール、コード化されたブロック・パターン、およびDCT係数のビットといった副次的な情報(side information)をコード化するためのビットを含むことに注意すべきである。しかしながら、DCT係数をコード化するために必要とされるビットは、一般にはBresの大多数を含み、Bresの支配的な部分であると考えられる。このため、各マクロブロックをコード化するために必要とされるビットの総数は、
t=Bmv+Bres (4)
によって表される。
動きベクトルBmvをコード化するために必要とされるビット数は、典型的には、ルックアップ・テーブル(look-up table)から得られる。対照的に、予測残差Bresをコード化するために必要とされるビットの数Bresを得るためには、3つのステップ・プロセス200が、図2に描かれるように必要とされる。
図2は、DCT変換210、量子化220、およびラン・レングス(run length)・コーディング/可変長コーディング230のステップを含むプロセス200を図示する。ステップ210では、DCTが、予測残差の8×8ピクセル入力ブロックに適用され、DCT係数のブロックを作り出す。DCT係数はステップ220において量子化され、量子化されたDCT係数の8×8ブロックを作り出す。最後に、ステップ230においては、量子化されたDCT係数が(ラン、レベル)対に変換される。すなわち、Bresは、ゼロが「連続する長さ(run length、ラン・レングス)」および量子化されたDCT係数の「レベル」に従って検索表(look-up table)を介して獲得される。ゼロの連続する長さは、量子化されたDCT係数の8×8ブロックのジグザグ・スキャニングにおいて継続する量子化された非ゼロのDCT係数の間にあるゼロの数を表すと同時に、レベルは量子化されたDCT係数の振幅を表す。ルックアップ・テーブルを使用することは、ラン・レングス・コーディング/可変長コーディングにおいては従来の実務である。このため、Bresは、ランおよびレベルの値の対に依存し、
res=f(run,level) (5)
により表される。
要約すると、コード化性能についての上界を得るためには、全てのコード化モードに対して図2の3つのステップ・プロセスが各マクロブロックに対して実行されなければならない。次いで、もっとも少ない数のビットを使用するコード化モードが、最適なコード化モードとして選択される。上界方法の計算のオーバヘッドは中位であるが、それは全検索方法を越えるかなりの改善である。
図3は、ビット数Bresの近似を提供することによって、上界のさらに複雑な(involved)コード化手順をさらに簡略化する好ましい実施の形態を描いている。方法300では、式(5)におけるランおよびレベルの対が、各マクロブロックのための残差Vresの分散および量子化器スケールqの値に強く依存していると推定している。このため、マクロブロックを符号化するために必要とされるビット数は、その分散の値に正比例の相関、および量子化器スケールの値に反比例の相関を示すべきである。したがって、式(5)は、
Figure 0004532607
によって近似されて、ここでKおよびCは定数である。このため、式(4)は、
t’=Bmv+(K/(q+Cq2))Vres (7)
によって近似され、ここで値Bt’は、各マクロブロックのために最適なコード化モードを選択するための基準として使用される。好ましい実施の形態においては、定数KおよびCのための値は、それぞれ1および120である。他の定数値を利用できることに注意すべきである。
図3を参照すると、プロセス300は、ステップ310において、マクロブロック上の動き補償を実行し、ある特定のコード化モードのための予測残差および対応する動きベクトルを作り出す。動きベクトルはステップ320に渡され、予測残差はステップ330に渡される。
ステップ320では、プロセス300は、動きベクトル・ビット・カウントBmvを決定する。好ましい実施の形態では、事前に定義されたルックアップ・テーブルが、各動きベクトルをコード化するために必要とされるビット数を確認するために提供される。
ステップ330では、プロセス300は、予測残差Bresをコード化するために必要とされるビット数を計算する。式(6)に従って使用される残差分散の計算が実行され、予測残差ビット・カウントBresを作り出す。
ステップ340では、プロセス300は、動きベクトル・ビット・カウントBmvおよび予測残差ビット・カウントBresの総和を実行し、現在のコード化モードの下におけるマクロブロックの総ビット・カウントBtを求める。結果は、ステップ350に渡される。
ステップ350では、プロセス300は、現在のコード化モードに対して計算されたBtが全てのコード化モード中で最も小さいかを決定する。決定が肯定的に回答されると、プロセス300は、マクロブロックのためにそのコード化モードを選択し、ステップ360において次のマクロブロックのためにコード化モードを選択するために先に進む。決定が否定的に回答されると、プロセス300は、ステップ310に進み、別のコード化モードを使用して、最も小さいBtを持つコード化モードが選択されるまで、同じマクロブロックのために計算を再度開始する。
装置は試験され、ある数のシミュレーションを実行した。シミュレーションにおいては、3つのモード決定方法が比較された。第1のモード決定方法(例えば、TM4またはTM5)は、動きベクトル・オーバヘッドに対する固定されたしきい値を加えたもっとも少ないの予測エラー・エネルギーを持つコード化モードを選択することに基づいており、ここでは、レート制御は独立に決定される(つまり、レート制御は、コード化モード決定の一部分ではなかった)。第2のモード決定方法(例えば、上界方法)は、マクロブロックをコード化するために必要とされる最小ビット数を持つコード化モードを選択することに基づいている。この第2の方法では、コード化モードの選択は、選択された量子化スケールに基づいて最適化され、またグリーディ・アルゴリズムが動きベクトルおよびDCT係数の差分符号化に適用された。最後に、第3の方法は、コード化モードの決定が、動きベクトル用のビット数を加えた予測残差をコード化するために必要とされるビット数の近似に基づく、本発明の好ましい実施の形態である。近似は、式(6)に表されるように、量子化スケールの値および残差の分散の値に基づいている。
これらの3つの方法のコード化性能を判断する際に、画像のシーケンスの再構築された同じ品質を得るために必要とされるビットの総数の比較が成された。シミュレーションでは、各マクロブロックに対する量子化スケールが、再構築された品質の基準として使用された。TMエンコーダが、シーケンスをコード化するために最初に使用され、また対応するマクロブロックのための結果として生じる量子化器スケールが保存された。これらの同じ量子化器スケールは、上界エンコーダおよび本発明のエンコーダにおいて使用された。2つのシーケンス「花壇」と「自転車」(各々は150フレームから成る)が、コンピュータ・シミュレーションにおいて使用され、結果はそれぞれ以下の表1および表2に示されている。
結果は、モード選択およびレート制御の合同した最適化が、花壇のシーケンスについては従来のTM方法から14%の節約を、自転車のシーケンスについては24%の節約を生み出すことを実証している。同様に、本発明の好ましい実施例は、TM方法を越えて、花壇のシーケンスについて9%を超える節約、および自転車のシーケンスについて17%の節約を得た。好ましい方法はより小さい総ビット・カウントの節約をもたらしたが、削減された計算上のオーバヘッドおよび複雑度という観点において、10%から17%の間の節約がきわめて重要である。
このようにして、マクロブロックのために選択された量子化スケールに基づいてマクロブロック・コード化モードを選択する新規の装置および方法が示され、記述されてきた。しかしながら、主発明の多くの変更、改良、変形、並びにその他の使用および応用は、実施例を開示する本明細書および添付図面を考慮した後に当業者に明らかになるだろう。本発明の精神および範囲から逸脱しないこのようなすべての変更、改良、変形並びにその他の使用および用途は、本発明が及ぶことになると考えられ、本発明は引き続く請求項によってのみ制限されるべきであるる。例えば、Bmvはルックアップ・テーブルから得られる場合がある。また、ビットの総数は、公式
t=Bmv+Bres
に従って計算される場合がある。この場合、Btはビット総数であり、Bmvは動きベクトルをコード化するために必要とされるビット数であり、Bresは予測残差信号をコード化するために必要とされるビット数であり、Bmvはルックアップ・テーブルから獲得され、BresはDCT変換、量子化、およびラン・レングス・コード化を予測残差信号に適用することにより獲得される。

Claims (6)

  1. 少なくとも1つのマクロブロックを有する入力動画像を符号化するための装置であって、
    該入力動画像に応答を示し、少なくとも1つの動きベクトルを生成する動き推定手段と、
    該動き推定手段に結合され、該入力動画像の予測された画像信号を生成する動き補償手段と、
    該入力動画像から該予測された画像信号を差し引き、予測残差信号を生成する差異手段と、
    該動き補償手段および該差異手段に結合され、(i)選択された量子化スケールに従って、前記選択された量子化スケールにおいて複数のコード化モード毎に、該入力動画像の各マクロブロックの動きベクトルおよび予測残差信号をコード化するために必要とされるビットの総数をそれぞれ計算し、(ii)該計算した複数のコード化モード毎のビットの総数を比較して、最小量のビットを用いて該マクロブロックをコード化するように該マクロブロックのためのコード化モードを選択するモード決定手段であって、該予測残差信号をコード化するために必要とされる該計算されたビットの総数は、該予測残差信号の分散に比例するとともに該量子化スケールの値に反比例する、モード決定手段と、
    該モード決定手段に結合され、当該装置のビットレートを制御すると共に該量子化スケールを選択し、該量子化スケールを該モード決定手段へ出力するレート制御手段を備える装置。
  2. 該ビットの総数は、式
    t’=Bmv+(K/(q+Cq2))Vres
    に従って計算され、ここで、Bt’が該ビットの総数であり、Bmvは該動きベクトルをコード化するために必要とされるビット数であり、qは量子化スケールであり、Vresが該予測残差信号の分散であり、KおよびCが定数である、請求項1に記載の装置。
  3. 該モード決定手段に結合され、該予測残差信号を一組の相関のない係数に変換するための変換手段と、
    該変換手段に結合され、該一組の相関のない係数を量子化するための量子化手段と、
    該変換手段に結合され、該量子化された一組の相関のない係数および該動きベクトルをコード化するためのコード化手段と、
    コード化手段に結合され、チャネルにわたる伝送のためにデータ・ストリームを格納するためのバッファ手段と、を備え、
    該動き補償手段は、コード化された基準画像を復号化するための復号化手段を含む、請求項1に記載の装置。
  4. 入力動画像信号のマクロブロック毎にコード化モードを選択するための方法であって、
    (a)該入力動画像信号からマクロブロック毎に動きベクトルを生成するステップと、
    (b)該動きベクトルを使用して、コード化モード毎に該入力動画像信号の予測画像信号を生成するステップと、
    (c)該入力動画像信号から該予測画像信号を差し引き、予測残差信号を作成するステップと、
    (d)該予測残差信号のコード化のレートを制御するステップと、
    (e)該制御ステップ(d)によって選択された量子化スケールに従って、マクロブロック毎にコード化モードを選択するステップと、を備え、
    該ステップ(e)は、
    (e1)該複数のコード化モード毎に各マクロブロックの該動きベクトルおよび該予測残差信号をコード化するために必要とされるビットの総数を計算するステップであって、該予測残差信号をコード化するために必要とされる該計算されたビットの総数は、該予測残差信号の分散に比例するとともに該量子化スケールの値に反比例する、ステップと、
    (e2)該計算した複数のコード化モード毎のビットの総数を比較して、最小量のビットを用いて該マクロブロックをコード化するように該マクロブロックのためのコード化モードを選択するステップと、を含む方法。
  5. ステップ(e1)における該ビットの総数は、式
    t’=Bmv+(K/(q+Cq2))Vres
    に従って計算され、ここで、Bt’が該ビットの総数であり、Bmvが該動きベクトルをコード化するために必要とされるビット数であり、qが量子化スケールであり、Vresが該予測残差信号の分散であり、KおよびCが定数である、請求項4の方法。
  6. (f)該予測残差信号を一組の相関のない係数に変換するステップと、
    (g)該一組の相関のない係数を量子化するステップと、
    (h)該量子化された一組の相関のない係数および該動きベクトルをコード化するステップと、
    (i)チャネルにわたる伝送のためにデータ・ストリームを格納するステップと、
    (j)更に符号化するためにコード化された基準画像信号を復号化するステップと、を備える請求項4に記載の方法。
JP51668997A 1995-10-26 1996-10-25 ブロック・ベースのコード化システムにおいてコード化モードを選択するための装置および方法 Expired - Lifetime JP4532607B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US54774195A 1995-10-26 1995-10-26
US08/547,741 1995-10-26
PCT/US1996/016816 WO1997016031A1 (en) 1995-10-26 1996-10-25 Apparatus and method for selecting a coding mode in a block-based coding system

Publications (2)

Publication Number Publication Date
JPH11513873A JPH11513873A (ja) 1999-11-24
JP4532607B2 true JP4532607B2 (ja) 2010-08-25

Family

ID=24185939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51668997A Expired - Lifetime JP4532607B2 (ja) 1995-10-26 1996-10-25 ブロック・ベースのコード化システムにおいてコード化モードを選択するための装置および方法

Country Status (5)

Country Link
EP (1) EP0857393B1 (ja)
JP (1) JP4532607B2 (ja)
KR (1) KR100384327B1 (ja)
DE (1) DE69625501T2 (ja)
WO (1) WO1997016031A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000040031A1 (en) * 1998-12-29 2000-07-06 Koninklijke Philips Electronics N.V. Method and device for encoding a video signal
JP2000324498A (ja) * 1999-05-13 2000-11-24 Nec Corp 動画像符号化装置
GB2360662B (en) * 1999-05-13 2002-01-09 Nec Corp Picture coding apparatus
EP1061750A3 (en) * 1999-06-18 2010-05-05 THOMSON multimedia Picture compression process, especially of the MPEG2 type
KR100848457B1 (ko) * 2002-05-06 2008-07-28 주식회사 케이티 비디오 인코더의 비트발생 제한 및 버퍼넘침 방지 방법
US6944224B2 (en) * 2002-08-14 2005-09-13 Intervideo, Inc. Systems and methods for selecting a macroblock mode in a video encoder
WO2010005691A1 (en) 2008-06-16 2010-01-14 Dolby Laboratories Licensing Corporation Rate control model adaptation based on slice dependencies for video coding
WO2019092690A1 (en) * 2017-11-09 2019-05-16 Amimon Ltd. System, device, and method of interframe prediction

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4972260A (en) * 1988-08-22 1990-11-20 Matsushita Electric Industrial Co., Ltd. Apparatus for coding a moving-picture signal
US5144426A (en) * 1989-10-13 1992-09-01 Matsushita Electric Industrial Co., Ltd. Motion compensated prediction interframe coding system
US5091782A (en) * 1990-04-09 1992-02-25 General Instrument Corporation Apparatus and method for adaptively compressing successive blocks of digital video
JPH05183888A (ja) * 1991-12-27 1993-07-23 Mitsubishi Electric Corp 情報源符号化装置
JP3308990B2 (ja) * 1992-07-03 2002-07-29 松下電器産業株式会社 動画像の予測符号化方法及び予測符号化装置
US5440346A (en) * 1993-06-16 1995-08-08 Intel Corporation Mode selection for method and system for encoding images

Also Published As

Publication number Publication date
JPH11513873A (ja) 1999-11-24
EP0857393B1 (en) 2002-12-18
EP0857393A1 (en) 1998-08-12
KR100384327B1 (ko) 2003-08-21
DE69625501D1 (de) 2003-01-30
KR19990067016A (ko) 1999-08-16
DE69625501T2 (de) 2003-09-25
WO1997016031A1 (en) 1997-05-01
EP0857393A4 (ja) 1998-09-16

Similar Documents

Publication Publication Date Title
US6192081B1 (en) Apparatus and method for selecting a coding mode in a block-based coding system
CA2295689C (en) Apparatus and method for object based rate control in a coding system
JP4111351B2 (ja) コード化システムにおけるレート制御を最適化するための装置および方法
US6690833B1 (en) Apparatus and method for macroblock based rate control in a coding system
US6639942B1 (en) Method and apparatus for estimating and controlling the number of bits
US6084908A (en) Apparatus and method for quadtree based variable block size motion estimation
US6037987A (en) Apparatus and method for selecting a rate and distortion based coding mode for a coding system
US8249145B2 (en) Estimating sample-domain distortion in the transform domain with rounding compensation
US20080240257A1 (en) Using quantization bias that accounts for relations between transform bins and quantization bins
US5825930A (en) Motion estimating method
JP2001145113A (ja) 画像情報変換装置及び方法
US8325807B2 (en) Video coding
JP4532607B2 (ja) ブロック・ベースのコード化システムにおいてコード化モードを選択するための装置および方法
JP2001148852A (ja) 画像情報変換装置及び画像情報変換方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061003

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070104

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070329

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071022

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071220

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20071220

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080117

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080501

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100330

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term