2013-11-27 3 views
0

libvpx 코덱 작업은 압축되지 않은 프레임 데이터를 교환하기 위해 vpx_image_t 구조체를 사용합니다. 대다수의 회원이 의미하는 바를 이해했지만, x_chroma_shifty_chroma_shift으로 붙어 있습니다. 문서에서 제공되는 유일한 설명은 "서브 샘플링 순서"입니다. 저는 YUV 이미지 형식의 초보자입니다. 그러나 저는 채도 서브 샘플링이 무엇인지 이해하고 있습니다 만, 그 순서가 무엇인지 알 수는 없습니다.libvpx의 vpx_image_t 구조체에서 "채도 이동"이란 무엇입니까?

답변

1

(w, h) YUV 이미지 (w 및 h는 짝수 임)를 고려하십시오. Y 평면 사이즈는 (H, w) 하지만 U/V 평면 사이즈 (으로 w/(1 < < x_chroma_shift 상당), H (< < x_chroma_shift, H < < y_chroma_shift w)/(인 1 < < y_chroma_shift)). 서로 다른 채도 이동 조합은 다음과 같이 서로 다른 YUV 서브 샘플링을 정의합니다.

YUV | x_chroma_shift | y_chroma_shift 
======+================+=============== 
4:2:0 | 1    | 1 
4:2:2 | 1    | 0 
4:4:4 | 0    | 0 
+0

흥미로운 방식으로 서브 샘플링을 표현하는 데 감사드립니다. 그러나 그것들은 모두 이미지 유형에 의해 결정되기 때문에 적어도 bps와 함께 입력을 위해이 멤버들을 여분으로 만들 것입니다. –

+0

이것은 U/V 평면 너비와 높이를 결정하는 빠른 방법입니다. 물론 일반적으로 이미지 유형 (vpx_img_fmt_t)을 사용할 수 있습니다. bps는 "압축 된"형식에만 사용되며 "평면"에 대해서는 사용되지 않습니다. – dmitriykovalev