{"id":1874,"date":"2018-09-29T23:13:38","date_gmt":"2018-09-29T21:13:38","guid":{"rendered":"https:\/\/alax.info\/blog\/?p=1874"},"modified":"2018-09-29T23:13:38","modified_gmt":"2018-09-29T21:13:38","slug":"amds-three-ways-to-spell-enhancement","status":"publish","type":"post","link":"https:\/\/alax.info\/blog\/1874","title":{"rendered":"AMD&#8217;s three ways to spell &#8220;enhancement&#8221;"},"content":{"rendered":"<p>From AMD AMF SDK documentation, <a href=\"https:\/\/github.com\/GPUOpen-LibrariesAndSDKs\/AMF\/blob\/master\/amf\/doc\/AMF_Video_Encode_API.pdf\">AMF_Video_Encode_API.pdf<\/a>:<br \/>\n<a href=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2018\/09\/Clipbrd1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-1875\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2018\/09\/Clipbrd1-800x311.png\" alt=\"\" width=\"800\" height=\"311\" srcset=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2018\/09\/Clipbrd1-800x311.png 800w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2018\/09\/Clipbrd1-320x125.png 320w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2018\/09\/Clipbrd1-768x299.png 768w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2018\/09\/Clipbrd1-600x233.png 600w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>The typos are not a big deal for development, even though the symbol with the typo is a shortcut to a string with the same typo:<\/p>\n<p><code>#define AMF_VIDEO_ENCODER_NUM_TEMPORAL_ENHANCMENT_LAYERS L\"NumOfTemporalEnhancmentLayers\"<\/code><\/p>\n<p>The SDK offers a good frontend to AMD VCE hardware encoders, however there are a few unfortunate problems:<\/p>\n<ul>\n<li>documentation is incomplete: covers most important but skips too many details\n<ul>\n<li>as a small example, use of important\u00c2\u00a0AMF_VIDEO_ENCODER_EXTRADATA is not covered by documentation; those needing it <a href=\"https:\/\/community.amd.com\/thread\/198703\">are not their own<\/a> to figure out the answer themselves<\/li>\n<\/ul>\n<\/li>\n<li>the SDK is good in its structure, convenient and &#8220;transparent&#8221; &#8211; its debug mode is pretty helpful<\/li>\n<li>alternative method (<a href=\"https:\/\/community.amd.com\/message\/2651559\">this post<\/a> remains in good standing) to consume hardware encoders are Windows Media Foundation Transforms (MFT), which are stable and efficient, but not so much documented too and lack flexibility; additionally it seems they are not in development and are not directly relying on this SDK<\/li>\n<\/ul>\n<p>As we take no compromise our experimental AMF SDK based H.264 encoding <span style=\"display: inline !important; float: none; background-color: transparent; color: #333333; cursor: text; font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;\">MFT is eventually slightly more efficient compared to vendor&#8217;s but not significantly.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>From AMD AMF SDK documentation, AMF_Video_Encode_API.pdf: The typos are not a big deal for development, even though the symbol with the typo is a shortcut to a string with the same typo: #define AMF_VIDEO_ENCODER_NUM_TEMPORAL_ENHANCMENT_LAYERS L&#8221;NumOfTemporalEnhancmentLayers&#8221; The SDK offers a good frontend to AMD VCE hardware encoders, however there are a few unfortunate problems: documentation is&hellip; <\/p>\n<p><a class=\"moretag\" href=\"https:\/\/alax.info\/blog\/1874\">Read the full article<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[553,379,424,426],"class_list":["post-1874","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-amd","tag-h-264","tag-media-foundation","tag-mft"],"_links":{"self":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1874","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/comments?post=1874"}],"version-history":[{"count":0,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1874\/revisions"}],"wp:attachment":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/media?parent=1874"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/categories?post=1874"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/tags?post=1874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}