硬件框图
通过这个框图,我们可以得到如下信息:
◆ JPEG 硬件外设支持编码和解码
并且对于输入数据和输出数据都有 FIFO 支持。
◆ jpeg_hclk
为 JPEG 内核和寄存器提供时钟。
◆ jpeg_it
JPEG 全局中断输出。
◆ jpeg_ift_trg
JPEG 输入 FIFO 阈值信号,可触发 MDMA。
◆ jpeg_ifnf_trg
JPEG 输入 FIFO 未满信号,可触发 MDMA。
◆ jpeg_oft_trg
JPEG 输出 FIFO 阀值信号,可触发 MDMA。
◆ jpeg_ofne_trg
JPEG 输出 FIFO 非空信号,可触发 MDMA。
◆ jpeg_oec_trg
JPEG 转换结束信号,可触发 MDMA。
TCbCR颜色格式
(注,硬件 JPEG 解码后输出的图像格式是 YCbCr,所以有必要了解下)
正如几何上用坐标空间来描述坐标集,而色彩空间用数学方式来描述颜色集。常见的 3 种色彩模型是RGB,CMYK 和 YUV。
YCbCr 是 YUV 经过缩放和修改的翻版,只是在表示方法上不同。其中 Y 是指亮度分量,Cb 指蓝色色度分量,而 Cr 指红色色度分量。人眼对视频的 Y 分量更敏感,因此通过对色度分量进行子采样来减少色度分量后,人眼察觉不到的图像质量的变化。
在 YUV 家族中,YCbCr 是在计算机系统中应用最多的成员,其应用领域广泛,JPEG、MPEG 均采用此格式。一般人们所讲的 YUV 大多是指 YCbCr。
YCbCr采样格式
YCbCr 有许多取样格式,如 YCbCr 4:4:4,YCbCr 4:2:2,YCbCr 4:1:1 和 YCbCr 4:2:0。
◆ 4:2:0
表示每 4 个像素有 4 个亮度分量,2 个色度分量 (YYYYCbCr),仅采样奇数扫描线,是便携式视频
设备(MPEG-4)以及电视会议(H.263)最常用格式。
◆ 4:2:2
表示每 4 个像素有 4 个亮度分量,4 个色度分量(YYYYCbCrCbCr),是 DVD、数字电视、HDTV
以及其它消费类视频设备的最常用格式。
◆ 4:4:4
表示全像素点阵(YYYYCbCrCbCrCbCrCbCr),用于高质量视频应用、演播室以及专业视频产品。
具体的采样方式如下图所示,以 8 个像素为一个单元进行采样:
由上面的截图可以了解到:
4:4:4 表示 Y 通道,Cb+Cr 通道全部采样。
4:2:2 表示 Y 通道全部采样,而 Cb+Cr 通道两个像素为一组,统一采用第 1 个颜色值。
4:2:0 表示 Y 通道全部采样,而 Cb+Cr 通道四个像素为一组,统一采用第 1 个颜色值。
下面是整体效果,方便大家更好的理解:
YCbCr的优势
RGB 信号作为存储和传输的效率不高,因为它们具有大量冗余信息。而使用 YCbCr 可以丢弃一些信息以减少带宽,因为人的肉眼对视频的Y分量更敏感,因此通过对色度分量进行子采样来减少色度分量后,肉眼察觉不到的图像质量的变化。了解这种人为缺点,NTSC 和 PAL 等标准大大降低了色度通道的带宽。
驱动设计框架
先简单理解一下,等真的用到再去对具体的代码进行查看。