实用手机电视软硬件设计方案
|
DTS=PTS (1)
如果得不到PTS,那么按下式计算:
PTS=PTS_pre +Xms (2)
其中,PTS_pre表示前面一个AU的PTS,X是ACC+一帧的时间间隔,以ms为单位。
一般视频对象分为I-VOP、B-VOP、P-VOP三种编码类型。假设在解码器端的VO(Vid
eo Object)输入次序为:
1 2 3 4 5 6 7 8 9 10……
I B B P B B P B B P B B P B B I B B P……
由于视频对象编码时用到双向预测,解码器的实际解码次序为:
I P B B P B B P B B P B B I B B P B B ……
显示次序同解码器的输入次序。假设知道I帧的PTS和DTS。那么得到关于P帧:
PTS_P4=PTS_I +33.67ms * 3 (3)
DTS_P4=DTS_I +33.67ms (4)
B1帧:PTS_Bn=PTS_I +33.67ms * 2 (5)
DTS_Bn=DTS_I +33.67ms (6)
B2帧可以参考上面的两个式子。其中,33.67ms为视频帧时间间隔。
软件开发注意事项
关于H.264的解码效率问题。软件解码部分采用开源工程ffmpeg中的H.264解码器,它效率高,方便移植,其中,关键运算,如IDCT、运动补偿等还在几种不同平台上用汇编进行实现。把H.264解码器移植到ARM平台,对于IDCT和运动补偿汇编代码,只需仿照其它平台的代码就可实现,其开发难度并不大。音频解码部分可以参考FAAC和FAAD开源工程。
|
查看所有评论




世纪芯是一支由众多技术研发专家和科研企业结盟组成了技术服务型团队,自组建以来一直帮助政府、知名科研机构以及国内众多抄板企业攻克技术难题,10年来,我们专注反向技术研究并不断挑战大型疑难项目,目前已经成为国内抄板企业的中流砥柱。