WO2023200101A1 - 영상 부호화/복호화 방법 및 장치 - Google Patents

영상 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
WO2023200101A1
WO2023200101A1 PCT/KR2023/002103 KR2023002103W WO2023200101A1 WO 2023200101 A1 WO2023200101 A1 WO 2023200101A1 KR 2023002103 W KR2023002103 W KR 2023002103W WO 2023200101 A1 WO2023200101 A1 WO 2023200101A1
Authority
WO
WIPO (PCT)
Prior art keywords
video
motion vector
block
unit
prediction information
Prior art date
Application number
PCT/KR2023/002103
Other languages
English (en)
French (fr)
Inventor
유기원
김두현
최범귀
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Publication of WO2023200101A1 publication Critical patent/WO2023200101A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • 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/513Processing of motion vectors

Definitions

  • Various embodiments of the present disclosure relate to a method and device for encoding/decoding a video signal using inter prediction information, and more specifically, a motion vector candidate list obtained from at least one neighboring block of the current block of the video signal and It relates to a method and device for encoding/decoding a video signal by obtaining a second motion vector based on a pre-estimated first motion vector and using it as motion prediction information for the current block.
  • High-quality images such as HD (High Definition) images and UHD (Ultra High Definition) images
  • HD High Definition
  • UHD Ultra High Definition
  • Various embodiments of the present disclosure are an inter-compression technology that compresses the current block of an image signal, enabling two-way motion prediction and improving image compression performance without increasing the amount of computation or additionally implementing a motion estimation module.
  • the purpose is to provide an encoding/decoding method and device.
  • Various embodiments of the present disclosure obtain a second motion vector from a motion vector candidate list obtained from at least one neighboring block of the current block of the video signal, based on the pre-estimated first motion vector, and perform motion for the current block.
  • the aim is to provide a method and device for encoding/decoding a video signal by using it as prediction information.
  • an image providing device includes an image input unit that receives an image signal;
  • the video signal is converted into a bitstream by using at least one of first motion prediction information including a first motion vector and second motion prediction information including a second motion vector as inter prediction information for the current block of the video signal.
  • a video encoding unit that encodes; and a video output unit that outputs the encoded bitstream to a video receiving device;
  • the image encoder estimates the first motion vector for the first reference picture, obtains a second motion vector candidate list from at least one neighboring block of the current block, and based on the second motion vector candidate list, A second motion vector may be obtained.
  • a method for providing an image includes receiving an image signal;
  • the video signal is converted into a bitstream by using at least one of first motion prediction information including a first motion vector and second motion prediction information including a second motion vector as inter prediction information for the current block of the video signal.
  • the operation of encoding the video signal into a bitstream includes: estimating the first motion vector for a first reference picture; Obtaining a second motion vector candidate list from at least one neighboring block of the current block; and obtaining the second motion vector based on the second motion vector candidate list.
  • a second motion vector is obtained from a motion vector candidate list obtained from at least one neighboring block of the current block of the image signal, and a second motion vector is obtained from the current block.
  • the video can be compressed with high efficiency and low latency and compression performance can be improved without increasing the amount of computation, implementation load, and power consumption required in the motion prediction process.
  • the second motion vector is stored in at least one neighborhood of the current block without repeating the block matching operation with the current block twice or without additionally implementing a motion estimation module.
  • a video streaming service can be provided with low latency and high definition, and thus a differentiated viewing experience that can freely share high-definition video between user devices can be provided. It can provide a playable cloud gaming experience.
  • Figure 1 schematically shows a system for encoding/decoding a video signal according to an embodiment of the present disclosure.
  • Figure 2 is a schematic block diagram of an image providing device and an image receiving device according to an embodiment of the present disclosure.
  • Figure 3 is a schematic block diagram of an image encoding unit of an image providing device according to an embodiment of the present disclosure.
  • Figure 4 is a schematic block diagram of an image decoding unit of an image receiving device according to an embodiment of the present disclosure.
  • Figure 5 is a schematic flowchart of an image encoding method according to an embodiment of the present disclosure.
  • Figure 6 shows segmented blocks of a picture according to an embodiment of the present disclosure.
  • FIG. 7 illustrates at least one neighboring block of the current block for obtaining a motion vector candidate list according to an embodiment of the present disclosure.
  • Figure 1 schematically shows a system for encoding/decoding a video signal according to an embodiment of the present disclosure.
  • a system 100 for encoding/decoding a video signal may include an image providing device 110 and an image receiving device 120.
  • the video providing device 110 provides video signals including video and images in streaming form to the video receiving device 120 through the network 130, and the video receiving device 120 receives the video from the video providing device 110. You can receive signals and play them.
  • the video providing device 110 may encode the video signal by removing and compressing redundant information in the video signal to the point where it cannot be visually detected.
  • the video providing device 110 can efficiently store, transmit, and manage video signals by encoding video signals within a predetermined compression rate range.
  • the video signal may include real-time encoded video including screen mirroring video, video conference video, and game video.
  • the video providing device 110 may include various video source devices such as TVs, PCs, smartphones, tablets, set-top boxes, game consoles, and servers, and the video receiving device 120 may include TVs, smartphones, tablets, PCs, etc. May include various video playback devices. It is obvious to those skilled in the art that the image providing device 110 and the image receiving device 120 are not limited to a specific type of device.
  • the video providing device 110 and the video receiving device 120 can transmit and receive video signals through the network 130.
  • the network 130 connecting the image providing device 110 and the image receiving device 120 may be a short-range communication network such as WiFi (Wireless Fidelity), a cellular network, a next-generation communication network, the Internet, or a computer network. It may include a long-distance communication network such as (e.g. LAN or WAN) and may communicate based on the IP communication protocol.
  • the cellular network includes Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), Code Division Multiple Access (CDMA), Time Division Multiplexing Access (TDMA), 5G, Long Term Evolution (LTE), and LTE-A ( LTE Advance) may be included.
  • GSM Global System for Mobile Communications
  • EDGE Enhanced Data GSM Environment
  • CDMA Code Division Multiple Access
  • TDMA Time Division Multiplexing Access
  • 5G Long Term Evolution
  • LTE Long Term Evolution
  • LTE-A LTE Advance
  • Network 130 may include connections of network elements such as hubs, bridges, routers, switches, and gateways.
  • Network 130 may include one or more connected networks, including public networks such as the Internet and private networks such as enterprise private networks, such as a multi-network environment. Access to network 130 may be provided through one or more wired or wireless access networks.
  • the network 130 can support an IoT (Internet of Things) network that exchanges and processes information between distributed components such as objects.
  • IoT Internet of Things
  • Figure 2 is a schematic block diagram of an image providing device and an image receiving device according to an embodiment of the present disclosure.
  • the image providing device 110 may include an image input unit 111, an image encoder 112, and an image output unit 113.
  • the image providing device 110 may further include a memory (not shown), a processor (not shown), and a communication unit (not shown).
  • the image providing device 110 may include additional components in addition to the illustrated components, or may omit at least one of the illustrated components.
  • the memory may store data such as a program or setting information including one or more instructions.
  • the memory may be comprised of volatile memory, non-volatile memory, or a combination of volatile memory and non-volatile memory.
  • the memory may provide stored data according to a request from the processor.
  • the communication unit may provide an interface for communication with other systems or devices.
  • the communication unit may include a network interface card or a wireless transmitting/receiving unit that enables communication through the network 130.
  • the communication unit may perform signal processing for accessing a wireless network.
  • the wireless network may include, for example, at least one of a wireless LAN or a cellular network (eg, Long Term Evolution (LTE)).
  • LTE Long Term Evolution
  • the processor is electrically connected to the communication unit and the memory, and performs operations related to control and/or communication of at least one other component of the image providing device 110 using a program stored in the memory. Or data processing can be performed.
  • the processor may execute at least one instruction corresponding to the image input unit 111, the image encoder 112, and the image output unit 113.
  • the processor includes a central processing unit (CPU), a graphics processing unit (GPU), a micro controller unit (MCU), a sensor hub, a supplementary processor, a communication processor, an application processor, and an ASIC ( It may include at least one of an Application Specific Integrated Circuit (FPGA) or a Field Programmable Gate Arrays (FPGA), and may have multiple cores.
  • FPGA Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Arrays
  • the image input unit 111 may receive an image signal.
  • the video signal may be received from outside the video providing device 110 or may be built into the video providing device 110.
  • the video input unit 111 controls the communication unit and can receive video signals from the outside in a wired or wireless manner.
  • the video encoder 112 may encode a video signal input by the video input unit 110.
  • the image encoder 112 can perform a series of procedures such as prediction, transformation, and quantization for compression and encoding efficiency.
  • the video encoder 112 may provide an encoded video signal (or encoded data) in the form of a bitstream to the video output unit 113.
  • the video output unit 113 may control the communication unit to transmit an encoded video signal to the video receiving device 120 through the network 130.
  • the video output unit 113 may transmit the encoded video signal to the video receiving device 120 through a digital storage medium.
  • Digital storage media may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
  • the image receiving device 120 may include an image input unit 121, an image decoder 122, and an image output unit 123.
  • the image output unit 123 may include a display unit, and the display unit may be composed of a separate device or external component.
  • the image receiving device 120 may further include a memory (not shown), a processor (not shown), and a communication unit (not shown).
  • the image receiving device 120 may include additional components in addition to the illustrated components, or may omit at least one of the illustrated components.
  • the memory may store data such as a program or setting information including one or more instructions.
  • the memory may be comprised of volatile memory, non-volatile memory, or a combination of volatile memory and non-volatile memory.
  • the memory may provide stored data according to a request from the processor.
  • the communication unit may provide an interface for communication with other systems or devices.
  • the communication unit may include a network interface card or a wireless transmitting/receiving unit that enables communication through the network 130.
  • the communication unit may perform signal processing for accessing a wireless network.
  • the wireless network may include, for example, at least one of a wireless LAN or a cellular network (eg, Long Term Evolution (LTE)).
  • LTE Long Term Evolution
  • the processor is electrically connected to the communication unit and the memory, and performs operations related to control and/or communication of at least one other component of the image receiving device 120 using a program stored in the memory. Or data processing can be performed.
  • the processor may execute at least one instruction corresponding to the image input unit 121, the image decoder 122, and the image output unit 123.
  • the processor includes a central processing unit (CPU), a graphics processing unit (GPU), a micro controller unit (MCU), a sensor hub, a supplementary processor, a communication processor, an application processor, and an ASIC ( It may include at least one of an Application Specific Integrated Circuit (FPGA) or a Field Programmable Gate Arrays (FPGA), and may have multiple cores.
  • FPGA Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Arrays
  • the image input unit 121 may receive an image signal.
  • the video input unit 121 may control the communication unit to receive a video signal from the video providing device 110 through the network 130.
  • the video input unit 121 controls the communication unit and can receive video signals from the video providing device 110 in a wired or wireless manner.
  • the image input unit 121 may obtain an image signal from the image providing device 110 through a digital storage medium.
  • Digital storage media may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
  • the video decoder 122 may decode a video signal by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operations of the video encoder 112.
  • the video output unit 123 may render a decoded video signal.
  • the rendered image signal may be displayed through the display unit.
  • the image providing device 110 and the image receiving device 120 may include additional components in addition to the illustrated components, or at least one of the illustrated components may be omitted.
  • Figure 3 is a schematic block diagram of an image encoding unit of an image providing device according to an embodiment of the present disclosure.
  • the image encoder 112 may include a prediction unit 310, a transform unit 320, a quantization unit 330, an entropy encoding unit 340, and an in-loop filtering unit 350. .
  • the image encoder 112 may include additional components in addition to the illustrated components, or may omit at least one of the illustrated components. All or at least part of the plurality of components constituting the video encoder 112 may be implemented as a single hardware component (eg, an encoder or processor) depending on the embodiment.
  • the image encoder 112 may further include memory.
  • the memory may be implemented by a digital storage medium and may include a buffer for buffering the decoded picture during the encoding process.
  • the video encoder 112 may divide an input video signal (or picture/frame) into one or more processing units (PUs).
  • the processing unit may be called a coding unit (CU).
  • the coding unit is a Coding Tree Unit (CTU) or Largest Coding Unit (LCU) recursively according to the QT/BT/TT (Quad-Tree/Binary-Tree/Ternary-Tree) structure. It can be obtained by dividing recursively.
  • one coding unit may be divided into a plurality of coding units of deeper depth based on a quad tree structure, binary tree structure, and/or ternary tree structure.
  • the encoding procedure according to the present disclosure can be performed based on the final coding unit that is no longer divided.
  • the encoding procedure may include procedures such as prediction, transformation, and quantization, which will be described later.
  • the processing unit of the encoding procedure may be a prediction unit (PU) or a transform unit (TU).
  • the prediction unit and the transform unit may each be divided or partitioned from the final coding unit.
  • the prediction unit may be a unit of sample prediction
  • the transform unit may be a unit for deriving a transform coefficient and/or a unit for deriving a residual signal from the transform coefficient.
  • a pixel may refer to the minimum unit that constitutes one picture (or image). Additionally, sample may be used as a term corresponding to a pixel and may represent a pixel or a value of a pixel.
  • the prediction unit 310 may perform prediction on a current block (block to be processed) and generate a predicted block including prediction samples for the current block.
  • the prediction unit 310 may determine whether intra prediction or inter prediction is applied on a current block or CU basis.
  • the prediction unit 310 may generate various information regarding prediction of the current block and transmit it to the entropy encoding unit 340.
  • Information about prediction may be encoded in the entropy encoding unit 340 and output in the form of a bitstream.
  • the intra prediction unit 311 may predict the current block by referring to samples within the current picture.
  • the referenced samples may be located in the neighborhood of the current block or may be located away from the current block depending on the intra prediction mode and/or intra prediction technique.
  • the inter prediction unit 312 may derive a predicted block for the current block based on a reference block specified by a motion vector in a reference picture.
  • motion prediction information can be predicted on a block, subblock, or sample basis based on the correlation of motion information between neighboring blocks and the current block.
  • the motion prediction information may include a reference picture identifier (or index) and a motion vector (MV).
  • the motion prediction information may further include inter prediction direction (L0 direction, L1 direction, etc.) information.
  • the inter prediction unit 312 may use at least one piece of motion prediction information as inter prediction information to derive a predicted block for the current block.
  • the inter prediction unit 312 may use at least one of first motion prediction information including the first motion vector MVL0 and second motion prediction information including the second motion vector MVL1 to determine the current state of the video signal.
  • the predicted block for the current block can be derived by using it as inter prediction information for the block.
  • the inter prediction unit 312 may estimate the first motion vector (MVL0) for the first reference picture.
  • the inter prediction unit 312 may obtain a second motion vector candidate list from at least one neighboring block of the current block, and may obtain the second motion vector based on the second motion vector candidate list.
  • the at least one neighboring block may include at least one spatial neighboring block existing in the current picture and at least one temporal neighboring block existing in the reference picture.
  • a reference picture including the temporal neighboring block may be called a co-located picture (colPic: collocated picture), a collocated picture, etc.
  • a temporal neighboring block that has the same location as the current block in the collocated picture may be called a collocated reference block, a collocated reference block, a collocated CU (colCU), etc.
  • the divided blocks of the picture and at least one neighboring block of the current block will be described later with reference to FIGS. 6 and 7.
  • the inter prediction unit 312 selects a motion vector in the second motion vector candidate list whose reference picture is the same as the first reference picture and whose difference value from the first motion vector is the largest. 2 It can be obtained as a motion vector.
  • An example of how the inter prediction unit 312 obtains the second motion vector will be described in detail below with reference to FIG. 5 and Tables 1 and 2.
  • the prediction signal generated through the prediction unit 310 may be used to generate a restored signal or a residual signal.
  • a residual signal (residual block) generated by subtracting a prediction signal (predicted block) from an input image signal (original block) may be transmitted to the converter 320.
  • the transform unit 320 may generate transform coefficients by applying a transform technique to the residual signal.
  • the transformation technique may be at least one of Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen-Loeve Transform (KLT), Graph-Based Transform (GBT), or Conditionally Non-linear Transform (CNT). It can be included.
  • DCT Discrete Cosine Transform
  • DST Discrete Sine Transform
  • KLT Karhunen-Loeve Transform
  • GBT Graph-Based Transform
  • CNT Conditionally Non-linear Transform
  • GBT refers to the transformation obtained from this graph when the relationship information between pixels is expressed as a graph.
  • CNT refers to the transformation obtained by generating a prediction signal using all previously reconstructed pixels and obtaining it based on it.
  • the conversion process can be applied to square pixel blocks of the same size, or to non-square blocks of variable size.
  • the quantization unit 330 may quantize the transform coefficients and transmit them to the entropy encoding unit 340.
  • the entropy encoding unit 340 may encode a quantized signal (information about quantized transform coefficients) and output it as a bitstream. Information about the quantized transform coefficients may be called residual information.
  • the quantization unit 330 may rearrange the quantized transform coefficients in block form into a one-dimensional vector form based on the coefficient scan order, and the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. Information about transformation coefficients, etc. may be generated.
  • the entropy encoding unit 340 may perform various encoding methods, such as exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). You can.
  • the in-loop filtering unit 350 can restore compression degradation by applying filtering to the image resulting from the encoding process.
  • the in-loop filtering unit 350 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture.
  • the various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
  • the modified reconstructed picture can be stored in the memory and used as a reference picture in the prediction unit 310.
  • the memory may store motion prediction information of a block from which motion prediction information in the current picture is derived (or encoded) and/or motion prediction information of blocks in an already reconstructed picture.
  • the stored motion prediction information may be transmitted to the inter prediction unit 312 to be used as motion prediction information of spatial neighboring blocks or motion prediction information of temporal neighboring blocks.
  • the memory may store reconstructed samples of reconstructed blocks in the current picture, and the stored reconstructed samples may be transmitted to the intra prediction unit 311.
  • Figure 4 is a schematic block diagram of an image decoding unit of an image receiving device according to an embodiment of the present disclosure.
  • the image decoding unit 122 includes an entropy decoding unit 410, an inverse quantization unit 420, an inverse transform unit 430, a prediction unit 440, an adder 450, and a filtering unit 460. may include.
  • the image decoder 122 may include additional components in addition to the illustrated components, or may omit at least one of the illustrated components. All or at least part of the plurality of components constituting the image decoding unit 122 may be implemented as one hardware component (eg, a decoder or processor) depending on the embodiment. Additionally, the image decoder 122 may further include memory.
  • the memory may be implemented by a digital storage medium and may include a buffer for buffering decoded pictures.
  • the video decoder 122 can restore the video signal by performing a process corresponding to the process performed by the video encoder 112 described above with reference to FIG. 3.
  • the image decoder 122 may perform decoding using a processing unit applied by the image encoder 112. Therefore, the decryption processing unit may be a coding unit, for example.
  • the coding unit may be a coding tree unit or may be obtained by dividing the largest coding unit.
  • the entropy decoder 410 may parse the bitstream to derive information necessary for image restoration (or picture restoration). For example, the entropy decoding unit 410 decodes information in the bitstream based on a decoding method such as exponential Golomb, CAVLC, or CABAC, and provides information about quantized transform coefficients regarding the residual required for image restoration. Can be printed. Information about prediction among the information decoded in the entropy decoding unit 410 is provided to the prediction unit 440, and residual values on which entropy decoding was performed in the entropy decoding unit 410, that is, quantized transform coefficients and related parameters Information may be input to the inverse quantization unit 420. Additionally, information about filtering among the information decoded by the entropy decoding unit 410 may be provided to the filtering unit 460.
  • a decoding method such as exponential Golomb, CAVLC, or CABAC
  • the inverse quantization unit 420 may inverse quantize the quantized transform coefficients and output transform coefficients.
  • the inverse quantization unit 420 may rearrange the quantized transform coefficients into a two-dimensional block form. In this case, the reordering may be performed based on the coefficient scan order performed by the image encoder 112.
  • the inverse quantization unit 420 may perform inverse quantization on quantized transform coefficients using quantization parameters (eg, quantization step size information) and obtain transform coefficients.
  • the inverse transform unit 430 may obtain a residual signal (residual block) by inversely transforming the transform coefficients.
  • the prediction unit 440 may perform prediction on the current block and generate a predicted block including prediction samples for the current block.
  • the prediction unit 440 may determine whether intra prediction or inter prediction is applied to the current block based on the information about the prediction output from the entropy decoding unit 410, and determine a specific intra/inter prediction mode (prediction technique) can be determined.
  • the intra prediction unit 441 can predict the current block by referring to samples in the current picture.
  • the inter prediction unit 442 may derive a predicted block for the current block based on a reference block specified by a motion vector in the reference picture.
  • Each operation of the intra prediction unit 441 and the inter prediction unit 442 corresponds to the respective operation of the intra prediction unit 311 and the inter prediction unit 312 of the video encoder 112.
  • the adder 450 adds the residual signal obtained from the inverse transform unit 430 to the prediction signal (predicted block) output from the prediction unit 440 to generate a restored signal (restored picture, restored block). can be created.
  • the filtering unit 460 may improve image quality by applying filtering to the restored signal.
  • the filtering unit 460 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and store the modified reconstructed picture in the memory.
  • the various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
  • the reconstructed picture stored in the memory can be used as a reference picture in the prediction unit 440.
  • the memory may store motion prediction information of a block from which motion prediction information in the current picture was derived (or decoded) and/or motion prediction information of blocks in a picture that has already been reconstructed.
  • the stored motion prediction information may be transmitted to the inter prediction unit 442 to be used as motion prediction information of spatial neighboring blocks or motion prediction information of temporal neighboring blocks.
  • the memory may store reconstructed samples of reconstructed blocks in the current picture, and the stored reconstructed samples may be transmitted to the intra prediction unit 441.
  • Figure 5 is a schematic flowchart of an image encoding method according to an embodiment of the present disclosure.
  • Figure 6 shows segmented blocks of a picture according to an embodiment of the present disclosure.
  • FIG. 7 illustrates at least one neighboring block of the current block for obtaining a motion vector candidate list according to an embodiment of the present disclosure.
  • the image providing device 110 may receive an image signal.
  • the video providing device 110 may divide an input video signal (or picture/frame) into one or more processing units (PUs) or blocks and encode them.
  • an input picture e.g., a picture of size 352x288
  • square blocks 610
  • the square block may have various sizes such as 16x16, 32x32, 64x64, and 128x128, but it is obvious to those skilled in the art that it is not limited to a specific size.
  • Each square block may be recursively divided into square or non-square small blocks (620).
  • the image providing device 110 searches for a reference block most similar to the current block to be encoded in the first reference picture that has already been temporally decoded, and selects a reference block from the reference block.
  • First motion prediction information for the current block can be estimated.
  • the first motion prediction information may include the first reference picture identifier (or reference picture index) (RefIdxL0) and a first motion vector (MVL0) for the reference block.
  • the motion vector may include a direction component and a magnitude component for the current block.
  • the image providing device 110 may obtain a second motion vector candidate list from at least one neighboring block of the current block.
  • the at least one neighboring block may include at least one spatial neighboring block and one temporal neighboring block of the current block.
  • the second motion vector candidate list it may be configured to include at least one of a motion vector in the L0 direction and a motion vector in the L1 direction.
  • the spatial neighboring block may be a neighboring block at a location including at least one of the left, top, bottom left corner, top left corner, and top right corner of the current block.
  • the temporal neighboring block may be at least one neighboring block that is different from the current picture in which the current block is located and is temporally located in a call picture that has already been decoded. It is obvious to those skilled in the art that the number and method by which the image providing device 110 can configure the second motion vector candidate list may vary, such as selecting or excluding specific candidate blocks from the spatial neighboring blocks and the temporal neighboring blocks. do.
  • Figure 7 illustrates seven neighboring blocks for the current block 710, including the left neighboring blocks (A0, A1), the upper neighboring blocks (B0, B1, B2), and the temporal neighboring blocks (T1, T2). It is depicted as an enemy.
  • the image providing device 110 may configure all seven neighboring blocks as a second motion vector candidate list.
  • the image providing device 110 may select one of the left neighboring block, the upper neighboring block, and the temporal neighboring block to form the final three second motion vector candidate lists.
  • the image providing device 110 may obtain a second motion vector based on the second motion vector candidate list. Referring to the conditions in Table 1 below, the image providing device 110 selects a motion vector whose reference picture in the second motion vector candidate list is the same as the first reference picture and whose difference value from the first motion vector is the largest. Can be obtained as the second motion vector.
  • Table 2 below shows the motion vectors (MVL1) in the L1 direction of the neighboring blocks corresponding to A0, A1, B0, B1, and T1 among the neighboring blocks of the current block 710 shown in FIG. 7 by the image providing device 110.
  • the second motion vector candidate list includes , condition values in the process of acquiring the second motion vector based on the second motion vector candidate list are shown.
  • the distance difference between MVL0 and MVL1 was calculated as the sum of the distances of the same direction component (i.e., the absolute value of the difference value of the magnitude component), but there is a method of calculating the difference value between vectors. It is obvious to those skilled in the art that the present invention is not limited thereto.
  • the image providing device 110 uses at least one of first motion prediction information including the first motion vector and second motion prediction information including the second motion vector as inter prediction information for the current block.
  • the current block can be encoded into a bitstream using .
  • the image providing device 110 selects at least one of the first motion prediction information and the second motion prediction information as the final mode for prediction of the current block through comparison with other intra/inter prediction modes.
  • the mode used as inter prediction information for is determined, the current block can be encoded into a bitstream based on the determined mode.
  • the first motion prediction information may include the first reference picture identifier and the first motion vector
  • the second motion prediction information may include the first reference picture identifier and the second motion vector.
  • the video providing device 110 may output a video signal including an encoded current block to the video receiving device 120.
  • Electronic devices may be of various types. Electronic devices may include, for example, display devices, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to embodiments of this document are not limited to the above-described devices.
  • unit or “module” used in various embodiments of this document may include a unit implemented with hardware, software, or firmware, for example, logic, logic block, component, or circuit. Can be used interchangeably with the same term.
  • the “ ⁇ part” or “ ⁇ module” may be an integrated part or a minimum unit of the part or a part thereof that performs one or more functions.
  • “ ⁇ unit” or “ ⁇ module” may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • the programs executed by the image providing device 110 and the image receiving device 120 described throughout this document may be implemented as hardware components, software components, and/or a combination of hardware components and software components. .
  • a program can be executed by any system that can execute computer-readable instructions.
  • Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device.
  • Software may be implemented as a computer program including instructions stored on computer-readable storage media.
  • Computer-readable storage media include, for example, magnetic storage media (e.g., ROM (Read-Only Memory), RAM (Random-Access Memory), floppy disk, hard disk, etc.) and optical read media (e.g., CD-ROM). (CD-ROM), DVD (Digital Versatile Disc), etc.
  • the computer-readable storage medium is distributed among networked computer systems, so that computer-readable code can be stored and executed in a distributed manner.
  • Computer programs may be distributed (e.g., downloaded or uploaded) online, through an application store (e.g., Play StoreTM) or directly between two user devices (e.g., smart phones).
  • an application store e.g., Play StoreTM
  • two user devices e.g., smart phones
  • at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
  • each component (e.g., module or program) of the above-described components may include a single or plural entity, and some of the plurality of entities may be separately placed in other components. there is.
  • one or more of the components or operations described above may be omitted, or one or more other components or operations may be added.
  • multiple components eg, modules or programs
  • the integrated component may perform one or more functions of each component of the plurality of components in the same or similar manner as those performed by the corresponding component of the plurality of components prior to the integration. .
  • operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, or omitted. Alternatively, one or more other operations may be added.

Landscapes

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

Abstract

본 개시의 다양한 실시예는 인터 예측 정보를 이용하여 영상 신호를 부호화/복호화하는 영상 부호화/복호화 방법 및 장치에 관한 것이다. 이를 위한 영상 제공 장치는 영상 신호를 입력받고; 제1 움직임 벡터를 포함하는 제1 움직임 예측 정보 및 제2 움직임 벡터를 포함하는 제2 움직임 예측 정보 중 적어도 하나를 상기 영상 신호의 현재 블록에 대한 인터 예측 정보로 이용하여 상기 영상 신호를 비트스트림으로 부호화하고; 상기 부호화된 비트스트림을 영상 수신 장치에게 출력하는 동작들을 포함하고; 상기 영상 신호를 비트스트림으로 부호화하는 동작은 제1 참조 픽처에 대한 상기 제1 움직임 벡터를 추정하고, 상기 현재 블록의 적어도 하나의 주변 블록으로부터 제2 움직임 벡터 후보 리스트를 획득하고, 상기 제2 움직임 벡터 후보 리스트에 기초하여 상기 제2 움직임 벡터를 획득하는 동작들을 포함할 수 있다.

Description

영상 부호화/복호화 방법 및 장치
본 개시의 다양한 실시예들은 인터 예측 정보를 이용하여 영상 신호를 부호화/복호화하는 방법 및 장치에 관한 것으로서, 보다 상세하게는 영상 신호의 현재 블록의 적어도 하나의 주변 블록으로부터 획득한 움직임 벡터 후보 리스트 및 기 추정된 제1 움직임 벡터에 기초하여 제2 움직임 벡터를 획득하고 현재 블록에 대한 움직임 예측 정보로 이용함으로써 영상 신호를 부호화/복호화하는 방법 및 장치에 관한 것이다.
HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존 영상 데이터에 비해 상대적으로 데이터량이 증가하기 때문에 네트워크를 통해 영상 데이터를 전송하거나 저장 매체를 이용해 저장하는 경우, 전송 비용과 저장 비용이 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 고효율, 저지연의 개선된 영상 부호화/복호화 기술이 요구된다.
영상을 부호화/복호화함에 있어서, 이웃 픽처들과의 시공간적 상관성을 인터 예측 정보로 이용하여 영상 신호의 현재 픽처를 압축하는 인터 압축 기술의 경우, 양방향 움직임 예측을 통해 영상 신호를 부호화하면 압축 성능을 개선시킬 수 있으나, 이를 위해 적어도 두번의 움직임 정보 예측이 필요하고 이는 연산량, 구현부하 및 소비전력을 증가시킬 수 있다.
본 개시의 다양한 실시예들은 영상 신호의 현재 블록을 압축하는 인터 압축 기술에 있어서, 연산량을 증가시키거나 움직임 추정 모듈을 추가 구현하지 않아도 양방향 움직임 예측이 가능하고 영상의 압축 성능을 개선시킬 수 있는 영상 부호화/복호화 방법 및 장치를 제공하는데 있다.
본 개시의 다양한 실시예들은 기 추정된 제1 움직임 벡터에 기초하여, 영상 신호의 현재 블록의 적어도 하나의 주변 블록으로부터 획득한 움직임 벡터 후보 리스트 중에서 제2 움직임 벡터를 획득하고, 현재 블록에 대한 움직임 예측 정보로 이용함으로써 영상 신호를 부호화/복호화하는 방법 및 장치를 제공하는데 있다.
본 개시의 일 실시예에 따르면 영상 제공 장치는 영상 신호를 입력받는 영상 입력부; 제1 움직임 벡터를 포함하는 제1 움직임 예측 정보 및 제2 움직임 벡터를 포함하는 제2 움직임 예측 정보 중 적어도 하나를 상기 영상 신호의 현재 블록에 대한 인터 예측 정보로 이용하여 상기 영상 신호를 비트스트림으로 부호화하는 영상 부호화부; 및 상기 부호화된 비트스트림을 영상 수신 장치에게 출력하는 영상 출력부를 포함하고; 상기 영상 부호화부는 제1 참조 픽처에 대한 상기 제1 움직임 벡터를 추정하고, 상기 현재 블록의 적어도 하나의 주변 블록으로부터 제2 움직임 벡터 후보 리스트를 획득하고, 상기 제2 움직임 벡터 후보 리스트에 기초하여 상기 제2 움직임 벡터를 획득할 수 있다.
또한, 본 개시의 일 실시예에 따르면 영상 제공 방법은, 영상 신호를 입력받는 동작; 제1 움직임 벡터를 포함하는 제1 움직임 예측 정보 및 제2 움직임 벡터를 포함하는 제2 움직임 예측 정보 중 적어도 하나를 상기 영상 신호의 현재 블록에 대한 인터 예측 정보로 이용하여 상기 영상 신호를 비트스트림으로 부호화하는 동작; 및 상기 부호화된 비트스트림을 영상 수신 장치에게 출력하는 동작을 포함하고; 상기 영상 신호를 비트스트림으로 부호화하는 동작은 제1 참조 픽처에 대한 상기 제1 움직임 벡터를 추정하는 동작; 상기 현재 블록의 적어도 하나의 주변 블록으로부터 제2 움직임 벡터 후보 리스트를 획득하는 동작; 및 상기 제2 움직임 벡터 후보 리스트에 기초하여 상기 제2 움직임 벡터를 획득하는 동작을 포함할 수 있다.
본 개시의 다양한 실시예들에 따르면, 기 추정된 제1 움직임 벡터에 기초하여, 영상 신호의 현재 블록의 적어도 하나의 주변 블록으로부터 획득한 움직임 벡터 후보 리스트 중에서 제2 움직임 벡터를 획득하고 현재 블록에 대한 양방향 움직임 예측 정보로 이용하여 영상 신호를 부호화 함으로써, 움직임 예측 과정에서 소요되는 연산량, 구현 부하 및 소비전력을 증가시키지 않으면서 영상을 고효율, 저지연으로 압축할 수 있고 압축 성능을 개선시킬 수 있다. 구체적으로, 양방향 움직임 예측을 위한 제2 움직임 벡터를 획득하기 위해, 현재 블록과의 블록 매칭 연산을 2번 반복하거나 움직임 추정 모듈을 추가 구현하지 않아도, 제2 움직임 벡터를 현재 블록의 적어도 하나의 주변 블록의 움직임 예측 정보로부터 직접 유도함으로써 연산 및 구현 복잡도를 낮추면서 영상의 압축 성능을 개선시킬 수 있다.
본 개시의 다양한 실시예들에 따르면, 저지연, 고화질로 영상 스트리밍 서비스를 제공할 수 있으므로, 사용자 장치들간에 자유롭게 고화질 영상을 공유할 수 있는 차별화된 시청 경험을 제공할 수 있고, 저지연, 고화질로 플레이 가능한 클라우드 게이밍 경험을 제공할 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 일 실시예에 따른 영상 신호를 부호화/복호화하는 시스템을 개략적으로 도시한다.
도 2는 본 개시의 일 실시예에 따른 영상 제공 장치 및 영상 수신 장치의 개략적인 블록도이다.
도 3은 본 개시의 일 실시예에 따른 영상 제공 장치의 영상 부호화부의 개략적인 블록도이다.
도 4는 본 개시의 일 실시예에 따른 영상 수신 장치의 영상 복호화부의 개략적인 블록도이다.
도 5는 본 개시의 일 실시예에 따른 영상 부호화 방법의 개략적인 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 픽처의 분할된 블록들을 도시한다.
도 7은 본 개시의 일 실시예에 따른 움직임 벡터 후보 리스트를 획득하기 위한, 현재 블록의 적어도 하나의 주변 블록들을 도시한다.
이하에서는 도면을 참조하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면의 설명과 관련하여, 동일하거나 유사한 구성요소에 대해서는 동일하거나 유사한 참조 부호가 사용될 수 있다. 또한, 도면 및 관련된 설명에서는, 잘 알려진 기능 및 구성에 대한 설명이 명확성과 간결성을 위해 생략될 수 있다.
도 1은 본 개시의 일 실시예에 따른 영상 신호를 부호화/복호화하는 시스템을 개략적으로 도시한다.
도 1을 참조하면, 영상 신호를 부호화/복호화하는 시스템(100)은 영상 제공 장치(110) 및 영상 수신 장치(120)를 포함할 수 있다.
영상 제공 장치(110)는 비디오 및 이미지를 포함하는 영상 신호를 스트리밍 형태로 네트워크(130)를 통해 영상 수신 장치(120)에게 제공하고, 영상 수신 장치(120)는 영상 제공 장치(110)로부터 영상 신호를 수신하여 재생할 수 있다. 영상 제공 장치(110)는 영상 신호 내에 중복된 정보를 시각적으로 감지하지 못할 정도로 제거하여 압축함으로써 영상 신호를 부호화할 수 있다. 영상 제공 장치(110)는 소정의 압축률 범위 내에서 영상 신호를 부호화함으로써, 영상 신호를 효율적으로 저장, 전송 및 관리할 수 있다. 상기 영상 신호는 스크린 미러링 영상, 화상 회의 영상 및 게임 영상을 포함하는 실시간 부호화 영상을 포함할 수 있다.
영상 제공 장치(110)는 TV, PC, 스마트폰, 태블릿, 셋톱박스, 게임 콘솔, 서버 등 다양한 영상 소스 장치를 포함할 수 있고, 영상 수신 장치(120)는 TV, 스마트폰, 태블릿, PC 등 다양한 영상 재생 장치를 포함할 수 있다. 영상 제공 장치(110) 및 영상 수신 장치(120)가 특정 유형의 장치에 제한되지 않음은 당업자에게 자명하다.
영상 제공 장치(110) 및 영상 수신 장치(120)는 네트워크(130)를 통해 영상 신호를 송수신할 수 있다. 다양한 실시예에 따르면, 영상 제공 장치(110) 및 영상 수신 장치(120)를 연결하는 네트워크(130)는 WiFi(Wireless Fidelity) 등과 같은 근거리 통신 네트워크와 셀룰러 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크를 포함할 수 있고, IP 통신 프로토콜 기반으로 통신할 수 있다. 상기 셀룰러 네트워크는 GSM(Global System for Mobile Communications), EDGE(Enhanced Data GSM Environment), CDMA(Code Division Multiple Access), TDMA(Time Division Multiplexing Access), 5G, LTE(Long Term Evolution) 및 LTE-A(LTE Advance)를 포함할 수 있다. 네트워크(130)는 허브, 브리지, 라우터, 스위치 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(130)는 인터넷과 같은 공용 네트워크 및 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(130)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다. 더 나아가 네트워크(130)는 사물 등 분산된 구성 요소들 간에 정보를 주고받아 처리하는 IoT(Internet of Things, 사물인터넷) 망을 지원할 수 있다.
도 2는 본 개시의 일 실시예에 따른 영상 제공 장치 및 영상 수신 장치의 개략적인 블록도이다.
도 2를 참조하면, 영상 제공 장치(110)는 영상 입력부(111), 영상 부호화부(112) 및 영상 출력부(113)를 포함할 수 있다. 영상 제공 장치(110)는 메모리(미도시), 프로세서(미도시) 및 통신부(미도시)를 더 포함할 수 있다. 영상 제공 장치(110)는 도시된 구성요소 외에 추가적인 구성요소를 포함하거나, 도시된 구성요소 중 적어도 하나를 생략할 수 있다.
일 실시예에 따르면, 상기 메모리는 하나 이상의 명령어들(instructions)을 포함하는 프로그램 또는 설정 정보와 같은 데이터를 저장할 수 있다. 상기 메모리는 휘발성 메모리, 비휘발성 메모리 또는 휘발성 메모리와 비휘발성 메모리의 조합으로 구성될 수 있다. 상기 메모리는 상기 프로세서의 요청에 따라 저장된 데이터를 제공할 수 있다.
일 실시예에 따르면, 상기 통신부는 다른 시스템들 또는 장치와의 통신을 위한 인터페이스를 제공할 수 있다. 상기 통신부는 네트워크(130)를 통한 통신을 가능하게 하는 네트워크 인터페이스 카드 또는 무선 송/수신부를 포함할 수 있다. 상기 통신부는 무선 망에 접속하기 위한 신호 처리를 수행할 수 있다. 상기 무선 망은, 예를 들어, 무선랜, 또는 셀룰러 망(예: LTE(Long Term Evolution)) 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 상기 프로세서는 상기 통신부 및 상기 메모리와 전기적으로 연결되고, 상기 메모리에 저장된 프로그램을 이용하여 영상 제공 장치(110)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 상기 프로세서는 영상 입력부(111), 영상 부호화부(112) 및 영상 출력부(113)에 대응하는 적어도 하나의 명령어를 실행할 수 있다. 상기 프로세서는 중앙처리장치(CPU), 그래픽처리장치(GPU), MCU(Micro Controller Unit), 센서 허브, 보조 프로세서(Supplementary Processor), 통신 프로세서(Communication Processor), 애플리케이션 프로세서(Application Processor), ASIC(Application Specific Integrated Circuit), 또는 FPGA(Field Programmable Gate Arrays) 중 적어도 하나를 포함할 수 있으며, 복수의 코어를 가질 수 있다.
일 실시예에 따르면, 영상 입력부(111)는 영상 신호를 입력 받을 수 있다. 상기 영상 신호는 영상 제공 장치(110)의 외부로부터 수신되거나, 영상 제공 장치(110)에 내장된 것일 수 있다. 영상 입력부(111)는 상기 통신부를 제어하여, 유선 또는 무선 방식으로 외부로부터 영상 신호를 수신할 수 있다.
일 실시예에 따르면, 영상 부호화부(112)는 영상 입력부(110)에 의해 입력된 영상 신호를 부호화할 수 있다. 영상 부호화부(112)는 압축 및 부호화 효율을 위하여 예측, 변환, 양자화 등 일련의 절차를 수행할 수 있다. 영상 부호화부(112)는 부호화된 영상 신호(또는 부호화된 데이터)를 비트스트림(bitstream) 형태로 영상 출력부(113)에게 제공할 수 있다.
일 실시예에 따르면, 영상 출력부(113)는 부호화된 영상 신호를 네트워크(130)를 통해 영상 수신 장치(120)에게 송신하도록 상기 통신부를 제어할 수 있다. 또는, 영상 출력부(113)는 부호화된 영상 신호를 디지털 저장매체를 통해 영상 수신 장치(120)에게 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다.
영상 수신 장치(120)는 영상 입력부(121), 영상 복호화부(122) 및 영상 출력부(123)를 포함할 수 있다. 영상 출력부(123)는 디스플레이부를 포함할 수 있고, 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다. 영상 수신 장치(120)는 메모리(미도시), 프로세서(미도시) 및 통신부(미도시)를 더 포함할 수 있다. 영상 수신 장치(120)는 도시된 구성요소 외에 추가적인 구성요소를 포함하거나, 도시된 구성요소 중 적어도 하나를 생략할 수 있다.
일 실시예에 따르면, 상기 메모리는 하나 이상의 명령어들(instructions)을 포함하는 프로그램 또는 설정 정보와 같은 데이터를 저장할 수 있다. 상기 메모리는 휘발성 메모리, 비휘발성 메모리 또는 휘발성 메모리와 비휘발성 메모리의 조합으로 구성될 수 있다. 상기 메모리는 상기 프로세서의 요청에 따라 저장된 데이터를 제공할 수 있다.
일 실시예에 따르면, 상기 통신부는 다른 시스템들 또는 장치와의 통신을 위한 인터페이스를 제공할 수 있다. 상기 통신부는 네트워크(130)를 통한 통신을 가능하게 하는 네트워크 인터페이스 카드 또는 무선 송/수신부를 포함할 수 있다. 상기 통신부는 무선 망에 접속하기 위한 신호 처리를 수행할 수 있다. 상기 무선 망은, 예를 들어, 무선랜, 또는 셀룰러 망(예: LTE(Long Term Evolution)) 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 상기 프로세서는 상기 통신부 및 상기 메모리와 전기적으로 연결되고, 상기 메모리에 저장된 프로그램을 이용하여 영상 수신 장치(120)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 상기 프로세서는 영상 입력부(121), 영상 복호화부(122) 및 영상 출력부(123)에 대응하는 적어도 하나의 명령어를 실행할 수 있다. 상기 프로세서는 중앙처리장치(CPU), 그래픽처리장치(GPU), MCU(Micro Controller Unit), 센서 허브, 보조 프로세서(Supplementary Processor), 통신 프로세서(Communication Processor), 애플리케이션 프로세서(Application Processor), ASIC(Application Specific Integrated Circuit), 또는 FPGA(Field Programmable Gate Arrays) 중 적어도 하나를 포함할 수 있으며, 복수의 코어를 가질 수 있다.
일 실시예에 따르면, 영상 입력부(121)는 영상 신호를 입력 받을 수 있다. 영상 입력부(121)는 네트워크(130)를 통해 영상 제공 장치(110)로부터 영상 신호를 수신하도록 상기 통신부를 제어할 수 있다. 영상 입력부(121)는 상기 통신부를 제어하여, 유선 또는 무선 방식으로 영상 제공 장치(110)로부터 영상 신호를 수신할 수 있다. 또는, 영상 입력부(121)는 영상 신호를 디지털 저장매체를 통해 영상 제공 장치(110)로부터 획득할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다.
일 실시예에 따르면, 영상 복호화부(122)는 영상 부호화부(112)의 동작에 대응하는 역양자화, 역변환, 예측 등 일련의 절차를 수행하여 영상 신호를 복호화할 수 있다.
일 실시예에 따르면, 영상 출력부(123)는 복호화된 영상 신호를 렌더링할 수 있다. 렌더링된 영상 신호는 상기 디스플레이부를 통해 디스플레이될 수 있다.
영상 제공 장치(110) 및 영상 수신 장치(120)는 도시된 구성요소 외에 추가적인 구성요소를 포함하거나, 도시된 구성요소 중 적어도 하나를 생략할 수 있다.
도 3은 본 개시의 일 실시예에 따른 영상 제공 장치의 영상 부호화부의 개략적인 블록도이다.
도 3을 참조하면, 영상 부호화부(112)는 예측부(310), 변환부(320), 양자화부(330), 엔트로피 인코딩부(340) 및 인루프 필터링부(350)를 포함할 수 있다. 영상 부호화부(112)는 도시된 구성요소 외에 추가적인 구성요소를 포함하거나, 도시된 구성요소 중 적어도 하나를 생략할 수 있다. 영상 부호화부(112)를 구성하는 복수의 구성부들의 전부 또는 적어도 일부는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어, 인코더 또는 프로세서)로 구현될 수 있다. 또한, 영상 부호화부(112)는 메모리를 더 포함할 수 있다. 상기 메모리는 디지털 저장 매체에 의하여 구현될 수 있고, 부호화 과정에서 복호화된 픽처를 버퍼링하는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 영상 부호화부(112)는 입력된 영상 신호(또는, 픽처/프레임)를 하나 이상의 처리 유닛(PU: Processing Unit)으로 분할할 수 있다. 일 예로, 상기 처리 유닛은 코딩 유닛(CU: Coding Unit)이라고 불릴 수 있다. 코딩 유닛은 코딩 트리 유닛(CTU: Coding Tree Unit) 또는 최대 코딩 유닛(LCU: Largest Coding Unit)을 QT/BT/TT (Quad-Tree/Binary-Tree/Ternary-Tree) 구조에 따라 재귀적으로(recursively) 분할함으로써 획득될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조, 바이너리 트리 구조 및/또는 터너리 트리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 개시에 따른 부호화 절차가 수행될 수 있다. 상기 부호화 절차는 후술하는 예측, 변환 및 양자화 등의 절차를 포함할 수 있다. 다른 예로, 상기 부호화 절차의 처리 유닛은 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)일 수 있다. 상기 예측 유닛 및 상기 변환 유닛은 각각 상기 최종 코딩 유닛으로부터 분할 또는 파티셔닝될 수 있다. 상기 예측 유닛은 샘플 예측의 단위일 수 있고, 상기 변환 유닛은 변환 계수를 유도하는 단위 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 단위일 수 있다. 본 개시에서 픽셀은 하나의 픽처(또는 영상)를 구성하는 최소 단위를 의미할 수 있다. 또한, 샘플은 픽셀에 대응하는 용어로서 사용될 수 있고, 픽셀 또는 픽셀의 값을 나타낼 수 있다.
일 실시예에 따르면, 예측부(310)는 현재 블록(처리 대상 블록)에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(Predicted Block)을 생성할 수 있다. 예측부(310)는 현재 블록 또는 CU 단위로 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있다. 예측부(310)는 현재 블록의 예측에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(340)로 전달할 수 있다. 예측에 관한 정보는 엔트로피 인코딩부(340)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
일 실시예에 따르면, 인트라 예측부(311)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 참조되는 샘플들은 인트라 예측 모드 및/또는 인트라 예측 기법에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다.
일 실시예에 따르면, 인터 예측부(312)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기초하여 움직임 예측 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 예측 정보는 참조 픽처 식별자(또는 인덱스) 및 움직임 벡터(MV: Motion Vector)를 포함할 수 있다. 상기 움직임 예측 정보는 인터 예측 방향(L0 방향, L1 방향 등) 정보를 더 포함할 수 있다.
일 실시예에 따르면, 인터 예측부(312)는 적어도 하나의 움직임 예측 정보를 인터 예측 정보로 이용하여 현재 블록에 대한 예측된 블록을 유도할 수 있다. 예를 들어, 인터 예측부(312)는 제1 움직임 벡터(MVL0)를 포함하는 제1 움직임 예측 정보 및 제2 움직임 벡터(MVL1)를 포함하는 제2 움직임 예측 정보 중 적어도 하나를 영상 신호의 현재 블록에 대한 인터 예측 정보로 이용하여 현재 블록에 대한 예측된 블록을 유도할 수 있다. 인터 예측부(312)는 제1 참조 픽처에 대한 상기 제1 움직임 벡터(MVL0)를 추정할 수 있다. 인터 예측부(312)는 상기 현재 블록의 적어도 하나의 주변 블록으로부터 제2 움직임 벡터 후보 리스트를 획득할 수 있고, 상기 제2 움직임 벡터 후보 리스트에 기초하여 상기 제2 움직임 벡터를 획득할 수 있다.
일 실시예에 따르면, 상기 적어도 하나의 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 적어도 하나 포함할 수 있다. 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(colPic : collocated Picture), 콜 픽처 등으로 불릴 수 있다. 콜 픽처 상에서 현재 블록과 위치가 동일한 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 콜 블록, 동일 위치 CU(colCU) 등으로 불릴 수 있다. 픽처의 분할된 블록들 및 현재 블록의 적어도 하나의 주변 블록들은 이하 도 6 및 도 7을 참조하여 후술한다.
일 실시예에 따르면, 인터 예측부(312)는 상기 제2 움직임 벡터 후보 리스트 중 참조 픽처가 상기 제1 참조 픽처와 동일하고, 상기 제1 움직임 벡터와의 차이값이 가장 큰 움직임 벡터를 상기 제2 움직임 벡터로 획득할 수 있다. 인터 예측부(312)가 상기 제2 움직임 벡터를 획득하는 예시를 이하 도 5, 표 1 및 표 2를 통해 구체적으로 후술한다.
예측부(310)를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 레지듀얼 신호를 생성하기 위해 이용될 수 있다. 입력 영상 신호(원본 블록)에서 예측 신호(예측된 블록)를 감산하여 생성된 레지듀얼 신호(residual signal, 잔여 블록)는 변환부(320)로 전송될 수 있다.
일 실시예에 따르면, 변환부(320)는 레지듀얼 신호에 변환 기법을 적용하여 변환 계수들(transform coefficients)을 생성할 수 있다. 예를 들어, 변환 기법은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen-Loeve Transform), GBT(Graph-Based Transform), 또는 CNT(Conditionally Non-linear Transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때 이 그래프로부터 얻어진 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀(all previously reconstructed pixel)을 이용하여 예측신호를 생성하고 그에 기초하여 획득되는 변환을 의미한다. 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
일 실시예에 따르면, 양자화부(330)는 변환 계수들을 양자화하여 엔트로피 인코딩부(340)로 전송할 수 있다. 엔트로피 인코딩부(340)는 양자화된 신호(양자화된 변환 계수들에 관한 정보)를 인코딩하여 비트스트림으로 출력할 수 있다. 상기 양자화된 변환 계수들에 관한 정보는 레지듀얼 정보라고 불릴 수 있다. 양자화부(330)는 계수 스캔 순서(scan order)를 기반으로 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있고, 상기 1차원 벡터 형태의 양자화된 변환 계수들을 기반으로 상기 양자화된 변환 계수들에 관한 정보 등을 생성할 수도 있다. 일 실시예에 따르면, 엔트로피 인코딩부(340)는 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 다양한 인코딩 방법을 수행할 수 있다.
일 실시예에 따르면, 인루프 필터링부(350)는 부호화 과정의 결과 영상에 대해 필터링을 적용함으로써 압축 열화를 복원할 수 있다. 예를 들어 인루프 필터링부(350)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다. 수정된 복원 픽처는 상기 메모리에 저장되고 예측부(310)에서 참조 픽처로 사용될 수 있다.
상기 메모리는 현재 픽처 내 움직임 예측 정보가 도출된(또는 인코딩된) 블록의 움직임 예측 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 예측 정보를 저장할 수 있다. 상기 저장된 움직임 예측 정보는 공간적 주변 블록의 움직임 예측 정보 또는 시간적 주변 블록의 움직임 예측 정보로 활용하기 위하여 인터 예측부(312)에 전달될 수 있다. 상기 메모리는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 저장된 복원 샘플들은 인트라 예측부(311)에 전달될 수 있다.
도 4는 본 개시의 일 실시예에 따른 영상 수신 장치의 영상 복호화부의 개략적인 블록도이다.
도 4를 참조하면, 영상 복호화부(122)는 엔트로피 디코딩부(410), 역양자화부(420), 역변환부(430), 예측부(440), 가산부(450) 및 필터링부(460)를 포함할 수 있다. 영상 복호화부(122)는 도시된 구성요소 외에 추가적인 구성요소를 포함하거나, 도시된 구성요소 중 적어도 하나를 생략할 수 있다. 영상 복호화부(122)를 구성하는 복수의 구성부들의 전부 또는 적어도 일부는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어, 디코더 또는 프로세서)로 구현될 수 있다. 또한, 영상 복호화부(122)는 메모리를 더 포함할 수 있다. 상기 메모리는 디지털 저장 매체에 의하여 구현될 수 있고, 복호화된 픽처를 버퍼링하는 버퍼를 포함할 수 있다.
영상 복호화부(122)는 도 3을 참조하여 전술한 영상 부호화부(112)에서 수행된 프로세스에 대응하는 프로세스를 수행함으로써 영상 신호를 복원할 수 있다. 예를 들어, 영상 복호화부(122)는 영상 부호화부(112)에서 적용된 처리 유닛을 이용하여 복호화를 수행할 수 있다. 따라서 복호화 처리 유닛은 예를 들어 코딩 유닛일 수 있다. 코딩 유닛은 코딩 트리 유닛이거나 또는 최대 코딩 유닛을 분할하여 획득될 수 있다.
일 실시예에 따르면, 엔트로피 디코딩부(410)는 비트스트림을 파싱하여 영상 복원(또는 픽처 복원)에 필요한 정보를 도출할 수 있다. 예를 들어, 엔트로피 디코딩부(410)는 지수 골롬, CAVLC 또는 CABAC 등의 디코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 영상 복원에 필요한 레지듀얼에 관한 양자화된 변환 계수들에 관한 정보 등을 출력할 수 있다. 엔트로피 디코딩부(410)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(440)로 제공되고, 엔트로피 디코딩부(410)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수들 및 관련 파라미터 정보는 역양자화부(420)로 입력될 수 있다. 또한, 엔트로피 디코딩부(410)에서 디코딩된 정보 중 필터링에 관한 정보는 필터링부(460)로 제공될 수 있다.
일 실시예에 따르면, 역양자화부(420)는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 출력할 수 있다. 역양자화부(420)는 양자화된 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 이 경우 상기 재정렬은 영상 부호화부(112)에서 수행된 계수 스캔 순서에 기반하여 수행될 수 있다. 역양자화부(420)는 양자화 파라미터(예를 들어 양자화 스텝 사이즈 정보)를 이용하여 양자화된 변환 계수들에 대한 역양자화를 수행하고, 변환 계수들(transform coefficient)을 획득할 수 있다.
일 실시예에 따르면, 역변환부(430)는 변환 계수들을 역변환하여 레지듀얼 신호(레지듀얼 블록)를 획득할 수 있다
일 실시예에 따르면, 예측부(440)는 현재 블록에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부(440)는 엔트로피 디코딩부(410)로부터 출력된 상기 예측에 관한 정보를 기반으로 상기 현재 블록에 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있고, 구체적인 인트라/인터 예측 모드(예측 기법)를 결정할 수 있다. 인트라 예측부(441)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 인터 예측부(442)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 인트라 예측부(441) 및 인터 예측부(442) 각각의 동작은 영상 부호화부(112)의 인트라 예측부(311) 및 인터 예측부(312) 각각의 동작에 대응된다.
일 실시예에 따르면, 가산부(450)는 역변환부(430로부터 획득된 레지듀얼 신호를 예측부(440)로부터 출력된 예측 신호(예측된 블록)에 더함으로써 복원 신호(복원 픽처, 복원 블록)를 생성할 수 있다.
일 실시예에 따르면, 필터링부(460)는 복원 신호에 필터링을 적용하여 화질을 향상시킬 수 있다. 예를 들어, 필터링부(460)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 상기 메모리에 저장할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다. 상기 메모리에 저장된 복원 픽처는 예측부(440)에서 참조 픽처로 사용될 수 있다. 상기 메모리는 현재 픽처 내 움직임 예측 정보가 도출된(또는 디코딩된) 블록의 움직임 예측 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 예측 정보를 저장할 수 있다. 상기 저장된 움직임 예측 정보는 공간적 주변 블록의 움직임 예측 정보 또는 시간적 주변 블록의 움직임 예측 정보로 활용하기 위하여 인터 예측부(442)에 전달될 수 있다. 상기 메모리는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 저장된 복원 샘플들은 인트라 예측부(441)에 전달될 수 있다.
도 5는 본 개시의 일 실시예에 따른 영상 부호화 방법의 개략적인 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 픽처의 분할된 블록들을 도시한다.
도 7은 본 개시의 일 실시예에 따른 움직임 벡터 후보 리스트를 획득하기 위한, 현재 블록의 적어도 하나의 주변 블록들을 도시한다.
일 실시예에 따르면, 영상 제공 장치(110)는 영상 신호를 입력받을 수 있다.
도 6을 참조하면, 영상 제공 장치(110)는 입력된 영상 신호(또는 픽처/프레임)를 하나 이상의 처리 유닛(PU: Processing Unit) 또는 블록으로 분할하여 부호화할 수 있다. 도시된 예에서, 입력된 픽처(예. 352x288 크기의 픽처)는 정방형 블록들로 분할될 수 있다(610). 도시된 예에서 정방형 블록은 16x16, 32x32, 64x64, 128x128 등 다양한 사이즈를 가질 수 있으나, 특정 사이즈에 제한되지 않음은 당업자에게 자명하다. 각각의 정방형 블록은 정방형 또는 비정방형 소블록들로 재귀적으로 분할될 수 있다(620).
도 5를 참조하면, 일 실시예에 따른 동작 510에서, 영상 제공 장치(110)는 시간적으로 이미 복호화된 제1 참조 픽처에서, 부호화하려는 현재 블록과 가장 유사한 참조 블록을 탐색하고, 상기 참조 블록으로부터 현재 블록에 대한 제1 움직임 예측 정보를 추정할 수 있다. 상기 제1 움직임 예측 정보는 상기 제1 참조 픽처 식별자(또는 참조 픽처 인덱스)(RefIdxL0) 및 상기 참조 블록에 대한 제1 움직임 벡터(MVL0)를 포함할 수 있다. 움직임 벡터는 현재 블록에 대한 방향 성분 및 크기 성분을 포함할 수 있다. 예를 들어, 탐색된 참조 블록은 RefIdxL0=0, MVL0=(5,-4) 값을 가질 수 있다.
동작 520에서, 영상 제공 장치(110)는 현재 블록의 적어도 하나의 주변 블록으로부터 제2 움직임 벡터 후보 리스트를 획득할 수 있다. 상기 적어도 하나의 주변 블록은 상기 현재 블록의 공간적 주변 블록 및 시간적 주변 블록을 적어도 하나 포함할 수 있다. 상기 제2 움직임 벡터 후보 리스트를 구성할 경우, L0 방향의 움직임 벡터 및 L1 방향의 움직임 벡터 중 적어도 하나를 포함하여 구성할 수 있다.
상기 공간적 주변 블록은 상기 현재 블록의 좌측, 상단, 좌하단 코너, 좌상단 코너 및 우상단 코너를 적어도 하나 포함하는 위치의 주변 블록일 수 있다. 상기 시간적 주변 블록은 상기 현재 블록이 위치한 현재 픽처와 상이하고 시간적으로 이미 복호화된 콜 픽처에 위치하는 적어도 하나의 주변 블록일 수 있다. 영상 제공 장치(110)가 상기 공간적 주변 블록 및 상기 시간적 주변 블록에서 특정 후보 블록을 선택 또는 배제하는 등 상기 제2 움직임 벡터 후보 리스트를 구성할 수 있는 개수 및 방법이 다양할 수 있음은 당업자에게 자명하다. 도 7은 현재 블록(710)에 대한, 좌측의 주변 블록(A0, A1), 상단의 주변 블록(B0, B1, B2) 및 시간적 주변 블록(T1, T2)을 포함하는 7개의 주변 블록들을 예시적으로 도시한다. 도시된 예에서, 영상 제공 장치(110)는 7개의 주변 블록 모두를 제2 움직임 벡터 후보 리스트로 구성할 수 있다. 또는, 영상 제공 장치(110)는 좌측 주변 블록, 상단 주변 블록 및 시간적 주변블록 중 각각 1개를 선택하여 최종 3개의 제2 움직임 벡터 후보 리스트를 구성할 수도 있다.
다시 도 5를 참조하면, 동작 530에서, 영상 제공 장치(110)는 상기 제2 움직임 벡터 후보 리스트에 기초하여 제2 움직임 벡터를 획득할 수있다. 하기 표 1의 조건을 참조하면, 영상 제공 장치(110)는 상기 제2 움직임 벡터 후보 리스트 중 참조 픽처가 상기 제1 참조 픽처와 동일하고, 상기 제1 움직임 벡터와의 차이값이 가장 큰 움직임 벡터를 상기 제2 움직임 벡터로 획득할 수있다.

(RefIdxL0 == RefidxL1) && ArgMax|MVL0 - MVL1|
하기 표 2는 영상 제공 장치(110)가 도 7에 도시된 현재 블록(710)의 주변 블록들 중, A0, A1, B0, B1, T1에 대응하는 주변 블록들의 L1 방향의 움직임 벡터(MVL1)를 포함하여 제2 움직임 벡터 후보 리스트로 구성한 경우, 상기 제2 움직임 벡터 후보 리스트에 기초하여 제2 움직임 벡터를 획득하는 과정에서의 조건값들을 도시한다.
MVL1 후보 리스트 RefIdxL0==RefIdxL1 |MVL0-MVL1|
A0 블록 (RefIdx=0, MV=(5,-2)) TRUE 2
A1 블록 (RefIdx=0, MV=(5,-3)) TRUE 1
B0 블록 (RefIdx=1, MV=(10,-5)) FALSE 6
B1 블록 (RefIdx=0, MV=(-3,-2)) TRUE 10
T1 블록 (RefIdx=1, MV=(9,3)) FALSE 11
현재 블록의 상기 제1 움직임 예측 정보는 RefIdxL0=0, MVL0=(5,-4)이고, 상기 제2 움직임 벡터 후보 리스트는 A0 블록, A1 블록, B0 블록, B1 블록, T1 블록의 움직임 예측 정보들로 구성될 수 있다. 현재 블록과 상기 제2 움직임 벡터 후보 리스트에 대응하는 주변 블록들 간의 참조 픽처 동일 여부 및 MVL0(제1 움직임 벡터)와의 거리 차이를 계산한 결과, 영상 제공 장치(110)는 B1 블록의 움직임 벡터를 상기 제2 움직임 벡터(MVL1)로 결정할 수 있다. 표 2를 참조하여 상술한 예시에서, MVL0와 MVL1 간의 거리 차이는 동일한 방향 성분의 거리(즉, 크기 성분의 차이값의 절대값)들의 합으로 계산하였으나, 벡터 간의 차이값을 계산할 수 있는 방법이 이에 제한되지 않음은 당업자에게 자명하다.
동작 540에서, 영상 제공 장치(110)는 상기 제1 움직임 벡터를 포함하는 제1 움직임 예측 정보 및 상기 제2 움직임 벡터를 포함하는 제2 움직임 예측 정보 중 적어도 하나를 상기 현재 블록에 대한 인터 예측 정보로 이용하여 상기 현재 블록을 비트스트림으로 부호화할 수 있다. 영상 제공 장치(110)는 다른 인트라/인터 예측 모드들과의 비교를 통해, 상기 현재 블록의 예측을 위한 최종 모드로, 상기 제1 움직임 예측 정보 및 상기 제2 움직임 예측 정보 중 적어도 하나를 현재 블록에 대한 인터 예측 정보로 이용하는 모드를 결정한 경우, 상기 결정된 모드에 기초하여 현재 블록을 비트스트림으로 부호화할 수 있다. 상기 제1 움직임 예측 정보는 상기 제1 참조 픽처 식별자 및 상기 제1 움직임 벡터를 포함하고, 상기 제2 움직임 예측 정보는 상기 제1 참조 픽처 식별자 및 상기 제2 움직임 벡터를 포함할 수 있다.
일 실시예에 따르면, 영상 제공 장치(110)는 부호화된 현재 블록을 포함하는 영상 신호를 영상 수신 장치(120)에게 출력할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 디스플레이 장치, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 예를 들면, 단수로 표현된 구성요소는 문맥상 명백하게 단수만을 의미하지 않는다면 복수의 구성요소를 포함하는 개념으로 이해되어야 한다. 본 문서에서 사용되는 '및/또는'이라는 용어는, 열거되는 항목들 중 하나 이상의 항목에 의한 임의의 가능한 모든 조합들을 포괄하는 것임이 이해되어야 한다. 본 개시에서 사용되는 '포함하다,' '가지다,' '구성되다' 등의 용어는 본 개시 상에 기재된 특징, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐이고, 이러한 용어의 사용에 의해 하나 또는 그 이상의 다른 특징들이나 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하려는 것은 아니다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다.
본 문서의 다양한 실시예들에서 사용된 용어 "~부" 또는 "~모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. "~부" 또는 "~모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시예에 따르면, "~부" 또는 "~모듈"은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들에서 사용된 용어 “~할 경우”는 문맥에 따라 “~할 때”, 또는 “~할 시” 또는 “결정하는 것에 응답하여” 또는 “검출하는 것에 응답하여”를 의미하는 것으로 해석될 수 있다. 유사하게, “~라고 결정되는 경우” 또는 “~이 검출되는 경우”는 문맥에 따라 “결정 시” 또는 “결정하는 것에 응답하여”, 또는 “검출 시” 또는 “검출하는 것에 응답하여”를 의미하는 것으로 해석될 수 있다.
본 문서를 통해 설명된 영상 제공 장치(110) 및 영상 수신 장치(120)에 의해 실행되는 프로그램은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 프로그램은 컴퓨터로 읽을 수 있는 명령어들을 수행할 수 있는 모든 시스템에 의해 수행될 수 있다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령어(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 (collectively) 처리 장치를 명령할 수 있다. 소프트웨어는, 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터가 읽을 수 있는 저장 매체로는, 예를 들어 마그네틱 저장 매체(예컨대, ROM(Read-Only Memory), RAM(Random-Access Memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 저장 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 컴퓨터 프로그램은 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (14)

  1. 영상 제공 장치에 있어서,
    영상 신호를 입력받는 영상 입력부;
    제1 움직임 벡터를 포함하는 제1 움직임 예측 정보 및 제2 움직임 벡터를 포함하는 제2 움직임 예측 정보 중 적어도 하나를 상기 영상 신호의 현재 블록에 대한 인터 예측 정보로 이용하여 상기 영상 신호를 비트스트림으로 부호화하는 영상 부호화부; 및
    상기 부호화된 비트스트림을 영상 수신 장치에게 출력하는 영상 출력부를 포함하고;
    상기 영상 부호화부는
    제1 참조 픽처에 대한 상기 제1 움직임 벡터를 추정하고, 상기 현재 블록의 적어도 하나의 주변 블록으로부터 제2 움직임 벡터 후보 리스트를 획득하고, 상기 제2 움직임 벡터 후보 리스트에 기초하여 상기 제2 움직임 벡터를 획득하는, 영상 제공 장치.
  2. 제 1항에 있어서,
    상기 영상 부호화부는
    상기 제2 움직임 벡터 후보 리스트 중 참조 픽처가 상기 제1 참조 픽처와 동일하고, 상기 제1 움직임 벡터와의 차이값이 가장 큰 움직임 벡터를 상기 제2 움직임 벡터로 획득하는, 영상 제공 장치.
  3. 제 2항에 있어서,
    상기 제1 움직임 예측 정보 및 상기 제2 움직임 예측 정보는
    상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 대한 상기 제1 참조 픽처 식별자를 각각 더 포함하는, 영상 제공 장치.
  4. 제 1항에 있어서,
    상기 적어도 하나의 주변 블록은
    상기 현재 블록의 공간적 주변 블록 및 시간적 주변 블록을 적어도 하나 포함하는, 영상 제공 장치.
  5. 제 4항에 있어서,
    상기 공간적 주변 블록은 상기 현재 블록의 좌측, 상단, 좌하단 코너, 좌상단 코너 및 우상단 코너를 적어도 하나 포함하는 위치의 주변 블록이고;
    상기 시간적 주변 블록은 상기 현재 블록이 위치한 현재 픽처와 상이하고 시간적으로 이미 복호화된 콜 픽처에 위치하는 적어도 하나의 주변 블록인, 영상 제공 장치.
  6. 제 1항에 있어서,
    상기 영상 신호는
    스크린 미러링 영상, 화상 회의 영상 및 게임 영상을 포함하는 실시간 부호화 영상인, 영상 제공 장치.
  7. 제 1항에 있어서,
    상기 영상 제공 장치는
    네트워크를 통해 데이터를 송수신하는 통신부를 더 포함하고;
    상기 영상 출력부는
    상기 부호화된 비트스트림을 상기 영상 수신 장치에게 송신하도록 상기 통신부를 제어하는, 영상 제공 장치.
  8. 영상 제공 방법에 있어서,
    영상 신호를 입력받는 동작;
    제1 움직임 벡터를 포함하는 제1 움직임 예측 정보 및 제2 움직임 벡터를 포함하는 제2 움직임 예측 정보 중 적어도 하나를 상기 영상 신호의 현재 블록에 대한 인터 예측 정보로 이용하여 상기 영상 신호를 비트스트림으로 부호화하는 동작; 및
    상기 부호화된 비트스트림을 영상 수신 장치에게 출력하는 동작을 포함하고;
    상기 영상 신호를 비트스트림으로 부호화하는 동작은
    제1 참조 픽처에 대한 상기 제1 움직임 벡터를 추정하는 동작;
    상기 현재 블록의 적어도 하나의 주변 블록으로부터 제2 움직임 벡터 후보 리스트를 획득하는 동작; 및
    상기 제2 움직임 벡터 후보 리스트에 기초하여 상기 제2 움직임 벡터를 획득하는 동작을 포함하는, 방법.
  9. 제 8항에 있어서,
    상기 제2 움직임 벡터를 획득하는 동작은
    상기 제2 움직임 벡터 후보 리스트 중 참조 픽처가 상기 제1 참조 픽처와 동일하고, 상기 제1 움직임 벡터와의 차이값이 가장 큰 움직임 벡터를 상기 제2 움직임 벡터로 획득하는, 방법..
  10. 제 9항에 있어서,
    상기 제1 움직임 예측 정보 및 상기 제2 움직임 예측 정보는
    상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 대한 상기 제1 참조 픽처 식별자를 각각 더 포함하는, 방법.
  11. 제 8항에 있어서,
    상기 적어도 하나의 주변 블록은
    상기 현재 블록의 공간적 주변 블록 및 시간적 주변 블록을 적어도 하나 포함하는, 방법.
  12. 제 11항에 있어서,
    상기 공간적 주변 블록은 상기 현재 블록의 좌측, 상단, 좌하단 코너, 좌상단 코너 및 우상단 코너를 적어도 하나 포함하는 위치의 주변 블록이고;
    상기 시간적 주변 블록은 상기 현재 블록이 위치한 현재 픽처와 상이하고 시간적으로 이미 복호화된 콜 픽처에 위치하는 적어도 하나의 주변 블록인, 방법.
  13. 제 8항에 있어서,
    상기 영상 신호는
    스크린 미러링 영상, 화상 회의 영상 및 게임 영상을 포함하는 실시간 부호화 영상인, 방법.
  14. 제 8항에 있어서,
    상기 영상 제공 방법은
    네트워크를 통해 데이터를 송수신하는 동작을 더 포함하고;
    상기 부호화된 비트스트림을 상기 영상 수신 장치에게 출력하는 동작은
    상기 부호화된 비트스트림을 네트워크를 통해 상기 영상 수신 장치에게 송신하는, 방법.
PCT/KR2023/002103 2022-04-15 2023-02-14 영상 부호화/복호화 방법 및 장치 WO2023200101A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220046826A KR20230147901A (ko) 2022-04-15 2022-04-15 영상 부호화/복호화 방법 및 장치
KR10-2022-0046826 2022-04-15

Publications (1)

Publication Number Publication Date
WO2023200101A1 true WO2023200101A1 (ko) 2023-10-19

Family

ID=88329766

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/002103 WO2023200101A1 (ko) 2022-04-15 2023-02-14 영상 부호화/복호화 방법 및 장치

Country Status (2)

Country Link
KR (1) KR20230147901A (ko)
WO (1) WO2023200101A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170073681A (ko) * 2014-11-18 2017-06-28 미디어텍 인크. 단방향 예측 및 병합 후보로부터의 모션 벡터에 기초한 양방향 예측 비디오 코딩 방법
KR20180061042A (ko) * 2016-11-29 2018-06-07 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR101891192B1 (ko) * 2012-10-19 2018-08-23 연세대학교 산학협력단 영상 부호화 방법 및 장치
US20210289222A1 (en) * 2018-11-29 2021-09-16 Huawei Technologies Co., Ltd. Encoder, decoder and corresponding methods of most probable mode list construction for blocks with multi-hypothesis prediction
US20210329287A1 (en) * 2018-07-18 2021-10-21 Mediatek Inc. Method and Apparatus of Motion Compensation Bandwidth Reduction for Video Coding System Utilizing Multi-Hypothesis

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101891192B1 (ko) * 2012-10-19 2018-08-23 연세대학교 산학협력단 영상 부호화 방법 및 장치
KR20170073681A (ko) * 2014-11-18 2017-06-28 미디어텍 인크. 단방향 예측 및 병합 후보로부터의 모션 벡터에 기초한 양방향 예측 비디오 코딩 방법
KR20180061042A (ko) * 2016-11-29 2018-06-07 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US20210329287A1 (en) * 2018-07-18 2021-10-21 Mediatek Inc. Method and Apparatus of Motion Compensation Bandwidth Reduction for Video Coding System Utilizing Multi-Hypothesis
US20210289222A1 (en) * 2018-11-29 2021-09-16 Huawei Technologies Co., Ltd. Encoder, decoder and corresponding methods of most probable mode list construction for blocks with multi-hypothesis prediction

Also Published As

Publication number Publication date
KR20230147901A (ko) 2023-10-24

Similar Documents

Publication Publication Date Title
EP3849182B1 (en) Restriction of prediction units in b slices to uni-directional inter prediction
TW201811055A (zh) 使用解耦樹結構之視訊內寫碼
KR20210044889A (ko) 히스토리 기반 움직임 정보를 이용한 영상 코딩 방법 및 그 장치
JP7303894B2 (ja) エンコーダ、デコーダ、及び対応するインター予測方法
JP2022168139A (ja) インター予測モードに基づいた映像処理方法およびそのための装置
JP7164710B2 (ja) ビデオ復号化方法及びビデオ・デコーダ
US11546583B2 (en) Image encoding/decoding method and device for determining division mode on basis of color format, and method for transmitting bitstream
JP2024042110A (ja) 画像符号化システムにおいてアフィンmvp候補リストを使用するアフィン動き予測に基づいた画像デコード方法及び装置
JP2022511850A (ja) エンコーダ、デコーダ、及びデブロッキングフィルタの境界強度導出の対応する方法
US20220256160A1 (en) Image decoding method for performing bdpcm on basis of block size and device therefor
JP2022523851A (ja) 異なるクロマフォーマットを使用したフィルタ処理されていない参照サンプルを用いたビデオコーディング
US20230209090A1 (en) Image decoding method for residual coding and device for same
WO2019212230A1 (ko) 영상 코딩 시스템에서 블록 사이즈에 따른 변환을 사용하는 영상 디코딩 방법 및 그 장치
JP2023516617A (ja) サインデータハイディング関連映像デコーディング方法及びその装置
US11197018B2 (en) Inter-frame prediction method and apparatus
JP2023165944A (ja) 同一位置ピクチャに関する情報を含むピクチャヘッダーに基づく画像符号化/復号化方法、装置、及びビットストリームを伝送する方法
JP2022540448A (ja) スケーリングリストデータのシグナリングに基づくビデオまたは画像コーディング
WO2020004931A1 (ko) 영상 코딩 시스템에서 인터 예측에 따른 영상 처리 방법 및 장치
US20220232214A1 (en) Image decoding method and device therefor
WO2023200101A1 (ko) 영상 부호화/복호화 방법 및 장치
JP7398003B2 (ja) 映像デコーディング方法及びその装置
US20240031604A1 (en) Image decoding method and apparatus therefor
TW202228441A (zh) 用於視頻譯碼的多重假設預測
WO2020040439A1 (ko) 영상 코딩 시스템에서 인트라 예측 방법 및 장치
JP2022542855A (ja) フィルタリングを用いた画像符号化/復号化方法、装置、及びビットストリームを伝送する方法

Legal Events

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

Ref document number: 23788456

Country of ref document: EP

Kind code of ref document: A1