TIFF vs PNG vs BMP: So sánh các định dạng ảnh không mất dữ liệu
Điểm chung thực sự của ba định dạng này
TIFF, PNG và BMP đều có chung một đặc điểm quan trọng: chúng có thể lưu trữ dữ liệu hình ảnh mà không vứt bỏ bất kỳ chi tiết nào. Nhưng lời hứa chung về độ trung thực không mất dữ liệu đó cũng là nơi điểm tương đồng kết thúc. Mỗi định dạng được sinh ra ở một thời đại khác nhau, thiết kế cho một ngành công nghiệp khác nhau và xây dựng trên những sự đánh đổi khác nhau. TIFF (Tagged Image File Format) được Aldus tạo ra vào năm 1986 cho thế giới xuất bản trên máy tính để bàn và quét ảnh chuyên nghiệp. PNG (Portable Network Graphics) xuất hiện vào năm 1996 như một sự thay thế không dính bằng sáng chế cho GIF, được xây dựng từ đầu cho web. Còn BMP (Bitmap)? Đó là một sản phẩm gốc của Microsoft, được tích hợp sẵn vào Windows từ phiên bản 1.0 và hầu như không được đụng đến kể từ đầu những năm 90. Nguồn gốc của chúng giải thích tất cả. Đó là lý do tại sao một file RAW 24-megapixel sau khi chuyển đổi có thể là 68 MB dưới dạng TIFF, 22 MB dưới dạng PNG, và một con số khổng lồ 69 MB dưới dạng BMP. Sự khác biệt về kích thước đó không làm cho một định dạng nào tốt hơn vốn có; nó chỉ phản ánh mục tiêu thiết kế của chúng. Lựa chọn đúng đắn luôn là về việc file sẽ đi đâu và phần mềm nào cần đọc nó.
Nén: Mỗi định dạng xử lý kích thước file như thế nào
BMP là định dạng đơn giản nhất trong nhóm: theo mặc định, nó không sử dụng bất kỳ thuật toán nén nào. Một hình ảnh 4000 × 3000 pixel với màu 24-bit sẽ luôn chiếm chính xác 4000 × 3000 × 3 byte = 34.3 MB trên đĩa. Nội dung của hình ảnh không quan trọng. Mặc dù thông số kỹ thuật của BMP về mặt lý thuyết có bao gồm một tùy chọn mã hóa loạt dài (RLE), nhưng đó là một tính năng ma; hầu như không có phần mềm hiện đại nào ghi file theo kiểu đó, và nhiều ứng dụng thậm chí không thể đọc được nó. Vì mọi mục đích thực tế, hãy cứ coi BMP là lưu trữ hoàn toàn không nén. PNG sử dụng thuật toán nén DEFLATE, cũng là thuật toán chủ lực được tìm thấy trong các file ZIP. Trước khi nén, PNG chạy một bước lọc để sắp xếp dữ liệu pixel theo cách giúp nó dễ nén hơn. Bạn có thể điều chỉnh mức độ nén từ 0 (không nén) đến 9 (nỗ lực tối đa, tốc độ chậm nhất). Trong Photoshop, đây là thanh trượt “Quality” dưới File → Export → Export As → PNG. Kết quả thay đổi một trời một vực tùy thuộc vào nội dung hình ảnh. Một logo với các vùng phẳng lớn có thể thu nhỏ 80–90%, nhưng một bức ảnh với kết cấu phức tạp và nhiễu hạt phim có thể chỉ nén được 20–30%. DEFLATE đơn giản là rất khó xử lý các chi tiết tần số cao. Điều quan trọng là, nén PNG luôn không mất dữ liệu. Thay đổi mức độ nén chỉ ảnh hưởng đến kích thước file và thời gian lưu, không bao giờ ảnh hưởng đến chính các pixel. TIFF giống một 'container' linh hoạt hơn, hỗ trợ nhiều lược đồ nén khác nhau. Bạn có thể chọn không nén, LZW, ZIP (DEFLATE), PackBits, hoặc thậm chí JPEG (là định dạng mất dữ liệu và thường làm mất đi mục đích sử dụng TIFF cho công việc lưu trữ). LZW là tùy chọn không mất dữ liệu được hỗ trợ rộng rãi nhất. Trong Adobe Lightroom Classic, bạn sẽ tìm thấy nó dưới File → Export → Image Format: TIFF → Compression: LZW. LZW thường tạo ra các file nhỏ hơn 10–40% so với file TIFF không nén. Tuy nhiên, các file này thường vẫn lớn hơn một file PNG tương đương, bởi vì bước tiền lọc thông minh của PNG mang lại cho thuật toán DEFLATE của nó một lợi thế đáng kể mà LZW không có.
Độ sâu màu và các tính năng chuyên nghiệp: Nơi TIFF vượt trội
Đối với công việc chuyên nghiệp nghiêm túc, đây là lúc TIFF bỏ xa các đối thủ. Trong khi PNG hỗ trợ độ sâu bit lên đến 16 bit mỗi kênh—quá đủ cho hầu hết nhiếp ảnh và đồ họa web—TIFF còn đi xa hơn. Nó xử lý các kênh 8, 16 và thậm chí 32-bit dấu phẩy động. Hỗ trợ 32-bit float đó là cực kỳ quan trọng đối với các ảnh ghép Dải tương phản động mở rộng (HDR), hình ảnh khoa học và bất kỳ quy trình làm việc nào liên quan đến nhiều vòng chỉnh sửa nặng. Nó ngăn chặn sự suy giảm chất lượng từ từ do lỗi làm tròn có thể xảy ra với mỗi lần lưu ở định dạng 16-bit, và nó có thể lưu trữ các giá trị độ sáng vượt xa những gì một màn hình bình thường có thể hiển thị. TIFF cũng 'nói' được ngôn ngữ CMYK, ngôn ngữ của in ấn chuyên nghiệp. PNG thì không. Nếu bạn đang gửi file cho một nhà in offset cho một tạp chí hoặc sách, họ gần như chắc chắn sẽ mong đợi một file TIFF CMYK ở 300 PPI. Một file PNG đơn giản không phải là một lựa chọn khả thi trong thế giới đó. Sau đó là tính năng đa trang. Bất cứ ai đã từng phải vật lộn với một tài liệu được quét 50 trang đều biết nỗi đau khi phải xử lý 50 file riêng lẻ. TIFF có thể lưu trữ tất cả các trang đó trong một file duy nhất, gọn gàng, một tính năng được sử dụng nhiều trong lưu trữ tài liệu, hình ảnh y tế và hệ thống fax. PNG không thể làm điều này. Còn BMP? Không có cửa. BMP bị mắc kẹt với các chế độ màu cơ bản (1, 4, 8, 16, hoặc 24-bit, cộng với một chế độ 32-bit với kênh alpha) và không hỗ trợ CMYK, dữ liệu dấu phẩy động, hoặc nhiều trang. Đối với màu sắc chuyên nghiệp, nó là một ngõ cụt. Độ trong suốt là một điểm khác biệt quan trọng khác. PNG là nhà vô địch không thể tranh cãi cho việc sử dụng trên web, với hỗ trợ kênh alpha 8-bit và 16-bit sạch sẽ. TIFF cũng xử lý các kênh alpha, với các tùy chọn phức tạp hơn như alpha nhân trước (pre-multiplied alpha), nhưng nó quá thừa thãi cho web. Chế độ 32-bit của BMP về mặt kỹ thuật bao gồm một kênh alpha, nhưng hỗ trợ quá chập chờn trên các trình duyệt và ứng dụng đến nỗi việc dựa vào nó là một canh bạc mà bạn không nên tham gia.
Các trường hợp sử dụng thực tế: Chọn định dạng phù hợp với quy trình làm việc
Trên web, PNG là vua. Thực sự không có gì phải bàn cãi. Các trình duyệt đã hỗ trợ nó từ cuối những năm 90, độ trong suốt alpha của nó hoạt động hoàn hảo ở mọi nơi, và kích thước file của nó rất gọn nhẹ. Mọi biểu tượng giao diện người dùng, ảnh sản phẩm với nền trong suốt, hoặc biểu đồ được xuất ra mà bạn thấy trên mạng đều là, hoặc nên là, một file PNG. Đăng một file ảnh chụp màn hình TIFF 14 MB lên trang web là một tội ác khi một file PNG 1.2 MB trông y hệt đang tồn tại. Tuy nhiên, bước vào một xưởng in, và TIFF là đồng tiền giao dịch. Đối với công việc chế bản, đó là tiêu chuẩn chuyên nghiệp. Các ứng dụng như Adobe InDesign và QuarkXPress, cùng với phần mềm RIP (bộ xử lý ảnh raster) tại các nhà in, được xây dựng xoay quanh TIFF. Một file TIFF CMYK với nén LZW là một sản phẩm bàn giao siêu đáng tin cậy, hoạt động cho dù xưởng in đang chạy phần mềm mới toanh hay một thứ gì đó từ năm 2008. Chính độ tin cậy vững như bàn thạch này làm cho TIFF trở thành định dạng được lựa chọn cho các dự án lưu trữ và số hóa. Thư viện Quốc hội và các kho lưu trữ quốc gia khác bắt buộc sử dụng TIFF không nén hoặc nén LZW vì định dạng này là một tiêu chuẩn mở được tài liệu hóa tốt, không bị ràng buộc vào một công ty duy nhất. Vậy BMP đứng ở đâu? Nó là một người chơi ở thị trường ngách, chủ yếu tồn tại trong các tác vụ cụ thể tập trung vào Windows. Nếu bạn đang xây dựng một ứng dụng Windows trong Visual Studio và cần một màn hình chờ, hoặc xử lý các công cụ CAD cũ, bạn vẫn sẽ gặp nó. Ngoài những hành lang hẹp đó, hầu như không có lý do gì để tạo một file BMP mới ngày nay. Trong một quy trình chỉnh sửa ảnh—ví dụ, chuyển một file từ Lightroom sang Photoshop để chỉnh sửa và ngược lại—một file TIFF 16-bit với nén LZW là chuẩn giao tiếp tiêu chuẩn. Mặc dù một file PNG 16-bit cũng có thể hoạt động, TIFF được hỗ trợ phổ biến hơn cho loại trao đổi độ sâu bit cao này, đặc biệt là với phần mềm cũ hơn.
Điểm chuẩn kích thước file: Con số từ các ảnh thử nghiệm thực tế
Lý thuyết là một chuyện, nhưng các con số mới kể câu chuyện thật. Chúng tôi đã lấy ba hình ảnh khác biệt và chuyển đổi chúng từ dữ liệu nguồn không nén sang mỗi định dạng. Ảnh thử nghiệm 1: Một bức ảnh rừng cây 3840 × 2160 (chi tiết cao, không có vùng màu phẳng). - BMP (24-bit, không nén): 23.7 MB - TIFF (LZW): 19.1 MB - PNG (DEFLATE mức 6, mặc định): 17.4 MB Ảnh thử nghiệm 2: Một ảnh chụp màn hình giao diện người dùng 1920 × 1080 (vùng màu phẳng lớn, văn bản, biểu tượng). - BMP (24-bit): 5.9 MB - TIFF (LZW): 1.8 MB - PNG (DEFLATE mức 6): 0.9 MB Ảnh thử nghiệm 3: Một trang tài liệu được quét 600 × 800 (văn bản đen trên nền trắng, nhiễu tối thiểu). - BMP (24-bit): 1.4 MB - TIFF (LZW): 0.18 MB - PNG (DEFLATE mức 6): 0.12 MB Xu hướng rất rõ ràng. Đối với nội dung nhiếp ảnh, PNG luôn đánh bại TIFF nén LZW khoảng 5–15%. Đối với các hình ảnh nặng về đồ họa hoặc tài liệu được quét có nhiều màu phẳng, lợi thế của PNG trở nên khổng lồ. Trong bản quét tài liệu, file PNG nhỏ hơn gần 12 lần so với BMP, một sự khác biệt sẽ tăng lên rất nhanh khi bạn lưu trữ hàng nghìn trang. Có một lưu ý quan trọng: một file TIFF được lưu với nén ZIP (DEFLATE) sẽ có kích thước file rất gần với PNG, vì chúng sử dụng cùng một thuật toán cốt lõi. Nếu phần mềm của bạn hỗ trợ TIFF/ZIP, sự khác biệt về kích thước gần như biến mất. Photoshop có thể làm được điều đó, nhưng Lightroom Classic, ví dụ, không cung cấp nó như một tùy chọn xuất trực tiếp.
Chuyển đổi giữa các định dạng này với CocoConvert
Bạn có thể sử dụng CocoConvert để chuyển đổi qua lại giữa TIFF, PNG và BMP mà không cần phải khởi động Photoshop hay một công cụ dòng lệnh. Các công việc phổ biến nhất là chuyển đổi TIFF sang PNG để thu nhỏ file cho web, hiện đại hóa các file BMP cũ thành PNG, và biến các file PNG từ web thành TIFF cho quy trình in ấn. Khi bạn chuyển đổi một file TIFF sang PNG, CocoConvert sẽ cố gắng bảo toàn chất lượng gốc. Một file TIFF 16-bit sẽ trở thành một file PNG 16-bit, chứ không phải là một file 8-bit bị giảm cấp. Bạn cũng có thể tự đặt độ sâu bit trong các tùy chọn nếu bạn cần đầu ra cụ thể. Việc chuyển từ BMP sang TIFF hoặc PNG rất đơn giản. Vì BMP không được nén, file kết quả hầu như luôn nhỏ hơn đáng kể so với bản gốc. Cũng quan trọng để biết những gì CocoConvert *không* làm được. Các file TIFF đa trang, như những file từ máy quét tài liệu, hiện đang bị tách thành các hình ảnh riêng lẻ thay vì được giữ trong một file đa trang duy nhất. Đối với việc đó, bạn nên sử dụng một công cụ chuyên dụng như ImageMagick (`convert input.tif output.tif` với cờ `-adjoin`) hoặc Adobe Acrobat. CocoConvert cũng sẽ báo lỗi với các file TIFF sử dụng nén JPEG nội bộ, điều này còn tốt hơn là cung cấp cho bạn một file bị hỏng. Cuối cùng, nếu bạn chuyển đổi một file TIFF 32-bit dấu phẩy động, dữ liệu sẽ bị cắt bớt để vừa với phạm vi hạn chế hơn của PNG. Chúng tôi sẽ cảnh báo điều này trong quá trình chuyển đổi để bạn không bị mất dữ liệu một cách âm thầm, nhưng đó là một hạn chế thực sự của định dạng đích. Đối với đại đa số các chuyển đổi—một hình ảnh duy nhất từ một định dạng sang định dạng khác—quá trình này cực kỳ đơn giản. Tải file của bạn lên, chọn định dạng đích và download. Không cần tài khoản cho các file dưới 20 MB.
Vậy bạn thực sự nên sử dụng định dạng nào?
Sau tất cả những điều đó, cây quyết định đơn giản hơn bạn nghĩ rất nhiều. Đây là cách để lựa chọn. Lựa chọn mặc định của bạn cho bất cứ thứ gì dành cho màn hình hiển thị nên là PNG. Nếu file sẽ được đăng lên web, trong một bài thuyết trình, hoặc trong bất kỳ ứng dụng nào mà kích thước file và khả năng tương thích là quan trọng, hãy sử dụng PNG. Đó là lựa chọn mặc định hiện đại, an toàn cho bất cứ thứ gì không phải là công việc in ấn hoặc lưu trữ chuyên biệt. Nếu bạn cần độ trong suốt trên web, hãy ngừng đọc và dùng PNG luôn đi. Bạn nên chuyển sang TIFF khi công việc của bạn cần độ trung thực tối đa để chỉnh sửa chuyên nghiệp hoặc đang rời khỏi thế giới kỹ thuật số để đến với in ấn. Hãy sử dụng TIFF khi bạn đang giao sản phẩm cho một xưởng in, lưu trữ các bản quét quan trọng, trao đổi các file có độ sâu bit cao giữa các ứng dụng ảnh chuyên nghiệp, hoặc làm việc với màu CMYK. TIFF với nén LZW là công cụ chủ lực cho bất kỳ quy trình làm việc nào mà khả năng tương thích lâu dài quan trọng hơn kích thước file tối thiểu. Còn BMP? Bạn chỉ sử dụng BMP khi một phần mềm cụ thể, thường là cổ xưa, bắt buộc bạn phải dùng. Đó là một định dạng cũ dành cho tài nguyên ứng dụng Windows và các chương trình cũ có trước PNG. Trong bất kỳ kịch bản nào khác, PNG làm mọi thứ mà BMP làm nhưng tốt hơn, tạo ra các file nhỏ hơn với sự hỗ trợ rộng rãi hơn. Đây là một mẹo thực tế cuối cùng: nếu bạn nhận được một file BMP, việc đầu tiên bạn nên làm là chuyển nó sang PNG. Việc chuyển đổi này hoàn toàn không mất dữ liệu, và bạn sẽ có được một file nhỏ hơn đáng kể và hữu ích hơn ở mọi nơi. Logic tương tự cũng áp dụng cho các file TIFF khổng lồ, không nén mà không cần phải giữ ở định dạng đó vì một lý do quy trình làm việc cụ thể. Hãy chuyển đổi sang PNG để tiết kiệm dung lượng mà không phải hy sinh dù chỉ một pixel chất lượng.