视频编码及图像基础知识

这篇具有很好参考价值的文章主要介绍了视频编码及图像基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考学习资料:https://blog.csdn.net/qq_28258885/article/details/116192244

视频编码基础
图像
像素
  • 在消费级别,每个像素使用8bit来表示–0~255,其中,0:黑色;255:白色

  • 在工业级别,使用10bit来表达一个像素–0~1023,精度高,颜色细腻,细节更丰富

  • 事实是:几乎没有硬件芯片、移动设备、软件支持10bit。

颜色深度

存储颜色的强度,需要占用一定大小的数据空间,这个大小被称为颜色深度。假如每个颜色的强度占用 8 bit(取值范围为 0 到 255,即 2 8 2^8 28),那么颜色深度就是 24(8*3)bit(因为RGB三个颜色),我们还可以推导出我们可以使用 2 24 2^{24} 224种不同的颜色。

分辨率

即一个平面内像素的数量。通常表示成宽*高

视频行业常见的分辨率,我们比较熟悉的360P (640x360)、720P (1280x720)、1080P (1920x1080)、4K (3840x2160)、8K (7680x4320)

我发现宽都是高的1.77777倍

视频
帧率

帧率(FRames rate)= 帧数(Frames)/时间(Time)

若单位时间为秒,则等同于 FPS (每秒帧数 Frames Per Second)。

码率、带宽、体积

码率:每秒钟的数据量

比特率:以bit表示数据量的码率,bps(bits per second)

比特率 = 宽 * 高 * 颜色深度 * 帧每秒

带宽:有时指带宽能力,有时指使用了多少带宽,也即达到了多少码率,后一种情况带宽和码率同义

体积和容量:体积一般指文件大小(即总的数据量,区别于码率表示每秒数据量)。容量一般指能力

总结:

  • 码率和带宽针对传输,体积和容量针对存储。
  • 对于视频编码,节省码率/带宽/体积,意思差不多
为什么要压缩视频
  • 以一集FHD《生活大爆炸》为例:

1080p(1920x1080) YUV 4:2:0的图像格式,每秒拍摄24帧,视频长度为22分钟

  • 1 pixel => YUV 4:2:0 @1.5 bytes (1 + ¼ + ¼ ) 一个像素

  • 1 pictrue => 1920x1080x1.5 bytes = 3MB 一个图片

  • 1 second @ 24fps => 24x3M = 72MB => 576M bps

    传输带宽576M bps 不压缩,不可能在线实时收看

所以要压缩,消除冗余

为此,我们可以

利用视觉特性:和区分颜色相比,我们区分亮度要更加敏锐。

时间上的重复:一段视频包含很多只有一点小小改变的图像。

图像内的重复:每一帧也包含很多颜色相同或相似的区域。

我们的眼睛对亮度比对颜色更敏感

帧类型

在介绍去除冗余的方法前,需要了解帧类型。

I帧(帧内,关键帧)

P帧(预测)

P 帧利用了一个事实:当前的画面几乎总能使用之前的一帧进行渲染

实际情况中,一般使用一个I帧多个P帧。但是P帧不能太多,因为离上一个I帧越远,预测难度就越大,丢失的信息也就越多

B帧(双向预测)

引用前面和后面的帧去做更好的压缩

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

消除冗余的方法
时间冗余(帧间预测)

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

我们可以做个减法,我们简单地 0 号帧减去 1 号帧,得到残差,这样我们就只需要对残差进行编码

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

但我们有一个更好的方法来节省数据量。
首先,我们将0 号帧 视为一个个分块的集合,然后我们将尝试将 帧 1帧 0 上的块相匹配。我们可以将这看作是运动预测

运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)差别的方法
具体来说是描述前面一帧(相邻在这里表示在编码关系上的前面,在播放顺序上未必在当前帧前面)的每个小块怎样移动到当前帧中的某个位置去。

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

我们预计那个球会从 x=0, y=25 移动到 x=6, y=26xy 的值就是运动向量进一步节省数据量的方法是,只编码这两者运动向量的差。所以,最终运动向量就是 x=6 (6-0), y=1 (26-25)

实际情况下,这个球会被切成 n 个分区,但处理过程是相同的。

帧上的物体以三维方式移动,当球移动到背景时会变小。当我们尝试寻找匹配的块,找不到完美匹配的块是正常的。这是一张运动预测与实际值相叠加的图片。

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

但我们能看到当我们使用运动预测时,编码的数据量少于使用简单的残差帧技术

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

空间冗余(帧内预测)

如果我们分析一个视频里的每一帧,我们会看到有许多区域是相互关联的

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

视频编码器关键技术

是什么?就是用于压缩或解压数字视频的软件或硬件

1.分区

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

有许多原因,比如,当我们分割图片时,我们可以更精确的处理预测,在微小移动的部分使用较小的分区,而在静态背景上使用较大的分区。

通常,编解码器将这些分区组织成切片(slices )或条带(tiles),宏(或编码树单元)和许多子分区。
这些分区的最大大小有所不同,HEVC 设置成 64x64,而 AVC 使用 16x16,但子分区可以达到 4x4 的大小。

2.预测

一旦我们有了分区,就可以在它们之上做出预测。

  • 对于帧间预测,我们需要发送运动向量和残差
  • 对于帧内预测,我们需要发送预测方向和残差
3.转换
4.量化

有损的

5.熵编码

在我们量化数据(图像块/切片/帧)之后,我们仍然可以以无损的方式来压缩它。有许多方法(算法)可用来压缩数据。

熵编码技术是视频编码技术中基础性关键技术,在经典编码框架中处于系统末端,负责对编码过程中的变换系数、运动矢量等信息进行熵编码,并完成最终编码码流的组织。

熵编码目标是利用信息熵原理进行数据的最终压缩,去除信源符号在信息表达上的冗余。

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

编码器与解码器

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

小结

编码器:时间复杂度比解码器高很多,编码器对每一块图像内容要尝试很多种工具,挑选更好的工具

解码器:根据标准语法语义解析码流,生成一块内容只需要执行指定的工具,没有挑选过程,不用执行多种工具

解码器需要支持标准规定的所有工具;而编码器不必

那编码和解码为什么能匹配工作?

因为编码和解码用同一种算法

那解码器怎么知道编码器用了什么算法?

有"标准"规定,在码流里面比如说开头有110110,解码器解析到这一串就知道用的是什么算法

视频编码标准

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

ITU-T和MPEG,后来他们一起合作,所以命名的时候就包含两个组织;例如H.264/MPEG-4 AVC,H.264代表是ITU-T,MPEG-4 AVC代表MPEG

YUV模型

有一种模型将亮度(LUMA)和色度(cb,cr)分离开,它被称为 YUV模型

我们的眼睛对亮度比对颜色更敏感

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

色度子采样

一旦我们能从图像中分离出亮度和色度,我们就可以利用人类视觉系统对亮度比色度更敏感的特点,选择性地剔除信息。色度子采样是一种编码图像时,使色度分辨率低于亮度的技术。

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

四个亮度像素共享一个色度像素

现代编解码器中使用的常用方案是: 4:4:4 (没有子采样), 4:2:2, 4:2:0,

视频编码及图像基础知识,智能视频编码,音视频,人工智能,计算机视觉

第二个参数代表第一行分成几块

第三个参数代表第二行分成几块

如果我们使用 YCbCr 4:2:0 我们能减少一半的大小文章来源地址https://www.toymoban.com/news/detail-649835.html

到了这里,关于视频编码及图像基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FFMPEG视频编码的基础知识

    抛砖引玉 首先我们先计算以下  1080P   60fps  的视频文件大小: 假设是RGB每色8位(也就是一个像素24位) 一帧画面像素数量:1920 * 1080  ~ 200万 一个像素: 3 字节 一帧画面 :  1920 * 1080 * 24(位像素)/8(1字节8位)/1024(1KB=1024B)/1024(1MB=1024KB)~ 5.9MB 一秒视频:    5.9MB * 60

    2024年02月16日
    浏览(36)
  • 视频的专业基础知识(一)常用的编码格式和参数

    编码格式: 一个视频文件本身,通常由音频和视频两部分组成。例如视频文件,就是由avc视频编码+AAC音频编码组成的,常见的视频编码格式有Xvid,AVC/H.264,MPEG1,MPEG2 等,常见的音频编码有MP3、AAC等。 编解码格式: 是数据按那种方式编码压缩,便于网络传输和降低带宽的需

    2024年02月13日
    浏览(34)
  • 视频基础知识——编码时,帧率、码率、分辨率之间的联系

    本文主要补充基础概念,在设置编码器的时候,参数设置不对,录制的屏幕就会出现花屏。所以梳理了基础知识,就知道哪里设置不对了。 如下是ffmpeg自带的sample,encode_video的例子,选取H264的编码器,进行编码。 其中,c-bit_rate = 400 000; 一直不知道怎么来的,导致录制屏幕花

    2024年02月10日
    浏览(44)
  • 视频基础知识(一) 视频编码 | H.26X 系列 | MPEG 系列 | H.265

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【音视频基础知识】 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪   这里的编码和之前音频知识中提到的编码(数字化编码)不是一个编码

    2024年04月09日
    浏览(38)
  • FFmpeg基础:获取音视频的各种编码参数

    获取视频编码参数 视频编码参数主要包括:帧率、分辨率、编码格式、码率等,对应的概念如下。 帧率(Frame Rate) 每秒显示帧数(Frames Per Second)。电影的帧率一般是25fps和29.97fps,3D游戏要保持流畅则需要30fps以上的效果。 分辨率 指视频宽高的像素数值。标准1080P的分辨率为1920×

    2024年02月03日
    浏览(33)
  • 【音视频原理】图像相关概念 ③ ( RGB 色彩简介 | RGB 排列 | YUV 色彩简介 | YUV 编码好处 )

    RGB 是 计算机 中的 颜色编码方法 , 红 ( R ) / 绿 ( G ) / 蓝 ( B ) 三个颜色通道 可以设置不同的值 , 每个 通道 的 颜色值都可以取值 0 ~ 255 , 这样 三个通道 叠加 , 可以表示出 25 6 3 = 16777216 256 ^3 = 16777216 25 6 3 = 16777216 种颜色值 ; 红 ( R ) / 绿 ( G ) / 蓝 ( B ) 三个颜色通道 都取值 255

    2024年01月20日
    浏览(50)
  • 爬虫基本的编码基础知识

    爬虫的编码基础知识包括以下几个方面: 网络请求:使用Python中的requests库或urllib库发送HTTP请求,获取网页内容。 解析网页:使用Python中的BeautifulSoup库或lxml库解析HTML或XML格式的网页内容,提取所需的数据。 数据存储:将爬取到的数据存储到本地文件或数据库中,常用的数

    2024年02月09日
    浏览(56)
  • 【音视频原理】图像相关概念 ⑥ ( YUV 与 RGB 之间的转换 | YUV444 颜色编码格式 转为 RGB 格式 | RGB 颜色编码格式 转为 YUV444 格式 )

    YUV 与 RGB 颜色格式之间进行转换时 , 涉及一系列的数学运算 ; YUV 颜色编码格式 转为 RGB 格式 的 转换公式 取决于 于 YUV 的具体子采样格式 : YUV444 YUV422 YUV420 YUV444 格式 转为 RGB 格式 的 转换公式如下 : R = Y + 1.13983 * (V - 128) G = Y - 0.39465 * (U - 128) - 0.58060 * (V - 128) B = Y + 2.03211 * (U

    2024年01月24日
    浏览(45)
  • 【基础知识】【模块介绍】电机编码器

    目录 概述  测速原理 波形分析 解码 单相计数 A相 B相 双相计数 转速计算 电机编码器常见的是AB相电机编码器,和旋转编码器类似,传送门 常见的有光电和霍尔等,属于非接触测转速的方法 不管是光电还是霍尔的编码器本质上都是在电机的旋转轴上放上一个码盘, 不同的是

    2023年04月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包