JPEG驱动(二)

来源:互联网 发布:单片机的电子琴设计 编辑:程序博客网 时间:2024/06/05 20:09

JPEG驱动,说实话,整体结构比较简单。也只是在probe()里做下初始化,然后创建一个video设备,上层通过s_fmt和ioctl等方法设好参数。最好上层调用stream_on 下层就开始编码或解码了。

具体的代码就不讲了,我们主要看一下JPEG的整个硬件结构和哪些需要我们实现代码的(我说的JPEG驱动是指硬件实现的JPEG)。下面我只是举个例子。


上面是硬件jpeg编解码的过程



这是整个JPEG的硬件结构,寄存器是通过APB总结来设置的,而JPEG数据流是通过AXI总线传输的,分为读跟写。也就是说,JPEG的图像数据都存储在内存中,编解码时从内存中读取,编解码完了之后又会把数据写回内存,从上面两个图我们可以看到数据流的方向。其中有两个memory是需要我们设置的,一个是huffman table,即哈夫曼表;另一个是quant table,即量化表。这两个表都需要我们把具体的数值写下去。其中huffman table和quant table也是分Y和UV的。也就是DC和AC的表是不同的。

下面看编解码的过程。

编码流程:


解码流程:



原创粉丝点击