Class VkVideoEncodeCapabilitiesKHR

  • All Implemented Interfaces:
    java.lang.AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

    public class VkVideoEncodeCapabilitiesKHR
    extends org.lwjgl.system.Struct
    implements org.lwjgl.system.NativeResource
    Structure specifying encode capabilities.
    Description

    The input content and encode resolution (specified in VkVideoEncodeInfoKHR::codedExtent) may not be aligned with the codec-specific coding block size. For example, the input content may be 1920x1080 and the coding block size may be 16x16 pixel blocks. In this example, the content is horizontally aligned with the coding block size, but not vertically aligned with the coding block size. Encoding of the last row of blocks may be impacted by contents of the input image in pixel rows 1081 to 1088 (the next vertical alignment with the coding block size). In general, to ensure efficient encoding for the last row/column of blocks, and/or to ensure consistent encoding results between repeated encoding of the same input content, these extra pixel rows/columns should be filled to known values up to the coding block size alignment before encoding operations are performed. Some implementations support performing auto-fill of unaligned pixels beyond a specific alignment, which is reported in inputImageDataFillAlignment. For example, if an implementation reports 1x1 in inputImageDataFillAlignment, then the implementation will perform auto-fill for any unaligned pixels beyond the encode resolution up to the next coding block size. For a coding block size of 16x16, if the implementation reports 16x16 in inputImageDataFillAlignment, then it is the application’s responsibility to fill any unaligned pixels, if desired. If not, it may impact the encoding efficiency, but it will not affect the validity of the generated bitstream. If the implementation reports 8x8 in inputImageDataFillAlignment, then for the 1920x1080 example, since the content is aligned to 8 pixels vertically, the implementation will auto-fill pixel rows 1081 to 1088 (up to the 16x16 coding block size in the example). The auto-fill value(s) are implementation-specific. The auto-fill value(s) are not written to the input image memory, but are used as part of the encoding operation on the input image.

    Valid Usage (Implicit)
    See Also

    VkExtent2D

    Layout

    
     struct VkVideoEncodeCapabilitiesKHR {
         VkStructureType sType();
         void const * pNext();
         VkVideoEncodeCapabilityFlagsKHR flags();
         VkVideoEncodeRateControlModeFlagsKHR rateControlModes();
         uint8_t rateControlLayerCount();
         uint8_t qualityLevelCount();
         VkExtent2D inputImageDataFillAlignment();
     }