WO2018190198A1 - 画像処理装置、画像処理システム、情報処理システム及び画像処理方法 - Google Patents

画像処理装置、画像処理システム、情報処理システム及び画像処理方法 Download PDF

Info

Publication number
WO2018190198A1
WO2018190198A1 PCT/JP2018/014281 JP2018014281W WO2018190198A1 WO 2018190198 A1 WO2018190198 A1 WO 2018190198A1 JP 2018014281 W JP2018014281 W JP 2018014281W WO 2018190198 A1 WO2018190198 A1 WO 2018190198A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
image
unit
subband
image processing
Prior art date
Application number
PCT/JP2018/014281
Other languages
English (en)
French (fr)
Inventor
水野 雄介
孝雄 尾上
載勲 劉
浩一 光成
Original Assignee
株式会社メガチップス
国立大学法人大阪大学
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 株式会社メガチップス, 国立大学法人大阪大学 filed Critical 株式会社メガチップス
Publication of WO2018190198A1 publication Critical patent/WO2018190198A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]

Definitions

  • the present invention relates to image processing.
  • Patent Documents 1 and 2 disclose techniques related to image processing.
  • the present invention has been made in view of the above-described points, and an object thereof is to provide a technique capable of reducing the power consumption of an image processing apparatus.
  • An aspect of the image processing apparatus includes: a generation unit that generates hierarchical data indicating a first image; and a first determination unit that determines transmission target data from the hierarchical data based on a predetermined criterion
  • a first encoding unit that compresses and encodes the transmission target data determined by the first determination unit to generate first encoded data, and a first transmission unit that transmits the first encoded data.
  • An aspect of the image processing apparatus is an image processing apparatus that is a second apparatus that communicates with the first apparatus that is the image processing apparatus, and the first encoded data transmitted from the first apparatus is received.
  • one aspect of the image processing system includes the first device and the second device.
  • an aspect of the information processing system includes the above-described image processing system and a third device that receives a result of the second processing from the second device of the image processing system.
  • An aspect of the image processing method is an image processing method in an image processing apparatus, the step of generating hierarchized data indicating an image, and the hierarchized data based on a predetermined criterion
  • FIG. 1 is a diagram illustrating an example of the configuration of the information processing system 1.
  • the information processing system 1 includes an image processing system 4 including image processing apparatuses 2 and 3 and an information processing apparatus 5.
  • the image processing apparatus 2 generates encoded data that has been compression-encoded indicating an image, and transmits the encoded data to the image processing apparatus 3.
  • the image processing device 3 performs processing based on the encoded data from the image processing device 2 and transmits the processing result to the information processing device 5.
  • the information processing apparatus 5 stores information from the image processing apparatus 3 and performs various processes using the stored information.
  • FIG. 2 is a diagram illustrating an application example of the information processing system 1.
  • the information processing system 1 is used as an IoT (Internet of Things) system 1.
  • the image processing device 2, the image processing device 3, and the information processing device 5 are used as, for example, the IoT terminal 2, the gateway 3, and the cloud server 5, respectively.
  • the gateway 3 is also called an edge gateway.
  • Each of the IoT terminal 2, the gateway 3, and the cloud server 5 is, for example, a kind of computer device.
  • the IoT system 1 includes an image processing system 4 having a plurality of IoT terminals 2 and gateways 3, and a cloud server 5.
  • the plurality of IoT terminals 2 are connected to the gateway 3 through a local network.
  • the gateway 3 and the cloud server 5 are connected via the Internet.
  • the IoT terminal 2 and the gateway 3 may be connected wirelessly or may be connected by wire.
  • ZigBee registered trademark
  • the communication standard between the IoT terminal 2 and the gateway 3 is not limited to this.
  • the processing capability of the IoT terminal 2 is lower than that of the gateway 3, for example.
  • the data transmission rate between the IoT terminal 2 and the gateway 3 is lower than the data transmission rate between the gateway 3 and the cloud server 5, for example.
  • the data transmission rate between the IoT terminal 2 and the gateway 3 is, for example, several tenths of the data transmission rate between the gateway 3 and the cloud server 5.
  • Each IoT terminal 2 has a camera, for example.
  • Each IoT terminal 2 generates encoded data that is compressed and encoded and indicates at least a part of an image captured by the camera, and transmits it to the gateway 3.
  • the IoT terminal 2 is, for example, a mobile phone such as a smartphone, a wearable device such as smart glass, a network camera, or a video phone.
  • the plurality of IoT terminals 2 may be the same type of device, or may be different types of devices.
  • the gateway 3 performs image recognition processing on an image based on encoded data from the IoT terminal 2, for example. Then, the gateway 3 transmits information indicating the result of the image recognition process to the cloud server 5 through the Internet.
  • the cloud server 5 stores information from the gateway 3 and executes various processes based on the stored information.
  • the gateway 3 may transmit streaming data indicating at least a part of an image captured by the IoT terminal 2 to the cloud server 5. In this case, the cloud server 5 may display streaming data from the gateway 3.
  • the cloud server 5 may transmit information indicating the result of the image recognition process or streaming data to another gateway 3 or the IoT terminal 2 through the Internet. In this case, another gateway 3 or IoT terminal 2 may display information or streaming data received from the cloud server 5.
  • the IoT system 1 can be used in, for example, a smart home system.
  • the plurality of IoT terminals 2 and the gateway 3 are provided in the house, and the cloud server 5 is provided in a place away from the house.
  • Each IoT terminal 2 captures a state in the house with a camera, and transmits encoded data indicating an image showing the state to the gateway 3.
  • the gateway 3 performs image recognition processing on the image based on the encoded data from the IoT terminal 2 to detect, for example, a person in the house. Then, the gateway 3 transmits the detection result to the cloud server 5. Thereby, for example, it is possible to watch and manage a child or an elderly person in the house.
  • the IoT terminal 2 can be used in a smart factory, for example.
  • the plurality of IoT terminals 2 and the gateway 3 are provided in the factory, and the cloud server 5 is provided in a place away from the factory.
  • Each IoT terminal 2 takes a picture of the inside of the factory, and transmits encoded data indicating an image showing the state to the gateway 3.
  • the gateway 3 performs image recognition processing on the image based on the encoded data from the IoT terminal 2, and detects, for example, an empty space in which a package can be placed. Then, the gateway 3 transmits the detection result to the cloud server 5.
  • the cloud server 5 As a result, for example, it is possible to manage the transportation of luggage in a factory.
  • the scene where the IoT system 1 is used is not limited to the above.
  • the IoT terminal 2 may receive image data from a separate camera. Further, the image handled by the IoT terminal 2 may be not only an image taken by a camera but also an animation image.
  • the information processing system 1 will be described in detail by taking as an example the case where the information processing system 1 is the IoT system 1.
  • FIG. 3 is a diagram illustrating an example of the configuration of the IoT terminal 2.
  • the IoT terminal 2 includes a circuit configuration including a camera 20, a reduction unit 21, an image memory 22, a mask generation unit 23, an encoding device 24, a communication unit 25, a determination unit 26, and the like.
  • the IoT terminal 2 is, for example, a battery-driven terminal, and includes a battery that outputs a power source of the IoT terminal 2.
  • the camera 20 captures an image and outputs image data 500 indicating the captured image.
  • the image data 500 is composed of a plurality of pixel values.
  • the camera 20 can shoot a moving image or a still image.
  • an image captured by the camera 20 may be referred to as a main image.
  • the image data 500 output from the camera 20 may be referred to as main image data 500.
  • the main image may be a still image or a frame image of a moving image.
  • main image data 500 indicating a frame image is sequentially output from the camera 20.
  • the reduction unit 21 reduces the main image to generate a reduced image.
  • the reduced image is also called a “small image”.
  • the reduction unit 21 reduces the main image so that the size of the reduced image is 1 / 2r times the size of the main image (r is an integer of 1 or more).
  • the reduction unit 21 generates and outputs reduced image data 501 indicating a reduced image based on the main image data 500.
  • At least a part of the reduction unit 21 may be realized by a hardware circuit that does not require software for realizing the function.
  • at least a part of the reduction unit 21 may be a functional block realized by a computer executing a program (software).
  • the image memory 22 includes a reduced image memory 22a and a main image memory 22b.
  • the image memory 22 can also be said to be a memory circuit.
  • the reduced image memory 22a stores the reduced image data 501 output from the reduction unit 21. It can be said that the reduced image memory 22a stores a reduced image.
  • the main image memory 22b stores main image data 500 output from the camera 20. It can be said that the main image memory 22b stores the main image.
  • the reduced image memory 22a and the main image memory 22b may be separate memories that are independent from each other. A part of the storage area of one memory is used as the reduced image memory 22a, and the other part of the storage area is used. It may be used as the main image memory 22b.
  • the mask generation unit 23 generates and outputs mask data 502 for specifying a region of interest in the main image based on the reduced image data 501 in the reduced image memory 22a.
  • the region of interest is also called ROI. It can be said that the generation of the mask data 502 is a process related to the main image.
  • At least a part of the mask generation unit 23 may be realized by a hardware circuit that does not require software to realize the function. Further, at least a part of the mask generation unit 23 may be a functional block realized by a computer executing a program.
  • the encoding device 24 includes a mask encoding unit 24a and an image encoding unit 24b. At least a part of the encoding device 24 may be realized by a hardware circuit that does not require software to realize the function. Further, at least a part of the encoding device 24 may be a functional block realized by a computer executing a program.
  • the mask encoding unit 24a compresses and encodes the mask data 502 output from the mask generation unit 23 to generate mask encoded data 503.
  • the mask encoding unit 24a may compress and encode the mask data 502 according to JPEG (JointoPhotographic Experts Group), may be compression encoded according to JPEG2000, or may be based on other standards. You may compression-encode.
  • JPEG Joint Photographic Experts Group
  • the image encoding unit 24b generates, as image encoded data 504, data obtained by hierarchically encoding at least a part of the main image data 500 in the main image memory 22b.
  • the image encoding unit 24b hierarchizes the main image data 500, and generates hierarchized data indicating the main image (hereinafter also referred to as hierarchized data). Then, the image encoding unit 24b compresses and encodes at least a part of the hierarchized data, and sets the data obtained thereby as the image encoded data 504.
  • the image encoding unit 24b generates and outputs a bit stream 505 including the generated image encoded data 504.
  • the image encoding unit 24b for example, a compression encoding method based on JPEG2000 is used.
  • the image encoding unit 24 b performs wavelet transform (specifically, discrete wavelet transform) on the main image data 500 to layer the main image data 500.
  • wavelet may be expressed as WT.
  • the communication unit 25 is a communication circuit that communicates with the gateway 3.
  • the communication unit 25 performs wireless communication with the gateway 3 in accordance with, for example, ZigBee.
  • the communication method of the communication unit 25 is not limited to this.
  • the communication unit 25 includes a reception unit 25 b that receives a signal from the gateway 3 and a transmission unit 25 a that transmits a signal to the gateway 3.
  • the transmission unit 25 a transmits the mask encoded data 503 generated by the mask encoding unit 24 a to the gateway 3.
  • the transmission unit 25 a transmits the bit stream 505 generated by the image encoding unit 24 b to the gateway 3.
  • the receiving unit 25 b receives instruction information 518 described later transmitted from the gateway 3, and outputs the received instruction information 518 to the determining unit 26.
  • the determining unit 26 determines transmission target data based on a predetermined standard from the hierarchized data obtained by the image encoding unit 24b.
  • the result of processing in the IoT terminal 2 and the instruction information 518 from the gateway 3 are used as the predetermined reference.
  • mask data 502 that is a result of processing in the mask generation unit 23 is used.
  • the result of the processing at the IoT terminal 2 used in determining the transmission target data may be other than the mask data 502.
  • the determining unit 26 determines transmission target data from the hierarchized data based on the mask data 502 and the instruction information 518 received by the receiving unit 25b.
  • the determining unit 26 determines transmission target data based on the new instruction information.
  • the determination unit 26 outputs identification information 506 for identifying the determined transmission target data to the image encoding unit 24b.
  • the image encoding unit 24b compresses and encodes the transmission target data specified by the specifying information 506, and outputs the encoded data obtained thereby as image encoded data 504.
  • the encoded image data 504 is transmitted from the transmission unit 25a to the gateway 3.
  • the determination unit 26 performs a process of determining data to be compression-encoded among the hierarchical data. At least a part of the determination unit 26 may be realized by a hardware circuit that does not require software to realize the function. Further, at least a part of the determination unit 26 may be a functional block realized by a computer executing a program.
  • image data indicating an animation image may be input to the reduction unit 21 instead of image data indicating a live-action image.
  • the IoT terminal 2 may not include the camera 20.
  • the reduction unit 21 may be input with image data (image data indicating a live-action image) output from a camera separate from the IoT terminal 2 or an animation image.
  • FIG. 4 is a diagram illustrating an example of the configuration of the gateway 3.
  • the gateway 3 includes a circuit configuration including a communication unit 30, a decoding device 31, a data processing unit 32, an image recognition unit 33, a transcoder 34, a communication unit 35, and the like.
  • the gateway 3 operates using, for example, a commercial power source as a power source.
  • the decoding device 31, the data processing unit 32, the image recognition unit 33, and the transcoder 34 constitute a processing unit that performs predetermined processing based on the encoded image data 504 from the IoT terminal 2.
  • the communication unit 30 is a communication circuit that communicates with the IoT terminal 2.
  • the communication unit 30 includes a reception unit 30 a that receives a signal from the IoT terminal 2 and a transmission unit 30 b that transmits a signal to the IoT terminal 2.
  • the receiving unit 30a receives the mask encoded data 503 and the bit stream 505 transmitted from the IoT terminal 2.
  • the transmission unit 30b transmits instruction information 518 for instructing the IoT terminal 2 to transmit data to be transmitted by the IoT terminal 2 to the IoT terminal 2.
  • the instruction information 518 is generated by the data processing unit 32.
  • the decoding device 31 includes a mask decoding unit 31a and an image decoding unit 31b.
  • the mask decoding unit 31a generates mask decoded data 510 by decompressing and decoding the mask encoded data 503 received by the receiving unit 30a. This decompression decoding is a process opposite to the compression coding in the mask coding unit 24a shown in FIG.
  • the mask decoded data 510 is obtained by restoring the mask data 502 generated by the mask generation unit 23 of the IoT terminal 2.
  • the image decoding unit 31b extracts the encoded image data 504 from the bit stream 505 received by the receiving unit 30a.
  • the image decoding unit 31b outputs the extracted image encoded data 504 to the data processing unit 32. Further, the image decoding unit 31b decompresses and decodes the extracted image encoded data 504 to generate image decoded data 511.
  • the decoded image data 511 is data that has not been subjected to wavelet inverse transform (specifically, discrete wavelet inverse transform). That is, the decoded image data 511 is obtained by restoring at least a part of the hierarchized data (WT-converted data) generated by the image encoding unit 24b of the IoT terminal 2.
  • the image decoding unit 31b decompresses and decodes the image encoded data 504 included in the new bit stream 505 to generate image decoded data 511.
  • the decryption device 31 may be realized by a hardware circuit that does not require software for realizing the function. Further, at least a part of the decryption device 31 may be a functional block realized by a computer executing a program.
  • the decoded image data 511 may be referred to as WT decoded data 511.
  • the data processing unit 32 stores the WT decoded data 511 generated by the image decoding unit 31b in a first memory described later. Further, the data processing unit 32 stores the encoded image data 504 from the image decoding unit 31b in a second memory described later.
  • the image recognition unit 33 performs image recognition processing on the recognition target image indicated by the recognition data 512 generated by the data processing unit 32. In the image recognition process, the image recognition unit 33 detects a detection target object such as an entire person or a human face from the recognition target image. The detection target is not limited to this.
  • the image recognition unit 33 generates recognition result information 513 used by the data processing unit 32 and indicating the result of the image recognition process. Further, the image recognition unit 33 outputs recognition result information 514 transmitted from the gateway 3 to the cloud server 5 and indicating the result of the image recognition process, to the communication unit 35.
  • the data processing unit 32 generates recognition data 512 used by the image recognition unit 33 based on the data in the first memory.
  • the data processing unit 32 generates mask data 515 used by the transcoder 34 based on the recognition result information 513 generated by the image recognition unit 33.
  • Mask data 515 is mask data for specifying an ROI (region of interest) in an image based on data in the first memory.
  • the mask data 515 is mask data for specifying an ROI in an image based on the encoded image data 504 transmitted from the IoT terminal 2.
  • the data processing unit 32 generates instruction information 518 based on the recognition result information 513 and the like.
  • the data processing unit 32 generates and outputs transcoder decoded data 516 used by the transcoder 34 based on the data in the first memory. Further, the data processing unit 32 generates and outputs transcoder encoded data 517 used by the transcoder 34 based on the data in the second memory.
  • the transcoder 34 Based on the mask data 515 generated by the data processing unit 32, the transcoder 34 identifies the ROI from the image indicated by the transcoder decoded data 516, and converts the compression-encoded data indicating the identified ROI into the ROI. Generated as encoded data.
  • the gateway 3 can generate ROI encoded data indicating ROIs having various shapes by changing the mask data 515.
  • the transcoder 34 generates and outputs a bit stream 519 including the generated ROI encoded data. Also, the transcoder 34 generates and outputs a bit stream 519 including the transcoder encoded data 517.
  • the communication unit 35 is a communication circuit that communicates with the cloud server 5.
  • the communication unit 35 transmits the bit stream 519 output from the transcoder 34 to the cloud server 5.
  • the communication unit 35 transmits the recognition result information 514 output from the image recognition unit 33 to the cloud server 5 as metadata.
  • the gateway 3 may compress and encode the recognition result information 514 and transmit the encoded data obtained thereby to the cloud server 5.
  • the cloud server 5 decompresses and decodes the encoded data included in the bit stream 519 received from the gateway 3, and stores the decoded data (image data) obtained thereby.
  • the cloud server 5 also stores metadata from the gateway 3. Then, the cloud server 5 performs image search or image analysis based on the stored decrypted data and metadata.
  • the IoT terminal 2 generates hierarchized data indicating a main image, and determines transmission target data based on a predetermined standard from the generated hierarchized data. Then, the IoT terminal 2 compresses and encodes the determined transmission target data, and transmits the encoded data obtained thereby to the gateway 3. Thereby, all of the hierarchical data indicating the main image data is compression-encoded, and the power consumption of the IoT terminal 2 is reduced as compared with the case where the encoded data obtained thereby is transmitted from the IoT terminal 2. be able to. Even if the data transmission rate between the IoT terminal 2 and the gateway 3 is low, the transmission delay of the encoded data transmitted from the IoT terminal 2 can be reduced.
  • FIG. 5 is a diagram illustrating an example of the configuration of the image encoding unit 24 b of the IoT terminal 2.
  • the image encoding unit 24 b includes a hierarchization unit 240, an encoding unit 246, and a bit stream generation unit 249.
  • the hierarchizing unit 240 generates hierarchized data from the main image data 500. It can be said that the hierarchizing unit 240 is a generating unit that generates hierarchized data.
  • the encoding unit 246 generates image encoded data 504 by compressing and encoding the transmission target data specified by the specifying information 506 from the determining unit 26 among the hierarchical data.
  • the bit stream generation unit 249 generates a bit stream 505 including the encoded image data 504 and transmits it to the transmission unit 25a.
  • the transmission unit 25 a transmits the bit stream 505 to the gateway 3.
  • the hierarchization unit 240 includes a DC level shift unit 241, a color space conversion unit 242, a tiling unit 243, a wavelet conversion unit 244 (WT conversion unit 244), and a quantization unit 245.
  • the DC level shift unit 241 converts the DC level of the main image data 500 as necessary.
  • the color space conversion unit 242 converts the color space of the main image data 500 after DC level conversion. For example, the RGB component is converted into a YCbCr component (consisting of a luminance component Y and color difference components Cb and Cr).
  • the tiling unit 243 divides the main image data 500 after color space conversion into a plurality of rectangular area components called tiles.
  • the tiling unit 243 inputs the main image data 500 to the wavelet transform unit 244 for each tile.
  • the main image data 500 is not necessarily divided into tiles, and the main image data 500 output from the color space conversion unit 242 may be input to the wavelet conversion unit 244 as it is.
  • the wavelet transform unit 244 performs wavelet transform on the main image data 500 processed by the tiling unit 243 to generate hierarchical data. Then, the quantization unit 245 quantizes the hierarchical data and outputs it.
  • the wavelet transform unit 244 performs integer type or real type discrete wavelet transform (DWT) on the main image data 500 processed by the tiling unit 243, and outputs a plurality of transform coefficients obtained as a result.
  • the transform coefficient may be referred to as a wavelet coefficient.
  • data (a group of wavelet coefficients) generated by performing wavelet transform on the main image data 500 may be referred to as first wavelet coefficient data.
  • the wavelet transform unit 244 outputs the generated first wavelet coefficient data as hierarchized data indicating the main image.
  • two-dimensional image data is decomposed into a high frequency component (in other words, a high frequency component) and a low frequency component (in other words, a low frequency component).
  • This frequency resolution is also called, for example, band division.
  • Each band component obtained by frequency decomposition (that is, each of a low-frequency component and a high-frequency component) is also called a subband.
  • an octave division method is adopted in which only the subband divided in the vertical direction and the horizontal direction is recursively band-divided following the basic method of JPEG2000.
  • the number of recursive band divisions is called a decomposition level.
  • Decomposition level information is associated with the first wavelet coefficient data.
  • the main image data 500 is decomposed to a predetermined decomposition level.
  • a predetermined decomposition level In general, when the decomposition level is about 3 to 5, good coding efficiency can be obtained.
  • the predetermined decomposition level in the wavelet transform unit 244 may be referred to as a maximum decomposition level. In this example, the maximum decomposition level is set to 3.
  • FIGS. 6 to 8 show Mallat wavelet planes 551 to 553 for two-dimensional wavelet transformation.
  • the input image two-dimensional image
  • the input image is subjected to frequency decomposition for each of the vertical direction and the horizontal direction at decomposition level 1 (see FIG. 6).
  • the wavelet plane 551 of FIG. 6 it is decomposed into four subbands HH1, HL1, LH1, and LL1.
  • Subband LL1 obtained at decomposition level 1 is further decomposed into four subbands HH2, HL2, LH2, and LL2 at decomposition level 2 (see wavelet plane 552 in FIG. 7).
  • Subband LL2 obtained at decomposition level 2 is further decomposed into four subbands HH3, HL3, LH3, and LL3 at decomposition level 3 (see wavelet plane 553 in FIG. 8).
  • HL1 is a subband composed of a horizontal high-frequency component H and a vertical low-frequency component L at decomposition level 1.
  • the notation is generalized to XYm (X and Y are each H or L. m is an integer of 1 or more). That is, a subband consisting of a horizontal subband X and a vertical subband Y at the decomposition level m is denoted as XYm.
  • XYm a subband composed of a horizontal subband X and a vertical subband Y.
  • each of the subbands LL1, LL2,... May be abbreviated as an LL subband or an LL component.
  • the subband LL1 may be referred to as an LL1 subband or an LL1 component. The same applies to the other subbands.
  • the wavelet plane (see FIGS. 6 to 8) is a data group in which the operation result data of the wavelet transform is two-dimensionally arranged in association with the pixels in the original image (the image in a state where the wavelet transform is not performed). It is. For example, in an area indicated as a subband LL1 in the wavelet plane, calculation result data (LL component) obtained by using a pixel in the original image as a target pixel is located at the position of the target pixel in the original image. They are lined up correspondingly. It can be said that the wavelet coefficient is a value corresponding to a pixel.
  • the wavelet plane is sometimes called a wavelet space or a wavelet region.
  • the wavelet plane is called a wavelet image
  • the subband is called a subband image
  • the XYm subband is called an XYm subband image
  • the XY subband is called an XY subband.
  • an image Sometimes called an image.
  • subband LL1 corresponds to essential information of the image. According to the subband LL1, it is possible to provide an image having a quarter size of the image before decomposition (in other words, an image having a reduction ratio of 1/2 with respect to the image before decomposition).
  • the subband HL1 corresponds to edge information extending in the vertical direction
  • the subband LH1 corresponds to edge information extending in the horizontal direction.
  • the subband HH corresponds to edge information extending in an oblique direction.
  • subbands LL2, HL2, LH2, and HH2 at decomposition level 2 have the same relationship as subbands LL1, HL1, LH1, and HH1 when subband LL1 before decomposition is regarded as an original image.
  • the original image that has not been subjected to wavelet transformation may be expressed as a decomposition level 0 wavelet image or a decomposition level 0 wavelet plane by associating the original image with decomposition level 0.
  • the subband LL is referred to as the lowest subband.
  • FIG. 9 is a diagram showing an example of the main image 500A (original image).
  • FIG. 10 is a diagram showing a decomposition level 3 wavelet plane 553 as a schematic image obtained by wavelet transforming the main image data 500 representing the main image 500A shown in FIG.
  • the main image 500A shown in FIG. 9 includes an image 500a showing a moving person and an image 500b showing a tree.
  • each subband on the wavelet plane includes a portion 553a showing an image 500a and a portion 553b showing an image 500b.
  • each subband on the wavelet plane 553 is data indicating the main image 500A.
  • the resolution of main image 500A indicated by subbands LL3, HL3, LH3, and HH3 with three subband divisions is lower than the resolution of the main image indicated by subbands HL2, LH2, and HH2 with two subband divisions. It can be said.
  • the resolution of the main image 500A indicated by the subbands HL2, LH2, and HH2 having two subband divisions is higher than the resolution of the main image 500A indicated by the subbands HL1, LH1, and HH1 having one subband division. It can be said that it is low.
  • the resolution of the main image 500A indicated by the subbands HL1, LH1, and HH1 with one subband division is lower than the resolution of the main image 500A that is not divided into subbands.
  • the first wavelet coefficient data is composed of a plurality of hierarchical data indicating main images having different resolutions.
  • the LL component is recursively decomposed by the same number of times in each of the horizontal direction and the vertical direction.
  • subbands are synthesized in the reverse order of the decomposition.
  • the sizes of subbands with the same number of decompositions on the wavelet plane need not be the same.
  • the origin is treated as 0, the L component output of the wavelet transform is treated as an even number, and the H component output is treated as an odd number.
  • the L component output is treated as an odd number and the H component output as an even number.
  • the wavelet plane is a conceptual plane in which the even-numbered and odd-numbered outputs of the wavelet transform are rearranged for each subband.
  • the quantization unit 245 performs scalar quantization on the first wavelet coefficient data output from the wavelet transform unit 244 based on the quantization step size, thereby generating first quantized wavelet coefficient data.
  • the first quantized wavelet coefficient data is quantized hierarchical data.
  • the quantization step size is set according to the target image quality, for example. The resolution of the image indicated by the first quantized wavelet coefficient data can be adjusted by changing the quantization step size.
  • the first quantized wavelet coefficient data has the same data structure as the first wavelet coefficient data. For this reason, according to the first quantized wavelet coefficient data, a wavelet image is provided in the same manner as the first wavelet coefficient data.
  • the wavelet image provided by the first quantized wavelet coefficient data may be referred to as a quantized wavelet image.
  • the encoding unit 246 compresses and encodes transmission target data specified by the specification information 506 among the first quantized wavelet coefficient data (hierarchical data) generated by the quantization unit 245, thereby encoding image encoded data. 504 is generated.
  • entropy encoding is performed according to EBCOT (Embedded Block Coding with Optimized Truncation) that performs bit-plane encoding.
  • the encoding unit 246 includes a coefficient bit modeling unit 247 and an entropy encoding unit 248.
  • the coefficient bit modeling unit 247 performs a bit modeling process on the first quantized wavelet coefficient data. Specifically, the coefficient bit modeling unit 247 divides each subband included in the first quantized wavelet coefficient data into regions called “code blocks” of about 32 ⁇ 32 or 64 ⁇ 64.
  • FIG. 11 is a diagram illustrating an example of how each subband of the quantized wavelet image 563 is divided into a plurality of code blocks 570. As shown in FIG. 11, the subband is divided into a plurality of code blocks 570 with the upper left corner as a reference.
  • the coefficient bit modeling unit 247 When the coefficient bit modeling unit 247 divides each subband into a plurality of code blocks, the coefficient bit modeling unit 247 specifies the code block to be transmitted from the specifying information 506 from the determining unit 26. Then, the coefficient bit modeling unit 247 decomposes the identified code block into a plurality of bit planes configured by a two-dimensional array of bits.
  • the transmission target code block identified by the identification information 506 may be referred to as a transmission target code block.
  • FIG. 12 is a diagram illustrating an example of n bit planes 571 0 to 571 n ⁇ 1 (n: natural number) constituting the code block 570.
  • the coefficient bit modeling unit 247 assigns each bit constituting the binary value of each quantized wavelet coefficient in the transmission target code block 570 to a separate bit plane.
  • the binary value 572 of the quantized wavelet coefficient at one point in the code block 570 is “011... 0”
  • the plurality of bits constituting the binary value 572 are:
  • the bit planes 571 n ⁇ 1 , 571 n ⁇ 2 , 571 n ⁇ 3 ,..., 571 0 are decomposed.
  • Bit plane 571 n-1 in the figure represents the most significant bit plane consisting only of the most significant bit (MSB) of the quantized wavelet coefficient
  • bit plane 571 0 is the least significant bit consisting only of the least significant bit (LSB). Represents a bit plane.
  • the context determination algorithm for each coding pass is defined by the JPEG2000 standard. According to this, “significant” means a state where the attention coefficient is known to be non-zero in the encoding process so far. “Not significant” means a state where the coefficient is zero or possibly zero.
  • the coefficient bit modeling unit 247 performs SIG path (significant coefficient coding pass with significant coefficients around), MR path (significant coefficient coding pass), and CL path (SIG path and MR path not remaining).
  • Bit plane encoding is performed in three types of encoding passes). Bit plane encoding is performed by scanning the bits of each bit plane in units of 4 bits from the most significant bit plane to the least significant bit plane and determining whether or not a significant coefficient exists. The number of bit planes composed only of insignificant coefficients (0 bits) is included as zero bit plane information in a packet header described later generated by the bit stream generation unit 249.
  • bit plane encoding actual encoding is started from a bit plane in which a significant coefficient first appears. The encoding start bit plane is encoded only by the CL pass, and the bit planes lower than the bit plane are sequentially encoded by the above three types of encoding passes.
  • the entropy encoding unit 248 performs entropy encoding on the data generated by the coefficient bit modeling unit 247 to generate encoded image data 504.
  • the encoded image data 504 is composed of transmission target code blocks that have been compression encoded.
  • entropy coding for example, arithmetic coding is used.
  • the encoding unit 246 may perform rate control on the encoded image data 504 generated by the entropy encoding unit 248 to control the code amount.
  • a code block included in the encoded image data 504 may be referred to as an encoded block.
  • each encoded block included in the image encoded data 504 is accompanied by block position information indicating the position of the encoded block in the quantized wavelet image. It can be said that the block position information associated with the encoded block indicates the position of the encoded block in the wavelet image.
  • the bit stream generation unit 249 generates a bit stream 505 including the encoded image data 504. Specifically, the bit stream generation unit 249 packetizes the encoded image data 504, and generates a bit stream 505 including the packet data generated thereby and additional information.
  • the additional information includes a packet header, layer configuration information, scalability information, a quantization table, and the like.
  • the packet header includes zero-length packet information, code block inclusion information, zero bit plane information, coding pass number information, and code block code amount information (compressed data length of the code block).
  • the packet header is encoded and included in the bitstream 505.
  • FIG. 14 is a diagram illustrating an example of the configuration of the mask generation unit 23 of the IoT terminal 2.
  • the mask generation unit 23 includes an original mask generation unit 230 and a mask development unit 231.
  • the original mask generation unit 230 generates original mask data which is data of an original mask for discriminating between ROI and non-ROI in the main image based on the reduced image data 501 in the reduced image memory 22a.
  • the original mask generation unit 230 can be configured by various mask generation techniques. For example, a technique for detecting a moving object in a moving image is known. If this moving object detection technique is used, a mask in which a portion in which a moving object appears in the main image is set as an ROI can be generated. Also, a technique for separating a foreground image and a background image from the entire image by graph cut for a still image taken by a digital camera is known. By using this image separation technique, the original mask generation unit 230 can generate a mask in which the foreground image included in the main image is set to ROI.
  • FIG. 15 is a view showing an example of the original mask 580.
  • the original mask 580 shown in FIG. 15 is the original mask in the case where the image 500a in which the person being moved is set to ROI and the other parts are set to non-ROI in the main image 500A shown in FIG. It is.
  • the original mask 580 can be understood as an image indicating whether each pixel in the main image 500A belongs to ROI or non-ROI.
  • the original mask 580 has an ROI corresponding portion 580a and a non-ROI corresponding portion 580b corresponding to the ROI and the non-ROI in the main image 500A, respectively.
  • the white portion is the ROI corresponding portion 580a
  • the black portion is the non-ROI corresponding portion 580b.
  • the mask development unit 231 performs a mask development process. Specifically, the mask development unit 231 uses the ROI corresponding portion 580a and the non-ROI corresponding portion 580b of the original mask 580 for each subband included in the first wavelet coefficient data generated by the wavelet transform unit 244 (in other words, Then, it develops for each subband included in the wavelet image corresponding to the first wavelet coefficient data. By such mask development processing, a development mask that is a mask for the first wavelet coefficient data is generated.
  • the expansion mask is a mask for discriminating, from the first wavelet coefficient data, a coefficient related to ROI (hereinafter referred to as ROI coefficient) and a coefficient related to non-ROI (hereinafter referred to as non-ROI coefficient). .
  • FIGS. 6 to 8 show unfolded masks 581, 582 and 583 obtained by unfolding the original mask 580 of FIG. 15 on the wavelet planes 551 to 553 (see FIGS. 6 to 8) of decomposition levels 1, 2 and 3, respectively.
  • ROI corresponding portions 581a, 582a, 583a are illustrated in white, and non-ROI corresponding portions 581b, 582b, 583b are illustrated in black.
  • the development mask can be grasped as a collection of masks for each subband included in the wavelet image. That is, if the mask for each subband is called a subband mask, the development mask can be grasped as an aggregate of subband masks. For example, a portion for the LL subband in the development mask is referred to as an LL subband mask. The same applies to portions corresponding to other subbands.
  • the decomposition mask decomposition level is attached to the data of the expansion mask.
  • FIG. 19 is a flowchart showing the mask development process.
  • a process of raising the mask decomposition level by one level (hereinafter also referred to as level increase unit process) is performed (see step s2).
  • the level increase unit process is repeated until a mask of the decomposition level is obtained (see step s1).
  • the decomposition level of the first wavelet coefficient data is denoted as g1.
  • the current mask to be processed is converted into a new mask for a new wavelet plane whose decomposition level is one step higher than the current wavelet plane to which the current mask is applied.
  • the current mask is an original mask
  • the current wavelet plane corresponds to the original image before wavelet transformation.
  • the level increment unit process is repeated recursively. That is, the level increase unit process is performed again by setting the new mask as the next current mask.
  • the level increment unit process is repeated according to the wavelet transform method. For example, when the above-described Mallat type method is employed (see FIGS. 6 to 8), the wavelet plane recursively decomposes only the subband LL in the lowest range. For this reason, the mask development is also performed recursively only for the portion corresponding to the subband LL.
  • the level increase unit processing is performed based on a predetermined mask development condition, and the mask development condition depends on the number of taps of the wavelet transform filter.
  • the mask development condition includes two conditions (referred to as a first development condition and a second development condition) based on FIG.
  • the decomposition-side low-pass filter has 5 taps
  • the decomposition-side high-pass filter has 3 taps.
  • Second development condition When the ⁇ 2p + 1 ⁇ th data on the current wavelet plane is associated with the ROI by the current mask, the pth and ⁇ p + 1 ⁇ th of the low frequency component and the high frequency component in the new wavelet plane A new mask is formed so that the ⁇ p ⁇ 1 ⁇ th to ⁇ p + 1 ⁇ th data are associated with the ROI.
  • the mask expansion condition includes two conditions (referred to as a third expansion condition and a fourth expansion condition) based on FIG.
  • the decomposition-side low-pass filter has 9 taps
  • the decomposition-side high-pass filter has 7 taps.
  • the mask development unit 231 outputs data of a development mask corresponding to the wavelet plane having the highest decomposition level (hereinafter sometimes referred to as a maximum development mask) as mask data 502.
  • a maximum development mask data of a development mask corresponding to the wavelet plane having the highest decomposition level
  • the mask development unit 231 generates a development mask 583 (see FIG. 18) of the decomposition level 3, and masks the data of the development mask 583 (maximum development mask data).
  • the data of the maximum expansion mask is a mask for discriminating the ROI coefficient and the non-ROI coefficient with respect to the first quantized wavelet coefficient data generated by the quantization unit 245.
  • the value (coefficient) at the same position as the ROI corresponding portion of the maximum expansion mask becomes the ROI coefficient
  • the value (coefficient) at the same position as the non-ROI corresponding portion of the maximum expansion mask becomes the non-ROI coefficient.
  • the mask generation unit 23 may generate the mask data 502 based on the main image data 500. As described above, when the mask data 502 is generated based on the reduced image data 501, the processing of the IoT terminal 2 can be simplified, and as a result, the power consumption of the IoT terminal 2 can be reduced. it can.
  • the determination unit 26 of the IoT terminal 2 determines a transmission target code block based on the instruction information 518 from the gateway 3 and the mask data 502 generated by the mask generation unit 23. Then, the determination unit 26 outputs identification information 506 for identifying the determined transmission target code block to the image encoding unit 24b. As a result, the encoded image data 504 obtained by compressing and encoding the transmission target code block is transmitted from the IoT terminal 2 to the gateway 3.
  • the gateway 3 can also use the instruction information 518 to instruct whether or not to use the mask data 502 when the determination unit 26 determines the transmission target code block.
  • the gateway 3 instructs to use the mask data 502 for the determination of the transmission target code block
  • the gateway 3 includes usable information for instructing the use of the mask data 502 in the instruction information 518.
  • the gateway 3 when instructing not to use the mask data 502 for determination of the transmission target code block, the gateway 3 includes unusable information for instructing non-use of the mask data 502 in the instruction information 518.
  • the gateway 3 can freely specify data to be transmitted by the IoT terminal 2 using the instruction information 518.
  • the gateway 3 can specify data to be transmitted by the IoT terminal 2 in units of code blocks.
  • the gateway 3 can specify data to be transmitted by the IoT terminal 2 in units of subbands.
  • the gateway 3 can specify the data of the subband LL3 included in the quantized wavelet coefficient as data to be transmitted by the IoT terminal 2.
  • the gateway 3 can specify, for example, data of subbands HH3 and HL3 included in the quantized wavelet coefficients as data to be transmitted by the IoT terminal 2.
  • the gateway 3 can also specify data to be transmitted by the IoT terminal 2 in units of decomposition levels.
  • the gateway 3 can specify the data at the decomposition level 2 included in the quantized wavelet coefficient as data to be transmitted by the IoT terminal 2.
  • data of subbands HH2, LH2, and HL2 included in the quantized wavelet coefficients are designated.
  • the gateway 3 can specify, for example, the data at the decomposition levels 1 and 2 included in the quantized wavelet coefficients as data to be transmitted by the IoT terminal 2.
  • data of subbands HH1, LH1, HL1, HH2, LH2, and HL2 included in the quantized wavelet coefficients are designated.
  • data designated by the gateway 3 using the instruction information 518 may be referred to as designated data.
  • the designated data can be said to be data to be transmitted by the IoT terminal 2 that is instructed to the IoT terminal 2 by the instruction information 518.
  • the determination unit 26 corresponds to the ROI corresponding portion of the maximum expansion mask indicated by the mask data 502 among the specified data specified by the instruction information 518. Is a transmission target data.
  • the determination unit 26 uses the specified data specified by the instruction information 518 as it is as transmission target data.
  • FIG. 22 is a diagram showing a correspondence relationship between the maximum development mask 583 and the code block 570 shown in FIG. 18 described above.
  • the determination unit 26 transmits all the code blocks 570a to 570i of the subband LL3. Determine as the target code block.
  • the code blocks 570a to 570i are compression-encoded and transmitted to the gateway 3.
  • the determination unit 26 selects the code blocks 570a to 570i of the subband LL3.
  • Four code blocks 570d, 570e, 570g, and 570h corresponding to the ROI corresponding portion 583a included in the LL3 subband mask 583LL3 of the maximum expansion mask 583 are determined as transmission target code blocks.
  • the code blocks 570d, 570e, 570g, and 570h are compression encoded and transmitted to the gateway 3.
  • the determination unit 26 overlaps each code block 570 with respect to the maximum expansion mask 583 as illustrated in FIG. 22, the determination unit 26 adds the code block 570 including at least a part of the ROI corresponding portion 583a of the LL3 subband mask 583LL3.
  • a code block 570 corresponding to the ROI corresponding portion 583a is assumed.
  • FIG. 23 is a diagram illustrating an example of the configuration of the image decoding unit 31 b of the gateway 3.
  • the image decoding unit 31b includes a bit stream analysis unit 310, a decoding unit 311 and an inverse quantization unit 314.
  • the bit stream analysis unit 310 analyzes the bit stream 505 from the IoT terminal 2 and extracts the encoded image data 504 and additional information from the bit stream 505.
  • the bit stream analysis unit 310 outputs the extracted encoded image data 504 to the decoding unit 311 and the data processing unit 32.
  • the bitstream analysis unit 310 decodes the encoded packet header included in the extracted additional information.
  • the additional information is used by the decoding unit 311, the inverse quantization unit 314, and the like.
  • the decoding unit 311 performs predetermined decompression decoding on the encoded image data 504.
  • the predetermined decompression decoding basically corresponds to a process opposite to the compression encoding in the encoding unit 246 in FIG. 5 except for the code amount control.
  • Quantized wavelet coefficients are generated from the encoded image data 504 by predetermined decompression decoding.
  • the decoding unit 311 includes an entropy decoding unit 312 and a coefficient bit modeling unit 313.
  • the entropy decoding unit 312 performs entropy decoding on the encoded image data 504 to generate bit data. Entropy decoding is the reverse of the entropy encoding in the entropy encoding unit 248 of FIG.
  • the coefficient bit modeling unit 313 performs bit modeling processing on the bit data generated by the entropy decoding unit 312 to restore the quantized wavelet coefficients.
  • the bit modeling process here corresponds to a process opposite to that in the coefficient bit modeling unit 247 of FIG.
  • the coefficient bit modeling unit 313 inputs the generated quantized wavelet coefficient to the inverse quantization unit 314.
  • data (a group of quantized wavelet coefficients) generated by the coefficient bit modeling unit 313 may be referred to as second quantized wavelet coefficient data.
  • the second quantized wavelet coefficient data is composed of transmission target code blocks determined by the IoT terminal 2.
  • the inverse quantization unit 314 performs inverse quantization on the input second quantized wavelet coefficient data.
  • the inverse quantization here corresponds to the reverse process of the quantization in the quantization unit 245 of FIG.
  • the second quantized wavelet coefficient data is converted into the second wavelet coefficient data.
  • the inverse quantization unit 314 outputs the generated second wavelet coefficient data as WT decoded data 511.
  • the WT decoded data 511 includes a transmission target code block that has been dequantized.
  • a code block included in the WT decoded data 511 may be referred to as a WT decoded block.
  • each WT decoded block included in the WT decoded data 511 is accompanied by block position information indicating the position of the WT decoded block in the wavelet image. Yes.
  • FIG. 24 is a diagram illustrating an example of the configuration of the data processing unit 32.
  • the data processing unit 32 includes a recognition data generation unit 320, a first processing unit 321, a second processing unit 322, a first memory 323, and a second memory 324. Data is read from and written to the first memory 323 by the first processing unit 321.
  • the second memory 324 stores the encoded image data 504 output from the image decoding unit 31b. Data in the second memory 324 is read by the second processing unit 322.
  • FIG. 25 is a diagram illustrating an example of the configuration of the recognition data generation unit 320.
  • the recognition data generation unit 320 includes an inverse wavelet transform unit 3201, a color space transform unit 3202, and a DC level shift unit 3203.
  • the inverse wavelet transform unit 3201 performs inverse wavelet transform (specifically, inverse discrete wavelet transform) on input data composed of wavelet coefficients.
  • the reverse conversion non-target data 521 and the reverse conversion target data 522 generated by the first processing unit 321 are input to the recognition data generation unit 320.
  • the inverse transformation non-target data 521 is data that is not subjected to inverse wavelet transformation by the inverse wavelet transformation unit 3201.
  • the inverse transformation non-target data 521 is composed of, for example, only one subband wavelet coefficient.
  • the inverse transformation non-target data 521 is composed of, for example, only LL3 subband wavelet coefficients.
  • the inverse transformation non-target data 521 is composed of, for example, HH3 subband wavelet coefficients.
  • the inverse transformation non-target data 521 is composed of, for example, wavelet coefficients of the HL1 subband. It can be said that the inverse transformation non-target data 521 is data that cannot be inverse wavelet transformed.
  • the inverse transformation target data 522 is data that can be inversely wavelet transformed, and is inversely wavelet transformed by the inverse wavelet transform unit 3201.
  • the inverse transformation target data 522 includes only LL subbands, LH subbands, HL subbands, and HH subband wavelet coefficients having the same decomposition level.
  • the inverse transformation target data 522 is, for example, an LH subband of the same decomposition level, a wavelet coefficient of the HL subband, and an HH subband and an LL band of the same decomposition level that can restore the LL band of the same decomposition level. It consists only of wavelet coefficients of multiple subbands.
  • the inverse wavelet transform unit 3201 is an LL sub-level that is one decomposition level lower than the lowest decomposition level.
  • the inverse wavelet transform is performed on the inverse transform target data 522 so that the band wavelet coefficients are obtained.
  • the inverse wavelet transform unit 3201 performs inverse transform so that the pixel value of the original image is obtained when the lowest decomposition level among the decomposition levels of the wavelet coefficients included in the inverse transform target data 522 is 1. Inverse wavelet transform is performed on the target data 522.
  • the inverse wavelet transform unit 3201 obtains decomposition level 2 LL2 subband wavelet coefficients.
  • the inverse transformation target data 522 includes decomposition level 2 LH2 subband, HL2 subband and HH2 subband wavelet coefficients, decomposition level 3 LL3 subband, LH3 subband, HL3 subband and HH3 subband wavelet.
  • the inverse wavelet transform unit 3201 obtains the wavelet coefficients of the decomposition level 1 LL1 subband.
  • the decomposition level 3 LL3 subband, the LH3 subband, the HL3 subband, and the HH3 subband are subbands that can recover the decomposition level 2 LL2 subband.
  • the inverse transformation target data 522 includes decomposition level 1 LH1 subband, HL1 subband and HH1 subband wavelet coefficients, decomposition level 2 LH2 subband, HL2 subband, HH2 subband and decomposition level 3 LL3.
  • the inverse wavelet transform unit 3201 obtains the pixel value of the original image (main image).
  • Decomposition level 2 LH2 subband, HL2 subband, and HH2 subband and decomposition level 3 LL3 subband, LH3 subband, HL3 subband, and HH3 subband are subbands that can recover decomposition level 1 LL1 subband. It is.
  • the wavelet coefficients of the LL subband generated by the inverse wavelet transform unit 3201 are output to the first processing unit 321 as LL data 520. That is, the LL3 subband wavelet coefficients, the LL2 subband wavelet coefficients, and the LL1 subband wavelet coefficients generated by the inverse wavelet transform unit 3201 are input to the first processing unit 321 as LL data 520, respectively.
  • the wavelet coefficient output from the inverse wavelet transform unit 3201 is handled as a pixel value. Therefore, it can be said that the inverse wavelet transform unit 3201 outputs image data including a plurality of pixel values.
  • the wavelet coefficients included in the inverse transformation non-target data 521 are also handled as pixel values. Therefore, it can be said that the inverse transformation non-target data 521 is a kind of image data.
  • the color space conversion unit 3202 performs a process opposite to the process in the color space conversion unit 242 of FIG. 5 on the image data output from the inverse wavelet conversion unit 3201. In addition, the color space conversion unit 3202 performs a process reverse to the process in the color space conversion unit 242 on the reverse conversion non-target data 521 (image data) input to the recognition data generation unit 320.
  • the DC level shift unit 3203 converts the DC level of the image data output from the color space conversion unit 3202 as necessary. The image data output from the DC level shift unit 3203 becomes the recognition data 512.
  • the recognition data 512 is at least a part of the restored main image data 500 or at least a part of the restored subband. Therefore, the recognition target image indicated by the recognition data 512 indicates at least a part of the main image (a main image not subjected to subband division) or at least a part of the subband image.
  • the first processing unit 321 performs data writing processing, mask generation processing, input data generation processing, and instruction information generation processing.
  • the first processing unit 321 stores the WT decoded data 511 (WT decoding block) output from the image decoding unit 31b in the first memory 323. At this time, block position information associated with each WT decoded block included in the WT decoded data 511 is also stored in the first memory 323. The first processing unit 321 stores the LL data 520 output from the recognition data generation unit 320 in the first memory 323.
  • the first processing unit 321 generates mask data 515 based on the recognition result information 513 output from the image recognition unit 33.
  • the image recognition unit 33 when detecting the detection target object from the recognition target image indicated by the recognition data 512, the image recognition unit 33 outputs recognition result information 513 including detection information indicating that the detection target object has been detected. On the other hand, when the detection target object cannot be detected from the recognition target image, the image recognition unit 33 outputs recognition result information 513 including undetected information indicating that the detection target object has not been detected.
  • the first processing unit 321 When the first processing unit 321 receives the recognition result information 513 including the detection information, the first processing unit 321 specifies a detection target image in which the detection target detected by the image recognition unit 33 appears in the main image.
  • the first processing unit 321 can specify the detection target image based on the block position information in the first memory 323.
  • the first processing unit 321 sets the identified detection object image as the ROI in the main image, and sets the other areas as the non-ROI.
  • the image recognition unit 33 detects a plurality of detection objects from the main image, a plurality of detection object images in which the plurality of detection objects are shown in the main image are set as ROIs.
  • the ROI and non-ROI set by the first processing unit 321 may be referred to as “gateway side ROI” and “gateway side non-ROI”.
  • the first processing unit 321 generates an original mask for discriminating between the gateway side ROI and the gateway side non-ROI in the main image.
  • the first processing unit 321 generates a use mask (maximum expansion mask) corresponding to the wavelet plane of the maximum decomposition level, similar to the above-described maximum expansion mask generated by the IoT terminal 2, from the generated original mask.
  • the usage mask can be generated by using a mask expansion process executed by the mask generation unit 23 of the IoT terminal 2.
  • the first processing unit 321 can generate a use mask using the mask indicated by the mask decoded data 510 without performing the mask expansion process.
  • the first processing unit 321 inputs use mask data as mask data 515 to the transcoder 34.
  • the use mask indicated by the mask data 515 is a mask for discriminating between ROI coefficients and non-ROI coefficients on a wavelet plane obtained by wavelet transform of the entire main image.
  • the use mask may be a mask for discriminating between ROI coefficients and non-ROI coefficients on a wavelet plane obtained by wavelet transform of only a part of the main image.
  • the first processing unit 321 sets the image of the detection target detected in the image recognition processing as the ROI, but other portions of the main image can also be set as the ROI.
  • the first processing unit 321 can freely set the ROI in the main image.
  • the 1st process part 321 can also make the part which the cloud server 5 designates in a main image as ROI.
  • the first processing unit 321 uses the data in the first memory 323 to generate reverse conversion non-target data 521 and reverse conversion target data 522 that are input data input to the recognition data generation unit 320.
  • the first processing unit 321 determines what kind of image the recognition target image is to be generated, and generates the reverse conversion non-target data 521 or the reverse conversion target data 522 accordingly. For example, when the entire LL3 subband image is a recognition target image, the first processing unit 321 generates the inverse transformation non-target data 521 configured by the LL3 subband and inputs it to the recognition data generation unit 320. .
  • the first processing unit 321 when the entire LL2 subband image is the recognition target image, the first processing unit 321 generates inverse conversion target data 522 configured by the LL3 subband, the LH3 subband, the HL3 subband, and the HH3 subband.
  • the type of image to be recognized is determined based on past recognition result information 513, the type of detection object, the shooting range of the camera 20 of the IoT terminal 2, and the like.
  • the first processing unit 321 determines data to be transmitted by the IoT terminal 2 based on the recognition result information 513 and the like, and generates instruction information 518 for instructing to transmit the determined data (designated data). At this time, the first processing unit 321 determines whether to include unusable information or usable information in the instruction information 518. Then, the first processing unit 321 inputs the generated instruction information 518 to the transmission unit 30b.
  • the first processing unit 321 receives recognition result information 513 including non-detection information.
  • the first processing unit 321 that has received the recognition result information 513 converts the data to be transmitted by the IoT terminal 2 into the LH3 subband, the HL3 subband, and the HH3 subband in order to make the next recognition target image into an LL2 subband image, for example.
  • a band A band.
  • the first processing unit 321 generates instruction information 518 for instructing transmission of the LH3 subband, the HL3 subband, and the HH3 subband, and inputs the instruction information 518 to the transmission unit 30b.
  • the IoT terminal 2 that has received the instruction information 518 transmits the encoded image data 504 including the LH3 subband, the HL3 subband, and the HH3 subband.
  • the first processing unit 321 stores the LH3 subband, the HL3 subband, and the HH3 subband in the first memory 323.
  • the first processing unit 321 generates the inverse transformation target data 522 composed of the LL3 subband, the LH3 subband, the HL3 subband, and the HH3 subband in the first memory 323, and sends it to the recognition data generation unit 320. input.
  • the recognition data generation unit 320 performs inverse wavelet transform or the like on the input inverse transformation target data 522 to generate recognition data 512 indicating an LL2 subband image. As a result, the recognition target image becomes an LL2 subband image. Therefore, the image recognition unit 33 performs image recognition processing on the LL2 subband image.
  • the mask decoded data 510 can be used in the mask generation process in the first processing unit 321, but may be used in other processes in the gateway 3.
  • the second processing unit 322 generates the transcoder decoded data 516 based on the data read from the first memory 323.
  • the second processing unit 322 since the mask data 515 generated by the first processing unit 321 corresponds to the wavelet plane of the maximum decomposition level obtained by wavelet transforming the entire main image, the second processing unit 322, for example, A plurality of wavelet coefficients constituting the wavelet plane of the maximum decomposition level, that is, first wavelet coefficient data is read from the first memory 323.
  • the first wavelet coefficient data is data indicating the entire main image.
  • the second processing unit 322 outputs the read first wavelet coefficient data to the transcoder 34 as the transcoder decoded data 516.
  • the mask data 515 is data corresponding to a part of the main image
  • a plurality of wavelet coefficients for restoring the part are read from the first memory 323, and the plurality of read wavelet coefficients are converted.
  • the decoded data for the coder 516 may be used.
  • the second processing unit 322 generates transcoder encoded data 517 based on the data read from the second memory 324. For example, the second processing unit 322 reads, from the second memory 324, a plurality of encoded blocks constituting the wavelet plane having the maximum decomposition level, that is, encoded first quantized wavelet coefficient data. It can be said that the plurality of coding blocks constituting the wavelet plane of the maximum decomposition level are a plurality of coding blocks for restoring the entire main image. Then, the second processing unit 322 outputs the plurality of read encoded blocks to the transcoder 34 as encoded data 517 for transcoder.
  • the second processing unit 322 reads a plurality of encoded blocks for restoring a part of the main image from the second memory 324, and uses the read plurality of encoded blocks as encoded data for transcoder 517. Good.
  • FIG. 26 is a diagram illustrating an example of the configuration of the image recognition unit 33.
  • FIG. 27 is a diagram illustrating the operation of the image recognition unit 33.
  • the image recognition unit 33 includes a preprocessing unit 330 and an image recognition engine 334.
  • the preprocessing unit 330 includes a memory 331, a separation unit 332, and a normalization unit 333.
  • the memory 331 stores the recognition data 512 from the data processing unit 32 (see ⁇ Data storage> in FIG. 27).
  • the separation unit 332 selects a plurality of partial images 601 from the recognition target images 600 indicated by the recognition data 512 in the memory 331 (see ⁇ Selection> in FIG. 27). In the example of FIG. 27, each partial image 601 overlaps with at least one other partial image 601. Then, the separation unit 332 separates the selected partial images 601 from each other (see ⁇ Separation> in FIG. 27).
  • the normalization unit 333 normalizes each of the partial images 601 separated by the separation unit 332 to generate a plurality of normalized partial images 602 (see ⁇ Normalization> in FIG. 27). Data indicating each normalized partial image 602 generated by the normalization unit 333 is input to the image recognition engine 334.
  • the image recognition engine 334 performs image recognition processing on each normalized partial image 602 based on data input from the preprocessing unit 330. For example, when a detection target is detected from at least one of the input plurality of normalized partial images 602, the image recognition engine 334 inputs recognition result information 513 including detection information to the data processing unit 32. On the other hand, the image recognition engine 334 inputs recognition result information 513 including non-detection information to the data processing unit 32 when a detection target is not detected from all of the plurality of input normalized partial images 602. Further, the image recognition engine 334 generates recognition result information 514 including object information regarding the detected detection object and inputs the recognition result information 514 to the communication unit 35.
  • the target information includes, for example, the sex and age of the detected person.
  • Information included in the object information depends on information that the image recognition engine can identify by image recognition.
  • the communication unit 35 transmits metadata including the recognition result information 514 to the cloud server 5. Note that the recognition result information 514 may be the same as the recognition result information 513.
  • the image recognition engine 334 extracts a feature amount indicating the feature of the detection target from the normalized partial image 602.
  • this feature amount for example, edge, color, Haar-like, HOG (Histogramistof Oriented Gradients) or LBP (Local Binary Pattern) can be considered.
  • the image recognition engine 334 inputs the extracted feature amount to the classifier included in the image recognition engine 334.
  • the discriminator determines whether or not the detection target image exists in the normalized partial image 602 based on the input feature quantity, and outputs the determination result.
  • a neural network For example, a neural network, SVM (Support Vector Machine) or Adaboost is used as the discriminator.
  • the image recognition engine 334 extracts a plurality of types of feature amounts from the normalized partial image 602, and based on the extracted plurality of types of feature amounts, whether or not a detection target image exists in the normalized partial image 602. May be determined.
  • the image recognition unit 33 may extract the feature amount from the recognition target image 600 indicated by the recognition data 512 instead of extracting the feature amount from the normalized partial image 602.
  • the image recognition unit 33 selects a plurality of partial images 601 from the recognition target image 600 based on the extracted feature amount, normalizes each of the selected plurality of partial images 601, and A normalized partial image 602 is generated.
  • the image recognition part 33 specifies the feature-value corresponding to each normalized partial image 602 in the feature-value extracted from the recognition object image 600, and inputs the specified feature-value into a discriminator.
  • the image recognition engine 334 may use a neural network having a multilayer structure capable of detecting a detection target without extracting feature amounts, such as deep learning.
  • FIG. 28 is a diagram illustrating an example of the transcoder 34.
  • the transcoder 34 includes a quantization unit 340, an encoding unit 341, and a bit stream generation unit 344.
  • the transcoder 34 converts input data into a bit stream without performing wavelet conversion, and inputs the bit stream to the communication unit 35.
  • the quantization unit 340 performs scalar quantization on the transcoder decoded data 516 composed of a plurality of wavelet coefficients output from the data processing unit 32 based on the quantization step size, and thereby performs the third quantization. Generate quantized wavelet coefficient data. At this time, the quantization unit 340 determines an ROI coefficient and a non-ROI coefficient for each wavelet coefficient of the transcoder decoded data 516 based on the mask data 515 from the data processing unit 32. Then, the quantization unit 340 quantizes each wavelet coefficient of the transcoder decoded data 516 so that the non-ROI coefficient after quantization becomes zero. As a result, the third quantized wavelet coefficient data shows only the gateway-side ROI.
  • the encoding unit 341 performs compression encoding of the third quantized wavelet coefficient data generated by the quantization unit 340 to generate image encoded data 590.
  • the encoding unit 341 includes a coefficient bit modeling unit 342 and an entropy encoding unit 343.
  • the coefficient bit modeling unit 342 performs bit modeling processing on the third quantized wavelet coefficient data. This bit modeling process is the same as the bit modeling process in the coefficient bit modeling unit 247 of the IoT terminal 2 except that all code blocks constituting the third quantized wavelet coefficient data are used.
  • the entropy encoding unit 343 performs entropy encoding on the data generated by the coefficient bit modeling unit 342 to generate encoded image data 590.
  • the encoded image data 590 is data indicating only the ROI specified by the mask data 515. In this example, the encoded image data 590 is data indicating a detection target image.
  • entropy coding for example, arithmetic coding is used. Note that the encoding unit 341 may control the code amount by performing rate control on the encoded image data 590 generated by the entropy encoding unit 343.
  • the bit stream generation unit 344 generates a bit stream 519 including the encoded image data 590. Specifically, the bit stream generation unit 344 packetizes the image encoded data 590, and generates a bit stream 519 including the packet data generated thereby and additional information.
  • the additional information includes a packet header, layer configuration information, scalability information, a quantization table, and the like.
  • the packet header includes zero-length packet information, code block inclusion information, zero bit plane information, coding pass number information, and code block code amount information.
  • bit stream generation unit 344 generates a bit stream 519 including the transcoder encoded data 517 output from the data processing unit 32.
  • the bit stream generation unit 344 packetizes the encoded data for transcoder 517, and generates a bit stream 519 including the packet data generated thereby and additional information.
  • the bit stream 519 generated by the bit stream generation unit 344 is transmitted from the communication unit 35 to the cloud server 5.
  • the gateway 3 can transmit data indicating the gateway-side ROI to the cloud server 5. Since the gateway 3 can freely set the gateway-side ROI, for example, the ROI desired by the cloud server 5 can be transmitted to the cloud server 5.
  • the gateway 3 can transmit data indicating the entire main image to the cloud server 5. Thereby, the gateway 3 can perform streaming transmission of the moving image shot by the camera 20 of the IoT terminal 2 to the cloud server 5. For example, the gateway 3 can stream the moving image in response to a request from the cloud server 5.
  • the second processing unit 322 of the data processing unit 32 inputs the transcoder decoded data 516 to the transcoder 34 or transmits the transcoder encoded data 517 to the transcoder 34. Decide whether to enter
  • the communication unit 35 recognizes the bit stream 519 including the encoded image data 590 and the recognition result information including the target information related to the detection target. Are transmitted to the cloud server 5.
  • the transcoder 34 receives the transcoder decoded data 516 and the transcoder coded data 517, which are data after wavelet transform. Therefore, unlike the image encoding unit 24b of the IoT terminal 2, the transcoder 34 can generate the bit stream 519 without performing wavelet transform on the input data indicating the image. Therefore, the bit stream 519 can be generated by a simple process.
  • the transcoder encoded data 517 is compression encoded data. Therefore, unlike the image encoding unit 24b of the IoT terminal 2, the transcoder 34 generates the bit stream 519 without compressing the input data when the transcoder encoded data 517 is input. be able to. Therefore, the bit stream 519 can be generated by simpler processing.
  • FIGS. 29 and 30 are diagrams each showing an example of operations of the gateway 3 and the IoT terminal 2 of the image processing system 4 that performs processing on a main image to be processed (hereinafter referred to as a target main image).
  • the first processing unit 321 of the gateway 3 sets the LL subband of the maximum decomposition level, in this example, the LL3 subband as a processing target.
  • the first processing unit 321 sets the variable LV indicating the decomposition level of the LL subband to be processed to 3.
  • the processing target LL subband is referred to as a target LL subband.
  • the target LL subband may be referred to as a target LL subband image when viewed as an image.
  • the decomposition level of the target LL subband may be referred to as a target decomposition level.
  • the first processing unit 321 determines the target LL subband as designated data.
  • step s12 the first processing unit 321 generates instruction information 518 for notifying the IoT terminal 2 of the designation data determined in step s11, and inputs the instruction information 518 to the transmission unit 30b.
  • the transmission unit 30 b transmits the input instruction information 518 to the IoT terminal 2.
  • the receiving unit 25b receives the instruction information 518 and inputs it to the determining unit 26 in step s21.
  • the determination unit 26 determines a transmission target code block based on the input instruction information 518 and the mask data 502.
  • the determination unit 26 performs a grouping process for performing expansion and contraction on the ROI corresponding part of the maximum development mask indicated by the mask data 502, a labeling process, Are performed sequentially. Thereby, a unique label is assigned to the independent area (island area) included in the ROI corresponding part.
  • this independent area may be referred to as a “label area”.
  • FIG. 31 is a diagram illustrating a state where the grouping process and the labeling process are performed on the maximum development mask 583.
  • the ROI-corresponding portion (outlined portion) of each subband mask is divided into a label region L0 of label 0 and a label region L2 of label 1.
  • the code block 570 is superimposed on the maximum development mask 583.
  • FIG. 32 is a diagram showing a state in which a plurality of code blocks 570a to 570i constituting the LL3 subband are overlaid on the LL3 subband mask 583LL3 (target subband mask) shown in FIG.
  • the determination unit 26 sets the label with the smallest number as a processing target label (hereinafter, sometimes referred to as a target label). Then, the determination unit 26 sets a code block corresponding to the label area of the target label among the plurality of code blocks of the target LL subband as a transmission target code block. Specifically, the determination unit 26 sets a code block including at least a part of the label area of the target label among a plurality of code blocks of the target LL subband as a transmission target code block.
  • the label area of the target label may be referred to as the target label area.
  • label 0 is the target label.
  • code blocks 570b, 570c, 570e, and 570f corresponding to the label area L0 are set as transmission target code blocks.
  • a code block corresponding to a label area of another label will be a transmission target code block later.
  • step s23 the image encoding unit 24b generates encoded image data 504 including the compression-encoded transmission target code block.
  • step s24 the image encoding unit 24b generates a bit stream 505 including the encoded image data 504.
  • the bit stream 505 is transmitted from the transmission unit 25a to the gateway 3.
  • the IoT terminal 2 notifies the gateway 3 of the label number obtained by the labeling process, and notifies the gateway 3 of the current target label. 31 and 32, the label numbers 0 and 1 are notified to the gateway 3 and the current target label is the label 0 to the gateway 3.
  • the reception unit 30a of the gateway 3 receives the bit stream 505 from the IoT terminal 2 in step s13.
  • the encoded image data 504 included in the bit stream 505 is stored in the second memory 324.
  • WT decoded data 511 obtained by decompressing the encoded image data 504 by the image decoding unit 31 b is stored in the first memory 323.
  • the gateway 3 sets a variable LN indicating the current target label to a value notified from the IoT terminal 2, that is, 0.
  • the first processing unit 321 generates input data to the recognition data generation unit 320.
  • the first processing unit 321 uses the target LL subband corresponding to the target label region from the first memory 323 to set a portion corresponding to the target label region in the target LL subband as a recognition target image.
  • the first processing unit 321 reads the restored code blocks 570b, 570c, 570e, and 570f corresponding to the label area L0 that is the target label area from the first memory 323.
  • the first processing unit 321 inputs the inverse transformation non-target data 521 configured by the read WT decoding block to the recognition data generation unit 320.
  • the recognition data generation unit 320 generates the recognition data 512 based on the inverse transformation non-target data 521.
  • the inverse transformation non-target data 521 is input to the color space transformation unit 3202 without being subjected to inverse wavelet transformation.
  • the recognition data 512 indicates an image corresponding to the target label area in the target LL subband image.
  • step s17 the image recognition unit 33 performs image recognition processing on the image indicated by the recognition data 512 generated in step s16.
  • the data processing unit 32 sets the target label as an end label.
  • step s18 the data processing unit 32 performs an end determination for determining whether or not to end the process for the target main image.
  • FIG. 33 is a flowchart showing an example of end determination.
  • the data processing unit 32 detects the detection target object for all labels determined by the IoT terminal 2 based on the past image recognition processing result in the image recognition unit 33. Whether or not is detected. That is, the data processing unit 32 specifies, for each label determined by the IoT terminal 2, whether or not a detection target has been detected from the code block corresponding to the label area of the label.
  • the data processing unit 32 determines to end the processing for the target main image. Thereby, the end determination ends.
  • the data processing unit 32 determines whether or not the value of the variable LN indicating the target label matches the maximum value max1.
  • the maximum value max1 means the largest label among the labels determined by the IoT terminal 2 excluding the end label.
  • the maximum value max1 means the maximum value among the labels of the candidate for processing. For example, as in the example of FIGS. 31 and 32, when the IoT terminal 2 defines labels 0 and 1 and the current end label (label where the detection target is detected) is 0, the maximum value max1 is 1. . Further, for example, when the IoT terminal 2 determines labels 0 to 3 and the current end label is 0, 3, the maximum value max1 is 2. When no end label exists, the maximum value max1 matches the maximum value among the labels determined by the IoT terminal 2.
  • step s183 If it is determined in step s183 that the value of the variable LN matches the maximum value max1, in step s184, the data processing unit 32 determines whether or not the value of the variable LV indicating the decomposition level of the target LL subband is 1. Determine. If the data processing unit 32 determines that the value of the variable LV is 1, that is, if the target LL subband is the LL1 subband, the data processing unit 32 executes step s182 and determines to end the processing for the target main image. .
  • step s184 If it is determined in step s184 that the value of the variable LV is not 1, the data processing unit 32 decreases the value of the variable LV by one in step s185.
  • step s186 the data processing unit 32 sets the value of the variable LN to the minimum value min1.
  • the minimum value min1 means the smallest label among the labels of the candidates for processing. For example, as shown in FIGS. 31 and 32, when the IoT terminal 2 defines labels 0 and 1 and the label of the current end label area is 0, the minimum value min1 is 1.
  • the minimum value min1 is 1.
  • the minimum label among the candidate labels to be processed is set as a new target label.
  • the minimum value min1 matches the minimum value among the labels determined by the IoT terminal 2.
  • step s187 the data processing unit 32 determines to continue the process on the target main image. Thereby, the end determination ends.
  • step s183 when the value of the variable LN is not the maximum value max1, in step s188, the data processing unit 32 changes the value of the variable LN to the next value. Specifically, the data processing unit 32 changes the value of the variable LN to a label having a value larger than the current value of the variable LN among the labels of the candidates for processing. Thereafter, step s187 is executed, and the continuation of the process for the target main image is determined.
  • step s19 the gateway 3 notifies the end of the process on the target main image. Is sent to the IoT terminal 2.
  • the gateway 3 uses the encoded image data 590 indicating the detection target image (gateway side ROI) in which the detection target is captured in step s20 after step s19.
  • a bit stream 519 including the signal is generated by the transcoder 34.
  • a bit stream 519 including image encoded data 590 indicating a plurality of detection object images in which the plurality of detection objects are respectively captured is generated.
  • the gateway 3 transmits the generated bit stream 519 and the recognition result information 514 about the target main image generated by the image recognition unit 33 from the communication unit 35 to the cloud server 5. Thereby, the process for the target main image ends.
  • step s20 is not executed, and the process for the target main image ends.
  • the recognition result information 514 including information indicating that the detection target object has not been detected is transmitted from the communication unit 35 to the cloud server 5, the processing on the target main image may be terminated.
  • step s18 when the data processing unit 32 determines to continue the process on the target main image, the gateway 3 executes step s11 again to determine the designated data.
  • step s11 the designated data is determined based on the values currently indicated by the variables LN and LV.
  • the first processing unit 321 specifies the code block corresponding to the label area of the target label currently indicated by the variable LN among the LL3 subbands. Data.
  • the first processing unit 321 when the target decomposition level currently indicated by the variable LV is other than the maximum decomposition level, that is, when the first processing unit 321 is smaller than 3, the first processing unit 321 generates an LH subband and an HL subband whose decomposition level is one higher than the target decomposition level.
  • the code block corresponding to the label area of the target label in the band and the HH subband is designated data.
  • the gateway 3 uses the LL subband whose decomposition level is one higher than the target decomposition level.
  • the code block corresponding to the target label area is stored in the first memory 323.
  • the inverse wavelet transform unit 3201 of the recognition data generation unit 320 of the gateway 3 performs inverse wavelet transform on the code blocks of the LL3 subband, the LH3 subband, the HL3 subband, and the HH3 subband, thereby generating the LL2 subband. Code blocks can be restored.
  • the inverse wavelet transform unit 3201 restores the code block of the LL1 subband by performing inverse wavelet transform on the code blocks of the LL2 subband, the LH2 subband, the HL2 subband, and the HH2 subband.
  • the gateway 3 determines the designated data as described above, and thereby the data necessary for restoring the code block corresponding to the target label area in the target LL subband. Can be obtained. That is, the gateway 3 can obtain a code block corresponding to the target label area in the LL subband, the LH subband, the HL subband, and the HH subband that are one higher than the target decomposition level. Therefore, the gateway 3 can restore the code block corresponding to the label area of the target label in the LL subband of the target decomposition level by determining the designation data as described above.
  • the first processing unit 321 performs the decomposition level 3 LH3 subband, HL3 subband, and HH3 subband.
  • the code block corresponding to the label area L1 of label 1 in the band is designated data.
  • the gateway 3 has already received the code block corresponding to the label region L1 of the label 1 in the LL3 subband from the IoT terminal 2 and stores it in the first memory 323.
  • FIG. 34 is a diagram showing oblique lines for code blocks corresponding to the label regions L0 and L1 in each subband in the diagram shown in FIG.
  • gateway 3 executes step s11, in step s12, gateway 3 generates instruction information 518 for notifying the designated data determined in step s11. Then, the gateway 3 transmits the generated instruction information 518 to the IoT terminal 2.
  • the IoT terminal 2 Upon receiving the instruction information 518 in step s21, the IoT terminal 2 determines a transmission target code block based on the received instruction information 518 and the mask data 502 in step s22.
  • the determination unit 26 of the IoT terminal 2 specifies the code block specified by the instruction information 518 based on the mask data 502. And the determination part 26 makes code blocks other than the code block already transmitted to the gateway 3 among the code blocks identified as a transmission object code block. Thereby, the amount of data transmitted from the IoT terminal 2 to the gateway 3 can be reduced.
  • the designation data designated by the instruction information 518 is a code block corresponding to the label area L1 in the LL3 subband, and four code blocks 570b and 570c corresponding to the label area L0. 570e.
  • the determination unit 26 specifies four code blocks 570d, 570e, 570g, and 570h corresponding to the label region L1 based on the mask data 502. Then, the determination unit 26 sets three code blocks 570d, 570g, and 570h other than the already transmitted code block 570e among the identified code blocks 570d, 570e, 570g, and 570h as transmission target code blocks.
  • the determination unit 26 Based on the mask data 502, the code block is specified. And the determination part 26 makes the code block except the code block already transmitted to the gateway 3 among the identified code blocks a transmission object code block.
  • the IoT terminal 2 executes steps s23 and s24 in the same manner as described above. After step s24, when the IoT terminal 2 receives the end notification from the gateway 3 in step s25, the process for the target main image ends. On the other hand, when the IoT terminal 2 receives the instruction information 518 from the gateway 3 without receiving an end notification after the step s24 (step s21), the IoT terminal 2 executes the step s22 in the same manner as described above, and thereafter To work.
  • step s15 when the current target decomposition level is the maximum decomposition level, that is, 3, the first processing unit 321 corresponds to the target label area in the LL3 subband from the first memory 323, as described above. Read the code block (WT decoding block). Then, the first processing unit 321 inputs the inverse transformation non-target data 521 configured by the read WT decoding block to the recognition data generation unit 320.
  • WT decoding block Read the code block
  • the first processing unit 321 inputs the inverse transformation non-target data 521 configured by the read WT decoding block to the recognition data generation unit 320.
  • the first processing unit 321 reads from the first memory 323 an LL subband, an LH subband, and an HL subband that are one higher decomposition level than the target decomposition level. And the code block corresponding to the target label area in the HH subband. Then, the first processing unit 321 inputs the reverse conversion target data 522 configured by the read code block to the recognition data generation unit 320.
  • step s16 the recognition data generation unit 320 generates the recognition data 512.
  • the inverse transformed non-target data 521 is input to the recognition data generation unit 320 in the immediately preceding step s15, the inverse transformed non-target data 521 is not subjected to the inverse wavelet transform, and the color space transform unit, as described above. Input to 3202.
  • the inverse wavelet transformation unit 3201 performs inverse wavelet transformation on the inverse transformation target data 522.
  • the inverse wavelet transform unit 3201 generates a code block composed of wavelet coefficients corresponding to the target label region in the LL subband at the target decomposition level.
  • This code block is stored in the first memory 323 as LL data 520.
  • the first memory 323 stores a code block corresponding to the target label area in the LL subband at the target decomposition level.
  • the target decomposition level is 2
  • the code block corresponding to the target label area in the LL2 subband is stored
  • the target decomposition level is 1, the code block corresponding to the target label area in the LL1 subband is stored. Is done.
  • the code block generated by the inverse wavelet transform unit 3201 is input to the color space transform unit 3202.
  • Data output from the color space conversion unit 3202 is input to the DC level shift unit 3203.
  • the data output from the DC level shift unit 3203 becomes the recognition data 512.
  • the gateway 3 executes steps s17 and s18 in the same manner as described above. Thereafter, the gateway 3 operates in the same manner.
  • the image processing system 4 that performs the above operation performs the same processing as described above using the new main image as the target main image.
  • the image processing system 4 sets a new frame image to be shot after the certain frame image when the processing on the certain frame image is finished with a certain frame image as a target main image.
  • the process starts as a target main image.
  • the image processing system 4 may perform processing for each frame on a frame image captured by the camera 20 or may perform processing for each of a plurality of frames.
  • the LL subbands are subjected to image recognition processing in descending order of decomposition level.
  • the LL subbands are subjected to image recognition processing in descending order of resolution.
  • the detection target is highly likely to be detected even from an LL subband having a high resolution level (an LL subband having a low resolution).
  • an LL subband having a low resolution On the other hand, for a detection target with a small range in the main image, there is a possibility that the detection target cannot be detected from the LL subband with a high decomposition level.
  • LL subbands are processed in descending order of resolution level, so that LL subbands with a large amount of data and low decomposition levels (LL subbands with high resolution) are used.
  • the main image it is possible to detect a detection object having a large captured range. In the example of FIGS.
  • the detection target corresponding to the label region L0 of the label 0 can be detected from, for example, the LL3 subband
  • the decomposition level of the LL3 subband is used to detect the detection target.
  • Higher resolution levels of LL2 and LL1 subbands are not used. Therefore, the amount of data transmitted from the IoT terminal 2 to the gateway 3 can be reduced, and the image recognition process in the gateway 3 can be simplified.
  • FIGS. 29 and 30 Note that the operation of the image processing system 4 shown in FIGS. 29 and 30 is merely an example, and the image processing system 4 may perform processing different from the processing shown in FIGS.
  • the gateway 3 may use the encoded image data 504 from the IoT terminal 2 in processing other than the image recognition processing.
  • the IoT terminal 2 transmits the mask data 502 to the gateway 3, but the mask data 502 need not be transmitted. In this case, as shown in FIG. 35, the IoT terminal 2 does not require the mask encoding unit 23a.
  • the determination unit 26 of the IoT terminal 2 may determine the transmission target code block without using the instruction information 518. In this case, the processing of the IoT terminal 2 is simplified. Further, since the gateway 3 does not need to generate the instruction information 518, the processing of the gateway 3 is simplified.
  • the IoT terminal 2 determines the transmission target code block without using the instruction information 518, when the process for the target main image starts, for example, the ROI of the maximum expansion mask indicated by the mask data 502 in the LL3 subband.
  • a code block 570 corresponding to the corresponding part (hereinafter sometimes referred to as an ROI corresponding block) is transmitted as a transmission target code block.
  • the gateway 3 performs image recognition processing using the received ROI-compatible block of the LL3 subband as the recognition data 512.
  • the processing for the target main image ends.
  • the IoT terminal 2 uses the LH3 subband, the HL3 subband, and the HH3 subband because the ROI-compatible block image of the LL2 subband is the recognition target image.
  • a band ROI-compatible block is transmitted as a transmission target code block.
  • the gateway 3 performs inverse wavelet transform on the ROI corresponding block of the LL3 subband and the ROI corresponding block of the LH3 subband, the HL3 subband, and the HH3 subband that have already been received, and performs the LL2 subband ROI corresponding block is generated. Then, the gateway 3 performs image recognition processing using the ROI-compatible block of the LL2 subband as the recognition data 512.
  • the processing for the target main image ends.
  • the IoT terminal 2 uses the LH2 subband, the HL2 subband, and the HH2 subband because the ROI-compatible block image of the LL1 subband is the recognition target image.
  • a band ROI-compatible block is transmitted as a transmission target code block.
  • the gateway 3 performs inverse wavelet transform on the ROI compatible block of the LL2 subband that has already been generated and the ROI compatible block of the LH2 subband, the HL2 subband, and the HH2 subband, and performs LL1 subband conversion.
  • a ROI-compatible block of the band is generated.
  • the gateway 3 performs image recognition processing using the ROI-compatible block of the LL1 subband as the recognition data 512. Thereafter, the processing for the target main image ends.
  • the operation of the image processing system 4 when the IoT terminal 2 determines a transmission target code block without using the instruction information 518 is not limited to the above example.
  • the determination unit 26 of the IoT terminal 2 may determine the transmission target code block without using the mask data 502. In this case, the processing of the IoT terminal 2 is simplified. When determining the transmission target code block without using the mask data 502, the IoT terminal 2 transmits the code block specified by the instruction information 518 from the gateway 3 as it is as the transmission target code block.
  • the gateway 3 When the IoT terminal 2 determines a transmission target code block without using the mask data 502, when the gateway 3 starts processing the target main image, for example, all code blocks of the LL3 subband are set as designated data. Instruction information 518 is transmitted. The IoT terminal 2 that has received the instruction information 518 transmits all code blocks of the LL3 subband as transmission target code blocks. The gateway 3 performs image recognition processing using all the code blocks of the received LL3 subband as the recognition data 512.
  • the gateway 3 When the gateway 3 detects the detection target object, the processing for the target main image ends. On the other hand, if the detection object is not detected, the gateway 3 designates all code blocks of the LH3 subband, the HL3 subband, and the HH3 subband as designated data in order to use the LL2 subband image as the recognition target image. Information 518 is transmitted. The IoT terminal 2 that has received the instruction information 518 transmits all code blocks of the LH3 subband, the HL3 subband, and the HH3 subband as transmission target code blocks.
  • the gateway 3 performs inverse wavelet transform on all the LL3 subband code blocks that have already been received and the LH3 subband, HL3 subband, and all code blocks of the HH3 subband, and performs inverse wavelet transform on the LL2 subband. Generate all code blocks. Then, the gateway 3 performs image recognition processing using all code blocks of the LL2 subband as the recognition data 512.
  • the gateway 3 When the gateway 3 detects the detection target object, the processing for the target main image ends. On the other hand, if the detection object is not detected, the gateway 3 designates all code blocks of the LH2 subband, the HL2 subband, and the HH2 subband as designated data in order to use the LL1 subband image as the recognition target image. Information 518 is transmitted. The IoT terminal 2 that has received the instruction information 518 transmits all code blocks of the LH2 subband, the HL2 subband, and the HH2 subband as transmission target code blocks.
  • the gateway 3 performs inverse wavelet transform on the generated LL2 subband all code blocks and the LH2 subband, HL2 subband, and all code blocks of the HH2 subband to perform inverse wavelet transform on all codes of the LL1 subband. Generate a block. Then, the gateway 3 performs image recognition processing using all code blocks of the LL1 subband as recognition data 512. Thereafter, the processing for the target main image ends.
  • the IoT terminal 2 determines a transmission target code block without using the mask data 502, and when the gateway 3 does not use the mask decoded data 510 for generating the instruction information 518, the IoT terminal 2 does not have to generate the mask data 502.
  • the reduced image memory 22a, the mask generation unit 23, and the mask encoding unit 24a are not necessary. Therefore, the configuration of the IoT terminal 2 is simplified, and the current consumption of the IoT terminal 2 is reduced.
  • FIG. 37 is a diagram illustrating an example of the configuration of the recognition data generation unit 320 in this case.
  • the recognition data generation unit 320 shown in FIG. 37 further includes a specifying unit 3204 as compared with the recognition data generation unit 320 shown in FIG.
  • the specifying unit 3204 specifies a code block (ROI-compatible block) corresponding to the ROI-corresponding portion of the maximum expansion mask indicated by the mask decoded data 510 in all code blocks of the LL subband output from the DC level shift unit 3203. .
  • the specifying unit 3204 inputs the specified ROI-compatible block as recognition data 512 to the image recognition unit 33.
  • the gateway 3 designates based on the mask decoding data 510 indicating the maximum expansion mask generated by the IoT terminal 2. Data may be determined. For example, the first processing unit 321 of the gateway 3 sequentially performs the above-described grouping process and labeling process on the ROI corresponding part of the maximum expansion mask indicated by the mask decoded data 510. Thus, a label area is set for the ROI corresponding part. Then, in step s11, when the target decomposition level is the maximum decomposition level, that is, the first processing unit 321 uses the maximum expansion mask (see FIG. 31) subjected to the labeling process, the target label in the LL3 subband.
  • the code block corresponding to the label area is identified. Then, the first processing unit 321 uses the identified code block as designated data, and generates instruction information 518 for identifying the position of each code block of the designated data. At this time, the first processing unit 321 excludes, from the specified data, code blocks stored in the first memory 323 among the specified code blocks.
  • the first processing unit 321 uses the maximum expansion mask that has been subjected to the labeling process to use the LH subband, HL, whose decomposition level is one higher than the target decomposition level.
  • the code block corresponding to the label area of the target label in the subband and the HH subband is specified.
  • the first processing unit 321 uses the identified code block as designated data, and generates instruction information 518 for identifying the position of each code block of the designated data.
  • the first processing unit 321 excludes the code blocks stored in the first memory 323 from the specified data among the specified code blocks, as in the case where the target decomposition level is 3.
  • the determination unit 26 of the IoT terminal 2 uses the instruction from the gateway 3 without using the mask data 502.
  • the code block specified by the information 518 is directly used as a transmission target code block.
  • the operation of the image processing system 4 when the IoT terminal 2 determines a transmission target code block without using the mask data 502 is not limited to the above example.
  • the image recognition processing is performed in the order of the decomposition level.
  • the image recognition processing may be performed in the order of the labels. It is a flowchart which shows an example of the completion
  • the data processing unit 32 specifies whether or not a detection target object has been detected for the target label. That is, the data processing unit 32 specifies whether or not a detection target has been detected in the image recognition process of the immediately preceding step s17.
  • the data processing unit 32 determines whether or not the value of the variable LN matches the maximum value max2.
  • step s194 If the data processing unit 32 determines in step s194 that the value of the variable LN matches the maximum value max2, the data processing unit 32 determines to end the processing for the target main image. Thereby, the end determination ends.
  • step s194 determines in step s194 that the value of the variable LN does not match the maximum value max2
  • the data processing unit 32 increases the value of the variable LN by one in step s195.
  • a label that is one larger than the current target label becomes the target label.
  • step s196 the data processing unit 32 sets the value of the variable LV to the maximum decomposition level, that is, 3.
  • the target decomposition level becomes the maximum decomposition level.
  • step s197 the data processing unit 32 determines to continue the process on the target main image. Thereby, the end determination ends.
  • step s191 If it is specified in step s191 that the detection target is not detected for the target label, the data processing unit 32 determines whether or not the value of the variable LV is 1 in step s192. When the value of the variable LV is 1, that is, when the target decomposition level is 1, the data processing unit 32 executes the above-described step s194 and operates similarly thereafter. On the other hand, if the value of the variable LV is not 1, that is, if the target decomposition level is greater than 1, the data processing unit 32 decreases the value of the variable LV by 1 in step s193. As a result, a decomposition level that is one smaller than the current target decomposition level becomes the target decomposition level. Thereafter, the data processing unit 32 executes step s197 and determines to continue the process on the target main image.
  • the image recognition process is performed on the code block corresponding to the label region L0 in the LL3 subband.
  • an image recognition process is performed on the code block corresponding to the label region L0 in the LL2 subband.
  • an image recognition process is performed on the code block corresponding to the label region L0 in the LL1 subband.
  • the image recognition process is performed on the code block corresponding to the label region L1 in the LL3 subband.
  • image recognition processing is performed on the code block corresponding to the label region L1 in the LL2 subband.
  • image recognition processing is performed on the code block corresponding to the label region L1 in the LL1 subband.
  • the data processing unit 32 of the gateway 3 recognizes the LH subband, the HL subband, or the HH subband as it is.
  • the data 512 may be used, or the integrated subband obtained by integrating the LH subband, the HL subband, and the HH subband having the same resolution level may be used as the recognition data 512.
  • the data processing unit 32 obtains, for example, an average value of coefficients existing at the same position in the LH subband, the HL subband, and the HH subband.
  • the obtained average value is set as a coefficient at the same position in the integrated subband.
  • the data processing unit 32 may use the maximum value among the coefficients existing at the same position in the LH subband, the HL subband, and the HH subband as the coefficient at the same position in the integrated subband. Note that the method of integrating the LH subband, the HL subband, and the HH subband is not limited to this.
  • FIG. 39 is a diagram illustrating an example of a code block correspondence relationship between a plurality of subbands.
  • hatched portions are code blocks 570 corresponding to each other.
  • the code blocks 570 corresponding to each other among the plurality of subbands indicate the same part of the main image.
  • One code block 570HH3 indicates the same part of the main image.
  • the four code blocks 570LH2 shaded in the LH2 subband, the four code blocks 570HL2 shaded in the HL2 subband, and the four code blocks 570HH2 shaded in the HH2 subband indicate the same part of the main image. Yes.
  • the 16 code blocks 570LH1 hatched in the LH1 subband, the 16 code blocks 570HL1 hatched in the HL1 subband, and the 16 code blocks 570HH1 hatched in the HH1 subband are the same part of the main image. Is shown.
  • one code block 570 of each subband of the decomposition level 3 is hatched, four code blocks 570 of each subband of the decomposition level 2 are hatched, and 16 codes of the hatched lines of each subband of the decomposition level 1 Block 570 indicates the same part of the main image.
  • the gateway 3 stores CB correspondence information indicating the correspondence of code blocks between a plurality of subbands as shown in FIG.
  • the gateway 3 determines the designated data using the CB correspondence information
  • the code block 570LL3 of the LL3 subband indicated by hatching in FIG. 39 is designated.
  • Instruction information 518 is transmitted as follows.
  • the IoT terminal 2 that has received the instruction information 518 transmits the code block 570LL3 as a transmission target code block.
  • the gateway 3 performs image recognition processing using the received code block 570LL3 as the recognition data 512.
  • the processing for the target main image ends.
  • the gateway 3 does not detect the detection target, the LH3 subband code block 570LH3 and the HL3 subband code block indicated by hatching in FIG. 39 are used to process the LL2 subband.
  • the instruction information 518 is transmitted using the code block 570HH3 of 570HL3 and the HH3 subband as designated data.
  • the IoT terminal 2 that has received the instruction information 518 transmits the code blocks 570LH3, 570HL3, and 570HH3 as transmission target code blocks.
  • the gateway 3 performs inverse wavelet transform on the data 522 to be inversely composed of the code block 570LL3 already received and the code blocks 570LH3, 570HL3, and 570HH3, and the LL2 sub corresponding to the code blocks 570LL3, 570LH3, 570HL3, and 570HH3 Four code blocks 570 of the band are generated.
  • the gateway 3 performs image recognition processing using the generated four code blocks as the recognition data 512.
  • the gateway 3 When the gateway 3 detects the detection target object, the processing for the target main image ends. On the other hand, when the detection object is not detected, the gateway 3 uses the LL1 subband as a processing target, and the four code blocks 570LH2 and HL2 subbands of the LH2 subband, which are indicated by hatching in FIG.
  • the instruction information 518 is transmitted using the four code blocks 570HL2 and the four code blocks 570HH2 of the HH2 subband as designated data.
  • the IoT terminal 2 that has received this instruction information 518 transmits four code blocks 570LH2, four code blocks 570HL2, and four code blocks 570HH2 as transmission target code blocks.
  • the gateway 3 performs inverse wavelet transform on the inverse transformation target data 522 including the four code blocks of the generated LL2 subband, the four code blocks 570LH2, the four code blocks 570HL2, and the four code blocks 570HH2, Sixteen code blocks of the LL1 subband corresponding to four code blocks 570 of each subband of decomposition level 2 are generated. Then, the gateway 3 performs image recognition processing using the generated 16 code blocks as recognition data 512. Thereafter, the processing for the target main image ends.
  • the operation of the image processing system 4 when the gateway 3 determines the designated data using the CB correspondence information is not limited to the above example.
  • FIG. 40 is a diagram illustrating an example of the configuration of the IoT terminal 2 of the image processing system 4 according to the present modification.
  • the IoT terminal 2 according to this modification example is different from the IoT terminal 2 shown in FIG. 3 described above in that the motion detection unit 27 and the reduction unit are replaced with the mask generation unit 23 and the mask encoding unit 24a.
  • An image encoding unit 24c is provided.
  • the main image is a frame image of a moving image shot by the camera 20.
  • the main image may be referred to as a frame image.
  • the reduced image may be referred to as a reduced frame image.
  • the reduced image encoding unit 24c included in the encoding device 24 reads the reduced image data 501 from the reduced image memory 22a. Then, the reduced image encoding unit 24c hierarchically encodes the read reduced image data 501.
  • FIG. 41 is a diagram illustrating an example of the configuration of the reduced image encoding unit 24c.
  • the reduced image encoding unit 24c has the same configuration as the image encoding unit 24b (see FIG. 5).
  • the reduced image encoding unit 24c includes a hierarchization unit 650, an encoding unit 656, and a bit stream generation unit 659.
  • the hierarchizing unit 650 generates hierarchized data from the reduced image data 501.
  • the encoding unit 656 generates reduced image encoded data 507 by compressing and encoding the hierarchical data.
  • the bit stream generation unit 659 generates a bit stream 508 including the reduced image encoded data 507 and transmits it to the transmission unit 25a.
  • the transmission unit 25 a transmits the bit stream 508 to the gateway 3.
  • the hierarchization unit 650 includes a DC level shift unit 651, a color space conversion unit 652, a tiling unit 653, a wavelet conversion unit 654, and a quantization unit 655.
  • the operations of the DC level shift unit 651, the color space conversion unit 652, the tiling unit 653, the wavelet conversion unit 654, and the quantization unit 655 are the DC level shift unit 241, color space conversion unit 242, and image space conversion unit 242, respectively.
  • the operations are the same as those of the tiling unit 243, the wavelet transform unit 244, and the quantization unit 245.
  • the encoding unit 656 includes a coefficient bit modeling unit 657 and an entropy encoding unit 658.
  • the operations of the coefficient bit modeling unit 657 and the entropy encoding unit 658 are the same as the operations of the coefficient bit modeling unit 247 and the entropy encoding unit 248 of the image encoding unit 24b, respectively.
  • the coefficient bit modeling unit 247 of the image encoding unit 24b performs the bit modeling process on the transmission target code block among the plurality of code blocks constituting the quantized wavelet coefficient data
  • the coefficient bit modeling unit 657 performs a bit modeling process on all of a plurality of code blocks constituting the quantized wavelet coefficient data.
  • the bit stream generation unit 659 operates in the same manner as the bit stream generation unit 249 of the image encoding unit 24b.
  • the bit stream generation unit 659 packetizes the reduced image encoded data 507, and generates a bit stream 508 including the packet data generated thereby and additional information. As a result, data indicating a reduced image obtained by reducing the main image is transmitted from the IoT terminal 2 to the gateway 3.
  • the motion detector 27 detects the motion of the object in the main image shooting range (the shooting range of the camera 20) based on the reduced image data 501 in the reduced image memory 22a. For example, the motion detection unit 27 generates a difference image (binary image) indicating the difference between the reduced frame images based on the reduced image data 501, and detects the motion of the object in the shooting range based on the difference image. can do. At least a part of the motion detection unit 27 may be realized by a hardware circuit that does not require software to realize the function. Further, at least a part of the motion detection unit 27 may be a functional block realized by a computer executing a program. Hereinafter, the movement of the object in the shooting range of the main image may be simply referred to as “movement”.
  • the motion detection unit 27 can control the stop and activation of the operations of the main image memory 22b, the image encoding unit 24b, and the determination unit 26.
  • the motion detection unit 27 stops the operations of the main image memory 22b, the image encoding unit 24b, and the determination unit 26 when no motion is detected.
  • the motion detection unit 27 stops supplying the operation clock to the main image memory 22b, the image encoding unit 24b, and the determination unit 26, thereby causing the main image memory 22b, the image encoding unit 24b, and The operation of the determination unit 26 is stopped.
  • the motion detection unit 27 operates the main image memory 22b, the image encoding unit 24b, and the determination unit 26 when detecting motion.
  • the motion detection unit 27 detects a motion, for example, by supplying an operation clock to the main image memory 22b, the image encoding unit 24b, and the determination unit 26, the main image memory 22b, the image encoding unit 24b, The determination unit 26 is operated.
  • the motion detection unit 27 when the motion detection unit 27 does not detect a motion, the operations of the main image memory 22b, the image encoding unit 24b, and the determination unit 26 are stopped. Therefore, when the motion detector 27 does not detect motion, the transmitter 25a of the IoT terminal 2 does not transmit the bit stream 505. For example, the IoT terminal 2 does not transmit the bit stream 505 when there is no person in a space (for example, a house) where the IoT terminal 2 is provided. Thereby, the power consumption of the IoT terminal 2 is reduced.
  • the IoT terminal 2 is configured not to transmit the bit stream 505 by stopping the operations of the main image memory 22b, the image encoding unit 24b, and the determination unit 26.
  • the motion detection unit 27 does not detect motion
  • the operations of the main image memory 22b, the image encoding unit 24b, and the determination unit 26 are not stopped, and the bit stream 505 generated by the image encoding unit 24b is transmitted. 25a may not be transmitted.
  • the power consumption of the IoT terminal 2 is reduced.
  • the power consumption of the IoT terminal 2 is further reduced by stopping the operations of the main image memory 22b, the image encoding unit 24b, and the determination unit 26.
  • the processing of the IoT terminal 2 is compared with the case where the motion is detected based on the main image data 500. Can be simplified. Therefore, the power consumption of the IoT terminal 2 is reduced.
  • the mask data 502 is not generated, so that the processing of the IoT terminal 2 can be simplified. Therefore, the power consumption of the IoT terminal 2 is reduced.
  • FIG. 42 is a diagram illustrating an example of the configuration of the gateway 3 of the image processing system 4 according to the present modification.
  • the gateway 3 according to the present modification includes a reduced image decoding unit 31c instead of the mask decoding unit 31a in the gateway 3 shown in FIG. Is further provided.
  • the reduced image decoding unit 31c included in the decoding device 31 extracts reduced image encoded data 507 from the bit stream 508 received by the receiving unit 30a. Then, the reduced image decoding unit 31c decompresses and decodes the extracted reduced image encoded data 507 to generate reduced image decoded data 525.
  • the reduced image decoded data 525 may be referred to as reduced image data 525.
  • FIG. 43 is a diagram illustrating an example of the configuration of the reduced image decoding unit 31c.
  • the reduced image decoding unit 31c includes a bitstream analysis unit 700, a decoding unit 701, an inverse quantization unit 704, an inverse wavelet transform unit 705, a tiling unit 706, a color space conversion unit 707, and A DC level shift unit 708 is provided.
  • the bit stream analysis unit 700 analyzes the bit stream 508 from the IoT terminal 2 and extracts reduced image encoded data 507 and additional information from the bit stream 508.
  • the bit stream analysis unit 700 outputs the extracted reduced image encoded data 507 to the decoding unit 701.
  • the extracted additional information is used by the decoding unit 701, the inverse quantization unit 704, and the like.
  • the decoding unit 701 performs predetermined decompression decoding on the reduced image encoded data 507.
  • the predetermined decompression decoding is a process opposite to the compression encoding in the encoding unit 656 in FIG. 40 except for the code amount control.
  • Quantized wavelet coefficients are generated from the reduced image encoded data 507 by predetermined decompression decoding.
  • the decoding unit 701 includes an entropy decoding unit 702 and a coefficient bit modeling unit 703.
  • the operations of the entropy decoding unit 702 and the coefficient bit modeling unit 703 are the same as the operations of the entropy decoding unit 312 and the coefficient bit modeling unit 313 (see FIG. 23) of the image decoding unit 31b, respectively.
  • the inverse quantization unit 704 performs inverse quantization on the quantized wavelet coefficient data generated by the decoding unit 701 to generate wavelet coefficient data.
  • the inverse quantization corresponds to a process opposite to the quantization in the quantization unit 655 of FIG.
  • the inverse wavelet transform unit 705 performs inverse wavelet transform (specifically, inverse discrete wavelet transform) on the wavelet coefficient data generated by the inverse quantization unit 704 to provide data indicating a decomposition level 0 wavelet image, that is, the original. Reduced image data indicating a reduced image that is an image is generated.
  • inverse wavelet transform specifically, inverse discrete wavelet transform
  • the tiling unit 706 performs a process of combining a plurality of tiles with the reduced image data generated by the inverse wavelet transform unit 705.
  • the color space conversion unit 707 performs a process opposite to the process in the color space conversion unit 652 of FIG. 41 on the reduced image data processed by the tiling unit 706.
  • the DC level shift unit 708 converts the DC level of the reduced image data processed by the color space conversion unit 707 as necessary.
  • the reduced image data processed by the DC level shift unit 708 is input to the mask generation unit 36 as reduced image data 525.
  • the mask generation unit 36 generates and outputs mask data 526 for specifying a region of interest in the main image (frame image) based on the reduced image data 525.
  • the mask generation unit 36 generates mask data 526 by a method similar to the method by which the mask generation unit 23 shown in FIG. Thereby, mask data 526 indicating the maximum development mask as shown in FIG. 18 is generated.
  • the mask data 526 is input to the data processing unit 32.
  • At least a part of the mask generation unit 36 may be realized by a hardware circuit that does not require software to realize the function. Further, at least a part of the mask generation unit 36 may be a functional block realized by a computer executing a program.
  • a portion where a moving object is captured is set to ROI.
  • an image of a motion region in which an object moves in the shooting range of the main image is set as the ROI. Therefore, when there is no movement of the object in the imaging range, the ROI corresponding portion does not appear in the maximum development mask indicated by the mask data 526.
  • a ROI corresponding portion appears in the maximum development mask indicated by the mask data 526. Therefore, whether or not there is a movement of an object in the imaging range can be specified based on whether or not the ROI corresponding portion appears in the maximum development mask indicated by the mask data 526.
  • whether or not the motion detection unit 27 of the IoT terminal 2 has detected a motion can be specified based on whether or not the ROI corresponding portion appears in the maximum development mask indicated by the mask data 526.
  • mask data 526 may be used in generating mask data 515 used in the transcoder 34.
  • the mask data 526 is generated by the gateway 3 having a high processing capability, and thus the mask data 526 having higher accuracy than the mask data 526 generated by the IoT terminal 2 having a low processing capability is generated. be able to.
  • FIG. 44 is a diagram illustrating an example of the operation of the gateway 3 of the image processing system 4 that performs processing on a target main image (frame image to be processed).
  • the first processing unit 321 uses reduced image data 525 indicating a reduced image obtained by reducing the processing target frame image. It is confirmed whether or not an ROI corresponding portion appears in the maximum development mask (hereinafter, sometimes referred to as a target maximum development mask) indicated by the generated mask data 526.
  • the ROI corresponding part does not appear in the target maximum expansion mask
  • the first processing unit 321 determines that the motion detection unit 27 of the IoT terminal 2 has not detected the motion, and ends the process on the processing target frame image. .
  • the motion detection unit 27 does not detect motion, the operations of the main image memory 22b, the image encoding unit 24b, and the determination unit 26 are stopped. Therefore, the IoT terminal 2 cannot transmit the encoded image data 504 to the gateway 3. Therefore, in this case, the process for the frame image to be processed ends.
  • the first processing unit 321 executes step s11 to determine the designated data.
  • step s11 according to this modification, mask data 526 is used.
  • the first processing unit 321 sequentially performs the above-described grouping processing and labeling processing on the ROI corresponding portion of the target maximum development mask. Thus, a label area is set for the ROI corresponding part. Then, the first processing unit 321 sets the LL3 subband as the target LL subband and the label 0 as the target label. The first processing unit 321 sets the value of the variable LV to 3 and sets the value of the variable LN to 0. Then, the first processing unit 321 specifies a code block corresponding to the label region of label 0 in the LL3 subband, using the target maximum expansion mask (see FIG. 31) that has been subjected to the labeling process. Then, the first processing unit 321 uses the identified code block as designated data, and generates instruction information 518 for identifying the position of each code block of the designated data. This instruction information 518 is transmitted to the IoT terminal 2 in step s12.
  • the first processing unit 321 specifies a code block corresponding to the label area of the target label in the LL3 subband. Then, the first processing unit 321 uses the identified code block as designated data, and generates instruction information 518 for identifying the position of each code block of the designated data. At this time, the first processing unit 321 excludes, from the specified data, code blocks stored in the first memory 323 among the specified code blocks.
  • the first processing unit 321 performs the processing in the LH subband, the HL subband, and the HH subband that are one higher decomposition level than the target decomposition level.
  • the code block corresponding to the label area of the label is specified.
  • the first processing unit 321 uses the identified code block as designated data, and generates instruction information 518 for identifying the position of each code block of the designated data.
  • the first processing unit 321 excludes the code blocks stored in the first memory 323 from the specified data among the specified code blocks, as in the case where the target decomposition level is 3.
  • the operation of the other gateway 3 is the same as described above.
  • the IoT terminal 2 can receive the instruction information 518 when the main image memory 22b, the image encoding unit 24b, and the determination unit 26 are operating.
  • the IoT terminal 2 receives the instruction information 518 (step s21)
  • the code block specified by the received instruction information 518 is directly used as a transmission target code block (step s22). Thereafter, the IoT terminal 2 operates in the same manner.
  • the motion detection unit 27 detects motion, all operations of the main image memory 22b, the image encoding unit 24b, and the determination unit 26 are stopped, but the main image memory 22b and the image encoding unit 24b are stopped. And at least 1 operation
  • the mask generation unit 23 shown in FIG. 3 described above may include a motion detection unit 27.
  • FIG. 46 is a diagram showing a configuration of the IoT terminal 2 in this case.
  • the motion detection unit 27 included in the mask generation unit 23 stops the operations of the main image memory 22b, the image encoding unit 24b, and the determination unit 26 when no motion is detected.
  • the motion detection unit 27 operates the main image memory 22b, the image encoding unit 24b, and the determination unit 26 when detecting motion.
  • the motion detection unit 27 shown in FIG. 46 not only detects the motion, but also specifies a motion region in which the object moves in the main image shooting range. Then, the mask generation unit 23 uses the image of the motion region specified by the motion detection unit 27 (also referred to as an image showing a moving object) as an ROI, and generates mask data 502 for specifying the ROI.
  • the motion detection unit 27 When the motion region is specified, the motion detection unit 27 generates a difference image indicating a difference between the reduced frame images based on the reduced image data 501, for example.
  • This difference image is a binary image.
  • the motion detection unit 27 identifies a high-luminance region with a pixel value of 1 in the difference image. Then, the motion detection unit 27 sets a portion corresponding to the specified high luminance region in the shooting range as the motion region. Then, the motion detection unit 27 generates mask data 502 for specifying an image (ROI) of the specified motion region in the same manner as described above.
  • ROI image
  • a portion corresponding to a motion region (also referred to as a region where a moving object exists) in the imaging range becomes a ROI corresponding portion.
  • the determination unit 26 that determines a transmission target code block based on the mask data 502 sets a code block (a code block indicating a moving object) corresponding to a motion region in the imaging range as a transmission target code block.
  • the gateway 3 transmits the bit stream 519 including the image data to the cloud server 5, but the bit stream 519 may not be transmitted to the cloud server 5. That is, the gateway 3 may transmit only the recognition result information 514 that is metadata to the cloud server 5.
  • the transcoder 34 is unnecessary as shown in FIG. 47, and the second memory 324 and the second processing unit 322 of the data processing unit 32 are unnecessary as shown in FIG.
  • FIG. 47 is a diagram showing a configuration of the gateway 3 when the gateway 3 (see FIG. 42) according to the first modification described above does not transmit the bit stream 519.
  • the transcoder 34 may not be provided for the gateway 3 according to another example shown in FIG.
  • the gateway 3 since the gateway 3 does not transmit the image data to the cloud server 5, the possibility that the image data generated by the IoT terminal 2 flows to the Internet can be reduced. Therefore, for example, it is possible to reduce the possibility that the privacy of a person shown in the image data generated by the IoT terminal 2 is infringed.
  • the IoT terminal 2 packetizes and transmits the image encoded data 504, the image encoded data 504 may be transmitted without being packetized. This eliminates the need for packet header generation. Further, among the zero-length packet information, code block inclusion information, zero bit plane information, encoding pass number information, and code block code amount information included in the packet header, it is necessary for decoding the packet header at the gateway 3 Generation of zero-length packet information and code block content information becomes unnecessary.
  • the bit stream generation unit 249 of the image encoding unit 24b generates a bit stream 505 including non-packetized image encoded data 504 and additional information. In this additional information, zero bit plane information, encoding pass number information, and code block code amount information are included without being encoded, instead of the packet header.
  • the IoT terminal 2 since the image encoded data 504 is not packetized in the IoT terminal 2 according to the present modification, the IoT terminal 2 does not need to packetize data. Thereby, the process of the IoT terminal 2 is simplified. Therefore, the power consumption of the IoT terminal 2 can be reduced, and the transmission delay of data transmitted from the IoT terminal 2 can be reduced.
  • the processing is further simplified. Therefore, the power consumption of the IoT terminal 2 can be further reduced, and the transmission delay of data transmitted from the IoT terminal 2 can be further reduced.
  • the bit stream analysis unit 310 of the image decoding unit 31b does not need to decode the packet header. Therefore, the processing of the gateway 3 can be simplified.
  • the image recognition unit 33 can detect the detection target from an image having a low resolution.
  • the encoded image data 504 indicating an image with a high resolution may be required. In some cases, the resolution of the image indicated by the digitized data 504 may be low. For example, when the gateway 3 performs streaming transmission of a moving image having a high resolution to the cloud server 5 based on the encoded image data 504, the encoded image data 504 indicating an image having a high resolution is required.
  • the image processing system 4 adjusts bits to be transmitted to the gateway 3 among a plurality of bits constituting the binary value of the quantized wavelet coefficient in the code block generated by the IoT terminal 2.
  • the resolution of the image indicated by the encoded image data 504 can be adjusted.
  • the image processing system 4 according to this modification will be described in detail.
  • the number of bits constituting the binary value of the quantized wavelet coefficient corresponding to the pixel of the image is represented by L (L is an integer of 2 or more).
  • the encoding unit 256 of the image encoding unit 24b included in the IoT terminal 2 sets the L bits constituting the quantized wavelet coefficient in the transmission target code block determined by the determining unit 26 from the most significant (MSB).
  • the first bit position is a bit position that is one bit higher than the bit position where 1 appears for the first time.
  • the encoding unit 256 positions the lower bit position by the number of M bits (M is an integer of 1 or more) from the first bit position as the second bit position.
  • M is an integer of 1 or more
  • the encoding unit 256 sets the bits from the most significant bit to the second bit position among the L bits as target bits, and sets the other bits as non-target bits.
  • the encoding unit 256 compresses and encodes the target bit of the L bits.
  • the encoding unit 256 performs bit-plane encoding and entropy encoding only on the target bit. Then, the encoding unit 256 truncates the non-target bits of the L bits and does not perform compression encoding. As a result, for each quantized wavelet coefficient in the transmission target code block, only the compression-coded target bits of the L bits constituting it are transmitted to the gateway 3.
  • the encoding unit 256 determines a target bit with a virtual bit position that is one bit higher than the most significant bit as the first bit position. In addition, when the bit position lower by the number of M bits from the first bit position exceeds the least significant LSB (LSB), the second bit position is set to the least significant.
  • LSB least significant LSB
  • 49 and 50 are diagrams illustrating examples of target bits to be compression-encoded.
  • the binary value of the quantized wavelet coefficient shown in FIG. 49 is composed of “000 1101 0111”.
  • the target bits are 6 bits “000110” and the non-target bits are 5 bits “10111”.
  • the encoding unit 256 compresses and encodes only the target bit “000110”.
  • the binary value of the quantized wavelet coefficient shown in FIG. 50 is composed of “010 0011 0101”.
  • the target bits are 4 bits “0100”, and the non-target bits are 7 bits “0110101”.
  • the encoding unit 256 compresses and encodes only the target bit “0100”.
  • the value of M that determines the target bit to be compression-encoded is determined by the gateway 3, for example.
  • the gateway 3 determines the value of M in accordance with the processing performed using the image encoded data 504. Therefore, the value of M is a value corresponding to the processing performed by the gateway 3 using the encoded image data 504.
  • the value of M is set to 3 as shown in the examples of FIGS. To do.
  • the gateway 3 sets the value of M to 5, for example, when processing is performed using the encoded image data 504 indicating an image with a high resolution.
  • the gateway 3 notifies the IoT terminal 2 of the set value of M.
  • the encoding unit 246 of the IoT terminal 2 determines a target bit based on the value of M notified from the gateway 3.
  • the decoding unit 311 of the image decoding unit 31b decompresses and decodes the encoded image data 504 from the IoT terminal 2 to quantize the transmission target code block. Restore wavelet coefficients. Then, the decoding unit 311 adds a bit to the target bit constituting the restored quantized wavelet coefficient to generate an L-bit quantized wavelet coefficient.
  • the number of target bits constituting the restored quantized wavelet coefficient is N (an integer of 1 or more).
  • the decoding unit 311 adds (L ⁇ N) 0s to the target bit as lower bits than the target bit constituting the restored quantized wavelet coefficient. Thereby, a quantized wavelet coefficient composed of L bits is obtained.
  • the gateway 3 can specify the bit number N of the target bit based on the value of M and the zero bit plane information transmitted from the IoT terminal 2.
  • the quantized wavelet coefficient composed of L bits generated by the decoding unit 311 is input to the inverse quantization unit 314.
  • FIG. 51 and 52 are diagrams showing an example of quantized wavelet coefficients composed of L bits, which are generated by the decoding unit 311.
  • FIG. FIG. 51 shows an example in which the IoT terminal 2 transmits the target bit “000110” shown in FIG. 49 described above.
  • FIG. 52 shows an example in which the IoT terminal 2 transmits the target bit “0100” shown in FIG. 50 described above.
  • the decoding unit 311 restores the quantized wavelet coefficient including the 6-bit target bit “000110”
  • the decoding unit 311 adds five 0s as lower bits than the target bit “000110”.
  • a bit is added to the target bit “000110”.
  • a quantized wavelet coefficient consisting of 11 bits (L bits) “000 1100 0000” is obtained.
  • the decoding unit 311 restores the quantized wavelet coefficient composed of the 4-bit target bit “0100”
  • the decoding unit 311 sets seven 0s as bits lower than the target bit “0100”. An additional bit is added to the target bit “0100”. As a result, a quantized wavelet coefficient consisting of 11 bits (L bits) “010 0000 0000” is obtained.
  • the information indicated by the 11-bit quantized wavelet coefficients generated by the decoding unit 311 can be understood by comparing the IoT terminal with FIGS. 49 and 50 and FIGS. Compared with the information indicated by the 11-bit quantized wavelet coefficient generated at 2, the information of the lower bits is lost. Therefore, the resolution of the image indicated by the WT decoded data 511 output from the inverse quantization unit 314 is low.
  • the present modification from the highest bit among the L bits constituting the quantized wavelet coefficient corresponding to the pixel in the transmission target code block, the first value determined by the value of M according to the processing in the gateway 3. Only the bits up to the 2 bit position are compression encoded and transmitted to the gateway 3. Therefore, the amount of data transmitted from the IoT terminal 2 to the gateway 3 can be adjusted according to the processing in the gateway 3. Therefore, the power consumption of the IoT terminal 2 can be reduced, and the transmission delay of data transmitted from the IoT terminal 2 can be reduced.
  • the resolution of the image used in the gateway 3 can be easily adjusted by adjusting the value of M that determines the target bit. That is, by increasing the value of M, the resolution of the image used in the gateway 3 can be increased, and by decreasing the value of M, the resolution of the image used in the gateway 3 can be decreased. it can.
  • the IoT terminal 2 may compress and encode all the L bits constituting the quantized wavelet coefficient and transmit it to the gateway 3.
  • the gateway 3 performs processing using an image with a high resolution when there is an upper bit received in the past as a target bit and stored in the first memory 323 in the L bits constituting the quantized wavelet coefficient.
  • the gateway 3 generates L-bit quantized wavelet coefficients with less information loss by adding the lower bits received later to the upper bits in the first memory 323. Can do. Therefore, the gateway 3 can perform processing using an image with high resolution.
  • the IoT terminal 2 does not transmit the already transmitted data again, the processing of the IoT terminal 2 is simplified.
  • the gateway 3 instructs the IoT terminal 2 to transmit only the necessary remaining lower 5 bits, that is, “10111”.
  • the IoT terminal 2 compresses and decodes only the lower 5 bits “10111” and transmits the result to the gateway 3.
  • the gateway 3 adds the newly received lower order “10111” to the higher order “000110” in the first memory 323 to generate a quantized wavelet coefficient consisting of 11 bits “000 1101 0111”. .
  • the gateway 3 instructs the IoT terminal 2 to transmit only the necessary remaining 5 bits “01101” (5 bits from the bit position next to the second bit position). Upon receiving this instruction, the IoT terminal 2 compresses and decodes only 5 bits “01101” and transmits the result to the gateway 3.
  • the gateway 3 adds the newly received 5-bit “01101” to the lower order with respect to the upper order “0100” in the first memory 323, and further adds two 0s to form the 11-bit “010 0011”. Generate quantized wavelet coefficients consisting of 0100 ′′.
  • FIG. 53 is a diagram illustrating an example of the configuration of the image encoding unit 24b of the IoT terminal 2 according to the present modification.
  • FIG. 54 is a diagram illustrating an example of the configuration of the image decoding unit 31b of the gateway 3 according to the present modification.
  • the image encoding unit 24b according to the present modification further includes a layer division processing unit 250 in the image encoding unit 24b illustrated in FIG. 5 described above.
  • the layer division processing unit 250 can multi-layer the bit stream 505 output from the bit stream generation unit 249. In the bit stream 505, data is arranged in units of code blocks.
  • the layer division processing unit 250 divides the image encoded data 504 included in the bit stream 505 into a plurality of layers, and the data of at least one of the plurality of layers is divided. A bit stream 505a including the output is output.
  • the layer division processing unit 250 can output the bitstream 505 as it is without making it multi-layered. In this case, the layer division processing unit 250 outputs the bit stream 505 as it is as the bit stream 505a.
  • the bit stream 505a generated by the layer division processing unit 250 is transmitted from the transmission unit 25a to the gateway 3.
  • the layer division processing unit 250 may be realized by a hardware circuit that does not require software to realize the function. Further, at least a part of the layer division processing unit 250 may be a functional block realized by a computer executing a program.
  • the image decoding unit 31b further includes a layer synthesis processing unit 315 in the image decoding unit 31b shown in FIG.
  • the layer composition processing unit 315 includes data of a plurality of layers for the same subband included in the bit stream 505a.
  • a bit stream 505b that is not multi-layered, that is, a bit stream 505b in which data is arranged in units of code blocks.
  • the layer composition processing unit 315 receives a bit stream 505a (bit stream 505) that is not multi-layered from the IoT terminal 2 and a bit stream 505a that includes only one layer of data. If so, the bit stream 505a is output as it is as the bit stream 505b.
  • the bit stream analysis unit 310 analyzes the bit stream 505b in the same manner as described above, and extracts the encoded image data 504a and additional information from the bit stream 505b.
  • the encoded image data 504a is data obtained by hierarchically encoding at least a part of the main image data, like the encoded image data 504.
  • the bit stream analysis unit 310 outputs the extracted encoded image data 504a to the decoding unit 311 and the data processing unit 32.
  • Each of the decoding unit 311 and the data processing unit 32 processes the encoded image data 504a in the same manner as the processing for the encoded image data 504. Note that when the gateway 3 receives the bitstream 505a (bitstream 505) that is not multi-layered from the IoT terminal 2, the image encoded data 504a is the image encoded data 504 generated by the IoT terminal 2. Match.
  • FIG. 55 is a diagram illustrating an example of the configuration of the layer division processing unit 250.
  • the layer division processing unit 250 includes a memory 251, a layer division control unit 252, a multiplexing unit 253, and a priority table 254.
  • the priority table 254 stores priorities set for each of a plurality of subbands constituting the wavelet plane. The priority of each subband is set according to the decomposition level of the subband. In the layer division processing unit 250, the bit stream 505 is multi-layered based on the priorities in the priority table 255.
  • the layer division control unit 252 stores the bit stream 505 generated by the bit stream generation unit 249 in the memory 251.
  • the layer division control unit 252 reads the encoded image data 504 included in the bit stream 505 from the memory 251 and divides the read encoded image data 504 into a plurality of layers when the bit stream 505 is converted into a multi-layer. To do. Then, the layer division control unit 252 outputs data of at least one layer among the plurality of layers to the multiplexing unit 253.
  • the multiplexing unit 523 multiplexes the data output from the layer division control unit 252 to generate and output a bit stream 505a including data of at least one layer.
  • the layer division control unit 252 reads the bit stream 505 from the memory 251 and outputs the bit stream 505 to the multiplexing unit 253 as it is when the bit stream 505 is not multi-layered.
  • the multiplexing unit 253 outputs the input bit stream 505 as it is as the bit stream 505a. Whether or not the IoT terminal 2 multi-layers the bit stream 505 is specified by instruction information 518 from the gateway 3.
  • FIG. 56 is a diagram showing an example of priorities set for each subband.
  • priority 4 is set for the LL3 subband
  • priority 3 is set for the LH3 subband and the HL3 subband.
  • priority 2 is set for the HH3 subband, LH2 subband, and HL2 subband
  • priority 1 is set for the HH2 subband, LH1 subband, and HL1 subband.
  • a priority 0 is set for the HH1 subband. Note that the priority value of each subband is not limited to the example of FIG.
  • the layer division control unit 252 performs a bit shift process on each code block included in the encoded image data 504 when the bit stream 505 is converted into a multi-layer.
  • the bit shift process will be described in detail below.
  • the code block to be explained is called a target code block.
  • the layer division processing unit 252 first acquires the priority set for the subband to which the target code block belongs from the priority table 254. For each coefficient of the target code block, the layer division control unit 252 bit-shifts the L-bit data constituting the coefficient by the same number of bits as the acquired priority. Thereby, bit shift processing is performed on the target code block.
  • the layer division control unit 252 bit-shifts the L-bit data constituting the coefficient by 4 bits in the same direction for each coefficient of the target code block.
  • the layer division control unit 252 bit-shifts the L-bit data constituting the coefficient by 2 bits in the same direction for each coefficient of the target code block. To do. Since the priority set for the HH1 subband is 0, each coefficient of the target code block is actually a bit even if bit shift processing is performed on the target code block belonging to the HH1 subband. Not shifted.
  • the code block on which the bit shift processing has been performed may be referred to as a shifted code block.
  • the layer division control unit 252 When the layer division control unit 252 performs the bit shift process on each code block included in the encoded image data 504, the layer division control unit 252 performs a layer division process that divides each shifted code block into a plurality of layers.
  • FIG. 57 is a diagram for explaining an example of the layer division processing.
  • FIG. 57 shows data 5700 of L bits (11 bits in the example of FIG. 57) constituting the coefficient (bit-shifted coefficient) of the code block that has been subjected to the shift processing.
  • the numbers 0 to 10 shown in the L-bit data 5700 indicate the bit position of each bit in the data 570. Number 0 indicates LSB and number 10 indicates MSB.
  • L-bit data 5700 constituting the coefficient of the code block belonging to the LL3 subband is bit-shifted by 4 bits.
  • the L-bit data 5700 constituting the coefficients of the code block belonging to the LH3 subband and the HL3 subband are bit-shifted by 3 bits.
  • the L-bit data 5700 constituting the coefficients of the code blocks belonging to the HH3 subband, the LH2 subband, and the HL2 subband are bit-shifted by 2 bits.
  • the L-bit data 5700 constituting the coefficients of the code blocks belonging to the HH2 subband, LH1 subband and HL1 subband are bit-shifted by 1 bit.
  • the L-bit data 5700 constituting the coefficient of the code block belonging to the HH1 subband is not bit-shifted.
  • the bit shift of the LL3 subband from the least significant bit position of the Lbit data 5700 constituting the coefficient of the HH1 subband is performed for the code block that has been subjected to the shift processing. Numbers from 0 to 14 are assigned to the most significant bit positions of the L-bit data 5700 constituting the generated coefficients.
  • the layer division control unit 252 sets the bits having the bit positions from the 12th to the 14th in the L-bit data 5700 constituting the coefficient of the code block after the bit shift process as the layer 0 and the bit positions from the 9th to 11th.
  • Bit 1 is layer 1.
  • the layer division control unit 252 sets the bits from the 6th to 8th bit positions in the L-bit data 5700 constituting the coefficient of the code block after the bit shift process as the layer 2 and the bit positions from the 3rd bit. Bits up to 5 are layer 3.
  • the layer division control unit 252 sets the bits having the bit positions from 0 to 2 to the layer 4 in the L-bit data 5700 constituting the coefficient of the code block after the bit shift processing.
  • the layer division control unit 252 When the encoded image data 504 is divided into a plurality of layers as described above, the layer division control unit 252 outputs the data of the layer to be transmitted to the gateway 3 among the plurality of layers to the multiplexing unit 253. .
  • the layer transmitted from the IoT terminal 2 to the gateway 3 is specified by the instruction information 518 from the gateway 3.
  • the gateway 3 can freely instruct the IoT terminal 2 which layer of the plurality of layers should transmit data.
  • the multiplexing unit 253 multiplexes the data from the layer division control unit 252 and generates a bit stream 505 a including layer data to be transmitted to the gateway 3. Note that the method of dividing the L-bit data 5700 into a plurality of layers is not limited to the example of FIG.
  • FIG. 58 is a diagram illustrating an example of the configuration of the layer composition processing unit 315.
  • the layer composition processing unit 315 includes a memory 316 and a layer composition control unit 317.
  • the layer composition control unit 317 stores the bit stream 505a from the IoT terminal 2 in the memory 316. Also, when the bit stream 505a received by the gateway 3 is not multi-layered, the layer composition control unit 317 outputs the bit stream 505a as it is as the bit stream 505b. In addition, the layer composition control unit 317 is a case where the bit stream 505a received by the gateway 3 is multi-layered, and when the bit stream 505a includes only one layer of data, The stream 505a is output as it is as the bit stream 505b.
  • the layer composition control unit 317 is the same when the bit stream 505a received by the gateway 3 is multi-layered and the bit stream 505a includes data of a plurality of layers. A plurality of layers of data for subbands are combined to generate and output a bitstream 505b that is not multi-layered (a bitstream 505b in which data is arranged in units of code blocks as in the bitstream 505). .
  • the gateway 3 transmits the instruction information 518 using, for example, layer 0 data of each code block of the LL3 subband as designated data.
  • the IoT terminal 2 that has received the instruction information 518 generates encoded image data 504 using each code block of the LL3 subband as a transmission target code block.
  • the layer division processing unit 250 multi-layers the bit stream 505 including the encoded image data 504, and generates layer 0 data of each code block of the LL3 subband. Then, the layer division processing unit 250 generates a bit stream 505a including layer 0 data of each code block of the LL3 subband, and transmits the bit stream 505a to the gateway 3.
  • the layer composition processing unit 315 outputs the bit stream 505a received from the IoT terminal 2 as it is as the bit stream 505b. Then, the gateway 3 uses the layer 0 data of each code block of the LL3 subband included in the bit stream 505b as the recognition data 512. At this time, eight 0s are added as lower bits to the data of each coefficient so that the data of each coefficient of the LL3 subband becomes L-bit data (see FIGS. 51 and 52 described above). . The gateway 3 performs image recognition processing on the recognition data 512.
  • the processing for the target main image ends.
  • the gateway 3 does not detect the detection target, the data in the layers 0 and 1 of the code blocks of the LH3 subband, the HL3 subband, and the HH3 subband are used to process the LL2 subband.
  • the instruction information 518 is transmitted using the layer 1 data of each code block of the LL3 subband as designated data.
  • the IoT terminal 2 that has received the instruction information 518 generates encoded image data 504 using the code blocks of the LL3 subband, the LH3 subband, the HL3 subband, and the HH3 subband as transmission target code blocks.
  • the layer division processing unit 250 multi-layers the bit stream 505 including the encoded image data 504, and layers 0 and 1 of each code block of the LH3 subband, the HL3 subband, and the HH3 subband. And data of layer 1 of each code block of the LL3 subband. Then, the layer division processing unit 250 includes a bitstream including data of layers 0 and 1 of each code block of the LH3 subband, HL3 subband, and HH3 subband, and data of layer 1 of each code block of the LL3 subband. 505a is generated and transmitted to the gateway 3. When transmitting the multi-layered bit stream 505a, the IoT terminal 2 sequentially transmits data from the higher layer.
  • the IoT terminal 2 transmits the layer 0 data of the LH3 subband, the HL3 subband, and the HH3 subband, and then transmits the data of the layer 1 of the LL3 subband, the LH3 subband, the HL3 subband, and the HH3 subband. Send.
  • the layer composition control unit 317 of the layer composition processing unit 315 stores the bit stream 505a received from the IoT terminal 2 in the memory 316.
  • the layer synthesis control unit 317 then reads out and synthesizes data of a plurality of layers in the same subband from the memory 316, and generates a single-layered bit stream 505b.
  • the layer composition control unit 317 reads out data of layers 0 and 1 of the LH3 subband from the memory 316. Then, the layer synthesis control unit 317 synthesizes the read data of the LH3 subband layers 0 and 1, and generates data transmitted by the IoT terminal 2 in the LH3 subband in which the data is arranged in units of code blocks. .
  • this data is referred to as single layer LH3 subband data.
  • the layer composition control unit 317 reads the data of the layers 0 and 1 of the HL3 subband from the memory 316. Then, the layer synthesis control unit 317 synthesizes the read data of layers 0 and 1 of the HL3 subband, and generates data transmitted by the IoT terminal 2 in the HL3 subband in which the data is arranged in units of code blocks. .
  • this data is referred to as single layer HL3 subband data.
  • the layer synthesis control unit 317 reads the data of layers 0 and 1 of the HH3 subband from the memory 316. Then, the layer synthesis control unit 317 synthesizes the read data of layers 0 and 1 of the HH3 subband, and generates data transmitted by the IoT terminal 2 in the HH3 subband in which the data is arranged in code block units. .
  • this data is referred to as single-layered HH3 subband data.
  • the layer synthesis control unit 317 performs single layer LH3 subband data, single layer HL3 subband data, single layer HH3 subband data, and LL3 subband data.
  • a bit stream 505b including the code block layer 1 data is generated. In this bit stream 505b, data is arranged in units of code blocks.
  • the gateway 3 since the gateway 3 generates the single-layered bit stream 505b, the multi-layered bit stream 505a is transmitted from the IoT terminal 2 even when the multi-layered bit stream 505a is transmitted. Even when no bitstream 505a is transmitted, the decoding unit 311 having the same configuration can be used. Therefore, the configuration of the gateway 3 can be simplified.
  • the gateway 3 generates the single-layered bitstream 505b and then receives the layer 0 data of each code block 570 of the LL3 subband already received and each code block of the LL3 subband included in the bitstream 505b.
  • Inverse conversion target data 522 is generated, which is composed of the layer 1 data of 570 and the data of layers 0 and 1 of each code block of the LH3 subband, the HL3 subband, and the HH3 subband included in the bitstream 505b.
  • the gateway 3 adds as many 0s as lower bits to the data of each coefficient so that the data of each coefficient of the LL3 subband becomes L-bit data (FIG. 51, FIG. 51 described above). 52).
  • the gateway 3 performs inverse wavelet transform on the generated inverse transform target data 522, and performs image recognition processing using the data generated thereby as recognition data 512.
  • inverse wavelet transform when the inverse transformation target data 522 is subjected to inverse wavelet transformation, distortion may occur in an image indicated by data generated thereby, and the quality of the image may be deteriorated.
  • inverse wavelet transform when generating LL2 subband data using inverse wavelet transform, not only layer 0 data but also layer 1 data is used, so only layer 0 data is used. Compared with the case where it does, the quality of the image which the data produced
  • inverse wavelet transform may be performed using only layer 0 data. Further, the inverse wavelet transform may be performed using the data of layers 0 to 3, or the inverse wavelet transform may be performed using the data of layers 0 to 4.
  • the gateway 3 sets the data of layers 0 and 1 of the code blocks of the LH2 subband and the HL2 subband and the HH2 subband in order to process the LL1 subband.
  • the instruction information 518 is transmitted using the data of layer 1 of each code block of the band (the data of layer 0 does not exist in the HH2 subband) as designated data.
  • the IoT terminal 2 that has received the instruction information 518 generates encoded image data 504 using each code block of the LH2 subband, the HL2 subband, and the HH2 subband as a transmission target code block.
  • the layer division processing unit 250 multi-layers the bit stream 505 including the encoded image data 504, and the data of layers 0 and 1 of each code block of the LH2 subband and the HL2 subband, Layer 1 data of each code block of the HH2 subband is generated. Then, the layer division processing unit 250 generates a bit stream 505a including data of layers 0 and 1 of each code block of the LH2 subband and HL2 subband and data of layer 1 of each code block of the HH2 subband. To the gateway 3. At this time, the IoT terminal 2 transmits layer 0 data of the LH2 subband and the HL2 subband, and then transmits layer 1 data of the LH2 subband, the HL2 subband, and the HH2 subband.
  • the layer composition control unit 317 stores the bit stream 505a received from the IoT terminal 2 in the memory 316.
  • the layer synthesis control unit 317 then reads out and synthesizes data of a plurality of layers in the same subband from the memory 316, and generates a single-layered bit stream 505b.
  • the layer synthesis control unit 317 reads out the data of layers 0 and 1 of the LH2 subband from the memory 316. Then, the layer combination control unit 317 combines the read data of the LH2 subband layers 0 and 1, and generates data transmitted by the IoT terminal 2 in the LH2 subband in which the data is arranged in units of code blocks. .
  • this data is referred to as single layer LH2 subband data.
  • the layer composition control unit 317 reads the data of the layers 0 and 1 of the HL2 subband from the memory 316. Then, the layer synthesis control unit 317 synthesizes the read data of layers 0 and 1 of the HL2 subband, and generates data transmitted by the IoT terminal 2 in the HL2 subband in which the data is arranged in units of code blocks. .
  • this data is referred to as single layer HL2 subband data.
  • the layer synthesis control unit 317 then includes a single layer LH2 subband data, a single layered HL2 subband data, and a layer 1 data of each code block of the HH2 subband. 505b is generated. In this bit stream 505b, data is arranged in units of code blocks.
  • the gateway 3 After generating the single-layered bitstream 505b, the gateway 3 has already acquired the data of each code block of the LL2 subband and each of the LH2 subband and HL2 subband included in the bitstream 505b.
  • Inverse conversion target data 522 is generated, which is composed of the data of layers 0 and 1 of the code block and the data of layer 1 of each code block of the HH2 subband included in the bit stream 505b.
  • the gateway 3 adds as many 0s as lower bits to the data of each coefficient so that the data of each coefficient of the LL2 subband becomes L-bit data (FIG. 51, FIG. 51 described above). 52).
  • the gateway 3 performs inverse wavelet transform on the generated inverse transform target data 522, and performs image recognition processing using the data generated thereby as recognition data 512. Thereafter, the processing for the target main image ends.
  • the IoT terminal 2 can transmit data in units of layers, so that the power consumption of the IoT terminal 2 can be reduced.
  • the operation of the image processing system 4 when the bit stream 505 is multi-layered is not limited to the above example.
  • the gateway 3 may determine the designated data using the above-described CB correspondence information.
  • the information processing system 1 is used as an IoT system, but may be used as another system.
  • the image data is hierarchized based on JPEG2000.
  • the image data may be hierarchized based on other standards for hierarchizing image data in the same manner as subband division in JPEG2000. .

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

画像処理装置は、生成部、決定部、第1符号化部及び第1送信部を備える。決定部は、第1画像を示す階層化されたデータを生成する。決定部は、階層化されたデータから、所定の基準に基づいて、送信対象データを決定する。第1符号化部は、決定部で決定された送信対象データを圧縮符号化して第1符号化データを生成する。第1送信部は、第1符号化データを送信する。

Description

画像処理装置、画像処理システム、情報処理システム及び画像処理方法
 本発明は、画像処理に関する。
 特許文献1及び2には、画像処理に関する技術が開示されている。
特開2015-192321号公報 特開2003-219386号公報
 画像処理装置については、その消費電力の低減が望まれている。
 そこで、本発明は上述の点に鑑みて成されたものであり、画像処理装置の低消費電力化を図ることが可能な技術を提供することを目的とする。
 画像処理装置の一態様は、第1画像を示す階層化されたデータを生成する生成部と、前記階層化されたデータから、所定の基準に基づいて、送信対象データを決定する第1決定部と、前記第1決定部で決定された前記送信対象データを圧縮符号化して第1符号化データを生成する第1符号化部と、前記第1符号化データを送信する第1送信部とを備える。
 また、画像処理装置の一態様は、上記の画像処理装置である第1装置と通信する第2装置である画像処理装置であって、前記第1装置から送信される前記第1符号化データを受信する受信部と、前記第1符号化データに基づいて第2処理を行う第2処理部とを備える。
 また、画像処理システムの一態様は、上記の第1装置と、上記の第2装置とを備える。
 また、情報処理システムの一態様は、上記の画像処理システムと、前記画像処理システムの前記第2装置から前記第2処理の結果を受け取る第3装置と備える。
 また、画像処理方法の一態様は、画像処理装置での画像処理方法であって、画像を示す階層化されたデータを生成する工程と、前記階層化されたデータから、所定の基準に基づいて、送信対象データを決定する工程と、前記送信対象データを圧縮符号化して符号化データを生成する工程と、前記符号化データを送信する工程とを備える。
 画像処理装置の低消費電力化が可能となる。
情報処理システムの構成の一例を示す図である。 情報処理システムの適用例の一例を示す図である。 IoT端末の構成の一例を示す図である。 ゲートウェイの構成の一例を示す図である。 画像符号化部の構成の一例を示す図である。 ウェーブレット平面の一例を示す図である。 ウェーブレット平面の一例を示す図である。 ウェーブレット平面の一例を示す図である。 主画像の一例を示す図である。 ウェーブレット平面の一例を示す図である。 ウェーブレット平面とコードブロックの対応関係の一例を示す図である。 係数ビットモデリング部の動作の一例を説明するための図である。 係数ビットモデリング部の動作の一例を説明するための図である。 マスク生成部の構成の一例を示す図である。 原マスクの一例を示す図である。 展開マスクの一例を示す図である。 展開マスクの一例を示す図である。 展開マスクの一例を示す図である。 マスク生成部の動作の一例を示すフローチャートである。 マスク生成部の動作の一例を説明するための図である。 マスク生成部の動作の一例を説明するための図である。 最大展開マスクとコードブロックの対応関係の一例を示す図である。 画像復号化部の構成の一例を示す図である。 データ処理部の構成の一例を示す図である。 認識用データ生成部の構成の一例を示す図である。 画像認識部の構成の一例を示す図である。 画像認識部の動作の一例を説明するための図である。 トランスコーダの構成の一例を示す図である。 ゲートウェイの動作の一例を示すフローチャートである。 IoT端末の一例を示すフローチャートである。 ラベリング処理された最大展開マスクの一例を示す図である。 ラベリング処理されたLL3サブバンドマスクの一例を示す図である。 ゲートウェイの動作の一例を示すフローチャートである。 ライベ領域に対応するコードブロックの一例を示す図である。 IoT端末の構成の一例を示す図である。 IoT端末の構成の一例を示す図である。 認識用データ生成部の構成の一例を示す図である。 ゲートウェイの動作の一例を示すフローチャートである。 複数のサブバンドの間でのコードブロックの対応関係の一例を示す図である。 IoT端末の構成の一例を示す図である。 縮小画像符号化部の構成の一例を示す図である。 ゲートウェイの構成の一例を示す図である。 縮小画像復号化部の構成の一例を示す図である。 ゲートウェイの動作の一例を示すフローチャートである。 IoT端末の構成の一例を示す図である。 IoT端末の構成の一例を示す図である。 ゲートウェイの構成の一例を示す図である。 データ処理部の構成の一例を示す図である。 IoT端末の動作の一例を説明するための図である。 IoT端末の動作の一例を説明するための図である。 画像処理システムの動作の一例を説明するための図である。 画像処理システムの動作の一例を説明するための図である。 画像符号化部の構成の一例を示す図である。 画像復号化部の構成の一例を示す図である。 レイヤー分割処理部の構成の一例を示す図である。 各サブバンドに設定された優先度の一例を示す図である。 係数を構成する複数のビットがビットシフトされる様子の一例を示す図である。 レイヤー合成処理部の構成の一例を示す図である。
 <システム概要>
 図1は情報処理システム1の構成の一例を示す図である。図1に示されるように、情報処理システム1は、画像処理装置2,3を含む画像処理システム4と、情報処理装置5とを備える。画像処理装置2は、画像を示す圧縮符号化された符号化データを生成して画像処理装置3に送信する。画像処理装置3は、画像処理装置2からの符号化データに基づいて処理を行い、その処理の結果を情報処理装置5に送信する。情報処理装置5は、画像処理装置3からの情報を保存するとともに、保存した情報を使用して各種処理を行う。
 このような情報処理システム1は様々な場面で使用することができる。図2は、情報処理システム1の適用例を示す図である。図2の例では、情報処理システム1はIoT(Internet of Things)システム1として使用される。画像処理装置2、画像処理装置3及び情報処理装置5は、例えば、IoT端末2、ゲートウェイ3及びクラウドサーバ5としてそれぞれ使用される。ゲートウェイ3は、エッジゲートウェイとも呼ばれる。IoT端末2、ゲートウェイ3及びクラウドサーバ5のそれぞれは、例えば一種のコンピュータ装置である。
 図2に示されるように、IoTシステム1は、複数のIoT端末2及びゲートウェイ3を有する画像処理システム4と、クラウドサーバ5とを備える。複数のIoT端末2はゲートウェイ3に対してローカルネットワークで接続されている。ゲートウェイ3とクラウドサーバ5とはインターネットで接続されている。IoT端末2とゲートウェイ3とは無線で接続されてもよいし、有線で接続されてもよい。IoT端末2が、ゲートウェイ3と無線通信する場合には、IoT端末2とゲートウェイ3との間の通信規格としては、例えば、ZigBee(登録商標)が採用される。IoT端末2とゲートウェイ3との間の通信規格はこれに限られない。
 IoT端末2の処理能力は、例えば、ゲートウェイ3の処理能力よりも低くなっている。また、IoT端末2とゲートウェイ3との間のデータ伝送レートは、例えば、ゲートウェイ3とクラウドサーバ5との間のデータ伝送レートよりも低くなっている。IoT端末2とゲートウェイ3との間のデータ伝送レートは、ゲートウェイ3とクラウドサーバ5との間のデータ伝送レートの例えば数十分の一となっている。
 各IoT端末2は例えばカメラを有する。各IoT端末2は、カメラで撮影された画像の少なくとも一部を示す、圧縮符号化された符号化データを生成し、それをゲートウェイ3に送信する。IoT端末2は、例えば、スマートフォン等の携帯電話機、スマートグラス等のウェアラブル機器、ネットワークカメラ、あるいはテレビ電話機などである。複数のIoT端末2は、同じ種類の機器であってもよいし、互いに異なる種類の機器であってもよい。
 ゲートウェイ3は、例えば、IoT端末2からの符号化データに基づく画像に対する画像認識処理を行う。そして、ゲートウェイ3は、画像認識処理の結果を示す情報を、インターネットを通じてクラウドサーバ5に送信する。クラウドサーバ5は、ゲートウェイ3からの情報を記憶し、記憶した情報に基づいて、各種処理を実行する。ゲートウェイ3は、IoT端末2で撮影された画像の少なくとも一部を示すストリーミングデータをクラウドサーバ5に送信してもよい。この場合、クラウドサーバ5は、ゲートウェイ3からのストリーミングデータを表示してもよい。あるいは、クラウドサーバ5は、画像認識処理の結果を示す情報あるいはストリーミングデータを、別のゲートウェイ3あるいはIoT端末2に対してインターネットを通じて送信してもよい。この場合、別のゲートウェイ3あるいはIoT端末2は、クラウドサーバ5から受け取った情報あるいはストリーミングデータを表示してもよい。
 IoTシステム1は、例えば、スマートホームシステムで使用することができる。この場合、複数のIoT端末2及びゲートウェイ3は家の中に設けられ、クラウドサーバ5は当該家から離れた場所に設けられる。各IoT端末2は、カメラで家の中の様子を撮影して、その様子が写る画像を示す符号化データをゲートウェイ3に送信する。ゲートウェイ3は、IoT端末2からの符号化データに基づく画像に対して画像認識処理を行って、例えば家の中の人を検出する。そして、ゲートウェイ3は、その検出結果をクラウドサーバ5に送信する。これにより、例えば、家の中の子供あるいは高齢者の見守り及び管理が可能となる。
 またIoT端末2は、例えば、スマート工場で使用することができる。この場合、複数のIoT端末2及びゲートウェイ3は工場内に設けられ、クラウドサーバ5は当該工場から離れた場所に設けられる。各IoT端末2は、工場内の様子を撮影して、その様子が写る画像を示す符号化データをゲートウェイ3に送信する。ゲートウェイ3は、IoT端末2からの符号化データに基づく画像に対して画像認識処理を行って、例えば、荷物を配置することが可能な空きスペースを検出する。そして、ゲートウェイ3は、その検出結果をクラウドサーバ5に送信する。これにより、例えば、工場内での荷物の運搬管理が可能となる。
 なお、IoTシステム1が使用される場面は上記の限りではない。またIoT端末2は、それとは別体のカメラから画像データを受け取ってもよい。またIoT端末2で扱われる画像は、カメラで撮影された画像だけではなく、アニメーション画像であってもよい。
 以下では、情報処理システム1がIoTシステム1である場合を例に挙げて、情報処理システム1について詳細に説明する。
 <IoT端末の構成>
 図3はIoT端末2の構成の一例を示す図である。図3に示されるように、IoT端末2は、カメラ20、縮小部21、画像メモリ22、マスク生成部23、符号化装置24、通信部25及び決定部26等で構成される回路構成を備える。IoT端末2は、例えば電池駆動型の端末であって、当該IoT端末2の電源を出力する電池を備えている。
 カメラ20は、画像を撮影し、撮影した画像を示す画像データ500を出力する。画像データ500は複数の画素値で構成されている。カメラ20は、動画を撮影することも、静止画を撮影することも可能である。以後、カメラ20で撮影される画像を主画像と呼ぶことがある。また、カメラ20が出力する画像データ500を主画像データ500と呼ぶことがある。主画像は、静止画であってもよいし、動画のフレーム画像であってもよい。カメラ20が動画を撮影する場合には、フレーム画像を示す主画像データ500がカメラ20から順次出力される。
 縮小部21は、主画像を縮小して縮小画像を生成する。縮小画像は「小画像」とも呼ばれる。縮小部21は、例えば、縮小画像のサイズが主画像のサイズの1/2r倍(rは1以上の整数)となるように、主画像を縮小する。縮小部21は、主画像データ500に基づいて、縮小画像を示す縮小画像データ501を生成して出力する。縮小部21の少なくとも一部は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてよい。また、縮小部21の少なくとも一部は、コンピュータがプログラム(ソフトウェア)を実行することによって実現される機能ブロックであってもよい。
 画像メモリ22は、縮小画像メモリ22a及び主画像メモリ22bを備える。画像メモリ22はメモリ回路とも言える。縮小画像メモリ22aは、縮小部21から出力される縮小画像データ501を記憶する。縮小画像メモリ22aは縮小画像を記憶するとも言える。主画像メモリ22bは、カメラ20から出力される主画像データ500を記憶する。主画像メモリ22bは主画像を記憶するとも言える。縮小画像メモリ22a及び主画像メモリ22bは、互いに独立した別々のメモリであってもよいし、一つのメモリの記憶領域の一部が縮小画像メモリ22aとして使用され、当該記憶領域の他の部分が主画像メモリ22bとして使用されてもよい。
 マスク生成部23は、縮小画像メモリ22a内の縮小画像データ501に基づいて、主画像における関心領域を特定するためのマスクデータ502を生成して出力する。関心領域はROIとも呼ばれる。マスクデータ502の生成は、主画像に関する処理であるとも言える。マスク生成部23の少なくとも一部は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてよい。また、マスク生成部23の少なくとも一部は、コンピュータがプログラムを実行することによって実現される機能ブロックであってもよい。
 符号化装置24は、マスク符号化部24a及び画像符号化部24bを備える。符号化装置24の少なくとも一部は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてよい。また、符号化装置24の少なくとも一部は、コンピュータがプログラムを実行することによって実現される機能ブロックであってもよい。
 マスク符号化部24aは、マスク生成部23が出力するマスクデータ502を圧縮符号化してマスク符号化データ503を生成する。マスク符号化部24aは、マスクデータ502を、JPEG(Joint Photographic Experts Group)に準拠して圧縮符号化してもよいし、JPEG2000に準拠して圧縮符号化してもよいし、他の規格に基づいて圧縮符号化してもよい。
 画像符号化部24bは、主画像メモリ22b内の主画像データ500の少なくとも一部が階層符号化されたデータを画像符号化データ504として生成する。画像符号化部24bは、主画像データ500を階層化し、主画像を示す階層化されたデータ(以後、階層化データと呼ぶことがある)を生成する。そして画像符号化部24bは、階層化データの少なくとも一部を圧縮符号化し、それによって得られたデータを画像符号化データ504とする。画像符号化部24bは、生成した画像符号化データ504を含むビットストリーム505を生成して出力する。
 画像符号化部24bでは、例えば、JPEG2000に準拠した圧縮符号化方法が使用される。本例では、画像符号化部24bは、主画像データ500に対してウェーブレット変換(詳細には離散ウェーブレット変換)を実行して、主画像データ500を階層化する。以後、ウェーブレットをWTと表すことがある。
 通信部25は、ゲートウェイ3と通信を行う通信回路である。通信部25は、例えばZigBeeに準拠してゲートウェイ3と無線通信を行う。通信部25の通信方式はこれに限られない。通信部25は、ゲートウェイ3からの信号を受信する受信部25bと、ゲートウェイ3に信号を送信する送信部25aとを備える。送信部25aは、マスク符号化部24aで生成されるマスク符号化データ503をゲートウェイ3に送信する。また送信部25aは、画像符号化部24bで生成されるビットストリーム505をゲートウェイ3に送信する。受信部25bは、ゲートウェイ3が送信する後述の指示情報518を受信し、受信した指示情報518を決定部26に出力する。
 決定部26は、画像符号化部24bで得られる階層化データから、所定の基準に基づいて、送信対象データを決定する。本例では、所定の基準としては、IoT端末2での処理の結果と、ゲートウェイ3からの指示情報518とが使用される。IoT端末2での処理の結果として、例えば、マスク生成部23での処理の結果であるマスクデータ502が使用される。送信対象データの決定で使用される、IoT端末2での処理の結果は、マスクデータ502以外であってもよい。
 決定部26は、マスクデータ502と、受信部25bで受信される指示情報518とに基づいて、階層化データから、送信対象データを決定する。決定部26は、ゲートウェイ3からの新たな指示情報を受信部25bが受信すると、その新たな指示情報に基づいて送信対象データを決定する。決定部26は、決定した送信対象データを特定するための特定情報506を画像符号化部24bに出力する。画像符号化部24bは、特定情報506で特定される送信対象データを圧縮符号化し、それによって得られた符号化データを画像符号化データ504として出力する。この画像符号化データ504は送信部25aからゲートウェイ3に送信される。決定部26は、階層化データのうち、圧縮符号化する対象のデータを決定する処理を行うとも言える。決定部26の少なくとも一部は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてよい。また、決定部26の少なくとも一部は、コンピュータがプログラムを実行することによって実現される機能ブロックであってもよい。
 なお縮小部21には、実写画像を示す画像データではなく、アニメーション画像を示す画像データが入力されてもよい。またIoT端末2は、カメラ20を備えていなくてもよい。この場合、縮小部21には、IoT端末2とは別体のカメラから出力される画像データ(実写画像を示す画像データ)が入力されてよいし、アニメーション画像が入力されてよい。
 <ゲートウェイの構成>
 図4はゲートウェイ3の構成の一例を示す図である。図4に示されるように、ゲートウェイ3は、通信部30、復号化装置31、データ処理部32、画像認識部33、トランスコーダ34及び通信部35等で構成される回路構成を備える。ゲートウェイ3は、例えば商用電源を電源として動作を行う。ゲートウェイ3では、復号化装置31、データ処理部32、画像認識部33及びトランスコーダ34によって、IoT端末2からの画像符号化データ504に基づいて所定の処理を行う処理部が構成される。
 通信部30は、IoT端末2と通信を行う通信回路である。通信部30は、IoT端末2からの信号を受信する受信部30aと、IoT端末2に信号を送信する送信部30bとを備える。受信部30aは、IoT端末2から送信されるマスク符号化データ503及びビットストリーム505を受信する。送信部30bは、IoT端末2が送信すべきデータを当該IoT端末2に指示するための指示情報518を、IoT端末2に送信する。指示情報518はデータ処理部32で生成される。
 復号化装置31は、マスク復号化部31a及び画像復号化部31bを備えている。マスク復号化部31aは、受信部30aが受信するマスク符号化データ503を伸張復号化してマスク復号化データ510を生成する。この伸張復号化は、上述の図3に示されるマスク符号化部24aでの圧縮符号化と逆の処理である。マスク復号化データ510は、IoT端末2のマスク生成部23で生成されるマスクデータ502を復元したものである。
 画像復号化部31bは、受信部30aが受信するビットストリーム505から画像符号化データ504を抽出する。画像復号化部31bは、抽出した画像符号化データ504をデータ処理部32に出力する。また画像復号化部31bは、抽出した画像符号化データ504を伸張復号化して画像復号化データ511を生成する。この画像復号化データ511は、ウェーブレット逆変換(詳細には離散ウェーブレット逆変換)されていないデータである。つまり、画像復号化データ511は、IoT端末2の画像符号化部24bで生成される階層化データ(WT変換されたデータ)の少なくとも一部を復元したものである。画像復号化部31bは、受信部30aが新たなビットストリーム505を受信すると、その新たなビットストリーム505に含まれる画像符号化データ504を伸張復号化して画像復号化データ511を生成する。復号化装置31の少なくとも一部は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてよい。また、復号化装置31の少なくとも一部は、コンピュータがプログラムを実行することによって実現される機能ブロックであってもよい。以後、画像復号化データ511をWT復号化データ511と呼ぶことがある。
 データ処理部32は、画像復号化部31bで生成されるWT復号化データ511を後述の第1メモリに記憶する。またデータ処理部32は、画像復号化部31bからの画像符号化データ504を後述する第2メモリに記憶する。
 画像認識部33は、データ処理部32が生成する認識用データ512が示す認識対象画像に対して画像認識処理を行う。画像認識部33は、画像認識処理において、認識対象画像から、人全体あるいは人の顔等の検出対象物を検出する。なお、検出対象物はこの限りではない。画像認識部33は、データ処理部32で使用される、画像認識処理の結果を示す認識結果情報513を生成する。また画像認識部33は、ゲートウェイ3からクラウドサーバ5に送信される、画像認識処理の結果を示す認識結果情報514を、通信部35に出力する。
 データ処理部32は、第1メモリ内のデータに基づいて、画像認識部33で使用される認識用データ512を生成する。データ処理部32は、画像認識部33で生成される認識結果情報513に基づいて、トランスコーダ34で使用されるマスクデータ515を生成する。マスクデータ515は、第1メモリ内のデータに基づく画像におけるROI(関心領域)を特定するためのマスクデータである。言い換えれば、マスクデータ515は、IoT端末2から送信される画像符号化データ504に基づく画像におけるROIを特定するためのマスクデータである。データ処理部32は、認識結果情報513等に基づいて指示情報518を生成する。
 またデータ処理部32は、第1メモリ内のデータに基づいて、トランスコーダ34で使用されるトランスコーダ用復号化データ516を生成して出力する。またデータ処理部32は、第2メモリ内のデータに基づいて、トランスコーダ34で使用されるトランスコーダ用符号化データ517を生成して出力する。
 トランスコーダ34は、データ処理部32で生成されるマスクデータ515に基づいて、トランスコーダ用復号化データ516が示す画像からROIを特定し、特定したROIを示す、圧縮符号化されたデータをROI符号化データとして生成する。ゲートウェイ3は、マスクデータ515を変更することによって、様々な形状のROIを示すROI符号化データを生成することができる。トランスコーダ34は、生成したROI符号化データを含むビットストリーム519を生成して出力する。またトランスコーダ34は、トランスコーダ用符号化データ517を含むビットストリーム519を生成して出力する。
 通信部35は、クラウドサーバ5と通信を行う通信回路である。通信部35は、トランスコーダ34から出力されるビットストリーム519をクラウドサーバ5に送信する。また通信部35は、画像認識部33から出力される認識結果情報514をメタデータとしてクラウドサーバ5に送信する。なお、ゲートウェイ3は、認識結果情報514を圧縮符号化し、それによって得られた符号化データをクラウドサーバ5に送信してもよい。
 クラウドサーバ5は、ゲートウェイ3から受け取ったビットストリーム519に含まれる符号化データを伸張復号化し、それによって得られた復号化データ(画像データ)を記憶する。また、クラウドサーバ5は、ゲートウェイ3からのメタデータを記憶する。そして、クラウドサーバ5は、記憶している復号化データ及びメタデータに基づいて、画像検索あるいは画像解析等を行う。
 以上のように、本例に係るIoTシステム1では、IoT端末2が、主画像を示す階層化データを生成し、生成した階層化データから、所定の基準に基づいて送信対象データを決定する。そして、IoT端末2は、決定した送信対象データを圧縮符号化し、それによって得られた符号化データをゲートウェイ3に送信する。これにより、主画像データを示す階層化データのすべてが圧縮符号化され、それによって得られた符号化データがIoT端末2から送信される場合と比較して、IoT端末2の消費電力を低減することができる。また、IoT端末2とゲートウェイ3との間のデータ伝送レートが低い場合であっても、IoT端末2から送信される符号化データの送信遅延を低減することができる。
 <IoT端末の詳細説明>
 <画像符号化部の詳細説明>
 図5はIoT端末2の画像符号化部24bの構成の一例を示す図である。図5に示されるように、画像符号化部24bは、階層化部240、符号化部246及びビットストリーム生成部249を備える。階層化部240は、主画像データ500から階層化データを生成する。階層化部240は階層化データを生成する生成部であるとも言える。符号化部246は、階層化データのうち、決定部26からの特定情報506によって特定される送信対象データを圧縮符号化して画像符号化データ504を生成する。ビットストリーム生成部249は、画像符号化データ504を含むビットストリーム505を生成して送信部25aに送信する。送信部25aは、ビットストリーム505をゲートウェイ3に送信する。
 <階層化部>
 階層化部240は、DCレベルシフト部241、色空間変換部242、タイリング部243、ウェーブレット変換部244(WT変換部244)及び量子化部245を備えている。DCレベルシフト部241は、主画像データ500のDCレベルを必要に応じて変換する。色空間変換部242は、DCレベル変換後の主画像データ500の色空間を変換する。例えば、RGB成分がYCbCr成分(輝度成分Yと色差成分Cb,Crとから成る)に変換される。タイリング部243は、色空間変換後の主画像データ500を、タイルと呼ばれる矩形状の複数の領域成分に分割する。そして、タイリング部243は、主画像データ500をタイルごとにウェーブレット変換部244に入力する。なお、必ずしも主画像データ500をタイルに分割する必要はなく、色空間変換部242から出力された主画像データ500を、そのままウェーブレット変換部244に入力してもよい。
 ウェーブレット変換部244は、タイリング部243で処理された主画像データ500に対してウェーブレット変換を行って階層化データを生成する。そして、量子化部245は、階層化データを量子化して出力する。
 <ウェーブレット変換部>
 ウェーブレット変換部244は、タイリング部243で処理された主画像データ500に対して、整数型または実数型の離散ウェーブレット変換(DWT)を行い、その結果得られた複数の変換係数を出力する。以下では、変換係数をウェーブレット係数と呼ぶことがある。また、主画像データ500に対してウェーブレット変換を行うことによって生成されるデータ(ウェーブレット係数の群)を、第1ウェーブレット係数データと呼ぶことがある。ウェーブレット変換部244は、生成した第1ウェーブレット係数データを、主画像を示す階層化データとして出力する。
 ウェーブレット変換では、2次元画像データが高域成分(換言すれば高周波成分)と低域成分(換言すれば低周波成分)とに分解される。この周波数分解は例えば帯域分割とも呼ばれる。また、周波数分解によって得られた各帯域成分(すなわち低域成分と高域成分のそれぞれ)はサブバンドとも呼ばれる。ここでは、JPEG2000の基本方式に倣い、垂直方向と水平方向の両方について低域側に分割されたサブバンドのみを再帰的に帯域分割していく、オクターブ分割方式を採用するものとする。再帰的な帯域分割を行った回数は、分解レベルと呼ばれる。分解レベルの情報は、第1ウェーブレット係数データに付随している。
 ウェーブレット変換部244では、所定の分解レベルまで主画像データ500が分解される。一般的には分解レベルが3~5程度の場合に、良好な符号化効率が得られる。なお、ウェーブレット変換部244における上記所定の分解レベルを、最大分解レベルと呼ぶ場合もある。本例では、最大分解レベルは3に設定されている。
 図6~8に、2次元でのウェーブレット変換について、Mallat型のウェーブレット平面551~553を示す。図6~8の例によれば、入力画像(2次元画像)は、分解レベル1において(図6参照)、垂直方向と水平方向のそれぞれについて周波数分解が行われる。これにより、図6のウェーブレット平面551に示すように、4つのサブバンドHH1,HL1,LH1,LL1に分解される。分解レベル1で得られたサブバンドLL1は、分解レベル2において(図7のウェーブレット平面552を参照)、さらに4つのサブバンドHH2,HL2,LH2,LL2に分解される。分解レベル2で得られたサブバンドLL2は、分解レベル3において(図8のウェーブレット平面553を参照)、さらに4つのサブバンドHH3,HL3,LH3,LL3に分解される。
 2次元のウェーブレット変換に関する表記について、例えばHL1は、分解レベル1における水平方向の高域成分Hと垂直方向の低域成分Lとからなるサブバンドである。その表記法はXYmと一般化される(XおよびYはそれぞれH,Lのいずれか。mは1以上の整数)。すなわち、分解レベルmにおける水平方向のサブバンドXと垂直方向のサブバンドYとからなるサブバンドはXYmと表記される。また、分解レベルを特定しない場合には、水平方向のサブバンドXと垂直方向のサブバンドYとからなるサブバンドはXYと表記される。
 なお以下では、サブバンドLL1,LL2,・・・のそれぞれをLLサブバンドまたはLL成分と略称する場合がある。また、サブバンドLL1をLL1サブバンドまたはLL1成分と呼ぶ場合がある。他のサブバンドについても同様である。
 ここで、ウェーブレット平面(図6~8参照)は、ウェーブレット変換の演算結果データを、原画像(ウェーブレット変換が行われていない状態の画像)中の画素の並びに対応付けて2次元配列したデータ群である。例えばウェーブレット平面においてサブバンドLL1として示されている領域内には、原画像中のある画素を注目画素として得られた演算結果データ(LL成分)が、原画像中での当該注目画素の位置に対応して並べられている。ウェーブレット係数は画素に対応する値であると言える。
 なおウェーブレット平面は、ウェーブレット空間またはウェーブレット領域と呼ばれる場合もある。また、2次元配列された係数を画素値に見立てて、ウェーブレット平面をウェーブレット画像と呼び、サブバンドをサブバンド画像と呼び、XYmサブバンドをXYmサブバンド画像と呼び、XYサブバンドをXYサブバンド画像と呼ぶ場合もある。
 分解レベル1において、サブバンドLL1は画像の本質的な情報に対応する。サブバンドLL1によれば、分解前の画像の1/4のサイズの画像(換言すれば、分解前の画像に対する縮小比が1/2の画像)を提供可能である。サブバンドHL1は垂直方向に伸びるエッジの情報に対応し、サブバンドLH1は水平方向に伸びるエッジの情報に対応する。サブバンドHHは斜め方向に伸びるエッジの情報に対応する。これらの点は他の分解レベルについても同様である。例えば、分解レベル2のサブバンドLL2,HL2,LH2,HH2は、分解前のサブバンドLL1を原画像と見なした場合におけるサブバンドLL1,HL1,LH1,HH1とそれぞれ同様の関係にある。
 以下では、ウェーブレット変換が行われていない状態の原画像を分解レベル0に対応させることにより、当該原画像を分解レベル0のウェーブレット画像または分解レベル0のウェーブレット平面と表現する場合もある。また、分解回数が同じサブバンドにおいて、サブバンドLLを最低域のサブバンドと呼ぶことにする。
 図9は主画像500A(原画像)の一例を示す図である。図10は、図9に示される主画像500Aを示す主画像データ500をウェーブレット変換して得られる、分解レベル3のウェーブレット平面553を模式的な画像として示す図である。図9に示される主画像500Aには、移動中の人が写る画像500aと、木が写る画像500bとが含まれている。図10に示されるように、ウェーブレット平面上の各サブバンドは、画像500aを示す部分553aと、画像500bを示す部分553bとを含んでいる。
 ウェーブレット平面553上の各サブバンドは、主画像500Aを示すデータであると言える。サブバンド分割回数が3回のサブバンドLL3,HL3,LH3,HH3が示す主画像500Aの解像度は、サブバンド分割回数が2回のサブバンドHL2,LH2,HH2が示す主画像の解像度よりも低いと言える。また、サブバンド分割回数が2回のサブバンドHL2,LH2,HH2が示す主画像500Aの解像度は、サブバンド分割回数が1回のサブバンドHL1,LH1,HH1が示す主画像500Aの解像度よりも低いと言える。そして、サブバンド分割回数が1回のサブバンドHL1,LH1,HH1が示す主画像500Aの解像度は、サブバンド分割されていない主画像500Aの解像度よりも低いと言える。
 このように、第1ウェーブレット係数データは、解像度が互いに異なる主画像を示す複数階層データで構成されていると言える。
 なおMallat型では、上記のように、LL成分を水平方向と垂直方向のそれぞれについて同じ回数で、再帰的に分解する。また後述のように、Mallat型では分解とは逆の手順でサブバンドが合成される。ただし、水平方向と垂直方向のそれぞれのL成分とH成分を同じ回数で、分解および合成する必要はない。すなわち、Mallat型とは異なる型式のウェーブレット変換を用いてもよい。また、分解回数が同じサブバンドのウェーブレット平面上の大きさは同じでなくもよい。
 また、原画像及びウェーブレット画像において左上端を座標系の原点に採り、原点を0として扱い、ウェーブレット変換のL成分出力を偶数として扱い、H成分出力を奇数として扱う例を挙げる。ただし、L成分出力を奇数として扱い、H成分出力を偶数として扱うことも可能である。なお、ウェーブレット平面(図6~8参照)は、ウェーブレット変換の偶数番目および奇数番目の出力を、サブバンドごとに再配置した概念的な平面である。
 <量子化部>
 量子化部245は、ウェーブレット変換部244から出力される第1ウェーブレット係数データに対して、量子化ステップサイズに基づいて、スカラー量子化を行い、それにより第1量子化ウェーブレット係数データを生成する。第1量子化ウェーブレット係数データは、量子化された階層化データである。量子化ステップサイズは、例えば目標画質に応じて設定される。量子化ステップサイズを変更することによって、第1量子化ウェーブレット係数データが示す画像の解像度を調整することができる。
 第1量子化ウェーブレット係数データは、第1ウェーブレット係数データと同様のデータ構造を有している。このため、第1量子化ウェーブレット係数データによれば、第1ウェーブレット係数データと同様に、ウェーブレット画像が提供される。第1量子化ウェーブレット係数データによって提供されるウェーブレット画像を、量子化ウェーブレット画像と呼ぶ場合もある。
 <符号化部>
 符号化部246は、量子化部245によって生成された第1量子化ウェーブレット係数データ(階層化データ)のうち、特定情報506によって特定される送信対象データの圧縮符号化を行って画像符号化データ504を生成する。符号化部246では、例えば、ビットプレーン符号化を行うEBCOT(Embedded Block Coding with Optimized Truncation)に従ってエントロピー符号化が行われる。本例では、符号化部246は、係数ビットモデリング部247及びエントロピー符号化部248を備える。
 係数ビットモデリング部247は、第1量子化ウェーブレット係数データに対してビットモデリング処理を行う。具体的には、係数ビットモデリング部247は、第1量子化ウェーブレット係数データに含まれる各サブバンドを、32×32あるいは64×64程度の「コードブロック」と呼ばれる領域に分割する。図11は、量子化ウェーブレット画像563の各サブバンドが複数のコードブロック570に分割されている様子の一例を示す図である。図11に示されるように、サブバンドは、その左上端を基準にして、複数のコードブロック570に分割される。
 係数ビットモデリング部247は、各サブバンドを複数のコードブロックに分割すると、決定部26からの特定情報506から送信対象のコードブロックを特定する。そして係数ビットモデリング部247は、特定したコードブロックを、各ビットの2次元配列で構成される複数のビットプレーンに分解する。以後、特定情報506によって特定される送信対象のコードブロックを送信対象コードブロックと呼ぶことがある。
 図12は、コードブロック570を構成するn枚のビットプレーン571~571n-1(n:自然数)の一例を示す図である。係数ビットモデリング部247は、送信対象コードブロック570中の各量子化ウェーブレット係数の二進値を構成する各ビットを別々のビットプレーンに割り当てる。図12に示されるように、コードブロック570中の1点の量子化ウェーブレット係数の二進値572が“011・・・0”である場合、この二進値572を構成する複数のビットは、それぞれ、ビットプレーン571n-1,571n-2,571n-3,・・・,571に属するように分解される。図中のビットプレーン571n-1は、量子化ウェーブレット係数の最上位ビット(MSB)のみからなる最上位ビットプレーンを表し、ビットプレーン571は、その最下位ビット(LSB)のみからなる最下位ビットプレーンを表している。
 さらに、係数ビットモデリング部247は、各ビットプレーン571(k=0~n-1)内の各ビットのコンテクスト(context)判定を行い、図13に示すように、各ビットの有意性(判定結果)に応じて、ビットプレーン571を3種類の符号化パス、すなわち、CLパス(CLeanup pass)、MRパス(Magnitude Refinement pass)及びSIGパス(SIGnificance propagation pass)に分解する。各符号化パスに関するコンテクスト判定のアルゴリズムは、JPEG2000の規格で定められている。それによれば、「有意である」とは、これまでの符号化処理において注目係数がゼロでないとわかっている状態のことを意味する。また「有意で無い」とは、係数がゼロであるか、あるいはゼロである可能性がある状態のことを意味する。
 係数ビットモデリング部247は、SIGパス(有意な係数が周囲にある有意でない係数の符号化パス)、MRパス(有意な係数の符号化パス)及びCLパス(SIGパス及びMRパスに該当しない残りの係数の符号化パス)の3種類の符号化パスでビットプレーン符号化を実行する。ビットプレーン符号化は、最上位ビットプレーンから最下位ビットプレーンにかけて、各ビットプレーンのビットを4ビット単位で走査し、有意な係数が存在するか否かを判定することで行われる。有意で無い係数(0ビット)のみで構成されるビットプレーンの数は零ビットプレーン情報として、ビットストリーム生成部249が生成する後述のパケットヘッダに含められる。ビットプレーン符号化では、有意な係数が最初に出現したビットプレーンから実際の符号化が開始される。その符号化開始のビットプレーンはCLパスのみで符号化され、当該ビットプレーンよりも下位のビットプレーンは、上記3種類の符号化パスで順次符号化される。
 エントロピー符号化部248は、係数ビットモデリング部247で生成されたデータに対してエントロピー符号化を行って、画像符号化データ504を生成する。画像符号化データ504は、圧縮符号化された送信対象コードブロックで構成されている。エントロピー符号化としては、例えば算術符号化が利用される。
 なお符号化部246では、エントロピー符号化部248によって生成された画像符号化データ504に対してレート制御を行って、符号量を制御してもよい。以後、画像符号化データ504に含まれるコードブロックを符号化ブロックと呼ぶことがある。
 本例では、画像符号化データ504に含まれる各符号化ブロックには、その符号化ブロックについての量子化ウェーブレット画像での位置を示すブロック位置情報が付随している。符号化ブロックに付随するブロック位置情報は、当該符号化ブロックについてのウェーブレット画像での位置を示しているとも言える。
 <ビットストリーム生成部>
 ビットストリーム生成部249は、画像符号化データ504を含むビットストリーム505を生成する。具体的には、ビットストリーム生成部249は、画像符号化データ504をパケット化し、それによって生成されたパケットデータと付加情報を含むビットストリーム505を生成する。付加情報には、パケットヘッダ、レイヤー構成情報、スケーラビリティ情報及び量子化テーブルなどが含まれる。パケットヘッダには、零長パケット情報、コードブロックの包含情報、零ビットプレーン情報、符号化パス数情報及びコードブロックの符号量情報(コードブロックの圧縮データ長)が含まれている。パケットヘッダは符号化されてビットストリーム505に含められる。
 <マスク生成部の詳細説明>
 図14はIoT端末2のマスク生成部23の構成の一例を示す図である。図14に示されるように、マスク生成部23は、原マスク生成部230及びマスク展開部231を備えている。
 原マスク生成部230は、縮小画像メモリ22a内の縮小画像データ501に基づいて、主画像においてROIと非ROIとを判別するための原マスクのデータである原マスクデータを生成する。
 原マスク生成部230は、各種のマスク生成技術によって構成可能である。例えば動画中の動体を検出する技術が知られており、この動体検出技術を利用すれば、主画像中の、動体が写る部分をROIに設定したマスクを生成できる。また、デジタルカメラによって撮影された静止画を対象として、グラフカットによって、画像全体から前景画像と背景画像とを分離する技術が知られている。この画像分離技術を利用すれば、原マスク生成部230は、主画像に含まれる前景画像をROIに設定したマスクを生成できる。
 図15は原マスク580の一例を示す図である。図15に示される原マスク580は、上述の図9に示される主画像500Aにおいて、移動中の人が写る画像500aをROIに設定し、それ以外の部分を非ROIに設定した場合の原マスクである。
 原マスク580は、主画像500A中の各画素がROIと非ROIのどちらに属するのかを示す画像として理解できる。原マスク580は、主画像500A中のROI及び非ROIにそれぞれ対応するROI対応部分580a及び非ROI対応部分580bを有している。図15において、白抜き部分がROI対応部分580aであり、黒塗り部分が非ROI対応部分580bである。
 マスク展開部231はマスク展開処理を行う。具体的には、マスク展開部231は、原マスク580のROI対応部分580aおよび非ROI対応部分580bを、ウェーブレット変換部244で生成される第1ウェーブレット係数データに含まれる各サブバンド用に(換言すれば、第1ウェーブレット係数データに対応するウェーブレット画像に含まれる各サブバンド用に)展開する。このようなマスク展開処理によって、第1ウェーブレット係数データ用のマスクである展開マスクが生成される。展開マスクは、第1ウェーブレット係数データについて、ROIに関与する係数(以後、ROI係数と呼ぶ)と、非ROIに関与する係数(以後、非ROI係数と呼ぶ)とを判別するためのマスクである。
 図16~18に、図15の原マスク580を分解レベル1,2,3のウェーブレット平面551~553(図6~8参照)に展開した展開マスク581,582,583をそれぞれ示す。展開マスク581,582,583において、ROI対応部分581a,582a,583aが白抜きで図示され、非ROI対応部分581b,582b,583bが黒塗りで図示されている。
 ここで、展開マスクは、ウェーブレット画像に含まれる各サブバンド用のマスクの集合体として把握できる。すなわち、サブバンドごとのマスクをサブバンドマスクと呼ぶことにすると、展開マスクはサブバンドマスクの集合体として把握できる。例えば、展開マスクのうちでLLサブバンド用の部分をLLサブバンドマスクと呼ぶことにする。他のサブバンドに対応する部分についても同様とする。展開マスクの分解レベルは、当該展開マスクのデータに付随するものとする。
 図19はマスク展開処理を示すフローチャートである。図19に示されるように、マスク展開処理では、マスクの分解レベルを1段階上げる処理(以下、レベル増加単位処理とも呼ぶ)が行われる(ステップs2参照)。第1ウェーブレット係数データの分解レベルが2以上である場合、その分解レベルのマスクが得られるまで、レベル増加単位処理が繰り返される(ステップs1参照)。なお、図19中のステップs1において、第1ウェーブレット係数データの分解レベルをg1と表記している。
 レベル増加単位処理では、処理対象とする現在のマスクを、現在のマスクが適用される現在のウェーブレット平面よりも分解レベルが1段階高い新ウェーブレット平面用の新マスクに変換する。なお、現在のマスクが原マスクである場合、現在のウェーブレット平面はウェーブレット変換前の原画像が対応する。上記のように原画像を分解レベル0のウェーブレット平面と表現することによって、現在のウェーブレット平面には原画像も含まれることが理解できる。
 レベル増加単位処理の繰り返しは、再帰的に行われる。すなわち、新マスクを次の現在のマスクに設定することによって、レベル増加単位処理が再度行われる。また、レベル増加単位処理の繰り返しは、ウェーブレット変換の方式に従って行われる。例えば上記のMallat型の方式が採用されている場合(図6~図8参照)、ウェーブレット平面は最低域のサブバンドLLのみを再帰的に分解していく。このため、マスクの展開もサブバンドLLに対応する部分に対してのみ再帰的に行う。
 レベル増加単位処理は所定のマスク展開条件に基づいて行われ、マスク展開条件はウェーブレット変換のフィルタのタップ数に依存する。
 例えばウェーブレット変換の演算処理において5×3フィルタが使用される場合、マスク展開条件は、図20に基づいた2つの条件(第1展開条件と第2展開条件と呼ぶことにする)を含む。5×3フィルタでは、分解側のローパスフィルタが5タップであり、分解側のハイパスフィルタが3タップである。
 第1展開条件:現在のウェーブレット平面上の偶数番目(pを整数として、2p番目と表記できる)のデータが現在のマスクによってROIに対応付けられている場合、新ウェーブレット平面において低域成分(ローパスフィルタの側の出力データに対応する)のp番目のデータがROIに対応付けられるように、新マスクを形成する。それと共に、新ウェーブレット平面において高域成分(ハイパスフィルタの側の出力データに対応する)の{p-1}番目およびp番目のデータがROIに対応付けられるように、新マスクを形成する。
 第2展開条件:現在のウェーブレット平面上の{2p+1}番目のデータが現在のマスクによってROIに対応付けられているとき、新ウェーブレット平面において低域成分のp番目および{p+1}番目ならびに高域成分の{p-1}番目から{p+1}番目のデータがROIに対応付けられるように、新マスクを形成する。
 また、ウェーブレット変換の演算処理においてDaubechies9×7フィルタが用いられる場合、マスク展開条件は、図21に基づいた2つの条件(第3展開条件と第4展開条件と呼ぶことにする)を含む。Daubechies9×7フィルタでは、分解側のローパスフィルタが9タップであり、分解側のハイパスフィルタが7タップである。
 第3展開条件:現在のウェーブレット平面上の2p番目のデータが現在のマスクによってROIに対応付けられているとき、新ウェーブレット平面において低域成分の{p-1}番目から{p+1}番目および高域成分の{p-2}番目から{p+1}番目のデータがROIに対応付けられるように、新マスクを形成する。
 第4展開条件:現在のウェーブレット平面上の{2p+1}番目のデータが現在のマスクによってROIに対応付けられているとき、新ウェーブレット平面において低域成分の{p-1}番目から{p+2}番目および高域成分の{p-2}番目から{p+2}番目のデータがROIに対応付けられるように、新マスクを形成する。
 マスク展開部231は、分解レベルが最も高いウェーブレット平面に対応する展開マスク(以後、最大展開マスクと呼ぶことがある)のデータをマスクデータ502として出力する。第1ウェーブレット係数データの分解レベルが3の場合、マスク展開部231は、分解レベル3の展開マスク583(図18参照)を生成し、当該展開マスク583のデータ(最大展開マスクのデータ)をマスクデータ502として出力する。最大展開マスクのデータは、量子化部245で生成される第1量子化ウェーブレット係数データについてROI係数と非ROI係数とを判別するためのマスクであると言える。量子化ウェーブレット画像において、最大展開マスクのROI対応部分と同じ位置にある値(係数)がROI係数となり、最大展開マスクの非ROI対応部分と同じ位置にある値(係数)が非ROI係数となる。
 なおマスク生成部23は、主画像データ500に基づいてマスクデータ502を生成してもよい。上記のように、縮小画像データ501に基づいてマスクデータ502が生成される場合には、IoT端末2の処理を簡素化することができ、その結果、IoT端末2の消費電力を低減することができる。
 <決定部の詳細説明>
 IoT端末2の決定部26は、ゲートウェイ3からの指示情報518と、マスク生成部23で生成されるマスクデータ502とに基づいて、送信対象コードブロックを決定する。そして、決定部26は、決定した送信対象コードブロックを特定するための特定情報506を画像符号化部24bに出力する。これにより、IoT端末2からは、送信対象コードブロックを圧縮符号化して得られる画像符号化データ504が、ゲートウェイ3に送信される。
 ここで、ゲートウェイ3は、指示情報518を用いて、決定部26が送信対象コードブロックを決定する際にマスクデータ502を使用するか否かを指示することもできる。ゲートウェイ3は、送信対象コードブロックの決定にマスクデータ502を使用することを指示する場合には、マスクデータ502の使用を指示するための使用可情報を指示情報518に含める。一方で、ゲートウェイ3は、送信対象コードブロックの決定にマスクデータ502を使用しないことを指示する場合には、マスクデータ502の不使用を指示するための使用不可情報を指示情報518に含める。
 またゲートウェイ3は、指示情報518を用いて、IoT端末2が送信すべきデータを自由に指定することができる。例えば、ゲートウェイ3は、IoT端末2が送信すべきデータをコードブロック単位で指定することができる。またゲートウェイ3は、IoT端末2が送信すべきデータをサブバンド単位で指定することができる。例えば、ゲートウェイ3は、IoT端末2が送信すべきデータとして、量子化ウェーブレット係数に含まれるサブバンドLL3のデータを指定することができる。またゲートウェイ3は、IoT端末2が送信すべきデータとして、例えば、量子化ウェーブレット係数に含まれるサブバンドHH3,HL3のデータを指定することができる。またゲートウェイ3は、IoT端末2が送信すべきデータを分解レベル単位で指定することもできる。例えば、ゲートウェイ3は、IoT端末2が送信すべきデータとして、量子化ウェーブレット係数に含まれる分解レベル2のデータを指定することができる。この場合には、量子化ウェーブレット係数に含まれるサブバンドHH2,LH2,HL2のデータが指定される。またゲートウェイ3は、IoT端末2が送信すべきデータとして、例えば、量子化ウェーブレット係数に含まれる分解レベル1,2のデータを指定することができる。この場合には、量子化ウェーブレット係数に含まれるサブバンドHH1,LH1,HL1,HH2,LH2,HL2のデータが指定される。以後、ゲートウェイ3が指示情報518で指定するデータを指定データと呼ぶことがある。指定データは、指示情報518によってIoT端末2に指示される、IoT端末2が送信すべきデータであると言える。
 決定部26は、ゲートウェイ3からの指示情報518に使用可情報が含まれている場合には、当該指示情報518で指定される指定データのうち、マスクデータ502が示す最大展開マスクのROI対応部分に対応するコードブロック570を送信対象データとする。一方で、決定部26は、ゲートウェイ3からの指示情報518に使用不可情報が含まれている場合には、当該指示情報518で指定される指定データをそのまま送信対象データとする。
 図22は、上述の図18に示される最大展開マスク583とコードブロック570との対応関係を示す図である。例えば、指示情報518が使用不可情報を含み、当該指示情報518によって指定される指定データがサブバンドLL3のデータである場合、決定部26は、サブバンドLL3のすべてのコードブロック570a~570iを送信対象コードブロックとして決定する。これにより、コードブロック570a~570iが圧縮符号化されてゲートウェイ3に送信される。
 一方で、指示情報518が使用可情報を含み、当該指示情報518によって指定される指定データがサブバンドLL3のデータである場合、決定部26は、サブバンドLL3のコードブロック570a~570iのうち、最大展開マスク583のLL3サブバンドマスク583LL3に含まれるROI対応部分583aに対応する4つのコードブロック570d,570e,570g,570hを送信対象コードブロックに決定する。これにより、コードブロック570d,570e,570g,570hが圧縮符号化されてゲートウェイ3に送信される。決定部26は、図22のように、最大展開マスク583に対して各コードブロック570を重ねた場合に、LL3サブバンドマスク583LL3のROI対応部分583aの少なくとも一部を含むコードブロック570を、当該ROI対応部分583aに対応するコードブロック570とする。
 <ゲートウェイの詳細説明>
 <画像復号化部の詳細説明>
 図23はゲートウェイ3の画像復号化部31bの構成の一例を示す図である。図23に示されるように、画像復号化部31bは、ビットストリーム解析部310、復号化部311及び逆量子化部314を備えている。
 ビットストリーム解析部310は、IoT端末2からのビットストリーム505を解析して、当該ビットストリーム505から画像符号化データ504及び付加情報を抽出する。ビットストリーム解析部310は、抽出した画像符号化データ504を復号化部311及びデータ処理部32に出力する。またビットストリーム解析部310は、抽出した付加情報に含まれる符号化されたパケットヘッダを復号化する。付加情報は、復号化部311及び逆量子化部314等で使用される。
 復号化部311は画像符号化データ504に対して所定の伸張復号化を行う。所定の伸張復号化は、符号量制御を除いて、基本的には、図5の符号化部246における圧縮符号化とは逆の処理にあたる。所定の伸張復号化によって、画像符号化データ504から、量子化ウェーブレット係数が生成される。本例では、復号化部311は、エントロピー復号化部312及び係数ビットモデリング部313を備えている。
 エントロピー復号化部312は、画像符号化データ504に対してエントロピー復号化を行って、ビットデータを生成する。エントロピー復号化は、図5のエントロピー符号化部248におけるエントロピー符号化とは逆の処理にあたる。
 係数ビットモデリング部313は、エントロピー復号化部312で生成されたビットデータに対してビットモデリング処理を行って、量子化ウェーブレット係数を復元する。ここでのビットモデリング処理は、図5の係数ビットモデリング部247におけるそれとは逆の処理にあたる。係数ビットモデリング部313は、生成した量子化ウェーブレット係数を逆量子化部314に入力する。以後、係数ビットモデリング部313で生成されるデータ(量子化ウェーブレット係数の群)を、第2量子化ウェーブレット係数データと呼ぶことがある。第2量子化ウェーブレット係数データは、IoT端末2で決定された送信対象コードブロックで構成されている。
 逆量子化部314は、入力される第2量子化ウェーブレット係数データに対して逆量子化を行う。ここでの逆量子化は、図5の量子化部245における量子化とは逆の処理にあたる。逆量子化によって、第2量子化ウェーブレット係数データは、第2ウェーブレット係数データに変換される。逆量子化部314は、生成した第2ウェーブレット係数データをWT復号化データ511として出力する。WT復号化データ511は、逆量子化された送信対象コードブロックで構成されている。以後、WT復号化データ511に含まれるコードブロックをWT復号化ブロックと呼ぶことがある。本例では、画像符号化データ504と同様に、WT復号化データ511に含まれる各WT復号化ブロックには、当該WT復号化ブロックについてのウェーブレット画像での位置を示すブロック位置情報が付随している。
 <データ処理部の詳細説明>
 図24はデータ処理部32の構成の一例を示す図である。図24に示されるように、データ処理部32は、認識用データ生成部320、第1処理部321、第2処理部322、第1メモリ323及び第2メモリ324を備えている。第1メモリ323は、第1処理部321によってデータの読み出し及び書き込みが行われる。第2メモリ324は、画像復号化部31bから出力される画像符号化データ504を記憶する。第2メモリ324内のデータは第2処理部322によって読み出される。
 <認識用データ生成部>
 図25は認識用データ生成部320の構成の一例を示す図である。図25に示されるように、認識用データ生成部320は、逆ウェーブレット変換部3201、色空間変換部3202及びDCレベルシフト部3203を備えている。
 逆ウェーブレット変換部3201は、ウェーブレット係数から成る入力データに対して逆ウェーブレット変換(詳細には逆離散ウェーブレット変換)を行う。
 ここで、認識用データ生成部320には、第1処理部321で生成される逆変換非対象データ521及び逆変換対象データ522が入力される。逆変換非対象データ521は、逆ウェーブレット変換部3201で逆ウェーブレット変換されないデータである。逆変換非対象データ521は、例えば、1つのサブバンドのウェーブレット係数だけで構成される。逆変換非対象データ521は、例えば、LL3サブバンドのウェーブレット係数だけで構成される。また逆変換非対象データ521は、例えば、HH3サブバンドのウェーブレット係数で構成される。また逆変換非対象データ521は、例えば、HL1サブバンドのウェーブレット係数で構成される。逆変換非対象データ521は、逆ウェーブレット変換できないデータであると言える。
 一方で、逆変換対象データ522は、逆ウェーブレット変換可能なデータであって、逆ウェーブレット変換部3201で逆ウェーブレット変換される。逆変換対象データ522は、例えば、同じ分解レベルのLLサブバンド、LHサブバンド、HLサブバンド及びHHサブバンドのウェーブレット係数だけで構成される。また逆変換対象データ522は、例えば、同じ分解レベルのLHサブバンド、HLサブバンド及びHHサブバンドのウェーブレット係数と、それと同じ分解レベルのLLバンドを復元可能な、それよりも下の分解レベルの複数のサブバンドのウェーブレット係数とだけで構成される。
 逆ウェーブレット変換部3201は、逆変換対象データ522に含まれるウェーブレット係数の分解レベルのうちの最も低い分解レベルが1でない場合には、その最も低い分解レベルよりも一つ下の分解レベルのLLサブバンドのウェーブレット係数が得られるように、逆変換対象データ522に対して逆ウェーブレット変換を行う。一方で、逆ウェーブレット変換部3201は、逆変換対象データ522に含まれるウェーブレット係数の分解レベルのうちの最も低い分解レベルが1である場合には、原画の画素値が得られるように、逆変換対象データ522に対して逆ウェーブレット変換を行う。
 例えば、逆変換対象データ522が、分解レベル3のLL3サブバンド、LH3サブバンド、HL3サブバンド及びHH3サブバンドのウェーブレット係数で構成されている場合を考える。この場合には、逆ウェーブレット変換部3201では、分解レベル2のLL2サブバンドのウェーブレット係数が得られる。
 また、逆変換対象データ522が、分解レベル2のLH2サブバンド、HL2サブバンド及びHH2サブバンドのウェーブレット係数と、分解レベル3のLL3サブバンド、LH3サブバンド、HL3サブバンド及びHH3サブバンドのウェーブレット係数とで構成されている場合を考える。この場合には、逆ウェーブレット変換部3201では、分解レベル1のLL1サブバンドのウェーブレット係数が得られる。分解レベル3のLL3サブバンド、LH3サブバンド、HL3サブバンド及びHH3サブバンドは、分解レベル2のLL2サブバンドを復元可能なサブバンドである。
 また、逆変換対象データ522が、分解レベル1のLH1サブバンド、HL1サブバンド及びHH1サブバンドのウェーブレット係数と、分解レベル2のLH2サブバンド、HL2サブバンド及びHH2サブバンドと分解レベル3のLL3サブバンド、LH3サブバンド、HL3サブバンド及びHH3サブバンドのウェーブレット係数とで構成されている場合を考える。この場合には、逆ウェーブレット変換部3201では、原画(主画像)の画素値が得られる。分解レベル2のLH2サブバンド、HL2サブバンド及びHH2サブバンドと分解レベル3のLL3サブバンド、LH3サブバンド、HL3サブバンド及びHH3サブバンドは、分解レベル1のLL1サブバンドを復元可能なサブバンドである。
 逆ウェーブレット変換部3201で生成されるLLサブバンドのウェーブレット係数は、LLデータ520として第1処理部321に出力される。つまり、逆ウェーブレット変換部3201で生成されるLL3サブバンドのウェーブレット係数、LL2サブバンドのウェーブレット係数及びLL1サブバンドのウェーブレット係数は、それぞれLLデータ520として第1処理部321に入力される。
 ここで、ゲートウェイ3では、逆ウェーブレット変換部3201から出力されるウェーブレット係数が画素値として取り扱われる。したがって、逆ウェーブレット変換部3201からは、複数の画素値を含む画像データが出力されると言える。また、逆変換非対象データ521に含まれるウェーブレット係数も画素値として取り扱われる。したがって、逆変換非対象データ521は一種の画像データであると言える。
 色空間変換部3202は、逆ウェーブレット変換部3201から出力される画像データに対して、図5の色空間変換部242での処理と逆の処理を行う。また色空間変換部3202は、認識用データ生成部320に入力される逆変換非対象データ521(画像データ)に対して、色空間変換部242での処理と逆の処理を行う。DCレベルシフト部3203は、色空間変換部3202から出力される画像データのDCレベルを必要に応じて変換する。DCレベルシフト部3203から出力される画像データが認識用データ512となる。
 以上の説明から理解できるように、認識用データ512は、復元された、主画像データ500の少なくとも一部、あるいは復元された、サブバンドの少なくとも一部となる。よって、認識用データ512が示す認識対象画像は、主画像(サブバンド分割されていない主画像)の少なくとも一部、あるいはサブバンド画像の少なくとも一部を示す。
 <第1処理部>
 第1処理部321は、データ書き込み処理、マスク生成処理、入力データ生成処理及び指示情報生成処理を行う。
 <データ書き込み処理>
 第1処理部321は、画像復号化部31bから出力されるWT復号化データ511(WT復号化ブロック)を第1メモリ323に記憶する。このとき、WT復号化データ511に含まれる各WT復号化ブロックに付随するブロック位置情報も第1メモリ323に記憶される。また第1処理部321は、認識用データ生成部320から出力されるLLデータ520を第1メモリ323に記憶する。
 <マスク生成処理>
 第1処理部321は、画像認識部33から出力される認識結果情報513に基づいてマスクデータ515を生成する。
 ここで、画像認識部33は、認識用データ512が示す認識対象画像から検出対象物を検出すると、検出対象物が検出されたことを示す検出情報を含む認識結果情報513を出力する。一方、画像認識部33は、認識対象画像から検出対象物が検出できなかったときには、検出対象物が検出されなかったことを示す未検出情報を含む認識結果情報513を出力する。
 第1処理部321は、検出情報を含む認識結果情報513を受け取ると、主画像において、画像認識部33で検出された検出対象物が写る検出対象物画像を特定する。第1処理部321は、第1メモリ323内のブロック位置情報に基づいて検出対象物画像を特定することができる。第1処理部321は、主画像において、特定した検出対象物画像をROIとし、それ以外の領域を非ROIとする。画像認識部33が、主画像から複数の検出対象物を検出した場合には、主画像において、当該複数の検出対象物がそれぞれ映る複数の検出対象物画像がROIとされる。以後、第1処理部321で設定されるROI及び非ROIを「ゲートウェイ側ROI」及び「ゲートウェイ側非ROI」と呼ぶことがある。
 第1処理部321は、主画像においてゲートウェイ側ROIとゲートウェイ側非ROIとを判別するための原マスクを生成する。第1処理部321は、生成した原マスクから、IoT端末2で生成される上述の最大展開マスクと同様の、最大分解レベルのウェーブレット平面に対応する使用マスク(最大展開マスク)を生成する。使用マスクは、IoT端末2のマスク生成部23で実行されるマスク展開処理を使用することによって生成することができる。また第1処理部321は、マスク展開処理を行わずに、マスク復号化データ510が示すマスクを使用して使用マスクを生成することができる。第1処理部321は、使用マスクのデータをマスクデータ515としてトランスコーダ34に入力する。マスクデータ515が示す使用マスクは、主画像全体をウェーブレット変換して得られるウェーブレット平面においてROI係数と非ROI係数とを判別するためのマスクであると言える。なお、使用マスクは、主画像の一部だけをウェーブレット変換して得られるウェーブレット平面においてROI係数と非ROI係数とを判別するためのマスクであってもよい。
 上記の例では、第1処理部321は、画像認識処理で検出された検出対象物の画像をROIとしたが、主画像のうちの他の部分をROIとすることもできる。第1処理部321は、主画像においてROIを自由に設定することができる。例えば、第1処理部321は、主画像において、クラウドサーバ5が指定する部分をROIとすることもできる。
 <入力データ生成処理>
 第1処理部321は、第1メモリ323内のデータを使用して、認識用データ生成部320に入力される入力データである逆変換非対象データ521及び逆変換対象データ522を生成する。第1処理部321は、認識対象画像をどのような画像にするかを決定し、それに応じて逆変換非対象データ521あるいは逆変換対象データ522を生成する。第1処理部321は、例えば、LL3サブバンド画像全体を認識対象画像とする場合には、LL3サブバンドで構成される逆変換非対象データ521を生成して認識用データ生成部320に入力する。また第1処理部321は、LL2サブバンド画像全体を認識対象画像とする場合には、LL3サブバンド、LH3サブバンド、HL3サブバンド及びHH3サブバンドで構成される逆変換対象データ522を生成して認識用データ生成部320に入力する。認識対象画像をどのような画像にするかについては、過去の認識結果情報513、検出対象物の種類及びIoT端末2のカメラ20の撮影範囲等に基づいて決定される。
 <指示情報生成処理>
 第1処理部321は、認識結果情報513等に基づいてIoT端末2が送信すべきデータを決定し、決定したデータ(指定データ)を送信することを指示するための指示情報518を生成する。このとき、第1処理部321は、指示情報518に、使用不可情報を含めるか、使用可情報を含めるかを決定する。そして、第1処理部321は、生成した指示情報518を送信部30bに入力する。
 例えば、第1メモリ323内にLL3サブバンドが記憶されており、認識対象画像がLL3サブバンド画像である場合を考える。画像認識部33がLL3サブバンド画像に対して画像認識処理を行った結果、検出対象物が検出されてなかった場合、第1処理部321は、非検出情報を含む認識結果情報513を受け取る。認識結果情報513を受け取った第1処理部321は、次の認識対象画像を例えばLL2サブバンド画像にするために、IoT端末2が送信すべきデータを、LH3サブバンド、HL3サブバンド及びHH3サブバンドとする。そして、第1処理部321は、LH3サブバンド、HL3サブバンド及びHH3サブバンドを送信することを指示するための指示情報518を生成して送信部30bに入力する。これにより、指示情報518を受け取ったIoT端末2は、LH3サブバンド、HL3サブバンド及びHH3サブバンドを含む画像符号化データ504を送信する。画像符号化データ504を受け取ったゲートウェイ3では、第1処理部321が、LH3サブバンド、HL3サブバンド及びHH3サブバンドを第1メモリ323に記憶する。そして、第1処理部321は、第1メモリ323内のLL3サブバンド、LH3サブバンド、HL3サブバンド及びHH3サブバンドで構成される逆変換対象データ522を生成して認識用データ生成部320に入力する。認識用データ生成部320は、入力された逆変換対象データ522に対して逆ウェーブレット変換等を行って、LL2サブバンド画像を示す認識用データ512を生成する。これにより、認識対象画像がLL2サブバンド画像となる。よって、画像認識部33はLL2サブバンド画像に対して画像認識処理を行う。
 なお上記の通り、マスク復号化データ510は、第1処理部321でのマスク生成処理で使用されることが可能であるが、ゲートウェイ3での他の処理で使用されてもよい。
 <第2処理部>
 第2処理部322は、第1メモリ323から読み出したデータに基づいて、トランスコーダ用復号化データ516を生成する。本例では、第1処理部321で生成されるマスクデータ515が主画像全体をウェーブレット変換して得られる最大分解レベルのウェーブレット平面に対応していることから、第2処理部322は、例えば、第1メモリ323から、当該最大分解レベルのウェーブレット平面を構成する複数のウェーブレット係数、つまり第1ウェーブレット係数データを読み出す。第1ウェーブレット係数データは主画像全体を示すデータである。そして第2処理部322は、読み出した第1ウェーブレット係数データをトランスコーダ用復号化データ516としてトランスコーダ34に出力する。
 なおマスクデータ515が、主画像の一部に対応するデータである場合には、当該一部を復元するための複数のウェーブレット係数を第1メモリ323から読み出して、読み出した複数のウェーブレット係数をトランスコーダ用復号化データ516としてもよい。
 また第2処理部322は、第2メモリ324から読み出したデータに基づいて、トランスコーダ用符号化データ517を生成する。第2処理部322は、例えば、第2メモリ324から、最大分解レベルのウェーブレット平面を構成する複数の符号化ブロック、つまり符号化された第1量子化ウェーブレット係数データを読み出す。最大分解レベルのウェーブレット平面を構成する複数の符号化ブロックは、主画像全体を復元するための複数の符号化ブロックであると言える。そして第2処理部322は、読み出した複数の符号化ブロックをトランスコーダ用符号化データ517としてトランスコーダ34に出力する。
 なお第2処理部322は、第2メモリ324から、主画像の一部を復元するための複数の符号化ブロックを読み出して、読み出した複数の符号化ブロックをトランスコーダ用符号化データ517としてもよい。
 <画像認識部の詳細説明>
 図26は画像認識部33の構成の一例を示す図である。図27は画像認識部33の動作を示す図である。図26に示されるように、画像認識部33は、前処理部330及び画像認識エンジン334を備える。前処理部330は、メモリ331、分離部332及び正規化部333を備える。
 メモリ331は、データ処理部32からの認識用データ512を記憶する(図27の<データ記憶>を参照)。分離部332は、メモリ331内の認識用データ512が示す認識対象画像600から複数の部分画像601を選択する(図27の<選択>を参照)。図27の例では、各部分画像601は、少なくとも一つの他の部分画像601と重なっている。そして分離部332は、選択した複数の部分画像601を互いに分離する(図27の<分離>を参照)。正規化部333は、分離部332で分離された複数の部分画像601のそれぞれを正規化して、複数の正規化部分画像602を生成する(図27の<正規化>を参照)。正規化部333で生成された各正規化部分画像602を示すデータが画像認識エンジン334に入力される。
 画像認識エンジン334は、前処理部330から入力されるデータに基づいて、各正規化部分画像602に対して画像認識処理を行う。画像認識エンジン334は、例えば、入力された複数の正規化部分画像602の少なくとも一つから検出対象物が検出されると、検出情報を含む認識結果情報513をデータ処理部32に入力する。一方で、画像認識エンジン334は、入力された複数の正規化部分画像602のすべてから検出対象物が検出されないときには、非検出情報を含む認識結果情報513をデータ処理部32に入力する。また画像認識エンジン334は、検出した検出対象物に関する対象物情報を含む認識結果情報514を生成して通信部35に入力する。例えば、検出対象物が人である場合、対象物情報には、例えば、検出された人の性別及び年齢等が含まれる。対象物情報に含まれる情報は、画像認識エンジンが画像認識によって特定できる情報に依存する。通信部35は、認識結果情報514を含むメタデータをクラウドサーバ5に送信する。なお、認識結果情報514は認識結果情報513と同じであってもよい。
 画像認識エンジン334が正規化部分画像602から検出対象物を検出する方法としては、様々な方法が考えられる。例えば、画像認識エンジン334は、正規化部分画像602から、検出対象物の特徴を示す特徴量を抽出する。この特徴量としては、例えば、エッジ、カラー、Haar-like、HOG(Histogram of Oriented Gradients)あるいはLBP(Local Binary Pattern)などが考えられる。画像認識エンジン334は、特徴量を抽出すると、当該画像認識エンジン334が備える識別器に対して、抽出した特徴量を入力する。識別器は、入力される特徴量に基づいて、正規化部分画像602に検出対象物画像が存在するか否かを判定し、その判定結果を出力する。識別器としては、例えば、ニューラルネットワーク、SVM(Support Vector Machine)あるいはAdaboostが使用される。なお、画像認識エンジン334は、正規化部分画像602から複数種類の特徴量を抽出し、抽出した複数種類の特徴量に基づいて、正規化部分画像602に検出対象物画像が存在するか否かを判定してもよい。
 また、画像認識部33は、正規化部分画像602から特徴量を抽出するのではなく、認識用データ512が示す認識対象画像600から特徴量を抽出してもよい。この場合には、例えば、画像認識部33は、抽出した特徴量に基づいて認識対象画像600から複数の部分画像601を選択し、選択した複数の部分画像601のそれぞれを正規化して、複数の正規化部分画像602を生成する。そして、画像認識部33は、認識対象画像600から抽出した特徴量において、各正規化部分画像602に対応する特徴量を特定し、特定した特徴量を識別器に入力する。
 また画像認識エンジン334は、ディープラーニングのように、特徴量の抽出を行わずに検出対象物を検出することが可能な多層構造のニューラルネットワークを用いてもよい。
 <トランスコーダの詳細説明>
 図28はトランスコーダ34の一例を示す図である。図28に示されるように、トランスコーダ34は、量子化部340、符号化部341及びビットストリーム生成部344を備える。トランスコーダ34は、入力されるデータをウェーブレット変換せずにビットストリームに変換して通信部35に入力する。
 量子化部340は、データ処理部32から出力される、複数のウェーブレット係数から成るトランスコーダ用復号化データ516に対して、量子化ステップサイズに基づいて、スカラー量子化を行い、それにより第3量子化ウェーブレット係数データを生成する。このとき、量子化部340は、データ処理部32からのマスクデータ515に基づいて、トランスコーダ用復号化データ516の各ウェーブレット係数について、ROI係数と非ROI係数とを判別する。そして量子化部340は、量子化後の非ROI係数が0になるように、トランスコーダ用復号化データ516の各ウェーブレット係数の量子化を行う。これにより、第3量子化ウェーブレット係数データはゲートウェイ側ROIだけを示すようになる。
 符号化部341は、量子化部340によって生成された第3量子化ウェーブレット係数データの圧縮符号化を行って画像符号化データ590を生成する。符号化部341は、係数ビットモデリング部342及びエントロピー符号化部343を備える。
 係数ビットモデリング部342は、第3量子化ウェーブレット係数データに対してビットモデリング処理を行う。このビットモデリング処理は、第3量子化ウェーブレット係数データを構成するすべてのコードブロックが使用される点以外は、IoT端末2の係数ビットモデリング部247でのビットモデリング処理と同様である。エントロピー符号化部343は、係数ビットモデリング部342で生成されたデータに対してエントロピー符号化を行って、画像符号化データ590を生成する。画像符号化データ590は、マスクデータ515によって特定されるROIだけを示すデータである。本例では、画像符号化データ590は、検出対象物画像を示すデータである。エントロピー符号化としては、例えば算術符号化が利用される。なお符号化部341では、エントロピー符号化部343によって生成された画像符号化データ590に対してレート制御を行って、符号量を制御してもよい。
 ビットストリーム生成部344は、画像符号化データ590を含むビットストリーム519を生成する。具体的には、ビットストリーム生成部344は、画像符号化データ590をパケット化し、それによって生成されたパケットデータと付加情報を含むビットストリーム519を生成する。付加情報には、パケットヘッダ、レイヤー構成情報、スケーラビリティ情報及び量子化テーブルなどが含まれる。パケットヘッダには、零長パケット情報、コードブロックの包含情報、零ビットプレーン情報、符号化パス数情報及びコードブロックの符号量情報が含まれている。
 またビットストリーム生成部344は、データ処理部32から出力されるトランスコーダ用符号化データ517を含むビットストリーム519を生成する。ビットストリーム生成部344は、トランスコーダ用符号化データ517をパケット化し、それによって生成されたパケットデータと付加情報を含むビットストリーム519を生成する。
 ビットストリーム生成部344で生成されたビットストリーム519は、通信部35からクラウドサーバ5に送信される。ビットストリーム519が、ゲートウェイ側ROIを示す画像符号化データ590を含む場合には、ゲートウェイ3は、ゲートウェイ側ROIを示すデータをクラウドサーバ5に送信することができる。ゲートウェイ3はゲートウェイ側ROIを自由に設定することができることから、例えばクラウドサーバ5が望むROIを、当該クラウドサーバ5に送信することができる。
 またビットストリーム519が、例えば主画像全体を示すトランスコーダ用符号化データ517を含む場合には、ゲートウェイ3は、主画像全体を示すデータをクラウドサーバ5に送信ことができる。これにより、ゲートウェイ3は、クラウドサーバ5に対して、IoT端末2のカメラ20で撮影される動画をストリーミング送信することができる。ゲートウェイ3は、例えばクラウドサーバ5の要求に応じて、動画をストリーミング送信することができる。
 データ処理部32の第2処理部322は、クラウドサーバ5からの要求等に応じて、トランスコーダ用復号化データ516をトランスコーダ34に入力するか、トランスコーダ用符号化データ517をトランスコーダ34に入力するかを決定する。
 通信部35は、画像認識処理で検出された検出対象物の画像がROIとされる場合には、画像符号化データ590を含むビットストリーム519と、検出対象物に関する対象物情報を含む認識結果情報とを、クラウドサーバ5に送信する。
 このように、トランスコーダ34には、ウェーブレット変換後のデータであるトランスコーダ用復号化データ516及びトランスコーダ用符号化データ517が入力される。したがって、トランスコーダ34は、IoT端末2の画像符号化部24bとは異なり、画像を示す入力データをウェーブレット変換せずにビットストリーム519を生成することができる。よって、簡単な処理でビットストリーム519を生成することができる。
 また、トランスコーダ用符号化データ517は圧縮符号化されたデータである。したがって、トランスコーダ34は、トランスコーダ用符号化データ517が入力される場合には、IoT端末2の画像符号化部24bとは異なり、入力データを圧縮符号化せずにビットストリーム519を生成することができる。よって、より簡単な処理でビットストリーム519を生成することができる。
 <画像処理システムの動作例>
 次に画像処理システム4全体での動作例について説明する。以下では、一例として、ゲートウェイ3が、検出対象物が検出されるまで、分解レベルが高いものから順にLLサブバンド画像に対して画像認識処理を行う場合の画像処理システム4の動作について説明する。以下の説明では、ゲートウェイ3が生成する指示情報518には使用可情報が含まれるものとする。つまり、以下の説明では、IoT端末2の決定部26は、マスクデータ502を使用して送信対象コードブロックを決定するものとする。
 図29,30は、処理対象の主画像(以後、対象主画像と呼ぶ)に対して処理を行う画像処理システム4のゲートウェイ3及びIoT端末2の動作の一例をそれぞれ示す図である。対象主画像に対する処理が開始すると、図29に示されるように、ステップs11において、ゲートウェイ3の第1処理部321は、最大分解レベルのLLサブバンド、本例ではLL3サブバンドを処理対象とする。そして第1処理部321は、処理対象のLLサブバンドの分解レベルを示す変数LVを3に設定する。以後、処理対象のLLサブバンドを対象LLサブバンドと呼ぶ。また、対象LLサブバンドを画像と見立てて対象LLサブバンド画像と呼ぶことがある。また、対象LLサブバンドの分解レベルを対象分解レベルと呼ぶことがある。第1処理部321は、対象LLサブバンドを指定データとして決定する。
 次にステップs12において、第1処理部321は、ステップs11で決定した指定データをIoT端末2に通知するための指示情報518を生成して送信部30bに入力する。送信部30bは、入力された指示情報518をIoT端末2に送信する。
 IoT端末2では、図30に示されるように、受信部25bがステップs21において指示情報518を受信して決定部26に入力する。次にステップs22において、決定部26は、入力された指示情報518と、マスクデータ502とに基づいて、送信対象コードブロックを決定する。対象主画像に対する処理が開始した後の最初のステップs22においては、決定部26は、マスクデータ502が示す最大展開マスクのROI対応部分に対して、膨脹及び縮退を行うグルーピング処理と、ラベリング処理とを順次行う。これにより、ROI対応部分に含まれる独立領域(島領域)に固有のラベルが割り当てられる。以後、この独立領域を「ラベル領域」と呼ぶことがある。
 図31は、最大展開マスク583に対してグルーピング処理及びラベリング処理を行った様子を示す図である。図31の例では、各サブバンドマスクのROI対応部分(白抜き部分)は、ラベル0のラベル領域L0と、ラベル1のラベル領域L2とに分けられている。図31では、最大展開マスク583にコードブロック570が重ねられている。
 次に決定部26は、ラベリング処理後の最大展開マスク583における、対象LLサブバンドに対応するLLサブバンドマスクに対して、対象LLサブバンドの複数のコードブロックを重ねる。以後、対象LLサブバンドに対応するLLサブバンドマスクを「対象LLサブバンドマスク」と呼ぶことがある。図32は、図31に示されるLL3サブバンドマスク583LL3(対象サブバンドマスク)に対して、LL3サブバンドを構成する複数のコードブロック570a~570iが重ねられている様子を示す図である。
 次に決定部26は、番号が最も小さいラベルを処理対象のラベル(以後、対象ラベルと呼ぶことがある)とする。そして決定部26は、対象LLサブバンドの複数のコードブロックのうち、対象ラベルのラベル領域に対応するコードブロックを、送信対象コードブロックとする。具体的には、決定部26は、対象LLサブバンドの複数のコードブロックのうち、対象ラベルのラベル領域の少なくとも一部を含むコードブロックを、送信対象コードブロックとする。以後、対象ラベルのラベル領域を対象ラベル領域と呼ぶことがある。
 図32の例では、ラベル0が対象ラベルとされる。そして、ラベル領域L0に対応するコードブロック570b,570c,570e,570fが送信対象コードブロックとされる。なお後述するように、他のラベルのラベル領域に対応するコードブロックは後で送信対象コードブロックとされる。
 送信対象コードブロックが決定されると、ステップs23において、画像符号化部24bは、圧縮符号化された送信対象コードブロックで構成される画像符号化データ504を生成する。次にステップs24において、画像符号化部24bは、画像符号化データ504を含むビットストリーム505を生成する。このビットストリーム505は送信部25aからゲートウェイ3に送信される。このとき、IoT端末2は、ラベリング処理で得られたラベルの番号をゲートウェイ3に通知するとともに、現在の対象ラベルをゲートウェイ3に通知する。図31,32の例では、ラベルの番号0及び1がゲートウェイ3に通知されるとともに、現在の対象ラベルがラベル0であることがゲートウェイ3に通知される。
 図29に戻って、ステップs12の後、ゲートウェイ3の受信部30aは、ステップs13において、IoT端末2からのビットストリーム505を受信する。そしてステップs14において、ビットストリーム505に含まれる画像符号化データ504が第2メモリ324に記憶される。また、画像復号化部31bで画像符号化データ504が伸張復号化されることによって得られたWT復号化データ511が第1メモリ323に記憶される。また、ゲートウェイ3は、現在の対象ラベルを示す変数LNを、IoT端末2から通知される値、つまり0に設定する。
 次にステップs15において、第1処理部321は、認識用データ生成部320への入力データを生成する。ここでは、第1処理部321は、対象LLサブバンドのうち、対象ラベル領域に対応する部分を、認識対象画像とするために、第1メモリ323から、対象ラベル領域に対応する、対象LLサブバンドのWT復号化ブロック(復元されたコードブロック)を読み出す。図31,32の例では、第1処理部321は、第1メモリ323から、対象ラベル領域であるラベル領域L0に対応する、復元されたコードブロック570b,570c,570e,570fを読み出す。そして第1処理部321は、読み出したWT復号化ブロックで構成される逆変換非対象データ521を認識用データ生成部320に入力する。
 次にステップs16において、認識用データ生成部320は、逆変換非対象データ521に基づいて認識用データ512を生成する。逆変換非対象データ521は、逆ウェーブレット変換されずに、色空間変換部3202に入力される。認識用データ512は、対象LLサブバンド画像における、対象ラベル領域に対応する画像を示す。
 次にステップs17において、画像認識部33は、ステップs16で生成された認識用データ512が示す画像に対して画像認識処理を行う。この画像認識処理において検出対象物が検出されると、データ処理部32は、対象ラベルを終了ラベルとする。
 次にステップs18において、データ処理部32は、対象主画像に対する処理を終了するか否かを決定する終了判定を行う。
 図33は終了判定の一例を示すフローチャートである。図33に示されるように、ステップs181において、データ処理部32は、画像認識部33での過去の画像認識処理の結果に基づいて、IoT端末2で定められた全てのラベルに関して、検出対象物が検出されたか否かを特定する。つまり、データ処理部32は、IoT端末2で定められた各ラベルについて、当該ラベルのラベル領域に対応するコードブロックから検出対象物が検出されたか否かを特定する。データ処理部32は、全てのラベルに関して、検出対象物が検出されたことを特定すると、ステップs182において、対象主画像に対する処理を終了することを決定する。これにより、終了判定が終了する。
 一方で、データ処理部32は、ステップs181でNOと判定すると、ステップs183において、対象ラベルを示す変数LNの値が、最大値max1と一致するか否かを判定する。ここで、最大値max1とは、IoT端末2が定めたラベルにおいて、終了ラベルを除いたラベルのうち、最も大きいラベルを意味している。IoT端末2が定めたラベルにおいて終了ラベルを除いたラベルを処理対象候補のラベルと呼ぶと、最大値max1は、処理対象候補のラベルのうちの最大値を意味している。例えば、図31,32の例のように、IoT端末2が、ラベル0,1を定め、現在の終了ラベル(検出対象物が検出されたラベル)が0の場合、最大値max1は1となる。また例えば、IoT端末2が、ラベル0~3を定め、現在の終了ラベルが0,3の場合、最大値max1は2となる。なお、終了ラベルが存在しない場合に、最大値max1は、IoT端末2が定めたラベルのうちの最大値と一致する。
 ステップs183において、変数LNの値が最大値max1に一致すると判定されると、ステップs184において、データ処理部32は、対象LLサブバンドの分解レベルを示す変数LVの値が1であるか否かを判定する。データ処理部32は、変数LVの値が1であると判定すると、つまり対象LLサブバンドがLL1サブバンドである場合、ステップs182を実行して、対象主画像に対する処理を終了することを決定する。
 ステップs184において、変数LVの値が1ではないと判定されると、ステップs185において、データ処理部32は、変数LVの値を1つだけ減少する。これより、今までの対象LLサブバンドの分解レベルよりも1つだけ小さい分解レベルのLLサブバンドが対象LLサブバンドとなる。ステップs185の後、ステップs186において、データ処理部32は、変数LNの値を最小値min1に設定する。ここで、最小値min1とは、処理対象候補のラベルのうち、最も小さいラベルを意味している。例えば、図31,32の例のように、IoT端末2がラベル0,1を定め、現在の終了ラベル領域のラベルが0の場合、最小値min1は1となる。また例えば、IoT端末2がラベル0~3を定め、現在の終了ラベル領域のラベルが0,3の場合、最小値min1は1となる。変数LNの値が最小値min1に設定されることによって、処理対象候補のラベルのうちの最小のラベルが新たな対象ラベルとされる。なお、終了ラベルが存在しない場合に、最小値min1は、IoT端末2が定めたラベルのうちの最小値と一致する。
 ステップs186の後、ステップs187において、データ処理部32は、対象主画像に対する処理を継続することを決定する。これにより、終了判定が終了する。
 ステップs183において、変数LNの値が最大値max1でない場合、ステップs188において、データ処理部32は、変数LNの値を次の値に変更する。具体的には、データ処理部32は、変数LNの値を、処理対象候補のラベルのうち、当該変数LNの現在の値よりも次に大きい値のラベルに変更する。その後、ステップs187が実行されて、対象主画像に対する処理の継続が決定される。
 図29に戻って、ステップs18の終了判定において、データ処理部32が対象主画像に対する処理を終了すると決定すると、ステップs19において、ゲートウェイ3は、対象主画像に対する処理が終了したことを通知するための終了通知をIoT端末2に行う。ゲートウェイ3は、対象主画像から検出対象物が検出された場合には、ステップs19の後のステップs20において、検出対象物が写る検出対象物画像(ゲートウェイ側ROI)を示す画像符号化データ590を含むビットストリーム519をトランスコーダ34で生成する。対象主画像から複数の検出対象物が検出された場合には、当該複数の検出対象物がそれぞれ写る複数の検出対象物画像を示す画像符号化データ590を含むビットストリーム519が生成される。そして、ゲートウェイ3は、生成したビットストリーム519と、画像認識部33が生成する、対象主画像に関する認識結果情報514とを、通信部35からクラウドサーバ5に送信する。これにより、対象主画像に対する処理が終了する。
 なお、対象主画像から検出対象物が検出されなかった場合には、ステップs20が実行されずに対象主画像に対する処理が終了する。あるいは、検出対象物が検出されなかったことを示す情報を含む認識結果情報514が通信部35からクラウドサーバ5に送信された後に、対象主画像に対する処理が終了してもよい。
 ステップs18の終了判定において、データ処理部32が対象主画像に対する処理を継続すると決定すると、ゲートウェイ3はステップs11を再度実行して、指定データを決定する。このステップs11では、変数LN,LVが現在示す値に基づいて指定データが決定される。
 第1処理部321は、変数LVが現在示す対象分解レベルが、最大分解レベル、つまり3である場合、LL3サブバンドのうち、変数LNが現在示す対象ラベルのラベル領域に対応するコードブロックを指定データとする。
 また第1処理部321は、変数LVが現在示す対象分解レベルが、最大分解レベル以外である場合、つまり3よりも小さい場合、対象分解レベルよりも分解レベルが1つ高いLHサブバンド、HLサブバンド及びHHサブバンドにおける、対象ラベルのラベル領域に対応するコードブロックを指定データとする。
 ここで、本例では、上述の説明及び後述の説明から理解できるように、対象分解レベルが3よりも小さい場合には、ゲートウェイ3は、対象分解レベルよりも分解レベルが1つ高いLLサブバンドにおける、対象ラベル領域に対応するコードブロックを、第1メモリ323に記憶している。
 一方で、ゲートウェイ3の認識用データ生成部320の逆ウェーブレット変換部3201は、LL3サブバンド、LH3サブバンド、HL3サブバンド及びHH3サブバンドのコードブロックを逆ウェーブレット変換することによって、LL2サブバンドのコードブロックを復元することができる。同様に、逆ウェーブレット変換部3201は、LL2サブバンド、LH2サブバンド、HL2サブバンド及びHH2サブバンドのコードブロックを逆ウェーブレット変換することによって、LL1サブバンドのコードブロックを復元する。
 したがって、ゲートウェイ3は、対象分解レベルが3よりも小さい場合、上記のように指定データを決定することによって、対象LLサブバンドにおける、対象ラベル領域に対応するコードブロックを復元するために必要なデータを得ることができる。つまり、ゲートウェイ3は、対象分解レベルよりも分解レベルが1つ高いLLサブバンド、LHサブバンド、HLサブバンド及びHHサブバンドにおける、対象ラベル領域に対応するコードブロックを得ることができる。よって、ゲートウェイ3は、上記のように指定データを決定することによって、対象分解レベルのLLサブバンドにおける、対象ラベルのラベル領域に対応するコードブロックを復元することができる。
 図31,32の例において、対象LLサブバンドがLL2サブバンドであって、対象ラベルがラベル1である場合、第1処理部321は、分解レベル3のLH3サブバンド、HL3サブバンド及びHH3サブバンドにおける、ラベル1のラベル領域L1に対応するコードブロックを指定データとする。対象LLサブバンドがLL2サブバンドである場合、ゲートウェイ3は、LL3サブバンドにおける、ラベル1のラベル領域L1に対応するコードブロックをすでにIoT端末2から受け取って第1メモリ323に記憶している。したがって、ゲートウェイ3は、このようにして指定データを決定することによって、LL3サブバンド、LH3サブバンド、HL3サブバンド及びHH3サブバンドにおける、ラベル領域L1に対応するコードブロックを得ることができる。よって、ゲートウェイ3は、LL2サブバンドにおけるラベル領域L1に対応するコードブロックを復元することができる。図34は、図31に示される図において、各サブバンドにおける、ラベル領域L0,L1に対応するコードブロックに対して斜線を示した図である。
 ゲートウェイ3は、ステップs11を実行すると、ステップs12において、ステップs11で決定した指定データを通知するための指示情報518を生成する。そして、ゲートウェイ3は、生成した指示情報518をIoT端末2に送信する。
 IoT端末2は、ステップs21において指示情報518を受信すると、ステップs22において、受信した指示情報518と、マスクデータ502とに基づいて、送信対象コードブロックを決定する。IoT端末2の決定部26は、指示情報518によって指定されるコードブロックを、マスクデータ502に基づいて特定する。そして、決定部26は、特定したコードブロックのうち、すでにゲートウェイ3に送信したコードブロック以外のコードブロックを、送信対象コードブロックとする。これにより、IoT端末2からゲートウェイ3に送信するデータ量を低減することができる。
 例えば図31,32の例において、指示情報518によって指定される指定データが、LL3サブバンドにおける、ラベル領域L1に対応するコードブロックであって、ラベル領域L0に対応する4つのコードブロック570b,570c,570e.570fがゲートウェイ3にすでに送信されているとする。この場合、決定部26は、マスクデータ502に基づいて、ラベル領域L1に対応する4つのコードブロック570d,570e,570g,570hを特定する。そして決定部26は、特定したコードブロック570d,570e,570g,570hのうち、既に送信されているコードブロック570e以外の3つのコードブロック570d,570g,570hを、送信対象コードブロックとする。
 同様に、指示情報518によって指定される指定データが、ある分解レベルのLHサブバンド、HLサブバンド及びHHサブバンドにおける、あるラベルのラベル領域に対応するコードブロックである場合、決定部26は、マスクデータ502に基づいて、当該コードブロックを特定する。そして決定部26は、特定したコードブロックのうち、すでにゲートウェイ3に送信しているコードブロックを除くコードブロックを、送信対象コードブロックとする。
 ステップs22において送信対象コードブロックが決定されると、IoT端末2は、上記と同様にしてステップs23,s24を実行する。ステップs24の後、ステップs25において、IoT端末2は、ゲートウェイ3からの終了通知を受信すると、対象主画像に対する処理を終了する。一方で、IoT端末2は、ステップs24の後、ゲートウェイ3から、終了通知を受信せずに指示情報518を受信する場合(ステップs21)には、上記同様にしてステップs22を実行し、以後同様に動作する。
 図29に戻って、ゲートウェイ3はステップs13においてビットストリーム505をIoT端末2から受信すると、上述のステップs14を実行する。そして、ゲートウェイ3は、ステップs15において、認識用データ生成部320への入力データを生成する。このステップs15では、第1処理部321は、現在の対象分解レベルが最大分解レベル、つまり3である場合、上記と同様に、第1メモリ323から、LL3サブバンドにおける、対象ラベル領域に対応するコードブロック(WT復号化ブロック)を読み出す。そして第1処理部321は、読み出したWT復号化ブロックで構成される逆変換非対象データ521を認識用データ生成部320に入力する。
 一方で、第1処理部321は、現在の対象分解レベルが3よりも小さい場合、第1メモリ323から、対象分解レベルよりも分解レベルが1つ高いLLサブバンド、LHサブバンド、HLサブバンド及びHHサブバンドにおける、対象ラベル領域に対応するコードブロックを読み出す。そして第1処理部321は、読み出したコードブロックで構成される逆変換対象データ522を認識用データ生成部320に入力する。
 次にステップs16において、認識用データ生成部320は認識用データ512を生成する。直前のステップs15において逆変換非対象データ521が認識用データ生成部320に入力される場合には、上記と同様に、逆変換非対象データ521は、逆ウェーブレット変換されずに、色空間変換部3202に入力する。一方で、直前のステップs15において逆変換対象データ522が認識用データ生成部320に入力される場合には、逆ウェーブレット変換部3201が、逆変換対象データ522に対して逆ウェーブレット変換を行う。これにより、逆ウェーブレット変換部3201では、対象分解レベルのLLサブバンドにおける、対象ラベル領域に対応する、ウェーブレット係数から成るコードブロックが生成される。このコードブロックはLLデータ520として第1メモリ323に記憶される。これにより、第1メモリ323には、対象分解レベルのLLサブバンドにおける、対象ラベル領域に対応するコードブロックが記憶される。対象分解レベルが2である場合、LL2サブバンドにおける、対象ラベル領域に対応するコードブロックが記憶され、対象分解レベルが1である場合、LL1サブバンドにおける、対象ラベル領域に対応するコードブロックが記憶される。
 逆ウェーブレット変換部3201で生成されたコードブロックは色空間変換部3202に入力される。色空間変換部3202から出力されるデータはDCレベルシフト部3203に入力される。そして、DCレベルシフト部3203から出力されるデータが認識用データ512となる。
 ステップs16において認識用データ512が生成されると、ゲートウェイ3は、上述と同様にしてステップs17,s18を実行する。そして、ゲートウェイ3は以後同様に動作する。
 以上の説明から理解できるように、IoT端末2において図31,32に示されるラベル0,1が定められる場合、まず、LL3サブバンドにおける、ラベル0のラベル領域L0に対応するコードブロックに対して画像認識処理が行われる。次に、LL3サブバンドにおける、ラベル1のラベル領域L1に対応するコードブロックに対して画像認識処理が行われる。
 LL3サブバンドにおける、ラベル領域L0に対応するコードブロックから検出対象物が検出されず、LL3サブバンドにおける、ラベル領域L1に対応するコードブロックから検出対象物が検出されない場合には、LL2サブバンドにおける、ラベル領域L0に対応するコードブロックに対して画像認識処理が行われ、その後、LL2サブバンドにおける、ラベル領域L1に対応するコードブロックに対して画像認識処理が行われる。
 LL2サブバンドにおける、ラベル領域L0に対応するコードブロックから検出対象物が検出されず、LL2サブバンドにおける、ラベル領域L1に対応するコードブロックから検出対象物が検出されない場合には、LL1サブバンドにおける、ラベル領域L0に対応するコードブロックに対して画像認識処理が行われ、その後、LL1サブバンドにおける、ラベル領域L1に対応するコードブロックに対して画像認識処理が行われる。
 以上のような動作を行う画像処理システム4は、対象主画像に対する処理が終了すると、新たな主画像を対象主画像として、上記と同様の処理を行う。カメラ20で動画が撮影される場合には、画像処理システム4は、あるフレーム画像を対象主画像として当該あるフレーム画像に対する処理が終了すると、当該あるフレーム画像よりも後に撮影されるフレーム画像を新たな対象主画像として処理を開始する。画像処理システム4は、カメラ20で撮影されるフレーム画像に対して、1フレームごとに処理を行ってもよいし、複数フレームごとに処理を行ってもよい。
 以上の説明から理解できるように、図29,30の例では、LLサブバンドが、分解レベルが高いものから順に、画像認識処理の対象とされている。言い換えれば、LLサブバンドが、解像度が低いものから順に、画像認識処理の対象とされている。
 ここで、主画像において写る範囲が大きい検出対象物については、分解レベルが高いLLサブバンド(解像度が低いLLサブバンド)からでも、当該検出対象物が検出される可能性が高い。これに対して、主画像において写る範囲が小さい検出対象物については、分解レベルが高いLLサブバンドから当該検出対象物を検出することができない可能性がある。本例のように、LLサブバンドが、分解レベルが高いものから順に処理対象とされることによって、データ量の多い、分解レベルが低いLLサブバンド(解像度が高いLLサブバンド)を使用することなく、主画像において、写る範囲が大きい検出対象物を検出することが可能となる。上記の図31,32の例では、ラベル0のラベル領域L0に対応する検出対象物が、例えばLL3サブバンドから検出可能である場合、当該検出対象物の検出には、LL3サブバンドの分解レベルよりも高い分解レベルのLL2サブバンド及びLL1サブバンドは使用されない。よって、IoT端末2がゲートウェイ3に送信するデータ量を低減することができるとともに、ゲートウェイ3での画像認識処理を簡素化できる。
 なお、図29,30に示される画像処理システム4の動作はあくまでも一例であって、画像処理システム4は図29,30示される処理とは異なる処理を行ってもよい。
 またゲートウェイ3は、IoT端末2からの画像符号化データ504を画像認識処理以外の処理で使用してもよい。
 また上記の例では、IoT端末2はマスクデータ502をゲートウェイ3に送信していたが、マスクデータ502を送信しなくてもよい。この場合には、図35に示されるように、IoT端末2ではマスク符号化部23aが不要となる。
 また、IoT端末2の決定部26は、指示情報518を使用せずに送信対象コードブロックを決定してもよい。この場合には、IoT端末2の処理が簡素化される。また、ゲートウェイ3は指示情報518を生成する必要がなくなることから、ゲートウェイ3の処理が簡素化する。
 IoT端末2は、指示情報518を使用せずに送信対象コードブロックを決定する場合には、対象主画像に対する処理が開始すると、例えば、LL3サブバンドにおける、マスクデータ502が示す最大展開マスクのROI対応部分に対応するコードブロック570(以後、ROI対応ブロックと呼ぶことがある)を送信対象コードブロックとして送信する。ゲートウェイ3は、受け取ったLL3サブバンドのROI対応ブロックを認識用データ512として画像認識処理を行う。
 ゲートウェイ3が検出対象物を検出すると、対象主画像に対する処理が終了する。一方で、ゲートウェイ3が検出対象物を検出しない場合には、IoT端末2は、LL2サブバンドのROI対応ブロックの画像が認識対象画像とされるために、LH3サブバンド、HL3サブバンド及びHH3サブバンドのROI対応ブロックを送信対象コードブロックとして送信する。ゲートウェイ3は、すでに受け取っているLL3サブバンドのROI対応ブロックと、LH3サブバンド、HL3サブバンド及びHH3サブバンドのROI対応ブロックとから成る逆変換対象データ522を逆ウェーブレット変換して、LL2サブバンドのROI対応ブロックを生成する。そして、ゲートウェイ3は、LL2サブバンドのROI対応ブロックを認識用データ512として画像認識処理を行う。
 ゲートウェイ3が検出対象物を検出すると、対象主画像に対する処理が終了する。一方で、ゲートウェイ3が検出対象物を検出しない場合には、IoT端末2は、LL1サブバンドのROI対応ブロックの画像が認識対象画像とされるために、LH2サブバンド、HL2サブバンド及びHH2サブバンドのROI対応ブロックを送信対象コードブロックとして送信する。ゲートウェイ3は、すでに生成しているLL2サブバンドのROI対応ブロックと、LH2サブバンド、HL2サブバンド及びHH2サブバンドのROI対応ブロックとから成る逆変換対象データ522を逆ウェーブレット変換して、LL1サブバンドのROI対応ブロックを生成する。そして、ゲートウェイ3は、LL1サブバンドのROI対応ブロックを認識用データ512として画像認識処理を行う。その後、対象主画像に対する処理が終了する。
 なお、IoT端末2が指示情報518を使用せずに送信対象コードブロックを決定する場合の画像処理システム4の動作は上記の例には限られない。
 また、IoT端末2の決定部26は、マスクデータ502を使用せずに送信対象コードブロックを決定してもよい。この場合には、IoT端末2の処理が簡素化される。IoT端末2は、マスクデータ502を使用せずに送信対象コードブロックを決定する場合には、ゲートウェイ3からの指示情報518で指定されるコードブロックをそのまま送信対象コードブロックとして送信する。
 IoT端末2が、マスクデータ502を使用せずに送信対象コードブロックを決定する場合には、ゲートウェイ3は、対象主画像に対する処理が開始すると、例えば、LL3サブバンドの全コードブロックを指定データとして指示情報518を送信する。この指示情報518を受け取ったIoT端末2は、LL3サブバンドの全コードブロックを送信対象コードブロックとして送信する。ゲートウェイ3は、受け取ったLL3サブバンドの全コードブロックを認識用データ512として画像認識処理を行う。
 ゲートウェイ3が検出対象物を検出すると、対象主画像に対する処理が終了する。一方で、ゲートウェイ3は、検出対象物を検出しない場合には、LL2サブバンド画像を認対象画像とするために、LH3サブバンド、HL3サブバンド及びHH3サブバンドの全コードブロックを指定データとして指示情報518を送信する。この指示情報518を受け取ったIoT端末2は、LH3サブバンド、HL3サブバンド及びHH3サブバンドの全コードブロックを送信対象コードブロックとして送信する。ゲートウェイ3は、すでに受け取っているLL3サブバンドの全コードブロックと、LH3サブバンド、HL3サブバンド及びHH3サブバンドの全コードブロックとから成る逆変換対象データ522を逆ウェーブレット変換してLL2サブバンドの全コードブロックを生成する。そして、ゲートウェイ3は、LL2サブバンドの全コードブロックを認識用データ512として画像認識処理を行う。
 ゲートウェイ3が検出対象物を検出すると、対象主画像に対する処理が終了する。一方で、ゲートウェイ3は、検出対象物を検出しない場合には、LL1サブバンド画像を認対象画像とするために、LH2サブバンド、HL2サブバンド及びHH2サブバンドの全コードブロックを指定データとして指示情報518を送信する。この指示情報518を受け取ったIoT端末2は、LH2サブバンド、HL2サブバンド及びHH2サブバンドの全コードブロックを送信対象コードブロックとして送信する。ゲートウェイ3は、生成したLL2サブバンドの全コードブロックと、LH2サブバンド、HL2サブバンド及びHH2サブバンドの全コードブロックとから成る逆変換対象データ522を逆ウェーブレット変換してLL1サブバンドの全コードブロックを生成する。そして、ゲートウェイ3は、LL1サブバンドの全コードブロックを認識用データ512として画像認識処理を行う。その後、対象主画像に対する処理が終了する。
 このように、IoT端末2が、マスクデータ502を使用せずに送信対象コードブロックを決定する場合に、ゲートウェイ3が指示情報518の生成にマスク復号化データ510を使用しない場合には、IoT端末2は、マスクデータ502を生成しなくてもよい。この場合には、図36に示されるように、縮小画像メモリ22a、マスク生成部23及びマスク符号化部24aが不要となる。よって、IoT端末2の構成が簡素化されて、IoT端末2の消費電流が低減する。
 また、IoT端末2がマスクデータ502を使用せずに送信対象コードブロックを決定する場合には、ゲートウェイ3は、上記のように指示情報518を生成するとともに、マスク復号化データ510を、認識用データ512の生成で使用してもよい。図37は、この場合の認識用データ生成部320の構成の一例を示す図である。図37に示される認識用データ生成部320は、上述の図25に示される認識用データ生成部320と比較して、特定部3204をさらに備えている。特定部3204は、DCレベルシフト部3203から出力されるLLサブバンドの全コードブロックにおいて、マスク復号化データ510が示す最大展開マスクのROI対応部分に対応するコードブロック(ROI対応ブロック)を特定する。そして特定部3204は、特定したROI対応ブロックを認識用データ512として画像認識部33に入力する。
 また、IoT端末2がマスクデータ502を使用せずに送信対象コードブロックを決定する場合には、ゲートウェイ3は、IoT端末2で生成された最大展開マスクを示すマスク復号化データ510に基づいて指定データを決定してもよい。例えば、ゲートウェイ3の第1処理部321は、マスク復号化データ510が示す最大展開マスクのROI対応部分に対して、上述のグルーピング処理及びラベリング処理を順次行う。これにより、ROI対応部分に対してラベル領域が設定される。そして、第1処理部321は、ステップs11において、対象分解レベルが最大分解レベル、つまり3の場合、ラベリング処理された最大展開マスク(図31参照)を使用して、LL3サブバンドにおける、対象ラベルのラベル領域に対応するコードブロックを特定する。そして第1処理部321は、特定したコードブロックを指定データとし、当該指定データの各コードブロックの位置を特定するための指示情報518を生成する。このとき、第1処理部321は、特定したコードブロックのうち、第1メモリ323に記憶されているコードブロックを指定データから除外する。
 また第1処理部321は、ステップs11において、対象分解レベルが3よりも小さい場合、ラベリング処理された最大展開マスクを使用して、対象分解レベルよりも分解レベルが1つ高いLHサブバンド、HLサブバンド及びHHサブバンドにおける、対象ラベルのラベル領域に対応するコードブロックを特定する。そして第1処理部321は、特定したコードブロックを指定データとし、当該指定データの各コードブロックの位置を特定するための指示情報518を生成する。このとき、第1処理部321は、対象分解レベルが3のときと同様に、特定したコードブロックのうち、第1メモリ323に記憶されているコードブロックを指定データから除外する。
 ゲートウェイ3が、上記のようにして、マスク復号化データ510に基づいて指定データを決定する場合には、IoT端末2の決定部26は、マスクデータ502を使用せずに、ゲートウェイ3からの指示情報518で指定されるコードブロックをそのまま送信対象コードブロックとする。
 なお、IoT端末2がマスクデータ502を使用せずに送信対象コードブロックを決定する場合の画像処理システム4の動作は上記の例には限られない。
 また上記の図29,30,33の例では、分解レベル順に画像認識処理が行われていたが、ラベル順に画像認識処理が行われてもよい。図38のこの場合の終了判定(ステップs18)の一例を示すフローチャートである。
 図38に示されるように、ステップs191において、データ処理部32は、対象ラベルに関して、検出対象物が検出されたか否かを特定する。つまり、データ処理部32は、直前のステップs17の画像認識処理において検出対象物が検出されたか否かを特定する。データ処理部32は、対象ラベルに関して、検出対象物が検出されたことを特定すると、ステップs194において、変数LNの値が、最大値max2と一致するか否かを判定する。ここで、最大値max2は、上述の最大値max1とは異なり、IoT端末2で定められたラベルのうちの最大値を意味している。図31,32の例では、最大値max2=2となる。
 データ処理部32は、ステップs194において、変数LNの値が最大値max2と一致すると判定すると、対象主画像に対する処理を終了することを決定する。これにより、終了判定が終了する。
 一方で、データ処理部32は、ステップs194において、変数LNの値が最大値max2と一致しないと判定すると、ステップs195において、変数LNの値を1つ増加する。これにより、今までの対象ラベルよりも1つだけ大きいラベルが対象ラベルとなる。そしてデータ処理部32は、ステップs196において、変数LVの値を、最大分解レベル、つまり3に設定する。これにより、対象分解レベルが最大分解レベルとなる。そしてステップs197において、データ処理部32は、対象主画像に対する処理を継続することを決定する。これにより、終了判定が終了する。
 ステップs191において、対象ラベルに関して、検出対象物が検出されていないと特定されると、データ処理部32は、ステップs192において、変数LVの値が1であるか否かを判定する。変数LVの値が1である場合、つまり対象分解レベルが1である場合、データ処理部32は、上述のステップs194を実行し、以後同様に動作する。一方で、変数LVの値が1でない場合、つまり対象分解レベルが1よりも大きい場合、データ処理部32は、ステップs193において、変数LVの値を1つ減少する。これにより、今までの対象分解レベルよりも1つ小さい分解レベルが対象分解レベルとなる。その後、データ処理部32は、ステップs197を実行して、対象主画像に対する処理を継続することを決定する。
 図37に示される終了処理が実行される場合には、図31,32の例では、まず、LL3サブバンドにおける、ラベル領域L0に対応するコードブロックに対して画像認識処理が行われる。検出対象物が検出されない場合、LL2サブバンドにおける、ラベル領域L0に対応するコードブロックに対して画像認識処理が行われる。検出対象物が検出されない場合、LL1サブバンドにおける、ラベル領域L0に対応するコードブロックに対して画像認識処理が行われる。
 ラベル0に関する画像認識処理で検出対象物が検出されると、LL3サブバンドにおける、ラベル領域L1に対応するコードブロックに対して画像認識処理が行われる。検出対象物が検出されない場合、LL2サブバンドにおける、ラベル領域L1に対応するコードブロックに対して画像認識処理が行われる。検出対象物が検出されない場合、LL1サブバンドにおける、ラベル領域L1に対応するコードブロックに対して画像認識処理が行われる。
 また、ゲートウェイ3のデータ処理部32は、主画像データ500の高周波成分を認識用データ512として画像認識部33に入力する場合には、LHサブバンド、HLサブバンドあるいはHHサブバンドをそのまま認識用データ512としてもよいし、同じ分解レベルのLHサブバンド、HLサブバンド及びHHサブバンドを統合して得られる統合サブバンドを認識用データ512としてもよい。データ処理部32は、LHサブバンド、HLサブバンド及びHHサブバンドを統合する場合には、例えば、LHサブバンド、HLサブバンド及びHHサブバンドにおいて同じ位置に存在する係数の平均値を求めて、求めた平均値を、統合サブバンドにおける、それと同じ位置の係数とする。また、データ処理部32は、LHサブバンド、HLサブバンド及びHHサブバンドにおいて同じ位置に存在する係数のうちの最大値を、統合サブバンドにおける、それと同じ位置の係数としてもよい。なお、LHサブバンド、HLサブバンド及びHHサブバンドを統合する方法はこの限りではない。
 また、ゲートウェイ3は、IoT端末2に対して送信すべきデータを指示する場合には、ウェーブレット平面を構成する複数のサブバンド間でのコードブロックの対応関係を示すCB対応関係情報を利用してもよい。図39は、複数のサブバンド間でのコードブロックの対応関係の一例を示す図である。図39において斜線が示される部分が、互いに対応するコードブロック570である。
 ここで、複数のサブバンドの間で互いに対応するコードブロック570は、主画像の同じ部分を示している。図39において、LL3サブバンドの斜線の1つのコードブロック570LL3と、LH3サブバンドの斜線の1つのコードブロック570LH3と、HL3サブバンドの斜線の1つのコードブロック570HL3と、HH3サブバンドの斜線の1つのコードブロック570HH3とは、主画像の同じ部分を示している。また、LH2サブバンドの斜線の4つのコードブロック570LH2と、HL2サブバンドの斜線の4つのコードブロック570HL2と、HH2サブバンドの斜線の4つのコードブロック570HH2とは、主画像の同じ部分を示している。また、LH1サブバンドの斜線の16個のコードブロック570LH1と、HL1サブバンドの斜線の16個のコードブロック570HL1と、HH1サブバンドの斜線の16個のコードブロック570HH1とは、主画像の同じ部分を示している。また、分解レベル3の各サブバンドの斜線の1つのコードブロック570と、分解レベル2の各サブバンドの斜線の4つのコードブロック570と、分解レベル1の各サブバンドの斜線の16個のコードブロック570とは、主画像の同じ部分を示している。
 ゲートウェイ3は、図39に示されるような、複数のサブバンド間でのコードブロックの対応関係を示すCB対応関係情報を記憶している。ゲートウェイ3は、CB対応関係情報を利用して指定データを決定する場合には、対象主画像に対する処理が開始すると、例えば、図39において斜線で示される、LL3サブバンドのコードブロック570LL3を指定データとして指示情報518を送信する。この指示情報518を受け取ったIoT端末2は、コードブロック570LL3を送信対象コードブロックとして送信する。ゲートウェイ3は、受け取ったコードブロック570LL3を認識用データ512として画像認識処理を行う。
 ゲートウェイ3が検出対象物を検出すると、対象主画像に対する処理が終了する。一方で、ゲートウェイ3は、検出対象物を検出しない場合には、LL2サブバンドを処理対象とするために、図39において斜線で示される、LH3サブバンドのコードブロック570LH3、HL3サブバンドのコードブロック570HL3及びHH3サブバンドのコードブロック570HH3を指定データとして指示情報518を送信する。この指示情報518を受け取ったIoT端末2は、コードブロック570LH3,570HL3,570HH3を送信対象コードブロックとして送信する。ゲートウェイ3は、すでに受け取っているコードブロック570LL3と、コードブロック570LH3,570HL3,570HH3とから成る逆変換対象データ522を逆ウェーブレット変換して、コードブロック570LL3,570LH3,570HL3,570HH3に対応する、LL2サブバンドの4つのコードブロック570を生成する。そして、ゲートウェイ3は、生成した4つのコードブロックを認識用データ512として画像認識処理を行う。
 ゲートウェイ3が検出対象物を検出すると、対象主画像に対する処理が終了する。一方で、ゲートウェイ3は、検出対象物を検出しない場合には、LL1サブバンドを処理対象とするために、図39において斜線で示される、LH2サブバンドの4つのコードブロック570LH2、HL2サブバンドの4つのコードブロック570HL2及びHH2サブバンドの4つのコードブロック570HH2を指定データとして指示情報518を送信する。この指示情報518を受け取ったIoT端末2は、4つのコードブロック570LH2、4つのコードブロック570HL2及び4つのコードブロック570HH2を、送信対象コードブロックとして送信する。ゲートウェイ3は、生成したLL2サブバンドの4つのコードブロックと、4つのコードブロック570LH2と、4つのコードブロック570HL2と、4つのコードブロック570HH2とから成る逆変換対象データ522を逆ウェーブレット変換して、分解レベル2の各サブバンドの4つのコードブロック570に対応する、LL1サブバンドの16個のコードブロックを生成する。そして、ゲートウェイ3は、生成した16個のコードブロックを認識用データ512として画像認識処理を行う。その後、対象主画像に対する処理が終了する。
 なお、ゲートウェイ3がCB対応関係情報を使用して指定データを決定する場合の画像処理システム4の動作は上記の例には限られない。
 <各種変形例>
 以下に画像処理システム4の各種変形例について説明する。
 <第1変形例>
 <IoT端末>
 図40は、本変形例に係る画像処理システム4のIoT端末2の構成の一例を示す図である。図40に示されるように、本変形例に係るIoT端末2は、上述の図3に示されるIoT端末2において、マスク生成部23及びマスク符号化部24aの替りに、動き検出部27及び縮小画像符号化部24cを備えるものである。本変形例では、主画像はカメラ20で撮影される動画のフレーム画像となっている。以後、主画像をフレーム画像と呼ぶことがある。また、縮小画像を縮小フレーム画像と呼ぶことがある。
 符号化装置24が備える縮小画像符号化部24cは、縮小画像メモリ22aから縮小画像データ501を読み出す。そして、縮小画像符号化部24cは、読み出した縮小画像データ501を階層符号化する。
 図41は縮小画像符号化部24cの構成の一例を示す図である。縮小画像符号化部24cは、画像符号化部24bと同様の構成を有している(図5参照)。図41に示されるように、縮小画像符号化部24cは、階層化部650、符号化部656及びビットストリーム生成部659を備える。階層化部650は、縮小画像データ501から階層化データを生成する。符号化部656は、階層化データを圧縮符号化して縮小画像符号化データ507を生成する。ビットストリーム生成部659は、縮小画像符号化データ507を含むビットストリーム508を生成して送信部25aに送信する。送信部25aは、ビットストリーム508をゲートウェイ3に送信する。
 階層化部650は、DCレベルシフト部651、色空間変換部652、タイリング部653、ウェーブレット変換部654及び量子化部655を備えている。DCレベルシフト部651、色空間変換部652、タイリング部653、ウェーブレット変換部654及び量子化部655の動作は、それぞれ、画像符号化部24bのDCレベルシフト部241、色空間変換部242、タイリング部243、ウェーブレット変換部244及び量子化部245の動作と同様である。
 符号化部656は、係数ビットモデリング部657及びエントロピー符号化部658を備えている。係数ビットモデリング部657及びエントロピー符号化部658の動作は、それぞれ、画像符号化部24bの係数ビットモデリング部247及びエントロピー符号化部248の動作と同様である。ただし、画像符号化部24bの係数ビットモデリング部247は、量子化ウェーブレット係数データを構成する複数のコードブロックのうちの送信対象コードブロックに対してビットモデリング処理を行っていたが、係数ビットモデリング部657は、量子化ウェーブレット係数データを構成する複数のコードブロックのすべてに対してビットモデリング処理を行う。
 ビットストリーム生成部659は、画像符号化部24bのビットストリーム生成部249と同様に動作する。ビットストリーム生成部659は、縮小画像符号化データ507をパケット化し、それによって生成されたパケットデータと付加情報を含むビットストリーム508を生成する。これにより、IoT端末2からは、主画像を縮小した縮小画像を示すデータがゲートウェイ3に送信される。
 動き検出部27は、縮小画像メモリ22a内の縮小画像データ501に基づいて、主画像の撮影範囲(カメラ20の撮影範囲)での物体の動きを検出する。動き検出部27は、例えば、縮小画像データ501に基づいて縮小フレーム画像間の差分を示す差分画像(2値画像)を生成し、当該差分画像に基づいて、撮影範囲での物体の動きを検出することができる。動き検出部27の少なくとも一部は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてよい。また、動き検出部27の少なくとも一部は、コンピュータがプログラムを実行することによって実現される機能ブロックであってもよい。以後、主画像の撮影範囲での物体の動きを単に「動き」と呼ぶことがある。
 また動き検出部27は、主画像メモリ22b、画像符号化部24b及び決定部26の動作の停止及び起動を制御することができる。動き検出部27は、動きを検出しないとき、主画像メモリ22b、画像符号化部24b及び決定部26の動作を停止する。動き検出部27は、動きを検出しないとき、例えば、主画像メモリ22b、画像符号化部24b及び決定部26に対する動作クロックの供給を停止することによって、主画像メモリ22b、画像符号化部24b及び決定部26の動作を停止する。一方で、動き検出部27は、動きを検出したとき、主画像メモリ22b、画像符号化部24b及び決定部26を動作させる。動き検出部27は、動きを検出したとき、例えば、主画像メモリ22b、画像符号化部24b及び決定部26に対して動作クロックを供給することによって、主画像メモリ22b、画像符号化部24b及び決定部26を動作させる。
 このように、本変形例に係るIoT端末2では、動き検出部27が動きを検出しない場合には、主画像メモリ22b、画像符号化部24b及び決定部26の動作が停止する。したがって、動き検出部27が動きを検出しない場合には、IoT端末2の送信部25aはビットストリーム505を送信しない。例えば、IoT端末2が設けられる空間(例えば家など)に人が存在しない場合には、IoT端末2はビットストリーム505を送信しない。これにより、IoT端末2の消費電力が低減する。
 なお、本変形例に係るIoT端末2は、主画像メモリ22b、画像符号化部24b及び決定部26の動作を停止することによって、ビットストリーム505を送信しないようにしている。しかしながら、動き検出部27が動きを検出しない場合、主画像メモリ22b、画像符号化部24b及び決定部26の動作が停止せずに、画像符号化部24bで生成されるビットストリーム505を送信部25aが送信しないようにしてもよい。この場合であっても、IoT端末2の消費電力が低減する。本変形例のように、主画像メモリ22b、画像符号化部24b及び決定部26の動作を停止することによって、IoT端末2の消費電力はさらに低減する。
 また、本変形例に係るIoT端末2では、縮小画像データ501に基づいて動きが検出されることから、主画像データ500に基づいて動きが検出される場合と比較して、IoT端末2の処理を簡素化することができる。よって、IoT端末2の消費電力が低減する。
 また、本変形例に係るIoT端末2では、図3の例とは異なり、マスクデータ502が生成されないことから、IoT端末2の処理を簡素化することができる。よって、IoT端末2の消費電力が低減する。
 <ゲートウェイ>
 図42は、本変形例に係る画像処理システム4のゲートウェイ3の構成の一例を示す図である。図42に示されるように、本変形例に係るゲートウェイ3は、上述の図4に示されるゲートウェイ3において、マスク復号化部31aの替りに縮小画像復号化部31cを備えるとともに、マスク生成部36をさらに備えるものである。
 復号化装置31が備える縮小画像復号化部31cは、受信部30aが受信するビットストリーム508から縮小画像符号化データ507を抽出する。そして、縮小画像復号化部31cは、抽出した縮小画像符号化データ507を伸張復号化して縮小画像復号化データ525を生成する。以後、縮小画像復号化データ525を縮小画像データ525と呼ぶことがある。
 図43は縮小画像復号化部31cの構成の一例を示す図である。図43に示されるように、縮小画像復号化部31cは、ビットストリーム解析部700、復号化部701、逆量子化部704、逆ウェーブレット変換部705、タイリング部706、色空間変換部707及びDCレベルシフト部708を備えている。
 ビットストリーム解析部700は、IoT端末2からのビットストリーム508を解析して、当該ビットストリーム508から縮小画像符号化データ507及び付加情報を抽出する。ビットストリーム解析部700は、抽出した縮小画像符号化データ507を復号化部701に出力する。抽出された付加情報は、復号化部701及び逆量子化部704等で使用される。
 復号化部701は、縮小画像符号化データ507に対して所定の伸張復号化を行う。所定の伸張復号化は、符号量制御を除いて、図40の符号化部656における圧縮符号化とは逆の処理にあたる。所定の伸張復号化によって、縮小画像符号化データ507から、量子化ウェーブレット係数が生成される。復号化部701は、エントロピー復号化部702及び係数ビットモデリング部703を備えている。エントロピー復号化部702及び係数ビットモデリング部703の動作は、それぞれ、画像復号化部31bのエントロピー復号化部312及び係数ビットモデリング部313(図23参照)の動作と同様である。
 逆量子化部704は、復号化部701で生成される量子化ウェーブレット係数データに対して逆量子化を行って、ウェーブレット係数データを生成する。ここでの逆量子化は、図40の量子化部655における量子化とは逆の処理にあたる。
 逆ウェーブレット変換部705は、逆量子化部704で生成されるウェーブレット係数データに対して逆ウェーブレット変換(詳細には逆離散ウェーブレット変換)を行って、分解レベル0のウェーブレット画像を示すデータ、つまり原画像である縮小画像を示す縮小画像データを生成する。
 タイリング部706は、逆ウェーブレット変換部705で生成された縮小画像データに対して複数のタイルを合成する処理を行う。色空間変換部707は、タイリング部706で処理された縮小画像データに対して、図41の色空間変換部652での処理と逆の処理を行う。DCレベルシフト部708は、色空間変換部707で処理された縮小画像データのDCレベルを必要に応じて変換する。DCレベルシフト部708で処理された縮小画像データが縮小画像データ525としてマスク生成部36に入力される。
 マスク生成部36は、縮小画像データ525に基づいて、主画像(フレーム画像)における関心領域を特定するためのマスクデータ526を生成して出力する。マスク生成部36は、上述の図3に示されるマスク生成部23がマスクデータ502を生成する方法と同様の方法でマスクデータ526を生成する。これにより、上述の図18に示されるような最大展開マスクを示すマスクデータ526が生成される。マスクデータ526はデータ処理部32に入力される。マスク生成部36の少なくとも一部は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてよい。また、マスク生成部36の少なくとも一部は、コンピュータがプログラムを実行することによって実現される機能ブロックであってもよい。
 本変形例に係るマスクデータ526では、例えば、動体が写る部分がROIに設定されている。言い換えれば、主画像の撮影範囲において物体が動く動き領域の画像がROIに設定されている。したがって、撮影範囲において物体の動きがない場合には、マスクデータ526が示す最大展開マスクにROI対応部分が現れない。一方で、撮影範囲において物体の動きがある場合には、マスクデータ526が示す最大展開マスクにはROI対応部分が現れる。したがって、マスクデータ526が示す最大展開マスクにROI対応部分が現れているか否かによって、撮影範囲において物体の動きがあるか否かを特定することができる。言い換えれば、マスクデータ526が示す最大展開マスクにROI対応部分が現れているか否かによって、IoT端末2の動き検出部27が動きを検出しているか否かを特定することができる。
 なおマスクデータ526は、トランスコーダ34で使用されるマスクデータ515の生成で利用されてもよい。
 このように、本変形例では、処理能力が高いゲートウェイ3によってマスクデータ526が生成されることから、処理能力が低いIoT端末2が生成するマスクデータ526よりも精度の高いマスクデータ526を生成することができる。
 <画像処理システムの動作例>
 本変形例では、ゲートウェイ3の第1処理部321は、マスクデータ526に基づいて指定データを決定する。図44は、対象主画像(処理対象のフレーム画像)に対して処理を行う画像処理システム4のゲートウェイ3の動作の一例を示す図である。
 図44に示されるように、処理対象のフレーム画像に対する処理が開始すると、ステップs31において、第1処理部321は、処理対象のフレーム画像を縮小した縮小画像を示す縮小画像データ525が使用されて生成されたマスクデータ526が示す最大展開マスク(以後、対象最大展開マスクと呼ぶことがある)に、ROI対応部分が現れているか否か確認する。第1処理部321は、対象最大展開マスクにROI対応部分が現れていない場合には、IoT端末2の動き検出部27が動きを検出していないとして、処理対象のフレーム画像に対する処理を終了する。動き検出部27が動きを検出していないときには、主画像メモリ22b、画像符号化部24b及び決定部26の動作が停止する。したがって、IoT端末2は、画像符号化データ504をゲートウェイ3に送信することができない。よって、この場合には、処理対象のフレーム画像に対する処理を終了する。
 一方で、第1処理部321は、対象最大展開マスクにROI対応部分が現れている場合には、ステップs11を実行して、指定データを決定する。本変形例に係るステップs11では、マスクデータ526が使用される。
 処理対象のフレーム画像に対する処理が開始した後の最初のステップs11では、第1処理部321は、対象最大展開マスクのROI対応部分に対して、上述のグルーピング処理及びラベリング処理を順次行う。これにより、ROI対応部分に対してラベル領域が設定される。そして、第1処理部321は、LL3サブバンドを対象LLサブバンドとし、ラベル0を対象ラベルとする。第1処理部321は、変数LVの値を3に設定し、変数LNの値を0に設定する。そして、第1処理部321は、ラベリング処理された対象最大展開マスク(図31参照)を使用して、LL3サブバンドにおける、ラベル0のラベル領域に対応するコードブロックを特定する。そして第1処理部321は、特定したコードブロックを指定データとし、当該指定データの各コードブロックの位置を特定するための指示情報518を生成する。この指示情報518はステップs12においてIoT端末2に送信される。
 2回目以降のステップs11では、第1処理部321は、変数LVの値が3の場合、LL3サブバンドにおける、対象ラベルのラベル領域に対応するコードブロックを特定する。そして第1処理部321は、特定したコードブロックを指定データとし、当該指定データの各コードブロックの位置を特定するための指示情報518を生成する。このとき、第1処理部321は、特定したコードブロックのうち、第1メモリ323に記憶されているコードブロックを指定データから除外する。
 2回目以降のステップs11では、対象分解レベルが3よりも小さい場合、第1処理部321は、対象分解レベルよりも分解レベルが1つ高いLHサブバンド、HLサブバンド及びHHサブバンドにおける、対象ラベルのラベル領域に対応するコードブロックを特定する。そして第1処理部321は、特定したコードブロックを指定データとし、当該指定データの各コードブロックの位置を特定するための指示情報518を生成する。このとき、第1処理部321は、対象分解レベルが3のときと同様に、特定したコードブロックのうち、第1メモリ323に記憶されているコードブロックを指定データから除外する。他のゲートウェイ3の動作については、上記と同様である。
 IoT端末2は、主画像メモリ22b、画像符号化部24b及び決定部26が動いているときに指示情報518を受信することが可能である。IoT端末2は、指示情報518を受信すると(ステップs21)、受信した指示情報518によって指定されるコードブロックをそのまま送信対象コードブロックとする(ステップs22)。以後、IoT端末2は同様に動作する。
 上記の例では、動き検出部27が動きを検出すると、主画像メモリ22b、画像符号化部24b及び決定部26のすべての動作が停止しているが、主画像メモリ22b、画像符号化部24b及び決定部26の少なくとも一つの動作が停止してもよい。またIoT端末2は、図45に示されるように、動き検出部27を備えていなくてもよい。
 また、上述の図3に示されるマスク生成部23が、動き検出部27を備えてもよい。図46はこの場合のIoT端末2の構成を示す図である。マスク生成部23が備える動き検出部27は、図40の例と同様に、動きを検出しないとき、主画像メモリ22b、画像符号化部24b及び決定部26の動作を停止する。一方で、動き検出部27は、動きを検出したとき、主画像メモリ22b、画像符号化部24b及び決定部26を動作させる。
 また、図46に示される動き検出部27は、動きを検出するだけではなく、主画像の撮影範囲において物体が動く動き領域を特定する。そして、マスク生成部23は、動き検出部27で特定された動き領域の画像(動体が写る画像とも言える)をROIとし、当該ROIを特定するためのマスクデータ502を生成する。
 動き検出部27は、動き領域を特定する場合、例えば、縮小画像データ501に基づいて、縮小フレーム画像間の差分を示す差分画像を生成する。この差分画像は2値画像である。動き検出部27は、差分画像において、画素値が1の高輝度領域を特定する。そして、動き検出部27は、撮影範囲における、特定した高輝度領域に対応する部分を、動き領域とする。そして動き検出部27は、特定した動き領域の画像(ROI)を特定するためのマスクデータ502を上記と同様にして生成する。これにより、マスクデータ502が示す最大展開マスクでは、撮影範囲中の動き領域(動体が存在する領域とも言える)に対応する部分がROI対応部分となる。そして、マスクデータ502に基づいて送信対象コードブロックを決定する決定部26は、撮影範囲中の動き領域に対応するコードブロック(動体を示すコードブロック)を送信対象コードブロックとする。
 <第2変形例>
 上記の各例では、ゲートウェイ3は、画像データを含むビットストリーム519をクラウドサーバ5に送信していたが、ビットストリーム519をクラウドサーバ5に送信しなくてもよい。つまり、ゲートウェイ3は、メタデータである認識結果情報514だけをクラウドサーバ5に送信してもよい。この場合には、図47に示されるようにトランスコーダ34が不要となり、図48に示されるようにデータ処理部32の第2メモリ324及び第2処理部322が不要になる。なお図47は、上述の第1変形例に係るゲートウェイ3(図42参照)がビットストリーム519を送信しない場合の当該ゲートウェイ3の構成を示す図である。図4等に示される他の例に係るゲートウェイ3についてもトランスコーダ34を設けなくてもよい。
 このように、ゲートウェイ3が画像データをクラウドサーバ5に送信しないことによって、IoT端末2が生成した画像データがインターネットに流れる可能性を低減することができる。よって、例えば、IoT端末2で生成される画像データに写る人のプライバシーが侵害される可能性を低減することができる。
 <第3変形例>
 上記の各例に係るIoT端末2は、画像符号化データ504をパケット化して送信していたが、画像符号化データ504をパケット化せずに送信してもよい。これにより、パケットヘッダの生成が不要になる。さらに、パケットヘッダに含められる、零長パケット情報、コードブロックの包含情報、零ビットプレーン情報、符号化パス数情報及びコードブロックの符号量情報のうち、ゲートウェイ3でのパケットヘッダの復号化に必要な零長パケット情報及びコードブロックの含有情報の生成が不要になる。画像符号化部24bのビットストリーム生成部249は、パケット化されてない画像符号化データ504と付加情報を含むビットストリーム505を生成する。この付加情報には、パケットヘッダの代りに、零ビットプレーン情報、符号化パス数情報及びコードブロックの符号量情報が符号化されずに含められる。
 このように、本変形例に係るIoT端末2では、画像符号化データ504がパケット化されないことから、IoT端末2ではデータのパケット化が不要となる。これにより、IoT端末2の処理が簡素化される。よって、IoT端末2の消費電力を低減することができるとともに、IoT端末2から送信されるデータの送信遅延を低減することができる。
 またIoT端末2では、パケットヘッダの生成が不要になることから、処理がさらに簡素化される。よって、IoT端末2の消費電力をさらに低減することができるとともに、IoT端末2から送信されるデータの送信遅延をさらに低減することができる。
 また、IoT端末2からのビットストリーム505を処理するゲートウェイ3では、画像復号化部31bのビットストリーム解析部310は、パケットヘッダを復号化する必要がない。よって、ゲートウェイ3の処理を簡素化できる。
 <第4変形例>
 ゲートウェイ3の画像認識部33が検出する検出対象物の種類によっては、画像認識部33は解像度が低い画像から検出対象物を検出することが可能である。
 また、ゲートウェイ3が、IoT端末2から受け取る画像符号化データ504を使用して行う処理の種類によっては、解像度が高い画像を示す画像符号化データ504が必要とされる場合もあれば、画像符号化データ504が示す画像の解像度が低くてもよい場合がある。例えば、ゲートウェイ3が、画像符号化データ504に基づいて、クラウドサーバ5に対して解像度が高い動画をストリーミング送信する場合には、解像度が高い画像を示す画像符号化データ504が必要とされる。
 そこで、本変形例に係る画像処理システム4は、IoT端末2で生成されるコードブロック中の量子化ウェーブレット係数の二進値を構成する複数のビットにおいて、ゲートウェイ3に送信するビットを調整することによって、画像符号化データ504が示す画像の解像度を調整することができる。以下に本変形例に係る画像処理システム4について詳細に説明する。以後、画像の画素に対応する量子化ウェーブレット係数の二進値を構成するビットの数をL(Lは2以上の整数)で表す。
 本変形例では、IoT端末2が有する画像符号化部24bの符号化部256は、決定部26が決定する送信対象コードブロック中の量子化ウェーブレット係数を構成するLビットを最上位(MSB)から見た場合に初めて1が現れるビット位置よりも1ビットだけ上位のビット位置を第1ビット位置する。また符号化部256は、第1ビット位置からMビット数(Mは1以上の整数)だけ下位のビット位置を第2ビット位置する。符号化部256は、Lビットのうち、最上位から第2ビット位置までのビットを対象ビットとし、それ以外のビットを対象外ビットとする。符号化部256は、Lビットのうちの対象ビットを圧縮符号化する。つまり、符号化部256は、対象ビットだけに対してビットプレーン符号化及びエントロピー符号化を行う。そして、符号化部256は、Lビットのうちの対象外ビットを切り捨てて圧縮符号化しない。これにより、送信対象コードブロック中の各量子化ウェーブレット係数については、それを構成するLビットのうちの圧縮符号化された対象ビットだけが、ゲートウェイ3に送信される。
 なお、Lビットの最上位のビットが“1”の場合、符号化部256は、その最上位よりも1ビットだけ上位の仮想的なビット位置を第1ビット位置として、対象ビットを決定する。また、第1ビット位置からMビット数だけ下位のビット位置が、Lビットの最下位(LSB)を超える場合には、第2ビット位置は当該最下位に設定される。
 図49,50は、圧縮符号化される対象ビットの一例を示す図である。図49,50の例では、L=11、M=3とされている。図49に示される量子化ウェーブレット係数の二進値は“000 1101 0111”で構成されている。この場合、対象ビットは“000110”の6ビットとなり、対象外ビットは“10111”の5ビットとなる。符号化部256は、対象ビット“000110”だけを圧縮符号化する。また、図50に示される量子化ウェーブレット係数の二進値は“010 0011 0101”で構成されている。この場合、対象ビットは“0100”の4ビットとなり、対象外ビットは“0110101”の7ビットとなる。符号化部256は、対象ビット“0100”だけを圧縮符号化する。
 圧縮符号化される対象ビットを決定するMの値は、例えばゲートウェイ3によって決定される。ゲートウェイ3は、画像符号化データ504を用いて行う処理に応じてMの値を決定する。よって、Mの値は、ゲートウェイ3が画像符号化データ504を用いて行う処理に応じた値となる。
 例えば、ゲートウェイ3は、上述の図29に示されるように、画像符号化データ504を用いて画像認識処理を行う場合には、図49,50の例のようにMの値を例えば3に設定する。またゲートウェイ3は、解像度が高い画像を示す画像符号化データ504を用いて処理を行う場合には、Mの値を例えば5に設定する。ゲートウェイ3は、設定したMの値をIoT端末2に通知する。IoT端末2の符号化部246は、ゲートウェイ3から通知されるMの値に基づいて対象ビットを決定する。
 IoT端末2からビットストリーム505を受信したゲートウェイ3では、画像復号化部31bの復号化部311が、IoT端末2からの画像符号化データ504を伸張復号化して、送信対象コードブロック中の量子化ウェーブレット係数を復元する。そして復号化部311は、復元した量子化ウェーブレット係数を構成する対象ビットに対してビットを追加して、Lビットの量子化ウェーブレット係数を生成する。
 ここで、復元された量子化ウェーブレット係数を構成する対象ビットのビット数をN(1以上の整数)とする。復号化部311は、復元した量子化ウェーブレット係数を構成する対象ビットよりも下位のビットとして、(L-N)個の0を当該対象ビットに追加する。これにより、Lビットから成る量子化ウェーブレット係数が得られる。ゲートウェイ3は、Mの値と、IoT端末2から送信される零ビットプレーン情報とに基づいて、対象ビットのビット数Nを特定することができる。復号化部311で生成された、Lビットから成る量子化ウェーブレット係数は、逆量子化部314に入力される。
 図51,52は、復号化部311で生成される、Lビットから成る量子化ウェーブレット係数の一例を示す図である。図51には、IoT端末2が、上述の図49に示される対象ビット“000110”を送信する場合の例が示されている。図52には、IoT端末2が、上述の図50に示される対象ビット“0100”を送信する場合の例が示されている。
 図51に示されるように、復号化部311は、6ビットの対象ビット“000110”から成る量子化ウェーブレット係数を復元すると、対象ビット“000110”よりも下位のビットとして、5個の0を追加ビットとして対象ビット“000110”に追加する。これにより、11ビット(Lビット)の“000 1100 0000”から成る量子化ウェーブレット係数が得られる。
 また図52に示されるように、復号化部311は、4ビットの対象ビット“0100”から成る量子化ウェーブレット係数を復元すると、対象ビット“0100”よりも下位のビットとして、7個の0を追加ビットとして対象ビット“0100”に追加する。これにより、11ビット(Lビット)の“010 0000 0000”から成る量子化ウェーブレット係数が得られる。
 図49~52の例では、図49,50と図51,52とをそれぞれ比較して理解できるように、復号化部311で生成される11ビットの量子化ウェーブレット係数が示す情報では、IoT端末2で生成される11ビットの量子化ウェーブレット係数が示す情報と比較して、下位のビットの情報が失われる。したがって、逆量子化部314から出力されるWT復号化データ511が示す画像の解像度は低くなる。
 このように、本変形例では、送信対象コードブロック中の、画素に対応する量子化ウェーブレット係数を構成するLビットのうち、最上位から、ゲートウェイ3での処理に応じたMの値で決まる第2ビット位置までのビットだけが、圧縮符号化されてゲートウェイ3に送信される。したがって、IoT端末2がゲートウェイ3に送信するデータ量を、ゲートウェイ3での処理に応じて調整することができる。よって、IoT端末2の消費電力を低減することができるとともに、IoT端末2から送信されるデータの送信遅延を低減することができる。
 また、対象ビットを決定するMの値を調整することによって、ゲートウェイ3で使用される画像の解像度を簡単に調整することができる。つまり、Mの値を大きくすることによって、ゲートウェイ3で使用される画像の解像度を高くすることができ、Mの値を小さくすることによって、ゲートウェイ3で使用される画像の解像度を低くすることができる。
 なお、IoT端末2は、ゲートウェイ3からMの値が通知されない場合には、量子化ウェーブレット係数を構成するLビットのすべてを圧縮符号化してゲートウェイ3に送信してもよい。
 またゲートウェイ3は、量子化ウェーブレット係数を構成するLビットにおいて、対象ビットとして過去に受信して第1メモリ323に記憶している上位のビットが存在する場合に、解像度が高い画像を用いた処理を行いたいときには、第1メモリ323に記憶されている当該上位のビットよりも下位の必要なビットだけをIoT端末2に送信させてもよい。この場合には、ゲートウェイ3は、第1メモリ323内の上位のビットに対して、後から受信した下位のビットを追加することによって、情報損失が少ないLビットの量子化ウェーブレット係数を生成することができる。よって、ゲートウェイ3は、解像度が高い画像を用いた処理が可能となる。また、IoT端末2は、すでに送信したデータを再度送信することがないことから、IoT端末2の処理が簡素化する。
 例えば、ゲートウェイ3が、解像度が高い画像を用いた処理を行うために、IoT端末2が生成する量子化ウェーブレット係数を構成するLビットのすべてが必要であるとする。また、ゲートウェイ3は、量子化ウェーブレット係数を構成するLビットのうち、例えば図49に示される上位6ビット“000110”を対象ビットとしてすでに受信して第1メモリ323に記憶しているとする。このような場合、ゲートウェイ3は、必要な残りの下位5ビット、つまり“10111”だけを送信するようにIoT端末2に指示する。この指示を受けたIoT端末2は、下位の5ビット“10111”だけを圧縮復号化してゲートウェイ3に送信する。ゲートウェイ3は、第1メモリ323内の上位の“000110”に対して、新たに受信した下位の“10111”を追加して、11ビットの“000 1101 0111”から成る量子化ウェーブレット係数を生成する。
 また、ゲートウェイ3が、解像度が高い画像を用いた処理を行うために、IoT端末2が生成する量子化ウェーブレット係数を構成するLビットのうちの上位9ビットが必要であるとする。また、ゲートウェイ3は、量子化ウェーブレット係数を構成するLビットのうち、例えば図50に示される上位4ビット“0100”を対象ビットとしてすでに受信して第1メモリ323に記憶しているとする。このような場合、ゲートウェイ3は、必要な残りの5ビット“01101”(第2ビット位置の次のビット位置から5ビット分)だけを送信するようにIoT端末2に指示する。この指示を受けたIoT端末2は、5ビット“01101”だけを圧縮復号化してゲートウェイ3に送信する。ゲートウェイ3は、第1メモリ323内の上位の“0100”に対して、新たに受信した5ビット“01101”を下位に追加し、さらに2個の0を追加して、11ビットの“010 0011 0100”から成る量子化ウェーブレット係数を生成する。
 <第5変形例>
 本変形例では、IoT端末2は、ビットストリーム505をマルチレイヤー化することが可能である。図53は、本変形例に係るIoT端末2の画像符号化部24bの構成の一例を示す図である。図54は、本変形例に係るゲートウェイ3の画像復号化部31bの構成の一例を示す図である。
 図53に示されるように、本変形例に係る画像符号化部24bは、上述の図5に示される画像符号化部24bにおいて、レイヤー分割処理部250をさらに備えるものである。レイヤー分割処理部250は、ビットストリーム生成部249から出力されるビットストリーム505をマルチレイヤー化することが可能である。ビットストリーム505では、コードブロック単位でデータが並べられている。レイヤー分割処理部250は、ビットストリーム505をマルチレイヤー化する場合には、ビットストリーム505に含まれる画像符号化データ504を複数のレイヤーに分割し、当該複数のレイヤーの少なくとも一つのレイヤーのデータを含むビットストリーム505aを出力する。一方で、レイヤー分割処理部250は、ビットストリーム505をマルチレイヤー化せずにそのまま出力することも可能である。この場合には、レイヤー分割処理部250は、ビットストリーム505をそのままビットストリーム505aとして出力する。レイヤー分割処理部250で生成されたビットストリーム505aは、送信部25aからゲートウェイ3に送信される。
 なお、レイヤー分割処理部250の少なくとも一部は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてよい。また、レイヤー分割処理部250の少なくとも一部は、コンピュータがプログラムを実行することによって実現される機能ブロックであってもよい。
 図54に示されるように、本変形例に係る画像復号化部31bは、上述の図23に示される画像復号化部31bにおいて、レイヤー合成処理部315をさらに備えるものである。レイヤー合成処理部315は、ゲートウェイ3がIoT端末2から、複数のレイヤーのデータを含むビットストリーム505aを受信する場合には、当該ビットストリーム505aに含まれる、同一サブバンドについての複数のレイヤーのデータを合成して、マルチレイヤー化されてないビットストリーム505b、つまりコードブロック単位でデータが並べられたビットストリーム505bを生成して出力する。一方で、レイヤー合成処理部315は、ゲートウェイ3がIoT端末2からマルチレイヤー化されていないビットストリーム505a(ビットストリーム505)を受信する場合と、一つのレイヤーのデータだけを含むビットストリーム505aを受信する場合には、当該ビットストリーム505aをそのままビットストリーム505bとして出力する。
 ビットストリーム解析部310は、上記と同様にして、ビットストリーム505bを解析して、当該ビットストリーム505bから、画像符号化データ504aと付加情報とを抽出する。画像符号化データ504aは、画像符号化データ504と同様に、主画像データの少なくとも一部が階層符号化されたデータである。ビットストリーム解析部310は、抽出した画像符号化データ504aを復号化部311及びデータ処理部32に出力する。復号化部311及びデータ処理部32のそれぞれは、画像符号化データ504に対する処理と同様にして、画像符号化データ504aを処理する。なお、ゲートウェイ3がIoT端末2からマルチレイヤー化されていないビットストリーム505a(ビットストリーム505)を受信する場合には、画像符号化データ504aは、IoT端末2で生成される画像符号化データ504と一致する。
 <レイヤー分割処理部の詳細説明>
 図55はレイヤー分割処理部250の構成の一例を示す図である。図55に示されるように、レイヤー分割処理部250は、メモリ251と、レイヤー分割制御部252と、多重化部253と、優先度テーブル254とを備える。
 優先度テーブル254は、ウェーブレット平面を構成する複数のサブバンドのそれぞれに対して設定された優先度を記憶している。各サブバンドの優先度は、当該サブバンドの分解レベルに応じて設定されている。レイヤー分割処理部250では、優先度テーブル255内の優先度に基づいて、ビットストリーム505がマルチレイヤー化される。
 レイヤー分割制御部252は、ビットストリーム生成部249で生成されるビットストリーム505をメモリ251に記憶する。レイヤー分割制御部252は、ビットストリーム505をマルチレイヤー化する場合には、メモリ251から、ビットストリーム505に含まれる画像符号化データ504を読み出し、読み出した画像符号化データ504を複数のレイヤーに分割する。そして、レイヤー分割制御部252は、複数のレイヤーのうちの少なくとも一つのレイヤーのデータを多重化部253に出力する。多重化部523は、レイヤー分割制御部252が出力するデータを多重化して、少なくとも一つのレイヤーのデータを含むビットストリーム505aを生成して出力する。
 一方で、レイヤー分割制御部252は、ビットストリーム505をマルチレイヤー化しない場合には、メモリ251からビットストリーム505を読み出してそのまま多重化部253に出力する。多重化部253は、入力されたビットストリーム505をそのままビットストリーム505aとして出力する。IoT端末2がビットストリーム505をマルチレイヤー化するか否かについては、ゲートウェイ3からの指示情報518によって指定される。
 図56は各サブバンドに設定された優先度の一例を示す図である。図56の例では、LL3サブバンドに対して優先度4が設定され、LH3サブバンド及びHL3サブバンドに対して優先度3が設定されている。また、HH3サブバンド、LH2サブバンド及びHL2サブバンドに対して優先度2が設定され、HH2サブバンド、LH1サブバンド及びHL1サブバンドに対して優先度1が設定されている。そして、HH1サブバンドに対して優先度0が設定されている。なお、各サブバンドの優先度の値は図56の例には限られない。
 レイヤー分割制御部252は、ビットストリーム505をマルチレイヤー化する場合には、画像符号化データ504に含まれる各コードブロックに対してビットシフト処理を行う。以下にビットシフト処理について詳細に説明する。本変形例では、説明対象のコードブロックを対象コードブロックと呼ぶ。
 レイヤー分割処理部252は、対象コードブロックに対するビットシフト処理において、まず、対象コードブロックが属するサブバンドに設定された優先度を優先度テーブル254から取得する。レイヤー分割制御部252は、対象コードブロックの各係数について、当該係数を構成するLビットのデータを、取得した優先度と同じ数のビット数だけビットシフトする。これにより、対象コードブロックに対してビットシフト処理が行われる。
 対象コードブロックが、例えばLL3サブバンドに属する場合には、レイヤー分割制御部252は、対象コードブロックの各係数について、当該係数を構成するLビットのデータを4ビットだけ同じ方向にビットシフトする。また、対象コードブロックが、例えばHH3サブバンドに属する場合には、レイヤー分割制御部252は、対象コードブロックの各係数について、当該係数を構成するLビットのデータを2ビットだけ同じ方向にビットシフトする。なお、HH1サブバンドに設定されている優先度は0であるため、HH1サブバンドに属する対象コードブロックに対してビットシフト処理が行われたとしても、対象コードブロックの各係数は実際にはビットシフトされない。以後、ビットシフト処理が行われたコードブロックをシフト処理済みコードブロックと呼ぶことがある。
 レイヤー分割制御部252は、画像符号化データ504に含まれる各コードブロックに対してビットシフト処理を行うと、各シフト処理済みコードブロックを複数のレイヤーに分割するレイヤー分割処理を行う。
 図57は、レイヤー分割処理の一例を説明するための図である。図57には、シフト処理済みコードブロックの係数(ビットシフトされた係数)を構成するLビット(図57の例では11ビット)のデータ5700が示されている。Lビットのデータ5700に示される0~10の番号は、当該データ570内での各ビットのビット位置を示している。0番はLSBを示し、10番はMSBを示している。
 図57に示されるように、LL3サブバンドに属するコードブロックの係数を構成するLビットのデータ5700は4ビットだけビットシフトされている。LH3サブバンド及びHL3サブバンドに属するコードブロックの係数を構成するLビットのデータ5700は3ビットだけビットシフトされている。HH3サブバンド、LH2サブバンド及びHL2サブバンドに属するコードブロックの係数を構成するLビットのデータ5700は2ビットだけビットシフトされている。HH2サブバンド、LH1サブバンド及びHL1サブバンドに属するコードブロックの係数を構成するLビットのデータ5700は1ビットだけビットシフトされている。そして、HH1サブバンドに属するコードブロックの係数を構成するLビットのデータ5700はビットシフトされていない。
 本変形例では、シフト処理済みコードブロックに関して、図57の下側に示されるように、HH1サブバンドの係数を構成するLビットのデータ5700の最下位のビット位置から、LL3サブバンドのビットシフトされた係数を構成するLビットのデータ5700の最上位のビット位置までに対して、0~14までの番号がそれぞれ割り当てられている。
 レイヤー分割制御部252は、ビットシフト処理後のコードブロックの係数を構成するLビットのデータ5700のうち、ビット位置が12番から14番までのビットをレイヤー0とし、ビット位置が9番から11番までのビットをレイヤー1とする。またレイヤー分割制御部252は、ビットシフト処理後のコードブロックの係数を構成するLビットのデータ5700のうち、ビット位置が6番から8番までのビットをレイヤー2とし、ビット位置が3番から5番までのビットをレイヤー3とする。そして、レイヤー分割制御部252は、ビットシフト処理後のコードブロックの係数を構成するLビットのデータ5700のうち、ビット位置が0番から2番までのビットをレイヤー4とする。
 以上のようにして、画像符号化データ504が複数のレイヤーに分割されると、レイヤー分割制御部252は、複数のレイヤーのうち、ゲートウェイ3に送信するレイヤーのデータを多重化部253に出力する。IoT端末2がゲートウェイ3に送信するレイヤーについては、ゲートウェイ3からの指示情報518によって指定される。ゲートウェイ3は、複数のレイヤーのうち、どのレイヤーのデータを送信すべきかIoT端末2に対して自由に指示することができる。多重化部253は、レイヤー分割制御部252からのデータを多重化して、ゲートウェイ3に送信するレイヤーのデータを含むビットストリーム505aを生成する。なお、Lビットのデータ5700を複数のレイヤーに分割する方法は図57の例には限られない。
 <レイヤー合成処理部の詳細説明>
 図58はレイヤー合成処理部315の構成の一例を示す図である。図58に示されるように、レイヤー合成処理部315は、メモリ316及びレイヤー合成制御部317を備える。
 レイヤー合成制御部317は、IoT端末2からのビットストリーム505aをメモリ316に記憶する。また、レイヤー合成制御部317は、ゲートウェイ3が受信したビットストリーム505aがマルチレイヤー化されてない場合には、当該ビットストリーム505aをそのままビットストリーム505bとして出力する。また、レイヤー合成制御部317は、ゲートウェイ3が受信したビットストリーム505aがマルチレイヤー化されている場合であって、当該ビットストリーム505aに一つのレイヤーのデータしか含まれていない場には、当該ビットストリーム505aをそのままビットストリーム505bとして出力する。
 一方で、レイヤー合成制御部317は、ゲートウェイ3が受信したビットストリーム505aがマルチレイヤー化されている場合であって、当該ビットストリーム505aに複数のレイヤーのデータが含まれている場合には、同じサブバンドについての複数のレイヤーのデータを合成して、マルチレイヤー化されてないビットストリーム505b(ビットストリーム505のように、コードブロック単位でデータが並べられたビットストリーム505b)を生成して出力する。
 <本変形例に係る画像処理システムの動作例>
 次に、ビットストリーム505がマルチレイヤー化される場合の本変形例に係る画像処理システム4全体での動作例について説明する。
 ゲートウェイ3は、対象主画像に対する処理が開始すると、例えば、LL3サブバンドの各コードブロックのレイヤー0のデータを指定データとして指示情報518を送信する。この指示情報518を受け取ったIoT端末2は、LL3サブバンドの各コードブロックを送信対象コードブロックとして画像符号化データ504を生成する。そして、IoT端末2では、レイヤー分割処理部250が、画像符号化データ504を含むビットストリーム505をマルチレイヤー化して、LL3サブバンドの各コードブロックのレイヤー0のデータを生成する。そして、レイヤー分割処理部250は、LL3サブバンドの各コードブロックのレイヤー0のデータを含むビットストリーム505aを生成してゲートウェイ3に送信する。
 ゲートウェイ3では、レイヤー合成処理部315は、IoT端末2から受け取ったビットストリーム505aをそのままビットストリーム505bとして出力する。そして、ゲートウェイ3は、ビットストリーム505bに含まれる、LL3サブバンドの各コードブロックのレイヤー0のデータを認識用データ512とする。このとき、LL3サブバンドの各係数のデータがLビットのデータとなるように、当該各係数のデータに対して、8個の0が下位ビットとして追加される(上述の図51,52参照)。ゲートウェイ3は認識用データ512に対して画像認識処理を行う。
 ゲートウェイ3が検出対象物を検出すると、対象主画像に対する処理が終了する。一方で、ゲートウェイ3は、検出対象物を検出しない場合には、LL2サブバンドを処理対象とするために、LH3サブバンド、HL3サブバンド及びHH3サブバンドの各コードブロックのレイヤー0及び1のデータと、LL3サブバンドの各コードブロックのレイヤー1のデータとを指定データとして指示情報518を送信する。この指示情報518を受け取ったIoT端末2は、LL3サブバンド、LH3サブバンド、HL3サブバンド及びHH3サブバンドの各コードブロックを送信対象コードブロックとして画像符号化データ504を生成する。そして、IoT端末2では、レイヤー分割処理部250が、画像符号化データ504を含むビットストリーム505をマルチレイヤー化して、LH3サブバンド、HL3サブバンド及びHH3サブバンドの各コードブロックのレイヤー0及び1のデータと、LL3サブバンドの各コードブロックのレイヤー1のデータとを生成する。そして、レイヤー分割処理部250は、LH3サブバンド、HL3サブバンド及びHH3サブバンドの各コードブロックのレイヤー0及び1のデータと、LL3サブバンドの各コードブロックのレイヤー1のデータとを含むビットストリーム505aを生成してゲートウェイ3に送信する。IoT端末2は、マルチレイヤー化されたビットストリーム505aを送信する場合には、上位のレイヤーのデータから順に送信する。ここでは、IoT端末2は、LH3サブバンド、HL3サブバンド及びHH3サブバンドのレイヤー0のデータを送信した後に、LL3サブバンド、LH3サブバンド、HL3サブバンド及びHH3サブバンドのレイヤー1のデータを送信する。
 ゲートウェイ3では、レイヤー合成処理部315のレイヤー合成制御部317は、IoT端末2から受け取ったビットストリーム505aをメモリ316に記憶する。そして、レイヤー合成制御部317は、メモリ316から、同一サブバンドの複数のレイヤーのデータを読み出して合成して、シングルレイヤー化されたビットストリーム505bを生成する。
 具体的には、レイヤー合成制御部317は、メモリ316から、LH3サブバンドのレイヤー0及び1のデータを読み出す。そして、レイヤー合成制御部317は、読み出した、LH3サブバンドのレイヤー0及び1のデータを合成して、コードブロック単位でデータが並ぶ、LH3サブバンドにおける、IoT端末2が送信したデータを生成する。以後、このデータを、シングルレイヤー化されたLH3サブバンドのデータと呼ぶ。
 同様に、レイヤー合成制御部317は、メモリ316から、HL3サブバンドのレイヤー0及び1のデータを読み出す。そして、レイヤー合成制御部317は、読み出した、HL3サブバンドのレイヤー0及び1のデータを合成して、コードブロック単位でデータが並ぶ、HL3サブバンドにおける、IoT端末2が送信したデータを生成する。以後、このデータを、シングルレイヤー化されたHL3サブバンドのデータと呼ぶ。
 同様に、レイヤー合成制御部317は、メモリ316から、HH3サブバンドのレイヤー0及び1のデータを読み出す。そして、レイヤー合成制御部317は、読み出した、HH3サブバンドのレイヤー0及び1のデータを合成して、コードブロック単位でデータが並ぶ、HH3サブバンドにおける、IoT端末2が送信したデータを生成する。以後、このデータを、シングルレイヤー化されたHH3サブバンドのデータと呼ぶ。
 そして、レイヤー合成制御部317は、シングルレイヤー化されたLH3サブバンドのデータと、シングルレイヤー化されたHL3サブバンドのデータと、シングルレイヤー化されたHH3サブバンドのデータと、LL3サブバンドの各コードブロックのレイヤー1のデータとを含むビットストリーム505bを生成する。このビットストリーム505bでは、コードブロック単位でデータが並んでいる。
 このように、ゲートウェイ3は、シングルレイヤー化されたビットストリーム505bを生成することから、IoT端末2から、マルチレイヤー化されたビットストリーム505aが送信される場合であっても、マルチレイヤー化されていないビットストリーム505aが送信される場合であっても、同じ構成の復号化部311を使用することができる。よって、ゲートウェイ3の構成を簡素化することができる。
 ゲートウェイ3は、シングルレイヤー化されたビットストリーム505bを生成した後、すでに受け取っているLL3サブバンドの各コードブロック570のレイヤー0のデータと、ビットストリーム505bに含まれる、LL3サブバンドの各コードブロック570のレイヤー1のデータと、ビットストリーム505bに含まれる、LH3サブバンド、HL3サブバンド及びHH3サブバンドの各コードブロックのレイヤー0及び1のデータとから成る逆変換対象データ522を生成する。このとき、ゲートウェイ3は、LL3サブバンドの各係数のデータがLビットのデータとなるように、当該各係数のデータに対して必要な数だけ0を下位ビットとして追加する(上述の図51,52参照)。LH3サブバンド、HL3サブバンド及びHH3サブンドについても同様である。そして、ゲートウェイ3は、生成した逆変換対象データ522に対して逆ウェーブレット変換を行い、それによって生成されたデータを認識用データ512として画像認識処理を行う。
 ここで、逆変換対象データ522を逆ウェーブレット変換した場合には、それによって生成されるデータが示す画像にひずみが発生し、当該画像の品質が劣化する可能性がある。本変形例では、逆ウェーブレット変換を使用してLL2サブバンドのデータを生成する際に、レイヤー0のデータだけではなく、レイヤー1のデータも使用していることから、レイヤー0のデータだけを使用する場合と比較して、逆ウェーブレット変換によって生成されたデータが示す画像の品質を向上することができる。なお、レイヤー0のデータだけを使用して逆ウェーブレット変換してもよい。また、レイヤー0~3のデータを使用して逆ウェーブレット変換してもよいし、レイヤー0~4のデータを使用して逆ウェーブレット変換してもよい。
 ゲートウェイ3が画像認識処理を行った結果、検出対象物が検出されると、対象主画像に対する処理が終了する。一方で、ゲートウェイ3は、検出対象物を検出しない場合には、LL1サブバンドを処理対象とするために、LH2サブバンド及びHL2サブバンドの各コードブロックのレイヤー0及び1のデータと、HH2サブバンドの各コードブロックのレイヤー1のデータ(HH2サブバンドにはレイヤー0のデータは存在しない)とを指定データとして指示情報518を送信する。この指示情報518を受け取ったIoT端末2は、LH2サブバンド、HL2サブバンド及びHH2サブバンドの各コードブロックを送信対象コードブロックとして画像符号化データ504を生成する。そして、IoT端末2では、レイヤー分割処理部250が、画像符号化データ504を含むビットストリーム505をマルチレイヤー化して、LH2サブバンド及びHL2サブバンドの各コードブロックのレイヤー0及び1のデータと、HH2サブバンドの各コードブロックのレイヤー1のデータとを生成する。そして、レイヤー分割処理部250は、LH2サブバンド及びHL2サブバンドの各コードブロックのレイヤー0及び1のデータと、HH2サブバンドの各コードブロックのレイヤー1のデータとを含むビットストリーム505aを生成してゲートウェイ3に送信する。このとき、IoT端末2は、LH2サブバンド及びHL2サブバンドのレイヤー0のデータを送信した後に、LH2サブバンド、HL2サブバンド及びHH2サブバンドのレイヤー1のデータを送信する。
 ゲートウェイ3では、レイヤー合成制御部317は、IoT端末2から受け取ったビットストリーム505aをメモリ316に記憶する。そして、レイヤー合成制御部317は、メモリ316から、同一サブバンドの複数のレイヤーのデータを読み出して合成して、シングルレイヤー化されたビットストリーム505bを生成する。
 具体的には、レイヤー合成制御部317は、メモリ316から、LH2サブバンドのレイヤー0及び1のデータを読み出す。そして、レイヤー合成制御部317は、読み出した、LH2サブバンドのレイヤー0及び1のデータを合成して、コードブロック単位でデータが並ぶ、LH2サブバンドにおける、IoT端末2が送信したデータを生成する。以後、このデータを、シングルレイヤー化されたLH2サブバンドのデータと呼ぶ。
 同様に、レイヤー合成制御部317は、メモリ316から、HL2サブバンドのレイヤー0及び1のデータを読み出す。そして、レイヤー合成制御部317は、読み出した、HL2サブバンドのレイヤー0及び1のデータを合成して、コードブロック単位でデータが並ぶ、HL2サブバンドにおける、IoT端末2が送信したデータを生成する。以後、このデータを、シングルレイヤー化されたHL2サブバンドのデータと呼ぶ。
 そして、レイヤー合成制御部317は、シングルレイヤー化されたLH2サブバンドのデータと、シングルレイヤー化されたHL2サブバンドのデータと、HH2サブバンドの各コードブロックのレイヤー1のデータとを含むビットストリーム505bを生成する。このビットストリーム505bでは、コードブロック単位でデータが並んでいる。
 ゲートウェイ3は、シングルレイヤー化されたビットストリーム505bを生成した後、すでに取得している、LL2サブバンドの各コードブロックのデータと、ビットストリーム505bに含まれる、LH2サブバンド及びHL2サブバンドの各コードブロックのレイヤー0及び1のデータと、ビットストリーム505bに含まれる、HH2サブバンドの各コードブロックのレイヤー1のデータとから成る逆変換対象データ522を生成する。このとき、ゲートウェイ3は、LL2サブバンドの各係数のデータがLビットのデータとなるように、当該各係数のデータに対して必要な数だけ0を下位ビットとして追加する(上述の図51,52参照)。LH2サブバンド、HL2サブバンド及びHH2サブンドについても同様である。そして、ゲートウェイ3は、生成した逆変換対象データ522に対して逆ウェーブレット変換を行い、それによって生成されたデータを認識用データ512として画像認識処理を行う。その後、対象主画像に対する処理が終了する。
 このように、本変形例に係る画像処理システム4では、IoT端末2がレイヤー単位でデータを送信することができることから、IoT端末2の消費電力を低減することができる。
 なお、ビットストリーム505がマルチレイヤー化される場合の画像処理システム4の動作は上記の例には限られない。例えば、ゲートウェイ3は、上述のCB対応関係情報を使用して指定データを決定してもよい。
 <その他の変形例>
 上記の各例では、情報処理システム1は、IoTシステムとして使用されているが、他のシステムとして使用されてもよい。
 また上記の各例では、JPEG2000に基づいて画像データを階層化しているが、JPEG2000でのサブバンド分割と同様にして画像データを階層化する他の規格に基づいて画像データを階層化してもよい。
 以上のように、情報処理システム1、画像処理システム4及び画像処理装置2,3は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
 1 情報処理システム
 2 画像処理装置(IoT端末)
 3 画像処理装置(ゲートウェイ)
 4 画像処理システム
 22b 主画像メモリ
 23 マスク生成部
 24a マスク符号化部
 25a 送信部
 26 決定部
 27 動き検出部
 30a 受信部
 33 画像認識部
 240 階層化部(生成部)
 246 符号化部
 321 第1処理部

Claims (28)

  1.  第1画像を示す階層化されたデータを生成する生成部と、
     前記階層化されたデータから、所定の基準に基づいて、送信対象データを決定する第1決定部と、
     前記第1決定部で決定された前記送信対象データを圧縮符号化して第1符号化データを生成する第1符号化部と、
     前記第1符号化データを送信する第1送信部と
    を備える画像処理装置。
  2.  請求項1に記載の画像処理装置であって、
     前記第1画像に関する第1処理を行う第1処理部をさらに備え、
     前記第1決定部は、前記第1処理の結果に基づいて、前記送信対象データを決定する、画像処理装置。
  3.  請求項2に記載の画像処理装置であって、
     前記第1処理には、前記第1画像における第1関心領域を特定するためのマスクデータを生成する処理が含まれ、
     前記第1決定部は、前記マスクデータに基づいて、前記送信対象データを決定する、画像処理装置。
  4.  請求項3に記載の画像処理装置であって、
     前記第1処理部は、前記第1画像を縮小した縮小画像を示す縮小画像データに基づいて前記マスクデータを生成する、画像処理装置。
  5.  請求項3及び請求項4のいずれか一つに記載の画像処理装置であって、
     前記マスクデータを圧縮符号化して第2符号化データを生成する第2符号化部をさらに備え、
     前記第1送信部は、前記第2符号化データを送信する、画像処理装置。
  6.  請求項1乃至請求項5のいずれか一つに記載の画像処理装置であって、
     前記第1送信部から送信される前記第1符号化データを受信し、受信した当該第1符号化データに基づいて処理を行う装置からの指示情報に基づいて、前記決定部は前記送信対象データを決定する、画像処理装置。
  7.  請求項1乃至請求項6のいずれか一つに記載の画像処理装置であって、
     前記第1画像の撮影範囲での物体の動きを検出する検出部をさらに備え、
     前記第1送信部は、前記動きが検出されたとき、前記第1符号化データを送信する、画像処理装置。
  8.  請求項7に記載の画像処理装置であって、
     前記検出部は、前記第1画像を縮小した縮小画像を示す縮小画像データに基づいて前記動きを検出する、画像処理装置。
  9.  請求項7及び請求項8のいずれか一つに記載の画像処理装置であって、
     前記第1符号化部及び前記決定部の少なくとも一方は、前記動きが検出されないときに停止し、前記動きが検出されると動作する、画像処理装置。
  10.  請求項7乃至請求項9のいずれか一つに記載の画像処理装置であって、
     前記第1画像を示す第1画像データを記憶する画像メモリをさらに備え、
     前記生成部は、前記画像メモリ内の前記第1画像データを階層化することによって、前記階層化されたデータを生成し、
     前記画像メモリは、前記動きが検出されないときに停止し、前記動きが検出されると動作する、画像処理装置。
  11.  請求項1乃至請求項10のいずれか一つに記載の画像処理装置であって、
     前記第1画像を縮小した縮小画像を示す縮小画像データを圧縮符号化して第3符号化データを生成する第3符号化部をさらに備え、
     前記第1送信部は、前記第3符号化データを送信する、画像処理装置。
  12.  請求項1乃至請求項11のいずれか一つに記載の画像処理装置であって、
     前記第1送信部は、パケット化されていない前記第1符号化データを送信する、画像処理装置。
  13.  請求項1乃至請求項12のいずれか一つに記載の画像処理装置であって、
     前記第1送信部から送信される前記第1符号化データは、当該第1符号化データに基づいて所定の処理を行う装置で受信され、
     前記送信対象データに含まれる、画素に対応する値を構成する複数のビットを最上位から見た場合に初めて1が現れるビット位置よりも1ビットだけ上位のビット位置を第1ビット位置とし、当該第1ビット位置から前記所定の処理に応じたビット数だけ下位のビット位置を第2ビット位置とした場合に、前記第1符号化部は、前記複数のビットのうち、前記最上位から前記第2ビット位置までのビットを圧縮符号化し、当該複数のビットの他のビットを圧縮符号化しない、画像処理装置。
  14.  請求項1乃至請求項13のいずれか一つに記載の画像処理装置であって、
     前記第1画像は、カメラで撮影された画像である、画像処理装置。
  15.  請求項1乃至請求項14のいずれか一つに記載の画像処理装置である第1装置と通信する第2装置である画像処理装置であって、
     前記第1装置から送信される前記第1符号化データを受信する受信部と、
     前記第1符号化データに基づいて第2処理を行う第2処理部と
    を備える、画像処理装置。
  16.  請求項15に記載の画像処理装置であって、
     前記第2処理には、前記第1符号化データに基づく第2画像に対する画像認識処理が含まれる、画像処理装置。
  17.  請求項15に記載の画像処理装置であって、
     前記第2処理には、前記第1符号化データに基づく第2画像における第2関心領域を示す、圧縮符号化された第3符号化データを生成する処理が含まれる、画像処理装置。
  18.  請求項17に記載の画像処理装置であって、
     前記第2処理には、前記第2画像に対する画像認識処理が含まれ、
     前記第2処理部は、前記画像認識処理によって特定された領域を前記第2関心領域とする、画像処理装置。
  19.  請求項6に記載の画像処理装置である第1装置と通信する第2装置である画像処理装置であって、
     前記第1装置から送信される前記第1符号化データを受信する受信部と、
     前記第1符号化データに基づいて第2処理を行う第2処理部と、
     前記第2処理の結果に基づいて、前記第1装置が送信すべきデータを当該第1装置に指示するための指示情報を生成する生成部と、
     前記指示情報を前記第1装置に送信する第2送信部と
    を備え、
     前記第1装置は、前記指示情報に基づいて、前記送信対象データを決定する、画像処理装置。
  20.  請求項11に記載の画像処理装置である第1装置と通信する第2装置である画像処理装置であって、
     前記第1装置から送信される前記第1及び第2符号化データを受信する受信部と、
     前記第1符号化データに基づいて第2処理を行う第2処理部と、
     前記第2符号化データを伸張復号化して、前記縮小画像を示す復号化データを生成する復号化部と、
     前記復号化データに基づいて第3処理を行う第3処理部と
    を備える、画像処理装置。
  21.  請求項13に記載の画像処理装置である第1装置と通信する第2装置である画像処理装置であって、
     前記第1装置から送信される前記第1符号化データを受信する受信部と、
     前記第1符号化データに基づいて第2処理を行う第2処理部と、
     前記第2処理に応じて、前記第2ビット位置を決める前記ビット数を決定する第2決定部と
    を備える、画像処理装置。
  22.  請求項15乃至請求項21のいずれか一つに記載の画像処理装置であって、
     前記第2装置は、前記第2処理の結果を送信する、画像処理装置。
  23.  請求項15乃至請求項22のいずれか一つに記載の画像処理装置であって、
     前記第2装置は、前記受信部で受信される前記第1符号化データを、それに対して伸張復号化を行わずに送信する、画像処理装置。
  24.  請求項1乃至請求項14のいずれか一つに記載の画像処理装置である第1装置と、
     請求項15乃至請求項23のいずれか一つに記載の画像処理装置である第2装置と
    を備える、画像処理システム。
  25.  請求項24に記載の画像処理システムと、
     前記画像処理システムの前記第2装置から前記第2処理の結果を受け取る第3装置と
    備える、情報処理システム。
  26.  請求項25に記載の情報処理システムであって、
     前記第1及び第2装置は、ローカルネットワークで接続され、
     前記第2及び第3装置は、インターネットで接続されている、情報処理システム。
  27.  請求項26に記載の情報処理システムであって、
     前記第2装置には複数の前記第1装置が前記ローカルネットワークで接続されている、情報処理システム。
  28.  画像処理装置での画像処理方法であって、
     画像を示す階層化されたデータを生成する工程と、
     前記階層化されたデータから、所定の基準に基づいて、送信対象データを決定する工程と、
     前記送信対象データを圧縮符号化して符号化データを生成する工程と、
     前記符号化データを送信する工程と
    を備える、画像処理方法。
PCT/JP2018/014281 2017-04-14 2018-04-03 画像処理装置、画像処理システム、情報処理システム及び画像処理方法 WO2018190198A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-080744 2017-04-14
JP2017080744A JP2018182568A (ja) 2017-04-14 2017-04-14 画像処理装置、画像処理システム、情報処理システム及び画像処理方法

Publications (1)

Publication Number Publication Date
WO2018190198A1 true WO2018190198A1 (ja) 2018-10-18

Family

ID=63793371

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/014281 WO2018190198A1 (ja) 2017-04-14 2018-04-03 画像処理装置、画像処理システム、情報処理システム及び画像処理方法

Country Status (2)

Country Link
JP (1) JP2018182568A (ja)
WO (1) WO2018190198A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118316941A (zh) * 2024-06-07 2024-07-09 特艺(中国)科技有限公司 一种基于fttr网关的数据智能分割方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07288806A (ja) * 1994-04-20 1995-10-31 Hitachi Ltd 動画像通信システム
JP2006295299A (ja) * 2005-04-06 2006-10-26 Megachips Lsi Solutions Inc デジタル絞りシステム
JP2008005349A (ja) * 2006-06-23 2008-01-10 Yamaha Corp 映像符号化装置、映像伝送装置、映像符号化方法及び映像伝送方法
JP2011217389A (ja) * 2005-09-06 2011-10-27 Mega Chips Corp 圧縮符号化装置、圧縮符号化方法およびプログラム
JP2016192054A (ja) * 2015-03-31 2016-11-10 株式会社メガチップス 画像処理システムおよび画像処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07288806A (ja) * 1994-04-20 1995-10-31 Hitachi Ltd 動画像通信システム
JP2006295299A (ja) * 2005-04-06 2006-10-26 Megachips Lsi Solutions Inc デジタル絞りシステム
JP2011217389A (ja) * 2005-09-06 2011-10-27 Mega Chips Corp 圧縮符号化装置、圧縮符号化方法およびプログラム
JP2008005349A (ja) * 2006-06-23 2008-01-10 Yamaha Corp 映像符号化装置、映像伝送装置、映像符号化方法及び映像伝送方法
JP2016192054A (ja) * 2015-03-31 2016-11-10 株式会社メガチップス 画像処理システムおよび画像処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118316941A (zh) * 2024-06-07 2024-07-09 特艺(中国)科技有限公司 一种基于fttr网关的数据智能分割方法及系统

Also Published As

Publication number Publication date
JP2018182568A (ja) 2018-11-15

Similar Documents

Publication Publication Date Title
WO2018190199A1 (ja) 画像処理装置、画像処理システム、情報処理システム及び画像処理方法
US6898324B2 (en) Color encoding and decoding method
Zhao et al. Multiple description convolutional neural networks for image compression
US6917716B2 (en) Image processing apparatus and method and storage medium
KR100971835B1 (ko) 화상 복호 방법 및 장치
JP2006246473A (ja) 色空間スケーラブルビデオコーディング及びデコーディング方法、並びにその装置
JP2006014121A (ja) 画像符号化方法、画像符号化装置および撮像装置
JP2003504987A (ja) ビデオシーケンスを圧縮する符号化方法
Tausif et al. FrWF-based LMBTC: Memory-efficient image coding for visual sensors
Xing et al. Arbitrarily shaped video-object coding by wavelet
JP2003502889A (ja) 画像データを処理するための方法およびシステム
Aulí-Llinàs et al. Lossy-to-lossless 3D image coding through prior coefficient lookup tables
Saenz et al. Evaluation of color-embedded wavelet image compression techniques
Afsana et al. Efficient scalable uhd/360-video coding by exploiting common information with cuboid-based partitioning
WO2018190198A1 (ja) 画像処理装置、画像処理システム、情報処理システム及び画像処理方法
Koya et al. Analysis of application of arithmetic coding on dct and dct-dwt hybrid transforms of images for compression
Zhang et al. Scalable Point Cloud Attribute Compression
JP2006129248A (ja) 画像符号化方法および装置、ならびに画像復号方法および装置
JP4749508B2 (ja) 画像復号方法
KR101421231B1 (ko) 웨이블릿 변환을 이용한 영상 압축 장치
Liu et al. Embedded wavelet packet object-based image coding based on context classification and quadtree ordering
JP4667424B2 (ja) 画像復号装置
JP4667423B2 (ja) 画像復号装置
JP2000209592A (ja) 画像伝送装置と方法及びシステムとその制御方法
CN1843035A (zh) 使用预解码器的可伸缩视频编码方法和设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18784812

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18784812

Country of ref document: EP

Kind code of ref document: A1