问题标签 [yuv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 从 Camera Preview 类创建/使用 YUV 图像缓冲区
在我们的应用程序中,我们需要使用来自相机 @ 33 fps 的捕获帧并将其传递给压缩,然后再将其发送到服务器,
我的压缩模块可以拿YUV Image,来压缩图像,我的相机配置如下,
宽度 = 500 像素,
高度 = 300 像素,
图像格式:YV12
关于预览回调
数据大小为 230400,但我想它会在
500*300(Y) + 500*300/4(U) + 500*300/4(V) 即 2250000
即多出 5400 字节,这是否意味着,我可以忽略扩孔?
我也需要创建 YUVImage 对象,但是步幅信息没有出现,所以我们如何从上面的数据创建 YUVImage。
真诚感谢您的阅读,如果有人能帮助我,我真的很感激。
opengl-es - 如何在OpenGL ES中显示yuv格式的数据而不转换rgb?
我一直在研究适用于 iOS 的 OpenGL ES。我想知道YUV格式的数据是否可以在不转换RGB的情况下显示。在大多数情况下,yuv 数据必须转换为 RGB 才能显示。但是,转换过程很慢,那就是显示不流畅。 所以,我想尝试在不转换为 RGB 的情况下显示 YUV 数据。可能吗?如果可能,我能做什么? 请让我给个建议。
c - YUV 422 , YUV 420 ,YUV 444
I have for example 4*4 image. I want to extract the Y,U and V components separately. How to do it if the image is YUV 422 ,YUV 420 and YUV444. I am interested in knowing the structure of array how Y,U and V are stored in 422,420 and 444, so that it can be accessed.
android - Android YUV 图像格式
在我们的应用程序中,我们需要传输视频,我们使用 Camera 类来捕获缓冲区并发送到目的地,
我已将格式设置为 YV12 作为相机参数来接收缓冲区,
对于 500X300 缓冲区,我们收到 230400 字节的缓冲区,
我想知道,这是预期的缓冲区大小吗?
我相信尺寸会是
Y 平面 = 宽 * 高 = 500X300 = 150000
U 平面 = 宽度/2 * 高度/2 = = 37500
V 平面 = 宽度/2 * 高度/2 = = 37500
谁能解释一下,如果我需要获取每个组件的步幅值,我该如何获取
有没有办法得到它?
android - 在 Android 上从视频播放中捕获 YUV 帧
我在 Android 上有一个应用程序,可以播放video
存储在SD card
. 我需要为YUV
软件执行的处理功能捕获各个帧的信息。
我目前MediaPlayer
在我的应用程序中使用库存的 Android。我可以用它来捕获YUV
帧信息吗?如果是这样,怎么做?
谢谢,约瑟夫
matlab - matlab的rgb2ycbcr公式是什么?
matlab的rgb2ycbcr公式是什么?哪些标准用于此
c - glPopMatrix() 大喊“setup_hardware_state 中不支持的纹理格式”
我正在尝试在 Linux 的私有视频播放器中进行一些优化,以提高性能,因为播放 MP4 文件在 CPU 上很重,因为视频帧是用 YV12 编码的,而 OpenGL 不提供显示这种格式的本机方式. 现在有一段代码在 CPU 上运行,将 YV12 转换为 RGB,然后再将图像发送到 GPU 进行显示,这会消耗 100% 的 CPU 处理。
我目前正在研究如何解码 YV12 帧,而无需编写着色器来进行 YV12 -> RGB 转换。据我了解,一种方法是通过GL_MESA_ycbcr_texture,显然我的系统支持(由 报告glxinfo
)。
在这个 Fedora Box 中,我有一个ATI Technologies Inc RV610 视频设备 [Radeon HD 2400 PRO],这是一款不错的视频卡。然后,我下载了yuvrect测试并进行了一些更改以替换GL_TEXTURE_RECTANGLE_NV
此卡支持的纹理:GL_TEXTURE_RECTANGLE_ARB
.
但是,当我执行这个修改后的应用程序时,它会输出:
我注意到glPopMatrix();
从Display()
回调执行时会出现此错误。现在,这似乎不是我的应用程序中的错误,因为我在另一个具有不同视频卡的 Fedora 盒子(相同系统)上运行了完全相同的代码:英特尔公司 Sandy Bridge Integrated Graphics Controller (rev 09),它可以工作漂亮地。
两个二进制文件之间唯一明显的区别是它们链接的库。在(有问题的)ATI 卡ldd报告中:
同时,在 Intel 卡上,您可以看到它与 libv4l 和其他一些库链接,而 ATI 没有!我想知道这是否与我面临的问题有关:
If you want to run the example below you'll need readtex.c , readtex.h and girl.rgb, and compile it with: g++ yuvrect.cpp -o yuvrect -lGL -lGLU -lglut -lGLEW
Any tips to solve this issue, guys?
c++ - 通过 GLSL 将 YV12 转换为 RGB 的问题
我正在尝试使用 GLSL 着色器完成本文中提到的YV12 到 RGB 的转换。
我的应用程序从磁盘加载原始 YV12 帧并尝试使用 GLSL 着色器执行转换。但是,生成的图像是垂直翻转的,并且存在一些颜色问题。我认为问题可能是图像被读取为char
(1 字节)数组,然后转换为GLushort
(2 字节)数组。你怎么看?
这是原始 YUV 帧的样子:
这是我得到的输出:
我在下面分享应用程序的源代码:
ios - 关于使用 GLSL for iOS 将 YUV(YV12) 转换为 RGB
我正在尝试使用 GLSL 着色器将 YUV(YV12) 转换为 RGB。
如下步骤。
- 从图像文件中读取原始 YUV(YV12) 数据
- 从原始 YUV(YV12) 数据中过滤 Y、Cb 和 Cr
- 贴图纹理
- 发送片段着色器。
但结果图像与原始数据不同。
下图是原始数据。
下图是转换数据。
下面是我的源代码。
以下是片段着色器的源代码。
Y数据好,但U和V数据不好。并且图像数据的y轴是反向输出。
如何解决这个问题?
ffmpeg - 如何镜像 swscale PIX_FMT_YUYV422
我正在尝试水平镜像 libswscale PIX_FMT_YUYV422 类型的图像。对每条像素使用 16 位的简单循环会导致颜色错误,例如蓝色对象是橙色的。这是我的代码:
然后我尝试将 YUVPixel 重新定义为 32 位类型并相应地修改我的循环。这会产生正确的颜色,但看起来相邻像素被交换了。任何想法,我完全迷失了这个?