JP3757116B2 - デブロッキングフィルタ演算装置及びデブロッキングフィルタ演算方法 - Google Patents
デブロッキングフィルタ演算装置及びデブロッキングフィルタ演算方法 Download PDFInfo
- Publication number
- JP3757116B2 JP3757116B2 JP2000588976A JP2000588976A JP3757116B2 JP 3757116 B2 JP3757116 B2 JP 3757116B2 JP 2000588976 A JP2000588976 A JP 2000588976A JP 2000588976 A JP2000588976 A JP 2000588976A JP 3757116 B2 JP3757116 B2 JP 3757116B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel data
- calculation
- output
- cycle
- cnt
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/527—Global motion vector estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
技術分野
本発明は、画像信号処理等で用いられる復元画素データのポスト処理の1つであるブロックノイズ除去のためのデブロッキングフィルタ演算装置及びデブロッキングフィルタ演算方法に関し、MPEG4で規格化されているデブロッキングフィルタ演算のDCオフセットモードにおける演算を実行するデブロッキングフィルタ演算装置及びデブロッキングフィルタ演算方法に関するものである。
【0002】
背景技術
動画像データを帯域圧縮技術を用いて符号化及び復号化する方式として、ISO−IEC/JTCI/SC2/WG11にて議論され標準化されたMPEG(Moving Picture Coding Experts Group)方式がある。これらMPEG方式は、画面内の相関を利用し、画面内を複数画素から構成されるブロックに分割し、このブロック内データを直交変換方式の1つである離散コサイン変換を行い、量子化、ハフマン符号化を行う処理を施し、画像データの圧縮を実現することを基本としている。これらの処理を施した画素は、逆の処理を行っても元の画素を忠実に再現できず、その結果2つの隣り合うブロックの境界部分の画素は異なった値を持つことになる。そして、これによりブロックノイズが発生する。
【0003】
MPEG4ではこの対策としてデブロッキングフィルタが規定されている。このフィルタは、ブロック境界を中心とした1次元のウインドウを例えば図4のようにとる場合に2種類の動作モードから構成される。図4において、g(n)(nは0から9までの整数)はブロック境界を中心として互いに隣接する10個の画素の画素データを示している。そして、このフィルタは、ブロック境界近傍画素のアクティビティーによりそれらの動作モードを適応的スイッチする。動作モードのスイッチには次の評価関数を用いる。
【0004】
なお、Thはしきい値を示す。そして、評価関数を用いて動作モードは次のようにスイッチされる。
【0005】
ここで示されるDCオフセットモードは、ブロック境界の画素データの変化が穏やかな場合の動作モードであり、デフォルトモードは変化が激しい場合の動作モードであり、DCオフセットモードに関しては以下に示すフィルタが定義されている。
【0006】
coef(1)=1;
coef(2)=1;
coef(3)=2;
coef(4)=2;
coef(5)=4;
coef(6)=2;
coef(7)=2;
coef(8)=1;
coef(9)=1;
【0007】
そして、次のようなフィルタリング処理を行い、処理画素g'(m)(m=1,2,3,4,5,6,7,8)を得る。
【0008】
なお、QPはg(5)の画素値が属するマクロブロックの量子化パラメータである。また、min_padding及びmax_paddingは、上記の式で定義されるように、第1の画素データg(1)及び第8の画素データg(8)とこれらの画素データの外側に隣接する画素データg(0)及びg(9)とからそれぞれ求められた値である。このフィルタリングは全ての水平エッジに沿って行い、次に垂直エッジに沿って行う。このフィルタリングにおいて
をプロセッサー内の汎用演算器でソフトウエア的に実行すると図3に示すフローとなる。
【0009】
以下、図3に示すフローについて説明する。スタート命令によりまず演算処理する8つの画素g(m)のうちの一つのmの値のセットを行う(ステップS1)。次に、iの値をセットする(ステップS2)iの初期値としては、i=−4とする。次にiが5であるかどうかを比較し(ステップS3)、5でなければmとiを加算する(ステップS4)。そしてステップS5によりm+iが1よりも小さい場合はmin_paddingデータをメモリにライトし、iに1を加算する(ステップS6)。また、m+iが1以上の場合は、ステップS7によりm+iと8を比較し、8よりも大きい場合はmax_paddingデータをメモリにライトし、iに1を加算する(ステップS8)。また、m+iが8以下の場合は、g(m+i)データをメモリにライトし、iに1を加算する(ステップS9)。1つのmの値に対しては、これらの動作をiが−4〜4に変化するまで計9回繰り返し、iが5の時に今までメモリへライトした9つのデータに対しその積和を行い(ステップS10)、結果をステップS11により4ビットシフトすることで、フィルタリング処理した1つの結果,即ちフィルタリング処理した画素データを出力する。
【0010】
しかしながら、従来の汎用演算器によるフィルタリング処理においては、1つのmの値に対し、iを−4〜4の計9回繰り返し1つの結果を出力する。この1つの結果を出力するには最大で67サイクル必要である。またmの値は1〜8の計8個あるため67サイクル×8の536サイクル必要となり、演算サイクル数が増加して処理が遅くなるという問題があった。
本発明は上記のような問題点を解決するためになされたものであり、演算サイクルの少ないデブロッキングフィルタ演算装置を提供することを目的とする。
【0011】
発明の開示
本発明に係るデブロッキングフィルタ演算装置は、ブロック境界周辺の互いに隣接する第1ないし第8の画素データに対し、ブロックノイズ除去のためのフィルタリング処理演算を行うデブロッキングフィルタ演算装置において、上記第1ないし第8の画素データのうちの各一対を入力とし、該各一対の入力データ、上記第1及び第8の画素データとこれらの画素データの外側に隣接する画素データと量子化パラメータの値とを比較して求めた2つの値、または丸めなしを示す任意の値のうちのいずれか1つを、それぞれ選択する第1、及び第2の選択回路と、累算するための演算結果、または丸めを行うための任意の値を選択する第3の選択回路と、上記第1、及び第2の選択回路の出力を入力とし、それぞれを上記フィルタリング処理演算のサイクルに応じてシフトさせる第1、第2のシフタと、上記第1のシフタの出力、上記第2のシフタの出力、および上記第3の選択回路の出力を加算する加算器と、上記加算器の出力を入力とし、該加算器の出力を上記累算するための演算結果として上記第3の選択回路へ出力するレジスタと、上記レジスタの出力を入力とし、該レジスタの出力を上記フィルタリング処理演算のサイクルに応じてシフトさせ、演算結果として上記第3の選択回路に出力する第3のシフタとを、それぞれ有する、上記第1ないし第8の画素データに対応して並列に設けられた第1ないし第8の演算ブロックと、上記第1ないし第8の演算ブロックからの出力を選択して出力する出力選択回路と、上記演算ブロックのうちの、第1及び第2の演算ブロック、第3及び第4の演算ブロック、第5及び第6の演算ブロック、並びに第7及び第8の演算ブロックでそれぞれ構成される演算ブロックの組の、各組内におけるそれぞれのフィルタリング処理が終了するまでの処理演算のサイクルが同じとなり、かつ各組間において、それぞれの組のフィルタリング処理が順次連続して終了するように、上記処理演算のサイクルに応じて、上記各演算ブロックの処理演算を制御するとともに、上記出力選択回路を制御して上記演算ブロックからの出力を上記演算ブロックの組単位で選択してパイプライン出力させる制御回路とを備えている。これにより、各演算ブロックによる演算の処理サイクルを削減できるとともに、演算ブロックの各組の演算結果をパイプライン出力することができ、演算処理のサイクルの削減を図ることができる。
【0013】
また、本発明に係るデブロッキングフィルタ演算方法は、ブロック境界周辺の連続する第1ないし第8の画素データに対し、ブロックノイズ除去のためのフィルタリング処理演算を行うデブロッキングフィルタ演算方法において、上記第1ないし第8の画素データの各一対を入力とし、該各一対の入力データ、上記第1及び第8の画素データとこれらの画素データの外側に隣接する画素データと量子化パラメータの値とを比較して求めた2つの値、または丸めなしを示す任意の値のうちのいずれか1つを、それぞれ選択し、上フィルタリング記処理演算のサイクルに応じてシフトさせる第1、第2の処理と、累算するための演算結果、または丸めを行うための任意の値を選択する第3の処理と、上記第1、第2、及び第3の処理で得られた値を加算する第4の処理と、上記第4の処理で得られた加算値を上記累算するための演算結果とするとともに、該加算値を、上記フィルタリング処理演算のサイクルに応じてシフトさせる第5の処理とを、含み、上記第1ないし第8の画素データに対応するフィルタリング処理演算を、上記画素データのうちの、第1及び第2の画素データ、第3及び第4の画素データ、第5及び第6の画素データ、並びに第7及び第8の画素データのそれぞれの組の、各組の画素データに対するフィルタリング処理演算が終了するまでの処理演算のサイクルが同じとなり、かつ各組間において、それぞれの組の画素データに対するフィルタリング処理が順次連続して終了するように、並列に実行するステップと、該ステップにより得られたフィルタリング処理済みの画素データを、上記画素データのそれぞれの組毎に順次連続してパイプライン出力させるステップとを備えている。これにより、各演算ブロックによる演算の処理サイクルを削減できるとともに、演算ブロックの各組の演算結果をパイプライン出力することができ、演算処理のサイクルの削減を図ることができる。
【0014】
発明を実施するための最良の形態
図1は、本発明の実施の形態に係るデブロッキングフィルタ演算装置の構造を示すブロック図であり、本実施の形態に係るデブロッキングフィルタ演算装置は、デブロッキングフィルタ演算のうちの一部である、
という演算を行うものである。図において、制御回路1は0から7までの処理サイクルのカウントを行い、そのカウント値を、フィルタリングの対象となる第1ないし第8の画素m(mは1から8までの整数)に対応する第1ないし第8の演算ブロック101〜108、およびこの演算ブロック101〜108の出力を選択する出力選択回路7に出力する。演算ブロック101は、外部において予め作成され、入力されるデータであるmax_padding3,min_padding4,実際の8ビットの画素データであるg(x)5,g(x+1)6のうちの少なくとも2つを入力とする第1及び第2の選択回路111,121と、データ“8"及び後述するレジスタ171の出力を入力とする第3の選択回路131と、第1及び第2の選択回路111,121の選択結果をそれぞれシフトさせる第1、第2のシフタ141,151、これらの第1、第2のシフタ141,151の出力と第3の選択回路131の出力とを加算する加算器161、加算器161の出力が入力されるレジスタ171、レジスタ171の出力を入力としてこれをシフトさせて出力選択回路7に出力する第3のシフタ181とを備えている。g(x)5と,g(x+1)6とは16ビットのバスを介して入力される。max_padding3,min_padding4は、従来の技術において式で示したように、フィルタリング対象となる第1ないし第8の画素データg(m)のうちの第1の画素データg(1)及び第8の画素データg(8)と、これらの画素データの外側に隣接する画素データg(0)及びg(9)と量子化パラメータの値とを比較して求められた値である。演算ブロック102〜108も、演算ブロック101と同様の構成を有しており、 max_padding 3, min_padding 4,実際の8ビットの画素データである g( x ) 5, g( x + 1 ) 6、値0のうちの少なくとも2つを入力とし、該入力した2つの値のうちのいずれかを演算処理サイクルに応じて選択する第1の選択回路112〜118、及び第2の選択回路122〜128と、演算処理サイクルに応じて、累算するための演算結果(第3のシフタの出力)または値8を選択する第3の選択回路132〜138と、上記第1の選択回路112〜118の各出力を、演算処理サイクルに応じてシフトさせる第1のシフタ142〜148と、上記第2の選択回路122〜128の各出力を、演算処理サイクルに応じてシフトさせる第2のシフタ152〜158と、上記第1のシフタ142〜148の出力、上記第2のシフタ152〜158の出力、および上記第3の選択回路132〜138の出力をそれぞれ加算する加算器162〜168と、上記加算器162〜168の各出力を、演算サイクルに応じて上記累算するための演算結果として上記第3の選択回路132〜138にそれぞれ出力するレジスタ172〜178と、上記レジスタ172〜178の各出力を演算結果として上記出力選択回路7に出力する第3のシフタ182〜188とを備えている。出力選択回路7は第1ないし第8の演算ブロック101〜108の出力を選択して出力8として出力する。
【0015】
また、図2,図5及び図6は本実施の形態に係るデブロッキングフィルタ演算装置の動作を説明するための図であり、図2は演算ブロック101〜104の演算処理結果と制御回路1のカウント値との関係を示し、図5は演算ブロック105〜108の演算処理結果と制御回路1のカウント値との関係を示し、図6は各演算ブロック101〜108から出力演算回路7への出力と、カウント値との関係を示している。図において、m=1〜8はそれぞれ演算ブロック101〜108に対応し、M〜Uは演算ブロック101〜108の演算結果を示している。また、黒丸は入力データであるg(x)5、g(x+1)6、max_padding3,min_padding4が入力されることを示している。また、AUはg(x)5を示し、ALはg(x+1)6を示し、CRLはmin_padding4を示し、CRUはmax_padding3を示している。また、記号“<<”はビットシフトを示している。
以上のように構成されたデブロッキングフィルタ演算装置の動作について図1,図2,図5及び図6を用いて説明する。
【0016】
図1に示す制御回路1は、スタート信号2によりカウントアップを行い0〜7までカウントした後は2〜7を繰り返し、図2及び図5に示すようにカウンタ値CNTの値が0の場合は画素信号g(1)、g(2)、CNTの値が1の場合は画素信号g(3)、g(4)、CNTの値が2の場合は画素信号g(5)、g(6)、CNTの値が3の場合は画素信号g(7)、g(8)、CNTの値が4の場合は画素信号g(7)、g(8)、CNTの値が5の場合は画素信号g(7)、g(8)、CNTの値が6の場合は画素信号g(9)、g(10)、CNTの値が7の場合は画素信号g(11)、g(12)を随時入力させる。
【0017】
演算ブロック101においては、図2に示すように、CNT=0の場合、g(2)、g(1)が第1,第2の選択回路111,121で選択され、第3の選択回路131では"8"が選択され、第2のシフタ151により入力データが2ビットシフトされ、第1のシフタ141により1ビットシフトされ、第1のシフタ141と第2のシフタ151と第3の選択回路131の出力とが加算器161で加算されて、レジスタ171に格納される。この処理サイクルの演算結果として得られるデータMは図2に示されているように、M=AU<<2+AL<<1+8となる。
【0018】
次にCNT=1となると、g(4)、g(3)が第1,第2の選択回路111,121で選択され、第3の選択回路131ではCNT=0の際の演算結果であるMがレジスタ171から入力されるのでこれを選択し、第2のシフタ151により入力データが1ビットシフトされ、第1のシフタ141ではビットシフトされず、第1のシフタ141と第2のシフタ151と第3の選択回路131の出力とが加算器161で加算されて、レジスタ171に格納され、この処理サイクルの演算結果として得られるデータMは図2に示されているように、M=AU<<1+AL+M(但しMはCNT=0の場合の演算結果)となる。
【0019】
次にCNT=2となると、min_padding、g(5)が第1,第2の選択回路111,121で選択され、第3の選択回路131ではCNT=1の際の演算結果であるMがレジスタ171から入力されるのでこれを選択し、第2のシフタ151により入力データがビットシフトされず、第1のシフタ141では1ビットシフトされ、第1のシフタ141と第2のシフタ151と第3の選択回路131の出力とが加算器161で加算されて、レジスタ171に格納され、この処理サイクルの演算結果として得られるデータMは図2に示されているように、M=AU+CRL<<1+M(但しMはCNT=1の場合の演算結果)となる。
【0020】
次にCNT=3となると、min_padding、min_paddingが第1,第2の選択回路111,121で選択され、第3の選択回路131ではCNT=2の際の演算結果であるMがレジスタ171から入力されるのでこれを選択し、第2のシフタ151により入力データが1ビットシフトされ、第1のシフタ141では1ビットシフトされ、第1のシフタ141と第2のシフタ151と第3の選択回路131の出力とが加算器161で加算されて、レジスタ171に格納され、この処理サイクルの演算結果として得られるデータMは図2に示されているように、M=CRL<<1+CRL<<1+M(但しMはCNT=2の場合の演算結果)となる。
【0021】
このように、図2に示されているような演算をCNT=3となるまで繰り返し行うことにより、演算ブロック101の合計4サイクルからなる演算の最終的な演算結果である、8+min_padding+min_padding+min_padding<<1+min_padding<<1+g(1)<<2+g(2)<<1+g(3)<<1+g(4)+g(5)を第3のシフタ181により4ビット右シフトさせて出力する。
この演算ブロック101はその後、カウンタが2処理サイクルをカウントした時点(CNT=6)から上記と同様の処理を繰り返す。すなわち、図2に示しているように、CNT=6の演算結果は、M=AU<<2+AL<<1+8となり、上記CNT=0の演算結果と同じになり、CNT=7の演算結果は、M=AU<<1+AL+M(MはCNT=6の場合の演算結果)となり、上記CNT=1の演算結果と同じになる。同様に、CNT=8以降の処理演算はそれぞれ、CNTの値が2、3、4、5、0、1の場合の処理演算を繰り返すこととなる。
【0022】
以下、同様にm=2〜8においても同様の構成を有する演算ブロック102〜108により、カウント値に基づいて、図2及び図5に示すような動作を行う。 ここで、上記各演算ブロック101〜108の動作について詳細に説明する。 まず、m=1に対応する演算ブロックである演算ブロック101において、iの値を−4〜4まで変化させた場合の上述した式(1)の値は、i=−4の場合は1×min_padding、i=−3の場合は1×min_padding、i=−2の場合は2×min_padding,i=−1の場合は2×min_padding,i=0の場合は4×g(1)、i=1の場合は2×g(2)、i=2の場合は2×g(3)、i=3の場合は1×g(4)、i=4の場合には1×g(5)となる。
【0023】
この中でi=−4とi=−3の場合はまとめて2×min_paddingで表されi=4のg(5)との加算を行う。これが、図2のCNT=2の結果である、AU+CRL<<1に相当する。i=−2とi=−1の場合はまとめて2×min_padding+2×min_padding、即ち図2のCNT=3、CRL<<1+CRL<<1で表され、i=0とi=1の場合はまとめて4×g(1)+2×g(2)、即ち、図2のCNT=0、AU<<2+AL<<1で表され、i=2とi=3の場合はまとめて2×g(3)+1×g(4)、即ち図2のCNT=1、AU<<1+ALで表される。但し図2のMはレジスタ171の出力であり、またCNT=0の+8は丸めを行うための値であり、丸めなしの場合は0を入力すれば良い。このようにCNTの値によりセレクタ111、121、131およびシフタ141、151を制御し、上記の演算を実行し、最後であるCNT=4の時にシフタ181をシフトすることで演算結果としてm=1の画素にフィルタリング処理を行った結果を出力する。このように、演算ブロック101において図2に示すような演算を行う結果、iを−4から4まで順次変化させてm=1について9サイクルの演算を行う場合よりも、少ないサイクルで本来の演算結果と同じ結果を得ることができる。
【0024】
また、m=2に対応する演算ブロックである演算ブロック102において、iの値を−4〜4まで変化させた場合の式(1)の値は、
【0025】
となる。この中で、i=−1とi=0とをまとめると2×g(1)+4×g(2)となり、図2のCNT=0のサイクルにおけるAU<<1+AL<<2で表わされ、i=1とi=2とをまとめると2×g(3)+2×g(4)となり、図2のCNT=1のサイクルにおけるAU<<1+AL<<1で表わされ、i=3とi=4とをまとめると1×g(5)+1×g(6)となり、図2のCNT=2のサイクルにおけるAU+ALで表わされ、i=−2とi=−3とi=−4とをまとめると2×min_padding+2×min_paddingとなり、図2のCNT=3のサイクルにおけるCRL<<1+CRL<<1で表わされる。
但し図2のNはレジスタ172の直前のサイクルの出力であり、またCNT=0の+8は丸めを行うための値であり、丸めなしの場合は0を入力すれば良い。
【0026】
このようにCNTの値によりセレクタ112、122、132およびシフタ142、152を制御し、演算ブロック102において図2に示すような演算を行う結果、iを−4から4まで順次変化させてm=2について9サイクルの演算を行う場合よりも、少ないサイクルで本来の演算結果と同じ結果を得ることができる。さらに、演算が終了するまでのサイクル数を、m=1の画素データに対応した演算ブロック101による演算処理のサイクル数と同じサイクル数とし、かつ演算処理が終了するサイクルを演算ブロック101と同じとすることができる。
【0027】
また、m=3に対応する演算ブロックである演算ブロック103において、iの値を−4〜4まで変化させた場合の式(1)の値は、
【0028】
となる。この中で、i=−2とi=−1とをまとめると2×g(1)+2×g(2)となり、図2のCNT=0のサイクルにおけるAU<<1+AL<<1で表わされ、i=0とi=1とをまとめると4×g(3)+2×g(4)となり、図2のCNT=1のサイクルにおけるAU<<2+AL<<1で表わされ、i=2とi=3とをまとめると2×g(5)+1×g(6)となり、図2のCNT=2のサイクルにおけるAU<<2+ALで表わされ、i=4とi=−4とをまとめると1×g(7)+1×min_paddingとなり、図2のCNT=3のサイクルにおけるAU+CRLで表わされ、i=−3は1×min_paddingで、図2のCNT=4のサイクルにおけるCRLで表わされる。但し図2のPはレジスタ173の直前のサイクルの出力であり、またCNT=0の+8は丸めを行うための値であり、丸めなしの場合は0を入力すれば良い。
【0029】
このようにCNTの値によりセレクタ113、123、133およびシフタ143、153を制御し、演算ブロック103において図2に示すような演算を行う結果、iを−4から4まで順次変化させてm=3について9サイクルの演算を行う場合よりも、少ないサイクルで本来の演算結果と同じ結果を得ることができる。
【0030】
また、m=4に対応する演算ブロックである演算ブロック104において、iの値を−4〜4まで変化させた場合の式(1)の値は、
【0031】
となる。この中で、i=−3とi=−2とをまとめると1×g(1)+2×g(2)となり、図2のCNT=0のサイクルにおけるAU+AL<<1で表わされ、i=−1とi=0とをまとめると2×g(3)+4×g(4)となり、図2のCNT=1のサイクルにおけるAU<<1+AL<<2で表わされ、i=1とi=2とをまとめると2×g(5)+2×g(6)となり、図2のCNT=2のサイクルにおけるAU<<1+AL<<1で表わされ、i=3とi=4とをまとめると1×g(7)+1×g(8)となり、図2のCNT=3のサイクルにおけるAU+ALで表わされ、i=−4は1×min_paddingで、図2のCNT=4のサイクルにおけるCRLで表わされる。但し図2のQはレジスタ174の直前のサイクルの出力であり、またCNT=0の+8は丸めを行うための値であり、丸めなしの場合は0を入力すれば良い。
【0032】
このようにCNTの値によりセレクタ114、124、134およびシフタ144、154を制御し、演算ブロック104において図2に示すような演算を行う結果、iを−4から4まで順次変化させてm=4について9サイクルの演算を行う場合よりも、少ないサイクルで本来の演算結果と同じ結果を得ることができる。さらに、演算が終了するまでのサイクル数を、m=3の画素データに対応した演算ブロック103による演算処理のサイクル数と同じサイクル数とし、かつ演算処理が終了するサイクルを演算ブロック103と同じとすることができる。
【0033】
また、m=5に対応する演算ブロックである演算ブロック105において、iの値を−4〜4まで変化させた場合の式(1)の値は、
【0034】
となる。この中で、i=−4とi=−3とをまとめると1×g(1)+1×g(2)となり、図5のCNT=0のサイクルにおけるAU+ALで表わされ、i=−2とi=−1とをまとめると2×g(3)+2×g(4)となり、図5のCNT=1のサイクルにおけるAU<<1+AL<<1で表わされ、i=0とi=1とをまとめると4×g(5)+2×g(6)となり、図5のCNT=2のサイクルにおけるAU<<2+AL<<1で表わされ、i=2とi=3とをまとめると2×g(7)+1×g(8)となり、図5のCNT=3のサイクルにおけるAU<<1+ALで表わされ、i=4は1×max_paddingで、図5のCNT=4のサイクルにおけるCRUで表わされる。但し図5のPはレジスタ175の直前のサイクルの出力であり、またCNT=0の+8は丸めを行うための値であり、丸めなしの場合は0を入力すれば良い。このようにCNTの値によりセレクタ115、125、135およびシフタ145、155を制御し、演算ブロック105において図5に示すような演算を行う結果、iを−4から4まで順次変化させてm=5について9サイクルの演算を行う場合よりも、少ないサイクルで本来の演算結果と同じ結果を得ることができる。
【0035】
また、m=6に対応する演算ブロックである演算ブロック106において、iの値を−4〜4まで変化させた場合の式(1)の値は、
【0036】
となる。この中で、i=−4は1×g(2)で、図5のCNT=0のサイクルにおけるALで表わされ、i=−3とi=−2とをまとめると1×g(3)+2×g(4)となり、図5のCNT=1のサイクルにおけるAU+AL<<1で表わされ、i=−1とi=0とをまとめると2×g(5)+4×g(6)となり、図5のCNT=2のサイクルにおけるAU<<1+AL<<2で表わされ、i=1とi=2とをまとめると2×g(7)+2×g(8)となり、図5のCNT=3のサイクルにおけるAU<<1+AL<<1で表わされ、i=3とi=4とをまとめると1×max_padding+1×max_paddingとなり、図5のCNT=4のサイクルにおけるCRU+CRUで表わされる。但し図5のSはレジスタ176の直前のサイクルの出力であり、またCNT=0の+8は丸めを行うための値であり、丸めなしの場合は0を入力すれば良い。
【0037】
このようにCNTの値によりセレクタ161、162、163およびシフタ164、165を制御し、演算ブロック106において図5に示すような演算を行う結果、iを−4から4まで順次変化させてm=6について9サイクルの演算を行う場合よりも、少ないサイクルで本来の演算結果と同じ結果を得ることができる。さらに、演算が終了するまでのサイクル数を、m=5の画素データに対応した演算ブロック105による演算処理のサイクル数と同じサイクル数とし、かつ演算処理が終了するサイクルを演算ブロック105と同じとすることができる。
【0038】
また、m=7に対応する演算ブロックである演算ブロック107において、iの値を−4〜4まで変化させた場合の式(1)の値は、
【0039】
となる。この中で、i=−4とi=−3とをまとめると1×g(3)+1×g(4)となり、図5のCNT=1のサイクルにおけるAU+ALで表わされ、i=−2とi=−1とをまとめると2×g(5)+2×g(6)となり、図5のCNT=2のサイクルにおけるAU<<1+AL<<1で表わされ、i=0とi=1とをまとめると4×g(7)+2×g(8)となり、図5のCNT=3のサイクルにおけるAU<<2+AL<<1で表わされ、i=2とi=3とをまとめると2×max_padding+1×max_paddingとなり、図5のCNT=4のサイクルにおけるCRU<<1+CRUで表わされ、i=4は1×max_paddingとなり、図5のCNT=5のサイクルにおけるCRUで表わされる。但し図5のTはレジスタ177の直前のサイクルの出力であり、またCNT=1の+8は丸めを行うための値であり、丸めなしの場合は0を入力すれば良い。このようにCNTの値によりセレクタ117、127、137およびシフタ147、157を制御し、演算ブロック107において図5に示すような演算を行う結果、iを−4から4まで順次変化させてm=7について9サイクルの演算を行う場合よりも、少ないサイクルで本来の演算結果と同じ結果を得ることができる。
【0040】
また、m=8に対応する演算ブロックである演算ブロック108において、iの値を−4〜4まで変化させた場合の式(1)の値は、
【0041】
となる。この中で、i=−4は1×g(4)となり、図5のCNT=1のサイクルにおけるALで表わされ、i=−3とi=−2とをまとめると1×g(5)+2×g(6)となり、図5のCNT=2のサイクルにおけるAU+AL<<1で表わされ、i=−1とi=0とをまとめると2×g(7)+4×g(8)となり、図5のCNT=3のサイクルにおけるAU<<1+AL<<2で表わされ、i=1とi=2とをまとめると2×max_padding+2×max_paddingとなり、図5のCNT=4のサイクルにおけるCRU<<1+CRU<<1で表わされ、i=3とi=4とをまとめると1×max_padding+1×max_paddingとなり、図5のCNT=5のサイクルにおけるCRU+CRUで表わされる。但し図5のUはレジスタ178の直前のサイクルの出力であり、またCNT=1の+8は丸めを行うための値であり、丸めなしの場合は0を入力すれば良い。
【0042】
このようにCNTの値によりセレクタ118、128、138およびシフタ148、158を制御し、演算ブロック108において図5に示すような演算を行う結果、iを−4から4まで順次変化させてm=8について9サイクルの演算を行う場合よりも、少ないサイクルでm=8についての演算結果と同じ結果を得ることができる。さらに、演算が終了するまでのサイクル数を、m=7の画素データに対応した演算ブロック107による演算処理のサイクル数と同じサイクル数とし、かつ演算処理が終了するサイクルを演算ブロック107と同じとすることができる。
【0043】
そして、図6に示すように、出力選択回路7により、各演算ブロック101〜108の演算結果については、CNT=4の時に演算ブロック101,102から得られるn=1とn=2の値を同時に出力し、CNT=5の時に演算ブロック103,104から得られるn=3とn=4の値を同時に出力し、CNT=6の時に演算ブロック105,106から得られるn=5とn=6の値を同時に出力し、CNT=7の時に演算ブロック107,108から得られるn=7とn=8の値を同時に出力することで、演算ブロック101〜108の演算結果を、2つの演算ブロック毎に、パイプライン方式で出力させている。これによりデブロッキングフィルタリング処理した画素データを得ることができる。
【0044】
以上のようにして、演算ブロック101〜108においては、図2及び図5に示すように演算処理をおこなうことにより、m=1〜8のそれぞれの場合について、従来の技術において同様の演算を行った場合の結果と同じ演算結果を、従来の技術よりも少ないサイクルで得ることができる。
【0045】
さらに、本実施の形態においては、第1ないし第8の演算ブロック101〜108のうちの、第1の演算ブロック101及び第2の演算ブロック102の組、第3の演算ブロック103及び第4の演算ブロック104の組、第5の演算ブロック105及び第6の演算ブロック106の組、並びに第7の演算ブロック107及び第8の演算ブロック108の組の、各組内におけるそれぞれのフィルタリング処理が終了するまでの処理演算のサイクルが同じとなり、かつ各組間において、それぞれの組のフィルタリング処理が順次連続して終了するように、上記処理演算のサイクルに応じて、上記各演算ブロック101〜108の処理演算の内容を制御回路1により制御し、そして、図6に示すように、上記出力選択回路7を制御して演算ブロック101〜108からの出力を上記の演算ブロックの組単位で選択してパイプライン出力させているため、連続して各演算ブロック101〜108からフィルタリング処理結果が出力されることとなり、フィルタリング処理のサイクル数を更に減少させることができる。
【0046】
このように、本実施の形態においては、上述した式(1)に示す各画素mについてのi=-4〜4まで変化させる演算を、各演算ブロック101〜108によって、従来のサイクル数に比べて大幅に少ないサイクルで行うことができるとともに、2つの演算ブロックにより演算を同時に行い、2つの演算ブロックの演算結果をパイプライン方式で出力するようにしたことにより、結果的にサイクル数の大幅な削減が可能となる。
【0047】
なお、本実施の形態においては、1サイクルに2つの画素データg(x),g(x+1)が入力される場合について説明したが、本発明においては、第1の演算ブロック101及び第2の演算ブロック102の組、第3の演算ブロック103及び第4の演算ブロック104の組、第5の演算ブロック105及び第6の演算ブロック106の組、並びに第7の演算ブロック107及び第8の演算ブロック108の組の、各組内におけるそれぞれのフィルタリング処理が終了するまでの処理演算のサイクルが同じとなり、かつ各組間において、それぞれの組のフィルタリング処理が順次連続して終了するように、上記処理演算のサイクルに応じて、上記各演算ブロック101〜108の処理演算の内容を制御可能であれば、複数の画素データが伝送されるバスの幅を16ビットよりも広くして、1サイクルに入力される画素データ数は3つ以上、例えば4つとしてもよく、上記実施の形態と同様の効果を奏する。
【0048】
産業上の利用可能性
以上のように、本発明に係るデブロッキングフィルタ演算装置及びデブロッキングフィルタ演算方法は、符号化された映像データを復号して再生するための装置における、復号画素データに対するフィルタ処理部及び処理方法として有用であり、特に符号化された映像データがMPEG4方式で符号化されたものである場合に適している。
【図面の簡単な説明】
【図1】本発明に係るデブロッキングフィルタ演算装置のブロック図
【図2】本発明に係るデブロッキングフィルタ演算装置の、m=1〜4に対応した演算ブロックによる動作を説明するための図
【図3】従来のデブロッキングフィルタ演算装置の動作を示すフロー図
【図4】従来のデブロッキングフィルタ演算装置の動作を説明するための、ブロック境界を中心とした画素データの配列を示す図
【図5】本発明に係るデブロッキングフィルタ演算装置のm=5〜8に対応した演算ブロックによる動作を説明するための図
【図6】本発明に係るデブロッキングフィルタ演算装置の出力動作を説明するための図
Claims (2)
- ブロック境界周辺の互いに隣接する第1ないし第8の画素データに対し、ブロックノイズ除去のためのフィルタリング処理演算を行うデブロッキングフィルタ演算装置において、
上記第1ないし第8の画素データのうちの各一対を入力とし、該各一対の入力データ、上記第1及び第8の画素データとこれらの画素データの外側に隣接する画素データと量子化パラメータの値とを比較して求めた2つの値、または丸めなしを示す任意の値のうちのいずれか1つを、それぞれ選択する第1、及び第2の選択回路と、
累算するための演算結果、または丸めを行うための任意の値を選択する第3の選択回路と、
上記第1、及び第2の選択回路の出力を入力とし、それぞれを上記フィルタリング処理演算のサイクルに応じてシフトさせる第1、第2のシフタと、
上記第1のシフタの出力、上記第2のシフタの出力、および上記第3の選択回路の出力を加算する加算器と、
上記加算器の出力を入力とし、該加算器の出力を上記累算するための演算結果として上記第3の選択回路へ出力するレジスタと、
上記レジスタの出力を入力とし、該レジスタの出力を上記フィルタリング処理演算のサイクルに応じてシフトさせ、演算結果として上記第3の選択回路に出力する第3のシフタとを、それぞれ有する、上記第1ないし第8の画素データに対応して並列に設けられた第1ないし第8の演算ブロックと、
上記第1ないし第8の演算ブロックからの出力を選択して出力する出力選択回路と、
上記演算ブロックのうちの、第1及び第2の演算ブロック、第3及び第4の演算ブロック、第5及び第6の演算ブロック、並びに第7及び第8の演算ブロックでそれぞれ構成される演算ブロックの組の、各組内におけるそれぞれのフィルタリング処理が終了するまでの処理演算のサイクルが同じとなり、かつ各組間において、それぞれの組のフィルタリング処理が順次連続して終了するように、上記処理演算のサイクルに応じて、上記各演算ブロックの処理演算を制御するとともに、上記出力選択回路を制御して上記演算ブロックからの出力を上記演算ブロックの組単位で選択してパイプライン出力させる制御回路とを備えたことを特徴とするデブロッキングフィルタ演算装置。 - ブロック境界周辺の連続する第1ないし第8の画素データに対し、ブロックノイズ除去のためのフィルタリング処理演算を行うデブロッキングフィルタ演算方法において、
上記第1ないし第8の画素データの各一対を入力とし、該各一対の入力データ、上記第1及び第8の画素データとこれらの画素データの外側に隣接する画素データと量子化パラメータの値とを比較して求めた2つの値、または丸めなしを示す任意の値のうちのいずれか1つを、それぞれ選択し、上記フィルタリング処理演算のサイクルに応じてシフトさせる第1、第2の処理と、
累算するための演算結果、または丸めを行うための任意の値を選択する第3の処理と、
上記第1、第2、及び第3の処理で得られた値を加算する第4の処理と、
上記第4の処理で得られた加算値を上記累算するための演算結果とするとともに、該加算値を、上記フィルタリング処理演算のサイクルに応じてシフトさせる第5の処理とを、含み、
上記第1ないし第8の画素データに対応するフィルタリング処理演算を、
上記画素データのうちの、第1及び第2の画素データ、第3及び第4の画素データ、第5及び第6の画素データ、並びに第7及び第8の画素データのそれぞれの組の、各組の画素データに対するフィルタリング処理演算が終了するまでの処理演算のサイクルが同じとなり、かつ各組間において、それぞれの組の画素データに対するフィルタリング処理が順次連続して終了するように、並列に実行するステップと、
該ステップにより得られたフィルタリング処理済みの画素データを、上記画素データのそれぞれの組毎に順次連続してパイプライン出力させるステップとを備えたことを特徴とするデブロッキングフィルタ演算方法。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10-352832 | 1998-12-11 | ||
| JP35283298 | 1998-12-11 | ||
| PCT/JP1999/006985 WO2000036844A1 (en) | 1998-12-11 | 1999-12-10 | Device for deblocking filter operation and method for deblocking filter operation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2000036844A1 JPWO2000036844A1 (ja) | 2002-04-02 |
| JP3757116B2 true JP3757116B2 (ja) | 2006-03-22 |
Family
ID=18426751
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000588976A Expired - Fee Related JP3757116B2 (ja) | 1998-12-11 | 1999-12-10 | デブロッキングフィルタ演算装置及びデブロッキングフィルタ演算方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US6882688B1 (ja) |
| JP (1) | JP3757116B2 (ja) |
| WO (1) | WO2000036844A1 (ja) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2453292A1 (en) * | 2004-01-07 | 2005-07-07 | John W. Bogdan | Noise filtering edge detectors |
| KR100614647B1 (ko) | 2004-07-02 | 2006-08-22 | 삼성전자주식회사 | 디블록킹 필터에서의 효과적인 에지 필터링 연산을 위한레지스터 어레이 구조 |
| TWI444047B (zh) * | 2006-06-16 | 2014-07-01 | Via Tech Inc | 用於視訊解碼的去方塊效應濾波器、視訊解碼器與圖形處理單元 |
| CN101854540B (zh) * | 2009-04-01 | 2014-07-02 | 辉达公司 | 用于应用h.264视频编码标准的帧内预测方法及装置 |
| CN102055969B (zh) * | 2009-10-30 | 2012-12-19 | 鸿富锦精密工业(深圳)有限公司 | 影像解块过滤器及使用其的影像处理装置 |
| TWI394461B (zh) * | 2009-11-05 | 2013-04-21 | Hon Hai Prec Ind Co Ltd | 影像解塊過濾器及影像處理裝置 |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6529637B1 (en) * | 1989-05-22 | 2003-03-04 | Pixel Instruments Corporation | Spatial scan replication circuit |
| JPH0714211B2 (ja) | 1989-07-14 | 1995-02-15 | 国際電信電話株式会社 | 動画像符号化のブロック歪除去方法および装置 |
| GB2253318B (en) | 1991-02-27 | 1994-07-20 | Stc Plc | Image processing |
| US5703965A (en) * | 1992-06-05 | 1997-12-30 | The Regents Of The University Of California | Image compression/decompression based on mathematical transform, reduction/expansion, and image sharpening |
| JPH07107274A (ja) | 1993-10-05 | 1995-04-21 | Fuji Xerox Co Ltd | 画像処理装置 |
| JP3432904B2 (ja) | 1994-08-31 | 2003-08-04 | 三洋電機株式会社 | ブロック歪み検出装置 |
| JPH08181990A (ja) | 1994-12-26 | 1996-07-12 | Kyocera Corp | 画像復号化装置 |
| US6377628B1 (en) * | 1996-12-18 | 2002-04-23 | Thomson Licensing S.A. | System for maintaining datastream continuity in the presence of disrupted source data |
| KR100244290B1 (ko) | 1997-09-09 | 2000-02-01 | 구자홍 | 저속 전송에서의 동영상을 위한 디블록킹 필터링 방법 |
| US6226323B1 (en) * | 1998-11-03 | 2001-05-01 | Broadcom Corporation | Technique for minimizing decision feedback equalizer wordlength in the presence of a DC component |
| US6421464B1 (en) * | 1998-12-16 | 2002-07-16 | Fastvdo Llc | Fast lapped image transforms using lifting steps |
| US6546480B1 (en) * | 1999-10-01 | 2003-04-08 | Hitachi, Ltd. | Instructions for arithmetic operations on vectored data |
-
1999
- 1999-12-10 JP JP2000588976A patent/JP3757116B2/ja not_active Expired - Fee Related
- 1999-12-10 WO PCT/JP1999/006985 patent/WO2000036844A1/ja not_active Ceased
- 1999-12-10 US US09/857,779 patent/US6882688B1/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US6882688B1 (en) | 2005-04-19 |
| WO2000036844A1 (en) | 2000-06-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101068364B (zh) | 视频编码器与图形处理系统 | |
| US8369419B2 (en) | Systems and methods of video compression deblocking | |
| US8243815B2 (en) | Systems and methods of video compression deblocking | |
| CN1114316C (zh) | 基于块的图像处理方法及其装置 | |
| JP4699685B2 (ja) | 信号処理装置及びそれを用いた電子機器 | |
| US20040208392A1 (en) | Method and apparatus for improving video quality of low bit-rate video | |
| EP1445956A1 (en) | Image encoding method, image decoding method, image encoder, image decoder, program, computer data signal and image transmission system | |
| DE10215350A1 (de) | Videobild-Komprimierungs/Dekomprimierungs-Hard ware System | |
| WO2000033255A1 (en) | Compressing and decompressing images | |
| JP3757116B2 (ja) | デブロッキングフィルタ演算装置及びデブロッキングフィルタ演算方法 | |
| US7940991B2 (en) | Image signal processing apparatus | |
| JPWO2000036844A1 (ja) | デブロッキングフィルタ演算装置及びデブロッキングフィルタ演算方法 | |
| JP3288811B2 (ja) | ビデオコーデックにおける後処理フィルタ制御方式及び後処理フィルタ制御回路 | |
| US20080049832A1 (en) | Image Encoding Device, Image Decoding Device, and Integrated Circuit Used Therein | |
| CN101253772A (zh) | 用于滤波通过基于块的图像解压获得的图像的设备 | |
| JP2888292B2 (ja) | 2次元逆離散コサイン変換(idct)装置 | |
| JP4519807B2 (ja) | 乗算器及びフィルタ処理装置 | |
| JP4217408B2 (ja) | フィルタ処理装置 | |
| JP3653799B2 (ja) | 画像符号化装置 | |
| JP4700838B2 (ja) | フィルタ処理装置 | |
| CN109891889A (zh) | 处理装置及其控制方法 | |
| JP3907724B2 (ja) | 画像符号化装置 | |
| JPH10177565A (ja) | 画像復号化装置 | |
| JPH09187006A (ja) | フィルタ装置及びそれを用いた復号化装置 | |
| JPH11164302A (ja) | 画像圧縮方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050118 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050317 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050412 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050610 |
|
| 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: 20051220 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051226 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100106 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110106 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120106 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130106 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |