CN112835651A - 一种多路图像并行解码处理方法 - Google Patents
一种多路图像并行解码处理方法 Download PDFInfo
- Publication number
- CN112835651A CN112835651A CN202110359720.7A CN202110359720A CN112835651A CN 112835651 A CN112835651 A CN 112835651A CN 202110359720 A CN202110359720 A CN 202110359720A CN 112835651 A CN112835651 A CN 112835651A
- Authority
- CN
- China
- Prior art keywords
- decoding
- dynamic link
- function
- dll
- copied
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本发明公开了一种多路图像并行解码处理方法,适用于使用C++编译的程序对导弹的多路图像解码的场景。具体方法为:a.通过主程序,将含有解码函数的动态链接库复制出n份,得到n个复制的含有解码函数的动态链接库,分别命名为decode1.dll、decode2.dll、...、decoden.dll,其中,n等于需要进行解码的图像的路数;b.在主程序需要进行n路图像解码时,将每一路图像都交给一个复制的含有解码函数的动态链接库进行图像解码。本方法减少了软件开发成本以及软件验证时间,同时保证了软件的可靠性,有利于多线程调用,提高解码效率,可以根据需要灵活快速地扩容图像解码能力。
Description
技术领域
本发明属于导弹图像数据处理技术领域,具体涉及一种多路图像并行解码处理方法。
背景技术
随着图像制导和监视评估等导弹技术的发展,在导弹研制、试验和应用中对视频图像信号的传输与遥测越来越多,视频图像不仅对分析图像制导导弹在飞行过程中导引头出现的异常状态非常必要,而且对有些导弹的故障分析和定位比依靠现有的遥测数据分析容易得多,并且视频图像信息相对更为直观。
但是,导弹图像数据量较为庞大,而且遥测无线信道容量有限,必须对图像进行压缩后传输,图像压缩往往包括数据变换、系数编码、抗干扰编码等一些列复杂的算法,接收端的windows平台在接收到压缩图像后需要进行对应的一系列逆运算才能将图像数据还原。
在初始阶段,导弹图像数据只有一路数据,研究人员使用C++语言构建了整个图像数据的接收、解码处理***,而随着导弹图像数据传输的需求与技术的发展,研究人员开始想要传输并接收多路导弹图像数据,在进行多路导弹图像数据的传输、接收与处理时,需要克服之前处于一路数据时碰不到想不到的技术问题。
在之前一路数据接收处理时,整个***的主程序的进程调用含有解码模块的动态链接库对接收到的图像数据解码,解码模块中含有解码函数,解决方法、函数复用的问题,使得整个***的代码执行效率尽可能高,而所需存储空间尽可能小,同时,为了动态链接库在被主程序的进程调用后能够配合主程序正常使用,解码模块中含有公用的全局变量,但是,当面对多路图像数据的接收处理时,假设共n路图像数据,假如还是用原来的方法,由于动态链接库的特性,当动态链接库被主程序即宿主程序的进程调用加载到进程空间后,CPU对n路图像进行处理,过程中,需要使用动态链接库中的解码模块对n路图像进行解码,可以n路图像按顺序进行解码处理,也可以使用多线程技术对n路图像同时进行解码处理,从图像数据需要具有时效性角度来看,一定是选用多线程同时处理n路图像的方式,但需要注意的是,一旦动态链接库被正确加载,主程序进程中的多线程都会来使用同一个解码模块,而解码模块中含有公用的全局变量,这就导致多线程处理任务时会使用同一地址的公用全局变量,从而n路图像的解码数据出现混淆,导致无法正确解码。
假如直接对动态链接库进行修改,需要对解码模块进行重写,难度大、验证周期长,且难以适应图像路数不断发生变化的情况,只要图像路数发生变化就去重新编写解码模块是不现实的,工作量与工作难度、验证周期都太大太长。
发明内容
为了解决背景技术中提出的问题,本发明给出了一种多路图像并行解码处理方法。
一种多路图像并行解码处理方法,适用于使用C++编译的程序对导弹的多路图像解码的场景,
a.通过主程序,将含有解码函数的动态链接库复制出n份,得到n个复制的含有解码函数的动态链接库,分别命名为decode1.dll、decode2.dll、...、decoden.dll,其中,n等于需要进行解码的图像的路数;
b.在主程序需要进行n路图像解码时,将每一路图像都交给一个复制的含有解码函数的动态链接库进行图像解码。
进一步地,在步骤b中,需要首先在主程序中动态加载decode1.dll、decode2.dll、...decoden.dll共n个复制的含有解码函数的动态链接库,还需要在主程序中定义与解码函数相对应的函数指针类型,并声明函数指针变量的类型为与解码函数相对应的函数指针类型,然后将n个函数指针变量分别指向共n个复制的含有解码函数的动态链接库中的解码函数的地址,从而实现在进行n路图像解码时,将每一路图像都交给一个复制的含有解码函数的动态链接库进行图像解码。
进一步地,动态加载n个复制的含有解码函数的动态链接库时,使用LoadLibrary()函数最终实现n个复制的含有解码函数的动态链接库的动态加载。通过对n个复制的含有解码函数的动态链接库的动态加载,使得n个动态链接库映射在不同的地址中,互不干扰。
进一步地,在主程序中定义与解码函数相对应的函数指针类型是指,函数指针类型的返回值类型、所需参数类型、所需参数的数量与解码函数的返回值类型、所需参数类型、所需参数的数量一致。
进一步地,在将n个函数指针变量分别指向共n个复制的含有解码函数的动态链接库中的解码函数的地址时,使用GetProcAddress()函数获取动态链接库中的解码函数的地址。
与现有技术相比,本发明公开的技术方案具有以下有益效果:
1.无需对原来只能解码一路图像的动态链接库进行修改,采用将原来的动态链接库直接复制为多份,并在主程序中动态加载的方式,从而使主程序将多个动态链接库映射到不同的地址空间,减少了软件开发成本以及软件验证时间,同时保证了软件的可靠性。
2.只需向C++编译的主程序中添加少量代码即可完成各路图像可以并行解码,互不影响,其中任一路图像的任何解码操作对其他路图像的解码都没有影响,有利于多线程调用,提高解码效率。
3.可以根据需要灵活快速地扩容图像解码能力。
具体实施方式
下面说明本发明的具体实施方式,公开实施方式的目的在于对本发明进行说明解释,而非是对本发明的限制,一切在本发明的基础上进行简单替换、组合和发展得到的技术方案,都应落入本发明保护范围。
实施例一
以两路图像为例,一种多路图像并行解码处理方法,适用于使用C++编译的程序对导弹的多路图像解码的场景,
a.通过主程序,将含有解码函数的动态链接库复制出2份,得到2个复制的含有解码函数的动态链接库,分别命名为decode1.dll、decode2.dll;
b.首先在主程序中,使用LoadLibrary()函数动态加载decode1.dll、decode2.dll共2个复制的含有解码函数的动态链接库:
HINSTANCE hIns1=::LoadLibrary(“decode1”);
HINSTANCE hIns2=::LoadLibrary(“decode2”);
接下来需要在主程序中定义与解码函数相对应的函数指针类型,即函数指针类型的返回值类型、所需参数类型、所需参数的数量与解码函数的返回值类型、所需参数类型、所需参数的数量一致:
假设解码函数类型为:
intGetImage(unsigned char*pCh,intnSize);
那么,相对应的函数指针类型为:
typedef int(*PGetImage)(unsigned char*pCh,intnSize);即定义了一种函数指针类型,并定义这种类型为指向某种函数的指针,这种函数的参数为unsigned char*pCh、intnSize,返回类型为int,而在本实施例中,这种指针就是与解码函数相匹配的,即这种指针是指向解码函数的。
然后声明函数指针变量的类型为与解码函数相对应的函数指针类型:
PGetImage pFn1,pFn2;从而实质上pFn1、pFn2为两个函数指针变量,其类型为与解码函数相对应的函数指针类型。
然后将2个函数指针变量分别指向共2个复制的含有解码函数的动态链接库中的解码函数的地址,其中使用GetProcAddress()函数获取动态链接库中的解码函数的地址:
pFn1=(PGetImage)GetProcAddress(hIns1,"GetImage");
pFn2=(PGetImage)GetProcAddress(hIns2,"GetImage");
在主程序需要进行2路图像解码时,分别使用pFn1、pFn2,完成2路图像的并行解码。
当需要解码n路图像时,依据本实施例的方法类推,只需复制出足够的动态链接库,并动态加载这些动态链接库,同时给出足够的函数指针变量,即可通过多线程同时完成n路图像的解码。
本申请中未详述部分为现有技术。
Claims (5)
1.一种多路图像并行解码处理方法,适用于使用C++编译的程序对导弹的多路图像解码的场景,其特征在于:
a.通过主程序,将含有解码函数的动态链接库复制出n份,得到n个复制的含有解码函数的动态链接库,分别命名为decode1.dll、decode2.dll、...、decoden.dll,其中,n等于需要进行解码的图像的路数;
b.在主程序需要进行n路图像解码时,将每一路图像都交给一个复制的含有解码函数的动态链接库进行图像解码。
2.如权利要求1所述的一种多路图像并行解码处理方法,其特征在于:在步骤b中,需要首先在主程序中动态加载decode1.dll、decode2.dll、...decoden.dll共n个复制的含有解码函数的动态链接库,还需要在主程序中定义与解码函数相对应的函数指针类型,并声明函数指针变量的类型为与解码函数相对应的函数指针类型,然后将n个函数指针变量分别指向共n个复制的含有解码函数的动态链接库中的解码函数的地址,从而实现在进行n路图像解码时,将每一路图像都交给一个复制的含有解码函数的动态链接库进行图像解码。
3.如权利要求2所述的一种多路图像并行解码处理方法,其特征在于:动态加载n个复制的含有解码函数的动态链接库时,使用LoadLibrary()函数最终实现n个复制的含有解码函数的动态链接库的动态加载。
4.如权利要求2所述的一种多路图像并行解码处理方法,其特征在于:在主程序中定义与解码函数相对应的函数指针类型是指,函数指针类型的返回值类型、所需参数类型、所需参数的数量与解码函数的返回值类型、所需参数类型、所需参数的数量一致。
5.如权利要求2所述的一种多路图像并行解码处理方法,其特征在于:在将n个函数指针变量分别指向共n个复制的含有解码函数的动态链接库中的解码函数的地址时,使用GetProcAddress()函数获取动态链接库中的解码函数的地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110359720.7A CN112835651B (zh) | 2021-04-01 | 2021-04-01 | 一种多路图像并行解码处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110359720.7A CN112835651B (zh) | 2021-04-01 | 2021-04-01 | 一种多路图像并行解码处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112835651A true CN112835651A (zh) | 2021-05-25 |
CN112835651B CN112835651B (zh) | 2023-10-20 |
Family
ID=75930765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110359720.7A Active CN112835651B (zh) | 2021-04-01 | 2021-04-01 | 一种多路图像并行解码处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112835651B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1630370A (zh) * | 2003-12-15 | 2005-06-22 | 联想(北京)有限公司 | 一种数据压缩的编码和解码方法 |
CN1972447A (zh) * | 2006-12-08 | 2007-05-30 | 清华大学 | 基于流媒体技术的多画面播放器及其播放方法 |
CN101179715A (zh) * | 2006-11-30 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 一种对多路视频源同时进行压缩编码的实现方法与*** |
CN101783946A (zh) * | 2010-01-30 | 2010-07-21 | 青岛海信网络科技股份有限公司 | 视频解码方法、视频解码器及视频监控*** |
CN101834854A (zh) * | 2010-04-06 | 2010-09-15 | 北京交通大学 | 一种手机视频传输*** |
CN101924666A (zh) * | 2010-07-22 | 2010-12-22 | 中兴通讯股份有限公司 | 一种信令跟踪的解码实现方法及*** |
CN102098503A (zh) * | 2009-12-14 | 2011-06-15 | 中兴通讯股份有限公司 | 一种多核处理器并行解码图像的方法和装置 |
CN102270158A (zh) * | 2011-08-10 | 2011-12-07 | 深圳市万兴软件有限公司 | 一种应用程序多进程运行方法及装置 |
CN104704828A (zh) * | 2012-10-03 | 2015-06-10 | 美国博通公司 | 有界率近无损和无损图像压缩 |
CN104980752A (zh) * | 2015-06-11 | 2015-10-14 | 武汉大千信息技术有限公司 | 利用cpu和gpu实现多路自适应并行转码的方法及*** |
CN105187117A (zh) * | 2015-08-12 | 2015-12-23 | 莱诺斯科技(北京)有限公司 | 一种卫星遥测解码*** |
CN106878736A (zh) * | 2017-03-17 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种视频编解码的方法与装置 |
CN107592118A (zh) * | 2016-07-08 | 2018-01-16 | 华为技术有限公司 | 可变长编码文件的解码方法以及装置 |
CN108322708A (zh) * | 2018-02-12 | 2018-07-24 | 福州大学 | 一种基于多路并行传输技术的实时视频传输***及其方法 |
CN108491261A (zh) * | 2018-01-19 | 2018-09-04 | 西安电子科技大学 | 基于众核并行处理器的多路帧序列排序方法 |
CN110381322A (zh) * | 2019-07-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 视频流解码方法、装置、终端设备及存储介质 |
-
2021
- 2021-04-01 CN CN202110359720.7A patent/CN112835651B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1630370A (zh) * | 2003-12-15 | 2005-06-22 | 联想(北京)有限公司 | 一种数据压缩的编码和解码方法 |
CN101179715A (zh) * | 2006-11-30 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 一种对多路视频源同时进行压缩编码的实现方法与*** |
CN1972447A (zh) * | 2006-12-08 | 2007-05-30 | 清华大学 | 基于流媒体技术的多画面播放器及其播放方法 |
CN102098503A (zh) * | 2009-12-14 | 2011-06-15 | 中兴通讯股份有限公司 | 一种多核处理器并行解码图像的方法和装置 |
CN101783946A (zh) * | 2010-01-30 | 2010-07-21 | 青岛海信网络科技股份有限公司 | 视频解码方法、视频解码器及视频监控*** |
CN101834854A (zh) * | 2010-04-06 | 2010-09-15 | 北京交通大学 | 一种手机视频传输*** |
CN101924666A (zh) * | 2010-07-22 | 2010-12-22 | 中兴通讯股份有限公司 | 一种信令跟踪的解码实现方法及*** |
CN102270158A (zh) * | 2011-08-10 | 2011-12-07 | 深圳市万兴软件有限公司 | 一种应用程序多进程运行方法及装置 |
CN104704828A (zh) * | 2012-10-03 | 2015-06-10 | 美国博通公司 | 有界率近无损和无损图像压缩 |
CN104980752A (zh) * | 2015-06-11 | 2015-10-14 | 武汉大千信息技术有限公司 | 利用cpu和gpu实现多路自适应并行转码的方法及*** |
CN105187117A (zh) * | 2015-08-12 | 2015-12-23 | 莱诺斯科技(北京)有限公司 | 一种卫星遥测解码*** |
CN107592118A (zh) * | 2016-07-08 | 2018-01-16 | 华为技术有限公司 | 可变长编码文件的解码方法以及装置 |
CN106878736A (zh) * | 2017-03-17 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种视频编解码的方法与装置 |
CN108491261A (zh) * | 2018-01-19 | 2018-09-04 | 西安电子科技大学 | 基于众核并行处理器的多路帧序列排序方法 |
CN108322708A (zh) * | 2018-02-12 | 2018-07-24 | 福州大学 | 一种基于多路并行传输技术的实时视频传输***及其方法 |
CN110381322A (zh) * | 2019-07-15 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 视频流解码方法、装置、终端设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
KRISHNAKANTH RAPAKA等: ""Efficient key picture and single loop decoding scheme for SHVC"", 《2013 VISUAL COMMUNICATIONS AND IMAGE PROCESSING (VCIP)》 * |
贾丕军: ""遥测文件截取器软件设计与实现"", 《现代电子技术》, pages 36 - 38 * |
贾丕军等: ""一种多功能红外图像播放软件的设计实现"", 《电子设计工程》, pages 185 - 187 * |
Also Published As
Publication number | Publication date |
---|---|
CN112835651B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5608867A (en) | Debugging system using virtual storage means, a normal bus cycle and a debugging bus cycle | |
EP0492671A2 (en) | System for analysis of embedded computer systems | |
US4797885A (en) | Distributed processing system and method | |
US4368532A (en) | Memory checking method | |
CN107516546B (zh) | 一种随机存储器的在线检测装置及方法 | |
US5706298A (en) | Method and apparatus for calculating the longitudinal redundancy check in a mixed stream channel | |
CN112835651A (zh) | 一种多路图像并行解码处理方法 | |
CN110297926B (zh) | 星载图像处理装置在轨配置方法 | |
US6845440B2 (en) | System for preventing memory usage conflicts when generating and merging computer architecture test cases | |
CN114281297A (zh) | 多音频流的传输管理方法、装置、设备及存储介质 | |
US5533195A (en) | Testing tool for diagnosing defective computer system devices | |
KR960014980B1 (ko) | 랜(lan) 감시장치 및 통신절차 감시방법 | |
US7533299B2 (en) | Temporal correlation of messages transmitted by a microprocessor monitoring circuit | |
CN101192139A (zh) | 数据处理装置 | |
US20030056027A1 (en) | Apparatus and method for improvement of communication between an emulator unit and a host device | |
CN113076283B (zh) | 文件一致性验证方法、装置及电子设备 | |
CN113329076B (zh) | 数据传输方法、装置及***、计算机设备、存储介质 | |
KR20010007046A (ko) | 디지털 장치에 내장된 소프트웨어의 소프트웨어 모듈에대한 운용 또는 에러 정보를 복구하는 처리 방법 및관련된 디지털 장치 | |
US7225098B2 (en) | Monitoring device with optimized buffer | |
CN109885402B (zh) | 测试函数输出数据溢出的方法、终端设备及存储介质 | |
CN108664352B (zh) | 一种基于离线仿真的热备***教育数据验证方法 | |
CN113515461A (zh) | 通讯测试方法、装置、电子设备及存储介质 | |
CN110794282B (zh) | 基于dSPACE-HIL***的用于与电子设备通信的方法和装置 | |
CN118113618A (zh) | 软件测试库生成方法、装置、设备、介质以及程序产品 | |
WO2001097039A1 (en) | Remote debugging in an embedded system 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 |