CN112835651B - 一种多路图像并行解码处理方法 - Google Patents

一种多路图像并行解码处理方法 Download PDF

Info

Publication number
CN112835651B
CN112835651B CN202110359720.7A CN202110359720A CN112835651B CN 112835651 B CN112835651 B CN 112835651B CN 202110359720 A CN202110359720 A CN 202110359720A CN 112835651 B CN112835651 B CN 112835651B
Authority
CN
China
Prior art keywords
decoding
function
dynamic link
images
image
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.)
Active
Application number
CN202110359720.7A
Other languages
English (en)
Other versions
CN112835651A (zh
Inventor
贾丕军
姚长虹
李亚
孙江辉
陈飞
张聪颖
常树龙
李宇
刘亚南
戴虹
冯玉洁
王玉昊
代延村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Airborne Missile Academy
Original Assignee
China Airborne Missile Academy
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Airborne Missile Academy filed Critical China Airborne Missile Academy
Priority to CN202110359720.7A priority Critical patent/CN112835651B/zh
Publication of CN112835651A publication Critical patent/CN112835651A/zh
Application granted granted Critical
Publication of CN112835651B publication Critical patent/CN112835651B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-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 (3)

1.一种多路图像并行解码处理方法,适用于使用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个函数指针变量分别指向共n个复制的含有解码函数的动态链接库中的解码函数的地址时,使用GetProcAddress()函数获取动态链接库中的解码函数的地址。
2.如权利要求1所述的一种多路图像并行解码处理方法,其特征在于:动态加载n个复制的含有解码函数的动态链接库时,使用LoadLibrary()函数最终实现n个复制的含有解码函数的动态链接库的动态加载。
3.如权利要求1所述的一种多路图像并行解码处理方法,其特征在于:在主程序中定义与解码函数相对应的函数指针类型是指,函数指针类型的返回值类型、所需参数类型、所需参数的数量与解码函数的返回值类型、所需参数类型、所需参数的数量一致。
CN202110359720.7A 2021-04-01 2021-04-01 一种多路图像并行解码处理方法 Active CN112835651B (zh)

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 CN112835651A (zh) 2021-05-25
CN112835651B true 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)

* Cited by examiner, † Cited by third party
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 腾讯科技(深圳)有限公司 视频流解码方法、装置、终端设备及存储介质

Patent Citations (16)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
"Efficient key picture and single loop decoding scheme for SHVC";Krishnakanth Rapaka等;《2013 Visual Communications and Image Processing (VCIP)》;全文 *
"一种多功能红外图像播放软件的设计实现";贾丕军等;《电子设计工程》;第185-187页 *
"遥测文件截取器软件设计与实现";贾丕军;《现代电子技术》;第36-38页 *

Also Published As

Publication number Publication date
CN112835651A (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
CN110442560B (zh) 一种日志重演方法、装置、服务器和存储介质
McCharen et al. Problems and experiments for and with automated theorem-proving programs
JP2575595B2 (ja) イメージフレームの圧縮方法及びデータ処理システム
CN1985278B (zh) 对于象素着色器硬件的传统处理
CN104679572B (zh) 基于预加载机制的插件支持方法
US20120011404A1 (en) Method and system of a processor-agnostic encoded debug-architecture in a pipelined environment
US4368532A (en) Memory checking method
CN112835651B (zh) 一种多路图像并行解码处理方法
KR19980081853A (ko) 그래픽 이미지 압축 및 복원 방법
CN111858157B (zh) 基于纠删码的丢失数据恢复方法、***、终端及存储介质
CN117196000A (zh) 一种容器化部署的边缘侧模型推理加速方法
US11489541B2 (en) Compression techniques for data structures suitable for artificial neural networks
CN111797985A (zh) 一种基于gpu的卷积运算内存访问优化方法
CN115983337A (zh) 卷积计算单元、ai运算阵列及相关设备
CN109144793B (zh) 一种基于数据流驱动计算的故障校正装置和方法
CN112506651B (zh) 一种大数据量环境中数据运算的方法和设备
CN114281297A (zh) 多音频流的传输管理方法、装置、设备及存储介质
CN107835158B (zh) Sna网络体系下交互数据的传输方法及装置
CN114119334A (zh) 基于注意力机制的自动学习嵌入代价的图像隐写方法
US6370636B1 (en) Accessing byte lines from dual memory blocks and aligning for variable length instruction execution
CN111475234A (zh) 一种字符串传递方法、装置、计算机及可读存储介质
CN113076283B (zh) 文件一致性验证方法、装置及电子设备
CN111045831B (zh) 一种基于python的雷达实时信号处理方法
CN114286106B (zh) 一种基于MPSoC的多路SDI视频极低延时编码***
WO2024140568A1 (zh) 图像处理方法、装置、电子设备及可读存储介质

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