5. HEVC参考代码HM10.0的使用
2013-06-17 15:14
393 查看
在正式讨论HEVC的技术细节之前,有必要先建立好符合标准的实验平台,这对理解编解码的技术具有很大帮助。最方便,最有效,认可程度也最高的自然是JCT-VC工作组公布的参考代码HM系列了。这里,我们用最新版的参考代码HM10.0为例,详细阐述如何用参考软件成功编码一个视频码流。
参考代码的下载请到我的微盘:http://vdisk.weibo.com/s/u9IAN下载。
(1)下载完成后解压,文件夹中包含下图所示的内容:
不同的开发平台要选择不同的工程文件,苹果的xcode工程文件在HM.xcodeproj中,windows和linux的工程文件在build文件夹中。我所使用的是visual studio 2010,因此选择build文件夹中的HM_vc10.sln,从VS中找到目录文件,打开。
(2)在visual studio 2010中打开后,发现整个solution包含七个工程(TAppCommon,TAppEncoder,TAppDecoder,TLibCommon,TLibEncoder,TLibDecoder,TLibVideoIO,下图所示)。这些工程分别的功能在以后讨论。今天的目的仅仅是能成功将YUV文件编码成HEVC格式的码流,因此将TAppEncoder设为活动工程(在该工程上由右键->Set
as StartUp Project)。
(3)编译整个Solution(F7),等待7个工程编译完成后,根目录下新生成了一个文件夹,路径为:(根目录位置\HM-10.0rc1\bin\vc10\Win32\Debug),其中有成功编译完成的两个可执行文件TAppDecoder.exe和TAppEncoder.exe,以及其他一些副产品。
(4)工程目录中的cfg文件夹中有多个预先设定好的配置文件,分别代表了不同的编码模式。该目录中的pre-sequence文件夹中指定了多个输入测试序列的配置信息。我们在这里选择encoder_intra_main.cfg作为编码的配置文件,另外用akiyo_qcif.yuv作为测试序列。新建一个cfg文件命名为akiyo.cfg,内容如下:
#======== File I/O ===============
InputFile : E:\TestSquence\176x144\akiyo_qcif.yuv
InputBitDepth : 8 # Input bitdepth
FrameRate : 30 # Frame Rate per second
FrameSkip : 0 # Number of frames to be skipped in input
SourceWidth : 176 # Inputframe width
SourceHeight : 144 # Inputframe height
FramesToBeEncoded : 50 # Number of frames to be coded
将两个cfg文件拷贝到(3)中的目录下,待编码序列要依据cfg的路径存放,否则会出现找不到文件的错误。
(5)配置工程属性。
在TAppEncoder工程上右键单击->Properties->Configuration Properties->Debugging。将命令行参数和工作目录改成下图所示:
这一步也可以用命令行完成,效果是一样的。
(6)编译运行。Debug->Start Without Debuging->是,命令行窗口中会显示编码的信息和结果,如下图所示。
本文转自http://blog.sina.com.cn/s/blog_520811730101j6jh.html
参考代码的下载请到我的微盘:http://vdisk.weibo.com/s/u9IAN下载。
(1)下载完成后解压,文件夹中包含下图所示的内容:
不同的开发平台要选择不同的工程文件,苹果的xcode工程文件在HM.xcodeproj中,windows和linux的工程文件在build文件夹中。我所使用的是visual studio 2010,因此选择build文件夹中的HM_vc10.sln,从VS中找到目录文件,打开。
(2)在visual studio 2010中打开后,发现整个solution包含七个工程(TAppCommon,TAppEncoder,TAppDecoder,TLibCommon,TLibEncoder,TLibDecoder,TLibVideoIO,下图所示)。这些工程分别的功能在以后讨论。今天的目的仅仅是能成功将YUV文件编码成HEVC格式的码流,因此将TAppEncoder设为活动工程(在该工程上由右键->Set
as StartUp Project)。
(3)编译整个Solution(F7),等待7个工程编译完成后,根目录下新生成了一个文件夹,路径为:(根目录位置\HM-10.0rc1\bin\vc10\Win32\Debug),其中有成功编译完成的两个可执行文件TAppDecoder.exe和TAppEncoder.exe,以及其他一些副产品。
(4)工程目录中的cfg文件夹中有多个预先设定好的配置文件,分别代表了不同的编码模式。该目录中的pre-sequence文件夹中指定了多个输入测试序列的配置信息。我们在这里选择encoder_intra_main.cfg作为编码的配置文件,另外用akiyo_qcif.yuv作为测试序列。新建一个cfg文件命名为akiyo.cfg,内容如下:
#======== File I/O ===============
InputFile : E:\TestSquence\176x144\akiyo_qcif.yuv
InputBitDepth : 8 # Input bitdepth
FrameRate : 30 # Frame Rate per second
FrameSkip : 0 # Number of frames to be skipped in input
SourceWidth : 176 # Inputframe width
SourceHeight : 144 # Inputframe height
FramesToBeEncoded : 50 # Number of frames to be coded
将两个cfg文件拷贝到(3)中的目录下,待编码序列要依据cfg的路径存放,否则会出现找不到文件的错误。
(5)配置工程属性。
在TAppEncoder工程上右键单击->Properties->Configuration Properties->Debugging。将命令行参数和工作目录改成下图所示:
这一步也可以用命令行完成,效果是一样的。
(6)编译运行。Debug->Start Without Debuging->是,命令行窗口中会显示编码的信息和结果,如下图所示。
本文转自http://blog.sina.com.cn/s/blog_520811730101j6jh.html
相关文章推荐
- 6-HEVC参考代码HM10.0的使用
- 【HEVC学习与研究】7.HEVC参考代码HM10.0的使用
- HEVC参考软件HM的使用
- HM6.01 (HEVC参考软件)代码总结(一)
- [置顶] HEVC代码学习0:HM使用+码流分析教程
- HEVC参考软件(HM)代码阅读之帧内预测:Void TComPrediction::xPredIntraAng
- HEVC学习:HM-10.1-dev代码分析之TLibVideoIO库
- HEVC码率控制算法研究与HM相应代码分析(三)——算法及代码分析
- 【HEVC学习与研究】46、HEVC参考代码中SAO的实现
- HEVC码率控制浅析——HM代码阅读之一
- HEVC学习(一) —— HM的使用
- 使用Qt将一系列图片通过网络发送到客户端动态显示的参考代码(修改一下可以用作远程网络监控)
- HEVC参考代码编码流程
- HEVC码率控制浅析——HM代码阅读之三
- 在C/C++代码中使用SSE等指令集的指令(2)参考手册
- HEVC码率控制浅析——HM代码阅读之二
- Jupiter Code Review Reference -- Jupiter代码审查工具使用参考 (修改版)
- HEVC学习(一) —— HM的使用
- spring中进行连接池使用c3p0进行配置,参考代码
- SD--关于定价过程中的存储顺序的参考结构和参考字段的使用代码跟踪