Skip to content

Suggestion: List of possible improvements / work #19

Description

@DatCaptainHorse

Doing this list for some nice-to-have's on my side, but anyone is obviously free to do them before me, putting this as issue here may help potential contributors 🙂

Improvements

  • Add decoding support.

  • Improve code re-use across encoders. (Some work towards this was done in feat: encode pipelining with "pushification" of outputs #21)

  • Add VkVideoEncodeTuningModeKHR, VkVideoEncodeContentFlagBitsKHR and VkVideoEncodeUsageFlagBitsKHR support for tuning encoding latency along other tunables. - feat: Add encoding hints and tuning modes #20

  • B-frame support for potentially better encoding efficiency.

  • Video Encode Intra Refresh, reduces bitrate-spikes, adds error resiliency and potentially lowers the decode latency by gradually constructing frame-data instead of having periodic and fat I-frame being encoded and sent.

  • Video Encode Quantization Maps, allow to specify video regions that are potentially higher or lower quality, known as ROI (Region Of Interest) encoding on VA-API. Cool example is Valve using this with their upcoming VR headset, when streaming content from a PC they use eye-tracking to focus bitrate where the person is looking, leaving peripheral area at lower quality.

  • Update Rust edition from 2021 to 2024, will require updating unsafe usages along possibly other project-wide changes. Benefit is access to improved usage patterns along other niceties.

  • Update to latest working ash commit, the current used package is 6 months old, Vulkan evolves fast and getting access to latest extensions can open up some niceties (i.e. VK_KHR_video_encode_feedback2 was recent addition to the spec).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions