CN105847848A - 一种高效视频编码中判定滤波强弱的可重构阵列结构 - Google Patents

一种高效视频编码中判定滤波强弱的可重构阵列结构 Download PDF

Info

Publication number
CN105847848A
CN105847848A CN201510789121.3A CN201510789121A CN105847848A CN 105847848 A CN105847848 A CN 105847848A CN 201510789121 A CN201510789121 A CN 201510789121A CN 105847848 A CN105847848 A CN 105847848A
Authority
CN
China
Prior art keywords
processing elements
filtering
depositor
condition
loaded
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.)
Granted
Application number
CN201510789121.3A
Other languages
English (en)
Other versions
CN105847848B (zh
Inventor
刘有耀
杨倩
吴进
山蕊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian University of Posts and Telecommunications
Original Assignee
Xian University of Posts and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian University of Posts and Telecommunications filed Critical Xian University of Posts and Telecommunications
Priority to CN201510789121.3A priority Critical patent/CN105847848B/zh
Publication of CN105847848A publication Critical patent/CN105847848A/zh
Application granted granted Critical
Publication of CN105847848B publication Critical patent/CN105847848B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)

Abstract

本发明涉及一种高效视频编码中判定滤波强弱的可重构阵列结构,针对亮度分量8×4块大小的垂直边界,使用7个处理元阵列,可以并行判断出该垂直边界滤波的强弱程度。垂直边界处理结束后,通过编程重构该结构可以实现亮度分量中4×8大小的水平边界滤波强弱的判定。本发明可以并行判断出滤波强弱程度,缩短了编解码时间,加快了编解码过程。

Description

一种高效视频编码中判定滤波强弱的可重构阵列结构
技术领域
本发明涉及视频压缩编码技术领域,尤其涉及一种高效视频编码中判定滤波强弱的可重构阵列结构。
背景技术
最新的视频编码标准H.265/HEVC提出了一种新的环路滤波技术,包括去方块滤波和像素自适应补偿。去方块滤波用于降低方块效应,像素自适应补偿用于改善振铃效应,经过滤波后的重构像素作为后续编码像素的参考使用,能够进一步减小后续编码像素的预测残差,有效地提高视频的主客观质量。
虽然H.264和H.265/HEVC中都包含去方块滤波操作,并且具体滤波算法类似,但是H.265/HEVC中去方块滤波和H.264/AVC去方块滤波强弱的判定方法不同:H.264/AVC中根据边界强度BS(Boundary strength)的大小即可以判定出滤波的强弱,而H.265/HEVC中在滤波开关打开的条件下,须对视频内容进行更加细致的判断,以进一步确定滤波强度。H.265/HEVC中滤波强弱的判定只针对亮度分量进行,色度分量的滤波只与边界强度值有关。对色度分量来说,只有当BS(Boundary strength,边界强度)等于2时才进行滤波操作。
发明内容
一种高效视频编码中判定滤波强弱的可重构阵列结构,其特征在于使用7个处理元阵列(PE00-PE21)邻接互连成最后一行只有中间一个处理元阵列(PE21)的3行3列类Mesh阵列结构(2),该结构适用于去方块滤波中亮度分量8×4块大小的垂直边界滤波强弱的判定,通过编程重构该结构还可以实现亮度分量中4×8块大小水平边界滤波强弱的判定。具体过程如下:
步骤1:同时加载滤波强弱判定的六个条件中的所有相关参数。第一个条件2(dp0+dq0)<(β>>2)中所有参数顺序加载到处理元(PE00)中,第二个条件2(dp3+dq3)<(β>>2)中所有参数顺序加载到处理元(PE01)中,第三个条件|p(3,0)-p(0,0)|+|q(0,0)-q(3,0)|<(β>>3)中所有参数顺序加载到处理元(PE02)中,第四个条件|p(3,3)-p(0,3)|+|q(0,3)-q(3,3)|<(β>>3)中所有参数顺序加载到处理元(PE10)中,第五个条件|p(0,0)-q(0,0)|<(5Tc+1)>>1中所有参数顺序加载到处理元(PE12)中,第六个条件|p(0,3)-q(0,3)|<(5Tc+1)>>1中所有参数顺序加载到处理元(PE21)中,将立即数6存到处理元(PE11)的数据存储中,用于判定所有条件是否成立;
步骤2:等待所有处理元(PE00-PE21)的数据加载完毕后,在除了处理元(PE11)的处理元阵列(PE00-PE21)中同时判定6个条件是否成立,如果成立,则相应寄存器置为1,否则置为0;
步骤3:6个条件判定结束后,根据阵列结构邻接互连的特性(4)将6个判定结果通过共享寄存器依次传递到处理元(PE11)中,通过判断处理元(PE11)中寄存器R1的值是否等于6来进行强弱滤波判定,如果6个条件均成立,则R1=6该垂直边界采用强滤波,如果R1不等于6,则该垂直边界采用弱滤波;
步骤4:通过将该结构中每个处理元的数据存储中的参数替换成判断水平边界所需的参数,保持指令存储中的指令不变,则可以实现4×8块大小水平边界滤波强弱的判定。
处理元阵列采用的是邻接互连的方式,其中每个处理元有4个共享寄存器、大小为256×16的数据存储和256×32指令存储,各个处理元之间通过共享寄存器实现数据的交互。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,用来解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例提供处理元邻接互连示意图;
图2为本发明实施例提供所使用的处理元阵列的分布示意图;
图3为本发明实施例提供一个实例示意图;
图4为本发明实施例提供图3中各个处理元之间的互连示意图。
具体实施方式
本发明实施例提供了一种使用7个处理元(PE00-PE21)进行亮度分量垂直边界的8×4大小的像素块滤波强弱判定的可编程可重构阵列结构,结合说明书附图对本发明进行说明。
下面以说明书附图中图3为例,输入数据是第一行和第四行像素,一个8×4的垂直块边界滤波强弱的判定条件如下:
2(dp0+dq0)<(β>>2) (1)
2(dp3+dq3)<(β>>2) (2)
|p(3,0)-p(0,0)|+|q(0,0)-q(3,0)|<(β>>3) (3)
|p(3,3)-p(0,3)|+|q(0,3)-q(3,3)|<(β>>3) (4)
|p(0,0)-q(0,0)|<(5Tc+1)>>1 (5)
|p(0,3)-q(0,3)|<(5Tc+1)>>1 (6)
其中dp0=|p(2,0)-2p(1,0)+p(0,0)|,dp3=|p(2,3)-2p(1,3)+p(0,3)|,
dq0=|q(2,0)-2q(1,0)+q(0,0)|,dq3=|q(2,3)-2q(1,3)+q(0,3)|
dp0表示P块首行像素的变化率,dq0表示Q块首行像素的变化率,dp3表示P块第四行像素的变化率,dq3表示Q块第四行像素的变化率。β,Tc为阈值,与量化参数QP有关,可以通过查表确定阈值的大小。
对于一个8×4的垂直块边界而言,只有当条件(1)~(6)全部成立时,则该边界采用强滤波操作,否则采用弱滤波操作。
本发明实施例使用7个PE进行亮度分量垂直边界的8×4大小的像素块滤波强弱判定的可编程可重构阵列结构,具体步骤如下:
步骤1:同时加载滤波强弱判定的六个条件(1)~(6)中的数据依次到处理元PE00,PE01,PE02,PE10,PE11,PE12,PE21,具体加载过程如下:
将说明书附图图3中的第一行像素p(2,0),p(1,0),p(0,0),q(0,0),q(1,0),q(2,0)存放在处理元(PE00)数据存储中的2~7地址中,将β存放在处理元(PE00)数据存储中的1号地址中,立即数2存放在8号地址;处理元(PE01)数据存储中的2~7地址中存放第四行像素中的p(2,3),p(1,3),p(0,3),q(0,3),q(1,3),q(2,3),1号地址存放β,8号地址存放立即数2;处理元(PE02)数据存储中的2~5地址中存放第一行像素中的p(3,0),p(0,0),q(0,0),q(3,0),0号地址存放β,1号地址存放立即数3;处理元(PE10)数据存储中的2~5地址中存放第四行像素中的p(3,3),p(0,3),q(0,3),q(3,3),0号地址存放β,1号地址存放立即数3;处理元(PE11)数据存储中的0号地址存放立即数6;处理元(PE12)数据存储中的2~3地址中存放第一行像素中的p(0,0),q(0,0),0号地址存放Tc,1号地址存放立即数1;处理元(PE21)数据存储中的2~3地址中存放第四行像素中的p(0,3),q(0,3),0号地址存放Tc,1号地址存放立即数1。
本发明使用汇编语言,处理元(PE00)中指令如下:
step1:从2号地址中取出像素放入寄存器R1中;
step2:从3号地址中取出像素放入寄存器R2中;
step3:从4号地址中取出像素放入寄存器R3中;
step4:R1减去R2,结果放入寄存器R1;
step5:R1减去R2,结果存放在寄存器R1,即完成p(2,0)-2p(1,0);
step6:R1加上R3,结果存放在寄存器R1,即完成p(2,0)-2p(1,0)+p(0,0);
step7:R1取绝对值操作,结果放在寄存器R1,即R1=dp0=|p(2,0)-2p(1,0)+p(0,0)|;
step8:从7号地址中取出像素放入寄存器R2中;
step9:从6号地址中取出像素放入寄存器R3中;
step10:从5号地址中取出像素放入寄存器R4中;
step11:R2减去R3,结果放入寄存器R2;
step12:R2减去R3,结果存放在寄存器R2,即完成q(2,0)-2q(1,0);
step13:R2加上R4,结果存放在寄存器R2,即完成q(2,0)-2q(1,0)+q(0,0);
step14:R2取绝对值操作,结果放在寄存器R2,即R2=dq0=|q(2,0)-2q(1,0)+q(0,0)|;
step15:R1加上R2,结果放入寄存器R1中;
step16:R1加上R1,结果放入寄存器R1中,即R1=2(dp0+dq0);
step17:从1号地址中取出数据放入寄存器R3,R3=β;
step18:从8号地址中取出数据放入寄存器R4,R4=2;
step19:R3右移R4,结果放在寄存器R3中;
处理元(PE01)和处理元(PE00)指令step1~19完全一致.
处理元(PE02)指令如下:
step1:从2号地址中取出数据放入寄存器R1;
step2:从3号地址中取出数据放入寄存器R2;
step3:R1减去R2,结果放入寄存器R1;
step4:R1取绝对值操作,结果放入寄存器R1,即R1=|p(3,0)-p(0,0)|;
step5:从4号地址中取出数据放入寄存器R2;
step6:从5号地址中取出数据放入寄存器R3;
step7:R2减去R3,结果存入寄存器R2;
step8:R2取绝对值操作,结果放入寄存器R2,即R2=|q(0,0)-q(3,0)|;
step9:R1加上R2,结果放入寄存器R3,R3=|p(3,0)-p(0,0)|+|q(0,0)-q(3,0)|;
step10:从0号地址中取出数据放入寄存器R1中;
step11:从1号地址中取出数据放入寄存器R2中;
step12:R1右移R2,结果放入R1中。
处理元(PE10)和处理元(PE02)采用SIMD形式,指令step1~12完全一致。
处理元(PE12)中指令如下:
step1:从2号地址中取出数据放入寄存器R1;
step2:从3号地址中取出数据放入寄存器R2;
step3:R1减去R2,结果放入寄存器R1;
step4:R1取绝对值操作,结果放入寄存器R1,即R1=|p(0,0)-q(0,0)|;
step5:从0号地址中取出数据放入寄存器R3;
step6:从1号地址中取出数据放入寄存器R4;
step7:R3左移R4,结果放入寄存器R5;
step8:R5左移R4,结果放入寄存器R5;
step9:R5加上R3,结果放入寄存器R5;
step10:R5加上立即数1,结果放入寄存器R5,即R5=5Tc+1;
step11:R5右移R4,结果放入寄存器R5.
处理元(PE21)和处理元(PE12)采用SIMD形式,指令step1~11完全一致。
处理元(PE11)用于判断滤波强弱,只有当(1)~(6)全部成立,该边界才采用强滤波,否则采用弱滤波。在处理元(PE11)中通过查看寄存器R3的值判断最终结果,当(1)~(6)全部成立,判断R1是否等于6,如果等于6则寄存器R3=90,采用强滤波,否则R3=80,采用弱滤波。处理元(PE11)指令如下:
step1:从0号地址中取出数据放入寄存器R2.
步骤2:数据加载完毕后,在6个处理元PE中同时判定6个条件是否成立,如果成立,则相应寄存器置为1,否则置为0。当处理元(PE00、PE01、PE02、PE10、PE11、PE12、PE21)所有操作数准备就绪,在第20个时钟周期开始,6个处理元(PE00、PE01、PE02、PE10、PE12、PE21)同时判断(1)~(6)是否成立,并将运算结果通过邻接互连的方式传递到处理元(PE11)中,在处理元(PE11)中进行边界滤波强弱的判断,各个处理元中的具体指令如下:
处理元(PE00)中指令如下:
step20:判断R1是否小于R3,如果小于则跳到step23,否则执行step21(此步用于判断条件(1));
step21:将0赋予寄存器R8,即表示条件(1)不成立,同时该计算结果在同一时钟周期内,通过寄存器R8传递到处理元(PE01)的寄存器R5;
step22:跳转到step24;
step23:将1赋予寄存器R8,即表示件(1)成立,同时该计算结果在同一时钟周期内,通过寄存器R8传递到处理元(PE01)的寄存器R5.
step24:空指令。
处理元(PE01)中指令如下:
step20:判断R1是否小于R3,如果小于,则跳到step23,否则执行step21(此步用于判断条件(2));
step21:将0赋予寄存器R3,即表示条件(2)不成立;
step22:跳转到step24;
step23:将1赋予寄存器R3,即表示条件(2)成立;
step24:R5加上R3,结果存入RS,即将条件(1)~(2)的结果在同一周期存入处理元(PE11)的R6。
处理元(PE02)中指令如下:
step20:判断R3是否小于R1,如果小于,则跳到step22,否则执行step21;
step21:将0赋予寄存器RS,即条件(3)不成立,同时将RS的值传递到PE12的寄存器R6;
step22:将1赋予寄存器RS,即条件(3)成立,同时将RS的值传递到PE12的寄存器R6.
处理元(PE12)中指令如下:
step20:比较R1是否小于R5,如果小于则跳到step23,否则执行step21;
step21:将0赋予寄存器R4,即条件(4)不成立;
step22:跳转到step24;
step23:将1赋予寄存器R4,即条件(4)成立;
step24:R6加上R4,结果存入寄存器RW,即将条件(3)和(5)的结果在同一周期存入处理元(PE11)的R3.
处理元(PE10)中指令如下:
step20:判断R3是否小于R1,如果小于则跳到step23,否则执行step21;
step21:将0赋予寄存器RE,即条件(4)不成立;
step22:跳转到step24
step23:将1赋予寄存器RE,即条件(4)成立;
step24:空指令
处理元(PE21)指令如下:
step20:比较R1是否小于R5,如果小于,跳到step23,否则执行step21;
step21:将0赋予寄存器RN,即条件(6)不成立;
step22:跳转到step24;
step23:将1赋予寄存器RN,即条件(6)成立;
step24:空指令。
步骤3:6个条件判定结束后,根据阵列结构邻接互连的特性将6个判定结果通过共享寄存器依次传递到处理元(PE11)中进行判定,如图4所示,如果PE11中的寄存器R3=90,则该垂直边界采用强滤波;R3=80,则该垂直边界采用弱滤波。处理元(PE11)中指令如下:
step25:R6加上R3,结果存入R1,即(1)~(3)和(5)的判断结果;
step26:R1加上R4,结果存入R1;
step27:R1加上R5,结果存入R1,即条件(1)~(6)的判定结果;
step28:R2=6,判断R1是否等于R2,如果不相等则跳到step31,否则执行step29;
step29:将90赋予寄存器R3,表示条件(1)~(6)均成立,执行强滤波;
step30:跳转到step32;
step31:将80赋予寄存器R3,表示条件(1)~(6)不全部成立,执行弱滤波;
step32:空指令。
步骤4:通过将该结构中每个处理元数据存储中的参数替换成判断水平边界所需的参数,保持指令存储中的指令不变,则可以实现4×8块大小水平边界滤波强弱的判定。
最后应说明的是:显然,上述实施仅仅是为清楚地说明本发明所作的举例,而并非对实施方式的限定。对于所述领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。由此引申的显而易见的变化或变动仍处于本发明的保护范围之中。

Claims (1)

1.一种高效视频编码中判定滤波强弱的可重构阵列结构,其特征在于使用7个处理元阵列(PE00 、PE01、PE02、PE10、PE11、PE12、PE21)邻接互连成最后一行只有中间一个处理元(PE21)的3行3列类Mesh阵列结构,该结构适用于去方块滤波中亮度分量8×4块大小的垂直边界滤波强弱的判定,通过编程重构该结构还可以实现亮度分量中4×8块大小水平边界滤波强弱的判定,具体过程如下:
步骤1:同时加载滤波强弱判定的六个条件中的所有相关参数;
第一个条件2(dp0+dq0)<(β>>2)中所有参数顺序加载到处理元(PE00)中,第二个条件2(dp3+dq3)<(β>>2)中所有参数顺序加载到处理元(PE01)中,第三个条件|p(3,0)-p(0,0)|+|q(0,0)-q(3,0)|<(β>>3)中所有参数顺序加载到处理元(PE02)中,第四个条件|p(3,3)-p(0,3)|+|q(0,3)-q(3,3)|<(β>>3)中所有参数顺序加载到处理元(PE10)中,第五个条件|p(0,0)-q(0,0)|<(5Tc+1)>>1中所有参数顺序加载到处理元(PE12)中,第六个条件|p(0,3)-q(0,3)|<(5Tc+1)>>1中所有参数顺序加载到处理元(PE21)中,将立即数6存到处理元(PE11)的数据存储中,用于判定所有条件是否成立;
步骤2:等待所有处理元(PE00-PE21)的数据加载完毕后,在除了处理元(PE11)的处理元阵列(PE00-PE21)中同时判定6个条件是否成立,如果成立,则相应寄存器置为1,否则置为0;
步骤3:6个条件判定结束后,根据阵列结构邻接互连的特性,将6个判定结果通过共享寄存器(RE、RS、RW、RN)依次传递到处理元(PE11)中,通过判断处理元(PE11)中寄存器R1的值是否等于6来进行强弱滤波判定,如果6个条件均成立,则R1=6该垂直边界采用强滤波,如果R1不等于6,则该垂直边界采用弱滤波;
步骤4:通过将该结构中每个处理元的数据存储中的参数替换成判断水平边界所需的参数,保持指令存储中的指令不变,则可以实现4×8块大小水平边界滤波强弱的判定。
CN201510789121.3A 2015-11-17 2015-11-17 一种高效视频编码中判定滤波强弱的可重构阵列结构 Expired - Fee Related CN105847848B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510789121.3A CN105847848B (zh) 2015-11-17 2015-11-17 一种高效视频编码中判定滤波强弱的可重构阵列结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510789121.3A CN105847848B (zh) 2015-11-17 2015-11-17 一种高效视频编码中判定滤波强弱的可重构阵列结构

Publications (2)

Publication Number Publication Date
CN105847848A true CN105847848A (zh) 2016-08-10
CN105847848B CN105847848B (zh) 2019-03-15

Family

ID=56580352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510789121.3A Expired - Fee Related CN105847848B (zh) 2015-11-17 2015-11-17 一种高效视频编码中判定滤波强弱的可重构阵列结构

Country Status (1)

Country Link
CN (1) CN105847848B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110024387A (zh) * 2016-11-28 2019-07-16 日本放送协会 编码装置、解码装置、编码方法和解码方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110222597A1 (en) * 2008-11-25 2011-09-15 Thomson Licensing Method and apparatus for sparsity-based de-artifact filtering for video encoding and decoding
CN102439975A (zh) * 2009-04-14 2012-05-02 汤姆森特许公司 用于在基于稀疏性的去伪影滤波中响应于可变变换的滤波器参数的确定和选择的方法和设备
US20130114679A1 (en) * 2008-09-11 2013-05-09 Paul Wilkins Method and apparatus for video coding using adaptive loop filter
CN105049848A (zh) * 2010-01-14 2015-11-11 三星电子株式会社 通过使用去块滤波对视频进行解码的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130114679A1 (en) * 2008-09-11 2013-05-09 Paul Wilkins Method and apparatus for video coding using adaptive loop filter
US20110222597A1 (en) * 2008-11-25 2011-09-15 Thomson Licensing Method and apparatus for sparsity-based de-artifact filtering for video encoding and decoding
CN102439975A (zh) * 2009-04-14 2012-05-02 汤姆森特许公司 用于在基于稀疏性的去伪影滤波中响应于可变变换的滤波器参数的确定和选择的方法和设备
CN105049848A (zh) * 2010-01-14 2015-11-11 三星电子株式会社 通过使用去块滤波对视频进行解码的方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
路文 等: "基于H.264的多模式自适应环路滤波算法", 《计算机科学》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110024387A (zh) * 2016-11-28 2019-07-16 日本放送协会 编码装置、解码装置、编码方法和解码方法
CN110024387B (zh) * 2016-11-28 2021-10-08 日本放送协会 编码装置、解码装置、编码方法和解码方法

Also Published As

Publication number Publication date
CN105847848B (zh) 2019-03-15

Similar Documents

Publication Publication Date Title
WO2012152174A1 (en) Method and apparatus for reduction of in-loop filter buffer
US20140286442A1 (en) Apparatus and method for in-loop filtering based on largest coding unit for reducing external memory access bandwidth
RU2015123215A (ru) Управление деблочной фильтрацией
US20150092863A1 (en) Method and apparatus for adaptively reducing artifacts in block-coded video
WO2012096623A1 (en) Deblocking filtering
CN105763881A (zh) 利用图像非局部结构相似性特征的视频编码图像滤波方法
CN106131555A (zh) 去区块滤波器方法及装置
CN1951121A (zh) 降低块状噪声装置及图像显示装置
CN105847848A (zh) 一种高效视频编码中判定滤波强弱的可重构阵列结构
CN103957425B (zh) 图像处理方法及系统
US9881358B2 (en) Method and system for adaptive pixel replacement
CN103988511B (zh) 视频编码系统中重建视频的去块方法和设备
CN103530856B (zh) 一种Bayer图像去椒盐噪声的方法和系统
CN107155109A (zh) 一种视频帧的滤波方法及装置
CN103530895A (zh) 一种检测马赛克的方法和设备
US20180131969A1 (en) Method and apparatus of video coding
CN101505425B (zh) 一种宏块滤波方法及装置
CN109523473A (zh) 图像处理方法、装置、存储介质和电子装置
CN107135398B (zh) 去方块滤波方法、装置和系统
CN205485023U (zh) 一种防摔光学镜头
CN103559692B (zh) 处理图像的方法与装置
CN111800643A (zh) 一种用于视频编码的去方块滤波器及其滤波方法
CN108566551B (zh) 一种图像处理方法及装置
CN105096262A (zh) 图像滤波方法和装置
CN103634609A (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
GR01 Patent grant
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: 20190315

Termination date: 20201117