CN101179715A - 一种对多路视频源同时进行压缩编码的实现方法与系统 - Google Patents
一种对多路视频源同时进行压缩编码的实现方法与系统 Download PDFInfo
- Publication number
- CN101179715A CN101179715A CNA2006101459833A CN200610145983A CN101179715A CN 101179715 A CN101179715 A CN 101179715A CN A2006101459833 A CNA2006101459833 A CN A2006101459833A CN 200610145983 A CN200610145983 A CN 200610145983A CN 101179715 A CN101179715 A CN 101179715A
- Authority
- CN
- China
- Prior art keywords
- video source
- function
- carried out
- variable
- compression coding
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种对多路视频源同时进行压缩编码的实现方法,包括:预先将视频压缩编码所需变量封装到相应结构体中,并编译连接存储到库文件;当需要启动对多路视频源同时进行压缩编码时,为每一路视频源新建一个实例;通过实例中定义的指针携带对该路视频源进行视频压缩编码的相关变量值,对所述库文件相应结构体中的变量进行赋值,并调用相应库函数对该路视频源图像帧进行压缩编码。本发明还公开了相应的对多路视频源同时进行压缩编码的实现系统。采用本发明能实现同时对多路视频源进行压缩编码。
Description
技术领域
本发明涉及视频压缩编码技术,尤其涉及一种对多路视频源同时进行压缩编码的方法与系统。
背景技术
现有技术中,对视频进行压缩编码时,一次只能对一路视频源输出的图像帧进行压缩编码处理;当需要对多路视频源进行压缩编码时,只能依次对各路视频源进行处理,不能同时对多路视频源进行压缩编码处理。这是因为,现有技术中,定义了视频压缩编码过程中所需的一系列全局变量,如果对多路视频源同时启动多路编码操作,则由于每路编码操作都需要使用这些全局变量,势必相互影响,最终将导致整个系统崩溃。
而在实际应用中,某些场合可能需要同时传送多路视频源的图像,例如:当两个用户通过网络进行视频聊天时,通过本地摄像头将自己的头像传送到对端的聊天窗口中,这时,需要将摄像头获取的图像压缩编码后通过网络传送,如果聊天一方还希望将本地的一个视频文件传送给对方,此时需要启动第二路视频压缩编码。现有技术中,在这种情况下需要用户先停止本地摄像头的输出,再启动希望转送的视频文件,这不仅给用户带来使用上的麻烦,而且需要中断当前的聊天图像传送,对用户当前使用的业务造成影响。
发明内容
本发明提供一种对多路视频源同时进行压缩编码的实现方法与系统,用以解决现有技术中存在的不能同时对多路视频源进行压缩编码的问题。
本发明方法包括:预先将视频压缩编码所需变量封装到相应结构体中,并编译连接存储到库文件;
当需要启动对多路视频源同时进行压缩编码时,执行下列步骤:
为每一路视频源新建一个实例;
通过实例中定义的指针携带对该路视频源进行视频压缩编码的相关变量值,对所述库文件相应结构体中的变量进行赋值,并调用相应库函数对该路视频源图像帧进行压缩编码。
所述预先将视频压缩编码所需变量封装到相应结构体中,具体包括:
将与码率控制相关的变量封装到码率控制结构体中;
将与编码状态相关的变量封装到编码状态结构体中;
将与码流状态相关的变量封装到码流状态结构体中。
所述为每一路视频源新建一个实例,具体为:
为每一路视频源新建一个对应的C++编码器类,在所述C++编码器类中封装编码器实现视频压缩编码的相应功能。
所述封装编码器实现视频压缩编码的相应功能,具体包括:
在所述编码器类中,为编码器实现视频压缩编码所需执行的每一项具体功能定义相应的成员函数;
通过顺序启动所述编码器类中定义的成员函数调用相关库函数,实现对一路视频源图像帧的压缩编码。
所述通过顺序启动编码器类中定义的成员函数调用相关库函数,实现对一路视频源图像帧的压缩编码,具体包括:
启动设置CPU类型成员函数,调用相关库函数给CPU类型变量赋值;
启动编码初始化成员函数,调用相关库函数对压缩编码所需的相关变量进行初始化;
启动图像帧编码成员函数,调用相关库函数实现对一个图像帧进行压缩编码,并写入压缩后文件的码流缓冲区中;
启动编码后处理成员函数,调用相关库函数输出码流给压缩后文件,并在处理完视频源的全部图像帧后释放相应资源。
根据本发明的上述方法,所述编码器读取到一路视频源图像文件的文件头信息后,根据该文件头信息获得对该路视频源进行视频压缩编码的相关变量值,并将相关变量值传递给为该路视频源新建的一个对应C++编码器类中的对应指针。
所述C++编码器类中定义的指针至少包括码率控制指针和编码状态指针;
在启动编码器类中的编码初始化成员函数后,调用相关库函数由所述码率控制指针和编码状态指针携带获得的对该路视频源进行视频压缩编码的相关变量值,对所述库文件相应结构体中的对应变量进行初始化。
本发明还提供一种对多路视频源同时进行压缩编码的实现系统,包括:
第一功能模块,用于将视频压缩编码所需变量封装到相应结构体中,并编译连接存储到库文件;
第二功能模块,用于为每一路视频源新建一个实例;
第三功能模块,用于通过实例中定义的指针携带对该路视频源进行视频压缩编码的相关变量值,对所述库文件相应结构体中的变量进行赋值,并调用相应库函数对该路视频源图像帧进行压缩编码。
所述库文件中包括三个结构体,分别为:
封装码率控制相关变量的码率控制结构体;
封装编码状态相关变量的编码状态结构体;以及
封装码流状态相关变量的码流状态结构体。
所述第二功能模块为每一路视频源新建的对应实例为C++编码器类,在所述C++编码器类中封装码器实现视频压缩编码的相应功能。
本发明有益效果如下:
在本发明方法中,预先将视频压缩编码所需变量封装到相应结构体中,并编译连接存储到库文件;当需要启动对多路视频源同时进行压缩编码时,为每一路视频源新建一个实例;通过实例中定义的指针携带对该路视频源进行视频压缩编码的相关变量值,对所述库文件相应结构体中的变量进行赋值,并调用相应库函数对该路视频源图像帧进行压缩编码,从而实现同时对多路视频源进行压缩编码。由于本发明预先将视频压缩编码所需变量封装到相应结构体中,不存在全局变量,且每一路视频源对应一个实例,由实例中定义的指针实现对结构体中的变量的操作,从而使得多个视频源压缩编码操作可以不相关地并行执行。
另外,采用本发明,仅需存储一个库文件(在库文件中存储本发明的相应结构体以及各种库函数),通过为每一路视频源新建一个实例(如C++编码器类),用实例中封装的相应成员函数来调用相关库函数进行变量赋值以及完成对视频图像的压缩编码功能。这种实现方式,不仅节省系统的存储资源,同时使得库文件中本身的源代码对上层应用来说是透明的,更有利于源代码的保护。
附图说明
图1为本发明全局结构体及变量封装示意图;
图2为本发明实施例中C++编码器类所包含的成员函数和成员变量示意图;
图3为本发明对多路视频源同时进行压缩编码的实现系统结构示意图。
具体实施方式
本发明提供一种对多路视频源同时进行压缩编码的实现方法,包括:
预先将视频压缩编码所需变量封装到相应结构体中,并编译连接存储到库文件;
当需要启动对多路视频源同时进行压缩编码时,为每一路视频源新建一个实例;通过实例中定义的指针携带对该路视频源进行视频压缩编码的相关变量值,对所述库文件相应结构体中的变量进行赋值,并调用相应库函数对该路视频源图像帧进行压缩编码。
下面结合附图,对本发明方法加以详细阐述。
参见图1,为本发明全局结构体及变量封装示意图。现有技术中,定义了视频压缩编码过程中所需的一系列全局变量,如帧尺寸、比特数、压缩参数、峰值信噪比(PSNR)以及控制参数等,这些全局变量在头文件中指定;还有一些仅在某个压缩编码相关文件(如预测文件、变换文件、量化文件、滤波文件和熵编码文件等)中使用的变量也被定义为全局变量,在对应的文件中指定;还包括有一些小的结构体(每个结构体中封装有一些相关变量),如码率控制结构体、编码状态结构体和码流状态结构体。
其中:
帧尺寸:用于记载压缩帧的比特数;
比特数:记载已压缩存入到码流缓冲区中的比特数;
压缩参数:记载图像宽、高以及CPU类型等压缩参数;
峰值信噪比(PSNR):为评价压缩图像质量的客观评价标准变量,用于查看编码效率;
控制:记载I帧、P帧、B帧的量化参数,是否打开码率控制、目标码率等控制信息;
码率控制结构体:包括根据带宽控制压缩所用码率机制的各个变量;
编码状态结构体:包括在编码每一帧时标识当前编码状态的各个变量;
码流状态:包括写入压缩后文件的码留缓冲区信息,具体的缓冲区写位置等信息。
本发明将现有技术在头文件中指定的全局变量(如帧尺寸、比特数、压缩参数、PSNR以及控制参数等)全部封装到编码状态结构体中;并将现有技术中仅在某个压缩编码相关文件中指定的全局变量,根据其指示的状态信息封装到码率控制结构体中,或封装到编码状态结构体中。也就是说,本发明将现有技术中与视频压缩编码相关的所有全局变量和结构体都封装到三个大的结构体中,分别为:码率控制结构体、编码状态结构体、码流状态结构体。
本发明每个结构体所包含的变量如下:
A)码率控制结构体包括:现有技术中原有码率控制结构体的全部变量以及现有技术在压缩编码相关文件中指定的与码率控制相关的全局变量;
B)编码状态结构体包括:现有技术中原有编码状态结构体的全部变量以及现有技术头文件中指定的所有全局变量,还包括现有技术在压缩编码相关文件中的指定的与编码状态相关的全局变量;
C)码流状态结构体包括:现有技术中原有码流状态结构体的全部变量。
完成了所有全局结构体及变量的封装以后,进行编译连接,为上层调用提供库(lib)文件。所述库文件中,除了包括编译后的本发明提供的三个结构体外,还包括实现图像帧压缩编码相应功能的若干个库函数,每一个库函数包含一个或多个本发明所提供的全局结构体中的变量参数,具体的库函数及每一个库函数所包含的具体参数与现有技术相同,本发明对此不作限定。
为了实现同时对多路视频源进行压缩编码,需要为每一路视频源新建一个实例,通过实例中定义的指针携带对该路视频源进行视频压缩编码的相关变量值,对库文件相应结构体中的对应变量进行赋值,并调用相应库函数对该路视频源图像帧进行压缩编码。
下面以给每一路视频源新建一个对应的C++编码器类(一个C++编码器类对应一个实例)为例,描述同时对多路视频源进行压缩编码的具体实现方法。
首先,在所述C++编码器类中封装编码器实现视频压缩编码的相应功能。具体地,在编码器类中,为编码器实现视频压缩编码所需执行的每一项具体功能定义相应的成员函数;如图2所示,例如:定义的成员函数为:
1)设置CPU类型成员函数:根据CPU的类型变量,设置其类型为:多媒体扩展指令集(Multi-media Extension,MMX)、流式SIMD扩展指令集(Streaming SIMD Extension,SSE)、流式SIMD扩展指令集2(Streaming SIMDExtension 2,SSE2)类型;
2)编码初始化成员函数:对编码器主要参数如图像的宽、高、量化参数等进行初始化。
3)图像帧编码成员函数:对视频序列中一帧图像进行编码。
4)编码后处理成员函数:在编码过程中输出压缩编码后的视频文件,在编码结束后对编码过程中分配的资源进行释放。
还设置三个成员变量,分别为:
码率控制指针、编码状态指针和CPU类型。
通过顺序启动上述编码器类中定义的成员函数调用相关库函数,实现对一路视频源图像帧的压缩编码。
具体实现过程为:
(1)编码器读取到一路视频源图像文件的文件头信息后,根据该文件头信息获得对该路视频源进行视频压缩编码的相关变量值,并将相关变量值传递给为该路视频源新建的一个对应C++编码器类中的码率控制指针和编码状态指针。
(2)启动编码器类中的设置CPU类型成员函数,设置CPU类型,并通过CPU类型变量传递给相关库函数,给库文件中的CPU类型变量赋值。该设置CPU类型成员函数所调用的具体库函数在定义C++编码器类的头文件中预先约定。
(3)接着启动编码初始化成员函数,调用相关库函数由码率控制指针和编码状态指针携带获得的对该路视频源进行视频压缩编码的相关变量值,对库文件中存储的三个结构体中的对应变量进行初始化;具体初始化变量,例如:
压缩参数变量:图像的宽、高;
量化参数;包括I帧、P帧、B帧的量化参数,以及一共需要压缩多个帧,多长时间传输一个I帧等;
还包括是否打开码率控制以及目标码率等信息。
具体需要初始化的变量与现有技术相同,本发明对此不作限定。
该编码初始化成员函数所调用的具体库函数在定义C++编码器类的头文件中预先约定。
(4)接着启动图像帧编码成员函数,调用相关库函数实现对一个图像帧进行压缩编码。在对该路视频源进行图像压缩编码时,需要的相关参数值已通过上述步骤(3)对相关变量初始化后唯一确定,具体的压缩编码方法为现有技术,本发明对此不作限定。压缩后的码流先写入压缩后文件的码流缓冲区中暂存。
该图像帧编码成员函数所调用的具体库函数在定义C++编码器类的头文件中预先约定。
(5)最后启动编码后处理成员函数,当码流缓冲区中存储的比特数达到预定数量后,调用相关库函数输出码流给压缩后文件,并在处理完视频源的全部图像帧后释放相应资源。该编码后处理成员函数所调用的具体库函数在定义C++编码器类的头文件中预先约定。
根据本发明提供的上述方法,本发明另提供一种对多路视频源同时进行压缩编码的实现系统11,如图3所示,包括:
第一功能模块101,用于将视频压缩编码所需变量封装到相应结构体中,并编译连接存储到库文件;
第二功能模块102,用于为每一路视频源新建一个实例;
第三功能模块103,用于通过实例中定义的指针携带对该路视频源进行视频压缩编码的相关变量值,对所述库文件相应结构体中的变量进行赋值,并调用相应库函数对该路视频源图像帧进行压缩编码。
所述库文件中包括三个结构体,分别为:
封装码率控制相关变量的码率控制结构体;封装编码状态相关变量的编码状态结构体;以及封装码流状态相关变量的码流状态结构体。
第二功能模块为每一路视频源新建的对应实例为C++编码器类,在C++编码器类中封装码器实现视频压缩编码的相应功能。
综上所述,由于本发明方法中预先将视频压缩编码所需变量封装到相应结构体中,不存在全局变量,且每一路视频源对应一个实例,由实例中定义的指针实现对结构体中的变量的操作,从而使得多个视频源压缩编码操作可以不相关地并行执行。
另外,采用本发明,仅需存储一个库文件(在库文件中存储本发明的相应结构体以及各种库函数),通过为每一路视频源新建一个实例(如C++编码器类),用实例中封装的相应成员函数来调用相关库函数进行变量赋值以及完成对视频图像的压缩编码功能。这种实现方式,既节省了系统的存储资源,且使得库文件本身的源代码对上层应用来说是透明的,更有利于源代码的保护。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种对多路视频源同时进行压缩编码的实现方法,其特征在于,包括:
预先将视频压缩编码所需变量封装到相应结构体中,并编译连接存储到库文件;
当需要启动对多路视频源同时进行压缩编码时,执行下列步骤:
为每一路视频源新建一个实例;
通过实例中定义的指针携带对该路视频源进行视频压缩编码的相关变量值,对所述库文件相应结构体中的变量进行赋值,并调用相应库函数对该路视频源图像帧进行压缩编码。
2.如权利要求1所述的方法,其特征在于,所述预先将视频压缩编码所需变量封装到相应结构体中,具体包括:
将与码率控制相关的变量封装到码率控制结构体中;
将与编码状态相关的变量封装到编码状态结构体中;
将与码流状态相关的变量封装到码流状态结构体中。
3.如权利要求1所述的方法,其特征在于,所述为每一路视频源新建一个实例,具体为:
为每一路视频源新建一个对应的C++编码器类,在所述C++编码器类中封装编码器实现视频压缩编码的相应功能。
4.如权利要求3所述的方法,其特征在于,所述封装编码器实现视频压缩编码的相应功能,具体包括:
在所述编码器类中,为编码器实现视频压缩编码所需执行的每一项具体功能定义相应的成员函数;
通过顺序启动所述编码器类中定义的成员函数调用相关库函数,实现对一路视频源图像帧的压缩编码。
5.如权利要求4所述的方法,其特征在于,所述通过顺序启动编码器类中定义的成员函数调用相关库函数,实现对一路视频源图像帧的压缩编码,具体包括:
启动设置CPU类型成员函数,调用相关库函数给CPU类型变量赋值;
启动编码初始化成员函数,调用相关库函数对压缩编码所需的相关变量进行初始化;
启动图像帧编码成员函数,调用相关库函数实现对一个图像帧进行压缩编码,并写入压缩后文件的码流缓冲区中;
启动编码后处理成员函数,调用相关库函数输出码流给压缩后文件,并在处理完视频源的全部图像帧后释放相应资源。
6.如权利要求5所述的方法,其特征在于,所述编码器读取到一路视频源图像文件的文件头信息后,根据该文件头信息获得对该路视频源进行视频压缩编码的相关变量值,并将相关变量值传递给为该路视频源新建的一个对应C++编码器类中的对应指针。
7.如权利要求6所述的方法,其特征在于,所述C++编码器类中定义的指针至少包括码率控制指针和编码状态指针;
在启动编码器类中的编码初始化成员函数后,调用相关库函数由所述码率控制指针和编码状态指针携带获得的对该路视频源进行视频压缩编码的相关变量值,对所述库文件相应结构体中的对应变量进行初始化。
8.一种对多路视频源同时进行压缩编码的实现系统,其特征在于,包括:
第一功能模块,用于将视频压缩编码所需变量封装到相应结构体中,并编译连接存储到库文件;
第二功能模块,用于为每一路视频源新建一个实例;
第三功能模块,用于通过实例中定义的指针携带对该路视频源进行视频压缩编码的相关变量值,对所述库文件相应结构体中的变量进行赋值,并调用相应库函数对该路视频源图像帧进行压缩编码。
9.如权利要求8所述的系统,其特征在于,所述库文件中包括三个结构体,分别为:
封装码率控制相关变量的码率控制结构体;
封装编码状态相关变量的编码状态结构体;以及
封装码流状态相关变量的码流状态结构体。
10.如权利要求9所述的系统,其特征在于,所述第二功能模块为每一路视频源新建的对应实例为C++编码器类,在所述C++编码器类中封装码器实现视频压缩编码的相应功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101459833A CN101179715A (zh) | 2006-11-30 | 2006-11-30 | 一种对多路视频源同时进行压缩编码的实现方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101459833A CN101179715A (zh) | 2006-11-30 | 2006-11-30 | 一种对多路视频源同时进行压缩编码的实现方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101179715A true CN101179715A (zh) | 2008-05-14 |
Family
ID=39405775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006101459833A Pending CN101179715A (zh) | 2006-11-30 | 2006-11-30 | 一种对多路视频源同时进行压缩编码的实现方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101179715A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724432A (zh) * | 2011-05-17 | 2012-10-10 | 新奥特(北京)视频技术有限公司 | 一种基于sse2的图像混合处理方法 |
CN105657427A (zh) * | 2016-01-25 | 2016-06-08 | 成都国铁电气设备有限公司 | 一种适用于接触网的高清图像压缩方法及系统 |
CN103581599B (zh) * | 2012-07-31 | 2017-04-05 | 安凯(广州)微电子技术有限公司 | 双路录像的改进方法、装置及监控器 |
CN112835651A (zh) * | 2021-04-01 | 2021-05-25 | 中国空空导弹研究院 | 一种多路图像并行解码处理方法 |
-
2006
- 2006-11-30 CN CNA2006101459833A patent/CN101179715A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102724432A (zh) * | 2011-05-17 | 2012-10-10 | 新奥特(北京)视频技术有限公司 | 一种基于sse2的图像混合处理方法 |
CN102724432B (zh) * | 2011-05-17 | 2014-11-05 | 新奥特(北京)视频技术有限公司 | 一种基于sse2的图像混合处理方法 |
CN103581599B (zh) * | 2012-07-31 | 2017-04-05 | 安凯(广州)微电子技术有限公司 | 双路录像的改进方法、装置及监控器 |
CN105657427A (zh) * | 2016-01-25 | 2016-06-08 | 成都国铁电气设备有限公司 | 一种适用于接触网的高清图像压缩方法及系统 |
CN112835651A (zh) * | 2021-04-01 | 2021-05-25 | 中国空空导弹研究院 | 一种多路图像并行解码处理方法 |
CN112835651B (zh) * | 2021-04-01 | 2023-10-20 | 中国空空导弹研究院 | 一种多路图像并行解码处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101651832B (zh) | 在嵌入式设备中提供较高分辨率图像的方法和装置 | |
EP4018672A1 (en) | Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream | |
CN103314591B (zh) | 时间可缩放性的高层句法 | |
CN103609117B (zh) | 编码和解码图像的方法及装置 | |
CN101272442B (zh) | 数字图像无损压缩方法和装置、解析方法及图像译码器 | |
CN101014124A (zh) | 用于减少上下文自适应二进制算术编码存储需求的系统和方法 | |
US20030202581A1 (en) | Image compression device, image decompression device, image compression/decompression device, program for executing on a computer to perform functions of such devices, and recording medium storing such a program | |
KR970019655A (ko) | 부호화 방법, 부호화 장치, 웨이블릿 변환 장치 및 웨이블릿 역 변환 장치 | |
US7747097B2 (en) | Method for simple hardware implementation of JPEG size limiter | |
CN101218603A (zh) | 使用压缩的原始图像的图像处理器的暂时图像缓冲器 | |
CN100571393C (zh) | 一种基于图像特征的码率控制方法及装置 | |
US7689047B2 (en) | Reduced buffer size for JPEG encoding | |
CN101179715A (zh) | 一种对多路视频源同时进行压缩编码的实现方法与系统 | |
CN101090445A (zh) | 图像处理方法、图像处理设备、图像处理程序和图像浏览系统 | |
CN102017636B (zh) | 影像的解码 | |
CN109600619A (zh) | 一种解码硬件的分时复用方法 | |
CN112290953B (zh) | 多道数据流的阵列编码装置和方法、阵列解码装置和方法 | |
CN103686179A (zh) | 使用参数集的编码、解码方法及装置、电子设备 | |
Yu et al. | Efficient rate control for JPEG-2000 | |
CN100399333C (zh) | 利用压缩率的动画文件的缩略图生成方法 | |
CN1173560C (zh) | 图像压缩装置和方法 | |
CN116055802A (zh) | 图像帧处理方法及电子设备 | |
US20030059119A1 (en) | Method and device for storing and processing image information of temporally successive images | |
CN114938408A (zh) | 一种云手机的数据传输方法、系统、设备及介质 | |
KR100647957B1 (ko) | 사전 기반 압축 방법을 이용한 연속된 이미지 압축 및복원 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20080514 |