CN103227919B - 一种基于多核处理器Tilera的SVC编码方法 - Google Patents
一种基于多核处理器Tilera的SVC编码方法 Download PDFInfo
- Publication number
- CN103227919B CN103227919B CN201310108837.3A CN201310108837A CN103227919B CN 103227919 B CN103227919 B CN 103227919B CN 201310108837 A CN201310108837 A CN 201310108837A CN 103227919 B CN103227919 B CN 103227919B
- Authority
- CN
- China
- Prior art keywords
- task
- time
- tilera
- coding method
- svc
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种基于多核处理器Tilera的SVC编码方法,包括以下步骤:(1)将原始的视频划分为四个时间层,针对每个时间层的每帧,以宏块为单位按照相同的划分方法进行任务划分,并至少将计算量最大的模式选择进一步拆分成若干个并行的子任务;(2)在同一时间,每一时间层中每帧的所有任务构成一个任务组,依次完成所有任务组的编码,针对某个任务组,将每个任务组中的所有任务按照计算量构建最大二叉堆,然后按照计算量由大至小的顺序抓取任务,进行SVC多核并行编码。本发明对计算复杂度非常高的可伸缩视频编码方法进行了性能优化,提出了适合并行处理的编码方法,应用于多核处理器中可以大大提高编码的效率。
Description
技术领域
本发明涉及高清视频编码领域,具体涉及一种基于多核处理器Tilera的SVC编码方法。
背景技术
在视频技术的发展过程中,高压缩率的H.264/AVC视频编码标准取得了非常广泛的应用,由于不同的计算平台和显示设备的处理器能力不同,用户对视频质量的需求也有差异,因此,需要针对需要提供不同特性的视频码流。
JointVideoCoding(JVC)增加了H.264/AVC视频标准附录,命名为可伸缩视频编码(SVC)。SVC具有时域、空域、质量三个层次上的分级特性,比H.264/AVC具有更好的网络环境及终端适应性。
虽然SVC的多层结构能构满足用户对不同特性的视频码流的需要,但是伴随层数的增加,编码器的复杂度也大幅增加,这也限制了SVC在实时场合的应用,但是近些年来多核技术的飞速发展,为高复杂度的SVC视频编码提供了强有力的平台支撑。
传统CPU是一维总线架构,当核的个数超过了8个或者16个的时候,会产生性能上的巨大瓶颈,而Tilera基于二维的网状架构,把重点放在了核与核之间的通讯,这样的方式在提供高性能应用的同时,也能大大节约功耗。
TILE-Gx系列于09年推出,包括核心数量达100个的微处理器TILE-Gx100以及64核心(TILE-Gx64)、36核心(TILE-Gx36)、16核心(TILE-Gx16)等版本。TILE-Gx系列采用台积电40nm工艺,都是在一块芯片上集成多个64位通用核心和完整的虚拟内存系统,每个核心拥有64KB一级缓存、256KB二级缓存,甚至26MB共享三级缓存。此外,Tilera还提供了多样化设计平台和标准的编程模型,非常适合高复杂度算法的设计和实现。
目前,针对H.264的多核并行编解码方案已经比较成熟,而SVC相关的并行编码方案还是空白,工程上的案例集中在小分辨率以及FPGA上的编码方案,这些方案虽在一定程度上实现了实时解码,但是功能模块与核绑定的任务分配策略使核的利用受到限制,编解码方案可移植性较差,若编码速度超过采集速度较多或者解码速度超过从网络中获取码流的速度较多,难免形成核的等待,造成资源浪费。
因此,在SVC视频编码算法的基础上,需要提出一种基于同构多核处理器的编码模型,提高多核处理器中核的综合利用率。
发明内容
本发明提供了一种基于多核处理器Tilera的SVC编码方法,对计算复杂度非常高的可伸缩视频编码方法进行了性能优化,提出了适合并行处理的编码方法,应用于多核处理器中可以大大提高编码的效率。
一种基于多核处理器Tilera的SVC编码方法,包括以下步骤:
(1)将原始的视频划分为四个时间层,针对每个时间层的每帧,以宏块为单位按照相同的划分方法进行任务划分,并至少将计算量最大的模式选择进一步拆分成若干个并行的子任务;
进行任务划分是为了便于利用Tilera平台的多核处理器进行任务的平行处理,划分的原则是每个任务的计算量尽可能地保持一致,保证所有处理器在进行任务处理时,可以同时开始同时结束,避免任务处理器的过于空闲或者过于繁忙,因此,如果某一模式选择的计算量较大,则按照功能进一步进行拆分,以平衡每个任务的计算量。
作为优选,步骤(1)中将计算量最大的模式选择进一步拆分成若干个并行的子任务。
原始视频的时间层采用零延时P帧编码结构,每个时间层的每帧对应两种分辨率,每种分辨率对应两种质量层。
(2)在同一时间,每一时间层中每帧的所有任务(包括步骤(1)中以宏块为单位划分的任务和进一步划分后的子任务)构成一个任务组,依次完成所有任务组的编码,针对某个任务组,将每个任务组中的所有任务按照计算量构建最大二叉堆,然后按照计算量由大至小的顺序抓取任务,进行SVC多核并行编码。
步骤(1)中将原始的视频划分为四个时间层后,再将每个时间层的每帧划分为若干个slice之后,以宏块为单位按照相同的划分方法进行任务划分。
每个时间层的每帧依据质量以及分辨率的不同,进一步划分为若干层,将每帧划分为多个slice之后,可以增加任务组的数量,充分利用多核处理器的并行处理能力,提高编码的效率。
可伸缩视频编码(SVC)算法具有时域,空域,质量三个层次上的可伸缩性。
a、空域可伸缩(SpatialScalability,D层)指将原始的每帧视频通过下采样生成两幅或多幅空间分辨率不同的图像,然后将各个图像压缩成一个空间分辨率较低的基本层和数个空间分辨率较高的增强层。
b、质量可伸缩(Qualityscalability,Q层)是指在相同分辨率下,包含多种不同质量的码流,通过选用不同的量化等级或者将编码后的残差系数分配到不同的片中(MGSVECTOR),使码流中包括不同质量等级的码流。
c、时域可伸缩(TemporalScalability,T层)指将不同帧率的图像压缩成一个帧率最低的基本层和多个帧率较高的增强层,通过丢弃码流中的某些帧达到改变帧率的目的。
为了便于SVC编码方法在多核处理器Tilera中的应用,因此,在多核处理器Tilera中实现SVC编码方法之前,首先在PC上优化SVC的编码方法,在基本的H264混合编码的结构之上,根据SVC编码标准,本发明提出了三种改进措施:
A、当基本层参考宏块采用帧内预测编码时,增强层对应宏块采用层间帧内预测,以基本层参考宏块的重建数据作为增强层当前宏块的预测数据;
B、进行层间运动预测时,利用基本层参考宏块的分割形式、参考索引、运动矢量作为参考进行增强层当前宏块的运动预测;
C、由于层间纹理及运动信息高度相关,在进行层间残差预测时,增强层可利用基本层重建残差数据减去基本层重建残差,然后进行DCT,并允许在频域进一步减小残差。
由于模式选择时,相邻宏块之间会有一定的依赖关系,去除依赖关系后便于实现任务分配的并行度,因此,在进行模式选择前,去除相邻宏块之间的依赖关系,具体操作为:利用原始的每帧视频中,当前宏块的左边宏块和上边宏块的原始像素(而非重建像素)进行帧内预测。
直接利用对应的原始的每帧视频中,当前宏块的左边宏块上边宏块的原始像素作为伪重建数据进行帧内预测,确定模式后在进行实际DCT变换的时候,再利用实际重建数据进行计算,该方法忽略原始图像与重建图像的差异,能够对帧内所有预测模式进行判决,通过对多个编码序列进行对比实验,发现该方法对所得到图像的质量影响几乎可以忽略,接近标准算法的效果,而且由于P帧的帧内宏块的数量较少,对整帧的PSNR几乎没有影响。
SVC算法是一个融合了多分辨率编码、多质量类型编码的混合编码算法,每个时间层的每帧均依赖相邻时间层已编码的视频帧,但不同的时间层可看作一个相对独立的编码体,鉴于此,在编码过程中针对每一个时间层进行任务分配。
由于在实际的执行过程中,各个任务组的执行时间可能会各不相同,所以优选地,针对每一个正在进行编码的当前任务组,统计当前任务组的已耗执行时间,并依据已耗执行时间,调整下一任务组的计算量。
本发明一种基于多核处理器Tilera的SVC编码方法,针对SVC编码以及Tilera平台的特点,实现了基于共享存储的并行编码方案,通过合理的任务划分以及动态地调整任务的优先级,平衡所有核之间的任务分配,使有限的核得到最充分的利用,提供多达16种的不同码率,在TILE_Gx36处理器上实现了最大分辨率为1280x720(HD)的实时编码。
附图说明
图1为本发明基于多核处理器Tilera的SVC编码方法中SVC编码具体编码过程的流程图;
图2为本发明基于多核处理器Tilera的SVC编码方法中基于共享内存的并行编码架构;
图3为本发明基于多核处理器Tilera的SVC编码方法中各时间层并行编码示意图;
图4为本发明基于多核处理器Tilera的SVC编码方法中任务划分以及任务组构成示意图;
图5为本发明基于多核处理器Tilera的SVC编码方法的流程图;
图6为本发明基于多核处理器Tilera的SVC编码方法的动态核数分配结果图。
具体实施方式
下面结合附图,对本发明一种基于多核处理器Tilera的SVC编码方法做详细描述。
一种基于多核处理器Tilera的SVC编码方法,包括以下步骤:
(1)将原始的视频划分为四个时间层,针对每个时间层的每帧,以宏块为单位按照相同的划分方法进行任务划分,并将计算量较大的模式选择等功能进一步拆分成若干个并行的子任务。
进行模式选择前,去除相邻宏块之间的依赖关系,具体操作为:利用原始的每帧视频中,当前宏块的左边宏块和上边宏块的原始像素而非重建像素进行帧内预测。
原始视频的时间层采用零延时P帧的编码结构,每个时间层对应两种分辨率,每种分辨率对应两种质量层;即每个时间层分别对应D0Q0、D0Q1、D1Q0和D1Q1,其中D0Q0和D0Q1的分辨率相同,D1Q0和D1Q1的分辨率相同,D0Q1和D1Q1的质量层相同,D0Q0和D1Q0的质量层相同。
D0层的分辨率为640x352,D1层的分辨率为1280x720,Q0层QP为34,Q1层QP为28。
任务划分时,每个时间层的任务划分都以宏块为单位按照相同的方法进行划分,以D0Q1为例,以宏块为基本处理单元的任务划分方案如图4所示,共划分为24个任务,将计算量最大的模式选择按照功能拆分成多个并行的子任务。
在同一时间内D0Q1的所有任务构成一个任务组,处理完一个任务组才能处理下一个任务组。
将原始的视频划分为四个时间层后,再将每个时间层的每帧划分为若干个slice之后,以宏块为单位按照相同的划分方法进行任务划分。
在只有一个slice的情况下,初始任务组个数为4个,分别为D0Q0、D0Q1、D1Q0和D1Q1各自对应的一个任务组,总任务数接近100个,但是由于分辨率的差异,D0Q0和D0Q1两层的任务会首先执行完毕,这样的话,任务组的个数变为2个,总任务数接近50个,由于任务的生成存在前后顺序,例如第n+1个宏块的熵编码不可能比第n个宏块的熵编码先执行,因此,会导致处理器陷入等待。
以2个并行任务组、4个处理器为例,假设每个任务组都存在4个相同的任务,计算量分别为t1=2,t2=3,t3=3,t4=7,4个处理器分别处理2+7,3+3,3+3,7+2的任务量,但当第二个处理器执行完毕后,第4个处理器仍在处理第一个任务组中最长的任务,导致新的任务组不能及时生成,处理器无法获取新的任务进行处理,造成处理器的等待。
为了减小这种情况发生的几率,针对每帧图像采取了多slice划分的方式增加任务组的数量,按照数据量大小将720P分辨率的每层划分为4个slice,这样任务组的数量维持在10个,新任务组的生成可以有足够的缓冲时间。
由于各任务的计算量初始值由实验测试获得,但是各个任务的实际执行时间不可能一成不变,在图像内容较为复杂的时候,熵编码的计算时间会有一定幅度的变化,在cbp为0时的反量化、IDCT等的计算量也会下降,因此,通过统计当前任务组的实际执行时间,动态调整下一个组任务的计算量。
(2)在同一时间,每一时间层每帧的所有任务构成一个任务组,依次完成所有任务组的编码,针对某个任务组,将每个任务组中的所有任务按照计算量构建最大二叉堆,然后按照计算量由大至小的顺序抓取任务,进行SVC多核并行编码。
本发明中的任务分配及更新过程,如图5所示,将每个时间层的每帧以宏块为单位划分为若干任务,同一时间内每个时间层每帧的所有任务构成一个任务组(即任务队列),每个任务组的任务构建最大二叉堆,每个空闲处理器,抓取任务队列中当前最大计算量的任务进行处理,每次抓取任务时直接以logN的复杂度执行deleteMax操作,对于24个任务的二叉堆这个操作的消耗几乎可以忽略。按照相同的任务划分方式对每个时间层的每个slice进行任务划分,在此基础上形成了10个FIFO任务组队列。
针对每一个正在进行编码的当前任务组,统计当前任务组的已耗执行时间,并依据已耗执行时间,调整下一任务组的计算量。
抓取每个任务进行SVC编码时的流程示意图如图1所示,具体操作过程中:
A、当基本层参考宏块采用帧内预测编码时,增强层对应宏块采用层间帧内预测,以基本层参考宏块的重建数据作为增强层当前宏块的预测数据;
B、进行层间运动预测时,利用基本层参考宏块的分割形式、参考索引、运动矢量作为参考进行增强层当前宏块的运动预测;
C、由于层间纹理及运动信息高度相关,在进行层间残差预测时,增强层可利用基本层重建残差数据减去基本层重建残差,然后进行DCT,并允许在频域进一步减小残差。
如图2所示,Tilera多核处理器的每个核心均相当于一个通用的处理器,任务分配器进行任务分配以及任务处理器进行任务处理时,可以共享内存,如果核空闲会造成巨大的资源浪费,因此,动态的利用核有利于编码速度的稳定。
如图3所示,每个时间层对应的D0Q0、D0Q1、D1Q0和D1Q1中的任务由不同的处理器进行并行处理,提高编码的效率。
初始设定编码器的核数为24,每隔一段时间(时间粒度可根据应用场景变化进行选择)根据实际编码速度调整核心资源数量,进行高复杂度的场景编码时可申请超过24个核,低复杂度场景编码时返回多余的核作其它用途或者简单地让其进入睡眠状态,减小功耗。
首先,设定期望达到的编码帧率fe、然后统计一个时间单位内的实际编码帧率f,然后利用公式n=fe/f*m计算下一时间单位所需的核数n,其中m为当前时间单位所用的核数。
以JSVM9.18开源代码为参考,Tilera_Gx36多核处理器为实验平台,实验选取“Rushhour”,“Pair”,“CrowdRun”,“Gman”共4个复杂度不同的序列为测试序列,使用固定处理器核数为24,实验结果如表1所示。从表1可以看出,各测试序列的实际编码速度达到29fps左右,基本实现了实时编码,并且平均加速比达到了19.58。
表1
序列 | 串行效率(fps) | 并行效率(fps) | 加速比 |
Rush hour | 1.49 | 29.63 | 19.89 |
Pair | 1.54 | 29.63 | 19.24 |
CrowdRun | 1.36 | 28.37 | 20.86 |
Gman | 1.58 | 28.99 | 18.35 |
动态核分配的测试结果如图6所示,为显著起见,将4个测试序列按照编码复杂度从低到高拼接起来,依次测量gman、pair、rushhour和crowdrun四个序列的时钟周期和核数,横坐标为某一时间的测试点的序数,由每个序列的名称外的矩形区域可以获得每个测试点对应的序列,例如第5个测试点对应pair序列,随着视频复杂度的增加,所用核数动态跟随性较好,能较快的使编码性能稳定在所设定的目标值附近,相比固定核数的编码方式,动态核数分配方式将编码器性能波动控制在2.4%之内,使SVC编码器自适应地响应不同复杂度的场景。
Claims (7)
1.一种基于多核处理器Tilera的SVC编码方法,其特征在于,包括以下步骤:
(1)将原始的视频划分为四个时间层,针对每个时间层的每帧,以宏块为单位按照相同的划分方法进行任务划分,并至少将计算量最大的模式选择进一步拆分成若干个并行的子任务;
(2)在同一时间,每一时间层中每帧的所有任务构成一个任务组,依次完成所有任务组的编码,针对某个任务组,将每个任务组中的所有任务按照计算量构建最大二叉堆,然后按照计算量由大至小的顺序抓取任务,进行SVC多核并行编码。
2.如权利要求1所述的基于多核处理器Tilera的SVC编码方法,其特征在于,所述步骤(1)中进行模式选择前,去除相邻宏块之间的依赖关系,具体操作为:利用原始的视频中,当前宏块的左边宏块和上边宏块的原始像素进行帧内预测。
3.如权利要求1所述的基于多核处理器Tilera的SVC编码方法,其特征在于,所述步骤(1)中将原始的视频划分为四个时间层后,再将每个时间层的每帧划分为若干个slice之后,以宏块为单位按照相同的划分方法进行任务划分。
4.如权利要求1所述的基于多核处理器Tilera的SVC编码方法,其特征在于,针对每一个正在进行编码的当前任务组,统计当前任务组的已耗执行时间,并依据已耗执行时间,调整下一任务组的计算量。
5.如权利要求1所述的基于多核处理器Tilera的SVC编码方法,其特征在于,所述步骤(1)中原始视频的每个时间层的每帧对应两种分辨率。
6.如权利要求5所述的基于多核处理器Tilera的SVC编码方法,其特征在于,每种分辨率对应两种质量层。
7.如权利要求1所述的基于多核处理器Tilera的SVC编码方法,其特征在于,所述步骤(1)中原始视频的时间层采用零延时P帧编码结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310108837.3A CN103227919B (zh) | 2013-03-29 | 2013-03-29 | 一种基于多核处理器Tilera的SVC编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310108837.3A CN103227919B (zh) | 2013-03-29 | 2013-03-29 | 一种基于多核处理器Tilera的SVC编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103227919A CN103227919A (zh) | 2013-07-31 |
CN103227919B true CN103227919B (zh) | 2015-11-25 |
Family
ID=48838157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310108837.3A Expired - Fee Related CN103227919B (zh) | 2013-03-29 | 2013-03-29 | 一种基于多核处理器Tilera的SVC编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103227919B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103428217B (zh) * | 2013-08-19 | 2016-05-25 | 中国航空动力机械研究所 | 分布式并行计算的作业分配方法及分配系统 |
CN103559239B (zh) * | 2013-10-25 | 2017-11-10 | 北京奇虎科技有限公司 | 图片的处理方法及系统和任务服务器 |
US10277913B2 (en) * | 2014-10-22 | 2019-04-30 | Samsung Electronics Co., Ltd. | Application processor for performing real time in-loop filtering, method thereof and system including the same |
CN106954066A (zh) * | 2016-01-07 | 2017-07-14 | 鸿富锦精密工业(深圳)有限公司 | 视频解码方法 |
CN107071424B (zh) * | 2017-03-17 | 2018-09-25 | 山东科技大学 | 一种基于编码时间预测模型的负载均衡方法 |
CN107809643B (zh) * | 2017-11-13 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种图像的解码方法、装置及介质 |
CN109874027A (zh) * | 2019-03-11 | 2019-06-11 | 宸瑞普惠(广州)科技有限公司 | 一种低延时手术示教直播方法及其系统 |
CN111316643A (zh) * | 2019-03-29 | 2020-06-19 | 深圳市大疆创新科技有限公司 | 视频编码方法、设备和可移动平台 |
CN110868596A (zh) * | 2019-11-21 | 2020-03-06 | 北京数码视讯科技股份有限公司 | 分布式编码方法、装置、电子设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102084653A (zh) * | 2007-06-29 | 2011-06-01 | 弗劳恩霍夫应用研究促进协会 | 支持像素值细化可缩放性的可缩放视频编码 |
CN102572422A (zh) * | 2010-12-07 | 2012-07-11 | 联发科技股份有限公司 | 视频序列编码方法及视频序列编码装置 |
-
2013
- 2013-03-29 CN CN201310108837.3A patent/CN103227919B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102084653A (zh) * | 2007-06-29 | 2011-06-01 | 弗劳恩霍夫应用研究促进协会 | 支持像素值细化可缩放性的可缩放视频编码 |
CN102572422A (zh) * | 2010-12-07 | 2012-07-11 | 联发科技股份有限公司 | 视频序列编码方法及视频序列编码装置 |
Non-Patent Citations (2)
Title |
---|
基于H.264实时编码的多核并行算法;冯飞龙等;《计算机工程》;20101220;正文全文 * |
基于异构多核处理器的H.264并行编码算法;吕明洲等;《计算机工程》;20120820;正文全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103227919A (zh) | 2013-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103227919B (zh) | 一种基于多核处理器Tilera的SVC编码方法 | |
CN105491377B (zh) | 一种计算复杂度感知的视频解码宏块级并行调度方法 | |
CN104935942B (zh) | 对帧内预测模式进行解码的方法 | |
US20090147849A1 (en) | Intra frame encoding using programmable graphics hardware | |
CN100592796C (zh) | 一种视频编码器及其帧内预测模式选择方法 | |
CN101908035A (zh) | 视频编解码方法、gpu及其与cpu的交互方法及系统 | |
CN105791829B (zh) | 一种基于多核平台的hevc并行帧内预测方法 | |
CN103327325A (zh) | 基于hevc标准的帧内预测模式快速自适应选择方法 | |
CN103414895A (zh) | 一种适用于hevc标准的编码器帧内预测装置及方法 | |
CN102625108A (zh) | 一种基于多核处理器实现的h.264解码方法 | |
CN101977313B (zh) | 视频信号编码装置和方法 | |
CN101707716B (zh) | 视频编码器和编码方法 | |
US10805622B2 (en) | High efficiency video coding method and apparatus, and computer-readable storage medium | |
CN102572430B (zh) | 一种基于可重构技术的h.264去块滤波算法的实现方法 | |
CN101969560B (zh) | 一种多核平台下MPEG2高清编码器的Slice码率分配方法 | |
KR20090065398A (ko) | 멀티 코어 프로세서 기반의 비디오 디코딩 방법 및 장치 | |
CN103414901A (zh) | 一种快速jpeg2000图像压缩系统 | |
CN1703094A (zh) | 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法 | |
CN102158702B (zh) | 自适应h.264码率控制方法 | |
CN104113761A (zh) | 一种视频编码中的码率控制方法及编码器 | |
CN102595137B (zh) | 基于图像像素块行/列流水线的快速模式判决装置和方法 | |
CN106791859A (zh) | 视频编码方法和视频编码器 | |
CN103299638B (zh) | 自适应扫描装置及其扫描方法 | |
CN105100799A (zh) | 一种减少hevc编码器中帧内编码时延的方法 | |
CN107027039B (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: 20151125 Termination date: 20210329 |