Videoforum - форум о видео и не только!


Вернуться   Videoforum - форум о видео и не только! > Видеосъёмка и монтаж. > Кодеки и кодеры, кодирование и конвертация.

Важная информация

Кодеки и кодеры, кодирование и конвертация. Тут обсуждаются вопросы изменения формата видео, качество работы кодировщиков, а так-же известные проблемы и решения соответствующие тематике раздела.

Ответ
 
Опции темы
Старый 01.10.2012, 21:20   #1
Жрец Нефтиды
Модератор
 
Аватар для Жрец Нефтиды
 
Регистрация: 15.07.2012
Адрес: Санкт-Петербург
Сообщений: 1,395
Сказал(а) спасибо: 344
Поблагодарили 539 раз(а) в 368 сообщениях
Вес репутации: 623
Жрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond repute
По умолчанию Метод объективной оценки качества аудио кодеков

Данный метод основан на получении точной математической разности между звуком исходным и звуком закодированным, и призван поставить точку в затянувшемся споре, каким же кодеком лучше всего кодировать звуковую дорожку фильмов в avi файле. Хотя этот метод, по моим представлениям, "лежит на поверхности" и довольно очевиден, мне не приходилось встречать его описание ни на одном из сайтов. Поэтому – большая просьба: если встретишь где-нибудь нечто аналогичное – ткни меня моим жреческим носом по ссылке.
Всё, что ты прочтёшь ниже, адаптировано именно к звуковой дорожке фильма, закодированного с битрейтом, конечно же, 320. Собственно песни, по моим представлениям, нужно кодировать исключительно без потерь качества безпотерьными аудио кодеками. Чтобы через несколько отрезков времени, когда память подешевеет в пятнадцать раз, не было мучительно больно за прежнюю жмотливость.
Существует описанный во многих местах способ исследования кодеков программой Спектрал Лаб. Действительно, это очень хорошая софтина, и мы её со счетов сбрасывать не будем. Только надо понимать, что Спектрал Лаб даёт спектрограммы частот не для всего звукового файла, а для выбранного отрезка длиной в доли секунды. Что математически абсолютно правильно. И чтобы сопоставить спектрограммы исходного и закодированного звука для всего фильма, нам пришлось бы месяц вкалывать. Мой же метод, как я говорил, позволяет одним махом получить разность для всего фильма, но он не связан со спектрограммами частот.
Для исследования я выбрал восстановленный фильм "Живёшь лишь дважды". Спектрограммы Спектрал Лаба показали, что в исходнике присутствует такая гамма частот, которой просто не могло быть на плёнке конца шестидесятых годов. Не иначе как английские спецслужбы поработали. Этот фильм хорош для исследований тем, что содержит самые разнообразные типы звуков: и мелодичную песню, и разговоры разных по тембру персонажей, и шумы космических ракет, и стрельбу, и взрывы, и погони, и мордобои, и самолётные дела, и шум океана, и сочетание разговоров с вышеперечисленными звуками.
Вначале разжимаем демюксированный ас3 звуковой файл до wav декодером от А. Виговский. Полученному файлу дадим имя 0.wav и далее будем называть его исходным файлом. Этот файл мы будем кодировать различными кодеками и называть полученные файлы, соответственно, 1.mp3, 1.ogg и так далее. Эти звуковые файлы потом можно присоединить без пересжатия к avi, но для оценки качества аудио кодеков это делать вовсе ни к чему. Когда же речь будет идти об ACM кодеках, то тут будем кодировать Виртуал Дабом звуковую дорожку avi-файла конвертированного фильма. Полученный avi файл, в котором нас в данной теме интересует только звуковая дорожка, назовём 1.avi.
Чтобы метод сработал, звук закодированный должен с точностью до сэмпла совпадать со звуком исходным. Если кодек не вставляет в начало закодированного файла дозу тишины, то для такого совпадения ничего специально предпринимать не надо. Но некоторые кодеки вставляют в начало закодированного файла дозу тишины. Как это обтяпать для mp3 – описано в теме про кодирование звуковой дорожки. Внимательно прочти, прежде чем вопить, что что-то обломилось.
Исследования займут довольно много времени и потребуют все ресурсы компьютера. Во время исследований ничего другого на компьютере делать не следует. Перед началом исследований отключи все антивирусные программы и непременно перезагрузи компьютер. (Не мечи икру заранее: исследования я уже провёл, результаты ты увидишь, и делать тебе самому ничего не придётся. Подробно расписано для тех, кто решит повторить это сам, а также чтобы был понят метод и не осталось никаких сомнений в его корректности.)
Поехали. Запускаем программу GoldWave. Раздвигаем на весь экран. "Open" – 1.wav. Получили графики звука для исходного файла. Верхний график в GoldWave всегда показывает левый канал, нижний – правый канал. Правый клик по любому месту графиков. В выпадающем списке левый клик по "Channel". Нижний график потемнел. "Edit" – "Copy". В буфер обмена пошёл какой канал? Тот, что не потемнел, то есть левый. "File" – "Close". Экран посерел. Саму программу GoldWave не выгружаем!
Будем считать, что в файле 1.avi звук закодирован АСМ кодеком Fraunhofer 1.263. Этот кодек не вставляет в начало звуковой дорожки ни одного сэмпла тишины. Жмём "Open" – 1.avi. Получили графики для avi-файла, звук в котором закодирован кодеком Фрау. Правый клик по любому месту графиков. В выпадающем списке левый клик по "Channel". Нижний график потемнел. Снова правый клик по любому месту графиков. В выпадающем списке левый клик по "Channel". Верхний график потемнел, нижний стал активным. На клавиатуре жмём кнопку "Delete". Нижний график очистился. Жмём "Edit" – Paste". В нижний график вошёл файл из буфера обмена, верхний пока продолжает быть тёмным (неактивным). Правый клик по любому месту графиков. В выпадающем списке левый клик по "Channel". Оба графика активны, на нижней линейке графики занимают половину длины. Жмём кнопку "Trim". Весь экран и вся нижняя линейка заняты активными графиками.
Что же мы имеем? В верхнем графике сидит полученный декодированием левый канал файла 1.avi. В нижнем графике сидит левый канал исходного файла 0.wav. (Термин "в графике сидит канал", возможно, не очень удачный, но другого термина я пока не придумал, к тому же такой термин короткий. На самом деле левые каналы исходного и декодированного файлов сидят в специальных создаваемых программой GoldWave промежуточных звуковых файлах. Графики отражают содержимое этих каналов, и все последующие операции будут производится GoldWave-ом, разумеется, не с самими графиками, а с содержимым этих промежуточных файлов.)
Жмём кнопку "Channel Mixer". Также на эту вкладку можно выйти "Effect" – "Stereo" – "Channel Mixer".
Появившуюся вкладку настраиваем следующим образом.
"Left channel"
Ползунок "Left volume (%)" двигаем в крайнее правое положение, у бокса справа от него появится цифра 100.
Ползунок "Right volume (%)" двигаем в крайнее левое положение, у бокса справа от него появится цифра -100.
"Right channel"
В обоих боксах справа от ползунков ставим 0.
Жмём "OK". Началась работа, которая продлится сколько-то минут.
Пока идёт геркулесов труд, разберёмся, чем же мы так озадачили компьютер. Цифровой звук – это поток сэмплов. Если частота дискретизации 48 кГц, то на каждую секунду звука приходится 48 тысяч сэмплов для каждого канала. Сэмпл – это целое число. Для наиболее распространённого шестнадцати битного звука величина сэмпла находится в интервале от -32768 до +32767. Даже соседние сэмплы могут очень сильно различаться. Поэтому в данном эксперименте нам нужно обеспечить соответствие закодированного и исходного звука с точностью до сэмпла (об этом я ещё скажу ниже, когда мы дойдём до тех кодеков, которые вставляют в начало файла дозу тишины). Заполнив вкладку "Channel Mixer" так, как я сказал, мы заставляем компьютер просто отнимать от сэмплов левого канала сэмплы правого канала. В левом канале у нас сейчас сидит левый декодированный из сжатого звука канал, в правом канале у нас сидит левый исходный канал. В итоге после окончания работы в левом канале мы будем иметь точную математическую разность между звуком, полученным из левого канала закодированного файла 1.avi и левым исходным каналом. Правый канал будет пуст. Например, если какой-то сэмпл закодированного звука = -15472, а соответствующий сэмпл исходного звука = -15495, то разность будет -15472 – (-15495) = 23. То есть мы манипулируем исключительно целочисленной математикой. Совсем как древние индейцы Майя.
Итак, вычисление разности закончено. На верхнем графике видим небольшие вибрации, нижний график пуст. Поскольку мы – поборники качества и кодировали с битрейтом 320, то верхний график, представляющий из себя разность, будет лишь едва заметно и лишь в некоторых местах отстоять от нуля, и сравнивать такой график с графиками для других кодеков затруднительно. Для того, чтобы явно и наглядно сравнивать кодеки, увеличим левый канал на 20 дБ, или в 10 раз. Правый клик по любому месту графиков. В выпадающем списке левый клик по "Channel". Нижний график потемнел. "Effect" – "Volume" – "Change Volume". Передвигаем ползунок "Volume" в крайнее правое положение, то есть на отметку 20 дБ. OK. После окончания процедуры, которая также займёт немало времени, верхний график заметно увеличится. Нижний неактивный график никак не изменится.
Жмём "File" – "Save Selection As". (А не "File" – "Save As"!)
В нижней строке "Attributes" ставим "PCM signed 16 bit, mono".
И сохраняем wav-файл с каким-либо именем.
Выгружаем GoldWave. При выгрузке он переспросит, нужно ли сохранить изменения. Отвечаем No, так как всё, что нужно, мы уже сохранили.
В результате мы получили монофонический wav-файл, в котором находится точная математическая разность между звуком закодированным и звуком исходным, увеличенная в 10 раз. Этот файл будем называть файлом разности.
Запускаем программу фотографирования экрана. Снова запускаем GoldWave. Разворачиваем на весь экран. Открываем в GoldWave-е полученный файл разности, тоже разворачиваем внутреннее подокно на полный экран. Тот график, что мы увидим, здесь и далее будем называть диаграммой разности. Жмём "Effect" – "Volume" – "Maximize Volume". По окончанию сканирования видим подокно, в котором будет информация о точке с максимальной громкостью. Перетаскиваем это подокно в правый верхний угол, фотографируем экран, выгружаем GoldWave.
Такие же действия можно провести и для правого канала, но в этом нет смысла: диаграммы разности для правого и левого каналов одного и того же кодека очень схожи, поверь мне на слово.
Вся эта титаническая работа оставляет послед в файле подкачки и некоторых других ресурсах. Поэтому перед исследованием следующего кодека обязательно перезагрузи компьютер.
Оценка качества кодеков в этом методе производится по трём объективным параметрам:
1. Насыщенность диаграммы разности. Чем более насыщена диаграмма разности, тем кодек хуже.
2. Максимальная громкость диаграммы разности. Чем она больше, тем кодек хуже.
3. Что собой представляет на слух диаграмма разности. Если при прослушивании мы слышим лишь шорохи и шумы, значит, из исходного звука будут удалены именно эти шорохи и шумы. Это можно считать плюсом: если из исходника удалить шумок, то он не только не ухудшится, а, наоборот, улучшится. Если же мы слышим человеческие голоса, то это плохо: значит, кодек искажает наиболее ценную часть звуковой дорожки – вокал. Лучше всего прослушивать файл разности на сценах, сочетающих разные звуки. Предположим сцену, в которой одновременно Вася стреляет (или бьёт морду), кто-то горлопанит, вертолёт шумит, и так далее. Если мы в файле разности на этой сцене услышим также и какие-то отголоски перестрелок и мордобоя, и отзвуки воплей, значит, кодек плох. Потому что упрощает звук напрямую, не разбираясь, что нужно сохранить наиболее точно, а чем можно пренебречь. Если же мы не слышим отзвуков человеческих голосов, значит, кодек хорош. Конечно, и каждый пулемёт звучит по-особому, и каждый пинок по морде имеет свою неповторимую гамму звучания, но по мне уж лучше точно передать вокал.
Ниже приведены диаграммы разности для звуковой дорожки фильма "Живёшь лишь дважды", закодированной разными кодеками на битрейте, естественно, 320. Для просмотра полновесного рисунка щёлкнуть один раз левой кнопкой по превью.
АСМ кодек Fraunhofer 1.263, Joint Stereo: MS.
[Для просмотра данной ссылки нужно зарегистрироваться]
При прослушивании вокала не слышно. В общем, неплохо.

АСМ кодек Fraunhofer 1.263, Stereo.
[Для просмотра данной ссылки нужно зарегистрироваться]
Гораздо хуже, чем Joint Stereo. Отбрасываем. (Теперь люди в чёрном не будут затаскивать меня на летающую тарелку и выяснять, почему я рекомендую "джойнт стерео", а не положенный по умолчанию "стерео".)

Кодек Lame 3.98.4. При кодировании вставляет в начало файла 1105 сэмплов, которые перед кодированием надо вырезать. Запускаем GoldWave, открываем 0.wav, вырезаем из начала 1105 сэмплов, сохраняем под именем 1.wav. Кодируем 1.wav в 1.mp3. Сравниваем какие файлы? Разумеется, 0.wav и 1.mp3. Получаем:
[Для просмотра данной ссылки нужно зарегистрироваться]
Вокал почти не слышен, диаграмма разности почти самая маленькая. Хорошо.

А теперь, в первый и в последний раз, чтобы показать, к чему приводит мелочная битрейтная жадность. То же самое, но на битрейте 256:
[Для просмотра данной ссылки нужно зарегистрироваться]
Хуже в два раза, в некоторых местах отчётливо слышен вокал. Вот к чему приводит жмотливость: экономия пары десятков мегабайт на фильм так осквернит звук, что привыкшему к качеству инопланетянину с хорошей аппаратурой захочется улететь на свою планету. Поэтому. Я пишу свои статьи для тех, кто озабочен качеством. Я прошу в моей теме не разводить никакие разговорчики насчёт кодирования с битрейтом ниже 320.

Кодек Lame 3.93.1. При кодировании вставляет в начало файла 1105 сэмплов, которые перед кодированием надо вырезать. Кодируем таким bat-файлом:
lame --cbr -t -b 320 -q0 -mj 0.wav 0.mp3
В результате сравнения получаем:
[Для просмотра данной ссылки нужно зарегистрироваться]
Лучше просто не бывает! Можно долго спорить, почему версия 3.93.1, выпущенная в 2002 году, лучше последних версий, но факт остаётся фактом.

Профессиональный mp3 кодек от фирмы Томсон, съевшей Фраунгофера. Вставляет в начало 1201 сэмпла.
[Для просмотра данной ссылки нужно зарегистрироваться]
Кодирует быстро и некачественно, слышен вокал. Отбрасываем. (Последние АСМ кодеки от Фраунгофер кодируют ещё быстрее и ещё некачественнее. Так что тоже отбрасываем.)

Кодек ogg с квалитетом качества 1, битрейт переменный. Дополнительных сэмплов в начало не вставляет. По идее, должен кодировать без потерь. На самом деле:
[Для просмотра данной ссылки нужно зарегистрироваться]
Совсем не лосслесс! К тому же битрейт переменный – пропотеешь присоединять такой звук к avi. Это ещё ладно. В файле разности отчётливо слышен вокал – сильнее, чем во всех других исследованных здесь кодеках. Если же кодировать на постоянном битрейте 320, то диаграмма разности по амплитуде и насыщенности будет раза в полтора-два больше, чем у Lame. Вот так-то, любители огогоидного кодирования. Отбрасываем.

Кодек ас3. Сразу вопрос: зачем исходник декодировать в wav, а потом снова сжимать в ас3? Затем, что здесь мы исследуем качество кодирования различными кодеками. Предположим, твоя камера пишет файл в несжатый PCM, и ты в размышлении, не сжать ли этот PCM в ас3. Для сжатия в ас3 я использовал ImTOO. Вставляет в начало файла 256 сэмплов. Другая версия Имтухи или другой конвертер могут вставлять в начало файлов иное количество сэмплов. Имеем:
[Для просмотра данной ссылки нужно зарегистрироваться]
Максимум громкости несколько выше, чем у Lame 3.93.1, насыщенность больше. Явственно слышен вокал. Отбрасываем.
Кодек WMA при кодировании с постоянным битрейтом даёт результат, схожий с ас3 (график здесь не привожу). Вокал слышен отчётливо. К тому же качественно присоединить WMA к avi весьма проблематично. Отбрасываем.

Кодек AAC. Такой эдвансед, что эдвансетее просто не бывает. Вставляет в начало 1024 сэмпла – по крайней мере у меня вставлял именно столько. Попробуй поэкспериментировать с ним сам – мне от первых экспериментов с этим AAC уже тошно стало. Ну во-первых, кодировщики отказываются делать AAC с битрейтом больше 256. Во-вторых, и это самое плохое, AAC заточен под переменный битрейт. И если ты задашь, скажем, 256, то это не значит, что там, где звук посложнее, он будет делать больше 256, а там, где попроще, – меньше 256. Это значит, что заданный 256 – максимум, он будет либо таким, либо меньшим. Правда, есть некоторые конвертеры, которые могут выдержать на протяжении всего файла заданный постоянный битрейт, но это, как я говорил, будет не более 256. И разность будет, конечно же, значительно больше, чем у Lame3.93.1 на битрейте 320.
Существует много не бесплатных конвертеров в mp3, написанных фирмами имени О. Бендера. Имеют красочный интерфейс и прочую пену, кодируют быстро и так некачественно, что говорить о них противно.

Подведём итог. В этой статье я безукоризненным языком математики и акустики доказал, что для кодирования звуковой дорожки avi файла лучше всего применять кодек Lame 3.93.1. Разумеется, на битрейте 320, и никак иначе!

Последний раз редактировалось Жрец Нефтиды; 10.08.2018 в 16:31.
Жрец Нефтиды вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
Demkoff (04.10.2012), gale (21.12.2020)
Старый 05.10.2012, 18:27   #2
vikt0p
Новичок
 
Регистрация: 05.10.2012
Сообщений: 1
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 0
vikt0p has a spectacular aura about
По умолчанию

Супер!!!29
vikt0p вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Старый 21.12.2020, 09:35   #3
gale
Новичок
 
Регистрация: 08.04.2019
Сообщений: 1
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
gale has a spectacular aura about
По умолчанию

Кодирование на постоянном битрейте со скоростью 320 кбит/с: на первом месте Фраунгофер AAC, на втором - Фраунгофер MP3. По моим расчётам кодировщик fhgaacenc добавляет в начало 576 сэмплов тишины.

Последний раз редактировалось gale; 21.12.2020 в 10:46.
gale вне форума   Ответить с цитированием Вверх
Старый 11.01.2021, 09:06   #4
Жрец Нефтиды
Модератор
 
Аватар для Жрец Нефтиды
 
Регистрация: 15.07.2012
Адрес: Санкт-Петербург
Сообщений: 1,395
Сказал(а) спасибо: 344
Поблагодарили 539 раз(а) в 368 сообщениях
Вес репутации: 623
Жрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond repute
По умолчанию

Данная тема, ИМХО, сильно устарела. В тех редких случаях, когда мне приходится пережимать звук, я делаю это исключительно во флэк. И всем того же советую. В наше время терабайтных объёмов экономить на качестве звука не нужно.
Жрец Нефтиды вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
Alfa2908 (11.01.2021)
Старый 11.01.2021, 11:33   #5
aleks_nsk
Модератор
 
Регистрация: 05.07.2010
Возраст: 57
Сообщений: 2,445
Сказал(а) спасибо: 722
Поблагодарили 1,039 раз(а) в 676 сообщениях
Вес репутации: 852
aleks_nsk has a reputation beyond reputealeks_nsk has a reputation beyond reputealeks_nsk has a reputation beyond reputealeks_nsk has a reputation beyond reputealeks_nsk has a reputation beyond reputealeks_nsk has a reputation beyond reputealeks_nsk has a reputation beyond reputealeks_nsk has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от Жрец Нефтиды Посмотреть сообщение
В наше время терабайтных объёмов экономить на качестве звука не нужно.
Вот я и не экономлю, 16/48
aleks_nsk вне форума   Ответить с цитированием Вверх
Старый 31.01.2021, 16:18   #6
Ironhand
Новичок
 
Регистрация: 17.01.2021
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0
Ironhand has a spectacular aura about
По умолчанию

Цитата:
Сообщение от Жрец Нефтиды Посмотреть сообщение
Вначале разжимаем демюксированный ас3 звуковой файл до wav
Нужно на несжатом или lossless источнике проверять. Все дальнейшие манипуляции бессмысленны.
Ironhand вне форума   Ответить с цитированием Вверх
Старый 02.02.2021, 08:42   #7
Жрец Нефтиды
Модератор
 
Аватар для Жрец Нефтиды
 
Регистрация: 15.07.2012
Адрес: Санкт-Петербург
Сообщений: 1,395
Сказал(а) спасибо: 344
Поблагодарили 539 раз(а) в 368 сообщениях
Вес репутации: 623
Жрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond reputeЖрец Нефтиды has a reputation beyond repute
По умолчанию

Уважаемый Ironhand, если внимательно читать статью, то мы обнаружим, что для сравнения как раз и используется несжатый wav. А откуда произошёл этот wav -- из ac3 или из какого-либо другого источника -- для эксперимента значения не имеет.
Впрочем, как я говорил, эта тема -- музейный экспонат тех стародавних времён, когда на битрейте звука ещё была надобность экономить. А экспонаты в музее руками не трогать.
Сейчас только flac.
Жрец Нефтиды вне форума   Ответить с цитированием Вверх
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для работы с двд без потери качества practikant Подготовка к созданию ДВД 7 01.06.2014 16:56
сохранение качества и формата видео после экспорта Razer007 Adobe Premiere / Adobe Premiere PRO 6 04.12.2013 03:07
из f4v нужно видео маx. качества manono Кодеки и кодеры, кодирование и конвертация. 3 19.04.2012 07:05
Вопрос к знатокам Edius 5* по поводу качества изображения на DVD VIDEOMASTER-EV Общие вопросы по видеомонтажу 14 03.07.2010 18:32
Проигрыватели HD качества фильмов и работ на телевизорах. Alex073 DVD приводы, бытовые DVD плейеры, носители, софтовые плейеры 7 01.02.2010 17:42


Часовой пояс GMT +1, время: 20:33.




Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot


Рейтинг@Mail.ru