2014-06-09 3 views
0

원시 YUV420p 데이터를 가져 오는 데 사용할 값을 알지 못합니다. 먼저 아래 코드 :원시 YUV420p 카메라 데이터를 가져 오는 방법

AVCaptureVideoDataOutput *output = [[AVCaptureVideoDataOutput alloc] init]; 
output.alwaysDiscardsLateVideoFrames = YES; 
output.videoSettings = @{(id)kCVPixelBufferPixelFormatTypeKey: [NSNumber numberWithUnsignedInt:kCVPixelFormatType_420YpCbCr8BiPlanarFullRange]}; 
//output.videoSettings = @{(id)kCVPixelBufferPixelFormatTypeKey: [NSNumber numberWithUnsignedInt:kCVPixelFormatType_32BGRA]}; 

dispatch_queue_t queue; 
queue = dispatch_queue_create("CameraQueue", NULL); 
[output setSampleBufferDelegate:self queue:queue]; 

[session addOutput:output]; 

나는 누군가가 원시 YUV420p 데이터를 가져올 바로 어떤 값을 알고 않습니다 kCVPixelFormatType 일부 값이 나타났습니다?

kCVPixelFormatType_420YpCbCr8Planar 
kCVPixelFormatType_420YpCbCr8PlanarFullRange 
kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange 
kCVPixelFormatType_420YpCbCr8BiPlanarFullRange 

중 하나 일 수 있습니까? 가리키는 Planar/Biplanar 가 인접 여부 Planar 각 구성 요소가 버퍼에 오는 것을 의미 메모리에 루마 및 크로마 성분의 배열을 의미하며, Biplanar :

답변

4

그것은 당신이 취득하는 특정 YUV420에 따라 달라집니다 2 개의 버퍼, 하나는 luma 용, 다른 하나는 채도 용, 보통 인터리브됩니다. Planar의 예 YUV420 형식이며 Biplanar의 예 NV21 또는

VideoRangeNV12FullRange는 휘도 성분의 값을 의미하고, Video은 [16235] 참조 레벨을 허용하고 FullRange [0255]이다. 이 혼란스러운 계약은 MPEG 표준 (see here)에서 나온 것입니다 ...

관련 문제