音视频——帧内预测

H264编码(帧内预测)

在帧内预测模式中,预测块P是基于已编码重建块和当前块形成的。对亮度像素而言,P块用于4×4子块或者16×16宏块的相关操作。4×4亮度子块有9种可选预测模式,独立预测每一个4×4亮度子块,适用于带有大量细节的图像编码;16×16亮度块有4种预测模式,预测整个16×16亮度块,适用于平坦区域图像编码;色度块也有4种预测模式,类似于16×16亮度块预测模式。编码器通常选择使P块和编码块之间差异最小的预测模式。

4×4亮度预测模式

如图6.14所示,4×4亮度块的上方和左方像素A~M为已编码和重构像素,用作编解码器中的预测参考像素。a~p为待预测像素,利用A~M值和9种模式实现。其中模式2(DC预测)根据A~M中已编码像素预测,而其余模式只有在所需预测像素全部提供才能使用。图6.15箭头表明了每种模式预测方向。对模式3~8,预测像素由A~M加权平均而得。例如,模式4中,d=round(B/4+C/2+D/4)。

在这里插入图片描述
在这里插入图片描述

模式描 述
模式0(垂直)由A、B、C、D 垂直推出相应像素值
模式1(水平)由I、J、K、L 水平推出相应像素值
模式2(DC)由A~D 及I~L 平均值推出所有像素值
模式3(下左对角线)由45°方向像素内插得出相应像素值
模式4(下右对角线)由45°方向像素内插得出相应像素值
模式5(右垂直)由26.6°方向像素值内插得出相应像素值
模式6(下水平)由26.6°方向像素值内插得出相应像素值
模式7(左垂直)由26.6° 方向像素值内插得出相应像素值
模式8(上水平)由26.6° 方向像素值内插得出相应像素值

在这里插入图片描述

16×16预测模式

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Rt0ISof-1690336701808)(img/18.png)]

模式描 述
模式0(垂直)由上边像素推出相应像素值
模式1(水平)由左边像素推出相应像素值
模式2(DC)由上边和左边像素平均值推出相应像素值
模式3(平面)利用线形“plane”函数及左、上像素推出相应像素值,适用于亮度变化平缓区域

8×8色度块预测模式

每个帧内编码宏块的8×8色度成分由已编码左上方色度像素预测而得,两种色度成分常用同一种预测模式。

4种预测模式类似于帧内16×16预测的4种预测模式,只是模式编号不同。其中DC(模式0)、水平(模式1)、垂直(模式2)、平面(模式3)。

在这里插入图片描述

对于当前块C, 编解码器按照如下方法计算

probableprediction mode=​          min{prediction mode of A, predictionmodes of B}当A (或者 B)的预测模式不可用时,​         prediction mode of A= 2.

例如

A 和 B块的预测模式分别为 3 和1

   most probable mode for block C =1

编码器为每个4x4 块发送一个标记 flag,解码器按照如下方式 解码

Ifflag==1, prediction mode=most_probable_modeIfflag==0If rem_intra4×4_pred_mode< most_probable_mode​     prediction mode=rem_intra4×4_pred_modeelse​     prediction mode=rem_intra4×4_pred_mode+1

这样表示9中预测模式只需要8个值 (0 to 7)

在这里插入图片描述

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

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

相关文章

HTTPS简介

一、简介与原理 http协议是明文传输的&#xff0c;因此很容易被截取和解析&#xff0c;泄漏个人数据。https协议是在http和tcp之间多添加了一层&#xff0c;进行身份验证和数据加密。 HTTPS 原理 ① 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器 ②…

Gempy三维结构地质建模简明教程

Gempy 是一个开源 Python 库&#xff0c;用于生成完整的 3D 结构地质模型。 该库是一个完整的开发&#xff0c;用于从界面、断层和层方向创建地质模型&#xff0c;它还关联地质层的顺序以表示岩石侵入和断层顺序。 推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景。 地质建…

LLaMA2可商用|GPT-4变笨|【2023-0723】【第七期】

一、大咖观点&#xff1a; 傅盛&#xff1a;ChatGPT时代如何创业 - BOTAI - 博客园Google 已经被OpenAI 超越了吗&#xff1f;| AlphaGo 之父深度访谈《人民日报》&#xff1a;大模型的竞争&#xff0c;是国家科技战略的竞争WAIC 2023 | 张俊林&#xff1a;大语言模型带来的交…

Node.js:execSync执行一个shell命令

默认输出是Buffer对象 const { execSync } require(child_process)let out execSync("echo hi") console.log(out); // <Buffer 68 69 0a>需要转为字符串 const { execSync } require(child_process)let out execSync("echo hi") console.log(…

设计模式之状态模式

状态决定行为。由于状态在运行期间是可以被改变的。在VoteManager类中根据条件来创建不同的状态实现类&#xff0c;于是到最后就会调用不同的逻辑。 看起来同一个对象&#xff0c;在不同的运行时刻&#xff0c;行为是不一样的&#xff0c;就像是类被修改了一样&#xff01; 场…

labview 信号量实现互斥 避免竞争写

上一篇文章中描述了事件发生、集合点、通知器、信号量。 本文进一步举例描述信号量实现互斥&#xff0c;避免竞争写。 1.不用信号量的例子 图1-不用信号量的结果都不同&#xff0c;不为0 图2-不用信号量的例子&#xff0c;程序框图 2.用信号量的例子 图3-用信号量的例子&…

结构型设计模式之亨元模式【设计模式系列】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 设计模式系列 期待你的关注哦&#xff01;&#xff01;&#xff01; 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everythi…

Unity中使用CSV文件作为关卡数据

要在Unity中使用CSV文件作为关卡数据&#xff0c;并在通关后导入下一关的CSV文件数据&#xff0c;你可以按照以下步骤进行操作&#xff1a; 创建一个空的游戏对象&#xff0c;将其命名为"LevelManager"。 在"LevelManager"对象上创建一个C#脚本&#xff0…

MySQL 主从复制的认识 2023.07.23

一、理解MySQL主从复制原理 1、概念&#xff1a;主从复制是用来建立一个和 主数据库完全一样的数据库环境称为从数据库&#xff1b;主数据库一般是准实时的业务数据库。 2、作用&#xff1a;灾备、数据分布、负载平衡、读写分离、提高并发能力 3、原理图 4、具体步骤 (1) M…

Go 工具链详解(四): Golang环境变量设置和查看工具 go env

go env 作用 go env 是 Go 工具链中的一个命令&#xff0c;用于设置和查看当前 Golang 环境的相关信息&#xff0c;对于理解、编译和运行 Golang 程序非常有用。 go 提供的命令及 go 程序的编译运行都会使用到环境变量&#xff0c;如果未设置对应的环境变量&#xff0c;go 则…

Windows nvm 安装后webstrom vue项目编译报错,无法识别node

1 nvm安装流程 卸载原先nodejs用管理员权限打开exe安装nvmnvm文件夹和nodejs文件夹 都授权Authenticated Users 完全控制nvm list availablenvm install 16.20.1nvm use 16.20.1输入node和npm检查版本命令&#xff0c;正常显示确认系统变量和用户变量都有nvm 和nodejs 2 bug情…

Springboot @Async 多线程获取返回值

Springboot Async 多线程获取返回值 需求背景 最近需要用到多线程, 自己维护线程池很麻烦, 正好看到Springboot集成线程池的例子, 这里自己做了个尝试和总结, 记录一下, 也分享给需要的朋友; 不考虑事务的情况下, 这个多线程实现比较简单, 主要有以下几点: 在启动类加上Enab…

iTOP-RK3568开发板Docker 安装 Ubuntu 18.04

Docker 下载安装 Ubuntu18.04&#xff0c;输入以下命令&#xff1a; sudo apt update docker pull ubuntu:18.04 切换 Shell 到 Ubuntu 18.04&#xff0c;输入以下命令&#xff1a; docker container run -p 8000:3000 -it ubuntu:18.04 /bin/bash -p 参数&#xff1a;容器的…

Ftp和UDP的区别之如何加速文件传输

FTP&#xff08;文件传输协议&#xff09;是一种传输大文件的老方法&#xff0c;它的速度慢&#xff0c;而且容易受到网络环境的影响。在当今这个文件越来越大&#xff0c;项目交付时间越来越紧&#xff0c;工作分布在全球各地的时代&#xff0c;有没有办法让 FTP 加速呢&#…

大数据课程D2——hadoop的概述

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 了解hadoop的定义和特点&#xff1b; ⚪ 掌握hadoop的基础结构&#xff1b; ⚪ 掌握hadoop的常见命令&#xff1b; ⚪ 了解hadoop的执行流程&#xff1b; 一、简介 1…

Java: Hutool工具包

1.IO相关的工具类 IoUtil &#xff1a; 流操作工具类Fileutil &#xff1a; 文件读写和操作的工具类FileTypeUtil &#xff1a;文件类型判断工具类watchMonitor &#xff1a; 目录、文件监听classPathResource &#xff1a; 针对ClassPath中资源的访问封装FileReader &#xf…

adnroid 11. 0 Activity启动流程图解

从Launcher到ActivityTaskManager 从ActivityTaskManagerService 到 ApplicationThread 从ApplicationThread到onCreate

Java三大特性,设计的五大原则的理解

Java三大特性分别是封装&#xff0c;继承&#xff0c;多态。 下面谈谈我对这三个特性的理解&#xff1a; 1.封装 指的是将类的成员变量(属性)和成员方法(方法)隐藏起来&#xff0c;通过使用访问修饰符(如private、public、protected等)来限制外部对类的直接访问&#xff0c;从而…

全面解析 SOCKS5 代理和 HTTP 代理在网络安全与爬虫应用中的技术对比与应用指南

一、SOCKS5 代理和 HTTP 代理的基本原理 SOCKS5 代理&#xff1a;SOCKS5 是一种网络协议&#xff0c;可以在传输层代理 TCP 和 UDP 请求。它不解析请求内容&#xff0c;仅在客户端和代理服务器之间建立连接&#xff0c;并转发数据。SOCKS5 代理支持众多网络协议和端口类型&…

mac 安装 php 与 hyperf 框架依赖的扩展并启动 gptlink 项目

m系列 mac 安装 php 与 hyperf 框架依赖的扩展并启动 gptlink 项目 gptlink 项目是一个前后端一体化的 chatgpt 开源项目 gptlink 项目地址&#xff1a;https://github.com/gptlink/gptlink 安装 php 8.0 版本&#xff1a; brew install php8.0安装完成后提示如下&#xff…