Bersiaplah untuk pos yang luar biasa - ya, ini sudah tidak ada ...
Xkcd wajib:
Sayangnya, tidak ada format 'terbaik' yang sederhana. Beberapa sangat didukung, beberapa menawarkan fleksibilitas ekstrim, beberapa menawarkan kompresi lossless, ...
Bagian pertama dari jawaban ini ("Fitur" & "Tinjauan singkat format") akan berbicara tentang teknis, sedangkan bagian kedua ("Hal-hal yang perlu dipertimbangkan") lebih diarahkan pada aspek praktis dari pemilihan format .
Fitur:
Harap dicatat bahwa hampir tidak mungkin untuk memasukkan setiap retasan ke setiap format - misalnya GIF dapat disimpan tanpa kompresi dengan mengabaikan tabel LZW. Mengapa saya tidak menyebutkan ini di bawah? Karena 99% dari semua GIF yang pernah saya temui menggunakan LZW, karena LZW saat ini adalah orang yang tidak punya otak dalam kekuatan perhitungan, dan karena tulisan ini mencoba untuk mengklarifikasi situasi untuk situasi populer, bukan untuk departemen R&D ILM. Fotografer akan menggunakan file mereka untuk arsip, penerbitan, dan cetak, jadi ini adalah hal-hal yang saya pertimbangkan di sini.
Informasi dicek silang antara masing-masing artikel Wikipedia, spesifikasi, perbandingan Wiki , dan daftar-dukungan-metadata exiftool .
| Bits per | | Supported by
Codec | Lossy | Channel | Metadata | Channels | Programs | Good for (IMHO)
-------------------------------------------------------------------------------------------------
BMP | n | <= 8 | - | RGBA | Most propr. & free | Archival
BPG | y | <= 14 | EXIF+XMP | RGBA | |
EXR | o | <= 32 | y(?) | RGBAD | | VFX workflow
FLIF | o* | <= 16 | EXIF+XMP | RGBA | | To be seen
GIF | n | <= 8* | XMP | RGB | Most propr. & free | GIFs ;-)
HEIF | o* | <= 16 | EXIF+XMP | RGB(A/D) | | To be seen
JPEG | y* | <= 8 | EXIF+IPTC+XMP | RGB | ~ all propr. & free | Online; Easy access
JP2K | o | <= 32 | EXIF+IPTC+XMP | RGBA | |
JXR | o | <= 32 | EXIF+IPTC+XMP | RGBA | |
PNG | n | <= 16 | EXIF+IPTC+XMP*| RGBA | Most propr. & free | CAD-drawings; Online
TGA | n | <= 8 | y(?) | RGBA | |
TIFF | o | <= 32 | EXIF+XMP | RGBA | Most propr. & free | Archival; Editing
WebP | o | <= 8 | EXIF+XMP | RGBA | |
Legenda : o
... Opsional; n
... tidak tersedia; y
... tersedia; D
... Kedalaman; *
... Lihat di bawah sesuai teks.
Ikhtisar singkat format:
BMP
Feature |
-----------------------------------------------------------------
Introduced | 1990
Open + Free | Both per Microsoft's Open Specification Promise
Colorspace | R:G:B[:A] (4:4:4[:4])
b/c/p | 1:0:0[:0], 5:6:5, 8:8:8[:8]
Compression | None [RLE in 5:6:4] (so: lossless)
Maximum Size | 4 GiB
Metadata | [ICC]
OS support | Virtually all OSs with a graphical interface
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
File 'Bitmap' dikodekan dalam garis dan biasanya tidak dikompresi, jadi satu bit flip hanya akan menghancurkan satu baris gambar. Selama itu tidak membalik header, yang akan membuat decoding lebih sulit - coba sendiri dengan HEX editor! . Karena tidak menawarkan kompresi (baik), ukuran file sangat besar, karena harus menyimpan informasi lengkap untuk setiap piksel. Karena kekakuannya, itu mungkin baik untuk arsip jangka panjang.
BPG
Feature |
---------------------------------------------------------------------
Introduced | 2014
Open + Free | Yes (but HEVC patents might be problematic)
Colorspace | R:G:B[:A] (4:4:4[:4]); Y:Cb:CR[:A] (4:2:0[:4] - 4:4:4[:4]);
| Y:Cg:Co[:A] (4:2:0[:4] - 4:4:4[:4]); C:M:Y:K (4:4:4:4)
b/c/p | 8 - 14
Compression | HEVC (lossy / lossless)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [XMP]
OS support | Linux, Mac, Windows (at least through browser decoding)
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
'Better Portable Graphics' (BPG) menggunakan HEVC, yang mungkin Anda ketahui dari codec video h.265 . Itu dimaksudkan untuk menjadi pengganti JPEG, tetapi tidak pernah cukup populer. Dengan munculnya HEIF, yang sangat mirip dalam beberapa hal tetapi lebih populer, masuk akal bahwa HEIF akan lebih disukai. HEVC jauh lebih unggul dalam hal kompresi dibandingkan dengan DCT JPEG - namun, ia tidak membandingkan dengan baik di semua kecuali tingkat bit yang lebih rendah, karena cenderung buram.
EXR
Feature |
---------------------------------------------------------------------
Introduced | 1999
Open + Free | Yes
Colorspace | R:G:B[:A][:D] (4:4:4[:4][:4])
b/c/p | <= 32
Compression | [RLE]; [ZIP]; [PIZ]; ... [lossless (usual) / lossy]
Maximum Size | > 4 GiB
Metadata | [Yes (XMP-style)]
OS support | Linux, Mac, Windows (through library)
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
OpenEXR dirancang oleh Industrial Lights and Magic (ILM) sebagai format perantara untuk alur kerja VFX. Itu dapat menampung banyak saluran pada kedalaman bit sangat tinggi, banyak gambar, dan metadata dalam satu file. Ini menawarkan algoritma kompresi yang berbeda - atau tanpa kompresi sama sekali. EXR dapat dibandingkan dengan TIFF - EXR menawarkan lebih banyak opsi, sementara TIFF jauh lebih populer.
FLIF
Feature |
---------------------------------------------------------------------
Introduced | 2015
Open + Free | Yes
Colorspace | R:G:B[:A] (4:4:4[:4]) (CMYK and YCbCr in ToDo-List)
b/c/p | <= 16
Compression | MANIAC (variant of CABAC, used in AVC/HEVC) (lossless / lossy (1st generation))
Maximum Size | > 4 GiB
Metadata | [EXIF]; [ICC]; [XMP]
OS support | Linux, Mac, Windows (through provided viewer)
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
'Free Lossless Image Format' (FLIF) menggunakan turunan kompresi HEVC yang lossless. FLIF mengklaim memiliki rasio kompresi ekstrem dibandingkan dengan semua format lain waktu - sementara tes saya sendiri membuat saya percaya ini, itu benar-benar membutuhkan daya komputasi yang dapat digunakan (Beberapa menit waktu pengkodean untuk gambar tunggal 24 MP dengan gambar hyperhreaded 4,3 GHz hexacore tidak begitu baik: D) . Namun, karena ini adalah codec muda, perbaikan mungkin muncul. Ia menawarkan dukungan untuk animasi, saluran alfa, decoding progresif, dan bahkan pengkodean lossy (tanpa kehilangan generasi setelah pengkodean pertama). Hanya waktu yang akan menunjukkan apakah itu akan berhasil, dan jujur saja, saya berharap begitu, karena tampaknya menawarkan solusi tunggal untuk banyak masalah.
GIF
Feature |
---------------------------------------------------------------------
Introduced | 1987
Open + Free | Yes
Colorspace | R:G:B[:A] (4:4:4[:4])
b/c/p | 2 (palette of 256 colors in total)
Compression | LZW (lossless)
Maximum Size | < 4 GiB
Metadata | [XMP]
OS support | Virtually all OSs with a graphical interface
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
Sementara 'Graphics Interchange Format' (GIF) menawarkan 8 bit per saluran per piksel, itu akan menguranginya menjadi palet warna 256 warna (yang dapat mencakup "warna latar belakang"). Ini sebagian besar digunakan untuk animasi - satu-satunya hal yang PNG tidak dapat lakukan lebih baik, karena PNG sendiri tidak menawarkan dukungan animasi.
HEIF
Feature |
----------------------------------------------------------------------
Introduced | 2015
Open + Free | No (patents)
Colorspace | ? Y:Cb:Cr[:A/:D] (4:2:0[:4]) ?
b/c/p | <= 16
Compression | HEVC (lossy)
Maximum Size | < 4 GiB
Metadata | [EXIF]; [XMP]
OS support | Linux, Mac, Windows
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
'Format Gambar Efisiensi Tinggi' (HEIF) juga menggunakan HEVC untuk kompresi. Selain saluran warna, saluran ini juga dapat menahan saluran alfa atau peta kedalaman (digunakan untuk efek kedalaman-bidang-bidang perangkat lunak yang lebih baru ). Juga, pengeditan yang belum sempurna dapat terjadi tanpa kehilangan. Sesuai dengan spesifikasi, ia juga memiliki mode kompresi lossless. Karena semua OS utama mendukungnya, sepertinya pesaing yang paling mungkin untuk suksesi JPEG (jika ada).
JPEG
Feature |
----------------------------------------------------------------------
Introduced | 1991
Open + Free | Sort of (free library, but patent might apply)
Colorspace | Y:Cb:Cr (4:2:0 (typical) - 4:4:4)
b/c/p | 8
Compression | DCT (lossy)
Maximum Size | < 2 GiB
Metadata | [EXIF]; [ICC]; [IPTC]; [XMP]
OS support | Virtually all OSs with a graphical interface
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
'Joint Photographic Experts Group' (JPEG) adalah format gambar yang paling banyak digunakan saat ini. Ia menggunakan transformasi cosine diskrit (DCT), yang merupakan jenis lossy. Ada spesifikasi lossless, tetapi tidak digunakan terlalu sering. Program-program tertentu dapat melakukan tindakan rudimenter tertentu (mis. Rotasi) tanpa kehilangan, meskipun ini juga membutuhkan lebar dan tinggi gambar untuk dapat dibagi oleh 8 (ukuran blok JPEG) - misalnya 800x640 akan berfungsi, 804x643 tidak akan. JPEG tidak memiliki opsi untuk menyimpan gambar dalam RGB - ia mengubah gambar menjadi ruang warna YCbCr dan sering mengurangi informasi piksel dari 4: 4: 4 (setiap piksel memiliki semua saluran) menjadi 4: 2: 0 (setiap saluran memiliki pencahayaan, tetapi hanya setiap piksel ke- 4 yang mendapat nilai Cb / Cr). Seperti kebanyakan konversi colorpace, ini dapat menyebabkan perbedaan yang dapat dilihat terutama dalam warna-warna ekstrem. JPEG cepat untuk disandikan dan tidak terlalu buruk dalam pengaturan kualitas tinggi, tetapi bagi saya, hal-hal yang disebutkan di atas tidak akan membuat saya menangis jika itu pernah hilang - itu membantu kami dengan baik, tetapi format gambar yang digunakan bisa sedikit lebih ... baru. Bagaimanapun, komputer berkembang dengan baik sejak 1991.
JP2k
Feature |
----------------------------------------------------------------------
Introduced | 2000 (duh...)
Open + Free | No (patents)
Colorspace | ? Y:Cb:Cr[:A] (4:4:4[:4]) ?
b/c/p | 8 - 32
Compression | Wavelet (lossy / lossless)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [IPTC]; [XMP]
OS support | Linux, Mac, Windows (at least through viewer programs)
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
'JPEG 2000' (JP2k atau JP2) adalah penerus resmi untuk JPEG. Ia menggunakan wavelet daripada DCT, yang menawarkan artefak yang lebih sedikit dan secara keseluruhan lebih fleksibel daripada JPEG. Terlepas dari semua ini, tidak pernah benar-benar berhasil dengan JPEG.
JXR
Feature |
----------------------------------------------------------------------
Introduced | 2009
Open + Free | Yes (Microsoft Open Specification Promise)
Colorspace | Y:Cb:Cr[:A] (4:2:0[:4] - 4:4:4[:4]); Y:Cg:Co[:A] (? 4:2:0[:4] - 4:4:4[:4] ?);
| C:M:Y:K [4:4:4:4]
b/c/p | 8 - 32 (16 for CMYK)
Compression | DCT (lossy / lossless)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [IPTC]; [XMP]
OS support | Linux, Mac, Windows (at least through viewer programs)
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
'JPEG extended range' (JPEG XR, JXR) adalah upaya lain untuk berhasil JPEG. Ruang warna YCgCo-nya lebih unggul daripada YCbCr karena sepenuhnya reversibel. Sementara beberapa perangkat lunak mendukungnya, itu juga tidak pernah mendekati ketenaran format lain.
PNG
Feature |
----------------------------------------------------------------------
Introduced | 1996
Open + Free | Yes
Colorspace | R:G:B[:A] (4:4:4[:4])
b/c/p | 8 - 16
Compression | DEFLATE (lossless)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [IPTC]; [XMP]
OS support | Virtually all OSs with a graphical interface
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
'Portable Network Graphics' (PNG) diperkenalkan sebagai penerus GIF. Sementara itu adalah desain lossless, file PNG dapat dioptimalkan dengan beberapa alat, beberapa di antaranya akan memampatkan file dengan cara lossy. PNG menggunakan kompresi DEFLATE, sehingga cukup efisien untuk grafik (seperti gambar CAD, tangkapan layar, ...), tetapi kurang efisien untuk foto. Meskipun menawarkan dukungan untuk metadata, beberapa program mengalami kesulitan membacanya. Terima kasih untuk informasi lebih lanjut, @mattdm !
TGA
Feature |
----------------------------------------------------------------------
Introduced | 1984
Open + Free | ? Yes
Colorspace | R:G:B[:A] (4:4:4[:4])
b/c/p | <= 8
Compression | RLE (lossless)
Maximum Size | ? < 2 GiB
Metadata | Rudimentary
OS support | ? Virtually all OSs with a graphical interface
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
'Truevision TGA' / 'TARGA' (TGA) adalah format khusus yang hanya saya sertakan karena semua orang sepertinya mengetahuinya. Ini diperkenalkan pada tahun 1984. Ini mendukung kompresi lossless (RLE) yang akan berfungsi baik untuk grafis, tetapi tidak begitu baik untuk foto.
BERTENGKAR
Feature |
----------------------------------------------------------------------
Introduced | 1986
Open + Free | ? Yes
Colorspace | R:G:B[:A] (4:4:4[:4]); Y:Cb:Cr[:A] (? 4:2:0[:4] - 4:4:4[:4] ?);
| C:M:Y:K (? 4:4:4:4 ?); L:a:b[:A] (? 4:4:4:[A] ?)
b/c/p | 8 - 32
Compression | [LZW (lossless)]; [ZIP (lossless)]; [JPEG (lossy)]
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [XMP]
OS support | Virtually all OSs with a GUI support >= 1 of the compression types
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
'Format File Gambar Tagged' (TIF atau TIF) telah ada sejak lama, juga. Ini menawarkan dukungan lapisan (yaitu beberapa gambar RGBA ditumpuk). TIFFs sering digunakan sebagai file perantara karena didukung secara luas dan cukup fleksibel dalam hal kemampuannya.
WebP
Feature |
----------------------------------------------------------------------
Introduced | 2010
Open + Free | Yes
Colorspace | R:G:B:A (4:4:4[:4]) lossless; Y:Cb:Cr[:A] (4:2:0[:4]) lossy
b/c/p | 8
Compression | VP8 (lossless / lossy)
Maximum Size | ?
Metadata | [EXIF]; [ICC]; [XMP]
OS support | Linux, Mac, Windows (at least through browser decoding)
Legenda : b/c/p
... bit per saluran (mis. R, G, B) per piksel. hal-hal di [ ]
adalah opsional; ?
... tebakan / tidak tahu petunjuk.
'WebP' menggunakan VP8 (format saingan sumber terbuka untuk AVC). Seperti halnya BPG, itu tidak pernah membuat lompatan ke perangkat konsumen, meskipun tampaknya itu digunakan oleh banyak layanan internet.
(Lainnya) Hal-hal yang perlu dipertimbangkan:
Pengodean ulang (kehilangan generasi)
Pengkodean ulang file lossless tidak akan mengubah apa pun - pengkodean ulang file lossy hampir pasti akan mengarah ke artefak. JPEG dapat menangani ini dengan cukup baik jika Anda menyimpan file dalam pengaturan kualitas yang sama dengan yang disimpan sebelumnya.
Video ini menunjukkan kehilangan generasi dengan cukup baik - bingkai pertama menunjukkan file asli, sementara yang lainnya menunjukkan kompresi ulang pada pengaturan kualitas yang berbeda. (Perhatikan bahwa FLIF dalam mode lossy, sehingga frame pertama akan terlihat berbeda.)
Artefak tidak harus berupa hukuman mati - misalnya untuk penerbitan web cepat atau pratinjau pada perangkat seluler, itu mungkin tidak terlalu buruk.
Panjang umur codec
Ketika menulis jawaban ini, saya berpikir dalam hati, "siapa yang akan menggunakan TARGA saat ini?" dan itu membuat saya berpikir: Saya tidak akan pernah ragu untuk mengendarai mobil buatan tahun 80-an. Saya tidak akan ragu untuk melihat foto yang diambil di tahun 80-an. Saya akan menggunakan kamera yang dibuat pada waktu itu. Tapi saya tidak akan menggunakan codec yang lama. Mengapa?
Pada akhirnya, tidak ada cara pasti untuk mengatakan apakah satu codec atau yang lain akan bertahan dalam rentang waktu tertentu. Jika HEIF mengganti JPEG di semua perangkat konsumen besok, berapa lama untuk program untuk menghentikan dukungan JPEG? Berapa banyak generasi komputer - dan yang lebih penting: OS - akan ada sebelum Anda tidak bisa lagi membukanya?
Di sisi lain, codec yang relatif sederhana seperti TARGA hanya meminta program yang relatif sederhana untuk membacanya, sementara codec modern dan decoder mereka memiliki banyak dependensi. Jadi, meskipun kesederhanaan buruk untuk kompresi, mungkin bagus untuk arsip dalam skenario apokaliptik. Terima kasih @lijat untuk menunjukkan ini!
Menurut pendapat saya, ini perlu beberapa sudut untuk dipertimbangkan: Codec mana yang cukup populer sehingga dukungan tidak akan langsung turun? Codec mana yang didukung oleh komunitas open source (karena tidak ada yang akan mempertahankan format kepemilikan dari perusahaan yang bangkrut)? Juga, tampaknya setidaknya setiap dekade atau lebih, orang harus melihat apakah ada kebutuhan untuk beralih ke codec baru yang lebih baik (Lihat "Pengodean ulang (kehilangan generasi)") - Anda tidak akan, misalnya, ingin koleksi TARGA Anda tidak dapat dibaca besok, kan?
Ngomong-ngomong, itu sangat mengkhawatirkan saat memikirkan file RAW .
Dukungan program (Umur Panjang # 2)
Codec yang paling populer dan terbaik tidak akan cukup baik jika Anda tidak dapat menggunakannya. Dan sementara saya tidak akan menggunakan codec inferior hanya karena program tertentu tidak mendukungnya, mungkin buruk untuk menggunakan codec yang hanya didukung satu program dengan benar.
Fitur apa yang saya butuhkan?
Secara pribadi, saya masih menyandikan sebagian besar file saya dalam format JPEG - saya dapat membacanya di perangkat apa pun dan saya hampir tidak bisa (jika ada) melihat artefak. 8bit cukup baik untuk sebagian besar perangkat dan saluran alfa tidak benar-benar diperlukan ketika hanya melihat gambar.
Untuk semua file yang bukan "edit satu kali" -tata, saya menyimpan RAW atau setidaknya TIFF 16 bit agar masih dapat digunakan di masa mendatang.
PSD? DNG?
"Photoshop Document" (PSD) adalah format Photoshop yang bergaya TIFF. Secara teknis, ini sangat mirip dengan TIF. Ada PSB juga, yang merupakan hal yang sama hanya untuk ukuran file lebih dari 4 GiB. Tidak ada yang salah dengan menggunakannya, tetapi secara pribadi, saya lebih suka TIFF sejauh mungkin.
"Digital Negative" (DNG) adalah upaya untuk membuat standar RAW terbuka. Walaupun saya menyukai gagasan itu dan itu bekerja dengan sangat baik, perhatikan bahwa beberapa editor RAW memiliki masalah dengan mereka - misalnya Capture One biasanya melupakan keseimbangan putih kamera, sehingga mengatur slider ke 5000K, tidak peduli berapa nilai sebenarnya. Program lain di masa lalu telah menunjukkannya sebagai gambar putih atau merah muda yang solid atau memberi mereka rona magenta. Jika ukuran file tidak menjadi masalah bagi Anda, maka Anda dapat memasukkan RAW asli dalam DNG Anda - jika Anda membutuhkannya lagi, Anda bisa mengekstraknya lagi. 2 sen saya? Cobalah dengan perangkat lunak favorit Anda - dan jika berfungsi dengan baik, gunakan itu.
Format lain?
Karena ini sudah tidak terkendali, saya tidak ingin membahas lebih banyak format gambar. Namun, ini tidak berarti bahwa mereka yang tidak terdaftar tidak layak dipertimbangkan.