位与字节

硬盘大小为什么总是比标称的少那么点?为什么百兆宽带的下载速度最多只有十兆左右?64位系统是什么意思?位(bit)和字节(byte)都是信息的度量单位,日常生活中作为存储空间、宽带网速等的单位经常出现,如果不理解实际的意义很容易弄混。

数据存储

  • 比特/位(bit):信息量的基本单位。比特就是二进制数字中的位,在二进制数系统中,一位0或1所包含的信息就是一bit。
  • 字节(Byte):存储器分配空间的基本单位。一个字节由8位组成,可代表一个字元(A~Z)、数字(0~255)或符号(,.?!%&±*/)等。
  • 字(word):计算机运算的基本单位。存储器中都是可以寻址的,而计算机内部的数据和指令也都是以为单位传输的。字通常有若干个字节,比如一个中文字符就有2个字节,而一个32位浮点数则有4个字节。

日常中我们更常见的存储单位是KB, MB, GB,其中的B便是字节byte,分别为千字节(1024 B)、兆字节(1024 KB)、吉字节(1024 MB)。
需要注意的是KB, MB, GB其实有十进制和二进制两种,分别为Kilobyte Megabyte Gigabyte和Kibibyte Mebibyte Gibibyte;但实际中大家已不做区分,硬盘制造商在进行标识时使用的便是十进制,而计算机在识别时自然是二进制,因此会比标识的“缩水”。

我们常说的CPU位数指的是CPU一次能处理的最大位数,例如32位计算机的CPU一次最多能处理32位数据。而编程中常说的32位、64位浮点数,是指数据所占用的内存空间为32位(bit)、64位(bit),分别对应4字节、8字节。因此,对64位浮点数,1亿(108)个数据点就大约就占1G内存,10亿(109)个数据点大约占8G内存。

数据传输

字节是存储器空间分配的基本单位,因此数据存储都以字节为单位;
而比特是信息量的基本单位,因此数据传输都以比特/秒为单位。

比特率bpsbits per second的缩写,即每秒传送的比特(bit)数。人们用比特率来标识数据传输速度,如网速或接口速度。而人们在讲下载速度或传输速度时,则又通常会以每秒传输的数据实际占用的存储空间为单位,即字节每秒,如1MB/s。
1字节为8比特,因此两者之间相差8倍。比如,所谓的百兆宽带(100Mbps)对应于实际下载速度,最高仅为12MB/s。又比如,USB 3.0最大传输带宽为5Gbps,对应于传输速度最大约620MB/s;而实际上,由于USB 3.0采用的是10 bit传输模式(加入了额外的纠错码位),因此理论峰值速度为500MB/s。

注意,与字节类似的,比特率的Kbps, Mbps, Gbps通常也是十进制的,转换为实际传输速度时同样要换为二进制的,会有一定缩水。

通常约定用小写b代表比特,大写B代表字节,因此5Gbps还会被写作5Gb/s,这还是比特速率,表示字节速率的是5GB/s。

多媒体编码

最后,比特率还常出现在数字多媒体领域,常被称为码率,用于表示单位时间音/视频中所包含的数据量(bits),与音视频的编码压缩有关,是衡量音质或视频质量的指标之一。简单来说,相同的编码格式下,码率越高,音视频的质量就越好,但文件也越大。

以视频为例,码率(每秒的数据流量)主要取决于视频的分辨率、帧率/刷新率(FPS)及压缩编码:

  • 分辨率:决定单帧图像的数据量,如高清为720P,全高清为1080P,再往上有2K、4K等;
  • 帧率:每秒的帧数(图片数),影响画面流畅度,如24帧、30帧、60帧,目前视频还多为24帧;
  • 压缩编码:不同的视频编码格式会采用不同的压缩算法和压缩率,如果过度的压缩,可以减小视频体积,但也会降低图像质量,造成1080P视频甚至不如720P视频清晰。

1分钟1080P 30fps的视频有多大
一个像素点3个色彩通道,一个色彩通道最常见的是8bit色彩深度,这样一个像素点就是3byte的大小,对于1080P视频一帧有1920×1080个像素点,最终算下来一帧大约就5.9M。1分钟60秒,对于30fps的视频一共30×60帧,视频体积已经超过了10G😱。然而常见的1080P电影一个多小时也才1G多,这就是压缩编码的功劳,关于视频压缩的详细介绍可参考这个视频

理论上,码率越高音视频的质量就也高,但由于人的视觉分辨力是有上限的,所以当码率过高之后人眼就分辨不出来了。因此实际中人们通常在保证视频足够清晰的同时尽量选择较低的码率,以减小视频体积。为此人们在固定码率CBR(Constant Bit Rate)之外引入了可变码率VBR(Variable Bit Rate),即视频中码率不是恒定的,而是在变化剧烈的地方采用高码率,而画面基本不变处采用低码率,从而兼顾视频质量与体积。此外还有两者折中的平均码率ABR(Average Bit Rate)。