DivX, XviD и др.

Тема в разделе "WASM.HEAP", создана пользователем kaspersky, 15 дек 2006.

  1. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    Вот, зацените функцию преобразования RGB->YUV в референсном коде mpeg2 - mpeg2v12.zip в readpic.c функция read_ppm:
    Код (Text):
    1.   for (i=0; i<vertical_size; i++)
    2.   {
    3.     yp = frame[0] + i*width;
    4.     up = u444 + i*width;
    5.     vp = v444 + i*width;
    6.  
    7.     for (j=0; j<horizontal_size; j++)
    8.     {
    9.       r=getc(fd); g=getc(fd); b=getc(fd);
    10.       /* convert to YUV */
    11.       y = cr*r + cg*g + cb*b;
    12.       u = cu*(b-y);
    13.       v = cv*(r-y);
    14.       yp[j] = (219.0/256.0)*y + 16.5;  /* nominal range: 16..235 */
    15.       up[j] = (224.0/256.0)*u + 128.5; /* 16..240 */
    16.       vp[j] = (224.0/256.0)*v + 128.5; /* 16..240 */
    17.     }
    18.   }
    Я встречал просто тучу DVD с такой коррекцией и на качественном S-IPS\S-PVA это выглядет неочень хорошо, т.к. в отлиние от ЭЛТ телевизора\моника яркость 16 для него вовсе не черный)
    Да и вообще такой сжатый диапазон не есть хорошо, сильно сжатая картинка в таком диапазоне выглядит намного жуже если диапазон разжать и потратить на нее столько же бит.
     
  2. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    kaspersky
    "Королевская битва", она же "Battle Royale". Кто видел - тот надолго запомнит и с легкостью узнает.
     
  3. Bob

    Bob New Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    112
    Адрес:
    Ukraine
    Матрица
     
  4. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    fluderast
    #В видео применять информацию от одного кадра к другому не всегда корректно.
    на соседних кадрах (если только не происходит смены сцены)
    изображение меняется вполне предсказуемо, а вектор перемещения
    кодек вычисляет на нас ;) так что можно даже не трудится ;)

    #Какой софт реализует этот метод в таком чудесном виде?
    в чистом - не знаю, не интересовался.
    а в в "нечистом" входит в состав многих астрономических программ.
    это на www.astronomy.ru в разделе астрография лучше задать вопрос.

    #но убрать шум на всем видео - чудес не бывает
    первыми с шумами начали бороться астрономы,
    поскольку они первыми перешли на ПЗС матрицы
    (простой народ тогда вообще не знал что это такое)
    а они шумят даже при охлаждении жидким гелеем,
    а выдержки у астрономов длинные... а "лишние"
    звезды для них смертельны...
    чуть позже теже алгоритмы применили и для видео.
    никто не говорит о чуде. есть реально работающие
    методики, дающие реальный результат. почему они
    не получили массового распростанения в народе?
    ну тут уж - хрен знает. почему не получил того же
    _массовго_ распростанения FFDShow, умеющий
    многое из того, что я описал и кстати, opensource,
    т.е. бери и смотри... только ведь не хочет массовый
    пользователь ничего делать этого...

    более того, тут говорили о мыле, но пропустили
    мою реплеку о квантовой последовательности,
    которая во многих кодеках по умолчанию имеет вид
    Q, Q+1, Q+2... Q+N, Q, Q+1, Q+2... Q+N, из чего
    следует, что мы можем повысить качество сжатого
    файла, поскольку имея на руках вектора перемещения
    и макроблоки качества Q, мы можем восстановить
    практически все детали блоков Q+x.

    Bob
    на счет матрицы - согласен.

    CyberManiac
    увы. не видел. в моей коллекции такого нет.
    а может и есть. надо сейчас посмотреть...

    semen
    сжатая схема возникла еще во времена цветного TV,
    и тут выяснилось, что передача "чистого" RGB требует
    охренительно широкой полосы пропускания, которую,
    ес-но, никто давать не собирался. вот и пришлось,
    используя особенности чел. воспрития ее ужимать.
    в книгах по ремонту телевизоров это хорошо описано.
    на DVD таже история. только тут не полоса пропускания,
    а битрейт, но суть таже. вот только colorspace много
    хороших и разных ;( и в процессе перегона материала
    с пленки на DVD, а с DVD в mpeg4 они переконверитруются
    несколько раз, постепенно ухужшая качество...
    к тому же не все карты корректно отображают что-то
    отличиное от RGB. во всяком случае моя NVIDIA
    на аппаратном уровне кажет в YUV значительно хуже,
    чем в RGB, при условии применения алгоритма
    "качественной конвретрации", поддерживаемого FFDShow

    Bob
    # Можно у Вас вопрос спросить,
    # не совсем по теме видео (точнее совсем не по теме), а про DVD.
    на DVD все значительно сложнее. начнем с того, что обычно он
    защифрован ;) а рекордеры ключи писать не умеют и они уже
    "зашиты" в болванку. поэтому, чтобы скопировать DVD надо
    сначала его расшифровать, чем занимается масса утилит,
    например, DVD Decryptor (взять можно на doom9.org).

    semen
    # Что касается самого сжатия, то с h264\AVC, особенно в
    # CABAC профайле(но CABAC жрет больше ресурсов намного
    # и нужен мощный комп) можно достьчь гораздо большего
    # нежели с DIVX\XVID и другими mpeg4 подобными.
    базовые алгоритмы сжатия не изменились со времен mp3 :)
    делаем dtc преобразование, квантуем (убираем коффициенты,
    теряя детали), ну и все... это и есть фундмент всех кодеков.
    а вот что над ним - храним только различия между кадрами,
    распознаем движение, наезд, проч. виды трансформации,
    остекаем больше деталей в ярких светах и темных тенях
    (где человек их не видит), отделяем задний план от перед.
    и замыливаем задний сильнее...
    прорыва в области сжатия не произошло...
    H.264 фактически стандартизует идеи уже реализованные
    в разных mpeg4 кодеках, типа XviD.
     
  5. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    kaspersky
    Первая часть ответа я не понял к чему) Я вкурсе что такое и зачем YUV и зачем UV прореживают) я лишь указывал на ненужную операцию уже с преобразованными в YUV компонентами а именно запихивание а рэндж 16..235 y компоненты и в 16..240 u и v компоненты. Что вдобавок при многократной перепаковке может дать сильные искажения даже при макс. качестве сжатия т.к. он будет сжимать диапазон каждый раз. В этом легко убедиться, сжимая референсным кодом полностью черный кадр RGB(0,0,0) на выходе получаем кадр YUV(16,0,0) после преобразования в RGB этот порог останется и если его сжать снова, то на выходе получим YUV(32,0,0) итд. тоесть нижня планка повышается а верхняя понижается и при 8й перепаковке уровень яркости схлопнется посередине.
    Насчет второго несогласен h264 имеет принципиальные отличия, так же как имеет их mpeg4 по сравнению с mpeg2 (правда намного меньше чем h264 vs mpeg4). Для h264 это прежде всего 6-tap фильтр, DCT 4х4, встроенный в стандарт деблокинг, FMO, моушн тоже изменился до 4х4, буффер референсных кадров, лонг и шорт референсы и многое другое, формат битстрима тоже переделан с нуля, не держа "тяжелое наследие", внесено кодирование арифметическим кодером - аналог SAC в h263, формат потока тоже другой, поток делится не на vop`ы а на nal`ы упрощая пакетизацию.
    Насчет деблокинга можно возразить - мол в дивиксе и иксвиде он тоже есть, но есть одно но - там он как постпроцесс, тоесть в реконструкции кадра учавствовать не может, а тут он в стандарте и улучшенный деблокингом кадр учавствует в восстановлении других.
    Вообще субъективно h264 _намного_ качественее mpeg4. Не просто наобум , а если с умом и то и то кодировать, добиваясь лучшего результата.
    h264 уже закреплен как стандарт для HD контента который будет на HD-DVD и BR, тоесть замещает mpeg2. Единственный конкурент ему пока только новый WMV VC-1, который собственно и является переделаным немного h264 - так же как flv (flash video) является переделанным h263)
    На подходе уже новые алгоритмы с новыми отличиями, использующие не только DCT но и другие преобразования, моушн у которых не прямоугольный, а использующие афинные преобразования, например Nokia MVC. И даже после этого поколения есть что улучшать. Так что прогресс тут не стоит на месте.
     
  6. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    semen
    никто не спорит, что H.264 - будущий промышленный стандарт,
    и что, будучи не связанным бременем совместимости, он может
    (и должен :derisive: обеспечивать лучшее качество при том же битрейте.
    я просто говорил, что _прорывом_ там и не пахнет ;(
     
  7. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    kaspersky
    Ну смотря что считать прорывом) как по мне так лучше сжимать им, получая выигрыш до 1.5-2 раза в размере при субективно одинаковом качестве (для моего глаза разумеется) или гораздо лучшем качеством при одном размере) (при качественном сжатии - например HDTV ff7 без видимых искажений у меня сжался в 2 гига, тогда как xvid - в 4 и все равно немного хуже субъективно)
    Разумеется это относится к тому что формат лучше а не конкретный кодер, конечно можно сжать плохо в любой формат)
    Все равно большинство кодеров не выжимают все даже из mpeg4, а h264 чтобы все фишки поддерживал кодер я вообще такого незнаю) ни nero ни x264 всего что есть в стандарте не поддерживают, ffdshow даже декодирует далеко не все, насколько я помню даже CABAC не декодирует.
     
  8. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    kaspersky
    Как же ты их сравнишь, если в потоке хранятся только отличия текущего кадра от предыдущего(их)? Или сравнивать предполагается каждые 60 и более кадров?
     
  9. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    Quantum
    наверное, поток сначала нужно декодировать ;)
    сохранение различий (и векторов) это та часть
    компрессии, в которой потерь деталей нет ;)
     
  10. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    semen
    что такое HDTV?
    2.5 часовой фильм с DVD9 и XviD в однин проход с Q = 2
    жмет до ~ 2х гигов (или даже менее того!), а при Q == 2
    теряется _очень_ мало деталей.

    в XviD'е настройки по умолчанию они... как бы сказать...
    рассчитаны так, чтобы филь загнать в 1 CD. на высоких
    битрейтах они поганят качество и занимают дофига размера.
    если есть желание поэкспериментировать, поставть в XviD'е
    MAX B-frames = 3, Q-ratio = 1.00, Q-offset = 0.00, MIN Q = 2,
    и попробуй сжать еще раз. а потом сравни результат.
    и матрицу не H.263, а MPEG-2.

    кстати, при проходе в один раз, все настроки типа GMC
    сразу приобретают свой изначальный смыл, т.к. реально
    сэкономленные биты идут на реальное уменьшение размера
    файла, а качество уже задано Q и оно константа (надеюсь,
    все знают, что Q должен быть целым, иначе будет муть),
    а при сжатии в два прохода, отвоеванные биты позволяют
    сжать _некоторые_ фреймы с меньшим Q, но! на общую
    картину это очень слабо влияет. в результате мы имеем
    качество на уровне средней руки и офигенный размер...

    P.S. я не имеют ничего против x264, и я просто хочу сказать,
    что используя XviD (должным образрм настроенный) можно
    получить результат _тогоже_порядра_. ну никак не сжать
    файл плотнее в 2 раза с тем же качеством!!! сейчас вот
    спросил тех, кто с ним плотно работал - они называют более
    правдоподобную цифрую ~30%, да и то, только с 263-martix,
    а она "замыливает"... но это все равно речь про низкие битрейты.

    на высоких битрейтах разрыв между x264 и XviD'ом еще больше
    сокращается...
     
  11. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    kaspersky
    HDTV(High-Definition Television) фильмы это фильмы в разрешени 1920x1080 (60i, 30p, 24p), 1280x720 (60p, 30p, 24p)
    Стандартный h264 рип занимает 4-8гб(обычно с AAC или AC3 дорожкой), когда исходник фильма в mpeg2 (пока других источников нет) занимает ~30гб.
    HDTV или не HDTV вобщем неважно, хотя h264 показывает себя лучше именно на высоких разрешениях. Я незнаю кто называет 30% но мне это ноичем не говорит пока я не узнаю как они сжимали, чем и в какой профайл, включали ли CABAC, FMO, деблокинг, задействован ли lowpass фильтр. Я говорю за себя и что сам получал. Вобщем почему бы самому не попробовать?
    К слову подавляющее число рипов HDTV именно в h264, качество этих рипов намного выше неперепакованного DVD.
     
  12. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    semen
    ну вообще-то, x264 это mpeg4 кодек ;) ну почти ;)
    он определяется ISO 14496-10, а DivX, XdiV - ISO 14496-2.
    VfW Build'ы для x264 уже не поддерживаются ;(
    ну это понятно - стало тесно в рамках vfw...
    cli меня если честно не вдохновляет...
    заюзал AviDemux. сжал гозиллу с дефлотными настройками.
    расжать не смог. на P-III 733 под FFDShow вообще не тянет ;(
    на P-4 с NeroDigital декодером тоже не вытягивает...
    не для моих машин в общем это дело...
     
  13. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    kaspersky
    Да со стороны ISO это стандарт ISO/IEC 14496-10 ака MPEG-4 Part 10 ака MPEG-4 AVC, со стороны ITU - ITU H.264
    Я же говорю именно различие "старого" mpeg4 ака ISO 14496-2 и нового 14496-10, алгоритмы которых различаются ну очень сильно.
    Что касается скорости то можно в и h264 сжать так, что есть будет примерно столько же сколько и обычный mpeg4, если не заюзать ничего жрущего ресурсы, а именно CABAC, lowpass filter, деблокинг, новые виды компенсации движения, но и выигрвывать по сравнению с ним будем соответствующе.
     
  14. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    semen
    зажевал короче я этот самый старндарт x.264 и основательного его погрыз.
    все мои худшие опасения подтвердились - это не шаг вперед, а шажок ;)
    вот, кстати, неплохой реферат на эту тему:
    http://compression.graphicon.ru/download/articles/video/standards/state-of-the-art-video-compression.pdf
     
  15. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    kaspersky
    Так быстро его зажевать нельзя. В статье что ты указал вообще ни про что не сказано, только DCT4x4 упомянуто - и ты радосно думаешь что больше нет отличий?) ты хотябы фильтр взгляни и опробуй его эксперементально, смотреть референсный JM->transform8x8.c
    Проблема же эффективного сжатия в этот формат будет стоять еще очень долго, так же как развивались алгоритмы качественного сжатия в MPEG2\MPEG4 - даже будучи гораздо простыми форматами выжать из них все за разумное время сжатия довольно сложно. В h264 это _намного_ сложнее и таких кодеров пока нет. Конечно h264 это не чтото сверхестественное, есть что улучшать и в неизменяющих требования к ресурсам частях, так и добавлять много что от форматов следеющего поколения требовательного к ресурсам. Для первого уже позно, для второго пока и так хватит, для текущих мощностей - h264 может быть _очень_ жрущим ресурсы.
     
  16. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    semen
    > Так быстро его зажевать нельзя.
    мыщъх вообще быстро грызет и еще быстрее читает ;)

    > В статье что ты указал вообще ни про что не сказано,
    > только DCT4x4 упомянуто - и ты радосно думаешь что больше нет отличий?)
    фундамент остается прежним.
    DCT -> квантование -> сжатие (арифмет. или хауф)
    в xvid'е уже обсуждается динамическая генерация
    адаптивных матриц, которая способа дать значительный
    выигрыш в сжатии...

    ты лучше скажи что нового в x264?
    именно нового? а не просто "узаконенного"?!
    вот _нового_ я в нем в упор ничего не вижу.
    ну CAVLC/CABAC, согласен. а что еще?!
    только по существу! не нужно хорошего
    деблокинга, ибо на разумных битрейтах
    он нафиг не нужен...

    > ты хотябы фильтр взгляни и опробуй его эксперементально,
    > смотреть референсный JM->transform8x8.c
    ну я распотрошил x264 - a free h264/avc encoder
    http://developers.videolan.org/x264.html

    > так же как развивались алгоритмы качественного сжатия в MPEG2\MPEG4
    > даже будучи гораздо простыми форматами выжать из них все за разумное
    а ты в курсе что 90% алгоритмов MPEG4 перешло из MPEG1?
    c минимальными изменениями, таким как, например, поддержка
    черезстрочечного режима... I, P, B фреймы, предсказание движение
    в нем уже были... на счет S-фрймов сейчас точно не скажу, но ладно,
    фундамент ведь тот же.
     
  17. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    извините что не совсем в тему..

    Есть ли проги для покадрового просмотра DVD?

    Мне нужно доказать озону что они продали
    некачественный DVD, мне кажется что он вообще пиратский, слишком много в нем странностей
    наряду с визуальными дефектами и звуковыми.

    Есть ли какие-то организации куда можно отправить DVD на экспертизу?
     
  18. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    Asterix
    AVIDEMUX - шикарная программа для работы с видео
    http://fixounet.free.fr/avidemux/
    (файлы > 4 Гб не понимает, если DVD зашифрован CSS,
    перед работы с ним его нужно расшифровать DVDDecryptor'ом)
    там же хороший видео-редактор VirtualDubMod, который вместе
    с декруптором можно найти на www.doom9.org - бесплатно :derisive:

    дефекты на DVD встречаются сплошь и рядом.
    я еще не видел ни одного DVD не нарушающего в чем-то стандарт.
    например, диск "FOG" от "Мега-Видео" имеет изображение в PAL,
    криво перегнанный из NTSC, а eng-звуковую дорожку... в NTSC!
    чтобы ее синхронизовать пришлось выставить нестандартый fps
    равный 24.06, но все равно получилось слегка неточно, а точнее
    нельзя, т.к. 24.06x задать не получается ;( хотя можно вручую
    повозиться и добиться синхрона, но это же охрененть можно будет...
    кстати, диск писался в Nero :) как и большинство других вполне
    лицензионных дисков...

    какая еще организация по экспертизе?
    обычное общество по борбе с качеством ;)

    p.s. что за дефекты?
    в большинстве случаев они устранимы...
     
  19. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    спасибо, попробую

    а вот это плохо, хотя DVD ведь обычно состоит из нескольких файлов размером ~ 1 гиг,
    так что проблемой не должно быть

    вот такие, скрин я выкладывал несколькими постами ранее
    http://www.wasm.ru/forum/viewtopic.php?pid=149024#p149024
    такие не устранимы %)
    причем периодические по всему фильму, ozon утверждает что они проверили
    диск из партии и дефекта не обнаружили, предлагает прислать им диск на
    "экспертизу" %)

    я сам уже попробовал юзать Light Alloy, но ее излишняя "падучесть" удручает,
    в ней есть покадровый просмотр в направлении "вперед"
     
  20. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    Asterix
    1) avidemux действительно рулит. очень мощная и простая.
    хотя может далеко не все, что бывает нужно.
    но с просмотром фильма справляется на раз.
    покрадровый просмотр, переход по времени,
    просмотр только ключевых кадров (I-frame),
    да и вообще - все...

    2) по стандарнту на DVD не должно быть vob'ов > 4 Гб

    3) я не совсем понимаю что это вобще такое
    (в смысле скрина), но сдается мне что это
    черезстрочечная.... артефакты характерные
    силуэт от соседнего кадра похоже....
    но это может быть и твой кривой DVD-плеер.
    очень даже может быть....
    смотри в avidemux, смотри в Dub'е...
    тогда разберешься ;)
    смени плеер или попробуй срипай диск
    с фильтром SmartBob. можно даже не жать,
    а просто перегнать без сжатия обратно в DVD...