【图像编解码】图像编解码技术简介

图像编码概述

相关概念:
图像采集与ISP
色彩空间,从RGB到YUV。视频工程师发现,眼睛对于亮和暗的分辨要比对颜色的分辨更精细一些,也就是说,人眼对色度的敏感程度要低于对亮度的敏感程度

将数字视频转换为YUV,用4:2:0采样方式获得1/2的压缩率。

所谓编码算法,即寻找规律,构建模型。谁能找到更精准的规律,建立更高效的模型,谁就是厉害的算法。

视频里的冗余信息分类:

种类描述
空间冗余静态图像中存在的主要冗余
时间冗余帧序列中相邻帧包含相同的背景或物体
构造冗余是不是编码冗余或熵冗余
知识冗余由于先验常识导致的信息冗余
视觉冗余由于人视觉系统的不完美,察觉不到某些细微的变化,导致比(应忽略人不可察觉细微)理想编码更多的数据
其他冗余

首先解决空间和时间冗余。

DCT

将N维实数变换为相应的系数,并可逆变换。

一维DCT

F ( u ) = 2 N c ( u ) ∑ i = 0 N − 1 f ( i ) c o s ( ( 2 i + 1 ) u π 2 N ) F(u) = \frac{2}{N}c(u)\sum_{i=0}^{N-1}f(i)cos(\frac{(2i+1)u\pi}{2N}) F(u)=N2c(u)i=0N1f(i)cos(2N(2i+1)uπ)

归一化,
2 N c ( u ) ∑ i = 0 N − 1 f ( i ) c o s ( ( 2 i + 1 ) u π 2 N ) \sqrt{\frac{2}{N}}c(u)\sum_{i=0}^{N-1}f(i)cos(\frac{(2i+1)u\pi}{2N}) N2 c(u)i=0N1f(i)cos(2N(2i+1)uπ)
f ( i ) f(i) f(i)相当于数组的索引,表示第i个元素

c ( u ) = 1 ( 2 ) , u = 0 c ( u ) = 1 , u ≠ 0 c(u) = \frac{1}{\sqrt(2)}, u = 0 \\ c(u) = 1, u \not = 0 c(u)=( 2)1,u=0c(u)=1,u=0

二维DCT

8x8 2D DCT
F ( u , v ) = c ( u ) 2 c ( v ) 2 ∑ m = 0 7 ∑ n = 0 7 f ( m , n ) c o s ( ( 2 m + 1 ) u π 16 ) c o s ( ( 2 n + 1 ) v π 16 ) F(u,v) = \frac{c(u)}{2}\frac{c(v)}{2} \sum_{m=0}^7\sum_{n=0}^7f(m,n)cos(\frac{(2m+1)u\pi}{16})cos(\frac{(2n+1)v\pi}{16}) F(u,v)=2c(u)2c(v)m=07n=07f(m,n)cos(16(2m+1)uπ)cos(16(2n+1)vπ)

熵编码

熵编码需要离散信号的先验概率分布,该分布称为熵模型。

基于神经网络的编解码,将原始图像x转换为隐特征y,对该特征做熵编码。
注意区分y的边缘分布与熵模型,熵模型是参数化的。
神经网络学习获取估计熵模型的能力,即变分自编码器VAE。
Balle 2017的论文称与VAE相似。

量化

简单理解是从连续变量离散化为离散变量。

例子

JPEG 编码流程

Image
RGB
YCbCr
DCT
Quantization
Encoding
JPEG

图像分块,每块做DCT。
量化,使用一张精心设计的量化表,保留低频信息,去除高频信息。
zig-zag,每块的DC(直流部分)具体用Differential Pulse Modulation,相邻块间DC的差而非DC本身被压缩。
DPCM与RLE
霍夫曼编码与算术编码

JPEG 2000

Discrete Wavelet Transform是该技术的基础
JPEG 2000 包含Motion JPEG 2000,成为数字电影的视频编码标准。

视频编码

I帧:关键帧,自带全部信息的独立帧,完整画面。进行帧内编码。
P帧: 预测编码帧,对前面的I、P帧有依赖性。进行帧间编码。
B帧:双向预测编码帧,以前后帧为参考帧。不适合实时传输。

H264

x264代码

  1. 主函数:初始化参数x264_param_t,根据参数分配帧等内。
    C语言
    #define x264_encoder_glue1(x,y) x##y

质量评价

编码效果的评价包括主客观评价和客观评价。

客观评价指标

  • 峰值信噪比( peak signal noise ratio)
    P S N R = 10 l g [ ( 2 n − 1 ) M S E ] PSNR = 10lg[\frac{(2^n-1)}{MSE}] PSNR=10lg[MSE(2n1)]
    MSE为原图与编解码后图像的像素差的均方差;工程中首先求各张图像的MSE,再求多个数值的均值。

  • structural similarity

国际标准

ITU提出的H.26x系列
ISO/IEC提出的MPEG系列

1 Chroma Subsampling
Resolution of Cb Cr can be reduced by half or more.
Huffman coding.

Arithmetic encoding
Psychoacoustics
Psychovisuals

AI-codec

目标函数
L o s s = λ R + D Loss = \lambda R+D Loss=λR+D

编码参数

https://stackoverflow.com/questions/40668616/whats-the-difference-with-crf-and-qp-in-ffmpeg
qp、crf参数对比
https://slhck.info/video/2017/02/24/crf-guide.html
Constant Rate Factor is a little more sophisticated than that. It will compress different frames by different amounts, thus varying the QP as necessary to maintain a certain level of perceived quality.
进一步参考https://www.codenong.com/cs105772872/
QP参数的区间 0-51 https://www.vcodex.com/news/h264-quantization-parameter/

GPU并行编解码

https://stackoverflow.com/questions/44510765/gpu-accelerated-video-processing-with-ffmpeg

参考

  1. 数字视频编码技术原理
  2. A Concise Introduction to Data Compression ISBN-9781848000728
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值