【ITニュース解説】How does lossless compression in Fuji RAF files work? (2020)
2025年09月27日に「Hacker News」が公開したITニュース「How does lossless compression in Fuji RAF files work? (2020)」について初心者にもわかりやすく解説しています。
ITニュース概要
富士フイルムのRAWデータ「RAFファイル」における可逆圧縮の仕組みを解説。画像を劣化させずにファイルサイズを減らす独自の技術が、内部でどのように動作するのか、その方式をシステムエンジニア初心者向けに紹介する。
ITニュース解説
富士フイルムのデジタルカメラで撮影される「RAF」ファイルは、RAW画像データの一種で、撮影時にセンサーが受け取った光の情報を加工せずに記録したものだ。通常、カメラで撮影した写真はJPEG形式で保存されることが多いが、これはカメラ内で色や明るさなどの処理が施され、ファイルサイズを小さくするために情報が間引かれている。しかしRAWファイルは、そのような加工がほとんど行われていない「生」のデータであるため、JPEGファイルに比べてはるかに多くの情報を含んでおり、その分ファイルサイズも非常に大きくなる傾向がある。
RAWファイルの最大の利点は、撮影後の編集作業で、色の調整、明るさの補正、ホワイトバランスの変更などを、画質劣化を最小限に抑えながら柔軟に行える点にある。これにより写真の表現の幅が広がるため、プロの写真家や写真愛好家にとって不可欠なファイル形式となっている。しかし、その豊富な情報量ゆえにファイルサイズが大きくなることは、メモリーカードの容量を圧迫し、転送に時間がかかり、編集作業でシステムの負荷を上げるなどの課題を抱えている。
そこで重要になるのが「圧縮」という技術だ。データ圧縮とは、元のデータが持つ本質的な情報を損なわずに、より少ないデータ量で表現する技術を指す。特に画像データのように巨大な情報を扱う分野では、効率的な圧縮技術が不可欠だ。JPEGなどの一般的な画像形式では、人間の目には気づきにくい情報を意図的に削減する「非可逆圧縮」が使われることが多い。これにより大幅なファイルサイズ削減が可能になるが、一度失われた情報は元に戻せず、画質がわずかに劣化するという代償が伴う。
一方、RAWファイルにおいては、画質の劣化を一切許容しない「可逆圧縮(ロスレス圧縮)」という技術が用いられる。可逆圧縮は、圧縮されたデータを完全に元の状態に復元できるため、RAWデータの持つ全ての情報を保持したままファイルサイズを小さくすることが可能だ。これは、最高の画質を求めるプロにとって非常に重要な要素だ。
富士フイルムのRAFファイルは、この可逆圧縮をどのように実現しているのだろうか。実は、その圧縮アルゴリズムはカメラのモデルやファームウェアのバージョンによって進化を遂げている。古い世代のRAFファイルでは、主に「差分エンコーディング」と「ハフマン符号化」という二つの技術が組み合わせて使われていた。差分エンコーディングとは、隣り合うピクセルの値が大きく変わらないという画像の特性を利用し、ピクセルそのものの値を記録するのではなく、直前のピクセルとの「差」だけを記録する方法だ。ほとんどの場合、隣り合うピクセルの差は元のピクセル値よりも小さな値になるため、この「差」のデータをより効率的に表現できる。そして、ハフマン符号化は、頻繁に出現するデータを短い符号で、あまり出現しないデータを長い符号で表現することで、全体のデータ量を削減する技術である。
しかし、2018年頃から登場した新しい世代のRAFファイルでは、さらに高度で効率的な圧縮アルゴリズムが導入された。この新しい方式では、まず画像データ全体を小さな領域(「タイル」と呼ぶこともある)に分割する。これは、巨大なデータを一度に処理するのではなく、より管理しやすい小さな塊に分けて処理することで、効率を高めるためだ。
次に、それぞれのタイル内で「予測」という手法が用いられる。具体的には、「線形予測器」と呼ばれるアルゴリズムを使って、現在処理しようとしているピクセルの値を、その周囲にあるすでに処理済みのピクセルの値から数学的に予測するのだ。例えば、あるピクセルの左隣や上隣のピクセルが似たような色や明るさであれば、現在のピクセルもほぼ同じような値になるだろうと推測する。
そして、この予測された値と、実際のピクセルの値との「差」(これを「予測誤差」と呼ぶ)を計算する。この予測誤差は、元のピクセル値よりもはるかに小さく、その多くがゼロに近い値となる。例えば、周囲が白いピクセルであれば、次のピクセルも白に近いと予測され、実際の値との差は非常に小さくなる。逆に、色の境界線など予測が難しい場所では誤差が大きくなることもあるが、全体的には小さな誤差が多くなる。
この予測誤差のデータは、元のピクセルデータよりも偏った分布を持つため、効率的に圧縮が可能だ。具体的には、頻繁に出現する小さな誤差(特にゼロ)を短い符号で表現し、稀にしか出現しない大きな誤差を長い符号で表現する「エントロピー符号化」という技術が適用される。これはハフマン符号化もその一種で、データの統計的な偏りを利用して情報量を削減する技術の総称だ。
このように、新しいRAFファイルの圧縮アルゴリズムは、画像をタイルに分割し、ピクセル間の高い相関性を利用して予測を行い、その予測誤差を効率的に符号化するという、複数の段階を踏んだ複雑なプロセスによって成り立っている。この方式により、画質を一切損なうことなく、旧方式よりもさらに高い圧縮率を実現し、ファイルサイズを大幅に削減しているのだ。
このようなデータ圧縮技術は、システムエンジニアを目指す上で非常に基本的ながら重要な概念となる。画像処理だけでなく、データベース、ネットワーク通信、ストレージ管理など、ITの様々な分野でデータの効率的な利用は常に求められるからだ。特に、RAWファイルの圧縮アルゴリズムに見られるような、データの特性(例えば、隣接するデータ間の相関性)を深く理解し、それに基づいて最適な予測モデルを構築し、予測誤差を効率的に符号化するという考え方は、一般的なデータ圧縮技術の根幹をなすものだ。この知識は、単にファイルサイズを小さくするだけでなく、システム全体のパフォーマンス向上やリソース最適化にも直結する。富士フイルムのRAFファイルの圧縮技術は、データ構造の理解とアルゴリズム設計の重要性を示す好例と言えるだろう。