[FFmpeg-trac] #9259(avcodec:new): Vulkan ycbcr Conversion with 10 bit

FFmpeg trac at avcodec.org
Mon May 24 19:56:25 EEST 2021


#9259: Vulkan ycbcr Conversion with 10 bit
-------------------------------------+-------------------------------------
             Reporter:  David Oard   |                    Owner:  (none)
                 Type:  enhancement  |                   Status:  new
             Priority:  normal       |                Component:  avcodec
              Version:  4.3.2        |               Resolution:
             Keywords:  Vulkan       |               Blocked By:
  VK_KHR_sampler_ycbcr_conversion    |
  VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16|
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Description changed by David Oard:

Old description:

> I using Vulkan to convert ycbcr AVFrame data to RGB using
> VK_KHR_sampler_ycbcr_conversion extension. It has been working really
> well with 8 bit videos Once I try to 10 bit videos the screen is
> primarily green. The issue is when a AVFrame is decoded from
> avcodec_receive_frame call the data arrays for each plane is packed into
> a 16-bit word where the lower 10 bits contain the data. The problem is
> that Vulkan wants the data in the upper 10 bits in each 16-bit word.
>
> Is there a way to tell the decoder to use the upper 10 bits instead of
> the lower 10 bits? Or can an enhancement be added to handle which
> methodology to use?
>
> The a detailed description of the formats I'm using with Vulkan checkout
> following link. Search for the last instance of
> VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16.
>
> https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFormat.html
>
> Thanks or any help or direction!
>
> David

New description:

 I am using Vulkan to convert ycbcr AVFrame data to RGB using
 VK_KHR_sampler_ycbcr_conversion extension. It has been working really well
 with 8 bit videos Once I try to 10 bit videos the screen is primarily
 green. The issue is when a AVFrame is decoded from avcodec_receive_frame
 call the data arrays for each plane is packed into a 16-bit word where the
 lower 10 bits contain the data. The problem is that Vulkan wants the data
 in the upper 10 bits in each 16-bit word.

 Is there a way to tell the decoder to use the upper 10 bits instead of the
 lower 10 bits? Or can an enhancement be added to handle which methodology
 to use?

 The a detailed description of the formats I'm using with Vulkan checkout
 following link. Search for the last instance of
 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16.

 https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFormat.html

 Thanks or any help or direction!

 David

--
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9259#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list