WO2016147651A1 - 映像符号化装置、映像符号化方法およびプログラム記録媒体 - Google Patents

映像符号化装置、映像符号化方法およびプログラム記録媒体 Download PDF

Info

Publication number
WO2016147651A1
WO2016147651A1 PCT/JP2016/001452 JP2016001452W WO2016147651A1 WO 2016147651 A1 WO2016147651 A1 WO 2016147651A1 JP 2016001452 W JP2016001452 W JP 2016001452W WO 2016147651 A1 WO2016147651 A1 WO 2016147651A1
Authority
WO
WIPO (PCT)
Prior art keywords
merge candidate
candidate list
unit
generation
zero
Prior art date
Application number
PCT/JP2016/001452
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 JP2017506092A priority Critical patent/JP6677243B2/ja
Publication of WO2016147651A1 publication Critical patent/WO2016147651A1/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Definitions

  • the present invention relates to a video coding apparatus, and more particularly to a circuit design technique in a video coding system based on motion vector merging such as HEVC.
  • Non-Patent Document 1 describes HEVC (High Efficiency Video Coding) which is a video coding system based on the ITU-T (International Telecommunication Union Telecommunication Standardization Sector) recommendation H.265 standard.
  • HEVC High Efficiency Video Coding
  • each frame of a digitized video is divided into coding tree units (CTU: Coding Tree Unit), and each CTU is coded in raster scan order.
  • Each CTU has a quad tree structure and is encoded by being divided into coding units (CU: Coding Unit).
  • CU Coding Unit
  • Each CU is predicted by being divided into prediction units (PU: Prediction Unit).
  • PU Prediction Unit
  • the prediction error of each CU is divided into transform units (TU: Transform) Unit) in a quadtree structure, and is frequency-transformed.
  • the largest CU is called the largest CU (LCU: Largest Coding Unit), and the smallest CU is called the smallest CU (SCU: Smallest Coding Unit).
  • CU is predictively encoded by intra prediction or inter-frame prediction (inter prediction).
  • FIG. 12A and 12B are explanatory diagrams illustrating an example of CU partitioning when the CTU size is 64 ⁇ 64 (64 pixels ⁇ 64 pixels).
  • FIG. 12A shows an example of a divided shape (hereinafter also referred to as a block structure).
  • FIG. 12B shows an example of a CU quadtree structure corresponding to the divided shape shown in FIG. 12A.
  • CU is also divided into TUs in a quad tree structure.
  • the way of division is the same as in the case of CU division shown in FIG. 12A.
  • FIG. 13 is an explanatory diagram showing a PU partitioning method in intra prediction and a PU partitioning method in inter prediction.
  • FIG. 13 illustrates an example of a CTU CU quadtree structure and PU partition candidates for each prediction mode.
  • CU when encoding is performed by inter prediction, there is a method of setting the PU to the same size as the CU size (2Nx2N).
  • CU can be divided into two rectangles (2NxN, Nx2N) that are vertically or horizontally symmetric
  • CU can be divided into two rectangles (2NxnU, 2NxnD, nRx2N, nLx2N) that are vertically asymmetric or horizontally asymmetric.
  • inter prediction In the case of inter prediction, encoding based on motion compensation prediction is performed, and a motion vector is transmitted.
  • the motion vector is transmitted for each PU. Therefore, the number of motion vectors per CTU depends on the CU quadtree structure. The number of motion vectors increases as the division becomes finer, and the amount of motion vector codes increases.
  • the TU When encoding is performed by intra prediction, when division is performed, the TU is sequentially divided starting from a PU that is a block having the same size as the CU or a PU that is a block obtained by dividing the CU into four.
  • the TU When encoding is performed by inter prediction, when division is performed, the TU is sequentially divided starting from the CU.
  • FIG. 14 the configuration and operation of a general video encoding apparatus that outputs a bit stream using each CU of each frame of a digitized video as an input image will be described.
  • FIG. 14 is a block diagram showing an example of a general video encoding device. 14 includes a transform unit 121, a quantization unit 122, an entropy coding unit 127, an inverse quantization unit 123, an inverse transform unit 124, a buffer 125, a prediction unit 126, and a coding parameter search unit. 110.
  • the coding parameter search unit 110 calculates the respective coding costs for the CU quadtree structure / PU split shape / TU quadtree structure of the CTU, the prediction mode of the CU, the intra prediction direction of the intra PU, and the motion vector of the inter PU. calculate.
  • the encoding parameter search unit 110 searches for inter-PU motion vectors by comparing the calculated encoding costs, and determines a motion vector to be transmitted.
  • the encoding parameter search unit 110 includes a motion vector search unit 111 that performs a search for inter-PU motion vectors.
  • the encoding cost reflects a value related to the code amount and encoding distortion (correlated with image quality).
  • the encoding parameter search unit 110 uses the following RD (RateRDDistortion) cost (Cost) as an example.
  • D is a coding distortion
  • R is a code amount including a transform coefficient
  • is a Lagrange multiplier
  • the coding parameter search unit 110 determines a CU quadtree structure / PU partition shape / TU quadtree structure for each CTU so as to increase the coding efficiency in accordance with the feature of the image.
  • FIG. 15 is a block diagram illustrating an example of a general motion vector search unit.
  • the motion vector search unit 111 includes a motion vector search candidate generation unit 112, a merge candidate list output unit 113, and a motion vector evaluation unit 114.
  • the motion vector evaluation unit 114 calculates an encoding cost for each of the motion vector output from the motion vector search candidate generation unit 112 and the motion vector output from the merge candidate list output unit 113.
  • the motion vector evaluation unit 114 compares and evaluates the calculated encoding costs, and selects a motion vector suitable for the target PU.
  • the motion vector evaluation unit 114 outputs the selected motion vector.
  • the prediction unit 126 generates a prediction signal for the input image signal of the CU based on the CU quadtree structure and the PU partition shape determined by the encoding parameter search unit 110.
  • the prediction signal is generated based on intra prediction or inter prediction.
  • the conversion unit 121 performs frequency conversion on the prediction error image (prediction error signal) obtained by subtracting the prediction signal from the input image signal based on the TU quadtree structure determined by the encoding parameter search unit 110.
  • the transform unit 121 uses 4 ⁇ 4, 8 ⁇ 8, 16 ⁇ 16, or 32 ⁇ 32 block size orthogonal transform based on frequency transform in transform coding of the prediction error signal.
  • DST Discrete Sine Transform
  • DCT Discrete Cosine Transform
  • the quantization unit 122 receives the quantization parameter Q p and the transform coefficient (orthogonal transform coefficient) c ij supplied from the transform unit 121 and performs a quantization process to obtain a quantized coefficient q ij .
  • q ij is obtained by the following calculation.
  • m ij is a quantization weighting coefficient
  • Q scale is a quantization step coefficient
  • BitDepth is the pixel bit accuracy of the input image
  • N is the size of orthogonal transformation. The larger Q p is, the larger Q step is, and the smaller the code amount of the resulting value q ij is.
  • the inverse quantization unit 123 inversely quantizes the quantization coefficient. Further, the inverse transform unit 124 inversely transforms the inverse quantization result obtained by the inverse quantization unit 123.
  • the prediction error image obtained by the inverse transformation is added with a prediction signal and supplied to the buffer 125.
  • the buffer 125 stores the supplied image as a reference image.
  • the code amount control unit controls the encoding process so that the code amount as a result of encoding the frame being encoded becomes the target code amount. For example, the code amount control unit, by changing the quantization parameter Q p, controls the code amount of the quantized coefficients. Further, the code amount control unit, the Lagrange multiplier ⁇ by the function Q p, can control block structure determination unit (not shown) through a Q p.
  • the merge candidate list output unit 113 outputs a list that can be used as a merge candidate (merge candidate list) in accordance with the procedure described in Section 8.5.3.2.1 of Non-Patent Document 1.
  • the merge candidate list is a list constructed using motion vectors (hereinafter referred to as peripheral vectors) possessed by spatially or temporally adjacent blocks.
  • FIG. 16 is an explanatory diagram illustrating acquisition positions of the peripheral vectors of the encoding target prediction block.
  • FIG. 16 shows the names of the positions of the peripheral blocks to be referred to when the merge candidate list is constructed.
  • the rectangle shown in the center of FIG. 16 means an encoding target prediction block. Moreover, the circle shown in FIG. 16 means the acquisition position of a prediction block. There are seven positions A0, A1, B0, B1, B2, C0, and C1 as acquisition positions of the surrounding prediction blocks shown in FIG. The peripheral vector is obtained from each of the seven acquisition positions.
  • Non-Patent Document 1 stipulates that a maximum of five obtained peripheral vectors are listed as elements of the merge candidate list.
  • the merge candidate list is generated by the merge candidate list output unit 113 following the procedure described in Non-Patent Document 1.
  • the number of elements in the merge candidate list is determined using a value MaxNumMergeCand given as an input to the encoding unit 120.
  • FIG. 17 is a block diagram showing an outline of a general merge candidate list output unit.
  • the merge candidate list output unit 113 illustrated in FIG. 17 includes a merge candidate list generation unit 200, a numCurrMergeCand storage unit 201, and an equivalence determination unit 202.
  • the merge candidate list output unit 113 has a function of receiving MaxNumMergeCand as an input and outputting a candidate generation completion signal and a merge candidate list.
  • the merge candidate list generation unit 200 has a function of generating a merge candidate list by adding the generated merge candidates to the merge candidate list.
  • the merge candidate list generation unit 200 updates numCurrMergeCand stored in the numCurrMergeCand storage unit 201 while generating a merge candidate list internally.
  • the numCurrMergeCand storage unit 201 has a function of storing numCurrMergeCand indicating the number of merge candidates included in the merge candidate list being generated.
  • the equivalence determination unit 202 has a function of determining whether the numCurrMergeCand stored in the numCurrMergeCand storage unit 201 is equal to MaxNumMergeCand. When numCurrMergeCand is equal to MaxNumMergeCand, the equivalence determination unit 202 outputs a candidate generation completion signal.
  • FIG. 18 is a flowchart illustrating an operation of a merge candidate list generation process by a general merge candidate list output unit.
  • the merge candidate list generation unit 200 generates one or a plurality of merge candidates and adds them to the merge candidate list (step S001). After the addition, the merge candidate list generation unit 200 updates numCurrMergeCand indicating the number of elements in the merge candidate list stored in the numCurrMergeCand storage unit 201 (step S002).
  • the equivalence determination unit 202 checks whether or not the updated numCurrMergeCand is equal to the input MaxNumMergeCand (step S003).
  • step S003 When numCurrMergeCand is equal to MaxNumMergeCand (Yes in step S003), the merge candidate list output unit 113 ends the merge candidate list generation process. When numCurrMergeCand and MaxNumMergeCand are not equal (No in step S003), the merge candidate list output unit 113 performs the process of step S001 again.
  • FIG. 19 is a block diagram illustrating an example of a general merge candidate list output unit 113.
  • the merge candidate list generation unit 200 includes a peripheral vector batch generation unit 210, a combined bi-prediction candidate generation unit 220, a zero merge candidate generation unit 230, a merge candidate list storage unit 240, and an increment unit 300. And an addition unit 301 and a subtraction unit 302.
  • the peripheral vector batch generation unit 210 has a function of adding up to five generated peripheral vectors to the merge candidate list all at once. After the addition, the peripheral vector batch generation unit 210 updates numCurrMergeCand.
  • the combined bi-prediction candidate generation unit 220 has a function of generating combined bi-prediction candidates.
  • the combined bi-prediction candidate is a motion vector newly generated by combining the peripheral vectors added to the merge candidate list. In the generation of combined bi-prediction candidates, the number of generated vectors depends on numCurrMergeCand.
  • the combined bi-prediction candidate generation unit 220 generates a maximum of 12 vectors.
  • the combined bi-prediction candidate generation unit 220 adds a combined bi-prediction candidate to the merge candidate list every time one combined bi-prediction candidate is generated. Further, the combined bi-prediction candidate generation unit 220 updates numCurrMergeCand using the increment unit 300 every time one combined bi-prediction candidate is generated.
  • the zero merge candidate generation unit 230 has a function of generating zero merge candidates.
  • the zero merge candidate generation unit 230 generates a zero merge candidate when numCurrMergeCand is less than MaxNumMergeCand.
  • the zero merge candidate generation unit 230 generates zero merge candidates by the difference between them so that numCurrMergeCand is equal to MaxNumMergeCand, and adds the generated zero merge candidates to the merge candidate list.
  • FIG. 20 is a flowchart showing a specific operation of the merge candidate list generation process by the general merge candidate list output unit 113.
  • the operation shown in FIG. 20 is an operation when the merge candidate list generation process is performed according to the procedure defined in the above standard.
  • the peripheral vector batch generation unit 210 lists up to five peripheral vectors that are elements of the merge candidate list (step S011). The peripheral vector batch generation unit 210 adds the listed peripheral vectors all at once to the merge candidate list according to the above procedure (step S012).
  • the peripheral vector batch generation unit 210 calculates the number of elements in the merge candidate list and updates the numCurrMergeCand stored in the numCurrMergeCand storage unit 201 (step S013).
  • the equivalence determination unit 202 determines whether numCurrMergeCand is equal to MaxNumMergeCand (step S014).
  • the equivalence determination unit 202 When numCurrMergeCand and MaxNumMergeCand are equal (Yes in step S014), the equivalence determination unit 202 outputs a candidate generation completion signal indicating that the generation of the merge candidate list is completed.
  • the merge candidate list output unit 113 ends the merge candidate list generation process.
  • merge candidate list generation unit 200 performs combined bi-prediction candidate generation processing and addition processing.
  • the combined bi-prediction candidate generation unit 220 newly generates one vector that is a combined bi-prediction candidate (step S015).
  • the combined bi-prediction candidate generation unit 220 adds the generated vector to the merge candidate list every time one vector is generated (step S016).
  • the combined bi-prediction candidate generation unit 220 updates numCurrMergeCand (step S017). After numCurrMergeCand is updated, the equivalence determination unit 202 determines whether numCurrMergeCand is equal to MaxNumMergeCand (step S018).
  • the equivalence determination unit 202 When numCurrMergeCand and MaxNumMergeCand are equal (Yes in step S018), the equivalence determination unit 202 outputs a candidate generation completion signal indicating that generation of the merge candidate list is completed.
  • the merge candidate list output unit 113 ends the merge candidate list generation process.
  • the combined bi-prediction candidate generation unit 220 checks whether the combined bi-prediction candidate generation process and the addition process have been completed (step S019).
  • the combined bi-prediction candidate generation unit 220 ends the combined bi-prediction candidate generation process and the addition process.
  • the combined bi-prediction candidate generation unit 220 performs the process of step S015 again.
  • step S019 When the combined bi-prediction candidate generation process and the additional process have been completed (Yes in step S019), numCurrMergeCand is still smaller than MaxNumMergeCand. Therefore, the zero merge candidate generation unit 230 performs a zero merge candidate generation process and an addition process.
  • the zero merge candidate generation unit 230 In the zero merge candidate generation process, the zero merge candidate generation unit 230 generates zero merge candidates by the difference between the number of elements in the merge candidate list and MaxNumMergeCand (step S020). The zero merge candidate generation unit 230 adds the generated zero merge candidate to the end of the merge candidate list (step S021).
  • the equivalence determination unit 202 After the zero merge candidate is added, the equivalence determination unit 202 outputs a candidate generation completion signal indicating that the generation of the merge candidate list has been completed.
  • the merge candidate list output unit 113 ends the merge candidate list generation process.
  • the motion vector evaluation unit 114 Upon receiving the notification of completion of generation of the merge candidate list, the motion vector evaluation unit 114 starts processing using the generated merge candidate list.
  • Patent Document 2 discloses a technique for determining a set of motion vector prediction candidates in a motion vector prediction process.
  • the time required to generate the merge candidate list may vary.
  • the time required for generating the merge candidate list becomes longer.
  • the motion vector evaluation unit 114 cannot start the process until the merge candidate list generation process ends.
  • FIG. 21 is an explanatory diagram showing the processing time of a general motion vector search unit 111.
  • FIG. 21 shows the processing time of the motion vector search unit 111 when the merge candidate list output process and the motion vector evaluation process are not performed in parallel.
  • the motion vector evaluation unit 114 cannot operate while the merge candidate list output unit 113 is generating the merge candidate list.
  • the merge candidate list output unit 113 outputs a generation completion signal after completing the generation of the merge candidate list.
  • the motion vector evaluation unit 114 can start the evaluation process for the merge candidate list.
  • the general video encoding apparatus shown in FIG. 14 has a problem that the generation time of the merge candidate list is long and the time until the start of the process using the merge candidate list is long.
  • an object of the present invention is to provide a video encoding device, a video encoding method, and a program recording medium that can accelerate the start of processing in which a merge candidate list is used.
  • the video encoding apparatus includes a merge candidate list generating unit that generates a merge candidate list from adjacent blocks, and a process in which the merge candidate list is used when the merge candidate list includes at least one merge candidate.
  • a merge candidate list is generated from adjacent blocks, and when at least one merge candidate is included in the merge candidate list, a process start signal for starting a process using the merge candidate list is generated. It is characterized by outputting.
  • the program recording medium starts a generation process for generating a merge candidate list from adjacent blocks, and a process for starting a process in which the merge candidate list is used when the merge candidate list includes at least one merge candidate
  • a program for causing a computer to execute output processing for outputting a signal is recorded.
  • FIG. 1 is a block diagram showing an outline of a merge candidate list output unit according to the present invention.
  • FIG. 2 is a flowchart showing the operation of the merge candidate list generation process by the merge candidate list output unit according to the present invention.
  • FIG. 3 is an explanatory diagram showing the processing time of the motion vector search unit according to the present invention.
  • FIG. 4 is a block diagram showing a configuration example of the first embodiment of the merge candidate list output unit according to the present invention.
  • FIG. 5 is a flowchart illustrating a specific operation of the merge candidate list generation process by the merge candidate list output unit according to the first embodiment.
  • FIG. 6 is a block diagram showing a configuration example of the second embodiment of the merge candidate list output unit according to the present invention.
  • FIG. 7 is a flowchart illustrating a specific operation of the merge candidate list generation process by the merge candidate list output unit according to the second embodiment.
  • FIG. 8 is a block diagram showing a configuration example of the third embodiment of the merge candidate list output unit according to the present invention.
  • FIG. 9 is a flowchart illustrating a specific operation of the merge candidate list generation process by the merge candidate list output unit according to the third embodiment.
  • FIG. 10 is a block diagram showing a configuration example of an information processing system capable of realizing the function of the video encoding device according to the present invention.
  • FIG. 11 is a block diagram showing an outline of a video encoding apparatus according to the present invention.
  • FIG. 12A is an explanatory diagram illustrating an example of a CU partition shape when the CTU size is 64 ⁇ 64 (64 pixels ⁇ 64 pixels).
  • FIG. 12B is an explanatory diagram illustrating an example of a CU quadtree structure when the CTU size is 64 ⁇ 64 (64 pixels ⁇ 64 pixels).
  • FIG. 13 is an explanatory diagram illustrating a PU partitioning method in intra prediction and a PU partitioning method in inter prediction.
  • FIG. 14 is a block diagram illustrating an example of a general video encoding device.
  • FIG. 15 is a block diagram illustrating an example of a general motion vector search unit.
  • FIG. 16 is an explanatory diagram illustrating acquisition positions of the peripheral vectors of the encoding target prediction block.
  • FIG. 17 is a block diagram showing an outline of a general merge candidate list output unit.
  • FIG. 18 is a flowchart illustrating an operation of a merge candidate list generation process by a general merge candidate list output unit.
  • FIG. 19 is a block diagram illustrating an example of a general merge candidate list output unit.
  • FIG. 20 is a flowchart showing a specific operation of a merge candidate list generation process by a general merge candidate list output unit.
  • FIG. 21 is an explanatory diagram showing the processing time of a general motion vector search unit.
  • FIG. 1 is a block diagram showing an outline of the merge candidate list output unit 113 according to the present invention.
  • the arrow described in the block diagram after FIG. 1 has shown an example of the moving direction of information.
  • the moving direction of information is not limited to the illustrated direction.
  • the configuration of the merge candidate list output unit 113 shown in FIG. 1 other than the non-zero determination unit 203 is the same as the configuration of the merge candidate list output unit 113 shown in FIG.
  • the non-zero determination unit 203 has a function of determining whether numCurrMergeCand stored in the numCurrMergeCand storage unit 201 is not 0. When it is determined that numCurrMergeCand is not 0, the non-zero determination unit 203 outputs an evaluation start possible signal.
  • FIG. 2 is a flowchart showing the operation of the merge candidate list generation process by the merge candidate list output unit 113 according to the present invention.
  • steps S101 to S102 is the same as the processing in steps S001 to S002 shown in FIG.
  • the non-zero determination unit 203 determines whether numCurrMergeCand is not 0 (step S103).
  • step S104 When numCurrMergeCand is not 0 (Yes in step S103), the non-zero determination unit 203 outputs an evaluation start possible signal (step S104).
  • the equivalence determination unit 202 checks whether numCurrMergeCand and MaxNumMergeCand stored in the numCurrMergeCand storage unit 201 are equal (step S105).
  • step S105 is the same as the processing in step S003 shown in FIG.
  • the non-zero determination unit 203 outputs an evaluation start enable signal. Therefore, the motion vector evaluation unit 114 that performs the subsequent processing can start the processing without waiting for the completion of the generation of the merge candidate list by receiving the evaluation start enable signal. That is, the merge candidate list output unit 113 can advance the processing start time of the motion vector evaluation unit 114 that performs processing using the merge candidate list.
  • FIG. 3 is an explanatory diagram showing the processing time of the motion vector search unit according to the present invention.
  • FIG. 3 shows the processing time of the motion vector search unit when the merge candidate list output process and the motion vector evaluation process are performed in parallel.
  • the motion vector evaluation process is started when the generation of the merge candidate list is completed.
  • the merge candidate list output unit 113 notifies that the processing can be started when at least one merge candidate is added to the merge candidate list. Therefore, the motion vector evaluation unit 114 can operate in parallel with the merge candidate list output unit 113. That is, since the motion vector evaluation process is started during the generation of the merge candidate list, the processing time of the entire motion vector search unit is reduced.
  • FIG. 4 is a block diagram showing a configuration example of the first embodiment of the merge candidate list output unit 113 according to the present invention.
  • the configuration of the merge candidate list output unit 113 shown in FIG. 4 is different from the configuration of the merge candidate list output unit 113 shown in FIG. 19 in that a non-zero determination unit 203 is added.
  • the configuration of the merge candidate list output unit 113 shown in FIG. 4 other than the non-zero determination unit 203 is the same as the configuration of the merge candidate list output unit 113 shown in FIG.
  • FIG. 5 is a flowchart illustrating a specific operation of the merge candidate list generation process by the merge candidate list output unit 113 according to the first embodiment.
  • the peripheral vector batch generation unit 210 When the generation of the merge candidate list is started, the peripheral vector batch generation unit 210 generates a maximum of five peripheral vectors all at once (step S111). The peripheral vector batch generation unit 210 adds the generated peripheral vectors all at once to the merge candidate list (step S112). After the addition, the peripheral vector batch generation unit 210 updates numCurrMergeCand (step S113).
  • the non-zero determination unit 203 determines whether numCurrMergeCand is not 0 (step S114).
  • step S115 If numCurrMergeCand is not 0 (Yes in step S114), the non-zero determination unit 203 outputs an evaluation start possible signal (step S115).
  • step S116 the equivalence determination unit 202 checks whether numCurrMergeCand and MaxNumMergeCand stored in the numCurrMergeCand storage unit 201 are equal (step S116).
  • the equivalence determination unit 202 When numCurrMergeCand and MaxNumMergeCand are equal (Yes in step S116), the equivalence determination unit 202 outputs a candidate generation completion signal indicating that the generation of the merge candidate list has been completed.
  • the merge candidate list output unit 113 ends the merge candidate list generation process.
  • the combined bi-prediction candidate generation unit 220 When numCurrMergeCand and MaxNumMergeCand are not equal (No in step S116), the combined bi-prediction candidate generation unit 220 generates a combined bi-prediction candidate (step S117). Each time one combined bi-prediction candidate is generated, the combined bi-prediction candidate generation unit 220 adds the generated combined bi-prediction candidate to the merge candidate list (step S118). Next, the combined bi-prediction candidate generation unit 220 updates numCurrMergeCand (step S119).
  • the non-zero determination unit 203 determines whether numCurrMergeCand is not 0 (step S120). When numCurrMergeCand is not 0 (Yes in Step S120), the non-zero determination unit 203 outputs an evaluation start enable signal (Step S121).
  • the equivalence determination unit 202 checks whether numCurrMergeCand and MaxNumMergeCand stored in the numCurrMergeCand storage unit 201 are equal (step S122).
  • the equivalence determination unit 202 When numCurrMergeCand and MaxNumMergeCand are equal (Yes in step S122), the equivalence determination unit 202 outputs a candidate generation completion signal indicating that the generation of the merge candidate list has been completed.
  • the merge candidate list output unit 113 ends the merge candidate list generation process.
  • the combined bi-prediction candidate generation unit 220 checks whether the combined bi-prediction candidate generation process and the addition process have been completed (step S123).
  • step S123 If the combined bi-prediction candidate generation process and the addition process have not ended (No in step S123), the combined bi-prediction candidate generation unit 220 performs the process of step S117 again.
  • the zero merge candidate generation unit 230 When the combined bi-prediction candidate generation process and the addition process have been completed (Yes in step S123), the zero merge candidate generation unit 230 generates a zero vector corresponding to the zero merge candidate (step S124).
  • the zero merge candidate generation unit 230 creates a zero vector by the difference between numCurrMergeCand and MaxNumMergeCand so that numCurrMergeCand is equal to MaxNumMergeCand.
  • the zero merge candidate generation unit 230 adds the created zero vector to the merge candidate list (step S125).
  • the equivalence determination unit 202 When the zero vector addition process is completed, the equivalence determination unit 202 outputs a candidate generation completion signal indicating that the generation of the merge candidate list has been completed.
  • the merge candidate list output unit 113 ends the merge candidate list generation process.
  • the video encoding device that performs motion compensation prediction encoding based on the merge candidate list in the present embodiment includes a merge candidate list generation unit and a non-zero determination unit.
  • the merge candidate list generation unit updates the number of elements in the merge candidate list. If the number of elements in the updated merge candidate list is not 0, the non-zero determination unit outputs a signal indicating that the subsequent process can be started. As a result, the time until the start of the process in which the merge candidate list is used is shortened.
  • the merge candidate list output unit 113 in the present embodiment outputs a merge candidate list composed of peripheral vectors in a video encoding device having an encoding unit that performs encoding using merge candidates.
  • the merge candidate list output unit 113 updates numCurrMergeCand each time a candidate is added, and outputs a process start enable signal to the motion vector evaluation unit 114 that performs subsequent processing when numCurrMergeCand is no longer 0.
  • the merge candidate list output unit 113 in this embodiment can accelerate the start of subsequent processing by the motion vector evaluation unit 114.
  • the motion vector search unit 111 in the present embodiment can perform the merge candidate list generation process by the merge candidate list output unit 113 and the evaluation process by the motion vector evaluation unit 114 in parallel. That is, the motion vector search unit 111 can reduce the processing time required for the entire process from the start of the merge candidate list generation process to the completion of the motion vector evaluation process.
  • FIG. 6 is a block diagram showing a configuration example of the second embodiment of the merge candidate list output unit 113 according to the present invention.
  • the configuration of the merge candidate list output unit 113 shown in FIG. 6 is that the peripheral vector batch generation unit 210 is replaced with a peripheral vector sequential generation unit 410 as compared with the configuration of the merge candidate list output unit 113 shown in FIG. Is different.
  • merge candidate list output unit 113 shown in FIG. 6 other than peripheral vector sequential generation unit 410 and increment unit 300 is the same as the configuration of merge candidate list output unit 113 shown in FIG.
  • the peripheral vector sequential generation unit 410 adds the generated peripheral vector to the merge candidate list every time one peripheral vector is generated. Further, the increment unit 300 updates numCurrMergeCand each time one peripheral vector is added to the merge candidate list.
  • FIG. 7 is a flowchart illustrating a specific operation of the merge candidate list generation process by the merge candidate list output unit 113 according to the second embodiment.
  • the peripheral vector sequential generation unit 410 When the generation of the merge candidate list is started, the peripheral vector sequential generation unit 410 generates one peripheral vector (step S211). The peripheral vector sequential generation unit 410 adds the generated single peripheral vector to the merge candidate list (step S212). After the addition, the increment unit 300 updates numCurrMergeCand (step S213).
  • the non-zero determination unit 203 determines whether numCurrMergeCand is not 0 (step S214).
  • step S214 When numCurrMergeCand is not 0 (Yes in step S214), the non-zero determination unit 203 outputs an evaluation start possible signal (step S215).
  • the peripheral vector sequential generation unit 410 confirms whether the peripheral vector generation process has been completed according to the procedure defined in the standard (step S216). If the peripheral vector generation process has not ended (No in step S216), the peripheral vector sequential generation unit 410 performs the process of step S211 again.
  • the equivalence determination unit 202 checks whether numCurrMergeCand and MaxNumMergeCand stored in the numCurrMergeCand storage unit 201 are equal (step S217).
  • steps S217 to S226 is the same as the processing in steps S116 to S125 shown in FIG.
  • the non-zero determination unit 203 outputs an evaluation start possible signal during the generation and addition processing of the peripheral vectors. Therefore, the motion vector evaluation unit 114 that performs subsequent processing can start processing earlier than in the first embodiment. That is, in the motion vector search unit 111 of the present embodiment, the parallelism of the merge candidate list generation process by the merge candidate list output unit 113 and the evaluation process by the motion vector evaluation unit 114 may be higher than that of the first embodiment. There is.
  • FIG. 8 is a block diagram illustrating a configuration example of the third embodiment of the merge candidate list output unit 113 according to the present invention.
  • the configuration of the merge candidate list output unit 113 illustrated in FIG. 8 is that the zero merge candidate generation unit 230 is replaced with an initialization zero merge candidate generation unit 430 as compared with the configuration of the merge candidate list output unit 113 illustrated in FIG. Is different.
  • the configuration of the merge candidate list output unit 113 shown in FIG. 8 is different from the configuration shown in FIG. 6 in that a zero merge candidate shift unit 440 is added.
  • the configurations of the numCurrMergeCand storage unit 201, the combined bi-prediction candidate generation unit 220, the merge candidate list storage unit 240, the increment unit 300, and the peripheral vector sequential generation unit 410 illustrated in FIG. 8 have the same names as those of the merge candidate list output unit 113 illustrated in FIG. It is the same as the component of.
  • the initialization zero merge candidate generation unit 430 operates immediately after the merge candidate list generation unit 200 starts operating.
  • the initialization zero merge candidate generation unit 430 initializes the merge candidate list by adding zero merge candidates defined in the standard to the merge candidate list.
  • the zero merge candidate shift unit 440 adds the zero merge candidates added to the merge candidate list by initialization each time the peripheral vector sequential generation unit 410 and the combined bi-prediction candidate generation unit 220 add candidates to the merge candidate list. Shift to the end of the list.
  • FIG. 9 is a flowchart illustrating a specific operation of the merge candidate list generation process by the merge candidate list output unit 113 according to the third embodiment.
  • the initialization zero merge candidate generation unit 430 Before the start of the merge candidate list generation process, the initialization zero merge candidate generation unit 430 generates zero merge candidates defined in the standard at once (step S311). The initialization zero merge candidate generation unit 430 adds the generated zero merge candidate to the merge candidate list (step S312).
  • numCurrMergeCand is not updated when the generated zero merge candidate is added to the merge candidate list. Even if the zero merge candidate is added to the merge candidate list, numCurrMergeCand remains at the initial value 0.
  • step S313 corresponds to the merge candidate list generation processing.
  • steps S313 to S326 other than steps S315 and S322 are the same as the processes in steps S211 to S224 shown in FIG.
  • the zero merge candidate shift unit 440 shifts the zero vector in the merge candidate list to the end side (steps S315 and S322).
  • the equivalence determination unit 202 After the combined bi-prediction candidate generation process and the addition process are completed (Yes in step S326), the equivalence determination unit 202 outputs a candidate generation completion signal indicating that the generation of the merge candidate list has been completed.
  • the merge candidate list output unit 113 ends the merge candidate list generation process.
  • the merge candidate list output unit 113 of the present embodiment performs the zero vector generation process and the addition process performed last in the first embodiment and the second embodiment before the start of the merge candidate list generation process. Do. As a result, the worst value of the time required to output the evaluation start enable signal is shortened. That is, when there is no peripheral vector or combined bi-prediction candidate and only the zero vector is added to the merge candidate list, the time required for generating the merge candidate list is reduced.
  • each of the above embodiments can be configured by hardware, it can also be realized by, for example, a computer program recorded on a recording medium.
  • the information processing system shown in FIG. 10 includes a processor 1001, a program memory 1002, a storage medium (recording medium) 1003 for storing video data, and a storage medium 1004 for storing data such as a bit stream.
  • the storage medium 1003 and the storage medium 1004 may be separate storage media or different storage areas of the same storage medium.
  • a magnetic storage medium such as a hard disk can be used as the storage medium.
  • In the storage medium 1003, at least an area in which a program is stored is a non-transitory tangible storage area (non-transitory tangible media).
  • the program memory 1002 stores a program for realizing the function of each block shown in FIG. 1, FIG. 4, FIG. 6, and FIG.
  • the processor 1001 implements the function of the merge candidate list output unit 113 shown in each of FIGS. 1, 4, 6, and 8 by executing processing according to the program stored in the program memory 1002. To do.
  • FIG. 11 is a block diagram showing an outline of a video encoding apparatus according to the present invention.
  • the video encoding device 10 includes a merge candidate list generation unit 11 (for example, a merge candidate list generation unit 200) and an output unit 12 (for example, a non-zero determination unit 203).
  • the merge candidate list generation unit 11 generates a merge candidate list from adjacent blocks.
  • the output unit 12 outputs a process start signal for starting a process in which the merge candidate list is used.
  • the video encoding device 10 can accelerate the start of processing in which the merge candidate list is used.
  • the merge candidate list generation unit 11 generates a peripheral vector that is a merge candidate, and adds a peripheral vector to the merge candidate list each time one peripheral vector is generated (for example, peripheral vector sequential generation). Part 410).
  • the video encoding apparatus can further increase the parallelism of the merge candidate generation process and the motion vector evaluation process.
  • the merge candidate list generation unit 11 may include an initialization zero merge candidate generation unit (for example, initialization zero merge candidate generation unit 430) and a zero merge candidate shift unit (for example, zero merge candidate shift unit 440).
  • the initialization zero merge candidate generation means may initialize the merge candidate list with zero merge candidates before starting the generation of the merge candidate list.
  • the zero merge candidate shift means may shift the zero merge candidate to the tail side of the merge candidate list when the merge candidate is added to the merge candidate list.
  • the video encoding device 10 can shorten the worst value of the time required to output the processing start signal.
  • the present invention can be applied to the use of a video compression apparatus or a program for realizing video compression by a computer.
  • Video coding apparatus 11 Merge candidate list production
  • Output means 110 Encoding parameter search part 111 Motion vector search part 112 Motion vector search candidate production part 113 Merge candidate list output part 114 Motion vector evaluation part 120 Encoding part 121 Transformer 122 Quantizer 123 Inverse quantization unit 124 Inverse transform unit 125 Buffer 126 Prediction unit 127 Entropy encoding unit 200 Merge candidate list generation unit 201 numCurrMergeCand storage unit 202 Equivalence determination unit 203 Non-zero determination unit 210 Peripheral vector batch generation unit 220 Combined bi-prediction candidate generation unit 230 Zero merge candidate generation unit 240 Merge candidate list storage unit 300 Increment unit 301 Addition unit 302 Subtraction unit 410 Peripheral vector sequential generation unit 430 Initialization zero merge candidate generation unit 440 Zero merge candidate shift Unit 1001 Processor 1002 Program memory 1003 and 1004 Storage medium

Landscapes

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

Abstract

[課題]マージ候補リストが使用される処理の開始を早めることができる映像符号化装置を提供する。[解決手段]映像符号化装置10は、隣接ブロックからマージ候補リストを生成するマージ候補リスト生成手段11と、マージ候補リストにマージ候補が少なくとも1つ含まれている場合、マージ候補リストが使用される処理を開始させる処理開始信号を出力する出力手段12とを備える。マージ候補リスト生成手段11は、マージ候補である周辺ベクトルを生成する周辺ベクトル逐次生成手段を含み、周辺ベクトル逐次生成手段は、周辺ベクトルを1つ生成するごとに周辺ベクトルをマージ候補リストに追加してもよい。

Description

映像符号化装置、映像符号化方法およびプログラム記録媒体
 本発明は、映像符号化装置に関し、特にHEVCなどの動きベクトル併合に基づいた映像符号化方式における回路設計技術に関する。
 非特許文献1には、ITU-T(International Telecommunication Union Telecommunication Standardization Sector)勧告H.265規格にもとづく映像符号化方式であるHEVC(High Efficiency Video Coding)が記載されている。
 HEVCでは、ディジタル化された映像の各フレームは符号化ツリーユニット(CTU:Coding Tree Unit)に分割され、各CTU がラスタスキャン順に符号化される。各CTUは、クアッドツリー構造で、符号化ユニット(CU:Coding Unit)に分割されて符号化される。各CUは、予測ユニット(PU:Prediction Unit)に分割されて予測される。また、各CUの予測誤差は、クアッドツリー構造で、変換ユニット(TU: Transform Unit)に分割されて周波数変換される。最も大きなサイズのCUを最大CU(LCU: Largest Coding Unit)といい、最も小さなサイズのCUを最小CU(SCU: Smallest Coding Unit )という。
 CUは、イントラ予測またはフレーム間予測(インター予測)によって予測符号化される。
 図12Aおよび図12Bは、CTU サイズが64×64(64画素×64画素)の場合のCU分割例を示す説明図である。図12Aには、分割形状(以下、ブロック構造ともいう。)の一例が示されている。図12Bには、図12Aに示す分割形状に対応するCUクアッドツリー構造の一例が示されている。
 また、CUは、クアッドツリー構造でTUに分割される。分割の仕方は、図12Aに示すCU分割の場合と同様である。
 図13は、イントラ予測におけるPU分割方法とインター予測におけるPU分割方法を示す説明図である。図13は、CTUのCUクアッドツリー構造の例と、予測モードごとのPU分割の候補を示す。
 図13に示すように、イントラ予測で符号化が行われる場合、PUをCUサイズと同じサイズ(2Nx2N)にする方法、または4分割してPUをCUサイズよりも1段階小さいサイズ(NxN)にする方法の2通りの分割方法がある。ただし、NxNに分割する方法は、CUサイズが最小である場合にのみ用いられる。
 図13に示すように、インター予測で符号化が行われる場合、PUをCUサイズと同じサイズ(2Nx2N)にする方法がある。または、CUを上下対称または左右対称の2つの長方形(2NxN、Nx2N)に分割する2通りの方法と、CUを上下非対称または左右非対称の2つの長方形(2NxnU、2NxnD、nRx2N、nLx2N)に分割する4通りの方法がある。すなわち、合計7通りの分割方法がある。
 インター予測の場合、動き補償予測に基づいた符号化が行われ、動きベクトルが伝送される。動きベクトルは、PUごとに伝送される。よって、CTUあたりの動きベクトルの数は、CUクアッドツリー構造に依存する。動きベクトルの数は分割が細かいほど増え、動きベクトルの符号量が増大する。
 イントラ予測で符号化が行われる場合において、分割がなされる際、TUは、CUと同じサイズのブロックであるPU、またはCUが4分割されたブロックであるPUを起点にして逐次分割される。インター予測で符号化が行われる場合において、分割がなされる際、TUは、CUを起点にして逐次分割される。
 インター予測におけるPUごとの動きベクトルを伝送する方法には、適応動きベクトル予測符号化と、マージ符号化の2つの方法がある。適応動きベクトル予測符号化では、伝送したい動きベクトルと、周辺PUから得られる予測動きベクトルとの差分のみが伝送される。マージ符号化では、周辺PUの動きベクトルで構築されるマージ候補リストのインデクスのみが伝送される。なお、マージインデックス決定に関する符号化制御技術が適用された映像符号化装置が特許文献1に記載されている。
 図14を参照して、ディジタル化された映像の各フレームの各CUを入力画像としてビットストリームを出力する一般的な映像符号化装置の構成と動作を説明する。
 図14は、一般的な映像符号化装置の一例を示すブロック図である。図14に示す映像符号化装置100は、変換部121、量子化部122、エントロピー符号化部127、逆量子化部123、逆変換部124、バッファ125、予測部126、および符号化パラメータ探索部110を備える。
 符号化パラメータ探索部110は、CTUのCUクアッドツリー構造/PU分割形状/TUクアッドツリー構造、CUの予測モード、イントラPUのイントラ予測方向、およびインターPUの動きベクトルに関して、それぞれの符号化コストを計算する。符号化パラメータ探索部110は、計算した符号化コストを比較することによって、インターPUの動きベクトルを探索し、伝送される動きベクトルを決定する。符号化パラメータ探索部110は、インターPUの動きベクトルに関する探索を行う動きベクトル探索部111を含む。
 符号化コストには、符号量に関する値と符号化歪み(画質に相関する。)とが反映されている。符号化パラメータ探索部110は、一例として、以下のRD(Rate Distortion )コスト(Cost)を使用する。
 Cost = D + λ・R
 Dは符号化歪みであり、Rは変換係数まで加味した符号量であり、λはラグランジェ乗数である。
 符号化パラメータ探索部110は、CTU毎に、画像の特徴に合わせて符号化効率が高くなるようにCUクアッドツリー構造/PU分割形状/TUクアッドツリー構造を決定する。
 図15は、一般的な動きベクトル探索部の一例を示すブロック図である。図15に示すように、動きベクトル探索部111は、動きベクトル探索候補生成部112と、マージ候補リスト出力部113と、動きベクトル評価部114を含む。
 動きベクトル評価部114は、動きベクトル探索候補生成部112から出力された動きベクトル、マージ候補リスト出力部113から出力された動きベクトルそれぞれに対して符号化コストを算出する。動きベクトル評価部114は、算出した符号化コストを比較および評価し、対象のPUに適した動きベクトルを選択する。動きベクトル評価部114は、選択した動きベクトルを出力する。
 予測部126は、符号化パラメータ探索部110が決定したCUクアッドツリー構造およびPU分割形状にもとづいて、CUの入力画像信号に対する予測信号を生成する。予測信号は、イントラ予測またはインター予測にもとづいて生成される。
 変換部121は、符号化パラメータ探索部110が決定したTUクアッドツリー構造にもとづいて、入力画像信号から予測信号を減じた予測誤差画像(予測誤差信号)を周波数変換する。変換部121は、予測誤差信号の変換符号化において、周波数変換にもとづいた4×4、8×8、16×16または32×32ブロックサイズの直交変換を使用する。具体的には、イントラ符号化またはインター符号化されるCUの輝度成分の4×4TUに対して、整数演算で近似した(整数精度の)DST (Discrete Sine Transform :離散サイン変換)を使用する。その他のTUに対して、そのブロックサイズに対応する、整数演算で近似した(整数精度の)DCT (Discrete Cosine Transform :離散コサイン変換)を使用する。
 量子化部122は、量子化パラメータQpと変換部121から供給される変換係数(直交変換係数)cijを入力として、量子化処理を行い量子化係数qijを得る。qijは、以下の計算で得られる。
qij = Int(cij/Qstep)
 ただし、ここにおいて、
Qstep = (mij*2^qbit) / (Qscale(Qp%6))
qbit = 25 + (Qp / 6) - BitDepth - log2(N)
である。なお、「%」は剰余演算子を表す。
 ここで、mijは量子化重みづけ係数、Qscaleは量子化ステップ係数、BitDepthは入力画像の画素ビット精度、Nは直交変換のサイズである。Qpが大きいほどQstepが大きくなり、結果として得られる値qijの符号量は小さくなる。
 逆量子化部123は、量子化係数を逆量子化する。さらに、逆変換部124は、逆量子化部123による逆量子化結果を逆変換する。逆変換により得られた予測誤差画像は、予測信号が加えられて、バッファ125に供給される。バッファ125は、供給された画像を参照画像として格納する。
 符号量制御部(図示せず)は、符号化中のフレームが符号化された結果の符号量が、目標符号量となるように符号化処理を制御する。例えば、符号量制御部は、量子化パラメータQpを変化させることによって、量子化係数の符号量を制御する。また、符号量制御部は、ラグランジュ乗数λをQpの関数にすることによって、Qpを介してブロック構造決定部(図示せず)を制御できる。
 マージ候補リスト出力部113は、非特許文献1の8.5.3.2.1項に記載されている手順に準拠して、マージ候補として使用可能なリスト(マージ候補リスト)を出力する。マージ候補リストは、空間的または時間的に隣接するブロックが持つ動きベクトル(以下、周辺ベクトルという。)を用いて構築されるリストである。
 図16を参照して、周辺ベクトルの取得位置を説明する。図16は、符号化対象予測ブロックの周辺ベクトルの取得位置を示す説明図である。図16は、マージ候補リスト構築時に参照する周辺ブロックのそれぞれの位置の名前を示す。
 図16の中心に示す矩形は、符号化対象予測ブロックを意味する。また、図16に示す円は、予測ブロックの取得位置を意味する。図16に示す周辺の予測ブロックの取得位置には、A0,A1,B0,B1,B2,C0,C1の7つがある。周辺ベクトルは、7つの取得位置それぞれから得られる。
 非特許文献1に記載されている手順では、得られた周辺ベクトルのうち最大5つがマージ候補リストの要素として列挙されることが規定されている。マージ候補リストは、非特許文献1に記載されている手順に従うマージ候補リスト出力部113により生成される。マージ候補リストの要素数は、符号化部120への入力として与えられる値MaxNumMergeCandを用いて決定される。
 図17は、一般的なマージ候補リスト出力部の概要を示すブロック図である。図17に示すマージ候補リスト出力部113は、マージ候補リスト生成部200と、numCurrMergeCand記憶部201と、等価判定部202とを含む。
 マージ候補リスト出力部113は、MaxNumMergeCandを入力として受け付け、候補生成完了信号およびマージ候補リストを出力する機能を有する。
 マージ候補リスト生成部200は、生成したマージ候補をマージ候補リストに追加することによって、マージ候補リストを生成する機能を有する。マージ候補リスト生成部200は、内部でマージ候補リストを生成しながら、numCurrMergeCand記憶部201が記憶するnumCurrMergeCandを更新する。
 numCurrMergeCand記憶部201は、生成途中のマージ候補リストに含まれているマージ候補の数を示すnumCurrMergeCandを記憶する機能を有する。
 等価判定部202は、numCurrMergeCand記憶部201が記憶するnumCurrMergeCandが、MaxNumMergeCandに等しいか否かを判定する機能を有する。numCurrMergeCandがMaxNumMergeCandに等しい場合、等価判定部202は、候補生成完了信号を出力する。
 以下、図17に示すマージ候補リスト出力部113がマージ候補リストを生成する時の動作を、図18を参照して説明する。図18は、一般的なマージ候補リスト出力部によるマージ候補リストの生成処理の動作を示すフローチャートである。
 マージ候補リスト生成部200は、1または複数のマージ候補を生成し、マージ候補リストに追加する(ステップS001)。追加した後、マージ候補リスト生成部200は、numCurrMergeCand記憶部201に記憶されている、マージ候補リストの要素数を示すnumCurrMergeCandを更新する(ステップS002)。
 等価判定部202は、更新されたnumCurrMergeCandが、入力であるMaxNumMergeCandと等しいか否かを確認する(ステップS003)。
 numCurrMergeCandとMaxNumMergeCandが等しい場合(ステップS003におけるYes)、マージ候補リスト出力部113は、マージ候補リストの生成処理を終了する。numCurrMergeCandとMaxNumMergeCandが等しくない場合(ステップS003におけるNo)、マージ候補リスト出力部113は、ステップS001の処理を再度行う。
 図19は、一般的なマージ候補リスト出力部113の一例を示すブロック図である。図19に示すように、マージ候補リスト生成部200は、周辺ベクトル一挙生成部210と、結合双予測候補生成部220と、ゼロマージ候補生成部230と、マージ候補リスト記憶部240と、インクリメント部300と、加算部301と、減算部302とを含む。
 周辺ベクトル一挙生成部210は、生成した周辺ベクトルを、最大5つまでマージ候補リストに一挙に追加する機能を有する。追加した後、周辺ベクトル一挙生成部210は、numCurrMergeCandを更新する。
 結合双予測候補生成部220は、結合双予測候補を生成する機能を有する。結合双予測候補は、マージ候補リストに追加された周辺ベクトルを組み合わせることによって新規に生成される動きベクトルである。結合双予測候補の生成では、生成されるベクトルの数がnumCurrMergeCandに依存する。結合双予測候補生成部220は、最大で12個のベクトルを生成する。
 結合双予測候補生成部220は、結合双予測候補を1つ生成するごとに、結合双予測候補をマージ候補リストに追加する。また、結合双予測候補生成部220は、結合双予測候補を1つ生成するごとに、インクリメント部300を用いてnumCurrMergeCandを更新する。
 ゼロマージ候補生成部230は、ゼロマージ候補を生成する機能を有する。ゼロマージ候補生成部230は、numCurrMergeCandがMaxNumMergeCand未満である場合に、ゼロマージ候補を生成する。ゼロマージ候補生成部230は、numCurrMergeCandがMaxNumMergeCandと等しくなるように両者の差分だけゼロマージ候補を生成し、生成したゼロマージ候補をマージ候補リストに追加する。
 以下、図19に示すマージ候補リスト出力部113がマージ候補リストを生成する時の動作を、図20を参照して説明する。図20は、一般的なマージ候補リスト出力部113によるマージ候補リストの生成処理の具体的な動作を示すフローチャートである。図20に示す動作は、上記の規格に定められた手順に従ってマージ候補リストの生成処理を行う場合の動作である。
 周辺ベクトル一挙生成部210は、マージ候補リストの要素になる周辺ベクトルを、最大5つ列挙する(ステップS011)。周辺ベクトル一挙生成部210は、列挙した周辺ベクトルを、上記の手順に従ってマージ候補リストに一挙に追加する(ステップS012)。
 追加した時点で、周辺ベクトル一挙生成部210は、マージ候補リストの要素数を算出し、numCurrMergeCand記憶部201に記憶されているnumCurrMergeCandを更新する(ステップS013)。等価判定部202は、numCurrMergeCandがMaxNumMergeCandと等しいか否かを判断する(ステップS014)。
 numCurrMergeCandとMaxNumMergeCandが等しい場合(ステップS014におけるYes)、等価判定部202は、マージ候補リストの生成が完了したことを示す候補生成完了信号を出力する。マージ候補リスト出力部113は、マージ候補リストの生成処理を終了する。
 numCurrMergeCandとMaxNumMergeCandが等しくない場合(ステップS014におけるNo)、例えばnumCurrMergeCandがMaxNumMergeCand未満である場合、マージ候補リスト生成部200は、結合双予測候補の生成処理および追加処理を行う。
 結合双予測候補生成部220は、結合双予測候補である1個のベクトルを新規に生成する(ステップS015)。結合双予測候補生成部220は、1個のベクトルを生成するごとに、生成したベクトルをマージ候補リストに追加する(ステップS016)。
 次いで、結合双予測候補生成部220は、numCurrMergeCandを更新する(ステップS017)。numCurrMergeCandが更新された後、等価判定部202は、numCurrMergeCandがMaxNumMergeCandと等しいか否かを判断する(ステップS018)。
 numCurrMergeCandとMaxNumMergeCandが等しい場合(ステップS018におけるYes)、等価判定部202は、マージ候補リストの生成が完了したことを示す候補生成完了信号を出力する。マージ候補リスト出力部113は、マージ候補リストの生成処理を終了する。
 numCurrMergeCandとMaxNumMergeCandが等しくない場合(ステップS018におけるNo)、結合双予測候補生成部220は、結合双予測候補の生成処理および追加処理が終了しているか否かを確認する(ステップS019)。
 例えば、結合双予測候補の生成数が予め定められた値になったとき、結合双予測候補生成部220は、結合双予測候補の生成処理および追加処理を終了する。結合双予測候補の生成処理および追加処理が終了していない場合(ステップS019におけるNo)、結合双予測候補生成部220は、再度ステップS015の処理を行う。
 結合双予測候補の生成処理および追加処理が終了している場合(ステップS019におけるYes)、numCurrMergeCandがまだMaxNumMergeCandより小さい。そのため、ゼロマージ候補生成部230は、ゼロマージ候補の生成処理および追加処理を行う。
 ゼロマージ候補の生成処理において、ゼロマージ候補生成部230は、マージ候補リストの要素数とMaxNumMergeCandとの差分だけゼロマージ候補を生成する(ステップS020)。ゼロマージ候補生成部230は、生成したゼロマージ候補を、マージ候補リストの末尾に追加する(ステップS021)。
 ゼロマージ候補が追加された後、等価判定部202は、マージ候補リストの生成が完了したことを示す候補生成完了信号を出力する。マージ候補リスト出力部113は、マージ候補リストの生成処理を終了する。
 マージ候補リストの生成完了の通知を受けると、動きベクトル評価部114は、生成されたマージ候補リストを用いて処理を開始する。
 なお、特許文献2は、動きベクトル予測プロセスにおいて動きベクトル予測候補のセットを判断するための技術を開示している。
特許第5590269号公報 特表2014-517658号公報
ITU-T 勧告 H.265 High efficiency video coding, April 2013
 図20に示すマージ候補リストの生成手順に従うと、マージ候補リストの生成に要する時間が変動する可能性がある。また、マージ候補リストの生成に要する時間が長くなる。また、動きベクトル評価部114は、マージ候補リストの生成処理が終了するまで、処理を開始できない。
 図21は、一般的な動きベクトル探索部111の処理時間を示す説明図である。図21は、マージ候補リスト出力処理と動きベクトル評価処理が並列に実施されない場合の、動きベクトル探索部111の処理時間を示す。
 図21に示すように、マージ候補リスト出力部113がマージ候補リストを生成している間、動きベクトル評価部114は動作できない。マージ候補リスト出力部113は、マージ候補リストの生成を完了した後に生成完了の信号を出力する。生成完了の信号が入力された時に、動きベクトル評価部114は、マージ候補リストに対する評価処理を開始できる。
 マージ候補リスト出力部113によるマージ候補リスト生成処理の時間が長くなると、動きベクトル評価部114が動作できない時間も長くなる。その結果、動きベクトル探索部111全体の処理時間が長くなってしまう。このように、図14に示す一般的な映像符号化装置において、マージ候補リストの生成時間が長く、マージ候補リストが用いられる処理の開始までの時間が長いという課題がある。
 そこで、本発明は、マージ候補リストが使用される処理の開始を早めることができる映像符号化装置、映像符号化方法およびプログラム記録媒体を提供することを目的とする。
 本発明による映像符号化装置は、隣接ブロックからマージ候補リストを生成するマージ候補リスト生成手段と、マージ候補リストにマージ候補が少なくとも1つ含まれている場合、マージ候補リストが使用される処理を開始させる処理開始信号を出力する出力手段とを備える。
 本発明による映像符号化方法は、隣接ブロックからマージ候補リストを生成し、マージ候補リストにマージ候補が少なくとも1つ含まれている場合、マージ候補リストが使用される処理を開始させる処理開始信号を出力することを特徴とする。
 本発明によるプログラム記録媒体は、隣接ブロックからマージ候補リストを生成する生成処理、およびマージ候補リストにマージ候補が少なくとも1つ含まれている場合、マージ候補リストが使用される処理を開始させる処理開始信号を出力する出力処理をコンピュータに実行させるためのプログラムを記録する。
 本発明によれば、マージ候補リストが使用される処理の開始を早めることができる。
図1は、本発明によるマージ候補リスト出力部の概要を示すブロック図である。 図2は、本発明によるマージ候補リスト出力部によるマージ候補リストの生成処理の動作を示すフローチャートである。 図3は、本発明による動きベクトル探索部の処理時間を示す説明図である。 図4は、本発明によるマージ候補リスト出力部の第1の実施形態の構成例を示すブロック図である。 図5は、第1の実施形態におけるマージ候補リスト出力部によるマージ候補リストの生成処理の具体的な動作を示すフローチャートである。 図6は、本発明によるマージ候補リスト出力部の第2の実施形態の構成例を示すブロック図である。 図7は、第2の実施形態におけるマージ候補リスト出力部によるマージ候補リストの生成処理の具体的な動作を示すフローチャートである。 図8は、本発明によるマージ候補リスト出力部の第3の実施形態の構成例を示すブロック図である。 図9は、第3の実施形態におけるマージ候補リスト出力部によるマージ候補リストの生成処理の具体的な動作を示すフローチャートである。 図10は、本発明による映像符号化装置の機能を実現可能な情報処理システムの構成例を示すブロック図である。 図11は、本発明による映像符号化装置の概要を示すブロック図である。 図12Aは、CTUサイズが64×64(64画素×64画素)の場合のCU分割形状の一例を示す説明図である。 図12Bは、CTUサイズが64×64(64画素×64画素)の場合のCUクアッドツリー構造の一例を示す説明図である。 図13は、イントラ予測におけるPU分割方法とインター予測におけるPU分割方法を示す説明図である。 図14は、一般的な映像符号化装置の一例を示すブロック図である。 図15は、一般的な動きベクトル探索部の一例を示すブロック図である。 図16は、符号化対象予測ブロックの周辺ベクトルの取得位置を示す説明図である。 図17は、一般的なマージ候補リスト出力部の概要を示すブロック図である。 図18は、一般的なマージ候補リスト出力部によるマージ候補リストの生成処理の動作を示すフローチャートである。 図19は、一般的なマージ候補リスト出力部の一例を示すブロック図である。 図20は、一般的なマージ候補リスト出力部によるマージ候補リストの生成処理の具体的な動作を示すフローチャートである。 図21は、一般的な動きベクトル探索部の処理時間を示す説明図である。
[構成の説明]
 以下、本発明を、図面を参照して説明する。図1は、本発明によるマージ候補リスト出力部113の概要を示すブロック図である。なお、図1以降のブロック図に記載された矢印は、情報の移動方向の一例を示している。情報の移動方向は、図示された方向に限定されない。
 図1に示すマージ候補リスト出力部113の構成は、図17に示すマージ候補リスト出力部113の構成と比較して、非零判定部203が追加されている点が異なる。非零判定部203以外の図1に示すマージ候補リスト出力部113の構成は、図17に示すマージ候補リスト出力部113の構成と同様である。
 非零判定部203は、numCurrMergeCand記憶部201が記憶するnumCurrMergeCandが0でないか否かを判定する機能を有する。numCurrMergeCandが0でないと判定した場合、非零判定部203は、評価開始可能信号を出力する。
[動作の説明]
 以下、図1に示すマージ候補リスト出力部113がマージ候補リストを生成する時の動作を、図2を参照して説明する。図2は、本発明によるマージ候補リスト出力部113によるマージ候補リストの生成処理の動作を示すフローチャートである。
 ステップS101~S102における処理は、図18に示すステップS001~S002における処理と同様であるため、説明を省略する。
 numCurrMergeCandが更新された後、非零判定部203は、numCurrMergeCandが0でないか否かを判定する(ステップS103)。
 numCurrMergeCandが0でない場合(ステップS103におけるYes)、非零判定部203は、評価開始可能信号を出力する(ステップS104)。
 ステップS103またはS104の処理の後、等価判定部202は、numCurrMergeCand記憶部201に記憶されているnumCurrMergeCandとMaxNumMergeCandが等しいか否かを確認する(ステップS105)。
 ステップS105における処理は、図18に示すステップS003における処理と同様であるため、説明を省略する。
[効果の説明]
 以下、本発明による効果を説明する。本発明によれば、マージ候補リストの生成が完了する前に、非零判定部203が評価開始可能信号を出力する。よって、後続の処理を行う動きベクトル評価部114は、評価開始可能信号を受け付けることによって、マージ候補リストの生成の完了を待たずに処理を開始できる。すなわち、マージ候補リスト出力部113は、マージ候補リストを用いて処理を行う動きベクトル評価部114の処理開始時刻を早めることができる。
 図3は、本発明による動きベクトル探索部の処理時間を示す説明図である。図3は、マージ候補リスト出力処理と動きベクトル評価処理が並列に実施される場合の動きベクトル探索部の処理時間を示す。
 図21に示すように、通常の動きベクトル探索部において、動きベクトル評価処理は、マージ候補リストの生成完了時に開始される。しかし、図3に示すように、本実施形態におけるマージ候補リスト出力部113は、マージ候補リストに少なくとも1つのマージ候補が追加された時点で、処理開始可能であることを通知する。よって、動きベクトル評価部114は、マージ候補リスト出力部113と並列して動作できる。すなわち、マージ候補リストの生成途中で動きベクトル評価処理が開始されるため、動きベクトル探索部全体の処理時間が削減される。
 以下、本発明の各実施形態におけるマージ候補リスト出力部113の具体的な構成および動作を説明する。
実施形態1.
[構成の説明]
 以下、本発明の実施形態を、図面を参照して説明する。図4は、本発明によるマージ候補リスト出力部113の第1の実施形態の構成例を示すブロック図である。
 図4に示すマージ候補リスト出力部113の構成は、図19に示すマージ候補リスト出力部113の構成と比較して、非零判定部203が追加されている点が異なる。非零判定部203以外の図4に示すマージ候補リスト出力部113の構成は、図19に示すマージ候補リスト出力部113の構成と同様である。
[動作の説明]
 以下、本実施形態のマージ候補リスト出力部113の動作を図5を参照して説明する。図5は、第1の実施形態におけるマージ候補リスト出力部113によるマージ候補リストの生成処理の具体的な動作を示すフローチャートである。
 マージ候補リストの生成が開始されると、周辺ベクトル一挙生成部210は、最大5つの周辺ベクトルを一挙に生成する(ステップS111)。周辺ベクトル一挙生成部210は、生成した周辺ベクトルをマージ候補リストに一挙に追加する(ステップS112)。
追加した後、周辺ベクトル一挙生成部210は、numCurrMergeCandを更新する(ステップS113)。
 numCurrMergeCandが更新された後、非零判定部203は、numCurrMergeCandが0でないか否かを判定する(ステップS114)。
 numCurrMergeCandが0でない場合(ステップS114におけるYes)、非零判定部203は、評価開始可能信号を出力する(ステップS115)。
 ステップS114またはS115の処理の後、等価判定部202は、numCurrMergeCand記憶部201に記憶されているnumCurrMergeCandとMaxNumMergeCandが等しいか否かを確認する(ステップS116)。
 numCurrMergeCandとMaxNumMergeCandが等しい場合(ステップS116におけるYes)、等価判定部202は、マージ候補リストの生成が完了したことを示す候補生成完了信号を出力する。マージ候補リスト出力部113は、マージ候補リストの生成処理を終了する。
 numCurrMergeCandとMaxNumMergeCandが等しくない場合(ステップS116におけるNo)、結合双予測候補生成部220は、結合双予測候補を生成する(ステップS117)。結合双予測候補を1つ生成するごとに、結合双予測候補生成部220は、生成した結合双予測候補をマージ候補リストに追加する(ステップS118)。次いで、結合双予測候補生成部220は、numCurrMergeCandを更新する(ステップS119)。
 結合双予測候補がマージ候補リストに1つ追加されnumCurrMergeCandが更新されるごとに、非零判定部203は、numCurrMergeCandが0でないか否かを判定する(ステップS120)。numCurrMergeCandが0でない場合(ステップS120におけるYes)、非零判定部203は、評価開始可能信号を出力する(ステップS121)。
 ステップS120またはS121の処理の後、等価判定部202は、numCurrMergeCand記憶部201に記憶されているnumCurrMergeCandとMaxNumMergeCandが等しいか否かを確認する(ステップS122)。
 numCurrMergeCandとMaxNumMergeCandが等しい場合(ステップS122におけるYes)、等価判定部202は、マージ候補リストの生成が完了したことを示す候補生成完了信号を出力する。マージ候補リスト出力部113は、マージ候補リストの生成処理を終了する。
 numCurrMergeCandとMaxNumMergeCandが等しくない場合(ステップS122におけるNo)、結合双予測候補生成部220は、結合双予測候補の生成処理および追加処理が終了しているか否かを確認する(ステップS123)。
 結合双予測候補の生成処理および追加処理が終了していない場合(ステップS123におけるNo)、結合双予測候補生成部220は、再度ステップS117の処理を行う。
 結合双予測候補の生成処理および追加処理が終了している場合(ステップS123におけるYes)、ゼロマージ候補生成部230は、ゼロマージ候補に相当するゼロベクトルを生成する(ステップS124)。
 ゼロマージ候補生成部230は、numCurrMergeCandがMaxNumMergeCandに等しくなるように、numCurrMergeCandとMaxNumMergeCandの差分だけゼロベクトルを作成する。ゼロマージ候補生成部230は、作成したゼロベクトルをマージ候補リストに追加する(ステップS125)。
 ゼロベクトルの追加処理が終了すると、等価判定部202は、マージ候補リストの生成が完了したことを示す候補生成完了信号を出力する。マージ候補リスト出力部113は、マージ候補リストの生成処理を終了する。
[効果の説明]
 本実施形態におけるマージ候補リストに基づいて動き補償予測符号化を行う映像符号化装置は、マージ候補リスト生成部と、非零判定部とを備える。マージ候補リストの生成中に、マージ候補リスト生成部は、マージ候補リストの要素数を更新する。非零判定部は、更新されたマージ候補リストの要素数が0ではない場合、後続の処理が開始可能であることを示す信号を出力する。その結果、マージ候補リストが使用される処理の開始までの時間が短縮される。
 本実施形態におけるマージ候補リスト出力部113は、マージ候補を用いて符号化を行う符号化部を有する映像符号化装置における、周辺ベクトルで構成されるマージ候補リストを出力する。マージ候補リスト出力部113は、候補を追加するごとにnumCurrMergeCandを更新し、numCurrMergeCandが0ではなくなった時点で、後続の処理を行う動きベクトル評価部114に対して処理開始可能信号を出力する。本実施形態におけるマージ候補リスト出力部113は、動きベクトル評価部114による後続の処理の開始を早めることができる。
 本実施形態における動きベクトル探索部111は、マージ候補リスト出力部113によるマージ候補リスト生成処理と動きベクトル評価部114による評価処理を並列に実施できる。すなわち、動きベクトル探索部111は、マージ候補リスト生成処理の開始から、動きベクトル評価処理の完了までの処理全体に要する処理時間を削減できる。
実施形態2.
[構成の説明]
 次に、本発明の第2の実施形態を、図面を参照して説明する。図6は、本発明によるマージ候補リスト出力部113の第2の実施形態の構成例を示すブロック図である。
 図6に示すマージ候補リスト出力部113の構成は、図4に示すマージ候補リスト出力部113の構成と比較して、周辺ベクトル一挙生成部210が周辺ベクトル逐次生成部410に置き換えられている点が異なる。
 また、周辺ベクトルが生成された際にnumCurrMergeCandを更新する主体が、周辺ベクトル一挙生成部210から1を足すインクリメント部300に変更されている点が異なる。周辺ベクトル逐次生成部410およびインクリメント部300以外の図6に示すマージ候補リスト出力部113の構成は、図4に示すマージ候補リスト出力部113の構成と同様である。
 周辺ベクトル逐次生成部410は、周辺ベクトルを1つ生成するごとに、マージ候補リストに生成した周辺ベクトルを追加する。また、インクリメント部300は、マージ候補リストに周辺ベクトルが1つ追加されるごとに、numCurrMergeCandを更新する。
[動作の説明]
 以下、本実施形態のマージ候補リスト出力部113の動作を図7を参照して説明する。図7は、第2の実施形態におけるマージ候補リスト出力部113によるマージ候補リストの生成処理の具体的な動作を示すフローチャートである。
 マージ候補リストの生成が開始されると、周辺ベクトル逐次生成部410は、周辺ベクトルを1つ生成する(ステップS211)。周辺ベクトル逐次生成部410は、生成した1つの周辺ベクトルをマージ候補リストに追加する(ステップS212)。追加された後、インクリメント部300は、numCurrMergeCandを更新する(ステップS213)。
 numCurrMergeCandが更新された後、非零判定部203は、numCurrMergeCandが0でないか否かを判定する(ステップS214)。
 numCurrMergeCandが0でない場合(ステップS214におけるYes)、非零判定部203は、評価開始可能信号を出力する(ステップS215)。
 ステップS214またはS215の処理の後、周辺ベクトル逐次生成部410は、規格に定められた手順に従って周辺ベクトルの生成処理が終了しているか否かを確認する(ステップS216)。周辺ベクトルの生成処理が終了していない場合(ステップS216におけるNo)、周辺ベクトル逐次生成部410は、再度ステップS211の処理を行う。
 周辺ベクトルの生成処理が終了している場合(ステップS216におけるYes)、等価判定部202は、numCurrMergeCand記憶部201に記憶されているnumCurrMergeCandとMaxNumMergeCandが等しいか否かを確認する(ステップS217)。
 ステップS217~S226における処理は、図5に示すステップS116~S125における処理と同様であるため、説明を省略する。
[効果の説明]
 以下、本実施形態の効果を説明する。本実施形態のマージ候補リスト出力部113によれば、周辺ベクトルの生成および追加の処理中に、非零判定部203が評価開始可能信号を出力する。よって、後続の処理を行う動きベクトル評価部114は、第1の実施形態よりも早く処理を開始できる。すなわち、本実施形態の動きベクトル探索部111において、マージ候補リスト出力部113によるマージ候補リスト生成処理と、動きベクトル評価部114による評価処理の並列度が、第1の実施形態よりも高まる可能性がある。
実施形態3.
[構成の説明]
 次に、本発明の第3の実施形態を、図面を参照して説明する。図8は、本発明によるマージ候補リスト出力部113の第3の実施形態の構成例を示すブロック図である。
 図8に示すマージ候補リスト出力部113の構成は、図6に示すマージ候補リスト出力部113の構成と比較して、ゼロマージ候補生成部230が初期化ゼロマージ候補生成部430に置き換えられている点が異なる。
 また、図8に示すマージ候補リスト出力部113の構成は、ゼロマージ候補シフト部440が追加されている点が図6に示す構成と異なる。図8に示すnumCurrMergeCand記憶部201、結合双予測候補生成部220、マージ候補リスト記憶部240、インクリメント部300および周辺ベクトル逐次生成部410の構成は、図6に示すマージ候補リスト出力部113の同名の構成要素と同様である。
 初期化ゼロマージ候補生成部430は、マージ候補リスト生成部200の動作開始直後に動作する。初期化ゼロマージ候補生成部430は、マージ候補リストに規格に定められたゼロマージ候補を追加することによって、マージ候補リストを初期化する。
 ゼロマージ候補シフト部440は、周辺ベクトル逐次生成部410、および結合双予測候補生成部220がマージ候補リストに候補を追加するごとに、初期化によりマージ候補リストに追加されたゼロマージ候補を、マージ候補リストの末尾側にシフトする。
[動作の説明]
 以下、本実施形態のマージ候補リスト出力部113の動作を図9を参照して説明する。図9は、第3の実施形態におけるマージ候補リスト出力部113によるマージ候補リストの生成処理の具体的な動作を示すフローチャートである。
 マージ候補リスト生成処理の開始前に、初期化ゼロマージ候補生成部430は、規格に定められたゼロマージ候補を一挙に生成する(ステップS311)。初期化ゼロマージ候補生成部430は、生成したゼロマージ候補をマージ候補リストに追加する(ステップS312)。
 なお、生成されたゼロマージ候補がマージ候補リストに追加された時、numCurrMergeCandは更新されない。ゼロマージ候補がマージ候補リストに追加されても、numCurrMergeCandは初期値0のままである。
 図9において、ステップS313からの処理がマージ候補リスト生成処理に対応する。
ステップS315とステップS322以外のステップS313~S326における処理は、図7に示すステップS211~S224における処理と同様であるため、説明を省略する。
 マージ候補リストにマージ候補が追加された後にnumCurrMergeCandが更新される際、ゼロマージ候補シフト部440は、マージ候補リスト中のゼロベクトルを末尾側にシフトする(ステップS315、ステップS322)。
 結合双予測候補の生成処理および追加処理が終了した後(ステップS326におけるYes)、等価判定部202は、マージ候補リストの生成が完了したことを示す候補生成完了信号を出力する。マージ候補リスト出力部113は、マージ候補リストの生成処理を終了する。
[効果の説明]
 以下、本実施形態の効果を説明する。本実施形態のマージ候補リスト出力部113は、第1の実施形態および第2の実施形態において最後に行われていたゼロベクトルの生成処理および追加処理を、マージ候補リストの生成処理の開始前に行う。その結果、評価開始可能信号の出力までに要する時間の最悪値が短縮される。すなわち、周辺ベクトルも結合双予測候補も存在せず、マージ候補リストにゼロベクトルのみが追加される場合の、マージ候補リストの生成に要する時間が短縮される。
 また、上記の各実施形態を、ハードウェアで構成することも可能であるが、例えば記録媒体に記録されたコンピュータプログラムにより実現することも可能である。
 図10に示す情報処理システムは、プロセッサ1001、プログラムメモリ1002、映像データを格納するための記憶媒体(記録媒体)1003、およびビットストリーム等のデータを格納するための記憶媒体1004を備える。記憶媒体1003と記憶媒体1004とは、別個の記憶媒体であってもよいし、同一の記憶媒体の別異の記憶領域であってもよい。記憶媒体として、ハードディスク等の磁気記憶媒体を用いることができる。記憶媒体1003において、少なくともプログラムが記憶される領域は、一時的でない有形な記憶領域(non-transitory tangible media)である。
 図10に示された情報処理システムにおいて、プログラムメモリ1002には、図1、図4、図6、図8のそれぞれに示された各ブロックの機能を実現するためのプログラムが格納される。そして、プロセッサ1001は、プログラムメモリ1002に格納されているプログラムに従って処理を実行することによって、図1、図4、図6、図8のそれぞれに示されたマージ候補リスト出力部113の機能を実現する。
 次に、本発明の概要を説明する。図11は、本発明による映像符号化装置の概要を示すブロック図である。本発明による映像符号化装置10は、マージ候補リスト生成手段11(例えば、マージ候補リスト生成部200)と、出力手段12(例えば、非零判定部203)とを備える。マージ候補リスト生成手段11は、隣接ブロックからマージ候補リストを生成する。出力手段12は、マージ候補リストにマージ候補が少なくとも1つ含まれている場合、マージ候補リストが使用される処理を開始させる処理開始信号を出力する。
 そのような構成により、映像符号化装置10は、マージ候補リストが使用される処理の開始を早めることができる。
 また、マージ候補リスト生成手段11は、マージ候補である周辺ベクトルを生成し、周辺ベクトルを1つ生成するごとに周辺ベクトルをマージ候補リストに追加する周辺ベクトル逐次生成手段(例えば、周辺ベクトル逐次生成部410)を含んでもよい。
 そのような構成により、映像符号化装置は、マージ候補生成処理と動きベクトル評価処理の並列度をより高めることができる。
 また、マージ候補リスト生成手段11は、初期化ゼロマージ候補生成手段(例えば、初期化ゼロマージ候補生成部430)とゼロマージ候補シフト手段(例えば、ゼロマージ候補シフト部440)とを含んでもよい。初期化ゼロマージ候補生成手段は、マージ候補リストの生成開始前にゼロマージ候補でマージ候補リストを初期化してもよい。ゼロマージ候補シフト手段は、マージ候補リストにマージ候補が追加された際、ゼロマージ候補をマージ候補リストの末尾側にシフトしてもよい。
 そのような構成により、映像符号化装置10は、処理開始信号の出力までに要する時間の最悪値を短縮できる。
 本発明は、映像圧縮装置や、映像圧縮をコンピュータで実現するためのプログラムの用途に適用可能である。
 以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は、2015年3月19日に出願された日本出願特願2015-055983を基礎とする優先権を主張し、その開示の全てをここに取り込む。
10、100 映像符号化装置
11 マージ候補リスト生成手段
12 出力手段
110 符号化パラメータ探索部
111 動きベクトル探索部
112 動きベクトル探索候補生成部
113 マージ候補リスト出力部
114 動きベクトル評価部
120 符号化部
121 変換部
122 量子化部
123 逆量子化部
124 逆変換部
125 バッファ
126 予測部
127 エントロピー符号化部
200 マージ候補リスト生成部
201 numCurrMergeCand記憶部
202 等価判定部
203 非零判定部
210 周辺ベクトル一挙生成部
220 結合双予測候補生成部
230 ゼロマージ候補生成部
240 マージ候補リスト記憶部
300 インクリメント部
301 加算部
302 減算部
410 周辺ベクトル逐次生成部
430 初期化ゼロマージ候補生成部
440 ゼロマージ候補シフト部
1001 プロセッサ
1002 プログラムメモリ
1003、1004 記憶媒体

Claims (9)

  1.  隣接ブロックからマージ候補リストを生成するマージ候補リスト生成手段と、
     前記マージ候補リストにマージ候補が少なくとも1つ含まれている場合、前記マージ候補リストが使用される処理を開始させる処理開始信号を出力する出力手段とを備える
     映像符号化装置。
  2.  前記マージ候補リスト生成手段は、前記マージ候補である周辺ベクトルを生成し、前記周辺ベクトルを1つ生成するごとに前記周辺ベクトルをマージ候補リストに追加する周辺ベクトル逐次生成手段を含む
     請求項1記載の映像符号化装置。
  3.  前記マージ候補リスト生成手段は、初期化ゼロマージ候補生成手段とゼロマージ候補シフト手段とを含み、
     前記初期化ゼロマージ候補生成手段は、前記マージ候補リストの生成開始前にゼロマージ候補で前記マージ候補リストを初期化し、
     前記ゼロマージ候補シフト手段は、前記マージ候補リストに前記マージ候補が追加された際、前記ゼロマージ候補を前記マージ候補リストの末尾側にシフトする
     請求項1または請求項2記載の映像符号化装置。
  4.  隣接ブロックからマージ候補リストを生成し、
     前記マージ候補リストにマージ候補が少なくとも1つ含まれている場合、前記マージ候補リストが使用される処理を開始させる処理開始信号を出力する
     ことを特徴とする映像符号化方法。
  5.  前記マージ候補である周辺ベクトルを生成し、
     前記周辺ベクトルが1つ生成されるごとに前記周辺ベクトルを前記マージ候補リストに追加する
     請求項4記載の映像符号化方法。
  6.  前記マージ候補リストの生成開始前にゼロマージ候補で前記マージ候補リストを初期化し、
     前記マージ候補リストに前記マージ候補が追加された際、前記ゼロマージ候補を前記マージ候補リストの末尾側にシフトする
     請求項4または請求項5記載の映像符号化方法。
  7.  コンピュータに、
     隣接ブロックからマージ候補リストを生成する生成処理、および
     前記マージ候補リストにマージ候補が少なくとも1つ含まれている場合、前記マージ候補リストが使用される処理を開始させる処理開始信号を出力する出力処理
     を実行させるためのプログラムを記録したプログラム記録媒体。
  8.  前記コンピュータに、
     前記マージ候補である周辺ベクトルを生成する生成処理、および
     前記周辺ベクトルが1つ生成されるごとに前記周辺ベクトルを前記マージ候補リストに追加する追加処理をさらに実行させる
     請求項7記載のプログラム記録媒体。
  9.  前記コンピュータに、
     前記マージ候補リストの生成開始前にゼロマージ候補で前記マージ候補リストを初期化する初期化処理、および
     前記マージ候補リストに前記マージ候補が追加された際、前記ゼロマージ候補を前記マージ候補リストの末尾側にシフトするシフト処理をさらに実行させる
     請求項7または請求項8記載のプログラム記録媒体。
PCT/JP2016/001452 2015-03-19 2016-03-15 映像符号化装置、映像符号化方法およびプログラム記録媒体 WO2016147651A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017506092A JP6677243B2 (ja) 2015-03-19 2016-03-15 映像符号化装置、映像符号化方法およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015055983 2015-03-19
JP2015-055983 2015-03-19

Publications (1)

Publication Number Publication Date
WO2016147651A1 true WO2016147651A1 (ja) 2016-09-22

Family

ID=56918713

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/001452 WO2016147651A1 (ja) 2015-03-19 2016-03-15 映像符号化装置、映像符号化方法およびプログラム記録媒体

Country Status (2)

Country Link
JP (1) JP6677243B2 (ja)
WO (1) WO2016147651A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012191512A (ja) * 2011-03-11 2012-10-04 Sony Corp 画像処理装置および方法
WO2013001818A1 (ja) * 2011-06-30 2013-01-03 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、および、画像符号化復号装置
JP2013236366A (ja) * 2012-04-12 2013-11-21 Jvc Kenwood Corp 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
WO2014073173A1 (ja) * 2012-11-06 2014-05-15 日本電気株式会社 映像符号化方法、映像符号化装置および映像符号化プログラム
JP2014183339A (ja) * 2013-03-18 2014-09-29 Fujitsu Ltd 符号化装置、符号化方法、および符号化プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012191512A (ja) * 2011-03-11 2012-10-04 Sony Corp 画像処理装置および方法
WO2013001818A1 (ja) * 2011-06-30 2013-01-03 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、および、画像符号化復号装置
JP2013236366A (ja) * 2012-04-12 2013-11-21 Jvc Kenwood Corp 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
WO2014073173A1 (ja) * 2012-11-06 2014-05-15 日本電気株式会社 映像符号化方法、映像符号化装置および映像符号化プログラム
JP2014183339A (ja) * 2013-03-18 2014-09-29 Fujitsu Ltd 符号化装置、符号化方法、および符号化プログラム

Also Published As

Publication number Publication date
JPWO2016147651A1 (ja) 2018-01-11
JP6677243B2 (ja) 2020-04-08

Similar Documents

Publication Publication Date Title
KR102558513B1 (ko) 영상 복호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
KR102412640B1 (ko) 영상 복호화 방법 및 장치
KR102182628B1 (ko) 인트라 예측 방법 및 장치
KR20220119579A (ko) 참조 유닛 결정 방법 및 장치
WO2013042888A2 (ko) 머지 후보 블록 유도 방법 및 이러한 방법을 사용하는 장치
KR20210114915A (ko) 변환 계수 스캔 방법 및 그 장치
KR102435595B1 (ko) 분산 처리 환경에서의 학습 파라미터의 압축 및 전송을 제공하는 방법 및 장치
KR20230007313A (ko) 딥 러닝을 사용한 병렬화된 레이트-왜곡 최적화된 양자화
JP2017034531A (ja) 動画像符号化装置及び動画像符号化方法
KR20180096194A (ko) 변환 계수 부호화 및 복호화 장치와 이를 구비하는 부호화 장치 및 복호화 장치
KR20170120418A (ko) 상위 계층 고속 움직임 예측 부복호화 장치
WO2016147651A1 (ja) 映像符号化装置、映像符号化方法およびプログラム記録媒体
KR102534377B1 (ko) 고속 율-왜곡 최적화 기반 양자화 방법 및 장치
KR102414164B1 (ko) 향상된 산술부호화를 제공하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치
JP6323185B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム

Legal Events

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

Ref document number: 16764482

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017506092

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16764482

Country of ref document: EP

Kind code of ref document: A1