CN102801981B - 一种基于jpeg-ls算法的多路压缩内核并行编码的控制方法 - Google Patents

一种基于jpeg-ls算法的多路压缩内核并行编码的控制方法 Download PDF

Info

Publication number
CN102801981B
CN102801981B CN201210315057.1A CN201210315057A CN102801981B CN 102801981 B CN102801981 B CN 102801981B CN 201210315057 A CN201210315057 A CN 201210315057A CN 102801981 B CN102801981 B CN 102801981B
Authority
CN
China
Prior art keywords
jpeg
pixel
kernel
subgraph
source images
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.)
Active
Application number
CN201210315057.1A
Other languages
English (en)
Other versions
CN102801981A (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 Institute of Space Radio Technology
Original Assignee
Xian Institute of Space Radio Technology
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 Institute of Space Radio Technology filed Critical Xian Institute of Space Radio Technology
Priority to CN201210315057.1A priority Critical patent/CN102801981B/zh
Publication of CN102801981A publication Critical patent/CN102801981A/zh
Application granted granted Critical
Publication of CN102801981B publication Critical patent/CN102801981B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种基于JPEG-LS算法的多路压缩内核并行编码的控制方法,该方法采用基于JPEG-LS标准算法实现的压缩内核,形成一种N路压缩内核并行编码的控制方法来完成图像压缩:(1)将源图像分为N个R行和C列的子图像;(2)适时地完成初始化N路JPEG-LS压缩内核的相关参数,并准备编码;(3)通过写控制和读控制N个Ix_FIFO,随机启动N路JPEG-LS压缩内核,能够不间断对源图像进行编码;(4)由该控制方法实现的并行编码系统对源图像进行编码,其处理效果几乎相当于用一个基于JPEG-LS标准算法实现的压缩内核完成对源图像的编码,但是吞吐率和处理速度几乎提高了N倍。

Description

一种基于JPEG-LS算法的多路压缩内核并行编码的控制方法
技术领域
本发明涉及一种基于JPEG-LS算法的的并行压缩控制方法,属于图像压缩技术领域。
背景技术
随着科学技术的发展,在图像处理领域中,需要处理的数据量越来越大,提高图像处理的速度成为一个巨大的挑战;如何用最少的时间开销和最小的空间开销来完成图像传输的处理,是该领域的关键点。
通过采用高压缩比的图像压缩算法,或者采用并行压缩方案均可以提高处理速度。当采用高压缩比的图像压缩算法时,现有算法的失真度往往不能满足遥感图像的特殊性要求;目前,遥感图像的压缩算法优选无损、近无损压缩,JPEG-LS算法就是其中之一。与此同时,随着高性能并行处理系统的发展,开发图像并行处理技术,可以为提高图像处理速度提供更广阔的发展空间。
JPEG-LS是联合图像专家组制定的一种图像无损、近无损压缩的国际标准,将其应用到遥感图像的无损、近无损压缩取得了良好的效果,十分适合于遥感图像压缩;其核心算法是采纳自HP(惠普)实验室提供的LOCO-I压缩方案,主要使用了预测误差Golomb熵编码和游长长度编码等技术。
其中,JPEG-LS标准算法中规定了Near、Range、qbpp、LIMIT、T1、T2、T3等相关参数,Near表示点像素误差,Range表示ErrVal编码时钳位值(ErrVal是编码过程产生的变量),qbpp=ceiling(log2Range),LIMIT表示限制输出码流大小,T1、T2、T3表示梯度量化的阈值。
其中,JPEG-LS压缩内核的编码过程分为两种模式进行,正常模式编码和游长模式编码。编码过程中,通过因果模板进行模式选择。当模式切换进入正常编码模式,仅仅对该像素样点做完映射误差编码后,即已做完正常编码模式后跳出该模式,进入循环,重新计算梯度,并且选择编码模式。当模式切换进入游长编码模式,对后续像素样点的扫描编码不再按照先计算梯度矢量,然后判断是否进入平坦区域,而是判断待编码像素Ix与其左边邻域像素的重建值Ra的差值与Near的关系;如果差值≤Near,则继续进行游长编码模式并对当前像素编码;如果差值>Near,则做完游长长度编码后跳出游长模式。
总之,可以通过研究基于JPEG-LS图像压缩算法的并行处理方案,以提高图像压缩的处理速度,同时也可以满足遥感图像的特殊性要求。
发明内容
本发明的技术解决问题是:克服现有技术的不足,针对JPEG-LS图像压缩标准实现时,吞吐率和处理速度不能满足实时需求,本发明提出了一种基于JPEG-LS标准算法的多路压缩内核的并行编码的控制方法,在现有基础上快速方便地完成对图像压缩高吞吐率的需求,该控制方法能够实现高速高效遥感图像压缩,具有非常好的系统扩展性。其硬件实现简单,控制有效,FPGA资源有效利用率较高,系统吞吐率和压缩处理速度几乎提高了N倍,为后续使用JPEG-LS算法提供了优势,在未来的图像压缩领域具有广阔的应用前景。
本发明的技术方案如下:一种基于JPEG-LS算法的多路压缩内核并行编码的控制方法,实现步骤如下:
第一步:将图像源送来的源图像按照同样的大小进行子图像划分,并按源图像中各个像素的排列顺序,依次送出各个像素。即接收行长为H的源图像,将源图像分为N个R行和C列的子图像,并在子图像划分后,按源图像中各个像素的排列顺序,先送出每行的第一个像素,再送出每行的第二个像素,直到送出每行的最后一个像素,一直按照这样的顺序,一行接着一行送出像素至第二步;每个子图像对应一个存储深度不小于D的FIFO:Ix_FIFO和一个JPEG-LS压缩内核;其中H=N*C,D=C;C为所选取的子图像的列,C在编码源图像的过程中为固定常数,C一般选取整数且
第二步:初始化N路JPEG-LS压缩内核的相关参数,所述相关参数为Near、Range、qbpp、LIMIT、T1、T2、T3等,这些参数主要用来初始化压缩内核,在N路压缩内核启动之前需要完成。如果首次编码源图像,需要在源图像帧起始之前已初始化N路JPEG-LS压缩内核的相关参数;如果首次之后编码源图像,需要根据第九步“一帧源图像编码结束”的反馈信号来初始化N路JPEG-LS压缩内核;保证每一个子图像编码前完成初始化对应的JPEG-LS压缩内核的相关参数;
第三步:接收子图像划分后的源图像,判断接收的当前像素属于的哪一个子图像,同时将接收的当前像素写入与该子图像对应的Ix_FIFO中;
第四步:判断接收的当前像素是否属于该子图像的第一个像素,如果不满足则进入第五步,如果满足则跳到第六步;
第五步:根据“像素编码结束”的反馈信号,判断该子图像对应的JPEG-LS压缩内核的上一次的像素编码是否结束,如果满足则进入第六步,如果不满足则等待;
第六步:读取该子图像对应的Ix_FIFO,将读出像素送给对应的JPEG-LS压缩内核,该读出像素刚好是对应的JPEG-LS压缩内核上一次编码结束后需要编码的下一个像素;
第七步:启动该子图像对应的JPEG-LS压缩内核,对第六步的读出像素进行编码,即每一个JPEG-LS压缩内核在完成读出像素的编码后,对应子图像的下一个像素刚好被从Ix_FIFO中读出,对应的JPEG-LS压缩内核不间断地对该子图像编码;通过写控制和读控制N个Ix_FIFO,能够满足不间断地读取图像划分后的源图像,同时能够随机启动对应的JPEG-LS压缩内核,完成不间断地对源图像编码;
第八步:判断该子图像被编码的像素是否完成对应的JPEG-LS压缩内核的编码,满足则表明该像素的编码结束,并送出“像素编码结束”的反馈信号,进入第九步,不满足则等待;
第九步:判断一帧源图像编码结束是否结束,满足则送出“一帧源图像编码结束”的反馈信号到第二步,不满足等待;一帧源图像即N个子图像,也就是N*R*C个像素,通过统计被编码的像素个数,判断一帧源图像编码是否结束。
本发明与现有技术相比有益效果为:
(1)本发明针对JPEG-LS图像压缩标准吞吐率和处理速度不能满足实时需求,提出了一种基于JPEG-LS标准算法的多路压缩内核的并行编码的控制方法,通过基于JPEG-LS标准算法的编码内核,形成一种多路内核并行编码的控制,能够实现高速高效遥感图像压缩;同时,在现有基础上快速方便地完成对图像压缩高吞吐率的需求;该方案具有非常好的系统扩展性,为后续使用JPEG-LS算法提供了优势。
(2)本发明中提出了通过N路JPEG-LS压缩内核不间断并行编码源图像的问题,其对已有的基于JPEG-LS的单路压缩内核不做修改或修改很少,保证N个子图像编码开始前已初始化完成N路JPEG-LS压缩内核的相关参数,N路JPEG-LS压缩内核不间断完成对源图像的编码,编码的效果几乎相当于用一个JPEG-LS标准内核完成源图像的编码,但是吞吐率和处理速度几乎提高了N倍。解决了源图像的输入吞吐率高与JPEG-LS标准算法实现图像压缩处理速度有限之间的矛盾,快速实时地完成图像压缩。
(3)本发明中对图像源送来的源图像进行子图像划分的问题,通过简单有效的子图像划分方法,将源图像按照同样的大小进行子图像划分,使得每个子图像对应一个存储深度不小于D的FIFO:Ix_FIFO,和一个JPEG-LS压缩内核;子图像R*C的大小满足将极大的保留JPEG-LS的压缩性能,因为JPEG-LS的编码性能对幅宽C更敏感。
(4)本发明提出了Ix_FIFO存储深度大小的问题,需要设置为Ix_FIFO的存储深度D不小于子图像列宽C。这是考虑JPEG-LS压缩内核的工作过程中存在着两种极端工作模式:(1)子图像的整行数据均进行正常模式编码,需保证Ix_FIFO不溢出;(2)子图像的整行数据均进行游长模式编码,需保证Ix_FIFO不读空。这是由以下三步来保证的:第一步中C选取整数且且D=C,第三步Ix_FIFO的写过程能够保证其不溢出,第六步Ix_FIFO的读过程能够保证Ix_FIFO不读空,保证不间断的地源图像进行编码。
(5)本发明中提出了写控制和读控制Ix_FIFO策略的问题,被编码的子图像的像素通过这种写控制和读控制Ix_FIFO,不但保证每个JPEG-LS压缩内核在完成读出像素的编码后,立刻对子图像的下一个像素不间断地进行编码,从而也就不间断地对源图像进行编码;而且保证当一个JPEG-LS压缩内核在完成当前像素编码过程中,源图像的下一个像素可以被接收,从而不丢失该像素。
附图说明
图1是子图像划分方式示意图;
图2是本发明处理流程图;
图3是应用本发明的一个子图像划分方式示意图;
图4是应用本发明的一个控制器硬件实现框图;
图5是应用本发明的一个八路JPEG-LS压缩内核并行编码硬件实现框图。
具体实施方式
以下结合附图和具体实现示例来说明本发明一种基于JPEG-LS算法的多路压缩内核并行编码的控制方法的具体实现:
图1是本发明子图像划分方式示意图,介绍如何将图像源送来的源图像按照同样的大小进行子图像划分。其中H为的源图像的行长,N表示将源图像分为N个子图像,R和C表示划分后子图像的行参数和列参数,且
图2是本发明处理流程图,介绍多路压缩内核并行编码的控制方法的实现过程,具体可以参考权利要求书1的步骤说明。
图3是应用本发明的一个子图像划分方式示意图;其中H=4096,R=64,C=512,D=512;即将行长4096,共64行数据作为一帧遥感原始图像数据,针对4096*64大小的10bit图像进行相应操作,经过SRAM的缓存进行操作,数据重新排列输出,即按照分割成8路512*64子图像被从SRAM中顺序读取出来。
图4是应用本发明的一个控制器硬件实现框图,下面结合该框图,以图2流程图及图3所示子图像划分方式进行源图像编码为例,详细介绍本发明控制方法的具体实现,其实现步骤如下:
第一步:图像缓存和分块模块:接收图像源送来的源图像、同步信号等,将送来数据作为SRAM的写数据(SRAM的写数据高位补0);通过状态机控制,将数据乒乓写入到SRAM中,完成图像缓存;并兵乓读取SRAM,读出的像素即为满足分块要求的按顺序输出的源图像的像素;两个SRAM可以通过FPGA来读写。
第二步:初始化参数模块:接收数据压缩率控制信号,当“一帧源图像编码结束”的反馈信号有效时,完成初始化8路JPEG-LS压缩内核的相关参数:Near、Range、qbpp、LIMIT、T1、T2、T3等,为8路压缩内核启动做好准备。
第三步:通过Ix_FIFO读写控制模块,接收子图像划分后的源图像,判断接收的当前像素属于的哪一个子图像,同时将接收的当前像素写入与该子图像对应的Ix_FIFO中;
第四步:通过Ix_FIFO读写控制模块,判断接收的当前像素是否属于该子图像的第一个像素,如果不满足则进入第五步,如果满足则跳到第六步;
第五步:通过Ix_FIFO读写控制模块,接收“像素编码结束”信号,“像素编码结束”信号是该子图像对应的JPEG-LS压缩内核的上一次的像素编码是否结束的标志,是该压缩内核的反馈信号;如果“像素编码结束”满足则进入第六步,如果不满足则等待;
第六步:通过Ix_FIFO读写控制模块,读取该子图像对应的Ix_FIFO,将读出像素送给对应的JPEG-LS压缩内核,该读出像素刚好是对应的JPEG-LS压缩内核上一次编码结束后需要编码的下一个像素;
第七步:判断Ix_FIFO组模块中的8位Ix_FIFO_en信号,每个内核通过Ix_FIFO_en的对应的其中一位来使能,启动该子图像对应的JPEG-LS压缩内核,对第六步的读出像素进行编码,即每一个JPEG-LS压缩内核在完成读出像素的编码后,对应子图像的下一个像素刚好被从Ix_FIFO中读出,对应的JPEG-LS压缩内核不间断地对该子图像编码;通过写控制和读控制N个Ix_FIFO,能够满足不间断地读取图像划分后的源图像,同时能够随机启动对应的JPEG-LS压缩内核,完成不间断地对源图像编码;
第八步:判断该子图像被编码的像素是否完成对应的JPEG-LS压缩内核的编码,满足则表明该像素的编码结束,并送出“像素编码结束”的反馈信号,进入第九步,不满足则等待;
第九步:通过Ix_FIFO读写控制模块,判断一帧源图像编码结束是否结束,满足则送出“一帧源图像编码结束”的反馈信号到第二步,不满足等待;一帧源图像即8个子图像,也就是8*64*512个像素,通过统计被编码的像素个数,判断一帧源图像编码是否结束。
图5是应用本发明的一个八路JPEG-LS压缩内核并行编码硬件实现框图。其中“相机检测模块”完成相机的源图像数据校验检测和全局复位;其中“八路JPEG-LS压缩内核并行编码的控制器”即为图4中的“一个控制器硬件实现框图”,结合图3所示子图像划分方式进行源图像编码的处理过程与图4所示的硬件实现步骤基本一致;“码流处理模块”完成八路压缩码流的处理,是后续解码的输入文件。
本发明的具体实施方式以遥感图像JPEG-LS的并行压缩为例,但本发明的使用范围并不局限于遥感图像领域。
本发明未详细说明部分属本领域技术人员公知常识。

Claims (1)

1.一种基于JPEG-LS算法的多路压缩内核并行编码的控制方法,其特征在于步骤如下:
第一步:接收行长为H的源图像,将源图像分为N个R行和C列的子图像,并在子图像划分后,按源图像中各个像素的排列顺序,先送出每行的第一个像素,再送出每行的第二个像素,直到送出每行的最后一个像素,一直按照这样的顺序,一行接着一行送出像素至第二步;每个子图像对应一个存储深度不小于D的FIFO:Ix_FIFO和一个JPEG-LS压缩内核;其中H=N*C,D=C;C为所选取的子图像的列,C在编码源图像的过程中为固定常数,C选取整数且 C R ≥ 4 ;
第二步:初始化N路JPEG-LS压缩内核的相关参数,所述相关参数为Near、Range、qbpp、LIMIT、T1、T2、T3,这些参数用来初始化压缩内核,在N路压缩内核启动之前需要完成;如果首次编码源图像,需要在源图像帧起始之前已初始化N路JPEG-LS压缩内核的相关参数;如果首次之后编码源图像,需要根据第九步“一帧源图像编码结束”的反馈信号来初始化N路JPEG-LS压缩内核;保证每一个子图像编码前完成初始化对应的JPEG-LS压缩内核的相关参数;Near表示点像素误差,Range表示ErrVaI编码时钳位值,qbpp=ceiling(log2Range),LIMIT表示限制输出码流大小,T1、T2、T3表示梯度量化的阈值;
第三步:接收子图像划分后的源图像,判断接收的当前像素属于的哪一个子图像,同时将接收的当前像素写入与该子图像对应的Ix_FIFO中;
第四步:判断接收的当前像素是否属于该子图像的第一个像素,如果不属于则进入第五步,如果属于则跳到第六步;
第五步:根据“像素编码结束”的反馈信号,判断该子图像对应的JPEG-LS压缩内核的上一次的像素编码是否结束,如果结束则进入第六步,如果未结束则等待;
第六步:读取该子图像对应的Ix_FIFO,将读出像素送给对应的JPEG-LS压缩内核,该读出像素刚好是对应的JPEG-LS压缩内核上一次编码结束后需要编码的下一个像素;
第七步:启动该子图像对应的JPEG-LS压缩内核,对第六步的读出像素进行编码,即每一个JPEG-LS压缩内核在完成读出像素的编码后,对应子图像的下一个像素刚好被从Ix_FIFO中读出,对应的JPEG-LS压缩内核不间断地对该子图像编码;通过写控制和读控制N个Ix_FIFO,能够满足不间断地读取图像划分后的源图像,同时能够随机启动对应的JPEG-LS压缩内核,完成不间断地对源图像编码;
第八步:判断该子图像被编码的像素是否完成对应的JPEG-LS压缩内核的编码,如果完成则表明该像素的编码结束,并送出“像素编码结束”的反馈信号,进入第九步,如果未完成则等待;
第九步:判断一帧源图像编码结束是否结束,如果结束则送出“一帧源图像编码结束”的反馈信号到第二步,如果未结束等待;一帧源图像即N个子图像,也就是N*R*C个像素,通过统计被编码的像素个数,判断一帧源图像编码是否结束。
CN201210315057.1A 2012-08-30 2012-08-30 一种基于jpeg-ls算法的多路压缩内核并行编码的控制方法 Active CN102801981B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210315057.1A CN102801981B (zh) 2012-08-30 2012-08-30 一种基于jpeg-ls算法的多路压缩内核并行编码的控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210315057.1A CN102801981B (zh) 2012-08-30 2012-08-30 一种基于jpeg-ls算法的多路压缩内核并行编码的控制方法

Publications (2)

Publication Number Publication Date
CN102801981A CN102801981A (zh) 2012-11-28
CN102801981B true CN102801981B (zh) 2015-04-22

Family

ID=47200936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210315057.1A Active CN102801981B (zh) 2012-08-30 2012-08-30 一种基于jpeg-ls算法的多路压缩内核并行编码的控制方法

Country Status (1)

Country Link
CN (1) CN102801981B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150049099A1 (en) 2013-08-13 2015-02-19 Mediatek Inc. Data processing apparatus for transmitting/receiving compressed pixel data groups of picture over display interface and related data processing method
CN105828070B (zh) * 2016-03-23 2016-12-28 华中科技大学 防误码扩散的jpeg‑ls图像无损/近无损压缩算法硬件实现方法
CN107295338B (zh) * 2016-04-12 2020-09-04 上海兆芯集成电路有限公司 基于无损联合图像专家小组格式的图像压缩与解压缩方法
CN107094257B (zh) * 2017-05-14 2018-02-27 华中科技大学 一种对卫星图像数据实时解压缩的系统
CN115022628B (zh) * 2022-08-04 2022-12-13 之江实验室 基于jpeg-ls的高吞吐率无损图像压缩方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088602A (zh) * 2010-12-22 2011-06-08 西安空间无线电技术研究所 一种jpeg-ls图像压缩的码率控制方法
CN102547281A (zh) * 2011-12-29 2012-07-04 沈阳聚德视频技术有限公司 基于dsp的jpeg图像压缩并行控制方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7693339B2 (en) * 2003-12-17 2010-04-06 Andreas Wittenstein Method and apparatus for faster-than-real-time lossless compression and decompression of images
JP2010244316A (ja) * 2009-04-07 2010-10-28 Sony Corp 符号化装置および方法、並びに、復号装置および方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088602A (zh) * 2010-12-22 2011-06-08 西安空间无线电技术研究所 一种jpeg-ls图像压缩的码率控制方法
CN102547281A (zh) * 2011-12-29 2012-07-04 沈阳聚德视频技术有限公司 基于dsp的jpeg图像压缩并行控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于JPEG-LS帧间扩展的图像无损压缩算法;徐盛等;《计算机与数字工程》;20060320(第03期);全文 *
基于像素纹理分类的图像预测编码方法;徐燕凌等;《计算机工程与应用》;20080221(第06期);全文 *

Also Published As

Publication number Publication date
CN102801981A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
US11216985B2 (en) Point cloud attribute compression method based on deleting 0 elements in quantisation matrix
CN102801981B (zh) 一种基于jpeg-ls算法的多路压缩内核并行编码的控制方法
CN105120293B (zh) 基于cpu和gpu的图像协同解码方法及装置
CN102630011A (zh) 一种视频传感器网络中的压缩感知编解码方法及系统
CN110691250B (zh) 结合块匹配和串匹配的图像压缩装置
US20140086309A1 (en) Method and device for encoding and decoding an image
CN102158694B (zh) 一种基于gpu的遥感图像解压缩方法
CN110728725B (zh) 一种硬件友好的面向实时系统无损纹理压缩方法
CN106454354B (zh) 一种avs2并行编码处理系统及方法
CN101883284B (zh) 基于背景建模和可选差分模式的视频编/解码方法及系统
CN103905819B (zh) 基于多级树集合分裂编码的系统及其实现方法
KR102227660B1 (ko) 신호 변환 방법 및 디바이스
CN101860753B (zh) 一种基于分形的视频压缩与解压缩方法
CN114501029B (zh) 图像编码、图像解码方法、装置、计算机设备和存储介质
CN101944972B (zh) 编解码方法、装置以及通信系统
CN104902207A (zh) 一种高速信号采集方法
CN209486658U (zh) Qc-ldpc解码器及存储设备
CN104053011B (zh) 应用于jpeg2000解码器中的二维离散小波逆变换器
CN102547281A (zh) 基于dsp的jpeg图像压缩并行控制方法
CN104954749A (zh) 一种信息记录方法
CN104883573A (zh) 一种信号高效处理方法
CN104270643A (zh) 基于single-port SRAM的转置矩阵的地址映射算法
CN114222136B (zh) 运动补偿的处理方法、编码器、解码器以及存储介质
CN103327340A (zh) 一种整数搜索方法及装置
CN111131836A (zh) 一种基于fpga的jpeg2000编码并行运算方法

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