Słownik

Czym Jest Proces Kodowania?

Encoding Process oznacza metodę, jaką plik JPEG wykorzystał do skompresowania swoich danych obrazowych, na przykład baseline lub progressive. Wartość ta jest odczytywana bezpośrednio z samych danych obrazu.

encoding-process

Proces kodowania to metoda, która zamienia obraz w skompresowane dane obrazu. W raporcie o metadanych Proces kodowania podaje metodę używaną przez plik JPG, na przykład Baseline DCT, Huffman coding.

Wartość ma 2 części. Pierwsza określa, jak dane obrazu zostały skompresowane. Druga określa, jak wynik został spakowany do bitów.

Które pliki to zawierają

Proces kodowania jest polem JPEG i ma je każdy obraz JPEG. Standard JPEG umieszcza te informacje w krótkim nagłówku, który znajduje się przed skompresowanymi danymi obrazu.

Skąd pochodzi wartość

Żaden aparat ani program nie zapisuje Procesu kodowania jako osobnego tagu. Czytnik taki jak ExifTool wylicza tę wartość ze znacznika Start of Frame, który otwiera ten nagłówek. Standard JPEG definiuje inny znacznik dla każdego procesu kodowania.

Ten sam nagłówek zapisuje też szerokość i wysokość obrazu, bity na próbkę oraz liczbę składowych koloru. ExifTool wylicza z tego nagłówka także próbkowanie chrominancji.

Ponieważ ta wartość opisuje, jak są zapisane dane obrazu, nie możesz jej edytować jak zwykłego tagu. Proces kodowania zmienia się tylko wtedy, gdy program zapisze obraz ponownie z innymi ustawieniami.

Jak wyglądają wartości

ExifTool pokazuje jedną z 13 wartości. Według Library of Congress najczęstsze są baseline i 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

Co oznacza każda część wartości

  • DCT oznacza dyskretną transformację kosinusową. Procesy JPEG oparte na DCT są stratne: usuwają część szczegółów, aby zmniejszyć rozmiar pliku.
  • Baseline to podstawowy proces DCT. Używa 8 bitów na próbkę i kodowania Huffmana.
  • Sequential oznacza, że każda składowa koloru jest zapisana w jednym skanie.
  • Extended sequential działa jak baseline, ale pozwala także na 12 bitów na próbkę i kodowanie arytmetyczne.
  • Progressive zapisuje obraz w kilku skanach. Każdy skan zwykle poprawia jakość, więc przeglądarka może najpierw pokazać zgrubny obraz, a potem go wyostrzyć.
  • Lossless nie używa DCT. Odkodowany obraz jest identyczny z oryginałem.
  • differential należy do trybu hierarchicznego. Tutaj każda kolejna klatka zapisuje tylko różnice względem poprzedniej.
  • Huffman coding i arithmetic coding to 2 bezstratne sposoby pakowania danych w mniejszą liczbę bitów.

Dlaczego ma to znaczenie dla Twojego pliku

Standard JPEG nie wymaga, aby każdy program obsługiwał każdy proces. Każdy dekoder DCT musi obsługiwać baseline, więc plik baseline to bezpieczny wybór, gdy obraz ma się otworzyć wszędzie.

Inne procesy mogą nie otwierać się w niektórych programach. Według Library of Congress oryginalny proces bezstratny nie był szeroko obsługiwany w aplikacjach. Jeden wariant bezstratny z kodowaniem Huffmana jest używany w wersji 1.1 surowego formatu Adobe DNG.

Wartość z DCT mówi Ci, że podczas zapisywania obrazu usunięto część szczegółów. Ponowne zapisanie pliku nie przywróci tych szczegółów. To pole tylko opisuje sposób zapisania obrazu i nie zawiera żadnych danych osobowych.