视频自学笔记

一、视频技术基本框架

二、视频信号分类

2.1信号形式

2.1.1模拟视频

模拟视频是指由连续的模拟信号组成的视频图像,以前所接触的电影、电视都是模拟信号,之所以将它们称为模拟信号,是因为它们模拟了表示声音、图像信息的物理量。摄像机是获取视频信号的来源,早期的摄像机以电子管作为光电转换器件,把外界的光信号转换为电信号。摄像机前的被拍摄物体的不同亮度对应于不同的亮度值,摄像机电子管中的电流会发生相应的变化。模拟信号就是利用这种电流的变化来表示或者模拟所拍摄的图像,记录下它们的光学特征,然后通过调制和解调,将信号传输给接收机,通过电子枪显示在荧光屏上,还原成原来的光学图像。这就是电视广播的基本原理和过程。模拟信号的波形模拟着信息的变化,其特点是幅度连续(连续的含义是在某一取值范围内可以取无限多个数值)。其信号波形在时间上也是连续的,因此它又是连续信号。

模拟视频的特点如下:

优点:技术成熟、价格低、系统可靠性较高。

缺点:不适宜进行长期存放,不适宜进行多次复制。随着时间的推移,录像带上的图像信号强度会逐渐衰减,造成图像质量下降、色彩失真等现象。

来自 <https://zhuanlan.zhihu.com/p/54045642>

2.1.2数字视频

数字视频是对模拟视频信号进行数字化后的产物,它是基于数字技术记录视频信息的。模拟视频可以通过视频采集卡将模拟视频信号进行A/D(模/数)转换,这个转换过程就是视频捕捉(或采集过程),将转换后的信号采用数字压缩技术存入计算机磁盘中就成为数字视频。模拟视频一般采用分量数字化方式,先把复合视频信号中的亮度和色度分离,得到YUV或YIQ分量,然后用三个模/数转换器对三个分量分别进行数字化,最后再转换成RGB空间。

来自 <数字视频 - 知乎>

2.2传输方式划分

按传输方式,我们首先将视频分为复合视频(Composite Video)和分量视频(Component Video)。

复合视频只用一个通道(这也是为什么叫复合信号)进行视频传输,只传输模拟信号,传输的是480i或720i标清(480p或720p)的视频。复合视频不能携带音频信号。

分量视屏分为模拟分量视屏和数字分量视屏。

数字分量视频使用YCbCr颜色空间(或R'G'B'),它将视频信号分为多个分量进行传输(数字信号),当用于广播和录制时,将其调制为复合NTSC、PAL、SECAM信号。

模拟分量分频一般使用YPbPr颜色空间,它将视频信号分为多个分量进行传输(模拟信号),并且不携带音频信号。

2.3按分辨率划分

视屏的分辨率概念比较简单,就是组成视屏的每一帧图像的像素点数量,一般用行和列像素相乘来表示。视屏分辨率决定了视屏的清晰度,也决定了模拟视屏的带宽和数字视频的数据量大小。常见的有720×480,1280×720,1920×1080,现在还有3840x2160,7680x4320。

2.4扫描方式

视频是一系列静止图像组成,而每幅图像由扫描线(沿着显示器从上到下,一行一行的数据线)组成。如下图,

 上方的就是一帧一帧的静止图像,下方的就是一帧图像的扫描线组成。视频(其实是图像)在显示器上按照一定时间刷新,显示器需要知道什么时候刷新,因此需要两个信号来告诉显示器如何显示。第一个是垂直同步信号,告诉显示器要显示下一幅图像了(否则一幅图像看到天亮);第二个是水平同步信号,告诉显示器要显示下一条扫描线了(否则一直刷新第一行,这能看?)。数据流大致是下图这样的,一直到视频结束。

注意:在视频中,扫描线是最小的处理单元;而图像中,像素点是最小的处理单元。

隔行扫描和逐行扫描

逐行扫描:以上讨论的其实都是逐行扫描。一帧图像从第一行扫描到最后一行,依次显示,这个很好理解,不多赘述。

隔行扫描:将图像显示在扫描式的显示设备上的方法,扫描设备交换扫描偶数行和奇数行。这样说并不直观,我们来看图。

从图中我们可以看到,对于静止图像,第一次我们扫描它的奇数行并且将他们显示到显示器中,第二次我们扫描它的偶数行并将他们显示到显示器中。扫描一次得到的一半图像,叫做场。那么,每次只扫描一半,是不是我们看到的图像也是一半呢?不是这样的。因为图像是一帧接一帧的,每次刷新一半,另一半其实是上一帧图像刷新的扫描线。

如帧1的场1,场2,帧2的场1,场2。第一次扫描帧1的场1,另一半没有,这个时候确实是半个图像,但是短到你不能发现,然后扫描帧1的场2,由于视觉暂留,你会看到场1和场2的结合,也就是完整的帧1,再之后就是帧2和场1和帧1的场2的结合,以此类推。

隔行扫描的优点就是对帧率的要求低,但是交错式的显示有时会出现闪烁效应(不具体解释,大家可以自行问度娘),显示效果不如逐行扫描。

将分辨率和扫描方式结合到一起就可以说明一下我们平常听到的1080p,720p,1080i 这些名词是什么意思了:

P:progressive,意思是逐行扫描,帧编码
I:interlace,意思是隔行扫描,场编码

1080i格式:1920×1080(水平1080线,隔行扫描)

1080p格式:1920×1080(水平1080线,逐行扫描)

720i格式:1280×720(水平720线,隔行扫描)

720p格式:1280×720(水平720线,逐行扫描)

其他分辨率类似。

2.5清晰度

视频清晰度可以如下分类:

标准清晰度:480i和576i。

增强清晰度:480p和576p。

高清晰度:720p和1080i。

超高清晰度:4K分辨率(3840×2160 像素)和8K分辨率 (7680×4320像素)

2.6按信号制式划分

视屏信号制式是指电视制式,即电视信号的标准,可以简单地理解为用来实现电视图像、声音信号所采用的一种技术标准。电视制式有很多种。对模拟电视,有黑白电视制式、彩色电视制式,伴音制式等;对于数字电视,有图像、音频信号压缩编码格式(信源编码)、TS流(Transport Stream)编码格式(信道编码)、数字信号调制方式,图像显示格式等。这里只讨论模拟电视制式。

黑白电视制式的主要内容有:图像和伴音的调制方式、图像信号极性、图像和伴音的载频差、频带宽度、频道间隔、扫描参数等。世界各国所采用的黑白电视制式有:A、B、C、D、E、G、H、I、K、K1、L、M、N等,共计13种(其中A、C、E已不采用),我国为其中的D、K制。

彩色广播电视制式需要与黑白电视制式兼容,即黑白电视能够接收彩色电视信号,彩色电视也能接收黑白电视信号,只不过画面全都变成黑白的。彩色电视根据三原色原理,同时为了压缩传输频带,将R、G、B三个基色信号转变为亮度(Y)和红、蓝两个色差信号(R-Y和B-Y)。其中亮度信号可以用来传输黑白图像,色度和亮度信号组合可以恢复出R、G、B三个信号。因此,兼容制彩色电视除传送与黑白电视相同的亮度和伴音信号外,还在同一视频频带内同时传送色度信号。色度信号是由两个色差信号对视频频带高频端的色副载波进行调制而成的。为防止色差信号的调制过载,需要将红、蓝色差信号进行压缩,压缩后的红、蓝色差信号用V、U表示。

除了包括与黑白电视相同的扫描、信道等以拉丁字母来区别的制式内容外,根据发、收端对三基色信号的不同编、解码方式构成不同的彩色电视制式。今世界流行的彩色电视制式有三种: NTSC、PAL和SECAM。这三种制式不能互相兼容。在不支持某种制式的电视机上播放该种制式的信号,画面将变为黑白色。

 https://blog.csdn.net/hit_wzj/a

三、色彩空间

人类有三种视杆细胞,可以分辨三种波长的光,因此我们能看到彩色的世界。视屏技术也需要至少三个维度来量化色彩,才能保证人类对彩色画面的需求,这就构成了一个三维的色彩空间。颜色空间有多种表示方式,在视屏技术里面有下面几种比较常用。

3.1RGB

目前的显示设备大都是采用了RGB色彩空间,RGB是从颜色的原理来设计定的,它的颜色混合方式就如有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,亮度等于两者亮度之总和,即加法混合。

屏幕上的不同颜色,都由这红色,绿色,蓝色三种基本色光按照不同的比例(权重)混合而成的。一组红色绿色蓝色就是一个最小的显示单位。屏幕上的任何一个颜色都可以由一组RGB值来记录和表达。因此这红色绿色蓝色又称为三原色光,用英文表示就是R(red)、G(green)、B(blue)。RGB的所谓“多少”就是指亮度,并使用整数来表示。在用8位表示时,RGB各有256级亮度,用数字量化表示为从0、1、2...直到255。注意虽然数字最高是255,但0也是数值之一,因此共256级。

使用这种方式表示彩色图像的方式为RGB颜色空间。RGB颜色空间常用于显示器系统。通过这种形式表示的图像,每个像素的每一个颜色分量用1个字节表示,则可以表示256×256×256种不同的颜色。在常见的图像格式中,如位图(bmp)格式以RGB形式保存数据。

3.2YUV

YUV是编码true-color颜色空间(color space)的种类,Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。

“Y”表示明亮度(Luminance、Luma),“U”和“V”则是色度(Chrominance、Chroma),包含了色调和饱和度。与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV方式传送占用极少的频宽。

在实际的编解码等视频处理的过程中,YUV格式比RGB格式更为常用。在YUV格式中,一个像素由亮度分量和色度分量表示,每一个像素由一个亮度分量Y和两个色度分量U/V组成。亮度分量可以与色度分量一一对应,也可以对色度分量进行采样,即色度分量的总量少于亮度分量。

3.2.1YPbPr

YPbPr是用在模拟系统的,并且RGB和YPbPr的转换在SDTV和HDTV中是不同的。

来自 <https://zhuanlan.zhihu.com/p/28766366>

3.2.2YCbCr

YCbCr颜色空间用于数字视频系统中。

YCbCr是被ITU定义在标准ITU-R BT.601(标清SDTV),ITU-R BT.709(高清HDTV),ITU-R BT.2020(超高清)中的一种色彩空间。

YCbCr (SDTV)是在世界数字组织视频标准研制过程中作为ITU - R BT.601 建议的一部分, 其实是YUV经过Gamma的翻版。其中Y与YUV 中的Y含义一致, Cb , Cr 同样都指色彩, 只是在表示方法上不同而已。在YUV 家族中, YCbCr 是在计算机系统中应用最多的成员, 其应用领域很广泛,JPEG、MPEG,H264均采用此格式。

其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异,而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异,此即所谓的色差信号。

在视频通信系统中(特别是视频编解码)的“YUV”图像就是YCbCr。在平常的工作交流中,所称的YUV也是YCbCr。

3.2.3YUV的色度采样

因为人的感官对亮度信息的敏感度远高于对色度信息。因此相对于其他像素格式,YUV的最大优势是可以适当降低色度分量的采样率,并保证不对图像造成太大影响,这可以有效降低视屏数据量。而且,使用这种方式还可以兼容黑白和彩色显示设备。对于黑白显示设备,只需要去除色度分量,只显示亮度分量即可。

在YUV中常见的色度采样方式有4:4:4、4:2:2和4:2:0等,其中4:2:2如下图所示:

来自 <https://zhuanlan.zhihu.com/p/28766366>

3.3HSI

HSI颜色空间是从人的视觉系统出发,用色调(Hue)、色饱和度(Saturation)和亮度(Intensity)来描述色彩。HSI颜色空间可以用一个圆锥空间模型来描述。用这种描述HSI色彩空间的圆锥模型相当复杂,但确能把色调、亮度和色饱和度的变化情形表现得很清楚。

上图是HSI的双圆锥模型。模型中双圆锥的上顶点对应I=1,即白色;下顶点对应I=0,即黑色。色调(色相)用角度表示,0°表示红色,互补色相差180°。饱和度的取值范围从0到1,0对应于垂直轴的中心线(也就是说这条线上没有色彩,只有灰度),I=0.5时红色的饱和度为1,颜色空间中的点到I轴的距离即是其饱和度。

来自 <https://zhuanlan.zhihu.com/p/28859125>

3.4色彩空间变换

不同的色彩空间最终要表达的都是人类视觉系统能够正常识别的颜色,它们其实只是使用了不同的坐标系,就像直角坐标系和极坐标系之间的关系。它们之间可以相互转换。RGB和YUV转换关系如下:

RGB格式转为YUV格式

Y'= 0.299*R' + 0.587*G' + 0.114*B'
U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y')
V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y')

YUV格式转为RGB格式

R' = Y' + 1.140*V'
G' = Y' - 0.394*U' - 0.581*V'
B' = Y' + 2.032*U'

四、视屏编码技术

对于视频数据而言,视频编码的最主要目的是数据压缩。这是因为动态图像的像素形式表示数据量极为巨大,存储空间和传输带宽完全无法满足保存和传输的需求。例如,图像的每个像素的三个颜色分量RGB各需要一个字节表示,那么每一个像素至少需要3字节,分辨率1280×720的图像的大小为2.76M字节。

如果对于同样分辨率的视频,如果帧率为25帧/秒,那么传输所需的码率将达到553Mb/s!如果对于更高清的视频,如1080P、4k、8k视频,其传输码率更是惊人。这样的数据量,无论是存储还是传输都无法承受。因此,对视频数据进行压缩称为了必然之选。

4.1标准化组织

在国际组织的独立和联合开发中,产生了很多重要的视频编解码标准。主要国际组织包括ISO/IEC MPEG、ITU-T、Google、Microsoft、AVS工作组和AOM联盟等。

ITU-T,全称International Telecommunications Union - Telecommunication Standardization Sector,即国际电信联盟——电信标准分局。该组织下设的VECG(Video Coding Experts Group)主要负责面向实时通信领域的标准制定,主要制定了H.261/H263/H263+/H263++等标准。

ISO,全称International Standards Organization,即国际标准化组织。该组织下属的MPEG(Motion Picture Experts Group),即移动图像专家组主要负责面向视频存储、广播电视、网络传输的视频标准,主要制定了MPEG-1/MPEG-4等。

实际上,真正在业界产生较强影响力的标准均是由两个组织合作产生的。比如MPEG-2、H.264/AVC和H.265/HEVC等。

主要标准包括:JPEG、MJPEG、JPEG2000、H.261、MPEG-1、H.262/MPEG-2、H.263、MPEG-4 (Part2/ASP)、H.264/MPEG-4 (Part10/AVC)、H.265/MPEG-H (Part2/HEVC)、H.266/VVC、VP8/VP9、AV1、AVS1/AVS2、SVAC1/SVAC2等。

4.2主流视屏编码标准

主流视屏编码的发展历程如下图

接下来我们主要摘录下面接种影响较大的编码技术。

4.2.1 H.261

H.261视频编码标准诞生于1988年,可谓是视频压缩编码发展的第一个里程碑。因为从H.261开始,视频编码方法采用了沿用至今的基于波形的混合编码方法。H.261标准主要目标是用于视频会议和可视电话等高实时性、低码率的视频图像传输场合。

在H.261标准产生的时代,由于各国的电视制式不一致,因此不能直接互通。为了解决数据源格式不兼容的问题,H.261定义了一种公共中间格式CIF(Common Intermediate Format)。编码的目标格式首选转换为CIF格式进行编码和传输,接收端进行解码后再转换为各自的格式。H.261规定的CIF格式视频的亮度分辨率为352×288,QCIF格式的亮度分辨率为176×144。

4.2.2 MEPG-2/H.262

MPEG组织于1994年推出MPEG-2压缩标准,以实现视/音频服务与应用互操作的可能性。MPEG-2标准是针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的详细规定,编码码率从每秒3兆比特~100兆比特,标准的正式规范在ISO/IEC13818中。MPEG-2不是MPEG-1的简单升级,MPEG-2在系统和传送方面作了更加详细的规定和进一步的完善。MPEG-2特别适用于广播级的数字电视的编码和传送,被认定为SDTV和HDTV的编码标准。

MPEG-2图像压缩的原理是利用了图像中的两种特性:空间相关性和时间相关性。这两种相关性使得图像中存在大量的冗余信息。如果我们能将这些冗余信息去除,只保留少量非相关信息进行传输,就可以大大节省传输频带。而接收机利用这些非相关信息,按照一定的解码算法,可以在保证一定的图像质量的前提下恢复原始图像。一个好的压缩编码方案就是能够最大限度地去除图像中的冗余信息。

MPEG-2的编码图像被分为三类,分别称为I帧,P帧和B帧。 I帧图像采用帧内编码方式,即只利用了单帧图像内的空间相关性,而没有利用时间相关性。P帧和B帧图像采用帧间编码方式,即同时利用了空间和时间上的相关性。P帧图像只采用前向时间预测,可以提高压缩效率和图像质量。P帧图像中可以包含帧内编码的部分,即P帧中的每一个宏块可以是前向预测,也可以是帧内编码。B帧图像采用双向时间预测,可以大大提高压缩倍数。

4.2.3 H.264/AVC

H.264是由ISO/IEC与ITU-T组成的联合视频组(JVT)制定的新一代视频压缩编码标准。在ISO/IEC中该标准命名为AVC (Advanced Video Coding),作为MPEG-4标准的第10个选项;在ITU-T中正式命名为H.264标准。

4.2.4 H.265/HEVC

H.265是ITU-T VCEG 继H.264之后所制定的新的视频编码标准。H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进。新技术使用先进的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置。具体的研究内容包括:提高压缩效率、提高鲁棒性和错误恢复能力、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度等。H264由于算法优化,可以低于1Mbps的速度实现标清数字图像传送;H265则可以实现利用1~2Mbps的传输速度传送720P(分辨率1280*720)普通高清音视频传送。

4.3视屏压缩编码技术

视频信息之所以存在大量可以被压缩的空间,是因为其中本身就存在大量的数据冗余。其主要类型有:

时间冗余:视频相邻的两帧之间内容相似,存在运动关系
空间冗余:视频的某一帧内部的相邻像素存在相似性
编码冗余:视频中不同数据出现的概率不同
视觉冗余:观众的视觉系统对视频中不同的部分敏感度不同

以记录数字视频的YUV分量格式为例,YUV分别代表亮度与两个色差信号。例如对于现有的PAL制电视系统,其亮度信号采样频率为13.5MHz;色度信号的频带通常为亮度信号的一半或更少,为6.75MHz或3.375MHz。以4:2:2的采样频率为例,Y信号采用13.5MHz,色度信号U和V采用6.75MHz采样,采样信号以8bit量化,则可以计算出数字视频的码率为:

13.5*8 + 6.75*8 + 6.75*8= 216Mbit/s

如此大的数据量如果直接进行存储或传输将会遇到很大困难,因此必须采用压缩技术以减少码率。

数字化后的视频信号能进行压缩主要依据两个基本条件:

  • 数据冗余。例如如空间冗余、时间冗余、结构冗余、信息熵冗余等,即图像的各像素之间存在着很强的相关性。消除这些冗余并不会导致信息损失,属于无损压缩。
  • 视觉冗余。人眼的一些特性比如亮度辨别阈值,视觉阈值,对亮度和色度的敏感度不同,使得在编码的时候引入适量的误差,也不会被察觉出来。可以利用人眼的视觉特性,以一定的客观失真换取数据压缩。这种压缩属于有损压缩。

数字视频信号的压缩正是基于上述两种条件,使得视频数据量得以极大的压缩,有利于传输和存储。一般的数字视频压缩编码方法都是混合编码,即将变换编码,运动估计和运动补偿,以及熵编码三种方式相结合来进行压缩编码。通常使用变换编码来消去除图像的帧内冗余,用运动估计和运动补偿来去除图像的帧间冗余,用熵编码来进一步提高压缩的效率。下文简单介绍这三种压缩编码方法。

五、视屏接口

5.1模拟视屏接口

根据传输方式,模拟视屏的接口有以下三类:

5.1.1复合视屏接口

1.消费类接口RCA

RCA端子(RCA jack,或RCA connector),俗称梅花头、莲花头,是一种应用广泛的端子,可以应用的场合包括了模拟视频/音频(例:AV端子(三色線))、数字音频(例:S/PDIF)与色差分量(例:色差端子)传输等。

下图是AV端子(是不是很眼熟,小时候家里的VCD用的就是这个东西)

2.专业接口BNC

专业视屏领域会使用BNC接头,使用同轴电缆来传输视屏信号,有效提升信号质量、抗干扰能力和传输距离。

5.1.2分量视屏接口

1.SDTV/HDTV

针对有RGB和YUV两种色彩的信号SDTV/HDTV定义了两种接头

RGB Interface:

SDTV RGB接口使用三个RCA梅花连接头,传输模拟R'G'B'信号。

注意:这里使用的RCA连接头的颜色分别似乎红、绿、蓝,而我们最开始介绍的RCA端子使用的是黄、白、红,它们是完全不同的接口,传输不同的信号,注意区分。

YPbPr Interface:

SDTV YPbPr接口使用三个RCA梅花连接头,传输模拟YPbPr信号。

因为人眼对绿色最敏感,因此Y一般用绿色表示(我是这么理解的),也可以理解成PbPr分别是蓝色色差分量、红色色差分量,所以分别用蓝色和红色表示,剩下的亮度就用绿色表示了。

 上图的仪器就支持S-Video,YPbPr,CVBS(复合同步视频广播信号,也叫RCA视频)。

2. D-Connector Interface

在日本和新加坡,某些高端消费类设备上,14针母D型连接头是可用的。它们主要用于转换EIA 770.2或EIA 770.3模拟YPbPr数据。

来自 <https://zhuanlan.zhihu.com/p/28944235>

3.VGA接口

VGA(Video Graphics Array)视频图形阵列是IBM于1987年提出的一个使用模拟信号的电脑显示标准。VGA接口即电脑采用VGA标准输出数据的专用接口。VGA接口共有15针,分成3排,每排5个孔,显卡上应用最为广泛的接口类型,绝大多数显卡都带有此种接口。它传输红、绿、蓝模拟信号以及同步信号(水平和垂直信号)。

VGA线的母头如下图。

各个引脚功能

 来自 <https://zhuanlan.zhihu.com/p/28944235>

5.1.3分离视屏接口

S-Video(separate video)信号是Y、C分离信号。传输亮度信号Y和色度信号C。S-Video用于传输标清视频信号,尤其是480i和576i视频。由于亮度信号和色度信号分离,因此它的视频效果要比composite video要好,但是比component video差。

S-Video主要在美国、日本等NTSC制国家中使用。

5.2

数字视屏接口

5.2.1 SDI:

串行数字接口(SDI,Serial Digital Interface),SD/HD/3G/6G/12G-SDI;

 SDI理论上传输距离可达100m,而HDMI的传输距离一般在30m以内。

5.2.2 HDMI

高清晰度多媒体接口(英文:High Definition Multimedia Interface,HDMI)

 HDMI接口的线20米要400到600RMB,如果按照这个计量标准,SDI要使用几百米估计得破产了。然而实际上SDI的线1米才几块钱,就算是200米也才不到1000块钱。所以SDI比HDMI的成本更低!

5.2.3 DVI

DVI(Digital Visual Interface),即数字视频接口。

5.2.4 DisplayPort

DisplayPort也是一种高清数字显示接口标准,简称DP,比HDMI更先进的是,DisplayPort在一条线缆上还可实现更多的功能。

5.2.5 雷电

Intel“Thunderbolt”(雷电)接口。融合了PCIExpress数据传输技术和DisplayPort显示技术,可以同时对数据和视频信号进行传输,并且每条通道都提供双向10Gbps带宽。

 本文主要参考来源:视屏技术自学笔记 - 知乎

 

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

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

相关文章

操作系统——大容量存储结构

笔记内容及图片整理自XJTUSE “操作系统” 课程ppt&#xff0c;仅供学习交流使用&#xff0c;谢谢。 大容量存储结构概述 磁盘 磁盘为现代计算机系统提供大量外存。每个盘片为平的圆状&#xff08;类似CD&#xff09;&#xff0c;普通盘片直径为4.5~9.0厘米。盘片的两面都涂着…

CSS一些小点 —— 12.7

1. box-sizing: border-box box-sizing 属性&#xff0c;默认值为 content-box box-sizing: border-box 使padding和border的值不会再影响元素的宽高&#xff1b;padding和border的值算在指定宽高的内部&#xff08;但是外边距依然算做外部&#xff09; 2. overflow: hidden …

【GESP】C++一级练习 luogu-P1425, 小鱼的游泳时间

GESP一级综合练习&#xff0c;主要涉及时间计算&#xff0c;难度★☆☆☆☆。 题目题解详见&#xff1a;https://www.coderli.com/gesp-1-luogu-p1425/ 【GESP】C一级练习 luogu-P1425, 小鱼的游泳时间 | OneCoderGESP一级综合练习&#xff0c;主要涉及时间计算&#xff0c;难…

【网络协议栈】数据链路层(内附手画分析图 简单易懂)以太网、MAC地址、局域网、交换机、MTU、ARP协议

每日激励&#xff1a;【无限进步】“梦想可以大&#xff0c;但第一步总是小” 绪论​&#xff1a; 本章将开始到达TCP/IP协议中的最后一层数据链路层&#xff0c;本章将会写到我们日常中常见的局域网以及认识数据链路层中非常重要的协议ARP协议&#xff0c;后续还将进行更新网络…

二叉树的深搜(不定期更新。。。。。)

二叉树的深搜 验证二叉搜索树 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左 子树 只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉…

51c嵌入式~单片机合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/12581900 一、STM32代码远程升级之IAP编程 IAP是什么 有时项目上需要远程升级单片机程序&#xff0c;此时需要接触到IAP编程。 IAP即为In Application Programming&#xff0c;解释为在应用中编程&#xff0c;用户自己的程…

使用setsockopt函数SO_BINDTODEVICE异常,Protocol not available

前言 最近在使用OLT的DHCP Server的时候发现一些异常现象&#xff0c;就是ONU发的一个vlan的discover包其他不同vlan的DHCP地址池也会收到&#xff0c;导致其他服务器也发了offer包&#xff0c;ONU同时会有多个ip地址。一开始是没有使用SO_BINDTODEVICE&#xff0c;后面查到使…

02 conda常用指令

目录 命令快速查找命令详细解释列出当前conda中存在的解释器环境使用指定的解释器环境创建虚拟环境激活自己创建的虚拟环境虚拟环境删除切换回主环境找到你计算机中安装的miniconda3的跟目录找到虚拟环境的目录选择需要删除的虚拟环境文件夹确认环境是否删除 补充删除虚拟环境指…

BEVFormer详细复现方案

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

应用案例 | 船舶海洋: 水下无人航行器数字样机功能模型构建

水下无人航行器数字样机功能模型构建 一、项目背景 为响应水下装备系统研制数字化转型及装备系统数字样机建设的需要&#xff0c;以某型号水下无人航行器&#xff08;Underwater Unmanned Vehicle&#xff0c;UUV&#xff09;为例&#xff0c;构建UUV数字样机1.0功能模型。针对…

【NIPS2024】Unique3D:从单张图像高效生成高质量的3D网格

背景&#xff08;现有方法的不足&#xff09;&#xff1a; 基于Score Distillation Sampling &#xff08;SDS&#xff09;的方法&#xff1a;从大型二维扩散模型中提取3D知识&#xff0c;生成多样化的3D结果&#xff0c;但存在每个案例长时间优化问题/不一致问题。 目前通过微…

手机LCD分区刷新技术介绍

分区刷新也称为分区变频&#xff0c;LCD分区刷新功能的目的是将屏幕分为上下半区&#xff0c;分区显示不同帧率&#xff0c;上方区块High Frame Rate&#xff0c;下方区块Low Frame Rate。使用者可以动态自定义上方高刷显示区的结尾位置。 当前的智能手机屏幕上&#xff0c;显示…

NLP算法具备技能

摘要&#xff1a;好久不看理论&#xff0c;最近把自己学过以及用到过的东西都列了出来&#xff0c;主要是这个大纲体系&#xff0c;详细的内容部分是使用LLM来辅助编写的。 一、大模型 1.1 常用大模型 1.1.1 Qwen ‌Qwen大模型‌是由阿里巴巴开发的系列大语言模型&#xff…

学习日志022 -- python事件机制

作业&#xff1a; 1】思维导图 2】完成闹钟 main.py import sysfrom PySide6.QtCore import QTimerEvent, QTime,Qt from PySide6.QtGui import QMovie,QMouseEvent from PySide6.QtWidgets import QApplication, QWidget from Form import Ui_Formclass MyWidget(Ui_Form,Q…

JAVAWeb中的Servlet学习

一 Servlet简介 1.1动态资源和静态资源 静态资源 无需在程序运行时通过代码运行生成的资源,在程序运行之前就写好的资源.例如:html css js img ,音频文件和视频文件 动态资源 需要在程序运行时通过代码运行生成的资源,在程序运行之前无法确定的数据,运行时动态生成,例如Servle…

重生在我在21世纪学C++—赋值操作符、类型转换、单目操作符

一、赋值操作符 在变量创建的时候给一个初始值叫初始化。在变量创建好后&#xff0c;再给⼀个值&#xff0c;这叫赋值。 int a 100 ; //这叫初始化 a 200 ; //这叫赋值&#xff0c; 就是赋值操作符 赋值操作符 是⼀个随时可以给变量&#xff08;不能是常…

03、Node.js安装及环境配置

1.下载node.js 下载地址&#xff1a;Node.js 2.安装 2.1 自定义安装路径&#xff08;可以选择默认&#xff09; 下图根据本身的需要进行&#xff0c;我选择了默认Node.js runtime&#xff0c;然后Next&#xff1a; Node.js runtime &#xff1a;表示运行环境 npm package mana…

【Java】反射简介

框架的核心和架构师的核心 反射和代理是重中之重 反射 反射的作用 在运行的时候由代码获取类的信息 三种获取类信息的方式&#xff1a; 对象.getClass()Class.forName("类的路径")类.class Class &#xff1a;一个用来存储类信息的类 获取类信息是获取的整体的…

Qt入门8——Qt文件

1. Qt文件概述 文件操作是应用程序必不可少的部分。Qt作为⼀个通用开发库&#xff0c;提供了跨平台的文件操作能力。Qt 提供了很多关于文件的类&#xff0c;通过这些类能够对文件系统进行操作&#xff0c;如文件读写、文件信息获取、文件复制或重命名等。 2. 输入输出设备类 在…

常量变量和一些运算符

3.4 变量 常量&#xff1a;&#xff01;final关键字 final修饰基本类型不可以第二次赋值final修饰的引用类型不可以第二次改变指向final修饰的类不可以被继承final修饰的方法不可以被重写final防止指令重排序&#xff0c;遏制流水线性能优化&#xff0c;保障多线程并发场景下…