Аппаратная поддержка h.264 -- это что?

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

azsx
Сообщения: 2427
ОС: calculate linux, debian, ubuntu

Аппаратная поддержка h.264 -- это что?

Сообщение azsx » 08.06.2018 17:01

Не могу понять такую вещь. Есть кодек h.264. Есть тест x264.
Как я понимаю, читая ваши интернеты, желательно чтобы процессор поддерживал технологию x264 аппаратно. Мой не поддерживает, но видео показывает.

Код: Выделить всё

cat /proc/cpuinfo | grep 264
(пусто)
Есть люди, которые мне говорят, что технология x264 поддерживается только gpu (многими видеокартами).
А есть и те, кто тестирует видео именно на процессорах и у них получаются дико мелкие результаты.
---
Вопрос.
Как вот для какого то произвольного процессора и видеокарты понять поддерживают ли они аппаратно какую то технологию или нет? На примере h.264.
Спасибо сказали:

Аватара пользователя
yoricI
Сообщения: 527
ОС: gentoo fluxbox

Re: Аппаратная поддержка h.264 -- это что?

Сообщение yoricI » 08.06.2018 18:23

Команды выше можно упростить: grep 264 /proc/cpuinfo :-)
А по делу, насколько мне кажется, CPU не будут специально затачивать подо что либо (264 и проч. например), лучше заточат программы обработки. Так что в /proc/cpuinfo это бесполезно искать.
Это узкоспецифическая технология, в отличие от виртуализации, например. Больше ничегго не знаю :-)
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 2019
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14,2

Re: Аппаратная поддержка h.264 -- это что?

Сообщение Hephaestus » 08.06.2018 18:58

azsx писал(а):
08.06.2018 17:01
Как вот для какого то произвольного процессора и видеокарты понять поддерживают ли они аппаратно какую то технологию или нет? На примере h.264.
Самый прямой путь - посмотреть спецификацию.
Такие штуки обычно указываются производителем железки как отдельное достижение - "этатипакрута".
Значит, идем на сайт производителя железки, находим инфу по конкретной железке, смотрим.
azsx писал(а):
08.06.2018 17:01
Как я понимаю, читая ваши интернеты, желательно чтобы процессор поддерживал технологию x264 аппаратно. Мой не поддерживает, но видео показывает.
"Поддержка аппаратно" - возможно, там имеется ввиду encoder. То есть процессор со встроенной видеокартой, которая на аппаратном уровне поддерживает вот это самое.
Чтобы "показывать видео" нужен decoder.
Там, где есть encoder, decoder, скорее всего, тоже есть. Обратное неверно.
Кроме того, если у Вас "видео показывает" - это не факт, что поддержка аппаратно.
Плеер справится как-нибудь и без аппаратной поддержки.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 14490
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Аппаратная поддержка h.264 -- это что?

Сообщение Bizdelnick » 08.06.2018 19:10

azsx писал(а):
08.06.2018 17:01
Есть кодек h.264.
Это не кодек, это стандарт.
azsx писал(а):
08.06.2018 17:01
Есть тест x264.
А это не тест, а как раз кодек (конкретная реализация стандарта).
azsx писал(а):
08.06.2018 17:01
желательно чтобы процессор поддерживал технологию x264 аппаратно
Что-то не слышал я про такие процессоры. В видеокартах бывает встроенный аппаратный декодер, доступный через API VA-API и/или VDPAU. В случае VDPAU проверяется так:

Shell

% vdpauinfo
display: :0 screen: 0
API version: 1
Information string: G3DVL VDPAU Driver Shared Library version 1.0

Video surface:

name width height types
-------------------------------------------
420 16384 16384 NV12 YV12
422 16384 16384 UYVY YUYV
444 16384 16384 Y8U8V8A8 V8U8Y8A8

Decoder capabilities:

name level macbs width height
----------------------------------------------------
MPEG1 --- not supported ---
MPEG2_SIMPLE --- not supported ---
MPEG2_MAIN --- not supported ---
H264_BASELINE --- not supported ---
H264_MAIN --- not supported ---
H264_HIGH --- not supported ---
VC1_SIMPLE --- not supported ---
VC1_MAIN --- not supported ---
VC1_ADVANCED --- not supported ---
MPEG4_PART2_SP --- not supported ---
MPEG4_PART2_ASP --- not supported ---
DIVX4_QMOBILE --- not supported ---
DIVX4_MOBILE --- not supported ---
DIVX4_HOME_THEATER --- not supported ---
DIVX4_HD_1080P --- not supported ---
DIVX5_QMOBILE --- not supported ---
DIVX5_MOBILE --- not supported ---
DIVX5_HOME_THEATER --- not supported ---
DIVX5_HD_1080P --- not supported ---
H264_CONSTRAINED_BASELINE --- not supported ---
H264_EXTENDED --- not supported ---
H264_PROGRESSIVE_HIGH --- not supported ---
H264_CONSTRAINED_HIGH --- not supported ---
H264_HIGH_444_PREDICTIVE --- not supported ---
HEVC_MAIN --- not supported ---
HEVC_MAIN_10 --- not supported ---
HEVC_MAIN_STILL --- not supported ---
HEVC_MAIN_12 --- not supported ---
HEVC_MAIN_444 --- not supported ---

Output surface:

name width height nat types
----------------------------------------------------
B8G8R8A8 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
R8G8B8A8 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
R10G10B10A2 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8
B10G10R10A2 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8

Bitmap surface:

name width height
------------------------------
B8G8R8A8 16384 16384
R8G8B8A8 16384 16384
R10G10B10A2 16384 16384
B10G10R10A2 16384 16384
A8 16384 16384

Video mixer:

feature name sup
------------------------------------
DEINTERLACE_TEMPORAL y
DEINTERLACE_TEMPORAL_SPATIAL -
INVERSE_TELECINE -
NOISE_REDUCTION y
SHARPNESS y
LUMA_KEY y
HIGH QUALITY SCALING - L1 y
HIGH QUALITY SCALING - L2 -
HIGH QUALITY SCALING - L3 -
HIGH QUALITY SCALING - L4 -
HIGH QUALITY SCALING - L5 -
HIGH QUALITY SCALING - L6 -
HIGH QUALITY SCALING - L7 -
HIGH QUALITY SCALING - L8 -
HIGH QUALITY SCALING - L9 -

parameter name sup min max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH y 48 2048
VIDEO_SURFACE_HEIGHT y 48 2048
CHROMA_TYPE y
LAYERS y 0 4

attribute name sup min max
-----------------------------------------------------
BACKGROUND_COLOR y
CSC_MATRIX y
NOISE_REDUCTION_LEVEL y 0.00 1.00
SHARPNESS_LEVEL y -1.00 1.00
LUMA_KEY_MIN_LUMA y
LUMA_KEY_MAX_LUMA y


%
У меня нет (и не нужно, это ж рабочая машина).
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

IMB
Сообщения: 2413
ОС: Debian

Re: Аппаратная поддержка h.264 -- это что?

Сообщение IMB » 08.06.2018 22:15

Bizdelnick писал:
08.06.2018 19:10
azsx писал(а):
08.06.2018 17:01
желательно чтобы процессор поддерживал технологию x264 аппаратно
Что-то не слышал я про такие процессоры.
Да большая часть ARM, из тех с которыми сейчас работаю Hisilicon hi3798mv100 и Amlogic S805.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 14490
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Аппаратная поддержка h.264 -- это что?

Сообщение Bizdelnick » 08.06.2018 23:00

IMB писал(а):
08.06.2018 22:15
Да большая часть ARM, из тех с которыми сейчас работаю Hisilicon hi3798mv100 и Amlogic S805.
Под процессорами я подразумевал именно отдельно взятые CPU, а не SoC. В них-то декодеры пихают вовсю, иначе как на мобилках можно бы было что-то смотреть.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

azsx
Сообщения: 2427
ОС: calculate linux, debian, ubuntu

Re: Аппаратная поддержка h.264 -- это что?

Сообщение azsx » 09.06.2018 02:42

У меня:

Код: Выделить всё

vainfo
error: can't connect to X server!
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/va/drivers/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.3)
vainfo: Driver version: Intel i965 driver for Intel(R) Sandybridge Mobile - 1.7.3
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
Есть декодирование h.264 так как VAProfileH264Main : VAEntrypointVLD, нет кодирования, так как VAEntrypointEncSlice нет.
Из этого так и не понятен вопрос. А как я сам мог бы догадаться, что надо искать не 264 в процессоре, а VA-API или VDPAU на видеокартах?
Может есть сайт, страница, где длинным списком идёт название встроенной в проц или видеокарту технологии и картко что она обозначает?
Спасибо сказали:

Аватара пользователя
yoricI
Сообщения: 527
ОС: gentoo fluxbox

Re: Аппаратная поддержка h.264 -- это что?

Сообщение yoricI » 09.06.2018 05:07

Извините за банальность, но конечно есть, яндекс или гугл называется :-)
Спасибо сказали:

azsx
Сообщения: 2427
ОС: calculate linux, debian, ubuntu

Re: Аппаратная поддержка h.264 -- это что?

Сообщение azsx » 09.06.2018 05:31

Извините за банальность
Не прощу!
Даже сейчас, имея по факту правильный ответ я при поиске должен заранее знать, что нет отдельного компонента в процессоре для h.264, а есть блок с разными api для видеокарты в том числе и для декодирования h.264. Завтра будет подобный вопрос, но для другого компонента.
Вот как бы вы искали в гугле, чтобы найти ответ на мой вопрос?
Спасибо сказали:

Аватара пользователя
yoricI
Сообщения: 527
ОС: gentoo fluxbox

Re: Аппаратная поддержка h.264 -- это что?

Сообщение yoricI » 09.06.2018 06:59

Ab ovo :-)
Спасибо сказали: