HDMI20协议解析_Audio_Clock_Regeneration

HDMI20协议解析_Audio_Clock_Regeneration


1.版本说明

日期作者版本说明
20240918风释雪初始版本

2.概述

当通过HDMI传输音频信号时,Audio Clock Regeneration(ACR)是必须要传输的数据包之一;
HDMI传输过程中,音频采样时钟不再保留,通过TMDS时钟和音频采样时钟之间,建立关系,以此恢复音频时钟;
当音视频时钟同源时,由于具有固定的关系, 因此N/CTS会固定, 否则 N固定,CTS会小范围波动,以此平衡
音频和视频之间的波动;
强调:ACR数据包非常重要,传输异常,会导致部分专业显示器没有声音;


3.目标

FPGA 实现 HDMI2.0 TX/RX功能,生成或解析对应的Audio Clock Regeneration数据包,用于传输双通道立体声


4.协议解析

  • 协议分类

在这里插入图片描述

  • 协议格式

在这里插入图片描述

5.参数分析

  • 整个ACR包只涉及两个参数,N和CTS;且N和CTS官方都有具体的推荐参数,但是推荐参数只能用于两种情况;第一:音视频同源;第二:音视频异步,但是前级模块增加音频采样率转换模块匹配采样速率;当音视频异步时,
    HDMI协议也提供了一种标准做法,实时统计CTS的值,以一定的频率(大概每间隔CTS/次)传输;

  • 推荐参数如图:

  • 在这里插入图片描述

  • 音视频异步处理原理

  • 在这里插入图片描述

  • 核心公式:
    128*fs = F_tmdsfreq * N / CTS


6.推荐

  • 采用实时统计CTS取代固定CTS,但是N用官方参数;
  • CTS传输频率要符合官方要求,重点!!
Nominally, Audio Clock Regeneration Packets with newly generated CTS values will be
transmitted at a rate of 128*fs/N. On average, the Source shall transmit CTS values at this rate
precisely. The Source shall transmit each CTS data value as close as possible to the nominal
transmission time for that value with the exception that priority must be given to Audio Sample
packets to ensure that Audio Sample Packet delivery requirements are met.

7.软件实现

reg            [8                       -1 : 0] HB0                         = 8'h01;
reg            [8                       -1 : 0] HB1                         = 8'h00;
reg            [8                       -1 : 0] HB2                         = 8'h00;
reg            [8                       -1 : 0] PB0                         = 0;
reg            [8                       -1 : 0] PB1                         = 0;
reg            [8                       -1 : 0] PB2                         = 0;
reg            [8                       -1 : 0] PB3                         = 0;
reg            [8                       -1 : 0] PB4                         = 0;
reg            [8                       -1 : 0] PB5                         = 0;
reg            [8                       -1 : 0] PB6                         = 0;always @(posedge clk) beginPB0 <= 0;PB1 <= {4'b0000, acr_cts[19:16]};PB2 <= acr_cts[15:8];PB3 <= acr_cts[7:0];PB4 <= {4'b0000, acr_n[19:16]};PB5 <= acr_n[15:8];PB6 <= acr_n[7:0];
end

8.参考文档

  • EIA-CEA-861-D
  • HDMI 1.4(1.4b/2.0)

在这里插入图片描述


在这里插入图片描述

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

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

相关文章

CentOS7搭建Hadoop3集群教程

一、集群环境说明 1、用VMware安装3台Centos7虚拟机 2、虚拟机配置&#xff1a;2C&#xff0c;2G内存&#xff0c;50G存储 3、集群架构设计 从表格中&#xff0c;可以看出&#xff0c;Hadoop集群&#xff0c;主要有2个模块服务&#xff0c;一个是HDFS服务&#xff0c;一个是YAR…

经典sql题(七)查找直播间最大在线人数

使用 SQL 分析房间用户状态变化 本文将详细介绍如何使用 SQL 的窗口函数和聚合函数&#xff0c;分析用户在房间中的状态变化&#xff0c;目标是计算每个房间指定时间段内的最大用户状态。 示例数据 假设我们的数据表包含以下字段&#xff1a; room_iduser_idlogin_timelogo…

8.进销存系统(基于springboot的进销存系统)

目录 1.系统的受众说明 2.开发技术与环境配置 2.1 SpringBoot框架 2.2 Java语言简介 2.3 MySQL环境配置 2.4 idea介绍 2.5 mysql数据库介绍 2.6 B/S架构 3.系统分析与设计 3.1 可行性分析 3.1.1 技术可行性 3.1.2 操作可行性 3.1.3经济可行性 3.4.1 数据库…

第159天:安全开发-Python-协议库爆破FTPSSHRedisSMTPMYSQL等

目录 案例一: Python-文件传输爆破-ftplib 库操作 ftp 协议 ​案例二&#xff1a; Python-数据库爆破-redis 库操作redis 协议 案例三&#xff1a;Python-邮件爆破-smtplib 库操作 smtp 协议 案例四&#xff1a;Python-登录爆破-paramiko库操作ssh协议 案例五&#xff1a…

andriod studio 学习1

res —> layout: 放置布局文件 res —> drawable-xhdpi: 放置图标、图片文件 res —> values: 放置style、字符串、颜色等资源 LinearLayout: 线性布局 RelativeLayout&#xff1a;相对布局 布局相关设置:padding 、background TextView&#xff1a;展示文本 android…

Web 服务器介绍 | 通过 Tomcat 说明其作用

1. 什么是 Web 服务器&#xff1f; Web服务器是一种用于存储、处理和提供网页或Web应用程序的服务器。它通过HTTP&#xff08;超文本传输协议&#xff09;与客户端&#xff08;通常是浏览器&#xff09;进行通信&#xff0c;接收客户端的请求&#xff08;如网页请求&#xff0…

【RPA私教课:UIPath】RPA 赋能科技企业,登录时验证码自动截取

在某科技型企业里&#xff0c;专门设置了一个验证码接收系统。每当用户进行登录操作时&#xff0c;都必须从这个系统中抓取最新的登录验证码&#xff0c;以确保登录的安全性。 具体需求如下&#xff1a; 客户会预先在表格中妥善保存众多的账户和密码。当 RPA 机器人在业务系统…

Vue使用axios实现Ajax请求

1、什么是 axios 在实际开发过程中&#xff0c;浏览器通常需要和服务器端进行数据交互。而 Vue.js 并未提供与服务器端通信的接口。从 Vue.js 2.0 版本之后&#xff0c;官方推荐使用 axios 来实现 Ajax 请求。axios 是一个基于 promise 的 HTTP 客户端。 关于 promise 的详细介…

从零开始讲DDR(3)——DDRC与DDRPYH

一、DDR的使用 在之前的文章中我们介绍了DDR的基本概念&#xff0c;但是DDR内存的操作不仅仅是简单的数据读取和写入&#xff0c;它包括许多时序要求和信号调度。为了让DDR内存有效运作&#xff0c;系统需要在逻辑层和物理层之间进行大量的协作。我们拿出一张DDR的操作简化状态…

rfid超高频手持移动终端的性能特点

超高频手持移动终端的工作频率范围通常在860 MHz至960 MHz之间&#xff0c;具体频段根据不同的地区和国家有所不同&#xff0c;下面我们就一起来了解一下&#xff0c;超高频手持移动终端的性能特点。 超高频手持移动终端的性能特点 高效率与高速度&#xff1a;超高频手持移动…

付费计量应用过程(Payment Metering Application process)

The Payment Metering Application process is the combination of the business and support processes as the resultant interactions between the business and support functions, which thus describes the dynamic behavior of the system as a whole. 付费计量…

docker构建java镜像,运行镜像出现日志 no main manifest attribute, in /xxx.jar

背景 本文主要是一个随笔,记录一下出现"no main manifest attribute"的解决办法 问题原因 主要是近期在构建一个镜像,在镜像构建成功后,运行一直提示"no main manifest attribute",当时还在想,是不是Dockerfile写错了,后来仔细检查了一下,发现是…

C++ std::any升级为SafeAny

std::any测试 #include <any>class A { public:int8_t a; };int main(int argc, char* argv[]) {std::any num((int8_t)42);auto a std::any_cast<A>(num);return 0; }异常&#xff1a; 0x00007FFA9385CD29 处(位于 test.exe 中)有未经处理的异常: Microsoft C 异…

Python中常用字符串方法总结

# isalnum()方法检查字符串是否只包含字母和数字。 is alphanumeric的缩写 s "Hello123" print(s.isalnum()) # 输出: True # isalpha()方法检查字符串是否只包含字母。 s "Hello" print(s.isalpha()) # 输出: True# isdigit()方法检查字符串是否只包…

Unity中Rigidbody 刚体组件和Rigidbody类是什么?

Rigidbody 刚体组件 Rigidbody 是 Unity 中的一个组件&#xff0c;它可以让你的游戏对象像真实世界中的物体一样移动和碰撞。想象一下&#xff0c;你有一个小球&#xff0c;你希望它像真实世界中的球一样滚动、弹跳和碰撞&#xff0c;那么你就可以给这个小球添加一个 Rigidbod…

国产SSL证书品牌怎么选择?

有人在歪曲大型央国企“信创化”与数字化转型建设思路&#xff0c;为了自身的利益开始造谣一些虚假传播信息国外SSL证书不安全问题&#xff0c;然而国外的SSL证书每个上网用户都在使用&#xff0c;然而发布虚假广告的一些人实际上是换了个马甲贴个名字就叫国产SSL证书了&#x…

【农信网-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

初探IT世界:从基础到未来

初探IT世界&#xff1a;从基础到未来 1. 引言 随着科技的不断发展&#xff0c;IT&#xff08;信息技术&#xff09;已经成为全球经济的支柱之一。从软件开发、网络安全到数据分析和人工智能&#xff0c;IT 领域为我们的日常生活提供了许多不可或缺的技术服务。无论你是初学者…

Django框架全面指南

Django是一个高级的Python Web框架,它鼓励快速开发和清晰、实用的设计。本指南将全面介绍Django的核心概念和使用方法。 1. Django简介 Django遵循"batteries included"哲学,提供了Web开发所需的几乎所有功能。它的主要特点包括: ORM(对象关系映射)URL路由模板…

【QT】重载信号Connect链接使用方式

有一些Widget有重载的信号&#xff0c;比如QComboBox&#xff1a; void currentIndexChanged(int index) void currentTextChanged(const QString &text)在连接信号槽的时候&#xff0c;需要做一些处理&#xff0c;要表明具体连接的是哪个类型的信号&#xff0c;否则会报错…