gpt4 book ai didi

ios - CVPixelbuffer 中的平面是什么?

转载 作者:可可西里 更新时间:2023-11-01 06:24:06 24 4
gpt4 key购买 nike

CVPixelBuffer对象中,有一个或多个平面。 ( reference )我们有方法获取数字,高度,平面的基地址。

那么飞机到底是什么?它是如何在 CVPixelBuffer 中构建的?

示例:

<CVPixelBuffer 0x1465f8b30 width=1280 height=720 pixelFormat=420v iosurface=0x14a000008 planes=2>
<Plane 0 width=1280 height=720 bytesPerRow=1280>
<Plane 1 width=640 height=360 bytesPerRow=1280>

最佳答案

视频格式是一个极其复杂的主题。

一些视频流将像素存储在字节中 RGBA、ARGB、ABGR 或其他几种变体(有或没有 alpha channel )

(在 RGBA 格式中,一个像素的红色、绿色、蓝色和 alpha 值一个接一个地存储在内存中,然后是另一组 4 个字节,其中包含下一个像素的颜色值,等等.) 这是交错的颜色信息。

一些视频流将颜色 channel 分开,因此所有红色 channel 、蓝色 channel 、绿色 channel 和 alpha channel 都作为单独的“平面”发送。您将获得一个包含所有红色信息的缓冲区,然后是所有蓝色数据,然后是所有绿色数据,然后是 alpha(如果包含 alpha)。 (想想彩色负片,其中有单独的乳剂层来捕捉不同的颜色。乳剂层是颜色信息的平面。这与数字的想法相同。)

有些格式的颜色数据在一个或两个平面中,然后亮度在一个单独的平面中。这就是老式模拟彩色电视的工作原理。它最初是黑白(亮度),然后广播公司添加了边带信号来传达颜色信息。 (色度)

我不会经常使用 CVPixelBuffer 来了解你所问的血淋淋的细节,并且在我可以“旋转”之前必须投入大量的时间和大量的咖啡” 我的大脑足以掌握那些血淋淋的细节。

编辑:

由于您的调试信息显示 2 个平面,因此该像素缓冲区似乎有一个亮度 channel 和一个色度 channel ,如 @zeh 的回答中所述。

关于ios - CVPixelbuffer 中的平面是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40353149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com