1.下载
下载方式和HM一样,在Win10和Linux中下载有所不同
1.1 Win10:
Windows需要使用SVN,下载地址为 https://hevc.hhi.fraunhofer.de/svn/svn_SHVCSoftware/(自行选择版本)
1.2 Linux:
Linux直接git clone,下载地址 https://vcgit.hhi.fraunhofer.de/jvet/SHM(通过tag自行选择版本)
2.使用
2.1 编译
编译方式与HM相同,可参考本人之前博客。
编译后在bin文件夹中得到编解码相关的.exe,这里与HM不同的是会有一个下采样工具 TAppDownConvert.exe,用来进行空间可伸缩。
2.2 配置(以两层为例,即一个基本层+一个增强层)
2.2.1空间可伸缩
1)在编码前需要获取原始视频的下采样视频,需要利用上面提到的TAppDownConvert.exe。这里以BasketballDrive_1920x1080_50.yuv序列为例,编码命令为:TAppDownConvert.exe 1920 1080 BasketballDrive_1920x1080_50.yuv 960 540 BasketballDrive_960x540_50_zerophase_0.9pi.yuv
,获得2倍下采样后的视频序列BasketballDrive_960x540_50_zerophase_0.9pi.yuv,如果是1.5倍或其他倍数就自行修改960 540
为其他数值即可。
2)进行编码,这里的编码是将前面的原始和下采样后的两条视频序列同时输入进行编码,在编码之后得到一条码流,最终解码时,用一条码流即可同时解码出基本层视频(下采样)和增强层视频(原始)。这里在前面的基础上,以LDP配置为例进行编码,编码命令为:
win10版:TAppEncoder.exe -c encoder_lowdelay_P_scalable.cfg -c BasketballDrive-2x.cfg -c layers.cfg --InputFile1=BasketballDrive_1920x1080_50.yuv ----InputFile2=BasketballDrive_960x540_50_zerophase_0.9pi.yuv --QP0=22 --QP1=22 --BitstreamFile=str.bin --ReconFile0=rec0_QP22.yuv --ReconFile1=rec1_QP22.yuv>=log.txt
linux版:TAppEncoderStatic -c encoder_lowdelay_P_main.cfg -c BasketballDrive-2x.cfg -c layers.cfg --InputFile1=BasketballDrive_1920x1080_50.yuv ----InputFile2=BasketballDrive_960x540_50_zerophase_0.9pi.yuv --QP0=22 --QP1=22 --BitstreamFile=str.bin --ReconFile0=rec0_QP22.yuv --ReconFile1=rec1_QP22.yuv | tee log.txt
注:0表示基本层,1表示增强层。cfg文件均在下载的SHM文件夹中可找到。
3)编码结果,根据以上命令可以得到:码流文件(str.bin,解码时根据该码流即可同时解出BL和EL的yuv)、基本层和增强层重建yuv(rec0.yuv和rec1.yuv)、编码日志文件(log.txt用来查看编码输出信息)
2.2.2质量可伸缩
编码和空间可伸缩基本类似,不同点在于:1.不需要提前处理获得基本层视频;2.将基本层和增强层QP配置成不同的