01一张照片为什么会很大?
一张照片看起来只是“一张图”, 但对电脑来说,它通常包含大量像素。
每个像素又需要记录颜色。 如果图片分辨率很高,就意味着要记录很多很多个像素的颜色信息。
小图片
约 1200 万像素照片
02不压缩时,一张照片有多大?
假设一张图片是 4000 × 3000, 一共有 1200 万像素。
如果每个像素用最常见的 24 Bit RGB 保存, 也就是每个像素 3 Byte:
这还只是最简单的估算。 如果有 Alpha 通道、更高位深、更复杂色彩格式,数据量还会变化。
03视频为什么比照片更大?
视频不只是“一张图片”, 它要随着时间不断变化。
入门时可以把视频想成: 很多张画面快速连续播放,再加上声音等数据。
04帧率为什么会影响文件大小?
视频每秒显示多少张画面,叫作 帧率(Frame Rate), 常用 fps(frames per second)表示。
电影中很常见
普通视频很常见
运动画面更流畅
如果其他条件相同, 帧率越高,就需要描述越多时间点上的画面变化, 通常会需要更高的数据量。
30 fps → 300 帧
60 fps → 600 帧
05分辨率和颜色为什么也很重要?
视频中的每一帧仍然是一幅图像, 所以分辨率越高,每一帧包含的像素通常越多。
约 92 万像素 / 帧
约 207 万像素 / 帧
约 829 万像素 / 帧
另外,颜色位深也会影响数据量。 8 Bit、10 Bit、12 Bit 每通道可以记录的颜色等级不同, 所需数据量也不同。
06压缩是怎样把文件变小的?
照片和视频如果完全不压缩,数据量会非常大。 所以实际文件通常会使用压缩。
照片压缩
利用颜色和图像结构中的规律减少数据
例如 JPEG、WebP、HEIF视频压缩
除了压缩单帧,还会利用前后帧的相似变化
例如 H.264、H.265/HEVC、AV1视频编码器可以重点记录变化,而不是每次都从头保存整幅画面
07码率是什么?
对已经压缩的视频或音频来说, 一个非常重要的概念叫码率(Bitrate)。
它表示平均每秒大约需要多少 Bit 的数据。
每秒约 2 Megabit
数据量较低
每秒约 8 Megabit
数据量更高
每秒约 20 Megabit
通常需要更多存储和带宽
粗略估算文件大小时可以想: 文件大小 ≈ 码率 × 时长。 记得 Bit 和 Byte 要换算,8 bit = 1 Byte。
08为什么同样 1080p,大小还能差很多?
因为“1080p”只告诉你画面分辨率, 并没有告诉你其他所有条件。
码率
码率高,通常文件更大
帧率
30 fps 和 60 fps 数据量可能不同
编码器
不同编码格式压缩效率不同
画面内容
运动复杂的画面通常更难压缩
视频时长
时间越长,数据自然越多
音频
声道、采样率和音频码率也会占空间
你已经知道了什么
- 照片会占空间,是因为它需要记录大量像素的颜色信息。
- 4000 × 3000 的 24 Bit RGB 图像,如果按未压缩像素数据估算,大约需要 36 MB。
- 视频要记录随时间变化的画面,还通常包含音频,因此数据量比单张照片大得多。
- 帧率表示每秒有多少帧;帧率越高,通常需要描述更多时间变化。
- 分辨率、颜色位深、帧率和时长都会影响原始数据量。
- 照片和视频通常都会压缩;视频编码还会利用前后帧之间的相似性。
- 码率表示每秒大约使用多少 Bit 的数据,可以用“码率 × 时长”粗略估算文件大小。
- 同样是 1080p 视频,码率、帧率、编码器、画面复杂度、音频和时长不同,文件大小也可能差很多。
下一个问题: 数字、文字、图片、声音、视频都能变成电脑里的数据, 那是不是意味着现实世界里的很多信息都可以变成数据? 下一篇:原来一切都可以变成数据