WO2011018965A1 - 画像処理装置および方法 - Google Patents

画像処理装置および方法 Download PDF

Info

Publication number
WO2011018965A1
WO2011018965A1 PCT/JP2010/063156 JP2010063156W WO2011018965A1 WO 2011018965 A1 WO2011018965 A1 WO 2011018965A1 JP 2010063156 W JP2010063156 W JP 2010063156W WO 2011018965 A1 WO2011018965 A1 WO 2011018965A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
image
unit
processing
pixels
Prior art date
Application number
PCT/JP2010/063156
Other languages
English (en)
French (fr)
Inventor
佐藤 数史
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US13/388,471 priority Critical patent/US20120128069A1/en
Priority to CN201080034618XA priority patent/CN102648630A/zh
Publication of WO2011018965A1 publication Critical patent/WO2011018965A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present invention relates to an image processing apparatus and method, and more particularly to an image processing apparatus and method that realizes parallel or pipelined intra prediction and improves coding efficiency.
  • MPEG2 (ISO / IEC 13818-2) is defined as a general-purpose image encoding system, and is a standard that covers both interlaced scanning images and progressive scanning images, as well as standard resolution images and high-definition images.
  • MPEG2 is currently widely used in a wide range of applications for professional and consumer applications.
  • a code amount (bit rate) of 4 to 8 Mbps is assigned to an interlaced scanned image having a standard resolution of 720 ⁇ 480 pixels.
  • a high resolution interlaced scanned image having 1920 ⁇ 1088 pixels is assigned a code amount (bit rate) of 18 to 22 Mbps.
  • bit rate code amount
  • 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. The standardization of 26L (ITU-T Q6 / 16 ⁇ VCEG) is in progress.
  • 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.
  • this H. Based on 26L, H. Standardization to achieve higher coding efficiency by incorporating functions that are not supported by 26L is performed as JointJModel of Enhanced-Compression Video Coding.
  • H. H.264 and MPEG-4 Part 10 Advanced Video Coding, hereinafter referred to as H.264 / AVC).
  • H.264 / AV system can raise the operating principle in intra prediction as one of the factors that demonstrate high coding efficiency compared to the conventional MPEG2 system and the like.
  • H.M The intra prediction system defined in the H.264 / AV system will be briefly described.
  • the intra prediction mode for luminance signals will be described.
  • three methods are defined: an intra 4 ⁇ 4 prediction mode, an intra 8 ⁇ 8 prediction mode, and an intra 16 ⁇ 16 prediction mode.
  • This is a mode for determining a block unit, and is set for each macroblock.
  • an intra prediction mode independent of the luminance signal can be set for each macroblock.
  • one prediction mode can be set from nine types of prediction modes for each target block of 4 ⁇ 4 pixels.
  • one prediction mode can be set from nine types of prediction modes for each target block of 8 ⁇ 8 pixels.
  • one prediction mode can be set from four types of prediction modes for a target macroblock of 16 ⁇ 16 pixels.
  • the intra 4 ⁇ 4 prediction mode, the intra 8 ⁇ 8 prediction mode, and the intra 16 ⁇ 16 prediction mode will be referred to as 4 ⁇ 4 pixel intra prediction mode, 8 ⁇ 8 pixel intra prediction mode, and 16 ⁇ , respectively. It is also referred to as 16-pixel intra prediction mode as appropriate.
  • numerals -1 to 25 given to each block represent the bit stream order (processing order on the decoding side) of each block.
  • the macroblock is divided into 4 ⁇ 4 pixels, and DCT of 4 ⁇ 4 pixels is performed. Only in the case of the intra 16 ⁇ 16 prediction mode, as shown in the block “ ⁇ 1”, the DC components of each block are collected to generate a 4 ⁇ 4 matrix. Is given.
  • the direct current of each block is indicated as shown in each block of “16” and “17”.
  • the components are collected to generate a 2 ⁇ 2 matrix, which is further subjected to orthogonal transformation.
  • This one-line process indicates a process from an intra prediction process, an orthogonal transform process, a quantization process, an inverse quantization process, and an inverse orthogonal transform process.
  • Patent Document 1 proposes a method of changing the encoding order and the output order as a compressed image.
  • 2A shows the encoding processing order in the method described in Patent Document 1
  • FIG. 2B shows the output order as a compressed image in the method described in Patent Document 1. Yes.
  • FIG. 2A “0, 1, 2a, 3a” is appended to the first block from the top in order from the left. “2b, 3b, 4a, 5a” are assigned to the blocks in the second row from the top in order from the left. “4b, 5b, 6a, 7a” is attached to the blocks in the third row from the top in order from the left. “6b, 7b, 8, 9” is assigned to each block in the third row from the top in order from the left. In the case of the example of FIG. 2A, blocks with the same numbers and different alphabets may be processed first, that is, blocks that can be processed in parallel.
  • each block in the second row from the top is given “2, 3, 6, 7” in order from the left.
  • Each block in the third row from the top is given “8, 9, 12, 13” in order from the left.
  • Each block in the fourth row from the top is assigned “10, 11, 14, 15” in order from the left.
  • the blocks are encoded in ascending order of the numbers assigned to the blocks A in FIG. 2 and rearranged in the ascending order of the numbers assigned to the blocks B in FIG. And output as a compressed image.
  • FIG. 2A two blocks with the same number and different alphabets (for example, a block with “2a” and a block with “2b”) are available for surrounding blocks. Processing is possible without causing (availability). Thereby, in the encoding process of the method described in Patent Document 1, pipeline processing or parallel processing can be performed.
  • the macroblock size is 16 ⁇ 16 pixels.
  • the macroblock size of 16 ⁇ 16 pixels is not optimal for a large image frame such as UHD (Ultra High Definition: 4000 ⁇ 2000 pixels) that is the target of the next-generation encoding method.
  • Non-Patent Document 1 it is also proposed to expand the macroblock size to a size of 32 ⁇ 32 pixels, for example.
  • Patent Document 1 since the encoding processing order and the output order as a compressed image are different, a buffer for holding encoded data is required.
  • adjacent pixel values that are available in the processing order shown in A of FIG. 2 may be unavailable (Unavailable) in the processing order shown in B of FIG.
  • the present invention has been made in view of such circumstances, and realizes parallel or pipeline processing of intra prediction and improves coding efficiency.
  • the image processing apparatus is an address control means for determining block addresses of a target block to be processed next among blocks constituting a predetermined block of an image based on an order different from the encoding standard. Encoding the target block corresponding to the block address determined by the address control means by performing prediction processing using peripheral pixels of the target block, and encoding by the encoding means Stream output means for outputting the target block as a stream in the order in which they are performed.
  • the address control means sets the upper left block to (0,0), and the blocks in ⁇ can be pipeline processing, parallel processing, or first Assuming that either process can be performed, (0,0), (1,0), ⁇ (2,0), (0,1) ⁇ , ⁇ (3,0), (1, 1) ⁇ , ⁇ (2,1), (0,2) ⁇ , ⁇ (3,1), (1,2) ⁇ , ⁇ (2,2), (0,3) ⁇ , ⁇ (3, Based on the order of 2), (1, 3) ⁇ , (2, 3), (3, 3), the block address of the target block can be determined.
  • the apparatus further comprises peripheral pixel availability determination means for determining whether or not peripheral pixels of the target block are usable using the block address determined by the address control means, and the encoding means includes the peripheral
  • the target block can be encoded by performing prediction processing using the peripheral pixels of the target block in a prediction mode using the peripheral pixels determined to be usable by the pixel availability determination unit.
  • the predetermined block is a macro block of m ⁇ m (m ⁇ 16) pixels, and the blocks constituting the predetermined block are blocks of m / 4 ⁇ m / 4 pixels.
  • the predetermined block is a macro block of m ⁇ m (m ⁇ 32) pixels or a sub-block constituting the macro block, and the block constituting the predetermined block is a block of 16 ⁇ 16 pixels.
  • the image processing method is based on the block addresses of the next block to be processed among the blocks constituting the predetermined block of the image by the image processing apparatus in the order different from the encoding standard.
  • the image processing apparatus is a block that constitutes a predetermined block of an image, and is encoded as a stream after being encoded in an order different from the encoding standard in the predetermined block.
  • Decoding means for decoding the target block to be processed next in the order of the stream, address control means for determining the block address of the target block based on an order different from the encoding standard, and the address control means
  • a prediction unit that predicts the prediction image of the target block corresponding to the block address using peripheral pixels of the target block, a prediction image of the target block predicted by the prediction unit, and a decoding unit that decodes the prediction image Adding means for adding the images of the target block.
  • the address control means sets the upper left block to (0,0), and blocks in ⁇ are pipeline processing, parallel processing, or (0,0), (1,0), ⁇ (2,0), (0,1) ⁇ , ⁇ (3,0), (1 , 1) ⁇ , ⁇ (2,1), (0,2) ⁇ , ⁇ (3,1), (1,2) ⁇ , ⁇ (2,2), (0,3) ⁇ , ⁇ (3 , 2), (1, 3) ⁇ , (2, 3), (3, 3), the block address of the target block can be determined.
  • the apparatus further comprises peripheral pixel availability determination means for determining whether or not peripheral pixels of the target block can be used using the block address determined by the address control means, and the decoding means includes the target block
  • the prediction mode information is also decoded, and the prediction means determines that the prediction image of the target block can be used by the neighboring pixel availability determination means in the prediction mode indicated by the prediction mode information. Prediction can be performed using peripheral pixels of the block.
  • the predetermined block is a macro block of m ⁇ m (m ⁇ 16) pixels, and the blocks constituting the predetermined block are blocks of m / 4 ⁇ m / 4 pixels.
  • the predetermined block is a macro block of m ⁇ m (m ⁇ 32) pixels or a sub-block constituting the macro block, and the block constituting the predetermined block is a block of 16 ⁇ 16 pixels.
  • the image processing apparatus is a block constituting a predetermined block of an image, and is encoded in an order different from the encoding standard in the predetermined block.
  • the target block to be processed next which is output as a subsequent stream, is decoded in the order of the stream, and the block addresses of the target block are determined based on the order different from the encoding standard, and correspond to the determined block address Predicting a predicted image of the target block using peripheral pixels of the target block, and adding the predicted image of the target block and the decoded image of the target block.
  • block addresses of a target block to be processed next among blocks constituting a predetermined block of an image are determined based on an order different from the encoding standard, and determined block addresses
  • the target block corresponding to is subjected to a prediction process using peripheral pixels of the target block, is encoded, and the target block is output as a stream in the encoded order.
  • a block that constitutes a predetermined block of an image is encoded as a stream after being encoded in an order different from the encoding standard in the predetermined block.
  • the target block to be processed is decoded in the order of the stream, the block address of the target block is determined based on the order different from the encoding standard, and the predicted image of the target block corresponding to the determined block address is Prediction is performed using surrounding pixels of the target block. Then, the predicted image of the target block and the decoded image of the target block are added.
  • each of the above-described image processing apparatuses may be an independent apparatus, or may be an internal block constituting one image encoding apparatus or image decoding apparatus.
  • blocks constituting a predetermined block can be encoded. Further, according to the first aspect of the present invention, parallel or pipeline processing of intra prediction can be realized, and encoding efficiency can be improved.
  • blocks constituting a predetermined block can be decoded.
  • parallel or pipeline processing of intra prediction can be realized, and encoding efficiency can be improved.
  • FIG. 3 shows a configuration of an embodiment of an image encoding apparatus as an image processing apparatus to which the present invention is applied.
  • This image encoding device 51 is, for example, H.264. 264 and MPEG-4 Part10 (Advanced Video Coding) (hereinafter referred to as H.264 / AVC) format is used for compression coding.
  • H.264 / AVC Advanced Video Coding
  • the image encoding device 51 includes an A / D conversion unit 61, a screen rearrangement buffer 62, a calculation unit 63, an orthogonal transformation unit 64, a quantization unit 65, a lossless encoding unit 66, a storage buffer 67, An inverse quantization unit 68, an inverse orthogonal transform unit 69, and a calculation unit 70 are included.
  • the image encoding device 51 includes a deblock filter 71, a frame memory 72, a switch 73, an intra prediction unit 74, an address control unit 75, a surrounding pixel availability determination unit 76, a motion prediction / compensation unit 77, and a predicted image selection.
  • a unit 78 and a rate control unit 79 are included.
  • the A / D converter 61 A / D converts the input image, outputs it to the screen rearrangement buffer 62, and stores it.
  • the screen rearrangement buffer 62 rearranges the stored frames in the display order in the order of frames for encoding in accordance with GOP (Group of Picture).
  • the calculation unit 63 subtracts the prediction image from the intra prediction unit 74 or the prediction image from the motion prediction / compensation unit 77 selected by the prediction image selection unit 78 from the image read from the screen rearrangement buffer 62, The difference information is output to the orthogonal transform unit 64.
  • the orthogonal transform unit 64 subjects the difference information from the calculation unit 63 to orthogonal transform such as discrete cosine transform and Karhunen-Loeve transform, and outputs the transform coefficient.
  • the quantization unit 65 quantizes the transform coefficient output from the orthogonal transform unit 64.
  • the quantized transform coefficient that is the output of the quantization unit 65 is input to the lossless encoding unit 66, where lossless encoding such as variable length encoding and arithmetic encoding is performed and compressed.
  • the lossless encoding unit 66 acquires information indicating intra prediction from the intra prediction unit 74 and acquires information indicating inter prediction mode from the motion prediction / compensation unit 77.
  • information indicating intra prediction is hereinafter also referred to as intra prediction mode information.
  • information indicating an information mode indicating inter prediction is hereinafter also referred to as inter prediction mode information.
  • the lossless encoding unit 66 includes an encoding processing unit 81 and a stream output unit 82.
  • the encoding processing unit 81 is an H.264 standard. Encode quantized transform coefficients in a processing order different from the processing order of H.264 / AVC, encode information indicating intra prediction, information indicating inter prediction mode, etc., and part of header information in the compressed image
  • the stream output unit 82 outputs the encoded data as a stream in the same output order as the encoding process order, and stores the data in the storage buffer 67.
  • the processing order described above is the processing order in the case where the prediction image from the intra prediction unit 74 is encoded.
  • H in the case of the prediction image from the motion prediction / compensation unit 77, H.
  • encoding processing and output processing are performed in the order of H.264 / AVC processing.
  • the lossless encoding unit 66 performs lossless encoding processing such as variable length encoding or arithmetic encoding.
  • variable length coding examples include H.264.
  • CAVLC Context-Adaptive Variable Length Coding
  • arithmetic coding examples include CABAC (Context-Adaptive Binary Arithmetic Coding).
  • the accumulation buffer 67 converts the data supplied from the lossless encoding unit 66 to H.264. As a compressed image encoded by the H.264 / AVC format, for example, it is output to a recording device or a transmission path (not shown) in the subsequent stage.
  • the quantized transform coefficient output from the quantization unit 65 is also input to the inverse quantization unit 68, and after inverse quantization, the inverse orthogonal transform unit 69 further performs inverse orthogonal transform.
  • the output subjected to the inverse orthogonal transform is added to the predicted image supplied from the predicted image selection unit 78 by the calculation unit 70, and becomes a locally decoded image.
  • the deblocking filter 71 removes block distortion from the decoded image, and then supplies the deblocking filter 71 to the frame memory 72 for accumulation.
  • the image before the deblocking filter processing by the deblocking filter 71 is also supplied to the frame memory 72 and accumulated.
  • the switch 73 outputs the reference image stored in the frame memory 72 to the motion prediction / compensation unit 77 or the intra prediction unit 74.
  • an I picture, a B picture, and a P picture from the screen rearrangement buffer 62 are supplied to the intra prediction unit 74 as images to be intra predicted (also referred to as intra processing). Further, the B picture and the P picture read from the screen rearrangement buffer 62 are supplied to the motion prediction / compensation unit 77 as an image to be inter predicted (also referred to as inter processing).
  • the intra prediction unit 74 performs intra prediction processing of all candidate intra prediction modes based on the image to be intra predicted read from the screen rearrangement buffer 62 and the reference image supplied from the frame memory 72, and performs prediction. Generate an image.
  • the intra prediction unit 74 supplies the address control unit 75 with information on the next processing number indicating which block is to be processed next in the macro block. In response to this, the intra prediction unit 74 acquires a block address and a control signal for controlling or prohibiting pipeline processing or parallel processing from the address control unit 75. In addition, the intra prediction unit 74 acquires information on the availability of surrounding pixels of the target block to be processed from the surrounding pixel availability determination unit 76.
  • the intra prediction unit 74 performs an intra prediction process in an intra prediction mode using peripheral pixels determined to be usable by the peripheral pixel availability determination unit 76 for a block corresponding to the block address from the address control unit 75. Do. At this time, when a control signal for controlling pipeline processing or parallel processing is received from the address control unit 75, the intra prediction unit 74 performs intra prediction in pipeline processing or parallel processing for those blocks.
  • the intra prediction unit 74 calculates a cost function value for the intra prediction mode in which the predicted image is generated, and selects an intra prediction mode in which the calculated cost function value gives the minimum value as the optimal intra prediction mode.
  • the intra prediction unit 74 supplies the generated predicted image and the cost function value calculated for the corresponding optimal intra prediction mode to the predicted image selection unit 78.
  • the intra prediction unit 74 supplies information indicating the optimal intra prediction mode to the lossless encoding unit 66.
  • the lossless encoding unit 66 encodes this information and uses it as a part of header information in the compressed image.
  • a block address to be processed next is calculated in a processing order different from the H.264 / AVC processing order, and the block address is supplied to the intra prediction unit 74 and the surrounding pixel availability determination unit 76.
  • the address control unit 75 determines whether the target block can be pipelined or parallel processed using the calculated block address.
  • the address control unit 75 supplies a control signal for controlling or prohibiting pipeline processing or parallel processing to the intra prediction unit 74 according to the determination result.
  • the surrounding pixel availability determination unit 76 determines the availability of the surrounding pixels of the target block using the block address from the address control unit 75, and uses the determined surrounding pixel availability information as an intra prediction unit. 74.
  • the motion prediction / compensation unit 77 performs motion prediction / compensation processing for all candidate inter prediction modes. That is, the inter prediction image read from the screen rearrangement buffer 62 and the reference image from the frame memory 72 are supplied to the motion prediction / compensation unit 77 via the switch 73.
  • the motion prediction / compensation unit 77 detects motion vectors of all candidate inter prediction modes based on the inter-processed image and the reference image, performs compensation processing on the reference image based on the motion vector, and obtains the predicted image. Generate.
  • the motion prediction / compensation unit 77 calculates cost function values for all candidate inter prediction modes.
  • the motion prediction / compensation unit 77 determines the prediction mode that gives the minimum value among the calculated cost function values as the optimal inter prediction mode.
  • the motion prediction / compensation unit 77 supplies the prediction image generated in the optimal inter prediction mode and its cost function value to the prediction image selection unit 78.
  • the motion prediction / compensation unit 77 sends information indicating the optimal inter prediction mode (inter prediction mode information) to the lossless encoding unit 66. Output.
  • the lossless encoding unit 66 performs lossless encoding processing such as variable length encoding and arithmetic encoding on the information from the motion prediction / compensation unit 77 and inserts the information into the header portion of the compressed image.
  • the predicted image selection unit 78 determines the optimal prediction mode from the optimal intra prediction mode and the optimal inter prediction mode based on each cost function value output from the intra prediction unit 74 or the motion prediction / compensation unit 77. Then, the predicted image selection unit 78 selects a predicted image in the determined optimal prediction mode and supplies the selected predicted image to the calculation units 63 and 70. At this time, the predicted image selection unit 78 supplies the selection information of the predicted image to the intra prediction unit 74 or the motion prediction / compensation unit 77.
  • the rate control unit 79 controls the rate of the quantization operation of the quantization unit 65 based on the compressed image stored in the storage buffer 67 so that overflow or underflow does not occur.
  • FIG. 4 is a block diagram illustrating a configuration example of the address control unit.
  • the address control unit 75 includes a block address calculation unit 91 and a pipeline / parallel processing control unit 92.
  • the intra prediction unit 74 supplies information on the next processing number to the block address calculation unit 91 for the blocks in the macroblock.
  • This next processing number is, for example, when a macroblock consisting of 16 ⁇ 16 pixels is composed of 16 blocks consisting of 4 ⁇ 4 pixels, the first to 16th number of processes are finished, This is information regarding what number processing is performed next.
  • the block address calculation unit 91 From the processing number from the intra prediction unit 74, the block address calculation unit 91 The block address of the target block to be processed next is calculated and determined in a processing order different from the processing order of H.264 / AVC. The block address calculation unit 91 supplies the determined block address to the intra prediction unit 74, the pipeline / parallel processing control unit 92, and the surrounding pixel availability determination unit 76.
  • the pipeline / parallel processing control unit 92 uses the block address from the block address calculation unit 91 to determine whether the target block is capable of pipeline processing or parallel processing.
  • the pipeline / parallel processing control unit 92 supplies a control signal for controlling or prohibiting the pipeline processing or parallel processing to the intra prediction unit 74 according to the determination result.
  • the surrounding pixel availability determination unit 76 determines the availability of the surrounding pixels of the target block using the block address from the block address calculation unit 91, and stores information indicating the determined availability of the surrounding pixels in the intra block. This is supplied to the prediction unit 74.
  • the intra prediction unit 74 performs intra prediction in an intra prediction mode that uses peripheral pixels determined to be usable by the peripheral pixel availability determination unit 76 for the target block corresponding to the block address from the block address calculation unit 91. Process. At that time, the intra prediction unit 74 performs pipeline processing or parallel processing intra prediction on a plurality of blocks based on a control signal from the pipeline / parallel processing control unit 92 or only one block. Perform intra prediction.
  • the encoded blocks are further output as a stream in the same order as the encoding process.
  • the encoding process is performed in the order of numbers A in FIG. 2, that is, intra prediction, orthogonal transform, quantization, inverse quantization, and inverse orthogonal transform are processed in the order of numbers A in FIG. Is done.
  • ⁇ 2a, 2b ⁇ indicates that either may be processed first.
  • the other process is started, that is, pipeline processing is possible, and parallel processing is also possible.
  • H.264 / AVC encoding process is performed in the order of the numbers assigned to the respective blocks B in FIG.
  • the blocks to which the respective numbers are attached are also referred to as “number” blocks.
  • the encoding and output order of the image encoding device 51 that is, the pipeline processing in the case of the “2a” block and the “2b” block shown in FIG. A timing chart is shown.
  • the orthogonal transformation of the “2a” block is started, and at the same time, “2b” is not affected by the processing of the “2a” block. Intra prediction for this block has been started.
  • Subsequent quantization, inverse quantization, and inverse orthogonal transformation of the “2a” block are also performed without affecting the processing of the “2b” block, and the orthogonal transformation, quantization, and inverse of the “2b” block are performed.
  • the quantization and the inverse orthogonal transform are also performed without being affected by the processing of the “2a” block.
  • the encoding and output order of the image encoding device 51 that is, the parallel processing timing chart in the case of the “2a” block and the “2b” block shown in FIG. It is shown.
  • the intra prediction of the block “2b” is started simultaneously with the intra prediction of the block “2a”.
  • Subsequent orthogonal transformation, quantization, inverse quantization, and inverse orthogonal transformation of the “2a” block are performed simultaneously with the orthogonal transformation, quantization, inverse quantization, and inverse orthogonal transformation of the “2b” block, respectively. It has been broken.
  • pipeline processing as shown in FIG. 5B and parallel processing shown in FIG. 5C are performed. Is possible.
  • the order of encoding processing is the order of numbers assigned to A in FIG. 2, but the order of output to the stream is assigned to B in FIG. In numerical order. Therefore, a buffer for changing the order (for reordering) was necessary.
  • the image encoding device 51 since the encoding order and the output order are the same, it is not necessary to provide a buffer between the encoding processing unit 81 and the stream output unit 82.
  • each block is given a number indicating the coding order, and the number in parentheses attached next to the number represents the output order of the proposal described in Patent Document 1. ing.
  • the output order is the number in parentheses, the output order of the block “3b” is third, and the output order of the block “2a” is fourth, so the block “3b” Instead, the “2a” block is output later.
  • the “6a” block is output after the “7b” block.
  • the decoding order on the decoding side is also the same, and the upper right periphery for the “3b” block and the “7b” block
  • the pixel value can be processed as available. That is, the number of candidate intra prediction modes increases.
  • step S11 the A / D converter 61 performs A / D conversion on the input image.
  • step S12 the screen rearrangement buffer 62 stores the image supplied from the A / D conversion unit 61, and rearranges the picture from the display order to the encoding order.
  • step S13 the calculation unit 63 calculates the difference between the image rearranged in step S12 and the predicted image.
  • the predicted image is supplied from the motion prediction / compensation unit 77 in the case of inter prediction and from the intra prediction unit 74 in the case of intra prediction to the calculation unit 63 via the prediction image selection unit 78.
  • ⁇ Difference data has a smaller data volume than 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 S14 the orthogonal transformation unit 64 orthogonally transforms the difference information supplied from the calculation unit 63. Specifically, orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed, and transformation coefficients are output.
  • step S15 the quantization unit 65 quantizes the transform coefficient. At the time of this quantization, the rate is controlled as described in the process of step S25 described later.
  • step S ⁇ b> 16 the inverse quantization unit 68 inversely quantizes the transform coefficient quantized by the quantization unit 65 with characteristics corresponding to the characteristics of the quantization unit 65.
  • step S ⁇ b> 17 the inverse orthogonal transform unit 69 performs inverse orthogonal transform on the transform coefficient inversely quantized by the inverse quantization unit 68 with characteristics corresponding to the characteristics of the orthogonal transform unit 64.
  • step S ⁇ b> 18 the calculation unit 70 adds the predicted image input via the predicted image selection unit 78 to the locally decoded difference information, and outputs the locally decoded image (input to the calculation unit 63. Corresponding image).
  • step S ⁇ b> 19 the deblock filter 71 filters the image output from the calculation unit 70. Thereby, block distortion is removed.
  • step S20 the frame memory 72 stores the filtered image. Note that an image that has not been filtered by the deblocking filter 71 is also supplied to the frame memory 72 from the computing unit 70 and stored therein.
  • step S21 the intra prediction unit 74 and the motion prediction / compensation unit 77 each perform image prediction processing. That is, in step S21, the intra prediction unit 74 performs an intra prediction process in the intra prediction mode. The motion prediction / compensation unit 77 performs inter prediction mode motion prediction / compensation processing.
  • step S21 The details of the prediction process in step S21 will be described later with reference to FIG. 8.
  • prediction processes in all candidate prediction modes are performed, and cost functions in all candidate prediction modes are obtained. Each value is calculated. Then, based on the calculated cost function value, the optimal intra prediction mode is selected, and the predicted image generated by the intra prediction in the optimal intra prediction mode and its cost function value are supplied to the predicted image selection unit 78.
  • the optimal inter prediction mode is determined from the inter prediction modes based on the calculated cost function value, and the predicted image generated in the optimal inter prediction mode and its cost function value are sent to the predicted image selection unit 78. Supplied.
  • step S ⁇ b> 22 the predicted image selection unit 78 optimizes one of the optimal intra prediction mode and the optimal inter prediction mode based on the cost function values output from the intra prediction unit 74 and the motion prediction / compensation unit 77. Determine the prediction mode. Then, the predicted image selection unit 78 selects the predicted image in the determined optimal prediction mode and supplies it to the calculation units 63 and 70. As described above, this predicted image is used for the calculations in steps S13 and S18.
  • the prediction image selection information is supplied to the intra prediction unit 74 or the motion prediction / compensation unit 77.
  • the intra prediction unit 74 supplies information indicating the optimal intra prediction mode (that is, intra prediction mode information) to the lossless encoding unit 66.
  • the motion prediction / compensation unit 77 sends information indicating the optimal inter prediction mode and, if necessary, information corresponding to the optimal inter prediction mode to the lossless encoding unit 66. Output.
  • Information according to the optimal inter prediction mode includes motion vector information, flag information, reference frame information, and the like. That is, when a prediction image in the inter prediction mode is selected as the optimal inter prediction mode, the motion prediction / compensation unit 77 outputs the inter prediction mode information, motion vector information, and reference frame information to the lossless encoding unit 66. .
  • step S23 the encoding processing unit 81 encodes the quantized transform coefficient output from the quantization unit 65. That is, the difference image is subjected to lossless encoding such as variable length encoding and arithmetic encoding, and is compressed.
  • the intra prediction mode information from the intra prediction unit 74 or the information corresponding to the optimal inter prediction mode from the motion prediction / compensation unit 77 input to the encoding processing unit 81 in step S22 described above is also encoded. And added to the header information.
  • the data encoded by the encoding processing unit 81 is output as a stream to the accumulation buffer 67 by the stream output unit 82 in the same output order as the encoding processing order.
  • step S24 the accumulation buffer 67 accumulates the difference image as a compressed image.
  • the compressed image stored in the storage buffer 67 is appropriately read and transmitted to the decoding side via the transmission path.
  • step S25 the rate control unit 79 controls the quantization operation rate of the quantization unit 65 based on the compressed image stored in the storage buffer 67 so that overflow or underflow does not occur.
  • the decoded image to be referred to is read from the frame memory 72, and the intra prediction unit 74 via the switch 73. To be supplied.
  • the intra prediction unit 74 supplies the address control unit 75 with information on the next processing number indicating which block is to be processed next in the macro block.
  • step S31 the address control unit 75 and the surrounding pixel availability determination unit 76 perform preprocessing for intra prediction. Details of the intra prediction preprocessing in step S31 will be described later with reference to FIG.
  • the block address of the next block to be processed corresponding to the processing number is determined in the processing order shown in A of FIG.
  • the determined block address is used to determine whether or not the target block can be pipelined or parallel processed and the availability of the peripheral pixels of the target block.
  • a block address of a block to be processed next, a control signal for controlling or prohibiting pipeline processing or parallel processing, and information indicating availability of surrounding pixels are supplied to the intra prediction unit 74.
  • step S32 the intra prediction unit 74 performs intra prediction on the pixels of the block to be processed in all candidate intra prediction modes using the supplied image. Note that pixels that have not been deblocked filtered by the deblocking filter 71 are used as decoded pixels that are referred to.
  • intra prediction is performed in all candidate intra prediction modes.
  • the intra prediction unit 74 uses the peripheral pixels determined to be usable by the peripheral pixel availability determination unit 76 for the target block to which the block address determined by the address control unit 75 corresponds.
  • Intra prediction processing is performed in the prediction mode.
  • the intra prediction unit 74 when receiving a control signal for controlling pipeline processing or parallel processing from the address control unit 75, the intra prediction unit 74 performs intra prediction on the blocks in the pipeline processing or parallel processing.
  • cost function values are calculated for all candidate intra prediction modes, and the optimal intra prediction mode is determined based on the calculated cost function values.
  • the generated predicted image and the cost function value of the optimal intra prediction mode are supplied to the predicted image selection unit 78.
  • the processing target image supplied from the screen rearrangement buffer 62 is an image to be inter-processed
  • the referenced image is read from the frame memory 72 and supplied to the motion prediction / compensation unit 77 via the switch 73.
  • the motion prediction / compensation unit 77 performs an inter motion prediction process. That is, the motion prediction / compensation unit 77 refers to the image supplied from the frame memory 72 and performs motion prediction processing for all candidate inter prediction modes.
  • step S33 Details of the inter motion prediction process in step S33 will be described later with reference to FIG. 22.
  • the motion prediction process is performed in all candidate inter prediction modes, and all candidate inter prediction modes are set.
  • a cost function value is calculated.
  • step S34 the motion prediction / compensation unit 77 compares the cost function value for the inter prediction mode calculated in step S33, and determines the prediction mode that gives the minimum value as the optimal inter prediction mode. Then, the motion prediction / compensation unit 77 supplies the predicted image generated in the optimal inter prediction mode and its cost function value to the predicted image selection unit 78.
  • the intra prediction mode for luminance signals will be described.
  • three methods are defined: an intra 4 ⁇ 4 prediction mode, an intra 8 ⁇ 8 prediction mode, and an intra 16 ⁇ 16 prediction mode.
  • This is a mode for determining a block unit, and is set for each macroblock.
  • an intra prediction mode independent of the luminance signal can be set for each macroblock.
  • one prediction mode can be set from nine types of prediction modes for each target block of 4 ⁇ 4 pixels.
  • one prediction mode can be set from nine types of prediction modes for each target block of 8 ⁇ 8 pixels.
  • one prediction mode can be set from four types of prediction modes for a target macroblock of 16 ⁇ 16 pixels.
  • the intra 4 ⁇ 4 prediction mode, the intra 8 ⁇ 8 prediction mode, and the intra 16 ⁇ 16 prediction mode will be referred to as 4 ⁇ 4 pixel intra prediction mode, 8 ⁇ 8 pixel intra prediction mode, and 16 ⁇ , respectively. It is also referred to as 16-pixel intra prediction mode as appropriate.
  • FIG. 9 and FIG. 10 are diagrams showing nine types of luminance signal 4 ⁇ 4 pixel intra prediction modes (Intra — 4 ⁇ 4_pred_mode). Each of the eight types of modes other than mode 2 indicating average value (DC) prediction corresponds to the directions indicated by the numbers 0, 1, 3 to 8 in FIG.
  • pixels a to p represent pixels of a target block to be intra-processed
  • pixel values A to M represent pixel values of pixels belonging to adjacent blocks. That is, the pixels a to p are images to be processed that are read from the screen rearrangement buffer 62, and the pixel values A to M are pixel values of a decoded image that is read from the frame memory 72 and referred to. It is.
  • the prediction pixel values of the pixels a to p are generated as follows using the pixel values A to M of the pixels belonging to the adjacent blocks.
  • the pixel value “available” indicates that the pixel value can be used without any reason such as being at the end of the image frame or not yet encoded.
  • the pixel value “unavailable” indicates that the pixel value is not usable because it is at the end of the image frame or has not been encoded yet.
  • Mode 0 is the Vertical Prediction mode, and is applied only when the pixel values A to D are “available”.
  • the predicted pixel values of the pixels a to p are generated as in the following formula (1).
  • Mode 1 is a horizontal prediction mode and is applied only when the pixel values I to L are “available”.
  • the predicted pixel values of the pixels a to p are generated as in the following Expression (2).
  • Predicted pixel value of pixels a, b, c, d I
  • Predicted pixel value of pixels e, f, g, h J
  • Predicted pixel value of pixels i, j, k, l K
  • Predicted pixel value of pixels m, n, o, p L (2)
  • Mode 2 is a DC Prediction mode, and when the pixel values A, B, C, D, I, J, K, and L are all “available”, the predicted pixel value is generated as shown in Expression (3). (A + B + C + D + I + J + K + L + 4) >> 3 (3)
  • Mode 3 is a Diagonal_Down_Left Prediction mode, and is applied only when the pixel values A, B, C, D, I, J, K, L, and M are “available”. In this case, the predicted pixel values of the pixels a to p are generated as in the following Expression (6).
  • Mode 4 is a Diagonal_Down_Right Prediction mode, and is applied only when the pixel values A, B, C, D, I, J, K, L, and M are “available”. In this case, the predicted pixel values of the pixels a to p are generated as in the following Expression (7).
  • Mode 5 is a Diagonal_Vertical_Right Prediction mode, and is applied only when the pixel values A, B, C, D, I, J, K, L, and M are “available”. In this case, the predicted pixel values of the pixels a to p are generated as in the following Expression (8).
  • Mode 6 is a Horizontal_Down Prediction mode, and is applied only when the pixel values A, B, C, D, I, J, K, L, and M are “available”.
  • the predicted pixel values of the pixels a to p are generated as in the following Expression (9).
  • Mode 7 is Vertical_Left Prediction mode, and is applied only when the pixel values A, B, C, D, I, J, K, L, and M are “available”.
  • the predicted pixel values of the pixels a to p are generated as in the following Expression (10).
  • Mode 8 is a Horizontal_Up Prediction mode, and is applied only when the pixel values A, B, C, D, I, J, K, L, and M are “available”. In this case, the predicted pixel values of the pixels a to p are generated as in the following Expression (11).
  • a 4 ⁇ 4 pixel intra prediction mode (Intra — 4 ⁇ 4_pred_mode) encoding method for luminance signals will be described with reference to FIG.
  • a target block C that is 4 ⁇ 4 pixels and is an encoding target is illustrated, and a block A and a block B that are 4 ⁇ 4 pixels adjacent to the target block C are illustrated.
  • Intra_4x4_pred_mode in the target block C and Intra_4x4_pred_mode in the block A and the block B are highly correlated.
  • Intra_4x4_pred_mode in the block A and the block B is set as Intra_4x4_pred_modeA and Intra_4x4_pred_modeB, respectively, and MostProbableMode is defined as the following equation (12).
  • MostProbableMode Min (Intra_4x4_pred_modeA, Intra_4x4_pred_modeB) (12)
  • MostProbableMode the one to which a smaller mode_number is assigned is referred to as MostProbableMode.
  • prev_intra4x4_pred_mode_flag [luma4x4BlkIdx]
  • rem_intra4x4_pred_mode [luma4x4BlkIdx]
  • Intra_4x4_pred_mode and Intra4x4PredMode [luma4x4BlkIdx] for the target block C can be obtained.
  • FIG. 14 and FIG. 15 are diagrams illustrating nine types of luminance signal 8 ⁇ 8 pixel intra prediction modes (Intra — 8 ⁇ 8_pred_mode).
  • the pixel value in the target 8 ⁇ 8 block is p [x, y] (0 ⁇ x ⁇ 7; 0 ⁇ y ⁇ 7), and the pixel value of the adjacent block is p [-1, -1],. [-1,15], p [-1,0], ..., [p-1,7].
  • a low-pass filtering process is performed on adjacent pixels prior to generating a prediction value.
  • the pixel values before the low-pass filtering process are p [-1, -1], ..., p [-1,15], p [-1,0], ... p [-1,7], and after the process Are represented as p ′ [ ⁇ 1, ⁇ 1],..., P ′ [ ⁇ 1,15], p ′ [ ⁇ 1,0],... P ′ [ ⁇ 1,7].
  • p ′ [0, -1] is calculated as in the following equation (14) when p [-1, -1] is “available”, and when “not available” Is calculated as in the following equation (15).
  • p '[0, -1] (p [-1, -1] + 2 * p [0, -1] + p [1, -1] + 2) >> 2
  • p '[0, -1] (3 * p [0, -1] + p [1, -1] + 2) >> 2 ...
  • p '[x, -1] (p [x-1, -1] + 2 * p [x, -1] + p [x + 1, -1] + 2) >> 2 ...
  • p '[x, -1] (p [x-1, -1] + 2 * p [x, -1] + p [x + 1, -1] + 2) >> 2
  • p '[15, -1] (p [14, -1] + 3 * p [15, -1] + 2) >> 2 ... (17)
  • p '[-1, -1] is calculated as follows when p [-1, -1] is "available”. That is, p ′ [ ⁇ 1, ⁇ 1] is calculated as in Expression (18) when both p [0, ⁇ 1] and p [ ⁇ 1,0] are available, and p [ -1,0] is “unavailable”, it is calculated as in equation (19). Further, p ′ [ ⁇ 1, ⁇ 1] is calculated as in Expression (20) when p [0, ⁇ 1] is “unavailable”.
  • p '[-1, -1] (p [0, -1] + 2 * p [-1, -1] + p [-1,0] + 2) >> 2 ...
  • p '[-1,0] (p [-1, -1] + 2 * p [-1,0] + p [-1,1] + 2) >> 2 ...
  • p '[-1,0] (3 * p [-1,0] + p [-1,1] + 2) >> 2 (22)
  • p [-1, y] (p [-1, y-1] + 2 * p [-1, y] + p [-1, y + 1] + 2) >> 2
  • p '[-1,7] (p [-1,6] + 3 * p [-1,7] + 2) >> 2 ... (24)
  • the prediction value in each intra prediction mode shown in FIG. 14 and FIG. 15 is generated as follows using p ′ calculated in this way.
  • the predicted value pred8x8 L [x, y] is generated as in the following Expression (25).
  • pred8x8 L [x, y] (p '[14, -1] + 3 * p [15, -1] + 2) >> 2 ...
  • red8x8 L [x, y] (p '[x + y, -1] + 2 * p' [x + y + 1, -1] + p '[x + y + 2, -1] + 2) >> 2 ... (32)
  • pred8x8 L [x, y] (p '[x + (y >> 1),-1] + p' [x + (y >> 1) + 1, -1] + 1) >> 1 ...
  • the predicted pixel value is generated as in the following Expression (49) ′.
  • FIGS. 16 and 17 are diagrams illustrating 16 ⁇ 16 pixel intra prediction modes (Intra — 16 ⁇ 16_pred_mode) of four types of luminance signals.
  • the predicted pixel value Pred (x, y) of each pixel of the target macroblock A is generated as in the following equation (51).
  • the predicted pixel value Pred (x, y) of each pixel of the target macroblock A is generated as in the following equation (52).
  • the predicted pixel value Pred (x, y) of each pixel is generated as in the following equation (53).
  • the predicted pixel value Pred (x, y) of each pixel of the target macroblock A is generated as in the following Expression (56).
  • FIG. 19 is a diagram illustrating four types of color difference signal intra prediction modes (Intra_chroma_pred_mode).
  • the color difference signal intra prediction mode can be set independently of the luminance signal intra prediction mode.
  • the intra prediction mode for the color difference signal is in accordance with the 16 ⁇ 16 pixel intra prediction mode of the luminance signal described above.
  • the 16 ⁇ 16 pixel intra prediction mode of the luminance signal is intended for a block of 16 ⁇ 16 pixels
  • the intra prediction mode for the color difference signal is intended for a block of 8 ⁇ 8 pixels.
  • the mode numbers do not correspond to each other.
  • pixel values of pixels adjacent to the target macroblock A to be intra-processed 8 ⁇ 8 pixels in the case of a color difference signal
  • the predicted pixel value Pred (x, y) of each pixel is generated as in the following Expression (57).
  • the predicted pixel value Pred (x, y) of each pixel of the target macroblock A is generated as in the following equation (60).
  • the predicted pixel value Pred (x, y) of each pixel of the target macroblock A is generated as in the following equation (61).
  • the predicted pixel value Pred (x, y) of each pixel of the target macroblock A is generated as in the following Expression (62).
  • the luminance signal intra prediction modes include nine types of 4 ⁇ 4 pixel and 8 ⁇ 8 pixel block units, and four types of 16 ⁇ 16 pixel macroblock unit prediction modes. This block unit mode is set for each macroblock unit.
  • the color difference signal intra prediction modes include four types of prediction modes in units of 8 ⁇ 8 pixel blocks. This color difference signal intra prediction mode can be set independently of the luminance signal intra prediction mode.
  • the 4 ⁇ 4 pixel intra prediction mode (intra 4 ⁇ 4 prediction mode) and the 8 ⁇ 8 pixel intra prediction mode (intra 8 ⁇ 8 prediction mode) of the luminance signal are 4 ⁇ 4 pixels and 8 ⁇ 8 pixels.
  • One intra prediction mode is set for each block of luminance signals.
  • 16 ⁇ 16 pixel intra prediction mode for luminance signals (intra 16 ⁇ 16 prediction mode) and the intra prediction mode for color difference signals one prediction mode is set for one macroblock.
  • Prediction mode 2 is average value prediction.
  • the block address calculation unit 91 is supplied with information of the next processing number indicating which block is the next to be processed in the macro block from the intra prediction unit 74.
  • step S41 the block address calculation unit 91 calculates the block address of the target block in the macroblock from the next processing number from the intra prediction unit 74 according to the processing order shown in FIG.
  • the determined block address is supplied to the intra prediction unit 74, the pipeline / parallel processing control unit 92, and the surrounding pixel availability determination unit 76.
  • step S42 the surrounding pixel availability determination unit 76 uses the block address from the address control unit 75 to determine the availability of the surrounding pixel of the target block and determines it.
  • the surrounding pixel availability determination unit 76 supplies information indicating that the surrounding pixels of the target block can be used to the intra prediction unit 74 when the surrounding pixels of the target block are available. In addition, when the surrounding pixels of the target block are unusable, the surrounding pixel availability determination unit 76 supplies information indicating that the surrounding pixels of the target block cannot be used to the intra prediction unit 74.
  • step S43 the pipeline / parallel processing control unit 92 uses the block address from the block address calculation unit 91 to determine whether the target block is capable of pipeline processing or parallel processing.
  • the pipeline / parallel processing control unit 92 for example, when the target block is capable of pipeline processing or parallel processing, such as the “2a” block and the “2b” block in FIG.
  • a control signal for controlling line processing or parallel processing is supplied to the intra prediction unit 74.
  • pipeline / parallel processing control unit 92 for example, when the target block cannot perform pipeline processing or parallel processing, such as the “1” block or the “8” block in FIG. A control signal for prohibiting pipeline processing or parallel processing is supplied to the intra prediction unit 74.
  • This intra prediction process is the intra prediction process in step S32 of FIG. 8, and in the example of FIG. 21, a case of a luminance signal will be described as an example. Moreover, this intra prediction process is a process performed for every object block. That is, when a control signal for controlling pipeline processing or parallel processing is supplied from the pipeline / parallel processing control unit 92 to the intra prediction unit 74 by the preprocessing described above with reference to FIG. , Pipeline processing or parallel processing.
  • step S52 the intra prediction unit 74 selects one prediction mode.
  • the intra 4 ⁇ 4 prediction mode as described above with reference to FIG. 9, there are nine types of prediction modes, from which one prediction mode is selected.
  • the intra prediction unit 74 refers to the information indicating the availability of the peripheral pixels of the target block supplied from the peripheral pixel availability determination unit 76, and the selected prediction mode is the peripheral of the target block. It is determined whether or not the pixel is in an available mode.
  • step S ⁇ b> 54 the intra prediction unit 74 refers to the decoded adjacent image read from the frame memory 72 and performs intra prediction in the selected prediction mode for the pixels of the target block. Note that pixels that have not been deblocked filtered by the deblocking filter 71 are used as decoded pixels that are referred to.
  • the intra prediction unit 74 calculates a cost function value corresponding to the selected prediction mode.
  • the cost function value is determined based on a method of either High Complexity mode or Low Complexity mode. These modes are H.264. It is defined by JM (Joint Model) which is reference software in the H.264 / AVC format.
  • the encoding process is temporarily performed for all candidate prediction modes as the process in step S54. Then, the cost function value represented by the following equation (63) is calculated for each prediction mode, and the prediction mode that gives the minimum value is selected as the optimum prediction mode.
  • D a difference (distortion) between the original image and the decoded image
  • R a generated code amount including up to the orthogonal transform coefficient
  • a Lagrange multiplier given as a function of the quantization parameter QP.
  • step S41 generation of predicted images and header bits such as motion vector information, prediction mode information, and flag information are calculated for all candidate prediction modes. The Then, the cost function value represented by the following equation (64) is calculated for each prediction mode, and the prediction mode that gives the minimum value is selected as the optimal prediction mode.
  • Cost (Mode) D + QPtoQuant (QP) ⁇ Header_Bit (64)
  • D is a difference (distortion) between the original image and the decoded image
  • Header_Bit is a header bit for the prediction mode
  • QPtoQuant is a function given as a function of the quantization parameter QP.
  • SAD Sud Absolute Difference
  • step S56 the intra prediction unit 74 determines whether or not the calculated cost function value is minimum. If it is determined that the cost function value is minimum, the intra prediction unit 74 replaces the optimal prediction mode with the selected prediction mode in step S57. Thereafter, the process proceeds to step S58. On the other hand, if it is determined that the calculated cost function value is not the smallest among the calculated values, the process of step S57 is skipped, and the process proceeds to step S58.
  • step S53 if it is determined in step S53 that the selected prediction mode is not a mode in which peripheral pixels of the target block are usable, the process skips steps S54 to S57 and proceeds to step S58.
  • step S58 the intra prediction unit 74 determines whether or not the processes for all nine types of prediction modes have been completed. If it is determined that the processes for all the prediction modes have been completed, the intra prediction process is performed. finish.
  • step S58 If it is determined in step S58 that the processing for all prediction modes has not been completed yet, the processing returns to step S52, and the subsequent processing is repeated.
  • the 4 ⁇ 4 pixel intra prediction mode has been described as an example, but this intra prediction process includes 4 ⁇ 4 pixel, 8 ⁇ 8 pixel, and 16 ⁇ 16 pixel intra predictions. This is processing performed for the mode. That is, in practice, the processing of FIG. 21 is separately performed for each of the 8 ⁇ 8 pixel and 16 ⁇ 16 pixel intra prediction modes, and the optimum intra prediction mode is further selected from the optimum prediction modes (best_mode) obtained. Is determined.
  • the predicted image of the determined optimal intra prediction mode and its cost function value are supplied to the predicted image selection unit 78.
  • step S61 the motion prediction / compensation unit 77 determines a motion vector and a reference image for each of eight types of inter prediction modes including 16 ⁇ 16 pixels to 4 ⁇ 4 pixels. That is, a motion vector and a reference image are determined for each block to be processed in each inter prediction mode.
  • step S62 the motion prediction / compensation unit 77 performs motion prediction on the reference image based on the motion vector determined in step S61 for each of the eight types of inter prediction modes including 16 ⁇ 16 pixels to 4 ⁇ 4 pixels. Perform compensation processing. By this motion prediction and compensation processing, a prediction image in each inter prediction mode is generated.
  • step S63 the motion prediction / compensation unit 77 adds motion vector information for adding to the compressed image the motion vectors determined for each of the eight types of inter prediction modes including 16 ⁇ 16 pixels to 4 ⁇ 4 pixels. Is generated. At this time, for example, a method of generating predicted motion vector information of a target block to be encoded by a median operation using already-encoded motion vector information of an adjacent block is used.
  • the generated motion vector information is also used when calculating the cost function value in the next step S64.
  • the prediction mode information and reference It is output to the lossless encoding unit 66 together with the frame information.
  • step S64 the motion prediction / compensation unit 77 performs the cost function represented by the above equation (63) or equation (64) for each of the eight types of inter prediction modes including 16 ⁇ 16 pixels to 4 ⁇ 4 pixels. Calculate the value.
  • the cost function value calculated here is used when determining the optimal inter prediction mode in step S34 of FIG. 8 described above.
  • the encoded compressed image is transmitted via a predetermined transmission path and decoded by an image decoding device.
  • FIG. 23 shows a configuration of an embodiment of an image decoding apparatus as an image processing apparatus to which the present invention is applied.
  • the image decoding apparatus 101 includes an accumulation buffer 111, a lossless decoding unit 112, an inverse quantization unit 113, an inverse orthogonal transform unit 114, a calculation unit 115, a deblock filter 116, a screen rearrangement buffer 117, and a D / A conversion unit 118. It is configured to include.
  • the image decoding apparatus 101 includes a frame memory 119, a switch 120, an intra prediction unit 121, an address control unit 122, a neighboring pixel availability determination unit 123, a motion prediction / compensation unit 124, and a switch 125. .
  • the accumulation buffer 111 accumulates the transmitted compressed image.
  • the lossless decoding unit 112 decodes the information supplied from the accumulation buffer 111 and encoded by the lossless encoding unit 66 in FIG. 3 by a method corresponding to the encoding method of the lossless encoding unit 66.
  • the lossless decoding unit 112 includes a stream input unit 131 and a decoding processing unit 132.
  • the stream input unit 131 inputs the compressed image from the accumulation buffer 111 and outputs the data in the stream order (that is, the order shown in A of FIG. 2) to the decoding processing unit 132.
  • the decoding processing unit 132 decodes the data from the stream input unit 131 in the order of the input streams.
  • the inverse quantization unit 113 inversely quantizes the image decoded by the lossless decoding unit 112 by a method corresponding to the quantization method of the quantization unit 65 of FIG.
  • the inverse orthogonal transform unit 114 performs inverse orthogonal transform on the output of the inverse quantization unit 113 by a method corresponding to the orthogonal transform method of the orthogonal transform unit 64 in FIG.
  • the output subjected to inverse orthogonal transform is added to the prediction image supplied from the switch 125 by the arithmetic unit 115 and decoded.
  • the deblocking filter 116 removes block distortion of the decoded image, and then supplies the frame to the frame memory 119 for storage and outputs it to the screen rearrangement buffer 117.
  • the screen rearrangement buffer 117 rearranges images. That is, the order of frames rearranged for the encoding order by the screen rearrangement buffer 62 in FIG. 3 is rearranged in the original display order.
  • the D / A conversion unit 118 performs D / A conversion on the image supplied from the screen rearrangement buffer 117, and outputs and displays the image on a display (not shown).
  • the switch 120 reads an image to be inter-processed and a reference image from the frame memory 119 and outputs them to the motion prediction / compensation unit 124, and also reads an image used for intra prediction from the frame memory 119 and sends it to the intra prediction unit 121. Supply.
  • Information indicating the intra prediction mode obtained by decoding the header information is supplied from the lossless decoding unit 112 to the intra prediction unit 121.
  • the intra prediction unit 121 supplies the address control unit 122 with information on the next processing number indicating which block is to be processed next in the macroblock.
  • the intra prediction unit 121 acquires a block address and a control signal for controlling or prohibiting pipeline processing or parallel processing from the address control unit 122.
  • the intra prediction unit 121 acquires information on the availability of surrounding pixels of the target block to be processed from the surrounding pixel availability determination unit 123.
  • the intra prediction unit 121 is a peripheral pixel that is determined to be usable by the peripheral pixel availability determination unit 123 in the intra prediction mode from the lossless decoding unit 112 for the block corresponding to the block address from the address control unit 122. Is used for intra prediction. At this time, when a control signal for controlling pipeline processing or parallel processing is received from the address control unit 122, the intra prediction unit 121 performs intra prediction in pipeline processing or parallel processing for those blocks.
  • the prediction image generated by the intra prediction by the intra prediction unit 121 is output to the switch 125.
  • the address control unit 122 When the address control unit 122 obtains the processing number information from the intra prediction unit 121, the address control unit 122 calculates a block address to be processed next in the same processing order as the address control unit 75 in FIG. Then, the address control unit 122 supplies the calculated block address to the intra prediction unit 121 and the surrounding pixel availability determination unit 123.
  • the address control unit 122 determines whether the target block is capable of pipeline processing or parallel processing using the calculated block address.
  • the address control unit 122 supplies a control signal for controlling or prohibiting pipeline processing or parallel processing to the intra prediction unit 121 according to the determination result.
  • the surrounding pixel availability determination unit 123 determines the availability of the surrounding pixels of the target block using the block address from the address control unit 122, and uses the determined surrounding pixel availability information as the intra prediction unit. 121 is supplied.
  • the motion prediction / compensation unit 124 is supplied with information (prediction mode information, motion vector information, reference frame information) obtained by decoding the header information from the lossless decoding unit 112.
  • information indicating the inter prediction mode is supplied, the motion prediction / compensation unit 124 performs motion prediction and compensation processing on the image based on the motion vector information and the reference frame information, and generates a predicted image.
  • the motion prediction / compensation unit 124 outputs the prediction image generated in the inter prediction mode to the switch 125.
  • the switch 125 selects the prediction image generated by the motion prediction / compensation unit 124 or the intra prediction unit 121 and supplies the selected prediction image to the calculation unit 115.
  • intra prediction processing is performed for all intra prediction modes for prediction mode determination based on a cost function.
  • the intra prediction process is performed only based on the information of the intra prediction mode that is encoded and transmitted.
  • FIG. 24 is a block diagram illustrating a configuration example of the address control unit.
  • the address control unit 122 includes a block address calculation unit 141 and a pipeline / parallel processing control unit 142.
  • the intra prediction unit 121 supplies information on the next processing number to the block address calculation unit 141 for the blocks in the macroblock, similarly to the intra prediction unit 75 in FIG.
  • the block address calculation unit 141 performs basically the same processing as the block address calculation unit 91 in FIG. That is, the block address calculation unit 141 uses the processing number from the intra prediction unit 121 to calculate the H.264 address. The block address of the target block to be processed next is calculated and determined in a processing order different from the processing order of H.264 / AVC. The block address calculation unit 141 supplies the determined block address to the intra prediction unit 121, the pipeline / parallel processing control unit 142, and the surrounding pixel availability determination unit 123.
  • the pipeline / parallel processing control unit 142 uses the block address from the block address calculation unit 141 to determine whether the target block is capable of pipeline processing or parallel processing.
  • the pipeline / parallel processing control unit 142 supplies a control signal for controlling or prohibiting the pipeline processing or parallel processing to the intra prediction unit 121 according to the determination result.
  • the surrounding pixel availability determination unit 123 performs basically the same processing as the surrounding pixel availability determination unit 123 of FIG. That is, the surrounding pixel availability determination unit 123 determines the availability of the surrounding pixels of the target block using the block address from the address control unit 122, and shows information indicating the availability of the determined surrounding pixels. This is supplied to the intra prediction unit 121.
  • the intra prediction unit 121 performs an intra prediction process on the target block corresponding to the block address from the block address calculation unit 141 as follows. That is, the intra prediction unit 121 performs the intra prediction process using the peripheral pixels determined to be usable by the peripheral pixel availability determination unit 123 in the intra prediction mode from the lossless decoding unit 112. At that time, the intra prediction unit 121 performs intra prediction of pipeline processing or parallel processing for a plurality of blocks based on a control signal from the pipeline / parallel processing control unit 142, or intra prediction with only one block. I do.
  • step S131 the storage buffer 111 stores the transmitted image.
  • the stream input unit 131 inputs the compressed image from the accumulation buffer 111 and outputs the data in the order of the stream to the decoding processing unit 132.
  • step S132 the decoding processing unit 132 decodes the compressed image supplied from the stream input unit 131. That is, the I picture, P picture, and B picture encoded by the lossless encoding unit 66 in FIG. 3 are decoded.
  • motion vector information reference frame information
  • prediction mode information information indicating intra prediction mode or inter prediction mode
  • flag information and the like are also decoded.
  • the prediction mode information is intra prediction mode information
  • the prediction mode information is supplied to the intra prediction unit 121.
  • the prediction mode information is inter prediction mode information
  • motion vector information and reference frame information corresponding to the prediction mode information are supplied to the motion prediction / compensation unit 124.
  • step S133 the inverse quantization unit 113 inversely quantizes the transform coefficient decoded by the lossless decoding unit 112 with characteristics corresponding to the characteristics of the quantization unit 65 in FIG.
  • step S134 the inverse orthogonal transform unit 114 performs inverse orthogonal transform on the transform coefficient inversely quantized by the inverse quantization unit 113 with characteristics corresponding to the characteristics of the orthogonal transform unit 64 in FIG. As a result, the difference information corresponding to the input of the orthogonal transform unit 64 of FIG. 3 (the output of the calculation unit 63) is decoded.
  • step S135 the calculation unit 115 adds the prediction image selected in the process of step S141 described later and input via the switch 125 to the difference information. As a result, the original image is decoded.
  • step S136 the deblocking filter 116 filters the image output from the calculation unit 115. Thereby, block distortion is removed.
  • step S137 the frame memory 119 stores the filtered image.
  • step S138 the intra prediction unit 121 and the motion prediction / compensation unit 124 perform image prediction processing corresponding to the prediction mode information supplied from the lossless decoding unit 112, respectively.
  • the intra prediction unit 121 can use the target pixel corresponding to the block address determined by the address control unit 122 in the intra prediction mode from the lossless decoding unit 112 by the neighboring pixel availability determination unit 123. Intra prediction processing is performed using the peripheral pixels determined as. In that case, when the intra prediction unit 121 receives a control signal for controlling pipeline processing or parallel processing from the address control unit 122, the intra prediction unit 121 performs intra prediction on the blocks in the pipeline processing or parallel processing.
  • step S138 the prediction image generated by the intra prediction unit 121 or the prediction image generated by the motion prediction / compensation unit 124 is switched by the switch 125. To be supplied.
  • step S139 the switch 125 selects a predicted image. That is, a prediction image generated by the intra prediction unit 121 or a prediction image generated by the motion prediction / compensation unit 124 is supplied. Therefore, the supplied predicted image is selected and supplied to the calculation unit 115, and is added to the output of the inverse orthogonal transform unit 114 in step S134 as described above.
  • step S140 the screen rearrangement buffer 117 performs rearrangement. That is, the order of frames rearranged for encoding by the screen rearrangement buffer 62 of the image encoding device 51 is rearranged to the original display order.
  • step S141 the D / A conversion unit 118 D / A converts the image from the screen rearrangement buffer 117. This image is output to a display (not shown), and the image is displayed.
  • step S171 the intra prediction unit 121 determines whether the target block is intra-coded.
  • the intra prediction unit 121 determines in step 171 that the target block is intra-coded, and the process proceeds to step S172. .
  • step S172 the intra prediction unit 121 receives and acquires intra prediction mode information from the lossless decoding unit 112.
  • the intra prediction unit 121 supplies the block address calculation unit 141 with information on the next processing number indicating the next block to be processed in the macroblock.
  • step S173 when the block address calculation unit 141 obtains the processing number information from the intra prediction unit 121, the block address calculation unit 141 calculates a block address to be processed next in the same processing order as the block address calculation unit 91 in FIG.
  • the block address calculation unit 141 supplies the calculated block address to the intra prediction unit 121 and the surrounding pixel availability determination unit 123.
  • step S174 the surrounding pixel availability determination unit 123 determines the availability of the surrounding pixels of the target block using the block address from the block address calculation unit 141, and determines the availability.
  • the surrounding pixel availability determination unit 123 supplies information on availability of the determined surrounding pixels to the intra prediction unit 121.
  • step S175 the pipeline / parallel processing control unit 142 uses the block address from the block address calculation unit 141 to determine whether the target block is a block that can be subjected to pipeline processing or parallel processing.
  • step S175 If it is determined in step S175 that the target block is a block capable of pipeline processing or parallel processing, the pipeline / parallel processing control unit 142 transmits a control signal for controlling pipeline processing or parallel processing to intra prediction. To the unit 121.
  • the intra prediction unit 121 performs intra prediction by parallel processing or pipeline processing in step S176. That is, the intra prediction unit 121 performs parallel processing or processing on the target blocks corresponding to the two block addresses from the address control unit 122 (for example, the “2a” block and the “2b” block shown in FIG. 2A). Intra prediction processing is performed by pipeline processing. At this time, the intra prediction unit 121 performs the intra prediction process using the peripheral pixels determined to be usable by the peripheral pixel availability determination unit 123 in the intra prediction mode from the lossless decoding unit 112.
  • step S175 If it is determined in step S175 that the target block is not a block that can be subjected to pipeline processing or parallel processing, the pipeline / parallel processing control unit 142 generates a control signal for prohibiting pipeline processing or parallel processing, This is supplied to the intra prediction unit 121.
  • the intra prediction unit 121 performs intra prediction in step S177 without performing parallel processing or pipeline processing. That is, the intra prediction unit 121 performs an intra prediction process on the target block corresponding to one block address from the address control unit 122. At this time, the intra prediction unit 121 performs the intra prediction process using the peripheral pixels determined to be usable by the peripheral pixel availability determination unit 123 in the intra prediction mode from the lossless decoding unit 112.
  • step S171 determines whether the intra encoding has been performed. If it is determined in step S171 that the intra encoding has not been performed, the process proceeds to step S178.
  • the inter prediction mode information, the reference frame information, and the motion vector information are supplied from the lossless decoding unit 112 to the motion prediction / compensation unit 124.
  • the motion prediction / compensation unit 124 acquires inter prediction mode information, reference frame information, motion vector information, and the like from the lossless decoding unit 112.
  • the motion prediction / compensation unit 124 performs inter motion prediction in step S178. That is, when the processing target image is an image subjected to inter prediction processing, a necessary image is read from the frame memory 119 and supplied to the motion prediction / compensation unit 124 via the switch 120. In step S179, the motion prediction / compensation unit 124 performs motion prediction in the inter prediction mode based on the motion vector acquired in step S178, and generates a predicted image. The generated prediction image is output to the switch 125.
  • the image decoding apparatus 101 inputs and decodes streams in the order of the streams from the image encoding apparatus 51 (that is, the ascending order shown in FIG. 2A, which is different from the encoding order of H.264 / AVC). Done.
  • FIG. 27 is a diagram illustrating an example of a block size proposed in Non-Patent Document 1.
  • the macroblock size is expanded to 32 ⁇ 32 pixels.
  • a macro block composed of 32 ⁇ 32 pixels divided into blocks (partitions) of 32 ⁇ 32 pixels, 32 ⁇ 16 pixels, 16 ⁇ 32 pixels, and 16 ⁇ 16 pixels from the left. They are shown in order.
  • blocks composed of 16 ⁇ 16 pixels divided into blocks of 16 ⁇ 16 pixels, 16 ⁇ 8 pixels, 8 ⁇ 16 pixels, and 8 ⁇ 8 pixels are sequentially shown from the left. Yes.
  • an 8 ⁇ 8 pixel block divided into 8 ⁇ 8 pixel, 8 ⁇ 4 pixel, 4 ⁇ 8 pixel, and 4 ⁇ 4 pixel blocks is sequentially shown from the left. .
  • the 32 ⁇ 32 pixel macroblock can be processed in the 32 ⁇ 32 pixel, 32 ⁇ 16 pixel, 16 ⁇ 32 pixel, and 16 ⁇ 16 pixel blocks shown in the upper part of FIG.
  • the 16 ⁇ 16 pixel block shown on the right side of the upper row is H.264. Similar to the H.264 / AVC format, processing in blocks of 16 ⁇ 16 pixels, 16 ⁇ 8 pixels, 8 ⁇ 16 pixels, and 8 ⁇ 8 pixels shown in the middle stage is possible.
  • the 8 ⁇ 8 pixel block shown on the right side of the middle row is H.264. Similar to the H.264 / AVC format, processing in blocks of 8 ⁇ 8 pixels, 8 ⁇ 4 pixels, 4 ⁇ 8 pixels, and 4 ⁇ 4 pixels shown in the lower stage is possible.
  • H. A larger block is defined as a superset while maintaining compatibility with the H.264 / AVC format.
  • the code shown in FIG. 2 is applied to a 16 ⁇ 16 pixel block shown on the right side of the upper stage.
  • a 16 ⁇ 16 pixel block is formed by the hierarchical structure of Non-Patent Document 1.
  • the present invention can be applied in the order of encoding processing and the order of output within the block of 16 ⁇ 16 pixels.
  • the m / 4 ⁇ The present invention can be applied in the encoding order and output order for m / 4 blocks.
  • FIG. 28 is a diagram specifically showing the second application method.
  • the encoding order and output order for the 8 ⁇ 8 blocks in this macroblock are as follows: The present invention can be applied.
  • the macroblock size shown in B of FIG. 28 is 64 ⁇ 64 pixels and the unit of orthogonal transformation is 16 ⁇ 16 blocks
  • the encoding order and output order for the 16 ⁇ 16 blocks in this macroblock are as follows: The present invention can be applied.
  • the macroblock size is 16 ⁇ 16 pixels
  • the unit of orthogonal transformation is a block of 4 ⁇ 4 pixels.
  • H.264 / AVC format is used, but the present invention is not limited to this, and other encoding / decoding methods that perform prediction using adjacent pixels can be applied.
  • the present invention includes, for example, MPEG, H.264, and the like.
  • image information bitstream
  • orthogonal transformation such as discrete cosine transformation and motion compensation, 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. Further, the present invention can be applied to an image encoding device and an image decoding device used when processing on a storage medium such as an optical, magnetic disk, and flash memory. Furthermore, the present invention can also be applied to motion prediction / compensation devices included in such image encoding devices and image decoding devices.
  • the series of processes described above can be executed by hardware or software.
  • a program constituting the software is installed in the computer.
  • the computer includes a computer incorporated in dedicated hardware, a general-purpose personal computer capable of executing various functions by installing various programs, and the like.
  • FIG. 29 is a block diagram illustrating an example of a hardware configuration of a computer that executes the above-described series of processes using a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • An input / output interface 205 is further connected to the bus 204.
  • An input unit 206, an output unit 207, a storage unit 208, a communication unit 209, and a drive 210 are connected to the input / output interface 205.
  • the input unit 206 includes a keyboard, a mouse, a microphone, and the like.
  • the output unit 207 includes a display, a speaker, and the like.
  • the storage unit 208 includes a hard disk, a nonvolatile memory, and the like.
  • the communication unit 209 includes a network interface and the like.
  • the drive 210 drives a removable medium 211 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 201 loads the program stored in the storage unit 208 to the RAM 203 via the input / output interface 205 and the bus 204 and executes it, thereby executing the above-described series of processing. Is done.
  • the program executed by the computer (CPU 201) can be provided by being recorded in the removable medium 211 as a package medium or the like, for example.
  • the program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital broadcasting.
  • the program can be installed in the storage unit 208 via the input / output interface 205 by attaching the removable medium 211 to the drive 210.
  • the program can be received by the communication unit 209 via a wired or wireless transmission medium and installed in the storage unit 208.
  • the program can be installed in the ROM 202 or the storage unit 208 in advance.
  • 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 image encoding device 51 and the image decoding device 101 described above can be applied to any electronic device. Examples thereof will be described below.
  • FIG. 30 is a block diagram illustrating a main configuration example of a television receiver using an image decoding device to which the present invention has been applied.
  • the television receiver 300 shown in FIG. 3 includes a terrestrial tuner 313, a video decoder 315, a video signal processing circuit 318, a graphic generation circuit 319, a panel drive circuit 320, and a display panel 321.
  • the television receiver 300 shown in FIG. 3 includes a terrestrial tuner 313, a video decoder 315, a video signal processing circuit 318, a graphic generation circuit 319, a panel drive circuit 320, and a display panel 321.
  • the terrestrial tuner 313 receives a broadcast wave signal of terrestrial analog broadcast via an antenna, demodulates it, acquires a video signal, and supplies it to the video decoder 315.
  • the video decoder 315 performs a decoding process on the video signal supplied from the terrestrial tuner 313 and supplies the obtained digital component signal to the video signal processing circuit 318.
  • the video signal processing circuit 318 performs predetermined processing such as noise removal on the video data supplied from the video decoder 315, and supplies the obtained video data to the graphic generation circuit 319.
  • the graphic generation circuit 319 generates video data of a program to be displayed on the display panel 321, image data based on processing based on an application supplied via a network, and the generated video data and image data to the panel drive circuit 320. Supply.
  • the graphic generation circuit 319 generates video data (graphic) for displaying a screen used by the user for selecting an item, and superimposing the video data on the video data of the program.
  • a process of supplying data to the panel drive circuit 320 is also performed as appropriate.
  • the panel drive circuit 320 drives the display panel 321 based on the data supplied from the graphic generation circuit 319, and causes the display panel 321 to display the video of the program and the various screens described above.
  • the display panel 321 includes an LCD (Liquid Crystal Display) or the like, and displays a program video or the like according to control by the panel drive circuit 320.
  • LCD Liquid Crystal Display
  • the television receiver 300 also includes an audio A / D (Analog / Digital) conversion circuit 314, an audio signal processing circuit 322, an echo cancellation / audio synthesis circuit 323, an audio amplification circuit 324, and a speaker 325.
  • an audio A / D (Analog / Digital) conversion circuit 3144 an audio signal processing circuit 322, an echo cancellation / audio synthesis circuit 323, an audio amplification circuit 324, and a speaker 325.
  • the terrestrial tuner 313 acquires not only the video signal but also the audio signal by demodulating the received broadcast wave signal.
  • the terrestrial tuner 313 supplies the acquired audio signal to the audio A / D conversion circuit 314.
  • the audio A / D conversion circuit 314 performs A / D conversion processing on the audio signal supplied from the terrestrial tuner 313, and supplies the obtained digital audio signal to the audio signal processing circuit 322.
  • the audio signal processing circuit 322 performs predetermined processing such as noise removal on the audio data supplied from the audio A / D conversion circuit 314 and supplies the obtained audio data to the echo cancellation / audio synthesis circuit 323.
  • the echo cancellation / voice synthesis circuit 323 supplies the voice data supplied from the voice signal processing circuit 322 to the voice amplification circuit 324.
  • the audio amplification circuit 324 performs D / A conversion processing and amplification processing on the audio data supplied from the echo cancellation / audio synthesis circuit 323, adjusts to a predetermined volume, and then outputs the audio from the speaker 325.
  • the television receiver 300 also has a digital tuner 316 and an MPEG decoder 317.
  • the digital tuner 316 receives a broadcast wave signal of digital broadcasting (terrestrial digital broadcasting, BS (Broadcasting Satellite) / CS (Communications Satellite) digital broadcasting) via an antenna, demodulates, and MPEG-TS (Moving Picture Experts Group). -Transport Stream) and supply it to the MPEG decoder 317.
  • digital broadcasting terrestrial digital broadcasting, BS (Broadcasting Satellite) / CS (Communications Satellite) digital broadcasting
  • MPEG-TS Motion Picture Experts Group
  • the MPEG decoder 317 releases the scramble applied to the MPEG-TS supplied from the digital tuner 316, and extracts a stream including program data to be played (viewing target).
  • the MPEG decoder 317 decodes the audio packet constituting the extracted stream, supplies the obtained audio data to the audio signal processing circuit 322, decodes the video packet constituting the stream, and converts the obtained video data into the video
  • the signal processing circuit 318 is supplied.
  • the MPEG decoder 317 supplies EPG (Electronic Program Guide) data extracted from the MPEG-TS to the CPU 332 via a path (not shown).
  • the television receiver 300 uses the above-described image decoding device 101 as the MPEG decoder 317 that decodes the video packet in this way. Therefore, the MPEG decoder 317 is similar to the image decoding apparatus 101 in the H.264 format. A stream that has been encoded and output in the ascending order shown in FIG. 2A, which is different from the H.264 / AVC encoding order, is input and decoded in that stream order. Thereby, pipeline processing and parallel processing can be realized with high encoding efficiency. Further, the circuit scale of the MPEG decoder 317 can be reduced.
  • the video data supplied from the MPEG decoder 317 is subjected to predetermined processing in the video signal processing circuit 318 as in the case of the video data supplied from the video decoder 315.
  • the video data that has been subjected to the predetermined processing is appropriately superposed on the generated video data in the graphic generation circuit 319 and supplied to the display panel 321 via the panel drive circuit 320 to display the image. .
  • the audio data supplied from the MPEG decoder 317 is subjected to predetermined processing in the audio signal processing circuit 322 as in the case of the audio data supplied from the audio A / D conversion circuit 314.
  • the audio data that has been subjected to the predetermined processing is supplied to the audio amplifying circuit 324 via the echo cancel / audio synthesizing circuit 323, and subjected to D / A conversion processing and amplification processing.
  • sound adjusted to a predetermined volume is output from the speaker 325.
  • the television receiver 300 also has a microphone 326 and an A / D conversion circuit 327.
  • the A / D conversion circuit 327 receives the user's voice signal captured by the microphone 326 provided in the television receiver 300 for voice conversation.
  • the A / D conversion circuit 327 performs A / D conversion processing on the received audio signal, and supplies the obtained digital audio data to the echo cancellation / audio synthesis circuit 323.
  • the echo cancellation / audio synthesis circuit 323 When the audio data of the user (user A) of the television receiver 300 is supplied from the A / D conversion circuit 327, the echo cancellation / audio synthesis circuit 323 performs echo cancellation on the audio data of the user A. . The echo cancellation / speech synthesis circuit 323 then outputs voice data obtained by synthesizing with other voice data after echo cancellation from the speaker 325 via the voice amplification circuit 324.
  • the television receiver 300 also includes an audio codec 328, an internal bus 329, an SDRAM (Synchronous Dynamic Random Access Memory) 330, a flash memory 331, a CPU 332, a USB (Universal Serial Bus) I / F 333, and a network I / F 334.
  • SDRAM Serial Dynamic Random Access Memory
  • USB Universal Serial Bus
  • the A / D conversion circuit 327 receives the user's voice signal captured by the microphone 326 provided in the television receiver 300 for voice conversation.
  • the A / D conversion circuit 327 performs A / D conversion processing on the received audio signal, and supplies the obtained digital audio data to the audio codec 328.
  • the audio codec 328 converts the audio data supplied from the A / D conversion circuit 327 into data of a predetermined format for transmission via the network, and supplies the data to the network I / F 334 via the internal bus 329.
  • the network I / F 334 is connected to the network via a cable attached to the network terminal 335.
  • the network I / F 334 transmits the audio data supplied from the audio codec 328 to another device connected to the network.
  • the network I / F 334 receives, for example, audio data transmitted from another device connected via the network via the network terminal 335, and receives it via the internal bus 329 to the audio codec 328. Supply.
  • the voice codec 328 converts the voice data supplied from the network I / F 334 into data of a predetermined format and supplies it to the echo cancellation / voice synthesis circuit 323.
  • the echo cancellation / speech synthesis circuit 323 performs echo cancellation on the voice data supplied from the voice codec 328 and synthesizes voice data obtained by synthesizing with other voice data via the voice amplification circuit 324. And output from the speaker 325.
  • the SDRAM 330 stores various data necessary for the CPU 332 to perform processing.
  • the flash memory 331 stores a program executed by the CPU 332.
  • the program stored in the flash memory 331 is read out by the CPU 332 at a predetermined timing such as when the television receiver 300 is activated.
  • the flash memory 331 also stores EPG data acquired via digital broadcasting, data acquired from a predetermined server via a network, and the like.
  • the flash memory 331 stores MPEG-TS including content data acquired from a predetermined server via a network under the control of the CPU 332.
  • the flash memory 331 supplies the MPEG-TS to the MPEG decoder 317 via the internal bus 329 under the control of the CPU 332, for example.
  • the MPEG decoder 317 processes the MPEG-TS similarly to the MPEG-TS supplied from the digital tuner 316. In this way, the television receiver 300 receives content data including video and audio via the network, decodes it using the MPEG decoder 317, displays the video, and outputs audio. Can do.
  • the television receiver 300 also includes a light receiving unit 337 that receives an infrared signal transmitted from the remote controller 351.
  • the light receiving unit 337 receives infrared rays from the remote controller 351 and outputs a control code representing the contents of the user operation obtained by demodulation to the CPU 332.
  • the CPU 332 executes a program stored in the flash memory 331, and controls the overall operation of the television receiver 300 according to a control code supplied from the light receiving unit 337.
  • the CPU 332 and each part of the television receiver 300 are connected via a path (not shown).
  • the USB I / F 333 transmits and receives data to and from an external device of the television receiver 300 connected via a USB cable attached to the USB terminal 336.
  • the network I / F 334 is connected to the network via a cable attached to the network terminal 335, and transmits / receives data other than audio data to / from various devices connected to the network.
  • the television receiver 300 uses the image decoding device 101 as the MPEG decoder 317, thereby realizing high-speed processing and generating a highly accurate predicted image. As a result, the television receiver 300 can obtain and display a higher-definition decoded image at a higher speed from a broadcast wave signal received via an antenna or content data obtained via a network. it can.
  • FIG. 31 is a block diagram illustrating a main configuration example of a mobile phone using an image encoding device and an image decoding device to which the present invention is applied.
  • a mobile phone 400 shown in FIG. 31 includes a main control unit 450, a power supply circuit unit 451, an operation input control unit 452, an image encoder 453, a camera I / F unit 454, an LCD control, which are configured to control each unit in an integrated manner.
  • the mobile phone 400 includes an operation key 419, a CCD (Charge Coupled Devices) camera 416, a liquid crystal display 418, a storage unit 423, a transmission / reception circuit unit 463, an antenna 414, a microphone (microphone) 421, and a speaker 417.
  • CCD Charge Coupled Devices
  • the power supply circuit unit 451 starts up the mobile phone 400 to an operable state by supplying power from the battery pack to each unit.
  • the mobile phone 400 transmits / receives voice signals, sends / receives e-mails and image data in various modes such as a voice call mode and a data communication mode based on the control of the main control unit 450 including a CPU, a ROM, a RAM, and the like. Various operations such as shooting or data recording are performed.
  • the cellular phone 400 converts a voice signal collected by the microphone (microphone) 421 into digital voice data by the voice codec 459, performs a spectrum spread process by the modulation / demodulation circuit unit 458, and transmits and receives
  • the unit 463 performs digital / analog conversion processing and frequency conversion processing.
  • the cellular phone 400 transmits the transmission signal obtained by the conversion process to a base station (not shown) via the antenna 414.
  • the transmission signal (voice signal) transmitted to the base station is supplied to the mobile phone of the other party via the public telephone line network.
  • the cellular phone 400 amplifies the received signal received by the antenna 414 by the transmission / reception circuit unit 463, further performs frequency conversion processing and analog-digital conversion processing, and performs spectrum despreading processing by the modulation / demodulation circuit unit 458. Then, the audio codec 459 converts it into an analog audio signal. The cellular phone 400 outputs an analog audio signal obtained by the conversion from the speaker 417.
  • the mobile phone 400 when transmitting an e-mail in the data communication mode, receives the text data of the e-mail input by operating the operation key 419 in the operation input control unit 452.
  • the cellular phone 400 processes the text data in the main control unit 450 and displays it on the liquid crystal display 418 as an image via the LCD control unit 455.
  • the cellular phone 400 generates e-mail data in the main control unit 450 based on text data received by the operation input control unit 452, user instructions, and the like.
  • the cellular phone 400 subjects the electronic mail data to spread spectrum processing by the modulation / demodulation circuit unit 458 and performs digital / analog conversion processing and frequency conversion processing by the transmission / reception circuit unit 463.
  • the cellular phone 400 transmits the transmission signal obtained by the conversion process to a base station (not shown) via the antenna 414.
  • the transmission signal (e-mail) transmitted to the base station is supplied to a predetermined destination via a network and a mail server.
  • the mobile phone 400 when receiving an e-mail in the data communication mode, receives and amplifies the signal transmitted from the base station by the transmission / reception circuit unit 463 via the antenna 414, and further performs frequency conversion processing and Analog-digital conversion processing.
  • the mobile phone 400 performs spectrum despreading processing on the received signal by the modulation / demodulation circuit unit 458 to restore the original e-mail data.
  • the cellular phone 400 displays the restored e-mail data on the liquid crystal display 418 via the LCD control unit 455.
  • the mobile phone 400 can record (store) the received e-mail data in the storage unit 423 via the recording / playback unit 462.
  • the storage unit 423 is an arbitrary rewritable storage medium.
  • the storage unit 423 may be a semiconductor memory such as a RAM or a built-in flash memory, a hard disk, or a removable disk such as a magnetic disk, a magneto-optical disk, an optical disk, a USB memory, or a memory card. It may be media. Of course, other than these may be used.
  • the mobile phone 400 when transmitting image data in the data communication mode, the mobile phone 400 generates image data with the CCD camera 416 by imaging.
  • the CCD camera 416 includes an optical device such as a lens and a diaphragm and a CCD as a photoelectric conversion element, images a subject, converts the intensity of received light into an electrical signal, and generates image data of the subject image.
  • the image data is converted into encoded image data by compression encoding with a predetermined encoding method such as MPEG2 or MPEG4 by the image encoder 453 via the camera I / F unit 454.
  • the cellular phone 400 uses the above-described image encoding device 51 as the image encoder 453 that performs such processing. Therefore, the image encoder 453 is similar to the image encoding device 51 in the H.264 format. Different from the H.264 / AVC encoding order, encoding is performed in the ascending order shown in FIG. Thereby, pipeline processing and parallel processing can be realized with high encoding efficiency. In addition, the circuit scale of the image encoder 453 can be reduced.
  • the mobile phone 400 converts the sound collected by the microphone (microphone) 421 during imaging by the CCD camera 416 from analog to digital by the audio codec 459 and further encodes it.
  • the cellular phone 400 multiplexes the encoded image data supplied from the image encoder 453 and the digital audio data supplied from the audio codec 459 by a predetermined method.
  • the cellular phone 400 performs spread spectrum processing on the multiplexed data obtained as a result by the modulation / demodulation circuit unit 458 and digital / analog conversion processing and frequency conversion processing by the transmission / reception circuit unit 463.
  • the cellular phone 400 transmits the transmission signal obtained by the conversion process to a base station (not shown) via the antenna 414.
  • a transmission signal (image data) transmitted to the base station is supplied to a communication partner via a network or the like.
  • the mobile phone 400 can also display the image data generated by the CCD camera 416 on the liquid crystal display 418 via the LCD control unit 455 without passing through the image encoder 453.
  • the cellular phone 400 when receiving data of a moving image file linked to a simple homepage or the like, transmits a signal transmitted from the base station via the antenna 414 to the transmission / reception circuit unit 463. Receive, amplify, and further perform frequency conversion processing and analog-digital conversion processing. The cellular phone 400 performs spectrum despreading processing on the received signal by the modulation / demodulation circuit unit 458 to restore the original multiplexed data. In the cellular phone 400, the demultiplexing unit 457 separates the multiplexed data and divides it into encoded image data and audio data.
  • the cellular phone 400 In the image decoder 456, the cellular phone 400 generates reproduction moving image data by decoding the encoded image data with a decoding method corresponding to a predetermined encoding method such as MPEG2 or MPEG4, and this is controlled by the LCD control.
  • the image is displayed on the liquid crystal display 418 via the unit 455.
  • moving image data included in a moving image file linked to a simple homepage is displayed on the liquid crystal display 418.
  • the mobile phone 400 uses the above-described image decoding device 101 as the image decoder 456 that performs such processing. Therefore, the image decoder 456 is similar to the image decoding apparatus 101 in the H.264 format. A stream that has been encoded and output in the ascending order shown in FIG. 2A, which is different from the H.264 / AVC encoding order, is input and decoded in that stream order. Thereby, pipeline processing and parallel processing can be realized with high encoding efficiency. In addition, the circuit scale of the image decoder 456 can be reduced.
  • the cellular phone 400 simultaneously converts the digital audio data into an analog audio signal in the audio codec 459 and causes the speaker 417 to output it.
  • audio data included in the moving image file linked to the simple homepage is reproduced.
  • the mobile phone 400 can record (store) the data linked to the received simplified home page or the like in the storage unit 423 via the recording / playback unit 462. .
  • the mobile phone 400 can analyze the two-dimensional code obtained by the CCD camera 416 by the main control unit 450 and acquire information recorded in the two-dimensional code.
  • the mobile phone 400 can communicate with an external device by infrared rays at the infrared communication unit 481.
  • the cellular phone 400 uses the image encoding device 51 as the image encoder 453 to achieve high-speed processing, and for example, encodes encoded data generated by encoding image data generated by the CCD camera 416. Efficiency can be improved. As a result, the mobile phone 400 can provide encoded data (image data) with high encoding efficiency to other devices.
  • the mobile phone 400 can use the image decoding apparatus 101 as the image decoder 456, thereby realizing high-speed processing and generating a highly accurate predicted image.
  • the mobile phone 400 can obtain and display a higher-definition decoded image from a moving image file linked to a simple homepage, for example.
  • the cellular phone 400 uses the CCD camera 416, but instead of the CCD camera 416, an image sensor (CMOS image sensor) using CMOS (Complementary Metal Metal Oxide Semiconductor) is used. May be. Also in this case, the mobile phone 400 can capture the subject and generate image data of the subject image, as in the case where the CCD camera 416 is used.
  • CMOS image sensor Complementary Metal Metal Oxide Semiconductor
  • the mobile phone 400 has been described.
  • an imaging function similar to that of the mobile phone 400 such as a PDA (Personal Digital Assistant), a smartphone, an UMPC (Ultra Mobile Personal Computer), a netbook, a notebook personal computer, or the like.
  • the image encoding device 51 and the image decoding device 101 can be applied to any device as in the case of the mobile phone 400.
  • FIG. 32 is a block diagram illustrating a main configuration example of a hard disk recorder using the image encoding device and the image decoding device to which the present invention is applied.
  • a hard disk recorder 500 shown in FIG. 32 receives audio data and video data of a broadcast program included in a broadcast wave signal (television signal) transmitted from a satellite or a ground antenna received by a tuner.
  • This is an apparatus for storing in a built-in hard disk and providing the stored data to the user at a timing according to the user's instruction.
  • the hard disk recorder 500 can, for example, extract audio data and video data from broadcast wave signals, decode them as appropriate, and store them in a built-in hard disk.
  • the hard disk recorder 500 can also acquire audio data and video data from other devices via a network, for example, decode them as appropriate, and store them in a built-in hard disk.
  • the hard disk recorder 500 decodes audio data and video data recorded in the built-in hard disk, supplies the decoded data to the monitor 560, and displays the image on the screen of the monitor 560. Further, the hard disk recorder 500 can output the sound from the speaker of the monitor 560.
  • the hard disk recorder 500 decodes, for example, audio data and video data extracted from a broadcast wave signal acquired via a tuner, or audio data and video data acquired from another device via a network, and monitors 560. And the image is displayed on the screen of the monitor 560.
  • the hard disk recorder 500 can also output the sound from the speaker of the monitor 560.
  • the hard disk recorder 500 includes a reception unit 521, a demodulation unit 522, a demultiplexer 523, an audio decoder 524, a video decoder 525, and a recorder control unit 526.
  • the hard disk recorder 500 further includes an EPG data memory 527, a program memory 528, a work memory 529, a display converter 530, an OSD (On Screen Display) control unit 531, a display control unit 532, a recording / playback unit 533, a D / A converter 534, And a communication unit 535.
  • the display converter 530 has a video encoder 541.
  • the recording / playback unit 533 includes an encoder 551 and a decoder 552.
  • the receiving unit 521 receives an infrared signal from a remote controller (not shown), converts it into an electrical signal, and outputs it to the recorder control unit 526.
  • the recorder control unit 526 is constituted by, for example, a microprocessor and executes various processes according to a program stored in the program memory 528. At this time, the recorder control unit 526 uses the work memory 529 as necessary.
  • the communication unit 535 is connected to the network and performs communication processing with other devices via the network.
  • the communication unit 535 is controlled by the recorder control unit 526, communicates with a tuner (not shown), and mainly outputs a channel selection control signal to the tuner.
  • the demodulator 522 demodulates the signal supplied from the tuner and outputs the demodulated signal to the demultiplexer 523.
  • the demultiplexer 523 separates the data supplied from the demodulation unit 522 into audio data, video data, and EPG data, and outputs them to the audio decoder 524, the video decoder 525, or the recorder control unit 526, respectively.
  • the audio decoder 524 decodes the input audio data by, for example, the MPEG system, and outputs it to the recording / playback unit 533.
  • the video decoder 525 decodes the input video data using, for example, the MPEG system, and outputs the decoded video data to the display converter 530.
  • the recorder control unit 526 supplies the input EPG data to the EPG data memory 527 for storage.
  • the display converter 530 encodes the video data supplied from the video decoder 525 or the recorder control unit 526 into video data of, for example, NTSC (National Television Standards Committee) using the video encoder 541 and outputs the video data to the recording / reproducing unit 533.
  • the display converter 530 converts the screen size of the video data supplied from the video decoder 525 or the recorder control unit 526 into a size corresponding to the size of the monitor 560.
  • the display converter 530 further converts the video data whose screen size is converted into NTSC video data by the video encoder 541, converts the video data into an analog signal, and outputs the analog signal to the display control unit 532.
  • the display control unit 532 superimposes the OSD signal output from the OSD (On Screen Display) control unit 531 on the video signal input from the display converter 530 under the control of the recorder control unit 526 and displays the OSD signal on the display of the monitor 560. Output and display.
  • OSD On Screen Display
  • the monitor 560 is also supplied with the audio data output from the audio decoder 524 after being converted into an analog signal by the D / A converter 534.
  • the monitor 560 outputs this audio signal from a built-in speaker.
  • the recording / playback unit 533 has a hard disk as a storage medium for recording video data, audio data, and the like.
  • the recording / playback unit 533 encodes the audio data supplied from the audio decoder 524 by the encoder 551 in the MPEG system. Further, the recording / reproducing unit 533 encodes the video data supplied from the video encoder 541 of the display converter 530 by the MPEG method using the encoder 551. The recording / playback unit 533 combines the encoded data of the audio data and the encoded data of the video data by a multiplexer. The recording / reproducing unit 533 amplifies the synthesized data by channel coding, and writes the data to the hard disk via the recording head.
  • the recording / playback unit 533 plays back the data recorded on the hard disk via the playback head, amplifies it, and separates it into audio data and video data by a demultiplexer.
  • the recording / playback unit 533 uses the decoder 552 to decode the audio data and video data using the MPEG system.
  • the recording / playback unit 533 performs D / A conversion on the decoded audio data and outputs it to the speaker of the monitor 560.
  • the recording / playback unit 533 performs D / A conversion on the decoded video data and outputs it to the display of the monitor 560.
  • the recorder control unit 526 reads the latest EPG data from the EPG data memory 527 based on the user instruction indicated by the infrared signal from the remote controller received via the receiving unit 521, and supplies it to the OSD control unit 531. To do.
  • the OSD control unit 531 generates image data corresponding to the input EPG data, and outputs the image data to the display control unit 532.
  • the display control unit 532 outputs the video data input from the OSD control unit 531 to the display of the monitor 560 for display. As a result, an EPG (electronic program guide) is displayed on the display of the monitor 560.
  • the hard disk recorder 500 can acquire various data such as video data, audio data, or EPG data supplied from other devices via a network such as the Internet.
  • the communication unit 535 is controlled by the recorder control unit 526, acquires encoded data such as video data, audio data, and EPG data transmitted from another device via the network, and supplies it to the recorder control unit 526. To do.
  • the recorder control unit 526 supplies the encoded data of the acquired video data and audio data to the recording / reproducing unit 533 and stores the data in the hard disk.
  • the recorder control unit 526 and the recording / playback unit 533 may perform processing such as re-encoding as necessary.
  • the recorder control unit 526 decodes the acquired encoded data of video data and audio data, and supplies the obtained video data to the display converter 530.
  • the display converter 530 processes the video data supplied from the recorder control unit 526 in the same manner as the video data supplied from the video decoder 525, supplies the processed video data to the monitor 560 via the display control unit 532, and displays the image. .
  • the recorder control unit 526 may supply the decoded audio data to the monitor 560 via the D / A converter 534 and output the sound from the speaker.
  • the recorder control unit 526 decodes the encoded data of the acquired EPG data, and supplies the decoded EPG data to the EPG data memory 527.
  • the hard disk recorder 500 as described above uses the image decoding device 101 as a decoder incorporated in the video decoder 525, the decoder 552, and the recorder control unit 526. Therefore, the video decoder 525, the decoder 552, and the decoder built in the recorder control unit 526 are the same as those in the image decoding apparatus 101, as in the case of the image decoding apparatus 101.
  • the hard disk recorder 500 can realize high-speed processing and generate a highly accurate predicted image.
  • the hard disk recorder 500 acquires, for example, encoded data of video data received via a tuner, encoded data of video data read from the hard disk of the recording / playback unit 533, or via a network. From the encoded data of the video data, a higher-definition decoded image can be obtained and displayed on the monitor 560.
  • the hard disk recorder 500 uses the image encoding device 51 as the encoder 551. Therefore, as in the case of the image encoding device 51, the encoder 551 is an H. Different from the H.264 / AVC encoding order, encoding is performed in the ascending order shown in FIG. Thereby, pipeline processing and parallel processing can be realized with high encoding efficiency. Further, the circuit scale of the encoder 551 can be reduced.
  • the hard disk recorder 500 can realize high-speed processing and improve the encoding efficiency of encoded data recorded on the hard disk. As a result, the hard disk recorder 500 can use the storage area of the hard disk more efficiently.
  • the hard disk recorder 500 that records video data and audio data on the hard disk has been described.
  • any recording medium may be used.
  • the image encoding device 51 and the image decoding device 101 are applied as in the case of the hard disk recorder 500 described above. Can do.
  • FIG. 33 is a block diagram illustrating a main configuration example of a camera using an image decoding device and an image encoding device to which the present invention has been applied.
  • the lens block 611 causes light (that is, an image of the subject) to enter the CCD / CMOS 612.
  • the CCD / CMOS 612 is an image sensor using CCD or CMOS, converts the intensity of received light into an electric signal, and supplies it to the camera signal processing unit 613.
  • the camera signal processing unit 613 converts the electrical signal supplied from the CCD / CMOS 612 into Y, Cr, and Cb color difference signals and supplies them to the image signal processing unit 614.
  • the image signal processing unit 614 performs predetermined image processing on the image signal supplied from the camera signal processing unit 613 under the control of the controller 621, and encodes the image signal by the encoder 641 using, for example, the MPEG method. To do.
  • the image signal processing unit 614 supplies encoded data generated by encoding the image signal to the decoder 615. Further, the image signal processing unit 614 acquires display data generated in the on-screen display (OSD) 620 and supplies it to the decoder 615.
  • OSD on-screen display
  • the camera signal processing unit 613 appropriately uses DRAM (Dynamic Random Access Memory) 618 connected via the bus 617, and image data or a code obtained by encoding the image data as necessary.
  • DRAM Dynamic Random Access Memory
  • the digitized data is held in the DRAM 618.
  • the decoder 615 decodes the encoded data supplied from the image signal processing unit 614 and supplies the obtained image data (decoded image data) to the LCD 616. In addition, the decoder 615 supplies the display data supplied from the image signal processing unit 614 to the LCD 616. The LCD 616 appropriately synthesizes the image of the decoded image data supplied from the decoder 615 and the image of the display data, and displays the synthesized image.
  • the on-screen display 620 outputs display data such as menu screens and icons composed of symbols, characters, or figures to the image signal processing unit 614 via the bus 617 under the control of the controller 621.
  • the controller 621 executes various processes based on a signal indicating the content instructed by the user using the operation unit 622, and also via the bus 617, an image signal processing unit 614, a DRAM 618, an external interface 619, an on-screen display. 620, media drive 623, and the like are controlled.
  • the FLASH ROM 624 stores programs and data necessary for the controller 621 to execute various processes.
  • the controller 621 can encode the image data stored in the DRAM 618 or decode the encoded data stored in the DRAM 618 instead of the image signal processing unit 614 or the decoder 615.
  • the controller 621 may perform the encoding / decoding process by a method similar to the encoding / decoding method of the image signal processing unit 614 or the decoder 615, or the image signal processing unit 614 or the decoder 615 can handle this.
  • the encoding / decoding process may be performed by a method that is not performed.
  • the controller 621 reads image data from the DRAM 618 and supplies it to the printer 634 connected to the external interface 619 via the bus 617. Let it print.
  • the controller 621 reads the encoded data from the DRAM 618 and supplies it to the recording medium 633 attached to the media drive 623 via the bus 617.
  • the recording medium 633 is an arbitrary readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory.
  • the recording medium 633 may be of any type as a removable medium, and may be a tape device, a disk, or a memory card.
  • a non-contact IC card or the like may be used.
  • media drive 623 and the recording medium 633 may be integrated and configured by a non-portable storage medium such as a built-in hard disk drive or SSD (Solid State Drive).
  • SSD Solid State Drive
  • the external interface 619 includes, for example, a USB input / output terminal and is connected to the printer 634 when printing an image.
  • a drive 631 is connected to the external interface 619 as necessary, and a removable medium 632 such as a magnetic disk, an optical disk, or a magneto-optical disk is appropriately mounted, and a computer program read from them is loaded as necessary. Installed in the FLASH ROM 624.
  • the external interface 619 has a network interface connected to a predetermined network such as a LAN or the Internet.
  • the controller 621 can read the encoded data from the DRAM 618 in accordance with an instruction from the operation unit 622 and supply the encoded data from the external interface 619 to another device connected via the network. Also, the controller 621 acquires encoded data and image data supplied from other devices via the network via the external interface 619 and holds them in the DRAM 618 or supplies them to the image signal processing unit 614. Can be.
  • the camera 600 as described above uses the image decoding device 101 as the decoder 615. Therefore, the decoder 615 is similar to the case of the image decoding apparatus 101 in the H.264 format.
  • pipeline processing and parallel processing can be realized with high encoding efficiency.
  • the circuit scale of each decoder can be reduced.
  • the camera 600 can realize high-speed processing and can generate a highly accurate predicted image.
  • the camera 600 encodes, for example, image data generated in the CCD / CMOS 612, encoded data of video data read from the DRAM 618 or the recording medium 633, and encoded video data acquired via the network.
  • a higher-resolution decoded image can be obtained from the data and displayed on the LCD 616.
  • the camera 600 uses the image encoding device 51 as the encoder 641. Therefore, the encoder 641 is similar to the case of the image encoding device 51 in the H.264 format. Different from the H.264 / AVC encoding order, encoding is performed in the ascending order shown in FIG. Thereby, pipeline processing and parallel processing can be realized with high encoding efficiency. Further, the circuit scale of the encoder 641 can be reduced.
  • the camera 600 can realize high-speed processing, and can improve the encoding efficiency of the encoded data recorded on the hard disk without complicating the processing. As a result, the camera 600 can use the storage area of the DRAM 618 and the recording medium 633 more efficiently.
  • the decoding method of the image decoding apparatus 101 may be applied to the decoding process performed by the controller 621.
  • the encoding method of the image encoding device 51 may be applied to the encoding process performed by the controller 621.
  • the image data captured by the camera 600 may be a moving image or a still image.
  • image encoding device 51 and the image decoding device 101 can also be applied to devices and systems other than those described above.

Landscapes

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

Abstract

 本発明は、イントラ予測の並列またはパイプライン処理化を実現するとともに、符号化効率を向上させることができる画像処理装置および方法に関する。 イントラ予測部74は、アドレス制御部75によりH.264/AVCの処理順とは異なる処理順で確定されたブロックアドレスに対応する対象ブロックについて、周辺画素利用可能性判定部76により利用可能であると判定された周辺画素を用いるイントラ予測モードで、イントラ予測処理を行う。その際、イントラ予測部74は、パイプライン/並列処理制御部92からの制御信号に基づいて、複数のブロックについてのパイプライン処理または並列処理のイントラ予測を行うか、1つのブロックでイントラ予測を行う。本発明は、例えば、H.264/AVC方式で符号化する画像符号化装置に適用することができる。

Description

画像処理装置および方法
 本発明は画像処理装置および方法に関し、特に、イントラ予測の並列またはパイプライン処理化を実現するとともに、符号化効率を向上させるようにした画像処理装置および方法に関する。
 近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮する符号化方式を採用して画像を圧縮符号する装置が普及しつつある。この符号化方式には、例えば、MPEG(Moving Picture Experts Group)などがある。
 特に、MPEG2(ISO/IEC 13818-2)は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準である。例えば、MPEG2は、プロフェッショナル用途及びコンシューマ用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4乃至8Mbpsの符号量(ビットレート)が割り当てられる。また、MPEG2圧縮方式を用いることにより、例えば1920×1088画素を持つ高解像度の飛び越し走査画像であれば18乃至22 Mbpsの符号量(ビットレート)が割り当てられる。これにより、高い圧縮率と良好な画質の実現が可能である。
 MPEG2は主として放送用に適合する高画質符号化を対象としていたが、MPEG1より低い符号量(ビットレート)、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してMPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496-2としてその規格が国際標準に承認された。
 さらに、近年、当初テレビ会議用の画像符号化を目的として、H.26L (ITU-T Q6/16 VCEG)という標準の規格化が進んでいる。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、以下H.264/AVCと記す)という国際標準となっている。
 さらに、その拡張として、RGBや4:2:2、4:4:4といった、業務用に必要な符号化ツールや、MPEG-2で規定されていた8x8DCTや量子化マトリクスをも含んだFRExt (Fidelity Range Extension) の標準化が2005年2月に完了している。これにより、H.264/AVCを用いて、映画に含まれるフィルムノイズをも良好に表現することが可能な符号化方式となって、Blu-Ray Disc(商標)等の幅広いアプリケーションに用いられる運びとなった。
 しかしながら、昨今、ハイビジョン画像の4倍の、4000×2000画素程度の画像を圧縮したいといった、更なる高圧縮率符号化に対するニーズが高まっている。あるいは、インターネットのような、限られた伝送容量の環境において、ハイビジョン画像を配信したいといった、更なる高圧縮率符号化に対するニーズが高まっている。このため、先述の、ITU-T傘下のVCEG (=Video Coding Expert Group) において、符号化効率の改善に関する検討が継続され行なわれている。
 このH.264/AV方式が、従来のMPEG2方式などと比して、高い符号化効率を実点する要因の1つとして、イントラ予測における動作原理を上げることができる。以下、H.264/AV方式で定められているイントラ予測方式について簡単に説明する。
 まず、輝度信号に対するイントラ予測モードについて説明する。輝度信号のイントラ予測モードには、イントラ4×4予測モード、イントラ8×8予測モード、およびイントラ16×16予測モードの3通りの方式が定められている。これは、ブロック単位を定めるモードであり、マクロブロック毎に設定される。また、色差信号に対しては、マクロブロック毎に輝度信号とは独立したイントラ予測モードを設定することが可能である。
 さらに、イントラ4×4予測モードの場合、4×4画素の対象ブロック毎に、9種類の予測モードから1つの予測モードを設定することができる。イントラ8×8予測モードの場合、8×8画素の対象ブロック毎に、9種類の予測モードから1つの予測モードを設定することができる。また、イントラ16×16予測モードの場合、16×16画素の対象マクロブロックに対して、4種類の予測モードから1つの予測モードを設定することができる。
 なお、以下、イントラ4×4予測モード、イントラ8×8予測モード、およびイントラ16×16予測モードは、それぞれ、4×4画素のイントラ予測モード、8×8画素のイントラ予測モード、および16×16画素のイントラ予測モードとも適宜称する。
 図1の例において、各ブロックに付されている数字-1乃至25は、その各ブロックのビットストリーム順(復号側における処理順)を表している。なお、輝度信号については、マクロブロックが4×4画素に分割されて、4×4画素のDCTが行われる。そして、イントラ16×16予測モードの場合のみ、“-1”のブロックに示されるように、各ブロックの直流成分を集めて、4×4行列が生成され、これに対して、さらに、直交変換が施される。
 一方、色差信号については、マクロブロックが4×4画素に分割され、4×4画素のDCTが行われた後に、“16”および“17”の各ブロックに示されるように、各ブロックの直流成分を集めて2×2行列が生成され、これに対して、さらに直交変換が施される。
 なお、このことは、イントラ8×8予測モードに関しては、ハイプロファイルまたはそれ以上のプロファイルで、対象マクロブロックに、8×8直交変換が施される場合についてのみ適用可能である。
 ここで、図1に示される各ブロックについて、例えば、“0”のブロックの一通りの処理、が終了しなければ、“1”のブロックのイントラ予測処理を開始することができない。この一通りの処理とは、すなわち、イントラ予測処理、直交変換処理、量子化処理、逆量子化処理、および逆直交変換処理までの処理を示す。
 つまり、H.264/AV方式におけるイントラ予測方式においては、各ブロックのパイプライン処理または並列処理を行うことが困難であった。
 そこで、特許文献1においては、符号化順と圧縮画像としての出力順を変える方法が提案されている。図2のAには、特許文献1に記載の方法における符号化処理順が示されており、図2のBには、特許文献1に記載の方法における圧縮画像としての出力順が示されている。
 図2のAにおいては、上から第1段目の各ブロックには、左から順に、「0,1,2a,3a」が付されている。上から第2段目の各ブロックには、左から順に、「2b,3b,4a,5a」が付されている。上から第3段目の各ブロックには、左から順に、「4b,5b,6a,7a」が付されている。上から第3段目の各ブロックには、左から順に、「6b,7b,8,9」が付されている。なお、図2のAの例の場合、同じ番号で異なるアルファベットが付されたブロックは、どちらが先に処理されてもよい、すなわち、並列処理可能なブロックを表している。
 図2のBにおいては、上から第1段目の各ブロックには、左から順に、「0,1,4,5」が付されている。上から第2段目の各ブロックには、左から順に、「2,3,6,7」が付されている。上から第3段目の各ブロックには、左から順に、「8,9,12,13」が付されている。上から第4段目の各ブロックには、左から順に、「10,11,14,15」が付されている。
 すなわち、特許文献1に記載の方法において、各ブロックは、図2のAのブロックに付された番号の昇順に符号化されて、図2のBのブロックに付された番号の昇順に並び替えられて、圧縮画像として出力される。
 したがって、図2のAにおいて、同じ番号で異なるアルファベットが付されている2つのブロック(例えば、“2a”が付されたブロックと“2b”が付されたブロック)は、周囲ブロックの利用可能性(availability)に起因することなく処理が可能である。これにより、特許文献1に記載の方法の符号化処理においては、パイプライン処理または並列処理を行うことができる。
 また、上述したように、H.264/AV方式において、マクロブロックサイズは16×16画素である。しかしながら、マクロブロックサイズを16×16画素とするのは、次世代符号化方式の対象となるようなUHD(Ultra High Definition;4000×2000画素)といった大きな画枠に対しては最適ではない。
 そこで、非特許文献1などにおいては、マクロブロックサイズを、例えば、32×32画素といった大きさに拡張することも提案されている。
 なお、上述した図1および図2は、以下、本発明を説明する図としても用いられる。
特開2005-130509号公報
"Video Coding Using Extended Block Sizes",VCEG-AD09,ITU-Telecommunications Standardization Sector STUDY GROUP Question 16 - Contribution 123, Jan 2009
 ところで、特許文献1においては、符号化処理順と圧縮画像としての出力順が異なるため、符号化済みのデータを保持しておくバッファが必要となる。また、図2のAに示される処理順では、利用可能(available)である隣接画素値も、図2のBに示される処理順では、利用不可能(Unavailable)であることがある。
 このため、特許文献1の方法では、符号化処理を並列に処理することができたとしても、図2のAに示される処理順に符号化を行うことによって得られるはずの本来の符号化効率を得ることが困難であった。
 本発明は、このような状況に鑑みてなされたものであり、イントラ予測の並列またはパイプライン処理化を実現するとともに、符号化効率を向上させるものである。
 本発明の第1の側面の画像処理装置は、画像の所定のブロックを構成するブロックのうち、次に処理する対象ブロックのブロックアドレスを、符号化規格とは異なる順に基づいて確定するアドレス制御手段と、前記アドレス制御手段により確定されたブロックアドレスに対応する前記対象ブロックを、前記対象ブロックの周辺画素を用いた予測処理を行って、符号化する符号化手段と、前記符号化手段により符号化された順に、前記対象ブロックをストリームとして出力するストリーム出力手段とを備える。
 前記アドレス制御手段は、前記所定のブロックが16個のブロックにより構成される場合、左上のブロックを(0,0)とし、{}内のブロック同士は、パイプライン処理、並行処理、または先にどちらの処理を行ってもいいことを表すとすると、(0,0),(1,0),{(2,0),(0,1)},{(3,0),(1,1)},{(2,1),(0,2)},{(3,1),(1,2)},{(2,2),(0,3)},{(3,2),(1,3)},(2,3),(3,3)の順に基づいて、前記対象ブロックのブロックアドレスを確定することができる。
 前記アドレス制御手段により確定されたブロックアドレスを用いて、前記対象ブロックの周辺画素が利用可能であるか否かを判定する周辺画素利用可能性判定手段をさらに備え、前記符号化手段は、前記周辺画素利用可能性判定手段により利用可能であると判定された周辺画素を用いる予測モードで、前記対象ブロックの周辺画素を用いた予測処理を行って、前記対象ブロックを符号化することができる。
 前記アドレス制御手段により確定されたブロックアドレスを用いて、前記対象ブロックが、パイプライン処理または並列処理可能であるか否かを判定する処理判定手段をさらに備え、前記符号化手段は、前記処理判定手段により前記対象ブロックが、パイプライン処理または並列処理可能であると判定された場合、パイプライン処理または並列処理により、前記対象ブロックを符号化することができる。
 前記所定のブロックは、m×m(m≧16)画素のマクロブロックであり、前記所定のブロックを構成するブロックは、m/4×m/4画素のブロックである。
 前記所定のブロックは、m×m(m≧32)画素のマクロブロック、または前記マクロブロックを構成するサブブロックであり、前記所定のブロックを構成するブロックは、16×16画素のブロックである。
 本発明の第1の側面の画像処理方法は、画像処理装置が、画像の所定のブロックを構成するブロックのうち、次の処理する対象ブロックのブロックアドレスを、符号化規格とは異なる順に基づいて確定し、確定されたブロックアドレスに対応する前記対象ブロックを、前記対象ブロックの周辺画素を用いた予測処理を行って、符号化し、符号化された順に、前記対象ブロックをストリームとして出力するステップを含む。
 本発明の第2の側面の画像処理装置は、画像の所定のブロックを構成するブロックであって、前記所定のブロック内において符号化規格とは異なる順で符号化された後ストリームとして出力されている次に処理する対象ブロックを前記ストリームの順に復号する復号手段と、前記対象ブロックのブロックアドレスを、前記符号化規格とは異なる順に基づいて確定するアドレス制御手段と、前記アドレス制御手段により確定されたブロックアドレスに対応する前記対象ブロックの予測画像を、前記対象ブロックの周辺画素を用いて予測する予測手段と前記予測手段により予測された前記対象ブロックの予測画像と、前記復号手段により復号された前記対象ブロックの画像を加算する加算手段とを備える。
 前記アドレス制御手段は、前記所定のブロックが16個の前記ブロックにより構成される場合、左上のブロックを(0,0)とし、{}内のブロック同士は、パイプライン処理、並行処理、または先にどちらの処理を行ってもいいことを表すとすると、(0,0),(1,0),{(2,0),(0,1)},{(3,0),(1,1)},{(2,1),(0,2)},{(3,1),(1,2)},{(2,2),(0,3)},{(3,2),(1,3)},(2,3),(3,3)の順に基づいて、前記対象ブロックのブロックアドレスを確定することができる。
 前記アドレス制御手段により確定されたブロックアドレスを用いて、前記対象ブロックの周辺画素が利用可能であるか否かを判定する周辺画素利用可能性判定手段をさらに備え、前記復号手段は、前記対象ブロックの予測モード情報も復号し、前記予測手段は、前記予測モード情報が示す予測モードで、前記対象ブロックの予測画像を、前記周辺画素利用可能性判定手段により利用可能であると判定された前記対象ブロックの周辺画素を用いて予測することができる。
 前記アドレス制御手段により確定されたブロックアドレスを用いて、前記対象ブロックが、パイプライン処理または並列処理可能であるか否かを判定する処理判定手段をさらに備え、前記符号化手段は、前記処理判定手段により前記対象ブロックが、パイプライン処理または並列処理可能であると判定された場合、パイプライン処理または並列処理で、前記対象ブロックの予測画像を予測することができる。
 前記所定のブロックは、m×m(m≧16)画素のマクロブロックであり、前記所定のブロックを構成するブロックは、m/4×m/4画素のブロックである。
 前記所定のブロックは、m×m(m≧32)画素のマクロブロック、または前記マクロブロックを構成するサブブロックであり、前記所定のブロックを構成するブロックは、16×16画素のブロックである。
 本発明の第2の側面の画像処理方法は、画像処理装置が、画像の所定のブロックを構成するブロックであって、前記所定のブロック内で、符号化規格とは異なる順で符号化された後ストリームとして出力されている次に処理する対象ブロックを前記ストリームの順に復号し、前記対象ブロックのブロックアドレスを、前記符号化規格とは異なる順に基づいて確定し、確定されたブロックアドレスに対応する前記対象ブロックの予測画像を、前記対象ブロックの周辺画素を用いて予測し、予測された前記対象ブロックの予測画像と、復号された前記対象ブロックの画像を加算するステップを含む。
 本発明の第1の側面においては、画像の所定のブロックを構成するブロックのうち、次の処理する対象ブロックのブロックアドレスが、符号化規格とは異なる順に基づいて確定され、確定されたブロックアドレスに対応する前記対象ブロックが、前記対象ブロックの周辺画素を用いた予測処理を行って、符号化され、符号化された順に、前記対象ブロックがストリームとして出力される。
 本発明の第2の側面においては、画像の所定のブロックを構成するブロックであって、前記所定のブロック内で、符号化規格とは異なる順で符号化された後ストリームとして出力されている次に処理する対象ブロックが前記ストリームの順に復号され、前記対象ブロックのブロックアドレスが、前記符号化規格とは異なる順に基づいて確定され、確定されたブロックアドレスに対応する前記対象ブロックの予測画像が、前記対象ブロックの周辺画素を用いて予測される。そして、予測された前記対象ブロックの予測画像と、復号された前記対象ブロックの画像が加算される。
 なお、上述の画像処理装置のそれぞれは、独立した装置であっても良いし、1つの画像符号化装置または画像復号装置を構成している内部ブロックであってもよい。
 本発明の第1の側面によれば、所定のブロックを構成するブロックを符号化することができる。また、本発明の第1の側面によれば、イントラ予測の並列またはパイプライン処理化を実現するとともに、符号化効率を向上させることができる。
 本発明の第2の側面によれば、所定のブロックを構成するブロックを復号することができる。また、本発明の第2の側面によれば、イントラ予測の並列またはパイプライン処理化を実現するとともに、符号化効率を向上させることができる。
16×16画素のイントラ予測モードの場合の処理順序を説明する図である。 符号化処理順とストリームへの出力順の例を示す図である。 本発明を適用した画像符号化装置の一実施の形態の構成を示すブロック図である。 アドレス制御部の構成例を示すブロック図である。 並列処理およびパイプライン処理を説明するタイミングチャートである。 本発明の効果を説明する図である。 図3の画像符号化装置の符号化処理を説明するフローチャートである。 図7のステップS21の予測処理を説明するフローチャートである。 輝度信号の4×4画素のイントラ予測モードの種類を示す図である。 輝度信号の4×4画素のイントラ予測モードの種類を示す図である。 4×4画素のイントラ予測の方向を説明する図である。 4×4画素のイントラ予測を説明する図である。 輝度信号の4×4画素のイントラ予測モードの符号化を説明する図である。 輝度信号の8×8画素のイントラ予測モードの種類を示す図である。 輝度信号の8×8画素のイントラ予測モードの種類を示す図である。 輝度信号の16×16画素のイントラ予測モードの種類を示す図である。 輝度信号の16×16画素のイントラ予測モードの種類を示す図である。 16×16画素のイントラ予測を説明する図である。 色差信号のイントラ予測モードの種類を示す図である。 図8のステップS31のイントラ予測の前処理を説明するフローチャートである。 図8のステップS32のイントラ予測処理を説明するフローチャートである。 図8のステップS33のインター動き予測処理を説明するフローチャートである。 本発明を適用した画像復号装置の一実施の形態の構成を示すブロック図である。 アドレス制御部の構成例を示すブロック図である。 図23の画像復号装置の復号処理を説明するフローチャートである。 図25のステップS138の予測処理を説明するフローチャートである。 拡張されたブロックサイズの例を示す図である。 拡張されたブロックサイズへの本発明の適用例を示す図である。 コンピュータのハードウエアの構成例を示すブロック図である。 本発明を適用したテレビジョン受像機の主な構成例を示すブロック図である。 本発明を適用した携帯電話機の主な構成例を示すブロック図である。 本発明を適用したハードディスクレコーダの主な構成例を示すブロック図である。 本発明を適用したカメラの主な構成例を示すブロック図である。
 以下、図を参照して本発明の実施の形態について説明する。
[画像符号化装置の構成例]
 図3は、本発明を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
 この画像符号化装置51は、例えば、H.264及びMPEG-4 Part10(Advanced Video Coding)(以下H.264/AVCと記す)方式で画像を圧縮符号化する。
 図3の例において、画像符号化装置51は、A/D変換部61、画面並べ替えバッファ62、演算部63、直交変換部64、量子化部65、可逆符号化部66、蓄積バッファ67、逆量子化部68、逆直交変換部69、および演算部70を含んで構成される。また、画像符号化装置51は、デブロックフィルタ71、フレームメモリ72、スイッチ73、イントラ予測部74、アドレス制御部75、周辺画素利用可能性判定部76、動き予測・補償部77、予測画像選択部78、およびレート制御部79を含んで構成される。
 A/D変換部61は、入力された画像をA/D変換し、画面並べ替えバッファ62に出力し、記憶させる。画面並べ替えバッファ62は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)に応じて、符号化のためのフレームの順番に並べ替える。
 演算部63は、画面並べ替えバッファ62から読み出された画像から、予測画像選択部78により選択されたイントラ予測部74からの予測画像または動き予測・補償部77からの予測画像を減算し、その差分情報を直交変換部64に出力する。直交変換部64は、演算部63からの差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を出力する。量子化部65は直交変換部64が出力する変換係数を量子化する。
 量子化部65の出力となる、量子化された変換係数は、可逆符号化部66に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施され、圧縮される。
 可逆符号化部66は、イントラ予測を示す情報などをイントラ予測部74から取得し、インター予測モードを示す情報などを動き予測・補償部77から取得する。なお、イントラ予測を示す情報は、以下、イントラ予測モード情報とも称する。また、インター予測を示す情報モードを示す情報は、以下、インター予測モード情報とも称する。
 図3の例の場合、可逆符号化部66は、符号化処理部81およびストリーム出力部82により構成されている。符号化処理部81は、H.264/AVCの処理順とは異なる処理順で、量子化された変換係数を符号化するとともに、イントラ予測を示す情報やインター予測モードを示す情報などを符号化し、圧縮画像におけるヘッダ情報の一部とする。ストリーム出力部82は、符号化したデータを、符号化処理順と同じ出力順で、ストリームとして出力し、蓄積バッファ67に蓄積させる。
 なお、上述した処理順は、イントラ予測部74からの予測画像が符号化される場合の処理順であり、以下、特に言及しないが、動き予測・補償部77からの予測画像の場合には、H.264/AVCの処理順で符号化処理、出力処理が行われるものとする。
 ここで、可逆符号化部66においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。
 蓄積バッファ67は、可逆符号化部66から供給されたデータを、H.264/AVC方式で符号化された圧縮画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
 また、量子化部65より出力された、量子化された変換係数は、逆量子化部68にも入力され、逆量子化された後、さらに逆直交変換部69において逆直交変換される。逆直交変換された出力は演算部70により予測画像選択部78から供給される予測画像と加算されて、局部的に復号された画像となる。デブロックフィルタ71は、復号された画像のブロック歪を除去した後、フレームメモリ72に供給し、蓄積させる。フレームメモリ72には、デブロックフィルタ71によりデブロックフィルタ処理される前の画像も供給され、蓄積される。
 スイッチ73はフレームメモリ72に蓄積された参照画像を動き予測・補償部77またはイントラ予測部74に出力する。
 この画像符号化装置51においては、例えば、画面並べ替えバッファ62からのIピクチャ、Bピクチャ、およびPピクチャが、イントラ予測(イントラ処理とも称する)する画像として、イントラ予測部74に供給される。また、画面並べ替えバッファ62から読み出されたBピクチャおよびPピクチャが、インター予測(インター処理とも称する)する画像として、動き予測・補償部77に供給される。
 イントラ予測部74は、画面並べ替えバッファ62から読み出されたイントラ予測する画像とフレームメモリ72から供給された参照画像に基づいて、候補となる全てのイントラ予測モードのイントラ予測処理を行い、予測画像を生成する。
 その際、イントラ予測部74は、アドレス制御部75に、マクロブロック内において、次に処理するのが何番目のブロックであるかという次の処理番号の情報を供給する。これに対応して、イントラ予測部74は、アドレス制御部75から、ブロックアドレスと、パイプライン処理または並列処理を制御または禁止する制御信号を取得する。また、イントラ予測部74は、周辺画素利用可能性判定部76から、処理する対象ブロックの周辺画素の利用可能性の情報を取得する。
 イントラ予測部74は、アドレス制御部75からのブロックアドレスに対応するブロックについて、周辺画素利用可能性判定部76により利用可能であると判定された周辺画素を用いるイントラ予測モードで、イントラ予測処理を行う。なお、このとき、アドレス制御部75からパイプライン処理または並列処理を制御する制御信号を受け取った場合、イントラ予測部74は、それらのブロックについて、パイプライン処理または並列処理でのイントラ予測を行う。
 イントラ予測部74は、予測画像を生成したイントラ予測モードに対してコスト関数値を算出し、算出したコスト関数値が最小値を与えるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部74は、生成された予測画像と、対応する最適イントラ予測モードについて算出されたコスト関数値を、予測画像選択部78に供給する。
 イントラ予測部74は、予測画像選択部78により最適イントラ予測モードで生成された予測画像が選択された場合、最適イントラ予測モードを示す情報を、可逆符号化部66に供給する。可逆符号化部66は、イントラ予測部74から情報が送られてきた場合には、この情報を符号化し、圧縮画像におけるヘッダ情報の一部とする。
 アドレス制御部75は、イントラ予測部74からの処理番号の情報を得ると、H.264/AVCの処理順とは異なる処理順で、次に処理するブロックアドレスを算出し、そのブロックアドレスを、イントラ予測部74および周辺画素利用可能性判定部76に供給する。
 また、アドレス制御部75は、算出したブロックアドレスを用いて、対象ブロックがパイプライン処理または並列処理が可能であるか否かを判定する。アドレス制御部75は、その判定結果に応じて、パイプライン処理または並列処理を制御あるいは禁止する制御信号を、イントラ予測部74に供給する。
 周辺画素利用可能性判定部76は、アドレス制御部75からのブロックアドレスを用いて、対象ブロックの周辺画素の利用可能性を判定し、判定した周辺画素の利用可能性の情報を、イントラ予測部74に供給する。
 動き予測・補償部77は、候補となる全てのインター予測モードの動き予測・補償処理を行う。すなわち、動き予測・補償部77には、画面並べ替えバッファ62から読み出されたインター処理する画像と、スイッチ73を介してフレームメモリ72から参照画像が供給される。動き予測・補償部77は、インター処理する画像と参照画像に基づいて、候補となる全てのインター予測モードの動きベクトルを検出し、動きベクトルに基づいて参照画像に補償処理を施し、予測画像を生成する。
 また、動き予測・補償部77は、候補となる全てのインター予測モードに対してコスト関数値を算出する。動き予測・補償部77は、算出したコスト関数値のうち、最小値を与える予測モードを、最適インター予測モードとして決定する。
 動き予測・補償部77は、最適インター予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部78に供給する。動き予測・補償部77は、予測画像選択部78により最適インター予測モードで生成された予測画像が選択された場合、最適インター予測モードを示す情報(インター予測モード情報)を可逆符号化部66に出力する。
 なお、必要であれば、動きベクトル情報、フラグ情報、参照フレーム情報なども可逆符号化部66に出力される。可逆符号化部66は、動き予測・補償部77からの情報をやはり可変長符号化、算術符号化といった可逆符号化処理し、圧縮画像のヘッダ部に挿入する。
 予測画像選択部78は、イントラ予測部74または動き予測・補償部77より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードから、最適予測モードを決定する。そして、予測画像選択部78は、決定された最適予測モードの予測画像を選択し、演算部63,70に供給する。このとき、予測画像選択部78は、予測画像の選択情報を、イントラ予測部74または動き予測・補償部77に供給する。
 レート制御部79は、蓄積バッファ67に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部65の量子化動作のレートを制御する。
[アドレス制御部の構成例]
 図4は、アドレス制御部の構成例を示すブロック図である。
 図4の例の場合、アドレス制御部75は、ブロックアドレス算出部91、およびパイプライン/並列処理制御部92により構成されている。
 イントラ予測部74は、マクロブロック内のブロックについて、次の処理番号の情報を、ブロックアドレス算出部91に供給する。この次の処理番号は、例えば、16×16画素からなるマクロブロックが、4×4画素からなる16個のブロックで構成されている場合、1乃至16番目の何番目の処理までが終わって、次に何番目の処理がなされるかに関する情報である。
 ブロックアドレス算出部91は、イントラ予測部74からの処理番号から、H.264/AVCの処理順とは異なる処理順で、次に処理する対象ブロックのブロックアドレスを算出し、確定する。ブロックアドレス算出部91は、確定したブロックアドレスを、イントラ予測部74、パイプライン/並列処理制御部92、および周辺画素利用可能性判定部76に供給する。
 パイプライン/並列処理制御部92は、ブロックアドレス算出部91からのブロックアドレスを用いて、対象ブロックがパイプライン処理または並列処理が可能であるか否かを判定する。パイプライン/並列処理制御部92は、その判定結果に応じて、パイプライン処理または並列処理を制御あるいは禁止する制御信号を、イントラ予測部74に供給する。
 周辺画素利用可能性判定部76は、ブロックアドレス算出部91からのブロックアドレスを用いて、対象ブロックの周辺画素の利用可能性を判定し、判定した周辺画素の利用可能性を示す情報を、イントラ予測部74に供給する。
 イントラ予測部74は、ブロックアドレス算出部91からのブロックアドレスに対応する対象ブロックについて、周辺画素利用可能性判定部76により利用可能であると判定された周辺画素を用いるイントラ予測モードで、イントラ予測処理を行う。そして、その際、イントラ予測部74は、パイプライン/並列処理制御部92からの制御信号に基づいて、複数のブロックについてのパイプライン処理または並列処理のイントラ予測を行うか、1つのブロックだけでイントラ予測を行う。
[画像符号化装置における処理順の説明]
 次に、再度、図2を参照して、画像符号化装置51の処理順について説明する。ここでは、例えば、16×16画素からなるマクロブロックが、4×4画素からなる16個のブロックで構成されている場合を例に説明する。
 画像符号化装置51においては、マクロブロック内の各ブロックについて、図2のAの各ブロックに付された番号順、すなわち、0→1→{2a,2b}→{3a,3b}→{4a,4b}→{5a,5b}→{6a,6b}→{7a,7b}→8→9の順で符号化処理が行われる。そして、画像符号化装置51においては、さらに、符号化されたブロックが、符号化処理と同じ順でストリームとして出力される。なお、図2のAの番号順で符号化処理が行われるということは、つまり、イントラ予測、直交変換、量子化、逆量子化、および逆直交変換が、図2のAの番号順で処理が行われるということである。
 ここで、例えば、{2a,2b}は、どちらを先に処理してもよいことを表している。{2a,2b}においては、一方の処理が終了せずとも、他方の処理を開始すること、すなわち、パイプライン処理が可能であり、並列処理も可能である。
 例えば、H.264/AVCの符号化処理は、図2のBの各ブロックに付された番号順で行われる。なお、以下、各番号が付されたブロックを、“番号”のブロックとも称する。
 H.264/AVCの場合、図2のBに示される“2”のブロックと“3”のブロックでは、図5のAに示されるように、“2”のブロックのローカルデコード処理(逆直交変換)が完了しないと、“3”のブロックのイントラ予測を行うことができなかった。
 例えば、図5のAの例においては、H.264/AVCの符号化順、すなわち、図2のBに示される“2”のブロックと“3”のブロックの場合のタイミングチャートが示されている。図5のAの場合、“2”のブロックのイントラ予測、直交変換、量子化、逆量子化、および逆直交変換が完了した後に、“3”のブロックのイントラ予測が開始されている。
 このように、H.264/AVCの場合、“2”のブロックのローカルデコード処理(逆直交変換)が完了しないと、“3”のブロックのイントラ予測を行うための周辺画素の値がわからないため、パイプライン処理を行うことが困難であった。
 これに対して、画像符号化装置51の符号化順および出力順の場合、図2のAに示される“2a”のブロックと“2b”のブロックは、周辺画素に関する依存関係が存在しないため、次の図5のBおよび図5のCに示されるような処理が可能である。
 例えば、図5のBの例においては、画像符号化装置51の符号化および出力順、すなわち、図2のAに示される“2a”のブロックと“2b”のブロックの場合のパイプライン処理のタイミングチャートが示されている。図5のBの場合、“2a”のブロックのイントラ予測が完了した後、“2a”のブロックの直交変換の開始と同時に、“2a”のブロックの処理に影響されることなく、“2b”のブロックのイントラ予測が開始されている。その後の“2a”のブロックの量子化、逆量子化、逆直交変換の処理も、“2b”のブロックの処理に影響することなく行われ、“2b”のブロックの直交変換、量子化、逆量子化、逆直交変換も、“2a”のブロックの処理に影響されることなく、行われている。
 図5のCの例においては、画像符号化装置51の符号化および出力順、すなわち、図2のAに示される“2a”のブロックと“2b”のブロックの場合の並列処理のタイミングチャートが示されている。図5のCの場合、“2a”のブロックのイントラ予測と同時に、“2b”のブロックのイントラ予測が開始されている。その後の“2a”のブロックの直交変換、量子化、逆量子化、逆直交変換の処理も、“2b”のブロックの直交変換、量子化、逆量子化、逆直交変換の処理とそれぞれ同時に行われている。
 以上のように、図2のAに示される“2a”のブロックと“2b”のブロックにおいては、図5のBに示されるようなパイプライン処理や、図5のCに示される並列処理が可能である。
 なお、上述した特許文献1に記載の提案においては、符号化処理の順序は、図2のAに付された番号順であるが、ストリームへの出力順は、図2のBに付された番号順である。したがって、順序を変更する(リオーダリングの)ためのバッファが必要であった。これに対して、画像符号化装置51においては、符号化順と出力順が同じであるため、符号化処理部81とストリーム出力部82の間にバッファを備える必要がない。
 また、図6に示される“3b”のブロックまたは“7b”のブロックについて注目してみる。図6の例においては、各ブロックには、符号化順を示す番号が付されており、その番号の隣に付される括弧内の番号は、特許文献1に記載の提案の出力順を表している。
 例えば、“3b”のブロックを処理している場合、図6においてハッチがなされた“2a”のブロックの処理は終了しているはずである。 “7b”のブロックについても同様で、“7b”のブロックを処理している場合、図6においてハッチがなされた“6a”のブロックの処理は終了しているはずである。したがって、処理の順から考えると、“3b”のブロックおよび“7b”のブロックに対する右上の周辺画素値は、利用可能(available)である。
 しかしながら、出力順が、括弧内の番号であるとすると、“3b”のブロックの出力順は、3番目で、“2a”のブロックの出力順は、4番目であるので、“3b”のブロックよりも“2a”のブロックの方が後に出力される。
 “7b”のブロックの出力順は、11番目で、“6a”のブロックの出力順は、12番目であるので、“7b”のブロックよりも“6a”のブロックの方が後に出力される。
 したがって、“3b”のブロックおよび“7b”のブロックに対する右上の周辺画素値は、利用不可能(unavailable)であるとして処理しなければ、後段の復号側において、それらのブロックを復号することが困難になってしまう。すなわち、符号化効率が低下してしまう。
 これに対して、画像符号化装置51の場合、出力順が符号化順と同じであるので、復号側における復号順も同じであり、“3b”のブロックおよび“7b”のブロックに対する右上の周辺画素値は、利用可能(available)であると処理することができる。すなわち、候補のイントラ予測モードが増える。
 これにより、画像符号化装置51においては、符号化効率を低下させることなく、高い符号化効率で、パイプライン処理や並列処理を実現することができる。
[画像符号化装置の符号化処理の説明]
 次に、図7のフローチャートを参照して、図3の画像符号化装置51の符号化処理について説明する。
 ステップS11において、A/D変換部61は入力された画像をA/D変換する。ステップS12において、画面並べ替えバッファ62は、A/D変換部61より供給された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
 ステップS13において、演算部63は、ステップS12で並び替えられた画像と予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部77から、イントラ予測する場合はイントラ予測部74から、それぞれ予測画像選択部78を介して演算部63に供給される。
 差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
 ステップS14において、直交変換部64は演算部63から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップS15において、量子化部65は変換係数を量子化する。この量子化に際しては、後述するステップS25の処理で説明されるように、レートが制御される。
 以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS16において、逆量子化部68は量子化部65により量子化された変換係数を量子化部65の特性に対応する特性で逆量子化する。ステップS17において、逆直交変換部69は逆量子化部68により逆量子化された変換係数を直交変換部64の特性に対応する特性で逆直交変換する。
 ステップS18において、演算部70は、予測画像選択部78を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部63への入力に対応する画像)を生成する。ステップS19においてデブロックフィルタ71は、演算部70より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップS20においてフレームメモリ72は、フィルタリングされた画像を記憶する。なお、フレームメモリ72にはデブロックフィルタ71によりフィルタ処理されていない画像も演算部70から供給され、記憶される。
 ステップS21において、イントラ予測部74および動き予測・補償部77は、それぞれ画像の予測処理を行う。すなわち、ステップS21において、イントラ予測部74は、イントラ予測モードのイントラ予測処理を行う。動き予測・補償部77は、インター予測モードの動き予測・補償処理を行う。
 ステップS21における予測処理の詳細は、図8を参照して後述するが、この処理により、候補となる全ての予測モードでの予測処理がそれぞれ行われ、候補となる全ての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部78に供給される。
 一方、算出されたコスト関数値に基づいて、インター予測モードの中から、最適インター予測モードが決定され、最適インター予測モードで生成された予測画像とそのコスト関数値が、予測画像選択部78に供給される。
 ステップS22において、予測画像選択部78は、イントラ予測部74および動き予測・補償部77より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部78は、決定した最適予測モードの予測画像を選択し、演算部63,70に供給する。この予測画像が、上述したように、ステップS13,S18の演算に利用される。
 なお、この予測画像の選択情報は、イントラ予測部74または動き予測・補償部77に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部74は、最適イントラ予測モードを示す情報(すなわち、イントラ予測モード情報を、可逆符号化部66に供給する。
 最適インター予測モードの予測画像が選択された場合、動き予測・補償部77は、最適インター予測モードを示す情報と、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部66に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報やフラグ情報、参照フレーム情報などがあげられる。すなわち、最適インター予測モードとして、インター予測モードによる予測画像が選択されているときには、動き予測・補償部77は、インター予測モード情報、動きベクトル情報、参照フレーム情報を可逆符号化部66に出力する。
 ステップS23において、符号化処理部81は量子化部65より出力された量子化された変換係数を符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。このとき、上述したステップS22において符号化処理部81に入力された、イントラ予測部74からのイントラ予測モード情報、または、動き予測・補償部77からの最適インター予測モードに応じた情報なども符号化され、ヘッダ情報に付加される。
 符号化処理部81により符号化されたデータは、ストリーム出力部82により、符号化処理順と同じ出力順で、ストリームとして蓄積バッファ67に出力される。
 ステップS24において蓄積バッファ67は差分画像を圧縮画像として蓄積する。蓄積バッファ67に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
 ステップS25においてレート制御部79は、蓄積バッファ67に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部65の量子化動作のレートを制御する。
[予測処理の説明]
 次に、図8のフローチャートを参照して、図7のステップS21における予測処理を説明する。
 画面並べ替えバッファ62から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ72から読み出され、スイッチ73を介してイントラ予測部74に供給される。
 イントラ予測部74は、アドレス制御部75に、マクロブロックにおいて、次に処理するのが何番目のブロックであるかという次の処理番号の情報を供給する。
 ステップS31において、アドレス制御部75と周辺画素利用可能性判定部76は、イントラ予測の前処理を行う。ステップS31におけるイントラ予測の前処理の詳細は、図20を参照して後述する。
 この処理により、図2のAに示される処理順で、処理番号が対応する次に処理するブロックのブロックアドレスが確定される。また、確定されたブロックアドレスが用いられて、対象ブロックがパイプライン処理または並列処理が可能であるか否かと、対象ブロックの周辺画素の利用可能性が判定される。そして、次に処理するブロックのブロックアドレス、パイプライン処理または並列処理を制御あるいは禁止する制御信号、および周辺画素の利用可能性を示す情報が、イントラ予測部74に供給される。
 ステップS32において、イントラ予測部74は、供給された画像を用いて、処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロックフィルタ71によりデブロックフィルタリングされていない画素が用いられる。
 ステップS32におけるイントラ予測処理の詳細は、図21を参照して後述するが、この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われる。なお、このとき、イントラ予測部74は、アドレス制御部75により確定されたブロックアドレスが対応する対象ブロックについて、周辺画素利用可能性判定部76により利用可能であると判定された周辺画素を用いるイントラ予測モードで、イントラ予測処理を行う。その際、イントラ予測部74は、アドレス制御部75からパイプライン処理または並列処理を制御する制御信号を受け取った場合、それらのブロックについて、パイプライン処理または並列処理でのイントラ予測を行う。
 そして、候補となる全てのイントラ予測モードに対してコスト関数値が算出され、算出されたコスト関数値に基づいて、最適イントラ予測モードが決定される。生成された予測画像と最適イントラ予測モードのコスト関数値は、予測画像選択部78に供給される。
 画面並べ替えバッファ62から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ72から読み出され、スイッチ73を介して動き予測・補償部77に供給される。これらの画像に基づいて、ステップS33において、動き予測・補償部77はインター動き予測処理を行う。すなわち、動き予測・補償部77は、フレームメモリ72から供給される画像を参照して、候補となる全てのインター予測モードの動き予測処理を行う。
 ステップS33におけるインター動き予測処理の詳細は、図22を参照して後述するが、この処理により、候補となる全てのインター予測モードで動き予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出される。
 ステップS34において、動き予測・補償部77は、ステップS33において算出されたインター予測モードに対してのコスト関数値を比較し、最小値を与える予測モードを、最適インター予測モードとして決定する。そして、動き予測・補償部77は、最適インター予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部78に供給する。
[H.264/AVC方式におけるイントラ予測処理の説明]
 次に、H.264/AVC方式で定められているイントラ予測の各モードについて説明する。
 まず、輝度信号に対するイントラ予測モードについて説明する。輝度信号のイントラ予測モードには、イントラ4×4予測モード、イントラ8×8予測モード、およびイントラ16×16予測モードの3通りの方式が定められている。これは、ブロック単位を定めるモードであり、マクロブロック毎に設定される。また、色差信号に対しては、マクロブロック毎に輝度信号とは独立したイントラ予測モードを設定することが可能である。
 さらに、イントラ4×4予測モードの場合、4×4画素の対象ブロック毎に、9種類の予測モードから1つの予測モードを設定することができる。イントラ8×8予測モードの場合、8×8画素の対象ブロック毎に、9種類の予測モードから1つの予測モードを設定することができる。また、イントラ16×16予測モードの場合、16×16画素の対象マクロブロックに対して、4種類の予測モードから1つの予測モードを設定することができる。
 なお、以下、イントラ4×4予測モード、イントラ8×8予測モード、およびイントラ16×16予測モードは、それぞれ、4×4画素のイントラ予測モード、8×8画素のイントラ予測モード、および16×16画素のイントラ予測モードとも適宜称する。
 図9および図10は、9種類の輝度信号の4×4画素のイントラ予測モード(Intra_4x4_pred_mode)を示す図である。平均値(DC)予測を示すモード2以外の8種類の各モードは、それぞれ、図11の番号0,1,3乃至8で示される方向に対応している。
 9種類のIntra_4x4_pred_modeについて、図12を参照して説明する。図12の例において、画素a乃至pは、イントラ処理される対象ブロックの画素を表し、画素値A乃至Mは、隣接ブロックに属する画素の画素値を表している。すなわち、画素a乃至pは、画面並べ替えバッファ62から読み出された処理対象の画像であり、画素値A乃至Mは、フレームメモリ72から読み出され、参照される復号済みの画像の画素値である。
 図10および図11に示す各イントラ予測モードの場合、画素a乃至pの予測画素値は、隣接ブロックに属する画素の画素値A乃至Mを用いて、以下のように生成される。なお、画素値が“available”であるとは、画枠の端であったり、あるいは、まだ符号化されていないなどの理由がなく、利用可能であることを表す。これに対して、画素値が“unavailable”であるとは、画枠の端であったり、あるいは、まだ符号化されていないなどの理由により利用可能ではないことを表す。
 モード0はVertical Prediction modeであり、画素値A乃至Dが “available” の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(1)のように生成される。

 画素a, e, i, mの予測画素値 = A
 画素b, f, j, nの予測画素値 = B
 画素c, g, k, oの予測画素値 = C
 画素d, h, l, pの予測画素値 = D       ・・・(1)
 モード1はHorizontal Prediction modeであり、画素値I乃至Lが “available” の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(2)のように生成される。

 画素a, b, c, dの予測画素値 = I
 画素e, f, g, hの予測画素値 = J
 画素i, j, k, lの予測画素値 = K
 画素m, n, o, pの予測画素値 = L        ・・・(2)
 モード2はDC Prediction modeであり、画素値A,B,C,D,I,J,K,Lが全て “available” である時、予測画素値は式(3)のように生成される。

 (A+B+C+D+I+J+K+L+4) >> 3   ・・・(3)
 また、画素値A,B,C,Dが全て “unavailable” である時、予測画素値は式(4)のように生成される。

 (I+J+K+L+2) >> 2           ・・・(4)
 また、画素値I,J,K,Lが全て “unavailable” である時、予測画素値は式(5)のように生成される。

 (A+B+C+D+2) >> 2           ・・・(5)
 なお、画素値A,B,C,D,I,J,K,Lが全て“unavailable” である時、128を予測画素値として用いる。
 モード3はDiagonal_Down_Left Prediction modeであり、画素値A,B,C,D,I,J,K,L,Mが“available”の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(6)のように生成される。

 画素aの予測画素値       = (A+2B+C+2) >> 2
 画素b,eの予測画素値     = (B+2C+D+2) >> 2
 画素c,f,iの予測画素値   = (C+2D+E+2) >> 2
 画素d,g,j,mの予測画素値 = (D+2E+F+2) >> 2
 画素h,k,nの予測画素値   = (E+2F+G+2) >> 2
 画素l,oの予測画素値     = (F+2G+H+2) >> 2
 画素pの予測画素値       = (G+3H+2)   >> 2
                            ・・・(6)
 モード4はDiagonal_Down_Right Prediction modeであり、画素値A,B,C,D,I,J,K,L,Mが “available” の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(7)のように生成される。

 画素mの予測画素値       = (J+2K+L+2) >> 2
 画素i,nの予測画素値     = (I+2J+K+2) >> 2
 画素e,j,oの予測画素値   = (M+2I+J+2) >> 2
 画素a,f,k,pの予測画素値 = (A+2M+I+2) >> 2
 画素b,g,lの予測画素値   = (M+2A+B+2) >> 2
 画素c,hの予測画素値     = (A+2B+C+2) >> 2
 画素dの予測画素値       = (B+2C+D+2) >> 2
                            ・・・(7)
 モード5はDiagonal_Vertical_Right Prediction modeであり、画素値A,B,C,D,I,J,K,L,Mが“available”の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(8)のように生成される。

 画素a,jの予測画素値     = (M+A+1)    >> 1
 画素b,kの予測画素値     = (A+B+1)    >> 1
 画素c,lの予測画素値     = (B+C+1)    >> 1
 画素dの予測画素値       = (C+D+1)    >> 1
 画素e,nの予測画素値     = (I+2M+A+2) >> 2
 画素f,oの予測画素値     = (M+2A+B+2) >> 2
 画素g,pの予測画素値     = (A+2B+C+2) >> 2
 画素hの予測画素値       = (B+2C+D+2) >> 2
 画素iの予測画素値       = (M+2I+J+2) >> 2
 画素mの予測画素値       = (I+2J+K+2) >> 2
                            ・・・(8)
 モード6はHorizontal_Down Prediction modeであり、画素値A,B,C,D,I,J,K,L,Mが“available”の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(9)のように生成される。

 画素a,gの予測画素値     = (M+I+1)    >> 1
 画素b,hの予測画素値     = (I+2M+A+2) >> 2
 画素cの予測画素値       = (M+2A+B+2) >> 2
 画素dの予測画素値       = (A+2B+C+2) >> 2
 画素e,kの予測画素値     = (I+J+1)    >> 1
 画素f,lの予測画素値     = (M+2I+J+2) >> 2
 画素i,oの予測画素値     = (J+K+1)    >> 1
 画素j,pの予測画素値     = (I+2J+K+2) >> 2
 画素mの予測画素値       = (K+L+1)    >> 1
 画素nの予測画素値       = (J+2K+L+2) >> 2
                            ・・・(9)
 モード7は、Vertical_Left Prediction modeであり、画素値A,B,C,D,I,J,K,L,Mが“available”の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(10)のように生成される。

 画素aの予測画素値       = (A+B+1)    >> 1
 画素b,iの予測画素値     = (B+C+1)    >> 1
 画素c,jの予測画素値     = (C+D+1)    >> 1
 画素d,kの予測画素値     = (D+E+1)    >> 1
 画素lの予測画素値       = (E+F+1)    >> 1
 画素eの予測画素値       = (A+2B+C+2) >> 2
 画素f,mの予測画素値     = (B+2C+D+2) >> 2
 画素g,nの予測画素値     = (C+2D+E+2) >> 2
 画素h,oの予測画素値     = (D+2E+F+2) >> 2
 画素pの予測画素値       = (E+2F+G+2) >> 2
                           ・・・(10)
 モード8は、Horizontal_Up Prediction modeであり、画素値A,B,C,D,I,J,K,L,Mが“available”の場合のみ適用される。この場合、画素a乃至pの予測画素値は、次の式(11)のように生成される。

 画素aの予測画素値       = (I+J+1)    >> 1
 画素bの予測画素値       = (I+2J+K+2) >> 2
 画素c,eの予測画素値     = (J+K+1)    >> 1
 画素d,fの予測画素値     = (J+2K+L+2) >> 2
 画素g,iの予測画素値     = (K+L+1)    >> 1
 画素h,jの予測画素値     = (K+3L+2)   >> 2
 画素k,l,m,n,o,pの予測画素値 = L
                           ・・・(11)
 次に、図13を参照して、輝度信号の4×4画素のイントラ予測モード(Intra_4x4_pred_mode)の符号化方式について説明する。図13の例において、4×4画素からなり、符号化対象となる対象ブロックCが示されており、対象ブロックCに隣接する4×4画素からなるブロックAおよびブロックBが示されている。
 この場合、対象ブロックCにおけるIntra_4x4_pred_modeと、ブロックAおよびブロックBにおけるIntra_4x4_pred_modeとは高い相関があると考えられる。この相関性を用いて、次のように符号化処理を行うことにより、より高い符号化効率を実現することができる。
 すなわち、図13の例において、ブロックAおよびブロックBにおけるIntra_4x4_pred_modeを、それぞれ、Intra_4x4_pred_modeAおよびIntra_4x4_pred_modeBとして、MostProbableModeを次の式(12)と定義する。

 MostProbableMode=Min(Intra_4x4_pred_modeA, Intra_4x4_pred_modeB)
                           ・・・(12)
 すなわち、ブロックAおよびブロックBのうち、より小さなmode_numberを割り当てられている方をMostProbableModeとする。
 ビットストリーム中には、対象ブロックCに対するパラメータとして、prev_intra4x4_pred_mode_flag[luma4x4BlkIdx] および rem_intra4x4_pred_mode[luma4x4BlkIdx] という2つの値が定義されており、次の式(13)に示される擬似コードに基づく処理により、復号処理が行われ、対象ブロックCに対するIntra_4x4_pred_mode、Intra4x4PredMode[luma4x4BlkIdx] の値を得ることができる。
 if(prev_intra4x4_pred_mode_flag[luma4x4BlkIdx])
       Intra4x4PredMode[luma4x4BlkIdx] = MostProbableMode
 else
  if(rem_intra4x4_pred_mode[luma4x4BlkIdx] < MostProbableMode)
   Intra4x4PredMode[luma4x4BlkIdx]=rem_intra4x4_pred_mode[luma4x4BlkIdx]
    else
   Intra4x4PredMode[luma4x4BlkIdx]=rem_intra4x4_pred_mode[luma4x4BlkIdx] + 1
                           ・・・(13)
 次に、8×8画素のイントラ予測モードについて説明する。図14および図15は、9種類の輝度信号の8×8画素のイントラ予測モード(Intra_8x8_pred_mode)を示す図である。
 対象の8×8ブロックにおける画素値を、p[x,y](0≦x≦7;0≦y≦7)とし、隣接ブロックの画素値をp[-1,-1],…,p[-1,15],p[-1,0],…,[p-1,7]のように表すものとする。
 8×8画素のイントラ予測モードについては、予測値を生成するに先立ち、隣接画素にローパスフィルタリング処理が施される。ここで、ローパスフィルタリング処理前の画素値を、p[-1,-1],…,p[-1,15],p[-1,0],…p[-1,7]、処理後の画素値をp'[-1,-1],…,p'[-1,15],p'[-1,0],…p'[-1,7]と表すとする。
 まず、p'[0,-1]は、p[-1,-1] が “available” である場合には、次の式(14)のように算出され、“not available” である場合には、次の式(15)のように算出される。

 p'[0,-1] = (p[-1,-1] + 2*p[0,-1] + p[1,-1] + 2) >> 2
                           ・・・(14)
 p'[0,-1] = (3*p[0,-1] + p[1,-1] + 2) >> 2
                           ・・・(15)
 p'[x,-1] (x=0,…,7)は、次の式(16)のように算出される。

 p'[x,-1] = (p[x-1,-1] + 2*p[x,-1] + p[x+1,-1] + 2) >>2
                           ・・・(16)
 p'[x,-1] (x=8,…,15)は、p[x,-1] (x=8,…,15) が “available” である場合には、次の式(17)のように算出される。

 p'[x,-1] = (p[x-1,-1] + 2*p[x,-1] + p[x+1,-1] + 2) >>2
 p'[15,-1] = (p[14,-1] + 3*p[15,-1] + 2) >>2
                           ・・・(17)
 p'[-1,-1]は、p[-1,-1]が “available” である場合には、以下のように算出される。すなわち、p'[-1,-1]は、p[0,-1]及びp[-1,0]の双方がavailableである場合には、式(18)のように算出され、p[-1,0] が “unavailable” である場合には、式(19)のように算出される。また、p'[-1,-1]は、p[0,-1] が “unavailable” である場合には、式(20)のように算出される。

 p'[-1,-1] = (p[0,-1] + 2*p[-1,-1] + p[-1,0] + 2) >>2
                           ・・・(18)
 p'[-1,-1] = (3*p[-1,-1] + p[0,-1] + 2) >>2
                           ・・・(19)
 p'[-1,-1] = (3*p[-1,-1] + p[-1,0] + 2) >>2
                           ・・・(20)
 p'[-1,y] (y=0, … ,7) は、p[-1,y] (y=0, … ,7) が “available” の時、以下のように算出される。すなわち、まず、p'[-1,0]は、p[-1,-1]が “available” である場合には、次の式(21)のように算出され、“unavailable” である場合には、式(22)のように算出される。

 p'[-1,0] = (p[-1,-1] + 2*p[-1,0] + p[-1,1] + 2) >>2
                           ・・・(21)
 p'[-1,0] = (3*p[-1,0] + p[-1,1] + 2) >>2
                           ・・・(22)
 また、p'[-1,y] (y=1,…,6)は、次の式(23)のように算出され、p'[-1,7]は、式(24)のように算出される。

 p[-1,y] = (p[-1,y-1] + 2*p[-1,y] + p[-1,y+1] + 2) >>2
                           ・・・(23)
 p'[-1,7] = (p[-1,6] + 3*p[-1,7] + 2) >>2
                           ・・・(24)
 このように算出されたp'を用いて、図14および図15に示される各イントラ予測モードにおける予測値は以下のように生成される。
 モード0はVertical Prediction modeであり、p[x,-1] (x=0, … ,7) が “available” である時のみ適用される。予測値pred8x8L[x,y]は、次の式(25)のように生成される。

 pred8x8L[x,y] = p'[x,-1] x,y=0,...,7
                           ・・・(25)
 モード1はHorizontal Prediction modeであり、p[-1,y] (y=0, … ,7) が “available” である時のみ適用される。予測値pred8x8L[x,y]は、次の式(26)のように生成される。

 pred8x8L[x,y] = p'[-1,y] x,y=0,...,7
                           ・・・(26)
 モード2はDC Prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、p[x,-1] (x=0, … ,7) および p[-1,y] (y=0, … ,7) の両方が “available” である場合には、予測値pred8x8L[x,y]は、次の式(27)のように生成される。

Figure JPOXMLDOC01-appb-M000001
 p[x,-1] (x=0, … ,7) は “available” であるが、 p[-1,y] (y=0, … ,7) が “unavailable” である場合には、予測値pred8x8L[x,y]は、次の式(28)のように生成される。

Figure JPOXMLDOC01-appb-M000002
 p[x,-1] (x=0, … ,7) は “unavailable” であるが、 p[-1,y] (y=0, … ,7) が “available” である場合には、予測値pred8x8L[x,y]は、次の式(29)のように生成される。

Figure JPOXMLDOC01-appb-M000003
 p[x,-1] (x=0, … ,7) および p[-1,y] (y=0, … ,7) の両方が “unavailable” である場合には、予測値pred8x8L[x,y]は、次の式(30)のように生成される。

 pred8x8L[x,y] = 128
                           ・・・(30)
 ただし、式(30)は、8ビット入力の場合を表している。
 モード3はDiagonal_Down_Left_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Diagonal_Down_Left_prediction modeは、p[x,-1], x=0,…,15が “available” の時のみ適用され、x=7かつy=7である予測画素値は、次の式(31)のように生成され、その他の予測画素値は、次の式(32)のように生成される。

 pred8x8L[x,y] = (p'[14,-1] + 3*p[15,-1] + 2) >> 2
                           ・・・(31)
 red8x8L[x,y] = (p'[x+y,-1] + 2*p'[x+y+1,-1] + p'[x+y+2,-1] + 2) >> 2
                           ・・・(32)
 モード4はDiagonal_Down_Right_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Diagonal_Down_Right_prediction modeは、p[x,-1],x=0,…,7及びp[-1,y],y=0,…,7が “available”の時のみ適用され、x > y である予測画素値は、次の式(33)のように生成され、x < y である予測画素値は、次の式(34)のように生成される。また、x = y である予測画素値は、次の式(35)のように生成される。

 pred8x8L[x,y] = (p'[x-y-2,-1] + 2*p'[x-y-1,-1] + p'[x-y,-1] + 2) >> 2
                           ・・・(33)
 pred8x8L[x,y] = (p'[-1,y-x-2] + 2*p'[-1,y-x-1] + p'[-1,y-x] + 2) >> 2
                           ・・・(34)
 pred8x8L[x,y] = (p'[0,-1] + 2*p'[-1,-1] + p'[-1,0] + 2) >> 2
                           ・・・(35)
 モード5はVertical_Right_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Vertical_Right_prediction modeは、p[x,-1],x=0,…,7及びp[-1,y],y=-1,…,7が “available”の時のみ適用される。今、zVRを、次の式(36)のように定義する。

 zVR = 2*x - y
                           ・・・(36)
 この時、zVRが、0,2,4,6,8,10,12,14の場合には、画素予測値は、次の式(37)のように生成され、zVRが1,3,5,7,9,11,13の場合には、画素予測値は、次の式(38)のように生成される。

 pred8x8L[x,y] = (p'[x-(y>>1)-1,-1] + p'[x-(y>>1),-1] + 1) >> 1
                           ・・・(37)
 pred8x8L[x,y]
     = (p'[x-(y>>1)-2,-1] + 2*p'[x-(y>>1)-1,-1] + p'[x-(y>>1),-1] + 2) >> 2
                           ・・・(38)
 また、zVRが-1の場合には、画素予測値は、次の式(39)のように生成され、これ以外の場合、すなわち、zVRが-2,-3,-4,-5,-6,-7の場合には、画素予測値は、次の式(40)のように生成される。

 pred8x8L[x,y] = (p'[-1,0] + 2*p'[-1,-1] + p'[0,-1] + 2) >> 2
                           ・・・(39)
 pred8x8L[x,y] = (p'[-1,y-2*x-1] + 2*p'[-1,y-2*x-2] + p'[-1,y-2*x-3] + 2) >> 2
                           ・・・(40)
 モード6はHorizontal_Down_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Horizontal_Down_prediction modeは、p[x,-1],x=0,…,7及びp[-1,y],y=-1,…,7が “available”の時のみ適用される。今、zVRを次の式(41)のように定義するものとする。

 zHD = 2*y - x
                           ・・・(41)
 この時、zHDが0,2,4,6,8,10,12,14の場合には、予測画素値は、次の式(42)のように生成され、zHDが1,3,5,7,9,11,13の場合には、予測画素値は、次の式(43)のように生成される。

 pred8x8L[x,y] = (p'[-1,y-(x>>1)-1] + p'[-1,y-(x>>1) + 1] >> 1
                           ・・・(42)
 pred8x8L[x,y]
     = (p'[-1,y-(x>>1)-2] + 2*p'[-1,y-(x>>1)-1] + p'[-1,y-(x>>1)] + 2) >> 2
                           ・・・(43)
 また、zHDが-1の場合には、予測画素値は、次の式(44)のように生成され、zHDがこれ以外の値の場合、すなわち、-2,-3,-4,-5,-6,-7の場合には、予測画素値は、次の式(45)のように生成される。

 pred8x8L[x,y] = (p'[-1,0] + 2*p[-1,-1] + p'[0,-1] + 2) >> 2
                           ・・・(44)
 pred8x8L[x,y] = (p'[x-2*y-1,-1] + 2*p'[x-2*y-2,-1] + p'[x-2*y-3,-1] + 2) >> 2
                           ・・・(45)
 モード7はVertical_Left_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Vertical_Left_prediction modeは、p[x,-1], x=0,…,15が “available” の時のみ適用され、y=0,2,4,6の場合、予測画素値は、次の式(46)のように生成され、それ以外の場合、すなわち、y=1,3,5,7の場合、予測画素値は、次の式(47)のように生成される。

 pred8x8L[x,y] = (p'[x+(y>>1),-1] + p'[x+(y>>1)+1,-1] + 1) >> 1
                           ・・・(46)
 pred8x8L[x,y]
     = (p'[x+(y>>1),-1] + 2*p'[x+(y>>1)+1,-1] + p'[x+(y>>1)+2,-1] + 2) >> 2
                           ・・・(47)
 モード8はHorizontal_Up_prediction modeであり、予測値pred8x8L[x,y]は以下の通り生成される。すなわち、Horizontal_Up_prediction modeは、p[-1,y], y=0,…,7 が “available” の時のみ適用される。以下では、zHUを次の式(48)のように定義する。

 zHU = x + 2*y
                           ・・・(48)
 zHUの値が0,2,4,6,8,10,12の場合、予測画素値は、次の式(49)のように生成され、zHUの値が1,3,5,7,9,11の場合、予測画素値は、次の式(50)のように生成される。

 pred8x8L[x,y] = (p'[-1,y+(x>>1)] + p'[-1,y+(x>>1)+1] + 1) >> 1
                           ・・・(49)
 pred8x8L[x,y] = (p'[-1,y+(x>>1)]
                           ・・・(50)
 また、zHUの値が13の場合、予測画素値は、次の式(49)’のように生成され、それ以外の場合、すなわち、zHUの値が13より大きい場合、予測画素値は、次の式(50)’のように生成される。

 pred8x8L[x,y] = (p'[-1,6] + 3*p'[-1,7] + 2) >> 2
                         ・・・(49)’
 pred8x8L[x,y] = p'[-1,7]
                         ・・・(50)’
 次に、16×16画素のイントラ予測モードについて説明する。図16および図17は、4種類の輝度信号の16×16画素のイントラ予測モード(Intra_16x16_pred_mode)を示す図である。
 4種類のイントラ予測モードについて、図18を参照して説明する。図18の例において、イントラ処理される対象マクロブロックAが示されており、P(x,y);x,y=-1,0,…,15は、対象マクロブロックAに隣接する画素の画素値を表している。
 モード0は、Vertical Prediction modeであり、P(x,-1); x,y=-1,0,…,15が “available” である時のみ適用される。この場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(51)のように生成される。

 Pred(x,y) = P(x,-1);x,y=0,…,15
                           ・・・(51)
 モード1はHorizontal Prediction modeであり、P(-1,y); x,y=-1,0,…,15が “available” である時のみ適用される。この場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(52)のように生成される。

 Pred(x,y) = P(-1,y);x,y=0,…,15
                           ・・・(52)
 モード2はDC Prediction modeであり、P(x,-1)およびP(-1,y); x,y=-1,0,…,15が全て “available” である場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(53)のように生成される。

Figure JPOXMLDOC01-appb-M000004
 また、P(x,-1); x,y=-1,0,…,15が “unavailable” である場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(54)のように生成される。

Figure JPOXMLDOC01-appb-M000005
 P(-1,y); x,y=-1,0,…,15が “unavailable” である場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(55)のように生成される。

Figure JPOXMLDOC01-appb-M000006
 P(x,-1)およびP(-1,y); x,y=-1,0,…,15が全て “unavailable” である場合には、予測画素値として128を用いる。
 モード3はPlane Prediction modeであり、P(x,-1)及びP(-1,y); x,y=-1,0,…,15が全て “available” の場合のみ適用される。この場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(56)のように生成される。

Figure JPOXMLDOC01-appb-M000007
 次に、色差信号に対するイントラ予測モードについて説明する。図19は、4種類の色差信号のイントラ予測モード(Intra_chroma_pred_mode)を示す図である。色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。色差信号に対するイントラ予測モードは、上述した輝度信号の16×16画素のイントラ予測モードに順ずる。
 ただし、輝度信号の16×16画素のイントラ予測モードが、16×16画素のブロックを対象としているのに対し、色差信号に対するイントラ予測モードは、8×8画素のブロックを対象としている。さらに、上述した図16と図19に示されるように、両者においてモード番号は対応していない。
 ここで、図18を参照して上述した輝度信号の16×16画素のイントラ予測モードの対象マクロブロックAの画素値および隣接する画素値の定義に準じる。例えば、イントラ処理される対象マクロブロックA(色差信号の場合は、8×8画素)に隣接する画素の画素値をP(x,y);x,y=-1,0,…,7とする。
 モード0はDC Prediction modeであり、P(x,-1)およびP(-1,y); x,y=-1,0,…,7が全て “available” である場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(57)のように生成される。

Figure JPOXMLDOC01-appb-M000008
 また、P(-1,y) ; x,y=-1,0,…,7が “unavailable” である場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(58)のように生成される。

Figure JPOXMLDOC01-appb-M000009
 また、P(x,-1) ; x,y=-1,0,…,7が “unavailable”である場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(59)のように生成される。

Figure JPOXMLDOC01-appb-M000010
 モード1はHorizontal Prediction modeであり、P(-1,y) ; x,y=-1,0,…,7が “available” の場合にのみ適用される。この場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(60)のように生成される。

 Pred(x,y) = P(-1,y);x,y=0,…,7
                           ・・・(60)
 モード2はVertical Prediction modeであり、P(x,-1) ; x,y=-1,0,…,7が “available” の場合にのみ適用される。この場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(61)のように生成される。

 Pred(x,y) = P(x,-1);x,y=0,…,7
                           ・・・(61)
 モード3はPlane Prediction modeであり、P(x,-1)及びP(-1,y) ; x,y=-1,0,…,7 が “available” の場合にのみ適用される。この場合、対象マクロブロックAの各画素の予測画素値Pred(x,y)は、次の式(62)のように生成される。

Figure JPOXMLDOC01-appb-M000011
 以上のように、輝度信号のイントラ予測モードには、9種類の4×4画素および8×8画素のブロック単位、並びに4種類の16×16画素のマクロブロック単位の予測モードがある。このブロック単位のモードは、マクロブロック単位毎に設定される。色差信号のイントラ予測モードには、4種類の8×8画素のブロック単位の予測モードがある。この色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。
 また、輝度信号の4×4画素のイントラ予測モード(イントラ4×4予測モード)および8×8画素のイントラ予測モード(イントラ8×8予測モード)については、4×4画素および8×8画素の輝度信号のブロック毎に1つのイントラ予測モードが設定される。輝度信号の16×16画素のイントラ予測モード(イントラ16×16予測モード)と色差信号のイントラ予測モードについては、1つのマクロブロックに対して1つの予測モードが設定される。
 なお、予測モードの種類は、上述した図11の番号0,1,3乃至8で示される方向に対応している。予測モード2は平均値予測である。
[イントラ予測の前処理の説明]
 次に、図20のフローチャートを参照して、図8のステップS31におけるイントラ予測の前処理について説明する。
 ブロックアドレス算出部91には、イントラ予測部74から、マクロブロックにおいて、次に処理するのが何番目のブロックであるかという次の処理番号の情報が供給される。
 ステップS41において、ブロックアドレス算出部91は、イントラ予測部74からの次の処理番号から、図2のAに示される処理順に従って、マクロブロックにおける対象ブロックのブロックアドレスを算出し、確定する。確定されたブロックアドレスは、イントラ予測部74、パイプライン/並列処理制御部92、および周辺画素利用可能性判定部76に供給される。
 ステップS42において、周辺画素利用可能性判定部76は、アドレス制御部75からのブロックアドレスを用いて、対象ブロックの周辺画素の利用可能性を判定し、確定する。
 周辺画素利用可能性判定部76は、対象ブロックの周辺画素が利用可能である場合、対象ブロックの周辺画素が利用可能であることを示す情報を、イントラ予測部74に供給する。また、周辺画素利用可能性判定部76は、対象ブロックの周辺画素が利用不可能である場合、対象ブロックの周辺画素が利用不可能であることを示す情報を、イントラ予測部74に供給する。
 ステップS43において、パイプライン/並列処理制御部92は、ブロックアドレス算出部91からのブロックアドレスを用いて、対象ブロックがパイプライン処理または並列処理が可能かどうかを画定する。
 すなわち、パイプライン/並列処理制御部92は、例えば、図2のAの“2a”のブロックと“2b”のブロックのように、対象ブロックがパイプライン処理または並列処理が可能である場合、パイプライン処理または並列処理を制御する制御信号をイントラ予測部74に供給する。
 また、パイプライン/並列処理制御部92は、例えば、図2のAの“1”のブロックや“8”のブロックのように、対象ブロックがパイプライン処理または並列処理が不可能である場合、パイプライン処理または並列処理を禁止する制御信号をイントラ予測部74に供給する。
[イントラ予測処理の説明]
 次に、上述した前処理により求められた情報を用いて行われるイントラ予測処理について、図21のフローチャートを参照して説明する。
 なお、このイントラ予測処理は、図8のステップS32におけるイントラ予測処理であり、図21の例においては、輝度信号の場合を例として説明する。また、このイントラ予測処理は、対象ブロック毎に行われる処理である。すなわち、図20を参照して上述した前処理により、パイプライン/並列処理制御部92からパイプライン処理または並列処理を制御する制御信号がイントラ予測部74に供給された場合、図21の処理は、パイプライン処理または並列処理で行われる。
 ステップS51において、イントラ予測部74は、対象ブロックの最適予測モードをリセット(best_mode=0)にする。
 ステップS52において、イントラ予測部74は、予測モードを1つ選択する。イントラ4×4予測モードの場合、図9を参照して上述したように、9種類の予測モードがあり、その中から、1つの予測モードが選択される。
 ステップS53において、イントラ予測部74は、周辺画素利用可能性判定部76から供給される、対象ブロックの周辺画素の利用可能性を示す情報を参照して、選択した予測モードが、対象ブロックの周辺画素が利用可能なモードであるか否かを判定する。
 選択した予測モードが、対象ブロックの周辺画素が利用可能なモードであると判定された場合、処理は、ステップS54に進む。ステップS54において、イントラ予測部74は、対象のブロックの画素を、フレームメモリ72から読み出される復号済みの隣接画像を参照して、選択した予測モードで、イントラ予測を行う。なお、参照される復号済みの画素としては、デブロックフィルタ71によりデブロックフィルタリングされていない画素が用いられる。
 ステップS55において、イントラ予測部74は、選択した予測モードに対応するコスト関数値を算出する。ここで、コスト関数値としては、High Complexity モードか、Low Complexity モードのいずれかの手法に基づいて行う。これらのモードは、H.264/AVC方式における参照ソフトウエアであるJM(Joint Model)で定められている。
 すなわち、High Complexity モードにおいては、ステップS54の処理として、候補となる全ての予測モードに対して、仮に符号化処理までが行われる。そして、次の式(63)で表わされるコスト関数値が各予測モードに対して算出され、その最小値を与える予測モードが最適予測モードであるとして選択される。
 Cost(Mode) = D + λ・R              ・・・(63)
 Dは、原画像と復号画像の差分(歪)、Rは、直交変換係数まで含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
 一方、Low Complexity モードにおいては、ステップS41の処理として、候補となる全ての予測モードに対して、予測画像の生成、および、動きベクトル情報や予測モード情報、フラグ情報などのヘッダビットまでが算出される。そして、次の式(64)で表わされるコスト関数値が各予測モードに対して算出され、その最小値を与える予測モードが最適予測モードであるとして選択される。
 Cost(Mode) = D + QPtoQuant(QP)・Header_Bit     ・・・(64)
 Dは、原画像と復号画像の差分(歪)、Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
 Low Complexity モードにおいては、全ての予測モードに対して、予測画像を生成するのみで、符号化処理および復号処理を行う必要がないため、演算量が少なくて済む。
 なお、コスト関数として、SAD(Sum of Absolute Difference)を用いることもできる。
 イントラ予測部74は、ステップS56において、算出したコスト関数値が最小であるか否かを判定し、最小であると判定した場合、ステップS57において、選択した予測モードで、最適予測モードを差し替える。その後、処理は、ステップS58に進む。また、算出したコスト関数値が、いままで算出した中で最小ではないと判定された場合、ステップS57の処理はスキップされ、処理は、ステップS58に進む。
 一方、ステップS53において、選択した予測モードが、対象ブロックの周辺画素が利用可能なモードではないと判定された場合、処理は、ステップS54乃至S57をスキップし、ステップS58に進む。
 ステップS58において、イントラ予測部74は、9種類のすべての予測モードについての処理が終了したか否かを判定し、すべての予測モードについての処理が終了したと判定された場合、イントラ予測処理を終了する。
 ステップS58において、まだ、すべての予測モードについての処理が終了していないと判定された場合、処理は、ステップS52に戻り、それ以降の処理が繰り返される。
 なお、図21の例においては、4×4画素のイントラ予測モードを例にして説明したが、このイントラ予測処理は、4×4画素、8×8画素、および16×16画素の各イントラ予測モードについて行われる処理である。すなわち、実際には、図21の処理が、8×8画素、および16×16画素の各イントラ予測モードについても別途行われ、それぞれ求まった最適予測モード(best_mode)の中からさらに最適イントラ予測モードが決定される。
 そして、決定された最適イントラ予測モードの予測画像と、そのコスト関数値が、予測画像選択部78に供給される。
[インター動き予測処理の説明]
 次に、図22のフローチャートを参照して、図8のステップS33のインター動き予測処理について説明する。
 動き予測・補償部77は、ステップS61において、16×16画素乃至4×4画素からなる8種類の各インター予測モードに対して動きベクトルと参照画像をそれぞれ決定する。すなわち、各インター予測モードの処理対象のブロックについて、動きベクトルと参照画像がそれぞれ決定される。
 動き予測・補償部77は、ステップS62において、16×16画素乃至4×4画素からなる8種類の各インター予測モードについて、ステップS61で決定された動きベクトルに基づいて、参照画像に動き予測と補償処理を行う。この動き予測と補償処理により、各インター予測モードでの予測画像が生成される。
 動き予測・補償部77は、ステップS63において、16×16画素乃至4×4画素からなる8種類の各インター予測モードに対して決定された動きベクトルについて、圧縮画像に付加するための動きベクトル情報を生成する。このとき、例えば、符号化されようとしている対象ブロックの予測動きベクトル情報を、既に符号化済の、隣接するブロックの動きベクトル情報を用いてメディアンオペレーションにより生成する方法が用いられる。
 生成された動きベクトル情報は、次のステップS64におけるコスト関数値算出の際にも用いられ、最終的に予測画像選択部78により対応する予測画像が選択された場合には、予測モード情報および参照フレーム情報とともに、可逆符号化部66へ出力される。
 動き予測・補償部77は、ステップS64において、16×16画素乃至4×4画素からなる8種類の各インター予測モードに対して、上述した式(63)または式(64)で示されるコスト関数値を算出する。ここで算出されたコスト関数値は、上述した図8のステップS34で最適インター予測モードを決定する際に用いられる。
 符号化された圧縮画像は、所定の伝送路を介して伝送され、画像復号装置により復号される。
[画像復号装置の構成例]
 図23は、本発明を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。
 画像復号装置101は、蓄積バッファ111、可逆復号部112、逆量子化部113、逆直交変換部114、演算部115、デブロックフィルタ116、画面並べ替えバッファ117、およびD/A変換部118を含んで構成されている。また、画像復号装置101は、フレームメモリ119、スイッチ120、イントラ予測部121、アドレス制御部122、周辺画素利用可能判定部123、動き予測・補償部124、およびスイッチ125を含んで構成されている。
 蓄積バッファ111は伝送されてきた圧縮画像を蓄積する。可逆復号部112は、蓄積バッファ111より供給された、図3の可逆符号化部66により符号化された情報を、可逆符号化部66の符号化方式に対応する方式で復号する。
 図23の例の場合、可逆復号部112は、ストリーム入力部131および復号処理部132により構成されている。ストリーム入力部131は、蓄積バッファ111からの圧縮画像を入力し、そのストリーム順(すなわち、図2のAに示される順)のデータを、復号処理部132に出力する。復号処理部132は、ストリーム入力部131からのデータを、入力されたストリーム順に復号する。
 逆量子化部113は可逆復号部112により復号された画像を、図3の量子化部65の量子化方式に対応する方式で逆量子化する。逆直交変換部114は、図3の直交変換部64の直交変換方式に対応する方式で逆量子化部113の出力を逆直交変換する。
 逆直交変換された出力は演算部115によりスイッチ125から供給される予測画像と加算されて復号される。デブロックフィルタ116は、復号された画像のブロック歪を除去した後、フレームメモリ119に供給し、蓄積させるとともに、画面並べ替えバッファ117に出力する。
 画面並べ替えバッファ117は、画像の並べ替えを行う。すなわち、図3の画面並べ替えバッファ62により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部118は、画面並べ替えバッファ117から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
 スイッチ120は、インター処理される画像と参照される画像をフレームメモリ119から読み出し、動き予測・補償部124に出力するとともに、イントラ予測に用いられる画像をフレームメモリ119から読み出し、イントラ予測部121に供給する。
 イントラ予測部121には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報が、可逆復号部112から供給される。イントラ予測部121は、アドレス制御部122に、マクロブロック内において、次に処理するのが何番目のブロックであるかという次の処理番号の情報を供給する。これに対応して、イントラ予測部121は、アドレス制御部122から、ブロックアドレスと、パイプライン処理または並列処理を制御あるいは禁止する制御信号を取得する。また、イントラ予測部121は、周辺画素利用可能性判定部123から、処理する対象ブロックの周辺画素の利用可能性の情報を取得する。
 イントラ予測部121は、アドレス制御部122からのブロックアドレスに対応するブロックについて、可逆復号部112からのイントラ予測モードで、周辺画素利用可能性判定部123により利用可能であると判定された周辺画素を用いて、イントラ予測を行う。なお、このとき、アドレス制御部122からパイプライン処理または並列処理を制御する制御信号を受け取った場合、イントラ予測部121は、それらのブロックについて、パイプライン処理または並列処理でのイントラ予測を行う。
 イントラ予測部121によるイントラ予測により生成された予測画像は、スイッチ125に出力される。
 アドレス制御部122は、イントラ予測部121からの処理番号の情報を得ると、図3のアドレス制御部75と同じ処理順で、次に処理するブロックアドレスを算出する。そして、アドレス制御部122は、算出したブロックアドレスを、イントラ予測部121および周辺画素利用可能性判定部123に供給する。
 また、アドレス制御部122は、算出したブロックアドレスを用いて、対象ブロックがパイプライン処理または並列処理が可能であるか否かを判定する。アドレス制御部122は、その判定結果に応じて、パイプライン処理または並列処理を制御あるいは禁止する制御信号を、イントラ予測部121に供給する。
 周辺画素利用可能性判定部123は、アドレス制御部122からのブロックアドレスを用いて、対象ブロックの周辺画素の利用可能性を判定し、判定した周辺画素の利用可能性の情報を、イントラ予測部121に供給する。
 動き予測・補償部124には、ヘッダ情報を復号して得られた情報(予測モード情報、動きベクトル情報、参照フレーム情報)が可逆復号部112から供給される。インター予測モードを示す情報が供給された場合、動き予測・補償部124は、動きベクトル情報と参照フレーム情報に基づいて画像に動き予測と補償処理を施し、予測画像を生成する。動き予測・補償部124は、インター予測モードにより生成された予測画像をスイッチ125に出力する。
 スイッチ125は、動き予測・補償部124またはイントラ予測部121により生成された予測画像を選択し、演算部115に供給する。
 なお、図3の画像符号化装置51においては、コスト関数に基づく予測モード判定のため、すべてのイントラ予測モードに対してイントラ予測処理が行われる。これに対して、この画像復号装置101においては、符号化されて送られてくるイントラ予測モードの情報に基づいてのみイントラ予測処理が行われる。
[アドレス制御部の構成例]
 図24は、アドレス制御部の構成例を示すブロック図である。
 図24の例の場合、アドレス制御部122は、ブロックアドレス算出部141、およびパイプライン/並列処理制御部142により構成されている。
 イントラ予測部121は、図4のイントラ予測部75と同様に、マクロブロック内のブロックについて、次の処理番号の情報を、ブロックアドレス算出部141に供給する。
 ブロックアドレス算出部141は、図4のブロックアドレス算出部91と基本的に同様の処理を行う。すなわち、ブロックアドレス算出部141は、イントラ予測部121からの処理番号から、H.264/AVCの処理順とは異なる処理順で、次に処理する対象ブロックのブロックアドレスを算出し、確定する。ブロックアドレス算出部141は、確定したブロックアドレスを、イントラ予測部121、パイプライン/並列処理制御部142、および周辺画素利用可能性判定部123に供給する。
 パイプライン/並列処理制御部142は、ブロックアドレス算出部141からのブロックアドレスを用いて、対象ブロックがパイプライン処理または並列処理が可能であるか否かを判定する。パイプライン/並列処理制御部142は、その判定結果に応じて、パイプライン処理または並列処理を制御あるいは禁止する制御信号を、イントラ予測部121に供給する。
 周辺画素利用可能性判定部123は、図4の周辺画素利用可能性判定部123と基本的に同様の処理を行う。すなわち、周辺画素利用可能性判定部123は、アドレス制御部122からのブロックアドレスを用いて、対象ブロックの周辺画素の利用可能性を判定し、判定した周辺画素の利用可能性を示す情報を、イントラ予測部121に供給する。
 イントラ予測部121は、ブロックアドレス算出部141からのブロックアドレスに対応する対象ブロックについて、次のように、イントラ予測処理を行う。すなわち、イントラ予測部121は、可逆復号部112からのイントラ予測モードで、周辺画素利用可能性判定部123により利用可能であると判定された周辺画素を用いて、イントラ予測処理を行う。その際、イントラ予測部121は、パイプライン/並列処理制御部142からの制御信号に基づいて、複数のブロックについてのパイプライン処理または並列処理のイントラ予測を行うか、1つのブロックだけでイントラ予測を行う。
[画像復号装置の復号処理の説明]
 次に、図25のフローチャートを参照して、画像復号装置101が実行する復号処理について説明する。
 ステップS131において、蓄積バッファ111は伝送されてきた画像を蓄積する。ストリーム入力部131は、蓄積バッファ111からの圧縮画像を入力し、そのストリームの順のデータを、復号処理部132に出力する。ステップS132において、復号処理部132は、ストリーム入力部131から供給される圧縮画像を復号する。すなわち、図3の可逆符号化部66により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
 このとき、動きベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モードを示す情報)、およびフラグ情報なども復号される。
 すなわち、予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部121に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報および参照フレーム情報は、動き予測・補償部124に供給される。
 ステップS133において、逆量子化部113は可逆復号部112により復号された変換係数を、図3の量子化部65の特性に対応する特性で逆量子化する。ステップS134において逆直交変換部114は逆量子化部113により逆量子化された変換係数を、図3の直交変換部64の特性に対応する特性で逆直交変換する。これにより図3の直交変換部64の入力(演算部63の出力)に対応する差分情報が復号されたことになる。
 ステップS135において、演算部115は、後述するステップS141の処理で選択され、スイッチ125を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップS136においてデブロックフィルタ116は、演算部115より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップS137においてフレームメモリ119は、フィルタリングされた画像を記憶する。
 ステップS138において、イントラ予測部121、および動き予測・補償部124は、可逆復号部112から供給される予測モード情報に対応して、それぞれ画像の予測処理を行う。
 このとき、イントラ予測部121は、アドレス制御部122により確定されたブロックアドレスが対応する対象ブロックについて、可逆復号部112からのイントラ予測モードで、周辺画素利用可能性判定部123により利用可能であると判定された周辺画素を用いて、イントラ予測処理を行う。その際、イントラ予測部121は、アドレス制御部122からパイプライン処理または並列処理を制御する制御信号を受け取った場合、それらのブロックについて、パイプライン処理または並列処理でのイントラ予測を行う。
 ステップS138における予測処理の詳細は、図26を参照して後述するが、この処理により、イントラ予測部121により生成された予測画像、または動き予測・補償部124により生成された予測画像がスイッチ125に供給される。
 ステップS139において、スイッチ125は予測画像を選択する。すなわち、イントラ予測部121により生成された予測画像、または動き予測・補償部124により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部115に供給され、上述したように、ステップS134において逆直交変換部114の出力と加算される。
 すなわち、イントラ予測の場合、演算部115において、ストリーム順(図2のAの処理順)に復号、逆量子化、逆直交変換された対象ブロックの画像の差分情報は、イントラ予測部121により図2のAの処理順で生成された対象ブロックの予測画像と加算される。
 一方、動き予測の場合、演算部115において、ストリーム順(H.264/AVCの処理順)に復号、逆量子化、逆直交変換された対象ブロックの画像の差分情報は、動き予測・補償部124によりH.264/AVCの処理順に基づいて生成された対象ブロックの予測画像と加算される。
 ステップS140において、画面並べ替えバッファ117は並べ替えを行う。すなわち画像符号化装置51の画面並べ替えバッファ62により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
 ステップS141において、D/A変換部118は、画面並べ替えバッファ117からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
[予測処理の説明]
 次に、図26のフローチャートを参照して、図25のステップS138の予測処理を説明する。
 イントラ予測部121は、ステップS171において、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号部112からイントラ予測モード情報がイントラ予測部121に供給されると、イントラ予測部121は、ステップ171において、対象ブロックがイントラ符号化されていると判定し、処理は、ステップS172に進む。
 イントラ予測部121は、ステップS172において、可逆復号部112からのイントラ予測モード情報を受信、取得する。イントラ予測部121は、イントラ予測モード情報を受信すると、ブロックアドレス算出部141に、マクロブロック内において、次に処理するのが何番目のブロックであるかという次の処理番号の情報を供給する。
 ブロックアドレス算出部141は、ステップS173において、イントラ予測部121からの処理番号の情報を得ると、図4のブロックアドレス算出部91と同じ処理順で、次に処理するブロックアドレスを算出する。ブロックアドレス算出部141は、算出したブロックアドレスを、イントラ予測部121および周辺画素利用可能性判定部123に供給する。
 ステップS174において、周辺画素利用可能性判定部123は、ブロックアドレス算出部141からのブロックアドレスを用いて、対象ブロックの周辺画素の利用可能性を判定し、確定する。周辺画素利用可能性判定部123は、確定した周辺画素の利用可能性の情報を、イントラ予測部121に供給する。
 ステップS175において、パイプライン/並列処理制御部142は、ブロックアドレス算出部141からのブロックアドレスを用いて、対象ブロックがパイプライン処理または並列処理が可能なブロックであるか否かを判定する。
 ステップS175において、対象ブロックがパイプライン処理または並列処理が可能なブロックであると判定された場合、パイプライン/並列処理制御部142は、パイプライン処理または並列処理を制御する制御信号を、イントラ予測部121に供給する。
 この制御信号に対応して、イントラ予測部121は、ステップS176において、並列処理またはパイプライン処理によるイントラ予測を行う。すなわち、イントラ予測部121は、アドレス制御部122からの2つのブロックアドレスに対応する対象ブロック(例えば、図2のAに示される“2a”のブロックと“2b”のブロック)について、並列処理またはパイプライン処理で、イントラ予測処理を行う。このとき、イントラ予測部121は、可逆復号部112からのイントラ予測モードで、周辺画素利用可能性判定部123により利用可能であると判定された周辺画素を用いて、イントラ予測処理を行う。
 また、ステップS175において、対象ブロックがパイプライン処理または並列処理が可能なブロックではないと判定された場合、パイプライン/並列処理制御部142は、パイプライン処理または並列処理を禁止する制御信号を、イントラ予測部121に供給する。
 この制御信号に対応して、イントラ予測部121は、ステップS177において、並列処理またはパイプライン処理せずに、イントラ予測を行う。すなわち、イントラ予測部121は、アドレス制御部122からの1つのブロックアドレスに対応する対象ブロックについて、イントラ予測処理を行う。このとき、イントラ予測部121は、可逆復号部112からのイントラ予測モードで、周辺画素利用可能性判定部123により利用可能であると判定された周辺画素を用いて、イントラ予測処理を行う。
 一方、ステップS171において、イントラ符号化されていないと判定された場合、処理は、ステップS178に進む。
 処理対象の画像がインター処理される画像である場合、可逆復号部112からインター予測モード情報、参照フレーム情報、動きベクトル情報が動き予測・補償部124に供給される。ステップS176において、動き予測・補償部124は、可逆復号部112からのインター予測モード情報、参照フレーム情報、動きベクトル情報などを取得する。
 そして、動き予測・補償部124は、ステップS178において、インター動き予測を行う。すなわち、処理対象の画像がインター予測処理される画像である場合、必要な画像がフレームメモリ119から読み出され、スイッチ120を介して動き予測・補償部124に供給される。ステップS179において動き予測・補償部124は、ステップS178で取得した動きベクトルに基づいて、インター予測モードの動き予測をし、予測画像を生成する。生成した予測画像は、スイッチ125に出力される。
 以上のように、画像符号化装置51においては、H.264/AVCの符号化順とは異なる、図2のAに示される昇順に符号化およびストリームへの出力が行われる。また、画像復号装置101においては、画像符号化装置51からのストリーム順(すなわち、H.264/AVCの符号化順とは異なる、図2のAに示される昇順)にストリームの入力および復号が行われる。
 これにより、同じ処理順を示す、周辺画素に関する依存関係が存在しない2つのブロック(例えば、図2のAの“2a”のブロックと“2b”のブロック)のパイプライン処理または並列処理が可能となる。
 また、特許文献1に記載の提案と異なり、符号化順と出力順が同じであるため、符号化処理部81とストリーム出力部82の間にバッファを備える必要がないので、回路規模を小さくできる。これは、画像復号装置101の場合も同様で、入力順と復号順が同じであるため、ストリーム入力部131と復号処理部132の間にバッファを備える必要がないので、回路規模を小さくすることができる。
 さらに、特許文献1に記載の提案と比して、利用可能な周辺画素値が増え、候補となるイントラ予測モードが増えるため、高い符号化効率で、パイプライン処理や並列処理を実現することができる。
 なお、上記説明においては、マクロブロックの大きさが、16×16画素の場合について説明してきたが、本発明は、上述した非特許文献1に記載の拡張されたマクロブロックサイズに対しても適用することが可能である。
[拡張マクロブロックサイズへの適用の説明]
 図27は、非特許文献1で提案されているブロックサイズの例を示す図である。非特許文献1では、マクロブロックサイズが32×32画素に拡張されている。
 図27の上段には、左から、32×32画素、32×16画素、16×32画素、および16×16画素のブロック(パーティション)に分割された32×32画素で構成されるマクロブロックが順に示されている。図27の中段には、左から、16×16画素、16×8画素、8×16画素、および8×8画素のブロックに分割された16×16画素で構成されるブロックが順に示されている。また、図27の下段には、左から、8×8画素、8×4画素、4×8画素、および4×4画素のブロックに分割された8×8画素のブロックが順に示されている。
 すなわち、32×32画素のマクロブロックは、図27の上段に示される32×32画素、32×16画素、16×32画素、および16×16画素のブロックでの処理が可能である。
 また、上段の右側に示される16×16画素のブロックは、H.264/AVC方式と同様に、中段に示される16×16画素、16×8画素、8×16画素、および8×8画素のブロックでの処理が可能である。
 さらに、中段の右側に示される8×8画素のブロックは、H.264/AVC方式と同様に、下段に示される8×8画素、8×4画素、4×8画素、および4×4画素のブロックでの処理が可能である。
 このような階層構造を採用することにより、非特許文献1の提案では、16×16画素のブロック以下に関しては、H.264/AVC方式と互換性を保ちながら、そのスーパーセットとして、より大きなブロックが定義されている。
 以上のように提案される拡張されたマクロブロックサイズへの本発明の第1の適用方法としては、例えば、上段の右側に示される16×16画素のブロックに対して、図2に記載の符号化順および出力順を適用する方法があげられる。
 例えば、マクロブロックサイズが32×32画素であっても、64×64画素であっても、それ以上の大きさであっても、非特許文献1の階層構造により、16×16画素のブロックが用いられることがある。この16×16画素のブロック内の符号化処理順および出力順に、本発明を適用することができる。
 また、第2の適用方法としては、マクロブロックサイズがm×m画素(m≧16)であって、直交変換の単位がm/4×m/4ブロックである場合に、そのm/4×m/4ブロックに対する符号化順および出力順に、本発明を適用することができる。
 図28は、第2の適用方法を具体的に示す図である。
 図28のAには、m=32の場合、すなわち、マクロブロックサイズが32×32画素であって、直交変換の単位が8×8ブロックである場合が示されている。図28のAに示されるマクロブロックサイズが32×32画素であって、直交変換の単位が8×8ブロックである場合、このマクロブロック内における、8×8ブロックに対する符号化順および出力順に、本発明を適用することができる。
 また、図28のBには、m=64の場合、すなわち、マクロブロックサイズが64×64画素であって、直交変換の単位が16×16ブロックである場合が示されている。図28のBに示されるマクロブロックサイズが64×64画素であって、直交変換の単位が16×16ブロックである場合、このマクロブロック内における、16×16ブロックに対する符号化順および出力順に、本発明を適用することができる。
 なお、第2の適用方法において、m=16の場合は、マクロブロックサイズが16×16画素であって、直交変換の単位が4×4画素のブロックである上述した例に相当する。
 以上においては、符号化方式としてH.264/AVC方式を用いるようにしたが、本発明はこれに限らず、隣接画素を用いた予測を行う、その他の符号化方式/復号方式を適用することができる。
 なお、本発明は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本発明は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本発明は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
 上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
[パーソナルコンピュータの構成例]
 図29は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 コンピュータにおいて、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203は、バス204により相互に接続されている。
 バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、入力部206、出力部207、記憶部208、通信部209、およびドライブ210が接続されている。
 入力部206は、キーボード、マウス、マイクロホンなどよりなる。出力部207は、ディスプレイ、スピーカなどよりなる。記憶部208は、ハードディスクや不揮発性のメモリなどよりなる。通信部209は、ネットワークインタフェースなどよりなる。ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア211を駆動する。
 以上のように構成されるコンピュータでは、CPU201が、例えば、記憶部208に記憶されているプログラムを入出力インタフェース205及びバス204を介してRAM203にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア211に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供することができる。
 コンピュータでは、プログラムは、リムーバブルメディア211をドライブ210に装着することにより、入出力インタフェース205を介して、記憶部208にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部209で受信し、記憶部208にインストールすることができる。その他、プログラムは、ROM202や記憶部208に、あらかじめインストールしておくことができる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、上述した画像符号化装置51や画像復号装置101は、任意の電子機器に適用することができる。以下にその例について説明する。
[テレビジョン受像機の構成例]
 図30は、本発明を適用した画像復号装置を用いるテレビジョン受像機の主な構成例を示すブロック図である。
 図30に示されるテレビジョン受像機300は、地上波チューナ313、ビデオデコーダ315、映像信号処理回路318、グラフィック生成回路319、パネル駆動回路320、および表示パネル321を有する。
 地上波チューナ313は、地上アナログ放送の放送波信号を、アンテナを介して受信し、復調し、映像信号を取得し、それをビデオデコーダ315に供給する。ビデオデコーダ315は、地上波チューナ313から供給された映像信号に対してデコード処理を施し、得られたデジタルのコンポーネント信号を映像信号処理回路318に供給する。
 映像信号処理回路318は、ビデオデコーダ315から供給された映像データに対してノイズ除去などの所定の処理を施し、得られた映像データをグラフィック生成回路319に供給する。
 グラフィック生成回路319は、表示パネル321に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成し、生成した映像データや画像データをパネル駆動回路320に供給する。また、グラフィック生成回路319は、項目の選択などにユーザにより利用される画面を表示するための映像データ(グラフィック)を生成し、それを番組の映像データに重畳したりすることによって得られた映像データをパネル駆動回路320に供給するといった処理も適宜行う。
 パネル駆動回路320は、グラフィック生成回路319から供給されたデータに基づいて表示パネル321を駆動し、番組の映像や上述した各種の画面を表示パネル321に表示させる。
 表示パネル321はLCD(Liquid Crystal Display)などよりなり、パネル駆動回路320による制御に従って番組の映像などを表示させる。
 また、テレビジョン受像機300は、音声A/D(Analog/Digital)変換回路314、音声信号処理回路322、エコーキャンセル/音声合成回路323、音声増幅回路324、およびスピーカ325も有する。
 地上波チューナ313は、受信した放送波信号を復調することにより、映像信号だけでなく音声信号も取得する。地上波チューナ313は、取得した音声信号を音声A/D変換回路314に供給する。
 音声A/D変換回路314は、地上波チューナ313から供給された音声信号に対してA/D変換処理を施し、得られたデジタルの音声信号を音声信号処理回路322に供給する。
 音声信号処理回路322は、音声A/D変換回路314から供給された音声データに対してノイズ除去などの所定の処理を施し、得られた音声データをエコーキャンセル/音声合成回路323に供給する。
 エコーキャンセル/音声合成回路323は、音声信号処理回路322から供給された音声データを音声増幅回路324に供給する。
 音声増幅回路324は、エコーキャンセル/音声合成回路323から供給された音声データに対してD/A変換処理、増幅処理を施し、所定の音量に調整した後、音声をスピーカ325から出力させる。
 さらに、テレビジョン受像機300は、デジタルチューナ316およびMPEGデコーダ317も有する。
 デジタルチューナ316は、デジタル放送(地上デジタル放送、BS(Broadcasting Satellite)/CS(Communications Satellite)デジタル放送)の放送波信号を、アンテナを介して受信し、復調し、MPEG-TS(Moving Picture Experts Group-Transport Stream)を取得し、それをMPEGデコーダ317に供給する。
 MPEGデコーダ317は、デジタルチューナ316から供給されたMPEG-TSに施されているスクランブルを解除し、再生対象(視聴対象)になっている番組のデータを含むストリームを抽出する。MPEGデコーダ317は、抽出したストリームを構成する音声パケットをデコードし、得られた音声データを音声信号処理回路322に供給するとともに、ストリームを構成する映像パケットをデコードし、得られた映像データを映像信号処理回路318に供給する。また、MPEGデコーダ317は、MPEG-TSから抽出したEPG(Electronic Program Guide)データを図示せぬ経路を介してCPU332に供給する。
 テレビジョン受像機300は、このように映像パケットをデコードするMPEGデコーダ317として、上述した画像復号装置101を用いる。したがって、MPEGデコーダ317は、画像復号装置101の場合と同様に、H.264/AVCの符号化順とは異なる、図2のAに示される昇順に符号化および出力が行われたストリームを、そのストリーム順に入力および復号する。これにより、高い符号化効率で、パイプライン処理や並列処理を実現することができる。また、MPEGデコーダ317の回路規模を小さくすることができる。
 MPEGデコーダ317から供給された映像データは、ビデオデコーダ315から供給された映像データの場合と同様に、映像信号処理回路318において所定の処理が施される。そして、所定の処理が施された映像データは、グラフィック生成回路319において、生成された映像データ等が適宜重畳され、パネル駆動回路320を介して表示パネル321に供給され、その画像が表示される。
 MPEGデコーダ317から供給された音声データは、音声A/D変換回路314から供給された音声データの場合と同様に、音声信号処理回路322において所定の処理が施される。そして、所定の処理が施された音声データは、エコーキャンセル/音声合成回路323を介して音声増幅回路324に供給され、D/A変換処理や増幅処理が施される。その結果、所定の音量に調整された音声がスピーカ325から出力される。
 また、テレビジョン受像機300は、マイクロホン326、およびA/D変換回路327も有する。
 A/D変換回路327は、音声会話用のものとしてテレビジョン受像機300に設けられるマイクロホン326により取り込まれたユーザの音声の信号を受信する。A/D変換回路327は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データをエコーキャンセル/音声合成回路323に供給する。
 エコーキャンセル/音声合成回路323は、テレビジョン受像機300のユーザ(ユーザA)の音声のデータがA/D変換回路327から供給されている場合、ユーザAの音声データを対象としてエコーキャンセルを行う。そして、エコーキャンセル/音声合成回路323は、エコーキャンセルの後、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路324を介してスピーカ325より出力させる。
 さらに、テレビジョン受像機300は、音声コーデック328、内部バス329、SDRAM(Synchronous Dynamic Random Access Memory)330、フラッシュメモリ331、CPU332、USB(Universal Serial Bus) I/F333、およびネットワークI/F334も有する。
 A/D変換回路327は、音声会話用のものとしてテレビジョン受像機300に設けられるマイクロホン326により取り込まれたユーザの音声の信号を受信する。A/D変換回路327は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データを音声コーデック328に供給する。
 音声コーデック328は、A/D変換回路327から供給された音声データを、ネットワーク経由で送信するための所定のフォーマットのデータに変換し、内部バス329を介してネットワークI/F334に供給する。
 ネットワークI/F334は、ネットワーク端子335に装着されたケーブルを介してネットワークに接続される。ネットワークI/F334は、例えば、そのネットワークに接続される他の装置に対して、音声コーデック328から供給された音声データを送信する。また、ネットワークI/F334は、例えば、ネットワークを介して接続される他の装置から送信される音声データを、ネットワーク端子335を介して受信し、それを、内部バス329を介して音声コーデック328に供給する。
 音声コーデック328は、ネットワークI/F334から供給された音声データを所定のフォーマットのデータに変換し、それをエコーキャンセル/音声合成回路323に供給する。
 エコーキャンセル/音声合成回路323は、音声コーデック328から供給される音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路324を介してスピーカ325より出力させる。
 SDRAM330は、CPU332が処理を行う上で必要な各種のデータを記憶する。
 フラッシュメモリ331は、CPU332により実行されるプログラムを記憶する。フラッシュメモリ331に記憶されているプログラムは、テレビジョン受像機300の起動時などの所定のタイミングでCPU332により読み出される。フラッシュメモリ331には、デジタル放送を介して取得されたEPGデータ、ネットワークを介して所定のサーバから取得されたデータなども記憶される。
 例えば、フラッシュメモリ331には、CPU332の制御によりネットワークを介して所定のサーバから取得されたコンテンツデータを含むMPEG-TSが記憶される。フラッシュメモリ331は、例えばCPU332の制御により、そのMPEG-TSを、内部バス329を介してMPEGデコーダ317に供給する。
 MPEGデコーダ317は、デジタルチューナ316から供給されたMPEG-TSの場合と同様に、そのMPEG-TSを処理する。このようにテレビジョン受像機300は、映像や音声等よりなるコンテンツデータを、ネットワークを介して受信し、MPEGデコーダ317を用いてデコードし、その映像を表示させたり、音声を出力させたりすることができる。
 また、テレビジョン受像機300は、リモートコントローラ351から送信される赤外線信号を受光する受光部337も有する。
 受光部337は、リモートコントローラ351からの赤外線を受光し、復調して得られたユーザ操作の内容を表す制御コードをCPU332に出力する。
 CPU332は、フラッシュメモリ331に記憶されているプログラムを実行し、受光部337から供給される制御コードなどに応じてテレビジョン受像機300の全体の動作を制御する。CPU332とテレビジョン受像機300の各部は、図示せぬ経路を介して接続されている。
 USB I/F333は、USB端子336に装着されたUSBケーブルを介して接続される、テレビジョン受像機300の外部の機器との間でデータの送受信を行う。ネットワークI/F334は、ネットワーク端子335に装着されたケーブルを介してネットワークに接続し、ネットワークに接続される各種の装置と音声データ以外のデータの送受信も行う。
 テレビジョン受像機300は、MPEGデコーダ317として画像復号装置101を用いることにより、処理の高速化を実現するとともに、精度の高い予測画像を生成することができる。その結果として、テレビジョン受像機300は、アンテナを介して受信した放送波信号や、ネットワークを介して取得したコンテンツデータから、より高速に、より高精細な復号画像を得て、表示することができる。
[携帯電話機の構成例]
 図31は、本発明を適用した画像符号化装置および画像復号装置を用いる携帯電話機の主な構成例を示すブロック図である。
 図31に示される携帯電話機400は、各部を統括的に制御するようになされた主制御部450、電源回路部451、操作入力制御部452、画像エンコーダ453、カメラI/F部454、LCD制御部455、画像デコーダ456、多重分離部457、記録再生部462、変復調回路部458、および音声コーデック459を有する。これらは、バス460を介して互いに接続されている。
 また、携帯電話機400は、操作キー419、CCD(Charge Coupled Devices)カメラ416、液晶ディスプレイ418、記憶部423、送受信回路部463、アンテナ414、マイクロホン(マイク)421、およびスピーカ417を有する。
 電源回路部451は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話機400を動作可能な状態に起動する。
 携帯電話機400は、CPU、ROMおよびRAM等でなる主制御部450の制御に基づいて、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
 例えば、音声通話モードにおいて、携帯電話機400は、マイクロホン(マイク)421で集音した音声信号を、音声コーデック459によってデジタル音声データに変換し、これを変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(音声信号)は、公衆電話回線網を介して通話相手の携帯電話機に供給される。
 また、例えば、音声通話モードにおいて、携帯電話機400は、アンテナ414で受信した受信信号を送受信回路部463で増幅し、さらに周波数変換処理およびアナログデジタル変換処理し、変復調回路部458でスペクトラム逆拡散処理し、音声コーデック459によってアナログ音声信号に変換する。携帯電話機400は、その変換して得られたアナログ音声信号をスピーカ417から出力する。
 更に、例えば、データ通信モードにおいて電子メールを送信する場合、携帯電話機400は、操作キー419の操作によって入力された電子メールのテキストデータを、操作入力制御部452において受け付ける。携帯電話機400は、そのテキストデータを主制御部450において処理し、LCD制御部455を介して、画像として液晶ディスプレイ418に表示させる。
 また、携帯電話機400は、主制御部450において、操作入力制御部452が受け付けたテキストデータやユーザ指示等に基づいて電子メールデータを生成する。携帯電話機400は、その電子メールデータを、変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(電子メール)は、ネットワークおよびメールサーバ等を介して、所定のあて先に供給される。
 また、例えば、データ通信モードにおいて電子メールを受信する場合、携帯電話機400は、基地局から送信された信号を、アンテナ414を介して送受信回路部463で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機400は、その受信信号を変復調回路部458でスペクトラム逆拡散処理して元の電子メールデータを復元する。携帯電話機400は、復元された電子メールデータを、LCD制御部455を介して液晶ディスプレイ418に表示する。
 なお、携帯電話機400は、受信した電子メールデータを、記録再生部462を介して、記憶部423に記録する(記憶させる)ことも可能である。
 この記憶部423は、書き換え可能な任意の記憶媒体である。記憶部423は、例えば、RAMや内蔵型フラッシュメモリ等の半導体メモリであってもよいし、ハードディスクであってもよいし、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアであってもよい。もちろん、これら以外のものであってもよい。
 さらに、例えば、データ通信モードにおいて画像データを送信する場合、携帯電話機400は、撮像によりCCDカメラ416で画像データを生成する。CCDカメラ416は、レンズや絞り等の光学デバイスと光電変換素子としてのCCDを有し、被写体を撮像し、受光した光の強度を電気信号に変換し、被写体の画像の画像データを生成する。その画像データを、カメラI/F部454を介して、画像エンコーダ453で、例えばMPEG2やMPEG4等の所定の符号化方式によって圧縮符号化することにより符号化画像データに変換する。
 携帯電話機400は、このような処理を行う画像エンコーダ453として、上述した画像符号化装置51を用いる。したがって、画像エンコーダ453は、画像符号化装置51の場合と同様に、H.264/AVCの符号化順とは異なる、図2のAに示される昇順に符号化およびストリームへの出力を行う。これにより、高い符号化効率で、パイプライン処理や並列処理を実現することができる。また、画像エンコーダ453の回路規模を小さくすることができる。
 なお、携帯電話機400は、このとき同時に、CCDカメラ416で撮像中にマイクロホン(マイク)421で集音した音声を、音声コーデック459においてアナログデジタル変換し、さらに符号化する。
 携帯電話機400は、多重分離部457において、画像エンコーダ453から供給された符号化画像データと、音声コーデック459から供給されたデジタル音声データとを、所定の方式で多重化する。携帯電話機400は、その結果得られる多重化データを、変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(画像データ)は、ネットワーク等を介して、通信相手に供給される。
 なお、画像データを送信しない場合、携帯電話機400は、CCDカメラ416で生成した画像データを、画像エンコーダ453を介さずに、LCD制御部455を介して液晶ディスプレイ418に表示させることもできる。
 また、例えば、データ通信モードにおいて、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、携帯電話機400は、基地局から送信された信号を、アンテナ414を介して送受信回路部463で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機400は、その受信信号を変復調回路部458でスペクトラム逆拡散処理して元の多重化データを復元する。携帯電話機400は、多重分離部457において、その多重化データを分離して、符号化画像データと音声データとに分ける。
 携帯電話機400は、画像デコーダ456において、符号化画像データを、MPEG2やMPEG4等の所定の符号化方式に対応した復号方式でデコードすることにより、再生動画像データを生成し、これを、LCD制御部455を介して液晶ディスプレイ418に表示させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが液晶ディスプレイ418に表示される。
 携帯電話機400は、このような処理を行う画像デコーダ456として、上述した画像復号装置101を用いる。したがって、画像デコーダ456は、画像復号装置101の場合と同様に、H.264/AVCの符号化順とは異なる、図2のAに示される昇順に符号化および出力が行われたストリームを、そのストリーム順に入力および復号する。これにより、高い符号化効率で、パイプライン処理や並列処理を実現することができる。また、画像デコーダ456の回路規模を小さくすることができる。
 このとき、携帯電話機400は、同時に、音声コーデック459において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ417より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
 なお、電子メールの場合と同様に、携帯電話機400は、受信した簡易ホームページ等にリンクされたデータを、記録再生部462を介して、記憶部423に記録する(記憶させる)ことも可能である。
 また、携帯電話機400は、主制御部450において、撮像されてCCDカメラ416で得られた2次元コードを解析し、2次元コードに記録された情報を取得することができる。
 さらに、携帯電話機400は、赤外線通信部481で赤外線により外部の機器と通信することができる。
 携帯電話機400は、画像エンコーダ453として画像符号化装置51を用いることにより、処理の高速化を実現するとともに、例えばCCDカメラ416において生成された画像データを符号化して生成する符号化データの符号化効率を向上させることができる。結果として、携帯電話機400は、符号化効率のよい符号化データ(画像データ)を、他の装置に提供することができる。
 また、携帯電話機400は、画像デコーダ456として画像復号装置101を用いることにより、処理の高速化を実現するとともに、精度の高い予測画像を生成することができる。その結果として、携帯電話機400は、例えば、簡易ホームページにリンクされた動画像ファイルから、より高精細な復号画像を得て、表示することができる。
 なお、以上において、携帯電話機400が、CCDカメラ416を用いるように説明したが、このCCDカメラ416の代わりに、CMOS(Complementary Metal Oxide Semiconductor)を用いたイメージセンサ(CMOSイメージセンサ)を用いるようにしてもよい。この場合も、携帯電話機400は、CCDカメラ416を用いる場合と同様に、被写体を撮像し、被写体の画像の画像データを生成することができる。
 また、以上においては携帯電話機400として説明したが、例えば、PDA(Personal Digital Assistants)、スマートフォン、UMPC(Ultra Mobile Personal Computer)、ネットブック、ノート型パーソナルコンピュータ等、この携帯電話機400と同様の撮像機能や通信機能を有する装置であれば、どのような装置であっても携帯電話機400の場合と同様に、画像符号化装置51および画像復号装置101を適用することができる。
[ハードディスクレコーダの構成例]
 図32は、本発明を適用した画像符号化装置および画像復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
 図32に示されるハードディスクレコーダ(HDDレコーダ)500は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号(テレビジョン信号)に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
 ハードディスクレコーダ500は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ500は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
 さらに、ハードディスクレコーダ500は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ560に供給し、モニタ560の画面にその画像を表示させる。また、ハードディスクレコーダ500は、モニタ560のスピーカよりその音声を出力させることができる。
 ハードディスクレコーダ500は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ560に供給し、モニタ560の画面にその画像を表示させる。また、ハードディスクレコーダ500は、モニタ560のスピーカよりその音声を出力させることもできる。
 もちろん、この他の動作も可能である。
 図32に示されるように、ハードディスクレコーダ500は、受信部521、復調部522、デマルチプレクサ523、オーディオデコーダ524、ビデオデコーダ525、およびレコーダ制御部526を有する。ハードディスクレコーダ500は、さらに、EPGデータメモリ527、プログラムメモリ528、ワークメモリ529、ディスプレイコンバータ530、OSD(On Screen Display)制御部531、ディスプレイ制御部532、記録再生部533、D/Aコンバータ534、および通信部535を有する。
 また、ディスプレイコンバータ530は、ビデオエンコーダ541を有する。記録再生部533は、エンコーダ551およびデコーダ552を有する。
 受信部521は、リモートコントローラ(図示せず)からの赤外線信号を受信し、電気信号に変換してレコーダ制御部526に出力する。レコーダ制御部526は、例えば、マイクロプロセッサなどにより構成され、プログラムメモリ528に記憶されているプログラムに従って、各種の処理を実行する。レコーダ制御部526は、このとき、ワークメモリ529を必要に応じて使用する。
 通信部535は、ネットワークに接続され、ネットワークを介して他の装置との通信処理を行う。例えば、通信部535は、レコーダ制御部526により制御され、チューナ(図示せず)と通信し、主にチューナに対して選局制御信号を出力する。
 復調部522は、チューナより供給された信号を、復調し、デマルチプレクサ523に出力する。デマルチプレクサ523は、復調部522より供給されたデータを、オーディオデータ、ビデオデータ、およびEPGデータに分離し、それぞれ、オーディオデコーダ524、ビデオデコーダ525、またはレコーダ制御部526に出力する。
 オーディオデコーダ524は、入力されたオーディオデータを、例えばMPEG方式でデコードし、記録再生部533に出力する。ビデオデコーダ525は、入力されたビデオデータを、例えばMPEG方式でデコードし、ディスプレイコンバータ530に出力する。レコーダ制御部526は、入力されたEPGデータをEPGデータメモリ527に供給し、記憶させる。
 ディスプレイコンバータ530は、ビデオデコーダ525またはレコーダ制御部526より供給されたビデオデータを、ビデオエンコーダ541により、例えばNTSC(National Television Standards Committee)方式のビデオデータにエンコードし、記録再生部533に出力する。また、ディスプレイコンバータ530は、ビデオデコーダ525またはレコーダ制御部526より供給されるビデオデータの画面のサイズを、モニタ560のサイズに対応するサイズに変換する。ディスプレイコンバータ530は、画面のサイズが変換されたビデオデータを、さらに、ビデオエンコーダ541によってNTSC方式のビデオデータに変換し、アナログ信号に変換し、ディスプレイ制御部532に出力する。
 ディスプレイ制御部532は、レコーダ制御部526の制御のもと、OSD(On Screen Display)制御部531が出力したOSD信号を、ディスプレイコンバータ530より入力されたビデオ信号に重畳し、モニタ560のディスプレイに出力し、表示させる。
 モニタ560にはまた、オーディオデコーダ524が出力したオーディオデータが、D/Aコンバータ534によりアナログ信号に変換されて供給されている。モニタ560は、このオーディオ信号を内蔵するスピーカから出力する。
 記録再生部533は、ビデオデータやオーディオデータ等を記録する記憶媒体としてハードディスクを有する。
 記録再生部533は、例えば、オーディオデコーダ524より供給されるオーディオデータを、エンコーダ551によりMPEG方式でエンコードする。また、記録再生部533は、ディスプレイコンバータ530のビデオエンコーダ541より供給されるビデオデータを、エンコーダ551によりMPEG方式でエンコードする。記録再生部533は、そのオーディオデータの符号化データとビデオデータの符号化データとをマルチプレクサにより合成する。記録再生部533は、その合成データをチャネルコーディングして増幅し、そのデータを、記録ヘッドを介してハードディスクに書き込む。
 記録再生部533は、再生ヘッドを介してハードディスクに記録されているデータを再生し、増幅し、デマルチプレクサによりオーディオデータとビデオデータに分離する。記録再生部533は、デコーダ552によりオーディオデータおよびビデオデータをMPEG方式でデコードする。記録再生部533は、復号したオーディオデータをD/A変換し、モニタ560のスピーカに出力する。また、記録再生部533は、復号したビデオデータをD/A変換し、モニタ560のディスプレイに出力する。
 レコーダ制御部526は、受信部521を介して受信されるリモートコントローラからの赤外線信号により示されるユーザ指示に基づいて、EPGデータメモリ527から最新のEPGデータを読み出し、それをOSD制御部531に供給する。OSD制御部531は、入力されたEPGデータに対応する画像データを発生し、ディスプレイ制御部532に出力する。ディスプレイ制御部532は、OSD制御部531より入力されたビデオデータをモニタ560のディスプレイに出力し、表示させる。これにより、モニタ560のディスプレイには、EPG(電子番組ガイド)が表示される。
 また、ハードディスクレコーダ500は、インターネット等のネットワークを介して他の装置から供給されるビデオデータ、オーディオデータ、またはEPGデータ等の各種データを取得することができる。
 通信部535は、レコーダ制御部526に制御され、ネットワークを介して他の装置から送信されるビデオデータ、オーディオデータ、およびEPGデータ等の符号化データを取得し、それをレコーダ制御部526に供給する。レコーダ制御部526は、例えば、取得したビデオデータやオーディオデータの符号化データを記録再生部533に供給し、ハードディスクに記憶させる。このとき、レコーダ制御部526および記録再生部533が、必要に応じて再エンコード等の処理を行うようにしてもよい。
 また、レコーダ制御部526は、取得したビデオデータやオーディオデータの符号化データを復号し、得られるビデオデータをディスプレイコンバータ530に供給する。ディスプレイコンバータ530は、ビデオデコーダ525から供給されるビデオデータと同様に、レコーダ制御部526から供給されるビデオデータを処理し、ディスプレイ制御部532を介してモニタ560に供給し、その画像を表示させる。
 また、この画像表示に合わせて、レコーダ制御部526が、復号したオーディオデータを、D/Aコンバータ534を介してモニタ560に供給し、その音声をスピーカから出力させるようにしてもよい。
 さらに、レコーダ制御部526は、取得したEPGデータの符号化データを復号し、復号したEPGデータをEPGデータメモリ527に供給する。
 以上のようなハードディスクレコーダ500は、ビデオデコーダ525、デコーダ552、およびレコーダ制御部526に内蔵されるデコーダとして画像復号装置101を用いる。したがって、ビデオデコーダ525、デコーダ552、およびレコーダ制御部526に内蔵されるデコーダは、画像復号装置101の場合と同様に、H.264/AVCの符号化順とは異なる、図2のAに示される昇順に符号化および出力が行われたストリームを、そのストリーム順に入力および復号する。これにより、高い符号化効率で、パイプライン処理や並列処理を実現することができる。また、各デコーダの回路規模を小さくすることができる。
 したがって、ハードディスクレコーダ500は、処理の高速化を実現するとともに、精度の高い予測画像を生成することができる。その結果として、ハードディスクレコーダ500は、例えば、チューナを介して受信されたビデオデータの符号化データや、記録再生部533のハードディスクから読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、モニタ560に表示させることができる。
 また、ハードディスクレコーダ500は、エンコーダ551として画像符号化装置51を用いる。したがって、エンコーダ551は、画像符号化装置51の場合と同様に、H.264/AVCの符号化順とは異なる、図2のAに示される昇順に符号化およびストリームへの出力を行う。これにより、高い符号化効率で、パイプライン処理や並列処理を実現することができる。また、エンコーダ551の回路規模を小さくすることができる。
 したがって、ハードディスクレコーダ500は、例えば、処理の高速化を実現させるとともに、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、ハードディスクレコーダ500は、ハードディスクの記憶領域をより効率よく使用することができる。
 なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ500について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ500の場合と同様に、画像符号化装置51および画像復号装置101を適用することができる。
[カメラの構成例]
 図33は、本発明を適用した画像復号装置および画像符号化装置を用いるカメラの主な構成例を示すブロック図である。
 図33に示されるカメラ600は、被写体を撮像し、被写体の画像をLCD616に表示させたり、それを画像データとして、記録メディア633に記録したりする。
 レンズブロック611は、光(すなわち、被写体の映像)を、CCD/CMOS612に入射させる。CCD/CMOS612は、CCDまたはCMOSを用いたイメージセンサであり、受光した光の強度を電気信号に変換し、カメラ信号処理部613に供給する。
 カメラ信号処理部613は、CCD/CMOS612から供給された電気信号を、Y,Cr,Cbの色差信号に変換し、画像信号処理部614に供給する。画像信号処理部614は、コントローラ621の制御の下、カメラ信号処理部613から供給された画像信号に対して所定の画像処理を施したり、その画像信号をエンコーダ641で例えばMPEG方式により符号化したりする。画像信号処理部614は、画像信号を符号化して生成した符号化データを、デコーダ615に供給する。さらに、画像信号処理部614は、オンスクリーンディスプレイ(OSD)620において生成された表示用データを取得し、それをデコーダ615に供給する。
 以上の処理において、カメラ信号処理部613は、バス617を介して接続されるDRAM(Dynamic Random Access Memory)618を適宜利用し、必要に応じて画像データや、その画像データが符号化された符号化データ等をそのDRAM618に保持させる。
 デコーダ615は、画像信号処理部614から供給された符号化データを復号し、得られた画像データ(復号画像データ)をLCD616に供給する。また、デコーダ615は、画像信号処理部614から供給された表示用データをLCD616に供給する。LCD616は、デコーダ615から供給された復号画像データの画像と表示用データの画像を適宜合成し、その合成画像を表示する。
 オンスクリーンディスプレイ620は、コントローラ621の制御の下、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを、バス617を介して画像信号処理部614に出力する。
 コントローラ621は、ユーザが操作部622を用いて指令した内容を示す信号に基づいて、各種処理を実行するとともに、バス617を介して、画像信号処理部614、DRAM618、外部インタフェース619、オンスクリーンディスプレイ620、およびメディアドライブ623等を制御する。FLASH ROM624には、コントローラ621が各種処理を実行する上で必要なプログラムやデータ等が格納される。
 例えば、コントローラ621は、画像信号処理部614やデコーダ615に代わって、DRAM618に記憶されている画像データを符号化したり、DRAM618に記憶されている符号化データを復号したりすることができる。このとき、コントローラ621は、画像信号処理部614やデコーダ615の符号化・復号方式と同様の方式によって符号化・復号処理を行うようにしてもよいし、画像信号処理部614やデコーダ615が対応していない方式により符号化・復号処理を行うようにしてもよい。
 また、例えば、操作部622から画像印刷の開始が指示された場合、コントローラ621は、DRAM618から画像データを読み出し、それを、バス617を介して外部インタフェース619に接続されるプリンタ634に供給して印刷させる。
 さらに、例えば、操作部622から画像記録が指示された場合、コントローラ621は、DRAM618から符号化データを読み出し、それを、バス617を介してメディアドライブ623に装着される記録メディア633に供給して記憶させる。
 記録メディア633は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアである。記録メディア633は、もちろん、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であっても良い。
 また、メディアドライブ623と記録メディア633を一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
 外部インタフェース619は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタ634と接続される。また、外部インタフェース619には、必要に応じてドライブ631が接続され、磁気ディスク、光ディスク、あるいは光磁気ディスクなどのリムーバブルメディア632が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、FLASH ROM624にインストールされる。
 さらに、外部インタフェース619は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。コントローラ621は、例えば、操作部622からの指示に従って、DRAM618から符号化データを読み出し、それを外部インタフェース619から、ネットワークを介して接続される他の装置に供給させることができる。また、コントローラ621は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース619を介して取得し、それをDRAM618に保持させたり、画像信号処理部614に供給したりすることができる。
 以上のようなカメラ600は、デコーダ615として画像復号装置101を用いる。したがって、デコーダ615は、画像復号装置101の場合と同様に、H.264/AVCの符号化順とは異なる、図2のAに示される昇順に符号化および出力が行われたストリームを、そのストリーム順に入力および復号する。これにより、高い符号化効率で、パイプライン処理や並列処理を実現することができる。また、各デコーダの回路規模を小さくすることができる。
 したがって、カメラ600は、処理の高速化を実現するとともに、精度の高い予測画像を生成することができる。その結果として、カメラ600は、例えば、CCD/CMOS612において生成された画像データや、DRAM618または記録メディア633から読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、LCD616に表示させることができる。
 また、カメラ600は、エンコーダ641として画像符号化装置51を用いる。したがって、エンコーダ641は、画像符号化装置51の場合と同様に、H.264/AVCの符号化順とは異なる、図2のAに示される昇順に符号化およびストリームへの出力を行う。これにより、高い符号化効率で、パイプライン処理や並列処理を実現することができる。また、エンコーダ641の回路規模を小さくすることができる。
 したがって、カメラ600は、例えば、処理の高速化を実現させるとともに、ハードディスクに記録する符号化データの符号化効率を、処理を複雑にすることなく向上させることができる。その結果として、カメラ600は、DRAM618や記録メディア633の記憶領域をより効率よく使用することができる。
 なお、コントローラ621が行う復号処理に画像復号装置101の復号方法を適用するようにしてもよい。同様に、コントローラ621が行う符号化処理に画像符号化装置51の符号化方法を適用するようにしてもよい。
 また、カメラ600が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
 もちろん、画像符号化装置51および画像復号装置101は、上述した装置以外の装置やシステムにも適用可能である。
 51 画像符号化装置, 66 可逆符号化部, 74 イントラ予測部, 75 アドレス制御部, 76 周辺画素利用可能性判定部, 81 符号化処理部, 82 ストリーム出力部, 91 ブロックアドレス算出部, 92 パイプライン/並列処理制御部, 101 画像復号装置, 112 可逆復号部, 121 イントラ予測部, 122 アドレス制御部, 123 周辺画素利用可能性判定部, 131 ストリーム入力部, 132 復号処理部, 141 ブロックアドレス算出部, 142 パイプライン/並列処理制御部, 300 テレビジョン受像機, 400 携帯電話機, 500 ハードディスクレコーダ, 600 カメラ

Claims (14)

  1.  画像の所定のブロックを構成するブロックのうち、次に処理する対象ブロックのブロックアドレスを、符号化規格とは異なる順に基づいて確定するアドレス制御手段と、
     前記アドレス制御手段により確定されたブロックアドレスに対応する前記対象ブロックを、前記対象ブロックの周辺画素を用いた予測処理を行って、符号化する符号化手段と、
     前記符号化手段により符号化された順に、前記対象ブロックをストリームとして出力するストリーム出力手段と
     を備える画像処理装置。
  2.  前記アドレス制御手段は、前記所定のブロックが16個のブロックにより構成される場合、左上のブロックを(0,0)とし、{}内のブロック同士は、パイプライン処理、並行処理、または先にどちらの処理を行ってもいいことを表すとすると、(0,0),(1,0),{(2,0),(0,1)},{(3,0),(1,1)},{(2,1),(0,2)},{(3,1),(1,2)},{(2,2),(0,3)},{(3,2),(1,3)},(2,3),(3,3)の順に基づいて、前記対象ブロックのブロックアドレスを確定する
     請求項1に記載の画像処理装置。
  3.  前記アドレス制御手段により確定されたブロックアドレスを用いて、前記対象ブロックの周辺画素が利用可能であるか否かを判定する周辺画素利用可能性判定手段を
     さらに備え、
     前記符号化手段は、前記周辺画素利用可能性判定手段により利用可能であると判定された周辺画素を用いる予測モードで、前記対象ブロックの周辺画素を用いた予測処理を行って、前記対象ブロックを符号化する
     請求項2に記載の画像処理装置。
  4.  前記アドレス制御手段により確定されたブロックアドレスを用いて、前記対象ブロックが、パイプライン処理または並列処理可能であるか否かを判定する処理判定手段をさらに備え、
     前記符号化手段は、前記処理判定手段により前記対象ブロックが、パイプライン処理または並列処理可能であると判定された場合、パイプライン処理または並列処理により、前記対象ブロックを符号化する
     請求項2に記載の画像処理装置。
  5.  前記所定のブロックは、m×m(m≧16)画素のマクロブロックであり、
     前記所定のブロックを構成するブロックは、m/4×m/4画素のブロックである
     請求項2に記載の画像処理装置。
  6.  前記所定のブロックは、m×m(m≧32)画素のマクロブロック、または前記マクロブロックを構成するサブブロックであり、
     前記所定のブロックを構成するブロックは、16×16画素のブロックである
     請求項2に記載の画像処理装置。
  7.  画像処理装置が、
     画像の所定のブロックを構成するブロックのうち、次の処理する対象ブロックのブロックアドレスを、符号化規格とは異なる順に基づいて確定し、
     確定されたブロックアドレスに対応する前記対象ブロックについて、前記対象ブロックの周辺画素を用いた予測処理を行って、符号化し、
     符号化された順に、前記対象ブロックをストリームとして出力するステップ
     を含む画像処理方法。
  8.  画像の所定のブロックを構成するブロックであって、前記所定のブロック内において符号化規格とは異なる順で符号化された後ストリームとして出力されている次に処理する対象ブロックを前記ストリームの順に復号する復号手段と、
     前記対象ブロックのブロックアドレスを、前記符号化規格とは異なる順に基づいて確定するアドレス制御手段と、
     前記アドレス制御手段により確定されたブロックアドレスに対応する前記対象ブロックの予測画像を、前記対象ブロックの周辺画素を用いて予測する予測手段と
     前記予測手段により予測された前記対象ブロックの予測画像と、前記復号手段により復号された前記対象ブロックの画像を加算する加算手段と
     を備える画像処理装置。
  9.  前記アドレス制御手段は、前記所定のブロックが16個の前記ブロックにより構成される場合、左上のブロックを(0,0)とし、{}内のブロック同士は、パイプライン処理、並行処理、または先にどちらの処理を行ってもいいことを表すとすると、(0,0),(1,0),{(2,0),(0,1)},{(3,0),(1,1)},{(2,1),(0,2)},{(3,1),(1,2)},{(2,2),(0,3)},{(3,2),(1,3)},(2,3),(3,3)の順に基づいて、前記対象ブロックのブロックアドレスを確定する
     請求項8に記載の画像処理装置。
  10.  前記アドレス制御手段により確定されたブロックアドレスを用いて、前記対象ブロックの周辺画素が利用可能であるか否かを判定する周辺画素利用可能性判定手段を
     さらに備え、
     前記復号手段は、前記対象ブロックの予測モード情報も復号し、
     前記予測手段は、前記予測モード情報が示す予測モードで、前記対象ブロックの予測画像を、前記周辺画素利用可能性判定手段により利用可能であると判定された前記対象ブロックの周辺画素を用いて予測する
     請求項9に記載の画像処理装置。
  11.  前記アドレス制御手段により確定されたブロックアドレスを用いて、前記対象ブロックが、パイプライン処理または並列処理可能であるか否かを判定する処理判定手段をさらに備え、
     前記符号化手段は、前記処理判定手段により前記対象ブロックが、パイプライン処理または並列処理可能であると判定された場合、パイプライン処理または並列処理で、前記対象ブロックの予測画像を予測する
     請求項9に記載の画像処理装置。
  12.  前記所定のブロックは、m×m(m≧16)画素のマクロブロックであり、
     前記所定のブロックを構成するブロックは、m/4×m/4画素のブロックである
     請求項9に記載の画像処理装置。
  13.  前記所定のブロックは、m×m(m≧32)画素のマクロブロック、または前記マクロブロックを構成するサブブロックであり、
     前記所定のブロックを構成するブロックは、16×16画素のブロックである
     請求項9に記載の画像処理装置。
  14.  画像処理装置が、
     画像の所定のブロックを構成するブロックであって、前記所定のブロック内で、符号化規格とは異なる順で符号化された後ストリームとして出力されている次に処理する対象ブロックを前記ストリームの順に復号し、
     前記対象ブロックのブロックアドレスを、前記符号化規格とは異なる順に基づいて確定し、
     確定されたブロックアドレスに対応する前記対象ブロックの予測画像を、前記対象ブロックの周辺画素を用いて予測し、
     予測された前記対象ブロックの予測画像と、復号された前記対象ブロックの画像を加算するステップ
     を含む画像処理方法。
PCT/JP2010/063156 2009-08-12 2010-08-04 画像処理装置および方法 WO2011018965A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/388,471 US20120128069A1 (en) 2009-08-12 2010-08-04 Image processing apparatus and method
CN201080034618XA CN102648630A (zh) 2009-08-12 2010-08-04 图像处理设备和方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009187049A JP2011041037A (ja) 2009-08-12 2009-08-12 画像処理装置および方法
JP2009-187049 2009-08-12

Publications (1)

Publication Number Publication Date
WO2011018965A1 true WO2011018965A1 (ja) 2011-02-17

Family

ID=43586143

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/063156 WO2011018965A1 (ja) 2009-08-12 2010-08-04 画像処理装置および方法

Country Status (4)

Country Link
US (1) US20120128069A1 (ja)
JP (1) JP2011041037A (ja)
CN (1) CN102648630A (ja)
WO (1) WO2011018965A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2486726A (en) * 2010-12-23 2012-06-27 British Broadcasting Corp Video compression using block predictor operating in parallel on pixel subsets
WO2013172991A1 (en) * 2012-05-14 2013-11-21 Qualcomm Incorporated Interleave block processing ordering for video data coding
JP2022529369A (ja) * 2019-04-24 2022-06-21 バイトダンス インコーポレイテッド 符号化映像の量子化残差差分パルス符号変調表現

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8311111B2 (en) 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
CN103125119B (zh) 2010-10-04 2016-10-26 松下知识产权经营株式会社 图像处理装置、图像编码方法以及图像处理方法
US9100657B1 (en) 2011-12-07 2015-08-04 Google Inc. Encoding time management in parallel real-time video encoding
US20130259137A1 (en) * 2012-03-30 2013-10-03 Google Inc. System and Method for Multi-Core Hardware Video Encoding And Decoding
KR101436949B1 (ko) 2013-01-18 2014-09-03 연세대학교 산학협력단 영상 인코딩 방법 및 장치, 그리고 영상 처리 장치
US9210424B1 (en) 2013-02-28 2015-12-08 Google Inc. Adaptive prediction block size in video coding
US9774881B2 (en) * 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
JP2015185897A (ja) 2014-03-20 2015-10-22 パナソニックIpマネジメント株式会社 画像符号化方法及び画像符号化装置
WO2015182927A1 (ko) * 2014-05-26 2015-12-03 주식회사 케이티 다시점 비디오 신호 처리 방법 및 장치
JP6080077B2 (ja) 2014-07-15 2017-02-15 パナソニックIpマネジメント株式会社 画像符号化方法及び画像符号化装置
US10091530B2 (en) * 2014-10-01 2018-10-02 Qualcomm Incorporated Pipelined intra-prediction hardware architecture for video coding
US10362305B2 (en) * 2015-03-27 2019-07-23 Sony Corporation Image processing device, image processing method, and recording medium
US9807416B2 (en) 2015-09-21 2017-10-31 Google Inc. Low-latency two-pass video coding
US9794574B2 (en) 2016-01-11 2017-10-17 Google Inc. Adaptive tile data size coding for video and image compression
US10542258B2 (en) 2016-01-25 2020-01-21 Google Llc Tile copying for video compression
JP6680260B2 (ja) * 2017-04-28 2020-04-15 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号化装置、画像復号化方法及び画像復号化プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004140473A (ja) * 2002-10-15 2004-05-13 Sony Corp 画像情報符号化装置、復号化装置並びに画像情報符号化方法、復号化方法
JP2005130509A (ja) * 2003-10-24 2005-05-19 Samsung Electronics Co Ltd イントラ予測方法及び装置
JP2006165699A (ja) * 2004-12-02 2006-06-22 Matsushita Electric Ind Co Ltd 画像符号化装置および画像符号化方法
JP2007124409A (ja) * 2005-10-28 2007-05-17 Matsushita Electric Ind Co Ltd 画像符号化装置
JP2008182527A (ja) * 2007-01-25 2008-08-07 Matsushita Electric Ind Co Ltd 画像符号化装置及び方法、並びに撮像システム
JP2008271127A (ja) * 2007-04-19 2008-11-06 Nec Electronics Corp 符号化装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8902972B2 (en) * 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
US9788018B2 (en) * 2008-06-30 2017-10-10 Microsoft Technology Licensing, Llc Error concealment techniques in video decoding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004140473A (ja) * 2002-10-15 2004-05-13 Sony Corp 画像情報符号化装置、復号化装置並びに画像情報符号化方法、復号化方法
JP2005130509A (ja) * 2003-10-24 2005-05-19 Samsung Electronics Co Ltd イントラ予測方法及び装置
JP2006165699A (ja) * 2004-12-02 2006-06-22 Matsushita Electric Ind Co Ltd 画像符号化装置および画像符号化方法
JP2007124409A (ja) * 2005-10-28 2007-05-17 Matsushita Electric Ind Co Ltd 画像符号化装置
JP2008182527A (ja) * 2007-01-25 2008-08-07 Matsushita Electric Ind Co Ltd 画像符号化装置及び方法、並びに撮像システム
JP2008271127A (ja) * 2007-04-19 2008-11-06 Nec Electronics Corp 符号化装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2486726A (en) * 2010-12-23 2012-06-27 British Broadcasting Corp Video compression using block predictor operating in parallel on pixel subsets
GB2486726B (en) * 2010-12-23 2017-11-29 British Broadcasting Corp Compression of pictures
US10298943B2 (en) 2010-12-23 2019-05-21 British Broadcasting Corporation Compression of pictures
WO2013172991A1 (en) * 2012-05-14 2013-11-21 Qualcomm Incorporated Interleave block processing ordering for video data coding
US9503724B2 (en) 2012-05-14 2016-11-22 Qualcomm Incorporated Interleave block processing ordering for video data coding
JP2022529369A (ja) * 2019-04-24 2022-06-21 バイトダンス インコーポレイテッド 符号化映像の量子化残差差分パルス符号変調表現
JP7414843B2 (ja) 2019-04-24 2024-01-16 バイトダンス インコーポレイテッド 符号化映像の量子化残差差分パルス符号変調表現
US11985323B2 (en) 2019-04-24 2024-05-14 Bytedance Inc. Quantized residual differential pulse code modulation representation of coded video

Also Published As

Publication number Publication date
JP2011041037A (ja) 2011-02-24
CN102648630A (zh) 2012-08-22
US20120128069A1 (en) 2012-05-24

Similar Documents

Publication Publication Date Title
US20220335657A1 (en) Image Processing Device and Method
WO2011018965A1 (ja) 画像処理装置および方法
WO2011089972A1 (ja) 画像処理装置および方法
WO2011040302A1 (ja) 画像処理装置および方法
WO2010095560A1 (ja) 画像処理装置および方法
WO2010035731A1 (ja) 画像処理装置および方法
WO2010035734A1 (ja) 画像処理装置および方法
WO2010035732A1 (ja) 画像処理装置および方法
WO2011125866A1 (ja) 画像処理装置および方法
WO2011086963A1 (ja) 画像処理装置および方法
WO2010101063A1 (ja) 画像処理装置および方法
WO2011096318A1 (ja) 画像処理装置および方法
WO2010035735A1 (ja) 画像処理装置および方法
JP6048774B2 (ja) 画像処理装置および方法
JP2012138884A (ja) 符号化装置および符号化方法、並びに復号装置および復号方法
JP2012129925A (ja) 画像処理装置および方法、並びに、プログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080034618.X

Country of ref document: CN

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

Ref document number: 10808148

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13388471

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: 10808148

Country of ref document: EP

Kind code of ref document: A1