Closed Justa-Cai closed 3 years ago
运行看下 mpp_platform_test 的 log 可以不用提供 -u 和 -v 参数,内部会自适应处理
11-16 21:55:45.754 8147 8147 I mpp_plat_test: chip name: rockchip,rk3288w 11-16 21:55:45.754 8147 8147 I mpp_plat_test: 11-16 21:55:45.754 8147 8147 I mpp_plat_test: chip vcodec type 00020101 11-16 21:55:45.754 8147 8147 I mpp_plat_test: found vpu1 codec 11-16 21:55:45.754 8147 8147 I mpp_plat_test: found rk hevc decoder 11-16 21:55:45.754 8147 8147 I mpp_plat_test: 11-16 21:55:45.754 8147 8147 I mpp_plat_test: start probing decoder device name: 11-16 21:55:45.754 8147 8147 I mpp_plat_test: H.264 decoder: /dev/vpu-service 11-16 21:55:45.754 8147 8147 I mpp_plat_test: H.265 decoder: /dev/hevc-service 11-16 21:55:45.754 8147 8147 I mpp_plat_test: MJPEG decoder: /dev/vpu-service 11-16 21:55:45.754 8147 8147 I mpp_plat_test: VP9 decoder: /dev/vpu-service 11-16 21:55:45.754 8147 8147 I mpp_plat_test: avs decoder: /dev/vpu-service 11-16 21:55:45.754 8147 8147 I mpp_plat_test: 11-16 21:55:45.754 8147 8147 I mpp_plat_test: start probing encoder device name: 11-16 21:55:45.754 8147 8147 I mpp_plat_test: H.264 encoder: /dev/vpu-service 11-16 21:55:45.755 8147 8147 I mpp_plat_test: H.265 encoder: /dev/vpu-service 11-16 21:55:45.755 8147 8147 I mpp_plat_test: MJPEG encoder: /dev/vpu-service 11-16 21:55:45.755 8147 8147 I mpp_plat_test: mpp platform test done
更新到最新的develop分支代码试试看,我这边测试正常
已更新到develop分支,测试效果还是一样,可以提供远程adb环境,帮忙看下?
commit d1e47f8137c8c568fe47c42fa9723b88aa016d8f (HEAD -> develop, origin/develop, origin/HEAD) Author: shine.liu shine.liu@rock-chips.com Date: Tue Nov 17 09:27:32 2020 +0800
[hal_h263d]: Remove unused code in hal_api_h263d
Change-Id: Ia635841b353849033003c02548550e16f4dbe8d7
Signed-off-by: shine.liu <shine.liu@rock-chips.com>
同样芯片的其他板子也一样的问题么?
嗯,也是同样问题,我试了几块现象都一致
执行如下命令后,抓下logcat 和kernel的日志
setprop jpege_debug 0xff
echo 0xffff > /sys/module/rk_vcodec/parameters/debug
设置之后,编码正常了,但是画质很差,log见附件
setprop jpege_debug 0xff 确认这个改动,会影响到编码结果,这个多了几条的logcat消息的输出,会有正常图像出来。
如果是 setprop jpege_debug 0x0 则会得到异常的编码效果
默认q_factor 80,你这个怎么会是98,而且实际编码写来,q_factor变得很小。是不是改动了代码?
再缩小下范围
setprop jpege_debug 0xff
所有jpeg相关log都屏蔽掉,编码异常
这两行代码,去掉的效果,编码效果还不一样
static MPP_RET jpege_proc_hal(void *ctx, HalEncTask *task)
{
JpegeCtx *p = (JpegeCtx *)ctx;
JpegeSyntax *syntax = &p->syntax;
MppEncCfgSet *cfg = p->cfg;
MppEncPrepCfg *prep = &cfg->prep;
MppEncCodecCfg *codec = &cfg->codec;
// jpege_dbg_func("enter ctx %p\n", ctx);
syntax->width = prep->width;
syntax->height = prep->height;
syntax->hor_stride = prep->hor_stride;
syntax->ver_stride = prep->ver_stride;
syntax->format = prep->format;
syntax->color = prep->color;
syntax->quality = codec->jpeg.quant;
syntax->q_factor = codec->jpeg.q_factor;
syntax->qf_min = codec->jpeg.qf_min;
syntax->qf_max = codec->jpeg.qf_max;
syntax->qtable_y = codec->jpeg.qtable_y;
syntax->qtable_c = codec->jpeg.qtable_u;
task->valid = 1;
task->is_intra = 1;
task->syntax.data = syntax;
task->syntax.number = 1;
jpege_dbg_func("leave ctx %p\n", ctx);
return MPP_OK;
}
static MPP_RET jpege_proc_hal(void *ctx, HalEncTask *task)
{
JpegeCtx *p = (JpegeCtx *)ctx;
JpegeSyntax *syntax = &p->syntax;
MppEncCfgSet *cfg = p->cfg;
MppEncPrepCfg *prep = &cfg->prep;
MppEncCodecCfg *codec = &cfg->codec;
jpege_dbg_func("enter ctx %p\n", ctx);
syntax->width = prep->width;
syntax->height = prep->height;
syntax->hor_stride = prep->hor_stride;
syntax->ver_stride = prep->ver_stride;
syntax->format = prep->format;
syntax->color = prep->color;
syntax->quality = codec->jpeg.quant;
syntax->q_factor = codec->jpeg.q_factor;
syntax->qf_min = codec->jpeg.qf_min;
syntax->qf_max = codec->jpeg.qf_max;
syntax->qtable_y = codec->jpeg.qtable_y;
syntax->qtable_c = codec->jpeg.qtable_u;
task->valid = 1;
task->is_intra = 1;
task->syntax.data = syntax;
task->syntax.number = 1;
// jpege_dbg_func("leave ctx %p\n", ctx);
return MPP_OK;
画质差的问题,建议单步调试跟踪下q_factor的设置。 加了log才能正常编码,这个问题有点奇怪,你们有对板子进行超频等设置吗?
主仓库的,jpeg编码质量过差 开发分支仓库(本仓库),jpeg编码完全异常掉
Android版本:9.0 平台:RK3288W
测试指令: adb shell /app/bin/mpi_enc_test -i /tmp/1.yuv -o /tmp/1.jpg -t 8 -f 0 -w 1920 -h 1080 -u 1920 -v 1080 原图YUV: 1.yuv.zip
编码异常图片:
编码质量过差(主仓库),注意脸部分颜色异常:
![1](https://user-images.githubusercontent.com/487867/99205238-e572b180-27f2-11eb-8825-623919022d98.jpg)