JPEG kodlaması gama dikkate almalı mı?


11

Bir görüntü JPEG kullanılarak kodlandığında, RGB pikseller önce YUV'a kodlanır ve daha sonra UV kanalları aşağı örneklenir. Aslında DCT yapmadan ve katsayıları kodlamadan önce, JPEG Y kanalını gama düzeltmez . Bu doğru mu? İncelenen sonucumuzu en fazla etkileyecek DCT katsayılarını belirlememeli miyiz?


Bilmiyorum ama kesinlikle gama yapmamak mantıklı.
joojaa

Kendine güvenmediğim için bunu bir cevap olarak göndermiyorum, ama insan vizyonunun parlaklık algısı doğrusal değil . Aslında, sRGB bunu telafi etmek ve önemli alanlarda en hassasiyeti vermek için oldukça iyi bir iş çıkarır. Dolayısıyla, luma'yı sıkıştırmadan önce gama düzeltmenin aslında daha kötü sonuçlar verebileceğini görebilirsiniz.
yuriks

AFAIK, video standartları R'G'B'yi varsayar, yani. 3x3 renk dönüşümleri YCbCr'ye uygulanırken doğrusal olmayan bir renk uzayı. Birinin bit başına kaliteyi en üst düzeye çıkarmak istediği video gibi bir uygulamada, doğrusal kullanmak mantıklı değildir. Sanırım Charles Poyton'un Renkli SSS bölümleri 27 ve 29 daha açık bir şekilde ifade ediyor: poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC27
Simon F

"Video demystified" ayrıca şöyle diyor: "YCbCr, BT.601 tarafından tanımlanmış ve şimdi tüm dijital bileşen video formatları için kullanılan renk alanıdır. .... Teknik olarak doğru gösterim Y'Cb'Cr 'dir çünkü her üç bileşen de R'G'B'den türetilmiştir. "
Simon F

Gama üssü JPEG exif verilerinde saklanır. çoğu yazılım bunu tamamen görmezden gelir. ancak bir jpeg'i zaten gama alanında çözdükten sonra görüntüleme tamponunda rgb değerini göndermeden önce yapılması gereken bir dönüşüm olmadığını varsayabilirsiniz.
v.oddou

Yanıtlar:


2

Wikipedia'ya göre (standart sorumluluk reddi RE doğruluğunu ekleyin):

JPEG görüntüler için hangi renk kodlamasının kullanılacağını tanımlamaz. JFIF kullanılacak renk modelini tanımlar: gri tonlama için Y veya CCIR 601 tarafından tanımlanan YCbCr.

YCbCr doğrusal olmayan bir biçimdir. Daha önce de belirttiğim gibi, "Video Demystified" ifadesi:

"YCbCr başlangıçta BT.601 tarafından tanımlanan ve şimdi tüm dijital bileşen video formatları için kullanılan renk alanıdır. .... Teknik olarak doğru gösterim Y'Cb'Cr 'dir çünkü üç bileşenin tümü R'G'B'den türetilmiştir '."

ve Charles 'Poynton'ın Renk SSS durumları

Video sistemleri, her biri 0.45 güç işlevine tabi olan R'G'B 'sinyallerini kullanarak görüşün hafif yanıtını yaklaşık olarak hesaplar.

Sıkıştırma ile bit başına en iyi görsel sunumun peşindeyiz ve göz yaklaşık olarak bu şekilde doğrusal olmadığından, doğrusal olmayan gösterimlerin kullanılması mantıklıdır.


Bu detaylardan anladığım kadarıyla JPEG, giriş RGB değerlerinin, ekranın ekrana bir güç işlevi uygulayacak şekilde kodlanmasını bekler. Bu belirli RGB değerlerini yeniden amacıyla, bunlar gerektiği değil kodlayan önce düzeltilebilir.
Mokosha

1
Böyle ifade etmenin sorunu biraz belirsiz olmasıdır. Muhtemelen, "RGB" verileriniz aslında R'G'B 'ise (ve sRGB'nin bu kategoriye girdiğini varsayalım), R'G'B' 'yi uygulamadan önce değerleri değiştirmemeniz gerektiğini belirtmeliyiz. => YCbCr matrisi. Bununla birlikte, veriler, örneğin, bir oluşturucu ile hesaplandıysa (muhtemelen doğrusal), ölçek küçültme (doğrusal alanda yapılması gereken) kullanılarak işlenirse veya örneğin, bir CCD ( düşünün lineerdir), JPEG sıkıştırmasından önce yeniden eşlenmesi gerekir.
Simon F

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.