自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (2)
  • 收藏
  • 关注

原创 【ffmpeg】MP4视频转换为yuv视频

【ffmpeg】MP4视频转换为yuv视频

2024-03-25 16:52:13 163

原创 【ffmpeg】去除视频中重复帧

【ffmpeg】去除视频中重复帧

2024-03-25 16:46:00 174

原创 【ffmpeg】修改YUV分辨率

【ffmpeg】修改YUV分辨率

2024-03-22 17:48:07 141

原创 UE5安装报错ERROR:MSB3073

UE5安装报错ERROR:MSB3073

2024-03-18 14:54:08 158

原创 【IQA】PYIQA图像质量评估工具安装及运用

【IQA】PYIQA图像质量评估工具安装及运用

2024-03-01 17:27:31 300

原创 【插帧学习】RIFE论文解析

【插帧学习】RIFE论文解析

2023-12-18 15:42:09 937

原创 【插帧学习】传统插帧算法原理(MEMC)

【插帧学习】传统插帧算法原理(MEMC)

2023-12-14 17:38:21 849

原创 【插帧学习】英伟达Super SloMo网络测试与模型代码分析

【插帧学习】英伟达Super SloMo网络测试与模型代码分析

2023-12-14 14:54:32 203

原创 x265安装与运行

Win10下x265安装与运行

2023-12-13 11:22:46 285

原创 学习笔记:帧率转换之三维递归搜索块匹配算法

帧率转换之三维递归搜索块匹配算法

2022-10-03 21:41:31 162

原创 YOLO学习笔记

YOLO学习笔记

2022-10-02 11:25:35 1918 1

原创 JVET提案学习:块重要性映射Block importance mapping

JVET-Y0077:AHG10: Block importance mapping视频前处理技术学习

2022-10-01 22:22:57 858

原创 视频前处理:时域滤波MCTF技术学习

时域滤波MCTF(Motion Compensated Temporal Filter)原理解析

2022-10-01 21:42:52 3574 1

原创 【VTM10.0】反量化之DQ技术

DQ反量化时,会把初始状态设置为0,然后根据level(也就是k)来进行下个点的state判断,如下图所示:反DQ的函数是dequantBlock函数,个人理解见注释:void Quantizer::dequantBlock( const TransformUnit& tu, const ComponentID compID, const QpParam& cQP, CoeffBuf& recCoeff, bool enableScalingLists, int* piDequ

2021-06-05 15:47:12 510

原创 【VTM10.0】量化之一般量化技术

量化公式:其中:函数是quant函数,个人理解见注释:void Quant::quant(TransformUnit &tu, const ComponentID &compID, const CCoeffBuf &pSrc, TCoeff &uiAbsSum, const QpParam &cQP, const Ctx& ctx){ const SPS &sps = *tu.cs->sps; const

2021-06-05 15:22:22 705

原创 【VTM10.0】反量化之RDOQ、一般量化

RDOQ与一般量化的过程虽然不同,但是解码的步骤时在相同的,如下:解码都调用的dequant函数:该函数主要完成写下面的公式,进行反量化。void Quant::dequant(const TransformUnit &tu, CoeffBuf &dstCoeff, const ComponentID &compID,

2021-06-05 11:57:56 508 1

原创 【VTM10.0】量化之RDOQ技术

其中第一步的量化与普通量化相同,步骤如下:代码理解见注释(仅个人理解,欢迎指正):void QuantRDOQ::xRateDistOptQuant(TransformUnit &tu, const ComponentID &compID, const CCoeffBuf &pSrc, TCoeff &uiAbsSum, const QpParam &cQP, const Ctx &ctx){ const FracBitsAccess&..

2021-06-05 11:44:40 614

原创 【VTM10.0】反量化反变换技术

void TrQuant::invTransformNxN( TransformUnit &tu, const ComponentID &compID, PelBuf &pResi, const QpParam &cQP ){//反量化与反变换 const CompArea &area = tu.blocks[compID]; const uint32_t uiWidth = area.width; const uint32_t uiHe

2021-05-15 11:42:57 517 3

原创 【VTM10.0】熵编码技术

CABAC编码template <class BinProbModel>void TBinEncoder<BinProbModel>::encodeBin( unsigned bin, unsigned ctxId ){ BinCounter::addCtx( ctxId ); BinProbModel& rcProbModel = m_Ctx[ctxId]; uint32_t LPS = rcProbModel.getLPS( m

2021-05-14 20:53:19 278

原创 【VTM10.0】帧内之MIP技术

MIP (Matrix weighted Intra Prediction,基于矩阵的帧内预测 )矩阵:根据不同块大小,分别预先训练出不同的多组矩阵,存在ROM中;向量:将参考像素的一部分进行一些处理,排成一维向量;通过矩阵与向量相乘进行帧内预测,得到当前块的预测值。其预测过程可以分为三步,以大小为8 x 8的CU为例:ROM中矩阵规模为[16 x 8],待输入向量规模为[8 x 1],经过矩阵相乘后得到16个预测值。MIP初始化代码:void IntraPrediction::initIn

2021-05-13 20:34:15 350 1

原创 【VTM10.0】xPredIntraAng函数解析

xPredIntraAng函数内进行角度模式的解析,获取块内的预测值。void IntraPrediction::xPredIntraAng( const CPelBuf &pSrc, PelBuf &pDst, const ChannelType channelType, const ClpRng& clpRng){ int width =int(pDst.width); int height=int(pDst.height); const bool bIsMod

2021-05-13 20:21:00 413

原创 【VTM10.0】predIntraAng函数解析

void IntraPrediction::predIntraAng( const ComponentID compId, PelBuf &piPred, const PredictionUnit &pu){ const ComponentID compID = MAP_CHROMA( compId ); const ChannelType channelType = toChannelType( compID ); const int

2021-05-13 20:18:12 208

原创 【VTM010.0】xIntraRecBlk函数解析

本函数完成了重建值的生成。1.获取当前块的pred2.反量化反变换得到resi3.resi+pred=recovoid DecCu::xIntraRecBlk( TransformUnit& tu, const ComponentID compID ){ if( !tu.blocks[ compID ].valid() ) {//如果当前的tu块是无效的,则返回 return; } CodingStructure &cs = *tu.cs;

2021-05-13 20:10:21 287

原创 【VTM10.0】帧内之DM技术

色度只有8种候选模式:横轴是色度块所对应的亮度块的预测方向,纵轴是当前色度块的候选预测模式。冗余性检验: 如列表前面出现过DM的模式,则用66取代列表前面的重复模式以免在RDcost的时候和DM模式重复,最后选取RDcost最小的一种角度模式,即可最终确定色度角度预测模式。DM模式:找到当前色度CU位置对应的亮度CU位置,将其中心块的预测模式作为DM候选模式。uint32_t PU::getFinalIntraMode( const PredictionUnit &pu, cons

2021-05-12 19:46:51 316 1

原创 【VTM10.0】帧内之CCLM技术

为了减少分量间的冗余,提出分量间线性模型预测技术,基本思想是假设亮度分量和色度分量间存在某种线性关系,根据此线性关系实现亮度分量到色度分量的预测。VVC中CCLM步骤如下:1.使用特定位置的四个点。对同位亮度块的 上述4个位置 以及 块内的所有 亮度样本进行下采样以获得和色度样本一一对应的亮度样本。以CCLM为例:VTM10.0亮度下采样的代码:用于生成包括参考像素和块内像素的下采样亮度值。// LumaRecPixels 获得亮度的重建值void IntraPrediction

2021-05-12 19:30:02 422

原创 【VTM10.0】帧内之ISP技术

ISP(Intra Sub-Partitions,帧内子区域划分)依据CU的亮度块尺寸,将其沿水平或垂直方向划分成2个或者4个尺寸相同的子块,然后逐个子区域进行预测和重建。进行帧内ISP的最小CU尺寸为4 x 8或8 x 4(即4 x 4的CU不使用ISP),4 x 8或8 x 4的CU会被分成2个子区域,其他尺寸则被分成4个子区域,即每个子区域最少需要有16个像素。代码意思见注释void IntraPrediction::initIntraPatternChTypeISP(const Codi

2021-05-08 21:09:30 1560 4

原创 【VTM10.0】帧内之PDPC技术

PDPC (Position dependent intra prediction combination)一种对预测值的修正的技术。部分帧内模式在进行帧内预测之后,进行PDPC的加权平均计算,得到最终预测值。分为以下三种情况处理:Planar/DCHor/Ver角度模式 2~17 和 51~66(代码里好像所有角度都用了??m_ipaParam.applyPDPC &= m_ipaParam.angularScale >= 0;这一句是什么意思??是只有 2~17 和 5

2021-05-07 21:09:26 688

原创 【维特比算法】简单易懂讲解

最近看了一下维特比算法,是一种典型的动态规划算法。概念定义就不多说了,直接进入正题。对这样一个最短路径的问题,如何去求解?暴力法当然可以找到答案,但是很复杂,所以这个时候我们就要使用维特比算法了自己画了一张假设要从A到D,我们是不是一定会经过t2和t3时刻,就是一定会经过B和C,只不过现在要求的最短的路径经过的是哪一个B和C。我们可以分时刻来求解,对于t2时刻,是不是可以求出每个B的最短路径。t2时刻比如对于B1,到达B1的最短路径为5,记做L(B1)=5到达B2的最短路径L(B2)

2021-03-20 11:03:07 638 1

原创 H5文件读取

H5文件读取:import torch.utils.data as dataimport torchimport h5pyclass DatasetFromHdf5(data.Dataset): def __init__(self, file_path): super(DatasetFromHdf5, self).__init__() hf = h5py.File(file_path) self.data = hf.get('data')

2021-01-16 11:44:11 2023

原创 python对yuv图像裁剪

首先读取yuv图像,从图像的命名中读出图像的长和宽,可能要跟你的yuv文件命名方式来做修改。这是我的yuv图像的命名方式。达到长和宽之后就可以读取图像的像素值了,我这里设置的是裁剪成40的倍数,这两句是得到裁剪后的长和宽。 Height_Y = Height_Y // cropc * cropc Width_Y = Width_Y // cropc * cropc裁剪 current_Y = Y[0:Height_Y, 0: Width_Y ] current_U = U[

2021-01-16 11:20:57 827

原创 Python计算yuv图像PSNR

计算PSNR计算PSNR函数:def PSNR(pred, gt,height,width): pred = np.array(pred) gt = np.array(gt) pred=pred.reshape(-1,height* width) gt = gt.reshape(-1, height* width) res = np.mean((pred - gt) ** 2, axis=1) res=res.reshape(-1,1) res=

2021-01-16 10:59:28 1365

原创 三个list分量合成YUV文件

把list类型存储的Y、U、V分量合成一张yuv文件。这里output_Y,output_U,output_V是三个list类型的列表。'I:/png/123.yuv’是这个yuv图像存放的位置。with open('I:/png/123.yuv'','wb+') as fp: fp.write(np.array(output_Y, dtype=np.uint8).tobytes()) fp.write(np.array(output_U, dtype=np.uint8).tobytes(

2021-01-10 13:34:04 393

原创 yuv图像分量list读取

读取YUV文件,三个分量Y,U,V分别放在list类型的YUV[0]、YUV[1] 和YUV[2]中YUV = [[],[],[]]fp1 = open('I:/png/1/' + 'f' + str(1).zfill(3) + '.yuv', 'rb')YUV[0] = list(np.frombuffer(fp1.read(Height_Y * Width_Y * 2//2), np.uint8).reshape((Height_Y*Width_Y)))YUV[1] = list(np.from

2021-01-10 13:24:05 346

原创 python输入命令行无反应

在pycharm中输入命令行发现代码根本没运行,查了一下原因,发下是python路径没有配置正确。在电脑——属性——高级系统设置——环境变量——path添加你的python大文件的目录然后确定,在打开cmd出现版本号并且下边是>>>箭头,表示成功。再次输入命令行,在代码目录空白处按住shift加右键,打开powershell窗口。(因为powershell可以直接定位到代码的位置而且可以用tab键来自动补全文件名)输入命令行之后,运行成功。pycharm也成功

2020-11-23 11:36:21 6315 1

原创 numpy手动实现反卷积代码

反卷积代码import numpy as npimport torchdef zy_deconv(img, in_channels, out_channels, kernels,bias, stride=1, padding=0,output_padding=0): #得到参数 N, C, H, W = img.shape kc,kc_in,kh, kw = kernels.shape p = padding #间隔填充 if stride>

2020-10-23 16:23:43 1069

原创 numpy手动实现卷积代码

import numpy as npimport torchdef ZY_Conv(img, in_channels, out_channels, kernels, bias, stride=1, padding=0): # 得到参数 N, C, H, W = img.shape kc,kci,kh, kw = kernels.shape p = padding #四周填充 if p: img = np.pad(img, ((0, 0)

2020-10-23 16:23:26 584

原创 理解全连接层与GAP

全连接层讲解可以参照这牌你文章,里边全连接层讲的非常好。全连接层缺点:参数量过大,会导致过拟合。所以现在会用一种GAP(全局平均池化)来代替全连接层。GAP就是让一个H×W×C的输入变成一个1×1×C的输出,每个输出都是该层的像素的平均值。假设卷积层的最后输出是h × w × d 的三维特征图,具体大小为6 × 6 × 3,经过GAP转换后,变成了大小为 1 × 1 × 3 的输出值,也就是每一层 h × w 会被平均化成一个值。...

2020-10-20 17:24:07 1490

原创 【WPS】未安装VBA支持库,无法运行文档中的宏。如需要启用宏功能,请点击这里了解详情。

亲测有效!链接:https://pan.baidu.com/s/1rmByVLKp80n5evi070zORA提取码:whjr下载后双击运行,然后关闭WPS,再次打开打开,问题解决。

2020-10-20 16:53:18 46374 18

原创 激活函数(sigmoid和ReLU)

激活函数给神经元引入了非线性因素,如果不用激活函数,神经网络每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。激活函数使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。sigmoidsigmoid函数的定义为:sigmoid函数的图像如下:优点:sigmoid函数可以将实数映射到 [公式] 区间内。平滑、易于求导。缺点:1. 激活函数含有幂运算和除法,计算量大;2. 反向传播时,很容易就会出现梯度消失的情况,从而无法完成

2020-10-20 10:49:05 5354

原创 shortcut和残差连接

最近搜索了下这几个概念,记录一下个人理解。shortcutx、y是相邻两层,通过W_H连接,通过将多个这样的层前后串接起来就形成了深度网络。其中H表示网络中的变换。为了解决深度网络的梯度发散问题,Highway(人名)在两层之间增加了(带权的)shortcut。其中C=1-T。残差连接(skip connect)若没有加入identity分支,那么就是用非线性变化函数来描述一个网络的输入输出,即输入为X,输出为F(x),F通常包括了卷积,激活等操作。但是当我们强行将一个输入添加到函

2020-10-20 10:28:43 9861 1

cesh代码使用,加入新方案

cesh代码使用,加入新方案

2024-05-11

SRGAN-ImageNet训练集

https://github.com/Lornatang/SRGAN-PyTorch/tree/main SRGAN_ImageNet训练集

2024-01-18

SRGAN预训练模型下载

https://github.com/Lornatang/SRGAN-PyTorch/tree/main SRGAN预训练模型下载

2024-01-18

vmaf-2.3.1.zip

vmaf-2.3.1.zip

2024-01-12

vmaf-v0.6.1.json

vmaf_v0.6.1.json文件

2024-01-12

SRCNN数据集,包括91-image,set5,set14

91-image包括91张图像、set5中5幅图,set14中14幅图,可用于SRCNN超分辨率的训练、验证与测试

2020-09-01

玉米生长状态数据集(健康及病害)

玉米生长状态数据集,包括玉米的4种生长状态。玉米健康、大斑病、小斑病和玉米锈病,文件夹中分别用0、1、2、3表示。各类图片分别有433、354、187、432张,共1406张。

2020-07-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除