![image](https://habrastorage.org/getpro/geektimes/post_images/a3d/3c0/018/a3d3c00180cdb0576886d368619244f9.jpg)
Думаю, многие знают, что HD (720p) H.264 видео так просто на нетбуке не посмотришь. Мощности Intel Atom просто не хватает на декодирование. Я использую свой Acer Aspire One в качестве видеоплеера во время командировок и длинных поездок и тоже с этим сталкивался. Есть несколько способов решить эту проблему:
- перекодировать с более низким разрешением/битрейтом
- использовать программные ухищрения
- использовать аппаратное ускорение
Первый способ слишком медленный и унизительный (т.к. типичен для портативных плееров вроде iPod и т.п.).
Второй — не универсален и ограничен. Мне известны два способа — установка кодека CoreAVC и опережающий воспроизведение буфер Crystal Player-а (см. Настройка нетбука на максимальную производительность для HDTV). В принципе, это вполне сносное решение для 720p. Однако, есть два больших минуса: 100% загрузки процессора и полная несостоятельность в случае с 1080p.
Третий кажется мне наиболее «правильным». Можно сразу купить нетбук с Nvidia ION — универсальное решение, которое дает дополнительные плюшки вроде вычислений CUDA и возможности играть в 3D игры (впрочем, удовольствие на маленьком экранчике сомнительное). К сожалению, Nvidia ION-powered нетбуки появились лишь недавно и пока еще дороги. Да и что поделать, если уже купил себе нетбук без всяких «понтов»?
Есть выход! Называется он Broadcom Crystal HD, и «ускорить» им свой EEE PC или Aspire One вполне реально и дешево.
Корпорация Broadcom год назад выпустила карту Crystal HD на интерфейсе Mini PCI Express, которая предоставляет аппаратное ускорение воспроизведения H.264 и MPEG 2,4 (а по слухам и Flash). Прелесть вся в том, что микросхемку можно всунуть в свободный PCIe слот нетбука. Дальше пойдет речь о том, как это чудо заполучить, как настроить и как оно работает.
Все, о чем дальше пойдет речь ниже, может при наличии очень кривых рук привести к потерям как денег, так и нетбука в целом.
Рассказывать я буду на своем примере. Моя конфигурация:
Acer Aspire One AOD 250:
Intel Atom Single Core N270 (1.60 ГГц/ 512 КБ/ FSB 533), 10.1" SD (1024x600), 2GB RAM
Windows 7 + Xubuntu 10.04 (beta)
Что нам потребуется
- наличие свободного mini PCIe слота
- около 30$ на PayPal или уже купленный Crystal HD
- если будете покупать — готовность ждать 2 месяца *
- специфический софт под Windows
- терпение и крепкие нервы (само собой)
* если Почта России будет работать по-прежнему
Ссылка на mini PCIe с википедии.
![image](https://habrastorage.org/getpro/geektimes/post_images/14e/849/7e2/14e8497e24ea3a9688eb3a54b154148b.jpg)
Обычно у дешевого нетбука без Yota есть свободный слот под 3G карту, он как раз и есть нужный. В моем случае он был на задней стороне, слева от отсека для смены оперативной памяти. Точно знаю, что похожее есть и у старичка AOD150, но там нет коннектора (т.е. куда непосредственно втыкать плату). Если слота нет, а вставить микросхемку очень хочется, можно разобрать нетбук, заменить wifi-карту (которая в подавляющем большинстве случаев mini PCIe) на Crystal HD, а проблему с беспроводным интернетом решить покупкой USB wifi донгла.
Я покупал карту на eBay. Не исключено, что она продается на каких-то радиорынках. Времени бегать/узнавать у меня не было, зато были деньги на PayPal.
Список софта я опишу дальше.
Получаем Crystal HD
Покупаем микросхемку на eBay. Например здесь. Я покупал 2 месяца назад, и стояла она 23 бакса включая доставку. Сейчас видимо запас их подходит к концу, и стоят они гораздо дороже. Обращаю внимание, что есть 3 разновидности модели — 70010 (старая), 70012 (как у меня), 70015 (самая новая и крутая по фичам). 70012 вполне хорошо работает.
Ждем около 2 месяцев, пока ее доставят (мне прислали из Сингапура).
Заставляем железо работать
Когда я радостно вставил Crystal HD в свой нетбук, то сначала жестко обломался, потому что ее не видел ни Windows 7, ни Xubuntu. Команда
lspci | grep Broadcom
показала шиш с маслом. Не надо расстраиваться, друзья! Возможно, в этом случае дело не в том что микросхемку облучили чем-то на таможне или долбанули статикой в самолете, а банально в старой версии BIOS вашего нетбука. Действуя интуитивно и наугад, я перепрошил BIOS своего AOD250 с 1.06 до 1.27. О чудо! Карта определилась,
lspci | grep Broadcom
выдал
Multimedia controller: Broadcom Corporation BCM70012 Video Decoder [Crystal HD] (rev 01)
Windows 7 попытался при загрузке установить драйвер на Multimedia controller, но, ясное дело, у него ничего не вышло. Переходим к списку необходимого софта:
- драйвер с сайта Broadcom
- для проигрывания MKV — Haali Media Splitter
- для проигрывания звука — AC3 Filter и CoreAAC
- если у вас Windows 7 — Windows 7 Preferred Filter Tweaker
- для диагностики кодеков — GraphStudio
Тем, у кого стоит CoreAVC + Haali Matroska (Media) Splitter (как у меня) и тем, у кого стоят CCCP-ы, K-Lite Codec Pack-и и т.д. — снести все под корень.
Качаем, ставим драйвер (32-bit).
Замечу, что именно в такой последовательности.
Возимся с кодеками
Ставим Haali Media Splitter (для контейнера MKV). Ставим AC3Filter (для Dolby AC3) и CoreAAC (для AAC).
Может, конечно, у некоторых счастливчиков после этого все сразу заработает, но я был явно не в их числе. При открытии первого попавшегося под руку 720p mkv (h.264) Windows Media Player-ом (и Media Player Classic Home Cinema тоже) я получил давно знакомые тормоза и 100% CPU. Здравствуй, codec hell.
Открыв этот файл в GraphStudio (File->Add Media file), я увидел, что h.264 видео поток по-прежнему декодируется встроенным в Windows 7 кодеком. DirectShow фильтр от Broadcom стоял. Убедиться в этом можно, найдя «Broadcom Video Decoder» в списке Graph->Insert filter…
Размеется, перезагрузка ничего не поменяла. На помощь приходит Windows 7 Preferred Filter Tweaker!
Запустив его, переключаем h.264 и MPEG2 с Microsoft на Broadcom. Видимо, в дальнейшем разработчики этой тулзы добавят заявленную поддержку Xvid, VC-1 и Divx для Broadcom-а, но на момент написания этого не было. Жмем Apply, в следующем окне везде ставим галки (отключаем все кодеки Microsoft, чтобы потом не мешались). Вуаля! GraphEdit показывает, что h.264 декодируется Broadcom-ом, звук — CoreAAC, Windows Media Player и др. уверенно показывает видео со звуком.
![image](https://habr.com/images/px.gif#%3D%22http%3A%2F%2Fimg63.imageshack.us%2Fimg63%2F8044%2Fgraphqm.png%22)
Возможно, у тех, у кого стоит Windows XP, такие проблемы не возникнут.
Мне так и не удалось заставить Broadcom играть Xvid, даже собрав «блоксхему» в GraphEdit-е. Быть может, я что-то упустил и вам это удастся. Неспроста в Windows 7 Preferred Filter Tweaker разработчики не добавили Broadcom в качестве Xvid-декодера. Я удовлетворился установкой обычного Xvid-а c xvid.org.
Настройка Crystal HD под Xubuntu тянет на отдельный топик…
Полевые испытания
… проводились на Windows Media Player 12, экране нетбука и питании от сети.
Media | Нагрузка CPU, avg | Нагрузка CPU, max | Качество |
720p MKV (3216MB, 2:18) Video: AVC 1280x544 24.00fps Audio: AAC 48000Hz 6ch |
30% | 40% | Отличное |
1080p MKV (8421MB, 1:43) AVC 1920x816 23.98fps Audio: Dolby AC3 48000Hz 6ch |
30% | 40% | Отличное |
DWM (эффекты Aero) ел до 15% CPU.
Под «отличным» качеством воспроизведения я имел в виду синхронизацию видео со звуком, отсутствие отставаний и рывков, насыщенность цвета, в общем обычный нормальный показ фильма. Время работы от стандартной 3-ячеечной батареи составило 2 часа в случае с 720p и 1 час 55 мин в случае с 1080p. Crystal HD сильно греется (не просто так на нем была специальная термонаклейка, рассеивающая тепло).
Обновление: я протестировал Crystal HD на внешнем мониторе. Youtube. Вердикт — «отлично». Монитор был SyncMaster 2223nw 1680x1050, 1080p видео — фрагмент фильма №2.
При обычной работе с нетбуком карта совсем не греется и не сказывается на времени автономной работы.
Итог
Broadcom Crystal HD годится для решения проблемы воспроизведения видео высокой четкости на нетбуках с ограниченными ресурсами процессора. Это относительно дешево и не имеет явных минусов.