版本
HEVC (H.265) 规范的第一个版本于 2013 年 4 月发布。该标准的版本如下:
- ITU-T H.265 (V1) (04/2013) http://handle.itu.int/11.1002/1000/11885
- ITU-T H.265 (V2) (10/2014) http://handle.itu.int/11.1002/1000/12296
- ITU-T H.265 (V3) (04/2015) http://handle.itu.int/11.1002/1000/12455
- ITU-T H.265 (V4) (12/2016) http://handle.itu.int/11.1002/1000/12905
- ITU-T H.265 (V5) (02/2018) http://handle.itu.int/11.1002/1000/13433
- ITU-T H.265 (V6) (06/2019) http://handle.itu.int/11.1002/1000/13904
- ITU-T H.265 (V7) (11/2019) http://handle.itu.int/11.1002/1000/14107
结构术语
- 四叉树(通常连字符)。一个树的数学术语,其中一个父节点可以分成四个子节点,每个子节点都可以成为另一个子节点的父节点,分成四个子节点。有关 HEVC 中使用的四叉树示例,请参阅 HEVC 中的块结构和并行功能:图 3。
- CTU(编码树单元)。在 HEVC 中,图片被划分为 CTU,它们是方形块,可能除了底部行和右侧列。一个 CTU 可进一步分为 4 个子 CTU。
- 瓷砖和切片。HEVC 有两种附加类型的分区可用于图片。它们由 CTU 序列组成。瓦片是构成图片的矩形瓦片网格内的 CTU 矩形区域;瓷砖被视为独立图片。切片是可以独立于同一图片的其他切片进行解码的 CTU 序列。切片可以是整个图片或图片的区域。切片的主要用途之一是在数据丢失时重新同步。与常见用法相比,HEVC 中的切片不限于矩形网格中的单行块。请参阅 HEVC 规范中的子条款 6.3 或 HEVC 中的块结构和并行功能:图 6。
- I 切片(内部切片)是独立压缩的 HEVC 切片。仅使用帧内预测对 I-slice 进行解码。更常见的术语I-frame的扩展。
- P 切片(预测切片)基于与视频源中先前图片的差异,采用图片间编码。更常见的术语P-frame的扩展。
- B 切片(双向预测切片)是双向预测切片,使用当前图片与前后图片之间的差异来导出当前切片的编码内容。更常见的术语B-frame的扩展。
- 帧内编码使用各种空间预测模式来利用源信号中的空间统计相关性,用于单个图片或图块。
- 帧间编码使用运动矢量进行基于块的预测,以利用不同图片之间的时间统计相关性。在 HEVC 中,帧间预测可以应用于块和切片子结构,而不仅仅是整个图片或图块。
- SEI:补充增强信息。SEI 消息包含的信息(通常称为消息有效负载)不是简单地对编码图片样本进行解码所必需的,而是对解码器的标准化结构化消息,可以帮助与解码、显示或其他相关的过程。目的。某些高级功能(例如 3-D)在无法识别相应 SEI 消息的应用程序中无法正常运行。
- 级别由一组定义的约束组成,这些约束对 HEVC 语法元素和变量可能采用的值或缩放之前的变换系数的值进行。为所有 HEVC 配置文件定义了一组通用的“通用”级别。因此,每个级别定义的大多数方面在不同的配置文件中都是通用的。在编码的视频序列中,配置文件、级别和层在参数集中以非常简洁的方式标识,简单工具无法访问。请参阅上面的文件类型指示符。
- 层是对比特流中的语法元素的值施加的指定级别约束类别,其中级别约束嵌套在层内,并且符合特定层和级别的解码器将能够解码符合同一层的所有比特流或该级别的较低级别或低于该级别的任何级别。
- CPB(编码图像缓冲区)是一个缓冲区,其中包含解码单元,其解码顺序在 HEVC 规范的附件 C 中的假设参考解码器中指定。编码器生成的内容编码中 CPB 的大小是解码器的一个重要因素。级别以位为单位指定最大 CPB 大小。
- HEVC 中的参数集与 H.264/AVC 中的参数集相似,具有相同的基本设计目标——即比特率效率、错误恢复能力和支持系统层接口。HEVC 中存在参数集的层次结构,包括序列参数集 (SPS) 和图像参数集 (PPS),它们与 AVC 中的对应部分相似。HEVC 引入了一种称为视频参数集 (VPS) 的新型参数集。参数集存储在特殊的网络抽象层 (NAL) 单元中,特定的 NAL 单元类型在单元的开头编码为二进制整数。请参阅 HEVC 规范中的表 7-1 或高效视频编码 (HEVC) 标准概述中的表 I用于将整数代码映射到人类可读的名称。为了压缩效率,这些参数集的编码非常简洁,主要使用 1 位标志和二进制整数。请注意,如果按照ISO/IEC 14496-15的规定将 HEVC 编码的视频序列或静止图像嵌入到ISO_BMFF容器中,则 VPS 和 SPS 参数集将在类型为hvcC的框中的HEVC 配置项属性中找到。
- SPS(序列参数集)。包含适用于整个编码视频序列的参数,并且不会在编码视频序列内的图片之间更改。SPS 具有比特深度、色度格式、图片宽度和图片高度等特性的代码。NAL 单元类型为 33。
- VPS(视频参数集)。HEVC 中定义的新参数集,适用于比特流的所有层。一个层可以包含多个时间子层。NAL 单元类型为 32,存储在 SPS 之前。
- PPS(图片参数集)。每张图片有一个 PPS。此参数集中存储的详细信息包括:平铺行数;瓷砖列的数量;与是否使用特定扩展(例如,用于 3D 或屏幕内容编码 (SCC))相关的标志;以及解码图片所需的其他参数。NAL 单元类型为 34。
有用的参考资料
- 高效视频编码的维基百科条目(https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding)。
- 来自 MPEG 网站和开发初始 HEVC 规范及其扩展的工作组参与者的资源。
- 高效视频编码 | 在 MPEG 网站上(https://mpeg.chiariglione.org/standards/mpeg-h/high-efficiency-video-coding)。自 2020 年 6 月起,该 MPEG 网站不再由其前任编辑积极维护,但有大量有用的文档,无论是从最初的开发阶段还是与后来的扩展相关。
- ITU-T H.265 (04/2013) (http://handle.itu.int/11.1002/1000/11885) 的永久标识符。ITU-T H.265 第一版的记录。列出其他版本。
- x265 HEVC 编码器/H.265 视频编解码器(https://www.x265.org/)。
- 高效视频编码 (HEVC) 标准概述 (2012) | 由 Gary J. Sullivan 等人撰写。(http://iphome.hhi.de/wiegand/assets/pdfs/2012_12_IEEE-HEVC-Overview.pdf)。发表于 IEEE Transactions on Circuits and Systems for Video Technology,Vol。2012年12月22日第12期
- HEVC 标准的帧内编码 (2012) | Jani Lainema 等人。(http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.352.3008)。发表于 IEEE Transactions on Circuits and Systems for Video Technology。卷。22,第12号。DOI:10.1109/TCSVT.2012.2221525
- 用于减少块伪影的两种 HEVC 编码器方法 (2013) | 诺金等人。(https://www.semanticscholar.org/paper/Two-HEVC-encoder-methods-for-block-artifact-Norkin-Andersson/7990dbd5ae60db91d9e312f16ea59c91afef9ef5)。2013 年 IEEE 视觉通信和图像处理 (VCIP) 国际会议论文集
- HEVC 中的块结构和并行特性 (2014) | 海科施瓦茨等人。(https://www.researchgate.net/publication/300315241_Block_Structures_and_Parallelism_Features_in_HEVC)。作为第 3 章发布在高效视频编码 (HEVC):算法和架构,由 Vivienne Sze 等人编辑。国际标准书号 978-3-319-06895-4。
- HEVC 标准的范围扩展概述:工具、配置文件和性能 (2015) | 大卫弗林等人。(https://www.researchgate.net/publication/281791165_Overview_of_the_Range_Extensions_for_the_HEVC_Standard_Tools_Profiles_and_Performance)。发表于 IEEE Transactions on Circuits and Systems for Video Technology,Vol。26,第1号。DOI:10.1109/TCSVT.2015.2478707
- 高效视频编码的多视图和 3D 扩展概述 (2015) | 格哈德科技等人。(https://doi.org/10.1109/TCSVT.2015.2477935)。发表于 IEEE Transactions on Circuits and Systems for Video Technology,Vol。26, No. 1. DOI: 10.1109/TCSVT.2015.24779351):1-1
- SHVC 概述:高效视频编码 (HEVC) 标准的可扩展扩展 (2015) | 吉尔·布斯等人。(https://www.researchgate.net/publication/282477513_Overview_of_SHVC_Scalable_Extensions_of_the_High_Efficiency_Video_Coding_HEVC_Standard)。发表于 IEEE Transactions on Circuits and Systems for Video Technology,Vol。26,第1号。DOI:10.1109/TCSVT.2015.2461951
- SHVC、HEVC 的可扩展扩展及其应用 (2016) | 严野等人。(https://www.zte.com.cn/global/about/magazine/zte-communications/2016/1/en_214/448971.html)。讨论在高级电视标准化委员会 (ATSC) 和 3GPP 标准中的潜在采用。
- 屏幕内容视频编码概述:技术、标准及其他 (2016) | 由文小鹏等人撰写。(https://www.researchgate.net/publication/311443280_Overview_of_Screen_Content_Video_Coding_Technologies_Standards_and_Beyond)。发表于:IEEE Journal on Emerging and Selected Topics in Circuits and Systems, Vol. 2016年12月6日第4期
- 全向 360° 视频编码技术响应关于超越 HEVC 能力的视频压缩提案的联合征集 (2019) | 严野等人。(https://ieeexplore.ieee.org/document/8902161)。发表于:IEEE Transactions on Circuits and Systems for Video Technology,卷。30,第:5,2020年5月)
- 通过 HTTP 实现全向视频的带宽高效自适应流式传输 (2017) | 马里奥格拉夫等人。(https://www.semanticscholar.org/paper/Towards-Bandwidth-Efficient-Adaptive-Streaming-of-Graf-Timmerer/cbc3dd6bbf8bb4d14b56d37a04d155e5dda7014c)。描述 HEVC 中指定的切片的用法。
- MPEG OMAF 标准 (2019) 中的多视点和叠加 | 由 Igor DD Curcio 等人撰写。(https://www.itu.int/en/journal/2020/001/Pages/03.aspx)。OMAF(全向 MediA 格式)标准 (ISO/IEC 23090-2) 具有基于使用 HEVC Main 10 配置文件对图片或图块进行编码的配置文件。
- 高效视频编码 (HEVC) 测试模型 16 (HM 16) 编码器描述更新 13(2020 年 1 月) (https://mpeg.chiariglione.org/standards/mpeg-h/high-efficiency-video-coding/high-efficiency -video-coding-hevc-test-model-16-hm-2)。描述在 HM-16.21 参考软件中实现的编码过程
- 弗劳恩霍夫 HHI | 高效视频编码 (HEVC) (http://hevc.info/)。包括与 HEVC 的多视图、3D 和可扩展性扩展相关的良好资源。似乎是 https://hevc.hhi.fraunhofer.de/ 的别名
- Apple 在其 2017 年开发者大会 WWDC 2017 上举行了几次有关 HEVC 的会议。下面列出的视频是有关 HEVC 编码的特殊功能和 Apple 实施的高效图像文件格式 (HEIF) 文件的优秀资源。请注意,每个视频都由带有方便的内置链接的脚本支持,该链接指向视频中的相应位置。
- 介绍 HEIF 和 HEVC(2017 年 6 月)| 来自 Apple Developers Conference WWDC 2017 (https://developer.apple.com/videos/play/wwdc2017/503/)的视频(30 分钟)。
- 与 HEIF 和 HEVC 合作 (2017) | 来自 Apple Developers Conference WWDC 2017 (https://developer.apple.com/videos/play/wwdc2017/511)的视频(60 分钟)。针对现有工具包中 API 修改的开发人员详细信息。HEIF 部分从 20 分钟开始。
- HTTP Live Streaming 进展 (2017) | 来自 Apple 开发者大会 WWDC 2017 (https://developer.apple.com/videos/play/wwdc2017/504) 的视频(60 分钟)。HEVC 部分从 2 1/2 分钟开始。
- HLS (HTTP Live Streaming) 创作更新 (2017) | 来自 Apple 开发者大会 WWDC 2017 (https://developer.apple.com/videos/play/wwdc2017/515/) 的视频(9 分钟)。
- 2014 年和 2015 年,出版了有关 HEVC 的书籍,作为正式文本规范和参考软件的伴侣。这些由 Springer 出版,可通过订阅或购买在线获得。
- 高效视频编码 (HEVC):算法和架构 | 由 Vivienne Sze 等人编辑。ISBN 978-3-319-06895-4 (https://www.springer.com/us/book/9783319068947)。与 HEVC 规范的初始版本有关。单独撰写的关于 HEVC 不同技术方面的章节。第 9 章使用参考软件比较了 HEVC 和 AVC 的压缩性能。
- 高效视频编码 (HEVC):编码工具和规范 (2015) | 作者:Mathias Wien (https://www.springer.com/us/book/9783662442753)。包括视频编码的历史和技术背景,以及与视频编码各个方面(例如时间和空间预测编码、颜色表示等)相关的所有章节中与 AVC 的比较。引入了新的范围扩展配置文件,该配置文件将包含在规范的第 2 版中。
- HEVC 编码与其他压缩方案的比较。请注意,上面列出的许多文章都有包含压缩效率比较的部分。
- 视频编码标准的编码效率比较——包括高效视频编码 (HEVC) (2012) | Jens-Rainer Ohm 等人。(http://publica.fraunhofer.de/documents/N-234468.html)。HEVC 与包括 AVC 在内的几个早期视频编码标准的比较。
- 多光谱卫星图像的有损压缩与作物专题制图的应用:HEVC 比较研究(2020 年 5 月)(https://www.researchgate.net/publication/341454495_Lossy_Compression_of_Multispectral_Satellite_Images_with_Application_to_Crop_Thematic_Mapping_A_HEVC_Comparative_Study)。
- 评估 3GPP 服务的高效视频编码 (HEVC)(第 16 版) (https://www.3gpp.org/ftp/Specs/archive/26_series/26.906/26906-g00.zip)。包括客观评价和主观评价。比较的是视频的 AVC 和静止图像的 JPEG。
- 与基于 HEVC 的其他标准相关的资源
- ATSC 3.0 数字电视系统(https://www.atsc.org/atsc-documents/type/3-0-standards/)。
- ATSC 3.0 A/341:2019 - 视频 - HEVC(https://muygs2x2vhb2pjk6g160f1s8-wpengine.netdna-ssl.com/wp-content/uploads/2021/04/A341-2019-Video-HEVC.pdf)。于 2020 年获得批准。适用于 HEVC 编码的 ATSC 3.0 视频比特流的约束和规范在第 6.1 至 6.4 节中列出。
- 3GPP 支持高效视频编码 (https://www.3gpp.org/news-events/1621-hevc)。3GPP 第 12 版规范 (2015-03-13 -- SA#67) 在多个服务中增加了对 HEVC 的支持
- 3GPP TR 26.906:3GPP 服务的高效视频编码 (HEVC) 评估(https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1483)。参考了 2020 年 7 月的更新。
- DICOM 补充 195:HEVC/H.265 传输语法 (2016) (http://dicom.nema.org/Dicom/News/September2016/docs/sups/sup195.pdf)。
- DICOM PS3.5 - 数据结构和编码(当前版本)(http://dicom.nema.org/medical/dicom/current/output/html/part05.html)。2020 年 11 月,指定了 HEVC 编码的两种变体。
- 与采用 HEVC 进行视频编码相关的其他资源
- Apple 设备的 HLS(HTTP 实时流)创作规范(https://developer.apple.com/documentation/http_live_streaming/hls_authoring_specification_for_apple_devices)。包括有关 HEVC 编码选择的指南。
- 如何在 Windows 10 上安装免费 HEVC 编解码器(用于 H.265 视频)(https://www.howtogeek.com/680690/how-to-install-free-hevc-codecs-on-windows-10-for-h .265-视频/)。自 2020 年秋季起,免费编解码器显然不再可用。作者建议安装带有 HEVC 编解码器的 VLC 应用程序。
- 用于 HEVC/H.265 (https://www.mainconcept.com/hevc)的 MainConcept 编码器。可作为广泛使用的 FFmpeg 软件的插件。
通用SPS RBSP语法结构
seq_parameter_set_rbsp( ) { | Descriptor |
sps_video_parameter_set_id | u(4) |
sps_max_sub_layers_minus1 | u(3) |
sps_temporal_id_nesting_flag | u(1) |
profile_tier_level( 1,sps_max_sub_layers_minus1 ) | |
sps_seq_parameter_set_id | ue(v) |
chroma_format_idc | ue(v) |
if( chroma_format_idc = = 3 ) | |
separate_colour_plane_flag | u(1) |
pic_width_in_luma_samples | ue(v) |
pic_height_in_luma_samples | ue(v) |
conformance_window_flag | u(1) |
if( conformance_window_flag ) { | |
conf_win_left_offset | ue(v) |
conf_win_right_offset | ue(v) |
conf_win_top_offset | ue(v) |
conf_win_bottom_offset | ue(v) |
} | |
bit_depth_luma_minus8 | ue(v) |
bit_depth_chroma_minus8 | ue(v) |
log2_max_pic_order_cnt_lsb_minus4 | ue(v) |
sps_sub_layer_ordering_info_present_flag | u(1) |
for( i = ( sps_sub_layer_ordering_info_present_flag ? 0 : sps_max_sub_layers_minus1 ); i <= sps_max_sub_layers_minus1; i++ ) { | |
sps_max_dec_pic_buffering_minus1[ i ] | ue(v) |
sps_max_num_reorder_pics[ i ] | ue(v) |
sps_max_latency_increase_plus1[ i ] | ue(v) |
} | |
log2_min_luma_coding_block_size_minus3 | ue(v) |
log2_diff_max_min_luma_coding_block_size | ue(v) |
log2_min_luma_transform_block_size_minus2 | ue(v) |
log2_diff_max_min_luma_transform_block_size | ue(v) |
max_transform_hierarchy_depth_inter | ue(v) |
max_transform_hierarchy_depth_intra | ue(v) |
scaling_list_enabled_flag | u(1) |
if( scaling_list_enabled_flag ) { | |
sps_scaling_list_data_present_flag | u(1) |
if( sps_scaling_list_data_present_flag ) | |
scaling_list_data( ) | |
} | |
amp_enabled_flag | u(1) |
sample_adaptive_offset_enabled_flag | u(1) |
pcm_enabled_flag | u(1) |
if( pcm_enabled_flag ) { | |
pcm_sample_bit_depth_luma_minus1 | u(4) |
pcm_sample_bit_depth_chroma_minus1 | u(4) |
log2_min_pcm_luma_coding_block_size_minus3 | ue(v) |
log2_diff_max_min_pcm_luma_coding_block_size | ue(v) |
pcm_loop_filter_disabled_flag | u(1) |
} | |
num_short_term_ref_pic_sets | ue(v) |
for( i = 0; i < num_short_term_ref_pic_sets; i++) | |
st_ref_pic_set( i ) | |
long_term_ref_pics_present_flag | u(1) |
if( long_term_ref_pics_present_flag ) { | |
num_long_term_ref_pics_sps | ue(v) |
for( i = 0; i < num_long_term_ref_pics_sps; i++ ) { | |
lt_ref_pic_poc_lsb_sps[ i ] | u(v) |
used_by_curr_pic_lt_sps_flag[ i ] | u(1) |
} | |
} | |
sps_temporal_mvp_enabled_flag | u(1) |
strong_intra_smoothing_enabled_flag | u(1) |
vui_parameters_present_flag | u(1) |
if( vui_parameters_present_flag ) | |
vui_parameters( ) | |
sps_extension_present_flag | u(1) |
if( sps_extension_present_flag ) { | |
sps_range_extension_flag | u(1) |
sps_multilayer_extension_flag | u(1) |
sps_3d_extension_flag | u(1) |
sps_scc_extension_flag | u(1) |
sps_extension_4bits | u(4) |
} | |
if( sps_range_extension_flag ) | |
sps_range_extension( ) | |
if( sps_multilayer_extension_flag ) | |
sps_multilayer_extension( ) /* specified in Annex F */ | |
if( sps_3d_extension_flag ) | |
sps_3d_extension( ) /* specified in Annex I */ | |
if( sps_scc_extension_flag ) | |
sps_scc_extension( ) | |
if( sps_extension_4bits ) | |
while( more_rbsp_data( ) ) | |
sps_extension_data_flag | u(1) |
rbsp_trailing_bits( ) | |
} |
序列参数集范围扩展语法
sps_range_extension( ) { | Descriptor |
transform_skip_rotation_enabled_flag | u(1) |
transform_skip_context_enabled_flag | u(1) |
implicit_rdpcm_enabled_flag | u(1) |
explicit_rdpcm_enabled_flag | u(1) |
extended_precision_processing_flag | u(1) |
intra_smoothing_disabled_flag | u(1) |
high_precision_offsets_enabled_flag | u(1) |
persistent_rice_adaptation_enabled_flag | u(1) |
cabac_bypass_alignment_enabled_flag | u(1) |
} |
序列参数集屏幕内容编码扩展语法
sps_scc_extension( ) { | Descriptor |
sps_curr_pic_ref_enabled_flag | u(1) |
palette_mode_enabled_flag | u(1) |
if( palette_mode_enabled_flag ) { | |
palette_max_size | ue(v) |
delta_palette_max_predictor_size | ue(v) |
sps_palette_predictor_initializers_present_flag | u(1) |
if( sps_palette_predictor_initializers_present_flag ) { | |
sps_num_palette_predictor_initializers_minus1 | ue(v) |
numComps = ( chroma_format_idc = = 0 ) ? 1 : 3 | |
for( comp = 0; comp < numComps; comp++ ) | |
for( i = 0; i <= sps_num_palette_predictor_initializers_minus1; i++ ) | |
sps_palette_predictor_initializer[ comp ][ i ] | u(v) |
} | |
} | |
motion_vector_resolution_control_idc | u(2) |
intra_boundary_filtering_disabled_flag | |
} |