Comments (10)
调节 jpeg:q_factor 这个参数,在 mpi_enc_test 里可以找到
from mpp.
这个参数改变我也测过,jpeg:q_factor 设置为1,10,50都没变化
from mpp.
rc mode配置成什么,如果是fix qp模式,配置q_factor会不起作用
from mpp.
目前配置的rc_cfg->rc_mode模式是1,即MPP_ENC_RC_MODE_CBR
from mpp.
我这边用mpi_enc_test测试,修改jpeg:q_factor测试,编码出的图片质量有变化,确实有生效。测试的值是10 和80
执行下如下的设置环境变量的cmd,然后再用mpi_enc_test测试
setprop hal_jpege_debug 0x10
看下logcat中类似这样log的打印出来的qfactor再更改前后是否有变化:
01-03 11:28:47.879: I/hal_jpege_vepu2_2(2094): use qfactor=10, rc_info->quality_target=90
``
from mpp.
用mpi_enc_test编码出来确实比较小,但是我的程序是多线程,是基于mpi_enc_multi_test这个demo来写的,似乎mpi_enc_multi_test不行
from mpp.
确认下 log中打印出来的q_factor是否有变化,如果没有,那就是配置更新的问题,检查下流程
from mpp.
我现在按照mpi_enc_test的流程重新写了一下更新到我自己的工程里面去,这次q_factor确实起作用了,但还是有点问题,不知道该怎么解决。因为我是连续Jpeg编码,不像mpi_enc_test那样只编码一帧,发现编码第一帧时大小确实是对的(同样的输入源和mpi_enc_test编码出来的第一帧一样大),但从第2帧还是编出来的Jpeg文件大小就一直在递减,一直减小到80K左右就稳定不再变小了,日志如下:
[ats:2020-11-11 23:10:36 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:138,wirte:13 ms,all:151 ms, inputLen[10027008], outputLen[543264]
[ats:2020-11-11 23:10:36 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:122,wirte:22 ms,all:144 ms, inputLen[10027008], outputLen[343135]
[ats:2020-11-11 23:10:36 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:84,wirte:6 ms,all:90 ms, inputLen[10027008], outputLen[258834]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:77,wirte:6 ms,all:83 ms, inputLen[10027008], outputLen[236485]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:59,wirte:5 ms,all:64 ms, inputLen[10027008], outputLen[201726]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:74,wirte:4 ms,all:78 ms, inputLen[10027008], outputLen[200175]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:59,wirte:4 ms,all:63 ms, inputLen[10027008], outputLen[184821]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:63,wirte:5 ms,all:68 ms, inputLen[10027008], outputLen[176354]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:61,wirte:4 ms,all:65 ms, inputLen[10027008], outputLen[168472]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:59,wirte:5 ms,all:64 ms, inputLen[10027008], outputLen[165253]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:67,wirte:4 ms,all:71 ms, inputLen[10027008], outputLen[156797]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:61,wirte:3 ms,all:64 ms, inputLen[10027008], outputLen[153756]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:60,wirte:4 ms,all:64 ms, inputLen[10027008], outputLen[152195]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:60,wirte:3 ms,all:63 ms, inputLen[10027008], outputLen[149126]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:64,wirte:3 ms,all:67 ms, inputLen[10027008], outputLen[144496]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:61,wirte:3 ms,all:64 ms, inputLen[10027008], outputLen[142316]
[ats:2020-11-11 23:10:37 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:60,wirte:3 ms,all:63 ms, inputLen[10027008], outputLen[138354]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:62,wirte:3 ms,all:65 ms, inputLen[10027008], outputLen[136408]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:62,wirte:3 ms,all:65 ms, inputLen[10027008], outputLen[132826]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:59,wirte:3 ms,all:62 ms, inputLen[10027008], outputLen[130759]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:59,wirte:3 ms,all:62 ms, inputLen[10027008], outputLen[126911]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:64,wirte:3 ms,all:67 ms, inputLen[10027008], outputLen[124794]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:61,wirte:3 ms,all:64 ms, inputLen[10027008], outputLen[120902]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:60,wirte:3 ms,all:63 ms, inputLen[10027008], outputLen[117993]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:59,wirte:2 ms,all:61 ms, inputLen[10027008], outputLen[114293]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:63,wirte:3 ms,all:66 ms, inputLen[10027008], outputLen[112608]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:61,wirte:2 ms,all:63 ms, inputLen[10027008], outputLen[109103]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:59,wirte:2 ms,all:61 ms, inputLen[10027008], outputLen[108266]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:60,wirte:2 ms,all:62 ms, inputLen[10027008], outputLen[104185]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:61,wirte:3 ms,all:64 ms, inputLen[10027008], outputLen[102035]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:61,wirte:2 ms,all:63 ms, inputLen[10027008], outputLen[97709]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:59,wirte:2 ms,all:61 ms, inputLen[10027008], outputLen[95825]
[ats:2020-11-11 23:10:38 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:59,wirte:2 ms,all:61 ms, inputLen[10027008], outputLen[92056]
[ats:2020-11-11 23:10:39 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:63,wirte:3 ms,all:66 ms, inputLen[10027008], outputLen[90617]
[ats:2020-11-11 23:10:39 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:61,wirte:2 ms,all:63 ms, inputLen[10027008], outputLen[88715]
[ats:2020-11-11 23:10:39 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:58,wirte:2 ms,all:60 ms, inputLen[10027008], outputLen[87182]
[ats:2020-11-11 23:10:39 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:59,wirte:2 ms,all:61 ms, inputLen[10027008], outputLen[85569]
[ats:2020-11-11 23:10:39 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:63,wirte:2 ms,all:65 ms, inputLen[10027008], outputLen[83921]
[ats:2020-11-11 23:10:39 @../src/media/Public/JpegSequencesRkMgr.cpp:FrameWriteFile#75][DEBUG] enc:61,wirte:2 ms,all:63 ms, inputLen[10027008], outputLen[82721]
这个里面,outputLen就是我mpp编码后输出的jpeg文件大小,q_factor我设置的90,然后第一帧输出是530K左右,这是对的,然后后面的第2帧,3帧开始就一直在递减了,直到稳定在80K左右大小的输出,然后编码出来的80K左右Jpeg图像质量就比较不理想了,颜色失真就比较严重了。
这个问题是调什么参数来解决呢?
from mpp.
因为你这里配置成motion jpeg的CBR 码控模式,会根据设置的比特率动态调整码率。设置成固定QP模式,则q_factor是会保持不变的
from mpp.
好的,用fix_qp可以了,谢谢!
from mpp.
Related Issues (20)
- mpp_log: can not found match soc name: radxa,radxa-cm3-io rockchip,rk3566 HOT 1
- Build mpp, and gets Segmentation Fault HOT 2
- rv1126使用rkmedia的vdec接口进行解码jpeg图片时段错误,解码h264/h265没有问题(但是有内存泄漏问题) HOT 8
- rv1126解码h264有内存泄漏 HOT 3
- build mpp,but test log show Rk3588 does not support HOT 1
- RK3566 H264解码性能较差,实测到到不了60fps HOT 13
- 请教下,测试RK3588 H264硬件编码出来的帧都是I帧,是什么原因呢? HOT 7
- 能否修改mpp目录以及mpp/legacy目录下的CMakeLists.txt,使得能否同时生成同名的动态库以及静态库? HOT 1
- 解码后的数据拷贝很慢 HOT 4
- void os_log_error(const char* tag, const char* msg, va_list list)会崩 HOT 3
- 解码 hevc 码流一直报错 PPS id out of range: 0 HOT 5
- jpeg decode stuck using test/mpi_dec_mt_test
- MPP can't be initialized on RK3568B2 HOT 4
- 如何绑定纹理指针,让MPP解码直接将数据赋值给纹理指针? HOT 2
- 最新包 aarch64崩溃问题 HOT 10
- RK3588在1080p下的最大编码帧率是多少? HOT 1
- Assistance Needed - NDA and SDK Access for Rockchip (rk3566/rk3588) HOT 2
- 1920*1080大小输入图像帧拷贝到mpp frame buffer占用CPU高 HOT 1
- H264最大的nal size限制无效 HOT 1
- mpp库报错
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mpp.