Академический Документы
Профессиональный Документы
Культура Документы
Содержание
Инструкция по использованию JPEGfix
Содержание
1. Общие сведения
2. Дистрибутив
3. Оценка пригодности файла к ремонту
3.1. Оценка файла сканированием
3.2. Оценка файла по байтовой и 2-байтовой статистике
3.3. Оценка файла упаковкой в архив
3.4. Оценка файла обычной загрузкой
3.5. Оценка файла загрузкой scan data
3.6. Оценка файла загрузкой scan data с заголовком от хорошего файла
3.7. Подведение итогов
4. Принцип ремонта
4.1. Загрузка данных с правильным заголовком
4.1.1. Загрузка файла с корректировкой маркеров
4.2. Исправление искажений
4.3. Порядок ремонта в JPEGfix
5. Описание интерфейса
5.1. Меню
5.2. Контекстное меню
5.3. Дополнительные окна
5.3.1. Errors
5.4. Управление с клавиатуры
6. Пример ремонта файла
7. Более сложный ремонт
7.1. Быстрый ремонт без годного заголовка
8. Устройство файлов JPEG
8.1. Последовательность маркеров
8.2. Представление информации
9. Что делать, чтобы не потерять ценные данные?
1. Общие сведения
Программа JPEGfix предназначена для ремонта повреждённых файлов формата
JPEG (JPG). Программа позволяет исправить мелкие искажения, вызванные сбоями
хранения файлов и собрать из уцелевшей информации файл, который будет можно будет
смотреть, обрабатывать, печатать и т.п.
Программа не содержит каких-то магических элементов, поэтому она не способна
восстановить информацию, которая была уничтожена при сбое и не содержится в файле.
Если окончание файла было утрачено, JPEGfix сможет привести к нормальному виду
только начало. Если выпал большой фрагмент из средины - только связать начало и
окончание. И так далее.
Также программа содержит инструменты для анализа пригодности файла к ремонту,
для выгрузки DCT-коэффициентов или YCbCr растра (для обработки в иных программах).
Утилита поддерживает файлы формата JPEG (*.JPG, *.JPEG), а также позволяет искать
файлы и фрагменты данного формата внутри других файлов, например образов дисков.
Поддерживается работа только с файлами объёмом меньше 2ГБ (более крупные файлы
нужно нарезать, а образы дисков можно снять не целиковые, а по диапазонам секторов)
2. Дистрибутив
Последняя версия - 1.1.35 от 2015-11-14
Скачать программу можно по ссылкам, находящимся на домашней странице программы:
http://overquantum.livejournal.com/9832.html
c. Если весь прямоугольник чёрный и без зелёных точек или весь покрыт
красными/белыми/фиолетовыми точками - изображение не восстановимо.
d. Если узор состоит из зелёных точек, но он явно повторяющийся (как обои)
сверху вниз - скорее всего, изображение не восстановимо.
8. Пункт меню Analyze -> "Scan folder for JPEG..." позволяет просканировать все
файлы каталога и записать результаты в файлы.
a. Вам нужно будет выбрать любой файл в нужном каталоге и файл, куда
сохранить результаты - они будут в виде текстового файла - имя файла,
раскладка по объёмом (JPEG data / Not JPEG data / Unknown data) и
предварительный вывод.
1. Байтовая статистика вызывается через меню “Analyze” -> “Byte statistic of file” и
выбор анализируемого файла
2. В окне программы отобразится графическая гистограмма и численные значения в
2 столбца
a. В каждом столбца последовательно указаны:
i. Десятичное представление значения байта,
ii. Шестнадцатеричное представление,
iii. % встречаемости байта в файла по отношению к полному объёму
файла,
iv. Общее количество байт данного значения в файле
3. Байтовая статистика для нормального JPEG-изображения (или хорошо
восстановимого) выглядит как примерно равномерное распределение всех байт,
кроме 00 (которого заметно больше), возможно с несколькими всплесками из-за
флюктуаций.
4. Типичные повреждения:
a. Файл состоит только из байтов FF (на 100%) - ничего не спасти. Если любой
байт заполняет файл на 100% - это означает полную потерю полезной
информации из этого файла.
Техническая информация: белая точка в данном случае отображает комбинацию FF 00,, черная полоса под ней - почти
полное отсутствие комбинаций FF с другими байтами, в соответствии с форматом JPEG
8. Некоторые форматы файлов имеют довольно характерные узоры 2-байтовой
статистики, позволяющие отличить их друг от друга
a. Шифрованные файлы выглядят как “белый шум”, 2-байтовая стастика -
полностью равномерный хаотичный узор белого и бледно-зеленых
оттенков:
b. Архивы (rar, zip и т.д.) имеют тоже примерно равномерный узор, однако
иногда проявляются некоторые особенности, вроде чуть выделяющихся
вертикальных или горизонтальных линий:
4. Принцип ремонта
Ремонт файла в общем случае состоит из двух этапов:
1. Загрузка данных с правильным заголовком
2. Исправление искажений
a.
7. Жмите OK
8. Изображение загрузится
5. Описание интерфейса
5.1. Меню
Наиболее полезные пункты выделены полужирным.
1. Меню Main - основные действия
a. Load JPEG - загрузка JPEG файла простым способом
b. Advanced load JPEG - загрузка JPEG с дополнительными настройками
c. Save JPEG - сохранение файла в формате JPEG
d. Подменю Export - сохранение в другие форматы
i. Displayed image as BMP - сохранение видимой картинки (с учётом
масштаба!) в BMP
ii. Export header in JSON - сохранение только заголовка в JSON
формате.
iii. Export YCbCr bitmap - сохранение растра в YCbCr цветах в бинарном
виде
iv. Export YCbCr in JSON - сохранение растра в YCbCr цветах в
формате JSON
v. Export DCT binary - сохранение DCT-коэффициентов в бинарном
виде
vi. Export DCT in JSON - сохранение DCT-коэффициентов в формате
JSON
vii. Export current page in binary - сохранение текущей страницы в
бинарном виде, актуально для поиска изображений внутри образов
дисков и других больших файлов
e. Import DCT binary - загрузка DCT-коэффициентов из бинарного формата
f. About - о программе
g. Exit - выход
2. Меню Override - разные настройки по
a. Override width - задать ширину изображения для следующей загрузки файла
(0 - использовать ширину из загружаемого файла)
b. Override height - задать высоту изображения для следующей загрузки файла
(0 - использовать высоту из загружаемого файла)
c. Restructure JPEG on save (флаг) - при сохранении формировать JPEG
наиболее стандартной структуры, выкинув всё лишнее и игнорируя
структуру исходного файла. EXIF сохранён не будет.
i. Если флаг не установлен, при сохранении будет сохраняться
структура исходного файла
d. Ignore RST (псевдофлаг) - игнорировать RST маркеры при загрузке.
e. Log settings - задать битовые флаги того, что сохраняется в лог при загрузке
JPEG и при сохранении
f. Manage markers - вызвать окно управления маркерами
g. Input marker - ввести маркер вручную. Полезно для ручного задания таблиц
квантования, Хаффмана и т.д.
h. Next page - декодировать изображение дальше, если все данные не
уместились в отображаемую “страницу”
i. Redecode from header - перезагрузить текущее изображение от заголовка
j. Redecode from SOS - перезагрузить текущее изображение от маркера SOS
(т.е. не перезагружать данные заголовка - таблицы и т.п.)
3. Меню Repair - некоторый ремонт
a. Next error - поискать следующий сбой на изображении (устаревший пункт
меню)
b. Remove shift by borders - устранить сдвиги изображения по проставленным
вручную отметкам о крае изображения
c. Remove shift by borders and delim - устранить сдвиги изображения по
проставленным вручную отметкам о крае изображения и точках сбоев
d. Check borders - проверить отметки о крае изображения и точках сбоев
e. Normalize image by lines - нормализовать искажённый цвет по строкам
изображения. Рекомендуется применять только в случае сильного
искажения цвета для выявления деталей (и определения что это вообще за
изображение)
f. Load borders - загрузить отметки о крае изображения из файла
g. Save borders - сохранить отметки о крае изображения из файла
h. Cursor mode - режим “курсора” для проставления отметок о крае
изображения
4. Меню Draw - отрисовка изображения
a. Redraw 1:... (...) - отрисовать изображение в указанном масштабе и
указанным способом
b. Display MCU len - отобразить длины MCU-блоков в чёрно-зелёно-белой
градации
c. Display Debug info - отобразить отладочную информацию
d. Display DCT coefficient - отобразить изображение только по одному из DCT
коэффициентов
e. Display errors - отобразить сбои декодирования
5. Меню Analyze - средства анализа изображения
a. Scan file for JPEG - искать в файле данные, выглядящие как JPEG
b. Scan folder for JPEG - проверить все файлы в каталоге на данные,
выглядящие как JPEG
c. Byte statistic of file - посчитать байтовую статистику файла
d. 2-byte statistic of file - посчитать двух-байтовую статистику файле (частоту
использования пар байтов)
e. Show MCU info - включить дополнительное окно, отображающее
информацию об MCU блоках
f. Save loading log - сохранить лог загрузки в файл (предлагается рядом с
загруженным JPEG-ом)
5.3.1. Errors
Окно вызывается из меню Repair->”Next error…”, либо при через контекстное меню “Repair
this MCU” у MCU-блока изображения.
Окно явняется основным средством ремонта искажения цвета и сдвига.
1. Выпадающий список - содержит перечень ошибок, возникших при декодировании
изображения (имейте ввиду - не каждая ошибка приводит к искажению
изображения и далеко не каждой сбой, искажающий изображение, приводит к
ошибке декодирования).
2. Кнопка “Update” - обновляет список ошибок (полезно после исправления)
3. “Redecode this” и “Redecode next” и - вызывают окно “Redecode MCU #” для
активного и следующего MCU
4. 5 опций “Redecode from:” позволяют задать смещение, которое будет передано в
диалог “Redecode MCU #” при этом
5. Кнопка ‘Redecode with shift…” вызывает перезапуск декодирования изображения
со смещением. Смещение задаётся полем ввода рядом.
a. При положительном смещении указанное количество MCU блоков
удаляется (всё изображение после текущего MCU сдвигается влево),
удаление происходит при каждом нажатии на кнопку
b. При отрицательном смещении вставляется указанное количество MCU
блоков (всё изображение после текущего MCU сдвигается вправо),
повторные нажатие не приводят к вставлению ещё такогоже количества
блоков
6. Полоса прокрутки рядом с полем ввода позволяет задавать смещение без ввода
a. Клики на кнопки < и > изменяют смещение на 1
b. Клики на полосу рядом с ползунком - на 3
c. Перетаскивание ползунка - от 1 до 10
7. Флаг “Clean missing MCUs” задаёт, будут ли вставляемые блоки очищаться (в
серый цвет) или нет
8. Кнопка “Cancel redecode” позволяет отменить изменения декодирования текущего
MCU
9. Кнопки “Mrk1->Mrk2” и “Mrk2->Mrk1” задают смещение на основании расстояния
между маркерами 1 и 2, установленными на изображении
10. Кнопка “Mrk1-2 to EOL” выставляет смещение, чтобы маркер 2 оказался в конце
строки MCU блоков, а маркер 1 - максимально близко к текущему MCU (либо в
одной строке с ним, либо в следующей строке). Таким образом, если маркер 1
стоит на начале хорошего изображения после сбоя, а маркер 2 - непосредственно
перед швом “лево/право” - то “Mrk1-2 to EOL” исправит сдвиг изображения на
нужный. См. также п. 4.2 и 4.3
11. Флаг “Auto(1) redecode” задаёт, будет ли выполняться автоматически “Redecode
with shift…” при нажатии на “Mrk1->Mrk2”, “Mrk2->Mrk1” и “Mrk1-2 to EOL”
12. Кнопки “Set DiffRange” задают полосу для связывания цвета в соответствии с
полями ввода около них. Первый блок задёт полосу для связывания “до сбоя”
(текущей строки с нижней), второй блок - для связывания “после сбоя”
(предыдущей строки с текущей). Кнопки “<<” и “>>” изменяют поля ввода на 1.
13. Рекомендуется задавать полосу вручную.
14. Кнопка “Auto color” выполяет автоматическую корректировку цвета на основании
полосы для связывания.
15. Кнопка “Change DC base” вызывает окно “DC fix”
16. Кнопка “Auto(2) auto color” задёт будет ли выполняться автоматически “Auto color”
при нажатии на “Set DiffRange” а также на “Mrk1->Mrk2”, “Mrk2->Mrk1” и “Mrk1-2 to
EOL”
17. Кнопка “Copy from Left” заменяет картинку в текущем MCU блоке на картинку из
предыдущего, на декодирование это не влияет
18. Кнопка “Redecode rest” вызывает декодирование всего изображения после
текущего MCU (с “перезапуском”)
19. Кнопка “Redecode X more Lines” вызывает декодирование ещё нескольких строк
MCU блоков, количество задаётся полем ввода рядом. Кнопки “<<” и “>>” изменяют
поле ввода на 1.
20. Кнопка “Redecode more Line” вызывает декодирование ещё одной строки MCU
блоков
21. Кнопка “Redecode rest after” вызывает декодирование всего остального
изображения (без “перезапуска”)
22. Кнопка “Redraw before” вызывает перерисовку всего изображения до сбойного
блока (полезно в основном при работе по списку ошибок, если изображение не
было отрисовано или перерисовано после изменений)
23. Кнопка “Remove error” - удаляет текущую ошибку из списка (только при работе по
списку ошибок)
5.4. Управление с клавиатуры
(текст в процессе подготовки)