达梦数据库安装与配置

来源:这里教程网 时间:2026-03-03 20:42:02 作者:

 声音的本质是一种能量波。音调,由声音的频率决定。音量,由振幅和人离声源的距离决定。音色,由波形决定。从声音到数字信号,宏观上包括三个步骤:

  1.   声波通过空气传播到麦克风的振膜。

  2.   振膜随空气抖动的振幅大小产生相应的电学信号,即模拟信号(Analogue Signal)。

  3.   通过模数转换器 ADC 将模拟信号转换成数字信号(Digital Signal)。

  数字音频的 A/D 转换涵盖三个过程:采样、量化以及编码。PCM(Pulse Code Modulation)脉冲编码调制属于数字通信的编码方式之一,它将一个时间连续且取值连续的模拟信号转化为时间离散、取值离散的数字信号,而后在信道中进行传输。

  麦克风收集到的音源在本质上属于模拟信号。采样过程是将时间连续的模拟信号转变为时间离散、幅度连续的抽样信号,从而在时间轴上实现对信号的数字化操作。量化则是把时间离散且幅度连续的抽样信号进一步转换为时间离散、幅度离散的数字信号,在幅度轴上完成对信号的数字化处理。编码是把量化后的信号进行编码,形成由多位二进制码组成的码组来表示抽样值,以此完成从模拟信号到数字信号的转换,即按照特定格式记录采样和量化后的数字信息。编码后的二进制码组通过数字信道进行传输,在接收端,经过译码和滤波等操作,最终还原为模拟信号。

  模数转换本质上就是把连续的模拟信号转换为成比例的、时间离散且幅度离散的数字信号。人耳所能感知到的声音频率范围处于 20Hz 至 20KHz 之间。根据香农采样定律,为了能够不失真地恢复模拟信号,采样频率应大于等于模拟信号频谱中最高频率的两倍。正因如此,音频文件的采样率通常在 40KHz 至 50KHz 左右。

    音频压缩

    编码之 AAC 解析

  理论上任何数字音频都无法做到完全还原模拟信号。而 PCM 编码作为模拟信号转换为数字信号时的原始编码,代表着数字音频的最 佳保真水平,因此被约定为 “无损编码”。音频压缩是对 PCM 编码进行的二次编码,其目的在于减小原始 PCM 编码的存储体积。音频二次编码分为两类,即有损编码和无损编码,也称为有损压缩和无损压缩。其中,无损意味着与 PCM 编码相对比,音质完全相同。而有损则是相较于 PCM 编码,会损失一部分音频质量。

  无损压缩是指将数据进行压缩,通过解码能够还原成与原始数据完全一模一样的数据。例如 ALAC、APE、FLAC 等都属于无损音频格式。

  有损压缩是通过消除冗余信息,只保留人耳能感知的声音频率在 20Hz-20000Hz 以内的数据。例如 MP3、AAC、OGG、WMA 等都属于有损音频格式。

  人耳能感知的声音信号频率范围为 20Hz~20KHz,在此范围之外的频率信号均可视为冗余信息。人耳听觉还具有生理和心理声学现象,当强音信号与弱音信号同时存在时,弱音信号会被强音信号所屏蔽,此时弱音信号就可以视为冗余信息。这便是人耳听觉的掩蔽效应,主要表现在频谱掩蔽效应和时域掩蔽效应。在各大音乐平台的无损音质和高品音质对应的就是无损压缩和有损压缩,无损音质具有更高的保真度和还原度,适合专业音乐制作、高端音频设备等领域;无损压缩具有更高的码率和传输效率,适合大多数非专业的普通听众。通常情况下,高品音质的存储空间一般只有无损音质的三分之一。

    视频基础

    编码原理

  •     理解视频编解码技术

  •     音视频h264编码介绍

      我们可以将视频定义为在单位时间内连续的 n 帧,这可以视作一个新的维度,n 即为帧率,若单位时间为秒,则等同于 FPS(每秒帧数 Frames Per Second)。

      播放一段视频时,每秒所需的数据量便是它的比特率(也就是常说的码率)。比特率决定视频的清晰度和流畅度,比特率越高,视频的质量就越好,但同时也需要更多的存储空间和带宽来传输。在选择视频的比特率时,需要根据实际情况进行权衡,以达到最 佳的观看效果。

        比特率 = 宽 * 高 * 颜色深度 * 帧每秒

      一个相当典型的 30 分钟视频会议需要大约 447.9 GB 的存储空间,而一部 2 小时的电影需要几乎 1.79 TB(即 1790 GB)的空间。

      单帧全彩色高清 1920×1080 视频(每像素 4 字节)为 8294400 字节,在帧率 30 的情况下,每秒高清视频将占用 237 MB。

      在这种前提下,1 分钟的资源就需要 13.9 GB 的存储空间,30 分钟视频会议需要大约 417 GB 的存储空间,而一部 2 小时的电影需要几乎 1.63 TB的存储空间。显然这么大的数据是无法接受的,因此不得不对视频资源进行压缩,即编码。

      视频编码的核心思想在于去除冗余信息,而这些冗余信息主要包含以下几个方面:

  •   空间冗余:图像相邻像素之间有较强的相关性。例如,在一幅风景图像中,同一片天空区域的相邻像素颜色和亮度可能非常接近,这就形成了空间冗余。

  •   时间冗余:视频序列的相邻图像之间内容相似。例如,在一个人物讲话的视频中,连续的几帧画面中人物的姿势和背景可能变化不大,这就产生了时间冗余。

  •   编码冗余:不同的像素值出现的概率并不相同。如果采用固定长度的编码方式,对于出现概率高的像素值和出现概率低的像素值分配相同的编码长度,就会造成编码冗余。

  •   视觉冗余:人的视觉系统对某些细节并不敏感。例如,在一幅图像中,细微的颜色变化或者一些高频的纹理可能不会被人眼轻易察觉,这些部分的信息可以在一定程度上进行压缩而不影响整体的视觉效果。

  •   知识冗余:一些规律性的结构可以由先验知识和背景知识得到。例如,在一幅建筑物的图像中,我们可以根据建筑的结构特点和常见的设计规律来预测某些部分的像素值,从而减少需要存储的信息量。

        视频压缩

        H.264&H.265视频编码原理介绍与对比

      H.264/AVC 采用的核心算法是帧内压缩和帧间压缩,帧内压缩是生成 I 帧的算法,帧间压缩是生成 B 帧和 P 帧的算法。

      帧内压缩,亦称为空间压缩。在对一帧图像进行压缩时,仅仅考虑本帧的数据,而不涉及相邻帧之间的冗余信息,这在实际操作中与静态图像压缩较为相似。帧内通常采用有损压缩算法,因为帧内压缩是对一个完整的图像进行编码,所以能够独立地进行解码和显示。不过,帧内压缩一般难以达到很高的压缩率,其效果与编码 JPEG 大致相当。帧间压缩的原理在于:相邻的几帧数据具有很大的相关性,或者说前后两帧的信息变化非常小。也就是说,连续的视频中其相邻帧之间存在冗余信息。根据这一特性,对相邻帧之间的冗余量进行压缩,就能够进一步提高压缩量,减小压缩比。

      帧间压缩,亦称为时间压缩。其主要通过对时间轴上不同帧之间的数据进行比较从而实现压缩。帧间压缩一般是无损的,其中帧差值算法是一种典型的时间压缩方法。该算法通过对比本帧与相邻帧之间的差异,仅记录本帧与其相邻帧的差值信息。这样一来,就能够大大减少数据量,因为在很多情况下,相邻帧之间的变化往往是局部的、微小的,只需要记录这些变化部分,在播放时结合相邻帧的信息即可还原出当前帧的画面,从而实现高效的视频压缩。

      编码压缩的步骤大致如下:

    1.   分组,也就是将一系列变换不大的图像归为一个组,也就是一个序列,也就是 GOP;

    2.   定义帧,将每组的图像帧归分为 I 帧、P 帧和 B 帧三种类型;

    3.   预测帧,以 I 帧做为基础帧,以 I 帧预测 P 帧,再由 I 帧和 P 帧预测 B 帧;

    4.   数据传输,最后将 I 帧数据与预测的差值信息进行存储和传输。

        码流结构

  •     H.264码流结构

  •   音视频基础:H265/HEVC&码流结构

  •   H.265 如何比 H.264 提升 40% 编码效率

      从码流功能角度分为 NAL 层和 VCL 层。NAL 网络抽象层负责以网络所要求的恰当的方式对数据进行打包和传送。VCL 视频编码层包括核心压缩引擎和块,宏块和片的语法级别定义,设计目标是尽可能地独立于网络进行高效的编码。

      从码流功能角度可分为 NAL(网络抽象层) 和 VCL(视频编码层) 。

      NAL 负责以网络所要求的恰当方式对数据进行打包和传送。它能够根据不同的网络环境和传输需求,对视频编码数据进行有效的封装和处理,确保数据能够在各种网络条件下稳定传输。

      VCL 则包括核心压缩引擎以及块、宏块和片的语法级别定义。其设计目标是尽可能地独立于网络进行高效的编码。VCL 专注于视频内容的压缩编码,通过各种先进的编码技术去除视频中的冗余信息,以实现高压缩比和良好的图像质量。

      码流是由一个个 NALU(NAL Unit)组成的,每个 NAL 单元包括 NALU头 + RBSP。

      一帧图片经过 H.264 编码器之后,会被编码为一个或多个切片(Slice)。而 NALU(Network Abstraction Layer Unit,网络抽象层单元)则是这些切片的载体。切片的存在主要是为了限制误码的扩散和传输。切片头中包含着诸多重要信息,如切片类型、切片中的宏块类型、切片帧的数量、切片所属的图像以及对应的帧的设置和参数等。切片体所包含的数据则是宏块。宏块作为视频信息的主要承载者,除了含有宏块类型、预测类型、编码块模式和量化参数之外,还包含着每一个像素的亮度分量(Y)以及色度信息(蓝色色度分量 Cb、红色色度分量 Cr)。视频解码的主要工作就在于提供高效的方式,从码流中获取宏块中的像素阵列,从而实现视频的播放和显示。

      H.265 引入了编码树单元(Coding Tree Unit,CTU)和编码树块(Coding Tree Block,CTB)。在 H.265 中,CTU 的概念与 H.264 的宏块有一定的相似性,但也存在明显区别。H.264 的宏块采用固定的 16×16 的离散余弦变换(DCT),而 H.265 的 CTU 则同时运用了离散余弦变化(DCT)和离散正弦变化(DST),并且像素大小为 4×4 到 64×64 的动态可变块,这种设计使得 H.265 在处理不同类型的图像内容时更加灵活高效。其中,每个 CTU 也是由一个亮度 CTB(Y)、两个色度 CTB(Cb 和 Cr)以及一些关联的语法元素组成。这些语法元素为解码器提供了必要的信息,以便正确地解析和重建视频图像。通过这种方式,H.265 能够在保证图像质量的前提下,进一步提高压缩效率,减少视频文件的大小,适应不同的网络环境和存储需求。

      H.264/AVC Macroblocks

      H.265/HEVC Macroblocks

  •   YCbCr - YUV 的衍生版本,用于数字视频处理领域,将色彩空间分为亮度分量(Y)和色度分量(Cb、Cr),Y 代表亮度、Cb 代表蓝色色度分量、Cr 代表红色色度分量。

  •   MB - 宏块(Macro Block),在不同的编码标准有不同的叫法, H.264/AVC 的 MB 是视频编码的基本单元,常见的大小有 16x16、64x64 等。编码时每一帧画面都会被按照固定大小分割成大量 MB。

  •   CBP - 编码块模式(Coded Block Pattern),描述视频帧的分块方式,例如实际选择 8×8 还是 16×16 的宏块进行编码处理。其选择和应用取决于视频内容的特性、编码效率的要求以及传输或存储的限制。

  •   QP - 量化参数(Quantization Parameter)。视频压缩一般为有损压缩,编码时需要为每一帧以及每一个 MB 选择 QP,用以控制画面质量与码率。QP 越大,则损失的信息越多,画面质量越差,但压缩率也越高。

  • 相关推荐