сообщить о нарушении
Текущая страница: 3 (всего у книги 10 страниц)
Кодеки AVC обеспечивают лучшее сжатие и качество картинки, но, к сожалению, нет полной поддержки всех возможностей этого стандарта проигрывателями на КПК. Поэтому, MPEG-4 AVC — дело будущего и, судя по темпам развития не очень отдаленного. Мы же пока, говоря о MPEG-4, будем подразумевать именно ASP кодеры.
Зачем сжимать и чем нам это грозит?
На первую часть вопроса мы частично ответили в начале статьи. Допустим, мы сохраняем видео без сжатия с размером кадра 352х288 пикселей и цветностью 24 бит на пиксель. Для сохранения минуты видео потребуется примерно 435 Мбайт. В этом и есть основная проблема цифрового видео — неимоверные размеры файлов.
Для борьбы с таким аппетитом существует два основных способа: уменьшение основных параметров видеоряда (размер кадра, кодировка цвета и частота кадров) и сжатие.
Сжатие разделяют на два типа: «без потери качества» и «с потерей качества». Разница между этими типами понятна из их названия. Максимальная степень сжатия, достигаемая с помощью алгоритмов «без потерь», не превышает 3 к 1, поэтому они не очень помогут в решении нашей задачи. В то время, как алгоритмы, работающие с потерей качества, могут сжимать вплоть до 100 к 1 по отношению к несжатому потоку.
Каким же образом методы сжатия видео достигают столь впечатляющих результатов? Как известно, пороговая частота дискретного восприятия человеком сменяющих друг друга графических образов — 25 кадров/сек. В силу этого обстоятельства, наличие в выходном потоке большего числа кадров не оправдано. Более того, смежные кадры содержат одни и те же объекты сцены. Следовательно, хранение каждого из кадров можно заменить хранением изменений, произошедших со времени показа предыдущего кадра. Таким образом, весь фильм можно представить в виде последовательности ключевых кадров, сохраненных с небольшим коэффициентом сжатия и промежуточных (зависимых) кадров, ссылающихся на предыдущие ключевые или зависимые кадры. Зависимые кадры минимальны по размеру и содержат только изменения, которые претерпела сцена. При этом, алгоритм выясняет то, что глаз может не заметить, и выбрасывает это, а затем вычисляет лучший способ для сохранения оставшегося. Вот за счет этого и достигается впечатляющая экономия дискового пространства.
А к каким проблемам приводит сжатие видео? Оно приводит к, так называемым, артефактам. Артефакты — это видимые нарушения качества видео, возникающие в процессе сжатия с потерями. Искажения, получаемые при сжатии, варьируются от алгоритма к алгоритму. Наиболее часто встречающийся артефакт сжатия — разбиение картинки на квадратные блоки. Также часто наблюдаются: «мусор» рядом с контрастными границами и движущимися объектами, «волнующиеся» и «расплывшиеся» цвета или «замыливание» картинки.
Здесь ключевым моментом является количество бит, выделяемых для хранения цвета одного пикселя. В этой связи появляется термин «битрейт». Битрейт — это размер видеопоследовательности в битах, отнесенный к его длительности в секундах. Единицей измерения битрейта служит 1 бит/с — один бит в секунду (1bps — 1 bit(s)-per-second). Поскольку 1 бит/с — величина очень маленькая в приложении к цифровому видео, также вводятся килобит/с (кбит/с). Чем выше битрейт и, соответственно, бит выделено под хранение одного пикселя, тем реалистичнее картинка, но тем больше объем конечного файла.
Параметры кодирования
Итак, из всего вышесказанного можно сделать вывод, что основные параметры, на которые мы можем повлиять — это битрейт и размер картинки. Частоту кадров не стоит трогать, так как это может привести к рывкообразному воспроизведению видеоряда и проблемам синхронизации со звуковой дорожкой.
Но, это еще не все рычаги управления. Повлиять на качество можно, выбирая режимы сжатия. Существует четыре режима: однопроходный с постоянным битрейтом, однопроходный с переменным битрейтом, однопроходный с постоянным качеством и двухпроходный. Рассмотрим подробнее принципы работы каждого из режимов.
Однопроходный режим с постоянным битрейтом
Этот режим — самый простой: каждый кадр имеет одинаковый размер, а результирующий поток видеоданных имеет постоянный битрейт. Алгоритм этого режима весьма прост и, соответственно, нересурсоемок. Однако, результаты, полученные в таком режиме, существенно уступают результатам в других однопроходных режимах. В современных кодеках практически не используется.
Однопроходный режим с переменным битрейтом
Он реализует простейшую схему: если кадр простой для сжатия, то используется лишь часть выделенных для нее битов. Остальные биты «откладываются» в своего рода копилку — резервуар. Благодаря этому на сложных сценах мы можем использовать больше бит для сжатия кадра, заимствуя часть битов из резервуара. Данная схема проста и эффективна, потому она дает лучшее качество изображения, чем в режиме с постоянным битрейтом. Но, реальный битрейт получится на усмотрение кодека, поэтому точно контролировать размер фала не получится.
Однопроходный с постоянным качеством
Название этого режима — «с постоянным качеством», — не совсем корректно. В процессе сжатия остается постоянным так называемый quantizer — численная характеристика степени сжатия кадра. Quantizer задаёт коэффициент потерь в качестве видео. При выставлении его в постоянное значение, качество видео будет одинаково на протяжении всего фильма, не зависимо от количества движения. Уменьшение значения «квантизатора» ведёт к улучшению качества картинки. А, чем этот показатель выше, тем больше сжатие, тем ниже качество, тем более заметны квадраты (артефакты). Основной недостаток этого режима — мы не можем узнать заранее (до сжатия), какой размер будет иметь файл в результате.
Двухпроходный режим
Как можно догадаться из названия, сжатие видео в этом режиме проводится в два прохода и, соответственно, занимает примерно вдвое больше времени. Во время первого прохода собирается статистика о сжимаемости видео материала. Во втором проходе эта статистика используется для перераспределения битов, причем биты могут перераспределяться не только в пределах некоторого небольшого промежутка времени, как было в случае однопроходного режима и схемой с резервуаром битов, а на протяжении всего материала. Поэтому, именно двухпроходный режим обеспечивает максимальное качество видео при заданном битрейте. При этом можно очень точно посчитать, какой размер будет иметь конечный файл.
Кроме вышеперечисленного, в кодеках фигурирует огромное количество настроек, фирменных технологий и нововведений. Но, для того чтобы из-за такого обилия неподготовленный пользователь не погрузился в транс, разработчики позаботились о создании профилей, содержащих готовые наборы настроек, предназначенные для разных задач. Поэтому, если Вы не знаете какие настройки выставить в кодеке, ищите интересующий нас профиль Portable, который подразумевает кодирование с такими параметрами, чтобы полученный файл мог быть проигран на портативных устройствах. В частности, рекомендуемое максимальное разрешение для этого профиля 352x240 при 30 кадрах в секунду и 352х288 при 25 кадрах в секунду.
Попробуем дать рекомендации по параметрам кодирования из всего вышеизложенного. Максимальный размер кадра для QVGA достаточно будет выставить 320х240. Причем, даже если дисплей Вашего КПК имеет VGA (640х480) разрешение, не имеет особого смысла с ним кодировать из-за небольшого физического размера экрана. По сути, размеры матрицы QVGA и VGA одинаковы и составляют на сегодняшний день примерно 3,5".
А вот с выбором битрейта дела обстоят сложнее. Дело в том — внимательный читатель уже, наверное, догадался, — что, чем динамичнее фильм, тем большее значение битрейта потребуется для обеспечение приличного качества картинки. На наш взгляд, можно для пробы начать со значения около 250 кбит/с, при этом час видео будет занимать чуть более 100 Мб.
Наконец, режим сжатия лучше использовать двухпроходной. Это позволит получить максимальное качество фильма при заданном битрейте, но за это придется расплатиться почти вдвое большим временем на кодирование фильма, чем при однопроходном.
Звуковая дорожка
Эра немого кино давно закончилась. Хорошо это или плохо — решайте сами, но даже в ту пору киносеансы проходили не в полной тишине, а под аккомпанемент пианино. Что уж говорить про наши дни! Хотя звуковой поток не так прожорлив, как видео, его все равно надо сжимать. Об основных форматах компрессии аудио подробнее можно почитать на 4pda.ru. Здесь же мы остановимся только на основных моментах.
В представленных ниже по тексту программах конвертации фильмов, для сжатия звука используются форматы wma и mp3. Обычно, если на выходе получаем файл *.wmv, то звуковая дорожка сжимается в wma, а если *.avi (MPEG-4), то звук жмется в mp3.
Чтобы Вы не выбрали, качество звука, как и в случае с видео, будет зависеть от выделенного для него битрейта. Чем больше, тем, естественно, качество будет лучше. Можно воспользоваться следующими рекомендациями: если фильм не музыкальный — обычно, о фильме хоть что-то известно еще до просмотра, хотя бы из описания, — то 64 кбит/с будет хорошим вариантом, причем можно согласиться и на моно-звук. Если это будет мюзикл, то лучше поднять битрейт раза в два. А частоту лучше не опускать ниже 44 кГц, иначе качество при этом пострадает еще больше. Впрочем, уши у всех разные (как и наушники :), поэтому, перекодировав несколько фильмов, Вы сможете подобрать комфортные для себя параметры.
Программы для конвертации фильмов
Существует большое количество программ такого рода, начиная с уже ставшей классической VirtualDub, до специализированных утилит, оптимизированных для работы с «карманным» видео. Достоинством таких утилит является простота использования. Обычно, требуется указать источник с фильмом и задать результирующий размер. Обратная сторона простоты — небольшое число параметров, на которые можно повлиять при кодировании видео, и, как следствие, несколько худшее качество.
Тем не менее, тому, кто только начинает свой путь в мир кодирования, или нет желания и времени разбираться со всеми настройками, начинать стоит именно с таких программ.
Из специализированных программ, можно отметить бесплатный PocketDivXEncoder (Сайт разработчика) и пришедшую ему на смену, но уже платную ($5.95), Lathe (Сайт разработчика), очень быстро сжимающие видео в формате DivX или XviD, а звук — в MP3. Обе программы имеют понятный и приятный интерфейс, позволяют осуществлять двухпроходное кодирование и имеют наборы готовых настроек под разные целевые устройства. Можно создать список обрабатываемых файлов со всеми настройками и потом запустить на выполнение. В качестве источника может быть как DVD, так и файл в формате MPEG.
PocketDivXEncoder
Lathe
Размеры программ:
PocketDivXEncoder — 7 Мб
Lathe — 10 Мб
Pocket-DVD Studio
Pocket-DVD Studio — это простое в обращении и мощное приложение для конвертирования фильмов DVD-качества в файл *.wmv или *.avi для просмотра на экране вашего КПК. При конвертации приложение специально адаптирует аудио и видеоряд. Интерфейс программы также рассчитан на начинающего пользователя. Для того, чтобы приготовить фильм к просмотру на КПК, необходимо просто нажать кнопку Open… и выбрать путь к файлу (*.wmv, *.mpg, *.avi, *.dat, *.rm) или к каталогу с DVD фильмом, установить разрешение (можно осуществить кадрирование картинки), выбрать язык фильма и субтитров, выставить степень сжатия или желаемый размер итогового файла, и нажать кнопку Record.
Сайт программы.
Размер: 7,5 Мб
Стоимость: $39.95
DVD to Pocket PC
DVD to Pocket PC — удобная программа для конвертации DVD-фильмов в формат Windows Media Video (WMV) для последующего просмотра на КПК. Возможен выбор качества изображения и звука. В DVD to Pocket PC есть встроенные предустановки, позволяющие на выходе фильм поместить на карту памяти 128 Мб. В общем, программа проста как 3 копейки. Удобно, когда нет времени или желания разбираться в настройках. Кроме DVD на входе может быть и отдельный видеофайл.
http://www.makayama.com/dvdtopocketpc.html
Размер: 12 Мб
Стоимость: $32.95
Pocket DVD Wizard
Программа Pocket DVD Wizard также умеет конвертировать DVD фильмы для последующего просмотра на Pocket PC. Не отличается от программ подобного рода ничем особенным. Выбираете разрешение, желаемый размер и… процесс пошел. Помимо DVD программа умеет конвертировать Mpeg и AVI файлы.
http://www.pocket-dvd-wizard.com/
Размер: 10 Мб
Стоимость: $28.95 (?16.95, €21.95)
SmartMovie
Стоит упомянуть также и программу SmartMovie. За этим названием скрывается видеоплеер для КПК и конвертор видео файлов на ПК. PC-конвертор SmartMovie на выходе выдает файл в *.avi, позволяет разделять файл на куски, а плеер все это просматривать. Программа использует системные кодеки, то есть можно жать тем же DivX или Xvid. Собственно, Xvid и предлагается использовать по умолчанию. Что касается настроек, так их минимум, зато также все просто и есть поддержка списка обрабатываемых файлов, аудиопоток сжимается только в mp3. Также, данная программа позволяет добавлять субтитры в конечный видеофайл.
http://www.lonelycatgames.com/mobile/smartmovie
Размер: 1,4 Мб
Стоимость: $24.99
Запись фильма на КПК
Итак, файл с фильмом мы получили, а как его теперь записать на КПК?
Существует несколько способов.
Первый из них самый простой и, как водится, не самый лучший. Заключается он в синхронизации КПК через ActiveSync и записи фильма на карточку. Основной недостаток этого способа — очень медленная скорость закачки. Максимум, чего удавалось добиться — 250 кб/с. Также, при таком способе часто случаются сбои во время записи файлов большого размера.
Второй вариант — купить картридер, и уже через него записать фильм на карточку, после чего вставить ее обратно в КПК. В этом случае запись будет производится с максимальной скоростью до 10 Мб/с. Недостаток здесь по существу один — надо покупать лишний девайс, однако, учитывая его небольшую стоимость (около 600 руб.) и полезность в хозяйстве (наверняка, есть еще фотоаппарат и другие устройства, использующие карты памяти), данный вариант будет наиболее привлекательным.
Третий путь — нечто среднее между двумя предыдущими, и заключается в установке на КПК программы Softick Card Export II (Сайт разработчика), стоимость $14.95). Принцип работы довольно прост: при подключении КПК к компьютеру, надо выбрать, в каком режиме будет использоваться карта памяти и само устройство. При выборе опции ActiveSync, КПК переходит в режим синхронизации, а при выборе SD Card — в режим внешнего накопителя. При этом передача файлов происходит намного быстрее, по сравнению с ActiveSync. Из недостатков отметим, что данная программа поддерживает устройства с процессорами Intel XScale PXA 25x и Intel XScale PXA 27x, а также наблюдаются некоторые глюки при работе.
Программы для просмотра фильмов на КПК
Pocket Media Player
Самый простой способ просмотра видео на КПК — воспользоваться встроенными в операционную систему возможностями. А возможность эта представляет собой Pocket Media Player, обладающий необходимым минимумом настроек, возможностей и характеристик. Однако, к сожалению, он воспроизводит видео только в формате WMV. Это очень сильно ограничивает его применение, потому что в Сети достаточно много фильмов выкладывается в формате MPEG-4. И здесь, как всегда, на помощь приходят программы сторонних разработчиков, обладающие большими возможностями, нежели продукты Microsoft.
The Core Pocket Media Player (Betaplayer)
TCPMP (The Core Pocket Media Player) — мощнейший бесплатный видео проигрыватель, который является дальнейшим развитием программы Betaplayer. Благодаря оптимизации, эта программа обеспечивает изрядный прирост производительности и позволяет воспроизводить видео высокого (по меркам КПК) разрешения на платформе Pocket PC без каких-либо дополнительных преобразований. Причем, программа поставляется с открытыми исходными кодами. Поддерживает все необходимые форматы файлов, аудио и видео кодеков. Есть все необходимые настройки, поворот картинки, просмотр в полноэкранном режиме, настройка изображения и др. Если возможностей не хватит, то на неофициальном сайте, посвященном TCPMP ( Неофициальном сайт) можно скачать дополнительные плагины, которых нет на официальном. Среди них поддержка звука в формате ААС и плагин для подключения внешних субтитров.
На сегодняшний день TCPMP является лучшим выбором для просмотра видео на КПК.
Официальный сайт.
Другие программы
Если вы не верите на слово и решили самостоятельно найти проигрыватель, который бы Вас устроил, стоит обратить внимание на следующие: PocketMVP (Pocket Music and Video Player), PocketTV и SmartMovie.
Где можно взять готовые фильмы?