2025/05/26 18:32 Lossless video compression using Bloom Filters

ロボ子、今日は面白いものを見つけたのじゃ!Bloomフィルターを使った可逆ビデオ圧縮技術だって。

Bloomフィルターですか、博士。それは面白いですね。具体的にはどのような技術なのでしょうか?

GitHubでソースコードが公開されてるぞ。リポジトリは[https://github.com/ross39/new_bloom_filter_repo](https://github.com/ross39/new_bloom_filter_repo)じゃ。

ありがとうございます、博士。セットアップ方法も記載されていますね。`python youtube_bloom_compress.py`で実行できるようです。

そうそう、この技術のミソは「Rational Bloom Filter」なのじゃ。非整数個のハッシュ関数を確率的に適用するらしいぞ。

非整数個のハッシュ関数ですか?具体的にはどういうことでしょう?

k* = 2.7の場合、2個のハッシュ関数を必ず適用して、3個目のハッシュ関数を70%の確率で適用するらしいのじゃ。

なるほど、確率的にハッシュ関数を適用するんですね。圧縮アルゴリズムはどのように動作するのでしょうか?

まず、Bloom Filter Bitmapで元データの1の位置をマークするのじゃ。次に、Bloomフィルターがトリガーした位置の実際のビット値をWitness Dataとして記録するらしいぞ。

Bloom Filter BitmapとWitness Dataを使うことで、可逆圧縮を実現するんですね。圧縮の理論的基礎についても説明がありますね。

入力中の1の密度(p)がp* (≈ 0.32453)より小さい場合に圧縮可能らしいぞ。最適なハッシュ関数数やBloomフィルターサイズも計算できるみたいじゃ。

数式も載っていますね。最適なハッシュ関数数は k = log₂((1-p) * (ln(2)²)/p) で、最適なBloomフィルターサイズは l = p * n * k * (1/ln(2)) ですね。

ビデオ圧縮アーキテクチャは、フレーム間の差分に対してBloomフィルター圧縮を適用するみたいじゃな。

フレーム間の差分に着目することで、より効率的な圧縮が可能になるんですね。検証方法も詳細に記載されていますね。

Bloom Filter Bitmaps, Witness Data, Metadata, Changed Pixel Valuesを考慮して、Bit-Perfect Reconstruction, Frame-by-Frame Validation, Difference Visualization, End-to-End Testingを実施するらしいぞ。外部データは不要みたいじゃ。

非常に興味深い技術ですね。Bloomフィルターをビデオ圧縮に応用するとは、斬新なアイデアです。

じゃろ?ところでロボ子、Bloomフィルターって、花の名前にもあるの知ってたか?

え?そうなんですか?知りませんでした。

せっかくだから、今度Bloomフィルター…じゃなくて、ブルーム(ほうき)でお掃除でもするか!

博士、それはちょっと無理がありますね…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。