SeP*_*läm 5 ios cmsamplebuffer cvpixelbuffer
简短的问题是:解决 a 中像素值的公式是什么CVPixelBuffer?
我试图将 a 转换CVPixelBuffer为平面字节数组,并注意到一些奇怪的事情: TheCVPixelBuffer是从 a 获得的CMSampleBuffer。它的宽度和高度都是852x640像素。总而言之,考虑到每个像素的字节数545280,这将需要字节数。21811204
现在第一个奇怪的事情是,它每行CVPixelBuffer返回3456字节,这对于864像素来说有足够的空间。这些额外的12像素从哪里来?如果最终图像中的一行只有像素宽,但实际上一行中852有像素,我如何知道需要复制哪些字节?或者哪些字节未使用?顺便说一句,它们没用过吗?864CVPixelBuffer
另一件事是报告的数据大小CVPixelBuffers,即2211848字节。现在,如果我们将3456每行的字节数与640行数相乘,我们将得到2211840字节数。同样,我们还剩下8额外的字节。这些字节是怎么回事8?它们未被使用吗?他们到最后了吗?
欢迎任何能够阐明这一问题的建议,谢谢。
在内部,您的 CMSampleBuffer 将每行填充为 16 字节的倍数,以便它可以有效地使用处理器的内部 128 位宽寄存器传输数据。这是我的猜测。如果您使用 rowbytes 参数和 (0,0) 到 (851,639) 范围内的 (x,y) 访问像素数据,那么您应该永远不会遇到问题。
| 归档时间: |
|
| 查看次数: |
1271 次 |
| 最近记录: |