HEVC Block-data-structure

合集下载

HEVC帧间编码器算法优化

HEVC帧间编码器算法优化
3.2.1 误差曲面估计方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2.2 与已有的不同模型的比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2.3 插值简化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3 实验结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.4 本章总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 第 4 章 以 CNN 为基础的快速 CU 模式判决算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.1 研究综述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.2 以 CNN 为基础的 CU 分割模式判决算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.2.1 同质性检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.2.2 CNN 结构和训练方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.3 实验结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.4 本章总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 第 5 章 CNN 的硬件设计及验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.1 研究综述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.2 CNN 硬件设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.2.1 非线性激活函数的拟合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

HEVC解码流程框架

HEVC解码流程框架

1.HEVC 解码过程
1.1 HEVC解码框架
1.1.1 HEVC码流组成
HEVC/H265 是以NAL方式组织数据的,解析VPS,SPS,PPS,SEI,SEI_SUFFIX 后,其他的是一个个slice的NAL数据,而Deblocking & SAO Filters 等滤波是对整个picuture 进行滤波操作,出现从第二帧开始,每帧的第一个slice两次进行解析。

解码和滤波后当然就是输出重构数据,xWriteOutput( pcListPic, nalu.m_temporalId ),如果slice是NAL_UNIT_CODED_SLICE_IDR,NAL_UNIT_CODED_SLICE_IDR_N_LP,NAL_UNIT_CODED_SLICE_BLA_N_LP,NAL_UNIT_CODED_SLICE_BLANT,NAL_UNIT_CODED_SLICE_BLA中的一种,将解码产生的picture全部清空,没有任何参考帧,相当于一个新的sequence进行解码了。

1.1.2 HEVC 解码流程
图2.1 HM解码器代码框架-1
图2.2 HM解码器代码框架-2
1.1. HEVC CU的解码
函数xDecodeCU是对一个CU解码的入口,在xDecoderCU 中首先获取分割模式split_cu_flag 来判断是否对当前CU做进一步划分,若有划分则进一步递归调用xDecoderCU。

(后续完成)。

hevc编码框架解读 -回复

hevc编码框架解读 -回复

hevc编码框架解读-回复让我们一步一步回答以中括号内的内容为主题的[hevc编码框架解读]并写一篇1500-2000字的文章。

第一步:介绍何为HEVC编码框架HEVC是高效视频编码(High Efficiency Video Coding)的缩写,也被称为H.265。

HEVC编码框架是一种用于压缩和解压缩高分辨率视频的编码系统。

HEVC是一种不断发展的视频编码标准,其目的是提供更高的压缩效率和更好的视频质量。

第二步:说明HEVC编码框架的基本原理HEVC编码框架的基本原理是通过利用时空相关性来减少视频数据的冗余。

它采用了一系列的编码技术,包括变换、运动估计、熵编码等。

1. 变换:HEVC编码框架使用离散余弦变换(DCT)来分析和表示视频中的空间频率。

通过对视频块进行变换,可以提取出频域中的重要信息,并将其编码表示。

2. 运动估计:HEVC编码框架利用时间相关性来减少视频序列中的冗余。

通过将当前帧与先前帧进行比较,可以检测到对象的运动,并提供一个运动矢量,用于表示对象的位移和速度。

这样,在解码时,只需传输运动矢量和残差信息,而不是整个帧,从而减少了数据传输量。

3. 熵编码:HEVC编码框架使用熵编码技术来进一步减少数据的冗余。

熵编码通过给出最短的编码来表示最常出现的符号。

在HEVC中,使用了自适应变长编码(AVC),通过将频繁出现的符号编码为较短的码字,以提高编码效率。

第三步:解释HEVC编码框架的编码过程HEVC编码框架的编码过程包括下列关键步骤:1. 预处理:输入视频帧被分成大小相等的块,如64x64或32x32。

每个块都会通过预处理阶段进行预处理,如颜色转换、亮度调整等。

2. 变换和量化:在这一步骤中,对每个预处理后的块使用离散余弦变换(DCT)来获得频域表示。

然后,通过将变换系数量化为较低的精度来减少编码比特数。

3. 运动估计:在这一步骤中,当前帧的块与参考帧中的相应块进行比较,以计算运动矢量。

HEVC相关技术简介

HEVC相关技术简介
H.264 中的direct模式是给定预先设定的值进行传输。而HEVC里的 merge和 skip不是这样。 3)skip模式和merge模式之间的区别:skip模式不传残差,只传 skip_flag 和merge_index。Merge模式传残差和merge_index。
• Skip模式作用:节省码率。 5)merge模式:不需要进行复杂的运动估计,只有运动补偿,当前PU块
格式从720P向1080P全面升级,在一些视频应
压 缩
用领域甚至出现了4Kx2K、8Kx4K的数字视频格 式


更 ● 高帧率(Higher frame rate):数字视频帧率从

30 fps向60fps、120fps甚至240fps的应用场
景升级
● 高压缩率(Higher Compression rate):传输带 宽和存储空间
帧内预测编码技术
Intra Prediction
帧内预测编码技术
Planar 模式
线性插值
双线性插值
在平面预测中,首先右下角的像素Z 由图中重建像素L 和T平均得到,然后利用重建像素L和T与Z进行线性 插值计算出最下面一行和最右边一列像素值,如图中像 素M 和N,然后利用插值得到的像素进行双线性插值计 算其它预测像素值,如图中像素P
一代的视频编码标准。
■ 2010年4月在德国德雷斯顿召开了JCT-VC 第一次会议,确定了新一代视频 编码标准的名称:HEVC(High Efficiency Video Coding)。并且建立了测 试模型TMuC (Test Model under Consideration),分领域搜集和审阅技 术提案。初步定于2012年7月完成标准的最终稿。
H.264编码的局限性

hevc编码框架解读 -回复

hevc编码框架解读 -回复

hevc编码框架解读-回复HEVC编码框架解读中括号内的内容作为主题,我们将一步一步回答并解读HEVC(High Efficiency Video Coding)编码框架。

HEVC是一种用于视频压缩的编码标准,它取代了以前的H.264/MPEG-4 AVC编码标准,并提供更高效的视频压缩和更好的视频质量。

下面我们将深入了解HEVC编码框架。

1. 介绍HEVC编码框架HEVC编码框架是一种用于视频压缩的算法和数据结构的组合,旨在将视频数据尽可能小地压缩,同时保持高质量的视觉体验。

框架包含多个模块,每个模块都负责压缩视频数据的一个特定领域。

2. HEVC编码框架的模块HEVC编码框架由以下几个主要模块组成:- 输入预处理模块:此模块负责对原始视频进行预处理。

它包括去噪、滤波和颜色校正等技术,以提高视频质量和压缩效果。

- 帧分割模块:该模块将视频分成连续的帧,并对每一帧进行处理。

帧分割技术包括I帧(关键帧)和P帧(预测帧)等概念,以更好地利用图像的时间和空间相关性。

- 运动估计模块:此模块负责检测视频中物体的运动。

它通过比较连续帧之间的像素差异来推断物体的移动方向和速度。

运动估计技术有助于识别像素的重复出现,从而实现更高效的压缩。

- 变换编码模块:在该模块中,对运动估计模块的输出进行变换编码。

HEVC使用了一种称为4x4和8x8离散余弦变换(DCT)的技术来转换空域的视频数据为频域数据。

- 量化和编码模块:在此模块中,HEVC对转换后的视频数据进行量化和编码处理。

量化是通过将每个频域系数除以固定的量化因子来减少数据的精度。

编码则利用熵编码技术将量化的频域数据压缩为更小的尺寸。

- 熵解码和逆量化模块:该模块用于将压缩的视频数据解码并逆量化为原始的频域数据。

- 逆变换模块和帧重构模块:这两个模块一起工作,将逆量化的频域数据通过逆变换转换为空域数据,并用于重构压缩后的视频帧。

3. HEVC编码框架的优势HEVC编码框架相对于以前的编码标准具有许多优势:- 更高的压缩效率:HEVC可以在保持相对较高的视频质量的同时,将视频数据压缩到更小的体积。

HEVC 四叉树编码结构 - 视骏-首页

HEVC 四叉树编码结构 - 视骏-首页

HEVC四叉树编码结构众所周知,标清和高清视频产业直到近年来才蓬勃发展。

在H.264/AVC制定的时候,视频还以CIF(352x288)为主,因此对大尺寸图像支持得不够充分。

大尺寸图像的一个特点是平缓区域的面积更大,用较大的块进行编码能够极大地提升编码效率。

在H.264中,最大可能的编码块是一个16x16的宏块,而在HEVC 中,最大可能的编码块为64x64的CU(Coding Unit),平缓区域的编码效率因此大大提高。

另一方面,大块不能很好的处理图像局部的细节,复杂的图像需要精细的预测,因此小块也是需要的。

在HEVC中,较大的图像块可以是1个CU,也可以被划分成4个小的CU,小的CU对应的块可以被继续划分成4个更小的CU,直到码流里说明的最小CU为止。

HEVC标准规定CU不能小于8x8,但是码流中可以说明最小CU的尺寸是可以大于8x8的。

CU的结构可以抽象为一个四叉树结构,如图3-1所示。

编码后平坦的区域用大块表示,复杂的区域用小块表示,从而提高了编码效率。

PU(Prediction Unit)和TU(Transform Unit)也使用了类似的四叉树结构。

图3-1这里有必要对CU、PU、TU进行一个更详细的说明。

【1】中是如下定义CU 的:One luma CB and ordinarily two chroma CBs, together with associated syntax, form a Coding Unit (CU). 进而,【1】中规定,PU是从CU进行划分得到的,用于表示用什么样的块结构进行预测。

TU也是从CU进行划分得到的,用于表示用什么样的块结构进行变换。

后面会比较多的用到CU,为了避免新名字带来的恐惧,读者在开始的时候可以简单地把它当做是大小不一的宏块。

灵活的四叉树结构极大地增加了编码复杂度,对解码复杂度的影响很小。

在H.264/AVC中,一个像素唯一地属于一个宏块,而在HEVC中,由于CU划分不唯一,它可能属于8x8到64x64这4种CU之一。

hevc语法元素定义

hevc语法元素定义

hevc语法元素定义【最新版】目录1.HEVC 概述2.HEVC 语法元素的定义与分类3.HEVC 语法元素的具体内容4.HEVC 语法元素的应用5.总结正文一、HEVC 概述HEVC,全称 High Efficiency Video Coding,即高效视频编码,是一种用于视频压缩和编码的标准。

相较于之前的视频编码标准,如H.264/AVC,HEVC 能够实现更高的压缩率和更低的码率,从而在保证视频质量的同时,降低视频传输和存储的成本。

二、HEVC 语法元素的定义与分类在 HEVC 中,语法元素是用于描述编码数据结构的基本单元。

这些语法元素可以分为三类:核心语法元素、辅助语法元素和补充语法元素。

1.核心语法元素:包括图像切片、图像区域、参考图像、量化参数等,是构成 HEVC 编码视频的基本组成部分。

2.辅助语法元素:包括熵编码、帧编码、参考帧管理等,用于提高编码效率和视频质量。

3.补充语法元素:包括色彩空间转换、数据分片、屏幕显示等,用于提供更多的视频处理功能和适应不同的应用场景。

三、HEVC 语法元素的具体内容以下是 HEVC 语法元素的一些具体内容:1.核心语法元素:图像切片(Picture Coding Unit, PCU)是 HEVC 中最基本的编码单元,可以是 16x16、32x32、64x64 等不同尺寸的像素块。

图像区域(Coding Unit, CU)是多个 PCU 的集合,用于划分编码层次。

参考图像(Reference Picture)用于预测编码图像,提高编码效率。

量化参数(Quantization Parameters)用于控制图像的细节层次和编码质量。

2.辅助语法元素:熵编码(Entropy Coding)包括霍夫曼编码(Huffman Coding)和算术编码(Arithmetic Coding),用于实现高效的数据压缩。

帧编码(Frame Coding)包括帧内编码(Intra-Coding)和帧间编码(Inter-Coding),用于实现空间和时间的数据压缩。

HEVC简写表

HEVC简写表

HEVC中一些英语简写AMVP:advanced motion vector prediction(前向运动向量预测)WPP:wavefront parallel processing(波前并行处理)RPS: reference picture setDPB:decoded picture buffer ()TSA:temporal sublayer access (临时子层通道)STSA:stepwise TSA (递归TSA)MPM --- most probable modecbf --- coded block flagPCM---prediction Coding Modecu_transquant_bypass---CU变换量化旁路POC------Picture Order Count 图像序列计数VPS------Video parameter set 视频参数设置SPS------Sequence parameter set 序列参数设置PPS-----Picture parameter set 图像参数设置DeltaQpRD: 基于slice的多QP优化MaxDeltaQP :基于CU的多QP优化SEI :Supplemental enhancement informationVUI :video usability informationNAL :Network Abstraction LayerCABAC :Context-adaptive binary arithmetic codingSVC :Scalable Video CodingMVC :Multiview Video CodingVCEG:Video Coding Experts GroupMPEG :Moving Picture Experts GroupFMO :Flexible macroblock orderingDP :Data partitioningRS :Redundant slicesProfilesConstrained Baseline Profile (CBP)Baseline Profile (BP) Main Profile (MP) Extended Profile (XP) High Profile (HiP) Progressive High Profile (PHiP) Constrained High Profile (CHiP)High 10 Profile (Hi10P) High 4:2:2 Profile (Hi422P) High 4:4:4 Predictive Profile (Hi444PP)High 10 Intra ProfileHigh 4:2:2 Intra ProfileHigh 4:4:4 Intra ProfileCA VLC 4:4:4 Intra ProfileScalable Baseline ProfileScalable Constrained Baseline ProfileScalable High ProfileScalable Constrained High ProfileScalable High Intra ProfileStereo High ProfileMultiview High ProfileCRA (Clean Random Access )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

43 44 47 48 59 60 63 64
Samsung Electronics Co. Ltd. and British Broadcasting Corporation, 2010
Data structure and access method (5)
• How to convert between z-scan and raster scan in LCU-based index?
– Basically, every index is the storage unit number within the CU – In source-code, AbsPartIdx means absolute index in the given CU LCU (e.g. 64x64)
Sub-CU: TComDataCU* pcCU 0 2 8 1 3 4 6 5 7
pcCU->getPredictionMode(0)
9 12 13 Basic unit for storage
10 11 14 15 Index in CU
Samsung Electronics Co. Ltd. and British Broadcasting Corporation, 2010
9 10 13 14 25 26 27 28
11 12 15 16 29 30 31 32
33 34 37 38 49 50 53 54 35 36 39 40 51 52 55 56 41 42 45 46 57 58 61 62
Sub-CU: TComDataCU* pcCU
pcCU->m_uiAbsIdxInLCU
10 11 12 13
Processing order
Samsung Electronics Co. Ltd. and British Broadcasting Corporation, 2010
Data structure and access method (2)
• TComDataCU class has all information we need
57 58 59 60 61 62 63 64
Samsung Electronics Co. Ltd. and British Broadcasting Corporation, 2010
Data structure and access method (6)
• Transform coefficient data structure
– 1D arrays, m_pcTrCoeffY, m_pcTrCoeffCb and m_pcTrCoeffCr are allocated in LCU – For each CU, getCoeffY, getCoeffCb and getCoeffCr give the starting point of coefficients. They are arranged using raster-scan LCU (e.g. 64x64) 16 1 3 2 4 16x16 = 256 entries
Samsung Electronics Co. Ltd. and British Broadcasting Corporation, 2010
Data structure and access method (3)
• Every information in CU is accessed by index
Data structure and access method (4)
• How to obtain absolute index in LCU?
– Each TComDataCU class has m_uiAbsIdxInLCU, which means the absolute z-scan index in LCU basis – Useful to derive index of neighbouring CUs LCU (e.g. 64x64) 1 3 2 4 5 7 6 17 18 21 22 8 19 20 23 24
9 10 13 14 25 26 27 28 11 12 15 16 29 30 31 32 33 34 37 38 49 50 53 54 35 36 39 40 51 52 55 56 41 42 45 46 57 58 61 62
g_auiRasterToZscan
43 44 47 48 59 60 63 64
– – – – Two arrays, g_auiZscanToRaster and g_auiRasterToZscan g_auiZscanToRaster[ z-scan index ] = raster scan index g_auiRasterToZscan[ raster index ] = z-scan index Raster scan is useful to derive index of neighbouring CUs LCU (e.g. 64x64, raster) 1
– Actual data storage is allocated only at LCU (largest CU) level • In Sub-CUs, data storage points to suitable position in LCU storage LCU (e.g. 64x64) Basic unit for storage 4
Sub-CU: TComDataCU* pcCU
pcCU->getCoeffY()
0
LCU, m_pcTrCoeffY (64x64 = 4096 entries)
Samsung Electronics Co. Ltd. and British Broadcasting Corporation, 2010
Data structure and access method (1)
• LCU vs. Sub-CU
– All CUs are handled through TComDataCU* pointer – From the LCU (largest CU), Sub-CU is processed recursively by z-scan LCU (e.g. 64x64) 1 0 3 5 7 6 8 9 15 14 4 Sub-CU: TComDataCU* 2 Sub-CU: TComDataCU*
g_auiZscanToRaster
LCU (e.g. 64x64, z-scan) 1 3 2 4 5 7 6 17 18 21 22 8 19 20
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
相关文档
最新文档