视频技术阐释

2023-11-03

目录

一、视频定义

二、视频原理

三、视频中的图像表达原理

四、视频的基础参数:帧、长宽比、分辨率、帧率、码率、重采样率、色深

五、视频的高低频

六、视频编码与格式

七、视频评价

八、视频开发库

九、视频协议

十、常用视频编辑软件


一、视频定义

视频(Video)泛指将一系列静态影像用电信号的方式加以捕捉、纪录、处理、储存、传送与重现的各种技术。视频是连续的图像序列,由于人眼的视觉暂留效应,当连续图像以一定的速率播放时,我们看到的就是动作连续的视频。

二、视频原理

人眼视觉残留(余晖效应):人眼观看物体时,成像于视网膜上,由视神经将图像传入人脑,感觉到物体的像。当物体移去时,视神经对物体的印象不会立即消失,而要延续1/24秒左右的时间,人眼的这种现象被称为视觉暂留现象。依据以上原理,可以将连续的时间序列图像在同一画面上进行快速展示,即可看到视频效果。因此,视频的帧率一般为24帧每秒以上,常用规格有25、29、30等,高速动态视频在60帧每秒以上。

从某种意义上说,视频是连续时间序列图像的集合,只不过这个集合经过压缩和封装,我们看到却是一个文件,如:MP4,avi,MKV,wmv,rm等等,用于视频的存储和传输。当然,现行的视频不仅包含有视频数据,还有音频数据和字幕数据。如果要播放视频就需要专门的解码器或者说播放器,对视频文件进行解压缩或者解码,然后读取视频文件的元文件信息,在画布上按照恒定的帧率展示时间序列影像。

三、视频中的图像表达原理

视频是由连续图像组成的,图像是表达视频的基本单位。视频中的图像表达模型有RGB 、HSI、YUV等多种模型,它们基于三原色原理,广泛用于视频的显示中。

人眼可见光波长范围为380nm-780nm,物体通过反射将可见光传入人眼中,人的大脑便有了物象,所有物象的颜色都可以看作是红(R)、绿(G)、蓝(B)三种可见光颜色的不同组合。国际照度委员会(CIE)在1931年规定了三种基本色的波长分别为R:700nm  G:546nm B:435.8nm。

三基色原理:

(1)分解:绝大多数的彩色,都能分解为相互独立的红、绿、蓝三种基色光。

(2)合成:用相互独立的红、绿、蓝三种基色光以不同的比例混合,可模拟出自然界中绝大多数的彩色。

(3)相互独立性:三中基色中任何两种颜色的组合都不能生成第三种颜色。

另一方面,单个的颜色也可以按照亮度、色调和饱和度三种基本特征量来表示。亮度与物体的反射率成正比,如果无彩色就只有亮度的一维变化。对彩色来说,颜色中掺入白色越多就越明亮,掺入的黑色越多亮度就越小。色调是与混合光谱中主要波长相联系的。饱和度与一定色调的纯度有关,纯光谱色是完全饱和的,随着白色的加入饱和度逐渐减少。

RGB:R-red红色;G-green绿色;B-blue蓝色

HSI:H-Hue-色调,S-Saturation饱和度,I-Intensity密度

YUV:亮度色度模型Luma-Chroma,Y-Luminance亮度,色度Chroma被分解为两个分量(UV):u水平方向表示图像色彩或者红色色度,v-vertical垂直方向表示色彩饱和度或者蓝色色度,此处的UV坐标区别于纹理坐标UV,不过他们都是一种直角坐标表示(xyz-uvw)。

RGB模型

光的三原色是红(Red)、绿(Green)、蓝(Blue)。现代的显示器技术就是通过组合不同强度的三原色,来达成任何一种可见光的颜色。图像储存中,通过记录每个像素红绿蓝强度,来记录图像的方法,称为RGB模型 (RGB Model),常见的图片格式中,PNG和BMP这图像格式就是基于RGB模型的。

比如说下图:

分别只显示R G B通道的强度,效果如下:

三个通道下,信息量和细节程度不一定是均匀分布的。比如说可以注意南小鸟脸上的红晕,在3个平面上的区分程度就不同——红色平面下几乎无从区分,造成区别的主要是绿色和蓝色的平面。外围白色的脸颊,三色都近乎饱和;但是红晕部分,只有红色饱和,绿色和蓝色不饱和。这是造成红色凸显的原因。

YUV模型

除了RGB模型,还有一种广泛采用的模型,称为YUV模型,又被称为亮度-色度模型(Luma-Chroma)。

亮度:亮度是指图形原色的明暗程度。亮度的调整就是明暗程度的调整。亮度的范围是从0——255,共256种色调。

色相:色相是指从物体反射或透过物体传播的颜色。简单的说色相就是色彩颜色,对色相的调整就是在多种颜色之间的变化,例如红、橙、黄、绿、青、蓝、紫七色组成,每一种颜色即道标一种色相。

饱和度:饱和度也成为彩度,是指颜色的强度或纯度。调整饱和度就是调整图像的彩度。将一个彩色图像的饱和度降为0时,就会变为灰色图像,增加饱和度就会增加彩度。

对比度:对比度是指不同颜色之间的差异,对比度越大,两种颜色之间的反差越大。反之颜色越接近。

YUV模型下,有不同的实现方式。用得比较多有YCbCr模型:它把RGB转换成一个亮度(Y),和 蓝色色度(Cb) 以及 红色色度(Cr)。

只有亮度通道:

只有蓝色色度:

只有红色色度:

YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB要求三个独立的视频信号同时传输)。其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面─色调与饱和度,分别用Cr和Cb来表示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。在图像视频的加工与储存中,YUV模型一般更受欢迎,理由如下:

1、人眼对亮度的敏感度远高于色度,因此人眼看到的有效信息主要来自于亮度。YUV模型可以将绝大多数的有效信息分配到Y通道。UV通道相对记录的信息少的多。相对于RGB模型较为平均的分配,YUV模型将多数有效信息集中在Y通道,不但减少了冗余信息量,还为压缩提供了便利

2、保持了对黑白显示设备的向下兼容

3、图像编辑中,调节亮度和颜色饱和度,在YUV模型下更方便。

几乎所有的视频格式,以及广泛使用的JPEG图像格式,都是基于YCbCr模型的。播放的时候,播放器需要将YCbCr的信息,通过计算,转换为RGB。这个步骤称为渲染(Rendering)每个通道的记录,通常是用整数来表示。比如RGB24,就是RGB各8个bit,用0~255 (8bit的二进制数范围)来表示某个颜色的强弱。YUV模型也不例外,也是用整数来表示每个通道的高低。

RGB与YUV相互转换公式为:

Y = 0.299 R + 0.587 G + 0.114 B 
U = -0.1687 R - 0.3313 G + 0.5 B + 128
V = 0.5 R - 0.4187 G - 0.0813 B + 128

R = Y + 1.402 (V-128)
G = Y - 0.34414 (U-128) - 0.71414 (V-128)
B = Y + 1.772 (U-128)

四、视频的基础参数:帧、长宽比、分辨率、帧率、码率、重采样率、色深

1、视频帧

视频是由连续的图像构成的,视频中的一幅图像称为一帧,相当于电影中的一个镜头,帧是视频、动画中最小单位的单幅影像画面。

 当采样视频信号时,如果是通过逐行扫描,那么得到的信号就是一帧图像,通常帧频为25帧每秒(PAL制)、30帧每秒(NTSC制)。

当采样视频信号时,如果是通过隔行扫描(奇、偶数行),那么一帧图像就被分成了两场,通常场频为50Hz(PAL制)、60Hz(NTSC制)

关键帧是指视频中角色或者物体运动或变化中的关键动作所处的那一帧。

过度帧是指关键帧与关键帧之间插值得到的图像。

I帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,可以简单理解为一张静态画面。视频序列中的第一个帧始终都是I帧,因为它是关键帧。
P帧又称帧间预测编码帧,需要参考前面的I帧才能进行编码。表示的是当前帧画面与前一帧(前一帧可能是I帧也可能是P帧)的差别。解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。与I帧相比,P帧通常占用更少的数据位,但不足是,由于P帧对前面的P和I参考帧有着复杂的依耐性,因此对传输错误非常敏感。
B帧又称双向预测编码帧,也就是B帧记录的是本帧与前后帧的差别。也就是说要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是对解码性能要求较高。

在MPEG编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。I帧法是帧内压缩法,也称为“关键帧”压缩法,I帧是关键帧视频内部压缩方法的具体表现形式。I帧法是基于离散余弦变换DCT(Discrete Cosine Transform)的压缩技术,这种算法与JPEG压缩算法类似。采用I帧压缩可达到1/6的压缩比而无明显的压缩痕迹。

2、视频长宽比

长宽比(Aspectratio)是用来描述视频画面与画面元素的比例。传统的电视屏幕长宽比为4:3(1.33:1),HDTV的长宽比为16:9(1.78:1),而35mm胶卷底片的长宽比约为1.37:1。

虽然电脑荧幕上的像素大多为正方形,但是数字视频的像素通常并非如此。例如使用于PAL及NTSC讯号的数位保存格式CCIR 601,以及其相对应的非等方宽萤幕格式。因此以720x480像素记录的NTSC规格DV影像可能因为是比较“瘦”的像素格式而在放映时成为长宽比4:3的画面,或反之由于像素格式较“胖”而变成16:9的画面。

3、视频分辨率

视频的分辨率是指每一帧图像的长宽积,比如说1920×1080的图像,说明它是由横纵1920×1080个像素点构成,产品规格有:720×480,1920×1080,1280×720,1920×1080等。视频分辨率影响图像大小,与图像大小成正比:分辨率越高,图像越大;分辨率越低,图像越小。

严格意义上说,屏幕分辨率(像素密度)是指屏幕单位长度内显示的有效像素值,即:每英寸所包含的像素数目(Pixels Per Inch:PPI),常用规格有常见的有72,180和300等。PPI值越高,包含的像素越多,画面能够显示的细节就会越丰富,PPI超过300时,就可以算是视网膜屏了,肉眼已经分辨不出像素点。

(X:长度像素数;Y:宽度像素数;Z:屏幕大小)

而打印机的分辨率则为每一英寸长度中取样、可显示或输出点的像素值数目(Dots Per Inch:dpi),常用规格用150、300、600等。一般的激光打印机的输出分辨率是300dpi-600dpi,印刷的照排机达到1200dpi-2400dpi,常见的冲印一般在150dpi到300dpi之间。

一般而言,视频分辨率越高,表现的细节层次越丰富,其清晰度也就越高。应当注意的是,视频传输到显示器,显示器需要对视频数据进行重采样才能在屏幕上显示。因此,清晰度还与播放器重采样的数值和显示屏本身的分辨率有关,其对应关系如下:
     显示器大小  最大分辨率

     14英寸    1024×768
         15英寸    1280×1024
    17英寸    1600×1280
    21英寸    1600×1280

由于厂商制作显示器工艺的不同,单位长度内显示的有效像素值是不一样的(即:PPI不同),那么像素与像素之间的点距也是不同的。可以推论,不同厂商生产同样尺寸的显示器,能够显示的最大像素值也是不一样的,理想的情况应该是显示器至少因该大于300PPI(即视网膜屏幕,人眼分辨不出像素值大小)。

假定视频分辨率很低,然而显示屏分辨率很高,重采样的点数需要插值,用户体验的清晰度依旧很低。

在显示器本身已经是高清、超高清的情况下,高分辨率的视频意味着视频的收缩性更大,视频的分辨率需要大于等于显示器的最大分辨率,才能达到显示器高质量的清晰效果。

广播电视和流媒体视频分辨率规格:(i-interlace隔行扫描,p-逐行扫描)

D1:480i(525i):720×480(水平480线,隔行扫描),和NTSC模拟电视清晰度相同,行频为15.25kHz,相当于我们所说的4CIF(720×576)
D2:480P(525p):720×480(水平480线,逐行扫描),较D1隔行扫描要清晰不少,和逐行扫描DVD规格相同,行频为31.5kHz
D3:1080i(1125i):1920×1080(水平1080线,隔行扫描),高清方式采用最多的一种分辨率,分辨率为1920×1080i/60Hz,行频为33.75kHz
D4:720p(750p):1280×720(水平720线,逐行扫描),虽然分辨率较D3要低,但是因为逐行扫描,市面上更多人感觉相对于1080I(实际逐次540线)视觉效果更加清晰。不过个人感觉来说,在最大分辨率达到1920×1080的情况下,D3要比D4感觉更加清晰,尤其是文字表现力上,分辨率为1280×720p/60Hz,行频为45kHz
D5:1080p(1125p):1920×1080(水平1080线,逐行扫描),目前民用高清视频的最高标准,分辨率为1920×1080P/60Hz,行频为67.5KHZ。

电影院视频分辨率规格:2K=2048x1080;4K=4096x2160; 8K=8192x4320。

4、视频帧率(fps)

视频的帧率是指每秒钟刷新的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。常见的帧率有24000/1001=23.976, 30000/1001=29.970, 60000/1001=59.940, 25.000, 50.000等等。这个数字是1秒钟内闪过的图像数量。比如23.976,就是1001秒内,有24000张图像。视频的帧率可以是恒定的(cfr, Const Frame-Rate),也可以是变化的(vfr, Variable Frame-Rate),取决于是否对视频采用了时域压缩算法。
 

高的帧率可以得到更流畅、更逼真的动画。通常来说,越高的帧速率可以得到更流畅、更逼真的动画。每秒钟帧数(FPS)越多,所显示的动作就会越流畅。一般来说30fps就是可以接受的,但是将性能提升至60fps则可以明显提升交互感和逼真感,一般来说帧率超过75fps,就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为监视器不能以这么快的速度更新,这样超过刷新率的帧率就浪费掉了。

5、视频码率

码率(码流、位元传输率、比特率、位元速率)是指视频文件在单位时间内使用的数据流量。单位一般是Kbps(Kbit/s)或者Mbps(Mbit/s)。视频帧率和码率的区别在于是否将图像的传输数量转换为图像的传输容量。

注意1B(Byte)=8b(bit)。所以一个24分钟,900MB的视频:

体积:900MB = 900MByte = 7200Mbit

时间:24min = 1440s

码率:7200/1440  = 5000 Kbps = 5Mbps

码率是一种表现视频串流中所含有的资讯量的方法。较高的位元传输率将可容纳更高的视频品质。例如DVD格式的视频(典型位元传输率为5Mbps)的画质高于VCD格式的视频(典型位元传输率为1Mbps)。HDTV格式拥有更高的(约20Mbps)位元传输率,也因此比DVD有更高的画质。

固定比特率CBR(Constant Bitrate)指文件从头到尾都是一种位速率。相对于VBR和ABR来讲,它压缩出来的文件体积很大,但是码率恒定,对于传送带宽固定,需要即时传送并且没有暂存手段的视频串流来说,固定位元速率(Constant bit rate,CBR)比VBR更为适合。

动态比特率-VBR(Variable Bitrate)也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率。采用VBR编码的视频在大动态或复杂的画面时段会自动以较高的速率来记录影像,而在静止或简单的画面时段则降低速率。这样可以在保证画面品质恒定的前提下尽量减少传输率。;

平均比特率-ABR(Average Bitrate)是VBR的一种插值参数。LAME针对CBR不佳的文件体积比和VBR生成文件大小不定的特点独创了这种编码模式。ABR在指定的文件大小内,以每50帧(30帧约1秒)为一段,低频和不敏感频率使用相对低的流量,高频和大动态表现时使用高流量,可以做为VBR和CBR的一种折衷选择。

当视频文件的时间基本相同的时候(比如现在一集番大概是24分钟),码率和体积基本上是等价的,都是用来描述视频大小的参数。长度分辨率都相同的文件,体积不同,实际上就是码率不同。通常来说同样视频分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。码流越大,说明单位时间内取样率越大,数据流精度就越高,处理出来的文件就越接近原始文件,图像质量越好,画质越清晰,要求播放设备的解码能力也越高。

6、视频色深(位深)

色深(bit-depth),就是我们通常说的8bit和10bit,是指每个通道的精度(R\G\B为图像的三个通道)。8bit就是每个通道用一个8bit整数(0~255)代表,10bit就是用10bit整数(0~1023)来显示,16bit则是0~65535。

假定显示器是8bit的,那么它能显示RGB每个通道0~255所有强度。但是视频的色深是YUV的色深,播放的时候,YUV需要通过计算转换到RGB。因此,10bit的高精度是间接的,它使得运算过程中精度增加,从而让最后的颜色更细腻。

如何理解8bit显示器,播放10bit是有必要的呢:

一个圆的半径是12.33m, 求它的面积,保留两位小数。

半径的精度给定两位小数,结果也要求两位小数,那么圆周率精度需要给多高呢?也只要两位小数么?
取pi=3.14, 面积算出来是477.37平方米
取pi=3.1416,面积算出来是477.61平方米
取pi精度足够高,面积算出来是477.61平方米。所以取pi=3.1416是足够的,但是3.14就不够了。

换言之,即便最终输出的精度要求较低,也不意味着参与运算的数字,以及运算过程,可以保持较低的精度。在最终输出是8bit RGB的前提下,10bit YUV比起8bit YUV依旧具有精度优势的原因就在这里。事实上,8bit YUV转换后,覆盖的精度大概相当于8bit RGB的26%,而10bit转换后的精度大约可以覆盖97%——你想让你家8bit显示器发挥97%的细腻度么?看10bit吧。

8bit精度不足,主要表现在亮度较低的区域,容易形成色带:

更高的位深意味着更加精细的显示精度,但是如果视频本身是8比特位的,即便你用16比特位的播放参数,效果也不会很好。

7、视频重采样

视频采样定义了从连续信号中提取并组成离散信号的采样个数。视频采样率是指将模拟信号转换成数字信号时的采样频率,也就是单位时间内采样多少点,用赫兹(Hz)来表示。

采样率类似于动态影像的帧数,比如电影的采样率是24赫兹,PAL制式的采样率是25赫兹,NTSC制式的采样率是30赫兹。当我们把采样到的一个个静止画面再以采样率同样的速度回放时,看到的就是连续的画面。同样的道理,把以44.1kHZ采样率记录的CD以同样的速率播放时,就能听到连续的声音。显然,这个采样率越高,听到的声音和看到的图像就越连贯。当然,人的听觉和视觉器官能分辨的采样率是有限的,基本上高于44.1kHZ采样的声音,绝大部分人已经觉察不到其中的分别了。
而声音的位数就相当于画面的颜色数,表示每个取样的数据量,当然数据量越大,回放的声音越准确,不至于把开水壶的叫声和火车的鸣笛混淆。同样的道理,对于画面来说就是更清晰和准确,不至于把血和西红柿酱混淆。不过受人的器官的机能限制,16位的声音和24位的画面基本已经是普通人类的极限了,更高位数就只能靠仪器才能分辨出来了。比如电话就是3kHZ取样的7位声音,而CD是44.1kHZ取样的16位声音,所以CD就比电话更清楚。

重采样是指将原始视频重新进行采样的过程。现行所有的视频播放器都可以对原始视频数据进行重采样,以实现用户需要的播放效果。重采样数值的高低直接影响着视频质量的好坏,这也是从事视频数据生产人员较为困惑的地方,大部分人分不清采样与重采样之间还有一条沟壑。但是如果视频本身的数据质量不好,重采样的效果也不会很好。视频的码率虽然是衡量视频质量高低的一个重要因素,但是播放器会重新对视频进行采样,相当于在原视频基础上又额外对视频进行了限制,即便视频的分辨率、帧率、码流很高,如果视频重采样的参数很低,也会拉低视频的质量。

8、色度半采样

在YUV模型的应用中,Y和UV的重要性是不等同的。图像视频的实际储存和传输中,通常将Y以全分辨率记录,UV以减半甚至1/4的分辨率记录。这个手段被称为色度半采样(Chroma Sub-Sampling)。色度半采样可以有效减少传输带宽,和加大UV平面的压缩率,但是不可避免的会损失UV平面的有效信息。

我们平常的视频,最常见的是420采样。配合YUV格式,常常被写作yuv420。这种采样是Y保留全部,UV只以(1/2) x (1/2)的分辨率记录。比如说1920×1080的视频,其实只有亮度平面是1920×1080。两个色度平面都只有960×540的分辨率。

当然了,你也可以选择不做缩减。这种称为444采样,或者yuv444。YUV三个平面全是满分辨率。

在做YUV->RGB的时候,首先需要将缩水的UV分辨率拉升到Y的分辨率(madVR中允许自定义算法,在Chroma Upscaling当中),然后再转换到RGB。做RGB->YUV的转换,也是先转换到444(YUV的分辨率相同),再将UV分辨率降低。

一般能拿到的片源,包括所有蓝光原盘,都是420采样的。所以成品一般也保留420采样。所以yuv420就表示这个视频是420采样的yuv格式。

将420做成444格式,需要自己手动将UV分辨率拉升2×2倍。在今天madVR等渲染器可以很好地拉升UV平面的情况下,这种做法无异于毫无必要的拉升DVD做成伪高清。

当然了,有时候也需要在444/RGB平面下做处理和修复,常见的比如视频本身RGB平面不重叠(比如摩卡少女樱),这种修复过程首先要将UV分辨率拉升,然后转RGB,做完修复再转回YUV。修复后的结果相当于全新构图,这种情况下保留444格式就是有理由,有必要的。

H264格式编码444格式,需要High 4:4:4 Predictive Profile(简称Hi444pp)。所以看到Hi444pp/yuv444 之类的标示,你就需要去找压制者的陈述,为什么他要做这么个拉升。如果找不到有效的理由,你应该默认作者是在瞎做。

五、视频的高低频

空间上的低频与高频:平面,纹理和线条

在视频处理中,空间(spatial)的概念指的是一帧图片以内(你可以认为就是一张图所呈现的二维空间/平面)。跟时间(temporal)相对;时间的概念就强调帧与帧之间的变换。

于是我们重新来看这张亮度的图:

亮度变化较快,变动幅度大的区域,我们称之为高频区域。否则,亮度变化缓慢且不明显的区域,我们称为低频区域。

图中的蓝圈就是一块典型的低频区域,或者就叫做平面(平坦的部分)。亮度几乎没有变化

绿圈中,亮度呈现跳跃式的突变,这种高频区域我们称之为线条。

红圈中,亮度频繁变化,幅度有高有低,这种高频区域我们称为纹理。

有时候,线条和纹理(高频区域)统称为线条,平面(低频区域)又叫做非线条。

这是亮度平面。色度平面,高频低频,线条等概念也同样适用,就是描述色度变化的快慢轻重。一般我们所谓的“细节”,就是指图像中的高频信息。

一般来说,一张图的高频信息越多,意味着这张图信息量越大,所需要记录的数据量就越多,编码所需要的运算量也越大。如果一个视频包含的空间性高频信息很多(通俗点说就是每一帧内细节很多),意味着这个视频的空间复杂度很高。

记录一张图片,编码器需要决定给怎样的部分多少码率。码率在一张图内不同部分的分配,叫做码率的空间分配。分配较好的时候,往往整幅图目视观感比较统一;分配不好常见的后果,就是线条纹理尚可,背景平面区域出现大量色带色块(码率被过分的分配给线条);或者背景颜色过渡自然,纹理模糊,线条烂掉(码率被过分的分配给非线条)。

时间上的低频与高频:动态
在视频处理中,时间(temporal)的概念强调帧与帧之间的变换。跟空间(spatial)相对。

动态的概念无需多解释;就是帧与帧之间图像变化的强弱,变化频率的高低。一段视频如果动态很高,变化剧烈,我们称为时间复杂度较高,时域上的高频信息多。否则如果视频本身舒缓多静态,我们称为时间复杂度低,时域上的低频信息多。

一般来说,一段视频的时域高频信息多,动态的信息量就大,所需要记录的数据量就越多,编码所需要的运算量也越大。但是另一方面,人眼对高速变化的场景,敏感度不如静态的图片来的高(你没有时间去仔细观察细节),所以动态场景的优先度可以低于静态场景。如何权衡以上两点去分配码率,被称为码率的时间分配。分配较好的时候,看视频无论动态还是静态效果都较好;分配不好的时候往往是静态部分看着还行,动态部分糊烂掉;或者动态部分效果过分的好,浪费了大量码率,造成静态部分欠码,瑕疵明显。

很多人喜欢看静止的截图对比,来判断视频的画质。从观看的角度,这种做法其实并不完全科学——如果你觉得比较烂的一帧其实是取自高动态场景,那么这一帧稍微烂点无可厚非,反正观看的时候你注意不到,将码率省下来给静态部分会更好。

六、视频编码与格式

视频信号数字化后数据带宽很高,通常在20MB/秒以上,因此计算机很难对之进行保存和处理。由于视频连续帧之间相似性极高,为便于储存传输,我们需要对原始的视频进行压缩(编码),采用压缩技术通常将数据带宽降到1-10MB/秒,这样就可以将视频信号保存在计算机中并作相应的处理。视频压缩技术就是将数据中的冗余信息去掉(去除数据之间的相关性),视频图像数据的冗余信息可分为空域冗余信息和时域冗余信息。视频压缩或者编码就是视频中的去除空间、时间维度冗余信息。压缩技术包含帧内图像数据压缩和熵编码压缩技术(空间域)、帧间图像数据压缩技术(时间域)。

总体而言,空间冗余性可以借由“只记录单帧画面的一部分与另一部分的差异性”来减低;这种技巧被称为帧内压缩(intraframe compression),并且与图像压缩密切相关。而时间冗余性则可借由“只记录两帧不同画面间的差异性”来减低;这种技巧被称为帧间压缩(interframe compression),包括运动补偿以及其他技术。目前最常用的视频压缩技术为DVD与卫星直播电视所采用的MPEG-2,以及因特网传输常用的MPEG-4。

空间域、时间域压缩技术有:

1、去空域
主要使用帧内编码技术和熵编码技术:
变换编码:帧内图像和预测差分信号都有很高的空域冗余信息。变换编码将空域信号变换到另一正交矢量空间,使其相关性下降,数据冗余度减小。
量化编码:经过变换编码后,产生一批变换系数,对这些系数进行量化,使编码器的输出达到一定的位率。这一过程导致精度的降低。
熵编码:熵编码是无损编码。它对变换、量化后得到的系数和运动信息,进行进一步的压缩。

2、去时域
使用帧间编码技术可去除时域冗余信息,它包括以下三部分:
 运动补偿:运动补偿是通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方法。

运动表示:不同区域的图像需要使用不同的运动矢量来描述运动信息。运动矢量通过熵编码进行压缩。
运动估计是从视频序列中抽取运动信息的一整套技术。
注:通用的压缩标准都使用基于块的运动估计和运动补偿。

常用的视频压缩算法是由ISO制订的,即JPEG和MPEG编码。JPEG是静态图像压缩标准,适用于连续色调彩色或灰度图像,它包括两部分:一是基于DPCM(空间线性预测)技术的无失真编码,一是基于DCT(离散余弦变换)和哈夫曼编码的有失真算法,前者压缩比很小,主要应用的是后一种算法。在非线性编辑中最常用的是MJPEG算法,即Motion JPEG。它是将视频信号50帧/秒(PAL制式)变为25帧/秒,然后按照25帧/秒的速度使用JPEG算法对每一帧压缩。通常压缩倍数在3.5-5倍时可以达到Betacam的图像质量。MPEG算法是适用于动态视频的压缩算法,它除了对单幅图像进行编码外还利用图像序列中的相关原则,将冗余去掉,这样可以大大提高视频的压缩比。MPEG-I用于VCD节目中,MPEG-II用于VOD、DVD节目中。

     Motion-JPEG是以提供序列JPEG图像的方式来提供视频。网络摄像机就象是数字静态图片照相机,捕捉单幅图像并将其压缩为JPEG格式。网络摄 像机每秒捕捉和压缩30张图像,并以连续图像流的方式通过网络发送到客户端。当帧率达到或超过16fps时,用户就可以浏览到感觉比较实时的画面。

    H.263压缩技术主要面对固定比特率的视频传输应用。但当画面中的物体移动时,仍使用固定比特率,图像的质量就会有所降低。由于H.263最初是为视频会议应用而开发的,因此对于要求更多图像细节的监视系统来讲并不适合。

    MPEG-2从MPEG-1压缩技术扩展而来,帧率被锁定在25fps(PAL)/30fps(NTSC),主要针对高质量数字视频(DVD),数字高清 电视(digital high-definition TV,HDTV),交互式存储媒体(interactive storage media,ISM),数字广播视频(digital broadc ast video,DBV),和有线电视(cable TV,CATV)。网络传输MPEG-2编码的视频流需要较高的带宽,在安防监控行业,很少有网络摄像机采用MPEG-2编码方案。

    MPEG-4从MPEG-2发展而来,MPEG-4编码方案内建很多工具,可用来降低比特率,以满足特定应用或场景对图像质量的需求。而且MPEG-4帧 率没有被锁定25fps(PAL)/30(NTSC)fps。采用MPEG-4编码方案的网络摄像机,往往在低带宽的网络环境下,通过降低帧率来完成视频 传输。MPEG-4引入很多工具来降低比特率,但针对网络视频实时性没有内建优化工具,编解码时间消耗增加,视频流传输往往表现出延迟,抖动现象。

    H.264编码方案,也称为MPEG-4(Part10)或高级视频编码(AVC),是H.263开发小组和MPEG-4开发小组合并后推出了新的下一代 视频压缩标准。该标准只增加了有限的编码复杂度,用于实现极高的数据压缩,该标准在比原先压缩标准的比特率小很多的条件下仍可提供高质量的视频。国内市场 新推出的网络摄像机,很多都采用了H.264编码方案,由于编解码计算复杂度高,能提供实时视频流的网络摄像机很少。很多的网络摄像机生产厂商都看好 H.264编码方案,随着各种优化技术的成熟,H.264编码方案将来可能会成为市场的主流。

有压缩技术(编码),就有解压缩(解码)技术,编码与解码速度的快慢决定了播放器运行效率的高低。

各个厂商按照以上数据编码制作成的不同视频格式:

视频格式:H.264(可以细分为8bit/10bit),H.265,RealVideo(常见于早期rm/rmvb),VC-1(微软主导的,常见于wmv)等等。基本上,H.264=AVC=AVC1, H.265=HEVC。

音频的格式: FLAC/ALAC/TrueHD/DTS-HD MA无损和AAC/MP3/AC3/DTS(Core)有损。

以下列举不同视频数据格式说明:

1、MPEG/MPG/DAT

MPEG也是Motion Picture Experts Group 的缩写。这类格式包括了MPEG-1, MPEG-2 和MPEG-4在内的多种视频格式。MPEG-1相信是大家接触得最多的了,因为其正在被广泛地应用在 VCD 的制作和一些视频片段下载的网络应用上面,大部分的VCD 都是用MPEG1 格式压缩的(刻录软件自动将MPEG-1转为.DAT格式 ) ,使用MPEG-1 的压缩算法,可以把一部120 分钟长的电影压缩到1.2 GB 左右大小。MPEG-2 则是应用在DVD 的制作;同时在一些HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当多的应用。使用MPEG-2 的压缩算法压缩一部120 分钟长的电影可以压缩到5-8 GB 的大小(MPEG2的图像质量MPEG-1 与其无法比拟的)。
2、AVI

AVI(Audio Video Interleaved,音频视频交错))由是Microsoft公司推出的视频音频交错格式(视频和音频交织在一起进行同步播放),是一种桌面系统上的低成本、低分辨率的视频格式。它的一个重要的特点是具有可伸缩性,性能依赖于硬件设备。它的优点是可以跨多个平台使用,缺点是占用空间大。
3、RA/RM/RAM

RM,Real Networks [1]  公司所制定的音频/视频压缩规范Real Media中的一种,Real Player能做的就是利用Internet资源对这些符合Real Media技术规范的音频/视频进行实况转播。在Real Media规范中主要包括三类文件:RealAudio、Real Video和Real Flash (Real Networks公司与Macromedia公司合作推出的新一代高压缩比动画格式)。REAL VIDEO (RA、RAM)格式由一开始就是定位就是在视频流应用方面的,也可以说是视频流技术的始创者。它可以在用56K MODEM 拨号上网的条件实现不间断的视频播放,可是其图像质量比VCD差些,如果您看过那些RM压缩的影碟就可以明显对比出来了。
4、MOV

使用过Mac机的朋友应该多少接触过QuickTime。QuickTime原本是Apple公司用于Mac计算机上的一种图像视频处理软件。Quick-Time提供了两种标准图像和数字视频格式, 即可以支持静态的PIC和JPG图像格式,动态的基于Indeo压缩法的MOV和基于MPEG压缩法的MPG视频格式。
5、ASF

ASF (Advanced Streaming format高级流格式)。ASF 是MICROSOFT 为了和Real player 竞争而发展出来的一种可以直接在网上观看视频节目的文件压缩格式。ASF使用了MPEG4 的压缩算法,压缩率和图像的质量都很不错。因为ASF 是以一个可以在网上即时观赏的视频“流”格式存在的,所以它的图像质量比VCD 差一点点并不出奇,但比同是视频“流”格式的RAM 格式要好。
6、WMV

一种独立于编码方式的在Internet上实时传播多媒体的技术标准,Microsoft公司希望用其取代QuickTime之类的技术标准以及WAV、AVI之类的文件扩展名。WMV的主要优点在于:可扩充的媒体类型、本地或网络回放、可伸缩的媒体类型、流的优先级化、多语言支持、扩展性等。
7、n AVI

如果你发现原来的播放软件突然打不开此类格式的AVI文件,那你就要考虑是不是碰到了n AVI。n AVI是New AVI 的缩写,是一个名为Shadow Realm 的地下组织发展起来的一种新视频格式。它是由Microsoft ASF 压缩算法的修改而来的(并不是想象中的AVI),视频格式追求的无非是压缩率和图像质量,所以 NAVI 为了追求这个目标,改善了原始的ASF 格式的一些不足,让NAVI 可以拥有更高的帧率。可以这样说,NAVI 是一种去掉视频流特性的改良型ASF 格式。
8、DivX

这是由MPEG-4衍生出的另一种视频编码(压缩)标准,也即通常所说的DVDrip格式,它采用了MPEG4的压缩算法同时又综合了MPEG-4与MP3各方面的技术,说白了就是使用DivX压缩技术对DVD盘片的视频图像进行高质量压缩,同时用MP3或AC3对音频进行压缩,然后再将视频与音频合成并加上相应的外挂字幕文件而形成的视频格式。其画质直逼DVD并且体积只有DVD的数分之一。这种编码对机器的要求也不高,所以DivX视频编码技术可以说是一种对DVD造成威胁最大的新生视频压缩格式,号称DVD杀手或DVD终结者。
9、RMVB

这是一种由RM视频格式升级延伸出的新视频格式,它的先进之处在于RMVB视频格式打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上合理利用比特率资源,就是说静止和动作场面少的画面场景采用较低的编码速率,这样可以留出更多的带宽空间,而这些带宽会在出现快速运动的画面场景时被利用。这样在保证了静止画面质量的前提下,大幅地提高了运动图像的画面质量,从而图像质量和文件大小之间就达到了微妙的平衡。另外,相对于DVDrip格式,RMVB视频也是有着较明显的优势,一部大小为700MB左右的DVD影片,如果将其转录成同样视听品质的RMVB格式,其个头最多也就400MB左右。不仅如此,这种视频格式还具有内置字幕和无需外挂插件支持等独特优点。要想播放这种视频格式,可以使用RealOne Player2.0或RealPlayer8.0加RealVideo9.0以上版本的解码器形式进行播放。
10、FLV

FLV就是随着Flash MX的推出发展而来的新的视频格式,其全称为Flashvideo。是在sorenson公司的压缩算法的基础上开发出来的。

由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。各在线视频网站均采用此视频格式。如新浪播客、56、优酷、土豆、酷6、帝途、YouTuBe等,无一例外。
11、F4V

F4V是Adobe公司为了迎接高清时代而推出继FLV格式后的支持H.264的流媒体格式。它和FLV主要的区别在于,FLV格式采用的是H.263编码,而F4V则支持H.264编码的高清晰视频,码率最高可达50Mbps。

主流的视频网站(如奇艺、土豆、酷6)等网站都开始用H.264编码的F4V文件,H.264编码的F4V文件,相同文件大小情况下,清晰度明显比On2 VP6和H.263编码的FLV要好。土豆和56发布的视频大多数已为F4V,但下载后缀为FLV,这也是F4V特点之一。
12、MP4

MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4 Part 12 ISO base media file format)”标准中所定义的媒体格式的一种实现,后者定义了一种通用的媒体文件结构标准。MP4是一种描述较为全面的容器格式,被认为可以在其中嵌入任何形式的数据,各种编码的视频、音频等都不在话下,不过我们常见的大部分的MP4文件存放的AVC(H.264)或MPEG-4(Part 2)编码的视频和AAC编码的音频。MP4格式的官方文件后缀名是“.mp4”,还有其他的以mp4为基础进行的扩展或者是缩水版本的格式,包括:M4V, 3GP, F4V等。

MP4 VS MKV

MP4+MKV是下载的视频文件时最常见的视频数据格式。这些文件类似一个包裹,它的后缀则是包裹的包装方式。这些包裹里面,包含了视频(只有图像)、音频(只有声音)、字幕等。当播放器在播放的时候,首先对这个包裹进行拆包把其中的视频、音频等分离,按照时间线进行播放。这些被分离的数据在视频编辑软件里被称为为轨道(track):

视频轨: 连续图像数据集合。

音频轨:连续声音数据集合。

字幕轨:连续语句的集合。(中文字幕、英文字幕等)

每个轨道,都有自己的格式。比如大家常说的,视频是H.264,音频是AAC,字幕是srt,等等

      MKV与MP4主要的区别在于:

  • MKV支持封装FLAC作为音频,MP4则不支持。但是MP4也可以封装无损音轨(比如说ALAC,虽然普遍认为ALAC的效率不如FLAC优秀)
  • MKV支持封装ASS/SSA格式的字幕,MP4则不支持。一般字幕组制作的字幕是ASS格式,所以内封字幕多见于MKV格式
  • MP4作为工业标准,在视频编辑软件和播放设备上的兼容性一般好于MKV。这也是vcb-s那些为移动设备优化的视频基本上选择MP4封装的原因。

除此之外,这两个格式很大程度上可以互相代替。比如它们都支持封装AVC和HEVC,包括8bit/10bit的精度。所以MP4画质不如MKV好,这种论断是非常无知的——它们完全可以封装一样的视频。

MKV非官方制定,用于代替古老的AVI,从而更好地支持H264,开发和使用方式灵活,可以兼容flac/ass这类非工业标准的格式;而MP4为工业标准,替代了更古老的MPG,作为新一代视频/音频封装服务的。

七、视频评价

视频主观评价

我们经常讨论,一个视频清晰度如何,画质好不好,流畅度好不好。。。其实,这些词只是对视频做了一个非常模糊的主观评价,但他们是确实反应了用户体验。

经常看到的说法:“这个视频清晰度是1080p的”。其实看过上文你就应该知道,1080p只是视频的分辨率,它不能直接代表清晰度——比如说,我可以把一个480p的dvd视频重采样到1080p,那又怎样呢?它的清晰度难道就提高了么?

一个比较接近清晰度的概念,是上文所讲述的,空间高频信息量,就是一帧内的细节。一张图,一个视频的细节多,它的清晰度就高。分辨率决定了高频信息量的上限;就是它最清晰能到什么地步。1080p之所以比480p好,是因为它可以允许图像记录的高频信息多,因为视频重采样时使用了更多周围的影像数据,整幅影像的不同细节部分会过渡得更加平滑、细腻。这个说法看样子很靠谱,但是,有反例:

右图的高频信息远比左图多——它的线条很锐利,有大量致密的噪点(注意噪点完全符合高频信息的定义;它使得图像变化的非常快)
但是你真的觉得右图清晰度高么?
事实上,右图完全是通过左图加工而来。通过过度锐化+强噪点,人为的增加无效的高频信息。

所以清晰度的定义我更倾向于这样一个说法:图像或视频中,原生、有效的高频信息。
原生,强调这种清晰度是非人工添加的;有效;强调细节本身有意义,而不是毫无意义的噪点特效。

值得一提的是,人为增加的高频信息不见得完全没有帮助。有的时候适度锐化的确能够起到不错的目视效果:

这是一幅适度锐化后的效果。如果有人觉得右图更好,至少某些部分更好,相信我,你不是一个人。所以适度锐化依旧是视频和图像处理中,可以接受的一种主观调整的手段,一定的场合下,它确实有助于提高目视效果。

以上是清晰度的概述。注意,清晰度只是空间方面(就是一帧以内),以狭义的图像分辨率区分。如果再考虑到动态效果的优秀与否,那么视频的流畅度帧率则起了主导作用,视频空间和时间上的观看效果共同定义了视频画质的好坏。所以我们说madVR/svp那些倍帧效果有助于提高画质,实际上它们增强了时间上的观看效果。

好的画质,是制作者和观众共同追求的。怎么样的视频会有好的画质呢?是不是码率越高的视频画质越好呢?真不见得。视频的画质,是由以下几点共同决定的:

1、源的画质。
如果源的画质本身很差,那么再如何折腾都别指望画质好到哪去。所以压制者往往会选择更好的源进行压制——举个栗子,BDRip一般都比TVRip来的好,哪怕是720p。蓝光也分销售地区,一般日本销售的日版,画质上比美版、台版、港版啥的都来得好,所以同样是BDRip,选取更好的源,就能做到画质上优先一步。

2、播放条件。
观众是否用了足以支持高画质播放的硬件和软件。这就是为啥我们在发布Rip的同时大力普及好的播放器;有时候一个好的播放器胜过多少在制作方面的精力投入。

3、码率投入vs编码复杂度。
视频的时间和空间复杂度,并称为编码复杂度。编码复杂度高的视频,往往细节多,动态高(比如《魔法少女小圆剧场版 叛逆的物语》),这样的视频天生需要较高的码率去维持一个优秀的观看效果。
相反,有些视频编码复杂度低(比如《请问今天要来点兔子么》,动态少,线条细节柔和),这种视频就是比较节省码率的。

4、码率分配的效率和合理度。
同样多的码率,能起到怎样好的效果,被称为效率。比如H264就比之前的RealVideo效率高;10bit比8bit效率高;编码器先进,参数设置的比较合理,编码器各种高端参数全开(通常以编码时间作为代价),码率效率就高。
合理度就是码率在时空分配方面合理与否,合理的分配,给观众的观看效果就比较统一协调。 码率分配的效率和合理度,是对制作者的要求,要求制作者对片源分析,参数设置有比较到位的理解。

视频客观评价

由以上的讨论可知,视频的质量由分辨率、帧率、码率、信噪比(噪声情况)、重采样数值大小、编码压缩比、画面抖动等多种参数量决定。由于现行的视频主要由连续图像和音频构成,因此,评价视频质量还应该从图像和音频两个角度去衡量。图像的质量情况考虑的数值有:色彩失真情况(亮度异常、偏色异常、画面细节层次较差)、分辨率、信噪比、帧率、帧连续性、画面抖动情况等等,音频的质量情况考虑的数值有:码率、采样率、通道数、帧率、编码压缩比(有损、无损)

视频的分辨率、帧率、码率是衡量视频播放高低的基本数据量。分辨率越高、帧率越高、码率越高,表现细节层次越丰富,视频流畅度越高,那么视频的质量就越好。常常出现的矛盾情况是视频的帧率很高,但是清晰度却不够,那是因为视频的分辨率不高;视频的分辨率很高、码率很大,但是视频却像是在放PPT,那是因为视频的帧率低。当然,除去视频本身的数据量影响,视频还受网络传输速率的影响,假定客户端的网络延迟很高或者视频重采样参数较低,即便有视频码率和分辨率都很高,客户端的视频体验效果依然会出现不理想的情况。

八、视频开发库

常见的视频开发库有:

FFMPEG:开源视频开发库,支持视频采集、播放、格式转换、抓取、水印等功能。

CXDVA:全面支持上面提到的全部视频格式,可以windows、linux、android、apple ios 等多个平台进行播放、抓图、录像等功能,开发接口统一,容易使用。

常见的音频开发库有:

openAL:开源音频API

PortAudio

九、网络视频协议(流媒体)

RTP(Real time Transport Protocol:实时传输协议)
RTCP(Real time Transport Control Protocol:实时控制传输协议)
RTMP(Real Time Messaging Protocol:实时消息传输协议)
RTSP(Real Time Streaming Protocol:实时流协议)
HLS(HTTP Live Streaming:HTTP流协议)
MMS(Microsoft Media Server Protocol:微软媒体服务器协议)

搞直播的喜欢玩这些。

十、常用视频编辑软件

常用的视频编辑软件有:Adobe Premiere、会声会影、威力导演、格式工厂等等。

常用的音频编辑软件有:Cool edit pro、Wavesufer等等。

附件:摄像机

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

视频技术阐释 的相关文章

  • 图像紫边消除(depurple)

    图像紫边广泛存在于目前的手机摄像头 数码相机 监控摄像头等数字成像系统所得图像中 当我们使用这些设备在逆光 大光圈等条件下拍摄时 所得图像的局部区域 特别是高反差区域 亮暗对比反差很大的图像区域 比如天空 灯管与物体相接的边缘 会比较容易观
  • JPEG编码过程详解

    JPEG编码过程详解 本文旨在对JPEG编码过程中的细节步骤进行说明 具体原理部分请参照Wikipedia 色彩空间转换 原始图像的像素点是以RGB形式存储的 即每个像素点由3个字节的数据组成 分别为Red通道 Green通道和Blue通道
  • 图像处理——边缘检测

    边缘检测 一 边缘检测的目的 二 边缘检测算子有哪些 三 Canny算子 3 1 简述Canny算子 3 2 简述下Canny的计算过程 四 sobel算子 4 1 简述一下sobel算子 五 深度学习下的边缘检测 5 1 HED 整体嵌套
  • matlab中 hold on 与 hold off,figure作用

    hold on是当前轴及图像保持而不被刷新 准备接受此后将绘制的图形 多图共存 即启动图形保持功能 当前坐标轴和图形都将保持 从此绘制的图形都将添加在这个图形的基础上 并自动调整坐标轴的范围 hold off使当前轴及图像不再具备被刷新的性
  • 图像处理 --- 一、认识图像处理

    声明 本系列文档由学习哔站视频总结而得 后续会逐渐添加相对应的示例代码 python 1 什么是图像与图像处理 百闻不如一见 图像是客观对象的一种相似性的 生动性的描述或写真 是人类社会活动中最常用的信息载体 或者说图像是客观对象的一种表示
  • mingw qt5.14.2 编译 vtk9.1.0

    1 软件 qt版本 qt opensource windows x86 5 14 2 exe 安装mingw选项 cmake版本 cmake 3 21 2 windows x86 64 msi VTK源码版本 VTK 9 1 0 tar g
  • Python图像处理实战:处理和分析图像数据

    引言 在现代数字化时代 人们生产和获取数以亿计的数字图像 具体而言 这些图像数据常用于计算机视觉 模式识别 医学影像 地球观测和卫星遥感等领域 通过高级图像处理技术 可以从这些数据中提取出有用的信息 从而支持实现各种应用 本文主要介绍Pyt
  • CUDA的下载安装

    大家好 下面将进行CUDA的下载安装 下载安装的详细步骤描述如下 1 CUDA下载 https download csdn net download qq 41104871 87462747 2 CUDA安装 1 首先 需要解压缩下载好的C
  • Matlab导入Excel数据快速绘图

    现在使用Matalb绘图越来越多 不会这个绘图技能感觉都要被时代抛弃了 所以 本文主要是介绍怎么用Matlab导入Excel数据快速绘图 目录 一 基本使用 二 细致调节 1 颜色选项 2 形状选项 3 网格线选项 一 基本使用 事先 建议
  • 使用python实现简单全连接神经网络

    最近在学习神经网络的相关知识 特在此做一个笔记 python语言的功能很强大 可以使用很少的代码实现很多功能 因此大家如果想研究深度学习的话 一定要懂得python语言 这篇笔记记录我的第一次使用python编写神经网络代码的过程 其中代码
  • SeetaFace编译成功(有windows及Android源码)

    声明 由于本人水平有限 所提供的代码 dll so等必然存在很多问题 仅用于学习 不适合工业级使用 请谨慎使用 如果造成损失 责任自负 对齐 这张照片第3个人的特征点检测有点问题 研发人员很快修正了 赞一个 下面是人脸比对 准确率还是可以接
  • 扩散模型:Diffusion models as plug-and-play priors作为即插即用先验的扩散模型

    扩散模型 Diffusion models as plug and play priors作为即插即用先验的扩散模型 0 摘要 1 概述 2 方法 2 1 问题设置 2 2 将去噪扩散概率模型作为先验 3 实验 图像生成 3 1 MNIST
  • cv2.minAreaRect()

    功能 求出在点集下的最小面积矩形 输入 格式 points array shape n 1 2 解释 其中points是点集 数据类型为ndarray array x1 y1 x2 y2 xn yn 输出 格式 rect tuple x y
  • Halcon直线检测

    1 Halcon最常用的直线检测算子 add metrology object line measure 利用Halcon封装好的模型不仅可以检测直线 还可以检测圆 椭圆 矩形等 下面介绍下其余的直线检测的算子 需要配合 skeleton
  • 【FMC141】基于VITA57.4标准的4通道2.8GSPS 16位DA播放子卡(2片DAC39J84)

    FMC141是一款基于VITA57 4标准的4通道2 8GSPS 2 5GSPS 1 6GSPS采样率16位DA播放FMC子卡 该板卡为FMC 标准 符合VITA57 4与VITA57 1规范 16通道的JESD204B接口通过FMC 连接
  • 北京机器视觉技术的商业化应用与市场趋势分析

    随着科技的快速发展 机器视觉技术已经逐渐成为工业自动化 智能制造等领域的重要技术之一 北京作为中国的科技创新中心 其机器视觉技术的发展和应用也备受关注 本文将分析北京机器视觉技术的商业化应用以及市场趋势 一 商业化应用 工业自动化 机器视觉
  • 友思特分享 | CamSim相机模拟器:极大加速图像处理开发与验证过程

    来源 友思特 机器视觉与光电 友思特分享 CamSim相机模拟器 极大加速图像处理开发与验证过程 原文链接 https mp weixin qq com s IED7Y6R8WE4HmnTiRY8lvg 欢迎关注虹科 为您提供最新资讯 随着
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二
  • 图像分割-Grabcut法(C#)

    版权声明 本文为博主原创文章 转载请在显著位置标明本文出处以及作者网名 未经作者允许不得用于商业目的 本文的VB版本请访问 图像分割 Grabcut法 CSDN博客 GrabCut是一种基于图像分割的技术 它可以用于将图像中的前景和背景分离
  • 图像分割-Grabcut法

    版权声明 本文为博主原创文章 转载请在显著位置标明本文出处以及作者网名 未经作者允许不得用于商业目的 本文的C 版本请访问 图像分割 Grabcut法 C CSDN博客 GrabCut是一种基于图像分割的技术 它可以用于将图像中的前景和背景

随机推荐

  • SpringMVC(十三) RequestMapping 使用servlet原生API作为参数

    SpringMVC支持以下Servlet方法 HttpServletRequest HttpServletResponse HttpSession Writer Reader Locale InputStream OutputStream
  • 内核(kernel)的链接脚本

    1 链接脚本的产生 kernel的链接脚本和uboot的不同 uboot的链接脚本是源文件的一部分 而kernel的链接脚本在源文件中是找不到的 要经过编译才会产生 链接脚本的名字是vmlinux lds 由汇编文件vmlinux lds
  • 【多模态】15、MobileSAM

    文章目录 一 背景 二 方法 2 1 耦合蒸馏 2 2 从半蒸馏到解耦蒸馏 三 效果 论文 FASTER SEGMENT ANYTHING TOWARDS LIGHTWEIGHT SAM FOR MOBILE APPLICATIONS 代码
  • 实现strcpy功能

    实现strcpy的功能 运行结果
  • QT编译FreeType和Little CMS

    一 FreeType FreeType是个开源字体引擎 可以移植到arm中 也可以在桌面软件中使用 下载FreeType 这里使用FreeType 2 10 4版本 使用QT Creator新建工程 工程名为FreeType 解压后 只取出
  • yarn创建vite项目——遇见的错误及解决方法

    今天尝试做一个vue3 vite的组件库项目 没想到第一步就开始出现问题 改了整整一天 那么我们开始 首先 目录中间包含空格 导致报错 会出现这种错误时因为 c program files 这里 中间有一个空格 很显然yarn帮并不能通过这
  • mac安装mysql workbench,Mac OS X 上的“MySQLWorkbench quit unexpectly.”问题

    今天 在我的Mac OS X 10 8 4 系统上使用MySQLWorkbench 6 0 7 在启动之时 就遇到问题不能启动 提示对话框为 MySQLWorkbench quit unexpectly 然后 有 ignore report
  • 软件测试之检查产品说明书

    场景 学习 软件测试 第4章节 检查产品说明书 关于黑盒测试和白盒测试 黑盒测试只需要知道软件要做什么 而无法看到盒子里的软件是怎么运行的 只要进行一些输入 然后输出结果 目前我们做的基本上是这种测试 我们知道输入和预计输出 只要把按操作输
  • GCC编译选项补充

    一 出错检查和警告提示选项 pedantic error 允许发出ANSIC标准所列的全部错误信息 w 关闭所有警告 Wall 允许发出GCC提供的所有有用的报警信息 Werror 把所有的告警信息转化为错误信息 并在告警发生时终止编译过程
  • vue---制作表格+分页功能

    小白第一次尝试使用vue制作分页功能 分为两个部分 一个是表格部分 一个是下面分页的按钮部分 表格部分用最熟悉的html标签table table tr th 字母 th tr tr td td td td tr table
  • 移动端H5页面返回并且刷新页面(BFcache)

    项目中的需求 点击浏览器中的返回按钮 要让页面重新加载资源 因为这部分的资源每次去加载的内容都不一样 如果返回的时候 还是看到原先的内容 那做这个内容块的意义就很小了 而如果用户看完了这部分内容 再返回来的时候 这个地方换成了新的内容 这样
  • Could not resolve all dependencies for configuration ':app:_debugApk'

    问题 FAILURE Build failed with an exception What went wrong A problem occurred configuring project app gt Could not resolv
  • mysql常用命令,mysql数据类型和Java数据类型对应

    一 创建数据库 1 dos命令打开数据库 mysql u root pok 2 查看数据库 show databases 3 创建数据库 假设数据库表名abc create database abc 4 删除数据库 drop databas
  • 刷脸支付让用户与商家距离更进一步

    商业世界中 支付 往往不仅是支付 正如支付宝的诞生让网络交易变得可靠 线下二维码直接带动了移动支付的兴起 刷脸支付则让用户与商家的距离更进一步 以友宝 留夫鸭为代表的线下零售企业正成为这次支付变革中的首批获益者 率先完成了自身零售模式的进化
  • netdiscover使用

    介绍 Netdiscover是一种网络扫描工具 通过ARP扫描发现活动主机 可以通过主动和被动两种模式进行ARP扫描 通过主动发送ARP请求检查网络ARP流量 通过自动扫描模式扫描网络地址 对此我们可以对其网段进行获取存活主机进行信息收集
  • yolov5组件笔记

    深度学习模型组件 深度可分离卷积 瓶颈层Bottleneck CSP瓶颈层BottleneckCSP ResNet模块 SPP空间金字塔池化模块 目录 1 标准卷积 Conv BN activate 2 DWConv深度可分离卷积 3 Bo
  • 部署ML/DL 模型到一个consolidated AI演示

    关键字 IRIS IntegratedML Flask FastAPI TensorFlow Serving HAProxy Docker Covid 19 目的 过去几个月里 我们提到了一些深度学习和机器学习的快速演示 包括一个简单的 C
  • Python pygame窗口无法退出的问题-解决办法

    大部分Python学习课程都会推荐学习pygame库 笔者在学习过程中 遇到了一个小问题 就是按照原来的code来进行 见下 无法正常退出窗口 if event type pygame QUIT sys exit 稍微修改下这样就可以了 i
  • close-on-exec标志介绍

    在执行exec 之前 程序有时需要确保关闭某些特定的文件描述符 尤其是在特权进程中调用exec 来启动一个未知程序时 并非自己编写 抑或是启动程序并不需要使用这些已打开的文件描述符时 从安全编程的角度出发 应当在加载新程序之前确保关闭那些不
  • 视频技术阐释

    目录 一 视频定义 二 视频原理 三 视频中的图像表达原理 四 视频的基础参数 帧 长宽比 分辨率 帧率 码率 重采样率 色深 五 视频的高低频 六 视频编码与格式 七 视频评价 八 视频开发库 九 视频协议 十 常用视频编辑软件 一 视频