CN101655551B - 定帧长合成孔径雷达原始数据压缩的编解码方法及装置 - Google Patents

定帧长合成孔径雷达原始数据压缩的编解码方法及装置 Download PDF

Info

Publication number
CN101655551B
CN101655551B CN2008101187325A CN200810118732A CN101655551B CN 101655551 B CN101655551 B CN 101655551B CN 2008101187325 A CN2008101187325 A CN 2008101187325A CN 200810118732 A CN200810118732 A CN 200810118732A CN 101655551 B CN101655551 B CN 101655551B
Authority
CN
China
Prior art keywords
result
code
quantized
coding
level look
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
CN2008101187325A
Other languages
English (en)
Other versions
CN101655551A (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.)
Institute of Electronics of CAS
Original Assignee
Institute of Electronics of CAS
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 Institute of Electronics of CAS filed Critical Institute of Electronics of CAS
Priority to CN2008101187325A priority Critical patent/CN101655551B/zh
Publication of CN101655551A publication Critical patent/CN101655551A/zh
Application granted granted Critical
Publication of CN101655551B publication Critical patent/CN101655551B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及一种定帧长合成孔径雷达原始数据压缩的编解码方法及其装置,适用于分数比特率合成孔径雷达原始数据压缩,其特点是保证编码后的数据帧长为定帧长,从而简化了SAR系统集成测试及后续数据处理的复杂性,其具体结构主要是通过构造一个二维查找表来实现,第一维查找表为量化级查找表,第二维查找表为编码级查找表,多个合成孔径雷达采样数据通过查询该二维查找表操作,即可达到定帧长分数比特率压缩的效果。

Description

定帧长合成孔径雷达原始数据压缩的编解码方法及装置
技术领域
本发明属于星载合成孔径雷达(SAR)原始数据压缩领域,涉及一种编解码方法及装置,适用于分数比特率SAR原始数据压缩算法,其特点是保证编码后的数据帧长为定帧长,从而简化了SAR系统集成测试及后续数据处理的复杂性。
背景技术
星载SAR原始数据压缩是解决星载SAR获取的海量数据与星上数据传输带宽难以匹配问题的有效途径。目前,尽管星上压缩算法种类繁多,但折衷考虑压缩算法的性能与其硬件实现的复杂性,能够实用的只有BAQ(Block Adaptive Quantization)。该算法的核心量化器为Lloyd-Max量化器。
传统上,BAQ算法均只能实现整数比特率,如1bit/采样点,2bits/采样点等等。当系统比特率在可选整数比特率之间时,则只能向下选择较低的比特率以保证总的数据率小于星上数据传输系统带宽。但是,较小的比特率导致的量化失真较大,特别是在干涉测量、动目标检测等对相位失真程度要求较高的应用前提下,需要在可选数据率和用户不同应用能力下取得良好的折中。因此,有必要研究分数比特率算法,以提供整数比特率之间的更多选择。
分数比特率压缩算法实现中的一个难点是,针对单个采样点进行编码时,SAR原始数据帧长变化,这将给系统集成测试带来极大的困难。同时,地面成像处理时,需要搜索辅助数据标识码,这加大了成像处理的数据处理量。
发明内容
为了解决对单个采样点编码时,SAR原始数据帧长变化问题,本发明目的是保证编码后的数据帧长为定帧长,从而简化了SAR系统集成测试及后续数据处理的复杂性,针对多采样点联合编码的方法,由该方法编码后的数据帧长为定帧长,为此,本发明提供一种定帧长合成孔径雷达原始数据压缩的编解码方法及装置。
为了达成所述目的,本发明的一方面,是提供一种定帧长合成孔径雷达原始数据压缩的编解码方法,其技术方案包括:
步骤1:将合成孔径雷达回波信号经A/D量化器量化后的多个采样点联合构成一个虚拟采样点;
步骤2:对虚拟采样点进行标量或矢量量化,应用二进制编码对量化结果进行整体编码;
步骤3:对整体编码结果按照编码约定进行解码,获得定帧长分数比特率SAR原始数据压缩的解码结果。
为了达成所述目的,本发明的另一方面,是提供一种定帧长合成孔径雷达原始数据压缩的编解码装置,其技术方案包括:
一量化级查找表单元具有一输入端,用于接收单个采样点的地址码,应用地址码进行查表操作输出相应的量化结果编码,具有一输出端用于输出量化结果编码;
一查询地址单元具有一输入端,用于接收量化级查找表单元输出的多个量化结果编码,多个量化结果编码合成一个多位查询地址码,具有一输出端输出多位查询地址信号;
一编码级查找表单元具有一输入端,用于接收查询地址单元输出的查询地址信号,对编码级查找表进行查表操作,查表结果作为多个采样点最终的量化编码结果。
本发明的有益效果是,克服了针对单个采样点进行编码时,SAR原始数据帧长变化所导致的系统集成测试难度增大及地面数据处理量增大的缺点,同时该方法易于实现,具有很好的工程应用前景。它应用于星载SAR原始数据压缩领域,适用于分数比特率SAR原始数据压缩算法。其主要目的是保证编码后的数据帧长为定帧长,从而简化了SAR系统集成测试及后续数据处理的复杂性。
附图说明
图1是本发明中针对多采样点编码原理示意图。
图2是本发明中两级查找表LUT装置。
图3是本发明中分块数据幅度均值求解原理图。
图4是本发明中编码级查找表LUT设计原理图。
图5是本发明中码字打包供下传的码字排列示意图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
如图1所示,整体编码的思路是,将合成孔径雷达回波信号经A/D量化器量化后的若干个实际采样点N联合构成一个虚拟采样点,然后对该虚拟采样点进行标量或矢量量化,对量化后的结果进行整体编码,编码方法是应用二进制编码表示多采样点量化结果的所有可能组合,二进制编码位数满足二进制码的组合数,并大于或等于多采样点量化结果的组合数,该二进制编码结果即作为解码时的唯一参照。
假设实际采样点数为N,量化电平数为Q,则k个实际采样点可能组合为Qk个,采用二进制编码码长为p,若满足公式,
2P≥Qk    (1)
则可以用p个二进制编码来表示Qk个组合所表示的一个虚拟采样点,并且此时的比特率为p/k。
以量化电平数为3,k=3个实际采样点构成一个虚拟采样点为实施例,如图1示出N个实际采样点构成N/3个虚拟采样点(假设N可以被3整除),对N/3个虚拟采样点进行编码可以得到N/3段的编码码字。3个实际采样点可能组合为27,显然25>27,因此,比特率为5/3=1.6667bits/采样点,实际采样点构成其它的虚拟采样点不再赘述。
工程实现时,通过构造两级查找表LUT来实现虚拟采样点量化与编码。整体量化和编码通过构造2维查找表实现,所述2维查找表包括量化级查找表和编码级查找表。仍以量化电平数为3,3个实际采样点构成一个虚拟采样点为实施例。
如图2所示,两级查找表LUT装置,以应用FPGA实现为实施例,可以在计算机中编写Verilog HDL语言构造,包括:一量化级查找表单元具有一输入端,用于接收多个采样信号的地址码,应用地址码进行查表操作输出相应的量化结果编码,具有一输出端用于输出量化结果编码;一查询地址单元具有一输入端,用于接收量化级查找表单元输出的多个量化结果编码,多个量化结果编码合成一个多位查询地址码,具有一输出端输出多位查询地址信号;一编码级查找表单元具有一输入端,用于接收查询地址单元输出的查询地址信号,对编码级查找表进行查表操作,查表结果作为多个采样点最终的量化编码结果。
以3个实际采样点构成一个虚拟采样点为实施例,如图2所示,量化级查找表单元LUT输出的3个单个采样点量化后的2bit(3个量化电平,2bit码字即可表示)码字;查询地址单元由三个2bit编码器构成一个6bit的查表地址并输出;用6bit查表地址查找编码级查找表单元LUT的编码级查找表,编码级查找表单元输出一个5bit表示3个采样点的编码结果,显然,比特率为5/3=1.6667bits/采样点。该5bit的编码结果打包下传,供地面解码使用。对整体编码结果按照编码约定进行解码,获得定帧长分数比特率SAR原始数据压缩的解码结果。
其中量化级查找表单元LUT量化时选用的量化器可以是标量量化器或矢量量化器,量化器的类型不受限制,对于BAQ(Block AdaptiveQuantization)算法来讲,是应用Lloyd-Max量化器,以量化级编码表单元LUT的设计依据BAQ算法的设计为实施例,即输入量化级查找表单元信号经分块数据标准差归一化后与Lloyd-Max量化器的门限电平进行比较,量化级编码表单元输出相应的编码码字,为了简化标准差的求解,采用求解分块数据幅度均值,然后映射为分块数据标准差的方法实现。映射关系如公式(2)所示。
| I ‾ | = | Q ‾ | = 127.5 - Σ n = 0 127 erf ( n + 1 2 σ ) - - - ( 2 )
其中,|I|和|Q|为正交解调后同相分量和正交分量的幅度均值。
erf ( y ) = 2 π ∫ 0 x exp ( - t 2 ) dt . σ为输入A/D量化器信号的标准差。
以2bit门限电平为实施例,门限电平及编码结果如公式(3)所示。
x < - 0.9816 x = 00 - 0.9816 < x < 0 x = 01 0 < x < 0.9816 x = 10 x > 0.9816 x = 11 - - - ( 3 )
其中,x为输入A/D量化器的信号。
以输入A/D量化器信号电平为110,分块数据幅度均值为40为实施例,由公式(2),分块数据幅度均值40可以映射为分块数据标准差51.65,用该标准差对110归一化可得110/51.65=2.13,于是由公式(3)其编码为11。110对应的二进制码为1101110,分块数据幅度均值码40对应的二进制码为101000。两者结合,以分块数据幅度均值码为高地址,则构成的地址码为1010001101110。显然,该查询地址单元存放的量化编码为11。将所有可能地址码遍历计算即可得到量化级编码表LUT。
量化级查找表单元LUT的输入为分块数据幅度均值与去符号位采样数据构成的地址码,应用该地址对量化级查找表LUT进行查表操作,量化级查找表单元即可输出该分块下,该采样数据的量化结果,将3个采样点的量化结果进行顺序排列,则构成了编码级查找表单元LUT的查表地址,并以此类推。
分块数据幅度均值的求解可以通过在FPGA中构造累加器阵列来实现。如图3所示,累加器阵列的工作原理为:假设SAR回波信号为8bit ADC采样,SAR回波的距离向采样点数为N×Nr,分块大小为Nr×Na(距离向Nr,方位向Na)。将去直流后的7位数据经N路数据分配器依次送N个距离累加器进行累加,数据分配器的控制端由计数器Count控制,以N=64为实施例,当计数器Count为“000000”时,数据DATA[6:0]送入第1个距离向累加器累加,而距离向累加器2~64的输入端均为0;当Count为“000010”时,数据DATA[6:0]送入第3个距离向累加器累加,而距离向累加器1、2以及4~64的输入端均为0,依此类推。距离向累加为雷达脉冲重复周期内累加,累加完成后需要再经过方位向累加器累加完成分块数据完整的累加过程,方位向累加为雷达脉冲重复周期间累加。累加完毕后,根据系统需要,可取不同位数的高位累加值由锁存器锁存,并经数据选择器选择输出分块数据幅度均值。
所述的编码级查找表,是以多采样点通过量化级查找表后,输出的按顺序排列的码字作为查找地址查询编码级查找表;编码级查找表单元LUT存储内容为应用二进制编码表示多采样点量化结果的所有可能组合所编写的码字;编码级查找表单元输出为对多采样点进行编码后的结果。
编码级查找表单元LUT设计结果是解码的唯一依据,图4给出了以3个实际采样点构成一个虚拟采样点为实施例的编码级查找表单元LUT的设计思路。如图4所示,左侧为多采样点输出可能组合,右侧为5bit二进制编码可能组合。显然,3个实际采样点可能组合为27,5bit 2进制编码可能组合为32,将27种3个实际采样点可能组合一一映射为27种5bit 2进制编码(32种中任意选择27种),即可实现。
以3个量化电平分别为-1.27,0,1.27为实施例,则27种组合,即编解码约定方案由表一所示,编码结果存放于编码级查找表单元LUT中,具体实现时若应用FPGA,可以将其存储于FPGA内部RAM中。
表一
  量化电平组合   5bit二进制编码
  -1.27,-1.27,1.27   00000
  -1.27,-1.27,0.00   00001
  -1.27,-1.27,1.27   00010
  -1.27,0.00,-1.27   00011
  -1.27,0.00,0.00   00100
  -1.27,0.00,1.27   00101
  -1.27,1.27,-1.27   00110
  -1.27,1.27,0.00   00111
  -1.27,1.27,1.27   01000
  0.00,-1.27,-1.27   01001
  0.00,-1.27,0.00   01010
  0.00,-1.27,1.27   01011
  0.00,0.00,-1.27   01100
  0.00,0.00,0.00   01101
  0.00,0.00,1.27   01110
  0.00,1.27,-1.27   01111
  0.00,1.27,0.00   10000
  0.00,1.27,1.27   10001
  1.27,-1.27,-1.27   10010
  1.27,-1.27,0.00   10011
  1.27,-1.27,1.27   10100
  1.27,0.00,-1.27   10101
  1.27,0.00,0.00   10110
  1.27,0.00,1.27   10111
  1.27,1.27,-1.27   11000
  1.27,1.27,0.00   11001
  1.27,1.27,1.27   11010
解码时,依据表一映射关系即可。编码级查找表单元输出二进制编码码字排列格式如图5所示,其中,Dij表示第i个采样点的第j个码字,一个字节为8bit,编码码字位数为5,显然最小公倍数为40bit,即5个字节。于是,8个5bit码字写进5个字节中,并按照5个字节为周期重复这种格式排列。以一个周期的编码码字解码为实施例,假设编码码字如表二所示。
表二
  0   0   0   0   1   1   0   0
  1   0   0   1   1   0   1   1
  0   0   0   1   0   1   0   1
  0   0   0   1   1   1   0   1
  0   0   0   1   0   1   0   0
解码时首先按照图5所示的码字排列方式对表二的打包数据进行解包操作,得到8个5bit码字,即
00001,10010,01101,10001,01010,00111,01000,10100
在对照表一,将这8个5bit码字映射为对应的量化电平可得最终的解码结果列于表三。
表三
  编码结果   解码结果
  00001   -1.27,-1.27,0.00
  10010   1.27,-1.27,-1.27
  01101   0.00,0.00,0.00
  10001   0.00,1.27,1.27
  01010   0.00,-1.27,0.00
  00111   -1.27,1.27,0.00
  01000   -1.27,1.27,1.27
  10100   1.27,-1.27,1.27
以上所述,仅是本发明的实施例而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例作任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (7)

1.一种定帧长合成孔径雷达原始数据压缩的编解码方法,其特征在于,包括:
步骤1:将合成孔径雷达回波信号经A/D量化器量化后的多个采样点联合构成一个虚拟采样点;
步骤2:对虚拟采样点进行标量或矢量量化,应用二进制编码对量化结果进行整体编码;
步骤3:对整体编码结果按照编码约定进行解码,获得定帧长分数比特率SAR原始数据压缩的解码结果。
2.根据权利要求1的编解码方法,其特征在于,应用二进制编码表示多采样点量化结果的所有可能组合,二进制编码位数满足二进制码的组合数,并大于或等于多采样点量化结果的组合数,该二进制编码结果作为解码时的唯一参照。
3.根据权利要求1所述的编解码方法,其特征在于,所述整体编码通过构造2维查找表实现,所述2维查找表包括量化级查找表和编码级查找表。
4.根据权利要求3所述的编解码方法,其特征在于,所述编码级查找表,是以多采样点通过量化级查找表后,输出的按顺序排列的码字作为查找地址查询编码级查找表;编码级查找表存储内容为应用二进制编码表示多采样点量化结果的所有可能组合所编写的码字;编码级查找表输出为对多采样点进行编码后的结果。
5.一种定帧长合成孔径雷达原始数据压缩的编解码装置,其特征在于,包括:
一量化级查找表单元具有一输入端,用于接收多个采样点的地址码,应用地址码进行查表操作输出相应的量化结果编码,具有一输出端用于输出量化结果编码;
一查询地址单元具有一输入端,用于接收量化级查找表单元输出的多个量化结果编码,多个量化结果编码合成一个多位查询地址码,具有一输出端输出多位查询地址信号;
一编码级查找表单元具有一输入端,用于接收查询地址单元输出的查询地址信号,对编码级查找表进行查表操作,查表结果作为多个采样点最终的量化编码结果。
6.如权利要求5所述的编解码装置,其特征在于,所述量化级查找表单元的地址码,为分块数据幅度均值与去符号位采样数据构成的地址码。
7.根据权利要求5所述的编解码方法,其特征在于,所述量化级查找表单元的量化器是标量量化器或矢量量化器。
CN2008101187325A 2008-08-20 2008-08-20 定帧长合成孔径雷达原始数据压缩的编解码方法及装置 Active CN101655551B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101187325A CN101655551B (zh) 2008-08-20 2008-08-20 定帧长合成孔径雷达原始数据压缩的编解码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101187325A CN101655551B (zh) 2008-08-20 2008-08-20 定帧长合成孔径雷达原始数据压缩的编解码方法及装置

Publications (2)

Publication Number Publication Date
CN101655551A CN101655551A (zh) 2010-02-24
CN101655551B true CN101655551B (zh) 2012-06-27

Family

ID=41709912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101187325A Active CN101655551B (zh) 2008-08-20 2008-08-20 定帧长合成孔径雷达原始数据压缩的编解码方法及装置

Country Status (1)

Country Link
CN (1) CN101655551B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5578147B2 (ja) * 2011-08-11 2014-08-27 コニカミノルタ株式会社 印刷システム、印刷方法、および印刷プログラム
WO2015085120A1 (en) * 2013-12-06 2015-06-11 Lynch Jonathan J Methods and apparatus for processing coded aperture radar (car) signals
US11067689B2 (en) * 2015-10-06 2021-07-20 Pioneer Corporation Information processing device, information processing method and program
CN109313260A (zh) * 2017-10-27 2019-02-05 深圳市大疆创新科技有限公司 雷达数据处理方法、设备及可移动平台
CN108646302B (zh) * 2018-03-23 2019-07-16 西安电子科技大学 一种用于地下结构探测的sar数据压缩方法
CN113452380B (zh) * 2021-06-25 2024-09-13 中国科学院空天信息创新研究院 星载sar原始数据压缩方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3691557A (en) * 1969-09-22 1972-09-12 James Nickolas Constant System for identifying objects using an encoding array for each object
US5666121A (en) * 1995-09-19 1997-09-09 California Institute Of Technology VLSI processor design of real-time data compression for high resolution imaging radar
US5991454A (en) * 1997-10-06 1999-11-23 Lockheed Martin Coporation Data compression for TDOA/DD location system
CN1390059A (zh) * 2001-06-01 2003-01-08 中国科学院计算技术研究所 合成孔径雷达复数图像数据压缩方法
CN101126807A (zh) * 2007-09-20 2008-02-20 西安电子科技大学 遥感图像二倍无损及近无损压缩编码方法
CN101165510A (zh) * 2006-10-18 2008-04-23 中国科学院电子学研究所 星载合成孔径雷达可变位数baq压缩系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3691557A (en) * 1969-09-22 1972-09-12 James Nickolas Constant System for identifying objects using an encoding array for each object
US5666121A (en) * 1995-09-19 1997-09-09 California Institute Of Technology VLSI processor design of real-time data compression for high resolution imaging radar
US5991454A (en) * 1997-10-06 1999-11-23 Lockheed Martin Coporation Data compression for TDOA/DD location system
CN1390059A (zh) * 2001-06-01 2003-01-08 中国科学院计算技术研究所 合成孔径雷达复数图像数据压缩方法
CN101165510A (zh) * 2006-10-18 2008-04-23 中国科学院电子学研究所 星载合成孔径雷达可变位数baq压缩系统及方法
CN101126807A (zh) * 2007-09-20 2008-02-20 西安电子科技大学 遥感图像二倍无损及近无损压缩编码方法

Non-Patent Citations (12)

* Cited by examiner, † Cited by third party
Title
周梅
周梅;张志敏;邓云凯.基于小波的SAR原始数据幅相压缩算法.《电子与信息学报》.2007,第29卷(第10期), *
张志敏
杨云志
杨云志;黄顺吉;王建国.矢量量化在SAR原始数据压缩中的应用.《系统工程与电子技术》.2002,第24卷(第6期), *
王建国.矢量量化在SAR原始数据压缩中的应用.《系统工程与电子技术》.2002,第24卷(第6期),
祁海明
祁海明;禹卫东;陈曦.基于方位向滑窗处理的SAR原始数据频域幅相压缩算法.《数据采集与处理》.2008,第23卷(第3期), *
禹卫东
邓云凯.基于小波的SAR原始数据幅相压缩算法.《电子与信息学报》.2007,第29卷(第10期),
陈曦.基于方位向滑窗处理的SAR原始数据频域幅相压缩算法.《数据采集与处理》.2008,第23卷(第3期),
黄顺吉

Also Published As

Publication number Publication date
CN101655551A (zh) 2010-02-24

Similar Documents

Publication Publication Date Title
CN101655551B (zh) 定帧长合成孔径雷达原始数据压缩的编解码方法及装置
CN102298137B (zh) 自适应数据率星载sar原始数据压缩方法
CN107923971A (zh) 用于压缩雷达信号的方法和系统
CN102970043B (zh) 一种基于gzip的压缩硬件系统及其加速方法
US20140167987A1 (en) Systems and methods for data compression and parallel, pipelined decompression
CN101165510A (zh) 星载合成孔径雷达可变位数baq压缩系统及方法
CN112953550A (zh) 数据压缩的方法、电子设备及存储介质
CN103248367A (zh) 码流数据的编码、解码方法和装置
CN106533452B (zh) 一种多进制ldpc编码方法及编码器
CN113300715A (zh) 一种数据处理方法、装置、硬件压缩设备以及介质
CN113452380A (zh) 星载sar原始数据压缩方法及装置
CN102084594A (zh) 用于处理数字数据的方法
Kieffer et al. Structural complexity of random binary trees
Mahmood et al. An Efficient 6 bit Encoding Scheme for Printable Characters by table look up
CN101640543B (zh) 一种ldpc码的编码装置及方法
CN103731241B (zh) 提高通信系统频谱效率的编码系统及方法
JP2020520596A (ja) シーケンス決定方法および装置、デバイス、並びに記憶媒体
CN102820890A (zh) 短码长多进制赋权重复累加码的编码器装置及方法
CN103746701A (zh) 一种用于Rice无损数据压缩的快速编码选项选择方法
CN101398486A (zh) 星载sar原始数据压缩的方位向流水处理方法和装置
Mahmood et al. A feasible 6 bit text database compression scheme with character encoding (6BC)
US20130222159A1 (en) Entropy method of binary-ternary lossless data coding
CN1964496A (zh) 编码器及自适应算术编码的实现方法及装置
Guo et al. Genome compression based on Hilbert space filling curve
WO2011162964A2 (en) System and method and computer program product for parameter estimation for lossless video compression

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