信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的
信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的
- 图片的存储
- 图片的文件格式
- 像素数据的二进制表示
- 存储和处理
- 显示
- 总结
- 图片的显示
- 4. 像素点控制
- 具体的像素控制过程示例
- 总结
如题,这里以图片为例。
图片的存储
计算机桌面上的一张图片,在计算机最底层是以电信号的形式表示的,即高电平和低电平。这些电信号对应二进制的0和1。为了更好地理解这个过程,我们可以从图片的数据格式到硬件表示逐步解析。
图片的文件格式
首先,图片文件以特定的格式存储在计算机的存储设备中(如硬盘、SSD)。常见的图片格式包括JPEG、PNG、BMP等。这些格式将图片的像素数据和其他信息(如颜色深度、分辨率、元数据等)以特定的编码方式存储。
例:BMP文件格式
BMP(位图)文件格式较为简单,它直接存储图片的像素数据,每个像素的颜色值以二进制数据表示。一个简单的24位BMP文件可以分为以下几个部分:
- 文件头:包含文件类型、文件大小等信息。
- 信息头:包含图片的宽度、高度、颜色位数等信息。
- 调色板(可选):用于8位或以下位图,定义颜色表。
- 像素数据:每个像素的RGB值,按行存储。
像素数据的二进制表示
图片的每个像素都有一个或多个颜色分量(例如,RGB颜色模型中的红、绿、蓝)。每个颜色分量用一个或多个字节表示。以24位RGB颜色模型为例,每个像素用3个字节(24位)表示,每个字节对应红色、绿色和蓝色的强度值(0到255)。
例:像素数据
一个红色像素的RGB值可能是 (255, 0, 0),其二进制表示为:
红色:11111111
绿色:00000000
蓝色:00000000
所以,这个红色像素在内存中的表示为 11111111 00000000 00000000。
存储和处理
存储
当图片文件存储在硬盘或SSD中时,数据以二进制形式存储。硬盘和SSD将数据转换为低电平(0)和高电平(1)的电信号存储在磁性介质或闪存芯片上。
处理
当需要显示图片时,操作系统和应用程序将图片文件从存储设备加载到内存中,进行解码和处理。处理后的像素数据以二进制形式存储在内存中。
显示
显示器将内存中的像素数据转换为光信号,以人类可见的方式显示图片。
显示过程
- 帧缓冲区:显卡(GPU)将处理后的像素数据存储在帧缓冲区中,这个缓冲区通常在显存(VRAM)中。
- 数模转换:显卡将帧缓冲区中的二进制像素数据转换为模拟信号或保持数字信号传输。
- 显示信号:显卡通过显示接口(如HDMI、DisplayPort、VGA)将信号传输到显示器。
- 像素点控制:显示器的控制电路根据接收到的信号控制液晶显示器的每个像素点,调整其颜色和亮度。
总结
在计算机最底层,图片文件中的数据最终都表示为高电平和低电平的电信号,这些电信号对应二进制的0和1。计算机通过将高层次的数据格式(如JPEG、PNG、BMP)解码为像素数据,并将这些像素数据转换为电信号,最终实现图片的存储、处理和显示。
图片的显示
接着上面第四点“4. 像素点控制:”的进一步解释。
4. 像素点控制
4.1 显示器信号传输
当显示器接收到来自显卡的信号时,这个信号包含了每个像素的颜色和亮度信息。信号通过显示接口(如HDMI、DisplayPort、VGA)传输到显示器,然后由显示器内部的控制电路进行处理。
4.2 数模转换器(DAC)
如果显卡输出的是模拟信号(如VGA),显示器内部会有一个数模转换器(DAC),将模拟信号转换为数字信号。如果输出的是数字信号(如HDMI、DisplayPort),则直接进入下一步。
4.3 控制电路
显示器内部有一个控制电路(通常是一个集成电路),负责解析信号并控制每个像素点的状态。这些控制电路通常包括:
- 时序控制器(TCON):协调信号的传输和像素的刷新。
- 行驱动器和列驱动器:控制每行和每列的像素。
4.4 像素阵列
LCD显示器的屏幕由一个二维的像素阵列组成。每个像素点由一个或多个子像素(如红、绿、蓝三种子像素)组成。这些子像素的亮度组合形成我们看到的颜色。
4.5 液晶像素的控制
每个像素点由液晶材料控制,液晶材料在电场的作用下会改变其透光性。具体过程如下:
- 电极控制:每个子像素都有两个透明电极,一个在前面板(靠近用户的一侧),一个在后面板。电极上施加电压,产生电场。
- 液晶扭转:液晶分子在电场的作用下扭转,改变光线通过液晶材料的方式。通过控制电压,可以精确控制液晶分子的扭转角度,从而控制光线通过的数量。
- 背光源:LCD显示器通常有背光源(通常是LED),提供均匀的白光。光线通过液晶材料和颜色滤光片(红、绿、蓝),形成彩色图像。
4.6 色彩滤光片
每个子像素前面都有一个颜色滤光片,分别是红色、绿色和蓝色滤光片。通过控制每个子像素的透光量,可以组合出不同的颜色。
4.7 子像素的亮度控制
控制电路通过调节每个子像素的电压,改变液晶分子的排列,从而控制每个子像素的亮度。每个像素点的颜色是由其三个子像素(红、绿、蓝)的亮度组合而成。
4.8 显示刷新
显示器不断刷新,通常是每秒60次或更多(即60Hz或更高的刷新率)。时序控制器(TCON)协调所有这些操作,确保每个像素点在每个刷新周期内显示正确的颜色。
具体的像素控制过程示例
假设我们要在一个1920x1080分辨率的LCD显示器上显示一个图像,显示过程如下:
- 信号传输:显卡将图像数据通过HDMI接口传输到显示器。
- 时序控制:TCON将图像数据解析为行和列的数据,并按照行和列的顺序传输到显示面板。
- 行列驱动:行驱动器依次选择每一行,列驱动器在选中的行上施加适当的电压,控制每个子像素的透光度。
- 电压控制:电极在每个子像素上施加适当的电压,使液晶分子扭转相应的角度,控制通过的光线量。
- 色彩显示:光线通过液晶材料和颜色滤光片,形成红、绿、蓝三种颜色的组合,显示出所需的颜色。
- 背光提供光源:LED背光提供均匀的白光,通过液晶和滤光片,显示完整的图像。
总结
通过上述过程,计算机将存储在内存中的二进制图片数据转换为电信号,然后通过复杂的硬件电路和液晶材料的相互作用,将这些电信号转换为我们在屏幕上看到的彩色图像。
相关文章:
信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的
信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的 图片的存储图片的文件格式像素数据的二进制表示存储和处理显示总结 图片的显示4. 像素点控制具体的像素控制过程示例总结 如题,这里以图片为例。 图片的存储 计算机桌面上的一…...
【考研408计算机组成原理】微程序设计重要考点指令流水线考研真题+考点分析
苏泽 “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家 目录 微指令的形成方式 微指令的地址形成方式 对应考题 题目:微指令的地址形成方式 - 断定方式 解题思路: 答题: 分析考点&…...
查看哪个docker环境在占用gpu
前言 有时候发现某些docker占用gpu资源却没有训练,需要查清楚是哪个并且把它stop掉。 方法 在docker里面用nvidia-smi命令,没有pid显示,需要在外面使用。得到pid信息后,使用命令 docker top 15766f6eeaf7(容器ID) | grep 551…...
JVM相关总结
JVM的些许问题 1.JVM内存区域划分 2.JVM类加载过程 3.JVM的垃圾回收机制 1.JVM的内存区域划分 一个运行起来的Java进程就是一个JVM虚拟机,需要从操作系统申请一大片内存,就会把内存划分成几个区域,每个区域都有不同的作用 常见的面试题 2.JVM类加载过程 熟练背诵 ! ! !…...
Python 面试【初级】
欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
机器学习SVR 随机森林 RBF神经网络做回归预测的MATLAB代码
SVR 参考这篇文章 Libsvm使用笔记【matlab】 close all; clc clear %% 下载数据 load(p_train.mat); load(p_test.mat); load(t_train.mat); load(t_test.mat); %% 数据归一化 %输入样本归一化 [pn_train,ps1] mapminmax(p_train); pn_train pn_train; pn_test mapminma…...
Spring Boot中配置Swagger用于API文档
Spring Boot中配置Swagger用于API文档 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨如何在Spring Boot应用中配置Swagger,以便于快…...
学习java第一百一十六天
Spring Framework有哪些不同的功能? 答: 轻量级-Spring 在代码量和透明度方面都很轻便。 IOC-控制反转AOP-面向切面编程可以将应用业务逻辑和系统服务分离,以实现高内聚。容器-Spring 负责创建和管理对象(Bean)的生命周…...
SQL Server的隐私盾牌:动态数据屏蔽(DMS)全面解析
🛡️ SQL Server的隐私盾牌:动态数据屏蔽(DMS)全面解析 在数据驱动的商业世界中,保护敏感信息至关重要。SQL Server提供了一种强大的安全特性——动态数据屏蔽(Dynamic Data Masking,简称DMS),…...
Android中常见的线程池
日常开发中我们常常使用到线程池,其能有效管理线程资源,避免过多线程导致系统资源浪费、又能复用线程资源,避免频繁的创建/销毁线程。在Android中线程池的实现为ThreadPoolExecutor类,本文主要记录该类相关的知识点。 线程池的六…...
C# YoloV8 模型效果验证工具(OnnxRuntime+ByteTrack推理)
C# YoloV8 模型效果验证工具(OnnxRuntimeByteTrack推理) 目录 效果 项目 代码 下载 效果 模型效果验证工具 项目 代码 using ByteTrack; using OpenCvSharp; using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using Sys…...
什么是Cookie?有什么用?如何清除浏览器中的Cookie?
互联网上的每一次点击和每一个选择都可能被一种名为Cookie的技术记录下来。但Cookie是什么?我们在网站上登录时,为什么经常会被问及是否接受Cookie?接受Cookie登录会不会影响我们的在线隐私? Cookie是什么? Cookie是一…...
数据库基本管理
数据完整性: 实体完整性:每一行必须是唯一的实体域完整性:检查每一列是否有效引用完整性:确保所有表中数据的一致性,不允许引用不存在的值用户定义的完整性:制定特定的业务规则 主键: 用于唯…...
43.三倍游戏
上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/390 题目描述 三倍游戏是一种单人游戏。玩…...
LoadBalance 负载均衡
什么是负载均衡 负载均衡(Load Balance,简称 LB),是⾼并发,⾼可⽤系统必不可少的关键组件. 当服务流量增⼤时,通常会采⽤增加机器的⽅式进⾏扩容,负载均衡就是⽤来在多个机器或者其他资源中,按照⼀定的规则合理分配负载. 负载均衡的⼀些实现 服务多机部署时,开发⼈…...
Wails 安装初体验
文章目录 Wails 安装说明1. 系统要求2. 安装步骤3. 构建应用 结论 Wails 安装说明 Wails 是一个用于构建桌面应用的 Go 框架,结合了现代前端技术。以下是安装步骤: 1. 系统要求 Go 1.16 或更高版本Node.js 和 npm可选:适用于 Windows、mac…...
架构师篇-10、DDD实战篇:通过领域模型落地系统
基于领域模型的设计与开发 数据库设计程序设计微服务设计 在线订餐系统的领域事件通知 微服务拆分 事件风暴会议 梳理领域事件进行领域建模识别聚合关系划分限界上下文 用户下单领域模型 更新后的模型 领域模型的设计实现过程 数据库设计 数据库映射:一对一关系…...
C++ | Leetcode C++题解之第190题颠倒二进制位
题目: 题解: class Solution { private:const uint32_t M1 0x55555555; // 01010101010101010101010101010101const uint32_t M2 0x33333333; // 00110011001100110011001100110011const uint32_t M4 0x0f0f0f0f; // 000011110000111100001111000011…...
Git安装与使用及整合IDEA使用的详细教程
1. 版本控制软件介绍 版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理…...
高效办公秘诀:使用Excel超级处理器提高工作效率,提升职场竞争力
在现今快节奏的工作环境中,如何高效地完成工作任务,减少加班时间,成为了许多职场人士关注的焦点。其中,Excel作为一款功能强大的电子表格软件,被广泛应用于数据处理、分析以及报表制作等领域。然而,仅仅依赖…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
