实现这些功能主要通过对以下几个函数的调用:
void set_decoder_parameter(uns16 hsize,uns16 vsize,uns8 rate,uns8 mode)该函数用来设置解码参数;
void video_decoder_start(uns8 mode)该函数用来启动AT2042的解码功能;
void video_decoder_stop(uns8 mode)该函数用来关闭AT2042的解码功能;
void get_file_length(const char * file_name)该函数用来获取文件的长度;
void video_replay(const char * file_name,uns8mode)该函主要实现对视频文件的播放控制,mode控制播放模式(暂停、快进、快退)。
3 测试结果
实验结果进行测试,可以采用2套方案来完成。
(1)使用自行设计的硬件平台,在该平台上完成对视频编解码的测试。图11为在本系统平台上对编码数据的解码播放截图。
(2)将编码后的视频文件拷贝到PC机上,应用Media Player、暴风音影和风雷音影等视频播放软件对编码结果进行测试,同时可以对比解码播放的效果。因为本系统中视频文件是以PES流形式保存到储存介质。PES满足ISO13818标准,所以PC平台上的普通视频播放器都能播放该文件。图12是用风雷音影播放器对编码结果进行解码播放的截图。
由图可以看出,解码出的视频文件是720X576像素点,解码播放的速率为25.59 f/s。画面没有出现失真现象,没有明显的块效应。由表1中的数据可得,在使用AT2042对静止图像编码时,可实现接近100:1的压缩比,在对动态画面进行编码时,可以实现40:1的压缩比。
4 结 语
本文详细介绍基于专用视频编解码芯片AT2042的数字视频录像机系统的硬件设计和软件开发流程。该系统已实现对视频数据的编码和解码,同时实现了MPEG-4/MPEG-2/MPEG-1 H.263视频标准,并已作为成型产品推向市场。