Hello,
i have a question regarding the qualitiy of the DM385 encoder.
I have used an software encoder to compare the quality of the DM385 encoder. It seems that the software encoder provides a better quality. I have tried to use the same configuration for both. Maybe I have forgotten something or it is yust not possible to make a comparison like this?
One of our customers complains about a bad quality of the video stream.
The main configuration is:
Targetbitrate: 5MBit
GOP size: 5
Video: 1080p @ 60fps
Ofcourse the result is not perfect even with the software encoder due this hard constrains. But still better than the hardware Encoder. What GOP size and targetbitrate should be used to have a "good" qualitaty for video stream with 1080 @ 60fps.
For the test i have used the following settings for the software encoder in Linux:
ffmpeg \
-i ${INPUT_VIDEO} \
-c:v libx264 \
-strict -2 \
-b:v 5000k \
-x264opts bitrate=5000:vbv-maxrate=5000:vbv-bufsize=10000 \
-nal-hrd cbr \
-ss 15 -t 10 \
-g 5 \
-framerate 60 \
-qmin 8 \
-qmax 44 \
-passlogfile ./enc_dummy.log \
-crf 0 \
${OUTPUT_VIDEO}_cbr_5.mp4
for the hardware encoder DM385 i have used the following configurations:
[m3video] --------- CH 0 : H264 ENC : Dynamic Params -------
[m3video]
[m3video] videnc2DynamicParams -> inputHeight : 1080
[m3video] videnc2DynamicParams -> inputWidth : 1920
[m3video] videnc2DynamicParams -> refFrameRate : 25000
[m3video] videnc2DynamicParams -> targetFrameRate : 60000
[m3video] videnc2DynamicParams -> targetBitRate : 5000000
[m3video] videnc2DynamicParams -> intraFrameInterval : 5
[m3video] videnc2DynamicParams -> generateHeader : 0
[m3video] videnc2DynamicParams -> captureWidth : 1920
[m3video] videnc2DynamicParams -> forceFrame : -1
[m3video] videnc2DynamicParams -> interFrameInterval : 1
[m3video] videnc2DynamicParams -> mvAccuracy : 2
[m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1
[m3video] videnc2DynamicParams -> sampleAspectRatioWidth : 1
[m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag : 1
[m3video] videnc2DynamicParams -> lateAcquireArg : -1
[m3video]
[m3video] rateControlParams -> rateControlParamsPreset : 1
[m3video] rateControlParams -> scalingMatrixPreset : 0
[m3video] rateControlParams -> rcAlgo : 0
[m3video] rateControlParams -> qpI : -1
[m3video] rateControlParams -> qpMaxI : 44
[m3video] rateControlParams -> qpMinI : 8
[m3video] rateControlParams -> qpP : -1
[m3video] rateControlParams -> qpMaxP : 44
[m3video] rateControlParams -> qpMinP : 8
[m3video] rateControlParams -> qpOffsetB : 4
[m3video] rateControlParams -> qpMaxB : 44
[m3video] rateControlParams -> qpMinB : 10
[m3video] rateControlParams -> allowFrameSkip : 1
[m3video] rateControlParams -> removeExpensiveCoeff : 0
[m3video] rateControlParams -> chromaQPIndexOffset : 0
[m3video] rateControlParams -> IPQualityFactor : 0
[m3video] rateControlParams -> initialBufferLevel : 10000000
[m3video] rateControlParams -> HRDBufferSize : 10000000
[m3video] rateControlParams -> minPicSizeRatioI : 0
[m3video] rateControlParams -> maxPicSizeRatioI : 96
[m3video] rateControlParams -> minPicSizeRatioP : 0
[m3video] rateControlParams -> maxPicSizeRatioP : 0
[m3video] rateControlParams -> minPicSizeRatioB : 0
[m3video] rateControlParams -> maxPicSizeRatioB : 0
[m3video] rateControlParams -> enablePRC : 1
[m3video] rateControlParams -> enablePartialFrameSkip : 1
[m3video] rateControlParams -> discardSavedBits : 1
[m3video] rateControlParams -> VBRDuration : 8
[m3video] rateControlParams -> VBRsensitivity : 0
[m3video] rateControlParams -> skipDistributionWindowLength : 5
[m3video] rateControlParams -> numSkipInDistributionWindow : 2
[m3video] rateControlParams -> enableHRDComplianceMode : 1
[m3video] rateControlParams -> frameSkipThMulQ5 : 0
[m3video] rateControlParams -> vbvUseLevelThQ5 : 0
[m3video]
[m3video] interCodingParams -> interCodingPreset : 0
[m3video] interCodingParams -> searchRangeHorP : 144
[m3video] interCodingParams -> searchRangeVerP : 32
[m3video] interCodingParams -> searchRangeHorB : 144
[m3video] interCodingParams -> searchRangeVerB : 16
[m3video] interCodingParams -> interCodingBias : 1
[m3video] interCodingParams -> skipMVCodingBias : 1
[m3video] interCodingParams -> minBlockSizeP : 0
[m3video] interCodingParams -> minBlockSizeB : 0
[m3video] interCodingParams -> meAlgoMode : 0
[m3video]
[m3video] intraCodingParams -> intraCodingPreset : 0
[m3video] intraCodingParams -> lumaIntra4x4Enable : 255
[m3video] intraCodingParams -> lumaIntra8x8Enable : 0
[m3video] intraCodingParams -> lumaIntra16x16Enable : 15
[m3video] intraCodingParams -> chromaIntra8x8Enable : 15
[m3video] intraCodingParams -> chromaComponentEnable : 1
[m3video] intraCodingParams -> intraRefreshMethod : 0
[m3video] intraCodingParams -> intraRefreshRate : 0
[m3video] intraCodingParams -> gdrOverlapRowsBtwFrames : 0
[m3video] intraCodingParams -> constrainedIntraPredEnable : 0
[m3video] intraCodingParams -> intraCodingBias : 0
[m3video]
[m3video] sliceCodingParams -> sliceCodingPreset : 1
[m3video] sliceCodingParams -> sliceMode : 416
[m3video] sliceCodingParams -> sliceUnitSize : 416
[m3video] sliceCodingParams -> sliceStartOffset : [-126 1 2]
[m3video] sliceCodingParams -> streamFormat : 0
[m3video]
[m3video] sliceGroupChangeCycle : 3072
[m3video] searchCenter : 0
[m3video] enableStaticMBCount : 0
[m3video] enableROI : 262400
How could we improve the quality of the video stream?
Thanks,
Andreas