

The responsibility for handling the rest of the bitstream codec headers (i.e. SEI/VUI/VPS/SPS/PPS) is completely delegated to the user, who will generate and pack them into the final bitstream along with the compressed bitstream obtained from the GPU operation for each frame.įollowing DirectX 12 principles and style, reference frames are managed explicitly, and their memory is completely tracked by the API user. The available codecs today are H264 and HEVC and specific support for each codec and their encoding tools must be queried using ID3D12VideoDevice::CheckFeatureSupport as there are driver support requirements. Currently only DXGI_FORMAT_NV12 and DXGI_FORMAT_P010 are available depending on driver support, so input content may need to be color converted and down sampled previously by the API user. In terms of data flow, the API takes each video frame represented by ID3D12Resource textures and compresses them into an ID3D12Resource buffer, that contains the slice headers and payload of each encoded frame. This feature provides a new way for apps to implement video encoding consistently with the DirectX 12 principles and style.

We are happy to announce that D3D12 has added a new Video Encode feature to the existing video API families, with a new set of interfaces that allow developers to perform video encoding using GPU accelerated video engines. Today DirectX 12 provides APIs to support GPU acceleration for several video applications such as Video Decoding, Video Processing and Motion estimation as detailed in Direct3D 12 Video Overview.
