当前位置: 首页 > news >正文

信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的

信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的

  • 图片的存储
    • 图片的文件格式
    • 像素数据的二进制表示
    • 存储和处理
    • 显示
    • 总结
  • 图片的显示
    • 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)的电信号存储在磁性介质或闪存芯片上。

处理
当需要显示图片时,操作系统和应用程序将图片文件从存储设备加载到内存中,进行解码和处理。处理后的像素数据以二进制形式存储在内存中。

显示

显示器将内存中的像素数据转换为光信号,以人类可见的方式显示图片。

显示过程

  1. 帧缓冲区:显卡(GPU)将处理后的像素数据存储在帧缓冲区中,这个缓冲区通常在显存(VRAM)中。
  2. 数模转换:显卡将帧缓冲区中的二进制像素数据转换为模拟信号或保持数字信号传输。
  3. 显示信号:显卡通过显示接口(如HDMI、DisplayPort、VGA)将信号传输到显示器。
  4. 像素点控制:显示器的控制电路根据接收到的信号控制液晶显示器的每个像素点,调整其颜色和亮度。

总结

在计算机最底层,图片文件中的数据最终都表示为高电平和低电平的电信号,这些电信号对应二进制的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显示器上显示一个图像,显示过程如下:

  1. 信号传输:显卡将图像数据通过HDMI接口传输到显示器。
  2. 时序控制:TCON将图像数据解析为行和列的数据,并按照行和列的顺序传输到显示面板。
  3. 行列驱动:行驱动器依次选择每一行,列驱动器在选中的行上施加适当的电压,控制每个子像素的透光度
  4. 电压控制:电极在每个子像素上施加适当的电压,使液晶分子扭转相应的角度,控制通过的光线量
  5. 色彩显示:光线通过液晶材料和颜色滤光片,形成红、绿、蓝三种颜色的组合,显示出所需的颜色。
  6. 背光提供光源: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作为一款功能强大的电子表格软件,被广泛应用于数据处理、分析以及报表制作等领域。然而,仅仅依赖…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...

云安全与网络安全:核心区别与协同作用解析

在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...