(57)【要約】【課題】ビデオ圧縮のためのデブロッキング装置及び方法の提供。【解決手段】ビデオ圧縮のためのデブロッキング装置は一連の画像のブロックの境界のエッジフィルターリングを行う。該装置は第１及び第２フィルターの要求する一部データを、第１及び第２交換バッファーを使用してバッファーし、データ交換の自由度を増すためにレジスタ群とバッファー機能を実施する。第１及び第２フィルターは一連の画像のブロックに対して垂直及び水平デブロッキングフィルターリングを行う。適応性キューが第１フィルターからの出力データの一部を受け取り、該データを内部バッファーに暫時格納し、出力データを該第２フィルターの入力データの一部となす。【選択図】図１０
2011097556.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ圧縮のためのデブロッキング装置において、該デブロッキング装置はビデオシーケンスのブロック間の境界ブロックノイズをフィルター処理するのに用いられ、各二つの隣り合うブロックの垂直方向或いは水平方向の各境界データは前段ピクセルデータと後段ピクセルデータで構成され、該デブロッキング装置は、
適応性キューと、
第１交換バッファー及び第２交換バッファーと、
第１フィルターであって、該第１交換バッファーに前もって保存された前段ピクセルデータを入力し、並びに現在正に処理を要するマクロブロックの未フィルターピクセルデータを入力し並びに後段ピクセルデータとなし、垂直方向のデブロッキングフィルター処理を行った後に、前段フィルター済ピクセルデータを該適応性キューに出力し、並びに後段フィルター済ピクセルデータを該第１交換バッファーに保存する、該第１フィルターと、  第２フィルターであって、該第２交換バッファーに前もって保存された前段ピクセルデータを入力し、並びに該適応性キューの出力データを後段ピクセルデータとなし、水平方向のデブロッキングフィルター処理を行った後に、全ての出力の全段フィルター済ピクセルデータを該第２交換バッファーに保存する、該第２フィルターと、
を包含することを特徴とするビデオ圧縮のためのデブロッキング装置。
【請求項２】
請求項１記載のビデオ圧縮のためのデブロッキング装置において、該現在正に処理を要するマクロブロックが、マクロブロック適応性フレームフィールド(macroblock adaptive frame field,MBAFF)形式である時、該第２フィルターの出力するフィルター済ピクセルデータの一部データを、該第２交換バッファーを介して、該第１交換バッファーに保存することを特徴とするビデオ圧縮のためのデブロッキング装置。
【請求項３】
請求項１記載のビデオ圧縮のためのデブロッキング装置において、該第２交換バッファーの初期データは適応性メモリリーダーがメモリより読み取ったデータより提供され、且つ該適応性メモリリーダーが該メモリを読み取る回数は、該現在正に処理を要するマクロブロックの形式とパラメータ計算器が提供する少なくとも一つのパラメータにより決定されることを特徴とするビデオ圧縮のためのデブロッキング装置。
【請求項４】
請求項１記載のビデオ圧縮のためのデブロッキング装置において、該第１交換バッファーと該第２交換バッファーはそれぞれ複数の第１レジスタ群と複数の第２レジスタ群により実現されることを特徴とするビデオ圧縮のためのデブロッキング装置。
【請求項５】
請求項４記載のビデオ圧縮のためのデブロッキング装置において、該複数の第１レジスタ群と該複数の第２レジスタ群内で、相互間のデータの交換と変換の能力を具備することを特徴とするビデオ圧縮のためのデブロッキング装置。
【請求項６】
請求項４記載のビデオ圧縮のためのデブロッキング装置において、該デブロッキング装置は該複数の第１レジスタ群と該複数の第２レジスタ群をシェアし、これにより一方でメモリより読み取ったデータを保存し、また一方で該第１交換バッファーと該第２交換バッファー内にフィルター済ピクセルデータを保存し、適応性メモリライタを介して該メモリに書込み、且つ該適応性メモリライタが該メモリに書き込む回数は、該第１フィルターと該第２フィルターの出力するフラグにより決定されることを特徴とするビデオ圧縮のためのデブロッキング装置。
【請求項７】
請求項４記載のビデオ圧縮のためのデブロッキング装置において、該第１フィルターの必要とするデータは該複数の第１レジスタ群に保存され、該第２フィルターの必要とするデータは該複数の第２レジスタ群に保存されることを特徴とするビデオ圧縮のためのデブロッキング装置。
【請求項８】
請求項１記載のビデオ圧縮のためのデブロッキング装置において、該第１フィルターは該適応性キューと該第１交換バッファーにそれぞれ接続され、該第２フィルターは該適応性キューと該第２交換バッファーにそれぞれ接続されたことを特徴とするビデオ圧縮のためのデブロッキング装置。
【請求項９】
請求項１記載のビデオ圧縮のためのデブロッキング装置において、該デブロッキング装置は、パラメータ計算器により少なくとも一つの関係パラメータを生成し、並びにそれを該第１フィルターと該第２フィルターに提供して、デブロッキングフィルター処理を行う際の入力パラメータとなすことを特徴とするビデオ圧縮のためのデブロッキング装置。
【請求項１０】
請求項１記載のビデオ圧縮のためのデブロッキング装置において、該デブロッキング装置は、
メモリよりデータを読み取り、そのデータより該第２交換バッファーの初期データを提供する適応性メモリリーダーと、
該第１交換バッファーと該第２交換バッファー内のフィルター済ピクセルデータを該メモリに書き込む適応性メモリライタと、
を更に包含することを特徴とするビデオ圧縮のためのデブロッキング装置。
【請求項１１】
ビデオ圧縮のためのデブロッキング方法において、該デブロッキング方法はビデオシーケンスのブロック間の境界ブロックノイズをフィルター処理するのに用いられ、各二つの隣り合うブロックの垂直方向或いは水平方向の各境界データは前段ピクセルデータと後段ピクセルデータで構成され、該デブロッキング方法は、
第１交換バッファーに前もって保存された前段ピクセルデータを入力し、並びに現在正に処理を要するマクロブロックの未フィルターピクセルデータを入力し並びに後段ピクセルデータとなすステップ、
垂直方向のデブロッキングフィルター処理を行った後に、前段フィルター済ピクセルデータを適応性キューに出力し、並びに後段フィルター済ピクセルデータを該第１交換バッファーに保存するステップ、
第２交換バッファーに前もって保存された前段ピクセルデータを入力し、並びに該適応性キューの出力データを後段ピクセルデータとなすステップ、
水平方向のデブロッキングフィルター処理を行った後に、全ての出力の全段フィルター済ピクセルデータを該第２交換バッファーに保存するステップ、
以上のステップを包含することを特徴とするビデオ圧縮のためのデブロッキング方法。
【請求項１２】
請求項１１記載のビデオ圧縮のためのデブロッキング方法において、
該第１交換バッファーと該第２交換バッファーを利用して該現在正に処理を要するマクロブロックの該垂直方向と該水平方向のデブロッキングフィルター処理に必要な一部データを保存し、並びに複数のレジスタ群でバッファー機能を実現しデータ交換の自由度を増すことを特徴とするビデオ圧縮のためのデブロッキング方法。
【請求項１３】
請求項１２記載のビデオ圧縮のためのデブロッキング方法において、
該複数のレジスタ群をシェアし、これにより一方で適応性メモリリーダーがメモリより読み取ったデータを保存し、また一方で該第１交換バッファーと該第２交換バッファー内のフィルター済データを保存し、適応性メモリライタで該メモリに書き込むことを特徴とするビデオ圧縮のためのデブロッキング方法。
【請求項１４】
請求項１３記載のビデオ圧縮のためのデブロッキング方法において、
該適応性メモリリーダーが該メモリよりデータを読み取る回数は、該現在正に処理を要するマクロブロックの形式と、パラメータ計算器が提供する少なくとも一つのパラメータにより決定され、
該適応性メモリライタが該メモリに書き込む回数は、該垂直方向と該水平方向のデブロッキングフィルター処理の出力フラグにより決定されることを特徴とするビデオ圧縮のためのデブロッキング方法。
【請求項１５】
請求項１１記載のビデオ圧縮のためのデブロッキング方法において、
第１フィルターと第２フィルターにより該垂直方向と該水平方向のデブロッキングフィルター処理を行うことを特徴とするビデオ圧縮のためのデブロッキング方法。
【請求項１６】
請求項１５記載のビデオ圧縮のためのデブロッキング方法において、
該適応性キューを介して、該第１フィルターの出力する一部データを受け取り、並びにキュー方式で少なくとも一つの内部バッファー内に保存し、
該適応性キューを介して、データをマクロブロックが使用する形式より該第２フィルターが必要とする形式のデータに変換した後、該第２フィルターに出力し、
該適応性キューの出力データは該第２フィルターの入力データの一部とされることを特徴とするビデオ圧縮のためのデブロッキング方法。
【請求項１７】
請求項１５記載のビデオ圧縮のためのデブロッキング方法において、
該第１フィルターが現在の垂直エッジのデブロッキングフィルター処理を行った後に、該現在の垂直エッジのフィルター済データをレジスタに保存し、
該レジスタ内の該フィルター済データが次の垂直エッジを処理するための一部入力データとされることを特徴とするビデオ圧縮のためのデブロッキング方法。
【請求項１８】
請求項１５記載のビデオ圧縮のためのデブロッキング方法において、
該第２フィルターが現在の水平エッジのデブロッキングフィルター処理を行った後に、該現在の水平エッジのフィルター済データをレジスタに保存し、
該レジスタ内の該フィルター済データが次の水平エッジを処理するための一部入力データとされることを特徴とするビデオ圧縮のためのデブロッキング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一種のビデオ圧縮のためのデブロッキング装置と方法に関する。
【背景技術】
【０００２】
ブロック単位ビデオ圧縮(block based video compression)はブロック境界間で、視覚上、品質が一致しなくなるブロックノイズを引き起こす。現在のビデオ圧縮技術では、一種の後処理装置(post processing）、例えばデブロッキングフィルターを使用することで、このブロックノイズを減らして圧縮性能を向上している。図１Ａには、ビデオエンコーダ／デコーダのエンコード／デコード回路内に含まれないデブロッキングフィルター、いわゆるループ外(out-loop)フィルター１１０を示す。図１Ｂに示されるように、Ｈ．２６４アドバンストビデオコーディング(Advanced Video Coding,AVC)技術で使用するデブロッキングフィルターはエンコード／デコード回路内にあって、それぞれループ内(in-loop)フィルター１２２と１２４を採用することで、ブロックノイズを除去し(remove)し、圧縮性能をアップしている。
【０００３】
図２Ａのビデオシーケンス(video sequence)の例に示されるように、Ｈ．２６４／ＡＶＣビデオコーデックは、圧縮済ビデオシーケンス２００をインタレース形式(interlaced)のフレームピクチャー（frame-picture)２１０とフィールドピクチャー(field-picture）２２０の任意の組合せとすることができる。図２Ｂの例に示されるように、一枚のフレームピクチャー２３０はトップフィールドピクチャー(top-field)２３２とボトムフィールドピクチャー(bottom-field)２３４に分けることができ、トップフィールドは偶数のピクセル行(pixel row)で構成され、ボトムフィールドは奇数のピクセル行で構成される。インタレースドビデオシーケンス２００の形式は、ピクチャー適応型フレームフィールド(picture adaptive frame field,PICAFF)形式と称される。
【０００４】
図３にはマクロブロック形式(macroblock format)の例が示され、一枚のフレームピクチャー３００が、複数のマクロブロック(macroblock,MB)３０２に分割され、各マクロブロックは一つの１６×１６ピクセルルーマ（輝度）コンポーネント(pixels luma component)３１０と二つのクロマ（色）コンポーネント、例えばピクセルクロマコンポーネント３１２と３１４で構成される。１６×１６ピクセルルーマコンポーネント(pixels luma component)３１０は１６個の４×４ブロック(block)で構成されている。Ｈ．２６４／ＡＶＣのピクセルクロマコンポーネントには三種類の形式があり、それぞれ、４：２：０、４：２：２、及び４：４：４形式である。図３の例に示されるように、一つの４：２：０形式のピクセルクロマコンポーネントは８×８ピクセルで構成され、ピクセルクロマコンポーネント３１２と３１４のようである。一つの４：２：２形式のピクセルクロマコンポーネントは１６×８ピクセルで構成され、ピクセルクロマコンポーネント３２２と３２４のようであり、一つの４：４：４形式のピクセルクロマコンポーネントは、１６×１６ピクセルで構成され、ピクセルクロマコンポーネント３３２と３３４のようである。
【０００５】
図４の例に示されるように、フレームピクチャー４００内の一対のマクロブロックは、フレームマクロブロック対(frame-MB pair)４１０或いはフィールドマクロブロック対(field-MB pair)４２０とされ得る。そのうち、このマクロブロック対は同じ水平位置(the same horizontal position)を有し且つその垂直位置はフレームピクチャー内において隣り合って(adjacent)いる。フィールドマクロブロック対４２０内のトップフィールドマクロブロック(top-field macroblock)４２２は偶数のピクセル行で構成され、ボトムフィールドマクロブロック(bottom-field macroblock)４２４は奇数のピクセル行で構成されている。Ｈ．２６４／ＡＶＣビデオコーデックは、一枚のフレームピクチャー４００を、フレームマクロブロック対４１０とフィールドマクロブロック対４２０の任意の組合せとすることができ、このような形式は、マクロブロック適応性フレームフィールド(macroblock adaptive frame field,MBAFF)形式と称される。
【０００６】
４：２：０形式のピクセルクロマコンポーネントを具備するマクロブロックに対して、デブロッキングフィルターは、２４個の垂直エッジ(vertical edge)と２４個の水平エッジ(horizontal edge)を含む４８個のブロックエッジ(block edge)を処理する必要がある。４：２：２形式のピクセルクロマコンポーネントを具備するマクロブロックに対しては、６４個のブロックエッジを処理する必要があり、４：４：４形式のピクセルクロマコンポーネントを具備するマクロブロックに対しては、９６個のブロックエッジを処理する必要がある。図５の例に示されるように、Ｈ．２６４／ＡＶＣビデオ圧縮のデブロッキングフィルターはブロックノイズを処理する時、まず、ブロックの垂直エッジ５１０を処理した後に、水平エッジを処理する。並びに、垂直エッジのブロックノイズを除去したピクセルを水平エッジ５２０のブロックノイズ除去時の入力データとして用いる。そのうち、ｖは垂直エッジのピクセルを指し、垂直エッジ５１０の左側は未フィルターリングのピクセルであり、垂直エッジ５１０の右側はフィルターリング済のピクセルである。ｈは水平エッジのピクセルを指し、水平エッジ５２０の上方は未フィルターリングのピクセルであり、水平エッジ５２０の下方はフィルターリング済のピクセルである。言い換えると、垂直フィルター(vertical filter)がブロックノイズを除去したピクセルに入力がされる時、水平フィルター(horizontal filter)によりブロックノイズが除去される。
【０００７】
図６の例に示されるように、一つのブロックの垂直エッジ５１０或いは水平エッジ５２０は、一連のピクセルに続いて一連のピクセルが順に処理されて４連の、合計３２個のピクセルが処理され、各一連のピクセルは該ブロックエッジを跨いで８個のピクセルにより構成される。この８個のピクセルをｐ３、ｐ２、ｐ１、ｐ０、ｑ０、ｑ１、ｑ２、ｑ３と表示する。そのうち、ｐ０とｑ０は該ブロックエッジの両側に位置する、隣り合うピクセルである。この８個のピクセルと関係パラメータ、例えば境界強度(boundary strength)は、デブロッキングフィルターの入力データとされる時、デブロッキングフィルターによりブロックノイズ除去後の８個のピクセルは、ｐ’３、ｐ’２、ｐ’１、ｐ’０、ｑ’０、ｑ’１、ｑ’２、ｑ’３と表示する。このデブロッキングフィルターは一度に一連のピクセルを処理し、いわゆるラインフィルター(line filter)と称される。
【０００８】
これにより、毎秒３０枚のピクチャーの高画質（ｆｕｌｌ  ＨＤ）ビデオシーケンスに対して、もし、そのピクセルクロマコンポーネントに４：２：０形式が使用されていれば、デブロッキングフィルターは毎秒１１，７０５，２８０個ものブロックエッジを処理しなければならない。もし、デブロッキングフィルターがプロセッサ上のソフトウエアにより実現されるならば、このプロセッサの動作クロック(working clock)も５００ＭＨｚを超過し得る。ビデオシーケンスがＭＢＡＦＦ形式を使用してビデオ圧縮する時、図７に示されるように、もし、現在のフレームマクロブロック７０５の近隣の上方がフィールドマクロブロックであれば、デブロッキングフィルターは余分に二つの上方のマクロブロック（トップフィールドマクロブロック７１０とボトムフィールドマクロブロック７２０）の境界を処理しなければならず、該ビデオシーケンスに対して、合計で、毎秒１２，１９４，８８０個ものブロックエッジを処理しなければならない。並びに、垂直方向処理を実行する時、メモリの読取りと書込みは合計で３２×１９５８４０×２バイトにもなり、水平方向処理を実行する時、メモリの読取りと書込みは、合計で３２×（１９５８４０＋１６３２０）×２バイトにもなる。言い換えると、デブロッキングフィルターのメモリ周波数幅の要求は毎秒７８０，４７２，３２０バイトにも達する。
【０００９】
特許文献１には、デブロッキングフィルターが記載されている。図８に示されるように、デブロッキングフィルター８０１は、処理ユニット(processing unit)８０２を使用することで、現在のマクロブロック（ｃｕｒｒｅｎｔ  ＭＢ）８０４のエッジ８１２に配置された複数行の複数群ピクセルに対して、同時にブロックノイズを列方向エッジフィルターリング(column-direction edge filtering)する必要がある。例えば、第１クロック周期(clock cycle)にピクセルＥ４からＥ７とピクセルＧ４からＧ７を処理し、第２クロック周期に、ピクセルＦ４からＦ７とピクセルＨ４からＨ７を処理する。並びに、再配置ユニット(rearrangement unit)８０３を使用し、処理済のピクセルを異なる列に再配置し、例えば行Ｅ内のピクセルＥ４からＥ７を列４内のピクセルＥ４、Ｆ４、Ｇ４、Ｈ４に配置し、行Ｆ内のピクセルＦ４からＦ７を列５内のピクセルＥ５、Ｆ５、Ｇ５、Ｈ５に配置し、行Ｇ内のピクセルＧ４からＧ７を列６内のピクセルＥ６、Ｆ６、Ｇ６、Ｈ６に配置し、行Ｈ内のピクセルＨ４からＨ７を列７内のピクセルＥ７、Ｆ７、Ｇ７、Ｈ７に配置する。こうして、水平エッジのブロックノイズの処理時間を減らし、この処理時間は、読出必要画素の待機時間である。
【００１０】
Cheng-An Chien氏等は２００８年と２００９年に、高スループット(High throughput)のループ内デブロッキングフィルターを提出し、図９に示されるように、それによると、デブロッキングフィルター９１０は４×４／８×８ラインフィルター９１２とバッファー管理方法(buffer management scheme)を採用することで、Ｈ．２６４／ＡＶＣの多種ビデオコーデック、例えばＰＩＣＡＦＦ形式とＭＢＡＦＦ形式をサポートしている。このバッファー管理方法は二種類の内部バッファーにより参考マクロブロック対(reference MB pair)のデータを保存し、並びに水平エッジと垂直エッジのフィルターリング操作(filtering operation)切換えの際に、内部ピクセル再配置処理プロセスを助け、このピクセルのメモリ９２０への書込みを不要とする。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】米国特許公開第２００８／００４３８５３号
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は一種のビデオ圧縮のためのデブロッキング装置と方法を提供することを目的とし、それは、バッファーを利用してマクロブロックの二つのフィルターが必要とする一部データを保存し、並びにレジスタ群でバッファー機能を実現することで、データ交換の自由度を増す。このデブロッキング装置中の二つのフィルターは、それぞれ独立してビデオシーケンスの隣り合うマクロブロック間とマクロブロック内部の垂直方向と水平方向のデブロッキングフィルター処理を実行する。この実施例はメモリアクセス回数を減らし、デブロッキング装置の性能とプットスルーを向上し、その内部バッファーのサイズを減らす。
【課題を解決するための手段】
【００１３】
本発明は、ビデオシーケンスのマクロブロック間の境界ブロックノイズをフィルターリングして除去するためのビデオ圧縮のためのデブロッキング装置と方法を提供する。そのうち、各二つの隣り合うマクロブロックの垂直或いは水平方向の各一つの境界データは前段ピクセルデータと後段ピクセルデータで構成されている。
【００１４】
本発明はある実施例において、ビデオ圧縮のためのデブロッキング装置を提供し、この装置は、適応性キュー(adaptive queue)、第１及び第２交換バッファー(swap buffer)、第１フィルター、及び第２フィルターを包含する。この第１フィルターは前もって該第１交換バッファーに保存された前段ピクセルデータを入力し、並びに現在正に処理を必要とするマクロブロックの未フィルターピクセルデータ(non-filtered pixel data)を入力し並びに後段ピクセルデータとなし、垂直方向のブロックノイズ除去過程を実行した後、前段のフィルター済ピクセルデータ(filtered pixel data)をこの適応性キューに出力し、並びに後段のフィルター済ピクセルデータを出力し、並びに該第１交換バッファーに保存する。該第２フィルターは前もって該第２交換バッファーに保存された前段ピクセルデータを入力し、並びにこの適応性キューの出力データを後段ピクセルデータとし、水平方向のブロックノイズ除去過程を実行した後、全ての出力の全段フィルター済ピクセルデータを該第２交換バッファーに保存する。
【００１５】
本発明は別の実施例において、一種のビデオ圧縮のためのデブロッキング方法を提供する。この方法は、前もって第１交換バッファーに保存された前段ピクセルデータを第１フィルターに入力し、並びに現在正に処理を必要とするマクロブロックの未フィルターピクセルデータ(non-filtered pixel data)を入力し並びに後段ピクセルデータとなし、垂直方向のブロックノイズ除去過程を実行した後、前段のフィルター済ピクセルデータ(filtered pixel data)をこの適応性キューに出力し、並びに後段のフィルター済ピクセルデータを出力し、並びに該第１交換バッファーに保存するステップと、第２フィルターに前もって該第２交換バッファーに保存された前段ピクセルデータを入力し、並びにこの適応性キューの出力データを後段ピクセルデータとし、水平方向のブロックノイズ除去過程を実行した後、全ての出力の全段フィルター済ピクセルデータを該第２交換バッファーに保存するステップを包含する。
【発明の効果】
【００１６】
本発明はビデオ圧縮のためのデブロッキング装置と方法を提供し、それは、マクロブロックの第１フィルター及び第２フィルターが必要とする一部データをバッファーし、並びにレジスタ(register)でバッファー機能を実現することにより、データ交換自由度(flexibility of data exchange)を増し、メモリアクセス回数を減らし、デブロッキングフィルターの性能とスループットを向上し、その内部バッファーのサイズを減らす。この第１フィルター及び第２フィルターはそれぞれ独立してビデオシーケンスの隣り合うマクロブロック間とマクロブロック内部の垂直方向と水平方向のデブロッキングフィルター処理を行う。
【図面の簡単な説明】
【００１７】
【図１Ａ】周知のループ外デブロッキングフィルターの説明図である。
【図１Ｂ】周知のループ内デブロッキングフィルターの説明図である。
【図２Ａ】周知の圧縮済ビデオシーケンスがインタレース式フレームピクチャーとフィールドピクチャーの組合せであることを説明する図である。
【図２Ｂ】周知のフレームピクチャー、トップフィールドピクチャー、及びボトムフィールドピクチャーの説明図である。
【図３】周知のマクロブロック形式の説明図である。
【図４】周知のマクロブロック適応性フレームフィールド(macroblock adaptive frame field,MBAFF)形式の説明図である。
【図５】周知の技術において垂直フィルターがデブロッキングフィルター処理したピクセルが入力にされ、さらに水平フィルターによりデブロッキングフィルター処理される説明図である。
【図６】周知のラインフィルターの入力データと出力データの説明図である。
【図７】周知の技術においてＭＢＡＦＦ形式を使用する時、現在のフレームマクロブロックに対し、デブロッキングフィルターが処理する必要のある近隣の上方のボトムフィールドブロックとの間のエッジ、及び、上方のトップフィールドマクロブロックとの間のエッジを説明する図である。
【図８】周知のデブロッキングフィルターの構造の実施例表示図である。
【図９】周知の高プットスルーのループ内デブロッキングフィルターの実施例表示図である。
【図１０】本発明のデブロッキング装置の実施例表示図である。
【図１１Ａ】本発明の実施例において、フィルターがピクセルデータをメモリに書き込む時、フィルター済ピクセルデータに対応するフラグを設定するのを説明する図である。
【図１１Ｂ】本発明の実施例において、フィルターがピクセルデータをメモリに書き込む時、フィルター済ピクセルデータに対応するフラグを設定するのを説明する図である。
【図１２Ａ】本発明の実施例において、４：２：０形式コーディングを使用したマクロブロックに対して、垂直方向のデブロッキングフィルター処理を行う時の、境界のピクセルデータのフィルター処理順序を示す。
【図１２Ｂ】本発明の実施例において、４：２：０形式コーディングを使用したマクロブロックに対して、水平方向のデブロッキングフィルター処理を行う時の、境界のピクセルデータのフィルター処理順序を示す。
【図１３Ａ】本発明の実施例において、４：２：２形式コーディングを使用したマクロブロックに対して、垂直方向のデブロッキングフィルター処理を行う時の、境界のピクセルデータのフィルター処理順序を示す。
【図１３Ｂ】本発明の実施例において、４：２：２形式コーディングを使用したマクロブロックに対して、水平方向のデブロッキングフィルター処理を行う時の、境界のピクセルデータのフィルター処理順序を示す。
【図１４Ａ】本発明の実施例において、４：４：４形式コーディングを使用したマクロブロックに対して、垂直方向のデブロッキングフィルター処理を行う時の、境界のピクセルデータのフィルター処理順序を示す。
【図１４Ｂ】本発明の実施例において、４：４：４形式コーディングを使用したマクロブロックに対して、水平方向のデブロッキングフィルター処理を行う時の、境界のピクセルデータのフィルター処理順序を示す。
【図１５Ａ】本発明の実施例において、４：２：０形式とＭＢＡＦＦ形式を使用したマクロブロックの特殊状況に対して、第２フィルターが水平方向にデブロッキングフィルター処理を行う時の、境界のピクセルデータのフィルター処理順序を示す。
【図１５Ｂ】本発明の実施例において、４：２：２形式とＭＢＡＦＦ形式を使用したマクロブロックの特殊状況に対して、第２フィルターが水平方向にデブロッキングフィルター処理を行う時の、境界のピクセルデータのフィルター処理順序を示す。
【図１５Ｃ】本発明の実施例において、４：４：４形式とＭＢＡＦＦ形式を使用したマクロブロックの特殊状況に対して、第２フィルターが水平方向にデブロッキングフィルター処理を行う時の、境界のピクセルデータのフィルター処理順序を示す。
【図１６】本発明の実施例における、適応性キューの構造の説明図である。
【図１７】本発明の実施例において、４：２：０形式を使用したマクロブロックに対して、第１フィルターと第２フィルターがデブロッキングフィルター処理を行う期間の、そのブロック境界のフィルター処理順序の説明図である。
【図１８】本発明の実施例において、４：２：０形式とＭＢＡＦＦ形式を使用したマクロブロックに対して、第１フィルターと第２フィルターがデブロッキングフィルター処理を行う期間の、そのブロック境界のフィルター処理順序の説明図である。
【図１９】本発明の実施例において、４：２：０形式を使用したマクロブロックに対して、デブロッキングフィルターが必要とするレジスタ群の説明図である。
【図２０】本発明の実施例において、４：２：２形式を使用したマクロブロックに対して、デブロッキングフィルターが必要とするレジスタ群の説明図である。
【図２１】本発明の実施例において、４：４：４形式を使用したマクロブロックに対して、デブロッキングフィルターが必要とするレジスタ群の説明図である。
【図２２】本発明の実施例において、いかにマクロブロックの一部データを使用してバッファーのサイズを減らすかを説明する図である。
【図２３】本発明の実施例において、いかにレジスタをシェアすることで、保存データをメモリと第２フィルターに同時に提供するかを説明する図である。
【図２４】本発明の実施例において、レジスタ群内での相互の間のデータ交換と変換の能力を説明する図である。
【図２５Ａ】本発明の実施例において、ＭＢＡＦＦ形式使用のマクロブロックに対して、その水平エッジのデブロッキングフィルター処理を行う時に、いかにレジスタを利用してデータ変換を行うかを説明する図である。
【図２５Ｂ】本発明の実施例において、ＭＢＡＦＦ形式使用のマクロブロックに対して、その水平エッジのデブロッキングフィルター処理を行う時に、いかにレジスタを利用してデータ変換を行うかを説明する図である。
【発明を実施するための形態】
【００１８】
図１０は本発明のデブロッキング装置の実施例図である。デブロッキング装置１０００はビデオシーケンスのマクロブロック間とマクロブロック内部の境界ブロックノイズを除去するのに用いられ、二つの隣り合うブロック間の垂直方向或いは水平方向の各一つの境界データは二つの部分に分割され、そのうち一部分は前段ピクセルデータと称され、｛ｐ３，ｐ２，ｐ１，ｐ０｝と記され、もう一方の部分は後段ピクセルデータと称され、｛ｑ０，ｑ１，ｑ２，ｑ３｝と記される。デブロッキング装置１０００は、適応性キュー１０３０、第１交換バッファー１０１２、第２交換バッファー１０２２、第１フィルター１０１０、第２フィルター１０２０を包含する。
【００１９】
第１フィルター１０１０と第２フィルター１０２０はそれぞれ独立して該ビデオシーケンスのマクロブロック間とマクロブロック内部の垂直方向と水平方向の境界データのデブロッキングフィルター処理を行う。第１フィルター１０１０は垂直方向のデブロッキングフィルター処理を行った後、一部のデータを出力して適応性キュー１０３０に書き込む。一旦適応性キュー１０３０内になんらかのデータが入力されると、第２フィルター１０２０はこのデータを読み出して入力データの一部分となし、水平方向のデブロッキングフィルター処理を開始する。
【００２０】
現在正に処理を必要とするマクロブロックの未フィルターピクセルデータはサンプルデコーダ(sample decoder)１０５２からのもので、並びに第１フィルター１０１０に入力される後段ピクセルデータ｛ｑ０，ｑ１，ｑ２，ｑ３｝とされる。第１フィルター１０１０に入力される前段ピクセルデータ｛ｐ３，ｐ２，ｐ１，ｐ０｝は前もって第１交換バッファー１０１２に保存されていたデータからのものである。第１フィルター１０１０は垂直方向のデブロッキングフィルター処理(vertical deblocking filtering)を行なった後に、後段のフィルター済ピクセルデータ｛ｑ’０，ｑ’１，ｑ’２，ｑ’３｝を出力し、第１交換バッファー１０１２に保存し、並びに前段のフィルター済ピクセルデータ｛ｐ’３，ｐ’２，ｐ’１，ｐ’０｝を出力し、適応性キュー１０３０により保存する。
【００２１】
第２フィルター１０２０に入力される前段ピクセルデータ｛ｐ３，ｐ２，ｐ１，ｐ０｝は、第２交換バッファー１０２２に前もって保存されていたデータである。第２フィルター１０２０に入力される後段ピクセルデータ｛ｑ０，ｑ１，ｑ２，ｑ３｝は適応性キュー１０３０からの出力データである。第２フィルター１０２０は水平方向のデブロッキングフィルター処理(horizontal deblocking filtering)を実行した後、全ての出力の全段フィルター済ピクセルデータ｛ｐ’３，ｐ’２，ｐ’１，ｐ’０，ｑ’０，ｑ’１，ｑ’２，ｑ’３｝を第２交換バッファー１０２２に保存する。
【００２２】
処理するマクロブロックがＭＢＡＦＦ形式である時、第２フィルター１０２０が出力するフィルター済ピクセルデータ｛ｐ’３，ｐ’２，ｐ’１，ｐ’０，ｑ’０，ｑ’１，ｑ’２，ｑ’３｝の一部分のデータは第２交換バッファー１０２２を介して第１交換バッファー１０１２に保存される。デブロッキング装置１０００はパラメータ計算器(parameter calculator)１０５４により関係パラメータ、例えば境界強度、或いはフラグ(flag)等を生成し、並びに第１フィルター１０１０と第２フィルター１０２０に提供し、デブロッキングフィルター処理を実行する際の入力パラメータとなす。
【００２３】
デブロッキング装置１０００は適応性メモリリーダー(adaptive memory reader)１０６２と適応性メモリライタ(adaptive memory writer)１０６４を包含する。第２交換バッファー１０２２の初期データは適応性メモリリーダー１０６２より提供され、適応性メモリリーダー１０６２はメモリ１０７０よりデータを読み取る。デブロッキングフィルター処理の実行期間に、第１交換バッファー１０１２と第２交換バッファー１０２２に保存されたデータは、適応性メモリライタ１０６４を介してメモリ１０７０に書き込まれる。メモリ１０７０はデブロッキング装置１０００の外部或いは内部のいずれに設置されてもよい。
【００２４】
例えば、水平エッジの現在正に処理を要するマクロブロック及びその上方に近接するマクロブロックを横跨ぎする境界をデブロッキングフィルター処理する時、第２交換バッファー１０２２の初期データは適応性メモリリーダー１０６２より提供され、適応性メモリリーダー１０６２はメモリ１０７０よりこの初期データを読み取る。メモリ１０７０よりこの初期データを読み取る回数はパラメータ計算器１０５４の生成する関係パラメータとフラグに関係する。例えば、境界強度が４に等しい時、メモリ１０７０より全体の４×４のブロックを読み取る。境界強度が１或いは２或いは３に等しいときは、メモリ１０７０より一つの４×３のブロックを読み取る。ＭＢＡＦＦ形式のマクロブロックを使用する特殊状況では、メモリ１０７０より一つの４×３のブロックを読み取る。もしその水平エッジがピクセルクロマコンポーネントに属すれば、メモリ１０７０より一つの４×２のブロックを読み取る。境界強度が０に等しいか或いはグローバルフラグ(global flag)が１（或いはＴｒｕｅ）に等しいとき、メモリ１０７０よりデータを読み取らない。
【００２５】
デブロッキングフィルターで垂直及び水平方向のデブロッキングフィルター処理を完成した後、第１交換バッファー１０１２と第２交換バッファー１０２２内のフィルター済ピクセルデータはメモリ１０７０に保存される。メモリ１０７０へのデータ書込み総回数とフラグは関係があり、このフラグは第１フィルター１０１０と第２フィルター１０２０より生成される。第１フィルター１０１０と第２フィルター１０２０が対応する垂直エッジと水平エッジのデブロッキングフィルター処理を行った後に、対応するフラグを生成してフィルター済ピクセルデータの数値がデブロッキングフィルター処理の前と違うか否かを代表し、異なっていれば、対応するフラグ設定は１（或いはＴｒｕｅ）とされ、異なっていなければ、０（或いはＦａｌｓｅ）と設定される。
【００２６】
例えば図１１Ａに示されるように、第１フィルター１０１０は垂直方向デブロッキングフィルター処理を完成した後、第１フィルター１０１０はブロック１１０２中の行０と行３中の一部ピクセルデータの数値を修正し、並びにフィルター済ピクセルデータの対応するフラグを設定し、例えばｆｌａｇ＝１となし、これにより未修正のピクセルデータ、例えばｆｌａｇ＝０と区別する。そのうち、行０のピクセルデータ中、標記ｐ’２，ｐ’１，ｐ’０，ｑ’０，ｑ’１，ｑ’２を有するもの、及び行３のピクセルデータ中の標記ｐ’１，ｐ’０，ｑ’０，ｑ’１を有するものは、いずれも数値が修正済であるフィルター済ピクセルデータを代表する。行１と行２のピクセルデータはメモリに未書込みであり、なぜならその対応するフラグはそのフィルター後の数値がフィルター前と同じであることを示し、ゆえに、メモリに書き込む必要がないためであり、これによりメモリ書込み回数を減らせる。同様に、図１１Ｂの例において、第２フィルター１０２０はブロック１１０３に対して水平方向デブロッキングフィルター処理完成後、行３のピクセルデータのみをメモリに書き込め、なぜなら第２フィルター１０２０の生成した対応フラグは行３のピクセルデータのみが第２フィルター１０２０により修正済であることを示しているからである。
【００２７】
以下に、Ｈ．２６４／ＡＶＣのピクセルクロマコンポーネントの三種類の形式、すなわち、４：２：０、４：２：２、及び４：４：４形式を例として、デブロッキングフィルター処理時の、ブロックのマクロブロックの水平方向と垂直方向の境界ピクセルのフィルターリング順序について説明する。図１２Ａと図１２Ｂの例は、それぞれ４：２：０形式を使用してコーディングしたマクロブロックに対して、垂直方向と水平方向のデブロッキングフィルター処理を行う時の、境界のピクセルデータのフィルター順序を示し、本発明のある実施例に一致する。図１２Ａ中、垂直境界のピクセルデータは図中の垂直エッジ０から垂直エッジ２３の順序（図中の点線横の数字により示す）で垂直方向デブロッキングフィルター処理を行う。そのうち、垂直エッジ０から１５は１６×１６ピクセルルーマコンポーネント３１０の垂直エッジであり、垂直エッジ１６から１９と垂直エッジ２０から２３は、それぞれ８×８ピクセルクロマコンポーネント３１２と３１４の垂直エッジである。図１２Ｂでは、水平エッジのピクセルデータは図中の水平エッジ０から水平エッジ２３の順序（図中の点線上の数字で示す）で水平方向デブロッキングフィルター処理を行ない、そのうち、水平エッジ０から１５は１６×１６ピクセルルーマコンポーネント３１０の水平エッジであり、水平エッジ１６から１９と水平エッジ２０から２３は、それぞれ８×８ピクセルクロマコンポーネント３１２と３１４の水平エッジである。
【００２８】
図１３Ａと図１３Ｂはそれぞれ４：２：２形式を使用してコーディングしたマクロブロックに対して、垂直方向と水平方向のデブロッキングフィルター処理を行う時の、境界のピクセルデータのフィルター順序を示し、本発明のある実施例に一致する。図１３Ａ中、垂直境界のピクセルデータは図中の垂直エッジ０から垂直エッジ３１の順序（図中の点線横の数字により示す）で垂直方向デブロッキングフィルター処理を行う。そのうち、垂直エッジ０から１５は１６×１６ピクセルルーマコンポーネント３１０の垂直エッジであり、垂直エッジ１６から２３と垂直エッジ２４から３１は、それぞれ１６×８ピクセルクロマコンポーネント３２２と３２４の垂直エッジである。図１３Ｂでは、水平エッジのピクセルデータは図中の水平エッジ０から水平エッジ３１の順序（図中の点線上の数字で示す）で水平方向デブロッキングフィルター処理を行ない、そのうち、水平エッジ０から１５は１６×１６ピクセルルーマコンポーネント３１０の水平エッジであり、水平エッジ１６から２３と水平エッジ２４から３１は、それぞれ１６×８ピクセルクロマコンポーネント３２２と３２４の水平エッジである。
【００２９】
図１４Ａと図１４Ｂはそれぞれ４：４：４形式を使用してコーディングしたマクロブロックに対して、垂直方向と水平方向のデブロッキングフィルター処理を行う時の、境界のピクセルデータのフィルター順序を示し、本発明のある実施例に一致する。図１４Ａ中、垂直境界のピクセルデータは図中の垂直エッジ０から垂直エッジ４７の順序（図中の点線横の数字により示す）で垂直方向デブロッキングフィルター処理を行う。そのうち、垂直エッジ０から１５は１６×１６ピクセルルーマコンポーネント３１０の垂直エッジであり、垂直エッジ１６から３１と垂直エッジ３２から４７は、それぞれ１６×１６ピクセルクロマコンポーネント３３２と３３４の垂直エッジである。図１４Ｂでは、水平エッジのピクセルデータは図中の水平エッジ０から水平エッジ４７の順序（図中の点線上の数字で示す）で水平方向デブロッキングフィルター処理を行ない、そのうち、水平エッジ０から１５は１６×１６ピクセルルーマコンポーネント３１０の水平エッジであり、水平エッジ１６から３１と水平エッジ３２から４７は、それぞれ１６×１６ピクセルクロマコンポーネント３３２と３３４の水平エッジである。
【００３０】
デブロッキングフィルター処理するマクロブロックがＭＢＡＦＦ形式の時、図１５Ａの例は４：２：０形式使用のマクロブロックの特殊な状況に対する、第２フィルター１０２０が水平方向デブロッキングフィルター処理を実行する時の、境界のピクセルデータのフィルター処理順序を示す。図１５Ａの例では、水平エッジのピクセルデータは、図中の以下の水平エッジの順序で垂直方向デブロッキングフィルター処理を行ない、すなわち、０→０’→１→１’→２→２’→３→３’の順に行った後、４から１５の順に行ない、その後、１６→１６’→１７→１７’→１８→１９→２０→２０’→２１→２１’→２２→２３の順で行う。そのうち、水平エッジ０から３は１６×１６ピクセルルーマコンポーネント１５１０と上方に近接するトップフィールドマクロブロックの境界の水平エッジ、水平エッジ０’から３’は１６×１６ピクセルルーマコンポーネント１５１０と上方に近接するボトムフィールドマクロブロックの境界の水平エッジであり、水平エッジ４から１５はピクセルルーマコンポーネント１５１０内部の水平エッジ、水平エッジ１６から１７は８×８ピクセルクロマコンポーネント１５１２と上方近接のトップフィールドマクロブロックの境界の水平エッジ、水平エッジ１６’から１７’は８×８ピクセルクロマコンポーネント１５１２と上方近接のボトムフィールドマクロブロックの境界の水平エッジであり、水平エッジ１８から１９はピクセルクロマコンポーネント１５１２内部の水平エッジであり、水平エッジ２０から２１は８×８ピクセルクロマコンポーネント１５１４と上方近接のトップフィールドマクロブロックの境界の水平エッジであり、水平エッジ２０’から２１’は８×８ピクセルクロマコンポーネント１５１４と上方近接のボトムフィールドマクロブロックの境界の水平エッジであり、水平エッジ２２から２３はピクセルクロマコンポーネント１５１４内部の水平エッジである。
【００３１】
図１５Ｂの例は４：２：２形式及びＭＢＡＦＦ形式使用のマクロブロックの特殊な状況に対して、第２フィルターが水平方向デブロッキングフィルター処理を実行する時の、境界のピクセルデータのフィルター処理順序を示す。図１５Ｂの例では、水平エッジのピクセルデータは、図中の以下の水平エッジの順序で垂直方向デブロッキングフィルター処理を行ない、すなわち、０→０’→１→１’→２→２’→３→３’の順に行った後、４から１５の順に行ない、その後、１６→１６’→１７→１７’→１８→１８’→１９→１９’→２０→２１→２２→２３の順で行い、その後、２４→２４’→２５→２５’→２６→２６’→２７→２７’→２８→２９→３０→３１の順序で行う。そのうち、水平エッジ１６から１９は１６×８ピクセルクロマコンポーネント１５２２と上方に近接するトップフィールドマクロブロックの境界の水平エッジ、水平エッジ１６’から１９’は１６×８ピクセルクロマコンポーネント１５２２と上方に近接するボトムフィールドマクロブロックの境界の水平エッジであり、水平エッジ２０から２３はピクセルクロマコンポーネント１５２２内部の水平エッジ、水平エッジ２４から２７は１６×８ピクセルクロマコンポーネント１５２４と上方近接のトップフィールドマクロブロックの境界の水平エッジ、水平エッジ２４’から２７’は１６×８ピクセルクロマコンポーネント１５２４と上方近接のボトムフィールドマクロブロックの境界の水平エッジであり、水平エッジ２８から３１はピクセルクロマコンポーネント１５２４内部の水平エッジである。
【００３２】
図１５Ｃの例は４：４：４形式及びＭＢＡＦＦ形式使用のマクロブロックの特殊な状況に対して、第２フィルターが水平方向デブロッキングフィルター処理を実行する時の、境界のピクセルデータのフィルター処理順序を示す。図１５Ｃの例では、水平エッジのピクセルデータは、図中の以下の水平エッジの順序で垂直方向デブロッキングフィルター処理を行ない、すなわち、０→０’→１→１’→２→２’→３→３’の順に行った後、４から１５の順に行ない、その後、１６→１６’→１７→１７’→１８→１８’→１９→１９’、その後、２０から３１、さらに、３２→３２’→３３→３３’→３４→３４’→３５→３５’、その後、３６から４７の順序で行う。そのうち、水平エッジ１６から１９は１６×１６ピクセルクロマコンポーネント１５３２と上方に近接するトップフィールドマクロブロックの境界の水平エッジ、水平エッジ１６’から１９’は１６×１６ピクセルクロマコンポーネント１５３２と上方に近接するボトムフィールドマクロブロックの境界の水平エッジであり、水平エッジ２０から３１はピクセルクロマコンポーネント１５３２内部の水平エッジである。水平エッジ３２から３５は１６×１６ピクセルクロマコンポーネント１５３４と上方近接のトップフィールドマクロブロックの境界の水平エッジ、水平エッジ３２’から３５’は１６×８ピクセルクロマコンポーネント１５３４と上方近接のボトムフィールドマクロブロックの境界の水平エッジであり、水平エッジ３６から４７はピクセルクロマコンポーネント１５３４内部の水平エッジである。
【００３３】
前述したように、第１フィルター１０１０が垂直方向のデブロッキングフィルター処理を実行した後に出力する一部データは適応性キュー１０３０に書き込まれる。一旦適応性キュー１０３０内にデータが書き込まれると、水平方向のデブロッキングフィルター処理が開始される。
【００３４】
図１６は、適応性キュー１０３０の構造を説明し、それはある実施例に一致する。図１６の例中、適応性キュー１０３０の受信データは第１フィルター１０１０が出力する一部データ１６１０であり、その後、これらのデータはキュー方式で暫時内部バッファー内に保存され、適応性キュー１０３０の出力データは第２フィルター１０２０の入力データの一部とされる。ＭＢＡＦＦ形式のマクロブロックを使用する特殊な状況では、適応性キュー１０３０はデータをまずフレーム形式(frame format)、例えばフレーム形式データ１６２０から、第２フィルター１０２０が必要とするフィールド形式(field format)データ、例えばフィールド形式データ１６３２或いはフィールド形式データ１６３４に変換し、その後、それを第２フィルター１０２０に出力する。
【００３５】
すなわち、この実施例は、適応性キュー１０３０を介して、第１フィルター１０１０が出力した一部データを受け取り、並びにキュー方式で少なくとも一つの内部バッファー内に暫時保存し、適応性キュー１０３０を介して、まずデータをマクロブロックが使用する形式から第２フィルター１０２０が必要とする形式のデータに変換した後、それを第２フィルター１０２０に出力する。その後、適応性キュー１０３０の出力データを第２フィルター１０２０の入力データの一部分となす。
【００３６】
垂直と水平方向の境界データは、同時に第１フィルター１０１０と第２フィルター１０２０によりデブロッキングフィルター処理され得る。ゆえに、適応性キュー１０３０はこの二つのフィルター間にあって、データの出し入れをバッファーする。並びに、ＭＢＡＦＦ形式を使用したマクロブロックに対しては、適応性キュー１０３０はフレームブロック(frame block)を受け取り並びにフィールドブロック(field block)を出力し、トランスポジション(transposition)とフレーム／フィールド変換(frame-field conversion)で発生する遅延時間(latency)を減らす。
【００３７】
図１７Ａから図１７Ｈは４：２：０形式を使用したマクロブロックに対する、第１フィルター１０１０と第２フィルター１０２０のデブロッキングフィルター処理期間の、ブロック境界のフィルター処理順序を示し、本発明のある実施例と一致する。図１７Ａから図１７Ｈのステップに示されるように、第１フィルター１０１０は垂直エッジ０から垂直エッジ７（図中、ｖ０からｖ７で表示される）に対してそれぞれデブロッキングフィルター処理を行う。第１フィルター１０１０は垂直エッジ１（ｖ１）の処理を完了した後、一部のデータを出力して適応性キュー１０３０に書込み、第２フィルター１０２０がこのデータを読み出して入力データの一部とし、水平エッジ０から水平エッジ５（図中ではｈ０からｈ５で表示される）に対するデブロッキングフィルター処理を開始する。図１７Ｃのステップでは、第２フィルター１０２０が水平エッジ０（ｈ０）を処理している時、第１フィルター１０１０が垂直エッジ２（ｖ２）を処理し、さらに、図１７Ｄのステップでは、第２フィルター１０２０が水平エッジ１（ｈ１）を処理している時、第１フィルター１０１０が垂直エッジ３（ｖ３）を処理し、すなわち、本実施例では第１フィルター１０１０と第２フィルター１０２０はそれぞれ独立してデブロッキングフィルター処理を実行することで、デブロッキングフィルターの性能とプットスルーを向上している。
【００３８】
図１８Ａから図１８Ｈは４：２：０形式及びＭＢＡＦＦ形式を使用したマクロブロックに対する、第１フィルター１０１０と第２フィルター１０２０のデブロッキングフィルター処理期間の、ブロック境界のフィルター処理順序を示し、本発明のある実施例と一致する。図１８Ａから図１８Ｈのステップに示されるように、第１フィルター１０１０は垂直エッジ０から垂直エッジ７（図中、ｖ０からｖ７で表示される）に対してそれぞれデブロッキングフィルター処理を行う。第１フィルター１０１０は垂直エッジ５（ｖ５）の処理を完了した後、一部のデータを出力して適応性キュー１０３０に書込み、適応性キュー１０３０はまずフレーム形式データを第２フィルター１０２０の入力データが必要とするフィールド形式データに変換し、これにより第２フィルター１０２０がこのフィールド形式データを読み出して入力データの一部とし、水平エッジ０と水平エッジ０’（図中ではｈ０とｈ０’で表示される）に対するデブロッキングフィルター処理を開始する。図１８Ｇのステップでは、第２フィルター１０２０が水平エッジ０（ｈ０）を処理している時、第１フィルター１０１０が垂直エッジ７（ｖ７）を処理し、すなわち、ＭＢＡＦＦ形式使用のマクロブロックに対しては、本実施例でも、第１フィルター１０１０と第２フィルター１０２０がそれぞれ独立してデブロッキングフィルター処理を実行し、これによりデブロッキングフィルターの性能とプットスルーを向上している。
【００３９】
デブロッキングフィルター処理期間に、既存の周知の技術は、全体のマクロブロックのデータをバッファーするが、本発明の実施例では、マクロブロックの一部データをバッファー(buffering)し、これらのバッファーされた一部データは第１フィルター１０１０と第２フィルター１０２０が必要とするデータであり、並びにレジスタを採用してバッファーの効果を達成し、これによりデータ交換(data exchange)の自由度を増し、さらにＭＢＡＦＦ形式を使用したマクロブロックに、より適合する。図１９の実施例は、４：２：０形式を使用したマクロブロックに対して、全部で３２個のレジスタを使用し、この３２個のレジスタは、Ｖ０からＶ７、ＶＸ０からＶＸ７、Ｈ０からＨ７、及び、ＨＸ０からＨＸ７と表示される。レジスタ群(register group)ＶＲＥＧはレジスタＶ０からＶ７が共同で構成する。レジスタ群ＶＲＥＧ ＥＸＴはレジスタＶＸ０からＶＸ７が共同で構成する。レジスタ群ＨＲＥＧはレジスタＨ０からＨ７が共同で構成し、レジスタ群ＨＲＥＧ ＥＸＴはレジスタＨＸ０からＨＸ７が共同で構成する。
【００４０】
第１交換バッファー１０１２はレジスタ群ＶＲＥＧ及びレジスタ群ＶＲＥＧ ＥＸＴで構成され、第１フィルター１０１０が必要とするデータを保存するのに用いられる。第２交換バッファー１０２２はレジスタ群ＨＲＥＧ及びレジスタ群ＨＲＥＧ ＥＸＴで構成され、第２フィルター１０２０が必要とするデータを保存するのに用いられる。レジスタ群中のレジスタの数量は、実施例により異なり得る。すなわち、本実施例では、バッファーを利用してマクロブロックの第１フィルター１０１０と第２フィルター１０２０が必要とする一部データを保存し、並びに複数のレジスタ群によりバッファー機能を実現してデータ交換の自由度を増す。図１９から図２１の実施例は、それぞれ三種類の形式のマクロブロックに対する、デブロッキングフィルターが必要とするレジスタ群を示し、本発明のある実施例に一致する。そのうち、マクロブロック中の各ブロック上の符号数字はブロックコードを代表し、例えば＃５はブロック５を代表する。
【００４１】
４：２：０形式を使用したマクロブロックに対しては、図１９に示されるように、レジスタＶ０からＶ３、ＶＸ０からＶＸ３、Ｈ０からＨ３、及び、ＨＸ０からＨＸ３によりピクセルルーマコンポーネント３１０のデータを保存し、そのうち各レジスタのサイズは３２ビット×４である。レジスタＶ４からＶ７、ＶＸ４からＶＸ７、Ｈ４からＨ７、及び、ＨＸ４からＨＸ７によりピクセルクロマコンポーネント３１２と３１４のデータを保存する。そのうち、レジスタＶ４からＶ５、ＶＸ４からＶＸ５、Ｈ４からＨ５、及び、ＨＸ４からＨＸ５によりピクセルクロマコンポーネント３１２のデータを保存し、そのうち各レジスタのサイズは３２ビット×２であり、レジスタＶ６からＶ７、ＶＸ６からＶＸ７、Ｈ６からＨ７、及び、ＨＸ６からＨＸ７によりピクセルクロマコンポーネント３１４のデータを保存し、そのうち各レジスタのサイズは３２ビット×２である。
【００４２】
４：２：２形式を使用したマクロブロックに対しては、図２０に示されるように、合計４０個のレジスタを使用し、これら４０個のレジスタはＶ０からＶ７、ＶＸ０からＶＸ７、Ｈ０からＨ１１、及び、ＨＸ０からＨＸ１１と表示される。それと４：２：０形式を使用したマクロブロックとの違いは、レジスタ群ＨＲＥＧがＨ０からＨ１１により構成され、レジスタ群ＨＲＥＧ ＥＸＴがレジスタＨＸ０からＨＸ１１により構成されていることである。レジスタＶ４からＶ７、ＶＸ４からＶＸ７、Ｈ４からＨ１１、及び、ＨＸ４からＨＸ１１によりピクセルクロマコンポーネント３２２と３２４のデータを保存する。そのうち、レジスタＶ４からＶ５、ＶＸ４からＶＸ５、Ｈ４からＨ７、及び、ＨＸ４からＨＸ７によりピクセルクロマコンポーネント３２２のデータを保存し、そのうち各レジスタのサイズは３２ビット×２であり、レジスタＶ６からＶ７、ＶＸ６からＶＸ７、Ｈ８からＨ１１、及び、ＨＸ８からＨＸ１１によりピクセルクロマコンポーネント３２４のデータを保存し、そのうち各レジスタのサイズは３２ビット×２である。
【００４３】
４：４：４形式を使用したマクロブロックに対しては、図２１に示されるように、合計４８個のレジスタを使用し、これら４８個のレジスタはＶ０からＶ１１、ＶＸ０からＶＸ１１、Ｈ０からＨ１１、及び、ＨＸ０からＨＸ１１と表示される。それと４：２：２形式を使用したマクロブロックとの違いは、レジスタ群ＶＲＥＧがＶ０からＶ１１により構成され、レジスタ群ＶＲＥＧ ＥＸＴがレジスタＶＸ０からＶＸ１１により構成されていることである。レジスタＶ４からＶ１１、ＶＸ４からＶＸ１１、Ｈ４からＨ１１、及び、ＨＸ４からＨＸ１１によりピクセルクロマコンポーネント３３２と３３４のデータを保存する。そのうち、レジスタＶ４からＶ７、ＶＸ４からＶＸ７、Ｈ４からＨ７、及び、ＨＸ４からＨＸ７によりピクセルクロマコンポーネント３３２のデータを保存し、そのうち各レジスタのサイズは３２ビット×２であり、レジスタＶ８からＶ１１、ＶＸ８からＶＸ１１、Ｈ８からＨ１１、及び、ＨＸ８からＨＸ１１によりピクセルクロマコンポーネント３３４のデータを保存し、そのうち各レジスタのサイズは３２ビット×２である。
【００４４】
以上を受け、図１７のブロック境界のフィルター処理順序及び図１９の４：２：０形式を使用したレジスタ群の例を以て、図２２はどのようにマクロブロックの一部データを再使用(re-use)することでバッファーサイズを減らすかを説明し、これは本発明のある実施例と一致する。図２２を参照されたい。レジスタＶ０を例とすると、第１フィルター１０１０が垂直エッジ０を処理した後、その出力データ｛ｑ’０，ｑ’１，ｑ’２，ｑ’３｝はレジスタＶ０に保存されて第１フィルター１０１０が垂直エッジ１を処理するのに必要な前段入力データ｛ｐ３，ｐ２，ｐ１，ｐ０｝とされる。すなわち、同一レジスタを使用して現在のエッジのフィルター済データ(filtered data of current edge)を保存し、次のエッジを処理するための一部入力データとなす。ゆえに、垂直エッジ１、２、３を処理する時、レジスタＶ０のデータは第１フィルター１０１０の前段入力データ｛ｐ３，ｐ２，ｐ１，ｐ０｝であり、再使用可能とされ、こうして、バッファー内のデータ量を減らすことができる。その出力データ｛ｐ’３，ｐ’２，ｐ’１，ｐ’０｝は適応性キュー１０３０に書き込まれる。
【００４５】
図２３の実施例は、いかにバッファーをシェアして、保存データをメモリと第２フィルター１０２０に同時に提供するかを説明し、本発明のある実施例と一致する。図２３を参照されたい。第２フィルター１０２０が任意の水平エッジを処理する前に、レジスタＨ０からＨ７とＨＸ０からＨＸ７が、適応性メモリリーダー１０６２がメモリ１０７０より読み取ったデータを保存するのに用いられる。これらのレジスタＨ０からＨ７とＨＸ０からＨＸ７に保存されたデータは、第２フィルター１０２０の前段入力データ｛ｐ３，ｐ２，ｐ１，ｐ０｝として用いられる。第２フィルター１０２０の後段入力データ｛ｑ０，ｑ１，ｑ２，ｑ３｝は適応性キュー１０３０より入力される。
【００４６】
図１７のブロック境界のフィルター処理順序の記述を受け、レジスタＨ０を例とすると、第２フィルター１０２０は水平エッジ０を処理した後、その出力データ｛ｐ’３，ｐ’２，ｐ’１，ｐ’０｝はレジスタＨＸ０に保存され、出力データ｛ｑ’０，ｑ’１，ｑ’２，ｑ’３｝はレジスタＨ０に保存されて、第２フィルター１０２０が水平エッジ４を処理するのに必要な前段入力データ｛ｐ３，ｐ２，ｐ１，ｐ０｝とされる。ゆえに、水平エッジ４、８、１２を処理する時、レジスタＨ０に存在するデータは再使用され得て、これによりバッファー内のデータ量を減らせる。第２フィルター１０２０が水平エッジ１２の処理を完成した後、現在エッジのフィルター済データ(filtered data of current edge)はレジスタＨ０とＨＸ０内にすでに保存されているため、レジスタＨ０とＨＸ０は適応性メモリライタ１０６４の一時バッファー(temporary buffer)として使用され得る。言い換えると、レジスタＨ０とＨＸ０をシェアして、メモリ１０７０より読み取ったデータを保存すると共に、フィルター済データを保存し、並びに適応性メモリライタ１０６４を介してメモリ１０７０に書き込むことができる。
【００４７】
図２４は前述のレジスタ群内で相互間のデータ交換(swap)と変換(convert) の能力を具備することを説明し、本発明のある実施例と一致する。図２４を参照されたい。レジスタＶ０−Ｖ３とＶＸ０−ＶＸ３はマクロブロック対２４１０のピクセルデータを包含し、マクロブロック対２４１０は現在正に処理されようとしているマクロブロック対２４１２の左側に位置する。マクロブロック対２４１２がフィールド形式を使用している時、レジスタＶ０−Ｖ３とＶＸ０−ＶＸ３に保存されたデータは、フレーム形式よりフィールド形式に変換される。ゆえに、レジスタＶ０−Ｖ３とＶＸ０−ＶＸ３に保存されたデータは、それぞれトップフィールド部(top-field portion)２４２２とボトムフィールド部(bottom-field portion)２４２４とされる。
【００４８】
現在のマクロブロックがトップフィールドマクロブロックであれば、レジスタＶ０−Ｖ３に保存されたデータは第１フィルター１０１０により使用され得る。現在のマクロブロックがボトムフィールドマクロブロックであれば、レジスタＶ０−Ｖ３に保存されたデータとＶＸ０−ＶＸ３に保存されたデータは先ず相互に交換２４３０された後、レジスタＶ０−Ｖ３に保存されたデータがさらに第１フィルター１０１０により使用される。第１フィルター１０１０によりマクロブロック境界(macroblock boundary)の垂直エッジの処理が完了した後、レジスタＶ０−Ｖ３に保存されたデータとレジスタＶＸ０−ＶＸ３に保存されたデータは、フィールド形式よりフレーム形式に変換される。このデータ交換と形式変換は一つのクロック周期(clock cycle)内に実行され、形式変換により引き起こされるデータ変換の遅延(latency)を減らすことができる。
【００４９】
図２５Ａと図２５Ｂは、ＭＢＡＦＦ形式を使用したマクロブロックに対し、その水平エッジのデブロッキングフィルター処理を行う時に、どのようにレジスタ群を利用してデータ変換を行うかを説明し、本発明のある実施例と一致する。図２５Ａを参照されたい。レジスタＨ０−Ｈ３とＨＸ０−ＨＸ３は、トップマクロブロック対２５１０のピクセルデータを包含し、トップマクロブロック対２５１０は正に処理される現在のマクロブロック対２５１２の上方に位置する。符号２５３０に示されるように、マクロブロック対２５１２がフレーム形式を使用し、その上方の近隣のマクロブロック対２５１０がフィールド形式を使用している時は、レジスタＨ０−Ｈ３（すなわちレジスタ群ＨＲＥＧ）とＨＸ０−ＨＸ３（すなわちレジスタ群ＨＲＥＧ ＥＸＴ）に保存されたデータは、フレーム形式よりフィールド形式に変換される。ゆえに、レジスタＨ０−Ｈ３とＨＸ０−ＨＸ３に保存されたデータは、それぞれトップフィールド部(top-field portion)２５２２とボトムフィールド部(bottom-field portion)２５２４に分けられ、並びにそれぞれ第２フィルター１０２０が水平エッジ０、１、２、３及び水平エッジ０’、１’、２’、３’の処理を完了する時の入力データとされる。
【００５０】
図２５Ｂに示されるように、第２フィルター１０２０がこの水平エッジの処理を終えた後、レジスタＨ０−Ｈ３とＨＸ０−ＨＸ３に保存されたデータ（トップフィールド部２５２２ とボトムフィールド部２５２４）はフィールド形式からフレーム形式データ２５３２と２５３４に変換される。フレーム形式に変換されたデータはその後、第２フィルター１０２０が現在処理中のマクロブロックのその他の水平エッジ、例えば水平エッジ４、５、６、７の入力データとされる。
【００５１】
総合すると、本発明の実施例が提供するビデオ圧縮のためのデブロッキング装置と方法は、バッファーを利用してマクロブロックの二つのフィルターが必要とする一部データを保存し、並びにレジスタ群でバッファー機能を実現することで、データ交換の自由度を増す。このデブロッキング装置中の二つのフィルターは、それぞれ独立してビデオシーケンスの隣り合うマクロブロック間とマクロブロック内部の垂直方向と水平方向のデブロッキングフィルター処理を実行する。この実施例はメモリアクセス回数を減らし、デブロッキング装置の性能とプットスルーを向上し、その内部バッファーのサイズを減らす。
【００５２】
以上の説明は本発明の実施例に係るものであり、本発明の実施の範囲はそれに限定されるわけではない。すなわち、本発明の特許請求の範囲の記載に基づきなし得る均等の変化及び修飾は、いずれも本発明のカバーする範疇に属する。
【符号の説明】
【００５３】
２００  圧縮済ビデオシーケンス              ２１０  フレームピクチャー
２２０  フィールドピクチャー                  ２３０  フレームピクチャー
２３２  トップフィールドピクチャー            ２３４  ボトムフィールドピクチャー３００  フレームピクチャー                    ３０２  マクロブロック
３１０  １６×１６ピクセルルーマコンポーネント
３１２、３１４  ４：２：０形式のピクセルクロマコンポーネント
３２２、３２４  ４：２：２形式のピクセルクロマコンポーネント
３３２、３３４  ４：４：４形式のピクセルクロマコンポーネント
４００  フレームピクチャー
４１０  フレームマクロブロック対          ４２０  フィールドマクロブロック対
４２２  トップフィールドマクロブロック
４２４  ボトムフィールドマクロブロック
５１０  垂直エッジ                        ５２０  水平エッジ
７０５  現在のフレームマクロブロック
７１０  上方のトップフィールドマクロブロック
７２０  上方のボトムフィールドマクロブロック
８０１  デブロッキングフィルター            ８０２  処理ユニット
８０３  再配置ユニット                    ８０４  現在のマクロブロック
８１２  エッジ
９１０  デブロッキングフィルター            ９１２  ラインフィルター
９２０  メモリ
１０００  デブロッキング装置
１０１０  第１フィルター                    １０２０  第２フィルター
１０１２  第１交換バッファー                １０２２  第２交換バッファー
１０３０  適応性キュー                    １０５２  サンプルデコーダ
１０５４  パラメータ計算器                １０６２  適応性メモリリーダー
１０６４  適応性メモリライタ              １０７０  メモリ
１１０２  ブロック
１５１０  ピクセルルーマコンポーネント
１５１２、１５１４  ８×８ピクセルクロマコンポーネント
１５２２、１５２４  １６×８ピクセルクロマコンポーネント
１５３２、１５３４  １６×１６ピクセルクロマコンポーネント
１６１０  第１フィルターが出力する一部データ
１６２０  フレーム形式データ
１６３２、１６３４  フィールド形式データ
２４１０  マクロブロック対
２４１２  フィールド形式を使用したマクロブロック対
２４２２  トップフィールド部              ２４２４  ボトムフィールド部
２４３０  交換
２５１０  上方のマクロブロック対
２５１２  フレーム形式を使用したマクロブロック対
２５２２  トップフィールド部              ２５２４  ボトムフィールド部
【図１Ａ】
2011097556.tif 000003
【図１Ｂ】
2011097556.tif 000004
【図２Ａ】
2011097556.tif 000005
【図２Ｂ】
2011097556.tif 000006
【図３】
2011097556.tif 000007
【図４】
2011097556.tif 000008
【図５】
2011097556.tif 000009
【図６】
2011097556.tif 000010
【図７】
2011097556.tif 000011
【図８】
2011097556.tif 000012
【図９】
2011097556.tif 000013
【図１０】
2011097556.tif 000014
【図１１Ａ】
2011097556.tif 000015
【図１１Ｂ】
2011097556.tif 000016
【図１２Ａ】
2011097556.tif 000017
【図１２Ｂ】
2011097556.tif 000018
【図１３Ａ】
2011097556.tif 000019
【図１３Ｂ】
2011097556.tif 000020
【図１４Ａ】
2011097556.tif 000021
【図１４Ｂ】
2011097556.tif 000022
【図１５Ａ】
2011097556.tif 000023
【図１５Ｂ】
2011097556.tif 000024
【図１５Ｃ】
2011097556.tif 000025
【図１６】
2011097556.tif 000026
【図１７】
2011097556.tif 000027
【図１８】
2011097556.tif 000028
【図１９】
2011097556.tif 000029
【図２０】
2011097556.tif 000030
【図２１】
2011097556.tif 000031
【図２２】
2011097556.tif 000032
【図２３】
2011097556.tif 000033
【図２４】
2011097556.tif 000034
【図２５Ａ】
2011097556.tif 000035
【図２５Ｂ】
2011097556.tif 000036