【音视频】音频的有损压缩技能、无损压缩技能与音频的常见编码器 ...

打印 上一主题 下一主题

主题 827|帖子 827|积分 2481


媒介

在数字音频和视频范畴,压缩技能是至关重要的,它可以显著淘汰文件大小,节省存储空间和传输带宽。压缩技能分为两大类:有损压缩和无损压缩。这两种技能各有其独特的应用场景和优缺点,理解它们的区别对于选择合适的压缩方案至关重要。

为什么需要音频压缩

音频压缩的重要目的是为了淘汰音频文件的大小,这样可以节省存储空间和传输时间。以下是几个简朴易懂的原因:

  • 节省存储空间:原始音频文件通常非常大,会占用大量的存储空间。通过压缩,文件变得更小,可以在设备上存储更多的音乐或音频文件。
  • 进步传输效率:压缩后的音频文件更小,上传和下载速度更快。在网络速度有限的情况下,压缩音频可以更快地传输,淘汰等待时间。
  • 节省带宽:对于在线音乐流媒体服务和广播来说,压缩音频可以节省带宽成本,答应更多用户同时收听。
  • 方便分享和传输:较小的文件更轻易通过电子邮件、消息应用步调或其他平台举行分享,不会由于文件太大而受到限制。
  • 进步设备兼容性:很多设备和应用步调对大文件的处理能力有限,压缩音频可以进步这些设备和应用步调的兼容性和性能。
简朴来说,音频压缩就是让音频文件变小,方便存储、传输和分享,同时在差别的设备上更好地播放。
压缩的原理

有损压缩

有损压缩通过抛弃或简化一些音频数据来显著淘汰文件大小。这种方法利用了人耳对某些声音不敏感的特点。以下是几种重要的有损压缩技能原理:

  • 频域分析

    • 傅里叶变换:将音频信号从时间域转换到频域,以便分析各个频率身分。
    • 遮蔽效应:利用人耳的遮蔽效应,去除被更强信号遮蔽的弱信号。例如,一个强烈的低频声可以掩盖附近的高频声,这些高频声就可以被去除而不被人耳察觉。

  • 量化

    • 量化器:将连续的音频信号值转换为离散的数值,较小的数值范围可以进一步淘汰数据量。
    • 量化噪声:通过生理声学模型,将量化噪声控制在听觉阈值以下,使其不被人耳察觉。

  • 熵编码

    • 霍夫曼编码:根据数据出现的频率分配差别长度的编码,频率高的数据分配较短的编码,从而淘汰整体数据量。
    • 游程编码:将连续重复的数值压缩为数值和重复次数的组合。

无损压缩

无损压缩通过重新分列或优化音频数据存储方式,在不丢失任何信息的情况下淘汰文件大小。以下是几种重要的无损压缩技能原理:

  • 猜测编码

    • 线性猜测编码(LPC):使用前几个采样点来猜测当前采样点的值,只存储猜测误差。这些误差通常比原始数据要小,便于进一步压缩。

  • 熵编码

    • 霍夫曼编码:同有损压缩中使用的霍夫曼编码一样,根据数据出现的频率分配差别长度的编码。
    • 算术编码:将整个数据序列编码为一个范围内的小数,通过不断细分这个范围来表示数据序列,到达压缩目的。

  • 块编码

    • Run-length Encoding(RLE):将连续重复的数值压缩为数值和重复次数的组合。
    • 差分编码:存储相邻采样点之间的差值,这些差值通常比原始数据要小,便于进一步压缩。

常见编码器

音频编码器是将音频数据压缩成特定格式的软件或硬件。差别的编码器使用差别的压缩技能和算法,以满足差别的需求。以下是一些常见的音频编码器及其作用和区别:
常见的音频编码器


  • MP3 (MPEG-1 Audio Layer III)

    • 作用:最广泛使用的有损音频编码器,重要用于音乐和音频流媒体。
    • 特点:通已往除人耳不易察觉的音频信息来压缩数据,提供相对较小的文件大小和较好的音质。
    • 长处:高兼容性,险些所有的音频播放器和设备都支持MP3格式。
    • 缺点:音质不如某些现代编码器(如AAC),特别是在低比特率下。

  • AAC (Advanced Audio Coding)

    • 作用:比MP3更先进的有损音频编码器,广泛用于流媒体和便携设备,如Apple的iTunes。
    • 特点:在相同比特率下,提供更高的音质和更小的文件大小。
    • 长处:更高的音质,特别是在低比特率下;支持多种采样率和通道配置。
    • 缺点:兼容性不如MP3,但在现代设备和播放器中已经非常普遍。

  • OGG Vorbis

    • 作用:开源有损音频编码器,常用于开源软件和某些游戏音频。
    • 特点:在相同比特率下,通常比MP3有更好的音质。
    • 长处:高音质,开源免费,无需付出专利费用。
    • 缺点:兼容性不如MP3和AAC,重要在开源社区和特定应用中使用。

  • FLAC (Free Lossless Audio Codec)

    • 作用:无损音频编码器,用于高保真音频存储和传输。
    • 特点:压缩音频数据而不丢失任何信息,可以完全还原为原始音频。
    • 长处:高音质,适用于音乐存档和专业音频制作;开源免费。
    • 缺点:文件大小较大,比有损格式大得多。

  • ALAC (Apple Lossless Audio Codec)

    • 作用:Apple公司开辟的无损音频编码器,用于Apple设备和iTunes。
    • 特点:在音质和压缩率上与FLAC相当。
    • 长处:高音质,适用于音乐存档和专业音频制作;与Apple生态体系高度兼容。
    • 缺点:文件大小较大,重要用于Apple设备。

  • WAV (Waveform Audio File Format)

    • 作用:无压缩音频编码器,常用于灌音和音频编辑。
    • 特点:保留所有音频细节,音质最高。
    • 长处:最高音质,无任何压缩丧失;广泛用于专业音频制作和编辑。
    • 缺点:文件非常大,不恰当流媒体和便携设备存储。

上面这些编码,我们都可以使用ffmpeg举行转换
  1. C:\Users\wyj\Music>ffmpeg -i "Joel Hanson_Sara Groves-Traveling Light.mp3" T.flac
  2. ffmpeg version 2024-07-15-git-350146a1ea-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
  3.   built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
  4.   configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  5.   libavutil      59. 28.100 / 59. 28.100
  6.   libavcodec     61. 10.100 / 61. 10.100
  7.   libavformat    61.  5.101 / 61.  5.101
  8.   libavdevice    61.  2.100 / 61.  2.100
  9.   libavfilter    10.  2.102 / 10.  2.102
  10.   libswscale      8.  2.100 /  8.  2.100
  11.   libswresample   5.  2.100 /  5.  2.100
  12.   libpostproc    58.  2.100 / 58.  2.100
  13. Input #0, mp3, from 'Joel Hanson_Sara Groves-Traveling Light.mp3':
  14.   Metadata:
  15.     title           : Traveling Light
  16.     artist          : Joel Hanson/Sara Groves
  17.     album           : Traveling Light
  18.     date            : 2002
  19.   Duration: 00:03:28.64, start: 0.025056, bitrate: 333 kb/s
  20.   Stream #0:0: Audio: mp3 (mp3float), 44100 Hz, stereo, fltp, 320 kb/s
  21.       Metadata:
  22.         encoder         : Lavc58.13
  23.   Stream #0:1: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 3000x3000 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn (attached pic)
  24.       Metadata:
  25.         title           : Traveling Light
  26.         comment         : Cover (front)
  27. Stream mapping:
  28.   Stream #0:1 -> #0:0 (mjpeg (native) -> png (native))
  29.   Stream #0:0 -> #0:1 (mp3 (mp3float) -> flac (native))
  30. Press [q] to stop, [?] for help
  31. [flac @ 00000286e0af1440] encoding as 24 bits-per-sample, more is considered experimental. Add -strict experimental if you want to encode more than 24 bits-per-sample
  32. [swscaler @ 00000286e2672940] deprecated pixel format used, make sure you did set range correctly
  33.     Last message repeated 3 times
  34. Output #0, flac, to 'T.flac':
  35.   Metadata:
  36.     title           : Traveling Light
  37.     artist          : Joel Hanson/Sara Groves
  38.     album           : Traveling Light
  39.     date            : 2002
  40.     encoder         : Lavf61.5.101
  41.   Stream #0:0: Video: png, rgb24(pc, gbr/unknown/unknown, progressive), 3000x3000 [SAR 1:1 DAR 1:1], q=2-31, 200 kb/s, 90k fps, 90k tbn (attached pic)
  42.       Metadata:
  43.         title           : Traveling Light
  44.         comment         : Cover (front)
  45.         encoder         : Lavc61.10.100 png
  46.   Stream #0:1: Audio: flac, 44100 Hz, stereo, s32 (24 bit), 128 kb/s
  47.       Metadata:
  48.         encoder         : Lavc61.10.100 flac
  49. [out#0/flac @ 00000286e0f41440] video:5556KiB audio:43044KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.016965%
  50. frame=    1 fps=0.0 q=-0.0 Lsize=   48608KiB time=00:00:00.00 bitrate=36199656000.0kbits/s speed=2.66e-05x
复制代码
并使用ffplay举行播放,由于有些格式播放器不支持,所以我们直接使用ffplay
作用和区别



  • 有损编码器(MP3, AAC, OGG Vorbis)

    • 作用:通过抛弃部分音频信息来减小文件大小,恰当需要节省存储空间和带宽的应用,如音乐流媒体、在线广播和便携设备。
    • 区别:MP3最为遍及,但音质相对较低;AAC在低比特率下音质更好,兼容性渐渐进步;OGG Vorbis在开源社区和某些特定应用中表现优秀。

  • 无损编码器(FLAC, ALAC, WAV)

    • 作用:压缩音频数据而不丢失任何信息,恰当需要高保真音质的应用,如音乐存档、专业音频制作和编辑。
    • 区别:FLAC和ALAC都提供无损压缩,但FLAC开源且适用更广泛的设备,而ALAC则重要用于Apple生态体系;WAV不举行压缩,音质最高,但文件非常大。

通过理解这些编码器的作用和区别,可以根据具体需求选择合适的编码器,以实现最佳的音质和文件大小平衡。

总结

有损压缩技能通过牺牲一些细节和数据精度来实现高压缩率,例如音频范畴中的MP3格式。尽管有损压缩会导致一定程度上的信息丢失,但它在大多数情况下提供了令人满足的音质,尤其恰当于音乐流媒体和在线广播等应用。相比之下,无损压缩技能能够在不丧失音频或视频质量的前提下减小文件大小,如FLAC音频格式。这种技能常用于音乐制作和灌音工作流程中,确保了最高质量的音频保真度。综上所述,选择压缩技能应根据具体需求来定,权衡文件大小和质量要求,以到达最佳的用户体验和技能实现。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

怀念夏天

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表