CN114816355A - 基于端口结构体的软件架构系统 - Google Patents
基于端口结构体的软件架构系统 Download PDFInfo
- Publication number
- CN114816355A CN114816355A CN202210720495.XA CN202210720495A CN114816355A CN 114816355 A CN114816355 A CN 114816355A CN 202210720495 A CN202210720495 A CN 202210720495A CN 114816355 A CN114816355 A CN 114816355A
- Authority
- CN
- China
- Prior art keywords
- port
- avport
- pointer
- audio
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 claims description 14
- 239000004744 fabric Substances 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 3
- 230000006835 compression Effects 0.000 claims description 2
- 238000007906 compression Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 8
- 239000010410 layer Substances 0.000 description 16
- 239000011159 matrix material Substances 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000012792 core layer Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- H04N21/43632—Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wired protocol, e.g. IEEE 1394
- H04N21/43635—HDMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/765—Interface circuits between an apparatus for recording and another apparatus
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供一种基于端口结构体的软件架构系统,所述软件架构系统通过AvPort结构体来实现对音视频内容的描述;在AvPort结构体的第一层次中,device指针变量用于将AvPort指向该端口所隶属的芯片;PortType用于说明当前AvPort端口的类型;index信息用于声明当前AvPort端口在所隶属的芯片中的位置,通过index的区别,将隶属同一颗芯片中的多个同类型端口进行排列和区分,实现端口的唯一性;HardwareCore信息用于声明当前端口所需要占用的芯片中共享的时钟/控制逻辑资源;NextAvPort指针用于指向下一个AvPort。本发明可以实现一个可定制化、具备优异拓展性、对开发者接口统一的音视频处理架构。
Description
技术领域
本发明涉及音视频传输技术领域,尤其涉及一种基于端口结构体的软件架构系统。
背景技术
在传统的音视频传输领域中,尤其是HDMI/ DisplayPort(简称DP)/ MIPI等接口的音视频传输领域中,针对多样化的音视频协议的传输控制逻辑软件编写,基本都使用了控制逻辑软件与业务逻辑软件混合在一起的编写模式。这对于大规模的多输入多输出端口的音视频矩阵控制软件而言,造成了软件资源浪费和调试难度增加。某些大规模的音视频矩阵开发,因为控制逻辑与业务逻辑的混淆,甚至导致了在数年调试之后,产品因软件调试难度过大而最终被放弃。随着新的更高速度的音视频协议不断被推出,音视频控制软件的编写变得越来越复杂,继续沿用原有的软件编写模式,极大的制约了开发效率。
当前的音视频媒介传输领域,众多的音视频传输芯片以及处理芯片的提供商,都会提供一套基于厂商自己芯片的配套推广软件。而基于推广芯片的目的,这些软件都是针对单颗芯片进行设计的。在真正的商业应用中,往往会有同一套软件控制多家厂商的多颗芯片的需求。但是,由于缺乏一个统一的控制逻辑平台,缺乏能将各家芯片集成的统一接口,目前来看,集成不同芯片厂商的软件到同一嵌入式系统中,是非常棘手的问题。
发明内容
本发明提供的基于端口结构体的软件架构系统,能够实现一个可订制化、具备优异拓展性、对开发者接口统一的音视频处理架构。
第一方面,本发明提供一种基于端口结构体的软件架构系统,所述软件架构系统通过AvPort结构体来实现对音视频内容的描述;
在AvPort结构体的第一层次中,device指针变量用于将AvPort指向该端口所隶属的芯片;PortType用于说明当前AvPort端口的类型;index信息用于声明当前AvPort端口在所隶属的芯片中的位置,通过index的区别,将隶属同一颗芯片中的多个同类型端口进行排列和区分,实现端口的唯一性; HardwareCore信息用于声明当前端口所需要占用的芯片中共享的时钟/控制逻辑资源;NextAvPort指针用于指向下一个AvPort。
可选地,所述AvPort结构体中还包含第二层结构体AvContent,该第二层结构体AvContent由一系列指针组成。
可选地,在所述第二层结构体AvContent中,RxVars指针用于指向包含音视频协议接收相关的所有信息,TxVars指针用于指向包含音视频协议发送相关的所有信息,HdcpRx指针用于指向包含HDCP等在内的加密协议接收的所有信息,HdcpTx指针用于指向包含HDCP等在内的加密协议发送的所有信息,AvVideo指针用于指向包含视频Video所有相关的信息,AvAudio指针用于指向包含音频Audio所有相关的信息,AvCompress指针用于指向包含压缩所有相关的信息,AvScaler指针用于指向包含缩放IP模块所有相关的信息,AvColor指针用于指向包含颜色变换IP模块所有相关的信息,AvCEC指针用于指向包含CEC协议的所有信息,HdcpSource/HdcpNextSinkPort用于以树形拓扑形式将所有和加密相关的AvPort组织起来,RouteVideoToPort/RouteVideoFromPort/RouteVideoNextSameLevelPort用于以树形拓扑形式将所有和视频相关的AvPort组织起来,RouteAudioToPort/RouteAudioFromPort/RouteAudioNextSameLevelPort用于以树形拓扑形式将所有和音频相关的AvPort组织起来。
可选地,基于不同的芯片类型,所述AvPort结构体中的PortType指示当前AvPort端口的类型为以下中的任意一个:HDMI输出口、HDMI输入口、DVI输出口、DVI输入口、DisplayPort输出口、DisplayPort输入口、Scaler的IP模块、Color的IP模块、MIPI输入模块、MIPI输出模块、OSD模块。
可选地,所述软件架构系统中的所有AvPort通过所述AvPort结构体中的NextAvPort指针连接为环形拓扑结构。
可选地,采用FromPort/ToPort/NextSameLevelPort 3个指针,将复杂多变的整体系统连接架构分散到各节点的AvPort来分别控制,达到任意添加删除端口,每个端口都可以灵活切换控制的效果。
本发明提供的基于端口结构体的软件架构系统,因为端口结构体的定义,是针对了通用的音视频协议,从而摒弃了不同协议的定义巨大差异所带来的应用层控制问题。对于芯片应用层的程序,不同的厂家芯片或者同一厂家不同代的芯片控制方式不同,但为了产品在市场上的兼容性,都会遵循端口结构体定义所包含的协议定义细节控制,因此端口结构体就有效的实现重载,提供了很好的扩展性和可复用性。
附图说明
图1为本发明实施例提供的基于端口结构体的软件架构系统的结构示意图;
图2为本发明实施例提供的端口结构体模型的轮询流程示意图;
图3为本发明实施例提供的端口结构体的音视频路由切换的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种基于端口结构体的软件架构系统,如图1所示,所述软件架构系统通过基于ANSI-C的命名为AvPort的结构体来实现对音视频内容的描述。在AvPort的第一层次中,结构体中的device指针变量用于将AvPort指向该端口所隶属的芯片。结构体中的PortType用于说明当前AvPort端口的类型,基于不同的芯片类型,可能是HDMI输出口/HDMI输入口/DVI输出口/DVI输入口/DisplayPort输出口/DisplayPort输入口/Scaler的IP模块/Color的IP模块/MIPI输入模块/MIPI输出模块/OSD模块等。基于结构体的良好的拓展性,未来新的音视频接口也仅需要将新的端口类型添加到PortType的列表中,就可以使用本申请中的软件架构来实现功能支持。结构体中的index用于声明当前AvPort端口在所隶属的芯片中的位置,通过index的区别,可以将隶属同一颗芯片中的多个同类型端口进行排列和区分,实现端口的唯一性。结构体中的HardwareCore用于声明当前端口所需要占用的芯片中共享的时钟/控制逻辑等资源。结构体中的NextAvPort指针用于指向下一个AvPort。
其中,AvPort结构体第一层次中包含命名为AvContent的第二层结构体。该AvContent结构体是由一系列的指针组成的,其中RxVars指针用于指向包含音视频协议接收相关的所有信息,其中TxVars指针用于指向包含音视频协议发送相关的所有信息,其中HdcpRx指针用于指向包含HDCP等在内的加密协议接收的所有信息,其中HdcpTx指针用于指向包含HDCP等在内的加密协议发送的所有信息,其中AvVideo指针用于指向包含视频Video所有相关的信息,其中AvAudio指针用于指向包含音频Audio所有相关的信息,其中AvCompress指针用于指向包含压缩所有相关的信息,其中AvScaler指针用于指向包含缩放IP模块所有相关的信息,其中AvColor指针用于指向包含颜色变换IP模块所有相关的信息,其中AvCec指针用于指向包含CEC协议的所有信息。该AvContent结构体中的HdcpSource/HdcpNextSinkPort用于以树形拓扑形式将所有和加密相关的AvPort组织起来。该AvContent结构体中的RouteVideoToPort/RouteVideoFromPort/RouteVideoNextSameLevelPort用于以树形拓扑形式将所有和视频相关的AvPort组织起来。该AvContent结构体中的RouteAudioToPort/RouteAudioFromPort/RouteAudioNextSameLevelPort用于以树形拓扑形式将所有和音频相关的AvPort组织起来。
进一步地,AvPort结构体中的AvContent的第二层结构体中AvVideo/AvAudio等指针所指向的内容,如图1所示,基于所包含内容的复杂度,还可以有第三层/第四层结构体来精细的区分音视频的具体内容。
如图2所示,使用AvPort结构体中的NextAvPort的指针,可以将所有加入系统中的AvPort以环形拓扑连接。在操作系统以轮询方式统筹调度音视频矩阵的端口处理时,无论系统内的芯片和端口有多少,都仅需要一个线程的开销。平台内所有芯片中需要被控制的AvPort端口,都将依靠NextAvPort的指针穿成环形拓扑来实现逐一的控制。
如图3所示,对于视频/音频/加密的处理,借助于音视频传输必然特有的树形拓扑,本发明使用了FromPort/ToPort/NextSameLevelPort的3个指针,将复杂多变的整体系统连接架构分散到各节点的AvPort来分别控制,达到任意添加删除端口,每个端口都可以灵活切换控制的效果。音视频传输的分配、切换和处理,从系统设计的角度看,都采用了不同功能类型的端口互相连接的方式来实现功能处理需求。本发明将不同类型的端口互联拆分为3个指针的指向关系,FromPort永远指向唯一的为本端口提供音视频数据的上一级端口,ToPort指向第一个本端口输出音视频的下一级端口,NextSameLevelPort指向接收同一个FromPort的音视频数据的同级下一个端口。任意的端口在需要完成切换功能的时候,只需要修正FromPort对应的端口,就可以完成音视频数据源的切换;任意的端口在需要修改分配功能的时候,例如增加一个新的分配输出端口,只需要将新增端口赋值给拓扑中同级最后一个端口的NextSameLevelPort,就完成了分配矩阵的修正。该结构的3个指针保证了音视频功能切换对系统框架的精简调整,和灵活处理,极大的减轻了系统应用者的开发和维护难度。
本发明提供了一种抽象的架构,将纷繁复杂的音视频传输接口和处理器的相关内容都抽象为统一的以结构体为形式表现的端口架构。调用特定的端口连接函数,将端口结构体成员中的特定指针变量赋值为其他端口结构体地址,实现不同的端口互相指向连接,来完成音视频矩阵系统中的路由切换功能需求。
基于音视频传输系统的一个源传播给多个终端的结构特点,使用端口结构体成员中的三个指针,分别标明每个端口的上一级端口,下一级端口和同级端口。对于复杂的音视频系统,通过各端口独立声明上下和同级连接关系,本发明的端口结构体可以无需任何改动的实现无限级的分配与连接。
端口结构体中的变量成员,可以将端口所属芯片的与音视频传输协议相关的底层寄存器内容抽象,并且作为变量的成员进行回读。
端口结构体中的与底层寄存器控制相关的变量成员,可以应用层程序中的代码进行修改。因此应用层程序代码无需分析和控制复杂的芯片底层寄存器,只需要通过对统一的端口结构体中的内容进行配置,就可以间接对不同底层芯片的寄存器进行控制。
本发明实施例提供的基于端口结构体架构的软件架构系统,极大地简化了音视频系统的编程工作,通过参数化配置来高效的自动生成框架代码。以16×16的视频矩阵软件开发为例,原来基于event(事件)驱动的开发程序,往往需要1人/年左右的时间,而采用该基于有限状态机的软件架构系统之后,仅仅需要2人/周的时间,而且可以快速进行重构,配置成32×32或其它的视频矩阵,快速生成新的软件程序。此外,本软件架构系统还通过抽象提取音视频系统的运行特性,采用分层插件的方式,将软件自顶而下分为用户层API(Application Program Interface,应用程序接口)、核心层API及芯片业务层API,从而只需修改底层的芯片业务层API调用的较为有限的程序,从而解除对不同芯片厂商应用程序的依赖性,就可以适配不同的基本功能类似不同厂家的芯片,极大地减少了软件开发人员的工作量,也可以有效降低系统商采购芯片的成本。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (6)
1.一种基于端口结构体的软件架构系统,其特征在于,所述软件架构系统通过AvPort结构体来实现对音视频内容的描述;
在AvPort结构体的第一层次中,device指针变量用于将AvPort指向该端口所隶属的芯片;PortType用于说明当前AvPort端口的类型;index信息用于声明当前AvPort端口在所隶属的芯片中的位置,通过index的区别,将隶属同一颗芯片中的多个同类型端口进行排列和区分,实现端口的唯一性; HardwareCore信息用于声明当前端口所需要占用的芯片中共享的时钟/控制逻辑资源;NextAvPort指针用于指向下一个AvPort。
2.根据权利要求1所述的基于端口结构体的软件架构系统,其特征在于,所述AvPort结构体中还包含第二层结构体AvContent,该第二层结构体AvContent由一系列指针组成。
3.根据权利要求2所述的基于端口结构体的软件架构系统,其特征在于,在所述第二层结构体AvContent中,RxVars指针用于指向包含音视频协议接收相关的所有信息,TxVars指针用于指向包含音视频协议发送相关的所有信息,HdcpRx指针用于指向包含HDCP等在内的加密协议接收的所有信息,HdcpTx指针用于指向包含HDCP等在内的加密协议发送的所有信息,AvVideo指针用于指向包含视频Video所有相关的信息,AvAudio指针用于指向包含音频Audio所有相关的信息,AvCompress指针用于指向包含压缩所有相关的信息,AvScaler指针用于指向包含缩放IP模块所有相关的信息,AvColor指针用于指向包含颜色变换IP模块所有相关的信息,AvCEC指针用于指向包含CEC协议的所有信息,HdcpSource/HdcpNextSinkPort用于以树形拓扑形式将所有和加密相关的AvPort组织起来,RouteVideoToPort/RouteVideoFromPort/RouteVideoNextSameLevelPort用于以树形拓扑形式将所有和视频相关的AvPort组织起来,RouteAudioToPort/RouteAudioFromPort/RouteAudioNextSameLevelPort用于以树形拓扑形式将所有和音频相关的AvPort组织起来。
4.根据权利要求1至3中任一项所述的基于端口结构体的软件架构系统,其特征在于,基于不同的芯片类型,所述AvPort结构体中的PortType指示当前AvPort端口的类型为以下中的任意一个:HDMI输出口、HDMI输入口、DVI输出口、DVI输入口、DisplayPort输出口、DisplayPort输入口、Scaler的IP模块、Color的IP模块、MIPI输入模块、MIPI输出模块、OSD模块。
5.根据权利要求1至3中任一项所述的基于端口结构体的软件架构系统,其特征在于,所述软件架构系统中的所有AvPort通过所述AvPort结构体中的NextAvPort指针连接为环形拓扑结构。
6.根据权利要求1至3中任一项所述的基于端口结构体的软件架构系统,其特征在于,采用FromPort/ToPort/NextSameLevelPort 3个指针,将复杂多变的整体系统连接架构分散到各节点的AvPort来分别控制,达到任意添加删除端口,每个端口都可以灵活切换控制的效果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210720495.XA CN114816355B (zh) | 2022-06-24 | 2022-06-24 | 基于端口结构体的软件架构系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210720495.XA CN114816355B (zh) | 2022-06-24 | 2022-06-24 | 基于端口结构体的软件架构系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114816355A true CN114816355A (zh) | 2022-07-29 |
CN114816355B CN114816355B (zh) | 2022-09-20 |
Family
ID=82521829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210720495.XA Active CN114816355B (zh) | 2022-06-24 | 2022-06-24 | 基于端口结构体的软件架构系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114816355B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1551006A (zh) * | 2003-03-06 | 2004-12-01 | 微软公司 | 分布式计算系统架构及分布式应用的设计、部署和管理 |
CN1959631A (zh) * | 2005-11-04 | 2007-05-09 | 上海启明软件股份有限公司 | 一种基于itron的应用软件自主装配技术 |
CN109491728A (zh) * | 2018-10-25 | 2019-03-19 | 基石酷联微电子技术(北京)有限公司 | 基于有限状态机的软件架构系统 |
CN110347405A (zh) * | 2019-07-01 | 2019-10-18 | 电子科技大学 | 一种schedule调度模块的形式化验证方法 |
WO2022036783A1 (zh) * | 2020-08-20 | 2022-02-24 | 浙江大学 | 一种c语言的指针类型分析方法 |
-
2022
- 2022-06-24 CN CN202210720495.XA patent/CN114816355B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1551006A (zh) * | 2003-03-06 | 2004-12-01 | 微软公司 | 分布式计算系统架构及分布式应用的设计、部署和管理 |
CN1959631A (zh) * | 2005-11-04 | 2007-05-09 | 上海启明软件股份有限公司 | 一种基于itron的应用软件自主装配技术 |
CN109491728A (zh) * | 2018-10-25 | 2019-03-19 | 基石酷联微电子技术(北京)有限公司 | 基于有限状态机的软件架构系统 |
CN110347405A (zh) * | 2019-07-01 | 2019-10-18 | 电子科技大学 | 一种schedule调度模块的形式化验证方法 |
WO2022036783A1 (zh) * | 2020-08-20 | 2022-02-24 | 浙江大学 | 一种c语言的指针类型分析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114816355B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7330919B2 (en) | Television with integrated asynchronous/synchronous KVMP signal switch for console and peripheral devices | |
CN104618793B (zh) | 一种信息处理方法及电子设备 | |
EP2680123A2 (en) | Method and Device of Task Processing of One Screen and Multi-Foreground | |
CA2386272A1 (en) | Collaborative design | |
CN107291456A (zh) | 一种多屏显示的控制方法及系统 | |
CN103150154A (zh) | 一种应用程序插件的实现方法及装置 | |
CN106155749A (zh) | 一种监控插件扩展方法及装置 | |
US10198538B1 (en) | Relocate targets to different domains in an emulator | |
CN111610972B (zh) | 页面生成方法、装置、设备及存储介质 | |
CN114816355B (zh) | 基于端口结构体的软件架构系统 | |
CN102354275B (zh) | 一种文字输入框及其数据处理方法 | |
CN209313939U (zh) | 多远程通道的多计算机切换装置及电子设备 | |
CN111405022B (zh) | 一种异构设备柔性组网通信平台 | |
CN100447714C (zh) | 多任务式计算机周边装置联机切换接口 | |
CN105468098A (zh) | 一种工控机主板 | |
Wang et al. | Software architecture based on message queue | |
CN105892975B (zh) | 一种kvm的管理板 | |
CN210954981U (zh) | 具有kvm的键盘装置 | |
KR101438973B1 (ko) | 차량 인터페이스 제어시스템 | |
CN1329857C (zh) | 多处理单元环境下统一输入输出方法 | |
CN217880296U (zh) | 数据分布式处理装置及舞台灯光控制系统 | |
CN116431368B (zh) | 一种面向自主无人系统的传感器即插即用中间件 | |
CN207968749U (zh) | 一种机架和网关 | |
US7983168B2 (en) | One or more multiport systems to facilitate servicing of asynchronous communications events | |
Ha et al. | SoD: Framework for on-demand computing in home environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |