2017-05-16 42 views
3

我想使用turbo jpeg將JPEG圖像轉換爲Y'UV420p。我認爲這使用了一些2×2的塊,其中每個U和V組件中存在兩倍的Y'信息,但是我還沒有找到一個能夠做到這一點的例子。turbojpeg的tjDecompressToYUV2數據格式

如何從tjDecompressToYUV2中提取這些單獨的組件,以及爲尺寸爲2的冪的圖像分配的緩衝區的格式是什麼?

說我有一個1024寬,512像素高的圖像。我將如何從下面的代碼中提取每個Y'U和V值:

constexpr auto height = 512u; 
constexpr auto width = 1024u; 
unsigned char buffer[height * width * 3/2]; 
... 
tjDecompressToYUV2(jpegDecompressor, jpegImage, jpegSize, buffer, width, 2, height, TJFLAG_FASTDCT); 
... 

即,如何從緩衝區中提取組件?

回答

3

嘗試使用tjDecompressToYUV函數,該函數爲您提供3個不同輸出緩衝區上的3個顏色空間。 Y緩衝區應該包含Y分量的一個字節(八位值)。我從來沒有使用色度組件,所以我不能告訴你它們是如何存儲的。

你試圖做什麼,因爲可能有另一種方法來解決這個問題?