针对jpeg codec的FPGA测试总结
2009-03-25 00:25
323 查看
一、简介
最近一个多月,一直在做一件事情,这就是在FPGA上对Jpeg codec的芯片设计进行全方面的验证。至于什么是FPGA验证,可查看
http://www.chituwang.com/Article/IT/detail.aspx?articleid=18093。
Jpeg codec是我们团队所设计的一款手机多媒体芯片的其中一个功能。它包括Jpeg encoder,Jpeg decoder以及Jpeg decoder与encoder的联合使用。用于手机的拍照,浏览图片以及播放Motion jpeg视频流。
下面,我将会对FPGA验证的条件、环境及过程做以描述。
二、FPGA验证的条件及环境描述
1、软件环境
根据功能,我们将Jpeg codec的FPGA验证分为三大部分:jpeg encoder,jpeg decoder和jpeg de-encoder。
这里需要说明的是jpeg de-encoder,它是先进行jpeg图片的解码,然后对解析出来的YUV数据进行编码。
在上述三大部分的每个部分中,我们根据测试源的性质,划分为VIP测试源和普通测试源。按照硬件的实际存储模式,分为一维存储(后面称为1d)和二维存储(后面称为2d),而2d中按照二维pitch的大小又分为512bits、1024bits和2048bits。
根据上面的描述,所有的测试集合总结为:
Jpeg encoder:
encoder_vip_1d
encoder_vip_2d_512
encoder_vip_2d_1024
encoder_vip_2d_2048
encoder_normal_1d
encoder_normal_2d_512
encoder_normal_2d_1024
encoder_normal_2d_2048
Jpeg decoder:
decoder_vip_1d
decoder_vip_2d_512
decoder_vip_2d_1024
decoder_vip_2d_2048
decoder_normal_1d
decoder_normal_2d_512
decoder_normal_2d_1024
decoder_normal_2d_2048
Jpeg de-encoder:
de-encoder_vip_1d
de-encoder_vip_2d_512
de-encoder_vip_2d_1024
de-encoder_vip_2d_2048
de-encoder_normal_1d
de-encoder_normal_2d_512
de-encoder_normal_2d_1024
de-encoder_normal_2d_2048
2、硬件环境
由于FPGA板卡非常昂贵,我们部门只有两块可以使用,而其中一块用于视频码流的FPGA验证,也就是说jpeg的FPGA验证只有一块FPGA板卡可以使用。
另外,通过JTAG来输送码流,由于某些原因,其Uart口非常不稳定,经常会出现Uart口挂死的现象,导致批处理过程中死掉。
三、FPGA验证过程描述
所有的FPGA验证都是以批处理的形式进行的。在这三大部分中,某些集合的批处理是可以连在一起进行。于是,如果硬件环境不出问题的话,FPGA验证就可以夜以继日地进行。但在实际验证过程中,硬件环境经常出现问题,导致FPGA验证进行比较缓慢。
经过将近一个月的努力,整个Jpeg的FPGA验证总算是划上了圆满的句号。
四、FPGA验证总结
通过这段时间的FPGA验证,作如下总结。
1、 码流及config测试集合
在FPGA验证之前,这个集合应该尽可能地完善。这种完善包括码流的齐全,比如各种color space,图像大小等。也包括config的齐全,必须能够覆盖尽可能多的芯片测试点。这些集合必须在验证开始之前就确定下来;在验证过程中尽可能不要做修改。
2、 验证日志
验证日志是比较重要的。在日志中,需要记录在哪个时间段,使用哪个bit文件,验证了哪个集合,以及验证结果。通过这些信息,就可以评估整个FPGA验证的工作量和进度,以方便后期工作的安排和FPGA验证工作的按时完成。
3、 验证环境
磨刀不误砍柴工。在验证开始之前,应该尽可能地让验证环境稳定,简单易用。这将对整个验证工作起着举足轻重的作用。
4、 验证集合的安排
在验证过程中,有些集合是不能放在一起验证的。所以得根据当前验证的情况,决定剩下的集合如何安排,应该动态地调整集合验证的次序,以保证晚上不会出现空闲期。
最近一个多月,一直在做一件事情,这就是在FPGA上对Jpeg codec的芯片设计进行全方面的验证。至于什么是FPGA验证,可查看
http://www.chituwang.com/Article/IT/detail.aspx?articleid=18093。
Jpeg codec是我们团队所设计的一款手机多媒体芯片的其中一个功能。它包括Jpeg encoder,Jpeg decoder以及Jpeg decoder与encoder的联合使用。用于手机的拍照,浏览图片以及播放Motion jpeg视频流。
下面,我将会对FPGA验证的条件、环境及过程做以描述。
二、FPGA验证的条件及环境描述
1、软件环境
根据功能,我们将Jpeg codec的FPGA验证分为三大部分:jpeg encoder,jpeg decoder和jpeg de-encoder。
这里需要说明的是jpeg de-encoder,它是先进行jpeg图片的解码,然后对解析出来的YUV数据进行编码。
在上述三大部分的每个部分中,我们根据测试源的性质,划分为VIP测试源和普通测试源。按照硬件的实际存储模式,分为一维存储(后面称为1d)和二维存储(后面称为2d),而2d中按照二维pitch的大小又分为512bits、1024bits和2048bits。
根据上面的描述,所有的测试集合总结为:
Jpeg encoder:
encoder_vip_1d
encoder_vip_2d_512
encoder_vip_2d_1024
encoder_vip_2d_2048
encoder_normal_1d
encoder_normal_2d_512
encoder_normal_2d_1024
encoder_normal_2d_2048
Jpeg decoder:
decoder_vip_1d
decoder_vip_2d_512
decoder_vip_2d_1024
decoder_vip_2d_2048
decoder_normal_1d
decoder_normal_2d_512
decoder_normal_2d_1024
decoder_normal_2d_2048
Jpeg de-encoder:
de-encoder_vip_1d
de-encoder_vip_2d_512
de-encoder_vip_2d_1024
de-encoder_vip_2d_2048
de-encoder_normal_1d
de-encoder_normal_2d_512
de-encoder_normal_2d_1024
de-encoder_normal_2d_2048
2、硬件环境
由于FPGA板卡非常昂贵,我们部门只有两块可以使用,而其中一块用于视频码流的FPGA验证,也就是说jpeg的FPGA验证只有一块FPGA板卡可以使用。
另外,通过JTAG来输送码流,由于某些原因,其Uart口非常不稳定,经常会出现Uart口挂死的现象,导致批处理过程中死掉。
三、FPGA验证过程描述
所有的FPGA验证都是以批处理的形式进行的。在这三大部分中,某些集合的批处理是可以连在一起进行。于是,如果硬件环境不出问题的话,FPGA验证就可以夜以继日地进行。但在实际验证过程中,硬件环境经常出现问题,导致FPGA验证进行比较缓慢。
经过将近一个月的努力,整个Jpeg的FPGA验证总算是划上了圆满的句号。
四、FPGA验证总结
通过这段时间的FPGA验证,作如下总结。
1、 码流及config测试集合
在FPGA验证之前,这个集合应该尽可能地完善。这种完善包括码流的齐全,比如各种color space,图像大小等。也包括config的齐全,必须能够覆盖尽可能多的芯片测试点。这些集合必须在验证开始之前就确定下来;在验证过程中尽可能不要做修改。
2、 验证日志
验证日志是比较重要的。在日志中,需要记录在哪个时间段,使用哪个bit文件,验证了哪个集合,以及验证结果。通过这些信息,就可以评估整个FPGA验证的工作量和进度,以方便后期工作的安排和FPGA验证工作的按时完成。
3、 验证环境
磨刀不误砍柴工。在验证开始之前,应该尽可能地让验证环境稳定,简单易用。这将对整个验证工作起着举足轻重的作用。
4、 验证集合的安排
在验证过程中,有些集合是不能放在一起验证的。所以得根据当前验证的情况,决定剩下的集合如何安排,应该动态地调整集合验证的次序,以保证晚上不会出现空闲期。
相关文章推荐
- 通过instruments针对IOS压力测试研究总结
- 针对代码类测试的要点总结
- 针对app移动端的测试总结
- 针对app移动端的测试总结
- 针对接口测试用例设计,我在项目中(搜狗测试)总结
- TestNG 学习总结 - 测试过程(五)
- Kafka消息的可靠性测试--针对直播业务的方案选择
- TestNG 学习总结 - 异常测试(十)
- import com.sun.image.codec.jpeg.JPEGCodec;
- java中String类测试总结
- 针对图片性能优化的总结
- 我个人的Nginx-1.12.2实践:安装,编译与测试(★firecat推荐,针对TCP四层负载均衡★)
- 性能测试总结之内存泄露和内存溢出
- 针对C#的正规表达式测试程序源码下载(无版权, 随便用)
- 58. 分析、测试与总结:罗马数字和阿拉伯数字的转换[roman to integer and integer to roman in c++]
- 总结针对CRM的常见错误观点
- TestNG 学习总结 - 测试结果报告 - HTML和XML报告(十七)
- 软件测试总结--未完待续中
- FPGA工程师的个人工作经历总结
- 2017.6.26 接口测试工具postman使用总结