这可能是全网最全的流媒体知识科普文章 (3)

比如安防监控领域经常使用的rtp、rtsp协议,flash时代横行的rtmp/flv协议,再到flash被淘汰,H5登顶后的flv,hls,dash,webrtc等各种流媒体协议百花齐放的时代。除此以外也不乏各大公司或个人基于udp和tcp构建的私有流媒体协议。

音视频压缩算法

尽管我们已经可以通过直接传输yuv/rgb像素数据和pcm音频采样数据就可以实现音视频传输了。但是不光是以前,即使是现在,如果要传输未经压缩的图像和音频数据,以现在的网络带宽也是远远不够的。

我们做一个简单的数学计算,假设图像分辨率是1920x1080,帧率是25fps,那么一秒钟需要传输多少数据?答案是:155,520,000 字节/秒,约等于151,875kbps/s,约等于148Mbps/s,这还是没算上pcm音频数据的情况下,如果再算上音频数据和视频传输协议的占用,即使是最理想状态下,要观看和传输一个未压缩的1080P高清视频也至少需要200兆以上的带宽,你家的带宽达到200兆了嘛?
况且,现在已经有4k视频和8k视频了,如果没有压缩,1000兆的带宽连4k视频都看不了,更别提8k了。

这也是为什么我们要对图像和音频进行压缩。
而根据压缩算法的不同,出现了很多图像压缩算法。

图像压缩

jpeg/jpg,png图片编码格式等。

为什么拿jpeg和png举例,因为这两个是两个方向的典型
jpeg是基于yuv图像数据的有损压缩编码,压缩率很高
png是基于rgba像素的无损压缩编码格式,压缩率没有jpg高

补充:gif也是基于rgb像素的压缩,但是它的rgb颜色范围只有256色,所以会出现偏色情况。

视频图像压缩

视频压缩基本都是有损压缩算法。
例如:mpeg4/h264,hevc/h265,vvc/h266,vp8,vp9等视频压缩编码格式。
h264/h265等视频压缩编码会分析图像,将图像分为IPB三种不同的帧,I帧(也叫:关键帧)存放一张完整的静态图像,P帧和B帧则是通过参考前一帧或者参考前后图像的像素的变化量,并根据一定的gop(关键帧间隔)来控制关键帧的数量,以此来提高压缩率。

以1080P的视频为例,h264算法就可以将1080P的视频压缩到2Mpbs/s,比未经压缩的无损视频整整减少了100倍的大小,这显然极大的提升了视频传输效率。让我们就算在以前拨号上网的时代也依然可以流畅观看高清视频。

音频压缩

出现了以aac,MP3为首的音频压缩编码格式等。

wav音频格式是未经压缩的无损pcm采样音频文件格式。

结语

这篇文章是整理CV技术资料中的附属产物。
在整理CV技术相关的技术中,在图像技术的发展历程中很多都绕不开流媒体技术和电视广播无线电技术,并因此才有了本篇文章所涉及到的非常多的概念和知识点。

刚开始没想写那么多,让博主没想到的是,从人类发明彩色电视机到现在不过才70多年的历史,光是整理历史这一块,这一类单一技术的知识量已经可能比九年义务教育学的知识都要多得多得多。尽管很多技术在今天看来可能已经淘汰不用了,但是这些技术在现代技术依然有很多衍生自被”淘汰“的技术,依稀能够从新技术上见到它们的影子。更别提这些被”淘汰“的技术在其他行业领域依然是有一定的应用价值。

整理了一周相关的资料,不知不觉到了很晚,睡意全无,分享一下自己的一点想法,聊以慰藉。
希望此篇能对大家有所助益。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfyww.html