音视频开发基本概念

基本概念

  1. 码率(Bitrate):码率是指单位时间内传输或处理的数据量,通常以每秒的比特数(bps)来表示。对于音频和视频,更高的码率通常意味着更高的音视频质量,但也会占用更多的带宽或存储空间。

  2. 时长(Duration):指音视频内容的持续时间,通常以小时、分钟和秒来表示。

  3. 封装格式(Container Format):封装格式是指用来封装音视频流、字幕等多媒体数据的文件格式,如MP4、AVI、MKV等。它们可以包含多个音频、视频和其他数据流,并提供元数据信息。

  4. 编码协议(Encoding Protocol):编码协议是指用来对音频和视频数据进行压缩和编码的算法和规范,常见的有H.264、H.265、AAC等。正确的编码可以有效地减小文件大小同时保持较高的质量。

  5. 视频关键参数:

    • 分辨率(Resolution):指视频图像的水平像素数和垂直像素数,如1920x1080代表1080p分辨率。
    • 帧率(Frame Rate):指每秒播放的图像帧数,常见的有24fps、30fps、60fps等。
    • 画质(Quality):反映视频图像的清晰度和细节程度。
    • 旋转角度(Rotation Angle):指视频图像可能的旋转角度,可用于调整视频方向。
    • 像素格式(Pixel Format):描述视频数据的像素编码格式,如YUV420、RGB等。
  6. 音频关键参数:

    • 采样率(Sample Rate):指每秒钟对声音信号的采样次数,常见的有44.1kHz、48kHz等。
    • 声道数(Channels):指音频数据中的声道数量,如单声道(Mono)和立体声(Stereo)。
    • 声道布局(Channel Layout):描述不同声道之间的关系及位置。
    • 音质(Audio Quality):反映音频的清晰度和保真度。
    • 采样数(Samples):指每秒钟的音频采样数。
    • 采样位数(Bit Depth):描述每个采样点的位数,常见的有16位或24位。
    • 帧时长(Frame Duration):音频数据按帧划分,帧时长指每一帧的持续时间。

码率(Bitrate)

码率(Bitrate)是指单位时间内传输或存储的比特数,通常用比特每秒(bps)或千比特每秒(Kbps)来表示。码率是衡量压缩编码数据量大小和传输速度的重要指标,也直接影响了音视频文件的质量和大小。

在音频和视频编码中,码率决定了每个时间单位内包含的信息量。较高的码率可以提供更多细节和更好的音视频质量,但会导致文件大小增加;而较低的码率则可能会导致信息丢失和画面模糊。因此,在实际应用中需要权衡码率与音视频质量之间的关系。

在音频编码中,常见的码率包括128 Kbps、256 Kbps等,高码率可以提供更清晰的声音效果,适合高保真音乐传输;而在视频编码中,码率一般根据分辨率、帧率和压缩格式来确定,如H.264编码的视频常见的码率范围为几百Kbps到几十Mbps。

  1. 音频编码

    • MP3:常见的码率范围为 64 Kbps 到 320 Kbps。
    • AAC:常见的码率范围为 96 Kbps 到 320 Kbps。
    • FLAC:码率一般较高,通常在 800 Kbps 到 1400 Kbps 之间。
  2. 视频编码

    • H.264(AVC):常见的码率范围为数百 Kbps 到数十 Mbps。
    • H.265(HEVC):相比H.264更高效,通常的码率范围为几十 Kbps 到几十 Mbps。
    • VP9:谷歌开发的开源视频编码格式,码率范围与H.265类似。

封装格式

封装格式(Container Format)是一个非常重要的概念。封装格式定义了如何存储音频、视频以及可能的其他数据(如字幕、元数据等)在一个文件中。它决定了多媒体数据的组织结构和如何同步播放各种类型的流。理解封装格式对于进行音视频处理、编辑、播放等工作至关重要。

  1. 封装格式的作用
    多媒体数据组织:封装格式规定了音频、视频和其他数据如何存放在文件中,包括数据的排列顺序、索引信息等。
    同步播放控制:确保音频和视频可以在播放过程中准确同步,提供流畅的播放体验。
    兼容性与互操作性:不同的设备和播放软件可能支持不同的封装格式,选择合适的封装格式可以提高文件的兼容性。
    元数据存储:封装格式允许在文件中存储额外的信息,如作者、版权信息、播放列表等。

  2. 常见的封装格式
    AVI(Audio Video Interleave):由微软开发,兼容性好,但不支持现代编码格式的一些特性,如H.264的高级特性。
    MP4(MPEG-4 Part 14):广泛使用的国际标准格式,支持多种编码格式,包括H.264和HEVC等,具有很好的网络传输性能和广泛的设备兼容性。
    MKV(Matroska Video):一个开源的封装格式,支持几乎所有的编码格式,可以包含音频、视频、字幕等多种流,功能强大但并非所有设备都支持。
    MOV(QuickTime File Format):由苹果公司开发,与MP4格式类似,广泛用于苹果的生态系统中。
    FLV(Flash Video Format):主要用于网络上的流媒体视频,随着HTML5的普及和Adobe Flash的淘汰,这种格式的使用正在减少。

  3. 封装格式与编码格式的区别
    封装格式不同于编码格式(Codec)。编码格式定义了如何压缩和解压缩音视频数据,而封装格式则定义了编码后的数据如何存储和传输。一个封装格式通常可以包含多种编码格式的音视频数据。例如,MP4文件可以包含H.264编码的视频和AAC编码的音频。

编码协议

编码协议是在通信过程中规定数据如何进行编码和解码的一组约定。它定义了数据的格式、传输方式、错误检测与纠正等内容,确保数据能够准确无误地在通信双方之间传输。

  1. 数字编码协议:数字编码协议将数据转换为数字形式进行传输,在网络通信中被广泛应用。常见的数字编码协议包括:

    • ASCII(美国标准信息交换码):一种用于文本字符的标准编码方案,每个字符用7位或8位表示。
    • UTF-8(Unicode转换格式):一种用于表示Unicode字符的可变长度编码方案,支持全球范围内的字符集。
    • HTTP(超文本传输协议):用于在Web上传输数据的协议。HTTP使用ASCII编码来传输文本数据。
  2. 模拟编码协议:模拟编码协议将数据转换为连续的模拟信号进行传输,通常用于音频和视频数据的传输。常见的模拟编码协议包括:

    • PCM(脉冲编码调制):将模拟声音信号转换为数字信号的编码方式,常用于数字音频设备。
    • MPEG(运动图片专家组):一系列用于压缩和编码音频和视频数据的标准,例如MPEG-2、MPEG-4等。

下面是一些常见的编码协议:

编码协议类型描述
ASCII数字编码用于表示文本字符的标准编码方案
UTF-8数字编码支持Unicode字符的可变长度编码方案
HTTP数字编码在Web上传输数据的协议
PCM模拟编码将模拟声音信号转换为数字信号的编码方式
MPEG模拟编码用于压缩和编码音频和视频数据的标准

视频

视频是一种通过连续帧的方式记录和呈现运动图像的多媒体形式。视频由一系列静止的图像帧组成,每秒播放多个图像帧以展示连续的运动效果。在音视频开发中,视频通常包含有声音和图像,并通过特定的编码技术进行压缩和传输。

视频编码

视频编码是将原始视频信号转换为数字数据的过程,以实现视频的压缩和传输

常见的视频编码标准包括H.264/AVC(Advanced Video Coding)、H.265/HEVC(High Efficiency Video Coding)和VP9等。这些编码标准采用不同的压缩算法来降低视频数据量,并保持相对较高的视觉质量。

视频编码主要涉及以下几个核心概念:

  1. I帧、P帧和B帧:这些是视频编码中的三种关键帧类型。I帧(Intra-frame)是独立帧,它完全依赖于自身像素数据进行解码;P帧(Predictive frame)通过参考前一个关键帧或I帧来进行预测差异;B帧(Bi-directional predicted frame)通过参考前后两个关键帧或I/P帧来进行双向预测。

  2. 运动估计与补偿:运动估计是一项重要的技术,用于寻找连续视频图像之间的运动差异。运动补偿则根据运动估计结果,在编码时只传输运动信息和残差值,从而减少数据量。

  3. 变换与量化:变换技术(如离散余弦变换,DCT)用于将空域的图像数据转换为频域数据。在频域中,对图像的高频细节进行量化,并丢弃一些不可见的细节,以实现压缩。

  4. 熵编码:熵编码是一种无损压缩技术,它通过根据数据出现的概率分布来分配较短的编码字节给常见的数据值,从而进一步减小数据大小。

帧率与时间轴

帧率是指每秒钟显示的图像帧数。常见的视频帧率有24、25、30、50、60等。帧率决定了视频的流畅度和动态效果。高帧率能够提供更流畅的画面,特别适用于快速移动或快节奏的场景,而低帧率则可以节省带宽和存储空间。

时间轴是描述视频或音频时序的概念。它以时间为横轴,以音频或视频数据为纵轴来展示媒体文件中各个片段的位置和持续时间。时间轴上可以标记出关键事件,如音频剪辑、视频片段等,并通过拖拽或调整操作来编辑媒体内容。

在音视频开发中,通过控制帧率可以实现对视频播放速度的控制。例如,将一个10秒钟的视频文件以30帧/秒的速度播放,则总共会有300个图像帧呈现给观众。

分辨率与画面质量

1.分辨率
分辨率是指视频图像的细节程度,通常用水平和垂直像素数来表示。例如,1920x1080分辨率意味着视频图像由1920个水平像素点和1080个垂直像素点组成。分辨率越高,能够显示的细节就越多,图像就越清晰。在音视频开发中,分辨率是一个核心参数,因为它直接影响到视频的清晰度和文件大小。

2.画面质量
画面质量是指视频图像的整体观感,包括清晰度、颜色准确性、对比度等多个方面。画面质量不仅受分辨率的影响,还与编码器的压缩效率、传输过程中的数据丢失、播放设备的显示性能等因素有关。即使分辨率相同,由于这些因素的不同,最终的画面质量也可能有很大差异。

3.分辨率与画面质量的关系

  • 直接关系:理论上,分辨率越高,可以展现的图像细节越多,有助于提升画面质量。但这种提升有一个前提条件,即显示设备必须支持相应的分辨率。
  • 间接影响:高分辨率视频需要更高的数据传输速率和更大的存储空间。如果网络条件不佳或存储空间有限,可能需要通过增加压缩比来适应,而过度的压缩会降低画面质量。
  • 平衡考虑:在实际的音视频开发过程中,需要根据目标用户的设备性能、网络环境等因素,平衡分辨率和画面质量,以提供最佳的用户体验。
编码参数与比特率

编码参数

编码参数指导视频编码器如何处理和压缩原始视频数据。这些参数包括但不限于分辨率、帧率(FPS)、关键帧间隔(GOP长度)、色彩深度以及使用的编码标准(如H.264、H.265/HEVC等)。这些参数的设置直接影响视频的视觉质量、压缩效率和播放兼容性。

  • 分辨率:决定了视频的清晰度。
  • 帧率:决定了视频的流畅度。
  • 关键帧间隔:影响视频寻找(seeking)的效率和压缩效率。
  • 色彩深度:影响视频的色彩表现力。
  • 编码标准:不同的编码标准有不同的压缩效率和兼容性。

比特率

比特率(Bitrate)是指单位时间内传输的数据量,通常以bps(bits per second)为单位。视频比特率直接影响视频文件的大小和画面质量。高比特率意味着每秒传输更多的数据,能够保留更多的原始图像细节,从而提高画面质量;但同时也意味着文件更大、对网络带宽的需求更高。在实际应用中,需要根据目标平台和用户的网络环境来合理设置比特率。

某些编码参数的选择会直接影响到所需的比特率:

  • 高分辨率和高帧率视频需要更高的比特率以保持良好的画面质量。
  • 更小的关键帧间隔可以提高视频的随机访问性能,但可能会增加所需的比特率。
  • 高效的编码标准(如H.265相比于H.264)可以在相同的比特率下提供更好的画面质量,或者在保持相同画面质量的情况下降低所需的比特率。
容器格式与封装

容器格式

容器格式,有时也称为文件格式,是一种可以包含多种类型数据的格式,例如视频、音频、元数据(如标题、作者信息)、同步信息等。它规定了这些不同类型数据如何被组织、封装和同步。容器格式对于最终用户来说通常是透明的,但对于内容的创建、编辑、分发和播放至关重要。

常见的容器格式包括:

  • MP4 (MPEG-4 Part 14):非常通用的格式,支持H.264/H.265视频编码和AAC音频编码,广泛应用于网络视频和移动设备。
  • MKV (Matroska Video):一个开源格式,支持几乎所有的视频和音频编码,以及复杂的功能如多语言字幕、章节等。
  • AVI (Audio Video Interleave):由微软开发,兼容性好,但不支持现代高效编码如H.264或H.265。
  • MOV:由苹果公司开发的格式,QuickTime的基础,与MP4类似但支持一些额外的特性。

封装

封装是指将视频、音频和其他相关数据打包到单一文件中的过程。这个过程涉及到选择合适的容器格式,并根据该格式的规范将编码后的多媒体数据和元数据组织起来。封装过程不会改变视频或音频本身的内容,但会影响文件的兼容性、大小和播放效率。

实时传输与流媒体
  1. 实时传输(Real-time Transmission):

    • 实时传输指的是音视频数据通过网络以实时的方式传输和接收,确保数据能够按照时间顺序即时地被处理和呈现。
    • 在实时传输中,延迟(Latency)是一个重要的考量因素,尤其对于视频会议、直播等需要即时交互的应用场景更为关键。
    • 实时传输需要在音视频编码、网络传输、解码和显示等方面进行优化,以降低延迟、提高稳定性并保证音视频数据的质量。
  2. 流媒体(Streaming Media):

    • 流媒体是一种通过互联网实时传输和播放音视频内容的技术,使用户可以边下载边播放多媒体文件,而无需完全下载整个文件。
    • 流媒体技术采用了特定的传输协议和流式传输方式,将音视频数据分割成小块逐步传输,实现了快速响应和流畅播放的效果。
    • 流媒体服务包括视频点播(Video on Demand)、在线直播(Live Streaming)等形式,为用户提供了即时访问和观看各种音视频内容的便利性。

音频

声音是一种物理现象,它产生于物体振动时所产生的声波。这些声波通过空气传播到人们的耳膜,然后经过大脑的处理和反射,最终被我们感知为声音。

声音具有频率和振幅两个主要特征。频率可以看作是声音的时间轴,而振幅则对应于声音的电平轴。声音以波的形式传播,就像水波在水面上扩散一样。频率指的是声波的震动频率,通常在20 Hz到20 kHz之间的声音是人耳可以识别的范围内。

因此,当物体振动时产生声波,这些声波通过空气传播到我们的耳朵,并在大脑中被处理解读为我们所听到的声音。声音的频率和振幅决定了我们感知到的声音的音调和音量。

音频是指以声音作为信息载体的信号。它通常以电子或数字形式记录和传输声音信号。音频可以包括语音、音乐、环境声音等各种听觉信息。

在电子音频中,声音信号经过转换和编码处理,被记录成连续的波形数据。这些数据可以被存储到各种媒介上,例如磁带、CD、数字音频文件等。当我们播放音频时,这些数据会被解码并转换回声音信号,从而通过扬声器或耳机发出声音。

声波可以按照频率的不同进行分类:低于20Hz的声波被称为次声波;20Hz到20kHz的声波被称为可闻声;20kHz到1GHz的声波被称为超声波;而高于1GHz的声波则称为特超声或微波超声。

音频可以按照频率进行分类,主要可以分为以下几类:

  1. 低音频(低频): 低音频通常指频率较低的声音,包括20 Hz到250 Hz之间的声音。这些声音在音乐中通常对应着低沉的贝斯声和鼓的低频敲击声。

  2. 中音频(中频): 中音频通常指频率介于250 Hz到2000 Hz之间的声音。这个范围包括了大部分人类语音的频率范围,因此在语音通信和语音识别中扮演着重要的角色。

  3. 高音频(高频): 高音频指频率较高的声音,通常在2000 Hz到20000 Hz之间。这些声音包括很多乐器的高音部分以及一些细微的环境声音,比如鸟鸣和水流声等。

音质

在音视频开发中,音质通常指的是音频的质量。它与声音的清晰度、真实性和准确性有关。音质的好坏取决于多个因素,包括录音设备的性能、音频编码算法、传输和解码过程中是否出现数据丢失或压缩损失等。

采样频率

采样频率是指在数字化音频过程中,对模拟声音信号进行离散化处理时所采用的采样率。它表示每秒钟对声音信号进行采样的次数。

采样频率决定了数字音频的质量和精确度。根据奈奎斯特-香农采样定理(Nyquist-Shannon sampling theorem),为了准确地重构原始声音信号,采样频率应该至少是信号最高频率的两倍。因此,一般来说,人耳可以感知的最高频率约为20kHz,因此常见的音频采样频率为44.1kHz或48kHz。

较高的采样频率可以更准确地记录模拟声音信号的细节和频率范围,提供更高的音频质量。然而,增加采样频率也会增加存储和处理音频数据的成本和复杂性。

信号频率

信号频率通常指的是音频或视频信号中包含的波动或振荡的频率。对于音频信号,信号频率表示声波的频率,即声音的音调高低。而对于视频信号,信号频率则表示图像的变化频率,即图像中的运动和变化速度。

在音频方面,信号频率用来描述声音波形的振荡频率,通常以赫兹(Hz)为单位。人类能够感知的听觉频率范围大约在20Hz到20kHz之间,因此音频信号的频率通常在这个范围内。

在视频方面,信号频率用来描述图像的变化速度,通常以帧率(每秒帧数)来表示。视频信号的频率决定了视频的流畅度和清晰度,常见的视频帧率有24fps、30fps、60fps等。

声道

声道(channel)指的是音频信号流中的一个独立的音频通道。在立体声系统中,通常会有两个声道,分别是左声道和右声道,用来分别传输左右两个声音信号。而在多声道系统中,可能会有更多的声道,如5.1声道系统可以包括五个主要声道(前置左、前置中、前置右、后置左、后置右)和一个低音炮声道。

每个声道都可以包含独立的音频数据,用来呈现不同的声音效果。在声道的定义中,还可以包括声道的编码格式、采样率等信息,以便音视频设备正确解析和播放音频数据。

声道布局是指在音频或视频信号中使用的声道数量和排列方式。在音视频开发中,声道布局对于声音的传输和播放至关重要。常见的声道布局包括:

  1. 单声道(Mono):只有一个声道,通常用于语音录音或低成本的音频系统。
  2. 双声道(Stereo):左右两个声道,用于模拟立体声效果,一般用于音乐和影视作品。
  3. 5.1声道:包括左前、右前、中央、左后、右后和低音炮等六个声道,用于环绕声音效果。
  4. 7.1声道:在5.1声道基础上增加了两个侧声道,提供更加立体的环绕声效果。
  5. Dolby Atmos:一种支持多达128个声道的音频格式,可以实现更加沉浸式的声音体验,在影院和家庭影音系统中应用广泛。
音帧

音帧(audio frame)是在音频数据流中的一个基本单元,它包含了一段时间内的音频信号数据。通常情况下,音频数据会被分割成一系列连续的音帧,每个音帧包含了一定长度的音频信号。音帧的大小通常以采样点数来衡量,比如在常见的音频编码中,一个音帧通常包含有几十到几百个采样点。音帧的大小会影响音频数据的传输和处理效率,也会直接影响到音频信号的质量和延迟。

帧时长

帧时长是指每一帧(frame)的持续时间。在视频中,一帧是图像的一帧,而在音频中,一帧是一小段音频数据。帧时长的长度通常以毫秒为单位来表示,在音视频编解码过程中,帧时长的设置会影响到视频的流畅度和音频的延迟。

采样数

采样数(Sampling rate)是指在一定时间内采集或记录音频信号的次数。在数字音频处理中,采样数通常以每秒的采样次数来表示,单位为赫兹。常见的音频采样率有 44.1kHz、48kHz 等。

采样率决定了数字音频信号的精度和质量。通常情况下,采样率越高,音频质量也越高,但相应的数据量也会增加。

采样位数

采样位数是指在数字音频处理中,用来表示每个采样点的数值精度的位数。它决定了音频信号的动态范围和分辨率。常见的采样位数有8位、16位、24位和32位等。

较低的采样位数会导致音频信号的动态范围减小,可能会出现失真和噪音;而较高的采样位数可以提供更高的信噪比和音频质量,但也会占用更多的存储空间和带宽。

音视频开发学习资料、面试题等+群 973961276 领取

音视频开发教程:https://xxetb.xet.tech/s/3jDmTD

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/730722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT 解决在线安装版本下载速度(以国内镜像启动安装器的方式)

关于Fiddler输入steam的教程,本人试过,无效略过… 正确方式 具体操作方法: 1.方式一、未安装过QT 下载好安装器之后,在安装器(qt-unified-windows-x64-4.6.0-online.exe)的文件夹中空白处,按…

pandas日常使用大全

第一部分 数据统计 import numpy as np import pandas as pd 1、创建DataFrame对象 生成50行5列【20,1000)之间的随机整数 datanp.random.randint(20,1000,[20,5]) indexrange(1,21) columns[中国,美国,英国,德国,法国] dfpd.DataFrame(datadata,indexindex,col…

UVA378 Intersecting Lines 题解

UVA378 Intersecting Lines 题解 怎么这么多点斜式邪教啊。 解法 在计算几何中,我们应该尽可能地避免使用浮点数的计算,尽可能地使用向量计算。 本篇题解默认读者具有向量基础。 为了方便讲解,我们将输入的四个点分别记作 A , B , C , …

React应用中的消息订阅发布模式实践:PubSub库的应用

React应用中的消息订阅发布模式实践:PubSub库的应用 随着React应用的复杂性增加,组件之间的通信变得越来越重要。而消息订阅发布(PubSub)模式提供了一种简洁而灵活的方式来实现组件间的解耦通信。在这篇博客中,我们将…

20240307-1-前端开发校招面试问题整理JavaScript

前端开发校招面试问题整理【1】——JavaScript 1、JavaScript 基础 Q:介绍 js 的基本数据类型? 基本类型(值类型):String,Number,Boolean,Null,Undefined,S…

Android获取图片缩略图尺寸问题

1.概述 在选择图片的功能实现中,发现某些图片存在缩略图过于小,因而展示模糊的问题。经分析确认确实查询到的图片尺寸特别小。 2.代码 获取缩略图 fun getImageThumbnail(context: Context, id: Int, int width, int height): Bitmap? {return try …

WinSCP下载安装并结合内网穿透实现固定公网TCP地址访问本地服务器

文章目录 1. 简介2. 软件下载安装:3. SSH链接服务器4. WinSCP使用公网TCP地址链接本地服务器5. WinSCP使用固定公网TCP地址访问服务器 1. 简介 ​ Winscp是一个支持SSH(Secure SHell)的可视化SCP(Secure Copy)文件传输软件,它的主要功能是在本地与远程计…

FFmpeg教程(干货快速上手)

什么是FFmpeg? FFmpeg是一款免费、开源的跨平台多媒体处理工具,它支持几乎所有的视频格式和编码标准。FFmpeg包含了一系列的子项目和工具,如ffmpeg命令行工具用于转码和处理视频和音频文件,ffplay用于播放多媒体内容,…

穿越牛熊,股市的春天还有多远?

2023年,资本市场的严冬令无数投资者和机构投资者都感受到了前所未有的压力。VC/PE、公募基金、股权投资类公司等机构,在这一年里业绩普遍不佳,寒意弥漫。VC/PE机构的营业收入普遍呈现负增长,公募基金更是历史上首次连续两年亏损&a…

LeetCode 刷题 [C++] 第3题.无重复字符的最长子串

题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 题目分析 可以使用滑动窗口加哈希表来实现: 使用start和end两个变脸来表示滑动窗口的头部位置和尾部位置,两者开始均为0;借助哈希表来记录已经遍…

redis数据结构类型

文章目录 数据结构特殊的数据结构bitmap 1.string命令1.单值缓存2.对象缓存3.分布式锁4.计数器 2.Hash常用命令应用场景应用场景 4.Set5.Sorted Setzset为什么不用红黑树和用B树 合理的数据编码扩容机制 数据结构 string:最基本的数据类型,二进制安全的…

Unity 给刚体一个力或速度

创建平面和小球,给力或给速度让其弹起 给小球挂载刚体(Rigibdody)和脚本 (力是累计或者衰减的,直接给速度就是赋值,但如果速度就和力类似了) using System.Collections; using System.Collect…

解决 ucore lab3 无法触发 page fault 的问题

问题描述 完成清华大学操作系统实验课 ucore(x86) lab3 时,发现无法触发 page fault 异常,具体来说时 check_pgfault() 函数会在执行如下代码时报错 static void check_pgfault(void) {// ......uintptr_t addr 0x100;assert(find_vma(mm, addr) vma…

three.js 射线Ray,三维空间中绘制线框

效果&#xff1a; 代码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs"></div> <div>{{ res1 }}</div> <div>{{ res2 }}</div><…

serial库串口通讯

前言 Python的pyserial库允许与不同的设备进行通信。 安装 python > 3.4 pip install pyserial 基本流程 import serial# 1. 打开串口 ser serial.Serial()# 2. 设置串口参数&#xff08;例如波特率、数据位、校验位、停止位&#xff09; ser.port /dev/ttyS0 # 这是一…

CDN介绍

概念介绍 CDN Content Delivery Network&#xff0c;缩写&#xff1a;CDN&#xff09;是一种提供更快互联网访问的服务&#xff0c;通过在网络的边缘或核心交换区域部署内容代理服务器来实现。这些服务器利用全局负载调度机制来分发内容&#xff0c;从而构建了一个覆盖范围广…

nRF52832——GPIOTE与外部中断

这里写目录标题 GPIOTE 原理分析GPIOTE 输入事件应用GPIOTE 事件寄存器应用GPIOTE 事件组件的应用&#xff08;库函数&#xff09;GPIOTE PORT 事件应用 GPIOTE 任务应用GPIOTE 任务触发 LED 寄存器操作组件方式进行任务配置 GPIOTE 原理分析 GPIO 任务和时间&#xff08;GPIO…

仿牛客网项目---Elasticsearch分布式搜索引擎

1.什么是ElasticSearch分布式搜索引擎&#xff1f; Elasticsearch是一个开源的分布式搜索引擎&#xff0c;提供实时的、高可用性的搜索和分析解决方案。它支持快速索引和搜索大规模数据&#xff0c;具有分布式架构、RESTful API、基于JSON的查询语言等功能&#xff0c;适用于各…

windows下搭建虚拟机

Windows下搭建虚拟机 安装Linux虚拟机 下载&安装VirtualBox&#xff1a;https://www.virtualbox.org/&#xff0c;点击 download virtualbox 6.x&#xff0c;选择对应平台的版本&#xff1a;Windows hosts → https://download.virtualbox.org/virtualbox/6.1.38/Virtual…

蓝桥杯集训·每日一题2024 (二分,双指针)

前言&#xff1a; 开学了&#xff0c;平时学习的压力也逐渐大起来了&#xff0c;不过还算可以接受&#xff0c;等到后面阶段考的时候就不一样了&#xff0c;我目前为了转专业退选了很多课&#xff0c;这些课我都需要花时间来刷绩点&#xff0c;不然保研就没有竞争力了。我自己会…