HEVC编码流程解读

2024-04-07 07:18
文章标签 流程 解读 编码 hevc

本文主要是介绍HEVC编码流程解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       HEVC的视频编码层采用从H.261标准之后一直使用的混合编码方法(帧内、帧间预测和2-D变换编码)。图1所示为HEVC的混合视频编码器方框图。(理解有误地方,还请多加指教,O(∩_∩)O谢谢)


       具体的编码流程如下所述。每帧图像分割成多个以块为单位的区域,分割信息传输到解码端。一个视频序列的第一帧(或者是一个视频序列的每个空白随机接入点(CRA, clean random access point)的第一帧)只采用帧内预测(即只运用同一帧图像相邻区域间的空域信息进行预测,但该帧并不与其他帧相互独立)。视频序列的其他帧或者两个CRA之间的其他帧,大多采用时域帧间预测方式预测进行块预测。帧间预测的编码过程由运动数据组成,这些运动数据包含用于每个块采样点预测的参考帧和运动矢量(MV, motion vector)。编码器和解码器运用作为边信息传输的MV和模式选择数据组成的运动补偿(MC, motion compensation)来生成同一的帧间预测信号。

帧内或帧间预测的残差信号(即原始块和它的预测块的不同信息),通过线性空域变换传输。变换系数经过扩展、量化、熵编码,和预测信息一起传输。

       编码器复制解码器的处理环路(图1所示中的灰色部分),这两个处理过程为后来数据产生相同的预测。因此,量化的变换系数通过反扩展、反变换来复制解码的近似残差信号。这个残差信号加上预测信息后经过一个或两个环路滤波器来平滑滤除由于基于块处理和量化产生的块效应等影响。这个最终的图像表征(即解码端输出图像的复制品)存储在已解码图像的缓存器中,以便用于后续图像的预测。一般而言,图像的编码和解码处理过程与它们从源头(即视频源)到来的顺序不同。因此,需要区别解码器的解码顺序(即码流顺序)和输出顺序(即显示顺序)。

        一般而言,人们希望HEVC处理的视频是逐行扫描图像(可能是因为视频输入的就是那种格式,或者为了消除隔行扫描优于编码)。HEVC的设计编码特征中没有明确表示支持隔行扫描的使用,因为隔行扫描已经不再用于显示,并且使用这种隔行扫描的情况越来越少。然而,HEVC引入的一个数据元语法允许编码器通过编码每个场(即每个视频帧的偶数场和奇数场)来处理隔行扫描视频。这种方法编码隔行扫描视频不仅有效,而且没有给解码器额外处理这种视频的负担。(转载请注明出处,谢谢)

这篇关于HEVC编码流程解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/881966

相关文章

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

SpringCloud负载均衡spring-cloud-starter-loadbalancer解读

《SpringCloud负载均衡spring-cloud-starter-loadbalancer解读》:本文主要介绍SpringCloud负载均衡spring-cloud-starter-loa... 目录简述主要特点使用负载均衡算法1. 轮询负载均衡策略(Round Robin)2. 随机负载均衡策略(

解读spring.factories文件配置详情

《解读spring.factories文件配置详情》:本文主要介绍解读spring.factories文件配置详情,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用场景作用内部原理机制SPI机制Spring Factories 实现原理用法及配置spring.f

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

Linux中的进程间通信之匿名管道解读

《Linux中的进程间通信之匿名管道解读》:本文主要介绍Linux中的进程间通信之匿名管道解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基本概念二、管道1、温故知新2、实现方式3、匿名管道(一)管道中的四种情况(二)管道的特性总结一、基本概念我们知道多

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

VSCode中C/C++编码乱码问题的两种解决方法

《VSCode中C/C++编码乱码问题的两种解决方法》在中国地区,Windows系统中的cmd和PowerShell默认编码是GBK,但VSCode默认使用UTF-8编码,这种编码不一致会导致在VSC... 目录问题方法一:通过 Code Runner 插件调整编码配置步骤方法二:在 PowerShell

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla