HM学习笔记_来自博客

合集下载

HM笔记

HM笔记

2.几何模型的修复与清理2.1面的修复与清理2.1.1面的清理在进行面的清理时可以直接进入Delete面板删除多余的面。

还有一种方法就是通过公差控制删除所有符合条件的面。

步骤如下:(1)通过菜单Geometry > Defeature > Duplicates进入Duplicates面板;(2)选择所有显示的面,并将公差设置为0.01;(3)单击Find查找重复的面,单击Delete删除重复的面2.1.2面的修复通过Surface面板可以进行各种面的创建,从而重新创建丢失的面。

例如:(1)进入Surfaces面板,选择Spline/Filler标签。

(2)为创建平滑的表面,可勾选Keep tangency选项。

(3)创建丢失的面:如果勾选了Auto create (free edges)选项,当选择一条边时系统会自动搜索闭环自由边进行面的创建,否则需手动创建面。

2.2 边的修复与清理进行边的清理时常用的工具有equivalence、toggle和replace,下面分别对这三个工具给出相应的使用实例。

2.2.1 equivalence使用equivalence工具,一次清理所有重复的自由边:(1)通过菜单Geometry > Edit > Surface Edges > Equivalence进入Equivalence 面板;(2)勾选equiv free edges only选项,并选择所有的面;(3)将清理公差设置为0.01,点击Equivalence进行清理。

使用toggle工具清理自由边:(1)通过菜单Geometry > Edit > Surface Edges > Toggle进入Toggle面板;(2)将清理公差设置为0.1;(3)在图形上点选红色的自由边进行清理。

当被选择的自由边公差不大于0.1时,系统会自动对其进行清理,当公差大于0.1时,系统将进行询问是否清理。

Xhm基础l

Xhm基础l

第1章XHTML学前准备1.入学序章(课程设置,安排,内容)2.XHTML导论(XHTML相关知识)3.准备工作(必须的编辑器、调试软件)一.入学序章(课程设置,安排,内容)入门套餐))课程介绍((入门套餐1.1课程介绍(1).网页三剑客(80课时)(2).VB(40课时)(3).XHTML(80课时)(4).ASP(80课时)(5).MSSQL SERVER2000(40课时)(6).PHP(150课时)(7).JavaScript(60课时)1.2授课方式(1).基础灌输(2).项目串接(3).引导自学(4).视频重复1.3入学要求(1).有强烈的欲望(2).勤奋与不择不扣的毅力(3).初高中以上水平(中低端编程)(4).初中以上英语,小学数学,初中物理(5).5年以上的网虫(6).会使用各种常用软件(7).提前预习过本堂的网页三剑客视频(8).个人修养较好1.4就业形势(1).毕业就失业(2).不包就业(3).只能靠自己(4).没沟通没工作(5).技术实力不是最重要的?(6).有关系天下无敌(7).有梦想就有未来(8).为了工作而学习(9).为了梦想而学习(10).N 年后,老师都是错的1.5项目实战(1).所有项目会在第一时间发布到(2).完成了项目不代表你有了经验(3).经验是在工作后问题的积累(4).多做各种项目,有利于迅速上手(5).遇到问题,查文档,不要急于发帖询问(6).不要发弱智贴(比如:怎样才能学好编程之类)(7).Google 是最好的老师二.二.XHTMLXHTML 导论(导论(XHTML XHTML 相关知识)1.2.1序言万维网是我们这个时代最重要的信息传播手段。

几乎任何人都可以创建自己的网站,然后把它发布在因特网上。

一些网页属于企业,提供销售服务;另一些网页属于个人,用来分享信息。

你可以自己决定网页的内容和风格。

所有网页都要用某种形式的HTML 来编写。

HTML 可以对文本进行格式化,添加图形、声音和视频,并且可以将它保存为所有计算机都可以读取的文本文件。

浅析博客在教学的应用

浅析博客在教学的应用
计 算 机 光盘软 件 与应 用
计算机教 学与教育信息化 C m u e D S f w r n p l c t o s o p t r C o ta e a d A p ia in 2 1 年第 1 期 00 6
浅析博客在教学的应用
李 宁 ( 家庄经济 学院信 息工程学院 ,石 家庄 石
K e wo d Blg; ogta hi gAuxla y y r s: o Bl e c n ; iir
博 客代 表着 新 的生 活 、学 习方 式 ,工作 交流 方 式 。博客 作 为 网络 时代 一种 快捷 易用 的个 人知 识 管理系 统 ,也 越 来越 受到 教 育 工作 者 的关注 并逐 步被 引入到 教育 教 学领 域 。 2 0 年 国内教育 当 03 工作者 尝试 把 B o l g应用 于 教育 领域 短 短几 年后 ,各 类 教育 B o lg 雨后春 笋般 地 涌现 出来 。随着 各地 教师 和学 生 运用 B o lg的普及 , 人 们开 始探 索 教育 B o l g应 用 的规律 , 总结 和反 思 目前 教育 B o lg 的应用 状况 ,并研 究教 育 B o 的下 一 步发 展 。 lg 什 么是 “ 博客 ” 中文 “ 博客 ”一词 ,源 于英 文 单词 B o/ lge 。B o , lg Bo gr lg 是 Wbo e l g的简称 。W bo ,其 实是 W b L g的组合 词 。W b elg e和 o e, 指 W r d W d e ,即互 联 网;L g的原 义则 是 “ o l ieW b o 航海 日志 ” , 后指 任 何类 型 的流水 记 录 。合起 来 理解 , e lg就 是在 网络上 的 Wbo 种 流水 记录 形式 或 简称 “ 网络 日志 ” 。B o gr或 W bo gr l ge el ge , 是指 习 惯于 日常记 录 并使 用 W b o e lg工 具的人 。 二 、博 客与其 他 网络 工具 的 区别 与传 统 的 E m i 、B S和 IQ这三 种互 联 网交 流沟 通方 式 相 al B C 比 ,博客 是一 种较 严肃 ,相对 沉 淀 的沟通 工 具 。博 客 由于是 “ 个 人 日志 ”的链 接 ,它 在 时间 维度 上持 续 ,并 且可 以回溯 ,因而 表 现 的 是一 个较 为完 整 的个 体 ,或 者是 一个 方 面 的完 整形 态 ,因 此 它 是一 种 网络 生存 ,是 个 人性 和公 共性 的 结合 三 、博客 在 网络教 育 中 的应用 网络 教育 指 的是 在 网络 环境 下 , 以现 代 教育 思 想和 学 习 理 论 为指 导 ,充 分发 挥 网络 的各 种 教育 功能 和 丰 富的 网络 教育 资源 优势 , 向教育 者和 学 习者提 供 一种 网络 教 和学 的环 境 ,传 递数 字 化 内容 , 开展 以学 习者 为 中心 的非 面授 教 育 活动 。 网络 教育 教 学 过程 包 括 了教师 , 学生 , 资源三 个 要素 , 其 中学 习资 源 的提供 , 学 习支 持服 务 到位 以及 学 习效 果 的及 时反 馈直 接 影 响着 网络 教育

125个在线自学网站合集(学习不易且行且易)

125个在线自学网站合集(学习不易且行且易)

125个在线自学网站合集(学习不易,且行且易)一、网站类1、假期在家如何查找论文资料?只需登录中国图书馆/hYmDq(需注册),即可免费下载各种期刊和学位论文2、全球免费开放的电子图书馆/h4hJUf3、给大家推荐个神网站,只要是外文书籍基本上都可以搜到并下载,并且电子书质量极高/hYvbf4、【小语种入门】法语入门/GvrXV;意语入门/hbOoz4;西语入门/h4IRPu;葡语入门/arWpIJ;德语入门/hRn3j;俄语入门/arkVWf;日语入门/aCsJt6;阿语入门/adoS0T5、【视频剪辑的大神们都是怎么找背景音乐的?】资源全部免费的配乐资源网站/h4NIOx,对同一首配乐提供不同时长的版本,如10s、15s、30s、60s以及原始长度的版本,绝对可以省去你重新剪辑配乐的辛苦!同时,可以根据关键词进行搜索,如epic、happy,也可以根据风格、时长、乐器等进行搜索6【网站制作系列视频教程】HTML基础教程/RPzfvBD;Dreamweaver cs6教程/RPzfvBs;div/css布局/8swq0oy;JSP 教程/RPzfvrA;ASP教程/RPzfvBk;教程/8sxyEVf;PHP教程/RPzfvrw;全部/RPzfvBF12、目前找到的最为完整最为系统的PS教程,内容非常丰富。

/zWxFeBh13、【PaperRater论文检测系统】全新论文检测系统PaperRater,堪比知网,胜过paperpass。

PaperRater比对数据库和知网数据库最为接近,检测报告非常详细,对照检测报告修改论文非常方便,通常修改到10%以下,通过学校的知网检测是没问题的。

PaperRater论文检测网址/RvLSicS14、这才是真正的考研必备网站/z8l0fCh,涵盖了各大院校各个专业的资料供大家下载。

15、【一个神级翻译网址】来自中国知网的翻译助手/hfZ0V,很多同学应该都还在用百度翻译、有道翻译等,然后对翻译出来的结果哭笑不得KI翻译助手这个例句都是学术上的例子,并且可以查询在一个词在不同学科上的翻译,还有学术翻译必备词汇查询。

CMS学习笔记

CMS学习笔记
1.适用于在文档列表底层模板中使用
[field:pubdate function="Mydate('m-d',@me)"/] 或者m月d日
m:%Y:年 %m:月 %d:日 %H:小时 %m:分钟 %s:秒数
可以去掉%
小写y只取年份的后两位 分 秒 大写的则为英文
别的页面(列表页,封面页,内容页):typeid不可以少,要整站调用typeid应包括所有的频道ID
{dede:arclist row=10 typeid='1,2,3,4'}
.<a href="[field:arcurl/]">[field:title/]</a>
{/dede:arclist}
[field:pubdate function="GetDateTimeMK(@me)"/]
列表分页标记调用方式:
{dede:pagelist listitem="index,pre,pageno,next,end" listsize='5' /}
listsize 表示 [1][2][3] 这些项的长度 x 2
config.cahe.inc.php:系统基本参数
config.cache.bak.php:系统基本参数的备份,可以用于恢复系统
dede:后台管理页面
a:静态文件目录,我们自己添加的文章之类的东西存放的地方,可以删除,通过在后台修改
images:图片目录
调用方法同上
3.引入”顶一下“这些插件
把所要添加的插件所在的默认模板中的相关JavaScript及HTML代码进入自定义模板中

hibernate4学习笔记

hibernate4学习笔记

hibernate4学习笔记Hibernate4学习笔记本⼈全部以⾃学为主,在⽹上收集各种学习资料,总结归纳学习经验,现将学习路径给予⼤家分享。

此次学习的hibernate的版本是:hibernate-release-4.2.4.Final(截⽌2015年7⽉31⽇最新版),JAVA的版本是:java8.0,使⽤的开发⼯具是:Eclipse Mars Release (4.5.0)。

第⼀天:Hibernate4基础知识和HelloWorld简单编程Hibernate是⼀种半成品ORM框架,对数据库持久化操作,程序员对数据库的操作转换成对对象的操作。

ORM 采⽤元数据来描述对象-关系映射细节, 元数据通常采⽤XML 格式, 并且存放在专门的对象-关系映射⽂件中。

HelloWorld简单编程1、准备Hibernate环境(1)导⼊Hibernate的Jar包,如下:(2)导⼊Mysql驱动包,我⽤的数据库是:Mysql 5.0,数据库驱动包如下:以上所有Jar加完毕之后,需要加⼊到Eclipse⾃⾝系统⾥⾯,具体如下:以上操作完毕之后,Hibernate的环境就算搭建完毕,下⾯就可以进⼀步操作。

2、配置hibernate.cfg.xml⽂件,主要是对数据库的连接,具体如下:"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/doc/63fa364d5022aaea998f0fde.html /hibernate-configuration-3.0.dtd ">rootmysqlname="connection.driver_class">com.mysql.jdbc.Driver jdbc:mysql:///Test(或者:jdbc:mysql://localhost:3306/Test)name="dialect">org.hibernate.dialect.MySQLInnoDBDialecttruetrueupdate3、编写⼀个实例类News.java,具体代码如下:package com.hibernate.helloworld;import java.sql.Date;public class News {private Integer id;private String title;private Date date;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public News(String title, String author, Date date) { super();this.title = title;this.author = author;this.date = date;}public News(){}@Overridereturn"News [id="+ id+ ", title="+ title+ ", author="+ author + ", date=" + date + "]";}}4、创建News.hbm.xml配置映射⽂件,具体代码如下:"/doc/63fa364d5022aaea998f0fde.html /hibernate-mapping-3.0.dtd">5、将映射⽂件News.hbm.xml指定到hibernate.cfg.xml配置⽂件⾥⾯,即在hibernate.cfg.xml⽂件⾥加⼊⼀⾏映射代码,具体如下:6、创建hibernate API操作测试类(Juit测试),验证hibernate的优势效果,具体代码如下:package com.hibernate.helloworld;import java.sql.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.Test;public class HibernateTest {@Testpublic void test() {//1. 创建⼀个 SessionFactory 对象SessionFactory sessionFactory=null;//1). 创建 Configuration 对象: 对应 hibernate 的基本配置信息和对象关系映射信息Configuration configuration=new Configuration().configure();//4.0 之前这样创建//sessionFactory=configuration.buildSessionFactory();//2). 4.0以后创建⼀个 ServiceRegistry 对象: hibernate 4.x 新添加的对象//hibernate 的任何配置和服务都需要在该对象中注册后才能有效.ServiceRegistry serviceRegistry=newServiceRegistryBuilder().applySettings(configuration.getProperties() ).buildServiceRegistry();sessionFactory=configuration.buildSessionFactory(serviceRegistry) ;//2. 创建⼀个 Session 对象Session session=sessionFactory.openSession();//3. 开启事务Transaction transaction=session.beginTransaction();//4. 执⾏保存操作News news = new News("Java12345", "ATGUIGU", new Date(new java.util.Date().getTime()));session.save(news);//5. 提交事务/doc/63fa364d5022aaea998f0fde.html mit();//6. 关闭 Sessionsession.close();//7. 关闭 SessionFactory 对象sessionFactory.close();}}7、测试结果如下:(1)数据库⾥⾯的结果如下:(2)Eclipse下的语句⽣成如下:以上就是简单Hibernate的测试,总结:1、不需要在数据库⾥⾯创建任何数据,由hibernate ⾃动⽣成;2、代码简单易理解,不复杂,测试数据只需要先创建以下⼏个步骤:SessionFactory-→Session-→Transaction-→session操作数据库-→提交-→关闭;3、不需要写SQL 语句,从头到尾没有写⼀条SQL语句,反⽽Hibernate帮我们⽣成SQL语句。

HEVC学习要点

HEVC学习要点

目录HEVC参考软件代码总结 (1)HEVC学习(八)——以SAO为例浅析跟踪代码方法 (2)HEVC中SAO--自适应样点补偿详细分析解读 (4)HEVC学习(十三)—— SAO函数解析之一 (7)HEVC学习(十四)—— SAO函数解析之二 (11)HEVC学习(十五)—— SAO函数解析之三 (18)HEVC学习(十六)—— SAO函数解析之四 (23)HM中int xSign (int x) 的分析 (26)HEVC之CU、PU、TU分析 (27)HEVC学习(十二)—— CU的最终划分 (27)HEVC CU 级别的分析 (29)HM中CU,TU的划分 (33)HEVC学习(十七)—— NAL unit 的解码过程之一 (34)HEVC学习(十八)—— NAL unit 的解码过程之二 (37)HEVC学习(十九)—— NAL unit 的解码过程之三 (39)HEVC学习(二十)——熵编码之一 (41)HEVC学习(二十一)——熵编码之二 (47)HEVC学习(二十二)——熵编码之三 (51)HEVC学习(二十三)——熵编码之四 (54)HEVC学习(二十四)——熵编码之五 (57)HEVC码率控制浅析——HM代码阅读之一 (59)HEVC码率控制浅析——HM代码阅读之二 (66)HEVC码率控制浅析——HM代码阅读之三 (76)HEVC码率控制浅析——HM代码阅读之四 (85)HEVC学习(十)——与变换有关的几个主要函数及重要变量 (91)HEVC学习(二十五)——变换系数的编码之一 (94)HEVC学习(二十七)——变换编码之二 (97)HEVC学习(二十六)——量化之一 (99)HEVC学习(二十八)——量化之二 (102)HEVC学习(二十九)——量化之三 (105)HEVC参考软件代码总结1.编码器程序从"TAppEncoder"工程中的encmain.cpp文件开始的,此文件中包含程序运行的入口函数"main",在main函数中主要做了编码器对象的创建、分析配置文件,初始化配置参数,和编码器最重要的功能"encode"。

moodle学习笔记

moodle学习笔记

datalib.php所有与数据库操作的函数函数1 addslashes_object ( $dataobject )避免数据记录中所有的危险字符。

其中$dataobject 是包含有所需数据的对象,addslashes 方法是用来避免SQL的不友好字符如quotes等。

函数2 get_admin ()以$user对象的形式返回主要的admin用户。

主要用户就是那些具有最小role_assignment id的admin用户。

函数3 get_admins()返回所有的admin用户列表。

函数4 get_courses_in_metacourse($metacourseid)返回metacourse表中所有的课程。

函数5 get_courses_notin_metacourse($metacourseid,$count=false)返回不在metacourse表中的课程。

函数6 count_courses_notin_metacourse($metacourseid)返回不在metacourse表中的课程的记录数。

函数7 search_users($courseid, $groupid, $searchtext, $sort='', $exceptions='') 在课程用户中进行搜索。

如果$coursid定义了课程网站,那么该方法将搜索所有未被删除且确定的用户。

datalib.php建立和输出XHTML的所有函数Moodle的一些重要文件夹admin:包含一些控制行政人员的接口auth:包含所有的认证模块,其子目录每一个就是一个认证模块,这些认证模块控制着对用户的建立,用户信息数据和用户访问系统的权利。

backup:包含备份课程的核心设备,主要服务于备份、恢复和对课程的引入blocks:是在moodle页面的左侧或者右侧显示盒装信息,这是最简单的模块course:这是最重要的一个模块,因为moodle就是围绕课程而开发的,开发者倾向于更改或增加课程和报告的格式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HEVC学习(二)—— HM的整体结构及一些基本概念7个工程1. TAppCommon2. TAppDecoder3. TAppEncoder4. TlibCommon5. TLibDecoder6. TLibEncoder7. TLibVideoIO'T'代表'Test'(这一个的理解可能有误),'App'代表'Application',表明该工程主要包含一些应用函数'Lib'代表'Library',表明该工程主要包含一些库函数。

'Common'表明该工程包含的一些函数是编码器和解码器共用的,'Decoder'表明该工程包含的函数是解码器使用的,而'Encoder'表明该工程包含的函数是编码器使用的。

'VideoIO'工程主要是实现对YUV文件的读写操作。

编码器和解码器的主函数分别在encmain.cpp和decmain.cpp中,相信光看源文件名都能看出来了。

(1)类的命名:(2)变量的命名:(3)函数的命名:HEVC学习(三)—— 帧内预测系列之一fillReferenceSamples函数(填补当前PU周围相关的样本值)——Void TComPattern::fillReferenceSamples——图像2(左上角为4个像素点,如无强调则以块为单位计算长度等?)PS:此处有两块图像:重建的YUV的大图像1、相对应的专用于预测的PU及其周边的参考样点图像2Pel*piRoiTemp——指向重建Yuv图像1 的位置(临时使用,指向可随意变动)Pel*piRoiOrigin——指向重建Yuv图像1对应于当前PU所在位置的首地址(对当前PU固定)Int*piAdiTemp——图像 2 的感兴趣位置(变动的,用于赋值)iPicStride——重建YUV图像1的宽iNumIntraNeighbor——指示PU周边可用邻块数uiWidth= uiCuWidth*2+1——图像2的宽,uiHeight= uiCuHeight*2+1——图像2的高uiCuWidth ——图像2的CurrentPU部分的宽,uiCuHeight——图像2的CurrentPU部分的高iTotalSamples——总样点数iTotalUnits——以4x4块为单位的块数iUnitSize——块的大小主要功能是在真正进行帧内预测之前,使用重建后的Yuv图像对当前PU(Predict Unit预测单元)的相邻样点进行赋值,为接下来进行的角度预测提供参考样点值。

PS:关于一个PU的相邻点,以及它的相邻点的可用性如何判断的问题,是一个细节问题,并不会影响我们对这个函数实现功能的理解。

PS:reference samples are partially available部分没看,也看不懂每个4x4块里的4个样点分别被赋值为对应位置的重建Yuv的样点值?(4*4块中不是16个样点吗)HEVC学习(四)—— 帧内预测系列之二CU、PU地址计算方法光栅扫描,即从左往右,由上往下,先扫描完一行,再移至下一行起始位置继续扫描。

H.264使用的主要就是光栅扫描顺序。

HEVC里同样也有光栅扫描顺序,但是,由于它对CU采用的是递归划分的方式,如果仍是采用光栅扫描顺序,对CU的寻址会很不方便。

HEVC定义了Z扫描顺序Z扫描是针对一个CU来说的,它是用于递归扫描CU的分割。

定位一幅图像中的一个CU (或其分割)大致是这么个过程,首先,由于CU的尺寸的最大值是已知的,会根据这个定位到该CU左上角相对于图像左上角的位置,即得到它的坐标,接着,才是对当前块进行Z 扫描,单位是4x4块,换句话说,Z扫描地址是对一个CU有效的,不能直接使用这个地址来确定它在图像中的位置。

HEVC学习(五)—— 帧内预测系列之三initAdiPattern函数(预测的前期准备,得到PU的过程)——Void TComPattern::initAdiPattern获得iNumIntraNeighbor、bNeighborFlags等——将参数传入(一)中的fillReferenceSamples 函数赋值——对周围样点进行3抽头的平滑滤波主要功能有三个(1)检测当前PU的相邻样点包括左上、上、右上、左、左下邻域样点值的可用性,或者说检查这些点是否存在;(2)参考样点的替换过程;(二)中已介绍过(3)相邻样点即参考样点的平滑滤波。

Bool bNeighborFlags[4*MAX_NUM_SPU_W+1]——指示4个方向上相邻样点值的可用性piAdiBuf= piAdiTempiNumUnitsInCu=uiCuWidth/iUnitSize;——CurrentPU宽(以块为单位,暂时理解4*4块宽4)iTotalUnits=(iNumUnitsInCu<<2)+1——左下、左、上、右上、1左上角isAboveAvailable函数——计算返回左边可用邻块数Int iBufSize =uiCuHeight2+uiCuWidth2+1;——滤波缓存区的大小,相邻块的个数UInt uiWH= uiWidth*uiHeight——一个缓存区中的元素个数,图像2中块的总总个数piAdiBuf——指向滤波前的参考样点的首地址piFilterBuf——将piAdiBuf所有参考样点拷贝到此区域——经过滤波后所得值保存在piFilterBufN中——存放滤波后样点值的区域piFilterBuf1——经过滤波的样点值(与piAdiBuf相差uiWH,因为滤波前后的值顺序存放)存放顺序:piAdiBuf—大小uiWH—piFilterBuf1—uiWH—piFilteredBuf2—uiWH—piFilterBuf—iBufSize(周边样本块数,只有这些才参与滤波)—piFilterBufNPS:piAdiBuf、piFilterBuf1按照图像顺序存放,piFilterBuf、piFilterBufN将周边样点顺序存放,方便滤波Q:获取当前PU左上角LT,右上角RT以及左下角LB以4x4块为单位的Zorder?不懂HEVC参考软件代码总结1.编码器程序从"TAppEncoder"工程中的encmain.cpp文件开始的,此文件中包含程序运行的入口函数"main",在main函数中主要做了编码器对象的创建、分析配置文件,初始化配置参数,和编码器最重要的功能"encode"。

2.在"encode"函数中,主要实现了读取YUV文件的数据、初始化工具对象例如:GOPEncoder、SliceEncoder、CUEncder……。

在此函数里,还包括一个encode函数,调用CompressGOP 函数来具体执行编码任务。

3.在CompressGOP函数中,完成了以下的功能:一,InitGOP将文件的码流分成若干GOP以便后续程序能够顺利执行。

二,InitEncSlice创建编码的Slice。

三,在此函数中,还包括preCompressSlice和CompressSlice两个函数,前者的作用是选择不同的lamuda进行编码(编码是调用了CompressCU函数,后续介绍),后者是在最好的lamuda下进行编码。

四,循环滤波五,……(熵编码等,还没看)。

4.在xCompressCU函数中(CompressCU函数的主体也是调用xComprssCU函数),先进行帧间预测xCheckRDCostMerge2Nx2N,xCheckRDCostInter等。

在做完帧间预测后进行阵内预测,这是调用的函数是xCheckRDCostIntra,在xCompressCU函数的后续部分,还递归调用自身以实现对每个CU的编码。

变换编码在encodeCoeff中实现,量化在xCheckIntraPCM完成。

5.xCheckRDCostIntra函数,主要完成帧内预测的任务,对亮度的预测使用estIntraPredQT,对色度使用estIntraPredChromaQT。

6.estIntraPredQT函数,在思想对亮度的处理和色度的处理是一样的,所以只介绍亮度的处理函数。

在estIntraPredQT函数中,主要完成了RDCost的选择,在其中predIntraLumaAng 函数实现了方向的预测;calcHAD函数计算了SATD;xModeBitsIntra函数计算编码的码率;xUpdateCandList更新了最好的RDCost所使用的模式。

HEVC学习(六)—— 帧内预测系列之四实现亮度分量帧内预测的主函数的大体框架estIntraPredQT函数(实现亮度分量帧内预测)——HEVC学习(七)—— 帧内预测系列之五predIntraLumaAng函数——Void TComPrediction::predIntraLumaAng帧内预测的最为重要的函数之一predIntraLumaAng1.getPreditorPtr函数——Int*TComPattern::getPredictorPtrInt*ptrSrc——获得指向参考样点首地址的指针数组m_aucIntraFilter——里面存放了不同PU尺寸下滤波的阈值getAdiOrgBuf函数——返回指向未经滤波的参考样点的首地址sw=2*iWidth+1?(ptrSrc指向的是当前PU的左上邻点,故加上2*iWidth指向下一行即当前PU的左邻点,加1指向当前PU的首地址)PS:若帧内预测模式满足滤波的条件,则返回的指针要加上uiWH(详见(五))2.根据帧内预测模式调用以下函数xPredIntraPlanar函数——进行Intra_Planar模式预测xPredIntraAng函数——进行Intra_DC、Intra_Angular(有角度的)模式预测3.xDCPredFiltering函数——Void TComPrediction::xDCPredFilteringxDCPredFiltering(ptrSrc+sw+1,sw,pDst,uiStride,iWidth,iHeight)——sw=2*iWidth+1?xDCPredFiltering(Int*pSrc,Int iSrcStride,Pel*&rpDst,Int iDstStride,Int iWidth,Int iHeight)对Intra_DC模式的边界进行平滑滤波处理。

Int iSrcStride——预测模块的Int*pSrc=ptrSrc+sw+1——ptrSrc指向当前PU的左上邻点,指向当前PU的首地址,Q?:第一行的点,利用对应上邻点与其加权平均(不是与dcValue吗?)HEVC/H.265参考代码跟踪跟踪帧内预测:4.在xCompressCU函数中(CompressCU函数的主体也是调用xComprssCU函数),先进行帧间预测xCheckRDCostMerge2Nx2N,xCheckRDCostInter等。

相关文档
最新文档