Giới thiệu
Tài liệu này xác định hành vi của một định dạng tệp mới giúp mã hoá phạm vi lôgarit lấy hình ảnh bản đồ trong tệp hình ảnh JPEG. Độc giả cũ không hỗ trợ định dạng mới, đọc và hiển thị thông số linh động thấp thông thường dải ô hình ảnh từ tệp hình ảnh.Những độc giả hỗ trợ định dạng này sẽ kết hợp hình ảnh chính với bản đồ khuếch đại và kết xuất hình ảnh dải động cao trên màn hình tương thích.
Phần còn lại của tài liệu này mô tả phương pháp của những quy trình cần thiết để và tận dụng định dạng này. Nhìn chung, vòng đời của một hình ảnh tuân thủ thành định dạng này là:
Mã hoá
- Nhận khả năng tạo bản đồ
- Nén bản đồ
- Nhận khả năng tạo vùng chứa bản đồ
Giải mã
Động lực
Mục tiêu của định dạng tệp này là mã hoá thông tin bổ sung trong ảnh SDR có thể được sử dụng kết hợp với kỹ thuật hiển thị để tạo hiển thị HDR tối ưu trong một tệp duy nhất.
Để thực hiện được điều này, định dạng tệp phải:
- Khả năng tương thích ngược để đối với những người xem ngây thơ, hình ảnh SDR thông thường sẽ được hiển thị.
- Không chiếm quá nhiều dung lượng.
Ngoài ra, kỹ thuật hiển thị phải:
- Không yêu cầu xử lý nặng để giải mã.
- Có thể thích ứng với bất kỳ tỷ lệ nào giữa điểm trắng HDR và SDR của màn hình, có thể khác nhau đáng kể giữa các thiết bị hay thậm chí tạm thời trên một thiết bị thiết bị.
Cuối cùng, kỹ thuật này phải thực hiện được tất cả những hành động trước đó chưa từng có:
- Cắt đoạn video nổi bật.
- Bóng đổ.
- Thay đổi hoặc nén độ tương phản cục bộ.
- Thay đổi mối quan hệ tương đối về sắc độ (giữa các đối tượng trong cảnh).
Phần phụ thuộc
Sau đây là các tài liệu tham khảo quy chuẩn cho thông số kỹ thuật này:
- Thông số kỹ thuật Adobe XMP Phần 3: Lưu trữ trong tệp
- ISO 16684-1:2019 Thông số kỹ thuật XMP Phần 1
- Định dạng tệp đa phương tiện cơ sở ISO/IEC 14496-12 ISO
- T.81 (09/92) Nén kỹ thuật số và mã hoá âm thanh liên tục hình ảnh
- Tài liệu trắng của CIPA DC-x 007-2009 Multi-picture Format
Định nghĩa
Màn hình SDR
- Một màn hình thông thường, không được thiết kế để hiển thị nội dung HDR. Các các màn hình thường tạo ra độ sáng cao nhất trên danh nghĩa vào khoảng 400 cd/m2 trở xuống.
Màn hình HDR
- Màn hình được thiết kế cho nội dung HDR. Những màn hình này thường tạo ra độ sáng cao nhất danh nghĩa lớn hơn độ sáng của màn hình SDR, thường là 800 cd/m2 trở lên và thường có độ tương phản tốt hơn hơn so với màn hình SDR.
Ảnh chính
- Bản sao đầu tiên của hình ảnh trong tệp GContainer tệp được thêm vào. Hình ảnh chính chứa siêu dữ liệu GContainer XMP xác định thứ tự và thuộc tính của mục nội dung đa phương tiện phụ tiếp theo trong vùng chứa tệp.
Hình ảnh phụ
- Các tệp mục nội dung nghe nhìn tiếp theo được thêm vào hình ảnh chính trong một Tệp GContainer.
Nén phạm vi
- Trong nhiếp ảnh, các cảnh trong thế giới thực thường có dải động lớn hơn Màn hình SDR có thể hiển thị. Các thao tác như Nén phạm vi, cũng được gọi là ánh xạ tông màu cục bộ, cần thiết để giảm dải động của hình ảnh. Mức giảm này cần tránh cắt bớt các vùng sáng hoặc đè nén bóng mà vẫn duy trì được độ tương phản cục bộ nhiều nhất có thể.Bạn cố gắng giảm kích thước của các cạnh có độ chói lớn trong hình ảnh, góp phần tương phản tổng thể hơn, trong khi vẫn cố gắng duy trì kích thước của cạnh chiếu sáng nhỏ, chính là các chi tiết.Mặc dù có rất nhiều các triển khai khác nhau, như vậy thao tác này là tiêu chuẩn trên máy ảnh kỹ thuật số ngày nay.
Điểm trắng SDR
- Độ chói tối đa tuyến tính của nội dung SDR trên màn hình tại thời điểm cụ thể.
Điểm trắng HDR
- Độ chói tối đa tuyến tính của nội dung HDR trên màn hình ở thời điểm cụ thể. Giá trị này thường cao hơn điểm trắng SDR.
Tăng
- Điểm trắng HDR được chia bởi điểm trắng SDR.
Tăng cường nội dung tối đa (
max_content_boost
theo phương trình)- Giá trị này cho phép nhà sáng tạo nội dung giới hạn độ sáng của một hình ảnh khi hiển thị trên màn hình HDR, so với lần hiển thị SDR.
- Giá trị này là hằng số của một hình ảnh cụ thể. Ví dụ: nếu là 4, thì đối với bất kỳ pixel đã cho nào, độ chói tuyến tính của hiển thị HDR được hiển thị phải tối đa gấp 4 lần độ chói tuyến tính của hiển thị SDR. Trong thực tế, điều này có nghĩa là những phần sáng hơn của cảnh đó có thể sáng hơn gấp 4 lần.
- Trong thực tế, giá trị này thường lớn hơn 1.0.
- Luôn lớn hơn hoặc bằng Tăng cường nội dung tối thiểu.
Tăng cường nội dung tối thiểu (
min_content_boost
trong phương trình)- Giá trị này cho phép nhà sáng tạo nội dung giới hạn mức độ tối của khi hiển thị trên màn hình HDR, hình ảnh có thể nhận được so với SDR hiển thị.Giá trị này là hằng số của một hình ảnh cụ thể.
- Ví dụ: nếu giá trị là 0,5, thì với bất kỳ pixel đã cho nào, biến tuyến tính độ chói của hiển thị HDR được hiển thị phải (ít nhất) 0,5 lần độ chói tuyến tính của phần hiển thị SDR.
- Trong thực tế, giá trị này thường bằng hoặc chỉ nhỏ hơn 1.0.
- Luôn nhỏ hơn hoặc bằng Tăng cường nội dung tối đa.
Tăng tốc độ hiển thị tối đa (
max_display_boost
tính bằng phương trình)- Mức tăng tối đa hiện có mà màn hình hỗ trợ, tại một thời điểm nhất định theo bất cứ lúc nào. Giá trị này có thể thay đổi theo thời gian dựa trên chế độ cài đặt trên thiết bị và các các yếu tố, chẳng hạn như điều kiện ánh sáng xung quanh hoặc số lượng pixel sáng trên màn hình.
- Ví dụ: nếu giá trị này là 4.0, thì màn hình có khả năng hiển thị pixel sáng hơn SDR tối đa 4 lần điểm trắng. Giá trị này luôn lớn hơn 1, 0 do màn hình luôn có thể hiển thị màu trắng HDR ít nhất phải sáng bằng màu trắng SDR.
Tăng cường hiển thị
- Tương đương với mức tăng tối đa nội dung và tăng tối đa mức độ hiển thị. Chiến dịch này giá trị luôn >= 1.0
- Ví dụ: nếu mức tăng nội dung tối đa là 4 và mức tăng hiển thị tối đa là 3, thì Display Boost là 3.0. Điểm ảnh sáng hơn gấp 3 lần hơn SDR, vì khả năng hiển thị là yếu tố hạn chế.
- Ví dụ khác: nếu mức tăng nội dung tối đa là 4.0 và mức tăng hiển thị tối đa là là 5.0, thì tăng hiển thị là 4.0. Điểm ảnh hiển thị nhiều gấp 4 lần sáng hơn SDR, vì ý định của nội dung là yếu tố giới hạn.
Hiển thị HDR mục tiêu
- Hiển thị HDR lý tưởng, theo nhà sáng tạo nội dung.
Hiển thị HDR được điều chỉnh
- Lần hiển thị HDR cuối cùng hiện trên màn hình, sau điều chỉnh màn hình HDR mục tiêu cho phù hợp với việc tăng màn hình hiện tại.
Nhận bản đồ (
recovery(x, y)
trong phương trình)- Bản đồ cho biết mức độ tăng độ sáng của từng điểm ảnh trong quá trình hiển thị SDR, để tạo hiển thị HDR mục tiêu. Bản đồ này có thể là một kênh hoặc đa kênh. Bản đồ đa kênh cho biết mức tăng riêng cho mỗi kênh kênh màu, chẳng hạn như đỏ, xanh lục và xanh dương. Tài liệu này minh hoạ trong trường hợp bản đồ một kênh.
clamp(x, a, b)
- Gắn giá trị x vào dải ô [a, b].
exp2(x)
- Số mũ cơ sở 2; 2lần
floor(x)
- Trả về số nguyên gần nhất bằng hoặc nhỏ hơn x.
log2(x)
- Lôgarit cơ số 2; log2(x)
pow(b, x)
- Số mũ; bx.
XMP
- Nền tảng siêu dữ liệu mở rộng Một tiêu chuẩn xác định phương thức để mã hoá siêu dữ liệu vào vùng chứa hình ảnh; xác định theo ISO 16684-1:2011(E) Thông số kỹ thuật XMP Phần 1.
Định dạng nhiều hình
- Định dạng nhiều hình ảnh là kỹ thuật do Camera and Imaging phát triển Hiệp hội Sản phẩm (CIPA) để lưu trữ nhiều hình ảnh được mã hoá JPEG trong một tệp JPEG.
- Để biết thêm thông tin, hãy xem phần phụ thuộc có liên quan, Sách trắng của CIPA Định dạng nhiều hình ảnh DC-x 007-2009.
Vùng chứa G
- GContainer là phương thức để lưu trữ nhiều hình ảnh trong một hình ảnh vùng chứa, nơi một hình ảnh được coi là hình ảnh chính. Bất kỳ hạng nào hình ảnh bổ sung được coi là phiên bản thay thế hoặc phụ trợ. Siêu dữ liệu XMP được dùng để truyền đạt sự hiện diện và ý nghĩa của bất kỳ hình ảnh bổ sung. Để biết thêm thông tin, hãy xem GContainer chi tiết.
Mã hoá
Phần này mô tả cách mã hoá tệp JPEG phù hợp. Tham khảo T.81 (09/92) Nén kỹ thuật số và mã hoá âm thanh liên tục hình ảnh, trong mục Phần phụ thuộc, để biết thêm thông tin về định dạng JPEG.
Nhận khả năng tạo bản đồ
Đường ống tạo ảnh của camera thường thực hiện thao tác nén phạm vi để nén dữ liệu độ chói của dải động cao hơn xuống phạm vi thấp hơn của Màn hình SDR. Bản đồ khuếch đại cung cấp cơ chế lưu trữ dữ liệu đầy đủ để khôi phục dữ liệu độ chói dải động cao hơn ban đầu.
Các phép tính sau đây trong phần này giả định số học dấu phẩy động.
Các hàm sau đây mô tả hình ảnh SDR:
SDR'(x, y)
là ba kênh, phi tuyến tính (thường được mã hoá gamma) hình ảnh chính.SDR(x, y)
là phiên bản tuyến tính của hình ảnh chính ba kênh, thu được bằng cách biến đổi sang phiên bản tuyến tính của màu ảnh chính . Ví dụ: từ hệ màu có chức năng chuyển sRGB sang hệ màu tuyến tính giúp bảo toàn dải màu sơ cấp sRGB.
Hàm Ysdr(x, y)
được xác định trong khoảng từ 0.0 đến 1.0 và là
độ chói tuyến tính của hình ảnh chính dải động chuẩn:
Ysdr(x, y) = primary_color_profile_to_luminance(SDR(x, y))
Có các định nghĩa tương tự cho hình ảnh HDR.
HDR'(x, y)
là ba kênh phi tuyến tính, tức là PQ hoặc HLG được mã hoá hình ảnh.HDR(x, y)
là hình ảnh HDR tuyến tính 3 kênh.
Yhdr(x, y)
là độ chói tại một điểm nhất định của hình ảnh HDR:
Yhdr(x, y) = primary_color_profile_to_luminance(HDR(x, y))
Yhdr(x, y)
được xác định trong khoảng từ 0.0 đến tăng cường nội dung tối đa.
Hình ảnh SDR và HDR phải có cùng độ phân giải. Cấu hình màu của SDR image xác định hệ màu của hình ảnh HDR.
Ví dụ: nếu ảnh chính SDR có cấu hình màu Display-P3, thì hình ảnh HDR được xác định tương ứng với màu chính của cấu hình đó. Chiến dịch này có nghĩa là hình ảnh HDR cũng có dải màu sơ cấp của Display-P3.
Bản đồ khuếch đại được tính từ hai hình ảnh tuyến tính có chứa hình ảnh HDR mong muốn
độ chói, Yhdr(x, y)
và hình ảnh độ chói trong phạm vi tiêu chuẩn Ysdr(x, y)
.
Hàm pixel_gain(x, y)
được định nghĩa là tỷ lệ giữa Yhdr(x, y)
và hàm Ysdr(x, y)
:
pixel_gain(x, y) = (Yhdr(x, y) + offset_hdr) / (Ysdr(x, y) + offset_sdr)
Hành vi của hàm pixel_gain(x, y)
trong đó Ysdr(x, y)
và offset_sdr
là
cả 0 đều do triển khai xác định.
Ví dụ: các quy trình triển khai có thể xử lý trường hợp Ysdr(x, y)
và
offset_sdr
đều bằng 0 khi xác định pixel_gain(x, y)
là 1.0. Ngoài ra,
Việc triển khai cũng giúp tránh trường hợp này bằng cách sử dụng một offset_sdr
khác 0.
Quá trình triển khai có thể chọn các giá trị của offset_sdr
và offset_hdr
.
Bản đồ khuếch đại là một hàm vô hướng mã hoá pixel_gain(x, y)
trong một
không gian lôgarit, tương ứng với tăng nội dung tối đa và tăng nội dung tối thiểu:
map_min_log2 = log2(min_content_boost)
map_max_log2 = log2(max_content_boost)
log_recovery(x, y) = (log2(pixel_gain(x, y)) - map_min_log2)
/ (map_max_log2 - map_min_log2)
clamped_recovery(x, y) = clamp(log_recovery(x, y), 0.0, 1.0)
recovery(x, y) = pow(clamped_recovery(x, y), map_gamma)
Hành vi của hàm recovery(x, y)
, trong đó pixel_gain(x, y)
bằng 0 là
triển khai được xác định, vì log2(0)
không xác định.
map_gamma
là số có dấu phẩy động phải lớn hơn 0 và
do quá trình triển khai chọn.
Giá trị của mức tăng nội dung tối đa và mức tăng nội dung tối thiểu là do người tạo nội dung xác định và có thể tuỳ ý quyết định. Mức tăng nội dung tối đa phải lớn hơn hoặc bằng 1. Mức tăng cường nội dung tối thiểu phải nằm trong khoảng (0,0, 1,0].
Các giá trị trong recovery(x, y)
được giới hạn trong phạm vi [0,0, 1,0].
Bản đồ khuếch đại được lưu trữ trong ảnh JPEG của hình ảnh thứ hai và do đó phải được mã hoá
sử dụng các giá trị số nguyên không dấu, 8 bit, do đó trong phạm vi [0, 255]. Từng giá trị
đại diện cho giá trị recovery(x, y)
và được lưu trữ trong một pixel của lớp phụ
hình ảnh.
Đối với bộ nhớ số nguyên chưa ký 8 bit, giá trị được mã hoá được định nghĩa là sau:
encoded_recovery(x, y) = floor(recovery(x, y) * 255.0 + 0.5)
Việc tính toán hàm mã hoá được thực hiện ở dấu phẩy động và được chuyển đổi ở mức phần cuối của kết quả số nguyên 8 bit chưa ký bằng cách làm tròn như được chỉ ra.
Phương thức mã hoá này tạo ra kết quả biểu diễn số nguyên 8 bit chưa ký của
Các giá trị recovery(x, y)
, từ 0,0 đến 1,0. Bản đồ lợi ích được mã hoá phải được lưu trữ trong
một mục hình ảnh phụ dưới dạng JPEG. Việc triển khai chọn số lượng
nén để sử dụng trong khi mã hoá JPEG.
Sau khi bản đồ khu vực được lưu trữ trong hình ảnh thứ cấp, bản đồ này được nối vào hình ảnh có siêu dữ liệu MPF và GContainer XMP. Hình ảnh chính GContainer thư mục phải chứa một mục cho hình ảnh bản đồ nhận được.
Độ phân giải của bản đồ lợi ích đã lưu trữ được triển khai và có thể được xác định. khác với độ phân giải của ảnh chính. Trong trường hợp mức tăng Bản đồ được chia tỷ lệ theo độ phân giải khác với hình ảnh chính để lưu trữ, phương pháp lấy mẫu phải song tuyến tính hoặc tốt hơn và được xác định cách triển khai.
Hướng của bản đồ khuếch đại phải khớp với hướng của hình ảnh chính. Nếu hiện diện, mọi siêu dữ liệu về hướng trong hình ảnh bản đồ được lưu trữ, như trong EXIF, sẽ không được sử dụng.
Nếu có, cấu hình màu của bản đồ khuếch đại sẽ không được sử dụng.
Nhận vùng chứa bản đồ
Cấu hình màu
Hồ sơ màu của hình ảnh phải được biểu thị qua Cấu hình ICC cho hình ảnh chính.
Thuộc tính XMP
Hình ảnh chính chứa siêu dữ liệu XMP để xác định ít nhất 2 hình ảnh có bổ sung thông tin ngữ nghĩa cho định dạng bản đồ tăng HDR.
Các tiểu mục sau đây có thông tin chi tiết dành riêng cho định dạng này. Thông tin khác thông tin về tuân thủ chung đối với GContainer được chỉ định trong Mục Thông tin chi tiết về GContainer.
Giá trị thuộc tính được mô tả trong các bảng sau được lưu trữ dưới dạng XMP đơn giản của các loại giá trị cơ bản XMP được chỉ định.
Giá trị ngữ nghĩa của mặt hàng
Thuộc tính Item:Semantic
xác định ý nghĩa dành riêng cho ứng dụng
của từng mục nội dung đa phương tiện trong thư mục vùng chứa.
Giá trị | Mô tả |
---|---|
Chính | Cho biết mục nội dung đa phương tiện là hình ảnh chính, sẵn sàng để hiển thị, trong vùng chứa. Thư mục phải chứa một phần tử "Chính" mục. |
GainMap | Cho biết mục nội dung đa phương tiện là một bản đồ khuếch đại. Thư mục có thể chứa tối đa một "GainMap" mục. |
Siêu dữ liệu bản đồ HDR Gain
Việc thu được siêu dữ liệu bản đồ sẽ mã hoá thông tin về cách diễn giải và áp dụng mức tăng ánh xạ để tạo bản trình bày HDR của hình ảnh chính.
URI không gian tên XMP cho phần mở rộng XMP của siêu dữ liệu bản đồ là
http://ns.adobe.com/hdr-gain-map/1.0/
. Tiền tố không gian tên mặc định là
hdrgm
.
Siêu dữ liệu này được lưu trữ trong gói XMP của hình ảnh bản đồ khuếch đại và
các thuộc tính phải xuất hiện trong rdf:Description
của hình ảnh bản đồ tăng cường XMP:
Tên | Loại | Mô tả |
---|---|---|
hdrgm:Phiên bản | Văn bản | Phiên bản của định dạng bản đồ tăng đang được sử dụng. Phiên bản này là "1.0". Required. |
hdrgm:BaseRenditionIsHDR | Boolean | Cho biết dải động của hình ảnh chính. "Sai" cho biết hình ảnh chính là SDR và bản đồ khuếch đại có thể được kết hợp với nó để tạo ra Hiển thị HDR. "Đúng" cho biết hình ảnh chính là HDR và bản đồ khuếch đại có thể được kết hợp với dữ liệu đó để tạo ra lần hiển thị SDR. Phải là "False". Không bắt buộc; giá trị mặc định là "False". |
hdrgm:GainMapMin | Mảng Real hoặc mảng có thứ tự | Lưu trữ(các) giá trị của map_min_log2 . Đây là
Tăng log2 nội dung tối thiểu, đây là tỷ lệ tối thiểu cho phép
độ chói tuyến tính đối với hiển thị HDR mục tiêu so với (chia
bằng) của hình ảnh SDR, tại một pixel nhất định. Có thể là một Real hoặc
mảng Real được sắp xếp theo thứ tự. Khi một mảng Real được sắp xếp theo thứ tự, mảng đó có thể chứa một
mục áp dụng cho tất cả các kênh hoặc ba mục cho các màu Đỏ, Xanh lục và
Kênh màu xanh dương tương ứng. Phải nhỏ hơn hoặc bằng
hdrgm:GainMapMax . Không bắt buộc; giá trị mặc định là 0.0. |
hdrgm:GainMapMax | Mảng Real hoặc mảng có thứ tự | Lưu trữ(các) giá trị của map_max_log2 . Đây là
log2 mức tăng nội dung tối đa, đây là tỷ lệ tối đa cho phép
độ chói tuyến tính cho hiển thị HDR mục tiêu so với (chia
bằng) của hình ảnh SDR, tại một pixel nhất định. Có thể là một Real hoặc
mảng Real được sắp xếp theo thứ tự. Khi một mảng Real được sắp xếp theo thứ tự, mảng đó có thể chứa một
mục áp dụng cho tất cả các kênh hoặc ba mục cho các màu Đỏ, Xanh lục và
Kênh màu xanh dương tương ứng. Phải lớn hơn hoặc bằng
hdrgm:GainMapMin . Bắt buộc. |
hdrgm:Gamma | Mảng Real hoặc mảng có thứ tự | Lưu trữ(các) giá trị của map_gamma . Đây là gamma cho
áp dụng cho các giá trị bản đồ được lưu trữ. Có thể là một Real hoặc một mảng được sắp xếp theo thứ tự
Thực Khi một mảng Real được sắp xếp theo thứ tự, mảng đó có thể chứa một mục áp dụng
cho tất cả các kênh hoặc ba mục cho kênh Đỏ, Xanh lục và Xanh dương
. Phải lớn hơn 0,0. Không bắt buộc; giá trị mặc định là
1.0. |
hdrgm:OffsetSDR | Mảng Real hoặc mảng có thứ tự | Lưu trữ(các) giá trị của offset_sdr . Đây là giá trị bù trừ cho
áp dụng cho các giá trị pixel SDR trong quá trình tạo và ứng dụng bản đồ.
Có thể là một Real hoặc một mảng các Real được sắp xếp theo thứ tự. Khi một mảng được sắp xếp theo thứ tự của
Thực tế, nội dung này có thể chứa một mục áp dụng cho tất cả các kênh hoặc ba mục
cho các kênh Đỏ, Xanh lục và Xanh tương ứng. Phải từ 0,0 trở lên.
Không bắt buộc; giá trị mặc định là 0,015625 (1/64). |
hdrgm:OffsetHDR | Mảng Real hoặc mảng có thứ tự | Lưu trữ(các) giá trị của offset_hdr . Đây là giá trị bù trừ cho
áp dụng cho các giá trị pixel HDR trong quá trình tạo và ứng dụng bản đồ.
Có thể là một Real hoặc một mảng các Real được sắp xếp theo thứ tự. Khi một mảng được sắp xếp theo thứ tự của
Thực tế, nội dung này có thể chứa một mục áp dụng cho tất cả các kênh hoặc ba mục
cho các kênh Đỏ, Xanh lục và Xanh tương ứng. Phải từ 0,0 trở lên.
Không bắt buộc; giá trị mặc định là 0,015625 (1/64). |
ảnh nền:HDRCapacityMin | Thực | Lưu trữ giá trị của hdr_capacity_min . Đây là
log2 giá trị mức tăng hiển thị tối thiểu mà bản đồ
được áp dụng nào cả. Giá trị này cũng ảnh hưởng đến mức độ áp dụng mức tăng bản đồ
khi tăng cường hiển thị. Phải từ 0,0 trở lên. Không bắt buộc; mặc định
giá trị là 0. |
hdrgm:HDRCapacityMax | Thực | Lưu trữ giá trị của hdr_capacity_max . Đây là
log2 giá trị tăng hiển thị tối đa mà bản đồ
được áp dụng hoàn toàn. Giá trị này cũng ảnh hưởng đến mức độ áp dụng bản đồ mức tăng
dựa trên việc tăng cường hiển thị. Phải lớn hơn
hdrgm:HDRCapacityMin . Bắt buộc. |
Ví dụ về việc tăng XMP của bản đồ
Ví dụ sau đây về một gói XMP của bản đồ mức tăng hợp lệ chứa siêu dữ liệu đã lấy từ tệp ví dụ được minh hoạ trong phần Giới thiệu.
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.5.0"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:hdrgm="http://ns.adobe.com/hdr-gain-map/1.0/" hdrgm:Version="1.0" hdrgm:GainMapMin="-0.57609993" hdrgm:GainMapMax="4.7090998" hdrgm:Gamma="1" hdrgm:OffsetSDR="0.015625" hdrgm:OffsetHDR="0.015625" hdrgm:HDRCapacityMin="0" hdrgm:HDRCapacityMax="4.7090998" hdrgm:BaseRenditionIsHDR="False"/> </rdf:RDF> </x:xmpmeta>
Bộ nhớ MPF của bản đồ khuếch đại
Hình ảnh bản đồ khuếch đại phải được lưu trữ dưới dạng hình ảnh bổ sung như được định nghĩa trong CIPA Định dạng nhiều hình DC-x 007-2009, như nêu trong Mục Phần phụ thuộc.
Giải mã
Phần này mô tả cách giải mã bản đồ khuếch đại từ tệp JPEG tuân thủ.
Tín hiệu của định dạng
Tệp JPEG phù hợp với định dạng này có thể được xác định bằng sự hiện diện của
hdrgm:Version="1.0"
trong gói XMP của hình ảnh chính, trong đó hdrgm
là
URI không gian tên http://ns.adobe.com/hdr-gain-map/1.0/
.
Định vị hình ảnh bản đồ khuếch đại
Để biết chi tiết về việc phân tích cú pháp và giải mã hình ảnh, hãy xem GContainer
chi tiết. "GainMap" mục ngữ nghĩa trong XMP
rdf:Directory
dùng để báo hiệu vị trí của một hình ảnh khuếch đại trên bản đồ.
Ngoài ra, IFD Chỉ mục MPF và quét hình ảnh XMP dùng để xác định
vị trí của bản đồ khuếch đại.
Xử lý siêu dữ liệu không hợp lệ
Siêu dữ liệu bị coi là không hợp lệ nếu không có trường bắt buộc hoặc nếu có trường có giá trị không hợp lệ. Một giá trị có thể không hợp lệ vì không phải là có thể phân tích cú pháp thành loại được chỉ định hoặc bởi vì loại dữ liệu nằm ngoài phạm vi dự kiến.
Nếu gặp siêu dữ liệu không hợp lệ, bản đồ mức tăng sẽ bị bỏ qua và SDR sẽ hiển thị hình ảnh.
Màn hình
Các tệp được mã hoá ở định dạng bản đồ tăng HDR có thể hiển thị trên: màn hình SDR thông thường hoặc trên màn hình HDR có độ chói cao hơn đầu ra.
Sử dụng bản đồ khuếch đại để tạo hiển thị HDR được điều chỉnh
Các phép tính sau đây trong phần này giả định số học dấu phẩy động.
encoded_recovery(x, y)
là giá trị số nguyên không dấu, một kênh, 8 bit
từ hình ảnh bản đồ thu được.
Nếu bản đồ khuếch đại có độ phân giải khác với hình ảnh chính, thì
Thay vào đó, encoded_recovery(x, y)
được xác định bằng một mẫu đã lọc của
thu được hình ảnh bản đồ cho x và y trong phạm vi chiều rộng và chiều cao của hình ảnh chính,
. Phương pháp lọc phải là song tuyến tính hoặc tốt hơn và
triển khai đã xác định.
map_gamma
được xác định bởi trường siêu dữ liệu hdrgm:Gamma
.
log_recovery(x, y)
là mức tăng pixel dấu phẩy động đã chuẩn hoá trong
không gian lôgarit:
recovery(x, y) = encoded_recovery(x, y) / 255.0
log_recovery(x, y) = pow(recovery(x, y), 1.0 / map_gamma)
Mức tăng màn hình tối đa là giá trị dấu phẩy động vô hướng được xác định là tỷ lệ giữa điểm trắng HDR hiện tại và chia cho điểm trắng SDR hiện tại. Chiến dịch này do hệ thống hiển thị cung cấp và có thể thay đổi theo thời gian.
hdr_capacity_max
được xác định bởi trường siêu dữ liệu hdrgm:HDRCapacityMax
.
hdr_capacity_min
được xác định bởi trường siêu dữ liệu hdrgm:HDRCapacityMin
.
weight_factor
được xác định như sau khi hdrgm:BaseRenditionIsHDR
được
"Sai":
unclamped_weight_factor = (log2(max_display_boost) - hdr_capacity_min)
/ (hdr_capacity_max - hdr_capacity_min)
weight_factor = clamp(unclamped_weight_factor, 0.0, 1.0)
Khi hdrgm:BaseRenditionIsHDR
là "Đúng", phương trình thứ hai sẽ là:
weight_factor = 1.0 - clamp(unclamped_weight_factor, 0.0, 1.0)
gain_map_max
được xác định bởi trường siêu dữ liệu hdrgm:GainMapMax
.
gain_map_min
được xác định bởi trường siêu dữ liệu hdrgm:GainMapMin
.
offset_sdr
được xác định bởi trường siêu dữ liệu hdrgm:OffsetSDR
. offset_hdr
được xác định bởi trường siêu dữ liệu hdrgm:OffsetHDR
.
Bạn có thể tính toán giao diện HDR được điều chỉnh theo tuyến tính như sau:
log_boost(x, y) = gain_map_min * (1.0f - log_recovery(x, y))
+ gain_map_max * log_recovery(x, y)
HDR(x, y) = (SDR(x, y) + offset_sdr) * exp2(log_boost(x, y) * weight_factor)
- offset_hdr
Nếu cần, quá trình triển khai có thể áp dụng một phép biến đổi cho HDR(x, y)
để đặt giá trị
trong không gian mà màn hình dự kiến. Mọi phép biến đổi như vậy phải
chính xác theo màu.
Thông tin về GContainer
Phần này nêu rõ các yêu cầu bổ sung để định dạng này tuân thủ với siêu dữ liệu XML GContainer. Siêu dữ liệu được chuyển đổi tuần tự theo tiêu chuẩn ISO 166841:2011(E) Thông số kỹ thuật XMP Phần 1 và được nhúng bên trong tệp hình ảnh chính như được mô tả trong Thông số kỹ thuật của Adobe XMP Phần 3 Bộ nhớ trong ứng dụng Files. Tệp hình ảnh chính chứa các mục sau, có định dạng là RDF/XML.
Yêu cầu về gói XMP
Gói XMP phải bao gồm phần mở rộng XMP của siêu dữ liệu bản đồ khuếch đại thông qua
URI không gian tên http://ns.adobe.com/hdr-gain-map/1.0/
. Không gian tên mặc định
có tiền tố là hdrgm
.
Gói XMP sẽ định nghĩa hdrgm:Version="1.0"
.
Phần tử vùng chứa
Không gian tên XMP cho tiện ích GContainer XMP là
http://ns.google.com/photos/1.0/container/
. Tiền tố không gian tên mặc định là
Container
.
Hình ảnh chính chứa phần tử Container:Directory
trong siêu dữ liệu XMP
xác định thứ tự và thuộc tính của tệp đa phương tiện tiếp theo trong tệp
vùng chứa. Mỗi tệp trong vùng chứa có một mục nội dung đa phương tiện tương ứng trong thẻ
Container:Directory
. Mục nội dung nghe nhìn mô tả vị trí trong tệp
vùng chứa và các thuộc tính cơ bản của từng tệp nối.
Phần tử vùng chứa được mã hoá thành siêu dữ liệu XMP của hình ảnh chính và xác định một thư mục gồm các mục nội dung đa phương tiện trong vùng chứa. Bạn phải tìm các mục nội dung đa phương tiện trong tệp vùng chứa theo cùng thứ tự như các phần tử mục nội dung đa phương tiện trong và phải được đóng gói chặt chẽ.
Thư mục này chỉ có thể chứa một phần tử "Chính" mục hình ảnh và đó phải là mục đầu tiên mục trong thư mục.
Tên phần tử | Loại | Mô tả |
---|---|---|
Vùng chứa:Thư mục | Mảng cấu trúc theo thứ tự | Mảng cấu trúc theo thứ tự, mỗi mảng chứa một Container:Item
tạo xác định bố cục và nội dung của vùng chứa. |
Phần tử mục
Phần tử mục mô tả cách ứng dụng sử dụng từng mục nội dung đa phương tiện.
URI không gian tên XMP cho tiện ích XMP của mục GContainer
http://ns.google.com/photos/1.0/container/item/
. Tiền tố không gian tên mặc định
là Item
.
Mục nội dung đa phương tiện đầu tiên phải là hình ảnh chính.Tệp này phải chỉ định Item:Semantic
= "Primary"
và Item:Mime
được liệt kê trong
Giá trị loại MIME của mặt hàng.
Chiều dài của mục hình ảnh chính được xác định bằng cách phân tích cú pháp hình ảnh chính hình ảnh dựa trên loại MIME bắt đầu từ đầu vùng chứa tệp.
Mục nội dung đa phương tiện có thể chứa thuộc tính Item:Padding
chỉ định
khoảng đệm giữa điểm kết thúc của mục nội dung đa phương tiện và điểm bắt đầu của nội dung nghe nhìn tiếp theo
mục. Khi hiển thị trên mục nội dung đa phương tiện gần đây nhất trong Container:Directory
,
Item:Padding
cho biết khoảng đệm giữa điểm cuối mục và cuối mục
.
Mỗi mục nội dung đa phương tiện phải chứa loại Item:Mime
và thuộc tính Item:Semantic
.
Các mục nội dung nghe nhìn của hình ảnh phụ phải chứa các thuộc tính Item:Length
.
Các mục nội dung nghe nhìn tuần tự có thể chia sẻ dữ liệu tài nguyên trong vùng chứa tệp. Chiến lược phát hành đĩa đơn
mục nội dung đa phương tiện đầu tiên xác định vị trí của tài nguyên trong vùng chứa tệp,
và các mục nội dung nghe nhìn được chia sẻ tiếp theo đã đặt Item:Length
thành 0. Trong trường hợp
dữ liệu tài nguyên là một vùng chứa, Item:URI
có thể được dùng để xác định
vị trí của dữ liệu mục nội dung đa phương tiện trong tài nguyên.
Vị trí của tài nguyên mục nội dung đa phương tiện trong vùng chứa được xác định bằng cách tính tổng
độ dài của mã hoá hình ảnh chính, các giá trị Item:Length
của
các tài nguyên mục nội dung đa phương tiện phụ trước đó và tất cả Item:Padding
trước đó
giá trị. Item:Padding
được coi là 0 trên những tài nguyên mục nội dung đa phương tiện không
chỉ định giá trị của tham số đó.
Tên thuộc tính | Loại | Mô tả |
---|---|---|
Mục:Mime | Văn bản | Chuỗi đơn giản cho biết loại MIME của mục nội dung đa phương tiện trong vùng chứa. Để biết định nghĩa, hãy xem phần Giá trị loại MIME của mặt hàng. Required. |
Mục:Ngữ nghĩa | Văn bản | Chuỗi đơn giản cho biết ý nghĩa cụ thể của nội dung nghe nhìn trong ứng dụng mục. Để biết định nghĩa, hãy xem phần Giá trị ngữ nghĩa của mặt hàng. Required. |
Mục:Chiều dài | Số nguyên | Chuỗi đơn giản chứa độ dài số nguyên dương tính bằng byte của mặt hàng. Độ dài 0 cho biết tài nguyên mục nội dung đa phương tiện được chia sẻ với mục nội dung nghe nhìn. Bắt buộc đối với các mục nội dung nghe nhìn phụ. Không bắt buộc đối với mục nội dung nghe nhìn dạng hình ảnh. |
Mục:Nhãn | Văn bản | Chuỗi do phương thức triển khai xác định được dùng để phân biệt nhiều mục
các phần tử có cùng Item:Semantic . Không bắt buộc. |
Mục:Khoảng đệm | Số nguyên | Một chuỗi chứa độ dài số nguyên dương tính bằng byte
khoảng đệm giữa điểm kết thúc của mục nội dung đa phương tiện và điểm bắt đầu của mục nội dung đa phương tiện tiếp theo
mục nội dung nghe nhìn hoặc phần cuối của tệp khi được sử dụng trên mục nội dung nghe nhìn gần đây nhất trong
Container:Directory . Giá trị 0 được giả định khi không có giá trị này.
Không bắt buộc. |
Mục:URI | Văn bản | Chuỗi URI tuân theo mục 8.11.9 của ISO/IEC 14496-12, chứa URI tương đối của dữ liệu nội dung đa phương tiện bên trong tài nguyên mục nội dung đa phương tiện. Mặc định là tài nguyên hình ảnh chính. Không bắt buộc đối với các loại MIME định dạng tệp đa phương tiện cơ sở ISO ISO/IEC 14496-12. Có thể không sử dụng được cho trường hợp khác. |
Giá trị loại MIME của mặt hàng
Thuộc tính Item:Mime
xác định loại MIME của từng mục nội dung đa phương tiện
.
Giá trị | Mô tả |
---|---|
hình ảnh/jpeg | Hình ảnh JPEG. |
Ví dụ về GContainer XMP
Ví dụ sau về gói GContainer XMP hợp lệ đã được lấy từ tệp ví dụ được minh hoạ trong phần Giới thiệu.
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.1.2"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description xmlns:Container="http://ns.google.com/photos/1.0/container/" xmlns:Item="http://ns.google.com/photos/1.0/container/item/" xmlns:hdrgm="http://ns.adobe.com/hdr-gain-map/1.0/" hdrgm:Version="1.0"> <Container:Directory> <rdf:Seq> <rdf:li rdf:parseType="Resource"> <Container:Item Item:Semantic="Primary" Item:Mime="image/jpeg"/> </rdf:li> <rdf:li rdf:parseType="Resource"> <Container:Item Item:Semantic="GainMap" Item:Mime="image/jpeg" Item:Length="66171"/> </rdf:li> </rdf:Seq> </Container:Directory> </rdf:Description> </rdf:RDF> </x:xmpmeta>