CN101640796B - 一种基于fpga的帧结构处理方法 - Google Patents
一种基于fpga的帧结构处理方法 Download PDFInfo
- Publication number
- CN101640796B CN101640796B CN 200910092384 CN200910092384A CN101640796B CN 101640796 B CN101640796 B CN 101640796B CN 200910092384 CN200910092384 CN 200910092384 CN 200910092384 A CN200910092384 A CN 200910092384A CN 101640796 B CN101640796 B CN 101640796B
- Authority
- CN
- China
- Prior art keywords
- frame
- data
- attitude
- handshake
- unidirectional
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种基于FPGA的帧结构处理方法,引入状态机机制能够同时满足采用不同H.221帧结构的单幅和双幅图像的解码要求。设置单向握手信号,利用快慢时钟的特点实现了跨时钟域的数据交换。通过不定长移位操作代替硬件难以实现的不定长缓存区拼接时序,H.221帧结构中图像数据总长度可以不是图像数据帧长度的整数倍,更具有一般性。该方法全部采用FPGA实现,集成度高,实时性好,可推广应用。
Description
技术领域
本发明属于通信领域,涉及一种采用FPGA对H.221帧结构数据进行处理的方法。
背景技术
H.221协议是ITU-T(国际电信联盟,international telecommunicationunion)制定的关于视频电视会议系统H.200系列协议中的一个,它规定了声像电信业务中64~1920kb/s信道的帧结构。H.221视频会议的信号传输方式是数字信道时分复用方式,它的所有多媒体信息(包括视频、音频、数据、控制信号)必须按照特定的帧结构在收、发两终端之间同步进行传送。这个帧结构不但包括单路B(64kb/s)或多路B(2~6B)、单路H0(384kb/s)或多路H0(2~5H0)、H11(1536kb/s)和H12(1920kb/s)等,而且还能使多个B、H0信道保持同步复接。
单路B信道(或称为时隙TS)以8kHz的速率每次传送一个8比特组。每一帧由80个8比特组所组成。8比特组中的每个比特由上至下构成了一个8kb/s的子信道。其中前7个子信道可传输音频、视频或数据,第8个子信道称为公务信道(SC),主要运载端到端的信令,如帧定位信号(FAS)、比特率分配信号(BAS)及加密控制信号(ECS)等,第25~80比特组的SC可用于传送数据或部分音频、视频信号。
单路H0,H11,H12信道由多个64kb/s的时隙(TS)所组成。最低时隙TS1的结构与单路B信道相同,其余的TS则没有帧结构。
对于多路B或多路H0信道来说,每个信道均有一个帧结构,其中初始信道中的帧结构在整个传输过程中起主要的信令控制功能,其它信道中的帧结构则主要用于同步、信道编号等相关控制。
在H.221协议中除了单帧外,还存在复帧和子复帧,其中16个单帧组成复帧,每一复帧又分成8个子复帧。对于传输的数据帧,可以按传输的顺序分为奇帧和偶帧。在H.221协议中数据帧处理最小单位是一组子复帧。在B信道上传输的是比特流,为了获取正确的数据,必须确定帧的起始位置,同时数据帧也可能丢失,FAS就是为了帧的起始和判断帧丢失而设置的,而BAS用于不同终端之间的通信控制,如能力和模式的传输。
基于H.221协议2路H0(768kb/s)信道的单幅图像与双幅图像帧结构分别如图1和图2所示,其中A/a表示填充的话音数据,V表示图像编码后的数据,FAS为帧定位控制信号(“1BH”时为偶帧,“4FH”时为奇帧),BAS为比特率分配控制信号(“00H”时为传送单幅图像,“FFH”时为传送双幅图像)。
H.221帧结构能发挥现有建议所规定图像和话音编码算法的优点,利于在现有的信道上进行远程传输。但是H.221帧结构处理起来比较复杂,一般都是采用纯软件实现。例如《计算机工程与应用》2002年第06期论文《ISDN可视电话中H.221协议的设计与实现》提出了对H.221子复帧进行同步控制、缓冲管理等方面的策略及实现方案。但其在具体实现过程中,由于采用软件实现,而且Windows操作系统并非实时操作系统,因此要想获得严格的实时性将会非常困难。考虑到音频数据与视频数据的不同特点,即音频数据必须严格保证连续性和实时性,否则效果会使用户难以接受,而视频数据的要求相对宽松一些。因此可以选择音频信号作为基准。具体来说,H.221模块在每次复用过程中,必须确认Audio编码缓冲区有足够的数据用于复用,否则处于等待状态;而对于视频数据则采用尽力传送的原则,即如果视频编码模块未能及时产生视频数据流,则H.221模块并不等待,而采用填充数据进行填充。当然H.221模块本身的复用/解复用速度应足够快,否则就会造成瓶颈效应,影响整个系统的效率。
专利申请号为CN00127685.9,名称为《帧定位查找及码流转换电路和方法》的中国专利提出了一种多路H.221帧定位和复帧定位的搜索方法,但是该发明的重点在于码流转换,并未涉及对H.221帧结构数据进行处理的内容。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种采用FPGA实现、实时性好的帧结构处理方法。
本发明的技术解决方案是:一种基于FPGA的帧结构处理方法,步骤如下:
(1)接收H.221帧结构数据,包括单幅图像帧结构数据和双幅图像帧结构数据;
(2)对接收到的H.221帧结构数据采用状态机机制进行解码,分为奇帧定位搜索态、单幅奇帧处理态、双幅奇帧处理态、单幅偶帧处理态和双幅偶帧处理态五个状态;
a.对接收到的比特流,首先进入奇帧定位搜索态,判断FAS=“4FH”是否成立,若不成立则无操作,若成立则继续判断BAS的值;若BAS=“00H”,则在下一个时钟周期进入单幅奇帧处理态,若BAS=“FFH”,则在下一个时钟周期进入双幅奇帧处理态,其它值时无操作;其中“4FH”代表奇帧,“00H”代表传送单幅图像,“FFH”代表传送双幅图像;
b.单幅奇帧处理态时,根据单幅图像的H.221帧结构分离图像与话音数据,在处理完一整帧数据后,判断FAS=“1BH”及BAS=“00H”是否同时成立,若成立则在下一个时钟周期进入单幅偶帧处理态,同时设置单向握手信号有效,单向握手信号有效时间为一个时钟周期,否则返回奇帧定位搜索态,单向握手信号无效,其中“1BH”代表偶帧;
c.双幅奇帧处理态时,根据双幅图像的H.221帧结构分离图像与话音数据,在处理完一整帧数据后,判断FAS=“1BH”及BAS=“FFH”是否同时成立,若成立则在下一个时钟周期进入双幅偶帧处理态,同时设置单向握手信号有效,单向握手信号有效时间为一个时钟周期,否则返回奇帧定位搜索态,单向握手信号无效;
d.单幅偶帧处理态时,根据单幅图像的H.221帧结构分离图像与话音数据,在处理完一整帧数据后,判断FAS=“4FH”及BAS=“00H”是否同时成立,若成立则在下一个时钟周期进入单幅奇帧处理态,同时设置单向握手信号有效,单向握手信号有效时间为一个时钟周期,否则返回奇帧定位搜索态,单向握手信号无效;
e.双幅偶帧处理态时,根据双幅图像的H.221帧结构分离图像与话音数据,在处理完一整帧数据后,判断FAS=“4FH”及BAS=“FFH”是否同时成立,若成立则在下一个时钟周期进入双幅奇帧处理态,同时设置单向握手信号有效,单向握手信号有效时间为一个时钟周期,否则返回奇帧定位搜索态,单向握手信号无效;
(3)当且仅当单向握手信号有效时,更新一次图像数据缓存区,开始图像帧重组操作;
f.图像数据缓存区分为高位移位操作区与低位更新数据区,默认处于等待状态,在每个时钟周期上升沿检测单向握手信号是否有效,若有效则更新一次低位更新数据区,并在下一个时钟周期进入下一步,期间不再检测单向握手信号,不对低位更新数据区进行更新操作;否则无操作,继续等待;
g.开始图像帧重组操作,对整个图像数据缓存区以字节为单位进行左向移位,搜索帧同步字,当低位更新数据区的数据全部左向移位到高位移位操作区时,仍未找到同步字则结束本次组帧操作,并在下一个时钟周期返回上一步,等待低位更新数据区的再次更新,否则进入下一步;
h.数据使能信号有效,对高位移位操作区进行左向比特移位,开始以SPI方式串行输出图像数据,当输出一整帧图像帧数据后,数据使能信号无效,停止图像数据输出,并在下一个时钟周期进入下一步;
i.将高位移位操作区的剩余数据以字节为单位右向移位到高位移位操作区的最低位,移位结束后在下一个时钟周期返回步骤f;
在上述步骤中,应保证步骤f~i的工作时钟频率大于步骤a~e的工作时钟频率。
本发明与现有技术相比的优点在于:
(1)本发明对H.221帧结构的处理方法全部采用FPGA实现,实时性好;
(2)本发明方法通过引入状态机机制,能够同时满足不同H.221帧结构数据(无论是单幅图像数据或者是双幅图像数据)的解码要求;
(3)本发明方法将图像数据缓存区分为高位移位操作区与低位更新数据区,利用不定长移位操作代替硬件难以实现的不定长缓存区拼接时序,H.221帧结构中图像数据总长度可以不是图像数据帧长度的整数倍,更具有一般性。而且可以推广到其它基于FPGA实现的数据处理应用中。
附图说明
图1为单幅图像H.221帧结构图;
图2为双幅图像H.221帧结构图;
图3为本发明方法的流程框图;
图4为采用本发明方法进行帧解码时的状态转移图;
图5为采用本发明方法进行图像帧重组操作后的图像数据帧格式。
具体实施方式
如图3所示,为本发明方法的流程框图,本发明可以分为H.221帧解码和图像帧重组两个操作过程,硬件上电后,并行工作。
本发明中,对于H.221帧解码的操作采用状态机机制进行,分为奇帧定位搜索态、单幅奇帧处理态、双幅奇帧处理态、单幅偶帧处理态和双幅偶帧处理态五个状态,各状态之间的转换操作过程如图4所示。图中FAS为帧定位控制信号,“1BH”时为偶帧,“4FH”时为奇帧,BAS为比特率分配控制信号,“00H”时为传送单幅图像,“FFH”时为传送双幅图像。
当单幅奇帧处理态,或者双幅奇帧处理态,或者单幅偶帧处理态,或者双幅偶帧处理态的条件满足时,单向握手信号有效,单向握手信号有效时间为一个时钟周期,用于对对应状态的图像数据进行帧重组操作。
帧重组操作时,将图像数据缓存区分为高位移位操作区与低位更新数据区,高位移位操作区用于移位操作,低位更新数据区用于缓存数据。默认处于等待状态,在每个时钟周期上升沿检测单向握手信号是否有效,若有效则更新一次低位更新数据区。更新完毕后,将图像数据缓存区以字节为单位进行左向移位,在此过程中需要找寻同步字,若找到同步字后,则数据使能信号有效,对图像数据缓存区进行左向比特移位,开始以SPI方式串行输出图像数据,当输出一整帧图像帧数据后,数据使能信号无效,停止图像数据输出。最后,将图像数据缓存区的剩余数据以字节为单位右向移位(由高位到低位)到高位移位操作区的最低位,以保证与下一次更新的新数据可以无缝拼接,移位结束后在下一个时钟周期重复进行下一帧数据的重组操作。
需要注意的是,帧重组操作时的时钟工作频率应大于帧解码时的时钟工作频率,以保证不会漏检单向握手信号。
实施例
选用ALTERA公司的Cyclone II系列的EP2C70F672I8芯片来实现。
H.221帧解码的工作时钟为768kHz,首先进入奇帧定位搜索态,接收768kb/s的H.221帧结构数据并缓存,缓存区的大小选择为1536比特,对应于H.221帧结构的16行数据:16X96,这样就可以在每个时钟下降沿时检测缓存区相应位置上FAS和BAS的值是否满足状态转移条件。
以单幅图像为例,当FAS=“4FH”及BAS=“00H”时在下一个时钟周期进入单幅奇帧处理态,开始根据单幅图像的H.221帧结构分离图像与话音数据。为了节省硬件资源,每次只处理H.221帧结构的16行数据,这样就可以在整个解码过程中重复利用奇帧定位搜索态时的缓存区,而且在所有的处理态缓存分离的图像数据只占用整个缓存区的低1472比特,这也是单幅图像H.221帧结构与双幅图像H.221帧结构16行数据中图像数据的最大值。每处理完16行数据,单向握手信号有效一次,有效时间为一个时钟周期。当经历5个循环处理完一整帧数据(80行)后,判断FAS=“1BH”及BAS=“00H”是否同时成立,若成立则在下一个时钟周期进入单幅偶帧处理态,同时设置单向握手信号有效,有效时间为一个时钟周期,否则返回奇帧定位搜索态,单向握手信号无效。单幅偶帧处理态时的处理过程与单幅奇帧处理态时基本类似,所不同在于当处理完一整帧数据后,判断FAS=“4FH”及BAS=“00H”是否同时成立,若成立则在下一个时钟周期进入单幅奇帧处理态,同时设置单向握手信号有效,有效时间为一个时钟周期,否则返回奇帧定位搜索态,单向握手信号无效。如此条件转移,子复帧相互校验,循环往复。双幅图像帧结构的处理过程同理。
图像帧重组操作的工作时钟为10MHz,设置内部缓存区深度为3512比特,图像帧重组操作所涉及到的最大缓存区长度,其中低1472比特为更新数据区,与解码相对应,高2040比特为不包括同步字的图像帧长度:
1.默认处于等待状态,每个时钟周期上升沿,都会检测单向握手信号是否有效,若有效用H.221帧解码缓存区的低1472比特数据覆盖掉图像数据缓存区的低位更新数据区数据,并在下一个时钟周期进入下一步,开始图像帧重组操作,这期间不再检测单向握手信号,不对图像数据缓存区进行更新操作,否则无操作,继续等待;
2.对整个图像数据缓存区以字节为单位进行左向移位,同时搜索帧同步字B8H,当移位计数N=184时,也即低位更新数据区的新数据全部移位到高位移位操作区时,仍未找到同步字,则结束本次组帧操作,并在下一个时钟周期返回上一步,等待图像数据缓存区的再次更新,否则进入下一步;
3.数据使能信号有效,对图像数据缓存区进行比特左向移位,开始以SPI方式串行输出图像数据,如图5所示,当输出计数到255字节时,也即输出完不包括同步字的一整帧图像帧数据后,数据使能信号无效,停止图像数据输出,在下一个时钟周期进入下一步;
4.对图像数据缓存区的剩余数据进行以字节为单位右向移位,直到高位移位操作区的最低位,移位次数计算公式如下:
第2~3步的字节移位次数总和减去低位更新数据区的字节长度,也即(N+255)-184=N+71次,移位结束后,在下一个时钟周期返回第1步。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (1)
1.一种基于FPGA的帧结构处理方法,其特征在于步骤如下:
(1)接收H.221帧结构数据,包括单幅图像帧结构数据和双幅图像帧结构数据;
(2)对接收到的H.221帧结构数据采用状态机机制进行解码,分为奇帧定位搜索态、单幅奇帧处理态、双幅奇帧处理态、单幅偶帧处理态和双幅偶帧处理态五个状态;
a.对接收到的比特流,首先进入奇帧定位搜索态,判断FAS=“4FH”是否成立,若不成立则无操作,若成立则继续判断BAS的值;若BAS=“00H”,则在下一个时钟周期进入单幅奇帧处理态,若BAS=“FFH”,则在下一个时钟周期进入双幅奇帧处理态,其它值时无操作;其中“4FH”代表奇帧,“00H”代表传送单幅图像,“FFH”代表传送双幅图像,FAS为帧定位控制信号,BAS为比特率分配控制信号;
b.单幅奇帧处理态时,根据单幅图像的H.221帧结构分离图像与话音数据,在处理完一整帧数据后,判断FAS=“1BH”及BAS=“00H”是否同时成立,若成立则在下一个时钟周期进入单幅偶帧处理态,同时设置单向握手信号有效,单向握手信号有效时间为一个时钟周期,否则返回奇帧定位搜索态,单向握手信号无效,其中“1BH”代表偶帧;
c.双幅奇帧处理态时,根据双幅图像的H.221帧结构分离图像与话音数据,在处理完一整帧数据后,判断FAS=“1BH”及BAS=“FFH”是否同时成立,若成立则在下一个时钟周期进入双幅偶帧处理态,同时设置单向握手信号有效,单向握手信号有效时间为一个时钟周期,否则返回奇帧定位搜索态,单向握手信号无效;
d.单幅偶帧处理态时,根据单幅图像的H.221帧结构分离图像与话音数据,在处理完一整帧数据后,判断FAS=“4FH”及BAS=“00H”是否同时成立,若成立则在下一个时钟周期进入单幅奇帧处理态,同时设置单向握手信号有效,单向握手信号有效时间为一个时钟周期,否则返回奇帧定位搜索态,单向握手信号无效;
e.双幅偶帧处理态时,根据双幅图像的H.221帧结构分离图像与话音数据,在处理完一整帧数据后,判断FAS=“4FH”及BAS=“FFH”是否同时成立,若成立则在下一个时钟周期进入双幅奇帧处理态,同时设置单向握手信号有效,单向握手信号有效时间为一个时钟周期,否则返回奇帧定位搜索态,单向握手信号无效;
(3)当且仅当单向握手信号有效时,更新一次图像数据缓存区,开始图像帧重组操作;
f.图像数据缓存区分为高位移位操作区与低位更新数据区,默认处于等待状态,在每个时钟周期上升沿检测单向握手信号是否有效,若有效则更新一次低位更新数据区,并在下一个时钟周期进入下一步,期间不再检测单向握手信号,不对低位更新数据区进行更新操作;否则无操作,继续等待;
g.开始图像帧重组操作,对整个图像数据缓存区以字节为单位进行左向移位,搜索帧同步字,当低位更新数据区的数据全部左向移位到高位移位操作区时,仍未找到同步字则结束本次组帧操作,并在下一个时钟周期返回上一步,等待低位更新数据区的再次更新,否则进入下一步;
h.数据使能信号有效,对高位移位操作区进行左向比特移位,开始以SPI方式串行输出图像数据,当输出一整帧图像帧数据后,数据使能信号无效,停止图像数据输出,并在下一个时钟周期进入下一步;
i.将高位移位操作区的剩余数据以字节为单位右向移位到高位移位操作区的最低位,移位结束后在下一个时钟周期返回步骤f;
在上述步骤中,应保证步骤f~i的工作时钟频率大于步骤a~e的工作时钟频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910092384 CN101640796B (zh) | 2009-09-11 | 2009-09-11 | 一种基于fpga的帧结构处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910092384 CN101640796B (zh) | 2009-09-11 | 2009-09-11 | 一种基于fpga的帧结构处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101640796A CN101640796A (zh) | 2010-02-03 |
CN101640796B true CN101640796B (zh) | 2011-01-12 |
Family
ID=41615547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910092384 Active CN101640796B (zh) | 2009-09-11 | 2009-09-11 | 一种基于fpga的帧结构处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101640796B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102510493B (zh) * | 2011-10-09 | 2014-01-15 | 航天恒星科技有限公司 | 一种遥感卫星图像容错显示方法 |
CN105100813A (zh) * | 2014-09-09 | 2015-11-25 | 航天恒星科技有限公司 | 一种视频图像预处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1355631A (zh) * | 2000-11-29 | 2002-06-26 | 深圳市中兴通讯股份有限公司 | 帧定位查找及码流转换电路和方法 |
US6542550B1 (en) * | 1999-01-12 | 2003-04-01 | Thomson Licensing S.A. | Method for processing and apparatus for encoding or decoding audio or video frame data |
CN101516029A (zh) * | 2009-02-27 | 2009-08-26 | 航天恒星科技有限公司 | 一种基于fpga的帧同步字节识别系统及识别方法 |
-
2009
- 2009-09-11 CN CN 200910092384 patent/CN101640796B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542550B1 (en) * | 1999-01-12 | 2003-04-01 | Thomson Licensing S.A. | Method for processing and apparatus for encoding or decoding audio or video frame data |
CN1355631A (zh) * | 2000-11-29 | 2002-06-26 | 深圳市中兴通讯股份有限公司 | 帧定位查找及码流转换电路和方法 |
CN101516029A (zh) * | 2009-02-27 | 2009-08-26 | 航天恒星科技有限公司 | 一种基于fpga的帧同步字节识别系统及识别方法 |
Non-Patent Citations (1)
Title |
---|
周敬利,马彦明,余胜生.ISDN可视电话中H.221协议的设计与实现.《计算机工程与应用》.2002, * |
Also Published As
Publication number | Publication date |
---|---|
CN101640796A (zh) | 2010-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11252098B2 (en) | Data transmission method, transmitter, and receiver | |
US11165698B2 (en) | Method for transmitting service signal by using ethernet channel and communications device | |
EP3706367A1 (en) | Flexible ethernet (flexe)-based service flow transmission method and apparatus | |
WO2017005121A1 (zh) | 一种编码块数据流的发送和接收方法、设备和系统 | |
WO2017012453A1 (zh) | 用于数据传输的方法和设备 | |
CN101548505A (zh) | 多路复用数据流的带宽再利用 | |
CN109951750B (zh) | 基于FlexE一层交叉架构的数据处理方法及系统 | |
US20140237323A1 (en) | Data Transmitter, Data Receiver, and Frame Synchronization Method | |
CN105790883A (zh) | 一种处理信号的方法及通信设备 | |
WO2012065425A1 (zh) | 数据流定帧方法及装置 | |
CN101640796B (zh) | 一种基于fpga的帧结构处理方法 | |
CN101043281A (zh) | 波分复用网络同步数字系列光通道性能检测装置 | |
US8711889B2 (en) | Asynchronous line interface rate adaptation to the physical layer with synchronous lines at the connection layer | |
CN101242594B (zh) | 在采用移动系统的无线电通信蜂窝网中换码器-基站接口的上行帧 | |
CN109274697A (zh) | 数据帧转义方法、数据帧解转义方法、系统及相关装置 | |
CN102821458B (zh) | 一种动态链路调整方法和链路管理设备 | |
CN201690461U (zh) | 多通道dcc通信处理系统 | |
CN115189811B (zh) | 一种灵活以太网中网络时延优化的方法和装置 | |
JP2008236691A (ja) | EoS(EtheroverSONET)通信装置 | |
CN109039537B (zh) | 一种amcc信息的传输方法及系统 | |
CN110890936B (zh) | 一种码块生成方法、接收方法和装置 | |
CN201608732U (zh) | 跨异构网的以太网传输设备 | |
CN102014037A (zh) | 存储转发设备中实现9位数据字节的传输方法及装置 | |
CN1464671A (zh) | 密集波分复用系统光监控通道实现装置和方法 | |
CN101374145A (zh) | 一种速率适配的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |