视频编码是视频处理中的核心技术。
现代我们看到的所有视频,包括电视、网络和手机,大多数视频都是经过编码和解码的。
整个视频技术的基本流程是视频数据采集、视频数据编码、视频数据传输、视频数据解码、视频数据处理。
在收集视频数据并传输视频之前,必须对视频数据进行编码。 本文整理并回答以下三个问题。
为什么要进行视频编码? 为什么可以进行视频编码? 视频编码的终极目标是什么? 1 .为什么要进行视频编码? 简单地说,这是为了减少传输的视频数据量。 视频编码的主要目的是压缩原始视频的数据量。
为什么要减少传输的数据量呢? 由于网络带宽资源有限,传输大量视频数据的成本非常高,为了降低成本,提高传输效率,对原始数据进行压缩编码。
第一篇文章【视频编解码-01】像素-PPI-比特率-码率……计算了100分钟的电影原始数据量,如果不压缩,不仅传输成本高,存储成本也高。
2 .为什么可以进行视频编码? 我理解了需要视频编码的理由。 让我们看看为什么可以进行视频压缩编码。 这个问题是,视频压缩编码的条件是什么? 视频压缩编码压缩了什么样的数据?
视频编码的理论基础是jddyb的信息论,信息论是利用概率和数理统计方法研究信息、信息熵、通信系统、数据传输、密码学和数据压缩等问题的基础理论。 视频编码是数据压缩的范畴,因此信息论是视频压缩的基础。
关于jddyb的信息论,请参考百度百科、jddyb三定理。
首先,让我们来理解信息熵这个概念。
以下公式表示源s的熵:
单位:位/字符
信息熵到底是什么呢? 信息量的测量单位。 请不要想什么不确定性。 让我们认为,抽象而让人想吸的是信息的多样性吧。 它的实际意义有两个:
源s平均信息量对所有码元s的平均所需的比特数进行编码
直观理解,源熵是编码该源的平均所需的最小位数。 为什么可以进行视频压缩编码?
第一个条件:jddyb第一定理【边长无失真新原编码定理】,它将原始源符号转换为新的码元,使码元尽可能遵循等概分布,使每个码元具有唯一性
*第二个条件: **视频数据本身存在大量数据冗馀。
视频数据的冗馀归纳起来,主要有以下冗馀
空间冗余是静止图像存在的主要数据冗馀性。 广阔一致的空间像素相似度非常高
从信息论中可以看出,作为视频序列、即相邻帧之间包含的非运动背景数据的编码冗余也为了表示图像数据的一个像素点,根据其信息熵的大小来对应由于在获取图像时很难获取像素的信息熵,一般如果每个像素用相同的位数来表示,则必然存在信息熵冗余;视觉冗余,人眼对图像不敏感、不均匀、非线性。 对某些失真不敏感,无法感知图像的细微变化。 这些微妙的变化失去了,人眼也感觉不到。 然而,当记录视频的原始数据时,通常假定视觉系统是线性均匀的,它产生比理想编码多的数据。 这在视觉上是冗长的;知识冗余图像包含图像中脸部的五官结构等人们的先验知识,这些位置信息是固定的; 在现有知识的基础上,可以建立某一图像中所含物体的模型,建立特征库。 这样,对图像进行编码时,只需保存几个特征参数就可以减少数据量。 知识冗馀是模型编码利用的主要特性;结构冗余,图像可以具有很强的纹理结构或自相似性,如果已知像素分布模式,则可以用特定过程来产生图像; 以上两个必要条件回答了为什么视频压缩编码是可能的。
3 .视频编码的终极目标是什么? 回答这个问题,也就是说视频压缩编码的上限是什么? 压缩到什么程度就不能压缩了。
数字视频具有数据冗馀性,可以进行压缩。
数字视频在数字化过程中采用帧内和帧间均匀采样,均匀表达由RGB三个分量采样量化后的数据,导致了空间冗馀、时间冗馀、编码冗馀。 正因为有了这三种冗馀,视频才能被压缩。 显然是视频编码的上限就是当冗余不再存在时的数据表达 。
参考例