WO2012157541A1 - 画像処理装置および方法 - Google Patents
画像処理装置および方法 Download PDFInfo
- Publication number
- WO2012157541A1 WO2012157541A1 PCT/JP2012/062088 JP2012062088W WO2012157541A1 WO 2012157541 A1 WO2012157541 A1 WO 2012157541A1 JP 2012062088 W JP2012062088 W JP 2012062088W WO 2012157541 A1 WO2012157541 A1 WO 2012157541A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- bit width
- image
- horizontal
- intermediate data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods 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 a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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 bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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 characterised by memory arrangements
- H04N19/426—Methods 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 characterised by memory arrangements using memory downsizing methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/48—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
Definitions
- the present disclosure relates to an image processing apparatus and method, and more particularly, to an image processing apparatus and method, and a program that can reduce the amount of memory used for orthogonal transform processing and inverse orthogonal transform processing.
- MPEG compressed by orthogonal transform such as discrete cosine transform and motion compensation is used for the purpose of efficient transmission and storage of information.
- a device that conforms to a system such as Moving (Pictures Experts Group) is becoming widespread in both information distribution at broadcast stations and information reception in general households.
- MPEG2 International Organization for Standardization
- IEC International Electrotechnical Commission
- MPEG2 was mainly intended for high-quality encoding suitable for broadcasting, but it did not support encoding methods with a lower code amount (bit rate) than MPEG1, that is, a higher compression rate. With the widespread use of mobile terminals, the need for such an encoding system is expected to increase in the future, and the MPEG4 encoding system has been standardized accordingly. Regarding the image coding system, the standard was approved as an international standard in December 1998 as ISO / IEC 14496-2.
- H.26L International Telecommunication Union Telecommunication Standardization Sector
- Q6 / 16 VCEG Video Coding Expert Group
- H.26L is known to achieve higher encoding efficiency than the conventional encoding schemes such as MPEG2 and MPEG4, although a large amount of calculation is required for encoding and decoding.
- Joint ⁇ ⁇ ⁇ ⁇ Model of Enhanced-Compression Video Coding has been implemented based on this H.26L and incorporating functions not supported by H.26L to achieve higher coding efficiency. It has been broken.
- AVC Advanced Video Coding
- the macro block size of 16 pixels x 16 pixels is optimal for large image frames such as UHD (Ultra High Definition: 4000 pixels x 2000 pixels), which are the targets of the next generation coding system. There was no fear.
- HEVC High Efficiency Video Video Coding
- JCTVC Joint Collaboration Collaboration Team Video Coding
- a coding unit (Coding Unit) is defined as a processing unit similar to a macroblock in AVC.
- the CU is not fixed to a size of 16 ⁇ 16 pixels like the AVC macroblock, and is specified in the image compression information in each sequence.
- orthogonal transformation and inverse orthogonal transformation are performed on image data. Both the orthogonal transformation and the inverse orthogonal transformation are performed in the horizontal direction and the vertical direction (two-dimensional). For example, in the case of orthogonal transformation, first, one-dimensional orthogonal transformation is performed in the horizontal direction, and the result (referred to as intermediate data) is transposed using a transposition register, and then one-dimensional orthogonal transformation is performed in the vertical direction. Done. The same applies to the inverse orthogonal transform. That is, these processes require a storage area (transposition register) in order to temporarily hold intermediate data.
- the size of the processing unit of orthogonal transformation and inverse orthogonal transformation (Iverse Transform) such as AVC is 8 ⁇ 8 pixels at the maximum, whereas the size of the processing unit of HEVC orthogonal transformation and inverse orthogonal transformation is 16 ⁇ 16, for example. It is expanded to pixels, 32x32 pixels, or 64x64 pixels.
- the capacity of the transposition register (storage area) for holding intermediate data may be greatly increased.
- the bit width of intermediate data is uniformly defined as 16 bits (see, for example, Non-Patent Document 2 and Comparative Document 3).
- DCT discrete cosine transformation
- DST discrete sine transformation
- Karhunen-Labe transformation a method of performing orthogonal transform / inverse orthogonal transform of different methods in the horizontal direction and the vertical direction, such as DCT and DST, has been considered (for example, see Non-Patent Document 4).
- JCTVC-VC Joint Collaborative Team on Video Coding
- the present disclosure has been made in view of such a situation, and an object thereof is to suppress an increase in memory usage due to an increase in processing units of orthogonal transform processing and inverse orthogonal transform processing.
- One aspect of the present disclosure includes a horizontal one-dimensional inverse transform unit that performs inverse orthogonal transform in a horizontal direction on an orthogonal transform coefficient obtained by orthogonally transforming image data in a horizontal direction and a vertical direction, and the horizontal one-dimensional inverse transform unit
- the coefficient obtained by performing the inverse orthogonal transform in the horizontal direction by the clipping process so as to reduce the bit width, and the clipping process is performed by the bit width processing unit.
- a storage unit that stores the coefficient with a reduced bit width as intermediate data
- a vertical one-dimensional unit that reads the intermediate data stored in the storage unit line by line in the vertical direction and performs inverse orthogonal transformation in the vertical direction.
- An image processing apparatus including an inverse conversion unit.
- the bit width processing unit can clip the coefficient into a bit width corresponding to the frequency band of the coefficient.
- a subtracting unit that subtracts coefficients of the same frequency band obtained by performing the inverse orthogonal transform in the horizontal direction by the horizontal one-dimensional inverse transform unit, and a difference value obtained by subtraction by the subtraction unit;
- An addition unit that adds one coefficient used for the subtraction, and the bit width processing unit reduces the bit width of the difference value with respect to the difference value obtained by the subtraction.
- the storage unit stores, as the intermediate data, the one coefficient used for the subtraction and the difference value whose bit width has been reduced by the bit width processing unit.
- One coefficient used for the subtraction read from the storage unit and the difference value with a reduced bit width are added to restore the other coefficient used for the subtraction, and the vertical one-dimensional inverse
- the conversion part is Coefficient of one used in the subtraction, and the restored by addition by the adding unit, to the other factors used in the subtraction, it is possible to perform the inverse orthogonal transform in the vertical direction.
- the adding unit reads the intermediate data stored in the storage unit one line at a time in the vertical direction, and the storage unit uses one coefficient used for the subtraction as a line read last by the adding unit. Can be remembered.
- the bit width processing unit can clip the difference value to a predetermined bit width.
- the bit width processing unit can clip the difference value into a bit width corresponding to the frequency band of the difference value.
- the horizontal one-dimensional inverse transform unit further includes an average value calculation unit that calculates an average value of coefficients between the same frequency bands obtained by performing the inverse orthogonal transform in the horizontal direction
- the subtraction unit includes: Calculating a difference value between a coefficient obtained by performing the inverse orthogonal transform in the horizontal direction by the horizontal one-dimensional inverse transform unit and the average value calculated by the average value calculation unit, and the bit width processing unit Performs a clipping process on the difference value calculated by the subtraction unit so as to reduce a bit width of the difference value, and the storage unit has a bit width determined by the average value and the bit width processing unit.
- the reduced difference value is stored as the intermediate data, and the addition unit adds the difference value and the average value read from the storage unit to restore the coefficient used for the subtraction.
- the bit width processing unit can clip the difference value to a predetermined bit width.
- the bit width processing unit can clip the difference value into a bit width corresponding to the frequency band of the difference value.
- the horizontal one-dimensional inverse transform unit and the vertical one-dimensional inverse transform unit can perform inverse orthogonal transform by different transform methods.
- One aspect of the present disclosure is also an image processing method of an image processing apparatus, in which a horizontal one-dimensional inverse transform unit performs horizontal processing on orthogonal transform coefficients obtained by orthogonally transforming image data in the horizontal and vertical directions.
- the bit width processing unit performs clip processing so as to reduce the bit width for the coefficient obtained by performing the horizontal inverse orthogonal transform, and the storage unit performs the clip processing.
- the coefficients that have been processed to reduce the bit width are stored as intermediate data, and the vertical one-dimensional inverse transform unit reads the stored intermediate data line by line in the vertical direction, and is inversely orthogonal in the vertical direction. This is an image processing method for performing conversion.
- Another aspect of the present disclosure relates to a horizontal one-dimensional conversion unit that performs horizontal orthogonal transformation on image data, and coefficients obtained by performing the horizontal orthogonal transformation by the horizontal one-dimensional conversion unit.
- a bit width processing unit that performs a clipping process so as to reduce the bit width
- a memory that stores the coefficient that has been subjected to the clipping process by the bit width processing unit to reduce the bit width as intermediate data
- a vertical one-dimensional conversion unit that reads the intermediate data stored in the storage unit line by line in the vertical direction and performs orthogonal transformation in the vertical direction.
- the bit width processing unit can clip the coefficient into a bit width corresponding to the frequency band of the coefficient.
- the storage unit stores one coefficient used for the subtraction and the difference value whose bit width is reduced by the bit width processing unit as the intermediate data
- the addition unit stores the storage
- the one coefficient used for the subtraction read from the unit and the difference value with a reduced bit width are added to restore the other coefficient used for the subtraction, and the vertical one-dimensional conversion unit is ,
- Subtraction Used was one of the factors, and the restored by addition by the adding unit, to the other factors used in the subtraction, it is possible to perform orthogonal transformation in the vertical direction.
- the bit width processing unit can clip the difference value to a predetermined bit width.
- the bit width processing unit can clip the difference value into a bit width corresponding to the frequency band of the difference value.
- the horizontal one-dimensional conversion unit and the vertical one-dimensional conversion unit can perform orthogonal conversion by different conversion methods.
- Another aspect of the present disclosure is also an image processing method of an image processing device, in which a horizontal one-dimensional conversion unit performs horizontal orthogonal transformation on image data, and a bit width processing unit A clip process is performed to reduce the bit width for the coefficient obtained by performing the orthogonal transformation of the direction, and the storage unit performs the clip process to reduce the bit width.
- This is an image processing method that stores as intermediate data, and a vertical one-dimensional conversion unit reads the stored intermediate data line by line in the vertical direction and performs orthogonal transformation in the vertical direction.
- the orthogonal transform coefficient obtained by orthogonally transforming the image data in the horizontal direction and the vertical direction is obtained by performing the inverse orthogonal transform in the horizontal direction and performing the inverse orthogonal transform in the horizontal direction.
- Clipping processing is performed on the obtained coefficient so as to reduce the bit width, the clip processing is performed, the coefficient whose bit width is reduced is stored as intermediate data, and the stored intermediate data is vertically aligned.
- One line is read out, and inverse orthogonal transformation in the vertical direction is performed.
- clip processing is performed so as to reduce the bit width of a coefficient obtained by performing horizontal orthogonal transform on image data and performing horizontal orthogonal transform. Is performed, clip processing is performed, and the coefficient whose bit width is reduced is stored as intermediate data. The stored intermediate data is read out line by line in the vertical direction, and orthogonal transformation in the vertical direction is performed. .
- an image can be processed.
- it is possible to suppress an increase in memory usage of the orthogonal transform process and the inverse orthogonal transform process.
- FIG. 26 is a block diagram illustrating a main configuration example of a personal computer. It is a block diagram which shows an example of a schematic structure of a television apparatus.
- FIG. 1 is a block diagram illustrating a main configuration example of an image decoding apparatus which is an embodiment of an image processing apparatus.
- the image decoding apparatus 100 shown in FIG. Image data is encoded using prediction processing in the image encoding device, such as H.264 and MPEG (Moving Picture Experts Group) 4 Part 10 (AVC (Advanced Video Coding)) and HEVC (High Efficiency Video Coding).
- H.264 and MPEG Motion Picture Experts Group 4 Part 10
- AVC Advanced Video Coding
- HEVC High Efficiency Video Coding
- the image decoding apparatus 100 includes an accumulation buffer 101, a lossless decoding unit 102, an inverse quantization unit 103, an inverse orthogonal transform unit 104, a calculation unit 105, a loop filter 106, a screen rearrangement buffer 107, and a D A / A converter 108 is included.
- the image decoding apparatus 100 includes a frame memory 109, a selection unit 110, an intra prediction unit 111, a motion prediction / compensation unit 112, and a selection unit 113.
- the accumulation buffer 101 accumulates the transmitted encoded data and supplies the encoded data to the lossless decoding unit 102 at a predetermined timing.
- the lossless decoding unit 102 decodes the information supplied from the accumulation buffer 101 and encoded by the lossless encoding unit of the image encoding device in a method corresponding to the encoding method of the lossless encoding unit.
- the lossless decoding unit 102 supplies the quantized coefficient data of the difference image obtained by decoding to the inverse quantization unit 103.
- the lossless decoding unit 102 determines whether the intra prediction mode or the inter prediction mode is selected as the optimal prediction mode, and uses the intra prediction unit 111 and the motion prediction / compensation unit for information regarding the optimal prediction mode. It supplies to the mode determined to have been selected among 112. For example, when the intra prediction mode is selected as the optimal prediction mode in the image encoding device, information regarding the intra prediction mode is supplied to the intra prediction unit 111. For example, when the inter prediction mode is selected as the optimal prediction mode in the image encoding device, information regarding the inter prediction mode is supplied to the motion prediction / compensation unit 112.
- the inverse quantization unit 103 is obtained by inversely quantizing the quantized coefficient data obtained by decoding by the lossless decoding unit 102 using a method corresponding to the quantization method of the quantization unit of the image encoding device.
- the coefficient data is supplied to the inverse orthogonal transform unit 104.
- the inverse orthogonal transform unit 104 performs inverse orthogonal transform on the coefficient data supplied from the inverse quantization unit 103 in a method corresponding to the orthogonal transform method of the orthogonal transform unit of the image encoding device.
- the inverse orthogonal transform unit 104 obtains decoded residual data corresponding to the residual data before being subjected to orthogonal transform in the image encoding device by the inverse orthogonal transform process.
- the inverse orthogonal transform unit 104 performs an inverse orthogonal transform process so as to suppress the capacity of a storage area used as a transposition register.
- the decoded residual data obtained by the inverse orthogonal transform is supplied to the calculation unit 105. Further, a prediction image is supplied to the calculation unit 105 from the intra prediction unit 111 or the motion prediction / compensation unit 112 via the selection unit 113.
- the calculation unit 105 adds the decoded residual data and the prediction image, and obtains decoded image data corresponding to the image data before the prediction image is subtracted by the calculation unit of the image encoding device.
- the calculation unit 105 supplies the decoded image data to the loop filter 106.
- the loop filter 106 appropriately performs a loop filter process including a deblock filter process and an adaptive loop filter process on the supplied decoded image, and supplies it to the screen rearrangement buffer 107.
- the loop filter 106 includes a deblocking filter, an adaptive loop filter, and the like, and appropriately performs a filtering process on the decoded image supplied from the calculation unit 105.
- the loop filter 106 removes block distortion of the decoded image by performing a deblocking filter process on the decoded image.
- the loop filter 106 performs image quality improvement by performing loop filter processing using a Wiener filter on the deblock filter processing result (decoded image from which block distortion has been removed). Do.
- the loop filter 106 may perform arbitrary filter processing on the decoded image. Further, the loop filter 106 may perform filter processing using the filter coefficient supplied from the image encoding device.
- the loop filter 106 supplies the filter processing result (the decoded image after the filter processing) to the screen rearrangement buffer 107 and the frame memory 109. Note that the decoded image output from the calculation unit 105 can be supplied to the screen rearrangement buffer 107 and the frame memory 109 without passing through the loop filter 106. That is, the filter process by the loop filter 106 can be omitted.
- the screen rearrangement buffer 107 rearranges images. That is, the order of frames rearranged for the encoding order by the screen rearrangement buffer of the image encoding apparatus is rearranged in the original display order.
- the D / A conversion unit 108 performs D / A conversion on the image supplied from the screen rearrangement buffer 107, and outputs and displays the image on a display (not shown).
- the frame memory 109 stores the supplied decoded image, and the stored decoded image is referred to as a reference image at a predetermined timing or based on an external request such as the intra prediction unit 111 or the motion prediction / compensation unit 112. To the selection unit 110.
- the selection unit 110 selects a supply destination of the reference image supplied from the frame memory 109. When decoding an intra-coded image, the selection unit 110 supplies the reference image supplied from the frame memory 109 to the intra prediction unit 111. The selection unit 110 also supplies the reference image supplied from the frame memory 109 to the motion prediction / compensation unit 112 when decoding an inter-coded image.
- the intra prediction unit 111 is appropriately supplied from the lossless decoding unit 102 with information indicating the intra prediction mode obtained by decoding the header information.
- the intra prediction unit 111 performs intra prediction using the reference image acquired from the frame memory 109 in the intra prediction mode used in the intra prediction unit of the image encoding device, and generates a predicted image.
- the intra prediction unit 111 supplies the generated predicted image to the selection unit 113.
- the motion prediction / compensation unit 112 acquires information (optimum prediction mode information and the like) obtained by decoding the header information from the lossless decoding unit 102.
- the motion prediction / compensation unit 112 performs inter prediction using the reference image acquired from the frame memory 109 in the inter prediction mode used in the motion prediction / compensation unit of the image encoding device, and generates a predicted image.
- the motion prediction / compensation unit 112 supplies the generated predicted image to the selection unit 113.
- the selection unit 113 supplies the prediction image supplied from the intra prediction unit 111 or the motion prediction / compensation unit 112 to the calculation unit 105 and adds it to the decoded residual data.
- one macro block composed of 16 ⁇ 16 pixels is divided into any of 16 ⁇ 16, 16 ⁇ 8, 8 ⁇ 16 or 8 ⁇ 8 partitions (sub macroblocks). ), And each sub-macroblock can have independent motion vector information.
- the 8 ⁇ 8 partition is divided into 8 ⁇ 8, 8 ⁇ 4, 4 ⁇ 8, and 4 ⁇ 4 sub-macroblocks and has independent motion vector information. It is possible.
- orthogonal transform processing is performed on a sub-macroblock of 4 ⁇ 4 pixels or a sub-macroblock of 8 ⁇ 8 pixels. Done as a unit. That is, the inverse orthogonal transform unit 104 in FIG. 1 performs an inverse orthogonal transform process using a 4 ⁇ 4 pixel sub-macro block or an 8 ⁇ 8 pixel sub-macro block as a processing unit.
- the macro block size of 16 pixels ⁇ 16 pixels is optimal for a large image frame such as UHD (Ultra High Definition; 4000 pixels ⁇ 2000 pixels), which is a target of the next generation encoding method. is not.
- a coding unit (Coding Unit)) is defined.
- CU is also called Coding Tree Block (CTB), and is a partial area of a picture unit image that plays the same role as a macroblock in AVC.
- CTB Coding Tree Block
- the latter is fixed to a size of 16 ⁇ 16 pixels, whereas the size of the former is not fixed, and is specified in the image compression information in each sequence.
- the maximum size (LCU (Largest Coding Unit)) and the minimum size ((SCU (Smallest Coding Unit)) are specified. Is done.
- the LCU size is 128 and the maximum hierarchical depth is 5.
- split_flag is “1”
- the 2N ⁇ 2N size CU is divided into N ⁇ N size CUs that are one level below.
- the CU is divided into prediction units (Prediction Units (PU)) that are regions (partial regions of images in units of pictures) that are processing units of intra or inter prediction, and are regions that are processing units of orthogonal transformation It is divided into transform units (Transform Unit (TU)), which is (a partial area of an image in units of pictures).
- Prediction Units PU
- transform Unit Transform Unit
- a macroblock in AVC corresponds to an LCU.
- the size of the LCU in the highest hierarchy is generally set larger than the AVC macroblock, for example, 128 ⁇ 128 pixels. is there.
- 16 ⁇ 16 pixels or 32 ⁇ 32 pixels are also applied. That is, the inverse orthogonal transform unit 104 in FIG. 1 can also perform the inverse orthogonal transform process using a TU of 16 ⁇ 16 pixels or a TU of 32 ⁇ 32 pixels as a processing unit.
- FIG. 4 is a block diagram illustrating a main configuration example of the inverse orthogonal transform unit 104 of FIG.
- the inverse orthogonal transform unit 104 includes a horizontal one-dimensional inverse transform unit 131, a bit width processing unit 132, a transposition register 133, and a vertical one-dimensional inverse transform unit 134.
- the horizontal one-dimensional inverse transform unit 131, the transposition register 133, and the vertical one-dimensional inverse transform unit 134 are also configured to include an inverse orthogonal transform unit of an image decoding apparatus that performs a decoding process using an encoding method such as AVC or HEVC.
- the orthogonal transform unit 104 includes a bit width processing unit 132 in addition to the configuration.
- the horizontal one-dimensional inverse transform unit 131 performs inverse orthogonal transform on the orthogonal transform coefficient data supplied from the inverse quantization unit 103 (hereinafter also simply referred to as coefficient data) in the horizontal direction.
- the horizontal one-dimensional inverse transform unit 131 is supplied with a coefficient data group that is orthogonally transformed for each region of a predetermined size, such as 16 ⁇ 16 pixels or 32 ⁇ 32 pixels. That is, 16 ⁇ 16 or 32 ⁇ 32 coefficient data is supplied.
- the horizontal one-dimensional inverse transform unit 131 performs inverse orthogonal transform on the coefficient data in the horizontal direction line by line in order from the top to the bottom in the vertical direction.
- the horizontal one-dimensional inverse transform unit 131 supplies intermediate data (coefficient data orthogonally transformed in the vertical direction) obtained by inverse orthogonal transform to the bit width processing unit 132.
- the bit width processing unit 132 performs clip processing on each supplied intermediate data, and reduces the bit width of each intermediate data to a degree corresponding to the frequency band.
- the bit width processing unit 132 supplies each intermediate data whose bit width is adjusted to the transposition register 133 and holds it.
- the transposition register 133 stores the supplied intermediate data so as to correspond to the arrangement order of the original orthogonal transform coefficient data, as shown in FIG. That is, the transposition register 133 stores the intermediate data of the pixels in each row so that they are aligned in the horizontal direction and the rows are aligned in the vertical direction. Therefore, for example, intermediate data generated from 32 ⁇ 32 orthogonal transform coefficient data is stored in a storage area of 32 ⁇ 32 ⁇ (bit width of each pixel).
- the vertical one-dimensional inverse transform unit 134 reads the intermediate data for each column from the transposition register 133 and performs a one-dimensional inverse orthogonal transform process. That is, the vertical one-dimensional inverse conversion unit 134 reads the intermediate data stored in the transposition register 133 for each vertical arrangement. That is, the vertical one-dimensional inverse conversion unit 134 transposes the arrangement of the intermediate data from the horizontal direction to the vertical direction by reading the intermediate data from the transposition register 133 in an order different from the writing order of the intermediate data.
- the vertical one-dimensional inverse transform unit 134 performs inverse orthogonal transform in the vertical direction by performing inverse orthogonal transform on the intermediate data read for each column in this way for each column.
- the intermediate data is inversely orthogonally transformed in the vertical direction by the vertical one-dimensional inverse transform unit 134, whereby decoded residual data obtained by inversely orthogonally transforming the orthogonal transform coefficient data in two dimensions (horizontal direction and vertical direction) is obtained.
- the vertical one-dimensional inverse transform unit 134 supplies the decoded residual data to the calculation unit 105.
- the intermediate data stored in the transposition register 133 is aligned for each frequency component in the vertical direction as shown in FIG. 5, for example. That is, the high frequency components are arranged from the low frequency components from top to bottom. The lower frequency component is located above and the higher frequency component is located below. Components in the same frequency band are arranged in the horizontal direction of each row.
- the bit width processing unit 132 adjusts the bit width of each intermediate data for each frequency component, for example, as shown in B of FIG. More specifically, the bit width processing unit 132 suppresses the bit width of each intermediate data so that the lower frequency component has a longer bit width and the higher frequency component has a smaller bit width. For example, in the case of B in FIG. 6, the bit width processing unit 132 sets the bit width of the intermediate data of the top row (one horizontal line) to 16 bits, and the second to fourth rows from the top (3 The bit width of the intermediate data of the horizontal line is 14 bits. For example, in the case of B in FIG.
- the bit width processing unit 132 sets the bit width of the intermediate data of the fifth to sixteenth rows (12 horizontal lines) from the top to 12 bits, and the seventeenth to thirty-second from the top.
- the bit width of the intermediate data of the 16th row (16 horizontal lines) is 9 bits.
- bit width of each row of the orthogonal transform coefficient data and the intermediate data is arbitrary, and may be other than the example shown in B of FIG.
- the bit width may be reduced by 4 rows (4 horizontal lines) from the top row.
- bit width of the intermediate data up to the 16th row from the top (16 horizontal lines) is the same as the orthogonal transformation coefficient data, and the bit width of each row of the remaining 16 rows (16 horizontal lines) is the orthogonal transformation coefficient data. You may make it reduce more.
- the bit width processing unit 132 controls the bit width of the intermediate data for each frequency band.
- the bit width processing unit 132 is a bit of intermediate data for each horizontal line obtained by performing one-dimensional inverse orthogonal transformation on orthogonal transformation coefficient data obtained by two-dimensional orthogonal transformation of image data of a region serving as a processing unit in the horizontal direction. The width is reduced according to the frequency band.
- the bit width processing unit 132 reduces the bit width of the intermediate data of each horizontal line more strongly as the higher frequency component.
- the absolute value of an image is larger as the frequency component is lower and the absolute value is smaller as the frequency component is higher. Therefore, by controlling the bit width in this way, the bit width processing unit 132 can suppress the size of the transposition register 133 used in the inverse orthogonal transform process while suppressing image quality deterioration.
- the bit width processing unit 132 reduces the bit width of the intermediate data of each horizontal line according to the frequency characteristics of the orthogonally transformed image data. By controlling the bit width in this way, the bit width processing unit 132 can further suppress image quality deterioration.
- the memory capacity required for the image decoding process can be reduced, and the manufacturing cost of the image decoding apparatus 100 can be reduced.
- the intermediate data may contain an error due to the clipping process of the bit width processing unit 132, but the influence of this error can be reduced by ensuring a sufficient bit width for clipping.
- the image decoding apparatus 100 can control the degree of image quality degradation and the size of the transposition register 133 by setting the bit width to be clipped. Therefore, for example, it is desirable to determine the bit width to be clipped so as to optimize these according to the content of the image.
- step S101 the accumulation buffer 101 accumulates the transmitted bit stream.
- step S102 the lossless decoding unit 102 decodes the bit stream supplied from the accumulation buffer 101. That is, the I picture, P picture, and B picture encoded by the lossless encoding unit of the image encoding apparatus are decoded. Various information other than the difference image information included in the bit stream, such as difference motion information, is also decoded.
- step S103 the inverse quantization unit 103 inversely quantizes the quantized orthogonal transform coefficient obtained by the process in step S102.
- step S104 the inverse orthogonal transform unit 104 performs inverse orthogonal transform on the orthogonal transform coefficient inversely quantized in step S103.
- step S105 the intra prediction unit 111 or the motion prediction / compensation unit 112 performs a prediction process using the supplied information.
- step S106 the selection unit 113 selects the predicted image generated in step S105.
- step S107 the computing unit 105 adds the predicted image selected in step S106 to the difference image information obtained by the inverse orthogonal transform in step S104. Thereby, a decoded image is obtained.
- step S108 the loop filter 106 appropriately performs loop filter processing including deblock filter processing and adaptive loop filter processing on the decoded image obtained in step S107.
- step S109 the screen rearrangement buffer 107 rearranges the images filtered in step S108. That is, the order of frames rearranged for encoding by the screen rearrangement buffer of the image encoding device is rearranged to the original display order.
- step S110 the D / A converter 108 D / A converts the image in which the frame order is rearranged in step S109. This image is output to a display (not shown), and the image is displayed.
- step S111 the frame memory 109 stores the image filtered in step S108.
- this image is used as a reference image for generating a predicted image.
- step S111 When the process of step S111 is completed, the decryption process is terminated.
- step S131 the horizontal one-dimensional inverse transform unit 131 performs a one-dimensional inverse orthogonal transform in the horizontal direction on the inversely quantized orthogonal transform coefficient data of one horizontal line to be processed.
- step S132 the bit width processing unit 132 performs the clipping process to the bit width corresponding to the frequency band on the intermediate data of one horizontal line obtained by the process of step S131.
- step S133 the bit width processing unit 132 writes the clipped intermediate data of one horizontal line to the transposition register 133 one row below the previously written intermediate data of one horizontal line.
- step S134 the horizontal one-dimensional inverse transform unit 131 determines whether or not all horizontal lines in the region have been processed, and if it is determined that there are unprocessed horizontal lines in the processing target region, the process is performed. Returning to S131, the subsequent processing is performed.
- step S134 For each horizontal line, the processing from step S131 to step S134 is repeated, and if it is determined in step S134 that all horizontal lines in the processing target region have been processed, the horizontal one-dimensional inverse transform unit 131 proceeds to step S135. Proceed.
- step S135 the vertical one-dimensional inverse transformation unit 134 reads intermediate data for one vertical line from the transposition register 133, and in step S136, performs one-dimensional inverse orthogonal transformation on the read intermediate data in the vertical direction.
- step S137 the vertical one-dimensional inverse transform unit 134 determines whether or not all vertical lines in the region have been processed. If it is determined that there are unprocessed vertical lines in the processing target region, the process proceeds to step S137. Returning to S135, the subsequent processing is performed.
- step S137 For each vertical line, the processing from step S135 to step S137 is repeated, and if it is determined in step S137 that all the vertical lines in the processing target area have been processed, the vertical one-dimensional inverse transform unit 134 proceeds to step S138. Proceed.
- step S138 the vertical one-dimensional inverse transform unit 134 determines whether or not all areas in the image have been processed. If it is determined that there is an unprocessed area, the process returns to step S131, and thereafter Repeat the process.
- step S138 the processing in steps S131 to S138 is repeated for each region. If it is determined in step S138 that all regions have been processed, the vertical one-dimensional inverse transform unit 134 performs the inverse orthogonal transform process. The process ends, and the process returns to FIG.
- the image decoding apparatus 100 can reduce the amount of intermediate data obtained in the inverse orthogonal transform process, and reduce the size of the storage area used as the transposition register 133. Can do. Thereby, the memory capacity required for the image decoding process can be reduced, and the manufacturing cost of the image decoding apparatus 100 can be reduced.
- the intermediate data may be stored in the transposition register 133 by using a predetermined column (vertical line) as a reference and a difference value from the reference. That is, with respect to the result of the one-dimensional inverse transformation in the horizontal direction, a difference may be taken between the same frequency components, and the difference may be used as intermediate data.
- FIG. 9 is a block diagram illustrating another configuration example of the inverse orthogonal transform unit 104.
- the inverse orthogonal transform unit 104 includes a subtracting unit 231 between the horizontal one-dimensional inverse transform unit 131 and the bit width processing unit 132 in addition to the configuration described with reference to FIG.
- an adder 232 is provided between the transposition register 133 and the vertical one-dimensional inverse transform unit 134.
- the subtracting unit 231 uses, as a reference pixel, a pixel on a predetermined vertical line of each coefficient arranged in a matrix (array form) as described above. A difference value from the coefficient of each pixel is obtained.
- the bit width processing unit 132 performs clip processing on the difference value output from the subtracting unit 231. For example, the bit width processing unit 132 reduces the bit width of each supplied difference value to a predetermined bit width, supplies it to the transposition register 133, and stores it as intermediate data. Further, the bit width processing unit 132 supplies the coefficient of each reference pixel to the transposition register 133 as it is without suppressing the bit width, and stores it as intermediate data.
- FIG. 10 is a diagram illustrating an example of intermediate data stored in the transposition register 133.
- the size of the region serving as the processing unit of the inverse orthogonal transform process is n ⁇ n pixels.
- the bit width of the output A ij (0 ⁇ i ⁇ n, 0 ⁇ j ⁇ n) of the horizontal one-dimensional inverse transform unit 131 is 16 bits.
- B ij represents a sign bit of Aij (0 ⁇ i ⁇ n, 0 ⁇ j ⁇ n ⁇ 1).
- the subtracting unit 231 obtains a difference value between each pixel other than the reference pixel and the reference pixel located on the same horizontal line as that pixel.
- the subtracting unit 231 uses the difference value ⁇ a ij calculated in this way and the sign bit B ij as intermediate data for pixels other than the reference pixel (0 ⁇ i ⁇ n, 0 ⁇ j ⁇ n ⁇ 1). To supply.
- the coefficients that are one-dimensionally inversely transformed in the horizontal direction have the same frequency components arranged in the horizontal direction, and the correlation in the horizontal direction becomes high.
- the subtraction unit 231 uses the high degree of correlation to reduce the value of each intermediate data by taking the difference between the coefficients arranged in the horizontal direction as described above. At this time, if subtraction is performed with a sign, there is a possibility that the value may become larger, so the subtraction unit 231 calculates the difference between the absolute values of the coefficients as shown in Expression (1). . In this way, the subtracting unit 231 can reliably reduce the value of the intermediate data.
- bit width processing unit 132 performs clip processing on each supplied difference value with a bit width smaller than the original 16 bits. In the example of FIG. 10, clip processing is performed with 12 bits. In this way, the bit width processing unit 132 reduces the bit width of the difference value and supplies it to the transposition register 133 for storage.
- the inverse orthogonal transform unit 104 can reduce the size of the transposition register 133 as compared with the case where all the intermediate data is stored with the bit width of 16 bits.
- the adder 232 reads the intermediate data of each reference pixel from the transposition register 133 and also reads the intermediate data (difference value) of vertical lines other than the line of the reference pixel to be processed. Intermediate data of reference pixels on the same horizontal line as the value is added as shown in the following expression (3).
- ABS (A ij ) ABS (A i (n-1) ) + ⁇ a ij (where 0 ⁇ i ⁇ n, 0 ⁇ j ⁇ n-1) (3)
- the adder 232 adds the sign bit B ij to the absolute value of A ij calculated in this way. Thereby, each intermediate data of the vertical lines other than the reference pixel line is restored. The adder 232 supplies the intermediate data restored in this way to the vertical one-dimensional inverse transform unit 134. For the reference pixel, since the intermediate data is not a difference value, the adding unit 232 supplies the intermediate data A ij read from the transposition register 133 to the vertical one-dimensional inverse conversion unit 134.
- the vertical one-dimensional inverse transform unit 134 performs a one-dimensional inverse orthogonal transform process in the vertical direction on the intermediate data supplied in this way, and restores the image data before the orthogonal transform process.
- the restored image data may not necessarily completely reproduce the image data before being subjected to the orthogonal transform processing in the image encoding device, but the image quality deterioration due to the error is not great.
- the bit width to be clipped may be defined so that the image quality deterioration is less than the allowable level.
- any column may be used as the reference pixel line.
- the use efficiency of the transposition register 133 can be improved in terms of mounting.
- the adder 232 reads the intermediate data of the reference pixel from the transposition register 133, and other than the line of the reference pixel.
- the intermediate data is read line by line in order from the leftmost vertical line.
- the intermediate data of the reference pixel is used for the addition calculation of the difference values of all the vertical lines other than the reference pixel line. That is, the intermediate data of the reference pixel needs to be held in the transposition register 133 until the end.
- the area becomes usable.
- This usable area is used to hold intermediate data in the area of the next processing unit. That is, the intermediate data is read out by one vertical line in the order from the left to the right, so that the intermediate data in the next area can be held in the one vertical line in the order from the left to the right.
- the intermediate data of the next area can be held one by one in the order from left to right. That is, the transposition register 133 can be used more efficiently.
- the intermediate data of the area to be processed next can be written by skipping the vertical line, or the reference pixel line can be written. Therefore, there is a possibility that the processing becomes complicated and the processing time is unnecessarily increased.
- the intermediate data of the area to be processed next is written with the horizontal direction and the vertical direction (that is, rows and columns) interchanged.
- the one vertical line can be written, but the intermediate data of the area to be processed next is the same as in the case of the area currently processed.
- One horizontal line is supplied.
- the transposition register 133 stores the intermediate data for one horizontal line in one writable vertical line.
- the intermediate data in the next area of the intermediate data area stored in the transposition register 133 in FIG. 10 is transposed in the horizontal and vertical directions as shown in FIG. Stored. Therefore, the reference pixel line is the bottom horizontal line.
- the reading order is transposed between the horizontal direction and the vertical direction. That is, in the example of FIG. 11, the intermediate data is read for each horizontal line. That is, horizontal lines other than the reference pixel line are read out one horizontal line at a time from top to bottom. The intermediate data of the reference pixel is read each time and used for the addition calculation of each horizontal line other than the reference pixel line.
- step S201 the horizontal one-dimensional inverse transformation unit 131 performs one-dimensional inverse orthogonal transformation in the horizontal direction on the inverse-quantized orthogonal transformation coefficient data of one horizontal line to be processed.
- step S202 the subtraction unit 231 obtains a difference value ⁇ a ij between the coefficient of the reference pixel and the coefficient of other pixels for the horizontal line to be processed.
- step S203 the bit width processing unit 132 performs a clipping process to a predetermined bit width shorter than the original bit width on the difference value ⁇ a ij calculated in step S202.
- step S ⁇ b> 204 the bit width processing unit 132 writes the coefficient of the reference pixel and the difference value ⁇ a ij subjected to the clipping process in the transposition register 133.
- step S205 the horizontal one-dimensional inverse transform unit 131 determines whether or not all horizontal lines in the region have been processed, and if it is determined that there are unprocessed horizontal lines in the processing target region, the process is stepped. Returning to S201, the subsequent processing is performed.
- step S201 For each horizontal line, the processing from step S201 to step S205 is repeated, and if it is determined in step S205 that all the horizontal lines in the processing target area have been processed, the horizontal one-dimensional inverse transform unit 131 proceeds to step S206. Proceed.
- step S206 the addition unit 232 reads the intermediate data of each reference pixel from the transposition register 133.
- step S ⁇ b> 207 the addition unit 232 reads intermediate data (difference value) of vertical lines other than the reference pixel line from the transposition register 133.
- step S208 the adding unit 232 adds the intermediate data of the reference pixels located on the same horizontal line read in step S206 to each difference value read in step S207.
- step S209 the vertical one-dimensional inverse transform unit 134 performs one-dimensional inverse orthogonal transform in the vertical direction on the intermediate data for one vertical line obtained by the addition.
- step S210 the vertical one-dimensional inverse transform unit 134 determines whether all vertical lines other than the reference pixel line in the region have been processed, and the vertical line other than the reference pixel line in the processing target region has not been processed. If it is determined that there is a vertical line for processing, the processing returns to step S206, and the subsequent processing is performed.
- step S210 For each vertical line other than the reference pixel line, the processing from step S206 to step S210 is repeated, and if it is determined in step S210 that all the vertical lines other than the reference pixel line in the processing target region have been processed, The inverse conversion unit 134 proceeds with the process to step S211.
- step S ⁇ b> 211 the adding unit 232 reads intermediate data of each reference pixel from the transposition register 133.
- the vertical one-dimensional inverse transform unit 134 performs one-dimensional inverse orthogonal transform in the vertical direction on the intermediate data of each reference pixel.
- step S212 the vertical one-dimensional inverse transform unit 134 determines whether or not all regions in the image have been processed. If it is determined that there are unprocessed regions, the process returns to step S201, and thereafter Repeat the process.
- steps S201 to S212 are repeated for each region, and when it is determined in step S212 that all regions have been processed, the vertical one-dimensional inverse transform unit 134 performs inverse orthogonal transform processing. The process ends, and the process returns to FIG.
- the image decoding apparatus 100 can reduce the amount of intermediate data obtained in the inverse orthogonal transform process, and reduce the size of the storage area used as the transposition register 133. Can do. Thereby, the memory capacity required for the image decoding process can be reduced, and the manufacturing cost of the image decoding apparatus 100 can be reduced.
- bit width processing unit 132 has been described so as to clip all the difference values to the same bit width.
- the first embodiment also applies to the difference values calculated as described above.
- the frequency distribution is as shown in FIG. Therefore, as in the case of the first embodiment, the bit width processing unit 132 may control the bit width of each intermediate data (difference value) according to the frequency band.
- the bit width processing unit 132 may adjust the bit width of each intermediate data for each frequency component, for example, as shown in B of FIG. More specifically, the bit width processing unit 132 may suppress the bit width of each intermediate data so that the low frequency component has a longer bit width and the higher frequency component has a smaller bit width.
- the bit width is 10 bits (values exceeding 10 bits are clipped to 10 bits)
- ⁇ a ij (4 ⁇ i ⁇ 15, j ⁇ 31) is set to 8 bits (values exceeding 8 bits are clipped to 8 bits)
- ⁇ a ij The bit width of 16 ⁇ i ⁇ 31, j ⁇ 31 is set to 6 bits (values exceeding 6 bits are clipped to 6 bits). That is, the bit width is reduced for higher frequency components.
- the bit width of A is set to 14 bits (values exceeding 14 bits are clipped to 14 bits)
- a ij (16 ⁇ i ⁇ 31, j 31) to the bit width 9bit (a value greater than the 9bit is clipped to 9bit). That is, the bit width is reduced for higher frequency components.
- bit width of each row of the orthogonal transform coefficient data and the intermediate data is arbitrary.
- the bit width processing unit 132 controls the bit width of the intermediate data for each frequency band. For example, the bit width processing unit 132 reduces the bit width of the intermediate data according to the frequency band. For example, the bit width processing unit 132 reduces the bit width of the intermediate data of each horizontal line more strongly as the higher frequency component. By controlling the bit width in this way, the bit width processing unit 132 can suppress the size of the transposition register 133 used in the inverse orthogonal transform process while suppressing image quality deterioration.
- the bit width processing unit 132 reduces the bit width of the intermediate data of each horizontal line according to the frequency characteristics of the orthogonally transformed image data. By controlling the bit width in this way, the bit width processing unit 132 can further suppress image quality deterioration.
- the memory capacity required for the image decoding process can be reduced, and the manufacturing cost of the image decoding apparatus 100 can be reduced.
- the intermediate data of the next area is stored while transposing the horizontal direction and the vertical direction as described with reference to FIGS. Can be difficult.
- the intermediate data in the previous area may be read out and then the intermediate data in the next area may be written in the transposition register 133 without transposing the horizontal direction and the vertical direction.
- the flow of the inverse orthogonal transform process in this case is basically the same as that described above with reference to the flowchart of FIG. That is, the processes in steps S231 to S242 are basically performed in the same manner as the processes in steps S201 to S212 in FIG.
- step S233 the bit width processing unit 132 performs clip processing on the difference value to a bit width corresponding to the frequency band. Similarly, the bit width processing unit 132 performs the clipping process to the bit width corresponding to the frequency band for the intermediate data of the reference pixel.
- the inverse orthogonal transform unit 104 can reduce the size of the transposition register 133 while suppressing image quality deterioration more than in the case of FIG.
- FIG. 14 shows a configuration example of the inverse orthogonal transform unit 104 in this case.
- the inverse orthogonal transform unit 104 in this case includes an average value calculation unit 331 between the horizontal one-dimensional inverse transform unit 131 and the subtraction unit 231 in addition to the configuration in the case of FIG. 9. Have.
- the average value calculation unit 331 obtains the average value of each coefficient (absolute value thereof) for each horizontal line, for example, as in the following equation (4), for the output of the horizontal one-dimensional inverse conversion unit 131.
- ⁇ i (ABS (A i0 ) + ABS (A i1 ) +... + ABS (A in )) / n (where 0 ⁇ i ⁇ n) (4)
- the average value calculation unit 331 supplies the output of the horizontal one-dimensional inverse conversion unit 131 and the calculated average value ⁇ i to the subtraction unit 231.
- the subtraction unit 231 obtains the difference value between the coefficient of each pixel and the average value in each horizontal line, for example, as shown in the following formulas (5) and (6).
- ⁇ a ij ABS (A ij ) ⁇ i (where 0 ⁇ i ⁇ n, 0 ⁇ j ⁇ n ⁇ 1) (5)
- B ij MBS (A ij ) (where 0 ⁇ i ⁇ n, 0 ⁇ j ⁇ n ⁇ 1) (6)
- B ij indicates a sign bit of A ij (0 ⁇ i ⁇ n, 0 ⁇ j ⁇ n ⁇ 1).
- the subtraction unit 231 supplies the calculated difference value (including the sign bit) and the average value to the bit width processing unit 132.
- the bit width processing unit 132 performs a clipping process on the difference value output from the subtracting unit 231 with a predetermined bit width so as to reduce the bit width.
- the bit width processing unit 132 supplies the difference value and the sign bit subjected to the clipping process to the transposition register 133 as intermediate data and stores them.
- the bit width processing unit 132 also supplies the average value supplied from the subtraction unit 231 to the transposition register 133 and stores it.
- the transposition register 133 also stores each average value ⁇ i calculated for each horizontal line. (The sign bit is not shown)
- bit width processing unit 132 stores the average value and the sign bit in the transposition register 133 without reducing the bit width. If image quality deterioration is allowed, the bit width processing unit 132 may perform clip processing for these values so as to narrow the bit width.
- the adder 232 reads the intermediate data (difference value) from the transposition register 133 for each vertical line and also reads the average value ⁇ i .
- the adding unit 232 adds the average value ⁇ i on the same horizontal line as the difference value to the read difference value as shown in the following equation (7).
- ABS (A ij ) ⁇ a ij + ⁇ i (where 0 ⁇ i ⁇ n, 0 ⁇ j ⁇ n ⁇ 1) (7)
- the adder 232 adds the sign bit B ij to the absolute value of A ij calculated in this way. Thereby, each intermediate data is restored.
- the adder 232 supplies the intermediate data restored in this way to the vertical one-dimensional inverse transform unit 134.
- the vertical one-dimensional inverse transform unit 134 performs a one-dimensional inverse orthogonal transform process in the vertical direction on the intermediate data supplied in this way, and restores the image data before the orthogonal transform process.
- the bit width processing unit 132 can further reduce the bit width while suppressing an increase in image quality deterioration. Therefore, the inverse orthogonal transform unit 104 can further reduce the size of the transposition register 133.
- step S301 the horizontal one-dimensional inverse transform unit 131 performs one-dimensional inverse orthogonal transform in the horizontal direction on the inverse-quantized orthogonal transform coefficient data of one horizontal line to be processed.
- step S302 the average value calculation unit 331 calculates an average value ⁇ i of the coefficients A ij of each pixel of one horizontal line to be processed.
- step S303 the subtraction unit 231 obtains a difference value ⁇ a ij between each coefficient A ij and the average value ⁇ i calculated in step S302 for the horizontal line to be processed.
- step S304 the bit width processing unit 132 performs clipping processing on the difference value calculated in step S303 to a predetermined bit width shorter than the original bit width.
- step S ⁇ b> 305 the bit width processing unit 132 writes the difference value ⁇ a ij ′ (including the sign bit B ij ) and the average value ⁇ i subjected to the clipping process in the transposition register 133.
- step S306 the horizontal one-dimensional inverse transform unit 131 determines whether or not all horizontal lines in the region have been processed, and if it is determined that there are unprocessed horizontal lines in the processing target region, the process is performed. Returning to S301, the subsequent processing is performed.
- step S301 For each horizontal line, the processing from step S301 to step S306 is repeated, and when it is determined in step S306 that all the horizontal lines in the processing target region have been processed, the horizontal one-dimensional inverse transform unit 131 moves the processing to step S307. Proceed.
- step S ⁇ b> 307 the adding unit 232 reads each average value ⁇ i from the transposition register 133.
- step S ⁇ b> 308 the addition unit 232 reads the intermediate data (difference value) of the vertical line to be processed from the transposition register 133.
- step S309 the adding unit 232 adds the average value located on the same horizontal line read in step S307 to each difference value read in step S308.
- step S310 the vertical one-dimensional inverse transformation unit 134 performs one-dimensional inverse orthogonal transformation in the vertical direction on the intermediate data for one vertical line obtained by the addition.
- step S311 the vertical one-dimensional inverse transform unit 134 determines whether or not all vertical lines in the region have been processed. If it is determined that there are unprocessed vertical lines in the processing target region, the processing is performed. Returning to S307, the subsequent processing is performed.
- step S311 For each vertical line in the area, the processes in steps S307 to S311 are repeatedly executed. When it is determined in step S311 that all the vertical lines in the processing target area have been processed, the vertical one-dimensional inverse conversion unit 134 Then, the process proceeds to step S312.
- step S312 the vertical one-dimensional inverse transform unit 134 determines whether or not all regions in the image have been processed. If it is determined that there is an unprocessed region, the process returns to step S301, and thereafter Repeat the process.
- steps S301 to S312 are repeatedly executed for each area, and when it is determined in step S312 that all areas have been processed, the vertical one-dimensional inverse transform unit 134 performs inverse orthogonal transform. The process ends, and the process returns to FIG.
- the image decoding apparatus 100 can reduce the amount of intermediate data obtained in the inverse orthogonal transform process, and reduce the size of the storage area used as the transposition register 133. Can do. Thereby, the memory capacity required for the image decoding process can be reduced, and the manufacturing cost of the image decoding apparatus 100 can be reduced.
- bit width processing unit 132 has been described so as to clip all the difference values to the same bit width.
- the first embodiment also applies to the difference values calculated as described above.
- the frequency distribution is as shown in FIG. Therefore, as in the case of the first embodiment, the bit width processing unit 132 may control the bit width of each intermediate data (difference value) according to the frequency band.
- the bit width processing unit 132 may adjust the bit width of each intermediate data for each frequency component, for example, as shown in B of FIG. More specifically, the bit width processing unit 132 may suppress the bit width of each intermediate data so that the low frequency component has a longer bit width and the higher frequency component has a smaller bit width.
- the image decoding apparatus 100 can reduce the amount of memory used as the transposition register 133, as in the case of the second embodiment.
- bit width of each row of the orthogonal transform coefficient data and the intermediate data is arbitrary.
- the bit width processing unit 132 controls the bit width of the intermediate data for each frequency band. For example, the bit width processing unit 132 reduces the bit width of the intermediate data according to the frequency band. For example, the bit width processing unit 132 reduces the bit width of the intermediate data of each horizontal line more strongly as the higher frequency component. By controlling the bit width in this way, the bit width processing unit 132 can suppress the size of the transposition register 133 used in the inverse orthogonal transform process while suppressing image quality deterioration.
- the bit width processing unit 132 reduces the bit width of the intermediate data of each horizontal line according to the frequency characteristics of the orthogonally transformed image data. By controlling the bit width in this way, the bit width processing unit 132 can further suppress image quality deterioration.
- the memory capacity required for the image decoding process can be reduced, and the manufacturing cost of the image decoding apparatus 100 can be reduced.
- the flow of the inverse orthogonal transform process in this case is basically the same as that described above with reference to the flowchart of FIG. That is, the processes in steps S331 to S342 are basically performed in the same manner as the processes in steps S301 to S312 in FIG.
- step S334 the bit width processing unit 132 performs clip processing on the difference value to a bit width corresponding to the frequency band.
- the inverse orthogonal transform unit 104 can reduce the size of the transposition register 133 while suppressing image quality deterioration more than in the case of FIG.
- the average value is used as a reference.
- the median value of each coefficient data of one horizontal line may be used as a reference.
- one coefficient having the value closest to the center of the value width of the coefficient data is selected as the median value from the coefficient data of one horizontal line.
- the same method as described above is used except that the median value is used instead of the average value.
- one difference value can always be set to 0 in one horizontal line.
- an image encoding device corresponding to the above-described image decoding device also includes an inverse orthogonal transform unit similar to the inverse orthogonal transform unit 104 described above. Therefore, also in the inverse orthogonal transform unit of such an image coding apparatus, the size of the transposition register can be reduced by performing processing in the same manner as each method described above.
- such an image encoding device has an orthogonal transform unit corresponding to the inverse orthogonal transform unit 104.
- processing may be performed in the same manner as each method described above. By doing so, the size of the transposition register provided in the orthogonal transform unit can be reduced.
- FIG. 18 is a block diagram illustrating a main configuration example of an image encoding device which is an embodiment of an image processing device.
- An image encoding device 400 shown in FIG. 18 is a device corresponding to the image decoding device 100 in FIG. 1, and the image data is converted into an encoding method (for example, MPEG, AVC, etc.) corresponding to the decoding method of the image decoding device 100. Or HEVC or the like) to generate encoded data (bit stream). This encoded data can be decoded by the image decoding apparatus 100.
- an encoding method for example, MPEG, AVC, etc.
- HEVC HEVC or the like
- the image encoding device 400 includes an A / D conversion unit 401, a screen rearrangement buffer 402, a calculation unit 403, an orthogonal transformation unit 404, a quantization unit 405, a lossless encoding unit 406, and an accumulation.
- a buffer 407 is included.
- the image encoding device 400 includes an inverse quantization unit 408, an inverse orthogonal transform unit 409, a calculation unit 410, a loop filter 411, a frame memory 412, a selection unit 413, an intra prediction unit 414, a motion prediction / compensation unit 415, and a prediction.
- An image selection unit 416 and a rate control unit 417 are included.
- the A / D conversion unit 401 A / D converts the input image data, supplies the converted image data (digital data) to the screen rearrangement buffer 402, and stores it.
- the screen rearrangement buffer 402 rearranges the images of the frames in the stored display order in the order of frames for encoding according to GOP (Group Of Picture), and the images in which the order of the frames is rearranged. It supplies to the calculating part 403. Further, the screen rearrangement buffer 402 also supplies the image in which the frame order is rearranged to the intra prediction unit 414 and the motion prediction / compensation unit 415.
- the calculation unit 403 subtracts the predicted image supplied from the intra prediction unit 414 or the motion prediction / compensation unit 415 via the predicted image selection unit 416 from the image read from the screen rearrangement buffer 402, and the difference information Is output to the orthogonal transform unit 404.
- the calculation unit 403 subtracts the predicted image supplied from the motion prediction / compensation unit 415 from the image read from the screen rearrangement buffer 402.
- the orthogonal transform unit 404 performs orthogonal transform such as discrete cosine transform and Karhunen-Loeve transform on the difference information supplied from the computation unit 403. Note that this orthogonal transformation method is arbitrary.
- the orthogonal transform unit 404 supplies the transform coefficient to the quantization unit 405.
- the quantization unit 405 quantizes the transform coefficient supplied from the orthogonal transform unit 404.
- the quantization unit 405 sets the quantization parameter based on the information regarding the target value of the code amount supplied from the rate control unit 417, and performs the quantization. Note that this quantization method is arbitrary.
- the quantization unit 405 supplies the quantized transform coefficient to the lossless encoding unit 406.
- the lossless encoding unit 406 encodes the transform coefficient quantized by the quantization unit 405 using an arbitrary encoding method. Since the coefficient data is quantized under the control of the rate control unit 417, this code amount becomes the target value set by the rate control unit 417 (or approximates the target value).
- the lossless encoding unit 406 acquires information indicating the mode of intra prediction from the intra prediction unit 414, and acquires information indicating the mode of inter prediction, motion vector information, and the like from the motion prediction / compensation unit 415. Further, the lossless encoding unit 406 acquires the filter coefficient used in the loop filter 411 and the like.
- the lossless encoding unit 406 encodes these various types of information using an arbitrary encoding method, and makes it a part (multiplexes) of the header information of the encoded data.
- the lossless encoding unit 406 supplies the encoded data obtained by encoding to the accumulation buffer 407 for accumulation.
- Examples of the encoding method of the lossless encoding unit 406 include variable length encoding or arithmetic encoding.
- Examples of variable length coding include H.264.
- CAVLC Context-Adaptive Variable Length Coding
- Examples of arithmetic coding include CABAC (Context-Adaptive Binary Arithmetic Coding).
- the accumulation buffer 407 temporarily stores the encoded data supplied from the lossless encoding unit 406.
- the accumulation buffer 407 outputs the stored encoded data to, for example, a recording device (recording medium) (not shown) or a transmission path at a later stage at a predetermined timing.
- the transform coefficient quantized by the quantization unit 405 is also supplied to the inverse quantization unit 408.
- the inverse quantization unit 408 inversely quantizes the quantized transform coefficient by a method corresponding to the quantization by the quantization unit 405.
- This inverse quantization method may be any method as long as it is a method corresponding to the quantization processing by the quantization unit 405.
- the inverse quantization unit 408 supplies the obtained transform coefficient to the inverse orthogonal transform unit 409.
- the inverse orthogonal transform unit 409 performs inverse orthogonal transform on the transform coefficient supplied from the inverse quantization unit 408 by a method corresponding to the orthogonal transform processing by the orthogonal transform unit 404.
- the inverse orthogonal transform method may be any method as long as it corresponds to the orthogonal transform process by the orthogonal transform unit 404.
- the inverse orthogonal transformed output (restored difference information) is supplied to the calculation unit 410.
- the computation unit 410 is supplied from the intra prediction unit 414 or the motion prediction / compensation unit 415 to the inverse orthogonal transform result supplied from the inverse orthogonal transform unit 409, that is, the restored difference information, via the predicted image selection unit 416. Predicted images are added to obtain a locally decoded image (decoded image).
- the decoded image is supplied to the loop filter 411 or the frame memory 412.
- the loop filter 411 includes a deblock filter, an adaptive loop filter, and the like, and appropriately performs a filtering process on the decoded image supplied from the calculation unit 410.
- the loop filter 411 removes block distortion of the decoded image by performing a deblocking filter process on the decoded image.
- the loop filter 411 performs image quality improvement by performing loop filter processing using a Wiener filter on the deblock filter processing result (decoded image from which block distortion has been removed). Do.
- the loop filter 411 may perform arbitrary filter processing on the decoded image. Further, the loop filter 411 can supply information such as filter coefficients used for the filter processing to the lossless encoding unit 406 and encode it as necessary.
- the loop filter 411 supplies the filter processing result (the decoded image after the filter processing) to the frame memory 412.
- the decoded image output from the calculation unit 410 can be supplied to the frame memory 412 without passing through the loop filter 411. That is, the filter process by the loop filter 411 can be omitted.
- the frame memory 412 stores the supplied decoded image, and supplies the stored decoded image as a reference image to the selection unit 413 at a predetermined timing.
- the selection unit 413 selects a supply destination of the reference image supplied from the frame memory 412. For example, in the case of inter prediction, the selection unit 413 supplies the reference image supplied from the frame memory 412 to the motion prediction / compensation unit 415.
- the intra prediction unit 414 basically uses the pixel value in the processing target picture, which is a reference image supplied from the frame memory 412 via the selection unit 413, to generate a prediction image using the prediction unit (PU) as a processing unit. Perform intra prediction (intra-screen prediction) to be generated.
- the intra prediction unit 414 performs this intra prediction in a plurality of modes (intra prediction modes) prepared in advance.
- the intra prediction unit 414 generates predicted images in all candidate intra prediction modes, evaluates the cost function value of each predicted image using the input image supplied from the screen rearrangement buffer 402, and selects the optimum mode. select. When the intra prediction unit 414 selects the optimal intra prediction mode, the intra prediction unit 414 supplies the predicted image generated in the optimal mode to the predicted image selection unit 416.
- the intra prediction unit 414 supplies the intra prediction mode information indicating the adopted intra prediction mode and the like to the lossless encoding unit 406 as appropriate, and performs encoding.
- the motion prediction / compensation unit 415 basically uses the input image supplied from the screen rearrangement buffer 402 and the reference image supplied from the frame memory 412 via the selection unit 413 as a processing unit. Motion prediction (inter prediction) is performed, motion compensation processing is performed according to the detected motion vector, and a predicted image (inter predicted image information) is generated. The motion prediction / compensation unit 415 performs such inter prediction in a plurality of modes (inter prediction modes) prepared in advance.
- the motion prediction / compensation unit 415 generates prediction images in all candidate inter prediction modes, evaluates the cost function value of each prediction image, and selects an optimal mode. When the optimal inter prediction mode is selected, the motion prediction / compensation unit 415 supplies the predicted image generated in the optimal mode to the predicted image selection unit 416.
- the motion prediction / compensation unit 415 generates information indicating the inter prediction mode employed, information necessary for performing processing in the inter prediction mode when decoding the encoded data, and the like. To be encoded.
- the predicted image selection unit 416 selects a supply source of a predicted image to be supplied to the calculation unit 403 or the calculation unit 410. For example, in the case of inter coding, the predicted image selection unit 416 selects the motion prediction / compensation unit 415 as a supply source of the predicted image, and calculates the predicted image supplied from the motion prediction / compensation unit 415 as the calculation unit 403 or the calculation. Supplied to the unit 410.
- the rate control unit 417 controls the rate of the quantization operation of the quantization unit 405 based on the code amount of the encoded data stored in the storage buffer 407 so that overflow or underflow does not occur.
- an inverse orthogonal transform unit 409 is a processing unit similar to the inverse orthogonal transform unit 104 of the image decoding device 100 described above in the first to third embodiments, and performs the same processing. . That is, the inverse orthogonal transform unit 409 includes the transposition register 133 as with the inverse orthogonal transform unit 104, and reduces the size of the transposition register 133 by performing the inverse orthogonal transform process by each method as described above. be able to.
- the orthogonal transform unit 404 corresponds to the inverse orthogonal transform unit 409 (that is, the inverse orthogonal transform unit 104) and performs an orthogonal transform process corresponding to the inverse orthogonal transform process performed by the inverse orthogonal transform unit 409. Part. That is, this orthogonal transform unit 404 also has a transposition register similar to that of the inverse orthogonal transform unit 104. By performing orthogonal transform processing so as to correspond to the inverse orthogonal transform processing of each method as described above, the transpose is performed. The size of the register can be reduced.
- FIG. 19 is a block diagram illustrating a main configuration example of the orthogonal transform unit 404.
- the orthogonal transform unit 404 includes a horizontal one-dimensional transform unit 431, a bit width processing unit 432, a transposition register 433, and a vertical one-dimensional transform unit 434. That is, the orthogonal transform unit 404 has substantially the same configuration as the inverse orthogonal transform unit 104 of the first embodiment shown in FIG.
- the horizontal one-dimensional conversion unit 431 is a processing unit corresponding to the horizontal one-dimensional inverse conversion unit 131, and inputs image data of an area, which is a unit of orthogonal transformation processing, input for each horizontal line. Each time, one-dimensional orthogonal transformation is performed in the horizontal direction. That is, the horizontal one-dimensional inverse transform unit 131 performs inverse transform (one-dimensional inverse orthogonal transform in the horizontal direction) on the coefficient data obtained by the one-dimensional orthogonal transform of the image data in the horizontal direction by the horizontal one-dimensional transform unit 431. ) (Can be restored to the original image data).
- the coefficient data generated by the horizontal one-dimensional conversion unit 431 is supplied to the bit width processing unit 432.
- the bit width processing unit 432 performs clip processing on each coefficient data (intermediate data) output from the horizontal one-dimensional conversion unit 431 so as to reduce the bit width. At that time, the bit width processing unit 432 reduces the bit width of each intermediate data to a degree corresponding to the frequency band.
- the bit width processing unit 432 supplies each intermediate data adjusted in bit width to the transposition register 433 and holds it.
- the transposition register 433 stores the supplied intermediate data so as to correspond to the arrangement order of the original orthogonal transform coefficient data as shown in FIG.
- the vertical one-dimensional conversion unit 434 is a processing unit corresponding to the vertical one-dimensional inverse conversion unit 134, reads intermediate data for each vertical line from the transposition register 433, and performs a one-dimensional orthogonal transformation process. That is, the vertical one-dimensional conversion unit 434 reads the intermediate data stored in the transposition register 433 for each arrangement in the vertical direction. That is, the vertical one-dimensional conversion unit 434 transposes the arrangement of the intermediate data from the horizontal direction to the vertical direction by reading the intermediate data from the transposition register 433 in an order different from the writing order of the intermediate data.
- the vertical one-dimensional conversion unit 434 implements orthogonal transformation in the vertical direction by orthogonally transforming the intermediate data read for each column in this way for each vertical line.
- the intermediate data is orthogonally transformed in the vertical direction by the vertical one-dimensional transform unit 434, thereby obtaining orthogonal transform coefficient data (also simply referred to as coefficient data) obtained by orthogonally transforming the image data in two dimensions (horizontal direction and vertical direction). It is done.
- the vertical one-dimensional conversion unit 434 supplies the coefficient data to the quantization unit 405.
- the intermediate data stored in the transposition register 433 is aligned for each frequency component in the horizontal direction as shown in FIG. 20, for example. That is, the high frequency components are arranged from the low frequency components from the left to the right. The lower frequency component is located on the left and the higher frequency component is located on the right. In each column (vertical line), components in the same frequency band are arranged.
- the bit width processing unit 432 adjusts the bit width of each intermediate data for each frequency component, for example, as shown in FIG. More specifically, the bit width processing unit 432 suppresses the bit width of each intermediate data so that the lower frequency component has a longer bit width and the higher frequency component has a smaller bit width. For example, in the case of B in FIG. 21, the bit width processing unit 432 sets the bit width of the intermediate data of the leftmost one column (one vertical line) to 16 bits, and the second to fourth three columns (3 The bit width of intermediate data (vertical line) is 14 bits. For example, in the case of B in FIG.
- the bit width processing unit 432 sets the bit width of the intermediate data of the 12th column (12 vertical lines) from the fifth to the 16th from the left to 12 bits, and the 17th to 32nd from the left.
- the bit width of the intermediate data of the 16th column (16 vertical lines) is 9 bits.
- bit width of each pixel of the image data and the intermediate data is arbitrary and may be other than the example shown in B of FIG.
- the bit width may be reduced by four columns (four vertical lines) from the leftmost.
- bit width of the intermediate data from the left to the 16th column (16 vertical lines) is the same as that of the image data, and the bit width of each of the remaining 16 columns (16 vertical lines) is reduced as compared to the image data. You may make it make it.
- the bit width processing unit 432 controls the bit width of the intermediate data for each frequency band. For example, the bit width processing unit 432 reduces the bit width of the intermediate data for each horizontal line obtained by performing one-dimensional orthogonal transformation of the image data of the region serving as a processing unit in the horizontal direction according to the frequency band.
- the bit width processing unit 432 reduces the bit width of the intermediate data of each horizontal line more strongly as the higher frequency component.
- a natural image has a larger absolute value for a lower frequency component and a smaller absolute value for a higher frequency component. Therefore, by controlling the bit width in this way, the bit width processing unit 432 can suppress the size of the transposition register 433 used in the orthogonal transform process while suppressing image quality deterioration.
- the bit width processing unit 432 reduces the bit width of each intermediate data of each horizontal line according to the frequency characteristics of the image data. By controlling the bit width in this way, the bit width processing unit 432 can further suppress image quality deterioration.
- the intermediate data may contain an error due to the clipping process of the bit width processing unit 432, but the influence of this error can be reduced by securing a sufficient bit width to be clipped.
- the image coding apparatus 400 can control the degree of image quality degradation and the size of the transposition register 433 by setting the bit width to be clipped. Therefore, for example, it is desirable to determine the bit width to be clipped so as to optimize these according to the content of the image.
- step S401 the A / D converter 401 A / D converts the input image.
- step S402 the screen rearrangement buffer 402 stores the A / D converted image, and rearranges the picture from the display order to the encoding order.
- step S403 the intra prediction unit 414 performs intra prediction processing in the intra prediction mode.
- step S404 the motion prediction / compensation unit 415 performs an inter motion prediction process for performing motion prediction and motion compensation in the inter prediction mode.
- step S405 the predicted image selection unit 416 determines an optimal mode based on the cost function values output from the intra prediction unit 414 and the motion prediction / compensation unit 415. That is, the predicted image selection unit 416 selects one of the predicted image generated by the intra prediction unit 414 and the predicted image generated by the motion prediction / compensation unit 415.
- step S406 the calculation unit 403 calculates a difference between the image rearranged by the process of step S402 and the predicted image selected by the process of step S405.
- the data amount of the difference data is reduced compared to the original image data. Therefore, the data amount can be compressed as compared with the case where the image is encoded as it is.
- step S407 the orthogonal transform unit 404 performs orthogonal transform on the difference information generated by the process in step S406. Specifically, orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed, and transformation coefficients are output.
- orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed, and transformation coefficients are output.
- step S408 the quantization unit 405 quantizes the orthogonal transform coefficient obtained by the process in step S407.
- the difference information quantized by the processing in step S408 is locally decoded as follows. That is, in step S409, the inverse quantization unit 408 performs inverse quantization on the quantized orthogonal transform coefficient (also referred to as a quantization coefficient) generated by the process in step S408 with characteristics corresponding to the characteristics of the quantization unit 405. To do.
- the quantized orthogonal transform coefficient also referred to as a quantization coefficient
- step S410 the inverse orthogonal transform unit 409 performs inverse orthogonal transform on the orthogonal transform coefficient obtained by the process in step S407 with characteristics corresponding to the characteristics of the orthogonal transform unit 404.
- the inverse orthogonal transform process is performed in the same manner as described in the first to third embodiments, and thus detailed description thereof is omitted.
- step S411 the calculation unit 410 adds the predicted image to the locally decoded difference information, and generates a locally decoded image (an image corresponding to an input to the calculation unit 403).
- step S412 the loop filter 411 appropriately performs a loop filter process including a deblock filter process and an adaptive loop filter process on the local decoded image obtained by the process of step S411.
- step S413 the frame memory 412 stores the decoded image on which the loop filter process has been performed by the process of step S412. Note that an image that has not been filtered by the loop filter 411 is also supplied to the frame memory 412 from the calculation unit 410 and stored.
- step S414 the lossless encoding unit 406 encodes the transform coefficient quantized by the process in step S408. That is, lossless encoding such as variable length encoding or arithmetic encoding is performed on the difference image.
- the lossless encoding unit 406 encodes the quantization parameter calculated in step S408 and adds it to the encoded data.
- the lossless encoding unit 406 encodes information regarding the prediction mode of the prediction image selected by the process of step S405, and adds the encoded information to the encoded data obtained by encoding the difference image. That is, the lossless encoding unit 406 also encodes and encodes the optimal intra prediction mode information supplied from the intra prediction unit 414 or information according to the optimal inter prediction mode supplied from the motion prediction / compensation unit 415, and the like. Append to data.
- step S415 the accumulation buffer 407 accumulates the encoded data obtained by the process in step S414.
- the encoded data stored in the storage buffer 407 is appropriately read and transmitted to the decoding side via a transmission path or a recording medium.
- step S416 the rate control unit 417 causes the quantization unit 405 to prevent overflow or underflow from occurring based on the code amount (generated code amount) of the encoded data accumulated in the accumulation buffer 407 by the process in step S415. Controls the rate of quantization operation.
- step S416 When the process of step S416 is finished, the encoding process is finished.
- step S431 the horizontal one-dimensional conversion unit 431 performs one-dimensional orthogonal transformation in the horizontal direction on the image data of one horizontal line in the processing target area.
- step S432 the bit width processing unit 432 performs a clipping process to a bit width corresponding to the frequency band on the intermediate data of one horizontal line obtained by the process in step S431.
- the frequency component of the intermediate data of each pixel changes from a low range to a high range in the horizontal direction. That is, the intermediate data of one horizontal line includes a low frequency component to a high frequency component. Therefore, the bit width processing unit 432 clips each intermediate data of one horizontal line with a bit width corresponding to each frequency component. That is, intermediate data of one horizontal line is classified for each frequency band, and clip processing is performed with different bit widths for each band. For example, when each intermediate data has different frequency components, each intermediate data is clipped with a different bit width.
- step S433 the bit width processing unit 432 writes the clipped intermediate data of one horizontal line to the transposition register 433 one line below the previously written intermediate data of one horizontal line.
- step S434 the horizontal one-dimensional conversion unit 431 determines whether or not all horizontal lines in the region have been processed, and if it is determined that there is an unprocessed horizontal line in the processing target region, the processing is performed in step S431. Return to, and perform the subsequent processing.
- step S431 to step S434 For each horizontal line, each process of step S431 to step S434 is repeatedly executed. When it is determined in step S434 that all the horizontal lines in the processing target area have been processed, the horizontal one-dimensional conversion unit 431 performs the process. Proceed to S435.
- step S435 the vertical one-dimensional conversion unit 434 reads intermediate data for one vertical line from the transposition register 433, and in step S436, performs vertical one-dimensional orthogonal transformation on the read intermediate data.
- step S437 the vertical one-dimensional conversion unit 434 determines whether or not all vertical lines in the region have been processed, and if it is determined that there are unprocessed vertical lines in the processing target region, the process proceeds to step S435. Return to, and perform the subsequent processing.
- step S435 For each vertical line, the processing from step S435 to step S437 is repeated, and if it is determined in step S437 that all the vertical lines in the processing target region have been processed, the vertical one-dimensional conversion unit 434 advances the processing to step S438. .
- step S438 the vertical one-dimensional conversion unit 434 determines whether or not all areas in the image have been processed. If it is determined that there is an unprocessed area, the process returns to step S431, and the subsequent steps Repeat the process.
- step S438 the processing in steps S431 to S438 is repeatedly executed for each region, and if it is determined in step S438 that all regions have been processed, the vertical one-dimensional transform unit 434 ends the orthogonal transform processing. Then, the process returns to FIG.
- the image encoding device 400 can reduce the amount of intermediate data obtained in the orthogonal transformation processing, and reduce the size of the storage area used as the transposition register 433. Can do. Thereby, the memory capacity required for the image encoding process can be reduced, and the manufacturing cost of the image encoding device 400 can be reduced.
- FIG. 24 is a block diagram illustrating a configuration example of the orthogonal transform unit 404 in that case.
- the orthogonal transform unit 404 includes a subtraction unit 531 between the horizontal one-dimensional conversion unit 431 and the bit width processing unit 432 in addition to the configuration described with reference to FIG.
- an adder 532 is provided between the transposition register 433 and the vertical one-dimensional converter 434.
- the subtraction unit 531 uses a pixel on a predetermined horizontal line of each coefficient arranged in a matrix (array) as a reference pixel, and in each vertical line, the coefficient of the reference pixel and other factors. A difference value from the coefficient of each pixel is obtained.
- the bit width processing unit 432 performs clip processing on the difference value output from the subtraction unit 531. For example, the bit width processing unit 432 reduces the bit width of each supplied difference value to a predetermined bit width, supplies it to the transposition register 433, and stores it as intermediate data. Also, the bit width processing unit 432 supplies the coefficient of each reference pixel to the transposition register 433 as it is without suppressing the bit width, and stores it as intermediate data.
- FIG. 25 is a diagram illustrating an example of intermediate data stored in the transposition register 433.
- the size of the region serving as the processing unit of the orthogonal transform process is n ⁇ n pixels.
- the bit width of the output A ij (0 ⁇ i ⁇ n, 0 ⁇ j ⁇ n) of the horizontal one-dimensional conversion unit 431 is 16 bits.
- the difference value ⁇ a ij is calculated as in the following equations (8) and (9).
- ⁇ a ij ABS (A ij ) ⁇ ABS (A 0i ) (where 0 ⁇ i ⁇ n, 0 ⁇ j ⁇ n) (8)
- B ij MBS (A ij ) (where 0 ⁇ i ⁇ n, 0 ⁇ j ⁇ n) (9)
- B ij represents the sign bit of A ij .
- the subtracting unit 531 stores each coefficient of the horizontal line processed first in the region as a reference pixel, and positions each pixel of the horizontal line processed second and later on the same vertical line as that pixel. The difference value from the reference pixel to be obtained is obtained.
- each frequency component is distributed in the horizontal direction. That is, the same frequency components are arranged in the vertical direction, and the correlation between them increases.
- the subtracting unit 531 uses the high degree of correlation in the vertical direction to reduce the value of each intermediate data by taking the difference between the coefficients arranged in the vertical direction as described above. At this time, if subtraction is performed with a sign, there is a possibility that the value may be increased, so the subtraction unit 531 calculates the difference between the absolute values of the coefficients as shown in Equation (8). . By doing so, the subtracting unit 531 can reliably reduce the value of the intermediate data.
- the bit width processing unit 432 performs clip processing on each supplied difference value with a bit width smaller than the original 16 bits. In the example of FIG. 25, clip processing is performed with 12 bits. In this way, the bit width processing unit 432 reduces the difference value to a predetermined bit width and supplies it to the transposition register 433 for storage.
- the orthogonal transform unit 404 can reduce the size of the transposition register 433 as compared with the case where all the intermediate data is stored with the bit width of 16 bits.
- the addition unit 532 reads the intermediate data from the transposition register 433 by one vertical line. As shown in FIG. 25, each vertical line includes intermediate data of reference pixels used for calculation of the difference value in addition to the intermediate data of the difference value.
- the adding unit 532 adds the intermediate data of the reference pixel included in the vertical line to each difference value included in the read one vertical line as in the following Expression (10).
- ABS (A ij ) ABS (A 0j ) + ⁇ a ij (where 0 ⁇ i ⁇ n, 0 ⁇ j ⁇ n) (10)
- the adder 532 adds the sign bit B ij to the absolute value of A ij calculated in this way. Thereby, each intermediate data of the vertical lines other than the reference pixel line is restored.
- the adder 532 supplies the intermediate data restored in this way to the vertical one-dimensional converter 434.
- the addition unit 532 also supplies intermediate data of reference pixels included in the vertical line read from the transposition register 433 to the vertical one-dimensional conversion unit 434. Since the intermediate data of the reference pixel is not a difference value, the read data is supplied to the vertical one-dimensional conversion unit 434 as it is.
- the vertical one-dimensional conversion unit 434 performs a one-dimensional orthogonal transformation process on the intermediate data supplied in this way in the vertical direction, and the orthogonal transformation in which the image data is orthogonally transformed into two dimensions (horizontal direction and vertical direction). Generate coefficient data. Note that when the clipping process is performed on the intermediate data as described above, there is a possibility that an error is included in the clipping process. Therefore, even if the coefficient data is subjected to inverse orthogonal transformation, the image data before being subjected to the orthogonal transformation processing may not necessarily be completely reproduced. However, image quality deterioration due to the error is not large. In other words, the bit width to be clipped may be defined so that the image quality deterioration is less than the allowable level.
- the reference pixel is included in all vertical lines as described above. Therefore, any row may be used as a reference pixel line.
- the intermediate data of the area to be processed next is written with the horizontal direction and the vertical direction (that is, rows and columns) interchanged.
- the reference pixel column vertical line
- step S501 the horizontal one-dimensional conversion unit 431 performs one-dimensional orthogonal transformation in the horizontal direction on the image data of one horizontal line to be processed.
- step S502 the subtraction unit 531 determines whether the horizontal line to be processed is a reference pixel line. If it is determined that the line is the reference pixel line, the subtraction unit 531 advances the process to step S503.
- step S503 the bit width processing unit 432 writes the coefficient of the horizontal line in the transposition register 433. Note that the subtracting unit 531 also holds each coefficient of the horizontal line.
- step S503 ends, the bit width processing unit 432 advances the process to step S507.
- step S502 If it is determined in step S502 that the horizontal line to be processed is not a reference pixel line, the subtraction unit 531 advances the process to step S504. In step S504, the subtracting unit 531 subtracts the coefficient of the reference pixel located at the same position in the horizontal direction as each coefficient from each coefficient of the horizontal line, and calculates the difference value.
- step S505 the bit width processing unit 432 performs a clipping process to a predetermined bit width so as to reduce the bit width for each difference value.
- step S506 the bit width processing unit 432 supplies each difference value with the reduced bit width to the transposition register 433 as intermediate data for storage.
- step S507 the bit width processing unit 432 advances the process to step S507.
- step S507 the horizontal one-dimensional conversion unit 431 determines whether or not all horizontal lines in the region have been processed. If it is determined that there is an unprocessed line, the process returns to step S501, and thereafter Repeat the process. For each horizontal line in the area, the processes in steps S501 to S507 are repeatedly executed. If it is determined in step S507 that all the horizontal lines in the area have been processed, the horizontal one-dimensional conversion unit 431 performs the process. The process proceeds to step S508.
- step S508 the addition unit 532 reads intermediate data for one vertical line from the transposition register 433. In step S508, the addition unit 532 adds the coefficient of the reference pixel to each difference value in the read vertical line.
- step S510 the vertical one-dimensional conversion unit 434 performs one-dimensional orthogonal transformation on each coefficient of the vertical line in the vertical direction to generate coefficient data subjected to two-dimensional orthogonal transformation.
- step S511 the vertical one-dimensional conversion unit 434 determines whether all vertical lines in the region have been processed. If it is determined that there are unprocessed vertical lines, the process returns to step S508, and thereafter Repeat the process. If the process from step S508 to step S511 is repeated for each vertical line and it is determined in step S511 that all the vertical lines in the area have been processed, the vertical one-dimensional conversion unit 434 advances the process to step S512.
- step S512 the vertical one-dimensional conversion unit 434 determines whether or not all areas in the image have been processed. If it is determined that there is an unprocessed area, the process returns to step S501, and the subsequent steps Repeat the process.
- step S512 the processes from step S501 to step S512 are repeatedly executed.
- the vertical one-dimensional conversion unit 434 performs orthogonal transform processing. The process ends, and the process returns to FIG.
- the image encoding device 400 can reduce the amount of intermediate data obtained in the orthogonal transformation processing, and reduce the size of the storage area used as the transposition register 433. Can do. Thereby, the memory capacity required for the image encoding process can be reduced, and the manufacturing cost of the image encoding device 400 can be reduced.
- bit width processing unit 432 has been described so as to clip all the difference values to the same bit width.
- the fourth embodiment also applies to the difference values calculated as described above.
- the bit width processing unit 432 may control the bit width of each intermediate data (difference value) according to the frequency band.
- the flow of orthogonal transform processing in this case is basically the same as that described above with reference to the flowchart of FIG. That is, the processes in steps S531 to S542 are basically performed in the same manner as the processes in steps S501 to S512 in FIG.
- step S535 the bit width processing unit 432 performs a clipping process on the difference value to a bit width corresponding to the frequency band. Similarly, the bit width processing unit 432 performs the clipping process to the bit width corresponding to the frequency band for the intermediate data of the reference pixel.
- the orthogonal transform unit 404 can reduce the size of the transposition register 433 while suppressing image quality deterioration more than in the case of FIG.
- the orthogonal transform process and the inverse orthogonal transform process are performed in each of the horizontal direction and the vertical direction.
- the conversion method is arbitrary, and the horizontal direction is the same as the horizontal direction.
- Any orthogonal transform / inverse orthogonal transform method may be used for each of the processing and the processing in the vertical direction.
- it may be DCT, Karoonen-Loeve transform, or DST.
- different conversion methods may be adopted in the horizontal direction and the vertical direction.
- DCT IDCT
- IDST DST
- the horizontal one-dimensional inverse transform unit 131 may perform IDCT
- the vertical one-dimensional inverse transform unit 134 may perform IDST.
- the horizontal one-dimensional inverse transform unit 131 may perform IDST
- the vertical one-dimensional inverse transform unit 134 may perform IDCT
- the horizontal one-dimensional inverse transform unit 131 and the vertical one-dimensional inverse transform unit 134 may perform IDCT.
- a method other than IDST may be adopted.
- this technology is, for example, MPEG, H.264.
- image information such as discrete cosine transform, such as 26x
- network media such as satellite broadcasting, cable television, the Internet, or mobile phones
- the present invention can be applied to an image encoding device and an image decoding device used in the above.
- the present technology can be applied to an image encoding device and an image decoding device that are used when processing on a storage medium such as an optical, magnetic disk, and flash memory.
- the present technology can also be applied to orthogonal transform devices and inverse orthogonal transform devices included in such image encoding devices and image decoding devices.
- a CPU (Central Processing Unit) 601 of the personal computer 600 performs various processes according to a program stored in a ROM (Read Only Memory) 602 or a program loaded from a storage unit 613 into a RAM (Random Access Memory) 603. Execute the process.
- the RAM 603 also appropriately stores data necessary for the CPU 601 to execute various processes.
- the CPU 601, ROM 602, and RAM 603 are connected to each other via a bus 604.
- An input / output interface 610 is also connected to the bus 604.
- the input / output interface 610 includes an input unit 611 including a keyboard and a mouse, a display including a CRT (Cathode Ray Tube) and an LCD (Liquid Crystal Display), an output unit 612 including a speaker, a hard disk, and the like.
- a communication unit 614 including a storage unit 613 and a modem is connected. The communication unit 614 performs communication processing via a network including the Internet.
- a drive 615 is connected to the input / output interface 610 as necessary, and a removable medium 616 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory is appropriately mounted, and a computer program read from them is It is installed in the storage unit 613 as necessary.
- a removable medium 616 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory is appropriately mounted, and a computer program read from them is It is installed in the storage unit 613 as necessary.
- a program constituting the software is installed from a network or a recording medium.
- the recording medium is distributed to distribute the program to the user separately from the apparatus main body, and includes a magnetic disk (including a flexible disk) on which the program is recorded, an optical disk ( It only consists of removable media 616 consisting of CD-ROM (including Compact Disc -Read Only Memory), DVD (including Digital Versatile Disc), magneto-optical disk (including MD (Mini Disc)), or semiconductor memory. Rather, it is composed of a ROM 602 storing a program and a hard disk included in the storage unit 613, which is distributed to the user in a state of being incorporated in the apparatus main body in advance.
- a magnetic disk including a flexible disk
- an optical disk It only consists of removable media 616 consisting of CD-ROM (including Compact Disc -Read Only Memory), DVD (including Digital Versatile Disc), magneto-optical disk (including MD (Mini Disc)), or semiconductor memory. Rather, it is composed of a ROM 602 storing a program and a hard disk included in the storage unit 613
- the program executed by the computer may be a program that is processed in time series in the order described in this specification, or in parallel or at a necessary timing such as when a call is made. It may be a program for processing.
- the step of describing the program recorded on the recording medium is not limited to the processing performed in chronological order according to the described order, but may be performed in parallel or It also includes processes that are executed individually.
- system represents the entire apparatus composed of a plurality of devices (apparatuses).
- the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
- the configurations described above as a plurality of devices (or processing units) may be combined into a single device (or processing unit).
- a configuration other than that described above may be added to the configuration of each device (or each processing unit).
- a part of the configuration of a certain device (or processing unit) may be included in the configuration of another device (or other processing unit). . That is, the present technology is not limited to the above-described embodiment, and various modifications can be made without departing from the gist of the present technology.
- An image encoding device and an image decoding device include a transmitter or a receiver in optical broadcasting, satellite broadcasting, cable broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication
- the present invention can be applied to various electronic devices such as a recording device that records an image on a medium such as a magnetic disk and a flash memory, or a playback device that reproduces an image from these storage media.
- a recording device that records an image on a medium such as a magnetic disk and a flash memory
- a playback device that reproduces an image from these storage media.
- FIG. 30 illustrates an example of a schematic configuration of a television device to which the above-described embodiment is applied.
- the television apparatus 900 includes an antenna 901, a tuner 902, a demultiplexer 903, a decoder 904, a video signal processing unit 905, a display unit 906, an audio signal processing unit 907, a speaker 908, an external interface 909, a control unit 910, a user interface 911, And a bus 912.
- Tuner 902 extracts a signal of a desired channel from a broadcast signal received via antenna 901, and demodulates the extracted signal. Then, the tuner 902 outputs the encoded bit stream obtained by the demodulation to the demultiplexer 903. In other words, the tuner 902 serves as a transmission unit in the television apparatus 900 that receives an encoded stream in which an image is encoded.
- the demultiplexer 903 separates the video stream and audio stream of the viewing target program from the encoded bit stream, and outputs each separated stream to the decoder 904. Further, the demultiplexer 903 extracts auxiliary data such as EPG (Electronic Program Guide) from the encoded bit stream, and supplies the extracted data to the control unit 910. Note that the demultiplexer 903 may perform descrambling when the encoded bit stream is scrambled.
- EPG Electronic Program Guide
- the decoder 904 decodes the video stream and audio stream input from the demultiplexer 903. Then, the decoder 904 outputs the video data generated by the decoding process to the video signal processing unit 905. In addition, the decoder 904 outputs audio data generated by the decoding process to the audio signal processing unit 907.
- the video signal processing unit 905 reproduces the video data input from the decoder 904 and causes the display unit 906 to display the video.
- the video signal processing unit 905 may cause the display unit 906 to display an application screen supplied via a network.
- the video signal processing unit 905 may perform additional processing such as noise removal on the video data according to the setting.
- the video signal processing unit 905 may generate a GUI (Graphical User Interface) image such as a menu, a button, or a cursor, and superimpose the generated image on the output image.
- GUI Graphic User Interface
- the display unit 906 is driven by a drive signal supplied from the video signal processing unit 905, and displays a video on a video screen of a display device (for example, a liquid crystal display, a plasma display, or an OELD (Organic ElectroLuminescence Display) (organic EL display)). Or an image is displayed.
- a display device for example, a liquid crystal display, a plasma display, or an OELD (Organic ElectroLuminescence Display) (organic EL display)). Or an image is displayed.
- the audio signal processing unit 907 performs reproduction processing such as D / A conversion and amplification on the audio data input from the decoder 904, and outputs audio from the speaker 908.
- the audio signal processing unit 907 may perform additional processing such as noise removal on the audio data.
- the external interface 909 is an interface for connecting the television apparatus 900 to an external device or a network.
- a video stream or an audio stream received via the external interface 909 may be decoded by the decoder 904. That is, the external interface 909 also has a role as a transmission unit in the television apparatus 900 that receives an encoded stream in which an image is encoded.
- the control unit 910 includes a processor such as a CPU and memories such as a RAM and a ROM.
- the memory stores a program executed by the CPU, program data, EPG data, data acquired via a network, and the like.
- the program stored in the memory is read and executed by the CPU when the television device 900 is activated, for example.
- the CPU controls the operation of the television device 900 according to an operation signal input from the user interface 911 by executing the program.
- the user interface 911 is connected to the control unit 910.
- the user interface 911 includes, for example, buttons and switches for the user to operate the television device 900, a remote control signal receiving unit, and the like.
- the user interface 911 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 910.
- the bus 912 connects the tuner 902, the demultiplexer 903, the decoder 904, the video signal processing unit 905, the audio signal processing unit 907, the external interface 909, and the control unit 910 to each other.
- the decoder 904 has the function of the image decoding apparatus according to the above-described embodiment.
- the size of the transposition register used in the inverse orthogonal transform process can be suppressed when the television device 900 decodes an image.
- FIG. 31 shows an example of a schematic configuration of a mobile phone to which the above-described embodiment is applied.
- a mobile phone 920 includes an antenna 921, a communication unit 922, an audio codec 923, a speaker 924, a microphone 925, a camera unit 926, an image processing unit 927, a demultiplexing unit 928, a recording / reproducing unit 929, a display unit 930, a control unit 931, an operation A portion 932 and a bus 933.
- the antenna 921 is connected to the communication unit 922.
- the speaker 924 and the microphone 925 are connected to the audio codec 923.
- the operation unit 932 is connected to the control unit 931.
- the bus 933 connects the communication unit 922, the audio codec 923, the camera unit 926, the image processing unit 927, the demultiplexing unit 928, the recording / reproducing unit 929, the display unit 930, and the control unit 931 to each other.
- the mobile phone 920 has various operation modes including a voice call mode, a data communication mode, a shooting mode, and a videophone mode, and is used for sending and receiving voice signals, sending and receiving e-mail or image data, taking images, and recording data. Perform the action.
- the analog voice signal generated by the microphone 925 is supplied to the voice codec 923.
- the audio codec 923 converts an analog audio signal into audio data, A / D converts the compressed audio data, and compresses it. Then, the audio codec 923 outputs the compressed audio data to the communication unit 922.
- the communication unit 922 encodes and modulates the audio data and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921. In addition, the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
- the communication unit 922 demodulates and decodes the received signal to generate audio data, and outputs the generated audio data to the audio codec 923.
- the audio codec 923 decompresses the audio data and performs D / A conversion to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
- the control unit 931 generates character data constituting the e-mail in response to an operation by the user via the operation unit 932.
- the control unit 931 causes the display unit 930 to display characters.
- the control unit 931 generates e-mail data in response to a transmission instruction from the user via the operation unit 932, and outputs the generated e-mail data to the communication unit 922.
- the communication unit 922 encodes and modulates email data and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
- the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
- the communication unit 922 demodulates and decodes the received signal to restore the email data, and outputs the restored email data to the control unit 931.
- the control unit 931 displays the content of the electronic mail on the display unit 930 and stores the electronic mail data in the storage medium of the recording / reproducing unit 929.
- the recording / reproducing unit 929 has an arbitrary readable / writable storage medium.
- the storage medium may be a built-in storage medium such as RAM or flash memory, and is externally mounted such as a hard disk, magnetic disk, magneto-optical disk, optical disk, USB (Unallocated Space Space Bitmap) memory, or memory card. It may be a storage medium.
- the camera unit 926 images a subject to generate image data, and outputs the generated image data to the image processing unit 927.
- the image processing unit 927 encodes the image data input from the camera unit 926 and stores the encoded stream in the storage medium of the storage / playback unit 929.
- the demultiplexing unit 928 multiplexes the video stream encoded by the image processing unit 927 and the audio stream input from the audio codec 923, and the multiplexed stream is the communication unit 922. Output to.
- the communication unit 922 encodes and modulates the stream and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
- the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
- These transmission signal and reception signal may include an encoded bit stream.
- the communication unit 922 demodulates and decodes the received signal to restore the stream, and outputs the restored stream to the demultiplexing unit 928.
- the demultiplexing unit 928 separates the video stream and the audio stream from the input stream, and outputs the video stream to the image processing unit 927 and the audio stream to the audio codec 923.
- the image processing unit 927 decodes the video stream and generates video data.
- the video data is supplied to the display unit 930, and a series of images is displayed on the display unit 930.
- the audio codec 923 decompresses the audio stream and performs D / A conversion to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
- the image processing unit 927 has the functions of the image encoding device and the image decoding device according to the above-described embodiment. Accordingly, the size of the transposition register used in the orthogonal transform process and the inverse orthogonal transform process can be suppressed when the mobile phone 920 encodes and decodes an image.
- FIG. 32 shows an example of a schematic configuration of a recording / reproducing apparatus to which the above-described embodiment is applied.
- the recording / reproducing device 940 encodes audio data and video data of a received broadcast program and records the encoded data on a recording medium.
- the recording / reproducing device 940 may encode audio data and video data acquired from another device and record them on a recording medium, for example.
- the recording / reproducing device 940 reproduces data recorded on the recording medium on a monitor and a speaker, for example, in accordance with a user instruction. At this time, the recording / reproducing device 940 decodes the audio data and the video data.
- the recording / reproducing apparatus 940 includes a tuner 941, an external interface 942, an encoder 943, an HDD (Hard Disk Drive) 944, a disk drive 945, a selector 946, a decoder 947, an OSD (On-Screen Display) 948, a control unit 949, and a user interface. 950.
- Tuner 941 extracts a signal of a desired channel from a broadcast signal received via an antenna (not shown), and demodulates the extracted signal. Then, the tuner 941 outputs the encoded bit stream obtained by the demodulation to the selector 946. That is, the tuner 941 has a role as a transmission unit in the recording / reproducing apparatus 940.
- the external interface 942 is an interface for connecting the recording / reproducing apparatus 940 to an external device or a network.
- the external interface 942 may be, for example, an IEEE1394 interface, a network interface, a USB interface, or a flash memory interface.
- video data and audio data received via the external interface 942 are input to the encoder 943. That is, the external interface 942 serves as a transmission unit in the recording / reproducing device 940.
- the encoder 943 encodes video data and audio data when the video data and audio data input from the external interface 942 are not encoded. Then, the encoder 943 outputs the encoded bit stream to the selector 946.
- the HDD 944 records an encoded bit stream in which content data such as video and audio are compressed, various programs, and other data on an internal hard disk. Further, the HDD 944 reads out these data from the hard disk when reproducing video and audio.
- the disk drive 945 performs recording and reading of data to and from the mounted recording medium.
- the recording medium mounted on the disk drive 945 is, for example, a DVD disk (DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD + R, DVD + RW, etc.) or a Blu-ray (registered trademark) disk. It may be. *
- the selector 946 selects an encoded bit stream input from the tuner 941 or the encoder 943 when recording video and audio, and outputs the selected encoded bit stream to the HDD 944 or the disk drive 945. In addition, the selector 946 outputs the encoded bit stream input from the HDD 944 or the disk drive 945 to the decoder 947 during video and audio reproduction.
- the decoder 947 decodes the encoded bit stream and generates video data and audio data. Then, the decoder 947 outputs the generated video data to the OSD 948. The decoder 904 outputs the generated audio data to an external speaker.
- OSD 948 reproduces the video data input from the decoder 947 and displays the video. Further, the OSD 948 may superimpose a GUI image such as a menu, a button, or a cursor on the video to be displayed.
- the control unit 949 includes a processor such as a CPU and memories such as a RAM and a ROM.
- the memory stores a program executed by the CPU, program data, and the like.
- the program stored in the memory is read and executed by the CPU when the recording / reproducing apparatus 940 is activated, for example.
- the CPU controls the operation of the recording / reproducing apparatus 940 in accordance with an operation signal input from the user interface 950, for example, by executing the program.
- the user interface 950 is connected to the control unit 949.
- the user interface 950 includes, for example, buttons and switches for the user to operate the recording / reproducing device 940, a remote control signal receiving unit, and the like.
- the user interface 950 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 949.
- the encoder 943 has the function of the image encoding apparatus according to the above-described embodiment.
- the decoder 947 has the function of the image decoding apparatus according to the above-described embodiment. Accordingly, the size of the transposition register used in the orthogonal transform process and the inverse orthogonal transform process can be suppressed when encoding and decoding an image in the recording / reproducing apparatus 940.
- FIG. 33 illustrates an example of a schematic configuration of an imaging apparatus to which the above-described embodiment is applied.
- the imaging device 960 images a subject to generate an image, encodes the image data, and records it on a recording medium.
- the imaging device 960 includes an optical block 961, an imaging unit 962, a signal processing unit 963, an image processing unit 964, a display unit 965, an external interface 966, a memory 967, a media drive 968, an OSD 969, a control unit 970, a user interface 971, and a bus. 972.
- the optical block 961 is connected to the imaging unit 962.
- the imaging unit 962 is connected to the signal processing unit 963.
- the display unit 965 is connected to the image processing unit 964.
- the user interface 971 is connected to the control unit 970.
- the bus 972 connects the image processing unit 964, the external interface 966, the memory 967, the media drive 968, the OSD 969, and the control unit 970 to each other.
- the optical block 961 includes a focus lens and a diaphragm mechanism.
- the optical block 961 forms an optical image of the subject on the imaging surface of the imaging unit 962.
- the imaging unit 962 includes an image sensor such as a CCD (Charge-Coupled Device) or a CMOS (Complementary Metal-Oxide Semiconductor), and converts an optical image formed on the imaging surface into an image signal as an electrical signal by photoelectric conversion. Then, the imaging unit 962 outputs the image signal to the signal processing unit 963.
- CCD Charge-Coupled Device
- CMOS Complementary Metal-Oxide Semiconductor
- the signal processing unit 963 performs various camera signal processing such as knee correction, gamma correction, and color correction on the image signal input from the imaging unit 962.
- the signal processing unit 963 outputs the image data after the camera signal processing to the image processing unit 964.
- the image processing unit 964 encodes the image data input from the signal processing unit 963 and generates encoded data. Then, the image processing unit 964 outputs the generated encoded data to the external interface 966 or the media drive 968. The image processing unit 964 also decodes encoded data input from the external interface 966 or the media drive 968 to generate image data. Then, the image processing unit 964 outputs the generated image data to the display unit 965. In addition, the image processing unit 964 may display the image by outputting the image data input from the signal processing unit 963 to the display unit 965. Further, the image processing unit 964 may superimpose display data acquired from the OSD 969 on an image output to the display unit 965.
- the OSD 969 generates a GUI image such as a menu, a button, or a cursor, and outputs the generated image to the image processing unit 964.
- the external interface 966 is configured as a USB input / output terminal, for example.
- the external interface 966 connects the imaging device 960 and a printer, for example, when printing an image.
- a drive is connected to the external interface 966 as necessary.
- a removable medium such as a magnetic disk or an optical disk is attached to the drive, and a program read from the removable medium can be installed in the imaging device 960.
- the external interface 966 may be configured as a network interface connected to a network such as a LAN or the Internet. That is, the external interface 966 has a role as a transmission unit in the imaging device 960.
- the recording medium mounted on the media drive 968 may be any readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory.
- a recording medium may be fixedly mounted on the media drive 968, and a non-portable storage unit such as an internal hard disk drive or an SSD (Solid State Drive) may be configured.
- the control unit 970 includes a processor such as a CPU and memories such as a RAM and a ROM.
- the memory stores a program executed by the CPU, program data, and the like.
- the program stored in the memory is read and executed by the CPU when the imaging device 960 is activated, for example.
- the CPU controls the operation of the imaging device 960 according to an operation signal input from the user interface 971 by executing the program.
- the user interface 971 is connected to the control unit 970.
- the user interface 971 includes, for example, buttons and switches for the user to operate the imaging device 960.
- the user interface 971 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 970.
- the image processing unit 964 has the functions of the image encoding device and the image decoding device according to the above-described embodiment. Accordingly, the size of the transposition register used in the orthogonal transform process and the inverse orthogonal transform process can be suppressed when encoding and decoding an image in the imaging device 960.
- the method for transmitting such information is not limited to such an example.
- these pieces of information may be transmitted or recorded as separate data associated with the encoded bitstream without being multiplexed into the encoded bitstream.
- the term “associate” means that an image (which may be a part of an image such as a slice or a block) included in the bitstream and information corresponding to the image can be linked at the time of decoding. Means. That is, information may be transmitted on a transmission path different from that of the image (or bit stream).
- the information may be recorded on a recording medium (or another recording area of the same recording medium) different from the image (or bit stream). Furthermore, the information and the image (or the bit stream) may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part of the frame.
- this technique can also take the following structures.
- a horizontal one-dimensional inverse transform unit that performs inverse orthogonal transform in the horizontal direction on an orthogonal transform coefficient obtained by orthogonally transforming image data in the horizontal direction and the vertical direction;
- a bit width processing unit that performs clip processing so as to reduce the bit width for the coefficient obtained by performing the inverse orthogonal transform in the horizontal direction by the horizontal one-dimensional inverse transform unit;
- a storage unit that stores the coefficient with the bit width reduced by the clip processing performed by the bit width processing unit as intermediate data;
- An image processing apparatus comprising: a vertical one-dimensional inverse transform unit that reads the intermediate data stored in the storage unit line by line in the vertical direction and performs inverse orthogonal transform in the vertical direction.
- bit width processing unit clips the coefficient into a bit width corresponding to a frequency band of the coefficient.
- a subtracting unit that subtracts coefficients of the same frequency bands obtained by performing the inverse orthogonal transform in the horizontal direction by the horizontal one-dimensional inverse transform unit;
- the bit width processing unit performs a clipping process on the difference value obtained by the subtraction so as to reduce a bit width of the difference value
- the storage unit stores one coefficient used for the subtraction and the difference value whose bit width is reduced by the bit width processing unit as the intermediate data,
- the addition unit adds the one coefficient used for the subtraction read from the storage unit and the difference value with a reduced bit width, and restores the other coefficient used for the subtraction,
- the vertical one-dimensional inverse transform unit performs inverse orthogonal transform in the vertical direction on one coefficient used for the subtraction and the other coefficient used for the subtraction restored by the addition by the add
- the image processing apparatus according to (1).
- the addition unit reads the intermediate data stored in the storage unit line by line in the vertical direction, The image processing apparatus according to (3), wherein the storage unit stores one coefficient used for the subtraction in a line read last by the addition unit.
- the bit width processing unit clips the difference value into a bit width corresponding to a frequency band of the difference value.
- An average value calculation unit that calculates an average value of coefficients between the same frequency bands obtained by performing the inverse orthogonal transform in the horizontal direction by the horizontal one-dimensional inverse transform unit
- the subtracting unit calculates a difference value between a coefficient obtained by performing the inverse orthogonal transform in the horizontal direction by the horizontal one-dimensional inverse transform unit and the average value calculated by the average value calculation unit
- the bit width processing unit performs a clipping process on the difference value calculated by the subtraction unit so as to reduce a bit width of the difference value
- the storage unit stores the average value and the difference value whose bit width is reduced by the bit width processing unit as the intermediate data
- the addition unit adds the difference value and the average value read from the storage unit to restore the coefficient used for the subtraction,
- the image processing apparatus according to (3), wherein the vertical one-dimensional inverse transform unit performs inverse orthogonal transform in a vertical direction on the coefficient used for the subtraction.
- bit width processing unit clips the difference value to a predetermined bit width.
- bit width processing unit clips the difference value into a bit width corresponding to a frequency band of the difference value.
- the horizontal one-dimensional inverse transform unit and the vertical one-dimensional inverse transform unit perform inverse orthogonal transform using different transform methods.
- a horizontal one-dimensional inverse transform unit performs an inverse orthogonal transform in the horizontal direction on the orthogonal transform coefficient obtained by orthogonally transforming the image data in the horizontal direction and the vertical direction;
- the bit width processing unit performs clip processing so as to reduce the bit width for the coefficient obtained by performing the inverse orthogonal transform in the horizontal direction,
- a storage unit stores the coefficient whose bit width has been reduced by performing the clipping process as intermediate data,
- An image processing method in which a vertical one-dimensional inverse transform unit reads the stored intermediate data line by line in the vertical direction and performs inverse orthogonal transform in the vertical direction.
- a horizontal one-dimensional conversion unit that performs horizontal orthogonal transformation on image data
- a bit width processing unit that performs clip processing so as to reduce the bit width for the coefficient obtained by performing the orthogonal transformation in the horizontal direction by the horizontal one-dimensional conversion unit
- a storage unit that stores the coefficient with the bit width reduced by the clip processing performed by the bit width processing unit as intermediate data
- An image processing apparatus comprising: a vertical one-dimensional conversion unit that reads the intermediate data stored in the storage unit line by line in the vertical direction and performs orthogonal transformation in the vertical direction.
- the bit width processing unit clips the coefficient into a bit width corresponding to a frequency band of the coefficient.
- a subtraction unit that subtracts coefficients of the same frequency bands obtained by performing the orthogonal transformation in the horizontal direction by the horizontal one-dimensional conversion unit;
- An addition unit for adding the difference value obtained by the subtraction by the subtraction unit and one coefficient used for the subtraction;
- the bit width processing unit performs a clipping process on the difference value obtained by the subtraction so as to reduce a bit width of the difference value,
- the storage unit stores one coefficient used for the subtraction and the difference value whose bit width is reduced by the bit width processing unit as the intermediate data,
- the addition unit adds the one coefficient used for the subtraction read from the storage unit and the difference value with a reduced bit width, and restores the other coefficient used for the subtraction,
- the vertical one-dimensional conversion unit performs orthogonal transformation in the vertical direction on one coefficient used for the subtraction and the other coefficient used for the subtraction restored by the addition by the addition unit.
- the image processing apparatus according to (12).
- the bit width processing unit clips the difference value into a bit width corresponding to a frequency band of the difference value.
- An image processing method for an image processing apparatus The horizontal one-dimensional conversion unit performs horizontal orthogonal transformation on the image data, The bit width processing unit performs clip processing to reduce the bit width for the coefficient obtained by performing the orthogonal transformation in the horizontal direction, A storage unit stores the coefficient whose bit width has been reduced by performing the clipping process as intermediate data, An image processing method in which a vertical one-dimensional conversion unit reads the stored intermediate data line by line in the vertical direction and performs orthogonal transformation in the vertical direction.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本技術は、直交変換処理および逆直交変換処理のメモリ使用量を低減させることができるようにする画像処理装置および方法に関する。 画像データが水平方向および垂直方向に直交変換された直交変換係数に対して、水平方向の逆直交変換を行う水平1次元逆変換部と、前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行うビット幅処理部と、前記ビット幅処理部により前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶する記憶部と、前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の逆直交変換を行う垂直1次元逆変換部とを備える本開示は画像処理装置に適用することができる。
Description
本開示は、画像処理装置および方法に関し、特に、直交変換処理および逆直交変換処理のメモリ使用量を低減させることができるようにした画像処理装置および方法、並びに、プログラムに関する。
近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するMPEG(Moving Picture Experts Group)などの方式に準拠した装置が、放送局などの情報配信、及び一般家庭における情報受信の双方において普及しつつある。
特に、MPEG2(ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission) 13818-2)は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準で、プロフェッショナル用途及びコンシューマ用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4~8Mbps、1920×1088画素を持つ高解像度の飛び越し走査画像であれば18~22Mbpsの符号量(ビットレート)を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
MPEG2は主として放送用に適合する高画質符号化を対象としていたが、MPEG1より低い符号量(ビットレート)、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してMPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496-2としてその規格が国際標準に承認された。
更に、近年、当初テレビ会議用の画像符号化を目的として、H.26L (ITU-T(International Telecommunication Union Telecommunication Standardization Sector) Q6/16 VCEG(Video Coding Expert Group))という標準の規格化が進んでいる。H.26LはMPEG2やMPEG4といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。また、現在、MPEG4の活動の一環として、このH.26Lをベースに、H.26Lではサポートされない機能をも取り入れ、より高い符号化効率を実現する標準化がJoint Model of Enhanced-Compression Video Codingとして行われている。
標準化のスケジュールとしては、2003年3月にはH.264及びMPEG-4 Part10 (Advanced Video Coding、以下AVCと記す)という名の元に国際標準となった。
しかしながら、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない恐れがあった。
そこで、現在、AVCより更なる符号化効率の向上を目的として、ITU-Tと、ISO/IECの共同の標準化団体であるJCTVC(Joint Collaboration Team - Video Coding)により、HEVC(High Efficiency Video Coding)と呼ばれる符号化方式の標準化が進められている(例えば、非特許文献1参照)。
このHEVC符号化方式においては、AVCにおけるマクロブロックと同様の処理単位としてコーディングユニット(CU(Coding Unit))が定義されている。このCUは、AVCのマクロブロックのようにサイズが16×16画素に固定されず、それぞれのシーケンスにおいて、画像圧縮情報中において指定される。
ところで、これらの符号化方式においては、画像データに対して直交変換および逆直交変換が行われる。直交変換および逆直交変換は、いずれも、水平方向および垂直方向(2次元)に行われる。例えば、直交変換の場合、まず、水平方向に1次元の直交変換が行われ、その結果(中間データと称する)が転置レジスタを用いて転置され、次に、垂直方向に1次元の直交変換が行われる。逆直交変換の場合も同様である。つまり、これらの処理には、中間データを一時的に保持するために、記憶領域(転置レジスタ)が必要になる。
AVC等の直交変換および逆直交変換(Iverse Transform)の処理単位のサイズが最大8×8画素であるのに対し、HEVCの直交変換および逆直交変換の処理単位のサイズは、例えば、16×16画素、32×32画素、または64×64画素まで拡張される。
しかしながら、このように直交変換および逆直交変換の処理単位となるサイズが大きくなると、中間データを保持するための転置レジスタ(記憶領域)の容量も大幅に増大してしまう恐れがあった。
非特許文献1によると、必要となる転置レジスタのサイズは、例えば、16×16画素ブロックの場合、(21×256)bit=5,376bitとなり、32×32画素ブロックの場合(25×1024)bit=25,600bitとなる。それぞれAVCの8×8画素ブロックの場合の5.25倍と25倍である。
そこで、中間データのビット幅を一律に16bitに規定することが提案されている(例えば、非特許文献2および比特許文献3参照)。この方法の場合、必要となる転置レジスタのサイズは16×16画素ブロックの場合(16×256)bit=4,096bitとなり、32×32画素ブロックの場合(16×1024)bit=16,384bitとなる。この場合でも、それぞれAVCの8×8画素ブロックの場合の4倍と16倍の記憶領域が必要になる。
なお、直交変換・逆直交変換には、離散コサイン変換(DCT(Discrete Cosine Transform))、離散サイン変換(DST(Discrete Sine Transform))、カルーネン・レーベ変換等、様々な方式が存在する。また、例えばDCTとDSTのように、水平方向と垂直方向とで互いに異なる方式の直交変換・逆直交変換を行う方法も考えられている(例えば、非特許文献4参照)。
Thomas Wiegand, Woo-Jin Han, Benjamin Bross, Jens-Rainer Ohm, Gary J. Sullivan, "Working Draft 1 of High-Efficiency Video Coding ", JCTVC-C403, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG113rd Meeting: Guangzhou, CN, 7-15 October, 2010
A. Fuldseth, G. Bjoentegaard, "Unified transform design for HEVC with 16 bit intermediate data representation", JCTVC-D224, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG114th Meeting: Daegu, KR, 20-28 January, 2011
Kiran Misra, Louis Kerofsky, Andrew Segall, "On transform dynamic range", JCTVC-D071, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG114th Meeting: Daegu, KR, 20-28 January, 2011
Ankur Saxena, Felix C. Fernandes, "CE7: Mode-dependent DCT/DST without 4*4 full matrix multiplication for intra prediction", JCTVC-E125, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG115th Meeting: Geneva, CH, 16-23 March, 2011
しかしながら、さらなる転置レジスタの増大の抑制が求められている。
本開示は、このような状況に鑑みてなされたものであり、直交変換処理および逆直交変換処理の処理単位が増大することによるメモリ使用量の増大を抑制することができるようにすることを目的とする。
本開示の一側面は、画像データが水平方向および垂直方向に直交変換された直交変換係数に対して、水平方向の逆直交変換を行う水平1次元逆変換部と、前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行うビット幅処理部と、前記ビット幅処理部により前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶する記憶部と、前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の逆直交変換を行う垂直1次元逆変換部とを備える画像処理装置である。
前記ビット幅処理部は、前記係数を、前記係数の周波数帯域に応じたビット幅にクリップ処理することができる。
前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた、互いに同一の周波数帯域同士の係数を減算する減算部と、前記減算部による減算により得られた差分値と、前記減算に用いた一方の係数とを加算する加算部とをさらに備え、前記ビット幅処理部は、前記減算により得られた前記差分値に対して、前記差分値のビット幅を低減させるようにクリップ処理し、前記記憶部は、前記減算に用いられた一方の係数と、前記ビット幅処理部によりビット幅が低減された前記差分値を、前記中間データとして記憶し、前記加算部は、前記記憶部から読み出した、前記減算に用いられた一方の係数と、ビット幅が低減された前記差分値を加算して、前記減算に用いられた他方の係数を復元し、前記垂直1次元逆変換部は、前記減算に用いられた一方の係数、および、前記加算部による加算により復元された、前記減算に用いられた他方の係数に対して、垂直方向の逆直交変換を行うことができる。
前記加算部は、前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、前記記憶部は、前記減算に用いられた一方の係数を、前記加算部により最後に読み出されるラインに記憶することができる。
前記ビット幅処理部は、前記差分値を、所定のビット幅にクリップ処理することができる。
前記ビット幅処理部は、前記差分値を、前記差分値の周波数帯域に応じたビット幅にクリップ処理することができる。
前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた、互いに同一の周波数帯域同士の係数の平均値を算出する平均値算出部をさらに備え、前記減算部は、前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた係数と、前記平均値算出部により算出された前記平均値との差分値を算出し、前記ビット幅処理部は、前記減算部により算出された前記差分値に対して、前記差分値のビット幅を低減させるようにクリップ処理し、前記記憶部は、前記平均値と、前記ビット幅処理部によりビット幅が低減された前記差分値とを、前記中間データとして記憶し、前記加算部は、前記記憶部から読み出した、前記差分値と前記平均値とを加算して、前記減算に用いられた係数を復元し、前記垂直1次元逆変換部は、前記減算に用いられた係数に対して、垂直方向の逆直交変換を行うことができる。
前記ビット幅処理部は、前記差分値を、所定のビット幅にクリップ処理することができる。
前記ビット幅処理部は、前記差分値を、前記差分値の周波数帯域に応じたビット幅にクリップ処理することができる。
前記水平1次元逆変換部と前記垂直1次元逆変換部は、互いに異なる変換方式で逆直交変換を行うことができる。
本開示の一側面は、また、画像処理装置の画像処理方法であって、水平1次元逆変換部が、画像データが水平方向および垂直方向に直交変換された直交変換係数に対して、水平方向の逆直交変換を行い、ビット幅処理部が、前記水平方向の逆直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行い、記憶部が、前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶し、垂直1次元逆変換部が、記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の逆直交変換を行う画像処理方法である。
本開示の他の側面は、画像データに対して、水平方向の直交変換を行う水平1次元変換部と、前記水平1次元変換部により前記水平方向の直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行うビット幅処理部と、前記ビット幅処理部により前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶する記憶部と、前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の直交変換を行う垂直1次元変換部とを備える画像処理装置である。
前記ビット幅処理部は、前記係数を、前記係数の周波数帯域に応じたビット幅にクリップ処理することができる。
前記水平1次元変換部により前記水平方向の直交変換が行われて得られた、互いに同一の周波数帯域同士の係数を減算する減算部と、前記減算部による減算により得られた差分値と、前記減算に用いた一方の係数とを加算する加算部とをさらに備え、前記ビット幅処理部は、前記減算により得られた前記差分値に対して、前記差分値のビット幅を低減させるようにクリップ処理し、前記記憶部は、前記減算に用いられた一方の係数と、前記ビット幅処理部によりビット幅が低減された前記差分値を、前記中間データとして記憶し、前記加算部は、前記記憶部から読み出した、前記減算に用いられた一方の係数と、ビット幅が低減された前記差分値を加算して、前記減算に用いられた他方の係数を復元し、前記垂直1次元変換部は、前記減算に用いられた一方の係数、および、前記加算部による加算により復元された、前記減算に用いられた他方の係数に対して、垂直方向の直交変換を行うことができる。
前記ビット幅処理部は、前記差分値を、所定のビット幅にクリップ処理することができる。
前記ビット幅処理部は、前記差分値を、前記差分値の周波数帯域に応じたビット幅にクリップ処理することができる。
前記水平1次元変換部と前記垂直1次元変換部は、互いに異なる変換方式で直交変換を行うことができる。
本開示の他の側面は、また、画像処理装置の画像処理方法であって、水平1次元変換部が、画像データに対して、水平方向の直交変換を行い、ビット幅処理部が、前記水平方向の直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行い、記憶部が、前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶し、垂直1次元変換部が、記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の直交変換を行う画像処理方法である。
本開示の一側面においては、画像データが水平方向および垂直方向に直交変換された直交変換係数に対して、水平方向の逆直交変換が行われ、水平方向の逆直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理が行われ、クリップ処理が行われて、ビット幅が低減された係数が、中間データとして記憶され、記憶される中間データが垂直方向に1ラインずつ読み出され、垂直方向の逆直交変換が行われる。
本開示の他の側面においては、画像データに対して、水平方向の直交変換が行われ、水平方向の直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理が行われ、クリップ処理が行われて、ビット幅が低減された係数が、中間データとして記憶され、記憶される中間データが垂直方向に1ラインずつ読み出され、垂直方向の直交変換が行われる。
本開示によれば、画像を処理することができる。特に、直交変換処理および逆直交変換処理のメモリ使用量の増大を抑制することができる。
以下、発明を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像復号装置)
2.第2の実施の形態(逆直交変換部)
3.第3の実施の形態(逆直交変換部)
4.第4の実施の形態(画像符号化装置)
5.第5の実施の形態(直交変換部)
6.第6の実施の形態(パーソナルコンピュータ)
7.第7の実施の形態(テレビジョン受像機)
8.第8の実施の形態(携帯電話機)
9.第9の実施の形態(記録再生装置)
10.第10の実施の形態(撮像装置)
1.第1の実施の形態(画像復号装置)
2.第2の実施の形態(逆直交変換部)
3.第3の実施の形態(逆直交変換部)
4.第4の実施の形態(画像符号化装置)
5.第5の実施の形態(直交変換部)
6.第6の実施の形態(パーソナルコンピュータ)
7.第7の実施の形態(テレビジョン受像機)
8.第8の実施の形態(携帯電話機)
9.第9の実施の形態(記録再生装置)
10.第10の実施の形態(撮像装置)
<1.第1の実施の形態>
[画像復号装置]
図1は、画像処理装置の一実施の形態である画像復号装置の主な構成例を示すブロック図である。
[画像復号装置]
図1は、画像処理装置の一実施の形態である画像復号装置の主な構成例を示すブロック図である。
図1に示される画像復号装置100は、H.264及びMPEG(Moving Picture Experts Group)4 Part10(AVC(Advanced Video Coding))やHEVC(High Efficiency Video Coding)等の符号化方式のように、画像符号化装置において予測処理を用いて画像データが符号化された符号化データを、取得して復号し、復号画像を得る装置である。
図1に示されるように画像復号装置100は、蓄積バッファ101、可逆復号部102、逆量子化部103、逆直交変換部104、演算部105、ループフィルタ106、画面並べ替えバッファ107、およびD/A変換部108を有する。また、画像復号装置100は、フレームメモリ109、選択部110、イントラ予測部111、動き予測・補償部112、および選択部113を有する。
蓄積バッファ101は伝送されてきた符号化データを蓄積し、所定のタイミングにおいてその符号化データを可逆復号部102に供給する。可逆復号部102は、蓄積バッファ101より供給された、画像符号化装置の可逆符号化部により符号化された情報を、その可逆符号化部の符号化方式に対応する方式で復号する。可逆復号部102は、復号して得られた差分画像の量子化された係数データを、逆量子化部103に供給する。
また、可逆復号部102は、最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定し、その最適な予測モードに関する情報を、イントラ予測部111および動き予測・補償部112の内、選択されたと判定したモードの方に供給する。例えば、画像符号化装置において最適な予測モードとしてイントラ予測モードが選択された場合、そのイントラ予測モードに関する情報がイントラ予測部111に供給される。また、例えば、画像符号化装置において最適な予測モードとしてインター予測モードが選択された場合、そのインター予測モードに関する情報が動き予測・補償部112に供給される。
逆量子化部103は、可逆復号部102により復号されて得られた量子化された係数データを、画像符号化装置の量子化部の量子化方式に対応する方式で逆量子化し、得られた係数データを逆直交変換部104に供給する。
逆直交変換部104は、画像符号化装置の直交変換部の直交変換方式に対応する方式で逆量子化部103から供給される係数データを逆直交変換する。逆直交変換部104は、この逆直交変換処理により、画像符号化装置において直交変換される前の残差データに対応する復号残差データを得る。なお、詳細については後述するが、逆直交変換部104は、転置レジスタとして使用する記憶領域の容量を抑制するように逆直交変換処理を行う。
逆直交変換されて得られた復号残差データは、演算部105に供給される。また、演算部105には、選択部113を介して、イントラ予測部111若しくは動き予測・補償部112から予測画像が供給される。
演算部105は、その復号残差データと予測画像とを加算し、画像符号化装置の演算部により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部105は、その復号画像データをループフィルタ106に供給する。
ループフィルタ106は、供給された復号画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜施し、それを画面並べ替えバッファ107に供給する。
ループフィルタ106は、デブロックフィルタや適応ループフィルタ等を含み、演算部105から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ106は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ106は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ106が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ106が、画像符号化装置から供給されたフィルタ係数を用いてフィルタ処理を行うようにしてもよい。
ループフィルタ106は、フィルタ処理結果(フィルタ処理後の復号画像)を画面並べ替えバッファ107およびフレームメモリ109に供給する。なお、演算部105から出力される復号画像は、ループフィルタ106を介さずに画面並べ替えバッファ107やフレームメモリ109に供給することができる。つまり、ループフィルタ106によるフィルタ処理は省略することができる。
画面並べ替えバッファ107は、画像の並べ替えを行う。すなわち、画像符号化装置の画面並べ替えバッファにより符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部108は、画面並べ替えバッファ107から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
フレームメモリ109は、供給される復号画像を記憶し、所定のタイミングにおいて、若しくは、イントラ予測部111や動き予測・補償部112等の外部の要求に基づいて、記憶している復号画像を参照画像として、選択部110に供給する。
選択部110は、フレームメモリ109から供給される参照画像の供給先を選択する。選択部110は、イントラ符号化された画像を復号する場合、フレームメモリ109から供給される参照画像をイントラ予測部111に供給する。また、選択部110は、インター符号化された画像を復号する場合、フレームメモリ109から供給される参照画像を動き予測・補償部112に供給する。
イントラ予測部111には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部102から適宜供給される。イントラ予測部111は、画像符号化装置のイントラ予測部において用いられたイントラ予測モードで、フレームメモリ109から取得した参照画像を用いてイントラ予測を行い、予測画像を生成する。イントラ予測部111は、生成した予測画像を選択部113に供給する。
動き予測・補償部112は、ヘッダ情報を復号して得られた情報(最適予測モード情報等)を可逆復号部102から取得する。
動き予測・補償部112は、画像符号化装置の動き予測・補償部において用いられたインター予測モードで、フレームメモリ109から取得した参照画像を用いてインター予測を行い、予測画像を生成する。動き予測・補償部112は、生成した予測画像を選択部113に供給する。
選択部113は、イントラ予測部111若しくは動き予測・補償部112から供給される予測画像を演算部105に供給し、復号残差データに加算させる。
[マクロブロック]
AVCにおいては、図2に示されるように、16×16画素により構成される1つのマクロブロックを、16×16、16×8、8×16若しくは8×8のいずれかのパーティション(サブマクロブロック)に分割し、サブマクロブロック毎に、互いに独立した動きベクトル情報を持つことが可能である。更に、8×8パーティションに関しては、図2に示されるとおり、8×8、8×4、4×8、4×4のいずれかのサブマクロブロックに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。
AVCにおいては、図2に示されるように、16×16画素により構成される1つのマクロブロックを、16×16、16×8、8×16若しくは8×8のいずれかのパーティション(サブマクロブロック)に分割し、サブマクロブロック毎に、互いに独立した動きベクトル情報を持つことが可能である。更に、8×8パーティションに関しては、図2に示されるとおり、8×8、8×4、4×8、4×4のいずれかのサブマクロブロックに分割し、それぞれ独立した動きベクトル情報を持つことが可能である。
このようなAVC、若しくは、AVCと同様の処理単位で各処理を行う符号化方式の場合、直交変換処理は、4×4画素のサブマクロブロック、若しくは、8×8画素のサブマクロブロックを処理単位として行われる。つまり、図1の逆直交変換部104は、4×4画素のサブマクロブロック、若しくは、8×8画素のサブマクロブロックを処理単位として逆直交変換処理を行う。
[コーディングユニット]
ところで、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない。
ところで、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない。
そこで、HEVCにおいては、図3に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、AVCにおけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図3の例では、LCUの大きさが128であり、最大階層深度が5となる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVCにおいては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
以上のHEVCのように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVCにおけるマクロブロックはLCUに相当すると考えることができる。ただし、CUは図3に示されるように階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVCのマクロブロックより大きく設定されることが一般的である。
このようなHEVC、若しくは、HEVCと同様の処理単位で各処理を行う符号化方式の場合、直交変換処理の処理単位として、4×4画素、8×8画素、に加え、16×16画素や32×32画素も適用される。つまり、図1の逆直交変換部104は、16×16画素のTU、若しくは、32×32画素のTUを処理単位として逆直交変換処理を行うこともできる。
なお、以下において、上述したマクロブロック、サブマクロブロック、CU、PU、およびTU等は、単に「領域」と称する場合もある。
[逆直交変換部]
図4は、図1の逆直交変換部104の主な構成例を示すブロック図である。
図4は、図1の逆直交変換部104の主な構成例を示すブロック図である。
図4に示されるように、逆直交変換部104は、水平1次元逆変換部131、ビット幅処理部132、転置レジスタ133、および垂直1次元逆変換部134を有する。水平1次元逆変換部131、転置レジスタ133、および垂直1次元逆変換部134は、AVCやHEVC等の符号化方式で復号処理を行う画像復号装置の逆直交変換部も有する構成であり、逆直交変換部104は、その構成に加え、ビット幅処理部132を有する。
水平1次元逆変換部131は、逆量子化部103から業給される直交変換係数データ(以下、単に係数データとも称する)を、水平方向に逆直交変換する。水平1次元逆変換部131には、例えば16×16画素や32×32画素等のように、所定の大きさの領域毎に直交変換された係数データ群が供給される。つまり、16×16や32×32の係数データが供給される。水平1次元逆変換部131は、それらの係数データを、垂直方向の上から下に向かう順に1行ずつ水平方向に逆直交変換する。水平1次元逆変換部131は、逆直交変換して得られる中間データ(垂直方向に直交変換された係数データ)をビット幅処理部132に供給する。
ビット幅処理部132は、供給された各中間データに対してクリップ処理を行い、各中間データのビット幅を、その周波数帯域に応じた度合いで低減させる。ここで例えばnビットへのクリップ処理とは、-2n-1より小さい値は-2n-1にとし、2n-1-1より大きい値は2n-1-1とする処理である。ビット幅処理部132は、ビット幅を調整した各中間データを転置レジスタ133に供給し、保持させる。
転置レジスタ133は、供給される各中間データを、図4に示されるように、元の直交変換係数データの並び順に対応するように整列して記憶する。つまり、転置レジスタ133は、各行の各画素の中間データが水平方向に並び、各行が互いに垂直方向に並ぶように記憶する。したがって、例えば32×32の直交変換係数データから生成された中間データは、32×32×(各画素のビット幅)の記憶領域に記憶される。
垂直1次元逆変換部134は、この転置レジスタ133から、中間データを列毎に読み出して、1次元の逆直交変換処理を行う。つまり、垂直1次元逆変換部134は、転置レジスタ133に記憶される中間データを、垂直方向の並び毎に読み出す。すなわち、垂直1次元逆変換部134は、転置レジスタ133からの中間データの読み出しを、その中間データの書き込み順と異なる順で読み出すことにより、中間データの並びを水平方向から垂直方向に転置させる。垂直1次元逆変換部134は、このように列毎に読み出した中間データを、その列毎に逆直交変換を行うことにより、垂直方向の逆直交変換を実現する。
垂直1次元逆変換部134によって中間データが垂直方向に逆直交変換されることにより、直交変換係数データが2次元(水平方向および垂直方向)に逆直交変換された復号残差データが得られる。垂直1次元逆変換部134は、その復号残差データを演算部105に供給する。
以上のような処理において、転置レジスタ133に記憶される中間データは、例えば図5に示されるように、垂直方向に周波数成分毎に整列することになる。つまり、上から下に向かって、低周波成分から高周波成分が並ぶ。より低周波の成分は、より上に位置し、より高周波の成分は、より下に位置する。各行の水平方向には、互いに同じ周波数帯域の成分が並ぶ。
例えば、水平1次元逆変換部131により逆直交変換されて得られる中間データのビット幅が、図6のAに示されるように、16ビットであるとする。処理単位の領域を32×32とすると、データ量は、(32×32)×16bit=16,384bitである。
ビット幅処理部132は、例えば、図6のBに示されるように、各中間データのビット幅を、その周波数成分毎に調整する。より具体的には、ビット幅処理部132は、低周波成分ほどビット幅が長く、高周波成分ほどビット幅が狭くなるように、各中間データのビット幅を抑制する。例えば、図6のBの場合、ビット幅処理部132は、1番上の1行(1水平ライン)の中間データのビット幅を16ビットとし、上から2番目乃至4番目の3行(3水平ライン)の中間データのビット幅を14ビットとする。また、例えば、図6のBの場合、ビット幅処理部132は、上から5番目乃至16番目の12行(12水平ライン)の中間データのビット幅を12ビットとし、上から17番目乃至32番目の16行(16水平ライン)の中間データのビット幅を9ビットとする。
このようにすることにより、データ量は、(32×1)×16bit+(32×3)×14bit+(32×12)×12bit+(32×16)×9bit=11,072bitとなる。したがって、上述した全ての中間データのビット幅を16ビットとする場合に比べて、5,312bit分、転置レジスタ133としてのメモリ使用量を低減させることができる。
なお、直交変換係数データおよび中間データの各行のビット幅は、任意であり、図6のBに示される例以外であってもよい。例えば、1番上の行から4行(4水平ライン)ずつビット幅を低減させるようにしてもよい。また、例えば、上から16番目の行まで(16水平ライン)の中間データのビット幅を直交変換係数データと同一とし、残りの16行(16水平ライン)の各行のビット幅を直交変換係数データよりも低減させるようにしてもよい。
つまり、ビット幅処理部132は、中間データのビット幅を、その周波数帯域毎に制御する。例えば、ビット幅処理部132は、処理単位となる領域の画像データが2次元直交変換された直交変換係数データが水平方向に1次元逆直交変換されて得られた水平ライン毎の中間データのビット幅を、その周波数帯域に応じて低減させる。
例えば、ビット幅処理部132は、各水平ラインの中間データのビット幅を、より高周波の成分ほど、より強く低減させる。一般的に、画像は、より低周波成分ほど絶対値が大きく、より高周波成分ほど絶対値が小さい。したがって、このようにビット幅を制御することにより、ビット幅処理部132は、画質劣化を抑制しながら、逆直交変換処理において使用される転置レジスタ133のサイズを抑制することができる。
例えば、ビット幅処理部132は、直交変換された画像データの周波数特性に応じて、各水平ラインの中間データのビット幅を低減させる。このようにビット幅を制御することにより、ビット幅処理部132は、画質劣化をより抑制することができる。
なお、転置レジスタ133のサイズを低減させることにより、画像復号処理に必要なメモリ容量を低減させることができ、画像復号装置100の製造コストを低減させることができる。
なお、ビット幅処理部132のクリップ処理により、中間データが誤差を含むようになる場合も考えられるが、クリップするビット幅を十分に確保することにより、この誤差の影響を低減させることができる。換言するに、画像復号装置100は、クリップするビット幅の設定によって、画質劣化の大きさと転置レジスタ133のサイズとを制御することができる。したがって、例えば、画像の内容に応じて、これらが最善となるように、クリップするビット幅を決定するのが望ましい。
[復号処理の流れ]
次に、以上のような画像復号装置100により実行される各処理の流れについて説明する。最初に、図7のフローチャートを参照して、復号処理の流れの例を説明する。
次に、以上のような画像復号装置100により実行される各処理の流れについて説明する。最初に、図7のフローチャートを参照して、復号処理の流れの例を説明する。
復号処理が開始されると、ステップS101において、蓄積バッファ101は、伝送されてきたビットストリームを蓄積する。ステップS102において、可逆復号部102は、蓄積バッファ101から供給されるビットストリームを復号する。すなわち、画像符号化装置の可逆符号化部により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。また、差分動き情報など、ビットストリームに含められた差分画像情報以外の各種情報も復号される。
ステップS103において、逆量子化部103は、ステップS102の処理により得られた、量子化された直交変換係数を逆量子化する。ステップS104において逆直交変換部104は、ステップS103において逆量子化された直交変換係数を逆直交変換する。
ステップS105において、イントラ予測部111若しくは動き予測・補償部112は、供給された情報を用いて予測処理を行う。ステップS106において、選択部113は、ステップS105において生成された予測画像を選択する。ステップS107において、演算部105は、ステップS104において逆直交変換されて得られた差分画像情報に、ステップS106において選択された予測画像を加算する。これにより復号画像が得られる。
ステップS108において、ループフィルタ106は、ステップS107において得られた復号画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS109において、画面並べ替えバッファ107は、ステップS108においてフィルタ処理された画像の並べ替えを行う。すなわち画像符号化装置の画面並べ替えバッファにより符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS110において、D/A変換部108は、ステップS109においてフレームの順序が並べ替えられた画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
ステップS111において、フレームメモリ109は、ステップS108においてフィルタ処理された画像を記憶する。この画像は、ステップS105において、参照画像として、予測画像の生成に使用される。
ステップS111の処理が終了すると、復号処理が終了される。
[逆直交変換処理の流れ]
次に、図8のフローチャートを参照して、図7のステップS104において実行される逆直交変換処理の流れの例を説明する。
次に、図8のフローチャートを参照して、図7のステップS104において実行される逆直交変換処理の流れの例を説明する。
ステップS131において、水平1次元逆変換部131は、逆量子化された、処理対象の1水平ラインの直交変換係数データに対して、水平方向に1次元逆直交変換を行う。ステップS132において、ビット幅処理部132は、ステップS131の処理により得られた1水平ラインの中間データに対して、周波数帯域に応じたビット幅へのクリップ処理を行う。ステップS133において、ビット幅処理部132は、クリップ処理した1水平ラインの中間データを、転置レジスタ133の、前回書き込んだ1水平ラインの中間データの1行下に書き込む。
ステップS134において、水平1次元逆変換部131は、領域内の全ての水平ラインを処理したか否かを判定し、処理対象の領域において未処理の水平ラインが存在すると判定した場合、処理をステップS131に戻し、それ以降の処理を行う。
各水平ラインについて、ステップS131乃至ステップS134の処理を繰り返し、ステップS134において、処理対象領域内の全ての水平ラインを処理したと判定した場合、水平1次元逆変換部131は、処理をステップS135に進める。
ステップS135において、垂直1次元逆変換部134は、転置レジスタ133から中間データを1垂直ライン分読み出し、ステップS136において、読み出した中間データに対して、垂直方向に1次元逆直交変換を行う。
ステップS137において、垂直1次元逆変換部134は、領域内の全ての垂直ラインを処理したか否かを判定し、処理対象の領域において未処理の垂直ラインが存在すると判定した場合、処理をステップS135に戻し、それ以降の処理を行う。
各垂直ラインについて、ステップS135乃至ステップS137の処理を繰り返し、ステップS137において、処理対象領域内の全ての垂直ラインを処理したと判定した場合、垂直1次元逆変換部134は、処理をステップS138に進める。
ステップS138において、垂直1次元逆変換部134は、画像内の全ての領域を処理したか否かを判定し、未処理の領域が存在すると判定された場合、処理をステップS131に戻し、それ以降の処理を繰り返す。
以上のように、各領域について、ステップS131乃至ステップS138の処理が繰り返され、ステップS138において、全ての領域を処理したと判定された場合、垂直1次元逆変換部134は、逆直交変換処理を終了し、処理を図7に戻す。
このように各処理を行うことにより、画像復号装置100は、逆直交変換処理において得られる中間データのデータ量を低減させることができ、転置レジスタ133として使用される記憶領域のサイズを低減させることができる。これにより、画像復号処理に必要なメモリ容量を低減させることができ、画像復号装置100の製造コストを低減させることができる。
<2.第2の実施の形態>
[逆直交変換部]
なお、各中間データの値をより小さくするために、中間データは、所定の列(垂直ライン)を基準とし、その基準との差分値を転置レジスタ133に格納させるようにしてもよい。つまり、水平方向の1次元逆変換を行った結果について、互いに同一の周波数成分同士で差分をとり、その差分を中間データとするようにしてもよい。
[逆直交変換部]
なお、各中間データの値をより小さくするために、中間データは、所定の列(垂直ライン)を基準とし、その基準との差分値を転置レジスタ133に格納させるようにしてもよい。つまり、水平方向の1次元逆変換を行った結果について、互いに同一の周波数成分同士で差分をとり、その差分を中間データとするようにしてもよい。
図9は、逆直交変換部104の他の構成例を示すブロック図である。
図9に示される例の場合、逆直交変換部104は、図4を参照して説明した構成に加え、水平1次元逆変換部131とビット幅処理部132との間に減算部231を有し、転置レジスタ133と垂直1次元逆変換部134との間に加算部232を有する。
減算部231は、上述したように行列状(アレイ状)に配列される各係数の所定の1垂直ライン上の画素を基準画素とし、各水平ラインにおいて、その基準画素の係数と、それ以外の各画素の係数との差分値を求める。
ビット幅処理部132は、減算部231から出力される、その差分値に対してクリップ処理を行う。例えば、ビット幅処理部132は、供給された各差分値のビット幅を、所定のビット幅に低減し、転置レジスタ133に供給し、中間データとして記憶させる。また、ビット幅処理部132は、各基準画素の係数を、ビット幅の抑制を行わずに、そのまま転置レジスタ133に供給し、中間データとして記憶させる。
図10は、転置レジスタ133に記憶される中間データの例を示す図である。
図10の例の場合、逆直交変換処理の処理単位となる領域のサイズはn×n画素である。水平1次元逆変換部131の出力Aij(0≦i<n, 0≦j<n)のビット幅は、16ビットである。
図10の例の場合、逆直交変換処理の処理単位となる領域のサイズはn×n画素である。水平1次元逆変換部131の出力Aij(0≦i<n, 0≦j<n)のビット幅は、16ビットである。
減算部231は、このような出力対して、1番右の列(j=n-1)を基準画素のラインとし、その他の列(0≦j<n-1)について、基準画素の係数との差分値Δaijを以下の式(1)および式(2)のように算出する。
Δaij=ABS(Aij)-ABS(Ai(n-1)) ・・・(1)
Bij=MBS(Aij) ・・・(2)
Bij=MBS(Aij) ・・・(2)
なお、Bijは、Aij(0≦i<n, 0≦j<n-1)の符号ビットを示す。
つまり、減算部231は、基準画素以外の各画素について、その画素と同じ水平ライン上に位置する基準画素との差分値を求める。減算部231は、基準画素以外の画素(0≦i<n, 0≦j<n-1)について、このように算出した差分値Δaijと符号ビットBijを中間データとしてビット幅処理部132に供給する。また、減算部231は、基準画素のライン(0≦i<n, j=n-1)について、16ビットの係数Aij(0≦i<n, j=n-1)を中間データとしてビット幅処理部132に供給する。
図5を参照して説明したように、水平方向に1次元逆変換された係数は、水平方向に同一の周波数成分が並び、水平方向の相関が高くなる。減算部231は、この相関性の高さを利用して、上述したように水平方向に並ぶ係数同士で差分を取ることにより、各中間データの値を小さくする。このとき、符号付きで減算を行うと、値がかえって大きくなってしまう可能性があるため、減算部231は、式(1)に示されるように、各係数の絶対値同士の差分を算出する。このようにすることにより、減算部231は、中間データの値を確実により小さくすることができる。
つまり、Δaij(0≦i<n, 0≦j<n-1)は、Aij(0≦i<n, j=n-1)より少ないビット幅で表現することができる可能性が高い。そこで、ビット幅処理部132は、供給された各差分値に対して、元の16ビットよりも少ないビット幅でクリップ処理を行う。図10の例においては、12ビットでクリップ処理が行われている。ビット幅処理部132は、このように、差分値のビット幅を低減し、それを転置レジスタ133に供給して記憶させる。
このようにすることにより、逆直交変換部104は、全ての中間データを、ビット幅16ビットのままで記憶させる場合よりも、転置レジスタ133のサイズを低減させることができる。
なお、基準画素については、ビット幅処理部132は、係数Aij(0≦i<n, j=n-1)を中間データとして転置レジスタ133に伝送し、記憶させる。図10の例の場合、ビット幅処理部132は、画質劣化を抑制するために、この中間データAij(0≦i<n, j=n-1)を、ビット幅16ビットのまま転置レジスタ133に記憶させている(斜線部分)。画質劣化が許容されるのであれば、ビット幅処理部132において、この中間データAij(0≦i<n, j=n-1)も、ビット幅を狭くするようにクリップ処理するようにしてもよい。
例えば、図10の例において、n=32とし、Aij(0≦i<32, 0≦j<32)を16bitとする。Δaij(ただし、0≦i<32, 0≦j<32)を13bit(このレンジ超えるデータは13bitにクリップする)とすると、中間データのデータ量は、(31×32)×13bit+(31×32)×1bit(符号ビット)+(32×1)×16bit=14,400bitとなる。これにより全ての中間データのビット幅を16bitのままとする場合のデータ量(32×32)×16bit=16,384bitよりも2,000bitデータ量を削減することができる。すなわち、その分、転置レジスタ133のサイズを小さくすることができる。
加算部232は、転置レジスタ133から、各基準画素の中間データを読み出すとともに、処理対象の基準画素のライン以外の垂直ラインの中間データ(差分値)を読み出し、各差分値に対して、その差分値と同じ水平ライン上の基準画素の中間データを、以下の式(3)のように加算する。
ABS(Aij)=ABS(Ai(n-1))+Δaij (ただし、0≦i<n,0≦j<n-1) ・・・(3)
加算部232は、このように算出されたAijの絶対値に、符号ビットBijを追加する。これにより、基準画素のライン以外の垂直ラインの各中間データが復元される。加算部232は、このように復元した中間データを、垂直1次元逆変換部134に供給する。なお、基準画素については、中間データが差分値ではないので、加算部232は、転置レジスタ133から読み出した中間データAijを垂直1次元逆変換部134に供給する。
垂直1次元逆変換部134は、このように供給された中間データに対して垂直方向に1次元の逆直交変換処理を行い、直交変換処理される前の画像データを復元する。なお、中間データに対して上述したようにクリップ処理が行われる場合、そのクリップ処理により誤差が含まれる可能性がある。したがって、復元された画像データは、画像符号化装置において直交変換処理される前の画像データを必ずしも完全に再現することができない場合もあるが、その誤差による画質劣化は、大きくない。換言するに、この画質劣化が許容される程度以下となるように、クリップ処理するビット幅を定義すればよい。
なお、どの列を基準画素のラインとするようにしてもよいが、1番右の列を基準画素のラインとすることにより、実装上、転置レジスタ133の利用効率を向上させることができる。
例えば、図10の例に示されるように、中間データが転置レジスタ133に格納されると、加算部232は、この転置レジスタ133から、基準画素の中間データを読み出すとともに、基準画素のライン以外の垂直ラインについて、例えば、1番左の垂直ラインから順に1ラインずつ中間データを読み出す。このとき、基準画素の中間データは、基準画素のライン以外の全ての垂直ラインの差分値の加算演算に利用される。つまり、基準画素の中間データは、最後まで、転置レジスタ133に保持する必要がある。
ところで、基準画素のライン以外の垂直ラインの中間データを読み出した後は、その領域は使用可能となる。この使用可能の領域は、次の処理単位の領域の中間データの保持に利用される。つまり、左から右に向かう順に1垂直ラインずつ中間データが読み出されることにより、左から右に向かう順に1垂直ラインずつ、次の領域の中間データを保持させることができる。
したがって、最後まで保持する必要のある基準画素のラインを、1番右の垂直ラインとすることにより、次の領域の中間データを、左から右に向かう順に1垂直ラインずつ保持させることができる。すなわち、転置レジスタ133をより効率よく利用することができる。これに対して、例えば基準画素のラインを他の垂直ラインにすると、次に処理される領域の中間データを、その垂直ラインを飛ばして書き込むようにするか、若しくは、基準画素のラインが書き込み可能となるまで待機しなければならなくなるため、処理が複雑になったり、処理時間が不要に増大したりする恐れがある。
なお、図11に示されるように、次に処理される領域の中間データは、水平方向と垂直方向(つまり、行と列)が入れ替えて書き込まれる。つまり、転置レジスタ133から1垂直ライン分の中間データが読み出されると、その1垂直ラインが書き込み可能となるが、次に処理される領域の中間データは、現在処理対象の領域の場合と同様に、1水平ラインずつ供給される。
したがって、転置レジスタ133は、その1水平ライン分の中間データを、書き込み可能な1垂直ラインに格納する。このように書き込みを行うことにより、図10において転置レジスタ133に格納されている中間データの領域の、次の領域の中間データは、図11に示されるように、水平方向と垂直方向が転置されて格納される。したがって、基準画素のラインは、一番下の水平ラインとなる。
なお、書き込み方向が変わるので、読み出し順も水平方向と垂直方向が転置される。つまり、図11の例の場合、中間データは、水平ライン毎に読み出される。つまり、基準画素のライン以外の水平ラインは、上から下に向かう順に1水平ラインずつ読み出される。基準画素の中間データは、毎度読み出され、基準画素のライン以外の各水平ラインの加算演算に利用される。
なお、さらに次の領域の中間データは、再度、水平方向と垂直方向が転置されるので、図10のように格納される。
[逆直交変換処理の流れ]
図12のフローチャートを参照して、この場合の逆直交変換処理の流れの例を説明する。
図12のフローチャートを参照して、この場合の逆直交変換処理の流れの例を説明する。
ステップS201において、水平1次元逆変換部131は、逆量子化された、処理対象の1水平ラインの直交変換係数データに対して、水平方向に1次元逆直交変換を行う。ステップS202において、減算部231は、処理対象の水平ラインについて、基準画素の係数と、その他の画素の係数との差分値Δaijを求める。
ステップS203において、ビット幅処理部132は、ステップS202において算出された差分値Δaijに対して、元のビット幅よりも短い所定のビット幅へのクリップ処理を行う。ステップS204において、ビット幅処理部132は、基準画素の係数とクリップ処理を行った差分値Δaijを転置レジスタ133に書き込む。
ステップS205において、水平1次元逆変換部131は、領域内の全ての水平ラインを処理したか否かを判定し、処理対象の領域において未処理の水平ラインが存在すると判定した場合、処理をステップS201に戻し、それ以降の処理を行う。
各水平ラインについて、ステップS201乃至ステップS205の処理を繰り返し、ステップS205において、処理対象領域内の全ての水平ラインを処理したと判定した場合、水平1次元逆変換部131は、処理をステップS206に進める。
ステップS206において、加算部232は、転置レジスタ133から各基準画素の中間データを読み出す。ステップS207において、加算部232は、基準画素のライン以外の垂直ラインの中間データ(差分値)を転置レジスタ133から読み出す。ステップS208において、加算部232は、ステップS207において読み出した各差分値に対して、ステップS206において読み出した、同じ水平ライン上に位置する基準画素の中間データを加算する。
ステップS209において、垂直1次元逆変換部134は、加算して得られた1垂直ライン分の中間データに対して、垂直方向に1次元逆直交変換を行う。
ステップS210において、垂直1次元逆変換部134は、領域内の基準画素のライン以外の垂直ラインを全て処理したか否かを判定し、処理対象の領域の基準画素のライン以外の垂直ラインにおいて未処理の垂直ラインが存在すると判定した場合、処理をステップS206に戻し、それ以降の処理を行う。
基準画素のライン以外の各垂直ラインについて、ステップS206乃至ステップS210の処理を繰り返し、ステップS210において、処理対象領域内の基準画素のライン以外の垂直ラインを全て処理したと判定した場合、垂直1次元逆変換部134は、処理をステップS211に進める。
ステップS211において、加算部232は、転置レジスタ133から、各基準画素の中間データを読み出す。垂直1次元逆変換部134は、その各基準画素の中間データに対して、垂直方向に1次元逆直交変換を行う。
ステップS212において、垂直1次元逆変換部134は、画像内の全ての領域を処理したか否かを判定し、未処理の領域が存在すると判定された場合、処理をステップS201に戻し、それ以降の処理を繰り返す。
ステップS212において、垂直1次元逆変換部134は、画像内の全ての領域を処理したか否かを判定し、未処理の領域が存在すると判定された場合、処理をステップS201に戻し、それ以降の処理を繰り返す。
以上のように、各領域について、ステップS201乃至ステップS212の処理が繰り返され、ステップS212において、全ての領域を処理したと判定された場合、垂直1次元逆変換部134は、逆直交変換処理を終了し、処理を図7に戻す。
このように各処理を行うことにより、画像復号装置100は、逆直交変換処理において得られる中間データのデータ量を低減させることができ、転置レジスタ133として使用される記憶領域のサイズを低減させることができる。これにより、画像復号処理に必要なメモリ容量を低減させることができ、画像復号装置100の製造コストを低減させることができる。
[逆直交変換処理の流れの他の例]
なお、以上においては、ビット幅処理部132が、全ての差分値を同じビット幅にクリップ処理するように説明したが、上述したように算出された差分値の場合も、第1の実施の形態の中間データの場合と同様に、図5に示されるような周波数分布となる。したがって、第1の実施の形態の場合と同様に、ビット幅処理部132が、周波数帯域に応じて、各中間データ(差分値)のビット幅を制御するようにしてもよい。
なお、以上においては、ビット幅処理部132が、全ての差分値を同じビット幅にクリップ処理するように説明したが、上述したように算出された差分値の場合も、第1の実施の形態の中間データの場合と同様に、図5に示されるような周波数分布となる。したがって、第1の実施の形態の場合と同様に、ビット幅処理部132が、周波数帯域に応じて、各中間データ(差分値)のビット幅を制御するようにしてもよい。
つまり、図9において、ビット幅処理部132は、例えば、図6のBに示されるように、各中間データのビット幅を、その周波数成分毎に調整するようにしてもよい。より具体的には、ビット幅処理部132は、低周波成分ほどビット幅が長く、高周波成分ほどビット幅が狭くなるように、各中間データのビット幅を抑制するようにしてもよい。
例えば、n=32とし、Δaij(i=0, j<31)のビット幅を12bitにし(12bitに超える値は12bitにクリップする)、Δaij(1≦i≦3, j<31)のビット幅を10bitにし(10bitに超える値は10bitにクリップする)、Δaij(4≦i≦15, j<31)のビット幅を8bitにし(8bitに超える値は8bitにクリップする)、Δaij(16≦i≦31, j<31)のビット幅を6bitにする(6bitに超える値は6bitにクリップする)。つまり、より高周波の成分ほどビット幅を低減させるようにする。
またAij(0≦i<n, j=31)に関しても同様に、Aij(i=0, j=31)のビット幅を16bitにし、Aij(1≦i≦3, j=31)のビット幅を14bitにし(14bitに超える値は14bitにクリップする)、Aij(4≦i≦15, j=31)のビット幅を12bitにし(12bitに超える値は12bitにクリップする)、Aij(16≦i≦31, j=31)のビット幅を9bitにする(9bitに超える値は9bitにクリップする)。つまり、より高周波の成分ほどビット幅を低減させるようにする。
この結果、中間データのデータ量は、(12bit×1×31+10bit×3×31+8bit×12×31+6bit×16×31)+(16bit×1+14bit×3+12bit×12+9bit×16)+1bit×32×31=8,592bitとなる。これにより元々のデータのデータ量(32×32)×16bit=16,384bitより7,792bitを低減させることができる。つまり、その分、転置レジスタ133としてのメモリ使用量を低減させることができる。
なお、第1の実施の形態の場合と同様に、直交変換係数データおよび中間データの各行のビット幅は、任意である。
つまり、この場合も、ビット幅処理部132は、中間データのビット幅を、その周波数帯域毎に制御する。例えば、ビット幅処理部132は、中間データのビット幅を、その周波数帯域に応じて低減させる。例えば、ビット幅処理部132は、各水平ラインの中間データのビット幅を、より高周波の成分ほど、より強く低減させる。このようにビット幅を制御することにより、ビット幅処理部132は、画質劣化を抑制しながら、逆直交変換処理において使用される転置レジスタ133のサイズを抑制することができる。
例えば、ビット幅処理部132は、直交変換された画像データの周波数特性に応じて、各水平ラインの中間データのビット幅を低減させる。このようにビット幅を制御することにより、ビット幅処理部132は、画質劣化をより抑制することができる。
なお、転置レジスタ133のサイズを低減させることにより、画像復号処理に必要なメモリ容量を低減させることができ、画像復号装置100の製造コストを低減させることができる。
なお、このように各水平ラインのビット幅が同一でない場合、図10や図11を参照して説明したように、水平方向と垂直方向を転置させながら、次の領域の中間データを記憶させることが困難になる可能性がある。そのような場合、水平方向と垂直方向を転置させずに、前の領域の中間データが全て読み出されてから、次の領域の中間データが転置レジスタ133に書き込まれるようにすればよい。
この場合の、逆直交変換処理の流れの例を図13のフローチャートを参照して説明する。
この場合の逆直交変換処理の流れは、図12のフローチャートを参照して上述した場合と基本的に同様である。つまり、ステップS231乃至ステップS242の各処理は、図12のステップS201乃至ステップS212の各処理と基本的に同様に行われる。
ただし、ステップS233において、ビット幅処理部132は、差分値に対して、周波数帯域に応じたビット幅へのクリップ処理を行う。また、ビット幅処理部132は、基準画素の中間データに対しても、同様に、周波数帯域に応じたビット幅へのクリップ処理を行う。
このようにすることにより、逆直交変換部104は、図12の場合よりも画質劣化をより抑制しながら転置レジスタ133のサイズを低減させることができる。
<3.第3の実施の形態>
[逆直交変換部]
なお、上述した基準画素の代わりに、各水平ラインにおいて各中間データの平均値を求め、その平均値を基準とし、各画素の係数とその平均値との差分を中間データとするようにしてもよい。
[逆直交変換部]
なお、上述した基準画素の代わりに、各水平ラインにおいて各中間データの平均値を求め、その平均値を基準とし、各画素の係数とその平均値との差分を中間データとするようにしてもよい。
この場合の逆直交変換部104の構成例を図14に示す。
図14に示されるように、この場合の逆直交変換部104は、図9の場合の構成に加えて、水平1次元逆変換部131と減算部231との間に、平均値算出部331を有する。
平均値算出部331は、水平1次元逆変換部131の出力について、水平ライン毎に、各係数(の絶対値)の平均値を、例えば以下の式(4)のように求める。
μi=(ABS(Ai0)+ABS(Ai1)+・・・+ABS(Ain))/n (ただし、0≦i<n) ・・・(4)
平均値算出部331は、水平1次元逆変換部131の出力と、算出した平均値μiとを減算部231に供給する。
減算部231は、各水平ラインにおいて、各画素の係数と平均値との差分値を、例えば、以下式(5)と式(6)のように求める。
Δaij=ABS(Aij)-μi (ただし、0≦i<n, 0≦j<n-1) ・・・(5)
Bij=MBS(Aij) (ただし、0≦i<n, 0≦j<n-1) ・・・(6)
Bij=MBS(Aij) (ただし、0≦i<n, 0≦j<n-1) ・・・(6)
なお、Bijは、Aij(0≦i<n, 0≦j<n-1)の符号ビットを示す。減算部231は、算出した差分値(符号ビットを含む)と平均値をビット幅処理部132に供給する。
ビット幅処理部132は、減算部231から出力される差分値に対して、ビット幅を低減させるように所定のビット幅でクリップ処理を行う。ビット幅処理部132は、クリップ処理を行った差分値と符号ビットを中間データとして転置レジスタ133に供給し、記憶させる。また、ビット幅処理部132は、減算部231から供給された平均値も転置レジスタ133に供給し、記憶させる。
つまり、この場合、図15に示されるように、全ての画素の中間データが差分値となる。また、転置レジスタ133には、水平ライン毎に算出された各平均値μiも記憶される。(符号ビットについては図示を省略する)
なお、平均値と符号ビットについては、ビット幅処理部132は、ビット幅を低減させずに転置レジスタ133に記憶させる。画質劣化が許容されるのであれば、ビット幅処理部132において、これらの値も、ビット幅を狭くするようにクリップ処理するようにしてもよい。
加算部232は、転置レジスタ133から、中間データ(差分値)を1垂直ラインずつ読み出すとともに、平均値μiも読み出す。加算部232は、読み出した差分値に対して、その差分値と同じ水平ライン上の平均値μiを、以下の式(7)のように加算する。
ABS(Aij)=Δaij+μi (ただし、0≦i<n, 0≦j<n-1) ・・・(7)
加算部232は、このように算出されたAijの絶対値に、符号ビットBijを追加する。これにより、各中間データが復元される。加算部232は、このように復元した中間データを、垂直1次元逆変換部134に供給する。
垂直1次元逆変換部134は、このように供給された中間データに対して垂直方向に1次元の逆直交変換処理を行い、直交変換処理される前の画像データを復元する。
以上のように、この方法の場合、すべての中間データを差分値として表現することができ、繰り返し処理の制御をより容易にすることができる。ただしこの場合、転置レジスタ133において平均値μiを保持する必要があるため、その分容量が増大してしまう。しかしながら、この平均値は、上述したように相関性の高い係数同士から算出されるものであり、このような平均値を用いることより、より少ない差分値が得られる可能性が高くなる。したがって、ビット幅処理部132は、画質劣化の増大を抑制しながら、ビット幅をより低減させることができる。したがって、逆直交変換部104は、転置レジスタ133のサイズをより低減させることができる。
[逆直交変換処理の流れ]
図16のフローチャートを参照して、この場合の逆直交変換処理の流れの例を説明する。
図16のフローチャートを参照して、この場合の逆直交変換処理の流れの例を説明する。
ステップS301において、水平1次元逆変換部131は、逆量子化された、処理対象の1水平ラインの直交変換係数データに対して、水平方向に1次元逆直交変換を行う。ステップS302において、平均値算出部331は、処理対象の1水平ラインの各画素の係数Aijの平均値μiを求める。
ステップS303において、減算部231は、処理対象の水平ラインについて、各係数Aijと、ステップS302において算出された平均値μiとの差分値Δaijを求める。
ステップS304において、ビット幅処理部132は、ステップS303において算出された差分値に対して、元のビット幅よりも短い所定のビット幅へのクリップ処理を行う。ステップS305において、ビット幅処理部132は、クリップ処理を行った差分値Δaij’(符号ビットBijを含む)と平均値μiを転置レジスタ133に書き込む。
ステップS306において、水平1次元逆変換部131は、領域内の全ての水平ラインを処理したか否かを判定し、処理対象の領域において未処理の水平ラインが存在すると判定した場合、処理をステップS301に戻し、それ以降の処理を行う。
各水平ラインについて、ステップS301乃至ステップS306の処理を繰り返し、ステップS306において、処理対象領域内の全ての水平ラインを処理したと判定した場合、水平1次元逆変換部131は、処理をステップS307に進める。
ステップS307において、加算部232は、転置レジスタ133から各平均値μiを読み出す。ステップS308において、加算部232は、処理対象の垂直ラインの中間データ(差分値)を転置レジスタ133から読み出す。ステップS309において、加算部232は、ステップS308において読み出した各差分値に対して、ステップS307において読み出した、同じ水平ライン上に位置する平均値を加算する。
ステップS310において、垂直1次元逆変換部134は、加算して得られた1垂直ライン分の中間データに対して、垂直方向に1次元逆直交変換を行う。
ステップS311において、垂直1次元逆変換部134は、領域内の全ての垂直ラインを処理したか否かを判定し、処理対象の領域に未処理の垂直ラインが存在すると判定した場合、処理をステップS307に戻し、それ以降の処理を行う。
領域内の各垂直ラインについて、ステップS307乃至ステップS311の各処理を繰り返し実行し、ステップS311において、処理対象領域内の全ての垂直ラインを処理したと判定した場合、垂直1次元逆変換部134は、処理をステップS312に進める。
ステップS312において、垂直1次元逆変換部134は、画像内の全ての領域を処理したか否かを判定し、未処理の領域が存在すると判定された場合、処理をステップS301に戻し、それ以降の処理を繰り返す。
以上のように、各領域について、ステップS301乃至ステップS312の各処理が繰り返し実行され、ステップS312において、全ての領域を処理したと判定された場合、垂直1次元逆変換部134は、逆直交変換処理を終了し、処理を図7に戻す。
このように各処理を行うことにより、画像復号装置100は、逆直交変換処理において得られる中間データのデータ量を低減させることができ、転置レジスタ133として使用される記憶領域のサイズを低減させることができる。これにより、画像復号処理に必要なメモリ容量を低減させることができ、画像復号装置100の製造コストを低減させることができる。
[逆直交変換処理の流れの他の例]
なお、以上においては、ビット幅処理部132が、全ての差分値を同じビット幅にクリップ処理するように説明したが、上述したように算出された差分値の場合も、第1の実施の形態の中間データの場合と同様に、図5に示されるような周波数分布となる。したがって、第1の実施の形態の場合と同様に、ビット幅処理部132が、周波数帯域に応じて、各中間データ(差分値)のビット幅を制御するようにしてもよい。
なお、以上においては、ビット幅処理部132が、全ての差分値を同じビット幅にクリップ処理するように説明したが、上述したように算出された差分値の場合も、第1の実施の形態の中間データの場合と同様に、図5に示されるような周波数分布となる。したがって、第1の実施の形態の場合と同様に、ビット幅処理部132が、周波数帯域に応じて、各中間データ(差分値)のビット幅を制御するようにしてもよい。
つまり、図14において、ビット幅処理部132は、例えば、図6のBに示されるように、各中間データのビット幅を、その周波数成分毎に調整するようにしてもよい。より具体的には、ビット幅処理部132は、低周波成分ほどビット幅が長く、高周波成分ほどビット幅が狭くなるように、各中間データのビット幅を抑制するようにしてもよい。
このようにすることにより、画像復号装置100は、第2の実施の形態の場合と同様に、転置レジスタ133としてのメモリ使用量を低減させることができる。
なお、第1の実施の形態の場合と同様に、直交変換係数データおよび中間データの各行のビット幅は、任意である。
つまり、この場合も、ビット幅処理部132は、中間データのビット幅を、その周波数帯域毎に制御する。例えば、ビット幅処理部132は、中間データのビット幅を、その周波数帯域に応じて低減させる。例えば、ビット幅処理部132は、各水平ラインの中間データのビット幅を、より高周波の成分ほど、より強く低減させる。このようにビット幅を制御することにより、ビット幅処理部132は、画質劣化を抑制しながら、逆直交変換処理において使用される転置レジスタ133のサイズを抑制することができる。
例えば、ビット幅処理部132は、直交変換された画像データの周波数特性に応じて、各水平ラインの中間データのビット幅を低減させる。このようにビット幅を制御することにより、ビット幅処理部132は、画質劣化をより抑制することができる。
なお、転置レジスタ133のサイズを低減させることにより、画像復号処理に必要なメモリ容量を低減させることができ、画像復号装置100の製造コストを低減させることができる。
[逆直交変換処理の流れ]
この場合の、逆直交変換処理の流れの例を図17のフローチャートを参照して説明する。
この場合の、逆直交変換処理の流れの例を図17のフローチャートを参照して説明する。
この場合の逆直交変換処理の流れは、図16のフローチャートを参照して上述した場合と基本的に同様である。つまり、ステップS331乃至ステップS342の各処理は、図16のステップS301乃至ステップS312の各処理と基本的に同様に行われる。
ただし、ステップS334において、ビット幅処理部132は、差分値に対して、周波数帯域に応じたビット幅へのクリップ処理を行う。
このようにすることにより、逆直交変換部104は、図16の場合よりも画質劣化をより抑制しながら転置レジスタ133のサイズを低減させることができる。
なお、以上においては、平均値を基準とするように説明したが、これに限らず、例えば、1水平ラインの各係数データの中央値を基準とするようにしてもよい。この場合、1水平ラインの各係数データの中から、それらの係数データの値の幅の中央に最も近い値を持つ1つが中央値として選択される。この場合も、平均値の代わりに中央値を用いること以外は、上述したのと同様の方法で行われる。一般的に、平均値の算出よりも中央値を選択する方が処理が容易である。また、1水平ラインにおいて差分値の1つを必ず0にすることができる。
<4.第4の実施の形態>
[画像符号化装置]
なお、上述した画像復号装置に対応する画像符号化装置も、上述した逆直交変換部104と同様の逆直交変換部を有する。したがって、このような画像符号化装置の逆直交変換部においても、上述した各方法と同様に処理を行うことにより、転置レジスタのサイズを低減させることができる。
[画像符号化装置]
なお、上述した画像復号装置に対応する画像符号化装置も、上述した逆直交変換部104と同様の逆直交変換部を有する。したがって、このような画像符号化装置の逆直交変換部においても、上述した各方法と同様に処理を行うことにより、転置レジスタのサイズを低減させることができる。
また、このような画像符号化装置は、逆直交変換部104に対応する直交変換部を有する。この直交変換部において、上述した各方法と同様に処理を行うようにしてもよい。このようにすることにより、直交変換部内に設けられる転置レジスタのサイズを低減させることができる。
図18は、画像処理装置の一実施の形態である画像符号化装置の主な構成例を示すブロック図である。図18に示される画像符号化装置400は、図1の画像復号装置100に対応する装置であり、画像データを、画像復号装置100の復号方法に対応する符号化方法(例えば、MPEG、AVC、またはHEVC等)によって符号化し、符号化データ(ビットストリーム)を生成する。この符号化データは、画像復号装置100において復号することができる。
図18に示されるように、画像符号化装置400は、A/D変換部401、画面並べ替えバッファ402、演算部403、直交変換部404、量子化部405、可逆符号化部406、および蓄積バッファ407を有する。また、画像符号化装置400は、逆量子化部408、逆直交変換部409、演算部410、ループフィルタ411、フレームメモリ412、選択部413、イントラ予測部414、動き予測・補償部415、予測画像選択部416、およびレート制御部417を有する。
A/D変換部401は、入力された画像データをA/D変換し、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ402に供給し、記憶させる。画面並べ替えバッファ402は、記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部403に供給する。また、画面並べ替えバッファ402は、フレームの順番を並び替えた画像を、イントラ予測部414および動き予測・補償部415にも供給する。
演算部403は、画面並べ替えバッファ402から読み出された画像から、予測画像選択部416を介してイントラ予測部414若しくは動き予測・補償部415から供給される予測画像を減算し、その差分情報を直交変換部404に出力する。
例えば、インター符号化が行われる画像の場合、演算部403は、画面並べ替えバッファ402から読み出された画像から、動き予測・補償部415から供給される予測画像を減算する。
直交変換部404は、演算部403から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。なお、この直交変換の方法は任意である。直交変換部404は、その変換係数を量子化部405に供給する。
量子化部405は、直交変換部404から供給される変換係数を量子化する。量子化部405は、レート制御部417から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。なお、この量子化の方法は任意である。量子化部405は、量子化された変換係数を可逆符号化部406に供給する。
可逆符号化部406は、量子化部405において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部417の制御の下で量子化されているので、この符号量は、レート制御部417が設定した目標値となる(若しくは目標値に近似する)。
また、可逆符号化部406は、イントラ予測のモードを示す情報などをイントラ予測部414から取得し、インター予測のモードを示す情報や動きベクトル情報などを動き予測・補償部415から取得する。さらに、可逆符号化部406は、ループフィルタ411において使用されたフィルタ係数等を取得する。
可逆符号化部406は、これらの各種情報を任意の符号化方式で符号化し、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部406は、符号化して得られた符号化データを蓄積バッファ407に供給して蓄積させる。
可逆符号化部406の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
蓄積バッファ407は、可逆符号化部406から供給された符号化データを、一時的に保持する。蓄積バッファ407は、所定のタイミングにおいて、保持している符号化データを、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。
また、量子化部405において量子化された変換係数は、逆量子化部408にも供給される。逆量子化部408は、その量子化された変換係数を、量子化部405による量子化に対応する方法で逆量子化する。この逆量子化の方法は、量子化部405による量子化処理に対応する方法であればどのような方法であってもよい。逆量子化部408は、得られた変換係数を、逆直交変換部409に供給する。
逆直交変換部409は、逆量子化部408から供給された変換係数を、直交変換部404による直交変換処理に対応する方法で逆直交変換する。この逆直交変換の方法は、直交変換部404による直交変換処理に対応する方法であればどのようなものであってもよい。逆直交変換された出力(復元された差分情報)は、演算部410に供給される。
演算部410は、逆直交変換部409から供給された逆直交変換結果、すなわち、復元された差分情報に、予測画像選択部416を介してイントラ予測部414若しくは動き予測・補償部415から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。その復号画像は、ループフィルタ411またはフレームメモリ412に供給される。
ループフィルタ411は、デブロックフィルタや適応ループフィルタ等を含み、演算部410から供給される復号画像に対して適宜フィルタ処理を行う。例えば、ループフィルタ411は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。また、例えば、ループフィルタ411は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。
なお、ループフィルタ411が、復号画像に対して任意のフィルタ処理を行うようにしてもよい。また、ループフィルタ411は、必要に応じて、フィルタ処理に用いたフィルタ係数等の情報を可逆符号化部406に供給し、それを符号化させるようにすることもできる。
ループフィルタ411は、フィルタ処理結果(フィルタ処理後の復号画像)をフレームメモリ412に供給する。なお、上述したように、演算部410から出力される復号画像は、ループフィルタ411を介さずにフレームメモリ412に供給することができる。つまり、ループフィルタ411によるフィルタ処理は省略することができる。
フレームメモリ412は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、選択部413に供給する。
選択部413は、フレームメモリ412から供給される参照画像の供給先を選択する。例えば、インター予測の場合、選択部413は、フレームメモリ412から供給される参照画像を動き予測・補償部415に供給する。
イントラ予測部414は、選択部413を介してフレームメモリ412から供給される参照画像である処理対象ピクチャ内の画素値を用いて、基本的にプレディクションユニット(PU)を処理単位として予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部414は、予め用意された複数のモード(イントラ予測モード)でこのイントラ予測を行う。
イントラ予測部414は、候補となる全てのイントラ予測モードで予測画像を生成し、画面並べ替えバッファ402から供給される入力画像を用いて各予測画像のコスト関数値を評価し、最適なモードを選択する。イントラ予測部414は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部416に供給する。
また、上述したように、イントラ予測部414は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部406に供給し、符号化させる。
動き予測・補償部415は、画面並べ替えバッファ402から供給される入力画像と、選択部413を介してフレームメモリ412から供給される参照画像とを用いて、基本的にPUを処理単位として、動き予測(インター予測)を行い、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。動き予測・補償部415は、予め用意された複数のモード(インター予測モード)でこのようなインター予測を行う。
動き予測・補償部415は、候補となる全てのインター予測モードで予測画像を生成し、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部415は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部416に供給する。
また、動き予測・補償部415は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部406に供給し、符号化させる。
予測画像選択部416は、演算部403や演算部410に供給する予測画像の供給元を選択する。例えば、インター符号化の場合、予測画像選択部416は、予測画像の供給元として動き予測・補償部415を選択し、その動き予測・補償部415から供給される予測画像を演算部403や演算部410に供給する。
レート制御部417は、蓄積バッファ407に蓄積された符号化データの符号量に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部405の量子化動作のレートを制御する。
図18において、逆直交変換部409は、第1の実施の形態乃至第3の実施の形態において上述した画像復号装置100の逆直交変換部104と同様の処理部であり、同様の処理を行う。すなわち、逆直交変換部409は、逆直交変換部104と同様に、転置レジスタ133を有し、上述したように各方法で逆直交変換処理を行うことにより、その転置レジスタ133のサイズを低減させることができる。
また、図18において、直交変換部404は、逆直交変換部409(すなわち、逆直交変換部104)に対応し、逆直交変換部409が行う逆直交変換処理に対応する直交変換処理を行う処理部である。つまり、この直交変換部404も、逆直交変換部104と同様の転置レジスタを有し、上述したような各方法の逆直交変換処理に対応するように、直交変換処理を行うことにより、その転置レジスタのサイズを低減させることができる。
[直交変換部]
図19は、直交変換部404の主な構成例を示すブロック図である。図19に示されるように、直交変換部404は、水平1次元変換部431、ビット幅処理部432、転置レジスタ433、および垂直1次元変換部434を有する。つまり、直交変換部404は、図4に示される第1の実施の形態の逆直交変換部104と略同様の構成を有する。
図19は、直交変換部404の主な構成例を示すブロック図である。図19に示されるように、直交変換部404は、水平1次元変換部431、ビット幅処理部432、転置レジスタ433、および垂直1次元変換部434を有する。つまり、直交変換部404は、図4に示される第1の実施の形態の逆直交変換部104と略同様の構成を有する。
水平1次元変換部431は、水平1次元逆変換部131に対応する処理部であり、1水平ライン毎に入力される、直交変換処理の処理単位となる領域の画像データを、その1水平ライン毎に水平方向に1次元の直交変換を行う。つまり、水平1次元変換部431により、画像データが水平方向に1次元の直交変換されて得られた係数データは、水平1次元逆変換部131が逆変換(水平方向に1次元の逆直交変換)する(元の画像データに戻す)ことができる。
水平1次元変換部431により生成された係数データは、ビット幅処理部432に供給される。ビット幅処理部432は、水平1次元変換部431から出力される各係数データ(中間データ)に対して、ビット幅を低減させるようにクリップ処理を行う。その際、ビット幅処理部432は、各中間データのビット幅を、その周波数帯域に応じた度合いで低減させる。ビット幅処理部432は、ビット幅を調整した各中間データを転置レジスタ433に供給し、保持させる。
転置レジスタ433は、転置レジスタ133と同様に、供給される各中間データを、図19に示されるように、元の直交変換係数データの並び順に対応するように整列して記憶する。
垂直1次元変換部434は、垂直1次元逆変換部134に対応する処理部であり、この転置レジスタ433から、中間データを垂直ライン毎に読み出して、1次元の直交変換処理を行う。つまり、垂直1次元変換部434は、転置レジスタ433に記憶される中間データを、垂直方向の並び毎に読み出す。すなわち、垂直1次元変換部434は、転置レジスタ433からの中間データの読み出しを、その中間データの書き込み順と異なる順で読み出すことにより、中間データの並びを水平方向から垂直方向に転置させる。垂直1次元変換部434は、このように列毎に読み出した中間データを、その垂直ライン毎に直交変換することにより、垂直方向の直交変換を実現する。
垂直1次元変換部434によって中間データが垂直方向に直交変換されることにより、画像データが2次元(水平方向および垂直方向)に直交変換された直交変換係数データ(単に係数データとも称する)が得られる。垂直1次元変換部434は、その係数データを量子化部405に供給する。
以上のような処理において、転置レジスタ433に記憶される中間データは、例えば図20に示されるように、水平方向に周波数成分毎に整列することになる。つまり、左から右に向かって、低周波成分から高周波成分が並ぶ。より低周波の成分は、より左に位置し、より高周波の成分は、より右に位置する。各列(垂直ライン)には、互いに同じ周波数帯域の成分が並ぶ。
例えば、水平1次元変換部431により直交変換されて得られる中間データのビット幅が、図21のAに示されるように、16ビットであるとする。処理単位の領域を32×32とすると、データ量は、(32×32)16bit=16,384bitである。
ビット幅処理部432は、例えば、図21のBに示されるように、各中間データのビット幅を、その周波数成分毎に調整する。より具体的には、ビット幅処理部432は、低周波成分ほどビット幅が長く、高周波成分ほどビット幅が狭くなるように、各中間データのビット幅を抑制する。例えば、図21のBの場合、ビット幅処理部432は、1番左の1列(1垂直ライン)の中間データのビット幅を16ビットとし、左から2番目乃至4番目の3列(3垂直ライン)の中間データのビット幅を14ビットとする。また、例えば、図21のBの場合、ビット幅処理部432は、左から5番目乃至16番目の12列(12垂直ライン)の中間データのビット幅を12ビットとし、左から17番目乃至32番目の16列(16垂直ライン)の中間データのビット幅を9ビットとする。
このようにすることにより、データ量は、(32×1)×16bit+(32×3)×14bit+(32×12)×12bit+(32×16)×9bit=11,072bitとなる。したがって、上述した全ての中間データのビット幅を16ビットとする場合に比べて、5,312bit分、転置レジスタ433としてのメモリ使用量を低減させることができる。
なお、画像データおよび中間データの各画素のビット幅は、任意であり、図21のBに示される例以外であってもよい。例えば、1番左から4列(4垂直ライン)ずつビット幅を低減させるようにしてもよい。また、例えば、左から16番目の列まで(16垂直ライン)の中間データのビット幅を画像データと同一とし、残りの16列(16垂直ライン)の各列のビット幅を画像データよりも低減させるようにしてもよい。
つまり、ビット幅処理部432は、中間データのビット幅を、その周波数帯域毎に制御する。例えば、ビット幅処理部432は、処理単位となる領域の画像データが水平方向に1次元直交変換されて得られた水平ライン毎の中間データのビット幅を、その周波数帯域に応じて低減させる。
例えば、ビット幅処理部432は、各水平ラインの中間データのビット幅を、より高周波の成分ほど、より強く低減させる。一般的に、自然画像は、より低周波成分ほど絶対値が大きく、より高周波成分ほど絶対値が小さい。したがって、このようにビット幅を制御することにより、ビット幅処理部432は、画質劣化を抑制しながら、直交変換処理において使用される転置レジスタ433のサイズを抑制することができる。
例えば、ビット幅処理部432は、画像データの周波数特性に応じて、各水平ラインの各中間データのビット幅を低減させる。このようにビット幅を制御することにより、ビット幅処理部432は、画質劣化をより抑制することができる。
なお、転置レジスタ433のサイズを低減させることにより、画像符号化処理に必要なメモリ容量を低減させることができ、画像符号化装置400の製造コストを低減させることができる。
なお、ビット幅処理部432のクリップ処理により、中間データが誤差を含むようになる場合も考えられるが、クリップするビット幅を十分に確保することにより、この誤差の影響を低減させることができる。換言するに、画像符号化装置400は、クリップするビット幅の設定によって、画質劣化の大きさと転置レジスタ433のサイズとを制御することができる。したがって、例えば、画像の内容に応じて、これらが最善となるように、クリップするビット幅を決定するのが望ましい。
[符号化処理の流れ]
次に、以上のような画像符号化装置400により実行される各処理の流れについて説明する。最初に、図22のフローチャートを参照して、符号化処理の流れの例を説明する。
次に、以上のような画像符号化装置400により実行される各処理の流れについて説明する。最初に、図22のフローチャートを参照して、符号化処理の流れの例を説明する。
ステップS401において、A/D変換部401は入力された画像をA/D変換する。ステップS402において、画面並べ替えバッファ402は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS403において、イントラ予測部414は、イントラ予測モードのイントラ予測処理を行う。ステップS404において、動き予測・補償部415は、インター予測モードでの動き予測や動き補償を行うインター動き予測処理を行う。
ステップS405において、予測画像選択部416は、イントラ予測部414および動き予測・補償部415から出力された各コスト関数値に基づいて、最適なモードを決定する。つまり、予測画像選択部416は、イントラ予測部414により生成された予測画像と、動き予測・補償部415により生成された予測画像のいずれか一方を選択する。
ステップS406において、演算部403は、ステップS402の処理により並び替えられた画像と、ステップS405の処理により選択された予測画像との差分を演算する。差分データは元の画像データに較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS407において、直交変換部404は、ステップS406の処理により生成された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
ステップS408において、量子化部405は、ステップS407の処理により得られた直交変換係数を量子化する。
ステップS408の処理により量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS409において、逆量子化部408は、ステップS408の処理により生成された量子化された直交変換係数(量子化係数とも称する)を量子化部405の特性に対応する特性で逆量子化する。
ステップS410において、逆直交変換部409は、ステップS407の処理により得られた直交変換係数を、直交変換部404の特性に対応する特性で逆直交変換する。なお、この逆直交変換処理は、第1の実施の形態乃至第3の実施の形態において説明したのと同様に行われるので、それについての詳細な説明は省略する。
ステップS411において、演算部410は、予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部403への入力に対応する画像)を生成する。ステップS412においてループフィルタ411は、ステップS411の処理により得られた局部的な復号画像に対して、デブロックフィルタ処理や適応ループフィルタ処理等を含むループフィルタ処理を適宜行う。
ステップS413において、フレームメモリ412は、ステップS412の処理によりループフィルタ処理が施された復号画像を記憶する。なお、フレームメモリ412にはループフィルタ411によりフィルタ処理されていない画像も演算部410から供給され、記憶される。
ステップS414において、可逆符号化部406は、ステップS408の処理により量子化された変換係数を符号化する。すなわち、差分画像に対して、可変長符号化や算術符号化等の可逆符号化が行われる。
なお、可逆符号化部406は、ステップS408において算出された量子化パラメータを符号化し、符号化データに付加する。また、可逆符号化部406は、ステップS405の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部406は、イントラ予測部414から供給される最適イントラ予測モード情報、または、動き予測・補償部415から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する。
ステップS415において蓄積バッファ407は、ステップS414の処理により得られた符号化データを蓄積する。蓄積バッファ407に蓄積された符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
ステップS416においてレート制御部417は、ステップS415の処理により蓄積バッファ407に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部405の量子化動作のレートを制御する。
ステップS416の処理が終了すると、符号化処理が終了される。
[直交変換処理の流れ]
次に、図23のフローチャートを参照して、図22のステップS407において実行される直交変換処理の流れの例を説明する。
次に、図23のフローチャートを参照して、図22のステップS407において実行される直交変換処理の流れの例を説明する。
ステップS431において、水平1次元変換部431は、処理対象の領域の1水平ラインの画像データに対して、水平方向に1次元直交変換を行う。
ステップS432において、ビット幅処理部432は、ステップS431の処理により得られた1水平ラインの中間データに対して、周波数帯域に応じたビット幅へのクリップ処理を行う。
図20を参照して説明したように、各画素の中間データの周波数成分は、水平方向に低域から高域に変化する。つまり、1水平ラインの中間データには、低域成分から高域成分までが含まれる。したがって、ビット幅処理部432は、1水平ラインの各中間データに対して、それぞれの周波数成分に応じたビット幅でクリップ処理する。つまり、1水平ラインの中間データが、周波数帯域毎に分類され、その帯域毎に互いに異なるビット幅でクリップ処理される。例えば、各中間データを互いに異なる周波数成分とする場合、各中間データは、互いに異なるビット幅でクリップ処理される。上述した逆直交変換の場合、周波数分布は垂直方向に現れるので、1水平ラインの各中間データは、互いに同一のビット幅でクリップ処理されていたが、直交変換の場合、このようなクリップ処理により、1水平ラインの各中間データが互いに異なるビット幅となる可能性がある。
ステップS433において、ビット幅処理部432は、クリップ処理した1水平ラインの中間データを、転置レジスタ433の、前回書き込んだ1水平ラインの中間データの1行下に書き込む。
ステップS434において、水平1次元変換部431は、領域内の全ての水平ラインを処理したか否かを判定し、処理対象の領域において未処理の水平ラインが存在すると判定した場合、処理をステップS431に戻し、それ以降の処理を行う。
各水平ラインについて、ステップS431乃至ステップS434の各処理が繰り返し実行され、ステップS434において、処理対象領域内の全ての水平ラインを処理したと判定した場合、水平1次元変換部431は、処理をステップS435に進める。
ステップS435において、垂直1次元変換部434は、転置レジスタ433から中間データを1垂直ライン分読み出し、ステップS436において、読み出した中間データに対して、垂直方向に1次元直交変換を行う。
ステップS437において、垂直1次元変換部434は、領域内の全ての垂直ラインを処理したか否かを判定し、処理対象の領域において未処理の垂直ラインが存在すると判定した場合、処理をステップS435に戻し、それ以降の処理を行う。
各垂直ラインについて、ステップS435乃至ステップS437の処理を繰り返し、ステップS437において、処理対象領域内の全ての垂直ラインを処理したと判定した場合、垂直1次元変換部434は、処理をステップS438に進める。
ステップS438において、垂直1次元変換部434は、画像内の全ての領域を処理したか否かを判定し、未処理の領域が存在すると判定された場合、処理をステップS431に戻し、それ以降の処理を繰り返す。
以上のように、各領域について、ステップS431乃至ステップS438の処理が繰り返し実行され、ステップS438において、全ての領域を処理したと判定された場合、垂直1次元変換部434は、直交変換処理を終了し、処理を図22に戻す。
このように各処理を行うことにより、画像符号化装置400は、直交変換処理において得られる中間データのデータ量を低減させることができ、転置レジスタ433として使用される記憶領域のサイズを低減させることができる。これにより、画像符号化処理に必要なメモリ容量を低減させることができ、画像符号化装置400の製造コストを低減させることができる。
<5.第5の実施の形態>
[直交変換部]
なお、直交変換部404の場合も、逆直交変換部104の場合と同様に、各中間データの値をより小さくするために、水平方向に直交変換された係数データの所定の行(水平ライン)を基準とし、その基準との差分値を中間データとして転置レジスタ433に格納させるようにしてもよい。つまり、水平方向の1次元変換を行った結果について、互いに同一の周波数成分同士で差分をとり、その差分を中間データとするようにしてもよい。
[直交変換部]
なお、直交変換部404の場合も、逆直交変換部104の場合と同様に、各中間データの値をより小さくするために、水平方向に直交変換された係数データの所定の行(水平ライン)を基準とし、その基準との差分値を中間データとして転置レジスタ433に格納させるようにしてもよい。つまり、水平方向の1次元変換を行った結果について、互いに同一の周波数成分同士で差分をとり、その差分を中間データとするようにしてもよい。
図24は、その場合の直交変換部404の構成例を示すブロック図である。図24に示されるように、この場合、直交変換部404は、図19を参照して説明した構成に加え、水平1次元変換部431とビット幅処理部432との間に減算部531を有し、転置レジスタ433と垂直1次元変換部434との間に加算部532を有する。
減算部531は、上述したように行列状(アレイ状)に配列される各係数の所定の1水平ライン上の画素を基準画素とし、各垂直ラインにおいて、その基準画素の係数と、それ以外の各画素の係数との差分値を求める。
ビット幅処理部432は、減算部531から出力される、その差分値に対してクリップ処理を行う。例えば、ビット幅処理部432は、供給された各差分値のビット幅を、所定のビット幅に低減し、転置レジスタ433に供給し、中間データとして記憶させる。また、ビット幅処理部432は、各基準画素の係数を、ビット幅の抑制を行わずに、そのまま転置レジスタ433に供給し、中間データとして記憶させる。
図25は、転置レジスタ433に記憶される中間データの例を示す図である。
図25の例の場合、直交変換処理の処理単位となる領域のサイズはn×n画素である。水平1次元変換部431の出力Aij(0≦i<n, 0≦j<n)のビット幅は、16ビットである。
図25の例の場合、直交変換処理の処理単位となる領域のサイズはn×n画素である。水平1次元変換部431の出力Aij(0≦i<n, 0≦j<n)のビット幅は、16ビットである。
減算部531は、このような出力に対して、1番上の行(i=0)を基準画素のラインとし、その他の行(0<i<n-1)について、基準画素の係数との差分値Δaijを以下の式(8)および式(9)のように算出する。
Δaij=ABS(Aij)-ABS(A0i) (ただし、0<i<n, 0≦j<n) ・・・(8)
Bij=MBS(Aij) (ただし、0<i<n, 0≦j<n) ・・・(9)
Bij=MBS(Aij) (ただし、0<i<n, 0≦j<n) ・・・(9)
なお、Bijは、Aijの符号ビットを示す。
つまり、減算部531は、領域内において最初に処理される水平ラインの各係数を基準画素として記憶し、2番目以降に処理される水平ラインの各画素について、その画素と同じ垂直ライン上に位置する基準画素との差分値を求める。減算部531は、基準画素以外の画素(0<i<n, 0≦j<n)について、このように算出した差分値Δaijと符号ビットBijを中間データとしてビット幅処理部432に供給する。また、減算部531は、基準画素のライン(I=0, 0≦j<n)について、16ビットの係数Aijを中間データとしてビット幅処理部432に供給する。
図20を参照して説明したように、水平方向に1次元変換された係数は、水平方向に各周波数成分が分布する。つまり、垂直方向に同一周波数成分が並び、互いの相関が高くなる。減算部531は、この垂直方向の相関性の高さを利用して、上述したように垂直方向に並ぶ係数同士で差分を取ることにより、各中間データの値を小さくする。このとき、符号付きで減算を行うと、値がかえって大きくなってしまう可能性があるため、減算部531は、式(8)に示されるように、各係数の絶対値同士の差分を算出する。このようにすることにより、減算部531は、中間データの値を確実により小さくすることができる。
つまり、Δaij(0<i<n, 0≦j<n)は、Aij(i=0, 0≦j<n)より少ないビット幅で表現することができる可能性が高い。そこで、ビット幅処理部432は、供給された各差分値に対して、元の16ビットよりも少ないビット幅でクリップ処理を行う。図25の例においては、12ビットでクリップ処理が行われている。ビット幅処理部432は、このように、差分値を所定のビット幅に低減し、それを転置レジスタ433に供給して記憶させる。
このようにすることにより、直交変換部404は、全ての中間データを、ビット幅16ビットのままで記憶させる場合よりも、転置レジスタ433のサイズを低減させることができる。
なお、基準画素については、ビット幅処理部432は、係数Aij(i=0, 0<j<n)を中間データとして転置レジスタ433に伝送し、記憶させる。図25の例の場合、ビット幅処理部432は、画質劣化を抑制するために、この中間データAij(i=0, 0<j<n)を、ビット幅16ビットのまま転置レジスタ433に記憶させている(斜線部分)。画質劣化が許容されるのであれば、ビット幅処理部432において、この中間データAij(i=0, 0<j<n)も、ビット幅を狭くするようにクリップ処理するようにしてもよい。
加算部532は、転置レジスタ433から、中間データを1垂直ラインずつ読み出す。図25に示されるように、各垂直ラインには、差分値の中間データの他に、その差分値の算出に利用した基準画素の中間データも含まれる。加算部532は、読み出した1垂直ラインに含まれる各差分値に、その垂直ラインに含まれる基準画素の中間データを、以下の式(10)のように加算する。
ABS(Aij)=ABS(A0j)+Δaij (ただし、0<i<n,0≦j<n) ・・・(10)
加算部532は、このように算出されたAijの絶対値に、符号ビットBijを追加する。これにより、基準画素のライン以外の垂直ラインの各中間データが復元される。加算部532は、このように復元した中間データを、垂直1次元変換部434に供給する。なお、加算部532は、転置レジスタ433から読み出した垂直ラインに含まれる基準画素の中間データも垂直1次元変換部434に供給する。この基準画素の中間データは差分値ではないので、読み出したデータがそのまま垂直1次元変換部434に供給される。
垂直1次元変換部434は、このように供給された中間データに対して垂直方向に1次元の直交変換処理を行い、画像データが2次元(水平方向および垂直方向)に直交変換された直交変換係数データを生成する。なお、中間データに対して上述したようにクリップ処理が行われる場合、そのクリップ処理により誤差が含まれる可能性がある。したがって、その係数データを逆直交変換しても、直交変換処理される前の画像データを必ずしも完全に再現することができない場合もある。ただし、その誤差による画質劣化は、大きくない。換言するに、この画質劣化が許容される程度以下となるように、クリップ処理するビット幅を定義すればよい。
なお、直交変換の場合、上述したように、全ての垂直ラインに基準画素が含まれる。したがって、どの行を基準画素のラインとするようにしてもよい。
なお、図26に示されるように、次に処理される領域の中間データは、水平方向と垂直方向(つまり、行と列)が入れ替えて書き込まれる。しかしながら、この場合も、中間データの読み出しは、水平方向と垂直方向が転置され、水平ライン毎に行われるようになるので、やはり、基準画素の列(垂直ライン)は、任意のラインとすることができる。
なお、さらに次の領域の中間データは、再度、水平方向と垂直方向が転置されるので、図25のように格納される。
[直交変換処理の流れ]
図27のフローチャートを参照して、この場合の直交変換処理の流れの例を説明する。
図27のフローチャートを参照して、この場合の直交変換処理の流れの例を説明する。
ステップS501において、水平1次元変換部431は、処理対象の1水平ラインの画像データに対して、水平方向に1次元直交変換を行う。ステップS502において、減算部531は、処理対象の水平ラインが基準画素のラインであるか否かを判定する。基準画素のラインであると判定した場合、減算部531は、処理をステップS503に進める。
ステップS503において、ビット幅処理部432は、その水平ラインの係数を転置レジスタ433に書き込む。なお、減算部531も、この水平ラインの各係数を保持する。ステップS503の処理が終了すると、ビット幅処理部432は、処理をステップS507に進める。
また、ステップS502において、処理対象の水平ラインが基準画素のラインでは無いと判定された場合、減算部531は、処理をステップS504に進める。ステップS504において、減算部531は、水平ラインの各係数から、その各係数と水平方向に同じ位置にある基準画素の係数を減算し、その差分値を算出する。
ステップS505において、ビット幅処理部432は、各差分値に対して、ビット幅を低減させるように、所定のビット幅へのクリップ処理を行う。ステップS506において、ビット幅処理部432は、ビット幅を低減させた各差分値を、中間データとして転置レジスタ433に供給し、記憶させる。ステップS506の処理が終了すると、ビット幅処理部432は、処理をステップS507に進める。
ステップS507において、水平1次元変換部431は、領域内の全ての水平ラインを処理したか否かを判定し、未処理のラインが存在すると判定された場合、処理をステップS501に戻し、それ以降の処理を繰り返し実行する。領域内の各水平ラインについて、ステップS501乃至ステップS507の各処理を繰り返し実行し、ステップS507において、領域内の全ての水平ラインを処理したと判定した場合、水平1次元変換部431は、処理をステップS508に進める。
ステップS508において、加算部532は、転置レジスタ433から、1垂直ライン分、中間データを読み出す。ステップS508において、加算部532は、読み出した垂直ライン内の、各差分値に、基準画素の係数を加算する。
ステップS510のいて、垂直1次元変換部434は、垂直ラインの各係数に対して垂直方向に1次元の直交変換を行い、2次元に直交変換された係数データを生成する。
ステップS511において、垂直1次元変換部434は、領域内の全ての垂直ラインを処理したか否かを判定し、未処理の垂直ラインが存在すると判定した場合、処理をステップS508に戻し、それ以降の処理を繰り返す。各垂直ラインについてステップS508乃至ステップS511の処理を繰り返し、ステップS511において、領域内の全ての垂直ラインを処理したと判定した場合、垂直1次元変換部434は、処理をステップS512に進める。
ステップS512において、垂直1次元変換部434は、画像内の全ての領域を処理したか否かを判定し、未処理の領域が存在すると判定された場合、処理をステップS501に戻し、それ以降の処理を繰り返す。
以上のように、各領域について、ステップS501乃至ステップS512の各処理が繰り返し実行され、ステップS512において、全ての領域を処理したと判定された場合、垂直1次元変換部434は、直交変換処理を終了し、処理を図22に戻す。
このように各処理を行うことにより、画像符号化装置400は、直交変換処理において得られる中間データのデータ量を低減させることができ、転置レジスタ433として使用される記憶領域のサイズを低減させることができる。これにより、画像符号化処理に必要なメモリ容量を低減させることができ、画像符号化装置400の製造コストを低減させることができる。
[直交変換処理の流れの他の例]
なお、以上においては、ビット幅処理部432が、全ての差分値を同じビット幅にクリップ処理するように説明したが、上述したように算出された差分値の場合も、第4の実施の形態の場合と同様に、図20に示されるような周波数分布となる。したがって、第4の実施の形態の場合と同様に、ビット幅処理部432が、周波数帯域に応じて、各中間データ(差分値)のビット幅を制御するようにしてもよい。
なお、以上においては、ビット幅処理部432が、全ての差分値を同じビット幅にクリップ処理するように説明したが、上述したように算出された差分値の場合も、第4の実施の形態の場合と同様に、図20に示されるような周波数分布となる。したがって、第4の実施の形態の場合と同様に、ビット幅処理部432が、周波数帯域に応じて、各中間データ(差分値)のビット幅を制御するようにしてもよい。
この場合の、直交変換処理の流れの例を図28のフローチャートを参照して説明する。
この場合の直交変換処理の流れは、図27のフローチャートを参照して上述した場合と基本的に同様である。つまり、ステップS531乃至ステップS542の各処理は、図27のステップS501乃至ステップS512の各処理と基本的に同様に行われる。
ただし、ステップS535において、ビット幅処理部432は、差分値に対して、周波数帯域に応じたビット幅へのクリップ処理を行う。また、ビット幅処理部432は、基準画素の中間データに対しても、同様に、周波数帯域に応じたビット幅へのクリップ処理を行う。
このようにすることにより、直交変換部404は、図27の場合よりも画質劣化をより抑制しながら転置レジスタ433のサイズを低減させることができる。
以上の各実施の形態においては、水平方向と垂直方向のそれぞれについて直交変換処理や逆直交変換処理が行われるように説明したが、これらの処理において、変換方式は、任意であり、水平方向に対する処理、および、垂直方向に対する処理のそれぞれに対して、どのような直交変換・逆直交変換方式を用いるようにしてもよい。例えば、DCTであってもよいし、カルーネン・レーベ変換であってもよいし、DSTであってもよい。また、水平方向と垂直方向で、互いに異なる変換方式を採用するようにしてもよい。例えば、水平方向はDCT(IDCT)を行い、垂直方向はDST(IDST)を行うようにしてもよい。つまり、図4の例の場合、水平1次元逆変換部131がIDCTを行い、垂直1次元逆変換部134がIDSTを行うようにしてもよい。もちろん、水平1次元逆変換部131がIDSTを行い、垂直1次元逆変換部134がIDCTを行うようにしてもよいし、水平1次元逆変換部131および垂直1次元逆変換部134がIDCT・IDST以外の方式を採用するようにしてもよい。他の実施の形態についても同様である。画像符号化装置400の直交変換部404や逆直交変換部409も同様である。
なお、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換を用いて符号化された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本技術は、それらの画像符号化装置および画像復号装置などに含まれる直交変換装置や逆直交変換装置にも適用することができる。
<6.第6の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
図29において、パーソナルコンピュータ600のCPU(Central Processing Unit)601は、ROM(Read Only Memory)602に記憶されているプログラム、または記憶部613からRAM(Random Access Memory)603にロードされたプログラムに従って各種の処理を実行する。RAM603にはまた、CPU601が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU601、ROM602、およびRAM603は、バス604を介して相互に接続されている。このバス604にはまた、入出力インタフェース610も接続されている。
入出力インタフェース610には、キーボード、マウスなどよりなる入力部611、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部612、ハードディスクなどより構成される記憶部613、モデムなどより構成される通信部614が接続されている。通信部614は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース610にはまた、必要に応じてドライブ615が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア616が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部613にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図29に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア616により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM602や、記憶部613に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<7.第7の実施の形態>
[第1の応用例:テレビジョン受像機]
図30は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
[第1の応用例:テレビジョン受像機]
図30は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、逆直交変換処理において使用される転置レジスタのサイズを抑制することができる。
<8.第8の実施の形態>
[第2の応用例:携帯電話機]
図31は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
[第2の応用例:携帯電話機]
図31は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Unallocated Space Bitmap)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記憶再生部929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、直交変換処理および逆直交変換処理において使用される転置レジスタのサイズを抑制することができる。
<9.第9の実施の形態>
[第3の応用例:記録再生装置]
図32は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
[第3の応用例:記録再生装置]
図32は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送手段としての役割を有する。
外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送手段としての役割を有する。
エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラム及びその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、直交変換処理および逆直交変換処理において使用される転置レジスタのサイズを抑制することができる。
<10.第10の実施の形態>
[第4の応用例:撮像装置]
図33は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
[第4の応用例:撮像装置]
図33は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、及びバス972を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、及び制御部970を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送手段としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、直交変換処理および逆直交変換処理において使用される転置レジスタのサイズを抑制することができる。
なお、本明細書では、予測モード情報等の画像データ以外の様々な情報が、ビットストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) 画像データが水平方向および垂直方向に直交変換された直交変換係数に対して、水平方向の逆直交変換を行う水平1次元逆変換部と、
前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行うビット幅処理部と、
前記ビット幅処理部により前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶する記憶部と、
前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の逆直交変換を行う垂直1次元逆変換部と
を備える画像処理装置。
(2) 前記ビット幅処理部は、前記係数を、前記係数の周波数帯域に応じたビット幅にクリップ処理する
前記(1)に記載の画像処理装置。
(3) 前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた、互いに同一の周波数帯域同士の係数を減算する減算部と、
前記減算部による減算により得られた差分値と、前記減算に用いた一方の係数とを加算する加算部と
をさらに備え、
前記ビット幅処理部は、前記減算により得られた前記差分値に対して、前記差分値のビット幅を低減させるようにクリップ処理し、
前記記憶部は、前記減算に用いられた一方の係数と、前記ビット幅処理部によりビット幅が低減された前記差分値を、前記中間データとして記憶し、
前記加算部は、前記記憶部から読み出した、前記減算に用いられた一方の係数と、ビット幅が低減された前記差分値を加算して、前記減算に用いられた他方の係数を復元し、
前記垂直1次元逆変換部は、前記減算に用いられた一方の係数、および、前記加算部による加算により復元された、前記減算に用いられた他方の係数に対して、垂直方向の逆直交変換を行う
前記(1)に記載の画像処理装置。
(4) 前記加算部は、前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、
前記記憶部は、前記減算に用いられた一方の係数を、前記加算部により最後に読み出されるラインに記憶する
前記(3)に記載の画像処理装置。
(5) 前記ビット幅処理部は、前記差分値を、所定のビット幅にクリップ処理する
前記(3)または(4)に記載の画像処理装置。
(6) 前記ビット幅処理部は、前記差分値を、前記差分値の周波数帯域に応じたビット幅にクリップ処理する
前記(3)または(4)に記載の画像処理装置。
(7) 前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた、互いに同一の周波数帯域同士の係数の平均値を算出する平均値算出部をさらに備え、
前記減算部は、前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた係数と、前記平均値算出部により算出された前記平均値との差分値を算出し、
前記ビット幅処理部は、前記減算部により算出された前記差分値に対して、前記差分値のビット幅を低減させるようにクリップ処理し、
前記記憶部は、前記平均値と、前記ビット幅処理部によりビット幅が低減された前記差分値とを、前記中間データとして記憶し、
前記加算部は、前記記憶部から読み出した、前記差分値と前記平均値とを加算して、前記減算に用いられた係数を復元し、
前記垂直1次元逆変換部は、前記減算に用いられた係数に対して、垂直方向の逆直交変換を行う
前記(3)に記載の画像処理装置。
(8) 前記ビット幅処理部は、前記差分値を、所定のビット幅にクリップ処理する
前記(7)に記載の画像処理装置。
(9) 前記ビット幅処理部は、前記差分値を、前記差分値の周波数帯域に応じたビット幅にクリップ処理する
前記(7)に記載の画像処理装置。
(10) 前記水平1次元逆変換部と前記垂直1次元逆変換部は、互いに異なる変換方式で逆直交変換を行う
前記(1)乃至(9)に記載の画像処理装置。
(11) 画像処理装置の画像処理方法であって、
水平1次元逆変換部が、画像データが水平方向および垂直方向に直交変換された直交変換係数に対して、水平方向の逆直交変換を行い、
ビット幅処理部が、前記水平方向の逆直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行い、
記憶部が、前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶し、
垂直1次元逆変換部が、記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の逆直交変換を行う
画像処理方法。
(12) 画像データに対して、水平方向の直交変換を行う水平1次元変換部と、
前記水平1次元変換部により前記水平方向の直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行うビット幅処理部と、
前記ビット幅処理部により前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶する記憶部と、
前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の直交変換を行う垂直1次元変換部と
を備える画像処理装置。
(13) 前記ビット幅処理部は、前記係数を、前記係数の周波数帯域に応じたビット幅にクリップ処理する
前記(12)に記載の画像処理装置。
(14) 前記水平1次元変換部により前記水平方向の直交変換が行われて得られた、互いに同一の周波数帯域同士の係数を減算する減算部と、
前記減算部による減算により得られた差分値と、前記減算に用いた一方の係数とを加算する加算部と
をさらに備え、
前記ビット幅処理部は、前記減算により得られた前記差分値に対して、前記差分値のビット幅を低減させるようにクリップ処理し、
前記記憶部は、前記減算に用いられた一方の係数と、前記ビット幅処理部によりビット幅が低減された前記差分値を、前記中間データとして記憶し、
前記加算部は、前記記憶部から読み出した、前記減算に用いられた一方の係数と、ビット幅が低減された前記差分値を加算して、前記減算に用いられた他方の係数を復元し、
前記垂直1次元変換部は、前記減算に用いられた一方の係数、および、前記加算部による加算により復元された、前記減算に用いられた他方の係数に対して、垂直方向の直交変換を行う
前記(12)に記載の画像処理装置。
(15) 前記ビット幅処理部は、前記差分値を、所定のビット幅にクリップ処理する
前記(14)に記載の画像処理装置。
(16) 前記ビット幅処理部は、前記差分値を、前記差分値の周波数帯域に応じたビット幅にクリップ処理する
前記(14)に記載の画像処理装置。
(17) 前記水平1次元変換部と前記垂直1次元変換部は、互いに異なる変換方式で直交変換を行う
前記(12)乃至(16)に記載の画像処理装置。
(18) 画像処理装置の画像処理方法であって、
水平1次元変換部が、画像データに対して、水平方向の直交変換を行い、
ビット幅処理部が、前記水平方向の直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行い、
記憶部が、前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶し、
垂直1次元変換部が、記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の直交変換を行う
画像処理方法。
(1) 画像データが水平方向および垂直方向に直交変換された直交変換係数に対して、水平方向の逆直交変換を行う水平1次元逆変換部と、
前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行うビット幅処理部と、
前記ビット幅処理部により前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶する記憶部と、
前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の逆直交変換を行う垂直1次元逆変換部と
を備える画像処理装置。
(2) 前記ビット幅処理部は、前記係数を、前記係数の周波数帯域に応じたビット幅にクリップ処理する
前記(1)に記載の画像処理装置。
(3) 前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた、互いに同一の周波数帯域同士の係数を減算する減算部と、
前記減算部による減算により得られた差分値と、前記減算に用いた一方の係数とを加算する加算部と
をさらに備え、
前記ビット幅処理部は、前記減算により得られた前記差分値に対して、前記差分値のビット幅を低減させるようにクリップ処理し、
前記記憶部は、前記減算に用いられた一方の係数と、前記ビット幅処理部によりビット幅が低減された前記差分値を、前記中間データとして記憶し、
前記加算部は、前記記憶部から読み出した、前記減算に用いられた一方の係数と、ビット幅が低減された前記差分値を加算して、前記減算に用いられた他方の係数を復元し、
前記垂直1次元逆変換部は、前記減算に用いられた一方の係数、および、前記加算部による加算により復元された、前記減算に用いられた他方の係数に対して、垂直方向の逆直交変換を行う
前記(1)に記載の画像処理装置。
(4) 前記加算部は、前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、
前記記憶部は、前記減算に用いられた一方の係数を、前記加算部により最後に読み出されるラインに記憶する
前記(3)に記載の画像処理装置。
(5) 前記ビット幅処理部は、前記差分値を、所定のビット幅にクリップ処理する
前記(3)または(4)に記載の画像処理装置。
(6) 前記ビット幅処理部は、前記差分値を、前記差分値の周波数帯域に応じたビット幅にクリップ処理する
前記(3)または(4)に記載の画像処理装置。
(7) 前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた、互いに同一の周波数帯域同士の係数の平均値を算出する平均値算出部をさらに備え、
前記減算部は、前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた係数と、前記平均値算出部により算出された前記平均値との差分値を算出し、
前記ビット幅処理部は、前記減算部により算出された前記差分値に対して、前記差分値のビット幅を低減させるようにクリップ処理し、
前記記憶部は、前記平均値と、前記ビット幅処理部によりビット幅が低減された前記差分値とを、前記中間データとして記憶し、
前記加算部は、前記記憶部から読み出した、前記差分値と前記平均値とを加算して、前記減算に用いられた係数を復元し、
前記垂直1次元逆変換部は、前記減算に用いられた係数に対して、垂直方向の逆直交変換を行う
前記(3)に記載の画像処理装置。
(8) 前記ビット幅処理部は、前記差分値を、所定のビット幅にクリップ処理する
前記(7)に記載の画像処理装置。
(9) 前記ビット幅処理部は、前記差分値を、前記差分値の周波数帯域に応じたビット幅にクリップ処理する
前記(7)に記載の画像処理装置。
(10) 前記水平1次元逆変換部と前記垂直1次元逆変換部は、互いに異なる変換方式で逆直交変換を行う
前記(1)乃至(9)に記載の画像処理装置。
(11) 画像処理装置の画像処理方法であって、
水平1次元逆変換部が、画像データが水平方向および垂直方向に直交変換された直交変換係数に対して、水平方向の逆直交変換を行い、
ビット幅処理部が、前記水平方向の逆直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行い、
記憶部が、前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶し、
垂直1次元逆変換部が、記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の逆直交変換を行う
画像処理方法。
(12) 画像データに対して、水平方向の直交変換を行う水平1次元変換部と、
前記水平1次元変換部により前記水平方向の直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行うビット幅処理部と、
前記ビット幅処理部により前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶する記憶部と、
前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の直交変換を行う垂直1次元変換部と
を備える画像処理装置。
(13) 前記ビット幅処理部は、前記係数を、前記係数の周波数帯域に応じたビット幅にクリップ処理する
前記(12)に記載の画像処理装置。
(14) 前記水平1次元変換部により前記水平方向の直交変換が行われて得られた、互いに同一の周波数帯域同士の係数を減算する減算部と、
前記減算部による減算により得られた差分値と、前記減算に用いた一方の係数とを加算する加算部と
をさらに備え、
前記ビット幅処理部は、前記減算により得られた前記差分値に対して、前記差分値のビット幅を低減させるようにクリップ処理し、
前記記憶部は、前記減算に用いられた一方の係数と、前記ビット幅処理部によりビット幅が低減された前記差分値を、前記中間データとして記憶し、
前記加算部は、前記記憶部から読み出した、前記減算に用いられた一方の係数と、ビット幅が低減された前記差分値を加算して、前記減算に用いられた他方の係数を復元し、
前記垂直1次元変換部は、前記減算に用いられた一方の係数、および、前記加算部による加算により復元された、前記減算に用いられた他方の係数に対して、垂直方向の直交変換を行う
前記(12)に記載の画像処理装置。
(15) 前記ビット幅処理部は、前記差分値を、所定のビット幅にクリップ処理する
前記(14)に記載の画像処理装置。
(16) 前記ビット幅処理部は、前記差分値を、前記差分値の周波数帯域に応じたビット幅にクリップ処理する
前記(14)に記載の画像処理装置。
(17) 前記水平1次元変換部と前記垂直1次元変換部は、互いに異なる変換方式で直交変換を行う
前記(12)乃至(16)に記載の画像処理装置。
(18) 画像処理装置の画像処理方法であって、
水平1次元変換部が、画像データに対して、水平方向の直交変換を行い、
ビット幅処理部が、前記水平方向の直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行い、
記憶部が、前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶し、
垂直1次元変換部が、記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の直交変換を行う
画像処理方法。
100 画像復号装置, 104 逆直交変換部, 131 水平1次元逆変換部, 132 ビット幅処理部, 133 転置レジスタ, 134 垂直1次元逆変換部, 231 減算部, 232 加算部, 331 平均値算出部, 400 画像符号化装置, 404 直交変換部, 409 逆直交変換部, 431 水平1次元変換部, 432 ビット幅処理部, 433 転置レジスタ, 434 垂直1次元変換部, 531 減算部, 532 加算部
Claims (18)
- 画像データが水平方向および垂直方向に直交変換された直交変換係数に対して、水平方向の逆直交変換を行う水平1次元逆変換部と、
前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行うビット幅処理部と、
前記ビット幅処理部により前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶する記憶部と、
前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の逆直交変換を行う垂直1次元逆変換部と
を備える画像処理装置。 - 前記ビット幅処理部は、前記係数を、前記係数の周波数帯域に応じたビット幅にクリップ処理する
請求項1に記載の画像処理装置。 - 前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた、互いに同一の周波数帯域同士の係数を減算する減算部と、
前記減算部による減算により得られた差分値と、前記減算に用いた一方の係数とを加算する加算部と
をさらに備え、
前記ビット幅処理部は、前記減算により得られた前記差分値に対して、前記差分値のビット幅を低減させるようにクリップ処理し、
前記記憶部は、前記減算に用いられた一方の係数と、前記ビット幅処理部によりビット幅が低減された前記差分値を、前記中間データとして記憶し、
前記加算部は、前記記憶部から読み出した、前記減算に用いられた一方の係数と、ビット幅が低減された前記差分値を加算して、前記減算に用いられた他方の係数を復元し、
前記垂直1次元逆変換部は、前記減算に用いられた一方の係数、および、前記加算部による加算により復元された、前記減算に用いられた他方の係数に対して、垂直方向の逆直交変換を行う
請求項1に記載の画像処理装置。 - 前記加算部は、前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、
前記記憶部は、前記減算に用いられた一方の係数を、前記加算部により最後に読み出されるラインに記憶する
請求項3に記載の画像処理装置。 - 前記ビット幅処理部は、前記差分値を、所定のビット幅にクリップ処理する
請求項3に記載の画像処理装置。 - 前記ビット幅処理部は、前記差分値を、前記差分値の周波数帯域に応じたビット幅にクリップ処理する
請求項3に記載の画像処理装置。 - 前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた、互いに同一の周波数帯域同士の係数の平均値を算出する平均値算出部をさらに備え、
前記減算部は、前記水平1次元逆変換部により前記水平方向の逆直交変換が行われて得られた係数と、前記平均値算出部により算出された前記平均値との差分値を算出し、
前記ビット幅処理部は、前記減算部により算出された前記差分値に対して、前記差分値のビット幅を低減させるようにクリップ処理し、
前記記憶部は、前記平均値と、前記ビット幅処理部によりビット幅が低減された前記差分値とを、前記中間データとして記憶し、
前記加算部は、前記記憶部から読み出した、前記差分値と前記平均値とを加算して、前記減算に用いられた係数を復元し、
前記垂直1次元逆変換部は、前記減算に用いられた係数に対して、垂直方向の逆直交変換を行う
請求項3に記載の画像処理装置。 - 前記ビット幅処理部は、前記差分値を、所定のビット幅にクリップ処理する
請求項7に記載の画像処理装置。 - 前記ビット幅処理部は、前記差分値を、前記差分値の周波数帯域に応じたビット幅にクリップ処理する
請求項7に記載の画像処理装置。 - 前記水平1次元逆変換部と前記垂直1次元逆変換部は、互いに異なる変換方式で逆直交変換を行う
請求項1に記載の画像処理装置。 - 画像処理装置の画像処理方法であって、
水平1次元逆変換部が、画像データが水平方向および垂直方向に直交変換された直交変換係数に対して、水平方向の逆直交変換を行い、
ビット幅処理部が、前記水平方向の逆直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行い、
記憶部が、前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶し、
垂直1次元逆変換部が、記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の逆直交変換を行う
画像処理方法。 - 画像データに対して、水平方向の直交変換を行う水平1次元変換部と、
前記水平1次元変換部により前記水平方向の直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行うビット幅処理部と、
前記ビット幅処理部により前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶する記憶部と、
前記記憶部に記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の直交変換を行う垂直1次元変換部と
を備える画像処理装置。 - 前記ビット幅処理部は、前記係数を、前記係数の周波数帯域に応じたビット幅にクリップ処理する
請求項12に記載の画像処理装置。 - 前記水平1次元変換部により前記水平方向の直交変換が行われて得られた、互いに同一の周波数帯域同士の係数を減算する減算部と、
前記減算部による減算により得られた差分値と、前記減算に用いた一方の係数とを加算する加算部と
をさらに備え、
前記ビット幅処理部は、前記減算により得られた前記差分値に対して、前記差分値のビット幅を低減させるようにクリップ処理し、
前記記憶部は、前記減算に用いられた一方の係数と、前記ビット幅処理部によりビット幅が低減された前記差分値を、前記中間データとして記憶し、
前記加算部は、前記記憶部から読み出した、前記減算に用いられた一方の係数と、ビット幅が低減された前記差分値を加算して、前記減算に用いられた他方の係数を復元し、
前記垂直1次元変換部は、前記減算に用いられた一方の係数、および、前記加算部による加算により復元された、前記減算に用いられた他方の係数に対して、垂直方向の直交変換を行う
請求項12に記載の画像処理装置。 - 前記ビット幅処理部は、前記差分値を、所定のビット幅にクリップ処理する
請求項14に記載の画像処理装置。 - 前記ビット幅処理部は、前記差分値を、前記差分値の周波数帯域に応じたビット幅にクリップ処理する
請求項14に記載の画像処理装置。 - 前記水平1次元変換部と前記垂直1次元変換部は、互いに異なる変換方式で直交変換を行う
請求項12に記載の画像処理装置。 - 画像処理装置の画像処理方法であって、
水平1次元変換部が、画像データに対して、水平方向の直交変換を行い、
ビット幅処理部が、前記水平方向の直交変換が行われて得られた係数に対して、ビット幅を低減させるようにクリップ処理を行い、
記憶部が、前記クリップ処理が行われて、ビット幅が低減された前記係数を、中間データとして記憶し、
垂直1次元変換部が、記憶される前記中間データを垂直方向に1ラインずつ読み出し、垂直方向の直交変換を行う
画像処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201280022963.0A CN103535041A (zh) | 2011-05-19 | 2012-05-11 | 图像处理装置和方法 |
US14/114,259 US20140056535A1 (en) | 2011-05-19 | 2012-05-11 | Image processing device and method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-112314 | 2011-05-19 | ||
JP2011112314A JP2012244397A (ja) | 2011-05-19 | 2011-05-19 | 画像処理装置および方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012157541A1 true WO2012157541A1 (ja) | 2012-11-22 |
Family
ID=47176861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/062088 WO2012157541A1 (ja) | 2011-05-19 | 2012-05-11 | 画像処理装置および方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20140056535A1 (ja) |
JP (1) | JP2012244397A (ja) |
CN (1) | CN103535041A (ja) |
WO (1) | WO2012157541A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2521349A (en) * | 2013-12-05 | 2015-06-24 | Sony Corp | Data encoding and decoding |
WO2017195666A1 (ja) * | 2016-05-13 | 2017-11-16 | ソニー株式会社 | 画像処理装置および方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9762921B2 (en) * | 2012-12-19 | 2017-09-12 | Qualcomm Incorporated | Deblocking filter with reduced line buffer |
CN104320668B (zh) * | 2014-10-31 | 2017-08-01 | 上海交通大学 | Hevc/h.265的dct变换和反变换的simd优化方法 |
JP6992745B2 (ja) | 2016-04-19 | 2022-01-13 | 日本電気株式会社 | デジタルフィルタ装置、デジタルフィルタ処理方法およびデジタルフィルタ処理プログラム |
JP2019020431A (ja) * | 2017-07-11 | 2019-02-07 | ソニーセミコンダクタソリューションズ株式会社 | 固体撮像装置及び情報処理装置 |
JP7259280B2 (ja) * | 2018-11-19 | 2023-04-18 | 株式会社リコー | 符号化装置、符号化方法及び符号化プログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0818972A (ja) * | 1994-07-04 | 1996-01-19 | Nippon Telegr & Teleph Corp <Ntt> | 画像復号化方法 |
JPH1051777A (ja) * | 1996-08-01 | 1998-02-20 | Nec Eng Ltd | 直交変換符号化方式 |
JPH10224791A (ja) * | 1997-02-10 | 1998-08-21 | Nec Eng Ltd | 直交変換符号化用適応量子化方式 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8010711B2 (en) * | 2007-01-26 | 2011-08-30 | Digital Video Chip, Llc | Universal multimedia |
-
2011
- 2011-05-19 JP JP2011112314A patent/JP2012244397A/ja not_active Withdrawn
-
2012
- 2012-05-11 US US14/114,259 patent/US20140056535A1/en not_active Abandoned
- 2012-05-11 WO PCT/JP2012/062088 patent/WO2012157541A1/ja active Application Filing
- 2012-05-11 CN CN201280022963.0A patent/CN103535041A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0818972A (ja) * | 1994-07-04 | 1996-01-19 | Nippon Telegr & Teleph Corp <Ntt> | 画像復号化方法 |
JPH1051777A (ja) * | 1996-08-01 | 1998-02-20 | Nec Eng Ltd | 直交変換符号化方式 |
JPH10224791A (ja) * | 1997-02-10 | 1998-08-21 | Nec Eng Ltd | 直交変換符号化用適応量子化方式 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2521349A (en) * | 2013-12-05 | 2015-06-24 | Sony Corp | Data encoding and decoding |
WO2017195666A1 (ja) * | 2016-05-13 | 2017-11-16 | ソニー株式会社 | 画像処理装置および方法 |
JPWO2017195666A1 (ja) * | 2016-05-13 | 2019-03-14 | ソニー株式会社 | 画像処理装置および方法 |
JP2021108480A (ja) * | 2016-05-13 | 2021-07-29 | ソニーグループ株式会社 | 画像処理装置および方法 |
US11368720B2 (en) | 2016-05-13 | 2022-06-21 | Sony Corporation | Image processing apparatus and method |
Also Published As
Publication number | Publication date |
---|---|
JP2012244397A (ja) | 2012-12-10 |
CN103535041A (zh) | 2014-01-22 |
US20140056535A1 (en) | 2014-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6521013B2 (ja) | 画像処理装置および方法、プログラム、並びに記録媒体 | |
JP5942990B2 (ja) | 画像処理装置および方法 | |
JP5850214B2 (ja) | 画像処理装置および方法、プログラム、並びに記録媒体 | |
JP2013150173A (ja) | 画像処理装置および方法 | |
JPWO2012124461A1 (ja) | 画像処理装置および方法 | |
JP5982734B2 (ja) | 画像処理装置および方法 | |
WO2012157541A1 (ja) | 画像処理装置および方法 | |
WO2013002110A1 (ja) | 画像処理装置および方法 | |
WO2014050676A1 (ja) | 画像処理装置および方法 | |
WO2013108688A1 (ja) | 画像処理装置および方法 | |
WO2013065570A1 (ja) | 画像処理装置および方法 | |
WO2013047325A1 (ja) | 画像処理装置および方法 | |
US10397583B2 (en) | Image processing apparatus and method | |
WO2013065567A1 (ja) | 画像処理装置および方法 | |
WO2012173063A1 (ja) | 画像処理装置および方法 | |
WO2013002106A1 (ja) | 画像処理装置および方法 | |
JP6217997B2 (ja) | 画像処理装置および方法 | |
JP2018029347A (ja) | 画像処理装置および方法 | |
WO2013002111A1 (ja) | 画像処理装置および方法 | |
JP6115619B2 (ja) | 画像処理装置および方法、プログラム、並びに記録媒体 | |
JP5850272B2 (ja) | 画像処理装置および方法、プログラム、並びに記録媒体 | |
JP2013150124A (ja) | 画像処理装置および方法 | |
JP2019146225A (ja) | 画像処理装置および方法 |
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: 12785920 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14114259 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 12785920 Country of ref document: EP Kind code of ref document: A1 |