JP2008529412A - 中間ループフィルタデータを格納するスクラッチパッド - Google Patents

中間ループフィルタデータを格納するスクラッチパッド Download PDF

Info

Publication number
JP2008529412A
JP2008529412A JP2007553131A JP2007553131A JP2008529412A JP 2008529412 A JP2008529412 A JP 2008529412A JP 2007553131 A JP2007553131 A JP 2007553131A JP 2007553131 A JP2007553131 A JP 2007553131A JP 2008529412 A JP2008529412 A JP 2008529412A
Authority
JP
Japan
Prior art keywords
block
smoothing
deblocking
macroblock
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007553131A
Other languages
English (en)
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 JP2008529412A publication Critical patent/JP2008529412A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/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

Landscapes

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

Abstract

プロセッサと画像デコーディングハードウェアブロックの組合せとして画像処理装置と方法が実装されており、ループ内フィルタとスクラッチパッドメモリとを備えた画像デコーディングブロックを提供することで画像データをデコードする。これにより、ループ内フィルタはマクロブロックベースのやり方で区分的オーバーラップスムージングとループ内デブロッキング処理とを効率的に行うことができる。これは、フレームベースの方法よりも効率的なアルゴリズムである。

Description

本発明は、ビデオ処理技術に関する。一形態においては、本発明はデジタルビデオ情報の解凍技術に関する。
ビデオ情報は大量の格納スペースを必要とするので、通常、ビデオ情報は圧縮される。したがって、CD-ROMやDVDなどに記録された圧縮されたビデオ情報を表示するには、この圧縮されたビデオ情報を解凍し、解凍されたビデオ情報を供給する必要があ。次に、解凍されたビデオ情報はビットストリームでディスプレイに供給される。この、解凍されたビデオ情報のビットストリームは典型的に、ディスプレイのピクセル位置に対応するメモリ位置のビットマップとして格納される。ディスプレイに一画面の情報を表示するのに必要なビデオ情報をフレームと呼ぶ。多くのビデオシステムが目指しているのは、連続するフレームを表示することで動画ビデオを供給できるよう、圧縮されたビデオ情報を迅速かつ効率的にデコードすることである。
記録媒体、装置、および、データ処理の各種態様(例えば、ビデオ圧縮)を規格化することは、本技術とその応用の継続成長のために非常に望ましい。ビデオ情報を圧縮および解凍するために、多くの圧縮・解凍規格がすでに構築されているか、あるいは、構築段階である。そのような規格としては、画像をエンコーディングおよびデコーディングするための動画の圧縮・伸長の国際標準規格(MPEG)(例えば、MPEG-1, MPEG-2, MPEG-3, MPEG-4, MPEG-7, MPEG-21)、あるいは、Windows Media Video 圧縮規格(例えば、WMV9)が挙げられる。MPEGおよびWMV規格の各々は、本書において十分に説明されているかのごとく全体として参照することにより本書に組み込まれる。
概して、画像圧縮技術には、フレーム内圧縮(intraframe compression)およびフレーム間圧縮(interframe compression)を含む。これは、ビデオフレームに存在する空間および時間冗長性を減らすことで画像情報を圧縮する技術である。フレーム内圧縮技術はフレーム内の情報だけを使ってフレームを圧縮する。これをIフレームと称する。フレーム間圧縮技術は、前および/あるいは後のフレームに関連してフレームを圧縮する。通常、このようなフレームを、予測フレーム、Pフレーム、あるいはBフレームと称する。フレーム内圧縮技術とフレーム間圧縮技術とは通常、空間ベースエンコーディングかブロックベースエンコーディングを使用する。これにより、ビデオフレームがエンコーディングのためにブロックに分割される(ブロック変換処理とも呼ばれる)。
例えば、Iフレームは8×8ブロックに分割される。ブロックは、特定のコサインベース関数の振幅として係数をエンコードする離散コサイン変換(DCT)コーディングスキームか、その他の変換(例えば、積分変換)を使用してコード化される。次に、変換された係数は量子化される。量子化によりゼロではない振幅レベルを有する係数と、ゼロ振幅レベル係数のラン(あるいはサブシーケンス)が生成される。次に、量子化された係数をランレベルエンコード(あるいは、ランレングスエンコード)し、ゼロ係数の長いランを縮小する。次に、この結果を可変長コーダ(VLC)においてエントロピーコード化する。これには、エンコードされる値にコード名を割り当てるか統計的コーディング技術を使用するか、CABAC(Context-based Adaptive Binary Arithmetic Coding)、CAVLC(Context Adaptive Variable Length Coding)、およびこれらに類するものなどの、その他のエントロピーエンコード技術を使用する。出現頻度の高い値には短いコード名が割り当てられ、めったに出現しない値には長いコード名が割り当てられる。
平均すると、より短いコード名の出現頻度が高くなり、その結果、元のデータよりもコード列(code string)が短くなる。従って、空間あるいはブロックベースのエンコーディング技術は、単一のフレームに関連付けられたデジタル情報を圧縮する。連続するフレームに関連付けられたデジタル情報を圧縮するために、画像圧縮技術は、連続するフレーム間に時間的相関関係があることを利用して、Pフレームおよび/あるいはBフレームを使用する。フレーム間圧縮技術により、異なるフレーム間の差分が識別される。次に、この異なる情報を、DCT、量子化、ランレングスおよびエントロピーエンコーディング技術を使用して空間的にエンコードする。異なる実装品では別のブロック構成を用いてもよい。例えば、Pフレームは、(例えば、4つの8×8ルミナンスブロックと2つの8×8クロミナンスブロックで)16×16マクロブロックに分割され、これらのマクロブロックは圧縮される。
フレーム内圧縮技術やフレーム間圧縮技術の使用の有無に関わらず、空間ベースあるいはブロックベースのエンコーディング技術を使用して画像データをエンコードするということは、圧縮された画像データがすでに可変長にエンコードされているか、そうでなければ、上述のブロックベースの圧縮技術を使用して圧縮されていることである。
受信機や再生装置では、圧縮ステップを逆にして、ブロック変換で処理済みの画像データをデコードする。図1に、画像情報を解凍する従来のシステム30を示す。このシステムは、入力ストリームデコーディング部35、モーションデコーダ38、加算器39、フレームバッファ40、およびディスプレイ41を含む。入力ストリームデコーダ35は、圧縮された画像情報のストリームを入力バッファ31で受信し、可変長デコーディングをVLCデコーダ32で行い、ジグザグと量子化(zig-zag and quantization)とを逆量子化器33で反転(reverse)し、逆DCT変換をIDCT34で行い、静的に解凍された画像情報を加算器39に送る。モーションデコーディング部38では、動き補償ユニット37はVLCデコーダ32からモーション情報と、(前のピクチャストアバッファ36に記録されている)ピクチャデータのコピーを受信し、動き補償ピクセルを加算器39に送る。加算器39は静的に解凍された画像情報と動き補償ピクセルとを受信し、解凍されたピクセルをフレームバッファ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サブブロックのエッジをスムーズにし、これにより、2D変換や量子化によって生じるブロックのアーティファクトを取り除くことである。画像を解凍するためのプロセッサベースアプローチにおいては、スムージングやデブロッキング機能の追加は、集中的な演算を必要とするフィルタリング処理である。このオーダーでの処理は、フレームを保持する大きなメモリバッファがあるときに(例えば、VGAサイズが640×480ピクセルであり、307kバイトに相当する)行うことができる。
他方では、デコーディングのためのハードウェアベースの手法では、スムージングとデブロッキングを一度に行っておらず、フレーム全体にデブロッキングをしている。これは、大きなローカルメモリを必要とし、かなりのバス帯域幅要件が課せられ、メモリアクセス時間を犠牲にする。この結果、解凍方法に関連付けられた処理要件を低減する必要性と、特にオーバーラップスムージングおよび/またはデブロッキングフィルタオペレーションを含む解凍オペレーションを向上させる必要性が大いに生じる。図面と以下の詳細な説明を参照しつつ、本出願の残りの個所を検討すれば、従来のシステムのさらなる制限や難点が当業者には明らかとなるであろう。
画像を解凍するためにソフトウェアとハードウェアとを組み合わせたものを使用することで、多種多様な画像圧縮スキームを迅速かつ効率的に処理するように構成されるフレキシブルな解凍システムが提供される。このフレキシブル解凍システムは、フロントエンド解凍ステップを実行するためのプロセッサと、バックエンド解凍ステップを実行するためのビデオアクセラレータとを含む。
ビデオフレームデータでオーバーラップスムージングとループ内デブロッキングフィルタオペレーションを実行するためにビデオアクセラレータのメモリ帯域要件を減らすために、ループ内フィルタは、マクロブロックベース形式でオーバーラップスムージングとループ内デブロッキングの区分的処理を容易にするストレージデバイスかスクラッチパッドメモリに接続される。マクロブロックベース形式でフィルタリングオペレーションの区分的処理を実行するためにスクラッチパッドを使用することは、フレームベースの方法よりも効率的である。スクラッチパッドメモリのサイズはフレームの幅に関係していることから、チップメモリ量は低減される。例えば、スクラッチパッドメモリのサイズは、ビデオデータのフレームから一部がフィルタリングされたブロックの行を十分収容できるサイズであってよい。
本発明の一実施形態によれば、画像処理システム、装置および方法が提供されており、これにより、プロセッサと画像デコード回路とは、ブロック変換を使って複数のマクロブロックに処理された画像データをデコードする。このデコードオペレーションに関連して、1つ以上の集積回路に提供されたループ内フィルタとスクラッチパッドとが第1マクロブロックにおいて選択されたピクセルデータをスムージングし、デブロッキングすることで区分的処理を行うために使用され、1つ以上の完成したブロックと、1つ以上の一部がフィルタリングされたブロックとが生成される。少なくとも1つの、一部がフィルタリングされたブロックは、スクラッチパッドメモリに格納されるピクセルデータと制御データとを含む。
この結果、前に処理されたマクロブロックに近接するブロックはいずれも、オーバーラップスムージングとデブロッキングのために完全にフィルタリングされ、第1のフィルタオペレーションの間に完成したブロックとして出力されてもよい。一方で、次に処理されるマクロブロックに近接するブロックは、オーバーラップスムージングとデブロッキングのために一部がフィルタリングされており、その後、一部がフィルタリングされたブロックとしてスクラッチパッドメモリに格納される。スクラッチパッドメモリはフープ内フィルタにより使用され、第1マクロブロックのピクセルデータをスムージングおよびデブロッキングするために使用される。フェッチされた一部がフィルタリングされたブロックは、前のマクロブロックを処理する間にすでに生成済みである。1つのマクロブロックを一度にオーバーラップスムージングおよびデブロッキングするためにビデオフレームのマクロブロックの各行を連続して処理することにより、ループ内フィルタとスクラッチパッドメモリとを使用し、パイプライン形式で複数のマクロブロックにスムージングとデブロッキングとを連続して行ってもよい。本発明の目的、利点、およびその他の新たな特徴は、添付の請求の範囲と添付の図面とあわせて読む場合に、以下の詳細な説明から当業者には明らかとなるであろう。
本発明の実施例を以下に記載しているが、本発明は特定の詳細がなくても実行することができ、また、システム的制限やビジネス的制限との摺り合せなど、開発者における特定の目標を達成するために多くの特定の実施の決定がなされる。それらは各実施形態によって様々に変化するものである。そのような開発努力は複雑で時間を消費するものであるのは当然のことであるが、それでもなお、この開示の恩恵を有する当業者にとっては通常作業の範疇に入るものである。例えば、本発明を不明瞭にしないように、選択された態様は、詳述するのではなくブロック図形式で示している。このような記載および表示は、当業者たちの作業の実態を他の当業者たちに説明し、伝えるために当業者たちによって使用される。本発明は、以下に説明する図面に関連して、以下に記載するものとする。
図2に、本発明に係る例示的画像解凍システム100のブロック図を示す。図示しているように、画像解凍システム100は、任意の画像再生装置に実装してもよく、例えば、デスクトップあるいはラップトップコンピュータ、ワイヤレス機器やモバイル機器、携帯端末、携帯電話、およびビデオイメージフィーチャを備えた任意のその他の画像再生装置が任意の画像再生装置として挙げられる。図2に示しているように、画像解凍システム100はホストまたはアプリケーション処理ユニットとして実装される。このユニットには1つ以上のプロセッサあるいは処理ユニット50、および、画像あるいはメディアアクセラレーションハードウェアユニット(media acceleration hardware unit)101に接続されたバス95を含む。加えて、画像圧縮システム100は、メインメモリシステムを含む。
このメインメモリシステムは、DDRコントローラ60を通じてアクセスされる大きなDDR SDRAM62、64を含む。加えて、あるいは他の形態では、1つ以上のメモリ(例えば、IDE72、フラッシュメモリユニット74、ROM76など)は、スタティックメモリコントローラ70を介してアクセスされる。どちらか一方のDDR SDRAMか両方のDDR SDRAM、あるいはその他のメモリを画像解凍システム100と一体化してもよいし、あるいは外付けしてもよい。当然、その他の周辺装置およびディスプレイ装置(82、84、86、92)は、対応するコントローラ89、90を介してアクセスされ得る。明瞭化のため、および、理解を容易にするために、この画像解凍システム100を構築する要素を全て詳細に記載することはしていない。そのような詳細は当業者には周知であるとともに、特定のコンピュータメーカーやマイクロプロセッサのタイプによって変わり得る。さらに、画像圧縮システム100は、所望する実装品に応じて、その他のバス、装置および/あるいはサブシステムを含んでもよい。例えば、画像圧縮システム100は、キャッシュ、モデム、パラレルインターフェース、シリアルインターフェース、SCSIインターフェース、ネットワークインターフェースカードおよびこれらに類するものを含んでもよい。例示の実施形態では、CPU50は、フラッシュメモリ74および/またはSDRAM62、64に記録されたソフトウェアを実行する。
図2に示した画像解凍システムでは、CPU50は、VLDブロック52に示すように、初期の可変長デコーディング関数を実行する。一方、メディアアクセラレーションハードウェアユニット101は、逆量子化104、逆変換106、動き補償108、ループ内フィルタリング110、色空間補正112、スケーリング114、フィルタリング116をデコードデータについて行う。これにより生じるデコードされたデータは、ディスプレイ92で表示される前に、一時的に出力バッファ118に、および/あるいはフレームバッファ(図示せず)に記録してもよい。プロセッサ50とメディアアクセラレーションハードウェア101間でデコード処理関数を分割することで、フロントエンドデコードステップ(例えば、可変長デコーディング)をソフトウェアに実装し、様々な圧縮技術(例えば、MPEG-1,MPEG-2,MPEG-3,MPEG-4,MPEG-7,MPEG-21,WMV9など)に適応させるようにしてもよい。
フロントエンドにより生成されたデコードデータは、メディアアクセラレーションハードウェア101に供給される。このハードウェアはさらにデコードデータをデコードし、フレームが完了するまでピクセル値をマクロブロック上の出力バッファ118かフレームバッファに供給する。動作では、画像解凍システム100は、圧縮されたビデオ信号をCD-ROM、DVDあるいはその他のストレージデバイスなどのビデオ信号ソースから受信する。圧縮されたビデオ信号は、圧縮されたビデオ情報のストリームとしてプロセッサ50に送られる。プロセッサ50は、可変長にデコードされたデータ(VLDデータ)信号を送るために、圧縮された信号のうち、可変長にコード化された部分をデコードする命令を実行する。可変長デコーディングを実行するためにソフトウェアアシスト(software assist)が使用されると、(ヘッダ、マトリックス重量、動きベクトル、変換された残差係数(transformed residue coefficients)、および様々な動きベクトルでさえも含む)VLDデータは、直接的に、あるいは米国特許出願第11/042,365号(発明の名称:"Lightweight Compression Of Input Data")でさらに詳述しているデータ圧縮技術を用いて、メディアアクセラレーションハードウェア101に運ばれる。
メディアアクセラレーションハードウェアユニット101では、VLDデータが受信されると、このデータは逆ジグザグおよび量子化回路(zig-zag and quaitizer circuit)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を効率的に使用して、一部が処理されたブロックをスクラッチパッドメモリに格納することができる。これは、従来のデブロッキング処理にみられるような、大きなメモリを使用して、フィルタリングのためにフレーム画像全体を格納するものとは大きく異なる。オーバーラップスムージングおよびデブロッキングのための各ブロックの処理が行単位ベースで完了するので、完了したブロックを、CSC112へ転送される前にフィルタ110からFIFOバッファ(図示せず)へと出力してもよい。
図3は、マクロブロックベースのループ内フィルタリング処理の略図である。この処理では、本発明の選択された実施形態に係るオーバーラップスムージングとデブロッキングとを効率的に行うためにスクラッチパッドメモリを使用する。フィルタリング処理では、マクロブロックの行を通るループ内フィルタの各パスは、(ブロックをスムージングし、かつデブロッキングするために完全にフィルタリングされた)完全に終了したブロックと、(スクラッチパッドメモリに格納されており、マクロブロックの次の行をスムージングおよびデブロッキングする際に使用される)一部が終了したブロックとを生成する。
図示しているように、ループ内フィルタリング処理における1つ1つのマクロブロック(例えば、マクロブロック4つまり"mb4"であり、4つのルマブロック、mb4yo,my4y1,mb4y2,mb4y3、を含む)は、以下の順序の処理を行う。
(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ブロック(例えば、mb4y2,mb4y3)を、次のマクロブロック(例えば、mb7y0,mb7y1)のうちの終了した8×8ブロックとともに出力する。
実施形態の詳細は応用によって変わり得るが、図3は、ループ内フィルタ110によって処理されるイメージフレーム150がマクロブロック(例えば、マクロブロックmb0,mb1,mb2,mb3,mb4,mb5,mb6,mb7,mb8など)から構成されて、複数の行(例えば、mb0,mb1およびmb2で構成される第1行151)に配置される実施形態を示す。図3Aに示しているように、ループ内フィルタ110は、マクロブロック151からなる第1行にわたって第1パスをすでに形成している。第1行151にわたって第1パスが形成された結果、上位ブロック(mb0y0,mb0y1,mb1y0,mb1y1,mb2y0,mb2y1)は、(クロスハッチングによって示しているように)完全にオーバーラップスムージングおよびデブロッキング処理されるが、下位ブロック(mb0y2,mb0y3,mb1y2,mb1y3,mb2y2,mb2y3)はオーバーラップスムージングおよびデブロッキング処理が一部しかなされない。マクロブロックの次のパスを処理する間に、第1行151からの、一部が処理されたブロックを完了するために、第1行151からの、一部が処理されたブロックは、スクラッチパッドメモリ111に記録される(ドットパターンによって示しているように)。
図3Aにさらに示しているように、ループ内フィルタ110は、マクロブロック152からなる第2行を、ある処理を用いて(第1行151からの、一部が処理されたブロックを完了させることになる処理)すでに処理を始めている。この結果、mb0y2ブロックとmb3y0ブロックとは完全にスムージングおよびデブロッキング処理される。またmb3y2ブロックは一部しか処理されない。(また、スクラッチパッドに記録されている)。図3Aのフィルタ110によって処理されるブロック(斜め網掛けされたフィルタリングされたブロック154に示すように)に関して、mb0y3,mb3y1およびmb3y3ブロックは、一部がスムージングおよびデブロッキング処理されており、(かつ、フィルタ110に保持されている)、mb1y2ブロックは、一部が終了したブロックであって、スクラッチパッドからフェッチされたブロックである。また、残りのブロック(mb4y0およびmb4y2)は現在のマクロブロック(例えば、マクロブロック4)から取得される。ループ内フィルタ110はフィルタリングされたブロック154を処理すると、1つ以上の、一部が処理されたブロック(例えば、my0y3,my3y1)でスムージングおよびデブロッキングが終了するが、残りのブロック(mb1y2,mb4y0,mb4y2,およびmb3y3)は一部が終了するに過ぎない。
フィルタリングされたブロック154を処理した後、ループ内フィルタ110は新たなデータにシフトする。これについては、図3Bに示すフレーム155で示す。該図では、フィルタ110がフィルタリングされたブロック156を以下のようにすることで得ることを示す。そのようなこととは、任意の終了したブロック(例えば、mb0y3,mb3y1)を出力すること、スクラッチパッドメモリに、1つ以上の一部が終了したブロック(例えば、mb3y3)を格納すること、フィルタの、残りの、一部が終了したブロック(例えば、mb1y2,mb4y0,mb4y2)を1ブロック位置だけ移動させること、一部が終了したブロック(例えば、mb1y3)をマクロブロックの前の行からフェッチすること、および、新たなブロック(mb4y1,my4y3)を現在のマクロブロックからを読み出すこと、である。ループ内フィルタ110がフィルタリングされたブロック156を処理すると、1つ以上の、一部が処理されたブロック(例えば、mb1y2,mb4y0)でスムージングおよびデブロッキングが終了するが、残りのブロック(mb1y3,mb4y1,mb4y3,およびmb4y2)は一部が終了するに過ぎない。
フィルタリングされたブロック156を処理した後、図3Cのフレーム157で示しているように、ループ内フィルタ110は再度新たなデータへとシフトする。具体的には、フィルタ110は以下のようにすることでフィルタリングされたブロック158を得る。そのようなこととは、任意の終了したブロック(例えば、mb1y2,mb4y0)を出力すること、スクラッチパッドメモリに、1つ以上の一部が終了したブロック(例えば、mb4y2)を格納すること、フィルタの、残りの、一部が完了したブロック(例えば、mb1y3,mb4y1,mb4y3)を1ブロック位置だけ移動させること、一部が完了したブロック(例えば、mb2y2)をマクロブロックの前の行からフェッチすること、および、新たなブロック(例えば、mb5y0,mb5y2)を現在のマクロブロックから読み出すこと、である。
ループ内フィルタ110がフィルタリングされたブロック158を処理すると、1つ以上の、一部が処理されたブロック(例えば、mb1y3,mb4y1)でスムージングおよびデブロッキングが終了するが、残りのブロック(mb2y2,mb5y0,mb5y2,およびmb4y3)は一部が終了するに過ぎない。この時点で、マクロブロック4の上位ブロック(mb4y0,mb4y1)でのスムージングおよびデブロッキングは終了しているが、下位ブロック(mb4y2,mb4y3)は一部が終了しているに過ぎない。一部が処理(@stored→finishedだと思われます)された下位ブロックをスクラッチパッドメモリに格納することで、フィルタ110がマクロブロックの次の行を処理するときにフィルタリングオペレーションが完了できる。本発明の他の実施形態の更なる詳細を図4に示す。該図は、ビデオエンコーダやデコーダのスムージングおよびデブロッキングフィルタを使用して、デコードされたフレームのブロッキネス(blockiness)を低減する技術(200)を示す。明らかなように、各フレームの周辺では特定のコーナーケースがあり得るが、図示した技術をルマあるいはクロマブロックを処理するために使用してもよく、必要に応じて本発明が当業者によって調整および適用される。しかし、簡素化のために、本発明は主に各フレームの内部のマクロブロックで実行されるループ内フィルタリングステップに重きを置くこととする。
図4を参照すると、ビデオエンコーダ/デコーダがフレームに対して少なくとも第1のマクロブロックを生成すると(201)、ループ内フィルタは、マクロブロックのうち、上位の行を一度に処理し、各ブロックの境界を近隣のブロックでフィルタリングする。明らかなように、フレームの周辺ではスムージングやデブロッキングは行われていないので、フレームの外側にはフィルタリング処理で使用するための、一部が終了したブロックは存在しない。しかし、マクロブロックのうち、第1の行がフィルタリングされると、スクラッチパッドメモリは一部が終了したブロックで満たされる。第1のマクロブロックから開始しする。エンコーダ/デコーダは所要のブロックを読み出し、スクラッチパッドから、任意の、一部が終了した近接のブロックを上から引き出す(マクロブロックの第1の行を除く)。マクロブロックが、4つのルマブロック(y0,y1,y2,y3)と2つのクロマブロック(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の結果がNoの場合)。この場合、スクラッチパッドに格納するステップ(219)をとばしてもよい。選択したブロックを格納することでフィルタ内にスペースを生成すると(217、219)、フィルタは新たなデータを処理可能になる。具体的には、フレームにさらなるブロックがあれば(220の結果がYesの場合)、フィルタ内の、残りの、一部がフィルタリングされたブロックは左にシフトされる(222)。上位の行よりも下にある行に対しては(224の結果がNoの場合)、フィルタにおける利用可能スペースは、次の、一部が終了したブロックをスクラッチパッドメモリから引き出すことで満たされ(226)、フィルタにおける、いずれの残りのスペースが新たなブロックで満たされる(228)。
新たなデータでフィルタが読み出されると、ブロックフィルタリング処理210は、新たな一連のフィルタブロックで繰り返し行われる。この一連の動作を繰り返し行うことで、フレーム内の各マクロブロックは連続的にフィルタリングされ、マクロブロックの前の行を処理する間に生成された、一部が終了したブロックをスクラッチパッドから引き出すとともに、一部がフィルタリングされたブロックをスクラッチパッドに格納し、マクロブロックの次の行を処理する間に使用する。他方、フィルタリングするブロックが残っていない場合は(222の結果がNoの場合)、現在のフレームに対するスムージングおよびデブロッキング処理が終了する。この時点で、次のフレームが引き出され(230)、新たなフレームの第1のマクロブロックからフィルタリング処理が繰り返し行われる。
図5A〜5Kには本発明の例示的実施形態を示しており、マクロブロック4つまり("mb4")のルマブロックに、WMV9スムージングプロシージャとデブロッキングプロシージャとが区分的処理技術を備えてどのように実装され得るかを示している。フィルタリング処理の開始点を図5Aに示す。図5Aでは、フィルタ320は、すでに一部がオーバーラップスムージング(例えば、長円形表示322を参照のこと)とデブロッキング(例えば、ライン表示323を参照のこと)処理済みのブロック(例えば、mb0y3,mb3y1およびmb3y3)で読み出されている。次に、図5Bに示すように、フィルタ320はさらなるブロックで満たされる。具体的には、一部が終了したブロック(例えば、mb1y2)はスクラッチパッドメモリから引き出されてフィルタに読み出される。加えて、現在のマクロブロック(例えば、mb4)から選択されたブロック(例えば、mb4y0,mb4y2)は、エンコーダ/デコーダに読み出される。マクロブロックローディングシーケンス(例えば、mb4y0,mb4y1,by4y2およびmb4y3)においては、少なくとも1つのブロックが読み出されるが、この時点では321に示すようにフィルタ320内にはシフトされない。
フィルタブロックが読み出されると、フィルタ320は図5Cに示すように、区分的オーバーラップスムージングを行う。具体的には、選択された内部の垂直エッジ301、302で垂直オーバーラップスムージング(V)を行う。次に、選択された内部の水平エッジ(例えば、303、304、305、306)で水平オーバーラップスムージング(H)を行う。
フィルタブロックが一部スムージングされると、フィルタ320は図5Dに示すように区分的デブロッキングを行う。まず、選択された8×8ブロック境界(例えば、307、308、309、310)で水平ループ内デブロッキング(HD)を行い、次に、選択されたサブブロック境界(HDH)(例えば、311、312、313、324)で水平ループ内デブロッキングを行う。次に、フィルタは、選択された8×8ブロック境界(例えば、315、316)で垂直ループ内デブロッキング(VD)を行い、次に、選択されたサブブロック境界(VDH)(例えば、317、318)で垂直ループ内デブロッキングを行う。
上述したスムージングおよびデブロッキングステップの各々においては、境界の区画間には従属関係が存在しないことから、境界ピース(boundary piece)がフィルタリングされる順序は重要ではない。図5Cおよび5Dに示した区分的処理の特定の順序に加えて、他の順番および/またはフィルタリングステップを本発明に従って実装してもよい。例えば、境界エッジピースの様々なシーケンスをフィルタリングしてもよい。加えて、複数のタイプのスムージングあるいはデブロッキングモードが適用でき、また、フィルタリングスキームに応じて、境界のいずれか一方の側に3ピクセルかそれ以上のピクセルまでのフィルタリング動作がなされてもよい。例えば、MPEG-4規格は第1のモードでブロックエッジの一方の側に1ピクセルに対するショートフィルタを適用し、第2のモードで一方の側に2ピクセルに対するロングフィルタを適用するよう、2つのデブロッキングモードを使用する。他の実装品では、フィルタの定義、多種多様なフィルタ、および/またはアダプティブフィルタリングコンディションは、特定の要件を満たすように適応され得る。
スムージングおよびデブロッキングフィルタオペレーションが完了すると、処理されたフィルタブロックは図5Eに示すように格納され、シフトされる。具体的には、任意の終了したブロック(例えば、mb0y3,mb3y1)は完了していることから、出力され得る。加えて、1つ以上の、一部が終了したブロック(例えば、mb3y3)は、スクラッチパッドに移動され、下の近接するマクロブロック(例えば、図3のmb3y3に関連するマクロブロック6を参照のこと)を処理するときに使用される。次に、フィルタにおいて、残りの、一部が終了したブロック(例えば、mb1y2,mb4y0,mb4y2)はフィルタにシフトされ、新たなデータ用のスペースが作られる。この出力ステップ、格納ステップ、およびシフトステップの結果を図5Fに示す。フィルタ320は、図5Gに示すように新たなデータで満たされてもよい。特に、一部が終了したブロック(例えば、mb1y3)はスクラッチパッドメモリから引き出され、フィルタに読み出される。加えて、現在のマクロブロック(例えば、mb4)からの、残りのブロック(例えば、mb4y1,mb4y3)は、フィルタ320に読み出される。
フィルタブロックが読み出されると、フィルタ320は図5Hに示すように、区分的オーバーラップスムージングを行う。具体的には、選択された内部の垂直エッジで垂直オーバーラップスムージング(V1,V2)を行う。次に、選択された内部の水平エッジで水平オーバーラップスムージング(H1,H2,H3,H4)を行う。
フィルタブロックが一部スムージングされた後、フィルタ320は図5Iに示すように区分的デブロッキングを行う。まず、選択された8×8ブロック境界で水平のループ内デブロッキング(HD1,HD2,HD3,HD4)が行われ、次に、選択されたサブブロック境界(HDH1,HDH2,HDH3,HDH4)で水平のループ内デブロッキングが行われる。次に、選択された8×8ブロック境界で垂直のループ内デブロッキング(VD1,VD2)が行われ、次に選択されたサブブロック境界(VDH2,VDH2)で垂直のループ内デブロッキングが行われる。
スムージングおよびデブロッキングフィルタオペレーションが完了すると、処理されたフィルタブロックは、図5Jに示すように格納され、シフトされる。具体的には、任意の終了したブロック(例えば、mb1y2,mb4y0)は、完了していることから、出力され得る。加えて、1つ以上の一部が終了したブロック(例えば、mb4y2)はスクラッチパッドに移動され、下の近接するマクロブロックを処理するときに使用されてもよい。次に、フィルタの、残りの、一部が終了したブロック(例えば、mb1y3,mb4y1,mb4y3)は、フィルタにシフトされ、新たなデータ用のスペースが作られる。この出力ステップ、格納ステップ、およびシフトステップの結果を図5Kに示す。該図は図5Aに示す初期のフィルタ状態にぴったりと一致する。この結果、図5A〜5Kに示した一連のステップが繰り返して行われ、次のマクロブロック(例えば、マクロブロック5つまりmb5)を含む、フィルタブロックが継続してフィルタリングされる。
図6A〜6Fには本発明の例示的実施形態を示しており、マクロブロックのCbあるいはCrブロックに、WMV9スムージングプロシージャとデブロッキングプロシージャとが区分的処理技術を備えてどのように実装され得るかを示している。CbおよびCrマクロブロックは類似していることから、例では現在のCbマクロブロックをとりあげている。このマクロブロックはインデックスラベルCb(x,y)で識別される。フィルタリングプロセスの開始地点を図6Aに示す。図6Aでは、フィルタ420は、すでに一部がオーバーラップスムージング処理(例えば、長円形表示422を参照のこと)、およびデブロッキング処理(例えば、ライン表示423を参照のこと)されたブロック(例えば、Cb(x-1,y-1)とCb(x-1,y-1)ですでに読み出されている。次に、フィルタ420は図6Bに示すように、さらなるブロックで満たされる。特に、一部が終了したブロック(例えば、Cb(x,y-1))はスクラッチパッドメモリから引き出され、フィルタに読み出される。加えて、現在のマクロブロックからのブロック(例えば、Cb(x,y))はフィルタ420に読み出される。フィルタブロックが読み出されると、フィルタ420は図6Cに示すように区分的オーバーラップスムージングを行う。具体的には、選択された内部の垂直エッジで垂直オーバーラップスムージング(V)を行う。次に、選択された内部の水平エッジで水平オーバーラップスムージング(H1,H2)を行う。
フィルタブロックが一部スムージングされると、フィルタ420は図6Dに示すように、区分的デブロッキングを行う。まず、選択された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〜6Fに示した一連のステップが繰り返し行われ、次のマクロブロックがフィルタリングされる。
これまでの記載から明らかなように、ハードウェアデコーダユニットに小さなスクラッチパッドメモリを提供することで、ループ内フィルタは一時的に、現在のマクロブロック(MB(x,y)として示す)のルマブロックおよびクロマブロックからの、一部が終了したフィルタリング結果をスクラッチパッドメモリに格納できる。次に、格納されたフィルタリング結果を、下の行のマクロブロックに近接したブロックを処理する際に使用してもよい。具体的には、フィルタが真下のマクロブロック、つまりMB(x,y+1)を処理するときには、MB(x,y)の格納されたデータはスクラッチパッドからフェッチされ、MB(x,y+1)の処理のために使用される。
スクラッチパッドメモリに格納された、一部が終了したフィルタリング結果は少なくとも8×8ピクセルデータを含む必要があるが、選択された実施形態では、スクラッチパッドはさらに制御データを格納し、ブロックに境界フィルタリングが必要であるかどうかを判断する。例えば、制御データは、各ブロックに対して、現在のマクロブロックにおいての6つのブロックに対するヘッダ群を含む。そのようはヘッダとしては、1mvあるいは4mvセレクタ、ブロックアドレス、フレームにおけるブロックの位置、マクロブロックモード、変換サイズ、(ゼロあるいはゼロではない)係数、動きベクトル)(正方向においてはxおよびy方向プラス方向の二つ、逆方向においてはxおよびy方向の二つ)、が挙げられる。データは、バーストサイズを効率的に使用できるように圧縮される。
スクラッチパッドメモリのサイズは小さいので、メモリをビデオアクセラレータと同じチップ上に設けてもよい。しかし、一般的なフレームサイズでは、スクラッチパッドはDDRメモリやその他の外部メモリなどの、別のチップ上に設けられ得る。しかし、ビデオアクセラレータハードウェアユニット101にスクラッチパッドメモリを設けることにより、メモリアクセスパフォーマンスが向上する。フレーム全体にデータブロックを格納するための大きなメモリバッファを有する場合と比べると、スクラッチパッドメモリサイズを最小にした場合は、メディアアクセラレーションハードウェアユニットの製造コストを引き下げることができる。例えば、一部が終了したフィルタリング結果を格納するために使用されるスクラッチパッドメモリは、制御データとピクセルデータとを含み、以下のように計算することができる。
スクラッチパッドサイズ=(576バイト)×(フレームにおける、水平方向のマクロブロック数)
フレームサイズが垂直方向において大きいときに、スクラッチパッドのサイズが相対的に小さいことは、これまでの記載から明らかである。換言すれば、スクラッチパッドのサイズは、水平方向のフレームのサイズにより決まる。本明細書に記載した区分的処理技術は、フレーム全体がデコードされる前に第1のマクロブロックでフィルタリングが開始される場合は、フィルタリィングオペレーションの速度を上げるためにフレーム全体を保持する大きなメモリに対して使用できる点で有利である。しかし、スクラッチパッドメモリを使用すると、費用がかかりアクセス時間にオーバーヘッドを追加する、フレーム全体を格納する大きなメモリを使用するよりも費用および速度の点で有利である。
スクラッチパッドの使用は、フィルタリングアルゴリズムのパイプライン処理にもよく適合する。本発明による利益を享受し得る当業者であれば、本発明に関して等価の範囲内で種々の変形及び実施が可能であることは明らかであることから、上述の個々の実施形態は、例示的なものに過ぎない。よって、上述の記載は本発明を特定の形式に限定することを意図するものではなく、むしろ本発明は添付の請求項によって規定されている発明の精神および範囲に含まれる変形、修正および等価物をカバーするものであり、これにより、当業者たちは本発明の精神や範囲から逸脱することなく各種の変更、置換えおよび変更ができることを理解されたい。
ビデオ情報の解凍システムを示したブロック図。 本発明に従い構成された例示的ビデオ解凍システムを示したブロック図。 本発明の選択された実施形態に係る、オーバーラップスムージングとループ内デブロッキングを効率的に処理するスクラッチパッドメモリを使用したループ内フィルタリング処理の概略図。 ビデオエンコーダあるいはデコーダでスムージングおよびデブロッキングフィルタを使用した、デコードされたフレームのブロッキネスを低減するための例示的技術の説明図。 ルマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 ルマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 ルマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 ルマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 ルマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 ルマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 ルマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 ルマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 ルマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 ルマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 ルマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 クロマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 クロマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 クロマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 クロマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 クロマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。 クロマブロックに対してスムージングおよびデブロッキングプロシージャを実装するために区分的処理がどのように使用され得るかを示した説明図。

Claims (10)

  1. ブロック変換で処理された画像データを複数のマクロブロックにデコードする方法であって、
    少なくとも1つの第1の部分的にフィルタリングされたブロックと、少なくとも1つの終了したブロックとを生成するために、選択されたピクセルデータを第1のマクロブロックでスムージングおよびデブロッキングするステップと、
    選択されたピクセルデータを第2のマクロブロックでのスムージングおよびデブロッキングで使用するために、前記第1の部分的にフィルタリングされたブロックをスクラッチパッドメモリに格納するステップと、を含む方法。
  2. 前記スムージングおよびデブロッキングステップで使用するために、前のブロックを処理する間にすでに生成済みの、第2の、一部がフィルタリングされたブロックを前記スクラッチパッドメモリからフェッチするステップをさらに含む、請求項1に記載の方法。
  3. 前記スムージングおよびデブロッキングするステップは、ループ内フィルタにより実行される、請求項1に記載の方法。
  4. 前記ループ内フィルタは、1つのマクロブロックを一度にオーバーラップスムージングおよびデブロッキングするために、画像フレームのマクロブロックの各行を連続して処理する、請求項3に記載の方法。
  5. 前記ループ内フィルタは、パイプライン形式で複数のマクロブロックにスムージングおよびデブロッキングを連続して実行する、請求項3に記載の方法。
  6. 複数の、一部がフィルタリングされたブロックを生成するために、選択されたピクセルデータをマクロブロックの第1の行においてスムージングおよびデブロッキングするステップと、
    前記スクラッチパッドメモリに、前記複数の一部がフィルタリングされたブロックを格納するステップと、を含む請求項1記載の方法。
  7. 選択されたピクセルデータをマクロブロックの第2の行においてスムージングおよびデブロッキングするときに、スクラッチパッドメモリから、第1の部分的にフィルタリングされたブロックを引き出すステップと、
    前記第1の部分的にフィルタリングされたブロックのスムージングおよびデブロッキング処理を完了するために、選択されたピクセルデータを前記第1の部分的にフィルタリングされたブロックにおいてスムージングおよびデブロッキングし、これにより終了したブロックを生成するステップと、を含む請求項6記載の方法。
  8. 前記第1のブロックが第1のフィルタオペレーションで一部が処理され、前記スクラッチパッドメモリに格納され、その後、第2のフィルタオペレーションで完全に処理されるように、前記スムージングおよびデブロッキングステップは各マクロブロックの少なくとも第1のブロックに区分的オーバーラップスムージングおよびデブロッキングするステップを含む、請求項1に記載の方法。
  9. 圧縮された画像データストリームから画像情報をデコードする画像処理システムにおいて、
    一部がデコードされた画像データを生成するために、前記圧縮された画像データストリームを一部デコードするプロセッサと、
    画像フレームを生成するために前記一部がデコードされた画像データをデコードする画像デコード回路とを含み、前記画像デコード回路は、スクラッチパッドメモリとループ内フィルタとを含み、オーバーラップスムージングとループ内デブロッキングとを連続して前記画像フレームの複数のマクロブロックに行う、装置。
  10. 前記スクラッチパッドメモリは、マクロブロックの第2の行をオーバーラップスムージングおよびデブロッキングする間に、一部がフィルタリングされたブロックのそれぞれがループ内フィルタによってフェッチされるように、マクロブロックの第1の行から一部がフィルタリングされたブロックを格納する、請求項9に記載の装置。
JP2007553131A 2005-01-25 2006-01-17 中間ループフィルタデータを格納するスクラッチパッド Pending JP2008529412A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/042,218 US7792385B2 (en) 2005-01-25 2005-01-25 Scratch pad for storing intermediate loop filter data
PCT/US2006/001599 WO2006081098A1 (en) 2005-01-25 2006-01-17 Scratch pad for storing intermediate loop filter data

Publications (1)

Publication Number Publication Date
JP2008529412A true JP2008529412A (ja) 2008-07-31

Family

ID=36282836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007553131A Pending JP2008529412A (ja) 2005-01-25 2006-01-17 中間ループフィルタデータを格納するスクラッチパッド

Country Status (8)

Country Link
US (1) US7792385B2 (ja)
JP (1) JP2008529412A (ja)
KR (1) KR20070111467A (ja)
CN (1) CN101160971B (ja)
DE (1) DE112006000270T5 (ja)
GB (1) GB2435788B (ja)
TW (1) TWI382764B (ja)
WO (1) WO2006081098A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007287031A (ja) * 2006-04-19 2007-11-01 Seiko Epson Corp 画像処理装置及び画像処理方法
JP2018014743A (ja) * 2010-12-07 2018-01-25 ソニー株式会社 画像処理装置及び画像処理方法
US10334279B2 (en) 2010-12-07 2019-06-25 Sony Corporation Image processing device and image processing method

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4797853B2 (ja) * 2006-07-19 2011-10-19 ソニー株式会社 映像信号処理装置及び方法、並びに映像信号復号装置
JP4830691B2 (ja) * 2006-07-26 2011-12-07 ソニー株式会社 映像信号処理方法及び装置、並びに映像信号復号方法
JP4848892B2 (ja) * 2006-08-25 2011-12-28 ソニー株式会社 映像信号処理装置及び方法、並びに映像信号復号装置
EP2127390A2 (en) * 2006-12-28 2009-12-02 Thomson Licensing Detecting block artifacts in coded images and video
WO2009018845A1 (en) * 2007-08-09 2009-02-12 Micronas Gmbh Method for deblocking image data and device providing an image processing deblocking filter
TWI468015B (zh) * 2007-10-26 2015-01-01 Ind Tech Res Inst 視訊解碼的平行處理裝置及方法
US8923384B2 (en) * 2007-12-31 2014-12-30 Netlogic Microsystems, Inc. System, method and device for processing macroblock video data
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
GB0807804D0 (en) * 2008-04-29 2008-06-04 Imagination Tech Ltd Interlaced video edge filtering
NO329837B1 (no) * 2008-07-09 2011-01-03 Tandberg Telecom As Fremgangsmate for prosessor-effektivt deblokkingsfiltrering
US8872856B1 (en) * 2008-08-14 2014-10-28 Zenverge, Inc. Macroblock based scaling of images using reduced memory bandwidth
US20100053181A1 (en) * 2008-08-31 2010-03-04 Raza Microelectronics, Inc. Method and device of processing video
US20100111166A1 (en) * 2008-10-31 2010-05-06 Rmi Corporation Device for decoding a video stream and method thereof
US9110849B2 (en) * 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
US9118898B2 (en) * 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US9075757B2 (en) * 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US8451904B2 (en) 2009-06-24 2013-05-28 Qualcomm Incorporated 8-point transform for media data coding
US9081733B2 (en) * 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
JP2011049740A (ja) * 2009-08-26 2011-03-10 Sony Corp 画像処理装置および方法
TWI424372B (zh) * 2010-03-24 2014-01-21 Altek Corp Selectable image line path means
WO2012064083A2 (ko) * 2010-11-08 2012-05-18 엘지전자 주식회사 디블록킹 필터링 방법 및 장치
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US20120194564A1 (en) 2011-01-31 2012-08-02 White Christopher J Display with secure decompression of image signals
US9432700B2 (en) * 2011-09-27 2016-08-30 Broadcom Corporation Adaptive loop filtering in accordance with video coding
CN103260023A (zh) * 2012-02-21 2013-08-21 联咏科技股份有限公司 图像编码/解码系统与其方法
KR102447521B1 (ko) 2012-10-01 2022-09-26 지이 비디오 컴프레션, 엘엘씨 베이스 레이어로부터 예측을 위한 서브블록 세부분할의 유도를 이용한 스케일러블 비디오 코딩
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
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
US20190005709A1 (en) * 2017-06-30 2019-01-03 Apple Inc. Techniques for Correction of Visual Artifacts in Multi-View Images

Family Cites Families (37)

* 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
DE69232345T2 (de) * 1991-07-16 2002-07-04 Yozan Inc Verfahren zur Bestimmung der Neigung eines Schriftzeichen enthaltenden Bildes
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
US6259734B1 (en) * 1998-04-03 2001-07-10 Matsushita Electric Industrial Co., Ltd. Image processing method, image processing apparatus, and data storage media
US6700588B1 (en) * 1998-11-09 2004-03-02 Broadcom Corporation Apparatus and method for blending graphics and video surfaces
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 구자홍 압축 영상신호의 블럭현상 및 링현상 제거방법
JP2001285863A (ja) * 2000-03-30 2001-10-12 Sony Corp 画像情報変換装置及び方法
DE10048438A1 (de) * 2000-09-29 2002-04-18 Siemens Ag Referenzbilddrehung
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 微软公司 处理视频图像的方法
KR100441869B1 (ko) * 2001-12-28 2004-07-27 주식회사 하이닉스반도체 파이프라인 구조를 사용하는 디블록킹 필터
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
US7349473B2 (en) * 2002-07-09 2008-03-25 Nokia Corporation Method and system for selecting interpolation filter type in video coding
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 华中科技大学 一种环路滤波方法和环路滤波器
CN1233171C (zh) * 2004-01-16 2005-12-21 北京工业大学 一种用于视频编码的简单化环路滤波方法
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
US8576924B2 (en) * 2005-01-25 2013-11-05 Advanced Micro Devices, Inc. Piecewise processing of overlap smoothing and in-loop deblocking

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007287031A (ja) * 2006-04-19 2007-11-01 Seiko Epson Corp 画像処理装置及び画像処理方法
JP2018014743A (ja) * 2010-12-07 2018-01-25 ソニー株式会社 画像処理装置及び画像処理方法
US10334279B2 (en) 2010-12-07 2019-06-25 Sony Corporation Image processing device and image processing method
US10362318B2 (en) 2010-12-07 2019-07-23 Sony Corporation Image processing device and image processing method that horizontal filtering on pixel blocks
US10582202B2 (en) 2010-12-07 2020-03-03 Sony Corporation Image processing device and image processing method that horizontal filtering on pixel blocks
US10785504B2 (en) 2010-12-07 2020-09-22 Sony Corporation Image processing device and image processing method
US10931955B2 (en) 2010-12-07 2021-02-23 Sony Corporation Image processing device and image processing method that horizontal filtering on pixel blocks
US11381846B2 (en) 2010-12-07 2022-07-05 Sony Corporation Image processing device and image processing method

Also Published As

Publication number Publication date
GB2435788A (en) 2007-09-05
US20060165164A1 (en) 2006-07-27
TWI382764B (zh) 2013-01-11
DE112006000270T5 (de) 2007-12-13
US7792385B2 (en) 2010-09-07
KR20070111467A (ko) 2007-11-21
GB2435788B (en) 2010-08-25
CN101160971A (zh) 2008-04-09
CN101160971B (zh) 2012-03-07
WO2006081098A1 (en) 2006-08-03
TW200701795A (en) 2007-01-01
GB0712488D0 (en) 2007-08-08

Similar Documents

Publication Publication Date Title
KR101227667B1 (ko) 오버랩 평활화 및 인-루프 디블록킹의 구분적 프로세싱
US7792385B2 (en) Scratch pad for storing intermediate loop filter data
JP5756537B2 (ja) 適応型走査を用いる動画像復号化方法
US8009740B2 (en) Method and system for a parametrized multi-standard deblocking filter for video compression systems
JP4680608B2 (ja) 画像復号装置及び方法
US20060133504A1 (en) Deblocking filters for performing horizontal and vertical filtering of video data simultaneously and methods of operating the same
US20060115002A1 (en) Pipelined deblocking filter
US7965773B1 (en) Macroblock cache
KR101158345B1 (ko) 디블록킹 필터링을 수행하는 방법 및 시스템
JP2009525001A (ja) イントラ符号化されたビデオの並列復号化
JP2006157925A (ja) パイプラインデブロッキングフィルタ
JP5496047B2 (ja) 画像再生方法、画像再生装置、画像再生プログラム、撮像システム、および再生システム
JP2012085001A5 (ja)
KR20050121627A (ko) 동영상 코덱의 필터링 방법 및 필터링 장치
JP2007258882A (ja) 画像復号装置
JP7359653B2 (ja) 動画像符号化装置
JP2008544621A (ja) ビデオエラー隠蔽を向上させる符号化及び復号の方法及び装置
KR100636911B1 (ko) 색도 신호의 인터리빙 기반 동영상 복호화 방법 및 그 장치
KR100556341B1 (ko) 메모리 대역폭이 감소된 비디오 디코더 시스템
KR100816461B1 (ko) 실시간 디블록킹 필터 및 이를 이용한 디블록킹 방법
Shoham et al. Introduction to video compression
JP2007295333A (ja) 画像復号処理回路及び方法及びプログラム、並びに半導体集積回路
JP2006191545A (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

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120328