WO2016129031A1 - 画像圧縮伸長装置 - Google Patents

画像圧縮伸長装置 Download PDF

Info

Publication number
WO2016129031A1
WO2016129031A1 PCT/JP2015/053501 JP2015053501W WO2016129031A1 WO 2016129031 A1 WO2016129031 A1 WO 2016129031A1 JP 2015053501 W JP2015053501 W JP 2015053501W WO 2016129031 A1 WO2016129031 A1 WO 2016129031A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
processing unit
variable length
parallel
length coding
Prior art date
Application number
PCT/JP2015/053501
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 株式会社日立情報通信エンジニアリング
Priority to JP2016507303A priority Critical patent/JP6085065B2/ja
Priority to US14/913,723 priority patent/US20160301945A1/en
Priority to CN201580038688.5A priority patent/CN106576168A/zh
Priority to EP15874402.9A priority patent/EP3258691A4/en
Priority to PCT/JP2015/053501 priority patent/WO2016129031A1/ja
Publication of WO2016129031A1 publication Critical patent/WO2016129031A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources
    • 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/136Incoming video signal characteristics or properties
    • 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/146Data rate or code amount at the encoder output
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Definitions

  • the present invention relates to an image compression / decompression apparatus.
  • the present invention relates to an image compression / decompression apparatus suitable for operating coding / decoding processing of image processing based on video compression coding technology such as H.264 standard with low power consumption.
  • a technique for compressing (encoding) and decompressing (decoding) an image using an MPEG compression technique or the like is used in digital image processing equipment.
  • ISO / IEC standard 23008-3 commonly known as H.265 / HEVC
  • H.265 / HEVC High Efficiency Video Coding
  • the image encoding device described in Patent Document 1 is provided with a buffer between the binarization unit 301 and the binary arithmetic encoding unit 304, and the processing clocks of the binarization unit 301 and the binary arithmetic encoding unit 304 are different.
  • the power consumption can be reduced by assigning an appropriate operating frequency to each processing unit.
  • An object of the present invention is to provide an image compression / decompression apparatus that can reduce power consumption in accordance with a user's usage, considering resolution, frame rate, and bit rate.
  • the image compression / decompression apparatus is preferably an apparatus that performs image compression / decompression processing for compressing original image data based on encoding, and decompressing the encoded data.
  • the first parallel number is determined based on the resolution or frame rate of the image, and the one or more image processing units are configured to perform parallel processing with a parallel degree corresponding to the first parallel number.
  • the second parallel number is determined based on the bit rate of the bit stream processed by the image compression / decompression apparatus, and the one or more variable length coding / decoding processing units are set to the second parallel number. Parallel processing is performed according to the degree of parallelism.
  • the one or more image processing units are input with both the image resolution and the frame rate, or one of the image resolution and the frame rate as a parameter, in order to determine the first parallel number.
  • an image compression / decompression apparatus capable of reducing power consumption in accordance with a user's usage application in consideration of resolution, frame rate, and bit rate.
  • 1 is an overall configuration diagram of a configuration of an image compression / decompression apparatus according to an embodiment. It is a figure explaining the mode which determines the parallel number of an image process part and a variable-length encoding decoding process part. It is a figure explaining the relationship between an image (1 frame) when a parallel number of an image processing part is 1, and a macroblock. It is a figure which shows a mode that an image process part processes a macroblock for every processing stage by a time unit. It is a figure which shows a mode when data is transferred from an external memory to an image processing part and a variable-length encoding decoding process part at the time of 1 image processing part system at the time of compression operation, and 1 variable-length encoding decoding process part operation
  • FIG. 1 is an overall configuration diagram of an image compression / decompression apparatus.
  • the image compression / decompression device is H.264.
  • H.264 (ISO / IEC14496-10) is a circuit that performs image compression / decompression processing, and is a decompression device that performs half-duplex processing of image compression processing and image decompression processing.
  • an original image (YCbCr 4: 2: 0 format) is input and sequentially stored in an original image buffer (not shown in FIG. 1) arranged in the external memory 105, and the original image is encoded. It is a process to compress.
  • the image decompression process is performed by inputting a bit stream sequentially stored from MSB (Most Significant Bit) to a stream buffer (not shown in FIG. 1) arranged in the external memory 105, and decoding the image.
  • a decoded image (YCbCr 4: 2: 0 format) is output and sequentially stored in a decoded image buffer arranged in the external memory 105.
  • the configuration of the present apparatus is divided into an image processing unit that is responsible for motion compensation processing when performing image compression / decompression processing, and a modulation and coding decoding processing unit that performs entropy coding processing.
  • the image processing units 101, 102, 103, 104 and the variable length coding / decoding processing units 124, 125 are connected via an intermediate buffer area (not shown in FIG. 1) provided in the external memory 105. Deliver data.
  • the image processing unit 101 is activated from the image processing unit controller 122.
  • the image processing unit 101 stores the original image in the original image buffer unit 106 from the external memory 105 via the bus 121.
  • the intra prediction mode determination unit 108 performs prediction mode determination, and generates an intra prediction image.
  • the search unit 107 calculates a motion vector optimal for inter prediction, and a reference image at a position corresponding to the motion vector is obtained from a reference frame area (not shown in FIG. 1) in the external memory 105 by the bus 121.
  • the residual calculation part 110 produces
  • the prediction error is input to the next discrete cosine transform unit 111.
  • the input residual component is subjected to integer cosine transform, converted into frequency samples, and output to the quantization block unit 112.
  • the input data is divided by a predetermined quantization scale.
  • Each frequency sample after quantization is read out from the two-dimensional matrix by the zigzag scanning unit 113 in the zigzag scanning order, and is output as one-dimensional data.
  • the residual calculation unit 110 transfers the macroblock division information and the prediction mode in the case of intra prediction, and the motion vector to the run length encoding unit 114 in the case of inter prediction. Thereafter, the run-length encoding unit 114 performs H.264 encoding.
  • the data is converted into data having a continuous number of zeros and non-zero coefficients and is provided in an intermediate buffer area (not shown in FIG.
  • each frequency sample divided by the quantization unit 112 to generate a reference image is multiplied by a predetermined quantization scale by the inverse quantization unit 117, and the frequency sample is inversely quantized. It becomes.
  • an inverse discrete cosine transform unit 118 performs integer cosine transform on the frequency sample and transforms it into a residual component.
  • an intra prediction image is generated from the prediction mode by the intra prediction unit 109, and in the case of inter prediction, a reference frame at a position corresponding to the motion vector is stored in the external memory 105 by the search unit 107.
  • An inter prediction image is generated by reading out from the region (not shown in FIG. 1) via the bus 121.
  • the residual calculation unit 119 adds the intra prediction image or the inter prediction image and the residual component to generate a prediction image. Thereafter, the deblocking filter 120 removes block distortion to generate a reference image, which is stored in the external memory 105 via the bus 121.
  • image decompression processing (hereinafter, simply referred to as “decompression processing”) of the image compression / decompression apparatus will be described.
  • variable length coding / decoding processor controller 130 activates the variable length coding / decoding processor 124.
  • the variable length coding / decoding processing unit 124 reads a bit stream from a stream buffer (not shown in FIG. 1) arranged in the external memory 105 via the bus 121 and stores the bit stream in the code buffer unit 127.
  • the variable length decoding unit 128 performs H.264. In accordance with the H.264 standard, the number of consecutive 0s and non-zero coefficient data, macroblock division information, intra prediction mode, or motion vector are decoded.
  • the decoded data is an intermediate buffer (see FIG. 4) that is formed in a form that can be understood when the run (appearance of symbols) and length (length of symbol arrangement) are read later according to a predetermined format. 1 (not shown in FIG. 1) via the bus 121.
  • variable length coding / decoding processing unit controller 130 After the processing for one frame is completed in the variable length coding / decoding processing unit 124, the variable length coding / decoding processing unit controller 130 notifies the image processing unit controller 122.
  • the image processing unit controller 122 activates the image processing unit 101, and the run length decoding unit 115 of the image processing unit 101 acquires intermediate data from the external memory 105 via the bus 121.
  • the run-length decoding unit 115 calculates all frequency samples in the macroblock from the continuous number of zeros and the non-zero coefficient data, and sends it to the zigzag scanning unit 116.
  • the zigzag scan unit 116 outputs the one-dimensional data as a two-dimensional matrix in the zigzag scan order.
  • the inverse quantization unit 117 performs multiplication by a predetermined quantization scale to inversely quantize the frequency sample.
  • an inverse discrete cosine transform unit 118 performs integer cosine transform on the frequency sample and transforms it into a residual component.
  • the intra prediction unit 109 generates an intra prediction image according to the prediction mode.
  • the search unit 107 refers to a reference image in the external memory 105 at a position corresponding to the motion vector. Reading from the frame region (not shown in FIG. 1) via the bus 121 generates an inter prediction image.
  • the intra prediction image or the inter prediction image is added by using the residual component in the residual calculation unit 119 to generate a prediction image.
  • the block distortion is removed by the deblocking filter 120 to generate a decoded image, which is stored in the decoded image buffer (not shown in FIG. 1) disposed in the external memory 105 via the bus 121.
  • the decoded image in the decompression process is also used as a reference image for the decompression process.
  • the image compression / decompression apparatus has a plurality of image processing units and a variable length coding / decoding processing unit, and is premised on that they operate independently and in parallel. Therefore, the parallel number of the image processing units 101, 102, 103, and 104 and the variable length coding / decoding processing units 124 and 125 will be described with reference to FIG.
  • FIG. 2 is a diagram for explaining a mode for determining the parallel number of the image processing units 101, 102, 103, 104 and the variable length coding / decoding processing units 124, 125.
  • the processing time of the image processing unit is almost specified depending on the pixel rate calculated by resolution ⁇ frame rate.
  • the resolution is a numerical value indicating the density of pixels in the bitmap image
  • the frame rate is the number of frames (the number of still images and the number of frames) processed per unit time in the moving image.
  • the image processing unit 101 for one system shown in FIG. 1 is capable of processing a resolution of 1920 ⁇ 1088 and a frame rate of 30 fps
  • the resolution is 1920 ⁇ 1088 and the frame rate is 60 fps
  • processing with a resolution of 4096 ⁇ 2160 and a frame rate of 30 fps can be performed.
  • the frame rate may be 120 fps when the resolution is 1920 ⁇ 1088.
  • the image processing unit determines the parallel number based on the pixel rate calculated by resolution ⁇ frame rate, and the image processing units 101, 102, 103, and 104 according to the degree of parallelism according to the parallel number. Are operated in parallel.
  • the processing time of the processing of the variable length encoding / decoding processing unit varies depending on the bit rate of the bit stream.
  • the bit rate is a numerical value indicating how many bits of data are processed or transmitted / received per unit time.
  • the variable length coding / decoding processing unit 124 is assumed to have a processing performance of 50 Mbps, and the parallel number is defined by the bit rate transferred to the variable length coding / decoding processing unit 124. Then, the variable length coding / decoding processing units 124 and 125 cause the variable length coding / decoding processing units 124 and 125 to operate in parallel according to the degree of parallelism according to the number of parallels defined by the bit rate. Thereby, it becomes possible to perform easy electric power control according to a use application.
  • resolution 4096 ⁇ 2160
  • frame rate 30 fps
  • bit rate 50 Mbs to 100 Mbs
  • the parallel number of image processing units 4
  • the image processor controller 122 has a table for determining the number of parallel image processors when the resolution and frame rate are set in advance, as shown in FIG. .
  • mode no. 2 the image processing unit is operated with a parallel number of parallel number 2
  • the mode No. 5 the image processing unit is operated at a parallel degree of 4 parallels.
  • variable length coding / decoding processing unit controller 130 is connected in parallel to the variable length coding / decoding processing unit.
  • the image processing unit controller 122 and the variable length coding / decoding processing controller 130 prevent unnecessary data paths from changing for each clock according to the operation mode requested by the user, and consumption during operation of the image compression / decompression apparatus. Electric power can be reduced.
  • the resolution / frame rate and the bit rate may both be input variably, or the resolution / frame rate may be changed, the parameters may be input, the bit rate may be fixed, and vice versa. Furthermore, the resolution and frame rate may be fixed, and the bit rate may be input as a parameter.
  • the parallel number of the image processing units is determined according to the resolution and the frame rate, and the parallel number of the variable length coding / decoding processing unit is determined according to the bit rate.
  • the same low power effect can be obtained even if the register setting is made directly from an external host CPU or the like.
  • FIG. 3 is a diagram for explaining the relationship between an image (one frame) and a macroblock when the number of parallel image processing units is one.
  • the image processing unit 101 sequentially performs the right horizontal direction (MB0, MB1, MB2,%) On the input image from the upper left macroblock MB0 for each unit called a 16 ⁇ 16 pixel macroblock. 7) Reads the original image and performs macroblock compression processing.
  • the macroblock line (MB119) for one horizontal line ends from MB0 the image processing unit 100 moves in the vertical direction of the lower 16 pixels and sequentially moves from the left end (MB120) to the right in the horizontal direction. The process is repeated until the frame is completed.
  • the original image is sequentially transferred from the image input unit (not shown) to the original image buffer (described later in FIG. 5) of the external memory 105 in real time as (B0, B1, I2, B3, B4, P5,). Shall be entered.
  • “I” is an I picture (intra-frame encoded image)
  • “P” is a P picture (inter-frame forward predictive encoded image)
  • “B” is a B picture (bidirectional predictive coded image), and the number promises to represent the input frame order when counting from the 0th frame of the original image.
  • the above description describes a series of flow of the macroblock processing, and does not include sub-information such as adjacent macroblock information.
  • FIG. 4 is a diagram illustrating a state in which the image processing unit 101 processes a macroblock in units of time for each processing stage.
  • the original image reading stage is the original image buffer unit 106
  • the intra prediction mode determination stage is the intra prediction mode determination unit 108
  • the intra inter determination stage is the intra prediction unit 109
  • the search unit 107 and the prediction image creation stage.
  • the residual calculation unit 110 the frequency transformation stage is the discrete cosine transformation unit 111, the quantization 112, the inverse quantization 117, the inverse discrete cosine transformation unit 118
  • the run length stage is the zigzag scanning unit 113, and the run length.
  • the encoding unit 114, the decoded image creation stage are the residual calculation unit 119
  • the deblocking filter stage is a stage at which the deblocking filter 120 operates.
  • Time 0 (time 1, time 2,%) Indicates a processing time required for each MB.
  • time 0 (time 1, time, time)
  • Each stage ends within 2...
  • the macro block sequentially reads the original image from the upper left of the image (MB0, MB1, MB2,). Thereafter, the processing stage is pipeline-operated such as intra prediction mode determination and intra-inter determination. For example, at time 3, a macroblock of MB3 for the original image read stage, MB2 for the intra prediction mode determination stage, MB1 for the intra inter determination stage, and MB0 for the prediction image creation stage is processed.
  • the image processing unit 101 repeats the macroblock processing until the processing for one frame is completed as shown in FIG.
  • the image processing unit controller 122 notifies the variable length coding / decoding processing controller 130 after completion of one frame.
  • the variable length coding / decoding processing unit controller 130 activates the variable length coding / decoding processing unit 124.
  • the variable length encoding / decoding processing unit 124 reads the intermediate data stored in the image processing unit 101 from the external memory 105 unit via the bus 121, generates a bit stream compressed by the variable length encoding unit 126, and generates a code buffer.
  • the unit 127 sequentially stores bits from the MSB in the stream buffer arranged in the external memory 105 via the bus 121. Thus, in the compression process, the process is performed for each frame until the process is completed, and the compressed bit stream is sequentially stored in the stream buffer.
  • FIG. 5 shows a state in which data is transferred from an external memory to the image processing unit and the variable length coding / decoding processing unit when one image processing unit and variable length coding / decoding processing unit are operated during the compression operation.
  • the image processing unit 101 inputs images from the original image buffer 300 in the compression order (I2, B0, B1,...), And sequentially stores intermediate data in the intermediate buffer 310.
  • the variable length encoding processing unit 124 reads and compresses the intermediate data from the intermediate buffer 310 and sequentially stores the generated bit stream in the stream buffer 320.
  • FIG. 6 shows a state in which data is transferred from an external memory to the image processing unit and the variable length coding / decoding processing unit during one operation of the image processing unit and variable length coding / decoding processing unit during the decompression operation.
  • FIG. 6 shows a state in which data is transferred from an external memory to the image processing unit and the variable length coding / decoding processing unit during one operation of the image processing unit and variable length coding / decoding processing unit during the decompression operation.
  • the variable length coding processing unit 124 acquires a bit stream from the stream buffer 330 and sequentially stores intermediate data in the intermediate buffer 310.
  • the image processing unit 101 reads out the intermediate data from the intermediate buffer 310, performs decompression processing, and sequentially stores the generated decoded images in the decoded image buffer 340.
  • FIG. 7 is a diagram for explaining the relationship between an image (one frame) and a macroblock when the number of parallel image processing units is four.
  • FIG. 8 is a diagram illustrating a state in which the image processing units 101, 102, 103, and 104 process macroblocks in units of time for each processing stage.
  • pipeline processing is performed in the same manner as in one system for each of the divided different macroblocks.
  • the macroblock reads the original image sequentially from the MB0, the image processing unit 102 from the MB8704, the image processing unit 103 from the MB17408, and the image processing unit 104 from the MB2612. Thereafter, a pipeline operation is performed for each processing stage, such as intra prediction mode determination and intra-inter determination.
  • the original image reading stage is MB3, MB8707, MB17411, MB26115
  • the intra prediction mode determination stage is MB2, MB8706, MB17410, MB26114, intra for each of the image processing units 101, 102, 103, and 104.
  • the inter determination stage processes MB1, MB8705, MB17409, MB26113
  • the prediction image creation stage processes macroblocks MB0, MB8704, MB17408, and MB26112.
  • FIG. 9 shows a state in which data is transferred from an external memory to the image processing unit and the variable length coding / decoding processing unit when the four image processing units and the variable length coding / decoding processing unit are operated in the compression operation.
  • FIG. 9 shows a state in which data is transferred from an external memory to the image processing unit and the variable length coding / decoding processing unit when the four image processing units and the variable length coding / decoding processing unit are operated in the compression operation.
  • the image processing units 101, 102, 103, and 104 input images from the image buffer 300 in the compression order (I2, B0, B1,...), And sequentially store the intermediate data in the intermediate buffer 310 that is divided into four.
  • the image processing unit 101 is 710 of the intermediate buffer 310
  • the image processing unit 102 is 711 of the intermediate buffer 310
  • the image processing unit 103 is 712 of the intermediate buffer 310
  • the image processing unit 104 is Intermediate data is stored in 713 of the intermediate buffer 310, respectively.
  • the image processing unit 101 is 714 of the intermediate buffer 310
  • the image processing unit 102 is 715 of the intermediate buffer 310
  • the image processing unit 103 is 716 of the intermediate buffer 310
  • the image processing unit 104 is Intermediate data is stored in 717 of the intermediate buffer 310, respectively.
  • the data is sequentially stored in the intermediate buffer 310 divided into four, such as “B1 (P5, B3, B4...)”.
  • variable length encoding processing units 124 and 125 read intermediate data from the intermediate buffer 310 in the order of compression.
  • the variable length encoding / decoding processing unit 124 stores the compressed bit stream in the intermediate buffer 320 and the variable length encoding / decoding processing unit 125. Are sequentially stored in the intermediate buffer 321 in units of frames. For example, as shown in FIG.
  • variable length coding processing unit 124 processes the original images 702 and 703
  • variable length coding processing unit 125 processes the original images 700, 701, 704, and 705, respectively
  • the bit stream 722 of the original image 702 and the bit stream 723 of the original image 703 are stored in the buffer 320
  • the bit stream 720 of the original image 700, the bit stream 721 of the original image 701, and the bit stream of the original image 704 are stored in the intermediate buffer 321.
  • the bit stream 725 of the original image 705 is stored.
  • the intermediate buffers 320 and 321 are mixed in units of frames. This alignment can be solved by reading from the intermediate buffers 320 and 321 in the compression order in the stream combination analysis module 129 described later, combining them, and storing the bit stream in the stream buffer 330.
  • FIG. 10 shows a state in which data is transferred from an external memory to the image processing unit and the variable length coding / decoding processing unit during the operation of the four image processing units and the variable length coding / decoding processing unit during the decompression operation.
  • FIG. 10 shows a state in which data is transferred from an external memory to the image processing unit and the variable length coding / decoding processing unit during the operation of the four image processing units and the variable length coding / decoding processing unit during the decompression operation.
  • the stream combination analysis module 129 performs an analysis for cutting out the compressed data in the stream buffer 330 in units of one frame. Based on the analysis result, the variable length encoding processing units 124 and 125 read from the stream buffer 330 in units of frames, and the variable length encoding and decoding processing unit 124 stores the intermediate data in the intermediate buffer 310 and the variable length encoding and decoding processing unit. 125 are sequentially stored in the intermediate buffer 311.
  • the image processing units 101, 102, 103, and 104 select the intermediate buffers 310 and 311 in the frame order and read the intermediate data.
  • the generated decoded images are stored in the decoded image buffer 340 in the display order (B0, B1, I2,).
  • the image processing unit and the variable length coding / decoding unit can know how much data is stored by notifying the buffer usage amount and can be used as a ring buffer. In addition, by performing such buffer control, it is possible to buffer data between an image processing unit and a variable-length encoding / decoding unit having different processing units, and to realize real-time compression processing or decompression processing. It becomes.
  • FIG. 11 is a flowchart showing a detailed procedure of image compression processing of the image compression / decompression apparatus.
  • FIG. 12 is a timing chart showing the processing timing of each picture and each part in the image compression processing.
  • the image processing unit controller 122 performs initial setting for the image processing units 101,... According to the compression start instruction from the start instruction waiting loop (S01) (S02). In this initial setting, in which mode the image processing units 101,... Operate, that is, the parallel number of the image processing units 101,. Then, the image processing unit controller 122 issues a variable length coding / decoding start instruction to the variable length coding / decoding processing unit controller 130 (S03, A1), and the initial setting from the variable length coding / decoding processing unit controller 130 is completed. Wait for notification (S04).
  • variable length coding / decoding processing unit controller 130 shifts to the initial setting from the start instruction waiting loop (S11) (S12), and upon completion, notifies the image processing unit controller 122 of the initial setting completion (S13, A2).
  • this initial setting in which mode the variable-length coding / decoding processing units 124,... Operate, that is, the parallel number of the variable-length coding / decoding processing units 124,.
  • the image processing unit 101 Repeats the compression process in units of one frame until an end instruction is issued (S05, S07), and notifies the variable length coding processing unit controller 130 of one frame completion each time the process is completed ( S06, A3).
  • the variable length coding / decoding processing unit 124 receives the completion notification from the image processing unit 101,... Starts compression processing for one frame (S14), and repeats until there is an end notification (S15).
  • the variable-length coding processing unit controller 130 may receive a one-frame completion notification from the image processing unit controller 122 while the variable-length coding processing unit is performing one-line operation processing. In this case, the notification may be retained and the retained frame may be processed after completion.
  • variable-length coding processing unit when the variable-length coding processing unit is operating in two systems, variable-length coding that is not being processed even if one frame is being processed, as shown in the timing chart of the compression processing shown in FIG.
  • the decoding processing unit By causing the decoding processing unit to process, two frames can be processed simultaneously.
  • FIG. 12 if the variable length coding / decoding processing unit 1 is processing “I2”, the variable length coding / decoding processing unit 2 processes “B0”, “B1”, and “P5”. Thereafter, the stream combination analysis module 129 described later connects in the order of compression, so that parallel operations can be performed.
  • variable length coding / decoding processing unit may receive a one frame completion notification from the image processing unit during the two-line operation processing. In this case, holding is performed in the same manner as the one-line operation, and the held frame is processed after completion. In the two-system operation, the order of completion depends on the bit amount of each frame. In this embodiment, the function of concatenating the stream data in the frame order is provided, so that the frame order (I2, B0, B1, P5, B3, B4,...) Can be generated.
  • FIG. 13 is a flowchart showing a detailed procedure of image decompression processing of the image compression / decompression apparatus.
  • FIG. 14 is a timing chart showing the processing timing of each picture and each part in the image expansion processing.
  • the image processing unit controller 122 makes initial settings for the image processing units 101,... In response to a decompression start instruction from the start instruction waiting loop (S21) (S22). In this initial setting, in which mode the image processing units 101,... Operate, that is, the parallel number of the image processing units 101,. Then, the image processing unit controller 122 issues a variable length coding / decoding start instruction to the variable length coding / decoding processing unit controller 130 (S23, A11), and the initial setting from the variable length coding / decoding processing unit controller 130 is completed. Wait for notification (S24).
  • variable length coding / decoding processing unit controller 130 shifts to the initial setting from the start instruction waiting loop (S31) (S32), and upon completion, notifies the image processing unit controller 122 of the initial setting completion (S33, A12).
  • this initial setting in which mode the variable-length coding / decoding processing units 124,... Operate, that is, the parallel number of the variable-length coding / decoding processing units 124,.
  • variable length coding / decoding processing unit 124 Repeats the decompression processing in units of one frame until an end notification is received (S34, S36), and notifies the image processing unit of one frame completion every time the processing is completed (S35, S36). A13).
  • the image processing unit 101 Receives a completion notification from the variable length coding / decoding processing unit, starts an expansion process for one frame, and repeats until an end instruction is given (S25, S26, S27).
  • variable-length coding / decoding processor controller In the 2-system operation, the variable-length coding / decoding processor controller must allocate variable-length coding / decoding processing in units of one frame. As shown in the timing chart of the decompression process in FIG. 14, the stream data is analyzed, and the frame unit process can be performed even in a two-line operation by detecting the head of the frame. If the variable length coding / decoding processing unit 1 is processing “I2”, the variable length coding / decoding processing unit 2 processes “B0”, “B1”, and “P5”.
  • the completion order of each frame may be changed depending on the amount of bits to be expanded. Since the variable-length encoding / decoding processor controller 130 allocates and manages processes for each system in the order of frames, in such a case, the variable-length encoding / decoding processor controller 130 performs image processing in the order of frames. By performing the notification, the decompression process can be performed without changing the frame order (I2, B0, B1, P5, B3, B4,%) Of the image processing unit.
  • the stream combination analysis block unit 129 is a part that functions when, for example, the variable-length encoding / decoding processing units 124 and 125 operate in parallel. In the compression processing, the variable-length encoding / decoding processing units 124 and 125 respectively generate Combine stream data in units of one frame.
  • the stream combination analysis block unit 129 notifies the host CPU (not shown) of frame breaks in advance, and sequentially reads the stream of each frame on the host side and combines them on software. It is good also as processing. Further, at the time of decompression processing, analysis is performed to cut out compressed stream data to be decompressed by one frame which is a processing unit of the variable length coding / decoding processing units 124 and 125.
  • an AU delimiter header is added to the beginning of each frame, and if a unique AU delimiter code (0x09) is added to the beginning of each picture, this unique ID is searched during analysis. It becomes possible to determine the frame break. Further, in this analysis process, a frame break is detected in advance by a host CPU (not shown), each frame break information is notified to the circuit, and the variable length coding / decoding processing units 124 and 125 are detected. However, each may be read from the external stream buffer based on the frame break information.
  • FIG. 15A is a diagram illustrating an example of controlling parallel processing of the image processing unit and the variable length coding / decoding processing unit by clock control.
  • FIG. 15B is a diagram illustrating an example of controlling parallel processing of the image processing unit and the variable length coding / decoding processing unit by power control.
  • the external clock is gated by the image processing units 101, 102, 103, 104 and the variable length coding / decoding processing units 124, 125 in the clock control unit of the image compression / decompression apparatus. And distribute to each processing unit.
  • the clock control units 123 and 131 each have a CG (clock gating cell) connected to the image processing unit controller 122 and the variable length coding / decoding processing controller 130, respectively.
  • CG clock gating cell
  • the clock tree (component connected to the clock) distributed to each processing unit after clock gating has a large fanout (the maximum number of circuit elements that can be connected)
  • only the clock is supplied.
  • a large amount of power is consumed.
  • a large power consumption is achieved by controlling the clocks from the clock control units 123 and 131 to the unused blocks according to the operation mode selection of the image processing unit controller 122 and the variable length coding / decoding processing controller 130, respectively. A reduction effect can be produced.
  • the power for stopping the power supply of the image processing unit and the variable length coding / decoding processing unit that are not operating among the gates in the circuit is provided, and the power control unit is switched according to the presence or absence of operation.
  • a logic gate may be inserted so that a definite value is input.
  • the image processing unit corresponds to the pixel rate calculated by the resolution at the time of operation ⁇ the frame rate.
  • CABAC Context-Adaptive-Binary-Arithmetic-Coding
  • CAVLC Context-Adaptive-Variable-Length-Coding
  • CABAC is a coding method that performs a process of changing the prediction model of the probability of occurrence of the next bit according to the occurrence of each bit of binarized data. For this reason, sequential processing is performed on a continuous data string in one slice, and the processing time greatly varies depending on the number of bits to be processed. Therefore, even if the pixel rate is high, if the bit rate is low, the parallel number of variable length coding / decoding processing units may be low.
  • the image processing unit changes the parallel number according to the resolution and the frame rate
  • the variable length coding / decoding processing unit changes the parallel number according to the bit rate of the stream
  • CAVLC is a variable length coding system based on a variable length coding table.
  • a code match is compared with a plurality of tables provided in advance, so that processing of several bits to several tens of bits can be performed in one cycle.
  • CABAC CABAC-based on a variable length coding table. Therefore, the parallelism of the variable length coding / decoding processing unit may be controlled using this in accordance with CABAC or CAVLC.
  • the variable length coding / decoding controller 123 performs control to select two parallel processing in CABAC, in the case of CAVLC, by performing control to perform one parallel processing, It is possible to suppress the operation of unnecessary circuits in the case of CAVLC and perform power consumption control with higher accuracy.
  • the image compression / decompression apparatus can select an optimal encoding method according to power consumption.
  • H.264 has been described. Although described based on the image compression / decompression device according to H.264, the hybrid encoding method based on frequency conversion processing such as MPEG1, 2, 4 and the like using DCT, run-length encoding, and variable-length encoding processing has similar characteristics, The method of controlling the parallelism independently between the frequency processing unit and the variable length coding / decoding block, which is a feature of the present invention, is effective.
  • the image compression / decompression circuit that performs image compression and decompression with a common circuit has been described.
  • the image compression apparatus that performs only image compression or the image decompression apparatus that performs only image decompression has a separate configuration. Even so, it has the same effect.
  • each buffer in the middle was stored in the external memory.
  • SRAM Static Random Access Memory
  • image compression / decompression processing circuits that handle various resolutions and bit rates have the same effect on still images represented by JPEG (Joint Photographic Experts Group). .
  • JPEG Joint Photographic Experts Group
  • DESCRIPTION OF SYMBOLS 100 ... Image compression / expansion apparatus 101 ... Image processing part 1 102: Image processing unit 2 103. Image processing unit 3 104 Image processing unit 4 105 ... External memory 106 ... Original image buffer unit 107 ... Inter search unit 108 ... Intra prediction mode determination unit 109 ... Intra prediction unit 110 ... Residual calculation unit 111 ... Discrete cosine transform unit 112 ... Quantization unit 113 ... Zigzag scan unit 114 ... Run-length encoding unit 115 ... Run-length decoding unit 116 ... Zigzag scanning unit 117 ... Inverse quantization unit 118 ... Inverse discrete cosine transform unit 119 ... Residual calculation unit 120 ...
  • Deblocking filter 121 External memory communication bus unit 122 ... Image processing unit controller 123... Image processing unit clock control unit 124... Variable length encoding / decoding processing unit 1 125... Variable length encoding / decoding processor 2 126 ... Variable length encoding unit 127 ... Code buffer unit 128 ... Variable length decoding unit 129 ... Stream combination analysis unit 130 ... Variable length encoding / decoding processing controller 132 ... Parameter input unit (resolution / frame rate) 133 ... Parameter input section (bit rate)

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

 原画像データを符号化に基づいて圧縮し、また、符号化されたデータを伸長する画像圧縮伸長処理を行う装置は、一つ以上の画像処理部と、一つ以上の可変長符号化復号処理部と有し、画像処理部は、画像の解像度、又は、フレームレートに基づいた並列数分、並列処理し、可変長符号化復号処理部は、画像圧縮伸長装置が処理するビットストリームのビットレートに基づいた並列数により、並列処理する。また、画像圧縮伸長装置には、並列数を決定する画像の解像度、フレームレートの両方、あるいは画像の解像度、フレームレートの一方をパラメータとして入力する。これにより、解像度、フレームレート、ビットレートを考慮に入れたユーザーの使用用途に応じて、消費電力を低減することができる。

Description

画像圧縮伸長装置
 本発明は、画像圧縮伸長装置に係り、特に、H.264規格などの映像圧縮符号化技術に基づいた画像処理の符号化・復号化処理を低消費電力で動作させるのに好適な画像圧縮伸長装置に関する。
 MPEG圧縮技術などを用いて、画像を圧縮(エンコード)伸長(デコード)する技術が、デジタル画像処理機器に用いられている。2013年1月には、ISO/IEC標準23008-3(通称、H.265/HEVC)が国際標準化された。これに伴い、画像圧縮伸長技術は民生AV機器や産業機器においてさらに広く利用されることが予想される。
 今後の傾向としては、8k4k次世代放送規格(いわゆるスーパーハイビジョン規格:UHDTV(Ultra High Definition Television))に代表されるような画像の高解像度、高画素レート化や低ビットレート化が進むと予想され、そのために、従来の画像サイズや、高ビットレートなど、幅広いユーザーニーズに対応する必要がある。このような状況において、消費電力を考慮した技術が、例えば、特許文献1に開示されている。
特開2008-141531号公報
 特許文献1に記載の画像符号化装置は、二値化部301と二値算術符号化部304の間にバッファを設け、二値化部301と二値算術符号化部304の処理クロックを異ならせて、各処理部に適切な動作周波数を割り当てるようにして消費電力を低減できるようにしたものである。
 一方、動画の動作環境を表す指標として、解像度、フレームレート、ビットレートがある。画像処理プロセッサが動画を符号化するときの負荷や消費電力は、これらが大きく関係する。特許文献1に記載の画像符号化装置は、出力するビットレートに応じて低消電力化はできるものの、解像度、フレームレートに関する低消費電力化については考慮されていない。
 本発明の目的は、解像度やフレームレート、ビットレートを考慮した、ユーザーの使用用途に応じて、消費電力を低減することのできる画像圧縮伸長装置を提供することにある。
 本発明に係る画像圧縮伸長装置は、好ましくは、原画像データを符号化に基づいて圧縮し、また、符号化されたデータを伸長する画像圧縮伸長処理を行う装置であって、イントラ予測又はインター予測による予測画像生成、差分画像生成、周波数変換、量子化・逆量子化を行う一つ以上の画像処理部と、可変長符号化復号処理を行う一つ以上の可変長符号化復号処理部と有する装置である。画像の解像度又はフレームレートに基づいて、第一の並列数を決定し、一つ以上の画像処理部は、第一の並列数に応じた並列度により並列処理するように構成される。
 また、好ましい例では、画像圧縮伸長装置が処理するビットストリームのビットレートに基づいて、第二の並列数を決定し、一つ以上の可変長符号化復号処理部は、第二の並列数に応じた並列度により並列処理する。
 また、好ましい例では、前記一つ以上の画像処理部は、第一の並列数を決定するために、画像の解像度、フレームレートの両方、あるいは画像の解像度、フレームレートの一方をパラメータとして入力される。
 本発明によれば、解像度、フレームレート、ビットレートを考慮した、ユーザーの使用用途に応じて、消費電力を低減することのできる画像圧縮伸長装置を提供することができる。
一実施例に係る画像圧縮伸長装置の構成の全体構成図である。 画像処理部と可変長符号化復号処理部の並列数を決めるモードについて説明する図である。 画像処理部の並列数が1のときの画像(1フレーム)とマクロブロックの関係について説明する図である。 画像処理部が、処理ステージごとに、時間単位でマクロブロックを処理する様子を示す図である。 圧縮動作時の画像処理部1系統、可変長符号化復号処理部1系統動作時に、外部メモリからデータが画像処理部と可変長符号化復号処理部に転送されるときの様子を示す図である。 伸長動作時の画像処理部1系統、可変長符号化復号処理部1系統動作時に、外部メモリからデータが画像処理部と可変長符号化復号処理部に転送されるときの様子を示す図である。 複数の画像処理部における画像(1フレーム)とマクロブロックの関係について説明する図である。 複数の画像処理部が、処理ステージごとに時間単位でマクロブロックを処理する様子を示す図である。 圧縮動作時の画像処理部4系統、可変長符号化復号処理部2系統動作時に、外部メモリからデータが画像処理部と可変長符号化復号処理部に転送されるときの様子を示す図である。 伸長動作時の画像処理部4系統、可変長符号化復号処理部2系統動作時に、外部メモリからデータが画像処理部と可変長符号化復号処理部に転送されるときの様子を示す図である。 画像圧縮伸長装置の画像圧縮処理の詳細手順を示すフローチャートである。 画像圧縮処理において、各ピクチャと各部の処理のタイミングを示すタイミングチャートである。 画像圧縮伸長装置の画像伸長処理の詳細手順を示すフローチャートである。 画像伸長処理において、各ピクチャと各部の処理のタイミングを示すタイミングチャートである。 クロック制御により、画像処理部と可変長符号化復号処理部の並列処理を制御する例を示す図である。 電源制御により、画像処理部と可変長符号化復号処理部の並列処理を制御する例を示す図である。
 以下、本発明の好ましい実施形態について、図面を用いて説明する。
 〔画像圧縮伸長装置の構成概要〕
先ず、図1を用いて、一実施形態に係る画像圧縮伸長装置の構成について説明する。図1は、画像圧縮伸長装置の構成の全体構成図である。
 画像圧縮伸長装置は、H.264(ISO/IEC14496-10)の規格に則った画像圧縮伸長処理を行う回路であり、画像圧縮処理と、画像伸長処理とを、半二重化処理する伸長装置である。画像圧縮処理は、原画像(YCbCr 4:2:0フォーマット)を入力とし、外部メモリ105に配置した原画バッファ(図1には、図示せず)に順次格納され、その原画像を符号化して圧縮する処理である。画像伸長処理は、外部メモリ105に配置したストリームバッファ(図1には、図示せず)にMSB(Most Significant Bit:最上位ビット)から順次格納されているビットストリームを入力とし、復号化された復号画(YCbCr 4:2:0フォーマット)を出力として、外部メモリ105に配置した復号画バッファに順次格納する処理である。
 本装置の構成としては、画像圧縮伸長処理を行う際、動き補償処理を受け持つ画像処理部と、エントロピー符号化処理を行う可変調符号化復号処理部に分かれている。
 画像処理を行う部分は、合計4系統あり、各々が同等の機能を有していて、画像処理部101、102、103、104は、並列動作を行うことが可能になっている。また、可変長符号化復号処理を行う部分については、合計2系統あり、各々が同等の機能を有していて、可変長符号化復号処理部124,可変長符号化復号処理部125は、並列動作を行うことが可能になっている。なお、本実施形態では、このように、画像処理部が4系統、可変長符号化復号処理部が2系統の場合を説明するが、画像圧縮伸長装置に対する要求処理能力やコストなどに応じて、任意に、画像処理部:n系統、可変長符号化復号処理部:m系統にすることは可能である(n、mは、正の整数)。
 さらに、画像処理部101、102、103、104と可変長符号化復号処理部124、125は、外部メモリ105内に設けられた中間バッファ領域(図1には、図示せず)を介して、データの受け渡しを行う。
 〔画像圧縮伸長装置の画像圧縮処理と画像伸張処理〕
 次に、図1を用いて、本実施形態に係る画像圧縮伸長装置の各部の構成とその動作について説明する。先ず、画像圧縮伸長装置の画像圧縮処理(以下、単に「圧縮処理」ということもある)について説明する。
 画像処理部101は、画像処理部コントローラ122から起動される。画像処理部101は、外部メモリ105からバス121を経由して、原画像を原画バッファ部106に格納する。次に、イントラ予測モード判定部108で予測モードの判定を行い、イントラ予測画像を生成する。また、探索部107でインター予測に最適な動きベクトルを算出し、該動きベクトルに応じた位置の参照画像を外部メモリ105内にある参照フレーム領域(図1には、図示せず)からバス121を経由して読み出し、インター予測画像を生成する。そして、残差計算部110は、インター予測画像、又はイントラ予測画像と、原画像との差分を取ることにより、予測残差を生成する。予測誤差は、次の離散コサイン変換部111に入力される。このとき、インター予測画像を用いるかイントラ予測画像を用いるかは、そのときの残差の量に応じて、後の符号量が少なくなることが予想される側の情報が選択される。この選択は、例えば、各マクロブロックの残差の絶対値差分和を求め、その値が小さい方を選択することでも実現可能である。離散コサイン変換部111では、入力されてくる残差成分を整数コサイン変換し、周波数サンプルに変換して、量子化ブロック部112に出力する。
 次に、量子化ブロック部112において、入力されたデータは、所定の量子化スケールで、除算される。量子化後の各周波数サンプルは、ジグザグスキャン部113で2次元の行列から、ジグザグスキャン順に読み出され、一次元のデータとして出力される。また、残差計算部110は、マクロブロックの分割情報及び、イントラ予測であれば予測モード、インター予測であれば、動きベクトルをランレングス符号化部114に転送する。この後、ランレングス符号化部114では、H.264規格に則って、0の連続個数、及び、非ゼロ係数化されたデータに変換し、バス121を介して外部メモリ105内に設けた中間バッファ領域(図1には、図示せず)に格納する。ランレングス符号化まで進めた後、中間バッファに格納することにより、中間データ量は原画像データ量から、大きく削減されるため、画像処理部がランレングス符号化処理までを含むことは、バス121のバンド幅及び外部メモリ105の両方を削減するという観点から見てメリットがある。
 上記、符号化作業と並行して、参照画像を生成するため量子化部112で除算された各周波数サンプルは、逆量子化部117で、所定の量子化スケールで乗算され、周波数サンプルが逆量子化される。次に、逆離散コサイン変換部118で、周波数サンプルを整数コサイン変換し、残差成分に変換する。次に、イントラ予測ならば、イントラ予測部109で予測モードからイントラ予測画像を生成し、インター予測ならば、探索部107で動きベクトルに応じた位置の参照画像を外部メモリ105内にある参照フレーム領域(図1には、図示せず)からバス121を介して読み出し、インター予測画像を生成する。
 次に、残差計算部119で、イントラ予測画像、又は、インター予測画像と残差成分とを加算し、予測画像を生成する。この後、デブロッキングフィルタ120によりブロック歪みを除去して参照画像を生成し、バス121を介して、外部メモリ105に格納する。
 次に、画像圧縮伸長装置の画像伸張処理(以下、単に「伸長処理」ということもある)について説明する。
 画像伸長処理を開始するときには、可変長符号化復号処理部コントローラ130は、可変長符号化復号処理部124を起動する。可変長符号化復号処理部124は、外部メモリ105に配置してあるストリームバッファ(図1には、図示せず)からビットストリームを、バス121を介して読み出し、符号バッファ部127に格納する。可変長復号部128でH.264規格に則って、0の連続個数、及び、非ゼロ係数化されたデータ、マクロブロック分割情報及び、イントラ予測モード又は、動きベクトルを復号する。復号したデータは、予め定めたフォーマットに従って、ラン(シンボルの出現)とレングス(シンボルの並びの長さ)が後から読み出したときにわかる形にされて、外部メモリ105に配置した中間バッファ(図1には、図示せず)に、バス121を介して格納される。
 可変長符号化復号処理部124で1フレーム分の処理が完了後、可変長符号化復号処理部コントローラ130は、画像処理部コントローラ122に通知する。画像処理部コントローラ122は、画像処理部101を起動して、画像処理部101のランレングス復号部115が、バス121を介して外部メモリ105より中間データを取得する。ランレングス復号部115で、0の連続個数、及び、非ゼロ係数化されたデータから、マクロブロック内の全ての周波数サンプルを計算し、ジグザグスキャン部116に送る。次に、ジグザグスキャン部116で、1次元のデータをジグザグスキャン順に2次元の行列にして出力する。この後、逆量子化部117で、所定の量子化スケールで乗算し、周波数サンプルを逆量子化する。次に、逆離散コサイン変換部118で、周波数サンプルを整数コサイン変換し、残差成分に変換する。
 次に、イントラ予測ならば、イントラ予測部109で予測モードに従って、イントラ予測画像を生成し、インター予測ならば、探索部107で動きベクトルに応じた位置の参照画像を、外部メモリ105内の参照フレーム領域(図1には、図示せず)からバス121を介して読み出し、インター予測画像を生成する。次に、イントラ予測画像もしくは、インター予測画像を残差計算部119で残差成分を用いて加算し、予測画像を生成する。この後、デブロッキングフィルタ120によりブロック歪みを除去して復号画像を生成し、外部メモリ105に配置した復号画バッファ(図1には、図示せず)にバス121を介して格納する。また、伸長処理においての復号画像は、伸長処理する際の参照画像としても用いる。
 〔画像処理部、可変長符号化復号処理部の並列数〕
 上記のように、本実施形態の画像圧縮伸長装置は、複数の画像処理部と、可変長符号化復号処理部を有しており、それらが独立して並列に動作することを前提としている。そのため、次に、図2を用いて画像処理部101、102、103、104と可変長符号化復号処理部124、125の並列数について説明する。図2は、画像処理部101、102、103、104と可変長符号化復号処理部124、125の並列数を決めるモードについて説明する図である。
 画像処理部は、解像度×フレームレートで算出されるピクセルレートに依存して、ほぼその処理時間が規定される。ここで、解像度は、ビットマップ画像における画素の密度を示す数値であり、フレームレートは、動画において、単位時間あたりに処理させるフレーム数(静止画像数、コマ数)である。図1に示した1系統分の画像処理部101が、解像度が1920×1088でフレームレートが30fpsを処理できる性能であると仮定すると、2系統動作では、解像度が1920×1088でフレームレート60fps、4系統動作では、解像度が4096×2160で、フレームレート30fpsの処理ができることになる。4系統動作では、1系統動作の4倍であるため、解像度が1920×1088のときは、フレームレート120fpsでもよい。本実施形態は、画像処理部は、解像度×フレームレートで算出されるピクセルレートに基づいて、並列数を決定し、その並列数に応じた並列度によって、画像処理部101、102、103、104を並列動作させる。
 可変長符号化復号処理部の処理は、ビットストリームのビットレートに依存してその処理時間が変わる。ここで、ビットレートとは、単位時間あたりに何ビットのデータが処理あるいは送受信されるかを表す数値である。可変長符号化復号処理部124は、50Mbpsの処理性能と仮定し、可変長符号化復号処理部124に転送されるビットレートにより並列数を定義するものとする。そして、可変長符号化復号処理部124、125は、ビットレートにより定義される並列数に応じた並列度によって、可変長符号化復号処理部124、125を並列動作させる。これにより、使用用途に応じて容易な電力制御を行うことが可能となる。
 したがって、図2のように、解像度:1920×1088、フレームレート:30fps、ビットレート:50Mbs未満のときには、画像処理部の並列数=1、可変長符号化復号処理部の並列数=1(モードNo.1)であり、解像度:1920×1088、フレームレート:60fps、ビットレート:50Mbs~100Mbsのときには、画像処理部の並列数=2、可変長符号化復号処理部の並列数=2(モードNo.3)であり、解像度:4096×2160、フレームレート:30fps、ビットレート:50Mbs~100Mbsのときには、画像処理部の並列数=4、可変長符号化復号処理部の並列数=2(モードNo.5)のように計算することができる。
 画像処理部コントローラ122は、解像度・フレームレートのパラメータ入力部132が、図2に示すように、予め解像度とフレームレートが設定されると、それに対する画像処理部の並列数を確定するテーブルを有する。例えば、モードNo.2では、画像処理部を並列数2の並列度で動作させ、モードNo.5では、画像処理部を並列数4の並列度で動作させることになる。
 さらに、可変長符号化復号処理部コントローラ130は、ビットレートのパラメータ入力部133が、図2に示すように、予めビットレートが設定されると、それに対する可変長符号化復号処理部の並列数を確定するテーブルを有する。例えば、モードNo.2では、可変長符号化復号処理部の並列数1で動作させ、モードNo.5では、可変長符号化復号処理部の並列数2の並列度で動作させる。
 このように、ビットレートを設定されることにより、必要可変長符号化復号処理部を動作するよう可変長符号化復号処理部へのデータ入力を制御すると、不必要な回路が動作しなくなる。したがって、画像処理部コントローラ122、可変長符号化復号処理コントローラ130によって、ユーザーの求める動作モードに応じて不必要なデータパスがクロックごとに変化することを防ぎ、画像圧縮伸長装置の動作時の消費電力を削減することができる。
 また、解像度・フレームレートと、ビットレートの入力については、両方可変で入力してもよいし、解像度・フレームレートを可変にして、パラメータ入力し、ビットレートを固定にしてもよいし、その逆に、解像度・フレームレートを固定にして、ビットレートを、パラメータ入力してもよい。
 上記の例では、解像度、フレームレートに応じて画像処理部の並列数を決定し、ビットレートに応じて、可変長符号化復号処理部の並列数を決定していたが、各々の並列数を直接、外部ホストCPUなどからレジスタ設定で設定されるようにしても、同様の低電力効果を得ることができる。
 〔モードNo.1(画像処理部の並列数=1、可変長符号化復号処理部の並列数=1)のときの動作〕
 以下、図1の画像圧縮伸長装置100が、図2のモードNo.1で示した、画像処理部並列数1、可変長符号化復号処理部並列数1で動作する画像圧縮処理、画像伸長処理について説明する。先ず、図3を用いて画像処理部の並列数が1のときの画像(1フレーム)とマクロブロックの関係について説明する。図3は、画像処理部の並列数が1のときの画像(1フレーム)とマクロブロックの関係について説明する図である。
 画像処理部101は、図3に示したように、入力画像に対して、16×16画素のマクロブロックと呼ばれる単位ごとに、左上のマクロブロックMB0から順次右側水平方向(MB0、MB1、MB2、…)に原画像を読み込み、マクロブロックの圧縮処理を施す。画像処理部100は、MB0から水平方向1ライン分のマクロブロックライン(MB119)が終わると、下側16画素垂直方向に移動し、左端(MB120)から順次右へ水平方向にというように、1フレーム分終了するまで処理を繰り返す。
 原画像は、順次(B0、B1、I2、B3、B4,P5、…)のように、画像入力部(図示せず)から、外部メモリ105の原画バッファ(図5に後出)にリアルタイムで入力されるものとする。原画像の種類として、図に示されているのは、「I」は、Iピクチャ(フレーム内符号化画像)、「P」は、Pピクチャ(フレーム間順方向予測符号化画像)、「B」は、Bピクチャ(双方向予測符号化画像)であり、数字は原画像の0フレーム目から数えたときの入力フレーム順序を表わすものと約束する。なお、上記の説明は、該マクロブロック処理の一連の流れを説明したものであり、隣接マクロブロック情報などのサブ情報は含めていない。
 次に、図4を用いて、画像処理部101のマクロブロックのパイプライン処理の様子について説明する。 
 図4は、画像処理部101が、処理ステージごとに、時間単位でマクロブロックを処理する様子を示す図である。図4において、原画像読み出しステージは、原画バッファ部106、イントラ予測モード判定ステージは、イントラ予測モード判定部108、イントラインター判定ステージは、イントラ予測部109、及び、探索部107、予測画作成ステージは、残差計算部110、周波数変換ステージは、離散コサイン変換部111、量子化112、逆量子化117、及び、逆離散コサイン変換部118、ランレングスステージは、ジグザグスキャン部113及び、ランレングス符号化部114、復号画作成ステージは、残差計算部119、デブロッキングフィルタステージは、デブロッキングフィルタ120が、各々動作するステージである。
 時間0(時間1、時間2、…)は、MBごとに必要とされる処理時間を示しており、200MHzでクロック動作する場合、約100サイクルの期間を各々示し、時間0(時間1、時間2、…)内に各ステージが終了することとする。
 マクロブロックは、図3に示すように、画像の左上から順次(MB0、MB1、MB2、…)原画像読み出しを行う。その後、イントラ予測モード判定、イントラインター判定というように処理ステージをパイプライン動作する。例えば、時間3では、原画像読み出しステージはMB3、イントラ予測モード判定ステージはMB2、イントラインター判定ステージはMB1、予測画作成ステージはMB0のマクロブロックを処理する。
 画像処理部101は、図3に示すように、1フレーム分の処理が終了するまでマクロブロック処理を繰り返す。
 画像処理部コントローラ122は、1フレーム完了後、可変長符号化復号処理コントローラ130に通知する。可変長符号化復号処理部コントローラ130は、画像処理部コントローラ122からの通知を受けて可変長符号化復号処理部124を起動する。可変長符号化復号処理部124は、画像処理部101が格納した中間データを外部メモリ105部からバス121を介して読み出し、可変長符号化部126で圧縮したビットストリームを生成して、符号バッファ部127が、バス121を介して、外部メモリ105に配置したストリームバッファにMSBから順次ビットを詰めて格納していく。このように、圧縮処理では、終了するまで1フレーム毎に処理を施し、順次ストリームバッファに、圧縮したビットストリームを蓄積していく。
 次に、図5を用いて、画像圧縮伸長装置100における圧縮動作時の画像処理部1系統、可変長符号化復号処理部1系統動作時の処理について説明する。図5は、圧縮動作時の画像処理部1系統、可変長符号化復号処理部1系統動作時に、外部メモリからデータが画像処理部と可変長符号化復号処理部に転送されるときの様子を示す図である。
 図5において、画像処理部101は、原画バッファ300より圧縮順(I2、B0、B1、…)に画像を入力し、中間データを中間バッファ310に順次格納する。可変長符号化処理部124は、中間バッファ310から中間データを読み出して圧縮し、生成したビットストリームをストリームバッファ320に順次格納する。
 次に、図6を用いて画像圧縮伸長装置100における伸長動作時の画像処理部1系統、可変長符号化復号処理部1系統動作時の処理について説明する。図6は、伸長動作時の画像処理部1系統、可変長符号化復号処理部1系統動作時に、外部メモリからデータが画像処理部と可変長符号化復号処理部に転送されるときの様子を示す図である。
 可変長符号化処理部124は、ストリームバッファ330よりビットストリームを取得して、中間データを中間バッファ310に順次格納する。画像処理部101は、中間バッファ310から中間データを読み出し伸長処理をおこない、生成した復号画を復号画バッファ340に順次格納する。
 このとき、画像処理部101の伸長処理は、圧縮処理のとき同様に、図3に示された16×16画素のマクロブロック単位ごとに、左上のマクロブロックMB0から1フレーム分の処理が終了するまでマクロブロック処理を繰り返す。
 〔モードNo.5(画像処理部の並列数=4、可変長符号化復号処理部の並列数=2)のときの動作〕
 以下、図1の画像圧縮伸長装置100が、図2のモードNo.5で示した、画像処理部並列数4、可変長符号化復号処理部並列数2で動作する圧縮処理、画像伸長処理について説明する。先ず、図7を用いて、画像処理部の並列数が4のときの画像(1フレーム)とマクロブロックの関係について説明する。図7は、画像処理部の並列数が4のときの画像(1フレーム)とマクロブロックの関係について説明する図である。
 画像処理部が複数動作する並列処理では、マクロブロックの水平方向1ラインのマクロブロックラインを4分割する。画像処理部1は、MB0~MB8703、画像処理部2は、MB8704~17407、画像処理部3はMB17408~26111、画像処理部4は、MB26112~34559の領域を各々処理する。これにより、1系統動作に比べ4系統動作では、4倍の演算が可能となり高解像度、高フレームレートにおいても、低解像度と同等な時間で処理ができる
 次に、図8を用いて、画像処理部101、102、103、104の4系統動作時のマクロブロックのパイプライン処理の様子について説明する。図8は、画像処理部101、102、103、104が、処理ステージごとに、時間単位でマクロブロックを処理する様子を示す図である。
 4系統動作で並列動作する場合には、図8に示すように、分割した各々の異なるマクロブロックごとに、1系統と同様にパイプライン処理をする。マクロブロックは、画像の左上から、画像処理部101は、MB0、画像処理部102は、MB8704、画像処理部103は、MB17408、画像処理部104は、MB26112から、順次原画像読み出しを行う。その後、イントラ予測モード判定、イントラインター判定というように処理ステージごとに、パイプライン動作する。例えば、時間3では、画像処理部101、102、103、104それぞれに対して、原画像読み出しステージは、MB3、MB8707、MB17411、MB26115、イントラ予測モード判定ステージはMB2、MB8706、MB17410、MB26114、イントラインター判定ステージはMB1、MB8705、MB17409、MB26113、予測画作成ステージはMB0、MB8704、MB17408、MB26112のマクロブロックを処理する。
 次に、図9を用いて、画像圧縮伸長装置100における圧縮動作時の画像処理部4系統、可変長符号化復号処理部2系統動作時の処理について説明する。図9は、圧縮動作時の画像処理部4系統、可変長符号化復号処理部2系統動作時に、外部メモリからデータが画像処理部と可変長符号化復号処理部に転送されるときの様子を示す図である。
 画像処理部101、102、103、104は、画像バッファ300より圧縮順(I2、B0、B1、…)に画像を入力し、中間データを4分割した中間バッファ310に、順次格納する。「I2」の原画像702について、画像処理部101は、中間バッファ310の710、画像処理部102は、中間バッファ310の711、画像処理部103は、中間バッファ310の712、画像処理部104は、中間バッファ310の713に、それぞれ中間データを格納する。「B0」の原画像100について、画像処理部101は、中間バッファ310の714、画像処理部102は、中間バッファ310の715、画像処理部103は、中間バッファ310の716、画像処理部104は、中間バッファ310の717に、それぞれ中間データを格納する。以下、「B1(P5、B3、B4…)」のように、4分割した中間バッファ310に順次格納していく。
 可変長符号化処理部124、125は、中間バッファ310から圧縮順に中間データを読み出し、可変長符号化復号処理部124は、圧縮したビットストリームを中間バッファ320に、可変長符号化復号処理部125は、中間バッファ321にそれぞれフレーム単位に順次格納する。例えば、図9に示すように、可変長符号化処理部124は、原画像702、703を、可変長符号化処理部125は、原画像700、701、704、705を、それぞれ処理すると、中間バッファ320に、原画像702のビットストリーム722、原画像703のビットストリーム723を格納し、中間バッファ321に、原画像700のビットストリーム720、原画像701のビットストリーム721、原画像704のビットストリーム724、原画像705のビットストリーム725を格納する。
 中間バッファ320、321は、上記したように、フレーム単位で入り混じることになる。これを整列させることは、後に説明するストリーム結合解析モジュール129において、圧縮順に中間バッファ320、321から読み出して結合をおこない、ビットストリームをストリームバッファ330に格納することにより解決することができる。
 次に、図10を用いて、画像圧縮伸長装置100における伸長動作時の画像処理部4系統、可変長符号化復号処理部2系統動作時の処理について説明する。図10は、伸長動作時の画像処理部4系統、可変長符号化復号処理部2系統動作時に、外部メモリからデータが画像処理部と可変長符号化復号処理部に転送されるときの様子を示す図である。
 可変長符号化復号処理部124、125の並列動作では、ストリーム結合解析モジュール129により、ストリームバッファ330にある圧縮データを1フレーム単位に切り出すための解析を行う。解析結果から可変長符号化処理部124、125は、フレーム単位でストリームバッファ330から読み出して、中間データを、可変長符号化復号処理部124は、中間バッファ310に、可変長符号化復号処理部125は、中間バッファ311に、それぞれ順次格納する。
 画像処理部101、102、103、104はフレーム順に中間バッファ310、311を選択して中間データを読み出す。生成した復号画は、表示順(B0、B1、I2、…)に復号画バッファ340に格納する。
 画像処理部と可変長符号化復号部は、バッファの使用量を通知することにより、どこまでデータが格納されているかがわかり、リングバッファとして用いることができる。また、このようなバッファ制御を行うことにより、異なる処理単位を有する画像処理部と可変長符号化復号部間でデータのバッファリングを可能にし、リアルタイムの圧縮処理又は伸長処理を実現させることが可能となる。
 〔画像圧縮処理と画像伸長処理の詳細(特に、画像処理部と可変長符号化復号処理部の処理の連携)について〕
 次に、図11及び図12を用いて、画像圧縮伸長装置の画像圧縮処理の詳細手順を説明する。図11は、画像圧縮伸長装置の画像圧縮処理の詳細手順を示すフローチャートである。図12は、画像圧縮処理において、各ピクチャと各部の処理のタイミングを示すタイミングチャートである。
 画像処理部コントローラ122は、開始指示待ちループ(S01)から圧縮の開始指示により、画像処理部101、…に対して初期設定を行う(S02)。この初期設定では、画像処理部101、…がどのモードで動作するか、すなわち、入力されたパラメータにより画像処理部101、…の並列数を決定する。そして、画像処理部コントローラ122は、可変長符号化復号開始指示を可変長符号化復号処理部コントローラ130に対しておこない(S03、A1)、可変長符号化復号処理部コントローラ130からの初期設定完了通知がされるのを待つ(S04)。
 可変長符号化復号処理部コントローラ130は、開始指示待ちループ(S11)から、初期設定に移行し(S12)、完了すると画像処理部コントローラ122に初期設定完了通知を行う(S13、A2)。この初期設定では、可変長符号化復号処理部124、…がどのモードで動作するか、すなわち、入力されたパラメータにより可変長符号化復号処理部124、…の並列数を決定する。
 画像処理部101、…は、終了指示があるまで1フレーム単位の圧縮処理を繰り返し(S05、S07)、処理が完了する毎に可変長符号化処理部コントローラ130に、1フレーム完了通知をする(S06、A3)。可変長符号化復号処理部124は、画像処理部101、…からの完了通知を受け、1フレーム分の圧縮処理を開始し(S14)、終了通知があるまで繰り返す(S15)。
 可変長符号化処理部コントローラ130が、可変長符号化処理部が1系統動作処理中に、画像処理部コントローラ122から1フレーム完了通知を受ける場合がある。この場合、通知の保持をおこない、完了後に保持したフレームを処理すればよい。
 これに対して、可変長符号化処理部が2系統動作しているときには、図12に示した圧縮処理のタイミングチャートのように、1フレームが処理中であっても処理中でない可変長符号化復号処理部に処理させることにより、2フレームを同時に処理することが可能となる。図12に示したように、可変長符号化復号処理部1が「I2」を処理中であれば、可変長符号化復号処理部2が「B0」「B1」「P5」と処理をする。その後、後に説明するストリーム結合解析モジュール129が圧縮順に連結することにより、並列動作を遂行することが可能となる。
 また、可変長符号化復号処理部が2系統動作処理中に、画像処理部から1フレーム完了通知を受ける場合がある。この場合、1系統動作と同様に保持をおこない、完了後に保持したフレームを処理すればよい。2系統動作時は、各フレームのビット量により完了する順番が前後するが、本実施形態では、ストリームデータをフレーム順に連結する機能を設けることにより、図12に示したフレーム順(I2、B0、B1、P5、B3、B4、…)にストリームを生成することができる。
 次に、図13及び図14用いて、画像圧縮伸長装置の画像伸長処理の詳細手順を説明する。図13は、画像圧縮伸長装置の画像伸長処理の詳細手順を示すフローチャートである。図14は、画像伸長処理において、各ピクチャと各部の処理のタイミングを示すタイミングチャートである。
 画像処理部コントローラ122は、開始指示待ちループ(S21)から伸長の開始指示により、画像処理部101、…に対して初期設定を行う(S22)。この初期設定では、画像処理部101、…がどのモードで動作するか、すなわち、入力されたパラメータにより画像処理部101、…の並列数を決定する。そして、画像処理部コントローラ122は、可変長符号化復号開始指示を可変長符号化復号処理部コントローラ130に対しておこない(S23、A11)、可変長符号化復号処理部コントローラ130からの初期設定完了通知がされるのを待つ(S24)。
 可変長符号化復号処理部コントローラ130は、開始指示待ちループ(S31)から、初期設定に移行し(S32)、完了すると画像処理部コントローラ122に初期設定完了通知を行う(S33、A12)。この初期設定では、可変長符号化復号処理部124、…がどのモードで動作するか、すなわち、入力されたパラメータにより可変長符号化復号処理部124、…の並列数を決定する。
 可変長符号化復号処理部124、…は、終了通知があるまで1フレーム単位の伸長処理を繰り返し(S34、S36)、処理が完了する毎に画像処理部へ1フレーム完了通知を行う(S35、A13)。画像処理部101、…は、可変長符号化復号処理部からの完了通知を受け1フレーム分の伸長処理を開始し、終了指示があるまで繰り返す(S25、S26、S27)。
 2系統動作では、可変長符号化復号処理部コントローラが、1フレーム単位で可変長符号化復号処理を割り振らなければならない。これは、図14の伸長処理のタイミングチャートのように、ストリームデータの解析をおこない、フレームの先頭を検知することで2系統動作であっても、フレーム単位処理が可能となる。可変長符号化復号処理部1が「I2」を処理中であれば、可変長符号化復号処理部2が「B0」「B1」「P5」と処理をするようにする。
 また、伸長するビット量により、各フレームの完了する順番が前後することがある。可変長符号化復号処理部コントローラ130が、フレーム順に各系統に対して処理を割り振って管理しているため、このようなときには、可変長符号化復号処理部コントローラ130が、フレーム順通り画像処理部に通知を行うことにより、画像処理部のフレーム順(I2、B0、B1、P5、B3、B4、…)が前後することなく伸長処理することができる。
 〔ストリーム結合解析ブロック部129について〕
 次に、ストリーム結合解析ブロック部129の詳細について説明する。ストリーム結合解析ブロック部129は、例えば、可変長符号化復号処理部124、125が並列動作するときに機能する部分であり、圧縮処理では、各々可変長符号化復号処理部124、125が生成した1フレーム単位のストリームデータの結合を行う。
 ストリーム結合解析ブロック部129は、ハードウェアとして実装されるほか、各フレームの切れ目を予めホストCPU(図示せず)に通知し、ホスト側で、各フレームのストリームを順次読み出し、ソフトウェア上で結合する処理としてもよい。また、伸長処理時では、伸長を行う圧縮されたストリームデータを可変長符号化復号処理部124、125の処理単位である1フレーム分で切り出す解析を行う。
 例えば、各フレームの先頭は、AUデリミタのヘッダが付加されており、各ピクチャの先頭には固有のAUデリミタコード(0x09)を付加しておくと、解析時には、この固有IDを検索することにより、フレームの切れ目を判断することが可能となる。また、本解析処理は、ホストCPU(図示せず)によって、予め、フレーム区切れを検知するようにし、本回路に各フレーム切れ目情報を通知してもらい、可変長符号化復号処理部124,125が、各々、該フレーム切れ目情報に基づいて、外部ストリームバッファから読み出すようにしてもよい。
 〔クロック制御部123、131について〕
 次に、図15A及び図15Bを用いて、クロック制御部123、131を説明する。図15Aは、クロック制御により、画像処理部と可変長符号化復号処理部の並列処理を制御する例を示す図である。図15Bは、電源制御により、画像処理部と可変長符号化復号処理部の並列処理を制御する例を示す図である。
 外部クロックは、図15Aに示されるように、画像圧縮伸長装置のクロック制御部で画像処理部101、102、103、104と、可変長符号化復号処理部124、125でゲーティング(gating:ゲートの開閉)し、各処理部に分配する。クロック制御部123、131は、画像処理部コントローラ122、可変長符号化復号処理コントローラ130に各々接続されたCG(クロックゲーティングセル)を有しており、画像処理部コントローラ122、可変長符号化復号処理コントローラ130に対して、個別にクロックゲーティング制御ができる構成である。これにより、画像処理部、可変長符号化復号処理部を各々個別に制御ができる。ここで、CGの制御信号が1のときに、クロックは供給され、0のとき、クロックは切れるものとする。
 クロックゲーティング以降の各処理部へ分配されているクロックツリー(クロックに接続される構成要素)は、ファンアウト(接続可能な回路要素の上限数)が大きい場合には、クロックが供給されるだけで大きな電力が消費される。本実施形態では、クロック制御部123、131から未使用ブロックへのクロックを画像処理部コントローラ122、可変長符号化復号処理コントローラ130の動作モード選択に応じて、各々制御することにより、大きな消費電力削減効果を生み出すことができる。
 さらに、上記の図15Aのクロック制御部の構成同様に、図15Bに示すように、回路内各ゲートのうち動作しなくなった画像処理部及び、可変長符号化復号処理部の電力供給を止める電力制御部(トランジスタ)を設け、電力制御部を動作の有無に応じて切り替えるようにする。電力の供給がない処理部から動作中へのブロックの入力部については、論理ゲートを挿入し、確定値が入力されるようにすればよい。これにより、動作しなくなった画像処理部及び、可変長符号化復号処理部への不必要な電力が供給されなくなり、さらに消費電力を低減することができる。
 〔H.264に規定されている符号化方式との関係〕
 上記したように、画像処理部は、各パイプライン内の処理は、マクロブロック内の各画素数に依存した処理時間となるため、動作する際の解像度×フレームレートで算出されるピクセルレートに対応して、必要処理スピードを規定できる。一方、可変長符号化復号処理部の処理は、ピクセルレートよりもビットストリームのビットレートに依存してその処理時間が変わる。そのため、画像処理部は、解像度×フレームレート=ピクセルレートに基づいて、並列数を決定し、変長符号化復号処理部は、ビットレートに基づいて並列数を決定するというのが本発明の発想であった。
 ところで、H.264の規格においては、算術符号化と可変長符号化のいずれかを選択することができる。H.264で規定されるプロフィルには、算術符号化方式としては、CABAC(Context Adaptive Binary Arithmetic Coding)を用いることができ、可変長符号化方式としては、CAVLC(Context Adaptive Variable Length Coding)を用いることができる。
 本発明は、特に、算術演算を用いたCABACの圧縮技法を用いる場合に、顕著な効果が得られる。CABACは、2値化されたデータの各ビットの発生に応じて、次ビットの発生確率の予測モデルを変更する処理を行う符号化方式である。そのため、1スライス内の連続したデータ列においては、逐次処理を行うため、その処理時間は、処理するビット数に応じて大きく変化する。したがって、ピクセルレートが高くても、ビットレートが低い場合には、可変長符号化復号処理部の並列数は低くて済む場合がある。このため、画像処理部は、解像度とフレームレートに応じて、並列数を変更し、可変長符号化復号化処理部は、ストリームのビットレートに応じて並列数を変更するようにすることにより、その最終動作仕様に応じて、必要最小限のブロックのみを駆動し、従来に比べより精緻に低消費電力化を図ることができる。
 一方、CAVLCは、可変長符号化テーブルに基づいた可変長符号化方式である。こちらの場合は、各符号化コードを処理する場合は、予め設けられた複数のテーブルとコード一致を比較するため、1サイクルで数ビット~十数ビットの処理を行うことが可能である。このため、一般的には、CABACに比べ、CAVLCの方が、同じシステムクロック、同回路規模でも処理できるビットレートが高くなる。したがって、これを利用して、CABACかCAVLCに従って、可変長符号化復号処理部の並列度を制御するようにしてもよい。例えば、処理するターゲットが100Mbps以上の場合、可変長符号化復号コントローラ123が、CABACでは、2並列化する選択する制御をした場合に、CAVLCの場合では、1並列処理する制御を行うことにより、CAVLCの場合の不要回路の動作を抑制し、消費電力制御をさらに精度高く行うことが可能である。これにより、本発明の好ましい実施形態に係る画像圧縮伸長装置により、消費電力に応じた最適な符号化方式を選択することが可能となる。
 〔H.264以外の符号化方式、その他の実施形態〕
 以上、本実施形態では、H.264による画像圧縮伸長装置に基づいて記載したが、MPEG1、2、4などDCTによる周波数変換処理、ランレングス符号化、可変長符号化処理に基づくハイブリッド符号化方式においては、同様の特性を持ち、本発明の特徴である周波数処理部と可変長符号化復号化ブロック間で独立に並列度を制御する方法が有効である。
 また、本実施形態では、画像圧縮及び伸長を共通の回路で行う画像圧縮伸長回路を用いて説明したが、画像圧縮のみを行う画像圧縮装置、あるいは画像伸長のみを行う画像伸長装置と別個の構成にしても同等の効果を有する。
 さらに、途中の各バッファを外部メモリに格納する説明をおこなったが、十分なSRAM(Static Random Access Memory)を回路内部に備えており、一部あるいは全てのバッファを圧縮伸長回路内に有する場合にもその消費電力やRAM使用量に関するメリットは変わらない。
 さらに、動画に限らず静止画においても、例えば、JPEG(Joint Photographic Experts Group)に代表される静止画に対して、さまざまな解像度、ビットレートを扱う画像圧縮伸長処理回路において、同等の効果を有する。
以上のように、本発明の好ましい実施形態によれば、システム要件に応じて最適な電力で画像圧縮伸長処理動作を実現することができ、低消費電力化が可能となる。
100…画像圧縮伸長装置
101…画像処理部1
102…画像処理部2
103…画像処理部3
104…画像処理部4
105…外部メモリ
106…原画バッファ部
107…インター探索部
108…イントラ予測モード判定部
109…イントラ予測部
110…残差計算部
111…離散コサイン変換部
112…量子化部
113…ジグザグスキャン部
114…ランレングス符号化部
115…ランレングス復号部
116…ジグザグスキャン部
117…逆量子化部
118…逆離散コサイン変換部
119…残差計算部
120…デブロッキングフィルタ
121…外部メモリ通信用バス部
122…画像処理部コントローラ
123…画像処理部クロック制御部
124…可変長符号化復号処理部1
125…可変長符号化復号処理部2
126…可変長符号化部
127…符号バッファ部
128…可変長復号部
129…ストリーム結合解析部
130…可変長符号化復号処理コントローラ
132…パラメータ入力部(解像度・フレームレート)
133…パラメータ入力部(ビットレート)

Claims (9)

  1.  原画像データを符号化に基づいて圧縮し、また、符号化されたデータを伸長する画像圧縮伸長処理を行う装置であって、
     イントラ予測又はインター予測による予測画像生成、差分画像生成、周波数変換、量子化・逆量子化を行う一つ以上の画像処理部と、可変長符号化復号処理を行う一つ以上の可変長符号化復号処理部と有し、
     画像の解像度又はフレームレートに基づいて、第一の並列数を決定し、前記一つ以上の画像処理部は、前記第一の並列数に応じた並列度により並列処理することを特徴とする画像圧縮伸長装置。
  2.  前記画像圧縮伸長装置が処理するビットストリームのビットレートに基づいて、第二の並列数を決定し、前記一つ以上の可変長符号化復号処理部は、前記第二の並列数に応じた並列度により並列処理することを特徴とする請求項1記載の画像圧縮伸長装置。
  3.  前記一つ以上の画像処理部は、前記第一の並列数を決定するために、前記画像の解像度、前記フレームレートの両方、あるいは前記画像の解像度、前記フレームレートの一方をパラメータとして入力されることを特徴とする請求項1記載の画像圧縮伸長装置。
  4.  前記第一の並列数又は前記第二の並列数に基づき、動作しなくなった前記画像処理部、前記可変長符号化復号処理部のクロックツリーへのクロック供給を止めることを特徴とする請求項2記載の画像圧縮伸長装置。
  5.  前記第一の並列数又は前記第二の並列数に基づき、動作しなくなった前記画像処理部、前記可変長符号化復号処理部の電源供給を止めることを特徴とする請求項1記載の画像圧縮伸長装置。
  6.  画像処理部を少なくても二つ以上有し,同一フレーム中の異なるマクロブロックラインを各々の画像処理部で並列処理することを特徴とする請求項1記載の画像圧縮伸長装置。
  7.  可変長符号化復号処理部を少なくても二つ以上有し,各々の可変長符号化復号処理部では異なるフレームを並列に動作させることを特徴とする請求項2記載の画像圧縮伸長装置。
  8.  前記第二の並列数を、扱う符号化方式に基づいて決定することを特徴とする請求項2記載の画像圧縮伸長装置。
  9.  前記符号化方式は、CAVLC及びCABACであることを特徴とする請求項2記載の画像圧縮伸長装置。
PCT/JP2015/053501 2015-02-09 2015-02-09 画像圧縮伸長装置 WO2016129031A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2016507303A JP6085065B2 (ja) 2015-02-09 2015-02-09 画像圧縮伸長装置
US14/913,723 US20160301945A1 (en) 2015-02-09 2015-02-09 Image compression/decompression device
CN201580038688.5A CN106576168A (zh) 2015-02-09 2015-02-09 图像压缩解压缩装置
EP15874402.9A EP3258691A4 (en) 2015-02-09 2015-02-09 Image compression/decompression device
PCT/JP2015/053501 WO2016129031A1 (ja) 2015-02-09 2015-02-09 画像圧縮伸長装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/053501 WO2016129031A1 (ja) 2015-02-09 2015-02-09 画像圧縮伸長装置

Publications (1)

Publication Number Publication Date
WO2016129031A1 true WO2016129031A1 (ja) 2016-08-18

Family

ID=56614479

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/053501 WO2016129031A1 (ja) 2015-02-09 2015-02-09 画像圧縮伸長装置

Country Status (5)

Country Link
US (1) US20160301945A1 (ja)
EP (1) EP3258691A4 (ja)
JP (1) JP6085065B2 (ja)
CN (1) CN106576168A (ja)
WO (1) WO2016129031A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018117308A (ja) * 2017-01-20 2018-07-26 キヤノン株式会社 再生装置及びその制御方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3381190B1 (en) * 2016-08-04 2021-06-02 SZ DJI Technology Co., Ltd. Parallel video encoding
CN109429070A (zh) * 2017-08-23 2019-03-05 杭州海康威视系统技术有限公司 一种移动终端视频编码方法、装置及移动终端
CN107483952A (zh) * 2017-08-29 2017-12-15 郑州云海信息技术有限公司 一种jpeg图像解压缩的方法、装置与系统
TW201939953A (zh) * 2018-03-16 2019-10-01 晨星半導體股份有限公司 影像壓縮系統及利用影像壓縮系統以壓縮影像畫面的方法
CN109788299A (zh) * 2019-03-12 2019-05-21 广东工业大学 一种移动设备间视频传输方法、系统、设备及计算机介质
US11776093B2 (en) * 2019-07-16 2023-10-03 University Of Florida Research Foundation, Incorporated Automatic sharpness adjustment for imaging modalities
CN111768460B (zh) * 2020-06-30 2023-08-01 北京百度网讯科技有限公司 一种解码方法、装置、设备以及存储介质
US20230140628A1 (en) * 2021-11-04 2023-05-04 Meta Platforms, Inc. Novel buffer format for a two-stage video encoding process

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008067026A (ja) * 2006-09-07 2008-03-21 Fujitsu Ltd Mpegデコーダ及びmpegエンコーダ
JP2008141531A (ja) 2006-12-01 2008-06-19 Canon Inc 画像符号化装置及び画像符号化方法
JP2010109572A (ja) * 2008-10-29 2010-05-13 Toshiba Corp 画像処理装置、及び方法
JP2011160077A (ja) * 2010-01-29 2011-08-18 Sony Corp 復号装置および方法
WO2012014471A1 (ja) * 2010-07-30 2012-02-02 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置および画像符号化方法
WO2012160879A1 (ja) * 2011-05-20 2012-11-29 ソニー株式会社 画像符号化装置と画像復号装置およびその方法
JP2014096755A (ja) * 2012-11-12 2014-05-22 Canon Inc 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1157641C (zh) * 1997-09-03 2004-07-14 松下电器产业株式会社 处理器
JP4699685B2 (ja) * 2003-08-21 2011-06-15 パナソニック株式会社 信号処理装置及びそれを用いた電子機器
JPWO2010125616A1 (ja) * 2009-04-27 2012-10-25 パナソニック株式会社 符号化ストリーム復号装置
US10244246B2 (en) * 2012-02-02 2019-03-26 Texas Instruments Incorporated Sub-pictures for pixel rate balancing on multi-core platforms
US9426498B2 (en) * 2012-07-10 2016-08-23 Broadcom Corporation Real-time encoding system of multiple spatially scaled video based on shared video coding information
US20140205012A1 (en) * 2013-01-21 2014-07-24 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding
US9596477B2 (en) * 2013-12-26 2017-03-14 Mediatek Inc. Methods of multiple-slice coding for frame buffer compression
CA2950171C (en) * 2014-05-28 2019-11-19 Arris Enterprises Llc Content aware scheduling in a hevc decoder operating on a multi-core processor platform
US9965021B2 (en) * 2014-06-23 2018-05-08 Mediatek, Inc. Method and system providing power management for multimedia processing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008067026A (ja) * 2006-09-07 2008-03-21 Fujitsu Ltd Mpegデコーダ及びmpegエンコーダ
JP2008141531A (ja) 2006-12-01 2008-06-19 Canon Inc 画像符号化装置及び画像符号化方法
JP2010109572A (ja) * 2008-10-29 2010-05-13 Toshiba Corp 画像処理装置、及び方法
JP2011160077A (ja) * 2010-01-29 2011-08-18 Sony Corp 復号装置および方法
WO2012014471A1 (ja) * 2010-07-30 2012-02-02 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置および画像符号化方法
WO2012160879A1 (ja) * 2011-05-20 2012-11-29 ソニー株式会社 画像符号化装置と画像復号装置およびその方法
JP2014096755A (ja) * 2012-11-12 2014-05-22 Canon Inc 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018117308A (ja) * 2017-01-20 2018-07-26 キヤノン株式会社 再生装置及びその制御方法
JP7020782B2 (ja) 2017-01-20 2022-02-16 キヤノン株式会社 再生装置及びその制御方法

Also Published As

Publication number Publication date
EP3258691A1 (en) 2017-12-20
US20160301945A1 (en) 2016-10-13
CN106576168A (zh) 2017-04-19
EP3258691A4 (en) 2018-10-31
JPWO2016129031A1 (ja) 2017-04-27
JP6085065B2 (ja) 2017-02-22

Similar Documents

Publication Publication Date Title
JP6085065B2 (ja) 画像圧縮伸長装置
US11647190B2 (en) Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and program
KR101156997B1 (ko) 부호화 장치 및 부호화 방법
US20060115002A1 (en) Pipelined deblocking filter
US9270988B2 (en) Method of determining binary codewords for transform coefficients
US20080240587A1 (en) Selective information handling for video processing
JP2006157925A (ja) パイプラインデブロッキングフィルタ
JPH10271516A (ja) 圧縮符号化装置、符号化方法、復号化装置および復号化方法
JP2007259323A (ja) 画像復号化装置
WO2016047375A1 (ja) 動画像符号化装置、動画像復号装置、および動画像符号化・復号化方法
JP2008289105A (ja) 画像処理装置およびそれを搭載した撮像装置
JP4880868B2 (ja) 性能向上のための動画像圧縮方法及び装置
JP7451131B2 (ja) 画像符号化装置、画像符号化方法、及びプログラム
WO2017104010A1 (ja) 動画像符号化装置および動画像符号化方法
JP2010268094A (ja) 画像復号化装置および画像復号化方法
WO2016143093A1 (ja) 動画像符号化装置及びそれに用いるIntra予測符号化方法、及び動画像復号化装置
JPH1127667A (ja) 画像符号化装置および画像復号装置
JP2001268571A (ja) 動画像再符号化装置
JP2016005116A (ja) 画像符号化装置

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2016507303

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14913723

Country of ref document: US

REEP Request for entry into the european phase

Ref document number: 2015874402

Country of ref document: EP

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

Ref document number: 15874402

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE