Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

supported pixel formats #18

Closed
bmegli opened this issue Dec 28, 2019 · 1 comment
Closed

supported pixel formats #18

bmegli opened this issue Dec 28, 2019 · 1 comment

Comments

@bmegli
Copy link
Owner

bmegli commented Dec 28, 2019

Kaby Lake, H264

[AVHWDeviceContext @ 0x55c82d8b37e0] Opened VA display via DRM device /dev/dri/renderD128.
[AVHWDeviceContext @ 0x55c82d8b37e0] libva: VA-API version 1.1.0
[AVHWDeviceContext @ 0x55c82d8b37e0] libva: va_getDriverName() returns 0
[AVHWDeviceContext @ 0x55c82d8b37e0] libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
[AVHWDeviceContext @ 0x55c82d8b37e0] libva: Found init function __vaDriverInit_1_1
[AVHWDeviceContext @ 0x55c82d8b37e0] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x55c82d8b37e0] Initialised VAAPI connection: version 1.1
[AVHWDeviceContext @ 0x55c82d8b37e0] Matched "Intel i965 driver for Intel(R) Kaby Lake - 2.1.0" as known driver "Intel i965 (Quick Sync)".
25 : nv12
0 : yuv420p
1 : yuyv422
17 : uyvy422
4 : yuv422p
296 : rgb0
298 : bgr0
335 : p010le
@bmegli
Copy link
Owner Author

bmegli commented Dec 29, 2019

The interesting one is p010le:

FFmpeg notes:

AV_PIX_FMT_P010LE like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, little-endian

Microsoft notes:

  • fixed point representation
  • stored in 16 bit LE WORDs, 6 lowest bits set to 0
  • P010LE is FOURCC code (planar, 4:2:0, 10-bit, little endian):
    • P for planar
    • 0 for 4:2:0
    • 10 for 10 bits per channel
    • LE for little endian

So this should be like NV12:

  • Y plane, 16 bit words with 10 bit data, height H and stride S
  • followed by interleaved UV plane, height H/2, stride S

Intel forum notes (to check):

  • claims that there is no 6 bit shift in software and is in hardware
  • claims interleaved/non interleaved U/V problem

bmegli added a commit that referenced this issue Dec 30, 2019
- working proof of concept for HEVC 10 bit encoding and P010LE pixel format
- tested on Kaby Lake

tests #18
step in bmegli/realsense-ir-to-vaapi-h264#9
bmegli added a commit that referenced this issue Dec 30, 2019
- allows selecing H264, HEVC, MJPEG, ... through config
- HEVC 10 bit per channel encoding example

relevant to #4 and #18
bmegli added a commit that referenced this issue Dec 30, 2019
- extends hve_config with encoder field
- by default (NULL, "") set to "h264_vaapi"
- adds HEVC 10 bit per channel encoding example
- documentation update (codecs, profiles)
- readme update (codecs, examples)

closes #4
implements p010le example for #18
@bmegli bmegli closed this as completed Dec 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant