如果我使用GIMP,Photoshop或MS Paint等应用程序编辑图像文件,则在保存时会要求我选择所需的文件格式。有不同的格式,常见的是JPEG,PNG 和BMP,GIF和TIFF。在某些程序中,甚至还有更多格式,例如JP2。
那么我应该选择哪个选项呢?使用特定文件格式的优点和缺点是什么?
如果我使用GIMP,Photoshop或MS Paint等应用程序编辑图像文件,则在保存时会要求我选择所需的文件格式。有不同的格式,常见的是JPEG,PNG 和BMP,GIF和TIFF。在某些程序中,甚至还有更多格式,例如JP2。
那么我应该选择哪个选项呢?使用特定文件格式的优点和缺点是什么?
Answers:
JPEG有损,这意味着它通过丢弃数据来压缩图像(部分)。(通常)选择丢弃的数据以最大程度地减少对图像质量的影响,但是(实际上)它总是会损失至少一点质量-根据选择的质量级别,它可能会损失很多。对于大多数照片,应将其视为仅显示格式-将某些内容转换为JPEG后,就不再需要对其进行任何编辑。如果需要进行更改,请从其他格式重新开始,进行更改,然后再进行JPEG转换。
JPEG规范有更新的版本。他们定义了新的图像压缩形式,通常可以更好地在文件大小和图像质量之间进行权衡取舍-您选择较小文件的相同质量,或选择文件大小大致相同的更好质量。它们还支持更高的颜色分辨率(例如,每通道16位和浮点格式以支持高动态范围)。从技术角度来看,它们非常有吸引力。最大的缺点是,几乎没有多少程序知道如何读取,显示,操纵或编写它们。
像TIFF一样,HEIF实际上是一种容器格式,可以包含使用各种方法(主要是h.265,h.264和JPEG)编码的图像。与原始JPEG相比,它提供了更好的质量与文件大小的比率。像TIFF(或GIF)一样,您可以将整个图片序列打包到一个文件中。尽管在2014年推出HEIF时引起了极大的轰动,但有关如何最终成为JPEG的格式的许多声明却广为流传,但大多数兴奋似乎都在逐渐消失,而其并未取代JPEG。
BPG是一种由多产的程序员Fabrice Bellard设计的格式。它与HEIF相似,基本上是一个使用h.265编码的图像的容器。但是,包装器有点不同,因此两者并不兼容。但是,从摄影的角度来看,BPG具有相当大的优势:它直接支持将EXIF数据嵌入到图像文件中。
尽管我们通常认为JPEG是有损的,但JPEG规范定义了也使用无损压缩的文件格式。由于压缩是无损的,因此它们通常不会产生比普通JPEG压缩几乎小的文件,但实际上,它们对无损压缩的表现确实非常好-远远优于通常希望的LZW或Huffman编码等通用压缩。在照片上。像JPEG 2000和JPEG XR一样,它们可以很好地工作,但是缺少支持。
GIF仅使用无损压缩,但仅限于8位(256)色彩,这对于照片而言是相当有限的。
PNG被设计为GIF的替代品,并且大多数都成功了。它支持24位彩色(红色,绿色和蓝色各8位),并使用无损压缩。它具有照片所需的色彩分辨率,但是它对大多数照片使用的压缩效果却很差,因此文件最终很大。PNG的另一个主要缺点是,它没有定义存储EXIF(或类似数据)数据的方法,因此,如果使用它存储照片,则必须分别存储元数据。可以自己使用,但是如果在网页上或类似的东西上使用它通常会丢失。
TIFF实际上是一种容器格式,允许您将各种数据插入到容器中。尽管它主要用于图像,但实际上几乎就像一个文件系统,因此理论上您可以将其用于几乎所有类型的数据。这会带来一些后果。一个就是即使程序支持TIFF文件,它也可能不支持所有 TIFF文件-例如,许多程序不支持LZW压缩的图像。实际上,很少有程序支持所有可能的TIFF文件。另一个结果是TIFF往往会产生相当大的开销,并且编写代码(完全支持)非常麻烦(这就是为什么许多程序仅不完全支持TIFF的原因)。
BMP基本上只是写到磁盘的Windows设备无关位图。它对压缩的支持非常有限(大多数 BMP根本不压缩)。为Windows编写的程序可以非常轻松地读取/写入BMP ,但是没有太多其他建议(特别是BMP文件对于要存储的数据量来说往往很大)。BMP缺乏任何存储EXIF(或类似)元数据的方法。BMP类似于PNG,但更特定于Windows。
JPEG作为输出格式很有用(例如,在网页上显示内容非常好,因为它很紧凑,几乎每个人都可以阅读)。
TIFF通常用作(例如)存储以后可以编辑的文件的中间格式。
256色限制使GIF几乎无法用于照片。BMP和PNG基本上对照片本身无害,但是不能存储元数据,并且它们对照片使用的压缩很少对照片非常有效(尽管现在存储价格很低,很多人可能对此不太在意)。
通常,除非您有充分的理由,否则我可能会说您可能希望保存为支持元数据的格式。在这方面,jpeg和tiff是RAW + XMP或DNG以外的两种最常见的摄影格式。
我已经在一些在线作品集中使用了PNG,因为我一直在为缩小的图像画上圆角,以便进行更好的展示,并做了一些使我的作品与众不同的事情。不利的一面是PNG不支持元数据。这在很多方面限制了我,因为大多数更好的在线照片网站都支持自动元数据提取和显示(即Flickr)。
更明确地说...当在Flickr,DeviantArt,1x,RedBubble等网上展示缩小版本的艺术品时,最好将JPEG用作最终输出格式。这些文件质量很好,但非常紧凑,并且支持元数据。对于原件的长期存储,我建议使用RAW + XMP,DNG或TIFF,因为所有这些格式均进行无损压缩并保留元数据。如果您使用的是Gimp,TIFF可能是您的最佳选择。我自己使用RAW + XMP,因为我喜欢拥有原始的原始文件...但是我也考虑过将所有内容转换为DNG以简化文件管理。
准备一个巨大的职位-是的,这失控了...
不幸的是,没有简单的“最佳”格式。一些受到很好的支持,一些提供了极大的多功能性,一些提供了无损压缩,...
该答案的第一部分(“功能”和“格式概述”)将讨论技术性,而第二部分(“(其他)要考虑的事项”)则更多地针对格式选择的实际方面。 。
请注意,几乎不可能将每种技巧都包含在每种格式中-例如,可以通过忽略LZW表来保存GIF,而无需进行压缩。为什么我在下面不提呢?因为我曾经遇到过的所有GIF中有99%是使用LZW的,因为今天的LZW的计算能力毋庸置疑,并且因为该帖子试图阐明流行情况的情况,而不是ILM的研发部门。摄影师将使用其文件进行存档,发布和打印,所以这些是我在这里考虑的。
在相应的Wikipedia文章,规范,Wiki的比较以及exiftool的metadata-support-list之间对信息进行了交叉检查。
| 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 | |
图例:o
...可选;n
... 无法使用; y
...可用; D
深度 *
...在下面看相应的文字。
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
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
“位图”文件是按行编码的,通常不会压缩,因此,只要不翻转标头,一次翻转就只会破坏图像的一行,这会使解码更加困难-尝试自己使用HEX编辑!。由于它不提供(好的)压缩,因此文件大小很大,因为它必须保存每个像素的完整信息。由于其刚性,它可能适合长期归档。
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)
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
“更好的便携式图形”(BPG)使用HEVC,您可以从h.265视频编解码器中了解到。它本来是JPEG的后继者,但从未获得足够的普及。随着HEIF的兴起(在某些方面非常相似,但越来越流行),HEIF将成为首选似乎是有道理的。与JPEG的DCT相比,HEVC在压缩方面要优越得多-但是,除了较低的比特率外,它在所有方面都无法很好地比较,因为它趋于模糊。
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)
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
OpenEXR是由Industrial Lights and Magic(ILM)设计的,是VFX工作流程的中间格式。它可以在一个文件中以很高的位深度容纳多个通道,多个图像和元数据。它提供了不同的压缩算法-或根本没有压缩。可以将EXR与TIFF进行比较-EXR提供了更多选择,而TIFF则很受欢迎。
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)
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
“免费无损图像格式”(FLIF)使用无损HEVC压缩的派生版本。与当时的所有其他格式相比,FLIF声称具有极高的压缩率-虽然我自己的测试使我相信这一点,但它确实需要计算能力才能使用(超线程的单个24 MP图片的编码时间为几分钟) 4,3 GHz六核不是很好:D)。但是,由于它是一个年轻的编解码器,因此可能会有所改进。它提供了对动画,alpha通道,逐行解码甚至是有损编码的支持(在第一次编码后就不再有生成损失)。只有时间会证明它能否成功,而且老实说,我很希望如此,因为它似乎为多个问题提供了一个单一的解决方案。
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
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
虽然“图形交换格式”(GIF)报价每像素信道的8位,它会减少他们的256色的调色板(其可以包括一个“背景颜色”)。它主要用于动画-PNG不能做得更好的唯一事情,因为PNG本身不提供动画支持。
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
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
“高效图像格式”(HEIF)也使用HEVC进行压缩。除颜色通道外,它还可以容纳一个Alpha通道或一个深度图(用于以后的软件景深效果)。此外,基本的编辑可以无损地进行。根据规范,它还具有无损压缩模式。由于所有主要的操作系统都支持它,因此它似乎是接连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
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
可以说,“联合图像专家组”(JPEG)是当今使用最广泛的图像格式。它使用离散余弦变换(DCT),这是有损的。有一个无损规范,但是它并不经常使用。某些程序可以无损地执行某些基本操作(例如旋转),尽管这也要求图像的宽度和高度可以被8整除(JPEG的块大小)-例如800x640可以工作,而804x643则可以。JPEG没有将图像保存为RGB的选项-它将图片转换为YCbCr颜色空间,并且通常将像素信息从4:4:4(每个像素具有所有通道)减少到4:2:0(每个通道具有亮度,但是只有每第 4 个像素获得Cb / Cr值)。与大多数色彩空间转换一样,这可能导致可察觉的差异,尤其是在极端色彩中。JPEG可以快速编码,并且在高质量设置中还不错,但是对我来说,如果它消失了,上面提到的事情不会让我哭泣-它对我们有用,但是使用的图像格式可能要多一些...最近。毕竟,自1991年以来,计算机发展良好。
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)
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
“ JPEG 2000”(JP2k或JP2)是JPEG的正式后继产品。它使用小波代替DCT,后者提供更少的块状伪像,并且比JPEG更具通用性。尽管如此,它从未真正赶上JPEG。
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)
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
“ JPEG扩展范围”(JPEG XR,JXR)是继JPEG之后的另一种尝试。它的YCgCo色彩空间优于YCbCr,因为它是完全可逆的。尽管某些软件支持它,但它也永远无法接近其他格式的名声。
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
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
“便携式网络图形”(PNG)是GIF的后继产品。尽管PNG文件在设计上是无损的,但可以使用多种工具对其进行优化,其中一些工具会以有损方式压缩文件。PNG使用DEFLATE压缩,因此它对于图形(例如CAD图纸,屏幕截图等)非常有效,而对照片则效率较低。虽然它提供了对元数据的支持,但是某些程序在读取它们时遇到了麻烦。感谢您的单挑,@ mattdm!
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
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
“ Truevision TGA” /“ TARGA”(TGA)是一种国际剑联格式,因为所有人似乎都知道,所以我只加入了它们。它于1984年推出。它支持无损压缩(RLE),该功能对于图形来说可以正常工作,但对照片而言却不是那么好。
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
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
“标记图像文件格式”(TIF或TIF)也已经存在很长时间了。它提供了图层支持(即,堆叠了多个RGBA图像)。TIFF通常用作中间文件,因为它们被广泛支持并且在功能方面非常灵活。
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)
图例:b/c/p
每个像素每个通道的位(例如R,G,B)。里面的东西[ ]
是可选的;?
...受过教育的猜测/毫无头绪。
“ WebP”使用VP8(AVC的开源竞争对手格式)。与BPG一样,它似乎从未进入消费设备领域,尽管似乎许多互联网服务都在使用它。
重新编码无损文件不会改变任何内容-重新编码有损文件几乎肯定会导致伪像。如果您以与之前保存的相同的质量设置保存文件,JPEG可以很好地处理此问题。
该视频很好地显示了一代损失 -第一帧显示了原始文件,而其他所有帧则显示了在不同质量设置下的重新压缩。(请注意,FLIF处于有损模式,因此第一帧看起来会有所不同。)
人工制品不一定是死刑判决-例如,对于快速的Web发布或在移动设备上预览,它可能还不错。
在写这个答案时,我在想:“现在谁会使用TARGA?” 这让我想到:我会毫不犹豫地驾驶80年代制造的汽车。我会毫不犹豫地看一下80年代拍摄的照片。我会使用那段时间制造的任何相机。但是我不会使用那么老的编解码器。为什么?
最后,没有确定的方法可以说一个编解码器或另一个编解码器能否在特定时间范围内幸存。如果HEIF明天要在所有消费类设备上替换JPEG,程序将需要多长时间才能停止JPEG支持?在您无法再打开计算机之前,会有几代计算机-更重要的是:操作系统?
另一方面,相对简单的编解码器(例如TARGA)只需要相对简单的程序即可读取它们,而现代编解码器及其解码器则具有多个依赖性。因此,虽然简单性不利于压缩,但对于世界末日的情况下的存档可能会有利。感谢@lijat指出这一点!
我认为,这需要几个角度来考虑:哪种编解码器足够流行,因此支持不会立即消失?开源社区支持哪种编解码器(因为没有人会维护破产公司的专有格式)?另外,似乎至少每十年左右,应该看看是否有必要跳到新的,更好支持的编解码器(请参阅“重新编码(代损失)”) -例如,您不需要您的TARGA系列明天将无法阅读,对吧?
如果您不能使用最流行,最好的编解码器,那将不够好。尽管我不会仅仅因为某个特定程序不支持劣质编解码器而使用劣等编解码器,但是使用仅能正确支持一个程序的编解码器可能会很不好。
就我个人而言,我仍然将大多数文件编码为JPEG-我可以在任何设备上阅读它们,而我几乎(如果有的话)几乎看不到人工制品。8bit对于大多数设备来说已经足够了,仅查看图片时并不需要真正的alpha通道。
对于所有非“一次性编辑”风格的文件,我要么保留RAW,要么至少保留16位TIFF,以便将来仍可使用。
“ Photoshop文档”(PSD)是Photoshop的TIFF样式格式。从技术上讲,它与TIF非常相似。也有PSB,只是文件大小超过4 GiB的情况相同。使用它并没有错,但是就我个人而言,我尽可能地喜欢TIFF。
“数字负片”(DNG)是一种尝试创建开放RAW标准的尝试。虽然我很喜欢这个主意,但效果很好,但请注意,有些RAW编辑器会遇到麻烦-例如,Capture One通常会忘记相机的白平衡,因此不管实际值是多少,都将滑块设置为5000K。过去的其他程序将它们显示为纯白色或粉红色图像,或赋予它们洋红色的色调。如果文件大小无关紧要,则可以将原始RAW包含在DNG中-如果再次需要它,则可以再次提取它。我的2美分?尝试使用您喜欢的软件-如果运行良好,请使用它。
由于这已经失控,所以我不想处理更多图像格式。但是,这并不意味着未列出的对象不值得考虑。