WO2011048764A1 - 復号装置、復号方法、プログラム、及び集積回路 - Google Patents

復号装置、復号方法、プログラム、及び集積回路 Download PDF

Info

Publication number
WO2011048764A1
WO2011048764A1 PCT/JP2010/006009 JP2010006009W WO2011048764A1 WO 2011048764 A1 WO2011048764 A1 WO 2011048764A1 JP 2010006009 W JP2010006009 W JP 2010006009W WO 2011048764 A1 WO2011048764 A1 WO 2011048764A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
storage unit
unit
image
search
Prior art date
Application number
PCT/JP2010/006009
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 JP2011506521A priority Critical patent/JPWO2011048764A1/ja
Priority to CN201080003007.9A priority patent/CN102197652B/zh
Priority to US13/121,041 priority patent/US20110235716A1/en
Publication of WO2011048764A1 publication Critical patent/WO2011048764A1/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/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Definitions

  • the present invention relates to an image decoding apparatus and an image decoding method for decoding a coded image, and more particularly to an image decoding apparatus and an image decoding method for performing correlation search of a decoded image.
  • An image coding apparatus for coding a moving image divides each picture constituting the moving image into macroblocks of 16 ⁇ 16 pixels, and encodes each of the macroblocks. Then, the image coding apparatus generates a coded stream obtained by coding and compressing a moving image. The image decoding apparatus decodes this encoded stream in units of macroblocks and reproduces each picture of the original moving image.
  • H.264 As one of the conventional image coding methods, ITU-T H.264, There are H.264 standards (see, for example, Non-Patent Document 1 and Non-Patent Document 2).
  • H.264 standards see, for example, Non-Patent Document 1 and Non-Patent Document 2).
  • the image decoding apparatus compatible with the H.264 standard first reads the coded stream from the bit stream buffer 702, and variable length decoding is performed by the variable length decoding unit 704, macro block type, in-plane prediction (intra It outputs coding information such as a prediction mode, motion vector information, quantization parameter, and coefficient information corresponding to each pixel data.
  • the encoded information is passed to the control unit 701 and converted into a format required by each processing unit.
  • the coefficient information is dequantized by the dequantization unit 705, and is inversely frequency transformed by the inverse frequency transform unit 706 according to the macroblock type.
  • the in-plane prediction unit 707 generates a predicted image according to the in-plane prediction mode.
  • a motion vector calculation unit 708 calculates a motion vector from motion vector information
  • a motion compensation unit 709 generates a predicted image using the motion vector.
  • the reconstruction unit 711 generates a decoded image from the predicted image and the coefficient information subjected to inverse frequency conversion, that is, the difference image.
  • the deblocking filter unit 712 performs deblocking filter processing on the decoded image, and stores the result in the frame memory 703.
  • the direct mode is one of inter macroblocks, has no motion vector information in a coded stream, and generates a motion vector using motion vectors of a picture decoded in the past.
  • FIG. 2 shows a motion vector calculation method in direct mode in the H.264 standard.
  • the motion vectors mvL0 and mvL1 of the decoded macroblock are calculated by scaling at the time intervals tb and td of each reference picture from the motion vector mvCol of the anchor block at the same position as the decoded macroblock of the anchor picture corresponding to the decoded picture. Be done.
  • the motion vector generated in this direct mode may not be an optimal motion vector.
  • the motion vector is not optimal, although the motion vector information is reduced, the coefficient information corresponding to the error from the predicted image is increased, and as a result, the compression efficiency is reduced.
  • the anchor block is an intra block, a large error is often generated because there is no motion vector.
  • Non-Patent Document 3 As shown in FIG. The calculation method of the direct mode of the H.264 standard is changed. Specifically, within a predetermined range centered on the same position as the decoded macroblocks of the two reference pictures L0 and L1, the correlation is highest, ie, the most similar according to the search method described below Determine the motion vector by detecting the part.
  • the above-described search method performs search in the top, bottom, left, and right symmetry centering on the position of the decoded macroblock.
  • the upper left position of the search area of the reference picture L0 and the lower right position of the search area of the reference picture L1 are compared to calculate a sum of absolute difference (SAD).
  • the SAD is calculated in order while shifting the position where the reference picture L0 is compared in the right direction and the reference picture L1 in the left direction.
  • the SADs are sequentially calculated, and the position of the smallest SAD is regarded as the most similar position.
  • the motion vector is calculated by converting the vector into motion vectors mvL0 and mvL1 starting from the decoded macroblock of the decoded picture.
  • the same motion vector calculation as in the direct mode is performed even in the skip mode for B pictures, but in this specification, the skip mode is also called the direct mode.
  • Non-Patent Document 3 shows an operation method for determining a motion vector by searching for a reference image in the direct mode.
  • the mechanism for performing motion vector search using a reference image with an extremely large amount of data as compared to conventional motion vector calculation and how to acquire a necessary reference image from a frame memory is concretely shown. It has not been.
  • data used to calculate a motion vector is a motion vector of a past picture, and one motion vector is at most about 4 bytes.
  • the processing performance is largely determined by both the calculation performance and the data transfer performance, and even if the calculation can be performed at high speed, the performance will be degraded if it takes time to transfer the necessary data.
  • a frame memory in an image decoding apparatus has a large capacity, and is often placed on a dynamic random access memory (DRAM) connected outside an LSI (Large Scale Integration) which often performs operations.
  • DRAM dynamic random access memory
  • LSI Large Scale Integration
  • the configuration of a DRAM that realizes such a large transfer bandwidth becomes difficult or very expensive.
  • the transfer performance of a normal DRAM is insufficient, which lowers the processing performance. Therefore, in order to achieve high performance, it is necessary to reduce the amount of data transferred from the frame memory and the transfer bandwidth.
  • the present invention is intended to solve the above-mentioned conventional problems, and it is an object of the present invention to provide an image decoding apparatus capable of reducing the amount of data transfer from a frame memory or the data transfer bandwidth in motion vector calculation processing.
  • a decoding device decodes blocks that constitute a coded image. Specifically, a first storage unit for storing pixel data of a reference image which is an image already decoded by the decoding device and is referred to when the block is decoded; and the first storage unit A second storage unit having a small storage capacity and having a faster data reading speed than the first storage unit, and a partial region of the reference image, which is required to calculate the motion vector of the block A search area transfer unit for transferring pixel data of a search area from the first storage unit to the second storage unit; and repeatedly reading pixel data of the search area from the second storage unit to perform a predetermined operation And a decoding unit that decodes the block using the motion vector calculated by the motion vector calculation unit.
  • the pixel data of the search area is transferred from the first storage unit to the second storage unit only once in advance, and the pixel data of the search area is repeatedly read from the second storage unit having a high data readout speed. Can be read to calculate a motion vector.
  • the amount of data transfer from the first storage unit can be reduced, and the power consumption required for data transfer can be reduced.
  • the "block" in this specification typically refers to a macroblock, it is not limited to this.
  • the block is a first block encoded without adding information indicating a motion vector used for decoding, or a second block encoded by adding information indicating a motion vector. It may be.
  • the search area transfer unit may transfer pixel data of the search area from the first storage unit to the second storage unit only when the block to be decoded is the first block.
  • the decoding unit may decode the first block using the motion vector calculated by the motion vector calculation unit, and decode the second block using the added motion vector. .
  • the amount of data transferred from the first storage unit to the second storage unit can be minimized. As a result, power consumption required for data transfer can be further reduced.
  • the block is a first block encoded without adding information indicating a motion vector used for decoding, or a second block encoded by adding information indicating a motion vector It may be
  • the search area transfer unit determines pixel data of the search area from the first storage unit before the second storage before determining whether the block to be decoded is the first block or the second block.
  • a process of transferring to a unit may be started.
  • the decoding unit may decode the first block using the motion vector calculated by the motion vector calculation unit, and decode the second block using the added motion vector. . As a result, it is possible to reduce the waiting time for the transfer of pixel data in the search area by the motion vector operation unit.
  • the search area transfer unit cancels the process of transferring pixel data of the search area from the first storage unit to the second storage unit. You may As a result, the amount of transfer of unnecessary data is reduced, and therefore the power consumption required for data transfer can be further reduced.
  • the second storage unit may continuously store at least a part of the past pixel data transferred by the search area transfer unit. Then, the search area transfer unit transfers only pixel data not stored in the second storage unit among pixel data of the search area from the first storage unit to the second storage unit. May be Thereby, the amount of data transfer from the first storage unit can be further reduced.
  • the search area transfer unit may delete, from the second storage unit, pixel data that is not used to calculate the motion vector of the subsequent block among the data of past pixels. Thereby, the storage capacity of the second storage unit can be reduced.
  • the search area transfer unit is configured to Transfers the pixel data of the portion corresponding to the lower right corner of the first storage unit to the second storage unit, and transmits the pixel data transferred before the portion corresponding to the upper left end of the search area to the second It may be deleted from the storage unit of
  • the search area transfer unit is parallel to the motion vector of the n (n: natural number) -th block of the plurality of blocks constituting the encoded image being calculated by the motion vector calculator. Then, pixel data of the search area corresponding to the (n + 1) th block may be transferred from the first storage unit to the second storage unit. As described above, by pipelining a plurality of processes necessary for decoding, it is possible to further reduce the transfer bandwidth from the first storage unit by eliminating idle time of data transfer.
  • the decoding device generates a predicted image of the block using the motion vector and the pixel data of the reference image, a motion compensation operation unit, and a partial region of the reference image, wherein the motion compensation operation is performed.
  • a third storage unit for storing pixel data of a reference area referred to by the unit, and a reference for transferring pixel data of the reference area from one of the first and second storage units to the third storage unit An area transfer unit may be provided. Thereby, the amount of data transfer from the first storage unit can be further reduced.
  • the block is a first block encoded without adding information indicating a motion vector used for decoding, or a second block encoded by adding information indicating a motion vector. It may be.
  • the reference area transfer unit transfers pixel data of the reference area corresponding to the first block from the second storage unit to the third storage unit, and the reference area transfer unit corresponds to the second block. Pixel data of a reference image may be transferred from the first storage unit to the third storage unit.
  • Pixel data of the reference area can be transferred from the second storage unit to the third storage unit.
  • whether or not the pixel data of the reference area is stored in the second storage unit regardless of whether or not the direct mode is selected, and if stored, is transferred from the second storage unit May be
  • the second storage unit includes a search area storage unit directly accessed by the motion vector calculation unit, and the search area stored in the search area storage unit, and the search of the reference image is performed.
  • a wide area storage unit storing pixel data of an area larger than the area may be provided.
  • the reference area transfer unit may transfer pixel data of the reference area from the wide area storage unit to the third storage unit.
  • the search area includes a first search area included in a reference image preceding the encoded image including the block in the reproduction order, and a second search area included in the reference image subsequent in the reproduction order. May be included.
  • the motion vector calculation unit reads the pixel data of the search range of each of the first and second search regions from the second storage unit to calculate the sum of absolute value differences.
  • the motion vector may be calculated based on the position of the search range in which the calculated sum of absolute value differences is the smallest, by repeatedly executing while shifting the position of the search range in the second search region.
  • the motion vector calculation method is not limited to this.
  • a decoding method is a first storage unit that stores pixel data of a reference image that is already decoded and is referred to when decoding the block, and the first storage.
  • a decoding apparatus comprising: a second storage unit having a storage capacity smaller than that of a unit and having a faster data reading speed than that of the first storage unit is a method of decoding a block that constitutes a coded image. Specifically, pixel data of a search area that is a partial area of the reference image and is necessary to calculate a motion vector of the block is transmitted from the first storage unit to the second storage unit.
  • a search area transfer step for transferring, a motion vector calculation step of calculating a motion vector of the block by repeatedly reading out pixel data of the search area from the second storage unit and performing a predetermined calculation; Decoding the block using the motion vector calculated in the operation step.
  • a program according to an aspect of the present invention is a first storage unit for storing pixel data of a reference image which is an already decoded image and is referred to when decoding the block, and the first storage unit.
  • a decoding apparatus provided with a second storage unit having a smaller storage capacity and having a faster data reading speed than the first storage unit is caused to decode a block forming an encoded image.
  • pixel data of a search area that is a partial area of the reference image and is necessary to calculate a motion vector of the block is transmitted from the first storage unit to the second storage unit.
  • the decoding device is made to execute the decoding step of decoding the block using the motion vector calculated in the operation step.
  • An integrated circuit according to an aspect of the present invention is mounted on a decoding device including a first storage unit that stores pixel data of a reference image that is an image that has already been decoded and is referred to when decoding the block. , Decode the blocks that make up the encoded image.
  • a second storage unit whose storage capacity is smaller than that of the first storage unit and whose data reading speed is faster than that of the first storage unit, and a partial area of the reference image
  • a search area transfer unit for transferring pixel data of a search area necessary to calculate a motion vector of the block from the first storage unit to the second storage unit; and the search from the second storage unit
  • the block is decoded using a motion vector operation unit that calculates a motion vector of the block by repeatedly reading pixel data of a region and performing a predetermined operation, and the motion vector calculated by the motion vector operation unit.
  • a decryption unit a decryption unit.
  • the present invention it is possible to realize a decoding device capable of reducing the amount of data transfer from the first storage unit or the data transfer bandwidth.
  • FIG. 1A is a block diagram showing a schematic configuration of an image decoding apparatus.
  • FIG. 1B is a block diagram showing a detailed configuration of the image decoding apparatus.
  • FIG. 2 is an explanatory diagram showing an operation flow of the image decoding apparatus.
  • FIG. 3A is an explanatory diagram showing a time-series operation of the image decoding device when it is not an inter macroblock.
  • FIG. 3B is an explanatory diagram showing the time-series operation of the image decoding device when the inter macro block is not in the direct mode.
  • FIG. 3C is an explanatory view showing time-series operations of the image decoding apparatus in the case of the direct mode.
  • FIG. 4 is a block diagram showing the configuration of the image decoding apparatus.
  • FIG. 4 is a block diagram showing the configuration of the image decoding apparatus.
  • FIG. 5 is an explanatory view showing an operation flow of the image decoding apparatus.
  • FIG. 6 is an explanatory view showing time-series operations of the image decoding apparatus.
  • FIG. 7A is a diagram showing a search area in the macroblock MBn.
  • FIG. 7B is a diagram showing a search area of the macroblock MBn + 1 next to the macroblock MBn.
  • FIG. 7C is an enlarged view of a search area of the macroblock MBn and the macroblock MBn + 1.
  • FIG. 8A is a diagram showing a search area in the macroblock MBn.
  • FIG. 8B is a diagram showing a search area of the macroblock MBn + 8 under the macroblock MBn.
  • FIG. 8C is an enlarged view of a search area of the macroblock MBn and the macroblock MBn + 8.
  • FIG. 8D is a diagram showing an area stored in the search image memory in the reference image.
  • FIG. 9 is an explanatory diagram showing an operation flow of the image decoding apparatus.
  • FIG. 10 is an explanatory view showing time-series operations of the image decoding apparatus.
  • FIG. 11 is an explanatory diagram of the operation of the image decoding apparatus.
  • FIG. 12 is a block diagram showing the configuration of the image decoding apparatus.
  • FIG. 13 is an explanatory diagram showing an operation flow of the image decoding apparatus.
  • FIG. 14 is an explanatory view showing time-series operations of the image decoding apparatus.
  • FIG. 15 is a block diagram showing the configuration of the image decoding apparatus.
  • FIG. 16 is an explanatory diagram showing an operation flow of reference image transfer of the image decoding apparatus.
  • FIG. 17 is a block diagram showing the configuration of the image decoding apparatus.
  • FIG. 18 is an explanatory diagram showing an operation flow of reference image transfer of the image decoding apparatus.
  • FIG. 19 is a block diagram showing the configuration of the image decoding apparatus.
  • FIG. 20 is an explanatory diagram showing an operation flow of search image transfer of the image decoding apparatus.
  • FIG. 21A is a diagram showing an area stored in the wide area storage unit of the reference image.
  • FIG. 21B is a diagram showing the area stored in the search area storage unit of the reference image.
  • FIG. 22 is an explanatory diagram showing an operation flow of reference image transfer of the image decoding apparatus.
  • FIG. 21A is a diagram showing an area stored in the wide area storage unit of the reference image.
  • FIG. 21B is a diagram showing the area stored in the search area storage unit of the reference image.
  • FIG. 22 is an explanatory diagram showing
  • FIG. 23 is an overall configuration diagram of a content supply system for realizing content distribution service.
  • FIG. 24 is an overall configuration diagram of a digital broadcasting system.
  • FIG. 25 is a block diagram showing a configuration example of a television.
  • FIG. 26 is a block diagram showing a configuration example of an information reproducing / recording unit for reading and writing information on a recording medium which is an optical disk.
  • FIG. 27 is a view showing an example of the structure of a recording medium which is an optical disc.
  • FIG. 28 is a block diagram showing an image decoding process of each embodiment realized by an integrated circuit.
  • FIG. 29 is a block diagram showing an image decoding process of each embodiment realized by an integrated circuit.
  • FIG. 30 is a block diagram showing a conventional image decoding apparatus.
  • FIG. 31 shows the conventional H.264. It is explanatory drawing which shows the calculation method at the time of direct mode of H.264 standard.
  • FIG. 32 is an explanatory drawing showing a calculation method of a method of searching for a
  • Embodiment 1 An outline of the image decoding apparatus according to the first embodiment of the present invention will be described.
  • the image decoding apparatus according to the first embodiment of the present invention performs variable-length decoding for each macro block that constitutes a coded stream (coded image).
  • pixel data also referred to as a “search image”
  • search image pixel data of the search area
  • a motion vector is searched to determine a motion vector.
  • FIG. 1A is a block diagram showing a schematic configuration of the image decoding apparatus 100 according to the first embodiment.
  • FIG. 1B is a block diagram showing a detailed configuration of the image decoding apparatus 100 according to the first embodiment.
  • the image decoding apparatus 100 includes a first storage unit 20, a second storage unit 30, a search area transfer unit 40, a motion vector calculation unit 50, and a decoding unit 60.
  • the decoded image is decoded for each macroblock, and the decoded image is output.
  • the image decoding apparatus 100 can perform decoding in block units of arbitrary size larger or smaller than the macroblock.
  • the first storage unit 20 stores pixel data of a reference image which is an image already decoded by the image decoding apparatus 100 and which is referred to when a macro block is decoded.
  • the second storage unit 30 is a storage unit whose storage capacity is smaller than that of the first storage unit 20 and whose data reading speed is faster than that of the first storage unit 20.
  • the first storage unit 20 is a dynamic random access memory (DRAM)
  • the second storage unit 30 is a static random access memory (SRAM), but is not limited thereto.
  • the search area transfer unit 40 is a partial area of the reference image, and the pixel data of the search area necessary to calculate the motion vector of the macro block is transmitted from the first storage unit 20 to the second storage unit 30. Transfer to The motion vector computing unit 50 repeatedly reads pixel data in the search area from the second storage unit 30 and performs a predetermined computation to calculate a motion vector of the macro block. The decoding unit 60 decodes the macroblock using the motion vector calculated by the motion vector calculation unit 50.
  • the image decoding apparatus 100 has a control unit 101 that controls the whole, a bit stream buffer 102 that stores an input encoded stream, and a frame that stores decoded image data.
  • a memory 103 a variable-length decoding unit 104 that reads a coded stream and performs variable-length decoding, an inverse quantization unit 105 that performs inverse quantization, an inverse frequency conversion unit 106 that performs inverse frequency conversion, and in-plane prediction (also called intra prediction)
  • An intra prediction unit 107 that generates a prediction image, a motion vector calculation unit 108 that calculates a motion vector, a motion compensation unit 109 that generates a prediction image by performing motion compensation, a switch 110 that switches the prediction image, a reverse frequency-transformed difference
  • a reconstruction unit 111 generates a decoded image from the image and the predicted image, and removes block noise from the reconstructed image. It consists deblocking filter unit 112 for quality enhancement.
  • the motion vector calculation unit 108 further includes a motion vector operation unit 181 that performs motion vector calculation, and a search image memory 182 that stores pixel data (also referred to as a “search image”) of a search area for calculating a motion vector. Be done.
  • the motion compensation unit 109 includes a motion compensation operation unit 191 that performs a motion compensation operation, and a reference image memory 192 that stores pixel data (also referred to as “reference image”) of a reference area used for motion compensation.
  • the first storage unit 20 of FIG. 1A corresponds to the frame memory 103 of FIG. 1B.
  • the second storage unit 30 of FIG. 1A corresponds to the search image memory 182 of FIG. 1B.
  • the search area transfer unit 40 of FIG. 1A is included in the motion vector calculation unit 108 although not explicitly shown in FIG. 1B.
  • the motion vector calculator 50 of FIG. 1A corresponds to the motion vector calculator 181 of FIG. 1B.
  • the decoding unit 60 in FIG. 1A corresponds to the variable-length decoding unit 104, the inverse quantization unit 105, the inverse frequency conversion unit 106, the reconstruction unit 111, and the like in FIG. 1B.
  • FIG. 2 shows the decoding operation of one macroblock.
  • the processes other than the direct mode are the same as those in the H.264 process. Similar to the H.264 standard, in the case of the direct mode, the calculation method shown in Non-Patent Document 3 is used.
  • variable length decoding unit 104 performs variable length decoding on the input encoded stream (S101).
  • the variable-length decoding unit 104 outputs coding information such as macroblock type, intra prediction (intra prediction) mode, motion vector information, quantization parameter, and coefficient information corresponding to each pixel data.
  • the coding information is output to the control unit 101 and then input to each processing unit.
  • the coefficient information is output to the inverse quantization unit 105.
  • the inverse quantization unit 105 performs inverse quantization processing (S102).
  • inverse frequency conversion is performed by the inverse frequency conversion unit 106 (S103).
  • the macroblock to be decoded is an inter macroblock or an intra macroblock (S104).
  • the inter macro block Yes in S104, it is further determined whether or not the direct mode is set (S105). That is, the macroblock to be decoded is the first block encoded without adding information indicating a motion vector used for decoding, or the information is added encoding information indicating a motion vector. Determine whether it is 2 blocks.
  • pixel data of a search area for searching for a motion vector is transferred from the frame memory 103 to the search image memory 182 (S106).
  • the search area is 32 ⁇ 32 pixels
  • the position of the search area in the two reference images is 32 ⁇ 32 pixels around the macro block to be decoded, and the upper left position of the decoded macro block , Y) and a two-dimensional coordinate
  • an area of 32.times.32 pixels whose upper left is the position (x-8, y-8) is a search area.
  • the search region includes a position corresponding to the position of the decoding target macroblock in the decoding target image in the reference image, and points to a region larger than the macroblock.
  • the motion vector operation unit 181 searches for a motion vector to calculate a motion vector (S107).
  • the motion vector search is performed, for example, as follows.
  • the motion vector is calculated by converting the vector into motion vectors mvL0 and mvL1 starting from the decoded macroblock of the decoded picture.
  • the search image memory 182 includes a first search area (an area indicated by a broken line) included in the reference picture L0 preceding the encoded image including the decoding target macroblock in the reproduction order and a reproduction area in the reproduction order.
  • the motion vector computing unit 181 first performs pixel data of a block (search range) in the upper left of the first search area of the reference picture L0 and a block (search range) in the lower right of the second search area of the reference picture L1.
  • the pixel data is read out from the search image memory 182, and the SAD of pixel data of two blocks is calculated.
  • the size of the block read out here is the same as the size of the block to be decoded.
  • the motion vector computing unit 181 repeatedly executes the above process while shifting the search range in the first and second search areas. Then, the motion vector calculation unit 181 calculates a motion vector based on the position of the search range where the calculated SAD is the smallest.
  • the motion vector calculation unit 181 performs motion vector calculation to calculate a motion vector (S108).
  • a motion vector According to the H.264 standard, assuming that the motion vectors in the periphery are mvA, mvB, and mvC, the median value of them is a predicted motion vector. A motion vector is obtained by adding this predicted motion vector and motion vector information (difference value of motion vector) included in the encoded stream.
  • the motion vector obtained here is output to the motion compensation unit 109.
  • pixel data of a reference area (also referred to as "reference image”) indicated by the motion vector is transferred from the frame memory 103 to the reference image memory 192 (S109).
  • the motion compensation operation unit 191 uses the pixel data of the reference area stored in the reference image memory 192, the motion compensation operation unit 191 generates a predicted image with 1/2 pixel accuracy or 1/4 pixel accuracy (S110).
  • the in-plane prediction unit 107 performs in-plane prediction processing to generate a predicted image (S111). This selection as to whether it is an inter-macroblock is performed by the switch 110 in the configuration diagram of FIG. 1B.
  • the reconstructed image is generated by adding the obtained predicted image and the difference image output from the inverse frequency transform unit 106 by the reconstruction unit 111 (S112).
  • the deblocking filter unit 112 performs deblocking filter processing for reducing block noise on the obtained decoded image, and stores the result in the frame memory 103 (S113).
  • FIG. 3A is an inter macro block
  • FIG. 3B is an inter macro block and not a direct mode
  • FIG. 3C is a direct mode. In any case, it operates sequentially in the order of the flowchart of FIG. TS (Time Slot) in the figure indicates the time taken to decode one macroblock, and may vary depending on the macroblock.
  • TS Time Slot
  • the direct mode is an excellent scheme that can improve the compression rate because it does not encode information on motion vectors in the encoded stream.
  • the value of the motion vector may not be optimal depending on the type of image. If not optimum, the code amount of the coefficient information of the encoded stream increases, and as a result, the compression rate decreases. Therefore, by providing two modes, the direct mode and the non-direct mode, it is possible to select and encode a mode with a higher compression rate on the encoding side. As a result, the compression rate can be improved.
  • variable-length codes are used in the first embodiment, any coding method such as Huffman codes, run-length codes, or arithmetic codes may be used.
  • the direct mode is used in the first embodiment, it is assumed that the direct mode is substantially used, such as the skip mode.
  • the processes other than those in the direct mode are H.264.
  • the H.264 standard is the same as the H.264 standard, but any image coding standard such as the MPEG2 standard, the MPEG4 standard, or the VC-1 standard may be used.
  • There are also a plurality of modes in the direct mode one of which uses pixel data of a reference image stored in a frame memory as shown in Non-Patent Document 3 referred to in the first embodiment. It does not matter if it is a method of calculating a motion vector.
  • the method of Non-Patent Document 3 is used, but any method for calculating a motion vector using pixel data of a reference image stored in a frame memory may be used. It may be a method. Further, the search range of the motion vector and the search accuracy are not limited to those in the first embodiment, and may be determined freely. In addition, when a motion vector is searched for and a peripheral pixel is required to calculate a decimal precision position, that portion may be held in the search image memory 182 as well.
  • each processing unit may be realized by a circuit using dedicated hardware or may be realized by a program on a processor.
  • search image memory 182 and the reference image memory 192 are memories, as long as they are storage elements capable of storing data, they may be of another configuration such as a flip flop. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • the motion vector calculation unit is further provided with a search image transfer unit (search area transfer unit). Then, by starting the transfer of the search image before the motion vector calculation process starts, it is possible to eliminate the waiting time. As a result, it is shown that the processing performance can be improved and the transfer bandwidth from the frame memory can be reduced.
  • FIG. 4 is a block diagram of the image decoding apparatus 200 according to the second embodiment.
  • the image decoding apparatus 200 according to the second embodiment includes a search image transfer unit 283 for controlling data transfer from the frame memory 103 to the search image memory 182, and the other components are the same as FIG. 1B in the first embodiment. The same number will be assigned and the description will be omitted.
  • FIG. 5 shows the decoding operation of one macroblock.
  • the processes other than the direct mode are H. Similar to the H.264 standard, in the case of the direct mode, the calculation method shown in Non-Patent Document 3 is used.
  • the search image transfer unit 283 starts processing for transferring pixel data of a search area used for a motion vector search in the direct mode from the frame memory 103 to the search image memory 182 (S200).
  • the search area is 32 ⁇ 32 pixels
  • the position of the search area of the two reference images is 32 ⁇ 32 pixels around the position of the macro block to be decoded, and the upper left position of the macro block to be decoded
  • an area of 32 ⁇ 32 pixels whose upper left is the position of (x ⁇ 8, y ⁇ 8) is a search area.
  • the transfer does not have to be completed.
  • variable length decoding unit 104 performs variable length decoding on the input encoded stream (S201).
  • the variable-length decoding unit 104 outputs coding information such as macroblock type, intra prediction (intra prediction) mode, motion vector information, quantization parameter, and coefficient information corresponding to each pixel data.
  • the coding information is output to the control unit 101 and then input to each processing unit.
  • the coefficient information is output to the next inverse quantization unit 105.
  • inverse quantization processing is performed by the inverse quantization unit 105 (S202).
  • inverse frequency conversion is performed by the inverse frequency conversion unit 106 (S203).
  • the macroblock to be decoded is an inter macroblock or an intra macroblock (S204).
  • the direct mode is set (S205).
  • the motion vector search for the two reference pictures L0 and L1 in the search image memory 182, as shown in FIG. 32, first, the upper left position of the search area of the reference picture L0 and the search area of the reference picture L1. SAD is calculated by comparing with the lower right position of. Next, the reference picture L0 is shifted to the right and the reference picture L1 is shifted to the left, and the SAD is calculated. Thus, the SAD is sequentially calculated, and the position of the smallest SAD is regarded as the most similar position. Then, the motion vector is calculated by converting the vector into motion vectors mvL0 and mvL1 starting from the decoded macroblock of the decoded picture.
  • the motion vector calculation unit 181 performs motion vector calculation to calculate a motion vector (S208).
  • H According to the H.264 standard, assuming that the motion vectors in the periphery are mvA, mvB, and mvC, the median value of them is a predicted motion vector. A motion vector is obtained by adding this predicted motion vector and motion vector information (difference value of motion vector) included in the coded stream.
  • the search image transfer unit 283 may be waited, or interruption may be performed if transfer is not completed.
  • the obtained motion vector is output to the motion compensation unit 109, and the reference image indicated by the motion vector is transferred from the frame memory 103 to the reference image memory 192 (S209). Then, using the reference image stored in the reference image memory 192, the motion compensation operation unit 191 generates a predicted image with 1/2 pixel accuracy or 1/4 pixel accuracy (S210).
  • the in-plane prediction unit 107 performs in-plane prediction processing to generate a predicted image (S211).
  • the search image is not used, so the completion of the transfer of the search image by the search image transfer unit 283 may be waited for, or the transfer may not be completed if the transfer is not completed.
  • the selection as to whether this is an inter macro block is performed by the switch 110 in the configuration diagram of FIG. 4.
  • the reconstructed image is generated by adding the obtained predicted image and the difference image output from the inverse frequency transform unit 106 by the reconstruction unit 111 (S 212).
  • the deblocking filter unit 112 performs deblocking filter processing for reducing block noise on the obtained decoded image, and stores the result in the frame memory 103 (S213).
  • FIG. 6 one representing the operation in the direct mode as a time-series operation is shown in FIG. As shown in FIG. 6, by performing transfer start of the search image before variable length decoding, since transfer is completed before motion vector search, motion vector search can be performed without waiting time. It has become.
  • the transfer of the search image is not necessarily completed before the end of the reverse frequency conversion.
  • the waiting time between the inverse frequency conversion and the motion vector search as compared with the case of FIG. 3C. Is definitely less.
  • the first embodiment in order to improve the performance, it is necessary to shorten the search image transfer time, and the bandwidth indicating the transfer amount per unit time increases.
  • the second embodiment by providing the search image transfer unit 283 and starting the transfer of the search image in advance, the transfer of the search image becomes possible while other processing is being performed, and the transfer is performed. The time can be made longer than in the first embodiment. As a result, the transfer bandwidth from the frame memory 103 can be reduced.
  • variable length code is used in the second embodiment, any coding method such as a Huffman code, a run length code, or an arithmetic code may be used.
  • the notation “direct mode” is used, but it is assumed that the direct mode such as skip mode is substantially used.
  • the processes except for the direct mode are H.264.
  • the H.264 standard is the same as the H.264 standard, but any image coding standard such as the MPEG2 standard, the MPEG4 standard, or the VC-1 standard may be used.
  • There are also a plurality of modes in the direct mode one of which uses pixel data of a reference image stored in the frame memory 103 as shown in Non-Patent Document 3 referred to in the second embodiment. It does not matter if it is a method of calculating the motion vector.
  • Non-Patent Document 3 the method of Non-Patent Document 3 may be used. May be used. Further, the search range of the motion vector and the search accuracy are not limited to those in the second embodiment, and may be determined freely. In addition, when a motion vector is searched for and a peripheral pixel is required to calculate a decimal precision position, that portion may be held in the search image memory 182 as well.
  • each processing unit may be realized by a circuit using dedicated hardware or may be realized by a program on a processor.
  • search image memory 182 and the reference image memory 192 are memories, as long as they are storage elements capable of storing data, they may be of another configuration such as a flip flop. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • timing for starting the transfer of the search image is immediately before the variable length decoding in the second embodiment, it may be any time before the motion vector search. Also, it may be during processing of the immediately preceding macro block.
  • the process of completing or interrupting the transfer of the search image may be performed at any timing as long as it is known that it is not in the direct mode, in the intra macro block or in the case of the inter macro block which is not in the direct mode. By interrupting quickly, it is possible to reduce unnecessary transfer and reduce power consumption.
  • the search image is transferred for each macroblock to be decoded.
  • a search area required for calculating a motion vector of a certain macroblock is shifted to the right by 16 pixels in the next macroblock, and many pixels can be used for the search as they are. Therefore, only the necessary pixels are transferred from the frame memory to the search image memory.
  • the configuration of the image decoding apparatus 200 according to the third embodiment is the same as that of FIG. 4 of the second embodiment, so the description will be omitted.
  • the search image memory 182 continuously stores at least a part of pixel data transferred from the frame memory 103 in the past. Then, the search image transfer unit 283 according to the third embodiment transmits, from the frame memory 103 to the search image memory, only pixel data not stored in the search image memory 182 among the pixel data in the search area of the encoding target macroblock. Transfer to 182 anew. Further, the search image transfer unit 283 deletes, from the search image memory 182, pixel data that is not used to calculate the motion vector of the subsequent macro block among the data of the pixels transferred in the past.
  • the operation of the image decoding apparatus 200 in the third embodiment will be described.
  • the flow of the entire operation is the same as that of FIG. 5 of the second embodiment, so the description is omitted.
  • the processes other than the case of the direct mode are H. Similar to the H.264 standard, in the case of the direct mode, the calculation method shown in Non-Patent Document 3 is used.
  • the difference between the third embodiment and the second embodiment is the transfer range of the search image by the search image transfer unit 283.
  • the search image transfer unit 283 transfers all search images necessary for motion vector search from the frame memory 103 to the search image memory 182.
  • most of the search images overlap with the search image of the immediately preceding macroblock.
  • FIG. 7A shows a search area in the macroblock MBn.
  • the search area is 32 ⁇ 32 pixels, as shown in FIG. 7A, the search area is just up to the center of the neighboring macroblocks.
  • FIG. 7B is a search area of the macroblock MBn + 1 next to the macroblock MBn.
  • FIG. 7C is an enlarged view of a search area of the macroblock MBn and the macroblock MBn + 1 and shown in one figure.
  • the search area can be divided into three areas.
  • the area A is an area required as a search area only in the macroblock MBn.
  • the area B is an area necessary as a search area for both the macroblock MBn and the macroblock MBn + 1.
  • the area C is an area necessary as a search area only in the macroblock MBn + 1. That is, in the motion vector calculation process of the macroblock MBn + 1, the data of the area A is deleted from the areas A and B already transferred to the search image memory 182, and only the data of the area C is searched from the frame memory 103. It is understood that the image data may be transferred to the image memory 182.
  • the transfer amount can be reduced, and the transfer bandwidth can be adjusted. Can be reduced.
  • the notation “direct mode” is used, but it is assumed that the direct mode such as skip mode is substantially used.
  • the processes other than those in the direct mode are H.264.
  • the H.264 standard is the same as the H.264 standard, but any image coding standard such as the MPEG2 standard, the MPEG4 standard, or the VC-1 standard may be used.
  • there are a plurality of modes in the direct mode one of which uses pixel data of a reference image stored in the frame memory 103 as shown in Non-Patent Document 3 referred to in the third embodiment. It does not matter if it is a method of calculating the motion vector.
  • the method of Non-Patent Document 3 may be used. May be used. Further, the search range of the motion vector and the search accuracy are not limited to those of the third embodiment, and may be determined freely. In addition, when a motion vector is searched for and a peripheral pixel is required to calculate a decimal precision position, that portion may be held in the search image memory 182 as well.
  • each processing unit may be realized by a circuit using dedicated hardware or may be realized by a program on a processor.
  • search image memory 182 and the reference image memory 192 are memories, as long as they are storage elements capable of storing data, they may be of another configuration such as a flip flop. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • Embodiment 4 an outline of the image decoding apparatus in the fourth embodiment will be described.
  • the third embodiment among the search images required for motion vector search, only the area not used as the search image of the macroblock decoded immediately before is transferred.
  • the search image used in a macroblock on one macro block is stored in the search image memory, more pixels can be used for the search as they are, only by shifting by 16 pixels below. Therefore, it is shown that the transfer amount can be further reduced and the transfer bandwidth can be reduced more than in the third embodiment by transferring only the necessary pixels from the frame memory to the search image memory.
  • the configuration of the image decoding apparatus 200 of the fourth embodiment is exactly the same as that of FIG. 4 of the second embodiment, so the description will be omitted.
  • the operation of the image decoding apparatus 200 in the fourth embodiment will be described.
  • the flow of the entire operation is the same as that of FIG. 5 of the second embodiment, so the description will be omitted.
  • the processes other than the direct mode are H. Similar to the H.264 standard, in the case of the direct mode, the calculation method shown in Non-Patent Document 3 is used.
  • the difference between the fourth embodiment and the third embodiment is the transfer range of the search image by the search image transfer unit 283.
  • the search image transfer unit 283 extracts only the difference from the search area of the macroblock decoded immediately before the search area out of the search area required for the motion vector search of the macroblock to be decoded from the frame memory 103. It was supposed to be transferred to the search image memory 182. However, in practice, as shown in FIGS. 8A to 8D, most of the search images overlap with the search image of the upper macroblock.
  • FIG. 8A shows a search area in the macroblock MBn.
  • the search area is 32 ⁇ 32 pixels, as shown in FIG. 8A, the search area is as far as the center of the neighboring macroblocks.
  • FIG. 8B is a search area of the macroblock MBn + 8 under the macroblock MBn.
  • FIG. 8C is an enlarged view of a search area of the macroblock MBn and the macroblock MBn + 8 and shown in one figure.
  • the search area can be divided into three areas.
  • the area D is an area required as a search area only in the macroblock MBn.
  • the area E is an area necessary as a search area for both the macroblock MBn and the macroblock MBn + 8.
  • the area F is an area required as a search area only in the macroblock MBn + 8. That is, in the motion vector calculation processing of the macroblock MBn + 8, the data of the area D is deleted from the areas D and E already transferred to the search image memory 182, and only the data of the area F is transferred from the frame memory 103. Know what to do.
  • the area on the left half of the area F in FIG. It has been transferred to the memory 182. Therefore, in order to search for a motion vector of the macroblock MBn + 8, only the right half of the area F may be newly added. Therefore, it can be understood that only the pixel data in this area should be transferred from the frame memory 103.
  • the search image transfer unit 283 corresponds to the lower right corner of the search area.
  • the pixel data of the portion (right half of the area F) is transferred from the frame memory 103 to the search image memory 182, and the pixel data transferred before the portion corresponding to the upper left end of the search region is deleted from the search image memory 182. Just do it.
  • the search image memory 182 needs to hold the pixel data of the search area once held until the lower macroblock uses it, the horizontal size for the image to be decoded as shown in FIG. 8D. Needs a capacity proportional to
  • pixel data of the reference image appears to be transferred from the frame memory 103 or deleted from the search image memory 182 in units of macroblocks, but the present invention is not limited to this. That is, only pixel data of a newly required area may be transferred from the frame memory 103 or all unnecessary pixel data may be deleted from the search image memory 182 without being aware of the boundaries of macro blocks.
  • the transfer amount can be reduced by transferring only the newly required area from the frame memory 103 to the search image memory 182 with the search area shifted in the horizontal and vertical directions, and the transfer bandwidth can also be reduced. It can be reduced together.
  • the direct mode is used in the fourth embodiment, it is assumed that the direct mode is substantially used, such as the skip mode.
  • the processing except for the direct mode is H.264.
  • the H.264 standard is the same as the H.264 standard, but any image coding standard such as the MPEG2 standard, the MPEG4 standard, or the VC-1 standard may be used.
  • There are also a plurality of modes in the direct mode one of which uses pixel data of a reference image stored in the frame memory 103 as shown in Non-Patent Document 3 referred to in the fourth embodiment. It does not matter if it is a method of calculating the motion vector.
  • the method of Non-Patent Document 3 may be used. May be used. Further, the search range of the motion vector and the search accuracy are not limited to those of the fourth embodiment, and may be determined freely. In addition, when a motion vector is searched for and a peripheral pixel is required to calculate a decimal precision position, that portion may be held in the search image memory 182 as well.
  • each processing unit may be realized by a circuit using dedicated hardware or may be realized by a program on a processor.
  • search image memory 182 and the reference image memory 192 are memories, as long as they are storage elements capable of storing data, they may be of another configuration such as a flip flop. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • each process is performed sequentially.
  • the processes are parallelized to improve the performance, and the transfer time of the transfer of the search image from the frame memory 103 to the search image memory 182 is achieved. It is possible to maximize and minimize transfer bandwidth.
  • the configuration of the image decoding apparatus according to the fifth embodiment is the same as that of the second embodiment shown in FIG.
  • FIG. 9 shows a decoding operation of one macro block
  • each processing block performs processing on different macro blocks
  • a processing flow which is partially different from that of the second embodiment is employed It has become.
  • the dotted horizontal lines in the flow chart indicate boundaries of processing stages in which several processes are summarized, and the details will be described later.
  • the processes other than the direct mode are H. Similar to the H.264 standard, in the case of the direct mode, the calculation method shown in Non-Patent Document 3 is used.
  • the search image transfer unit 283 transfers a search image used for searching for a motion vector in the direct mode from the frame memory 103 to the search image memory 182 (S300).
  • the search area is 32 ⁇ 32 pixels
  • the search area of the two reference images is 32 ⁇ 32 pixels around the decoded macro block
  • the position of the upper left of the decoded macro block is two-dimensional as (x, y)
  • an area of 32 ⁇ 32 pixels whose upper left is the position (x ⁇ 8, y ⁇ 8) is a search area.
  • the motion vector search in non-patent document 3 as in Embodiment 2 is the same spatial position as the decoded macroblock as shown in FIG. This is because a search area of 32 ⁇ 32 pixels centered on is searched. Therefore, by variable-length decoding by the variable-length decoding unit 104, a search area is uniquely determined before encoding information or coefficient information included in the encoded stream is decoded, and pixel data of the search area can be transferred. In order to
  • variable length decoding unit 104 performs variable length decoding on the input encoded stream (S301).
  • the variable-length decoding unit 104 outputs coding information such as macroblock type, intra prediction (intra prediction) mode, motion vector information, quantization parameter, and coefficient information corresponding to each pixel data.
  • the coding information is output to the control unit 101 and then input to each processing unit.
  • the inter macro block or intra macro block is determined (S302).
  • the motion vector computing unit 181 searches for a motion vector using the search image in the search image memory 182, and calculates a motion vector (S304).
  • the motion vector search for the two reference pictures L0 and L1 on the search image memory 182, as shown in FIG. 32, first, the upper left position of the search area of the reference picture L0 and the search area of the reference picture L1.
  • the SAD is calculated by comparing with the lower right position.
  • the reference picture L0 is shifted to the right and the reference picture L1 is shifted to the left, and the SAD is calculated.
  • the SAD is sequentially calculated, and the position of the smallest SAD is regarded as the most similar position.
  • the motion vector is calculated by converting the vector into motion vectors mvL0 and mvL1 starting from the decoded macroblock of the decoded picture.
  • the motion vector calculation unit 181 performs motion vector calculation to calculate a motion vector (S305).
  • H According to the H.264 standard, assuming that the motion vectors in the periphery are mvA, mvB, and mvC, the median value of them is a predicted motion vector. A motion vector is obtained by adding this predicted motion vector and motion vector information (difference value of motion vector) included in the encoded stream.
  • inter macro block determination (S302) and the direct mode determination (S303) are written so as to be performed after completion of the variable length decoding process (S301) by the variable length decoding unit 104. It may be determined when necessary coding information is decoded.
  • the inverse quantization unit 105 performs inverse quantization on the coefficient information output from the variable-length decoding unit 104 (S306), and the inverse frequency conversion unit 106 performs inverse frequency conversion (S307).
  • the motion compensation unit 109 transfers the search image from the frame memory 103 to the reference image memory 192 using the motion vector output from the motion vector calculation unit 208 (S309).
  • the motion compensation unit 109 performs motion compensation using the pixel data of the reference area stored in the reference image memory 192 to generate a predicted image (S310).
  • the in-plane prediction unit 107 performs in-plane prediction to generate a predicted image (S311).
  • the reconstructed image is generated by adding the obtained predicted image and the difference image output from the inverse frequency transform unit 106 by the reconstruction unit 111 (S312).
  • the deblocking filter unit 112 performs deblocking filter processing for reducing block noise on the obtained decoded image, and stores the result in the frame memory 103 (S313).
  • search image transfer (S300) is stage 0, and variable length decoding (S301) to the stage before inverse quantization (S306) are stage 1, inverse quantization (S306) and inverse frequency transform (S306).
  • Step S307) is stage 2
  • intra-plane prediction (S311), reference image transfer (S309), motion compensation (S310) and reconstruction processing (S312) is stage 3
  • the deblocking filter (S313) is stage 4.
  • the control unit 101 controls the operation timing of each processing unit so that each of the stages 0 to 4 processes different macroblocks. This operation is described with reference to FIG.
  • TS Time Slot
  • TS indicates a time interval, and is a time unit indicating a processing time required to decode one macroblock.
  • FIG. 10 although it arranges at equal intervals, it does not necessarily need to be equal intervals. Further, in FIG. 10, the macroblocks before the macroblock MBn ⁇ 1 and the macroblock MBn + 3 and later are omitted.
  • stage 0 performs processing on macroblock MBn.
  • stage 0 processes macroblock MBn + 1 and stage 1 processes macroblock MBn. That is, the search image transfer unit 283 is parallel to the operation or search of the motion vector of the nth (n: natural number) macroblock in decoding order among the plurality of macroblocks constituting the encoded image. Then, pixel data of the search area corresponding to the (n + 1) th macroblock is transferred from the frame memory 103 to the search image memory 182.
  • FIG. 11 shows the configuration of a general coded stream.
  • stage 1 after at least the macro block type and the motion vector information in the coding information of FIG. 11 are decoded by variable-length decoding (S301) by the variable-length decoding unit 104, motion vector calculation by the motion vector operation unit 181 (S305) or motion vector search (S304) is in operation.
  • S301 variable-length decoding
  • S305 motion vector operation unit 181
  • S304 motion vector search
  • the motion vector calculation or the motion vector is performed only when it is determined that the decoding target macroblock is encoded in the direct mode based on the macroblock type and the motion vector information stored at the beginning of the encoded stream.
  • the process of searching is started. As a result, it is not necessary to execute unnecessary processing, and power consumption can be reduced.
  • stage 0 processes macroblock MBn + 2
  • stage 1 processes macroblock MBn + 1
  • stage 2 processes macroblock MBn.
  • variable-length codes are used in the fifth embodiment, any coding method such as Huffman codes, run-length codes, or arithmetic codes may be used.
  • the direct mode is used in the fifth embodiment, it is assumed that the direct mode is substantially used, such as the skip mode.
  • the processes other than those in the direct mode are H.264.
  • the H.264 standard is the same as the H.264 standard, but any image coding standard such as the MPEG2 standard, the MPEG4 standard, or the VC-1 standard may be used.
  • There are also a plurality of modes in the direct mode one of which uses pixel data of a reference image stored in the frame memory 103 as shown in Non-Patent Document 3 referred to in the fifth embodiment. It does not matter if it is a method of calculating the motion vector.
  • the method of Non-Patent Document 3 may be used. May be used. Further, the search range of the motion vector and the search accuracy are not limited to the fifth embodiment, and may be determined freely. In addition, when a motion vector is searched for and a peripheral pixel is required to calculate a decimal precision position, that portion may be held in the search image memory 182 as well.
  • each processing unit may be realized by a circuit using dedicated hardware or may be realized by a program on a processor.
  • search image memory 182 and the reference image memory 192 are memories, as long as they are storage elements capable of storing data, they may be of another configuration such as a flip flop. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • stage division of the process in the fifth embodiment is an example, and is not limited to this division method, and can be freely selected according to the characteristics of the process.
  • the configuration of the image decoding apparatus 300 according to the sixth embodiment is shown in FIG.
  • the image decoding apparatus 300 according to the sixth embodiment includes a motion vector search unit (corresponding to the motion vector calculator 50 in FIG. 1B) 384 for searching for a motion vector using a reference image in the direct mode, and other than the direct mode. And a switch 385 that switches between the motion vector output from the motion vector operation unit 381 and the motion vector output from the motion vector search unit 384.
  • the other components are the same as those in FIG. 4 of the second embodiment, so the same reference numerals are given and the description is omitted.
  • FIG. 13 shows the decoding operation of one macro block.
  • a motion vector search unit 384 is newly added, so the processing flow is partially different from that of the fifth embodiment.
  • the dotted horizontal lines in the flowchart indicate the boundaries of the processing stages, which will be described in detail later.
  • the processes other than the case of the direct mode are the same as those in the H.264 process. Similar to the H.264 standard, in the case of the direct mode, the calculation method shown in Non-Patent Document 3 is used.
  • the search image transfer unit 283 transfers a search image used for searching for a motion vector in the direct mode from the frame memory 103 to the search image memory 182 (S400).
  • the search area is 32 ⁇ 32 pixels
  • the positions of the search areas of the two reference images are 32 ⁇ 32 pixels around the decoded macro block, and the upper left position of the decoded macro block is (x, y).
  • an area of 32 ⁇ 32 pixels whose upper left is the position (x ⁇ 8, y ⁇ 8) is a search area.
  • the motion vector search in non-patent document 3 as in Embodiment 2 is the same spatial position as the decoded macroblock as shown in FIG. Search for a search area of 32x32 pixels centered on. Therefore, by variable-length decoding by the variable-length decoding unit 104, a search area is uniquely determined before encoding information or coefficient information included in the encoded stream is decoded, and pixel data of the search area can be transferred. Become.
  • the motion vector search unit 384 searches for a motion vector (S401).
  • the reason why motion vector search is possible at the beginning of other processing is the same reason that transfer can be performed by the search image transfer unit 283 described above, and the pixel data of the search area is stored in the search image memory 182. For example, the motion vector can be searched.
  • variable length decoding unit 104 performs variable length decoding on the input encoded stream (S402).
  • the variable-length decoding unit 104 outputs coding information such as macroblock type, intra prediction (intra prediction) mode, motion vector information, quantization parameter, and coefficient information corresponding to each pixel data.
  • the coding information is output to the control unit 101 and then input to each processing unit.
  • the motion vector calculation unit 381 performs motion vector calculation to calculate a motion vector (S404).
  • H According to the H.264 standard, assuming that the motion vectors in the periphery are mvA, mvB, and mvC, the median value of them is a predicted motion vector. A motion vector is obtained by adding this predicted motion vector and motion vector information (difference value of motion vector) included in the coded stream.
  • the inverse quantization unit 105 performs inverse quantization on the coefficient information output from the variable-length decoding unit 104 (S405), and the inverse frequency conversion unit 106 performs inverse frequency conversion (S406).
  • the pixel data of the reference area is transferred from the frame memory 103 to the reference image memory 192 using the motion vector selected by the switch 385 in the motion compensation unit 109 (S409).
  • the switch 385 selects the motion vector output from the motion vector search unit 384 in the direct mode, and the motion vector output from the motion vector calculation unit 381 in the direct mode. It selects and outputs (S408).
  • the motion compensation unit 109 performs motion compensation using the pixel data of the reference area stored in the reference image memory 192, and generates a predicted image (S410).
  • the in-plane prediction unit 107 performs in-plane prediction to generate a predicted image (S411).
  • the reconstructed image is generated by adding the obtained predicted image and the difference image output from the inverse frequency transform unit 106 by the reconstruction unit 111 (S412).
  • the deblocking filter unit 112 performs deblocking filter processing for reducing block noise on the obtained decoded image, and stores the result in the frame memory 103 (S413).
  • search image transfer is stage 0
  • motion vector search to the stage before inverse quantization (S405) are stage 1
  • inverse quantization S405)
  • inverse frequency transform S405)
  • S406 is stage 2
  • intra-plane prediction S411
  • reference image transfer S409
  • motion compensation S410
  • reconstruction processing S411
  • deblocking filter S412
  • the control unit 101 controls the operation timing of each processing unit so that each of the stages 0 to 4 processes different macroblocks. This operation is described with reference to FIG.
  • TS Time Slot
  • FIG. 14 although it arranges at equal intervals, it does not necessarily need to be equal intervals.
  • the macroblocks before the macroblock MBn ⁇ 1 and the macroblock MBn + 3 and later are omitted.
  • stage 0 performs processing on macroblock MBn.
  • stage 0 processes macroblock MBn + 1 and stage 1 processes macroblock MBn.
  • the motion vector search process (S304) by the motion vector calculation unit 181 is performed during the variable length decoding (S301) by the variable length decoding unit 104, that is, the macroblock type and motion vector information
  • the stage 1 of FIG. 14 is different from the stage 1 of FIG. 14 in that the motion vector search (S401) is performed by the motion vector search unit 384 on the macroblock MBn immediately after the start of TSn + 1. There is. That is, processing of motion vector calculation or motion vector search is started without determining whether the decoding target macroblock is in the direct mode.
  • stage 0 processes macroblock MBn + 2
  • stage 1 processes macroblock MBn + 1
  • stage 2 processes macroblock MBn.
  • the motion vector search unit 384 is operated before the variable length decoding unit 104 decodes the macro block type and the like. After that, the switch 385 switches between the motion vector output from the motion vector search unit 384 and the motion vector output from the motion vector calculation unit 381 to eliminate idle time when the motion vector search unit 384 can not operate, thereby efficiently performing calculation. become able to.
  • variable-length code is used in the sixth embodiment, any coding method such as Huffman code, run-length code, or arithmetic code may be used.
  • the notation “direct mode” is used, but it is assumed that the direct mode such as skip mode is substantially used.
  • the processing except for the direct mode is H.264.
  • the H.264 standard is the same as the H.264 standard, but any image coding standard such as the MPEG2 standard, the MPEG4 standard, or the VC-1 standard may be used.
  • there are a plurality of modes in the direct mode one of which uses pixel data of a reference image stored in the frame memory 103 as shown in Non-Patent Document 3 referred to in the sixth embodiment. It does not matter if it is a method of calculating the motion vector.
  • the method of Non-Patent Document 3 may be used. May be used. Further, the search range of the motion vector and the search accuracy are not limited to those in the sixth embodiment, and may be determined freely. In addition, when a motion vector is searched for and a peripheral pixel is required to calculate a decimal precision position, that portion may be held in the search image memory 182 as well.
  • each processing unit may be realized by a circuit using dedicated hardware or may be realized by a program on a processor.
  • search image memory 182 and the reference image memory 192 are memories, as long as they are storage elements capable of storing data, they may be of another configuration such as a flip flop. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • stage division of the process in the sixth embodiment is an example, and is not limited to this division method, and can be freely selected according to the characteristics of the process.
  • the motion vector search unit 384 always operates until the motion vector is calculated, it is understood that the motion vector search unit 384 does not actually use the motion vector. Control may be performed to stop the calculation.
  • the search image memory for motion vector search and the reference image memory for motion compensation are not connected. That is, the motion compensation unit always transfers pixel data of the reference area from the frame memory to the reference image memory to perform motion compensation processing.
  • the seventh embodiment using the fact that the reference image used in the motion compensation processing already exists in the search image memory in the direct mode, reference is made from the search image memory in the direct mode. Get an image. This shows that useless transfer can be reduced and the transfer amount can be reduced.
  • the configuration of the image decoding apparatus 400 of the seventh embodiment is shown in FIG.
  • the image decoding apparatus 400 according to the seventh embodiment transfers pixel data of the reference area from the frame memory 103 to the reference image memory (third storage unit) 192, or transmits pixel data of the reference area from the search image memory 182 to the reference image.
  • a switch (reference area transfer unit) 493 that switches whether to transfer data to the memory 192 is provided.
  • the other components are the same as those in FIG. 12 of the sixth embodiment, so the same reference numerals are assigned and the description will be omitted.
  • FIG. 15 is the same as that of FIG. 13 which is the flowchart of the sixth embodiment, but the operation of reference image transfer (S409) in FIG. 13 is different. This will be described in detail using the flowchart shown.
  • the processes other than the case of the direct mode are the same as those in the H.264 process. Similar to the H.264 standard, in the case of the direct mode, the calculation method shown in Non-Patent Document 3 is used.
  • the switch 493 is switched to transfer pixel data of the reference area from the search image memory 182 to the reference image memory 192 (S502).
  • the other processing is the same as that of the fifth embodiment, and thus the description thereof is omitted.
  • the direct mode is used in the seventh embodiment, it is assumed that the direct mode is substantially used, such as the skip mode.
  • the processing except for the direct mode is H.264.
  • the H.264 standard is the same as the H.264 standard, but any image coding standard such as the MPEG2 standard, the MPEG4 standard, or the VC-1 standard may be used.
  • there are a plurality of modes in the direct mode one of which uses pixel data of a reference image stored in the frame memory 103 as shown in Non-Patent Document 3 referred to in the seventh embodiment. It does not matter if it is a method of calculating the motion vector.
  • the method of Non-Patent Document 3 may be used. May be used. Further, the search range of the motion vector and the search accuracy are not limited to those of the seventh embodiment, and may be determined freely. In addition, when a motion vector is searched for and a peripheral pixel is required to calculate a decimal precision position, that portion may be held in the search image memory 182 as well.
  • each processing unit may be realized by a circuit using dedicated hardware or may be realized by a program on a processor.
  • search image memory 182 and the reference image memory 192 are memories, as long as they are storage elements capable of storing data, they may be of another configuration such as a flip flop. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • the motion compensation operation unit 191 directly accesses the search image memory 182, reads the reference image, and performs the operation of motion compensation. May be
  • motion compensation processing is performed by transferring data from the search image memory to the reference image memory only in the direct mode.
  • it is determined whether or not the reference image pointed to by the motion vector exists in the search image memory, including the case where it is not the direct mode. Then, in the case of the search image memory, the reference image is acquired from the search image memory. This shows that useless transfer can be reduced and the transfer amount can be reduced.
  • the configuration of the image decoding apparatus 500 of the eighth embodiment is shown in FIG.
  • the image decoding apparatus 500 according to the eighth embodiment includes a motion vector determination unit 513 that determines whether or not the reference image pointed to by the motion vector is in the search image memory 182.
  • the other components are the same as in FIG. 15 of the seventh embodiment, so the same reference numerals will be assigned and description thereof will be omitted.
  • FIG. 17 is the same as that of FIG. 13 which is the flowchart of the sixth embodiment, but the operation of reference image transfer (S409) in FIG. 13 is different. This will be described in detail using the flowchart shown.
  • the processes other than the case of the direct mode are the same as those in the H.264 process. Similar to the H.264 standard, in the case of the direct mode, the calculation method shown in Non-Patent Document 3 is used.
  • the motion vector determination unit 513 determines whether or not the reference image pointed by the motion vector calculated by the motion vector calculation unit 308 exists in the search image memory 182. It judges (S601). If a reference image exists on the search image memory 182 (Yes in S601), the switch 493 transfers the reference image from the search image memory 182 to the reference image memory 192 (S602). In the direct mode, the motion vector determination unit 513 determines that the reference image is always present on the search image memory 182.
  • the motion vector determination unit 513 determines that the reference image does not exist on the search image memory 182 (No in S601), the motion image is transferred from the frame memory 103 to the reference image memory 192.
  • the direct mode is used in the eighth embodiment, it is assumed that the direct mode is substantially used, such as the skip mode.
  • the processing except for the direct mode is H.264.
  • the H.264 standard is the same as the H.264 standard, but any image coding standard such as the MPEG2 standard, the MPEG4 standard, or the VC-1 standard may be used.
  • There are also a plurality of modes in the direct mode one of which uses pixel data of a reference image stored in the frame memory 103 as shown in Non-Patent Document 3 referred to in the eighth embodiment. It does not matter if it is a method of calculating the motion vector.
  • Non-Patent Document 3 how to calculate the motion vector using the pixel data of the reference image stored in the frame memory 103? May be used.
  • the search range of the motion vector and the search accuracy are not limited to the eighth embodiment, and may be determined freely.
  • that portion may be held in the search image memory 182 as well.
  • each processing unit may be realized by a circuit using dedicated hardware or may be realized by a program on a processor.
  • search image memory 182 and the reference image memory 192 are memories, as long as they are storage elements capable of storing data, they may be of another configuration such as a flip flop. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • the motion compensation operation unit 191 directly accesses the search image memory 182, reads the reference image, and performs operation of motion compensation. May be
  • the search image memory is difficult to realize because writing to the search image memory from the frame memory, reading to the reference image memory, reading by the motion vector search unit and access are concentrated There is a case.
  • the area not used in the current search among the pixel data read out from the frame memory is arranged in the separately provided shared memory, so that the search area necessary for decoding the current macro block is obtained. Only the pixel data of are arranged in the search image memory. This reduces access to the search image memory and facilitates the configuration of the search image memory.
  • the configuration of the image decoding apparatus 600 of the ninth embodiment is shown in FIG.
  • the image decoding apparatus 600 in the ninth embodiment includes a shared memory 614 having a larger storage capacity than the search image memory 182.
  • the other components are the same as in FIG. 17 of the eighth embodiment, so the same reference numerals will be assigned and description thereof will be omitted.
  • the image decoding apparatus 600 includes a search image memory (search area storage unit) 182 directly accessed by the motion vector search unit 384 and a search area stored in the search image memory 182, and A shared memory 614 (wide area storage unit) 614 storing pixel data of an area wider than the search area in the reference image. Then, the switch 493 transfers the pixel data of the reference area from the shared memory 614 to the reference image memory 192.
  • search image memory search area storage unit
  • a shared memory 614 wide area storage unit 614 storing pixel data of an area wider than the search area in the reference image.
  • FIG. 19 is the same as FIG. 13 which is the flowchart of the sixth embodiment, but the operation of search image transfer (S400) and reference image transfer (S409) in FIG. Is different.
  • the processes other than the case of the direct mode are the same as those in the H.264 process. Similar to the H.264 standard, in the case of the direct mode, the calculation method shown in Non-Patent Document 3 is used.
  • search image transfer (S400) in FIG. 13 will be described using the flowchart shown in FIG.
  • the search image transfer unit 283 transfers pixel data of the search area from the frame memory 103 to the shared memory 614 (S701).
  • the shared memory 614 holds all areas that can also be used when searching for the lower macroblock. Therefore, the shared memory 614 needs a capacity proportional to the horizontal size of the corresponding image size.
  • the search image transfer unit 283 transfers only pixel data of the search area used by the motion vector search unit 384 from the shared memory 614 to the search image memory 182 (S702). As shown in FIG. 21B, since the search image memory 182 holds only the search area necessary for the macro block, the capacity of the search image memory 182 can be reduced.
  • the motion vector determination unit 513 causes the reference image (that is, reference region) pointed to by the motion vector calculated by the motion vector calculation unit 308 to be shared memory 614. It is determined whether it exists (S801). If a reference image exists on the shared memory 614 (Yes in S801), the switch 493 transfers the reference image to the reference image memory 192 from the shared memory 614 (S802). In the direct mode, the motion vector determination unit 513 determines that the reference image is always present on the shared memory 614.
  • the motion vector determination unit 513 determines that the reference image does not exist on the shared memory 614 (No in S801), the motion image is transferred from the frame memory 103 to the reference image memory 192.
  • the search image memory 182 only needs to correspond to reading from the motion vector search unit 384 having a large access amount and writing from the shared memory 614. It will be easier.
  • the direct mode is used in the ninth embodiment, it is assumed that the direct mode is substantially used such as the skip mode.
  • the processing other than that in the direct mode is H.264.
  • the H.264 standard is the same as the H.264 standard, but any image coding standard such as the MPEG2 standard, the MPEG4 standard, or the VC-1 standard may be used.
  • There are also a plurality of modes in the direct mode one of which uses pixel data of a reference image stored in the frame memory 103 as shown in Non-Patent Document 3 referred to in the ninth embodiment. It does not matter if it is a method of calculating the motion vector.
  • the method of Non-Patent Document 3 may be used. May be used. Further, the search range of the motion vector and the search accuracy are not limited to those in the ninth embodiment, and may be determined freely. In addition, when a motion vector is searched for and a peripheral pixel is required to calculate a decimal precision position, that portion may be held in the search image memory 182 as well.
  • each processing unit may be realized by a circuit using dedicated hardware or may be realized by a program on a processor.
  • search image memory 182 the reference image memory 192 and the shared memory 614 are memories, they may be of other configurations such as flip-flops as long as they are storage elements capable of storing data. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • transfer is performed from the shared memory 614 to the reference image memory 192.
  • the motion compensation operation unit 191 directly accesses the shared memory 614 and reads the reference image to perform the operation of motion compensation. Good.
  • the storage medium may be a magnetic disk, an optical disk, a magneto-optical disk, an IC card, a semiconductor memory, or the like as long as the program can be recorded.
  • FIG. 23 is a diagram showing an overall configuration of a content supply system ex100 for realizing content distribution service.
  • the area for providing communication service is divided into desired sizes, and base stations ex106 to ex110, which are fixed wireless stations, are installed in each cell.
  • the content supply system ex100 includes a computer ex111, a personal digital assistant (PDA) ex112, a camera ex113, a mobile phone ex114, and a game machine ex115 via the Internet service provider ex102 and the telephone network ex104 and the base stations ex106 to ex110 on the Internet ex101. Each device such as is connected.
  • PDA personal digital assistant
  • each device may be directly connected to the telephone network ex104 without passing through the base stations ex106 to ex110, which are fixed wireless stations.
  • the devices may be directly connected to each other via near field communication or the like.
  • the camera ex113 is a device capable of shooting moving images such as a digital video camera
  • the camera ex116 is a device capable of shooting still images and moving images such as a digital camera.
  • the cellular phone ex114 is a GSM (Global System for Mobile Communications) system, a CDMA (Code Division Multiple Access) system, a W-CDMA (Wideband-Code Division Multiple Access) system, or an LTE (Long Term Evolution) system, HSPA ( It may be a High Speed Packet Access mobile phone, a PHS (Personal Handyphone System), or the like.
  • live distribution and the like become possible by connecting the camera ex113 and the like to the streaming server ex103 through the base station ex109 and the telephone network ex104.
  • live distribution encoding processing is performed on content (for example, video of music live, etc.) captured by the user using the camera ex113 as described in the above embodiments, and the encoded content is transmitted to the streaming server ex103.
  • the streaming server ex 103 streams the content data transmitted to the requested client.
  • the clients include the computer ex111, the PDA ex112, the camera ex113, the mobile phone ex114, the game machine ex115 and the like capable of decoding the above-mentioned encoded data.
  • Each device that has received the distributed data decrypts and reproduces the received data.
  • encoding processing of captured data may be performed by the camera ex 113, may be performed by the streaming server ex 103 that performs data transmission processing, or may be performed sharing each other.
  • the decryption processing of similarly distributed data may be performed by the client, may be performed by the streaming server ex 103, or may be performed sharing each other.
  • not only the camera ex113 but also still images and / or moving image data captured by the camera ex116 may be transmitted to the streaming server ex103 via the computer ex111.
  • the encoding process in this case may be performed by any of the camera ex 116, the computer ex 111, and the streaming server ex 103, or may be performed sharing each other.
  • these encoding / decoding processes are generally processed in the LSI ex 500 that the computer ex 111 or each device has.
  • the LSI ex 500 may be a single chip or a plurality of chips. Even if software for moving image encoding / decoding is incorporated in any recording medium (CD-ROM, flexible disk, hard disk, etc.) readable by computer ex111 etc., the encoding / decoding processing is performed using that software. Good.
  • moving image data acquired by the camera may be transmitted. The moving image data at this time is data encoded by the LSI ex 500 included in the mobile phone ex 114.
  • the streaming server ex103 may be a plurality of servers or a plurality of computers, and may process, record, or distribute data in a distributed manner.
  • the client can receive and reproduce the encoded data.
  • the client can receive, decode, and reproduce the information transmitted by the user in real time, and even a user who does not have special rights or facilities can realize personal broadcasting.
  • the present invention is not limited to the example of the content supply system ex100, and as shown in FIG. 24, incorporating at least one of the moving image encoding device and the moving image decoding device of each of the above embodiments into the digital broadcasting system ex200.
  • a bit stream of video information is transmitted to the communication or broadcast satellite ex202 via radio waves.
  • This bit stream is a coded bit stream coded by the moving picture coding method described in each of the above embodiments.
  • the broadcast satellite ex202 receiving this transmits a radio wave for broadcasting, and this radio wave is received by a home antenna ex204 capable of receiving satellite broadcasting.
  • a device such as a television (receiver) ex300 or a set top box (STB) ex217 decodes and reproduces the received bit stream.
  • the image decoding apparatus shown in the above-described embodiment can also be mounted on the reproduction apparatus ex 212 that reads and decodes the bit stream recorded on the storage medium ex 214 such as a CD or DVD as a recording medium.
  • the reproduced video signal is displayed on the monitor ex 213.
  • the moving picture decoding shown in each of the above embodiments is also applied to a reader / recorder ex 218 which reads and decodes a coded bit stream recorded on a recording medium ex 215 such as DVD or BD, or codes and writes a video signal on the recording medium ex 215
  • a reader / recorder ex 218 which reads and decodes a coded bit stream recorded on a recording medium ex 215 such as DVD or BD, or codes and writes a video signal on the recording medium ex 215
  • the reproduced video signal is displayed on the monitor ex 219, and the video signal can be reproduced in another apparatus or system by the recording medium ex 215 on which the encoded bit stream is recorded.
  • the moving picture decoding apparatus may be mounted in the set top box ex217 connected to the cable ex203 for cable television or the antenna ex204 for satellite / terrestrial broadcast, and this may be displayed on the monitor ex219 of the television. At this time, the moving picture decoding apparatus may be incorporated in the television instead of the set top box.
  • FIG. 25 is a diagram showing a television (receiver) ex300 that uses the image decoding method described in each of the above embodiments.
  • the television ex300 acquires tuners ex301 for acquiring or outputting a bit stream of video information via the antenna ex204 for receiving the broadcast, the cable ex203 or the like, and encoded data for demodulating received encoded data or for transmitting it to the outside And a multiplexer / demultiplexer ex303 for multiplexing the demodulated video data and audio data, or for multiplexing the encoded video data and audio data.
  • the television ex300 decodes the audio data and the video data, or the audio signal processing unit ex304 that encodes each information, a signal processing unit ex306 having the video signal processing unit ex305, and outputs the decoded audio signal.
  • the television ex300 includes an interface unit ex317 including an operation input unit ex312 and the like that receive an input of a user operation.
  • the television ex300 includes a control unit ex310 that centrally controls each unit, and a power supply circuit unit ex311 that supplies power to each unit.
  • the interface unit ex317 is, besides the operation input unit ex312, a bridge ex313 connected to an external device such as a reader / recorder ex218, a slot unit ex314 for enabling attachment of a recording medium ex216 such as an SD card, external recording such as a hard disk It may have a driver ex 315 for connecting to a medium, a modem ex 316 connected to a telephone network, and the like. Note that the recording medium ex216 can electrically record information by a nonvolatile / volatile semiconductor memory element to be stored.
  • the components of the television ex300 are connected to one another via a synchronization bus.
  • the television ex300 decodes data acquired from the outside with the antenna ex204 and the like and reproduces the data.
  • the television ex300 receives the user operation from the remote controller ex220 and the like, and demultiplexes the video data and audio data demodulated by the modulation / demodulation unit ex302 by the multiplexing / demultiplexing unit ex303 based on the control of the control unit ex310 having a CPU etc. .
  • the television ex300 decodes the separated audio data by the audio signal processing unit ex304, and decodes the separated video data by the video signal processing unit ex305 using the decoding method described in each of the above embodiments.
  • the decoded audio signal and video signal are output from the output unit ex309 to the outside.
  • these signals may be temporarily stored in the buffers ex318, ex319, etc. so that the audio signal and the video signal are reproduced synchronously.
  • the television ex300 may read the encoded bit stream not from the broadcast or the like, but from the recording media ex215 and ex216 such as a magnetic / optical disc and an SD card. Next, a configuration will be described in which the television ex300 encodes an audio signal or a video signal and externally transmits the signal or writes the signal to a recording medium or the like.
  • the television ex300 receives the user operation from the remote controller ex220 and the like, and based on the control of the control unit ex310, encodes the audio signal by the audio signal processing unit ex304, and the video signal processing unit ex305 executes the video signal in each of the above embodiments. Coding is performed using the coding method described above.
  • the encoded audio signal and video signal are multiplexed by multiplexer / demultiplexer ex303 and output to the outside. At the time of multiplexing, these signals may be temporarily stored in the buffers ex320, ex321, etc. so that the audio signal and the video signal are synchronized.
  • a plurality of buffers ex318 to ex321 may be provided as illustrated, or one or more buffers may be shared.
  • data may be stored in a buffer as a buffer material to avoid system overflow and underflow, for example, between the modulation / demodulation unit ex302 and the multiplexing / demultiplexing unit ex303.
  • television ex300 In addition to acquiring audio data and video data from broadcasts and recording media, etc., television ex300 is also configured to receive AV input from a microphone or a camera, and performs encoding processing on data acquired from them. It is also good. Although television ex300 is described here as a configuration capable of the above encoding processing, multiplexing, and external output, such processing can not be performed, and a configuration capable of only the above reception, decoding processing, and external output It may be
  • the decoding process or the encoding process may be performed by either the television ex300 or the reader / recorder ex218, and the television ex300 and The reader / recorder ex 218 may share each other.
  • FIG. 26 shows a configuration of an information reproducing / recording unit ex400 in the case of reading or writing data from an optical disc.
  • the information reproducing / recording unit ex400 includes elements ex401 to ex407 described below.
  • the optical head ex401 irradiates a laser spot on the recording surface of the recording medium ex215 which is an optical disk to write information, detects reflected light from the recording surface of the recording medium ex215, and reads the information.
  • the modulation recording unit ex402 electrically drives the semiconductor laser incorporated in the optical head ex401 and modulates the laser light according to the recording data.
  • the reproduction / demodulation unit ex403 amplifies the reproduction signal obtained by electrically detecting the reflected light from the recording surface by the photodetector incorporated in the optical head ex401, separates and demodulates the signal component recorded in the recording medium ex215, and Play back information.
  • the buffer ex 404 temporarily holds information to be recorded on the recording medium ex 215 and information reproduced from the recording medium ex 215.
  • the disk motor ex405 rotates the recording medium ex215.
  • the servo control unit ex406 moves the optical head ex401 to a predetermined information track while controlling the rotational drive of the disk motor ex405, and performs the laser spot tracking process.
  • the system control unit ex407 controls the entire information reproducing / recording unit ex400.
  • the system control unit ex407 uses various information held in the buffer ex404, and generates / adds new information as necessary.
  • the modulation recording unit ex402 and the reproduction / demodulation unit This is realized by performing recording and reproduction of information through the optical head ex401 while cooperatively operating the servo control unit ex406.
  • the system control unit ex 407 is configured by, for example, a microprocessor, and executes the processing of reading and writing by executing the program.
  • the optical head ex401 may be configured to perform higher-density recording using near-field light.
  • FIG. 27 shows a schematic view of the recording medium ex 215 which is an optical disc.
  • a guide groove (groove) is formed in a spiral shape on the recording surface of the recording medium ex215, and in the information track ex230, address information indicating the absolute position on the disc is recorded in advance by the change of the groove shape.
  • the address information includes information for specifying the position of the recording block ex231, which is a unit for recording data, and the apparatus for recording and reproduction reproduces the information track ex230 and reads the address information to specify the recording block.
  • the recording medium ex215 includes a data recording area ex233, an inner circumference area ex232, and an outer circumference area ex234.
  • An area used to record user data is data recording area ex233, and inner circumference area ex232 and outer circumference area ex234 arranged on the inner circumference or the outer circumference of data recording area ex233 are used for specific applications other than user data recording. Used.
  • the information reproducing / recording unit ex400 reads / writes encoded audio data, video data, or encoded data obtained by multiplexing those data from / to the data recording area ex233 of such a recording medium ex215.
  • an optical disc such as a single layer DVD or BD has been described as an example, but the optical disc is not limited to these, and may be an optical disc having a multilayer structure and capable of recording other than the surface.
  • an optical disc with multi-dimensional recording / reproduction such as recording information in the same place of the disc using light of colors of different wavelengths, recording layers of different information from various angles, etc. It may be
  • the digital broadcasting system ex200 it is possible to receive data from the broadcast satellite ex202 and the like by the car ex210 having the antenna ex205 and reproduce a moving image on a display device such as a car navigation system ex211 which the car ex210 has.
  • the configuration of the car navigation system ex211 may be, for example, the configuration shown in FIG. 25 to which a GPS reception unit is added, and the same may be considered for the computer ex111, the mobile phone ex114, and the like.
  • terminals such as the above-mentioned mobile phone ex114 etc. are three types, that is, a transmitting terminal with only an encoder and a receiving terminal with only a decoder, in addition to a transceiving type terminal having both an encoder The implementation style of can be considered.
  • FIG. 28 shows a mode in which the image decoding apparatus shown in Embodiment 1 is realized as an LSI, which is typically a semiconductor integrated circuit.
  • the bit stream buffer 102 and the frame memory 103 are implemented on a DRAM, and other circuits and memories are configured on an LSI.
  • an LSI may be called an IC, a system LSI, a super LSI, or an ultra LSI depending on the degree of integration.
  • the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible.
  • a field programmable gate array FPGA
  • a reconfigurable processor that can reconfigure connection and setting of circuit cells in the LSI may be used.
  • a semiconductor chip on which the image decoding apparatus of the present embodiment is integrated and a display for drawing an image can be combined to configure a drawing device according to various applications.
  • the present invention can be used as an information drawing means in a mobile phone, a television, a digital video recorder, a digital video camera, a car navigation, and the like.
  • the display may be combined with a cathode ray tube (CRT), a liquid crystal, a flat display such as a PDP (plasma display panel), an organic EL, a projection display represented by a projector, or the like.
  • the present embodiment shows the configuration of the system LSI and the dynamic random access memory (DRAM), the present embodiment may be configured with other storage devices such as an eDRAM (embeded DRAM), a static random access memory (SRAM) and a hard disk. I do not mind.
  • eDRAM embeded DRAM
  • SRAM static random access memory
  • FIG. 29 shows a configuration of an LSI ex 500 formed into one chip.
  • the LSI ex 500 includes elements ex 502 to ex 509 described below, and the elements are connected via the bus ex 510.
  • the power supply circuit unit ex505 starts up to an operable state by supplying power to each unit when the power is on.
  • the LSI ex 500 under the control of the CPU ex 502, performs encoded data obtained from the base station ex 107 by the stream I / O ex 506 or encoded data obtained by reading from the recording medium ex 215 Once stored in the memory ex511 or the like. Based on the control of the CPU ex 502, the accumulated data is divided into plural times according to the processing amount and processing speed etc. and sent to the signal processing unit ex 507.
  • the signal processing unit ex 507 decodes audio data and / or decodes video data Is done.
  • the video signal decoding process is the decoding process described in each of the above embodiments.
  • the decoded output signal is output from the AVI / O ex 509 to the monitor ex 219 or the like via the memory ex 511 or the like as appropriate.
  • the memory controller ex503 is used.
  • the memory ex 511 has been described as an external configuration of the LSI ex 500, but may be included in the LSI ex 500.
  • the LSI ex 500 may be integrated into one chip or a plurality of chips.
  • LSI LSI
  • IC system LSI
  • super LSI ultra LSI
  • the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible.
  • a programmable field programmable gate array FPGA
  • a reconfigurable processor that can reconfigure connection and setting of circuit cells in the LSI may be used.
  • the image decoding apparatus of the present invention can be used for various applications. For example, it can be used for high-resolution information display devices and imaging devices such as televisions, digital video recorders, car navigation systems, mobile phones, digital cameras, digital video cameras, etc., and has high utility value.
  • high-resolution information display devices and imaging devices such as televisions, digital video recorders, car navigation systems, mobile phones, digital cameras, digital video cameras, etc., and has high utility value.

Abstract

 画像復号装置(100)は、既に復号された画像であって、ブロックを復号する際に参照される参照画像の画素データを記憶する第1の記憶部(20)と、第1の記憶部(20)より記憶容量が小さく、且つ第1の記憶部(20)よりデータの読み出し速度が速い第2の記憶部(30)と、参照画像の一部の領域であって、ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、第1の記憶部(20)から第2の記憶部(30)に転送する探索領域転送部(40)と、第2の記憶部(30)から探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、ブロックの動きベクトルを算出する動きベクトル演算部(50)と、動きベクトル演算部(50)で算出された動きベクトルを用いて、ブロックを復号する復号部(60)とを備える。

Description

復号装置、復号方法、プログラム、及び集積回路
 本発明は、符号化された画像を復号する画像復号装置及び画像復号方法に関するもので、特に、復号した画像の相関探索を行う画像復号装置及び画像復号方法に関するものである。
 動画像を符号化する画像符号化装置は、動画像を構成する各ピクチャを16x16画素からなるマクロブロックに分割し、マクロブロックごとに符号化する。そして、画像符号化装置は、動画像を符号化し圧縮した符号化ストリームを生成する。画像復号装置では、この符号化ストリームをマクロブロック単位に復号し、元の動画像の各ピクチャを再生する。
 従来の画像符号化方式の1つとしてITU-T H.264規格がある(例えば、非特許文献1及び非特許文献2を参照)。H.264規格に対応した画像復号装置は、図30に示すように、まず、ビットストリームバッファ702から符号化ストリームを読み込み、可変長復号部704で可変長復号され、マクロブロック種別、面内予測(イントラ予測)モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部701に渡され、各処理部で必要な形式に変換される。
 係数情報は、逆量子化部705で逆量子化され、逆周波数変換部706でマクロブロック種別に応じた方法で逆周波数変換される。マクロブロック種別がイントラマクロブロックの場合は、面内予測部707で、面内予測モードに応じた予測画像の生成が行われる。一方、マクロブロック種別がインターマクロブロックの場合は、動きベクトル算出部708で動きベクトル情報から動きベクトルが算出され、その動きベクトルを用いて動き補償部709で予測画像が生成される。さらに、再構成部711では、予測画像と逆周波数変換された係数情報すなわち差分画像とから復号画像が生成される。さらに、デブロックフィルタ部712で復号画像にデブロックフィルタ処理が行われ、フレームメモリ703に格納される。
 H.264規格には、ダイレクトモードと呼ばれるマクロブロック種別が存在する。ダイレクトモードはインターマクロブロックの一つで、符号化ストリーム中に動きベクトル情報を持たず、過去に復号したピクチャの動きベクトルを用いて動きベクトルを生成する。図31にH.264規格におけるダイレクトモードの動きベクトル算出方法を示す。復号マクロブロックの動きベクトルmvL0及びmvL1は、復号ピクチャに対応するアンカーピクチャの復号マクロブロックと同じ位置にあるアンカーブロックの動きベクトルmvColから、各参照ピクチャの時間間隔tbおよびtdでスケーリングして、算出される。
 ダイレクトモードでは、符号化ストリーム中に動きベクトル情報を挿入する必要が無いため、高い圧縮効率を得ることができる。しかしながら、画像によっては、このダイレクトモードで生成される動きベクトルは最適な動きベクトルではない場合がある。動きベクトルが最適でない場合は、動きベクトル情報は削減されるものの、予測画像からの誤差に相当する係数情報が増加するため、結果として圧縮効率を低下させることになる。特に、アンカーブロックがイントラブロックの場合は、動きベクトルがないため、大きな誤差を発生させることが多かった。
 一方、次世代の画像符号化規格として提案されている技術の中には、このような問題を解決する技術がある(非特許文献3)。図32に示すように、この技術では、従来のH.264規格のダイレクトモードの演算方法を変更している。具体的には、2つの参照ピクチャL0と参照ピクチャL1との復号マクロブロックと同じ位置を中心とする所定の範囲の中で、次に述べる探索方法に従って、最も相関が高い、すなわち、最も類似した部分を検出することによって動きベクトルを決定する。
 上述の探索方法は、復号マクロブロックの位置を中心として、上下左右対称に探索を行う。最初に参照ピクチャL0の探索領域の左上位置と参照ピクチャL1の探索領域の右下位置とを比較して、SAD(Sum of Absolute Difference)を算出する。次に、参照ピクチャL0は右方向に、参照ピクチャL1は左方向に比較する位置をずらしながら、順にSADを計算する。
 このように順にSADを算出し、最も小さいSADの位置が最も類似した位置とみなす。そして、そのベクトルを復号ピクチャの復号マクロブロックを起点とする動きベクトルmvL0及びmvL1に変換して、動きベクトルを算出する。このように参照画像そのものを使って動きベクトルを算出することにより、従来のように、過去の復号時の情報を用いないため、常に最適な動きベクトルを算出することができる。その結果、係数情報を増加させることがなく、且つ動きベクトル情報を符号化ストリームに挿入する必要がなくなるので、圧縮効率を向上させることができる。
 なお、H.264規格では、Bピクチャにおけるスキップモードでもダイレクトモードと同一の動きベクトル演算を行うが、本明細書ではスキップモードの場合も含めてダイレクトモードと呼んでいる。
ITU-T H.264規格書 Advanced video coding for generic audiovisual services、2005年3月発行 Thomas Wiegand et al、"Overview of the H.264/AVC Video Coding Standard"、 IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY、 JULY 2003、 PP.1-19. Tomokazu Murakami著、「Advanced B Skip Mode with Decoder-side Motion Estimation」、[online]、ITU-T Video Coding Experts Group、2009年4月15日、[2009年9月18日検索]、インターネット<URL:http://wftp3.itu.int/av-arch/video-site/0904_Yok/VCEG-AK12.zip>
 以上のように、非特許文献3において、ダイレクトモード時に参照画像の探索によって動きベクトルを決定するための演算方法は示されている。しかしながら、従来の動きベクトル算出に比べて極めてデータ量の大きい参照画像を用いてどのように動きベクトル探索を行い、必要な参照画像をフレームメモリからどのように取得するのかという仕組みが具体的に示されていない。
 従来のダイレクトモードでは、動きベクトルの算出に用いるデータは過去のピクチャの動きベクトルであり、1本の動きベクトルはたかだか4Byte程度である。一方、非特許文献3で示される方法では、フレームメモリに格納されている画像そのものを用いるため、1回の探索に少なくとも16画素x16画素x2ピクチャ=512画素が必要で、また、動きベクトルの探索は、探索領域が32x32の場合、17x17の289回の探索が必要となるため、1回のダイレクトモードの動きベクトルの算出に必要なフレームメモリから読み出すデータは512x289=147,968Byteとなる。これは、従来の方法の約4万倍のデータ量に相当する。さらに、ハイビジョン映像の場合、マクロブロックは1秒間に244,800個あるため、フレームメモリからのデータ転送量は膨大なものになる。1秒間あたりの転送量を1秒あたりの転送量を示すバンド幅で表現すると、36GByte/secに相当する。
 処理の性能は、大きくは演算性能とデータ転送性能との両方で決まり、高速に演算できたとしても、必要なデータの転送に時間がかかってしまうと、性能は劣化してしまう。
 一般的に、画像復号装置におけるフレームメモリは容量が大きいため、しばしば演算を行うLSI(Large Scale Integration)の外に接続するDRAM(Dynamic Random Access Memory)上に置かれる場合が多い。しかしながら、このように大きな転送バンド幅を実現するDRAMの構成は困難又は非常に高価なものとなる。また、通常のDRAMでは転送性能が不足し、処理性能を低下させてしまう。したがって、高い性能を実現するためには、フレームメモリからのデータ転送量および転送バンド幅を削減することが必要である。
 本発明は、上記従来の課題を解決するものであって、動きベクトルの算出処理において、フレームメモリからのデータ転送量又はデータ転送バンド幅を削減できる画像復号装置を提供することを目的とする。
 本発明の一形態に係る復号装置は、符号化画像を構成するブロックを復号する。具体的には、該復号装置によって既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第1の記憶部と、前記第1の記憶部より記憶容量が小さく、且つ前記第1の記憶部よりデータの読み出し速度が速い第2の記憶部と、前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第1の記憶部から前記第2の記憶部に転送する探索領域転送部と、前記第2の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、前記動きベクトル演算部で算出された動きベクトルを用いて、前記ブロックを復号する復号部とを備える。
 上記構成によれば、探索領域の画素データを予め第1の記憶部から第2の記憶部に一度だけ転送しておき、データの読み出し速度の速い第2の記憶部から繰り返し探索領域の画素データを読み出して動きベクトルを算出することができる。その結果、第1の記憶部からのデータ転送量を削減することができると共に、データ転送に要する消費電力を低減することができる。なお、本明細書中の「ブロック」とは、典型的にはマクロブロックを指すが、これに限定されない。
 一形態として、前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第1のブロック、又は動きベクトルを示す情報を付加して符号化された第2のブロックであってもよい。前記探索領域転送部は、復号されるブロックが前記第1のブロックである場合にのみ、前記探索領域の画素データを前記第1の記憶部から前記第2の記憶部に転送してもよい。前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第1のブロックを復号し、付加されている前記動きベクトルを用いて前記第2のブロックを復号してもよい。これにより、第1の記憶部から第2の記憶部に転送されるデータ量を必要最小限とすることができる。その結果、データ転送に要する消費電力をさらに低減することができる。
 他の形態として、前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第1のブロック、又は動きベクトルを示す情報を付加して符号化された第2のブロックであってもよい。前記探索領域転送部は、復号されるブロックが前記第1及び第2のブロックのいずれであるかを判断する前に、前記探索領域の画素データを前記第1の記憶部から前記第2の記憶部に転送する処理を開始してもよい。前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第1のブロックを復号し、付加されている前記動きベクトルを用いて前記第2のブロックを復号してもよい。これにより、動きベクトル演算部による探索領域の画素データの転送完了の待ち時間を少なくすることができる。
 また、前記探索領域転送部は、復号されるブロックが前記第2のブロックであった場合、前記探索領域の画素データを前記第1の記憶部から前記第2の記憶部に転送する処理を中止してもよい。これにより、不要なデータの転送量が減るので、データ転送に要する消費電力をさらに低減することができる。
 また、前記第2の記憶部は、前記探索領域転送部によって転送された過去の画素データの少なくとも一部を継続して記憶していてもよい。そして、前記探索領域転送部は、前記探索領域の画素データのうちの前記第2の記憶部に記憶されていない画素データのみを、前記第1の記憶部から前記第2の記憶部に転送してもよい。これにより、第1の記憶部からのデータ転送量をさらに削減することができる。
 さらに、前記探索領域転送部は、過去の画素のデータのうち、後続の前記ブロックの前記動きベクトルを算出するのに使用されない画素データを、前記第2の記憶部から削除してもよい。これにより、第2の記憶部の記憶容量を小さくすることができる。
 一形態として、該復号装置は、前記符号化画像を構成する複数の前記ブロックを、前記符号化画像の左上から右下に向かって順次復号する場合において、前記探索領域転送部は、前記探索領域の右下隅に相当する部分の画素データを前記第1の記憶部から前記第2の記憶部に転送し、前記探索領域の左上端に相当する部分より前に転送された画素データを前記第2の記憶部から削除してもよい。
 また、前記探索領域転送部は、前記符号化画像を構成する複数の前記ブロックのうちのn(n:自然数)番目の前記ブロックの動きベクトルが前記動きベクトル演算部で算出されているのと平行して、(n+1)番目の前記ブロックに対応する前記探索領域の画素データを前記第1の記憶部から前記第2の記憶部に転送してもよい。このように、復号に必要な複数の処理をパイプライン化することで、データ転送の空き時間をなくして、第1の記憶部からの転送バンド幅をさらに削減することができる。
 さらに、該復号装置は、前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算部と、前記参照画像の一部の領域であって、前記動き補償演算部によって参照される参照領域の画素データを記憶する第3の記憶部と、前記参照領域の画素データを、前記第1及び第2の記憶部の一方から前記第3の記憶部に転送する参照領域転送部とを備えてもよい。これにより、第1の記憶部からのデータ転送量をさらに削減することができる。
 一形態として、前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第1のブロック、又は動きベクトルを示す情報を付加して符号化された第2のブロックであってもよい。そして、前記参照領域転送部は、前記第1のブロックに対応する前記参照領域の画素データを前記第2の記憶部から前記第3の記憶部に転送し、前記第2のブロックに対応する前記参照画像の画素データを前記第1の記憶部から前記第3の記憶部に転送してもよい。ダイレクトモードの場合、探索領域と参照領域とが実質的に同一となるので、第2の記憶部から第3の記憶部に参照領域の画素データを転送することができる。一方、ダイレクトモードであるか否かに拘らず、参照領域の画素データが第2の記憶部に格納されているか否かを判断し、格納されている場合には第2の記憶部から転送してもよい。
 また、前記第2の記憶部は、前記動きベクトル演算部に直接アクセスされる探索領域記憶部と、前記探索領域記憶部に記憶されている前記探索領域を含み、且つ前記参照画像のうちの前記探索領域より広い領域の画素データを記憶している広範領域記憶部とを備えてもよい。そして、前記参照領域転送部は、前記参照領域の画素データを前記広範領域記憶部から前記第3の記憶部に転送してもよい。これにより、探索領域記憶部の記憶容量を小さくすることができると共に、探索領域記憶部へのアクセスを削減することができる。
 また、前記探索領域は、前記ブロックを含む前記符号化画像より再生順で前の参照画像に含まれる第1の探索領域と、再生順で後の参照画像に含まれる第2の探索領域とを含んでもよい。そして、前記動きベクトル演算部は、前記第1及び第2の探索領域それぞれの探索範囲の画素データを前記第2の記憶部から読み出して絶対値差分和を算出する処理を、前記第1及び第2の探索領域内で前記探索範囲の位置をずらしながら繰り返し実行し、算出された絶対値差分和が最も小さい前記探索範囲の位置に基づいて前記動きベクトルを算出してもよい。但し、動きベクトル算出方法はこれに限定されない。
 本発明の一形態に係る復号方法は、既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第1の記憶部と、前記第1の記憶部より記憶容量が小さく、且つ前記第1の記憶部よりデータの読み出し速度が速い第2の記憶部とを備える復号装置が、符号化画像を構成するブロックを復号する方法である。具体的には、前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第1の記憶部から前記第2の記憶部に転送する探索領域転送ステップと、前記第2の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、前記動きベクトル演算ステップで算出された動きベクトルを用いて、前記ブロックを復号する復号ステップとを含む。
 本発明の一形態に係るプログラムは、既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第1の記憶部と、前記第1の記憶部より記憶容量が小さく、且つ前記第1の記憶部よりデータの読み出し速度が速い第2の記憶部とを備える復号装置に、符号化画像を構成するブロックを復号させる。具体的には、前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第1の記憶部から前記第2の記憶部に転送する探索領域転送ステップと、前記第2の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、前記動きベクトル演算ステップで算出された動きベクトルを用いて、前記ブロックを復号する復号ステップとを、復号装置に実行させる。
 本発明の一形態に係る集積回路は、既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第1の記憶部を備える復号装置に搭載され、符号化画像を構成するブロックを復号する。具体的には、前記第1の記憶部より記憶容量が小さく、且つ前記第1の記憶部よりデータの読み出し速度が速い第2の記憶部と、前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第1の記憶部から前記第2の記憶部に転送する探索領域転送部と、前記第2の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、前記動きベクトル演算部で算出された動きベクトルを用いて、前記ブロックを復号する復号部とを備える。
 本発明によれば、第1の記憶部からのデータ転送量又はデータ転送バンド幅を削減できる復号装置を実現することが可能になるという効果が得られる。
図1Aは、画像復号装置の概略構成を示すブロック図である。 図1Bは、画像復号装置の詳細構成を示すブロック図である。 図2は、画像復号装置の動作フローを示す説明図である。 図3Aは、インターマクロブロックでない場合における、画像復号装置の時系列の動作を示す説明図である。 図3Bは、インターマクロブロックでダイレクトモードでない場合における、画像復号装置の時系列の動作を示す説明図である。 図3Cは、ダイレクトモードの場合における、画像復号装置の時系列の動作を示す説明図である。 図4は、画像復号装置の構成を示す構成図である。 図5は、画像復号装置の動作フローを示す説明図である。 図6は、画像復号装置の時系列の動作を示す説明図である。 図7Aは、マクロブロックMBnにおける探索領域を示す図である。 図7Bは、マクロブロックMBnの次のマクロブロックMBn+1の探索領域を示す図である。 図7Cは、マクロブロックMBnとマクロブロックMBn+1との探索領域を拡大した図である。 図8Aは、マクロブロックMBnにおける探索領域を示す図である。 図8Bは、マクロブロックMBnの下のマクロブロックMBn+8の探索領域を示す図である。 図8Cは、マクロブロックMBnとマクロブロックMBn+8との探索領域を拡大した図である。 図8Dは、参照画像のうちの探索画像メモリが記憶する領域を示す図である。 図9は、画像復号装置の動作フローを示す説明図である。 図10は、画像復号装置の時系列の動作を示す説明図である。 図11は、画像復号装置の動作を示す説明図である。 図12は、画像復号装置の構成を示す構成図である。 図13は、画像復号装置の動作フローを示す説明図である。 図14は、画像復号装置の時系列の動作を示す説明図である。 図15は、画像復号装置の構成を示す構成図である。 図16は、画像復号装置の参照画像転送の動作フローを示す説明図である。 図17は、画像復号装置の構成を示す構成図である。 図18は、画像復号装置の参照画像転送の動作フローを示す説明図である。 図19は、画像復号装置の構成を示す構成図である。 図20は、画像復号装置の探索画像転送の動作フローを示す説明図である。 図21Aは、参照画像のうちの広域領域記憶部が記憶する領域を示す図である。 図21Bは、参照画像のうちの探索領域記憶部が記憶する領域を示す図である。 図22は、画像復号装置の参照画像転送の動作フローを示す説明図である。 図23は、コンテンツ配信サービスを実現するコンテンツ供給システムの全体構成図である。 図24は、デジタル放送用システムの全体構成図である。 図25は、テレビの構成例を示すブロック図である。 図26は、光ディスクである記録メディアに情報の読み書きを行う情報再生/記録部の構成例を示すブロック図である。 図27は、光ディスクである記録メディアの構造例を示す図である。 図28は、集積回路で実現される各実施の形態の画像復号処理を示すブロック図である。 図29は、集積回路で実現される各実施の形態の画像復号処理を示すブロック図である。 図30は、従来の画像復号装置を示す構成図である。 図31は、従来のH.264規格のダイレクトモード時の演算方法を示す説明図である。 図32は、従来のダイレクトモード時に参照画像を探索して動きベクトルを得る方式の演算方法を示す説明図である。
 以下、本発明の実施の形態における画像復号装置について、図面を参照しながら説明する。
 (実施の形態1)
 本発明の実施の形態1に係る画像復号装置の概要について説明する。本発明の実施の形態1に係る画像復号装置は、符号化ストリーム(符号化画像)を構成するマクロブロック毎に可変長復号を行う。次に、そのマクロブロックがダイレクトモードの場合には、参照ピクチャから探索領域の画素データ(「探索画像」とも言う)を読み出して探索画像メモリに格納する。そして、その探索画像メモリから探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、動きベクトルの探索を行い、動きベクトルを決定するように構成されている。
 以上が本発明の画像復号装置の概要についての説明である。
 次に、図1A及び図1Bを参照して、本実施の形態1の画像復号装置100の構成について説明する。図1Aは、本実施の形態1の画像復号装置100の概略構成を示すブロック図である。図1Bは、本実施の形態1の画像復号装置100の詳細構成を示すブロック図である。
 画像復号装置100は、図1Aに示されるように、第1の記憶部20と、第2の記憶部30と、探索領域転送部40と、動きベクトル演算部50と、復号部60とを備え、復号画像をマクロブロック毎に復号して、復号画像を出力する。なお、以降の説明では、マクロブロック毎に復号する例を説明するが、本発明はこれに限定されない。つまり、画像復号装置100は、マクロブロックより大きい、又は小さい任意の大きさのブロック単位で復号を行うことができる。
 第1の記憶部20は、画像復号装置100によって既に復号された画像であって、マクロブロックを復号する際に参照される参照画像の画素データを記憶する。第2の記憶部30は、第1の記憶部20より記憶容量が小さく、且つ第1の記憶部20よりデータの読み出し速度が速い記憶部である。典型的には、第1の記憶部20はDRAM(Dynamic Random Access Memory)であり、第2の記憶部30はSRAM(Static Random Access Memory)であるが、これには限定されない。
 探索領域転送部40は、参照画像の一部の領域であって、マクロブロックの動きベクトルを算出するのに必要な探索領域の画素データを、第1の記憶部20から第2の記憶部30に転送する。動きベクトル演算部50は、第2の記憶部30から探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、マクロブロックの動きベクトルを算出する。復号部60は、動きベクトル演算部50で算出された動きベクトルを用いて、マクロブロックを復号する。
 本実施の形態1の画像復号装置100は、図1Bに示されるように、全体を制御する制御部101、入力された符号化ストリームを格納するビットストリームバッファ102、復号した画像データを格納するフレームメモリ103、符号化ストリームを読み込み可変長復号する可変長復号部104、逆量子化を行う逆量子化部105、逆周波数変換を行う逆周波数変換部106、面内予測(イントラ予測ともいう)を行い予測画像を生成する面内予測部107、動きベクトルを算出する動きベクトル算出部108、動き補償を行い予測画像を生成する動き補償部109、予測画像を切り替えるスイッチ110、逆周波数変換された差分画像と予測画像とから復号画像を生成する再構成部111、及び再構成された画像にブロックノイズを除去し高画質化するデブロックフィルタ部112から構成される。
 動きベクトル算出部108は、さらに動きベクトル演算を行う動きベクトル演算部181と、動きベクトルを算出するための探索領域の画素データ(「探索画像」ともいう)を格納する探索画像メモリ182とから構成される。動き補償部109は、動き補償演算を行う動き補償演算部191と、動き補償に使用する参照領域の画素データ(「参照画像」ともいう)を格納する参照画像メモリ192とから構成される。
 ここで、図1Aの第1の記憶部20は、図1Bのフレームメモリ103に対応する。図1Aの第2の記憶部30は、図1Bの探索画像メモリ182に対応する。図1Aの探索領域転送部40は、図1Bでは明示していないが動きベクトル算出部108に含まれる。図1Aの動きベクトル演算部50は、図1Bの動きベクトル演算部181に対応する。図1Aの復号部60は、図1Bの可変長復号部104、逆量子化部105、逆周波数変換部106、及び再構成部111等に対応する。
 以上が画像復号装置100の構成についての説明である。
 次に、図1A及び図1Bに示した画像復号装置100の動作を図2のフローチャートを用いて説明する。図2は、1つのマクロブロックの復号動作を示している。本実施の形態1においては、ダイレクトモードの場合以外の処理は、H.264規格と同様とし、ダイレクトモードの場合は、非特許文献3に示される演算方法をとる。
 まず、入力された符号化ストリームを可変長復号部104で可変長復号を行う(S101)。可変長復号部104は、マクロブロック種別、面内予測(イントラ予測)モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部101に出力され、その後各処理部に入力される。係数情報は、逆量子化部105に出力される。次に、逆量子化部105で逆量子化処理を行う(S102)。次に、逆周波数変換部106で逆周波数変換を行う(S103)。
 次に、復号するマクロブロックがインターマクロブロックであるか、イントラマクロブロックであるかの判定を行う(S104)。インターマクロブロックの場合は(S104でYes)、さらにダイレクトモードであるかどうかの判定を行う(S105)。つまり、復号対象のマクロブロックが、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第1のブロックであるか、又は動きベクトルを示す情報を付加して符号化された第2のブロックであるかを判定する。
 ダイレクトモードの場合は(S105でYes)、動きベクトルを探索するための探索領域の画素データをフレームメモリ103から探索画像メモリ182に転送する(S106)。図32に示すように、2枚の参照画像内における探索領域の位置は、探索領域を32x32画素とした場合、復号されるマクロブロックの周辺32x32画素で、復号マクロブロックの左上の位置を(x、y)と2次元座標で表した場合、(x-8、y-8)となる位置を左上とする32x32画素の領域が探索領域となる。言い換えれば、探索領域は、参照画像内において、復号対象画像内における復号対象マクロブロックの位置に対応する位置を含み、且つマクロブロックより大きな領域を指す。
 次に、探索画像メモリ182に格納されている探索領域の画素データを用いて、動きベクトル演算部181で動きベクトルの探索を行い、動きベクトルを算出する(S107)。動きベクトルの探索は、例えば、以下のようにして行う。
 まず、探索画像メモリ182上の2枚の参照ピクチャL0、L1に対して、図32に示すように、最初に参照ピクチャL0の探索領域の左上位置と、参照ピクチャL1の探索領域の右下位置とを比較して、SAD(Sums of Absolute Difference)を算出する。次に、参照ピクチャL0は右方向に、参照ピクチャL1は左方向に比較する位置をずらし、SADを計算する。このように順にSADを算出し、もっとも小さいSADの位置がもっとも類似した位置とみなす。そして、そのベクトルを復号ピクチャの復号マクロブロックを起点とする動きベクトルmvL0及びmvL1に変換して、動きベクトルを算出する。
 より詳しく説明すると、探索画像メモリ182には、復号対象マクロブロックを含む符号化画像より再生順で前の参照ピクチャL0に含まれる第1の探索領域(破線で示す領域)及び、再生順で後の参照ピクチャL1に含まれる第2の探索領域(破線で示す領域)の画素データが記憶されている。
 動きベクトル演算部181は、まず、参照ピクチャL0の第1の探索領域の左上のブロック(探索範囲)の画素データと、参照ピクチャL1の第2の探索領域の右下のブロック(探索範囲)の画素データとを探索画像メモリ182から読み出し、2つのブロックの画素データのSADを算出する。ここで読み出されるブロックの大きさは、復号対象ブロックの大きさと同一である。
 次に、動きベクトル演算部181は、第1及び第2の探索領域内で探索範囲をずらしながら、上記の処理を繰り返し実行する。そして、動きベクトル演算部181は、算出したSADが最も小さい探索範囲の位置に基づいて、動きベクトルを算出する。
 ダイレクトモードで無い場合は(S105でNo)、動きベクトル演算部181で動きベクトル演算を行い、動きベクトルを算出する(S108)。H.264規格では、動きベクトルは、周辺の動きベクトルをmvA、mvB、mvCとした場合、それらの中央値を予測動きベクトルとする。この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報(動きベクトルの差分値)とを加算することによって、動きベクトルが求められる。
 ここで得られた動きベクトルは、動き補償部109に出力される。次に、フレームメモリ103から参照画像メモリ192に動きベクトルが示す参照領域(「参照画像」とも言う)の画素データを転送する(S109)。そして、動き補償演算部191は、参照画像メモリ192に格納された参照領域の画素データを用いて、1/2画素精度や1/4画素精度の予測画像を生成する(S110)。
 一方、インターマクロブロックで無い場合(S104でNo)、すなわちイントラマクロブロックの場合は、面内予測部107で面内予測の処理を行い、予測画像を生成する(S111)。このインターマクロブロックかどうかの選択は、図1Bの構成図では、スイッチ110によって行われる。
 得られた予測画像と、逆周波数変換部106が出力する差分画像とを、再構成部111によって加算することにより、復号画像を生成する(S112)。次に、得られた復号画像に対して、デブロックフィルタ部112において、ブロックノイズを低減するデブロックフィルタ処理を行い、フレームメモリ103に結果を格納する(S113)。
 これらの動作を時系列上の動作として表したものを図3A~図3Cに示す。図3Aはインターマクロブロックでない場合、図3Bはインターマクロブロックでダイレクトモードでない場合、図3Cはダイレクトモードの場合である。いずれの場合も、図2のフローチャートの順に逐次的に動作する。図中のTS(Time Slot)は1つのマクロブロックの復号にかかる時間を示しており、マクロブロックによって変動しても構わない。
 本実施の形態1では、インターマクロブロックの場合に、ダイレクトモードの場合とダイレクトモードでない場合との2つの場合を備えているとしたが、これは次のような理由による。ダイレクトモードは、符号化ストリーム中に動きベクトルに関する情報を符号化しないため、圧縮率の向上が可能な優れた方式である。しかしながら、復号側で動きベクトルを予測して生成するため、画像の種類によっては動きベクトルの値が最適でないことがある。最適でない場合には、符号化ストリームの係数情報の符号量が増大し、結果として圧縮率を低下させてしまう。そのため、ダイレクトモードの場合とダイレクトモードでない場合との二つのモードを持たせることで、符号化側でより圧縮率の高いモードを選択し、符号化するができる。その結果、圧縮率の向上を図ることができる。
 以上が画像復号装置100の動作についての説明である。
 このように実施の形態1では、従来の動きベクトル算出部に、動きベクトルの探索を行うための探索画像メモリ182を配置することにより、フレームメモリ103からのデータ転送量を削減することが可能となる。動きベクトル探索に先立って、探索画像メモリ182に探索領域の画素データを転送しておけば、動きベクトル探索の1回の演算毎にフレームメモリ103にアクセスする必要がなく、探索画像メモリ182にのみアクセスすればよい。その結果、フレームメモリ103から読み出すデータ量を、1マクロブロックあたり32x32x2=2048Byteに削減することができる。
 また、転送量を削減することにより、同時に、転送に要する消費電力の低減を図ることができる。
 なお、本実施の形態1においては、可変長符号としているが、ハフマン符号やランレングス符号、算術符号など、どのような符号化方式であっても構わない。
 また、本実施の形態1では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
 また、本実施の形態1においては、ダイレクトモード時以外の処理はH.264規格と同様としたが、MPEG2規格やMPEG4規格、VC-1規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態1で参照している非特許文献3に示されるようなフレームメモリに記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
 また、本実施の形態1では、非特許文献3の方法を使用しているが、フレームメモリに記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態1に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ182に保持してもよい。
 また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、探索画像メモリ182および参照画像メモリ192は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 (実施の形態2)
 次に、本実施の形態2における画像復号装置の概要について説明する。実施の形態1では、逆周波数変換後、ダイレクトモードの場合にのみ、探索画像の転送を行っていた。そのため、探索画像の転送完了を待って、動きベクトルの探索処理を行う必要があり、無駄な待ち時間を生じていた。そこで本実施の形態2においては、動きベクトル算出部に、さらに探索画像転送部(探索領域転送部)を設ける。そして、動きベクトル算出処理の開始前に、探索画像の転送を開始しておくことにより、待ち時間をなくすことが可能になる。その結果、処理性能を向上すると共に、フレームメモリからの転送バンド幅が削減可能であることを示す。
 以上が、本実施の形態2における画像復号装置の概要についての説明である。
 次に、本実施の形態2の画像復号装置200の構成について説明する。図4は、本実施の形態2の画像復号装置200の構成図である。本実施の形態2の画像復号装置200は、フレームメモリ103から探索画像メモリ182へのデータ転送を制御する探索画像転送部283を備え、他の構成要素は、実施の形態1における図1Bと同じであり、同じ番号を振って説明を省略する。
 以上が画像復号装置200の構成についての説明である。
 次に、図4に示した画像復号装置200の動作を図5のフローチャートを用いて説明する。図5は、1つのマクロブロックの復号動作を示している。本実施の形態2においては、実施の形態1と同じく、ダイレクトモードの場合以外の処理は、H.264規格と同様とし、ダイレクトモードの場合は、非特許文献3に示される演算方法をとる。
 まず、探索画像転送部283において、ダイレクトモード時の動きベクトルの探索に用いる探索領域の画素データを、フレームメモリ103から探索画像メモリ182への転送する処理を開始する(S200)。図32に示すように、2枚の参照画像の探索領域の位置は、探索領域が32x32画素の場合、復号されるマクロブロックの位置の周辺32x32画素で、復号されるマクロブロックの左上の位置を(x、y)と2次元座標で表した場合、(x-8、y-8)となる位置を左上とする32x32画素の領域が探索領域となる。
 ここでは、転送が完了する必要はない。最初に、探索画像転送の開始が可能になっているのは、非特許文献3における動きベクトル探索は、図32に示したように、デコードマクロブロックと同じ空間位置を中心とする32x32画素の探索領域を探索する。したがって、可変長復号部104による可変長復号により、符号化ストリームに含まれる符号化情報や係数情報が復号される前(すなわち、ダイレクトモードであるか否かを判断する前)に、探索領域が一意に決定され、探索領域の画素データの転送が可能になるためである。
 次に、入力された符号化ストリームを可変長復号部104で可変長復号を行う(S201)。可変長復号部104は、マクロブロック種別、面内予測(イントラ予測)モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部101に出力され、その後各処理部に入力される。係数情報は、次の逆量子化部105に出力される。次に、逆量子化部105で逆量子化処理を行う(S202)。次に、逆周波数変換部106で逆周波数変換を行う(S203)。
 次に、復号するマクロブロックがインターマクロブロックか、イントラマクロブロックであるかの判定を行う(S204)。インターマクロブロックの場合は(S204でYes)、さらにダイレクトモードであるかどうかの判定を行う(S205)。
 ダイレクトモードの場合は(S205でYes)、探索画像転送部283での探索画像の転送が完了しているかをチェックし、完了していなければ完了するまで待つ(S206)。転送が完了したら、次に、探索画像メモリ182の探索画像を用いて、動きベクトル演算部181で動きベクトルの探索を行い、動きベクトルを算出する(S207)。
 動きベクトルの探索は、探索画像メモリ182上の2枚の参照ピクチャL0、L1に対して、図32に示すように、最初に参照ピクチャL0の探索領域の左上位置と、参照ピクチャL1の探索領域の右下位置とを比較して、SADを算出する。次に、参照ピクチャL0は右方向に、参照ピクチャL1は左方向に比較する位置をずらし、SADを計算する。このように順にSADを算出し、もっとも小さいSADの位置がもっとも類似した位置とみなす。そして、そのベクトルを復号ピクチャの復号マクロブロックを起点とする動きベクトルmvL0及びmvL1に変換して、動きベクトルを算出する。
 ダイレクトモードで無い場合は(S205でNo)、動きベクトル演算部181で動きベクトル演算を行い、動きベクトルを算出する(S208)。H.264規格では、動きベクトルは、周辺の動きベクトルをmvA、mvB、mvCとした場合、それらの中央値を予測動きベクトルとする。この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報(動きベクトルの差分値)とを加算することによって動きベクトルが求められる。
 ここで、探索画像を使うことがないことがわかるので、探索画像転送部283での探索画像の転送の完了を待っても良いし、転送が完了していなければ中断しても構わない。得られた動きベクトルは動き補償部109に出力され、フレームメモリ103から参照画像メモリ192に動きベクトルが示す参照画像が転送される(S209)。そして、動き補償演算部191は、参照画像メモリ192に格納された参照画像を用いて、1/2画素精度や1/4画素精度の予測画像を生成する(S210)。
 一方、インターマクロブロックで無い場合(S204でNo)、すなわちイントラマクロブロックの場合は、面内予測部107で面内予測の処理を行い、予測画像を生成する(S211)。ここでも探索画像を使うことがないことがわかるので、探索画像転送部283での探索画像の転送の完了を待っても良いし、転送が完了していなければ中断しても構わない。また、このインターマクロブロックかどうかの選択は、図4の構成図では、スイッチ110によって行われる。
 得られた予測画像と、逆周波数変換部106が出力する差分画像とを、再構成部111によって加算することにより、復号画像を生成する(S212)。次に、得られた復号画像に対して、デブロックフィルタ部112において、ブロックノイズを低減するデブロックフィルタ処理を行い、フレームメモリ103に結果を格納する(S213)。
 これらの動作のうち、ダイレクトモード時の動作を時系列上の動作として表したものを図6に示す。図6に示すように、探索画像の転送開始を可変長復号の前に行うことにより、動きベクトル探索前に転送が完了しているので、待ち時間なく、動きベクトルの探索を行うことができるようになっている。
 なお、探索画像の転送は、必ずしも逆周波数変換が終わるまでに完了するとは限らない。しかしながら、探索画像の転送と、可変長復号、逆量子化、逆周波数変換とを平行して行うことにより、図3Cの場合と比較して、逆周波数変換と動きベクトル探索との間の待ち時間は確実に少なくなる。
 以上が画像復号装置200の動作についての説明である。
 実施の形態1では、性能を向上させるためには、探索画像転送の時間を短くすることが必要となり、単位時間あたりの転送量を示すバンド幅が増大してしまう。しかし、本実施の形態2では、探索画像転送部283を設けて、あらかじめ、探索画像の転送を開始しておくことで、他の処理を行っている間に探索画像の転送が可能となり、転送時間を実施の形態1に比べて長くすることができる。その結果として、フレームメモリ103からの転送バンド幅の低減が可能になる。
 なお、本実施の形態2においては、可変長符号としているが、ハフマン符号やランレングス符号、算術符号など、どのような符号化方式であっても構わない。
 また、本実施の形態2では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
 また、本実施の形態2においては、ダイレクトモード時以外の処理はH.264規格と同様としたが、MPEG2規格やMPEG4規格、VC-1規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態2で参照している非特許文献3に示されるようなフレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
 また、本実施の形態2では、非特許文献3の方法を使用しているが、フレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態2に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ182に保持してもよい。
 また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、探索画像メモリ182および参照画像メモリ192は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 なお、探索画像の転送開始のタイミングは、本実施の形態2では可変長復号の直前としているが、動きベクトル探索の前であればいつでも構わない。また、直前のマクロブロックの処理中などであっても構わない。
 また、イントラマクロブロック時や、ダイレクトモードでないインターマクロブロックの場合の、探索画像の転送の完了又は中断の処理は、ダイレクトモードでないことがわかっていればどのタイミングで行っても構わない。早く中断することによって無駄な転送を削減し、消費電力を低減することが可能になる。
 (実施の形態3)
 次に、本実施の形態3における画像復号装置の概要について説明する。実施の形態1および2では、復号するマクロブロックごとに探索画像の転送を行っていた。あるマクロブロックの動きベクトル算出に必要な探索領域は、次のマクロブロックでは、16画素右にずれるだけで、多くの画素はそのまま探索に用いることができる。したがって、必要な画素だけをフレームメモリから探索画像メモリに転送する。
 これにより、転送量を削減し、転送バンド幅を削減することができることを示す。以上が、本実施の形態3における画像復号装置の概要についての説明である。
 次に、本実施の形態3の画像復号装置200の構成について説明する。本実施の形態3の画像復号装置200の構成は、実施の形態2の図4と同一であるので、説明を省略する。
 なお、実施の形態3に係る探索画像メモリ182は、フレームメモリ103から過去に転送された画素データの少なくとも一部を継続して記憶している。そして、実施の形態3に係る探索画像転送部283は、符号化対象マクロブロックの探索領域の画素データのうち、探索画像メモリ182に記憶されていない画素データのみを、フレームメモリ103から探索画像メモリ182に新たに転送する。さらに、探索画像転送部283は、過去に転送された画素のデータのうち、後続のマクロブロックの動きベクトルを算出するのに使用されない画素データを、探索画像メモリ182から削除する。
 以上が、本実施の形態3における画像復号装置200の構成についての説明である。
 次に、本実施の形態3における画像復号装置200の動作を説明する。全体の動作のフローは実施の形態2の図5と同じであるので、説明を省略する。本実施の形態3においても、実施の形態1と同じく、ダイレクトモードの場合以外の処理は、H.264規格と同様とし、ダイレクトモードの場合は、非特許文献3に示される演算方法をとる。
 本実施の形態3と実施の形態2との違いは、探索画像転送部283による探索画像の転送範囲である。実施の形態2では、探索画像転送部283が、動きベクトルの探索に必要な全ての探索画像を、フレームメモリ103から探索画像メモリ182に転送するとしていた。しかしながら、実際には、図7A~図7Cに示すように、探索画像の多くは直前のマクロブロックの探索画像と重複している。
 図7Aは、マクロブロックMBnにおける探索領域を示している。探索領域が32x32画素の場合は、図7Aに示すように、周辺のマクロブロックのちょうど中央までが探索領域となる。図7Bは、マクロブロックMBnの次のマクロブロックMBn+1の探索領域である。図7Cは、マクロブロックMBnとマクロブロックMBn+1との探索領域を拡大して1つの図に示したものである。
 図7Cに示すように、探索領域を3つの領域に分けることができる。領域Aは、マクロブロックMBnでのみ探索領域として必要な領域である。領域Bは、マクロブロックMBnでもマクロブロックMBn+1でも探索領域として必要な領域である。領域Cは、マクロブロックMBn+1でのみ探索領域として必要な領域である。つまり、マクロブロックMBn+1の動きベクトル算出処理では、既に探索画像メモリ182に転送している領域A、領域Bのうち、領域Aのデータを削除して、領域Cのデータのみをフレームメモリ103から探索画像メモリ182に転送すればよいことがわかる。
 以上が、本実施の形態3における画像復号装置200の動作についての説明である。
 このように、探索領域が水平方向にずれて、新たに必要になった領域のみをフレームメモリ103から探索画像メモリ182に転送することで、転送量を削減することができ、転送バンド幅も合わせて削減することができる。実施の形態1では、1マクロブロックあたり2048Byteの転送が必要であったが、実施の形態3では、1マクロブロックあたり16x32x2=1024Byteに削減することが可能になる。
 また、転送量を削減することにより、同時に転送に要する消費電力の低減を図ることができる。
 なお、本実施の形態3では実施の形態2に対して説明したが、実施の形態1に対しても適用可能であり、同様の効果を得ることができる。
 また、本実施の形態3では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
 また、本実施の形態3においては、ダイレクトモード時以外の処理はH.264規格と同様としたが、MPEG2規格やMPEG4規格、VC-1規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態3で参照している非特許文献3に示されるようなフレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
 また、本実施の形態3では、非特許文献3の方法を使用しているが、フレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態3に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ182に保持してもよい。
 また、本実施の形態3では、復号マクロブロックの周辺32x32画素を探索するとしているが、水平および垂直方向にずれた位置を探索してもよい。ずれ量がマクロブロック毎に同一であれば同様の効果が得られる。
 また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、探索画像メモリ182および参照画像メモリ192は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 (実施の形態4)
 次に、本実施の形態4における画像復号装置の概要について説明する。実施の形態3では、動きベクトルの探索に必要な探索画像のうち、直前に復号したマクロブロックの探索画像として使われていない領域のみの転送を行っていた。しかしながら、1マクロブロック上のマクロブロックで使われた探索画像を探索画像メモリに保持しておけば、16画素下にずれるだけで、さらに多くの画素はそのまま探索に用いることができる。したがって、必要な画素だけをフレームメモリから探索画像メモリに転送することにより、実施の形態3よりもさらに、転送量を削減し、転送バンド幅を削減することができることを示す。
 以上が、本実施の形態4における画像復号装置の概要についての説明である。
 次に、本実施の形態4の画像復号装置200の構成について説明する。本実施の形態4の画像復号装置200の構成は、実施の形態2の図4と全く同一であるので、説明を省略する。
 以上が、本実施の形態4における画像復号装置200の構成についての説明である。
 次に、本実施の形態4における画像復号装置200の動作を説明する。全体の動作のフローは実施の形態2の図5と同じであるので、説明を省略する。本実施の形態4においても、実施の形態1と同じく、ダイレクトモードの場合以外の処理は、H.264規格と同様とし、ダイレクトモードの場合は、非特許文献3に示される演算方法をとる。
 本実施の形態4と実施の形態3との違いは、探索画像転送部283による探索画像の転送範囲である。実施の形態3では、探索画像転送部283が、復号されるマクロブロックの動きベクトル探索に必要な探索領域のうち、直前に復号されたマクロブロックの探索領域との差分のみを、フレームメモリ103から探索画像メモリ182に転送するとしていた。しかしながら、実際には、図8A~図8Dに示すように、探索画像の多くは上側のマクロブロックの探索画像と重複している。
 図8Aは、マクロブロックMBnにおける探索領域を示している。探索領域が32x32画素の場合は、図8Aに示すように、周辺のマクロブロックのちょうど中央まで探索領域となる。図8Bは、マクロブロックMBnの下のマクロブロックMBn+8の探索領域である。図8Cは、マクロブロックMBnとマクロブロックMBn+8との探索領域を拡大して1つの図に示したものである。
 図8Cに示すように、探索領域を3つの領域に分けることができる。領域Dは、マクロブロックMBnでのみ探索領域として必要な領域である。領域Eは、マクロブロックMBnでもマクロブロックMBn+8でも探索領域として必要な領域である。領域Fは、マクロブロックMBn+8でのみ探索領域として必要な領域である。つまり、マクロブロックMBn+8の動きベクトル算出処理では、既に探索画像メモリ182に転送している領域D、領域Eのうち、領域Dのデータを削除して、領域Fのデータのみをフレームメモリ103から転送すればよいことがわかる。
 また、実施の形態3で説明したように、マクロブロックMBn+8の直前のマクロブロックであるマクロブロックMBn+7の動きベクトル探索において、図8Cの領域Fの左半分の領域は、既にフレームメモリ103から探索画像メモリ182に転送済みである。そこで、マクロブロックMBn+8の動きベクトルの探索のためには、領域Fの右半分の領域のみを新たに追加すればよい。そこで、この領域の画素データのみを、フレームメモリ103から転送すればよいことがわかる。
 すなわち、画像復号装置200が符号化画像を構成する複数のマクロブロックを、符号化画像の左上から右下に向かって順次復号する場合において、探索画像転送部283は、探索領域の右下隅に相当する部分(領域Fの右半分)の画素データをフレームメモリ103から探索画像メモリ182に転送し、探索領域の左上端に相当する部分より前に転送された画素データを探索画像メモリ182から削除すればよい。
 本実施の形態4の場合、探索画像メモリ182は、一旦保持した探索領域の画素データを下のマクロブロックが使うまで保持する必要があるので、図8Dに示すように復号する画像用の水平サイズに比例した容量が必要である。
 なお、図8Dの例では、参照画像の画素データをマクロブロック単位で、フレームメモリ103から転送し、又は探索画像メモリ182から削除しているように見えるが、本発明はこれに限定されない。すなわち、マクロブロックの境界を意識することなく、新たに必要な領域の画素データのみをフレームメモリ103から転送し、又は不要になった画素データ全てを探索画像メモリ182から削除すればよい。
 以上が、本実施の形態4における画像復号装置200の動作についての説明である。
 このように、探索領域が水平垂直方向にずれて、新たに必要になった領域のみをフレームメモリ103から探索画像メモリ182に転送することで、転送量を削減することができ、転送バンド幅も合わせて削減することができる。実施の形態1では、1マクロブロックあたり2048Byteの転送が必要であったが、実施の形態4では、1マクロブロックあたり16x16x2=512Byteに削減することが可能になる。
 また、転送量を削減することにより、同時に転送に要する消費電力の低減を図ることができる。
 なお、本実施の形態4では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
 また、本実施の形態4においては、ダイレクトモード時以外の処理はH.264規格と同様としたが、MPEG2規格やMPEG4規格、VC-1規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態4で参照している非特許文献3に示されるようなフレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
 また、本実施の形態4では、非特許文献3の方法を使用しているが、フレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態4に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ182に保持してもよい。
 また、本実施の形態4では、復号マクロブロックの周辺32x32画素を探索するとしているが、水平および垂直方向にずれた位置を探索してもよい。ずれ量がマクロブロック毎に同一であれば同様の効果が得られる。
 また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、探索画像メモリ182および参照画像メモリ192は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 (実施の形態5)
 次に、本実施の形態5における画像復号装置の概要について説明する。実施の形態1~4では、それぞれの処理は逐次的に行われていた。本実施の形態5では、それぞれの処理を異なるマクロブロックに対して同時に行うことにより、処理を並列化し性能を向上するとともに、フレームメモリ103から探索画像メモリ182への探索画像の転送の転送時間を最大化して、転送バンド幅を最小化することが可能になる。
 以上が、本実施の形態5における画像復号装置の概要についての説明である。
 次に、本実施の形態5の画像復号装置の構成について説明する。本実施の形態5の画像復号装置の構成は、実施の形態2の図4と同一であるので、説明を省略する。
 以上が、本実施の形態5における画像復号装置の構成についての説明である。
 次に、図4に示した画像復号装置200の動作を図9のフローチャートを用いて説明する。図9は、1つのマクロブロックの復号動作を示しており、本実施の形態5では、各処理ブロックが異なるマクロブロックに対して処理を行うため、実施の形態2とは一部異なる処理フローとなっている。また、フローチャート中の横方向の点線はいくつかの処理をまとめた処理ステージの境界を示しており、詳しくは後で説明する。本実施の形態5においても、実施の形態1と同じく、ダイレクトモードの場合以外の処理は、H.264規格と同様とし、ダイレクトモードの場合は、非特許文献3に示される演算方法をとる。
 まず、探索画像転送部283において、ダイレクトモード時の動きベクトルの探索に用いる探索画像をフレームメモリ103から探索画像メモリ182へ転送する(S300)。図32に示すように、2枚の参照画像の探索領域は、探索領域が32x32画素の場合、復号マクロブロックの周辺32x32画素で、復号マクロブロックの左上の位置を(x、y)と2次元座標で表した場合、(x-8、y-8)となる位置を左上とする32x32画素の領域が探索領域となる。
 動作の最初に、探索画像転送の開始が可能になっているのは、実施の形態2と同じく非特許文献3における動きベクトル探索は、図32に示したように、デコードマクロブロックと同じ空間位置を中心とする32x32画素の探索領域を探索するからである。したがって、可変長復号部104による可変長復号により、符号化ストリームに含まれる符号化情報や係数情報が復号される前に、探索領域が一意に決定され、探索領域の画素データの転送が可能になるためである。
 次に、入力された符号化ストリームを可変長復号部104で可変長復号を行う(S301)。可変長復号部104は、マクロブロック種別、面内予測(イントラ予測)モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部101に出力され、その後各処理部に入力される。
 次に、インターマクロブロックかイントラマクロブロックの判定を行う(S302)。インターマクロブロックの場合は(S302でYes)、さらにダイレクトモードかその他のモードであるかの判定を行う(S303)。ダイレクトモードの場合は(S303でYes)、動きベクトル演算部181で、探索画像メモリ182の探索画像を用いて動きベクトルの探索を行い、動きベクトルを算出する(S304)。
 動きベクトルの探索は、探索画像メモリ182上の2枚の参照ピクチャL0、L1に対して、図32に示すように、最初に参照ピクチャL0の探索領域の左上位置と参照ピクチャL1の探索領域の右下位置とを比較して、SADを算出する。次に、参照ピクチャL0は右方向に、参照ピクチャL1は左方向に比較する位置をずらし、SADを計算する。このように順にSADを算出し、もっとも小さいSADの位置がもっとも類似した位置とみなす。そして、そのベクトルを復号ピクチャの復号マクロブロックを起点とする動きベクトルmvL0及びmvL1に変換して、動きベクトルを算出する。
 ダイレクトモードで無い場合は(S303でNo)、動きベクトル演算部181で動きベクトル演算を行い、動きベクトルを算出する(S305)。H.264規格では、動きベクトルは、周辺の動きベクトルをmvA、mvB、mvCとした場合、それらの中央値を予測動きベクトルとする。この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報(動きベクトルの差分値)とを加算することによって、動きベクトルが求められる。
 ここで、インターマクロブロックの判定(S302)およびダイレクトモードの判定(S303)は、可変長復号部104による可変長復号処理(S301)の完了後に行うように書かれているが、これらの判定に必要な符号化情報が復号された時点で判定しても構わない。
 次に、可変長復号部104が出力した係数情報に対して、逆量子化部105で逆量子化を行い(S306)、逆周波数変換部106で逆周波数変換を行う(S307)。
 次に、インターマクロブロックかイントラマクロブロックかを再度判定する(S308)。インターマクロブロックの場合は(S308でYes)、動き補償部109で動きベクトル算出部208が出力する動きベクトルを用いて、フレームメモリ103から探索画像を参照画像メモリ192に転送する(S309)。動き補償部109は、参照画像メモリ192に格納された参照領域の画素データを用いて動き補償を行い、予測画像を生成する(S310)。一方、インターマクロブロックでない場合は(S308でNo)、面内予測部107で面内予測を行い、予測画像を生成する(S311)。
 得られた予測画像と、逆周波数変換部106が出力する差分画像とを、再構成部111によって加算することにより、復号画像を生成する(S312)。次に、得られた復号画像に対して、デブロックフィルタ部112において、ブロックノイズを低減するデブロックフィルタ処理を行い、フレームメモリ103に結果を格納する(S313)。
 ここで、図9において、探索画像転送(S300)をステージ0とし、可変長復号(S301)から逆量子化(S306)の前までをステージ1とし、逆量子化(S306)および逆周波数変換(S307)をステージ2とし、面内予測(S311)、参照画像転送(S309)、動き補償(S310)および再構成処理(S312)をステージ3とし、デブロックフィルタ(S313)をステージ4とする。これらのステージ0からステージ4の各ステージが異なるマクロブロックを処理するように、制御部101は各処理部の動作タイミングを制御する。この動作を図10を用いて説明する。
 図10において、TS(Time Slot)は時間間隔を示し、1つのマクロブロックの復号にかかる処理時間を示す時間単位である。図10では等間隔に並んでいるが、必ずしも等間隔である必要はない。また、図10では、マクロブロックMBn-1以前及びマクロブロックMBn+3以降のマクロブロックは記載を省略している。
 TSnにおいて、ステージ0は、マクロブロックMBnについて処理を行う。TSn+1において、ステージ0はマクロブロックMBn+1の処理を行い、ステージ1はマクロブロックMBnの処理を行う。すなわち、探索画像転送部283は、符号化画像を構成する複数のマクロブロックのうち、復号順でn(n:自然数)番目のマクロブロックの動きベクトルの演算又は探索が行われているのと平行して、(n+1)番目のマクロブロックに対応する探索領域の画素データをフレームメモリ103から探索画像メモリ182に転送する。
 ここで、図11に一般的な符号化ストリームの構成を示す。ステージ1においては、可変長復号部104による可変長復号(S301)によって、図11の符号化情報のうち少なくともマクロブロック種別および動きベクトル情報が復号された後に、動きベクトル演算部181による動きベクトル算出(S305)又は動きベクトル探索(S304)が動作している。
 すなわち、符号化ストリームの先頭に格納されているマクロブロック種別及び動きベクトル情報に基づいて、復号対象マクロブロックがダイレクトモードで符号化されていると判断された場合にのみ、動きベクトル演算または動きベクトル探索の処理が開始される。これにより、不要な処理を実行しなくて済むので、消費電力が少なくて済む。
 TSn+2においては、ステージ0はマクロブロックMBn+2の処理を、ステージ1はマクロブロックMBn+1の処理を、ステージ2はマクロブロックMBnの処理を行う。これらを同時に処理することにより、各処理ブロックが並列に動作し、動作速度を向上させることができる。5ステージに分割した場合、ステージを分割しない場合に比べて5倍の速度で動作することが可能になる。
 以上が、本実施の形態5における画像復号装置200の動作についての説明である。
 本実施の形態5では、一連の処理をステージに分割し、ステージ0に探索画像転送を行うことにより、無駄な時間なく全ての時間で探索画像の転送を行うことができる。そのため、実施の形態2の図6と比較すると、転送しない時間がなくなり、より多くの時間を探索画像転送に使うことができ、結果として転送バンド幅を低減することができる。
 なお、本実施の形態5では実施の形態4に対して説明したが、実施の形態2、3いずれに対しても適用可能であり、同様の転送バンド幅削減の効果を得ることができる。
 また、本実施の形態5においては、可変長符号としているが、ハフマン符号やランレングス符号、算術符号など、どのような符号化方式であっても構わない。
 本実施の形態5では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
 また、本実施の形態5においては、ダイレクトモード時以外の処理はH.264規格と同様としたが、MPEG2規格やMPEG4規格、VC-1規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態5で参照している非特許文献3に示されるようなフレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
 また、本実施の形態5では、非特許文献3の方法を使用しているが、フレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態5に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ182に保持してもよい。
 また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、探索画像メモリ182および参照画像メモリ192は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 また、本実施の形態5における処理のステージ分割は1つの例であり、この分割方法に限ったものではなく、処理の特性に応じて自由に選択することが可能である。
 (実施の形態6)
 次に、本実施の形態6における画像復号装置の概要について説明する。実施の形態5では、探索画像の転送を並列に行うことにより、転送バンド幅を削減できることを示したが、本実施の形態6では、さらに、動きベクトルの探索を投機的に前もって開始することで、無駄時間をなくし、効率的に動きベクトル探索処理が行えることを示す。
 以上が、本実施の形態6における画像復号装置の概要についての説明である。
 次に、本実施の形態6の画像復号装置300の構成について説明する。本実施の形態6の画像復号装置300の構成を、図12に示す。本実施の形態6における画像復号装置300は、ダイレクトモードの場合に参照画像を用いて動きベクトルの探索を行う動きベクトル探索部(図1Bの動きベクトル演算部50に対応)384と、ダイレクトモード以外の場合に動きベクトルを算出する動きベクトル演算部381と、動きベクトル演算部381が出力する動きベクトルと動きベクトル探索部384が出力する動きベクトルとを切り替えるスイッチ385とを備える。その他の構成要素は、実施の形態2の図4と同じであるので、同じ番号を振り、説明を省略する。
 以上が、本実施の形態6における画像復号装置300の構成についての説明である。
 次に、図12に示した画像復号装置300の動作を図13のフローチャートを用いて説明する。
 図13は、1つのマクロブロックの復号動作を示しており、本実施の形態6では、動きベクトル探索部384が新たに加わったため、実施の形態5とは一部異なる処理フローとなっている。また、図9と同様にフローチャート中の横方向の点線は処理ステージの境界を示しており、詳しくは後で説明する。本実施の形態6においても、他の実施の形態1~5と同じく、ダイレクトモードの場合以外の処理は、H.264規格と同様とし、ダイレクトモードの場合は、非特許文献3に示される演算方法をとる。
 まず、探索画像転送部283において、ダイレクトモード時の動きベクトルの探索に用いる探索画像をフレームメモリ103から探索画像メモリ182へ転送する(S400)。図32に示すように、2枚の参照画像の探索領域の位置は、探索領域が32x32画素の場合、復号マクロブロックの周辺32x32画素で、復号マクロブロックの左上の位置を(x、y)と2次元座標で表した場合、(x-8、y-8)となる位置を左上とする32x32画素の領域が探索領域となる。
 動作の最初に、探索画像転送の開始が可能になっているのは、実施の形態2と同じく非特許文献3における動きベクトル探索は、図32に示したように、デコードマクロブロックと同じ空間位置を中心とする32x32画素の探索領域を探索する。したがって、可変長復号部104による可変長復号により、符号化ストリームに含まれる符号化情報や係数情報が復号される前に、探索領域が一意に決定され、探索領域の画素データの転送が可能になる。
 次に、動きベクトル探索部384において、動きベクトルの探索を行う(S401)。他の処理の最初に動きベクトル探索が可能となっているのは、先に説明した探索画像転送部283による転送が行えるのと同じ理由であり、探索領域の画素データが探索画像メモリ182にあれば、動きベクトルの探索が可能になるためである。
 次に、入力された符号化ストリームを可変長復号部104で可変長復号を行う(S402)。可変長復号部104は、マクロブロック種別、面内予測(イントラ予測)モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部101に出力され、その後各処理部に入力される。
 次に、ダイレクトモード以外のインターマクロブロックかどうかの判定を行う(S403)。ダイレクトモード以外のインターマクロブロックの場合は(S403でYes)、動きベクトル演算部381で、動きベクトル演算を行い、動きベクトルを算出する(S404)。H.264規格では、動きベクトルは、周辺の動きベクトルをmvA、mvB、mvCとした場合、それらの中央値を予測動きベクトルとする。この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報(動きベクトルの差分値)とを加算することによって動きベクトルが求められる。
 次に、可変長復号部104が出力した係数情報に対して、逆量子化部105で逆量子化を行い(S405)、逆周波数変換部106で逆周波数変換を行う(S406)。
 次に、インターマクロブロックかイントラマクロブロックかを再度判定する(S407)。インターマクロブロックの場合は(S407でYes)、動き補償部109でスイッチ385が選択する動きベクトルを用いてフレームメモリ103から参照領域の画素データを参照画像メモリ192に転送する(S409)。
 なお、動きベクトル算出部308において、スイッチ385は、ダイレクトモードの場合は、動きベクトル探索部384が出力する動きベクトルを選択し、ダイレクトモードでない場合は、動きベクトル演算部381が出力する動きベクトルを選択し、出力する(S408)。
 動き補償部109は、参照画像メモリ192に格納された参照領域の画素データを用いて動き補償を行い、予測画像を生成する(S410)。一方、インターマクロブロックでない場合は(S407でNo)、面内予測部107で面内予測を行い、予測画像を生成する(S411)。
 得られた予測画像と、逆周波数変換部106が出力する差分画像とを、再構成部111によって加算することにより、復号画像を生成する(S412)。次に、得られた復号画像に対して、デブロックフィルタ部112において、ブロックノイズを低減するデブロックフィルタ処理を行い、フレームメモリ103に結果を格納する(S413)。
 ここで、図13において、探索画像転送(S400)をステージ0とし、動きベクトル探索(S401)から逆量子化(S405)の前までをステージ1とし、逆量子化(S405)および逆周波数変換(S406)をステージ2とし、面内予測(S411)、参照画像転送(S409)、動き補償(S410)および再構成処理(S411)をステージ3とし、デブロックフィルタ(S412)をステージ4とする。
 これらのステージ0からステージ4の各ステージが異なるマクロブロックを処理するように、制御部101は各処理部の動作タイミングを制御する。この動作を図14を用いて説明する。図14において、TS(Time Slot)は時間間隔を示し、1つのマクロブロックの復号にかかる処理時間を示す時間単位である。図14では等間隔に並んでいるが、必ずしも等間隔である必要はない。また、図14では、マクロブロックMBn-1以前及びマクロブロックMBn+3以降のマクロブロックは記載を省略している。
 TSnにおいて、ステージ0は、マクロブロックMBnについて処理を行う。TSn+1において、ステージ0はマクロブロックMBn+1の処理を行い、ステージ1はマクロブロックMBnの処理を行う。ここで、図9のステージ1では、動きベクトル演算部181による動きベクトル探索の処理(S304)は、可変長復号部104による可変長復号(S301)の途中から、すなわちマクロブロック種別や動きベクトル情報の復号後から開始しているのに対し、図14のステージ1では、TSn+1の開始後すぐにマクロブロックMBnに対する動きベクトル探索部384による動きベクトル探索(S401)の処理を行っている点に違いがある。すなわち、復号対象マクロブロックがダイレクトモードであるか否かを判断することなく、動きベクトル演算または動きベクトル探索の処理が開始される。
 TSn+2においては、ステージ0はマクロブロックMBn+2の処理を、ステージ1はマクロブロックMBn+1の処理を、ステージ2はマクロブロックMBnの処理を行う。これらを同時に処理することにより、各処理ブロックが並列に動作し、動作速度を向上させることができる。5ステージに分割した場合、ステージを分割しない場合に比べて5倍の速度で動作することが可能になる。
 以上が、本実施の形態6における画像復号装置300の動作についての説明である。
 本実施の形態6によれば、可変長復号部104によってマクロブロック種別などを復号する前に、動きベクトル探索部384を動作させる。その後、動きベクトル探索部384が出力する動きベクトルと、動きベクトル演算部381が出力する動きベクトルとをスイッチ385で切り替えることにより、動きベクトル探索部384が動作できない空き時間をなくし、効率的に演算できるようになる。
 なお、本実施の形態6においては、可変長符号としているが、ハフマン符号やランレングス符号、算術符号など、どのような符号化方式であっても構わない。
 また、本実施の形態6では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
 また、本実施の形態6においては、ダイレクトモード時以外の処理はH.264規格と同様としたが、MPEG2規格やMPEG4規格、VC-1規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態6で参照している非特許文献3に示されるようなフレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
 また、本実施の形態6では、非特許文献3の方法を使用しているが、フレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態6に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ182に保持してもよい。
 また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、探索画像メモリ182および参照画像メモリ192は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 また、本実施の形態6における処理のステージ分割は1つの例であり、この分割方法に限ったものではなく、処理の特性に応じて自由に選択することが可能である。
 また、本実施の形態6では、常に動きベクトル探索部384が動きベクトルを算出するまで動作することとしたが、実際には動きベクトル探索部384が出力する動きベクトルを使用しないことがわかり次第、演算を停止するような制御を行ってもよい。
 (実施の形態7)
 次に、本実施の形態7における画像復号装置の概要について説明する。実施の形態1~6では、動きベクトル探索を行う探索画像メモリと、動き補償を行う参照画像メモリとは接続されていない。すなわち、動き補償部は、常にフレームメモリから参照画像メモリに参照領域の画素データを転送し、動き補償処理を行っていた。
 一方、本実施の形態7では、ダイレクトモードの場合には、動き補償処理で使用する参照画像が、探索画像メモリに既に存在することを利用して、ダイレクトモードの場合には探索画像メモリから参照画像を取得する。これにより、無駄な転送を削減し、転送量を削減できることを示す。
 以上が、本実施の形態7における画像復号装置の概要についての説明である。
 次に、本実施の形態7の画像復号装置400の構成について説明する。本実施の形態7の画像復号装置400の構成を、図15に示す。本実施の形態7における画像復号装置400は、フレームメモリ103から参照領域の画素データを参照画像メモリ(第3の記憶部)192転送するか、探索画像メモリ182から参照領域の画素データを参照画像メモリ192に転送するかを切り替えるスイッチ(参照領域転送部)493を備える。その他の構成要素は、実施の形態6の図12と同じであるので、同じ番号を振り、説明を省略する。
 以上が、本実施の形態7における画像復号装置400の構成についての説明である。
 次に、図15に示した画像復号装置400の動作は、実施の形態6のフローチャートである図13と同じであるが、図13の参照画像転送(S409)の動作が異なるので、図16に示すフローチャートを用いて詳細に説明する。本実施の形態7においても、他の実施の形態と同じく、ダイレクトモードの場合以外の処理は、H.264規格と同様とし、ダイレクトモードの場合は、非特許文献3に示される演算方法をとる。
 動き補償部409による参照画像転送時に、図16に示すように、まず、復号するマクロブロックがダイレクトモードかどうかを判定する(S501)。ダイレクトモードであれば(S501でYes)、使用する参照領域の画素データは必ず探索画像メモリ182に保持されている。このため、スイッチ493を切り替えて、参照領域の画素データを探索画像メモリ182から参照画像メモリ192に転送する(S502)。
 一方、ダイレクトモードでない場合は(S501でNo)、これまでの実施の形態1~7と同じく、参照領域の画素データをフレームメモリ103から参照画像メモリ192に転送する。
 その他の処理はすべて実施の形態5と同じであるので、説明を省略する。
 このように構成することにより、ダイレクトモードが選択された場合、探索画像メモリ182に動き補償部409が使用する参照画像が存在するので、フレームメモリ103から参照画像メモリ192への転送を行わなくて良い。このため、外部メモリからの転送量を削減することが可能となる。
 また、転送量を削減することにより、同時に転送に要する消費電力の低減を図ることができる。
 なお、本実施の形態7では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
 また、本実施の形態7においては、ダイレクトモード時以外の処理はH.264規格と同様としたが、MPEG2規格やMPEG4規格、VC-1規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態7で参照している非特許文献3に示されるようなフレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
 また、本実施の形態7では、非特許文献3の方法を使用しているが、フレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態7に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ182に保持してもよい。
 また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、探索画像メモリ182および参照画像メモリ192は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 また、本実施の形態7では、探索画像メモリ182から参照画像メモリ192に転送するとしたが、動き補償演算部191が直接探索画像メモリ182にアクセスし、参照画像を読み取って動き補償の演算を行ってもよい
 (実施の形態8)
 次に、本実施の形態8における画像復号装置の概要について説明する。実施の形態7では、ダイレクトモードの場合のみ、探索画像メモリから参照画像メモリに転送し、動き補償処理を行っていた。本実施の形態8では、ダイレクトモードでない場合も含めて、動きベクトルが指す参照画像が探索画像メモリ上に存在するかどうかを判定する。そして、探索画像メモリ上にある場合には、探索画像メモリから参照画像を取得する。これにより、無駄な転送を削減し、転送量を削減できることを示す。
 以上が、本実施の形態8における画像復号装置の概要についての説明である。
 次に、本実施の形態8の画像復号装置500の構成について説明する。本実施の形態8の画像復号装置500の構成を、図17に示す。本実施の形態8における画像復号装置500は、動きベクトルが指す参照画像が探索画像メモリ182内にあるかどうかを判定する動きベクトル判定部513を備える。その他の構成要素は、実施の形態7の図15と同じであるので、同じ番号を振り、説明を省略する。
 以上が、本実施の形態8における画像復号装置500の構成についての説明である。
 次に、図17に示した画像復号装置500の動作は、実施の形態6のフローチャートである図13と同じであるが、図13における参照画像転送(S409)の動作が異なるので、図18に示すフローチャートを用いて詳細に説明する。本実施の形態8においても、実施の形態1~7と同じく、ダイレクトモードの場合以外の処理は、H.264規格と同様とし、ダイレクトモードの場合は、非特許文献3に示される演算方法をとる。
 動き補償部409による参照画像転送時に、図18に示すように、動きベクトル判定部513は、動きベクトル算出部308が算出する動きベクトルが指す参照画像が探索画像メモリ182上に存在するかどうかを判定する(S601)。探索画像メモリ182上に参照画像が存在すれば(S601でYes)、スイッチ493によって、探索画像メモリ182から参照画像メモリ192に転送する(S602)。動きベクトル判定部513は、ダイレクトモードの場合は、必ず探索画像メモリ182上に参照画像があると判定する。
 一方、動きベクトル判定部513が、探索画像メモリ182上に参照画像が存在しないと判定した場合は(S601でNo)、フレームメモリ103から参照画像メモリ192に転送する。
 その他の処理はすべて実施の形態7と同じであるので、説明を省略する。
 以上が、本実施の形態8における画像復号装置500の動作についての説明である。
 このように構成することにより、ダイレクトモードであるかどうかに関わらず、探索画像メモリ182に動き補償部409が使用する参照画像が存在する場合には、フレームメモリ103から参照画像メモリ192への転送を行わなくて良い。このため、外部メモリからの転送量を削減することが可能となる。
 また、転送量を削減することにより、同時に転送に要する消費電力の低減を図ることができる。
 なお、本実施の形態8では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
 また、本実施の形態8においては、ダイレクトモード時以外の処理はH.264規格と同様としたが、MPEG2規格やMPEG4規格、VC-1規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態8で参照している非特許文献3に示されるようなフレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
 また、本実施の形態8では、非特許文献3の方法を使用しているが、フレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態8に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ182に保持してもよい。
 また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、探索画像メモリ182および参照画像メモリ192は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 また、本実施の形態8では、探索画像メモリ182から参照画像メモリ192に転送するとしたが、動き補償演算部191が直接探索画像メモリ182にアクセスし、参照画像を読み取って動き補償の演算を行ってもよい。
 (実施の形態9)
 次に、本実施の形態9における画像復号装置の概要について説明する。実施の形態8では、探索画像メモリに対して、フレームメモリからの書き込み、参照画像メモリへの読み出し、動きベクトル探索部による読み出しと、アクセスが集中するために、探索画像メモリの実現が困難になる場合がある。
 そこで、本実施の形態9では、フレームメモリから読み出した画素データのうちの現在の探索で使用しない領域を、別途設けた共有メモリに配置することにより、現在のマクロブロックの復号に必要な探索領域の画素データのみを探索画像メモリに配置する。これにより、探索画像メモリのアクセスを削減し、探索画像メモリの構成を容易にする。
 以上が、本実施の形態9における画像復号装置600の概要についての説明である。
 次に、本実施の形態9の画像復号装置600の構成について説明する。本実施の形態9の画像復号装置600の構成を、図19に示す。本実施の形態9における画像復号装置600は、探索画像メモリ182より記憶容量の大きい共有メモリ614を備える。その他の構成要素は、実施の形態8の図17と同じであるので、同じ番号を振り、説明を省略する。
 すなわち、実施の形態9に係る画像復号装置600は、動きベクトル探索部384に直接アクセスされる探索画像メモリ(探索領域記憶部)182と、探索画像メモリ182に記憶されている探索領域を含み、且つ参照画像のうちの探索領域より広い領域の画素データを記憶している共有メモリ614(広範領域記憶部)614とを備える。そして、スイッチ493は、参照領域の画素データを共有メモリ614から参照画像メモリ192に転送する。
 以上が、本実施の形態9における画像復号装置600の構成についての説明である。
 次に、図19に示した画像復号装置600の動作は、実施の形態6のフローチャートである図13と同じであるが、図13における探索画像転送(S400)および参照画像転送(S409)の動作が異なる。本実施の形態9においても、実施の形態1~7と同じく、ダイレクトモードの場合以外の処理は、H.264規格と同様とし、ダイレクトモードの場合は、非特許文献3に示される演算方法をとる。
 まず、図13における探索画像転送(S400)の動作を図20に示すフローチャートを用いて説明する。探索画像転送部283は、フレームメモリ103から共有メモリ614に探索領域の画素データを転送する(S701)。図21Aに示すように、共有メモリ614には、下のマクロブロックの探索時にも使える領域を全て保持する。このため、共有メモリ614には、対応する画像サイズの水平方向のサイズに比例した容量が必要となる。
 次に、探索画像転送部283は、共有メモリ614から探索画像メモリ182に、動きベクトル探索部384が使用する探索領域の画素データのみを転送する(S702)。図21Bに示すように、探索画像メモリ182が保持するのは、そのマクロブロックに必要な探索領域のみとなるため、探索画像メモリ182の容量を小さくすることができる。
 次に、図13における参照画像転送(S409)の動作を図22に示すフローチャートで説明する。動き補償部409による参照画像転送時に、図22に示すように、動きベクトル判定部513は、動きベクトル算出部308が算出する動きベクトルが指す参照画像(すなわち、参照領域)が共有メモリ614上に存在するかどうかを判定する(S801)。共有メモリ614上に参照画像が存在すれば(S801でYes)、スイッチ493によって、共有メモリ614から参照画像メモリ192に転送する(S802)。動きベクトル判定部513は、ダイレクトモードの場合は、必ず共有メモリ614上に参照画像があると判定する。
 一方、動きベクトル判定部513が、共有メモリ614上に参照画像が存在しないと判定した場合は(S801でNo)、フレームメモリ103から参照画像メモリ192に転送する。
 その他の処理はすべて実施の形態8と同じであるので、説明を省略する。
 以上が、本実施の形態9における画像復号装置600の動作についての説明である。
 このように構成することにより、探索画像メモリ182は、アクセス量が大きい動きベクトル探索部384からの読み出しと、共有メモリ614からの書き込みとのみに対応すればよいため、探索画像メモリ182の構成が容易になる。
 なお、本実施の形態9では、実施の形態8に対して説明したが、実施の形態7に対しても同様に適用することが可能である。
 また、本実施の形態9では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
 また、本実施の形態9においては、ダイレクトモード時以外の処理はH.264規格と同様としたが、MPEG2規格やMPEG4規格、VC-1規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態9で参照している非特許文献3に示されるようなフレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
 また、本実施の形態9では、非特許文献3の方法を使用しているが、フレームメモリ103に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態9に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ182に保持してもよい。
 また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、探索画像メモリ182、参照画像メモリ192および共有メモリ614は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 また、本実施の形態9では、共有メモリ614から参照画像メモリ192に転送するとしたが、動き補償演算部191が直接共有メモリ614にアクセスし、参照画像を読み取って動き補償の演算を行ってもよい。
 (実施の形態10)
 上記各実施の形態で示した画像復号方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
 さらにここで、上記各実施の形態で示した動画像復号方法の応用例とそれを用いたシステムを説明する。
 図23は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106~ex110が設置されている。
 このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106~ex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
 しかし、コンテンツ供給システムex100は図23のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106~ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
 カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W-CDMA(Wideband-Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
 コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号処理して再生する。
 なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
 また、これら符号化・復号処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD-ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
 また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
 以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
 なお、コンテンツ供給システムex100の例に限らず、図24に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置または動画像復号装置のいずれかを組み込むことができる。具体的には、放送局ex201では映像情報のビットストリームが電波を介して通信または放送衛星ex202に伝送される。このビットストリームは上記各実施の形態で説明した動画像符号化方法により符号化された符号化ビットストリームである。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信したビットストリームを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号して再生する。
 また、記録媒体であるCDやDVD等の蓄積メディアex214に記録したビットストリームを読み取り、復号する再生装置ex212にも上記実施の形態で示した画像復号装置を実装することが可能である。この場合、再生された映像信号はモニタex213に表示される。
 また、DVD、BD等の記録メディアex215に記録した符号化ビットストリームを読み取り復号する、または記録メディアex215に映像信号を符号化し書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、符号化ビットストリームが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号装置を組み込んでもよい。
 図25は、上記各実施の形態で説明した画像復号方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像情報のビットストリームを取得、または出力するチューナex301と、受信した符号化データを復調する、または外部に送信する符号化データに変調する変調/復調部ex302と、復調した映像データ、音声データを分離する、または符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。また、テレビex300は、音声データ、映像データそれぞれを復号する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305を有する信号処理部ex306と、復号した音声信号を出力するスピーカex307、復号した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
 まず、テレビex300がアンテナex204等により外部から取得したデータを復号し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した映像データ、音声データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号方法を用いて復号する。復号した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から符号化された符号化ビットストリームを読み出してもよい。次に、テレビex300が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318~ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
 また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号処理、外部出力のみが可能な構成であってもよい。
 また、リーダ/レコーダex218で記録メディアから符号化ビットストリームを読み出す、または書き込む場合には、上記復号処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
 一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図26に示す。情報再生/記録部ex400は、以下に説明する要素ex401~ex407を備える。光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
 以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
 図27に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した符号化データの読み書きを行う。
 以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
 また、デジタル放送用システムex200において、アンテナex205を有する車ex210で放送衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図25に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号器のみの受信端末という3通りの実装形式が考えられる。
 このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
 また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
 (実施の形態11)
 本実施の形態では、実施の形態1に示した画像復号装置を、典型的には半導体集積回路であるLSIとして実現した形態を図28に示す。ビットストリームバッファ102及びびフレームメモリ103をDRAM上に実現し、その他の回路やメモリをLSI上に構成している。
 これらは個別に1チップ化されてもよいし、一部またはすべてを含むように1チップ化されても良い。ここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応などが可能性として有り得る。
 さらに加えて、本実施の形態の画像復号装置を集積化した半導体チップと、画像を描画するためのディスプレイとを組み合せて、様々な用途に応じた描画機器を構成することができる。携帯電話やテレビ、デジタルビデオレコーダー、デジタルビデオカメラ、カーナビゲーション等における情報描画手段として、本発明を利用することが可能である。ディスプレイとしては、ブラウン管(CRT)の他、液晶やPDP(プラズマディスプレイパネル)、有機ELなどのフラットディスプレイ、プロジェクターを代表とする投射型ディスプレイなどと組み合わせることが可能である。
 また、本実施の形態は、システムLSIとDRAM(Dynamic Random Access Memory)の構成を示したが、eDRAM(embeded DRAM)やSRAM(Static Random Access Memory)やハードディスクなど他の記憶装置で構成してもかまわない。
 (実施の形態12)
 上記各実施の形態で示した画像復号装置および方法は、典型的には集積回路であるLSIで実現される。一例として、図29に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex502~ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
 また、例えば復号処理を行う場合には、LSIex500は、CPUex502の制御に基づいて、ストリームI/Oex506によって基地局ex107から得られた符号化データ、または記録メディアex215から読み出して得た符号化データを一旦メモリex511等に蓄積する。CPUex502の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声データの復号および/または映像データの復号が行われる。ここで映像信号の復号処理は上記各実施の形態で説明した復号処理である。さらに、場合により復号された音声信号と復号された映像信号を同期して再生できるようそれぞれの信号を一旦メモリex511等に蓄積するとよい。復号された出力信号はメモリex511等を適宜介しながら、AVI/Oex509からモニタex219等に出力される。メモリex511にアクセスする際にはメモリコントローラex503を介する構成である。
 なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
 なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
 本発明の画像復号装置は、様々な用途に利用可能である。例えば、テレビ、デジタルビデオレコーダー、カーナビゲーション、携帯電話、デジタルカメラ、デジタルビデオカメラ等の高解像度の情報表示機器や撮像機器に利用可能であり、利用価値が高い。
20    第1の記憶部
30    第2の記憶部
40    探索領域転送部
50    動きベクトル演算部
60    復号部
100、200、300、400、500、600 画像復号装置
101、701   制御部
102、702   ビットストリームバッファ
103、703   フレームメモリ
104、704   可変長復号部
105、705   逆量子化部
106、706   逆周波数変換部
107、707   面内予測部
108、208、308、708   動きベクトル算出部
109、409、709   動き補償部
110、385、493   スイッチ
111、711   再構成部
112、712   デブロックフィルタ部
181、381   動きベクトル演算部
182   探索画像メモリ
191   動き補償演算部
192   参照画像メモリ
283   探索画像転送部
384   動きベクトル探索部
513   動きベクトル判定部
614   共有メモリ
ex100   コンテンツ供給システム
ex101   インターネット
ex102   インターネットサービスプロバイダ
ex103   ストリーミングサーバ
ex104   電話網
ex106   基地局
ex107   基地局
ex108   基地局
ex109   基地局
ex110   基地局
ex111   コンピュータ
ex112   PDA(Personal Digital Assistant)
ex113   カメラ
ex114   携帯電話
ex115   ゲーム機
ex116   カメラ
ex117   マイク
ex200   デジタル放送用システム
ex201   放送局
ex202   放送衛星
ex203   ケーブル
ex204   アンテナ
ex205   アンテナ
ex210   車
ex211   カーナビゲーション
ex212   再生装置
ex213   モニタ
ex215   記録メディア
ex216   記録メディア
ex217   セットトップボックス(STB)
ex218   リーダ/レコーダ
ex219   モニタ
ex220   リモートコントローラ
ex230   情報トラック
ex231   記録ブロック
ex232   内周領域
ex233   データ記録領域
ex234   外周領域
ex300   テレビ(受信機)
ex301   チューナ
ex302   変調/復調部
ex303   多重/分離部
ex304   音声信号処理部
ex305   映像信号処理部
ex306   信号処理部
ex307   スピーカ
ex308   表示部
ex309   出力部
ex310   制御部
ex311   電源回路部
ex312   操作入力部
ex313   ブリッジ
ex314   スロット部
ex315   ドライバ
ex316   モデム
ex317   インタフェース部
ex318   バッファ
ex319   バッファ
ex400   情報再生/記録部
ex401   光ヘッド
ex402   変調記録部
ex403   再生復調部
ex404   バッファ
ex405   ディスクモータ
ex406   サーボ制御部
ex407   システム制御部
ex500   LSI
ex502   CPU
ex503   メモリコントローラ
ex505   電源回路部
ex506   ストリームI/O
ex507   信号処理部
ex509   AV I/O
ex510   バス
ex511   メモリ

Claims (15)

  1.  符号化画像を構成するブロックを復号する復号装置であって、
     該復号装置によって既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第1の記憶部と、
     前記第1の記憶部より記憶容量が小さく、且つ前記第1の記憶部よりデータの読み出し速度が速い第2の記憶部と、
     前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第1の記憶部から前記第2の記憶部に転送する探索領域転送部と、
     前記第2の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、
     前記動きベクトル演算部で算出された動きベクトルを用いて、前記ブロックを復号する復号部とを備える
     復号装置。
  2.  前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第1のブロック、又は動きベクトルを示す情報を付加して符号化された第2のブロックであり、
     前記探索領域転送部は、復号されるブロックが前記第1のブロックである場合にのみ、前記探索領域の画素データを前記第1の記憶部から前記第2の記憶部に転送し、
     前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第1のブロックを復号し、付加されている前記動きベクトルを用いて前記第2のブロックを復号する
     請求項1に記載の復号装置。
  3.  前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第1のブロック、又は動きベクトルを示す情報を付加して符号化された第2のブロックであり、
     前記探索領域転送部は、復号されるブロックが前記第1及び第2のブロックのいずれであるかを判断する前に、前記探索領域の画素データを前記第1の記憶部から前記第2の記憶部に転送する処理を開始し、
     前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第1のブロックを復号し、付加されている前記動きベクトルを用いて前記第2のブロックを復号する
     請求項1に記載の復号装置。
  4.  前記探索領域転送部は、復号されるブロックが前記第2のブロックであった場合、前記探索領域の画素データを前記第1の記憶部から前記第2の記憶部に転送する処理を中止する
     請求項3に記載の復号装置。
  5.  前記第2の記憶部は、前記探索領域転送部によって転送された過去の画素データの少なくとも一部を継続して記憶し、
     前記探索領域転送部は、前記探索領域の画素データのうちの前記第2の記憶部に記憶されていない画素データのみを、前記第1の記憶部から前記第2の記憶部に転送する
     請求項1~4のいずれか1項に記載の復号装置。
  6.  前記探索領域転送部は、過去の画素のデータのうち、後続の前記ブロックの前記動きベクトルを算出するのに使用されない画素データを、前記第2の記憶部から削除する
     請求項5に記載の復号装置。
  7.  該復号装置は、前記符号化画像を構成する複数の前記ブロックを、前記符号化画像の左上から右下に向かって順次復号する場合において、
     前記探索領域転送部は、前記探索領域の右下隅に相当する部分の画素データを前記第1の記憶部から前記第2の記憶部に転送し、前記探索領域の左上端に相当する部分より前に転送された画素データを前記第2の記憶部から削除する
     請求項6に記載の復号装置。
  8.  前記探索領域転送部は、前記符号化画像を構成する複数の前記ブロックのうちのn(n:自然数)番目の前記ブロックの動きベクトルが前記動きベクトル演算部で算出されているのと平行して、(n+1)番目の前記ブロックに対応する前記探索領域の画素データを前記第1の記憶部から前記第2の記憶部に転送する
     請求項1~7のいずれか1項に記載の復号装置。
  9.  該復号装置は、さらに、
     前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算部と、
     前記参照画像の一部の領域であって、前記動き補償演算部によって参照される参照領域の画素データを記憶する第3の記憶部と、
     前記参照領域の画素データを、前記第1及び第2の記憶部の一方から前記第3の記憶部に転送する参照領域転送部とを備える
     請求項1~8のいずれか1項に記載の復号装置。
  10.  前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第1のブロック、又は動きベクトルを示す情報を付加して符号化された第2のブロックであり、
     前記参照領域転送部は、前記第1のブロックに対応する前記参照領域の画素データを前記第2の記憶部から前記第3の記憶部に転送し、前記第2のブロックに対応する前記参照画像の画素データを前記第1の記憶部から前記第3の記憶部に転送する
     請求項9に記載の復号装置。
  11.  前記第2の記憶部は、前記動きベクトル演算部に直接アクセスされる探索領域記憶部と、前記探索領域記憶部に記憶されている前記探索領域を含み、且つ前記参照画像のうちの前記探索領域より広い領域の画素データを記憶している広範領域記憶部とを備え、
     前記参照領域転送部は、前記参照領域の画素データを前記広範領域記憶部から前記第3の記憶部に転送する
     請求項9又は10に記載の復号装置。
  12.  前記探索領域は、前記ブロックを含む前記符号化画像より再生順で前の参照画像に含まれる第1の探索領域と、再生順で後の参照画像に含まれる第2の探索領域とを含み、
     前記動きベクトル演算部は、前記第1及び第2の探索領域それぞれの探索範囲の画素データを前記第2の記憶部から読み出して絶対値差分和を算出する処理を、前記第1及び第2の探索領域内で前記探索範囲の位置をずらしながら繰り返し実行し、算出された絶対値差分和が最も小さい前記探索範囲の位置に基づいて前記動きベクトルを算出する
     請求項1~11のいずれか1項に記載の復号装置。
  13.  既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第1の記憶部と、前記第1の記憶部より記憶容量が小さく、且つ前記第1の記憶部よりデータの読み出し速度が速い第2の記憶部とを備える復号装置が、符号化画像を構成するブロックを復号する復号方法であって、
     前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第1の記憶部から前記第2の記憶部に転送する探索領域転送ステップと、
     前記第2の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、
     前記動きベクトル演算ステップで算出された動きベクトルを用いて、前記ブロックを復号する復号ステップとを含む
     復号方法。
  14.  既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第1の記憶部と、前記第1の記憶部より記憶容量が小さく、且つ前記第1の記憶部よりデータの読み出し速度が速い第2の記憶部とを備える復号装置に、符号化画像を構成するブロックを復号させるプログラムであって、
     前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第1の記憶部から前記第2の記憶部に転送する探索領域転送ステップと、
     前記第2の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、
     前記動きベクトル演算ステップで算出された動きベクトルを用いて、前記ブロックを復号する復号ステップとを、復号装置に実行させる
     プログラム。
  15.  既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第1の記憶部を備える復号装置に搭載され、符号化画像を構成するブロックを復号する集積回路であって、
     前記第1の記憶部より記憶容量が小さく、且つ前記第1の記憶部よりデータの読み出し速度が速い第2の記憶部と、
     前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第1の記憶部から前記第2の記憶部に転送する探索領域転送部と、
     前記第2の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、
     前記動きベクトル演算部で算出された動きベクトルを用いて、前記マクロブロックを復号する復号部とを備える
     集積回路。
PCT/JP2010/006009 2009-10-19 2010-10-07 復号装置、復号方法、プログラム、及び集積回路 WO2011048764A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011506521A JPWO2011048764A1 (ja) 2009-10-19 2010-10-07 復号装置、復号方法、プログラム、及び集積回路
CN201080003007.9A CN102197652B (zh) 2009-10-19 2010-10-07 解码装置、解码方法、程序以及集成电路
US13/121,041 US20110235716A1 (en) 2009-10-19 2010-10-07 Decoding apparatus, decoding method, program and integrated circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-240902 2009-10-19
JP2009240902 2009-10-19

Publications (1)

Publication Number Publication Date
WO2011048764A1 true WO2011048764A1 (ja) 2011-04-28

Family

ID=43900009

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/006009 WO2011048764A1 (ja) 2009-10-19 2010-10-07 復号装置、復号方法、プログラム、及び集積回路

Country Status (4)

Country Link
US (1) US20110235716A1 (ja)
JP (1) JPWO2011048764A1 (ja)
CN (1) CN102197652B (ja)
WO (1) WO2011048764A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016201784A (ja) * 2015-04-09 2016-12-01 日本電信電話株式会社 参照画像バッファ
JP2019216324A (ja) * 2018-06-11 2019-12-19 日本電信電話株式会社 バッファ装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101803388B (zh) * 2008-05-23 2012-11-21 松下电器产业株式会社 图像解码装置、图像解码方法、图像编码装置、以及图像编码方法
JP5698644B2 (ja) * 2011-10-18 2015-04-08 株式会社Nttドコモ 動画像予測符号化方法、動画像予測符号化装置、動画像予測符号化プログラム、動画像予測復号方法、動画像予測復号装置及び動画像予測復号プログラム
EP2740270A4 (en) * 2011-10-31 2015-04-29 Mediatek Inc APPARATUS AND METHOD FOR BUILDING REFERENCED CONTEXT TABLES TO PERFORM AN ENTROPTIC DECODING OF A MULTI-TILE ENCODED IMAGE AND CORRESPONDING ENTROPY DECODER
JP6490896B2 (ja) * 2013-12-17 2019-03-27 株式会社メガチップス 画像処理装置
CN103873874B (zh) * 2014-02-19 2017-06-06 同观科技(深圳)有限公司 一种基于可编程并行处理器的全搜索运动估计方法
JP6451175B2 (ja) * 2014-09-24 2019-01-16 富士ゼロックス株式会社 画像処理装置、システム及びプログラム
CN109729352B (zh) * 2017-10-27 2020-07-21 华为技术有限公司 确定仿射编码块的运动矢量的方法和装置
CN113347438B (zh) 2019-01-02 2023-09-29 Oppo广东移动通信有限公司 帧内预测方法及装置、视频编码设备、存储介质
WO2022110131A1 (zh) * 2020-11-30 2022-06-02 深圳市大疆创新科技有限公司 帧间预测方法、装置、编码器、解码器和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04311216A (ja) * 1991-04-09 1992-11-04 Toshiba Corp 外部記憶制御装置
JP2007281630A (ja) * 2006-04-03 2007-10-25 Matsushita Electric Ind Co Ltd 動き検出装置、動き検出方法、動き検出集積回路および画像符号化装置
WO2008108129A1 (ja) * 2007-03-06 2008-09-12 Nec Corporation メモリアクセス制御システム、メモリアクセス制御方法およびそのプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69536083D1 (de) * 1994-04-20 2010-08-05 Oki Electric Ind Co Ltd Gerät und Verfahren zur Kodierung und Dekodierung von Bildern unter Verwendung einer Kantensynthese und einer Wavelet-Rücktransformation
CN101005624B (zh) * 1997-02-13 2011-11-16 三菱电机株式会社 动态图象译码装置和方法
US20020015513A1 (en) * 1998-07-15 2002-02-07 Sony Corporation Motion vector detecting method, record medium on which motion vector calculating program has been recorded, motion detecting apparatus, motion detecting method, picture encoding apparatus, picture encoding method, motion vector calculating method, record medium on which motion vector calculating program has been recorded
US6961063B1 (en) * 2000-06-30 2005-11-01 Intel Corporation Method and apparatus for improved memory management of video images
JP3887178B2 (ja) * 2001-04-09 2007-02-28 株式会社エヌ・ティ・ティ・ドコモ 信号符号化方法及び装置並びに復号方法及び装置
JP2002325258A (ja) * 2001-04-25 2002-11-08 Nec Corp 画像符号化装置及びそれに用いる画像符号化方法
US7190724B2 (en) * 2002-04-12 2007-03-13 Seiko Epson Corporation Method and apparatus for transform domain video processing
US20030202603A1 (en) * 2002-04-12 2003-10-30 William Chen Method and apparatus for fast inverse motion compensation using factorization and integer approximation
JP4841101B2 (ja) * 2002-12-02 2011-12-21 ソニー株式会社 動き予測補償方法及び動き予測補償装置
JP4155118B2 (ja) * 2003-06-13 2008-09-24 カシオ計算機株式会社 静止画合成装置、及び動画像からの静止画合成方法
US20040252762A1 (en) * 2003-06-16 2004-12-16 Pai R. Lakshmikanth System, method, and apparatus for reducing memory and bandwidth requirements in decoder system
JP4931034B2 (ja) * 2004-06-10 2012-05-16 株式会社ソニー・コンピュータエンタテインメント 復号装置および復号方法、並びに、プログラムおよびプログラム記録媒体
US20070230579A1 (en) * 2006-03-31 2007-10-04 Masstech Group Inc. Serial processing of video signals using a programmable hardware device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04311216A (ja) * 1991-04-09 1992-11-04 Toshiba Corp 外部記憶制御装置
JP2007281630A (ja) * 2006-04-03 2007-10-25 Matsushita Electric Ind Co Ltd 動き検出装置、動き検出方法、動き検出集積回路および画像符号化装置
WO2008108129A1 (ja) * 2007-03-06 2008-09-12 Nec Corporation メモリアクセス制御システム、メモリアクセス制御方法およびそのプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TOMOKAZU MURAKAMI ET AL.: "Advanced B Skip Mode with Decoder-side Motion Estimation", ITU - TELECOMMUNICATIONS STANDARDIZATION SECTOR, STUDY GROUP 16 QUESTION 6, VIDEO CODING EXPERTS GROUP (VCEG), VCEG-AK12, 15 April 2009 (2009-04-15), pages 1 - 4, Retrieved from the Internet <URL:http://wftp3.itu.int/av-arch/video-site/0904_Yok/VCEG-AK12.zip> [retrieved on 20101101] *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016201784A (ja) * 2015-04-09 2016-12-01 日本電信電話株式会社 参照画像バッファ
JP2019216324A (ja) * 2018-06-11 2019-12-19 日本電信電話株式会社 バッファ装置
WO2019239951A1 (ja) * 2018-06-11 2019-12-19 日本電信電話株式会社 バッファ装置
JP7060802B2 (ja) 2018-06-11 2022-04-27 日本電信電話株式会社 バッファ装置
US11451805B2 (en) 2018-06-11 2022-09-20 Nippon Telegraph And Telephone Corporation Buffer apparatus

Also Published As

Publication number Publication date
US20110235716A1 (en) 2011-09-29
CN102197652A (zh) 2011-09-21
CN102197652B (zh) 2013-09-11
JPWO2011048764A1 (ja) 2013-03-07

Similar Documents

Publication Publication Date Title
JP5518069B2 (ja) 画像復号装置、画像符号化装置、画像復号方法、画像符号化方法、プログラムおよび集積回路
WO2011048764A1 (ja) 復号装置、復号方法、プログラム、及び集積回路
EP2618579B1 (en) Image decoding device, image encoding device, method for said devices, program, integrated circuit, and transcoder
US8718149B2 (en) Image coding method and image decoding method
JP5588438B2 (ja) 画像符号化方法及び画像符号化装置
WO2012046435A1 (ja) 画像処理装置、画像符号化方法および画像処理方法
JP6390883B2 (ja) 画像処理装置
WO2011161949A1 (ja) 画像復号装置、画像復号方法、集積回路およびプログラム
JP5999515B2 (ja) 画像処理装置、及び、画像処理方法
WO2013108330A1 (ja) 画像復号装置、画像符号化装置、画像復号方法および画像符号化方法
JP6260921B2 (ja) 画像処理装置および画像処理方法
JP5546044B2 (ja) 画像復号装置、画像符号化装置、画像復号回路及び画像復号方法
JP5468604B2 (ja) 画像復号装置、集積回路、画像復号方法及び画像復号システム
WO2013076897A1 (ja) 画像処理装置および画像処理方法
JP2011182132A (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、集積回路およびプログラム

Legal Events

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

Ref document number: 201080003007.9

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2011506521

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13121041

Country of ref document: US

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

Ref document number: 10824618

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 10824618

Country of ref document: EP

Kind code of ref document: A1