Ответить
  • Rhezus Клуб СамоделкиныхАвтор темы
    офлайн
    Rhezus Клуб Самоделкиных Автор темы

    29418

    23 года на сайте
    пользователь #5127

    Профиль
    Написать сообщение

    29418
    # 19 ноября 2008 18:48 Редактировалось Rhezus, 7 раз(а).

    В связи с тем, что HD контент на данный момент стал вполне доступен и цены на большие панели стали вполне адекватными - назрела необходимость как-то воспроизводить этот контент.

    Первый и самый простой вариант - использовать специально заточенный под это дело плеер (тема про выбор данных плееров здесь http://forum.onliner.by/viewtopic.php?t=598355&start=0. У такого варианта есть как свои плюсы, так и недостатки.

    Второй вариант - использовать для этого т.н. HTPC (Home Theatre Personal Computer). Подробнее про концепцию HTPC можно почитать хотя бы тут http://ru.wikipedia.org/wiki/HTPC

    Собственно, здесь предлагаю обсуждать как железо (корпус и его начинка, системы дистанционного управления и т.д.), так и софт (оболочки, плееры, кодеки и пр) для создания полноценного функционального HTPC.

    Существующие медиаоболочки для HTPC http://forum.onliner.by/viewtopic.php?p=9718272#9718272

    Если проблему можно решить за деньги, то это не проблема - это расходы.
  • badguy Паяльник & Отвертка TEAM
    офлайн
    badguy Паяльник & Отвертка TEAM

    23969

    23 года на сайте
    пользователь #6556

    Профиль
    Написать сообщение

    23969
    # 24 августа 2009 16:22

    svin0, блин. я вам про фому, а вы мне про ерёму. у вас не установлен кодек с аппаратным декодированием мпег2. поэтому такая загрузка. может достаточно найти декодер, который задействует штатные аппаратные возможности вашей видяхи. ибо на мпег2 ХД видео сложно будет улучшить, не сильно он к такому контенту предрасположен.

  • Wolfheart FBY Team
    офлайн
    Wolfheart FBY Team

    28105

    23 года на сайте
    пользователь #3971

    Профиль
    Написать сообщение

    28105
    # 24 августа 2009 16:44

    badguy,

    Блин встроенный в видеокарту кодек не всегда лучший по качеству. Если погуглите - легко найдете сравнение кодеков mpeg2.

    Wur qanar, wur stilor, wur kas! Когда ж вы, ..., научитесь! (с) Gwynbleidd. I have the simplest tastes. I am always satisfied with the best (c) O.Wilde
  • ChelodoiMolovek Senior Member
    офлайн
    ChelodoiMolovek Senior Member

    3920

    19 лет на сайте
    пользователь #61746

    Профиль
    Написать сообщение

    3920
    # 24 августа 2009 17:15
    svin0:

    badguy:

    никакого отношения к декодированию видео не имеет (хотя теоретически можно и видео задекодить, просто смысла нету).

    Имеет непосредственное отношение и есть смысл. Под это дело написано немало софта.

    Загрузка пентиума 4 630 3ГГц (не самый слабый процессор даже на сегодняшний день) составляет ~45% при просмотре Хистори ХД 1080i mpeg2 с 15w, поток ~30Мбит/с. Как уже говорили выше, coreavc снижает загрузку ЦП с 50% до 10% на mpeg4 hd с включенной опцией использования cuda.

    так если тебе главное проц разгрузить при просмотре, именно в CUDA нет необходимости. попробуй вот ЭТО

    самодельная сборка KMPlayer с целой кучей разных декодеров, многие поддерживают мпег-2 видеокартой (DXVA), с CUDA нету, наверно нету таких декодеров. а может их нету потому, что DXVA делает это хорошо и лучше не нужно. :)

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

  • badguy Паяльник & Отвертка TEAM
    офлайн
    badguy Паяльник & Отвертка TEAM

    23969

    23 года на сайте
    пользователь #6556

    Профиль
    Написать сообщение

    23969
    # 24 августа 2009 17:48

    Wolfheart, для мпег2 в разрешении ХД разницы вы фактически не увидите. вот для SD - да. там она может быть коллосальной при правильной программной постобработке. а на ХД - фиг. ибо кодек такой, не точился он под высокие разрешения изначально. поэтому испоганить картинку сильно не могёт, но при этом зато поток весьма толстый получается. для ХД нужны совсем другие кодеки, которые для него гораздо более приспособлены. вот они дают при малом потоке весьма качественную картинку. а с мпег2 ХД - либо зажмёшь до низкой скорости и никакая постобработка не спасёт, либо толстый поток и постобработка уже не нужна. к тому же пользуют его только единицы, типа кривых сат-провайдеров. поэтому повода для написания декодера под мпег2 с использованием cuda для софтописателей особого смысла нету. вот энкодеры - да. пишут, и весьма активно. ибо это позволяет получить ускорение в кодировании видео в 5-10 раз. а распаковка видео - главное что бы в реалтайме успевало. 45% загрузки - это двойной запас для реалтайма.

  • bogeyman Senior Member
    офлайн
    bogeyman Senior Member

    1339

    17 лет на сайте
    пользователь #137338

    Профиль
    Написать сообщение

    1339
    # 24 августа 2009 18:44

    badguy, судя по всему, Вы - "в теме". Может быть сможете пояснить:

    Два спутниковые ресивера на разных чипах, допустим Conexant и STi. На входе один и тот же сигнал 1080i AVC. На выходе у обоих - сигнал 1080i по HDMI. Существует ли блок/причина в тракте ресиверов после демодуляции и до TMDS-передатчика, которые могут привести к тому, что качество выходных 1080i сигналов у ресиверов будет различаться? Явный брак ресиверов не рассматриваем, исходим из того, что они безглючные и мощность достаточна для беспроблемного декодирования AVC. Качество сигналов оцениваем на одинаковых ТВ, с одинаковыми настройками. Пытаемся увидеть различия в "прозрачности", "сочности", глубине цвета и ещё чем-нибудь.

  • badguy Паяльник & Отвертка TEAM
    офлайн
    badguy Паяльник & Отвертка TEAM

    23969

    23 года на сайте
    пользователь #6556

    Профиль
    Написать сообщение

    23969
    # 24 августа 2009 18:50

    bogeyman, разница скорее всего в прошивке декодера. точнее в алгоритме. плюс зашитых параметрах по умолчанию. точно так же как два ЖКИ телевизора с одной и той же матрицей (матрицы делают не так много производителей), но от разных производителей и на разных шасси - будут выдавать разную картинку.

    да и у тех же самсунгов или лыж настройки картинки по умолчанию для европы и для азии разные. хотя телевизоры могут быть ну абсолютно одинаковые в плане железа.

    да и что говорить - та же картинка на одном и том же компе с одним и тем же монитором при использовании аппаратного декодирования в зависимости от видеокарты будет разной. даже в пределах одного производителя видюх. вот если пару монитор-видюха откалибровать по цветовым схемам и использовать программное декодирование - тогда да. картинка будет одинаковая.

  • bogeyman Senior Member
    офлайн
    bogeyman Senior Member

    1339

    17 лет на сайте
    пользователь #137338

    Профиль
    Написать сообщение

    1339
    # 24 августа 2009 19:17

    badguy, про калибровки я понял. А вот подробнее о прошивке декодера. Зависит ли от AVC-декодера качество декодированного видео? Я так понимаю, что у разных чипов (STi, Conexant, Sigma, Broadcom и тп) - разные аппаратные декодеры. Какие параметры выходного видео они могут выдавать по-разному и могут ли они вообще изменять какие-либо параметры? Качество закладывается при кодировании, а при декодировании есть влияние на качество? Или реализации декодеров определяют только необходимые мощности процессоров для беспроблемного декодирования?

    ИМХО, надо извлечь из AVC потока заложенные туда цифры. Разве извлекая их оттуда, их можно как-то изменить?!

    Мое любопытство в связи с тем, что очень часто приходится слышать: Заменил спутниковый ресивер А на ресивер В - картинка стала супер - прозрачная, чистая и тп!

    Я понимаю, что такое (или что-то подобное) возможно в случае применения upscale/downscalе. Или если речь идет об аналоговых соединениях. Но это говорят применительно к 1080i>1080i через HDMI.

  • badguy Паяльник & Отвертка TEAM
    офлайн
    badguy Паяльник & Отвертка TEAM

    23969

    23 года на сайте
    пользователь #6556

    Профиль
    Написать сообщение

    23969
    # 24 августа 2009 19:44

    bogeyman, так как кодирование видео в рассматрвиаемом нами случае - это кодирование с потерями. то логично предположить что при восстановлении картинки могут применятся различные алгоритмы (точнее их различные реализации которые оптимизированы под разные мощности). которые зависят от некоторых заложенных разработчиком констант плюс основываясь на некоторых ранее полученных результатах обработки. плюс к этому - каждая железная реализация - есть оптимизация исходного алгоритма под мощности железа. часть кода могут просто напросто убрать, дабы увеличить быстродействие либо уменьшить объём используемой памяти. при этом мы получим небольшое ухудшение картинки. а другие могут например наоборот - за счет того что железо имеет больший потенциал - реализовать дополнительные фичи, типа улучшайзерных фильтров.

    и всё это основано на том что картинка сжата с потерями. ибо видео сжатое без потер занимает в разы больше места. при этом качество не настолько становится лучше чем сжатое спецалгоритмами. это как картинка в pcx или сжатом bmp и в jpeg. на экране разница видна только при пристальном изучении (если не переборщить к качеством). а размер - в разы, иногда в десятки а то и сотни раз.

  • Дуремар Senior Member
    офлайн
    Дуремар Senior Member

    37504

    25 лет на сайте
    пользователь #55

    Профиль
    Написать сообщение

    37504
    # 24 августа 2009 20:25

    Зависит ли от AVC-декодера качество декодированного видео? Я так понимаю, что у разных чипов (STi, Conexant, Sigma, Broadcom и тп) - разные аппаратные декодеры.

    вся разница что встречалась это макроблокинг (или квадраты пресловутые ) их может быть чуть больше чуть меньше но разница на грани восприятия , ну и основное это уровень черного - почему то везде на Sti или конексанте какой то херовый черный и никак не регулируется (в дешевых тюнерах по крайней мере ) на сигме и броадкоме с черным все ок

    Никогда такого не было и вот опять !
  • Wolfheart FBY Team
    офлайн
    Wolfheart FBY Team

    28105

    23 года на сайте
    пользователь #3971

    Профиль
    Написать сообщение

    28105
    # 24 августа 2009 20:27

    badguy,

    вот для SD - да. там она может быть коллосальной при правильной программной постобработке.

    Я в общем-то в курсе. Именно поэтому и говорю, что можно было бы и реализовать средствами CUDA. Хотя, учитывая повальный переход на HD - едва ли кому-то из коммерческих производителей это интересно. Если только ffdshow реализует...

    Wur qanar, wur stilor, wur kas! Когда ж вы, ..., научитесь! (с) Gwynbleidd. I have the simplest tastes. I am always satisfied with the best (c) O.Wilde
  • bogeyman Senior Member
    офлайн
    bogeyman Senior Member

    1339

    17 лет на сайте
    пользователь #137338

    Профиль
    Написать сообщение

    1339
    # 24 августа 2009 21:05

    badguy, Дуремар, спасибо, я понял о чем вы.

    Но у меня остается ощущение (наверное, от незнания деталей), что при декодировании должны извлекаться абсолютно все цифры (ни больше, ни меньше), заложенные в поток при кодировании. То есть декодер должен восстановить один к одному поток, сформированный кодером. Другое дело, что один декодер требует большей вычислительной мощности, а другой - меньшей.

    У меня на компе встроенная видеокарта, все процессы декодирования выполняют процессор и софтовый декодер. Меняю кодеки и не могу найти хоть какую-нибудь разницу в видео. За исключением "тяжелых" кодеков, которым не хватает мощности процессора, и поэтому видео идет рывками.

    Ладно, не буду дурить голову себе и вам. Относительно "себе" сомневаюсь :)

  • Дуремар Senior Member
    офлайн
    Дуремар Senior Member

    37504

    25 лет на сайте
    пользователь #55

    Профиль
    Написать сообщение

    37504
    # 24 августа 2009 21:36

    То есть декодер должен восстановить один к одному поток, сформированный кодером. Другое дело, что один декодер требует большей вычислительной мощности, а другой - меньшей.

    еще постпроцессинг есть в ряде чипов - правда работает ли он для HD я не в курсе

    Никогда такого не было и вот опять !
  • Wolfheart FBY Team
    офлайн
    Wolfheart FBY Team

    28105

    23 года на сайте
    пользователь #3971

    Профиль
    Написать сообщение

    28105
    # 24 августа 2009 22:22

    bogeyman,

    Но у меня остается ощущение (наверное, от незнания деталей), что при декодировании должны извлекаться абсолютно все цифры (ни больше, ни меньше), заложенные в поток при кодировании. То есть декодер должен восстановить один к одному поток, сформированный кодером.

    Это справедливо только для случаев кодирования без потерь (lossless). Ни mpeg2 ни mpeg4 ни AVC (который, по сути, тоже мпег4 ;) ) - таковыми не являются. Т.е. любой видеокодек из распространенных бытовых - уже потерял часть исходной информации и качество воспроизведения зависит от алгоритмов ее восстановления. Именно поэтому они и отличаются. Это достаточно ярко можно увидеть на примере спутникового тюнера в виде PCI-карты - когда в проге подсовываешь разные декодеры - результат налицо.

    Дуремар,

    еще постпроцессинг есть в ряде чипов - правда работает ли он для HD я не в курсе

    Работает. Не знаю как в чипах, а в софте - работает.

    Wur qanar, wur stilor, wur kas! Когда ж вы, ..., научитесь! (с) Gwynbleidd. I have the simplest tastes. I am always satisfied with the best (c) O.Wilde
  • badguy Паяльник & Отвертка TEAM
    офлайн
    badguy Паяльник & Отвертка TEAM

    23969

    23 года на сайте
    пользователь #6556

    Профиль
    Написать сообщение

    23969
    # 25 августа 2009 01:41

    bogeyman, дык из потока цифры то и извлекаюццо одинаково у всех. но потом над этими цифрами специальными математическими алгоритмами производятся вычисления и уже потом строится картинка. если процессорной мощности и памяти у нас валом - можем разжать максимально близко к оригиналу. а если нет? ресивер то не совсем комп, там процессор имеет определённые пределы производительности и они не сильно велики. вот программеры и оптимизируют. например давайте вам дадут задание перемножить 5 десятичных дробей, у каждой из которых 5 знаков после запятой. а затем те же числа, но округлив до трёх знаков после запятой. и еще раз округлив до одной циферкой после запятой. теперь сравните скорость с какой вы это посчитаете на листике и итоговую точность. и в программировании часто так бывает. иногда точностью данных в расчетах можно пренебречь до определённого предела. и этим выгадать в скорости расчетов и/или объёме памяти. вот там алгоритм упростили, картинку получили, чуть хуже чем в оригинале. зато девайс - в полтора раза дешевле чем у конкурентов с чуть лучшей картинкой (которую всё равно 90% покупателей не отличат).

  • bogeyman Senior Member
    офлайн
    bogeyman Senior Member

    1339

    17 лет на сайте
    пользователь #137338

    Профиль
    Написать сообщение

    1339
    # 25 августа 2009 11:00

    Wolfheart, когда я менял кодеки sat-тюнера, видел только разницу в производительности. На статичных сценах разницы не было, а на динамичных сценах как раз и выплывала производительность кодека при слабом процессоре. Возможно, не туда смотрел.

    badguy, то что написали, больше похоже на процедуру кодирования, когда для уменьшения потока, не нарушая визуальное восприятие зрением, урезаются знаки после запятой в глубине цвета, разрешении и тп.

    Я всегда думал, что при декодировании изображение восстанавливается исключительно до тех цифр после запятой, которые были вложены в поток. То есть не путем алгоритмов восстановления с превнесением дополнительной информации, а путем тупого перевода цифр потока в яркость субпикселя и тд. (разумеется, после восстановления полных кадров)

  • Wolfheart FBY Team
    офлайн
    Wolfheart FBY Team

    28105

    23 года на сайте
    пользователь #3971

    Профиль
    Написать сообщение

    28105
    # 25 августа 2009 11:22

    bogeyman,

    Я всегда думал, что при декодировании изображение восстанавливается исключительно до тех цифр после запятой, которые были вложены в поток. То есть не путем алгоритмов восстановления с превнесением дополнительной информации, а путем тупого перевода цифр потока в яркость субпикселя и тд. (разумеется, после восстановления полных кадров)

    Еще раз - все абсолютно все медиаисточники - будь то DVD, Blue Ray, Sat или что-то иное - содержат информацию, пожатую с потерями, поэтому восстановление пиксель-в-пиксель к исходному материалу - невозможно. Именно поэтому кодеки и отличаются по качеству.

    Wur qanar, wur stilor, wur kas! Когда ж вы, ..., научитесь! (с) Gwynbleidd. I have the simplest tastes. I am always satisfied with the best (c) O.Wilde
  • badguy Паяльник & Отвертка TEAM
    офлайн
    badguy Паяльник & Отвертка TEAM

    23969

    23 года на сайте
    пользователь #6556

    Профиль
    Написать сообщение

    23969
    # 25 августа 2009 11:27

    bogeyman, дык это понятно - потери образуются при сжатии. но при разжатии надо эту потерянную информацию получить. как? есть специально разработанные алгоритмы. но эти алгоритмы можн оупростить, дабы снизить нагрузку и увеличить скорость. пример про дроби показател в том плане, что использую плавающую запятую (то бишь обычную дробь) - получим высокую точность. но достаточно большой объем памяти и не очень высокую скорость. а можно перейти к операциям с целыми числами (ведь можно любую дробь умножить к примеру на 1000 и округлить до целых, получим фактически округление до третьего знака после запятой) и дальше оперировать целыми числами (а их процессор щёлкает гораздо быстрее). ну а в конце опять перевести в дробное и вот вам прирост скорости и возможно снижение объёма памяти. но зато страдает точность.

    либо наоборот когда используются итерационные алгоритмы. в теории к примеру интеграл может считаться с интервалом на бесконечности, а в реальности процессор так не может. ему надо чем то ограничить. кто-то сделает миллион итераций, а кто-то возьмёт тысячу интервалом для расчета. результаты отличаться будут возможно не сильно, но точность страдает.

    качество обычно зависит от вычислительных мощностей железки. если она шустрая, то алгоритм будет восстанавливать максимально качественно, а если медленная - то будет на определённых этапах экономить, что бы картинка плавно двигалась.

  • bogeyman Senior Member
    офлайн
    bogeyman Senior Member

    1339

    17 лет на сайте
    пользователь #137338

    Профиль
    Написать сообщение

    1339
    # 25 августа 2009 11:30

    Wolfheart, я понимаю, что пожатого с потерями. Но незаметными глазу. И восстанавливается декодером не до исходного видео, а до пожатого кодером. Но цифра в цифру. Поэтому я не понимаю, что собственно может один декодер сделать лучше другого в плане детализации, глубины цвета. Может только ухудшить (пропустить кадры или выдать искажения), если не хватит производительности. Но это мое мнение, возможно, ошибочное.

  • bogeyman Senior Member
    офлайн
    bogeyman Senior Member

    1339

    17 лет на сайте
    пользователь #137338

    Профиль
    Написать сообщение

    1339
    # 25 августа 2009 11:39

    badguy, я вижу логику в Ваших рассуждениях и логически с ней согласен.

    Просто я до сих пор думал и думаю, что декодер ничего не делает с цифрами после запятой, что это пререгатива кодера. А декодер должен только восстановить полные кадры из всяких фреймов и для каждого кадра выстроить попиксельные данные. И вся информация об этих данных идет в потоке, и декодеру не надо заниматься "дедукцией", а надо воспроизвести ее один к одному.

    Ваше понимание я понял, попробую разобраться дальше по учебникам.

  • badguy Паяльник & Отвертка TEAM
    офлайн
    badguy Паяльник & Отвертка TEAM

    23969

    23 года на сайте
    пользователь #6556

    Профиль
    Написать сообщение

    23969
    # 25 августа 2009 12:36

    bogeyman, да забудьте вы про картинку. ни кодер, ни декодер вообще не знают что есть картинка. это программы. и у них есть набор цифр. по каком-то специальноразработанным алгоритмам эти цифры преобразуются и получаем другой набор, гораздо меньший по объёму. при этом если мы будет изменять параметры качества и прочего в настройках кодера - то и наборы мы получим на выходе разные. но - главное одно - все они соответствуют определённым правилам. и этот алгоритм сжатия весьма ресурсоёмкий.

    а при раскодировке мы эти цифры должны восстановить по другим специальноразработанным алгоритмам. которые как раз и предназначены из этого набора получить в итоге картинку, максимально похожую на исходный набор данных (хотя в реальности ни в одной точке не будет совпадения по цвету). этот алгоритм тоже весьма ресурсоёмкий, если восстанавливать по максимуму. там много циклов в которых считаются какие-то числа, необходимые для вычисление конечных данных. и как я уже говорил - можно взять и цикл прокрутить меньшее число раз. для того кто хоть немного высшую математику в вузе слушал - для того не секрет например что существуют ряды (фурье, лагранжа и прочих). про то что при помощи рядов можно описать в принципе любую аналитическую функцию с определённым уровнем точности. и затем вычислить эту функцию. я не говорю уже про интегралы, особенно несобственные. во всех этих методах вычисления чем больше итераций мы сделаем - тем точнее результат получим. но! если нам хватает указанной точности, то можно сделать достаточно малое количество итераций. но это чистая математика. а у нас процессор, у которого есть пределы производительности, плюс у нас есть еще таймлимит, мы должны хоть сдохнуть, но выдать положенные 10-20-30 кадров в секунду. следовательно на вычисление кадра у нас есть не более определённого интервала времени. и согласитесь что процессор имеющий на порядок большую производительность сможет сделать итераций при расчетах на порядок больше. за ту же самую единицу времени. а раз точнее результат вычисления - следовательно и картинка итоговая будет ближе к оригиналу.