rk3588 linux上camera效果问题

排查效果不佳问题的步骤

复现步骤:
在Debian下使用命令 gst-launch-1.0 v4l2src device=/dev/video22 ! video/x-raw,format=NV12,width=640,height=480, framerate=30/1 ! waylandsink 打开后摄的 mainpath,效果偏绿,光线较暗

排查过程:

  1. 查看3a是否是否运行
    camera出流时候cat /proc/rkisp* 确认isp图像模块有在工作;
    3a没有工作时

root@linaro-alip:/# cat /proc/rkisp*
rkisp0-vir0 Version:v02.00.00
clk_isp_core 702000000
aclk_isp   750000000
hclk_isp   198000000
clk_isp_core_marvin 702000000
clk_isp_core_vicap 702000000
Interrupt  Cnt:2441 ErrCnt:0
Input      rkcif-mipi-lvds Format:SBGGR10_1X10 Size:4224x3136@30fps Offset(0,0)
Isp online frame:1219 working time:32ms v-blank:740us
Output     rkisp_mainpath Format:NV12 Size:640x480 Dcrop(0,0|4224x3136) (frame:1219 rate:33ms delay:32ms frameloss:305)
CMSK       OFF(0x0)
DPCC0      OFF(0x40000004)
DPCC1      OFF(0x4)
DPCC2      OFF(0x4)
BLS        OFF(0x0)
SDG        OFF(0x6117)
LSC        OFF(0x0)
AWBGAIN    OFF(0x6117) (gain: 0x01000100, 0x01000100)
DEBAYER    ON(0xf000111)
CCM        OFF(0x0)
GAMMA_OUT  OFF(0x0)
CPROC      OFF(0x0)
IE         OFF(0x0) (effect: BLACKWHITE)
HDRDRC     OFF(0x0)
HDRMGE     OFF(0x0)
BAYNR      OFF(0x100)
BAY3D      OFF(0x0)
YNR        OFF(0x4801000)
CNR        OFF(0x40000002)
SHARP      OFF(0x0)
GIC        OFF(0x0)
DHAZ       OFF(0x110)
3DLUT      OFF(0x0)
LDCH       OFF(0x0)
CSM        FULL(0x6117), y_offs:0x0 c_offs:0x80
           coeff Y:0x26 0x4b 0xf CB:0x1ea 0x1d6 0x40 CR:0x40 0x1ca 0x1f6
CAC        OFF(0x0)
GAIN       OFF(0x0)
RAWAF      OFF(0xb6)
RAWAWB     OFF(0x0)
RAWAE0     OFF(0x0)
RAWAE1     OFF(0x0)
RAWAE2     OFF(0x0)
RAWAE3     OFF(0x0)
RAWHIST0   OFF(0x80000000)
RAWHIST1   OFF(0xa0000000)
RAWHIST2   OFF(0xa0000000)
RAWHIST3   OFF(0xa0000000)
BigMode    OFF(0x18)
DEBUG1     space full status group (0x999fffff)
           ibuf2:0x9 ibuf1:0x9 ibuf0:0x9 mpfbc_infifo:0xf
           r1fifo:0xf r0fifo:0xf outfifo:0xf lafifo:0xf
DEBUG2     0x9bc09b0
           bay3d_fifo_full iir:0 cur:0
           module outform vertical counter:2492, out frame counter:0
           isp output line counter:2480
DEBUG3     isp pipeline group (0xf7f55ff5)
           mge(1 1) rawnr(1 1) bay3d(0 1) tmo(1 1)
           gic(1 1) dbr(1 1) debayer(0 1) dhaz(0 1)
           lut3d(0 1) ldch(0 1) ynr(1 1) shp(1 1)
           cgc(1 1) cac(1 1) isp_out(0 1) isp_in(0 1)
Monitor    OFF Cnt:0

Debug      mode:0x0
rkisp1-vir0 Version:v02.00.00
clk_isp_core 300000000
aclk_isp   750000000
hclk_isp   198000000
clk_isp_core_marvin 300000000
clk_isp_core_vicap 300000000
Interrupt  Cnt:0 ErrCnt:0
Input      (null) Format:SBGGR10_1X10 Size:800x600@5fps Offset(0,0)
root@linaro-alip:/#

3a开启后


root@RK3588:/# cat /proc/rkisp*
rkisp0-vir0 Version:v02.00.00
clk_isp_core 702000000
aclk_isp   750000000
hclk_isp   198000000
clk_isp_core_marvin 702000000
clk_isp_core_vicap 702000000
Interrupt  Cnt:68780 ErrCnt:0
Input      rkcif-mipi-lvds Format:SBGGR10_1X10 Size:4224x3136@30fps Offset(0,0)
Isp Read   mode:frame1 (frame:34389 rate:40ms idle time:19ms frameloss:0) cnt(total:34389 X1:34389 X2:-1 X3:-1)
           hw link:1 idle:1 vir(mode:0 index:0)
Output     rkisp_mainpath Format:NV12 Size:640x480 Dcrop(0,0|4224x3136) (frame:34389 rate:39ms delay:55ms frameloss:2)
CMSK       OFF(0x0)
DPCC0      ON(0x5)
DPCC1      ON(0x5)
DPCC2      ON(0x5)
BLS        ON(0x1)
SDG        OFF(0x6197)
LSC        ON(0x5)
AWBGAIN    ON(0x6197) (gain: 0x01110111, 0x02490182)
DEBAYER    ON(0x7000111)
CCM        ON(0x80000001)
GAMMA_OUT  ON(0x80000005)
CPROC      ON(0xf)
IE         OFF(0x0) (effect: BLACKWHITE)
HDRDRC     OFF(0x0)
HDRMGE     OFF(0x0)
BAYNR      ON(0x80000001)
BAY3D      ON(0x20c920c9)
YNR        ON(0xc4001001)
CNR        ON(0xa0000001)
SHARP      ON(0x40000001)
GIC        OFF(0x0)
DHAZ       ON(0x84111011)
3DLUT      OFF(0x0)
LDCH       OFF(0x0)
CSM        FULL(0x6197), y_offs:0x0 c_offs:0x80
           coeff Y:0x26 0x4b 0xf CB:0x1ea 0x1d6 0x40 CR:0x40 0x1ca 0x1f6
CAC        OFF(0x0)
GAIN       ON(0x80010111)
RAWAF      ON(0x107f)
RAWAWB     ON(0x774688f)
RAWAE0     OFF(0x40000002)
RAWAE1     OFF(0x400000f4)
RAWAE2     ON(0x400000f5)
RAWAE3     ON(0x40000005)
RAWHIST0   OFF(0x80000500)
RAWHIST1   OFF(0xa0000500)
RAWHIST2   ON(0x60000501)
RAWHIST3   ON(0x60000501)
BigMode    ON(0x30000018)
DEBUG1     space full status group (0x999fffff)
           ibuf2:0x9 ibuf1:0x9 ibuf0:0x9 mpfbc_infifo:0xf
           r1fifo:0xf r0fifo:0xf outfifo:0xf lafifo:0xf
DEBUG2     0x0
           bay3d_fifo_full iir:0 cur:0
           module outform vertical counter:0, out frame counter:0
           isp output line counter:0
DEBUG3     isp pipeline group (0x55555555)
           mge(0 1) rawnr(0 1) bay3d(0 1) tmo(0 1)
           gic(0 1) dbr(0 1) debayer(0 1) dhaz(0 1)
           lut3d(0 1) ldch(0 1) ynr(0 1) shp(0 1)
           cgc(0 1) cac(0 1) isp_out(0 1) isp_in(0 1)
Monitor    OFF Cnt:0

Debug      mode:0x0
rkisp1-vir0 Version:v02.00.00
clk_isp_core 300000000
aclk_isp   750000000
hclk_isp   198000000
clk_isp_core_marvin 300000000
clk_isp_core_vicap 300000000
Interrupt  Cnt:0 ErrCnt:0
Input      (null) Format:SBGGR10_1X10 Size:800x600@5fps Offset(0,0)
root@RK3588:/#


  1. 如没有3a模块开启,需开启rkaiq_3A_server
    在终端下查看ps -ef是否有rkaiq_3A_server 进程,一般的在Debian下/etc/init.d目录下会有rkaiq_3A.sh的脚本在开机时启动rkaiq_3A_server ,在buildroot下也会有类似的脚本camera_rkaiq_test.sh

#!/bin/bash
### BEGIN INIT INFO
# Provides:          rkaiq_3a
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop:
# Short-Description:
# Description:       Setup rkaiq 3a daemon
### END INIT INFO

start_3A()
{
    /usr/bin/rkaiq_3A_server 2>&1 | logger -t rkaiq &
}

stop_3A()
{
    killall rkaiq_3A_server || true
}


case "$1" in
  start)
    start_3A
    ;;
  stop)
    stop_3A
    ;;
  reload)
    stop_3A
    start_3A
    ;;
  *)
    echo "Usage: $0 {start|stop}"
    exit 1
    ;;
esac
exit 0


如没有开启可手动启动,并查看kernel log或查看/var/log/syslog,如果没有开启,可能是rkaiq_3A_server在开启过程中出现段错误,可参考rk3588 rkaiq_3A_server 无法解析json文件记录
段错误有可能有几个原因:
1.rkaiq_3A_server编译有问题或版本有问题
运行strings ./usr/lib/librkaiq.so |grep "AIQ v"可以查看
>

2.效果参数json文件命名问题导致解析不到对应的json文件,需要和dts中的名词对应
3.json文件版本问题
查看356x是否有调试过类似的sensor,对应的是isp21
3588对应的是isp3x,如果是将json里面scene_isp21 改为scene_isp30,然后用isp2x_tuner选择3588配置以及对于rkaiq版本,导入修改scens的json重新生成试试

### RKAIQ 3A Server Configuration and Usage RKAIQ (Rockchip AI Quality) 是 Rockchip 提供的一套用于图像处理的算法库,主要用于自动曝光(AE),自动白平衡(AWB),以及自动对焦(AF),即所谓的 "3A" 功能。这些功能对于提升摄像头成像质量至关重要。 #### 配置RKAIQ 3A服务器 为了配置和使用RKAIQ 3A服务,在实际应用中通常需要完成以下几个方面的工作: 1. **初始化** 初始化过程涉及到加载必要的参数文件并启动相应的线程来处理来自硬件抽象层(HAL)的数据流[^1]。 ```cpp rk_aiq_uapi_sys_init_t init_param; memset(&init_param, 0, sizeof(init_param)); ret = rk_aiq_user_api_sys_init(&sys_conf); ``` 2. **设置回调** 设置回调函数以便接收由 HAL 层传递过来的信息,并据此调整 AE/AWB/AF 参数[^2]。 ```cpp static void on_result(rk_aiq_working_mode_t mode, rk_aiq_ae_pre_res_t* pre_res, rk_aiq_ae_res_t* res) { // 处理AE结果... } ``` 3. **创建和管理会话** 创建一个新的会话实例并与之交互以实现具体的控制逻辑。这一步骤可能涉及调用 `processCaptureRequest()` 函数向 HAL 发送命令。 ```cpp int session_id = create_session(); send_command_to_hal(session_id, command_data); ``` 4. **监控状态变化** 实现机制持续监测当前工作模式下的性能指标,必要时动态调节各项参数以优化最终输出效果。 5. **释放资源** 当不再需要使用该服务时,记得清理所有分配给它的内存和其他系统资源,确保不会造成泄漏或其他潜在问题。 ```cpp rk_aiq_user_api_sys_exit(sys_conf.sys_handle); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

autho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值