Словник

Що таке процес кодування?

Процес кодування називає метод, який файл JPEG використав для стиснення своїх графічних даних, наприклад базовий або прогресивний. Його зчитують із самих даних зображення.

encoding-process

Процес кодування це метод, який перетворює зображення на стиснені дані зображення. У звіті про метадані Encoding Process називає метод, який використовував файл JPG, наприклад Baseline DCT, Huffman coding.

Значення має 2 частини. Перша частина вказує, як були стиснені дані зображення. Друга частина вказує, як результат було упаковано в біти.

Які файли містять його

Encoding Process це поле JPEG, і кожне зображення JPEG його має. Стандарт JPEG розміщує цю інформацію в короткому заголовку, який стоїть перед стисненими даними зображення.

Звідки походить значення

Жодна камера чи програма не записує Encoding Process як окремий тег. Програма для читання, така як ExifTool, визначає значення з маркера Start of Frame, який відкриває цей заголовок. Стандарт JPEG визначає окремий маркер для кожного процесу кодування.

У цьому самому заголовку також зберігаються ширина та висота зображення, біти на вибірку і кількість колірних компонентів. ExifTool також визначає хроматичну субдискретизацію з цього заголовка.

Оскільки значення описує, як зберігаються дані зображення, ви не можете редагувати його як звичайний тег. Encoding Process змінюється лише тоді, коли програма знову зберігає зображення з іншими налаштуваннями.

Як виглядають значення

ExifTool показує одне з 13 значень. За даними Бібліотеки Конгресу, поширеними є baseline і progressive.

  • Baseline DCT, Huffman coding
  • Extended sequential DCT, Huffman coding
  • Progressive DCT, Huffman coding
  • Lossless, Huffman coding
  • Sequential DCT, differential Huffman coding
  • Progressive DCT, differential Huffman coding
  • Lossless, Differential Huffman coding
  • Extended sequential DCT, arithmetic coding
  • Progressive DCT, arithmetic coding
  • Lossless, arithmetic coding
  • Sequential DCT, differential arithmetic coding
  • Progressive DCT, differential arithmetic coding
  • Lossless, differential arithmetic coding

Що означає кожна частина значення

  • DCT означає дискретне косинусне перетворення. Процеси JPEG, що базуються на DCT, є з втратами: вони відкидають деякі деталі, щоб зменшити розмір файлу.
  • Baseline це базовий процес DCT. Він використовує 8 бітів на вибірку та кодування Хаффмана.
  • Sequential означає, що кожен колірний компонент зберігається в одному проході.
  • Extended sequential працює як baseline, але також дозволяє 12 бітів на вибірку та арифметичне кодування.
  • Progressive зберігає зображення в кількох проходах. Кожен прохід зазвичай покращує якість, тож переглядач може спочатку показати грубе зображення, а потім зробити його чіткішим.
  • Lossless не використовує DCT. Декодоване зображення ідентичне оригіналу.
  • differential належить до ієрархічного режиму. Тут кожен наступний кадр зберігає лише відмінності від попереднього кадру.
  • Huffman coding і arithmetic coding це 2 безвтратні способи упакувати дані в меншу кількість бітів.

Чому це важливо для вашого файлу

Стандарт JPEG не вимагає, щоб кожна програма підтримувала кожен процес. Кожен декодер DCT має підтримувати baseline, тому файл baseline є безпечним вибором, якщо зображення має відкриватися всюди.

Інші процеси можуть не відкриватися в окремих програмах. За даними Бібліотеки Конгресу, початковий безвтратний процес був недостатньо підтриманий у застосунках. Один безвтратний варіант із кодуванням Хаффмана використовується у версії 1.1 необробленого формату Adobe DNG.

Значення з DCT показує, що під час збереження зображення були втрачені деякі деталі. Повторне збереження файлу не поверне ці деталі. Поле лише описує, як зображення зберігається, і не містить особистої інформації.

Мета ключі