自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 VVC学习之SubBlock Transform(SBT)

文章目录基于子块的变换编码SubBlock Transform(SBT)1. 执行条件2. 模式类型3. 语法要素基于子块的变换编码SubBlock Transform(SBT)变换时,只有残差块的部分进行编码。早期版本中,帧间指明MTS信息确定变换类型,目前的版本中(VTM-7.0)变换的部分残差块的部分可以根据位置自适应推导得出,其他残差为0.1. 执行条件帧间模式(帧内、IBC、PLT、triangle不行)cu_cbf == 1 && cu_sbt_flag == 1C

2020-07-28 17:09:52 1146

原创 AV1标准特色编码工具简介

文章目录1. 编码单元划分结构2. 帧内预测技术3. 帧间预测技术4. 变换5. 环内滤波和编码后处理作为新一代性能优异的开源编码标准,AV1收到越来越多企业的青睐。AV1编码标准继承自Google在2011年构建VP8及2013年的VP9标准,有谷歌等30多家企业在2015年成立的开放媒体联盟(Alliance for Open Media, AOM)进行开发和维护,并在2018年6月发布了...

2020-02-19 23:40:55 4855

原创 Tensorflow函数:tf.tile()

Tensorflow 官方文档介绍Constructs a tensor by tiling a given tensor.This operation creates a new tensor by replicating input multiples times. The output tensor’s i’th dimension has input.dims(i) * multipl...

2019-11-28 16:48:23 230

原创 TensorFlow函数:tf.where()

focal loss中要实现交叉熵函数,需要将label图像中不同class对应的位置取出,经查询需要用到tf.where函数,随即记录如下。Tensorflow 官方文档介绍Returns locations of true values in a boolean tensor.This operation returns the coordinates of true elements...

2019-11-28 09:57:32 430

原创 VVC学习之环内滤波器(二): 去块滤波器(deblocking filter, DF)原理及流程

去块滤波器可以有效去除目前基于块的压缩框架所带来的方块效应,在提高视频质量方面具有显著成效。VVC中采用的去块滤波器大体上和HEVC差不多,区别在于对亮度和色度编码块增加了强滤波模式,以及对亮度编码块的滤波强度考虑到了其亮度强度。

2019-11-28 09:56:53 1687 5

原创 VVC学习之环内滤波器(一): Luma Mapping with Chroma Scaling(LMCS)

文章目录简介1. LMCS(Luma Mapping with Chroma Scaling)理论1.1 基于分段线性模型的亮度映射1.2 色度残差的亮度依赖性伸缩1.3 编码端LMCS参数获取2. LMCS代码学习简介环路滤波是混合编码框架中非常重要的一环,其目的为去除重建信号的压缩噪声,提高重建帧的质量,同时提高后续帧的压缩效率。VVC中主要采用了四中环内滤波技术,相比于HEVC中的去块滤...

2019-07-01 22:29:26 3151

原创 VTM码率控制——代码学习四

文章目录码率分配参数更新帧之后的更新LCU后的更新码率分配参数更新帧之后的更新void EncRCPic::updateAfterPicture( int actualHeaderBits, int actualTotalBits, double averageQP, double averageLambda, bool isIRAP){ m_picActualHeaderBits =...

2019-07-01 11:10:27 684

原创 VTM码率控制——代码学习三

文章目录码率分配GOP码率分配帧级码率分配LCU码率分配码率分配GOP码率分配int EncRCGOP::xEstGOPTargetBits( EncRCSeq* encRCSeq, int GOPSize ){ int realInfluencePicture = min( g_RCSmoothWindowSize, encRCSeq->getFramesLeft() ); ...

2019-07-01 11:07:03 708 1

原创 VTM码率控制——代码学习二

文章目录码率控制的各级初始化函数码率控制模块初始化GOP码率控制初始化帧级码率控制初始化码率控制的各级初始化函数码率控制模块初始化void RateCtrl::init(int totalFrames, int targetBitrate, int frameRate, int GOPSize, int picWidth, int picHeight, int LCUWidth, int L...

2019-07-01 10:58:13 929

原创 VTM码率控制——代码学习一,码率控制流程

码率控制初始化-EncApp::encode()调用 EncApp::xcreatedLib() 调用 EncLib::create () : 调用 m_cRateCtrl.init()EncApp::encode()调用EncLib::encode,调用initRCGOP(m_iNumPicRcvd)EncLib::encode调用EncGop::compressGOP(),调用in...

2019-07-01 10:50:42 2754

原创 HEVC/VVC中R-Lambda码率控制算法原理

文章目录1. 比特分配1.1 GOP级比特分配1.2 帧级比特分配1.3 LCU级比特分配2. 码率控制2.1 λ的计算和更新2.2 参数QP的确定VVC中码率控制算法沿用了HEVC中经典的R-λ码率控制模型,R-λ由中科大的李斌博士提出(详情参考JCTVC-K0103)。R-λ模型的基础为视频编码中 R(比特 bpp)和 D(失真 MSE)之间的双曲线模型,即D(R)=CR−KD(R) = ...

2019-06-26 19:45:43 4374 2

原创 VVC 帧内预测 —— MIP代码学习

代码学习prepareInputForPred()void MatrixIntraPrediction::prepareInputForPred(const CPelBuf &src, const Area& puArea, const int bitDepth, const AvailableInfo &availInfo){ m_predictorMip.de...

2019-06-04 11:41:58 1112 1

原创 VVC帧内预测补充:矩阵加权帧内预测(Matrix Weighted Intra Prediction, MIP)

VTM 5.0版本更新的帧内预测技术,其最初的思想来源于基于神经网络的帧内预测技术(JVET-J0037)。Tracking route: N0217 -> M0043 -> L0199 -> K0196 -> J0037intra prediction based on neural networksnon-Linear weighted intra predi...

2019-06-04 00:04:18 1602

原创 VVC学习之五:帧内预测之色度预测——CCLM及代码学习

文章目录CCLM跨分量线性预测亮度重建参考像素获取CCLM预测信号生成CCLM跨分量线性预测VTM采用了跨分量线性模型的色度预测模式,即色度值可根据已重建亮度像素线性变换得到,变换函数为pred_C (i,j)=α•rec_L'(i,j)+β,其中pred_C为预测的色度值,rec_L'(i,j)表示已重建的亮度下采样后的值。参数α和β通过相邻CU的亮度和色度计算得到,计算公式为 α=Ya−Y...

2019-05-28 15:24:00 3548 2

原创 VVC学习之五:VTM帧内预测之色度预测——estIntraPredChromaQT()

文章目录预测过程回顾预测过程回顾#include <iostream>#include <algorithm>using namespcce std;int main(){ int a = 0}

2019-05-25 00:06:49 1114

原创 VVC学习之五——帧内预测:xRecurIntraCodingLumaQT()

#if JVET_M0102_INTRA_SUBPARTITIONSvoid IntraSearch::xRecurIntraCodingLumaQT( CodingStructure &cs, Partitioner &partitioner, const double bestCostSoFar, const int subTuIdx, const PartSplit isp...

2019-05-22 21:20:55 822

原创 VVC学习之五:帧内预测——67个模式预测信号生成 predIntraAng()

文章目录简介predIntraAng()xPredIntraDc()xPredIntraPlanar()xPredIntraAng()简介帧内共有67种预测模式,包括 65种角度+DC+Planar 模式,VTM中调用predIntraAng()生成相应的预测信号。predIntraAng()主要功能是调用相关预测函数,生成67中模式的预测信号,并对满足 PDPC条件 的预测模式进行预测信号矫...

2019-05-19 21:23:50 1440 1

原创 VVC学习之五:帧内预测——帧内参考像素滤波xFilterReferenceSamples()

文章目录帧内预测之前,首先要获取帧内预测参考像素决定是否对其进行滤波。

2019-05-19 18:38:46 1096

原创 VVC学习之五:帧内预测——参考像素获取 initIntraPatternChType() xFillReferenceSamples()

文章目录帧内预测之前,首先要获取帧内预测参考像素,VTM获取帧内参考像素的函数/** Function for deriving planar intra prediction. * \param pSrc pointer to reconstructed sample array * \param srcStride the stride of the reconstructed sam...

2019-05-19 17:57:48 1132

原创 VVC学习之五:帧内预测——MPM列表建立

getIntraMPMs()为命名空间PU下的函数,用于获取帧内预测MPM,一共三类:传统预测MPM,多参考行预测MPM,ISP预测MPM。int PU::getIntraMPMs( const PredictionUnit &pu, unsigned* mpm, const ChannelType &channelType /*= CHANNEL_TYPE_LUMA*/ ){...

2019-05-15 22:55:17 1738 2

原创 VVC学习之五:VTM帧内预测之亮度预测——estIntraPredLumaQT()详解

前一章讲解了VTM帧内预测的主要大致框架,接下来主要学习VTM中相关技术的代码实现。首先,是亮度分量进行帧内预测的入口函数estIntraPredLumaQT(),这个函数描述了亮度帧内预测的主要流程,包括参考样本生成,多行预测,RMD, MPM和最后Full RDO最优模式选择、ISP等。其主要流程见下图:插入图片(estIntraPredLumaQT()流程)代码具体实现如下(VTM-4....

2019-05-14 17:09:09 2751 3

原创 VVC学习之五:VTM帧内预测工具详解

帧内预测的摘要

2019-05-14 00:21:24 5047 2

原创 AV1测试软件AOM的编译和使用——window下VS解决方案生成

文章目录AV1官方网站编译所需工具和依赖库代码下载编译生成VS解决方案测试AV1编码器AV1官方网站ALLIANCE FOR OPEN MEDIA编译所需工具和依赖库工具下载地址CMakehttps://cmake.org/download/Githttps://git-scm.com/Perlhttps://www.perl.org/get.html...

2019-05-06 15:22:52 330754 6

原创 VVC学习之四:VTM中的数据结构——AreaBuf,UnitBuf

文章目录AreaBufAreaBuf,UnitBuf 封装了二维视频信号的一维存储下的内存管理方法,提供了简单内存操作接口。AreaBufAreaBuf是一个类模板,AreaBuf采用了通用数据类型成员,VTM中以AreaBuf为模板实例化6个模板类,分别管理像素、变换系数和运动信息的存储和访问,如下:typedef AreaBuf< Pel> PelBuf;typedef...

2019-05-06 08:54:32 1629

原创 VVC学习之四:VTM中的数据结构——CodingStructure

上层CodingStructure结构体管理着一帧中所有的CU,PU和TU。可以通过简单的坐标操作获取一帧中所有位置的CU信息。下层CodingStructure是进行RD搜索最优尺寸和最优预测模式的基本单元。想要深入理解VTM的代码逻辑,了解CodingStructure中的属性和方法是基础。class CodingStructure{public: UnitArea ...

2019-05-06 08:54:27 3509 20

原创 VVC学习之四:VTM中的数据结构——CodingUnit、PredictionUnit、TransformUnit

文章目录CodingUnitPredictionUnitTransformUnit基本单元的数据结构中,只定义了CU、PU、TU的属性信息,其头文件为Unit.h。对基本单元的操作定义在UnitTools.h中,为区分对不同基本单元的操作,定义了不同命名空间。CodingUnit描述UnitArea定义的区域的压缩方法和方式。struct CodingUnit : public UnitA...

2019-04-30 09:25:49 2177 5

原创 VVC学习之四:VTM中的数据结构——Position,Size,Area,compArea,UnitArea

Positionstruct Position{  PosType x;  PosType y;  Position()                   &nbsp...

2019-04-28 14:11:27 1912 10

原创 VVC学习之四:VTM中的数据结构——描述

VTM中的数据结构HM的代码复杂难懂,结构混乱,缺少数据和逻辑封装,Z-order和raster-order换来换去让人头痛不已,代码可读性比较差。同时HM中很多数据结构的设计都是针对其CU尺寸都是正方形而设计的,扩展性也不好。为了解决HM数据结构复杂、代码可读性差、内存管理负责的问题,VTM使用的数据结构,使用了OO设计理念,对琐碎的计算进行封装,并跟内存管理逻辑,增强代码的可读性。 (移除...

2019-04-26 22:58:03 3063 4

原创 VTM中的编码单元信息扩展:CU信息的可视化分析和统计分析

编码单元统计信息扩展VTM中的块统计扩展支持对编码比特流中的编码工具使用情况进行直观的可视化和统计分析。该扩展使得参考软件的编码器和解码器能够以可配置的方式将统计信息写出,进而加载到合适的yuv播放器中或者重叠在重建yuv序列上,或者在可选范围内用于统计分析。可视化播放器可以选择开源YUV播放器YUView (下载地址:https://github.com/IENT/YUView )。使用方...

2019-04-25 22:30:02 4171 24

原创 VVC学习之三:GOP结构和参数

GOP (Group of Picture, 图像组)视频压缩时,会先将视频序列分成若干图像组GOP,以GOP为单位进行压缩。GOP有两种,封闭式GOP和开放式GOP,封闭式GOP以IDR图像开始,各个GOP之间独立压缩。开放式GOP的第一个帧内编码图像为IDR图像,后续GOP中的第一帧为non-IDR图像。IDR(Instantaneous Decoding Refresh) – 即时解...

2019-04-25 14:48:42 3758

原创 VVC学习之二:VTM中CU划分结构QTMTT(3):打印QTMTT最终划分

QTMT递归划分打印

2019-04-24 23:45:32 3583 15

原创 VVC学习之二:VTM中CU划分结构QTMTT(2)

上次说了VTM中QTMTT划分的理论部分,这次准备结合代码理解,VTM完全就是C++的代码风格,由于水平有限,应该会有很多理解不到位的地方,还请大佬批评指正,欢迎交流。不同于HEVC,VTM中将CU划分方式也当做编码模式进行处理。在编码每个CU时,首先将初始化所有的编码模式,包括所有的预测模式和划分模式。这部分由lib/EncoderLib/EncCU.cpp中xCompressCU()完成。xC...

2019-04-24 17:23:26 4712 19

原创 VVC学习之二:VTM中CU划分结构QTMTT(1)

VTM采用了更为复杂的编码单元划分结构,在HEVC四叉树(QT)划分的基础上增加了两种二叉树(BT)划分和两种三叉树(TT)划分。其中BT和TT统称为MT(multi-type tree),见下图。...

2019-04-23 22:42:44 5121 6

原创 VVC学习之一:VVC/H.266的简介及VTM的使用方法

前言跟JVET以及VVC标准已经有一段时间了,准备写一些VVC的一些学习心得,主要也是锻炼一下自己,如果有理解不对的地方,希望各位大佬不吝赐教。VVC的发展历程VVC是从HEVC发展而来,其目标是将HEVC/H.265的编码性能提高一倍,计划在2020年10月发布标准最终版,其官方标准测试模型VTM目前已经发展到4.0版本(对应JVET第14次会议JVET-N)。在确定新一代编码标准为VV...

2019-04-22 23:08:17 13919 5

EncoderApp_DrawCU.exe

可执行文件对应VTM版本为VTM-4.0,为了更直观显示,不同的编码模式使用了不同颜色的边框。 I帧:DC和Planar为蓝色,角度为红色。 P和B帧:intra模式为蓝色,affine 黄色,skip 红色,merge为紫色,其他为绿色。

2019-06-13

空空如也

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

TA关注的人

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