HM软件学习日记(第1天)

精简文件结构

软件包的树结构

  • 之前在build文件夹之下除了linux文件夹之外还有VS2015等文件夹,目前只保留了linux文件夹;因为我使用的是ubuntu系统的编译器,所以针对VS的目标文件用不到

yupengfei@yupengfei-X550VX:~/HM-16.20$ tree -d
.
├── bin
├── build
│   └── linux
│       ├── app
│       │   ├── TAppDecoderM
│       │   │   └── objects
│       │   ├── TAppDecoderAnalyser
│       │   │   └── objects
│       │   ├── TAppEncoder
│       │   │   └── objects
│       │   └── TAppMCTSExtractor
│       │       └── objects
│       ├── common
│       ├── lib
│       │   ├── TAppCommon
│       │   │   └── objects
│       │   ├── TLibCommon
│       │   │   └── objects
│       │   ├── TLibDecoder
│       │   │   └── objects
│       │   ├── TLibDecoderAnalyser
│       │   │   └── objects
│       │   ├── TLibEncoder
│       │   │   └── objects
│       │   └── TLibVideoIO
│       │       └── objects
│       └── utils
│           ├── annexBbytecount
│           │   └── objects
│           └── convert_NtoMbit_YCbCr
│               └── objects
├── cfg
│   ├── cfg_HDR
│   ├── misc
│   ├── per-sequence
│   └── sei
│       └── rns
├── compat
│   └── msvc
├── doc
├── HM.xcodeproj
├── lib
└── source
    ├── App
    │   ├── TAppDecoder
    │   ├── TAppEncoder
    │   ├── TAppMCTSExtractor
    │   └── utils
    │       └── BitrateTargeting
    └── Lib
        ├── libmd5
        ├── TAppCommon
        ├── TLibCommon
        ├── TLibDecoder
        ├── TLibEncoder
        └── TLibVideoIO

56 directories
yupengfei@yupengfei-X550VX:~/HM-16.20$ 

README//“读我”

-README文件内容为软件开发者写给软件使用者的备注
内容如下所示:

his software package is the reference software for Rec. ITU-T H.265 | ISO/IEC 23008-2 High efficiency video coding (HEVC). The reference software includes both encoder and decoder functionality.
Reference software is useful in aiding users of a video coding standard to establish and test conformance and interoperability, and to educate users and demonstrate the capabilities of the standard. For these purposes, this software is provided as an aid for the study and implementation of Rec. ITU-T H.265 | ISO/IEC 23008-2 High efficiency video coding.
The software has been jointly developed by the ITU-T Video Coding Experts Group (VCEG, Question 6 of ITU-T Study Group 16) and the ISO/IEC Moving Picture Experts Group (MPEG, Working Group 11of Subcommittee 29 of ISO/IEC Joint Technical Committee 1).
A software manual, which contains usage instructions, can be found in the “doc” subdirectory of this software package.
-中文翻译如下所示:
该软件包是Rec.1的参考软件。 ITU-T H.265 | ISO / IEC 23008-2高效视频编码(HEVC)。 参考软件包括编码器和解码器功能。
参考软件可用于帮助视频编码标准的用户建立和测试一致性和互操作性,并教育用户并演示该标准的功能。 为了这些目的,提供此软件是为了帮助研究和实施Rec.3。 ITU-T H.265 | ISO / IEC 23008-2高效视频编码。
该软件由ITU-T视频编码专家组(VCEG,ITU-T第16研究组的问题6)和ISO / IEC运动图像专家组(MPEG,ISO / IEC第29小组委员会第11工作组)共同开发。 联合技术委员会1)。
可以在此软件包的“ doc”子目录中找到包含使用说明的软件手册。

COPYING//版权

  • 根目录下的COPYING为版权声明文件
    在这里插入图片描述

doc// 帮助文件

  • doc文件夹之下有.tex 、 .pdf、.ppt等格式的帮助文件,内容==都不相同==
  • mainpage.h中的内容及翻译如下所示
#include "TLibCommon/CommonDef.h"
/**
/**
* \file mainpage.h
*\文件主页.h
* \brief HEVC reference documentation main page (no functional use)
*\brief HEVC参考文档主页(无功能用途)
* \mainpage
*\主页
*
*
* \section Introduction
*\章节简介
*
*
*  This is the doxygen generated documentation of the HEVC HM reference software.
*这是doxygen生成的HEVC HM参考软件文档。
*
*
*  For detailed information see the sub-pages of this site.
*有关详细信息,请参阅本网站的子页面。
*
*
*  For information on the <b>subversion repositories</b> and the <b>software manual</b> see
*有关subversion存储库和软件手册的信息,请参见
*  http://hevc.hhi.fraunhofer.de
*  http://hevc.hhi.fraunhofer.de
*
*
*  For <b>bug reporting and known issues</b> see:
*有关缺陷报告和已知问题的信息,请参见:
*  https://hevc.hhi.fraunhofer.de/trac/hevc
*  https://hevc.hhi.fraunhofer.de/trac/hevc
*
*
* \section License
*\分区许可证
*
*
* The copyright in this software is being made available under the BSD
*本软件的版权由BSD提供
* License, included below. This software may be subject to other third party
*许可证,包括在下面。本软件可能受制于第三方
* and contributor rights, including patent rights, and no such rights are
*以及出资人的权利,包括专利权,而没有这样的权利
* granted under this license.
*根据本许可证授予。
*
*
* Copyright (c) 2010-2017, ITU/ISO/IEC
*版权所有(c)2010-2017,ITU/ISO/IEC
* All rights reserved.
*版权所有。
*
*
* Redistribution and use in source and binary forms, with or without
*以源代码和二进制形式重新分发和使用,有无
* modification, are permitted provided that the following conditions are met:
*如果满足以下条件,则允许修改:
*
*
*  - Redistributions of source code must retain the above copyright notice,
*-源代码的再分配必须保留上述版权声明,
*    this list of conditions and the following disclaimer.
*此条件列表和以下免责声明。
*  - Redistributions in binary form must reproduce the above copyright notice,
*-二进制形式的再分配必须复制上述版权声明,
*    this list of conditions and the following disclaimer in the documentation
*此条件列表和文档中的以下免责声明
*    and/or other materials provided with the distribution.
*和/或分发时提供的其他材料。
*  - Neither the name of the ITU/ISO/IEC nor the names of its contributors may
*-ITU/ISO/IEC的名称或其贡献者的名称均不得
*    be used to endorse or promote products derived from this software without
*用于在没有
*    specific prior written permission.
*具体的事先书面许可。
*
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
*本软件由版权所有人和贡献者“按原样”提供
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
*以及任何明示或暗示的保证,包括但不限于
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
*对特定用途的适销性和适用性的默示保证
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
*否认。在任何情况下,版权持有人或贡献者均不得
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
*对任何直接、间接、附带、特殊、惩戒性或
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
*间接损害(包括但不限于
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
*替代品或服务;使用、数据或利润的损失;或业务
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
*中断)无论是由何种原因引起的,或基于任何责任理论,无论
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
*合同、严格责任或侵权行为(包括疏忽或其他)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
*以任何方式因使用本软件而产生的,即使事先通知
* THE POSSIBILITY OF SUCH DAMAGE.
*这种损害的可能性。
*
*
*  \note
*\注
*     This document is automatically generated from the source code and special documentation tags.
*此文档由源代码和特殊文档标记自动生成。
*     For more details on the used documentation system see http://www.doxygen.org
*有关所用文档系统的更多详细信息,请参阅http://www.doxygen.org
*
*
*  \defgroup TLibCommon   TLibCommon  - Library containing functionality that is shared between encoder and decoder
*\defgroup TLibCommon TLibCommon-包含编码器和解码器之间共享的功能的库
*  \defgroup TLibEncoder  TLibEncoder - Library containing encoder functionality
*\defgroup TLibEncoder TLibEncoder-包含编码器功能的库
*  \defgroup TLibDecoder  TLibDecoder - Library containing encoder functionality
*\defgroup TLibDecoder TLibDecoder-包含编码器功能的库
*  \defgroup libMD5       libMD5      - MD5 helper functions
*\defgroup libMD5 libMD5-MD5 helper函数
*  \defgroup TAppCommon   TAppCommon  - Application support library
*\defgroup TAppCommon TAppCommon-应用程序支持库
*  \defgroup TAppEncoder  TAppEncoder - Encoder application
*\defgroup TapEncoder TapEncoder-编码器应用程序
*  \defgroup TAppDecoder  TAppDecoder - Decoder application
*\defgroup TAppDecoder TAppDecoder-解码器应用程序
*/
*/
  • 至此 ,大致浏览完了doc文件夹中的内容,并将此文件夹删去,若有需要重新重网站下载文件

campat//兼容性

  • HM软件包的根目录下有个compat文件夹,campat是兼容性的意思,该文件夹下有一个msvc文件夹,里边有一个stdint.h的C++头文件,在此文件包下是为了使得HM软件包既可以在windows系统下安装,也可以在Linux系统下安装。

  • msvc就是微软(MS)的VC运行库。VC运行库,只是Visual C++的运行库。很多程序在编制的时候,使用了微软的运行库,大大减少了软件的编码量,却提高了兼容性。但运行的时候,需要这些运行库。这些运行库简称就是MSVC。
    运行库的版本很多,一般都要装,比如2003、2005、2010等,另外还有32位和64位的区别,装起来比较麻烦。

  • stdint.h 的内容如下所示:

#pragma once
#ifndef _MSC_VER
#error local C99 type definition should only be used in Visual C++ before 2010
#endif
#if _MSC_VER > 1500
#error local C99 type definition should only be used in Visual C++ before 2010
#endif

/* a minimal set of C99 types for use with MSVC */

typedef signed char int8_t;
typedef short int int16_t;
typedef int int32_t;
typedef __int64 int64_t;

typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned __int64 uint64_t;                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
  • #errorlocal C99 type definition should only be used in Visual C++ before 2010
    #本地C99类型定义仅在Visual C++2010之前的版本使用
  • /* a minimal set of C99 types for use with MSVC */
    /*与MSVC一起使用的最小C99类型集*/

HM.xcodeproj//“xcode项目”

  • 错误解读:
    HM错误的项目
  • 正确解读:
    不同的开发平台要选择不同的工程文件,苹果的 xcode工程文件在 HM. xcodeproj中windows和inux的工程文件在buld文件夹中。
  • 我使用的平台是ubuntu平台,故次文件夹的内容可以删去。
  • 此文件夹只有一个文件,与linux的和windows下的工程相比少了很多,暂时不知是何缘故‵‵‵
    在这里插入图片描述

精简之后的文件结构

~/HM-16.20$ tree -d
.
├── bin
├── build
│   └── linux
│       ├── app
│       │   ├── TAppDecoder
│       │   │   └── objects
│       │   ├── TAppDecoderAnalyser
│       │   │   └── objects
│       │   ├── TAppEncoder
│       │   │   └── objects
│       │   └── TAppMCTSExtractor
│       │       └── objects
│       ├── common
│       ├── lib
│       │   ├── TAppCommon
│       │   │   └── objects
│       │   ├── TLibCommon
│       │   │   └── objects
│       │   ├── TLibDecoder
│       │   │   └── objects
│       │   ├── TLibDecoderAnalyser
│       │   │   └── objects
│       │   ├── TLibEncoder
│       │   │   └── objects
│       │   └── TLibVideoIO
│       │       └── objects
│       └── utils
│           ├── annexBbytecount
│           │   └── objects
│           └── convert_NtoMbit_YCbCr
│               └── objects
├── cfg
│   ├── cfg_HDR
│   ├── misc
│   ├── per-sequence
│   └── sei
│       └── rns
├── lib
└── source
    ├── App
    │   ├── TAppDecoder
    │   ├── TAppEncoder
    │   ├── TAppMCTSExtractor
    │   └── utils
    │       └── BitrateTargeting
    └── Lib
        ├── libmd5
        ├── TAppCommon
        ├── TLibCommon
        ├── TLibDecoder
        ├── TLibEncoder
        └── TLibVideoIO

52 directories

猜你喜欢

转载自blog.csdn.net/Master_Yu_Daye/article/details/107339544