数据译码的方法及装置
技术领域
本发明涉及无线通信领域,尤其涉及一种数据译码的方法及装置。
背景技术
随着无线通信技术的迅猛发展,无线网络中的数据传输量逐步提高,导致移动终端在单位时间内需要译码的数据量越来越大,这就要求移动终端采取更加高效的译码方式译码数据。
现有的译码方式主要为分步译码,例如:
HS-DSCH(HighSpeedDownlinkSharedChannel,高速下行分享信道)是运用在WCDMA(WidebandCodeDivisionMultipleAccess,宽带码分多址)中的一种信道,在HS-DSCH上的译码方式大致为:整个译码过程中所涉及的执行步骤被划分为多个具有一定先后顺序的译码单元,同时,将需要进行译码的数据分为多个传输块(TransportBlock)。如图1所示,在WCDMA的译码过程中,先将一个传输块放入译码单元1,译码单元1利用相应的译码资源(硬件设备等)对这一个传输块进行数据译码,当译码单元1译码完毕后,再将经过数据译码的这一个传输块传递给译码单元2进行数据译码,同时译码单元1开始译码下一个传输块,即前一个译码单元完成整个传输块的译码后,下一个译码单元才能开始工作,直至一个传输块经过了所有的译码单元的译码,当所有的传输块经过了所有译码单元的译码后,数据译码完毕。其中,在数据译码过程中,各个译码单元进行数据译码所需的时间不相同,所需时间较长的译码单元正在译码一个传输块时,若后一个译码单元已经完成了上一个传输块的数据译码,则后一个译码单元在接收到前一个译码单元传递的传输块之前进入等待状态。
现有技术中至少存在如下问题:
采用现有的分步译码的方式,每个传输块的数据只有在前一个译码单元中被译码完毕后,才能被下一个译码单元继续译码,由于各个译码单元进行数据译码所需的时间不相同,所需时间较长的译码单元在译码一个传输块时,后续的译码单元出现空闲、等待的情况,导致译码资源的利用率较低,译码效率低。
发明内容
本发明的实施例提供一种数据译码的方法及装置,能够提高译码过程中资源的利用率,从而提高译码效率。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,本发明的实施例提供一种数据译码的方法,包括:
将待译码的数据传输块划分为N个代码块,其中N为大于2的整数;
按照逆编码方向,对所述N个代码块进行并行译码。
另一方面,本发明的实施例提供一种数据译码的装置,包括:
传输块划分模块,用于将待译码的数据传输块划分为N个代码块,其中N为大于2的整数;
代码块译码模块,用于按照逆编码方向,对所述N个代码块进行并行译码。
本发明实施例提供的数据译码的方法及装置,能够将划分成传输块的待译码数据进一步细分为代码块,并以代码块为单位对待译码数据进行译码,实现了译码设备中的多个部分能够同时对一个传输块进行数据译码(即译码设备可以同时分别译码由同一个传输块所划分出的不同代码块),从而避免了以传输块为单位进行译码时,译码设备出现的空闲、等待的情况。与现有技术相比,本发明实施例能够避免数据译码过程中译码设备所出现的空闲、等待的情况,从而提高译码过程中资源的利用率,提高了译码效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为现有技术中译码过程的流程示意图;
图2为本发明提供的具体译码过程的流程示意图;
图3为本发明实施例1提供的数据译码的方法的流程图;
图4为本发明实施例2提供的数据译码的方法的流程图;
图5为本发明实施例2提供的具体译码过程的流程示意图;
图6为本发明实施例3提供的数据译码的装置的结构示意图;
图7为本发明实施例4提供的数据译码的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。
实施例1
本发明实施例提供一种数据译码的方法,如图3所示,该方法包括:
在实际应用中,数据译码流程可以划分为多个译码单元,例如:如图2所示,为运用在在WCDMA发射端的HS-DSCH信道(采用3GPP/25.212协议)的编码以及译码过程,其中,接收端的译码过程就是编码过程的逆过程。按译码流程顺序,译码功能可以划分为多个译码单元。当前一个译码单元完成对于一个传输块或代码块的数据译码后,后一个译码单元接收前一个译码单元的数据译码结果并开始工作,比如,可以划分为图2所示的三个译码单元。
当待译码数据(即经过完整的编码过程最终得到的编码结果)经过全部3个译码单元的数据译码后,对于该数据的译码结束,并输出译码数据(最终得到的译码结果)。其中,划分译码单元的具体方式可以是本领域技术人员所熟知的任意实现方式,在此不做赘述。
步骤301,将待译码的数据传输块划分为N个代码块。
其中,N为大于2的整数。
在本发明可以由一种接收端执行,接收端为通讯系统中用于接收发送端所发送的信息的服务器、终端设备等需要进行译码过程的设备,发送端可以是通讯系统中用于向接收端发送信息的终端设备、基站等需要进行编码过程的设备。
具体的,在本实施例中,接收端在接收到发送端所发送的经过编码的数据(即待译码数据)后,将待译码数据划分成至少一个指定大小的传输块。其中,接收待译码数据以及将待译码数据划分成传输块的具体方式可以是本领域技术人员所熟知的任意实现方式,在此不做赘述。在将待译码数据划分传输块后,接收端将划分出的所有传输块进一步划分为代码块,例如:接收端将待译码数据划分了3个传输块后,进一步将这3个传输块划分为代码块,其中,每个传输块划分为3个代码块,即接收端最后将待译码数据划分为了9个代码块。其中,将传输块分为代码块的具体方式可以是本领域技术人员所熟知的任意实现方式,在此不做赘述。
步骤302,按照逆编码方向,对所述N个代码块进行并行译码。
具体的,在本实施例中,接收端在将待译码数据划分成了代码块后,依次对每个代码块进行译码,当最后一个代码块译码完毕后,接收端完成了对待译码数的据译码。
本发明实施例提供的数据译码的方法,能够将划分成传输块的待译码数据进一步细分为代码块,并以代码块为单位对待译码数据进行译码,实现了译码设备中的多个部分能够同时对一个传输块进行数据译码,从而避免了以传输块为单位进行译码时,译码设备出现的空闲、等待的情况。与现有技术相比,本发明实施例能够避免数据译码过程中译码设备所出现的空闲、等待的情况,从而提高译码过程中资源的利用率,提高了译码效率。
实施例2
本发明实施例提供一种数据译码的方法,如图4所示,该方法包括:
步骤401,根据当前所使用的网络传输协议将待译码数据划分成至少一个所述网络传输协议所指定的大小的数据传输块。
具体的,在本实施例中,接收端在接收到发送端所发送的待译码数据后,根据当前所使用的网络传输协议将待译码数据划分成至少一个所述网络传输协议所指定的大小的传输块。
步骤402,将待译码的数据传输块划分为N个代码块。
其中,N为大于2的整数。
步骤403,按照逆编码顺序,将译码过程划分为至少两个译码单元。
其中,如图2所示,任一译码单元包括一个或多个译码步骤,其中任一译码步骤为编码步骤的逆向解码,每个译码单元能够完成对一个码块的译码处理。
进一步的,如图2所示,当待译码的数据按照TURBO码方式进行编码时,第二译码单元包括TURBO译码器,TURBO译码器之前的译码步骤按照计算和存储的节奏划分为第一译码单元,TURBO译码器之后的译码步骤按照计算和存储的节奏划分为第三译码单元。其中,具体的译码单元的数量可以根据使用环境进行调整,并不只限于三个。例如:如图2所示,在实际应用中,数据译码流程可以划分为译码单元A、译码单元B、译码单元C、译码单元2和译码单元3这五个译码单元,并且译码单元A、译码单元B和译码单元C在实际应用中几乎是同时启动的(时间延时可以忽略),即在常规使用过程中,可以视为译码单元A、译码单元B和译码单元C同时对一个代码块进行了译码,从而节省了译码所需的时间。
步骤404,通过译码单元对所述N个代码块进行并行译码。
其中,并行译码的流程为:
如图5所示,在第一译码时间,第一译码单元对第一代码块进行译码,在第二译码时间,所述第一译码单元对第二代码块进行译码,第二译码单元对所述第一代码块进行译码,在第三译码时间,所述第二译码单元对所述第二代码块进行译码,所述第一译码单元对第三代码块进行译码,直至每个译码单元都完成了对所有的N个代码块的译码处理。例如:
接收端将待译码数据划分为传输块1、传输块2、传输块3,其中,传输块1又被划分为了代码块1、代码块2、代码块3,传输块2又被划分为了代码块4、代码块5、代码块6,传输块3又被划分为了代码块7、代码块8、代码块9,将划分出的9个代码块依次通过图2所示的译码单元进行数据译码,其中,一个译码单元译码完一个代码块后,将该代码块传递给下一个译码单元,并由下一个译码单元对经过该代码块进行译码,比如:译码单元1对代码块1的数据译码完毕后,将被译码单元1译码完毕的代码块1传递给译码单元2,并由译码单元2进行数据译码,同时译码单元1继续对代码块2进行译码,直至所有的译码单元都对代码块1完成了数据译码,同理,对其余8个代码块依次进行数据译码,当最后一个代码块被译码单元3译码完毕后,接收端完成了对待译码数的据译码。
在上述数据译码过程中,由于每个传输块被进一步划分成了多个代码块,使多个译码单元可以同时分别译码由同一个传输块所划分出的不同代码块,例如:译码单元1对代码块1的数据译码完毕后将代码块1传递至译码单元2进行数据译码,同时译码单元1接着译码代码块2,即译码单元1对代码块2进行数据译码的同时,译码单元2也在对代码块1进行数据译码,由于代码块1和代码块2都是由传输块1所划分出的,由此接收端中的译码单元1和译码单元2同时对传输块1进行数据译码,避免了现有技术中以传输块为单位对待译码数据进行译码时译码设备所出现的空闲、等待的现象,从而提高译码过程中译码设备的利用率,提高了译码效率。例如:
以传输块为单位对待译码数据进行译码需要的延迟时间近似估算如下:
设译码单元1处理1个传输块时间为:Tp
译码单元2处理1个传输块时间(译码单元2所对应的译码设备为TURBO译码器,该译码器采用4次迭代)为:4Tp
译码单元3处理1个传输块时间为:Tp
则一个传输块的译码完成所需要的总时间:
Tp+4Tp+Tp=6Tp
以代码块为单位对待译码数据进行译码需要的延迟时间近似估算如下:
以1个传输块被划分为了3个代码块为例,
译码单元1处理1个代码块时间为:1/3*Tp
译码单元2处理1传输块时间为(在实际应用中,TURBO译码器采用4次迭代处理一个代码块所需的时间与处理一个传输块所需的时间相同):4Tp
译码单元3处理1代码块时间为:1/3*Tp
=1/3*Tp+4Tp+1/3*Tp
=4.67Tp
则以代码块为单位进行数据译码比以传输块为单位进行数据译码所造成的延迟时间更小。
更进一步的,数据在接收端上进行译码的过程中需要占用译码设备的存储资源以存储数据,例如:译码单元2接收到代码块1之后,可以先将代码块1储存在译码单元2所对应的译码设备的RAM(RandomAccessMemory,随机存储记忆体)上,译码单元2再对代码块1进行译码,所占用的RAM的大小即为一个代码块的大小,而以传输块为单位进行译码时所占用的RAM的大小为一个传输块的大小。所以,以代码块为单位对待译码数据进行译码时,所占用的存储资源相比以传输块为单位进行译码时将成倍地减少,接收端可以将节省出的存储资源用于处理更多的数据,从而进一步提高译码过程中资源的利用率。
本发明实施例提供的数据译码的方法,能够将划分成传输块的待译码数据进一步细分为代码块,并以代码块为单位对待译码数据进行译码,实现了一个传输块能够在多个译码单元上同时进行数据译码(即多个译码单元可以同时分别译码由同一个传输块所划分出的不同代码块),从而避免了以传输块为单位进行译码时,后续的译码单元所对应的译码设备出现空闲、等待的情况。与现有技术相比,本发明实施例能够避免数据译码过程中译码单元所对应的译码设备出现的空闲、等待的情况,从而提高译码过程中资源的利用率,提高了译码效率。
实施例3
本发明实施例提供一种数据译码的装置,如图6所示,该装置包括:
传输块划分模块61,用于将待译码的数据传输块划分为N个代码块。
其中,N为大于2的整数。
代码块译码模块62,用于按照逆编码方向,对所述N个代码块进行并行译码。
本发明实施例提供的数据译码的装置,能够通过传输块划分模块将划分成传输块的待译码数据进一步细分为代码块,并通过代码块译码模块以代码块为单位对待译码数据进行译码,实现了译码设备中的多个部分能够同时对一个传输块进行数据译码,从而避免了以传输块为单位进行译码时,译码设备出现的空闲、等待的情况。与现有技术相比,本发明实施例能够避免数据译码过程中译码设备所出现的空闲、等待的情况,从而提高译码过程中资源的利用率,提高了译码效率。
实施例4
本发明实施例提供一种数据译码的装置,如图7所示,该装置包括:
传输块划分模块61,用于将待译码的数据传输块划分为N个代码块。
其中,N为大于2的整数。
代码块译码模块62,用于按照逆编码方向,对所述N个代码块进行并行译码。
其中,所述代码块译码模块62包括:
译码过程划分子模块621,用于按照逆编码顺序,将译码过程划分为至少两个译码单元,每个译码单元能够完成对一个码块的译码处理。
其中,任一译码单元包括一个或多个译码步骤,其中任一译码步骤为编码步骤的逆向解码。
译码过程执行子模块622,用于:
在第一译码时间,第一译码单元对第一代码块进行译码,在第二译码时间,所述第一译码单元对第二代码块进行译码,第二译码单元对所述第一代码块进行译码,在第三译码时间,所述第二译码单元对所述第二代码块进行译码,所述第一译码单元对第三代码块进行译码,直至每个译码单元都完成了对所有的N个代码块的译码处理。
其中,当待译码的数据按照TURBO码方式进行编码时,第二译码单元包括TURBO译码器,译码过程还包括第三译码单元。
TURBO译码器之前的译码步骤按照计算和存储的节奏划分为第一译码单元,TURBO译码器之后的译码步骤按照计算和存储的节奏划分为第三译码单元。
在第三译码时间,第三译码单元对第一代码块进行译码。
本发明实施例提供的数据译码的装置,能够通过传输块划分模块将传输块进一步细分为代码块,并通过代码块译码模块以代码块为单位对待译码数据进行译码,实现了一个传输块能够在多个译码单元上同时进行数据译码(即多个译码单元可以同时分别译码由同一个传输块所划分出的不同代码块),从而避免了以传输块为单位进行译码时,后续的译码单元所对应的译码设备出现空闲、等待的情况。与现有技术相比,本发明实施例能够避免数据译码过程中译码单元所对应的译码设备出现的空闲、等待的情况,从而提高译码过程中资源的利用率,提高了译码效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。