当前位置:首页 > 单片机 > 单片机
[导读]修复了已知的bug;这个是我实验用的原图,用工具把他变成了数组后直接放在程序里面了.解码后的图片附上代码/*****************************************************************************************************

修复了已知的bug;



这个是我实验用的原图,用工具把他变成了数组后直接放在程序里面了.

解码后的图片




附上代码


/*************************************************************************************************************

*文件名:JpegCodec.c

*功能:S3C6410JPEG解码底层驱动函数

*作者:cp1300@139.com

*创建时间:2012年9月20日20:59

*最后修改时间:2012年12月02日

*详细:JPEG硬解码

*通过S3C6410DATASHEETV1.2版以及官方WINCE的JPEG驱动的分析,得出结论,S3C6410的JPEG解码模块不支持硬件控制自动解码

*只能使用软件控制解码模式

*20121202:修复连续解码BUG,目前有少数jpeg420,jpeg444会解码出错,就像windows也有可能有不支持的jpeg图片一样,少数图片硬解码

*失败可以尝试使用软解码即可。

*20121225:发现JPEG必须16字节(128位)地址对齐,否则可能会出现解码失败问题。

*20130113:增加尺寸非8或16倍数的jpeg图片解码功能

*20130113:将程序外部依赖降低,目前只依赖外部的数据类型定义(高类聚,低耦合),打印调试也依赖外部,不用可以修改宏,JPEG_DBUG=0来取消,方便移植。

*************************************************************************************************************/

#include"JpegCodec.h"

#include"jpeg_tables.h"

//调试宏开关

#defineJPEG_DBUG0

#ifJPEG_DBUG

#include"system.h"

#definejpeg_debug(format,...)uart_printf(format,##__VA_ARGS__)

#else

#definejpeg_debug(format,...)/

/

#endif//JPEG_DBUG

//jpeg编解码模式配置

#defineCOEF1_RGB_2_YUV0x4d971e

#defineCOEF2_RGB_2_YUV0x2c5783

#defineCOEF3_RGB_2_YUV0x836e13

#defineENABLE_MOTION_ENC(0x1<<3)//使能动态编码

#defineDISABLE_MOTION_ENC(0x0<<3)

#defineENABLE_HW_DEC(0x1<<2)

#defineDISABLE_HW_DEC(0x0<<2)

#defineENABLE_MOTION_DEC(0x1<<0)//使能动态解码

#defineDISABLE_MOTION_DEC(0x0<<0)

#defineINCREMENTAL_DEC(0x1<<3)//增量解码模式

#defineNORMAL_DEC(0x0<<3)//正常解码模式

#defineYCBCR_MEMORY(0x1<<5)

#defineENABLE_IRQ(0xf<<3)

//等待超时定义

#defineWaitTimeOut0xffffff//等待超时计数器

//定义最大图像宽高度

#defineMAX_JPG_WIDTH4096

#defineMAX_JPG_HEIGHT4096

//JPEG寄存器结构定义

typedefstruct

{

u32Mode;//模式寄存器

u32Status;//状态寄存器

u32QTblNo;

u32RSTPos;

u32Vertical;//垂直分辨率

u32Horizontal;//水平分辨率

u32DataSize;//压缩数据字节数

u32IRQ;//中断设置寄存器

u32IRQStatus;//中断状态寄存器0x20

u32Reserved0[247];

u32QTBL0[64];//0x400

u32QTBL1[64];

u32QTBL2[64];

u32QTBL3[64];

u32HDCTBL0[16];//0x800

u32HDCTBLG0[12];

u32Reserved1[4];

u32HACTBL0[16];

u32HACTBLG0[162];//0x8c0

u32Reserved2[46];

u32HDCTBL1[16];//0xc00

u32HDCTBLG1[12];

u32Reserved3[4];

u32HACTBL1[16];

u32HACTBLG1[162];//0xcc0

u32Reserved4[46];

u32ImageAddr0;//目的图像地址1

u32ImageAddr1;//目的图像地址2

u32JpegAddr0;//源JPEG图像地址1

u32JpegAddr1;//源JPEG图像地址2

u32Start;//JPEG解码开始

u32ReStart;//重新开始JPEG解码

u32 SofReset; //JPEG复位

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为增进大家对双电层电容器的认识,本文将对双电层电容器物料、双电层电容器的优缺点予以介绍。

关键字: 电容器 指数 双电层电容器

为增进大家对双电层电容器的认识,本文将对双电层电容器的原理、双电层电容器的工艺予以介绍。

关键字: 电容器 指数 双电层电容器

为增进大家对电容器的认识,本文将对双电层电容器和赝电容器的区别予以详细介绍。

关键字: 电容器 双电层电容器 赝电容器 指数

本文中,将对示波器的原理、示波器带宽不够会带来的影响予以介绍。

关键字: 示波器 指数 数字示波器 模拟示波器

为增进大家对示波器的认识,本文将对示波器采样时间的设置、示波器采样率、示波器触发等知识予以介绍。

关键字: 示波器 指数 数字示波器 模拟示波器

为增进大家对示波器的认识,本文将对示波器的时基以及普源示波器波形粗的原因予以介绍。

关键字: 示波器 普源示波器 指数

Apr. 16, 2024 ---- NVIDIA新一代平台Blackwell,包含B系列GPU及整合NVIDIA自家Grace Arm CPU的GB200等。TrendForce集邦咨询指出,GB200的前一代为GH2...

关键字: CPU GPU

Apr. 12, 2024 ---- 中国动力电芯价格在过去一年多的时间里持续下滑,但自今年2月份以来,供应链价格整体已逐渐回稳。据TrendForce集邦咨询研究显示,3月电池级碳酸锂价格反弹,先后突破每吨10万元、1...

关键字: 动力电芯 碳酸锂 电池

为增进大家对变频调速器的认识,本文将对变频调速器、变频调速器的接线方法予以介绍。

关键字: 调速器 指数 变频调速器

为增进大家对液压调速器的认识,本文将对液压调速器的两种类型:无反馈的液压调速器、具有刚性反馈机构的液压调速器予以介绍。

关键字: 调速器 指数 液压调速器
关闭
关闭