This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM368 encode 数据输出问题?

Other Parts Discussed in Thread: PCA9543A

我的bootargs

setenv bootargs dm365_imp.oper_mode=0 mem=48M console=ttyS0,115200n8 noinitrd rw ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs vpfe_capture.cont_bufsize=6291456 video=davincifb:osd0=720x480x16,4050K davinci_capture.device_type=2 vpfe_capture.interface=1;

我的内核启动信息里已经注册上了MT9P031:

EVM: switch to HD imager video input

mt9p031 1-005d: Detected a MT9P031 chip ID 1801

mt9p031 1-005d: mt9p031 1-005d decoder driver registered !!

vpfe-capture vpfe-capture: v4l2 sub device mt9p031 registered

我使用文件系统中的 /usr/share/ti/dvsdk-demos/encode

执行 ./encode -v t.264 -I 4 -y 3 -b 1000 -f -w

其中-v t.264表示采用H.264编码器, -I 4表示使用MT9P031采集图像, -y 3表示输出图像为720P, -b 1000表示比特率为1000kbps, -f -w 表示禁止预览和记录编码文件。


其结果为:

root@dm368-evm:/# ./encode -v t.264 -I 4 -y 3 -b 1000 -f -w

Encode demo started.

###### output_store ######

###### davinci_get_cur_encoder ######

###### vpbe_encoder_initialize ######

###### output is COMPONENT,outindex is 1 ######

###### vpbe_encoder_setoutput ######

###### dm365 = 1 ######

###### mode_info->std is 1 ######

###### mode is 480P-60 ######

###### 22VPBE Encoder initialized ######

###### vpbe_encoder_setoutput ######

###### dm365 = 1 ######

###### mode_info->std is 1 ######

###### mode is 480P-60 ######

###### davinci_enc_set_output : next davinci_enc_set_mode_platform ######

###### davinci_enc_set_mode_platform : next davinci_enc_priv_setmode ######

###### output_show ######

###### davinci_enc_get_output ######

###### davinci_get_cur_encoder ######

###### mode_store ######

###### davinci_enc_get_mode ######

###### davinci_get_cur_encoder ######

###### davinci_enc_set_mode ######

###### davinci_get_cur_encoder ######

###### dm365 = 1 ######

###### mode_info->std is 1 ######

###### mode is 576P-50 ######

###### davinci_enc_set_mode : next davinci_enc_set_mode ######

###### davinci_enc_set_mode_platform : next davinci_enc_priv_setmode ######

###### mode_show ######

###### davinci_enc_get_mode ######

###### davinci_get_cur_encoder ######

###### davinci_enc_get_mode ######

###### davinci_get_cur_encoder ######

###### davinci_enc_get_mode ######

###### davinci_get_cur_encoder ######

davinci_resizer davinci_resizer.2: RSZ_G_CONFIG:0:1:124

davinci_previewer davinci_previewer.2: ipipe_set_preview_config

davinci_previewer davinci_previewer.2: ipipe_set_preview_config

vpfe-capture vpfe-capture: IPIPE Chained

vpfe-capture vpfe-capture: Resizer present

dm365evm_enable_pca9543a

dm365evm_enable_pca9543a, status = -121

EVM: switch to HD imager video input

######vpfe_dev->current_subdev->is_camera.

-----Exposure time = 2f2############

v4l2_device_call_until_err sdinfo->grp_id : 4.

-----Exposure time = 2f2

vpfe-capture vpfe-capture: width = 1280, height = 720, bpp = 1

vpfe-capture vpfe-capture: adjusted width = 1280, height = 720, bpp = 1, bytesperline = 1280, sizeimage = 1382400

vpfe-capture vpfe-capture: width = 1280, height = 720, bpp = 1

vpfe-capture vpfe-capture: adjusted width = 1280, height = 720, bpp = 1, bytesperline = 1280, sizeimage = 1382400

ARM Load: 28% Video fps: 31 fps Video bit rate: 42 kbps Sound bit rate: 0 kbps Time: 08:00:01 Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: 1280x720 Sound Codec: N/A Sampling Freq: N/A 

 

ARM Load: 10% Video fps: 30 fps Video bit rate: 32 kbps Sound bit rate: 0 kbps Time: 08:00:02 Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: 1280x720 Sound Codec: N/A Sampling Freq: N/A 

 

ARM Load: 61% Video fps: 31 fps Video bit rate: 28 kbps Sound bit rate: 0 kbps Time: 08:00:03 Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: 1280x720 Sound Codec: N/A Sampling Freq: N/A 

 

ARM Load: 9% Video fps: 30 fps Video bit rate: 27 kbps Sound bit rate: 0 kbps Time: 08:00:04 Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: 1280x720 Sound Codec: N/A Sampling Freq: N/A 

 

ARM Load: 62% Video fps: 30 fps Video bit rate: 35 kbps Sound bit rate: 0 kbps Time: 08:00:06 Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: 1280x720 Sound Codec: N/A Sampling Freq: N/A 

 

ARM Load: 10% Video fps: 30 fps Video bit rate: 37 kbps Sound bit rate: 0 kbps Time: 08:00:07 Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: 1280x720 Sound Codec: N/A Sampling Freq: N/A 

 

ARM Load: 45% Video fps: 30 fps Video bit rate: 28 kbps Sound bit rate: 0 kbps Time: 08:00:08 Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: 1280x720 Sound Codec: N/A Sampling Freq: N/A 

 

ARM Load: 29% Video fps: 31 fps Video bit rate: 27 kbps Sound bit rate: 0 kbps Time: 08:00:09 Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: 1280x720 Sound Codec: N/A Sampling Freq: N/A 

 

ARM Load: 23% Video fps: 29 fps Video bit rate: 29 kbps Sound bit rate: 0 kbps Time: 08:00:10 Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: 1280x720 Sound Codec: N/A Sampling Freq: N/A 

 

ARM Load: 51% Video fps: 31 fps Video bit rate: 43 kbps Sound bit rate: 0 kbps Time: 08:00:12 Demo: Encode Display: 720P 60Hz Video Codec: H.264 HP Resolution: 1280x720 Sound Codec: N/A Sampling Freq: N/A 


通过上面的信息,我可以看到是有视频数据输出的。

我的问题是,demo里的encode 捕获到的视频数据,是什么格式? 捕获的数据存放在哪里?

  • JUKE CHEN 说:
    demo里的encode 捕获到的视频数据,是什么格式?

    编码前的输入是YUV420。采集到的应该是RAW,经过ISP处理后,resizer输出YUV420.

    JUKE CHEN 说:
    捕获的数据存放在哪里?

    建议你在代码里面加打印跟踪。

  • Chris Meng

    ./encode -v t.264 -I 4 -y 3 -b 1000 -f -w    

    f作用为禁用编码文件的记录    我将-f去掉就可以了. 捕获的数据保存在了 t.264里。


    我现在遇到新的问题,可能因为我用的是  /usr /ti/dvsdk-demos/encode  的encode

    捕获视频的时候总是失帧,摄像头移动会导致失帧。且都是黑白的模糊的, 无法拍摄到有色彩的。

    这个问题该如何解决呢? 我使用源码dvsdk-demos_4_02_00_01 编译生成encode的话,需要更改什么地方呢? 

    我想要实现的分辨率 1280x720  30fps ,还不错,至少实现了。

  • Juke,

    你可以先确认是否是编码前的YUV数据就不是彩色的。

    如果是编码前数据的问题,可能会是VPFE配置的问题。但是DVSDK里面9P031的驱动我不是很熟悉,我没有看到过dvsdk软件支持9P031的效果。注意,DVSDK里面没有2A。所以之前我就建议你使用IPNC RDK的软件。

  • Chris Meng

    我看了一下,我们的硬件原理图。 将MT9P031的DOUT0-DOUT11 这12bit数据分别接线方式为

    DOUT0--DOUT7接到DM368的COUT0--COUT7

    DOUT8--DOUT11接到DM368的YIN0--YIN3

    根据上面的连接方式我可以看到。 COUT0--COUT7 不是ISIF接口啊,而且是输出。 我看了很多参考资料,应该连接的为 CIN0--CIN7才对的。

    我又看了下DM368的手册显示:

    CIN0引脚信息

    Standard ISIF Analog Front End (AFE): raw[0]
    YCC 16-bit: time multiplexed between chroma:
    CB/CR[00]
    YCC 08-bit (which allows for 2 simultaneous decoder
    inputs), it is time multiplexed between luma and
    chroma of the upper channel. Y/CB/CR[00]


    明显是我的应该为ISIF 16bit传输 及 YCC16bit  那么CIN 应为chroma 色彩浓度多路复用。但我们连接的却是COUT。

    也许我的捕获的数据没有色彩可能与这有关。

    我不确定,是不是我们硬件又设计出错了。


    还有我印象中记得,好像COUT也可以代替CIN的。是需要怎么设置吗?请为我解答一下疑惑。

  • Juke,

    下面的信息可以在vpbe user guide里面找到,但看起来YC输出要作为CCDC的输入是YC一起的。

    Video Interface I/O Control (VIOCTL)

    0 YCDIR YOUT/COUT I/O Direction. Allows use of YOUT/COUT pins as data input pin for CCDC
    0 Output
    1 Input

  •  

    经过我们硬件工程师的确认。是给我的原理图出错了,不是一个版本的。但是给的板卡是对的。

    我的板卡引脚连接没有问题。DOUT0--DOUT7接到DM368CIN0--CIN7 


    那现在我又疑惑,我的捕获视频的时候总是失帧,摄像头移动会导致失帧。且都是黑白的模糊的, 无法拍摄到有色彩的。

    这些问题,是什么造成的呢?该如何处理呢? 


  • Juke,

    问题可能出现在ISIF输出的RAW上,或者是IPIPE处理后的YUV上。

    你能否抓一张ISIF输出的RAW,发上来让我看看是否有问题。最好镜头里面能有些有色彩的东西,你提供RAW的同时,也请提供一张正常情况下的照片做对比。

  •  ,

    我解决了部分问题,

    首先是图像模糊的问题,和失帧问题。

    问题解决:

    是因为我的摄像头是需要单片机板来控制调焦的。我们硬件工程师,没有给我单片机板。。。 

    现在可以获得视频图像

    但是视频图像的颜色不太对。这个问题不知道需要改什么地方?是需要改MT9P031.c 里面的RGB颜色增益吗?

    请给点建议。

    我的硬件环境为:

    现在我急需解决的问题是:

    如果我的执行为:./encode -v t.264 -I 4 -y 3 -b 1000 -w   

    -b 1000表示比特率为1000kbps

    视频比特率降低,图像不清晰。 会出现CPU占用率100%,偶尔会出现。

    但如果我执行  ./encode -v t.264 -I 4 -y 3  -w  将-b去掉

    视频比特率和图像清晰度提高。

    但是会连续出现CPU占用率100%的现象。 


    我试过 -b 后面的视频比特率 比如改为 -b 6000  但是出现的比特率还是和 -b 1000 类似


    这个问题该如何解决呢? 


    最后一个问题:

    你让我抓取RAW原始数据,我不知道该如何抓取。。。

    可否提供一个抓取方法的链接呢?


  • 请给我一些建议吧, 我试了不少方法。还是没有奏效的。

  • 我使用top检测到 

    Mem: 27788K used, 16436K free, 0K shrd, 1472K buff, 10624K cached
    CPU: 15% usr 29% sys 0% nic 54% idle 0% io 0% irq 0% sirq
    Load average: 1.00 0.97 0.65 1/52 10655
    PID PPID USER STAT VSZ %MEM %CPU COMMAND
    9777 1199 root S < 62916 142% 11% ./encode_demo -v t.264 -I 4 -y 3 -w -b
    469 2 root SW 0 0% 7% [flush-ubifs_0_0]
    9873 1199 root R 3072 7% 1% top
    933 1 root S 2884 7% 1% /bin/sh ./state.sh
    973 1 root S 11504 26% 0% /zslf/thttpd-php/sbin/thttpd -C /zslf/
    1199 1127 root S 3072 7% 0% -sh
    990 1 root S 3056 7% 0% ./srv 8000
    892 1 root S 2944 7% 0% /sbin/syslogd -n -C64 -m 20
    894 1 root S 2880 7% 0% /sbin/klogd -n
    992 1 root S 2880 7% 0% /bin/sh /zslf/rm_pic.sh
    885 1 root S 2880 7% 0% /usr/sbin/telnetd
    6549 992 root S 2748 6% 0% sleep 600
    10655 933 root S 2748 6% 0% sleep 2
    442 1 root S 2476 6% 0% /usr/bin/psplash
    1127 1 root S 2460 6% 0% login -- root
    879 1 messageb S 2380 5% 0% /usr/bin/dbus-daemon --system
    1027 1 root S 2376 5% 0% ./get_ntptime
    997 991 root S 2328 5% 0% ./pio_led
    991 1 root S 2328 5% 0% ./pio_led