h.265/hevc
文章平均质量分 83
Dillon2015
从事视频编码的相关研究。
邮箱:13141211944@163.com
展开
-
PCS2021:监控视频编码基于实例分割的背景参考帧生成
本文来自PCS2021论文《Instance Segmentation Based Background Reference Frame Generation For Surveillance Video Coding》对于监控视频系统来说,最重要的两个模块是智能分析和视频压缩。传统的监控系统中对于两项任务都是分别处理的,导致效率低下。论文提出将两项任务混合处理的方法,既能高效分析又能提高压缩效率,即提取的语义信息不仅用于智能分析任务,还可以用于构建背景参考帧(Background Referenc原创 2021-10-20 23:27:59 · 26371 阅读 · 0 评论 -
ICME2021:基于CNN的HEVC帧内编码块快速划分
本文来自ICME2021论文《CNN-BASED DEPTH MAP PREDICTION FOR FAST BLOCK PARTITIONING IN HEVC INTRA CODING 》在HM中,通过递归调用RDO来选择最优的划分模式,整个过程计算复杂度很高且硬件实现不友好。论文使用CNN为HEVC的帧内编码生产深度图来进行快速划分。论文提出使用深度图来表示CTU的划分,如Fig.1(b)深度图是一个8x8的矩阵,矩阵中每个元素代表64x64CTU的每个8x8块的深度。从Fig....原创 2021-06-29 21:43:52 · 34369 阅读 · 9 评论 -
VCIP2020:不同尺寸块基于神经网络的帧内预测
本文来自VCIP2020论文《Fully Neural Network Mode Based Intra Prediction of Variable Block Size》论文提出使用神经网络模型( neural network modes,NM)完全取代传统的帧内预测方法,不再需要通过邻域像素插值得到预测值,而是直接将相邻块作为网络输入得到预测块。(1)针对不同尺寸块使用不同模型,对于较小的块如4x4和8x8块使用全连接神经网络FNN,对于较大的块如16x16和32x32块使用CNN。(2...原创 2021-06-01 23:08:21 · 35861 阅读 · 3 评论 -
VCIP2020:面向机器视觉的HEVC码率控制
本文来自VCIP2020文章《A Novel Visual Analysis Oriented Rate Control Scheme for HEVC》深度学习的发展使得计算机视觉任务得到长足进步,但是压缩造成的图像和视频的纹理及特征的失真会影响计算机视觉任务的性能。文中提出了新的码率控制模型RJD(Rate-Joint-Distortion model),它引入了机器视觉失真。RJDO(Rate-Joint-Distortion Optimization)是一个双曲线模型,通过lambda...原创 2021-05-17 21:57:05 · 37149 阅读 · 3 评论 -
VCIP2020:SCC编码工具的优化实现
本文来自VCIP2020文章《An Optimized Video Encoder Implementation with Screen Content Coding Tools》SCC针对电脑生成内容提出了很多高效的工具,例如IBC、PLT等,但是这些工具在提高SCC场景编码效率的同时也极大增加了复杂度。本文提出了针对SCC工具的一些优化方法。SCC编码工具介绍Intra block copy (IBC)和palette mode (PLT)是SCC中增加的两个编码工具。在SCM中当...原创 2021-05-09 22:07:17 · 38196 阅读 · 1 评论 -
开源一个H.265码流解析器h265bitstream
本项目参考h264bitstream(https://github.com/aizvorski/h264bitstream)开发了一个H.265的码流解析器h265bitstream。该解析器能够解析H.265码流的VPS、SPS、PPS、slice header等NALU。项目地址为https://github.com/Dillon14281118/h265bitstream该项目使用VS 2019开发,直接编译即可使用。通过命令行执行的命令格式为:h265bitstreamVS.exe <原创 2021-04-27 22:31:36 · 39033 阅读 · 1 评论 -
VCIP2020:基于深度学习的HEVC帧内预测的非线性变换
本文来自VCIP2020文章《Deep Learning-Based Nonlinear Transform for HEVC Intra Coding》文章针对帧内编码块提出了基于深度学习的非线性变换方法,可以达到1.79%的BD-rate增益。在帧内编码过程中,信号间的线性依赖可以通过线性预测和线性变换来消除。但是由于预测往往不够完美,导致一些依赖信息不能完全消除,结果在帧内预测后的残差中依然存在方向信息,传统的线性变换很难去除这些方向信息。进一步,线性变换更难去除信号中的非线性依赖。...原创 2021-04-21 00:19:19 · 38558 阅读 · 2 评论 -
VCIP2020:VVC SCC中基于镜像模式的IBC
本文来自VCIP 2020论文《IBC-Mirror Mode for Screen Content Coding for the Next Generation Video Coding Standards》在传统的SCC IBC(Intra Block Copy)中只考虑了平移运动模式,本文在IBC中引入“垂直翻转”和“水平翻转”模式来进一步提高编码效率。实验结果显示在VTM5.0(VVC)上本算法BD-Rate增益1~2%,在HPM5.0(AVS3)上本算法BD-Rate增益4~7%。...原创 2021-04-13 21:44:52 · 39417 阅读 · 0 评论 -
VCIP2020:基于深度学习合成参考帧
本文来自VCIP 2020论文《Deep Inter Coding with Interpolated Reference Frame for Hierarchical Coding Structure》在混合编码框架中,帧间预测用于去除时域冗余。帧间预测的效果取决于参考帧的内容,当参考帧和待编码帧的内容越相似时编码效率越高,因此本文提出利用DNN合成参考帧然后插入参考帧列表用于后续的预测。本文算法在HM16.20上RA配置下,相当于HEVC有4.6%的BD-rate增益。本文算法流程图如...原创 2021-04-07 22:09:27 · 40369 阅读 · 0 评论 -
VCIP 2020:面向VVC的自适应分辨率改变
本文来自VCIP2020论文《Adaptive Resolution Change for Versatile Video Coding》自适应分辨率改变(Adaptive Resolution Change ,ARC)是允许视频序列根据网络状态传输不同分辨率视频,当网络带宽低时传输低分辨率视频,带宽高时传输原始分辨率视频。在H.265和H.264中,当编码器在传输视频过程中想改变分辨率时需要插入一个满足新分辨率的IDR帧或IRAP帧。但是传输IDR帧或IRAP帧需要比较多的码率,对视频会...原创 2021-03-30 21:39:44 · 41475 阅读 · 0 评论 -
基于行的帧内编码快速算法
在上一节《基于行的帧内编码》介绍了在帧内编码时将块按水平或垂直划分为1D块,然后对每个1D块按同样的帧内模式逐行编码。HEVC在编码端选择帧内模式时使用两阶段方法降低复杂度,在第一阶段使用快速RD cost方法计算所有帧内模式的RD cost,其中失真用Hadamard变换估计。将RD cost最小的模式放入FIMCL(fast intra mode candidate list)。然后在第二阶段计算列表中的所有模式的RD cost,选择RD cost最小的模式作为最佳模式。使用LIP时,在上面的计算...原创 2021-03-25 15:20:21 · 40728 阅读 · 0 评论 -
基于行的帧内编码
简介基于行的帧内编码(Line-based Intra Prediction,LIP)会将亮度块分为不同的行(或列),然后对各行(或列)分别进行预测、变换、量化、熵编码等。每行(或列)使用前面的重建行作为参考。由于传统的基于块的帧内预测当块内的像素距离参考像素较远时其相关性会降低,LIP通过按行处理解决这个问题。算法描述LIP可用于任何尺寸的帧内预测块的亮度分量,它将WxH的块按水平或垂直划分为一维形式,如下图所示。对于VVC的QTBT划分,当WxH的CU使用LIP模式时CU结构...原创 2021-03-17 00:51:32 · 40894 阅读 · 1 评论 -
TCSVT2020:VVC中扩展TSM和快速MTS选择
本文来自TCSVT2020文章《Extended Transform Skip Mode and Fast Multiple Transform Set Selection in VVC》扩展TSM和MTS扩展TSMTSM( Transform Skip Mode)在HEVC version1中提出,用于屏幕内容编码(SCC)对4x4的块使用TSM可以提高编码效率。在HEVC RExt中TSM被扩展到32x32的块,导致计算复杂度大大增加。VVC中扩展TSM(类似HEVC RExt)到...原创 2021-03-01 00:06:10 · 41753 阅读 · 1 评论 -
TCSVT2020:基于新型SAD计算的HEVC低功耗运动估计
本文来自TCSVT2020文章《A Low-Power Motion Estimation Architecture for HEVC Based on a New Sum of Absolute Difference Computation》在HEVC中,运动估计(ME)是编码器功耗最高的部分,而SAD的计算又占据ME的50%的功耗。本文通过一种新型的SAD计算方法来降低功耗。(注:文中功耗等同于计算复杂度)两阶段快速IME两阶段快速整数运动估计(integer motion e...原创 2021-02-17 01:00:39 · 41856 阅读 · 0 评论 -
TCSVT2020:帧内预测中边界保留的参考像素滤波和插值预测
本文来自TCSVT2020论文《Edge-Preserving Reference Sample Filtering and Mode-Dependent Interpolation for Intra-Prediction》本文主要优化帧内预测时的参考像素滤波以保留边缘和像素投影时的插值。在帧内预测前需要对参考像素进行平滑滤波,滤波强度和块尺寸以及预测模式有关,即模式依赖的平滑滤波。滤波后的参考像素在预测时需要投影到一维形式,在计算预测值时对于非整数位置需要进行1/32像素精度的插值...原创 2021-02-08 10:13:37 · 42404 阅读 · 2 评论 -
帧内预测中的参考像素滤波和像素投影
参考像素滤波在帧内预测时需要使用左侧一列和上方一行重建像素作为参考像素。在使用参考像素进行预测前为了更好的利用空域相关性和降噪,通常需要对参考像素进行滤波。在HEVC中根据TU大小和帧内预测模式的不同会使用不同的滤波,即模式依赖的参考像素滤波( mode dependent intra reference sample smoothing,MDIS)。滤波选择(1)不同尺寸TU的滤波 DC模式的任何尺寸TU都不进行滤波。 4x4大小的TU不进行滤波。 32x3...原创 2021-02-01 11:45:11 · 43194 阅读 · 1 评论 -
广义B帧GPB
HEVC通常有三种类型帧,I帧、P帧、B帧。 I帧:使用帧内预测。 P帧:使用单向帧间预测,参考帧来自前面已编码帧。 B帧:使用双向帧间预测,参考帧来自前面和后面已编码帧。 在HM中也为编码提供了三种配置: All intra:所有帧都作为I帧编码。 Random access(RA):图像按层次结构编码,可以在约1秒内进行随机访问。 Low delay B(LDB):所有图像按播放顺序编码,除第一帧为I帧外,其余帧都是B帧,但是B帧参考图像都来...原创 2021-01-18 09:10:47 · 44702 阅读 · 0 评论 -
MSU2020硬件编码器比赛
MSU2020硬件编码器比赛共测试了4款硬件编码器和4款软件编码器。参赛编码器如下:硬件中包含了基于FPGA和基于GPU的加速平台,配置中最低速度是60fps。测试分为客观测试和主观测试,客观测试使用了50条测试序列,测试指标包括SSIM、PSNR和VMAF。主观测试使用了10条测试序列。测试平台配置: CPU: Intel Socket 1151 Core i7 8700K (Coffee Lake) (3.7Ghz, 6C12T, TDP 95W) Mainboard:原创 2020-12-12 08:53:10 · 44529 阅读 · 0 评论 -
MSU2020放榜了
MSU是世界上有影响力的视频编码器比赛,由莫斯科国立大学发起。MSU2021的比赛结果报告已经出了,分为免费版和付费版,区别如下:由于囊中羞涩,小编只下载了免费版本(对话框回复:MSU2020即可获得)。首先放上结果,可以看见Online(30fps)腾讯表现最好,拿了四项单项第一。Offline(1fps)上Aurora编码器和BVC2.0编码器表现最好。测试序列测试序列包括50条全高清序列,参赛编码器今年有20款参赛编码器,涵盖H.265/HEVC,原创 2020-12-10 16:20:17 · 44678 阅读 · 1 评论 -
GOP结构
GOP结构在使用HM编码器时我们经常要使用预定义的配置文件,在配置文件里有关于GOP的相关定义,这里定义了GOP的结构和相关参数,GOP结构在视频序列中重复使用。定义中包含GOPSize行,按解码顺序每行一帧,所以Frame1是解码第一帧,Frame2是解码第二帧,依次类推。而且定义了每帧的参考图像,包括当前帧的参考图像和后续帧的参考图像。编码器不会自动计算哪一帧会在将来用作参考,所以必须指定。注意在第一个GOP的IDR帧后的图像为其指定的参考图像有些可能不可用,编码器会自动处理。下面是LDP配置文原创 2020-07-15 08:49:41 · 51354 阅读 · 0 评论 -
基于学习的编码(二):使用CNN对intra frame进行环路滤波
使用CNN对intra frame进行环路滤波(二)本文算法来自JVET-O0157介绍为了取代VVC环路滤波中的去方块滤波(DBF)提出来一种下采样的CNN滤波器。该CNN滤波器在降低神经网络复杂度的同时能保持编码效率。它是一个轻量级CNN网络,能够高效的控制CNN滤波强度以应对不同量化参数。只用于intra frame。滤波过程下图展示了针对intra frame加入CNN后的环路滤波过程,DBF被CNN替换了。对于inter frame环路滤波和VTM中一样。网络结构.原创 2020-06-22 08:48:50 · 51635 阅读 · 0 评论 -
基于学习的编码(一):使用CNN进行环路滤波
使用CNN进行环路滤波(一)本文介绍一种在VVC环路滤波中使用CNN的技术,该算法来自于JVET-O0056CNNLF该卷积网络模型称为CNNLF,用于VVC的环路滤波的ALF阶段之后,如下图所示。CNNLF的输入是ALF的输出,我们称之为重建像素。CNNLF的输出我们称之为修复像素。为了减少传输CNN参数的压力和降低CNNLF解码时间,CNNLF网络只包括三层,亮度分量和色度分量使用同一个网络。如下图所示。每层网络的参数MxNxPxQ的含义如下: M:该通..原创 2020-06-19 08:54:19 · 52167 阅读 · 3 评论 -
HVS的真相
HVS的真相人眼视觉系统( human visual system,HVS)是人类通过感知光线形成视觉的系统,是人类捕获外界信息最关键的系统之一。HVS在视频编码的主观优化中发挥重要作用。关于HVS有以下特性不得不知: HVS对高频信号的失真不敏感,对低频信号的失真更敏感。这个特性在视频编码的变换过程中有所应用。在对DCT系数量化过程中,对高频系数使用更大的量化步长。H.265和H.264都支持自定义量化矩阵,用户可以根据需要对低频系数进行精细量化,对高频系数进行粗略量化。 灵长类的视觉原创 2020-06-18 09:19:30 · 53351 阅读 · 0 评论 -
使用ffmpeg绘制运动向量MV
使用ffmpeg绘制运动向量MV本文将使用ffmpeg提取每帧视频的运动向量MV,并使用opencv将其绘制出来。运动向量MV了解视频编码的人都对运动向量不陌生,它是在进行帧间预测时标记当前块和参考块位置关系的一个向量。帧间预测包括单向预测(P帧)和双向预测(B帧),单向预测只需要一个MV,双向预测需要两个MV。MV在ffmpeg中的定义如下:typedef struct AVMotionVector { /** * Where the current m...原创 2020-06-14 08:54:01 · 53650 阅读 · 1 评论 -
码率控制(五):流体流量模型
码率控制(五):流体流量模型码率控制的主要作用就是适应带宽需求来压缩码率,防止网络频繁丢包流体流量模型就是模拟比特数据在网络和缓存器中的状态,下面从解码端的视角来说明。HRD( hypothetical reference decoder)中的CPB(coded picture buffer)是用来缓存比特数据的,CPB的容量有限,如果CPB装满了则接下来的数据就会溢出造成数据丢失(上溢),如果CPB太空则造成浪费(下溢)。CPB的状态可以用三个量来刻画,R、B、F。R表示网络传输带宽,原创 2020-06-05 08:21:30 · 52711 阅读 · 0 评论 -
HEVC中级别(Level)计算
在前面的文章档次、层、级别中已经介绍过级别(level),H.265共定义了13个级别,1 2 2.1 3 3.1 4 4.1 5 5.1 5.2 6 6.1 6.2。那么如何选择level呢?官方参考序列的配置文件已经为我们写好了level等参数,如果我们要使用自己的序列那么如何设置level呢?级别(Level)是用来约束 分辨率、帧率 和 码率 的。如下图所示:Max Luma Picture Size(samples)表示每帧亮度分量的像素数。Max Luma Sample...原创 2020-05-29 10:41:00 · 56023 阅读 · 0 评论 -
码率控制(四):TM5
码率控制(四):TM5TM5是MPEG-2中的码率控制算法,整个算法分为三步: 目标比特分配:这一步为当前待编码的帧分配目标比特。 码率控制:为每个MB设置参考QP。 自适应量化:根据每个MB的空域活动性调整上面的参考QP以生成最终QP用于量化MB。 1、目标比特分配复杂度估计当某个特定类型帧(I、P、B)编码完后,其对应的”全局复杂度“(Xi,Xp或Xb...原创 2020-05-20 08:47:41 · 53942 阅读 · 0 评论 -
码率控制(三):TMN8
码率控制(三):TMN8TMN8是为低延迟视频通信设计的码率控制算法。TMN8码率控制分为帧级码率控制和宏块(MB)级码率控制。帧级码率控制会为当前帧选择合适的目标比特数,MB级码率控制会为帧内的每个MB计算QP(或量化步长)。如果缓冲区溢出则跳过当前帧的编码。帧级码率控制在帧级码率控制中,帧的目标比特数由缓冲区充盈度、帧率和信道速率决定。在编码当前帧前通过下式计算缓冲区充盈度W:...原创 2020-05-15 08:43:59 · 53323 阅读 · 0 评论 -
码率控制(二):CRF详解
码率控制(二):CRF详解在上一篇文章码率控制(一):理解码率控制模式(x264,x264,vpx)已经介绍过CRF(Constant Rate Factor)了,本篇文章进一步介绍CRF的原理。CRF是x264和x265默认的码率控制模式,在libvpx中也可以使用CRF。CRF取值在0到51间。取值越小质量越好压缩率越低,取值越大压缩率越高质量越低。CRF在进行码率控制时不会试图达到某...原创 2020-05-11 08:24:00 · 58490 阅读 · 5 评论 -
码率控制(一):理解码率控制模式(x264,x264,vpx)
码率控制(一):理解码率控制模式(x264,x264,vpx)什么是“码率控制”?它是编码器决定为每帧视频分配多少比特的工具。视频编码(有损)的目标是尽可能多的节省比特(码率)的同时尽量保持视频质量。码率控制是平衡码率和质量的重要工具。码率控制有多种方式,你将会了解到"1-pass","2-pass","CBR","VBR","VBV Encoding"和"CRF"等。下面是不...原创 2020-05-04 09:56:23 · 60095 阅读 · 0 评论 -
SCC(五):ACT
SCC(五):ACTACT(Adaptive colour transform)大部分屏幕内容都是在RGB空间采集。对于一个RGB块,其不同通道间可能有很强的相关性,此时使用颜色空间转换可以减少不同通道间的冗余。有的RGB块不同通道间相关性较弱,直接在RGB空间编码效率更高。为了处理不同的块,可以使用下面的颜色空间变换。在HEVC-SCC中,颜色变换作用在残差上,这样可以使不...原创 2020-04-27 09:28:22 · 53940 阅读 · 0 评论 -
SCC(四):Palette mode
SCC(四):Palette mode调色板模式(palette mode)对于只含有少数几种颜色的块非常高效。相比于传统的对块进行预测变换处理,调色板模式只需要对每个像素传输其颜色索引。调色板是一个包含CU中颜色值的表,对于CU中每个像素在码流中传输其在表中的索引。解码器使用这个索引和这个调色表来重建CU。调色表中每个条目包含三个分量(RGB或YCbCr)。对于4:2:0或4:2:2...原创 2020-04-22 09:58:42 · 55129 阅读 · 0 评论 -
SCC(三):HEVC IBC
SCC(三):HEVC IBCHEVC-SCC基于HEVC version 1和HEVC-RExt开发而成,并且继承了它们的编码结构和编码工具。HEVC-SCC编码器结构如下:HEVC-SCC是基于HEVC框架,并添加了几个新工具。新的编码工具如下: Intra block copy(IBC):当CU使用IBC模式时,该CU的PU会在当前图像重建部分搜索最相似的块。IB...原创 2020-04-17 10:38:45 · 56784 阅读 · 0 评论 -
整数DCT蝶形算法
在H.265/HEVC中支持4种不同尺寸的整数DCT变换,分别是4x4、8x8、16x16、32x32。各种尺寸的DCT矩阵对应的变化矩阵如下:4x4变换矩阵:8x8变换矩阵:16x16变换矩阵:下面分别是32x32变换矩阵的左边16列和右边16列:我们可以发现以上矩阵有如下特点: 以上矩阵都是左右对称的,但是对称方式有所不同,偶数行的标准对称...原创 2020-04-13 10:38:28 · 58341 阅读 · 11 评论 -
VVC之SCC(二):RDPCM
VVC之SCC(二):RDPCMVTM5中对SCC支持supports quantized residual differential pulse coded modulation (RDPCM)技术。当允许使用RDPCM时,如果CU的尺寸小于等于32x32且CU使用帧内编码需要在CU级传输一个标志位表示该CU使用普通帧内编码还是使用RDPCM。如果使用RDPCM,需要传输一个RDPCM预...原创 2020-04-10 10:42:37 · 54282 阅读 · 0 评论 -
VVC之SCC(一):IBC
VVC之SCC(一):IBCIntra block copy(IBC)是屏幕内容编码(Screen Content Coding,SCC)的主要技术之一。IBC是块级的编码模式,在编码端会使用块匹配(Block Matching,BM)技术为每个CU寻找最优匹配块,并计算块向量(block vector)。块向量表明当前块和最优匹配块的位置关系。当CU使用IBC模式编码,其亮度分量的块向量...原创 2020-04-06 09:26:15 · 57202 阅读 · 1 评论 -
自适应QP(Adaptive QP)
Adaptive QPAdaptive QP是为每个CU自适应的选择QP以提升编码质量。由配置参数AdaptiveQP指定是否开启该功能。默认不开启。("AdaptiveQP,-aq", m_bUseAdaptiveQP,false, "QP adaptation based on a psycho-visual model")其QP计算原则是:对于平坦块选择较小的QP,对于活动...原创 2020-04-03 08:52:02 · 55679 阅读 · 13 评论 -
参考图像详解
由于帧间预测的需要,编码当前帧时需要参考其他帧,这些被参考的帧称为当前帧的参考帧。在前面一节DPB中我们知道,DPB中包含参考图像和非参考图像。参考图像集(Reference Picture Set,RPS):RPS中包含DPB内的参考图像,这些参考图像可能被当前的图像参考也可能被将来的图像参考。参考图像列表( Reference Picture Lists,RPL):RPL中只包含当前图...原创 2020-03-20 09:32:15 · 56817 阅读 · 7 评论 -
DPB详解
解码图像缓存器(decoded picture buffer,DPB)用于存放解码图像。DPB中既存在参考图像也存在非参考图像,那些不用于参考的图像输出后会被移除出DPB。DPB的容量由SPS中的sps_max_dec_pic_buffering_minus1字段决定,HEVC中规定DPB容量最大为16。当DPB容量为1时,则其只能存储一帧当前解码图像,无法再存参考图像所以所有帧都必须使用帧内...原创 2020-03-15 08:27:34 · 59516 阅读 · 0 评论 -
POC计算
视频编码中由于B帧的存在使得视频的播放顺序和编码顺序不一样。解码后的视频需要按播放顺序排列播放,POC(picture order count)就是视频帧按播放顺序的标识号。POC的作用主要有:帧的唯一标识符、用于merge模式下生成运动信息、解码端一致性检查。每一个编码的帧都有一个POC,可以用变量PicOrderCntVal表示,取值范围为-2^31~2^31-1,所以POC值需要31...原创 2020-03-17 09:46:58 · 56893 阅读 · 1 评论