rigaya / QSVEnc

QSVによる高速エンコードの性能実験
http://rigaya34589.blog135.fc2.com/blog-category-10.html
Other
313 stars 28 forks source link

Cannot get 10 bit depth on i5-6300U / HD Graphics 520 #123

Closed colemar closed 1 year ago

colemar commented 1 year ago

Summary: -c hevc --output-depth 10 gives error. The output with -c h264 --output-depth 10 is identical to -c h264 --output-depth 8 and according to mediainfo it is 8 bit depth.

>qsvencc64 --check-features
Checking for QSV...
QSVEncC (x64) 7.35 (r3018) by rigaya, Mar  7 2023 12:48:11 (VC 1934/Win)
 Intel Media SDK API v2.08
 reader: raw, avi, avs, vpy, avsw, avhw
Environment Info
OS : Windows 10 x64 (19044) [UTF-8]
CPU: Intel Core i5-6300U @ 2.40GHz [TB: 2.90GHz] (2C/4T)
RAM: Used 10482 MB, Total 32411 MB
GPU: Intel HD Graphics 520 (24EU) 300-1000MHz [15W] (30.0.100.9865)

Media SDK Version: Hardware API v1.35

Supported Enc features:
[...]
Codec: H.265/HEVC PG
             CBR   VBR   AVBR  QVBR  CQP   LA    LAHRD ICQ   LAICQ VCM
RC mode       o     o     x     x     o     x     x     o     x     o
10bit depth   x     x     x     x     x     x     x     x     x     x
[...]

>qsvencc64 -i mandel.mov -c hevc --output-depth 10 -o mandel-hevc-10.mp4
--------------------------------------------------------------------------------
mandel-hevc-10.mp4
--------------------------------------------------------------------------------
MFXENCODE:   Failed to get required buffer size for MFXENCODE: invalid video parameters.
allocD3D11: QSVAllocator: Failed CheckRequestType: undeveloped feature.
INPUT: allocWorkSurfaces:   Failed to allocate frames: undeveloped feature..
AllocFrames:   Failed to allocate frames for INPUT-MFXENCODE: undeveloped feature..

QSVEncC.exe finished with error!

>qsvencc64 -i mandel.mov -c hevc --output-depth 8 -o mandel-hevc-8.mp4
--------------------------------------------------------------------------------
mandel-hevc-8.mp4
--------------------------------------------------------------------------------
cop.SingleSeiNalUnit value changed off -> auto by driver
cop3.DirectBiasAdjustment value changed off -> auto by driver
cop3.GlobalMotionBiasAdjustment value changed off -> auto by driver
QSVEncC (x64) 7.35 (r3018) by rigaya, Mar  7 2023 12:48:11 (VC 1934/Win)
OS             Windows 10 x64 (19044) [UTF-8]
CPU Info       Intel Core i5-6300U @ 2.40GHz [TB: 2.90GHz] (2C/4T) <Skylake>
GPU Info       Intel HD Graphics 520 (24EU) 300-1000MHz [15W] (30.0.100.9865)
Media SDK      QuickSyncVideo (hardware encoder) PG, 1st GPU, API v1.35
Async Depth    3 frames
Buffer Memory  d3d11, 13 work buffer
Input Info     avsw: prores(yuv444(12bit))->nv12 [AVX2], 1920x1080, 25/1 fps
AVSync         cfr
Output         HEVC(yuv420) main @ Level 4 (high tier)
               1920x1080p 1:1 25.000fps (25/1fps)
               avwriter: hevc => mp4
[...]

>qsvencc64 -i mandel.mov -c h264 --output-depth 10 -o mandel-h264-10.mp4
--------------------------------------------------------------------------------
mandel-h264-10.mp4
--------------------------------------------------------------------------------
QSVEncC (x64) 7.35 (r3018) by rigaya, Mar  7 2023 12:48:11 (VC 1934/Win)
OS             Windows 10 x64 (19044) [UTF-8]
CPU Info       Intel Core i5-6300U @ 2.40GHz [TB: 2.89GHz] (2C/4T) <Skylake>
GPU Info       Intel HD Graphics 520 (24EU) 300-1000MHz [15W] (30.0.100.9865)
Media SDK      QuickSyncVideo (hardware encoder) PG, 1st GPU, API v1.35
Async Depth    3 frames
Buffer Memory  d3d11, 14 work buffer
Input Info     avsw: prores(yuv444(12bit))->nv12 [AVX2], 1920x1080, 25/1 fps
AVSync         cfr
Output         H.264/AVC(yuv420) High @ Level 4
               1920x1080p 1:1 25.000fps (25/1fps)
               avwriter: h264 => mp4
[...]
rigaya commented 1 year ago

Unfortunately, Skylake iGPU (Core i 6xxx series) does not support HEVC 10bit encoding.

HW Encoder support is listed on the link below. https://github.com/rigaya/QSVEnc#supported-hw-encoder--windows-os

colemar commented 1 year ago

Then something is wrong with --check-features. As highlighted above, it reports full support for hevc 10bit. Does 'x' mean "yes"?

rigaya commented 1 year ago

Actually, the report is correct.

Sorry for confusion, 'o' means 'yes', and 'x' means 'no'. (might be Japanese style of yes/no)

So there is no 10bit support for HEVC.

Saentist commented 1 year ago

:green_circle: for YES :green_circle: :x: for NO :x: now is international :sunglasses: :u5408: :u7121: :blush: