на главную страницуна главную страницуна главную страницу

Новости | 3D-Видео, тюнеры и LCD | iT-Среда | MacLife | Мобильные устройства | Ноутбуки | Носители информации | Платформа ПК | Приложения и утилиты | Принтеры и периферия | ProAudio | Проекторы и ТВ | Сети и серверы | Цифровой звук | Цифровое видео | Цифровое фото | Карта сайта | Поиск


Открытая методика тестирования скорости компрессии видеофайлов в форматы DivX, XviD, WMV9, MPEG1 и MPEG2


Раз уж мы начали свою собственную эпопею с тестированием на скорость программного сжатия цифрового аудио, вполне логичным выглядело бы ее продолжение с переходом на еще более интересную, разноплановую и пользующуюся популярностью среди домашних пользователей тему — сжатия цифрового видео. Количество форматов сжатого видео (по крайней мере, популярных) намного больше, чем у аудио, число различных кодеков и используемого для этих целей программного обеспечения вообще невообразимо, и, что самое главное — процесс кодирования видео намного более ресурсоемок. Даже в случае если нам требуется сжать с приемлемым качеством (и в то же самое время приемлемым размером полученного результата) каких-нибудь 5-10 минут видеопотока время выполнения этой операции даже на самых мощных CPU может достигать нескольких часов! Поэтому мы придолжаем серию открытых методик, начатую статьей про аудиоформаты, и представляем в этом материале следующую, посвященной уже кодированию видео.

Итак, как и всегда, «после тщательного отбора и многократных обсуждений…»… впрочем, это начало уже хорошо всем известно, поэтому не будем повторяться, а перейдем сразу к делу. Для целей комплексного тестирования современных x86-процессоров на производительность при программном сжатии видеофайлов, мы отобрали следующие кодеки и программное обеспечение:

Внимание! После выхода существенно измененной или обновленной версии тестового пакета, описание методики может быть изменено. Учтите, что данная страничка не является статической, и может обновляться в произвольный момент времени.

Форматы, кодеки, и сопутствующее ПО

  1. MPEG4-кодек DivX 5.1.1 Pro
  2. MPEG4-кодек XviD
  3. Windows Media Video 9 Series
  4. Программа для MPEG1/2-кодирования Mainconcept MPEG Encoder
  5. Программа для MPEG1/2-кодирования Canopus ProCoder
  6. Программа для работы с видеофайлами VirtualDubMod

Суть методики и опции кодирования

Основная суть предлагаемой к рассмотрению методики заключается в том, что людей, занимающихся кодированием видео в домашних условиях, мы условно разделили на две группы: «рипперов» и «режиссеров-любителей». Соответственно, каждой из этих групп предлагается своя подгруппа тестов, входящих в общую методику, предположительно являющаяся для них наиболее акутальной.

Рипперы, как правило, занимаются конвертацией фильмов с оригинальных DVD-дисков с целью уместить их на приемлемое количество MPEG4 CD или даже Video CD. При этом ценители качественного контента обычно делают из одного DVD 2-3 компакта, а не один, так как в последнем случае качество страдает слишком уж сильно. Именно для них и предназначаются тесты с использованием форматов DivX, XviD и MPEG1. В качестве исходника для проведения этой подгруппы тестов, нами был взят именно тот тип оригинала, который целевую группу более всего интересует — файл в формате MPEG2 (стандартном для DVD-фильмов). Правда, для удобства пользователей мы были вынуждены отказаться от использования оригинального DVD-контента т.к. мы не смогли бы выложить его для скачивания, да и пользователи не смогли бы найти его на законопослушных сайтах. Поэтому мы взяли пусть и не очень большой, но зато свободно раздаваемый трейлер фильма «Bend It Like Beckham». Именно он (переименованный в TEST.MPG) и используется нами в качестве исходного файла для кодирования в форматы DivX, XviD, MPEG1 и WMV9.

Вторая группа кодировщиков — это режиссеры-любители, перегоняющие в сжатые форматы видеоинформацию со своих цифровых камер. Их, как правило, качество интересует в намного большей степени, чем рипперов, поэтому размер трехминутного ролика в районе 100 МБ считается вполне нормальным. И, опять-таки, как правило, используют они не новомодные DivX’ы и прочие XviD’ы, а старый добрый DVD-формат MPEG2. Для этой подгруппы тестов нами использовались два самых популярных MPEG2-кодера: Mainconcept MPEG Encoder и Canopus ProCoder. Естественно, подбор опций тоже кардинально отличается от рипперских тестов (помните — нас ведь интересует уже не столько размер, сколько качество!). Кроме того, другим является и исходник для кодирования — это действительно оригинальный любительский ролик с DV-камеры с достаточно сложными для MPEG2-кодеров сценами (текущая вода, etc), резкой сменой планов, и прочим нехарактерным для «облагороженного» DVD-контента наполнением.

Таким образом, сформировался набор из восьми подтестов с участием двух тестовых исходников:

  1. Кодирование MPG (MPEG2) в DivX
  2. Кодирование MPG (MPEG2) в XviD
  3. Кодирование MPG (MPEG2) в Windows Media Video 9 (WMV)
  4. Кодирование MPG (MPEG2) в MPEG1 с помощью Mainconcept MPEG Encoder
  5. Кодирование AVI (DV) в MPEG2 с помощью Mainconcept MPEG Encoder
  6. Кодирование AVI (DV) в MPEG2 с помощью Canopus ProCoder

Разумеется, во всех случаях использовалось двухпроходное VBR-кодирование т.к. «однопроходка» всеми профессионалами без исключения однозначно признана несерьезной и для практических (реальных, а не тестовых) целей применяется чрезвычайно редко и только в крайних случаях. В рипперских тестах дополнительно к кодированию применялись простейшие предварительные преобразования: изменения размера изображения (Resize, 720x388 --> 640x346) и деинтерлейсинг (Deinterlace). В случаях если кодек может проводить указанную операцию сам, выбирался именно этот вариант, в противном случае использовался соответствующий фильтр VirtualDubMod. Параллельное кодирование аудиопотока не проводилось.

С настройками соответствующих кодеков и ПО вы можете детально ознакомиться на отдельных страничках (предупреждение: они забиты под завязку скриншотами, и иногда довольно большими по размеру):

  1. Настройки DivX (изменены 11.12.2003)
  2. Настройки XviD (изменены 11.12.2003)
  3. Настройки Windows Media Video 9 VCM Codec (изменены 11.12.2003)
  4. Настройки Mainconcept MPEG Encoder (MPEG1/MPEG2) (изменены 11.12.2003)
  5. Настройки Canopus ProCoder (MPEG2) (изменены 11.12.2003)

Пару слов о тестовом пакете и скрипте

ПО и файлы, не входящие в комплект поставки тестового пакета

  1. MPEG4-кодек DivX 5.1.1 Pro. В особых рекомендациях, надеемся, не нуждается. Тестовым пакетом [по идее должны] поддерживаться обе его версии — как платная, так и бесплатная AdWare. Однако поскольку возможности тестирования работы пакета на этапе разработки были несколько ограничены, на всякий случай употребим стандартный комментарий разработчиков: «по крайней мере у нас все работало» :). Установка DivX является обязательной для того чтобы работал тест на кодирование DivX (в общем-то, очевидно, правда?). Более никакого внешнего ПО для работы этого теста не требуется.
  2. Свободный MPEG4-кодек XviD. Количество его разновидностей и компиляций от различных сайтов и просто конкретных людей довольно велико, но мы остановились на наиболее свежей на данный момент версии 1.0 beta 2 от Koepi. Установка XviD является обязательной для того чтобы работал тест на кодирование XviD. Более никакого внешнего ПО для работы этого теста не требуется. Кодек XviD абсолютно бесплатен. Внимание! Версия методики 1.0 работала с другим вариантом XviD!
  3. Windows Media Video 9 VCM (Video Compression Manager) кодек. Следует заметить, что VCM-кодек, хоть и выполняет, по сути, ту же работу, что и Windows Media Encoder 9, не может считаться полным его аналогом. Во-первых, Windows Media Encoder — это не только собственно кодек, но и готовая оболочка и утилиты для кодирования. VCM-вариант — это «чистый» кодек, без оболочки, ему нужна внешняя программа (мы применяем все тот же VirtualDubMod). Во-вторых, и это послужило для нас существенным аргументом в пользу VCM — после установки Windows Media Encoder 9, кодек для Windows Media Video не является доступным для внешних программ т.е. кодировать в этот формат можно только в самом Windows Media Encoder 9. Ну и в-третьих, почему-то Windows Media Encoder не позволяет осуществлять такую элементарную операцию как одновременный resize и deinterlace. В результате, по совокупности свойств, Windows Media Video 9 VCM мы посчитали более универсальным вариантом (хотя, сразу скажем, он работает медленнее). Установка WMV 9 VCM является обязательной для того чтобы работал тест на кодирование в формат Windows Media Video. Более никакого внешнего ПО для работы этого теста не требуется. Windows Media Video 9 VCM бесплатен (правда, работает он только под ОС Windows, которая небесплатна :).
  4. Mainconcept MPEG Encoder — оболочка и MPEG1/2-кодек «в одном флаконе». Достаточно продвинутый продукт с массой опций настройки качества/скорости/степени компрессии, пресетами для наиболее часто употребимых случаев (типа Video CD, SVCD, DVD, etc). Также этот encoder чрезвычайно интересен тем, что оптимизирован буквально подо все на свете: он поддерживает SIMD-наборы MMX, 3DNow!, SSE, SSE2, и умеет распараллеливать процесс кодирования на несколько потоков (что означает потенциальный прирост быстродействия при включенной Hyper-Threading или наличии нескольких физических процессоров в системе). Mainconcept MPEG Encoder необходим для теста на кодирование MPEG1 и тестов на кодирование MPEG2 (тех двух, которые проводятся с его помощью). Добавим, что также для этих тестов необходимо чтобы был установлен nnCron Automation Manager (см. ниже). Mainconcept MPEG Encoder — платное ПО, но доступна демо-версия. Инсталляционный пакет у них один и тот же, просто если в процессе установки вместо ключа вы введете слово «DEMO» (и потом подтвердите этот выбор, нажав кнопку «Ignore») — будет установлена демо-версия. Демо-версия добавляет к кодируемому изображению логотип. На быстродействие это, судя по всему, не влияет. По крайней мере, нам не удалось заметить хоть сколько-нибудь существенной разницы в скорости кодирования. Перед скачиванием установочного пакета с сайта производителя, вас попросят указать некоторую информацию о себе.
  5. Canopus ProCoder. Еще одна программа для кодирования MPEG1/2. Общепризнанно считается, что она дает самый качественный результат, хоть и местами весьма нетороплива. Нам не удалось найти информации о том, какие дополнительные наборы инструкций поддерживаются этим кодером, но двухпроцессорность он понимает, причем как физическую (2 CPU), так и «виртуальную» (Hyper-Threading). Также в наличии пресеты и различные дополнительные опции кодирования (правда, поменьше, чем в Mainconcept MPEG Encoder). Canopus ProCoder необходим для двух тестов на кодирование MPEG2, осуществляемых с его помощью. В настоящий момент тестовый пакет поддерживает только демо-версию, которая так и называется: Canopus ProCoder Demo. Ее можно загрузить с сайта производителя, правда, перед этим от вас потребуют зарегистрироваться и получить именной аккаунт с паролем. Поддержка тестовым пакетом платной версии Canopus ProCoder стоит в очереди на исполнение (для начала мы все-таки решили ввести поддержку именно демо т.к. она бесплатна, а стоит Canopus ProCoder довольно дорого — $499). Для тестов на кодирование MPEG2 с помощью этого ПО необходимо также установить nnCron Automation Manager и Apple QuickTime (см. ниже).
  6. Apple QuickTime. Этот пакет также довольно хорошо известен и не нуждается в рекомендациях. Необходим он исключительно для обеспечения работоспособности Canopus ProCoder [Demo] — это требование самой программы. Бесплатен. Доступен для загрузки с сайта Apple.
  7. nnCron Automation Manager. На самом деле, это только мы используем nnCron исключительно в качестве Automation Manager т.е. программы, которая управляет действиями других программ. Полный список возможностей nnCron намного шире — его можно рассматривать и как шедулер (причем очень мощный!), и даже в некотором роде как среду программирования с поддержкой Форт-подобного языка. Это чрезвычайно полезная и интересная программа, особенно для тех кто занимается малой офисной автоматизацией, и мы искренне благодарны ее создателям (к тому же, они согласились внести в нее некоторые усовершенствования для удовлетворения именно наших, специфически-тестерских запросов). nnCron бесплатен для некоммерческого использования гражданами бывшего СССР. Однако это не относится к масс-медиа и прочим коммерческим организациям (в т.ч. и к нам — у нас в тестовой лаборатории работает честно купленная версия).
  8. Также в комплект поставки тестового пакета не входят исходники для кодирования — файлы TEST.MPG (для кодирования в DivX/XviD/WMV9/MPEG1) и TEST.AVI (для кодирования в MPEG2). Внимание! Версия методики 1.0 работала с другим набором исходных файлов! Согласно методике, наши файлы представляют собой соответственно трейлер (т.е. MPEG2 DVD-файл) и AVI-файл с цифровой камеры формата DV. Они не включены в поставку исключительно по причине больших размеров. Используемые нами файлы имеют следующие характеристики: MPG-файл — размер 33,2 МБ (34822144 байта), длительность проигрывания 1 минута 35 секунд, разрешение 720x576 пикселей (трейлер фильма «Bend It Like Beckham»). AVI-файл — размер 636 МБ (667794940 байт), длительность проигрывания 2 минуты 55 секунд, разрешение 720x576 пикселей (любительская съемка, любезно предоставленная участником Конференции iXBT.com Михаилом Афанасенковым). Возможность выкладки этого файла для скачивания в настоящий момент исследуется (надеемся, исход будет положительным). Соответственно, наличие файла TEST.MPG необходимо для тестов на кодирование DivX/XviD/WMV9/MPEG1, а наличие файла TEST.AVI — для тестов на кодирование MPEG2. Файлы должны находиться в корне теста (там же, где скрипт с именем !video.bat). Разумеется, тестовый пакет никак не завязан на конкретные файлы, они могут быть любыми — важен тип содержимого, а не оно само. Также понятно, что для кодирования MPEG2 можно использовать не только исходник в формате DV, а для кодирования DivX, etc — не только исходник в формате MPEG2/DVD. Однако нам изменение формата исходников кажется неуместным ввиду того что тогда пропадет основная суть, вкладываемая в методику тестирования, и бенчмарк рискует превратиться в «чистую синтетику».
  9. Свободно распространяемая бесплатная программа для кодирования и редактирования видеофайлов VirtualDubMod в комплект поставки тестового пакета входит. Правда, в урезанном виде, минимально необходимом для проведения тестовых процедур (без help и некоторых других файлов).

Особенности работы тестового скрипта

Тестовый скрипт [по идее] должен работать на любой машине с установленной операционной системой Windows 2000 или XP (вполне вероятно, что он будет успешно работать и на более поздних версиях Windows, к примеру, на Windows Server 2003). Для запуска необходимо установить все вышеперечисленное ПО (или только часть его — см. выше о том, какие программы нужны для каких тестов) и записать в корневой каталог теста файлы-исходники: TEST.MPG и TEST.AVI. Вы можете использовать любые файлы соответствующего формата. Также необходимо чтобы в системе присутствовал диск C:, и на нем было некоторое количество свободного места (на всякий случай резервируется место в размере файла TEST.AVI). Сам тестовый пакет может располагаться на любом диске и в любом его месте (нам хочется надеяться, что это заявление окажется истинным — мы старались везде избавиться от абсолютных путей и проводили тестирование финальной версии скрипта с изменением его месторасположения). Операционная система также по идее может быть размещена где угодно, равно как и каталог Program Files — главное чтобы сама ОС знала правильные пути.

Разумеется, на время работы скрипта следует прекратить выполнение всех других задач, и закрыть окна всех прочих приложений. К движениям мышкой во время своего исполнения тест должен быть некритичен, а вот к набору чего-либо на клавиатуре — как говорится, «есть варианты». Время прохождения полного теста (с нашими тестовыми файлами) даже на машине с процессором Pentium 4 частотой около 3 ГГц, могло составлять до трех с лишним часов (!). Впрочем, в процессе исполнения выводится диагностическая информация, так что вы будете в курсе, какой именно подтест исполняется в данный момент. Заранее предупреждаем, что тестовый скрипт намного более сложен, чем в случае с методикой по аудио, поэтому в первой версии вполне могут содержаться не выявленные нами ошибки. Правда, мы искренне надеемся, что они не приведут ни к каким фатальным последствиям, кроме неработоспособности самого скрипта или его части. В любом случае, feedback крайне желателен и приветствуется.

Загрузить самую свежую версию тестового пакета всегда можно со странички поддержки.

Для тонких эстетов...

Для начала мы рекомендуем ознакомиться с аналогичным разделом статьи с описанием методики по тестированию на скорость компрессии звуковых файлов — многие наработки из нее также используются и в скрипте на скорость кодирования видео. Дополнительно хотелось бы отметить следующее:

  1. Данный скрипт гарантированно не будет работать под управлением ОС Windows не на ядре NT, соответствующая строка проверки теперь присутствует в теле скрипта.
  2. В процессе исполнения скрипта производится импорт требуемых для его работы настроек реестра для некоторых программ (VirtualDubMod, Mainconcept MPEG Encoder, Canopus ProCoder Demo) а также необходимых профайлов (Canopus ProCoder Demo). Они могут отличаться от тех установок, которыми пользуетесь вы (если данное ПО является для вас «рабочим», а не устанавливалось исключительно для проведения тестов в рамках этого пакета). Установки пользователя затираются т.е. восстанавливать их после окончания работы теста вам придется вручную. Тестовый профайл Canopus ProCoder Demo после исполнения теста не стирается.
  3. Если файлы TEST.AVI или TEST.MPG окажутся не в том формате, который может быть прочитан соответствующим программным обеспечением, тест, скорее всего, закончится с сообщением об ошибке.
  4. Использование версий ПО и кодеков, отличающихся от указанных в описании методики, может привести к неработоспособности тестового скрипта. Впрочем, может и не привести… Более всего критичны к версиям кодеки, менее всего — Mainconcept MPEG Encoder и Canopus ProCoder.
  5. Любители полазить по чужим исходникам :), быть может, заметят (трудно вообще-то не заметить…), что процедура замера времени исполнения тестов на кодирование MPEG1 и MPEG2 для Mainconcept MPEG Encoder, не может считаться идеальной: она создает небольшую дополнительную нагрузку на систему и вносит определенную погрешность в измерения (в общей сумме порядка 5 секунд, на слабых машинах, возможно, чуть больше). Мы знаем об этом. Однако во-первых по сравнению с временем выполнения всего теста эта погрешность достаточно мала, а во-вторых, никакого более точного способа нам реализовать на практике пока не удалось, хотя работа в этом направлении и ведется. Впрочем, есть еще и «в-третьих» так или иначе, но все равно все участники тестирования находятся в абсолютно одинаковой ситуации т.к. погрешность влияет на любой результат.

О поддержке

Разумеется, мы выкладываем этот тестовый пакет не просто для того, чтобы похвастаться, и заинтересованы в том, чтобы его функциональность проверило как можно большее количество людей. Поэтому все сообщения о «глюках», ошибках, невозможности запуска, и т.д. и т.п. только приветствуются. Равно как и предложения по поводу изменения опций, состава ПО, версий, и прочего. Направляйте их электронной почтой. Однако не ждите, что ошибки будут исправляться тут же, в течение часов или даже суток. Все-таки, основное предназначение данного пакета — это проведение тестов на скорость компрессии видеоинформации в рамках нашей тестовой лаборатории, поэтому более всего нас интересует то, чтобы он правильно работал у нас.

Это не значит, что мы отказываемся от поддержки, просто ее интенсивность будет зависеть от загруженности сотрудников основной работой. И, в любом случае (нелишним будет напомнить) — вы используете данный скрипт на свой страх и риск, и мы не отвечаем за то, что он «натворит» на вашей машине (хотя и честно стараемся, чтобы ничего крамольного не происходило). Новости относительно изменений, дополнений, и прочего, вы всегда можете найти на специально отведенной для этого страничке.

О использовании тестового пакета другими масс-медиа и прочими коммерческими организациями

Конечно же, можно. Однако если вы все-таки решили, что проще скачать готовое, чем писать и разрабатывать что-то самостоятельно — то, наверное, будет вполне логично упомянуть разработчика продукта, который вы используете сайт iXBT.com. Во-первых, тем самым вы выразите элементарную признательность тем, кто все это сделал (каким бы простым и немудрящим не казался их труд), ну а во-вторых вашему читателю (клиенту) от этого будет только лучше: он получит возможность сравнивать массу результатов, полученных в рамках открытой методики, причем не только вами (и нами), но даже просто обычными пользователями на их собственных компьютерах. А для этого ему нужно как минимум знать, что использовалась именно данная методика.

Единственное ограничение, которое хотелось бы оговорить особо: крайне не рекомендуется выкладывать скачанный тестовый пакет на своих сайтах, лучше давать ссылку на официальную страничку поддержки. Ведь наверняка будут и багрепорты, и предложения по усовершенствованию и модификации методики, поэтому лучше пусть все желающие гарантированно получат самую свежую версию.

Станислав Гарматюк (nawhi@ixbt.com)

Опубликовано — 9 декабря 2003 г.
 
Комментарии? Поправки? Дополнения? nawhi@ixbt.com



Новости | 3D-Видео, тюнеры и LCD | iT-Среда | MacLife | Мобильные устройства | Ноутбуки | Носители информации | Платформа ПК | Приложения и утилиты | Принтеры и периферия | ProAudio | Проекторы и ТВ | Сети и серверы | Цифровой звук | Цифровое видео | Цифровое фото | Карта сайта | Поиск

Copyright © by iXBT.com, 1997—2012. Produced by iXBT.com