视频编码
文章平均质量分 87
原理、源码、学习笔记
长星照耀十三州府_
中国科学技术大学研究生
展开
-
VVC系列(四)initCULevel代码解读
3、添加划分模式,默认添加顺序是QT、TTV、TTH、BTV 、BTH和Non-split,因为是保存在堆栈中,测试顺序相反。值得注意的是,当current CU的 QtDepth 小于左侧和上侧相邻CU的 QtDepth 时,或者 current CU的决策深度较浅时,会将QT的测试顺序放在BT之前。4、添加测试模式,此时的QP range是Non-split的,包括 intra、inter、IBC 和 palette等模式。的开始被调用,将需要测试的划分模式和编码模式加入堆栈。确定划分模式是否合法,原创 2022-12-09 16:54:44 · 772 阅读 · 2 评论 -
VVC系列(三)xCompressCTU、xCompressCU和xCheckModeSplit解析
判断是否需要执行IBC模式(帧内块复制技术,屏幕内容编码的一种技术,参考区域不局限在相邻像素行,而是可以利用当前帧所有已编码区域,预测待编码CU)该函数的主要部分是一个do-while循环,遍历子CU的区域,和x265相同的是,也会比较当前累计的cost和最优cost,用来进行提前终止。判断是否开启了 CTU Dual Tree技术,如果开启,需要对色度分量进行一次预测。维护需要测试的mode,通过一个do-while循环,尝试各种划分模式。用来存储当前compress区域各种模式下的数据,原创 2022-10-30 17:29:15 · 1202 阅读 · 0 评论 -
VVC系列(二)编码结构和块划分准则
介绍了VVC的编码结构和四叉树划分准则原创 2022-10-01 17:47:34 · 1161 阅读 · 0 评论 -
VVC系列(一)VTM下载编译
VTM下载编译原创 2022-10-01 16:05:45 · 857 阅读 · 0 评论 -
diffusion model原理和算法伪代码
本文从前置数学知识和VAE出发,介绍了扩散模型的原理,最后给出了伪代码实现。原创 2022-07-08 17:07:19 · 2280 阅读 · 1 评论 -
论文解读-Variational Image Compression With a Scale Hyperprior
本文发表在ICLR2018,作者Balle沿袭了ICLR2017上的工作,增加了可以提取边信息的Hyperprior,进一步消除了图像在latent space上的空间相关性,同时改进了此前的分段线性函数拟合边缘概率分布的做法。本文所提出的方法在PSNR上接近HEVC BPG,而在SSIM上则超过了HEVC BPG。在此前的框架中,解决微分熵不可导的操作是设计了一个entropy model py^(y^)p_{\hat{y}}(\hat{y})py^(y^)以逼近图像xxx在latent space原创 2022-07-03 17:08:41 · 2371 阅读 · 0 评论 -
1-end2end_optimized_image_compression
本文发表在2017年的ICLR上,主要贡献是提出了一套包括分析变换(analysis transformation)、均匀量化器(uniform quantizer)和综合变换(synthesis transformation)的端到端图像压缩框架,并使用代理函数的形式将量化和离散熵等不可导的步骤松弛为可导的步骤,作者同时证明,在特定条件下,本文的松弛化后的损失函数在形式上类似于变分自编码器(variable autoencoder)的似然。......原创 2022-07-02 18:26:49 · 892 阅读 · 0 评论 -
2105_TIP_DeepQTMT:一种VVC帧内编码块划分的深度学习方法
论文题目:Deep QTMT_一种VVC帧内编码块划分的深度学习方法来源:2021,TIP,BUAA概述需要解决的问题:简化在VVC中占据了编码时间的97%以上的编码块划分过程本文的贡献:创建了大规模数据集提出了多阶段停止的CNN网络架构(MSE-CNN)以适应灵活的多阶段QTMT结构提出了自适应损失函数,综合了分割模式的不确定数量和最小化率失真损失的目标建立了一个多临界点的可调节编码复杂度和率失真损失的trade-off的决策框架SOTA:相比于之前的SOTA方法,降低了VVC 44原创 2022-02-19 18:06:12 · 1718 阅读 · 4 评论 -
HM下载调试_ubuntu20
文章目录下载编译运行Reference之前的文章,我们介绍了如何在windows10上下载并调试HM16.20,这里我们介绍如何在Ubuntu上下载调试HM16.20。下载我们已经知道了HM通过SVN(subversion)管理代码,所以这里我们首先安装subversionsudo apt-get install subverison安装完成后,输入下面的命令查看是否安装成功subserve --version然后在本地新建一个空文件夹,命名为HM_1620_dmap,输入如下命令安装H原创 2022-01-27 15:19:45 · 1079 阅读 · 0 评论 -
x265笔记_4_CompressCTU源码分析
文章目录Before `compressCTU``compressCTU`输入参数处理流程重要变量`m_parame``rd_level``amp`和`rect`重要函数`compressIntraCU`输入参数处理流程1. 参数初始化2. 计算划分前的代价2.1 当存在可用的模式集合时2.2 当不存在可用的模式集合时3. 计算划分后的代价3.1 更新划分标识位`mightSplit`3.2 计算划分后的代价4. 更新Best mode4.1 比较`md.pred[PRED_INTRA]`和`md.pred原创 2022-01-08 22:34:23 · 2962 阅读 · 3 评论 -
x265笔记_3_并行处理机制
HEVC中的并行处理机制,x265中的并行处理原创 2021-12-31 23:40:35 · 2128 阅读 · 0 评论 -
x265笔记_2_整体调试和初步的源码分析
文章目录x265的入口函数`main``main`调用的部分函数编码函数`api->encoder_encode``Encoder::encode``FrameEncoder::startCompressFrame`函数调用关系Referencex265的入口函数mainx265的入口函数是cli\Source Files\x265.cpp中的main函数,该函数的执行流程:解析并设置参数,cliopt.parse()和cliopt.output->setParam;根据参数创建编码器e原创 2021-12-30 23:46:44 · 1104 阅读 · 0 评论 -
x265笔记_1_下载调试
Windows环境下载编译x265原创 2021-12-30 10:42:25 · 889 阅读 · 2 评论 -
HM笔记_3_帧内块划分源码分析
文章目录CTU层次CU层次1. 参数初始化(读取BestCU数据和参数、初始化用于计算BestCU RD cost的量化参数QP)2. 计算BestCU的RD cost2.1 初始化TempCU,计算帧间模式的RD cost2.2 计算帧间和帧内模式的PD cost3. 计算BestCU划分后的子CU的RD cost(递归调用,并保存RD cost最优的CU)4. 递归终止条件最近需要研究HM的与块划分有关的函数(TAppEnc),但是网上可参考的资料很少,加上这部分的代码比较繁杂,所以本文基于最新的16原创 2021-12-19 16:48:50 · 820 阅读 · 1 评论 -
HM笔记_2_命名规则
文章目录工程的命名规则类、变量和函数的命名规则1. 类的命名2.变量的命名3.函数的命名4. 例子本文转载自 HEVC中的命名规则,并稍作修改。工程的命名规则HM16.20共分为9个工程:1. TAppCommon,2. TAppDecoder,3. TAppDecoderAnalyser,4. TAppEncoder 5. TAppMctsExtractor ,6. TLibCommon,7. TLibDecoder, 8. TLibDecoderAnalyser,9. TLibEncoder,10原创 2021-12-18 16:43:45 · 268 阅读 · 3 评论 -
HM笔记_1_下载调试
文章目录HM下载HM运行本文主要参考了HEVC之路0:HM16.18的运行+码流分析 - 只因有你pi - 博客园 (cnblogs.com)在此表示感谢。HM下载HM不能直接从网页下载,而是采用SVN管理代码的——首先,下载合适版本的TortoiseSVN,这里我们下载的是最新版本1.14.1-64bit:下载后双击安装,一直点确定就行。安装完成后在要下载HM的文件夹(此处为D:\HM)右键,选择Repo-browser:在弹出的URL框中输入HM的下载地址:https://hevc.h原创 2021-12-16 17:13:07 · 726 阅读 · 4 评论