CN101820543A - 一种与DMA相结合的ping-pong结构快速数据存取方法 - Google Patents
一种与DMA相结合的ping-pong结构快速数据存取方法 Download PDFInfo
- Publication number
- CN101820543A CN101820543A CN 201010138003 CN201010138003A CN101820543A CN 101820543 A CN101820543 A CN 101820543A CN 201010138003 CN201010138003 CN 201010138003 CN 201010138003 A CN201010138003 A CN 201010138003A CN 101820543 A CN101820543 A CN 101820543A
- Authority
- CN
- China
- Prior art keywords
- data
- ping
- buffer
- pong
- dma
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及数字视频编解码技术,特别是指一种与DMA相结合的ping-pong结构快速数据存取方法,该方法应用于视频编码器和视频解码器中,利用DSP中片内外存储器及DMA数据搬移方法,在片内存储器中开辟两块较小的ping-pong区域,将需要处理的数据在处理之前使用DMA提前准备好放在ping-pong buffer中,节省了处理之前数据搬运的等待时间,提高了编解码效率。
Description
技术领域
本发明涉及数字视频编解码技术,特别是指一种与DMA(图像处理芯片中的数据搬运方式)相结合的ping-pong(乒乓)结构快速数据存取方法。
背景技术
在视频监控领域中常用的数字录像设备DVR,通常由视频数据采集单元、图像处理单元、存储及显示设备构成。其中在图像处理单元通常采用可进行视频压缩标准软编程的DSP。
在视频编解码的过程中,一帧图像可以分为若干个大小一定的矩形区域,以矩形区域为处理单位,如在H.264标准中,每个矩形区域大小为16×16,称为一个宏块。对每一个宏块可以选择帧间或帧内编码算法。通过使用基于块的运动矢量,帧间编码可以充分利用不同图像之间的时域统计依赖性。帧内编码采用不同的空间预测模式,对一幅图像中的空间统计依赖性加以利用;对预测残差进行变换,去除变换块内部像素之间的空间相关性以获得进一步的压缩;对变换系数进行量化;最终形成了与源图像非常接近的近似图像,同时丢弃一些视觉上不重要的信息;最后,再将运动矢量或帧内预测模式与量化后的变换系数信息合并在一起,进行变长编码或算术编码。
在DSP芯片中,一般有片内内存和片外内存两种内存,片外内存容量大,但是存取速度慢;片内内存存取速度快,但是容量有限,需要合理利用。在编解码的每一个过程中,如帧间编码,在进行运动搜索时需要当前宏块的数据及参考帧数据,如果需要的数据在片外存储器上,对上述数据的读取就需要耗费大量的时间。这种访存密集型操作,占用编解码大部分时间,是编解码的主要瓶颈。
在DSP中一种常用的数据搬移方法是DMA,使用DMA进行数据搬移,可以不需要CPU的干预,启动后DMA自己在后台进行数据搬移。
传统方法流程,如图1所示:在传统方法中,在进行算法运算之前,需要等待数据搬运完成,在DSP中数据的存取过程是最耗时的操作,所以此等待耗费大量编解码时间,是编解码的瓶颈。
发明内容
本发明的目的在于提供一种与DMA相结合的ping-pong结构快速数据存取方法,以减少数据存取的次数,提高编解码效率。
本发明的技术方案是:
一种与DMA相结合的ping-pong结构快速数据存取方法,其特征在于:该方法应用于视频编码器和视频解码器中,利用DSP中片内外存储器及DMA数据搬移方法,在片内存储器中开辟两块较小的ping-pong区域,将需要处理的数据在处理之前使用DMA提前准备好放在ping-pong buffer中,以节省处理之前数据搬运的等待时间,提高编解码效率。
一种与DMA相结合的ping-pong结构快速数据存取方法,其方法步骤包括:
步骤一、在片内存储器上开辟ping-pong buffer区域:
A)、根据具体的算法,计算需要的ping-pong buffer的大小;
B)、在片内存储器开辟两块大小为M×N的内存区域,一个为pingbuffer,一个为pong buffer;
步骤二、往ping buffer中准备数据:
C)、首先,往ping buffer中使用DMA搬运第一个需要处理的宏块的数据;
D)、等待ping buffer中数据搬运完成;
步骤三、ping-pong buffer数据处理与准备并行过程:
E)、对ping buffer中的当前宏块数据进行处理,同时往pong buffer中使用DMA搬运下一个宏块需要的数据。由于DMA启动后可以不受CPU干预,自动在后台进行数据搬运,所以当前宏块的处理过程和下一个宏块数据的准备过程,这两个过程可以并行执行;
F)、等待ping buffer中数据处理完成和pong buffer中宏块需要的数据搬运完成,此等待过程并非两者的累加,而为两者中时间较长的一方;
G)、对下一个宏块进行处理,也即处理pong buffer中的数据;同时往ping buffer中准备再下一个宏块需要的数据;并且pong buffer中数据的处理过程和ping buffer的数据搬运过程两者并行执行;
H)、等待ping buffer中数据搬运完成和pong buffer中数据处理完成,此等待过程并非两者的累加,而为两者中时间较长的一方;
I)、对于一帧数据重复E~H的过程;
步骤四、处理最后一个ping buffer或pong buffer中的数据:
J)、等待最后一个ping buffer或pong buffer中数据准备完成;
K)、处理最后一个ping buffer或pong buffer中的数据;
L)、一帧处理完成。
本发明的优点在于:本发明在处理ping buffer中的数据的同时,在pong buffer中准备下一个宏块处理需要的数据,并且此数据搬运过程在后台进行,ping buffer中数据的处理时间和pong buffer中数据的搬运时间,不是两者的累加,而是两者中较长的一个;当下一个宏块进行处理时,需要的数据已经准备完毕,省去了等待时间,将数据处理和数据准备进行执行,大大提高了编解码效率。
附图说明
图1为传统方法流程图。
图2为本发明宏块帧内预测使用数据示意图。
图3为本发明方法流程图。
具体实施方式
下面就结合说明书附图及对本发明作进一步的说明。
实施例1:以H.264视频编码器帧内预测在DM6467上的实现为例而具体说明本发明一种与DMA相结合的ping-pong结构快速数据存取方法的实施步骤:
如图2所示,帧内预测过程中当前宏块进行帧内预测时,需要当前宏块数据,以及与当前宏块相邻的左边一个宏块的右面8列数据,即当前16×16的宏块进行帧内预测时,需要的数据量为16×24(16行,24列)。
如图3所示,本发明的方法步骤包括:
步骤一、在片内存储器上开辟ping-pong buffer区域:
A)、根据帧内预测算法,需要的ping-pong buffer的大小为16×24;
B)、在片内存储器开辟两块大小为16×24的内存区域,一个为pingbuffer,一个为pong buffer;
步骤二、往ping buffer中准备数据:
C)、首先,往ping buffer中使用DMA搬运第一个宏块进行帧内预测时需要的16×24大小的数据;
D)、等待ping buffer中数据搬运完成;
步骤三、ping-pong buffer数据处理与准备并行过程:
E)、使用ping buffer中的数据,对当前宏块进行帧内预测;同时往pong buffer中使用DMA搬运16×24大小的下一个宏块帧内预测需要的数据;由于DMA启动后可以不受CPU干预,自动在后台进行数据搬运,所以当前宏块的帧内预测处理过程和下一个宏块数据的准备过程,这两个过程可以并行执行;
F)、等待ping buffer中帧内预测算法完成和pong buffer中16×24的数据搬运完成,此等待过程并非两者的累加,而为两者中时间较长的一方;
G)、对下一个宏块进行帧内预测,也即处理pong buffer中的数据;同时往ping buffer中搬运16×24大小的再下一个宏块帧内预测需要的数据;并且pong buffer中数据的处理过程和ping buffer的数据搬运过程两者并行执行;
H)、等待pong buffer中帧内预测算法完成和ping buffer中16×24的数据搬运完成,此等待过程并非两者的累加,而为两者中时间较长的一方;
I)、对于一帧图像中所有宏块的帧内预测过程,重复E~H的过程即可;
步骤四、处理最后一个ping buffer或pong buffer中的数据:
J)、等待最后一个ping buffer或pong buffer中16×24的数据DMA搬运完成;
K)、处理ping buffer或pong buffer中的数据;
L)、一帧图像帧内预测过程处理完成。
Claims (2)
1.一种与DMA相结合的ping-pong结构快速数据存取方法,其特征在于:该方法应用于视频编码器和视频解码器中,利用DSP中片内外存储器及DMA数据搬移方法,在片内存储器中开辟两块较小的ping-pong区域,将需要处理的数据在处理之前使用DMA提前准备好放在ping-pong buffer中,以节省处理之前数据搬运的等待时间,提高编解码效率。
2.一种与DMA相结合的ping-pong结构快速数据存取方法,其特征在于:该方法步骤包括:
步骤一、在片内存储器上开辟ping-pong buffer区域:
A)、根据具体的算法,计算需要的ping-pong buffer的大小;
B)、在片内存储器开辟两块大小为M×N的内存区域,一个为pingbuffer,一个为pong buffer;
步骤二、往ping buffer中准备数据:
C)、首先,往ping buffer中使用DMA搬运第一个需要处理的宏块的数据;
D)、等待ping buffer中数据搬运完成;
步骤三、ping-pong buffer数据处理与准备并行过程:
E)、对ping buffer中的当前宏块数据进行处理,同时往pong buffer中使用DMA搬运下一个宏块需要的数据。由于DMA启动后可以不受CPU干预,自动在后台进行数据搬运,所以当前宏块的处理过程和下一个宏块数据的准备过程,这两个过程可以并行执行;
F)、等待ping buffer中数据处理完成和pong buffer中宏块需要的数据搬运完成,此等待过程并非两者的累加,而为两者中时间较长的一方;
G)、对下一个宏块进行处理,也即处理pong buffer中的数据;同时往ping buffer中准备再下一个宏块需要的数据;并且pong buffer中数据的处理过程和ping buffer的数据搬运过程两者并行执行;
H)、等待ping buffer中数据搬运完成和pong buffer中数据处理完成,此等待过程并非两者的累加,而为两者中时间较长的一方;
I)、对于一帧数据重复E~H的过程;
步骤四、处理最后一个ping buffer或pong buffer中的数据:
J)、等待最后一个ping buffer或pong buffer中数据准备完成;
K)、处理最后一个ping buffer或pong buffer中的数据;
L)、一帧处理完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010138003 CN101820543A (zh) | 2010-03-30 | 2010-03-30 | 一种与DMA相结合的ping-pong结构快速数据存取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010138003 CN101820543A (zh) | 2010-03-30 | 2010-03-30 | 一种与DMA相结合的ping-pong结构快速数据存取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101820543A true CN101820543A (zh) | 2010-09-01 |
Family
ID=42655451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010138003 Pending CN101820543A (zh) | 2010-03-30 | 2010-03-30 | 一种与DMA相结合的ping-pong结构快速数据存取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101820543A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678205A (zh) * | 2013-12-30 | 2014-03-26 | 杭州士兰微电子股份有限公司 | 基于dma的实时流数据传送系统及方法 |
CN104461465A (zh) * | 2014-12-29 | 2015-03-25 | 南京大学 | 一种基于乒乓操作的高效率控制器及其方法 |
CN109086883A (zh) * | 2018-07-20 | 2018-12-25 | 中国人民解放军国防科技大学 | 一种基于深度学习加速器实现稀疏计算的方法及装置 |
CN109660810A (zh) * | 2018-12-29 | 2019-04-19 | 湖南国科微电子股份有限公司 | 一种数据编码方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020016873A1 (en) * | 2000-07-31 | 2002-02-07 | Gray Donald M. | Arbitrating and servicing polychronous data requests in direct memory access |
CN101060374A (zh) * | 2007-04-11 | 2007-10-24 | 中兴通讯股份有限公司 | Turbo编码流水处理装置及方法 |
CN101645052A (zh) * | 2008-08-06 | 2010-02-10 | 中兴通讯股份有限公司 | 一种快速dma乒乓缓存方法 |
-
2010
- 2010-03-30 CN CN 201010138003 patent/CN101820543A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020016873A1 (en) * | 2000-07-31 | 2002-02-07 | Gray Donald M. | Arbitrating and servicing polychronous data requests in direct memory access |
CN101060374A (zh) * | 2007-04-11 | 2007-10-24 | 中兴通讯股份有限公司 | Turbo编码流水处理装置及方法 |
CN101645052A (zh) * | 2008-08-06 | 2010-02-10 | 中兴通讯股份有限公司 | 一种快速dma乒乓缓存方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678205A (zh) * | 2013-12-30 | 2014-03-26 | 杭州士兰微电子股份有限公司 | 基于dma的实时流数据传送系统及方法 |
CN103678205B (zh) * | 2013-12-30 | 2017-01-04 | 杭州士兰微电子股份有限公司 | 基于dma的实时流数据传送系统及方法 |
CN104461465A (zh) * | 2014-12-29 | 2015-03-25 | 南京大学 | 一种基于乒乓操作的高效率控制器及其方法 |
CN109086883A (zh) * | 2018-07-20 | 2018-12-25 | 中国人民解放军国防科技大学 | 一种基于深度学习加速器实现稀疏计算的方法及装置 |
CN109660810A (zh) * | 2018-12-29 | 2019-04-19 | 湖南国科微电子股份有限公司 | 一种数据编码方法 |
CN109660810B (zh) * | 2018-12-29 | 2021-07-27 | 湖南国科微电子股份有限公司 | 一种数据编码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9106888B2 (en) | Reducing quantization artifacts using neighbor-based weighted dithering | |
US8395634B2 (en) | Method and apparatus for processing information | |
JP2018201222A5 (zh) | ||
US20150215631A1 (en) | Parallel Coding with Overlapped Tiles | |
JP2023090947A5 (ja) | 映像符号化方法及び装置 | |
CN103997650B (zh) | 一种视频解码的方法和视频解码器 | |
US10757440B2 (en) | Motion vector prediction using co-located prediction units | |
US20150092855A1 (en) | Skip thresholding in pipelined video encoders | |
JP2014525176A (ja) | 輝度に基づく色度イントラ予測 | |
CN103096055A (zh) | 一种图像信号帧内预测及解码的方法和装置 | |
CN101563927A (zh) | 用于对视频图像的块进行解码的方法 | |
TW201309032A (zh) | 用信號發送用於一葉層級編碼單元之子集的轉換係數的語法元素 | |
US10158869B2 (en) | Parallel video decoding processing apparatus and operating method thereof | |
JP5253312B2 (ja) | 動画像処理装置およびその動作方法 | |
TWI736525B (zh) | 修正運動補償資訊的資料處理系統及包含運動補償資訊的視訊資料的解碼方法 | |
Jiang et al. | Block-Based Parallel Intra Prediction Scheme for HEVC. | |
TWI523498B (zh) | An image coding method, an image decoding method, an image coding apparatus, and an image decoding apparatus | |
CN105554505A (zh) | 应用处理器及其方法以及包括该应用处理器的系统 | |
CN101820543A (zh) | 一种与DMA相结合的ping-pong结构快速数据存取方法 | |
CN106688234A (zh) | 具有改善的转置缓冲器的可缩放变换硬件架构 | |
CN104521234B (zh) | 合并去区块处理和取样自适应偏移处理的视频处理方法和装置 | |
TWI583180B (zh) | 具有上下文切換之視訊編碼器 | |
CN101383968B (zh) | 视频解码器、视频解码方法和移动多媒体终端芯片 | |
CN105100799A (zh) | 一种减少hevc编码器中帧内编码时延的方法 | |
WO2006057182A1 (ja) | 復号化回路、復号化装置、及び復号化システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100901 |