CN103596013B - 新型解码器及解码方法 - Google Patents
新型解码器及解码方法 Download PDFInfo
- Publication number
- CN103596013B CN103596013B CN201310582431.9A CN201310582431A CN103596013B CN 103596013 B CN103596013 B CN 103596013B CN 201310582431 A CN201310582431 A CN 201310582431A CN 103596013 B CN103596013 B CN 103596013B
- Authority
- CN
- China
- Prior art keywords
- data
- ddr
- variable
- module
- length decoding
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种新型解码器及解码方法,至少包括:DDR:用来缓存解码前的视频码流以及可变长解码引擎的输出数据;可变长解码引擎:用以解码从DDR中获取的视频码流并将解码后的数据输出到数据管理模块中;数据管理模块:将可变长解码引擎的解码后的数据输出到直接内存存取模块,并将从直接内存存取模块获取的数据输出;直接内存存取模块:将数据管理模块输出的可变长解码引擎的解码后的数据输出到DDR中,并将从DDR中获取的可变长解码引擎的解码后的数据输出到数据管理模块;本发明的直接内存存取模块通过增加一个读通道和一个写通道,即,增加很小的逻辑,而去掉了两个416X22单口SRAM、缓存参数的两组寄存器,如此,对比现有技术的设计芯片综合面积节省约80000um2,而芯片整体面积减少约6%,从而大大的降低了对应的芯片成本。
Description
技术领域
本发明涉及一种视频多格式解码器中的数据缓存,尤其是指基于DDR缓存在多格式视频解码器中的应用。
背景技术
当前视频解码器在监控,数字广播以及手持设备等多领域有广泛的应用,而且多合一、包括多种视频编解码标准H.264/H.265、MPEG-2/MPEG-4、VC-1,AVS/AVS+等等格式解码器的需求越来越明显。当前的视频解码器普遍采用多级流水的架构:例如,熵解码(VLD)->运动向量预测(MVG)->反量化反变换(IQIT)->重构(RECON)->滤波(LF)类似架构,流水之间通过RAM乒乓做缓存,由此带来的问题就是:缓存RAM将占据一定的芯片面积,即造成芯片面积的浪费以及生产成本的上升。
即,通用技术是采用国际标准的视频编解码协议,将一幅视频图像分割成若干宏块单元,并经过一系列的压缩过程,将图像信息转变为一维的数据流,该数据流称为Elementary Stream(ES)。解码器在接收到该数据流(ES)后,采用同样的协议,将ES还原为原始图像。本文讨论的就是解码流程中的一个阶段。具体如附图1所示,当解码第一个宏块单元时,第一级流水线:可变长解码引擎通过DMA(Direct Memory Access,直接内存存取)从内存(DDR)读取ES流,并从中解析出宏块的语法元素(如宏块类型、量化参数、运动向量以及残差数据等等),并将残差数据保存在缓存模块的数据缓存A/B中,其它语法元素保存在缓存模块的参数缓存A/B中,第二级流水线的模块使用缓存模块中的数据进行标准的解码,最终完成图像的解码。缓存模块中包含一个控制逻辑,只有来自VLD的数据和参数全部传递完成,第二级流水线的模块才会启动。VLD先写数据到数据缓存A和参数缓存A,在第二级流水线的模块读取数据缓存A、参数缓存A时,VLD可以同时解码下一个宏块单元,并将数据和参数分别写入数据缓存B和参数缓存B,之后第二级流水线的模块在完成上一次对缓存模块的数据缓存A和参数缓存A的操作后,再从缓存模块的数据缓存B和参数缓存B中读取数据和参数,以此种顺序依次操作,完成解码过程。
在现有技术的这个设计中缓存模块中的数据缓存使用了两个单口SRAM,规格为416X22,例如,在SMIC(中芯国际集成电路制造有限公司)55nm工艺下总面积为33801um2;而参数缓存使用了两组寄存单元,在SMIC55nm工艺下总面积为46764um2。即,上述的数据缓存和参数缓存分别占掉了整个解码芯片面积的2.5%和3.5%,从而造成芯片面积的浪费以及生产成本的上升。
综上所述,为了避免上述问题,一种新的、有效的新型解码器及解码方法的发明是势在必行的。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种新型解码器及解码方法,其能有效的利用现有的DDR存储资源,去掉现有技术的两个单口SRAM以及缓存参数的两组寄存器,从而可以节省芯片面积,进而降低芯片成本。
为实现上述目的及其他相关目的,本发明的具体技术方案是:
一种新型解码器,其至少包括:
DDR:用来缓存解码前的视频码流以及可变长解码引擎的输出数据;
可变长解码引擎:用以解码从DDR中获取的视频码流并将解码后的数据输出到数据管理模块中;
数据管理模块:将可变长解码引擎的解码后的数据输出到直接内存存取模块,并将从直接内存存取模块获取的数据输出;
直接内存存取模块:将数据管理模块输出的可变长解码引擎的解码后的数据输出到DDR中,并将从DDR中获取的可变长解码引擎的解码后的数据输出到数据管理模块。
直接内存存取模块:包括写通道和读通道,分别用来支持可变长解码引擎对DDR的写操作和下一级流水线模块对DDR的读操作;
数据管理模块:包括地址管理部分和空满信号产生部分;所述地址管理部分管理DDR的四段地址空间;所述空满信号产生部分用来产生空信号、满信号,以分别告知可变长解码引擎和下一级流水线模块何时启动或停止。
所述的新型解码器,其所述直接内存存取模块将来自可变长解码引擎及其它模块对DDR数据的读请求传递给DDR,并将从DDR读回来的数据返回给发送请求的模块,对DDR的写请求:直接内存存取模块将写数据写入DDR。
所述的新型解码器,其所述空满信号产生部分包含两个计数器,计数范围[0,3],分别命名为读指针和写指针。
所述的新型解码器,其所述四段地址空间分别是地址空间1、2、3、4;待解码的第一个宏块单元的数据先写入地址空间1,参数写入地址空间2,第二个宏块单元的数据写入地址空间3,参数写入地址空间4,下一级流水线模块先从地址空间1和2读取第一个宏块单元的数据和参数,再从地址空间3和4读取第二个宏块单元的数据和参数,这样交替读取,完成解码过程。
所述的一种新型解码器的解码方法,其包括:
第一级流水线:可变长解码引擎通过数据管理模块将数据和参数直接传递给直接内存存取模块,并由直接内存存取模块将数据信息写入DDR中;
第二级流水线通过数据管理模块到直接内存存取模块再到DDR相应位置取回数据和参数,进行正常工作。
所述的解码方法,其具体包括如下步骤:
A、CPU启动一幅图像的解码,并从DDR存放视频码流的位置读取码流,搜索图像的头信息,将解码得到的关于图像的帧结构、宽高信息、码流的起始位置等,通过总线传递给可变长解码引擎,从而启动可变长解码引擎工作;
B、可变长解码引擎在接收到CPU传递过来的参数信息后启动,在每次解码一个宏块单元前,可变长解码引擎都要先观测满信号的值,如果信号值为1,则可变长解码引擎暂停,直到满信号的值为0,可变长解码引擎恢复解码,并从DDR的相应地址空间读取码流,进行解码,将解码得到的数据和参数通过数据管理模块写入DDR的约定位置,写指针加1;
C、第二级流水线模块在观察到数据管理模块的空信号的值为0时,向数据管理模块请求数据和参数,数据管理模块从DDR相应的地址空间处读取数据和参数,并传递给第二级流水线模块,进行相应的解码工作,数据管理模块的读指针加1;
D、数据管理模块通过真值表产生空、满信号。
所述的解码方法,其所述数据管理模块包括地址管理部分,所述地址管理部分管理DDR的四段地址空间,所述四段地址空间分别是地址空间1、2、3、4;第一个宏块单元的数据先写入地址空间1,参数写入地址空间2,第二个宏块单元的数据写入地址空间3,参数写入地址空间4;第二级流水线模块先从地址空间1和2读取第一个宏块单元的数据和参数,再从地址空间3和4读取第二个宏块单元的数据和参数,这样交替读取,完成解码过程。
所述的解码方法,其所述数据管理模块包括空满信号产生部分,所述空满信号产生部分用以产生空信号、满信号所述空满信号产生部分包含两个计数器,计数范围[0,3],分别命名为读指针和写指针。
如上所述,本发明的新型解码器及解码方法,具有以下有益效果:本发明的直接内存存取模块DMA通过增加一个读通道和一个写通道,即,增加很小的逻辑,而去掉了两个416X22单口SRAM、缓存参数的两组寄存器,如此,对比现有技术的设计芯片综合面积节省约80000um2,而芯片整体面积减少约6%,从而大大的降低了对应的芯片成本。
附图说明
图1显示为现有技术的解码器的熵解码流水线模块与缓存模块的交互结构示意图。
图2显示为本发明新型解码器的流水线模块与缓存模块的交互结构示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效。
请参阅图1至图2。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
简言之,本发明的技术方案是对背景技术中的所述区域的设计架构的修改,如此可以省去以上的面积,达到降低整颗芯片的面积,有效地降低成本。例如:512MB容量的DDR的使用效率为50%,总线利用率约为20%,如此有充足的条件资源可以保证在不增加芯片面积的前提下,完成新的设计方法。即,完全去掉背景技术中的缓存模块,包括其数据缓存和参数缓存,第一级流水线:可变长解码引擎通过本发明的数据管理模块将数据和信息直接传递给DMA,并由DMA将数据信息写入DDR中,第二级流水线通过数据管理模块到DMA再到DDR相应位置取回数据和信息,进行正常工作。本发明的具体结构如下:
DMA模块:DMA(直接内存存取)模块为原有设计,将来自VLD及其它模块对DDR数据的读请求传递给DDR,并将从DDR读回来的数据返回给发送请求的模块,对DDR的写请求,DMA将写数据写入DDR,在本发明的设计中,DMA增加了两个端口,即:一个写通道和一个读通道,分别用来支持VLD的写操作和第二级流水线模块的读操作。
数据管理模块:该模块分为两部分:地址管理部分和空满信号产生部分;地址管理部分管理DDR的四段地址空间,分别是地址空间1、2、3、4;这些地址空间分别对应现有设计的数据缓存A、参数缓存A;数据缓存B以及参数缓存B,第一个宏块单元的数据先写入地址空间1,参数写入地址空间2,第二个宏块单元的数据写入地址空间3,参数写入地址空间4。第二级流水线模块先从地址空间1和2读取第一个宏块单元的数据和参数,再从地址空间3和4读取第二个宏块单元的数据和参数,这样交替读取,完成解码过程。空满信号产生部分用来产生空信号、满信号,目的是产生空、满两个信号分别告知可变长解码引擎和第二级流水线模块何时该启动或停止。所述的空满信号产生部分包含两个计数器,计数范围[0,3],分别命名为读指针和写指针,系统启动时,读、写指针均被复位为0。当VLD写一个宏块单元到数据管理模块时,写指针加1,当第二级流水线模块从数据管理模块读一个宏块单元时,读指针加1。表格1为空满信号对应的真值表:
读指针 | 写指针 | 空信号 | 满信号 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 2 | 0 | 1 |
0 | 3 | - | - |
1 | 0 | - | - |
1 | 1 | 1 | 0 |
1 | 2 | 0 | 0 |
1 | 3 | 0 | 1 |
2 | 0 | 0 | 1 |
2 | 1 | 0 | 0 |
2 | 2 | 1 | 0 |
2 | 3 | 0 | 0 |
3 | 0 | 0 | 0 |
3 | 1 | 0 | 1 |
3 | 2 | - | - |
3 | 3 | 1 | 0 |
空信号为1时,第二级流水线模块暂停读请求数据和参数;为0时,可以读请求取数据和参数。满信号为1时,可变长解码引擎暂停解码下一个宏块单元;为0时,可以解码下一个宏块单元。
以下表述为一个完整的解码流程:
1.CPU启动一幅图像的解码,并从DDR存放视频码流(ES)的位置读取码流,搜索图像的头信息,将解码得到的关于图像的帧结构、宽高信息、码流的起始位置等,通过总线(BUS)传递给可变长解码引擎,从而启动可变长解码引擎工作。
2.可变长解码引擎在接收到CPU传递过来的参数信息后启动,在每次解码一个宏块单元前,VLD都要先观测满信号的值,如果信号值为1,则可变长解码引擎暂停,直到满信号的值为0,可变长解码引擎恢复解码,并从DDR的相应地址空间读取码流(ES),进行解码,将解码得到的数据和参数通过数据管理模块写入DDR的约定位置,写指针加1。
3.第二级流水线模块在观察到数据管理模块的空信号的值为0时,向数据管理模块请求数据和参数,数据管理模块从DDR相应的地址空间处读取数据和参数,并传递给第二级流水线模块,进行相应的解码工作,数据管理模块的读指针加1。
4.数据管理模块通过上面的真值表产生空、满信号。
总之,本发明方法通过DMA增加一个读通道和一个写通道增加很小的逻辑,在去掉了两个416X22单口SRAM、缓存参数的两组寄存器后,对比原设计芯片综合面积节省约80000um2,芯片整体面积减少约6%。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (4)
1.一种新型解码器,其特征在于,至少包括:
DDR:用来缓存解码前的视频码流以及可变长解码引擎的输出数据;
可变长解码引擎:用以解码从DDR中获取的视频码流并将解码后的数据输出到数据管理模块中;
数据管理模块:将可变长解码引擎的解码后的数据输出到直接内存存取模块,并将从直接内存存取模块获取的数据输出;
直接内存存取模块:将数据管理模块输出的可变长解码引擎的解码后的数据输出到DDR中,并将从DDR中获取的可变长解码引擎的解码后的数据输出到数据管理模块,
其中,所述数据管理模块包括地址管理部分和空满信号产生部分;所述地址管理部分管理DDR的四段地址空间;所述空满信号产生部分用以产生空信号、满信号,
所述四段地址空间分别是地址空间1、2、3、4;待解码的第一个宏块单元的数据先写入地址空间1,参数写入地址空间2,待解码的第二个宏块单元的数据写入地址空间3,参数写入地址空间4,读取时先从地址空间1和2读取第一个宏块单元的数据和参数,再从地址空间3和4读取第二个宏块单元的数据和参数,交替读取以完成解码过程,
所述空满信号产生部分包含两个计数器,该两个计数器的计数范围分别为[0,3],分别命名为读指针和写指针。
2.根据权利要求1所述的新型解码器,其特征在于,所述直接内存存取模块包括有写通道和读通道,分别用来支持对DDR的写操作和读操作。
3.根据权利要求1或2任一所述的新型解码器,其特征在于,所述直接内存存取模块将来自可变长解码引擎及其它模块对DDR数据的读请求传递给DDR,并将从DDR读回来的数据返回给发送请求的模块,对DDR的写请求:直接内存存取模块将写数据写入DDR。
4.如权利要求1所述的一种新型解码器的解码方法,其特征在于,其包括:
第一级流水线:可变长解码引擎通过数据管理模块将数据和参数直接传递给直接内存存取模块,并由直接内存存取模块将数据信息写入DDR中;
第二级流水线通过数据管理模块到直接内存存取模块再到DDR相应位置取回数据和参数,进行正常工作,
其中,A、CPU启动一幅图像的解码,并从DDR存放视频码流的位置读取码流,搜索图像的头信息,将解码得到的关于图像的帧结构、宽高信息、码流的起始位置,通过总线传递给可变长解码引擎,从而启动可变长解码引擎工作;
B、可变长解码引擎在接收到CPU传递过来的参数信息后启动,在每次解码一个宏块单元前,可变长解码引擎先观测数据管理模块的所述空满信号产生部分用的满信号的值,如果信号值为1,则可变长解码引擎暂停,直到满信号的值为0,可变长解码引擎恢复解码,并从DDR的相应地址空间读取码流,进行解码,将解码得到的数据和参数通过数据管理模块写入DDR的相应位置,写指针加1;
C、第二级流水线模块在观察到数据管理模块的空信号的值为0时,向数据管理模块请求数据和参数,数据管理模块从DDR相应的地址空间处读取数据和参数,并传递给第二级流水线模块,进行相应的解码工作;
D、数据管理模块通过真值表产生空、满信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310582431.9A CN103596013B (zh) | 2013-11-19 | 2013-11-19 | 新型解码器及解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310582431.9A CN103596013B (zh) | 2013-11-19 | 2013-11-19 | 新型解码器及解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103596013A CN103596013A (zh) | 2014-02-19 |
CN103596013B true CN103596013B (zh) | 2017-02-15 |
Family
ID=50085969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310582431.9A Active CN103596013B (zh) | 2013-11-19 | 2013-11-19 | 新型解码器及解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103596013B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106961608B (zh) * | 2017-04-07 | 2019-05-28 | 山东师范大学 | 高清解码器数字显示混合格式码流自适应处理系统及方法 |
US11729395B2 (en) * | 2021-11-26 | 2023-08-15 | Huawei Technologies Co., Ltd. | Methods and devices for extracting motion vector data from compressed video data |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100203246B1 (ko) * | 1995-10-19 | 1999-06-15 | 윤종용 | 고속의 가변장복호화장치 |
CN1121648C (zh) * | 1999-03-24 | 2003-09-17 | 北京多思科技工业园股份有限公司 | 边进边出的寄存器队列装置及其方法 |
US7034897B2 (en) * | 2002-04-01 | 2006-04-25 | Broadcom Corporation | Method of operating a video decoding system |
JP2009267837A (ja) * | 2008-04-25 | 2009-11-12 | Panasonic Corp | 復号化装置 |
CN100592799C (zh) * | 2008-06-12 | 2010-02-24 | 四川虹微技术有限公司 | 基于h.264标准运动补偿的数据快速读取方法 |
US20120099657A1 (en) * | 2009-07-06 | 2012-04-26 | Takeshi Tanaka | Image decoding device, image coding device, image decoding method, image coding method, program, and integrated circuit |
US8639858B2 (en) * | 2010-06-23 | 2014-01-28 | International Business Machines Corporation | Resizing address spaces concurrent to accessing the address spaces |
CN102123275B (zh) * | 2010-12-30 | 2012-10-24 | 北京中科大洋科技发展股份有限公司 | 一种视频分量数据信息获取及提取的方法 |
-
2013
- 2013-11-19 CN CN201310582431.9A patent/CN103596013B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103596013A (zh) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9351003B2 (en) | Context re-mapping in CABAC encoder | |
CN101252694B (zh) | 基于块的视频解码的帧存储压缩和地址映射系统 | |
US9392292B2 (en) | Parallel encoding of bypass binary symbols in CABAC encoder | |
CN101527849B (zh) | 集成视频解码器的存储系统 | |
CN107277505B (zh) | 基于软硬件分区的avs-2视频解码器装置 | |
CN102088603B (zh) | 用于视频编码器的熵编码器及其实现方法 | |
US9510008B2 (en) | Video decoder memory bandwidth compression | |
Zhou et al. | An 8K H. 265/HEVC video decoder chip with a new system pipeline design | |
CN103686173A (zh) | 变换与反变换电路 | |
CN103596013B (zh) | 新型解码器及解码方法 | |
CN101883276B (zh) | 软硬件联合解码的多格式高清视频解码器结构 | |
Srinivasarao et al. | High‐speed low‐power very‐large‐scale integration architecture for dual‐standard deblocking filter | |
CN112866695B (zh) | 一种视频编码器 | |
CN103200407A (zh) | 一种自适应熵编码器 | |
Fleming et al. | H. 264 decoder: A case study in multiple design points | |
Chen et al. | A high-performance hardwired CABAC decoder | |
CN101459839A (zh) | 去块效应滤波方法及实现该方法的装置 | |
CN113660496B (zh) | 基于多核并行的视频流解码方法及装置 | |
CN102333222A (zh) | 二维离散小波变换电路及应用该电路的图像压缩方法 | |
CN101662684A (zh) | 用于视频图像编解码的数据存储的方法及装置 | |
Yang et al. | An effective dictionary-based display frame compressor | |
Wang et al. | An efficient deep learning accelerator architecture for compressed video analysis | |
Wu et al. | Analysis and architecture design for high performance JPEG2000 coprocessor | |
CN111815502A (zh) | 基于WebP压缩算法的多图处理的FPGA加速方法 | |
Sanghvi et al. | A 28nm programmable and low power ultra-HD video codec engine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 200125, Shanghai, Pudong New Area East Three Li Road Bridge, No. 1018, block B, building 8 HD Applicant after: Shanghai High Definition Digital Technology Industrial Co., Ltd. Address before: 200125 Shanghai East Road, Pudong New Area, No. three, No. 1018 Applicant before: Shanghai High Definition Digital Technology Industrial Co., Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |