Карманное видео


Перекодируем и смотрим фильмы на КПК

В неистовой гонке гигагерцев, гигабайтов, микронов и т. д., отличающей IT индустрию в течении, как минимум, последних десяти лет, мы перестали удивляться новому. Или почти перестали. Эффект пресыщения является очевидной оборотной стороной быстрого прогресса, когда изменения происходят настолько быстро, что практически устаревают в момент окончания разработки. И это еще в лучшем случае, хуже, если стараниями конкурентов даже неоконченная разработка оказывается заведомо устаревшей. Тем не менее, некоторые достижения компьютерной индустрии не перестают удивлять, и не побоимся этого слова, очаровывать даже самых продвинутых и казалось бы ко всему привычных пользователей. И одно из таких достижений — видео на КПК. Действительно, возможность смотреть видео с довольно неплохим качеством из малюсенькой коробочки, по своим размерам в три с половиной раза меньшей видеокассеты, очаровывает. Хотя и это не обошлось без ложки дегтя — а именно экранов. Подавляющее большинство разработчиков оптимизировало свои экраны для уменьшения потребления энергии, комфортной работы при сильной внешней засветке и т. п. пожертвовав цветовым охватом — качеством передачи и естественностью цветов (причем это, конечно, касается не только видео, но и фотографий). Но это не способно охладить пыл энтузиастов карманного видео, тем более, что технологии производства экранов непрерывно совершенствуются и повышение их качества до вполне приемлемого уровня остается вопросом самого ближайшего будущего.

Сразу оговоримся, что в рамках данной статьи мы будем говорить только о платформе Pocket PC, не касаясь Palm. Почему? Хотя бы потому, что нельзя объять необъятное, к тому же, исторически воспроизведение видео довольно долго оставалось исключительной прерогативой платформы Pocket PC.

Первый вопрос при знакомстве с миром карманного видео  — «с чего начать?» имеет, возможно, несколько неожиданный ответ — с разгона. Как известно, при работе с видео лишних мегагерц не бывает, особенно у PDA. К счастью, разработчики архитектуры XScale оставили большой простор для творчества независимых авторов. Существует большое количество утилит, позволяющих чисто программно переключать как частоту ядра процессора, так и частоту системной шины. Причем делается это в «горячую», без перезагрузки и результат операции (особенно при воспроизведении видео) становится заметен моментально. Вопрос выбора конкретной утилиты во многом зависит от личных предпочтений, довольно удачно реализована крохотная утилита tdlaunch, выполненная в виде плагина для Today. В результате ее установки на экране Today появляется иконка, с помощью которой и происходит переключение рабочих частот, причем из всех возможных вариантов можно выбрать только необходимые.

Как и для настольных систем, частота системной шины имеет важное значение — в данном случае целесообразно устанавливать максимально возможную частоту системной шины (переход с 50 на 100 МГц дает примерно 20 процентный прирост производительности при воспроизведении видео).

Закончив с разгоном, приступим непосредственно к подготовке видеоматериала. Надо заметить, что основное значение при воспроизведении видео играет не столько частота процессора, сколько тип операционной системы — как показали наши тесты, Windows Mobile 2003 имеет существенное преимущество по сравнению с Pocket PC 2002, и именно первой мы и уделим основное внимание. Итак, первый, самый простой и целесообразный для начального ознакомления способ — воспользоваться встроенными в операционную систему возможностями. В случае с Windows Mobile это Pocket Media Player, обладающий неплохими (по крайней мере, для начала) возможностями и характеристиками, однако, к сожалению, воспроизводящий видео только в формате WMV.

В данном случае закрытость формата вряд ли может играть существенно негативную роль, скорее всего на подготовленном материале никогда не будет стоять гриф «хранить вечно» — просто из-за того, что уже следующее поколение PDA будет иметь совсем другие возможности по воспроизведению видео, и перекодированный видеоматериал к тому времени уже безнадежно устареет. Для подготовки видеоматериала в формате WMV проще всего воспользоваться имеющейся в составе Windows XP программой Movie Maker (честно говоря, это был первый случай использования этой программы, тем не менее с задачей перекодирования видео для наладонника Movie Maker справился вполне успешно). Кроме того, необходимо установить Windows Media Player 9, с соответствующими кодеками. Кроме того, можно установить вторую версию Movie Maker, обладающую не только расширенными возможностями монтажа (они то, скорее всего, и не понадобятся), но и (что гораздо более важно) расширенным набором пресетов для экспорта видео, в том числе и для Pocket Media Player.

Обратная сторона простоты использования — малый выбор параметров результирующего видео. Более продвинутый вариант подготовки видеоматериала в формате WMV — использование Windows Мedia Encoder. По сравнению с Movie Maker у  Windows Мedia Encoder есть некоторые преимущества — в частности, более гибкие настройки параметров компрессии, в том числе и возможность редактирования встроенных профилей кодирования, однако, к сожалению,  Windows Мedia Encoder отличается некоторой нестабильностью работы, что часто бывает связано с установленными в системе «нестандартными» кодеками.

Как уже упоминалось, главный недостаток Pocket Media Player 9 — невозможность воспроизведения AVI файлов вообще, и популярных Divx и XviD в частности. Для преодоления этой проблемы потребуется установить соответствующий плеер. Какой из них выбрать? Выбор обширен и во многом субъективен. Тем не менее, среди энтузиастов карманного видео заслуженной популярностью пользуется бесплатный плеер PocketMVP, разрабатываемый с открытыми исходными кодами (www.pocketmvp.com). Этот плеер поддерживает большое количество устройств и форматов как видео, так и аудио файлов (ограничимся кратким списком: MP3/OGG/WMA/DivX 3.11/4.xx/5.xx/OpenDivX/XviD/3ivx/MPEG-1/VP3). Что естественно для современного плеера, PocketMVP поддерживает скины, имеет редактор плейлистов, встроенный эквалайзер, различные режимы воспроизведения. Впрочем есть и обратная сторона медали. Это отсутствие поддержки DivX Pro (B-frames), наличие некоторых (незначительных) глюков и багов, и, что гораздо более неприятно, относительно низкую производительность продукта.

Следующий и еще более важный вопрос — подготовка видеоматериала. Здесь тоже возможны варианты — от уже ставшего классикой VirtualDub до специализированных утилит, специально оптимизированных для работы с «карманным» видео.

В качестве примера специализированных утилит рассмотрим Pocket-DVD Studio (www.pqdvd.com), специально созданную для максимально простого и эффективного конвертирования DVD в формат, оптимизированный для воспроизведения на наладоннике. Рекомендуется любителям простых и изящных решений. Вот уж воистину — ничего лишнего — устанавливаем исходный диск в привод, выбираем нужный язык, режим кроппинга (очень наглядно представленный на главной панели программы), разрешение выходного видеофайла (к сожалению, режим 320×240 не предусмотрен) и степень компрессии (приблизительный размер выходного файла немедленно отображается) и все — можно начинать кодирование. При желании можно изменить некоторые настройки — включить деинтерлейсинг исходного видео (по умолчанию выключен), выбрать параметры кодирования аудио (по умолчанию 22 кГц, 24 Кбит/сек, моно) и частоту кадров выходного файла (доступны фиксированные величины 15, 20 или 25 Гц, по умолчанию — 25 Гц). Кроме того, можно задать максимальный размер выходного файла, по умолчанию — 500 МБ.

Назвать это решение идеальным конечно нельзя — главным образом из-за отсутствия возможности двухпроходного кодирования. Тем не менее, учитывая максимальную простоту использования, и наличие в дистрибутиве всех необходимых для работы компонентов (XviD кодека и даже плеера PocketMVP), позволяет даже новичкам начать перекодирование DVD без особых проблем. Единственное, на что требуется обратить внимание — отсутствие у Pocket-DVD Studio возможности открытия защищенных от копирования (locked) дисков. В этом случае нужно на несколько секунд включить воспроизведение диска каким либо программным DVD плером. После этого диск станет доступным для Pocket-DVD Studio.

Очень похожей утилитой, работающей с отдельными файлами AVI, VOB или MPG, является PocketDivXEncoder, сжимающий видео в DivX5 или XviD, а звук — в MP3 или OGG. Программа имеет очень понятный и приятный интерфейс, функционально превосходит Pocket-DVD Studio (наличествует двухпроходное кодирование и нет ограничений по разрешению), имеет набор готовых настроек под разные целевые устройства, правда, пока находится в состоянии нестабильной альфа-версии.

Главное достоинство таких утилит — максимальная простота процесса, и отсутствие возможностей тонкой настройки параметров кодирования под свои нужды кому-то может показаться существенным недостатком. Для любителей все пощупать своими руками альтернативы VirtualDub пожалуй до сих пор нет. В рамках данного ознакомительного обзора мы ограничимся описанием специфических настроек кодирования pocket video.

Итак, первое — видеофильтры. Учитывая относительно невысокое качество экранов PDA, есть смысл немного компрессировать динамический диапазон видео, использовав фильтр Levels. Увлекаться не надо, иначе картинка станет излишне контрастной, коррекции в пределах 10-15% вполне достаточно. Кроме того, целесообразно отключить опцию «Operate in Luma instead of RGB» («Обрабатывать только канал яркости вместо RGB») — это несколько усилит цветовую насыщенность, что в случае с PDA совсем не вредно.

В случае наличия черных полей сверху и снизу кадра (как в нашем примере), есть смысл воспользоваться опцией «Cropping» («Обрезка») расположенной в оснастке первого же фильтра.

Учитывая двойную рекомпрессию исходного материала, полезно постараться замаскировать артефакты компрессии, например с помощью фильтра «Smart Smoother IQ», подбирая параметры сглаживания в зависимости от качества исходного материала.

Естественно, при желании, можно воспользоваться и другими фильтрами — скорректировать цветовой баланс источника, подчеркнуть контуры и т. д. Последним по порядку, но отнюдь не последним по важности становится изменение размера кадра под экран PDA. В подавляющем большинстве случаев, для системы Windows Mobile 2003 и процессора, работающего на частоте 400 МГц, выбор 320×240 пикселей (для исходника в формате 4×3) будет самым разумным. В параметрах фильтра «Smart Resize» устанавливаем режим пересчета «Precise Bicubic», фиксируем ширину экрана (320 пикс.) и пересчитываем высоту, используя встроенный калькулятор, не забывая активировать опцию «Fix height to mult of 4» в случае, если формат исходника отличен от 4×3.

На этом работу с видеофильтрами можно закончить, перейдя к настройке параметров компрессии. Собственно настройки компрессии неоднократно описаны, очень желательно использовать двухпроходное кодирование, учитывая низкий битрейт. Для каждой конкретной модели наладонника и его программной конфигурации оптимальный битрейт нужно подобрать экспериментально, учитывая как размер доступной флэш-памяти, так и стабильность воспроизведения на заданной частоте процессора.  Рекомендуемый диапазон 100-300 Кбит/сек.

Для некоторой экономии как пространства на флэш-карте, так и ресурсов процессора, расходуемых на раскодирование аудио, целесообразно понизить частоту квантования и, в зависимости от условий воспроизведения, конвертировать стерео в моно. Для предотвращения потенциальных проблем с синхронизацией видео и звука, частоту квантования желательно снизить в 2 раза — до 22 или 24 кГц в зависимости от исходной частоты источника.

Несмотря на довольно неплохие результаты при использовании перечисленных способов, главный их недостаток очевиден — необходимость дополнительной конвертации заметно расхолаживает. Даже возможность использования заранее настроенных профайлов не сильно облегчает ситуацию. Казалось бы, для воспроизведения видео на стандартном десктопе частоты 400 МГц обычно вполне достаточно. Почему в случае с PDA этого оказывается недопустимо мало? Обычно считается, что за счет существенных отличий в архитектуре процессоров «это разные мегагерцы». В общем случае это, безусловно, верно. А вот в частном… Достаточно сравнить производительность Pocket PC 2002 и Windows Mobile 2003, работающих на одной частоте, при воспроизведении видео. Очевидно, что оптимизация программного обеспечения способна обеспечить изрядный прирост производительности. Именно об этом задумался венгерский программист Габор Ковач, начиная свой проект с немного претенциозным названием BetaPlayer (beta.topcat.hu).

Не удивительно, что многих (включая автора данной статьи) такое название способно надолго отпугнуть от  использования продукта. Однако в данном случае игра стоит свечь. Скажем сразу, что продукт находится в состоянии бета-тестирования (безусловно оправдывая выбранное название) со всеми вытекающими отсюда последствиями, однако на сегодняшний день это, пожалуй, единственный плеер, способный воспроизводить видео высокого (по меркам КПК, конечно) разрешения на платформе Pocket PC. Причем без каких либо дополнительных преобразований. Об окончательных результатах еще говорить рано, но предварительное тестирование показывает, что, используя BetaPlayer, возможно воспроизводить видео в формате Divx или XviD с потоком около 1 МБ/сек на платформе Windows Mobile 2003, работающей с частотой 400МГц.

Значит ли это, что все вышеописанное уже потеряло актуальность? И да, и нет. С одной стороны, как известно, фильм в формате Divx обычно оптимизируется для записи как минимум на один CD, а значит, для записи фильма целиком необходима как минимум 1 ГБ флэш-карта. С другой стороны, стоимость флэш-памяти имеет устойчивую тенденцию к снижению, а значит, актуальность прямой перезаписи видео на флэшку будет с каждым днем возрастать. Однако, не стоит забывать и о продолжительности работы наладонника, которая напрямую зависит от частоты процессора. А использование оптимизированных для PDA видео файлов с битрейтом около 450-500 КБ/сек позволяет снизить (вот где опять пригодится tdlaunch) частоту процессора до 200 МГц! Причем без заметных выпадений кадров, рассинхронизации звука и т. д.  Такова цена качественной оптимизации софта. И хочется верить, что это далеко не предел.

И наконец, обещанные в начале результаты мини-тестирования. Приводим результаты, полученные при помощи встроенной в BetaPlayer опции «Benchmark». Использовались последняя на момент написания версия BetaPlayer — 0.4 и видеоклип в формате XviD 320×180 @ 25 кадров/сек с потоком 376 Кбит/сек (CBR, no B-frames) для видео и 128 Кбит/сек для аудио. Все дополнительные возможности для вывода видео (Smooth Zoom, Dither, Slow Video Memory) отключены. Воспроизведение аудио — с максимальным качеством.

Модель КПК

Операционная система

Частота процессора, МГц

Частота шины, МГц

Производительность, % к номин. скорости воспроизведения

HP iPAQ 2210

WM 2003

400

200

155

HP iPAQ 5550

WM 2003

400

200

149

Toshiba E350

WM 2003

200

100

134

300

100

181

400

100

219

Toshiba E330

PPC 2002

300

100

  99

Первый, самый очевидный вывод, что видео, сжатое с таким качеством и битрейтом, может без проблем воспроизводится на PPC 2002 и процессоре с частотой 300 МГц. Другой очевидный вывод — оптимизация операционной системы обеспечивает 80-процентный прирост производительности при воспроизведении видео! Гораздо менее очевидны результаты сравнения КПК от HP и Toshiba. По видимому, различия в аппаратной реализации видеоподсистемы, шины памяти и функционирования графического API обуславливают довольно существенные отличия в скорости воспроизведения. Можно предположить и другое — не исключено, что BetaPlayer просто лучше оптимизирован для работы с Toshiba.

Таким образом, современное состояние «карманного видео» позволяет удовлетворить самый широкий спектр запросов — от максимально простых в использовании встроенных в систему Windows Mobile 2003 Pocket Media Player и Movie Maker из Windows XP, до более продвинутых специализированных утилит типа Pocket-DVD Studio, работающих в тандеме с видео плеерами, поддерживающими воспроизведение Divx или XviD и, наконец, до продвинутых вариантов кодирования, использующих утилиты типа VirtualDub и BetaPlayer в качестве плеера, обеспечивающего повышенную производительность при воспроизведении.

Какой бы вариант мы не выбрали сегодня, будущее как за аппаратным наращиванием мощи процессоров, улучшением качества и разрешения экранов (и TOSHIBA e800, безусловно, была только первой ласточкой на этом пути), появлением встроенных видеовыходов, так и за совершенствованием и оптимизацией программного обеспечения.

Благодарим директора компании «PROVIS» Евгения Субочева за предоставленный на тестирование КПК.




Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.