• 締切済み

h.264のデブロッキングフィルタについて

H264のデブロッキングフィルタについてです。 現在H264について勉強しているのですが、デブロッキングフィルタのところで、ブロックノイズ付近ではフィルタリングを強くするなど、場所によってフィルタリング強度を変えるということはわかったのですが、このフィルタリング自体の処理がイマイチわかりません。 ガウシアンフィルタなどを使っているのでしょうか? よろしくお願いします。

noname#131042
noname#131042

みんなの回答

  • axel_eye
  • ベストアンサー率64% (145/226)
回答No.4

No.1です。間違ってました。すみません。 (2-1),(2-3)の条件ですが、 正しくは、 (2-1)ap < β && Abs(p0 - q0) < ((α >> 2) + 2) (2-3)aq < β && Abs(p0 - q0) < ((α >> 2) + 2) でした。 また、No.2で書きましたαとβの式の前が、 (3-1),(3-2)となってますが、これは重複していました。 特に、番号無でよいかと思われます。

  • axel_eye
  • ベストアンサー率64% (145/226)
回答No.3

>この式の中にでてくる>>や<<は何を表しているのでしょうか? >ビットシフトということですか? No.1です。はい。ズバリその通りです。

  • axel_eye
  • ベストアンサー率64% (145/226)
回答No.2

No.1です。続きです。 α,βについてですが、 (3-1)chromaEdgeFlagが0の時 α = α' * (1 << (BitDepthy - 8) β = β' * (1 << (BitDepthy - 8) (3-2)chromaEdgeFlagが1の時 α = α' * (1 << (BitDepthc - 8) β = β' * (1 << (BitDepthc - 8) となります。chromaEdgeFlagも外部から貰います。 α',β'の値は、indexA,indexBという値によってテーブル引きされます。 indexA = Clip3(0, 51, qPav + filterOffsetA) indexB = Clip3(0, 51, qPav + filterOffsetB) qPavは恐らく、量子化パラメーターの平均だと思います。 filterOffsetA,filterOffsetB共に外部から貰います。 ついでに、filterSamplesFlagというものも求めます。 filterSamplesFlag = (bS != 0 && Abs(p0 - q0) < α && Abs(q1- q0) < β) となります。このfilterSamplesFlagが0か1かによってフィルターの有無が決まります。 最後に、indexAの値と、bS = 1/2/3の時によってt'c0の値をテーブル引きします。 すなわち、indexAの値とbSの値に応じたt'c0の値が存在する訳です。 ちなみに、これらの情報は書籍でも概要レベルでは載ってますが、 ITUから規格をダウンロードする事が出来ます。 http://www.itu.int/rec/T-REC-H.264-201003-I/en 上記のα,βのテーブル値及び、t'c0のテーブル値については8.7.2節辺りに載ってますので、 参考にしてください。 デブロッキングフィルタのフィルタは、FIRフィルタの一種であるようです。 ご参考までに。

  • axel_eye
  • ベストアンサー率64% (145/226)
回答No.1

デブロッキングフィルタの内部しかわかりません。 外部についてはわかりません。 前提として、4x4ブロックが2個横に並んでいるとします。 2個並んだブロックの境界から、水平左方向の画素をp0,p1,p2,p3 水平右方向の画素をq0,q1,q2,q3とします。 さらに、出力後のp0-p3,q0-q3をそれぞれ、p'0-p'3,q'0-q'3とします。 垂直についても同じですが、今は簡単のために水平方向だけ考える事にします。 まず、bS(Boundary Strength)値と言うのを入力します。 デブロッキングフィルタでは、このbS値によって3つの場合分けが できます。 (1)bS=0の時 フィルターはかけません。すなわち、p0-p3,q0-q3は全てスルーです。 (2)bS=4の時 フィルターは次のようなフィルターをかけます。 まず、ap = Abs(p2 - p0),aq = Abs(q2 - q0)です。 (2-1)ap < β < Abs(p0-q0) < ((α >> 2) + 2)の時 p'0 = (p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4) >> 3 p'1 = (p2 + p1 + p0 + q0 + 2) >> 2 p'2 = (2*p3 + 3*p2 + p1 + p0 + q0 + 4) >> 3 (2-2)(2-1)以外の時 p'0 = (2*p1 + p0 + q1 + 2) >> 2 p'1 = p1 p'2 = p2 (2-3)aq < β < Abs(p0-q0) < ((α >> 2) + 2)の時 q'0 = (p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4) q'1 = (p0 + q0 + q1 + q2 + 2) >> 2 q'2 = (2*q3 + 3*q2 + q1 + q0 + p0 + 4) >> 3 (2-4)(2-3)以外の時 q'0 = (2*q1 + q0 + p1 + 2) >> 2 q'1 = q1 q'2 = q2 となります。(2-1)(2-2)の処理は、p0-p3の処理で、 (2-3)(2-4)の処理は、q0-q3の処理です。 α,βに関しては後で説明します。 p3,q3に関してはスルーです。 (3)bS < 4の時 (3-1)chromaStyleFilteringが0の時 tc = tc0 + (ap < β) ? 1 : 0) + ((aq < β) ? : 0) (3-2)chromaStyleFilteringが1の時 tc = tc0 + 1 (3-3)chromaEdgeFlagが0の時 tc0 = t'c0 * (1 << BitDepthy - 8) (3-4)chromaEdgeFlagが1の時 tc0 = t'c0 * (1 << BitDepthc - 8) となります。 ここで、(3-1)(3-2)がペアの処理で(3-3)(3-4)がペアの処理です t'c0の求め方は後述します。BitDepthy,BitDepthcはデブロッキングフィルタの 外部から値を貰います。 (3-5)p'0,q'0 Δ = Clip3(-tc,tc,((((q0 - p0) << 2) + (p1 - q1) + 4) >> 3)) (Clip3(a,b,c)は、cの範囲がa <= c <= bとなるようにクリップします) p'0 = Clip1(p0 + Δ) q'0 = Clip1(q0 + Δ) (うろ覚えですが、Clip1(a)は、0 <= a <= 255となるようにクリップするのだったと思います) (3-6)p'1(chromaStyleFilteringが0かつap < βの時) p'1 = p1 + Clip3(-tc0,tc0,(p2 + ((p0 + q0 + 1) >> 1) - (p1 << 1)) >> 1) (3-7)p'1(chromaStyleFilteringが1またはap >= βの時) p'1 = p1 (3-8)q'1(chromaStyleFilteringが0かつaq < βの時) q'1 = q1 + Clip3(-tc0,tc0,(q2 + ((p0 + q0 + 1) >> 1) - (q1 << 1)) >> 1) (3-9)p'1(chromaStyleFilteringが1またはaq >= βの時) q'1 = q1 (3-10)p'2,q'2 p'2 = p2 q'2 = q2 となります。

noname#131042
質問者

補足

回答ありがとうございます。 この式の中にでてくる>>や<<は何を表しているのでしょうか? ビットシフトということですか?

関連するQ&A

  • ガウシアンフィルタのCプログラム

    画像を平滑化する手法にガウシアンフィルタというものがあります。 現在、このガウシアンフィルタをCで作成しようとしていますが、いまいち分かりません。 自分なりに調べてみたところ、平滑化の移動平均フィルタやメディアンフィルタに関しては様々な書籍やサイトがあるのですが、ガウシアンフィルタに関してはあまり見つかりませんでした。 行いたい処理は、簡単に次の通りです。 画像ファイルの読み込み ↓ フィルタ処理 ↓ 処理後の画像をファイル出力 ガウシアンフィルタに関して詳しく書いてある書籍やサイトがあればお教え願います。できれば、ソースプログラムも書いてあると助かります。 当方、参考書籍として、「C言語で学ぶ実践画像処理-井上他」という本を使用しています。

  • H.264について

    現在海外旅行中です。 Nikon 1 J2で撮影した動画(ハイビジョン・MOV)を、多少画質は落ちてもなるべくファイルサイズを小さくしたいと思っています。 画質は、解像感が落ちるのは構いませんが、ブロックノイズや階調飛びは不可です。 その場合、H.264にするのが一番いいのでしょうか? どのソフトを使っても、圧縮率が同じなら結果は同じですか? Core Duoの1.06GHzなのですが、動作が軽く、処理速度が速いフリーソフトなんてありますか?

  • aviutlのh.264エンコードについてorz

    質問させていただきますorz 長いですが 返答していただけたらさいわいです。 今、実況プレイをしようと思っているのですが、 アマレコTVからGV-USB2でキャプチャーし、そこまでは画質は全然良いのですが aviutlでh.264にエンコードしようとすると 画面はざらつき、また画面がぐらぐらゆれています。 一応は見れますが、綺麗とは程遠いです。 wikiなどを参考に1ヶ月ぐらいずっと調べてるのですがわかりません。 わかるかたいらっしゃれば教えてください。 スペック パソコンのスペック windws7に搭載している(7点満点) pcの性能をはかるやつで測って全体的な点数が6点で 画像処理のみ4.5点でした。 そこまで性能的には足りていないというわけでもなさそうです (aviutlなど動かしている時のpcの重さで感じて) アマレコTVについて アマレコTVでは一応720×480でキャプチャーしています この状態ではまだ、画質はいいです。 また、インターレース解除はアマレコではしていません。 aviutlについて avitl自体の設定 ・入力プラグインの優先度 AVI/AVI2filereaderが一番上です AVIで取り込むのでそこから下はいじっていません。 ・インターレース解除設定 一応、自動でトップフィールド>ボトムフィールドとなっております。 ・フィルタについて かけているフィルタを優先度順に書いていきます。 (1)ノイズ除去(時間軸)フィルタ (2)ノイズ除去フィルタ (3)lanczos 3-lobed拡大縮小 (4)色褪せ軽減β (5)UVダウンサンプリング ・色変換設定 入力が自動の出力bt.601 コレぐらいしか設定は変えておりません。 また、再生ウィンドウでの画面は高画質で再生できています。 次にh.264の設定です 一応これが設定のすべてです。 どんだけググってもわからなかったので なにとぞお願いしますorz

  • フィルタリングとバリデーションの違い

    「用語の使い方」がよく分からないので、教えてください。 フィルタリングには、「入力フィルタリング」と「出力フィルタリング」の二種類があって、バリデーションは、「入力フィルタリング」の一部、 エスケープ処理は、「出力フィルタリング」の一部、 という認識で合ってるでしょうか? そもそも、フィルタリングって言い方とかするのでしょうか? フィルタって言った方がいいですか?

    • ベストアンサー
    • PHP
  • フィルタリングソフトについて・・・(初心者です)

    プロパイダがOCNです。 今まではOCNが『サーフモンキー』という名前のフィルタリングサービスを供給していたのでそれを使っていました。 今度OCNが『サーフモンキー』のサービスを終了して『トレンドマイクロ』という会社の『インタースキャンウエブマネージャ(?)』というフィルタリングをサービスし始めたのでそちらに切り替えました。 言い遅れましたが、フィルターが必要なのは子供がパソコンをする為です。 で、『サーフモンキー』のフィルターは結構調子が良くて気に入って使っていました。 しかし、今回OCNが導入したトレンドマイクロ製のフィルターは、なんでもかんでも次から次へとブロックがかかってしまい非常に使い勝手が悪いのです。 例えばハローワークのHPを見ようとしてもブロックされてしまいますし、音楽CDのウェブショップもブロックします。 URL登録でブロック外しは出来るのですが、これから先が思いやられますので・・・ 質問 1・使い勝手の良いフィルタを御存知の方がいらっしゃいましたら、紹介していただけませんでしょうか? ムズカシイ事が良くわからないので、出来ればプロバイダからサービスされているものが良いような気がします・・・(現在のOCNを換えても良いと思っています) どちら様か御知恵をお貸し下さい、よろしくお願いします。  

  • ウイルスセキュリティと相性のいいフィルタリングソフトは?

    最近、小学生の子供がHサイトでワンクリック詐欺のようなものに引っかかり、解約するのに苦労しました。現在、ソースネクストのウイルスセキュリティを使用しているのですが、相性の良いフィルタリングソフトは何を使えばよいでしょうか?ちなみに、OCNの有害サイトブロックサービスをインストールしたところ、インターネットに繋がらなくなり復旧するまで苦労しました。i-フィルターとかならokそうですが…。他にこんなのがいいよっていうソフトってあるのかなー?

  • 地デジチューナーDT-H10 ブロックノイズ

    地デジチューナーDT-H10 ブロックノイズ BUFFALOの地デジチューナーDT-H10/PCIを使ってパソコンで地デジを観ているのですが、2回程チャンネルの切り替えを行うとブロックノイズが走るようになります。 チャンネルを切り替えなければ、ノイズが入る事もなく普通に視聴する事ができます。 こういった場合の原因としては何がありますでしょうか? また解決策があれば教えて貰いたいです。 パソコンはメーカー製ではありません。自作PCです。 【パソコン環境】 OS:Windows7 64bit メモリ:8GB グラボ:NVIDIA GeForce GT 240 チューナー:BUFFALO DT-H10/PCI 【配線】 自室にアンテナ線が来ているので、ソコから2分配してTVとPCに繋いでいます。 TV側では問題なく視聴出来ています。

  • 信号処理FIRフィルタに関して

    こんにちわ。デジタルフィルタに関するご質問です。 振動工学を勉強しているのですが、回転機械から検出した時系列加速度信号をFIR(ローパス)フィルタに通し、高周波ノイズを除去しようとしています。 FIRフィルタとは、「継続接続された一連の遅延器からなり、各遅延器出力の重み付け和を出力する」と教科書等によく書かれておりますが、例えば、周波数領域でのフィルタの振幅特性が最適なものが300次で求めたものだったとして、フィルタのインパルス応答h(t)を求めて、600個の時系列入力データをフィルタリングする場合、インパルス応答を二個つなげて、各時系列データにあてはめていくので良いのでしょうか? また、その場合、インパルス応答の継ぎ目は連続になっているべきなのでしょうか? もし、原理的にマズいことや、根本から間違えているようならば、ご指導下さいますよう、お願いします。

  • フィルタリングソフトについて教えてください

    子供(小4)が最近インターネットに興味を持ち始め、頻繁にブラウザを使うようになりました。 そこで、有害サイトを子供がアクセスできないように、フィルタリングソフトを組み込もうと思っています。 デジタルアーツ製の「i-フィルタ-4 Win」を調べてみたのですが、1年あたり、更新料3,600円(税込)/年が必要なので、購入に二の足を踏んでいます。どなたか同じような問題を抱えていらっしゃる方で、あまり費用のかからないフィルタリングソフトをご存じでしたら、お教え下されば幸いです。どうぞよろしくお願いします。 なお、使用環境はXPで、アカウントごとにフィルター強度が変えられるものを希望しています。具体的には、大人のアカウントはフィルターがかからず、子供のアカウントには年齢に応じたフィルタリングがかかるのがベストです。

  • DivXエンコード(ブロックノイズ)に関するフィルタ

    mpeg2ソースの動画をDivXにエンコードするときに、使っているフィルタとその数値を教えてください。できれば、どれがブロックノイズに対応しているのかも教えてください。目的はmpeg2ファイルをDivX化するときに、いかにブロックノイズをなくすかです