这几天忙于学习Python和为小组会议备课,没有学习HM软件,今天看到一篇关于YUV的CSDN博客,在此记录并分享一下,日积月累,集腋成裘!
文章的题目是:
什么是4:4:4、4:2:2、4:2:0?了解图像压缩取样的方式
https://blog.csdn.net/euyy1029/article/details/72458216
Linux nohup、&、 2>&1是什么?
https://blog.csdn.net/lovewebeye/article/details/82934049
https://www.cnblogs.com/storyawine/p/13370129.html
Shell中 |和||,&和&&用法
https://blog.csdn.net/qq_26884501/article/details/104185364
改进了生成.sh文件的python脚本的书写规范,并实现了两个CTC进程的并发执行
##creat_ssh_1.py
##_author_='Yu_Pengfei'
import os
#取出测试文件列表:
def load_file_list(directory):
list = []
for filename in [y for y in os.listdir(directory) if os.path.isfile(os.path.join(directory,y))]:
if filename.split('.')[-1]=='yuv':
list.append(filename.split('.yuv')[0])
return sorted(list)
yuv_path='/home/yupengfei/HM-16.9/CTC169/CTC'
yuv_list=load_file_list(yuv_path)
#编码模式
model_list=['lowdelay','lowdelay_P','randomaccess']
#主函数
## name = ['ChinaSpeed']
with open('frame_50_1.sh','a') as f:
for qp in [27,37]:
for model in model_list:
for na in yuv_list:
f.write('nohup ')
f.write('~/HM-16.9/bin/TAppEncoderStatic ')
f.write('-c '+'~/HM-16.9/cfg/encoder_'+model+'_main.cfg ')
f.write('-c '+'~/HM-16.9/CTC169/CTC_cfg/'+na+'.cfg ')
f.write('-i '+'~/HM-16.9/CTC169/CTC/'+na+'.yuv ')
f.write('-f '+'50 ')
f.write('-q '+str(qp)+' ')
f.write('-b '+'~/HM-16.9/CTC169/CTC_bin/'+model+'/'+str(qp)+'/'+na+'.bin ')
f.write('-o '+'~/HM-16.9/CTC169/CTC_yuv/'+model+'/'+str(qp)+'/'+na+'.yuv ')
f.write('> '+'~/HM-16.9/CTC169/CTC_txt/'+model+'/'+str(qp)+'/'+na+'.txt')
f.write('\n')
##~/HM-16.9/bin/TAppEncoderStatic -c ~/HM-16.9/cfg/encoder_????_main.cfg -c ~/HM-16.9/CTC169/CTC_cfg/XXX.cfg -i ~/HM-16.9/CTC169/XXX.yuv -f 50 -q 22 -b ~/HM-16.9/CTC169/CTC_bin/???/???qp/XXX.bin -o ~/HM-16.9/CTC169/CTC_yuv/???/???qp/XXX.yuv > ~/HM-16.9/CTC169/CTC_txt/model???/qp/XXX.txt
##creat_ssh_2.py
##_author_='Yu_Pengfei'
import os
#取出测试文件列表:
def load_file_list(directory):
list = []
for filename in [y for y in os.listdir(directory) if os.path.isfile(os.path.join(directory,y))]:
if filename.split('.')[-1]=='yuv':
list.append(filename.split('.yuv')[0])
return sorted(list)
yuv_path='/home/yupengfei/HM-16.9/CTC169/CTC'
yuv_list=load_file_list(yuv_path)
#编码模式
model_list=['lowdelay','lowdelay_P','randomaccess']
#主函数
## name = ['ChinaSpeed']
with open('frame_50_2.sh','a') as f:
for qp in [22,32]:
for model in model_list:
for na in yuv_list:
f.write('nohup ')
f.write('~/HM-16.9/bin/TAppEncoderStatic ')
f.write('-c '+'~/HM-16.9/cfg/encoder_'+model+'_main.cfg ')
f.write('-c '+'~/HM-16.9/CTC169/CTC_cfg/'+na+'.cfg ')
f.write('-i '+'~/HM-16.9/CTC169/CTC/'+na+'.yuv ')
f.write('-f '+'50 ')
f.write('-q '+str(qp)+' ')
f.write('-b '+'~/HM-16.9/CTC169/CTC_bin/'+model+'/'+str(qp)+'/'+na+'.bin ')
f.write('-o '+'~/HM-16.9/CTC169/CTC_yuv/'+model+'/'+str(qp)+'/'+na+'.yuv ')
f.write('> '+'~/HM-16.9/CTC169/CTC_txt/'+model+'/'+str(qp)+'/'+na+'.txt')
f.write('\n')
##~/HM-16.9/bin/TAppEncoderStatic -c ~/HM-16.9/cfg/encoder_????_main.cfg -c ~/HM-16.9/CTC169/CTC_cfg/XXX.cfg -i ~/HM-16.9/CTC169/XXX.yuv -f 50 -q 22 -b ~/HM-16.9/CTC169/CTC_bin/???/???qp/XXX.bin -o ~/HM-16.9/CTC169/CTC_yuv/???/???qp/XXX.yuv > ~/HM-16.9/CTC169/CTC_txt/model???/qp/XXX.txt
小细节
-'\t'不完全等同于‘ ’
- 两个HM16.9进程的CPU使用率约为50%