Shara & LaserDiscLord
Shara Shara
Привет, я тут покопалась, как ранние LaserDisc справлялись с пропускной способностью – эти 12-битные PCM аудиодорожки и видеопотоки по 5,5 Мбит/с. Мне интересно, как это соотносится с тем, что мы используем в современных кодеках, типа H.264 или H.265. Как ты считаешь, какие компромиссы между аналоговой точностью и цифровой эффективностью?
LaserDiscLord LaserDiscLord
Старый LaserDisc был настоящим чудом аналоговой инженерии – непрерывная волна, которая не беспокоилась об ошибках квантования, так что можно было получить чистый 12-битный PCM сигнал, что всё равно точнее, чем 16-битный звук на CD, который мы все так любим. Но была и проблема – огромный объем данных: видеопоток в 5.5 Мбит/с требовал огромных физических носителей, чтобы уместить всего несколько минут фильма. Цифровые кодеки, вроде H.264 или H.265, уменьшили эту пропускную способность вдвое или даже больше, используя пространственные и временные избыточности, но каждый раз, когда ты отбрасываешь данные, ты добавляешь артефакты сжатия – ореолы, блочность, потеря детализации цвета, которой никогда не было в аналоговой версии. Короче говоря, аналог даёт бесконечную точность с постоянным уровнем шума, а цифровой – эффективное хранение, но ценой некоторой потери в качестве, особенно в самых требовательных сценах. Для истинных ценителей я всё равно предпочту не сжатый аналоговый сигнал, но должен признать, что удобство цифрового сжатия сделало всю систему намного доступнее.
Shara Shara
Спасибо за разбор, очень полезное сравнение. Как программисту, мне интересно, как модели восприятия в H.264 и H.265 решают, какие данные отбрасывать. Может, попробуем немного подкорректировать эти пороги, чтобы сохранить те нюансы, о которых ты говорил, и при этом не сильно увеличить размер файла. Пробовал ли ты использовать какие-нибудь нестандартные алгоритмы предсказания векторов движения, чтобы приблизиться к аналоговой точности?
LaserDiscLord LaserDiscLord
Ах, эти тонкости настройки порогов восприятия в H.264/265... это как пытаться превратить цифровую камеру в объектив от плёнки – возможно, но сколько мучений. Движко́вые векторы в этих кодеках уже довольно умные, но заточены под широкую аудиторию, а не под аудиофила, который считает шипение винила приятным фоновым звуком. Я поигрался с пользовательским предсказанием P-слайсов, заставив кодировщик искать более мелкие и точные векторы, особенно в замедленной съёмке или на кадрах с высоким контрастом. Остатки действительно меньше, но битрейт взлетает, и кодировщик начинает задыхаться от самых незначительных изменений, которые в аналоговой записи просто бы тихонько лежали. Если ты действительно хочешь добиться этой "аналоговой теплоты", тебе придется поднимать модель качества восприятия почти до уровня без потерь и переводить энтропийный кодер в режим грубой силы. Файлы будут больше, зато сохранишь микродетали, которые заставляют 12-битный PCM-трек ощущаться... ну, немного полнее, чем 10-битный JPEG. Так что да, играй с пороговыми значениями, но будь готова к большим файлам и немного большему времени обработки.
Shara Shara
Похоже на типичную дилемму: хочешь большую точность – получишь проблемы с пропускной способностью. Попробуй AV1, он использует похожие идеи с вектором движения, но с более агрессивным энтропийным кодером и более детализированной системой QP. Если держать QP очень низким и позволить модели работать почти без потерь, размеры файлов вырастут, но, возможно, ты сможешь добиться той самой "тёплой аналоговой" картинки с меньшим количеством кодирования. Только следи за нагрузкой на декодер; эти микродетали могут сильно нагружать процессор, если вдавишь его слишком сильно.
LaserDiscLord LaserDiscLord
Лестница QP у AV1 — неплохое место для поисков этой аналоговой теплоты, но всё равно увидишь скачки ЦП, как только перейдёшь на режим 10-20 бит на пиксель. Тонкая грань между плавной картинкой и процессором, который спотыкается на каждом новом микродетали. Держи QP на низком уровне, но не забудь проверить на реальном декодере — старый трюк с 12-битным PCM будет звучать здорово, только если железо справится.
Shara Shara
Ты права – проблема часто в декодере. Я бы быстро пропрофилировала на ARM с низким энергопотреблением и аппаратным ускорением AV1, если есть такая возможность, и сравнила дрожание времени кадра с программным декодером на обычном компьютере. Ещё попробуй добавить несколько без потерь кадров между ключевыми моментами – это поможет энкодеру оставаться более лёгким, при этом сохранив эти мельчайшие детали, которые для тебя важны. Важно найти золотую середину, чтобы процессор не перегружался и чтобы картинка оставалась такой, как настоящая.
LaserDiscLord LaserDiscLord
Звучит как отличный план – только помни, каждый дополнительный кадр без потерь – это затраты памяти и процессора, следи за использованием памяти на этом ARM-ядре. Если получится добиться значений QP ниже 16 бит с использованием аппаратного ускорения, то получишь ту самую аналоговую подачу, без дрожания. Только не дай декодеру зависнуть на спин-локе; даже небольшая задержка в микросекунды может испортить эту невероятную плавность, которую ты ищешь. Удачи, и сохраняй эти аналоговые ощущения.
Shara Shara
Поняла, буду внимательно следить за памятью и задержками. Спасибо за совет.
LaserDiscLord LaserDiscLord
Рад помочь. Не дай аналоговому сердцу замолкнуть, пока ты расширяешь границы цифрового. Удачи.