硬汉嵌入式论坛

 找回密码
 立即注册
查看: 7258|回复: 3
收起左侧

[音频视频处理] 为什么emWin自带的JPEG解码MJPEG编码的AVI视频比较慢,同样都是LibJPEG库,日本人那

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
发表于 2015-4-8 12:18:12 | 显示全部楼层 |阅读模式
鉴于很多人对音频和视频都很感兴趣,特别是初学者,更愿意搞些这种东西,所以打算优化下emWin的驱动,方便更好的做视频演示。
=====================================================================================
最近抽时间研究了一下uCGUI3.98里面的JPEG解码,这个里面的代码是用的libjepg,版本:JVERSION    "6b  27-Mar-1998"。emWin的话用
的也是这个libjpeg库。
       但是为什么显示速度不是很快呢,初步总结原因主要有以下三点。
1. uCGUI和LibJPEG的接口文件中绘制图形的函数,速度太慢了,居然是一个点一个点打出来的!!!
/*********************************************************************
*
*       _WritePixelsRGB
*/
static void _WritePixelsRGB(const U8*p, int x0, int y0, int xSize) {
  U8 r,g,b;
  while (xSize) {
    r = *p++;
    g = *p++;
    b = *p++;
    LCD_SetColor(r | (g << 8) | (U32)((U32)b << 16));
    LCD_DrawPixel(x0++, y0);
    xSize--;
  }
}

2. LibJPEG支持三种速度设置
    emWin为了达到解码后最佳显示效果选择的是JDCT_ISLOW或者JDCT_FLOAT,使用JDCT_IFAST将大大加快计算速度。

/* DCT/IDCT algorithm options. */
typedef enum {
    JDCT_ISLOW,        /* slow but accurate integer algorithm */
    JDCT_IFAST,        /* faster, less accurate integer method */
    JDCT_FLOAT        /* floating-point: accurate, fast on fast HW */
} J_DCT_METHOD;

3.  由于显示比较大的JPEG图片时,是用的外部SRAM做为emWin的动态内存,那么这就意味着IDCT的计算时是用外部SRAM参与数据运行,可以想象出这个将
    大大降低JPEG解码的速度。

总结:优化的话从以上三点做优化即可。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106856
QQ
 楼主| 发表于 2015-4-8 19:01:26 | 显示全部楼层
日本人搞得MP4播放器演示,使用STM32.


源代码: n24bass-motion-player-2-8155277ba31c.zip (12.14 MB, 下载次数: 3537)
回复

使用道具 举报

610

主题

3055

回帖

4905

积分

至尊会员

积分
4905
发表于 2017-5-30 15:15:18 | 显示全部楼层

回 eric2013 的帖子

eric2013:日本人搞得MP4播放器演示,使用STM32.


源代码:

....... (2015-04-08 19:01)
这个牛逼啊,有空也来研究一下

这个日本人的 源码,有没有移植成功的啊,该如何移植啊 ??
回复

使用道具 举报

9

主题

68

回帖

95

积分

初级会员

积分
95
发表于 2017-5-30 17:27:35 | 显示全部楼层
哇 。那么高级 ,留名 下次看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-8 04:04 , Processed in 0.227001 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表