H.264编解码流程

编码:

蓝色的前向编码流程:
以宏块为输入单位介绍优于以帧为单位介绍。

Fn为即将进行编码的宏块,由原始图像中16*16像素构成。每个宏块要么采用帧内模式编码,要么采用帧间模式编码。不管是哪种编码模式,预测宏块P都是基于重建帧生成的。在帧内模式中,预测宏块P是由当前帧经过编码、解码和重建生成的(注意,采用未经过滤波的样本uF`n来生成P)。在帧间模式中,预测宏块是通过一个或者多个参考帧经过运动补偿预测生成的。在图中,参考帧就是之前编码得到的帧F`n-1;不过,并不只是一个参考帧,每个预测宏块P都是由一个或者两个,之前或者之后的,已经经过编码和重建所生成的帧中的对应宏块所生成的。

当前宏块减去预测宏块P生成残差宏块Dn。残差宏块Dn经过变换、量化后生成X,由一系列变换量化系数组成。然后,对这些系数进行重排序和熵编码。熵编码生成的系数,附上解码宏块所需要的附加信息生成压缩比特流,(附加信息有宏块预测模式,量化步长,描述如何对宏块进行运动补偿的运动矢量信息,等等)。压缩比特流被传到网络抽象层(NAL)以发射或者储存。

粉红色的重建流程:
为了生成重建帧以编码以后的宏块,将量化后的宏块残差系数X进行解码。系数X经过反量化,反变换生成残差宏块Dn`。此时的残差宏块与原先的残差宏块Dn并不相同,原因是在量化过程中引入了失真。所以,Dn`是变形了的Dn。

预测宏块P与Dn`相加生成重建宏块uF`n(原宏块的变形了的宏块)。为了减小块效应失真,引入了专门的滤波器。滤波之后的宏块就是重建宏块F`n,一系列的重建宏块组成了参考帧。(实际上,这里的参考帧,与解码端生成的最终图像完全一致)

解码:
从NAL中,解码器取得压缩比特流。数据元素经过熵解码和重排序生成一系列量化后的系数X。经过反量化和反变换生成Dn`(与编码端的Dn`一致)。使用从比特流中解码出来的头信息,解码器生成预测宏块P,与先前在编码器中生成的预测宏块P一致。P与Dn`相加生成uF`n,然后经过滤波,生成解码宏块F`n。

从两幅图表和上面的讨论可以发现:编码器的重建流程的目的是为了确保编码端和解码端使用一致的参考帧来生成预测宏块P。如果参考帧不一致,那么编码端和解码端的预测宏块P就不一致,导致在编码端和解码端之间生成渐增的误差或者“漂移”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

远程管理服务器的具体操作方法

远程是管理服务器最常见的一种方式,租用服务器也好,把服务器托管给服务商也好,肯定不会经常去机房办公,有什么问题的话大家都是选择远程服务器。其实远程服务器就跟我们远程电脑是一样的,具体需要怎么操作可能有的人还…

JavaWeb基础—dbutils的简单入门

简明入门教程,参考:https://www.cnblogs.com/CQY1183344265/p/5854418.html 进行此章节之前,介绍一个JdbcUtils的再次的简单封装 (例如后面需要构造QueryRunner时得到数据源等的简便的操作) package cn.itcast.jdbcuti…

macos安装vscode_VS Code 代码编辑器入门指南:核心组件与概念

作者:思考问题的熊写在前面如果当电脑只能装一个软件还需要尽量不影响日常学习工作时,不知道你的选择会是什么。我把这个看似「荒诞」的问题理解为「All-in-One」的升级版拷问。这个问题陪伴了我很久,每用一个软件我都会想想它对我究竟有多不…

环路滤波一些概念

熵编码需要编码的数据如下: 熵编码需要编码的数据如下:

【深度学习】TensorFlow之卷积神经网络

卷积神经网络的概念 在多层感知器(Multilayer Perceptrons,简称MLP)中,每一层的神经元都连接到下一层的所有神经元。一般称这种类型的层为完全连接。 多层感知器示例 反向传播 几个人站成一排第一个人看一幅画(输入数…

golang 的交叉编译

为什么80%的码农都做不了架构师?>>> Go是一门编译型语言,所以在不同平台上,需要编译生成不同格式的二进制包。 由于Go 1.5对跨平台编译有了一些改进,包括统一了编译器、链接器等。 编译时候只需要指定两个参数&#x…

【深度学习】Cifar-10-探究不同的改进策略对分类准确率提高

cifar10数据集上进行图片分类,基于tensorflow框架, 旨在探究不同的改进策略对分类准确率的影响,如何一步步得提高准确率 一、问题描述 当我们在处理图像识别或者图像分类或者其他机器学习任务的时候,我们总是迷茫于做出哪些改进…

Acer 4750 安装黑苹果_黑苹果 MacOS 10.15 Catalina安装教程

一、准备工作一个8G以上的U盘(安装 10.15 Catalina 必须要16G及以上的U盘 );Mac OS镜像、TransMac(刻录工具)、DiskGenius(分区工具)、EasyUEFI(引导工区)、EFI驱动文件。安装工具获取方式:关注公众号【远景论坛】,回复:黑苹果二、…

帧内16*16模式的宏块数据传输顺序

如果宏块以16*16帧内模式编码,那么块-1首先被传输,携带的信息是每个4*4亮度块的DC系数。然后,亮度残差块0-15被传输(此时,16*16帧内宏块的DC系数为零)。对于亮度分量Cb和Cr,16和17块携带DC系数的…

pcie1 4 速度_太阳系行星们谁转得最快?八大行星自转速度排行榜,地球排第五...

不知道大家有没有玩儿过陀螺呢?玩儿陀螺的技术如果很好的话,它可以在地上飞快地旋转并且能够旋转很长的时间。有趣的是,宇宙中的很多星球就像陀螺一样绕着一个中心轴旋转着。这就是星球的自转。在太阳系中有八颗大行星,它们都在自…

分布式资本沈波:未来区块链杀手级应用将出现在“+区块链”

雷锋网5月22日报道,日前“区块链技术和应用峰会”在杭州国际博览中心举行。会上,分布式资本创始管理人沈波作了《区块链的投资现状与发展趋势》演讲。 沈波表示,由于区块链的共识机制和无法篡改两大特点,它在各行各业皆有应用潜力…

帧间预测小记

帧间预测后,在比特流中会有相应的信息:残差信息,运动矢量信息,所选的模式。 宏块的色度分量分辨率是亮度分辨率的一半(Cr和Cb),水平和垂直均一半。色度块采用和亮度块一致的分割模式&#xff0…

ImageJ Nikon_科研论文作图之ImageJ

各位读者朋友们又见面了,今天给大家介绍一款图片处理软件——ImageJ,这是一款免费的科学图像分析工具,广泛应用于生物学研究领域。ImageJ软件能够对图像进行缩放、旋转、扭曲、模糊等处理,也可计算选定区域内分析对象的一系列几何…

【urllib】url编码问题简述

对url编解码总结 需要用到urllib库中的parse模块 import urllib.parse # Python3 url编码 print(urllib.parse.quote("天天")) # Python3 url解码 print(urllib.parse.unquote("%E5%A4%E5%A4%")) urlparse() # urllib.parse.urlparse(urlstring,scheme,…

独家| ChinaLedger白硕:区块链中的隐私保护

隐私问题一直是区块链应用落地的障碍问题之一,如何既能满足监管,又能不侵害数据隐私,是行业都在攻克的问题。那么,到底隐私问题为何难?有什么解决思路,以及实践创新呢?零知识证明、同态加密等技…

手机处理器排行榜2019_手机处理器AI性能排行榜出炉,高通骁龙第一,华为排在第十名...

↑↑↑击上方"蓝字"关注,每天推送最新科技新闻安兔兔在近日公布了今年四月份Android手机处理器AI性能排行榜,榜单显示高通骁龙865处理器的AI性能在Android阵营中排在第一名——该处理器的AI性能得分接近46万分,今年的小米10、三星G…

芯片支持的且会被用到的H.264特性 预测编码基本原理

视频压缩: 1.H.264基本档次和主要档次;2.CAVLC熵编码,即基于上下文的自适应变长编码;(不支持CABAC,即基于上下文的自适应算术编码)分辨率:仅用到1080p60,即分辨率为1920*…

MongoDB 数据库 【总结笔记】

一、MongoDB 概念解析 什么是MongoDB? ​ 1、MongoDB是有C语言编写的,是一个基于分布式文件存储的开源数据库系统,在高负载的情况下,添加更多节点,可以保证服务器的性能 ​ 2、MongoDB为web应用提供了高性能的数据存储…

PHP 函数截图 哈哈哈

转载于:https://www.cnblogs.com/bootoo/p/6714676.html

2016年光伏电站交易和融资的十大猜想

1领跑者计划备受关注,竞价上网或从试点开始 领跑者计划规模大,上网条件好,又有政府背书,虽说价格也不便宜,但省去很多隐性成本,对于致力于规模化发展的大型企业来说仍是首要选择。同时,从能源管…