тут на досуге поковырялся с XviD'ом и обнаружил как: а) как интерпретировать XviD Status Window; б) как _значительно_ увеличить качество на высоких битрейтах; в) какую психофизическую модель использует XviD, о которой не знает DivX; г) почему 99% тестов кодеков путем сравнения разных фреймов - лажа; д) и много еще интересного... если кому интересно - могу кратко (подробно) все это расписать.
ну подобро - это целую статью писать надо (и такая статья будет написана если же коротко... XviD использует чередование кадров с низким Q (высоким качесвтом) с низким Q (низким качеством) даже в статичных сценах, в результате чего как бы сохраняет и детализацию и сильно выигрывает в размере. включите "визуализацию" в ffdshow и посмотрите как прыгают кванты. даже на высоких битрейтах!!! от чего качество все-таки страдает ;( а вот DivX в этом отношении ведет себя более "плавно" и не дрыгается. намного более приятнее смотрится зато XviD сильно динамичные сцены (где все взрывается е едреням) жмет лучше DivX при том же битрейте, поскольку у XviD'а в этом случае проскакивает много кадров с Q == 2, а DivX идет от ~5 и выше. но... сколько тех динамичных сцен в фильме? стоят ли они потери качества на _всем_ видеометриале?! для исправления ситуации (существенного увеличения качества с незначительным увеличением размера) входим в настройки B-фреймов и ставим Q-ratio: 1.00, Q-offset: 0.00 и наслаждамся полученным результом теперь о том почему по отдельно взятому кадру судить о качестве кодека _нельзя_. если вкл. вывод отладочной инфы, можно увидеть, что фреймы даже в статичной сцене могут кодироваться с очень разных значением Q (1 - сохраняем все детали, 31 - теряем все): 2,5,2,5,3,4,2,4,2,2,2,5,2,2.... и получаемся, что качество первого и второго кадра отличается очень даже существо (это у XViD), но тот же DivX при том же битрейте может закодировать это как 3,3,3,3,3,3,3,3..... естественно, 2 < 3, но 5 > 3. так какой кадр брать для сравнения? если постараться, то _всегда_ можно добиться того, чтобы ваш любимый кодек порвал конкурентов как тузик грелку... об интерпретации. в окне статуса XviD'а: по горизонтали - Q, по вертикали --- кол-вл фреймов, закодированных с данным Q красная полоса - ключевые (I) фреймы синияя полоса - P-фреймы, содержащие _разницу_ между ключевым фреймов зеленая полоса - B-фреймы, тоже, что и P, только двунаправленные нормально сжатый фильм имеет один высокий пик в области 2 или 3, тут уже увеличением битрейта качество не увеличишь. если же образуется пологая гора (или что еще хуже - несколько "пиков"), это значит, что кодеку катострофически не хватает битрейта и часть сцен (а каких?!) закодирована с качеством ниже среднего (что еще больше затруднеят стравнение кодеков, поскольку они перераспределяют битрейт по сценам очень неодинаково)... если есть какие-то вопросы: буду рад ответить
Jupiter я не сколько сравниваю кодеки, сколько пытаюсь разобраться в их настройках. сейчас дошел то того, что составляю вручную матрицы квантования а сравнивать кодеки меж собой - занятие неблагодарное, поскольку тут действительно нужно учитывать психофизические особенности восприятия, а они у всех разные. лично для меня сцена с квантированием 3,3,3,3,3,3,.. выглядит более приятной, чем 2,5,2,5,2,5,... а у некоторых моих знакомых - наоборот, т.к. они успевают различить детали на фреймах с Q = 2, получая от этого кайф, а я успеваю различить "мыло" на фреймах с Q = 5 и это меня корежит и колбасит не по детски... на doom9 некоторые жаловались на "мыло" у неро. ну блин... как дети. там достаточно матрицу заменить на MPEG-2 и все. по умолчанию там стоит H.263, она-то и мылит. но это частично можно исправить, выполив операцию DCT в _декодере_ и наложив любую sharp-матрицу, правда, это требует нехилого ЦП. моего P-III уже не хватает ;-(( и еще. очень многие карты делают что-то уродливое с цветовой палитрой в оверлее. поэтому, имеет смысл забить на оверлей и включить "Force RGB mode" вопреки всем анти-рекомендациям. у меня на martox'е G450 овелей работает нормально, даже дает аппаратное сглаживание - рулез. а вот на NVIDIA (сейчас не скажу какая модель, но из последних на PCI-express), превращает цвета в "квадратики" и уродует градиент... P.S. а вообще две статьи по рипу я уже написал встречайте их в хакере. но там только основные свединия о рипе. продвинутая статья скорее всего будет опубликована в "сис. админе"
что касается матриц и производительности - то меня производительность моего Core 2 Duo устаривает вполне (полный DVD в Nero Digital с двумя проходами - минут сорок - пятьдесят), поэтому я бы с удовольствием постетил различные матрицы, решая для себя, чего я не вижу, а что бросается в глаза.
http://www.free-codecs.com/download/FFDShow.htm там в настройках гришь DCT и выбираешь quant. matrix. их там очень даже дофига... можешь таже изменить quantizer, чтобы оценить (лично для _себя_) кто топтался по твоим глазам и в какой степени. в смысле начиная с какой степени quantizer'ования потеря деталей становится заметной. чтобы легче было сравнивать взведи галочку "only right half", чтобы обрабатывалась только половина экрана, а другая оставалась оригинальной. а в "visualization" поставть "quantizers" и будешь видеть Q _каждого_ блока в каждом фрейме, что позволит тебе оценить насколько паршиво (хорошо) закодировал ее кодек. в частности, если при данном битрейте 90% блоков кодируются с Q = 1, то битрейт можно уже не повышать. ну и... при сравнении кодеков это позволит отобрать сцены, которые все кодеки сжали одинаково (в противном случае у тебя нет гарантий, что один кодек отдал больше битов сцене А, а другой - сцене Б) у меня на P-4 3.2 ГГц HT тоже все рулит нормально, но вот на P-III... увы... старичок не тянет дополнительное DCT-преобразование... P.S. если фильм ужат до уродливых хорошо заметрых "квадратиков", то DCT-преобразование позволяет их "сгладить" пускай с дополнительной потерей деталей, но зато давая _субъективно_ более приятный результат
продолжим? advanced option -> motion search precision. задает "агрессивность" поиска движущихся пикселей в макроблоках. если движение детектировано, то блок не сохраняется, вместо этого в файл кладется _вектор_перемещения_ за счет чего размер сжатого фрейма уменьшается и кодер может использовать высвободившиеся байты для более качество кодирования других сцен. размер самого avi-файла при этом _не_ уменьшается!!!!! по умолчанию используется ultra high, что рекомендуется практически всеми faq к использованию. в результате чего мы получаем шит или, говоря по русски - кал, а точнее "дрожжание" _неподвижных_ текстур, _ошибочно_ принятых за движущиеся. при переходе на уровень medium размер сжатых фреймов ощутимо увеличивается (см. диаграмму, приведенную для статичной сцены из alien-3 http://kpnc.opennet.ru/XviD-motion-search-precision.zip), т.е. степень сжатия падает, но _общее_ субъективное качество _улучшается_. для динамических сцен (где все взрывается) разница не столь существенна, поэтому, после долгих экспериментов я перешел с ultra-high на medium, что рекомендую сделать и всем остальным если интересно, я буду и дальше продолжать P.S. вопрос к народу. какой фильм _самый_узнаваемый_ с вашей точки зрения? ну чтобы приведенные к нему скрины мог узнать любой и сам фильм был легко доступен, чтобы результаты экспериментов мог воспроизвести кто угодно. я пока колеблюсь в выборе между: "годзила", "чужой", "матрица", "fight club" кто за что голосует, а?
kaspersky Да пожалуй у большенства людей которые имеют компы есть фильм Матрица (хотя и попсово). Да и Чужой фильмец так нечего, легко узнаваемый.
я тоже склоняюсь к матрице. ее смотрели если не все, то большинство. но у нее... своя специфика сжатия... во-первых, цветовое пространство под которое кодеки не оптимизированы, во-вторых... ну уж слишком много динамичных сцен, что не типично для большинсва фильмов. мне лично нравится в качесте тестового стенда использовать алиенов, особенно "aliens" там очень много подходящих сцен. типа дождя, статичных сцен, взрывов и все это сосредоточено в узких интервалах. например, взять события с 46 минуты... только вот они ИМХО не очень узнаваемы ;( годзила - узнаваем на 100% почти любой кадр из фильма... ну а вообще - голосование открыто. вносите свои предложения. буду рад их услышать и обобщить.
Ну еси ты хочешь фильм который видили все на 100% то бери Моква слезам не верит или служебный роман, его и так в год по пару раз повторяют, так что велика возможность что его видели ВСЕ! . Ну а если Брять фильм с обилием сцен и разных спец.эфектов.... даж и не знаю . Пираты карибского моря, есть красивые сцены.
"москва слезам не верит" - где взять с DVD качеством вот в чем вопрос? "пираты" уже меня уже есть кем-то порипанные в divx5 на 2CD, покупать dvd чтобы их перерипать - я как-то не думал... хотя, ИМХО, да ты прав. фильм узнаваемый и хорошо подходящий для тестов... просто сейчас насобачился качество рипать DVD и хочу поделиться инофой с народом
kaspersky Если создашь качественный риперцик то цены ему не будет! Да и если тест-драйв проведёшь суцествующих и то хорошо будет. Лично меня вабще удивляет твоя сообразительность. Сколько тебе понадобилось времени чтобы дойти то токого познания?
ring4 примерно два месяца назад у меня появился DVD и я смог не только заказывать английские фильмы на cd в магазизнах типа kinibox.ru (где очееень бедный ассортимент), но и приобщится к миру DVD, на многих из которых есть звуковая дорожка и даже субтитры (хоть и не всгда). прочитав пару статей про Gordian Knot я наначал юзать DivX (халявный) на довольно выскоих битрейтах, в результате чего два фильма на один DVD уже не вмещалось. тогда я начал экспериментировать времени на этого особенно много не было... урывками почитывал стандарты на DVD, AVI, MPEG-2, MPEG-4, скачал исходники DivX'а и FFDShow и лазил по ним... прочитал кучу статей на doom9.org и других сайтах. много думал потом начал экспериментировать. но уже целенаправлено, заранее зная что я буду измерять, чем и как в принципе, я уже написал две статьи про правильный рип для начинающих (с Gordian Knot'ом), но там все очень поверхностно. настройки кодеков вообще даже не рассматриваются (берутся "сертифицированные профили" по умолчанию). но опять-таки я не сравниваю кодеки между собой! я кручу их настройки. могу настроить XdiV, чтобы он использовал психофизическую модель DivX (правда, наоборот, уже не получится), могу, посмотрев на окно статуса XviD'а сказать какой битрейт будет самым-самым оптимальным при заданном размере файла и качестве исходного материла. я ж говорю - у разных кодеков разные психофизические модели, разный алгоритм распределения битрейта по сценам и потому сравнение не имеет никакого смысла. в принципе. ну вот например, кодеки могут отделять неподвижный фон, от движущегося изображения и даже на низких битрейтах мы легко различим каждую ресничку, каждый завиток волос на лице героя, но... на фон лучше не смореть он сжимается с ужасными потерями. а вот другой кодек может подобрать такой компромиссный вариант, при котором лицо видно вполне четко (а субьективно даже _предельно_ четко, поскольку без сравнения с оригиналом мы _не_ знаем, какие детали мы теряем, а теряет их кодек очень аккуратно), зато он нормально прорабатыват фон... про точность предсказания движения я уже говорил. если с ней переборщить, то некоторые фрагменты текстур будут как бы "струиться"... вопрос: кто готов платить эту цену за улучение качества проработки остальных сцен?! я планирую рассказать обо всем, что я нарыл, но не в стиле какой кодек круче, а какие он имеет рычаги управления и как ими рулить, чтобы получить желаемый результат (который у каждого свой), но я не знаю сколько людей стремятся к качесвтенному рипу и кому это будет интересно...
kaspersky Поверь мне многие стремяться качитвенно рипать. Но не у всех хватает времени экспереметнировать. Я часто крутился в пиратских кругах, так они вечно гоняються за качиством, но мало кто смог его добиться. Так что ленивые пираты с удовольствием саинтересуються твоей статьей
значит буду копать и писать. у меня сейчас как раз очередной виток бессоницы. сжимаю одновременно на трех компах сейчас пытаюсь разработать фильтр для XviD'a и DivX'а. он хавает лог, полученный при первом проходе (при котором, как известно, никакого сжатия не осуществляется, а только оценивается степень сжимаемости), а затем слегка правит его, фактически получая доступ в "святые святых" кодека. в самое его ядро. вот такой грязный хак конечной целью будет составление набора стратегий отдачи битрейта. стратегия 1: отдаем максимум битов динамичным сценам, остальным - что останется стратегия 2: отдаем максимум битов статичным сценам, динамичным - что останется стратегия 3: мелкие объекты (например, линии электропередачи) на низких битрейтах дают грязь, которую мы убираем кодируя разные зоны одного фрейма с разным Q. самое интересное в том, что это будет фильтр _внешний_ по отношению к кодеку. т.е. в сам кодек никаких изменений вносить не придется а минус в том, чтобы определить подходящую стратегию, файл нужно сжать! т.е. мы имеем 4е прохода, а это - время ;( но ничего более умного мне в голову не приходит... но главный недостаток XviD'а как раз и есть неумное распределение битрейта по сценам. это хорошо заметно по его же диаграмме. причем ситуация часто вообще дурацкая. там или баг или багофича... последние минуты фильма. средней битрейт ниже заданного (т.е. запас еще есть и приличный) и вот XviD почему-то начинает кодировать кадры с явно ухудшенным качеством...