X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
stm32/stm8
[原创] 图像处理能力评测之六-AVI视频播放优化
ilovefengshulin
2017-1-10 21:12
楼主
图像处理能力评测之六-AVI视频播放优化
之前在第四次评测的时候,由于测试的视频都是比较短的,前几天在播放时间比较
较长
的视频的时候,发现音频和视频有时候会不同步,有时候会出现死机的状况,因此写了这篇作为前面测试的补充说明。这是之前写的帖子:
https://bbs.eeworld.com.cn/thread-509522-1-1.html
。
这次优化主要针对
音频和视频不同步,并增加了在任意时间节点播放视屏的功能。首先先说明一下
音频和视频不同步的原因,由于之前视频帧是通过计算帧率得出相邻两帧的间隔时间,再通过延时,来进行播放。但是音频帧播放的采样频率并不是绝对的,比如AVI文件提供的音频采样频率44100,而通过设置PLLI2S的时钟作为SAI的时钟源,这时会发现不能完全分配出44100的频率,只能约等于44100。这时会出现一个问题,播放完所有的音频帧所用的时间不是固定的,
还有一个问题,
每帧视频帧的图像的色彩丰富程度是不一样的,因此解码时间有长有短。举个例子,播放20帧的视频,相邻两帧的时间间隔为50ms,假如第一帧解码时间为40ms,只需要延时10ms,就可以播放第二帧了。如果第一帧解码时间为100ms,
按照之前视频帧的算法,应该是不延时直接播放第二帧。但是这这种做法是错的,根据帧率,此刻应该是播放第三帧,这时出现了时间与帧编号的偏移。视频帧和音频帧时间尺度不相等,就会出现画面不同步的现象。
针对这些问题做了如下的修改:
1.对于存在视频流和音频流的AVI文件,视频播放的总时间应该等于
音频流播放的时间。对于没有音频流的AVI文件,视频播放的时间等于视频帧总数除以视频帧率。
2.
对于存在视频流和音频流的AVI文件,要以音频流作为时间尺度,计算出音频和视频的交错时间比,当前视频帧号等于
音频帧编号除以
音频和视频的交错时间比。这样视频帧就会紧跟音频帧,而不至于出现画面不同步。对于没有
音频流的AVI文件,要计算出相邻两帧的时间间隔t。计算每帧视频帧从解码到显示所用的时间t1,与
时间间隔t进行比较。如果小于
时间间隔,就延时t-t1,再播放下一帧,
下一帧时间间隔依然为t
;如果大于
时间间隔t且小于2t,直接开始播放
下一帧,计算下一帧时间间隔为2t-t1;如果大于2t,计算下一帧的编号等于t1除以t+当前视频帧编号,下一帧时间间隔依然为t。
由于我在SDRAM中开辟两个512KB的缓存区,用来存放视频帧索引和音频帧索引,由于空间比较小,不能播放长时间的视频文件。如需播放,需要重新定义
视频帧
索引
和音频帧
索引空间的大小。具体的程序编写,参照附件中的程序。
Image_Test.zip
(2017-1-10 21:12 上传)
3.23 MB, 下载次数: 35
点赞
回复评论 (2)
沙发
soso
很详细,图像处理也是坛子里一些朋友关注的问题,很赞
加油!在电子行业默默贡献自己的力量!:)
点赞
2017-1-11 09:20
板凳
dontium
很棒!
点赞
2017-1-11 11:05
最新活动
2024 瑞萨电子MCU/MPU工业技术研讨会——深圳、上海站, 火热报名中
有奖直播报名中!抢占工业4.1先机 文晔科技日等你来!
罗姆有奖直播 | 重点解析双极型晶体管的实用选型方法和使用方法
STM32N6终于要发布了,ST首款带有NPU的MCU到底怎么样,欢迎小伙们来STM32全球线上峰会寻找答案!
免费下载 | 安森美电动汽车充电白皮书,看碳化硅如何缓解“里程焦虑”!
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
随便看看
关于clock的问题
【设计工具】特别适用于Virtex-5 LXT、理想解决方案
上海人民给EEWORLD网友拜年,顺便带你玩转上海
eVC资源文件中的窗口的尺寸的单位是什么?
CC++编程指南
天然0功耗的油烟机改装成天然吸味器
MSP430 LaunchPad 试用 (1)
FPGA在高速互连中的应用(2)
TI高性价比360全景解决方案
谐振问题
关于SD卡的问题 请高手帮忙,谢谢
CCS的编译问题,求救
【MicroPython】之开箱体验
请教达人一个滤波器设计的问题
深圳2016高交会有想去参观的吗?
mx27下视频去隔行处理的实现
ARM汇编伪指令介绍(2)
用stc isp那个软件下载就是不能与计算机握手连接
开关电源大功率管坏
那位大虾指点一下 stellaris LwIP例程的程序流程!
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复