问题标签 [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.

0 投票
1 回答
3259 浏览

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。

真诚感谢您的阅读,如果有人能帮助我,我真的很感激。

0 投票
3 回答
9414 浏览

opengl-es - 如何在OpenGL ES中显示yuv格式的数据而不转换rgb?

我一直在研究适用于 iOS 的 OpenGL ES。我想知道YUV格式的数据是否可以在不转换RGB的情况下显示。在大多数情况下,yuv 数据必须转换为 RGB 才能显示。但是,转换过程很慢,那就是显示不流畅。 所以,我想尝试在不转换为 RGB 的情况下显示 YUV 数据。可能吗?如果可能,我能做什么? 请让我给个建议。

0 投票
2 回答
38445 浏览

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.

0 投票
4 回答
14557 浏览

android - Android YUV 图像格式

在我们的应用程序中,我们需要传输视频,我们使用 Camera 类来捕获缓冲区并发送到目的地,

我已将格式设置为 YV12 作为相机参数来接收缓冲区,

对于 500X300 缓冲区,我们收到 230400 字节的缓冲区,

我想知道,这是预期的缓冲区大小吗?
我相信尺寸会是

Y 平面 = 宽 * 高 = 500X300 = 150000

U 平面 = 宽度/2 * 高度/2 = = 37500

V 平面 = 宽度/2 * 高度/2 = = 37500

谁能解释一下,如果我需要获取每个组件的步幅值,我该如何获取

有没有办法得到它?

0 投票
1 回答
1640 浏览

android - 在 Android 上从视频播放中捕获 YUV 帧

我在 Android 上有一个应用程序,可以播放video存储在SD card. 我需要为YUV软件执行的处理功能捕获各个帧的信息。

我目前MediaPlayer在我的应用程序中使用库存的 Android。我可以用它来捕获YUV帧信息吗?如果是这样,怎么做?

谢谢,约瑟夫

0 投票
1 回答
1639 浏览

matlab - matlab的rgb2ycbcr公式是什么?

matlab的rgb2ycbcr公式是什么?哪些标准用于此

0 投票
1 回答
688 浏览

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?

0 投票
1 回答
4069 浏览

c++ - 通过 GLSL 将 YV12 转换为 RGB 的问题

我正在尝试使用 GLSL 着色器完成本文中提到YV12 到 RGB 的转换。

我的应用程序从磁盘加载原始 YV12 帧并尝试使用 GLSL 着色器执行转换。但是,生成的图像是垂直翻转的,并且存在一些颜色问题。我认为问题可能是图像被读取为char(1 字节)数组,然后转换为GLushort(2 字节)数组。你怎么看?

这是原始 YUV 帧的样子:

在此处输入图像描述

应用程序加载的原始帧可以从这里下载

这是我得到的输出:

在此处输入图像描述

我在下面分享应用程序的源代码:

0 投票
1 回答
4856 浏览

ios - 关于使用 GLSL for iOS 将 YUV(YV12) 转换为 RGB

我正在尝试使用 GLSL 着色器将 YUV(YV12) 转换为 RGB。

如下步骤。

  1. 从图像文件中读取原始 YUV(YV12) 数据
  2. 从原始 YUV(YV12) 数据中过滤 Y、Cb 和 Cr
  3. 贴图纹理
  4. 发送片段着色器。

但结果图像与原始数据不同。

下图是原始数据。

原始图像链接截图(可供下载)

下图是转换数据。

转换图片链接截图(可供下载)

下面是我的源代码。

以下是片段着色器的源代码。

Y数据好,但U和V数据不好。并且图像数据的y轴是反向输出。

如何解决这个问题?

0 投票
1 回答
906 浏览

ffmpeg - 如何镜像 swscale PIX_FMT_YUYV422

我正在尝试水平镜像 libswscale PIX_FMT_YUYV422 类型的图像。对每条像素使用 16 位的简单循环会导致颜色错误,例如蓝色对象是橙色的。这是我的代码:

然后我尝试将 YUVPixel 重新定义为 32 位类型并相应地修改我的循环。这会产生正确的颜色,但看起来相邻像素被交换了。任何想法,我完全迷失了这个?