2013-10-09 6 views
4

(크로스 libjpeg-터보 사용자에 목록을 기록했다.)은 어떻게 JPEG

내가 libjpeg 터보에 문제가있어에 YUYV 이미지를 압축합니다.

tjCompress2 기능을 사용하려면 압축하기 위해 RGB 또는 그레이 스케일 이미지가 필요합니다.

http://libjpeg-turbo.sourceforge.net/ljtdoc.branches_1.3.x/turbojpeg-c/group___turbo_j_p_e_g.html#gaba62b7a98f960839b588579898495cf2 

(죄송합니다, 당신이 그것을 인하를 나누기로 링크를 붙여 넣기해야합니다.)

내 웹캠 (PS3의 아이 토이)의 특징은 다음과 같습니다 http://en.wikipedia.org/wiki/JPEG#Color_space_transformation에서

[email protected] ~ $ v4l2-ctl --get-fmt-video 
Format Video Capture: 
    Width/Height : 320/240 
    Pixel Format : 'YUYV' 
    Field   : None 
    Bytes per Line: 640 
    Size Image : 153600 
    Colorspace : SRGB 

그것을 YUYV는 JPEG가 필요로하는 YCbCr과 같습니다 (휘도와 비교하여 Cb 및 Cr 데이터의 절반이 있지만). 나는 정확하게 이해 했는가?

행렬을 사용하여 YUYV를 RGB로 변환하는 방법을 알고 있지만 부족한 CPU 사이클과 색 정확도가 낭비되어 아무 것도 필요하지 않을 때 두 가지 색 공간을 변경할 수 있습니다.

YUYV 이미지를 JPEG로 직접 압축 할 수있는 기능이 있습니까?

답변

2

질문이 있은 이래로 tjCompressFromYUV 기능이 TurboJPEG API에 구현되었습니다. YCbCr 또는 YUV 형식의 이미지를 가져 와서 JPEG 이미지로 변환합니다.

그러나 TurboJPEG API를 사용하여 YUYV 이미지를 압축하려면 YUYVY-Cb-Cr 픽셀 형식으로 변환해야합니다.

는이 UV 구성 요소 당이 개 Y 구성 요소가 발생할 것 같이 또한, 4:2:2서브 샘플링과 YUV 이미지로 YUYV 이미지를 사용할 수있는 작은 기회가있을 수 있습니다 만, this source가 정확한 경우, 네 가지 수있다 YUVY 구성 요소를 배치하는 방법. 그러나 긍정적 인 결과를 얻기 위해서는 1/4의 기회가 필요합니다.

그렇지 않으면 PNGU 또는 이와 유사한 것을 사용하여 이미지를 변형 할 수 있습니다.이 라이브러리는 "PNG RGB8 형식의 YCbYCr 이미지 저장"이 가능하므로 JPEG로 변환하기 전에 비슷한 이미지를 변환 할 수 있습니다.