测试流程:
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
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:
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
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.
Following are the list of OMX components used in the usecase:
Metrics
Breakup
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.