WO2016031253A1 - ブロックサイズ決定方法及びプログラム記録媒体 - Google Patents

ブロックサイズ決定方法及びプログラム記録媒体 Download PDF

Info

Publication number
WO2016031253A1
WO2016031253A1 PCT/JP2015/004324 JP2015004324W WO2016031253A1 WO 2016031253 A1 WO2016031253 A1 WO 2016031253A1 JP 2015004324 W JP2015004324 W JP 2015004324W WO 2016031253 A1 WO2016031253 A1 WO 2016031253A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
blocks
depth
integration
size
Prior art date
Application number
PCT/JP2015/004324
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 US15/506,803 priority Critical patent/US10356403B2/en
Priority to JP2016544967A priority patent/JP6569677B2/ja
Publication of WO2016031253A1 publication Critical patent/WO2016031253A1/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/53Multi-resolution motion estimation; Hierarchical motion estimation

Definitions

  • the present invention relates to video encoding.
  • the present invention relates to moving picture coding that reduces the amount of computation without reducing coding efficiency.
  • These coding schemes achieve high coding efficiency by compressing information using inter-frame motion compensation prediction.
  • motion compensated prediction the image of the reference frame is corrected using motion information between the encoding target frame and the encoded reference frame, and the difference between the corrected image (predicted image) and the current image to be encoded is calculated. This is a technique for compressing moving image information by encoding only information representing information and motion between frames.
  • the motion between frames is represented by a motion vector representing the amount of movement (see, for example, Patent Document 1).
  • the process of calculating the motion information between the reference frame and the encoding target frame is called motion estimation.
  • motion estimation it is important to calculate motion information that minimizes the amount of information to be encoded while suppressing the amount of noise generated in the decoded image. For this reason, a technique called RD optimization (Rate-Distortion Optimization) is widely used in recent video encoding apparatuses.
  • RD cost rate distortion cost
  • the motion vector candidate that minimizes the RD cost is adopted as the motion vector of the focused block.
  • D is the amount of distortion generated in the difference image
  • R is the amount of code generated by encoding motion information
  • is a weighting factor that depends on the complexity of the image.
  • the motion information includes motion vector information. In the motion vector search, the calculation amount is enormous for the convenience of calculating the RD cost for each of a large number of motion vector candidates.
  • Non-Patent Document 1 describes the contents of processing based on the H.265 standard.
  • the H.265 video encoding process is performed in units of blocks of up to 64 ⁇ 64 pixels called CU (Coding Unit).
  • CU Coding Unit
  • the code amount can be efficiently compressed by changing the CU size.
  • the optimum CU size is selected from 32 ⁇ 32, 16 ⁇ 16, and 8 ⁇ 8 pixel size CUs obtained by hierarchically dividing the maximum size block 64 ⁇ 64 into quadtrees.
  • PU Prediction Units
  • PU is a unit that holds motion information.
  • the PU is divided into an optimal block size of 2Nx2N, 2NxN, Nx2N, and NxN.
  • PU division four types of division methods.
  • the size of the CU / PU can be made variable, and the coding amount of the motion information can be reduced by coding with a large block in the flat portion.
  • the amount of distortion of the difference image can be reduced by encoding with a small block.
  • a simple method for selecting the optimal CU partition and PU partition is as follows.
  • a 64x64 size block is assumed as the CU.
  • (A3) In each of the four PU partitions assumed in (A2), a motion vector search is performed for each PU.
  • the size of the CU is 2Nx2N.
  • the motion vector of one PU that is, a 2N ⁇ 2N size PU is obtained as it is.
  • the motion vector of each PU when the CU is divided into two halves and divided into two 2N ⁇ N PUs is obtained.
  • the motion vector of each PU when the CU is divided into right and left and divided into two Nx2N PUs is obtained.
  • the motion vector of each PU when the CU is divided into four NxN PUs by quadtree partitioning is obtained.
  • (A5) PU partitioning that minimizes the total RD cost obtained in (A4) is obtained. That is, the PU division corresponding to the smallest one among J (2Nx2N), J (2NxN), J (Nx2N), and J (NxN) is obtained.
  • Non-patent document 2 describes a technique for suppressing such an increase in calculation amount.
  • MVM Motion Vector Vector Merging
  • motion information is compared between adjacent blocks, and if they are equal, the adjacent blocks are merged and considered as a large block. Thereby, the calculation amount is suppressed.
  • a motion vector search of an NxN size PU is performed. As shown in FIG. 9, when three of the motion vectors of four NxN size blocks are equal, these four NxN blocks are integrated into one 2Nx2N size block. Further, when the motion information of two blocks adjacent in the horizontal direction is equal, four NxN blocks are integrated into two 2NxN blocks. Also, when the motion information of two blocks adjacent in the vertical direction is equal, four NxN blocks are integrated into two Nx2N blocks.
  • block integration is determined according to the comparison of motion information between adjacent blocks, it is not necessary to perform steps (A4) and (A5) of the above method. This is because it is possible to select a suitable PU partition by comparing motion information without comparing the total RD cost for each PU partition.
  • Non-Patent Document 2 The block size determination process described in Non-Patent Document 2 will be described with reference to the flowchart of FIG. block is a variable indicating a block to be encoded.
  • the depth is a natural number from 1 to 4 indicating the CU hierarchy depth, and the initial value is 1.
  • 2N is the block size
  • 2N is any one of 64, 32, 16, and ⁇ 8, and the initial value is 64.
  • this block size determination process includes a recursive call.
  • step S1103 When the determination is true, that is, when the block hierarchy is the minimum size, the process proceeds to step S1103 described later.
  • step S1101 determines whether the block hierarchy is not the minimum size.
  • four subblocks generated by dividing the block of interest into quadtrees, subblock [1], subblock [2], subblock [3 ] And subblock [4] are subjected to block size determination processing (step S1102).
  • the sub-block subblock [i] has a CU hierarchy depth that is one deeper than the current block, so that +1 is added to the argument depth in the recursively called block size determination process. Further, as described above, the argument indicating the size of the block of interest is 2N, while the argument indicating the size of the sub-block subblock [i] is N.
  • step S1103 motion vector search is performed for each of the subblocks subblock [1], subblock [2], subblock [3], and subblock [4] obtained by dividing the block block into quadtrees.
  • step S1104 block integration processing is performed based on the motion information of each sub-block obtained in step S1103, and the best block size bestPart is determined. Although details will be described later, the block integration process returns 2Nx2N, 2NxN, Nx2N, or NxN as the best block size bestPart.
  • step S1105 the RD cost bestPartCost in the best block size bestPart is compared with the best cost minCost so far. If the RD cost bestPartCost is smaller than the best cost minCost (y in step S1105), the best cost minCost is updated with the value of the RD cost bestPartCost, and the best depth bestDepth is the CU hierarchy depth of the currently executing block size determination process. It is updated with the value (step S1106).
  • step S1002 whether or not integration into 2Nx2N size blocks is determined based on motion information obtained in advance for the four blocks specified as arguments. If integration is possible (y in step S1002), 2Nx2N is returned as the best block size bestPart.
  • the condition that can be integrated into 2Nx2N is that motion vectors of three blocks out of four are the same.
  • step S1003 based on the motion information obtained in advance for the four blocks designated as arguments, it is determined whether or not integration into 2NxN size blocks is possible (y in step S1003). If integration is possible, 2NxN is returned as the best block size bestPart.
  • the condition that can be integrated into 2NxN is that when two blocks arranged side by side are taken as one set, the motion vectors of the blocks constituting the set are the same.
  • step S1004 based on the motion information obtained in advance for the four blocks specified as arguments, it is determined whether or not integration into an Nx2N size block is possible. If integration is possible (y in step S1004), Nx2N is returned as the best block size bestPart.
  • the condition that can be integrated into Nx2N is that when two vertically arranged blocks are taken as one set, the motion vectors of the blocks constituting the set are the same.
  • NxN is returned as the best block size bestPart.
  • a motion vector search is executed at the following timing.
  • step S1103 motion vector search for 8x8 size block 1 (Fig. 14), 8x8 size block 2 (Fig. 15), 8x8 size block 3 (Fig. 16), and 8x8 size block 4 (Fig. 17) is performed.
  • a motion vector search is performed using an 8 ⁇ 8 size block as a sub-block in step S1103.
  • the block size determination process described in Non-Patent Document 2 includes a step (step S1103) of performing a motion vector search for each sub-block at the CU layer depth depth of interest.
  • the block is divided into four sub-blocks at the specified CU hierarchy depth, and a motion vector search is performed for each of these sub-blocks. Is called. This method was found to include redundant motion vector searches.
  • step S1103 of the block size determination process of depth 3 a motion vector search is performed for each sub-block of the 16 ⁇ 16 size block, and this sub-block is an 8 ⁇ 8 size block. For this reason, the motion vector search for the 8 ⁇ 8 size block is repeated.
  • the present invention has been made in view of such a situation, and an exemplary purpose thereof is to determine a block size, which is a unit for holding motion information, for a moving image coding method for performing motion estimation. It is to reduce the amount of calculation required for.
  • the computer determines a vector search process for obtaining each piece of motion information of a minimum block, which is a block in the deepest hierarchy, and a block size that is a unit for holding the motion information. Based on the block size determination process and the integration condition including at least the motion information of sub-blocks that are one layer deeper than the layer currently focused on, one or more sub-blocks adjacent to each other are converted into one motion information. Block integration processing for determining whether or not to integrate into one block having the block size, and the block size determination processing is performed on a block of the shallowest hierarchy determined in advance from a block of a hierarchy one level lower than the minimum block. By executing the block integration process hierarchically in the order of a certain maximum block, And a computer-readable program recording medium having recorded thereon a program for the moving picture coding method for performing motion estimation for determining the Kusaizu.
  • the present invention obtains the motion information of each of the smallest blocks that are the deepest hierarchical blocks determined in advance, determines the block size that is a unit for retaining the motion information, and pays attention to the present. Whether one or more subblocks adjacent to each other are integrated into one block having one piece of motion information based on an integration condition including at least the motion information of subblocks that are blocks one layer deeper than the current layer A determination of whether or not the block size is determined by executing the determination hierarchically in the order of a block having a shallowest hierarchy predetermined in advance from a block having a hierarchy lower than the minimum block. A block size determination method for a moving image coding method for performing estimation. I will provide a.
  • the block integration process is executed for each layer in order from the block of the layer one layer shallower than the minimum block to the largest block. Since the block size is determined, it is not necessary to execute a vector search for each layer. For this reason, the amount of calculation can be reduced.
  • FIG. 1 is a flowchart for explaining an example of block size determination processing according to the first to fourth embodiments of the present invention.
  • FIG. 2 is a flowchart for explaining the block integration processing according to the second embodiment of the present invention.
  • FIG. 3 is a flowchart for explaining the block integration processing according to the second embodiment of the present invention.
  • FIG. 4 is a flowchart for explaining block integration processing according to the third embodiment of the present invention.
  • FIG. 5 is a flowchart for explaining block integration processing according to the third embodiment of the present invention.
  • FIG. 6 is a flowchart for explaining block integration processing according to the fourth embodiment of the present invention.
  • FIG. 7 is a diagram for explaining a block obtained by dividing a 64 ⁇ 64 size CU into quadtrees.
  • FIG. 7 is a diagram for explaining a block obtained by dividing a 64 ⁇ 64 size CU into quadtrees.
  • FIG. 8 is a diagram for explaining the relationship between a 2Nx2N CU and 2Nx2N, 2NxN, Nx2N, and NxN PUs.
  • FIG. 9 is a diagram for explaining block integration performed based on motion information.
  • FIG. 10 is a diagram for explaining an operation for determining whether or not to execute the block integration process based on the integration condition including the block integration information mertgeinfo.
  • FIG. 11 is a flowchart for explaining the block size determination process described in Non-Patent Document 2.
  • FIG. 12 is a flowchart for explaining the block size determination process described in Non-Patent Document 2 and the block integration process in the first embodiment of the present invention.
  • FIG. 13 is a diagram for explaining a block that is a target of block size determination processing.
  • FIG. 26 is a block diagram illustrating an example of a computer.
  • Block size determination processing 1 is processing performed by the computer specifying a variable block indicating a block to be encoded, a variable depth indicating a CU hierarchy depth, and a variable 2N indicating a block size.
  • the CU hierarchy depth depth is a natural number between 1 and 4.
  • the block size 2N is any of 8, 16, 32, and 64.
  • the initial value of the CU hierarchy depth depth is 1.
  • the initial value of the block size 2N is 64.
  • the block size determination process 1 is a process including a recursive call for calling itself.
  • the block size determination process 1 will be described with reference to the flowchart of FIG. First, the computer determines whether or not the CU hierarchy depth depth is maximum, that is, whether or not the block hierarchy has the minimum size (step S101).
  • the computer recursively calls the block size determination process 1 (step S102). That is, the computer performs block size determination processing 1 for each sub-block generated by dividing the block into quadtrees.
  • step S102 when the block size determination process 1 for each of the four sub-blocks constituting the block is completed, the motion information of each sub-block is obtained at this point.
  • step S103 the computer determines the best block size bestPart by performing block integration processing based on the motion information of each sub-block obtained in step S102.
  • the block integration processing performed here is the same as that described above with reference to FIG.
  • the block integration process is a process that returns one of 2Nx2N, 2NxN, Nx2N, and NxN as the best block size bestPart.
  • step S104 the computer compares the RD cost bestPartCost in the best block size bestPart with the previous best cost minCost. If the RD cost bestPartCost is smaller than the best cost minCost (y in step S104), the computer updates the best cost minCost with the value of the RD cost bestPartCost, and also uses the value of the CU hierarchy depth of the currently executing block size determination process. The best depth bestDepth is updated (step S105).
  • a motion vector search is executed at the following timing.
  • the computer performs a motion vector search for the 8 ⁇ 8 size block 1 (FIG. 14), 2 (FIG. 15), 3 (FIG. 16), and 4 (FIG. 17).
  • the motion vector search process is performed only when the depth of the CU layer is the deepest, that is, only in step S106 in the block size determination process at a depth of 4; In this block size determination process, the motion vector search process is not performed. Therefore, according to the block size determination process 1, it is possible to reduce the amount of calculation compared to the conventional method in which the motion vector search process is performed at each of the depths 1 to 4.
  • the computer obtains a difference between motion vectors of adjacent sub-blocks, and if the difference is equal to or less than a predetermined threshold, the motion vectors of those sub-blocks match. You may consider it a thing.
  • the threshold value is constant regardless of the CU hierarchy depth.
  • the condition for determining whether or not a plurality of sub blocks can be integrated is constant regardless of the CU layer depth, and whether or not the motion vectors of adjacent sub blocks match. Accordingly, whether or not the sub-blocks can be integrated was determined.
  • the modification of the first embodiment described above is also similar in that it is determined whether or not subblock integration is possible under the same conditions regardless of the CU layer depth, and is determined in advance as a difference between motion vectors of adjacent subblocks. Whether or not the sub-blocks can be integrated was determined according to the comparison result with a certain threshold value.
  • the conditions for determining whether or not sub-block integration is possible differ depending on the CU layer depth.
  • the second embodiment is the same as the first embodiment in other respects. Hereinafter, a description will be given centering on differences from the first embodiment.
  • the block integration process 2 shown in FIG. 2 is performed.
  • the CU hierarchy depth depth is taken as an argument in addition to the integration target sub-block block.
  • the computer determines the determination conditions used in steps S202, S203, and S204 according to the CU hierarchy depth depth.
  • a determination condition used when determining whether a plurality of sub-blocks can be integrated is referred to as an integration condition, and a process for determining the integration condition is referred to as an integration condition determination process.
  • the computer determines the determination condition according to the CU hierarchy depth depth. Since the computer determines whether or not to integrate the sub-blocks according to the hierarchical depth by the integration condition determination process, it is possible to improve the image quality and the compression efficiency.
  • An example of the block integration process 2 is the block integration process 3.
  • the computer determines the threshold value of the inter-subblock motion vector difference according to the CU layer depth depth.
  • the modification of the first embodiment obtains the motion vector difference between adjacent sub-blocks, and the difference is equal to or less than a predetermined threshold.
  • the threshold value referred to at that time was constant regardless of the CU hierarchy depth depth.
  • different threshold values are used according to the CU hierarchy depth depth.
  • the threshold th is set to the CU hierarchy depth depth in step S301.
  • the computer is configured to change a determination condition when determining whether or not to be integrated in subsequent steps S302 to S304 according to the CU hierarchy depth depth. For example, in step S302, when four blocks block [0], block [1], block [2], and block [3] are arranged in a quadtree structure, motion information block [ The difference between the motion information block [1] .mv and the threshold value th between 0] .mv and the block block [1] is described as block [0] .mv-block [1] .mv ⁇ th Yes.
  • the difference between the motion information block [2] .mv of the block block [2] and the motion information block [3] .mv of the block block [3] and the threshold value th is compared with the block [2]. It is described as .mv-block [3] .mv ⁇ th. Also, the difference between the motion information block [0] .mv of the block block [0] and the motion information block [2] .mv of the block block [2] and the threshold value th is compared with block [0] .mv. Described as -block [2] .mv ⁇ th.
  • step S302 which is 2Nx2N integration determination
  • the computer obtains a difference in motion information between adjacent sub-blocks and determines that 2Nx2N if all four vector differences are less than or equal to a threshold value.
  • step S303 which is a 2NxN integration determination
  • the computer determines 2NxN if all the differences in motion information between horizontally adjacent sub-blocks are less than or equal to a threshold value.
  • step S304 which is Nx2N integration determination, the computer determines Nx2N if differences in motion information between vertically adjacent sub-blocks are all equal to or less than a threshold value.
  • the number of sub-blocks with matching motion information is made different according to the CU hierarchy depth depth. Can be considered.
  • the computer determines to integrate the four subblocks.
  • the computer determines that these four sub-blocks are integrated when the motion information of all four sub-blocks matches.
  • a more suitable block size can be selected, and the coding efficiency is improved.
  • FIG. 4 a block integration process 4 shown in FIG. 4 is used instead of the block integration process S203 of the block size determination process 1.
  • Other operations are the same as those in the block size determination process 1 of the first embodiment.
  • block integration processing 4 the computer uses block integration information mergeInfo as an integration condition.
  • the block integration information mergeInfo is information related to the result of block integration processing in a deeper hierarchy. For this reason, in the block integration process 4, block integration information mergeInfo is used as an argument in addition to the integration target sub-block block.
  • step S401 the computer determines the determination conditions used in steps S402, S403, and S404 according to the block integration information mergeInfo.
  • FIG. 5 shows a block integration processing 5 for setting a determination condition using the integrated block size as the block integration information mergeInfo.
  • FIG. 5 shows a block integration processing 5 for setting a determination condition using the integrated block size as the block integration information mergeInfo.
  • the computer determines the integration conditions in step S501.
  • the integration condition includes a condition that, for example, if there is at least one of the four sub-blocks that could not be integrated into 2Nx2N in a deep hierarchy, as shown in the upper right block of FIG.
  • the computer determines block integration information mergeInfo based on the integration condition, thereby determining whether or not the four sub-blocks can be integrated in step S502.
  • step S502 the computer determines that it cannot be integrated (size NxN) without performing subsequent condition determination. In this case, since the execution of the process of determining whether or not 2Nx2N, 2NxN, and Nx2N are integrated in steps S202 to S204 is skipped, the amount of calculation required is reduced accordingly.
  • step S502 the computer executes steps S202 to S204 of the block integration process 2 described above to determine whether to integrate into 2Nx2N, 2NxN, or Nx2N.
  • the computer may perform block integration processing 3 or block integration processing 4 instead of steps S202 to S204 of block integration processing 2.
  • step S502 determines whether or not it is necessary to execute processing for determining whether or not four sub-blocks can be integrated into 2Nx2N, 2NxN, and Nx2N.
  • step S502 determines whether or not it is necessary to execute processing for determining whether or not four sub-blocks can be integrated into 2Nx2N, 2NxN, and Nx2N.
  • a condition for determining whether blocks can be integrated is determined based on the result of block integration processing at a deeper CU hierarchy depth.
  • a block integration process 6 shown in FIG. 6 is used instead of the block integration process S203 of the block size determination process 1.
  • Other operations are the same as those in the block size determination process 1 of the first embodiment.
  • step S601 the computer determines a threshold value to be compared with the difference between the motion vectors of adjacent sub-blocks based on the sub-block information of the hierarchy deeper than the current CU hierarchy depth depth.
  • the computer increases the threshold when there are few sub-blocks integrated at a deep CU layer depth (when there are many sub-blocks that are not integrated).
  • the computer decreases the threshold when there are many subblocks integrated at a deep CU hierarchy depth (when there are few subblocks that are not integrated). Whether the number of sub-blocks integrated at a deep CU layer depth is large or small is determined, for example, by separately setting a threshold value in advance.
  • one 64x64 block is divided into four 32x32 blocks, but instead, one 64x64 block may be divided into 16 16x16 blocks.
  • one square block is divided into four square blocks.
  • the shape of the divided blocks and the shape of the divided blocks are not limited to squares. Absent.
  • a square block may be divided into two rectangular blocks, or a rectangular block may be divided into two square blocks.
  • the block shape is a square at any CU layer depth, in other words, the block shape is similar regardless of the CU layer depth.
  • the shape of the block is not limited to this, and a block having a different shape for each CU layer depth may be used.
  • the first layer may be a 64 ⁇ 64 square block
  • the second layer may be a 64 ⁇ 32 rectangular block
  • the third layer may be a 32 ⁇ 32 square block.
  • the block size has been described as 2Nx2N, 2NxN, Nx2N, and NxN in the above-described embodiment, it is not limited to this.
  • the operation can be similarly performed by division such as AMP (Asymmetric motion partition) in H.265 or other divisions.
  • whether block integration is possible or not is determined based on the motion vector, but the present invention is not limited to this.
  • the determination may be performed based on information such as a reference frame index and a reference direction.
  • motion vector information that has been scaled according to the distance between frames may be used.
  • the determination condition for integrating the blocks may be weighted according to the size of the small block holding each motion vector and the RD cost of each small block.
  • the motion vector search may be performed only for the determined block size. In this way, the image quality can be improved with a low amount of computation.
  • FIG. 26 is a block diagram illustrating an example of the hardware configuration of the computer in the above-described embodiment.
  • the computer 100 includes a CPU (Central Processing Unit) 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, a storage device 104, a drive device 105, a communication interface 106, and an input / output interface 107.
  • CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the CPU 101 uses the RAM 103 to execute the program 108 stored in the storage device 104.
  • the program 108 may be stored in the ROM 102.
  • the program 108 may be recorded on the recording medium 109 and read by the drive device 105, or may be transmitted from the external device via the network 110.
  • the communication interface 106 exchanges data with an external device via the network 110.
  • the input / output interface 107 exchanges data with peripheral devices (keyboard, mouse, display device, etc.).
  • the communication interface 106 and the input / output interface 107 can function as means for acquiring or outputting data. Data necessary for determining the block size may be stored in the storage device 104 or may be included in the program 108.
  • the components of the computer can be realized by general-purpose or dedicated circuits, processors, or combinations thereof. These may be constituted by a single chip or may be constituted by a plurality of chips.
  • the predetermined shallowest block is called the largest block
  • a block of the deepest hierarchy defined by dividing the largest block is called the smallest block
  • the block of the hierarchy that focuses on the current is called the current block
  • When a block that is one layer deeper than the layer that is currently focused on is called a sub-block, A vector search process for obtaining motion information of each of the minimum blocks;
  • a block integration process for determining whether to integrate one or more adjacent sub-blocks into one block having one motion information based on an integration condition including at least the motion information of the sub-blocks; Let it run A program for determining a block size by executing block integration processing hierarchically in the order of blocks from a layer one layer lower than the smallest block to the largest block.
  • the integration condition includes other information of sub-block motion information,
  • Appendix 3 The program according to appendix 2, wherein the other information is a depth of a hierarchy that is currently focused on.
  • Appendix 4 The program according to appendix 2, wherein the other information is information related to a result of block integration processing in a layer deeper than a layer currently focused on.
  • the integration condition includes the depth of the hierarchy currently focused on,
  • a method for determining a block size, which is a unit for holding motion information, for a video coding method for performing motion estimation The predetermined shallowest block is called the largest block, A block of the deepest hierarchy defined by dividing the largest block is called the smallest block, The block of the hierarchy that focuses on the current is called the current block, When a block that is one layer deeper than the layer that is currently focused on is called a sub-block, Executing a vector search process for obtaining motion information of each of the minimum blocks in the processing device; Based on the integration condition including at least the motion information of the sub-blocks, the processing device performs block integration processing for determining whether to integrate one or more adjacent sub-blocks into one block having one motion information. And performing the steps
  • a block size determination method comprising: determining a block size by executing block integration processing hierarchically in order from a block having a layer shallower than a minimum block to a maximum block.
  • the integration condition includes other information of sub-block motion information,
  • the block size determination method according to appendix 8 further comprising a step of executing, in a processing device, an integration condition determination process for determining the integration condition in the hierarchy currently focused on based on the other information.
  • Appendix 10 The block size determination method according to appendix 9, wherein the other information is a depth of a hierarchy that is currently focused on.
  • Appendix 11 The block size determination method according to appendix 9, wherein the other information is information related to a result of block integration processing in a layer deeper than a layer currently focused on.
  • the integration condition includes the depth of the hierarchy currently focused on,
  • the block size determination method according to supplementary note 12 including a step of executing, in a processing device, processing for determining a threshold value related to the difference according to a depth of a hierarchy that is currently focused on.
  • the processing device further includes a step of executing processing for determining whether or not execution of the block integration processing in the layer currently focused on is necessary based on a result of the block integration processing in a layer deeper than the layer currently focused on. 14.
  • the block size determination method according to any one of appendix 8 to appendix 13, characterized in that:

Abstract

 動き推定を行う動画像符号化方式のために、動き情報を保持する単位であるブロックサイズを決定する際に必要となる計算量を削減する。プログラムは、コンピュータに、予め定められた最も深い階層のブロックである最小ブロックのそれぞれの動き情報を求めるベクトル探索処理と、動き情報を保持する単位であるブロックサイズを決定するブロックサイズ決定処理と、現に着目している階層よりも一階層深い階層のブロックであるサブブロックの動き情報を少なくとも含む統合条件に基づいて、互いに隣接する一又は複数のサブブロックをひとつの動き情報を有するひとつのブロックに統合するか否かを判定するブロック統合処理とを実行させ、前記ブロックサイズ決定処理は、最小ブロックよりも一階層浅い階層のブロックから予め定められた最も浅い階層のブロックである最大ブロックの順に、前記ブロック統合処理を階層的に実行することによりブロックサイズを決定する。

Description

ブロックサイズ決定方法及びプログラム記録媒体
 本発明は動画像の符号化に関する。本発明は、特に、符号化効率を低下させることなく、演算量を削減する動画像の符号化に関する。
 近年、動画像を高解像度化する要望は益々強くなっている。こうした要望に応えるため、MPEG-2、H.264/MPEG-4 AVC(以下H.264)、H.265/HEVC(以下H.265)といった符号化方式は、後に登場したものほど圧縮効率が向上している。
 これらの符号化方式は、フレーム間の動き補償予測を用いて情報を圧縮することで高い符号化効率を達成する。動き補償予測は、符号化対象フレームと符号化済みの参照フレームの間の動き情報を用いて参照フレームの画像を補正し、補正された画像(予測画像)と符号化対象となる現画像の差分情報とフレーム間の動きを表す情報のみを符号化することで動画像情報を圧縮する技術である。
 フレーム間の動きは、移動量を表す動きベクトルによって表現される(例えば、特許文献1参照)。参照フレームと符号化対象フレーム間の動き情報を算出する処理を動き推定という。動き推定では、デコード画像に発生するノイズ量を抑えつつ、符号化する情報量を最小化する動き情報を算出することが重要である。このため、近年の動画像符号化装置ではRD最適化(Rate-Distortion Optimization)と呼ばれる手法が広く用いられている。
 一般に、RD最適化では、着目したブロックについて多数の動きベクトル候補を想定し、それら動きベクトル候補のそれぞれについてJ=D+λRで表されるレート歪みコスト(RDコスト)が算出される。そして、RDコストが最小となるような動きベクトル候補は、その着目したブロックの動きベクトルとして採用される。このように、動きベクトル候補毎にRDコストを求めることにより、着目したブロックの動きベクトルを求める処理を、動きベクトル探索と呼ぶものとする。ここで、Dは差分画像に発生する歪み量であり、Rは動き情報の符号化で発生する符号量であり、λは画像の複雑さなどに依存する重み係数である。動き情報は動きベクトル情報を含む。動きベクトル探索では、多数の動きベクトル候補それぞれについてRDコストを算出する都合上、演算量が膨大になる。
 非特許文献1にはH.265規格に基づく処理の内容が記載されている。H.265動画像符号化の処理は、CU(Coding Unit)と呼ばれる最大64x64画素のブロック単位で行われる。H.265/HEVCでは、CUサイズを可変にすることで効率的に符号量を圧縮することができる。最適なCUサイズは、図7に示すように、最大サイズのブロック64x64を階層的に四分木分割した32x32、16x16、8x8画素サイズのCUから選択される。
 また、H.265規格ではCUをPU(Prediction Unit)に分割して動き推定が行われる。PUは動き情報を保持する単位である。図8に示すように、PUは、CUのサイズを2Nx2Nとするとき、2Nx2N、2NxN、Nx2N、NxNのうちの最適なブロックサイズに分割される。これら4種類の分割の仕方を総称してPU分割と呼ぶものとする。このようにCU・PUのサイズを可変とし、平坦な部分では、大きなブロックで符号化することにより、動き情報の符号量を削減することができる。他方、細かな変化のある部分では、小さなブロックで符号化することにより、差分画像の歪み量を削減することができる。これにより、動き情報の符号化で発生する符号量Rと、差分画像に発生する歪み量Dにより定められるRDコストJ=D+λRを小さくすることができる。
 最適なCU分割及びPU分割を選択する単純な方法は次のようなものとなる。
(A1)64x64サイズのブロックがCUとして仮定される。このときの以下の(A2)~(A6)の処理をCU階層深度depth=1の処理と呼ぶものとする。
(A2)CUと仮定されたブロックについて、図8で示した4つのPU分割(PU partitioning)が想定される。
(A3)(A2)で想定された4つのPU分割のそれぞれにおいて、PU毎に動きベクトル探索が行われる。CUのサイズは2Nx2Nとする。このとき、そのCUをそのままひとつのPU、即ち、2Nx2NのサイズのPUの動きベクトルが求められる。また、そのCUを上下に二分して、2NxNの2つのPUに分割したときの各PUの動きベクトルが求められる。また、そのCUを左右に二分して、Nx2Nの2つのPUに分割したときの各PUの動きベクトルが求められる。また、そのCUを四分木分割してNxNの4つのPUに分割したときの各PUの動きベクトルが求められる。
(A4)(A3)で求めた各PUの動きベクトルに基づいて、PU分割毎のRDコストの合計が求められる。2Nx2NサイズのPUについてはRDコストがひとつ求められるので、そのRDコストがそのまま合計となる。このRDコストをJ(2Nx2N)と表すものとする。2NxNサイズのPUについてはRDコストが2つ求められるので、両者が合計される。この合計をJ(2NxN)と表すものとする。Nx2NサイズのPUについても同様であり、この合計をJ(Nx2N)と表すものとする。NxNサイズのPUについては4つのRDコストが求められるので、それら4つのRDコストが合計される。この合計をJ(NxN)と表すものとする。
(A5)(A4)で求められたRDコストの合計が最小となるようなPU分割が求められる。即ち、J(2Nx2N)、J(2NxN)、J(Nx2N)、J(NxN)のうち、最小となるものに対応するPU分割が求められる。
(A6)64x64サイズのブロックを四分木分割した4つの32x32サイズのブロックを考えて、これらのブロックがそれぞれCUであると仮定される。4つの32x32サイズのブロックのそれぞれについて、(A2)~(A5)が行われる。この処理をCU階層深度depth=2の処理と呼ぶものとする。
(A7)64x64サイズのブロックを四分木分割した4つの32x32サイズのブロックを考え、それら32x32サイズのブロックが更に四分木分割される。即ち、64x64サイズのブロックに対して2段階の四分木分割を行うことにより得られる、合計16個の16x16サイズのブロックがそれぞれCUと仮定される。16個の16x16サイズのブロックそれぞれについて(A2)~(A5)が行われる。この処理をCU階層深度depth=3の処理と呼ぶものとする。
(A8)64x64サイズのブロックに対して3段階の四分木分割を行うことにより得られる、合計で64個の8x8サイズのブロックをそれぞれCUと仮定して、(A2)~(A5)が行われる。この処理をCU階層深度depth=4の処理と呼ぶものとする。
(A9)(A1)~(A8)の結果に基づいて、64x64ブロック全体でのRDコストの合計が最小となるようなCU分割が求められる。
 CUサイズ及びPUサイズの選択は画質に大きな影響を与える。その一方で、多数のCUサイズ、PUサイズに対する動きベクトル探索処理を逐一実行すると、演算量が非常に多くなる。特に、4K等の高解像度動画用の実用的なエンコーダを実装する際に、全てのCUサイズ、PUサイズでの動きベクトル探索を実行するのは現実的ではない。H.265では、選択できるブロックサイズの種類がH.264の7種類に比べて13種類に増えたため、演算量がさらに多くなっている。
 このような演算量の増加を抑制するための技術が非特許文献2に記載されている。同文献に記載のMVM(Motion Vector Merging)では、まず、小さいサイズのブロックにおける動きベクトル探索によって動き情報が求められる。次に、近接ブロック間で動き情報が比較され、等しい場合に近接ブロックが統合(merge)されて大きなブロックとみなされる。これにより演算量が抑制される。
 より詳しくは、まずNxNサイズのPUの動きベクトル探索が行われる。図9に示すように、4つのNxNサイズのブロックの動きベクトルのうち3つが等しい場合には、これら4つのNxNブロックがひとつの2Nx2Nサイズのブロックに統合される。また、互いに横方向に隣接する2つのブロックの動き情報が等しい場合には、4つのNxNブロックが2つの2NxNブロックに統合される。また、互いに縦方向に隣接する2つのブロックの動き情報が等しい場合には、4つのNxNブロックが2つのNx2Nブロックに統合される。
 このように、隣接ブロック間で動き情報が互いに等しい場合、それらのブロックの統合が決定されると共に、その動き情報が統合後のブロックの動き情報とみなされる。このため、上述の方法のステップ(A3)における、2Nx2N、2NxN、Nx2Nのサイズのブロックに関する動きベクトル探索を行う必要がなく、NxNのサイズのブロックについてのみ動きベクトル探索が行われる。
 また、隣接ブロック間での動き情報の比較に応じてブロック統合が決定されるので、上述の方法のステップ(A4)(A5)を行う必要がない。これは、PU分割毎のRDコストの合計を比較しなくても、動き情報の比較によって適したPU分割を選択することができるからである。
 図11のフローチャートを参照して非特許文献2に記載のブロックサイズ決定処理について説明する。blockは符号化対象となるブロックを示す変数である。depthはCU階層深度を示す1以上4以下の自然数であり、初期値は1である。2Nはブロックサイズであり、2Nは64, 32, 16, 8のいずれかであって、初期値は64である。後述するように、このブロックサイズ決定処理は再帰呼び出しを含む処理である。
 ステップS1101では、depthが最大、すなわち最小サイズのブロック階層か否かが判定される。depth=4ならば判定は真であり、depth=1,2,3ならば判定は偽である。
 判定が真であるとき、即ち、最小サイズのブロック階層であるとき、後述するステップS1103に処理が移行する。
 一方、ステップS1101の判定が偽、すなわち最小サイズのブロック階層でなければ、着目するブロックを四分木分割して生成される4つのサブブロック、subblock[1], subblock[2], subblock[3], subblock[4]のそれぞれに対して、ブロックサイズ決定処理が行われる(ステップS1102)。このブロックサイズ決定処理は、本ブロックサイズ処理自身を呼び出す再帰呼び出しとして実行される。つまり、CU階層深度depth=1,2,3の場合、本ブロックサイズ処理自身を呼び出す再帰呼び出しが行われる。サブブロックsubblock[i]は、現に着目しているブロックよりもCU階層深度が1つ深くなるので、再帰呼び出しされたブロックサイズ決定処理では、引数depthに+1が加算されている。また、上述したように、現に着目しているブロックのサイズを示す引数が2Nである一方、サブブロックsubblock[i]のサイズを示す引数はNとなっている。
 ステップS1103では、ブロックblockを四分木分割したサブブロックsubblock[1]、subblock[2]、subblock[3]、subblock[4]それぞれの動きベクトル探索が行われる。ステップS1101の判定が真であってステップS1101から処理が移行してきた場合、即ち、depth=4であり、ブロックサイズが8x8の場合、そのサブブロックである4x4のブロックそれぞれについて動きベクトル探索が行われる。
 ステップS1104では、ステップS1103で得られた各サブブロックの動き情報に基づいて、ブロック統合の処理が行われ、最良ブロックサイズbestPartが決定される。詳細については後述するが、ブロック統合処理は最良ブロックサイズbestPartとして2Nx2N、2NxN、Nx2N、NxNのいずれかを返す。
 ステップS1105では、最良ブロックサイズbestPartにおけるRDコストbestPartCostと、それまでの最良コストminCostとの大小の比較が行われる。RDコストbestPartCostが最良コストminCostよりも小さい場合(ステップS1105のy)には、最良コストminCostがRDコストbestPartCostの値で更新され、最良深度bestDepthが現在実行中のブロックサイズ決定処理のCU階層深度の値で更新される(ステップS1106)。
 次にステップS1104のブロック統合処理の動作について図12を参照して説明する。ブロック統合処理では4つのブロックblockが引数となる。ただし、ここでいう引数blockが示すブロックは、図11のフローチャートにいうsubblock[i]に相当する。
 ステップS1002では、引数として指定した4つのブロックについて予め求めた動き情報に基づいて、2Nx2Nサイズのブロックへの統合の可否が判定される。統合可能な場合(ステップS1002のy)、最良ブロックサイズbestPartとして2Nx2Nが返される。非特許文献2では、2Nx2Nに統合可能な条件を4つのうち3つのブロックの動きベクトルが同一であることとしている。
 ステップS1003では、引数として指定した4つのブロックについて予め求めた動き情報に基づいて、2NxNサイズのブロックへの統合の可否が判定される(ステップS1003のy)。統合可能な場合、最良ブロックサイズbestPartとして2NxNが返される。非特許文献2では2NxNに統合可能な条件は、横に並ぶ2つのブロックを一組としたとき、組となるブロック同士の動きベクトルが同一であることとしている。
 ステップS1004では、引数として指定した4つのブロックについて予め求めた動き情報に基づいて、Nx2Nサイズのブロックへの統合の可否が判定される。統合可能な場合(ステップS1004のy)、最良ブロックサイズbestPartとしてNx2Nが返される。非特許文献2では、Nx2Nに統合可能な条件は、縦に並ぶ2つのブロックを一組としたとき、組となるブロック同士の動きベクトルが同一であることとしている。
 ステップS1002、S1003、S1004のどの条件にも当てはまらない場合、最良ブロックサイズbestPartとしてNxNが返される。
 このブロックサイズ決定処理では、次のようなタイミングで動きベクトル探索が実行される。
 まず、深度depth=4のブロックサイズ決定処理が行われる。ここでは、ステップS1103において、8x8サイズブロック1(図14)、8x8サイズブロック2(図15)、8x8サイズブロック3(図16)、8x8サイズブロック4(図17)を対象とする動きベクトル探索が行われる。深度depth=4において動きベクトル探索の対象となるサブブロックは4x4サイズブロックである。
 次に、8x8サイズブロック1~4からなる16x16サイズブロック(図18)を対象として、depth=3のブロックサイズ決定処理が行われる。ここでは、ステップS1103において8x8サイズブロックをサブブロックとして動きベクトル探索が行われる。
 8x8サイズブロック1~4を対象とするdepth=4のブロックサイズ決定処理と同様にして、8x8サイズブロック5~8を対象とするdepth=4のブロックサイズ決定処理がそれぞれ行われる。また、8x8サイズブロック5~8からなる16x16サイズブロック(図19)を対象とするdepth=3のブロックサイズ決定処理が行われる。8x8サイズブロック9~12についても、depth=4のブロックサイズ決定処理がそれぞれ行われ、8x8サイズブロック9~12からなる16x16サイズブロック(図20)を対象とするdepth=3のブロックサイズ決定処理が行われる。更に、8x8サイズブロック13~16を対象とするdepth=4のブロックサイズ決定処理がそれぞれ行われ、8x8サイズブロック13~16からなる16x16サイズブロック(図21)を対象とするdepth=3のブロックサイズ決定処理が行われる。
 次に、8x8サイズブロック1~16からなる32x32サイズブロック(図22)を対象とするdepth=2のブロックサイズ決定処理が行われる。depth=2のステップS1103における動きベクトル探索のサブブロックは16x16サイズブロックである。
 上述の、8x8サイズブロック1~16を対象とするdepth=4,3,2のブロックサイズ決定処理が、8x8サイズブロック17~32、8x8サイズブロック33~48、及び、8x8サイズブロック49~64それぞれを対象として行われる。
 最後に、全ブロック、即ち、8x8サイズブロック1~64からなる64x64サイズブロックを対象とするdepth=1のブロックサイズ決定処理が行われる。depth=1の動きベクトル探索におけるサブブロックは32x32サイズブロックである。
 このように、非特許文献2に記載のブロックサイズ決定処理は、現に着目しているCU階層深度depthにおけるサブブロックそれぞれについて動きベクトル探索を行うステップ(ステップS1103)を含む。depth=4では4x4サイズブロック、depth=3では8x8サイズブロック、depth=2では16x16サイズブロック、depth=1では32x32サイズブロックをそれぞれ対象として動きベクトル探索が行われる。
特開2012-257148号公報
ITU-T Recommendation H.265 ''High efficiency video coding,'' Apr 2013. Felipe Sampaio, Sergio Bampi, Mateus Grellert, Luciano Agostini, Julio Mattos, "Motion Vectors Merging: Low Complexity Prediction Unit Decision Heuristic for the Inter-Prediction of HEVC Encoders", 2012 IEEE International Conference on Multimedia and Expo. p.658-662
 検討を重ねた結果、発明者はブロックサイズ決定処理に要する演算量を更に削減する余地があることを見出した。
 上述したように、非特許文献2に記載のブロックサイズ決定処理では、指定したCU階層深度にてブロックを四分木分割して4つのサブブロックとし、これらサブブロックのそれぞれについて動きベクトル探索が行われる。この手法には冗長な動きベクトル探索が含まれていることが判明した。
 深度4のブロックサイズ決定処理では、ステップS1103において8x8サイズブロックの動きベクトル探索が行われる。一方、深度3のブロックサイズ決定処理のステップS1103では、16x16サイズブロックのサブブロックそれぞれについて動きベクトル探索が行われるが、このサブブロックとは8x8サイズブロックである。このため、8x8サイズブロックについての動きベクトル探索が繰り返されることになる。
 本発明はこのような状況に鑑みてなされたものであり、その例示的な目的は、動き推定を行う動画像符号化方式のために、動き情報を保持する単位であるブロックサイズを決定する際に必要となる計算量を削減することである。
 本発明は、その一態様として、コンピュータに、予め定められた最も深い階層のブロックである最小ブロックのそれぞれの動き情報を求めるベクトル探索処理と、動き情報を保持する単位であるブロックサイズを決定するブロックサイズ決定処理と、現に着目している階層よりも一階層深い階層のブロックであるサブブロックの動き情報を少なくとも含む統合条件に基づいて、互いに隣接する一又は複数のサブブロックをひとつの動き情報を有するひとつのブロックに統合するか否かを判定するブロック統合処理とを実行させ、前記ブロックサイズ決定処理は、最小ブロックよりも一階層浅い階層のブロックから予め定められた最も浅い階層のブロックである最大ブロックの順に、前記ブロック統合処理を階層的に実行することによりブロックサイズを決定する動き推定を行う動画像符号化方式のためのプログラムを記録したコンピュータ読み取り可能なプログラム記録媒体を提供する。
 また、本発明は、他の一態様として、予め定められた最も深い階層のブロックである最小ブロックのそれぞれの動き情報を求め、動き情報を保持する単位であるブロックサイズを決定し、現に着目している階層よりも一階層深い階層のブロックであるサブブロックの動き情報を少なくとも含む統合条件に基づいて、互いに隣接する一又は複数のサブブロックをひとつの動き情報を有するひとつのブロックに統合するか否かを判定し、前記ブロックサイズを、最小ブロックよりも一階層浅い階層のブロックから予め定められた最も浅い階層のブロックである最大ブロックの順に前記判定を階層的に実行することにより決定する動き推定を行う動画像符号化方式のためのブロックサイズ決定方法。を提供する。
 本発明によれば、最小ブロックの動き情報を求めた後、その動き情報を起点として、最小ブロックよりも一階層浅い階層のブロックから最大ブロックの順に、ブロック統合処理を階層毎に実行することにより、ブロックサイズを決定するので、階層毎にベクトル探索を実行する必要がない。このため計算量を削減することができる。
図1は、本発明の第1~第4の実施の形態に係るブロックサイズ決定処理の一例について説明するためのフローチャートである。 図2は、本発明の第2の実施の形態に係るブロック統合処理について説明するためのフローチャートである。 図3は、本発明の第2の実施の形態に係るブロック統合処理について説明するためのフローチャートである。 図4は、本発明の第3の実施の形態に係るブロック統合処理について説明するためのフローチャートである。 図5は、本発明の第3の実施の形態に係るブロック統合処理について説明するためのフローチャートである。 図6は、本発明の第4の実施の形態に係るブロック統合処理について説明するためのフローチャートである。 図7は、64x64サイズのCUを四分木分割して得られるブロックについて説明するための図である。 図8は、2Nx2NサイズのCUと2Nx2N、2NxN、Nx2N、NxNサイズのPUの関係を説明するための図である。 図9は、動き情報に基づいて行うブロック統合について説明するための図である。 図10は、ブロック統合情報mertgeinfoを含む統合条件に基づいてブロック統合処理の実行の要否を判定する動作を説明するための図である。 図11は、非特許文献2に記載のブロックサイズ決定処理について説明するためのフローチャートである。 図12は、非特許文献2に記載のブロックサイズ決定処理、及び、本発明の第1の実施の形態におけるブロック統合処理について説明するためのフローチャートである。 図13は、ブロックサイズ決定処理の対象となるブロックについて説明するための図である。 図14は、CU階層深度depth=4で動きベクトル探索の対象となるブロックについて説明するための図である。 図15は、CU階層深度depth=4で動きベクトル探索の対象となるブロックについて説明するための図である。 図16は、CU階層深度depth=4で動きベクトル探索の対象となるブロックについて説明するための図である。 図17は、CU階層深度depth=4で動きベクトル探索の対象となるブロックについて説明するための図である。 図18は、CU階層深度depth=3で動きベクトル探索の対象となるブロックについて説明するための図である。 図19は、CU階層深度depth=3で動きベクトル探索の対象となるブロックについて説明するための図である。 図20は、CU階層深度depth=3で動きベクトル探索の対象となるブロックについて説明するための図である。 図21は、CU階層深度depth=3で動きベクトル探索の対象となるブロックについて説明するための図である。 図22は、CU階層深度depth=2で動きベクトル探索の対象となるブロックについて説明するための図である。 図23は、CU階層深度depth=2で動きベクトル探索の対象となるブロックについて説明するための図である。 図24は、CU階層深度depth=2で動きベクトル探索の対象となるブロックについて説明するための図である。 図25は、CU階層深度depth=1で動きベクトル探索の対象となるブロックについて説明するための図である。 図26は、コンピュータの一例を示すブロック図である。
(第1の実施の形態)
 本発明の第1の実施の形態であるブロックサイズ決定処理1について説明する。ブロックサイズ決定処理1は、コンピュータが、符号化対象となるブロックを示す変数block、CU階層深度を示す変数depth、ブロックサイズを示す変数2Nを指定して行う処理である。ここでは、CU階層深度depthは1以上4以下の自然数である。ブロックサイズ2Nは8、16、32、64のいずれかである。CU階層深度depthの初期値は1である。ブロックサイズ2Nの初期値は64である。後述するように、ブロックサイズ決定処理1は自分自身を呼び出す再帰呼び出しを含む処理である。
 ブロックサイズ決定処理1について図1のフローチャートを参照して説明する。まず、コンピュータは、CU階層深度depthが最大であるか否か、即ち、最小サイズのブロック階層か否かを判定する(ステップS101)。
 判定が真、すなわち、CU階層深度depth=4であって、最小サイズのブロック階層である場合、コンピュータは、そのブロックの動きベクトル探索を行って動き情報を求め、その動き情報に基づいてそのブロックのRDコストを算出する(ステップS106)。そして、コンピュータは、現在のCU階層深度depth=4を最良深度bestDepth=4と設定(ステップS107)してリターンする。
 判定が偽、即ち、CU階層深度depthが1から3であって、最小サイズのブロック階層ではない場合、コンピュータは、ブロックサイズ決定処理1を再帰呼び出しする(ステップS102)。即ち、コンピュータは、そのブロックを四分木分割して生成されるサブブロックそれぞれを対象として、ブロックサイズ決定処理1を行う。
 ステップS102において、ブロックを構成する4つのサブブロックそれぞれを対象としたブロックサイズ決定処理1が終了すると、この時点で、各サブブロックの動き情報が得られる。
 ステップS103では、コンピュータは、ステップS102で得られた各サブブロックの動き情報に基づいてブロック統合処理を行うことで、最良ブロックサイズbestPartを決定する。ここで行うブロック統合処理は、背景技術の欄において図12を参照しつつ上述したものが用いられる。ブロック統合処理は、最良ブロックサイズbestPartとして2Nx2N、2NxN、Nx2N、NxNのいずれかを返す処理である。
 ステップS104では、コンピュータは、最良ブロックサイズbestPartにおけるRDコストbestPartCostと、それまでの最良コストminCostとの大小を比較する。RDコストbestPartCostが最良コストminCostよりも小さい場合(ステップS104のy)、コンピュータは、RDコストbestPartCostの値で最良コストminCostを更新すると共に、現在実行中のブロックサイズ決定処理のCU階層深度の値で最良深度bestDepthを更新する(ステップS105)。
 このブロックサイズ決定処理では、次のようなタイミングで動きベクトル探索が実行される。
 コンピュータは、ステップS106、S107にてCU階層深度depth=4を対象とする処理を行う。depth=4のブロックサイズ決定処理におけるサブブロックは、4x4サイズブロックである。特に、ステップS106において、コンピュータは、8x8サイズブロック1(図14)、2(図15)、3(図16)、4(図17)を対象とする動きベクトル探索を行う。
 コンピュータは、8x8サイズブロック1~4からなる16x16サイズブロック(図18)を対象とするdepth=3のブロックサイズ決定処理としてステップS102-S105を行う。
 コンピュータは、上述の8x8サイズブロック1~4を対象とするdepth=4のブロックサイズ決定処理と同様にして、8x8サイズブロック5~8を対象とする動きベクトル探索をステップS106にてそれぞれ行う。更に、コンピュータは、8x8サイズブロック5~8からなる16x16サイズブロック(図19)を対象とするdepth=3のブロックサイズ決定処理としてステップS102-S105を行う。
 コンピュータは、上述の8x8サイズブロック1~4を対象とするdepth=4のブロックサイズ決定処理と同様にして、8x8サイズブロック9~12を対象とする動きベクトル探索をステップS106にてそれぞれ行う。また、コンピュータは、8x8サイズブロック9~12からなる16x16サイズブロック(図20)を対象とするdepth=3のブロックサイズ決定処理としてステップS102-S105を行う。
 コンピュータは、上述の8x8サイズブロック1~4を対象とするdepth=4のブロックサイズ決定処理と同様にして、8x8サイズブロック13~16を対象とする動きベクトル探索をステップS106にてそれぞれ行う。また、コンピュータは、8x8サイズブロック13~16からなる16x16サイズブロック(図21)を対象とするdepth=3のブロックサイズ決定処理としてステップS102-S105を行う。
 コンピュータは、8x8サイズブロック1~16からなる32x32サイズブロック(図22)を対象とするdepth=2のブロックサイズ決定処理としてステップS102-S105を行う。depth=2のブロックサイズ決定処理におけるサブブロックは、16x16サイズブロックである。
 コンピュータは、上述の、8x8サイズブロック1~16を対象とするdepth=4,3,2のブロックサイズ決定処理と同様の処理を、8x8サイズブロック17~32、8x8サイズブロック33~48、及び、8x8サイズブロック49~64をそれぞれ対象として行う。
 最後に、コンピュータは、全ブロック、即ち、8x8サイズブロック1~64からなる64x64サイズブロックを対象とするdepth=1のブロックサイズ決定処理としてステップS102-S105を行う。depth=1のブロックサイズ決定処理におけるサブブロックは、32x32サイズブロックである。尚、上述の処理には、並列して実行可能な処理が多数含まれているが、これらの一部又は全部は並列処理で実現されてもよい。
 上述のように、ブロックサイズ決定処理1によれば、動きベクトル探索処理を行うのはCU階層深度が最深のとき、即ち、深度4のブロックサイズ決定処理におけるステップS106のみであり、深度1~3のブロックサイズ決定処理では動きベクトル探索処理が行われない。このため、ブロックサイズ決定処理1によれば、深度1~4のそれぞれにおいて動きベクトル探索処理を行う従来の手法と比較して、演算量を削減することができる。
 非特許文献2によれば、図11のステップS1103に示すように、CU階層深度depth=1~4のそれぞれにおいて、サブブロックの動きベクトル探索が行われる。depth=4では4x4サイズブロックを対象として動きベクトル探索が行われる。depth=3では8x8サイズブロックを対象として動きベクトル探索が行われる。depth=2では16x16サイズブロックを対象として動きベクトル探索が行われる。depth=1では32x32サイズブロックを対象として動きベクトル探索が行われる。これに対して、本実施形態のブロックサイズ決定処理1では、depth=4での4x4サイズブロックを対象とする動きベクトル探索のみが行われ、depth=3,2,1では動きベクトル探索が行われない。
 上述の第1の実施の形態では、ブロック統合処理において、互いに隣接するサブブロックの動きベクトルが完全に一致するとき、それらサブブロックを統合するものとして説明した。第1の実施の形態の一変形例として、コンピュータは、互いに隣接するサブブロックの動きベクトルの差を求め、その差が予め定められた閾値以下の場合、それらのサブブロックの動きベクトルは一致するものとみなしてもよい。本変形例では、閾値はCU階層深度に関わらず一定とする。
(第2の実施の形態)
 次に、本発明の第2の実施の形態について説明する。第1の実施の形態では、ブロック統合処理において、複数のサブブロックの統合の可否を判定する条件は、CU階層深度に関わらず一定であり、隣接するサブブロックの動きベクトルが一致するか否かに応じて、それらサブブロックの統合の可否を判定した。上述した第1の実施の形態の変形例も、CU階層深度に関わらず同じ条件でサブブロック統合の可否を判定するという点で同様であり、隣接するサブブロックの動きベクトルの差と予め定められた一定の閾値との比較結果に応じてサブブロックの統合の可否を判定した。
 これに対して、第2の実施の形態では、サブブロック統合の可否を判定する際の条件が、CU階層深度に応じて異なる。第2の実施の形態は、その他の点では第1の実施の形態と同様である。以下、第1の実施の形態とは異なる点を中心として説明する。
 図1のステップS103にて行うブロック統合処理として、第2の実施の形態では、図2に示したブロック統合処理2を行う。ブロック統合処理2では、引数として、統合対象サブブロックblockに加えて、CU階層深度depthをとる。ステップS201では、コンピュータは、CU階層深度depthに応じてステップS202,S203,S204で用いる判定条件を決定する。
 ここで、複数のサブブロックを統合可能か判断する際に用いる判定条件を統合条件と呼び、統合条件を決定する処理を統合条件決定処理と呼ぶものとする。ブロック統合処理2では、コンピュータは、CU階層深度depthに応じて判定条件を決定する。コンピュータは、統合条件決定処理によって階層深度に応じてサブブロックの統合の要否を判定するので、画質の向上や圧縮効率の向上を図ることができる。
 ブロック統合処理2の一例としてブロック統合処理3を挙げることができる。図3を参照すると、ブロック統合処理3の統合条件決定処理S301では、コンピュータは、CU階層深度depthに応じて、サブブロック間動きベクトル差の閾値を決定する。隣り合うサブブロックが同じ方向に動いているか否かを判定する際、第1の実施の形態の変形では、隣り合うサブブロックの動きベクトルの差を求め、その差が予め定めた閾値以下の場合に、それらのサブブロックの動きベクトルは一致すると判定された。その際に参照する閾値は、CU階層深度depthに関わらず一定だった。これに対して、ブロック統合処理3では、CU階層深度depthに応じて異なる閾値が用いられる。
 一般に、階層が深い、即ち、ブロックサイズが小さいほど動き情報に必要な符号量が多くなる。ブロック統合処理3では、ステップS301において閾値thをCU階層深度depthとする。
 コンピュータは、以後のステップS302-S304において統合の可否を判定する際の判定条件を、CU階層深度depthに応じて変えるように構成されている。例えば、ステップS302では、4つのブロックblock[0]、block[1]、block[2]、block[3]が四分木構造に配置されているとき、ブロックblock[0]の動き情報block[0].mvとブロックblock[1]の動き情報block[1].mvの差分と閾値thとを比較することが、block[0].mv-block[1].mv<thとして記載されている。
同様にして、ブロックblock[2]の動き情報block[2].mvとブロックblock[3]の動き情報block[3].mvの差分と閾値thとの比較を行うことが、block[2].mv-block[3].mv<thとして記載されている。また、ブロックblock[0]の動き情報block[0].mvとブロックblock[2]の動き情報block[2].mvの差分と閾値thとの比較を行うことが、block[0].mv-block[2].mv<thとして記載されている。また、ブロックblock[1]の動き情報block[1].mvとブロックblock[3]の動き情報block[3].mvの差分と閾値thとの比較を行うことが、block[1].mv-block[3].mv<thとして記載されている。これら4つの不等式で表された条件は、論理積を示す記号&&で連結されている。ステップS303、S304その他後述する図6のステップS602-S604も、同様の表記方法にて記載されている。
 このようにすることにより、CU階層深度が大きいほど、閾値thが大きくなり、ブロック統合がされやすくなる一方、CU階層深度が小さいほど、閾値thが小さくなり、ブロック統合がされにくくなる。
 2Nx2N統合判定であるステップS302では、コンピュータは、隣り合うサブブロックの動き情報の差を求め4つのベクトル差が全て閾値以下なら2Nx2Nと判定する。2NxN統合判定であるステップS303では、コンピュータは、横に隣り合うサブブロックの動き情報の差が全て閾値以下なら2NxNと判定する。Nx2N統合判定であるステップS304では、コンピュータは、縦に隣り合うサブブロックの動き情報の差が全て閾値以下ならNx2Nと判定する。
 ブロック統合処理2の別の例としては、4つのサブブロックを2Nx2Nに統合する旨の判定をする際、動き情報が一致するサブブロックの数を、CU階層深度depthに応じて異なるものにすることが考えられる。深い階層の場合、即ち、CU階層深度depthが大きい場合には、コンピュータは、4つのサブブロックのうち任意の3つの動き情報が一致するとき、それら4つのサブブロックを統合すると判定する。一方、コンピュータは、浅い階層の場合、即ち、CU階層深度depthが小さい場合には、4つのサブブロック全ての動き情報が一致するとき、それら4つのサブブロックを統合すると判定する。
 本実施の形態により、より適したブロックサイズを選択できることとなり符号化効率が向上する。
(第3の実施の形態)
 次に、第3の実施の形態について説明する。第3の実施の形態では、ブロックサイズ決定処理1のブロック統合処理S203に代えて、図4に示すブロック統合処理4が用いられる。その他の動作は第1の実施の形態のブロックサイズ決定処理1と同様である。
 ブロック統合処理4では、コンピュータは、統合条件としてブロック統合情報mergeInfoを用いる。ブロック統合情報mergeInfoは、より深い階層におけるブロック統合処理の結果に関する情報である。このため、ブロック統合処理4では、引数として、統合対象サブブロックblockに加えて、ブロック統合情報mergeInfoが用いられる。ステップS401では、コンピュータは、ブロック統合情報mergeInfoに応じて、ステップS402,S403,S404で用いる判定条件を決定する。
 ブロック統合処理4の一例として、統合されたブロックサイズをブロック統合情報mergeInfoとして用いて判定条件を設定するブロック統合処理5を図5に示す。例えば、深いCU階層深度から浅いCU階層深度の順にブロック統合の可否を判定していく際に、現在のCU階層深度よりも深いCU階層深度においてブロックが統合できていない場合があるとする。このような場合には、動き情報の比較を行うまでもなく、現在のCU階層深度におけるサブブロックの動き情報は一致しないと判断することができる。ブロック統合処理5は、このことを考慮した処理である。
 コンピュータは、ステップS501において統合条件を決定する。統合条件は、例えば、図10の右上ブロックのように深い階層で2Nx2Nに統合できなかったサブブロックが4つのうち一つでもあれば統合しない、という条件を含む。コンピュータは、この統合条件に基づいてブロック統合情報mergeInfoを判定することにより、4つのサブブロックがそれぞれ統合可能なサイズであるか否かをステップS502にて判定する。
 ステップS502で偽と判断された場合、コンピュータは、その後の条件判定を行うことなく、統合できない(サイズNxN)と判断する。この場合、ステップS202-S204における、2Nx2N、2NxN、Nx2Nの統合可否を判定する処理の実行をスキップするので、その分、必要な計算量が少なくなる。
 一方、ステップS502で真と判断された場合、コンピュータは、上述したブロック統合処理2のステップS202-S204を実行して、2Nx2N, 2NxNまたはNx2Nに統合するか否かを判断する。
 尚、コンピュータは、ブロック統合処理2のステップS202-S204の代わりに、ブロック統合処理3またはブロック統合処理4を行うこととしてもよい。
 本実施の形態によれば、より深いCU階層深度depthにおけるブロック統合処理の結果に基づいて、4つのサブブロックを2Nx2N、2NxN、Nx2Nに統合可能か否かを判定する処理の実行の要否をステップS502にて判定し、不要な場合には、これらの判定処理の実行を省略するので、ブロック統合処理の演算量を削減することができる。
(第4の実施の形態)
 本実施の形態では、第3の実施の形態と同様に、より深いCU階層深度におけるブロック統合処理の結果に基づいて、ブロックが統合可能か判断する条件が決定される。第4の実施の形態では、ブロックサイズ決定処理1のブロック統合処理S203に代えて、図6に示すブロック統合処理6を用いる。その他の動作は第1の実施の形態のブロックサイズ決定処理1と同様である。
 ステップS601では、コンピュータは、現在のCU階層深度depthよりも深い階層のサブブロック情報に基づいて、隣接するサブブロックの動きベクトルの差と比較する閾値を決定する。一般に、小さいブロックが多いと動き情報の符号量が多くなる。このことに鑑みて、本実施の形態では、コンピュータは、深いCU階層深度で統合したサブブロックが少ない場合(統合していないサブブロックが多い場合)には閾値を大きくする。一方、コンピュータは、深いCU階層深度で統合したサブブロックが多い場合(統合していないサブブロックが少ない場合)には閾値を小さくする。深いCU階層深度で統合したサブブロックの数が多いか少ないかは、例えば予め閾値を別に定めて、その閾値よりも多い場合は多いとし、少ない場合は少ないとする。
 このようにすれば、深いCU階層深度で統合したサブブロックが少ない場合には、隣接するサブブロックの動きベクトルの差が、閾値thよりも小さくなりやすいので、ステップS602-S604が真になりやすくなる。このため、深いCU階層深度にて統合できなかったブロックについても、浅いCU階層深度にて統合できる場合が起こり得るようになる。その結果、本実施の形態のブロックサイズ決定処理によれば、圧縮効率及び画質を向上することができる。
 以上、本発明を実施の形態に即して説明したが、本発明はこれに限定されるものではない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 上述の実施の形態では、ブロック分割の手法として四分木分割を用いたものを説明しているが、本発明はこれに限定されるものではない。
 例えば、上述の実施の形態では、1個の64x64ブロックを4個の32x32ブロックに分割するが、その代わりに、1個の64x64ブロックを16個の16x16ブロックに分割することとしてもよい。
 また、上述の実施の形態では、1個の正方形のブロックを4個の正方形のブロックに分割するが、分割するブロックの形状、分割したブロックの形状は、どちらも、正方形に限定されるものではない。例えば、分割の方法は、正方形のブロックを2つの長方形のブロックに分割するものでもよいし、長方形のブロックを2つの正方形のブロックに分割するものでもよい。
 また、上述の実施の形態では、ブロックの形状は、どのCU階層深度でも正方形であり、換言すると、CU階層深度に関わらず、ブロックの形状は相似である。しかし、ブロックの形状は、これに限定されるものではなく、CU階層深度毎に異なる形状のブロックが用いられてもよい。例えば、ブロックの形状は、1階層目は64x64の正方形のブロックとし、2階層目は64x32の長方形のブロックとし、3階層目は32x32の正方形のブロックとしてもよい。
 また、ブロックサイズは、上述の実施の形態では2Nx2N,2NxN,Nx2N,NxNとして説明されたが、これに限定されるものではない。例えば、H.265におけるAMP(Asymmetric motion partitions)のような分割や他の分割でも同様に動作可能である。
 また、上述の実施の形態では、ブロック統合の可否を動きベクトルに基づいて判定したが、本発明はこれに限定されるものではない。例えば、参照フレームインデックスや参照方向などの情報に基づいて判定が行われてもよい。異なる参照フレームに対する動きベクトルの場合、フレーム間距離に応じたスケーリングを行った動きベクトル情報が用いられても良い。
 ブロックを統合する判定条件は、各動きベクトルを保持する小ブロックのサイズや、各小ブロックのRDコストによって重み付けされてもよい。
 上述の各実施の形態に示したようなブロック統合処理によりブロックサイズを決定したあと、再び決定されたブロックサイズのみ動きベクトル探索が行われてもよい。このようにすれば低演算量で画質を向上させることもできる。
 図26は、上述した実施の形態におけるコンピュータのハードウェア構成の一例を示すブロック図である。コンピュータ100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、記憶装置104と、ドライブ装置105と、通信インタフェース106と、入出力インタフェース107とを備える。
 CPU101は、記憶装置104に記憶されたプログラム108をRAM103を用いて実行する。プログラム108は、ROM102に記憶されていてもよい。また、プログラム108は、記録媒体109に記録され、ドライブ装置105によって読み出されてもよいし、外部装置からネットワーク110を介して送信されてもよい。通信インタフェース106は、ネットワーク110を介して外部装置とデータをやり取りする。入出力インタフェース107は、周辺機器(キーボード、マウス、表示装置など)とデータをやり取りする。通信インタフェース106及び入出力インタフェース107は、データを取得又は出力する手段として機能することができる。ブロックサイズの決定に必要なデータは、記憶装置104に記憶されていてもよいし、プログラム108に含まれていてもよい。
 なお、コンピュータの構成要素の一部又は全部は、汎用又は専用の回路、プロセッサ等やこれらの組み合わせによって実現され得る。これらは、単一のチップによって構成されてもよいし、複数のチップによって構成されてもよい。
 上記の実施形態の一部又は全部は以下の付記のようにも記載されうるが、これらに限定されるものではない。
(付記1)
 動き推定を行う動画像符号化方式のために、動き情報を保持する単位であるブロックサイズを決定する処理をコンピュータに実行させるプログラムであって、
 予め定められた最も浅い階層のブロックを最大ブロックと呼び、
 最大ブロックを分割してなる、予め定められた最も深い階層のブロックを最小ブロックと呼び、
 現に着目している階層のブロックを現ブロックと呼び、
 現に着目している階層よりも一階層深い階層のブロックをサブブロックと呼ぶとき、
 最小ブロックそれぞれの動き情報を求めるベクトル探索処理と、
 サブブロックの動き情報を少なくとも含む統合条件に基づいて、互いに隣接する一乃至複数のサブブロックを、ひとつの動き情報を有するひとつのブロックに統合するか否かを判定するブロック統合処理と
をコンピュータに実行させ、
 最小ブロックよりも一階層浅い階層のブロックから最大ブロックの順に、ブロック統合処理を階層的に実行することにより、ブロックサイズを決定するプログラム。
(付記2)
 前記統合条件はサブブロックの動き情報の他の情報を含み、
 現に着目している階層における前記統合条件を、前記他の情報に基づいて決定する統合条件決定処理を更に含む
ことを特徴とする付記1に記載のプログラム。
(付記3)
 前記他の情報は、現に着目している階層の深度であることを特徴とする、付記2に記載のプログラム。
(付記4)
 前記他の情報は、現に着目している階層よりも深い階層におけるブロック統合処理の結果に係る情報であることを特徴とする、付記2に記載のプログラム。
(付記5)
 前記統合条件は、隣り合うサブブロックの間の動き情報の差分と、予め定められた前記差分に係る閾値との比較に基づいて定められるものを含むことを特徴とする付記1乃至付記4のいずれかに記載のプログラム。
(付記6)
 前記統合条件は現に着目している階層の深度を含み、
 前記差分に係る閾値を現に着目している階層の深度に応じて定める処理を含む付記5に記載のプログラム。
(付記7)
 現に着目している階層よりも深い階層におけるブロック統合処理の結果に基づいて、現に着目している階層におけるブロック統合処理の実行の要否を判定する処理を更に含むことを特徴とする付記1乃至付記6のいずれかに記載のプログラム。
(付記8)
 動き推定を行う動画像符号化方式のために、動き情報を保持する単位であるブロックサイズを決定する方法であって、
 予め定められた最も浅い階層のブロックを最大ブロックと呼び、
 最大ブロックを分割してなる、予め定められた最も深い階層のブロックを最小ブロックと呼び、
 現に着目している階層のブロックを現ブロックと呼び、
 現に着目している階層よりも一階層深い階層のブロックをサブブロックと呼ぶとき、
 最小ブロックそれぞれの動き情報を求めるベクトル探索処理を処理装置にて実行する段階と、
 サブブロックの動き情報を少なくとも含む統合条件に基づいて、互いに隣接する一乃至複数のサブブロックを、ひとつの動き情報を有するひとつのブロックに統合するか否かを判定するブロック統合処理を処理装置にて実行する段階と
を含み、
 最小ブロックよりも一階層浅い階層のブロックから最大ブロックの順に、ブロック統合処理を階層的に実行することにより、ブロックサイズを決定する
ことを特徴とするブロックサイズ決定方法。
(付記9)
 前記統合条件はサブブロックの動き情報の他の情報を含み、
 現に着目している階層における前記統合条件を、前記他の情報に基づいて決定する統合条件決定処理を処理装置にて実行する段階を更に含む
ことを特徴とする付記8に記載のブロックサイズ決定方法。
(付記10)
 前記他の情報は、現に着目している階層の深度であることを特徴とする、付記9に記載のブロックサイズ決定方法。
(付記11)
 前記他の情報は、現に着目している階層よりも深い階層におけるブロック統合処理の結果に係る情報であることを特徴とする、付記9に記載のブロックサイズ決定方法。
(付記12)
 前記統合条件は、隣り合うサブブロックの間の動き情報の差分と、予め定められた前記差分に係る閾値との比較に基づいて定められるものを含むことを特徴とする付記8乃至付記11のいずれかに記載のブロックサイズ決定方法。
(付記13)
 前記統合条件は現に着目している階層の深度を含み、
 前記差分に係る閾値を現に着目している階層の深度に応じて定める処理を処理装置にて実行する段階を含む付記12に記載のブロックサイズ決定方法。
(付記14)
 現に着目している階層よりも深い階層におけるブロック統合処理の結果に基づいて、現に着目している階層におけるブロック統合処理の実行の要否を判定する処理を処理装置にて実行する段階を更に含むことを特徴とする付記8乃至付記13のいずれかに記載のブロックサイズ決定方法。
 この出願は、2014年8月28日に出願された日本特許出願特願2014-173698を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1  ブロックサイズ決定処理
 2-6  ブロック統合処理
 100  コンピュータ

Claims (10)

  1.  コンピュータに、
     予め定められた最も深い階層のブロックである最小ブロックのそれぞれの動き情報を求めるベクトル探索処理と、
     動き情報を保持する単位であるブロックサイズを決定するブロックサイズ決定処理と、
     現に着目している階層よりも一階層深い階層のブロックであるサブブロックの動き情報を少なくとも含む統合条件に基づいて、互いに隣接する一又は複数のサブブロックをひとつの動き情報を有するひとつのブロックに統合するか否かを判定するブロック統合処理とを実行させ、
     前記ブロックサイズ決定処理は、最小ブロックよりも一階層浅い階層のブロックから予め定められた最も浅い階層のブロックである最大ブロックの順に、前記ブロック統合処理を階層的に実行することによりブロックサイズを決定する
     動き推定を行う動画像符号化方式のためのプログラムを記録したコンピュータ読み取り可能なプログラム記録媒体。
  2.  前記統合条件は、サブブロックの動き情報の他の情報を含み、
     現に着目している階層における前記統合条件を、前記他の情報に基づいて決定する統合条件決定処理を更に含む
    ことを特徴とする請求項1に記載のプログラム記録媒体。
  3.  前記他の情報は、現に着目している階層の深度であることを特徴とする、請求項2に記載のプログラム記録媒体。
  4.  前記他の情報は、現に着目している階層よりも深い階層における前記ブロック統合処理の結果に係る情報であることを特徴とする、請求項2に記載のプログラム記録媒体。
  5.  前記統合条件は、隣り合うサブブロックの間の動き情報の差分と、前記差分に係る閾値との比較に基づいて定められるものを含むことを特徴とする請求項1乃至請求項4のいずれかに記載のプログラム記録媒体。
  6.  前記統合条件は現に着目している階層の深度を含み、
     前記差分に係る閾値を現に着目している階層の深度に応じて定める処理を含む請求項5に記載のプログラム記録媒体。
  7.  現に着目している階層よりも深い階層におけるブロック統合処理の結果に基づいて、現に着目している階層における前記ブロック統合処理の実行の要否を判定する処理を更に含むことを特徴とする請求項1乃至請求項6のいずれかに記載のプログラム記録媒体。
  8.  予め定められた最も深い階層のブロックである最小ブロックのそれぞれの動き情報を求め、
     動き情報を保持する単位であるブロックサイズを決定し、
     現に着目している階層よりも一階層深い階層のブロックであるサブブロックの動き情報を少なくとも含む統合条件に基づいて、互いに隣接する一又は複数のサブブロックをひとつの動き情報を有するひとつのブロックに統合するか否かを判定し、
     前記ブロックサイズを、最小ブロックよりも一階層浅い階層のブロックから予め定められた最も浅い階層のブロックである最大ブロックの順に前記判定を階層的に実行することにより決定する
    動き推定を行う動画像符号化方式のためのブロックサイズ決定方法。
  9.  前記統合条件は、サブブロックの動き情報の他の情報を含み、
     現に着目している階層における前記統合条件を、前記他の情報に基づいて決定する
    ことを特徴とする請求項8に記載のブロックサイズ決定方法。
  10.  前記他の情報は、現に着目している階層の深度であることを特徴とする、請求項9に記載のブロックサイズ決定方法。
PCT/JP2015/004324 2014-08-28 2015-08-27 ブロックサイズ決定方法及びプログラム記録媒体 WO2016031253A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/506,803 US10356403B2 (en) 2014-08-28 2015-08-27 Hierarchial video code block merging using depth-dependent threshold for block merger
JP2016544967A JP6569677B2 (ja) 2014-08-28 2015-08-27 ブロックサイズ決定方法及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-173698 2014-08-28
JP2014173698 2014-08-28

Publications (1)

Publication Number Publication Date
WO2016031253A1 true WO2016031253A1 (ja) 2016-03-03

Family

ID=55399165

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/004324 WO2016031253A1 (ja) 2014-08-28 2015-08-27 ブロックサイズ決定方法及びプログラム記録媒体

Country Status (3)

Country Link
US (1) US10356403B2 (ja)
JP (1) JP6569677B2 (ja)
WO (1) WO2016031253A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018008678A1 (ja) * 2016-07-08 2018-01-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号装置、符号化装置、復号方法及び符号化方法
WO2018105148A1 (ja) * 2016-12-06 2018-06-14 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号化装置、画像復号化方法及び画像復号化プログラム
JP2018191246A (ja) * 2017-05-11 2018-11-29 キヤノン株式会社 動画像符号化装置、動画像符号化方法及びプログラム
RU2754635C9 (ru) * 2016-12-06 2022-07-06 ДжейВиСиКЕНВУД Корпорейшн Устройство кодирования изображения, способ кодирования изображения и считываемый компьютером носитель записи с программой кодирования изображения, а также устройство декодирования изображения, способ декодирования изображения и считываемый компьютером носитель записи с программой декодирования изображения

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110213591B (zh) * 2018-03-07 2023-02-28 腾讯科技(深圳)有限公司 一种视频运动估计方法、装置及存储介质
CN108833923B (zh) * 2018-06-20 2022-03-29 腾讯科技(深圳)有限公司 视频编码、解码方法、装置、存储介质和计算机设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001078197A (ja) * 1999-09-03 2001-03-23 Canon Inc 画像符号化装置、画像符号化方法及び記憶媒体
JP2005012439A (ja) * 2003-06-18 2005-01-13 Nippon Hoso Kyokai <Nhk> 符号化装置、符号化方法および符号化プログラム
JP2009182792A (ja) * 2008-01-31 2009-08-13 Oki Electric Ind Co Ltd 動きベクトル検出装置及び方法、動画像符号化装置及び方法、並びに、動画像復号化装置及び方法
JP2011130265A (ja) * 2009-12-18 2011-06-30 Nippon Telegr & Teleph Corp <Ntt> 動きベクトル検出装置、動きベクトル検出方法およびプログラム
JP2012257148A (ja) * 2011-06-10 2012-12-27 Nippon Hoso Kyokai <Nhk> 動きベクトル検出装置、符号化装置、復号装置、及びこれらのプログラム
WO2013031071A1 (ja) * 2011-09-02 2013-03-07 パナソニック株式会社 動画像復号装置、動画像復号方法、及び集積回路

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594504A (en) * 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine
US6084908A (en) * 1995-10-25 2000-07-04 Sarnoff Corporation Apparatus and method for quadtree based variable block size motion estimation
US20080126278A1 (en) * 2006-11-29 2008-05-29 Alexander Bronstein Parallel processing motion estimation for H.264 video codec
US8605786B2 (en) * 2007-09-04 2013-12-10 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
JP5865366B2 (ja) * 2011-05-27 2016-02-17 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、画像符号化装置、画像復号方法、画像復号装置、および、画像符号化復号装置
WO2012167711A1 (en) * 2011-06-10 2012-12-13 Mediatek Inc. Method and apparatus of scalable video coding
WO2013105791A1 (ko) * 2012-01-09 2013-07-18 삼성전자 주식회사 움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치
EP3028466B1 (en) * 2013-07-24 2022-01-26 Qualcomm Incorporated Simplified advanced motion prediction for 3d-hevc
KR102179383B1 (ko) * 2013-08-09 2020-11-16 삼성전자주식회사 병합 모드 결정 방법 및 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001078197A (ja) * 1999-09-03 2001-03-23 Canon Inc 画像符号化装置、画像符号化方法及び記憶媒体
JP2005012439A (ja) * 2003-06-18 2005-01-13 Nippon Hoso Kyokai <Nhk> 符号化装置、符号化方法および符号化プログラム
JP2009182792A (ja) * 2008-01-31 2009-08-13 Oki Electric Ind Co Ltd 動きベクトル検出装置及び方法、動画像符号化装置及び方法、並びに、動画像復号化装置及び方法
JP2011130265A (ja) * 2009-12-18 2011-06-30 Nippon Telegr & Teleph Corp <Ntt> 動きベクトル検出装置、動きベクトル検出方法およびプログラム
JP2012257148A (ja) * 2011-06-10 2012-12-27 Nippon Hoso Kyokai <Nhk> 動きベクトル検出装置、符号化装置、復号装置、及びこれらのプログラム
WO2013031071A1 (ja) * 2011-09-02 2013-03-07 パナソニック株式会社 動画像復号装置、動画像復号方法、及び集積回路

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018008678A1 (ja) * 2016-07-08 2018-01-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号装置、符号化装置、復号方法及び符号化方法
WO2018105148A1 (ja) * 2016-12-06 2018-06-14 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号化装置、画像復号化方法及び画像復号化プログラム
US10893270B2 (en) 2016-12-06 2021-01-12 JVC Kenwood Corporation Image encoding device, image encoding method, and image encoding program, and image decoding device, image decoding method, and image decoding program
RU2754635C1 (ru) * 2016-12-06 2021-09-06 ДжейВиСиКЕНВУД Корпорейшн Устройство кодирования изображения, способ кодирования изображения и считываемый компьютером носитель записи с программой кодирования изображения, а также устройство декодирования изображения, способ декодирования изображения и считываемый компьютером носитель записи с программой декодирования изображения
RU2770686C1 (ru) * 2016-12-06 2022-04-21 ДжейВиСиКЕНВУД Корпорейшн Устройство кодирования изображения, способ кодирования изображения, устройство декодирования изображения и способ декодирования изображения
RU2754635C9 (ru) * 2016-12-06 2022-07-06 ДжейВиСиКЕНВУД Корпорейшн Устройство кодирования изображения, способ кодирования изображения и считываемый компьютером носитель записи с программой кодирования изображения, а также устройство декодирования изображения, способ декодирования изображения и считываемый компьютером носитель записи с программой декодирования изображения
JP2018191246A (ja) * 2017-05-11 2018-11-29 キヤノン株式会社 動画像符号化装置、動画像符号化方法及びプログラム

Also Published As

Publication number Publication date
JP6569677B2 (ja) 2019-09-04
JPWO2016031253A1 (ja) 2017-06-15
US20170257631A1 (en) 2017-09-07
US10356403B2 (en) 2019-07-16

Similar Documents

Publication Publication Date Title
RU2705435C1 (ru) Способ и устройство для кодирования информации движения, а также способ и устройство для ее декодирования
KR102127687B1 (ko) 참조 유닛 결정 방법 및 장치
RU2696237C2 (ru) Способ декодирования видеосигнала
KR102194295B1 (ko) 움직임 벡터 리스트 설정 방법 및 이러한 방법을 사용하는 장치
JP6569677B2 (ja) ブロックサイズ決定方法及びプログラム
TWI774141B (zh) 視訊編解碼方法及裝置
US20150350674A1 (en) Method and apparatus for block encoding in video coding and decoding
KR102658929B1 (ko) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US20200228831A1 (en) Intra prediction mode based image processing method, and apparatus therefor
KR20210100741A (ko) 영상 코딩 시스템에서 인트라 예측을 사용하는 영상 디코딩 방법 및 그 장치
JP7448558B2 (ja) 画像エンコーディングおよびデコーディングのための方法およびデバイス
KR20210126765A (ko) 영상 코딩 시스템에서의 인트라 예측 기반 영상 코딩
KR101205017B1 (ko) 비대칭 파티션에 대한 공통 병합 후보 블록 집합을 이용한 영상 부호화 방법 및 복호화 방법
WO2017010073A1 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラムを記憶する記録媒体
US10630985B2 (en) Method for scanning coding blocks inside a video frame by video codecs
EP3499890A1 (en) Deep learning based image partitioning for video compression
KR20210137058A (ko) 영상 코딩 시스템에서 인트라 예측 기반 영상 디코딩 방법 및 그 장치
KR20130122566A (ko) 깊이 정보를 이용한 움직임 벡터 예측을 위한 3차원 영상의 부호화 방법 및 장치, 및 복호화 방법 및 장치
KR102610110B1 (ko) 비디오 처리 시스템에서 인터 예측 방법 및 장치
CN116684578A (zh) 基于控制点运动矢量的仿射模型优化

Legal Events

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

Ref document number: 15836371

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016544967

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15506803

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15836371

Country of ref document: EP

Kind code of ref document: A1