We are having issues getting full 30 fps on 1080p stream for DM368.
The hardware configuration is:
ARM : 486MHz
The software code base is Appro IPNC Reference Design -1.5 , latest 2.30 codec from TI with linux kernel 2.6.18 and DVSDK version 2.10.01.18
We are running dual H264 streams : one at 1080p stream and the other one at D1 resolution.
Below is the snippet of the profile info of the streams.
//ARM 486Mhz, 360Mhz DDR , 360MHz HDVICP Module | Avg Time/Frame | Frame-rate | Total time | Total Frames | CAPTURE | 35.25 | 28.36 | 63529 | 1802 | IPIPE | 28.62 | 34.94 | 51574 | 1802 | ENCODE0 | 31.14 | 32.12 | 56043 | 1800 | ENCODE1 | 3.89 | 257.36 | 6994 | 1800 | STREAM | 0.36 | 2774.09 | 1297 | 3598 | Module | Avg Time/Frame | Frame-rate | Total time | Total Frames | CAPTURE | 35.44 | 28.22 | 95783 | 2703 | IPIPE | 28.59 | 34.97 | 77288 | 2703 | ENCODE0 | 31.33 | 31.92 | 84625 | 2701 | ENCODE1 | 3.86 | 259.12 | 10420 | 2700 | STREAM | 0.35 | 2825.75 | 1911 | 5400 |
Is there a way we can get full 30 fps with the 1080p H264 stream with the hardware/software combination we have? If not, what are the components we should change or modify?
We do have Appro IPNC code version 2.6 for reference. But we are not sure what area to concentrate on to get better performance.
I can provide more details if needed.
Thanks in advance.
From the log it looks like you are running in DDR_IN mode.
PLease run it in AVSERVER_CAPTURE_RAW_IN_MODE_ISIF_IN mode to get maximu performance, you cna use resizer 1 for 10810p and other for D1.
In DDR IN mode, due to extra DDR copy the performance drop will be seen
Also, Can you check you codec params to get the best performance for 1080p+D1 config?
few checks for create params
encodingPreset = XDM_HIGH_SPEED
profileIdc = <User_defined>;levelIdc <User_defined>;Log2MaxFrameNumMinus4 = 0;ConstraintSetFlag = 0;entropyMode = 1;transform8x8FlagIntraFrame = 0;transform8x8FlagInterFrame = 1;enableVUIparams = <User_defined>;meAlgo = 0;seqScalingFlag = 1;encQuality = 3; /* In case you are usingencodingPreset = XDM_USERDEFINED */enableARM926Tcm = 0;enableDDRbuff = 0;sliceMode = 0;numTemporalLayers = 0;svcSyntaxEnable = 0;EnableLongTermFrame = 0
For dynamic params are,
sliceSize = 0;airRate = 0;intraFrameQP = <user defined>;interPFrameQP = <user defined>;initQ = <user defined>;rcQMax = <user defined>;rcQMin= <user defined>;rcQMaxI = <user defined>;rcQMinI = <user defined>rcAlgo = <user defined>;maxDelay = <user defined>;aspectRatioX = <user defined>;aspectRatioY = <user defined>;lfDisableIdc = 0;enableBufSEI = <user defined>;enablePicTimSEI = <user defined>;perceptualRC = 0;idrFrameInterval = <user defined>;mvSADoutFlag = <user defined>;resetHDVICPeveryFrame = 0;enableROI = 0;metaDataGenerateConsume = 0;maxBitrateCVBR = <user defined>;interlaceRefMode = <user defined>;enableGDR = 0;GDRduration = 0;GDRinterval = 0;LongTermRefreshInterval = 0;UseLongTermFrame = 0;SetLongTermFrame = 0;VUI_Buffer = NULL;*CustomScaleMatrix_Buffer = NULL;CVBRsensitivity = 0;CVBRminbitrate = 0;LBRmaxpicsize = 0;LBRminpicsize = 0;LBRskipcontrol = 0;maxHighCmpxIntCVBR = 0;disableMVDCostFactor = 0putDataGetSpaceFxn = NULL;dataSyncHandle = NULL;
Please mark this reply as Verify Answer on this post if it answers the question.
Thank you for the reply.
We are using a camera module which outputs 1080p data in 16-bit YUV 4222 format. When we use the AVSERVER_CAPTURE_RAW_IN_MODE_ISIF_IN mode we do not get proper video. It is a green screen with noise.
My question is , can we run in "AVSERVER_CAPTURE_RAW_IN_MODE_ISIF_IN" mode to capture 16-bit YUV 422 format?
Also according to the document "Suggested settings for (1080P + D1) - 30fps on DM368E" from TI , it says performance can be achieved by running on the fly resize to D1.
Can you direct us as to what part of the IPNC ref desing code to modify to run in this mode?
I am having same issue can any body tell me what is difference between "AVSERVER_CAPTURE_RAW_IN_MODE_ISIF_IN" and "DDR_IN" mode ?
And in which file I need to look for, to change captureRawInMode ?
Hi Padmini Vijayakumar
I am curious to know whether you were able to achieve the desired 30 fps and
also whether you got the AVSERVER_CAPTURE_RAW_IN_MODE_ISIF_IN capture mode working.
We were able to achieve 30 fps and we were also able to get AVSERVER_CAPTURE_RAW_IN_MODE_ISIF_IN working.
how to set the other clock without arm、ddr and HDVICP？
The file to set the capture mode to ISIF_IN is in 'avServerUI.c' in avserver/common folder.
The function which does the video capture in ISIF_IN mode is VIDEO_captureTskRunIsifIn().
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.