H.263对视频进行压缩时数据大小

Kenshin 2013-03-18 05:16:26
在网上找到了VideoNet的源码,用他的H.263包对视频进行压缩。发现每次数据回调的时候 原始数据是固定大小的50688(调试后感觉不论将图像长宽设置成多少,每次都是一样大小的), 可是编码后的数据大小不确定 大约在1400-1100 左右 能不能将压缩数据大小固定成1024呢?如果能 如何固定呢?(小弟初学VC,对视频编码这块是小白)
...全文
172 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
无言猪 2013-03-21
  • 打赏
  • 举报
回复
这个有可能是别人编码解码库或者上屏显示的问题,只能慢慢跟了,最简单的就是你把原始RGB数据输入后,编码,解码后能否得到和原始数据一样的RGB数据.
Kenshin 2013-03-20
  • 打赏
  • 举报
回复
YUY2_RGB2_ljh(data, NewRGBdata, nSize); data为原始数据 ConvertRGB2YUV(IMAGE_WIDTH,IMAGE_HEIGHT,NewRGBdata,yuv);NewRGBdata为压缩编码的数据源 CompressFrame(&cparams, &bits);//压缩后输出数据为cdata retvalue=DecompressFrame(cdata,nRecvLen,rgbData,buffersize);//解压缩 rgbData,buffersize 为解压缩输出数据缓存,大小80000, SwapArrayljh2(rgbData,buffersize);//rgbData是最后给贴图函数的数据 是否还需要将解压缩的RGB转化为YUY2??
Kenshin 2013-03-20
  • 打赏
  • 举报
回复
我采用的是网上有个人修改的快速H.263编码包。 现在通过 压缩 发送 解压 后,在远端获得图像中间老是有一个透明的横杠。。。 我试着在本地进行 压缩解压 送给图片控件,具体流程是这样 先将采集数据YUY2转化为RGB 再将RGB转化为YUV 对数据进行压缩编码 解压(输出为RGB) 图片颠倒 将数据给贴图函数进行显示。 现在发现 显示出来的图片 有一个影子,而且图片看上去像是受干扰的闭路电视一样,中间很多红色横杠。
无言猪 2013-03-18
  • 打赏
  • 举报
回复
编码后的数据是根据你图像的复杂度,相关性,还有你设置的码率,帧率来调整的,能控制在一个范围,精确是不可能了.并且I帧和B,P相差必然很大.
zcchm 2013-03-18
  • 打赏
  • 举报
回复
音频压缩很多都是压缩比固定,每一帧压缩后的字节数直接都能计算出来。视频压缩不同(H.263,MPEG4,H.264),虽然也有定码率,但是只能定在一个范围,不可能定的那么准,压缩到多少字节数都能控制住。
zcchm 2013-03-18
  • 打赏
  • 举报
回复
不可能固定的。视频压缩分为帧内压缩(I帧)和帧间压缩(P,B)。一般来说,压缩后I帧要比P、B大很多。视频压缩码率控制一般分定质量、定码率。按照你的情况,属于定码率,但是实际上码率控制不可能达到这么精确,每一帧压缩后大小都一样,一般能控制在一个范围。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧