主函数的部分代码

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

*函数         : static PIC_ERROR OpenPictureFile(const char *FileName,u8 *buff,u32 FileMaxSize)

*功能         : 打开一张,并将数据读取到内存

*参数         : FileName:文件名,路径指针;buff:读取缓冲区;FileMaxSize:文件最大限制

*返回         : PIC_ERROR

*依赖     :  FATFS文件系统支持

*作者         : cp1300@139.com

*时间     : 20121207

*最后修改时间 : 20121209

*说明     : 调用FATFS打开图片文件

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

int OpenPictureFile(const char *FileName,u8 *buff,u32 FileMaxSize)

{

FIL file;

UINT cnt;

int status;

int error = 0;

status = f_open(&file,FileName,FA_READ);    //只读方式打开文件

if(status != FR_OK)          //打开文件错误

{

uart_printf("open \"%s\" error!\r\n",FileName);

error = 1;

}

else

{

//获取文件大小

uart_printf("file size : %dB\r\n",file.fsize);  //输出文件大小

if(file.fsize > FileMaxSize)

{

uart_printf("file size > %d\r\n",FileMaxSize);

error = 2;

}

else

{

status = f_read(&file,buff,file.fsize,&cnt); //读取文件

uart_printf("Read File Num=%d\r\n",cnt);

if(cnt == file.fsize)       //判断文件是否读取完毕

{

uart_printf("read file end!\r\n");

error =  0;

}

else

{

uart_printf("read file error!\r\n");

error = 3;

}

}

}

f_close(&file);

return error;

}

void YUV422ToRGB565(u8 *YUVBuff,u16 width,u16 height)

{

u16 x,y;

u32 RGBdata;

u32 cnt = 0;

u8 Y,U = 0,V = 0;

int R,G,B;

for(y = 0;y < height;y ++)

{

for(x = 0;x < width;x ++ )

{

Y = YUVBuff[cnt << 1];

if((cnt % 2) == 0)

{

U = YUVBuff[(cnt << 1) + 1];

V = YUVBuff[(cnt << 1) + 3];

}

R = Y + (1.370705 * (V - 128));

G = Y - (0.698001 * (V - 128)) - (0.337633 * (U-128));

B = Y + (1.732446 * (U - 128));

R = (R > 255) ? 255 : ((R < 0) ? 0 : R);

G = (G > 255) ? 255 : ((G < 0) ? 0 : G);

B = (B > 255) ? 255 : ((B < 0) ? 0 : B);

//RGBdata = (u32)(R << 16) | (G << 8) | B;

R >>= 3;

G >>= 2;

B >>= 3;

RGBdata = (R << 11) + (G << 5) + B;

LCD_DrawPoint(x,y,(u16)RGBdata);

//LCD_DrawPoint(x,y,RGB888toRGB565(RGBdata));

cnt ++;

}

}

}

u8 buff[10*1024*1024];

u8 image[10*1024*1024];

//主函数

int main(void)

{

OS_CPU_SR  cpu_sr;

int result;

JPEG_INFO JpegInfo;

u32 p;

u32 i;

UART0_Init(DISABLE,115200);     //初始化串口,失能中断接收,波特率115200

LCD_Init();         //初始化LCD

LED_Init();         //初始化LED

RunTimeInit();

JPEG_Init();

result = Explorer_Init();     //初始化资源管理器

if(result == 0)

{

lcd_printf("Disk Init OK!\n");

}

else

{

lcd_printf("Disk Init Error(%d)!\n",result);

}

p = (u32)buff;

if((u32)buff % 16)

{

p = (p / 16 + 1) * 16;

}

OpenPictureFile("0:/system/ui/ico/设置.jpg",(u8 *)p,10*1024*1024);

result = JPEG_DecodeOneFrame(p,(u32)image,31654, &JpegInfo);

uart_printf("decode jpeg file %d\r\n",result);

if(result == 0)

{

YUV422ToRGB565(image,JpegInfo.Width,JpegInfo.Height);

}

s3c6410 jpeg编码 linux,S3C6410 裸机硬件JPEG解码相关推荐

  1. s3c6410 jpeg编码 linux,立宇泰ARMSYS6410开发板推出三个linux系统版本

    ARMSYS6410采用了Linux-2.6.28作为标准版的linux内核,其中集成了丰富的驱动资源,充分展现S3C6410的各项特性,包括硬件编解码.2D/3D加速.显示协处理.TVOUT输出.视 ...

  2. S3C6410 裸机硬件JPEG解码(转)

    源:S3C6410 裸机硬件JPEG解码 转载于:https://www.cnblogs.com/LittleTiger/p/4681864.html

  3. stm32硬件JPEG编码过程分析

    介绍 有时,当我们需要采集图像保存或者发送时,会因为大小限制不得不压缩图像,比较成熟的方式是采用JPEG压缩,有现成的jpeg压缩库入jpeglib等,但是在单片机上进行压缩耗时巨大,实测在STM32 ...

  4. 在NVIDIA A100 GPU上利用硬件JPEG解码器和NVIDIA nvJPEG库

    在NVIDIA A100 GPU上利用硬件JPEG解码器和NVIDIA nvJPEG库 根据调查,普通人产生的1.2万亿张图像可以通过电话或数码相机捕获.这样的图像的存储,尤其是以高分辨率的原始格式, ...

  5. NVIDIA A100 GPUs上硬件JPEG解码器和NVIDIA nvJPEG库

    NVIDIA A100 GPUs上硬件JPEG解码器和NVIDIA nvJPEG库 Leveraging the Hardware JPEG Decoder and NVIDIA nvJPEG Lib ...

  6. jpeg编码学习笔记

    jpeg编码学习笔记 各种图片格式目的是在网络传输和存储的时候使用更少的字节,即起到压缩的作用.在图片格式解码后,无论图片的格式,图片数据都是像素数组. 本文将尝试通过JPEG这种图片编码格式的学习, ...

  7. 在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据

    在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据 如今,最流行的拍照设备智能手机可以捕获高达4K UHD的图像(3840×2160图像),原始数据超过25 MB.即使 ...

  8. 基于C语言的JPEG编码代码详解

    一.基于C语言的JPEG编码代码详解 #include <stdio.h> #include <stdlib.h> #include <string.h>#prag ...

  9. 数字图像处理|Matlab-数字图像编码实验-有损压缩/压缩算法实验-JPEG编码压缩

    Matlab-数字图像编码实验-有损压缩/压缩算法实验 代码链接:https://download.csdn.net/download/qq_43571150/12033274 查阅JPEG编码的有关 ...

最新文章

  1. JAVA学习笔记系列4-Eclipse版本选择
  2. shell编程 case语句
  3. Angular jasmine spied Method toHaveBeenCalled的执行原理
  4. 使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420
  5. C语言 gcc 动态库
  6. DaveGray推荐的视觉思维好书(一)
  7. kancloud mysql内核_锁 · Mysql · 看云
  8. 老显卡都涨价了,所以我把坏的显卡拿出来修
  9. jdk7 linux 32位 安装包 微云网盘下载
  10. ASP.net防止SQL注入方法
  11. 升降机用三级液压缸的设计与仿真
  12. jvm虚拟机规范官方文档入口
  13. 充电器input与output_input和output的区别
  14. CNC加工老师傅的经验分享 这些你都知道吗?
  15. Java微信公众号开发之微信公众平台账号申请注册
  16. 堪萨斯州立大学 计算机科学,堪萨斯州立大学
  17. (神州优车)数据交换平台架构分享
  18. jsp快递信息管理系统
  19. Java 基础知识随笔1
  20. 【pytorch】yolov4 实现对蛾子数据集的识别 以及 对蛾子图片二值化处理 实现 自动打标签标注。(本文重点在自动实现将图片转化为voc数据集)

热门文章

  1. LeetCode 437. 路径总和 III(双重递归)
  2. python冒泡算法_python_冒泡算法
  3. 数据库实例:用户注册
  4. python中的多线程-threading
  5. Ubuntu从零安装 Hadoop And Spark
  6. 全球仅3000人通过的TensorFlow开发人员认证到底有多香!
  7. 预训练模型的前世今生(有福利!)
  8. NIPS’20 Spotlight | 精准建模用户兴趣,广告CTR预估准确率大幅提升!
  9. 工业解密:百度地图背后的路线时长预估模型!
  10. 史上最全Git学习教程