WO2007057986A1 - 動きベクトル算出装置および動きベクトル算出方法 - Google Patents

動きベクトル算出装置および動きベクトル算出方法 Download PDF

Info

Publication number
WO2007057986A1
WO2007057986A1 PCT/JP2006/300533 JP2006300533W WO2007057986A1 WO 2007057986 A1 WO2007057986 A1 WO 2007057986A1 JP 2006300533 W JP2006300533 W JP 2006300533W WO 2007057986 A1 WO2007057986 A1 WO 2007057986A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
global
macroblock
vector calculation
calculating
Prior art date
Application number
PCT/JP2006/300533
Other languages
English (en)
French (fr)
Inventor
Kazuhito Nishida
Original Assignee
Sharp Kabushiki Kaisha
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 Sharp Kabushiki Kaisha filed Critical Sharp Kabushiki Kaisha
Priority to US12/064,445 priority Critical patent/US20090268819A1/en
Priority to EP06711813A priority patent/EP1950972A1/en
Priority to CN2006800003643A priority patent/CN101080930B/zh
Publication of WO2007057986A1 publication Critical patent/WO2007057986A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present invention relates to a global motion vector calculation technique for calculating a motion vector used for inter-frame prediction when coding an input image.
  • encoding is performed by compressing the amount of moving image information mainly using the following three image conversions. That is, the first image conversion using intra-image (spatial) correlation, the second image conversion using inter-image (temporal) correlation, and the third using variable-length encoding according to the appearance probability of the code.
  • Image conversion in the second image conversion using temporal correlation, the moving direction and moving amount of the image between frames (input images) that differ in time are calculated as “motion vectors” in units of macroblocks.
  • the amount of moving picture information can be reduced by representing a frame with pixel information and motion vector information of the macroblock.
  • FIG. 1 is a diagram for explaining another example of motion vector calculation for each macroblock using the global motion vector.
  • the global motion vector (0101) that contains the macroblock ⁇ that contains the macroblock ⁇ whose motion vector is to be detected is The calculation is the same as the motion vector calculation. Then, it is considered that the movement of the macroblock ⁇ is within a predetermined range including the movement destination of the global macroblock ⁇ ′ indicated by this global motion beta.
  • the ability to get S Therefore, by calculating the range shown in (2) of Fig. 1 as the search range for the motion vector of macroblock ⁇ , the motion vector (0102) for macroblock a can be calculated without unnecessarily widening the search range. It can be done.
  • Patent Document 1 WO00Z05899
  • the above conventional techniques have the following problems. That is, as shown by the solid line in FIG. 2, if the calculated global motion beta is incorrect (correct, global motion vector is a dashed arrow), it is determined based on the incorrect global motion vector.
  • the search range is naturally different from the search range that should be determined. Therefore, there is a problem that the motion vector of the macroblock searched and calculated in the wrong search range is likely to be erroneously calculated.
  • the motion vector calculation error may cause a reduction in the efficiency of moving picture coding. This is because the motion vector calculated by such an error usually takes an extreme value. This is because the motion vector is calculated by referring to a completely different block due to an error. If the absolute value of the vector is extremely large, the Golomb code that achieves high-efficiency coding as the absolute value of the vector is close to 0 is a factor that reduces the coding efficiency. It can be both.
  • the present invention uses a global motion vector knowledge calculated in units of global macroblocks to determine a motion vector search range of a macroblock, and calculates a motion vector.
  • a vector calculation device and further includes a motion vector calculation device having the following functions for calculating the global motion vector.
  • a global macroblock is divided into, for example, four blocks (midnor blocks) a, b, c, d, and the middle motion that is the motion vector in that middle block.
  • Detect vectors From the detected middle motion vector, the middle motion that seems to have taken an abnormal value by, for example, “extreme vector exclusion”, “median processing”, or “abnormal value exclusion using standard deviation” processing, etc. Exclude vectors The Then, based on the remaining middle motion vector, this function calculates a more accurate global motion vector 0301 as shown in (2) of FIG.
  • the present invention provides a dividing unit that divides a global macroblock into a plurality of middle blocks, a middle motion vector detecting unit that detects a middle motion vector for each divided middle block, and a global macroblock.
  • a global motion vector calculation unit that calculates a global motion vector based on a middle motion vector of a middle block included in the global macroblock.
  • Embodiment 1 Outline of Embodiment 1 An example of a motion vector calculation apparatus according to the present embodiment is to determine a global motion vector calculated in units of global macroblocks and determine a motion block search range for macroblocks.
  • This is a motion vector calculation device that calculates a motion vector by using the motion vector detection device, and further includes the following functions. That is, when the global motion vector is calculated, the global macro block is changed to the middle block.
  • This is a motion vector calculation device having a function of calculating a more accurate global motion vector using a middle motion vector that is a motion vector in the middle block.
  • global macroblock refers to a block that is larger than a macroblock that is a unit of motion vector detection used in interframe prediction in moving picture coding, and the size of the block depends on the design as appropriate. I don't mind being able to set it.
  • the search range for motion vector detection is determined using the global motion vector detected in units of global macroblocks. In this way, in the calculation of motion vectors in units of macroblocks, the search range of the macroblock movement destination can be narrowed down by the global motion vector, so that the processing load on the entire apparatus can be suppressed.
  • the global macro block is divided into middle blocks, and a more accurate global motion vector is calculated using the middle motion vector.
  • FIG. 4 is a diagram illustrating an example of functional blocks in the motion vector calculation apparatus according to the present embodiment.
  • the “motion vector calculation device” (0400) of the present embodiment includes a “splitting unit” (0401), a “middle motion vector detection unit” (0402), and a “global motion vector calculation unit”. (0403).
  • a motion vector calculation device using a global motion vector a search range based on the global motion vector is determined, and a motion vector using the search range is determined. Needless to say, processing such as calculation is performed.
  • an arithmetic unit such as a CPU, a main memory, a bus, a storage device such as a hard disk or a nonvolatile memory, a storage medium such as a CD-ROM or a DVD-ROM, etc.
  • Hardware components such as media reading drives, transmission / reception ports for various communications and printing devices, other peripheral devices, driver programs for controlling these hardware, other application programs, and interfaces used for information input Hue Source.
  • the present invention can be realized not only as an apparatus but also as a method.
  • a part of such an invention can be configured as software.
  • a software product used for causing a computer to execute such software and a recording medium in which the product is fixed to a recording medium are naturally included in the technical scope of the present invention (the same applies throughout this specification). is there).
  • the "divider” (0401) has a function of dividing a global macroblock into a plurality of middle blocks. It should be noted that the number of divisions and the division shape can be arbitrarily set.
  • the “division” is not only a dynamic division in which the coordinates of the divided middle block are calculated based on the coordinate information of the global macroblock, for example, but also the following static division. It is okay. That is, a “global macro block middle block table” in which the coordinate information of the global macro block and the coordinate information of the divided middle block are tabulated in advance is stored in a storage device or the like.
  • the table is referenced using the global macro block indicated by the coordinate information as a key, and the coordinate information of the corresponding middle block that has already been divided is acquired.
  • the global macroblock is formed into a rectangular shape having a predetermined long side. And how to divide it into middle blocks. Note that these global macroblocks and a plurality of midole blocks generated by dividing the global macroblocks are retained by associating their respective identification information.
  • the “middle motion vector detection unit” (0402) has a function of detecting a middle motion vector for each divided middle block. This middle motion vector detection process is similar to the normal motion beta detection process. For example, the absolute difference between each middle pixel and the block in the reference frame of the middle block is calculated for each corresponding pixel. Take the value and calculate the sum as a correlation coefficient.
  • the entire reference block is searched while searching in units of one pixel or half pixel, and the correlation coefficient is calculated.
  • the block having the smallest correlation coefficient is specified as the movement destination of the middle block. .
  • the middle motion vector is detected from the direction and amount of movement of the middle block to the destination, it will be good.
  • the correlation coefficients of any three blocks are obtained.
  • the middle motion vector may be detected by processing called so-called log search, etc., by narrowing down the destination block based on the magnitude relationship.
  • the search amount when the search amount is set to “Z”, the amount of calculation for the motion destination search of the global macroblock whose horizontal size is “2a” X vertical size is “2b” "4ab XZ”.
  • the global macroblock is divided into four middle blocks with vertical size “a” X horizontal size “b”, the computational amount of the motion destination search is “Z” because the search amount is the same. , “Ab XZX 4”.
  • the method of calculating the global motion vector using the middle motion vector according to the present embodiment can be implemented almost the same as the calculation processing amount of the conventional global motion vector calculation.
  • the "global motion vector calculation unit” (0403) has a function of calculating a global motion vector of one global macroblock based on a middle motion vector of a middle block included in the global macroblock. .
  • This embodiment is characterized in that the global motion vector is calculated by the global motion vector calculation unit using a calculation process different from that of the conventional motion vector detection. In other words, it is detected by taking an extreme value by referring to a completely different block by “exclusion of extreme value vector”, “median processing”, or “exclusion of abnormal value using standard deviation”.
  • the global motion vector is calculated after excluding middle motion vectors that have abnormal values. The As a result, the global motion vector can be calculated more accurately than in the past.
  • FIGS an example of global motion vector calculation processing in the global motion vector calculation unit excluding the middle motion vector nore taking these extreme values
  • FIG. 7 is a diagram for explaining an example of a global motion vector calculation process in the global motion vector calculation unit.
  • the motion vector calculation apparatus of the present embodiment is characterized by having its “global motion vector calculation unit” (0703) force and “extreme value exclusion averaging means” (0704).
  • "Extreme Exclusion Averaging Means” (0704) calculates the global motion vector by averaging the sum of vector values excluding the middle motion vector that takes the maximum value and the middle motion vector that takes the minimum value from the middle motion vectors. It has a function to issue. For example, as shown in FIG. 7, the global macroblock is divided into nine middle blocks, and the middle motion vectors a, b, and i are detected.
  • each vector quantity is calculated and compared, and it is determined that among the nine middle motion vectors, the betalet having the largest beta quantity is “i” and the vector having the smallest vector quantity is “a”. It was done. Then, this extreme value exclusion averaging means averages the sum of the remaining middle motion vectors 3, c, ..., h, excluding the maximum vector "i” and the minimum vector "a”, and global motion It asks for a vector.
  • FIG. 8 is a diagram for explaining another example of the global motion vector calculation processing in the global motion vector calculation unit.
  • the motion vector calculation apparatus of the present embodiment is characterized by having its “global motion vector nore calculation unit” (0803) force and “median averaging means” (0804).
  • the “median averaging means” (0804) has a function of calculating a global motion vector by performing median processing on the middle motion vector.
  • “median processing” is a process in which, for example, vector components are arranged in order of magnitude, and the value located at the center (the average of the two central values if the number is an even number) is calculated as the average value. . For example, as shown in FIG.
  • middle motion vectors a, b, and i of nine middle blocks obtained by dividing a global macro block are detected. Then, the vector components are arranged in ascending order of their values. Then, since the median can be specified as “4, 3”, the global motion vector component is set to “4, 3”. "And so on.” In this median processing, it may be possible to perform processing such as obtaining the median value of the remaining vector components by excluding the vector having the extreme value before obtaining the median value of the components.
  • FIG. 9 is a diagram for explaining another example of the global motion vector calculation process in the global motion vector calculation unit.
  • the motion vector calculation apparatus of the present embodiment is characterized by having its “global motion vector calculation unit” (0903) force and “standard deviation utilization averaging means” (0904).
  • the “standard deviation utilization averaging means” (0904) has a function of calculating a global motion vector by averaging the sum of the middle motion vector values having a value within ⁇ 3 ⁇ of the middle block motion vectors.
  • “ ⁇ ” is the standard deviation, that is, the square root of the variance calculated by the average value of “the square of (the difference between each vector value and its average value)”.
  • the middle motion vector not included in ⁇ 3 is an abnormal value that appears with a probability of 0 ⁇ 3%. Therefore, middle motion vectors that take these abnormal values, such as a and i, are excluded, and the sum of the remaining middle motion vectors b, c, ..., h is averaged to obtain a global motion vector. .
  • the middle motion vector having an extreme vector value can be excluded, and therefore, a more accurate global motion vector can be calculated. Then, the search range for calculating the motion vector can be determined more accurately based on the accurate and accurate global motion vector, and the motion vector can be calculated.
  • FIG. 10 is a schematic diagram showing an example of the hardware configuration of the motion vector calculation device of the present embodiment.
  • the functions of the dividing unit, the middle motion vector detecting unit, and the global motion vector calculating unit in the motion vector calculating apparatus of the present embodiment are “calculators” ( 1001), “main memory” (1002) for storing data for that purpose, “image input means” (1003) for inputting an image subject to high-efficiency encoding, and “Video memory "(1004) etc. It is realized by. They are connected to each other via a data communication path such as a system bus (1005) to transmit and receive information.
  • a data communication path such as a system bus (1005) to transmit and receive information.
  • the "main memory” provides a work area that is a work area of a program executed by the computing unit, and a data area that stores data to be processed by the program.
  • a plurality of memory addresses are assigned to the “main memory” and “video memory”, and programs executed by the “calculator” specify the memory addresses and access them to each other. It is possible to exchange and process.
  • an image to be subjected to high-efficiency encoding is input from the “image input unit”.
  • the input images here are various, such as moving image data that is encoded with analog broadcast waves received by a TV tuner without compression, or uncompressed encoded moving image data that is shot with a digital video camera. good.
  • an encoded moving image obtained by developing moving image data encoded with high efficiency may be used.
  • the images that make up the moving image input here are input to a predetermined memory address of the video memory via the system bus, for example, input image 1 (first frame of moving image data) to memory address A, and input to memory address B.
  • Image 2 second frame of moving image data
  • ... and so on are stored.
  • the input image data is sequentially stored at a predetermined memory address of the "main memory”, and DCT conversion processing, quantization processing, and the like are performed by the arithmetic processing of the "calculator”.
  • First image conversion using correlation is performed.
  • image inverse transform inverse DCT transform, inverse quantization
  • image motion detection is performed to perform image compression by inter-frame prediction, and the motion detection processing is performed using the inversely converted image and the input image.
  • global motion vector calculation processing is further performed to reduce the amount of calculation processing and improve detection accuracy in this motion detection processing.
  • the global motion vector for the input image 1 of the global macroblock of the input image 2 is calculated so that the configuration matches the macroblock used for the motion prediction in the forward prediction process of inter-frame prediction. .
  • the middle motion vector detection process and the global motion vector based on the middle motion vector are performed as follows. of Perform the calculation process.
  • the global motion vector calculation process and the middle motion vector detection process include a method using the inversely transformed image and the input image, and a method using only the input image. The detection method using only images will be described as an example.
  • the middle block dividing process of the global macroblock is performed. Therefore, the global motion block coordinate information for calculating the global motion vector in input image 2 is first acquired by the instructions of the global motion vector calculation program developed in the main memory peak area, and the main memory is obtained. Stored at memory address 1. Then, for example, according to the instruction indicating that “obtain the coordinate information of the middle block obtained by dividing the global macroblock using the coordinate information of the global macroblock stored in memory address 1 as a key” The coordinate information of the corresponding middle block 1, 2, 3, 4 is acquired by referring to “Global Macro Block-Middle Block Tape Nore”. The coordinate information of the middle block is stored in memory addresses 2, 3, 4, and 5 of the main memory, respectively.
  • a middle motion vector detection process in the middle block stored in each memory address of the main memory is performed.
  • the detection of the middle movement beta is preferably performed by the same process as that of the conventional movement beta. Therefore, in order to calculate the above-described correlation coefficient, the pixel information of the middle block 1 is acquired based on the coordinate information. Specifically, based on the coordinate information stored in the memory address 2, the pixel information constituting the middle block 1 of the input image 2 stored in the video memory is stored in the predetermined memory address of the main memory. A command such as “Se” is sent and executed.
  • identification information of the input image before or after the reference destination of the middle block 1, for example, the input image 1, is specified and specified memory in the main memory via the system bus or the like. Stored in the address. Then, in the same way as the Midoret block, in order to calculate the correlation number, the pixel information constituting the block is acquired and stored in the main memory based on the coordinate information of the block 1 of the input image 1. . Also, the force that does not move (search) the block in half-pixel units (or 1 pixel or 1Z4 pixel), and so on. The pixel information constituting the memory is acquired and stored in the main memory.
  • the pixel information of the middle block and the pixel information of those blocks are specified by the memory address.
  • the difference value between the corresponding pixels of the middle block 1 and the block 1 of the input image 1 (reference destination) Calculate the sum of absolute values and store the calculation result (correlation coefficient) at a predetermined memory address in the main memory. Store to address.
  • the correlation coefficients are calculated for the other blocks 2, 3,... Of the other input image 1, and stored in another predetermined memory address of the main memory.
  • each correlation coefficient is specified by the memory address. For example, “Compare the size of the operation results (number of correlations) stored in the main memory and specify the minimum correlation coefficient”.
  • the correlation coefficient magnitude comparison is executed by the arithmetic processing in the arithmetic unit. Then, the correlation coefficient that takes the minimum is specified, and the block force associated with the correlation coefficient is specified as the movement destination of the middle block 1 of the input image 2 in the input image 1. Then, the middle motion vector 1 is calculated from the coordinate information of the middle block 1 and the block specified as the movement destination by the operation of the calculator, and stored in the memory address 11 of the main memory. The same middle motion vector calculation processing is performed for middle blocks 2, 3, and 4. Similarly, other global macroblocks ⁇ , ⁇ ,... Of input image 2 are subjected to middle block division processing and middle motion solid tone detection processing.
  • a global motion vector is calculated using the detected middle motion vector.
  • “extreme vector exclusion” extreme exclusion averaging means
  • “median processing” median processing means
  • “abnormal value exclusion using standard deviation” Standard deviation use average method. So, for example, for extreme value vector exclusion processing, “Middle motion vector vector size comparison is performed and the middle motion vector excluding the middle motion vector that takes the maximum value and the middle motion vector that takes the minimum value.
  • the magnitude comparison results of each vector component are stored in the memory address in order, and the middle number of vectors (if the number is even, the middle two numbers) is stored in order. It is recommended that an instruction that uses a global motion vector component as the component (or the average of the components when the number of vectors is an even number) and an arithmetic unit for this are performed.
  • the standard deviation ⁇ of the vector value is calculated, and the average of middle motion vectors having vector values within ⁇ 3 ⁇ is used as the global motion vector. It is preferable that the instruction and the arithmetic unit for the instruction are performed.
  • the coordinates of the search range are calculated by the calculation in the arithmetic unit, similarly to the conventional motion vector detection using the global motion vector.
  • Information, etc. are calculated, and search based on the information and calculation of the motion vector are performed.
  • FIG. 11 is a flowchart showing an example of a process flow in the motion vector calculation apparatus of the present embodiment.
  • the steps shown below may be processing steps that constitute a program for controlling a computer recorded on a medium.
  • the global macro block is divided into a plurality of middle blocks (step S1101), and a middle motion vector is detected for each divided middle block (step S1102).
  • a global motion vector of one global macroblock is calculated based on the middle motion vector of the middle block included in the detected global macroblock (step S1103).
  • the motion vector search range of the macroblock is determined based on the calculated global motion vector (step S 1104), and the motion vector is calculated using the search range (step S 1105).
  • FIG. 12 is a diagram for explaining an example of an outline of a motion vector calculation apparatus according to the present embodiment.
  • the global motion vector of the block including the human moving in the direction of arrow P, the moving object, and the background is, for example, vector G
  • the vector and the movement of the person and the background are combined. Therefore, there is a possibility that false detection may occur in motion vector calculation in the macro block of the human part included in this global macro block. Therefore, in this embodiment, as shown in FIG.
  • the global macroblock is composed of blocks that contain a large number of moving objects (which seems to be), blocks that contain too much, and blocks that contain too much. Divide the global macroblocks in a non-uniform manner.
  • the global motion vector in the block including the moving object can be calculated as a vector that matches the movement of the moving object while suppressing the influence of the motion vector such as the background that does not move, such as the vector F. .
  • the influence of the motion vector of the moving object can be suppressed, and it can be calculated as a vector that matches the background that does not move (here, the pan movement of the camera).
  • FIG. 13 is a diagram illustrating an example of functional blocks in the motion vector calculation apparatus according to the present embodiment.
  • the “motion vector calculation device” (1300) of this embodiment uses the global motion vector calculated in units of global macroblocks to determine the motion vector search range of macroblocks.
  • This is a motion vector calculation device for calculating a motion vector, and further includes a “frame dividing unit” (1301) and a “predetermined divided global motion vector calculating unit” (1302).
  • the "frame dividing unit” (1301) has a function of dividing a frame area into a plurality of unequal global macroblocks according to a predetermined rule. This division is performed in advance, for example. There is a method of dividing according to a predetermined mode. For example, assuming that an important subject is located in the central part of a normal moving image, the central part of the frame is a global macroblock that is subdivided, and the peripheral part of the frame is a global macroblock that has a larger area. Even if it is a division of,.
  • the division processing in this frame division unit follows the unequal division pattern as described above, for example, a table indicating the coordinates of each global macroblock is prepared and used for the processing in this frame division unit. Method. In other words, as an example of the “predetermined rule”, there is a coordinate table that holds coordinate information indicating the division pattern.
  • the frame may be divided into global macroblocks that are broadly divided in the horizontal direction.
  • a global macro block that mainly includes catchers, batters, and pitchers according to the typical scene composition.
  • information specifying the type of moving image to be encoded may be acquired by selecting a mode by the user, and the division pattern as described above may be selected.
  • a certain record holds a motion vector history for each block of a predetermined frame (the past 10 frames, etc.), and based on the history, a region with a large amount of motion is subdivided and the amount of motion is small. Even if you select a rule that divides the area into large areas, it's okay. Similarly, a rule such as using a history and combining similar motion vectors into a new global motion vector may be used.
  • the “predetermined global motion vector calculation unit” (1302) has a function of calculating the global motion vector of the global macroblock obtained by the division.
  • This global motion betaton calculation process can be calculated by the same process as the conventional global motion vector calculation process using the correlation coefficient, except that the shape of the global motion betatone is not uniform. Therefore, the explanation is omitted.
  • FIG. 15 shows the motion vector calculation of this embodiment. It is the schematic showing an example of the hardware constitutions in an output device. An example of the operation of each hardware component in the global motion vector calculation process of this embodiment will be described using this figure.
  • the functions of the frame dividing unit and the pre-divided global motion vector detecting unit in the motion vector calculating apparatus of the present embodiment are the “calculator” (1501) for calculating data, and therefore “Main memory” (1502) for storing the data of the image, “image input means” (1503) for inputting the image to be subjected to high-efficiency encoding, and “video memory” (1504) for storing the input image ), And a storage device (1506) that stores and stores a coordinate table indicating an uneven division pattern of the global macroblock. These are connected to each other through a data communication path such as a system bus (1505) to transmit and receive information.
  • a data communication path such as a system bus (1505) to transmit and receive information.
  • an image to be subjected to high-efficiency encoding is input from the “image input unit”.
  • the input image here may be various as in the case of the first embodiment, such as analog data encoded video data.
  • the images constituting the moving image input are transferred to a predetermined memory address of the video memory via the system bus, for example, input image 1 (first frame of moving image data) at memory address A, and memory address B.
  • Input image 2 (second frame of moving image data), etc. are stored.
  • the input image data is sequentially stored at a predetermined memory address of the "main memory”, and DCT conversion processing, quantization processing, and the like are performed by the arithmetic processing of the "calculator", so that the image (space) ) First image conversion using correlation is performed.
  • an image inverse transform (inverse DCT transform, inverse quantization) process is performed to generate an inversely transformed image.
  • global motion vector calculation processing is performed using the inversely transformed image and the input image or a plurality of input images.
  • the global motion vector calculation processing is performed based on the coordinate information of the global macroblock 1 (after the predetermined division) stored in the memory address of the main memory. Done.
  • the calculation process is similar to the conventional global motion vector calculation process, for example, using a correlation coefficient that is the sum of absolute values of the difference values of the corresponding pixels.
  • the calculated global motion vector is stored in the memory address 11 of the main memory. For other global macroblocks 2, 3,..., The global motion vector is calculated in the same way and stored in a predetermined memory address.
  • FIG. 16 is a flowchart showing an example of a process flow in the motion vector calculation apparatus of the present embodiment.
  • the steps shown below may be processing steps that constitute a program for controlling a computer recorded on a medium.
  • the frame region is divided into a plurality of unequal global macroblocks according to a predetermined rule (step S1601), and the global motion vector of the global macroblock obtained by the division is calculated (step S1601). S1602).
  • a motion vector search range of the macroblock is determined based on the calculated global motion vector (step S1603), and a motion vector is calculated using the search range (step S1604).
  • Embodiment 3 Overview of Embodiment 3 [0049] This embodiment is based on Embodiment 2, and holds a plurality of rules, and selectively applies the rules to make the frames uneven. It is further characterized by the ability to divide into global macroblocks.
  • FIG. 17 is a diagram illustrating an example of functional blocks in the motion vector calculation apparatus according to the present embodiment.
  • the “motion vector calculation device” (1700) of the present embodiment is based on the second embodiment, and the “frame dividing unit” (1701) and the “predetermined divided global motion vector calculation”. Part "(1702). Since these “frame dividing unit” and “predetermined divided global motion vector calculating unit” have already been described in the second embodiment, description thereof will be omitted.
  • the feature point of the motion vector calculation apparatus of this embodiment is that it further includes a “rule holding unit” (1703) and a “selection unit” (1704).
  • the “rule holding unit” (1703) has a function of holding a plurality of the predetermined rules.
  • This rule holding unit can be realized by a magnetic recording device such as a hard disk drive, a non-volatile memory, or an optical medium such as a DVD disk and its reading drive.
  • FIG. 18 is a conceptual diagram for explaining an example of the predetermined rule.
  • the predetermined rule is, for example, a rule that specifies a division pattern of a global macroblock.
  • a division pattern is set in association with the mode specified by the user, and based on information indicating the mode input from the interface, for example, a normally shot video
  • the frame is divided based on the coordinate information indicated by pattern 1 or the like.
  • pattern matching processing on the input image in FIG. 18, for example, a position where an important subject is present is detected, and the position indicated by the division pattern set according to the detection result is detected.
  • the frame is divided based on the mark information.
  • FIG. 19 is a diagram for explaining an example of another predetermined rule.
  • the middle block vector motion described in the first embodiment is used. That is, as shown in (1) of FIG. 19, first, each middle motion vector is calculated for each middle block. Then, the vector values are compared between adjacent or discrete blocks, and the middle block having approximate vectors within a predetermined range, for example, 1, 2, 9, 10 is grouped as a global macroblock A. That ’s right.
  • the predetermined rule in this example defines a range for the approximation of the vector, it is acceptable.
  • the predetermined rule force as described above is selected in the next selection unit and applied as a frame division rule.
  • the “selection unit” (1704) has a function of selecting one rule from a plurality of held rules and using it as a rule in the frame division unit.
  • the selection criterion may be based on, for example, mode information selected and input by the user via the interface, or position information within the frame of an important subject detected by pattern matching.
  • the selection by the selection unit is a configuration in which a division method is selected, such as whether or not to use global macroblock division using middle blocks. Also good.
  • the above-mentioned information as a selection criterion may be acquired as an “attribute value” by the motion vector calculation apparatus of the present embodiment, and the selection may be performed based on the attribute value.
  • FIG. 20 shows an example of functional blocks in a motion vector calculation apparatus having an “attribute value acquisition unit” that acquires this attribute value.
  • “dynamic vector calculation device” (2000) includes “frame division unit” (2001), “global motion vector calculation unit after predetermined division” (2002), It has a “rule holding unit” (2003) and a “selecting unit” (2004). Furthermore, it has an “attribute value acquisition unit” (2005).
  • the “attribute value acquisition unit” (2005) has a function of acquiring an attribute value of a moving image for which a motion vector is to be calculated.
  • the “attribute value” is a value indicating the mode information selected and input by the user via the interface, a value indicating the position of the important subject in the frame detected by pattern matching, or the like. Glo using blocks For example, a value indicating whether or not to use division of one macroblock is used. Then, by selecting a rule according to the acquired attribute value, it becomes possible to divide the global macroblock according to the input image.
  • FIG. 21 is a flowchart showing an example of the process flow in the motion vector calculation apparatus of the present embodiment.
  • the steps shown below may be processing steps that constitute a program for controlling a computer recorded on a medium.
  • an attribute value of a moving image for which a motion vector is to be calculated is acquired (step S2101), and one rule is selected from a plurality of previously held rules based on the attribute value. (Step S2102).
  • the frame region is divided into a plurality of unequal global macroblocks according to the selected normal (step S2103), and the global motion vector of the global macroblock obtained by the division is calculated (step S2104). ).
  • a motion vector search range of the macroblock is determined (step S2105), and a motion vector is calculated using the search range (step S2106).
  • the motion vector calculation device selects a rule to be applied to the division of the frame region according to the attribute value of the image. I can do it. Therefore, it is possible to perform unequal division of global macroblocks that match the input image, and to determine a search range that more accurately corresponds to the movement of each macroblock included in each global macroblock.
  • the power S can be calculated.
  • FIG. 1 is a diagram for explaining another example of motion vector calculation in units of macroblocks using a global motion vector, which is a conventional technique.
  • FIG. 2 A diagram for explaining the problems in the calculation of motion vectors in macroblock units using global motion vectors in the prior art
  • FIG. 3 is a conceptual diagram for explaining an example of a motion vector calculation apparatus according to the first embodiment.
  • FIG. 4 is a diagram illustrating an example of functional blocks in the motion vector calculation apparatus according to the first embodiment.
  • FIG. 5 is a diagram for explaining an example of division in the dividing unit of the motion vector calculating apparatus according to the first embodiment.
  • FIG. 7 is a diagram for explaining an example of a global motion vector calculation process in the global motion vector calculation unit of the motion vector calculation device according to the first embodiment.
  • FIG. 8 is a diagram for explaining another example of the global motion betaton calculation process in the global motion vector calculation unit of the motion vector calculation apparatus according to the first embodiment.
  • FIG. 9 is a diagram for explaining another example of the global motion vector calculation process in the global motion vector calculation unit of the motion vector calculation apparatus of the first embodiment.
  • 10 Motion vector calculation of the first embodiment. Schematic diagram showing an example of the hardware configuration of the device
  • FIG. 11 A flow chart showing an example of the processing flow in the motion vector calculation apparatus of the first embodiment.
  • FIG. 17 A diagram showing an example of a functional block in the motion vector calculation device of the third embodiment. [18] For explaining an example of the predetermined rule held in the rule holding unit of the motion vector calculation device of the third embodiment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

明 細 書
動きベクトル算出装置および動きベクトル算出方法
技術分野
[0001] 本発明は、入力画像を符号ィ匕する際のフレーム間予測に用いられる動きベクトルを 算出するための、グローバル動きベクトルの算出技術に関する。
背景技術
[0002] 従来、動画像の高効率符号ィ匕に際しては、主に以下の 3つの画像変換を用いて動 画像情報量を圧縮し符号化が行われている。すなわち画像内(空間)相関を利用し た第一の画像変換、画像間(時間)相関を利用した第二の画像変換、そして符号の 出現確率に応じた可変長符号化を利用した第三の画像変換である。その中で、時間 相関を利用した第二の画像変換では、時間的に異なるフレーム(入力画像)間にお ける画像の移動方向と移動量をマクロブロック単位で「動きベクトル」として算出し、そ のマクロブロックの画素情報と動きベクトルの情報とによってフレームを表現すること で動画像情報量を削減することができる。
[0003] し力、し、この「動きベクトル」の算出処理において、マクロブロックの移動先(または移 動元)となる別のフレーム内のブロックを探索しょうとすると、例えばスポーツ映像など 動き量の多い動画像ではその探索範囲を広く取る必要があり、従って、その演算量も 膨大となる可能性があった。そこで、特許文献 1では、現フレームの縮小画像を利用 して、最初に画像全体でのグローバルな動きベクトルを算出し、そのグローバル動き ベクトルを利用してマクロブロックの移動先サーチ(探索)範囲を絞り込んだうえで動 きべクトノレを算出する、という技術が開示されている。
[0004] 図 1に示すのは、このグローバル動きベクトルを利用した、マクロブロック単位の動き ベクトル算出の別の一例を説明するための図である。この図 1の(1)にあるように、ま ずは動きベクトルを検出したいマクロブロック αを含むさらに大きな(グローノくル)マク ロブロック α Ίこおけるグローバル動きべクトノレ(0101)を、通常の動きベクトル算出と 同様の処理にて算出する。すると、このグローバル動きべタトノレで示されるグローバル マクロブロック α 'の移動先を含む所定の範囲内にマクロブロック αの移動があると考 えること力 Sできる。したがって、図 1の(2)で示す範囲 をマクロブロック αの動きべク トルの探索範囲として演算することで、探索範囲を無駄に広げずにマクロブロック a の動きベクトル (0102)を算出することができる、という具合である。
特許文献 1: WO00Z05899号
発明の開示
発明が解決しょうとする課題
[0005] しかし、上記従来の技術には、以下のような課題があった。すなわち、図 2の実線で 示すように、算出したグローバル動きべタトノレが誤ってレ、た場合(正しレ、グローバル動 きべクトノレは破線矢印)、その誤ったグローバル動きベクトルに基づいて決定された 探索範囲が当然本来決定されるべき探索範囲とは異なることになる。したがってその 誤った探索範囲で探索され算出されたマクロブロックの動きベクトルも誤って算出さ れる可能性が高くなる、という課題である。また、その動きベクトル算出の誤りによって 、動画像符号化の効率低下を引き起こす可能性がある、という課題もある。なぜなら ば、通常このような誤りにより算出された動きベクトルは極端な値をとることが多い。そ れは、誤りによって本来とは全く異なるブロックを参照して動きベクトルを算出するた めである。そして、そのベクトルの絶対値が極端に大きい値をとる場合、ベクトルの絶 対値が 0に近いほど高効率符号化を達成するゴロム符号ィ匕などにおいては、その符 号化効率を低下させる要因ともなりうる、ということである。
課題を解決するための手段
[0006] 以上の課題を解決するために、本発明は、グローバルマクロブロック単位で算出さ れたグローバル動きべクトノレを、マクロブロックの動きべクトノレ探索範囲決定に利用し て動きベクトルを算出する動きベクトル算出装置であって、さらにそのグローバル動き ベ外ルの算出に関して以下のような機能を備える動きべ外ル算出装置を提供する
。すなわち、図 3の(1)に示すようにグローバルマクロブロックひ'を、例えば 4つのブ ロック(ミドノレブロック) a、 b、 c、 dに分割し、そのミドルブロックにおける動きベクトルで あるミドル動きベクトルを検出する。そしてその検出されたミドル動きベクトルから、例 えば「極値ベクトルの除外」や「メディアン処理」、あるいは「標準偏差を利用した異常 値除外」処理などによって異常値をとつていると思われるミドル動きベクトルを除外す る。そして残ったミドル動きベクトルに基づいて、図 3の(2)に示すように、より正確な グローバル動きベクトル 0301を算出する機能である。そのために本発明は、グロ一 バルマクロブロックを複数のミドルブロックに分割する分割部と、分割されたミドルブロ ックごとにミドル動きベクトルを検出するミドル動きベクトル検出部と、一のグローバル マクロブロックのグローバル動きベクトルを、そのグローバルマクロブロックに含まれる ミドルブロックのミドル動きベクトルに基づいて算出するグローバル動きベクトル算出 部と、を有する。
発明の効果
[0007] 以上のような構成をとる本発明によって、ミドル動きベクトル算出において誤った演 算結果が算出されても、「極値ベクトルの除外」や「メディアン処理」、あるいは「標準 偏差を利用した異常値除外」などの処理によって前述のように極端な値をとることの 多いその誤った演算結果を除外することができ、したがって、より正確なグローバル 動きべクトノレを算出することができる。したがって、その正確なグローバル動きベクトル に基づいて動きベクトル算出用の探索範囲をより正確に決定することができ、また、 その正確な動きベクトル算出によって、絶対値が 0に近いほど高符号ィ匕を達成するゴ ロム符号ィ匕などにおいて効率的な符号化を行うこともできる。
発明を実施するための最良の形態
[0008] 以下に、図を用いて本発明の実施の形態を説明する。なお、本発明はこれら実施 の形態に何ら限定されるものではなぐその要旨を逸脱しない範囲において、種々な る態様で実施しうる。なお、実施例 1は、主に請求項 1, 8,について説明する。また、 ミドル動きベクトルの除外処理に関する請求項 2, 3, 4, 9, 10, 11についても説明す る。また、実施例 2は、主に請求項 5, 12について説明する。また、実施例 3は、主に 請求項 6, 7, 13, 14について説明する。
[0009] 《実施例 1》 く実施例 1の概要〉 本実施例の動きベクトル算出装置の一例は、 グローバルマクロブロック単位で算出されたグローバル動きベクトルを、マクロブロック の動きべ外ル探索範囲決定に利用して動きベクトルを算出する動きべ外ル算出装 置であって、さらに以下のような機能を備えた動きベクトル検出装置である。すなわち 、グローバル動きベクトルの算出に際し、そのグローバルマクロブロックをミドルブロッ クに分割し、そのミドルブロックにおける動きベクトルであるミドル動きベクトルを利用し より正確なグローバル動きべ外ルを算出する機能を備えた動きベクトル算出装置で ある。
[0010] なお、「グローバルマクロブロック」とは、動画像の符号化におけるフレーム間予測で 利用される動きベクトルの検出単位であるマクロブロックよりも大きなブロックをいうが 、その大きさは適宜設計により設定可能であって構わなレ、。そして、このグローバル マクロブロック単位で検出されたグローバル動きベクトルを利用して動きベクトル検出 のための探索範囲が決定されることになる。このように、マクロブロック単位での動き ベクトル算出において、グローバル動きべクトノレによってマクロブロック移動先の探索 範囲を絞りこむことができるので装置全体での処理負荷を抑えることができる。
[0011] しかし、このグローバル動きベクトルが誤って算出された場合には、前述のように動 きべタトノレの誤検出や符号ィ匕効率の低下などの事態を引き起こす可能性が高い。そ こで、本実施例ではグローバルマクロブロックをミドルブロックに分割し、そのミドル動 きべクトノレを利用してより正確なグローバル動きベクトルを算出する。
[0012] く実施例 1の構成〉 図 4に示すのは、本実施例の動きベクトル算出装置における 機能ブロックの一例を表す図である。この図にあるように、本実施例の「動きべクトノレ 算出装置」(0400)は、「分割部」(0401)と、「ミドル動きベクトル検出部」(0402)と、 「グローバル動きベクトル算出部」(0403)と、を有する。なお、本発明では構成要件 として明示していないが、グローバル動きベクトルを利用した動きベクトル算出装置と して、グローバル動きベクトルに基づく探索範囲の決定や、その探索範囲を用いた動 きべタトノレの算出などの処理が行われることは言うまでもない。
[0013] なお、以下に記載する本装置の機能ブロックは、ハードウェア、ソフトウェア、又はハ 一ドウエア及びソフトウェアの両方として実現され得る。具体的には、コンピュータを利 用するものであれば、 CPUなどの演算器や主メモリ、バス、あるいはハードディスクや 不揮発性メモリなどの記憶装置、 CD— ROMや DVD— ROMなどの記憶メディア、 それらメディアの読取ドライブ、各種通信や印刷機器用の送受信ポート、その他の周 辺装置などのハードウェア構成部や、それらハードウェアを制御するためのドライバ プログラムやその他アプリケーションプログラム、情報入力に利用されるインターフエ ースなどが挙げられる。そして、これらハードウェアやソフトウェアは、メモリ上に展開し たプログラムを演算器で順次演算処理したり、メモリやハードディスク上に保持されて いるデータや、インターフェースを介して入力されたデータなどを加工、蓄積、出力 処理したり、あるいは各ハードウェア構成部の制御を行ったりするために利用される。 また、この発明は装置として実現できるのみでなぐ方法としても実現可能である。ま た、このような発明の一部をソフトウェアとして構成することができる。さらに、そのよう なソフトウェアをコンピュータに実行させるために用いるソフトウェア製品、及び同製品 を記録媒体に固定した記録媒体も、当然この発明の技術的な範囲に含まれる (本明 細書の全体を通じて同様である)。
[0014] 「分割部」 (0401 )は、グローバルマクロブロックを複数のミドルブロックに分割する 機能を有する。なお、その分割数や分割形状などは任意に設定可能である。また、 その「分割」は、例えばグローバルマクロブロックの座標情報に基づレ、て分割後のミド ルブロックの座標が演算される動的な分割のみならず以下のような静的な分割であ つても良い。すなわち予めグローバルマクロブロックの座標情報とその分割されたミド ルブロックの座標情報とをテーブル化した「グローバルマクロブロック ミドルブロック テーブル」を記憶装置などに記憶しておく。そして、分割においては座標情報で示さ れるグローバルマクロブロックをキーとしてそのテーブルを参照し、すでに分割されて レ、る対応したミドルブロックの座標情報を取得する、という方法である。ただし、いず れの複数分割においても、図 5の(1)に示すように、ミドルブロック同士が重ならない ような分割であることが望ましい。なぜならば、図 5の(2)に示すように、ミドノレブロック 同士が重なっている場合、ミドルブロック a、 b、 c、 dのミドル動きベクトルを利用してグ ローバル動きベクトルを算出する際に、その重なり部分を考慮しなければならないな ど不要な演算処理が必要になるからである。
[0015] そして、この分割部での具体的なグローバルマクロブロックの分割処理方法の一例 として、例えば、グローバルマクロブロックの座標情報を利用し、そのグローバルマク ロブロックを、所定長辺を有する長方形状のミドルブロックに分割する方法などが挙 げられる。なお、これらグローバルマクロブロックと、それを分割して生成された複数の ミドノレブロックとは、それぞれの識別情報などが関連付けられるなどして保持される。 [0016] 「ミドル動きべクトノレ検出部」(0402)は、分割されたミドルブロックごとにミドル動きべ タトルを検出する機能を有する。なお、このミドル動きベクトルの検出処理は、通常の 動きべタトノレの検出処理同様に、例えばミドルブロックと、そのミドルブロックの参照先 フレーム内にあるブロックとの間で、対応画素ごとに差分の絶対値をとり、その総和を 相関係数として算出する。そして参照先フレーム内を一画素や半画素単位などでサ ーチしながら全探索しそれぞれ相関係数を算出し、その相関係数が最も小さいプロ ックをそのミドルブロックの移動先として特定する。そして、そのミドルブロックの移動 先への移動方向と移動量からミドル動きベクトルが検出される、という具合で検出する と良レ、。もちろんこのような参照先フレーム内のブロックを半画素単位などで全てサー チし相関係数を演算する検出処理は一例であり、演算負荷を下げるため任意の 3つ のブロックの相関係数を求め、その大小関係から移動先のブロックを絞り込んでいく 、いわゆるログサーチと呼ばれる処理などでミドル動きベクトルを検出しても構わない
[0017] なお、図 6に示すように、例えば横サイズが「2a」 X縦サイズが「2b」のグローバルマ クロブロックの動き先探索の演算量は、その探索量を「Z」とした場合、「4ab X Z」であ る。一方、そのグローバルマクロブロックを、縦サイズが「a」 X横サイズが「b」のミドル ブロック 4個に分割した場合、その動き先探索の演算量は探索量が同じ「Z」であるた め、「ab X Z X 4」となる。このように、本実施例によってミドル動きベクトルを利用して グローバル動きベクトルを算出する方法は、従来のグローバル動きべクトノレ算出の演 算処理量とほとんど変わらず実施することができる。
[0018] 「グローバル動きベクトル算出部」(0403)は、一のグローバルマクロブロックのグロ 一バル動きベクトルを、そのグローバルマクロブロックに含まれるミドルブロックのミド ル動きベクトルに基づいて算出する機能を有する。そして、本実施例はこのグローバ ル動きべクトノレ算出部でのグローバル動きベクトルの算出において従来の動きべタト ル検出とは異なる演算処理により算出する点を特徴としている。すなわち、「極値べク トルの除外」や「メディアン処理」、あるいは「標準偏差を利用した異常値除外」などに よって、本来とは全く異なるブロックを参照しため極端な値を取って検出された異常 値をとるミドル動きベクトルを除外した上でグローバル動きベクトルを算出する点であ る。そしてそれにより、従来よりも正確にグローバル動きベクトルを算出することができ る。以下、図 7から図 9を利用して、これら極値をとるミドル動きべクトノレを除外したグロ 一バル動きベクトル算出部でのグローバル動きベクトルの算出処理例について説明 する。
[0019] 図 7に示すのは、グローバル動きベクトル算出部でのグローバル動きベクトルの算 出処理の一例について説明するための図である。この図にあるように、本実施例の動 きべクトノレ算出装置は、その「グローバル動きベクトル算出部」(0703)力 さらに「極 値除外平均手段」(0704)を有することを特徴とする。 「極値除外平均手段」 (0704) は、前記ミドル動きベクトルのうち、最大値をとるミドル動きベクトルおよび最小値をと るミドル動きベクトルを除いたベクトル値の総和を平均しグローバル動きベクトルを算 出する機能を有する。例えば図 7に示すように、グローバルマクロブロックを 9個のミド ルブロックに分割し、それぞれのミドル動きベクトル a、 b、 、 iを検出する。そして それぞれのベクトル量を演算、比較し、 9個のミドル動きベクトルの中で最大のベタト ル量を有するベタトノレが「i」、最小のベクトル量を有するベクトルが「a」であることが判 断された。すると、この極値除外平均手段では、その最大ベクトル「i」と最小ベクトル「 a」を除外した、残りのミドル動きべクトノレ3、 c、 · · ·、 hの総和を平均し、グローバル動 きベクトルを求める、という具合である。
[0020] 図 8に示すのは、グローバル動きベクトル算出部でのグローバル動きベクトルの算 出処理の、別の一例について説明するための図である。この図にあるように、本実施 例の動きベクトル算出装置は、その「グローバル動きべクトノレ算出部」(0803)力 さら に「メディアン平均手段」(0804)を有することを特徴とする。 「メディアン平均手段」 (0 804)は、前記ミドル動きベクトルをメディアン処理することでグローバル動きべクトノレ を算出する機能を有する。なお、「メディアン処理」とは、例えばベクトル成分を大きさ の順に並べ、その中央に位置する値 (数値が偶数個の場合は中央 2個の値の平均) を平均値として算出する処理である。例えば図 8に示すように、グローバルマクロブロ ックを分割した 9個のミドルブロックのミドル動きベクトル a、 b、 、 iを検出する。そ してそれぞれのベクトル成分を、その値の小さい(大きい)順に並べる。すると、その 中央値は「4、 3」であることが特定できるので、グローバル動きベクトルの成分を「4, 3 」として求める、という具合である。なお、このメディアン処理において、成分の中央値 を求める前に極値を取るベクトルを除いて、その残ったベクトルの成分の中央値を求 める、といった処理を行っても良い。
[0021] 図 9に示すのは、グローバル動きベクトル算出部でのグローバル動きベクトルの算 出処理の、別の一例について説明するための図である。この図にあるように、本実施 例の動きベクトル算出装置は、その「グローバル動きべクトノレ算出部」(0903)力 さら に「標準偏差利用平均手段」(0904)を有することを特徴とする。 「標準偏差利用平 均手段」(0904)は、前記ミドルブロック動きベクトルのうち ± 3 σ内の値を有するミド ル動きべクトノレ値の総和を平均してグローバル動きベクトルを算出する機能を有する 。なお、「 σ」とは標準偏差、すなわち「(各ベクトル値とその平均値の差)の 2乗」の平 均値で算出される分散の平方根をいい、図の正規分布に示すように、その標準偏差 σの ± 3倍値内にベクトル値の 99. 7%が含まれることになる。したがって、 ± 3びに 含まれなレ、ミドル動きべクトノレは 0· 3%の確率で出現する異常値であると考えること ができる。したがって、これらの異常値をとるミドル動きベクトル、例えば a、 iを除外し、 残ったミドル動きベクトル b、 c、 · · ·、 hの総和を平均しグローバル動きベクトルを求め る、という具合である。
[0022] このように上記いずれの処理方法にせよ、極端なベクトル値をとるミドル動きべタト ルを除外することができ、したがって、より正確なグローバル動きベクトルを算出するこ とができる。そして、その正確な正確なグローバル動きベクトルに基づいて動きべタト ル算出用の探索範囲をより正確に決定し、動きべ外ルを算出することができる。
[0023] く実施例 1のハードウェア構成例〉 図 10に示すのは、本実施例の動きベクトル算 出装置におけるハードウェア構成の一例を表す概略図である。この図を利用してミド ル動きべタトノレに基づいたグローバル動きべタトノレの算出処理におけるそれぞれの ハードウェア構成部の働きの一例について説明する。この図にあるように、本実施例 の動きベクトル算出装置における、分割部、ミドル動きベクトル検出部、およびグロ一 バル動きべ外ル算出部の機能は、データの演算を行う「演算器」(1001 )や、そのた めのデータを格納する「主メモリ」(1002)、高効率符号化の対象となる画像を入力す る「画像入力手段」(1003)や、その入力画像を格納する「ビデオメモリ」(1004)など によって実現される。そしてそれらがシステムバス(1005)などのデータ通信経路によ つて相互に接続され、情報の送受信などを行う。
[0024] また、「主メモリ」は、演算器で実行するプログラムの作業領域であるワーク領域と、 そのプログラムによって処理するためのデータを格納するデータ領域とを提供する。 そして、この「主メモリ」や「ビデオメモリ」には複数のメモリアドレスが割り当てられてお り、「演算器」で実行されるプログラムは、そのメモリアドレスを特定しアクセスすること で相互にデータのやりとりを行レ、、処理を行うことが可能になっている。
[0025] ここで、「画像入力手段」から高効率符号化の対象となる画像が入力される。ここで の入力画像は、例えばテレビチューナにて受信したアナログ放送波を無圧縮で符号 化した動画像データや、デジタルビデオカメラで撮影した無圧縮の符号化動画像デ ータなどさまざまであって良い。あるいは高効率符号化された動画像データを展開し た符号化動画像であっても良い。そして、ここで入力された動画を構成する画像がシ ステムバスを介しビデオメモリの所定のメモリアドレスに、例えばメモリアドレス Aに入 力画像 1 (動画像データの最初のフレーム)、メモリアドレス Bに入力画像 2 (動画像デ ータの 2番目のフレーム)、 · · ·とレ、う具合に格納される。
[0026] そして、それら入力画像のデータが順次「主メモリ」の所定メモリアドレスに格納され 、「演算器」の演算処理によって DCT変換処理や量子化処理などが行われることで、 画像内(空間)相関を利用した第一の画像変換が行われる。そしてこの第一の画像 変換処理に続いて、画像の逆変換 (逆 DCT変換、逆量子化)処理が行われ逆変換 画像が作成される。そして、入力画像 2以降においては、フレーム間予測による画像 圧縮を行うため画像の動き検出を行うが、その動き検出処理は、それら逆変換画像と 入力画像とを利用して行われる。また、この動き検出処理における演算処理量削減と 検出精度向上のため、さらにグローバル動きベクトル算出処理が行われる。具体的に は、フレーム間予測の前方予測処理での動き予測に使用されるマクロブロックと構成 がー致するよう、入力画像 2のグローバルマクロブロックの入力画像 1に対するグロ一 バル動きベクトルを算出する。そして、このグローバル動きベクトル算出を行う処理過 程の中で、本実施例ではその検出精度を上げるため、以下のようにしてミドル動きべ タトルの検出処理、およびそのミドル動きベクトルに基づくグローバル動きベクトルの 算出処理を行う。なお、これらグローバル動きベクトルの算出処理やミドル動きべタト ルの検出処理においては、上記逆変換画像と入力画像を用いる方法と、入力画像 のみを用いて求める方法があるが、以下の説明では入力画像のみを用いて検出する 方法を例として述べる。
[0027] (分割部の処理) ミドル動きベクトル検出のために、本実施例では、前述の通り、 まずグローバルマクロブロックのミドルブロック分割処理を行う。そこで、主メモリのヮ ーク領域に展開されたグローバル動きべクトノレ算出プログラムの命令により、まず、入 力画像 2におけるグローバル動きベクトルを算出するグローバルマクロブロックひの座 標情報が取得され、主メモリのメモリアドレス 1に格納される。そして、例えば「メモリア ドレス 1に格納されたグローバルマクロブロックひの座標情報をキーとして、そのグロ 一バルマクロブロックを分割したミドルブロックの座標情報を取得せよ」との旨を示す 命令に従い、前述の「グローバルマクロブロック一ミドルブロックテープノレ」を参照し、 該当するミドルブロック 1 , 2, 3, 4の座標情報が取得される。そしてそのミドルブロック の座標情報が、主メモリのメモリアドレス 2, 3, 4, 5にそれぞれ格納される。
[0028] (ミドル動きベクトル検出部の処理) 続いて、上記主メモリのそれぞれのメモリアド レスに格納されているミドルブロックにおけるミドル動きベクトルの検出処理が行われ る。なお、このミドル動きべタトノレの検出は、従来の動きべタトノレと同様の処理によって 検出されると良い。そこで、前述の相関係数を算出するため、座標情報に基づいてミ ドルブロック 1の画素情報の取得が行われる。具体的には、メモリアドレス 2に格納さ れたその座標情報に基づいて、「ビデオメモリに格納されている入力画像 2のミドルブ ロック 1を構成する画素情報を主メモリの所定のメモリアドレスに格納せよ」という具合 の命令が送出され実行される。
[0029] また、ミドル動きベクトル検出のため、そのミドルブロック 1の参照先となる前または 後ろの入力画像の識別情報、例えば入力画像 1、が特定されシステムバスなどを介し 主メモリの所定のメモリアドレスに格納される。そして、ミドノレブロックと同様に、相関係 数を算出するため、入力画像 1のブロック 1の座標情報に基づいて、そのブロックを構 成する画素情報の取得、及び主メモリへの格納が行われる。またそのブロックを半画 素(あるいは一画素や 1Z4画素)単位で動か(サーチ)しな力 Sら、同様にそれらブロッ クを構成する画素情報の取得、及び主メモリへの格納が行われる。
[0030] そしてミドルブロックの画素情報やそれらブロックの画素情報をメモリアドレスにより 特定し、例えば「ミドルブロック 1と(参照先の)入力画像 1のブロック 1の対応する画素 の差分値をとり、その絶対値の総和を演算し、その演算結果 (相関係数)を主メモリの 所定のメモリアドレスに格納せよ」とのプログラム命令に従レ、、演算器での演算、およ び演算結果のメモリアドレスへの格納が実行される。また、同様の命令により、その他 の入力画像 1のブロック 2, 3、 · · ·に関しても相関係数がそれぞれ算出され、主メモリ のまた別の所定のメモリアドレスに格納される。つづいて、それぞれの相関係数がメ モリアドレスにより特定され、例えば「主メモリにそれぞれ格納されている演算結果 (相 関係数)の大小比較を行い、最小となる相関係数を特定せよ」、との命令にしたがい 、演算器での演算処理による相関係数の大小比較が実行される。そしてその最小を 取る相関係数が特定され、その相関係数と関連付けられたブロック力 入力画像 2の ミドルブロック 1の、入力画像 1における移動先として特定される。そしてミドルブロック 1とその移動先として特定されたブロックの座標情報から演算器の演算によりミドル動 きベクトル 1が算出され、主メモリのメモリアドレス 11に格納される、という具合である。 また、ミドルブロック 2, 3, 4に関しても同様のミドル動きべクトノレ算出処理が行われる 。また、入力画像 2のその他のグローバルマクロブロック β、 Θ、 · · ·に関しても同様に してミドルブロックの分割処理、およびミドル動きべタトノレの検出処理が行われる。
[0031] (グローバル動きベクトル算出部の処理) 続いて、上記検出されたミドル動きべク トルを利用してグローバル動きベクトルを算出する。そのために、前述のミドル動きべ タトルのうち、「極値ベクトルの除外」(極値除外平均手段)や「メディアン処理」(メディ アン処理手段)、あるいは「標準偏差を利用した異常値除外」(標準偏差利用平均手 段)処理などを行う。そこで、例えば極値ベクトルの除外処理であれば、「ミドル動きべ タトルのベクトル量の大小比較を実行し、最大値をとるミドル動きベクトルと最小値をと るミドル動きベクトルとを除いたミドル動きベクトルの平均を算出し、主メモリのメモリア ドレス 21に格糸内せよ」との命令に従レ、、主メモリのメモリアドレス 11 , 12, 13, 14に格 納されているそれぞれのミドル動きベクトルのベクトル量の大小比較が演算器の演算 により実行される。そして、最大値をとるミドル動きベクトルと最小値をとるミドル動きべ タトルとが除外された上で残ったミドル動きベクトルの平均が算出され、そのベクトル 、分割時のテーブルにて関連付けられているグローバルマクロブロック αのグロ一 バル動きベクトルとして、主メモリのメモリアドレス 21に格納される、という具合である。 なお、「メディアン処理」であれば各ベクトル成分の大小比較結果を順番にメモリアド レスに格納し、ベクトル個数の真ん中の数値(偶数であれば真ん中の 2つの数値)の 順番に格納されてレ、る成分 (ベクトル個数が偶数である場合はその成分の平均)をグ ローバル動きベクトルの成分とする命令、およびそのための演算器での演算が行わ れると良い。また、「標準偏差を利用した異常値除外」処理であれば、ベクトル値の標 準偏差 σを算出し、 ± 3 σ以内のベクトル値を有するミドル動きベクトルの平均をグロ 一バル動きベクトルとする命令、およびそのための演算器での演算が行われると良い
[0032] そして、このようにして算出されたグローバル動きベクトルを利用して、従来のグロ一 バル動きべ外ルを利用した動きべクトノレ検出と同様に、演算器での演算により探索 範囲の座標情報などが算出され、それに基づく探索および動きべ外ルの算出が行 われる。
[0033] く実施例 1の処理の流れ〉 図 11に示すのは、本実施例の動きベクトル算出装置 における処理の流れの一例を表すフローチャートである。なお、以下に示すステップ は、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであ つても構わない。この図にあるように、まず、グローバルマクロブロックを複数のミドノレ ブロックに分割し (ステップ S1101)、分割されたミドルブロックごとにミドル動きべタト ルを検出する(ステップ S1102)。続いて、一のグローバルマクロブロックのグローバ ル動きベクトルを、前記検出されたそのグローバルマクロブロックに含まれるミドルブ ロックのミドル動きベクトルに基づいて算出する(ステップ S1103)。そして、その算出 されたグローバル動きベクトルに基づいてマクロブロックの動きベクトル探索範囲を決 定し (ステップ S 1104)、その探索範囲を利用して動きベクトルを算出する(ステップ S 1105)。
[0034] く実施例 1の効果の簡単な説明〉 以上のように、本実施例の動きベクトル算出装 置によってミドル動きベクトル算出において誤った演算結果が算出されても、「極値 ベクトルの除外」や「メディアン処理」、あるいは「標準偏差を利用した異常値除外」な どの処理によってその誤った演算結果を除外することができ、したがって、より正確な グローバル動きベクトルを算出することができる。したがって、その正確なグローバル 動きべクトノレに基づいて動きベクトル算出用の探索範囲をより正確に決定することが でき、また、その正確な動きベクトル算出によって、絶対値が 0に近いほど高符号化を 達成するゴロム符号化などにおいて効率的な符号ィ匕を行うこともできる。
[0035] 《実施例 2》 く実施例 2の概要〉 図 12に示すのは、本実施例における動きべク トル算出装置の概要の一例を説明するための図である。この図 12の(1)にあるように フレーム内のグローバルマクロブロックを等分割した場合、矢印 P方向へ移動する人 物と動かなレ、背景を含むブロックのグローバル動きベクトルは、例えばベクトル Gのよ うに人物と背景の動きべタトノレが合成されたべクトノレとなる。したがって、このグローバ ルマクロブロックに含まれる人物部分のマクロブロックにおける動きベクトル算出など において誤検出が生じる可能性がある。そこで、本実施例では、図 12 (2)に示すよう に、グローバルマクロブロックを、移動体を多く含む(と思われる)ブロックと、あまり含 まなレ、ブロックと、とレ、う具合にフレーム内のグローバルマクロブロックを不均等に分 割する。これによつて、移動体を含むブロックにおけるグローバル動きベクトルが、例 えばベクトル Fのように移動しない背景などの動きベクトルの影響を抑え、移動体の動 きに合ったベクトルとして算出することができる。また逆にベクトル Dのように、移動体 の動きベクトルの影響を抑え、移動しない背景 (ここではカメラのパンの動き)に合つ たベクトルとして算出することができる。
[0036] く実施例 2の構成〉 図 13に示すのは、本実施例の動きベクトル算出装置におけ る機能ブロックの一例を表す図である。この図にあるように、本実施例の「動きべタト ル算出装置」(1300)は、グローバルマクロブロック単位で算出されたグローバル動き ベクトルを、マクロブロックの動きべクトノレ探索範囲決定に利用して動きベクトルを算 出する動きベクトル算出装置であって、さらに「フレーム分割部」(1301)と、「所定分 割後グローバル動きベクトル算出部」(1302)と、を有する。
[0037] 「フレーム分割部」(1301)は、フレーム領域を所定のルールに従って不均等の複 数のグローバルマクロブロックに分割する機能を有する。この分割は、例えば予め設 定されたモードなどに従って分割する方法が挙げられる。例えば、通常動画像は重 要な被写体が中央部に位置している、と考え、フレーム中心部を細分化したグローバ ルマクロブロックとし、フレーム周辺部は領域を大きくしたグローバルマクロブロックと する、などの分割であっても良レ、。そしてこのフレーム分割部での分割処理は、上記 のような不均等な分割パターンに従レ、、例えばそれぞれのグローバルマクロブロック の座標を示すテーブルなどが用意されこのフレーム分割部での処理に利用する方法 が挙げられる。つまり、「所定のルール」の一例として、その分割パターンを示す座標 情報を保持した座標テーブルなどが挙げられる。
[0038] また、図 14の(1)に示すように、例えばフレーム横方向へ高速移動する車両の動 画であれば、フレームを横方向に広く分割したグローバルマクロブロックとして分割し たり、図 14の(2)に示すように、野球動画であれば、その典型的な場面構成に応じて 、キャッチャー、バッター、ピッチャーがそれぞれに主に含まれるようなグローバルマク ロブロックの分割したりすると良レ、。そして、このように移動体と非移動体を分けて含 むようにグローバルマクロブロックの分割を不均等に行うことで、より正確な動きべタト ル算出のためのグローバル動きべクトノレを算出することができるようになる。なお、高 効率符号化処理に際して、ユーザーによるモード選択などで、符号化される動画の 種類などを指定する情報を取得し、上記のような分割パターンを選択しても良い。あ るレ、は、所定フレーム(過去 10フレームなど)のブロックごとの動きベクトルの履歴を 保持しておき、その履歴に基づいて、動き量が大きい領域は細力べ分割し、動き量が 小さい領域は大きく分割する、という具合のルールを選択しても良レ、。また、同様に 履歴を利用し、同じような動きベクトルをまとめて新しいグローバル動きベクトルとする 、などのルールであっても構わなレ、。
[0039] 「所定分割後グローバル動きベクトル算出部」 (1302)は、分割により得られたグロ 一バルマクロブロックのグローバル動きベクトルを算出する機能を有する。なお、この グローバル動きべタトノレの算出処理は、そのグローバル動きべタトノレの形状などが不 均等である以外、上記相関係数を利用する従来のグローバル動きベクトル算出処理 と同様の処理で算出可能であるのでその説明は省略する。
[0040] く実施例 2のハードウェア構成例〉 図 15に示すのは、本実施例の動きベクトル算 出装置におけるハードウェア構成の一例を表す概略図である。この図を利用して本 実施例のグローバル動きベクトルの算出処理におけるそれぞれのハードウェア構成 部の働きの一例について説明する。この図にあるように、本実施例の動きベクトル算 出装置における、フレーム分割部、および所定分割後グローバル動きベクトル検出 部の機能は、データの演算を行う「演算器」(1501)や、そのためのデータを格納す る「主メモリ」(1502)、また、高効率符号化の対象となる画像を入力する「画像入力 手段」(1503)や、その入力画像を格納する「ビデオメモリ」(1504)、また、上記グロ 一バルマクロブロックの不均等な分割パターンを示す座標テーブルなどを蓄積して レ、る記憶装置(1506)などによって実現される。そしてそれらがシステムバス(1505) などのデータ通信経路によって相互に接続され、情報の送受信などを行う。
[0041] もちろん、「主メモリ」や「ビデオメモリ」、「記憶装置」には複数のメモリアドレスが割り 当てられており、「演算器」で実行されるプログラムは、そのメモリアドレスを特定しァク セスすることで相互にデータのやりとりを行レ、、処理を行うことが可能になっている。
[0042] ここで、「画像入力手段」から高効率符号化の対象となる画像が入力される。ここで の入力画像は、実施例 1同様にアナログデータの符号ィヒ動画像データなどさまざま であって良い。そして、ここで入力された動画を構成する画像がシステムバスを介しビ デォメモリの所定のメモリアドレスに、例えばメモリアドレス Aに入力画像 1 (動画像デ ータの最初のフレーム)、メモリアドレス Bに入力画像 2 (動画像データの 2番目のフレ 一ム)、…という具合に格納される。
[0043] そして、それら入力画像のデータが順次「主メモリ」の所定メモリアドレスに格納され 、「演算器」の演算処理によって DCT変換処理や量子化処理などが行われることで、 画像内(空間)相関を利用した第一の画像変換が行われる。そしてこの第一の画像 変換処理に続いて、画像の逆変換 (逆 DCT変換、逆量子化)処理が行われ、逆変換 画像が生成される。そして、それら逆変換画像と入力画像、あるいは複数の入力画 像を利用してグローバル動きベクトル算出処理を行う。
[0044] (フレーム分割部の処理) そのために、本実施例では、前述の通り、まず入力画 像のフレーム領域を不均等なグローバルマクロブロックに分割する処理が行われる。 そこで、主メモリのワーク領域に展開されたグローバル動きベクトル算出プログラムの 命令により、まず、「記憶装置」に蓄積されている不均等なグローバルマクロブロック の座標情報を示す座標テーブルが主メモリのメモリアドレス 1に格納される。そこで「 座標テーブルを参照しそれぞれのグローバルマクロブロックの座標情報を取得し、主 メモリの所定のメモリアドレスに格納せよ」という命令に従レ、、フレームを不均等に分 割したグローバルマクロブロックのそれぞれの座標情報が取得され主メモリのメモリア ドレス 2, 3、 · · ·に格納される。
[0045] (所定分割後グローバル動きベクトル算出部の処理) つづいて、主メモリのメモリ アドレスに格納された (所定分割後)グローバルマクロブロック 1の座標情報に基づい て、グローバル動きベクトルの算出処理が行われる。なお、その算出処理は従来のグ ローバル動きベクトルの算出処理と同様に、例えば対応する画素の差分値の絶対値 の総和である相関係数を利用して算出すると良レ、。そして、算出されたグローバル動 きベクトルを主メモリのメモリアドレス 11に格納する。また、その他のグローバルマクロ ブロック 2, 3 · · ·に関しても同様にしてグローバル動きベクトルを算出し、所定のメモリ アドレスに格納すると良い。
[0046] このように、例えば移動体と非移動体とが分離して含まれるよう不均等に分割された グローバルマクロブロックのグローバル動きベクトルを算出することで、それぞれのグ ローバルマクロブロックに含まれる個々のマクロブロックの動きに正確に対応した探索 範囲を決定することができる。なお、その探索範囲の決定やそれに基づく動きべタト ルの算出などは、従来の演算処理と同様にして行われると良い。
[0047] く実施例 2の処理の流れ〉 図 16に示すのは、本実施例の動きベクトル算出装置 における処理の流れの一例を表すフローチャートである。なお、以下に示すステップ は、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであ つても構わない。この図にあるように、まず、フレーム領域を所定のルールに従って不 均等の複数のグローバルマクロブロックに分割し (ステップ S1601)、分割により得ら れたグローバルマクロブロックのグローバル動きベクトルを算出する(ステップ S1602 )。そして、その算出されたグローバル動きべクトノレに基づいてマクロブロックの動きべ タトル探索範囲を決定し (ステップ S1603)、その探索範囲を利用して動きベクトルを 算出する(ステップ S 1604)。 [0048] く実施例 2の効果の簡単な説明〉 以上のように、本実施例の動きベクトル算出装 置によって、例えば移動体と非移動体とが分離して含まれるよう不均等に分割された グローバルマクロブロックのグローバル動きベクトルを算出することができる。したがつ て、それぞれのグローバルマクロブロックに含まれる個々のマクロブロックの動きに正 確に対応した探索範囲を決定し、動きべ外ルを算出することができる。
[0049] 《実施例 3》 く実施例 3の概要〉 本実施例は、実施例 2を基本として、複数のル ールを保持し、そのルールを選択的に適用してフレームを不均等なグローバルマク ロブロックに分割する機能をさらに備えていることを特徴とする。
[0050] く実施例 3の構成〉 図 17に示すのは、本実施例の動きベクトル算出装置におけ る機能ブロックの一例を表す図である。この図にあるように、本実施例の「動きべタト ル算出装置」(1700)は、実施例 2を基本として、 「フレーム分割部」(1701)と、「所 定分割後グローバル動きベクトル算出部」(1702)と、を有する。なお、これら「フレー ム分割部」および「所定分割後グローバル動きベクトル算出部」は実施例 2ですでに 記載済みであるのでその説明は省略する。そして、本実施例の動きベクトル算出装 置の特徴点は、さらに「ルール保持部」(1703)と、「選択部」(1704)と、を有してい る点である。
[0051] 「ルール保持部」 (1703)は、前記所定のルールを複数保持する機能を有する。こ のルール保持部は、例えばハードディスクドライブなどの磁気記録装置や不揮発性メ モリ、あるいは DVDディスクなどの光学メディアとその読取ドライブなどで実現するこ とができる。
[0052] 図 18に示すのは、この所定のルールの一例を説明するための概念図である。この 図にあるように所定のルールは、例えばグローバルマクロブロックの分割パターンを 指定するルールが挙げられる。例えば、図 18の(1)に示すように、ユーザーが指定 するモードと関連付けて分割パターンが設定されており、インターフェースから入力さ れたそのモードを示す情報に基づいて、例えば通常撮影された動画像であれば、パ ターン 1で示される座標情報などに基づいてフレームを分割する、という具合である。 あるいは図 18の入力画像をパターンマッチング処理することで、例えば重要被写体 のある位置を検出し、その検出結果に応じて設定された分割パターンで示される座 標情報などに基づいてフレームを分割する、という具合である。
[0053] 図 19に示すのは、また別の所定のルールの一例を説明するための図である。この 所定のルールにおいては、実施例 1で説明したミドルブロックのミドル動きべクトノレを 利用する。すなわち、図 19の(1)に示すように、まずミドルブロックごとにそれぞれのミ ドル動きベクトルを算出する。そして隣接または離散ブロック間でベクトノレ値の比較を 行レ、、所定の範囲で近似のベクトルを有するミドルブロック、例えば 1 , 2, 9, 10、をま とめてグローバルマクロブロック Aとする、とレ、う具合である。つまり、この例の所定の ルールでは、そのベクトルの近似判断のための範囲などが定められていると良レ、。そ して、上記のような所定のルール力 次の選択部において選択され、フレーム分割の ルールとして適用されることになる。
[0054] 「選択部」 (1704)は、複数保持されているルールから一のルールを選択してフレー ム分割部でのルールとして利用させる機能を有する。この選択の基準は、前述の通り 、例えばインターフェースを介してユーザーの選択入力したモード情報や、パターン マッチングによって検出された重要被写体のフレーム内での位置情報などを基準に すると良い。また選択部での選択は、このような分割パターンの選択以外に、例えば ミドルブロックを利用したグローバルマクロブロックの分割を利用するか否力、などの ように分割手法が選択される構成であっても良レ、。
[0055] また、その際、選択基準となる上記情報などが「属性値」として本実施例の動きべク トル算出装置に取得され、その属性値に基づいて上記選択が行われても良い。図 2 0に示すのは、この属性値を取得する「属性値取得部」を有する動きベクトル算出装 置における機能ブロックの一例を表す図である。この図にあるように、この例では「動 きべクトノレ算出装置」(2000)は、「フレーム分割部」(2001)と、「所定分割後グロ一 バル動きベクトル算出部」(2002)と、「ルール保持部」(2003)と、「選択部」 (2004) と、を有してする。そしてさらに「属性値取得部」(2005)を有している。
[0056] 「属性値取得部」 (2005)は、動きベクトルを算出すべき動画像の属性値を取得す る機能を有する。 「属性値」とは、前述のように、インターフェースを介してユーザーの 選択入力したモード情報を示す値や、パターンマッチングによって検出された重要 被写体のフレーム内での位置などを示す値、あるいは、ミドルブロックを利用したグロ 一バルマクロブロックの分割を利用するか否力を示す値などが挙げられる。そして、こ のような取得した属性値に応じてルールを選択することで、入力画像に合わせたグロ 一バルマクロブロックの分割を行うことができるようになる。
[0057] く実施例 3の処理の流れ〉 図 21に示すのは、本実施例の動きベクトル算出装置 における処理の流れの一例を表すフローチャートである。なお、以下に示すステップ は、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであ つても構わない。この図にあるように、まず、動きベクトルを算出すべき動画像の属性 値を取得し (ステップ S2101)、その属性値に基づいて、予め保持されている複数の ルールから一のルールを選択する(ステップ S2102)。つづいて、前記選択されたノレ ールに従って、フレーム領域を不均等の複数のグローバルマクロブロックに分割し( ステップ S2103)、分割により得られたグローバルマクロブロックのグローバル動きべ タトルを算出する (ステップ S2104)。そして、その算出されたグローバル動きベクトル に基づいてマクロブロックの動きベクトル探索範囲を決定し(ステップ S2105)、その 探索範囲を利用して動きベクトルを算出する (ステップ S2106)。
[0058] く実施例 3の効果の簡単な説明〉 以上のように、本実施例の動きベクトル算出装 置によって、画像の属性値などに応じてフレーム領域の分割に適用されるルールを 選択すること力できる。したがって、入力画像にあったグローバルマクロブロックの不 均等分割を行うことができ、それぞれのグローバルマクロブロックに含まれる個々のマ クロブロックの動きに、さらに正確に対応した探索範囲を決定し、動きベクトルを算出 すること力 Sできるようになる。
図面の簡単な説明
[0059] [図 1]従来技術である、グローバル動きベクトルを利用した、マクロブロック単位の動き ベクトル算出の別の一例を説明するための図
[図 2]従来技術の、グローバル動きベクトルを利用したマクロブロック単位の動きべタト ル算出における課題を説明するための図
[図 3]実施例 1における動きべクトノレ算出装置の一例を説明するための概念図
[図 4]実施例 1の動きベクトル算出装置における機能ブロックの一例を表す図
[図 5]実施例 1の動きべ外ル算出装置の分割部における分割の一例を説明するため の図
園 6]実施例 1の動きベクトル算出装置のミドル動きベクトル検出部における探索処理 の演算量について説明するための図
[図 7]実施例 1の動きベクトル算出装置のグローバル動きベクトル算出部でのグロ一 バル動きベクトルの算出処理の一例について説明するための図
[図 8]実施例 1の動きベクトル算出装置のグローバル動きベクトル算出部でのグロ一 バル動きべタトノレの算出処理の、別の一例について説明するための図
[図 9]実施例 1の動きベクトル算出装置のグローバル動きベクトル算出部でのグロ一 バル動きベクトルの算出処理の、また別の一例について説明するための図 園 10]実施例 1の動きベクトル算出装置におけるハードウェア構成の一例を表す概 略図
園 11]実施例 1の動きベクトル算出装置における処理の流れの一例を表すフローチ ヤート
園 12]実施例 2における動きべクトノレ算出装置の概要の一例を説明するための図 園 13]実施例 2の動きベクトル算出装置における機能ブロックの一例を表す図 園 14]実施例 2の動きベクトル算出装置のフレーム分割部におけるフレーム分割の 一例を説明するための図
園 15]実施例 2の動きベクトル算出装置におけるハードウェア構成の一例を表す概 略図
園 16]実施例 2の動きベクトル算出装置における処理の流れの一例を表すフローチ ヤート
園 17]実施例 3の動きベクトル算出装置における機能ブロックの一例を表す図 園 18]実施例 3の動きベクトル算出装置のルール保持部に保持されている所定のル ールの一例を説明するための概念図
園 19]実施例 3の動きベクトル算出装置のルール保持部に保持されている所定のル ールの、別の一例を説明するための概念図
園 20]実施例 3の動きベクトル算出装置における機能ブロックの、別の一例を表す図 園 21]実施例 3の動きベクトル算出装置における処理の流れの一例を表すフローチ ヤート
符号の説明
0400 動きベクトル算出装置
0401 分割部
0402 ミドル動きベクトル検出部 0403 グローバル動きベクトル算出部

Claims

請求の範囲
[1] グローバルマクロブロック単位で算出されたグローバル動きベクトルを、マクロブロッ クの動きべ外ル探索範囲決定に利用して動きべ外ルを算出する動きベクトル算出 装置であって、
グローバルマクロブロックを複数のミドルブロックに分割する分割部と、
分割されたミドルブロックごとにミドル動きベクトルを検出するミドル動きベクトル検出 部と、
一のグローバノレマクロブロックのグローバノレ動きべクトノレを、そのグローバノレマクロ ブロックに含まれるミドルブロックのミドル動きベクトルに基づいて算出するグローバル 動きベクトル算出部と、
を有する動きベクトル算出装置。
[2] 前記グローバル動きベクトル算出部は、前記ミドル動きベクトルのうち、最大値をとる ミドル動きベクトルおよび最小値をとるミドル動きベクトルを除いたベクトル値の総和を 平均しグローバル動きベクトルを算出する極値除外平均手段を有する請求項 1に記 載の動きべ外ル算出装置。
[3] 前記グローバル動きベクトル算出部は、前記ミドル動きベクトルをメディアン処理す ることでグローバル動きベクトルを算出するメディアン平均手段を有する請求項 1に記 載の動きべ外ル算出装置。
[4] 前記グローバル動きベクトル算出部は、前記ミドルブロック動きベクトルのうち ± 3 σ 内の値を有するミドル動きベクトル値の総和を平均してグローバル動きベクトルを算 出する標準偏差利用平均手段を有する請求項 1に記載の動きベクトル算出装置。
[5] グローバルマクロブロック単位で算出されたグローバル動きベクトルを、マクロブロッ クの動きべ外ル探索範囲決定に利用して動きべ外ルを算出する動きベクトル算出 装置であって、
フレーム領域を所定のルールに従って不均等の複数のグローバルマクロブロックに 分割するフレーム分割部と、
分割により得られたグローバルマクロブロックのグローバル動きベクトルを算出する 所定分割後グローバル動きベクトル算出部と、 を有する動きベクトル算出装置。
[6] 前記所定のルールを複数保持するルール保持部と、
複数保持されているルールから一のルールを選択してフレーム分割部でのルール として利用させる選択部と、
をさらに有する請求項 5に記載の動きベクトル算出装置。
[7] 動きべ外ルを算出すべき動画像の属性値を取得する属性値取得部をさらに有し、 前記選択部は、取得した属性値に基づいて前記選択を行う請求項 6に記載の動き ベクトル算出装置。
[8] グローバルマクロブロック単位で算出されたグローバル動きベクトルを、マクロブロッ クの動きべ外ル探索範囲決定に利用して動きべ外ルを算出する動きベクトル算出 方法であって、
グローバルマクロブロックを複数のミドルブロックに分割する分割ステップと、 分割されたミドルブロックごとにミドル動きベクトルを検出するミドル動きベクトル検出 ステップと、
一のグローバノレマクロブロックのグローバノレ動きべクトノレを、そのグローバノレマクロ ブロックに含まれるミドルブロックのミドル動きベクトルに基づいて算出するグローバル 動きべクトノレ算出ステップと、
を有し計算機に実行させる動きべ外ル算出方法。
[9] 前記グローバル動きベクトル算出ステップは、前記ミドル動きベクトルのうち、最大 値をとるミドル動きベクトルおよび最小値をとるミドル動きベクトルを除いたベクトル値 の総和を平均しグローバル動きベクトルを算出する極値除外平均ステップである請 求項 8に記載の動きベクトル算出方法。
[10] 前記グローバル動きベクトル算出ステップは、前記ミドル動きベクトルをメディアン処 理することでグローバル動きベクトルを算出するメディアン平均ステップである請求項
8に記載の動きべ外ル算出方法。
[11] 前記グローバル動きベクトル算出ステップは、前記ミドルブロック動きベクトルのうち
± 3 σ内の値を有するミドル動きベクトル値の総和を平均しグローバル動きベクトルを 算出する標準偏差利用平均ステップである請求項 8に記載の動きべ外ル算出方法
[12] グローバルマクロブロック単位で算出されたグローバル動きベクトルを、マクロブロッ クの動きベクトル探索範囲決定に利用して動きベクトルを算出する動きベクトル算出 方法であって、
フレーム領域を所定のルールに従って不均等の複数のグローバルマクロブロックに 分割するフレーム分割ステップと、
分割により得られたグローバルマクロブロックのグローバル動きベクトルを算出する 所定分割後グローバル動きベクトル算出ステップと、
を有し計算機に実行させる動きべ外ル算出方法。
[13] 前記所定のルールを、複数保持するために記録媒体に記録するルール記録ステツ プと、
前記記録され記録媒体に複数保持されているルールから一のルールを選択してフ レーム分割部でのルールとして利用させる選択ステップと、
をさらに有する請求項 12に記載の動きベクトル算出方法。
[14] 動きベクトルを算出すべき動画像の属性値を取得する属性値取得ステップをさらに 有し、
前記選択ステップは、取得した属性値に基づレ、て前記選択を行う請求項 13に記載 の動きベクトル算出方法。
PCT/JP2006/300533 2005-11-15 2006-01-17 動きベクトル算出装置および動きベクトル算出方法 WO2007057986A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US12/064,445 US20090268819A1 (en) 2005-11-15 2006-01-17 Motion vector calculation device and motion vector calculation method
EP06711813A EP1950972A1 (en) 2005-11-15 2006-01-17 Motion vector calculation device and motion vector calculation method
CN2006800003643A CN101080930B (zh) 2005-11-15 2006-01-17 运动矢量计算装置及运动矢量计算方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005329770A JP2007142521A (ja) 2005-11-15 2005-11-15 動きベクトル算出装置および動きベクトル算出方法
JP2005-329770 2005-11-15

Publications (1)

Publication Number Publication Date
WO2007057986A1 true WO2007057986A1 (ja) 2007-05-24

Family

ID=38048378

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/300533 WO2007057986A1 (ja) 2005-11-15 2006-01-17 動きベクトル算出装置および動きベクトル算出方法

Country Status (7)

Country Link
US (1) US20090268819A1 (ja)
EP (1) EP1950972A1 (ja)
JP (1) JP2007142521A (ja)
KR (1) KR20070088322A (ja)
CN (1) CN101080930B (ja)
TW (1) TWI348870B (ja)
WO (1) WO2007057986A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8085849B1 (en) * 2006-11-03 2011-12-27 Keystream Corporation Automated method and apparatus for estimating motion of an image segment using motion vectors from overlapping macroblocks
CN101816180B (zh) * 2007-08-06 2013-01-16 汤姆森特许公司 利用多个视图间参考画面的运动跳跃模式的方法和装置
JP5286805B2 (ja) * 2008-01-31 2013-09-11 沖電気工業株式会社 動きベクトル検出装置及び方法、動画像符号化装置及び方法、並びに、動画像復号化装置及び方法
JP2011135230A (ja) * 2009-12-22 2011-07-07 Panasonic Corp 画像符号化方法、画像符号化装置及び撮像システム
US8837592B2 (en) 2010-04-14 2014-09-16 Mediatek Inc. Method for performing local motion vector derivation during video coding of a coding unit, and associated apparatus
US8681866B1 (en) 2011-04-28 2014-03-25 Google Inc. Method and apparatus for encoding video by downsampling frame resolution
US9106787B1 (en) 2011-05-09 2015-08-11 Google Inc. Apparatus and method for media transmission bandwidth control using bandwidth estimation
US8856624B1 (en) 2011-10-27 2014-10-07 Google Inc. Method and apparatus for dynamically generating error correction
US9185429B1 (en) 2012-04-30 2015-11-10 Google Inc. Video encoding and decoding using un-equal error protection
KR101939628B1 (ko) 2012-05-30 2019-01-17 삼성전자주식회사 모션 검출 방법 및 모션 검출기
US9172740B1 (en) 2013-01-15 2015-10-27 Google Inc. Adjustable buffer remote access
US9311692B1 (en) 2013-01-25 2016-04-12 Google Inc. Scalable buffer remote access
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
JP6918661B2 (ja) * 2017-09-22 2021-08-11 キヤノン株式会社 符号化装置、符号化方法及びプログラム
CN108646931B (zh) * 2018-03-21 2022-10-14 深圳市创梦天地科技有限公司 一种终端控制方法及终端
CN110995849B (zh) * 2019-12-11 2022-04-19 鲁东大学 一种矢量数据位置信息的传输与存储方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH043595A (ja) * 1990-04-19 1992-01-08 Nec Corp 動画像の動き情報検出装置および動画像の動き補償フレーム間予測符号化装置
JPH08149481A (ja) * 1994-11-25 1996-06-07 Mitsubishi Electric Corp 映像信号符号化・復号化装置及び符号化・復号化方法
JPH10191347A (ja) * 1996-12-27 1998-07-21 Casio Comput Co Ltd 動き検出装置、動き検出方法、及び、記憶媒体
WO2000005899A1 (en) * 1998-07-22 2000-02-03 Mitsubishi Denki Kabushiki Kaisha Image encoding system
JP2000278694A (ja) * 1999-03-19 2000-10-06 Canon Inc 符号化装置、画像処理装置、画像処理システム、符号化方法、及び記憶媒体
JP2001169288A (ja) * 1999-12-07 2001-06-22 Nec Corp 動きベクトル探索装置および方法
JP2004229150A (ja) * 2003-01-27 2004-08-12 Nec Corp 動きベクトル探索方法および装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0154921B1 (ko) * 1994-12-30 1998-11-16 배순훈 동영상 부호화 장치에 이용하기 위한 움직임 추정기
JPH09168152A (ja) * 1995-10-26 1997-06-24 Hyundai Electron Ind Co Ltd 動画像処理における動きの推定装置及びその方法
EP1422928A3 (en) * 2002-11-22 2009-03-11 Panasonic Corporation Motion compensated interpolation of digital video signals
US8107535B2 (en) * 2003-06-10 2012-01-31 Rensselaer Polytechnic Institute (Rpi) Method and apparatus for scalable motion vector coding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH043595A (ja) * 1990-04-19 1992-01-08 Nec Corp 動画像の動き情報検出装置および動画像の動き補償フレーム間予測符号化装置
JPH08149481A (ja) * 1994-11-25 1996-06-07 Mitsubishi Electric Corp 映像信号符号化・復号化装置及び符号化・復号化方法
JPH10191347A (ja) * 1996-12-27 1998-07-21 Casio Comput Co Ltd 動き検出装置、動き検出方法、及び、記憶媒体
WO2000005899A1 (en) * 1998-07-22 2000-02-03 Mitsubishi Denki Kabushiki Kaisha Image encoding system
JP2000278694A (ja) * 1999-03-19 2000-10-06 Canon Inc 符号化装置、画像処理装置、画像処理システム、符号化方法、及び記憶媒体
JP2001169288A (ja) * 1999-12-07 2001-06-22 Nec Corp 動きベクトル探索装置および方法
JP2004229150A (ja) * 2003-01-27 2004-08-12 Nec Corp 動きベクトル探索方法および装置

Also Published As

Publication number Publication date
TWI348870B (en) 2011-09-11
TW200719727A (en) 2007-05-16
CN101080930A (zh) 2007-11-28
JP2007142521A (ja) 2007-06-07
US20090268819A1 (en) 2009-10-29
CN101080930B (zh) 2010-06-16
EP1950972A1 (en) 2008-07-30
KR20070088322A (ko) 2007-08-29

Similar Documents

Publication Publication Date Title
WO2007057986A1 (ja) 動きベクトル算出装置および動きベクトル算出方法
US9800889B2 (en) Video decoding device, video decoding method, video decoding program, and video decoding integrated circuit
JP4528441B2 (ja) ブロック整合法及び統合投射法を用いた階層的動き評価処理及び装置
US10440383B2 (en) Image predictive encoding and decoding system
US8300695B2 (en) Image encoding apparatus and image encoding method
CN102036067B (zh) 运动图像编码设备及其控制方法
US20060083310A1 (en) Adaptive overlapped block matching for accurate motion compensation
JP2015536092A (ja) 標準に準拠した、モデルベースの映像符号化及び映像復号化
US20070217515A1 (en) Method for determining a search pattern for motion estimation
US11310524B2 (en) Method and apparatus for determining motion vector of affine code block
CN110996099B (zh) 一种视频编码方法、***及设备
US20040218675A1 (en) Method and apparatus for determining reference picture and block mode for fast motion estimation
US20160261869A1 (en) Content-adaptive b-picture pattern video encoding
JP3979768B2 (ja) デジタル映像分割方法及びその装置
JP2008042424A (ja) 画像マッチング装置及び画像マッチング方法
CN110876082B (zh) 一种视频帧的复杂度的确定方法及装置
Jubran et al. Sequence-level reference frames in video coding
US20090268822A1 (en) Motion vector detection by stepwise search
US10075691B2 (en) Multiview video coding method using non-referenced view video group
KR102245740B1 (ko) 깊이 영상에서 신축을 이용한 움직임 추정 방법 및 장치
US11956441B2 (en) Identifying long term reference frame using scene detection and perceptual hashing
JP2008072608A (ja) 画像符号化装置及び画像符号化方法
CN107431821A (zh) 高效低复杂度视频压缩
JP2006108932A (ja) 複数参照画像を用いた動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム及び動画像復号プログラム

Legal Events

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

Ref document number: 200680000364.3

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 1020067026952

Country of ref document: KR

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006711813

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 2006711813

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12064445

Country of ref document: US