CN100340114C - 多路并行可变长码解码的方法 - Google Patents
多路并行可变长码解码的方法 Download PDFInfo
- Publication number
- CN100340114C CN100340114C CNB2004100165087A CN200410016508A CN100340114C CN 100340114 C CN100340114 C CN 100340114C CN B2004100165087 A CNB2004100165087 A CN B2004100165087A CN 200410016508 A CN200410016508 A CN 200410016508A CN 100340114 C CN100340114 C CN 100340114C
- Authority
- CN
- China
- Prior art keywords
- code
- length
- level
- decoding
- code word
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明提供一种多路并行可变长码解码的方法,该方法使用宏观并行,微观串行的方式,即宏观上多个码流使用同一个解码器内核进行解码,而在解码器内部的任何一个模块(即一级流水线)的某一个时钟周期只为一个码流服务,使得解码器可以全速工作而不必等待反馈回路依次完成操作,从而提高了数字视频解码器中可变长解码模块的工作效率,而且可以根据工作负荷的大小启动多路复用器中的任何一路或者多路,具有可配置可调节的优点。
Description
技术领域
本发明属于高清晰度数字电视全I帧解码器领域,具体涉及一种多路并行可变长码解码的方法。
背景技术
当前,通用的数字电视编码技术是MPEG-2技术,它由ISO/IEC13818文件描述,该文件只规定了视频码流中可变长码的码表,但是并未对具体的解码方法做出限制性规定。由于高清晰度电视视频编码器的运算量十分巨大,通需要通过硬件实现。尤其是在全I帧的解码过程中对可变长解码器吞吐率的要求非常高,一般的DSP和专用芯片无法实现。
可变长解码器可以分为固定输入型和固定输出型两种。固定输入型是指:解码器按照固定的速率,例如每个时钟周期1个比特,接收输入的码流,当解码器完成一个码字的解码时输出结果,结果的输出是不定时的。因此常常无法保证解码的速率。固定输出型是指:解码器按照固定的速率输出解码结果。固定输出速率型可以保证解码速率,但是存在以下两方面问题,一方面长度累加器、对齐缓冲区和后缀分析模块构成一个反馈回路,对齐缓冲区必须在上一个码字的长度记入累加器得到比特位置指示之后,才可以开始调整对齐缓冲区中的内容;另一方面,对齐缓冲区的移位和更新操作需要一定的时间,对齐缓冲区更新完毕之后前分析模块才能继续工作。假设这个反馈回路需要3个时钟周期,为了使每个系统时钟周期内可以解出一个码字,解码器时钟必须是系统时钟周期的3倍。对于MPEG-2@HL 4:2:2格式的视频的采样率达到74.25MHz,则要求解码器时钟达到300M,因此这个反馈回路成为制约VLD解码器吞吐量和解码速率的关键。
每个可变长码的长度是不同的,一般由前缀和后缀两部分组成,通过确定码字的前缀可以判断整个码字的长度。而后缀部分可以进一步区分有相同前缀的码字,从而最终解码。可变长编码得到的码字长度不同,但是连续地放入码流之中传输,码字之间没有间隔保护或者任何标志。这样在解码的时候只有在解出当前码字之后才能根据当前码字的长度确定下一个码字的开始位置。可变长码的这种递归特性限制了解码速率。
图1是现有可变长解码器的基本原理框图,如图1所示,多比特的输入码流进入输入锁存器后,经移位器,由前缀分析器分析出当前码字的长度等信息,并将长度信息反馈给长度累加器,长度累加器对所有已经完成解码的码字的长度进行累计,并控制移位器移除当前完成解码的码字,此外长度累加器还控制输入锁存器获得新的输入码流。移位器移除已经完成解码的码字,使得下一个码字位于移位器的开始,即左对齐下一个码字。前缀分析器通过分析码字的开始的几个比特确定它属于那一组码字,地址生成器利用前缀分析器的输出以及码字的其余部分确定解码码字在码表中的地址,最终通过查表完成解码。
从上面的叙述可以发现,移位器,前缀分析器和长度累加器构成一个反馈回路。移位器必须等待前缀分析器的分析出当前码字长度的结果。输入锁存器每次保存N比特等待解码的比特流。移位器在长度累加器的控制下把还没有解码的比特片断输送给前缀分析器,前缀分析器根据比特片断的前几位判断出当前码字的长度,长度累加器累加完当前码字的长度之后,才能控制移位器把当前码字移除,为下一个码字的解码做准备。因此如果这个反馈的延迟是m个时钟周期,那么这个系统的工作效率为1/m。由此可见其效率低下。
发明内容
本发明的目的是提供一种同时支持多路并行可变长码解码的方法,该方法使用宏观并行,微观串行的方式,即宏观上多个码流使用同一个解码器内核进行解码,而在解码器内部的任何一个模块(即一级流水线)的某一个时钟周期只为一个码流服务,使得解码器可以全速工作而不必等待反馈回路依次完成操作,从而提高解码器的工作效率。
为达上述目的,本发明是这样实现的:
一种多路并行可变长码解码的方法,包括以下步骤:n路输入码流进入与码流数量对应的码流缓冲器,并在缓冲器中缓冲;所述码流缓冲器中的输入码流由多路复用器选择后,经过移位器至前缀分析器,所述前缀分析器根据码字的开始的几个比特判断当前码字的长度,将长度信息送入m级迟延长度累加器;经所述多路复用器选择但未进入移位器的输入码流在所述m级迟延输入锁存器中保存m个时钟周期后输出;所述m级迟延长度累加器根据获得的当前码字的长度信息对所有已经完成解码的码字的长度进行累加,并控制所述移位器移除当前完成解码的码字,所述m级迟延长度累加器将当前的累加结果保存,并将该累加结果与m个时钟周期之后的输入累加;地址生成器利用所述前缀分析器的输出以及码字的其余部分确定解码码字的码表中的地址,经过查表后,由解多路复用器分配给对应解码结果,完成解码;其中,m,n≥2,且m≥n,所述多路复用器、移位器、前缀分析器、部分m级迟延长度累加器构成的一个反馈回路,将该反馈回路分成m级流水线,每一级流水线在某一个时钟周期内只为一个码流服务。较佳的,将所述反馈回路分成4至6级流水线。
本发明的有益效果是:提高数字视频解码器中可变长解码模块的工作效率,而且可以根据工作负荷的大小启动多路复用器中的任何一路或者多路,具有可配置可调节的优点。
附图说明
图1为现有可变长码解码器的基本原理框图
图2为支持多路码流可变长码解码的流程图
图3为多个节目共享一个多路并行可变长解码器
图4为一个节目分割成宏块条并行解码
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下参照附图并举出实施案例,对本发明进一步详细说明。
实施例一:如图2所示,多输入码流共同使用一个解码内核的系统框图。假定有来自同一个节目或不同节目的3个码流。此3个码流首先在各自的缓冲区中缓冲。然后由多路复用器选择某一路有新的码流进入后续步骤,或者某一路的保存在6级码流缓冲器的码流作为后续模块处理的输入。其中移位器,前缀分析器,地址生成器,码表等模块的工作原理与图1现有可变长码解码器中相应模块的工作原理完全相同。
多路复用器,移位器,前缀分析器,以及6级迟延长度累加器的一部分构成的反馈迟延为6个时钟周期,或者说多路复用器,移位器,前缀分析器,以及6级累加器的一部分的构成了6级流水线。在输入码流为3路的情况下,此时3个码流的解码工作可以依次分布在反馈回路的6级流水线中的不同级中进行,并且或不干扰。当完成查表之后,解码的结果属于不同的码流,还需要经过解多路复用器,分配给不同的码流进行进一步的处理。这样解码器可以全速工作而不必等待反馈依次完成操作。与现有可变长解码器相比,其解码效率提高了三倍。
实施例二:如图3所示,当多个节目共享一个多路并行可变长解码器时,可经过节目前处理之后,变为多路输入码流,进入多路并行可变长解码器,经过解码,解码的结果再经过节目后处理之后,得到解码图像。有时因为一路视频码流的码率过大,而原有的可变长码解码器无法达到速率的要求,此时可以采用图4的方式将一个节目分成若干宏块条,通过对宏块条进行并行解码的方式以提高可变长码的解码速率。
Claims (2)
1.一种多路并行可变长码解码的方法,包括以下步骤:
1)n路输入码流进入与码流数量对应的码流缓冲器,并在缓冲器中缓冲;
2)所述码流缓冲器中的输入码流由多路复用器选择后,经过移位器至前缀分析器,所述前缀分析器根据码字的开始的几个比特判断当前码字的长度,将长度信息送入m级迟延长度累加器;经所述多路复用器选择但未进入移位器的输入码流在m级迟延输入锁存器中保存m个时钟周期后输出;
3)所述m级迟延长度累加器根据获得的当前码字的长度信息对所有已经完成解码的码字的长度进行累加,并控制所述移位器移除当前完成解码的码字,所述m级迟延长度累加器将当前的累加结果保存,并将该累加结果与m级迟延输入锁存器在m个时钟周期之后输出的输入码流在完成解码后并由所述m级迟延长度累加器对其进行累加的结果进行累加;
4)地址生成器利用所述前缀分析器的输出以及码字的其余部分确定解码码字的码表中的地址,经过查表后,由解多路复用器分配给对应解码结果,完成解码;
其中,m,n≥2,且m≥n,所述多路复用器、所述移位器、所述前缀分析器、部分所述m级迟延长度累加器构成一个反馈回路,将该反馈回路分成m级流水线,每一级流水线在某一个时钟周期内只为一个码流服务。
2.根据权利要求1所述的多路并行可变长码解码的方法,其特征在于:将所述反馈回路分成4至6级流水线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100165087A CN100340114C (zh) | 2004-02-24 | 2004-02-24 | 多路并行可变长码解码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100165087A CN100340114C (zh) | 2004-02-24 | 2004-02-24 | 多路并行可变长码解码的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1662064A CN1662064A (zh) | 2005-08-31 |
CN100340114C true CN100340114C (zh) | 2007-09-26 |
Family
ID=35011099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100165087A Expired - Fee Related CN100340114C (zh) | 2004-02-24 | 2004-02-24 | 多路并行可变长码解码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100340114C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8019002B2 (en) * | 2006-06-08 | 2011-09-13 | Qualcomm Incorporated | Parallel batch decoding of video blocks |
CN101646073B (zh) * | 2008-08-08 | 2012-01-11 | 青岛海信信芯科技有限公司 | 一种视频解码方法及应用该方法的电视机 |
CN101968959A (zh) * | 2010-09-19 | 2011-02-09 | 北京航空航天大学 | 一种基于faad2 main模式的多路音频实时解码软件设计方法 |
US20160191935A1 (en) * | 2014-04-22 | 2016-06-30 | Mediatek Inc. | Method and system with data reuse in inter-frame level parallel decoding |
WO2019227323A1 (zh) * | 2018-05-30 | 2019-12-05 | 深圳市大疆创新科技有限公司 | 变长解码方法与装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5293592A (en) * | 1989-04-07 | 1994-03-08 | Intel Corporatino | Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline |
US5404138A (en) * | 1993-09-11 | 1995-04-04 | Agency For Defense Development | Apparatus for decoding variable length codes |
US5563920A (en) * | 1993-02-17 | 1996-10-08 | Zenith Electronics Corporation | Method of processing variable size blocks of data by storing numbers representing size of data blocks in a fifo |
-
2004
- 2004-02-24 CN CNB2004100165087A patent/CN100340114C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5293592A (en) * | 1989-04-07 | 1994-03-08 | Intel Corporatino | Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline |
US5563920A (en) * | 1993-02-17 | 1996-10-08 | Zenith Electronics Corporation | Method of processing variable size blocks of data by storing numbers representing size of data blocks in a fifo |
US5404138A (en) * | 1993-09-11 | 1995-04-04 | Agency For Defense Development | Apparatus for decoding variable length codes |
Also Published As
Publication number | Publication date |
---|---|
CN1662064A (zh) | 2005-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6275536B1 (en) | Implementation architectures of a multi-channel MPEG video transcoder using multiple programmable processors | |
CN103475927B (zh) | 在线视频实时变速播放方法及系统 | |
US20080240093A1 (en) | Stream multiplexer/de-multiplexer | |
US9621885B2 (en) | Power saving decoder architecture | |
CN100340114C (zh) | 多路并行可变长码解码的方法 | |
US20090310686A1 (en) | Distributed decoding device of sequential parallel processing scheme and method for the same | |
Iwata et al. | Exploiting coarse-grain parallelism in the MPEG-2 algorithm | |
KR19980702580A (ko) | 멀티-코드-북 가변장 디코더 | |
US7881320B1 (en) | Parsing data from multiple digital bitstreams | |
CN102377972B (zh) | 图像处理设备和图像处理方法 | |
US7027514B2 (en) | Distributed video stream decoding system on computer and decoding method of the same | |
WO2007117747A2 (en) | Systems and methods for transcoding bit streams | |
CN103024394A (zh) | 视频文件剪辑方法和装置 | |
US9380260B2 (en) | Multichannel video port interface using no external memory | |
CN101710994B (zh) | 一种用于视频解码的方法和系统 | |
US9761232B2 (en) | Multi-decoding method and multi-decoder for performing same | |
WO2008031039A2 (en) | Audio/video recording and encoding | |
Han et al. | GPU based real-time UHD intra decoding for AVS3 | |
US20100076944A1 (en) | Multiprocessor systems for processing multimedia data and methods thereof | |
KR101063424B1 (ko) | 비디오 데이터 처리 장치 및 방법 | |
CN100466742C (zh) | 熵解码和变换流水线阶段的联合处理方法 | |
KR100485353B1 (ko) | 버퍼관리를 통한 디지털 스트림 재다중화 장치 및 그 방법 | |
CN104125493A (zh) | 影音同步系统及方法 | |
CN1829958A (zh) | 并行处理系统 | |
CN102201815B (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070926 Termination date: 20110224 |