信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的
信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的
- 图片的存储
- 图片的文件格式
- 像素数据的二进制表示
- 存储和处理
- 显示
- 总结
- 图片的显示
- 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作为一款功能强大的电子表格软件,被广泛应用于数据处理、分析以及报表制作等领域。然而,仅仅依赖…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

rknn toolkit2搭建和推理
安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...

软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...

一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究
摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…...

【51单片机】4. 模块化编程与LCD1602Debug
1. 什么是模块化编程 传统编程会将所有函数放在main.c中,如果使用的模块多,一个文件内会有很多代码,不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其他.c文…...