前面说了各种 为啥编码 编码步骤 尝试按照一个逻辑串一下
首先 人眼对于亮度信息更加敏感,而对于色度信息稍弱,所以视频编码是将 Y 分量和 UV 分量分开来编码的。 这是用YUV 的原因 但是为啥不用RGB呢? 因为RGB的三个颜色之间具有相关性
其次 在知道 4种冗余
空间冗余: 相邻的比较相似
时间冗余 :相邻帧之间比较相似
视觉冗余: 人的眼睛对于图像中高频信息的敏感度是小于低频信息的。有的时候去除图像中的一些高频信息,人眼看起来跟不去除高频信息差别不大,这种叫做视觉冗余。
信息熵冗余:如何编码 图片让他最小
其次 前面的编码能不能采用一些操作 来为了信息熵冗余 提供一些遍历呢? 多0 就行 为啥?因为在很多编码算法中 0 有时候甚至可以用1 位来保存 。
内容如下
我们发现如果想要达到压缩的目的,我们必须要使得编码前的字符串中出现比较多连续相同的字符。这对于图像块也是一样的。我们需要使得扫描出来的“像素串”,也尽量出现连续相同的像素值,最好是一连串数字很小(比如 0)的“像素串”,因为 0 在二进制中只占 1 个位就可以了。这个地方你可能会有疑惑,0 也是至少要一个字节存储,需要 8 个位,怎么会是 1 个位呢?这个有的编码算法是可以做到的,比如指数哥伦布编码,它就可以做到 0 只占用一个位。事实上,算术编码可以做到一个符号只占用 0 点几个位,连一个位都不用,这里不详细展开了,感兴趣的话你可以去查阅下资料。
那我们如何做到将这串像素值变成有很多 0 的“像素串”呢?
首先第一步,我们通过减少图像块的空间冗余和时间冗余来接近这个目标