CUD-CUDA, или почему не надо жать видео видеокартой

    Несколько месяцев назад, разочаровавшись в утилите Badaboom, я отказался от мысли использовать видеокарту для кодирования видео в формат Sony PSP. При относительно небольшой экономии времени не радовали ни размеры файла на выходе, ни — особенно! — качество картинки. Жал себе и жал средствами бесплатной XViD4PSP, и очень мне это дело нравилось. У меня давно стоит самосборный NAS на двухъядерном Intel Atom. Зарядишь его в ночь, он себе и шлепает потихоньку.

    Но вот вчера вечером получил письмо от компании Nvidia, в котором рапортовалось о выходе новой версии программы Movavi Video Converter с порядковым номер 9. Там еще было написано, что теперь конвертер «получил ускорение до 4-х раз». Чего ускорение — не уточнялось, но я решил, что скорости сжатия видео по сравнению с сжатием посредством CPU. Плотоядно потирая руки, я скачал новинку и натравил ее на файл с молодежной комедией «Юные проказницы в Лондоне» (детям не смотреть!), которая длится 2 часа 57 минут.

    Видеокарта у меня сейчас стоит не из очень слабых — GeForce 275 с 240 потоковыми процессорами и частотой ядра 635 мегагерц. Так вот на ней кино пережималось чуть меньше 23 минут. Чип разогревался до 80 градусов, загрузка CPU составляла жалкие 22-25 процентов. На выходе получился гигабайтный файл, запустив который я остался, мягко говоря, разочарован. Все недостатки «бадабума» были налицо: «убитые» цвета, общая мутность картинки, подергивания в динамичных сценах. Смотреть, конечно, можно, но, учитывая, что программка стоит 29 долларов 95 центов, хочется как-то немного большего.

    Запускаю XviD4PSP — абсолютно, замечу, бесплатный. Программка пару раз ненавязчиво предлагает перевести продавцу любую сумму по собственному усмотрению, но если не хочешь платить, никто тебя не заставит (замечу, я сам таки перевел, потому что настолько кошерные вещи надо поддерживать). Сжатие того же файла в режиме HQ Ultra заняло 35 минут. Замечу, это режим достаточно суровый, обеспечивающий отличное качество, а если последнее не критично (например, при пережатии сериала средней паршивости), можно сэкономить примерно 30-40 процентов времени. Но в данном случае решил на компромисс не идти.

    Как нетрудно подсчитать, ни о каком четырехкратном ускорении речь даже идти не может. И двухкратным не пахнет. Да, процессор у меня нехилый — Core i7 965, однако ему уже больше года стукнуло, и с производства старичка сняли. Между тем, его чуть менее производительный собрат Core i7 920 в рознице можно найти даже дешевле, чем GeForce 275.

    Да, наверное, по сравнению с каким-нибудь Core 2 Duo E6300 ускорение будет посерьезнее. Ну или со старым двухъядерником AMD. Вот только качества картинке это не добавит. А к картинке, полученной при сжатии средствами CPU, у меня претензий нет. Четкая, цвета правильные, подергиваний не замечено. Размер файла при этом даже немного (на 40 мегабайт) поменьше, чем получился у Movavi Video Converter.

    Короче, снова все, как в анекдоте про секретаршу, которая печатала 800 знаков в минуту, но на выходе та-акая ерунда получалась… Даже и не знаю, как за такой результат можно брать деньги. Впрочем, дают ли?..
    Метки:
    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 70
    • +4
      Сравнительных скриншотов я так понимаю нету по причине
      файл с молодежной комедией «Юные проказницы в Лондоне»
      ?
      • 0
        Там очень молодежная и очень комедия :)
      • +2
        Было бы неплохо взглянуть на параметры кодирования которые вы использовали в обоих случаях.
        • –4
          И там, и там — по умолчанию.
          • +7
            Дык надо бы посмотреть на «умолчательные» параметры.
            Видео кодировать — это вам не мыло по тазику гонять.
            • –1
              А смысл? Я хорошо знаю, что HQ Ultra — это хорошо :)
              Что же до Movavi, то там настроек негусто, как и во всех программах, жмущих средствами GPU.
              • +1
                Ну хотя бы битрейт то надо одинаковый выставлять. Я уже не говорю про размер картинки и значение количества фреймов в секунду.

                Или вы думаете что значение «Среднее качество» — может быть объективным параметром для разных программок?
                • –1
                  Битрейт одинаковый :) Я искренне полагал, что это вычисляется по примерно одинаковому размеру файлов на выходе. 40 мегабайт разницы — это что-то вроде погрешности.
                  • +1
                    Битрейт не является единственным параметром, определяющим качество. Разные алгоритмы можно использовать для сжатия.
                    В общем, необъективный у вас тест :)
                    • –1
                      Можно привести примеры алгоритма качественного сжатия на видеокарте? :)
                      • +1
                        Алгоритм не зависит от исполнителя. Тот же XVid можно в разных режимах запустить.
                        А где он будет исполняться — по барабану, хоть на видеокарте, хоть на телефоне.
                        Сравнивать качество сжатия 2х разных кодеков и по этому судить об исполнителе как минимум неразумно :)
                        Вот возьмите реализации XVid и их сравните — будет другое дело.
                • 0
                  Ну и не забывайте что PSP понимает не один единственный формат видео.
                  Ваши програмки могли кодировать ваш фильм двумя разными кодеками с абсолютно разным набором параметров.

                  А для того что бы делать такие выводы как вы, надо что бы это все было одинаковое.

                  Немного инфы о кодировании видео, а также о заблуждениях и ошибках dvdtocd.info/cont.htm
                  • –2
                    Не, вы правда думаете, что среднестатистический пользователь, купивший программу за 30 баксов, начнет яростно копаться в параметрах? :)

                    Понятно, что если потратить кучу времени, оно станет чуть бодрее.
                    Но зачем его тратить, когда бесплатный XviD4PSP жмет чуть дольше, но СРАЗУ качественно?
                    • 0
                      Среднестатистический пользователь который кодирует видео просто обязан заглянуть в настройки кодировщика если он надеется получить хороший результат.
                      • –1
                        Да ну? А чего же XVid4PSP без этого обходится? :)
                        • +1
                          Потому что в XVid4PSP набор параметров «по умолчанию» вам подходит больше.
                          И в первую очередь потому что разработчик нацелился на конкретного человека: «Владельца PSP».
                          И может предугадать какие параметры кодирования надо выставить «по умолчанию» именно для вас.
                          • –2
                            Коллега, вы эту программку пробовали? Там от PSP только название :)
                            • 0
                              Один раз было дело :)
                              А вот вы в этом Movavi Video Converter пресет выбирали для PSP?
                              • 0
                                Так точно. Причем вариант с high resolution. Совсем по умолчанию она почему-то жмет с разрешением ниже экранного.
                                • +1
                                  Ну вобщем если вам интересно почему так произошло, выложите сюда подробные настройки которые вы использовали и мы вместе посмотрим что было причиной.
                                  • –2
                                    Дык результаты ровно те же, что и на Бадабуме. Если поднять битрейт раза в три, картинка будет ничего, но и размер файла не порадует.
                                    Вопрос исключительно в точности «процессоров» в видеокарте, вот и все.
                                    • 0
                                      Я низнаю. Нада смотреть :)
                                      • 0
                                        Вы создали целый топик именно потому что были недовольны результатом.
                                        Вы хотите разобраться в вопросе или просто пришли пожаловаться?

                                        Както вы подозрительно скрываете эти параметры. Я уже два раза у вас их прямым текстом прошу а вы все увиливаете.
                                        • –1
                                          Коллега, я на работе, а компьютер со всем этим делом — он дома.

                                          Видеокарты НЕ ПРИГОДНЫ для качественного и эффективного сжатия видео. В этом можно разбираться до потери пульса, но пока не будут предприняты определенные усилия самим разработчиком чипов, ситуация не изменится.

                                          Собственно, об этом и был пост. О том, что не надо вестись на сказки про быстрожимов.
                                          • +1
                                            Вы в топике связываете плохое качество картинки с тем фактом что программа использует для кодирования видеокарту а не процессор.

                                            А я какбэ пытаюсь вам обяснить что ваш вывод ошибочен и что среда расчета не может никак влиять на качество картинки.

                                            Вестись не вестись это конечно дело личное но количество коментариев о том что вы делаете поспешные выводы разве вас не смущает?
                                            • –1
                                              Ну, я вижу сомнения людей, которые сами подобными задачами не интересовались вплотную.
                                              То есть не прозвучало «Хе, так ты просто не то делаешь — надо вот так».

                                              Между тем, то, что видеокарты жмут паршиво — это известный факт. Не зря в Snow Leopard возможности видеокарты не используются именно для сжатия видео. Для других задач — да.

                                              Смысл поста в том, чтобы предостеречь людей от покупки бадабумов и показать бесплатную альтернативу. Это важно.
                                              • 0
                                                Я кажется придумал понятный вам аргумент. :)

                                                Вот есть процессоры x86 и x64, а есть еще SPARC и еще ARM и еще двести тыщ разных процессоров.
                                                И все они могут кодировать видео поток. И результат будет одинаковый.
                                                Видеокарта — это такой же процессор. Только архитектура у него другая.
                                                • 0
                                                  Могут, но почему-то не все кодируют. И коллега чуть ниже уже объяснил — почему.
                          • +1
                            И цена программы вовсе не делает ее проще.
                            Взгляните на фотошоп
                            • 0
                              вы не поверите, но для меня фотошоп намного легче того же пэйнта
                              • 0
                                Ну вы же понимаете в чем разница между субъективной и объективной оценкой?
                                • 0
                                  оно то так, но справедливо и обратное, т.е. «низкая цена скорее всего не делает программу проще»
                                  • 0
                                    тем паче бесплатность, естесственно есть и исключения, хотя бы google picasa
                • +3
                  не важно, чем жать, CPU или GPU, всё зависит от софта, если он криво написан — то GPU не виноват
                  • –1
                    Неужто Nvidia рекомендует криво написанную программу?
                    • +3
                      Для них главное, что она работает с CUDA, остальное не важно.
                      • 0
                        А разве это хорошо?
                        • +1
                          Плохо, конечно, я никогда не одобрял слишком агрессивной политики nVidia… впрочем, как и слишком пассивной политики ATI.
                          • 0
                            Ну может с выходом FERMI что-то наладится.
                  • +10
                    Причем здесь CPU/GPU? С каких пор качество сжатой картинки зависит от процессора, а не от алгоритма сжатия?
                    • 0
                      Ни с каких пор! Но почему-то алгоритмы, написанные для GPU, ни фига не радуют.
                      • +2
                        Алгоритмы одинаковые. Если бы были разные алгоритмы ваше видео не проигрывалось бы на PSP.
                        • +1
                          Мы точно не путаем формат с алгоритмом?
                          • +1
                            Ну судя по всему кто то из нас путает :)

                            Предположим существует некоторый алгоритм. Например алгоритм сортировки массива пузырьком.
                            Вне зависимости от того какая железка будет выполнять код (видеокарта или процессор) данные в массиве отсортируются одинаково.

                            В нашем случае есть алгоритм кодирования видео по которому действует программа.
                            И снова не важно где выполняется этот код, результат должен быть одинаковый.
                            • –1
                              Тогда чего же он зараза такая не одинаковый при одинаковом битрейте?
                              • +3
                                Я вам рекомендую почитать какую-нибудь техническую литературу.
                                Но битрейт это не единственный параметр который влияет на качество картинки.
                        • 0
                          Алгоритмы одинаковые, реализация разная. Значительно проще написать программу для CPU, чтобы она быстро и эффективно работала, чем для GPU.
                          • 0
                            Для этого ж и придумали CUDA. Что бы было легко.
                            • 0
                              Легче, чем через программирование шейдеров, но все равно сложнее, чем для CPU.
                              Надо ж придумать реализацию так, чтобы данные боль-мень равномерно распределились по мультипроцессорам видеокарты.
                          • 0
                            Тут скорее одинаковые алгоритмы для сохранения видео, то есть формат видео одинаков, а вот алгоритм поиска движения и т.д. совсем не обязаны совпадать.
                          • +1
                            Ну так это проблемы алгоритмов, а не GPU. Я вот всё жду когда в x264 реализуют использование GPU.

                            А по поводу ускорения при кодировании видеокартой (про качество пока забудем) — попробуйте перекодировать какой-нибудь большой ремукс fullHD в что-то размером поменьше, но с тем же разрешением, попробуйте и только процессором и видеокартой, думаю, что разница во времени будет более очевидна.
                            С другой стороны, если там действительно такое паршивое качество, то ведь в x264 можно занизить поиск движения так, что он кодировать в плохое качетсво будет раза в три быстрее…
                            • 0
                              * использование для тех параметров, с которыми обычно кодирую я…
                        • 0
                          что то я в гугле не нашел такой фильм
                          • +1
                            Young Harlots in London
                            • +2
                              спасибо. гляну. посмеюсь. расскажу
                              • 0
                                Главное — не подпускать детей.
                          • 0
                            а что за самосборный нас?
                          • 0
                            как относятся случайные свидетели к просматриваемому на ПСП фильмам данного жанра?
                            • 0
                              Не знаю, никогда не смотрел.
                            • +2
                              О энкоде средствами видеокарты на данном этапе не может быть и речи. Качество просто никакое. Самый лучший энкодер на данный момент в h.264 — x264.
                              Говорю это как энкодер с опытом и со стареньким Q6600
                              • –1
                                Спасибо за поддержку. А то тут граждане без опыта почему-то сомневаются :)
                                • +1
                                  Насколько я знаю, в CUDA-энкодерах используется только baseline профиль, это просто ужасно.
                                • 0
                                  У видеокарт аппаратный энкодер что ли?
                                  • 0
                                    Ну, если он есть в обычных процессорах, то да :)
                                    • 0
                                      Да кто их знает? Сейчас что попало и куда попало могут засунуть. )

                                      Всё же наверное правильнее говорить о несовершенстве софта для кодирования видеокартой.
                                      А то я сожму видео в MPEG1 на Intel'овском процессоре и в H.264 на AMD'шном и буду утверждать, что Intel'овские процессы совершенно не годятся для кодирования видео.
                                      • 0
                                        Конечно.
                                        Только в данном-то случае пережимался один и тот же файл в один и тот же формат.
                                        • 0
                                          Качество результата и скорость кодирования сильно зависят от параметров кодирования даже для одного и того же «формата».

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.