搜索
bottom↓
回复: 44

一个视频监控系统是如何诞生的?(幻想阶段)

[复制链接]

出0入0汤圆

发表于 2011-10-31 22:53:12 | 显示全部楼层 |阅读模式

(原文件名:远端监控.JPG)
功能要求:
1.A接口支持USB、LAN方式
2.空口部分我想采用2.4G模块,工作频率高点,好像传输带宽可以做的宽一点。是这样吧?我想实时传送和显示视频信号。
3.RF模块支持跳频,我了解一下是怎么一回事。
4.通过PC端的软件,控制视频数据上传或者SD卡存储,视频数据LCD显示或者PC端显示。

我的疑问:
1.我想选个百万像素级的摄像头,实现实时传送和显示视频信息。PC端用的1.6GHz单核的上网本,这个吃得消吗?
2.远端数据有本地存储和上传两个选择。本地存储想直接转成某种通用格式的视频文件或者JPEG文件保存。如果上传则需要压缩处理。
  这两块功能看起来要用两块芯片做。可不可以做到一块芯片里去?
3.接口卡要实现LAN功能,至少需要哪些器件或者器件组合?
4.有哪些常见的器件可以放到里面来?到时候出问题了,好查找。

学习目的:
1.LAN、USB通信机理
2.LCD显示功能、PC端视频信息处理
3.各器件单元之间的接口协议(如SPI、I2C等)
4.跳频
5.视频压缩,如何生成JPEG文件、视频文件?
6.制作PCB板(先用网络上现成的模块,等实现后,再学着自己做板子)

我的技能:
1.可以用VC编写一些简单的界面程序、简单的串口和网络程序
2.曾经写过一个小程序,实现PC----串口-----单片机------LCD结构的字符显示程序
3.能够编写一些简单的VHDL代码,实现简单的编译码、数据选择等功能

暂不考虑它的经济性,实现方式越底层越好。尽量选用不同类型的器件。我的出发点就是想多了解一些底层的具体实现过程:

论坛上面会有一些这方面的案例,我会尽量去找。大家看看我这个情况,要想实现这样的一个DD,哪些方面需要注意?尽管上文已提到不考虑其经济性,但是如果您提供的意见能够令它看起来更靠谱一点的话,本人将感激不尽。

我会尽量把碰到的问题和解决办法发上来。但愿别夭折了。南无-阿弥陀佛!

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2011-11-1 15:36:07 | 显示全部楼层
点击次数已达70多了,连个mark都沒有。对大家所表现出來的团结协作精神,本人表示由衷的敬佩。:)

今天在论坛翻了大半天,发现ov7670用的人比较多,30万像素(640*480)这个像素等级好像够我用了,就先定这个型号吧。如果按30万像素算,20帧/s,那么码率将达到640*380*8*20=49152000b/s,這麼高的碼率,看来得DSP出马了。数据压缩可能牵涉到帧帧之间的关系,这样的话就需要进行缓存了,所以我可能需要配置一块RAM。还是先研究一下如何获取OV的视频信息以及怎么压缩吧,百度上搜了一下,发现了MPEG4,好像压缩比可以做的很高,而且可以调节。要不试试?

今天神8上去了,先恭喜一下。明早起來看對接直播。

出0入0汤圆

发表于 2011-11-1 15:38:47 | 显示全部楼层
哈哈,这个东西和我做的有点相似哦,可以参考下这里:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4895952&bbs_page_no=1&search_mode=3&search_text=kelp&bbs_id=9999

出0入0汤圆

 楼主| 发表于 2011-11-1 15:59:03 | 显示全部楼层
好,多谢了。先睡一觉,晚上回来再拜读。

出0入0汤圆

发表于 2011-11-2 00:48:00 | 显示全部楼层
我的疑问:
1.我想选个百万像素级的摄像头,实现实时传送和显示视频信息。PC端用的1.6GHz单核的上网本,这个吃得消吗?
2.远端数据有本地存储和上传两个选择。本地存储想直接转成某种通用格式的视频文件或者JPEG文件保存。如果上传则需要压缩处理。
  这两块功能看起来要用两块芯片做。可不可以做到一块芯片里去?
3.接口卡要实现LAN功能,至少需要哪些器件或者器件组合?
4.有哪些常见的器件可以放到里面来?到时候出问题了,好查找。

回答:
1-----百万像素,一般720P,压缩后如果要达到监控级别画质,MPEG4需要4Mbps,H.264需要2Mbps,PC端解码一路无任何压力
2-----建议采用专用asic,JPEG压缩出来的百万,流量太大,本地存储难度很大,asic可以选用DM355,GM8126, Hi3512,MG3500,这四个芯片均可产生双码流以及多码流,全尺寸码流一般为2M~4M,适合网络上传,小尺寸码流可以存储本地SD Card。
3-----LAN部分的话,如果选用DM355, Hi3512, 都自带网络链路层,只需添加一个网络phy即可,GM8126集成度更高,PHY也集成,网络PHY一般选用Davicom9000, RTL8039....
4----同上

上叙方案,芯片厂家已经提供接近80%的完整度,稍微修改即可完成项目,不过工作依然巨大

出0入0汤圆

发表于 2011-11-2 01:17:05 | 显示全部楼层
上面都说的百万像素,其实上面方案做720x576的产品,可能更多

出0入0汤圆

 楼主| 发表于 2011-11-2 19:25:28 | 显示全部楼层
http://www.docin.com/p-275713251.html
http://baike.baidu.com/view/25047.htm

嚯嚯,这两处的文章写的不错。先了解个大概吧。今天去图书馆找专门讲MPEG4的书,任是没找到。我勒个去~~ 还是回万能的urdev找找吧。

几个关键词:
第二代编码,profiles and levels,AVO(Audio Visual Object) VOP(Video Object Plane),I-VOP,P-VOP,运动估计和运动补偿(关键的关键)、菱形搜索法和钻石搜索法   

先列这些,明天继续啃,看起来不会很难。帖子看起来有点无聊,版主在吗?要不帮我置底?

出0入0汤圆

发表于 2011-11-3 00:33:22 | 显示全部楼层
MPEG4设计的初衷是好的,把背景和前景分离,背景采用纹理压缩(如小波变换),前景采用混合编码(比如dct+游程+熵编码),因此产生了VOP的概念,但是实际应用中,这些理论并不成熟适用,所以所谓mpeg4最后被使用的一般是所谓的最低等级的两个tool,一个是SP,一个ASP,即simple profile and advanced simple profile,在这两种方式中,VOP不是一个具有轮廓的形体,而是矩形,简单的矩形,即整个画面尺寸,后来实际过程中发现还是混合编码比形状编码实用,一段时间后iso指定了mpeg4的一个补充协议,part 10, 即H.264,将混合编码提高了一个台阶

算法部分其实没什么好研究,要研究是一辈子,稍微有些概念就好,运动估计是关键,必须和运动补偿,亚像素,rate-distortion技术混合使用,其中最简单的是 full-search, diamond search,复杂一点的PMVFAST,都需要和亚像素结合才能发挥优势,rate-distortion技术比较难,属于编码系统中难度最高,发挥空间最大部分

出0入0汤圆

发表于 2011-11-3 00:38:18 | 显示全部楼层
diamond search,我05年有写过一个文章,你看下
http://blog.csdn.net/chinacodec/article/details/3855048

出0入0汤圆

发表于 2011-11-7 15:18:01 | 显示全部楼层
1.我想選個百萬像素級的攝像頭,實現實時傳送和顯示視頻信息。PC端用的1.6GHz單核的上網本,這個吃得消嗎?
  PC 有 1GHz 就可以了
2.遠端數據有本地存儲和上傳兩個選擇。本地存儲想直接轉成某種通用格式的視頻文件或者JPEG文件保存。如果上傳則需要壓縮處理。
  這兩塊功能看起來要用兩塊芯片做。可不可以做到一塊芯片裡去?
  STM32 是一個好選擇, 可以達到你要的功能
3.接口卡要實現LAN功能,至少需要哪些器件或者器件組合?
  LAN INTERFACE, 有 Realtek, Microchip 可以選擇使用

建議你在 STM32 裏找資料, 都能找到你要的

出0入0汤圆

发表于 2011-11-8 19:58:06 | 显示全部楼层
mark!!!支持楼主!!!!

出0入0汤圆

发表于 2011-11-8 20:45:35 | 显示全部楼层
关注

出0入0汤圆

 楼主| 发表于 2011-11-11 17:49:56 | 显示全部楼层
谢谢各位朋友的顶帖,这些天忙别的事去了。

在此之前,一直没想着弄清楚MPEG4\H.264等之间的区别,今天偶然间找到了这个MPEG4/H.264扫盲帖,很不错。尽管只讲了个大概。

摘录部分内容:

MPEG系列的标准归属于ISO/IEC,但另一方面以制订国际通讯标准为主的机构:ITU-T,在完成H.263(针对视频会议之用的串流视频标准)后展开了更先进的H.264制订,且新制订是与ISO/IEC机构连手合作,由两机构共同成立一个名为JVT(Joint Video Team)的联合工作小组,以MPEG-4技术为基础进行更适于视频会议(Video Conference)运用的衍生发展,也因为是联合制订,因此在ITU-T方面称为H.264,在ISO/IEC的MPEG方面就称为MPEG-4 Part 10(第10部分,也叫ISO/IEC 14496-10),MPEG-4 Part 10的另一个代称是MPEG-4 AVC(Advanced Video Coding,先进视频编码),多个名称其实是一个意思,即H.264=MPEG-4 Part 10=ISO/IEC 14496-10=MPEG-4 AVC,不过以下本文一律以H.264表述,一方面以H.264叫法最原始也最正宗,另一方面书写上也最简单。

全文见:http://blog.csdn.net/lishuqian/article/details/1312407

百度上搜到不少用API实现的范例,要不先用API试试。等明白了大概的过程,再去仔细研究源码。

出0入0汤圆

发表于 2011-11-11 18:39:06 | 显示全部楼层
《数字电视技术》这本书讲的就是各种编码,视频编码、音频编码。。。。

出0入0汤圆

 楼主| 发表于 2011-11-11 19:54:06 | 显示全部楼层
刚看了目录,看起来很全,不知道讲的深不深。改天借来看看。谢谢!!!2011-11-11,为纪念这个特别的日子,我提议大家晚上脱光睡(注意:盖好被子、关好窗户)。

出0入0汤圆

发表于 2011-11-11 20:23:01 | 显示全部楼层
支持个。对2.4G传视频有兴趣,做好这个都不简单了

出0入0汤圆

 楼主| 发表于 2011-11-17 21:43:53 | 显示全部楼层
谢谢crazy.diamond和jame72的认真答复。奇怪的是上次回帖,我怎么没看见你们的留言。 crazy.diamond说的对,要研究算法的话,一个很费时间,一个不一定有必要。如果能够满足要求的话,就暂时不深究。将来如果存在性能瓶颈的话,再来研究优化。我稀饭james72的繁体字,我也一直在用o。

出0入0汤圆

 楼主| 发表于 2011-11-17 22:15:17 | 显示全部楼层
这几天闷头查资料,各位的建议我会酌情予以采纳,并调整。 现在来说说这些天发现的一些有意思或者有用的东西。

1.YUV概念的由来,和RGB的关系
这个在百度百科上说的比较清楚,可以参考http://baike.baidu.com/view/189685.htm。我在想既然YUV的引入一方面是为了压缩数据量,另一方面Y分量保存了图像的明亮度信息。那么如果仅仅保留Y分量,我是不是可以写个软件把彩色图像变换成黑白片。于是寻思着怎样把BMP文件变黑白,无意中给我找到这篇介绍BMP文件格式的好文章。文章写的很详细,讲得很明白。作者应该值得表扬一下。http://www.cnblogs.com/Jason_Yao/archive/2009/12/02/1615295.html

2.除此之外今天还下载了个开源的xvid编解码器版本是1.1.2,解开后发现win32平台下已经编译好了,有个xvid_enraw.exe编码程序。于是试着找个yuv测试流文件试试,看看效果好不好。我找啊找、找啊找,终于让我找到了。下面给出链接地址,需要的朋友自行下载:ftp://ftp.tnt.uni-hannover.de/pub/svc/testsequences/

3.我用xvid_enraw.exe对下来的YUV进行编码,源文件大概20M左右,压缩后2M左右,但是出来的效果很差,在下一回复给出全过程。若有不正确的地方,了解情况的朋友,请指正。

出0入0汤圆

发表于 2011-11-17 22:55:41 | 显示全部楼层
前段时间考虑过这么个方案:CCD+视频解码&编码IC+32位MCU(带以太网) ,另外本地存储SD卡是不是太小了要用硬盘吧,gprs定时或按要求回传某一帧图像。

出0入0汤圆

 楼主| 发表于 2011-11-17 23:01:54 | 显示全部楼层
1.帮助和执行编码过程
D:\xvidcore-1.1.2\build\win32\bin>xvid_encraw -help
xvid_encraw - raw mpeg4 bitstream encoder written by Christoph Lampert 2002-2003

Usage : xvid_stat [OPTIONS]

Input options:
-i      string : input filename (default=stdin)
-type   integer: input data type (yuv=0, pgm=1, avi/avs=2)
-w      integer: frame width ([1.2048])
-h      integer: frame height ([1.2048])
-frames integer: number of frames to encode

Output options:
-dump    : save decoder output
-save    : save an Elementary Stream file per frame
-o string: save an Elementary Stream for the complete sequence

BFrames options:
-max_bframes   integer: max bframes (default=0)
-bquant_ratio  integer: bframe quantizer ratio (default=150)
-bquant_offset integer: bframe quantizer offset (default=100)

Rate control options:
-framerate float               : target framerate (>0 | default=25.0)
-bitrate   integer             : target bitrate
-single                        : single pass mode
-pass1     filename            : twopass mode (first pass)
-pass2     filename            : twopass mode (2nd pass)
-zq starting_frame float       : bitrate zone; quant
-zw starting_frame float       : bitrate zone; weight
-max_key_interval integer      : maximum keyframe interval

Other options
-noasm           : do not use assembly optmized code
-turbo           : use turbo presets for higher encoding speed
-quality integer : quality ([0..6])
-vhqmode integer : level of Rate-Distortion optimizations ([0..4]) (default=0)
-bvhq            : use Rate-Distortion optimizations for B-frames too
-qpel            : use quarter pixel ME
-gmc             : use global motion compensation
-qtype   integer : quantization type (H263:0, MPEG4:1) (default=0)
-qmatrix filename: use custom MPEG4 quantization matrix
-interlaced      : use interlaced encoding (this is NOT a deinterlacer!)
-packed          : packed mode
-closed_gop      : closed GOP mode
-grey            : grey scale coding (chroma is discarded)
-lumimasking     : use lumimasking algorithm
-stats           : print stats about encoded frames
-debug           : activates xvidcore internal debugging output
-vop_debug       : print some info directly into encoded frames
-help            : prints this help message

NB: You can define 64 zones repeating the -z[qw] option as many times as needed.


D:\xvidcore-1.1.2\build\win32\bin>xvid_encraw -i CITY_352x288_15_orig_01.yuv -w 352 -h 288 -type 0 -
o CITY_352x288_15_orig_01.m4v
xvid_encraw - raw mpeg4 bitstream encoder written by Christoph Lampert 2002-2003

    0: key=2, time=     31, len=   38881 | type=I, quant=  2, len=   38881
    1: key=0, time=     46, len=   18065 | type=P, quant=  2, len=   18065
    2: key=0, time=     31, len=   18580 | type=P, quant=  2, len=   18580
    3: key=0, time=     47, len=   19062 | type=P, quant=  2, len=   19062
...........
  148: key=0, time=     47, len=   18616 | type=P, quant=  2, len=   18616
  149: key=0, time=     32, len=   15418 | type=P, quant=  2, len=   15418
   -1: key=0, time=      0, len=      -5
Tot: enctime(ms) =6455.00,               length(bytes) = 2539026
Avg: enctime(ms) =  43.03, fps =  23.24, length(bytes) =   16926

//帮助里的不少选项还不知道啥意思。感觉自己在瞎搞。另外,如果不指定-w -h选项,执行时会报类似“文件头中找不到像素信息”提示信息,并退出程序。奇怪!

2.前后图像对比。
  编码前的yuv文件,我用网上下的YUVViwer软件播放,编码后用暴风影音播放。结果看起来很糟糕。暴风截不了屏所以不能贴出来了。

3.YUVViewerPlus   http://download.csdn.net/detail/vbLittleBoy/3038845  先设置好分辨率再打开文件,不然就花屏了。
  xvidcore-1.1.2: 到处都有。

有时间和兴趣的朋友,可以琢磨琢磨。

出0入0汤圆

 楼主| 发表于 2011-11-17 23:06:32 | 显示全部楼层
远端的SD卡存储,确实不靠谱。

出0入0汤圆

发表于 2011-11-17 23:35:00 | 显示全部楼层
回头再好好看,睡了

出0入0汤圆

发表于 2011-11-18 00:15:24 | 显示全部楼层
回复【16楼】hzzini
谢谢crazy.diamond和jame72的认真答复。奇怪的是上次回帖,我怎么没看见你们的留言。 crazy.diamond说的对,要研究算法的话,一个很费时间,一个不一定有必要。如果能够满足要求的话,就暂时不深究。将来如果存在性能瓶颈的话,再来研究优化。我稀饭james72的繁体字,我也一直在用o。
-----------------------------------------------------------------------

我们都是刚刚被批准加入组织

出0入0汤圆

发表于 2011-11-18 00:18:24 | 显示全部楼层
回复【17楼】hzzini
这几天闷头查资料,各位的建议我会酌情予以采纳,并调整。 现在来说说这些天发现的一些有意思或者有用的东西。
1.yuv概念的由来,和rgb的关系
这个在百度百科上说的比较清楚,可以参考http://baike.baidu.com/view/189685.htm。我在想既然yuv的引入一方面是为了压缩数据量,另一方面y分量保存了图像的明亮度信息。那么如果仅仅保留y分量,我是不是可以写个软件把彩色图像变换成黑白片。于是寻思着怎样把bmp文件变黑白,无意中给我找到这篇介绍bmp文件格式的好文章。文章写的很详细,讲得很明白。作者应该值得表扬一下。http://www.cnblogs.com/jason_yao/archive/2009/12/02/1615295.html
2.除此之外今天还下载了个开源的xvid编解码器版本是1.1.2,解开后发现win32平台下已经编译好了,有个xvid_e......
3.我用xvid_enraw.exe对下来的YUV进行编码,源文件大概20M左右,压缩后2M左右,但是出来的效果很差,在下一回复给出全过程。若有不正确的地方,了解情况的朋友,请指正。

-----------------------------------------------------------------------

1.yuv的原理和彩色电视机一样,人对色度不敏感,可以大面积着色。
2.xvid是比较完美的MPEG4 ASP编码器,解码可以采用,全汇编,效率很高
3.xvid效果是非常棒的,很多电影都用xvid压缩,压缩10倍应该是很高质量,设置可能不正确

出0入0汤圆

发表于 2011-11-18 00:35:37 | 显示全部楼层
BFrames options:
-max_bframes   integer: max bframes (default=0)  // B frame的算法在1.00之前我记得都是效果不好的,所以建议不要,为0
-bquant_ratio  integer: bframe quantizer ratio (default=150)
-bquant_offset integer: bframe quantizer offset (default=100)

Rate control options:
-framerate float               : target framerate (>0 | default=25.0)
-bitrate   integer             : target bitrate // 建议采用VBR模式, 如果不在网络传输,可以获得均匀图像质量
-single                        : single pass mode // 一般速度要求快就1pass,要求质量就2pass,3pass
-pass1     filename            : twopass mode (first pass)
-pass2     filename            : twopass mode (2nd pass)
-zq starting_frame float       : bitrate zone; quant
-zw starting_frame float       : bitrate zone; weight
-max_key_interval integer      : maximum keyframe interval // 理论上132是个不错的数值,信噪比不会下降太快

Other options
-noasm           : do not use assembly optmized code // 一定要用汇编,速度提升几倍
-turbo           : use turbo presets for higher encoding speed
-quality integer : quality ([0..6])  // 量化因子推荐使用3,具有最优画质码流比
-vhqmode integer : level of Rate-Distortion optimizations ([0..4]) (default=0) // 这个随便选, VBR的话这个项目没用
-bvhq            : use Rate-Distortion optimizations for B-frames too // B frame 一般也用不上
-qpel            : use quarter pixel ME // 一定要用,画质提高显著
-gmc             : use global motion compensation // 镜头移动场景比较有用,能降低码流
-qtype   integer : quantization type (H263:0, MPEG4:1) (default=0) // 263模式线性量化,画面偏朦胧,MPEG4模式非线性量化,画面锐利点,但是码流大些
-qmatrix filename: use custom MPEG4 quantization matrix // 针对画面的量化矩阵, 一般没必要填,除非专业人士
-interlaced      : use interlaced encoding (this is NOT a deinterlacer!) // 场图分别压缩,能降低码流
-packed          : packed mode
-closed_gop      : closed GOP mode
-grey            : grey scale coding (chroma is discarded)
-lumimasking     : use lumimasking algorithm
-stats           : print stats about encoded frames
-debug           : activates xvidcore internal debugging output
-vop_debug       : print some info directly into encoded frames
-help            : prints this help message

简单的说,如果画质要求好,建议采用VBR模式,码流不恒定,但是能保证画质恒定,默认的CBR模式下,画质是不恒定的,但码流恒定, 两个都要恒定,那是个难题.

出0入0汤圆

发表于 2011-11-18 02:23:28 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-18 08:03:56 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-11-18 11:50:44 | 显示全部楼层
谢谢diamond 的精彩答复

1.原始图像如下,画面中有好多栅格,而且是航拍,镜头在动。这个会不会是导致编码后的图像质量不好的一个原因?

YUV原始图像 (原文件名:yuv_b4_encode.JPG)
编码后的m4v截图

压缩后的图像 (原文件名:m4v_aft_encoder.jpg)
2.VBR模式如何指定呢?                               (O,我知道了:指定-quality选项,而去选bitrate就是VBR模式)
3.-qpel加上了,好像没什么改善。                     (见补充)
4.我在暴风中查看视频文件的信息,发现编码类型为:divx,这个是不是错了?     (暴风不友善,用迅雷看看,视频信息的各项属性都给列出来了,不错。)


补充:-qpel                                                      (1/2像素?好奇怪的概念,不解、大大地不解)
Quarter Pixel[Top]                                               |
1/4像素(简称QP,下同)。MPEG-4 用的 QPel 即 1/4 Pel,就是再补出1/2像素像素和1/2像素之间的1/4像素。能保留更多的细节(比不用QP多)和得到更精确的动态补偿,适合高2-PASS/1-PASS比值时采用。但会降低损失近1/3的编码速度。
通常情况下,2-PASS/1-PASS比值在50%以下,不推荐使用。800K以下的低码率使用时,部分场景的画面会产生严重的色彩飘逸现象,看上去像粘稠的液体流动(干净、低动态片源除外)。视频码率越高,使用加QP后的效果越好,而且中低码率下去色块的作用也非常明显。
见:http://blog.sina.com.cn/s/blog_49f320cc01000ahj.html XviD配置参考详解

出0入0汤圆

发表于 2011-11-18 12:37:01 | 显示全部楼层
lz飞的好高啊。
航拍的话,用两个头,一黑一彩。
黑白实时传输。彩色拍照,按近端需要传输,保证清晰度。

不知道妥不妥

出0入0汤圆

发表于 2011-11-18 15:38:45 | 显示全部楼层
一个视频监控系统是如何诞生的  mark

出0入0汤圆

 楼主| 发表于 2011-11-18 19:24:43 | 显示全部楼层
回复【28楼】lilolog
lz飞的好高啊。
航拍的话,用两个头,一黑一彩。
黑白实时传输。彩色拍照,按近端需要传输,保证清晰度。
不知道妥不妥
-----------------------------------------------------------------------
不是我干的,是那个内裤外穿的家伙干得。  对于形状编码而言,黑白片和彩色片是不是都要经过相同的处理过程?

出0入0汤圆

 楼主| 发表于 2011-11-18 20:30:14 | 显示全部楼层
我的设置是有问题,接下来要认真学习和研究。
1.添加-single选项,生成700KB文件,码率在1500kbps左右,效果还行,就是存在严重的色彩飘逸现象。(曼哈顿寒流大侵袭)

未指定码率 (原文件名:CITY_352x288_15_orig_01_1496kbps.jpg)
2.添加-single -bitrate 200选项后,产生100KB文件;码率:180kbps,比较糊;但就这个码率好像不能要求太高。bitrate改成300 400后没有变化还是180kbps。正在纳闷。不过指定bitrate后,编码速度快了一些。                        (后天)

指定码率 (原文件名:CITY_352x288_15_orig_01_182kbps.jpg)
3.现在得想办法,如何让码率变成400、500,再看效果。                              
(刚刚试了一下:把bitrate参数后面补充000,即以bps为单位,再进行调整,可以调出500kbps的码率。但是对于不同的源YUV文件使用相同的参数,出来的码率却完全不同,这个事情......真不知bitrate参数在代码内部是如何处理的).

4.-bitrate 200000 (实际bitrate=647k)                                            (后天的前一天)

647kbps效果 (原文件名:CITY_352x288_15_orig_01_647kbps.jpg)

出0入0汤圆

 楼主| 发表于 2011-11-18 22:00:13 | 显示全部楼层
今天看了一下一个FLV格式的文件,才256kbps的码率,画面超级清晰。查看了他的视频信息,发现用的是AVC编码格式,这个有开源的吗?如果商用的话,是不是要申请许可,花很多银子?

出0入0汤圆

发表于 2011-11-19 20:21:36 | 显示全部楼层
回复【32楼】hzzini
今天看了一下一个flv格式的文件,才256kbps的码率,画面超级清晰。查看了他的视频信息,发现用的是avc编码格式,这个有开源的吗?如果商用的话,是不是要申请许可,花很多银子?
-----------------------------------------------------------------------

avc 就是 H.264, 你这个镜头移动,没有办法,mpeg4 SP 要做到2000K以上才凑活

出0入0汤圆

发表于 2011-11-20 00:19:06 | 显示全部楼层
比如球机,跟你这个情况类似,线扫的时候,我们用xvid测试过,大概1个小时2G字节才能画质较可,折合成码率大概是要4M左右,毕竟是MPEG4

出0入0汤圆

发表于 2011-11-20 17:43:56 | 显示全部楼层
1.关于成像质量现在不管了。只要求1s能够传回一张完整的画面就可以。(2s也行,走不了,先学会爬吧)

=====完全足够,300M ARM 汇编,或者300M TI DSP纯C都差不多CIF实时了

2.手上现在有1块若干年前买的开发板,上面分别有STC89LE58RD+ 1片、TMS320C5402 1片、EPM7128 1片,还有1块配套的IS61LV6416 SRAM. 另外还有1片AT89C2051.   我想尽可能地把他们利用起来。

===== C5402是浮点类型DSP,不是很合适,最好用定点DSP

3.不知道这块DSP实现1fps的帧率有没困难?另外也不知道xvid有没基于TI DSP平台的源码。没有的话,是不是要进行代码移植,里面可有好多汇编.

===== xvid没有TI DSP 平台,移植过去需要不少时间,主要pure C移植就好,CIF的话汇编不需要

4.压缩的过程不知道需要多大的临时数据空间,所以对实现过程不了解的话,就无法配置外部RAM的大小了。为了存放程序代码,和配置数据,好像还要配置1块FLASH哦。

===== xvid占用内存太多,要好几M,实际情况下,MPEG4只需要存2帧的亮度信息(当前帧和预测帧)一共180KB就足够,精心优化算法最低只需要120KB(预测帧和352×16字节当前帧就足够),加上额外的色度和宏块信息,也用不了多少

5.看见论坛上,好些人在使用NRF24L01射频模块,号称有1mbps和2mbps工作方式,看起来很快哦。但是又发现好些帖子说,速度根本上不去。我看过之后将信j将疑。昨天在youku上看见有人用这个实现了视频传送,码率在700kbps左右。看来还是可以的。所以是不是他们的程序没设计好。不过现在我把帧率要求降到1了,这个应该不是问题了吧。

=====如果只要求1fps,怎么做都没问题,jpeg都足够

6.NRF模块的数据端口用的是SPI串行接口,而DSP上有个HPI并行端口,貌似搭不上。所以在考虑是不是可以用EPM7128 这块CPLD来模拟SPI接口。DSP处理完1帧数据后,给CPLD发个消息,CPLD到约定地址获取数据,经过并串转换后,通过SPI口发送给NRF. 发送完毕后,CPLD给DSP发送继续处理指示。

=====懂硬件的来解释

7.xvid处理完每一帧后现成的数据长度可能还不一样,如何来标记长度呢?

=====4字节长度+数据,前提是类似TCP这样的可靠传输

出0入0汤圆

发表于 2011-11-20 17:51:03 | 显示全部楼层
如果能做到TI DSP的C移植部分完成,TI DSP压缩汇编我可以公布一些

出0入0汤圆

 楼主| 发表于 2011-11-20 20:48:02 | 显示全部楼层
谢谢!你帮了我大忙了。
接下来的工作应该是比对标准,了解程序框架了.(是这样吧?)  向前冲吧!Wa..ha..ha..ha,我来啦!!!

出0入0汤圆

发表于 2011-12-5 11:11:11 | 显示全部楼层
学习了,最近也在弄视频编码的东西,好头疼。。

出0入0汤圆

发表于 2012-2-29 13:11:34 | 显示全部楼层
顶LZ

出0入0汤圆

发表于 2012-3-9 17:13:14 | 显示全部楼层
不错的讨论帖 顶

出0入0汤圆

发表于 2012-3-27 00:27:22 | 显示全部楼层
关注,学习视频采集

出0入0汤圆

发表于 2013-8-19 11:29:10 | 显示全部楼层
mark 有空学习!

出0入0汤圆

发表于 2017-1-8 19:29:56 | 显示全部楼层
mark                          
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 03:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表