Tại sao phần mềm có thể điều chỉnh cân bằng trắng chính xác hơn cho các tệp RAW so với JPEG?


11

Tại sao chỉnh sửa cân bằng trắng JPEG sau xử lý không chính xác như cân bằng trắng với Nguyên?

Tôi hiểu rằng khi chụp jpeg, máy ảnh sẽ thực hiện các bước sau:

  1. Chuyển đổi dữ liệu cảm biến thô bằng thuật toán (khử màu / gỡ lỗi).
  2. Chuyển đổi sang không gian tuyến tính

    a. Sử dụng giá trị thô của bản đồ bảng tra cứu vào không gian tuyến tính

    b. Mức độ màu đen cho mỗi pixel sau đó được tính toán và trừ đi.

    c. Giá trị cho mỗi pixel sau đó được định cỡ lại thành 0,0 đến 1,0 bằng cách sử dụng Whitelevel

    d. Giá trị được thay đổi kích thước được cắt thành phạm vi logic 0,0 đến 1,0.

  3. Ánh xạ không gian màu của máy ảnh sang không gian CIE XYZ với điều chỉnh cân bằng trắng

    a. Chuyển đổi sang XYZ (D50) bằng CameraToXYZ_D50 = Chromatic_adapatation_matrix * CameraToXYZ_matrix

  4. Chuyển đổi CIE XYZ sang sRGB

    a. Tính toán RGB tuyến tính bằng cách sử dụng ma trận CIE XYZ thành ma trận tuyến tính RGB

    b. Tính toán Rec709 sRGB bằng cách sử dụng chuyển đổi đường cong gamma trên RGB tuyến tính

  5. Chuyển đổi sRGB thành 8 bit và nén bằng JPEG

Nếu điều này đúng, tôi không hiểu tại sao Jpeg không thể có cân bằng trắng được sửa giống như Nguyên!

Có phải đơn giản là vì việc nén mất tệp JPEG và tệp tiff 32 bit sẽ không gặp phải vấn đề này?

nhập mô tả hình ảnh ở đây


1
Điều gì khiến bạn nghĩ JPEG WB không chính xác như thô? Bạn có ý nghĩa gì bởi chính xác ? Bạn có nghĩa là máy ảnh thường không đoán cũng như một người có kỹ năng sử dụng ứng dụng chuyển đổi thô có thể? Hay cái gì khác?
Michael C

Ý tôi là nếu tôi bảo máy ảnh của mình lưu một bản sao thô và jpeg của cùng một bức ảnh và sau đó mở cả hai trong lightroom và cố gắng thực hiện cân bằng trắng chính xác bằng cách sử dụng công cụ chọn màu bằng cách nhấp vào cùng một vị trí trong ảnh. hoàn hảo trong khi jpeg vẫn có một màu sắc kỳ lạ với nó.
skyde

2
Đó là một câu hỏi rất khác nhau. Tôi sẽ chỉnh sửa tiêu đề để phản ánh những gì tôi nghĩ rằng bạn thực sự đang hỏi ...
Vui lòng đọc hồ sơ của tôi

5
Hình ảnh đầu tiên KHÔNG phải là "tệp thô ban đầu". Đây là một trong số vô số khả năng diễn giải dữ liệu thô mà ứng dụng chuyển đổi thô của bạn tạo ra và hiển thị trên màn hình của bạn trong 8 bit.
Michael C

2
Có lẽ không phải là điểm quan trọng nhất, nhưng bước 2 của bạn thực sự là hai bước riêng biệt và chúng có thể không được thực hiện theo thứ tự mà bạn trình bày chúng (đó sẽ là một cách bổ sung để WB "nướng" vào JPEG cuối cùng màu sắc).
Junkyardsparkle

Câu trả lời:


9

Tại sao phần mềm có thể điều chỉnh cân bằng trắng chính xác hơn cho các tệp RAW so với JPEG?

Có một sự khác biệt cơ bản giữa làm việc với dữ liệu thô thực tế để tạo ra cách hiểu khác nhau về dữ liệu thô so với cách giải thích 8 bit ban đầu của tệp thô mà bạn thấy trên màn hình so với làm việc với jpeg 8 bit trong đó toàn bộ thông tin trong các tập tin là những gì bạn nhìn thấy trên màn hình của bạn.

Khi bạn sử dụng trình nhấp chuột trắng trên tệp "thô", bạn không sửa hình ảnh được hiển thị trên màn hình của mình (đó là kết xuất 8 bit giống như jpeg, một trong nhiều cách giải thích dữ liệu trong tệp hình ảnh thô ). Bạn đang yêu cầu ứng dụng chuyển đổi thô quay lại và chuyển đổi dữ liệu trong tệp thô thành hình ảnh có thể hiển thị bằng cách sử dụng một bộ nhân kênh màu khác.

Bạn đang tạo một hình ảnh khác từ cùng một dữ liệu thô được sử dụng để tạo phiên bản đầu tiên bạn nhìn thấy trên màn hình. Nhưng ứng dụng sẽ quay trở lại từ đầu và sử dụng tất cả dữ liệu trong tệp thô để tạo ra cách hiểu thứ hai, khác nhau về dữ liệu thô dựa trên các hướng dẫn khác nhau của bạn về cách xử lý dữ liệu đó. Nó không bắt đầu với thông tin hạn chế hiển thị trên màn hình của bạn và sửa nó. Nếu làm như vậy, bạn sẽ nhận được kết quả giống như bạn đã làm khi làm việc với jpeg. ¹

Tệp thô chứa nhiều thông tin hơn hiển thị trên màn hình của bạn khi bạn 'mở' một tệp thô. Các tệp hình ảnh thô chứa đủ dữ liệu để tạo ra vô số cách hiểu khác nhau về dữ liệu đó sẽ phù hợp với tệp jpeg 8 bit.²

Bất cứ khi nào bạn mở một tệp thô và nhìn vào nó trên màn hình của bạn, bạn không xem "tệp thô". Bạn đang xem một trong số vô số các diễn giải có thể có của dữ liệu trong tệp thô. Bản thân dữ liệu thô chứa một giá trị độ sáng đơn sắc (đơn sắc) theo từng pixel. Với các cảm biến máy ảnh đeo mặt nạ của Bayer (phần lớn máy ảnh kỹ thuật số màu sử dụng bộ lọc của Bayer), mỗi pixel đều có bộ lọc màu ở phía trước là 'đỏ', 'xanh' hoặc 'xanh' ('màu' thực tế của các bộ lọc trong hầu hết các mặt nạ của Bayer là bất kỳ nơi nào từ màu xanh hơi vàng đến màu vàng cam cho 'đỏ ", hơi xanh lục cho' xanh lục 'và hơi tím nhạt cho' xanh lam '-những màu này ít nhiều tương ứng với trung tâm độ nhạy của ba loại hình nón trong võng mạc của chúng ta ). Để thảo luận đầy đủ hơn về cách chúng tôi lấy thông tin màu từ các giá trị độ sáng đơn được đo ở mỗi pixel, vui lòng xem tệp RAW lưu 3 màu trên mỗi pixel hoặc chỉ một?

Khi bạn thay đổi cân bằng trắng của tệp thô, bạn sẽ không thay đổi cách hiểu 8 bit của tệp thô mà bạn thấy trên màn hình của mình, bạn đang thực hiện các thay đổi đối với cách diễn giải dữ liệu thô đơn sắc 14 bit tuyến tính và sau đó hiển thị trên màn hình của bạn với cân bằng trắng được cập nhật.Nghĩa là, bạn đang sử dụng toàn bộ lợi thế của 16.384 bước tuyến tính đơn sắc riêng biệt mà tệp thô chứa cho mỗi pixel, chứ không phải 256 bước gamma riêng biệt được sửa trong ba kênh màu cho mỗi pixel mà bạn thấy trên màn hình 8 bit của mình như một đại diện của tập tin thô đó. Bạn cũng đang tận dụng tất cả các thông tin khác có trong dữ liệu hình ảnh thô, bao gồm cả những thứ như pixel bị che và các thông tin khác bị loại bỏ khi tệp được chuyển đổi sang định dạng 8 bit được hiển thị trên màn hình của bạn.

Làm thế nào hình ảnh bạn nhìn thấy trên màn hình của bạn khi bạn mở một tệp thô sẽ được xác định bởi cách ứng dụng bạn sử dụng để mở tệp diễn giải dữ liệu thô trong tệp để tạo ra một hình ảnh có thể xem được. Nhưng đó không phải là cách "duy nhất" để hiển thị "tệp thô ban đầu." Đó chỉ là cách ứng dụng của bạn - hoặc máy ảnh tạo ra bản xem trước jpeg được đính kèm vào tệp thô - đã xử lý thông tin trong tệp thô để hiển thị trên màn hình của bạn.

Mỗi ứng dụng có một bộ tham số mặc định riêng để xác định cách xử lý dữ liệu thô. Một trong những tham số quan trọng nhất là cách cân bằng trắng được sử dụng để chuyển đổi dữ liệu thô được chọn. Hầu hết các ứng dụng có nhiều bộ tham số khác nhau mà người dùng có thể chọn, người sau đó có thể tự do thay đổi các cài đặt riêng lẻ trong bộ hướng dẫn được sử dụng để giải thích dữ liệu ban đầu trong tệp thô. Nhiều ứng dụng sẽ sử dụng hệ số nhân kênh cân bằng trắng / màu được ước tính bởi máy ảnh (khi sử dụng AWB trong máy ảnh) hoặc được người dùng nhập vào (khi sử dụng camera chỉnh sửa CT + WB) tại thời điểm chụp ảnh. Nhưng đó không phải là cân bằng trắng hợp pháp duy nhất có thể được sử dụng để giải thích dữ liệu thô.

Với tệp thô 14 bit, có 16.384 giá trị riêng biệt giữa 0 (màu đen thuần khiết) và 1 (màu trắng tinh khiết). Điều đó cho phép các bước rất nhỏ giữa mỗi giá trị. Nhưng đây là những giá trị độ chói đơn sắc . Khi dữ liệu bị khử, các đường cong gamma được áp dụng và chuyển đổi sang một không gian màu cụ thể được thực hiện, hệ số nhân chuyển đổi WB thường được áp dụng cho các giá trị 14 bit này. Bước cuối cùng trong quy trình là ánh xạ lại các giá trị kết quả xuống còn 8 bit trước khi thực hiện nén tệp bị mất. 8 bit chỉ cho phép 256 giá trị riêng biệt giữa 0 (màu đen thuần khiết) và 1 (màu trắng tinh khiết). Do đó, mỗi bước giữa các giá trị lớn hơn 64 lần so với 14 bit.

Sau đó, nếu chúng tôi cố gắng thay đổi WB với các mức tăng dần này, các khu vực chúng tôi cố gắng mở rộng sẽ đẩy từng bước trong dữ liệu mà chúng tôi đang sử dụng nhiều hơn một bước trong tệp kết quả. Vì vậy, sự tăng dần trong các khu vực đó trở nên thậm chí thô hơn. Các khu vực chúng tôi thu nhỏ đẩy từng bước đó vào một không gian nhỏ hơn một bước duy nhất trong tệp kết quả. Nhưng sau đó, tất cả các bước đó được sắp xếp lại để phù hợp với cấp độ bước 256 giữa '0' và '1'. Điều này thường dẫn đến việc tạo dải hoặc áp phích thay vì chuyển tiếp trơn tru.

Để nhanh hơn và ít tốn tài nguyên hơn, một số ứng dụng xử lý thô sẽ có chế độ "nhanh" thực sự sửa đổi biểu diễn 8 bit hiện có trên màn hình của bạn khi bạn di chuyển thanh trượt cài đặt. Điều này thường dẫn đến việc tạo dải hoặc các tạo tác không mong muốn khác, chẳng hạn như tông màu tím bạn nhìn thấy trong jpeg chuyển màu trong câu hỏi. Điều này chỉ được áp dụng cho bản xem trước bạn đang xem, mặc dù. Khi tệp được chuyển đổi và lưu (xuất), các hướng dẫn tương tự thực sự được áp dụng cho dữ liệu thô khi nó được xử lý lại và dải hoặc các tạo phẩm khác không được nhìn thấy (hoặc không nghiêm trọng).

² Chắc chắn, bạn có thể chụp ảnh có một màu thuần nhất trong toàn bộ trường nhìn. nhưng hầu hết các bức ảnh đều chứa nhiều biến thể của sắc độ, sắc độ và mức độ sáng.

Vui lòng xem: Tại sao hình ảnh RAW của tôi đã có màu nếu việc gỡ lỗi chưa được thực hiện?

Điều này sẽ giải thích cho dải hoặc áp phích trong hình ảnh gây ra bởi độ chính xác giảm nhưng vẫn có thể di chuyển điểm trắng ở vị trí chính xác không?

Bạn có thể thay đổi màu của jpeg thành độ, nhưng hầu hết thông tin cần thiết để tạo ra tất cả các màu bạn có thể tạo với dữ liệu thô không còn ở đó nữa. Nó đã bị loại bỏ trong quá trình chuyển đổi sang RGB và giảm xuống 8 bit trước khi nén. Điều duy nhất bạn còn lại để làm việc là các giá trị của từng pixel trong ba kênh màu đó. Các đường cong phản hồi cho mỗi kênh đó có thể được vẽ lại, nhưng tất cả những gì làm tăng hoặc giảm giá trị cho kênh màu đó trong mỗi pixel của hình ảnh. Nó không quay trở lại và làm lại việc khử màu dựa trên hệ số nhân kênh mới, vì thông tin đó không được lưu giữ trong JPEG.

Điều quan trọng là phải hiểu rằng trong hình ảnh ví dụ được thêm vào câu hỏi, hình ảnh thứ hai không xuất phát từ hình ảnh đầu tiên. Cả hai hình ảnh thứ nhất và thứ hai là hai cách hiểu khác nhau về cùng một dữ liệu thô.Không phải là bản gốc hơn so với khác. Không phải là "chính xác" hơn so với cái khác về việc là một đại diện hợp lệ của dữ liệu có trong tệp thô. Cả hai đều là những cách hoàn toàn hợp pháp để sử dụng dữ liệu trong tệp thô để tạo ra hình ảnh 8 bit. Đầu tiên là cách ứng dụng chuyển đổi thô của bạn và / hoặc bản xem trước jpeg được tạo trong máy ảnh của bạn đã chọn để diễn giải dữ liệu. Thứ hai là cách ứng dụng chuyển đổi thô của bạn diễn giải dữ liệu sau khi bạn nói với nó những giá trị cảm biến thô nào bạn muốn được dịch là màu xám / trắng. Khi bạn nhấp vào cùng một phần của hình ảnh jpeg, phần lớn thông tin màu cần thiết để sửa hình ảnh trông giống như phiên bản thứ hai của tệp thô không còn ở đó và do đó không thể được sử dụng.

Có phải đơn giản là vì việc nén mất tệp JPEG và tệp tiff 32 bit sẽ không gặp phải vấn đề này?

Không, mặc dù nén mất mát là một phần lớn của nó. Vì vậy, việc giảm xuống còn 8 bit, làm cho mỗi bước giữa '0' (đen thuần túy) và '1' (bão hòa hoàn toàn) 64X lớn như với tệp thô 14 bit. Nhưng nó vượt ra ngoài nén jpeg.

Một vài đoạn từ câu trả lời này thành RAW đến TIFF hoặc PSD 16 bit bị mất độ sâu màu :

Khi dữ liệu trong tệp thô đã được chuyển thành tệp TIFF bị khử, gamma đã sửa, quá trình này không thể đảo ngược.

Các tệp TIFF có tất cả các bước xử lý "nướng" vào thông tin mà chúng chứa. Mặc dù tệp TIFF 16 bit không nén lớn hơn nhiều so với tệp thô thông thường được lấy từ cách lưu trữ dữ liệu, nhưng nó không chứa tất cả thông tin cần thiết để đảo ngược chuyển đổi và sao chép cùng một dữ liệu chính xác chứa trong tệp thô. Có một số lượng gần như vô hạn các giá trị khác nhau trong dữ liệu mức pixel của một tệp thô có thể đã được sử dụng để tạo ra một TIFF cụ thể. Tương tự, có một số lượng tệp TIFF gần như vô hạn có thể được tạo từ dữ liệu trong tệp hình ảnh thô, tùy thuộc vào các quyết định được đưa ra về cách xử lý dữ liệu thô để tạo TIFF.

Ưu điểm của TIFF 16 bit so với TIFF 8 bit là số bước giữa giá trị tối nhất và sáng nhất cho mỗi kênh màu trong ảnh. Các bước tốt hơn này cho phép thao tác bổ sung nhiều hơn trước khi chuyển đổi sang định dạng 8 bit mà không tạo ra các tạo tác, chẳng hạn như tạo dải trong các khu vực tăng màu.

Nhưng chỉ vì TIFF 16 bit có nhiều bước hơn giữa "0" và "65,535" so với tệp thô 12 bit (0-4095) hoặc 14 bit (0-16383), điều đó không có nghĩa là tệp TIFF hiển thị phạm vi tương tự hoặc lớn hơn trong độ sáng. Khi dữ liệu trong tệp thô 14 bit được chuyển thành tệp TIFF, điểm đen có thể đã được chọn ở giá trị như 2048. Mọi pixel trong tệp thô có giá trị thấp hơn 2048 sẽ được gán giá trị 0 trong TIFF. Tương tự, nếu điểm trắng được đặt tại, giả sử, 8.191 thì mọi giá trị trong tệp thô cao hơn 8191 sẽ được đặt ở mức 65.535 và điểm dừng sáng nhất trong tệp thô sẽ bị mất không thể phục hồi. Mọi thứ sáng hơn trong tệp thô so với điểm trắng đã chọn có cùng giá trị trong TIFF, do đó không có chi tiết nào được giữ nguyên.

Có một số lượng lớn các câu hỏi hiện có ở đây bao gồm phần lớn cùng một nền tảng. Dưới đây là một vài trong số chúng mà bạn có thể thấy hữu ích:

Tệp RAW lưu 3 màu trên mỗi pixel hoặc chỉ một?
RAW đến TIFF hoặc PSD 16 bit mất độ sâu màu
Làm cách nào để bắt đầu với cài đặt JPEG trong máy ảnh trong Lightroom?
Tại sao sự xuất hiện của các tệp RAW thay đổi khi chuyển từ "lighttable" sang "darkroom" trong Darktable?
Hướng dẫn sử dụng nikon d810 WB không giống như "As Shot" trong Lightroom
Tại sao hình ảnh RAW trông tệ hơn JPEG trong các chương trình chỉnh sửa?
Kết hợp màu sắc trong Lightroom với các công cụ chỉnh sửa khác
Trong khi chụp ở định dạng RAW, bạn có phải xử lý hậu kỳ để làm cho hình ảnh đẹp không?

Tại sao có sự giảm chất lượng từ máy ảnh đến màn hình máy tính
Tại sao ảnh của tôi trông khác nhau trong tiện ích Photoshop / Lightroom so với Canon EOS / trong máy ảnh?
Tại sao hình ảnh của tôi trông khác trên máy ảnh của tôi so với khi được nhập vào máy tính xách tay của tôi?
Làm thế nào để mô phỏng xử lý trong máy ảnh trong Lightroom?
Chuyển đổi jpg trong máy ảnh và lightroom jpg
Tại sao bản xem trước Lightroom / Photoshop của tôi thay đổi sau khi tải?


2
Điều này sẽ giải thích cho dải hoặc áp phích trong hình ảnh gây ra bởi độ chính xác giảm nhưng vẫn có thể di chuyển điểm trắng ở vị trí chính xác không?
skyde

2
Có, điều này có nghĩa là điều này có thể nói rằng màu sắc từ nguyên liệu sẽ bị cắt bớt khi được chuyển đổi thành gam màu TIFF. Và vì điều này, chúng tôi vẫn mất thông tin có thể cần thiết để điều chỉnh cân bằng màu.
skyde

1
Tôi với skyde: Chỉ cần có ít bước rời rạc hơn trong độ phân giải màu sắc không có nghĩa là cân bằng trắng mang lại kết quả khác nhau rõ ràng. Đặc biệt nếu phiên bản jpeg có tông màu tím nặng. Một lý thuyết phù hợp hơn là các giá trị hiệu chỉnh bên trong có thể được kẹp vào phạm vi hẹp hơn trong jpeg so với thô, điều này dẫn đến thực tế là một nguyên liệu được diễn giải từ dữ liệu cảm biến thô và jpeg là các giá trị màu rời rạc.
Horitsu

1
Tôi tham gia với skyde ở đây là tốt. Đây chỉ là một câu chuyện dài, không liên quan về sự khác biệt giữa các định dạng thô và jpeg. Không có gì ở đây, mà thực sự trả lời câu hỏi ban đầu.
jarnbjo

1
@jarnbjo Hầu hết câu trả lời được dành để giải thích sự khác biệt giữa dữ liệu thô thực tế trong tệp hình ảnh và những gì người ta nhìn thấy trên màn hình của họ khi một người "xem" một trong số nhiều cách giải thích về dữ liệu thô. Theo kinh nghiệm của tôi, hầu hết các loại câu hỏi này đều phát sinh do thiếu hiểu biết cơ bản rằng những gì người ta nhìn thấy trên màn hình của một người không bao giờ là "tệp" thô. Đó cũng là kinh nghiệm của tôi khi nói rằng nó theo nhiều cách khác nhau làm tăng khả năng bóng đèn cuối cùng sẽ tiếp tục cho người hỏi. YMMV.
Michael C

3

Câu trả lời đơn giản là vì máy ảnh và bộ xử lý RAW của bạn (LR, Darktable, tên một số ít) sử dụng các thuật toán khác nhau để xử lý các tệp RAW. Lý do rất nhiều và chúng tôi không thể đánh giá các thuật toán đó vì nhiều lý do là bí mật thương mại. Ví dụ, nhiệt độ màu Ánh sáng ban ngày của Canon (EOS 700D) là khoảng 5200K, trong khi Lightroom là 5500K. Trong một số tình huống điều này làm cho một sự khác biệt.

Nói chính xác, các tệp RAW không được xác định trước nhiệt độ màu. Nó được bao gồm dưới dạng thông tin meta. Bộ xử lý RAW áp dụng WB cụ thể khi chúng thực hiện các thao tác bạn mô tả.

Chỉnh sửa: và dựa trên nhận xét của bạn: Bạn không thể thay đổi nhiều nhiệt độ màu trên tệp JPEG vì nó đã được "nấu chín". Nhiệt độ màu đã được áp dụng và bạn không có đủ độ sâu màu để "dịch chuyển" màu.


Các thuật toán của Darktable không phải là bí mật thương mại.
Vui lòng đọc hồ sơ của tôi

@mattdm, đúng rồi. Nhưng những bộ xử lý của LR, ON1, CaptureOne, các bộ xử lý RAW không có nguồn khác là ...
Romeo Ninov

Nhưng có bất kỳ điều đó thực sự có liên quan đến câu hỏi? Những điều cơ bản của hiệu chỉnh cân bằng trắng được biết đến và thực hiện rộng rãi trong phần mềm mở.
Vui lòng đọc hồ sơ của tôi

Những điều cơ bản có. Nhưng thực hiện có thể khác nhau. Và chính xác những chi tiết đó thường được giữ bí mật (đối với phần mềm không có nguồn)
Romeo Ninov

1

thể JPEG cân bằng trắng, nhưng các công cụ chỉnh sửa sử dụng để hoạt động trên RAW vs hình ảnh khác có xu hướng hành xử khác nhau (các thuật toán khác nhau). Thêm nữa:

  • Công cụ dropper không chính xác, điều này gây khó khăn cho việc nhân rộng kết quả.

  • Độ sâu bit của JPEG giới hạn số lượng màu có thể được thay đổi so với RAW.

  • Các gamma đường cong messes lên tất cả mọi thứ.

  • Tính toán trên dữ liệu tuyến tính so với dữ liệu logarit hoạt động khác nhau.

Đây không phảichính xác cách nó hoạt động, nhưng để minh họa:

  • Giả sử bạn muốn nhân một số dữ liệu (1, 4, 8) với 2. Kết quả là (2, 8, 16). Với dữ liệu tuyến tính, kết quả tối đa, 16, gấp bốn lần kết quả tối thiểu, 2.

  • Nhưng với các biểu diễn logarit, khoảng cách giữa các giá trị liền kề, chẳng hạn như 2 5 và 2 6 , lớn hơn nhiều so với chênh lệch giữa các giá trị tuyến tính, 5 và 6. Hơn nữa, kết quả tối đa, 2 16 , không chỉ lớn hơn 32768 lần so với kết quả tối thiểu, 2 2 , nó cũng gấp 256 lần giá trị ban đầu, 2 8 .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.