WO2020184715A1 - Image processing device, and image processing method - Google Patents

Image processing device, and image processing method Download PDF

Info

Publication number
WO2020184715A1
WO2020184715A1 PCT/JP2020/011206 JP2020011206W WO2020184715A1 WO 2020184715 A1 WO2020184715 A1 WO 2020184715A1 JP 2020011206 W JP2020011206 W JP 2020011206W WO 2020184715 A1 WO2020184715 A1 WO 2020184715A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
processing
image
prediction
bdof
Prior art date
Application number
PCT/JP2020/011206
Other languages
French (fr)
Japanese (ja)
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 ソニー株式会社
Publication of WO2020184715A1 publication Critical patent/WO2020184715A1/en

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/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/557Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Definitions

  • the present disclosure relates to an image processing apparatus and an image processing method, and more particularly to an image processing apparatus and an image processing method capable of reducing the complexity of calculation.
  • Non-Patent Document 1 BDOF (Bi-Directional Optical Flow) processing disclosed in Non-Patent Document 1 is applied to image processing including inter-prediction, and DMVR (Decoder-side Motion Vector Refinement) disclosed in Non-Patent Document 2 is applied.
  • DMVR Decoder-side Motion Vector Refinement
  • the SAD Sud of Absolute Difference
  • This disclosure has been made in view of such a situation, and is intended to reduce the complexity of calculation.
  • the image processing device on one aspect of the present disclosure includes a motion vector search unit that searches for a motion vector, a DMVR processing unit that performs DMVR processing, and a prediction unit that predicts the current prediction block using the motion vector. It is provided with a BDOF processing unit that has and performs BDOF processing, and supplies the SAD value obtained when the motion vector search unit searches for the motion vector from the DMVR processing unit to the BDOF processing unit to perform the BDOF processing. The SAD value is used for the early termination determination to determine whether or not to terminate early.
  • the image processing method of one aspect of the present disclosure includes a motion vector search unit that searches for a motion vector, a DMVR processing unit that performs DMVR processing, and a prediction unit that predicts the current prediction block using the motion vector.
  • An image processing apparatus having a BDOF processing unit that performs BDOF processing supplies the SAD value obtained when the motion vector search unit searches for the motion vector from the DMVR processing unit to the BDOF processing unit. And, the SAD value is used for the early termination determination for determining whether or not the BDOF processing is terminated early.
  • the image processing apparatus has a motion vector search unit that searches for a motion vector, a DMVR processing unit that performs DMVR processing, and a prediction unit that predicts a current prediction block using the motion vector. It is provided with a BDOF processing unit that performs BDOF processing. Then, the SAD value obtained when the motion vector search unit searches for the motion vector is supplied from the DMVR processing unit to the BDOF processing unit, and the SAD value is used for the early termination determination to determine whether or not the BDOF processing is terminated early. It will be used.
  • a "block” (not a block indicating a processing unit) used as a partial area or a processing unit of an image (picture) indicates an arbitrary partial area in the picture, and its size, shape, and processing.
  • the characteristics are not limited.
  • "block” includes TB (Transform Block), TU (Transform Unit), PB (Prediction Block), PU (Prediction Unit), SCU (Smallest Coding Unit), CU (Coding Unit), and LCU (Largest Coding Unit). ), CTB (Coding TreeBlock), CTU (Coding Tree Unit), conversion block, subblock, macroblock, tile, slice, etc., any partial area (processing unit) shall be included.
  • the block size may be specified using the identification information that identifies the size.
  • the block size may be specified by the ratio or difference with the size of the reference block (for example, LCU or SCU).
  • the designation of the block size also includes the designation of the range of the block size (for example, the designation of the range of the allowable block size).
  • the data unit in which various information is set and the data unit targeted by various processes are arbitrary and are not limited to the above-mentioned examples.
  • these information and processing are TU (Transform Unit), TB (Transform Block), PU (Prediction Unit), PB (Prediction Block), CU (Coding Unit), LCU (Largest Coding Unit), and subblock, respectively.
  • Blocks, tiles, slices, pictures, sequences, or components may be set, or the data of those data units may be targeted.
  • this data unit can be set for each information or process, and it is not necessary that the data unit of all the information or process is unified.
  • the storage location of these information is arbitrary, and may be stored in the header, parameter set, or the like of the above-mentioned data unit. Further, it may be stored in a plurality of places.
  • control information related to the present technology may be transmitted from the coding side to the decoding side.
  • control information for example, enabled_flag
  • control information indicating an object to which the present technology is applied (or an object to which the present technology is not applied) may be transmitted.
  • control information may be transmitted that specifies the block size (upper and lower limits, or both) to which the present technology is applied (or allowed or prohibited), frames, components, layers, and the like.
  • the "flag” is information for identifying a plurality of states, and is not only information used for identifying two states of true (1) or false (0), but also three or more states. It also contains information that can identify the state. Therefore, the value that this "flag” can take may be, for example, 2 values of 1/0 or 3 or more values. That is, the number of bits constituting this "flag” is arbitrary, and may be 1 bit or a plurality of bits.
  • the identification information (including the flag) is assumed to include not only the identification information in the bit stream but also the difference information of the identification information with respect to a certain reference information in the bit stream. In, the "flag” and “identification information” include not only the information but also the difference information with respect to the reference information.
  • association metadata various information (metadata, etc.) regarding the coded data (bit stream) may be transmitted or recorded in any form as long as it is associated with the coded data.
  • the term "associate” means, for example, to make the other data available (linkable) when processing one data. That is, the data associated with each other may be combined as one data or may be individual data.
  • the information associated with the coded data (image) may be transmitted on a transmission path different from the coded data (image).
  • the information associated with the coded data (image) may be recorded on a recording medium (or another recording area of the same recording medium) different from the coded data (image). Good.
  • this "association" may be a part of the data, not the entire data. For example, an image and information corresponding to the image may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part within the frame.
  • the size means combining a plurality of objects into one, for example, combining encoded data and metadata into one data, and means one method of "associating" described above.
  • the coding includes not only the whole process of converting an image into a bit stream but also a part of the process.
  • decoding includes not only the entire process of converting a bitstream into an image, but also some processes.
  • decoding includes not only the entire process of converting a bitstream into an image, but also some processes.
  • it not only includes processing that includes inverse arithmetic decoding, inverse quantization, inverse orthogonalization, prediction processing, etc., but also processing that includes inverse arithmetic decoding and inverse quantization, inverse arithmetic decoding, inverse quantization, and prediction processing.
  • a technique for terminating the BDOF process earlier is introduced, and the DMVR cost is used in the early termination determination for determining whether or not the BDOF process is terminated earlier.
  • the simulation results show that the decoding execution time is shortened and the BD performance is hardly reduced. That is, in the simulation results, the BD rates of the Y, U, and V components are 0.02%, 0.01%, and -0.02%, respectively, and the encoding time and decoding time in the random access configuration are 100% and 99%, respectively. Was shown.
  • FIG. 2 shows a block diagram illustrating the DMVR processing unit 11 and the BDOF processing unit 12.
  • DMVR processing and BDOF processing are executed when the condition check of the current VTM (VVCTestModel) -4.0 design is enabled.
  • the DMVR processing unit 11 has a motion vector search unit 21, searches for an appropriate motion vector MV by the motion vector search unit 21, and supplies the motion vector MV to the BDOF processing unit 12.
  • the BDOF processing unit 12 has a SAD calculation unit 22 and a prediction unit 23, and predicts the current prediction block using the motion vector MV supplied from the DMVR processing unit 11. At this time, in the BDOF processing unit 12, the SAD value between the reference image L0 and the reference image L1 calculated by the SAD calculation unit 22 is used for determining the early end of the BDOF processing.
  • SAD is calculated as a cost for obtaining a more appropriate motion vector MV. Therefore, in the DMVR processing unit 11 and the BDOF processing unit 12, the SAD was calculated twice stepwise.
  • the BDOF processing unit 12 reuses the SAD obtained by the DMVR processing unit 11 to reduce the complexity of the calculation.
  • FIG. 3 is a block diagram showing a configuration example of an embodiment of the DMVR processing unit 11 and the BDOF processing unit 12 to which the present technology is applied.
  • the motion vector search unit 21 calculates the SAD value obtained when searching for the motion vector MV. It is supplied to the unit 22. That is, when the SAD calculation unit 22 can acquire the SAD value supplied from the motion vector search unit 21, it can skip the calculation of the SAD value. Then, the BDOF processing unit 12 can reuse the SAD value from the DMVR processing unit 11 to determine the early termination of the BDOF processing.
  • FIG. 4 is a flowchart illustrating the conventional BDOF process.
  • the BDOF processing unit 12 calculates the SAD value in step S11, applies a gradient filter in step S12, detects the optical flow in step S13, and makes a prediction in step S14.
  • step S14 the BDOF processing unit 12 uses the SAD value in order to finish the prediction at the 4 ⁇ 4 subblock level at an early stage.
  • normal bi-prediction and optical flow technology prediction are selected.
  • the SAD value of the 4x4 subblock is less than the threshold, the usual bi-prediction is used to reduce complexity.
  • the SAD value of the 4 ⁇ 4 subblock is required.
  • FIG. 5 is a flowchart illustrating BDOF processing to which the present technology is applied.
  • the BDOF processing unit 12 acquires the SAD value supplied from the DMVR processing unit 11 in step S21. Then, the BDOF processing unit 12 applies a gradient filter in step S22, detects an optical flow in step S23, and makes a prediction in step S24. Further, in step S24, the BDOF processing unit 12 uses the SAD value acquired in step S21 for the early termination determination for determining whether or not to terminate the prediction at the 4 ⁇ 4 subblock level early.
  • step S24 if the BDOF processing unit 12 determines that the BDOF processing is not terminated early in the early termination determination of the BDOF processing, the BDOF processing is not terminated early even in the early termination determination performed after the block is divided. Is determined. That is, when the BDOF processing unit 12 uses the SAD value from the DMVR processing unit 11 to determine that the prediction of 16 ⁇ 16 blocks should not be terminated early, the prediction of 4 ⁇ 4 subblocks is not terminated early. Is determined. Further, when the block size after dividing the block is 4 ⁇ 4, the BDOF processing unit 12 determines that the BDOF processing is not terminated early in the early termination determination of the BDOF processing.
  • the user time of the output log was used. Also, parallel encoding was used for random access and for all intras. Also, to measure the encoding time with parallel encoding, the sum of all user times for each frame was calculated.
  • FIG. 6 shows an outline of the test results of the simulation performed under the above conditions.
  • CE9-2.2a and CE9-2.2b were shown to be slightly faster than CE9-2.2c. The reason may be that CE9-2.2a and CE9-2.2b can skip and process BDOF in the early termination region 16x16, but CE9-2.2c does not.
  • the motion vector offset mvOffset is set to be equal to refMvLX [xSbIdx] [xSbIdx] -mvLX [xSbIdx] [ySbIdx].
  • mvOffset [0] is set to 0. -XSb is not equal to xCb and mvOffset [0] is less than 0-(xSb + sbWidth) is not equal to (xCb + cbWidth) and mvOffset [0] is greater than 0
  • mvOffset [1] is set to 0. ⁇ YSb is not equal to yCb and mvOffset [1] is less than 0 ⁇ (ySb + sbHeight) is not equal to (yCb + cbHeight) and mvOffset [1] is greater than 0
  • the array predSamplesLXL uses the fractional sample interpolation process specified in section 8.5.7.3 of the draft for the luminance position (xCb, yCb), coding subblock width sbWidth, coding subblock height sbHeight for the luma sample, and luma motion vector offset mvOffset.
  • the luminance motion vector refMvLX [xSb] [xSb] the reference arrays refPicLXL, bdofFlag, and cIdx as inputs.
  • the array predSamplesLXCb uses the fractional sample interpolation process specified in section 8.5.7.3 of the draft for the luminance position (xCb, yCb), coding subblock width sbWidth / 2, coding subblock height sbHeight / 2, and chroma motion vector.
  • mvOffset to get the chroma motion vector refMvLX [xSb] [xSb]
  • the reference arrays refPicLXCb, bdofFlag, and cIdx as inputs.
  • the array predSamplesLXCr uses the fractional sample interpolation process specified in section 8.5.7.3 of the draft for the luminance position (xCb, yCb), coding subblock width sbWidth / 2, coding subblock height sbHeight / 2, and chroma motion vector. Called with offset mvOffset to get the chroma motion vector refMvLX [xSb] [xSb], the reference arrays refPicLXCr, bdofFlag, and cIdx as inputs.
  • the predSamples array of the predicted sample is derived as explained below.
  • nCbW is set equal to the width of the luma coding subblock sbWidth and nCbH is the height of the luma coding subblock sbHeight. Is set to.
  • the weighted sample prediction process specified in section 8.5.7.5 of the draft is the brightness coding subblock width sbWidth, the brightness coding subblock height sbHeight, the sample sequences predSamplesL0L and predSamplesL1L, and Called with the variable predFlagL0.
  • [xSbIdx] [ySbIdx], predFlagL1 [xSbIdx] [ySbIdx], refIdxL0, refIdxL1, gbiIdx, and cIdx are input, and predSamples [xL + xSb] [yL + ySb] is output.
  • the output of this process is the (nCbW) x (nCbH) array pbSamples of the brightness prediction sample values.
  • bitDepth, shift1, shift2, shift3, shift4, offset4, and mvRefineThres are derived as follows.
  • -Variable bitDepth is set equal to BitDepthY-Variable shift1 is set equal to Max (2,14-bitDepth)
  • -Variable shift2 is set equal to Max (8, bitDepth-4)
  • -Variable shift3 is set equally
  • Variable shift4 is set to Max (3,15-bitDepth)
  • variable offset4 is set to 1 ⁇ (shift4-1)
  • Variable mvRefineThres is Set equal to Max (2, 1 ⁇ (13-bitDepth))
  • the predicted sample value of the current subblock is derived according to the following equation (3).
  • etSumDiff [xSbIdx >> 2] [xSbIdx >>2]> etDiffThres equals TRUE, bdofUtilizationFlag [xSbIdx] [yIdx] equals TRUE)
  • the predicted sample values for the current subblock are: It is derived as follows.
  • FIG. 7 is a block diagram showing a configuration example of an embodiment of a computer-based system to which the present technology is applied.
  • FIG. 7 is a block diagram showing a configuration example of a network system in which one or more computers, servers, and the like are connected via a network. Note that the hardware and software environment shown in the embodiment of FIG. 7 is shown as an example of being able to provide a platform for implementing the software and / or method according to the present disclosure.
  • the network system 31 includes a computer 32, a network 33, a remote computer 34, a web server 35, a cloud storage server 36, and a computer server 37.
  • a plurality of instances are executed by one or more of the functional blocks shown in FIG.
  • FIG. 7 the detailed configuration of the computer 32 is illustrated.
  • the functional blocks shown in the computer 32 are shown for establishing exemplary functions, and are not limited to such a configuration.
  • the detailed configurations of the remote computer 34, the web server 35, the cloud storage server 36, and the computer server 37 are not shown, they include the same configurations as the functional blocks shown in the computer 32. ing.
  • the computer 32 may be a personal computer, desktop computer, laptop computer, tablet computer, netbook computer, personal digital assistant, smartphone, or other programmable electronic device capable of communicating with other devices on the network. Can be done.
  • the computer 32 includes a bus 41, a processor 42, a memory 43, a non-volatile storage 44, a network interface 46, a peripheral device interface 47, and a display interface 48.
  • a bus 41 a bus 41
  • a processor 42 a memory 43
  • a non-volatile storage 44 a network interface 46
  • a peripheral device interface 47 a display interface 48.
  • Each of these functions is implemented in an individual electronic subsystem (integrated circuit chip or combination of chips and related devices) in some embodiments, or in some embodiments, some of the functions are combined. It may be mounted on a single chip (system on chip or SoC (System on Chip)).
  • Bus 41 can adopt various proprietary or industry standard high-speed parallel or serial peripheral interconnection buses.
  • the processor 42 may employ one designed and / or manufactured as one or more single or multi-chip microprocessors.
  • the memory 43 and the non-volatile storage 44 are storage media that can be read by the computer 32.
  • the memory 43 can employ any suitable volatile storage device such as DRAM (Dynamic Random Access Memory) or SRAM (Static RAM).
  • the non-volatile storage 44 includes a flexible disk, a hard disk, an SSD (SolidStateDrive), a ROM (ReadOnlyMemory), an EPROM (ErasableandProgrammableReadOnlyMemory), a flash memory, a compact disk (CD or CD-ROM), and a DVD (CD or CD-ROM). At least one or more of DigitalVersatileDisc), card type memory, or stick type memory can be adopted.
  • program 45 is stored in the non-volatile storage 44.
  • Program 45 is, for example, a collection of machine-readable instructions and / or data used to create, manage, and control specific software functions.
  • the program 45 can be transferred from the non-volatile storage 44 to the memory 43 before being executed by the processor 42.
  • the computer 32 can communicate and interact with other computers via the network 33 via the network interface 46.
  • the network 33 can adopt, for example, a LAN (Local Area Network), a WAN (Wide Area Network) such as the Internet, or a combination of LAN and WAN, including a wired, wireless, or optical fiber connection. ..
  • the network 33 consists of any combination of connections and protocols that support communication between two or more computers and related devices.
  • the peripheral device interface 47 can input / output data to / from other devices that can be locally connected to the computer 32.
  • the peripheral interface 47 provides a connection to the external device 51.
  • the external device 51 includes a keyboard, mouse, keypad, touch screen, and / or other suitable input device.
  • the external device 51 may also include, for example, a thumb drive, a portable optical or magnetic disk, and a portable computer readable storage medium such as a memory card.
  • the software and data used to implement Program 45 may be stored on such a portable computer readable storage medium.
  • the software may be loaded directly into the non-volatile storage 44 or into the memory 43 via the peripheral interface 47.
  • Peripheral device interface 47 may use an industry standard such as RS-232 or USB (Universal Serial Bus) for connection with the external device 51.
  • the display interface 48 can connect the computer 32 to the display 52, and the display 52 can be used to present a command line or graphical user interface to the user of the computer 32.
  • industry standards such as VGA (Video Graphics Array), DVI (Digital Visual Interface), DisplayPort, and HDMI (High-Definition Multimedia Interface) (registered trademark) can be adopted.
  • FIG. 8 shows the configuration of an embodiment of an image coding device as an image processing device to which the present disclosure is applied.
  • the image coding device 60 shown in FIG. 8 encodes image data using prediction processing.
  • the coding method for example, a HEVC (High Efficiency Video Coding) method or the like is used.
  • the image coding device 60 of FIG. 8 has a screen sorting buffer 61, a control unit 62, a calculation unit 63, an orthogonal conversion unit 64, a quantization unit 65, a lossless coding unit 66, and a storage buffer 67. Further, the image coding device 60 includes an inverse quantization unit 68, an inverse orthogonal conversion unit 69, an arithmetic unit 70, a deblocking filter 71, an adaptive offset filter 72, an adaptive loop filter 73, a frame memory 74, a selection unit 75, and an intra prediction unit. It has a motion prediction / compensation section 77, a prediction image selection section 78, and a rate control section 79.
  • the screen rearrangement buffer 61 stores the input image data (Picture (s)), and the image of the frame in the stored display order is framed for coding according to the GOP (Group of Picture) structure. Sort in the order of.
  • the screen rearrangement buffer 61 outputs an image in which the frame order is rearranged to the calculation unit 63, the intra prediction unit 76, and the motion prediction / compensation unit 77 via the control unit 62.
  • the control unit 62 controls reading of an image from the screen rearrangement buffer 61.
  • the calculation unit 63 subtracts the prediction image supplied from the intra prediction unit 76 or the motion prediction / compensation unit 77 via the prediction image selection unit 78 from the image output from the control unit 62, and orthogonally converts the difference information. Output to unit 64.
  • the calculation unit 63 subtracts the prediction image supplied from the intra prediction unit 76 from the image output from the control unit 62. Further, for example, in the case of an image to be inter-encoded, the calculation unit 63 subtracts the predicted image supplied from the motion prediction / compensation unit 77 from the image output from the control unit 62.
  • the orthogonal transform unit 64 performs orthogonal transforms such as discrete cosine transform and Karhunen-Loève transform on the difference information supplied from the arithmetic unit 63, and supplies the conversion coefficients to the quantization unit 65.
  • the quantization unit 65 quantizes the conversion coefficient output by the orthogonal conversion unit 64.
  • the quantized unit 65 supplies the quantized conversion coefficient to the lossless coding unit 66.
  • the lossless coding unit 66 applies lossless coding such as variable length coding and arithmetic coding to the quantized conversion coefficient.
  • the lossless coding unit 66 acquires parameters such as information indicating the intra prediction mode from the intra prediction unit 76, and acquires parameters such as information indicating the inter prediction mode and motion vector information from the motion prediction / compensation unit 77.
  • the lossless coding unit 66 encodes the quantized conversion coefficient and encodes each acquired parameter (syntax element) to be a part (multiplex) of the header information of the coded data.
  • the lossless coding unit 66 supplies the coded data obtained by coding to the storage buffer 67 and stores it.
  • lossless coding processing such as variable length coding or arithmetic coding is performed.
  • variable-length coding include CAVLC (Context-Adaptive Variable Length Coding).
  • arithmetic coding include CABAC (Context-Adaptive Binary Arithmetic Coding).
  • the storage buffer 67 temporarily holds the coded stream (Encoded Data) supplied from the reversible coding unit 66, and at a predetermined timing, as a coded image, for example, not shown in the subsequent stage. Output to a recording device or transmission line. That is, the storage buffer 67 is also a transmission unit that transmits a coded stream.
  • the conversion coefficient quantized in the quantization unit 65 is also supplied to the inverse quantization unit 68.
  • the dequantization unit 68 dequantizes the quantized conversion coefficient by a method corresponding to the quantization by the quantization unit 65.
  • the inverse quantization unit 68 supplies the obtained conversion coefficient to the inverse orthogonal conversion unit 69.
  • the inverse orthogonal conversion unit 69 performs inverse orthogonal conversion of the supplied conversion coefficient by a method corresponding to the orthogonal conversion processing by the orthogonal conversion unit 64.
  • the inverse orthogonally converted output (restored difference information) is supplied to the calculation unit 70.
  • the calculation unit 70 supplies the inverse orthogonal conversion result supplied from the inverse orthogonal conversion unit 69, that is, the restored difference information from the intra prediction unit 76 or the motion prediction / compensation unit 77 via the prediction image selection unit 78.
  • the predicted images are added to obtain a locally decoded image (decoded image).
  • the calculation unit 70 adds the predicted image supplied from the intra prediction unit 76 to the difference information. Further, for example, when the difference information corresponds to an image to be intercoded, the calculation unit 70 adds the prediction image supplied from the motion prediction / compensation unit 77 to the difference information.
  • the decoded image that is the result of the addition is supplied to the deblocking filter 71 and the frame memory 74.
  • the deblocking filter 71 suppresses block distortion of the decoded image by appropriately performing deblocking filter processing on the image from the calculation unit 70, and supplies the filter processing result to the adaptive offset filter 72.
  • the deblocking filter 71 has parameters ⁇ and Tc obtained based on the quantization parameter QP.
  • the parameters ⁇ and Tc are threshold values (parameters) used for determining the deblocking filter.
  • each offset of the parameters ⁇ and Tc is encoded by the lossless coding unit 66 as a parameter of the deblocking filter and transmitted to the image decoding device 80 of FIG. 10 described later.
  • the adaptive offset filter 72 mainly performs an offset filter (SAO: Sample adaptive offset) process that suppresses ringing on the image after filtering by the deblocking filter 71.
  • SAO Sample adaptive offset
  • the adaptive offset filter 72 uses a quad-tree structure in which the type of offset filter is determined for each divided region and an offset value for each divided region to filter the image after filtering by the deblocking filter 71. Apply processing.
  • the adaptive offset filter 72 supplies the filtered image to the adaptive loop filter 73.
  • the quad-tree structure and the offset value for each divided region are calculated and used by the adaptive offset filter 72.
  • the calculated quad-tree structure and the offset value for each divided region are encoded by the lossless coding unit 66 as adaptive offset parameters and transmitted to the image decoding device 80 of FIG. 10 to be described later.
  • the adaptive loop filter 73 performs adaptive loop filter (ALF: Adaptive Loop Filter) processing for each processing unit using the filter coefficient on the image after filtering by the adaptive offset filter 72.
  • ALF Adaptive Loop Filter
  • a two-dimensional Wiener filter is used as the filter.
  • a filter other than the Wiener filter may be used.
  • the adaptive loop filter 73 supplies the filter processing result to the frame memory 74.
  • the filter coefficient is an adaptive loop filter 73 for each processing unit so as to minimize the residual with the original image from the screen rearrangement buffer 61. It is calculated and used by.
  • the calculated filter coefficient is encoded by the lossless coding unit 66 as an adaptive loop filter parameter and transmitted to the image decoding device 80 of FIG. 10 described later.
  • the frame memory 74 outputs the stored reference image to the intra prediction unit 76 or the motion prediction / compensation unit 77 via the selection unit 75 at a predetermined timing.
  • the frame memory 74 supplies the reference image to the intra-prediction unit 76 via the selection unit 75. Further, for example, when intercoding is performed, the frame memory 74 supplies the reference image to the motion prediction / compensation unit 77 via the selection unit 75.
  • the selection unit 75 supplies the reference image to the intra prediction unit 76. Further, when the reference image supplied from the frame memory 74 is an image to be intercoded, the selection unit 75 supplies the reference image to the motion prediction / compensation unit 77.
  • the intra prediction unit 76 performs intra prediction (in-screen prediction) to generate a prediction image using the pixel values in the screen.
  • the intra prediction unit 76 performs intra prediction in a plurality of modes (intra prediction mode).
  • the intra prediction unit 76 generates prediction images in all intra prediction modes, evaluates each prediction image, and selects the optimum mode. When the optimum intra prediction mode is selected, the intra prediction unit 76 supplies the prediction image generated in the optimum mode to the calculation unit 63 and the calculation unit 70 via the prediction image selection unit 78.
  • the intra prediction unit 76 appropriately supplies parameters such as intra prediction mode information indicating the adopted intra prediction mode to the lossless coding unit 66.
  • the motion prediction / compensation unit 77 uses an input image supplied from the screen rearrangement buffer 61 and a reference image supplied from the frame memory 74 via the selection unit 75 for the image to be intercoded. Predict movement. Further, the motion prediction / compensation unit 77 performs motion compensation processing according to the motion vector detected by the motion prediction, and generates a prediction image (inter-prediction image information).
  • the motion prediction / compensation unit 77 performs inter-prediction processing in all candidate inter-prediction modes and generates a prediction image.
  • the motion prediction / compensation unit 77 supplies the generated predicted image to the calculation unit 63 and the calculation unit 70 via the prediction image selection unit 78. Further, the motion prediction / compensation unit 77 supplies parameters such as inter-prediction mode information indicating the adopted inter-prediction mode and motion vector information indicating the calculated motion vector to the reversible coding unit 66.
  • the SAD value is supplied from the DMVR processing unit 11 to the BDOF processing unit 12, and the SAD value is used for determining the early termination of the BDOF processing. Will be reused.
  • the prediction image selection unit 78 supplies the output of the intra prediction unit 76 to the calculation unit 63 and the calculation unit 70 in the case of an image to be intra-encoded, and the motion prediction / compensation unit 77 in the case of an image to be inter-encoded.
  • the output is supplied to the calculation unit 63 and the calculation unit 70.
  • the rate control unit 79 controls the rate of the quantization operation of the quantization unit 65 based on the compressed image stored in the storage buffer 67 so that overflow or underflow does not occur.
  • step S31 the screen rearrangement buffer 61 stores the input images and rearranges the images from the display order to the encoding order.
  • the referenced decoded image is read from the frame memory 74, and the intra-prediction unit is read through the selection unit 75. It is supplied to 76.
  • the intra prediction unit 76 intrapredicts the pixels of the block to be processed in all the candidate intra prediction modes.
  • the decoded pixel to be referred to a pixel that has not been filtered by the deblocking filter 71 is used.
  • intra-prediction is performed in all the candidate intra-prediction modes, and the cost function value is calculated for all the candidate intra-prediction modes. Then, the optimum intra prediction mode is selected based on the calculated cost function value, and the prediction image generated by the intra prediction in the optimum intra prediction mode and the cost function value thereof are supplied to the prediction image selection unit 78.
  • the referenced image is read from the frame memory 74 and supplied to the motion prediction / compensation unit 77 via the selection unit 75. Will be done.
  • the motion prediction / compensation unit 77 performs motion prediction / compensation processing.
  • the motion prediction / compensation unit 77 supplies the SAD value from the DMVR processing unit 11 to the BDOF processing unit 12 and uses the SAD value for early termination determination of the BDOF processing. By reusing it, the complexity of calculation can be reduced as compared with the conventional case.
  • motion prediction processing is performed in all candidate inter-prediction modes, cost function values are calculated for all candidate inter-prediction modes, and optimal inter-prediction is calculated based on the calculated cost function values. The mode is determined. Then, the predicted image generated by the optimum inter prediction mode and the cost function value thereof are supplied to the predicted image selection unit 78.
  • step S34 the prediction image selection unit 78 optimizes one of the optimum intra prediction mode and the optimum inter prediction mode based on each cost function value output from the intra prediction unit 76 and the motion prediction / compensation unit 77. Determine to predict mode. Then, the prediction image selection unit 78 selects the determined prediction image of the optimum prediction mode and supplies it to the calculation units 63 and 70. This predicted image is used for the calculation of steps S35 and S40 described later.
  • the selection information of this prediction image is supplied to the intra prediction unit 76 or the motion prediction / compensation unit 77.
  • the intra prediction unit 76 supplies information indicating the optimum intra prediction mode (that is, parameters related to the intra prediction) to the lossless coding unit 66.
  • the motion prediction / compensation unit 77 reversibly encodes the information indicating the optimum inter prediction mode and the information corresponding to the optimum inter prediction mode (that is, the parameters related to the motion prediction). Output to unit 66.
  • the information according to the optimum inter-prediction mode include motion vector information and reference frame information.
  • step S35 the calculation unit 63 calculates the difference between the images sorted in step S31 and the predicted image selected in step S34.
  • the predicted image is supplied to the calculation unit 63 from the motion prediction / compensation unit 77 for inter-prediction and from the intra-prediction unit 76 for intra-prediction via the prediction image selection unit 78.
  • the amount of difference data is smaller than that of the original image data. Therefore, the amount of data can be compressed as compared with the case where the image is encoded as it is.
  • step S36 the orthogonal conversion unit 64 orthogonally converts the difference information supplied from the calculation unit 63. Specifically, orthogonal transforms such as the discrete cosine transform and the Karhunen-Loève transform are performed, and the transform coefficients are output.
  • orthogonal transforms such as the discrete cosine transform and the Karhunen-Loève transform are performed, and the transform coefficients are output.
  • step S37 the quantization unit 65 quantizes the conversion coefficient.
  • the rate is controlled as described in the process of step S48 described later.
  • step S38 the inverse quantization unit 68 dequantizes the conversion coefficient quantized by the quantization unit 65 with a characteristic corresponding to the characteristic of the quantization unit 65.
  • step S39 the inverse orthogonal conversion unit 69 performs inverse orthogonal conversion with the characteristics corresponding to the characteristics of the orthogonal conversion unit 64 of the conversion coefficients inversely quantized by the inverse quantization unit 68.
  • step S40 the calculation unit 70 adds the predicted image input via the predicted image selection unit 78 to the locally decoded difference information, and the locally decoded (that is, locally decoded) image. (Image corresponding to the input to the calculation unit 63) is generated.
  • step S41 the deblocking filter 71 performs a deblocking filter process on the image output from the calculation unit 70.
  • the parameters ⁇ and Tc extended from ⁇ and Tc defined by the HEVC method are used as the threshold value for the determination regarding the deblocking filter.
  • the filtered image from the deblocking filter 71 is output to the adaptive offset filter 72.
  • each offset of the parameters ⁇ and Tc used in the deblocking filter 71 which is input by the user by operating the operation unit or the like, is supplied to the reversible coding unit 66 as a parameter of the deblocking filter.
  • step S42 the adaptive offset filter 72 performs adaptive offset filter processing.
  • the quad-tree structure in which the type of offset filter is determined for each divided area and the offset value for each divided area are used to filter the image after filtering by the deblocking filter 71. Be given.
  • the filtered image is fed to the adaptive loop filter 73.
  • the determined quad-tree structure and the offset value for each divided region are supplied to the lossless coding unit 66 as an adaptive offset parameter.
  • step S43 the adaptive loop filter 73 performs adaptive loop filter processing on the image filtered by the adaptive offset filter 72.
  • the image after filtering by the adaptive offset filter 72 is filtered for each processing unit by using the filter coefficient, and the filtering result is supplied to the frame memory 74.
  • step S44 the frame memory 74 stores the filtered image. Images not filtered by the deblocking filter 71, the adaptive offset filter 72, and the adaptive loop filter 73 are also supplied and stored in the frame memory 74 from the calculation unit 70.
  • the conversion coefficient quantized in step S37 described above is also supplied to the lossless coding unit 66.
  • the lossless coding unit 66 encodes the quantized conversion coefficient output from the quantizing unit 65 and each of the supplied parameters. That is, the difference image is losslessly coded and compressed by variable length coding, arithmetic coding, and the like.
  • the encoded parameters include deblocking filter parameters, adaptive offset filter parameters, adaptive loop filter parameters, quantization parameters, motion vector information and reference frame information, prediction mode information, and the like.
  • step S46 the storage buffer 67 stores the encoded difference image (that is, the coded stream) as a compressed image.
  • the compressed image stored in the storage buffer 67 is appropriately read out and transmitted to the decoding side via the transmission line.
  • step S47 the rate control unit 79 controls the rate of the quantization operation of the quantization unit 65 based on the compressed image stored in the storage buffer 67 so that overflow or underflow does not occur.
  • step S47 When the process of step S47 is completed, the coding process is completed.
  • FIG. 10 shows the configuration of an embodiment of an image decoding device as an image processing device to which the present disclosure is applied.
  • the image decoding device 80 shown in FIG. 10 is a decoding device corresponding to the image coding device 60 of FIG.
  • the coded stream (Encoded Data) encoded by the image coding device 60 is transmitted to the image decoding device 80 corresponding to the image coding device 60 via a predetermined transmission line and is decoded. ..
  • the image decoding device 80 includes a storage buffer 81, a reversible decoding unit 82, an inverse quantization unit 83, an inverse orthogonal conversion unit 84, an arithmetic unit 85, a deblocking filter 86, an adaptive offset filter 87, and an adaptive. It includes a loop filter 88, a screen sorting buffer 89, a frame memory 90, a selection unit 91, an intra prediction unit 92, a motion prediction / compensation unit 93, and a selection unit 94.
  • the storage buffer 81 is also a receiving unit that receives the transmitted encoded data.
  • the storage buffer 81 receives the transmitted encoded data and stores it.
  • This coded data is encoded by the image coding device 60.
  • the lossless decoding unit 82 decodes the coded data read from the storage buffer 81 at a predetermined timing by a method corresponding to the coding method of the lossless coding unit 66 of FIG.
  • the reversible decoding unit 82 supplies parameters such as information indicating the decoded intra prediction mode to the intra prediction unit 92, and supplies parameters such as information indicating the inter prediction mode and motion vector information to the motion prediction / compensation unit 93. .. Further, the reversible decoding unit 82 supplies the decoded deblocking filter parameters to the deblocking filter 86, and supplies the decoded adaptive offset parameters to the adaptive offset filter 87.
  • the inverse quantization unit 83 dequantizes the coefficient data (quantization coefficient) obtained by decoding by the reversible decoding unit 82 by a method corresponding to the quantization method of the quantization unit 65 in FIG. That is, the inverse quantization unit 83 performs the inverse quantization of the quantization coefficient by the same method as the inverse quantization unit 68 of FIG. 8 using the quantization parameters supplied from the image coding device 60.
  • the inverse quantized unit 83 supplies the inverse quantized coefficient data, that is, the orthogonal conversion coefficient to the inverse orthogonal conversion unit 84.
  • the inverse orthogonal conversion unit 84 is a method corresponding to the orthogonal conversion method of the orthogonal conversion unit 64 of FIG. 8, and the orthogonal conversion coefficient is inversely orthogonally converted to the residual data before the orthogonal conversion by the image coding apparatus 60. Obtain the corresponding decoding residual data.
  • the decoding residual data obtained by the inverse orthogonal conversion is supplied to the calculation unit 85. Further, the calculation unit 85 is supplied with a prediction image from the intra prediction unit 92 or the motion prediction / compensation unit 93 via the selection unit 94.
  • the calculation unit 85 adds the decoded residual data and the predicted image, and obtains the decoded image data corresponding to the image data before the predicted image is subtracted by the calculation unit 63 of the image coding device 60.
  • the calculation unit 85 supplies the decoded image data to the deblocking filter 86.
  • the deblocking filter 86 suppresses block distortion of the decoded image by appropriately performing deblocking filter processing on the image from the calculation unit 85, and supplies the filter processing result to the adaptive offset filter 87.
  • the deblocking filter 86 is basically configured in the same manner as the deblocking filter 71 of FIG. That is, the deblocking filter 86 has parameters ⁇ and Tc obtained based on the quantization parameters.
  • the parameters ⁇ and Tc are threshold values used for determining the deblocking filter.
  • the parameters ⁇ and Tc of the deblocking filter 86 are extended from ⁇ and Tc specified by the HEVC method.
  • Each offset of the parameters ⁇ and Tc of the deblocking filter encoded by the image coding device 60 is received by the image decoding device 80 as a parameter of the deblocking filter, decoded by the reversible decoding unit 82, and deblocking. Used by filter 86.
  • the adaptive offset filter 87 mainly performs offset filter (SAO) processing that suppresses ringing on the image after filtering by the deblocking filter 86.
  • SAO offset filter
  • the adaptive offset filter 87 uses a quad-tree structure in which the type of offset filter is determined for each divided region and an offset value for each divided region to filter the image after filtering by the deblocking filter 86. Apply processing.
  • the adaptive offset filter 87 supplies the filtered image to the adaptive loop filter 88.
  • the quad-tree structure and the offset value for each divided region are calculated by the adaptive offset filter 72 of the image coding device 60, and are encoded and sent as the adaptive offset parameter. Then, the quad-tree structure encoded by the image coding device 60 and the offset value for each divided region are received by the image decoding device 80 as adaptive offset parameters, decoded by the reversible decoding unit 82, and the adaptive offset. Used by filter 87.
  • the adaptive loop filter 88 filters the image filtered by the adaptive offset filter 87 for each processing unit using the filter coefficient, and supplies the filter processing result to the frame memory 90 and the screen sorting buffer 89. To do.
  • the filter coefficient is calculated for each LUC by the adaptive loop filter 73 of the image coding device 60, and is encoded and sent as an adaptive loop filter parameter. What has been obtained is decoded by the reversible decoding unit 82 and used.
  • the screen rearrangement buffer 89 rearranges the images, and the images (Decoded Picture (s)) are output to a display (not shown) and displayed. That is, the order of the frames rearranged for the coding order by the screen rearrangement buffer 61 of FIG. 8 is rearranged in the original display order.
  • the output of the adaptive loop filter 88 is further supplied to the frame memory 90.
  • the frame memory 90, the selection unit 91, the intra prediction unit 92, the motion prediction / compensation unit 93, and the selection unit 94 are the frame memory 74, the selection unit 75, the intra prediction unit 76, and the motion prediction / compensation unit of the image coding device 60. It corresponds to 77 and the prediction image selection unit 78, respectively.
  • the selection unit 91 reads the interprocessed image and the referenced image from the frame memory 90 and supplies the motion prediction / compensation unit 93. Further, the selection unit 91 reads the image used for the intra prediction from the frame memory 90 and supplies it to the intra prediction unit 92.
  • the intra prediction unit 92 Based on this information, the intra prediction unit 92 generates a prediction image from the reference image acquired from the frame memory 90, and supplies the generated prediction image to the selection unit 94.
  • prediction mode information (prediction mode information, motion vector information, reference frame information, flags, various parameters, etc.) obtained by decoding the header information is supplied to the motion prediction / compensation unit 93 from the reversible decoding unit 82.
  • the motion prediction / compensation unit 93 generates a prediction image from the reference image acquired from the frame memory 90 based on the information supplied from the reversible decoding unit 82, and supplies the generated prediction image to the selection unit 94. Then, in the motion prediction / compensation unit 93, as described with reference to FIG. 3 described above, the SAD value is supplied from the DMVR processing unit 11 to the BDOF processing unit 12, and the SAD value is re-determined for the early termination determination of the BDOF processing. It will be used.
  • the selection unit 94 selects the prediction image generated by the motion prediction / compensation unit 93 or the intra prediction unit 92 and supplies it to the calculation unit 85.
  • step S51 the storage buffer 81 receives the transmitted coded stream (data) and stores it.
  • step S52 the reversible decoding unit 82 decodes the coded data supplied from the storage buffer 81.
  • the I picture, P picture, and B picture encoded by the lossless coding unit 66 of FIG. 8 are decoded.
  • parameter information such as motion vector information, reference frame information, and prediction mode information (intra prediction mode or inter prediction mode) is also decoded.
  • the prediction mode information is the intra prediction mode information
  • the prediction mode information is supplied to the intra prediction unit 92.
  • the prediction mode information is the inter-prediction mode information
  • the motion vector information corresponding to the prediction mode information is supplied to the motion prediction / compensation unit 93.
  • the parameters of the deblocking filter and the adaptive offset parameters are also decoded and supplied to the deblocking filter 86 and the adaptive offset filter 87, respectively.
  • step S53 the intra prediction unit 92 or the motion prediction / compensation unit 93 performs prediction image generation processing, respectively, in response to the prediction mode information supplied from the reversible decoding unit 82.
  • the motion prediction / compensation unit 93 supplies the SAD value from the DMVR processing unit 11 to the BDOF processing unit 12 and uses the SAD value for early termination determination of the BDOF processing. By reusing it, the complexity of calculation can be reduced as compared with the conventional case.
  • the intra prediction unit 92 when the intra prediction mode information is supplied from the reversible decoding unit 82, the intra prediction unit 92 generates an intra prediction image of the intra prediction mode.
  • the motion prediction / compensation unit 93 performs the motion prediction / compensation processing in the inter-prediction mode to generate the inter-prediction image.
  • the prediction image (intra prediction image) generated by the intra prediction unit 92 or the prediction image (inter prediction image) generated by the motion prediction / compensation unit 93 is supplied to the selection unit 94.
  • step S54 the selection unit 94 selects a predicted image. That is, the prediction image generated by the intra prediction unit 92 or the prediction image generated by the motion prediction / compensation unit 93 is supplied. Therefore, the supplied predicted image is selected and supplied to the calculation unit 85, and is added to the output of the inverse orthogonal conversion unit 84 in step S57 described later.
  • step S52 The conversion coefficient decoded by the reversible decoding unit 82 in step S52 described above is also supplied to the inverse quantization unit 83.
  • step S55 the inverse quantization unit 83 dequantizes the conversion coefficient decoded by the reversible decoding unit 82 with a characteristic corresponding to the characteristic of the quantization unit 65 of FIG.
  • step S56 the inverse orthogonal conversion unit 84 converts the conversion coefficient inversely quantized by the inverse quantization unit 83 with a characteristic corresponding to the characteristic of the orthogonal conversion unit 64 in FIG. As a result, the difference information corresponding to the input of the orthogonal conversion unit 64 (output of the calculation unit 63) of FIG. 8 is decoded.
  • step S57 the calculation unit 85 adds the predicted image selected in the process of step S54 described above and input via the selection unit 94 to the difference information. This decodes the original image.
  • step S58 the deblocking filter 86 performs a deblocking filter process on the image output from the calculation unit 85.
  • the parameters ⁇ and Tc extended from ⁇ and Tc defined by the HEVC method are used as the threshold value for the determination regarding the deblocking filter.
  • the filtered image from the deblocking filter 86 is output to the adaptive offset filter 87.
  • the offsets of the parameters ⁇ and Tc of the deblocking filter supplied from the reversible decoding unit 82 are also used.
  • step S59 the adaptive offset filter 87 performs adaptive offset filter processing.
  • the filter processing is performed on the image after filtering by the deblocking filter 86 by using the quad-tree structure in which the type of the offset filter is determined for each divided area and the offset value for each divided area. Be given.
  • the filtered image is fed to the adaptive loop filter 88.
  • step S60 the adaptive loop filter 88 performs adaptive loop filter processing on the image filtered by the adaptive offset filter 87.
  • the adaptive loop filter 88 performs filter processing for each processing unit on the input image using the filter coefficient calculated for each processing unit, and supplies the filter processing result to the screen sorting buffer 89 and the frame memory 90. To do.
  • step S61 the frame memory 90 stores the filtered image.
  • step S62 the screen sorting buffer 89 sorts the images after the adaptive loop filter 88. That is, the order of the frames sorted for coding by the screen sort buffer 61 of the image coding device 60 is rearranged to the original display order. After that, the images sorted by the screen sorting buffer 89 are output to a display (not shown), and the images are displayed.
  • step S62 When the process of step S62 is completed, the decryption process is completed.
  • FIG. 12 is a block diagram showing a configuration example of an embodiment of a computer on which a program for executing the above-mentioned series of processes is installed.
  • the program can be recorded in advance on the hard disk 105 or ROM 103 as a recording medium built in the computer.
  • the program can be stored (recorded) in the removable recording medium 111 driven by the drive 109.
  • a removable recording medium 111 can be provided as so-called package software.
  • examples of the removable recording medium 111 include a flexible disk, a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto Optical) disk, a DVD (Digital Versatile Disc), a magnetic disk, and a semiconductor memory.
  • the program can be downloaded to the computer via a communication network or a broadcasting network and installed on the built-in hard disk 105. That is, for example, the program transfers wirelessly from a download site to a computer via an artificial satellite for digital satellite broadcasting, or transfers to a computer by wire via a network such as LAN (Local Area Network) or the Internet. be able to.
  • LAN Local Area Network
  • the computer includes a CPU (Central Processing Unit) 102, and an input/output interface 110 is connected to the CPU 102 via a bus 101.
  • CPU Central Processing Unit
  • the CPU 102 executes a program stored in the ROM (Read Only Memory) 103 accordingly. .. Alternatively, the CPU 102 loads the program stored in the hard disk 105 into the RAM (Random Access Memory) 104 and executes it.
  • ROM Read Only Memory
  • the CPU 102 performs processing according to the above-mentioned flowchart or processing performed according to the above-mentioned block diagram configuration. Then, the CPU 102 outputs the processing result from the output unit 106, transmits it from the communication unit 108, or records it on the hard disk 105, if necessary, via the input / output interface 110, for example.
  • the input unit 107 is composed of a keyboard, a mouse, a microphone, and the like. Further, the output unit 106 is composed of an LCD (Liquid Crystal Display), a speaker, or the like.
  • LCD Liquid Crystal Display
  • the processing performed by the computer according to the program does not necessarily have to be performed in chronological order in the order described as the flowchart. That is, the processing performed by the computer according to the program also includes processing executed in parallel or individually (for example, parallel processing or processing by an object).
  • the program may be processed by one computer (processor) or may be distributed by a plurality of computers. Further, the program may be transferred to a distant computer and executed.
  • the system means a set of a plurality of constituent elements (devices, modules (parts), etc.), and it does not matter whether or not all constituent elements are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and a device in which a plurality of modules are housed in one housing are both systems. ..
  • the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
  • the configurations described above as a plurality of devices (or processing units) may be collectively configured as one device (or processing unit).
  • a configuration other than the above may be added to the configuration of each device (or each processing unit).
  • a part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit). ..
  • this technology can have a cloud computing configuration in which one function is shared by a plurality of devices via a network and jointly processed.
  • the above-mentioned program can be executed in any device.
  • the device may have necessary functions (functional blocks, etc.) so that necessary information can be obtained.
  • each step described in the above flowchart can be executed by one device or can be shared and executed by a plurality of devices.
  • the plurality of processes included in the one step can be executed by one device or shared by a plurality of devices.
  • a plurality of processes included in one step can be executed as processes of a plurality of steps.
  • the processes described as a plurality of steps can be collectively executed as one step.
  • the processing of the steps for describing the program may be executed in chronological order according to the order described in this specification, or may be called in parallel or called. It may be executed individually at a necessary timing such as time. That is, as long as there is no contradiction, the processing of each step may be executed in an order different from the above-mentioned order. Further, the processing of the step for writing this program may be executed in parallel with the processing of another program, or may be executed in combination with the processing of another program.
  • a DMVR processing unit that has a motion vector search unit that searches for motion vectors and performs DMVR (Decoder-side Motion Vector Refinement) processing. It has a prediction unit that predicts the current prediction block using the motion vector, and also has a BDOF processing unit that performs BDOF (Bi-Directional Optical Flow) processing.
  • the SAD Sud of Absolute Difference
  • An image processing device that uses the SAD value for early termination determination to determine whether or not to terminate BDOF processing early.
  • An image processing device having a prediction unit that predicts the current prediction block using the motion vector and a BDOF processing unit that performs BDOF (Bi-Directional Optical Flow) processing
  • the DMVR processing unit supplies the SAD (Sum of Absolute Difference) value obtained when the motion vector search unit searches for the motion vector to the BDOF processing unit.
  • An image processing method including using the SAD value for an early termination determination to determine whether or not to terminate the BDOF processing early.

Abstract

The present disclosure relates to an image processing device and an image processing method which make it possible to reduce calculation complexity. This image processing device comprises: a DMVR processing unit which performs DMVR processing and which includes a motion vector search unit that searches for a motion vector; and a BDOF processing unit which performs BDOF processing and which includes a prediction unit that uses the motion vector to predict a current prediction block. An SAD value obtained when the motion vector search unit searches for a motion vector is supplied from the DMVR processing unit to the BDOF processing unit. The SAD value is used in an early termination determination for determining whether to terminate BDOF processing early. The present technology is applicable, for example, to an image encoding device and an image decoding device.

Description

画像処理装置および画像処理方法Image processing device and image processing method
 本開示は、画像処理装置および画像処理方法に関し、特に、計算の複雑さを軽減することができるようにした画像処理装置および画像処理方法に関する。 The present disclosure relates to an image processing apparatus and an image processing method, and more particularly to an image processing apparatus and an image processing method capable of reducing the complexity of calculation.
 従来、インター予測を含む画像処理において、非特許文献1に開示されているBDOF(Bi-Directional Optical Flow)処理が適用され、非特許文献2に開示されているDMVR(Decoder-side Motion Vector Refinement)処理で探索される動きベクトルが使用される。 Conventionally, BDOF (Bi-Directional Optical Flow) processing disclosed in Non-Patent Document 1 is applied to image processing including inter-prediction, and DMVR (Decoder-side Motion Vector Refinement) disclosed in Non-Patent Document 2 is applied. The motion vector searched for in the process is used.
 ところで、従来、BDOF処理においてSAD(Sum of Absolute Difference)値を計算し、SAD値を利用してBDOF処理の早期終了判定が行われているが、画像処理の全体として、計算の複雑さを軽減することが求められている。 By the way, conventionally, the SAD (Sum of Absolute Difference) value is calculated in the BDOF processing, and the early termination determination of the BDOF processing is performed using the SAD value, but the complexity of the calculation is reduced as a whole of the image processing. Is required to do.
 本開示は、このような状況に鑑みてなされたものであり、計算の複雑さを軽減することができるようにするものである。 This disclosure has been made in view of such a situation, and is intended to reduce the complexity of calculation.
 本開示の一側面の画像処理装置は、動きベクトルを探索する動きベクトル探索部を有し、DMVR処理を行うDMVR処理部と、前記動きベクトルを使用して現在の予測ブロックを予測する予測部を有し、BDOF処理を行うBDOF処理部とを備え、前記動きベクトル探索部が前記動きベクトルを探索する際に求めるSAD値を、前記DMVR処理部から前記BDOF処理部に供給し、前記BDOF処理を早期に終了させるか否かを判定する早期終了判定に前記SAD値を利用する。 The image processing device on one aspect of the present disclosure includes a motion vector search unit that searches for a motion vector, a DMVR processing unit that performs DMVR processing, and a prediction unit that predicts the current prediction block using the motion vector. It is provided with a BDOF processing unit that has and performs BDOF processing, and supplies the SAD value obtained when the motion vector search unit searches for the motion vector from the DMVR processing unit to the BDOF processing unit to perform the BDOF processing. The SAD value is used for the early termination determination to determine whether or not to terminate early.
 本開示の一側面の画像処理方法は、動きベクトルを探索する動きベクトル探索部を有し、DMVR処理を行うDMVR処理部と、前記動きベクトルを使用して現在の予測ブロックを予測する予測部を有し、BDOF処理を行うBDOF処理部とを備える画像処理装置が、前記動きベクトル探索部が前記動きベクトルを探索する際に求めるSAD値を、前記DMVR処理部から前記BDOF処理部に供給することと、前記BDOF処理を早期に終了させるか否かを判定する早期終了判定に前記SAD値を利用することとを含む。 The image processing method of one aspect of the present disclosure includes a motion vector search unit that searches for a motion vector, a DMVR processing unit that performs DMVR processing, and a prediction unit that predicts the current prediction block using the motion vector. An image processing apparatus having a BDOF processing unit that performs BDOF processing supplies the SAD value obtained when the motion vector search unit searches for the motion vector from the DMVR processing unit to the BDOF processing unit. And, the SAD value is used for the early termination determination for determining whether or not the BDOF processing is terminated early.
 本開示の一側面においては、画像処理装置は、動きベクトルを探索する動きベクトル探索部を有し、DMVR処理を行うDMVR処理部と、動きベクトルを使用して現在の予測ブロックを予測する予測部を有し、BDOF処理を行うBDOF処理部とを備える。そして、動きベクトル探索部が動きベクトルを探索する際に求めるSAD値が、DMVR処理部からBDOF処理部に供給され、BDOF処理を早期に終了させるか否かを判定する早期終了判定にSAD値が利用される。 In one aspect of the present disclosure, the image processing apparatus has a motion vector search unit that searches for a motion vector, a DMVR processing unit that performs DMVR processing, and a prediction unit that predicts a current prediction block using the motion vector. It is provided with a BDOF processing unit that performs BDOF processing. Then, the SAD value obtained when the motion vector search unit searches for the motion vector is supplied from the DMVR processing unit to the BDOF processing unit, and the SAD value is used for the early termination determination to determine whether or not the BDOF processing is terminated early. It will be used.
参照文献を示す図である。It is a figure which shows a reference document. 従来のDMVR処理部およびBDOF処理部を説明するブロック図である。It is a block diagram explaining the conventional DMVR processing part and BDOF processing part. 本技術を適用したDMVR処理部およびBDOF処理部の一実施の形態の構成例を示すブロック図である。It is a block diagram which shows the structural example of one Embodiment of the DMVR processing unit and BDOF processing unit to which this technique is applied. 従来のBDOF処理を説明するフローチャートである。It is a flowchart explaining the conventional BDOF processing. 本技術を適用したBDOF処理を説明するフローチャートである。It is a flowchart explaining BDOF processing to which this technique is applied. シミュレーションのテスト結果の概要を示す図である。It is a figure which shows the outline of the test result of the simulation. 本技術を適用したコンピュータベースのシステムの一実施の形態の構成例を示すブロック図である。It is a block diagram which shows the structural example of one Embodiment of the computer-based system to which this technique is applied. 画像符号化装置の一実施の形態の構成例を示すブロック図である。It is a block diagram which shows the structural example of one Embodiment of an image coding apparatus. 符号化処理を説明するフローチャートである。It is a flowchart explaining the coding process. 画像復号装置の一実施の形態の構成例を示すブロック図である。It is a block diagram which shows the structural example of one Embodiment of an image decoding apparatus. 復号処理を説明するフローチャートである。It is a flowchart explaining the decoding process. 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。It is a block diagram which shows the structural example of one Embodiment of the computer to which this technique is applied.
 <技術内容・技術用語をサポートする文献等>
 本明細書で開示される範囲は、実施例の内容に限定されるものではなく、出願当時において公知となっている図1に示す参照文献REF1の内容も、参照により本明細書に組み込まれる。
<Documents that support technical contents and technical terms>
The scope disclosed herein is not limited to the content of the examples, and the content of reference REF1 shown in FIG. 1, which is known at the time of filing, is also incorporated herein by reference.
 つまり、図1に示す参照文献REF1に記載されている内容もサポート要件について判断する際の根拠となる。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、発明の詳細な説明において直接的に定義されていない場合でも、本開示の範囲内であり、請求の範囲のサポート要件を満たすものとする。 In other words, the content described in reference REF1 shown in Fig. 1 is also the basis for determining support requirements. Similarly, technical terms such as Parsing, Syntax, and Semantics are also within the scope of the present disclosure, even if they are not directly defined in the detailed description of the invention. Yes, and shall meet the support requirements of the claims.
 <用語>
 本願では、以下の用語を、以下のように定義する。
<Terms>
In this application, the following terms are defined as follows.
    <ブロック>
 画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、TB(Transform Block)、TU(Transform Unit)、PB(Prediction Block)、PU(Prediction Unit)、SCU(Smallest Coding Unit)、CU(Coding Unit)、LCU(Largest Coding Unit)、CTB(Coding TreeBlock)、CTU(Coding Tree Unit)、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。
<Block>
Unless otherwise specified, a "block" (not a block indicating a processing unit) used as a partial area or a processing unit of an image (picture) indicates an arbitrary partial area in the picture, and its size, shape, and processing. The characteristics are not limited. For example, "block" includes TB (Transform Block), TU (Transform Unit), PB (Prediction Block), PU (Prediction Unit), SCU (Smallest Coding Unit), CU (Coding Unit), and LCU (Largest Coding Unit). ), CTB (Coding TreeBlock), CTU (Coding Tree Unit), conversion block, subblock, macroblock, tile, slice, etc., any partial area (processing unit) shall be included.
    <ブロックサイズの指定>
 また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
<Specify block size>
Further, when specifying the size of such a block, not only the block size may be directly specified, but also the block size may be indirectly specified. For example, the block size may be specified using the identification information that identifies the size. Further, for example, the block size may be specified by the ratio or difference with the size of the reference block (for example, LCU or SCU). For example, when transmitting information for specifying a block size as a syntax element or the like, the information for indirectly specifying the size as described above may be used as the information. By doing so, the amount of information of the information can be reduced, and the coding efficiency may be improved. Further, the designation of the block size also includes the designation of the range of the block size (for example, the designation of the range of the allowable block size).
    <情報・処理の単位>
 各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
<Unit of information / processing>
The data unit in which various information is set and the data unit targeted by various processes are arbitrary and are not limited to the above-mentioned examples. For example, these information and processing are TU (Transform Unit), TB (Transform Block), PU (Prediction Unit), PB (Prediction Block), CU (Coding Unit), LCU (Largest Coding Unit), and subblock, respectively. , Blocks, tiles, slices, pictures, sequences, or components may be set, or the data of those data units may be targeted. Of course, this data unit can be set for each information or process, and it is not necessary that the data unit of all the information or process is unified. The storage location of these information is arbitrary, and may be stored in the header, parameter set, or the like of the above-mentioned data unit. Further, it may be stored in a plurality of places.
    <制御情報>
 本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象(または適用しない対象)を示す制御情報を伝送するようにしてもよい。例えば、本技術を適用する(または、適用を許可若しくは禁止する)ブロックサイズ(上限若しくは下限、またはその両方)、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
<Control information>
The control information related to the present technology may be transmitted from the coding side to the decoding side. For example, control information (for example, enabled_flag) that controls whether or not the application of the present technology described above is permitted (or prohibited) may be transmitted. Further, for example, control information indicating an object to which the present technology is applied (or an object to which the present technology is not applied) may be transmitted. For example, control information may be transmitted that specifies the block size (upper and lower limits, or both) to which the present technology is applied (or allowed or prohibited), frames, components, layers, and the like.
    <フラグ>
 なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
<Flag>
In the present specification, the "flag" is information for identifying a plurality of states, and is not only information used for identifying two states of true (1) or false (0), but also three or more states. It also contains information that can identify the state. Therefore, the value that this "flag" can take may be, for example, 2 values of 1/0 or 3 or more values. That is, the number of bits constituting this "flag" is arbitrary, and may be 1 bit or a plurality of bits. Further, the identification information (including the flag) is assumed to include not only the identification information in the bit stream but also the difference information of the identification information with respect to a certain reference information in the bit stream. In, the "flag" and "identification information" include not only the information but also the difference information with respect to the reference information.
    <メタデータを関連付ける>
 また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
<Associate metadata>
Further, various information (metadata, etc.) regarding the coded data (bit stream) may be transmitted or recorded in any form as long as it is associated with the coded data. Here, the term "associate" means, for example, to make the other data available (linkable) when processing one data. That is, the data associated with each other may be combined as one data or may be individual data. For example, the information associated with the coded data (image) may be transmitted on a transmission path different from the coded data (image). Further, for example, the information associated with the coded data (image) may be recorded on a recording medium (or another recording area of the same recording medium) different from the coded data (image). Good. Note that this "association" may be a part of the data, not the entire data. For example, an image and information corresponding to the image may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part within the frame.
 なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。また、本明細書において、符号化とは、画像をビットストリームに変換する全体の処理だけではなく、一部の処理も含む。例えば、予測処理、直交変換、量子化、算術符号化等を包括した処理を含むだけではなく、量子化と算術符号化とを総称した処理、予測処理と量子化と算術符号化とを包括した処理、などを含む。同様に、復号とは、ビットストリームを画像に変換する全体の処理だけではなく、一部の処理も含む。例えば、逆算術復号、逆量子化、逆直交変換、予測処理等を包括した処理を含むだけではなく、逆算術復号と逆量子化とを包括した処理、逆算術復号と逆量子化と予測処理とを包括した処理、などを含む。 In the present specification, "synthesize", "multiplex", "add", "integrate", "include", "store", "insert", "insert", "insert". A term such as "" means combining a plurality of objects into one, for example, combining encoded data and metadata into one data, and means one method of "associating" described above. Further, in the present specification, the coding includes not only the whole process of converting an image into a bit stream but also a part of the process. For example, it not only includes processing that includes prediction processing, orthogonal transformation, quantization, arithmetic coding, etc., but also includes processing that collectively refers to quantization and arithmetic coding, prediction processing, quantization, and arithmetic coding. Including processing, etc. Similarly, decoding includes not only the entire process of converting a bitstream into an image, but also some processes. For example, it not only includes processing that includes inverse arithmetic decoding, inverse quantization, inverse orthogonalization, prediction processing, etc., but also processing that includes inverse arithmetic decoding and inverse quantization, inverse arithmetic decoding, inverse quantization, and prediction processing. Including processing that includes and.
 以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。 Hereinafter, specific embodiments to which the present technology is applied will be described in detail with reference to the drawings.
 <DMVR処理およびBDOF処理>
 まず、図2乃至図6を参照して、DMVR処理およびBDOF処理について説明する。
<DMVR processing and BDOF processing>
First, DMVR processing and BDOF processing will be described with reference to FIGS. 2 to 6.
 本開示では、より早期にBDOF処理を終了させる技術が導入され、BDOF処理を早期に終了させるか否かを判定する早期終了判定において、DMVRコストが用いられる。 In the present disclosure, a technique for terminating the BDOF process earlier is introduced, and the DMVR cost is used in the early termination determination for determining whether or not the BDOF process is terminated earlier.
 例えば、従来、BDOFの設計では、参照画像L0と参照画像L1との間でSAD値を使用した早期終了が既に実装されている。それに対して、DMVR処理では、BDOFと同じSAD値が計算され、動きベクトルが調整される。 For example, conventionally, in the BDOF design, early termination using the SAD value is already implemented between the reference image L0 and the reference image L1. On the other hand, in DMVR processing, the same SAD value as BDOF is calculated and the motion vector is adjusted.
 そこで、DMVR処理で計算されたSAD値を再利用する場合、シミュレーションの結果において、デコード実行時間が短縮され、BDパフォーマンスがほとんど低下しないことが示された。つまり、シミュレーションの結果において、Y,U,VコンポーネントのBDレートは、それぞれ0.02%、0.01%、-0.02%となり、ランダムアクセス構成でのエンコード時間およびデコード時間は、それぞれ100%および99%となることが示された。 Therefore, when the SAD value calculated by DMVR processing is reused, the simulation results show that the decoding execution time is shortened and the BD performance is hardly reduced. That is, in the simulation results, the BD rates of the Y, U, and V components are 0.02%, 0.01%, and -0.02%, respectively, and the encoding time and decoding time in the random access configuration are 100% and 99%, respectively. Was shown.
 図2には、DMVR処理部11およびBDOF処理部12を説明するブロック図が示されている。例えば、DMVR処理およびBDOF処理は、現在のVTM(VVC Test Model)-4.0設計の条件チェックで有効になっている場合に実行される。 FIG. 2 shows a block diagram illustrating the DMVR processing unit 11 and the BDOF processing unit 12. For example, DMVR processing and BDOF processing are executed when the condition check of the current VTM (VVCTestModel) -4.0 design is enabled.
 DMVR処理部11は、動きベクトル探索部21を有しており、動きベクトル探索部21により適切な動きベクトルMVを探索して、BDOF処理部12に供給する。 The DMVR processing unit 11 has a motion vector search unit 21, searches for an appropriate motion vector MV by the motion vector search unit 21, and supplies the motion vector MV to the BDOF processing unit 12.
 BDOF処理部12は、SAD計算部22および予測部23を有しており、DMVR処理部11から供給される動きベクトルMVを使用して、現在の予測ブロックを予測する。このとき、BDOF処理部12では、SAD計算部22によって計算される参照画像L0と参照画像L1との間のSAD値が、BDOF処理の早期終了判定に用いられる。 The BDOF processing unit 12 has a SAD calculation unit 22 and a prediction unit 23, and predicts the current prediction block using the motion vector MV supplied from the DMVR processing unit 11. At this time, in the BDOF processing unit 12, the SAD value between the reference image L0 and the reference image L1 calculated by the SAD calculation unit 22 is used for determining the early end of the BDOF processing.
 ここで、DMVR処理部11で行われる動きベクトルMVの探索において、SADは、より適切な動きベクトルMVを求めるためのコストとして計算される。このため、DMVR処理部11およびBDOF処理部12において、SADは、段階的に2回計算されていた。 Here, in the search for the motion vector MV performed by the DMVR processing unit 11, SAD is calculated as a cost for obtaining a more appropriate motion vector MV. Therefore, in the DMVR processing unit 11 and the BDOF processing unit 12, the SAD was calculated twice stepwise.
 そこで、本開示では、BDOF処理部12は、DMVR処理部11で求められたSADを再利用して、計算の複雑さを軽減することが提案される。 Therefore, in the present disclosure, it is proposed that the BDOF processing unit 12 reuses the SAD obtained by the DMVR processing unit 11 to reduce the complexity of the calculation.
 図3は、本技術を適用したDMVR処理部11およびBDOF処理部12の一実施の形態の構成例を示すブロック図である。 FIG. 3 is a block diagram showing a configuration example of an embodiment of the DMVR processing unit 11 and the BDOF processing unit 12 to which the present technology is applied.
 図3に示すように、DMVR処理部11からBDOF処理部12に動きベクトルMVが供給されるだけでなく、動きベクトル探索部21は、動きベクトルMVを探索する際に求めたSAD値をSAD計算部22に供給する。即ち、SAD計算部22は、動きベクトル探索部21から供給されたSAD値を取得することができた場合、SAD値を計算することをスキップすることができる。そして、BDOF処理部12は、DMVR処理部11からのSAD値を再利用して、BDOF処理の早期終了判定を行うことができる。 As shown in FIG. 3, not only the motion vector MV is supplied from the DMVR processing unit 11 to the BDOF processing unit 12, but also the motion vector search unit 21 calculates the SAD value obtained when searching for the motion vector MV. It is supplied to the unit 22. That is, when the SAD calculation unit 22 can acquire the SAD value supplied from the motion vector search unit 21, it can skip the calculation of the SAD value. Then, the BDOF processing unit 12 can reuse the SAD value from the DMVR processing unit 11 to determine the early termination of the BDOF processing.
 図4は、従来のBDOF処理を説明するフローチャートである。 FIG. 4 is a flowchart illustrating the conventional BDOF process.
 従来のBDOF処理では、BDOF処理部12は、ステップS11においてSAD値を計算し、ステップS12において勾配フィルタを施し、ステップS13においてオプティカルフローを検出し、ステップS14において予測を行う。 In the conventional BDOF processing, the BDOF processing unit 12 calculates the SAD value in step S11, applies a gradient filter in step S12, detects the optical flow in step S13, and makes a prediction in step S14.
 このとき、ステップS14では、BDOF処理部12は、4×4サブブロックレベルの予測を早期に終了させるためにSAD値を使用する。なお、BDOFの現在の設計では、通常の双予測とオプティカルフロー技術による予測とが選択される。そして、4×4サブブロックのSAD値が閾値よりも小さい場合、通常の双予測を使用して複雑さが軽減される。このように、4×4サブブロックのSAD値が必要となる。 At this time, in step S14, the BDOF processing unit 12 uses the SAD value in order to finish the prediction at the 4 × 4 subblock level at an early stage. In the current design of BDOF, normal bi-prediction and optical flow technology prediction are selected. And if the SAD value of the 4x4 subblock is less than the threshold, the usual bi-prediction is used to reduce complexity. As described above, the SAD value of the 4 × 4 subblock is required.
 図5は、本技術を適用したBDOF処理を説明するフローチャートである。 FIG. 5 is a flowchart illustrating BDOF processing to which the present technology is applied.
 本技術を適用したBDOF処理では、BDOF処理部12は、ステップS21においてDMVR処理部11から供給されるSAD値を取得する。そして、BDOF処理部12は、ステップS22において勾配フィルタを施し、ステップS23においてオプティカルフローを検出し、ステップS24において予測を行う。さらに、ステップS24では、BDOF処理部12は、4×4サブブロックレベルの予測を早期に終了させるか否かを判定する早期終了判定に、ステップS21で取得したSAD値を使用する。 In the BDOF processing to which the present technology is applied, the BDOF processing unit 12 acquires the SAD value supplied from the DMVR processing unit 11 in step S21. Then, the BDOF processing unit 12 applies a gradient filter in step S22, detects an optical flow in step S23, and makes a prediction in step S24. Further, in step S24, the BDOF processing unit 12 uses the SAD value acquired in step S21 for the early termination determination for determining whether or not to terminate the prediction at the 4 × 4 subblock level early.
 このとき、ステップS24では、BDOF処理部12は、BDOF処理の早期終了判定でBDOF処理を早期に終了させないと判定した場合、ブロックの分割後に行われる早期終了判定においてもBDOF処理を早期に終了させないと判定する。即ち、BDOF処理部12は、DMVR処理部11からのSAD値を使用して、16×16ブロックの予測を早期に終了させなと判定した場合、4×4サブブロックの予測も早期に終了させないと判定する。また、BDOF処理部12は、ブロックの分割後のブロックサイズが4×4である場合、BDOF処理の早期終了判定で、BDOF処理を早期に終了させないと判定する。 At this time, in step S24, if the BDOF processing unit 12 determines that the BDOF processing is not terminated early in the early termination determination of the BDOF processing, the BDOF processing is not terminated early even in the early termination determination performed after the block is divided. Is determined. That is, when the BDOF processing unit 12 uses the SAD value from the DMVR processing unit 11 to determine that the prediction of 16 × 16 blocks should not be terminated early, the prediction of 4 × 4 subblocks is not terminated early. Is determined. Further, when the block size after dividing the block is 4 × 4, the BDOF processing unit 12 determines that the BDOF processing is not terminated early in the early termination determination of the BDOF processing.
 以下では、本技術を適用したBDOF処理のパフォーマンスを確認するための実験について説明する。 The following describes an experiment to confirm the performance of BDOF processing to which this technology is applied.
 例えば、本技術を適用したBDOF処理がVTM-4.0に実装され、上記の非特許文献3に開示されているJVET共通テスト条件に従って実験が行われた。 For example, BDOF processing to which this technology was applied was implemented in VTM-4.0, and experiments were conducted according to the JVET common test conditions disclosed in Non-Patent Document 3 above.
 また、シミュレーションには、以下に示すPCクラスタと同程度のプラットフォームマシンが使用された。
 Encode
・OS: CentOS 6.10
・Compiler: g++ (GCC) 6.3.1
・CPU: Intel Core i7-7700K 4.2GHz
・SIMD: SSE42.
・Memory: 32 GB
 Decode
・OS: CentOS 6.10
・Compiler: g++ (GCC) 6.3.1
・CPU: Intel Core i5-2500K 3.3 GHz
・SIMD: SSE42
・Memory: 24 GB
In addition, a platform machine similar to the PC cluster shown below was used for the simulation.
Encode
・ OS: CentOS 6.10
-Compiler: g ++ (GCC) 6.3.1
-CPU: Intel Core i7-7700K 4.2GHz
・ SIMD: SSE42.
· Memory: 32 GB
Decode
・ OS: CentOS 6.10
-Compiler: g ++ (GCC) 6.3.1
-CPU: Intel Core i5-2500K 3.3 GHz
・ SIMD: SSE42
· Memory: 24 GB
 そして、ランタイム測定では、出力ログのユーザ時間が使用された。また、ランダムアクセスの場合とすべてのイントラの場合とで、並列エンコードが使用された。また、並列エンコードでエンコード時間を測定するために、各フレームのすべてのユーザ時間の合計が計算された。 And in the runtime measurement, the user time of the output log was used. Also, parallel encoding was used for random access and for all intras. Also, to measure the encoding time with parallel encoding, the sum of all user times for each frame was calculated.
 図6には、以上のような条件で行われたシミュレーションのテスト結果の概要が示されている。 FIG. 6 shows an outline of the test results of the simulation performed under the above conditions.
 図6に示すように、コーディング効率の影響は無視することができる。また、デコーダーランタイムの場合、CE9-2.2aおよびCE9-2.2bはCE9-2.2cよりもわずかに高速であることが示された。その理由は、CE9-2.2aおよびCE9-2.2bがスキップして早期終了領域16x16のBDOFを処理できるが、CE9-2.2cは早期終了しないためであると考えられる。 As shown in FIG. 6, the influence of coding efficiency can be ignored. Also, for the decoder runtime, CE9-2.2a and CE9-2.2b were shown to be slightly faster than CE9-2.2c. The reason may be that CE9-2.2a and CE9-2.2b can skip and process BDOF in the early termination region 16x16, but CE9-2.2c does not.
 ここで、以下のようにドラフトの仕様が変更される。 Here, the draft specifications are changed as follows.
 Xがそれぞれ0と1の場合、predFlagLX [xSbIdx] [ySbIdx]が1に等しい場合、次が適用される。
・輝度サンプルの順序付けられた2次元配列refPicLXLと、クロマサンプルの順序付けされた2次元配列refPicLXCbおよびrefPicLXCrとで構成される参照画像は、入力としてXおよびrefIdxLXを使用して、ドラフトの8.5.7.2節で指定されたプロセスを呼び出すことによって導出される。
If X is 0 and 1, respectively, and predFlagLX [xSbIdx] [ySbIdx] is equal to 1, then the following applies:
• The reference image consisting of the ordered 2D array refPicLXL of the luminance sample and the ordered 2D array refPicLXCb and refPicLXCr of the chroma sample uses X and refIdxLX as inputs and is drafted in section 8.5.7.2. Derived by calling the process specified in.
 モーションベクトルオフセットmvOffsetは、refMvLX [xSbIdx] [xSbIdx]-mvLX [xSbIdx] [ySbIdx]と等しく設定される。 The motion vector offset mvOffset is set to be equal to refMvLX [xSbIdx] [xSbIdx] -mvLX [xSbIdx] [ySbIdx].
 次の条件の1つ以上が真の場合、mvOffset [0]は0に設定される。
・xSbはxCbと等しくなく、mvOffset [0]は0より小さい
・(xSb + sbWidth)は(xCb + cbWidth)と等しくなく、mvOffset [0]は0より大きい
If one or more of the following conditions are true, mvOffset [0] is set to 0.
-XSb is not equal to xCb and mvOffset [0] is less than 0-(xSb + sbWidth) is not equal to (xCb + cbWidth) and mvOffset [0] is greater than 0
 次の条件の1つ以上が真である場合、mvOffset [1]は0に設定される。
・ySbがyCbと等しくなく、mvOffset [1]が0より小さい
・(ySb + sbHeight)は(yCb + cbHeight)と等しくなく、mvOffset [1]は0より大きい
If one or more of the following conditions are true, mvOffset [1] is set to 0.
· YSb is not equal to yCb and mvOffset [1] is less than 0 · (ySb + sbHeight) is not equal to (yCb + cbHeight) and mvOffset [1] is greater than 0
 cIdxが0に等しい場合、以下が適用される。
・配列predSamplesLXLは、ドラフトの8.5.7.3節で指定されたフラクショナルサンプル補間プロセスを、輝度位置(xCb,yCb)、コーディングサブブロック幅sbWidth、ルーマサンプルのコーディングサブブロック高さsbHeight、ルーマモーションベクトルオフセットmvOffsetで呼び出して、輝度動きベクトルrefMvLX [xSb] [xSb]、入力としての参照配列refPicLXL、bdofFlag、およびcIdxが取得される。
If cIdx is equal to 0, then the following applies:
The array predSamplesLXL uses the fractional sample interpolation process specified in section 8.5.7.3 of the draft for the luminance position (xCb, yCb), coding subblock width sbWidth, coding subblock height sbHeight for the luma sample, and luma motion vector offset mvOffset. To get the luminance motion vector refMvLX [xSb] [xSb], the reference arrays refPicLXL, bdofFlag, and cIdx as inputs.
 それ以外の場合、cIdxが1に等しい場合、以下が適用される。
・配列predSamplesLXCbは、ドラフトの8.5.7.3節で指定されたフラクショナルサンプル補間プロセスを、輝度位置(xCb,yCb)、コーディングサブブロック幅sbWidth / 2、コーディングサブブロックの高さsbHeight / 2、クロマモーションベクトルオフセットmvOffsetで呼び出してクロマモーションベクトルrefMvLX [xSb] [xSb]、入力としての参照配列refPicLXCb、bdofFlag、およびcIdxが取得される。
Otherwise, if cIdx is equal to 1, the following applies:
The array predSamplesLXCb uses the fractional sample interpolation process specified in section 8.5.7.3 of the draft for the luminance position (xCb, yCb), coding subblock width sbWidth / 2, coding subblock height sbHeight / 2, and chroma motion vector. Call with offset mvOffset to get the chroma motion vector refMvLX [xSb] [xSb], the reference arrays refPicLXCb, bdofFlag, and cIdx as inputs.
 それ以外の場合(cIdxは2に等しい)、以下が適用される。
・配列predSamplesLXCrは、ドラフトの8.5.7.3節で指定されたフラクショナルサンプル補間プロセスを、輝度位置(xCb,yCb)、コーディングサブブロック幅sbWidth / 2、コーディングサブブロックの高さsbHeight / 2、クロマモーションベクトルオフセットmvOffsetで呼び出してクロマモーションベクトルrefMvLX [xSb] [xSb]、入力としての参照配列refPicLXCr、bdofFlag、およびcIdxが取得される。
Otherwise (cIdx is equal to 2), the following applies:
The array predSamplesLXCr uses the fractional sample interpolation process specified in section 8.5.7.3 of the draft for the luminance position (xCb, yCb), coding subblock width sbWidth / 2, coding subblock height sbHeight / 2, and chroma motion vector. Called with offset mvOffset to get the chroma motion vector refMvLX [xSb] [xSb], the reference arrays refPicLXCr, bdofFlag, and cIdx as inputs.
 bdofFlagがTRUEに等しい場合、以下が適用される。
・変数shiftはMax(2,14 - BitDepthY)に設定される。
If bdofFlag is equal to TRUE, then the following applies:
-The variable shift is set to Max (2, 14 --BitDepthY).
 変数bdofBlkDiffThres、etSumDiff [etxIdx] [etyIdx]、numEtxIdx、numEtyIdxは、次の式(1)に従って導出される。
Figure JPOXMLDOC01-appb-M000001
The variables bdofBlkDiffThres, etSumDiff [etxIdx] [etyIdx], numEtxIdx, and numEtyIdx are derived according to the following equation (1).
Figure JPOXMLDOC01-appb-M000001
 xIdx = 0 ..(sbWidth >> 2)- 1およびyIdx = 0 ..(sbHeight >> 2)- 1の場合、変数bdofBlkSumDiffおよび双方向オプティカルフロー利用フラグbdofUtilizationFlag [xIdx] [yIdx]は、次の式(2)に従って導出される。
Figure JPOXMLDOC01-appb-M000002
For xIdx = 0 .. (sbWidth >> 2) -1 and yIdx = 0 .. (sbHeight >> 2) -1, the variables bdofBlkSumDiff and the bidirectional optical flow utilization flag bdofUtilizationFlag [xIdx] [yIdx] are: Derived according to equation (2).
Figure JPOXMLDOC01-appb-M000002
 予測サンプルのpredSamples配列は、以下で説明するように導出される。 The predSamples array of the predicted sample is derived as explained below.
 cIdxが0の場合、現在のルーマコーディングサブブロック内の予測サンプル、predSamples [xL + xSb] [yL + ySb]でxL = 0..sbWidth - 1およびyL = 0..sbHeight - 1で、次の通りとなる。 If cIdx is 0, the predicted samples in the current room coding subblock, predSamples [xL + xSb] [yL + ySb], xL = 0..sbWidth-1 and yL = 0..sbHeight-1 It becomes a street.
 bdofFlagがTRUEに等しい場合、ドラフトの8.5.7.4節で指定された双方向オプティカルフローサンプル予測プロセスが、nCbWがルーマコーディングサブブロックの幅sbWidthに等しく設定され、nCbHがルーマコーディングサブブロックの高さsbHeightに設定される。ここで、サンプル配列predSamplesL0LおよびpredSamplesL1L、変数predFlagL0 [xSbIdx] [ySbIdx]、predFlagL1 [xSbIdx] [ySbIdx]、refIdxL0、refIdxL1、etSumDiff [etxIdx] [etyIdx] for etxIdx = 0 .. 1、etDiffThresおよびbdofUtilizationFlag [xIdx] [yIdx] with xIdx = 0 ..(sbWidth >> 2)- 1、並びに、yIdx = 0 ..(sbHeight >> 2)- 1asが入力とされ、predSamples [xL + xSb] [yL + ySb]が出力とされる。 If bdofFlag is equal to TRUE, then in the bidirectional optical flow sample prediction process specified in section 8.5.7.4 of the draft, nCbW is set equal to the width of the luma coding subblock sbWidth and nCbH is the height of the luma coding subblock sbHeight. Is set to. Here, sample arrays predSamplesL0L and predSamplesL1L, variables predFlagL0 [xSbIdx] [ySbIdx], predFlagL1 [xSbIdx] [ySbIdx], refIdxL0, refIdxL1, etSumDiff [etxIdx] [etxIdx] [etxIdx] ] [YIdx] with xIdx = 0 .. (sbWidth >> 2) -1, and yIdx = 0 .. (sbHeight >> 2)-1as is input, predSamples [xL + xSb] [yL + ySb] Is the output.
 それ以外の場合(bdofFlagはFALSE)、ドラフトの8.5.7.5節で指定された加重サンプル予測プロセスが、輝度コーディングサブブロック幅sbWidth、輝度コーディングサブブロックの高さsbHeight、サンプル配列predSamplesL0LおよびpredSamplesL1L、並びに、変数predFlagL0で呼び出される。ここで、[xSbIdx] [ySbIdx]、predFlagL1 [xSbIdx] [ySbIdx]、refIdxL0、refIdxL1、gbiIdx、およびcIdxが入力とされ、predSamples [xL + xSb] [yL + ySb]が出力とされる。 Otherwise (bdofFlag is FALSE), the weighted sample prediction process specified in section 8.5.7.5 of the draft is the brightness coding subblock width sbWidth, the brightness coding subblock height sbHeight, the sample sequences predSamplesL0L and predSamplesL1L, and Called with the variable predFlagL0. Here, [xSbIdx] [ySbIdx], predFlagL1 [xSbIdx] [ySbIdx], refIdxL0, refIdxL1, gbiIdx, and cIdx are input, and predSamples [xL + xSb] [yL + ySb] is output.
 双方向オプティカルフロー予測プロセス Bi-directional optical flow prediction process
 このプロセスへの入力は次の通りとなる。
・現在のコーディングブロックの幅と高さを指定する2つの変数nCbWとnCbH
・2つの(nCbW + 2)x(nCbH + 2)輝度予測サンプル配列predSamplesL0およびpredSamplesL1
・予測リスト使用率フラグpredFlagL0およびpredFlagL1
・参照インデックスrefIdxL0およびrefIdxL1
・etxIdx = 0 .. numEtxIdx-1およびetyIdx = 0 .. numEtyIdx-1の早期終了領域etSumDiff [etxIdx] [etyIdx]の絶対差の合計
・早期終了リージョンetDiffThresのしきい値
・双方向オプティカルフロー使用率フラグbdofUtilizationFlag [xIdx] [yIdx] with xIdx = 0 ..(nCbW >> 2)- 1、yIdx = 0 ..(nCbH >> 2)- 1
The inputs to this process are as follows:
-Two variables nCbW and nCbH that specify the width and height of the current coding block
-Two (nCbW + 2) x (nCbH + 2) brightness prediction sample arrays predSamplesL0 and predSamplesL1
· Forecast list utilization flags predFlagL0 and predFlagL1
-Reference indexes refIdxL0 and refIdxL1
· EtxIdx = 0 .. numEtxIdx-1 and etyIdx = 0 .. numEtyIdx-1 early termination region total of absolute differences etSumDiff [etxIdx] [etyIdx] • Early termination region etDiffThres threshold • Bidirectional optical flow utilization Flags bdofUtilizationFlag [xIdx] [yIdx] with xIdx = 0 .. (nCbW >> 2) -1, yIdx = 0 .. (nCbH >> 2) -1
 このプロセスの出力は、輝度予測サンプル値の(nCbW)x(nCbH)配列pbSamplesとなる。 The output of this process is the (nCbW) x (nCbH) array pbSamples of the brightness prediction sample values.
 変数bitDepth、shift1、shift2、shift3、shift4、offset4、およびmvRefineThresは、次のように導出される。
・変数bitDepthはBitDepthYと等しく設定される
・変数shift1は、Max(2、14-bitDepth)に等しく設定される
・変数shift2は、Max(8、bitDepth - 4)に等しく設定される
・変数shift3は、Max(5、bitDepth - 7)に等しく設定される
・変数shift4はMax(3、15-bitDepth)に設定され、変数offset4は1 <<(shift4-1)に設定される
・変数mvRefineThresは、Max(2、1 <<(13-bitDepth))に等しく設定される
The variables bitDepth, shift1, shift2, shift3, shift4, offset4, and mvRefineThres are derived as follows.
-Variable bitDepth is set equal to BitDepthY-Variable shift1 is set equal to Max (2,14-bitDepth) -Variable shift2 is set equal to Max (8, bitDepth-4) -Variable shift3 , Max (5, bitDepth-7) is set equally ・ Variable shift4 is set to Max (3,15-bitDepth), variable offset4 is set to 1 << (shift4-1) ・ Variable mvRefineThres is Set equal to Max (2, 1 << (13-bitDepth))
 xIdx = 0 ..(nCbW >> 2)- 1およびyIdx = 0 ..(nCbH >> 2)- 1の場合、以下が適用される。
・変数xSbは(xIdx << 2)+ 1に設定され、ySbは(yIdx << 2)+ 1に設定される
・etSumDiff [xSbIdx >> 2] [xSbIdx >> 2]がetDiffThresより小さい場合、またはbdofUtilizationFlag [xSbIdx] [yIdx]がFALSEに等しい場合、x = xSb - 1..xSb + 2、y = ySb - 1 。ySb + 2、現在のサブブロックの予測サンプル値は、次の式(3)に従って導出される
Figure JPOXMLDOC01-appb-M000003
・それ以外の場合(etSumDiff [xSbIdx >> 2] [xSbIdx >> 2]> = etDiffThresはTRUEに等しく、bdofUtilizationFlag [xSbIdx] [yIdx]はTRUEに等しい)、現在のサブブロックの予測サンプル値は次のように導出される。
For xIdx = 0 .. (nCbW >> 2) -1 and yIdx = 0 .. (nCbH >> 2) -1, the following applies:
-The variable xSb is set to (xIdx << 2) + 1 and ySb is set to (yIdx << 2) + 1.-If etSumDiff [xSbIdx >> 2] [xSbIdx >> 2] is smaller than etDiffThres Or if bdofUtilizationFlag [xSbIdx] [yIdx] is equal to FALSE, then x = xSb ―― 1..xSb + 2, y = ySb ―― 1. ySb + 2, the predicted sample value of the current subblock is derived according to the following equation (3).
Figure JPOXMLDOC01-appb-M000003
• Otherwise (etSumDiff [xSbIdx >> 2] [xSbIdx >>2]> = etDiffThres equals TRUE, bdofUtilizationFlag [xSbIdx] [yIdx] equals TRUE), the predicted sample values for the current subblock are: It is derived as follows.
 x = xSb-1..xSb + 4、y = ySb-1..ySb + 4の場合、次の順序のステップが適用される。
1.予測サンプル配列内の対応するサンプル位置(x、y)の位置(hx、vy)は、次の式(4)に従って導出される。
Figure JPOXMLDOC01-appb-M000004
2.変数gradientHL0 [x] [y]、gradientVL0 [x] [y]、gradientHL1 [x] [y]、gradientVL1 [x] [y]は、次の式(5)に従って導出される。
Figure JPOXMLDOC01-appb-M000005
3.変数temp [x] [y]、tempH [x] [y]およびtempV [x] [y]は、次の式(6)に従って導出される。
Figure JPOXMLDOC01-appb-M000006
If x = xSb-1..xSb + 4, y = ySb-1..ySb + 4, the following steps apply.
1. 1. The position (hx, vy) of the corresponding sample position (x, y) in the predicted sample sequence is derived according to the following equation (4).
Figure JPOXMLDOC01-appb-M000004
2. 2. The variables gradientHL0 [x] [y], gradientVL0 [x] [y], gradientHL1 [x] [y], and gradientVL1 [x] [y] are derived according to the following equation (5).
Figure JPOXMLDOC01-appb-M000005
3. 3. The variables temp [x] [y], tempH [x] [y] and tempV [x] [y] are derived according to the following equation (6).
Figure JPOXMLDOC01-appb-M000006
 変数sGx2、sGy2、sGxGy、sGxdI、およびsGydIは、次の式(7)に従って導出される。
Figure JPOXMLDOC01-appb-M000007
The variables sGx2, sGy2, sGxGy, sGxdI, and sGydI are derived according to the following equation (7).
Figure JPOXMLDOC01-appb-M000007
 <コンピュータベースのシステムの構成例>
 図7は、本技術を適用したコンピュータベースのシステムの一実施の形態の構成例を示すブロック図である。
<Computer-based system configuration example>
FIG. 7 is a block diagram showing a configuration example of an embodiment of a computer-based system to which the present technology is applied.
 図7は、1または複数のコンピュータやサーバなどがネットワークを介して接続されたネットワークシステムの構成例を示すブロック図である。なお、図7の実施の形態で示されているハードウェアおよびソフトウェア環境は、本開示によるソフトウェアおよび/または方法を実装するためのプラットフォームを提供することができる一例として示されている。 FIG. 7 is a block diagram showing a configuration example of a network system in which one or more computers, servers, and the like are connected via a network. Note that the hardware and software environment shown in the embodiment of FIG. 7 is shown as an example of being able to provide a platform for implementing the software and / or method according to the present disclosure.
 図7に示すように、ネットワークシステム31は、コンピュータ32、ネットワーク33、リモートコンピュータ34、ウェブサーバ35、クラウドストレージサーバ36、およびコンピュータサーバ37を備えて構成される。ここで、本実施の形態では、図1に示される機能ブロックのうちの1または複数によって、複数のインスタンスが実行される。 As shown in FIG. 7, the network system 31 includes a computer 32, a network 33, a remote computer 34, a web server 35, a cloud storage server 36, and a computer server 37. Here, in the present embodiment, a plurality of instances are executed by one or more of the functional blocks shown in FIG.
 また、図7では、コンピュータ32の詳細な構成が図示されている。なお、コンピュータ32内に示されている機能ブロックは、例示的な機能を確立するために図示されており、このような構成に限定されるものではない。また、リモートコンピュータ34、ウェブサーバ35、クラウドストレージサーバ36、およびコンピュータサーバ37の詳細な構成は図示されていないが、これらは、コンピュータ32内に示されている機能ブロックと同様の構成が含まれている。 Further, in FIG. 7, the detailed configuration of the computer 32 is illustrated. The functional blocks shown in the computer 32 are shown for establishing exemplary functions, and are not limited to such a configuration. Further, although the detailed configurations of the remote computer 34, the web server 35, the cloud storage server 36, and the computer server 37 are not shown, they include the same configurations as the functional blocks shown in the computer 32. ing.
 コンピュータ32としては、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ネットブックコンピュータ、携帯情報端末、スマートフォン、または、ネットワーク上の他のデバイスと通信可能な他のプログラム可能な電子デバイスを用いることができる。 The computer 32 may be a personal computer, desktop computer, laptop computer, tablet computer, netbook computer, personal digital assistant, smartphone, or other programmable electronic device capable of communicating with other devices on the network. Can be done.
 そして、コンピュータ32は、バス41、プロセッサ42、メモリ43、不揮発性ストレージ44、ネットワークインタフェース46、周辺機器インタフェース47、およびディスプレイインターフェース48を備えて構成される。これらの機能の各々は、ある実施の形態では、個々の電子サブシステム(集積回路チップまたはチップと関連デバイスの組み合わせ)に実装され、または、他の実施形態では、機能のいくつかが組み合わせられて単一チップ(システムオンチップまたはSoC(System on Chip))に実装されてもよい。 The computer 32 includes a bus 41, a processor 42, a memory 43, a non-volatile storage 44, a network interface 46, a peripheral device interface 47, and a display interface 48. Each of these functions is implemented in an individual electronic subsystem (integrated circuit chip or combination of chips and related devices) in some embodiments, or in some embodiments, some of the functions are combined. It may be mounted on a single chip (system on chip or SoC (System on Chip)).
 バス41は、各種の独自仕様または業界標準の高速パラレルまたはシリアル周辺相互接続バスを採用することができる。 Bus 41 can adopt various proprietary or industry standard high-speed parallel or serial peripheral interconnection buses.
 プロセッサ42は、1または複数のシングルまたはマルチチップマイクロプロセッサとして設計および/または製造されたものを採用することができる。 The processor 42 may employ one designed and / or manufactured as one or more single or multi-chip microprocessors.
 メモリ43および不揮発性ストレージ44は、コンピュータ32による読み込みが可能なストレージ媒体である。例えば、メモリ43は、DRAM(Dynamic Random Access Memory)やSRAM(Static RAM)などのような任意の適切な揮発性ストレージデバイスを採用することができる。不揮発性ストレージ44は、フレキシブルディスク、ハードディスク、SSD(Solid State Drive)、ROM(Read Only Memory)、EPROM(Erasable and Programmable Read Only Memory)、フラッシュメモリ、コンパクトディスク(CDまたはCD-ROM)、DVD(Digital Versatile Disc)、カード型メモリ、またはスティック型メモリのうち、少なくとも1つ以上を採用することができる。 The memory 43 and the non-volatile storage 44 are storage media that can be read by the computer 32. For example, the memory 43 can employ any suitable volatile storage device such as DRAM (Dynamic Random Access Memory) or SRAM (Static RAM). The non-volatile storage 44 includes a flexible disk, a hard disk, an SSD (SolidStateDrive), a ROM (ReadOnlyMemory), an EPROM (ErasableandProgrammableReadOnlyMemory), a flash memory, a compact disk (CD or CD-ROM), and a DVD (CD or CD-ROM). At least one or more of DigitalVersatileDisc), card type memory, or stick type memory can be adopted.
 また、不揮発性ストレージ44には、プログラム45が格納されている。プログラム45は、例えば、特定のソフトウェア機能を作成、管理、および制御するために使用される機械可読命令および/またはデータの集合である。なお、メモリ43が不揮発性ストレージ44よりも非常に高速である構成では、プログラム45は、プロセッサ42により実行される前に、不揮発性ストレージ44からメモリ43に転送することができる。 In addition, the program 45 is stored in the non-volatile storage 44. Program 45 is, for example, a collection of machine-readable instructions and / or data used to create, manage, and control specific software functions. In a configuration in which the memory 43 is much faster than the non-volatile storage 44, the program 45 can be transferred from the non-volatile storage 44 to the memory 43 before being executed by the processor 42.
 コンピュータ32は、ネットワークインタフェース46を介して、ネットワーク33を介した他のコンピュータとの通信および相互作用をすることができる。ネットワーク33は、例えば、LAN(Local Area Network)、インターネットなどのWAN(Wide Area Network)、または、LANおよびWANの組み合わせで、有線、無線、または光ファイバー接続が含まれた構成を採用することができる。一般に、ネットワーク33は、2つ以上のコンピュータと関連デバイス間の通信をサポートする接続およびプロトコルの任意の組み合わせからなる。 The computer 32 can communicate and interact with other computers via the network 33 via the network interface 46. The network 33 can adopt, for example, a LAN (Local Area Network), a WAN (Wide Area Network) such as the Internet, or a combination of LAN and WAN, including a wired, wireless, or optical fiber connection. .. In general, the network 33 consists of any combination of connections and protocols that support communication between two or more computers and related devices.
 周辺機器インタフェース47は、コンピュータ32にローカルに接続され得る他のデバイスとのデータの入出力を行うことができる。例えば、周辺機器インタフェース47は、外部デバイス51への接続を提供する。外部デバイス51には、キーボード、マウス、キーパッド、タッチスクリーン、および/または、その他の適切な入力デバイスが用いられる。外部デバイス51は、例えば、サムドライブ、ポータブル光学ディスクまたは磁気ディスク、およびメモリカードなどのポータブルコンピュータ可読記憶媒体も含み得る。 The peripheral device interface 47 can input / output data to / from other devices that can be locally connected to the computer 32. For example, the peripheral interface 47 provides a connection to the external device 51. The external device 51 includes a keyboard, mouse, keypad, touch screen, and / or other suitable input device. The external device 51 may also include, for example, a thumb drive, a portable optical or magnetic disk, and a portable computer readable storage medium such as a memory card.
 本開示の実施の形態では、例えば、プログラム45を実施するために使用されるソフトウェアおよびデータは、そのようなポータブルコンピュータ可読記憶媒体に記憶されてもよい。そのような実施形態では、ソフトウェアは、不揮発性ストレージ44に、または周辺機器インタフェース47を介してメモリ43に直接ロードされてもよい。周辺機器インタフェース47は、外部デバイス51との接続に、例えば、RS-232またはUSB(Universal Serial Bus)などの業界標準を使用してもよい。 In embodiments of the present disclosure, for example, the software and data used to implement Program 45 may be stored on such a portable computer readable storage medium. In such an embodiment, the software may be loaded directly into the non-volatile storage 44 or into the memory 43 via the peripheral interface 47. Peripheral device interface 47 may use an industry standard such as RS-232 or USB (Universal Serial Bus) for connection with the external device 51.
 ディスプレイインターフェース48は、コンピュータ32をディスプレイ52に接続することができ、ディスプレイ52を使用して、コマンドラインまたはグラフィカルユーザインターフェースを、コンピュータ32のユーザに提示することができる。例えば、ディスプレイインターフェース48には、VGA(Video Graphics Array)や、DVI(Digital Visual Interface)、DisplayPort、HDMI(High-Definition Multimedia Interface)(登録商標)などの業界標準を採用することができる。 The display interface 48 can connect the computer 32 to the display 52, and the display 52 can be used to present a command line or graphical user interface to the user of the computer 32. For example, for the display interface 48, industry standards such as VGA (Video Graphics Array), DVI (Digital Visual Interface), DisplayPort, and HDMI (High-Definition Multimedia Interface) (registered trademark) can be adopted.
 <画像符号化装置の構成例>
 図8は、本開示を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
<Configuration example of image coding device>
FIG. 8 shows the configuration of an embodiment of an image coding device as an image processing device to which the present disclosure is applied.
 図8に示される画像符号化装置60は、予測処理を用いて画像データを符号化する。ここで、符号化方式としては、例えば、HEVC(High Efficiency Video Coding)方式などが用いられる。 The image coding device 60 shown in FIG. 8 encodes image data using prediction processing. Here, as the coding method, for example, a HEVC (High Efficiency Video Coding) method or the like is used.
 図8の画像符号化装置60は、画面並べ替えバッファ61、制御部62、演算部63、直交変換部64、量子化部65、可逆符号化部66、および蓄積バッファ67を有する。また、画像符号化装置60は、逆量子化部68、逆直交変換部69、演算部70、デブロッキングフィルタ71、適応オフセットフィルタ72、適応ループフィルタ73、フレームメモリ74、選択部75、イントラ予測部76、動き予測・補償部77、予測画像選択部78、およびレート制御部79を有する。 The image coding device 60 of FIG. 8 has a screen sorting buffer 61, a control unit 62, a calculation unit 63, an orthogonal conversion unit 64, a quantization unit 65, a lossless coding unit 66, and a storage buffer 67. Further, the image coding device 60 includes an inverse quantization unit 68, an inverse orthogonal conversion unit 69, an arithmetic unit 70, a deblocking filter 71, an adaptive offset filter 72, an adaptive loop filter 73, a frame memory 74, a selection unit 75, and an intra prediction unit. It has a motion prediction / compensation section 77, a prediction image selection section 78, and a rate control section 79.
 画面並べ替えバッファ61は、入力された画像データ(Picture(s))を記憶し、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)構造に応じて、符号化のためのフレームの順番に並べ替える。画面並べ替えバッファ61は、フレームの順番を並び替えた画像を、制御部62を介して、演算部63、イントラ予測部76、および動き予測・補償部77に出力する。 The screen rearrangement buffer 61 stores the input image data (Picture (s)), and the image of the frame in the stored display order is framed for coding according to the GOP (Group of Picture) structure. Sort in the order of. The screen rearrangement buffer 61 outputs an image in which the frame order is rearranged to the calculation unit 63, the intra prediction unit 76, and the motion prediction / compensation unit 77 via the control unit 62.
 制御部62は、画面並べ替えバッファ61から画像の読み出しを制御する。 The control unit 62 controls reading of an image from the screen rearrangement buffer 61.
 演算部63は、制御部62から出力された画像から、予測画像選択部78を介してイントラ予測部76若しくは動き予測・補償部77から供給される予測画像を減算し、その差分情報を直交変換部64に出力する。 The calculation unit 63 subtracts the prediction image supplied from the intra prediction unit 76 or the motion prediction / compensation unit 77 via the prediction image selection unit 78 from the image output from the control unit 62, and orthogonally converts the difference information. Output to unit 64.
 例えば、イントラ符号化が行われる画像の場合、演算部63は、制御部62から出力された画像から、イントラ予測部76から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部63は、制御部62から出力された画像から、動き予測・補償部77から供給される予測画像を減算する。 For example, in the case of an image to be intra-encoded, the calculation unit 63 subtracts the prediction image supplied from the intra prediction unit 76 from the image output from the control unit 62. Further, for example, in the case of an image to be inter-encoded, the calculation unit 63 subtracts the predicted image supplied from the motion prediction / compensation unit 77 from the image output from the control unit 62.
 直交変換部64は、演算部63から供給される差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を量子化部65に供給する。 The orthogonal transform unit 64 performs orthogonal transforms such as discrete cosine transform and Karhunen-Loève transform on the difference information supplied from the arithmetic unit 63, and supplies the conversion coefficients to the quantization unit 65.
 量子化部65は、直交変換部64が出力する変換係数を量子化する。量子化部65は、量子化された変換係数を可逆符号化部66に供給する。 The quantization unit 65 quantizes the conversion coefficient output by the orthogonal conversion unit 64. The quantized unit 65 supplies the quantized conversion coefficient to the lossless coding unit 66.
 可逆符号化部66は、その量子化された変換係数に対して、可変長符号化、算術符号化等の可逆符号化を施す。 The lossless coding unit 66 applies lossless coding such as variable length coding and arithmetic coding to the quantized conversion coefficient.
 可逆符号化部66は、イントラ予測モードを示す情報などのパラメータをイントラ予測部76から取得し、インター予測モードを示す情報や動きベクトル情報などのパラメータを動き予測・補償部77から取得する。 The lossless coding unit 66 acquires parameters such as information indicating the intra prediction mode from the intra prediction unit 76, and acquires parameters such as information indicating the inter prediction mode and motion vector information from the motion prediction / compensation unit 77.
 可逆符号化部66は、量子化された変換係数を符号化するとともに、取得した各パラメータ(シンタックス要素)を符号化し、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部66は、符号化して得られた符号化データを蓄積バッファ67に供給して蓄積させる。 The lossless coding unit 66 encodes the quantized conversion coefficient and encodes each acquired parameter (syntax element) to be a part (multiplex) of the header information of the coded data. The lossless coding unit 66 supplies the coded data obtained by coding to the storage buffer 67 and stores it.
 例えば、可逆符号化部66においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、CAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。 For example, in the lossless coding unit 66, lossless coding processing such as variable length coding or arithmetic coding is performed. Examples of variable-length coding include CAVLC (Context-Adaptive Variable Length Coding). Examples of arithmetic coding include CABAC (Context-Adaptive Binary Arithmetic Coding).
 蓄積バッファ67は、可逆符号化部66から供給された符号化ストリーム(Encoded Data)を、一時的に保持し、所定のタイミングにおいて、符号化された符号化画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。すなわち、蓄積バッファ67は、符号化ストリームを伝送する伝送部でもある。 The storage buffer 67 temporarily holds the coded stream (Encoded Data) supplied from the reversible coding unit 66, and at a predetermined timing, as a coded image, for example, not shown in the subsequent stage. Output to a recording device or transmission line. That is, the storage buffer 67 is also a transmission unit that transmits a coded stream.
 また、量子化部65において量子化された変換係数は、逆量子化部68にも供給される。逆量子化部68は、その量子化された変換係数を、量子化部65による量子化に対応する方法で逆量子化する。逆量子化部68は、得られた変換係数を、逆直交変換部69に供給する。 Further, the conversion coefficient quantized in the quantization unit 65 is also supplied to the inverse quantization unit 68. The dequantization unit 68 dequantizes the quantized conversion coefficient by a method corresponding to the quantization by the quantization unit 65. The inverse quantization unit 68 supplies the obtained conversion coefficient to the inverse orthogonal conversion unit 69.
 逆直交変換部69は、供給された変換係数を、直交変換部64による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部70に供給される。 The inverse orthogonal conversion unit 69 performs inverse orthogonal conversion of the supplied conversion coefficient by a method corresponding to the orthogonal conversion processing by the orthogonal conversion unit 64. The inverse orthogonally converted output (restored difference information) is supplied to the calculation unit 70.
 演算部70は、逆直交変換部69より供給された逆直交変換結果、すなわち、復元された差分情報に、予測画像選択部78を介してイントラ予測部76若しくは動き予測・補償部77から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。 The calculation unit 70 supplies the inverse orthogonal conversion result supplied from the inverse orthogonal conversion unit 69, that is, the restored difference information from the intra prediction unit 76 or the motion prediction / compensation unit 77 via the prediction image selection unit 78. The predicted images are added to obtain a locally decoded image (decoded image).
 例えば、差分情報が、イントラ符号化が行われる画像に対応する場合、演算部70は、その差分情報にイントラ予測部76から供給される予測画像を加算する。また、例えば、差分情報が、インター符号化が行われる画像に対応する場合、演算部70は、その差分情報に動き予測・補償部77から供給される予測画像を加算する。 For example, when the difference information corresponds to an image to be intra-encoded, the calculation unit 70 adds the predicted image supplied from the intra prediction unit 76 to the difference information. Further, for example, when the difference information corresponds to an image to be intercoded, the calculation unit 70 adds the prediction image supplied from the motion prediction / compensation unit 77 to the difference information.
 その加算結果である復号画像は、デブロッキングフィルタ71およびフレームメモリ74に供給される。 The decoded image that is the result of the addition is supplied to the deblocking filter 71 and the frame memory 74.
 デブロッキングフィルタ71は、演算部70からの画像に対して、適宜デブロッキングフィルタ処理を行うことにより復号画像のブロック歪を抑制し、そのフィルタ処理結果を適応オフセットフィルタ72に供給する。デブロッキングフィルタ71は、量子化パラメータQPを基に求められるパラメータβおよびTcを有している。パラメータβおよびTcは、デブロッキングフィルタに関する判定に用いられる閾値(パラメータ)である。 The deblocking filter 71 suppresses block distortion of the decoded image by appropriately performing deblocking filter processing on the image from the calculation unit 70, and supplies the filter processing result to the adaptive offset filter 72. The deblocking filter 71 has parameters β and Tc obtained based on the quantization parameter QP. The parameters β and Tc are threshold values (parameters) used for determining the deblocking filter.
 なお、デブロッキングフィルタ71が有するパラメータであるβおよびTcは、HEVC方式で規定されているβとTcから拡張されている。パラメータβおよびTcの各オフセットは、デブロッキングフィルタのパラメータとして、可逆符号化部66において符号化され、後述する図10の画像復号装置80に送信される。 Note that the parameters β and Tc possessed by the deblocking filter 71 are extended from β and Tc defined by the HEVC method. Each offset of the parameters β and Tc is encoded by the lossless coding unit 66 as a parameter of the deblocking filter and transmitted to the image decoding device 80 of FIG. 10 described later.
 適応オフセットフィルタ72は、デブロッキングフィルタ71によるフィルタ後の画像に対して、主にリンギングを抑制するオフセットフィルタ(SAO: Sample adaptive offset)処理を行う。 The adaptive offset filter 72 mainly performs an offset filter (SAO: Sample adaptive offset) process that suppresses ringing on the image after filtering by the deblocking filter 71.
 オフセットフィルタの種類は、バンドオフセット2種類、エッジオフセット6種類、オフセットなしの計9種類がある。適応オフセットフィルタ72は、分割領域毎にオフセットフィルタの種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて、デブロッキングフィルタ71によるフィルタ後の画像に対して、フィルタ処理を施す。適応オフセットフィルタ72は、フィルタ処理後の画像を、適応ループフィルタ73に供給する。 There are 9 types of offset filters, 2 types of band offset, 6 types of edge offset, and no offset. The adaptive offset filter 72 uses a quad-tree structure in which the type of offset filter is determined for each divided region and an offset value for each divided region to filter the image after filtering by the deblocking filter 71. Apply processing. The adaptive offset filter 72 supplies the filtered image to the adaptive loop filter 73.
 なお、画像符号化装置60において、quad-tree構造と分割領域毎のオフセット値は、適応オフセットフィルタ72により算出されて用いられる。算出されたquad-tree構造と分割領域毎のオフセット値は、適応オフセットパラメータとして、可逆符号化部66において符号化され、後述する図10の画像復号装置80に送信される。 In the image coding apparatus 60, the quad-tree structure and the offset value for each divided region are calculated and used by the adaptive offset filter 72. The calculated quad-tree structure and the offset value for each divided region are encoded by the lossless coding unit 66 as adaptive offset parameters and transmitted to the image decoding device 80 of FIG. 10 to be described later.
 適応ループフィルタ73は、適応オフセットフィルタ72によるフィルタ後の画像に対して、フィルタ係数を用いて、処理単位毎に、適応ループフィルタ(ALF : Adaptive Loop Filter)処理を行う。適応ループフィルタ73においては、フィルタとして、例えば、2次元のウィナーフィルタ(Wiener Filter)が用いられる。もちろん、ウィナーフィルタ以外のフィルタが用いられてもよい。適応ループフィルタ73は、フィルタ処理結果をフレームメモリ74に供給する。 The adaptive loop filter 73 performs adaptive loop filter (ALF: Adaptive Loop Filter) processing for each processing unit using the filter coefficient on the image after filtering by the adaptive offset filter 72. In the adaptive loop filter 73, for example, a two-dimensional Wiener filter is used as the filter. Of course, a filter other than the Wiener filter may be used. The adaptive loop filter 73 supplies the filter processing result to the frame memory 74.
 なお、図8の例においては図示しないが、画像符号化装置60において、フィルタ係数は、処理単位毎に、画面並べ替えバッファ61からの原画像との残差を最小とするよう適応ループフィルタ73により算出されて用いられる。算出されたフィルタ係数は、適応ループフィルタパラメータとして、可逆符号化部66において符号化され、後述する図10の画像復号装置80に送信される。 Although not shown in the example of FIG. 8, in the image coding apparatus 60, the filter coefficient is an adaptive loop filter 73 for each processing unit so as to minimize the residual with the original image from the screen rearrangement buffer 61. It is calculated and used by. The calculated filter coefficient is encoded by the lossless coding unit 66 as an adaptive loop filter parameter and transmitted to the image decoding device 80 of FIG. 10 described later.
 フレームメモリ74は、所定のタイミングにおいて、蓄積されている参照画像を、選択部75を介してイントラ予測部76または動き予測・補償部77に出力する。 The frame memory 74 outputs the stored reference image to the intra prediction unit 76 or the motion prediction / compensation unit 77 via the selection unit 75 at a predetermined timing.
 例えば、イントラ符号化が行われる画像の場合、フレームメモリ74は、参照画像を、選択部75を介してイントラ予測部76に供給する。また、例えば、インター符号化が行われる場合、フレームメモリ74は、参照画像を、選択部75を介して動き予測・補償部77に供給する。 For example, in the case of an image to be intra-encoded, the frame memory 74 supplies the reference image to the intra-prediction unit 76 via the selection unit 75. Further, for example, when intercoding is performed, the frame memory 74 supplies the reference image to the motion prediction / compensation unit 77 via the selection unit 75.
 選択部75は、フレームメモリ74から供給される参照画像がイントラ符号化を行う画像である場合、その参照画像をイントラ予測部76に供給する。また、選択部75は、フレームメモリ74から供給される参照画像がインター符号化を行う画像である場合、その参照画像を動き予測・補償部77に供給する。 When the reference image supplied from the frame memory 74 is an image to be intra-encoded, the selection unit 75 supplies the reference image to the intra prediction unit 76. Further, when the reference image supplied from the frame memory 74 is an image to be intercoded, the selection unit 75 supplies the reference image to the motion prediction / compensation unit 77.
 イントラ予測部76は、画面内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部76は、複数のモード(イントラ予測モード)によりイントラ予測を行う。 The intra prediction unit 76 performs intra prediction (in-screen prediction) to generate a prediction image using the pixel values in the screen. The intra prediction unit 76 performs intra prediction in a plurality of modes (intra prediction mode).
 イントラ予測部76は、全てのイントラ予測モードで予測画像を生成し、各予測画像を評価し、最適なモードを選択する。イントラ予測部76は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部78を介して演算部63や演算部70に供給する。 The intra prediction unit 76 generates prediction images in all intra prediction modes, evaluates each prediction image, and selects the optimum mode. When the optimum intra prediction mode is selected, the intra prediction unit 76 supplies the prediction image generated in the optimum mode to the calculation unit 63 and the calculation unit 70 via the prediction image selection unit 78.
 また、上述したように、イントラ予測部76は、採用したイントラ予測モードを示すイントラ予測モード情報等のパラメータを、適宜可逆符号化部66に供給する。 Further, as described above, the intra prediction unit 76 appropriately supplies parameters such as intra prediction mode information indicating the adopted intra prediction mode to the lossless coding unit 66.
 動き予測・補償部77は、インター符号化が行われる画像について、画面並べ替えバッファ61から供給される入力画像と、選択部75を介してフレームメモリ74から供給される参照画像とを用いて、動き予測を行う。また、動き予測・補償部77は、動き予測により検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。 The motion prediction / compensation unit 77 uses an input image supplied from the screen rearrangement buffer 61 and a reference image supplied from the frame memory 74 via the selection unit 75 for the image to be intercoded. Predict movement. Further, the motion prediction / compensation unit 77 performs motion compensation processing according to the motion vector detected by the motion prediction, and generates a prediction image (inter-prediction image information).
 動き予測・補償部77は、候補となる全てのインター予測モードのインター予測処理を行い、予測画像を生成する。動き予測・補償部77は、生成された予測画像を、予測画像選択部78を介して演算部63や演算部70に供給する。また、動き予測・補償部77は、採用されたインター予測モードを示すインター予測モード情報や、算出した動きベクトルを示す動きベクトル情報などのパラメータを可逆符号化部66に供給する。 The motion prediction / compensation unit 77 performs inter-prediction processing in all candidate inter-prediction modes and generates a prediction image. The motion prediction / compensation unit 77 supplies the generated predicted image to the calculation unit 63 and the calculation unit 70 via the prediction image selection unit 78. Further, the motion prediction / compensation unit 77 supplies parameters such as inter-prediction mode information indicating the adopted inter-prediction mode and motion vector information indicating the calculated motion vector to the reversible coding unit 66.
 ここで、動き予測・補償部77では、上述の図3を参照して説明したように、DMVR処理部11からBDOF処理部12にSAD値が供給され、BDOF処理の早期終了判定にSAD値が再利用される。 Here, in the motion prediction / compensation unit 77, as described with reference to FIG. 3 described above, the SAD value is supplied from the DMVR processing unit 11 to the BDOF processing unit 12, and the SAD value is used for determining the early termination of the BDOF processing. Will be reused.
 予測画像選択部78は、イントラ符号化を行う画像の場合、イントラ予測部76の出力を演算部63や演算部70に供給し、インター符号化を行う画像の場合、動き予測・補償部77の出力を演算部63や演算部70に供給する。 The prediction image selection unit 78 supplies the output of the intra prediction unit 76 to the calculation unit 63 and the calculation unit 70 in the case of an image to be intra-encoded, and the motion prediction / compensation unit 77 in the case of an image to be inter-encoded. The output is supplied to the calculation unit 63 and the calculation unit 70.
 レート制御部79は、蓄積バッファ67に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部65の量子化動作のレートを制御する。 The rate control unit 79 controls the rate of the quantization operation of the quantization unit 65 based on the compressed image stored in the storage buffer 67 so that overflow or underflow does not occur.
<画像符号化装置の動作>
 図9を参照して、以上のような画像符号化装置60により実行される符号化処理の流れについて説明する。
<Operation of image coding device>
With reference to FIG. 9, the flow of the coding process executed by the image coding apparatus 60 as described above will be described.
 ステップS31において、画面並べ替えバッファ61は、入力された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。 In step S31, the screen rearrangement buffer 61 stores the input images and rearranges the images from the display order to the encoding order.
 画面並べ替えバッファ61から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ74から読み出され、選択部75を介してイントラ予測部76に供給される。 When the image to be processed supplied from the screen rearrangement buffer 61 is an image of a block to be intra-processed, the referenced decoded image is read from the frame memory 74, and the intra-prediction unit is read through the selection unit 75. It is supplied to 76.
 これらの画像に基づいて、ステップS32において、イントラ予測部76は処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロッキングフィルタ71によりフィルタされていない画素が用いられる。 Based on these images, in step S32, the intra prediction unit 76 intrapredicts the pixels of the block to be processed in all the candidate intra prediction modes. As the decoded pixel to be referred to, a pixel that has not been filtered by the deblocking filter 71 is used.
 この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部78に供給される。 By this process, intra-prediction is performed in all the candidate intra-prediction modes, and the cost function value is calculated for all the candidate intra-prediction modes. Then, the optimum intra prediction mode is selected based on the calculated cost function value, and the prediction image generated by the intra prediction in the optimum intra prediction mode and the cost function value thereof are supplied to the prediction image selection unit 78.
 画面並べ替えバッファ61から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ74から読み出され、選択部75を介して動き予測・補償部77に供給される。これらの画像に基づいて、ステップS33において、動き予測・補償部77は、動き予測・補償処理を行う。ここで、動き予測・補償部77は、上述の図3を参照して説明したように、DMVR処理部11からBDOF処理部12にSAD値を供給してBDOF処理の早期終了判定にSAD値を再利用することで、従来よりも計算の複雑さを軽減することができる。 When the image to be processed supplied from the screen rearrangement buffer 61 is an interprocessed image, the referenced image is read from the frame memory 74 and supplied to the motion prediction / compensation unit 77 via the selection unit 75. Will be done. Based on these images, in step S33, the motion prediction / compensation unit 77 performs motion prediction / compensation processing. Here, as described with reference to FIG. 3 described above, the motion prediction / compensation unit 77 supplies the SAD value from the DMVR processing unit 11 to the BDOF processing unit 12 and uses the SAD value for early termination determination of the BDOF processing. By reusing it, the complexity of calculation can be reduced as compared with the conventional case.
 この処理により、候補となる全てのインター予測モードで動き予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出され、算出したコスト関数値に基づいて、最適インター予測モードが決定される。そして、最適インター予測モードにより生成された予測画像とそのコスト関数値が予測画像選択部78に供給される。 By this processing, motion prediction processing is performed in all candidate inter-prediction modes, cost function values are calculated for all candidate inter-prediction modes, and optimal inter-prediction is calculated based on the calculated cost function values. The mode is determined. Then, the predicted image generated by the optimum inter prediction mode and the cost function value thereof are supplied to the predicted image selection unit 78.
 ステップS34において、予測画像選択部78は、イントラ予測部76および動き予測・補償部77より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部78は、決定した最適予測モードの予測画像を選択し、演算部63,70に供給する。この予測画像は、後述するステップS35,S40の演算に利用される。 In step S34, the prediction image selection unit 78 optimizes one of the optimum intra prediction mode and the optimum inter prediction mode based on each cost function value output from the intra prediction unit 76 and the motion prediction / compensation unit 77. Determine to predict mode. Then, the prediction image selection unit 78 selects the determined prediction image of the optimum prediction mode and supplies it to the calculation units 63 and 70. This predicted image is used for the calculation of steps S35 and S40 described later.
 なお、この予測画像の選択情報は、イントラ予測部76または動き予測・補償部77に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部76は、最適イントラ予測モードを示す情報(すなわち、イントラ予測に関するパラメータ)を、可逆符号化部66に供給する。 The selection information of this prediction image is supplied to the intra prediction unit 76 or the motion prediction / compensation unit 77. When the prediction image of the optimum intra prediction mode is selected, the intra prediction unit 76 supplies information indicating the optimum intra prediction mode (that is, parameters related to the intra prediction) to the lossless coding unit 66.
 最適インター予測モードの予測画像が選択された場合、動き予測・補償部77は、最適インター予測モードを示す情報と、最適インター予測モードに応じた情報(すなわち、動き予測に関するパラメータ)を可逆符号化部66に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報や参照フレーム情報などがあげられる。 When the prediction image of the optimum inter prediction mode is selected, the motion prediction / compensation unit 77 reversibly encodes the information indicating the optimum inter prediction mode and the information corresponding to the optimum inter prediction mode (that is, the parameters related to the motion prediction). Output to unit 66. Examples of the information according to the optimum inter-prediction mode include motion vector information and reference frame information.
 ステップS35において、演算部63は、ステップS31で並び替えられた画像と、ステップS34で選択された予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部77から、イントラ予測する場合はイントラ予測部76から、それぞれ予測画像選択部78を介して演算部63に供給される。 In step S35, the calculation unit 63 calculates the difference between the images sorted in step S31 and the predicted image selected in step S34. The predicted image is supplied to the calculation unit 63 from the motion prediction / compensation unit 77 for inter-prediction and from the intra-prediction unit 76 for intra-prediction via the prediction image selection unit 78.
 差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。 The amount of difference data is smaller than that of the original image data. Therefore, the amount of data can be compressed as compared with the case where the image is encoded as it is.
 ステップS36において、直交変換部64は演算部63から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。 In step S36, the orthogonal conversion unit 64 orthogonally converts the difference information supplied from the calculation unit 63. Specifically, orthogonal transforms such as the discrete cosine transform and the Karhunen-Loève transform are performed, and the transform coefficients are output.
 ステップS37において、量子化部65は変換係数を量子化する。この量子化に際しては、後述するステップS48の処理で説明されるように、レートが制御される。 In step S37, the quantization unit 65 quantizes the conversion coefficient. In this quantization, the rate is controlled as described in the process of step S48 described later.
 以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS38において、逆量子化部68は、量子化部65により量子化された変換係数を量子化部65の特性に対応する特性で逆量子化する。ステップS39において、逆直交変換部69は、逆量子化部68により逆量子化された変換係数を直交変換部64の特性に対応する特性で逆直交変換する。 The difference information quantized as described above is locally decoded as follows. That is, in step S38, the inverse quantization unit 68 dequantizes the conversion coefficient quantized by the quantization unit 65 with a characteristic corresponding to the characteristic of the quantization unit 65. In step S39, the inverse orthogonal conversion unit 69 performs inverse orthogonal conversion with the characteristics corresponding to the characteristics of the orthogonal conversion unit 64 of the conversion coefficients inversely quantized by the inverse quantization unit 68.
 ステップS40において、演算部70は、予測画像選択部78を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された(すなわち、ローカルデコードされた)画像(演算部63への入力に対応する画像)を生成する。 In step S40, the calculation unit 70 adds the predicted image input via the predicted image selection unit 78 to the locally decoded difference information, and the locally decoded (that is, locally decoded) image. (Image corresponding to the input to the calculation unit 63) is generated.
 ステップS41においてデブロッキングフィルタ71は、演算部70より出力された画像に対して、デブロッキングフィルタ処理を行う。このとき、デブロッキングフィルタに関する判定の閾値として、HEVC方式で規定されているβとTcから拡張されたパラメータβおよびTcが用いられる。デブロッキングフィルタ71からのフィルタ後の画像は、適応オフセットフィルタ72に出力される。 In step S41, the deblocking filter 71 performs a deblocking filter process on the image output from the calculation unit 70. At this time, the parameters β and Tc extended from β and Tc defined by the HEVC method are used as the threshold value for the determination regarding the deblocking filter. The filtered image from the deblocking filter 71 is output to the adaptive offset filter 72.
 なお、ユーザにより操作部などを操作することで入力されて、デブロッキングフィルタ71で用いられたパラメータβおよびTcの各オフセットは、デブロッキングフィルタのパラメータとして、可逆符号化部66に供給される。 Note that each offset of the parameters β and Tc used in the deblocking filter 71, which is input by the user by operating the operation unit or the like, is supplied to the reversible coding unit 66 as a parameter of the deblocking filter.
 ステップS42において、適応オフセットフィルタ72は、適応オフセットフィルタ処理を行う。この処理により、分割領域毎にオフセットフィルタの種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて、デブロッキングフィルタ71によるフィルタ後の画像に対して、フィルタ処理が施される。フィルタ後の画像は、適応ループフィルタ73に供給される。 In step S42, the adaptive offset filter 72 performs adaptive offset filter processing. By this processing, the quad-tree structure in which the type of offset filter is determined for each divided area and the offset value for each divided area are used to filter the image after filtering by the deblocking filter 71. Be given. The filtered image is fed to the adaptive loop filter 73.
 なお、決定されたquad-tree構造と分割領域毎のオフセット値は、適応オフセットパラメータとして、可逆符号化部66に供給される。 The determined quad-tree structure and the offset value for each divided region are supplied to the lossless coding unit 66 as an adaptive offset parameter.
 ステップS43において、適応ループフィルタ73は、適応オフセットフィルタ72によるフィルタ後の画像に対して、適応ループフィルタ処理を行う。例えば、適応オフセットフィルタ72によるフィルタ後の画像に対して、フィルタ係数を用いて、処理単位毎に、画像に対してフィルタ処理が行われ、フィルタ処理結果が、フレームメモリ74に供給される。 In step S43, the adaptive loop filter 73 performs adaptive loop filter processing on the image filtered by the adaptive offset filter 72. For example, the image after filtering by the adaptive offset filter 72 is filtered for each processing unit by using the filter coefficient, and the filtering result is supplied to the frame memory 74.
 ステップS44においてフレームメモリ74は、フィルタリングされた画像を記憶する。なお、フレームメモリ74には、デブロッキングフィルタ71、適応オフセットフィルタ72、および適応ループフィルタ73によりフィルタされていない画像も演算部70から供給され、記憶される。 In step S44, the frame memory 74 stores the filtered image. Images not filtered by the deblocking filter 71, the adaptive offset filter 72, and the adaptive loop filter 73 are also supplied and stored in the frame memory 74 from the calculation unit 70.
 一方、上述したステップS37において量子化された変換係数は、可逆符号化部66にも供給される。ステップS45において、可逆符号化部66は、量子化部65より出力された量子化された変換係数と、供給された各パラメータを符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。ここで、符号化される各パラメータとしては、デブロッキングフィルタのパラメータ、適応オフセットフィルタのパラメータ、適応ループフィルタのパラメータ、量子化パラメータ、動きベクトル情報や参照フレーム情報、予測モード情報などがあげられる。 On the other hand, the conversion coefficient quantized in step S37 described above is also supplied to the lossless coding unit 66. In step S45, the lossless coding unit 66 encodes the quantized conversion coefficient output from the quantizing unit 65 and each of the supplied parameters. That is, the difference image is losslessly coded and compressed by variable length coding, arithmetic coding, and the like. Here, examples of the encoded parameters include deblocking filter parameters, adaptive offset filter parameters, adaptive loop filter parameters, quantization parameters, motion vector information and reference frame information, prediction mode information, and the like.
 ステップS46において蓄積バッファ67は、符号化された差分画像(すなわち、符号化ストリーム)を、圧縮画像として蓄積する。蓄積バッファ67に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。 In step S46, the storage buffer 67 stores the encoded difference image (that is, the coded stream) as a compressed image. The compressed image stored in the storage buffer 67 is appropriately read out and transmitted to the decoding side via the transmission line.
 ステップS47においてレート制御部79は、蓄積バッファ67に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部65の量子化動作のレートを制御する。 In step S47, the rate control unit 79 controls the rate of the quantization operation of the quantization unit 65 based on the compressed image stored in the storage buffer 67 so that overflow or underflow does not occur.
 ステップS47の処理が終了すると、符号化処理が終了される。 When the process of step S47 is completed, the coding process is completed.
<画像復号装置の構成例>
 図10は、本開示を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。図10に示される画像復号装置80は、図8の画像符号化装置60に対応する復号装置である。
<Configuration example of image decoding device>
FIG. 10 shows the configuration of an embodiment of an image decoding device as an image processing device to which the present disclosure is applied. The image decoding device 80 shown in FIG. 10 is a decoding device corresponding to the image coding device 60 of FIG.
 画像符号化装置60より符号化された符号化ストリーム(Encoded Data)は、所定の伝送路を介して、この画像符号化装置60に対応する画像復号装置80に伝送され、復号されるものとする。 The coded stream (Encoded Data) encoded by the image coding device 60 is transmitted to the image decoding device 80 corresponding to the image coding device 60 via a predetermined transmission line and is decoded. ..
 図10に示されるように、画像復号装置80は、蓄積バッファ81、可逆復号部82、逆量子化部83、逆直交変換部84、演算部85、デブロッキングフィルタ86、適応オフセットフィルタ87、適応ループフィルタ88、画面並べ替えバッファ89、フレームメモリ90、選択部91、イントラ予測部92、動き予測・補償部93、および選択部94を有する。 As shown in FIG. 10, the image decoding device 80 includes a storage buffer 81, a reversible decoding unit 82, an inverse quantization unit 83, an inverse orthogonal conversion unit 84, an arithmetic unit 85, a deblocking filter 86, an adaptive offset filter 87, and an adaptive. It includes a loop filter 88, a screen sorting buffer 89, a frame memory 90, a selection unit 91, an intra prediction unit 92, a motion prediction / compensation unit 93, and a selection unit 94.
 蓄積バッファ81は、伝送されてきた符号化データを受け取る受け取り部でもある。蓄積バッファ81は、伝送されてきた符号化データを受け取って、蓄積する。この符号化データは、画像符号化装置60により符号化されたものである。可逆復号部82は、蓄積バッファ81から所定のタイミングで読み出された符号化データを、図8の可逆符号化部66の符号化方式に対応する方式で復号する。 The storage buffer 81 is also a receiving unit that receives the transmitted encoded data. The storage buffer 81 receives the transmitted encoded data and stores it. This coded data is encoded by the image coding device 60. The lossless decoding unit 82 decodes the coded data read from the storage buffer 81 at a predetermined timing by a method corresponding to the coding method of the lossless coding unit 66 of FIG.
 可逆復号部82は、復号されたイントラ予測モードを示す情報などのパラメータをイントラ予測部92に供給し、インター予測モードを示す情報や動きベクトル情報などのパラメータを動き予測・補償部93に供給する。また、可逆復号部82は、復号されたデブロッキングフィルタのパラメータを、デブロッキングフィルタ86に供給し、復号された適応オフセットパラメータを、適応オフセットフィルタ87に供給する。 The reversible decoding unit 82 supplies parameters such as information indicating the decoded intra prediction mode to the intra prediction unit 92, and supplies parameters such as information indicating the inter prediction mode and motion vector information to the motion prediction / compensation unit 93. .. Further, the reversible decoding unit 82 supplies the decoded deblocking filter parameters to the deblocking filter 86, and supplies the decoded adaptive offset parameters to the adaptive offset filter 87.
 逆量子化部83は、可逆復号部82により復号されて得られた係数データ(量子化係数)を、図8の量子化部65の量子化方式に対応する方式で逆量子化する。つまり、逆量子化部83は、画像符号化装置60から供給された量子化パラメータを用いて、図8の逆量子化部68と同様の方法で量子化係数の逆量子化を行う。 The inverse quantization unit 83 dequantizes the coefficient data (quantization coefficient) obtained by decoding by the reversible decoding unit 82 by a method corresponding to the quantization method of the quantization unit 65 in FIG. That is, the inverse quantization unit 83 performs the inverse quantization of the quantization coefficient by the same method as the inverse quantization unit 68 of FIG. 8 using the quantization parameters supplied from the image coding device 60.
 逆量子化部83は、逆量子化された係数データ、つまり、直交変換係数を、逆直交変換部84に供給する。逆直交変換部84は、図8の直交変換部64の直交変換方式に対応する方式で、その直交変換係数を逆直交変換し、画像符号化装置60において直交変換される前の残差データに対応する復号残差データを得る。 The inverse quantized unit 83 supplies the inverse quantized coefficient data, that is, the orthogonal conversion coefficient to the inverse orthogonal conversion unit 84. The inverse orthogonal conversion unit 84 is a method corresponding to the orthogonal conversion method of the orthogonal conversion unit 64 of FIG. 8, and the orthogonal conversion coefficient is inversely orthogonally converted to the residual data before the orthogonal conversion by the image coding apparatus 60. Obtain the corresponding decoding residual data.
 逆直交変換されて得られた復号残差データは、演算部85に供給される。また、演算部85には、選択部94を介して、イントラ予測部92若しくは動き予測・補償部93から予測画像が供給される。 The decoding residual data obtained by the inverse orthogonal conversion is supplied to the calculation unit 85. Further, the calculation unit 85 is supplied with a prediction image from the intra prediction unit 92 or the motion prediction / compensation unit 93 via the selection unit 94.
 演算部85は、その復号残差データと予測画像とを加算し、画像符号化装置60の演算部63により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部85は、その復号画像データをデブロッキングフィルタ86に供給する。 The calculation unit 85 adds the decoded residual data and the predicted image, and obtains the decoded image data corresponding to the image data before the predicted image is subtracted by the calculation unit 63 of the image coding device 60. The calculation unit 85 supplies the decoded image data to the deblocking filter 86.
 デブロッキングフィルタ86は、演算部85からの画像に対して、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を抑制し、そのフィルタ処理結果を適応オフセットフィルタ87に供給する。デブロッキングフィルタ86は、図8のデブロッキングフィルタ71と基本的に同様に構成される。すなわち、デブロッキングフィルタ86は、量子化パラメータを基に求められるパラメータβおよびTcを有している。パラメータβおよびTcは、デブロッキングフィルタに関する判定に用いられる閾値である。 The deblocking filter 86 suppresses block distortion of the decoded image by appropriately performing deblocking filter processing on the image from the calculation unit 85, and supplies the filter processing result to the adaptive offset filter 87. The deblocking filter 86 is basically configured in the same manner as the deblocking filter 71 of FIG. That is, the deblocking filter 86 has parameters β and Tc obtained based on the quantization parameters. The parameters β and Tc are threshold values used for determining the deblocking filter.
 なお、デブロッキングフィルタ86が有するパラメータであるβおよびTcは、HEVC方式で規定されているβとTcから拡張されている。画像符号化装置60により符号化されたデブロッキングフィルタのパラメータβおよびTcの各オフセットは、デブロッキングフィルタのパラメータとして、画像復号装置80において受信されて、可逆復号部82により復号されて、デブロッキングフィルタ86により用いられる。 Note that the parameters β and Tc of the deblocking filter 86 are extended from β and Tc specified by the HEVC method. Each offset of the parameters β and Tc of the deblocking filter encoded by the image coding device 60 is received by the image decoding device 80 as a parameter of the deblocking filter, decoded by the reversible decoding unit 82, and deblocking. Used by filter 86.
 適応オフセットフィルタ87は、デブロッキングフィルタ86によるフィルタ後の画像に対して、主にリンギングを抑制するオフセットフィルタ(SAO)処理を行う。 The adaptive offset filter 87 mainly performs offset filter (SAO) processing that suppresses ringing on the image after filtering by the deblocking filter 86.
 適応オフセットフィルタ87は、分割領域毎にオフセットフィルタの種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて、デブロッキングフィルタ86によるフィルタ後の画像に対して、フィルタ処理を施す。適応オフセットフィルタ87は、フィルタ処理後の画像を、適応ループフィルタ88に供給する。 The adaptive offset filter 87 uses a quad-tree structure in which the type of offset filter is determined for each divided region and an offset value for each divided region to filter the image after filtering by the deblocking filter 86. Apply processing. The adaptive offset filter 87 supplies the filtered image to the adaptive loop filter 88.
 なお、このquad-tree構造と分割領域毎のオフセット値は、画像符号化装置60の適応オフセットフィルタ72により算出され、適応オフセットパラメータとして、符号化されて送られてきたものである。そして、画像符号化装置60により符号化されたquad-tree構造と分割領域毎のオフセット値は、適応オフセットパラメータとして、画像復号装置80において受信されて、可逆復号部82により復号されて、適応オフセットフィルタ87により用いられる。 The quad-tree structure and the offset value for each divided region are calculated by the adaptive offset filter 72 of the image coding device 60, and are encoded and sent as the adaptive offset parameter. Then, the quad-tree structure encoded by the image coding device 60 and the offset value for each divided region are received by the image decoding device 80 as adaptive offset parameters, decoded by the reversible decoding unit 82, and the adaptive offset. Used by filter 87.
 適応ループフィルタ88は、適応オフセットフィルタ87によるフィルタ後の画像に対して、フィルタ係数を用いて、処理単位毎にフィルタ処理を行い、フィルタ処理結果を、フレームメモリ90および画面並べ替えバッファ89に供給する。 The adaptive loop filter 88 filters the image filtered by the adaptive offset filter 87 for each processing unit using the filter coefficient, and supplies the filter processing result to the frame memory 90 and the screen sorting buffer 89. To do.
 なお、図10の例においては図示しないが、画像復号装置80において、フィルタ係数は、画像符号化装置60の適応ループフィルタ73によりLUC毎に算出され、適応ループフィルタパラメータとして、符号化されて送られてきたものが可逆復号部82により復号されて用いられる。 Although not shown in the example of FIG. 10, in the image decoding device 80, the filter coefficient is calculated for each LUC by the adaptive loop filter 73 of the image coding device 60, and is encoded and sent as an adaptive loop filter parameter. What has been obtained is decoded by the reversible decoding unit 82 and used.
 画面並べ替えバッファ89は、画像の並べ替えを行って、その画像(Decoded Picture(s))が図示せぬディスプレイに出力され、表示させる。すなわち、図8の画面並べ替えバッファ61により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。 The screen rearrangement buffer 89 rearranges the images, and the images (Decoded Picture (s)) are output to a display (not shown) and displayed. That is, the order of the frames rearranged for the coding order by the screen rearrangement buffer 61 of FIG. 8 is rearranged in the original display order.
 適応ループフィルタ88の出力は、さらに、フレームメモリ90に供給される。 The output of the adaptive loop filter 88 is further supplied to the frame memory 90.
 フレームメモリ90、選択部91、イントラ予測部92、動き予測・補償部93、および選択部94は、画像符号化装置60のフレームメモリ74、選択部75、イントラ予測部76、動き予測・補償部77、および予測画像選択部78にそれぞれ対応する。 The frame memory 90, the selection unit 91, the intra prediction unit 92, the motion prediction / compensation unit 93, and the selection unit 94 are the frame memory 74, the selection unit 75, the intra prediction unit 76, and the motion prediction / compensation unit of the image coding device 60. It corresponds to 77 and the prediction image selection unit 78, respectively.
 選択部91は、インター処理される画像と参照される画像をフレームメモリ90から読み出し、動き予測・補償部93に供給する。また、選択部91は、イントラ予測に用いられる画像をフレームメモリ90から読み出し、イントラ予測部92に供給する。 The selection unit 91 reads the interprocessed image and the referenced image from the frame memory 90 and supplies the motion prediction / compensation unit 93. Further, the selection unit 91 reads the image used for the intra prediction from the frame memory 90 and supplies it to the intra prediction unit 92.
 イントラ予測部92には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部82から適宜供給される。イントラ予測部92は、この情報に基づいて、フレームメモリ90から取得した参照画像から予測画像を生成し、生成した予測画像を選択部94に供給する。 Information and the like indicating the intra prediction mode obtained by decoding the header information are appropriately supplied to the intra prediction unit 92 from the reversible decoding unit 82. Based on this information, the intra prediction unit 92 generates a prediction image from the reference image acquired from the frame memory 90, and supplies the generated prediction image to the selection unit 94.
 動き予測・補償部93には、ヘッダ情報を復号して得られた情報(予測モード情報、動きベクトル情報、参照フレーム情報、フラグ、および各種パラメータ等)が可逆復号部82から供給される。 Information (prediction mode information, motion vector information, reference frame information, flags, various parameters, etc.) obtained by decoding the header information is supplied to the motion prediction / compensation unit 93 from the reversible decoding unit 82.
 動き予測・補償部93は、可逆復号部82から供給されるそれらの情報に基づいて、フレームメモリ90から取得した参照画像から予測画像を生成し、生成した予測画像を選択部94に供給する。そして、動き予測・補償部93では、上述の図3を参照して説明したように、DMVR処理部11からBDOF処理部12にSAD値が供給され、BDOF処理の早期終了判定にSAD値が再利用される。 The motion prediction / compensation unit 93 generates a prediction image from the reference image acquired from the frame memory 90 based on the information supplied from the reversible decoding unit 82, and supplies the generated prediction image to the selection unit 94. Then, in the motion prediction / compensation unit 93, as described with reference to FIG. 3 described above, the SAD value is supplied from the DMVR processing unit 11 to the BDOF processing unit 12, and the SAD value is re-determined for the early termination determination of the BDOF processing. It will be used.
 選択部94は、動き予測・補償部93またはイントラ予測部92により生成された予測画像を選択し、演算部85に供給する。 The selection unit 94 selects the prediction image generated by the motion prediction / compensation unit 93 or the intra prediction unit 92 and supplies it to the calculation unit 85.
<画像復号装置の動作>
 図11を参照して、以上のような画像復号装置80により実行される復号処理の流れの例を説明する。
<Operation of image decoding device>
An example of the flow of the decoding process executed by the image decoding apparatus 80 as described above will be described with reference to FIG.
 復号処理が開始されると、ステップS51において、蓄積バッファ81は、伝送されてきた符号化ストリーム(データ)を受け取り、蓄積する。ステップS52において、可逆復号部82は、蓄積バッファ81から供給される符号化データを復号する。図8の可逆符号化部66により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。 When the decoding process is started, in step S51, the storage buffer 81 receives the transmitted coded stream (data) and stores it. In step S52, the reversible decoding unit 82 decodes the coded data supplied from the storage buffer 81. The I picture, P picture, and B picture encoded by the lossless coding unit 66 of FIG. 8 are decoded.
 ピクチャの復号に先立ち、動きベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モード)などのパラメータの情報も復号される。 Prior to decoding the picture, parameter information such as motion vector information, reference frame information, and prediction mode information (intra prediction mode or inter prediction mode) is also decoded.
 予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部92に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報などは、動き予測・補償部93に供給される。また、デブロッキングフィルタのパラメータおよび適応オフセットパラメータも復号され、デブロッキングフィルタ86および適応オフセットフィルタ87にそれぞれ供給される。 When the prediction mode information is the intra prediction mode information, the prediction mode information is supplied to the intra prediction unit 92. When the prediction mode information is the inter-prediction mode information, the motion vector information corresponding to the prediction mode information is supplied to the motion prediction / compensation unit 93. The parameters of the deblocking filter and the adaptive offset parameters are also decoded and supplied to the deblocking filter 86 and the adaptive offset filter 87, respectively.
 ステップS53において、イントラ予測部92または動き予測・補償部93は、可逆復号部82から供給される予測モード情報に対応して、それぞれ、予測画像生成処理を行う。ここで、動き予測・補償部93は、上述の図3を参照して説明したように、DMVR処理部11からBDOF処理部12にSAD値を供給してBDOF処理の早期終了判定にSAD値を再利用することで、従来よりも計算の複雑さを軽減することができる。 In step S53, the intra prediction unit 92 or the motion prediction / compensation unit 93 performs prediction image generation processing, respectively, in response to the prediction mode information supplied from the reversible decoding unit 82. Here, as described with reference to FIG. 3 described above, the motion prediction / compensation unit 93 supplies the SAD value from the DMVR processing unit 11 to the BDOF processing unit 12 and uses the SAD value for early termination determination of the BDOF processing. By reusing it, the complexity of calculation can be reduced as compared with the conventional case.
 すなわち、可逆復号部82からイントラ予測モード情報が供給された場合、イントラ予測部92はイントラ予測モードのイントラ予測画像を生成する。可逆復号部82からインター予測モード情報が供給された場合、動き予測・補償部93は、インター予測モードの動き予測・補償処理を行い、インター予測画像を生成する。 That is, when the intra prediction mode information is supplied from the reversible decoding unit 82, the intra prediction unit 92 generates an intra prediction image of the intra prediction mode. When the inter-prediction mode information is supplied from the reversible decoding unit 82, the motion prediction / compensation unit 93 performs the motion prediction / compensation processing in the inter-prediction mode to generate the inter-prediction image.
 この処理により、イントラ予測部92により生成された予測画像(イントラ予測画像)、または動き予測・補償部93により生成された予測画像(インター予測画像)が選択部94に供給される。 By this process, the prediction image (intra prediction image) generated by the intra prediction unit 92 or the prediction image (inter prediction image) generated by the motion prediction / compensation unit 93 is supplied to the selection unit 94.
 ステップS54において、選択部94は予測画像を選択する。すなわち、イントラ予測部92により生成された予測画像、または動き予測・補償部93により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部85に供給され、後述するステップS57において逆直交変換部84の出力と加算される。 In step S54, the selection unit 94 selects a predicted image. That is, the prediction image generated by the intra prediction unit 92 or the prediction image generated by the motion prediction / compensation unit 93 is supplied. Therefore, the supplied predicted image is selected and supplied to the calculation unit 85, and is added to the output of the inverse orthogonal conversion unit 84 in step S57 described later.
 上述したステップS52において、可逆復号部82により復号された変換係数は、逆量子化部83にも供給される。ステップS55において、逆量子化部83は可逆復号部82により復号された変換係数を、図8の量子化部65の特性に対応する特性で逆量子化する。 The conversion coefficient decoded by the reversible decoding unit 82 in step S52 described above is also supplied to the inverse quantization unit 83. In step S55, the inverse quantization unit 83 dequantizes the conversion coefficient decoded by the reversible decoding unit 82 with a characteristic corresponding to the characteristic of the quantization unit 65 of FIG.
 ステップS56において逆直交変換部84は、逆量子化部83により逆量子化された変換係数を、図8の直交変換部64の特性に対応する特性で逆直交変換する。これにより図8の直交変換部64の入力(演算部63の出力)に対応する差分情報が復号されたことになる。 In step S56, the inverse orthogonal conversion unit 84 converts the conversion coefficient inversely quantized by the inverse quantization unit 83 with a characteristic corresponding to the characteristic of the orthogonal conversion unit 64 in FIG. As a result, the difference information corresponding to the input of the orthogonal conversion unit 64 (output of the calculation unit 63) of FIG. 8 is decoded.
 ステップS57において、演算部85は、上述したステップS54の処理で選択され、選択部94を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。 In step S57, the calculation unit 85 adds the predicted image selected in the process of step S54 described above and input via the selection unit 94 to the difference information. This decodes the original image.
 ステップS58においてデブロッキングフィルタ86は、演算部85より出力された画像に対して、デブロッキングフィルタ処理を行う。このとき、デブロッキングフィルタに関する判定の閾値として、HEVC方式で規定されているβとTcから拡張されたパラメータβおよびTcが用いられる。デブロッキングフィルタ86からのフィルタ後の画像は、適応オフセットフィルタ87に出力される。なお、デブロッキングフィルタ処理においては、可逆復号部82から供給されるデブロッキングフィルタのパラメータβおよびTcの各オフセットも用いられる。 In step S58, the deblocking filter 86 performs a deblocking filter process on the image output from the calculation unit 85. At this time, the parameters β and Tc extended from β and Tc defined by the HEVC method are used as the threshold value for the determination regarding the deblocking filter. The filtered image from the deblocking filter 86 is output to the adaptive offset filter 87. In the deblocking filter processing, the offsets of the parameters β and Tc of the deblocking filter supplied from the reversible decoding unit 82 are also used.
 ステップS59において、適応オフセットフィルタ87は、適応オフセットフィルタ処理を行う。この処理により、分割領域毎にオフセットフィルタの種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて、デブロッキングフィルタ86によるフィルタ後の画像に対して、フィルタ処理が施される。フィルタ後の画像は、適応ループフィルタ88に供給される。 In step S59, the adaptive offset filter 87 performs adaptive offset filter processing. By this processing, the filter processing is performed on the image after filtering by the deblocking filter 86 by using the quad-tree structure in which the type of the offset filter is determined for each divided area and the offset value for each divided area. Be given. The filtered image is fed to the adaptive loop filter 88.
 ステップS60において、適応ループフィルタ88は、適応オフセットフィルタ87によるフィルタ後の画像に対して、適応ループフィルタ処理を行う。適応ループフィルタ88は、処理単位毎に計算されたフィルタ係数を用いて、入力画像に対して、処理単位毎にフィルタ処理を行い、フィルタ処理結果を、画面並べ替えバッファ89およびフレームメモリ90に供給する。 In step S60, the adaptive loop filter 88 performs adaptive loop filter processing on the image filtered by the adaptive offset filter 87. The adaptive loop filter 88 performs filter processing for each processing unit on the input image using the filter coefficient calculated for each processing unit, and supplies the filter processing result to the screen sorting buffer 89 and the frame memory 90. To do.
 ステップS61においてフレームメモリ90は、フィルタリングされた画像を記憶する。 In step S61, the frame memory 90 stores the filtered image.
 ステップS62において、画面並べ替えバッファ89は、適応ループフィルタ88後の画像の並べ替えを行う。すなわち画像符号化装置60の画面並べ替えバッファ61により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。その後、画面並べ替えバッファ89で並べ替えられた画像が図示せぬディスプレイに出力され、画像が表示される。 In step S62, the screen sorting buffer 89 sorts the images after the adaptive loop filter 88. That is, the order of the frames sorted for coding by the screen sort buffer 61 of the image coding device 60 is rearranged to the original display order. After that, the images sorted by the screen sorting buffer 89 are output to a display (not shown), and the images are displayed.
 ステップS62の処理が終了すると、復号処理が終了される。 When the process of step S62 is completed, the decryption process is completed.
 <コンピュータの構成例>
 次に、上述した一連の処理(画像処理方法)は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
<Computer configuration example>
Next, the series of processes (image processing method) described above can be performed by hardware or software. When a series of processes is performed by software, the programs constituting the software are installed on a general-purpose computer or the like.
 図12は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。 FIG. 12 is a block diagram showing a configuration example of an embodiment of a computer on which a program for executing the above-mentioned series of processes is installed.
 プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。 The program can be recorded in advance on the hard disk 105 or ROM 103 as a recording medium built in the computer.
 あるいはまた、プログラムは、ドライブ109によって駆動されるリムーバブル記録媒体111に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウェアとして提供することができる。ここで、リムーバブル記録媒体111としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。 Alternatively, the program can be stored (recorded) in the removable recording medium 111 driven by the drive 109. Such a removable recording medium 111 can be provided as so-called package software. Here, examples of the removable recording medium 111 include a flexible disk, a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto Optical) disk, a DVD (Digital Versatile Disc), a magnetic disk, and a semiconductor memory.
 なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク105にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。 In addition to installing the program on the computer from the removable recording medium 111 as described above, the program can be downloaded to the computer via a communication network or a broadcasting network and installed on the built-in hard disk 105. That is, for example, the program transfers wirelessly from a download site to a computer via an artificial satellite for digital satellite broadcasting, or transfers to a computer by wire via a network such as LAN (Local Area Network) or the Internet. be able to.
 コンピュータは、CPU(Central Processing Unit)102を内蔵しており、CPU102には、バス101を介して、入出力インタフェース110が接続されている。 The computer includes a CPU (Central Processing Unit) 102, and an input/output interface 110 is connected to the CPU 102 via a bus 101.
 CPU102は、入出力インタフェース110を介して、ユーザによって、入力部107が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、CPU102は、ハードディスク105に格納されたプログラムを、RAM(Random Access Memory)104にロードして実行する。 When a command is input by the user by operating the input unit 107 or the like via the input / output interface 110, the CPU 102 executes a program stored in the ROM (Read Only Memory) 103 accordingly. .. Alternatively, the CPU 102 loads the program stored in the hard disk 105 into the RAM (Random Access Memory) 104 and executes it.
 これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。 As a result, the CPU 102 performs processing according to the above-mentioned flowchart or processing performed according to the above-mentioned block diagram configuration. Then, the CPU 102 outputs the processing result from the output unit 106, transmits it from the communication unit 108, or records it on the hard disk 105, if necessary, via the input / output interface 110, for example.
 なお、入力部107は、キーボードや、マウス、マイク等で構成される。また、出力部106は、LCD(Liquid Crystal Display)やスピーカ等で構成される。 The input unit 107 is composed of a keyboard, a mouse, a microphone, and the like. Further, the output unit 106 is composed of an LCD (Liquid Crystal Display), a speaker, or the like.
 ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。 Here, in the present specification, the processing performed by the computer according to the program does not necessarily have to be performed in chronological order in the order described as the flowchart. That is, the processing performed by the computer according to the program also includes processing executed in parallel or individually (for example, parallel processing or processing by an object).
 また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。 Further, the program may be processed by one computer (processor) or may be distributed by a plurality of computers. Further, the program may be transferred to a distant computer and executed.
 さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。 Furthermore, in the present specification, the system means a set of a plurality of constituent elements (devices, modules (parts), etc.), and it does not matter whether or not all constituent elements are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and a device in which a plurality of modules are housed in one housing are both systems. ..
 また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。 Further, for example, the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units). On the contrary, the configurations described above as a plurality of devices (or processing units) may be collectively configured as one device (or processing unit). Further, of course, a configuration other than the above may be added to the configuration of each device (or each processing unit). Further, if the configuration and operation of the entire system are substantially the same, a part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit). ..
 また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。 Further, for example, this technology can have a cloud computing configuration in which one function is shared by a plurality of devices via a network and jointly processed.
 また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。 Further, for example, the above-mentioned program can be executed in any device. In that case, the device may have necessary functions (functional blocks, etc.) so that necessary information can be obtained.
 また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。 Further, for example, each step described in the above flowchart can be executed by one device or can be shared and executed by a plurality of devices. Further, when a plurality of processes are included in one step, the plurality of processes included in the one step can be executed by one device or shared by a plurality of devices. In other words, a plurality of processes included in one step can be executed as processes of a plurality of steps. On the contrary, the processes described as a plurality of steps can be collectively executed as one step.
 なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。 In the program executed by the computer, the processing of the steps for describing the program may be executed in chronological order according to the order described in this specification, or may be called in parallel or called. It may be executed individually at a necessary timing such as time. That is, as long as there is no contradiction, the processing of each step may be executed in an order different from the above-mentioned order. Further, the processing of the step for writing this program may be executed in parallel with the processing of another program, or may be executed in combination with the processing of another program.
 なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。 It should be noted that the present techniques described in the present specification can be independently implemented independently as long as there is no contradiction. Of course, any plurality of the present technologies can be used in combination. For example, some or all of the techniques described in any of the embodiments may be combined with some or all of the techniques described in other embodiments. It is also possible to carry out a part or all of any of the above-mentioned techniques in combination with other techniques not described above.
 <構成の組み合わせ例>
 なお、本技術は以下のような構成も取ることができる。
(1)
 動きベクトルを探索する動きベクトル探索部を有し、DMVR(Decoder-side Motion Vector Refinement)処理を行うDMVR処理部と、
 前記動きベクトルを使用して現在の予測ブロックを予測する予測部を有し、BDOF(Bi-Directional Optical Flow)処理を行うBDOF処理部と
 を備え、
 前記動きベクトル探索部が前記動きベクトルを探索する際に求めるSAD(Sum of Absolute Difference)値を、前記DMVR処理部から前記BDOF処理部に供給し、
 前記BDOF処理を早期に終了させるか否かを判定する早期終了判定に前記SAD値を利用する
 画像処理装置。
(2)
 前記早期終了判定で前記BDOF処理を早期に終了させないと判定された場合、ブロックの分割後に行われる前記早期終了判定においても前記BDOF処理を早期に終了させないと判定される
 上記(1)に記載の画像処理装置。
(3)
 前記ブロックの分割後のブロックサイズが4×4である場合、前記早期終了判定で前記BDOF処理を早期に終了させないと判定される
 上記(2)に記載の画像処理装置。
(4)
 動きベクトルを探索する動きベクトル探索部を有し、DMVR(Decoder-side Motion Vector Refinement)処理を行うDMVR処理部と、
 前記動きベクトルを使用して現在の予測ブロックを予測する予測部を有し、BDOF(Bi-Directional Optical Flow)処理を行うBDOF処理部と
 を備える画像処理装置が、
 前記動きベクトル探索部が前記動きベクトルを探索する際に求めるSAD(Sum of Absolute Difference)値を、前記DMVR処理部から前記BDOF処理部に供給することと、
 前記BDOF処理を早期に終了させるか否かを判定する早期終了判定に前記SAD値を利用することと
 を含む画像処理方法。
<Example of configuration combination>
The present technology can also have the following configurations.
(1)
A DMVR processing unit that has a motion vector search unit that searches for motion vectors and performs DMVR (Decoder-side Motion Vector Refinement) processing.
It has a prediction unit that predicts the current prediction block using the motion vector, and also has a BDOF processing unit that performs BDOF (Bi-Directional Optical Flow) processing.
The SAD (Sum of Absolute Difference) value obtained by the motion vector search unit when searching for the motion vector is supplied from the DMVR processing unit to the BDOF processing unit.
An image processing device that uses the SAD value for early termination determination to determine whether or not to terminate BDOF processing early.
(2)
The above (1), wherein when it is determined that the BDOF process is not terminated early in the early termination determination, it is determined that the BDOF process is not terminated early even in the early termination determination performed after the block is divided. Image processing device.
(3)
The image processing apparatus according to (2) above, wherein when the block size after division of the block is 4 × 4, it is determined by the early termination determination that the BDOF processing is not terminated early.
(4)
A DMVR processing unit that has a motion vector search unit that searches for motion vectors and performs DMVR (Decoder-side Motion Vector Refinement) processing.
An image processing device having a prediction unit that predicts the current prediction block using the motion vector and a BDOF processing unit that performs BDOF (Bi-Directional Optical Flow) processing
The DMVR processing unit supplies the SAD (Sum of Absolute Difference) value obtained when the motion vector search unit searches for the motion vector to the BDOF processing unit.
An image processing method including using the SAD value for an early termination determination to determine whether or not to terminate the BDOF processing early.
 なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。 Note that the present embodiment is not limited to the above-described embodiment, and various changes can be made without departing from the gist of the present disclosure. Further, the effects described in the present specification are merely examples and are not limited, and other effects may be obtained.
 11 DMVR処理部, 12 BDOF処理部, 21 動きベクトル探索部, 22 SAD計算部, 23 予測部 11 DMVR processing unit, 12 BDOF processing unit, 21 motion vector search unit, 22 SAD calculation unit, 23 prediction unit

Claims (4)

  1.  動きベクトルを探索する動きベクトル探索部を有し、DMVR(Decoder-side Motion Vector Refinement)処理を行うDMVR処理部と、
     前記動きベクトルを使用して現在の予測ブロックを予測する予測部を有し、BDOF(Bi-Directional Optical Flow)処理を行うBDOF処理部と
     を備え、
     前記動きベクトル探索部が前記動きベクトルを探索する際に求めるSAD(Sum of Absolute Difference)値を、前記DMVR処理部から前記BDOF処理部に供給し、
     前記BDOF処理を早期に終了させるか否かを判定する早期終了判定に前記SAD値を利用する
     画像処理装置。
    A DMVR processing unit that has a motion vector search unit that searches for motion vectors and performs DMVR (Decoder-side Motion Vector Refinement) processing.
    It has a prediction unit that predicts the current prediction block using the motion vector, and also has a BDOF processing unit that performs BDOF (Bi-Directional Optical Flow) processing.
    The SAD (Sum of Absolute Difference) value obtained by the motion vector search unit when searching for the motion vector is supplied from the DMVR processing unit to the BDOF processing unit.
    An image processing device that uses the SAD value for early termination determination to determine whether or not to terminate BDOF processing early.
  2.  前記早期終了判定で前記BDOF処理を早期に終了させないと判定された場合、ブロックの分割後に行われる前記早期終了判定においても前記BDOF処理を早期に終了させないと判定される
     請求項1に記載の画像処理装置。
    The image according to claim 1, wherein if it is determined in the early termination determination that the BDOF processing is not terminated early, it is determined that the BDOF processing is not terminated early even in the early termination determination performed after the block is divided. Processing equipment.
  3.  前記ブロックの分割後のブロックサイズが4×4である場合、前記早期終了判定で前記BDOF処理を早期に終了させないと判定される
     請求項2に記載の画像処理装置。
    The image processing apparatus according to claim 2, wherein when the block size after division of the block is 4 × 4, it is determined by the early termination determination that the BDOF processing is not terminated early.
  4.  動きベクトルを探索する動きベクトル探索部を有し、DMVR(Decoder-side Motion Vector Refinement)処理を行うDMVR処理部と、
     前記動きベクトルを使用して現在の予測ブロックを予測する予測部を有し、BDOF(Bi-Directional Optical Flow)処理を行うBDOF処理部と
     を備える画像処理装置が、
     前記動きベクトル探索部が前記動きベクトルを探索する際に求めるSAD(Sum of Absolute Difference)値を、前記DMVR処理部から前記BDOF処理部に供給することと、
     前記BDOF処理を早期に終了させるか否かを判定する早期終了判定に前記SAD値を利用することと
     を含む画像処理方法。
    A DMVR processing unit that has a motion vector search unit that searches for motion vectors and performs DMVR (Decoder-side Motion Vector Refinement) processing.
    An image processing device having a prediction unit that predicts the current prediction block using the motion vector and a BDOF processing unit that performs BDOF (Bi-Directional Optical Flow) processing
    The DMVR processing unit supplies the SAD (Sum of Absolute Difference) value obtained when the motion vector search unit searches for the motion vector to the BDOF processing unit.
    An image processing method including using the SAD value for an early termination determination to determine whether or not to terminate the BDOF processing early.
PCT/JP2020/011206 2019-03-14 2020-03-13 Image processing device, and image processing method WO2020184715A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962818513P 2019-03-14 2019-03-14
US62/818,513 2019-03-14

Publications (1)

Publication Number Publication Date
WO2020184715A1 true WO2020184715A1 (en) 2020-09-17

Family

ID=72427029

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/011206 WO2020184715A1 (en) 2019-03-14 2020-03-13 Image processing device, and image processing method

Country Status (1)

Country Link
WO (1) WO2020184715A1 (en)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHEN, CHINGYEH ET AL.: "CE9-related: Simplification of cascading DMVR and BDOF process", JOINT VIDEO EXPERTS TEAM (JVET) , 13 MARCH 2019 , [JVET-N0097-VL] (VERSION 1, 13 March 2019 (2019-03-13), XP030202822 *
CHUJOH, TAKESHI ET AL.: "CE9-related: Early termination for BDOF", JOINT VIDEO EXPERTS TEAM (JVET), 12 MARCH 2019 , [JVET-N0148-VL] (VERSION 1, 12 March 2019 (2019-03-12), XP030202656 *
UNNO, KYOHEI ET AL.: "CE9-related: Alternative method of SAD based early termination for BDOF", JOINT VIDEO EXPERTS TEAM (JVET), 12 MARCH 2019 , [JVET-N0158] (VERSION 1, 12 March 2019 (2019-03-12), XP030202665 *

Similar Documents

Publication Publication Date Title
JP7303322B2 (en) Encoders, decoders and corresponding methods for intra prediction
KR20210126771A (en) Encoders, decoders and corresponding methods related to intra prediction mode
JP2022517081A (en) Deblocking filter for subpartition boundaries caused by intra-subpartition coding tools
JPWO2020175145A1 (en) Image processing device and image processing method
EP3989578B1 (en) Image processing device, and image processing method
KR20210087088A (en) Method of efficient signaling of CBF flags
WO2020184715A1 (en) Image processing device, and image processing method
WO2021060262A1 (en) Image processing device and image processing method
EP4054193A1 (en) Image processing device and image processing method
WO2021054437A1 (en) Image processing device and image processing method
WO2020262370A1 (en) Image processing device and image processing method
WO2021054438A1 (en) Image processing device and image processing method
WO2021125316A1 (en) Image processing device and image processing method
WO2020255940A1 (en) Image processing device and image processing method
WO2021060484A1 (en) Image processing device and image processing method
WO2023127940A1 (en) Image processing device and image processing method

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20769873

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP