- 博客(73)
- 收藏
- 关注
原创 简论H.266与H.265、AV1、H.264对比
来源:H系列有MPEG和VCEG推出 ,VPX系列由谷歌推出,H.265有更高的图像质量,而VP9对于流媒体来说更加可靠。H.265更大的预测模型实现了边缘可视化,而VP9实施更严格的编码规则,似乎可以让流媒体更加连贯和可靠。其中,H.265其压缩效率比H.264提升50%,VP9略逊于H.265,H.266编码性能最高,AV1比VP9同等质量下减少30%比特率。目录:1.编解码框架差异...
2019-02-22 14:44:31 45303 1
原创 前50道Leetcode总结
Leetcode总结1.Two Pointers SUMS 类型: 第十五题:3SUMS: 1.三层重复值跳过,i+left+right;2.排序后当前值大于目标值提前退出 注:也可以用Hash,但是复杂度不会有变化 N^2,还有一个小弊端就是第一层重复值不能跳过 第十六...
2019-02-14 16:41:37 383 1
原创 vp9 命令行参数
先生成 window下的工程,再用visual studio给工程配置:foreman_qcif.yuv vpxenc.exe --codec=vp9 --rt --passes=1 --verbose --psnr --cpu-used=6 --threads=0 --auto-alt-ref=1 --profile=0 --lag-in-frames=0 --cq-level=20 -
2016-08-19 10:10:34 1389 1
原创 Spiral Matrix leetcode
[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]本题要求用You should return[1,2,3,6,9,8,7,4,5].public:vector spiralOrder(vector>& matrix) {vector res;if(!matrix.empty()){int m=matrix.siz
2016-07-16 20:08:47 182
原创 HEVC-SCC rgb file input
bEnableTrans:是不是要trans color。motionCompensation() :貌似只能YUV?xCheckRDCostIntraCSC():更简单,
2023-11-24 21:03:32 498
原创 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 376
原创 mac中linux 命令
1.history:查看历史命令 history > loghistory.txt 输出历史命令到txt文档2. cd 打开文件 cd ../ 返回到上一层3. ls 命令用来列出目标目录(缺省的话为当前目录)中不隐藏的所有的子目录和文件 ls -a 显示当前目录下的所有文件及文件夹包括隐藏的.和..等ls -l //显示不隐藏的文件与文件夹的详细信息ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。ls -al //显示当前目录下的所有文件及文件夹包...
2022-02-16 14:32:25 1329
原创 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 1403
原创 x265 计算time
函数x265_mdate();比如starttimemv_1= x265_mdate();。。。starttimemv_2= x265_mdate();time=starttimemv_2-starttimemv_1;
2022-01-07 17:31:57 182
原创 mac终端
1.文件夹名字和路径名字等 输入法中英区别( 尤其是标点符号 “” )和 空格。2.mac 解压命令:unzip x.zip3.zsh命令行失效:命令行执行:export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin4.切换bash命令:Cash -s /bin/zsh强制转换到bash:dscl . -read/Users/$USER/UserShellexec su -$USER5....
2022-01-07 17:28:05 18
原创 x265自有加速算法
1.帧内预测:快速模式:Mode 隔五个搜一个,在基础上个隔两个搜一个先简单计算一下角度cost,找到最小,把1.2*最小的放入list,再算RDcost
2022-01-07 17:17:03 565 1
原创 汇编指令集合
汇编语言cs:是代码段寄存器,ds是数据段寄存器。段代码CS:存放当前正在运行的程序代码所在段的段基值,表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得IP:相应的偏移值。 CS+IP1. call word ptr + 内存单元地址这个指令的是先将call指令的下一条指令的IP入栈,然后跳到以内存单元地址为IP的代码处2.call dword ptr + 内存单元地址call是汇编指令,用来调用子过程。后面的Dword ptr[40105c]是一个内存地址,就是要调用的子过
2021-11-15 16:38:40 3609
原创 DST 和 DCT的区别
主要是由于帧内预测利用周围已经编码块的边缘像素,因此距离预测像素越远,预测残差越大。DST中的基函数比DCT能够很好的适应这一特征,将能量更好的集中在左上角:DST公式:DCT公式:举例4x4原始矩阵:Cos变换矩阵:Sin变换矩阵:...
2021-10-15 07:18:59 1038
原创 率失真优化模型
DST 和 DCT的区别,为什么DST 用到帧内预测4x4上?主要是由于帧内预测利用周围已经编码块的边缘像素,因此距离预测像素越远,预测残差越大。DST中的基函数比DCT能够很好的适应这一特征,将能量更好的集中在左上角:DST公式:转存失败重新上传取消DCT公式:举例4x4原始矩阵: Cos变换矩阵:Sin变换矩阵:...
2021-10-15 07:12:37 485
原创 吴恩达 神经网络和深度学习 笔记一
例子:EPSETPROPOERTY SetProperty#defien PIA_STDCALL __stdcall (c++函数调用协议:https://www.cnblogs.com/yejianyong/p/7506465.html)typedef int (PIA_STDCALL* EPSETPROPOERTY)(int a,int* b,int c)直接跳到:ST...
2021-10-10 23:01:01 80
原创 ECM(Enhanced Compression Model )新技术
Enhanced Compression Model 是 继VVC的另一个高级标准。1.帧内预测: Multi-model LM(MMLM): JVET-D0110, Gradient PDPC: JVET-Q0391,由于没有二次参考样本,在少数情况下,PDPC可能无法应用。 在这些情况下,应用了从水平/垂直模式扩展而来的基于梯度的PDPC。将PDPC权值(wT / wL)和nScale参数分别设置为水平/垂直模式下对应的参数...
2021-09-21 13:14:30 2117 2
原创 AVS3最新技术简介
1.块划分:采用了QT(四叉树)+BT(二叉树)+EQT,增加工字型EQT划分模式;2.帧间编码工具:AMVR (自适应像素精度)以及快速算法 HMVP(基于历史的)
2021-09-20 07:36:37 820
原创 视频编码中滤波的理论依据
在编码中,每个宏块的子块都会按照既定分割方式进行预测、变换和量化编码,在这个过程中可能导致块效应的因素主要有以下几种:1.由于变换和量化编码的运算精度误差导致边界出现不连续;2.由于码率设置较低,量化强度较大,或者相邻宏块的量化参数不一致导致重建图像的细节部分产生差异;3.由于运动补偿时的参考块位置与当前块位置关系不一致导致重建像素的内容实际上缺乏相关性。...
2021-06-23 04:18:59 406
原创 AV1 新技术
块划分:4x4~128x128,增加竖四叉,横四叉,上T,左T,右T,下T划分;帧内预测:预测方向8种扩展到56种;增加3个新的平滑预测器;从较低坡度的方向进行参考;亮度预测色度;增加调色板预测指标;IBC;基于递归滤波的帧内预测器,适用于边缘像素。帧间预测:参考帧数量3-7,LAST(最近过去的)帧,GOLDEN(遥远过去的)帧和ALTREF(临时过滤将来的)帧,两个过去的帧(LAST2和LAST3)以及两个将来的帧(BWDREF和ALTREF2运动场估计过程分为三个阶段:运动矢量缓冲,运动轨
2021-06-22 08:59:11 403
原创 H.266 编码新旧技术
VVC变换编码(二)低频不可分离变换LFNSTVVC变换编码(三)子块变换( sub-block transform,SBT)
2021-06-19 00:57:03 478
原创 AV1 aomenc.c 代码注释
/** Copyright (c) 2016, Alliance for Open Media. All rights reserved** This source code is subject to the terms of the BSD 2 Clause License and* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License* was not distributed with...
2021-06-13 12:49:47 857
原创 x265编码工具
帧内预测:33种+DC+PLANER码率控制:继承x264码控,利用history的bits 和 complexity并行:WPP(多线程开这个就关), lookahead 多线程,编码多线程
2021-06-01 12:10:14 341 2
原创 X265参考帧管理
x265参考帧管理,首先了解一下帧类型:openGOP: 关闭情况下gop都是独立解码,反之亦然哦~IDR: 帧内编码,不参考其他帧;CRA: openGOP中的第一帧,帧内编码,会参考其他gop中的帧,RASL:从CRA接入的访问点,如果参考之前的GOP,有些帧会被丢弃.RADL: 不是从CRA接入的访问点,可以解码的帧I:帧内解码,会参考IDR.http://www.voidcn.com/article/p-arfwwztb-bga.html............
2021-04-23 00:10:54 1146 2
原创 x265 码率控制算法(三)CRF
CRF: 在 rateControlStart()调用 rateEstimateQscale()估计qpCRF调用getQScale时给的rateFactor的参数不同,CBF时是常数,使得计算得到的QScale与已编码视频的复杂度成正比。代码如下:没有overflow。
2021-04-07 13:27:20 1672
原创 x265 码率控制算法(二)ABR
2.ABR: 在 rateControlStart()调用 rateEstimateQscale(): abr、crf条件下估计qp I/P帧:根据预估bit获取qp: B帧:B帧的QP由前后两个参考的P帧的QP插值而来
2021-03-11 04:54:08 1109
原创 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 1031
原创 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 291
原创 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 1791 4
原创 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 961
原创 vvc里面的查表示例
if (leftAvailable || aboveAvailable) //如果左侧或者上侧像素可用时 { int diff = maxLuma[0] - minLuma[0];//maxY - minY if (diff > 0) { int diffC = maxLuma[1] - minLuma[1];//maxC - minC int x = floorLog2( diff ); static const uint8_t Di.
2021-01-09 05:01:20 286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人