Mã hóa chiều sâu và độ tin cậy

Bản đồ độ sâu được chuyển đổi tuần tự dưới dạng một tập hợp các thuộc tính XMP. Là một phần của quá trình chuyển đổi tuần tự, trước tiên, bản đồ độ sâu được chuyển đổi sang định dạng hình ảnh truyền thống. Quy trình mã hóa chứa ba bước (xem Hình 2):

  • Chuyển đổi từ định dạng đầu vào (ví dụ: giá trị float hoặc giá trị int32) thành định dạng hình ảnh có thang màu xám nguyên, ví dụ: byte (8 bit) hoặc từ (16 bit).
  • Nén bằng cách sử dụng codec hình ảnh chuẩn, ví dụ: JPEG hoặc PNG.
  • Tuần tự hoá dưới dạng một thuộc tính chuỗi XMP có chuỗi 64.
Hình 2. Mô tả quy trình mã hoá bản đồ độ sâu.

Quy trình có thể không bị mất hoặc bị suy hao, tùy thuộc vào số bit của bản đồ độ sâu ban đầu và số bit được dùng để lưu trữ nó, ví dụ: 8 bit đối với bộ giải mã JPEG và 8 hoặc 16 bit đối với bộ giải mã PNG.

Hai định dạng khác nhau hiện được hỗ trợ: RangeLinearRangeInverse. RangeInverse là định dạng được đề xuất nếu bản đồ độ sâu sẽ mất độ chính xác khi được mã hóa, ví dụ: khi chuyển đổi từ float sang 8 bit. Cơ chế này phân bổ nhiều bit hơn đến các giá trị độ sâu gần và ít bit hơn so với giá trị xa, tương tự như cách hoạt động của vùng đệm z trong thẻ GPU.

Nếu bản đồ độ sâu có bản đồ độ tin cậy được đính kèm, bản đồ độ tin cậy cũng được chuyển đổi sang định dạng hình ảnh truyền thống bằng cách sử dụng quy trình tương tự như quy trình được sử dụng cho chiều sâu. Bản đồ độ tin cậy luôn được mã hoá bằng định dạng RangeLinear, với phạm vi tin cậy được giả định là [0, 1].

Dải tuyến tính

Đặt d là chiều sâu của pixel và gần và xa các giá trị chiều sâu tối thiểu và tối đa được xem xét. Giá trị chiều sâu được chuẩn hóa lần đầu thành phạm vi [0, 1] dưới dạng

sau đó định lượng 8 hoặc 16 bit là

Ngược lại, với chiều sâu lượng tử hoá 8 bit, bạn có thể phục hồi độ sâu d dưới dạng

Đảo ngược phạm vi

Đặt d là chiều sâu của pixel và gần và xa các giá trị chiều sâu tối thiểu và tối đa được xem xét. Giá trị chiều sâu được chuẩn hóa lần đầu thành phạm vi [0, 1] dưới dạng

sau đó định lượng 8 hoặc 16 bit là

Ngược lại, với chiều sâu được chuẩn hoá n, người ta có thể khôi phục chiều sâu d dưới dạng