November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Wednesday, January 30th, 2008 10:04 pm
Остальные части

Непосредственно в стандарте MPEG2 определены следующие варианты аудио:


1) те же, что в MPEG1 (с прямыми ссылками на третью часть стандарта MPEG1: ISO/IEC 11172-3).

Для MPEG1 audio существует три уровня (layers), отличающихся сложностью процесса кодирования, ограничениями на параметры звука и, соответственно, дающие разный по качеству результат.
Layer 1 - самый простой и низкокачественный, layer 3 - самый сложный и высококачественный.

Layer 1 даёт неприемлемо большой битрейт при низком качестве, поэтому на практике не применяется.

Layer 2 и Layer 3 позволяют кодировать моно и стереозвук с частотой сэмплирования 32, 44.1 и 48 килогерц с битрейтом 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 и 384 кбит/с.

В DVB чаще всего используется layer 3, 48 килогерц и 160 или 192 килобита/c.

[Лирическое отсутпление]
Всем известный формат MP3 - это вовсе никакой не MPEG3, как многие ошибочно считают, а MPEG1 layer 3. Он чаще всего и используется в качестве аудиоформата в MPEG2 вообще, и в DVB в частности.

Аналогично сокращение MP2 чаще всего применяют для обозначения MPEG1 layer 2, а MP1 - MPEG1 Layer 1.

MPEG3 - это стандарт, предназначавшийся для передачи телевидения высокой чёткости, однако очень быстро обнаружилось, что тех же результатов можно достичь небольшими дополнениями к MPEG2, после чего работа над MPEG3 была прекращена. Тем более, что вскоре подоспел и MPEG4.
[Конец лирического отступления]

2) те же, что в MPEG1, но с половинными частотами дискретизации - 16, 22.05 и 24 килогерца и с битрейтами 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144 и 160 килобит.
Пониженные частоты дискретизации лучше подходят для передачи речи, не расходуя пропускную способность на передачу высокочастотных составляющих звука.

Первые два варианта аудиоформатов описаны в ISO/IEC 13818-3.

Кроме моно- и стереозвука в MPEG2 предусмотрен многоканальный звук - до 3 фронтальных каналов, до двух тыловых и ещё один для низкочастотных эффектов - в разных сочетаниях. Причем в целях совместимости с декодерами MPEG1 шестиканальный звук перед кодированием преобразуется в два стандартных стереоканала и дополнительные. Если такой поток попадает в MPEG1-декодер, то он воспримет два стандартных канала, а остальные проигнорирует. MPEG2-декодер при необходимости сможет из всех этих каналов восстановить до шести исходных.

3) AAC - Advanced Audio Coding, метод высококачественного кодирования звука, описанный в ISO/IEC 13818-9.

4) Больше никаких вариантов в стандарте нет. Но в нём предусмотрены два так называемых "частных потока" (private streams), которые могут использоваться произвольным образом, понимаемым декодером. В DVD частный поток 1 используется для хранения других разновидностей звука (например, AC3 и DTS).


Кодирование аудио также использует алгоритмы сжатия с потерями и без потерь. Сжатие с потерями основывается на особенностях восприятия звука человеком.

Человеческое ухо обычно наиболее чувствительно в диапазоне примерно от 1 до 5 кГц, а чем дальше от этих частот, тем выше порог чувствительности. Соответственно, частотные составляющие, не превосходящие порога, можно просто отбросить.

Сильная составляющая, сосредоточенная вблизи одной частоты, делает малозаметными ("маскирует") более слабые составляющие на близких частотах.

Существует также и временнОе маскирование: в течение некоторого времени после окончания сильного звука следующий за ним слабый остается незаметным, и наоборот, слабый звук за несколько миллисекунд до сильного также становится незаметным.

Эффекты частотного и временнОго маскирования позволяют заметно сократить объем данных без заметного ухудшения качества.

В целом сжатие звука состоит в разбивке его на частотные составляющие и удалении тех из них, которые наименее заметны на слух. Естественно, чем больше данных удаляется, тем сильнее искажается звук. Наверняка все слышали, чтО получается при mp3-сжатии с высокой частотой сэмплирования и низким битрейтом: звук становится неестественным, как из бочки, появляется пред- и послезвучание. В общем, примерно такие же артефакты, как и при неуёмном сжатии изображений.

Кодирование звука в MP3 сильно напоминает кодирование видео в MPEG2. Звук разбивается на полосы по частотам, к ним применяется Модицифированное Дискретное Косинусное Перобразование, в результате получаются спектральные коэффициенты, часть их зануляется посредством адаптивных функций, после чего коэффициенты выписываются в определенной последовательности и к ним применяется RLE и сжатие по Хаффману.

К полученным закодированным блокам данных (которые, как и для видео, называются кадрами - frames) добавляются заголовки и получается PES - Packetized Elementary Stream.
Tags:
Thursday, January 31st, 2008 06:19 am (UTC)
Оно очень локальное. Оно не ловит моменты типа пол-минуты рубки (и нужен высокий битрейт), пол-минуты полной тишины (и битрейт может быть 32kbps).
Thursday, January 31st, 2008 08:01 am (UTC)
Не то, чтобы совсем не ловит. Я сделал тестовый файл - полминуты тишины, полминуты тона 440 Гц, полминуты тишины, полминуты тона 1000 Гц. lame -V 0 сделал так:
LAME 3.97 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), SSE, SSE2
Using polyphase lowpass filter, transition band: 19383 Hz - 19916 Hz
Encoding file.wav to file.mp3
Encoding as 44.1 kHz VBR(q=0) single-ch MPEG-1 Layer III (ca. 5.7x) qval=0
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA 
  4596/4596  (100%)|    0:21/    0:21|    0:21/    0:21|   5.5352x|    0:00 

 32 [1986] ********************************************************************
 40 [ 396] **************
 48 [  87] ***
 56 [ 241] *********
 64 [ 469] *****************
 80 [1008] ***********************************
 96 [ 381] **************
112 [  25] *
128 [   1] *
160 [   1] *
192 [   1] *
224 [   0] 
256 [   0] 
320 [   0] 

То есть, 43% кадров попали в минимально возможный битрейт.
Thursday, January 31st, 2008 08:59 am (UTC)
А какой битрейт был заказан? Ну и тон кодируется, очевидно, очень эффективно.
У меня на работе звуковых редакторов нет — было бы интересно сделать "пол-минуты металла, пол-минуты тона, пол-минуты металла, пол-минуты тона" и заказать битрейт 192. И посмотреть какой битрейт ПОЛУЧИТСЯ если поделить размер файла на его длительность. Думаю, меньше 192 — он будет стараться держать 192 на металле, а потом делать низкий на тоне (потому что больше не нужно совсем)…
Thursday, January 31st, 2008 10:17 am (UTC)
В явном виде никакой.
-V n 0 <= n <= 9
Enable VBR (Variable BitRate) and specifies the value of VBR quality (default = 4). 0 = highest quality.
Thursday, January 31st, 2008 10:26 am (UTC)
Ну, таким вообще страшно пользоваться :)
Thursday, January 31st, 2008 10:40 am (UTC)
Полминуты Ингви Мальмстина - полминуты килогерцовой синусоиды - полминуты Мальмстина - полминуты килогерцовой синусоиды:
$lame -m m -q 0 -aq 0 --abr 192 test.wav test.mp3
LAME 3.97 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), SSE, SSE2
Using polyphase lowpass filter, transition band: 20094 Hz - 20627 Hz
Encoding test.wav to test.mp3
Encoding as 44.1 kHz average 192 kbps single-ch MPEG-1 Layer III (3.7x) qval=0
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA 
  4596/4596  (100%)|    0:09/    0:09|    0:09/    0:09|   13.064x|    0:00 
 32 [  31] **
 40 [1511] ***********************************************************
 48 [ 753] ******************************
 56 [   0] 
 64 [   0] 
 80 [   0] 
 96 [   2] *
112 [   3] *
128 [  25] *
160 [1742] ********************************************************************
192 [ 523] *********************
224 [   3] *
256 [   1] *
320 [   2] *
-------------------------------------------------------------------------------
   kbps       mono %     long switch short %
  104.9      100.0       100.0   0.0   0.0


Размер файла получился 1571523 байт, если поделить на 120 секунд, то 102 килобита/с.

Правда, эксперимент был не чистый - Мальмстина я брал уже из MP3.
Thursday, January 31st, 2008 10:44 am (UTC)
Размер файла получился 1571523 байт, если поделить на 120 секунд, то 102 килобита/с.
вот, ровно то, что ожидалось. А могли бы добавить битрейта Мальмстину, что бы добить файлик. Ему-то бы точно не помешало.
Thursday, January 31st, 2008 10:52 am (UTC)
Вообще, если поглядеть на гистограмму, то обнаружится, что 192 не использовалось по максимуму даже на металле, на три четверти хватило 160. Может, потому что звук уже был с обрезанными частотными составляющими?

В целом, получается, что такое высокоинтеллектуальное перераспределение битрейта между крупными участками на одном проходе, понятное дело, не работает, а в два прохода его не делают, скорее всего, просто потому что оно никому не нужно :)