JP5390773B2 - オーバーラップスムージングおよびインループデブロッキングの区分的な処理 - Google Patents

オーバーラップスムージングおよびインループデブロッキングの区分的な処理 Download PDF

Info

Publication number
JP5390773B2
JP5390773B2 JP2007553130A JP2007553130A JP5390773B2 JP 5390773 B2 JP5390773 B2 JP 5390773B2 JP 2007553130 A JP2007553130 A JP 2007553130A JP 2007553130 A JP2007553130 A JP 2007553130A JP 5390773 B2 JP5390773 B2 JP 5390773B2
Authority
JP
Japan
Prior art keywords
block
deblocking
video
filter
smoothing
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.)
Active
Application number
JP2007553130A
Other languages
English (en)
Other versions
JP2008529411A (ja
Inventor
クワン ビル
シュランガー エリック
キング ケイシー
ロザス ラケル
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2008529411A publication Critical patent/JP2008529411A/ja
Application granted granted Critical
Publication of JP5390773B2 publication Critical patent/JP5390773B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、ビデオ処理技術に関する。一態様では、本発明は、デジタルビデオ情報の伸張に関する。
ビデオ情報は大量の記憶空間を必要とするため、ビデオ情報は通常圧縮される。したがって、例えばCD−ROMまたはDVDに記憶されている圧縮ビデオ情報を表示するためには、その圧縮ビデオ情報を伸張して、伸張されたビデオ情報を提供する必要がある。次に、この伸張されたビデオ情報が、ビットストリーム中でディスプレイに提供される。ビデオ情報の伸張されたビットストリームは通常、ディスプレイ上のピクセル位置に対応するメモリ位置のビットマップとして記憶される。ディスプレイに情報の1画面を提示するのに必要とされるビデオ情報はフレームと呼ばれる。多くのビデオシステムは、一連のフレームを表示することによって動画ビデオを提供するために、圧縮ビデオ情報を迅速かつ効率的に復号化することを目標としている。
記録媒体や装置、データ処理のさまざまな態様(ビデオ圧縮など)を標準化することが、この技術とその用途が引き続き成長するために非常に望ましい。ビデオ情報を圧縮および伸張するため、数多くの圧縮(伸張)標準が既に開発されているか開発中である。このようなものには、例えばビデオの符号化および復号化のためのMPEG(Moving Pictures Expert Group)の各種標準(例えばMPEG−1、MPEG−2、MPEG−3、MPEG−4、MPEG−7、MPEG−21)またはWindowsメディアビデオ圧縮標準(例えばWMV9)がある。MPEG標準およびWMV標準の各々は、ここに完全に記載したものとして、本明細書にその全体を援用する。
一般に、ビデオ圧縮技術には、ビデオフレーム内に存在する空間的および時間的な冗長性を減らすことによって、ビデオ情報を圧縮するように動作するフレーム内圧縮とフレーム間圧縮が含まれる。フレーム内圧縮技術は、Iフレームと呼ばれるフレーム内に含まれている情報のみを使用して、フレームを圧縮する。フレーム間圧縮技術は、予測フレーム(P−フレーム)またはB−フレームと通常呼ばれる先行フレームおよび/または後続フレームを参照してフレームを圧縮する。フレーム内圧縮技術とフレーム間圧縮技術は、空間またはブロックベースの符号化を使用しており、通常は、ビデオフレームが符号化(ブロック変換処理とも呼ばれる)のためブロックに分割されている。例えば、I−フレームは、8×8ブロックに分割されている。ブロックは、特定の余弦基底関数の振幅として係数を符号化する離散コサイン変換(DCT)符号体系、あるいは他の何らかの変換(整数変換など)を使用して符号化される。次に、変換された係数が量子化されて、振幅レベルがゼロではない係数と振幅レベルがゼロの係数のラン(またはサブシーケンス)が得られる。次に、量子化された係数がランレベル符号化(ランレングス符号化)されて、ゼロ係数のロングランが要約される。次に、この結果が、符号化する値にコードワードを割り当てる統計符号化技術を使用するか、または、例えばCABAC(Context-based Adaptive Binary Arithmetic Coding)、CAVLC(Context Adaptive Variable Length Coding)などの何らかのエントロピー符号化技術を使用して、可変長符号器(variable length coader:VLC)内でエントロピー符号化される。出現頻度の高い値には短いコードワードが割り当てられ、出現頻度の低い値には長いコードワードが割り当てられる。平均すると、符号列が原データより短くなるように出現頻度の高い短いコードワードが多くなる。このため、空間またはブロックベースの符号化技術は、1つのフレームに関連するデジタル情報を圧縮する。ビデオ圧縮技術は、一連のフレームに関連するデジタル情報を圧縮するために、P−フレームおよび/またはB−フレームを使用して、連続するフレーム間に時間的な相関関係が存在している点を利用する。フレーム間圧縮技術は、異なるフレーム間の差を特定して、次に、DCT、量子化、ランレングス符号化技術およびエントロピー符号化技術を使用して、その差情報を空間的に符号化するが、異なる実装では、別のブロック構成を使用することができる。例えば、P−フレームは16×16のマクロブロック(例えば、4つの8×8輝度ブロックと2つの8×8色差ブロックを有する)に分割されて、このマクロブロックが圧縮される。フレーム内圧縮技術、フレーム間圧縮技術のいずれが使用されるかどうかを問わず、ビデオデータを符号化するために空間またはブロックベースの符号化技術を使用するということは、圧縮ビデオデータが可変長に符号化されるか、あるいは上記のブロックベースの圧縮技術を使用して圧縮されることになる。
受信装置または再生装置では、圧縮ステップが逆転されて、ブロック変換によって処理されたビデオデータが復号化される。図1は、ビデオ情報を伸張するための従来のシステム30を示しており、システム30は、入力ストリーム復号化部35、動きデコーダ38、加算器39、フレームバッファ40およびディスプレイ41を有する。入力ストリームデコーダ35は、入力バッファ31で圧縮ビデオ情報のストリームを受け取って、VLCデコーダ32で可変長復号化を実行し、逆量子化器33でジグザグおよび量子化を逆転させ、IDCT34でDCT変換を逆転させて、静的に伸張されたビデオ情報のブロックを加算器39に提供する。 動き復号化部38では、動き補償ユニット37は、VLCデコーダ32からの動き情報と、前の画像データのコピー(前の画像ストアバッファ36に記憶されている)を受け取り、動き補償されたピクセルを加算器39に提供する。加算器39は静的に伸張されたビデオ情報と、動き補償されたピクセルを受け取り、伸張されたピクセルをフレームバッファ40に提供し、続いてフレームバッファ40がディスプレイ41にこの情報を提供する。
従来のビデオエンコーダおよびデコーダの設計では、ブロックベースの変換、動き補償、量子化および/またはほかの損失の多い処理ステップによって、フレームにブロッキングアーチファクト(認識できるブロック間の不連続性)が入り込むことがある。ブロッキングアーチファクトを低減させようとする従来の試みでは、オーバーラップスムージングまたはデブロッキングフィルタリング(インループ処理または後処理のいずれにおいても)を使用してブロック間の境界をスムージングすることによって、フレームを処理してきた。例えば、WMV9標準では、ブロッキングアーチファクトを低減させるために、画像全体に対して、オーバーラップスムージングとインループデブロッキングを処理することが規定されている。WMV9復号化が有効の場合、オーバーラップスムージングが、8×8ブロック境界のみに対して行われ、その際、最初にフレーム全体について垂直方向のスムージングが行われて、次にフレーム全体について水平方向にオーバーラップスムージングが実行される。次に、インループデブロッキングが有効の場合、これは以下の順序で行われる。(i)フレーム内のすべての8×8ブロックの水平境界線が、一番上の線を始点としてフィルタされ、(ii)フレーム内のすべての8×4サブブロックの水平境界線が、一番上の線を始点としてフィルタされ、(iii)すべての8×8ブロックの垂直境界線が、一番左の線を始点としてフィルタされて、(iv)すべての4×8サブブロックの垂直境界線が、一番左の線を始点としてフィルタされる。従来の手法では、フレーム全体に2つのパスが用いられ、このうち、第1のパスはオーバーラップスムージング用であり、第2のパスはインループデブロッキング用である。個々のステップの処理を実行すべきかどうかを決定するほかの要求事項(例えば、パラメータPQUANTおよびブロックのタイプに関連するものなど)が当てはまる場合もあるが、これらの処理が目標としているのは、16×16マクロブロック、8×8ブロックまたは4×4サブブロックの端を超えてスムージングを行い、二次元変換および量子化によって入り込むブロック歪み(blockiness)アーチファクトを除去することにある。
ビデオ伸長を処理するためのプロセッサを利用した手法では、スムージングまたはデブロッキングの機能(function)を追加することは、多量の計算が必要なフィルタリング処理である。フレームを保持する大容量のメモリバッファ(例えば、307キロバイトに相当する640×480ピクセルのVGAサイズ)がある場合、この処理の順序はソフトウェアで実行することができる。これに対して、ハードウェアを利用した復号化のための手法は、スムージングとデブロッキングを同時に実行せず、フレーム全体に対してデブロッキングを実行しており、大容量のローカルメモリを必要とし、大きなバス帯域幅を要求し、メモリアクセス時間が犠牲にされる。したがって、伸張方法に関連する処理の要求事項を下げ、伸張操作(より詳細には、オーバーラップスムージング操作および/またはデブロッキングフィルタ操作を含む)を改善することが大いに必要とされている。従来のシステムの更に別の制約と不都合は、添付の図面と詳細な説明を参照して、本出願のほかの部分を検討すれば、当業者にとって明らかであろう。
ビデオ伸張を実行するためのソフトウェアとハードウェアの組合せを使用することによって、各種のビデオ圧縮方式を迅速かつ効率的に処理するために適合させることができる柔軟な伸張システムが提供される。この柔軟な伸張システムは、フロントエンドの伸張ステップを実行するためのプロセッサと、バックエンドの伸張ステップを実行するためのビデオアクセラレータとを有する。ビデオフレームデータに対してオーバーラップスムージング操作とインループデブロッキングフィルタ操作を実行するためのビデオアクセラレータのメモリ容量および/または帯域幅の要求事項を下げるために、インループフィルタは、マクロブロックベースで、オーバーラップスムージングおよびインループデブロッキングの区分的な処理を実行する。ピクセルの区分的な処理を使用することによって、ブロックにアクセスしながら、オーバーラップスムージングとインループデブロッキングを同時に実行することができる。部分的に処理されたデータを記憶するためのスクラッチパッドメモリを使用することによって、スムージングアルゴリズムとデブロッキングアルゴリズムを分け、より小さなデータブロックに適用することができる。処理の順序が、フレームに基づいた順序で実行されているように維持され、ブロックのフェッチと記憶のバーストを防ぐため、フィルタスループットを均等化するために、レーテンシが認識できないレベルに抑えられ、パイプライン方式で実行されることができる。
本発明の1つ以上の実施形態によれば、複数のマクロブロックへのブロック変換により処理されたビデオデータを復号化するためのビデオ処理システム、装置および方法が提供される。各マクロブロックでは、少なくとも第1のブロック内で、第1のブロックが第1のフィルタ操作で部分的に処理されて、次に、第2のフィルタ操作で完全に処理されるように、選択されたピクセルデータをスムージングおよびデブロッキングするために、インループフィルタによって区分的な処理が実行される。これによって、1つ以上の完了したブロックと1つ以上の部分的にフィルタされたブロックとが生成される。例えば、第1のフィルタ操作は、マクロブロックの先頭行に対するスムージングおよびデブロッキングフィルタリングであってもよく、第2のフィルタ操作は、マクロブロックの第2の行に対するスムージングおよびデブロッキングフィルタリングであってもよい。あるいは、別の態様では、第1のフィルタ操作は、第1のブロックに対する区分的なオーバーラップスムージングおよびデブロッキングフィルタリングの第1の組であってもよく、第2のフィルタ操作は、第1のブロックに対する区分的なオーバーラップスムージング操作およびデブロッキング操作の第2の組であってもよい。その結果、第1のフィルタ操作中に、前に処理されたマクロブロックに隣接するブロックが、オーバーラップスムージングおよびデブロッキングのために完全にフィルタされて、次に、完了したブロックとして出力されうる。一方、その後処理されるマクロブロックに隣接するブロックは、オーバーラップスムージングおよびデブロッキングのために部分的にフィルタされて、次に、部分的にフィルタされたブロックとしてスクラッチパッドメモリに記憶されうる。第2のフィルタ操作中に、完全に処理できない部分的にフィルタされたブロックがスクラッチパッドメモリに記憶され、第2のマクロブロック内の選択されたピクセルデータをスムージングおよびデブロッキングするために取得されるときに完了されうる。選択した実施形態では、 区分的な処理は、選択された垂直ブロック境界および水平ブロック境界に対するオーバーラップスムージングのシーケンスを実行し、続いて、選択されたブロック境界およびサブブロック境界に対して、水平方向および垂直方向にインループデブロッキングを実行する第1のフィルタ操作として実装される。次に、第2のフィルタ操作が実行されて、これにより、残りの垂直ブロック境界および水平ブロック境界がオーバーラップスムージングされて、続いて、残りのブロック境界およびサブブロック境界に対して、インループデブロッキングが水平方向および垂直方向に実行される。マクロブロックの各行に、一度に1マクロブロックずつ、この区分的な処理を実行することによって、マクロブロック処理をパイプライン化することができる。
本発明の目的、利点、および他の新しい特徴は、添付の特許請求の範囲と添付の図面と併せて読めば、以下の詳細な説明から、当業者にとって明らかとなるであろう。
以下に、本発明の例示的な実施形態を記載するが、本発明がこれらの具体的な詳細に従わなくとも実施でき、システム上の制約およびビジネス上の制約に適合させるなど、開発の具体的な目的を達成するために、実装に固有の判断が数多く必要とされ、これは実装によって変わるということが理解される。この種の開発作業は複雑かつ時間がかかるものであるが、本開示の利益を受ける当業者にとって日常的な作業である。例えば、本発明をわかりにくくすることのないように、選択された態様を、詳細に図示するのではなく、ブロック図形式で示す。このような記述および表現は、当業者が、自身の作業の内容を他の当業者に説明し伝えるために用いられているものである。添付の図面を参照して本発明を説明する。
図2を参照すると、本発明による例示的なビデオ伸張システム100のブロック図が示される。図に示すように、ビデオ伸張システム100はどのようなビデオ再生装置に実装されてもよく、これには、デスクトップコンピュータまたはラップトップコンピュータ、ワイヤレスまたは携帯式デバイス、携帯情報端末(PDA)、携帯式またはセルラー式電話や、ビデオ画像化機能を備えたそれ以外のビデオ再生装置などがある。図2に示すように、ビデオ伸張システム100は、1つ以上のプロセッサまたは処理ユニット50と、ビデオまたはメディアアクセラレーションハードウェアユニット101とに結合されたバス95を有するホストまたはアプリケーション処理ユニットとして実装される。また、ビデオ伸張システム100はメインメモリシステムを有し、これにはDDRコントローラ60を介してアクセスされる大容量DDR SDRAM62,64が含まれる。これに加えて、あるいは別法として、1つ以上のメモリ(例えば、IDE72、フラッシュメモリユニット74、ROM76など)が、スタティックメモリコントローラ70を介してアクセスされる。DDR SDRAMまたはほかのメモリの一方または両方が、ビデオ伸張システム100と一体化されていても、その外部にあってもよい。当然、ほかの周辺機器や表示装置(82,84,86,92)が、それぞれのコントローラ80,90を介してアクセスされてもよい。簡潔を期すと共に理解しやすくするために、ビデオ伸張システム100を構成する要素のすべてを詳細に記載しない。このような詳細は当業者に公知であり、特定のコンピュータ供給業者およびマイクロプロセッサの種類によって変更され得る。更に、ビデオ伸張システム100は、所望の実装に応じて、ほかのバス、デバイスおよび/またはサブシステムを有していてもよい。例えば、ビデオ伸張システム100は、キャッシュ、モデム、パラレルインタフェースまたはシリアルインタフェース、SCSIインタフェース、ネットワークインターフェイスカードなどを有していてもよい。図中の実施形態では、CPU50は、フラッシュメモリ74および/またはSDRAM62,64に記憶されているソフトウェアを実行する。
図2に示すビデオ伸張システム100では、CPU50は、VLDブロック52に示すように、最初の可変長復号化機能を実行する一方、メディアアクセラレーションハードウェアユニット101は、復号化データに対して、逆量子化104、逆変換106、動き補償108、インループフィルタリング110、色空間変換112、およびスケーリング114とフィルタリング116を実行する。得られた復号化データは、出力バッファ118および/またはフレームバッファ(図示せず)に一時的に記憶されてから、ディスプレイ92に表示されうる。復号化処理機能をプロセッサ50とメディアアクセラレーションハードウェア101とに分けることにより、フロントエンドの復号化ステップ(例えば可変長復号化)を、各種の圧縮方式(例えばMPEG−1、MPEG−2、MPEG-3、MPEG−4、MPEG-7、MPEG-21、WMV9など)に合わせるために、ソフトウェアで実装することができる。フロントエンドが生成した復号化データはメディアアクセラレーションハードウェア101に提供され、メディアアクセラレーションハードウェア101は、この復号化データを更に復号化して、フレームが完成するまで、出力バッファ118またはフレームバッファに、マクロブロック毎にピクセル値を提供する。
動作時に、ビデオ伸張システム100は、CD ROM、DVDまたはほかの記憶装置などのビデオ信号源から圧縮ビデオ信号を受け取る。圧縮ビデオ信号は、圧縮ビデオ情報のストリームとしてプロセッサ50に提供され、プロセッサ50は、命令を実行して、圧縮信号の可変長符号化部分を復号化して、可変長復号化データ(VLDデータ)信号を提供する。ソフトウェアの支援によって可変長復号化が実行されると、VLDデータ(ヘッダ、マトリックス重み、運動ベクトル、変換された残りの係数と、更には差分運動ベクトルを含む)が、メディアアクセラレーションハードウェアユニット101に、直接送られるか、あるいは米国特許出願公開第11/042,365号により詳細に記載されているデータ圧縮技術(“Lightweight Compression Of Input Data”)を使用して送られる。メディアアクセラレーションハードウェアユニット101においてVLDデータを受け取ると、このデータが逆ジグザグ量子化器回路104に提供され、逆ジグザグ量子化器回路104は、VLDデータを復号化して、ジグザグ復号化信号を提供する。圧縮ビデオ信号はジグザグランレングスコード方式で圧縮されているが、ジグザグ復号化信号が情報の逐次的なブロックとして逆DCT回路106に提供されるという点が、逆ジグザグおよび量子化によって補償される。したがって、このジグザグ復号化信号は、ディスプレイ92へのラスタスキャンのために必要な順序に並んだブロックを提供する。次に、このジグザグ復号化信号が、逆変換回路106(例えば、IDCTまたは逆整数変換)に提供され、逆変換回路106が、ジグザグ復号化ビデオ信号に対して、ブロック毎に逆離散コサイン変換を実行して、静的に伸張されたピクセル値または伸張された誤差項を提供する。この静的に伸張されたピクセル値が、動き補償ユニット108によってブロック毎に処理され、動き補償ユニット108は、1、2および4つの運動ベクトル(16×16、16×8および8×8の各ブロック)のためのサポートを含む、フレーム内の予測された双方向の動き補償を提供する。インループフィルタ110は、下記に詳しく述べる通り、スクラッチパッドメモリ111を使用して、部分的に完了したマクロブロックフィルタデータを記憶することによって、オーバーラップスムージングおよび/またはデブロッキングを実行して、WMV9圧縮標準に従ってブロッキングアーチファクトを低減させるか除去する。色空間コンバータ112が、1つ以上の入力データ形式(例えばYCbCr4:2:0)を、1つ以上の出力形式(例えばRGB)に変換して、この結果がフィルタ116でフィルタリングおよび/またはスケーリングされる。
ここに開示するように、スムージングおよびデブロッキングインループフィルタ110は、第1のパスの間に、マクロブロックの各行を部分的にフィルタリングまたは処理して、次に、マクロブロックの次の行の処理中に、部分的に処理したブロックの処理を完了させることによって、隣接するブロック間の境界の不連続性を除去する。この技術により、従来のデブロッキング処理で行われているように、フィルタリングのために、大容量のメモリを使用してフレーム画像全体を記憶するのとは対照的に、小容量のスクラッチパッドメモリ111を、部分的に処理したブロックをスクラッチパッドメモリに記憶するために能率的に使用することができる。各ブロックのオーバーラップスムージングおよびデブロッキングの処理が行毎に完了すると、完了したブロックが、フィルタ110からFIFOバッファ(図示せず)に出力されてから、CSC112に転送される。
図3は、本発明の選択した実施形態による、スクラッチパッドメモリを使用して、オーバーラップスムージングおよびデブロッキングを効率的に処理するマクロブロックベースのインループフィルタリング処理の模式図である。フィルタリング処理では、マクロブロックの行を通るインループフィルタの各パスによって、完全に完了したブロック(ブロックをスムージングおよびデブロックするために完全にフィルタされている)と、部分的に完了したブロック(マクロブロックの次の行をスムージングおよびデブロックする際に後から使用するため、スクラッチパッドメモリに記憶される)とが得られる。図に示すように、インループフィルタリング処理のマクロブロックのそれぞれ(例えば、4つのlumaブロックmb4y0、mb4y1、mb4y2およびmb4y3を有するマクロブロック例4すなわち“mb4”)は以下の順序の処理を受ける。
(i)前のマクロブロック(マクロブロック1など)に隣接する8×8ブロック(mb4y0、mb4y1など)のスムージングおよびデブロッキングを完全に完了し、次のマクロブロック(マクロブロック7など)に隣接する8×8ブロック(mb4y2、mb4y3など)のスムージングおよびデブロッキングを部分的に完了する。
(ii)完了した8×8ブロック(mb4y0、mb4y1など)を出力して、部分的に完了した8×8ブロック(mb4y2、mb4y3など)をスクラッチパッドメモリに記憶する。
(iii)次のマクロブロック(マクロブロック7など)の処理中に、スクラッチパッドメモリから部分的に完了した8×8ブロック(mb4y2、mb4y3など)をフェッチして、取り出した8×8ブロック(mb4y2、mb4y3など)の処理を完了する。
(iv)次のマクロブロックの完了した8×8ブロック(mb7y0、mb7y1など)と共に、完了した8×8ブロック(mb4y2、mb4y3など)を出力する。
実装の詳細は用途によって変わりうるが、図3は、インループフィルタ110によって処理中の画像フレーム150がマクロブロック(例えばマクロブロックmb0、mb1、mb2、mb3、mb4、mb5、mb6、mb7、mb8など)によって構成され、複数の行(例えばmb0、mb1およびmb2から構成される先頭行151)に配置される説明のための実施形態を示している。図3Aに示すように、インループフィルタ110は、マクロブロック151の先頭行を通る第1のパスを既に通っている。先頭行151を通る第1のパスの結果、上のブロック(mb0y0、mb0y1、mb1y0、mb1y1、mb2y0、mb2y1)は、オーバーラップスムージングおよびデブロッキングが完全に処理されているのに対し(クロスハッチングで示す)、下のブロック(mb0y2、mb0y3、mb1y2、mb1y3、mb2y2、mb2y3)はオーバーラップスムージングおよびデブロッキングが部分的にしか処理されていない。マクロブロック処理の次のパスの間に、先頭行151からの部分的に処理されたブロックを完了させるために、先頭行151からの部分的に処理されたブロックが、スクラッチパッドメモリ111に記憶される(ドットパターンで示す)。
更に図3Aに示すように、インループフィルタ110は、マクロブロック152の第2の行の処理を開始しており、先頭行151からの部分的に処理されたブロックを完了する処理も行われる。この結果、mb0y2ブロックとmb3yのブロックは、スムージングおよびデブロッキングが完全に処理され、mb3y2ブロックは部分的にしか処理されていない(スクラッチパッドに記憶される)。図3Aでフィルタ110によって処理されるブロック(フィルタされたブロック154と共に斜めハッチングで示す)では、mb0y3、mb3y1およびmb3y3の各ブロックは、スムージングおよびデブロッキングが部分的に処理されて(フィルタ110に保持され)ており、mb1y2ブロックはスクラッチパッドからフェッチされた部分的に完了したブロックであり、残りのブロック(mb4y0およびmb4y2)は現在のマクロブロック(マクロブロック4など)から得られる。インループフィルタ110がフィルタされたブロック154を処理すると、スムージングおよびデブロッキングが、部分的に処理されたブロック(mb0y3、mb3y1など)の1つ以上で完了するが、残りのブロック(mb1y2、mb4y0、mb4y2およびmb3y3)は部分的にしか完了しない。
フィルタされたブロック154の処理後は、インループフィルタ110は新しいデータをシフトインする。これは、図3Bに示すフレーム155に示され、フィルタ110がフィルタされたブロック156を取得しており、その際、完了したブロック(mb0y3、mb3y1など)を出力し、部分的に完了したブロックの1つ以上(mb3y3など)をスクラッチパッドメモリに記憶し、残りの部分的に完了したブロック(mb1y2、mb4y0、mb4y2など)をフィルタ内で1ブロック位置だけシフトして、マクロブロックの前の行から部分的に完了したブロック(mb1y3など)をフェッチして、現在のマクロブロックから新しいブロック(mb4y1、mb4y3など)をロードする。インループフィルタ110がフィルタされたブロック156を処理すると、スムージングおよびデブロッキングが、部分的に処理されたブロック(mb1y2、mb4y0など)の1つ以上で完了するが、残りのブロック(mb1y3、mb4y1、mb4y3およびmb4y2)は部分的にしか完了しない。
フィルタされたブロック156の処理後、図3Cのフレーム157に示すように、インループフィルタ110は新しいデータを再度シフトインする。より詳細には、フィルタ110はフィルタされたブロック158を取得し、その際、完了したブロック(mb1y2、mb4y0など)を出力し、部分的に完了したブロックの1つ以上(mb4y2など)をスクラッチパッドメモリに記憶し、残りの部分的に完了したブロック(例えばmb1y3、mb4y1、mb4y3)をフィルタ内で1ブロック位置だけシフトして、マクロブロックの前の行から部分的に完了したブロック(mb2y2など)をフェッチして、現在のマクロブロックから新しいブロック(mb5y0、mb5y2など)をロードする。インループフィルタ110がフィルタされたブロック158を処理すると、スムージングおよびデブロッキングが、部分的に処理されたブロック(mb1y3、mb4y1など)の1つ以上で完了するが、残りのブロック(mb2y2、mb5y0、mb5y2およびmb4y3)は部分的にしか完了しない。この時点で、マクロブロック4の上のブロック(mb4y0、mb4y1)に対するスムージングおよびデブロッキングは完了しているが、下のブロック(mb4y2、mb4y3)は部分的にしか完了していない。部分的に記憶された下のブロックをスクラッチパッドメモリに記憶することによって、フィルタ110がマクロブロックの次の行を処理するときに、フィルタリング操作を完了させることができる。
本発明の別の実施形態の更に詳細が、ビデオエンコーダまたはデコーダ内でスムージングおよびデブロッキングフィルタを使用して、復号化されたフレーム中のブロック歪みを低減するための手法(200)を示す図4に示される。明らかなように、図中の技術は、lumaまたはchromaブロックを処理するために使用することができるが、各フレームの端の特別なコーナーの場合も考えられ、これについては、当業者が適宜、本発明を調整して適用させるであろう。しかし、簡潔を期すために、本開示は、主として各フレームの内部のマクロブロックに実行されるインループフィルタリングステップに焦点を当てる。
図4を参照すると、ビデオエンコーダ/デコーダが、フレームの少なくとも先頭のマクロブロックを生成すると(201)、インループフィルタは、その隣接するブロックとの各ブロックの境界をフィルタするために、一度に1マクロブロックずつ、マクロブロックの先頭行を処理する。明らかなように、フレームの端にはスムージングもデブロッキングも実行されないため、フィルタリング処理で使用するための部分的に完了したブロックが、このフレームの外に存在しない。しかし、マクロブロックの先頭行がフィルタされると、スクラッチパッドメモリが部分的に完了したブロックで埋まる。エンコーダ/デコーダは、先頭マクロブロック(201)を始点として、必要なブロックをロードし、上からの部分的に完了した隣接するブロックを、スクラッチパッドから取得する(ただし、マクロブロックの先頭行を除く)。マクロブロックが4つのlumaブロック(y0、y1、y2、y3)と2つのchromaブロック(Cb、Cr)から構成される場合、ブロックは、y0、y1、y2、y3、Cb、Crの順でエンコーダ/デコーダのハードウェアに入る。
次に、ビデオエンコーダ/デコーダが、フィルタ内に読み込まれたブロックの、隣接するブロックまたはサブブロックとの所定の境界をフィルタする(210)。選択した実施形態では、フィルタ内の各ブロックを部分的に処理するために、区分的な処理手法を使用することができる。例えば、輝度面または色差面のいずれかの8×8ブロックを復号化した後に、左および/または右の(垂直の)端の全部または一部に対して、スムージングフィルタ処理が行われる(211)。このほか、あるいはこれに代えて、ブロックの上および/または下の(水平の)端の全部または一部に対して、スムージングフィルタ処理が行われる(212)オーバーラップスムージングに加えて、8×8ブロックの選択された水平境界線の全部または一部(213)および/または8×4サブブロックの選択された水平境界線の全部または一部(214)に対してデブロッキングフィルタ処理が適用されうる。このほか、あるいはこれに代えて、8×8ブロックの選択された垂直境界線の全部または一部(215)および/または4×8サブブロックの選択された垂直境界線の全部または一部(216)に対してデブロッキングフィルタ処理が適用されうる。
フィルタ内のブロックが区分的に処理されると、更なる処理のために、結果がフィルタ内で記憶されるかまたはシフトされる。より詳細には、フィルタが新しいデータを処理できるように、フィルタ内の完了したブロックがフィルタから出力される(217)。更に、新しいブロックと共に処理されない、部分的に完了したブロックが、後から使用してマクロブロックの次の行と共に更に処理するためにスクラッチパッドメモリに記憶される(219)。ただし、マクロブロックの最終行が処理中の場合(判定218に対して結果が「いいえ」のとき)はスクラッチパッドへの記憶ステップが省略されうる(219)。
選択されたブロック(217、219)を記憶することによって、フィルタ内に空間が作成されると、フィルタが新しいデータを処理できるようになる。より詳細には、フレーム内に更にブロックが存在する場合(判定220に対して結果が「はい」のとき)、フィルタ内の残りの部分的にフィルタされたブロックが左シフトされる(222)。先頭行の下の行の場合(判定224に対して結果が「いいえ」のとき)、次の部分的に完了したブロックをスクラッチパッドメモリから取得することによって、フィルタ内の空き空間が埋まり(226)、フィルタの残りの空間が新しいブロックで埋まる(228)。新しいデータがフィルタにロードされると、フィルタブロックの新しい組に対して、ブロックフィルタリング処理210が繰り返される。操作のこのシーケンスを繰り返すことによって、フレームの各マクロブロックが逐次的にフィルタされて、マクロブロックの前の行の処理中に生成された部分的に完了したブロックが、スクラッチパッドから取得されて、その後、マクロブロックの次の行の処理中に使用するために、部分的にフィルタされたブロックがスクラッチパッドに記憶される。これに対して、フィルタすべき残りのブロックがない場合(判定222に対して結果が「いいえ」のとき)、現在のフレームに対するスムージングおよびデブロッキング処理が終了する。この時点で、次のフレームが取得され(230)、新しいフレームの先頭マクロブロックを始点に、フィルタ処理が繰り返される。
図5A〜Kを参照すると、WMV9のスムージングおよびデブロッキング手順を、区分的な処理手法により、マクロブロック4(“mb4”)内のlumaブロックに実装可能な方法を示すために、本発明の説明のための実施形態が示される。フィルタリング処理の最初の状態が図5Aに示され、フィルタ320には、オーバーラップスムージング(例えば、楕円形のマーク322を参照のこと)とデブロッキング(例えば、線のマーク323を参照のこと)が既に部分的に処理されているブロック(mb0y3、mb3y1およびmb3y3など)が既にロードされている。
図5Bに示すように、次に、フィルタ320が、追加のブロックで埋まる。より詳細には、部分的に完了したブロック(mb1y2など)がスクラッチパッドメモリから取得されて、フィルタにロードされる。また、現在のマクロブロック(mb4など)からの選択されたブロック(mb4y0、mb4y2など)がエンコーダ/デコーダにロードされるが、321に示すように、この時点では、マクロブロックをロードするシーケンス(mb4y0、mb4y1、mb4y2およびmb4y3など)のために、ブロックの少なくとも1つがロードされるが、フィルタ320にシフトされないことが求められる。
フィルタブロックがロードされると、図5Cに示すように、フィルタ320は区分的なオーバーラップスムージングを実行する。より詳細には、選択された内部の垂直端部301、302に対して、垂直オーバーラップスムージング(V)が実行される。次に、選択された内部の水平端部(303、304、305および306など)に対して、水平オーバーラップスムージング(H)が実行される。
フィルタブロックが部分的にスムージングされた後は、図5Dに示すように、フィルタ320は区分的なデブロッキングを実行する。最初に、選択された8×8ブロック境界(307、308、309、310など)に対して、水平インループデブロッキング(HD)が実行され、続いて、選択されたサブブロック境界(311、312、313、314など)に対して水平インループデブロッキング(HDH)が実行される。次に、フィルタは、選択された8×8ブロック境界(315、316など)に対して垂直インループデブロッキング(VD)を実行し、続いて、選択されたサブブロック境界(317、318など)に対して垂直インループデブロッキング(VDH)を実行する。
上記のスムージングステップとデブロッキングステップのそれぞれの中では、境界の区分(piece)間に依存関係がないために、境界の区分がフィルタされる順序は重要でない。図5C,5Dに示す区分的な処理の特定のシーケンスのほかに、本発明に従って、別のシーケンスおよび/またはフィルタリングステップを実装することもできる。例えば、境界端の区分の別のシーケンスがフィルタされてもよい。更に、スムージングまたはデブロッキングのモードの1種類以上が適用されていてもよく、フィルタリング方式に応じて、フィルタリング操作が、境界のいずれかの側で最大で3ピクセル以上に作用してもよい。例えば、MPEG−4標準は、2つのデブロッキングモードを使用しており、1つのモードでは、ブロック端のいずれかの側の1つのピクセルに短いフィルタを適用し、第2のモードでは、いずれかの側の2つのピクセルに長いフィルタを適用する。別の実装では、特定の要求事項を満足させるために、フィルタの定義、異種のフィルタの数および/または適応フィルタリングの条件が適合されうる。
スムージング操作とデブロッキングフィルタ操作が終了すると、図5Eに示すように、処理されたフィルタブロックが記憶されてシフトされる。より詳細には、ブロック(mb0y3、mb3y1など)は完了しているため、次に、これら完了したブロックが出力されうる。更に、1つ以上の部分的に完了したブロック(mb3y3など)が、その後、下の隣接するマクロブロック(例えば、図3のmb3y3に関連するマクロブロック6を参照)を処理する際に使用するために、スクラッチパッドに移動されうる。次に、フィルタ内の残りの部分的に完了したブロック(mb1y2、mb4y0、mb4y2など)が、新しいデータのための空間を空けるために、フィルタ内をシフトされうる。出力ステップ、記憶ステップおよびシフトステップの結果が図5Fに示される。
このとき、図5Gに示すように、フィルタ320に新しいデータブロックが埋まりうる。より詳細には、部分的に完了したブロック(mb1y3など)がスクラッチパッドメモリから取得されて、フィルタにロードされる。更に、現在のマクロブロック(mb4など)からの残りのブロック(mb4y1、mb4y3など)がフィルタ320にロードされる。
フィルタブロックがロードされると、図5Hに示すように、フィルタ320は区分的なオーバーラップスムージングを実行する。より詳細には、選択された内部の垂直端部に対して、垂直オーバーラップスムージング(V1、V2)が実行される。次に、選択された内部の水平端部に対して、水平オーバーラップスムージング(H1、H2、H3、H4)が実行される。
フィルタブロックが部分的にスムージングされた後は、図5Iに示すように、フィルタ320は区分的なデブロッキングを実行する。最初に、選択された8×8ブロック境界に対して、水平インループデブロッキング(HD1、HD2、HD3、HD4)が実行され、続いて、選択されたサブブロック境界に対して水平インループデブロッキング(HDH1、HDH2、HDH3、HDH4)が実行される。次に、フィルタは、選択された8×8ブロック境界に対して垂直インループデブロッキング(VD1、VD2)を実行し、続いて、選択されたサブブロック境界で垂直インループデブロッキング(VDH1、VDH2)を実行する。
スムージング操作とデブロッキングフィルタ操作が終了すると、図5Jに示すように、処理されたフィルタブロックが記憶されてシフトされる。より詳細には、ブロック(mb1y2、mb4y0など)は完了しているため、次に、これら完了したブロックが出力されうる。更に、1つ以上の部分的に完了したブロック(mb4y2など)が、その後、下の隣接するマクロブロックを処理する際に使用するために、スクラッチパッドに移動されうる。次に、フィルタ内の残りの部分的に完了したブロック(mb1y3、mb4y1、mb4y3など)が、新しいデータのための空間を空けるために、フィルタ内をシフトされうる。出力ステップ、記憶ステップおよびシフトステップの結果が図5Kに示され、これは、図5Aに示したフィルタの最初の状態に対応している。その結果、図5A〜Kに示すステップのシーケンスが繰り返されて、次のマクロブロック(マクロブロック5またはmb5など)等の次のフィルタブロックのフィルタリングが続行される。
次に図6A〜Fを参照すると、本発明の説明のための実施形態が示されており、WMV9のスムージング手順とデブロッキング手順を、区分的な処理技術によってマクロブロックのCbブロックまたはCrブロックに実装可能な方法を示す。CbマクロブロックとCrマクロブロックは似ているため、インデックスラベルCb(x,y)を付した現在のCbマクロブロックを参照して例を示す。フィルタリング処理の最初の状態が図6Aに示され、フィルタ420には、オーバーラップスムージング(例えば、楕円形のマーク422を参照のこと)とデブロッキング(例えば、線のマーク423を参照のこと)が既に部分的に処理されているブロック(Cb(x−1,y−1)およびCb(x−1,y)など)が既にロードされている。
図6Bに示すように、次に、フィルタ420が、追加のブロックで埋まる。より詳細には、部分的に完了したブロック(Cb(x,y−1)など)がスクラッチパッドメモリから取得されて、フィルタにロードされる。更に、現在のマクロブロックからのブロック(Cb(x,y)など)がフィルタ420にロードされる。フィルタブロックがロードされると、図6Cに示すように、フィルタ420は区分的なオーバーラップスムージングを実行する。より詳細には、選択された内部の垂直端部に対して、垂直オーバーラップスムージング(V)が実行される。次に、選択された内部の水平端部に対して、水平オーバーラップスムージング(H1、H2)が実行される。
フィルタブロックが部分的にスムージングされた後は、図6Dに示すように、フィルタ420は区分的なデブロッキングを実行する。最初に、選択された8×8ブロック境界に対して、水平インループデブロッキング(HD1、HD2)が実行され、続いて、選択されたサブブロック境界に対して水平インループデブロッキング(HDH1、HDH2)が実行される。次に、フィルタは、選択された8×8ブロック境界に対して垂直インループデブロッキング(VD)を実行し、続いて、選択されたサブブロック境界で垂直インループデブロッキング(VDH)を実行する。
スムージング操作とデブロッキングフィルタ操作が終了すると、図6Eに示すように、処理されたフィルタブロックが記憶されてシフトされる。より詳細には、ブロック(Cb(x−1,y−1))は完了しているため、次に、この完了したブロックが出力されうる。更に、部分的に完了したブロック(Cb(x−1,y)など)が、その後、下の隣接するマクロブロックを処理する際に使用するために、スクラッチパッドに移動されうる。次に、フィルタ内の残りの部分的に完了したブロック(Cb(x,y−1),Cb(x,y)など)が、新しいデータのための空間を空けるために、フィルタ内をシフトされうる。出力ステップ、記憶ステップおよびシフトステップの結果が図6Fに示され、これは、図6Aに示したフィルタの最初の状態に対応している。その結果、図6A〜Fに示すステップのシーケンスが繰り返されて、次のマクロブロックのフィルタリングが続行される。
上記からわかるように、ハードウェアデコーダユニット内に小容量のスクラッチパッドメモリを提供することによって、インループフィルタが、スクラッチパッドメモリ内の現在のマクロブロック(MB(x,y)で示す)のlumaブロックおよびのchromaブロックからの部分的に完了したフィルタリング結果を一時的に記憶しうる。その後、記憶したフィルタリング結果が、下の行でこのマクロブロックに隣接するブロックを処理する際に使用されうる。より詳細には、フィルタがすぐ下のマクロブロック、すなわちMB(x,y+1)を処理中に、MB(x,y)に対して記憶したデータが、スクラッチパッドからフェッチされて、MB(x,y+1)の処理のために使用される。
スクラッチパッドメモリに記憶されている部分的に完了したフィルタリング結果は、少なくとも8×8ピクセルデータを有する必要があるが、選択した実施形態では、スクラッチパッドは、そのブロックに境界フィルタリングが必要かどうかを決定するための制御データも記憶している。例えば、この制御データは、各ブロックについて、現在のマクロブロック内の6つのブロックのヘッダのグループを含んでいてもよく、これには、1mvまたは4mvのセレクタ、ブロックアドレス、フレーム内のブロック位置、mbmode、変換サイズ、係数(ゼロまたは非ゼロ)、および運動ベクトル(2つがx方向およびy方向の前進用、2つがx方向およびy方向の後退用)などがある。このデータは、バーストサイズを効率的に利用できるような方法でパッキングされうる。
スクラッチパッドメモリは小容量であるため、このメモリを、ビデオアクセラレータと同じチップに搭載することができるが、代表的なフレームのサイズの場合、スクラッチパッドは、DDRメモリまたはほかの外的メモリなどの別のチップに搭載されうる。しかし、ビデオアクセラレータハードウェアユニット101内にスクラッチパッドメモリを置くことにより、メモリアクセスのパフォーマンスの改善が得られる。スクラッチパッドメモリの容量を最小化することにより、フレーム全体のデータブロックを記憶するための大容量のメモリバッファを設けることと比較して、メディアアクセラレーションハードウェアユニットの製造コストを削減することができる。例えば、制御データおよびピクセルデータを含め、部分的に完了したフィルタリング結果を記憶するのに使用されるスクラッチパッドメモリの容量は、以下のように計算することができる。
スクラッチパッドの容量=(576バイト)×(フレーム内の水平方向のマクロブロックの個数)
上記からわかるように、フレームの垂直方向のサイズが大きい場合は、スクラッチパッドの容量は比較的小さくなる。換言すれば、スクラッチパッドの容量は、フレームの水平方向のサイズによって決まる。
フレーム全体が復号化される前に、先頭のマクロブロックに対してフィルタリングが開始される限り、フィルタリング操作の速度を改善するためにフレーム全体を保持するための大容量メモリに関連して、ここに記載した区分的な処理技術が有利に使用できことができることが理解されよう。しかし、区分的な処理により、小容量のオンボードのスクラッチパッドメモリでフィルタリングを実装することができ、フレーム全体を記憶するための大容量のメモリを使用する場合と比較して、コスト面および速度面での利点が得られる。更に、区分的なフィルタリングによって、ハードウェアのフレームベースの実装の場合と比較して、ブロックにアクセスするのにオーバーヘッドが増えることがなく、処理全体の順序が、従来のフレームベースのフィルタリングのように維持される。選択した実施形態では、区分的な処理が、レーテンシを認識できないレベルに抑えるためにパイプライン化されてもよい。パイプライン化によってもフィルタスループットが均等化され、ブロックのフェッチと記憶のバーストが防止される。
本発明は、本開示の教示の利益を得る当業者にとって自明の、異なるが均等の別法によって変更および実施されてもよいため、上記に記載した特定の実施形態は例に過ぎず、本発明の限定事項とみなすべきではない。したがって、上記の説明は、記載した特定の形式に本発明を限定することを意図するものではなく、当業者が、本発明の最も広い形の趣旨および範囲から逸脱することなく、さまざまに変更、置換、変形することができるように、添付の特許請求の範囲によって規定される本発明の趣旨ならびに範囲に含まれる全ての変形例、均等物および代替例を含むことを意図していることが理解されるべきである。
ビデオ情報を伸張するためのシステムのブロック図である。 本発明に従って構成された例示的なビデオ伸張システムのブロック図である。 本発明の選択した実施形態による、スクラッチパッドメモリを使用して、ハードウェア内でオーバーラップスムージングおよびインループデブロッキングを効率的に処理するインループフィルタリング処理の模式図である。 ビデオエンコーダまたはデコーダ内でスムージングおよびデブロッキングフィルタを使用して、復号化されたフレーム中のブロック歪みを低減するための手法の例を示す。 lumaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 lumaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 lumaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 lumaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 lumaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 lumaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 lumaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 lumaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 lumaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 lumaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 lumaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 chromaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 chromaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 chromaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 chromaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 chromaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。 chromaブロックに対してスムージング手順およびデブロッキング手順を実装するために、区分的な処理を使用可能な方法を示す。

Claims (11)

  1. 各マクロブロック内で、少なくとも第1のブロックに対して、前記第1のブロックが第1のフィルタ操作で部分的に処理され、次に第2のフィルタ操作で完全に処理されるように、区分的なオーバーラップスムージングおよびデブロッキングを逐次的に実行するインループフィルタを有するビデオアクセラレータであって、
    前記第1のフィルタ操作は、区分的なオーバーラップスムージングおよびデブロッキングを逐次的に実行することを含み、
    前記第2のフィルタ操作は、区分的なオーバーラップスムージングおよびデブロッキングを逐次的に実行することを含む、
    ビデオアクセラレータ
  2. 各フィルタ操作では、異なるマクロブロックから集められてなる複数のブロックが処理される請求項1に記載のビデオアクセラレータ。
  3. 前記第1のフィルタ操作は、マクロブロックの先頭行に対するオーバーラップスムージング操作およびデブロッキング操作を含み、前記第2のフィルタ操作は、マクロブロックの第2の行に対するオーバーラップスムージング操作およびデブロッキング操作を含む請求項1に記載のビデオアクセラレータ。
  4. 前記第1のフィルタ操作は、前記第1のブロックに対する、区分的なオーバーラップスムージング操作およびデブロッキング操作の第1の組を含み、前記第2のフィルタ操作は、前記第1のブロックに対する、区分的なオーバーラップスムージング操作およびデブロッキング操作の第2の組を含む請求項1に記載のビデオアクセラレータ。
  5. 前記部分的に処理された第1のブロックを記憶するためのスクラッチパッドメモリを更に有し、前記第2のフィルタ操作は、前記スクラッチパッドメモリから前記部分的に処理された第1のブロックをフェッチする請求項1に記載のビデオアクセラレータ。
  6. 前記第1のブロックが前に処理されたマクロブロックに隣接している場合に、前記第1のフィルタ操作は、オーバーラップスムージングおよびデブロッキングのために、前記第1のブロックを完全にフィルタすることを含む請求項1に記載のビデオアクセラレータ。
  7. 前記第1のブロックがその後処理されるマクロブロックに隣接している場合に、前記第2のフィルタ操作は、オーバーラップスムージングおよびデブロッキングのために、前記第1のブロックを部分的にフィルタすることを含む請求項1に記載のビデオアクセラレータ。
  8. 前記第1のフィルタ操作は、
    少なくとも前記第1のブロックの選択された垂直ブロック境界に対してオーバーラップスムージングを実行することと、
    少なくとも前記第1のブロックの選択された水平ブロック境界に対してオーバーラップスムージングを実行することと、
    少なくとも前記第1のブロックの選択された水平ブロック境界に対してインループデブロッキングを実行することと、
    少なくとも前記第1のブロックの選択された水平サブブロック境界に対してインループデブロッキングを実行することと、
    少なくとも前記第1のブロックの選択された垂直ブロック境界に対してインループデブロッキングを実行することと、
    少なくとも前記第1のブロックの選択された垂直サブブロック境界に対してインループデブロッキングを実行することと、を含む請求項1に記載のビデオアクセラレータ。
  9. 前記第2のフィルタ操作は、 少なくとも前記第1のブロックの残りの垂直ブロック境界に対してオーバーラップスムージングを実行することと、
    少なくとも前記第1のブロックの残りの水平ブロック境界に対してオーバーラップスムージングを実行することと、
    少なくとも前記第1のブロックの残りの水平ブロック境界に対してインループデブロッキングを実行することと、
    少なくとも前記第1のブロックの残りの水平サブブロック境界に対してインループデブロッキングを実行することと、
    少なくとも前記第1のブロックの残りの垂直ブロック境界に対してインループデブロッキングを実行することと、
    少なくとも前記第1のブロックの残りの垂直サブブロック境界に対してインループデブロッキングを実行することと、を含む請求項8に記載のビデオアクセラレータ。
  10. 圧縮ビデオデータストリームからのビデオ情報を復号化するためのビデオ処理システムであって、
    部分的に復号化されたビデオデータを生成するために、前記圧縮ビデオデータストリームを部分的に復号化するプロセッサと、
    ビデオフレームを生成するために、前記部分的に復号化されたビデオデータを復号化するビデオ復号化回路と、を有し、前記ビデオ復号化回路は、前記ビデオフレームの各マクロブロック内で、少なくとも第1のブロックに対して、前記第1のブロックが第1のフィルタ操作で部分的に処理され、次に第2のフィルタ操作で完全に処理されるように、区分的なオーバーラップスムージングおよびデブロッキングを逐次的に実行するためのインループフィルタを有するビデオ処理システムであって、
    前記第1のフィルタ操作は、区分的なオーバーラップスムージングおよびデブロッキングを逐次的に実行することを含み、
    前記第2のフィルタ操作は、区分的なオーバーラップスムージングおよびデブロッキングを逐次的に実行することを含む、
    ビデオ処理システム
  11. 前記インループフィルタは、一度に1つのマクロブロックについてオーバーラップスムージングおよびデブロッキングをするために、ビデオフレーム内のマクロブロックの各行を逐次的に処理する請求項10に記載のビデオ処理システム
JP2007553130A 2005-01-25 2006-01-17 オーバーラップスムージングおよびインループデブロッキングの区分的な処理 Active JP5390773B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/042,366 2005-01-25
US11/042,366 US8576924B2 (en) 2005-01-25 2005-01-25 Piecewise processing of overlap smoothing and in-loop deblocking
PCT/US2006/001598 WO2006081097A1 (en) 2005-01-25 2006-01-17 Piecewise processing of overlap smoothing and in-loop deblocking

Publications (2)

Publication Number Publication Date
JP2008529411A JP2008529411A (ja) 2008-07-31
JP5390773B2 true JP5390773B2 (ja) 2014-01-15

Family

ID=36282870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007553130A Active JP5390773B2 (ja) 2005-01-25 2006-01-17 オーバーラップスムージングおよびインループデブロッキングの区分的な処理

Country Status (8)

Country Link
US (1) US8576924B2 (ja)
JP (1) JP5390773B2 (ja)
KR (1) KR101227667B1 (ja)
CN (2) CN103188495B (ja)
DE (1) DE112006000271T5 (ja)
GB (1) GB2441188B (ja)
TW (1) TWI461065B (ja)
WO (1) WO2006081097A1 (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060013315A1 (en) * 2004-07-19 2006-01-19 Samsung Electronics Co., Ltd. Filtering method, apparatus, and medium used in audio-video codec
US7792385B2 (en) * 2005-01-25 2010-09-07 Globalfoundries Inc. Scratch pad for storing intermediate loop filter data
US7965773B1 (en) 2005-06-30 2011-06-21 Advanced Micro Devices, Inc. Macroblock cache
JP2007060627A (ja) * 2005-07-27 2007-03-08 Victor Co Of Japan Ltd 再生装置および再生方法
CN100370834C (zh) * 2005-08-08 2008-02-20 北京中星微电子有限公司 多模图像编解码芯片中的系数缩放计算模块
US7636497B1 (en) 2005-12-27 2009-12-22 Advanced Micro Devices, Inc. Video rotation in a media acceleration engine
US20070223591A1 (en) * 2006-03-22 2007-09-27 Metta Technology, Inc. Frame Deblocking in Video Processing Systems
JP4797853B2 (ja) * 2006-07-19 2011-10-19 ソニー株式会社 映像信号処理装置及び方法、並びに映像信号復号装置
JP4830691B2 (ja) * 2006-07-26 2011-12-07 ソニー株式会社 映像信号処理方法及び装置、並びに映像信号復号方法
KR100771879B1 (ko) * 2006-08-17 2007-11-01 삼성전자주식회사 내부 메모리 용량을 감소시키는 디블록킹 필터링 방법 및그 방법을 이용하는 영상 처리 장치
JP4848892B2 (ja) * 2006-08-25 2011-12-28 ソニー株式会社 映像信号処理装置及び方法、並びに映像信号復号装置
US7760964B2 (en) * 2006-11-01 2010-07-20 Ericsson Television Inc. Method and architecture for temporal-spatial deblocking and deflickering with expanded frequency filtering in compressed domain
KR100903863B1 (ko) 2007-01-25 2009-06-24 주식회사 씬멀티미디어 Wmv 디코더의 오버랩 변환부와 디블록킹 필터 사이의인터페이스 방법
US8462841B2 (en) * 2007-12-31 2013-06-11 Netlogic Microsystems, Inc. System, method and device to encode and decode video data having multiple video data formats
US8923384B2 (en) * 2007-12-31 2014-12-30 Netlogic Microsystems, Inc. System, method and device for processing macroblock video data
US20090285308A1 (en) * 2008-05-14 2009-11-19 Harmonic Inc. Deblocking algorithm for coded video
US20100053181A1 (en) * 2008-08-31 2010-03-04 Raza Microelectronics, Inc. Method and device of processing video
US8861586B2 (en) * 2008-10-14 2014-10-14 Nvidia Corporation Adaptive deblocking in a decoding pipeline
US8867605B2 (en) * 2008-10-14 2014-10-21 Nvidia Corporation Second deblocker in a decoding pipeline
US20100111166A1 (en) * 2008-10-31 2010-05-06 Rmi Corporation Device for decoding a video stream and method thereof
US9179166B2 (en) * 2008-12-05 2015-11-03 Nvidia Corporation Multi-protocol deblock engine core system and method
KR101885382B1 (ko) * 2009-07-06 2018-08-03 톰슨 라이센싱 공간적으로 변하는 잔류물 코딩을 위한 방법 및 장치
US8589942B2 (en) 2010-05-07 2013-11-19 Qualcomm Incorporated Non-real time thread scheduling
US8873637B2 (en) * 2010-05-14 2014-10-28 Qualcomm Incorporated Hardware pixel processing pipeline and video processing instructions
US9143793B2 (en) * 2010-05-27 2015-09-22 Freescale Semiconductor, Inc. Video processing system, computer program product and method for managing a transfer of information between a memory unit and a decoder
US8787443B2 (en) 2010-10-05 2014-07-22 Microsoft Corporation Content adaptive deblocking during video encoding and decoding
US9042458B2 (en) 2011-04-01 2015-05-26 Microsoft Technology Licensing, Llc Multi-threaded implementations of deblock filtering
US20130027748A1 (en) * 2011-07-29 2013-01-31 Canon Kabushiki Kaisha Image processing apparatus
US9460495B2 (en) * 2012-04-06 2016-10-04 Microsoft Technology Licensing, Llc Joint video stabilization and rolling shutter correction on a generic platform
KR20220131366A (ko) * 2012-10-01 2022-09-27 지이 비디오 컴프레션, 엘엘씨 베이스 레이어로부터 예측을 위한 서브블록 세부분할의 유도를 이용한 스케일러블 비디오 코딩
US9854252B2 (en) * 2013-05-20 2017-12-26 Texas Instruments Incorporated Method and apparatus of HEVC de-blocking filter
US9471995B2 (en) * 2014-01-14 2016-10-18 Vixs Systems Inc. Codec engine with inline image processing
KR102306336B1 (ko) 2014-03-03 2021-09-30 소니그룹주식회사 범위 확장에서의 강력한 내부 평활화
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US20190005709A1 (en) * 2017-06-30 2019-01-03 Apple Inc. Techniques for Correction of Visual Artifacts in Multi-View Images
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
WO2020043193A1 (en) * 2018-08-31 2020-03-05 Mediatek Inc. Method and apparatus of subblock deblocking in video coding
WO2020089201A1 (en) * 2018-10-30 2020-05-07 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking between block boundaries and sub-block boundaries in a video encoder and/or video decoder
US11134275B2 (en) * 2019-06-04 2021-09-28 Tencent America LLC Method and apparatus for performing primary transform based on filtering of blocks
CN110213579A (zh) * 2019-06-11 2019-09-06 上海富瀚微电子股份有限公司 双核心计算单元实现环路滤波的方法
US11917144B2 (en) * 2021-09-29 2024-02-27 Mediatek Inc. Efficient in-loop filtering for video coding
US11714620B1 (en) 2022-01-14 2023-08-01 Triad National Security, Llc Decoupling loop dependencies using buffers to enable pipelining of loops

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631750A (en) * 1980-04-11 1986-12-23 Ampex Corporation Method and system for spacially transforming images
US5097518A (en) * 1990-02-27 1992-03-17 Eastman Kodak Company Technique for performing digital image scaling by logically combining or replicating pixels in blocks of differing groupsizes
EP0525513B1 (en) * 1991-07-16 2002-01-16 Yozan Inc. Method for detecting inclination of an image of characters
US5903313A (en) * 1995-04-18 1999-05-11 Advanced Micro Devices, Inc. Method and apparatus for adaptively performing motion compensation in a video processing apparatus
US5872866A (en) * 1995-04-18 1999-02-16 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by predetermination of IDCT results based on image characteristics
US6075918A (en) * 1995-10-26 2000-06-13 Advanced Micro Devices, Inc. Generation of an intermediate video bitstream from a compressed video bitstream to enhance playback performance
JP3895431B2 (ja) * 1996-07-08 2007-03-22 株式会社ハイニックスセミコンダクター 物体境界ブロック合併/分割を利用した映像情報符号化方法
US5923782A (en) * 1996-08-01 1999-07-13 Nynex Science & Technology, Inc. System for detecting and identifying substantially linear horizontal and vertical lines of engineering drawings
US5859651A (en) * 1996-08-19 1999-01-12 International Business Machines Corporation Method and apparatus for block data transfer to reduce on-chip storage for interpolative video resizing
KR100213089B1 (ko) * 1997-01-29 1999-08-02 윤종용 루프필터링 방법 및 루프필터
US6188799B1 (en) * 1997-02-07 2001-02-13 Matsushita Electric Industrial Co., Ltd. Method and apparatus for removing noise in still and moving pictures
JPH1198020A (ja) * 1997-09-24 1999-04-09 Sony Corp ビットストリーム解析方法及び装置
US6259734B1 (en) * 1998-04-03 2001-07-10 Matsushita Electric Industrial Co., Ltd. Image processing method, image processing apparatus, and data storage media
WO2000028518A2 (en) * 1998-11-09 2000-05-18 Broadcom Corporation Graphics display system
US6614930B1 (en) * 1999-01-28 2003-09-02 Koninklijke Philips Electronics N.V. Video stream classifiable symbol isolation method and system
US6441754B1 (en) * 1999-08-17 2002-08-27 General Instrument Corporation Apparatus and methods for transcoder-based adaptive quantization
KR100335055B1 (ko) * 1999-12-08 2002-05-02 구자홍 압축 영상신호의 블럭현상 및 링현상 제거방법
US6771196B2 (en) * 1999-12-14 2004-08-03 Broadcom Corporation Programmable variable-length decoder
JP2001285863A (ja) * 2000-03-30 2001-10-12 Sony Corp 画像情報変換装置及び方法
US6901170B1 (en) * 2000-09-05 2005-05-31 Fuji Xerox Co., Ltd. Image processing device and recording medium
DE10048438A1 (de) * 2000-09-29 2002-04-18 Siemens Ag Referenzbilddrehung
JP4620901B2 (ja) * 2001-06-04 2011-01-26 キヤノン株式会社 2次元光走査装置、及び該2次元光走査装置の駆動方法
US6819803B2 (en) * 2001-07-02 2004-11-16 International Business Machines Corporation Faster lossless rotation of JPEG images
GB0124882D0 (en) * 2001-10-17 2001-12-05 Koninkl Philips Electronics Nv Improved variable length decoder
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
TW563343B (en) * 2002-03-15 2003-11-21 Via Tech Inc Image frame scaling method
EP1351513A3 (en) * 2002-04-01 2005-08-03 Broadcom Corporation Method of operating a video decoding system
US6907079B2 (en) * 2002-05-01 2005-06-14 Thomson Licensing S.A. Deblocking filter conditioned on pixel brightness
EP1530829B1 (en) * 2002-07-09 2018-08-22 Nokia Technologies Oy Method and apparatus for selecting interpolation filter type in video coding
US7084929B2 (en) * 2002-07-29 2006-08-01 Koninklijke Philips Electronics N.V. Video data filtering arrangement and method
US7379496B2 (en) * 2002-09-04 2008-05-27 Microsoft Corporation Multi-resolution video coding and decoding
JP3680845B2 (ja) * 2003-05-28 2005-08-10 セイコーエプソン株式会社 圧縮動画像の伸張装置及びそれを用いた画像表示装置
US20050013494A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation In-loop deblocking filter
US7254272B2 (en) * 2003-08-21 2007-08-07 International Business Machines Corporation Browsing JPEG images using MPEG hardware chips
JP5280003B2 (ja) * 2003-09-07 2013-09-04 マイクロソフト コーポレーション 映像コーデックにおけるスライス層
CN1285214C (zh) * 2004-01-14 2006-11-15 华中科技大学 一种环路滤波方法和环路滤波器
US7680351B2 (en) * 2004-05-21 2010-03-16 Broadcom Corporation Video deblocking method and apparatus
US7590059B2 (en) * 2004-05-21 2009-09-15 Broadcom Corp. Multistandard video decoder
US20050281339A1 (en) * 2004-06-22 2005-12-22 Samsung Electronics Co., Ltd. Filtering method of audio-visual codec and filtering apparatus

Also Published As

Publication number Publication date
TWI461065B (zh) 2014-11-11
TW200704197A (en) 2007-01-16
GB0713744D0 (en) 2007-08-22
US20060165181A1 (en) 2006-07-27
WO2006081097A1 (en) 2006-08-03
KR101227667B1 (ko) 2013-01-29
KR20070104568A (ko) 2007-10-26
US8576924B2 (en) 2013-11-05
JP2008529411A (ja) 2008-07-31
CN103188495A (zh) 2013-07-03
GB2441188B (en) 2010-08-25
CN101107861B (zh) 2013-03-27
CN103188495B (zh) 2016-12-28
GB2441188A (en) 2008-02-27
CN101107861A (zh) 2008-01-16
DE112006000271T5 (de) 2007-12-13

Similar Documents

Publication Publication Date Title
JP5390773B2 (ja) オーバーラップスムージングおよびインループデブロッキングの区分的な処理
TWI382764B (zh) 用於儲存中間迴路過濾資料之暫存記憶體(scratch pad)
US7965773B1 (en) Macroblock cache
JP4577048B2 (ja) 画像符号化方法、画像符号化装置および画像符号化プログラム
EP3386199B1 (en) Lossless compression method and system appled to video hard decoding
US20060133504A1 (en) Deblocking filters for performing horizontal and vertical filtering of video data simultaneously and methods of operating the same
US20060013315A1 (en) Filtering method, apparatus, and medium used in audio-video codec
JP2006197521A (ja) 画像復号装置及び方法
JP2006157925A (ja) パイプラインデブロッキングフィルタ
JP5496047B2 (ja) 画像再生方法、画像再生装置、画像再生プログラム、撮像システム、および再生システム
JP2012085001A5 (ja)
JP2007503787A (ja) メモリ帯域幅要求が低いビデオ処理装置
US20140105306A1 (en) Image processing apparatus and image processing method
JP2007258882A (ja) 画像復号装置
JP2007180723A (ja) 画像処理装置及び画像処理方法
JP2000175201A (ja) 画像処理装置及び方法、並びに提供媒体
TW202315411A (zh) 視訊編解碼方法及裝置
JP7359653B2 (ja) 動画像符号化装置
US20110051815A1 (en) Method and apparatus for encoding data and method and apparatus for decoding data
US10694190B2 (en) Processing apparatuses and controlling methods thereof
KR100636911B1 (ko) 색도 신호의 인터리빙 기반 동영상 복호화 방법 및 그 장치
KR100556341B1 (ko) 메모리 대역폭이 감소된 비디오 디코더 시스템
KR101676792B1 (ko) 데이터를 효율적으로 임베디드 압축 하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
WO2010095181A1 (ja) 可変長復号化装置
JP4888224B2 (ja) 画像処理装置およびその方法、並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090114

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100421

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20100902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111026

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120201

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120223

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120301

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120322

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121010

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130110

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130212

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130808

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131011

R150 Certificate of patent or registration of utility model

Ref document number: 5390773

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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