web-dev-qa-db-ja.com

JPEGファイルデコーダーを最初から作成する方法

私はこれのための多くのツールがすでにあることを知っています。私の目標は学ぶことです。したがって、fopen()を使用してJPEGファイルを読み取ることができます。これはバイナリファイルであることがわかります。じゃあ何? JPEG仕様を学ぶことができることを知っています。しかし、バイナリjpegファイルの構造が何であるかを教えていないようです。

このファイルには0と1が含まれています。これを変換するにはどうすればよいですか、またはどのビットチェーンが何を意味するのかを知るにはどうすればよいですか?

私はこの例に出くわしました: nano jpegデコーダー しかし、コードを読むのはかなり難しいです

前もって感謝します

PS: このプリンストンの男は良いリファレンスを提供するこれに関するプロジェクトを行いました

16
McBear Holden

This ページには、jpegファイルの処理方法に関する多くの情報があります。また、Pythonでjpegデコーダーを作成する際の 私自身の試み を見ることができます。

プログラムの短い変数名は、多くの場合、標準の変数に直接対応しています。したがって、標準の準備ができている場合、それは大いに役立ちます。 ITU-115 と呼ばれ、インターネットで無料で入手できます。

26
onemasse

始めたばかりの場合、JPEGは注意が必要です。ハフマンテーブルを操作し、ある種の高速逆離散コサイン変換関数を持ち、量子化テーブルを解釈する機能が必要です。

http://en.wikipedia.org/wiki/JPEG はかなり役に立ちます。

もっと簡単なものから始めたい場合は、PNGを見てください。形式は基本的にヘッダーであり、その後に一連の可変長、チャンク、そしてzlibストリームが続きます。解凍すると、ほぼ生のピクセルが残りますが、フィルタリングされています。フィルタリング解除は簡単です。

13
Dave