Это вопрос из любопытства о некоторых шаблонах, которые я вижу в файлах JPG, когда смотрю на них в шестнадцатеричном редакторе. Я предполагаю, что это вопрос о формате файла JPEG; почему эта часть не является «случайным шумом», как и все остальное, когда это должно быть (кодирование Хаффмана и т. д.).
Вот оно:
Этот 136-битный (17 байт) шаблон отображается в некоторых файлах JPG, созданных Adobe Photoshop (я не знаю, является ли Photoshop единственным приложением, которое их создает):
F7 5E EB DE FD D7 BA F7 BF 75 EE BD EF DD 7B AF 7B
Это несколько мест в одном файле, иногда это всего лишь одна итерация, иногда это повторяется 8 или 12 раз, составляя блоки по 1088 или 1632 бита. Или, если быть точным, на самом деле это 68-битный шаблон, повторяющийся 2 или более раз:
F7 5E EB DE FD D7 BA F7 B
11110111010111101110101111011110111111011101011110111010111101111011
AFAIK, прочитав немного о файловой структуре JPG, а также проверив это в шестнадцатеричном формате, что начало файловых структур JPG помечено FF xx. Нет таких маркеров структуры FF xx ни непосредственно перед, ни после этих 68-битных шаблонов.
Используя Breakpoint Hex Workshop, очень легко обнаружить эти шаблоны в окне «Визуализатор данных»; в то время как остальная часть битового потока Хаффмана выглядит как «шум», внезапно появляются блоки, демонстрирующие четкие шаблоны.
Кроме того.. Я не уверен, насколько это актуально, но..:
Ранее я замечал такой тип паттернов и в файлах CR2, то есть в файлах Canon RAW; здесь шаблон был намного проще, 40-битный:
73 9C E7 39 CE
0111 0011 1001 1100 1110 0111 0011 1001 1100 1110
Если я отрегулирую пробелы, это станет следующим:
01110 01110 01110 01110 01110 01110 01110 01110
Как видите, на самом деле это повторяющийся 5-битный шаблон, и он повторялся несколько сотен раз для каждого места в файлах CR2. Формат файла CR2 также представляет собой сжатый файл, но без потерь. Опять же, кодирование Хаффмана в JPG также является своего рода «сжатием» без потерь, если я правильно понял.
Я нахожу очень странным, что в сжатых потоках есть эти шаблоны (что мне кажется) «потерянных» битов.
Я загрузил один из файлов JPG здесь http://i.imgur.com/t0mi7vo.jpg - это просто скриншот некоторых файлов в папке. Битовый поток кода Хаффмана идет от смещения 0x0000027C до конца, и вы можете увидеть один из экземпляров повторяющегося шаблона, например. по смещению 0x0001604A