c - 在 C 中读取 YUV 图像

标签 c file file-format yuv

  1. 如何读取任何yuv图像?

  2. 如何传递 YUV 图像的尺寸以读取到缓冲区?

最佳答案

  1. 通常,当人们谈论 YUV 时,他们谈论的是 YUV 4:2:0 .您对 any YUV 图像的引用具有误导性,因为有许多不同的格式,并且每种格式的处理方式都不同。例如,原始 YUV 4:2:0(按照惯例,扩展名为 .yuv 的文件)不包含任何维度数据;而 y4m 文件通常会这样做。所以你真的需要在开始阅读之前知道你正在处理的图像类型。对于 YUV 4:2:0,您只需打开文件并按顺序读取亮度 (Y') 和色度 (CbCr) 分量,记住色度分量已被抽取(亮度分量的四分之一大小)。之后,您通常会将 Y'CbCr 转换为 RGB,以便显示图像。

  2. 根据我上面提到的内容,您根本无法确定任何 YUV 图像的尺寸。通常,尺寸根本不在文件中。你必须预先了解它们——这就是为什么 most sites列出供下载的 YU​​V 文件还列出了它们的帧尺寸(对于视频,帧数)。大多数 YUV 文件是 CIF (352x288) 或 QCIF (176x144),尽管有一些从模拟视频数字化而来的文件采用略有不同的 SIF 格式。了解不同的格式 here .

关于c - 在 C 中读取 YUV 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4301776/

相关文章:

c - C 中的 For 循环随机停止

Java 服务器端发送支持恢复的文件?

file - .gdoc 格式如何工作?

macos - Apple 二进制 plist 和/或键控存档文件格式文档?

c - 为什么使用不同的 C 库?

c - 程序通过将每个退格替换为\b来将其输入复制到输出

c - 使用基于事件的接口(interface)播放 OS X/Linux 音频?

java - 当我尝试在驱动器中搜索时程序抛出 NullPointerException?

linux - 如何在 BASH 中对文件行进行排序

binary - 帮我了解这种二进制文件格式