版权归原作者所有,如有侵权,请联系我们

[科普中国]-恒定比特率

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

定义

恒定比特率(英语:Constant bitrate,简称CBR),就是静态(固定)比特率的意思,CBR是一种固定采样率的压缩方式。对于视频编码来说,CBR编码指的是编码器每秒钟的输出码数据量(或者解码器的输入码率)应该是固定制(常数)。编码器检测每一帧图像的复杂程度,然后计算出码率。如果码率过小,就填充无用数据,使之与指定码率保持一致;如果码率过大,就适当降低码率,也使之与指定码率保持一致。因此,固定码率模式的编码效率比较低。在快速运动画面部分,画面细节较多,一般需要更多的比特来描述,但由于强行降低码率,因此会丢失部分画面的细节信息,而出现画面模糊、不清晰现象。对于音频压缩来说,比如MP3,比特率是最重要的因素,它用来表示每秒钟的音频数据占用了多少个比特,这个值越高,音质就越好。CBR使用固定比特率编码音频,一首MP3从头至尾为某固定值,如128 kbps进行编码。

固定码率是一个用来形容通信服务质量(QoS,Quality of Service)的术语。和该词相对应的词是可变码率或可变比特率(英文variable bit rate,缩写VBR)。

当形容编解码器的时候,CBR编码指的是编码器的输出码率(或者解码器的输入码率)应该是固定制(常数)。当在一个带宽受限的信道中进行多媒体通讯的时候CBR是非常有用的,因为这时候受限的是最高码率,CBR可以更好的易用这样的信道。但是CBR不适合进行存储,因为CBR将导致没有足够的码率对复杂的内容部分进行编码(从而导致质量下降),同时在简单的内容部分会浪费一些码率。

大部分编码方案的输出都是可变长的码字,例如霍夫曼编码或者游程编码(run-length coding),这使得编码器很难做到完美的CBR。编码器可以通过调整量化(进而调整编码质量)来部分的解决这个问题,如果同时使用填充码来完美的达到CBR。(有时候,CBR也指一种非常简单的编码方案,比如将一个16位精度的音频数据流通过抽样得到一个8位精度的数据流)。

恒定比特率的应用可变比特率(Variable Bit Rate)简称VBR。

CBR和VBR广泛应用于多媒体数据压缩编码领域。

CBR是指对视音频数据进行编码时,不论视音频数据大小和复杂程度,编码速率始终保持恒定;CBR可以确保编码后的音频文件具有固定的大小,但不保证编码后的音频文件具有固定的音质1;VBR是指在编码时根据视音频数据大小和复杂程度,动态调整编码速率,即对复杂数据进行高比特率编码,对简单数据进行低比特率编码,以质量为前提兼顾数据大小,从而保持质量和数据大小之间的平衡。

随着视音频编码技术的迅猛发展和广泛应用,VBR数据流越来越常见,这主要是由视音频压缩算法和视音频内容两个因素所造成的。VBR既可节省传输带宽,又可用于控制显示质量,其应用正愈来愈广泛。

在数字电影领域,CBR和VBR用于图像编码,由数字电影编码器来实现。

对于CBR编码,不论输入图像的复杂程度如何,数字电影编码器的输出码率均为固定值。这使得简单和复杂图像经压缩后的码率相同,从而导致没有足够码率对复杂图像进行编码,因而其解码重建的图像质量就较低,而对于简单图像则会出现码率浪费,且图像越复杂,重建质量就越低,图像越简单,码率浪费就越严重。

对于VBR编码,在保证一定重建图像质量的前提下,数字电影编码器根据输入图像的简单或复杂程度自适应地调整输出码率。因而,图像越复杂,压缩码率就越高,图像越简单,压缩码率就越低,从而对于复杂图像,解码重建质量不会降低,而对于简单图像也不会浪费码率。

数字电影编码器经历了从只支持CBR编码方式到同时支持CBR/VBR两种编码方式的发展历程,实现了对电影复杂画面和简单画面动态分配码率,因而在保证数字电影图像质量的前提之下,有效降低了数字电影数据包(DCP)的大小,从而可有效利用存储空间和节省传输带宽。

恒定比特率的优点固定码率无论对于音频编码还是视频编码,CBR 方式编码的优点是压缩快,能被大多数软件和设备支持;而且当在一个带宽受限的信道中进行多媒体通讯的时候 CBR 是非常有用的,因为这时候受限的是最高码率,CBR可以更好的易用这样的信道。但是 CBR 不适合进行存储,因为 CBR 将导致没有足够的码率对复杂的内容部分进行编码(从而导致质量下降),同时在简单的内容部分会浪费一些码率。使用CBR 编码时,编码流的比特率以及大小在编码之前就是已知的。例如,如果以每秒 32,000 位的速度对三分钟的歌曲进行编码,那么就可以知道文件的大小约为 704 千字节(32,000 bps x 180秒/ 8位/字节/ 1,024)2。

大部分编码方案的输出都是可变长的码字,例如霍夫曼编码或者游程编码(run-length coding),这使得编码器很难做到完美的CBR。编码器可以通过调整量化(进而调整编码质量)来部分的解决这个问题,如果同时使用填充码来完美的达到CBR。(有时候,CBR也指一种非常简单的编码方案,比如将一个16位精度的音频数据流通过抽样得到一个8位精度的数据流)