|
Karat19
Стаж: 16 лет 3 месяца Сообщений: 97
|
Karat19 ·
03-Фев-14 21:53
(11 лет 7 месяцев назад)
Sergesha
Ну ла-аа-адно
|
|
AMDG1000
Стаж: 16 лет 1 месяц Сообщений: 2389
|
AMDG1000 ·
03-Фев-14 22:09
(спустя 16 мин.)
Xpюша писал(а):
62812031когда кодировщики AC-3 исследовали
А когда это, хотя бы приблизительно, было?
|
|
germanm2000
 Стаж: 17 лет 3 месяца Сообщений: 1380
|
germanm2000 ·
03-Фев-14 22:36
(спустя 26 мин.)
AMDG1000
Примечание в инструкцию было добавлено в октябре 2011.
|
|
Sergesha
 Стаж: 17 лет 1 месяц Сообщений: 5417
|
Sergesha ·
03-Фев-14 22:56
(спустя 19 мин.)
germanm2000
Там про добавление, что мы и учитывали, но не про смещение, что мы выяснили сейчас.
|
|
germanm2000
 Стаж: 17 лет 3 месяца Сообщений: 1380
|
germanm2000 ·
03-Фев-14 23:09
(спустя 13 мин.)
Sergesha
Ага, похоже, промазал. Тогда пускай Хрюша вспоминает, когда AC-3 исследовали.
|
|
Xpюша
Стаж: 16 лет 2 месяца Сообщений: 3635
|
Xpюша ·
03-Фев-14 23:29
(спустя 20 мин., ред. 03-Фев-14 23:32)
Sergesha писал(а):
62812191Данные не должны теряться, даже если это только один фрейм.
А они и не потеряются (почти):
Был у нас фрагмент звука длиной ровно в N кадров целевого формата (X отсчётов). Отрезали от его начала Y отсчётов, чтобы скомпенсировать задержку, добавляемую кодировщиком. Закодировали. Что получили? Получили N кадров, в которых каждый отсчёт находится ровно на том же месте, на котором он был до обрезания. Тот, который был в позиции X - именно в этой позиции и оказался. Ничего в конце не потерялось, потому что ничего за границу кадра не вылезло.
Все потери - те самые Y начальных отсчётов, которые стали тишиной. Но и их можно "спасти", применив небольшую техническую хитрость.
Sergesha писал(а):
62813614Там про добавление, что мы и учитывали, но не про смещение, что мы выяснили сейчас.
Добавление чего-то в начале эквивалентно смещению всего остального.
germanm2000 писал(а):
62813782Тогда пускай Хрюша вспоминает, когда AC-3 исследовали.
Мне для этого придётся прицепить к компьютеру винчестер, лежащий сейчас в шкафу. Сейчас компьютер перезагружать очень не хочется. Завтра утром скажу.
|
|
Exner
  Стаж: 15 лет 9 месяцев Сообщений: 2271
|
Exner ·
03-Фев-14 23:32
(спустя 2 мин., ред. 03-Фев-14 23:32)
Sergesha писал(а):
62813614Там про добавление, что мы и учитывали, но не про смещение, что мы выяснили сейчас.
Это не совсем то. Думаю, Хрюша об этом говорил → https://rutr.life/forum/viewtopic.php?p=57460779#57460779 и всё, что перед этим. Естественно, смещение при замере вносимых задержек учитывалось.
|
|
Sergesha
 Стаж: 17 лет 1 месяц Сообщений: 5417
|
Sergesha ·
03-Фев-14 23:43
(спустя 11 мин.)
Хрюша
Они теряются.
Panas писал(а):
62811732
Sergesha писал(а):
62811665Panas
А что с последними 10 мс? Они таки отрезались?
Хвост 10мс отрезался, то есть потерян:
|
|
Xpюша
Стаж: 16 лет 2 месяца Сообщений: 3635
|
Xpюша ·
03-Фев-14 23:59
(спустя 15 мин., ред. 03-Фев-14 23:59)
Sergesha писал(а):
62814302Они теряются.
Panas писал(а):
Хвост 10мс отрезался, то есть потерян:
В том примере Panas показывал, что случается, если кодировать, не отрезав кусочек начала (т.е. не скомпенсировав задержку кодировщика).
В этом случае для хвоста, вылезшего за первоначальную длину файла, возможны два варианта:
1. Кодировщик создаёт дополнительный кадр, куда его и помещает.
2. Кодировщик отрезает то, что не поместилось в целое число кадров.
|
|
Sergesha
 Стаж: 17 лет 1 месяц Сообщений: 5417
|
Sergesha ·
04-Фев-14 00:20
(спустя 21 мин., ред. 04-Фев-14 00:20)
Xpюша
Отрезка до кодирования (компенсация) - это то же потеря, но сначала фрагмента, если мы вырезали фрагмент не с начала и не с конца трека, и у нас нет тишины ни в первом, ни в последнем фреймах ДТСа (и семплах декодированного вава). Что бы в таком случае ничего не терять, надо добавить в конец ДО и отрезать от начала ПОСЛЕ кодирования эти самые 10 (21) мс.
|
|
Xpюша
Стаж: 16 лет 2 месяца Сообщений: 3635
|
Xpюша ·
04-Фев-14 00:24
(спустя 4 мин., ред. 04-Фев-14 00:24)
Sergesha писал(а):
62814589Отрезка до кодирования (компенсация) - это то же потеря, но сначала фрагмента
Да. Я и писал об этом:
Xpюша писал(а):
62814082Все потери - те самые Y начальных отсчётов, которые стали тишиной. Но и их можно "спасти", применив небольшую техническую хитрость.
Как спасти - сами догадаетесь?;)
Sergesha писал(а):
62814589Что бы в таком случае ничего не терять, надо добавить в конец ДО и отрезать от начала ПОСЛЕ кодирования эти самые 10 (21) мс.
Это применимо, если задержка кодировщика в точности равна длительности кадра. А если нет?
|
|
AMDG1000
Стаж: 16 лет 1 месяц Сообщений: 2389
|
AMDG1000 ·
04-Фев-14 01:05
(спустя 40 мин.)
Xpюша
Для DTS из-за 0.7 мс наверное париться не стоит.
|
|
Xpюша
Стаж: 16 лет 2 месяца Сообщений: 3635
|
Xpюша ·
04-Фев-14 01:17
(спустя 12 мин., ред. 04-Фев-14 01:17)
AMDG1000 писал(а):
62815100Для DTS из-за 0.7 мс наверное париться не стоит.
0,7? В местной инструкции написано:
Цитата:
- 480 сэмплов при выборе Destination Format "DVD (.cpt)" (10мс)
- 1024 сэмпла при выборе Destination Format "Blu-ray Disc (.dtshd)" (~21.3мс)
Монтажом DTS заниматься пока не приходилось, поэтому сам я задержки не измерял, а раз так - будем считать, что утверждение инструкции действительности соответствует.
Отсутствие звука длиной в 10 мсек - будет слышно или нет? Прикинем:
10 мсек - это 1/100 сек. На CD кадр имеет длительность 1/75 сек, что довольно близко, и его выпадение может быть слышно очень хорошо, поэтому приличные проигрыватели, если кадр не читается, не тишину вместо него "играют", а предыдущий кадр повторяют.
|
|
AMDG1000
Стаж: 16 лет 1 месяц Сообщений: 2389
|
AMDG1000 ·
04-Фев-14 01:47
(спустя 30 мин.)
Xpюша
Прикиньте. Добавили в конце 10 мс. Дорожка стала длиннее на 10.7 мс. После кодирования тишина в конце 0.7 мс. Потом отрезали в начале 10.7 мс - потеряли 10 мс тишины и 0.7 мс полезного звука.
|
|
Xpюша
Стаж: 16 лет 2 месяца Сообщений: 3635
|
Xpюша ·
04-Фев-14 02:08
(спустя 20 мин., ред. 04-Фев-14 02:08)
AMDG1000 писал(а):
62815337Добавили в конце 10 мс. Дорожка стала длиннее на 10.7 мс.
10,7 - это длина кадра DTS? Припоминаю, что рылся в спецификации DTS в поисках информации об этой длине и обнаружил, что в этом формате она - если я то место правильно понял - вообще переменная. Отдельный вопрос, правда: пользуются ли кодировщики этой особенностью? Как уже говорилось - исследованиями не занимался.
AMDG1000 писал(а):
62815337Потом отрезали в начале 10.7 мс - потеряли 10 мс тишины и 0.7 мс полезного звука.
А просто я так готовлю материал к кодированию, что в итоге, после всех манипуляций, ничего нигде не теряется и не добавляется - ни в начале, ни в конце. Независимо от формата и кодировщика.
|
|
Uncle Michael
 Стаж: 17 лет 4 месяца Сообщений: 1649
|
Uncle Michael ·
04-Фев-14 06:06
(спустя 3 часа, ред. 04-Фев-14 06:06)
Xpюша писал(а):
62815422А просто я так готовлю материал к кодированию
Надо бы как то это систематизировать касаемо всех форматов и изложить инструкцию "в новой редакции".
|
|
AMDG1000
Стаж: 16 лет 1 месяц Сообщений: 2389
|
AMDG1000 ·
04-Фев-14 10:11
(спустя 4 часа)
Думается, что в общем случае нужно действовать так. В конце дорожки добавляем тишину равную задержке, в начале - равную длине фрейма (либо нескольких фреймов, если одного мало) минус задержка. После кодирования отрезаем от начала столько фреймов, сколько добавили до кодирования. Вроде тогда всё останется на месте.
|
|
Sergesha
 Стаж: 17 лет 1 месяц Сообщений: 5417
|
Sergesha ·
04-Фев-14 11:05
(спустя 54 мин., ред. 04-Фев-14 11:05)
Xpюша писал(а):
Это применимо, если задержка кодировщика в точности равна длительности кадра. А если нет?
Я не совсем въезжаю: чем в принципе может оперировать кодировщик, кроме как фреймами? Способен ли он добавлять/перемещать что либо в кодируемом потоке относительно исходных вавов на длину отличную от длины фрейма? И, если способен, то: 1 - как, 2(главное) - зачем?
|
|
Xpюша
Стаж: 16 лет 2 месяца Сообщений: 3635
|
Xpюша ·
04-Фев-14 12:05
(спустя 59 мин., ред. 04-Фев-14 12:05)
AMDG1000 писал(а):
62817264В конце дорожки добавляем тишину равную задержке, в начале - равную длине фрейма (либо нескольких фреймов, если одного мало) минус задержка. После кодирования отрезаем от начала столько фреймов, сколько добавили до кодирования.
Почти так и делаю.
Для кодирования готовлю фрагмент длиной, кратной длине кадра целевого формата (в отсчётах), начинающийся ровно за два кадра до нужного участка и оканчивающийся ровно через два кадра после нужного участка. От начала этого фрагмента отрезаю кусок, равный задержке кодировщика. Кодирую. От начала закодированного файла отрезаю два кадра, а от конца - столько, сколько нужно, чтобы оставшаяся часть получилась правильной длины (как правило, это тоже два кадра).
Зачем лишние кадры в конце?
Попадались кодировщики, удавливавшие в ноль (fade-out) звук в конце последнего кадра.
Почему два кадра, а не один?
В силу привычки и для унификации:
1. Попадались кодировщики, у которых задержка была больше одного кадра.
2. Чаще всего подобными делами мне приходится заниматься с MPEG Audio (mp2/mp3). Файлы режу с помощью mp3DirectCut, а там трудно попасть на начало последнего кадра файла: уходишь в конец файла, жмёшь стрелку влево и перескакиваешь не на один кадр, а на два.
Sergesha писал(а):
62817749Я не совсем въезжаю: чем в принципе может оперировать кодировщик, кроме как фреймами?
Кодировщик оперирует не кадрами, а отсчётами исходного несжатого звука.
Добавляет он ту самую задержку. Величина её определяется не размером кадра, а алгоритмом сжатия, и она редко равна кадру. Причём у разных кодировщиков, делающих один и тот же формат, задержка может быть сильно разной. И даже у одного и того же кодировщика она может быть разной в зависимости от параметров сжатия (см. таблицу под спойлером по ссылке Exner).
|
|
Sergesha
 Стаж: 17 лет 1 месяц Сообщений: 5417
|
Sergesha ·
04-Фев-14 19:38
(спустя 7 часов, ред. 04-Фев-14 19:38)
Блин. Проще всё декодировать, нужное отредактить, склеить и одним треком закодировать, чем все эти задержки вымучивать.
|
|
AMDG1000
Стаж: 16 лет 1 месяц Сообщений: 2389
|
AMDG1000 ·
04-Фев-14 20:37
(спустя 59 мин.)
У меня, кстати, примерно такой же вопрос возникал. Если для вставок дорожку нужно перекодировать, то зачем перекодировать каждую вставку в отдельности? Перекодировали всю дорожку и из неё режем вставки. С проблемой кратности фреймам мы в обоих случаях столкнёмся, но хоть со сдвигом голова болеть не будет. Либо тот вариант, что Sergesha предлагает. Тогда всё идеально точно ляжет (правда лишнее перекодирование).
|
|
Sergesha
 Стаж: 17 лет 1 месяц Сообщений: 5417
|
Sergesha ·
04-Фев-14 20:57
(спустя 19 мин.)
Если 5.0 и 2.0 и так и так декодировать, то уже и 5.1 можно декодировать. Будет проще выровнять уровни каналов, что бы было больше похоже на одну дорожку, а не на склейку нескольких.
|
|
Xpюша
Стаж: 16 лет 2 месяца Сообщений: 3635
|
Xpюша ·
04-Фев-14 21:13
(спустя 16 мин.)
AMDG1000 писал(а):
62824473Если для вставок дорожку нужно перекодировать, то зачем перекодировать каждую вставку в отдельности? Перекодировали всю дорожку и из неё режем вставки.
В принципе можно: собрать все планируемые вставки (длительность каждой из которых кратна длине кадра) вместе, разом закодировать и порезать. Но:
1. Не знаю, как у кого, а у меня возня с отрезанием этих краёв - полпроцента от общей трудоёмкости процесса подбора и подгонки звука.
2. В некоторых методах сжатия в упаковке отсчётов кадра участвуют отсчёты соседних кадров. (Именно поэтому у меня не тишиной отрезаемые кадры заполнены, а настоящим звуком.)
|
|
AMDG1000
Стаж: 16 лет 1 месяц Сообщений: 2389
|
AMDG1000 ·
04-Фев-14 21:28
(спустя 15 мин.)
Я имел в виду именно всю дорожку, которая идёт на вставки. Тогда вырезаемый кусок будет абсолютно полноценным.
|
|
Xpюша
Стаж: 16 лет 2 месяца Сообщений: 3635
|
Xpюша ·
04-Фев-14 21:53
(спустя 24 мин., ред. 04-Фев-14 21:53)
AMDG1000 писал(а):
62825263Тогда вырезаемый кусок будет абсолютно полноценным.
Откуда гарантия, что границы нужных кусков точно совпадут с границами кадров? А подгон громкости/тембра/динамического диапазона как в этом случае делать?
|
|
AMDG1000
Стаж: 16 лет 1 месяц Сообщений: 2389
|
AMDG1000 ·
04-Фев-14 22:53
(спустя 59 мин.)
Я, честно говоря, дальше подгонки громкости не заходил и делал это в целом по дорожке. То ли мне везло, то ли слух никудышный, но разница в общей звуковой картине на вставках особенно не ощущалась. Хотя, по большому счёту, Вы правы.
|
|
Karat19
Стаж: 16 лет 3 месяца Сообщений: 97
|
Karat19 ·
09-Фев-14 17:48
(спустя 4 дня)
Пытаюсь перекодировать из wav в ac3 стерео сигнал. Согласно инструкции, кодировщик (Sony Sound Forge) должен добавить 636 сэмплов (при 48 кГц это 13.25 мс). У меня ( к необрезанному треку) добавляется 26мс.
А если отрезать первые 13мс от оригинала, то выходной файл становится на 8мс короче, чем надо. И delaycut не дает отрезать нужное - на выходе та жа нехватка 8мс. Как быть в такой ситуации?
|
|
kukushka@laptop
Стаж: 12 лет 8 месяцев Сообщений: 731
|
kukushka@laptop ·
09-Фев-14 18:00
(спустя 12 мин.)
"файл короче" - это не имеет прямого отношения к задержке, вносимой энкодером. ac3 по любому будет кратен 32мс
|
|
Karat19
Стаж: 16 лет 3 месяца Сообщений: 97
|
Karat19 ·
09-Фев-14 18:48
(спустя 47 мин., ред. 09-Фев-14 18:48)
kukushka@laptop писал(а):
ac3 по любому будет кратен 32мс
Извиняюсь, а практический совет?
Есть дорожка к фильму, надо эту дорожку перекодироватьв AC3. После конвертации длина звука либо короче, либо длиннее оригинала. Сие, как мне кажется, не кошерно.
Кстати исходный wav на 32 не делится целиком, получается дробь.
Ага, сейчас проверил длительность в тех файлах, где AC3 "родной" - длительность отличается (dts от ac3). Не на много, но отличается. Выходит - можно смело не обращать на это (на разницу в продолжительности дорожек) внимание?
|
|
AMDG1000
Стаж: 16 лет 1 месяц Сообщений: 2389
|
AMDG1000 ·
09-Фев-14 18:58
(спустя 9 мин.)
Karat19 писал(а):
62890662После конвертации длина звука либо короче, либо длиннее оригинала.
Если считать оригиналом wav и он не кратен 32, то так и должно быть.
|
|
|