对V4L2的误解
A misunderstanding of V4L2
我在一个c++程序中遇到了一个关于缓冲区大小的小问题。我使用V4L2从相机抓取YUYV图像(这里有一个示例)
我想取一个图像并把它放到我自己的图像结构中。下面是V4L2结构给出的缓冲区及其大小
(uchar*)buffers_[buf.index].start, buf.bytesused
在我的结构中,我创建了一个新的缓冲区(mybuffer),大小为width*height*bitSize(字节大小为4,因为我抓取YUYV或YUV422图像)。
问题是我期望缓冲区但是与我创建的缓冲区大小相同。但情况并非如此,例如,当我抓取640*480的图像,但f=614400和mybuffer=1228800(两倍大)。有人知道为什么会这样吗?
YUV422 使用 4字节/ 2像素
在YUV422模式下,U
和V
值在两个像素之间共享。图像中的字节顺序为U0 Y0 V0 Y1 U2 Y2 V2 Y3
等
给出如下像素:
pixel 0 U0Y0V0
pixel 1 U0Y1V0
pixel 2 U2Y2V2
pixel 3 U2Y3V2
相关文章:
- #if 如何工作?我误解了 #if~#endif 的形式吗?
- 毕达哥拉斯三重嵌套循环误解
- VIDIOC_QBUF:设备或资源繁忙 V4L2 内存用户
- 在 ov5640 上使用 V4L2 设置 ctrl
- 误解可变参数模板函数
- C++:误解内存地址和指针的复制值
- C++14 线程/条件变量误解
- CPP继承有些误解
- 我是否误解了此默认参数共享的范围
- 对Liinux上静态链接的误解
- Pi 相机与 v4l2 OpenCv - 无法获得 2592x1944 分辨率
- 如何将 v4l2 中的数据放入 c++ 向量
- 类大括号初始化被误解为 std::initializer_list 而不是复制构造
- 动态加载库和运行时误解的显式链接
- 编译器函数中的误解
- 我应该将分配器作为函数参数传递吗?(我对分配器的误解)
- MSVC 19.11 / Visual C 2017:尺寸1和size_t类型的初始化列表误解
- SPIMI算法误解
- C++一般的继承误解
- 对V4L2的误解