CN102801969A - 处理多媒体数据的方法、装置及*** - Google Patents

处理多媒体数据的方法、装置及*** Download PDF

Info

Publication number
CN102801969A
CN102801969A CN2012102588413A CN201210258841A CN102801969A CN 102801969 A CN102801969 A CN 102801969A CN 2012102588413 A CN2012102588413 A CN 2012102588413A CN 201210258841 A CN201210258841 A CN 201210258841A CN 102801969 A CN102801969 A CN 102801969A
Authority
CN
China
Prior art keywords
data
queue
address
transmitting device
packing
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.)
Pending
Application number
CN2012102588413A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2012102588413A priority Critical patent/CN102801969A/zh
Publication of CN102801969A publication Critical patent/CN102801969A/zh
Priority to PCT/CN2013/074634 priority patent/WO2014015688A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种处理多媒体数据的方法、装置及***,属于信息技术领域。所述方法包括:多个编码装置中的每个编码装置通过多路编码通道对多媒体数据进行编码,得到多路编码数据;将多路编码数据打包,并将打包数据发送至传输装置中对应的直接内存访问DMA缓存中,由传输装置对DMA缓存中的打包数据进行拆解,并传输拆解后的数据。本发明通过采用多个编码装置与传输装置级联的方式,实现将多路视频编码分摊到多个编码装置上,可以解决单编码装置负荷过重的问题。通过采用DMA传输机制不但能够保证每个编码装置的码流传输的稳定性,而且还能够实现多线程并行处理码流。通过采用打包发送的方式,提升了DMA传输的效率,降低了CPU的功耗。

Description

处理多媒体数据的方法、装置及***
技术领域
本发明涉及信息技术领域,特别涉及一种处理多媒体数据的方法、装置及***。
背景技术
随着多媒体技术的迅速发展,视频已经进入高清时代,其应用范围也越来越广。通过对多媒体数据进行编码及传输等处理以实现多路视频监控,是目前应用范围较广的一种视频应用。为了向用户提供更清晰的视频画面,使视频画面达到高清分辨率,如何对多媒体数据进行编码及传输处理,成为了多路视频监控应用中的一个关键问题。
现有技术在对多媒体数据进行编码及传输处理时,通过单芯片采集多路多媒体数据,并对采集到的多媒体数据进行编码得到编码数据后,将编码数据传输至外部存储设备或进行网络传输。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于现有技术在处理多媒体数据时,其数据采集、数据编码和码流传输过程都在一个芯片上实现,对于多路视频监控而言,多媒体数据的数据量较大,导致现有技术中的芯片编码负荷过重,因而对多媒体数据的处理效率较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种处理多媒体数据的方法、装置及***。所述技术方案如下:
一方面,提供了一种处理多媒体数据的方法,所述方法包括:
多个编码装置中的每个编码装置通过多路编码通道对多媒体数据进行编码,得到多路编码数据;
将所述多路编码数据打包,并将打包数据发送至传输装置中对应的DMA(Direct MemoryAccess,直接内存访问)缓存中,由所述传输装置对所述DMA缓存中的打包数据进行拆解,并传输拆解后的数据。
进一步地,所述将所述多路编码数据打包,具体包括:
依次获取各路编码通道输出的编码数据,并将获取到的每路编码通道输出的编码数据分别打包成一个数据包;
或者,依次获取各路编码通道输出的编码数据,并在获取到的编码数据的大小达到阈值后,将获取到的编码数据打包成一个数据包。
进一步地,所述将打包数据发送至传输装置中对应的直接内存访问DMA缓存中,具体包括:
查询所述对应的DMA缓存的空队列,并获取所述空队列的地址;
根据所述空队列的地址将打包数据发送至所述对应的DMA缓存的空队列中,使所述空队列转为数据队列,所述数据队列的地址与所述空队列的地址相同。
进一步地,所述根据所述空队列的地址将打包数据发送至所述对应的DMA缓存的空队列中,使所述空队列转为数据队列之后,还包括:
向所述传输装置发送数据发送完毕通知,所述数据发送完毕通知中携带了所述数据队列的地址,使所述传输装置根据所述数据队列的地址拆解所述对应的DMA缓存中的打包数据。
进一步地,所述根据所述空队列的地址将打包数据发送至所述对应的DMA缓存的空队列中,使所述空队列转为数据队列之后,还包括:
接收所述传输装置将拆解后的数据传输后发送的数据传输完毕通知,所述数据传输完毕通知中携带了所述数据队列的地址;
根据所述数据队列的地址释放所述对应的DMA缓存的数据队列,使所述数据队列转为空队列。
另一方面,还提供了一种编码装置,所述装置包括:
编码模块,用于通过多路编码通道对多媒体数据进行编码,得到多路编码数据;
打包模块,用于将所述编码模块编码得到的多路编码数据打包;
第一发送模块,用于将所述打包模块得到的打包数据发送至传输装置中对应的直接内存访问DMA缓存中,由所述传输装置对所述DMA缓存中的打包数据进行拆解,并传输拆解后的数据。
进一步地,所述打包模块,具体用于依次获取各个编码通道输出的编码数据,并将获取到的每个编码通道输出的编码数据分别打包成一个数据包;或者,依次获取各个编码通道输出的编码数据,并在获取到的编码数据的大小达到阈值后,将获取到的编码数据打包成一个数据包。
进一步地,所述第一发送模块,具体包括:
查询单元,用于查询所述对应的DMA缓存的空队列;
获取单元,用于获取所述查询单元查询到的空队列的地址;
发送单元,用于根据所述获取单元获取到的空队列的地址将打包数据发送至所述对应的DMA缓存的空队列中,使所述空队列转为数据队列,所述数据队列的地址与所述空队列的地址相同。
进一步地,所述装置,还包括:
第二发送模块,用于向所述传输装置发送数据发送完毕通知,所述数据发送完毕通知中携带了所述数据队列的地址,使所述传输装置根据所述数据队列的地址拆解所述对应的DMA缓存中的打包数据。
进一步地,所述装置,还包括:
接收模块,用于接收所述传输装置将拆解后的数据传输后发送的数据传输完毕通知,所述数据传输完毕通知中携带了所述数据队列的地址;
释放模块,用于根据所述接收模块接收到的数据队列的地址释放所述对应的DMA缓存的数据队列,使所述数据队列转为空队列。
又一方面,还提供了一种处理多媒体数据的方法,所述方法包括:
传输装置获取多个编码装置中的每个编码装置向所述传输装置中对应的直接内存访问DMA缓存发送的打包数据;
对所述DMA缓存中的打包数据进行拆解,并传输拆解后的数据;
其中,所述打包数据为所述每个编码装置通过多路编码通道对多媒体数据进行编码得到多路编码数据后,对所述多路编码数据进行打包得到的数据。
进一步地,所述传输装置获取多个编码装置中的每个编码装置向所述传输装置中对应的直接内存访问DMA缓存发送的打包数据之前,还包括:
接收编码装置发送的数据发送完毕通知,所述数据发送完毕通知中携带了所述对应的DMA缓存的数据队列的地址,所述数据队列中存储了打包数据;
所述传输装置获取多个编码装置中的每个编码装置向所述传输装置中对应的直接内存访问DMA缓存发送的打包数据,具体包括:
根据所述数据发送完毕通知中携带的所述对应的DMA缓存的数据队列的地址获取多个编码装置中的每个编码装置向所述传输装置中对应的直接内存访问DMA缓存发送的打包数据。
进一步地,所述传输拆解后的数据之后,还包括:
向对应的编码装置发送数据传输完毕通知,所述数据传输完毕通知中携带了所述数据队列的地址,使所述编码装置根据所述数据队列的地址释放所述对应的DMA缓存的数据队列,使所述数据队列转为空队列。
再一方面,还提供了一种传输装置,所述装置包括:
获取模块,用于获取多个编码装置中的每个编码装置向所述传输装置中对应的直接内存访问DMA缓存发送的打包数据;其中,所述打包数据为所述每个编码装置通过多路编码通道对多媒体数据进行编码得到多路编码数据后,对所述多路编码数据进行打包得到的数据;
拆解模块,用于对所述获取模块获取到的所述DMA缓存中的打包数据进行拆解;
传输模块,用于传输所述拆解模块拆解后的数据。
进一步地,所述装置,还包括:
接收模块,用于接收编码装置发送的数据发送完毕通知,所述数据发送完毕通知中携带了所述对应的DMA缓存的数据队列的地址,所述数据队列中存储了打包数据;
所述获取模块,具体用于根据所述数据发送完毕通知中携带的所述对应的DMA缓存的数据队列的地址获取多个编码装置中的每个编码装置向所述传输装置中对应的直接内存访问DMA缓存发送的打包数据。
进一步地,所述装置,还包括:
发送模块,用于向对应的编码装置发送数据传输完毕通知,所述数据传输完毕通知中携带了所述数据队列的地址,使所述编码装置根据所述数据队列的地址释放所述对应的DMA缓存的数据队列,使所述数据队列转为空队列。
还提供了一种处理多媒体数据的***,所述***包括:多个编码装置及一个传输装置;
所述多个编码装置中的每个编码装置如上面所述的编码装置;
所述传输装置如上面所述的传输装置。
本发明实施例提供的技术方案带来的有益效果是:
通过采用多个编码装置与传输装置级联的方式,实现将多路视频编码分摊到多个编码装置上,解决了单编码装置编码负荷过重的问题;另外,通过采用DMA传输机制,并由编码装置来控制向传输装置中对应的DMA缓存发送打包数据,使编码装置可以统一管理传输装置中的DMA缓存中的队列,不但能够保证每个编码装置的码流传输的稳定性,而且还能够实现多线程并行处理码流,进而提高多媒体数据的处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种处理多媒体数据的方法流程图;
图2是本发明实施例一提供的另一种处理多媒体数据的方法流程图;
图3是本发明实施例二提供的一种处理多媒体数据的方法流程图;
图4是本发明实施例三提供的一种编码装置结构示意图;
图5是本发明实施例三提供的另一种编码装置的结构示意图;
图6是本发明实施例三提供的又一种编码装置的结构示意图;
图7是本发明实施例三提供的再一种编码装置的结构示意图;
图8是本发明实施例四提供的一种传输装置的结构示意图;
图9是本发明实施例四提供的另一种传输装置的结构示意图;
图10是本发明实施例四提供的又一种传输装置的结构示意图;
图11是本发明实施例五提供的一种处理多媒体数据的***结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本实施例提供了一种处理多媒体数据的方法,以编码装置执行该方法的角度为例,参见图1,本实施例提供的方法流程具体如下:
101:多个编码装置中的每个编码装置通过多路编码通道对多媒体数据进行编码,得到多路编码数据;
102:将多路编码数据打包,并将打包数据发送至传输装置中对应的DMA缓存中,由传输装置对DMA缓存中的打包数据进行拆解,并传输拆解后的数据。
其中,将多路编码数据打包,包括但不限于:
依次获取各路编码通道输出的编码数据,并将获取到的每路编码通道输出的编码数据分别打包成一个数据包;
或者,依次获取各路编码通道输出的编码数据,并在获取到的编码数据的大小达到阈值后,将获取到的编码数据打包成一个数据包。
进一步地,将打包数据发送至传输装置中对应的直接内存访问DMA缓存中,具体包括:
查询对应的DMA缓存的空队列,并获取空队列的地址;
根据空队列的地址将打包数据发送至对应的DMA缓存的空队列中,使空队列转为数据队列,数据队列的地址与空队列的地址相同。
进一步地,根据空队列的地址将打包数据发送至对应的DMA缓存的空队列中,使空队列转为数据队列之后,还包括:
向传输装置发送数据发送完毕通知,数据发送完毕通知中携带了数据队列的地址,使传输装置根据数据队列的地址拆解对应的DMA缓存中的打包数据。
其中,根据空队列的地址将打包数据发送至对应的DMA缓存的空队列中,使空队列转为数据队列之后,还包括:
接收传输装置将拆解后的数据传输后发送的数据传输完毕通知,数据传输完毕通知中携带了数据队列的地址;
根据数据队列的地址释放对应的DMA缓存的数据队列,使数据队列转为空队列。
以传输装置执行该方法的角度为例,参见图2,本实施例提供的方法流程具体如下:
201:传输装置获取多个编码装置中的每个编码装置向传输装置中对应的直接内存访问DMA缓存发送的打包数据;
202:对DMA缓存中的打包数据进行拆解,并传输拆解后的数据。
进一步地,传输装置获取多个编码装置中的每个编码装置向传输装置中对应的直接内存访问DMA缓存发送的打包数据之前,还包括:
接收编码装置发送的数据发送完毕通知,数据发送完毕通知中携带了对应的DMA缓存的数据队列的地址,数据队列中存储了打包数据;
传输装置获取多个编码装置中的每个编码装置向传输装置中对应的直接内存访问DMA缓存发送的打包数据,具体包括:
根据数据发送完毕通知中携带的对应的DMA缓存的数据队列的地址获取多个编码装置中的每个编码装置向传输装置中对应的直接内存访问DMA缓存发送的打包数据。
进一步地,传输拆解后的数据之后,还包括:
向对应的编码装置发送数据传输完毕通知,数据传输完毕通知中携带了数据队列的地址,使编码装置根据数据队列的地址释放对应的DMA缓存的数据队列,使数据队列转为空队列。
本实施例提供的方法,通过采用多个编码装置与传输装置级联的方式,实现将多路视频编码分摊到多个编码装置上,解决了单编码装置编码负荷过重的问题;另外,通过采用DMA传输机制,并由编码装置来控制向传输装置中对应的DMA缓存发送打包数据,使编码装置可以统一管理传输装置中的DMA缓存中的队列,不但能够保证每个编码装置的码流传输的稳定性,而且还能够实现多线程并行处理码流,进而提高多媒体数据的处理效率。
为了更加清楚地阐述上述实施例提供的方法,结合上述内容,以如下实施例二为例,对处理多媒体数据的方法进行举例说明,详见如下实施例二:
实施例二
本实施例提供了一种处理多媒体数据的方法,结合上述实施例一的内容,为了便于说明,本实施例以两个编码装置,一个传输装置实现处理多媒体数据为例,对本实施例提供的方法进行详细地举例说明。参见图3,本实施例提供的方法流程具体如下:
301:两个编码装置中的每个编码装置通过多路编码通道对多媒体数据进行编码,得到多路编码数据;
针对该步骤,编码装置对多媒体数据进行编码的方式可依据现有的编码芯片对多媒体数据进行编码的方式实现,本实施例对此不作具体限定。例如,每个编码装置对应4路编码通道,通过每路编码通道对多媒体数据进行编码,得到4路编码数据。
302:每个编码装置将多路编码数据打包,并将打包数据发送至传输装置中对应的DMA缓存中;
其中,DMA缓存为传输装置中的DMA缓存,为了使每个编码装置能够将打包数据传输至传输装置,本实施例提供的方法中,可在传输装置中分别设置与每个编码装置对应的DMA缓存,也就是说,一个编码装置对应传输装置中的一个DMA缓存,编码装置的个数与传输装置中DMA缓存的个数相同,以使不同编码装置将其打包数据发送至各自对应的DMA缓存中。除此之外,还可在传输装置处仅设置一个DMA缓存,并区分各个编码装置对应该一个DMA缓存中的哪部分,由此同样能够实现编码装置将其打包数据发送至DMA缓存中的对应位置。当然,编码装置与DMA缓存的对应关系还可以有其他方式,本实施例对此不作具体限定。
具体地,每个编码装置将多路编码打包时,采用的打包方式包括但不限于如下两种方式中的一种:
第一种方式:依次获取各路编码通道输出的编码数据,并将获取到的每路编码通道输出的编码数据分别打包成一个数据包;
针对该种方式,以编码装置有3路编码通道为例,编码装置获取第1路编码通道编码得到的编码数据,并将其打包成一个数据包,之后再获取第2路编码通道编码得到的编码数据,并将其打包成一个数据包,之后再获取第3路编码通道编码得到的编码数据,并将其打包成一个数据包。或者,分别获取3路编码通道编码得到的编码数据,再将获取到的3路编码数据分别打包成一个数据包。
第二种方式:依次获取各路编码通道输出的编码数据,并在获取到的编码数据的大小达到阈值后,将获取到的编码数据打包成一个数据包。
针对该种方式,其在依次获取各路编码通道输出的编码数据时,具体过程为:如果一路编码通道在获取编码数据时刻无编码数据输出,则立即跳到下一路编码通道获取编码数据;如果一路编码通道在获取编码数据时刻有编码数据输出,则立即将该编码数据取出;依次循环从各路编码通道取数据。例如,当编码装置存在3路编码通道时,分别为通道1、通道2和通道3,先从通道1开始取数据,如果通道1此时有编码数据,则获取通道1中的编码数据,并跳到下一通道继续开始获取编码数据;如果通道1此时无编码数据,则立即跳到下一通道获取编码数据;依次循环从3路通道中取编码数据,直到获取到的编码数据的大小达到阈值,将获取到的编码数据打包成一个数据包。具体阈值大小,可以为100兆,150兆或是其他数值,本实施例不对阈值大小进行具体限定。
进一步地,编码装置将打包数据发送至传输装置中对应的DMA缓存中时,可先查询对应的DMA缓存的空队列,并获取该空队列的地址;根据该空队列的地址将打包数据发送至对应的DMA缓存的空队列中,使该空队列转为数据队列,数据队列的地址与该空队列的地址相同。当然,除了上述发送方式外,编码装置还可以采用其他发送方式将打包数据发送至DMA缓存,本实施例不对将打包数据发送至传输装置中对应的DMA缓存中的发送方式进行具体限定。
无论采用哪种打包方式得到打包数据,以及采用哪种发送方式将其发送,针对上述第一种打包方式,编码装置在将获取到的每路编码通道输出的编码数据分别打包成一个数据包之后,可即刻将其发送至传输装置中对应的DMA缓存中,由于在将每路编码通道输出的编码数据分别打包成一个数据包之后,即刻将其进行发送,因而可保证每个编码通道输出的编码数据能够及时传输;针对上述第二种打包方式,编码装置在获取到的编码数据的大小达到阈值后,将获取到的编码数据打包成一个数据包,再将其发送至传输装置中对应的DMA缓存中,由于编码装置是将达到阈值的编码数据打包成一个数据包进行发送,因而实现了大块数据的传输,不仅可以降低数据传输效率及传输次数,还可降低因多次传输数据而浪费的CPU(Central Processing Unit,中央处理器)消耗。
303:传输装置获取编码装置向传输装置中对应的DMA缓存发送的打包数据;
针对该步骤,传输装置获取编码装置向传输装置中对应的DMA缓存发送的打包数据的方式包括但不限于如下两种方式中的一种;
第一种方式:传输装置每隔预设周期主动获取编码装置向传输装置中对应的DMA缓存发送的打包数据;
针对该种方式,以预设周期为5秒为例,传输装置每隔5秒便从传输装置中的DMA缓存中获取数据,以DMA缓存有10路队列为例,10路队列依次编号为1至10。传输装置每隔5秒便遍历一次DMA缓存中的所有队列。如果传输装置查询到5号队列为数据队列,包含编码装置向传输装置中对应的DMA缓存发送的打包数据,则立即将打包数据获取并进行拆解。其中,预设周期大小除上述的5秒外,还可以为其他大小,本实施例不对预设周期的具体大小进行限定。
第二种方式:以预设的触发条件触发传输装置被动获取编码装置向传输装置中对应的DMA缓存发送的打包数据;
针对该种方式,以预设的触发条件为编码装置将打包数据发送至对应的DMA缓存的空队列中之后,向传输装置发送数据发送完毕通知,在该数据发送完毕通知中携带了数据队列的地址为例,通过传输装置接收该编码装置发送的数据发送完毕通知,触发传输装置根据该数据队列的地址获取对应DMA缓存中数据队列中的打包数据。其中,除以编码装置向传输装置发送数据发送完毕通知作为预设的触发条件之外,还可以预设其他的触发条件,本实施例不对触发传输装置被动获取编码装置向传输装置中对应的DMA缓存发送的打包数据的触发条件进行限定。
当然,除了上述传输装置获取打包数据的两种方式外,传输装置还可以采用其他获取方式获取打包数据,本实施例不对传输装置获取编码装置向传输装置中对应的DMA缓存发送打包数据的获取方式进行具体限定。
304:传输装置对DMA缓存中的打包数据进行拆解,并传输拆解后的数据。
针对该步骤,传输装置通过上述步骤303获取到打包数据后,将打包数据进行拆解,具体拆解方式可按照现有的解包方式实现,本实施例对此不做具体限定。无论采用哪种拆解方式对打包数据进行拆解,均可拆解出各路编码数据,并将拆解后的各路编码数据进行传输,例如,将拆解后的数据传输至存储空间进行存盘处理或将其进行网络传输。
进一步地,传输装置将拆解后的数据进行传输后,存储该拆解后的数据所对应的打包数据的数据队列可被释放,进而实现资源的重复利用。具体实现时,在传输装置将拆解后的数据传输完毕后,由该传输装置向对应的编码装置发送数据传输完毕通知,且在该数据传输完毕通知中携带数据队列的地址,以使编码装置根据该数据队列的地址释放对应传输装置中的DMA缓存的数据队列,即使该数据队列转为空队列,以便于后续重复利用。当然,除上述传输装置通知编码装置释放数据队列的方式外,还可以采取其他通知方式,本实施例对此不作具体限定。
另外,由于每个编码装置对应一个传输装置中的DMA缓存,或是对应一个DMA缓存中的一部分,因此,为了使传输装置能够明确当前需释放的数据队列与哪个编码装置相对应,本实施例提供的方法在上述步骤303中,由编码装置向传输装置发送数据发送完毕通知时,可通过该数据发送完毕通知携带发送打包数据的编码装置的标识,以使传输装置通过该标识区分是哪一个编码装置向传输装置发送了打包数据,即当前需释放的数据队列与哪个编码装置相对应。编码装置的具体标识,可以为编码装置的编号、MAC地址或其他标识,本实施例不对编码装置的具体标识进行限定。以不同编码装置对应不同编号,将编码装置的编号作为编码装置的标识为例,编号为1的编码装置向传输装置发送打包数据后,向传输装置发送数据发送完毕通知,该数据发送完毕通知中除了携带存储打包数据的数据队列的地址外,还携带了发送该打包数据的编码装置的编号1,则传输装置在将该数据队列中的打包数据拆解传输之后,向编号为1的编码装置返回携带该数据队列的地址的传输完毕通知,使编号为1的编码装置释放数据传输完毕通知中携带的数据队列的地址所对应的数据队列,即使数据队列转为空队列,而该空队列可在下次发送打包数据时继续使用。
需要说明的是,以上内容仅以通过两个编码装置与一个传输装置实现处理多媒体数据为例进行说明,实际应用中,编码装置的数量还可以为其他个数,具体可依据实际编码需求进行设置,本实施例不对编码装置的具体数量进行限定。当编码装置的数量为一个时,一个编码装置与一个传输装置同样能够采用上述方法实现处理多媒体数据,其具体实现过程与上述步骤301至步骤304的流程一致,此处不再赘述。
本实施例提供的方法,通过采用多个编码装置与传输装置级联的方式,实现将多路视频编码分摊到多个编码装置上,解决了单编码装置编码负荷过重的问题;另外,通过采用DMA传输机制,并由编码装置来控制向传输装置中对应的DMA缓存发送打包数据,使编码装置可以统一管理传输装置中的DMA缓存中的队列,不但能够保证每个编码装置的码流传输的稳定性,而且还能够实现多线程并行处理码流,进而提高多媒体数据的处理效率。
实施例三
本实施例提供了一种编码装置,该装置用于执行上述实施例一及实施例二提供的处理多媒体数据的方法中编码装置的功能,参见图4,该装置包括:
编码模块41,用于通过多路编码通道对多媒体数据进行编码,得到多路编码数据;
打包模块42,用于将编码模块41编码得到的多路编码数据打包;
第一发送模块43,用于将打包模块42得到的打包数据发送至传输装置中对应的直接内存访问DMA缓存中,由传输装置对DMA缓存中的打包数据进行拆解,并传输拆解后的数据。
进一步地,打包模块42,具体用于依次获取各个编码通道输出的编码数据,并将获取到的每个编码通道输出的编码数据分别打包成一个数据包;或者,依次获取各个编码通道输出的编码数据,并在获取到的编码数据的大小达到阈值后,将获取到的编码数据打包成一个数据包。
参见图5,第一发送模块43,具体包括:
查询单元431,用于查询对应的DMA缓存的空队列;
获取单元432,用于获取查询单元431查询到的空队列的地址;
发送单元433,用于根据获取单元432获取到的空队列的地址将打包数据发送至对应的DMA缓存的空队列中,使空队列转为数据队列,数据队列的地址与空队列的地址相同。
参见图6,该装置,还包括:
第二发送模块44,用于向传输装置发送数据发送完毕通知,数据发送完毕通知中携带了数据队列的地址,使传输装置根据数据队列的地址拆解对应的DMA缓存中的打包数据。
参见图7,该装置,还包括:
接收模块45,用于接收传输装置将拆解后的数据传输后发送的数据传输完毕通知,数据传输完毕通知中携带了数据队列的地址;
释放模块46,用于根据接收模块45接收到的数据队列的地址释放对应的DMA缓存的数据队列,使数据队列转为空队列。
本实施例提供的编码装置,通过多个编码装置与传输装置级联的方式,实现将多路视频编码分摊到多个编码装置上,解决了单编码装置编码负荷过重的问题;另外,通过采用DMA传输机制,并由编码装置来控制向传输装置中对应的DMA缓存发送打包数据,使编码装置可以统一管理传输装置中的DMA缓存中的队列,不但能够保证每个编码装置的码流传输的稳定性,而且还能够实现多线程并行处理码流,进而提高多媒体数据的处理效率。
实施例四
本实施例提供了一种传输装置,该装置用于执行上述实施例一和实施例二提供的处理多媒体数据的方法中传输装置执行的功能。参见图8,该装置包括:
获取模块81,用于获取多个编码装置中的每个编码装置向传输装置中对应的直接内存访问DMA缓存发送的打包数据;其中,打包数据为每个编码装置通过多路编码通道对多媒体数据进行编码得到多路编码数据后,对多路编码数据进行打包得到的数据;
拆解模块82,用于对获取模块81获取到的DMA缓存中的打包数据进行拆解;
传输模块83,用于传输拆解模块82拆解后的数据。
参见图9,该装置,还包括:
接收模块84,用于接收编码装置发送的数据发送完毕通知,该数据发送完毕通知中携带了对应的DMA缓存的数据队列的地址,该数据队列中存储了打包数据;
获取模块81,具体用于根据数据发送完毕通知中携带的对应的DMA缓存的数据队列的地址获取多个编码装置中的每个编码装置向传输装置中对应的直接内存访问DMA缓存发送的打包数据。
参见图10,该装置,还包括:
发送模块85,用于向对应的编码装置发送数据传输完毕通知,该数据传输完毕通知中携带了数据队列的地址,使编码装置根据该数据队列的地址释放所述对应的DMA缓存的数据队列,使数据队列转为空队列。
本实施例提供的传输装置,通过多个编码装置与其级联的方式,实现将多路视频编码分摊到多个编码装置上,解决了单编码装置编码负荷过重的问题;另外,通过编码装置采用DMA传输机制,并由编码装置来控制向传输装置中对应的DMA缓存发送打包数据,使编码装置可以统一管理传输装置中的DMA缓存中的队列,不但能够保证每个编码装置的码流传输的稳定性,而且还能够实现多线程并行处理码流,进而提高多媒体数据的处理效率。
实施例五
本实施例提供了一种处理多媒体数据的***,参见图11,该***包括:
多个编码装置1101及一个传输装置1102;
其中,编码装置1101如上述实施例三提供的编码装置;
传输装置1102如上述实施例四提供的传输装置。
本实施例提供的***,通过多个编码装置与传输装置级联的方式,实现将多路视频编码分摊到多个编码装置上,解决了单编码装置编码负荷过重的问题;另外,通过采用DMA传输机制,并由编码装置来控制向传输装置中对应的DMA缓存发送打包数据,使编码装置可以统一管理传输装置中的DMA缓存中的队列,不但能够保证每个编码装置的码流传输的稳定性,而且还能够实现多线程并行处理码流,进而提高多媒体数据的处理效率。
需要说明的是:上述实施例提供的***中,传输装置可与一个编码装置级联,也可与多个编码装置级联,当多个编码装置与传输装置进行级联时,处理对媒体数据的方式详见实施例二所述,此处不再赘述。上述实施例提供的编码装置和传输装置在对多媒体数据进行处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的编码装置、传输装置、处理多媒体数据的***与处理多媒体数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种处理多媒体数据的方法,其特征在于,所述方法包括:
多个编码装置中的每个编码装置通过多路编码通道对多媒体数据进行编码,得到多路编码数据;
将所述多路编码数据打包,并将打包数据发送至传输装置中对应的直接内存访问DMA缓存中,由所述传输装置对所述DMA缓存中的打包数据进行拆解,并传输拆解后的数据。
2.根据权利要求1所述的方法,其特征在于,所述将所述多路编码数据打包,具体包括:
依次获取各路编码通道输出的编码数据,并将获取到的每路编码通道输出的编码数据分别打包成一个数据包;
或者,依次获取各路编码通道输出的编码数据,并在获取到的编码数据的大小达到阈值后,将获取到的编码数据打包成一个数据包。
3.根据权利要求1或2所述的方法,其特征在于,所述将打包数据发送至传输装置中对应的直接内存访问DMA缓存中,具体包括:
查询所述对应的DMA缓存的空队列,并获取所述空队列的地址;
根据所述空队列的地址将打包数据发送至所述对应的DMA缓存的空队列中,使所述空队列转为数据队列,所述数据队列的地址与所述空队列的地址相同。
4.根据权利要求3所述的方法,其特征在于,所述根据所述空队列的地址将打包数据发送至所述对应的DMA缓存的空队列中,使所述空队列转为数据队列之后,还包括:
向所述传输装置发送数据发送完毕通知,所述数据发送完毕通知中携带了所述数据队列的地址,使所述传输装置根据所述数据队列的地址拆解所述对应的DMA缓存中的打包数据。
5.根据权利要求3或4所述的方法,其特征在于,所述根据所述空队列的地址将打包数据发送至所述对应的DMA缓存的空队列中,使所述空队列转为数据队列之后,还包括:
接收所述传输装置将拆解后的数据传输后发送的数据传输完毕通知,所述数据传输完毕通知中携带了所述数据队列的地址;
根据所述数据队列的地址释放所述对应的DMA缓存的数据队列,使所述数据队列转为空队列。
6.一种编码装置,其特征在于,所述装置包括:
编码模块,用于通过多路编码通道对多媒体数据进行编码,得到多路编码数据;
打包模块,用于将所述编码模块编码得到的多路编码数据打包;
第一发送模块,用于将所述打包模块得到的打包数据发送至传输装置中对应的直接内存访问DMA缓存中,由所述传输装置对所述DMA缓存中的打包数据进行拆解,并传输拆解后的数据。
7.根据权利要求6所述的装置,其特征在于,所述打包模块,具体用于依次获取各个编码通道输出的编码数据,并将获取到的每个编码通道输出的编码数据分别打包成一个数据包;或者,依次获取各个编码通道输出的编码数据,并在获取到的编码数据的大小达到阈值后,将获取到的编码数据打包成一个数据包。
8.根据权利要求6或7所述的装置,其特征在于,所述第一发送模块,具体包括:
查询单元,用于查询所述对应的DMA缓存的空队列;
获取单元,用于获取所述查询单元查询到的空队列的地址;
发送单元,用于根据所述获取单元获取到的空队列的地址将打包数据发送至所述对应的DMA缓存的空队列中,使所述空队列转为数据队列,所述数据队列的地址与所述空队列的地址相同。
9.根据权利要求8所述的装置,其特征在于,所述装置,还包括:
第二发送模块,用于向所述传输装置发送数据发送完毕通知,所述数据发送完毕通知中携带了所述数据队列的地址,使所述传输装置根据所述数据队列的地址拆解所述对应的DMA缓存中的打包数据。
10.根据权利要求8或9所述的装置,其特征在于,所述装置,还包括:
接收模块,用于接收所述传输装置将拆解后的数据传输后发送的数据传输完毕通知,所述数据传输完毕通知中携带了所述数据队列的地址;
释放模块,用于根据所述接收模块接收到的数据队列的地址释放所述对应的DMA缓存的数据队列,使所述数据队列转为空队列。
11.一种处理多媒体数据的方法,其特征在于,所述方法包括:
传输装置获取多个编码装置中的每个编码装置向所述传输装置中对应的直接内存访问DMA缓存发送的打包数据;
对所述DMA缓存中的打包数据进行拆解,并传输拆解后的数据;
其中,所述打包数据为所述每个编码装置通过多路编码通道对多媒体数据进行编码得到多路编码数据后,对所述多路编码数据进行打包得到的数据。
12.根据权利要求11所述的方法,其特征在于,所述传输装置获取多个编码装置中的每个编码装置向所述传输装置中对应的直接内存访问DMA缓存发送的打包数据之前,还包括:
接收编码装置发送的数据发送完毕通知,所述数据发送完毕通知中携带了所述对应的DMA缓存的数据队列的地址,所述数据队列中存储了打包数据;
所述传输装置获取多个编码装置中的每个编码装置向所述传输装置中对应的直接内存访问DMA缓存发送的打包数据,具体包括:
根据所述数据发送完毕通知中携带的所述对应的DMA缓存的数据队列的地址获取多个编码装置中的每个编码装置向所述传输装置中对应的直接内存访问DMA缓存发送的打包数据。
13.根据权利要求12所述的方法,其特征在于,所述传输拆解后的数据之后,还包括:
向对应的编码装置发送数据传输完毕通知,所述数据传输完毕通知中携带了所述数据队列的地址,使所述编码装置根据所述数据队列的地址释放所述对应的DMA缓存的数据队列,使所述数据队列转为空队列。
14.一种传输装置,其特征在于,所述装置包括:
获取模块,用于获取多个编码装置中的每个编码装置向所述传输装置中对应的直接内存访问DMA缓存发送的打包数据;其中,所述打包数据为所述每个编码装置通过多路编码通道对多媒体数据进行编码得到多路编码数据后,对所述多路编码数据进行打包得到的数据;
拆解模块,用于对所述获取模块获取到的所述DMA缓存中的打包数据进行拆解;
传输模块,用于传输所述拆解模块拆解后的数据。
15.根据权利要求14所述的装置,其特征在于,所述装置,还包括:
接收模块,用于接收编码装置发送的数据发送完毕通知,所述数据发送完毕通知中携带了所述对应的DMA缓存的数据队列的地址,所述数据队列中存储了打包数据;
所述获取模块,具体用于根据所述数据发送完毕通知中携带的所述对应的DMA缓存的数据队列的地址获取多个编码装置中的每个编码装置向所述传输装置中对应的直接内存访问DMA缓存发送的打包数据。
16.根据权利要求15所述的装置,其特征在于,所述装置,还包括:
发送模块,用于向对应的编码装置发送数据传输完毕通知,所述数据传输完毕通知中携带了所述数据队列的地址,使所述编码装置根据所述数据队列的地址释放所述对应的DMA缓存的数据队列,使所述数据队列转为空队列。
17.一种处理多媒体数据的***,其特征在于,所述***包括:多个编码装置及一个传输装置;
其中,所述多个编码装置中的每个编码装置如所述权利要求6至10中任一权利要求所述的编码装置;
所述传输装置如所述权利要求14至16中任一权利要求所述的传输装置。
CN2012102588413A 2012-07-25 2012-07-25 处理多媒体数据的方法、装置及*** Pending CN102801969A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2012102588413A CN102801969A (zh) 2012-07-25 2012-07-25 处理多媒体数据的方法、装置及***
PCT/CN2013/074634 WO2014015688A1 (zh) 2012-07-25 2013-04-24 处理多媒体数据的方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012102588413A CN102801969A (zh) 2012-07-25 2012-07-25 处理多媒体数据的方法、装置及***

Publications (1)

Publication Number Publication Date
CN102801969A true CN102801969A (zh) 2012-11-28

Family

ID=47200924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012102588413A Pending CN102801969A (zh) 2012-07-25 2012-07-25 处理多媒体数据的方法、装置及***

Country Status (2)

Country Link
CN (1) CN102801969A (zh)
WO (1) WO2014015688A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014015688A1 (zh) * 2012-07-25 2014-01-30 华为技术有限公司 处理多媒体数据的方法、装置及***
CN105306949A (zh) * 2015-12-04 2016-02-03 北京中星微电子有限公司 视频编码方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150485A (zh) * 2007-11-15 2008-03-26 曙光信息产业(北京)有限公司 一种零拷贝缓冲区队列网络数据发送的管理方法
CN102301730A (zh) * 2011-07-18 2011-12-28 华为技术有限公司 多路音视频传输和处理方法、装置及***

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100091888A1 (en) * 2008-10-13 2010-04-15 General Instrument Corporation Multi-Rate Encoder with GOP Alignment
CN101668160B (zh) * 2009-09-10 2012-08-29 华为终端有限公司 视频图像数据处理方法、装置及视频会议***及终端
CN101662637A (zh) * 2009-09-25 2010-03-03 深圳创维数字技术股份有限公司 一种播放一个传输码流中全部打包节目的方法及机顶盒
CN102801969A (zh) * 2012-07-25 2012-11-28 华为技术有限公司 处理多媒体数据的方法、装置及***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150485A (zh) * 2007-11-15 2008-03-26 曙光信息产业(北京)有限公司 一种零拷贝缓冲区队列网络数据发送的管理方法
CN102301730A (zh) * 2011-07-18 2011-12-28 华为技术有限公司 多路音视频传输和处理方法、装置及***

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014015688A1 (zh) * 2012-07-25 2014-01-30 华为技术有限公司 处理多媒体数据的方法、装置及***
CN105306949A (zh) * 2015-12-04 2016-02-03 北京中星微电子有限公司 视频编码方法和装置
CN105306949B (zh) * 2015-12-04 2020-05-26 中星技术股份有限公司 视频编码方法和装置

Also Published As

Publication number Publication date
WO2014015688A1 (zh) 2014-01-30

Similar Documents

Publication Publication Date Title
US9152580B1 (en) Method and apparatus for transferring data between a host and an embedded device
CN1078798C (zh) Mpeg2传送译码器
EP3005129B1 (en) Adaptive interrupt coalescing in a converged network
JP2012529086A (ja) 通信ネットワークによる情報の安全な記憶及び速度を増した送信
JP2015522968A5 (zh)
CN105338297A (zh) 一种视频数据存储及回放***、装置和方法
TW201731224A (zh) 熵編碼及解碼方案
CN104780333A (zh) 基于fpga的高带宽视频源接口适配装置
CN103095305A (zh) 一种硬件lz77的压缩实现***及方法
CN102355572A (zh) 一种基于云计算的大型高清视频监控***
US8885480B2 (en) Packet priority in a network processor
CN202931289U (zh) 一种硬件lz77压缩实现***
CN102638487A (zh) 大型遥测地震仪高性能数据传输方法
JP2005130470A5 (zh)
CN102625082A (zh) 一种视频监控***
RU2008131952A (ru) Быстрое переключение каналов в мультимедийной системе широковещания
CN102801969A (zh) 处理多媒体数据的方法、装置及***
CN109151505A (zh) 一种视频转码方法、***、装置及计算机可读存储介质
CN103067690A (zh) 基于智能监控平台的均衡传输音视频数据的方法及装置
CN104462197A (zh) 一种从打印数据中获取信息的方法
CN101777037A (zh) 一种查找引擎实时***内数据传输的方法和***
CN102625105A (zh) 基于单芯片的多通道视频编解码数据传输方法及装置
US11700013B2 (en) System and method for data compaction and security with extended functionality
JP2009049506A5 (zh)
CN109688123A (zh) 基于gm二维码的跨网***间单向数据传输的方法和***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20121128