s3c6410 jpeg编码 linux,S3C6410 裸机硬件JPEG解码
主函数的部分代码
/*************************************************************************************************************************
*函数 : 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解码相关推荐
- s3c6410 jpeg编码 linux,立宇泰ARMSYS6410开发板推出三个linux系统版本
ARMSYS6410采用了Linux-2.6.28作为标准版的linux内核,其中集成了丰富的驱动资源,充分展现S3C6410的各项特性,包括硬件编解码.2D/3D加速.显示协处理.TVOUT输出.视 ...
- S3C6410 裸机硬件JPEG解码(转)
源:S3C6410 裸机硬件JPEG解码 转载于:https://www.cnblogs.com/LittleTiger/p/4681864.html
- stm32硬件JPEG编码过程分析
介绍 有时,当我们需要采集图像保存或者发送时,会因为大小限制不得不压缩图像,比较成熟的方式是采用JPEG压缩,有现成的jpeg压缩库入jpeglib等,但是在单片机上进行压缩耗时巨大,实测在STM32 ...
- 在NVIDIA A100 GPU上利用硬件JPEG解码器和NVIDIA nvJPEG库
在NVIDIA A100 GPU上利用硬件JPEG解码器和NVIDIA nvJPEG库 根据调查,普通人产生的1.2万亿张图像可以通过电话或数码相机捕获.这样的图像的存储,尤其是以高分辨率的原始格式, ...
- NVIDIA A100 GPUs上硬件JPEG解码器和NVIDIA nvJPEG库
NVIDIA A100 GPUs上硬件JPEG解码器和NVIDIA nvJPEG库 Leveraging the Hardware JPEG Decoder and NVIDIA nvJPEG Lib ...
- jpeg编码学习笔记
jpeg编码学习笔记 各种图片格式目的是在网络传输和存储的时候使用更少的字节,即起到压缩的作用.在图片格式解码后,无论图片的格式,图片数据都是像素数组. 本文将尝试通过JPEG这种图片编码格式的学习, ...
- 在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据
在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据 如今,最流行的拍照设备智能手机可以捕获高达4K UHD的图像(3840×2160图像),原始数据超过25 MB.即使 ...
- 基于C语言的JPEG编码代码详解
一.基于C语言的JPEG编码代码详解 #include <stdio.h> #include <stdlib.h> #include <string.h>#prag ...
- 数字图像处理|Matlab-数字图像编码实验-有损压缩/压缩算法实验-JPEG编码压缩
Matlab-数字图像编码实验-有损压缩/压缩算法实验 代码链接:https://download.csdn.net/download/qq_43571150/12033274 查阅JPEG编码的有关 ...
最新文章
- JAVA学习笔记系列4-Eclipse版本选择
- shell编程 case语句
- Angular jasmine spied Method toHaveBeenCalled的执行原理
- 使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420
- C语言 gcc 动态库
- DaveGray推荐的视觉思维好书(一)
- kancloud mysql内核_锁 · Mysql · 看云
- 老显卡都涨价了,所以我把坏的显卡拿出来修
- jdk7 linux 32位 安装包 微云网盘下载
- ASP.net防止SQL注入方法
- 升降机用三级液压缸的设计与仿真
- jvm虚拟机规范官方文档入口
- 充电器input与output_input和output的区别
- CNC加工老师傅的经验分享 这些你都知道吗?
- Java微信公众号开发之微信公众平台账号申请注册
- 堪萨斯州立大学 计算机科学,堪萨斯州立大学
- (神州优车)数据交换平台架构分享
- jsp快递信息管理系统
- Java 基础知识随笔1
- 【pytorch】yolov4 实现对蛾子数据集的识别 以及 对蛾子图片二值化处理 实现 自动打标签标注。(本文重点在自动实现将图片转化为voc数据集)