博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
x265-1.7版本-common/framedata.cpp注释
阅读量:2190 次
发布时间:2019-05-02

本文共 2475 字,大约阅读时间需要 8 分钟。

注:问号以及未注释部分 会在x265-1.8版本内更新 

/****************************************************************************** Copyright (C) 2013 x265 project** Author: Steve Borho 
** This program is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License as published by* the Free Software Foundation; either version 2 of the License, or* (at your option) any later version.** This program is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the* GNU General Public License for more details.** You should have received a copy of the GNU General Public License* along with this program; if not, write to the Free Software* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.** This program is also available under a commercial proprietary license.* For more information, contact us at license @ x265.com.*****************************************************************************/#include "framedata.h"#include "picyuv.h"using namespace x265;/** 函数功能 :初始化/* 调用范围 :只在Frame::allocEncodeData函数中被调用*/FrameData::FrameData(){ memset(this, 0, sizeof(*this));}/** 函数功能 :申请一帧CTU的存储空间,初始化CTU、初始化统计信息/* 调用范围 :只在Frame::allocEncodeData函数中被调用* \返回值 :申请空间成功为ture,否则为false*/bool FrameData::create(x265_param *param, const SPS& sps){ m_param = param; //获取配置参数 m_slice = new Slice;//实例化 m_picCTU = new CUData[sps.numCUsInFrame];//申请一帧CTU个数的空间 m_cuMemPool.create(0, param->internalCsp, sps.numCUsInFrame);//申请CTU内存空间 for (uint32_t ctuAddr = 0; ctuAddr < sps.numCUsInFrame; ctuAddr++) m_picCTU[ctuAddr].initialize(m_cuMemPool, 0, param->internalCsp, ctuAddr);//初始化函数指针,获取CTU数据相应存储位置 CHECKED_MALLOC(m_cuStat, RCStatCU, sps.numCUsInFrame); CHECKED_MALLOC(m_rowStat, RCStatRow, sps.numCuInHeight); reinit(sps);//初始化统计信息 return true;fail: return false;}/** 函数功能 :初始化统计信息为0/* 调用范围 :只在FrameData::create和Frame::reinit函数中被调用* \返回值 :null*/void FrameData::reinit(const SPS& sps){ memset(m_cuStat, 0, sps.numCUsInFrame * sizeof(*m_cuStat)); memset(m_rowStat, 0, sps.numCuInHeight * sizeof(*m_rowStat));}/** 函数功能 :释放内存/* 调用范围 :只在Frame::destroy()和DPB::~DPB()函数中被调用*/void FrameData::destroy(){ delete [] m_picCTU; delete m_slice; delete m_saoParam; m_cuMemPool.destroy(); X265_FREE(m_cuStat); X265_FREE(m_rowStat);}

转载地址:http://mauub.baihongyu.com/

你可能感兴趣的文章
后端技术杂谈1:搜索引擎基础倒排索引
查看>>
后端技术杂谈2:搜索引擎工作原理
查看>>
后端技术杂谈3:Lucene基础原理与实践
查看>>
后端技术杂谈4:Elasticsearch与solr入门实践
查看>>
后端技术杂谈5:云计算的前世今生
查看>>
后端技术杂谈6:白话虚拟化技术
查看>>
后端技术杂谈7:OpenStack的基石KVM
查看>>
后端技术杂谈8:OpenStack架构设计
查看>>
后端技术杂谈9:先搞懂Docker核心概念吧
查看>>
后端技术杂谈10:Docker 核心技术与实现原理
查看>>
夯实Java基础系列2:Java自动拆装箱里隐藏的秘密
查看>>
夯实Java基础系列1:Java面向对象三大特性(基础篇)
查看>>
夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!
查看>>
夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理
查看>>
Java 未来行情到底如何,来看看各界人士是怎么说的
查看>>
IntelliJ 平台 2020 年路线图
查看>>
走进JavaWeb技术世界8:浅析Tomcat9请求处理流程与启动部署过程
查看>>
微软宣布加入 OpenJDK,打不过就改变 Java 未来!
查看>>
MyBatis动态SQL(认真看看, 以后写SQL就爽多了)
查看>>
为什么强烈推荐 Java 程序员使用 Google Guava 编程!
查看>>