CN101355401B - 一种turbo码译码方法及装置 - Google Patents
一种turbo码译码方法及装置 Download PDFInfo
- Publication number
- CN101355401B CN101355401B CN2007101307549A CN200710130754A CN101355401B CN 101355401 B CN101355401 B CN 101355401B CN 2007101307549 A CN2007101307549 A CN 2007101307549A CN 200710130754 A CN200710130754 A CN 200710130754A CN 101355401 B CN101355401 B CN 101355401B
- Authority
- CN
- China
- Prior art keywords
- decoding
- data block
- sub
- piece
- length
- 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
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种turbo码译码方法及装置,其中,所述方法包括:根据接收到的数据块的信息和预定的优选准则将所述数据块分成至少一个子块,并根据译码处理器的状态给所述子块分配译码处理器;对所述子块进行译码迭代,并根据所述子块的配置信息将译码迭代后的子块进行合并输出;根据译码迭代停止准则判断是否完成译码,当确认译码完成后,输出译码结果。本发明通过增加优选控制器和数据合并控制器,达到减少并行turbo码译码的额外开销,提高译码速度的目的,并且在译码处理器数目确定的情况下可以充分地使用资源。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种turbo码译码的方法及装置。
背景技术
随着3G、4G通信技术的发展,数据传输速度的要求越来越高。译码技术作为通信系统核心组成部分之一,其吞吐量的提高需要有高速算法和高速架构的支持。
目前,对于turbo码译码所采用的处理方法为分块并行译码,包括:将接收到的数据按照约束长度和输入数据长度分成n个子块,每个子块长度为Lf,并采用n个并行译码处理器,同时译码。为了保证译码的正确性,需要有一个5倍及其以上约束长度的递推作为预处理,然后才开始子块译码。这里的子块并不是简单的将总长度平均为n块,而是每一子块会有一定数目比特重叠。
进行分块并行译码时所采用的装置,其结构如图1所示,主要包括数据块分块模块、数据块合并模块、迭代停止判定模块和译码处理器组成。数据块输入到数据块分块模块后,所有长度的数据块都被分为n个相同长度的子块,分别送入n个译码处理器进行译码;译码处理器的数据输出到数据块合并模块,然后经过迭代停止判定模块判断是否译码完成,完成了则输出结果,没有完成则继续进行迭代。
当需要达到的纠错性能在被确定之后,重叠比特的数目(即训练长度)由且只由约束长度决定,如果数据块很小,就会带来过多的额外开销。分块并行的目的是为了增加系统吞吐量,减少译码延时,当数据块长度很小时,数据块长度和重叠比特长度比(数据块长度/重叠比特长度)小于某个常数以后,额外开销增加过多,系统整体的吞吐量(单位时间处理的数据量)反而降低,增加了数据块译码延时。
发明内容
本发明提供一种turbo码译码方法及装置,通过增加优选控制器和数据合并控制器,达到减少并行turbo码译码的额外开销,提高译码速度的目的。
本发明提供了一种turbo码译码方法,所述方法包括:
根据接收到的数据块的信息和预定的优选准则将所述数据块分成至少一个子块,并根据译码处理器的状态给所述子块分配译码处理器;所述优选准则具体包括:在允许的额外开销范围内取一个译码速度、译码延迟、资源利用率、分块数目的平衡;所述优选准则中的译码速度和分块数目由额外开销比重系数和译码延迟系数综合决定,其中,
额外开销比重系数=训练长度/(子块长度+训练长度),
译码延迟系数=数据块分块并行的译码时间/数据块不分子块的译码时间;
对所述子块进行译码迭代,并根据所述子块的配置信息将译码迭代后的子块进行合并输出;
根据译码迭代停止准则判断是否完成译码,当确认译码完成后,输出译码结果。
本发明所述方法中,所述根据接收到的数据块的信息和预定的优选准则将所述数据块分成至少一个子块的步骤具体包括:
根据数据块的信息和预定的优选准则将所述数据块进行分块,所述数据块的信息包括数据块长度和约束长度;
当所述数据块长度超过预定值时,将所述数据块分成多个子块;否则,将所述数据块作为一个子块处理。
所述根据译码处理器的状态给所述子块分配译码处理器的步骤具体包括:
当所有译码处理器全部处于空闲状态时,将所述子块分配给所有或部分译码处理器;或者,
当所有译码处理器中只有部分译码处理器处于空闲状态时,将所述分块后得到的子块分配给所有或部分处于空闲状态的译码处理器;或者,
当所述子块的数目大于处于空闲状态的译码处理器的数目时,先给部分子块分配全部空闲译码处理器,进行译码处理;当进行译码处理的译码处理器变为空闲状态时,对未分配的子块分配空闲译码处理器。
所述子块的配置信息包括:所述子块长度,分配的译码处理的数目和分配的译码处理器的位置。
本发明还提供了一种turbo码译码装置,所述装置包括:数据块分块模块、优选控制模块、数据块合并模块、迭代停止判定模块和至少一个译码处理器,
数据块分块模块,用于接收完整的数据块,并将所述数据块进行分块;
优选控制模块,用于根据接收到的数据块的信息和预定的优选准则控制所述数据块分块模块将所述数据块进行分块,并根据译码处理器的状态给分块后得到的子块分配译码处理器,并将所有所述子块的信息发送给数据块合并控制器,所述子块的信息包括:子块的长度、优选控制器给子块分配的译码处理器的数目,以及分配的译码处理器的位置;所述优选准则具体包括:在允许的额外开销范围内取一个译码速度、译码延迟、资源利用率、分块数目的平衡;所述优选准则中的译码速度和分块数目由额外开销比重系数和译码延迟系数综合决定,其中,
额外开销比重系数=训练长度/(子块长度+训练长度),
译码延迟系数=数据块分块并行的译码时间/数据块不分子块的译码时间;
译码处理器,用于对接收到的子块进行译码迭代;
数据块合并模块,用于将译码迭代后的子块进行合并输出;
迭代停止判定模块,用于根据译码迭代停止准则判断是否完成译码,当确认译码完成后,输出译码结果。
综上所述,本发明提供一种turbo码译码方法及装置,通过增加优选控制器和数据合并控制器,达到减少并行turbo码译码的额外开销,提高译码速度的目的,并且在译码处理器数目确定的情况下可以充分地使用资源。
附图说明
图1为现有技术中的译码处理装置的结构示意图;
图2为本发明实施例所述方法的流程示意图;
图3为本发明实施例所述装置的结构示意图。
具体实施方式
下面结合附图对本发明实施例所述方法及装置进行详细说明。
如图2所示,本发明实施例所述turbo码译码方法,具体包括以下步骤:
步骤21、数据块分块模块接收到完整数据块,并将所述数据块的信息发送给优选控制器,所述数据块的信息包括:数据块长度和约束长度。
步骤22、优选控制器检测当前处于空闲状态的并行译码处理器的个数;然后根据预先设定的优选准则和从数据块分块模块得到的数据块信息,控制数据块分块模块将所述数据块分成至少一个子块,具体可以包括如下情况:
如果数据块长度很长,子块数目就比较多;
如果数据块长度很短,子块数目就比较少;
如果数据块长度非常短,可以不做分块处理。
步骤23、优选控制器为所述子块分配译码处理器,并将所有所述子块的信息发送给数据块合并控制器,所述子块的信息包括:子块的长度、优选控制器给子块分配的译码处理器的数目,以及分配的译码处理器的位置;所述优选控制器给数据块的子块分配译码处理器可以包括下述3种情况:
一个完整数据块的所有子块刚好占用全部译码处理器;
前一个或者几个完整数据块分成的子块正占用部分译码处理器,部分空闲;当前数据块子块则分配剩下空闲的部分或者全部译码处理器;多独立数据块子块并行处理;
当一个完整数据块子块数目大于当前空闲译码器数目时,先对部分数据块子块分配全部空闲的译码处理器,当有先前被占用的译码处理器变为空闲状态时,则对剩下未分配的子块分配译码处理器。
步骤24、对所述子块进行译码迭代,如果所述子块为多个,可以同时对所述多个子块进行译码迭代;所述译码迭代的具体处理过程在现有技术中已有成熟解决方案,此处不再赘述。
步骤25、将完成迭代处理的子块输出到数据块合并控制器的缓存当中,数据块合并控制器控制监控得到的子块,当接收完一个完整的数据块时,则将所有子块合并成一个完整的数据块,输出并释放掉处理子块数据占用的译码处理器,并发送一个反馈信息到优选控制器。
步骤26、根据译码迭代停止准则判断是否译码完成,同时发送一个反馈到数据块合并控制器;当确认译码完成时,输出译码结果。所述迭代停止判定准则是指,turbo码分量码译码至少需要进行两次迭代才能比较译码结果,在接收端数据块出现误码的时候,迭代次数越多纠错性能越强。通常情况下,在迭代次数达到16次以后,纠错性能已经接近极限;而当信道条件在极差的时候,有这样一种可能性,数据块永远无法正确译出。迭代停止判定准则可以包括:步骤一,当前迭代是否为第一次迭代,如果是则直接到步骤四,否则进行下一步骤;步骤二,迭代次数是否达到设定的最大次,如果达到,则给出当前数据块译码结束信号,输出当前迭代的译码结果;没有达到则进行下一步骤;步骤三,本次迭代和上次迭代结果是否完全一致,如果完全一致,则给出当前数据块译码结束信号,输出当前迭代的译码结果;否则进行下一步骤;步骤四,给出继续迭代的信号。由于现有技术中对于所述译码迭代停止准则已有详细阐述,此处就不再赘述。
另外,本发明实施例中的所述优选准则是指,在允许的额外开销范围内取一个译码速度、译码延迟、资源利用率、分块数目的平衡,具体的说就是,额外开销是由数据子块块首和块尾的训练长度引起的,当要求的译码性能一定,即训练长度就确定了;额外开销比重系数=重叠比特长度/(数据子块长度+重叠比特长度),额外开销比重系数越小越好;译码延迟系数=数据块分块并行的译码时间/数据块不分子块的译码时间,越小越好;分块数目和译码速度则由设定的额外开销比重系数和译码延迟系数综合来决定。
以IEEE 802.16d双二进制turbo卷积码编码为例,其约束长度为3,编码数据块最短的长度为24个格栅,最长的为240个格栅。根据要求达到的纠错性能确定训练长度,对纠错性能要求不高时,可以将训练长度选为16个格栅,对纠错性能要求很高时,可以将训练长度选为32个格栅。设额外开销比重系数<0.4,译码延迟系数<0.8,若两个系数只能满足其中一个或者只能接近一个,则额外开销比重系数应优先满足优先;在满足额外开销比重系数的情况下,译码延迟系数越小越好;比如,
1、当数据块长度为24个格栅时,训练长度选取16,
不分块:
额外开销比重系数=(16+16)/(24+16+16)=0.57
译码延迟系数=1;
分2个子块:
额外开销比重系数=(16+16)/(12+16+16)=0.73
译码延迟系数=(16+16+12)/(24+16+16)=0.79;
短数据块额外开销太高,按照优选准则,此种情况应该不分块;
2、当数据块长度为24个格栅时,训练长度选取32;
不分块:
额外开销比重系数=(32+32)/(24+32+32)=0.73
译码延迟系数=1
分2个子块:
额外开销比重系数=(32+32)/(12+32+32)=0.84
译码延迟系数=(32+32+12)/(24+32+32)=0.86;
短数据块额外开销太高,按照优选准则,此种情况应该不分块;
3、当数据块长度为240个格栅时,训练长度选取16;
不分块:
额外开销比重系数=(16+16)/(240+16+16)=0.125
译码延迟系数=1;
分2个子块:
额外开销比重系数=(16+16)/(120+16+16)=0.21
译码延迟系数=(16+16+120)/(240+16+16)=0.56;
分3个子块:
额外开销比重系数=(16+16)/(80+16+16)=0.29
译码延迟系数=(16+16+80)/(240+16+16)=0.41;
分4个子块:
额外开销比重系数=(16+16)/(60+16+16)=0.35
译码延迟系数=(16+16+60)/(240+16+16)=0.34;
分5个子块:
额外开销比重系数=(16+16)/(48+16+16)=0.4
译码延迟系数=(16+16+48)/(240+16+16)=0.29;
按照优选准则,此种情况应该分4个子块;
4、当数据块长度为240个格栅时,训练长度选取32;
不分块:
额外开销比重系数=(32+32)/(240+64)=0.21
译码延迟系数=1
分2个子块:
额外开销比重系数=(32+32)/(120+64)=0.35
译码延迟系数=(32+32+120)/(32+32+240)=0.6
分3个子块:
额外开销比重系数=(32+32)/(80+64)=0.44
译码延迟系数=(32+32+80)/(32+32+240)=0.47
分4个子块:
额外开销比重系数=(32+32)/(60+64)=0.52
译码延迟系数=(32+32+60)/(32+32+240)=0.41
按照优选准则,此种情况应该分2个子块。
下面结合附图对本发明实施例所述装置进行详细说明。
如图3所示,本发明实施例所述装置具体包括:包括:数据块分块模块、优选控制模块、数据块合并模块、迭代停止判定模块和至少一个译码处理器,其中,
数据块分块模块,用于接收完整的数据块,并将所述数据块进行分块;具体的说就是,数据块分块模块接收到完整数据块,并将所述数据块的信息发送给优选控制器,所述数据块的信息包括:数据块长度和约束长度。
优选控制模块,用于根据接收到的数据块的信息和预定的优选准则控制所述数据块分块模块将所述数据块进行分块,并根据译码处理器的状态给分块后得到的子块分配译码处理器。
译码处理器,用于对接收到的子块进行译码迭代,如果所述子块为多个,可以同时对所述多个子块进行译码迭代;所述译码迭代的具体处理过程在现有技术中已有成熟解决方案,此处不再赘述。
数据块合并模块,用于将译码迭代后的子块进行合并输出;具体的说就是,数据块合并模块将完成迭代处理的子块输出到数据块合并控制器的缓存当中,所述数据块合并模块监控得到的子块,当接收完一个完整的数据块时,则将所有子块合并成一个完整的数据块,输出并释放掉处理子块数据占用的译码处理器,并发送一个反馈信息到优选控制器。
迭代停止判定模块,用于根据译码迭代停止准则判断是否完成译码,当确认译码完成后,输出译码结果,否则,继续迭代。
对于装置中各个模块的具体处理过程,由于在前面方法中已作详细描述,此处就不再赘述。
综上所述,本发明实施例提供了一种turbo码译码方法及装置,比传统并行分块译码方法增加了一个优选控制器和一个数据块合并控制器,优选控制器主要控制数据块分块模块,数据块合并控制器主要控制数据块合并模块,并通过交互信息协同工作。数据块分块模块接收到完整的数据块之后先发送信息到优选控制器对当前数据块进行优选判断,数据块分块模块根据判断结果将数据块分块,并由优选控制器为各个子块分配译码处理器进行处理。利用一个分块优选控制器可以减少并行turbo码译码的额外开销,提高译码速度,并且在译码处理器数目确定的情况下可以最充分地使用资源。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种turbo码译码方法,其特征在于,包括:
根据接收到的数据块的信息和预定的优选准则将所述数据块分成至少一个子块,并根据译码处理器的状态给所述子块分配译码处理器;所述优选准则具体包括:在允许的额外开销范围内取一个译码速度、译码延迟、资源利用率、分块数目的平衡;所述优选准则中的译码速度和分块数目由额外开销比重系数和译码延迟系数综合决定,其中,
额外开销比重系数=训练长度/(子块长度+训练长度),
译码延迟系数=数据块分块并行的译码时间/数据块不分子块的译码时间;
对所述子块进行译码迭代,并根据所述子块的配置信息将译码迭代后的子块进行合并输出;
根据译码迭代停止准则判断是否完成译码,当确认译码完成后,输出译码结果。
2.根据权利要求1所述的方法,其特征在于,所述根据接收到的数据块的信息和预定的优选准则将所述数据块分成至少一个子块的步骤具体包括:
根据数据块的信息和预定的优选准则将所述数据块进行分块,所述数据块的信息包括数据块长度和约束长度;
当所述数据块长度超过预定值时,将所述数据块分成多个子块,否则,将所述数据块作为一个子块处理。
3.根据权利要求1所述的方法,其特征在于,所述根据译码处理器的状态给所述子块分配译码处理器的步骤具体包括:
当所有译码处理器全部处于空闲状态时,将所述子块分配给所有或部分译码处理器;或者,
当所有译码处理器中只有部分译码处理器处于空闲状态时,将所述分块后得到的子块分配给所有或部分处于空闲状态的译码处理器;或者,
当所述子块的数目大于处于空闲状态的译码处理器的数目时,先给部分子块分配全部空闲译码处理器,进行译码处理;当进行译码处理的译码处理器变为空闲状态时,对未分配的子块分配空闲译码处理器。
4.根据权利要求1所述的方法,其特征在于,所述子块的配置信息至少包括:所述子块长度,分配的译码处理的数目和分配的译码处理器的位置。
5.一种turbo码译码装置,其特征在于,至少包括:数据块分块模块、优选控制模块、数据块合并模块、迭代停止判定模块和至少一个译码处理器,
所述数据块分块模块,用于接收完整的数据块,并将所述数据块进行分块;
所述优选控制模块,用于根据接收到的数据块的信息和预定的优选准则控制所述数据块分块模块将所述数据块进行分块,并根据译码处理器的状态给分块后得到的子块分配译码处理器,并将所有所述子块的信息发送给数据块合并控制器;所述优选准则具体包括:在允许的额外开销范围内取一个译码速度、译码延迟、资源利用率、分块数目的平衡;所述优选准则中的译码速度和分块数目由额外开销比重系数和译码延迟系数综合决定,其中,
额外开销比重系数=训练长度/(子块长度+训练长度),
译码延迟系数=数据块分块并行的译码时间/数据块不分子块的译码时间;
所述译码处理器,用于对接收到的子块进行译码迭代;
所述数据块合并模块,用于将译码迭代后的子块进行合并输出;
所述迭代停止判定模块,用于根据译码迭代停止准则判断是否完成译码,当确认译码完成后,输出译码结果。
6.按照权利要求5所述的一种turbo码译码装置,其特征在于,所述子块的信息至少包括:子块的长度、优选控制器给子块分配的译码处理器的数目,以及分配的译码处理器的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101307549A CN101355401B (zh) | 2007-07-23 | 2007-07-23 | 一种turbo码译码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101307549A CN101355401B (zh) | 2007-07-23 | 2007-07-23 | 一种turbo码译码方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101355401A CN101355401A (zh) | 2009-01-28 |
CN101355401B true CN101355401B (zh) | 2011-08-24 |
Family
ID=40308016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101307549A Expired - Fee Related CN101355401B (zh) | 2007-07-23 | 2007-07-23 | 一种turbo码译码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101355401B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102098127B (zh) * | 2009-12-15 | 2014-11-05 | 上海贝尔股份有限公司 | 多用户域并行解码方法和装置 |
CN101807971B (zh) * | 2010-03-08 | 2013-03-20 | 上海华为技术有限公司 | Turbo码译码方法及系统 |
CN102655440A (zh) * | 2011-03-03 | 2012-09-05 | 中兴通讯股份有限公司 | 对多套Turbo译码器进行调度的方法和装置 |
CN106559172B (zh) * | 2015-09-28 | 2019-09-27 | 展讯通信(上海)有限公司 | 译码控制方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1375939A (zh) * | 2001-03-19 | 2002-10-23 | 三菱电机株式会社 | 性能约束条件下编码数据块尺寸最佳化的方法 |
CN1375948A (zh) * | 2001-03-19 | 2002-10-23 | 三菱电机株式会社 | 在资源约束条件下编码数据块尺寸最佳化的方法 |
CN1455565A (zh) * | 2003-03-17 | 2003-11-12 | 西南交通大学 | 一种用于数字通信差错控制的基于分块处理的并行Turbo编译码方法 |
CN1913368A (zh) * | 2005-08-11 | 2007-02-14 | 中兴通讯股份有限公司 | 一种自适应turbo译码的方法 |
-
2007
- 2007-07-23 CN CN2007101307549A patent/CN101355401B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1375939A (zh) * | 2001-03-19 | 2002-10-23 | 三菱电机株式会社 | 性能约束条件下编码数据块尺寸最佳化的方法 |
CN1375948A (zh) * | 2001-03-19 | 2002-10-23 | 三菱电机株式会社 | 在资源约束条件下编码数据块尺寸最佳化的方法 |
CN1455565A (zh) * | 2003-03-17 | 2003-11-12 | 西南交通大学 | 一种用于数字通信差错控制的基于分块处理的并行Turbo编译码方法 |
CN1913368A (zh) * | 2005-08-11 | 2007-02-14 | 中兴通讯股份有限公司 | 一种自适应turbo译码的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101355401A (zh) | 2009-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101355401B (zh) | 一种turbo码译码方法及装置 | |
CN1148880C (zh) | 用于通信系统的信道编码/解码装置和方法 | |
CN102624403B (zh) | 用于对级联纠错码的有效解码的方法和系统 | |
US20060193404A1 (en) | Cycle-stealing decoding apparatus, systems, and methods | |
CN110572165B (zh) | 编码的速率匹配处理方法和装置 | |
CN102355341A (zh) | 一种长期演进系统用混合自动重传请求的网络编码方法 | |
JP2002529953A (ja) | 効率的なインターリーブ復号処理 | |
EP2281358B1 (en) | Efficient parallel sub-packet decoding using multiple decoders, controller and task instructions | |
CN1913368A (zh) | 一种自适应turbo译码的方法 | |
EP1973234A1 (en) | Optimised code block segmentation for turbo encoding | |
EP2600551B1 (en) | Method and equipment for increasing bitwise throughput in transmitter of lte base station | |
US20140310578A1 (en) | Decoding apparatus and method | |
CN108494523B (zh) | 一种Polar码的多CRC编码方法 | |
CN101931497A (zh) | 低密度奇偶校验(ldpc)码的译码装置及方法 | |
CN115103194B (zh) | 基于多解码模式的视频解码方法 | |
CN106533454A (zh) | Turbo码译码迭代控制方法及装置 | |
CN115987454A (zh) | 解调译码方法、装置、存储介质及电子设备 | |
CN103227690B (zh) | 解码方法、解码器装置和电子设备 | |
US20020124224A1 (en) | Method and system for matching information rates in turbo coded channels | |
CA2817467C (en) | Method and apparatus for decoding low-density parity-check codes | |
CN109412748B (zh) | 一种极化码编译码方法及装置 | |
WO2008077421A1 (en) | Channel decoder with variable number of decoding iterations | |
CN104393952A (zh) | 一种纠错码译码器 | |
KR20070080989A (ko) | 통신 시스템에서 반복 복호 장치 및 방법 | |
CN103780335A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110824 Termination date: 20190723 |