OpenVisualCloud / SVT-HEVC

SVT HEVC encoder. Scalable Video Technology (SVT) is a software-based video coding technology that is highly optimized for Intel® Xeon® processors. Using the open source SVT-HEVC encoder, it is possible to spread video encoding processing across multiple Intel® Xeon® processors to achieve a real advantage of processing efficiency.
Other
518 stars 170 forks source link

The ouput file using a compressed 10-bit format is larger than common 10-bit yuv420p10le format output file,why? #551

Closed wangfly80 closed 4 years ago

wangfly80 commented 4 years ago

SvtHevcEncApp -i org_10le.yuv -w 7680 -h 3840 -fps 30 -intra-period 4 -irefresh-type 0 -vid-info 1 -rc 1 -tbr 62914560 -umv 0 -tile_slice_mode 1 -tile_row_cnt 12 -tile_col_cnt 12 -pred-struct 0 -bit-depth 10 -b dst_10le.hevc

SvtHevcEncApp -i org_10le.yuv -w 7680 -h 3840 -fps 30 -intra-period 4 -irefresh-type 0 -vid-info 1 -rc 1 -tbr 62914560 -umv 0 -tile_slice_mode 1 -tile_row_cnt 12 -tile_col_cnt 12 -pred-struct 0 -bit-depth 10 -compressed-ten-bit-format 1 -b dst_10le_compress.hevc

the size of file org_10le.yuv is about 98Gb the size of result file dst_10le.hevc is about 220Mb the size of result file dst_10le_compress is about 2Gb

1480c1 commented 4 years ago

can you confirm the pixel format in FFmpeg or MediaInfo of the two files and make sure the two files have the same amount of frames etc?

wangfly80 commented 4 years ago

two commands use the same org file org_10le.yuv, the only difference is one use -compressed-ten-bit-format 1 parameter, the other not

tianjunwork commented 4 years ago

Hi @wangfly80 , you should only use -compressed-ten-bit-format 1 when input is compressed 10-bit format. https://github.com/OpenVisualCloud/SVT-HEVC/blob/master/Docs/svt-hevc_encoder_user_guide.md#compressed-10-bit-format If your input org_10le.yuv is not compressed 10-bit format, dst_10le_compress.hevc should show corruption.

When you compress 10-bit format, the size of each yuv frame will be smaller. Same size of yuv file fits more frame with compressed format than regular format. So when you use -compressed-ten-bit-format 1 encoder thinks there are more frames in org_10le.yuv. You can compare number of frames in your dst_10le.hevc and dst_10le_compress.hevc.

wangfly80 commented 4 years ago

Hi @wangfly80 , you should only use -compressed-ten-bit-format 1 when input is compressed 10-bit format. https://github.com/OpenVisualCloud/SVT-HEVC/blob/master/Docs/svt-hevc_encoder_user_guide.md#compressed-10-bit-format If your input org_10le.yuv is not compressed 10-bit format, dst_10le_compress.hevc should show corruption.

When you compress 10-bit format, the size of each yuv frame will be smaller. Same size of yuv file fits more frame with compressed format than regular format. So when you use -compressed-ten-bit-format 1 encoder thinks there are more frames in org_10le.yuv. You can compare number of frames in your dst_10le.hevc and dst_10le_compress.hevc.

ok,thanks.I see.