编码方法和装置与流程

文档序号:12690705阅读:233来源:国知局
编码方法和装置与流程

本公开涉及电子技术领域,尤其涉及编码技术领域,具体地,涉及一种编码方法和装置。



背景技术:

目前,在进行编码时,首先需要读取待编码的第N帧数据,然后将读取的第N帧数据写入输出数据存储器中并利用编码矩阵对第N帧数据进行运算得到校验位,待第N帧数据的校验码计算完成后再读取第N+1帧数据,并然后将读取的第N+1帧数据写入输出数据存储器中并利用编码矩阵对第N+1帧数据进行运算得到校验位,如此循环,直至完成所有校验位的计算为止。

假设一帧数据写入输出数据存储器中需要520个时钟周期,校验位的计算需要560个时钟周期,则完成一帧数据的编码总共需要1080个时钟周期,这是非常费时间的。因此,非常有必要改进编码器的编码处理能力。



技术实现要素:

本公开的目的是提供一种编码方法和装置,其能够改进编码器的编码处理能力。

为了实现上述目的,本公开提供一种编码方法,该方法包括:

读取待编码的第N帧数据;

对所述第N帧数据进行第一运算,输出第一运算结果;

在对所述第N帧数据进行所述第一运算期间,基于对第N-1帧数据进行所述第一运算输出的第一运算结果进行第二运算,输出第二运算结果,

其中,N为正整数。

可选地,该方法还包括:

反复读写对所述第N帧数据进行缓存的第一缓存器,来对所述第N帧数据进行所述第一运算;

在基于对所述第N-1帧数据进行所述第一运算输出的第一运算结果进行所述第二运算完成之后,将对所述第N帧数据进行所述第一运算输出的第一运算结果从所述第一缓存器复制到第二缓存器以基于对所述第N帧数据进行所述第一运算输出的第一运算结果进行所述第二运算,并读取第N+1帧数据。

可选地,该方法还包括:

在所述第N帧数据和所述第N-1帧数据各自的读取期间,分别通过第一多路选择器和第二多路选择器将所述第N-1帧数据和所述第N帧数据分别写入到输出存储器中的第一存储单元和第二存储单元;

将基于对所述第N-1帧数据进行所述第一运算输出的第一运算结果进行第二运算输出的第二运算结果通过所述第一多路选择器写入到所述第一存储单元;

将基于对所述第N帧数据进行所述第一运算输出的第一运算结果进行所述第二运算输出的第二运算结果通过所述第二多路选择器写入到所述第二存储单元。

可选地,所述第二运算结果为针对所述第N-1帧数据的校验位。

可选地,所述第一运算为利用H编码矩阵的子矩阵A和C进行的运算,所述第二运算为利用所述H编码矩阵的子矩阵T、E、B和D进行的运算。

本公开实施例还提供一种编码装置,该装置包括:

读取模块,用于读取待编码的第N帧数据;

第一运算模块,用于对所述第N帧数据进行第一运算,输出第一运算结果;

第二运算模块,用于在所述第一运算模块对所述第N帧数据进行所述第一运算期间,基于对第N-1帧数据进行所述第一运算输出的第一运算结果进行第二运算,输出第二运算结果,

其中,N为正整数。

可选地,该装置还包括第一缓存器和第二缓存器,

所述第一运算模块,还用于反复读写对所述第N帧数据进行缓存的所述第一缓存器,来对所述第N帧数据进行所述第一运算;

所述第一缓存器和所述读取模块,还用于在所述第二计算模块基于对所述第N-1帧数据进行所述第一运算输出的第一运算结果进行所述第二运算完成之后,分别将所述第一运算模块对所述第N帧数据进行所述第一运算输出的第一运算结果从所述第一缓存器复制到第二缓存器以便所述第二计算模块基于所述第一计算模块对所述第N帧数据进行所述第一运算输出的第一运算结果进行所述第二运算,和读取第N+1帧数据。

可选地,该装置还包括输出存储器、第一多路选择器和第二多路选择器,所述输出存储器包括第一存储单元和第二存储单元:

所述第一存储单元,用于在所述第N-1帧数据的读取期间,通过所述第一多路选择器被写入所述第N-1帧数据,以及通过所述第一多路选择器被写入所述第二运算模块基于所述第一运算模块对所述第N-1帧数据进行所述第一运算输出的第一运算结果进行第二运算输出的第二运算结果;

所述第二存储单元,用于在所述第N帧数据的读取期间,通过所述第二多路选择器被写入所述第N帧数据,以及通过所述第二多路选择器被写入所述第二运算模块基于所述第一运算模块对所述第N帧数据进行所述第一运算输出的第一运算结果进行所述第二运算输出的第二运算结果。

可选地,所述第二运算结果为针对所述第N-1帧数据的校验位。

可选地,所述第一运算为利用H编码矩阵的子矩阵A和C进行的运算,所述第二运算为利用所述H编码矩阵的子矩阵T、E、B和D进行的运算。

通过上述技术方案,由于在对第N帧数据进行第一运算期间,基于对第N-1帧数据进行第一运算输出的第一运算结果进行第二运算,因此针对第N帧数据的运算和针对第N-1帧数据的运算之间会部分地并行进行(如图2所示),因此这不仅能够提高编码器的编码处理能力,而且还能够减小编码器的数据处理延时和输出延时。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据本公开一种实施例的编码方法的流程图;

图2是根据本公开一种实施例的编码时序图;

图3是根据本公开又一实施例的编码方法流程图;

图4是根据本公开一种实施例的将帧数据和校验位写入输出存储器的方法的流程图。

图5是根据本公开又一实施例的编码时序图;

图6是根据本公开一种实施方式的编码装置的示意框图;

图7是根据本公开又一实施方式的编码装置的示意框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

根据本公开的一个实施例,提供一种编码方法,如图1所示,该方法可以包括以下步骤S101至S103。

在步骤S101中,读取待编码的第N帧数据;

在步骤S102中,对所述第N帧数据进行第一运算,输出第一运算结果;

在步骤S103中,在对所述第N帧数据进行所述第一运算期间,基于对第N-1帧数据进行所述第一运算输出的第一运算结果进行第二运算,输出第二运算结果,其中,N为正整数。

其中,该步骤中所述的第二运算结果为针对所述第N-1帧数据的校验位。

通过上述技术方案,由于在对第N帧数据进行第一运算期间,基于对第N-1帧数据进行第一运算输出的第一运算结果进行第二运算,因此针对第N帧数据的运算和针对第N-1帧数据的运算之间会部分地并行进行(如图2所示),因此这不仅能够提高编码器的编码处理能力,而且还能够减小编码器的数据处理延时和输出延时。

另外,根据该实施例的方法利用了两个缓存器,也即第一缓存器和第二缓存器,其中第一缓存器用于存储进行第一运算所需的帧数据,第二缓存器用于存储进行第二运算所需的第一运算结果。因此,为了确保所有帧数据都准确编码,需要在第N-1帧数据的第二运算完成之后,才能够开始第N+1帧数据的第一运算。因此,在一种可能的实施方式中,如图3所示,根据该实施例的方法还可以包括以下步骤:

在步骤S301中,反复读写对所述第N帧数据进行缓存的第一缓存器,来对所述第N帧数据进行所述第一运算。

在该步骤中,读取的第N帧数据首先被缓存在第一缓存器中,然后由于对第N帧数据进行第一运算时需要反复用到第N帧数据,因此需要在此期间反复读写第一缓存器来获取第N帧数据。而且,如果在第N-1帧数据的第二运算完成之前,对第N帧数据的第一运算已经完成,则该第一运算得到的第一运算结果会被暂时缓存在第一缓存器中,并在第N-1帧数据的第二运算完成之后,该第一运算结果才会被复制到第二缓存器中并且才能够开始对第N+1帧数据进行第一运算,具体请参见步骤S302。

在步骤S302中,在基于对所述第N-1帧数据进行所述第一运算输出的第一运算结果进行所述第二运算完成之后,将对所述第N帧数据进行所述第一运算输出的第一运算结果从所述第一缓存器复制到第二缓存器以基于对所述第N帧数据进行所述第一运算输出的第一运算结果进行所述第二运算,并读取第N+1帧数据。

通过步骤S301和S302,就能够确保所有的校验位都准确计算。

另外,根据该实施例的方法还能够将各个帧数据及其校验位写入到输出存储器中。在这种情况下,如图4所示,根据该实施例的方法还可以包括以下步骤:

在步骤S401中,在所述第N帧数据和所述第N-1帧数据各自的读取期间,分别通过第一多路选择器和第二多路选择器将所述第N-1帧数据和所述第N帧数据分别写入到输出存储器中的第一存储单元和第二存储单元;

在步骤S402中,将基于对所述第N-1帧数据进行所述第一运算输出的第一运算结果进行第二运算输出的第二运算结果通过所述第一多路选择器写入到所述第一存储单元;

在步骤S403中,将基于对所述第N帧数据进行所述第一运算输出的第一运算结果进行所述第二运算输出的第二运算结果通过所述第二多路选择器写入到所述第二存储单元。

通过步骤S401至S403,就能够在每个帧数据的读取期间,将该帧数据写入到输出存储中的相应存储单元中,并在该帧数据的校验位计算完成之后,将校验位写入到相应的存储单元中,从而实现帧数据的编码,并可以平衡整个数据通路的数据吞吐量,达到一定的缓存作用。

另外,这里的第一存储单元和第二存储单元可以分别使用一帧存储大小的存储器来实现,就能够满足缓存的要求。

以下结合图2对根据该实施例的编码方法的流程进行详细描述。

首先,读取第一帧数据,对第一帧数据进行第一运算,同时把第一帧数据写入到输出存储器的第一存储单元中;

然后,在对第一帧数据进行第一运算期间,需要反复读写对第一帧数据进行缓存的第一缓存器;

然后,在第一帧数据的第一运算完成之后,将得到的第一运算结果从第一缓存器复制到第二缓存器;

然后基于第二缓存器中缓存的针对第一帧数据的第一运算结果,进行第二运算,以得到第二运算结果,同时,读取第二帧数据并对缓存第二帧数据的第一缓存器进行反复读写以对第二帧数据进行第一运算,并将第二帧数据写入到输出存储器的第二存储单元中;

然后,在基于第一帧数据的第一运算结果进行第二运算完成之后,将得到的校验位写入到第一存储单元中;

然后,在基于第二帧数据的第一运算完成,并且基于第一帧数据的第一运算结果进行的第二运算完成之后,把第二帧数据的第一运算结果从第一缓存器复制到第二缓存器;

然后,读取第三帧数据并将其缓存在第一缓存器中,反复读写第一缓存器以对第三帧数据进行第一运算,同时对第二帧数据的第一运算结果进行第二运算;

如此循环,直至完成所有帧数据的校验位计算为止。

上面描述的流程的时序图如图5所示。其中,Bit_mem1_wr表示第一存储单元的写入时序,Bit_mem2_wr表示第二存储单元的写入时序,Op_s1_end表示第一运算完成标识,Op_end表示第二运算完成标识,Bit_mem1_lock表示与第一存储单元对应的帧数据的读取锁定时序,Bit_mem2_lock表示与第二存储单元对应的帧数据的读取锁定时序。

从图5所示的时序图中能够看出,比如,在第一帧数据的第一运算完成之后但第二运算完成之前,将不能开始第三帧数据的第一运算,也就是说,第一帧数据的第一运算完成后,可以开始第二帧数据的第一运算,但在第二帧数据的第一运算完成后但第一帧数据的第二运算完成之前,不能开始第三帧数据的第一运算,即在第二帧数据的第一运算完成后,只有在第一帧数据的第二运算也完成后,才能开始第三帧数据的第一运算。

另外,在一种可能的实施方式中,所述第一运算可以为利用H编码矩阵的子矩阵A和C进行的运算,所述第二运算可以为利用所述H编码矩阵的子矩阵T、E、B和D进行的运算。本公开实施例不对H编码矩阵的具体结构进行限制。

根据本公开的又一实施例,还提供一种编码装置,如图6所示,该装置可以包括:

读取模块601,用于读取待编码的第N帧数据;

第一运算模块602,用于对所述第N帧数据进行第一运算,输出第一运算结果;

第二运算模块603,用于在所述第一运算模块对所述第N帧数据进行所述第一运算期间,基于对第N-1帧数据进行所述第一运算输出的第一运算结果进行第二运算,输出第二运算结果,其中,N为正整数。

其中,所述第二运算结果为针对所述第N-1帧数据的校验位。

通过上述技术方案,由于在第一运算模块602对第N帧数据进行第一运算期间,第二运算模块603基于对第N-1帧数据进行第一运算输出的第一运算结果进行第二运算,因此针对第N帧数据的运算和针对第N-1帧数据的运算之间会部分地并行进行(如图2所示),因此这不仅能够提高编码器的编码处理能力,而且还能够减小编码器的数据处理延时和输出延时。

在一种可能的实施方式中,如图7所示,根据该实施例的装置还可以包括第一缓存器604和第二缓存器605,

所述第一运算模块,还用于反复读写对所述第N帧数据进行缓存的所述第一缓存器,来对所述第N帧数据进行所述第一运算;

所述第一缓存器604和所述读取模块601,还用于在所述第二计算模块603基于对所述第N-1帧数据进行所述第一运算输出的第一运算结果进行所述第二运算完成之后,分别将所述第一运算模块602对所述第N帧数据进行所述第一运算输出的第一运算结果从所述第一缓存器604复制到第二缓存器605以便所述第二计算模块603基于所述第一计算模块602对所述第N帧数据进行所述第一运算输出的第一运算结果进行所述第二运算,和读取第N+1帧数据。

在一种可能的实施方式中,如图7所示,根据该实施例的装置还可以包括输出存储器606、第一多路选择器607和第二多路选择器608,所述输出存储器606包括第一存储单元606a和第二存储单元606b:

所述第一存储单元606a,用于在所述第N-1帧数据的读取期间,通过所述第一多路选择器607被写入所述第N-1帧数据,以及通过所述第一多路选择器607被写入所述第二运算模块603基于所述第一运算模块602对所述第N-1帧数据进行所述第一运算输出的第一运算结果进行第二运算输出的第二运算结果;

所述第二存储单元606b,用于在所述第N帧数据的读取期间,通过所述第二多路选择器608被写入所述第N帧数据,以及通过所述第二多路选择器608被写入所述第二运算模块603基于所述第一运算模块602对所述第N帧数据进行所述第一运算输出的第一运算结果进行所述第二运算输出的第二运算结果。

在一种可能的实施方式中,所述第一运算可以为利用H编码矩阵的子矩阵A和C进行的运算,所述第二运算可以为利用所述H编码矩阵的子矩阵T、E、B和D进行的运算。

根据本公开实施例的编码装置中各个模块所执行的操作的具体实施方式已经在根据本公开的编码方法中进行了详细描述,此处不再赘述。

另外,虽然根据本公开实施例的编码装置中的逻辑资源与现有技术相比,只是增加了第二缓存器605和一路多路选择器,但是却能够实现第N-1帧数据的第二运算与第N帧数据的第一运算的并行计算,从而能够大大改善编码器的编码处理能力,减小编码器的数据处理延时和输出延时。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1