YUV框架层计算 - 所需的概念理解
YUV frame layer computation - Conceptual Understanding Needed
我正在使用独立的硬件开发板来执行计算机视觉操作。这是一个例子,以存储并将YUV框架存储到DDR内存中。但是我与YUV框架缓冲区代码有点混淆,该代码如下:
extern U8 inputFrame
void InitTestBuffers(int width, int height)
{
testFrameSpec.width = width;
testFrameSpec.height = height;
testFrameSpec.stride = width;
testFrameSpec.type = YUV420p;
testFrameSpec.bytesPP = 1;
inBuffer.spec = testFrameSpec;
//******************NEED TO KNOW THE BELOW PART***************
inBuffer.p1 = (u8*)(&inputFrame);
inBuffer.p2 = (u8*)((u32)(&inputFrame) + width * height);
inBuffer.p3 = (u8*)((u32)(&inputFrame) + width * height + width * height / 4);
//p1,p2,p3 are pointers to 1,2 and 3 image plane
//*************************************************************
return;
}
,即使在某些地方,它在以下是缓冲框架的下面
static u8 FRAMES outputFrame[FRAME_WIDTH * FRAME_HEIGHT * 3 / 2];
以下是他们使用这些概念但以不同方式使用的一个示例:
yuv
我的问题不是关于代码理解,而是我不明白为什么需要此计算(概念上(。
在这种情况下,您似乎要处理平面YCBCR。平面表示每个颜色组件都存储在单独的阵列(又称平面(中。这与包装格式相反,其中颜色组件都存储在一个阵列中(y y y y y cb cr或类似的模式(。因此,inBuffer.p1
将包含一个指向含有y值的width x height
的数组。inBuffer.p2
和inBuffer.p3
将分别包含包含width x height / 4
CB和Cr值的数组的指针。/ 4
是因为一个CB和Cr值每4 Y值使用。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 类似枚举的计算常量
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- YUV框架层计算 - 所需的概念理解
- 如果我使用的是框架,如何在另一台计算机上运行 mac exe?
- C/ c++框架的分布式计算(MPI?)