maryhaocool2023
这个作者很懒,什么都没留下…
展开
-
x265多线程
一:enum state{ nouse=0;完成后AdvanceState() ongoing=1;完成后AdvanceState() finished=2;(要reset)}(编码过程中setstates())swithc(task.id){case1:case2:}1step:getthreadtask(task,threadId...原创 2019-05-08 16:39:56 · 87 阅读 · 0 评论 -
x264_me_search_ref()里面的UMH搜索算法代码解析
x264_me_search_ref() 是 进行运动估计,计算cost来选择最小的运动估计方法,包括 好几种 运动搜索算法,其中全搜索太麻烦被替换:1)菱形搜索(钻石搜索)和 2)六边形+小正方形搜索雷神博客代码都有介绍,非常详细。3)非对称十字六边形网络搜索:case X264_ME_UMH: { /* * 主要包含3个步骤 * 第1步:进行混合搜索,包括如下: * A,非对称十字搜索。原创 2021-02-25 23:35:04 · 1035 阅读 · 0 评论 -
x265自有加速算法
1.帧内预测:快速模式:Mode 隔五个搜一个,在基础上个隔两个搜一个先简单计算一下角度cost,找到最小,把1.2*最小的放入list,再算RDcost原创 2022-01-07 17:17:03 · 605 阅读 · 1 评论 -
x265 x86inc.asm代码注释
【代码】x265 x86inc.asm代码注释。原创 2022-09-27 18:50:28 · 345 阅读 · 0 评论 -
x265中的lookahead
1.决定帧类型I帧 P帧 B帧 scenecut 判断场景切换2.收集一些信息来后面快速决策p->interRefine为使用lookahead分析负载的编码启用内部细化- 0:从已保存编码强制模式和深度。- 1:(0) +的功能,当当前深度小于min-cu-size的深度时,计算所有在min-cu-size的深度。当save encode决定当前块为skip(对于所有大小)计算skip/merge。- 2:功能(1), 不论大小限制模式评估时,特定模式被确定为最佳模式原创 2022-02-08 14:43:02 · 1512 阅读 · 0 评论 -
x265 计算time
函数x265_mdate();比如starttimemv_1= x265_mdate();。。。starttimemv_2= x265_mdate();time=starttimemv_2-starttimemv_1;原创 2022-01-07 17:31:57 · 188 阅读 · 0 评论 -
x265编码工具
帧内预测:33种+DC+PLANER码率控制:继承x264码控,利用history的bits 和 complexity并行:WPP(多线程开这个就关), lookahead 多线程,编码多线程原创 2021-06-01 12:10:14 · 369 阅读 · 2 评论 -
x265 码率控制算法(三)CRF
CRF: 在 rateControlStart()调用 rateEstimateQscale()估计qpCRF调用getQScale时给的rateFactor的参数不同,CBF时是常数,使得计算得到的QScale与已编码视频的复杂度成正比。代码如下:没有overflow。原创 2021-04-07 13:27:20 · 1872 阅读 · 0 评论 -
x265 码率控制算法(二)ABR
2.ABR: 在 rateControlStart()调用 rateEstimateQscale(): abr、crf条件下估计qp I/P帧:根据预估bit获取qp: B帧:B帧的QP由前后两个参考的P帧的QP插值而来原创 2021-03-11 04:54:08 · 1144 阅读 · 0 评论 -
x265 码率控制算法(一)CQP
int RateControl::rateControlStart(Frame* curFrame, RateControlEntry* rce, Encoder* enc){ int orderValue = m_startEndOrder.get(); int startOrdinal = rce->encodeOrder * 2; while (orderValue < startOrdinal && !m_bTerminated) .原创 2021-03-08 10:11:51 · 1068 阅读 · 0 评论 -
x265并行代码分析(二)
encoder_create()函数的主要功能是检测线程池、可用的线程数目等等,若线程使用的条件符合则调用threadMain()函数,对应的代码分析如下:void Encoder::create(){ if (!primitives.pu[0].sad) { // this should be an impossible condition when using our public API, and indicates a serious bug.原创 2022-09-28 19:36:47 · 391 阅读 · 0 评论 -
x265并行代码分析(一)
CPU的核心数是指物理上,也就是硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。线程数是一种逻辑的概念,简单地说,就是模拟出的CPU核心数。比如,可以通过一个CPU核心数模拟出2线程的CPU,也就是说,这个单核心的CPU被模拟成了一个类似双核心CPU的功能。我们从任务管理器的性能标签页中看到的是两个CPU。比如Inte l赛扬G460是单核心,双线程的CPU,Intel 酷睿i3 3220是双核心 四线程,Intel 酷睿i7 4770.原创 2021-03-05 21:08:29 · 319 阅读 · 0 评论 -
x265代码解读博客合集
x265代码博客:main():https://blog.csdn.net/nk_wavelet/article/details/52551069?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-16.control&dist_request_id=1328593.22614.16148206043836173&depth_1-utm_source=distribute.pc_relevant.none原创 2021-03-04 19:59:24 · 1897 阅读 · 4 评论