输入矩阵 ===> DCT ===> 量化 ===> 游程编码压缩 ===> 网络传输 ===> 反游程恢复 ===> 反量化 ===> 反DCT ===> 得到输入矩阵的近似矩阵
整个流程中的 量化和反量化 需要量化矩阵参与,在实际应用中可以事先让网络收发双方都持有量化矩阵,这样就可以完成矩阵的还原了,同时由于量化后的矩阵非常适合用游程编码进行数据压缩,所以网络传输时的数据量非常小。
上面提到了如何压缩一个矩阵,这可以用在压缩图片的场景中,每个图片都是一个包含色彩值的矩阵,再经过上面的流程压缩后,可以有效地压缩传输后再尽可能地还原。
上面提到了用游程编码进行数据压缩,但是一般情况下还会在压缩之前加入一个zig-zag扫描,这个动作可以提高游程扫描过程中的连0几率,进而提高压缩比。因此流程为:
输入矩阵 ===> DCT ===> 量化 ===> zig-zag扫描 ===> 游程编码压缩 ===> 反zig-zag扫描 ===> 网络传输 ===> 反游程恢复 ===> 反量化 ===> 反DCT ===> 得到输入矩阵的近似矩阵