meantone / sunxi-tvin

GNU Lesser General Public License v2.1
10 stars 19 forks source link

Capture problem on moving objects #4

Open OpneMind opened 4 years ago

OpneMind commented 4 years ago

Hello When move my hand or other things video show line, such as: photo_2020-01-08_13-07-06 photo_2020-01-08_13-07-09

how to solve this problem and get smooth video?

thanks a lot

OpneMind commented 4 years ago

out.zip sample video

ebutera commented 4 years ago

It's because the video is interlaced, you have to deinterlace it in software (unless the hardware support deinterlacing) but don't expect to completely remove the problem.

OpneMind commented 4 years ago

It's because the video is interlaced, you have to deinterlace it in software (unless the hardware support deinterlacing) but don't expect to completely remove the problem.

I want use A20 as close circle camera, when deinterlace by ffmpeg (yadif) , occurs delay in video and play tow camera very slowly but quality enough good for my propose.

how to solve this problem? downgrade to kernel 3.3 can be useful ?

If A20 make interlaced video out why Allwinner design A20 with bad TV/Camera decoder !!!

thanks

ebutera commented 4 years ago

no, downgrading the kernel will not solve the problem. It's not because of a bad tv decoder, it's the analogue video technology that is interlaced so you can do nothing. Maybe the A20 is not powerful enough to do deinterlacing in software, or you have to play with ffmpeg options, try other deinterlacers...

OpneMind commented 4 years ago

no, downgrading the kernel will not solve the problem. It's not because of a bad tv decoder, it's the analogue video technology that is interlaced so you can do nothing. Maybe the A20 is not powerful enough to do deinterlacing in software, or you have to play with ffmpeg options, try other deinterlacers...

using ntsc/480p vs pal/576i can be useful?

ebutera commented 4 years ago

i didn't know about ntsc/480p, yes it should be better because it's progressive instead of interlaced.

OpneMind commented 4 years ago

i didn't know about ntsc/480p, yes it should be better because it's progressive instead of interlaced.

bsp_tvd.c

```

line 83: else if(interface==TVD_YPBPR_I)//ypbpr 480i/576i { switch(system) { case TVD_NTSC://480i REG_WR32(addr_base+0x0008,0x00594001); REG_WR32(addr_base+0x0018,0x00002080); REG_WR32(addr_base+0x0080,0x00500082); REG_WR32(addr_base+0x0084,0x00610022); break; case TVD_PAL://576i REG_WR32(addr_base+0x0008,0x10594101); REG_WR32(addr_base+0x0018,0x00002480); REG_WR32(addr_base+0x0080,0x00500087); REG_WR32(addr_base+0x0084,0x00c10026); break; } REG_WR32(addr_base+0x0504,0x00000000); REG_WR32(addr_base+0x052c,0xe0110000); REG_WR32(addr_base+0x0500,0x00020711); REG_WR32(addr_base+0x0000,0x00000321); } else if(interface==TVD_YPBPR_P)//ypbpr 480p/576p { switch(system) { case TVD_NTSC://480p REG_WR32(addr_base+0x0008,0x80594001); REG_WR32(addr_base+0x0034,0x20000000); REG_WR32(addr_base+0x0070,0x00002050); break; case TVD_PAL://576p not work REG_WR32(addr_base+0x0008,0x90594101); REG_WR32(addr_base+0x0034,0x20000000); REG_WR32(addr_base+0x0070,0x00002050); REG_WR32(addr_base+0x0080,0x00500087); REG_WR32(addr_base+0x0084,0x00c10026); break; } REG_WR32(addr_base+0x0504,0x00000000); REG_WR32(addr_base+0x052c,0xe0110000); REG_WR32(addr_base+0x0500,0x00020711);
REG_WR32(addr_base+0x0000,0x00000321); }