文件名称:颜色与格式-美国泰克tds2012b数字示波器用户手册
文件大小:1.96MB
文件格式:PDF
更新时间:2024-06-27 11:43:13
v4l2中文 v4l2规范 v4l2.pdf v4l2中文规范
五、 颜色与格式 这是不定期发布的关于写视频驱动程序的 LWN 系统文章的第五篇。没有看过介绍的,也许想从那里开 始。 应用在视频设备可以工作之前,它必须与驱动达成一致,知道视频数据是何种格式。这种协商将是一 个非常复杂的过程,其原因有二: 1、 视频硬件所支持的视频格各不相同。 2、 在内核的格式转换是令人难以接受的。 所以应用要找出一种硬件支持的格式,并做出一种大家都可以接受的配置。这篇文章将会讲述格式的 基本描述方式,下期文章则会讲述 V4L2 驱动与应用协商格式时所实现的 API。 1. 色域 色域从广义上来讲,就是系统在描述色彩时所使用的坐标系。V4L2 规范中定义了好几个,但只有两个 的使用最为广泛。它们是: ● V4L2_COLORSPACE_SRGB 多数开发者所熟悉的[red、green、blue]数组就包含在这个色域中。它为每一种颜色提供了一个简单的 强度值,把它们混合在一起,从而产生了丰富的颜色。表示 RGB 值的方法有很多,我们在下面将会介绍。 这个色域也包含 YUV 和 YCbCr 的表示方法,这个表示方法最早是为了早期的彩色电视信号可以在黑 白电视中的播放,所以 Y(或“亮度”)值只是一个简单的亮度值,单独显示时可以产生灰度图像。U 和 V (或 Cb 和 Cr)色度值描述的是色彩中蓝色和红色的分量。绿色可以通过从亮度中减去这些分量而得到。 YUV 和 RGB 之间的转换并不那么直接,但是我们有一些公式可用。 注意:YUV 和 YCbCr 并非完全一样,虽然有时他们的名字会替代使用。 ● V4L2_COLORSPACE_SMPTE170M 这个是 NTSC 或 PAL 等电视信号的模拟色彩表示方法,电视调谐器通常产生的色域都属于这个色域。 还存在很多其他的色域,他们多数都是电视相关标准的变种。点击查看 V4L2 规范中的详细列表。 2. 密集存储和平面存储 如上所述,像素值是以数组的方式表示的,通常由 RGB 或 YUV 值组成。要把这数组组织成图像,通 常有两种常用的方法。 ● Packed 格式把一个像素的所有分量值连续存放在一起。 ● Planar 格式把每一个分量单独存储成一个阵列。例如在 YUV 格式中,所有 Y 值都连续地一起存 储在一个阵列中,U 值存储在另一个中,V 值存在第三个中。这些平面常常都存储在一个缓冲区 中,但并不一定非要这样。 紧密型存储方式可能使用更为广泛,特别是 RGB 格式,但这两种存储方式都可以由硬件产生并由应用 Video for Linux Two(V4L2)——驱动编写指南 tekkamanninja.blog.chinaunix.net 第 12/30页 08/19/2012