HEVC(H.265)技术解析:下一代视频压缩标准

需积分: 10 11 下载量 107 浏览量 更新于2024-09-09 收藏 448KB PDF 举报
"本文主要解析HEVC(H.265)视频压缩标准,该标准是为应对高清、高帧率、高压缩率的视频应用需求而提出的,旨在解决H.264在处理这些趋势时的局限性。文章由华为企业业务BGUC&C产品线智真产品部的李军华和王浦林撰写,详细分析了HEVC的技术特点和未来可能带来的产业变革。" 正文: HEVC,全称High Efficiency Video Coding,即高效视频编码,是H.264/AVC的继任者,它在视频压缩效率上有了显著提升。H.264在2003年推出后,因其出色的压缩性能和网络适应性,成为了业界的主流标准。然而,随着视频应用对高清晰度、高帧率和高压缩率的需求增加,H.264逐渐显现出不足。 1. 高清晰度:随着视频格式从720P到1080P,乃至4K、8K的演进,H.264的宏块结构和编码方式无法有效处理如此大量的数据,导致编码效率下降。 2. 高帧率:视频帧率从30fps提升到60fps甚至更高,增加了编码复杂性,H.264的宏块预测和运动补偿机制难以应对这种变化。 3. 高压缩率:在有限的带宽和存储空间内,用户对更高质量视频的需求促使编码标准需要提高压缩效率。 HEVC为克服这些问题,引入了以下关键技术: (1) 更小的编码单元:HEVC采用了更小的编码单元,如最小单元为16x16、8x8甚至4x4像素,提高了编码的灵活性,能更好地适应图像内容的变化。 (2) 多层级预测:HEVC引入了多层级的预测模式,包括帧内预测和帧间预测,以减少相邻块间的冗余信息。 (3) 更精细的量化:HEVC提供了更精细的量化步长,能够更精确地控制编码过程中的失真与码率之间的平衡。 (4) 更复杂的变换结构:HEVC采用了更复杂的DCT变换,比如二维离散余弦变换(DCT)和二维离散余弦格栅变换(DCGT),以提高对低频系数的压缩效果。 (5) 运动补偿的改进:HEVC支持更精确的半像素和四分之一像素的运动估计,以及更灵活的运动矢量预测,减少了运动信息的编码开销。 (6) 分层编码和自适应编码:HEVC支持多个层次的编码,可以根据网络条件动态调整编码质量,同时结合熵编码的优化,实现了更高的码率控制精度。 HEVC的这些改进使得在相同的画质下,所需的数据量相比H.264可以减少大约50%,这对于移动设备、网络流媒体服务以及高清电视广播等领域具有重大意义。随着HEVC的广泛应用,视频内容的传输、存储和播放都将变得更加高效,同时也将推动相关硬件和软件技术的创新与发展。
2013-04-13 上传
新一代视频压缩编码技术!今年刚认证的H.265编码标准,前几天一直找不到白皮书,今天发上来,估计不少人也在找吧。下面是目录: CONTENTS Page Abstract i 0 Introduction 1 0.1 General 1 0.2 Prologue 1 0.3 Purpose 1 0.4 Applications 1 0.5 Publication and versions of this Specification 1 0.6 Profiles, tiers and levels 2 0.7 Overview of the design characteristics 2 0.8 How to read this Specification 2 1 Scope 3 2 Normative references 3 2.1 General 3 2.2 Identical Recommendations | International Standards 3 2.3 Paired Recommendations | International Standards equivalent in technical content 3 2.4 Additional references 3 3 Definitions 3 4 Abbreviations 12 5 Conventions 13 5.1 General 13 5.2 Arithmetic operators 13 5.3 Logical operators 13 5.4 Relational operators 14 5.5 Bit-wise operators 14 5.6 Assignment operators 14 5.7 Range notation 14 5.8 Mathematical functions 15 5.9 Order of operation precedence 15 5.10 Variables, syntax elements, and tables 16 5.11 Text description of logical operations 17 5.12 Processes 18 6 Bitstream and picture formats, partitionings, scanning processes, and neighbouring relationships 18 6.1 Bitstream formats 18 6.2 Source, decoded, and output picture formats 18 6.3 Partitioning of pictures, slices, slice segments, tiles, coding tree units, and coding tree blocks 21 6.3.1 Partitioning of pictures into slices, slice segments, and tiles 21 6.3.2 Block and quadtree structures 22 6.3.3 Spatial or component-wise partionings 23 6.4 Availability processes 23 6.4.1 Derivation process for z-scan order block availability 23 6.4.2 Derivation process for prediction block availability 24 6.5 Scanning processes 25 6.5.1 Coding tree block raster and tile scanning conversion process 25 6.5.2 Z-scan order array initialization process 26 6.5.3 Up-right diagonal scan order array initialization process 26 6.5.4 Horizontal scan order array initialization process 27 6.5.5 Vertical scan order array initialization process 27 7 Syntax and semantics 28 7.1 Method of specifying syntax in tabular form 28 7.2 Specification of syntax functions and descriptors 29 7.3 Syntax in tabular form 30 7.3.1 NAL unit syntax 30 7.3.1.1 General NAL unit syntax 30 7.3.1.2 NAL unit header syntax 30 7.3.2 Raw byte sequence payloads, trailing bits, and byte alignment syntax 31 7.3.2.1 Video parameter set RBSP syntax 31 7.3.2.2 Sequence parameter set RBSP syntax 32 7.3.2.3 Picture parameter set RBSP syntax 34 7.3.2.4 Supplemental enhancement information RBSP syntax 35 7.3.2.5 Access unit delimiter RBSP syntax 35 7.3.2.6 End of sequence RBSP syntax 35 7.3.2.7 End of bitstream RBSP syntax 35 7.3.2.8 Filler data RBSP syntax 36 7.3.2.9 Slice segment layer RBSP syntax 36 7.3.2.10 RBSP slice segment trailing bits syntax 36 7.3.2.11 RBSP trailing bits syntax 36 7.3.2.12 Byte alignment syntax 36 7.3.3 Profile, tier and level syntax 37 7.3.4 Scaling list data syntax 38 7.3.5 Supplemental enhancement information message syntax 38 7.3.6 Slice segment header syntax 39 7.3.6.1 General slice segment header syntax 39 7.3.6.2 Reference picture list modification syntax 41 7.3.6.3 Weighted prediction parameters syntax 42 7.3.7 Short-term reference picture set syntax 43 7.3.8 Slice segment data syntax 43 7.3.8.1 General slice segment data syntax 43 7.3.8.2 Coding tree unit syntax 44 7.3.8.3 Sample adaptive offset syntax 45 7.3.8.4 Coding quadtree syntax 46 7.3.8.5 Coding unit syntax 47 7.3.8.6 Prediction unit syntax 49 7.3.8.7 PCM sample syntax 49 7.3.8.8 Transform tree syntax 50 7.3.8.9 Motion vector difference syntax 50 7.3.8.10 Transform unit syntax 51 7.3.8.11 Residual coding syntax 52 7.4 Semantics 54 7.4.1 General 54 7.4.2 NAL unit semantics 54 7.4.2.1 General NAL unit semantics 54 7.4.2.2 NAL unit header semantics 55 7.4.2.3 Encapsulation of an SODB within an RBSP (informative) 58 7.4.2.4 Order of NAL units and association to coded pictures, access units, and coded video sequences 59 7.4.3 Raw byte sequence payloads, trailing bits, and byte alignment semantics 62 7.4.3.1 Video parameter set RBSP semantics 62 7.4.3.2 Sequence parameter set RBSP semantics 64 7.4.3.3 Picture parameter set RBSP semantics 69 7.4.3.4 Supplemental enhancement information RBSP semantics 72 7.4.3.5 Access unit delimiter RBSP semantics 72 7.4.3.6 End of sequence RBSP semantics 72 7.4.3.7 End of bitstream RBSP semantics 72 7.4.3.8 Filler data RBSP semantics 73 7.4.3.9 Slice segment layer RBSP semantics 73 7.4.3.10 RBSP slice segment trailing bits semantics 73 7.4.3.11 RBSP trailing bits semantics 73 7.4.3.12 Byte alignment semantics 73 7.4.4 Profile, tier and level semantics 73 7.4.5 Scaling list data semantics 75 7.4.6 Supplemental enhancement information message semantics 76 7.4.7 Slice segment header semantics 77 7.4.7.1 General slice segment header semantics 77 7.4.7.2 Reference picture list modification semantics 81 7.4.7.3 Weighted prediction parameters semantics 82 7.4.8 Short-term reference picture set semantics 83 7.4.9 Slice segment data semantics 85 7.4.9.1 General slice segment data semantics 85 7.4.9.2 Coding tree unit semantics 85 7.4.9.3 Sample adaptive offset semantics 85 7.4.9.4 Coding quadtree semantics 87 7.4.9.5 Coding unit semantics 87 7.4.9.6 Prediction unit semantics 89 7.4.9.7 PCM sample semantics 90 7.4.9.8 Transform tree semantics 90 7.4.9.9 Motion vector difference semantics 91 7.4.9.10 Transform unit semantics 91 7.4.9.11 Residual coding semantics 92 8 Decoding process 94 8.1 General decoding process 94 8.2 NAL unit decoding process 95 8.3 Slice decoding process 96 8.3.1 Decoding process for picture order count 96 8.3.2 Decoding process for reference picture set 96 8.3.3 Decoding process for generating unavailable reference pictures 100 8.3.3.1 General decoding process for generating unavailable reference pictures 100 8.3.3.2 Generation of one unavailable picture 101 8.3.4 Decoding process for reference picture lists construction 101 8.4 Decoding process for coding units coded in intra prediction mode 102 8.4.1 General decoding process for coding units coded in intra prediction mode 102 8.4.2 Derivation process for luma intra prediction mode 103 8.4.3 Derivation process for chroma intra prediction mode 105 8.4.4 Decoding process for intra blocks 105 8.4.4.1 General decoding process for intra blocks 105 8.4.4.2 Intra sample prediction 106 8.5 Decoding process for coding units coded in inter prediction mode 112 8.5.1 General decoding process for coding units coded in inter prediction mode 112 8.5.2 Inter prediction process 112 8.5.3 Decoding process for prediction units in inter prediction mode 115 8.5.3.1 General 115 8.5.3.2 Derivation process for motion vector components and reference indices 115 8.5.3.3 Decoding process for inter prediction samples 130 8.5.4 Decoding process for the residual signal of coding units coded in inter prediction mode 138 8.5.4.1 General 138 8.5.4.2 Decoding process for luma residual blocks 139 8.5.4.3 Decoding process for chroma residual blocks 140 8.6 Scaling, transformation and array construction process prior to deblocking filter process 141 8.6.1 Derivation process for quantization parameters 141 8.6.2 Scaling and transformation process 142 8.6.3 Scaling process for transform coefficients 143 8.6.4 Transformation process for scaled transform coefficients 144 8.6.4.1 General 144 8.6.4.2 Transformation process 144 8.6.5 Picture construction process prior to in-loop filter process 146 8.7 In-loop filter process 146 8.7.1 General 146 8.7.2 Deblocking filter process 147 8.7.2.1 General 147 8.7.2.2 Derivation process of transform block boundary 148 8.7.2.3 Derivation process of prediction block boundary 149 8.7.2.4 Derivation process of boundary filtering strength 150 8.7.2.5 Edge filtering process 151 8.7.3 Sample adaptive offset process 159 8.7.3.1 General 159 8.7.3.2 Coding tree block modification process 159 9 Parsing process 161 9.1 General 161 9.2 Parsing process for 0-th order Exp-Golomb codes 161 9.2.1 General 161 9.2.2 Mapping process for signed Exp-Golomb codes 163 9.3 CABAC parsing process for slice segment data 163 9.3.1 General 163 9.3.2 Initialization process 165 9.3.2.1 General 165 9.3.2.2 Initialization process for context variables 166 9.3.2.3 Storage process for context variables 174 9.3.2.4 Synchronization process for context variables 174 9.3.2.5 Initialization process for the arithmetic decoding engine 174 9.3.3 Binarization process 175 9.3.3.1 General 175 9.3.3.2 Truncated Rice (TR) binarization process 176 9.3.3.3 k-th order Exp-Golomb (EGk) binarization process 177 9.3.3.4 Fixed-length (FL) binarization process 178 9.3.3.5 Binarization process for part_mode 178 9.3.3.6 Binarization process for intra_chroma_pred_mode 178 9.3.3.7 Binarization process for inter_pred_idc 179 9.3.3.8 Binarization process for cu_qp_delta_abs 179 9.3.3.9 Binarization process for coeff_abs_level_remaining 179 9.3.4 Decoding process flow 180 9.3.4.1 General 180 9.3.4.2 Derivation process for ctxTable, ctxIdx and bypassFlag 180 9.3.4.3 Arithmetic decoding process 186 9.3.5 Arithmetic encoding process (informative) 192 9.3.5.1 General 192 9.3.5.2 Initialization process for the arithmetic encoding engine (informative) 192 9.3.5.3 Encoding process for a binary decision (informative) 193 9.3.5.4 Renormalization process in the arithmetic encoding engine (informative) 194 9.3.5.5 Bypass encoding process for binary decisions (informative) 195 9.3.5.6 Encoding process for a binary decision before termination (informative) 196 9.3.5.7 Byte stuffing process (informative) 197 10 Sub-bitstream extraction process 198 Annex A Profiles, tiers and levels 199 A.1 Overview of profiles, tiers and levels 199 A.2 Requirements on video decoder capability 199 A.3 Profiles 199 A.3.1 General 199 A.3.2 Main profile 199 A.3.3 Main 10 profile 200 A.3.4 Main Still Picture profile 200 A.4 Tiers and levels 201 A.4.1 General tier and level limits 201 A.4.2 Profile-specific level limits for the Main and Main 10 profiles 202 A.4.3 Effect of level limits on picture rate for the Main and Main 10 profiles (informative) 204 Annex B Byte stream format 208 B.1 General 208 B.2 Byte stream NAL unit syntax and semantics 208 B.2.1 Byte stream NAL unit syntax 208 B.2.2 Byte stream NAL unit semantics 208 B.3 Byte stream NAL unit decoding process 209 B.4 Decoder byte-alignment recovery (informative) 209 Annex C Hypothetical reference decoder 210 C.1 General 210 C.2 Operation of coded picture buffer (CPB) 214 C.2.1 General 214 C.2.2 Timing of decoding unit arrival 214 C.2.3 Timing of decoding unit removal and decoding of decoding unit 216 C.3 Operation of the decoded picture buffer (DPB) 218 C.3.1 General 218 C.3.2 Removal of pictures from the DPB 218 C.3.3 Picture output 219 C.3.4 Current decoded picture marking and storage 220 C.4 Bitstream conformance 220 C.5 Decoder conformance 221 C.5.1 General 221 C.5.2 Operation of the output order DPB 222 C.5.2.1 General 222 C.5.2.2 Output and removal of pictures from the DPB 222 C.5.2.3 Picture decoding, marking, additional bumping, and storage 223 C.5.2.4 "Bumping" process 223 Annex D Supplemental enhancement information 225 D.1 General 225 D.2 SEI payload syntax 226 D.2.1 General SEI message syntax 226 D.2.2 Buffering period SEI message syntax 228 D.2.3 Picture timing SEI message syntax 229 D.2.4 Pan-scan rectangle SEI message syntax 229 D.2.5 Filler payload SEI message syntax 230 D.2.6 User data registered by Rec. ITU-T T.35 SEI message syntax 230 D.2.7 User data unregistered SEI message syntax 230 D.2.8 Recovery point SEI message syntax 230 D.2.9 Scene information SEI message syntax 231 D.2.10 Picture snapshot SEI message syntax 231 D.2.11 Progressive refinement segment start SEI message syntax 231 D.2.12 Progressive refinement segment end SEI message syntax 231 D.2.13 Film grain characteristics SEI message syntax 232 D.2.14 Post-filter hint SEI message syntax 232 D.2.15 Tone mapping information SEI message syntax 233 D.2.16 Frame packing arrangement SEI message syntax 234 D.2.17 Display orientation SEI message syntax 234 D.2.18 Structure of pictures information SEI message syntax 235 D.2.19 Decoded picture hash SEI message syntax 235 D.2.20 Active parameter sets SEI message syntax 235 D.2.21 Decoding unit information SEI message syntax 236 D.2.22 Temporal sub-layer zero index SEI message syntax 236 D.2.23 Scalable nesting SEI message syntax 236 D.2.24 Region refresh information SEI message syntax 237 D.2.25 Reserved SEI message syntax 237 D.3 SEI payload semantics 237 D.3.1 General SEI payload semantics 237 D.3.2 Buffering period SEI message semantics 240 D.3.3 Picture timing SEI message semantics 242 D.3.4 Pan-scan rectangle SEI message semantics 247 D.3.5 Filler payload SEI message semantics 248 D.3.6 User data registered by Rec. ITU-T T.35 SEI message semantics 248 D.3.7 User data unregistered SEI message semantics 248 D.3.8 Recovery point SEI message semantics 248 D.3.9 Scene information SEI message semantics 249 D.3.10 Picture snapshot SEI message semantics 252 D.3.11 Progressive refinement segment start SEI message semantics 252 D.3.12 Progressive refinement segment end SEI message semantics 253 D.3.13 Film grain characteristics SEI message semantics 253 D.3.14 Post-filter hint SEI message semantics 258 D.3.15 Tone mapping information SEI message semantics 259 D.3.16 Frame packing arrangement SEI message semantics 263 D.3.17 Display orientation SEI message semantics 270 D.3.18 Structure of pictures information SEI message semantics 271 D.3.19 Decoded picture hash SEI message semantics 272 D.3.20 Active parameter sets SEI message semantics 273 D.3.21 Decoding unit information SEI message semantics 273 D.3.22 Temporal sub-layer zero index SEI message semantics 275 D.3.23 Scalable nesting SEI message semantics 275 D.3.24 Region refresh information SEI message semantics 276 D.3.25 Reserved SEI message semantics 277 Annex E Video usability information 278 E.1 General 278 E.1 VUI syntax 279 E.1.1 VUI parameters syntax 279 E.1.2 HRD parameters syntax 281 E.1.3 Sub-layer HRD parameters syntax 282 E.2 VUI semantics 282 E.2.1 VUI parameters semantics 282 E.2.2 HRD parameters semantics 294 E.2.3 Sub-layer HRD parameters semantics 296 Bibliography 298