Lab2 Report: HEVC 、H.264与AVS2 视频压缩
文章目录
1. 摘要
这份实验报告是视频编码与通信的第二次大作业。作业的题目是HEVC与H.264视频压缩。
这篇报告首先根据作业发布的要求,选择两个不同特性的测试序列设置两组不同的编码参数进行HEVC编码与解码。再对同一个测试序列进行HEVC和H.264压缩编码和解码,并对比分析其性能的差异。
其次这份报告也记录了一些拓展:对同一个序列进行AVS2压缩编码与解码,并与实验二得到的解码图片进行对比,简单分析这三种压缩标准的性能差异。
2. 实验一:HEVC 视频编码与解码
2.1 实验内容
参考代码HM16.12 或以后版本。选择至少两个测试序列,具有不同空间分辨率、不同
运动和纹理特性;对每个测试序列,分别设置两组不同的编码参数,进行编码和解码;给出
相应的参数配置,给出若干关键帧的原始图像、以及相应的解码重建图像,给出每帧图像的
PSNR 值。
2.2 实验原理简述
高效率视频编码(High Efficiency Video Coding,简称HEVC),又称为H.265和MPEG-H第二部分,是一种视频压缩标准,用来以替代H.264/AVC 编码标准。
HEVC的视频编码层与H.264/AVC和许多其他视频压缩编码一样,都是采用Hybrid Video Coding的架构(如图2-1),但在各部分加入了一些新技术或者提升了原本编码工具的效率。1 例如例如基于四叉树的灵活块分割结构 、不同角度的帧内预测模式 、自适应的运动矢量预测AMVP、合并技Merge、可变尺寸的离散余弦变换等。
由图中可以看出,典型的HEVC编码框架具有如下几个模块:
- 帧内预测:该模块主要用于去除图像的空间相关性。通过编码后的重构块信息来预测当前像素块以去除空间冗余信息,提高图像的压缩效率;
- 帧间预测:该模块主要用于去除图像的时间相关性。帧间预测通过将已编码的图像作为当前帧的参考图像,来获取各个块的运动信息,从而去除时间冗余,提高压缩效率;
- 变换量化:该模块通过对残差数据进行变换量化以去除频域相关性,对数据进行有损压缩。变换编码将图像从时域信号变换至频域,将能量集中至低频区域;
- 去方块滤波:在基于块的视频编码中,形成的重构图像会出现方块效应,采用去方块滤波可达到削弱甚至消除方块效应的目的,提高图像的主观质量和压缩效率;
- 样点自适应步长滤波(SAO滤波)处于去方块滤波之后,通过解析去方块滤波后的像素的统计特性,为像素添加相应的偏移值,可以在一定程度上削弱振铃效应,提高图像的主观质量和压缩效率;
- 熵编码:该模块将编码控制数据、量化变换系数、帧内预测数据以及运动数据等编码为二进制流进行存储或传输。熵编码模块的输出数据即原始视频压缩后的码流。
2.3 实验过程与分析
2.3.1 实验环境与测试序列
本次实验参考的代码版本为HW-16.13;实验的环境为Visual Studio;用来采取帧和播放YUV文件的工具为YUV Player。
实验所用的测试序列为"akiyo_qcif.yuv"和"Bus_cif.yuv"2。为了实验的便利,我们都选取了100帧进行后续的编码。前者为一个新闻主持人,变化幅度较小,图中运动物体较少。后者为公交车在道路上行驶,变化幅度较大,物体较多。
视频纹理大致如下,选取的都为第一帧(两张图片有所放大和缩小):
空间分辨率参数如下所示:
SourceWidth | SourceHeight | FrameToBeEncoded | |
---|---|---|---|
akiyo | 176 | 144 | 100 |
bus | 352 | 288 | 100 |
2.3.2 HEVC编码与解码
我们将测试序列文件(yuv文件)和相关的配置文件(encoder_intra_main.cfg和序列的配置文件)放到Debug文件目录下,用Visual Stuido运行程序。
(1)测试序列1——第一组参数
测试序列1为akiyo_qcif.cfg。我们在配置文件中的量化部分设置QP值为45。Coding Structure部分参数设置如下:
#======== Coding Structure =============
IntraPeriod : 1 # Period of I-Frame ( -1 = only first)
DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
GOPSize : 1 # GOP Size (number of B slice = GOPSize-1)
#Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures
这样我们将所有的帧都设置为I帧,编码速度理论上可以得到提升,但这是基于编码后视频大小的牺牲之上。视频压缩的过程如下所示:
程序总共运行了82.429s,文件大小为33KB,源文件大小为3713KB,压缩比为112.5,压缩效果较好。峰值信噪比(PSNR)的值如下所示。
SUMMARY --------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
100 a 129.4520 27.9516 33.5440 36.0687 29.2670
I Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
100 i 129.4520 27.9516 33.5440 36.0687 29.2670
P Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
0 p -nan(ind) -nan(ind) -nan(ind) -nan(ind) -nan(ind)
B Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
0 b -nan(ind) -nan(ind) -nan(ind) -nan(ind) -nan(ind)
PSNR值都在40以下,说明编码的图像质量较低。我们再对生成的str.bin文件进行解码。解码过程相对简单。解码后的文件大小为3713KB,与源文件大小相等。解码的具体过程如下所示:
我们再来对比源文件和解码后文件的关键帧图像质量对比。因为每一帧都是I帧,所以我们选择第1、50、100帧来对比。
从上面三帧的对比结果来看,大致上图片质量损失较大,在细节处的对比尤为明显。但是物体的轮廓尚能分辨。
(2)测试序列1——第二组参数
在这一组参数中我们将第一帧设置为I帧,其余帧都设置为P帧。即为低时延编码结构。这样理论上编码速度会变慢,但快于其余帧为B帧。图像质量也应该介于两者之间。我们选取QP值为10,这样
配置文件(encoder_lowdelay_P_main.cfg)中的Coding Structure部分如下所示:
#======== Coding Structure =============
IntraPeriod : -1 # Period of I-Frame ( -1 = only first)
DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
GOPSize : 4 # GOP Size (number of B slice = GOPSize-1)
IntraQPOffset : -1
LambdaFromQpEnable : 1 # see JCTVC-X0038 for suitable parameters for IntraQPOffset, QPoffset, QPOffsetModelOff, QPOffsetModelScale when enabled
同样的,视频压缩的过程如下所示:
程序总共运行了200.189s,文件大小为98KB,源文件大小为3713KB,压缩比为3709,压缩效果相对来说较为一般。峰值信噪比(PSNR)的值如下所示。
SUMMARY --------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
100 a 397.9160 50.9905 52.1198 52.4897 51.3332
I Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
1 i 3481.6000 53.3063 53.3069 53.7012 53.3698
P Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
99 p 366.7677 50.9671 52.1078 52.4774 51.3168
B Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
0 b -nan(ind) -nan(ind) -nan(ind) -nan(ind) -nan(ind)
可以看出整体的信噪比都在50以上,这个值对于人眼来说是非常不错的。I帧和P帧的数量为1、99,与我们设定的也一致。
对文件进行解码,截取关键帧(第一帧)并进行对比如下:
可以看出,因为QP值设定比较高,所以图像质量得到了保证,大致上看不出损失。但因为其他帧都为P帧,仔细观察还是发现细节处出现了模糊,在照片中人物的脸部可以仔细观察发现。
(4)测试序列2——第一组参数
测试序列2的第一组编码参数与测试序列1相同,即所有帧都设置为I帧,把QP值设为45。其他设置不变。视频压缩的过程截图如下:
程序运行了242.844s,文件大小为178KB,源文件大小为14850KB。压缩比为83.4。PSNR值如下所示:
SUMMARY --------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
100 a 727.1040 24.3546 35.8285 37.1662 25.9815
I Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
100 i 727.1040 24.3546 35.8285 37.1662 25.9815
P Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
0 p -nan(ind) -nan(ind) -nan(ind) -nan(ind) -nan(ind)
B Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
0 b -nan(ind) -nan(ind) -nan(ind) -nan(ind) -nan(ind)
可以看出PSNR值整体都在30以下,说明图片质量较差。对文件进行解码,并截取第1、50、100帧进行对比。
从上面三帧的对比结果来看,与测试序列1结果相似。大致上图片质量损失较大,在细节处的对比尤为明显。但是物体的轮廓尚能分辨。
(4)测试序列2——第二组参数
测试序列2的第二组编码参数与测试序列1相同,即第一帧设置为I帧,其余为P帧,把QP值设为10。其他设置不变。视频压缩的过程截图如下:
程序运行了1969.095s,文件大小为2723KB,源文件大小为14850KB。压缩比为5.45,压缩效果较差。PSNR值如下所示:
SUMMARY --------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
100 a 11151.3200 48.8338 49.3611 50.5012 48.9460
I Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
1 i 23326.0000 53.4858 53.0045 53.5031 53.4046
P Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
99 p 11028.3434 48.7868 49.3243 50.4709 48.9180
B Slices--------------------------------------------------------
Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR
0 b -nan(ind) -nan(ind) -nan(ind) -nan(ind) -nan(ind)
可以看出整体的信噪比都在50以上,这个值对于人眼来说是非常不错的。I帧和P帧的数量为1、99,与我们设定的也一致。
对文件进行解码,截取关键帧(第一帧)并进行对比如下:
可以看出因为图片纹理的原因和高QP值,二者几乎看不出差别,但这是基于压缩效果的牺牲之上的。
3. 实验二:H.264 视频编码与解码
3.1 实验内容
选择同一个测试序列,采用相同编码参数,分别进行H.264 和HEVC 压缩编码和解码;
对比分析两个不同编解码器的编码性能,给出相应的参数配置,给出若干关键帧的原始图
像、以及相应的解码重建图像,给出每帧图像的PSNR 值。
3.2 实验原理简述
H.264是高级视频编码(Advanced Video Coding,简称AVC),又称为MPEG-4第10部分。是一种面向块,基于运动补偿的视频编码标准。到2014年,它已经成为高精度视频录制、压缩和发布的最常用格式之一。3
H.264/AVC包含了一系列新的特征,使得它比起以前的编解码器不但能够更有效的进行编码,还能在各种网络环境下的应用中使用。这些新特性包括但不限于如下几种4:
- 多参考帧的运动补偿。比起以前的视频编码标准,H.264/AVC以更灵活的方式使用已编码的更多帧来作为参考帧。在某些情况下,可以使用最多32个参考帧。
- 变块尺寸运动补偿。可使用最大16x16至最小4x4的块来进行运动估计与运动补偿,能够对图像序列中的运动区域进行更精确的分割。
- 六抽头滤波器产生二分之一像素的亮度分量预测值。这可以减少混叠并得到更锐化的图像。
- 灵活的隔行扫描视频编码。隔行扫描图像的每帧包括两个场,所以对于隔行扫描图像有三种编码方式:将两场合并为一帧进行编码、将两场分别编码、将两场合并为一帧,但是在宏块级别上,将一个帧宏块划分为两个场宏块进行编码。
- 使用了一个Loop的除块效应滤波器,能够减轻普遍存在于其他基于离散余弦变换(DCT)的视频编解码器的块效应。
3.3 实验过程与分析
3.3.1 实验环境与测试序列
我选取的编码器为JM19.05。其他环境与实验一一致。在实验二我选的测试序列都为实验一中的测试序列1"akiyo_qcif.yuv"。内容为主持人进行新闻播报。大小为176*144。
3.3.2 实验操作与结果分析
实验二的配置参数与实验一中的一致,即是第一帧为I帧,其余都为P帧,所以正好可以使用baseline配置文件。否则如果需要使用B帧就需要使用Main方式了。
JM软件的配置参数如下所示(大部分都是与encoder_baseline.cfg文件一致,已删除部分注释):
# Files
InputFile = "akiyo_qcif.yuv" # Input sequence
InputHeaderLength = 0
StartFrame = 0 # Start frame for encoding. (0-N)
FramesToBeEncoded = 100 # Number of frames to be coded
FrameRate = 30.0 # Frame Rate per second (0.1-100.0)
SourceWidth = 176 # Source frame width
SourceHeight = 144 # Source frame height
SourceResize = 0 # Resize source size for output
OutputWidth = 176 # Output frame width
OutputHeight = 144 # Output frame height
TraceFile = "trace_enc.txt" # Trace file
ReconFile = "test_rec.yuv" # Reconstruction YUV file
OutputFile = "test.264" # Bitstream
StatsFile = "stats.dat" # Coding statistics file
# Encoder Control
ProfileIDC = 66
IntraProfile = 0
LevelIDC = 40 # Level IDC (e.g. 20 = level 2.0)
IntraPeriod = 0 # Period of I-pictures (0=only first)
IDRPeriod = 0 # Period of IDR pictures (0=only first)
AdaptiveIntraPeriod = 1 # Adaptive intra period
AdaptiveIDRPeriod = 0 # Adaptive IDR period
IntraDelay = 0
EnableIDRGOP = 0
EnableOpenGOP = 0
QPISlice = 28 # Quant. param for I Slices (0-51)
QPPSlice = 28 # Quant. param for P Slices (0-51)
FrameSkip = 0
ChromaQPOffset = 0 # Chroma QP offset (-51..51)
点击运行之后,程序运行较慢。运行过程如下所示:
程序运行了344.816s。文件大小为13KB,相对源文件3713KB。压缩比为285.6,压缩效果很好。PSNR值信息如下所示:
Y { PSNR (dB), cSNR (dB), MSE } : { 38.384, 38.380, 9.44246 }
U { PSNR (dB), cSNR (dB), MSE } : { 40.826, 40.824, 5.37896 }
V { PSNR (dB), cSNR (dB), MSE } : { 41.726, 41.725, 4.37107 }
可以看出PSNR值接近40,图片质量相对较好。对文件进行解码,将源文件关键帧、HEVC解码的关键帧(QP值修改为28,文件大小为9KB)和H.264解码的关键帧进行对比。
由图可知,HEVC解码后的图片比H.264解码的结果的更加清晰,细节恢复的效果也更好。同时HEVC的压缩效果也更好,运行时间也更短。综上,HEVC的表现相比H.264来说更加优异。
4. 拓展实验:AVS2视频编码与解码
4.1 实验内容
选择同一个测试序列,采用与上述实验相同的编码参数,进行AVS2压缩编码和解码;
对比分析几个不同编解码器的编码性能,并给出相应的参数配置,给出若干关键帧的原始图
像、以及相应的解码重建图像,给出图像的平均PSNR 值。
4.2 实验原理简述
AVS标准是我国自主知识产权的信源编码标准,是针对中国音视频产业的需求,由中国数字音视频领域的科研机构和企业牵头,相关国际单位和企业广泛参与,按照国际开放式规则制定的系列标准。目前已经完成了两代AVS标准的制定。
第二代AVS标准,简称AVS2,首要应用目标是超高清晰度视频,支持超高分辨率(4K以上)、高动态范围视频的高效压缩。IEEE国际标准号号为IEEE1857.4。根据官方网站的叙述,在数字电视广播(逐行)、实时通信和数字电影或静态图像领域,AVS2和HEVC的编码性能相似,但在数字电视广播(隔行)和视频监控的应用方面,AVS2的编码性能要明显高于HEVC。
与HEVC编码框架类似,AVS2也采用了混合编码框架,整个编码过程包括帧内预测、帧间预测、变换量化、反量化反变换、环路滤波和熵编码等模块。6
AVS2编码包括但不限于如下特性:
- 灵活的编码结构划分。AVS2采用了基于四叉树的块划分结构,包括编码单元(Coding Unit,CU)、预测单元(Prediction Unit,PU)和变换单元(Transform Unit,TU)。
- 灵活的帧内预测编码。相比于AVS1和H.264/AVC,AVS2在亮度块的帧内预测编码上设计了33种模式,包括DC预测模式、Plane预测模式、Bilinear预测模式和30种角度预测模式。在色度块上有5种模式:DC模式、水平预测模式、垂直预测模式、双线性插值模式以及新增的亮度导出(Derived mode, DM)模式。
- 增加了前向多假设预测F图像。编码块可以参考前向两个参考块,相当于P帧的双假设预测。AVS2将双假设预测分为两类,分别是时域双假设和空域双假设。时域双假设的当前编码块利用预测块加权平均作为当前块的预测值,但运动矢量差MVD和参考图像索引都只有一个,另外一个MVD和参考图像索引根据时域上的距离按线性缩放推导出来。而空域双假设预测也叫方向性多假设预测,通过融合初始预测点周围的两个预测点得到,而且初始预测点位于这两个预测点的连线上。除了初始预测点外,一共有8个预测点,只将和初始预测点连成同一条直线的两个预测点进行融合。除了四种不同的方向外,还根据距离进行调整,对1/2像素距离和1/4像素距离位置的4种模式分别计算,在加上初始预测点,共9种模式进行比较,选择出最佳预测模式。
4.3 实验操作与结果分析
4.3.1 实验环境和测试序列
与实验一二一致,拓展实验选择的测试序列同样为"akiyo_qcif.yuv",环境为Visual Studio。
参考软件为北京大学开源的AVS2编码器和与解码器。使用该编码器和解码器需要进行一些环境配置。
值得注意的是,环境配置大部分是我自己摸索出来的,可能会有不正确或者不必要的操作存在。希望老师可以理解或者提出指正。
(1) 编码器环境配置
首先根据官方文档,需要安装一个shell执行器,比如git-for-windows中的bash,并将bash所在的目录添加到系统环境变量PATH中。
其次需要下载nasm.exe文件,并将其放到\build\vs2013目录下。
再打开vs2013目录下的’xavs.sln’工程文件,选择’x64’生成解决方案,否则会报错一些asm文件中的位数错误。生成成功后会在\build\bin\x64_debug文件夹中看到已经生成的可执行文件’xavs.exe’文件。
之后需要写yuv文件对应的配置文件(cfg文件),在config文件夹中找到’encoder_ldp.cfg’文件。复制粘贴到工作目录,修改yuv文件的名称、空间分辨率、需要编码的帧数等参数。
最后在Visual Studio中的xavs的属性中编辑对应的命令参数。命令参数很简单,如下所示,可能需要修改路径。之后便可以顺利运行。
-f C:\xavs2-master\xavs2-master\build\bin\x64_Debug\encoder_ldp.cfg
(2)解码器环境配置
解码器环境配置相对简单。同样用’x64’便可以生成可执行文件
其次将编码器生成的test.avs压缩文件和test_rec.yuv参考文件复制粘贴到解码器的工作目录下。在Visual Studio中修改davs2的命令参数。命令参数也很简单,如果需要修改I/O文件的名称可以直接修改。修改davs2的工作目录可有可无,不修改则默认在vs2013文件夹下生成解码文件。
-i test.avs -o dec.yuv -r test_rec.yuv
4.3.2 实验过程与结果分析
配置参数我选择的是第一帧为I帧,其余为AVS2独有的F帧。QP值修改默认设置第一帧为34,此后帧QP的最小值和最大值都为34。修改后部分配置参数如下所示(已删去部分注释):
InputFile = "C:\xavs2-master\xavs2-master\build\bin\x64_Debug\akiyo_qcif.yuv" # Input sequence, YUV 4:2:0
FramesToBeEncoded = 100 # Number of frames to be coded
SourceWidth = 176 # Image width in Pels
SourceHeight = 144 # Image height in Pels
fps = 50.0
ChromaFormat = 1
InputSampleBitDepth = 8
SampleBitDepth = 8
ReconFile = "test_rec.yuv"
OutputFile = "test.avs"
# Maximum Size
MaxSizeInBit = 6 # Maximum CU size
# Encoder Control
ProfileID = 32
LevelID = 66
IntraPeriodMin = 0
IntraPeriodMax = 0
OpenGOP = 0 # Open GOP
UseHadamard = 1
FME = 3
SearchRange = 64 # Max search range
NumberReferenceFrames = 4
inter_2PU = 1
inter_AMP = 1
# F Frames
FFRAMEEnable = 1
DHPEnable = 1 # (0: Don't use DHP, 1:Use DHP)
MHPSKIPEnable = 1
WSMEnable = 1 # (0: Don't use WSM, 1:Use WSM)
点击运行,程序运行较快,运行过程如下所示:
程序运行很快,6.933s编码了100帧。文件大小为9KB。源文件大小为3713KB,压缩比为412.56。课件AVS2的压缩效率和压缩效果表现都很好。
PNSR值如下所示,PSNR值接近40,说明图片质量可以接受:
AVERAGE SEQ PSNR: 37.5197 40.9658 42.0968
xavs2[i]: BITRATE: 35.29 kb/s @ 50.0 Hz, 100 frames, xavs2 p8
xavs2[i]: TOTAL BITS: 70576 (I: 14416, B: 0, P/F: 56160)
xavs2[d]: TOTAL TIME: 6.912 sec, total 100 frames, speed: 14.47 fps
xavs2[d]: Frame Time: I: 1.51%; B: 0.00%; P/F: 98.49%
xavs2[i]: Frame Num : I: 1.00%; B: 0.00%; P/F: 99.00%
将压缩文件进行解码重构,并将三种标准重构(HEVC和H.264为第一帧为I帧,其余为P帧,QP值设为34)的图像进行对比,结果如下所示:
可以看出H.264解码之后效果最好,ASV2和HEVC解码之后细节处都有些许模糊,而ASV2相对HEVC更为清晰。
压缩文件大小 | 压缩时间 | 关键帧PSNR值 | |
---|---|---|---|
HEVC | 5KB | 117.752s | 35.8 38.5 40.3 |
H.264 | 6KB | 356.234s | 34.6 38.1 39.7 |
ASV2 | 9KB | 7.612s | 38.7 40.9 42.2 |
由结果可以看出,压缩时间相差较大,与理论有较大差异。原因可能是因为生成可执行文件的方式不同,前两者为’win32’,后者为’x64’,因此后者计算更为快速。
压缩效果HEVC最好,H.264次之,ASV2最末。但相差并不大。
关键帧PSNR值ASV2指标最高,但是由解码之后图片中H.264最为清晰。可能是PSNR指标与人眼视觉系统(HVS)的差异决定的。
5. 实验感想
在尝试了解本文的几种编码标准的原理时发现很复杂,看了很长时间都没有理解。但查阅资料后发现AVS第一代标准是由我国的前任团队花了三年多时间建立的,深觉工程之艰难。
本文取的一些参数有部分不能满足控制变量的原则,但是有些参数的设置使得程序运行时间很长,所以很难有多组数据进行科学的对比试验。这可以在课后自我完成。
总之这次实验虽然不复杂,但是让我们真切的感受了视频编码的过程,希望以后有机会可以加入这个领域迎接挑战。同时感谢助教和老师的出题和讲解。
R. Sjoberg et al., “Overview of HEVC High-Level Syntax and Reference Picture Management,” in IEEE Transactions on Circuits and Systems for Video Technology, vol. 22, no. 12, pp. 1858-1870, Dec. 2012, doi: 10.1109/TCSVT.2012.2223052. ↩︎
下载地址:http://trace.eas.asu.edu/yuv/index.html ↩︎
https://zh.wikipedia.org/wiki/H.264/MPEG-4_AVC ↩︎
Sullivan G J, Topiwala P N, Luthra A. The H. 264/AVC advanced video coding standard: Overview and introduction to the fidelity range extensions[C]//Applications of Digital Image Processing XXVII. International Society for Optics and Photonics, 2004, 5558: 454-474. ↩︎
下载地址:http://iphome.hhi.de/suehring/tml/download/ ↩︎
http://www.avs.org.cn/AVS2/technology.asp ↩︎