dm8148 jpeg编解码器测试
测试过程:
1)于A8将jpeg传送到videoM3解码,然后,videoM3编码。在编译jpeg图像传输到A8,主要是测试jpeg编码的图像需要多少时间;
1000w像素: 编码时间:43ms。
800w像素: 编码时间:35ms
1080P: 编码时间:10ms
1600w像素: 编码时间:73ms
当測试到1600w像素时,解码link报错,内存不够。
在utils_mem.c的utils_memFrameAlloc函数中报错,内存分配错误;
4096*4096分辨率下。declink分配的内存为:
memory alloc failed,size=26560512,numFrames=4,file=utils/src/utils_mem.c,line=185
将建立解码link时,原来是4个buff,改为2个buff
改动完后,videoM3又报例如以下错误。
[m3video] 58133: Assertion @ Line: 99 in utils/src/utils_ringbuffer.c: status == 0 : failed !!!
将编码link的buff内存个数改动成3
encPrm.numBufPerCh[i] = 3;
改动完后,1600w像素编码成功。
我看ti的编解码文档最大支持的分辨率就是4096*4096了。我測试了更高分辨率,5120*5120,解码器报错;
MA: ChannelID allocated:4
[m3video] 523256: IPC_BITS_IN : Create in progress !!!
[m3video] 523256: SYSTEM: Opening ListMP [HOST_IPC_OUT_28] ...
[m3video] 523257: SYSTEM: Opening ListMP [HOST_IPC_IN_28] ...
[m3video] 523258: SYSTEM: Opening MsgQ [HOST_MSGQ] ...
[m3video] 523261: IPC_BITS_IN : Create Done !!!
[m3video] 523261: DECODE: Create in progress ... !!!
[m3video] 523521: DECODE: Creating CH0 of 5120 x 5120 [PROGRESSIVE] [NON-TILED ],target bitrate = 8000 Kbps ...
[m3video] DECLINK_JPEG:HEAPID:0 USED:14512
[m3video] 523523: DECODE: All CH Create ... DONE !!!
[m3video] DECLINK:HEAPID:0 USED:14552
[m3video] 523524: DECODE: Create ... DONE !!!
[m3video] 523525: ENCODE: Create in progress ... !!!
[m3video] prevLinkQueId=0,numQue=1
[m3video] EncLink_codecCreateOutObj BitBuf Q Status
[m3video] Empty Q 0 -> count 1, wrPtr 1, rdPtr 0
[m3video] Full Q -> count 0, wrPtr 0, rdPtr 0
[m3video] 523609: ENCODE: Creating CH0 of 5120 x 5120, pitch = (5248, 5248) [PROGRESSIVE] [NON-TILED ], bitrate = 24000 Kbps ...
[m3video] ENCLINK_JPEG:HEAPID:0 USED:4432
[m3video] 523610: ENCODE: All CH Create ... DONE !!!
[m3video] ENCLINK:HEAPID:0 USED:4672
[m3video] 523613: ENCODE: Create ... DONE !!!
[m3video] 523614: IPC_BITS_OUT : Create in progress !!!
[m3video] 523617: IPC_BITS_OUT : Create Done !!!
[m3video] 528461:DECLINK::links_m3video/iva_dec/decLink_jpeg.c:[203]::INTERNAL ERROR:-1
[m3video] ALGPROCESS FAILED:STATUS
[m3video] 528461:WARN
[m3video] DECLINK:ERROR in Declink_jpegDecodeFrameBatch.Status[-1]
[m3video] 530875:DECLINK::links_m3video/iva_dec/decLink_jpeg.c:[203]::INTERNAL ERROR:-1
[m3video] ALGPROCESS FAILED:STATUS
[m3video] 530875:WARN
[m3video] DECLINK:ERROR in Declink_jpegDecodeFrameBatch.Status[-1]
错误码:
JPEG Extended error 20008000
查看错误码:http://www.doc88.com/p-3965543592868.html
第15位为1表示一个致命的错误。第29位为1。表示不支持的分辨率。width/height;
错误码:200000 第21位为1表示 :Not supported output chroma format set by the application to the codec
測试完后。看到一个ti的网页,也有这些性能的測试。
http://processors.wiki.ti.com/index.php/Latency_Measurement_on_Capture_Encode_Decode_Display_Demo
http://processors.wiki.ti.com/index.php/QualiTI
Latency Measurement on Capture Encode Decode Display Demo
Contents
[hide]
Latency Measurement for Capture Encode/Decode Display application
This is the latency measurements performed on the sample Capture encode/decode display demo delivered along with the EZSDK 5.x for DM816x and DM814x devices from TI. The demo is created with the chain VFCC->DEI->VENC->VDEC->VFPC-SC->VFDC .
This demo is validated on EZSDK 5.03.01.15 and OMX components 5.02.00.30.
The latency numbers are measured for the following resolutions:
- 1080p60 (Capture, Encode, Decode and Display @ 1080p60)
- 1080p30 (Capture, Encode, Decode and Display @ 1080p30)
- 1080p60-30 ( Capture Display @ 1080p60. Encode Decoder @ 1080p30)
- 720p60 (Capture, Encode, Decode and Display @ 720p60)
Usecase Description
The video data is captured by VFCC component from a HD camera source via HDMI . The captured data is fed to DEI.The DEI output is then encoded by VENC and decoded by VDEC component. The decoded frame is passed to Scalar component
( VFPC Sc) , which does chroma conversion from YUV 420 to YUV 422 format. The scalar ouput is passed to VFDC and the output is displayed on the TV via via on-chip HDMI interface. The IL Client source code is available hereMedia:capture_encode_decode_display.tar.gz
Setup Details
DM816x Base EVM DM816x Rev-C with DDR3 attached with a Video Conferencing Expansion IO (EIO) Card interface. A video source (Tandberg 1080p60 Camera / Sony PS3) is connected to the daughter card via a HDMI interface. The on-chip
HDMI out from the DM816x Base EVM is connected to a TV.
OMX Components Details
Following are the list of OMX components used in the usecase:
- VFCC (Video Frame Capture Component)
- VFPC-DEI (Video Frame Processing Component - Deinterlacer)
- VENC (Video Encode Component)
- VDEC (Video Decode Component)
- VFPC-SC (Video Frame Processing Component - Scalar)
- VFDC (Video Frame Display Component)
Measurement Procedure
- The IL-client is executed on ARM side and the corresponding firmware binaries are loaded on the Video and VPSS media controller cores.
- The HD camera is focused on a running stop watch video. Glass-to-Glass latency is measured by measuring the time difference between the source time stamp and the time stamp displayed on the TV display.
- Timestamps corresponding to various OMX component events for consecutive frames are logged for latency measurements
- T0 - Start of capture. (start time for encode path)
- T1 - Timestamp when capture of frame is complete
- T2 - Timestamp when DEI processing is done
- T3 - Timestamp when VENC finish encoding the frame
- T4 - Timestamp when VDEC starts decoding the frame
- T5 - Timestamp when VDEC finish decoding the frame .
- T6 - Timestamp when VFPC scaling is done
- T7 - Timestamp when VFDC send the frame to HDMI output for display
- T8 - Timestamp when the frame is displayed on TV
- From the above timestamps, Running average of various latency values are measured
- Running average: Series of averages is calculated for a fixed window period (8 Frames) of different subsets of the full data set and final average is calculated from the average series
Results
- Detailed latency performance results are available here Media:DM816x_Capture_Encode_Decode_Display_latency_performance_consolidated.zip
Summary
Metrics
- Glass to Glass Latency T8–T0 - Total delay observed in the system including TV delay
- Capture-Encode Latency = Capture-Encode Path delay + Buffers in Capture Driver
- Decode-Display Latency = Decode delay + Scalar delay + Display delay
Breakup
- Buffers in Capture Driver - Delay due to buffers held in capure driver. Range is from 0.5 to 1 frame
- Capture-Encode Path delay- T3–T1
- Buffer Hand Off to Decoder - Delay due to buffers held between VENC and VDEC components. Range is from 1 to 1.5 frames
- Decode Delay T5–T4
- Scalar Delay T6–T5
- Scale/Chroma Con. Display Delay T7–T5 - Cummulative delay for scaling, chroma conversion and display
- TV/Monitor Delay - Delay due to the internal processing in the TV/monitor (8ms delay is observed in Samsung LCD TV)
Download the Latest EZSDK
The latest EZSDK is available for download from http://software-dl.ti.com/dsps/dsps_public_sw/ezsdk/latest/index_FDS.html.
The current version is 5.05.02.00. The supported platforms are DM816x and DM814x.
版权声明:本文博主原创文章。博客,未经同意不得转载。
dm8148 jpeg编解码器测试的更多相关文章
- 在NVIDIA A100 GPU上利用硬件JPEG解码器和NVIDIA nvJPEG库
在NVIDIA A100 GPU上利用硬件JPEG解码器和NVIDIA nvJPEG库 根据调查,普通人产生的1.2万亿张图像可以通过电话或数码相机捕获.这样的图像的存储,尤其是以高分辨率的原始格式, ...
- NVIDIA A100 GPUs上硬件JPEG解码器和NVIDIA nvJPEG库
NVIDIA A100 GPUs上硬件JPEG解码器和NVIDIA nvJPEG库 Leveraging the Hardware JPEG Decoder and NVIDIA nvJPEG Lib ...
- iOS中app的分发测试
知识的学习在于分享.分享出来才能共同进步. 关于测试 有几种方式 1.开发人员直接在电脑上 用模拟器 2. 真机调试,测试人员可以拿着测试机找开发人员在电脑上跑真机测试 3. 公司和个人账号 直接 ...
- 移动应用开发测试工具Bugtags集成和使用教程【转载】
前段时间,有很多APP突然走红,最终却都是樱花一现.作为一个创业团队,突然爆红是非常难得的机会.然并卵,由于没有经过充分的测试,再加上用户的激增,APP闪退.服务器数据异常等问题就被暴露出来,用户的流 ...
- 从WinCE到Linux
到新的公司已经快两个月了,新的工作主要方向是Linux驱动移植和Android系统定制.由于项目还在立项的阶段,并没有分配具体的工作任务,所以找来一个Linux的开发板先玩一玩.它采用的处理器NUC9 ...
- Java生成验证码小工具
无意中看到一个生成简易验证码的小工具类(保存学习): 工具类代码: import java.awt.BasicStroke; import java.awt.Color; import java.aw ...
- [Compression] Hadoop 压缩
0. 说明 Hadoop 压缩介绍 && 压缩格式总结 && 压缩编解码器测试 1. 介绍 [文件压缩的好处] 文件压缩的好处如下: 减少存储文件所需要的磁盘空间 加速 ...
- 基于html5 canvas 的客户端异步上传图片的插件,支持客户端压缩图片尺寸
/** * Created by xx on 15-05-28. * 基于html5 canvas 的客户端异步上传画片的插件 * 在实际应用中,常常要用于上传图片的功能.在现在越来越多的手机weba ...
- Linux系统——Nginx反向代理与负载均衡
集群集群是指一组(若干个)相互独立的计算机,利用高速通信网路组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运用各自服务的独立服务器.这些服务器之间可以彼此通信,协同向用户提供 ...
随机推荐
- thinkphp3.2入口文件
原文:thinkphp3.2入口文件 <?php define('DIR_SECURE_FILENAME', 'default.html');//错误页面 define('APP_PATH',' ...
- linux下自助获取帮助
几乎所有命令都可以用 -h 或者--help参数 获取命令的使用方法帮助 man ls 也可以获取ls命令的详细帮助信息 man -k XXX 可以查看包含关键字XXX的文档 还有一个更详细的命 ...
- vim经常使用命令总结
vim 选择文本,删除,复制,粘贴 文本的选择,对于编辑器来说,是非常主要的东西,也常常被用到,总结例如以下: v 从光标当前位置開始,光标所经过的地方会被选中,再按一下v结束. V ...
- java过滤html标签函数
public static String Html2Text(String inputString) { String htmlStr = inputString; //含h ...
- Codeforces 196 C. Paint Tree
分治.选最左上的点分给根.剩下的极角排序后递归 C. Paint Tree time limit per test 2 seconds memory limit per test 256 megaby ...
- vim php代码规范
vim 代码规范工具php-cs-fixer.phar (參考https://github.com/FriendsOfPHP/PHP-CS-Fixer) INSTALL curl http://get ...
- JavaWeb 项目中的绝对路径和相对路径以及问题的解决方式
近期在做JavaWeb项目,总是出现各种的路径错误,并且发现不同情况下 / 所代表的含义不同,导致在调试路径上浪费了大量时间. 在JavaWeb项目中尽量使用绝对路径 由于使用绝对路径是绝对不会出 ...
- java多线程控制台聊天室(转)
用java多线程实现一个控制台聊天室,呵呵,好玩! 聊天室服务器端 package tf.thread; import java.io.BufferedReader; import java.io.I ...
- hyper-v 报错 0x80070569
在Windows8.1Pro版使用过程中,突然出现HYPER-V无法创建虚拟机.显示错误为: 登录失败:未授予用户在此计算机上的请求登录类型.(0x80070569). 回顾起近期通过组策略增强了系统 ...
- poj2528(线段树)
题目连接:http://poj.org/problem?id=2528 题意:在墙上贴海报,海报可以互相覆盖,问最后可以看见几张海报 分析:离散化+线段树,这题因为每个数字其实表示的是一个单位长度,因 ...