请选择 进入手机版 | 继续访问电脑版

默认
打赏 发表评论 9
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
即时通讯音视频开发(四):视频编解码之预测技术介绍
微信扫一扫关注!

前言


即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。有关实时音视频开发时的技术难题请参见《音视频云声网Agora:从demo到实用,中间还差1万个WebRTC》。

本文主要讲解实时音视频技术中视频技术的预测技术理论知识。

系列文章


本文是系列文章中的第4篇,本系列文章的大纲如下:


1. 预测技术的作用


目的是去除空间冗余和时间冗余。因为视频存在大量的空间冗余和时间冗余,包括空间冗余、时间冗余,预测后得到去除大部分空间或时间冗余的残差。

2. 空间冗余


图像空间相邻像素具有很强的相关性,帧内预测技术去除空间冗余。

1.png

3. 亮度预测模式


2.png

3.png

4.png

4. 色度预测模式


5.png

6.png

5. 时间冗余


视频图像在时间上有较强的相关性,即存在时间冗余。去除时间冗余的编码技术有:运动估计(Motion Estimation,ME)、运动补偿(Motion Compensation,MC)。

7.png

6. 运动模型


8.png

9.png

10.png

7. 匹配准则


11.png

8. 运动估计


目的是去除视频图像的时间冗余。运动估计在搜索范围内为当前块寻找匹配最好的预测块,全搜索方式的运动估计计算复杂度高。

12.png

9. 快速运动估计算法种类


在保持预测精度的同时减少运动估计的搜索次数,典型算法有:


  • 三步搜索(Three Step Search,TSS)
  • 二维Log搜索(2D Logarithmic Search,2DLOG)
  • 正交搜索(Orthogonal Search Algorithm,OSA)
  • 十字搜索(Cross Search Algorithm,CSA)
  • 新三步搜索(New Three Step Search,NTSS)
  • 四步搜索(Four Step Search,FSS)
  • 共轭方向搜索(Conjugate Direction Search,CDS)
  • 梯度下降搜索(Gradient Descent Search,GDS)
  • 层次块搜索(Hierarchical Block Matching Algorithm,HBMA)

10. 搜索算法复杂度比较


13.png

11. 分像素运动估计与运动补偿


时域运动位置更可能在整象素之间,即分像素上。利用相邻的整象素可以估计出分象素的值:常用线性或双线性插值得到分象素的值。分象素运动估计有更高的预测精度,但复杂度也更高:1/2分象素运动估计,图像存储空间增加4倍,运动矢量需要放大2倍,1/4分象素运动估计,图像存储空间增加16倍,运动矢量需要放大4倍,计算复杂度也成倍增加。

14.png

12. 分像素插值


15.png

13. 多参考帧预测


有更多的候选图像,搜索更精确的预测块。

16.png

14. 图像分块编码


18.png

19.png

视频内容的运动非常复杂,图像分块编码可以更好的提高运动预测精度,提高压缩效率。要在编码块大小和附信息(MV,Mode)编码比特数之间权衡,小的编码块大小会有更好的预测但有更多的附信息比特数。

20.png

15. 双向预测编码


21.png

16. B帧有更好的编码效率


新出现的对象参考将来的帧有更好的预测效果,前后两个预测的平均值可以减少预测方差。

22.png

17. 全局运动估计


基于全局仿射运动模型。预测精度不如基于块的运动估计。MV数目少,适合简单运动场景的运动估计。

23.png

附录:更多实时音视频技术文章


[1] 开源实时音视频技术WebRTC的文章:
开源实时音视频技术WebRTC的现状
简述开源实时音视频技术WebRTC的优缺点
访谈WebRTC标准之父:WebRTC的过去、现在和未来
良心分享:WebRTC 零基础开发者教程(中文)[附件下载]
WebRTC实时音视频技术的整体架构介绍
新手入门:到底什么是WebRTC服务器,以及它是如何联接通话的?
WebRTC实时音视频技术基础:基本架构和协议栈
浅谈开发实时视频直播平台的技术要点
[观点] WebRTC应该选择H.264视频编码的四大理由
基于开源WebRTC开发实时音视频靠谱吗?第3方SDK有哪些?
开源实时音视频技术WebRTC中RTP/RTCP数据传输协议的应用
简述实时音视频聊天中端到端加密(E2EE)的工作原理
实时通信RTC技术栈之:视频编解码
开源实时音视频技术WebRTC在Windows下的简明编译教程
网页端实时音视频技术WebRTC:看起来很美,但离生产应用还有多少坑要填?
了不起的WebRTC:生态日趋完善,或将实时音视频技术白菜化
腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践
融云技术分享:基于WebRTC的实时音视频首帧显示时间优化实践
>> 更多同类文章 ……

[2] 实时音视频开发的其它精华资料:
实时语音聊天中的音频处理与编码压缩技术简述
网易视频云技术分享:音频处理与压缩技术快速入门
学习RFC3550:RTP/RTCP实时传输协议基础知识
基于RTMP数据传输协议的实时流媒体技术研究(论文全文)
声网架构师谈实时音视频云的实现难点(视频采访)
浅谈开发实时视频直播平台的技术要点
还在靠“喂喂喂”测试实时语音通话质量?本文教你科学的评测方法!
实现延迟低于500毫秒的1080P实时音视频直播的实践分享
移动端实时视频直播技术实践:如何做到实时秒开、流畅不卡
如何用最简单的方法测试你的实时音视频方案
技术揭秘:支持百万级粉丝互动的Facebook实时视频直播
简述实时音视频聊天中端到端加密(E2EE)的工作原理
移动端实时音视频直播技术详解(一):开篇
移动端实时音视频直播技术详解(二):采集
移动端实时音视频直播技术详解(三):处理
移动端实时音视频直播技术详解(四):编码和封装
移动端实时音视频直播技术详解(五):推流和传输
移动端实时音视频直播技术详解(六):延迟优化
理论联系实际:实现一个简单地基于HTML5的实时视频直播
IM实时音视频聊天时的回声消除技术详解
浅谈实时音视频直播中直接影响用户体验的几项关键技术指标
如何优化传输机制来实现实时音视频的超低延迟?
首次披露:快手是如何做到百万观众同场看直播仍能秒开且不卡顿的?
Android直播入门实践:动手搭建一套简单的直播系统
网易云信实时视频直播在TCP数据传输层的一些优化思路
实时音视频聊天技术分享:面向不可靠网络的抗丢包编解码器
P2P技术如何将实时视频直播带宽降低75%?
专访微信视频技术负责人:微信实时视频聊天技术的演进
腾讯音视频实验室:使用AI黑科技实现超低码率的高清实时视频聊天
微信团队分享:微信每日亿次实时音视频聊天背后的技术解密
近期大热的实时直播答题系统的实现思路与技术难点分享
福利贴:最全实时音视频开发要用到的开源工程汇总
七牛云技术分享:使用QUIC协议实现实时视频直播0卡顿!
实时音视频聊天中超低延迟架构的思考与技术实践
理解实时音视频聊天中的延时问题一篇就够
实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小程序
写给小白的实时音视频技术入门提纲
微信多媒体团队访谈:音视频开发的学习、微信的音视频技术和挑战等
腾讯技术分享:微信小程序音视频技术背后的故事
微信多媒体团队梁俊斌访谈:聊一聊我所了解的音视频技术
新浪微博技术分享:微博短视频服务的优化实践之路
实时音频的混音在视频直播应用中的技术原理和实践总结
以网游服务端的网络接入层设计为例,理解实时通信的技术挑战
腾讯技术分享:微信小程序音视频与WebRTC互通的技术思路和实践
新浪微博技术分享:微博实时直播答题的百万高并发架构实践
技术干货:实时视频直播首屏耗时400ms内的优化实践
爱奇艺技术分享:轻松诙谐,讲解视频编解码技术的过去、现在和将来
零基础入门:实时音视频技术基础知识全面盘点
实时音视频面视必备:快速掌握11个视频技术相关的基础概念
淘宝直播技术干货:高清、低延时的实时视频直播技术解密
>> 更多同类文章 ……

(原文链接:http://www.cnblogs.com/xkfz007/archive/2012/07/29/2613824.html

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

本帖已收录至以下技术专辑

推荐方案
评论 9
看完这些我实力应该会提升.
谢谢楼主分享
签名: 该会员没有填写今日想说内容.
这些都是基础知识
签名: 该会员没有填写今日想说内容.
很不错的资料,谢谢分享
签名: 刚注册,很不错
天呐,我居然啥都没看懂
引用:此去经年 发表于 2018-03-15 15:44
天呐,我居然啥都没看懂

本来就不简单啊
签名: 天气忽然就这么冷了!
谢谢分享
签名: 心情好
谢谢分享
的确没看懂
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部