GOM Encoder: на честном слове и на одном ядре

За последние три года перечень цифровой техники, сопровождающей меня в командировках, обновился радикально. Ноутбук поменялся три раза, телефон – уж и не вспомню сколько, а прошлой осенью компанию этой паре стал регулярно составлять планшетный ПК. Да что там, даже рюкзак сменился дважды – не выдерживают они моего графика поездок. И только одна спутница осталась прежней – Sony PSP.

Я в свое время основательно достал читателей восторгами по поводу данного устройства, поэтому брал долгий-долгий тайм-аут. За время тишины в эфире неоднократно пробовал найти альтернативу: то смотрел кино на iPad, то на телефоне, то даже на всеядном плеере с сенсорным экраном. Всё не то. Как я уже, кажется, писал, бОльшая диагональ экрана хороша дома или в поезде. А в самолете, автобусе и автомобиле приходится заботиться о соотношении диагональ-габариты-время автономной работы. И, по моему личному ощущению, ничего лучше PSP тут пока не придумано.

Но хочешь кататься красиво – люби и саночки возить. В смысле, видео в h.264 с нужным разрешением перегонять. Процесс этот за годы отлажен, NAS на двухъядерном Atom’е продолжает прекрасно справляться с возложенной задачей, но вот недавно мой коллега по увлечению просмотром кино на маленьких экранах предложил попробовать GOM Encoder. Говорит, и интерфейс очень хорош, и пресетов масса – просто идеальная программа!

GOM Encoder

У меня долго не доходили руки до теста, но вот сегодня скачал самую свежую на данный момент версию (март 2011 года), установил и… с трудом подобрал челюсть.

Нет, по поводу интерфейса вопросов не возникло – действительно, он лаконичен и вполне логично организован. Проблема лишь в том, что с настройками по умолчанию пользователь рискует а) получить на выходе фильм с искаженным соотношением сторон кадра и б) рассыпающееся на кубики изображение. Первое, в принципе, исправимо – надо лишь порыться в глубинах настроек. Зачем так делать, когда для PSP есть аж 6 предустановленных конфигурационных файлов, лично мне не очень понятно. Но, возможно, кому-то так просто интереснее. А вот картинка в кубиках – проблема посерьезнее. Почему-то по умолчанию движок «Качество видео» выставлен на 50%. Не обрадовавшись результату, я увеличил этот показатель до 100, отчего размер файла на выходе оказался в 1.7 раза больше оригинала! Ничего себе «пережал».

Ну и последнем гвоздем в гроб GOM Encoder стала «поддержка» многоядерности. Как вы, наверное, помните, на дворе вот-вот перевалит за половину 2011 год. А чудесные парни из Gretech Corp продают за $34.99 конвертер, использующий на Core i7 только ОДНО ядро из четырех возможных.

Красота, правда? Процессор, конечно, старается, повышает частоту, но все равно на каждый фильм уходит по получасу вместо обычных 8-10 минут.

Все это я доложил своему товарищу, а он вдруг возмутился: да как же так, у меня на Core 2 Quad полностью грузятся все четыре ядра!

Стал вычислять причины данного феномена и скоро сделал неожиданное открытие: да программа-то не знакома с Hyper-Threading! Если его в процессоре нет, все в порядке. Если есть – начинается очень странная чехарда по переброске нагрузки с ядра на ядро (хоть видео снимай), но в итоге загрузка CPU не превышает 24%, а в основном держится на 20-процентной отметке. И так на всех Core i3/i5/i7, вне зависимости от поколения.

Честно говоря, я такого раньше никогда не видел. Уж что-что, а Hyper-Threading программы обычно не пугает. Но вот – удалось. В качестве курьеза такой «энкодер» выглядит очень симпатично, но не дороговато ли за программу-шутку отдавать 35 долларов?

Ничего не поделаешь, придется остаться на бесплатном Xvid4PSP. Тем более, что за него я тоже заплатил – только поменьше и совершенно добровольно.
For more complete information about compiler optimizations, see our Optimization Notice.