发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种优化的AEC解码器,其优化了解码电路实现结构和分步流水线,使解码效率提高,所需资源降低,可以满足高分辨率、高帧率的超高清视频的硬件解码要求。
为实现上述目的及其他相关目的,本发明提供一种优化的AEC解码器,至少包括:数据流输入存储器、CTX存储器、CTX访问控制单元、CTX索引计算单元、CTX索引起始地址单元、CTX索引表起始地址单元、AEC解码参数缓存器、CTX参数缓存器、CTX参数更新电路、AEC解码初始参数计算单元、AEC解码中间参数计算单元、AEC解码参数更新单元、二进制位解码计算单元、二值化单元、语法元素单元以及run和level输出存储器;其中,所述数据流输入存储器用以缓存输入的待解码数据;所述CTX存储器用以存储CTX数据;所述CTX访问控制单元用于控制CTX存储器的读写操作,并根据CTX索引计算所述CTX存储器的读写地址,根据AEC解码需求确定读取两个或一个CTX索引对应数据;所述CTX索引计算单元、所述CTX索引起始地址单元和所述CTX索引表起始地址单元用于计算CTX索引;所述AEC解码参数缓存器和CTX参数缓存器分别用于缓存AEC解码参数和CTX参数;所述CTX参数更新电路用于更新CTX参数,并将更新后的CTX参数存储到所述CTX参数 缓存器中;所述AEC解码初始参数计算单元和所述AEC解码中间参数计算单元分别用于计算AEC解码的初始参数和中间参数;所述AEC解码参数更新单元用于更新AEC解码参数,并将更新的参数存储到所述AEC解码参数缓存器中;所述二进制位解码单元用于计算待解码数据流的二进制位解码结果;所述二值化单元用于将所述二进制解码结果进行二值化处理,并判断是否有对应语法元素输出;如果有,当前语法解码结束,输出解码后的语法元素到所述语法元素单元315,如果当前解码的是run和level元素,则存储到所述run和level输出存储器。
根据上述的优化的AEC解码器,其中:所述CTX索引表起始地址单元用于确定CTX索引表起始地址,所述CTX索引表起始地址根据当前解码元素而定。
根据上述的优化的AEC解码器,其中:所述CTX访问控制单元、所述CTX索引计算单元、所述CTX索引起始地址单元和所述CTX索引表起始地址单元依次相连。
根据上述的优化的AEC解码器,其中:所述二进制位解码单元将得到的二进制位解码结果传送到所述CTX参数更新电路,以实时更新CTX参数。
根据上述的优化的AEC解码器,其中:所述二进制位解码单元根据所述AEC解码中间参数计算单元得到的参数、所述AEC解码参数缓存器中缓存的参数以及所述数据流输入存储器存储的数据流来计算二进制位解码结果。
根据上述的优化的AEC解码器,其中:所述run和level输出存储器采用RAM存储器。
根据上述的优化的AEC解码器,其中:所述run和level存储单元中存储约3个宏块的run和level数据。
如上所述,本发明的优化的AEC解码器,具有以下有益效果:
(1)本发明的优化的AEC解码器集成到AVS视频解码器中时,输入输出都采用存储器,使AEC解码器可以和后续解码单元形成流水线结构,从而解决了AEC解码器解码周期数量不定的问题,也提高了整体解码速度;
(2)本发明的优化的AEC解码器使AEC解码器不再成为AVS解码速度的瓶颈,相对按标准所述原有步骤实现的电路,解码吞吐率提高3到4倍;同时本发明的优化的AEC解码器可以工作在超高速的时钟频率下,相对于未优化步骤的AEC电路,使解码速度成倍数增加,增加的倍数由工作时钟频率决定。
(3)本发明的优化的AEC解码器采用数字集成电路方式实现,具有效率高、功耗低、设备集成容易等优点。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
图1显示为现有技术中的AVS解码器的实现架构。如图所示,比特流模块101从数据流中解出头信息,通过帧内预测模块106和帧间预测模块107产生预测块;熵解码模块102从比特流模块101中得到残差系数,经过游程解码模块103、反量化模块104、反变换模块105处理后得到残差块;预测块和残差块在重构模块108中相加,再经过环路滤波器109滤波得到最终的解码数据,帧存储模块110将解码的帧存储已备下一帧计算预测块时使用。其中,AEC解码器是熵解码模块102中的一部分,其后续模块是游程解码模块(Run Length Decoding,RLD)103。
本发明的优化的AEC解码器是AVS视频标准中AEC解码部分,采用基于上下文的可适应的二进制解码算法。该AEC解码器输入为待解码的可变长度的编码数据,输出为AVS解码所需必要语法元素和游程解码所需run和level数据。本发明的优化的AEC解码器将解码得到的run和level数据存储到存储器以供RLD解码器进行解码,然后再通过RLD解码器将run和level解码为二维的数据以供后续视频解码单元进行解码。
参照图2,本发明的优化的AEC解码器201和RLD解码器204之间通过RAM202进行数据传输。其中,RAM202是AEC解码器201的输出缓存。由于AEC解码器201的解码时 间长度是不定的,RLD解码器204的解码时间长度是一定的,所以需要通过RAM202缓存约3个宏块的run和level数据以达到两个解码单元的流水线实现。有限状态机FSM(Finite StateMachine)203用于控制AEC解码器201和RLD解码器204两个单元的数据交互,保证数据吞吐量平均。AEC解码器201电路经优化精简可以工作在高频时钟下,输入输出都有存储器隔离,所以AEC解码器201可以工作在独立的时钟域,以保证AEC解码效率。
本发明的优化的AVS解码器由集成电路实现。如图3所示,其包括数据流输入存储器301、CTX存储器302、CTX访问控制单元303、CTX索引计算单元304、CTX索引起始地址单元305、CTX索引表起始地址单元306、AEC解码参数缓存器307、CTX参数缓存器308、CTX参数更新电路309、AEC解码初始参数计算单元310、AEC解码中间参数计算单元311、AEC解码参数更新单元312、二进制位解码计算单元313、二值化单元314、语法元素单元315以及run和level输出存储器316。
其中,数据流输入存储器301用以缓存输入的待解码数据。
CTX存储器302,用以存储CTX数据,其中CTX索引表的具体内容见表1。trans_coefficient元素(run和level)中帧模式和场模式在同一条带下不会同时需要,所以在条带开始CTX初始化时可以减少初始化帧模式或场模式对应的CTX数据,CTX存储器302可以减少所需存储单元。
表1、CTX索引表
CTX访问控制单元303与CTX存储器302相连,用于控制CTX存储器302的读写操作,并根据CTX索引计算CTX存储器302的读写地址,根据AEC解码需求确定读取两个或一个CTX索引对应数据。
CTX索引计算单元304和CTX索引起始地址单元305都是用于计算CTX索引。CTX索引表起始地址单元306用于确定CTX索引表起始地址,其根据当前解码元素而定。CTX访问控制单元303、CTX索引计算单元304、CTX索引起始地址单元305和CTX索引表起始地址单元306依次相连。
AEC解码参数缓存器307和CTX参数缓存器308用于缓存除输入数据流外的解码所需数据,使AEC解码分步流水线可以优化。其中,AEC解码参数缓存器307中缓存以下参数:rS1、rT1、valueS和valueT。CTX参数缓存器308中缓存CTX参数,其通过CTX访问控制单元303与CTX存储器302相连。
CTX参数更新电路309与CTX访问控制单元303和二进制位解码计算单元313相连,用于在读取CTX参数后更新CTX参数,提高速度和并行化,使流水线更加优化,更新后的CTX参数传送到CTX参数缓存器308中缓存,其可经由CTX访问控制单元303写回到CTX存储器302中或者当下一位二进制解码所需CTX表索引相同时直接进入解码使用。
AEC解码初始参数计算单元310与CTX参数缓存器308相连,用于计算初始参数,如predMps,lgPmps。
AEC解码中间参数计算单元311用于根据AEC解码初始参数计算单元310的计算结果计算中间参数,如rS2、rT2和sFlag。
AEC解码参数更新单元312用于根据AEC解码中间参数计算单元311得到的参数和数据流输入存储器301存储的数据流来计算更新AEC解码参数,再将更新的参数存储到AEC解码参数缓存器307中。
二进制位解码单元313用于根据AEC解码中间参数计算单元311得到的参数、AEC解码参数缓存器307中缓存的参数以及数据流输入存储器301存储的数据流来计算二进制位解码结果,并将解码结果传送到CTX参数更新电路309,以实时更新CTX参数。
二值化单元314用于进行二值化转换,即将AEC二进制位解码计算单元313得到的二进制解码结果移入之前解码二进制序列并查找二值化表,判断是否有对应语法元素输出;如果查找成功,当前语法解码结束,输出解码后的语法元素到语法元素单元315,如果当前解码 的是run和level元素,则存储到run和level输出存储器316。
run和level输出存储器316采用RAM(只读存储器)实现,功耗低,存取速度快。run和level输出存储器316的大小可调,从而保证了AEC解码和RLD解码可以构成流水线结构。本发明AEC流水线处理长度为3个宏块,即run和level存储单元416中存储约3个宏块的run和level数据。当AEC解码器处理n、n+1、n+2个宏块时,RLD解码器处理n-3、n-2、n-1个宏块。因此本发明的优化的AEC解码器,优化了CTX存储结构,减少了存储器使用资源,CTX存储器采用寄存器实现,可以同时读出多个CTX数据,加快了CTX存取速度;同时将标准中可以复用的解码过程合并,重新划分解码步骤,使其可以进行多步骤流水线处理,从而达到高效的解码吞吐率,所述流水线处理单步骤电路精简,所需时钟周期时间短,可以工作在超高速时钟频率下。
AEC解码初始参数计算单元310、AEC解码中间参数计算单元311、解码参数更新单元312和AEC二进制位解码计算单元313在AVS标准中对应三种情况分为三个独立的解码过程,本专利将三个解码过程合并,以减少实现资源,进一步细化流水线,优化解码电路路径长度。
本发明的优化的AEC解码器的解码流程如图4所示,其包括以下步骤:
步骤401:开始解码;
步骤402:进行条带头检测,若检测到条带头,则转入步骤403;若未检测到条带头,则转入步骤405;
步骤403:初始化CTX存储器;
步骤404:初始化AEC解码器参数;
步骤405:得到二值化转化对应表,其中,二值化转化对应表由当前解码语法元素确定;
步骤406:对二进制位计数索引赋予初值;
步骤407:对当前解码的二进制位计数索引进行累加;
步骤408:计算CTX索引,AEC解码器根据CTX索引得到对应CTX参数值;
步骤409:解码二进制位,根据CTX参数、输入数据流解码二进制位,每次解码一位;
步骤410:存储解码二进制位并进行二值化转换,并判断二值化序列是否对应相关语法元素,如果对应则二值化完毕,转入步骤S411;否则存储二进制位,转入步骤S407;
步骤411:获取语法元素值,语法元素包括AVS本条带或本宏块所需解码参数和run、level游程码信息;
步骤412:判断语法元素是否解码完毕,如果完毕就转入步骤413,如果未完毕则返回步 骤405,解码下一语法元素;
步骤413:流程结束。
图5为本发明的优化的AEC解码器和RLD解码器的流水线时序示意图。其中,在AEC解码时序501中,每个宏块的解码所需周期数是可变的。在RLD解码时序502中,每个宏块解码所需时间是均匀的。通过图2中FSM203来控制RAM202中run和level输出存储器的读写,达到AEC解码和RLD解码的同步。
图6为本发明的AEC解码器的分步骤流水线时序示意图。由图可知,将整个AEC解码全过程细分成若干分步,从而实现步骤间的并行化和流水线化。601是CTX初始化过程,602是AEC参数的初始化,这两步在条带头时执行一次,无需进入流水线。603是CTX索引计算,是AEC解码的第一步,所需计算资源较多,单独分成一步,使电路路径长度缩短,可以工作在高速时钟频率下。604是CTX参数读过程,根据603计算的索引值读取CTX参数,605是AEC解码参数predMps/lgPmps计算,将这两步合并到一个时钟周期是因为这两步的电路路径相加较短,执行过程独立,可以与其他步骤形成流水线。606是AEC解码参数rS2/rT2/sFlag计算,607是二进制位解码,608是CTX参数rS/rT1/valueS/valueT更新计算,607和608可以形成并行化计算,607、608和606有数据依赖关系,只能待606计算结束后才能开始,所以必须紧接在606之后。为了简化计算复杂度,本发明每次计算最高支持16位原始数据流输入。如果超过16位则需要增加一个时钟周期完成计算。经验证超过16位的计算过程极少,对性能产生的影响在试验中可以忽略。609是二值化过程,对607有数据依赖关系,必须接在607之后。610是Mps/Cycno/lgPmp参数更新,611Mps/Cycno/lgPmp参数选择,这两步在604之后就可以进行计算,可以实现与607步的并行化,612是Mps/Cycno/lgPmp参数缓存,必须待607结束后才能开始,所以接在607之后。613是将CTX参数写回到CTX存储器,必须待612之后才能进行,故放到下一个时钟周期完成。如图所示,614是第n个二进制解码的全过程,615是第n+1个二进制解码的全过程,616是第n+2个解码的全过程,三个过程之间根据其并行性形成了流水线结构,增加了平均计算吞吐率。
综上所述,将本发明的优化的AEC解码器集成到AVS视频解码器中时,输入输出都采用存储器,使AEC解码器可以和后续解码单元形成流水线结构,从而解决了AEC解码器解码周期数量不定的问题,也提高了整体解码速度。本发明的优化的AEC解码器分步骤处理电路精简,可以工作在超高速的时钟频率下,相对于未优化步骤的AEC电路,使解码速度成倍数增加,增加倍数由工作时钟频率决定,使AEC解码器不再成为AVS解码速度的瓶颈,相对按标准所述原有步骤实现的电路,解码吞吐率提高3到4倍。所以,本发明有效克服了现 有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。