JP6003032B2 - Image compression method, image compression apparatus and system - Google Patents

Image compression method, image compression apparatus and system Download PDF

Info

Publication number
JP6003032B2
JP6003032B2 JP2011199995A JP2011199995A JP6003032B2 JP 6003032 B2 JP6003032 B2 JP 6003032B2 JP 2011199995 A JP2011199995 A JP 2011199995A JP 2011199995 A JP2011199995 A JP 2011199995A JP 6003032 B2 JP6003032 B2 JP 6003032B2
Authority
JP
Japan
Prior art keywords
same color
continuous length
color
threads
processor
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
Application number
JP2011199995A
Other languages
Japanese (ja)
Other versions
JP2013062690A (en
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011199995A priority Critical patent/JP6003032B2/en
Publication of JP2013062690A publication Critical patent/JP2013062690A/en
Application granted granted Critical
Publication of JP6003032B2 publication Critical patent/JP6003032B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

本発明は、画像を圧縮する画像圧縮方法、画像圧縮装置およびシステムに関する。   The present invention relates to an image compression method, an image compression apparatus, and a system for compressing an image.

クラウド・コンピューティングでは、多くのアプリケーションの動作により、高速なネットワーク通信が必要になる。近年では、クライアントの端末は、サーバ側に操作コマンドを送り、サーバ側が操作コマンドに対応した処理を実行するDaaS(Desktop as a Service)のサービスが提供されている。このようなクラウド・コンピューティングを利用する例として、製品設計の分野ではCAD画像(デスクトップ画像)の転送がある。このデスクトップ画像は、クラウドのサーバ側が生成してクライアント(特にシンクライアント)の端末に転送する。この際、ネットワークの負荷を低減するために、サーバ側では、デスクトップ画像を圧縮して転送するようになっている。   In cloud computing, high-speed network communication is required due to the operation of many applications. In recent years, a client terminal is provided with a service of DaAS (Desktop as a Service) in which an operation command is sent to the server side, and the server side executes processing corresponding to the operation command. As an example of using such cloud computing, there is transfer of CAD images (desktop images) in the field of product design. This desktop image is generated by the cloud server and transferred to a client (particularly a thin client) terminal. At this time, in order to reduce the load on the network, the server side compresses and transfers the desktop image.

たとえば、画像圧縮等に用いることができる画像認識の技術として、一定長さ以上の画素の並び(ラン)を抽出して、文字領域を抽出する技術がある(たとえば、下記特許文献1参照。)。また、デスクトップ画像を圧縮する技術としては、画面を小ブロックに分割し、各ブロック内で同一色の矩形を検索してタイリングする技術がある(たとえば、下記非特許文献1参照。)。また、画像処理に特化したGPU(Graphic Processing Unit)を用い、全画面を複数のブロックに分割し、1ブロックの処理をGPUの1スレッドに割り当て、複数のプロセッサで並列処理する技術がある(たとえば、下記非特許文献2参照。)。   For example, as a technique for image recognition that can be used for image compression or the like, there is a technique for extracting a character region by extracting an arrangement (run) of pixels having a certain length or more (see, for example, Patent Document 1 below). . As a technique for compressing a desktop image, there is a technique in which a screen is divided into small blocks, and a rectangle of the same color is searched and tiled in each block (for example, see Non-Patent Document 1 below). Also, there is a technology that uses a GPU (Graphic Processing Unit) specialized for image processing, divides the entire screen into a plurality of blocks, assigns one block of processing to one thread of the GPU, and performs parallel processing with a plurality of processors ( For example, see the following non-patent document 2.)

特開平1−217583号公報Japanese Patent Laid-Open No. 1-217583

Tristan Richardson、“The RFB Protocol”、[online]、26,November,2010、RealVNC Ltd、[平成23年8月15日検索]、インターネット<URL:http://www.realvnc.com/docs/rfbproto.pdf>Tristan Richardson, “The RFB Protocol”, [online], 26, November, 2010, RealVNC Ltd, [August 15, 2011 search], Internet <URL: http: // www. realvnc. com / docs / rfbproto. pdf> YongLIU、外2名、“gTiledVNC−a22Mega−pixel Display Wall Desktop Using GPUs and VNC”、Department of Computer Science,University of Tromsφ、[平成23年8月15日検索]、インターネット<URL:http://www.ub.uit.no/munin/bitstream/handle/10037/2959/appendix_b.pdf>YongLIU, 2 other names, “gTiledVNC-a22 Mega-pixel Display Wall Desktop Usage GPUs and VNC”, Department of Computer Science, w23 years, 15 days. . ub. uit. no / munin / bitstream / handle / 10037/2959 / appendix_b. pdf>

クラウド・コンピューティングを利用する場合、多数のクライアントからのアクセスにより、高負荷なCADアプリケーションが同時に動作することになり、対応してサーバのCPU、およびGPU負荷が高くなる。また、上記のようなデスクトップ画像を圧縮するための圧縮処理について、GPUを効率的に用いた並列処理がおこなえなかった。   When using cloud computing, access from a large number of clients causes a high-load CAD application to operate simultaneously, and the CPU and GPU loads of the server increase correspondingly. Moreover, the parallel processing using GPU efficiently cannot be performed about the compression processing for compressing the above desktop images.

すなわち、上記従来の技術による画像圧縮処理では、GPUは各ブロックの処理で画素を探すために大量のメモリ比較処理が必要となった。画像処理に特化したGPUにおいては、メモリアクセスに時間がかかり、GPUにおけるメモリ処理は、CPUよりも低速である。したがって、上記のようにブロック分割による並列化処理をおこなう際に、メモリアクセスに時間がかかり、合計の処理時間は短縮することができなかった。並列プロセッサ固有の問題として、1.メモリアクセスが遅く、特に、メモリ比較処理でメモリのアクセス位置がとびとびになると、急激に低下する。2.分岐処理が悪影響を及ぼし、例として、32個のスレッドが同期をとりながら進行するので、1スレッドが長い探索に分岐すると、他のスレッドも同期のために待つ必要がある。このようなGPUでの処理時間の遅延によってクライアントに転送するまでの時間がかかることとなり、クライアント側での設計作業等を迅速に遂行することができなくなる。   That is, in the image compression processing according to the conventional technique, the GPU needs a large amount of memory comparison processing in order to search for pixels in the processing of each block. In a GPU specialized in image processing, memory access takes time, and the memory processing in the GPU is slower than the CPU. Therefore, when performing parallel processing by block division as described above, memory access takes time, and the total processing time cannot be shortened. As problems specific to parallel processors: Memory access is slow, especially when the memory access position is skipped in the memory comparison process. 2. The branch process has an adverse effect, and as an example, 32 threads proceed while synchronizing, so if one thread branches to a long search, the other threads must also wait for synchronization. Due to such a delay in processing time in the GPU, it takes time until transfer to the client, and it becomes impossible to quickly perform design work and the like on the client side.

製品設計の分野でクラウド・コンピューティングを利用する場合、サーバ側のCPUおよびGPUに負荷をかけずにアプリケーションが快適に動作して、デスクトップ画像の圧縮処理等を高速に完了でき、クライアントに転送する手法が必要となる。   When using cloud computing in the field of product design, applications can operate comfortably without burdening the CPU and GPU on the server side, desktop image compression processing, etc. can be completed at high speed and transferred to the client A technique is required.

開示の画像圧縮方法、画像圧縮装置およびシステムは、上述した問題点を解消するものであり、画像の圧縮を迅速かつ効率的におこなうことを目的とする。   The disclosed image compression method, image compression apparatus, and system solve the above-described problems, and an object thereof is to quickly and efficiently compress an image.

上述した課題を解決し、目的を達成するため、開示技術は、圧縮する画像データについて、各画素の色をプロセッサが実行する複数スレッドの同時並行処理によりそれぞれ検出し、1列の画素の並びにおけるRGBいずれかの同一色連続長さを求め、前記同一色連続長さの情報に基づき、前記画像データを圧縮し、前記同一色連続長さを、画面全体を複数に分割し、前記分割後の小ブロックが有する画素数を前記スレッド数に対応させ、前記複数スレッドの同時並行処理をおこない、同一列の他のスレッドで検出された隣接画素の色に基づき求めること、を含む。 In order to solve the above-described problems and achieve the object, the disclosed technology detects the color of each pixel by compressing multiple parallel threads executed by the processor for each image data to be compressed. The same color continuous length of any one of RGB is obtained, the image data is compressed based on the information of the same color continuous length, the same color continuous length is divided into a plurality of screens, Including making the number of pixels of a small block correspond to the number of threads, performing simultaneous parallel processing of the plurality of threads, and obtaining the number based on the color of adjacent pixels detected by other threads in the same column .

開示の画像圧縮方法、画像圧縮装置およびシステムによれば、画像の圧縮を迅速かつ効率的におこなうことができるという効果を奏する。   According to the disclosed image compression method, image compression apparatus, and system, there is an effect that image compression can be performed quickly and efficiently.

図1は、実施の形態にかかる画像圧縮装置を含むシステムを示す図である。FIG. 1 is a diagram illustrating a system including an image compression apparatus according to an embodiment. 図2は、実施の形態にかかる画像圧縮処理の手順を示すフローチャートである。FIG. 2 is a flowchart illustrating a procedure of image compression processing according to the embodiment. 図3は、GPUがおこなう圧縮高速化テーブルの作成処理の概要図である。FIG. 3 is a schematic diagram of processing for creating a compression acceleration table performed by the GPU. 図4は、GPUがおこなう圧縮高速化テーブルの作成処理の手順を示すフローチャートである。FIG. 4 is a flowchart showing the procedure of the compression acceleration table creation process performed by the GPU. 図5は、CPUがおこなう画像圧縮処理の手順を示すフローチャートである。FIG. 5 is a flowchart showing a procedure of image compression processing performed by the CPU. 図6は、バックグラウンド色の決定にかかる処理内容を詳細に示したフローチャートである。FIG. 6 is a flowchart showing in detail the processing content related to the determination of the background color. 図7は、同一色の矩形を検出する処理内容を詳細に説明したフローチャートである。FIG. 7 is a flowchart illustrating in detail the processing content for detecting a rectangle of the same color. 図8は、CPUがおこなう圧縮処理の概要図である。FIG. 8 is a schematic diagram of compression processing performed by the CPU. 図9は、図1に示した画像圧縮装置を用いたシステムの適用例を示す図である。FIG. 9 is a diagram showing an application example of a system using the image compression apparatus shown in FIG.

(システム構成例)
以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。図1は、実施の形態にかかる画像圧縮装置を含むシステムを示す図である。このシステム100は、画像圧縮装置として機能するサーバ101と、クライアント102とからなる。このシステム100では、たとえば、クライアント102がサーバ101に操作コマンドを送り、サーバ101が操作コマンドに対応した処理を実行し、クライアント102に操作コマンドに対応したCAD画像(デスクトップ画像)等のデータを送信するDaaSのサービスを利用する。
(System configuration example)
Hereinafter, preferred embodiments of the disclosed technology will be described in detail with reference to the accompanying drawings. FIG. 1 is a diagram illustrating a system including an image compression apparatus according to an embodiment. The system 100 includes a server 101 that functions as an image compression apparatus and a client 102. In this system 100, for example, the client 102 sends an operation command to the server 101, the server 101 executes processing corresponding to the operation command, and transmits data such as a CAD image (desktop image) corresponding to the operation command to the client 102. Use DaaS service.

クライアント102は、CPU102aおよび図示しないROM,RAM等のメモリを含み、キーボード103やマウス104等の操作により、所望する処理の操作コマンドをネットワーク110を介してサーバ101に送信する。ディスプレイ105には、操作および処理内容が表示される。   The client 102 includes a CPU 102a and a memory such as a ROM and a RAM (not shown), and transmits an operation command for a desired process to the server 101 via the network 110 by operating the keyboard 103, the mouse 104, or the like. The display 105 displays operation and processing contents.

サーバ101は、GPU101a、CPU101b、図示しないROM,RAM等を含む。このサーバ101には、予め製品設計用のアプリケーション、たとえばCADアプリケーションが格納されているディスク装置120が接続されている。そして、サーバ101は、ネットワーク110を介してクライアント102から操作コマンドを受信すると、CPU101bおよびGPU101aがCADアプリケーションを実行し、実行結果であるデスクトップ画像(CAD画像)をネットワーク110を介してクライアント102に送信する。クライアント102は、受信したデスクトップ画像をディスプレイ105に表示する。   The server 101 includes a GPU 101a, a CPU 101b, a ROM, a RAM (not shown), and the like. The server 101 is connected to a disk device 120 in which a product design application, for example, a CAD application is stored in advance. When the server 101 receives an operation command from the client 102 via the network 110, the CPU 101 b and the GPU 101 a execute the CAD application, and sends a desktop image (CAD image) as an execution result to the client 102 via the network 110. To do. The client 102 displays the received desktop image on the display 105.

サーバ101は、全体の処理をCPU101bが統括制御し、GPU101aは、CPU101bと分担して画像処理を実行する。GPU101aについては、マルチコアのプロセッサで構成され、プログラム(CADアプリケーション)実行時における複数のスレッドを並列に同時実行する。   The server 101 performs overall control of the entire process by the CPU 101b, and the GPU 101a executes image processing in a shared manner with the CPU 101b. The GPU 101a is composed of a multi-core processor, and simultaneously executes a plurality of threads in parallel when a program (CAD application) is executed.

(デスクトップ画像の圧縮処理内容)
つぎに、サーバ101が実行するデスクトップ画像の圧縮処理内容について説明する。サーバ101は、GPU101aとCPU101bとが分担してデータ量が大きいCAD画像等のデスクトップ画像を圧縮処理する。GPU101aは、デスクトップ画像の圧縮にかかるプレ処理(後述する圧縮高速化テーブルの作成)を実行し、このGPU101aの情報を基にCPU101bが圧縮処理を実行する。
(Desktop image compression content)
Next, the contents of the desktop image compression process executed by the server 101 will be described. In the server 101, the GPU 101a and the CPU 101b share a desktop image such as a CAD image with a large amount of data. The GPU 101a executes pre-processing related to desktop image compression (creation of a compression acceleration table described later), and the CPU 101b executes compression processing based on the information of the GPU 101a.

(画像圧縮処理の手順)
図2は、実施の形態にかかる画像圧縮処理の手順を示すフローチャートである。GPU101aは、CPU101bがおこなう圧縮処理のプレ処理として、クライアントに送信するデスクトップ画像を読み込み、圧縮高速化テーブルを作成し、この圧縮高速化テーブルをCPU101bに出力する。
(Image compression processing procedure)
FIG. 2 is a flowchart illustrating a procedure of image compression processing according to the embodiment. The GPU 101a reads a desktop image to be transmitted to the client as a pre-processing of compression processing performed by the CPU 101b, creates a compression acceleration table, and outputs the compression acceleration table to the CPU 101b.

はじめに、GPU101aは、クライアントに送信するデスクトップ画像の全画面を所定のブロック、たとえば16×16の画像の小ブロックに分割し、N個のブロックを得る(ステップS201)。このN個は、たとえば、GPU101aが有するN個(たとえば256個)のプロセッサに対応して設定する。なお、サーバ101は、新たなデスクトップ画像を送信する際に、前回、クライアント102に送信したデスクトップ画像との差分のみを抽出し、この差分のデスクトップ画像に対する圧縮処理をおこなう構成とすることもでき、この場合には、よりネットワーク110上でのデータ量を削減できる。   First, the GPU 101a divides the entire screen of the desktop image transmitted to the client into predetermined blocks, for example, small blocks of a 16 × 16 image, and obtains N blocks (step S201). These N numbers are set corresponding to N (for example, 256) processors of the GPU 101a, for example. The server 101 can also be configured to extract only the difference from the desktop image transmitted to the client 102 last time when transmitting a new desktop image, and to perform compression processing on the desktop image of the difference, In this case, the amount of data on the network 110 can be further reduced.

つぎに、N個のプロセッサによる並列処理を開始する(ステップS202)。N個のプロセッサがおこなう各処理(ステップS203)について説明すると、1つのプロセッサは、処理番号(1〜N)から自プロセッサが処理するブロックを特定し(ステップS213)、この処理ブロックについて圧縮高速化テーブルを作成する(ステップS214)。N個のプロセッサは、それぞれこの圧縮高速化テーブルを作成し、CPU101bに転送する。この後、CPU101bは、圧縮高速化テーブルを利用した圧縮処理を実行する(ステップS204)。   Next, parallel processing by N processors is started (step S202). Each process (step S203) performed by the N processors will be described. One processor specifies a block to be processed by its own processor from the process numbers (1 to N) (step S213), and the compression speed of the process block is increased. A table is created (step S214). Each of the N processors creates this compression acceleration table and transfers it to the CPU 101b. Thereafter, the CPU 101b executes a compression process using the compression acceleration table (step S204).

(GPUがおこなうプレ処理について)
図3は、GPUがおこなう圧縮高速化テーブルの作成処理の概要図である。GPU101aは、図2に示す1つの小ブロック(16×16画素=256画素)について、同時に256スレッドの起動を開始する。この際、X座標について、同一色の画素の並びの個数(同一色シーケンス数)をMとする。図3に示す例では、最上段1列について、画素毎のRGB各色をそれぞれ検出した結果、左から順に、R(赤)画素の同一色連続長さ(Run Length)が3、G(緑)画素の同一色連続長さが5、R(赤)画素の同一色連続長さが3、B(青)画素の同一色連続長さが2、赤画素の同一色連続長さが3であったとする。この場合、この1列あたりの同一色シーケンス数M=5である。たとえば、1列あたり平均M=5であると、図3全体では、M=80となり、256(=16×16)に比してMの数は小さくなる。GPU101aでは、上記同一色の連続数(Run Length)を、CPU101bに転送する。
(About pre-processing performed by GPU)
FIG. 3 is a schematic diagram of processing for creating a compression acceleration table performed by the GPU. The GPU 101a starts activation of 256 threads simultaneously for one small block (16 × 16 pixels = 256 pixels) shown in FIG. At this time, regarding the X coordinate, M is the number of pixels arranged in the same color (the number of the same color sequence). In the example illustrated in FIG. 3, as a result of detecting each RGB color for each pixel for the top row, the R (red) pixel has the same color continuous length (Run Length) of 3 and G (green) in order from the left. The same color continuous length of the pixel is 5, the same color continuous length of the R (red) pixel is 3, the same color continuous length of the B (blue) pixel is 2, and the same color continuous length of the red pixel is 3. Suppose . In this case, it is the same color sequence number M = 5 per this one column. For example, if the average M per row is 5, M is 80 in the whole of FIG. 3, and the number of M is smaller than 256 (= 16 × 16). In the GPU 101a, the continuous number of the same color (Run Length) is transferred to the CPU 101b.

図4は、GPUがおこなう圧縮高速化テーブルの作成処理の手順を示すフローチャートである。図2のステップS214の処理内容の詳細を示している。GPU101aは、図2により256分割された1つの小ブロックについて、同時に256スレッドの起動を開始する(ステップS401)。GPU101aのN(256)個の各プロセッサに対し、スレッド番号M(1〜256)から自プロセッサが処理するデスクトップ画像上での座標を指定する(ステップS411)。   FIG. 4 is a flowchart showing the procedure of the compression acceleration table creation process performed by the GPU. The details of the processing content of step S214 in FIG. 2 are shown. The GPU 101a starts the activation of 256 threads simultaneously for one small block divided into 256 according to FIG. 2 (step S401). For the N (256) processors of the GPU 101a, the coordinates on the desktop image processed by the processor are designated from the thread number M (1 to 256) (step S411).

ここで、X,Y座標について、各スレッドごとに処理開始する座標位置を異ならせて同時並列処理をおこなう。たとえば、座標Xについて、X=M%16,Y=M/16とすると、スレッド1は、M=1であり、座標(X,Y)=(1,0)、スレッド128は、M=128であり、座標(X,Y)=(0,8)、スレッド256は、M=256であり、座標(X,Y)=(0,16)の位置から処理を開始する。なお、[%]は割り算の余り、[/]は割り算の商である。   Here, with respect to the X and Y coordinates, the simultaneous parallel processing is performed by changing the coordinate position where the processing is started for each thread. For example, if X = M% 16 and Y = M / 16 with respect to the coordinate X, the thread 1 has M = 1, the coordinates (X, Y) = (1, 0), and the thread 128 has M = 128. The coordinates (X, Y) = (0, 8) and the thread 256 are M = 256, and the processing starts from the position of the coordinates (X, Y) = (0, 16). [%] Is the remainder of the division, and [/] is the quotient of the division.

つぎに、各スレッド(1〜256)は、同一色連続長さを初期値(0)とし(ステップS412)、1列(最大16画素)以下であるか判断し(ステップS413)、この1列(最大16画素)の間において、他のスレッドで検出され、X軸方向に同一色で連続する画素があれば、同一色連続長さに1を加算する(ステップS414)。ここで同一色ではない場合、あるいは最大16画素を超えた場合には、ステップS413,S414のループを抜けて終了する。   Next, each thread (1 to 256) sets the continuous length of the same color as an initial value (0) (step S412), and determines whether it is 1 column (maximum 16 pixels) or less (step S413). If there is a pixel that is detected by another thread and is continuous in the same color in the X-axis direction between (maximum 16 pixels), 1 is added to the same color continuous length (step S414). If the colors are not the same, or if the maximum exceeds 16 pixels, the process exits through the loop of steps S413 and S414.

上記処理により、図3に示したように、同一色連続長さが得られ、この同一色連続長さ(Run Length)をCPU101bに転送し、終了する。   As a result of the above processing, as shown in FIG. 3, the same color continuous length is obtained, and this same color continuous length (Run Length) is transferred to the CPU 101b, and the process ends.

上記処理によれば、異なる1画素ごとに対応したスレッドが同時並行処理され、高速処理できるようになる。また、ステップS414による同一色連続長さの加算はメモリ領域へのアクセスがシリアルである(アドレスが連続している)ため、GPU101aが用いるメモリへのアクセスを効率的におこなえる。特に、GPU101aでは、水平方向のX軸(1軸)での同一色連続長さ(Run Length)だけを並列計算するため、メモリ上でも連続する領域となり、GPU101aに適合した処理であり、高速化できる。   According to the above processing, threads corresponding to different pixels are simultaneously processed in parallel, and high-speed processing can be performed. In addition, since the same color continuous length addition in step S414 is serial access to the memory area (addresses are continuous), the memory used by the GPU 101a can be accessed efficiently. In particular, since only the same color continuous length (Run Length) on the horizontal X-axis (one axis) is calculated in parallel in the GPU 101a, it becomes a continuous area on the memory and is a process suitable for the GPU 101a. it can.

(CPUがおこなう圧縮処理について)
つぎに、CPU101bがおこなう圧縮処理について説明する。図5は、CPUがおこなう画像圧縮処理の手順を示すフローチャートである。CPU101bは、GPU101aから同一色連続長さ(Run Length)を取得する(ステップS501)。なお、この際、同一色連続長さに対応した同一色シーケンス数Mは、最大の256個以下となる。上記図3に示す例ではM=80で済む。
(About compression processing performed by CPU)
Next, compression processing performed by the CPU 101b will be described. FIG. 5 is a flowchart showing a procedure of image compression processing performed by the CPU. The CPU 101b acquires the same color continuous length (Run Length) from the GPU 101a (step S501). At this time, the number M of the same color sequence corresponding to the same color continuous length is 256 or less at the maximum. In the example shown in FIG. 3, M = 80 is sufficient.

そして、同一色連続長さに基づき、デスクトップ画面上において、最も出現する色をバックグラウンド(背景色)としてエンコード(圧縮処理)する(ステップS502)。この処理は、同一色シーケンス数M回のループ処理でおこなわれる(詳細は後述する)。   Based on the same color continuous length, the most appearing color is encoded (compressed) as the background (background color) on the desktop screen (step S502). This process is performed by a loop process of the same color sequence number M times (details will be described later).

つぎに、ステップS502で判定したバックグラウンド以外の色の画素を探す(ステップS503)。この処理は、最大でも同一色シーケンス数M回のループ処理でおこなえる。   Next, a pixel having a color other than the background determined in step S502 is searched (step S503). This processing can be performed by a loop processing with the same color sequence number M times at most.

この後、ステップS503でみつかった画素を左上の座標位置にもつ色について、面積最大となる矩形を検出する(ステップS504)。この処理では、X軸方向についてのループ処理は無く、Y軸方向に最大でも16回のループ処理で済む。   Thereafter, a rectangle having the maximum area is detected for the color having the pixel found in step S503 at the upper left coordinate position (step S504). In this process, there is no loop process in the X-axis direction, and a maximum of 16 loop processes in the Y-axis direction are sufficient.

最後に、ステップS504で検出された矩形の色、左上座標位置、縦横(X,Y)サイズをエンコードし(ステップS505)、処理を終了する。なお、この後、CPU101bは、ステップS502で処理したエンコード後のバックグラウンドの情報と、ステップS505で処理したエンコード後の各矩形の情報をネットワーク110を介してクライアント102に送信する。   Finally, the rectangular color, upper left coordinate position, and vertical and horizontal (X, Y) size detected in step S504 are encoded (step S505), and the process ends. Thereafter, the CPU 101b transmits the background information after the encoding processed in step S502 and the information of each rectangle after the encoding processed in step S505 to the client 102 via the network 110.

クライアント102では、CPU102aが受信したバックグラウンドの情報をデコード(復号)して、デスクトップのバックグラウンド(背景色)としてディスプレイ105に表示する。また、CPU102aは、この背景色上に、受信した各矩形の情報をデコード(復号)して、各座標位置に対応する縦横サイズおよび色でディスプレイ105に表示する。   In the client 102, the background information received by the CPU 102a is decoded (decoded) and displayed on the display 105 as a desktop background (background color). Further, the CPU 102a decodes (decodes) the received information of each rectangle on the background color, and displays it on the display 105 in the vertical and horizontal sizes and colors corresponding to the respective coordinate positions.

図6は、バックグラウンド色の決定にかかる処理内容を詳細に示したフローチャートである。CPU101bが実行する図5のステップS502の処理の詳細を示している。はじめに、出現した色であるColor[256]と、最大出現色であるMaxcolorと、最大出現数MaxCntをそれぞれ0で初期化する(ステップS601)。そして、以下の処理について、画素数256に対応して、変数iが0から255までカウントするまでの間処理実行する(ステップS602)。   FIG. 6 is a flowchart showing in detail the processing content related to the determination of the background color. The details of the process of step S502 of FIG. 5 executed by the CPU 101b are shown. First, Color [256], which is an appearing color, Maxcolor, which is a maximum appearing color, and the maximum appearance number MaxCnt are each initialized to 0 (step S601). Then, the following processing is executed until the variable i is counted from 0 to 255 corresponding to the number of pixels 256 (step S602).

まず、出現したColorData[i]が出現済みColorにあるか判断する(ステップS603)。ここで、新たな色のため出現済みColorでなければ(ステップS603:No)、ColorData[i]を新規登録する。また、ColorData[i]の出現数にRle(Run Lengthの略)[i]を設定する。また、変数iにRle[i]を加算する(ステップS604)。一方、出現済みColorであれば(ステップS603:Yes)、同じ色であるColorData[i]の出現数にRle[i]を加算する。また、変数iにRle[i]を加算する(ステップS605)。   First, it is determined whether or not the appearing ColorData [i] is in the appearing Color (step S603). Here, if it is not an existing color due to a new color (step S603: No), color data [i] is newly registered. Also, Rle (abbreviation of Run Length) [i] is set as the number of occurrences of ColorData [i]. Further, Rle [i] is added to the variable i (step S604). On the other hand, if the color has already appeared (step S603: Yes), Rle [i] is added to the number of occurrences of the same color ColorData [i]. Further, Rle [i] is added to the variable i (step S605).

上記ステップS604あるいはステップS605の実行後、ColorData[i]の出現数が最大出現数MaxCntより大きいかを判定する(ステップS606)。ColorData[i]の出現数が最大出現数MaxCntより大きければ(ステップS606:Yes)、ステップS607に移行し、ColorData[i]の出現数が最大出現数MaxCntより大きくなければ(ステップS606:No)、ステップS607を実行せずにステップS602に戻る。   After execution of step S604 or step S605, it is determined whether the number of occurrences of ColorData [i] is greater than the maximum number of occurrences MaxCnt (step S606). If the number of occurrences of ColorData [i] is greater than the maximum number of occurrences MaxCnt (step S606: Yes), the process proceeds to step S607, and if the number of occurrences of ColorData [i] is not greater than the maximum number of occurrences MaxCnt (step S606: No). The process returns to step S602 without executing step S607.

ステップS607では、最大出現色Maxcolorに、ColorData[i]を設定する。また、最大出現数MaxCntにColorData[i]の出現数を設定する(ステップS607)。以下、ステップS602に戻り異なる画素iについて処理を継続する。以上の処理により最大出現色であるMaxcolorが示す色がバックグラウンド(背景色)として決定される。   In step S607, ColorData [i] is set as the maximum appearance color Maxcolor. Further, the appearance number of ColorData [i] is set to the maximum appearance number MaxCnt (step S607). Thereafter, the process returns to step S602 and the processing is continued for a different pixel i. Through the above processing, the color indicated by Maxcolor, which is the maximum appearance color, is determined as the background (background color).

図7は、同一色の矩形を検出する処理内容を詳細に説明したフローチャートである。CPU101bが実行する図5のステップS504の処理の詳細を示している。はじめに、処理済みフラグflg[256]を0で初期化する(ステップS701)。Y軸について変数jが0から16までの間でループ処理をおこなう(ステップS702〜ステップS712の処理)。また、X軸について、変数iが0から16までの間でループ処理をおこなう(ステップS703〜ステップS711の処理)。   FIG. 7 is a flowchart illustrating in detail the processing content for detecting a rectangle of the same color. The details of the process of step S504 in FIG. 5 executed by the CPU 101b are shown. First, the processed flag flg [256] is initialized with 0 (step S701). A loop process is performed for the Y-axis when the variable j is between 0 and 16 (the process from step S702 to step S712). Further, a loop process is performed for the X axis when the variable i is between 0 and 16 (the processes in steps S703 to S711).

そして、ステップS503でも使った画素のColorDataについて、このColorData[i+16×j]はバックグラウンドの色と等しい(同じである)か判断する(ステップS704)。バックグラウンドと同じ色であれば(ステップS704:Yes)、処理を抜けてステップS703に戻る。異なる色であれば(ステップS704:No)、処理済みフラグflg[i+16×j]が1(同色)と等しいか判断する(ステップS705)。等しければ(ステップS705:Yes)、ステップS703に戻る。   Then, with respect to the ColorData of the pixel used in step S503, it is determined whether this ColorData [i + 16 × j] is equal to (or the same as) the background color (step S704). If it is the same color as the background (step S704: Yes), the process exits and returns to step S703. If the colors are different (step S704: No), it is determined whether the processed flag flg [i + 16 × j] is equal to 1 (same color) (step S705). If they are equal (step S705: Yes), the process returns to step S703.

ステップS705の結果、等しくなければ(ステップS705:No)、処理済みフラグflg[i+16×j]からflg[i+16×j+Rle[i+16×j]]までの画素に1を設定する(ステップS706)。Rleは、各画素ごとに見た同一色連続長さである。   If the result of step S705 is not equal (step S705: No), 1 is set to the pixels from the processed flag flg [i + 16 × j] to flg [i + 16 × j + Rle [i + 16 × j]] (step S706). Rle is the same color continuous length as seen for each pixel.

つぎに、Y軸について変数kがj+1から16までの間でループ処理をおこなう(ステップS707〜ステップS710の処理)。そして、Rle[i+16×j]とRle[i+16×k]が等しい(色)か判断する(ステップS708)。等しくなければ(ステップS708:No)、ステップS703に戻る。等しければ(ステップS708:Yes)、処理済みフラグflg[i+16×k]からflg[i+16×k+Rle[i+16×k]]まで1(同色)を設定する(ステップS709)。   Next, a loop process is performed for the Y axis between the variable k from j + 1 to 16 (the process from step S707 to step S710). Then, it is determined whether Rle [i + 16 × j] and Rle [i + 16 × k] are equal (color) (step S708). If they are not equal (step S708: No), the process returns to step S703. If they are equal (step S708: Yes), 1 (same color) is set from the processed flag flg [i + 16 × k] to flg [i + 16 × k + Rle [i + 16 × k]] (step S709).

以上の処理により、見つかった画素を左上にもち同一色で、かつ面積が最大の矩形を検出することができる。そして、上記の処理によれば、X軸方向は、プレ圧縮により1列分の処理が既におこなわれているので、X軸方向について新たに同一色の範囲検出のためのループ処理は不要である。Y軸方向についても、上記X軸の1列について既に同一色が検出されているため、全体の16列について最大16回分のループ処理で済む。このように、CPU101bがおこなうバックグラウンド上での異なる色の範囲(矩形)検出は、全体のループ回数を少なくでき、CPU101bの圧縮処理を高速化できるようになる。   With the above processing, it is possible to detect a rectangle having the same pixel as the found pixel in the upper left and the largest area. According to the above processing, since processing for one column is already performed in the X-axis direction by pre-compression, loop processing for newly detecting the same color range in the X-axis direction is unnecessary. . Also in the Y-axis direction, since the same color has already been detected for one column of the X-axis, a maximum of 16 loop processes can be performed for the entire 16 columns. As described above, the detection of different color ranges (rectangles) on the background performed by the CPU 101b can reduce the total number of loops and increase the compression processing of the CPU 101b.

図8は、CPUがおこなう圧縮処理の概要図である。図8には、図3と同じ1つの小ブロック(16×16画素)について記載してある。CPU101bは、各画素ごとの色の配列ColorData[256]を出力する。図8に示す例では、ColorData[0]={256,0,0}、ColorData[1]={256,0,0}、ColorData[2]={256,0,0}、ColorData[3]={0,255,0}、…となる。{}内は、赤(R)、緑(G)、青(B)の順とする。   FIG. 8 is a schematic diagram of compression processing performed by the CPU. FIG. 8 shows the same small block (16 × 16 pixels) as FIG. The CPU 101b outputs an array of colors ColorData [256] for each pixel. In the example shown in FIG. 8, ColorData [0] = {256, 0, 0}, ColorData [1] = {256, 0, 0}, ColorData [2] = {256, 0, 0}, ColorData [3] = {0, 255, 0},... The contents in {} are in the order of red (R), green (G), and blue (B).

また、CPU101bは、各画素ごとの同一色連続長さRle[256]を作成し、出力する。図8に示す例では、Rle[0]=3、Rle[1]=2、Rle[2]=1、Rle[3]=5である。CPU101bは、これらColorData[256]と、Rle[256]に基づき、バックグラウンド(背景色)と、バックグラウンド上での矩形の色、左上座標位置、縦横サイズを求めて、画像データを圧縮し、クライアント102に転送する。   Further, the CPU 101b creates and outputs the same color continuous length Rle [256] for each pixel. In the example shown in FIG. 8, Rle [0] = 3, Rle [1] = 2, Rle [2] = 1, and Rle [3] = 5. Based on the ColorData [256] and Rle [256], the CPU 101b obtains the background (background color), the color of the rectangle on the background, the upper left coordinate position, the vertical and horizontal sizes, and compresses the image data. Transfer to client 102.

図9は、図1に示した画像圧縮装置を用いたシステムの適用例を示す図である。図9において、ネットワーク110は、サーバ901,902とクライアント931〜934とが通信可能なネットワークであり、たとえば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、携帯電話網などで構成される。   FIG. 9 is a diagram showing an application example of a system using the image compression apparatus shown in FIG. In FIG. 9, a network 110 is a network in which servers 901 and 902 and clients 931 to 934 can communicate with each other, and includes, for example, a LAN (Local Area Network), a WAN (Wide Area Network), the Internet, a mobile phone network, and the like. Is done.

サーバ902は、クラウド920を構成するサーバ群(サーバ921〜925)の管理サーバである。クライアント931〜934のうち、クライアント931はノート型パソコン、クライアント932はデスクトップ型パソコン、クライアント933は携帯電話機(スマートフォン、PHS(Personal Handyphone System)でもよい)、クライアント934はタブレット型端末である。図9のサーバ901,902,921〜925によって、図1に示した画像圧縮装置(サーバ)101を実現することができ、図9のクライアント931〜934によって、図1に示したクライアント102を実現することができる。   The server 902 is a management server of a server group (servers 921 to 925) constituting the cloud 920. Among the clients 931 to 934, the client 931 is a notebook personal computer, the client 932 is a desktop personal computer, the client 933 is a mobile phone (may be a smartphone or PHS (Personal Handyphone System)), and the client 934 is a tablet terminal. 9 can realize the image compression apparatus (server) 101 shown in FIG. 1, and the client 102 shown in FIG. 1 can be realized by the clients 931-934 shown in FIG. can do.

以上説明した実施の形態によれば、デスクトップ画像について、プレ圧縮し、このプレ圧縮のデータを用いて画像圧縮する2段階とし、これら段階をそれぞれ異なるプロセッサを用いて処理するようにした。特に、プレ圧縮は、GPUを用いてデスクトップ画像上の同一色の画素の並びを複数のスレッド(プロセッサ)で同時並行処理して同一色連続長さを検出し、CPUに転送するため、GPUにおけるメモリアクセスを効率的におこなえ、高速に処理できる。また、CPUは、GPUから同一色連続長さの情報を得るため、CPUで同一色連続長さの検出をおこなう必要が無く、得られた同一色連続長さの情報に基づき、デスクトップ画像上での同一色の並び(バックグラウンドおよびバックグラウンド上での矩形画像)を効率的に検出することができる。これにより、デスクトップ画像の圧縮にかかる全体処理をGPUおよびCPUの機能に適した機能分担ができ、これらGPUおよびCPUいずれの負担も軽減でき、圧縮を効率的におこなうことができ、迅速にクライアントに送信できるようになる。   According to the embodiment described above, the desktop image is pre-compressed and the image compression is performed using the pre-compressed data, and the two stages are processed using different processors. In particular, pre-compression uses a GPU to detect the same color continuous length by simultaneously processing a sequence of pixels of the same color on a desktop image by a plurality of threads (processors) and transferring it to the CPU. Memory access can be performed efficiently and processed at high speed. Further, since the CPU obtains information on the same color continuous length from the GPU, it is not necessary for the CPU to detect the same color continuous length, and on the desktop image based on the obtained information on the same color continuous length. Of the same color (background and rectangular image on the background) can be efficiently detected. As a result, the entire processing related to the compression of the desktop image can be divided into functions suitable for the functions of the GPU and the CPU, the burden on both the GPU and the CPU can be reduced, the compression can be performed efficiently, and the client can be quickly processed. It can be sent.

また、上記実施の形態では、GPUとCPUを用いて圧縮処理をおこなう構成としたが、マルチコアのCPUを用いて上記GPUの処理内容をおこなうこともでき、この場合においても、圧縮の全体処理を効率的におこなえるようになる。   In the above embodiment, the GPU and CPU are used for the compression processing. However, the GPU processing content can also be performed using a multi-core CPU. You can do it efficiently.

そして、上記の実施の形態によれば、特に、デスクトップ画像として製品設計時におけるCAD画像等、データ量が大きい画像の画像圧縮に対して有効であり、DaaS等のサービス利用時においてサーバは、デスクトップ画像を迅速にクライアントに送信でき、サーバレスポンスを改善でき、クライアントにおける操作性を向上でき、システム全体の利便性を向上できるようになる。   According to the above-described embodiment, it is particularly effective for image compression of an image with a large amount of data such as a CAD image at the time of product design as a desktop image. When using a service such as DaaS, the server Images can be quickly transmitted to the client, server response can be improved, operability at the client can be improved, and convenience of the entire system can be improved.

上述した実施の形態に関し、さらに以下の付記を開示する。   The following additional notes are disclosed with respect to the embodiment described above.

(付記1)圧縮する画像データについて、各画素の色を複数スレッドの同時並行処理によりそれぞれ検出し、1列の画素の並びにおける同一色連続長さを求め、
前記同一色連続長さの情報に基づき、前記画像データを圧縮することを特徴とする画像圧縮方法。
(Supplementary Note 1) For image data to be compressed, the color of each pixel is detected by simultaneous parallel processing of a plurality of threads, and the same color continuous length in a row of pixels is obtained,
An image compression method, comprising: compressing the image data based on the information of the same color continuous length.

(付記2)前記同一色連続長さは、第1のプロセッサにより、前記複数スレッドの同時並行処理によって、前記1列の画素の並びで隣接する画素の同一色ごとの連続数をカウントして得ることを特徴とする付記1に記載の画像圧縮方法。 (Additional remark 2) The said same color continuous length is obtained by counting the continuous number for every same color of the pixel which adjoins in the arrangement | sequence of the pixel of the said 1 row by the 1st processor by the simultaneous parallel process of the said several thread | sled. The image compression method according to appendix 1, wherein

(付記3)前記同一色連続長さは、前記第1のプロセッサを用いたスレッドの同時並行処理により求め、
前記画像データの圧縮は、第2のプロセッサを用いておこなうことを特徴とする付記1または2に記載の画像圧縮方法。
(Additional remark 3) The said same color continuous length is calculated | required by the simultaneous parallel process of the thread | sled using the said 1st processor,
The image compression method according to appendix 1 or 2, wherein the image data is compressed using a second processor.

(付記4)前記同一色連続長さは、前記第1のプロセッサとしてのGPUを用いて求め、前記画像データの圧縮は、前記第2のプロセッサとしてのCPUを用いておこなうことを特徴とする付記1〜3のいずれか一つに記載の画像圧縮方法。 (Additional remark 4) The said same color continuous length is calculated | required using GPU as said 1st processor, and compression of the said image data is performed using CPU as said 2nd processor. The image compression method according to any one of 1 to 3.

(付記5)圧縮する画像データについて、画面全体を複数のブロックに分割し、前記分割後の小ブロックが有する画素数を前記スレッド数に対応させることにより、前記複数スレッドの同時並行処理をおこない前記同一色連続長さを求めることを特徴とする付記1〜4のいずれか一つに記載の画像圧縮方法。 (Supplementary Note 5) For image data to be compressed, the entire screen is divided into a plurality of blocks, and the number of pixels of the small block after the division is made to correspond to the number of threads, thereby performing the simultaneous processing of the plurality of threads. The image compression method according to any one of appendices 1 to 4, wherein the same continuous color length is obtained.

(付記6)前記画像データの圧縮は、前記同一色連続長さの情報に基づき、画面全体で最も出現する色をバックグラウンドとして求めた後、
前記同一色連続長さの情報に基づき、前記バックグラウンド以外の色について、面積最大となる矩形の色と大きさと位置を求めることを特徴とする付記1〜5のいずれか一つに記載の画像圧縮方法。
(Supplementary Note 6) The compression of the image data is based on the same color continuous length information, and after obtaining the color that appears most on the entire screen as a background,
The image according to any one of appendices 1 to 5, wherein a color, a size, and a position of a rectangle having a maximum area are obtained for colors other than the background based on the information on the same continuous color length. Compression method.

(付記7)前記バックグラウンドが求められた際に当該バックグラウンドの色をエンコードし、
前記面積最大となる矩形が求められた際に当該矩形の色と大きさと位置をエンコードすることを特徴とする付記6に記載の画像圧縮方法。
(Appendix 7) When the background is determined, the background color is encoded,
The image compression method according to claim 6, wherein when the rectangle having the maximum area is obtained, the color, size, and position of the rectangle are encoded.

(付記8)圧縮する画像データについて、各画素の色を複数スレッドの同時並行処理によりそれぞれ検出し、1列の画素の並びにおける同一色連続長さを求め、前記同一色連続長さの情報に基づき、前記画像データを圧縮するマルチコアのプロセッサを含むことを特徴とする画像圧縮装置。 (Supplementary Note 8) For image data to be compressed, the color of each pixel is detected by simultaneous parallel processing of a plurality of threads, and the same color continuous length in the arrangement of pixels in one column is obtained. And a multi-core processor for compressing the image data.

(付記9)前記プロセッサは、各画素の色が複数スレッドの同時並行処理によりそれぞれ検出された1列の画素の並びを格納するメモリに対するアクセスを連続したアドレスを順次読み取ることにより、前記同一色連続長さをカウントすることを特徴とする付記8に記載の画像圧縮装置。 (Supplementary Note 9) The processor sequentially reads the addresses having consecutive accesses to a memory storing a row of pixels in which the color of each pixel is detected by simultaneous parallel processing of a plurality of threads, thereby sequentially 9. The image compression apparatus according to appendix 8, wherein the length is counted.

(付記10)前記プロセッサは、
同一色連続長さを求める、スレッドの並列処理可能な第1のプロセッサと、
前記画像データを圧縮する第2のプロセッサとを含むことを特徴とする付記8に記載の画像圧縮装置。
(Supplementary Note 10) The processor
A first processor capable of parallel processing of threads for obtaining the same color continuous length;
The image compression apparatus according to appendix 8, further comprising a second processor for compressing the image data.

(付記11)前記第1のプロセッサは、GPUであり、
前記第2のプロセッサは、CPUであることを特徴とする付記10に記載の画像圧縮装置。
(Supplementary Note 11) The first processor is a GPU,
The image compression apparatus according to appendix 10, wherein the second processor is a CPU.

(付記12)クライアントから受信した操作コマンドに基づき、圧縮する画像データについて、各画素の色を複数スレッドの同時並行処理によりそれぞれ検出し、1列の画素の並びにおける同一色連続長さを求め、前記同一色連続長さの情報に基づき、前記画像データを圧縮し、前記クライアントに送信するプロセッサを含むサーバと、
前記サーバに対し前記操作コマンドを送信するごとに、前記操作コマンドに対応した圧縮された画像データを受信し、当該画像データをデコードして画面表示するクライアントと、
を含むことを特徴とするシステム。
(Supplementary Note 12) Based on the operation command received from the client, for the image data to be compressed, the color of each pixel is detected by simultaneous parallel processing of a plurality of threads, and the same color continuous length in a row of pixels is obtained, A server including a processor that compresses the image data based on the same color continuous length information and transmits the compressed image data to the client;
Each time the operation command is transmitted to the server, the client receives compressed image data corresponding to the operation command, decodes the image data, and displays the screen.
A system characterized by including.

(付記13)前記画像データは、クライアントが表示するデスクトップ画像であることを特徴とする付記12に記載のシステム。 (Supplementary note 13) The system according to supplementary note 12, wherein the image data is a desktop image displayed by a client.

100 システム
101a GPU
101b,102a CPU
101 画像圧縮装置(サーバ)
102 クライアント
103 キーボード
104 マウス
105 ディスプレイ
110 ネットワーク
100 system 101a GPU
101b, 102a CPU
101 Image compression device (server)
102 Client 103 Keyboard 104 Mouse 105 Display 110 Network

Claims (11)

圧縮する画像データについて、各画素の色をプロセッサが実行する複数スレッドの同時並行処理によりそれぞれ検出し、1列の画素の並びにおけるRGBいずれかの同一色連続長さを求め、
前記同一色連続長さの情報に基づき、前記画像データを圧縮し、
前記同一色連続長さを、画面全体を複数に分割し、前記分割後の小ブロックが有する画素数を前記スレッド数に対応させ、前記複数スレッドの同時並行処理をおこない、同一列の他のスレッドで検出された隣接画素の色に基づき求める
ことを特徴とする画像圧縮方法。
For the image data to be compressed, the color of each pixel is detected by simultaneous parallel processing of a plurality of threads executed by the processor , and the same color continuous length of any of RGB in the arrangement of pixels in one column is obtained,
Based on the information of the same color continuous length, compress the image data ,
The same color continuous length is divided into a plurality of whole screens, the number of pixels of the divided small blocks is made to correspond to the number of threads, and the plurality of threads are simultaneously processed in parallel, and other threads in the same column An image compression method characterized in that the image compression method is obtained on the basis of the color of adjacent pixels detected in step (1) .
前記同一色連続長さは、第1のプロセッサにより、前記複数スレッドの同時並行処理によって、前記1列の画素の並びで隣接する画素の同一色ごとの連続数をカウントして得ることを特徴とする請求項1に記載の画像圧縮方法。   The same color continuous length is obtained by the first processor by counting the number of consecutive pixels of the same color of adjacent pixels in the arrangement of the pixels of the one column by the simultaneous parallel processing of the plurality of threads. The image compression method according to claim 1. 前記同一色連続長さは、前記第1のプロセッサを用いたスレッドの同時並行処理により求め、
前記画像データの圧縮は、第2のプロセッサを用いておこなうことを特徴とする請求項2に記載の画像圧縮方法。
The same color continuous length is obtained by simultaneous parallel processing of threads using the first processor,
The image compression method according to claim 2 , wherein the compression of the image data is performed using a second processor.
前記同一色連続長さは、前記第1のプロセッサとしてのGPUを用いて求め、前記画像データの圧縮は、前記第2のプロセッサとしてのCPUを用いておこなうことを特徴とする請求項3に記載の画像圧縮方法。 The same color continuous length, said first determined using the GPU as a processor, the compression of the image data, according to claim 3, characterized in that by using a CPU as the second processor Image compression method. 前記画像データの圧縮は、前記同一色連続長さの情報に基づき、画面全体で最も出現する色をバックグラウンドとして求めた後、
前記同一色連続長さの情報に基づき、前記バックグラウンド以外の色について、面積最大となる矩形範囲の色と大きさと位置を求めることを特徴とする請求項1〜4のいずれか一つに記載の画像圧縮方法。
The compression of the image data is based on the information of the same color continuous length, after obtaining the color that appears most on the entire screen as a background,
Based on the information of the same color continuous length, the color other than the background, according to claim 1, wherein the determination of the color and size and position of the rectangular area comprising the area up to Image compression method.
前記バックグラウンドが求められた際に当該バックグラウンドの色をエンコードし、
前記面積最大となる矩形範囲が求められた際に当該矩形の色と大きさと位置をエンコードすることを特徴とする請求項5に記載の画像圧縮方法。
When the background is requested, encode the background color,
6. The image compression method according to claim 5 , wherein when the rectangular range having the maximum area is obtained, the color, size, and position of the rectangle are encoded.
圧縮する画像データについて、各画素の色を複数スレッドの同時並行処理によりそれぞれ検出し、1列の画素の並びにおけるRGBいずれかの同一色連続長さを求め、前記同一色連続長さの情報に基づき、前記画像データを圧縮し、前記同一色連続長さを、画面全体を複数に分割し、前記分割後の小ブロックが有する画素数を前記スレッド数に対応させ、前記複数スレッドの同時並行処理をおこない、同一列の他のスレッドで検出された隣接画素の色に基づき求めるマルチコアのプロセッサを含むことを特徴とする画像圧縮装置。 For image data to be compressed, the color of each pixel is detected by simultaneous processing of a plurality of threads, the same color continuous length of any of RGB in the arrangement of pixels in one column is obtained, and the information of the same color continuous length is obtained. The image data is compressed , the same color continuous length is divided into a plurality of entire screens, the number of pixels of the small block after the division is made to correspond to the number of threads, and simultaneous processing of the plurality of threads is performed An image compression apparatus comprising: a multi-core processor that performs a calculation based on a color of an adjacent pixel detected by another thread in the same column . 前記プロセッサは、各画素の色が複数スレッドの同時並行処理によりそれぞれ検出された1列の画素の並びを格納するメモリに対するアクセスを連続したアドレスを順次読み取ることにより、前記同一色連続長さをカウントすることを特徴とする請求項7に記載の画像圧縮装置。 The processor counts the continuous length of the same color by sequentially reading addresses for successive accesses to a memory storing a row of pixels in which the color of each pixel is detected by simultaneous processing of a plurality of threads. The image compression apparatus according to claim 7 . 前記プロセッサは、
同一色連続長さを求める、スレッドの並列処理可能な第1のプロセッサと、
前記画像データを圧縮する第2のプロセッサとを含むことを特徴とする請求項7に記載の画像圧縮装置。
The processor is
A first processor capable of parallel processing of threads for obtaining the same color continuous length;
The image compression apparatus according to claim 7 , further comprising: a second processor that compresses the image data.
前記第1のプロセッサは、GPUであり、
前記第2のプロセッサは、CPUであることを特徴とする請求項9に記載の画像圧縮装置。
The first processor is a GPU;
The image compression apparatus according to claim 9 , wherein the second processor is a CPU.
クライアントから受信した操作コマンドに基づき、圧縮する画像データについて、各画素の色を複数スレッドの同時並行処理によりそれぞれ検出し、1列の画素の並びにおけるRGBいずれかの同一色連続長さを求め、前記同一色連続長さの情報に基づき、前記画像データを圧縮し、前記クライアントに送信し、前記同一色連続長さを、画面全体を複数に分割し、前記分割後の小ブロックが有する画素数を前記スレッド数に対応させ、前記複数スレッドの同時並行処理をおこない、同一列の他のスレッドで検出された隣接画素の色に基づき求めるプロセッサを含むサーバと、
前記サーバに対し前記操作コマンドを送信するごとに、前記操作コマンドに対応した圧縮した画像データを受信し、当該画像データをデコードして画面表示するクライアントと、
を含むことを特徴とするシステム。
Based on the operation command received from the client, for the image data to be compressed, the color of each pixel is detected by simultaneous parallel processing of a plurality of threads, and the same color continuous length of any one of RGB in the arrangement of pixels in one column is obtained, Based on the information on the same color continuous length, the image data is compressed, transmitted to the client, the same color continuous length is divided into a plurality of screens, and the number of pixels included in the small block after the division Corresponding to the number of threads, a server including a processor that performs simultaneous parallel processing of the plurality of threads and obtains based on the color of an adjacent pixel detected by another thread in the same row ,
A client that receives compressed image data corresponding to the operation command each time the operation command is transmitted to the server, decodes the image data, and displays the screen;
A system characterized by including.
JP2011199995A 2011-09-13 2011-09-13 Image compression method, image compression apparatus and system Expired - Fee Related JP6003032B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011199995A JP6003032B2 (en) 2011-09-13 2011-09-13 Image compression method, image compression apparatus and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011199995A JP6003032B2 (en) 2011-09-13 2011-09-13 Image compression method, image compression apparatus and system

Publications (2)

Publication Number Publication Date
JP2013062690A JP2013062690A (en) 2013-04-04
JP6003032B2 true JP6003032B2 (en) 2016-10-05

Family

ID=48186990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011199995A Expired - Fee Related JP6003032B2 (en) 2011-09-13 2011-09-13 Image compression method, image compression apparatus and system

Country Status (1)

Country Link
JP (1) JP6003032B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111556317A (en) * 2020-04-23 2020-08-18 西安万像电子科技有限公司 Coding method, device and coding and decoding system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982937A (en) * 1996-12-24 1999-11-09 Electronics For Imaging, Inc. Apparatus and method for hybrid compression of raster data
JP2001297303A (en) * 2000-02-09 2001-10-26 Ricoh Co Ltd Method and device for recognizing document image and computer readable recording medium
US7234144B2 (en) * 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
JP2004140749A (en) * 2002-10-21 2004-05-13 Canon Inc Image compression method
JP5487882B2 (en) * 2009-10-27 2014-05-14 セイコーエプソン株式会社 Image processing apparatus and image processing method

Also Published As

Publication number Publication date
JP2013062690A (en) 2013-04-04

Similar Documents

Publication Publication Date Title
Johnson et al. Displaycluster: An interactive visualization environment for tiled displays
EP2757521A1 (en) Image search apparatus, image search method, program, and computer-readable recording medium
US10546038B2 (en) Intelligent browser-based display tiling
US20220365796A1 (en) Streaming per-pixel transparency information using transparency-agnostic video codecs
US20230215076A1 (en) Image frame display method, apparatus, device, storage medium, and program product
US20130198686A1 (en) Image processing device for displaying content, content creation device, and image processing method
US20230049197A1 (en) Screen sharing method, apparatus, and device, and storage medium
WO2015096588A1 (en) Method and device for switching display pages
CN1279430C (en) Digital document processing
CN109426473B (en) Wireless programmable media processing system
US9324177B2 (en) Generation of intermediate images for texture compression
US9483996B2 (en) System and method of leveraging GPU resources to increase performance of an interact-able content browsing service
WO2016016607A1 (en) Managing display data for display
JP6003032B2 (en) Image compression method, image compression apparatus and system
CN112184538A (en) Image acceleration method, related device, equipment and storage medium
US20130290860A1 (en) Workspace interfaces, methods, and systems
WO2022228105A1 (en) Processing method and apparatus for image data, storage medium, and electronic device
WO2022166100A1 (en) Multi-person synchronous document sharing and viewing method, and processing terminal
US10223997B2 (en) System and method of leveraging GPU resources to increase performance of an interact-able content browsing service
CN114938453B (en) Video coding method, chip, storage medium and computer equipment
JP5842029B2 (en) Information processing support apparatus, information processing apparatus, and information processing support program for caching image data
JP7147053B2 (en) Cover image processing method for multimedia information, client, electronic device, storage medium and computer program product
JP2023536035A (en) Oversmoothing progressive image
CN117667295A (en) Display method, device and storage medium of dynamic wallpaper
CN114064182A (en) Low-cost desktop virtualization system and operation method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150324

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160822

R150 Certificate of patent or registration of utility model

Ref document number: 6003032

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees