HEVC配置

在正式讨论HEVC的技术细节之前,有必要先建立好符合标准的实验平台,这对理解编解码的技术具有很大帮助。最方便,最有效,认可程度也最高的自然是JCT-VC工作组公布的参考代码HM系列了。这里,我们用最新版的参考代码HM10.0为例,详细阐述如何用参考软件成功编码一个视频码流。

参考代码的下载请到我的网盘: http://pan.baidu.com/s/1kT3l78b 下载。

(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        # Input  frame width

SourceHeight                  : 144         # Input  frame height

FramesToBeEncoded             : 50         # Number of frames to be coded

将两个cfg文件拷贝到(3)中的目录下,待编码序列要依据cfg的路径存放,否则会出现找不到文件的错误。

(5)配置工程属性。

在TAppEncoder工程上右键单击->Properties->Configuration Properties->Debugging。将命令行参数和工作目录改成下图所示:

这一步也可以用命令行完成,效果是一样的。

(6)编译运行。Debug->Start Without Debuging->是,命令行窗口中会显示编码的信息和结果,如下图所示。

时间: 2024-10-06 13:50:25

HEVC配置的相关文章

HEVC—编码树结构

HEVC中有CU,TU,PU概念就不多说了,这里主要说一下在具体实现时他们之间大小的关系 在HEVC中 亮度 CU 最大为 64*64,最小为8*8    色度CU最大为 32*32,最小为4*4 在编码配置文档之中可以配置初始的LCU的大小也就是初始根节点CTU的大小 假设这里为64*64 在确定是否进行劈分的过程中利用一个CU_split_flag进行标识,同时结合四叉树的深度信息.获得最小的编码,解码CU 在进行预测的阶段,就会读出CU的预测模式,是帧内还是帧间 同时解出来PartSize

HEVC学习(一) —— HM的使用

http://blog.csdn.net/hevc_cjl/article/details/8169182 首先自然是先把这个测试模型下载下来,链接地址如下:https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/,这个网址下有各个版本的HM,到目前为止,最新版本是HM 9.0,可以根据自己的实际需求进行选择.这里需要注意的是,下载时需要使用SVN,如windows下的TortoiseSVN . 其次,最好附带下载HM的reference

HEVC,VP9,x264性能对比(自查备用)

http://blog.csdn.net/leixiaohua1020/article/details/19014955 an Grois等人在论文<Performance Comparison of H.265/MPEG-HEVC, VP9, andH.264/MPEG-AVC Encoders>中,比较了下一代编码标准HEVC,VP9的以及当前主流编码标准H.264之间的性能.在此记录一下. 本文中选用的编码器如下: HEVC:HM VP9:libvpx H.264:x264 下表显示了H

转 HEVC 参考帧管理(RPS)

分析HM参考帧的管理: HEVC采用了参考帧集(RPS)的技术来管理已解码的帧,用作后续图像的参考.与之前的视频编码标准中参考侦管理策略不同的是,HEVC中的RPS技术,通过直接在每一帧开始的片头码流中传输DPB中各个帧的状态变化,而H.264/AVC中的滑动窗和MMCO (Memory ManagementControl Operation)这两种参考帧管理技术,是通过传输每一个片的DPB的相对变化来实现,一但发生数据丢失,将会有持续的影响. 1.参考帧管理基本知识 H.263, H.264/

干货:如何实现RTSP推送H.264、RTSP推送H.265(hevc)

rtsp推送相关的资料和测试软件比较少,本文介绍rtsp推送相关信令和测试效果: 1. rtsp推送流程. 主要分两部分:第一部分先发送信令:第二部分发送rtp包. ?信令流程: ?1.1?先发送OPTIONS, OPTIONS比较常用,就不做详细说明了. 1.2 发送ANNOUNCE, 发送ANNOUNCE主要是把要推送的音视频信息通过sdp格式传给服务器.关于sdp信息如何构造,对于h264请参考rfc6184. h265请参考rfc7798. 下面举两个例子. h264+aac ANNOU

如何推送和播放RTMP H265流 (RTMP HEVC)

rtmp 播放h265 首先要扩展flv协议,国内常用扩展方式是给flv的videotag.codecid增加一个新类型(12)来表示h265(hevc),其他和h264规则差不多,另外和h264不同的地方是要解析HEVCDecoderConfigurationRecord,从HEVCDecoderConfigurationRecord中解析出vps, sps, pps. 有了vps, sps, pps, 就可以解码. 接下来实际看看效果,从github下载rtmp h265推送工具和rtmp

Win10下IIS配置、项目发布、添加网站

Win10下IIS配置 1.找到控制面板:[开始]菜单鼠标右击,打开[控制面板] 2.打开控制面板,点击[程序],点击[启用或关闭Windows功能] 下一步,点击[启用虎关闭Windows功能] 3. 开始修改IIS了,我是这样勾上的,有可能比较多. 4. 验证IIS是否正确安装,等待几分钟后IIS配置完成.在浏览器输入http://localhost/iisstart.htm会出现 IIS安装成功页面.第一次修改的时候出现了成功页面,但是后来删除了IIS中默认的网站就打不开了,但是不影响的.

linux下Nginx配置文件(nginx.conf)配置设置详解(windows用phpstudy集成)

linux备份nginx.conf文件举例: cp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-20171111(日期) 在进程列表里 面找master进程,它的编号就是主进程号. ps -ef | grep nginx 查看进程 cat /usr/local/nginx/nginx.pid 每次修改完nginx文件都要重新加载配置文件linux命令: /usr/local/nginx -t //验证配置文件是否合法 若ngin

solr分布式索引【实战一、分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例】

1 private static Properties prop = new Properties(); 2 3 private static String confFilePath = "conf" + File.separator + "config.properties";// 配置文件目录 4 static { 5 // 加载properties 6 InputStream is = null; 7 InputStreamReader isr = null;