大虾们,
用DM8168, 同时保存yuv420,jpeg数据, 然后将yuv420使用opencv转成bmp。发现jpeg要比bmp模糊很多,
想问下怎么改善jpeg质量。
谢谢!
Eason Wang:
JPEG本來就是有損壓縮,一定會比BMP畫質有差。
要提升JPEG效果,可以在編碼處修改Q值參數。詳情可見RDK包內的Jpeg encoder usr guide
Eason Wang:
I saw your thread on e2e. Could you provide the screenshot of JPEG/BMP to let me know how much the difference are ?
yueping Tian:
回复 Eason Wang:
你好, 谢谢你的回复。
问下怎么修改Q? 我查看了http://wenku.baidu.com/link?url=eFDqCirAcCkf5tJ8ILeezW0wbrt0H80Nd5u7S4L7LfmnQVLiLgltqegJ5osx-Sf9t76ebE5YGznJpptFnA8aCxdTbaZQV8fuNZo-0SdpjnW 还是没找到怎么修改啊。
yueping Tian:
回复 Eason Wang:
我使用的是dvrrdk_0.4版本, 我的代码为:
文件 mcfw//src_bios6/links_m3video/iva_enc/encLink_jpeg.c
430 static Int enclink_jpeg_set_dynamic_params(IJPEGVENC_DynamicParams *431 dynamicParams,432 EncLink_AlgDynamicParams *433 algDynamicParams)434 {435 *dynamicParams = JPEGVENC_TI_DYNAMICPARAMS;436 dynamicParams->videnc2DynamicParams.inputWidth =437 algDynamicParams->inputWidth;438 dynamicParams->videnc2DynamicParams.inputHeight =439 algDynamicParams->inputHeight;440 dynamicParams->videnc2DynamicParams.captureWidth =441 algDynamicParams->inputPitch;442 dynamicParams->videnc2DynamicParams.targetBitRate =443 algDynamicParams->targetBitRate;444 dynamicParams->videnc2DynamicParams.targetFrameRate =445 algDynamicParams->targetFrameRate;446 dynamicParams->videnc2DynamicParams.interFrameInterval =447 algDynamicParams->interFrameInterval;448 dynamicParams->videnc2DynamicParams.intraFrameInterval =449 algDynamicParams->intraFrameInterval;450 dynamicParams->videnc2DynamicParams.mvAccuracy =451 algDynamicParams->mvAccuracy;452 dynamicParams->videnc2DynamicParams.refFrameRate =453 algDynamicParams->refFrameRate;454 dynamicParams->videnc2DynamicParams.ignoreOutbufSizeFlag = XDAS_FALSE;455 456 return 0;457 }
在函数 EncLinkJPEG_algSetConfig 中有695 algObj->u.jpegAlgIfObj.dynamicParams.qualityFactor = algObj->algDynamicParams.qpInitI;
设置algObj->u.jpegAlgIfObj.dynamicParams.qualityFactor 是否就可以了?
# Ranges between 2 and 97. # 2 => Lowest Quality. 97 => Best Quality. 也适用吗?
谢谢。
yueping Tian:
回复 yueping Tian:
谢谢 你的答复, 我的问题已经解决了。
kooking:
回复 yueping Tian:
怎么解决的,分享下啊,谢谢
yueping Tian:
回复 kooking:
venc_start() 后
175 VENC_CHN_DYNAMIC_PARAM_S params = { 0 };176 params.qpMin = 97;177 params.qpMax = 97;178 params.qpInit = 97;179 Venc_setDynamicParam(0, 0, ¶ms, VENC_QPVAL_I);
实际上就是设置那个qualityFactor