音视频杂谈

文件格式

文件格式通常表现为文件在操作系统上存储时的后缀名,它通常会被操作系统用来与相应的打开程序关联,比如你双击一个 test.doc 文件,系统会调用 Word 去打开它。你双击一个 test.avi 或者 test.mkv 系统会调用视频播放器去打开它。

封装格式(也叫容器)

所谓封装格式就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,也就是说仅仅是一个外壳。

编码格式

mpeg1:vcd使用的就是这种编码格式,分辨率是352*288,压缩比低。

mpeg2:一般DVD使用,有NTSC(720*480)和PAL (720*576),和mpeg1一样属于即将被淘汰的编码格式。

mpeg4 :目前使用最多的技术,avi文件始祖,大大提高压缩比,而质量堪比DVD。

divx:基于mpeg4开发的,有一定算法优化。

xvid:divx技术封锁之后被人破解开发的,也是基于mpeg4的编码技术更先进,采用开放源码,画质更好。

h.261:早期的低码率编码,应用于352x288和176x144,现在已不用。

h.263:在低码率下能够提供比H.261更好的图像效果,改进一些算法。

h.263+:h.263的改进型。

h.264 :H.264集中了以往标准的优点,高效压缩,属于MPEG-4第十部分,又称AVC(Advanced Video Coding,高级视频编码)。

RV.10 RV.13 RV.20 RV.30 RV40: real 公司推出的应用于网络的高压缩编码,是不同时期rm和rmvb的编码。

视音频编码原理

视音频编码,其实就是一个对数据进行压缩的过程。在编码原理这块,我们无需掌握其过于深奥的数学原理和计算机算法,只需要搞清楚两个问题即可,一是为什么要压缩?二是为什么能压缩?

为什么要压缩?

视频,是通过摄像头采集下来的YUV等原始数字格式;音频,是通过麦克风拾音器采集下来的PCM等原始数字格式。

以YUV4:2:2格式为例一帧1080P视频需要多大内存:

相邻的4个像素里有4个Y、2个U、2个V。每2个Y共用1组UV分量。平均算来,一个像素占用的数据宽度为16b,即两字节。

1920 * 1080 * 2 = 4147200 字节 = 3.95 兆

由上可知,原始的视音频数据数据量太大,根本无法在网络上传输,同时也不利于存储。所以,我们必须通过编码技术将原始视音频数据进行大幅度的压缩,以能在互联网上传输及存储。

为什么能压缩?

数据冗余:比如视频画面的众多像素在空间上、时间上、结构上等等方面存在着很强的相似性甚至是完全一模一样。消除这些冗余数据并不会导致信息损失,此为无损压缩。

视觉/听觉冗余:人眼对亮度和色度的敏感度不同,使得数据在一定范围内压缩引入误差,也基本不会有显著感知;人耳对20Hz~20KHz范围外的声音无法察觉,或者一定程度引入误差也无法感知。利用人类眼睛和耳朵的特性,在不影响正常感知的情况下对数据进行压缩,此为有损压缩。

序列、图像、片、宏块、子块

在H.264中,句法元素被组织成五个层次:序列(sequence)、图像(frame/field-picture)、片(slice)、宏块(macroblock)、子块(sub-block)。

在H.264中,一幅图像可以编码为一个或多个片(slice),slice共有5种类型。slice的目的是为了限制误码的扩散和传输,使编码片相互间保持独立。一个slice编码之后被打包进一个NALU,NALU除了容纳slice还可以容纳其它数据,如序列参数集SPS、PPS、SEI等。每个slice由宏块组成,一个宏块由一个16×16亮度像素和附加的一个8×8 Cb和一个8×8 Cr彩色像素块组成。宏块是H.264编码的基本单位,可以采用不同的编码类型。
 

h264编码器比较

libx264

开源软件编码器。编码质量最好,但速度不是最快

libx264rgb 

一个补丁版本的libx264,编码RGB像素格式,解码器通常不支持这种格式

h264_v4l2m2m 

让Video4Linux决定使用哪个视频编码器。不同的发行版和硬件可能不同

h264_vaapi 

因特尔 H.264 编码器

硬解码,软解码

软解码,是指在软件层面上,编写解码算法,利用CPU的通用计算、处理形式,达到解码的目的。这个过程要大量调用CPU的寄存器,CPU要取指、译指。CPU将解码过程完全视为一段程序的操作。通过人为编写解码算法,进行解码,就叫软解码。这个过程比较繁琐,效率没硬解码好。

硬解码:调用硬件解码器进行解码就算硬解码。

软解码与硬解码的区别在于,一个是调动软件,一个是调动硬件解码器。解码器通常是设计在GPU里面。

视频制式ntsc和pal

        NTSC和PAL属于全球两大主要的电视广播制式,但是由于系统投射颜色影像的频率而有所不同。NTSC主要应用于日本、美国,加拿大、墨西哥等等,PAL采用逐行倒相正交平衡调幅的技术方法,克服了NTSC制相位敏感造成色彩失真的缺点。西德、英国等一些西欧国家,新加坡、中国大陆及香港,澳大利亚、新西兰等国家采用这种制式。

        这两种制式是根据不同国家的电压和频率来决定的。北美的电压是110V,60Hz,而其他国家的大多是220V和50Hz,不同的赫兹所对应的帧率是不同的。60Hz适用30帧,而50Hz适用25帧。

        在北美国家的电视机,采用NTSC制式,每秒30帧,电视扫描线为525线逐行扫描,偶场在前,奇场在后,其标准的分辨率为720*486, 24bit的色彩位深,画面的宽高比大约为4:3,颜色容易失真。

        而我国和欧洲的电视机采用PAL制式,每秒25帧,电视扫描线为625线,奇场在前,偶场在后,分辨率为720*576, 24bit的色彩位深,画面的宽高比大约为4:3,颜色较为浓郁。

        如果录制的视频不是在电视台上播放,或者不是在电视机上播放,而仅仅只是在电脑上播放,那么选哪种制式都没有问题,一般根据帧率来来定,比如想要更高的帧率,则可选择NTSC制式。

视频码流,文件体积, PPI

码流是指视频图像经过编码压缩后在单位时间内的数据流量,也叫码率,是视频编码中画面质量控制中最重要的部分。同样的分辨率下,压缩比越小,视频图像码率越大,画面质量就越高。分辨率越高,所需要的码率越大,这样画面才能越清晰。

视频文件体积:(音频码率+视频码率) x 时长 / 8 

PPI(Pixels Per Inch):每英寸包括多少个像素点,屏幕PPI计算方式:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值