【C++音视频开发】视频篇 | 图像基础概念

前言 

        本专栏将不间断更新有关C++音视频开发的内容,其中有初级章、中级章与高级章的内容,包括但不限于音视频基础、FFmpeg实战、QT、流媒体客户端、流媒体服务器、WebRTC实战、Android NDK等等。是博主花了将近5000元购买的课程中的知识点,其中也掺杂着一些我的个人理解,希望能帮助大家和我一起入门音视频开发

        ------本专栏拒不收费!


特别说明:本文属于初级篇中的视频基础知识的子内容。】

初级篇目录http://t.csdn.cn/z2pRy其余篇章更新中...


【C++音视频开发】初级篇 | 图像基础概念

图像基础概念

图像基础元素

★ 像素

★ 分辨率

★ 位深

★ 帧率

扫描二维码关注公众号,回复: 14539223 查看本文章

★ 码率

★ Stride


视频基础知识

图像基础元素


★ 像素

        像素:一个图片的基本单位,pix是英文单词picture的简写,加上英文单词“元素element”,就得到了“pixel”,简称px,所以“像素”有“图像元素”之意。

        例如:2500X2000的照片是指横向有2500个像素点,竖向有2000个像素点,总共是2500X2000=500万个像素点,也俗称500万像素照片。       

        当我们把上面这个模特的眼睛不断的放大,放大到像素级别之后就如上图右下角所示,我们可以很明显的看到图片变成了一个个方格块组成的矩形,这就是图像的本质,而这些方块就是像素点。 


★ 分辨率

        分辨率:图像的大小或尺寸。

        例如:1920X1080。常见的分辨率有:360P(640X360)、720P(1280X720)、1080P(1920X1080)、4K(3840X2160)、8K(7680X4320)。

         那么就有一个疑问了——分辨率和像素有什么区别呢?其实是这样的:2500X2000是分辨率,而2500X2000=500万是500万个像素点。

        - 分辨率:是描述像素点的数量以及横向像素点数量与纵向像素点数量的比例

        - 像素点:是一个基本单位。

-------------------------------------------

不同分辨率之间的区别:

        常说的1080p和720p其实是单指垂直像素数。除此之外按照16:9(宽:高)的比例计算,还有水平像素数需要计算:720p的水平像素数量为720÷9×16=1280,总计像素921600像素即大约为92万像素。1080p具有1920个水平像素,总计2073600像素即约200万像素,是720p的两倍多。

        图像的分辨率越高的图像像素越多,图像也就越清晰,所以1080p比720p的图像更加清晰。

        通过上图,我们可以很明显看出,像素点越多,放大之后像素点分布的密度就越大,也就是说保留的细节纹理更加多。 

        通过上图,我们可以很直观的看出,1080p的图像确实是比720p的图像清晰不少。但是需要注意的是图像清晰度并非只有分辨率一个影响因素,也就是说分辨率高的图像不一定就比分辨率低的图像看起来更加清晰,也还取决于光亮等因素。


★ 位深

        位深:在记录数字图像的颜色时,计算机实际上是用每个像素需要的位深来表示的。比如红色分量用8bit。

        我们看到的彩色图片,都有三个通道,分别为红(R)、绿(G)、蓝(B)通道。(如果需要透明度的话则还有alpha分量)

        通常每个通道用8bit表示,8bit能代表2**8==256种颜色,所以可以组成256*256*256=16,777,216=1677万种颜色。而这里的8bit正是我们要讲的位深。 

        每个通道的位深越大,能代表的颜色值也就越多,比如现在高端电视中的位深已经是10bit色彩,即每个通道用10bit来表示,每一个通道足足有2**10=1024种颜色,而1024*1024*1024约为107374万种颜色,是8bit的64倍之多。


★ 帧率

        帧率:在1秒钟时间里传输的图片的帧数,也可以理解为图像处理器每秒钟能够刷新几次。比如:25fps表示一秒钟有25张图片刷新。

        帧率即FPS,经常玩游戏的读者应该会对这个词非常熟悉,并且我们非常希望这个fps能够越高越好,因为这表示我们的游戏体验会更加流畅舒适,相反则十分卡顿,完全没有游戏体验感。在视频当中,也是一样的道理。

        由于视觉图像在视网膜的暂时停留,一般的视频帧率能达到24帧(fps=24),我们即认为该 视频是流畅的,是连续的,是动态的。

        当然每个领域对fps的达标的标准是不一样的,下面则一一列出:

                - 电影帧率一般是:24fps。

                - 电视剧一般是:25fps。

                - 监控行业常用:25fps。

                - 音视频通话常用:15fps。 

        同样的,虽然帧率越高,画面越流畅,但是这对我们设备的性能要求也就更高了!接下来分别展示的是帧率低的视频和帧率较高的视频播放起来是怎么样子的?:


TensorRT加速前破烂显卡infer行人检测模型

TensorRT加速之后破烂显卡运行行人检测视频


接下里的两点比较简单,我会简单介绍一下。


★ 码率

        码率:视频文件在单位时间内使用的数据流量。比如:1Mbps

        大多数情况下,对于同一个原始图像源的时候 ,同样的编码算法情况下:则码率越高,图像的失真就会越小,视频的画面也就越清晰。

        但模糊视频的文件大小(码率)也有可能很大,分辨率小的视频文件也可能比分辨率大的视频文件更加清晰。但需要注意的是:码率之间并不是正比的关系,也就是说1000Mbps的视频并不会比100Mbps的视频清晰十倍。


★ Stride

        Sride:指在内存中每行像素所占空间。为了实现内存对齐每行像素在内存中所占的空间并不一定是图像的宽度。 

猜你喜欢

转载自blog.csdn.net/qq_51831335/article/details/127452587