Embodiments described herein relate generally to a screen relay device, a screen relay system, and a computer-readable storage medium.
A screen transfer system in which a display terminal having an input/output interface is disposed on the user side, and a server device located at a remote site executes complex computation processes is known. The server device renders screen information displayed on the display terminal in accordance with operation information from the display terminal and transfers the screen information corresponding to an updated region of a display screen to the display terminal. The server device transfers the screen information to one or a plurality of display terminals. In the server device, a rendering process, a difference extracting process, a compression process, and a transfer process are executed in a single thread.
However, in the screen relay system which handles a large quantity of image information, in which screen information is received from a plurality of server devices and transferred to a plurality of display terminals, when the screen transfer method of the related art is used, there is a problem in that only one screen can be transferred to a plurality of display terminals. Moreover, since the respective processes are executed in a single thread, there is a problem in that screen transfer performance is low.
According to one embodiment, a screen relay device comprises a communication unit that transmits an image information acquisition request to a plurality of relay source devices, receives first image information corresponding to the image information acquisition request from the relay source devices, and transmits second image information to a relay destination device, a first storage unit that stores the first image information, a second storage unit that stores the second image information, a determining unit that determines a storage area of the first image information in the first storage unit, a rendering unit that renders the first image information in the determined storage area, a third storage unit that stores an updated region where the image information stored in the first storage unit has been updated by the rendering of the rendering unit, and a screen transfer unit. The screen transfer unit reads the first image information corresponding to the updated region from the first storage unit, reads the second image information corresponding to the updated region from the second storage unit, compares the read first image information and the read second image information to extract a difference region, writes the first image information of the difference region to the second storage unit as the second image information, and outputs the second image information to the communication unit.
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
The screen relay system includes a screen relay device 100, N relay source devices 201 to 20N, and M relay destination devices 301 to 30M. Here, N and M are integers of 1 or more.
The relay source devices 201 to 20N are server devices that create image information. The image information is information on an image displayed on the screen of each of the relay destination devices 301 to 30M which are display terminals disposed on the user side.
The relay source devices 201 to 20N create and transmit the image information corresponding to one screen displayed by the relay destination devices 301 to 30M when starting a screen transfer process. After that, the relay source devices 201 to 20N transmit only the image information of a region where an updating occurs within the screen of the relay destination device. The updating will be described later.
The relay source devices 201 to 20N may transmit the image information only when an image information acquisition request message is received and may transmit the image information every predetermined period.
The screen relay device 100 combines N image information items transmitted from the N relay source devices 201 to 20N. The screen relay device 100 selects image information corresponding to a predetermined region or arbitrary M regions of a combined image. Then, the screen relay device 100 transmits the image information corresponding to first, second, . . . , and M-th regions to the relay destination devices 301, 302, . . . , and 30M, respectively. The screen relay device may also generate the image information to be transmitted to the relay destination devices 301 to 30M within the own device.
Moreover, the screen relay device 100 may receive operation information (described later) transmitted from the relay destination devices 301 to 30M and transmit the same to the relay source devices 201 to 20N. Moreover, the screen relay device 100 transmits the image information acquisition request message to the relay source devices 201 to 20N. The image information acquisition request message may be generated by the screen relay device 100 and may be received from the relay destination devices 301 to 30M.
The relay destination devices 301 to 30M include a display unit (display screen) and can display the image information received from the screen relay device 100. The display unit is a liquid crystal display device, for example.
Moreover, the relay destination devices 301 to 30M include an input device such as a keyboard and a mouse. The relay destination devices 301 to 30M receive the operation information from the user via the input device. The operation information is a movement of a cursor, an input character, a position where an operation occurs, and the like, for example. A change in the screen occurring due to the operation information is the above-described updating. The relay destination devices 301 to 30M transmit the operation information to the screen relay device 100.
Upon receiving the image information representing the images 201a to 207a from the relay source devices 201 to 207, the screen relay device 100 renders a combined image 100a of these images. Moreover, the screen relay device 100 transmits the image information corresponding to an arbitrary or predetermined region of the combined image 100a to the relay destination devices 301 to 306.
The screen relay device 100 transmits the image information corresponding to one screen of a display unit of the relay destination device when starting the screen transfer process. After that, the screen relay device 100 specifies a region (difference region) where a change occurs within the display screen and compresses and transmits the image information corresponding to the difference region.
The relay destination devices 301 to 306 display the image information transmitted from the screen relay device 100 on the screen of the display unit. For example, the relay destination devices 301 to 304 display regions A1 to A4 of the combined image 100a. That is, the relay destination devices 301 to 304 display four divided images of an image 201a created by the relay source device 201, respectively.
The relay destination device 305 displays a region A5 of the combined image 100a. That is, the relay destination device 305 displays a combined image of the images 202a to 205a created respectively by the relay source devices 202 to 205.
The relay destination device 306 displays a region A6 of the combined image 100a. That is, the relay destination device 306 displays an image bridging over the two images 206a and 207a created respectively by the relay source devices 206 and 207.
As above, the screen relay device 100 may divide an image created by one relay source device into multiple parts and transmit the divided images to a plurality of relay destination devices, may combine the images created by a plurality of relay source devices and transmit the combined image to one relay destination device, and may transmit an image bridging over the images created by a plurality of relay source devices to one relay destination device.
A schematic configuration of such a screen relay device 100 is illustrated in
The application 110 is a program that provides various processes operating on the screen relay device 100. The application 110 receives image information from the relay source devices 201 to 20N via a communication unit 122. Moreover, the application 110 receives operation information from the relay destination devices 301 to 30M via the communication unit 122.
The application 110 determines whether the operation information is information to be transmitted (transferred) to the relay source device or information to be processed within the screen relay device 100 based on the position where an operation has occurred, included in the operation information. When the operation information is determined to be the information to be transmitted to the relay source device, the application 110 transmits the operation information to the relay source device via the communication unit 122.
Based on the image information received from the relay source device or the operation information determined to be processed within the screen relay device 100, the application 110 detects whether a change (updating) has occurred in the screen displayed by the relay destination device. When a change (updating) occurs in the screen displayed by the relay destination device, the application 110 outputs an image rendering command to a rendering unit 132 of the window server 130. The operation of the rendering unit 132 based on the rendering command will be described later.
The hardware 120 includes a CPU 121, the communication unit 122, a backup image storage unit 123, and a frame buffer 124.
The Central Processing Unit (CPU) 121 is a control unit that executes the application 110 and the window server 130. The screen relay device 100 may be a multi-processor in which a plurality of CPUs 121 are mounted and may be a multi-core processor in which a plurality of processor cores are integrated into one package.
The screen relay device 100 may divide one processing content into a plurality of processing units (threads) and allocate the plurality of threads to the respective CPUs (processor cores) so that parallel processing is performed by the plurality of CPUs.
The communication unit 122 performs transmission of the screen information acquisition request message to the relay source device, reception of image information from the relay source device, transmission of image information to the relay destination device, and the like. Moreover, the communication unit 122 receives the operation information from the relay destination device and transmits the operation information to the relay source device.
The backup image storage unit 123 stores the image information transmitted to the relay destination device. The frame buffer 124 stores the image information of an image rendered by the rendering unit 132 based on the image information received from the relay source device or the operation information received from the relay destination device. The backup image storage unit 123 and the frame buffer 124 can be configured as various commonly used storage media such as a Random Access Memory (RAM), a Hard Disk Drive (HDD), an optical disc, or a memory card.
The window server 130 includes a determining unit 131, the rendering unit 132, an updated region storage unit 133, a boundary information storage unit 134, a calculating unit 135, a screen transfer unit 136, and a timer 137.
The determining unit 131 determines a position of the frame buffer at which the image information received from the relay source devices 201 to 20N is rendered and notifies the application 110 of the rendering position. The rendering position notified to the application 110 is included in the rendering command output by the application 110.
A method of determining the rendering position is optional. For example, the determining unit 131 allocates the rendering position from the uppermost position of the frame buffer 124 in the reception order of the image information from the relay source devices 201 to 20N.
The rendering unit 132 performs various image processes based on the rendering command received from the application 110 to create an image (combined image) and stores image information in the frame buffer 124. Moreover, the rendering unit 132 specifies an updated region where updating (change) of the image occurs in the display unit of the relay destination device using coordinate information representing an operation occurring position included in the rendering command. The rendering unit 132 records the specified updated region in the updated region storage unit 133.
Here, the coordinate information means information expressed by a coordinate system in which the top left corner of a screen is (0, 0), and the bottom right corner of the screen is (1023, 767) when the screen includes pixels of 1024×768, for example. A method of recording the updated region in the updated region storage unit 133 may be an optional method capable of identifying the updated region on the display screen of the relay destination device. For example, updated regions like “a rectangular region having a width of 10 pixels and a height of 10 pixels from a coordinate (0, 0) and a rectangular region having a width of 200 pixels and a height of 5 pixels from a coordinate (30, 30)” may be recorded as a list of rectangle information.
By this operation, a first rendering command “copy a rectangular region having a width of 350 pixels and a height of 200 pixels from the coordinate (300, 50) to the position of the coordinate (300, 200)” for moving the window W in a downward direction, a second rendering command “render a rectangular region having a width of 350 pixels and a height of 150 pixels at the position of the coordinate (300, 50)” for reconstructing a region concealed by the window W, and a third rendering command “render a rectangular region having a width of 50 pixels and a height of 50 pixels at the position of the coordinate (350, 200)” for rendering a cursor image representing the window is being dragged are generated.
An updated region by the first rendering command is a rectangular region R1 having a width of 350 pixels and a height of 200 pixels from the coordinate (300, 200) as illustrated in
Moreover, the rectangular regions R1 to R3 are recorded in the updated region storage unit 133 as the updated regions.
Since the rectangular regions R1 to R3 are a continuous region, the three rectangular regions may be combined into one region, and a rectangular region R4 having a width of 350 pixels and a height of 350 pixels from the coordinate (300, 50) as illustrated in
The boundary information storage unit 134 stores boundary information of the combined image stored in the frame buffer 124. The boundary information is information representing the boundaries of a region displayed by the relay destination device, in the combined image stored in the frame buffer 124.
For example, when a combined image as illustrated in
The calculating unit 135 calculates the number of threads (parallel count) processed in parallel in the screen transfer unit 136, using at least any one of information items such as the number of updated regions, the area of each updated region, the boundary information, and the number of mounted CPUs 121. The screen transfer unit 136 can execute a difference extracting process described later or the like in parallel with respect to a plurality of processing regions. A unit processing region processed in parallel is determined by dividing or grouping updated regions.
In order to equalize the areas of the regions allocated to the respective threads, threshold values Th1 and Th2 (Th1>Th2) are provided for the region area so that an updated region having an area larger than the threshold value Th1 is divided into a plurality of regions, and a plurality of updated regions having an area smaller than the threshold value Th2 are grouped into one region.
Since the updated region R11 has a large area, the updated region is divided. Since the updated region R12 is adjacent to the updated region R11, it is ideal to combine the updated regions R11 and R12 into one region and to divide the combined region. As illustrated in
Since the updated regions (rectangular regions) R13 to R15 have a small area, the updated regions are grouped into one region as a processing region R74.
Since an area of the updated region R16 is threshold value Th1 or smaller and the threshold value Th2 or larger, the updated region becomes a processing region R75. Thus, the number of threads (the number of regions processed in parallel by the screen transfer unit 136) is 5. In this way, by taking the area of the updated region into consideration, it is possible to equalize the amount of processing by the respective threads.
The processing regions R81 to R83 and R86 correspond to the processing regions R71 to R73 and R75 in
By taking the regions displayed by the plurality of relay destination devices 301 to 30M into consideration using the boundary information, it is possible to allocate one thread to one relay destination device.
In
When the number of updated regions is larger than the number of mounted CPUs 121, in order to suppress the number of threads (the number of processing regions) to be equal to or smaller than the number of mounted CPUs 121, a plurality of updated regions are grouped into one processing region.
The calculating unit 135 can use an optional combination of information items such as the number of updated regions, the area of each updated region, the boundary information, and the number of mounted CPUs 121 for calculating the number of threads. Moreover, the calculating unit 135 may calculate the number of threads for one process and may calculate the number of threads for each of the processes such as a difference extracting process, a pixel format conversion process, and a compression process described later, executed by the screen transfer unit 136.
For example, in the case of the difference extracting process, the number of threads is calculated based on the number of updated regions as illustrated in
Moreover, for example, in the case of the pixel format conversion process and the compression process, there is a possibility that the relay destination devices handle screen information having different formats such as a pixel format or a compression format. Thus, in order for the relay destination devices to process in different threads, the number of threads is calculated by taking the boundary information into consideration.
As above, since the calculating unit 135 calculates the number of threads processed in parallel by the screen transfer unit 136 in accordance with the number of mounted CPUs and the processing content by the screen transfer unit 136 and determines the processing region processed in parallel, the screen transfer unit 136 can execute parallel processing efficiently.
The screen transfer unit 136 reads image information corresponding to the updated regions from the frame buffer 124 by referring to the updated regions stored in the updated region storage unit 133. The image information read from the frame buffer 124 is the image information created by the rendering unit 132, in which the operation information received from the relay destination devices 301 to 30M is reflected.
Moreover, the screen transfer unit 136 reads the image information corresponding to these regions from the backup image storage unit 123. The image information read from the backup image storage unit 123 is the image information which was transmitted to the relay destination devices 301 to 30M and displayed by the relay destination devices 301 to 30M.
Moreover, the screen transfer unit 136 executes the difference extracting process in parallel for each of the processing regions determined by the calculating unit 135. The difference extracting process is a process of comparing the image information read from the frame buffer 124 with the image information read from the backup image storage unit 123 to thereby extract a difference region (region having different image information).
The screen transfer unit 136 updates the image information stored in the backup image storage unit 123 with respect to the extracted difference region. Moreover, the screen transfer unit 136 overwrites the updated region in the updated region storage unit 133 with the difference region. The screen transfer unit 136 performs a pixel format conversion process after the difference extracting process is performed. The pixel format conversion process is a process of converting the pixel format of the screen relay device 100 into the pixel format of the relay destination devices 301 to 30M. When the pixel formats of both are same, this process may not be performed. The pixel format includes a “bpp” (the number of bits per pixel), a depth (the number of colors displayable with one pixel), and a color map (which defines a correspondence between a color number and an actual color). The screen transfer unit 136 performs a compression process to compress the image information of the difference region after the pixel format conversion process is performed. The compressed image information is transmitted to the relay destination devices 301 to 30M via the communication unit 122.
For example, as illustrated in
The screen transfer unit 136 deletes information of the region (difference region) corresponding to the image information transmitted to the relay destination device from the updated region storage unit 133 after the compression process is performed.
The timer 137 sends an interrupt notification to the screen transfer unit 136 every predetermined time. The screen transfer unit 136 starts the above-described difference extracting process and the like based on the interrupt notification. The trigger for starting the process by the screen transfer unit 136 may not be the interrupt notification from the timer 137. For example, the screen transfer unit 136 may start the process when the number of times of rendering by the rendering unit 132 reaches a predetermined value.
As described above, the image process performed by the screen relay device 100 can be classified into two processes of an image rendering process of writing an updated image to the frame buffer 124 and an image transfer process of transferring the image information of the updated region to the relay destination device.
The image rendering process will be described using the flowchart illustrated in
A screen information acquisition request message is transmitted from the screen relay device 100 to the relay source devices 201 to 20N.
The application 110 receives the image information from the relay source devices 201 to 20N.
The application 110 executes a process in accordance with the image information from the relay source devices 201 to 20N, and outputs a rendering command requesting rendering of a combined image to the rendering unit 132 when an updating of the image information has occurred.
The image information may be generated on the screen relay device 100. In this case, the application 110 outputs the rendering command to the rendering unit 132 based on the operation information from the relay destination devices 301 to 30M.
The rendering unit 132 performs an image process in accordance with the rendering command, renders the combined image as illustrated in
The rendering unit 132 stores the updated region (the coordinate thereof) in the updated region storage unit 133.
The image transfer process will be described using the flowchart illustrated in
The calculating unit 135 calculates the number of threads in which the image information is processed in parallel by the screen transfer unit 136. The number of threads may be calculated for each of the difference extracting process, the pixel format conversion process, and the compression process executed by the screen transfer unit 136, the number of threads may be calculated for one process, and the number of threads may be applied to all of the processes. The subsequent process of the screen transfer unit 136 is performed in parallel in accordance with the number of threads calculated herein.
It is determined whether the difference extracting process is performed. The flow proceeds to step S203 when the difference extracting process is performed, and the flow proceeds to step S205 when the difference extracting process is not performed.
The image information (of the updated image) in the frame buffer 124 corresponding to the updated region and the image information in the backup image storage unit 123 are compared by referring to the updated region stored in the updated region storage unit 133, and the difference region is extracted. Moreover, the difference region is overwritten to the updated region in the updated region storage unit 133.
The image information of the updated image corresponding to the difference region is stored in the backup image storage unit 123.
The screen transfer unit 136 reads the image information of the updated image corresponding to the updated region from the frame buffer 124.
It is determined whether the pixel format conversion process is performed. The flow proceeds to step S207 when the pixel format conversion process is performed, and the flow proceeds to step S209 when the pixel format conversion process is not performed.
A relay destination device having a pixel format different from that of the screen relay device 100 is detected.
The pixel format of the updated image of the updated region transmitted to the relay destination device detected in step S207 is converted.
It is determined whether the compression process is performed. The flow proceeds to step S210 when the compression process is performed, and the flow proceeds to step S211 when the compression process is not performed.
The updated image of the updated region is compressed.
The updated region corresponding to the updated image transmitted to the relay destination device is deleted from the updated region storage unit 133.
The updated image is transmitted to the relay destination device via the communication unit 122. As described above, the screen relay device 100 can combine the images received from N relay source devices 201 to 20N and transmit an arbitrary region of the combined image to M relay destination devices 301 to 30M. That is, the screen relay device 100 can arbitrarily combine or divide the images created by N relay source devices, such as the divided images of the image created by one relay source device, a combined image of the images created by a plurality of relay destination devices, or an image bridging over the image created by the plurality of relay destination devices and transfer the combined image or the divided images to M relay destination devices.
Moreover, the calculating unit 135 calculates the number of threads used for the difference extracting process or the like executed by the screen transfer unit 136 using information such as the number of updated regions, the area of each updated region, the boundary information, and the number of mounted CPUs 121. Therefore, the screen relay device 100 cab transmit the image information of the screen created by the relay source device to the relay destination device efficiently.
As above, according to the present embodiment, it is possible to improve screen transfer performance of the screen relay device.
In the first embodiment, although the screen relay device 100 renders one kind of combined image and stores the rendered image in the frame buffer 124, when the combined image rendered by the screen relay device 100 is different from the combined image requested by the relay destination device, the combined image requested by the relay destination device may be stored in a separate area of the frame buffer 124.
For example, in the combined image 100a illustrated in
Moreover, a plurality of frame buffers 124 may be provided so as to correspond to the respective relay destination devices so that the combined images requested by the respective relay destination devices are rendered and stored in the frame buffers.
The relay destination device having received the image information from the screen relay device 100 may switch the positions of the images so that the images are displayed at desired positions.
The first transmitting unit 401 transmits an image information acquisition request message to the N relay source devices 201 to 20N.
The first receiving unit 402 receives the image information created by the relay source device from the N relay source devices 201 to 20N as a response to the image information acquisition request message. The first receiving unit 402 stores the received image information in a storage area in the first storage unit 421, instructed by the first determining unit 411.
When the received image information is compressed, the first receiving unit 402 performs a decompression process.
The first storage unit 421 stores the image information received from the relay source devices 201 to 20N. The first storage unit 421 corresponds to the frame buffer 124 of the first embodiment.
The first determining unit 411 determines a storage area in the first storage unit 421 in which the image information received from the N relay source devices 201 to 20N is stored.
The first determining unit 411 may be a setting file A that designates a storage area by the order in which the relay source device is “discovered” by the screen relay device 400. When the first determining unit 411 is the setting file A, the first receiving unit 402 stores the received image information in the first storage unit 421 by referring to the setting file A.
The second storage unit 422 stores the image information transmitted to the relay destination device 301. The second storage unit 422 corresponds to the backup image storage unit 123 of the first embodiment.
The correlating unit 412 stores a correspondence between the image information stored in the first storage unit 421 and the image information stored in the second storage unit 422. The correlating unit 412 may be a setting file B that describes correspondence information.
The detecting unit 413 acquires the correspondence information from the correlating unit 412 and compares the pixel values of the image information items stored in the first storage unit 421 and the second storage unit 422 to thereby detect a region where a difference is present. When the correlating unit 412 is the setting file B, the detecting unit 413 can identify the areas of the image information items of which the pixel values are compared between the first storage unit 421 and the second storage unit 422 by referring to the setting file B.
The updating unit 414 stores the image information in the first storage unit 421 corresponding to the difference region detected by the detecting unit 413 in the second storage unit 422 as updated image information. Moreover, the updating unit 414 notifies the second transmitting unit 403 of information representing the difference region.
The second transmitting unit 403 acquires the image information of the difference region from the second storage unit 422 using the information representing the difference region notified from the updating unit 414 and transmits the image information to the relay destination device 301. The image information may be compressed when transmitting the same.
The first transmitting unit 401, the first receiving unit 402, and the second transmitting unit 403 correspond to the communication unit 122 of the first embodiment. Moreover, the second transmitting unit 403 has the function of the compression process by the screen transfer unit 136 of the first embodiment. Moreover, the first receiving unit 402 and the first determining unit 411 correspond to the determining unit 131 and the rendering unit 132 of the first embodiment.
As above, the screen relay device 400 of the present embodiment can receive the image information from N relay source devices, arbitrarily combine or divide the images to create one image information item, and transfer the created image information to one relay destination device.
Moreover, the calculation of the number of threads as described in the first embodiment may be performed by the processes of the detecting unit 413, the updating unit 414, and the second transmitting unit 403, and parallel processing may be performed with the calculated number of threads. In this way, it is possible to transmit the image information to the relay destination device efficiently.
The screen relay device 500 arbitrarily combines or divides the images created by the relay source devices 201 to 20N and transmits the combined image or the divided images to the relay destination devices 301 to 30M. Moreover, when images displayed by the relay destination devices 301 to 30M are updated (when a change occurs), the screen relay device 100 transmits an updated image to the relay destination devices 301 to 30M.
The screen relay device 500 is one in which the functions of the screen relay device 400 are expanded. The second transmitting unit 403 can transmit the image information to M relay destination devices 301 to 30M. The image information items transmitted to the respective relay destination devices are stored in the second storage unit 422 in a divided manner.
The second determining unit 415 determines a storage area of the second storage unit 422 in which the image information items transmitted or having been transmitted to the M relay destination devices 301 to 30M are stored.
The second determining unit 415 may be a setting file C that designates a storage area in the second storage unit 422 by the order in which the relay destination device is “discovered” by the screen relay device 500. When the second determining unit 415 is the setting file C, the second transmitting unit 403 specifies a storage area of the second storage unit 422 corresponding to a relay destination device of a transmission destination by referring to the setting file C when transmitting the image information to the relay destination device and transmits the image information stored in the storage area.
The correlating unit 412, the detecting unit 413, and the updating unit 414 illustrated in
As above, the screen relay device 500 of the present embodiment can receive the image information items from the N relay source devices, arbitrarily combine or divide the images to create M image information items, and transfer the created image information to the M relay destination devices.
Moreover, the calculation of the number of threads as described in the first embodiment may be performed by the processes of the detecting unit 413, the updating unit 414, and the second transmitting unit 403, and parallel processing may be performed with the calculated number of threads. In this way, it is possible to transmit the image information to the relay destination device efficiently.
At least part of the screen relay device described in the above embodiments may be implemented in either hardware or software. When implemented in software, a program that realizes at least part of functions of the screen relay device may be stored on a (non-volatile) recording medium such as a flexible disk or CD-ROM and read and executed by a computer. The recording medium is not limited to a removable recording medium such as a magnetic disk or optical disk, but. may be a non-removable recording medium such as a hard disk device or memory.
The program that realizes at least part of the functions of the screen relay device may be distributed through a communication line (including wireless communications) such as the Internet. Further, the program may be encrypted, modulated, or compressed to be distributed through a wired line or wireless line such as the Internet or to be distributed by storing the program on a recording medium.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
This application is a continuation application of International Application No. PCT/JP2009/071597, filed on Dec. 25, 2009, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2009/071597 | Dec 2009 | US |
Child | 13530506 | US |