当前位置: 首页 > news >正文

音视频——帧内预测

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.lryc.cn/news/101339.html

相关文章:

  • 2.uni-app项目文件
  • JavaScript学习 -- 对称加密算法DES
  • 【Python数据分析】Python常用内置函数(二)
  • Api接口出现Required request body is missing的解决方法
  • 【Kaggle】Kaggle数据集如何使用命令语句下载?
  • android pdf框架,编译mupdf
  • 线性表详细讲解
  • 代码随想录算法训练营day45
  • 机器学习深度学习——softmax回归(上)
  • 基于express调用chatgpt文字流输出和有道智云语音合成
  • (学习笔记-内存管理)内存分段、分页、管理与布局
  • PHP使用Redis实战实录1:宝塔环境搭建、6379端口配置、Redis服务启动失败解决方案
  • 【数据结构】这堆是什么
  • FFmpeg 音视频开发工具
  • Go 语言 select 都能做什么?
  • Hive之窗口函数lag()/lead()
  • Vite+Typescript+Vue3学习笔记
  • 二、SQL-6.DCL-2).权限控制
  • [OpenStack] GPU透传
  • 无涯教程-jQuery - Progressbar组件函数
  • [SQL挖掘机] - 窗口函数 - rank
  • VBAC多层防火墙技术的研究-状态检测
  • PHP8的数据类型-PHP8知识详解
  • 明晚直播:可重构计算芯片的AI创新应用分享!
  • flask 点赞系统
  • 关于Java的多线程实现
  • 如何判断某个视频是深度伪造的?
  • ESP32(MicroPython) 四足机器人(一)
  • 力扣刷题记录---利用python实现链表的基本操作
  • OpenAI重磅官宣ChatGPT安卓版本周发布,现已开启下载预约,附详细预约教程