LINUX.ORG.RU

Radeon h264 encoding quality

 , , ,


0

1

Заглянул я тут в баг, и пошёл искать в коде, где там что интересное написано.

И нашёл. https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/radeon/radeon...

static void radeon_enc_op_speed(struct radeon_encoder *enc)
{
   RADEON_ENC_BEGIN(RENCODE_IB_OP_SET_SPEED_ENCODING_MODE);
   RADEON_ENC_END();
}

А в https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/radeon/radeon...

есть такие определения:

#define RENCODE_IB_OP_SET_SPEED_ENCODING_MODE                                       0x01000006
#define RENCODE_IB_OP_SET_BALANCE_ENCODING_MODE                                     0x01000007
#define RENCODE_IB_OP_SET_QUALITY_ENCODING_MODE                                     0x01000008

Отсюда вопрос, как изменится качество, если поменять этот параметр? Ну и вывести его как-то наружу, может через переменные окружения?

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

static void radeon_enc_quality_params(struct radeon_encoder *enc)
{
   enc->enc_pic.quality_params.vbaq_mode = 0;
   enc->enc_pic.quality_params.scene_change_sensitivity = 0;
   enc->enc_pic.quality_params.scene_change_min_idr_interval = 0;

   RADEON_ENC_BEGIN(enc->cmd.quality_params);
   RADEON_ENC_CS(enc->enc_pic.quality_params.vbaq_mode);
   RADEON_ENC_CS(enc->enc_pic.quality_params.scene_change_sensitivity);
   RADEON_ENC_CS(enc->enc_pic.quality_params.scene_change_min_idr_interval);
   RADEON_ENC_END();
}

Ну и

#define RENCODE_VIDEO_BITSTREAM_BUFFER_MODE_LINEAR                                  0
#define RENCODE_VIDEO_BITSTREAM_BUFFER_MODE_CIRCULAR                                1

в заголовке тоже интересно ....

i-rinat

★★★★★

Последнее исправление: Andrew-R (всего исправлений: 2)

Там же написано

AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] 

А тег radeon это не AMDGPU, а radeon драйвер.

anonymous
()

Аналогичные теги

См. также:

 amd, amdgpu, ati, catalyst, dpm, fglrx, mesa, radeonsi, гибридная графика
anonymous
()

i-rinat

Мне нечего сказать по теме, я в эту область никогда не пытался вникнуть.

К Radeon’ам вроде есть публично доступная документация? Стоит туда посмотреть.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Я туда посмотрел, не увидел про ускорение энкодинга …

https://www.x.org/docs/AMD/ (там больше про ISA, смотрел бегло в AMD Evergreen/Northern Islands Acceleration, AMD Sea Islands 3D Register Reference, AMD Southern Islands/Sea Islands Acceleration)

https://developer.amd.com/resources/documentation-articles/developer-guides-manuals/ - вообще 404

Andrew-R ★★★★★
() автор топика

Сам недавно изучал эту тему, так как рендернг прокси-клипов в Kdenlive медленнее на RX570, чем на CPU. Как выяснилось - виноват ещё и FFmpeg, у которого неполная реализация VA-API у радеонов.

Sunderland93 ★★★★★
()
Ответ на: комментарий от Sunderland93

Как выяснилось - виноват ещё и FFmpeg, у которого неполная реализация VA-API у радеонов.

А подробнее немного можно? Ссылки на mail list или где это помянуто?

Andrew-R ★★★★★
() автор топика
Ответ на: комментарий от Andrew-R

Ну они просят связаться с ними если что

This section contains register level documentation on AMD graphics processors for chip initialization, displays, and overlays. Documents for mobile chips are a superset of the desktop chip documentation; they contain all the desktop chip information as well as any relevant mobile additions. For development questions please contact: gpudriverdevsupport@amd.com
anonymous
()
Ответ на: комментарий от anonymous

ну я пока на irc #radeon повишу, может там что полезное подскажут.

Andrew-R ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.