2023-10-22 10:28来源:m.sf1369.com作者:宇宇
数据量(字节/秒)= (采样频率(Hz)*采样位数(bit)*声道数)/ 8 声卡对声音的处理质量可以用三个基本参数来衡量,即采样频率、采样位数和声道数。
采样频率是指单位时间内的采样次数。采样频率越大,采样点之间的间隔就越小,数字化后得到的声音就枯扒越逼真,但相应的数据量就越大。声卡一般提供11.025kHz、22.05kHz和44.1kHz等不同的采样频率。
一般获取音频数据的方法是:采用固定的时间间隔,对音频电压采样(量化),并将结果以某种分辨率(例如:CDDA每个采样为16比特或2字节)存储。
采样的时间间隔可以有不同的标准,如CDDA采用每秒44100次;DVD采用每秒48000或陵则96000次。因此,采样率,分辨率和声道数目(例如立体声为2声道)是音频文件格式的关键参数。
扩展资料
在电脑上录音的本质就是把模拟声音信号转换成数字信号。反之,在播放时则是把数字信号还原成模拟声音信号输出。
采集卡的位是指采集卡在采集和播放声音文件时所使用数字声音信号的二进制位数。采集卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。8位代表2的8次方--256,16位则代表2的16次方--64K。
有损文件格式是基于声学心理学的模型,除去人类很难或根本听不到的声音,例如:一个音量很高的声音后面紧跟着一个音量很低的声音。MP3就属于这一类文件。
无损的音频格式(例如FLAC)压缩比大约是2:1,解压时不会产生数据/质量上的损失,解压产生的数据与尺败棚未压缩的数据完全相同。如需要保证音乐的原始质量,应当选择无损音频编解码器。例如,用免费的FLAC无损音频编解码器你可以在一张DVD-R碟上存储相当于20张CD的音乐。
有损压缩应用很多,但在专业领域使用不多。有损压缩具有很大的压缩比,提供相对不错的声音质量。
参考资料来源:百度百科-音频采样
H265/HEVC(Hight Efficiency Video Coding)是由ITU-T和ISO/IEC两大组织在H264/AVC的基础之上推出的新一代高效视频编码标准,主要为应对高清和超高清视频在网络传输和数据存储方面带来的挑战。上一篇敬带数文章对H264/AVC视频码流进行了详细的分析,本文继续从数据处理的角度对H265/HEVC视频码流进行详细分析。
H265的分层结构与H264类似,分为视频编码层(VCL:Video Code Layer)和网络抽象层(NAL:Network Abstract Layer)。
VCL 层:对视频的原始数据进行压缩,包含原始的视频数据。
NAL 层:将视频压缩数据根据内容不同划分成不同类型的NALU单元进行网络传输。
H265原始码流(裸流)是由多个NAL单元组成的,具体如下图所示:
NALU单元是由什么组成的呢?和H264的NALU单元组成一样,主要由三部分组成,具体如下图所示:
1.Start Code
Start Code,亮首即开始码,一般为4字节或3字节,必须是“0x00 0x00 0x00 0x01”或“0x00 0x00 0x01”,用来表示一个NALU单元的开始。
2.NALU Header
NALU Header,占2个字节,由forbidden_bit(1bit),nal_unit_type(6bits),nuh_layer_id(6bit),nuh_temporal_id_plus1(3bit)四部分组成,具体如下图所示:
(1)forbidden_bit(1bit)
F禁止位,占用NALU Header的第一个字节的第一个位,值默认0,值为1时表示错误,当网络发现NAL单元有比特错误时可设置该比特为1,以便接收方纠错或丢掉该单元。
(2)nal_unit_type(6bits)
Type类型,占用NALU Header的第一个字节的第二到七位,用来表示NAL单元的类型,具体取值如下图所示:
(3)nuh_layer_id(6bit)
LayerId预留位,占用NALU Header的第一个字节的最后一位和第二个字节的前五位,默认全为0,用于未来扩展。
(4)nuh_temporal_id_plus1(3bit)
TID时域层标号,占用NALU Header的第二个字节的最后三位,一般默认值为1,其值减1为该NALU时域层标号。
3.NALU Payload
NALU Payload,即视频压缩数据RBSP,但是严格意义上来说,Payload数据应该是EBSP,接下来详细介绍一下H265码流数据中的相关概念,与H264类似。
SODB (String Of Data Bits):原始数据比特流
由VCL层产生的的原始数据流,由于数据长度不一定是8的倍数,为方便计算机进行处理,就用到了RBSP。
RBSP (Raw Byte Sequence Payload):原始字节序列载荷
即在SODB的后面添加了trailing bits,即一个bit 1和若干行橡个bit 0,以便字节对齐。
EBSP (Encapsulated Byte Sequence Payload):扩展字节序列载荷
NALU单元是通过开始码“0x00 0x00 0x00 0x01”或者“0x00 0x00 0x01”来表示一个NALU单元的开始,同时H265规定,当检测到“0x00 0x00 0x00”时,也可以表示当前NALU的结束。那这样就会产生一个问题,就是如果在NALU的内部,出现了“0x00 0x00 0x01”或“0x00 0x00 0x00”时该怎么办?所以在h265码流中规定每有两个连续的“0x00 0x00”,就增加一个“0x03”,从而预防压缩后的数据与开始码产生冲突,防止竞争。
利用UItraEdit工具打开一个H265文件进行数据分析,如下图所示:
如上图所示,我们可以清晰的看到在H265码流中,是以“0x00 0x00 x00 0x01”为开始码的,找到开始码后,后面的两个字节表示NALU Header,上图所示分别标注了VPS、SPS、PPS、IDR类型。