【音视频原理】图像相关概念 ① ( 像素 | 分辨率 | 位深 )

2023-08-20 19:11:13






一、图像相关概念



图像相关概念 :

  • 像素 : 图片基本单位 ;
  • 分辨率 : 图像的像素尺寸 ;
  • 位深 : 记录每个像素点颜色时使用的位数 ;
  • 帧率 : 一秒钟传输图片的帧数 , 单位 fps , Frame Per Second ;
  • 码率 : 单位时间内视频的数据流量 , 如 1Mbps ;
  • Stride : 内存中每行像素占用的空间 , 不一定是图像的宽度 ;

1、像素


" 像素 " 的英文全称是 " Picture Element " , 又称为 " Pixel " , 是 计算机图形学 中的一个基本概念 , 是图像的最小单位 ;

像素 是 图片 的基本单位 , 是图片中不可分割的最小元素 , 一个像素只有一个单一的颜色值 ;


100 × 100 100 \times 100 100×100 像素的照片 , 指的是 水平方向 上有 100 100 100 个像素点 , 垂直方向 上有 100 100 100 个像素点 ,

该图片的 总像素点 个数是 100 × 100 = 10000 100 \times 100 = 10000 100×100=10000 个像素点 ,

该图片又称为 " 一万像素图片 " , 如果摄像头能拍摄出 一万像素的图片 , 那么该摄像头又称为 一万像素的摄像头 ;


原图为 :
在这里插入图片描述

将一张图片放大后 , 就可以看到该图片的像素 :

在这里插入图片描述


2、分辨率


" 分辨率 " 指的是 图片的 尺寸 , 一般使用 像素 表示 ;

分辨率为 100 × 100 100 \times 100 100×100 的图片 , 指的是 水平方向 上有 100 100 100 个像素点 , 垂直方向 上有 100 100 100 个像素点 ;


常见的视频分辨率 :

  • 360P : 640 × 320 640 \times 320 640×320
  • 480P : 640 × 480 640 \times 480 640×480
  • 720P : 1280 × 720 1280 \times 720 1280×720
  • 1080P : 1920 × 1080 1920 \times 1080 1920×1080
  • 2K : 2560 × 1440 2560 \times 1440 2560×1440
  • 4K : 3840 × 2160 3840 \times 2160 3840×2160
  • 8K : 7680 × 4320 7680 \times 4320 7680×4320

上述 视频分辨率 分别代表了视频的 横向像素数量 和 纵向像素数量 ,

视频像素值表示 : 横向像素数量 × 纵向像素数量 横向像素数量 \times 纵向像素数量 横向像素数量×纵向像素数量 ;

同一部视频 , 视频分辨率越高 , 视频图片的像素点个数越多 , 视频图像越清晰 , 但是视频文件所占用的空间也越大 ;


3、位深


彩色图片 , 每个像素都有 3 3 3 个通道 , 分别是

  • 红色通道 , Red , 简写 R
  • 绿色通道 , Green , 简写 G
  • 蓝色通道 , Blue , 简写 B

就是 RGB 三原色 , 如果需要透明背景 , 再加上 透明通道 , Alpha , 简称 A , 透明度分量 ;


如果 每个像素 的 每个通道 都使用 8 bit 表示 , 8 bit 的取值范围是 0 0 0 ~ 255 255 255 , 也就是有 256 种取值 , 表示一个颜色 由浅到深 的 256 个级别的变化;

3 3 3 个通道 , 每个通道有 256 256 256 种颜色值 , 那么一个像素值有 25 6 3 = 16777216 256^3 = 16777216 2563=16777216 种颜色值 , 约为 1677 万 ;

上述 8 bit 就是位深 ;


图像的 " 位深 " 指的是 每个像素 的 每个通道 所使用的位数 ;

" 位深 " 决定了 图像中 颜色的数量 和 灰度等级 ;

常见的 " 位深 " 如下 :

  • 1 bit : 黑白图像
  • 8 bit : 灰度图像
  • 24 bit : 彩色图像
  • 32 bit : 透明通道彩色图像

位深 越高 , 图像的颜色和灰度等级就越丰富 , 同时文件大小也会相应增加 ;

更多推荐

编译vtk源码

vtk和opengl关系VTK(VisualizationToolkit)和OpenGL(OpenGraphicsLibrary)都是用于图形可视化和渲染的重要工具,但它们在图形编程中的角色和关系略有不同。OpenGL:OpenGL是一种开放的图形库和API,用于渲染2D和3D图形。它提供了一组函数和命令,允许开发人员

Vue.js入门模板语法[上] 及Vue.js实现购物车---详细讲解

前言前面我们学习了Vue的基础入门,接下来我们学习有关Vue的模板语法,学习Vue语法能提高我们的前端开发效率Vue.js使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。所有Vue.js的模板都是合法的HTML,所以能被遵循规范的浏览器和HTML解析器解析。vue将模板编译成虚拟do

linux环境安装redis(亲测完成)

linux环境安装redis亲测完成前言一、redis简介Redis与其他key-value缓存产品有以下三个特点:Redis优势二、安装redis1.下载安装包2.创建服务器安装路径3.上传安装包4.解压安装包5.依赖安装6.编译三、启动1)默认启动错误解决方式2)指定配置启动2.1)备份配置文件2.2)修改配置文件

最完整的Markdown基础教程

开发写文档常用的内容包括:转义字符、时序图、流程图、表格1.Markdown显示转义字符可以用4个反引号2.时序图#mermaid-svg-KecZDU8WrsAVXm4d{font-family:"trebuchetms",verdana,arial,sans-serif;font-size:16px;fill:#3

NotePad++ 在行前/行后添加特殊字符内容方法

我们在处理数据时,会遇到需要在每行数据前面、后面、开头、结尾添加各种不一样的字符如果数据不多,我们可以自己手动的去添加,但如果达到了成百上千行,此时再机械的手动添加是不现实的这里教给大家如何快速的在数据每行的前后加不同的字符(任何汉字、字母、符号都可以)首先下载一个Notepad++(相信各位不会陌生,比自带的记事本强

Pytorch中张量矩阵乘法函数(mm, bmm, matmul)使用说明,含高维张量实例及运行结果

Pytorch中张量矩阵乘法函数使用说明1torch.mm()函数1.1torch.mm()函数定义及参数1.2torch.bmm()官方示例2torch.bmm()函数2.1torch.bmm()函数定义及参数2.2torch.bmm()官方示例3torch.matmul()函数3.1torch.matmul()函数

Git使用方法与IDEA集成Git

1.Git介绍1.1版本控制(理解)无论是代码编写,还是文档编写,我们都会遇到对文档内容反复修改的情况。1.2开发中存在的问题(理解)程序员小明负责的模块就要完成了,就在即将提交发布之前的一瞬间,电脑突然蓝屏,硬盘光荣下岗!几个月来的努力付之东流​老王需要在项目中加入一个很复杂的功能,一边尝试,一边修改代码,就这样摸索

C++:vector

目录vector的模拟实现一.初定义二.相关功能2.1迭代器2.2capacity1.size2.capacity3.reserve(扩容)4.resize2.3access2.4modify1.push_back2.pop_back3.empty4.swap5.insert6.erase2.5构造函数与析构函数1.构

UDP与TCP报头介绍,三次握手与四次挥手详谈

先介绍我们UDP/TCP协议缓冲区在UDP和TCP在数据传输和介绍时有有缓冲区概念的。UDP缓冲区UDP没有真正意义上的发送缓冲区.调用sendto会直接交给内核,由内核将数据传给网络层协议进行后续的传输动作;UDP具有接收缓冲区.但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致;如果缓冲区满了,

【C进阶】指针和数组笔试题解析

做题之前我们先来回顾一下对于数组名的理解:除了以下两种情况,数组名表示的都是数组首元素的地址(1)sizeof(数组名):这里的数组名表示整个数组(2)&(数组名):这里的数组名也表示整个数组一、一维数组inta[]={1,2,3,4};printf("%d\n",sizeof(a));printf("%d\n",si

如何在Blender中压缩/减小GLTF模型的大小

GLTF如何在Blender中压缩/减小GLTF模型的大小Blender是一款功能强大的开源软件,旨在创建3D图形,动画和视觉效果。它支持多种文件格式的导入和导出,包括GLB,GLTF,DAE,OBJ,ABC,USD,BVH,PLY,STL,FBX和X3D。这种适应性使其成为各种3D项目和工作流程的宝贵工具。(http

热文推荐