WO2025071286A1 - Method and apparatus for encoding/decoding video on basis of improved template determination for local illuminance compensation - Google Patents

Method and apparatus for encoding/decoding video on basis of improved template determination for local illuminance compensation Download PDF

Info

Publication number
WO2025071286A1
WO2025071286A1 PCT/KR2024/014635 KR2024014635W WO2025071286A1 WO 2025071286 A1 WO2025071286 A1 WO 2025071286A1 KR 2024014635 W KR2024014635 W KR 2024014635W WO 2025071286 A1 WO2025071286 A1 WO 2025071286A1
Authority
WO
WIPO (PCT)
Prior art keywords
template
lic
information
mode
reference block
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
PCT/KR2024/014635
Other languages
French (fr)
Korean (ko)
Inventor
류창우
최기호
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaon Group Co Ltd
Kyung Hee University
Original Assignee
Kaon Group Co Ltd
Kyung Hee University
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 Kaon Group Co Ltd, Kyung Hee University filed Critical Kaon Group Co Ltd
Priority to CN202480061234.9A priority Critical patent/CN121890065A/en
Priority claimed from KR1020240130656A external-priority patent/KR20250046218A/en
Publication of WO2025071286A1 publication Critical patent/WO2025071286A1/en
Anticipated expiration legal-status Critical
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present invention relates to video compression technology, and more particularly, to improvement of local illuminance compensation (LIC) technology included in prediction coding technology that contributes to improvement of compression performance in a video encoder and decoder.
  • LIC local illuminance compensation
  • the present invention may be in the same technical field as at least one of digital video compression technology standards known by the standard names such as MPEG-2, MPEG-4 Video, H.263, H.264/AVC, H.265/HEVC, H.266/VVC, VC-1, AV1, QuickTime, VP-9, VP-10, Motion JPEG, or in the technical field for improving the inherent efficiency of the standard, or in the technical field for improving or replacing the standard.
  • digital video compression technology standards known by the standard names such as MPEG-2, MPEG-4 Video, H.263, H.264/AVC, H.265/HEVC, H.266/VVC, VC-1, AV1, QuickTime, VP-9, VP-10, Motion JPEG, or in the technical field for improving the inherent efficiency of the standard, or in the technical field for improving or replacing the standard.
  • Digital video encoding and decoding are widely used in various digital video applications. For example, digital television broadcasting, transmission of video through communication networks, video calls/video conversations/video chats, recording and providing video content using optical media including VCD (video compact disc)/DVD (digital versatile disc)/Blu-Ray, all procedures for producing, editing, collecting, and distributing video content, and devices such as video shooting devices and camcorders for shooting and recording video for various reasons including personal, commercial, industrial, and security purposes, all depend on video encoding and decoding technologies.
  • VCD video compact disc
  • DVD digital versatile disc
  • Blu-Ray digital versatile disc
  • implementations that may be referred to as digital video encoders and decoders may form part of a wide range of devices, including digital televisions, digital broadcasting systems, wireless broadcasting systems, computers in the form of notebooks/desktops/tablets, e-book readers, digital cameras, digital recording devices, digital multimedia playback devices, video game devices/terminals/console, mobile phones (including smartphones) with multimedia playback capabilities, devices for video conferencing, and other devices related to the generation, recording, and provision of digital video.
  • the above digital video encoders and decoders can be implemented by a digital video compression standard that is widely used and understood by those skilled in the art.
  • the digital video compression standard can include at least one of compression standards known by standard names such as MPEG-2, MPEG-4 Video, H.263, H.264/AVC, H.265/HEVC, H.266/VVC, VC-1, AV1, QuickTime, VP-9, VP-10, and Motion JPEG.
  • Video encoders and decoders can be implemented to encode or decode digital video information more efficiently while complying with the above standards, or by improving or modifying the above standards. Attempts to modify the above standards can also lead to the derivation of new standards.
  • ECM enhanced compression model
  • JVET joint video experts team
  • the LIC technology refers to a technology that calculates a prediction residual by correcting (i.e., compensating) illuminance for a value of a prediction target block selected for predictive encoding in inter-picture predictive encoding (so-called inter encoding) and/or intra-picture predictive encoding (so-called intra encoding), and a decoding process corresponding to each of the above encoding methods, and in particular, it can mean that the compensation is performed locally, for example, on a block-by-block basis.
  • the present invention proposes an improved LIC implementation method to solve the above-described technical problems.
  • a method for decoding an encoded video bitstream comprises the steps of: obtaining at least one prediction vector for a current block currently being decoded from the bitstream; determining at least one reference block based on the prediction vector; defining at least one of a first template including at least one pixel adjacent to the current block as a reference block and a second template including at least one pixel adjacent to the reference block as a reference block; determining a template configuration mode including information on a method of using the template with respect to at least one of the first template and the second template; extracting information related to Local Illumination Compensation (LIC) with reference to at least one pixel information derived from at least one of the first template and the second template based on the at least one template configuration mode, and obtaining LIC information from the extracted information; generating a prediction sample for the current block by correcting the reference block by a LIC method operating based on the LIC information; and A step of restoring the current block using a sample may be
  • the above template configuration mode may be characterized by including at least one mode among a mode that uses the upper pixel of the reference block, a mode that uses the left pixel of the reference block, and a mode that uses the upper and left pixels of the reference block based on weights.
  • a mode used based on the above weights may be characterized by dividing the upper and left areas of the reference block into at least one zone and applying different zone-specific weights to each zone.
  • the above zone-specific weights are selected from a predefined table, and the step of determining the template configuration mode may include a step of obtaining information representing an index selected from the table from the bit string.
  • Information indicating the above index may be characterized as being implicitly determined on the decoder side based on previously decrypted video information.
  • the above template configuration mode may be characterized by including a mode for selecting and using only some pixels included in either the first template or the second template.
  • Some of the above pixels may be characterized in that they are selected through subsampling.
  • the above subsampling may be characterized in that, when the template includes an upper pixel area of the reference block, the area is divided into a first number of horizontal divisions, and a second number of pixels are selected from the divided area.
  • the above subsampling may be characterized in that, when the template includes a left pixel area of the reference block, the area is vertically divided into a first number of areas, and a second number of pixels are selected from the divided areas.
  • the above subsampling may be characterized by dividing the template into a first number of regions in at least one of horizontal and vertical directions, and selecting a second number of pixels from the divided regions.
  • the above subsampling may be characterized by dividing the upper pixel area in a horizontal direction when the template includes an upper pixel area of the reference block, and dividing the left pixel area in a vertical direction when the template includes a left pixel area of the reference block.
  • the step of determining the template configuration mode may include the step of obtaining a mode signal instructing to use at least one template configuration mode from the bit string, and the step of determining the template configuration mode based on the mode signal.
  • the step of determining the template configuration mode may include a step of implicitly determining the template configuration mode on the decoder side based on previously decrypted video information.
  • a method for encoding a bit stream generated from a video comprises the steps of: determining at least one prediction vector for a current block currently being encoded; determining at least one reference block based on the prediction vector; defining at least one of a first template including at least one pixel adjacent to the current block as a reference block and a second template including at least one pixel adjacent to the reference block as a reference block; determining a template configuration mode including information on a method of using the template with respect to at least one of the first template and the second template; extracting information related to Local Illumination Compensation (LIC) with reference to at least one pixel information derived from at least one of the first template and the second template based on the at least one template configuration mode, and acquiring LIC information from the extracted information; generating a prediction sample for the current block by correcting the reference block by a LIC method operating based on the LIC information; It may include a step of encoding, and a step of
  • the above template configuration mode may be characterized by including at least one mode among a mode that uses the upper pixel of the reference block, a mode that uses the left pixel of the reference block, and a mode that uses the upper and left pixels of the reference block based on weights.
  • a mode used based on the above weights may be characterized by dividing the upper and left areas of the reference block into at least one zone and applying different zone-specific weights to each zone.
  • the above template configuration mode may be characterized by including a mode for selecting and using only some pixels from at least one of the above templates.
  • Some of the above pixels may be characterized in that they are selected through subsampling.
  • the step of determining the prediction vector may include a step of referencing the first template according to a prediction template configuration mode
  • the step of obtaining the LIC information may include a step of referencing the first template according to a first LIC template configuration mode, a step of referencing the second template according to a second LIC template configuration mode, and a step of determining a LIC linear model through an operation based on a result of the referencing, wherein the LIC linear model may be a function defined by coefficients including a slope ( ⁇ ) and a bias ( ⁇ ).
  • the above prediction template configuration mode may include a mode for selecting and using only some pixels from the first template, and the step of determining the prediction vector may be characterized in that it is configured to determine the prediction vector through a template-based search based on the selected some pixels.
  • At least one of the first LIC template configuration mode and the second LIC template configuration mode may include a mode for selecting and using only some pixels from at least one of the templates, and the step of obtaining the LIC information may be characterized in that it is configured to determine at least one of the coefficients of the LIC linear model through an operation based on the selected some pixels.
  • the method may
  • At least one of the following effects can be derived from video encoding and decoding: improvement of encoding efficiency, improvement of decoding efficiency, improvement of video quality, reduction of computational amount, reduction of software size, reduction of hardware size, and improvement of other performances related to encoding and decoding.
  • Figure 1 is a conceptual diagram of a video communication system according to one embodiment of the present invention.
  • FIG. 2 is a conceptual diagram of the arrangement of an encoder and decoder in a real-time video streaming environment according to one embodiment of the present invention.
  • Figure 3 is a conceptual diagram of a functional unit of a video decoder according to one embodiment of the present invention.
  • Figure 5 is a conceptual diagram of a frame type according to one embodiment of the present invention.
  • Figure 6 is a conceptual diagram showing the structure of a video encoder according to the H.266/VVC standard.
  • Figure 7 is a conceptual diagram showing the general structure of a LIC application method according to one embodiment of the present invention.
  • FIG. 8 is an exemplary diagram showing an example of a template application mode according to one embodiment of the present invention.
  • Figure 9 is a conceptual diagram showing the shape and coefficient positions of a cross filter according to one embodiment of the present invention.
  • first, second, etc. may be used to describe various components, the components should not be limited by the terms. The terms are only used to distinguish one component from another.
  • first component could be referred to as the second component, and similarly, the second component could also be referred to as the first component, without departing from the scope of the present invention.
  • the term "and/or" includes any combination of a plurality of related listed items or any of a plurality of related listed items, and is non-exclusive unless otherwise indicated.
  • the listing of items in this application is merely an exemplary description to easily explain the spirit and possible implementation methods of the present invention, and therefore, is not intended to limit the scope of embodiments of the present invention.
  • a or B can mean “only A”, “only B”, or “both A and B”. In other words, as used herein, “A or B” can be interpreted as “A and/or B”. For example, as used herein, “A, B or C” can mean “only A”, “only B”, “only C”, or “any combination of A, B and C”.
  • a slash (/) or a comma can mean “and/or”.
  • A/B can mean “A and/or B”.
  • A/B can mean "only A”, “only B”, or “both A and B”.
  • A, B, C can mean "A, B, or C”.
  • At least one of A and B can mean “only A”, “only B” or “both A and B”. Additionally, as used herein, the expressions “at least one of A or B” or “at least one of A and/or B” can be interpreted identically to “at least one of A and B”.
  • At least one of A, B and C can mean “only A”, “only B”, “only C”, or “any combination of A, B and C”. Additionally, “at least one of A, B or C” or “at least one of A, B and/or C” can mean “at least one of A, B and C”.
  • the embodiments may be described or illustrated in terms of unit blocks that perform the described function or functions.
  • the blocks may be expressed as one or more devices, units, modules, parts, etc. in this application.
  • the blocks may be implemented in hardware by one or more logic gates, integrated circuits, processors, controllers, memories, electronic components, or information processing hardware implementation methods that are not limited thereto.
  • the blocks may be implemented in software by application software, operating system software, firmware, or information processing software implementation methods that are not limited thereto.
  • One block may be implemented by being separated into multiple blocks that perform the same function, or conversely, one block may be implemented to perform the functions of multiple blocks simultaneously.
  • the blocks may also be implemented by being physically separated or combined by any criterion.
  • the blocks may be implemented to operate in an environment where their physical locations are not specified and are separated from each other by a communication network, the Internet, a cloud service, or a communication method that is not limited thereto. All of the above implementation methods are within the scope of various embodiments that can be taken by a person skilled in the field of information and communication technology to implement the same technical idea, and therefore, any detailed implementation method should be interpreted as being included within the scope of the technical idea of the invention of the present application.
  • FIG. 1 is a conceptual diagram of a video communication system according to one embodiment of the present invention.
  • the video communication system (100) may be configured to include at least two terminals (110, 120) that are connected to each other through a network (105).
  • FIG. 1 may mean a block diagram for configuring a one-way video communication network.
  • a first terminal (110) among the terminals may encode the video data in order to transmit (111) the video data through a network (105).
  • a second terminal (120) among the terminals may be configured to receive (121) the encoded video data through a network and decode and display it.
  • each terminal 110, 120 may be configured to encode video data acquired by itself for video transmission (112, 122) to each other terminal via the network.
  • Each terminal may also be configured to receive (113, 123) and decode video data transmitted by another terminal via the network, and display the decoded video data.
  • each terminal (110, 120) shown in Fig. 1 may be exemplified as devices such as server computers, personal computers, portable computers, and smartphones, depending on the embodiment, but are not limited thereto, and may be any computing device generally used.
  • each terminal (110, 120) may mean a desktop computer, a laptop computer, a tablet PC, a mobile phone, a smart phone, a PDA (personal digital assistant), a workstation, an electronic calculator, a server computer, a cloud computer, a virtual computer, a quantum computer, or any other electronic, electrical, or quantum computing device implemented in a movable or non-movable form, and in particular, it may be interpreted as any device designed to operate as a terminal device according to an embodiment of the present invention among such devices, capable of operating as a terminal device according to an embodiment of the present invention, or capable of installing and/or executing a computer program that enables operating as a terminal device according to an embodiment of the present invention or performing a method corresponding to such
  • Each of the above terminals (110, 120) may be implemented by a plurality of functional units that are interconnected in various forms, such as a bus, a circuit, or a relationship between a routine and a subroutine, and configured to exchange information within each of the above terminals (110, 120).
  • the above terminals may be configured to include a processor (130) having a calculation function and a memory (140) connected to the processor.
  • the processor (130) described in this specification may mean one or more general-purpose computers or special-purpose computers, such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing instructions and responding.
  • ALU arithmetic logic unit
  • FPA field programmable array
  • PLU programmable logic unit
  • microprocessor or any other device capable of executing instructions and responding.
  • processor (130) may include a plurality of processing elements and/or a plurality of types of processing elements.
  • a device may include a plurality of processors or one processor and one controller as the processor (130).
  • the processor (130) may be implemented by various processing configurations, such as a parallel processor or a multi-core processor.
  • the processor (130) may be configured to execute an operating system (OS) and one or more software executed on the operating system. In addition, the processor may access, store, manipulate, process, and generate data in response to the execution of the software.
  • the software may include a computer program, a code, an instruction, or a combination of one or more of these, and may configure a processing device to operate as desired or independently or collectively command a processing device.
  • the software may be permanently or temporarily embodied in any type of machine, component, physical device, virtual equipment, computer storage medium or device, or transmitted signal wave to be interpreted by the processor (130) or to provide instructions or data to the processor.
  • the software may be distributed among a plurality of computer systems connected to the network (105), such as the terminals (110, 120), and stored or executed in a distributed manner.
  • the software may also be implemented in the form of program commands that can be executed through various computer means and recorded or stored in the memory (140).
  • the memory (140) may be a computer-readable recording medium, and program commands, data files, data structures, etc. may be recorded singly or in combination in the computer-readable recording medium.
  • the program commands stored in the memory (140) may be based on a command system specifically designed and configured for the embodiment of the present invention, or may follow a command system known and available to those skilled in the art of computer software, for example, a command system exemplified by the assembly language, C, C++, Java, Python, etc. It should be understood that the command system and the program commands thereby include not only machine language codes created by a compiler, but also high-level language codes that can be executed by the device and/or the processor (130) according to one embodiment of the present invention using an interpreter, etc.
  • the computer-readable recording medium constituting the device according to one embodiment of the present invention may include a temporary or volatile recording medium that is maintained only while the processor is operating, such as a processor cache, a RAM, a flash memory, or a relatively nonvolatile or long-term recording medium, such as a magnetic media such as a hard disk, a floppy disk, and a magnetic tape, an optical media such as a CD-ROM, a DVD, a magneto-optical media such as a floptical disk, or a solid state memory, or a read-only recording medium such as a ROM arranged on hardware, and further, the hardware itself configured to perform an operation equivalent to a series of program commands by a hard-wired structure by circuit wiring, and since each step for performing the operation implementing the embodiment of the present invention can be viewed as being recorded by the connection and arrangement of the hardware components, the connection and arrangement method It is obvious to those skilled in the art that this can soon be seen as equivalent to the above memory
  • one hardware device may be configured to operate as a module composed of one or more of the software to perform the operations of the embodiments of the present invention, and vice versa.
  • all or part of the operations assigned to a certain functional unit may be implemented by one or more of the software stored in the device according to one embodiment of the present invention (preferably, in any one of the recording media belonging to the category of the memory) and configured to be executed by the processor, and in this case, such a functional unit may be referred to as a functional unit "included" in the processor.
  • the present invention is applicable to all environments for forming a one-way or two-way video communication network, and it should be understood that the network (105) can be formed by any means for transporting encoded video data between the terminals (110, 120).
  • the network (105) may mean a wired or wireless communication network.
  • the network may be configured to communicate information using any communication standard, and the communication standard may include packet-based communication.
  • the packet communication may be understood to mean including, for example, a packet known as TCP or UDP.
  • the wired communication method of the network (105) may be a method of connecting to an external communication network by a telephone line of the RJ-11 standard, an Ethernet cable belonging to various categories of the RJ-45 standard, other coaxial cables, metal cables, optical cables, and other various wired media.
  • the wireless communication method of the above network (105) may include, depending on the embodiment, a short-range wireless communication method including Bluetooth, Wi-Fi, Zigbee, and NFC (near field communication), or may include a long-range wireless communication method that may be referred to as a name of a wireless communication technology collectively called a generation name of communication standards such as Wibro, WiMax, Global Systems for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Long-Term Evolution (LTE), New Radio (NR), and other 2G, 3G, 4G, 5G, and 6G, and a name of an international standard wireless communication standard such as IMT-2000, IMT-Adcanced, IMT-2020, and IMT-2030.
  • GSM Global Systems for Mobile Communications
  • CDMA Code Division Multiple Access
  • WCDMA Wideband Code Division Multiple Access
  • LTE Long-Term Evolution
  • NR New Radio
  • any conventional or newly developed wired or wireless communication means, method, standard, and protocol are applied to the implementation of the network (105), there is no problem in achieving the purpose of the present invention as long as it is a means configured to perform transmission and reception in an information and communication device such as the terminal (110, 120).
  • one network (105) can be configured in a mixed manner by one or more wired and/or wireless standards.
  • the network (105) may be understood to include a process of information transmission using a computer-readable recording medium.
  • the configuration of the network is not limited to a communication medium, and should be understood to include a process of temporarily storing and physically transporting in a computer-readable memory and/or recording medium.
  • the computer-readable recording medium used for the information transmission may be understood to mean, in particular, a relatively non-volatile or long-term recording medium such as a magnetic media such as a hard disk, a floppy disk, and a magnetic tape, an optical media such as a CD-ROM, a DVD, a magneto-optical media such as a floptical disk, or a solid state memory, which is mainly used as a means of transporting data between computing devices.
  • a relatively non-volatile or long-term recording medium such as a magnetic media such as a hard disk, a floppy disk, and a magnetic tape
  • an optical media such as a CD-ROM, a DVD
  • magneto-optical media such as a floptical disk
  • solid state memory which is mainly used as a means of transporting data between computing devices.
  • Any other means of information communication or transportation applied can be considered to fall within the scope of embodiments of the present invention as long as it has a structure that supports transmitting video data in an encoded state and decoding it. Accordingly, in addition to some of the examples listed above, all means of information communication or transportation known in the past or newly provided can fall within the scope of application of the present invention.
  • FIG. 2 is a conceptual diagram of the arrangement of an encoder and decoder in a real-time video streaming environment according to one embodiment of the present invention.
  • the streaming system (200) illustrated in FIG. 2 can be considered to be applied to, for example, a video data communication network including digital broadcasting, video telephony, and video conferencing.
  • a video data communication network including digital broadcasting, video telephony, and video conferencing.
  • the technical structure identical to or similar to the streaming system can be equally applied to a case where information is transmitted via a recording medium as described above.
  • the streaming system may include a video source (210) that generates a video stream.
  • the video source may include a digital video acquisition means (212), which may be, for example, a digital camera or other device, for acquiring uncompressed raw video.
  • the raw video stream (215) may have a huge capacity and may therefore be compressed by a video encoder (217) coupled or connected to the video source.
  • the above encoder (217) may be configured as a means including hardware, software, or a combination of the two, configured to implement an image encoding method and/or an implementation method thereof according to one embodiment of the present invention.
  • an encoded bit stream (219) with a reduced capacity compared to the original video stream can be output.
  • the bit stream (219) can be provided in real time for communication by a relay device, which may be referred to as a streaming server (220), for example, and/or can be stored in a recording medium (225) of the streaming server (220) for subsequent use.
  • the streaming system (200) may include at least one streaming client (230, 240) that connects to the streaming server (220) to receive the encoded bit string (229) in real time or obtain it later.
  • the streaming client may include a video decoder (232) that obtains the encoded bit string (229) (which may also be considered as a copy of the bit string (219) received by the streaming server), decodes the bit string (229), and outputs the resulting video data as video data in a form that can be displayed by a display (235) or other visual, auditory, or other sensory display means.
  • the functions for encoding and decoding video data are collectively called a coder-and-decoder, or video codec.
  • FIG. 3 is a conceptual diagram of a functional unit of a video decoder according to an embodiment of the present invention.
  • a receiving unit (310) can receive at least one encoded video data to be decoded by a decoder (305).
  • the encoded video data can be independent for each reception, and a decoding procedure of each independent video data can be independent from a decoding procedure of other video data.
  • the encoded video data can be received by the receiving unit (310) through a hardware or software connection (315) to a device storing the same, and as described above, the storing device may be a kind of streaming server located at the other end of a communication network, or may mean a physical recording medium, but is not limited thereto.
  • the above receiving unit (310) can receive the encoded video data together with other data accompanying it, such as encoded audio data or other auxiliary data, and each of the data can be separated from the video data and provided to an appropriate processing function unit (312) other than the video decoder.
  • a buffer memory (320) may be coupled between the receiving unit (310) and the decoder (305) in order to minimize delay and disconnection according to the network environment.
  • the buffer memory (320) may mean a computer-readable recording medium that temporarily stores the received video data and stably supplies it to a parser (330) corresponding to the input terminal of the decoder (305).
  • the buffer memory may be unnecessary.
  • the video decoder (305) may include the parser (330) as its input terminal to interpret the encoded video data.
  • the parser may perform a function of separating (parsing) a plurality of pieces of information stored in the form of a bit string in the encoded video data according to a predetermined rule, and, if necessary, performing an entropy decoding (335) of entropy-coded video data, thereby performing a function of reconstructing symbols (338), which are paragraphs of video encoding information.
  • the symbols (338) may include all information for controlling the operation of the decoder (305), and/or may further include information for controlling a device that is attached to the decoder (305) and can operate, such as a display device, such as a display. Control information for controlling the above display device may include information in a format called supplementary enhancement information (SEI) or video usability information (VUI).
  • SEI Supplemental Enhancement Information
  • VUI video usability information
  • the parser (330) may be configured to perform entropy decoding (335) of the encoded video data.
  • the entropy encoding method of the encoded video data may vary depending on the encoding standard, and decoding may be performed correspondingly.
  • Representative examples of the entropy encoding standard may include variable length coding, Huffman coding, and arithmetic coding, and each of the encoding methods may be a context-adaptive or context-sensitive method depending on the standard, and may be based on principles widely known to those skilled in the art.
  • the parser (330) may be configured to extract at least one partial image from the encoded video data.
  • the definition of the partial image may vary depending on the encoding standard, and depending on the standard, one or more of the examples listed below may correspond simultaneously and overlappingly.
  • the partial image may be defined as a unit such as a group of pictures (GOPs), pictures/frames, tiles, slices, macroblocks, blocks, subblocks, transform units (TUs), or prediction units (PUs).
  • the parser (330) may be configured to extract encoding information, such as transform coefficients, quantization parameters (QPs), and/or motion vectors, from the encoded video data.
  • the parser (330) may be configured to perform entropy decoding (335) and parsing operations on the video data received from the buffer memory, and to selectively decode symbols (338) representing the encoding information.
  • the parser (330) may be configured to selectively supply a specific symbol (338) to a specific decoding function unit within the decoder (305), such as an inverse quantization and inverse transform unit (340), an intra prediction unit (350), an inter prediction unit (355), or a loop filter unit (360). Control of such information supply can be determined by the information sequence contained in the encoded video, and may vary depending on the encoding standard, and is not limited within the scope of the embodiments of the present invention, and is not described in detail in this conceptual diagram.
  • the above decoder (305) may be composed of a plurality of conceptual functional units that receive and process the encoding information from the parser (330). It is obvious that these conceptual functional units may be combined with each other or further subdivided according to implementation needs. For example, they may be further separated for ease of implementation and integrated into one for efficiency of operation. In any case, each functional unit may be configured to perform close interaction with each other. However, despite the possibility of such integration or separation, the following will be described as a combination of conceptual functional units in order to illustrate a decoding procedure of video data applied as an embodiment of the present invention.
  • the above decoder may include an inverse quantization and inverse transformation unit (340).
  • the inverse quantization and inverse transformation unit (340) may be configured to receive encoding information including a method to be used for numerical transformation from the parser (330), a size of a block, quantization coefficients for recovering quantized information, and distinction information of a quantization matrix that simplifies and represents the quantized coefficients, and may be configured to output block values (341) that may be input to an aggregator (370) as a result of processing the encoding information.
  • the output values of the inverse quantization and inverse transformation unit (340) may include intra-prediction encoded block values.
  • the intra-predicted block values may mean values that can be decoded without using prediction information from a previously decoded partial image, for example, a previous frame, but using prediction information within a partial image currently being decoded, for example, a current frame.
  • the prediction information within the current partial image may be provided by the intra prediction unit (350).
  • the intra prediction unit (350) generates a block value having the same form as the block being decoded as the prediction information by using the image information of a spatially adjacent area derived from a partial image currently being decoded and of which decoding has been partially completed.
  • the partial image information may be provided (381) from a current image buffer, a so-called line buffer (380).
  • the merging unit (370) may be configured to merge the prediction information (351) generated by the intra prediction unit (350) with the block values (341) provided by the inverse quantization and inverse transformation unit (340), according to an embodiment.
  • the output values of the inverse quantization and inverse transformation unit (340) may include block values subjected to motion compensation as inter-prediction encoded block values, and in some cases, block values subjected to motion compensation.
  • the inter-prediction unit (355) may extract and use sample information (386) used for motion-based prediction from a reference picture buffer (385).
  • the information (356) derived by performing motion compensation on the sample information based on the symbols (338) included in the block values as the output values may be configured to be merged with the block values (341) provided by the inverse quantization and inverse transformation unit (340) by the merging unit (370).
  • the block values (341) may be referred to as so-called differential or residual values.
  • the position information in the memory used by the inter prediction unit (355) to extract the sample information from the reference image may be determined by a motion vector provided to the inter prediction unit (355) which is composed of a combination of symbols (338) for representing, for example, X, Y, and other specific points of the reference image.
  • the inter prediction unit (355) may also include a function capable of interpolating and using the sample values when a so-called 'subsampling' capable motion vector is provided, and may further include a function for predicting and reinforcing the value of the motion vector.
  • the output values (371) of the above merging unit (370) may be provided to the loop filter unit (360) and processed by various loop filtering methods.
  • the loop filter unit (360) may be configured to receive not only the block unit output (371) of the merging unit (370) but also the symbol (338) provided from the parser (330) and control its operation.
  • the output of the loop filter unit (360) may be output to an external display means such as the display device through an output connection (390), but may be stored (361) in a line buffer (380) for use in prediction for interpreting a subsequent intra or inter encoded block value, and may also be stored in a reference image buffer (385) through this.
  • Specific partial images such as frames, after their decoding is completed, can be utilized as reference images for performing predictive decoding in a subsequent decoding process.
  • One partial image such as a frame, can be gradually accumulated in a line buffer (380) and decoded, and when one frame is decoded, the contents of the line buffer (380) can be transferred (383) to the reference image buffer (385), and a new line buffer (380) can be allocated for decoding a new frame.
  • the above video decoder (305) may be configured to perform a decoding operation according to a predetermined video compression technique that may be documented by various international standard specifications or commercial standards.
  • the standards may include, for example, international standard recommendations such as H.264, H.265, and H.266 defined by the International Telecommunication Union Standardization Sub-Tier (ITU-T).
  • ITU-T International Telecommunication Union Standardization Sub-Tier
  • ISO International Organization for Standardization
  • IEC International Electrotechnical Conference
  • the encoded video data may comply with a specific bitstream syntax defined by the corresponding standard as defined in the video compression standard document and standard document, and specifically, by the profile and level specified within such document.
  • the complexity of the encoded video data may be limited to a certain level in order to comply with the profile and level.
  • a profile or level may be configured to limit a maximum picture size, a maximum decoding speed, and a maximum reference picture size.
  • the limitations may also, in some embodiments, be further limited via metadata signals for a hypothetical reference decoder (HRD) and HRD buffer management included in the encoded video data.
  • HRD hypothetical reference decoder
  • the receiver (310) may receive additional redundant data together with the encoded video.
  • the additional data may be considered as a part of the encoded video data.
  • the additional data may include information that may be used by the decoder (305) to properly decode the data, or to more accurately reconstruct an image that approximates the original image before encoding.
  • the additional data may be provided in the form of, for example, layers for temporal, spatial, or signal-to-noise ratio (SNR) enhancement, redundant slices, redundant pictures, and forward error correction codes.
  • SNR signal-to-noise ratio
  • FIG. 4 is a functional unit conceptual diagram of a video encoder according to one embodiment of the present invention.
  • the encoder (405) may be configured to receive original video information (402) from a video source (401) and perform encoding.
  • the above original video information (402) may have any suitable bit depth, for example, 8 bits, 10 bits, 12 bits, etc.
  • the original video information (402) may have any suitable color space, for example, R/G/B, Y/U/V, Y/Cb/Cr, etc.
  • the original video source may have any suitable sampling structure corresponding to the color space, for example, may have a format such as Y/Cb/Cr 4:2:0, Y/Cb/Cr 4:4:4.
  • the original video source having such a predetermined format may be provided to the encoder in the form of a digital video stream.
  • the original video information (402) can be obtained from a recording medium storing a previously prepared video original.
  • the original video information (402) can be obtained from an image acquisition device, such as a camera, that generates at least one video transmission stream included in the two-way video communication.
  • the video data including the above original video information (402) may be configured as a plurality of partial images configured to simulate motion by being played back in time order.
  • the partial images may be expressed as concepts such as pictures or frames, for example.
  • the partial images may include one or more samples depending on the type of sampling structure, color space, etc. being used. A person skilled in the art will understand that the sample and the pixel in a digital image are closely related terms. Hereinafter, the operation of the encoder will be described based on such samples.
  • the encoder (405) may be configured to encode and compress (partial) images constituting the original video information (402) in real time (or according to other temporal requirements required according to the implementation method) into the form of encoded video information.
  • control unit (450) may be a functional unit configured to control an appropriate encoding speed.
  • the control unit (450) may be configured to control other functional units and be functionally coupled to the following functional units as described below.
  • the parameters set by the control unit (450) may include parameters related to bitrate control, such as skip of the picture, quantizer, variable values for applying a picture quality optimization technique, and may also include values such as the size of the picture, the structure of a group of pictures (GOP), and the maximum search range of a motion vector.
  • GOP group of pictures
  • a person skilled in the art will be able to understand various other functions that the control unit (450) may have, and such other functions may be added or removed according to the design of a video encoder optimized for an individual system design.
  • the encoder (405) may be configured to operate in a structure such as a "coding loop" well known to those skilled in the art.
  • the coding loop may be configured with an internal encoder (so-called “source coder”) (410) which is responsible for receiving an image to be encoded and generating symbols based on at least one reference image that has been encoded in the past, and a local decoder (420) which is configured to be connected to the internal encoder.
  • the local decoder (420) may be configured to perform an operation to reproduce sample data to be generated by a decoder (490) located at an actual remote location that will receive encoded video information from the encoder (405) by receiving an output of the internal encoder (410).
  • the video data composed of sample data reconstructed by the internal decoder (420) may be configured to be input to the reference picture buffer of the encoder (405).
  • the internal decoder (420) is implemented to reproduce the result output by the encoder (405) and to be decoded by a remote decoder, so the video data recorded in the reference picture buffer may also be identical in bit units to the information of the reference picture buffer of the remote decoder. That is, the prediction function unit that may be included in the encoder (405) may read the same values as the sample values of the previous frame that the decoder will later refer to in the decoding process from the reference picture buffer of the encoder (405).
  • the principle of achieving matching of reference image buffers between the encoder (405) and the decoder (490) by means of the internal decoder (420) on the encoder (405) side is well known to those skilled in the art, and a method of responding to an environment in which such an environment is not guaranteed (e.g., information loss due to communication failure, etc.) can also follow what is well known to those skilled in the art.
  • the decoder of FIG. 3 may be considered as the "remote" decoder (490) described above.
  • the internal decoder (420) may be implemented excluding lossless encoding and decoding sections such as the parser (330) or the entropy decoding (335). This is because the internal encoder (405) is implemented to simply reproduce the operation of the decoder located at a remote location, and thus the symbols may be decoded directly without requiring a process of compressing and then decompressing the symbols. Accordingly, the functional sections preceding the parser and the entropy decoder as shown in FIG. 3 may not be provided or may be implemented at least partially.
  • any decoder function (excluding a parser and an entropy decoder) present in the decoder can naturally exist as a substantially identical function in the corresponding encoder (405).
  • the operation of the encoding function unit that may be included in the above encoder (405) may be considered as the reverse of the decoder function unit. Therefore, the embodiment may be explained by generally performing the operation of the decoder function unit in reverse. For example, a quantization and transform function unit corresponding to the inverse quantization and inverse transform unit may be provided, and an inter prediction encoding unit corresponding to the inter prediction unit may be provided. In addition, some additional explanations will be added.
  • the above internal encoder (410) may be configured to perform encoding on input image information, for example, an input frame, by a predictive encoding method executed by a predictive encoding unit (440) that operates by referencing at least one temporally previous encoded partial image, for example, frames, from a reference image buffer (430) from at least one reference image information, for example, video data designated as a reference frame.
  • the encoder (405) may be configured to encode a differential between blocks of samples constituting the input image and blocks of samples constituting the reference image.
  • the internal decoder (420) can decode video data that can be designated as the reference picture from symbols generated by the internal encoder (410). As described above, since the video data is identical to the decoding operation performed by the remote decoder, the video data used as the reference picture can be provided to the encoder (405) in a form in which some damage has occurred due to lossy compression, and this operation can be intended for operation consistency with the decoder.
  • the prediction encoding unit (440) may be configured to perform a prediction search operation within the encoder (405).
  • the prediction search operation may mean an operation corresponding to the inter prediction or intra prediction described in the description of the decoder.
  • the prediction unit may access the reference image buffer (430) to retrieve information, such as a motion vector, a block shape, and metadata that may include the motion vector, which are information indicating points of a reference image that can function as prediction reference information suitable for the new image information, and a sample block to be actually referenced.
  • the prediction encoding unit (440) may operate on the basis of the so-called "sample block by pixel block" in order to obtain appropriate prediction reference information.
  • at least one prediction reference information designating at least one reference image information stored in the reference image buffer (430) may be specified for the input image, as determined based on the search results obtained by the prediction encoding unit (440).
  • control unit (450) may be configured to manage the overall encoding operation of the internal encoder (410), including setting parameters used to encode video data.
  • the entropy encoding (460) may include various entropy coding techniques, such as variable length coding, Huffman coding, and arithmetic coding, for the symbols generated by the various functional units as described above, and each encoding method may be a context-adaptive or context-sensitive method according to the standard, and may also be based on principles widely known to those skilled in the art.
  • the entropy encoding (460) can typically achieve lossless compression, and thus may be configured to convert at least one symbol generated by the functional units into encoded video data.
  • the above control unit (450) can apply the type of encoding of a specific partial image during an encoding section to each partial image, such as a picture or a frame, when controlling the operation of the encoder (405).
  • the type can include what is classified as a “frame type” as follows.
  • Fig. 5 is a conceptual diagram of a frame type according to one embodiment of the present invention. The following description will be made with reference to Fig. 5.
  • An intra (“I") picture may mean a picture that can be encoded and decoded only with its own information without referring to other picture information in the video data by predictive encoding.
  • the "I” picture may be designated by names such as a key frame, an independent/instantaneous decoder referh (IDR) frame, and a clean random-access (CRA) frame according to a video encoding standard, and the "I” pictures designated by various names as described above may have various modifications and application methods as permitted by each standard and may be partially different from each other.
  • various application methods for implementing the "I” picture may be by various methods that are already known to those skilled in the art or may be newly provided.
  • a prediction (“P") picture may mean a picture that can be encoded and decoded through intra or inter prediction based on at least one prediction information and/or a motion vector that designates at least one reference picture to predict sample values of a block constituting the picture.
  • the "P" picture may be configured to refer to only one reference frame, or may be configured to refer to one or more reference frames, according to a video encoding standard. When referring to one or more reference frames, sample information and/or associated metadata derived from a plurality of reference pictures may be used for reconstructing a single block. However, in common cases, a picture designated as a "P" picture may be understood as a picture that performs reference only to a temporally preceding picture.
  • a bidirectional prediction (“B") picture may mean a picture that can be encoded and decoded through intra or inter prediction based on at least one prediction information and/or a motion vector that designates at least two reference pictures to predict sample values of blocks constituting the picture.
  • a picture designated as the "B" picture is distinguished from a picture designated as the "P" picture, and may be understood as a picture that performs a reference without being limited to a temporally preceding picture.
  • Video data may be spatially divided into a plurality of sample blocks in the process of encoding and decoding, and encoding may be performed in block units.
  • the block units may include, but are not limited to, sizes such as 4x4, 8x8, 4x8, or 16x16 in units of horizontal/vertical pixels, as is widely known.
  • the block may be encoded by a predictive encoding method with reference to any other (already encoded) blocks, as permitted and/or restricted by the type specified for each partial picture including the block.
  • the blocks of the "I" picture (510) may be encoded without using a predictive encoding method, or with reference to blocks already encoded in the same partial picture. That is, only the so-called intra prediction method may be used.
  • the "P" picture (520) may further refer to a reference picture encoded in at least one previous time unit, and thus inter prediction may also be used for encoding along with intra prediction.
  • a "B" picture (530) reference can be made not only to a previously encoded picture in the encoding order but also to a later reference picture in terms of time unit.
  • the above video encoder (405) may be configured to perform an encoding operation according to a predetermined video compression technique that may be documented by various international standard specifications or commercial standards. Examples of the above standards may include all of those described in the above decoder.
  • the transmitter (470) may buffer the encoded video data generated by the entropy encoding in order to provide/transmit the video data (ultimately to a remote decoder (490)) to a device storing the encoded video data via a hardware or software connection (495).
  • the transmitter (470) may receive and merge other data accompanying the encoded video data, for example, encoded audio data or other auxiliary data, from a separate source (480).
  • the transmitter (470) may be configured to further transmit additional data together with the encoded video.
  • the additional data may be considered as part of the encoded video data.
  • the additional data may include information that may be used by the decoder to properly decode the data, or to more accurately reconstruct an image that approximates the original image before encoding. Examples of the additional data may include all of the examples presented above with respect to the receiver (310) of the decoder.
  • the present invention can be implemented by a digital video compression standard widely used and understood by those skilled in the art as described above.
  • the digital video compression standard may include at least one of compression standards known by standard names such as MPEG-2, MPEG-4 Video, H.263, H.264/AVC, H.265/HEVC, H.266/VVC, VC-1, AV1, QuickTime, VP-9, VP-10, and Motion JPEG.
  • Fig. 6 is a conceptual diagram showing the structure of a video encoder according to the H.266/VVC standard. What is shown in Fig. 6 corresponds to the rough structure of a video encoder widely known as a standard code such as ITU-T H.266 and ISO/IEC 23090-3, and also under the name of MPEG-I Part 3 or the general name of versatile video coding (VVC).
  • a standard code such as ITU-T H.266 and ISO/IEC 23090-3
  • VVC versatile video coding
  • the video encoder (605) may be configured to receive uncompressed and unencoded original video data (601) as input and output an encoded bit stream (602).
  • the video data (601) may be supplied directly to a luma mapping unit (610a) in the case of intra encoding, or may be supplied to a luma mapping unit (610b) via an inter prediction unit (620) including motion vector extraction.
  • the mapped luma signal may be supplied to an output merger (606) alone, or by selecting (608) at least one of an intra prediction encoded signal via the intra prediction unit (625) or an inter prediction encoded signal output from the luma mapping unit (610b) via the inter prediction unit (620).
  • the result of the above output merger can be applied to a chroma scaling unit (615).
  • the operation of the luminance signal mapping unit (610) and the operation of the chroma scaling unit (615) are collectively referred to as a luma mapping/chroma scalaing (LMCS) process.
  • the reduced chroma signal can be provided to a transform unit (630), and the transform unit (630) can perform an adaptive color transform, particularly on the chroma signal.
  • the coefficient derived as a result of the transform is applied to a quantization unit (640) and quantized.
  • lossy compression is achieved, and the result of the lossy compression can be output as a bit string (602) through a multi-hypothesis CABAC (650), which is a lossless compression method.
  • the result of the lossy compression may enter a decoding procedure by going through inverse quantization (645), inverse transform (635), and luma signal expansion (617) processes to generate a coding loop.
  • the result of the luma signal expansion may be supplied to an internal merger (607) together with a result of selecting (608) at least one of the previously generated intra prediction encoding signal or inter prediction encoding signal.
  • the result of the internal merger may go through inverse luma mapping (617), and then may go through processing such as a deblocking filter (660), a sample adaptive offset (SAO) (670), and an adaptive loop filter (ALF) to reproduce an image quality improvement process in a decoder.
  • the result of reproducing the operation in the decoder as described above is applied to the reference image buffer (690) and can be reused for prediction encoding by the inter prediction unit (620).
  • the present invention can also be utilized by or in combination with the enhanced compression model (ECM), which is an implementation of a next-generation video codec being developed by the joint video experts team (JVET), an international standardization expert group, to improve H.266/VVC.
  • ECM enhanced compression model
  • JVET joint video experts team
  • JVET AC2025-v1 the improved compression model may include an improved intra prediction coding method, an improved inter prediction coding method, an improved transform and transform coefficient coding method, an improved adaptive loop filtering method, a bilateral filtering method, a new sample adaptive offset (SAO) method for image quality improvement, an extended entropy coding method, and an improved gradual decoding refresh (GDR) technique, and such techniques may be included in the present invention as background techniques for implementing the present invention.
  • SAO new sample adaptive offset
  • the present invention provides a method for applying an improved local illuminance compensation (LIC) technique that can be used in the video encoding and decoding field including the above-described embodiments, and a device to which such a method is applied.
  • LIC local illuminance compensation
  • FIG. 7 is a conceptual diagram showing the general structure of a LIC application method according to an embodiment of the present invention.
  • Weighted Prediction is applied in traditional video coding standards.
  • the WP is applied on a frame-by-frame basis, and is a technology that compensates for brightness changes in a reference block in order to accurately obtain a prediction value when encoding the current frame.
  • the WP is applied to both H.264/AVC and H.265/HEVC, and can be used by dividing it into an explicit mode and an implicit mode depending on whether or not a brightness compensation parameter is transmitted for each slice.
  • the above WP-based technology can compensate for the predicted value of the reference frame for the entire image by responding well to the brightness change between frames, but it cannot properly perform brightness compensation for local brightness changes due to technical limitations applied on a frame-by-frame basis.
  • the LIC technology is a technology that induces appropriate brightness compensation for local predicted brightness changes.
  • the above LIC is a technology for modeling (760) local brightness changes between a final prediction block (770) for a current block (710) and a final prediction block (770) by a function (750) that approximates between a value (730) based on a current block (710) and a value (740) based on a reference sample (720) between a template (715) adjacent to a current block (710) and a template (725) adjacent to a reference block (720).
  • the parameters of the function can be represented by a scale ⁇ and an offset ⁇ that form a linear equation, which can be expressed in the form of ⁇ *p[x]+ ⁇ as a linear equation for compensating for brightness changes, where p[x] can mean a reference sample pointed to by a motion vector (MV) (717) at a location x on a reference picture in an inter prediction method.
  • MV motion vector
  • the MV can be clipped considering an offset that takes into account the circular pixel space structure.
  • ⁇ and ⁇ can be derived based on the current block template and the reference block template, no signaling overhead is required for them, except when a LIC usage indication flag is signaled in the bitstream to indicate the usage of the LIC (preferably for the Advanced Motion Vector Prediction (AMVP) mode).
  • AMVP Advanced Motion Vector Prediction
  • the LIC technology disclosed in the present invention can be equally utilized for intra prediction, and for example, in the case where a BV (block vector) for intra prediction is used instead of the MV (717) as a prediction vector for the current block, in the case where the MV and/or the BV is derived from a decoder, in the case where a chained vector is used that is determined by sequentially referencing the MV and/or the BV, or in the case where any type of prediction vector is used by any other method, the present invention does not exclude the possibility that a method based on the LIC technology according to an embodiment of the present invention may be equally applied.
  • an implementation method citing the method proposed in JVET Technical Contribution JVET-O0066 can be modified as follows and used for a block that is inter-coded between screens, for example, an inter-coded unit (inter-coded CU).
  • inter-coded CU inter-coded unit
  • neighboring samples in the intra aspect can be used to derive the LIC parameter. This allows the accuracy of LIC to be improved by utilizing information of intra-encoded neighboring blocks.
  • LIC can be disabled for blocks having less than 32 luminance samples. This reduces unnecessary operations and improves coding efficiency for small-sized blocks.
  • LIC parameter derivation in non-sub-block and affine mode, can be performed based on template block samples corresponding to the current CU instead of partial template block samples corresponding to the first 16x16 unit from the upper left. This allows more information to be utilized to improve the accuracy of LIC.
  • samples of a reference block template can be generated using MC (motion compensation) together with the MV of the corresponding block without rounding to integer pixel precision. This enables more precise prediction, thereby improving coding efficiency.
  • two sets of LIC parameters may be derived separately for L0 and L1 prediction samples.
  • the L0 and L1 prediction samples may mean respective samples obtained in two prediction directions used in the bi-directional prediction.
  • the L0 prediction sample may mean a prediction sample derived from a reference picture that is generally temporally earlier than the current picture. That is, it may represent prediction information obtained from a past frame.
  • the L1 prediction sample may mean a prediction sample derived from a reference picture that is generally temporally later than the current picture. That is, it may represent prediction information obtained from a future frame.
  • the L0 and L1 prediction samples may be obtained from different reference pictures, and they may be at different temporal positions.
  • the L0 and L1 prediction samples may be obtained from different reference pictures, and they may be at different temporal positions.
  • the same method can be repeatedly applied to derive the L0 and L1 LIC parameters.
  • the L0 LIC parameter is first derived by minimizing the difference between the L0 template prediction T0 and the template T, and the samples of T can be updated by subtracting the corresponding samples of T0.
  • the L1 parameter that minimizes the difference between the L1 template prediction T1 and the updated template can be calculated.
  • the L0 parameter can also be refined again in the same manner.
  • weights considering temporal characteristics of each direction can be applied. For example, if the L0 prediction sample is temporally closer to the current picture, a higher weight can be given to the L0 LIC parameter. Conversely, if the L1 prediction sample is closer, a higher weight can be given to the L1 LIC parameter. This allows for more effective utilization of temporal correlation.
  • the present invention proposes a method and device for enhancing compression performance by appropriately performing brightness compensation of LIC.
  • the above-described LIC-based method can be configured to find a reference block by utilizing a set template, and generate a change in brightness between a current block (e.g., CU) and the reference block as a linear model by utilizing an L-shaped template.
  • the linear model can be configured in the form of a linear function of ⁇ *p[x]+ ⁇ .
  • the p[x] can be defined as a reference value as a prediction pixel, and the ⁇ and ⁇ can represent a slope and a bias of the derived linear model.
  • two or more linear models can be used at the same time.
  • the method of deriving the linear model parameters is not limited to a first-order linear model, but can be set as a second-order or higher-order line fitting model. This can help model more complex brightness changes more accurately.
  • the LIC template setting method can be improved to provide various modes. That is, the L-shaped template may not be used uniformly. For example, a mode that uses only the top or left template may be used, or a mode that uses the top and left templates but uses each template with the same weight or with different weights may be used.
  • Fig. 8 is an exemplary diagram showing an example of a template application mode according to one embodiment of the present invention. In summary, the following modes may be included and used in the LIC template setting process, but are not limited to these examples.
  • the mode of using only the upper pixel of the current block as a template may use at least one pixel selected based on pixels located within a distance of at least one pixel in the upper direction of the current block as a template.
  • the width of the template region corresponding to the pixel located at the upper end may be extended to the left or right by the number of unused left pixels. For example, when the size of the current block is 16x16 and the left pixel is not used for the template, the width of the upper template region may be extended from 16 pixels to 32 pixels.
  • the mode of using only the left pixel of the current block as a template may use pixels located within a distance of at least 1 pixel in the left direction of the current block as templates.
  • the height of the template region corresponding to the pixels located on the left may be extended upward or downward by the number of unused upper pixels. For example, when the size of the current block is 16x16 and the upper pixels are not used for the template, the height of the left template region may be extended from 16 pixels to 32 pixels.
  • At least one of one or more modes including the above-described modes may be selected and used.
  • at least one of the methods described below may be used as a method of selecting one of the above-described one or more modes.
  • a method for selecting the mode may be used in which an encoder selects a mode exhibiting an optimal bit rate-to-distortion (RD) performance by using Rate-Distortion Optimization (RDO) as an evaluation criterion, and informs a decoder of the corresponding mode information.
  • RDO evaluation may be performed on each of the above (a) to (d) modes, and a mode exhibiting the lowest encoding cost and/or good RD performance may be selected as the LIC usage mode of the current block, and the corresponding information may be included in a bit stream and transmitted to the decoder.
  • the decoder may parse the bit stream and then configure a template according to the selected LIC usage mode.
  • Other LIC-based prediction block-related encoding and decoding processes may be performed according to the same or similar procedures as in the past.
  • a method of utilizing a template may be used as a method of selecting the mode.
  • the mode may be selected by an operation based on each L-shaped template (i.e., an upper pixel and a left pixel) composed of surrounding pixels of a current block and a reference block.
  • an optimal template mode may be selected by utilizing an upper restoration value based on an L-shaped template of a current block and an upper value of a reference block (first mode), utilizing a left restoration value based on an L-shaped template of a current block and a left value of a reference block (second mode), utilizing an upper and left restoration value based on an L-shaped template of a current block and an upper and left value of a reference block with the same weight (third mode, equal weight), or utilizing an upper and left restoration value based on an L-shaped template of a current block and an upper and left value of a reference block with different weights (fourth mode, different weight).
  • the SAD Sud of Absolute Differences
  • SATD Sud of Absolute Transformed Differences
  • MR-SAD Magnetic-removal SAD
  • the above-described evaluation method may be configured to operate identically in the encoder and the decoder based on a pixel area that has been previously encoded/decoded in the encoding/decoding process. Accordingly, when applying this method, since the template mode can be determined implicitly, there is no need to record separate information in the bit string regarding which specific mode is used, and the decoder may be configured to determine the mode by itself.
  • the LIC mode can be explicitly determined by utilizing information of surrounding blocks.
  • the LIC mode of the current block can be explicitly determined by utilizing prediction information of available surrounding blocks.
  • the explicit determination method can include a method of configuring a candidate set and selecting at least one candidate belonging to the candidate set as the LIC mode.
  • the method of configuring the candidate set can be provided in various ways. For example, when there is a block using LIC around the current LIC block, the corresponding LIC mode can be included in the candidate set.
  • usage history information on the LIC mode of a block previously used as the LIC mode can be stored and included in the candidate set.
  • the appropriate LIC mode can be included in the candidate group by considering the angle of the directional prediction mode. For example, if the directional prediction mode has a horizontal angle, a mode that mainly refers to horizontal pixels as shown in (b) of FIG. 8 as a more appropriate LIC mode for the direction can be included in the candidate group.
  • the candidate group can also be configured by considering information related to the inter-screen prediction method.
  • the modes of the candidate group can be arbitrarily added according to a predetermined order or information.
  • the template or template of the template
  • the template for example, one upper line, one left line, one upper and left line, etc.
  • the reordering can be performed based on the encoding information requirement cost calculated according to the template matching result, and according to one embodiment, the reordering can be performed in order of low cost.
  • the information requirement cost can be calculated by SAD, SATD, or MR-SAD, and the reordering can also be performed based on this cost.
  • the optimal LIC mode can be selected through RDO, etc., and an index thereof can be included in a bit string and transmitted to a decoder.
  • the decoder can be configured to form the candidate group in the same manner as the encoder, and to reconstruct the LIC mode used in the encoder by utilizing the information transmitted through the bit string.
  • the LIC mode can be implicitly determined by utilizing information of surrounding blocks.
  • the LIC mode of the current block can be implicitly determined by utilizing available surrounding prediction information. For example, when the current block is encoded by LIC, if there is a block using LIC in the surrounding, the LIC mode of the current block can be determined based on the frequency of the LIC mode used in the surrounding block. In addition, even if LIC is not used in the surrounding block, if at least one surrounding block is encoded by the intra angular prediction mode, the appropriate LIC mode can be determined by considering the angle of the directional prediction mode.
  • the above-described LIC mode selection method can be configured to operate identically in an encoder and a decoder based on a pixel area that has been previously encoded/decoded in an encoding/decoding process. Therefore, when applying this method, there is no need to record separate information in a bit string regarding which specific mode has been used, and the decoder can be configured to check the LIC mode by itself.
  • a mode in which the top and the left are both used with the same weight, or the top and the left are used with different weights can be defined and used.
  • Various methods can be used to define the weights.
  • the same weights used in a conventional existing LIC can be applied and utilized when generating ⁇ and/or ⁇ of the linear model.
  • the top and left regions can be divided, and the weights according to the regions can be applied separately when generating ⁇ and/or ⁇ .
  • the weights for each of the divided regions can use values determined in advance through experiments, etc., and the determined weight values can be used by forming a table, and an index designating a specific value of the table can be determined explicitly or implicitly and provided to a decoder.
  • the table may be preferably specified in a form in which the sum of one weight set is a power of 2. This may have the purpose of easily replacing the division operation in the weighted sum operation based on the weight with a shift operation. For example, if the weight set is ⁇ 3, 5 ⁇ , since the sum becomes 8 (2 3 ), the division operation required for the weight set can be replaced with a 3-bit right binary bit shift operation.
  • the weight value may be applied in a form that is determined on-the-fly by utilizing information of surrounding blocks. It will be easily understood that this method corresponds to a kind of implicit signaling method. For example, when there are available blocks on the top and left, the weight value may be determined by utilizing information including inter-prediction information, intra-prediction information, and block size of the available surrounding blocks. In this case as well, similarly to the above, the weight value may be determined as a value that is a power of 2 for the purpose of easily replacing a division operation with a shift operation.
  • a method of reducing the number of pixels used in the template by limiting the pixels to some pixels rather than all pixels within a template area may be applied.
  • a method of reducing the number of pixels used in the template by limiting the pixels to some pixels rather than all pixels within a template area may be applied.
  • when generating ⁇ and ⁇ after finding a reference block only some pixels rather than all may be utilized.
  • all pixels of the template may be additionally utilized, and when generating ⁇ and ⁇ , only some pixels rather than all may be utilized.
  • pixels of a template reduced to include only some pixels rather than all may be additionally utilized, and when generating ⁇ and ⁇ , all pixels may be utilized.
  • methods for reducing the use of only some, rather than all, pixels used in the template may include, but are not limited to, the following methods.
  • the number of pixels is reduced by utilizing a subsampling method corresponding to a multiple of 2, such as 2:1, 4:1, etc., and the reduced pixels can be used to find a reference block as described above or to generate ⁇ and ⁇ .
  • the number of pixels is reduced by horizontally dividing the area of the entire upper template into N and selecting M pixels, and the reduced pixels can be used to find a reference block as described above or to generate ⁇ and ⁇ .
  • the N and the M can be varied depending on the block size and the level of desired complexity.
  • at least one of the N or M can be defined based on a power of 2 for ease of operation.
  • the region of the entire top template may be horizontally divided into four parts, and two pixels corresponding to regions 1/4 and 3/4 may be selected, and the selected pixels may be used to find a reference block or to generate ⁇ and ⁇ .
  • the region of the entire top template may be horizontally divided into eight parts, and three pixels corresponding to regions 2/8, 4/8, and 6/8 may be selected, and the selected pixels may be used to find a reference block or to generate ⁇ and ⁇ .
  • the region of the entire top template may be horizontally divided into eight parts, and four pixels corresponding to regions 1/8, 3/8, 5/8, and 7/8 may be selected, and the selected pixels may be used to find a reference block or to generate ⁇ and ⁇ .
  • the area of the entire upper template is divided into eight horizontal sections, and five pixels corresponding to areas 0/8, 2/8, 4/8, 6/8, and 8/8 are selected, and the selected pixels can be used to find a reference block or to generate ⁇ and ⁇ .
  • the number of pixels is reduced by vertically dividing the area of the entire left template by N and selecting M pixels, and the reduced pixels can be used to find a reference block as described above or to generate ⁇ and ⁇ .
  • the N and the M can be varied depending on the block size and the level of desired complexity.
  • at least one of the N or M can be defined based on a power of 2 for ease of operation.
  • the entire left template may be vertically divided into four sections, and two pixels corresponding to sections 1/4 and 3/4 may be selected, and the selected pixels may be used to find a reference block or to generate ⁇ and ⁇ .
  • the entire left template may be vertically divided into eight sections, and three pixels corresponding to sections 2/8, 4/8, and 6/8 may be selected, and the selected pixels may be used to find a reference block or to generate ⁇ and ⁇ .
  • the entire left template may be vertically divided into eight sections, and four pixels corresponding to sections 1/8, 3/8, 5/8, and 7/8 may be selected, and the selected pixels may be used to find a reference block or to generate ⁇ and ⁇ .
  • the area of the entire left template can be divided vertically into eight parts, and five pixels corresponding to areas 0/8, 2/8, 4/8, 6/8, and 8/8 can be selected, and the selected pixels can be used to find a reference block or to generate ⁇ and ⁇ .
  • the entire top template may mean a top template that extends to the left or right from the width of the current block to the height of the current block.
  • the entire left template may mean a left template that extends to the top or bottom from the height of the current block to the width of the current block.
  • FIG. 9 is a conceptual diagram showing the shape and coefficient positions of a cross filter according to one embodiment of the present invention.
  • a cross-shaped filter (900) having a size of 3x3 as described above can be expressed by coefficient positions of A (left), B (right), C (upper), D (lower), and E (center).
  • a value filtered through the 3x3 cross-shaped filter can be expressed by one of the following mathematical formulas.
  • the above mathematical expression 1 represents basic linear filtering, which can be calculated by multiplying the pixel value at each location by a pre-specified coefficient (C 1 to C 5 ) and adding them up.
  • the above mathematical expression 2 represents the addition of a nonlinear term F to the basic linear filtering, and the F may mean that the square value of the central pixel E is adjusted according to the bit depth value (bitDepth) per pixel (at this time, "bitDepth_mid” may mean a median value among the range values for expressing the pixel value according to the bit depth per pixel).
  • bitDepth_mid may mean a median value among the range values for expressing the pixel value according to the bit depth per pixel.
  • bitDepth_mid may mean a median value among the range values for expressing the pixel value according to the bit depth per pixel.
  • the ">>" operator symbol appearing in the above mathematical expression 2 may be understood as a right binary bit shift operation.
  • the elements constituting the nonlinear term F may change.
  • the nonlinear term F may be based on another pixel value instead of E.
  • the nonlinear term F may be defined by an equation of the third or higher degree.
  • constant values such as "
  • the above mathematical expression 3 represents the addition of a constant term G to the above mathematical expression 2, where G may be "bitDepth_mid" and may mean a median value among the expression range values of the pixel value.
  • G may be "bitDepth_mid” and may mean a median value among the expression range values of the pixel value.
  • the elements constituting the constant term F may change.
  • the value of the constant term F may be replaced by another suitable constant value.
  • the coefficients designated for the coefficients C 1 to C 7 shown in the mathematical expressions 1 to 3 may be derived from an L-shaped template which may be derived from restored pixel values on the top and/or the left side of the current block.
  • the various application methods described above may be applied in common, and in the use of the template, only the entire designated template area or a part of the template area may be used for deriving the coefficients.
  • the coefficient derivation method of the Wiener filter which utilizes the restored pixel values on the top and/or the left side of the current block may be utilized in the same manner or in an applied manner for deriving the coefficients.
  • the Wiener filter may have a characteristic of deriving coefficients in a manner that minimizes the minimum mean squared error (MSE), and the coefficients may be obtained based on this characteristic.
  • MSE minimum mean squared error
  • the present invention is not limited to the above-described embodiments, and various modifications and applications that can be applied in relation to LIC and predictive encoding within the scope of the present invention can be applied together.
  • the size of the filter can be adjusted, and a type of filter other than a cross filter can be used.
  • a 5x5 cross filter or a 3x3 Sobel filter may be used.
  • any filter configured to receive as input a pixel group having at least one shape of a square, a diamond, and a circle with a width of the first pixel and a height of the second pixel can be applied.
  • extensions such as dynamically adjusting the shape or size of the template, or introducing a polygonal function or a nonlinear function into the linear model to model more complex illumination changes can be made.
  • various methods for determining the predictive mode in an explicit or implicit manner can be utilized to implement the examples described above for the present invention, or the present invention can be implemented to operate in conjunction with such other methods.
  • the encoding method according to the present invention can be applied equally to an encoder and a decoder.
  • the encoding method according to the present invention can be first used as one of the methods for generating a sample value of a prediction block for performing intra-screen and/or inter-screen prediction in an encoder.
  • the decoder can generate a sample value of the same prediction block using a corresponding and/or symmetrical method, and obtain decoded samples by combining the differential value with such a prediction block.
  • such a decoding process can be implemented identically within the encoder to predict the state of the decoder.
  • the encoding method according to the present invention described above can be implemented through an encoder as a device.
  • the encoder as a device can be implemented in a form that maintains the conventional encoder structure exemplified through FIGS. 1 to 6 above or applies a predetermined change thereto.
  • the form of implementation is not necessarily limited to what has been exemplified, and any form of encoder structure that can function as a video encoder should be considered an encoder established by the present invention as long as it implements the technical idea of the present invention.
  • the method for decoding the encoding result according to the present invention described above can be implemented through a decoder as a device.
  • the decoder as a device can be implemented in a form that maintains the conventional decoder structure exemplified through FIGS. 1 to 6 above or applies a predetermined change thereto.
  • the form of implementation is not necessarily limited to what has been exemplified, and any form of decoder structure that can function as a video decoder is considered to be a decoder established by the present invention as long as it implements the technical idea of the present invention.
  • a bit stream encoded by the above-described method and device can be decoded by applying a method symmetrical and/or inverse to the encoding method.
  • at least one variable length coded phrase included in the encoded bit stream can be interpreted, and furthermore, in one embodiment, the variable length coding can be performed by an entropy coding method.
  • the technical details and application method of implementing such a decoding procedure can readily be understood from the above-described encoding procedure.
  • the encoder and/or decoder described in the present specification may correspond to a device including a processor and a memory, each of which may be implemented as a computing device.
  • the processor which may be included in the encoder and/or decoder described in the present specification, may mean one or more general-purpose computers or special-purpose computers, such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing instructions and responding.
  • ALU arithmetic logic unit
  • FPA field programmable array
  • PLU programmable logic unit
  • the processor may include a plurality of processing elements and/or a plurality of types of processing elements.
  • a device may include a plurality of processors or one processor and one controller as the processor.
  • the processor may be implemented by various processing configurations, such as a parallel processor or a multi-core processor.
  • the processor may be configured to execute an operating system (OS) and one or more software programs running on the operating system. Additionally, the processor may access, store, manipulate, process, and generate data in response to execution of the software programs.
  • OS operating system
  • software programs running on the operating system. Additionally, the processor may access, store, manipulate, process, and generate data in response to execution of the software programs.
  • the software may include a computer program, code, instructions, or a combination of one or more of these, and may be configured to control the processor to perform a desired operation, and may be configured to issue instructions to the processor, either independently or collectively.
  • the software may be permanently or temporarily embodied in any type of machine, component, physical device, virtual equipment, computer storage medium or device, or transmitted signal wave, for interpretation by the processor or for providing instructions or data to the processor.
  • the software may also be distributed over network-connected computer systems, and stored or executed in a distributed manner.
  • the software may also be implemented in the form of program commands that can be executed through various computer means and recorded or stored in the memory.
  • the memory may be a computer-readable recording medium, and program commands, data files, data structures, etc. may be recorded singly or in combination in the computer-readable recording medium.
  • the program commands stored in the memory may be based on a command system specifically designed and configured for the embodiment of the present invention, or may follow a command system known and available to those skilled in the art of computer software, for example, a command system exemplified by the assembly language, C, C++, Java, Python, etc. It should be understood that the command system and the program commands thereby include not only machine language codes generated by a compiler, but also high-level language codes that can be executed by the device and/or the processor according to an embodiment of the present invention using an interpreter, etc.
  • the computer-readable recording medium constituting the device according to one embodiment of the present invention may include a temporary or volatile recording medium that is maintained only while the processor is operating, such as a processor cache, a RAM, a flash memory, or a relatively non-volatile or long-term recording medium, such as a magnetic media such as a hard disk, a floppy disk, and a magnetic tape, an optical media such as a CD-ROM, a DVD, a magneto-optical media such as a floptical disk, or a solid state memory, or may include a read-only recording medium, such as a ROM arranged on hardware, and further, hardware itself configured to perform operations equivalent to a series of program commands by a hard-wired structure by circuit wiring, and since each step for performing the operations implementing the embodiments of the present invention can be viewed as being recorded by the connection and arrangement of the hardware components, the connection and arrangement method is the memory and It is obvious to a person skilled in the art that they can be considered equivalent
  • a single hardware device may be configured to operate as a module composed of one or more of the software to perform the operations of the embodiments of the present invention, and vice versa.
  • all or part of the operations assigned to a certain functional unit may be implemented by one or more of the software stored in the device according to an embodiment of the present invention (preferably, in any one of the recording media belonging to the category of the memory) and configured to be executed by the processor, and in this case, such a functional unit may be referred to as a functional unit "included" in the processor.

Landscapes

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

Abstract

The present invention relates to video compression technology and, more specifically, to the improvement of local illuminance compensation (LIC) technology, which is included in prediction coding technology that contributes to the enhancement of compression performance in video encoders and decoders. A method for decoding an encoded video bitstream, according to an embodiment of the present invention, comprises the steps of: obtaining at least one prediction vector for a current block, which is currently being decoded from the bitstream; determining at least one reference block on the basis of the prediction vector; defining at least one of a first template which considers the current block to be a base block, and a second template which considers the reference block to be the base block; determining, for at least one of the templates, a template configuration mode that includes information on a method for using the template; on the basis of the at least one template configuration mode, obtaining LIC information by referring to information on at least one pixel derived from at least one of the templates; generating a prediction sample for the current block by correcting the reference block by means of an LIC method; and reconstructing the current block by using the prediction sample.

Description

개선된 국소적 조도 보상 템플릿 결정에 기반한 동영상 부호화/복호화 방법 및 장치Method and device for video encoding/decoding based on improved local illumination compensation template determination

본 발명은 비디오 압축 기술에 관련된 것으로, 구체적으로는 비디오 부호화기 및 복호화기에서 압축 성능의 향상에 기여하는 예측 부호화(prediction coding) 기술에 포함되는 국소적 조도 보상(local illuminance compensation; LIC) 기술의 개선에 관한 것이다.The present invention relates to video compression technology, and more particularly, to improvement of local illuminance compensation (LIC) technology included in prediction coding technology that contributes to improvement of compression performance in a video encoder and decoder.

본 발명은 MPEG-2, MPEG-4 Video, H.263, H.264/AVC, H.265/HEVC, H.266/VVC, VC-1, AV1, QuickTime, VP-9, VP-10, Motion JPEG과 같은 규격명으로 알려진 디지털 동영상 압축 기술 규격 중 적어도 하나와 동일한 기술분야이거나, 그 규격의 내재 효율을 향상하는 데 대한 기술분야이거나, 또는 그 규격을 개량 또는 대체하는 데 대한 기술분야에 해당할 수 있다.The present invention may be in the same technical field as at least one of digital video compression technology standards known by the standard names such as MPEG-2, MPEG-4 Video, H.263, H.264/AVC, H.265/HEVC, H.266/VVC, VC-1, AV1, QuickTime, VP-9, VP-10, Motion JPEG, or in the technical field for improving the inherent efficiency of the standard, or in the technical field for improving or replacing the standard.

디지털 동영상의 부호화 및 복호화는 다양한 디지털 동영상 응용분야에서 널리 활용되고 있다. 예를 들어, 디지털 텔레비전 방송, 통신 네트워크를 통한 영상의 전송, 화상 통화/화상 대화/화상 채팅, VCD(video compact disc)/ DVD(digital versatile disc)/Blu-Ray를 포함하는 광학매체를 이용한 동영상 콘텐츠의 기록 및 제공, 동영상 콘텐츠의 제작, 편집, 수집, 및 배급 절차의 일체, 및 개인적 목적, 상업적 목적, 산업적 목적, 및 보안경비의 목적 등을 포함하는 다양한 이유로 실시되는 동영상 촬영 및 기록 행위를 위한 동영상 촬영 장치 및 캠코더와 같은 장치는, 모두 동영상 부호화 및 복호화 기술에 의존적이다.Digital video encoding and decoding are widely used in various digital video applications. For example, digital television broadcasting, transmission of video through communication networks, video calls/video conversations/video chats, recording and providing video content using optical media including VCD (video compact disc)/DVD (digital versatile disc)/Blu-Ray, all procedures for producing, editing, collecting, and distributing video content, and devices such as video shooting devices and camcorders for shooting and recording video for various reasons including personal, commercial, industrial, and security purposes, all depend on video encoding and decoding technologies.

따라서 디지털 동영상 부호화기 및 복호화기로 칭해질 수 있는 구현물들은, 디지털 텔레비전, 디지털 방송 시스템, 무선 방송 시스템들, 노트북/데스크탑/태블릿 형태의 컴퓨터, 전자책 단말기, 디지털 카메라, 디지털 녹화 장치, 디지털 멀티미디어 재생 장치, 비디오 게임 장치/단말/콘솔, 멀티미디어 재생기능을 가준 휴대전화(스마트폰을 포함한다), 화상 회의를 위한 기재들, 및 그 밖의 디지털 동영상의 생성, 기록, 및 제공에 관련된 광범위한 장치의 일부분을 구성할 수 있다.Accordingly, implementations that may be referred to as digital video encoders and decoders may form part of a wide range of devices, including digital televisions, digital broadcasting systems, wireless broadcasting systems, computers in the form of notebooks/desktops/tablets, e-book readers, digital cameras, digital recording devices, digital multimedia playback devices, video game devices/terminals/console, mobile phones (including smartphones) with multimedia playback capabilities, devices for video conferencing, and other devices related to the generation, recording, and provision of digital video.

상기와 같은 디지털 동영상 부호화기 및 복호화기들은 통상의 기술자에게 이해되어 널리 사용되는 디지털 동영상 압축 규격에 의하여 구현될 수 있다. 상기 디지털 동영상 압축 규격에는 MPEG-2, MPEG-4 Video, H.263, H.264/AVC, H.265/HEVC, H.266/VVC, VC-1, AV1, QuickTime, VP-9, VP-10, Motion JPEG과 같은 규격명으로 알려진 압축 규격 중 적어도 하나가 포함될 수 있다.The above digital video encoders and decoders can be implemented by a digital video compression standard that is widely used and understood by those skilled in the art. The digital video compression standard can include at least one of compression standards known by standard names such as MPEG-2, MPEG-4 Video, H.263, H.264/AVC, H.265/HEVC, H.266/VVC, VC-1, AV1, QuickTime, VP-9, VP-10, and Motion JPEG.

동영상 부호화기 및 복호화기는 상기 규격을 준수하면서, 또는 상기 규격을 개량하거나 변형함으로써, 디지털 동영상 정보를 더욱 효율적으로 부호화 또는 복호화하도록 구현될 수 있다. 상기 규격의 변형 시도는 또한 새로운 규격의 도출로 이어질 수 있다. 널리 알려진 사례들 중에는 ISO, IEC, ITU-T의 공동 국제 표준화 집단인 JVET(joint video experts team)에 의하여 개발되고 있는 종래 H.266/VVC 규격의 개량 및 대체 시도인 이른바 개량압축모델(enhanced compression model; ECM)이 존재한다.Video encoders and decoders can be implemented to encode or decode digital video information more efficiently while complying with the above standards, or by improving or modifying the above standards. Attempts to modify the above standards can also lead to the derivation of new standards. Among well-known examples is the so-called enhanced compression model (ECM), which is an attempt to improve and replace the existing H.266/VVC standard, which is being developed by the joint video experts team (JVET), a joint international standardization group of ISO, IEC, and ITU-T.

종래 동영상 부호화기 및 복호화기에 적용되어 있는 다양한 세부기술 가운데는 국소적 조도 보상(local illuminance compensation; LIC)으로 통칭되는 기술이 존재한다. LIC 기술이란, 화면 간 예측 부호화(이른바 인터(inter) 부호화) 및/또는 화면 내 예측 부호화(이른바 인트라(intra) 부호화), 그리고 상기 각각의 부호화 방법에 상응하는 복호화 과정에 있어서, 예측 부호화를 위하여 선택된 예측 대상 블록(prediction block)의 값에 대하여 조도(illuminance)를 보정(즉, 보상(compensation))하여 예측 잔차를 계산하도록 하는 것으로써, 특히 상기 보상을 국소적(locally)으로, 예를 들어 블록 단위로 실시하는 것을 의미할 수 있다.Among the various detailed technologies applied to conventional video encoders and decoders, there exists a technology collectively called local illuminance compensation (LIC). The LIC technology refers to a technology that calculates a prediction residual by correcting (i.e., compensating) illuminance for a value of a prediction target block selected for predictive encoding in inter-picture predictive encoding (so-called inter encoding) and/or intra-picture predictive encoding (so-called intra encoding), and a decoding process corresponding to each of the above encoding methods, and in particular, it can mean that the compensation is performed locally, for example, on a block-by-block basis.

종래의 LIC 기술은 그 적용 방법이 제한적인 것으로써, 다양한 개선을 통하여 부호화 효율을 향상할 수 있을 것으로 전망된다. 본 발명은 이러한 기술적 과제를 해결하여 개선된 부호화 효율을 제공하는 것을 목적으로 한다.Conventional LIC technology has limited application methods, and it is expected that encoding efficiency can be improved through various improvements. The present invention aims to solve these technical problems and provide improved encoding efficiency.

본 발명에서는 상술한 기술적 과제를 해결하기 위한 개선된 LIC의 구현 방법을 제안한다.The present invention proposes an improved LIC implementation method to solve the above-described technical problems.

상술한 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 부호화된 비디오 비트열을 복호화하는 방법은, 상기 비트열로부터 현재 복호화 중인 현재 블록에 대한 적어도 하나의 예측 벡터(prediction vector)를 획득하는 단계, 상기 예측 벡터에 기반하여 적어도 하나의 참조 블록을 결정하는 단계, 상기 현재 블록을 기준 블록으로 하여 그에 인접한 적어도 하나의 화소를 포함하는 제1 템플릿(template), 및 상기 참조 블록을 기준 블록으로 하여 그에 인접한 적어도 하나의 화소를 포함하는 제2 템플릿, 중 적어도 하나를 정의하는 단계, 상기 제1 템플릿 및 상기 제2 템플릿 중 적어도 하나에 대하여, 상기 템플릿의 사용 방법에 대한 정보를 포함하는 템플릿 구성 모드를 결정하는 단계, 상기 적어도 하나의 템플릿 구성 모드에 기반하여, 상기 제1 템플릿 및 상기 제2 템플릿 중 적어도 하나로부터 유래하는 적어도 하나의 화소 정보를 참조하여, 국소적 조도 보상(Local Illumination Compensation, LIC)에 관련된 정보를 추출하고, 상기 추출된 정보로부터 LIC 정보를 획득하는 단계, 상기 LIC 정보에 기반하여 동작하는 LIC 방법에 의하여 상기 참조 블록을 보정함으로써 상기 현재 블록에 대한 예측 샘플을 생성하는 단계, 및 상기 예측 샘플을 이용하여 상기 현재 블록을 복원하는 단계를 포함할 수 있다.According to an embodiment of the present invention for solving the above-described technical problem, a method for decoding an encoded video bitstream comprises the steps of: obtaining at least one prediction vector for a current block currently being decoded from the bitstream; determining at least one reference block based on the prediction vector; defining at least one of a first template including at least one pixel adjacent to the current block as a reference block and a second template including at least one pixel adjacent to the reference block as a reference block; determining a template configuration mode including information on a method of using the template with respect to at least one of the first template and the second template; extracting information related to Local Illumination Compensation (LIC) with reference to at least one pixel information derived from at least one of the first template and the second template based on the at least one template configuration mode, and obtaining LIC information from the extracted information; generating a prediction sample for the current block by correcting the reference block by a LIC method operating based on the LIC information; and A step of restoring the current block using a sample may be included.

상기 템플릿 구성 모드는, 상기 기준 블록의 상단 화소를 이용하는 모드, 상기 기준 블록의 좌측 화소를 이용하는 모드, 및 상기 기준 블록의 상단 및 좌측 화소들을 가중치에 기반하여 이용하는 모드, 중 적어도 하나의 모드를 포함하는 것을 특징으로 할 수 있다.The above template configuration mode may be characterized by including at least one mode among a mode that uses the upper pixel of the reference block, a mode that uses the left pixel of the reference block, and a mode that uses the upper and left pixels of the reference block based on weights.

상기 가중치에 기반하여 이용하는 모드는, 상기 기준 블록의 상단 및 좌측 영역을 적어도 하나의 구역으로 나누고, 각 구역마다 서로 다른 구역별 가중치를 적용하도록 구성되는 것을 특징으로 할 수 있다.A mode used based on the above weights may be characterized by dividing the upper and left areas of the reference block into at least one zone and applying different zone-specific weights to each zone.

상기 구역별 가중치는, 사전에 정의된 테이블(table)로부터 선택되고, 상기 템플릿 구성 모드를 결정하는 단계는, 상기 테이블에서 선택된 인덱스(index)를 나타내는 정보를 상기 비트열로부터 획득하는 단계를 포함할 수 있다.The above zone-specific weights are selected from a predefined table, and the step of determining the template configuration mode may include a step of obtaining information representing an index selected from the table from the bit string.

상기 인덱스를 나타내는 정보는, 앞서 복호화된 비디오 정보에 기반하여 복호화기 측에서 암시적으로(implicitly) 결정되는 것을 특징으로 할 수 있다.Information indicating the above index may be characterized as being implicitly determined on the decoder side based on previously decrypted video information.

상기 템플릿 구성 모드는, 상기 제1 템플릿 및 상기 제2 템플릿 중 어느 하나에 포함된 일부 화소들만을 선택하여 사용하는 모드를 포함하는 것을 특징으로 할 수 있다.The above template configuration mode may be characterized by including a mode for selecting and using only some pixels included in either the first template or the second template.

상기 일부 화소들은, 서브샘플링(subsampling)을 통하여 선택되는 것을 특징으로 할 수 있다.Some of the above pixels may be characterized in that they are selected through subsampling.

상기 서브샘플링은, 상기 템플릿이 상기 기준 블록의 상단 화소 영역을 포함하는 경우, 상기 영역을 수평 방향으로 제1개수 분할하고, 상기 분할된 영역으로부터 제2개수의 화소가 선택되는 것을 특징으로 할 수 있다.The above subsampling may be characterized in that, when the template includes an upper pixel area of the reference block, the area is divided into a first number of horizontal divisions, and a second number of pixels are selected from the divided area.

상기 서브샘플링은, 상기 템플릿이 상기 기준 블록의 좌측 화소 영역을 포함하는 경우, 상기 영역을 수직 방향으로 제1개수 분할하고, 상기 분할된 영역으로부터 제2개수의 화소가 선택되는 것을 특징으로 할 수 있다.The above subsampling may be characterized in that, when the template includes a left pixel area of the reference block, the area is vertically divided into a first number of areas, and a second number of pixels are selected from the divided areas.

상기 서브샘플링은, 상기 템플릿을 가로 및 세로 중 적어도 하나의 방향으로 제1개수 분할하고, 상기 분할된 영역으로부터 제2개수의 화소를 선택하는 것을 특징으로 할 수 있다.The above subsampling may be characterized by dividing the template into a first number of regions in at least one of horizontal and vertical directions, and selecting a second number of pixels from the divided regions.

상기 서브샘플링은, 상기 템플릿이 상기 기준 블록의 상단 화소 영역을 포함하는 경우, 상기 상단 화소 영역을 수평 방향으로 분할하고, 상기 템플릿이 상기 기준 블록의 좌측 화소 영역을 포함하는 경우, 상기 좌측 화소 영역을 수직 방향으로 분할하는 것을 특징으로 할 수 있다.The above subsampling may be characterized by dividing the upper pixel area in a horizontal direction when the template includes an upper pixel area of the reference block, and dividing the left pixel area in a vertical direction when the template includes a left pixel area of the reference block.

상기 제1개수 및 제2개수 중 적어도 하나는, 2의 승수에 기반하여 결정되는 것을 특징으로 할 수 있다.It may be characterized in that at least one of the first number and the second number is determined based on a power of 2.

상기 템플릿 구성 모드를 결정하는 단계는, 적어도 하나의 템플릿 구성 모드를 사용하도록 지시하는 모드 신호를 상기 비트열로부터 획득하는 단계, 및 상기 모드 신호에 기반하여 상기 템플릿 구성 모드를 결정하는 단계를 포함할 수 있다.The step of determining the template configuration mode may include the step of obtaining a mode signal instructing to use at least one template configuration mode from the bit string, and the step of determining the template configuration mode based on the mode signal.

상기 템플릿 구성 모드를 결정하는 단계는, 앞서 복호화된 비디오 정보에 기반하여 복호화기 측에서 암시적으로(implicitly) 상기 템플릿 구성 모드를 결정하는 단계를 포함할 수 있다.The step of determining the template configuration mode may include a step of implicitly determining the template configuration mode on the decoder side based on previously decrypted video information.

상술한 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 비디오로부터 생성되는 비트열을 부호화하는 방법은, 현재 부호화 중인 현재 블록에 대한 적어도 하나의 예측 벡터(prediction vector)를 결정하는 단계, 상기 예측 벡터에 기반하여 적어도 하나의 참조 블록을 결정하는 단계, 상기 현재 블록을 기준 블록으로 하여 그에 인접한 적어도 하나의 화소를 포함하는 제1 템플릿(template), 및 상기 참조 블록을 기준 블록으로 하여 그에 인접한 적어도 하나의 화소를 포함하는 제2 템플릿, 중 적어도 하나를 정의하는 단계, 상기 제1 템플릿 및 상기 제2 템플릿 중 적어도 하나에 대하여, 상기 템플릿의 사용 방법에 대한 정보를 포함하는 템플릿 구성 모드를 결정하는 단계, 상기 적어도 하나의 템플릿 구성 모드에 기반하여, 상기 제1 템플릿 및 상기 제2 템플릿 중 적어도 하나로부터 유래하는 적어도 하나의 화소 정보를 참조하여, 국소적 조도 보상(Local Illumination Compensation, LIC)에 관련된 정보를 추출하고, 상기 추출된 정보로부터 LIC 정보를 획득하는 단계, 상기 LIC 정보에 기반하여 동작하는 LIC 방법에 의하여 상기 참조 블록을 보정함으로써 상기 현재 블록에 대한 예측 샘플을 생성하는 단계, 상기 예측 샘플을 이용하여 상기 현재 블록을 부호화하는 단계, 및 상기 부호화 결과를 상기 비트열에 기록하는 단계를 포함할 수 있다.According to an embodiment of the present invention for solving the above-described technical problem, a method for encoding a bit stream generated from a video comprises the steps of: determining at least one prediction vector for a current block currently being encoded; determining at least one reference block based on the prediction vector; defining at least one of a first template including at least one pixel adjacent to the current block as a reference block and a second template including at least one pixel adjacent to the reference block as a reference block; determining a template configuration mode including information on a method of using the template with respect to at least one of the first template and the second template; extracting information related to Local Illumination Compensation (LIC) with reference to at least one pixel information derived from at least one of the first template and the second template based on the at least one template configuration mode, and acquiring LIC information from the extracted information; generating a prediction sample for the current block by correcting the reference block by a LIC method operating based on the LIC information; It may include a step of encoding, and a step of recording the encoding result in the bit string.

상기 템플릿 구성 모드는, 상기 기준 블록의 상단 화소를 이용하는 모드, 상기 기준 블록의 좌측 화소를 이용하는 모드, 및 상기 기준 블록의 상단 및 좌측 화소들을 가중치에 기반하여 이용하는 모드, 중 적어도 하나의 모드를 포함하는 것을 특징으로 할 수 있다.The above template configuration mode may be characterized by including at least one mode among a mode that uses the upper pixel of the reference block, a mode that uses the left pixel of the reference block, and a mode that uses the upper and left pixels of the reference block based on weights.

상기 가중치에 기반하여 이용하는 모드는, 상기 기준 블록의 상단 및 좌측 영역을 적어도 하나의 구역으로 나누고, 각 구역마다 서로 다른 구역별 가중치를 적용하도록 구성되는 것을 특징으로 할 수 있다.A mode used based on the above weights may be characterized by dividing the upper and left areas of the reference block into at least one zone and applying different zone-specific weights to each zone.

상기 템플릿 구성 모드는, 상기 템플릿 중 적어도 하나로부터 일부 화소들만을 선택하여 사용하는 모드를 포함하는 것을 특징으로 할 수 있다.The above template configuration mode may be characterized by including a mode for selecting and using only some pixels from at least one of the above templates.

상기 일부 화소들은, 서브샘플링(subsampling)을 통하여 선택되는 것을 특징으로 할 수 있다.Some of the above pixels may be characterized in that they are selected through subsampling.

상기 예측 벡터를 결정하는 단계는, 예측 템플릿 구성 모드에 따라 상기 제1 템플릿을 참조하는 단계를 포함하고, 상기 LIC 정보를 획득하는 단계는, 제1 LIC 템플릿 구성 모드에 따라 상기 제1 템플릿을 참조하는 단계, 및 제2 LIC 템플릿 구성 모드에 따라 상기 제2 템플릿을 참조하는 단계, 및 상기 참조의 결과에 기반하는 연산을 통해 LIC 선형 모델을 결정하는 단계를 포함하고, 상기 LIC 선형 모델은 기울기(α)와 편향(β)을 포함하는 계수에 의하여 정의되는 함수인 것을 특징으로 할 수 있다.The step of determining the prediction vector may include a step of referencing the first template according to a prediction template configuration mode, and the step of obtaining the LIC information may include a step of referencing the first template according to a first LIC template configuration mode, a step of referencing the second template according to a second LIC template configuration mode, and a step of determining a LIC linear model through an operation based on a result of the referencing, wherein the LIC linear model may be a function defined by coefficients including a slope (α) and a bias (β).

상기 예측 템플릿 구성 모드는, 상기 제1 템플릿으로부터 일부 화소들만을 선택하여 사용하는 모드를 포함하고, 상기 예측 벡터를 결정하는 단계는, 상기 선택된 일부 화소들에 기반하는 템플릿 기반의 탐색을 통해 상기 예측 벡터를 결정하도록 구성되는 것을 특징으로 할 수 있다.The above prediction template configuration mode may include a mode for selecting and using only some pixels from the first template, and the step of determining the prediction vector may be characterized in that it is configured to determine the prediction vector through a template-based search based on the selected some pixels.

상기 제1 LIC 템플릿 구성 모드 및 상기 제2 LIC 템플릿 구성 모드 중 적어도 하나는, 상기 템플릿 중 적어도 하나로부터 일부 화소들만을 선택하여 사용하는 모드를 포함하고, 상기 LIC 정보를 획득하는 단계는, 상기 선택된 일부 화소들에 기반하는 연산을 통해 상기 LIC 선형 모델의 계수 중 적어도 하나를 결정하도록 구성되는 것을 특징으로 할 수 있다.At least one of the first LIC template configuration mode and the second LIC template configuration mode may include a mode for selecting and using only some pixels from at least one of the templates, and the step of obtaining the LIC information may be characterized in that it is configured to determine at least one of the coefficients of the LIC linear model through an operation based on the selected some pixels.

상술한 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 컴퓨팅 장치에 의하여 부호화된 비디오 비트열을 복호화하도록 구성되는 복호화기 장치는, 비트열을 수신하는 수신부, 복호화된 비디오를 출력하는 출력부, 적어도 하나의 복호화된 픽처(picture)의 정보를 저장하는 참조 버퍼(reference buffer), 프로세서, 및 상기 프로세서에 의하여 실행 가능한 명령어들을 저장하는 메모리를 포함하고, 상기 명령어들은, 상기 비트열로부터 현재 복호화 중인 현재 블록에 대한 적어도 하나의 예측 벡터(prediction vector)를 획득하고, 상기 예측 벡터에 기반하여 적어도 하나의 참조 블록을 결정하고, 상기 현재 블록을 기준 블록으로 하여 그에 인접한 적어도 하나의 화소를 포함하는 제1 템플릿(template), 및 상기 참조 블록을 기준 블록으로 하여 그에 인접한 적어도 하나의 화소를 포함하는 제2 템플릿, 중 적어도 하나를 정의하고, 상기 제1 템플릿 및 상기 제2 템플릿 중 적어도 하나에 대하여, 상기 템플릿의 사용 방법에 대한 정보를 포함하는 템플릿 구성 모드를 결정하고, 상기 적어도 하나의 템플릿 구성 모드에 기반하여, 상기 제1 템플릿 및 상기 제2 템플릿 중 적어도 하나로부터 유래하는 적어도 하나의 화소 정보를 참조하여, 국소적 조도 보상(Local Illumination Compensation, LIC)에 관련된 정보를 추출하고, 상기 추출된 정보로부터 LIC 정보를 획득하고, 상기 LIC 정보에 기반하여 동작하는 LIC 방법에 의하여 상기 참조 블록을 보정함으로써 상기 현재 블록에 대한 예측 샘플을 생성하고, 그리고 상기 예측 샘플을 이용하여 상기 현재 블록을 복원하는, 명령어들을 포함하도록 구성될 수 있다.According to an embodiment of the present invention for solving the above-described technical problem, a decoder device configured to decode a video bitstream encoded by a computing device comprises a receiving unit for receiving a bitstream, an output unit for outputting a decoded video, a reference buffer for storing information on at least one decoded picture, a processor, and a memory for storing instructions executable by the processor, wherein the instructions obtain at least one prediction vector for a current block currently being decoded from the bitstream, determine at least one reference block based on the prediction vector, define at least one of a first template including at least one pixel adjacent to the current block as a reference block, and a second template including at least one pixel adjacent to the reference block as a reference block, determine a template configuration mode including information on a method of using the template for at least one of the first template and the second template, and, based on the at least one template configuration mode, with reference to at least one pixel information derived from at least one of the first template and the second template, The method may be configured to include commands for extracting information related to local illumination compensation (LIC), obtaining LIC information from the extracted information, generating a prediction sample for the current block by compensating the reference block by a LIC method operating based on the LIC information, and restoring the current block using the prediction sample.

본 발명에 의하면 LIC 기술에 의한 예측 성능이 향상되고, 동시에 부호화되는 비트열(bitstream)의 정보 용량에 있어서 낭비(overhead)를 최소화할 수 있는 이로운 효과가 있다.According to the present invention, there is a beneficial effect of improving prediction performance by LIC technology and simultaneously minimizing overhead in the information capacity of a bitstream to be encoded.

본 발명에 따르면, 비디오 부호화 및 복호화에 있어서 부호화 효율의 개선, 복호화 효율의 개선, 동영상 화질의 개선, 연산량의 절감, 소프트웨어 규모의 축소, 하드웨어 규모의 축소, 및 그 밖에 부호화 및 복호화에 관련된 성능의 개선 중 적어도 하나 이상의 효과가 도출될 수 있다.According to the present invention, at least one of the following effects can be derived from video encoding and decoding: improvement of encoding efficiency, improvement of decoding efficiency, improvement of video quality, reduction of computational amount, reduction of software size, reduction of hardware size, and improvement of other performances related to encoding and decoding.

도 1은 본 발명의 일 실시예에 따른 비디오 통신 시스템의 개념도,Figure 1 is a conceptual diagram of a video communication system according to one embodiment of the present invention.

도 2는 본 발명의 일 실시예에 따른 실시간 비디오 스트리밍 환경에서의 부호화기 및 복호화기 배치에 대한 개념도,FIG. 2 is a conceptual diagram of the arrangement of an encoder and decoder in a real-time video streaming environment according to one embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 비디오 복호화기의 기능부 단위 개념도,Figure 3 is a conceptual diagram of a functional unit of a video decoder according to one embodiment of the present invention.

도 5는 본 발명의 일 실시예에 의한 프레임 유형의 개념도,Figure 5 is a conceptual diagram of a frame type according to one embodiment of the present invention.

도 6은 H.266/VVC 규격에 의한 비디오 부호화기의 구조를 나타내는 개념도,Figure 6 is a conceptual diagram showing the structure of a video encoder according to the H.266/VVC standard.

도 7은 본 발명의 일 실시예에 의한 LIC 적용 방법의 일반을 나타내는 개념도,Figure 7 is a conceptual diagram showing the general structure of a LIC application method according to one embodiment of the present invention.

도 8은 본 발명의 일 실시예에 따른 템플릿 적용 모드의 사례를 나타내는 예시도, 그리고FIG. 8 is an exemplary diagram showing an example of a template application mode according to one embodiment of the present invention, and

도 9는 본 발명의 일 실시예에 따른 크로스 필터의 형태 및 계수 위치를 나타내는 개념도이다.Figure 9 is a conceptual diagram showing the shape and coefficient positions of a cross filter according to one embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The present invention can have various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to specific embodiments, but should be understood to include all modifications, equivalents, or substitutes included in the spirit and technical scope of the present invention.

제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함하며, 또한, 달리 지시되지 않는 한 비배타적이다. 본 출원에 항목을 열거하는 경우 그것은 본 출원 발명의 사상과 가능한 실시 방법들을 용이하게 설명하기 위한 예시적 서술에 그치며, 따라서, 본 발명의 실시예 범위를 한정하는 의도를 가지지 아니한다.Although the terms first, second, etc. may be used to describe various components, the components should not be limited by the terms. The terms are only used to distinguish one component from another. For example, the first component could be referred to as the second component, and similarly, the second component could also be referred to as the first component, without departing from the scope of the present invention. The term "and/or" includes any combination of a plurality of related listed items or any of a plurality of related listed items, and is non-exclusive unless otherwise indicated. The listing of items in this application is merely an exemplary description to easily explain the spirit and possible implementation methods of the present invention, and therefore, is not intended to limit the scope of embodiments of the present invention.

본 명세서에서 "A 또는 B(A or B)"는 "오직 A", "오직 B" 또는 "A와 B 모두"를 의미할 수 있다. 달리 표현하면, 본 명세서에서 "A 또는 B(A or B)"는 "A 및/또는 B(A and/or B)"으로 해석될 수 있다. 예를 들어, 본 명세서에서 "A, B 또는 C(A, B or C)"는 "오직 A", "오직 B", "오직 C", 또는 "A, B 및 C의 임의의 모든 조합(any combination of A, B and C)"를 의미할 수 있다.As used herein, “A or B” can mean “only A”, “only B”, or “both A and B”. In other words, as used herein, “A or B” can be interpreted as “A and/or B”. For example, as used herein, “A, B or C” can mean “only A”, “only B”, “only C”, or “any combination of A, B and C”.

본 명세서에서 사용되는 슬래쉬(/)나 쉼표(comma)는 "및/또는(and/or)"을 의미할 수 있다. 예를 들어, "A/B"는 "A 및/또는 B"를 의미할 수 있다. 이에 따라 "A/B"는 "오직 A", "오직 B", 또는 "A와 B 모두"를 의미할 수 있다. 예를 들어, "A, B, C"는 "A, B 또는 C"를 의미할 수 있다.As used herein, a slash (/) or a comma can mean "and/or". For example, "A/B" can mean "A and/or B". Accordingly, "A/B" can mean "only A", "only B", or "both A and B". For example, "A, B, C" can mean "A, B, or C".

본 명세서에서 "적어도 하나의 A 및 B(at least one of A and B)"는, "오직 A", "오직 B" 또는 "A와 B 모두"를 의미할 수 있다. 또한, 본 명세서에서 "적어도 하나의 A 또는 B(at least one of A or B)"나 "적어도 하나의 A 및/또는 B(at least one of A and/or B)"라는 표현은 "적어도 하나의 A 및 B(at least one of A and B)"와 동일하게 해석될 수 있다. As used herein, “at least one of A and B” can mean “only A”, “only B” or “both A and B”. Additionally, as used herein, the expressions “at least one of A or B” or “at least one of A and/or B” can be interpreted identically to “at least one of A and B”.

또한, 본 명세서에서 "적어도 하나의 A, B 및 C(at least one of A, B and C)"는, "오직 A", "오직 B", "오직 C", 또는 "A, B 및 C의 임의의 모든 조합(any combination of A, B and C)"를 의미할 수 있다. 또한, "적어도 하나의 A, B 또는 C(at least one of A, B or C)"나 "적어도 하나의 A, B 및/또는 C(at least one of A, B and/or C)"는 "적어도 하나의 A, B 및 C(at least one of A, B and C)"를 의미할 수 있다.Additionally, in this specification, "at least one of A, B and C" can mean "only A", "only B", "only C", or "any combination of A, B and C". Additionally, "at least one of A, B or C" or "at least one of A, B and/or C" can mean "at least one of A, B and C".

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When it is said that a component is "connected" or "connected" to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components in between. On the other hand, when it is said that a component is "directly connected" or "directly connected" to another component, it should be understood that there are no other components in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is only used to describe specific embodiments and is not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this application, it should be understood that the terms "comprises" or "has" and the like are intended to specify the presence of a feature, number, step, operation, component, part or combination thereof described in the specification, but do not exclude in advance the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 이용하고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms defined in commonly used dictionaries, such as those defined in common dictionaries, should be interpreted as having a meaning consistent with the meaning they have in the context of the relevant art, and shall not be interpreted in an idealized or overly formal sense, unless expressly defined in this application.

본 출원에서 발명을 설명함에 있어, 실시예들은 설명된 기능 또는 기능들을 수행하는 단위 블록들의 측면에서 설명되거나 예시될 수 있다. 상기 블록들이란 본 출원에서 하나 또는 복수의 장치, 유닛, 모듈, 부 등으로 표현될 수 있다. 상기 블록들은 하나 또는 복수의 논리 게이트, 집적 회로, 프로세서, 컨트롤러, 메모리, 전자 부품 또는 이에 한정되지 않는 정보처리 하드웨어의 구현 방법에 의하여 하드웨어적으로 실시될 수도 있다. 또는, 상기 블록들은 응용 소프트웨어, 운영 체제 소프트웨어, 펌웨어, 또는 이에 한정되지 않는 정보처리 소프트웨어의 구현 방법에 의하여 소프트웨어적으로 실시될 수도 있다. 하나의 블록은 동일한 기능을 수행하는 복수의 블록들로 분리되어 실시될 수도 있으며, 반대로 복수의 블록들의 기능을 동시에 수행하기 위한 하나의 블록이 실시될 수도 있다. 상기 블록들은 또한 임의의 기준에 의하여 물리적으로 분리되거나 결합되어 실시될 수 있다. 상기 블록들은 통신 네트워크, 인터넷, 클라우드 서비스, 또는 이에 한정되지 않는 통신 방법에 의해 물리적 위치가 특정되지 않고 서로 이격되어 있는 환경에서 동작하도록 실시될 수도 있다. 상기의 모든 실시 방법은 동일한 기술적 사상을 구현하기 위하여 정보통신 기술 분야에 익숙한 통상의 기술자가 취할 수 있는 다양한 실시예의 영역이므로, 여하의 상세한 구현 방법은 모두 본 출원상 발명의 기술적 사상 영역에 포함되는 것으로 해석되어야 한다.In describing the invention in this application, the embodiments may be described or illustrated in terms of unit blocks that perform the described function or functions. The blocks may be expressed as one or more devices, units, modules, parts, etc. in this application. The blocks may be implemented in hardware by one or more logic gates, integrated circuits, processors, controllers, memories, electronic components, or information processing hardware implementation methods that are not limited thereto. Alternatively, the blocks may be implemented in software by application software, operating system software, firmware, or information processing software implementation methods that are not limited thereto. One block may be implemented by being separated into multiple blocks that perform the same function, or conversely, one block may be implemented to perform the functions of multiple blocks simultaneously. The blocks may also be implemented by being physically separated or combined by any criterion. The blocks may be implemented to operate in an environment where their physical locations are not specified and are separated from each other by a communication network, the Internet, a cloud service, or a communication method that is not limited thereto. All of the above implementation methods are within the scope of various embodiments that can be taken by a person skilled in the field of information and communication technology to implement the same technical idea, and therefore, any detailed implementation method should be interpreted as being included within the scope of the technical idea of the invention of the present application.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. 또한 복수의 실시예들은 서로 배타적이 아니며, 일부 실시예들이 새로운 실시예들을 형성하기 위해 하나 이상의 다른 실시예들과 조합될 수 있음을 전제로 한다.Hereinafter, with reference to the attached drawings, a preferred embodiment of the present invention will be described in more detail. In order to facilitate an overall understanding in describing the present invention, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted. In addition, it is assumed that the multiple embodiments are not mutually exclusive, and that some embodiments can be combined with one or more other embodiments to form new embodiments.

디지털 동영상 코덱Digital Video Codec

도 1은 본 발명의 일 실시예에 따른 비디오 통신 시스템의 개념도이다. 상기 비디오 통신 시스템(100)은 네트워크(105)를 통해 서로 연결되는 적어도 둘 이상의 단말(110, 120)을 포함하여 구성될 수 있다.Figure 1 is a conceptual diagram of a video communication system according to one embodiment of the present invention. The video communication system (100) may be configured to include at least two terminals (110, 120) that are connected to each other through a network (105).

본 발명의 일 실시예에 있어서, 상기 도 1은 단방향 비디오 통신 네트워크를 구성하는 데 대한 블록도를 의미할 수 있다. 상기 단말 중 제1 단말(110)은 네트워크(105)를 통해 비디오 데이터를 송신(111)하기 위하여 상기 비디오 데이터를 부호화할 수 있다. 상기 단말 중 제2 단말(120)은 네트워크를 통해 상기 부호화된 비디오 데이터를 수신(121)하고, 이를 복호화하여 표시하도록 구성될 수 있다.In one embodiment of the present invention, the above-described FIG. 1 may mean a block diagram for configuring a one-way video communication network. A first terminal (110) among the terminals may encode the video data in order to transmit (111) the video data through a network (105). A second terminal (120) among the terminals may be configured to receive (121) the encoded video data through a network and decode and display it.

본 발명의 다른 일 실시예에 있어서, 상기 도 1은 양방향 비디오 통신 네트워크를 구성하는 데 대한 블록도를 의미할 수 있다. 상기 양방향 비디오 통신을 위해, 상기 각각의 단말기(110, 120)는 네트워크를 경유하는 다른 각각의 단말기에 대한 비디오 송신(112, 122)을 위하여 스스로 획득한 비디오 데이터를 부호화하도록 구성될 수 있다. 각각의 단말은 또한 다른 단말에 의해 네트워크를 통해 송신된 비디오 데이터를 수신(113, 123)하여 복호화할 수 있고, 상기 복호화된 비디오 데이터를 표시하도록 구성될 수 있다.In another embodiment of the present invention, the above-described FIG. 1 may mean a block diagram for configuring a two-way video communication network. For the two-way video communication, each terminal (110, 120) may be configured to encode video data acquired by itself for video transmission (112, 122) to each other terminal via the network. Each terminal may also be configured to receive (113, 123) and decode video data transmitted by another terminal via the network, and display the decoded video data.

도 1에 나타나는 상기 각 단말기(110, 120)는, 실시예에 따라서, 서버 컴퓨터, 개인용 컴퓨터, 휴대용 컴퓨터, 및 스마트폰과 같은 장치로 예시될 수 있으나, 이에 한정되지는 아니하고, 일반적으로 사용되는 컴퓨팅 장치에 해당하는 것이면 무방하다. 예를 들어, 본 발명의 실시예에 따라, 상기 각 단말기(110, 120)는 데스크톱(desktop) 컴퓨터, 랩톱(lap-top) 컴퓨터, 태블릿(table) PC, 휴대전화기, 스마트폰, PDA(personal digital assistant), 워크스테이션, 전자계산기, 서버 컴퓨터, 클라우드 컴퓨터, 가상화 컴퓨터, 양자(quantum) 컴퓨터, 또는 그 밖에 이동 가능하거나 또는 이동 불가능한 형태로 구현되는 전자적, 전기적, 또는 양자적 계산 장치를 의미할 수 있으며, 특히 상기와 같은 장치 중 본 발명의 일 실시예에 따른 단말 장치로서 동작하기 위해 설계되었거나, 본 발명의 일 실시예에 따른 단말 장치로 동작하는 것이 가능하거나, 본 발명의 일 실시예에 따른 단말 장치로 동작하거나 그러한 동작에 상응하는 방법을 수행할 수 있도록 하는 컴퓨터프로그램의 설치 및/또는 실행이 가능한 어떠한 장치로도 해석될 수 있다.The terminals (110, 120) shown in Fig. 1 may be exemplified as devices such as server computers, personal computers, portable computers, and smartphones, depending on the embodiment, but are not limited thereto, and may be any computing device generally used. For example, according to an embodiment of the present invention, each terminal (110, 120) may mean a desktop computer, a laptop computer, a tablet PC, a mobile phone, a smart phone, a PDA (personal digital assistant), a workstation, an electronic calculator, a server computer, a cloud computer, a virtual computer, a quantum computer, or any other electronic, electrical, or quantum computing device implemented in a movable or non-movable form, and in particular, it may be interpreted as any device designed to operate as a terminal device according to an embodiment of the present invention among such devices, capable of operating as a terminal device according to an embodiment of the present invention, or capable of installing and/or executing a computer program that enables operating as a terminal device according to an embodiment of the present invention or performing a method corresponding to such an operation.

상기 각 단말기(110, 120)는 버스(bus), 회로, 또는 루틴(routine)과 서브루틴(subroutine)의 관계와 같이 다양한 형태로 상호 연결되어 상기 각 단말기(110, 120) 내에서 정보를 교환하도록 구성되는 복수의 기능부에 의하여 구현될 수 있다. 또한, 상기 상호 연결을 통하여, 상기 각 기능부 가운데 계산의 수행을 주로 요하는 기능부의 동작을 실행 또는 지원하기 위한 목적에서, 연산 기능을 가지는 프로세서(130) 및 상기 프로세서에 연결되는 메모리(140)를 포함하도록 구성될 수 있다.Each of the above terminals (110, 120) may be implemented by a plurality of functional units that are interconnected in various forms, such as a bus, a circuit, or a relationship between a routine and a subroutine, and configured to exchange information within each of the above terminals (110, 120). In addition, through the interconnection, for the purpose of executing or supporting the operation of a functional unit that mainly requires calculation among the above functional units, the above terminals may be configured to include a processor (130) having a calculation function and a memory (140) connected to the processor.

본 명세서에 기재된 상기 프로세서(130)는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 의미할 수 있다. The processor (130) described in this specification may mean one or more general-purpose computers or special-purpose computers, such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing instructions and responding.

이해의 편의를 위하여 상기 프로세서(130)가 단수로 표현되는 경우라 할지라도, 해당 기술분야에서 통상의 지식을 가진 자는, 상기 프로세서(130)가 복수 개의 처리요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 본 발명의 일 실시예에 따른 장치는 상기 프로세서(130)로서 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 상기 프로세서(130)는 병렬 프로세서(parallel processor)나 멀티-코어 프로세서(multi-core processor)와 같이, 다양한 처리 구성(processing configuration)에 의하여 구현될 수 있다.Even if the processor (130) is expressed singularly for the convenience of understanding, a person having ordinary skill in the art will recognize that the processor (130) may include a plurality of processing elements and/or a plurality of types of processing elements. For example, a device according to an embodiment of the present invention may include a plurality of processors or one processor and one controller as the processor (130). In addition, the processor (130) may be implemented by various processing configurations, such as a parallel processor or a multi-core processor.

상기 프로세서(130)는, 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어(software)를 수행하도록 구성될 수 있다. 또한, 상기 프로세서는 상기 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 상기 소프트웨어는, 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함하 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 상기 소프트웨어는, 상기 프로세서(130)에 의하여 해석되거나 상기 프로세서에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 상기 소프트웨어는 상기 네트워크(105)로 연결된 복수의 컴퓨터 시스템, 가령 상기 단말기(110, 120) 간에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다.The processor (130) may be configured to execute an operating system (OS) and one or more software executed on the operating system. In addition, the processor may access, store, manipulate, process, and generate data in response to the execution of the software. The software may include a computer program, a code, an instruction, or a combination of one or more of these, and may configure a processing device to operate as desired or independently or collectively command a processing device. The software may be permanently or temporarily embodied in any type of machine, component, physical device, virtual equipment, computer storage medium or device, or transmitted signal wave to be interpreted by the processor (130) or to provide instructions or data to the processor. The software may be distributed among a plurality of computer systems connected to the network (105), such as the terminals (110, 120), and stored or executed in a distributed manner.

상기 소프트웨어는 또한, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 상기 메모리(140)에 기록되거나 저장될 수 있다. 상기 메모리(140)는 컴퓨터 판독 가능 기록 매체일 수 있으며, 상기 컴퓨터 판독 가능 기록 매체에는 프로그램 명령, 데이터 파일, 데이터 구조 등이 단독으로 또는 조합되어 기록될 수도 있다. 상기 메모리(140)에 저장되는 프로그램 명령은 본 발명의 실시예를 위하여 특별히 설계되고 구성된 명령 체계에 기반하거나, 또는 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 명령 체계, 예를 들어 어셈블리어(Assembly), C, C++, Java, Python 언어 등으로 예시되는 명령 체계를 따를 수도 있다. 상기 명령 체계 및 그에 의한 프로그램 명령은 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 본 발명의 일 실시예에 따른 장치 및/또는 상기 프로세서(130)에 의해서 실행될 수 있는 고급 언어 코드를 포함하는 것으로 이해되어야 한다.The software may also be implemented in the form of program commands that can be executed through various computer means and recorded or stored in the memory (140). The memory (140) may be a computer-readable recording medium, and program commands, data files, data structures, etc. may be recorded singly or in combination in the computer-readable recording medium. The program commands stored in the memory (140) may be based on a command system specifically designed and configured for the embodiment of the present invention, or may follow a command system known and available to those skilled in the art of computer software, for example, a command system exemplified by the assembly language, C, C++, Java, Python, etc. It should be understood that the command system and the program commands thereby include not only machine language codes created by a compiler, but also high-level language codes that can be executed by the device and/or the processor (130) according to one embodiment of the present invention using an interpreter, etc.

본 명세서에 기재된 상기 메모리(140)를 포함하여 본 발명의 일 실시예에 따른 장치를 구성하는 컴퓨터 판독 가능 기록 매체는, 프로세서 캐시(Cache), 램(RAM), 플래시 메모리와 같이 상기 프로세서가 동작하는 동안만 유지되는 일시적 또는 휘발성 기록 매체를 포함할 수 있고, 또는 하드 디스크, 플로피 디스크, 및 자기 테이프와 같은 자기체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 또는 정적 상태 메모리(solid state memory)와 같이 상대적으로 비휘발성적이거나 장기 기록이 가능한 기록 매체를 포함할 수 있고, 또는 하드웨어 상에 배치된 롬(ROM)과 같은 읽기 전용의 기록 매체를 포함할 수 있으며, 나아가 회로배선에 의한 하드-와이어드(hard-wired) 구조에 의하여 일련의 프로그램 명령과 등가의 동작을 수행하도록 구성된 하드웨어 그 자체 또한, 본 발명의 실시예를 구현하는 상기 동작을 수행하기 위한 각 단계가 상기 하드웨어 부품의 연결과 배치에 의하여 기록되어 있다고 볼 수 있으므로, 그 연결 및 배치방법이 곧 상기 메모리(140)와 등가인 것으로 볼 수 있음은 통상의 기술자에게 자명하다.The computer-readable recording medium constituting the device according to one embodiment of the present invention, including the memory (140) described in this specification, may include a temporary or volatile recording medium that is maintained only while the processor is operating, such as a processor cache, a RAM, a flash memory, or a relatively nonvolatile or long-term recording medium, such as a magnetic media such as a hard disk, a floppy disk, and a magnetic tape, an optical media such as a CD-ROM, a DVD, a magneto-optical media such as a floptical disk, or a solid state memory, or a read-only recording medium such as a ROM arranged on hardware, and further, the hardware itself configured to perform an operation equivalent to a series of program commands by a hard-wired structure by circuit wiring, and since each step for performing the operation implementing the embodiment of the present invention can be viewed as being recorded by the connection and arrangement of the hardware components, the connection and arrangement method It is obvious to those skilled in the art that this can soon be seen as equivalent to the above memory (140).

상기 프로세서(130) 및 상기 메모리(140)에 대하여 상술한 실시예는 상호 배타적이지 않으며, 필요에 따라 선택되거나 결합되어 실시될 수 있다. 예를 들어, 하나의 하드웨어 장치는 본 발명 실시예의 동작을 수행하기 위해 하나 이상의 상기 소프트웨어로 구성된 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 또 다른 예를 들어, 본 명세서에 있어서, 어떠한 기능부에 할당된 동작의 전부 또는 일부는 본 발명의 일 실시예에 따른 장치에(바람직하게는, 상기 메모리의 범주에 속하는 어느 하나의 기록 매체에) 저장된 하나 이상의 상기 소프트웨어에 의하여 구현되어, 상기 프로세서에 의하여 실행되도록 구성될 수 있으며, 이러한 경우, 상기와 같은 기능부는 상기 프로세서에 "포함되는" 기능부로서 칭해질 수 있다.The embodiments described above with respect to the processor (130) and the memory (140) are not mutually exclusive, and may be selected or combined and implemented as needed. For example, one hardware device may be configured to operate as a module composed of one or more of the software to perform the operations of the embodiments of the present invention, and vice versa. As another example, in the present specification, all or part of the operations assigned to a certain functional unit may be implemented by one or more of the software stored in the device according to one embodiment of the present invention (preferably, in any one of the recording media belonging to the category of the memory) and configured to be executed by the processor, and in this case, such a functional unit may be referred to as a functional unit "included" in the processor.

본 발명은 단방향 또는 양방향 비디오 통신 네트워크를 조성하기 위한 모든 환경에 적용되는 것으로써, 상기 네트워크(105)는 상기 단말기들(110, 120) 간에 부호화된 비디오 데이터를 운반하기 위한 여하의 수단으로 조성될 수 있다고 보아야 한다.The present invention is applicable to all environments for forming a one-way or two-way video communication network, and it should be understood that the network (105) can be formed by any means for transporting encoded video data between the terminals (110, 120).

본 발명의 일 실시예에서, 상기 네트워크(105)는 유선 또는 무선의 통신 네트워크를 의미할 수 있다. 이 때 실시예에 따라서, 상기 네트워크는 임의의 통신 규격으로 정보를 소통하도록 구성될 수 있고, 상기 통신 규격에는 패킷 기반 통신이 포함될 수 있다. 상기 패킷 통신이란, 예를 들어, 이른바 TCP 또는 UDP로 알려진 패킷을 포함하는 의미로 이해될 수 있다. 상기 네트워크(105)의 유선 통신 방식은 RJ-11 규격의 전화선이나 RJ-45 규격의 다양한 카테고리에 속하는 이더넷(ethernet) 케이블, 그 밖의 동축 케이블, 금속 케이블, 광 케이블, 및 그 밖의 다양한 유선 매체에 의하여 외부 통신망에 연결되는 방식일 수 있다. 상기 네트워크(105)의 무선 통신 방식은, 실시예에 따라서 블루투스, Wi-Fi, Zigbee, NFC(near field communication)를 포함하는 근거리 무선 통신 방법을 포함하거나, 또는 Wibro, WiMax, Global Systems for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Long-Term Evolution (LTE), New Radio(NR), 그 밖에 2G, 3G, 4G, 5G, 6G 등의 통신 규격 세대명으로 통칭되는 무선 통신 기술의 명칭, 및 IMT-2000, IMT-Adcanced, IMT-2020, IMT-2030 등의 국제 표준 무선 통신 규격의 명칭으로 지칭될 수 있는 장거리 무선 통신 방법을 포함할 수 있다. 물론 그 외에 종래의 또는 새로이 개발되는 어떠한 유선 또는 무선 통신의 수단, 방법, 규격, 및 프로토콜이 상기 네트워크(105)의 구현에 적용된다 하여도, 상기 단말기(110, 120)와 같은 정보통신 장치에 있어서의 송수신을 수행하도록 구성된 수단인 한 본 발명의 목적 달성에는 지장이 없다. 또한 하나의 네트워크(105)가 하나 이상의 유선 및/또는 무선 규격에 의하여 혼합적으로 구성될 수 있음은 자명하다.In one embodiment of the present invention, the network (105) may mean a wired or wireless communication network. At this time, depending on the embodiment, the network may be configured to communicate information using any communication standard, and the communication standard may include packet-based communication. The packet communication may be understood to mean including, for example, a packet known as TCP or UDP. The wired communication method of the network (105) may be a method of connecting to an external communication network by a telephone line of the RJ-11 standard, an Ethernet cable belonging to various categories of the RJ-45 standard, other coaxial cables, metal cables, optical cables, and other various wired media. The wireless communication method of the above network (105) may include, depending on the embodiment, a short-range wireless communication method including Bluetooth, Wi-Fi, Zigbee, and NFC (near field communication), or may include a long-range wireless communication method that may be referred to as a name of a wireless communication technology collectively called a generation name of communication standards such as Wibro, WiMax, Global Systems for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Long-Term Evolution (LTE), New Radio (NR), and other 2G, 3G, 4G, 5G, and 6G, and a name of an international standard wireless communication standard such as IMT-2000, IMT-Adcanced, IMT-2020, and IMT-2030. Of course, even if any conventional or newly developed wired or wireless communication means, method, standard, and protocol are applied to the implementation of the network (105), there is no problem in achieving the purpose of the present invention as long as it is a means configured to perform transmission and reception in an information and communication device such as the terminal (110, 120). In addition, it is obvious that one network (105) can be configured in a mixed manner by one or more wired and/or wireless standards.

그러나 본 발명의 다른 실시예에서는, 상기 네트워크(105)는 컴퓨터 판독 기록매체를 이용한 정보 전달의 과정을 포함하는 의미로 이해될 수도 있다. 이러한 경우 상기 네트워크의 구성은 비단 통신 매체에 한정되지 아니하며, 컴퓨터 판독 가능한 메모리 및/또는 기록매체에 일시적으로 저장되어 물리적으로 운반되는 과정을 포함하는 것으로 이해되어야 할 것이다. 상기 정보 전달에 사용되는 컴퓨터 판독 가능 기록 매체는, 특히 하드 디스크, 플로피 디스크, 및 자기 테이프와 같은 자기체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 또는 정적 상태 메모리(solid state memory)와 같이 상대적으로 비휘발성적이거나 장기 기록이 가능한 기록 매체로서 컴퓨팅 장치 간의 데이터를 운반하는 수단으로서 주로 사용되는 것을 의미하는 것으로 이해되어도 무방하다.However, in another embodiment of the present invention, the network (105) may be understood to include a process of information transmission using a computer-readable recording medium. In this case, the configuration of the network is not limited to a communication medium, and should be understood to include a process of temporarily storing and physically transporting in a computer-readable memory and/or recording medium. The computer-readable recording medium used for the information transmission may be understood to mean, in particular, a relatively non-volatile or long-term recording medium such as a magnetic media such as a hard disk, a floppy disk, and a magnetic tape, an optical media such as a CD-ROM, a DVD, a magneto-optical media such as a floptical disk, or a solid state memory, which is mainly used as a means of transporting data between computing devices.

그 밖에 어떠한 정보 통신 또는 운반의 수단이 적용되더라도, 비디오 데이터를 부호화한 상태로 전달하여 복호화하도록 지원하는 구조에 있는 한 본 발명의 실시예 범주에 속한다고 볼 수 있다. 따라서 상기 열거된 일부 예시들 외에도 종래에 알려져 있거나 또는 새로이 제공될 수 있는 모든 정보 통신 또는 운반의 수단이 본 발명의 응용 범위에 속할 수 있다.Any other means of information communication or transportation applied can be considered to fall within the scope of embodiments of the present invention as long as it has a structure that supports transmitting video data in an encoded state and decoding it. Accordingly, in addition to some of the examples listed above, all means of information communication or transportation known in the past or newly provided can fall within the scope of application of the present invention.

도 2는 본 발명의 일 실시예에 따른 실시간 비디오 스트리밍 환경에서의 부호화기 및 복호화기 배치에 대한 개념도이다. 도 2가 예시하는 스트리밍 시스템(200)은, 예를 들어, 디지털 방송, 화상 전화, 화상 회의를 포함하는 비디오 데이터 통신 네트워크에 적용된다고 볼 수 있다. 단, 상기 스트리밍 시스템과 동일 또는 유사한 기술적 구조가, 상술한 바와 같이, 기록매체를 경유하는 정보 운반이 수반되는 경우에도 동일하게 적용될 수 있다고 보아야 할 것이다.FIG. 2 is a conceptual diagram of the arrangement of an encoder and decoder in a real-time video streaming environment according to one embodiment of the present invention. The streaming system (200) illustrated in FIG. 2 can be considered to be applied to, for example, a video data communication network including digital broadcasting, video telephony, and video conferencing. However, it should be noted that the technical structure identical to or similar to the streaming system can be equally applied to a case where information is transmitted via a recording medium as described above.

본 발명의 일 실시예에 따르면, 상기 스트리밍 시스템은 비디오 스트림을 생성하는 비디오 소스(210)를 포함할 수 있다. 상기 비디오 소스는, 압축되지 않은 원본(raw) 비디오를 취득하는, 예를 들어 디지털 카메라나 그 밖의 기재로 구성될 수 있는 디지털 비디오 취득 수단(212)을 포함할 수 있다. 상기 원본 비디오 스트림(215)은 막대한 용량을 지닐 수 있으며, 따라서 상기 비디오 소스에 결합 또는 연결되어 있는 비디오 부호화기(217)에 의하여 압축 처리될 수 있다.According to one embodiment of the present invention, the streaming system may include a video source (210) that generates a video stream. The video source may include a digital video acquisition means (212), which may be, for example, a digital camera or other device, for acquiring uncompressed raw video. The raw video stream (215) may have a huge capacity and may therefore be compressed by a video encoder (217) coupled or connected to the video source.

상기 부호화기(217)는 본 발명의 일 실시예에 따른 영상 부호화 방법 및/또는 그 실시방법을 구현하기 위하여 조성된 하드웨어, 소프트웨어, 또는 상기 양자의 조합을 포함하는 수단으로 구성될 수 있다.The above encoder (217) may be configured as a means including hardware, software, or a combination of the two, configured to implement an image encoding method and/or an implementation method thereof according to one embodiment of the present invention.

상기 부호화기(217)를 경유하여, 상기 원본 비디오 스트림에 비하여 용량이 줄어든 부호화된 비트열(bitstream)(219)이 출력될 수 있다. 상기 비트열(219)은 예를 들어 스트리밍 서버(220)로 호칭될 수 있는 중계 장치에 의하여 실시간으로 통신 상에 제공될 수 있으며, 그리고/또는 사후적인 사용을 위하여 상기 스트리밍 서버(220)의 기록매체(225)에 저장될 수 있다.Through the encoder (217), an encoded bit stream (219) with a reduced capacity compared to the original video stream can be output. The bit stream (219) can be provided in real time for communication by a relay device, which may be referred to as a streaming server (220), for example, and/or can be stored in a recording medium (225) of the streaming server (220) for subsequent use.

상기 스트리밍 시스템(200)에는 상기 스트리밍 서버(220)에 접속하여 상기 부호화된 비트열(229)을 실시간으로 수신하거나 또는 사후적으로 획득하고자 하는 적어도 하나의 스트리밍 클라이언트(230, 240)가 포함될 수 있다. 상기 스트리밍 클라이언트는 상기 부호화된 비트열(229)(상기 스트리밍 서버가 수신한 비트열(219)의 사본으로도 간주할 수 있다)을 획득하여, 상기 비트열(229)을 복호화하고, 그 결과인 비디오 데이터를 디스플레이(235) 또는 그 외의 시각적, 청각적, 기타 감각적 표시수단에 의하여 표시할 수 있는 형태의 비디오 데이터로 출력하는 비디오 복호화기(232)를 포함할 수 있다. The streaming system (200) may include at least one streaming client (230, 240) that connects to the streaming server (220) to receive the encoded bit string (229) in real time or obtain it later. The streaming client may include a video decoder (232) that obtains the encoded bit string (229) (which may also be considered as a copy of the bit string (219) received by the streaming server), decodes the bit string (229), and outputs the resulting video data as video data in a form that can be displayed by a display (235) or other visual, auditory, or other sensory display means.

상술하는 바와 같이 비디오 데이터를 부호화하고 복호화하기 위한 기능을 통칭하여 부호화-복호화계통(coder-and-decoder), 즉 비디오 코덱(codec)으로 부른다.As described above, the functions for encoding and decoding video data are collectively called a coder-and-decoder, or video codec.

도 3은 본 발명의 일 실시예에 따른 비디오 복호화기의 기능부 단위 개념도이다. 도 3에 나타나는 바와 같이, 수신부(310)는 복호화기(305)에 의해 복호화될 적어도 하나의 부호화된 비디오 데이터를 수신할 수 있다. 본 발명의 일 실시예에 있어서, 상기 부호화된 비디오 데이터는 매 수신마다 독립적일 수 있으며, 상기 각각의 독립적인 비디오 데이터의 복호화 절차는 다른 비디오 데이터의 복호화 절차로부터 독립적일 수 있다. 상기 부호화된 비디오 데이터는 이를 저장하는 장치에 대한 하드웨어적 또는 소프트웨어적 연결(315)을 통해 상기 수신부(310)로 수신될 수 있으며, 상술한 바와 같이 상기 저장하는 장치는 통신 네트워크의 상대측에 위치하는 일종의 스트리밍 서버이거나, 또는 물리적인 기록매체를 의미할 수도 있으며, 이에 한정되지 아니한다.FIG. 3 is a conceptual diagram of a functional unit of a video decoder according to an embodiment of the present invention. As shown in FIG. 3, a receiving unit (310) can receive at least one encoded video data to be decoded by a decoder (305). In an embodiment of the present invention, the encoded video data can be independent for each reception, and a decoding procedure of each independent video data can be independent from a decoding procedure of other video data. The encoded video data can be received by the receiving unit (310) through a hardware or software connection (315) to a device storing the same, and as described above, the storing device may be a kind of streaming server located at the other end of a communication network, or may mean a physical recording medium, but is not limited thereto.

상기 수신부(310)는 상기 부호화된 비디오 데이터를 그에 동반하는 다른 데이터, 예를 들면 부호화된 오디오 데이터나 그 밖의 보조 데이터들과 함께 수신할 수 있고, 상기 각각의 데이터는 상기 비디오 데이터와 분리되어 상기 비디오 복호화기 외의 적절한 처리 기능부(312)에 제공될 수 있다.The above receiving unit (310) can receive the encoded video data together with other data accompanying it, such as encoded audio data or other auxiliary data, and each of the data can be separated from the video data and provided to an appropriate processing function unit (312) other than the video decoder.

통신 네트워크를 통해 상기 비디오 데이터를 제공받는 경우, 네트워크 환경에 따른 지연 및 끊김을 최소화하기 위하여, 상기 수신부(310)와 상기 복호화기(305) 사이에는 버퍼 메모리(320)가 결합될 수 있다. 상기 버퍼 메모리(320)는 상기 수신된 비디오 데이터를 일시적으로 저장하여 상기 복호화기(305)의 입력단에 해당하는 파서(parser)(330)에 안정적으로 공급하는 기능을 하는 컴퓨터 판독 가능한 기록매체를 의미할 수 있다. 단, 통신 네트워크의 대역폭이 충분하거나, 물리적으로 이격되지 않은 로컬 위치의 기록매체로부터 비디오 데이터를 읽어들이고 있거나, 그 밖에 통신 지연의 가능성이 예측되지 않는 환경에서라면, 상기 버퍼 메모리는 불필요할 수 있다.When the video data is provided through a communication network, a buffer memory (320) may be coupled between the receiving unit (310) and the decoder (305) in order to minimize delay and disconnection according to the network environment. The buffer memory (320) may mean a computer-readable recording medium that temporarily stores the received video data and stably supplies it to a parser (330) corresponding to the input terminal of the decoder (305). However, if the bandwidth of the communication network is sufficient, if the video data is read from a recording medium in a local location that is not physically separated, or if the possibility of communication delay is not predicted in other environments, the buffer memory may be unnecessary.

비디오 복호화기(305)는 상기 부호화된 비디오 데이터를 해석하기 위해 그 입력단으로서 상기 파서(330)를 포함할 수 있다. 상기 파서는 상기 부호화된 비디오 데이터에 비트열의 형태로 저장된 다수의 정보를 소정 규칙에 의하여 분리(파싱; parsing)하고, 필요에 따라서는 엔트로피 부호화(entropy coding)된 비디오 데이터를 엔트로피 복호화(entropy decoding)(335)하는 기능을 수행함으로써, 비디오 부호화 정보의 단락들인 심볼(symbol)들(338)을 재구성하는 기능을 수행할 수 있다. 상기 심볼(338)은 상기 복호화기(305)의 동작을 제어하기 위한 일체의 정보를 포함할 수 있으며, 그리고/또는 상기 복호화기(305)에 부속되어 동작할 수 있는 장치, 이를테면 디스플레이와 같은 표시 장치의 제어를 위한 정보를 더 포함할 수 있다. 상기 표시 장치의 제어를 위한 제어 정보는 보조적 강화 정보(supplementary enhancement information; SEI) 또는 비디오 가용성 정보(video usability information; VUI)로 칭해지는 형식의 정보를 포함할 수 있다.The video decoder (305) may include the parser (330) as its input terminal to interpret the encoded video data. The parser may perform a function of separating (parsing) a plurality of pieces of information stored in the form of a bit string in the encoded video data according to a predetermined rule, and, if necessary, performing an entropy decoding (335) of entropy-coded video data, thereby performing a function of reconstructing symbols (338), which are paragraphs of video encoding information. The symbols (338) may include all information for controlling the operation of the decoder (305), and/or may further include information for controlling a device that is attached to the decoder (305) and can operate, such as a display device, such as a display. Control information for controlling the above display device may include information in a format called supplementary enhancement information (SEI) or video usability information (VUI).

상술한 바와 같이 상기 파서(330)는 상기 부호화된 비디오 데이터의 엔트로피 복호화(335)를 수행하도록 구성될 수 있다. 상기 부호화된 비디오 데이터의 엔트로피 부호화 방법은 상기 부호화의 규격에 따라 상이할 수 있으며, 이에 대응하여 복호화가 이루어질 수 있다. 상기 엔트로피 부호화 규격의 대표적인 예를 들면, 가변 길이 부호화(variable length coding), 허프만 부호화(huffman coding), 산술 부호화(arithmetic coding)를 포함할 수 있으며, 상기 각각의 부호화 방법은 규격에 따라서 맥락 적응적(context-adaptive) 또는 맥락 민감성(context-sensitive) 방법일 수 있으며, 그 밖에 통상의 기술자에게 널리 알려진 원리들에 의한 것일 수 있다. As described above, the parser (330) may be configured to perform entropy decoding (335) of the encoded video data. The entropy encoding method of the encoded video data may vary depending on the encoding standard, and decoding may be performed correspondingly. Representative examples of the entropy encoding standard may include variable length coding, Huffman coding, and arithmetic coding, and each of the encoding methods may be a context-adaptive or context-sensitive method depending on the standard, and may be based on principles widely known to those skilled in the art.

상기 파서(330)는 상기 부호화된 비디오 데이터로부터 적어도 하나의 부분 화상을 추출하도록 구성될 수 있다. 상기 부분 화상의 정의는 상기 부호화의 규격에 따라 상이할 수 있으며, 규격에 따라서 이하 열거하는 예시 중 하나가, 또는 다수가 동시에 중첩적으로 해당할 수 있다. 상기 부분 화상은 예를 들어, 화상 그룹(group of pictures; GOPs), 화상(pictures)/프레임(frames), 타일(tiles), 슬라이스(slices), 매크로블록(macroblocks), 블록(blocks), 서브블록(subblocks), 변환단위(transform units; TUs), 예측단위(prediction units; PUs)와 같은 단위로 정의될 수 있다.The parser (330) may be configured to extract at least one partial image from the encoded video data. The definition of the partial image may vary depending on the encoding standard, and depending on the standard, one or more of the examples listed below may correspond simultaneously and overlappingly. The partial image may be defined as a unit such as a group of pictures (GOPs), pictures/frames, tiles, slices, macroblocks, blocks, subblocks, transform units (TUs), or prediction units (PUs).

상기 파서(330)는 상기 부호화된 비디오 데이터로부터 변환 계수(tranform coefficients), 양자화 파라미터(quantization parameters; QPs), 및/또는 움직임 벡터(motion vectors)와 같은 부호화 정보를 추출하도록 구성될 수 있다. 상기 파서(330)는 상기 버퍼 메모리로부터 수신된 비디오 데이터에 대하여 엔트로피 복호화(335) 및 파싱 동작을 수행하고, 상기 부호화 정보를 나타내는 심볼(338)들을 선택적으로 복호화하도록 구성될 수 있다. 또한, 상기 파서(330)는 특정 심볼(338)을 복호화기(305) 내부의 특정 복호화 기능부, 예를 들면 역양자화(inverse quantization) 및 역변환부(inverse transform)(340), 인트라 예측(intra prediction)부(350), 인터 예측(inter prediction)부(355), 또는 루프 필터(loop filter)부(360) 등에 선택적으로 공급하도록 구성될 수 있다. 이러한 정보 공급의 제어는 상기 부호화된 비디오에 포함되어 있는 정보 순열에 의하여 결정될 수 있으며, 부호화 규격에 따라 상이할 수 있는 바 본 발명의 실시예 범위 내에서 한정되지는 않는 바, 본 개념도에서는 상세히 기재되지 아니한다.The parser (330) may be configured to extract encoding information, such as transform coefficients, quantization parameters (QPs), and/or motion vectors, from the encoded video data. The parser (330) may be configured to perform entropy decoding (335) and parsing operations on the video data received from the buffer memory, and to selectively decode symbols (338) representing the encoding information. In addition, the parser (330) may be configured to selectively supply a specific symbol (338) to a specific decoding function unit within the decoder (305), such as an inverse quantization and inverse transform unit (340), an intra prediction unit (350), an inter prediction unit (355), or a loop filter unit (360). Control of such information supply can be determined by the information sequence contained in the encoded video, and may vary depending on the encoding standard, and is not limited within the scope of the embodiments of the present invention, and is not described in detail in this conceptual diagram.

상기 복호화기(305)는 상기 파서(330)로부터 상기 부호화 정보를 제공받아 처리하는 다수의 개념적 기능부로 구성될 수 있다. 이러한 개념적 기능부는 구현상의 필요에 따라 서로 결합되거나 또는 더욱 세분될 수 있음이 자명하다. 예를 들어, 구현의 용이함을 위하여 더욱 분리될 수 있고, 동작의 효율성을 위하여 하나로 통합될 수 있다. 어떠한 경우에든, 각각의 기능부는 상호 밀접한 상호작용을 수행하도록 구성될 수 있다. 단, 이러한 통합 또는 분리의 가능성에도 불구하고, 본 발명의 실시예로서 적용되는 비디오 데이터의 복호화 절차를 나타내기 위하여 후술하는 바와 같은 개념적 기능부의 조합으로서 설명하기로 한다.The above decoder (305) may be composed of a plurality of conceptual functional units that receive and process the encoding information from the parser (330). It is obvious that these conceptual functional units may be combined with each other or further subdivided according to implementation needs. For example, they may be further separated for ease of implementation and integrated into one for efficiency of operation. In any case, each functional unit may be configured to perform close interaction with each other. However, despite the possibility of such integration or separation, the following will be described as a combination of conceptual functional units in order to illustrate a decoding procedure of video data applied as an embodiment of the present invention.

상기 복호화기는 역양자화 및 역변환부(340)를 포함할 수 있다. 상기 역양자화 및 역변환부(340)는 상기 파서(330)로부터 수치 변환(transform)에 사용할 방법, 블록의 크기, 양자화된 정보를 복구하기 위한 양자화 계수, 및 상기 양자화 계수를 단순화하여 나타내는 양자화 행렬의 구분 정보 등을 포함하는 부호화 정보를 수신하도록 구성될 수 있으며, 상기 부호화 정보를 처리한 결과로서 병합부(aggregator)(370)에 입력될 수 있는 블록 값(341)들을 출력하도록 구성될 수 있다.The above decoder may include an inverse quantization and inverse transformation unit (340). The inverse quantization and inverse transformation unit (340) may be configured to receive encoding information including a method to be used for numerical transformation from the parser (330), a size of a block, quantization coefficients for recovering quantized information, and distinction information of a quantization matrix that simplifies and represents the quantized coefficients, and may be configured to output block values (341) that may be input to an aggregator (370) as a result of processing the encoding information.

본 발명의 일 실시예에 있어서, 상기 역양자화 및 역변환부(340)의 출력 값들은 인트라 예측 부호화된 블록 값을 포함할 수 있다. 상기 인트라 예측된 블록 값이란, 이전에 복호화된 부분 화상, 가령 이전 프레임으로부터의 예측 정보를 이용하지 아니하나, 현재 복호화 중인 부분 화상, 가령 현재 프레임 내부에서의 예측 정보를 이용하여 복호화될 수 있는 값을 의미할 수 있다.In one embodiment of the present invention, the output values of the inverse quantization and inverse transformation unit (340) may include intra-prediction encoded block values. The intra-predicted block values may mean values that can be decoded without using prediction information from a previously decoded partial image, for example, a previous frame, but using prediction information within a partial image currently being decoded, for example, a current frame.

상기 현재 부분 화상 내부에서의 예측 정보는 인트라 예측부(350)에 의하여 제공될 수 있다. 본 발명의 실시예에 따라서, 상기 인트라 예측부(350)는, 현재 복호화 중으로써 부분적으로 복호화가 완료된 부분 화상으로부터 도출된, 공간적으로 인접한 영역의 화상 정보를 이용하여 복호화 중인 블록과 동일한 형태의 블록 값을 예측 정보로서 생성한다. 상기 부분 화상 정보는 현재 화상 버퍼, 이른바 라인 버퍼(line buffer)(380)로부터 제공(381)될 수 있다. 상기 병합부(370)는, 실시예에 따라서, 상기 인트라 예측부(350)가 생성한 예측 정보(351)를 상기 역양자화 및 역변환부(340)가 제공한 블록 값(341)들과 병합하도록 구성될 수 있다.The prediction information within the current partial image may be provided by the intra prediction unit (350). According to an embodiment of the present invention, the intra prediction unit (350) generates a block value having the same form as the block being decoded as the prediction information by using the image information of a spatially adjacent area derived from a partial image currently being decoded and of which decoding has been partially completed. The partial image information may be provided (381) from a current image buffer, a so-called line buffer (380). The merging unit (370) may be configured to merge the prediction information (351) generated by the intra prediction unit (350) with the block values (341) provided by the inverse quantization and inverse transformation unit (340), according to an embodiment.

다른 일 실시예에 있어서, 상기 역양자화 및 역변환부(340)의 출력 값들은 인터 예측 부호화된 블록 값으로, 경우에 따라서는, 움직임 보상(motion compensation)이 이루어진 블록 값을 포함할 수 있다. 이러한 경우, 인터 예측부(355)가 참조 화상 버퍼(reference picture buffer)(385)로부터 움직임 기반의 예측에 사용되는 샘플 정보(386)를 추출하여 사용할 수 있다. 상기 출력 값으로써의 블록 값에 포함된 심볼(338)들에 기반하여 상기 샘플 정보에 대한 움직임 보상을 수행하여 도출된 정보(356)는 상기 병합부(370)에 의해 상기 역양자화 및 역변환부(340)가 제공한 블록 값(341)들과 병합하도록 구성될 수 있다. 이 경우, 상기 블록 값(341)들은 이른바 차분(differntial) 또는 잔차(residual) 값으로 호칭될 수 있다.In another embodiment, the output values of the inverse quantization and inverse transformation unit (340) may include block values subjected to motion compensation as inter-prediction encoded block values, and in some cases, block values subjected to motion compensation. In this case, the inter-prediction unit (355) may extract and use sample information (386) used for motion-based prediction from a reference picture buffer (385). The information (356) derived by performing motion compensation on the sample information based on the symbols (338) included in the block values as the output values may be configured to be merged with the block values (341) provided by the inverse quantization and inverse transformation unit (340) by the merging unit (370). In this case, the block values (341) may be referred to as so-called differential or residual values.

상기 인터 예측부(355)가 상기 샘플 정보를 상기 참조 화상으로부터 추출하기 위해 사용하는 메모리 내에서의 위치 정보는, 예를 들어 X, Y, 및 그 밖에 참조 화상의 특정 지점을 나타내기 위한 심볼(338)의 조합으로 구성되어 상기 인터 예측부(355)에 제공되는 움직임 벡터(motion vector)에 의하여 결정될 수 있다. 상기 인터 예측부(355)는 또한, 이른바 '서브샘플링(subsampling)' 가능한 움직임 벡터가 제공된 경우, 상기 샘플 값들을 보간(interpolation)하여 사용할 수 있는 기능을 포함할 수 있으며, 또한, 상기 움직임 벡터의 값을 예측하여 보강하는 기능을 더 포함할 수도 있다.The position information in the memory used by the inter prediction unit (355) to extract the sample information from the reference image may be determined by a motion vector provided to the inter prediction unit (355) which is composed of a combination of symbols (338) for representing, for example, X, Y, and other specific points of the reference image. The inter prediction unit (355) may also include a function capable of interpolating and using the sample values when a so-called 'subsampling' capable motion vector is provided, and may further include a function for predicting and reinforcing the value of the motion vector.

상기 병합부(370)의 출력 값(371)들은 루프 필터부(360)에 제공되어 다양한 루프 필터링 방법에 의하여 처리될 수 있다. 상기 루프 필터부(360)는 상기 병합부(370)의 블록 단위 출력(371) 뿐 아니라, 상기 파서(330)로부터 제공되는 심볼(338)을 입력받아 그 동작의 제어가 이루어지도록 구성될 수도 있다. 상기 루프 필터부(360)의 출력은 출력 연결(390)을 통해 상기 표시 장치와 같은 외부 표시 수단에 출력될 수 있으나, 사후의 인트라 또는 인터 부호화 블록 값을 해석하기 위한 예측에 사용하기 위하여 라인 버퍼(380)에 저장(361)되고, 또한 이를 거쳐 참조 화상 버퍼(385)에 저장될 수 있다.The output values (371) of the above merging unit (370) may be provided to the loop filter unit (360) and processed by various loop filtering methods. The loop filter unit (360) may be configured to receive not only the block unit output (371) of the merging unit (370) but also the symbol (338) provided from the parser (330) and control its operation. The output of the loop filter unit (360) may be output to an external display means such as the display device through an output connection (390), but may be stored (361) in a line buffer (380) for use in prediction for interpreting a subsequent intra or inter encoded block value, and may also be stored in a reference image buffer (385) through this.

특정한 부분 화상들, 가령 프레임들은, 그 복호화가 완료되고 나면, 사후의 복호화 과정에서 예측 복호화를 수행하기 위한 참조 화상으로서 활용될 수 있다. 하나의 부분 화상, 가령 프레임은, 라인 버퍼(380)에 단계적으로 축적되며 복호화가 진행될 수 있으며, 하나의 프레임이 복호화 완료되는 경우, 상기 라인 버퍼(380)의 내용은 상기 참조 화상 버퍼(385)로 이전(383)되고, 새로운 라인 버퍼(380)가 새로운 프레임의 복호화를 위하여 할당될 수 있다.Specific partial images, such as frames, after their decoding is completed, can be utilized as reference images for performing predictive decoding in a subsequent decoding process. One partial image, such as a frame, can be gradually accumulated in a line buffer (380) and decoded, and when one frame is decoded, the contents of the line buffer (380) can be transferred (383) to the reference image buffer (385), and a new line buffer (380) can be allocated for decoding a new frame.

상기 비디오 복호화기(305)는, 다양한 국제 표준 규격 또는 상용 규격에 의해 문서화될 수 있는 미리 결정된 비디오 압축 기술에 따라 복호화 동작을 수행하도록 구성될 수 있다. 상기 규격이란 예를 들어, 국제전기통신연합 표준화분과(ITU-T)가 규정한 국제표준권고안(recommendation)인 H.264, H.265, H.266 등을 포함할 수 있다. 통상의 기술자는 상기 각각의 권고안이 국제표준화기구(ISO) 및 국제전기기술회의(IEC)에 의하여 공동으로 규정된 국제표준과 등가임을 이해할 것이다. 부호화된 비디오 데이터는, 비디오 압축 규격 문서 및 표준 문서에서, 그리고 구체적으로는 그러한 문서 내부에서 지정하는 프로파일(profile) 및 레벨(level)에 의하여 정의되고 또한 요구되는 바에 따라서, 해당 규격이 정의하고 있는 특정한 비트열 구문(bitstream syntax)을 준수할 수 있다. 상기 프로파일과 레벨의 준수를 위해서는 그 밖에도 부호화된 비디오 데이터의 복잡성이 일정 수준으로 제한될 수 있다. 예를 들어, 어떠한 프로파일 또는 레벨은 최대 화상 크기, 최대 복호화 속도, 및 최대 참조 화상 규모를 제한하도록 구성될 수 있다. 상기 제한 사항들은 또한, 일부 실시예들에 있어서는, 가상적 기준 복호화기(hypotherical reference decoder; HRD) 및 부호화된 비디오 데이터에 포함되어 있는 상기 HRD 버퍼 관리에 대한 메타데이터 신호를 통하여 추가적으로 제한될 수도 있다.The above video decoder (305) may be configured to perform a decoding operation according to a predetermined video compression technique that may be documented by various international standard specifications or commercial standards. The standards may include, for example, international standard recommendations such as H.264, H.265, and H.266 defined by the International Telecommunication Union Standardization Sub-Tier (ITU-T). A person skilled in the art will understand that each of the above recommendations is equivalent to an international standard jointly defined by the International Organization for Standardization (ISO) and the International Electrotechnical Conference (IEC). The encoded video data may comply with a specific bitstream syntax defined by the corresponding standard as defined in the video compression standard document and standard document, and specifically, by the profile and level specified within such document. In addition, the complexity of the encoded video data may be limited to a certain level in order to comply with the profile and level. For example, a profile or level may be configured to limit a maximum picture size, a maximum decoding speed, and a maximum reference picture size. The limitations may also, in some embodiments, be further limited via metadata signals for a hypothetical reference decoder (HRD) and HRD buffer management included in the encoded video data.

본 발명의 일 실시예에 따르면, 상기 수신부(310)는 상기 부호화된 비디오와 함께 추가적인 중복 데이터를 수신할 수 있다. 상기 추가적인 데이터는 상기 부호화된 비디오 데이터의 일부로서 간주될 수 있다. 상기 추가적인 데이터는 데이터를 적절히 복호화하기 위해서, 또는 부호화 전 영상에 근접하는 영상을 보다 정확하게 재구성하기 위해서, 상기 복호화기(305)에 의하여 사용될 수 있는 정보를 포함할 수 있다. 상기 추가적인 데이터는 예를 들어, 시간, 공간, 또는 신호 대 잡음 비(SNR) 향상을 위한 계층들, 중복 슬라이스들, 중복 화상들, 및 순방향 오류 정정 코드들과 같은 형태로 제공될 수 있다.According to one embodiment of the present invention, the receiver (310) may receive additional redundant data together with the encoded video. The additional data may be considered as a part of the encoded video data. The additional data may include information that may be used by the decoder (305) to properly decode the data, or to more accurately reconstruct an image that approximates the original image before encoding. The additional data may be provided in the form of, for example, layers for temporal, spatial, or signal-to-noise ratio (SNR) enhancement, redundant slices, redundant pictures, and forward error correction codes.

도 4 본 발명의 일 실시예에 따른 비디오 부호화기의 기능부 단위 개념도이다. 상기 부호화기(405)는 비디오 소스(401)로부터 원본 비디오 정보(402)를 수신하여 부호화를 실시하도록 구성될 수 있다.FIG. 4 is a functional unit conceptual diagram of a video encoder according to one embodiment of the present invention. The encoder (405) may be configured to receive original video information (402) from a video source (401) and perform encoding.

상기 원본 비디오 정보(402)는 임의의 적합한 비트 심도(bit depth)를 가질 수 있으며, 예를 들어 8비트, 10비트, 12비트 등을 가질 수 있다. 또한, 상기 원본 비디오 정보(402)는 임의의 적합한 색공간을 가질 수 있으며, 예를 들어, R/G/B, Y/U/V, Y/Cb/Cr 등을 가질 수 있다. 또한, 상기 원본 비디오 소스는 상기 색공간에 대응하는 임의의 적합한 샘플링 구조를 가질 수 있으며, 예를 들어 Y/Cb/Cr 4:2:0, Y/Cb/Cr 4:4:4와 같은 형태를 가질 수 있다. 이러한 소정의 형식을 가진 원본 비디오 소스는 디지털 비디오 스트림의 형태로 상기 부호화기에 제공될 수 있다.The above original video information (402) may have any suitable bit depth, for example, 8 bits, 10 bits, 12 bits, etc. In addition, the original video information (402) may have any suitable color space, for example, R/G/B, Y/U/V, Y/Cb/Cr, etc. In addition, the original video source may have any suitable sampling structure corresponding to the color space, for example, may have a format such as Y/Cb/Cr 4:2:0, Y/Cb/Cr 4:4:4. The original video source having such a predetermined format may be provided to the encoder in the form of a digital video stream.

단방향 비디오 통신 네트워크에 있어서, 상기 원본 비디오 정보(402)는, 사전에 준비되어 있는 비디오 원본을 저장해 둔 기록매체로부터 획득될 수 있다. 양방향 비디오 통신 네트워크에 있어서, 상기 원본 비디오 정보(402)는 상기 양방향 비디오 통신에 포함되는 적어도 하나의 비디오 송출 스트림을 생성하는 영상 취득 장치, 예를 들어 카메라와 같은 장치로부터 획득될 수 있다.In a one-way video communication network, the original video information (402) can be obtained from a recording medium storing a previously prepared video original. In a two-way video communication network, the original video information (402) can be obtained from an image acquisition device, such as a camera, that generates at least one video transmission stream included in the two-way video communication.

상기 원본 비디오 정보(402)를 포함하는 비디오 데이터는, 시간 순서에 따라 재생함으로써 움직임을 모사하도록 구성되는 복수의 부분 화상으로서 구성될 수 있다. 상기 부분 화상이란 예를 들어, 픽처(picture)나 프레임(frame)과 같은 개념으로 표현될 수 있다. 상기 부분 화상은 사용 중인 샘플링 구조, 색공간 등의 유형에 따라 하나 이상의 샘플(sample)을 포함할 수 있다. 통상의 기술자는 상기 샘플과 디지털 영상에서의 픽셀(pixel)이 밀접한 관련을 가지는 용어임을 이해할 수 있을 것이다. 이하 이 같은 샘플을 중심으로 하여 부호화기의 동작을 설명한다.The video data including the above original video information (402) may be configured as a plurality of partial images configured to simulate motion by being played back in time order. The partial images may be expressed as concepts such as pictures or frames, for example. The partial images may include one or more samples depending on the type of sampling structure, color space, etc. being used. A person skilled in the art will understand that the sample and the pixel in a digital image are closely related terms. Hereinafter, the operation of the encoder will be described based on such samples.

본 발명의 일 실시예에 따르면, 부호화기(405)는 상기 원본 비디오 정보(402)를 구성하는 (부분) 화상들을 실시간으로 (또는 실시방법에 따라 필요로 되는 다른 시간적 요구조건에 의하여) 부호화된 비디오 정보의 형태로 부호화 및 압축하도록 구성될 수 있다.According to one embodiment of the present invention, the encoder (405) may be configured to encode and compress (partial) images constituting the original video information (402) in real time (or according to other temporal requirements required according to the implementation method) into the form of encoded video information.

상기 부호화기(405)에 있어, 제어부(450)는 적절한 부호화 속도를 제어하도록 구성되는 기능부일 수 있다. 상기 제어부(450)는 이하 설명되는 바와 같이 다른 기능부들을 제어하고 하기 기능부들에 기능적으로 결합되도록 구성될 수 있다. 상기 제어부(450)에 의해 설정되는 파라미터들은 비트 전송율(bitrate) 제어에 관련된 파라미터, 예를 들면 화상의 스킵(skip), 양자화기(quantizer), 화질 최적화 기법의 적용을 위한 변수값 등을 포함할 수 있으며, 또한 화상의 크기, 화상 그룹(group of pictures; GOP)의 구조, 움직임 벡터의 최대 검색 범위와 같은 값을 포함할 수 있다. 통상의 기술자는 상기 제어부(450)가 가질 수 있는 다양한 다른 기능들에 대하여 이해할 수 있을 것이며, 그러한 다른 기능들은 개별적 시스템 설계에 최적화된 비디오 부호화기의 설계에 따라 부가 또는 제거될 수 있는 것들이다.In the above encoder (405), the control unit (450) may be a functional unit configured to control an appropriate encoding speed. The control unit (450) may be configured to control other functional units and be functionally coupled to the following functional units as described below. The parameters set by the control unit (450) may include parameters related to bitrate control, such as skip of the picture, quantizer, variable values for applying a picture quality optimization technique, and may also include values such as the size of the picture, the structure of a group of pictures (GOP), and the maximum search range of a motion vector. A person skilled in the art will be able to understand various other functions that the control unit (450) may have, and such other functions may be added or removed according to the design of a video encoder optimized for an individual system design.

본 발명의 실시예에 따라서, 상기 부호화기(405)는 통상의 기술자에게 잘 알려진 "코딩 루프(coding loop)"와 같은 구조로 동작하도록 구성될 수 있다. 예시적으로 단순화하여 설명하면, 상기 코딩 루프는, 부호화될 화상을 입력받고 종래에 부호화한 적어도 하나의 참조 화상에 기반하여 심벌(symbol)들을 생성하는 것을 담당하는 내부 부호화기(이른바 "소스 코더(source coder)")(410), 및 상기 내부 부호화기에 접속되도록 구성되는 내부 복호화기(local decoder)(420)로 구성될 수 있다. 상기 내부 복호화기(420)는 상기 내부 부호화기(410)의 출력을 제공받음으로써, 상기 부호화기(405)로부터 부호화된 비디오 정보를 전달받게 될 실제 원격지에 있는 복호화기(490)가 생성하게 될 샘플 데이터를 재현하기 위한 동작을 수행하도록 구성될 수 있다. According to an embodiment of the present invention, the encoder (405) may be configured to operate in a structure such as a "coding loop" well known to those skilled in the art. To briefly explain by way of example, the coding loop may be configured with an internal encoder (so-called "source coder") (410) which is responsible for receiving an image to be encoded and generating symbols based on at least one reference image that has been encoded in the past, and a local decoder (420) which is configured to be connected to the internal encoder. The local decoder (420) may be configured to perform an operation to reproduce sample data to be generated by a decoder (490) located at an actual remote location that will receive encoded video information from the encoder (405) by receiving an output of the internal encoder (410).

상기 내부 복호화기(420)에 의하여 재구성된 샘플 데이터로 구성된 비디오 데이터는 상기 부호화기(405)의 참조 화상 버퍼에 입력되도록 구성될 수 있다. 상술한 바와 같이 상기 내부 복호화기(420)는 상기 부호화기(405)가 출력하여 원격지의 복호화기에서 복호화될 결과물을 재현하도록 구현되었으므로, 상기 참조 화상 버퍼에 록되는 비디오 데이터 또한 원격지의 복호화기가 가지는 참조 화상 버퍼의 정보와 비트 단위로 동일할 수 있다. 즉, 상기 부호화기(405)에 포함될 수 있는 예측 기능부는 추후 복호화기가 복호화 과정에서 참조하게 될 이전 프레임의 샘플 값들과 동일한 값들을 상기 부호화기(405)의 참조 화상 버퍼로부터 읽어들일 수 있다.The video data composed of sample data reconstructed by the internal decoder (420) may be configured to be input to the reference picture buffer of the encoder (405). As described above, the internal decoder (420) is implemented to reproduce the result output by the encoder (405) and to be decoded by a remote decoder, so the video data recorded in the reference picture buffer may also be identical in bit units to the information of the reference picture buffer of the remote decoder. That is, the prediction function unit that may be included in the encoder (405) may read the same values as the sample values of the previous frame that the decoder will later refer to in the decoding process from the reference picture buffer of the encoder (405).

상술하는 바와 같이 부호화기(405) 측의 내부 복호화기(420)에 의하여 부호화기(405)와 복호화기(490) 간 참조 화상 버퍼의 일치를 달성하는 원리는 통상의 기술자에게 널리 알려진 바에 따르며, 또한 그러한 환경이 보장되지 아니하는 환경(예를 들어, 통신 장애로 인한 정보 유실 등)에 대응하는 방법 또한 통상의 기술자에게 공지된 바를 따를 수 있다.As described above, the principle of achieving matching of reference image buffers between the encoder (405) and the decoder (490) by means of the internal decoder (420) on the encoder (405) side is well known to those skilled in the art, and a method of responding to an environment in which such an environment is not guaranteed (e.g., information loss due to communication failure, etc.) can also follow what is well known to those skilled in the art.

상기 내부 복호화기(420)의 동작 방법의 일 실시예는 앞서 도 3을 참조하여 상세히 설명하였다. 상기 도 3의 복호화기는 상술한 "원격지"의 복호화기(490)로 간주될 수 있는 것이다. 상기 내부 복호화기(420)는 파서(330)나 엔트로피 복호화(335)와 같은 무손실 부호화 및 복호화 구간은 제외하고 구현될 수 있는데, 이는 상기 내부 부호화기(405)가 원격지에 있는 복호화기의 동작을 단순히 재현하기 위하여 구현되는 것이므로, 심볼을 압축 후 재복원하는 과정을 요하지 않고 심볼을 바로 복호화하여도 무방하기 때문이다. 따라서 도 3에 나타나는 것과 같은 파서 및 엔트로피 복호화기를 포함하여 이에 선행하는 기능부들은 구비되지 아니하거나 적어도 부분적으로만 구현되더라도 무방할 수 있다.One embodiment of the operation method of the internal decoder (420) has been described in detail with reference to FIG. 3 above. The decoder of FIG. 3 may be considered as the "remote" decoder (490) described above. The internal decoder (420) may be implemented excluding lossless encoding and decoding sections such as the parser (330) or the entropy decoding (335). This is because the internal encoder (405) is implemented to simply reproduce the operation of the decoder located at a remote location, and thus the symbols may be decoded directly without requiring a process of compressing and then decompressing the symbols. Accordingly, the functional sections preceding the parser and the entropy decoder as shown in FIG. 3 may not be provided or may be implemented at least partially.

상술하는 바와 같이, 본 발명의 바람직한 실시방법에 따르면, 복호화기에 존재하는 (파서 및 엔트로피 복호화기를 제외할 수 있는) 임의의 복호화기 기능부는 자연히 대응하는 부호화기(405)에서 실질적으로 동일한 기능부로서 존재할 수 있다.As described above, according to a preferred embodiment of the present invention, any decoder function (excluding a parser and an entropy decoder) present in the decoder can naturally exist as a substantially identical function in the corresponding encoder (405).

상기 부호화기(405)에 포함될 수 있는 부호화 기능부의 동작은 상기 복호화기 기능부의 역으로 간주할 수 있다. 따라서 대체로는 상기 복호화기 기능부의 동작을 반대로 수행하는 것으로써 그 실시예를 해설할 수 있다. 예를 들어, 역양자화 및 역변환부에 대응하는 양자화(quantization) 및 변환(transform) 기능부가 제공될 수 있으며, 인터 예측부에 대응하는 인터 예측 부호화부가 제공될 수 있는 것과 같다. 이에 더하여, 일부 추가적으로 설명을 부가하기로 한다.The operation of the encoding function unit that may be included in the above encoder (405) may be considered as the reverse of the decoder function unit. Therefore, the embodiment may be explained by generally performing the operation of the decoder function unit in reverse. For example, a quantization and transform function unit corresponding to the inverse quantization and inverse transform unit may be provided, and an inter prediction encoding unit corresponding to the inter prediction unit may be provided. In addition, some additional explanations will be added.

상기 내부 부호화기(410)는 적어도 하나의 참조 화상 정보, 예를 들어 참조 프레임으로 지정된 비디오 데이터로부터 적어도 하나의 시간적으로 이전 순서에 부호화된 부분 화상, 가령 프레임들을 참조 화상 버퍼(430)로부터 참조하여 동작하는 예측 부호화부(440)에 의해 실행되는 예측 부호화 방법에 의해, 입력된 화상 정보, 가령 입력 프레임에 대한 부호화를 수행하도록 구성될 수 있다. 이러한 경우, 상기 부호화기(405)는 상기 입력 화상을 구성하는 샘플들의 블록들과 상기 참조 화상을 구성하는 샘플들의 블록들 간에 차분(differential)을 부호화하도록 구성될 수 있다.The above internal encoder (410) may be configured to perform encoding on input image information, for example, an input frame, by a predictive encoding method executed by a predictive encoding unit (440) that operates by referencing at least one temporally previous encoded partial image, for example, frames, from a reference image buffer (430) from at least one reference image information, for example, video data designated as a reference frame. In this case, the encoder (405) may be configured to encode a differential between blocks of samples constituting the input image and blocks of samples constituting the reference image.

상기 내부 복호화기(420)는 상기 내부 부호화기(410)에 의해 생성된 심볼들로부터 상기 참조 화상으로서 지정될 수 있는 비디오 데이터를 복호화할 수 있다. 상술한 바와 같이 이러한 비디오 데이터는 원격지의 복호화기가 수행하는 복호화 동작과 동일하므로, 상기 참고 화상으로 사용되는 비디오 데이터는 손실 압축을 경과하여 일부 손상이 발생한 형태로 상기 부호화기(405)에 제공될 수 있으며, 이러한 동작은 복호화기와의 동작 일치를 위하여 의도된 것일 수 있다.The internal decoder (420) can decode video data that can be designated as the reference picture from symbols generated by the internal encoder (410). As described above, since the video data is identical to the decoding operation performed by the remote decoder, the video data used as the reference picture can be provided to the encoder (405) in a form in which some damage has occurred due to lossy compression, and this operation can be intended for operation consistency with the decoder.

예측 부호화부(440)는 상기 부호화기(405) 내부에서 예측 검색 동작을 수행하도록 구성될 수 있다. 상기 예측 검색 동작은 상기 복호화기의 설명에서 설명하였던 인터 예측 또는 인트라 예측에 대응하는 동작을 의미할 수 있다. 입력되어 새로이 부호화가 예정된 화상 정보에 대하여, 상기 예측부는 새로운 화상 정보에 적합한 예측 참조 정보로 기능할 수 있는 참조 화상의 지점을 나타내는 정보인 움직임 벡터, 블록 형상, 및 이를 포함할 수 있는 메타데이터, 및 실제 참조될 샘플 블록의 획득하기 위하여 상기 참조 화상 버퍼(430)에 접속하여 정보를 인출할 수 있다. 상기 예측 부호화부(440)는 적절한 예측 참조 정보를 획득하기 위하여 이른바 "샘플 블록 대 픽셀 블록(sample block by pixel block)"의 기준에 의하여 동작할 수 있다. 본 발명의 일 실시예에 따라서, 상기 예측 부호화부(440)에 의하여 획득된 검색 결과들에 기반하여 결정되는 바와 같이, 상기 입력 화상에 대해서는 상기 참조 화상 버퍼(430)에 저장된 적어도 하나의 참조 화상 정보를 지목하는 적어도 하나의 예측 참조 정보가 지정될 수 있다.The prediction encoding unit (440) may be configured to perform a prediction search operation within the encoder (405). The prediction search operation may mean an operation corresponding to the inter prediction or intra prediction described in the description of the decoder. For image information that is input and is scheduled to be newly encoded, the prediction unit may access the reference image buffer (430) to retrieve information, such as a motion vector, a block shape, and metadata that may include the motion vector, which are information indicating points of a reference image that can function as prediction reference information suitable for the new image information, and a sample block to be actually referenced. The prediction encoding unit (440) may operate on the basis of the so-called "sample block by pixel block" in order to obtain appropriate prediction reference information. According to one embodiment of the present invention, at least one prediction reference information designating at least one reference image information stored in the reference image buffer (430) may be specified for the input image, as determined based on the search results obtained by the prediction encoding unit (440).

본 발명의 일 실시예에 있어, 상기 제어부(450)는, 비디오 데이터를 부호화하기 위하여 사용되는 파라미터들의 설정을 포함하여, 내부 부호화기(410)의 부호화 동작 전반을 관리하도록 구성될 수 있다.In one embodiment of the present invention, the control unit (450) may be configured to manage the overall encoding operation of the internal encoder (410), including setting parameters used to encode video data.

상술한 모든 기능부의 출력들은 최종적으로 출력되기 위하여 엔트로피 부호화(460)의 대상이 될 수 있다. 상기 엔트로피 부호화(460)는 상기 다양한 기능부에 의하여 생성된 심볼들을 앞서 서술한 것과 같은 다양한 엔트로피 코딩 기법, 예를 들어 가변 길이 부호화(variable length coding), 허프만 부호화(huffman coding), 산술 부호화(arithmetic coding)를 포함할 수 있으며, 상기 각각의 부호화 방법은 규격에 따라서 맥락 적응적(context-adaptive) 또는 맥락 민감성(context-sensitive) 방법일 수 있으며, 그 밖에 통상의 기술자에게 널리 알려진 원리들에 의한 것일 수 있다. 이러한 엔트로피 부호화(460)는 통상적으로 무손실 압축을 달성할 수 있으며, 이에 따라 상기 기능부들이 생성한 적어도 하나의 심볼을 부호화된 비디오 데이터로 변환하도록 구성될 수 있다.All outputs of the above-described functional units may be subjected to entropy encoding (460) in order to be finally output. The entropy encoding (460) may include various entropy coding techniques, such as variable length coding, Huffman coding, and arithmetic coding, for the symbols generated by the various functional units as described above, and each encoding method may be a context-adaptive or context-sensitive method according to the standard, and may also be based on principles widely known to those skilled in the art. The entropy encoding (460) can typically achieve lossless compression, and thus may be configured to convert at least one symbol generated by the functional units into encoded video data.

상기 제어부(450)는 상기 부호화기(405)의 동작을 제어함에 있어, 부호화 구간 동안 특정 부분 화상이 부호화되는 유형을 각각의 부분 화상, 가령 픽처 또는 프레임에 적용할 수 있다. 상기 유형에 따라서 상기 부분 화상이 부호화되는 방식에 영향이 있을 수 있다. 상기 유형은, 실시예에 따라서는, 다음와 같은 "프레임 유형"으로 구분되는 것을 포함할 수 있다.The above control unit (450) can apply the type of encoding of a specific partial image during an encoding section to each partial image, such as a picture or a frame, when controlling the operation of the encoder (405). Depending on the type, the method by which the partial image is encoded can be affected. Depending on the embodiment, the type can include what is classified as a “frame type” as follows.

도 5는 본 발명의 일 실시예에 의한 프레임 유형의 개념도이다. 이하 도 5를 함께 참조하여 설명한다.Fig. 5 is a conceptual diagram of a frame type according to one embodiment of the present invention. The following description will be made with reference to Fig. 5.

인트라(intra, "I") 화상(510)은, 예측 부호화로 비디오 데이터 내의 다른 화상 정보를 참조하지 않고 스스로의 정보만으로 부호화되고 또한 복호화될 수 있는 화상을 의미할 수 있다. 상기 "I" 화상은, 비디오 부호화 규격에 따라서 키 프레임(key frame), 독립/즉각적 복호화기 갱신(independent/instantaneous decoder refersh; IDR) 프레임, 청정 임의접속(clean random-access; CRA) 프레임과 같은 명칭으로 지목될 수 있으며, 상기와 같이 다양한 명칭으로 지목되는 "I" 화상은 각각의 규격이 허용하는 바에 따라 다양한 변형 및 응용 방법을 가지며 서로 부분적으로 상이할 수 있다. 상기 열거한 것 이외에 "I" 화상을 구현하는 다양한 응용 방법은 통상의 기술자에게 이미 알려져 있거나 또는 새로이 제공될 수 있는 다양한 방법에 의할 수 있다.An intra ("I") picture (510) may mean a picture that can be encoded and decoded only with its own information without referring to other picture information in the video data by predictive encoding. The "I" picture may be designated by names such as a key frame, an independent/instantaneous decoder referh (IDR) frame, and a clean random-access (CRA) frame according to a video encoding standard, and the "I" pictures designated by various names as described above may have various modifications and application methods as permitted by each standard and may be partially different from each other. In addition to those listed above, various application methods for implementing the "I" picture may be by various methods that are already known to those skilled in the art or may be newly provided.

예측(prediction, "P") 화상(520)은, 상기 화상을 구성하는 블록의 샘플 값들을 예측하기 위하여 적어도 하나의 참조 화상을 지목하는 적어도 하나의 예측 정보 및/또는 움직임 벡터에 기반하여 인트라 또는 인터 예측을 통해 부호화되고 또한 복호화될 수 있는 화상을 의미할 수 있다. 상기 "P" 화상은, 비디오 부호화 규격에 따라서 하나의 참조 프레임만을 참조하도록 구성되거나, 또는 하나 이상의 참조 프레임을 참조하도록 구성될 수 있다. 하나 이상의 참조 프레임을 참조하는 경우, 단일 블록의 재구성을 위해 복수의 참조 화상으로부터 유래하는 샘플 정보 및/또는 연관된 메타데이터를 사용할 수 있다. 그러나 공통적인 경우에 있어, "P" 화상으로 지정된 화상은 시간적으로 선행하는 화상에 한정하여 참조를 실행하는 화상으로 이해될 수 있다.A prediction ("P") picture (520) may mean a picture that can be encoded and decoded through intra or inter prediction based on at least one prediction information and/or a motion vector that designates at least one reference picture to predict sample values of a block constituting the picture. The "P" picture may be configured to refer to only one reference frame, or may be configured to refer to one or more reference frames, according to a video encoding standard. When referring to one or more reference frames, sample information and/or associated metadata derived from a plurality of reference pictures may be used for reconstructing a single block. However, in common cases, a picture designated as a "P" picture may be understood as a picture that performs reference only to a temporally preceding picture.

양방향 예측(bidirectional prediction, "B") 화상(530)은 상기 화상을 구성하는 블록의 샘플 값들을 예측하기 위하여 적어도 둘 이상의 참조 화상을 지목하는 적어도 하나의 예측 정보 및/또는 움직임 벡터에 기반하여 인트라 또는 인터 예측을 통해 부호화되고 또한 복호화될 수 있는 화상을 의미할 수 있다. 공통적인 경우에 있어, 상기 "B" 화상으로 지정된 화상은, 상기 "P" 화상으로 지정된 화상과 구별되며, 시간적으로 선행하는 화상에 한정하지 아니하고 참조를 실행하는 화상으로 이해될 수 있다.A bidirectional prediction ("B") picture (530) may mean a picture that can be encoded and decoded through intra or inter prediction based on at least one prediction information and/or a motion vector that designates at least two reference pictures to predict sample values of blocks constituting the picture. In a common case, a picture designated as the "B" picture is distinguished from a picture designated as the "P" picture, and may be understood as a picture that performs a reference without being limited to a temporally preceding picture.

비디오 데이터는 부호화 및 복호화의 과정에 있어서 복수의 샘플 블록에 의하여 공간적으로 구분되고, 상기 블록 단위로 부호화가 진행될 수 있다. 상기 블록 단위는 예를 들어, 널리 알려진 것과 같이, 가로/세로 픽셀의 단위로 4x4, 8x8, 4x8, 또는 16x16과 같은 크기를 포함하지만, 이에 한정되지 않는다. 상기 블록은 상기 블록이 포함되는 각각의 부분 화상에 대하여 지정되는 유형이 허용 및/또는 제한하는 바에 따라 임의의 다른 (이미 부호화가 완료된) 블록들을 참조하여 예측 부호화 방법에 의하여 부호화될 수 있다. 예를 들어, "I" 화상(510)의 블록들은 예측 부호화 방법을 사용하지 않거나, 또는 같은 부분 화상 내부에서 이미 부호화가 완료된 블록들을 참조하여 부호화될 수 있다. 즉, 이른바 인트라 예측 방법만이 사용될 수 있다. 그에 비하여, "P" 화상(520)의 경우 적어도 하나의 이전 시간 단위에 부호화된 참조 화상을 더 참조할 수 있으며, 따라서 인트라 예측과 함께 인터 예측 또한 부호화에 사용될 수 있다. "B" 화상(530)의 경우 부호화 순서에 있어서 이전에 부호화되었을 뿐 시간 단위로서는 후행하는 참조 화상 가운데에서도 참조를 실행할 수 있다. 단, "P" 화상 또는 "B" 화상의 내부에서도 예측 부호화에 의존하지 않고 부호화되는 블록들이 존재할 수 있음은 널리 알려져 있다.Video data may be spatially divided into a plurality of sample blocks in the process of encoding and decoding, and encoding may be performed in block units. The block units may include, but are not limited to, sizes such as 4x4, 8x8, 4x8, or 16x16 in units of horizontal/vertical pixels, as is widely known. The block may be encoded by a predictive encoding method with reference to any other (already encoded) blocks, as permitted and/or restricted by the type specified for each partial picture including the block. For example, the blocks of the "I" picture (510) may be encoded without using a predictive encoding method, or with reference to blocks already encoded in the same partial picture. That is, only the so-called intra prediction method may be used. In contrast, the "P" picture (520) may further refer to a reference picture encoded in at least one previous time unit, and thus inter prediction may also be used for encoding along with intra prediction. In the case of a "B" picture (530), reference can be made not only to a previously encoded picture in the encoding order but also to a later reference picture in terms of time unit. However, it is widely known that there may exist blocks within a "P" picture or a "B" picture that are encoded without relying on predictive encoding.

상기 비디오 부호화기(405)는, 다양한 국제 표준 규격 또는 상용 규격에 의해 문서화될 수 있는 미리 결정된 비디오 압축 기술에 따라 부호화 동작을 수행하도록 구성될 수 있다. 상기 규격의 예는 상기 복호화기에서 서술한 것을 모두 포함할 수 있다. The above video encoder (405) may be configured to perform an encoding operation according to a predetermined video compression technique that may be documented by various international standard specifications or commercial standards. Examples of the above standards may include all of those described in the above decoder.

본 발명의 일 실시예에 따르면, 송신부(470)는, 상기 부호화된 비디오 데이터를 저장하는 장치에 대하여 하드웨어적 또는 소프트웨어적 연결(495)을 통해 상기 비디오 데이터를 (궁극적으로 원격지의 복호화기(490)에) 제공/송신하기 위하여 상기 엔트로피 부호화에 의하여 생성된 부호화된 비디오 데이터를 버퍼링할 수 있다. 실시예에 따라서, 상기 송신부(470)는 비디오 부호화기(405)로부터 부호화된 비디오 데이터를 제공/송신함에 있어서, 상기 부호화된 비디오 데이터에 동반되는 다른 데이터, 예를 들면 부호화된 오디오 데이터나 그 밖의 보조 데이터들을 별도의 공급원(480)으로부터 제공받아 병합할 수 있다.According to one embodiment of the present invention, the transmitter (470) may buffer the encoded video data generated by the entropy encoding in order to provide/transmit the video data (ultimately to a remote decoder (490)) to a device storing the encoded video data via a hardware or software connection (495). According to an embodiment, when providing/transmitting the encoded video data from the video encoder (405), the transmitter (470) may receive and merge other data accompanying the encoded video data, for example, encoded audio data or other auxiliary data, from a separate source (480).

본 발명의 일 실시예에 따르면, 상기 송신부(470)는 상기 부호화된 비디오와 함께 추가적인 데이터를 더 송신하도록 구성될 수 있다. 상기 추가적인 데이터는 상기 부호화된 비디오 데이터의 일부로서 간주될 수 있다. 상기 추가적인 데이터는 데이터를 적절히 복호화하기 위해서, 또는 부호화 전 영상에 근접하는 영상을 보다 정확하게 재구성하기 위해서, 복호화기에 의하여 사용될 수 있는 정보를 포함할 수 있다. 상기 추가적인 데이터의 예는 앞서 복호화기의 수신부(310)와 관련하여 나타낸 예시를 모두 포함할 수 있다.According to one embodiment of the present invention, the transmitter (470) may be configured to further transmit additional data together with the encoded video. The additional data may be considered as part of the encoded video data. The additional data may include information that may be used by the decoder to properly decode the data, or to more accurately reconstruct an image that approximates the original image before encoding. Examples of the additional data may include all of the examples presented above with respect to the receiver (310) of the decoder.

본 발명은 상술한 바와 같이 통상의 기술자에게 이해되어 널리 사용되는 디지털 동영상 압축 규격에 의하여 구현될 수 있다. 상기 디지털 동영상 압축 규격에는 MPEG-2, MPEG-4 Video, H.263, H.264/AVC, H.265/HEVC, H.266/VVC, VC-1, AV1, QuickTime, VP-9, VP-10, Motion JPEG과 같은 규격명으로 알려진 압축 규격 중 적어도 하나가 포함될 수 있다.The present invention can be implemented by a digital video compression standard widely used and understood by those skilled in the art as described above. The digital video compression standard may include at least one of compression standards known by standard names such as MPEG-2, MPEG-4 Video, H.263, H.264/AVC, H.265/HEVC, H.266/VVC, VC-1, AV1, QuickTime, VP-9, VP-10, and Motion JPEG.

도 6은 H.266/VVC 규격에 의한 비디오 부호화기의 구조를 나타내는 개념도이다. 도 6에 도시되어 있는 것은 ITU-T H.266 및 ISO/IEC 23090-3과 같은 표준부호로, 그리고 MPEG-I Part 3이라는 호칭이나 다용도 비디오 부호화(versatile video coding; VVC)라는 통칭으로 널리 알려져 있는 비디오 부호화기의 대략적 구조에 해당한다.Fig. 6 is a conceptual diagram showing the structure of a video encoder according to the H.266/VVC standard. What is shown in Fig. 6 corresponds to the rough structure of a video encoder widely known as a standard code such as ITU-T H.266 and ISO/IEC 23090-3, and also under the name of MPEG-I Part 3 or the general name of versatile video coding (VVC).

도 6에 따르면, 비디오 부호화기(605)는 압축 및 부호화가 되지 않은 원본 비디오 데이터(601)를 입력으로 받아 부호화된 비트열(602)을 출력하도록 구성될 수 있다. 상기 비디오 데이터(601)는 인트라 부호화되는 경우 직접 조도신호 매핑부(luma mapping)(610a)에 공급되거나, 또는 움직임 벡터 추출을 포함하는 인터 예측부(620)를 경유하여 조도신호 매핑부(610b)에 공급될 수 있다. 상기 인트라 부호화되는 경우, 상기 매핑된 조도신호는 단독으로, 또는 인트라 예측부(625)를 경유한 인트라 예측 부호화 신호 또는 상기 인터 예측부(620)를 경유하여 조도신호 매핑부(610b)에서 출력된 인터 예측 부호화 신호 중 적어도 하나를 선택(608)하여, 출력 병합기(606)에 공급될 수 있다. 상기 출력 병합기의 결과물은 색차신호 축소부(chroma scaling)(615)에 인가될 수 있다. (상기 조도신호 매핑부(610)의 동작과 상기 색차신호 축소(615)의 동작을 통칭하여 luma mapping/chroma scalaing(LMCS) 과정으로 통칭하기도 한다.) 축소된 색차신호는 변환부(transform)(630)에 제공될 수 있으며, 상기 변환부(630)에서는 특히 색차 신호에 대하여 적응적 변환을 실시(adaptive color transform)할 수 있다. 상기 변환의 결과 도출되는 계수는 양자화부(640)에 인가되어 양자화된다. 이로서 손실압축이 이루어지고, 상기 손실압축의 결과물은 무손실 압축 방법인 복수가설기반 맥락적응적 산술부호화부(multi-hypothesis CABAC)(650)를 거쳐 비트열(602)로 출력될 수 있다.According to FIG. 6, the video encoder (605) may be configured to receive uncompressed and unencoded original video data (601) as input and output an encoded bit stream (602). The video data (601) may be supplied directly to a luma mapping unit (610a) in the case of intra encoding, or may be supplied to a luma mapping unit (610b) via an inter prediction unit (620) including motion vector extraction. In the case of intra encoding, the mapped luma signal may be supplied to an output merger (606) alone, or by selecting (608) at least one of an intra prediction encoded signal via the intra prediction unit (625) or an inter prediction encoded signal output from the luma mapping unit (610b) via the inter prediction unit (620). The result of the above output merger can be applied to a chroma scaling unit (615). (The operation of the luminance signal mapping unit (610) and the operation of the chroma scaling unit (615) are collectively referred to as a luma mapping/chroma scalaing (LMCS) process.) The reduced chroma signal can be provided to a transform unit (630), and the transform unit (630) can perform an adaptive color transform, particularly on the chroma signal. The coefficient derived as a result of the transform is applied to a quantization unit (640) and quantized. As a result, lossy compression is achieved, and the result of the lossy compression can be output as a bit string (602) through a multi-hypothesis CABAC (650), which is a lossless compression method.

한편, 상기 손실압축의 결과물은 코딩 루프를 생성하기 위하여 역양자화(inverse quantization)(645), 역변환(inverse transform)(635), 및 조도신호 확대(617) 과정을 거쳐 실질적으로 복호화 절차에 진입할 수 있다. 상기 조도신호 확대의 결과물은 앞서 생성된 인트라 예측 부호화 신호 또는 인터 예측 부호화 신호 중 적어도 하나를 선택(608)한 결과와 함께 내부 병합기(607)에 공급될 수 있다. 상기 내부 병합기의 결과물은 조도신호 역 매핑(inverse luma mapping)(617)을 거친 후, 복호화기에서의 화질 개선 과정을 재현하기 위한 디블로킹 필터(deblocking filter)(660), 샘플 적응적 오프셋(sample adaptive offset, SAO)(670), 적응적 루프 필터(adaptive loop filter; ALF)와 같은 처리를 거칠 수 있다. 상기와 같이 복호화기에서의 동작을 재현한 결과물은 참조 화상 버퍼(690)로 인가되어 상기 인터 예측부(620)에 의한 예측 부호화에 재활용될 수 있게 된다.Meanwhile, the result of the lossy compression may enter a decoding procedure by going through inverse quantization (645), inverse transform (635), and luma signal expansion (617) processes to generate a coding loop. The result of the luma signal expansion may be supplied to an internal merger (607) together with a result of selecting (608) at least one of the previously generated intra prediction encoding signal or inter prediction encoding signal. The result of the internal merger may go through inverse luma mapping (617), and then may go through processing such as a deblocking filter (660), a sample adaptive offset (SAO) (670), and an adaptive loop filter (ALF) to reproduce an image quality improvement process in a decoder. The result of reproducing the operation in the decoder as described above is applied to the reference image buffer (690) and can be reused for prediction encoding by the inter prediction unit (620).

본 발명은 또한, H.266/VVC를 개량하기 위하여 국제 표준화 전문가단체인 연합표준화전문가그룹(joint video experts team; JVET)에서 개발하고 있는 차세대 비디오 코덱의 구현인 개량압축모델(enhanced compression model; ECM)에 의하여 또는 그에 병합되어 이용될 수 있다. 상기 JVET의 표준화 경과 문서인 문서번호 ISO/IEC JTC 1/SC 29/WG 5 N 190(동시에 문서번호 JVET AC2025-v1인 것)에 따르면, 상기 개량압축모델은 개량된 인트라 예측 부호화 방법, 개량된 인터 예측 부호화 방법, 개량된 변환 및 변환 계수 부호화 방법, 개량된 적응적 루프 필터링 방법, 양측성(bilateral) 필터링 방법, 화질 개선을 위한 새로운 샘플 적응적 오프셋(SAO) 방법, 확장된 엔트로피 코딩 방법, 및 개선된 순차적 복호화기 갱신(gradual decoding refresh; GDR) 기술을 포함할 수 있으며, 상기와 같은 기술들은 본 발명의 실시 구현을 위한 배경기술로서 본 발명에 포함될 수 있다.The present invention can also be utilized by or in combination with the enhanced compression model (ECM), which is an implementation of a next-generation video codec being developed by the joint video experts team (JVET), an international standardization expert group, to improve H.266/VVC. According to the standardization progress document of the above JVET, document number ISO/IEC JTC 1/SC 29/WG 5 N 190 (also document number JVET AC2025-v1), the improved compression model may include an improved intra prediction coding method, an improved inter prediction coding method, an improved transform and transform coefficient coding method, an improved adaptive loop filtering method, a bilateral filtering method, a new sample adaptive offset (SAO) method for image quality improvement, an extended entropy coding method, and an improved gradual decoding refresh (GDR) technique, and such techniques may be included in the present invention as background techniques for implementing the present invention.

LIC 적용 방법의 일반General LIC application method

본 발명은 상술한 실시예를 포함하는 비디오 부호화 및 복호화 영역에 사용될 수 있는 개선된 국소적 조도 보상(local illuminance compensation; LIC) 기술의 적용 방법 및 그러한 방법이 적용된 장치를 제공한다.The present invention provides a method for applying an improved local illuminance compensation (LIC) technique that can be used in the video encoding and decoding field including the above-described embodiments, and a device to which such a method is applied.

도 7은 본 발명의 일 실시예에 의한 LIC 적용 방법의 일반을 나타내는 개념도이다. 프레임 간의 조명 차이로 인해 압축 효율이 낮아지는 것을 해결하기 위하여 전통적인 비디오 코딩 표준에서는 가중치 기반 예측(Weighted Prediction; WP)이 적용되고 있다. 상기 WP는 프레임 단위로 적용이 되며, 현재 프레임 부호화 시 예측 값을 정확하게 획득하기 위하여 참조블록에 밝기 변화를 보상하는 기술이다. 상기 WP는 H.264/AVC, H.265/HEVC에 모두 적용되었고, 슬라이스마다 밝기 보상 파라미터 전송 유무에 따라, 명시적(explicit) 모드와 암시적(implicit) 모드로 나누어 사용될 수 있다.FIG. 7 is a conceptual diagram showing the general structure of a LIC application method according to an embodiment of the present invention. In order to solve the problem of reduced compression efficiency due to the difference in illumination between frames, Weighted Prediction (WP) is applied in traditional video coding standards. The WP is applied on a frame-by-frame basis, and is a technology that compensates for brightness changes in a reference block in order to accurately obtain a prediction value when encoding the current frame. The WP is applied to both H.264/AVC and H.265/HEVC, and can be used by dividing it into an explicit mode and an implicit mode depending on whether or not a brightness compensation parameter is transmitted for each slice.

상기 WP 기반의 기술은 프레임 간의 밝기 변화에 잘 대응하여 영상 전체 이미지에 대한 참조 프레임(reference frame)의 예측 값을 잘 보정할 수 있는 반면에, 프레임 단위로 적용되는 기술적 한계로 인하여 지역적인 밝기의 변화에 대한 밝기 보상은 적절히 수행하지 못한다. 이를 극복하기 위해서 지역적 예측 밝기의 변화에 대해서 적절한 밝기 보상을 유도하는 기술이 상기 LIC 기술이다.The above WP-based technology can compensate for the predicted value of the reference frame for the entire image by responding well to the brightness change between frames, but it cannot properly perform brightness compensation for local brightness changes due to technical limitations applied on a frame-by-frame basis. To overcome this, the LIC technology is a technology that induces appropriate brightness compensation for local predicted brightness changes.

상기 LIC는 현재 블록(710)에 인접하는 템플릿(template)(715)과 참조 블록(720)에 인접하는 템플릿(725) 사이에 현재 블록(710)에 기반한 값(730)과 참조 샘플(720)에 기반한 값(740) 간을 근사(approximation)하는 함수(750)에 의하여 현재 블록(710)에 대한 최종적인 예측 블록(770) 사이의 국부적인 밝기 변화를 모델링(760)하기 위한 기술이다. 상기 함수의 파라미터는 선형 방정식을 형성하는 스케일 α 및 오프셋 β에 의해 나타낼 수 있으며, 이는 밝기 변화를 보상하기 위한 선형 방정식으로써 α*p[x]+β의 형태로 표현될 수 있으며, 여기서 p[x]는, 화면 간 예측(inter prediction) 방법에 있어서, 참조 픽처 상의 위치 x에서 MV(motion vector)(717)가 가리키는 참조 샘플을 의미할 수 있다. 상기 LIC의 한 구현예에서, 순환적 움직임 보상(wrap around motion compensation)이 활성화된 경우, MV는 순환적 화소(pixel) 공간 구조를 고려한 오프셋을 고려하여 클리핑(clipping)될 수 있다. α 및 β는 현재 블록 템플릿 및 참조 블록 템플릿에 기초하여 도출될 수 있으므로, 상기 LIC의 사용을 나타내기 위해 비트열 내에서 LIC 사용 지시 플래그가 (바람직하게는, Advanced Motion Vector Prediction(AMVP) 모드에 대하여) 시그널링되는 경우를 제외하고는 이들에 대한 시그널링 오버헤드가 필요하지 않다.The above LIC is a technology for modeling (760) local brightness changes between a final prediction block (770) for a current block (710) and a final prediction block (770) by a function (750) that approximates between a value (730) based on a current block (710) and a value (740) based on a reference sample (720) between a template (715) adjacent to a current block (710) and a template (725) adjacent to a reference block (720). The parameters of the function can be represented by a scale α and an offset β that form a linear equation, which can be expressed in the form of α*p[x]+β as a linear equation for compensating for brightness changes, where p[x] can mean a reference sample pointed to by a motion vector (MV) (717) at a location x on a reference picture in an inter prediction method. In one implementation of the above LIC, when wrap around motion compensation is enabled, the MV can be clipped considering an offset that takes into account the circular pixel space structure. Since α and β can be derived based on the current block template and the reference block template, no signaling overhead is required for them, except when a LIC usage indication flag is signaled in the bitstream to indicate the usage of the LIC (preferably for the Advanced Motion Vector Prediction (AMVP) mode).

단, 본 발명에서 나타내는 상기 LIC 기술은 동일하게 화면 내 예측(intra prediction)에도 활용될 수 있으며, 예를 들어, 현재 블록에 대한 예측 벡터(prediction vector)로서 상기 MV(717) 대신 화면 내 예측을 위한 BV(block vector)를 사용하는 경우, 상기 MV 및/또는 상기 BV를 복호화기에서 도출하도록 하는 경우, 상기 MV 및/또는 상기 BV를 연쇄적으로 참조하여 확정하는 체인 벡터(chained vector)를 사용하는 경우, 또는 그 밖에 임의의 유형의 예측 벡터를 어떠한 다른 방법에 의하여 사용하는 경우에 있어서도, 본 발명의 일 실시예에 따른 LIC 기술에 기반한 방법이 동일하게 적용될 가능성을 본 발명은 배제하지 아니한다.However, the LIC technology disclosed in the present invention can be equally utilized for intra prediction, and for example, in the case where a BV (block vector) for intra prediction is used instead of the MV (717) as a prediction vector for the current block, in the case where the MV and/or the BV is derived from a decoder, in the case where a chained vector is used that is determined by sequentially referencing the MV and/or the BV, or in the case where any type of prediction vector is used by any other method, the present invention does not exclude the possibility that a method based on the LIC technology according to an embodiment of the present invention may be equally applied.

본 발명의 응용된 일 실시방법 가운데 JVET 기술기고문 JVET-O0066에서 제안된 방법을 인용하는 실시방법은 다음과 같이 수정되어 화면 간 부호화되는 블록, 예를 들어 인터 부호화 유닛(inter-coded CU)에 사용될 수 있다.Among the applied implementation methods of the present invention, an implementation method citing the method proposed in JVET Technical Contribution JVET-O0066 can be modified as follows and used for a block that is inter-coded between screens, for example, an inter-coded unit (inter-coded CU).

본 발명의 일 실시예에 따르면, 인트라 측면에서의 이웃 샘플들이 상기 LIC 매개변수의 파생에 사용될 수 있다. 이를 통해, 인트라 부호화된 주변 블록의 정보를 활용하여 LIC의 정확도를 향상시킬 수 있다.According to one embodiment of the present invention, neighboring samples in the intra aspect can be used to derive the LIC parameter. This allows the accuracy of LIC to be improved by utilizing information of intra-encoded neighboring blocks.

본 발명의 일 실시예에 따르면, 조도 샘플이 32개 미만인 블록의 경우 LIC가 비활성화될 수 있다. 이를 통해, 작은 크기의 블록에 대해 불필요한 연산을 줄이고 코딩 효율을 높일 수 있다According to one embodiment of the present invention, LIC can be disabled for blocks having less than 32 luminance samples. This reduces unnecessary operations and improves coding efficiency for small-sized blocks.

본 발명의 일 실시예에 따르면, 비-서브블록 및 아핀(affine) 모드에 있어서, LIC 매개변수 파생은 왼쪽 위 첫 번째 16x16 단위에 해당하는 부분 템플릿 블록 샘플 대신 현재 CU에 해당하는 템플릿 블록 샘플을 기반으로 수행될 수 있다. 이를 통해, 더 많은 정보를 활용하여 LIC의 정확도를 높일 수 있다.According to one embodiment of the present invention, in non-sub-block and affine mode, LIC parameter derivation can be performed based on template block samples corresponding to the current CU instead of partial template block samples corresponding to the first 16x16 unit from the upper left. This allows more information to be utilized to improve the accuracy of LIC.

본 발명의 일 실시예에 따르면, 참조 블록 템플릿의 샘플은 정수 픽셀 정밀도로 반올림하지 않고 해당 블록의 MV와 함께 MC(motion compensation)를 사용하여 생성될 수 있다. 이를 통해, 보다 정밀한 예측을 가능하게 하여 코딩 효율을 향상시킬 수 있다.According to one embodiment of the present invention, samples of a reference block template can be generated using MC (motion compensation) together with the MV of the corresponding block without rounding to integer pixel precision. This enables more precise prediction, thereby improving coding efficiency.

본 발명의 일 실시예에 따르면, 양방향 예측 화면 간 부호화(bi-directional inter prediction) CU의 경우, L0 및 L1 예측 샘플에 대해 두 세트의 LIC 매개변수가 별도로 파생될 수 있다. 상기 L0 및 L1 예측 샘플은, 양방향 예측에서 사용되는 두 가지 예측 방향에서 획득되는 각각의 샘플을 의미할 수 있다. 예를 들어, 일 실시예에 따르면, L0 예측 샘플은 일반적으로 시간상 현재 픽처보다 앞서는 참조 픽처로부터 도출된 예측 샘플을 의미할 수 있다. 즉, 과거의 프레임으로부터 얻은 예측 정보를 나타낼 수 있다. 또한, 일 실시예에 따르면, L1 예측 샘플은 일반적으로 시간상 현재 픽처보다 나중에 오는 참조 픽처로부터 도출된 예측 샘플을 의미할 수 있다. 즉, 미래의 프레임으로부터 얻은 예측 정보를 나타낼 수 있다.According to one embodiment of the present invention, in case of a bi-directional inter prediction CU, two sets of LIC parameters may be derived separately for L0 and L1 prediction samples. The L0 and L1 prediction samples may mean respective samples obtained in two prediction directions used in the bi-directional prediction. For example, according to one embodiment, the L0 prediction sample may mean a prediction sample derived from a reference picture that is generally temporally earlier than the current picture. That is, it may represent prediction information obtained from a past frame. Furthermore, according to one embodiment, the L1 prediction sample may mean a prediction sample derived from a reference picture that is generally temporally later than the current picture. That is, it may represent prediction information obtained from a future frame.

본 발명의 일 실시예에 따르면, 상기 L0와 L1 예측 샘플은 각각 다른 참조 픽처로부터 얻어질 수 있으며, 이들은 서로 다른 시간적 위치에 있을 수 있다. 상술한 바와 같이 상기 L0와 L1 예측 샘플을 활용하여 LIC 매개변수를 별도로 파생함으로써, 시간적 방향성을 고려한 더욱 정확한 밝기 보상을 제공할 수 있다.According to one embodiment of the present invention, the L0 and L1 prediction samples may be obtained from different reference pictures, and they may be at different temporal positions. As described above, by separately deriving the LIC parameters by utilizing the L0 and L1 prediction samples, more accurate brightness compensation considering temporal directionality can be provided.

본 발명의 일 실시예에 따르면, 상기 L0 및 L1 LIC 매개변수를 도출하기 위해서는 반복적으로 동일한 방법이 적용될 수 있다. 구체적으로, L0 LIC 매개변수는 먼저 L0 템플릿 예측 T0과 템플릿 T 사이의 차이를 최소화하여 도출되고, T의 샘플은 T0의 해당 샘플을 빼서 업데이트될 수 있다. 다음으로, L1 템플릿 예측 T1과 업데이트된 템플릿 간의 차이를 최소화하는 L1 매개변수가 계산될 수 있다. 마지막으로 L0 매개변수도 같은 방식으로 다시 정제될 수 있다.According to one embodiment of the present invention, the same method can be repeatedly applied to derive the L0 and L1 LIC parameters. Specifically, the L0 LIC parameter is first derived by minimizing the difference between the L0 template prediction T0 and the template T, and the samples of T can be updated by subtracting the corresponding samples of T0. Next, the L1 parameter that minimizes the difference between the L1 template prediction T1 and the updated template can be calculated. Finally, the L0 parameter can also be refined again in the same manner.

본 발명의 다른 일 실시예에 따르면, 상기 L0와 L1 예측 샘플에 대한 LIC 매개변수를 별도로 파생하는 과정에서, 각 방향의 시간적 특성을 고려한 가중치를 적용할 수 있다. 예를 들어, 상기 L0 예측 샘플이 현재 픽처와 시간적으로 더 가까운 경우, 상기 L0 LIC 매개변수에 더 높은 가중치를 부여할 수 있다. 반대로, 상기 L1 예측 샘플이 더 가까운 경우에는 상기 L1 LIC 매개변수에 더 높은 가중치를 부여할 수 있다. 이를 통해 시간적 상관관계를 더욱 효과적으로 활용할 수 있다.본 발명에서는 LIC의 밝기 보상을 적절히 수행하여 압축 성능을 높일 수 있는 방법 및 장치를 제시하고자 한다.According to another embodiment of the present invention, in the process of separately deriving LIC parameters for the L0 and L1 prediction samples, weights considering temporal characteristics of each direction can be applied. For example, if the L0 prediction sample is temporally closer to the current picture, a higher weight can be given to the L0 LIC parameter. Conversely, if the L1 prediction sample is closer, a higher weight can be given to the L1 LIC parameter. This allows for more effective utilization of temporal correlation. The present invention proposes a method and device for enhancing compression performance by appropriately performing brightness compensation of LIC.

템플릿 결정 방법How to decide on a template

상술된 상기 LIC 기반의 방법은, 설정된 템플릿을 활용하여 참조 블록을 찾고 현재 블록(예를 들어, CU)과 참조 블록 간의 밝기의 변화량을 L자형(L-shape) 템플릿을 활용하여 선형 모델로서 생성하도록 구성될 수 있다. 상기 선형 모델은 α*p[x]+β의 1차 함수 형태로 구성될 수 있다. 상기 p[x]는 예측 화소 값(prediction pixel)로서 참조(reference) 값으로 정의될 수 있으며, 상기 α 및 β는 도출된 상기 선형모델의 기울기와 편향도(bias)를 나타낼 수 있다. 종래에 JVET의 표준화 활동에서 연구된 바에 따르면, 상기 선형모델은 동시에 2개 이상이 사용될 수 있다. 본 발명의 일 실시예에 따르면, 상기 선형 모델 파라미터의 도출 방법은 1차 선형 모델에만 제한되지 않고, 2차 이상의 곡선 부합화(line fitting) 모델로 설정할 수 있다. 이는 더 복잡한 밝기 변화를 보다 정확하게 모델링하는 데에 도움이 될 수 있다.The above-described LIC-based method can be configured to find a reference block by utilizing a set template, and generate a change in brightness between a current block (e.g., CU) and the reference block as a linear model by utilizing an L-shaped template. The linear model can be configured in the form of a linear function of α*p[x]+β. The p[x] can be defined as a reference value as a prediction pixel, and the α and β can represent a slope and a bias of the derived linear model. According to research in the standardization activity of JVET in the past, two or more linear models can be used at the same time. According to one embodiment of the present invention, the method of deriving the linear model parameters is not limited to a first-order linear model, but can be set as a second-order or higher-order line fitting model. This can help model more complex brightness changes more accurately.

본 발명의 일 실시예에 따르면, LIC 템플릿 설정 방법을 개선하여 다양한 모드를 제공할 수 있다. 즉, 일괄적으로 L자형 템플릿을 활용하지 아니할 수 있다. 예를 들어, 상단 또는 좌측 템플릿만을 이용하도록 하는 모드를 활용하거나, 또는, 상단 및 좌측 템플릿을 사용하되 각각의 템플릿을 동일한 가중치(weight)로 사용하거나 또는 다른 가중치로 사용하는 모드를 활용할 수 있다. 도 8은 본 발명의 일 실시예에 따른 템플릿 적용 모드의 사례를 나타내는 예시도이다. 상술한 바를 요약하면, LIC 템플릿 설정 과정에 다음과 같은 모드들이 포함되어 사용될 수 있으며, 다만 이러한 예시에 한정되지 아니한다.According to one embodiment of the present invention, the LIC template setting method can be improved to provide various modes. That is, the L-shaped template may not be used uniformly. For example, a mode that uses only the top or left template may be used, or a mode that uses the top and left templates but uses each template with the same weight or with different weights may be used. Fig. 8 is an exemplary diagram showing an example of a template application mode according to one embodiment of the present invention. In summary, the following modes may be included and used in the LIC template setting process, but are not limited to these examples.

(a) 현재 블록(810)의 상단 화소(815)만을 템플릿으로 사용하는 모드(a) Mode that uses only the top pixel (815) of the current block (810) as a template

(b) 현재 블록(820)의 좌측 화소(827)만을 템플릿으로 사용하는 모드(b) Mode that uses only the left pixel (827) of the current block (820) as a template

(c) 현재 블록(830)의 상단(835) 및 좌측(837) 화소들을 동일한 가중치(1:1)의 템플릿으로 사용하는 모드(c) Mode that uses the top (835) and left (837) pixels of the current block (830) as templates with the same weight (1:1).

(d) 현재 블록(840)의 상단(845) 및 좌측(847) 화소들을 서로 다른 가중치(N:M)의 템플릿으로 사용하는 모드(d) Mode that uses the top (845) and left (847) pixels of the current block (840) as templates with different weights (N:M).

본 발명의 일 실시예에 따르면, 상기 현재 블록의 상단 화소만을 템플릿으로 사용하는 모드는, 현재 블록의 상단 방향으로 적어도 1화소 이상의 거리 내에 위치하는 화소에 기반하여 선택한 적어도 하나의 화소를 템플릿으로 사용할 수 있다. 또한, 본 발명의 일 실시예에 따르면, 상기 상단에 위치하는 화소에 해당하는 템플릿 영역의 폭은, 사용되지 않은 좌측 화소의 수만큼 좌측 또는 우측으로 연장될 수 있다. 예를 들어, 현재 블록의 크기가 16x16이고 좌측 화소를 템플릿에 사용하지 않는 경우, 상단 템플릿 영역의 폭은 16화소에서 32화소로 연장될 수 있다.According to one embodiment of the present invention, the mode of using only the upper pixel of the current block as a template may use at least one pixel selected based on pixels located within a distance of at least one pixel in the upper direction of the current block as a template. In addition, according to one embodiment of the present invention, the width of the template region corresponding to the pixel located at the upper end may be extended to the left or right by the number of unused left pixels. For example, when the size of the current block is 16x16 and the left pixel is not used for the template, the width of the upper template region may be extended from 16 pixels to 32 pixels.

본 발명의 일 실시예에 따르면, 상기 현재 블록의 좌측 화소만을 템플릿으로 사용하는 모드는, 현재 블록의 좌측 방향으로 적어도 1화소 이상의 거리 내에 위치하는 픽셀을 템플릿으로 사용할 수 있다. 또한, 본 발명의 일 실시예에 따르면, 상기 좌측에 위치하는 화소에 해당하는 템플릿 영역의 높이는, 사용되지 않은 상단 화소의 수만큼 상단 또는 하단으로 연장될 수 있다. 예를 들어, 현재 블록의 크기가 16x16이고 상단 화소를 템플릿에 사용하지 않는 경우, 좌측 템플릿 영역의 높이는 16화소에서 32화소로 연장될 수 있다.According to one embodiment of the present invention, the mode of using only the left pixel of the current block as a template may use pixels located within a distance of at least 1 pixel in the left direction of the current block as templates. In addition, according to one embodiment of the present invention, the height of the template region corresponding to the pixels located on the left may be extended upward or downward by the number of unused upper pixels. For example, when the size of the current block is 16x16 and the upper pixels are not used for the template, the height of the left template region may be extended from 16 pixels to 32 pixels.

본 발명의 일 실시예에 따르면, LIC 템플릿 설정 시 상술된 모드들을 포함하는 하나 이상의 모드 중 적어도 하나가 선택되어 사용될 수 있다. 이 경우, 상기 하나 이상의 모드 가운데 하나를 선택하는 방법으로는 후술하는 방법 중 적어도 하나가 사용될 수 있다.According to one embodiment of the present invention, when setting a LIC template, at least one of one or more modes including the above-described modes may be selected and used. In this case, as a method of selecting one of the above-described one or more modes, at least one of the methods described below may be used.

본 발명의 일 실시예에 따르면, 상기 모드를 선택하는 방법으로는, 부호화기에서 비트율-왜곡 최적화(Rate-Distortion Optimization; RDO)를 평가의 기준으로 삼아 최적의 비트율 대비 왜곡(RD) 성능을 보이는 모드를 선정하고, 해당 모드 정보를 복호화기에게 알려주는 방식을 사용할 수 있다. 일 실시예에 따르면, 상기 도 8을 통해 예시한 4가지 유형의 템플릿 모드가 지원된다고 가정할 경우, 상기 (a) 내지 (d) 모드 각각에 대하여 모두 RDO 평가를 수행하고, 제일 적은 부호화 비용 및/또는 양호한 RD 성능을 나타내는 모드를 현재 블록의 LIC 사용 모드로 선정하고, 해당 정보를 비트열에 포함시켜 복호화기에 전달하도록 구성될 수 있다. 상기 복호화기에서는 상기 비트열을 파싱(parsing)한 후, 상기 선정된 LIC 사용 모드에 따라서 템플릿을 구성할 수 있다. 그 외의 LIC 기반의 예측 블록 관련 부호화 및 복호화 과정은 기존과 동일하거나 또는 유사한 절차에 따라서 수행될 수 있다..According to one embodiment of the present invention, as a method for selecting the mode, a method may be used in which an encoder selects a mode exhibiting an optimal bit rate-to-distortion (RD) performance by using Rate-Distortion Optimization (RDO) as an evaluation criterion, and informs a decoder of the corresponding mode information. According to one embodiment, assuming that the four types of template modes exemplified through the above FIG. 8 are supported, RDO evaluation may be performed on each of the above (a) to (d) modes, and a mode exhibiting the lowest encoding cost and/or good RD performance may be selected as the LIC usage mode of the current block, and the corresponding information may be included in a bit stream and transmitted to the decoder. The decoder may parse the bit stream and then configure a template according to the selected LIC usage mode. Other LIC-based prediction block-related encoding and decoding processes may be performed according to the same or similar procedures as in the past.

본 발명의 일 실시예에 따르면, 상기 모드를 선택하는 방법으로는, 템플릿을 활용하는 방법이 사용될 수 있다. 일 실시예에 따르면, 현재 블록 및 참조 블록의 주변 화소로 구성된 각각의 L자형 템플릿(즉, 상단 화소 및 좌측 화소)에 기반한 연산에 의하여 상기 모드를 선정할 수 있다. 일 실시예에 따르면, 현재 블록의 L자형 템플릿에 기반한 상단 복원 값과 참조 블록의 상단 값을 활용하거나(제1모드), 현재 블록의 L자형 템플릿에 기반한 좌측 복원 값과 참조 블록의 좌측 값을 활용하거나(제2모드), 현재 블록의 L자형 템플릿에 기반한 상단 및 좌측 복원 값과 참조 블록의 상단 및 좌측 값을 동일한 가중치로 활용하거나(제3모드, 동일 가중치), 현재 블록의 L자형 템플릿에 기반한 상단 및 좌측 복원 값과 참조 블록의 상단 및 좌측 값을 서로 다른 가중치로 활용하는(제4모드, 상이 가중치) 등의 방법에 의하여, 최적의 템플릿 모드를 선정할 수 있다. 상기 최적의 템플릿 모드 선정 시, 현재 블록과 참조 블록의 템플릿(및/또는 템플릿의 템플릿)에 기반한 값을 활용하여 계산되는 SAD(Sum of Absolute Differences), SATD(Sum of Absolute Transformed Differences), 또는 MR-SAD(Mean-removal SAD) 값 및/또는 그 평균값 등을 평가의 기준으로 활용할 수 있다. 본 발명의 바람직한 일 실시예에 따르면, 상술한 평가 방법은 부호화/복호화 과정에 있어서 선행하여 부호화/복호화된 화소 영역에 기반하여 부호화기 및 복호화기에서 동일하게 동작하도록 구성될 수 있다. 따라서, 이러한 방법을 적용하는 경우 상기 템플릿 모드는 암시적(implicit)으로 결정될 수 있으므로, 어떠한 특정 모드가 사용되었는지에 대하여 비트열에 별도의 정보를 기록할 필요가 없으며, 복호화기에서 스스로 모드를 결정하도록 구성될 수 있다.According to one embodiment of the present invention, a method of utilizing a template may be used as a method of selecting the mode. According to one embodiment, the mode may be selected by an operation based on each L-shaped template (i.e., an upper pixel and a left pixel) composed of surrounding pixels of a current block and a reference block. According to one embodiment, an optimal template mode may be selected by utilizing an upper restoration value based on an L-shaped template of a current block and an upper value of a reference block (first mode), utilizing a left restoration value based on an L-shaped template of a current block and a left value of a reference block (second mode), utilizing an upper and left restoration value based on an L-shaped template of a current block and an upper and left value of a reference block with the same weight (third mode, equal weight), or utilizing an upper and left restoration value based on an L-shaped template of a current block and an upper and left value of a reference block with different weights (fourth mode, different weight). When selecting the above optimal template mode, the SAD (Sum of Absolute Differences), SATD (Sum of Absolute Transformed Differences), or MR-SAD (Mean-removal SAD) values and/or their average values, which are calculated by utilizing values based on the templates (and/or templates of the templates) of the current block and the reference block, may be utilized as an evaluation criterion. According to a preferred embodiment of the present invention, the above-described evaluation method may be configured to operate identically in the encoder and the decoder based on a pixel area that has been previously encoded/decoded in the encoding/decoding process. Accordingly, when applying this method, since the template mode can be determined implicitly, there is no need to record separate information in the bit string regarding which specific mode is used, and the decoder may be configured to determine the mode by itself.

본 발명의 일 실시예에 따르면, 상기 모드를 선택하는 방법으로는, 주변 블록의 정보를 활용하여 LIC 모드를 명시적(explicit)으로 결정할 수 있다. 일 실시예에 따르면, 상단 및 좌측에 사용 가능한 블록이 있을 경우, 사용 가능한 주변 블록의 예측 정보를 활용하여 현재 블록의 LIC 모드를 명시적으로 결정하도록 구성될 수 있다. 본 발명의 일 실시예에 따르면, 상기 명시적 결정 방법은 후보군(candidate set)을 구성하고 상기 후보군에 속하는 적어도 하나의 후보를 상기 LIC 모드로서 선정하는 방법을 포함할 수 있다. 상기 후보군의 구성 방법은 다양하게 마련될 수 있다. 예를 들어, 현재 LIC 블록 주변에 LIC를 사용한 블록이 있을 경우, 해당 LIC 모드가 상기 후보군에 포함될 수 있다. 또한, 이전에 LIC모드로 사용한 블록의 LIC 모드에 대한 사용 이력(History) 정보를 저장하였다가 상기 후보군에 포함시킬 수 있다. 또한, 주변 블록에서 LIC를 사용하지 않았더라도, 만약 적어도 하나의 주변 블록이 화면 내 방향성 예측 모드(Intra angular prediction mode)에 의하여 부호화되어 있는 경우, 상기 방향성 예측 모드의 각도를 고려하여 적합한 LIC 모드를 상기 후보군에 포함시킬 수 있다. 가령, 상기 방향성 예측 모드가 가로 계통의 각도를 가지는 경우, 해당 방향에 보다 적합한 LIC 모드로서 도 8의 (b)와 같이 가로 방향의 화소를 주로 참조하도록 하는 모드를 상기 후보군에 포함시킬 수 있다. 또한, 화면 간 예측 방법에 관련된 정보 또한 고려하여 상기 후보군을 구성할 수도 있다. 상기 후보군을 구성할 때, 본 발명의 일 실시예에 따르면, 상기 후보군의 구성 시 특정 개수의 후보군 값이 선택될 수 없는 경우, 미리 정해진 순서나 정보에 따라서 임의로 상기 후보군의 모드를 추가할 수 있다. 본 발명의 일 실시예에 따르면, 상기 후보군이 구성되면, 상기 템플릿(또는, 템플릿의 템플릿)(예를 들어, 상단 하나의 라인, 좌측 하나의 라인, 상단 및 좌측 하나의 라인 등)을 활용하여 상기 후보군의 순서에 대한 재정렬(re-ordering)을 수행할 수 있다. 상기 재정렬은 상기 템플릿 매칭 결과에 따라 계산되는 부호화 정보 소요 비용에 기반하여 이루어질 수 있으며, 일 실시예에 따르면 낮은 비용 순으로 재정렬될 수 있다. 일 실시예에 따르면, 상기 정보 소요 비용은 SAD, SATD, 또는 MR-SAD에 의하여 계산될 수 있으며, 재정렬 또한 이러한 비용에 기반하여 이루어질 수 있다.According to one embodiment of the present invention, as a method of selecting the mode, the LIC mode can be explicitly determined by utilizing information of surrounding blocks. According to one embodiment, when there are available blocks on the upper and left sides, the LIC mode of the current block can be explicitly determined by utilizing prediction information of available surrounding blocks. According to one embodiment of the present invention, the explicit determination method can include a method of configuring a candidate set and selecting at least one candidate belonging to the candidate set as the LIC mode. The method of configuring the candidate set can be provided in various ways. For example, when there is a block using LIC around the current LIC block, the corresponding LIC mode can be included in the candidate set. In addition, usage history information on the LIC mode of a block previously used as the LIC mode can be stored and included in the candidate set. In addition, even if LIC is not used in the surrounding block, if at least one surrounding block is encoded by the intra-angular prediction mode, the appropriate LIC mode can be included in the candidate group by considering the angle of the directional prediction mode. For example, if the directional prediction mode has a horizontal angle, a mode that mainly refers to horizontal pixels as shown in (b) of FIG. 8 as a more appropriate LIC mode for the direction can be included in the candidate group. In addition, the candidate group can also be configured by considering information related to the inter-screen prediction method. When configuring the candidate group, according to one embodiment of the present invention, if a specific number of candidate group values cannot be selected when configuring the candidate group, the modes of the candidate group can be arbitrarily added according to a predetermined order or information. According to one embodiment of the present invention, when the candidate group is configured, the template (or template of the template) (for example, one upper line, one left line, one upper and left line, etc.) can be used to perform re-ordering of the order of the candidate group. The above reordering can be performed based on the encoding information requirement cost calculated according to the template matching result, and according to one embodiment, the reordering can be performed in order of low cost. According to one embodiment, the information requirement cost can be calculated by SAD, SATD, or MR-SAD, and the reordering can also be performed based on this cost.

최종적으로 상기 후보군이 구성되면, RDO 등을 통하여 최적의 LIC 모드를 선정하고, 이에 대한 인덱스(index)를 비트열에 포함하여 복호화기에 전송하도록 구성될 수 있다. 상기 복호화기에서는 부호화기와 동일한 방법으로 상기 후보군을 구성하고, 상기 비트열을 통해 전송된 정보를 활용하여 부호화기에서 사용한 LIC 모드를 재구성하도록 구성될 수 있다. Finally, once the above candidate group is formed, the optimal LIC mode can be selected through RDO, etc., and an index thereof can be included in a bit string and transmitted to a decoder. The decoder can be configured to form the candidate group in the same manner as the encoder, and to reconstruct the LIC mode used in the encoder by utilizing the information transmitted through the bit string.

본 발명의 일 실시예에 따르면, 상기 모드를 선택하는 방법으로는, 주변 블록의 정보를 활용하여 LIC 모드를 암시적(implicit)으로 결정할 수 있다. 일 실시예에 따르면, 상단 및 좌측에 사용 가능한 블록이 있을 경우, 사용 가능한 주변 예측 정보를 활용하여 현재 블록의 LIC 모드를 암시적으로 결정하도록 구성될 수 있다. 예를 들어 현재 블록이 LIC에 의해 부호화될 때, 주변에 LIC를 사용한 블록이 있을 경우, 상기 주변 블록에서 사용된 LIC 모드의 빈도에 기반하여 현재 블록의 LIC모드를 결정하도록 구성될 수 있다. 또한, 주변 블록에서 LIC를 사용하지 않았더라도, 만약 적어도 하나의 주변 블록이 화면 내 방향성 예측 모드(Intra angular prediction mode)에 의하여 부호화되어 있는 경우, 상기 방향성 예측 모드의 각도를 고려하여 적합한 LIC 모드를 결정할 수 있다. 가령, 상기 방향성 예측 모드가 가로 계통의 각도를 가지는 경우, 해당 방향에 보다 적합한 LIC 모드로서 도 8의 (b)와 같이 가로 방향의 화소를 주로 참조하도록 하는 모드를 현재 블록의 LIC 모드로 결정할 수 있다. 본 발명의 바람직한 일 실시예에 따르면, 상술한 LIC 모드 선정 방법은 부호화/복호화 과정에 있어서 선행하여 부호화/복호화된 화소 영역에 기반하여 부호화기 및 복호화기에서 동일하게 동작하도록 구성될 수 있다. 따라서, 이러한 방법을 적용하는 경우 어떠한 특정 모드가 사용되었는지에 대하여 비트열에 별도의 정보를 기록할 필요가 없으며, 복호화기에서 스스로 LIC 모드를 확인하도록 구성될 수 있다.According to one embodiment of the present invention, as a method of selecting the mode, the LIC mode can be implicitly determined by utilizing information of surrounding blocks. According to one embodiment, when there are available blocks on the top and left, the LIC mode of the current block can be implicitly determined by utilizing available surrounding prediction information. For example, when the current block is encoded by LIC, if there is a block using LIC in the surrounding, the LIC mode of the current block can be determined based on the frequency of the LIC mode used in the surrounding block. In addition, even if LIC is not used in the surrounding block, if at least one surrounding block is encoded by the intra angular prediction mode, the appropriate LIC mode can be determined by considering the angle of the directional prediction mode. For example, when the directional prediction mode has a horizontal angle, as a LIC mode more appropriate for the corresponding direction, a mode that mainly refers to pixels in the horizontal direction, as shown in (b) of FIG. 8, can be determined as the LIC mode of the current block. According to a preferred embodiment of the present invention, the above-described LIC mode selection method can be configured to operate identically in an encoder and a decoder based on a pixel area that has been previously encoded/decoded in an encoding/decoding process. Therefore, when applying this method, there is no need to record separate information in a bit string regarding which specific mode has been used, and the decoder can be configured to check the LIC mode by itself.

본 발명의 일 실시예에 따르면, 상술된 실시예에 있어 암시적 결정 방법을 이용하여 상기 복호화기 측에서의 모드를 도출하도록 하는 방법에는, 종래에 알려진 또는 새로이 제공될 수 있는 다양한 복호화기측 예측 모드 도출(decoder-side mode derivation) 방법이 공용되거나 또는 응용되어 사용될 수 있음은 자명하다.According to one embodiment of the present invention, in the method for deriving the mode on the decoder side using the implicit decision method in the above-described embodiment, it is obvious that various decoder-side mode derivation methods known in the art or newly provided can be commonly used or applied.

본 발명의 일 실시예에 따르면, LIC 템플릿의 설정을 위해서 상단 및 좌측을 모두 동일한 가중치로로 사용하거나, 또는 상단과 좌측을 서로 다른 가중치로 사용하는 모드를 정의하여 사용할 수 있다. 상기 가중치를 정의하기 위하여서는 다양한 방법이 사용될 수 있다. 일 실시예에 따르면, 종래의 기존 LIC에서 사용하는 것과 동일한 가중치를 적용하여 상기 선형 모델의 α 및/또는 β를 생성할 때 활용할 수 있다. 다른 일 실시예에 따르면, 상단과 좌측의 구역을 나누고, 구역에 따른 가중치를 따로 적용하여 상기 α 및/또는 β를 생성할 때 활용할 수 있다. 본 발명의 일실시예에 따르면, 상기 나누어진 구역 각각에 대한 가중치는 사전에 실험 등을 통하여 결정된 값을 사용할 수 있으며, 상기 결정된 가중치 값들은 테이블(table)화 하여 사용하고, 상기 테이블의 특정한 값을 지목하는 인덱스(index)가 명시적 또는 암시적 방법으로 결정되어 복호화기에 제공될 수 있다.According to one embodiment of the present invention, in order to set up a LIC template, a mode in which the top and the left are both used with the same weight, or the top and the left are used with different weights, can be defined and used. Various methods can be used to define the weights. According to one embodiment, the same weights used in a conventional existing LIC can be applied and utilized when generating α and/or β of the linear model. According to another embodiment, the top and left regions can be divided, and the weights according to the regions can be applied separately when generating α and/or β. According to one embodiment of the present invention, the weights for each of the divided regions can use values determined in advance through experiments, etc., and the determined weight values can be used by forming a table, and an index designating a specific value of the table can be determined explicitly or implicitly and provided to a decoder.

본 발명의 일 실시예에 다르면, 상기 테이블은, 바람직하게는, 하나의 가중치 세트의 합계가 2의 승수가 되는 형태로 지정될 수 있다. 이는 가중치에 기반한 가중 합 연산 시의 나눗셈 연산을 시프트(shift) 연산으로 용이하게 대체하기 위한 목적을 가질 수 있다. 예를 들어, 가중치 세트가 {3, 5}인 경우, 합계가 8(23)이 되므로, 상기 가중치 세트에 필요한 나눗셈 연산을 3비트 우측 이진 비트 시프트 연산으로 대체할 수 있다.According to one embodiment of the present invention, the table may be preferably specified in a form in which the sum of one weight set is a power of 2. This may have the purpose of easily replacing the division operation in the weighted sum operation based on the weight with a shift operation. For example, if the weight set is {3, 5}, since the sum becomes 8 (2 3 ), the division operation required for the weight set can be replaced with a 3-bit right binary bit shift operation.

본 발명의 일 실시예에 다르면, 상기 가중치 값은 주변 블록의 정보를 활용하여 즉석에서(on-the-fly) 결정되는 형태로 적용될 수 있다. 이러한 방법이 일종의 암시적 신호 방법에 해당하는 것임은 쉽게 이해할 수 있을 것이다. 예를 들어, 상단 및 좌측에 사용 가능한 블록이 있을 경우, 상기 사용 가능한 주변 블록의 화면 간(inter) 예측 정보, 화면 내(intra) 예측 정보, 및 블록 크기를 포함하는 정보를 활용하여 상기 가중치 값을 결정할 수 있다. 이러한 경우에도, 상술한 바와 유사하게, 상기 가중치 값은 나눗셈 연산을 시프트 연산으로 용이하게 대체하기 위한 목적에서 2의 승수가 되는 값으로 결정될 수 있다. According to one embodiment of the present invention, the weight value may be applied in a form that is determined on-the-fly by utilizing information of surrounding blocks. It will be easily understood that this method corresponds to a kind of implicit signaling method. For example, when there are available blocks on the top and left, the weight value may be determined by utilizing information including inter-prediction information, intra-prediction information, and block size of the available surrounding blocks. In this case as well, similarly to the above, the weight value may be determined as a value that is a power of 2 for the purpose of easily replacing a division operation with a shift operation.

본 발명의 일 실시예에 따르면, LIC 템플릿 설정 시 상술된 모드들 가운데 하나를 선택하는 방법의 복잡도를 낮추기 위하여, 상기 템플릿에 사용되는 화소를 템플릿 영역 내의 전체 화소가 아닌 일부 화소로 한정하여 그 수를 줄여 사용하는 방법이 적용될 수 있다. 일 실시예에 따르면, 참조 블록을 찾은 후 상기 α 및 β를 생성할 때 전부가 아닌 일부의 화소만을 활용할 수도 있다. 일 실시예에 따르면, 참조 블록을 찾을 때에는 템플릿의 전체 픽셀을 추가적으로 활용하고, 상기 α 및 β를 생성할 때 전부가 아닌 일부의 화소만을 활용할 수도 있다. 일 실시예에 따르면, 참조 블록을 찾을 때에는 전부가 아닌 일부의 화소만을 포함하도록 축소된 템플릿의 화소들을 추가적으로 활용하고, 상기 α 및 β를 생성할 때 전체 화소를 활용할 수도 있다. According to one embodiment of the present invention, in order to reduce the complexity of a method of selecting one of the modes described above when setting a LIC template, a method of reducing the number of pixels used in the template by limiting the pixels to some pixels rather than all pixels within a template area may be applied. According to one embodiment, when generating α and β after finding a reference block, only some pixels rather than all may be utilized. According to one embodiment, when finding a reference block, all pixels of the template may be additionally utilized, and when generating α and β, only some pixels rather than all may be utilized. According to one embodiment, when finding a reference block, pixels of a template reduced to include only some pixels rather than all may be additionally utilized, and when generating α and β, all pixels may be utilized.

상술한 바와 같이 복잡도를 낮추기 위한 목적에서 상기 템플릿에 사용되는 화소를 전부가 아닌 일부만 사용하도록 축소하는 방법은 다음과 같은 방법들을 포함할 수 있으며, 다만 이에 한정되지 아니한다.As described above, for the purpose of reducing complexity, methods for reducing the use of only some, rather than all, pixels used in the template may include, but are not limited to, the following methods.

본 발명의 일 실시예에 따르면, 상단, 좌측, 또는 상단과 좌측 전체 템플릿을 사용하는 경우, 2:1, 4:1 등 2의 배수에 해당하는 서브샘플링(subsampling) 방법을 활용하여 화소의 수를 축소하고, 상기 축소된 화소를 상술한 바와 같이 참조 블록을 찾거나 또는 상기 α 및 β를 생성하는 데에 사용할 수 있다.According to one embodiment of the present invention, when using the top, left, or top and left full templates, the number of pixels is reduced by utilizing a subsampling method corresponding to a multiple of 2, such as 2:1, 4:1, etc., and the reduced pixels can be used to find a reference block as described above or to generate α and β.

본 발명의 일 실시예에 따르면, 상단 템플릿만을 사용하는 경우, 전체 상단 템플릿의 구역을 수평 방향으로 N분할하여 M개의 화소를 선택함으로써 화소의 수를 축소하고, 상기 축소된 화소를 상술한 바와 같이 참조 블록을 찾거나 또는 상기 α 및 β를 생성하는 데에 사용할 수 있다. 실시예에 따라서, 상기 N 및 상기 M은 블록 크기와 원하는 복잡도의 수준에 따라 가변할 수 있다. 본 발명의 바람직한 일 실시예에 따르면, 상기 N 또는 M 중 적어도 하나는 연산의 용이성을 위하여 2의 승수에 기반하여 정의될 수 있다.According to one embodiment of the present invention, when only the upper template is used, the number of pixels is reduced by horizontally dividing the area of the entire upper template into N and selecting M pixels, and the reduced pixels can be used to find a reference block as described above or to generate α and β. According to an embodiment, the N and the M can be varied depending on the block size and the level of desired complexity. According to a preferred embodiment of the present invention, at least one of the N or M can be defined based on a power of 2 for ease of operation.

예를 들어, 전체 상단 템플릿의 구역을 수평방향으로 4분할하여 1/4, 3/4 구역에 해당하는 2개의 화소를 선택하고, 상기 선택된 화소를 참조 블록을 찾거나 또는 상기 α 및 β를 생성하는 데에 사용할 수 있다. 다른 예를 들어, 전체 상단 템플릿의 구역을 수평방향으로 8분할하여 2/8, 4/8, 6/8 구역에 해당하는 3개의 화소를 선택하고, 상기 선택된 화소를 참조 블록을 찾거나 또는 상기 α 및 β를 생성하는 데에 사용할 수 있다. 다른 예를 들어, 전체 상단 템플릿의 구역을 수평방향으로 8분할하여 1/8, 3/8, 5/8, 7/8 구역에 해당하는 4개의 화소를 선택하고, 상기 선택된 화소를 참조 블록을 찾거나 또는 상기 α 및 β를 생성하는 데에 사용할 수 있다. 또다른 예를 들어, 상단 템플릿만을 사용시, 전체 상단 템플릿의 구역을 수평방향으로 8분할하여 0/8, 2/8, 4/8, 6/8, 8/8 구역에 해당하는 5개의 화소를 선택하고, 상기 선택된 화소를 참조 블록을 찾거나 또는 상기 α 및 β를 생성하는 데에 사용할 수 있다.For example, the region of the entire top template may be horizontally divided into four parts, and two pixels corresponding to regions 1/4 and 3/4 may be selected, and the selected pixels may be used to find a reference block or to generate α and β. For another example, the region of the entire top template may be horizontally divided into eight parts, and three pixels corresponding to regions 2/8, 4/8, and 6/8 may be selected, and the selected pixels may be used to find a reference block or to generate α and β. For another example, the region of the entire top template may be horizontally divided into eight parts, and four pixels corresponding to regions 1/8, 3/8, 5/8, and 7/8 may be selected, and the selected pixels may be used to find a reference block or to generate α and β. As another example, when only the upper template is used, the area of the entire upper template is divided into eight horizontal sections, and five pixels corresponding to areas 0/8, 2/8, 4/8, 6/8, and 8/8 are selected, and the selected pixels can be used to find a reference block or to generate α and β.

본 발명의 일 실시예에 따르면, 좌측 템플릿만을 사용하는 경우, 전체 좌측 템플릿의 구역을 수직 방향으로 N분할하여 M개의 화소를 선택함으로써 화소의 수를 축소하고, 상기 축소된 화소를 상술한 바와 같이 참조 블록을 찾거나 또는 상기 α 및 β를 생성하는 데에 사용할 수 있다. 실시예에 따라서, 상기 N 및 상기 M은 블록 크기와 원하는 복잡도의 수준에 따라 가변할 수 있다. 본 발명의 바람직한 일 실시예에 따르면, 상기 N 또는 M 중 적어도 하나는 연산의 용이성을 위하여 2의 승수에 기반하여 정의될 수 있다.According to one embodiment of the present invention, when only the left template is used, the number of pixels is reduced by vertically dividing the area of the entire left template by N and selecting M pixels, and the reduced pixels can be used to find a reference block as described above or to generate α and β. According to an embodiment, the N and the M can be varied depending on the block size and the level of desired complexity. According to a preferred embodiment of the present invention, at least one of the N or M can be defined based on a power of 2 for ease of operation.

예를 들어, 전체 좌측 템플릿의 구역을 수직방향으로 4분할하여 1/4, 3/4 구역에 해당하는 2개의 화소를 선택하고, 상기 선택된 화소를 참조 블록을 찾거나 또는 상기 α 및 β를 생성하는 데에 사용할 수 있다. 다른 예를 들어, 전체 좌측 템플릿의 구역을 수직방향으로 8분할하여 2/8, 4/8, 6/8 구역에 해당하는 3개의 화소를 선택하고, 상기 선택된 화소를 참조 블록을 찾거나 또는 상기 α 및 β를 생성하는 데에 사용할 수 있다. 다른 예를 들어, 전체 좌측 템플릿의 구역을 수직방향으로 8분할하여 1/8, 3/8, 5/8, 7/8 구역에 해당하는 4개의 화소를 선택하고, 상기 선택된 화소를 참조 블록을 찾거나 또는 상기 α 및 β를 생성하는 데에 사용할 수 있다. 또다른 예를 들어, 전체 좌측 템플릿의 구역을 수직방향으로 8분할하여 0/8, 2/8, 4/8, 6/8, 8/8 구역에 해당하는 5개의 화소를 선택하고, 상기 선택된 화소를 참조 블록을 찾거나 또는 상기 α 및 β를 생성하는 데에 사용할 수 있다.For example, the entire left template may be vertically divided into four sections, and two pixels corresponding to sections 1/4 and 3/4 may be selected, and the selected pixels may be used to find a reference block or to generate α and β. For another example, the entire left template may be vertically divided into eight sections, and three pixels corresponding to sections 2/8, 4/8, and 6/8 may be selected, and the selected pixels may be used to find a reference block or to generate α and β. For another example, the entire left template may be vertically divided into eight sections, and four pixels corresponding to sections 1/8, 3/8, 5/8, and 7/8 may be selected, and the selected pixels may be used to find a reference block or to generate α and β. As another example, the area of the entire left template can be divided vertically into eight parts, and five pixels corresponding to areas 0/8, 2/8, 4/8, 6/8, and 8/8 can be selected, and the selected pixels can be used to find a reference block or to generate α and β.

상술한 다양한 방법의 설명에 있어서, 상기 전체 상단 템플릿이란, 현재 블록의 너비로부터 현재 블록의 높이만큼이 좌측 또는 우측으로 연장된 상단 템플릿을 의미할 수 있다. 또한, 상기 전체 좌측 템플릿이란, 현재 블록의 높이로부터 현재 블록의 너비만큼이 상단 또는 하단으로 연장된 좌측 템플릿을 의미할 수 있다.In the description of the various methods described above, the entire top template may mean a top template that extends to the left or right from the width of the current block to the height of the current block. In addition, the entire left template may mean a left template that extends to the top or bottom from the height of the current block to the width of the current block.

3x3의 크로스 형태의 필터3x3 cross-shaped filter

본 발명의 일 실시예에 따르면, LIC 방법을 적용 시 현재 부호화/복호화 중인 현재 블록의 상단과 좌측의 복원된 픽셀 값으로부터 L자형의 템플릿을 설정한 후, 상기 템플릿 영역으로부터 3x3 크기를 가지는 크로스(cross) 형태의 필터에 사용될 수 있는 계수(coefficient)를 생성 및 사용하도록 구성될 수 있다. 도 9는 본 발명의 일 실시예에 따른 크로스 필터의 형태 및 계수 위치를 나타내는 개념도이다. 도 9를 참조하면, 상술한 바와 같이3x3 크기를 가지는 크로스 형태의 필터(900)는 A(좌), B(우), C(상), D(하), E(중앙)의 계수 위치에 의하여 표현될 수 있다.According to one embodiment of the present invention, when applying the LIC method, after setting an L-shaped template from restored pixel values on the top and left of a current block currently being encoded/decoded, coefficients that can be used for a cross-shaped filter having a size of 3x3 can be generated and used from the template area. FIG. 9 is a conceptual diagram showing the shape and coefficient positions of a cross filter according to one embodiment of the present invention. Referring to FIG. 9, a cross-shaped filter (900) having a size of 3x3 as described above can be expressed by coefficient positions of A (left), B (right), C (upper), D (lower), and E (center).

본 발명의 다양한 실시방법에 따라서, 상기 3x3의 크로스 형태의 필터를 통해 필터링된 값은 다음과 같은 수학식 중 하나에 의하여 표현될 수 있다.According to various implementation methods of the present invention, a value filtered through the 3x3 cross-shaped filter can be expressed by one of the following mathematical formulas.

Figure PCTKR2024014635-appb-img-000001
Figure PCTKR2024014635-appb-img-000001

상기 수학식 1은 기본적인 선형 필터링을 나타내는 것으로서, 각 위치의 화소 값에 미리 지정된 계수(C1 내지 C5)를 곱하여 이를 합산하는 방법으로 계산될 수 있다.The above mathematical expression 1 represents basic linear filtering, which can be calculated by multiplying the pixel value at each location by a pre-specified coefficient (C 1 to C 5 ) and adding them up.

Figure PCTKR2024014635-appb-img-000002
Figure PCTKR2024014635-appb-img-000002

상기 수학식 2는 기본적인 선형 필터링에 비선형 항 F를 추가한 것을 나타내는 것으로서, 상기 F는 중앙 화소 E의 제곱 값을 화소별 비트 깊이 값(bitDepth)에 따라 조정한 것을 의미할 수 있다(이 때, "bitDepth_mid"는 상기 화소별 비트 깊이에 따라 상기 화소 값을 표현하기 위한 범위 값 중 중간값을 의미할 수 있다). 상기 수학식 2에 나타나는 ">>" 연산자 기호는 우측 이진 비트 시프트(shift) 연산으로 이해될 수 있다. 물론, 실시예에 따라서, 상기 비선형 항 F를 구성하는 요소는 변화할 수 있다. 예를 들어, 상기 비선형 항 F는 상기 E 대신 다른 화소 값에 기반할 수 있다. 다른 예를 들어, 상기 비선형 항 F는 3차 이상의 방정식으로 정의될 수 있다. 또다른 예를 들어, 상기 비선형 항에 포함되어 계산되는 "bitDepth", "bitDepth_mid"와 같은 상수 값은 다른 적합한 상수 값에 의하여 대체될 수 있다.The above mathematical expression 2 represents the addition of a nonlinear term F to the basic linear filtering, and the F may mean that the square value of the central pixel E is adjusted according to the bit depth value (bitDepth) per pixel (at this time, "bitDepth_mid" may mean a median value among the range values for expressing the pixel value according to the bit depth per pixel). The ">>" operator symbol appearing in the above mathematical expression 2 may be understood as a right binary bit shift operation. Of course, depending on the embodiment, the elements constituting the nonlinear term F may change. For example, the nonlinear term F may be based on another pixel value instead of E. For another example, the nonlinear term F may be defined by an equation of the third or higher degree. For another example, constant values such as "bitDepth" and "bitDepth_mid" included and calculated in the nonlinear term may be replaced by other suitable constant values.

Figure PCTKR2024014635-appb-img-000003
Figure PCTKR2024014635-appb-img-000003

상기 수학식 3은 상기 수학식 2에 상수항 G를 더 추가한 것을 나타내는 것으로서, 상기 G는 "bitDepth_mid"로, 상기 화소 값의 표현 범위 값 중 중간값을 의미할 수 있다. 물론, 실시예에 따라서, 상기 상수항 F를 구성하는 요소는 변화할 수 있다. 예를 들어, 상기 상수항 F의 값은 다른 적합한 상수 값에 의하여 대체될 수 있다.The above mathematical expression 3 represents the addition of a constant term G to the above mathematical expression 2, where G may be "bitDepth_mid" and may mean a median value among the expression range values of the pixel value. Of course, depending on the embodiment, the elements constituting the constant term F may change. For example, the value of the constant term F may be replaced by another suitable constant value.

본 발명의 일 실시예에 따르면, 상기 수학식 1 내지 3에 나타나는 계수 C1 내지 C7을 위해 지정되는 계수(coefficient)는, 현재 블록의 상단 및/또는 좌측의 복원된 화소 값으로부터 도출될 수 있는 L자형 템플릿으로부터 도출할 수 있다. 물론, 상술한 다양한 응용 방법이 공히 적용되어, 상기 템플릿의 사용에 있어서는 지정된 전체 템플릿 영역 또는 일부의 템플릿 영역만이 상기 계수의 도출을 위해 사용될 수 있다. 또한, 본 발명의 일 실시예에 따르면, 상기 계수의 도출을 위해서 현재 블록의 상단 및/또는 좌측의 복원된 화소 값을 활용하는 위너(Wiener) 필터의 계수 도출 방식을 동일하게 또는 응용하여 활용할 수 있다. 상기 위너 필터는 최소 평균 제곱 오차(Mean Squared Error; MSE)를 최소화하는 방식으로 계수를 도출하는 특성을 가질 수 있고, 상기 계수는 이러한 특성에 기반하여 획득될 수 있다.According to one embodiment of the present invention, the coefficients designated for the coefficients C 1 to C 7 shown in the mathematical expressions 1 to 3 may be derived from an L-shaped template which may be derived from restored pixel values on the top and/or the left side of the current block. Of course, the various application methods described above may be applied in common, and in the use of the template, only the entire designated template area or a part of the template area may be used for deriving the coefficients. In addition, according to one embodiment of the present invention, the coefficient derivation method of the Wiener filter which utilizes the restored pixel values on the top and/or the left side of the current block may be utilized in the same manner or in an applied manner for deriving the coefficients. The Wiener filter may have a characteristic of deriving coefficients in a manner that minimizes the minimum mean squared error (MSE), and the coefficients may be obtained based on this characteristic.

본 발명은 상술한 실시예에 한정되지 않으며, 본 발명의 사상 범위 내에서 LIC 및 예측 부호화에 관련하여 적용될 수 있는 다양한 변형과 응용이 공히 적용될 수 있는 것임은 자명하다. 예를 들어, 상기 필터의 크기는 조절될 수 있으며, 크로스 필터가 아닌 다른 유형의 필터가 사용될 수도 있다. 예를 들어, 5x5의 크로스 필터나, 3x3의 소벨 필터와 같은 것이 사용되어도 무방하다. 그 밖에, 폭이 제1화소, 높이가 제2화소인 사각형, 마름모꼴, 및 원형 중 적어도 하나의 형태를 가지는 화소군을 입력으로 수용하도록 구성되는 임의의 필터가 적용될 수 있음은 자명하다. 또한, 템플릿의 형태나 크기를 동적으로 조절하거나, 다차 함수 또는 비선형 함수를 상기 선형 모델에 도입하여 더 복잡한 조도 변화를 모델링하는 등의 확장이 이루어질 수 있다. 또는, 명시적 또는 암시적 방법으로 예측 모드를 결정하도록 하는 다양한 방법들이 본 발명에 대하여 상술된 예시들을 구현하는 데에 활용될 수 있으며, 또는 그러한 다른 방법들과 본 발명이 연계하여 동작하도록 구현될 수도 있다.It is obvious that the present invention is not limited to the above-described embodiments, and various modifications and applications that can be applied in relation to LIC and predictive encoding within the scope of the present invention can be applied together. For example, the size of the filter can be adjusted, and a type of filter other than a cross filter can be used. For example, a 5x5 cross filter or a 3x3 Sobel filter may be used. In addition, it is obvious that any filter configured to receive as input a pixel group having at least one shape of a square, a diamond, and a circle with a width of the first pixel and a height of the second pixel can be applied. In addition, extensions such as dynamically adjusting the shape or size of the template, or introducing a polygonal function or a nonlinear function into the linear model to model more complex illumination changes can be made. Alternatively, various methods for determining the predictive mode in an explicit or implicit manner can be utilized to implement the examples described above for the present invention, or the present invention can be implemented to operate in conjunction with such other methods.

부호화기 및 복호화기Encoder and decoder

본 발명에 따른 부호화 방법은 부호화기와 복호화기에서 동일하게 적용될 수 있는 것임이 자명하다. 본 발명에 따른 부호화 방법은 먼저, 부호화기에서 화면 내 및/또는 화면 간 예측을 실시하기 위한 예측 블록의 샘플 값을 생성하는 방법 중 하나로 이용될 수 있다. 이러한 예측 블록과의 차분 값에 의하여 잔차 신호 정보가 부호화된 경우, 복호화기에서는 상응하는 및/또는 대칭적인 방법을 이용하여 동일한 예측 블록의 샘플 값을 생성하고, 이러한 예측 블록에 차분 값을 결합합으로써 복호화된 샘플들을 획득할 수 있게 된다. 추가적으로, 도 4에서 내부 복호화기(420) 및 이를 포함하는 코딩 루프를 통해 예시한 바와 같이, 이러한 복호화 과정은 부호화기 내부에서도 복호화기의 상태를 예측하기 위하여 동일하게 구현될 수 있는 것에 해당한다.It is obvious that the encoding method according to the present invention can be applied equally to an encoder and a decoder. The encoding method according to the present invention can be first used as one of the methods for generating a sample value of a prediction block for performing intra-screen and/or inter-screen prediction in an encoder. When residual signal information is encoded by a differential value with respect to such a prediction block, the decoder can generate a sample value of the same prediction block using a corresponding and/or symmetrical method, and obtain decoded samples by combining the differential value with such a prediction block. Additionally, as exemplified through the internal decoder (420) and the coding loop including the same in FIG. 4, such a decoding process can be implemented identically within the encoder to predict the state of the decoder.

상술된 본 발명에 의한 부호화 방법은 장치로서의 부호화기를 통해 구현될 수 있다. 상기 장치로서의 부호화기는 앞서 도 1 내지 6을 통해 예시한 종래의 부호화기 구조를 유지하거나 그로부터 소정의 변화를 적용한 형태로서 구현될 수 있으나, 그 구현의 형태가 반드시 예시된 바에 한정되지는 아니하고, 비디오 부호화기로서 기능할 수 있는 어떠한 형태의 부호화기 구조를 취하더라도 본 발명의 기술적 사상을 구현하는 한 본 발명에 의하여 성립한 부호화기라고 보아야 할 것이다.The encoding method according to the present invention described above can be implemented through an encoder as a device. The encoder as a device can be implemented in a form that maintains the conventional encoder structure exemplified through FIGS. 1 to 6 above or applies a predetermined change thereto. However, the form of implementation is not necessarily limited to what has been exemplified, and any form of encoder structure that can function as a video encoder should be considered an encoder established by the present invention as long as it implements the technical idea of the present invention.

또한, 상술된 본 발명에 의한 부호화 결과물의 복호화 방법은 장치로서의 복호화기를 통해 구현될 수 있다. 상기 장치로서의 복호화기는 앞서 도 1 내지 6을 통해 예시한 종래의 복호화기 구조를 유지하거나 그로부터 소정의 변화를 적용한 형태로서 구현될 수 있으나, 그 구현의 형태가 반드시 예시된 바에 한정되지는 아니하고, 비디오 복호화기로서 기능할 수 있는 어떠한 형태의 복호화기 구조를 취하더라도 본 발명의 기술적 사상을 구현하는 한 본 발명에 의하여 성립한 복호화기라고 보아야 할 것이다.In addition, the method for decoding the encoding result according to the present invention described above can be implemented through a decoder as a device. The decoder as a device can be implemented in a form that maintains the conventional decoder structure exemplified through FIGS. 1 to 6 above or applies a predetermined change thereto. However, the form of implementation is not necessarily limited to what has been exemplified, and any form of decoder structure that can function as a video decoder is considered to be a decoder established by the present invention as long as it implements the technical idea of the present invention.

통상의 기술자는 상술한 방법 및 장치에 의하여 부호화된 비트열을 상기 부호화의 방법과 대칭적인 및/또는 역순의 방법을 적용함으로써 복호화할 수 있음을 쉽게 이해할 수 있을 것이다. 일 실시예에 있어서, 상기 부호화된 비트열로부터 복호화를 위한 정보를 읽어들임에 있어서는, 상기 부호화된 비트열에 포함된 적어도 하나의 가변장 부호화(variable length coding)된 구문이 해석될 수 있으며, 또한 일 실시예에 있어서, 상기 가변장 부호화는 엔트로피 부호화(entropy coding) 방법에 의하여 이루어질 수 있다. 이러한 복호화 절차 구현의 기술적 상세 및 응용 방법은 상술한 부호화 절차로부터 용이하게 이해할 수 있을 것이다.A person skilled in the art will readily understand that a bit stream encoded by the above-described method and device can be decoded by applying a method symmetrical and/or inverse to the encoding method. In one embodiment, when reading information for decoding from the encoded bit stream, at least one variable length coded phrase included in the encoded bit stream can be interpreted, and furthermore, in one embodiment, the variable length coding can be performed by an entropy coding method. The technical details and application method of implementing such a decoding procedure can readily be understood from the above-described encoding procedure.

본 명세서에 기재된 상기 부호화기 및/또는 복호화기는, 각각 프로세서와 메모리를 포함하는 장치로서, 바람직하게는 컴퓨팅(연산) 장치로서 구현될 수 있는 것에 해당할 수 있다. 본 명세서에 기재된, 상기 부호화기 및/또는 복호화기에 포함될 수 있는 상기 프로세서는, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 의미할 수 있다. The encoder and/or decoder described in the present specification may correspond to a device including a processor and a memory, each of which may be implemented as a computing device. The processor, which may be included in the encoder and/or decoder described in the present specification, may mean one or more general-purpose computers or special-purpose computers, such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing instructions and responding.

이해의 편의를 위하여 상기 프로세서가 단수로 표현되는 경우라 할지라도, 해당 기술분야에서 통상의 지식을 가진 자는, 상기 프로세서가 복수 개의 처리요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 본 발명의 일 실시예에 따른 장치는 상기 프로세서로서 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 상기 프로세서는 병렬 프로세서(parallel processor)나 멀티-코어 프로세서(multi-core processor)와 같이, 다양한 처리 구성(processing configuration)에 의하여 구현될 수 있다.Even if the processor is expressed in a singular form for the convenience of understanding, a person skilled in the art will recognize that the processor may include a plurality of processing elements and/or a plurality of types of processing elements. For example, a device according to an embodiment of the present invention may include a plurality of processors or one processor and one controller as the processor. In addition, the processor may be implemented by various processing configurations, such as a parallel processor or a multi-core processor.

상기 프로세서는, 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어(software)를 수행하도록 구성될 수 있다. 또한, 상기 프로세서는 상기 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.The processor may be configured to execute an operating system (OS) and one or more software programs running on the operating system. Additionally, the processor may access, store, manipulate, process, and generate data in response to execution of the software programs.

상기 소프트웨어는, 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함하 수 있으며, 원하는 대로 동작하도록 상기 프로세서를 제어할 수 있으며, 독립적으로 또는 결합적으로(collectively) 상기 프로세서에 명령을 내리도록 구성될 수 있다. 상기 소프트웨어는, 상기 프로세서에 의하여 해석되거나 상기 프로세서에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 상기 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, and may be configured to control the processor to perform a desired operation, and may be configured to issue instructions to the processor, either independently or collectively. The software may be permanently or temporarily embodied in any type of machine, component, physical device, virtual equipment, computer storage medium or device, or transmitted signal wave, for interpretation by the processor or for providing instructions or data to the processor. The software may also be distributed over network-connected computer systems, and stored or executed in a distributed manner.

상기 소프트웨어는 또한, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 상기 메모리에 기록되거나 저장될 수 있다. 상기 메모리는 컴퓨터 판독 가능 기록 매체일 수 있으며, 상기 컴퓨터 판독 가능 기록 매체에는 프로그램 명령, 데이터 파일, 데이터 구조 등이 단독으로 또는 조합되어 기록될 수도 있다. 상기 메모리에 저장되는 프로그램 명령은 본 발명의 실시예를 위하여 특별히 설계되고 구성된 명령 체계에 기반하거나, 또는 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 명령 체계, 예를 들어 어셈블리어(Assembly), C, C++, Java, Python 언어 등으로 예시되는 명령 체계를 따를 수도 있다. 상기 명령 체계 및 그에 의한 프로그램 명령은 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 본 발명의 일 실시예에 따른 장치 및/또는 상기 프로세서에 의해서 실행될 수 있는 고급 언어 코드를 포함하는 것으로 이해되어야 한다.The software may also be implemented in the form of program commands that can be executed through various computer means and recorded or stored in the memory. The memory may be a computer-readable recording medium, and program commands, data files, data structures, etc. may be recorded singly or in combination in the computer-readable recording medium. The program commands stored in the memory may be based on a command system specifically designed and configured for the embodiment of the present invention, or may follow a command system known and available to those skilled in the art of computer software, for example, a command system exemplified by the assembly language, C, C++, Java, Python, etc. It should be understood that the command system and the program commands thereby include not only machine language codes generated by a compiler, but also high-level language codes that can be executed by the device and/or the processor according to an embodiment of the present invention using an interpreter, etc.

본 명세서에 기재된 상기 메모리를 포함하여 본 발명의 일 실시예에 따른 장치를 구성하는 컴퓨터 판독 가능 기록 매체는, 프로세서 캐시(Cache), 램(RAM), 플래시 메모리와 같이 상기 프로세서가 동작하는 동안만 유지되는 일시적 또는 휘발성 기록 매체를 포함할 수 있고, 또는 하드 디스크, 플로피 디스크, 및 자기 테이프와 같은 자기체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 또는 정적 상태 메모리(solid state memory)와 같이 상대적으로 비휘발성적이거나 장기 기록이 가능한 기록 매체를 포함할 수 있고, 또는 하드웨어 상에 배치된 롬(ROM)과 같은 읽기 전용의 기록 매체를 포함할 수 있으며, 나아가 회로배선에 의한 하드-와이어드(hard-wired) 구조에 의하여 일련의 프로그램 명령과 등가의 동작을 수행하도록 구성된 하드웨어 그 자체 또한, 본 발명의 실시예를 구현하는 상기 동작을 수행하기 위한 각 단계가 상기 하드웨어 부품의 연결과 배치에 의하여 기록되어 있다고 볼 수 있으므로, 그 연결 및 배치방법이 곧 상기 메모리와 등가인 것으로 볼 수 있음은 통상의 기술자에게 자명하다.The computer-readable recording medium constituting the device according to one embodiment of the present invention, including the memory described in this specification, may include a temporary or volatile recording medium that is maintained only while the processor is operating, such as a processor cache, a RAM, a flash memory, or a relatively non-volatile or long-term recording medium, such as a magnetic media such as a hard disk, a floppy disk, and a magnetic tape, an optical media such as a CD-ROM, a DVD, a magneto-optical media such as a floptical disk, or a solid state memory, or may include a read-only recording medium, such as a ROM arranged on hardware, and further, hardware itself configured to perform operations equivalent to a series of program commands by a hard-wired structure by circuit wiring, and since each step for performing the operations implementing the embodiments of the present invention can be viewed as being recorded by the connection and arrangement of the hardware components, the connection and arrangement method is the memory and It is obvious to a person skilled in the art that they can be considered equivalent.

상기 프로세서 및 상기 메모리에 대하여 상술한 실시예는 상호 배타적이지 않으며, 필요에 따라 선택되거나 결합되어 실시될 수 있다. 예를 들어, 하나의 하드웨어 장치는 본 발명 실시예의 동작을 수행하기 위해 하나 이상의 상기 소프트웨어로 구성된 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 또 다른 예를 들어, 본 명세서에 있어서, 어떠한 기능부에 할당된 동작의 전부 또는 일부는 본 발명의 일 실시예에 따른 장치에(바람직하게는, 상기 메모리의 범주에 속하는 어느 하나의 기록 매체에) 저장된 하나 이상의 상기 소프트웨어에 의하여 구현되어, 상기 프로세서에 의하여 실행되도록 구성될 수 있으며, 이러한 경우, 상기와 같은 기능부는 상기 프로세서에 "포함되는" 기능부로서 칭해질 수 있다.The embodiments described above with respect to the processor and the memory are not mutually exclusive and may be selected or combined and implemented as needed. For example, a single hardware device may be configured to operate as a module composed of one or more of the software to perform the operations of the embodiments of the present invention, and vice versa. As another example, in the present specification, all or part of the operations assigned to a certain functional unit may be implemented by one or more of the software stored in the device according to an embodiment of the present invention (preferably, in any one of the recording media belonging to the category of the memory) and configured to be executed by the processor, and in this case, such a functional unit may be referred to as a functional unit "included" in the processor.

이상 본 발명에 대하여 도면 및 실시예를 참조하여 설명하였으나, 이미 상술한 바와 같이 본 발명의 보호범위가 상기 제시된 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며, 해당 기술 분야의 숙련된 당업자는 본 발명 특허의 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the present invention has been described with reference to the drawings and embodiments, as already mentioned above, it does not mean that the protection scope of the present invention is limited by the drawings or embodiments presented above, and it will be understood that a person skilled in the relevant technical field can modify and change the present invention in various ways without departing from the spirit and scope of the present invention described in the claims of the patent for the present invention.

Claims (20)

부호화된 비디오 비트열을 복호화하는 방법에 있어서,A method for decoding an encoded video bitstream, 상기 비트열로부터 현재 복호화 중인 현재 블록에 대한 적어도 하나의 예측 벡터(prediction vector)를 획득하는 단계,A step of obtaining at least one prediction vector for the current block currently being decoded from the above bit string, 상기 예측 벡터에 기반하여 적어도 하나의 참조 블록을 결정하는 단계;A step of determining at least one reference block based on the above prediction vector; 상기 현재 블록을 기준 블록으로 하여 그에 인접한 적어도 하나의 화소를 포함하는 제1 템플릿(template), 및 상기 참조 블록을 기준 블록으로 하여 그에 인접한 적어도 하나의 화소를 포함하는 제2 템플릿, 중 적어도 하나를 정의하는 단계;A step of defining at least one of a first template including at least one pixel adjacent to the current block as a reference block, and a second template including at least one pixel adjacent to the reference block as a reference block; 상기 제1 템플릿 및 상기 제2 템플릿 중 적어도 하나에 대하여, 상기 템플릿의 사용 방법에 대한 정보를 포함하는 템플릿 구성 모드를 결정하는 단계;A step of determining a template configuration mode including information on how to use the template, for at least one of the first template and the second template; 상기 적어도 하나의 템플릿 구성 모드에 기반하여, 상기 제1 템플릿 및 상기 제2 템플릿 중 적어도 하나로부터 유래하는 적어도 하나의 화소 정보를 참조하여, 국소적 조도 보상(Local Illumination Compensation; LIC)에 관련된 정보를 추출하고, 상기 추출된 정보로부터 LIC 정보를 획득하는 단계;A step of extracting information related to local illumination compensation (LIC) by referring to at least one pixel information derived from at least one of the first template and the second template based on the at least one template configuration mode, and obtaining LIC information from the extracted information; 상기 LIC 정보에 기반하여 동작하는 LIC 방법에 의하여 상기 참조 블록을 보정함으로써 상기 현재 블록에 대한 예측 샘플을 생성하는 단계; 및A step of generating a prediction sample for the current block by correcting the reference block by a LIC method operating based on the LIC information; and 상기 예측 샘플을 이용하여 상기 현재 블록을 복원하는 단계;를 포함하는, 복호화 방법.A decryption method, comprising: a step of restoring the current block using the above prediction sample. 제 1 항에 있어서,In paragraph 1, 상기 템플릿 구성 모드는,The above template configuration mode is, 상기 기준 블록의 상단 화소를 이용하는 모드, 상기 기준 블록의 좌측 화소를 이용하는 모드, 및 상기 기준 블록의 상단 및 좌측 화소들을 가중치에 기반하여 이용하는 모드, 중 적어도 하나의 모드를 포함하는 것을 특징으로 하는, 복호화 방법.A decoding method, characterized in that it includes at least one mode among a mode using the upper pixel of the reference block, a mode using the left pixel of the reference block, and a mode using the upper and left pixels of the reference block based on weights. 제 2 항에 있어서,In the second paragraph, 상기 가중치에 기반하여 이용하는 모드는,The mode used based on the above weights is: 상기 기준 블록의 상단 및 좌측 영역을 적어도 하나의 구역으로 나누고, 각 구역마다 서로 다른 구역별 가중치를 적용하도록 구성되는 것을 특징으로 하는, 복호화 방법.A decoding method characterized in that the upper and left areas of the above-mentioned reference block are divided into at least one zone and different zone-specific weights are applied to each zone. 제 3 항에 있어서,In the third paragraph, 상기 구역별 가중치는,The above weights for each zone are: 사전에 정의된 테이블(table)로부터 선택되고,Selected from a predefined table, 상기 템플릿 구성 모드를 결정하는 단계는,The step of determining the above template configuration mode is: 상기 테이블에서 선택된 인덱스(index)를 나타내는 정보를 상기 비트열로부터 획득하는 단계;를 포함하는, 복호화 방법.A decryption method, comprising: a step of obtaining information representing an index selected from the above table from the bit string. 제 4 항에 있어서,In paragraph 4, 상기 인덱스를 나타내는 정보는,The information representing the above index is: 앞서 복호화된 비디오 정보에 기반하여 복호화기 측에서 암시적으로(implicitly) 결정되는 것을 특징으로 하는, 복호화 방법.A decryption method characterized in that it is implicitly determined on the decoder side based on previously decrypted video information. 제 1 항에 있어서,In paragraph 1, 상기 템플릿 구성 모드는,The above template configuration mode is, 상기 제1 템플릿 및 상기 제2 템플릿 중 어느 하나에 포함된 일부 화소들만을 서브샘플링(subsampling)을 통하여 선택하여 사용하는 모드를 포함하는 것을 특징으로 하는, 복호화 방법.A decoding method characterized by including a mode for selecting and using only some pixels included in one of the first template and the second template through subsampling. 제 6 항에 있어서,In paragraph 6, 상기 서브샘플링은,The above subsampling is, 상기 템플릿을 가로 및 세로 중 적어도 하나의 방향으로 제1개수 분할하고, 상기 분할된 영역으로부터 제2개수의 화소를 선택하는 것을 특징으로 하는, 복호화 방법.A decryption method characterized by dividing the above template into a first number of regions in at least one of horizontal and vertical directions, and selecting a second number of pixels from the divided regions. 제 7 항에 있어서,In paragraph 7, 상기 서브샘플링은,The above subsampling is, 상기 템플릿이 상기 기준 블록의 상단 화소 영역을 포함하는 경우, 상기 상단 화소 영역을 수평 방향으로 분할하고,If the above template includes the upper pixel area of the above reference block, the upper pixel area is divided in the horizontal direction, 상기 템플릿이 상기 기준 블록의 좌측 화소 영역을 포함하는 경우, 상기 좌측 화소 영역을 수직 방향으로 분할하는 것을 특징으로 하는, 복호화 방법.A decoding method characterized in that, when the template includes a left pixel area of the reference block, the left pixel area is divided in the vertical direction. 제 7 항에 있어서,In paragraph 7, 상기 제1개수 및 제2개수 중 적어도 하나는, 2의 승수에 기반하여 결정되는 것을 특징으로 하는, 복호화 방법.A decryption method, characterized in that at least one of the first number and the second number is determined based on a power of 2. 제 1 항에 있어서,In paragraph 1, 상기 템플릿 구성 모드를 결정하는 단계는,The step of determining the above template configuration mode is: 적어도 하나의 템플릿 구성 모드를 사용하도록 지시하는 모드 신호를 상기 비트열로부터 획득하는 단계; 및A step of obtaining a mode signal from said bit string, wherein said mode signal instructs to use at least one template configuration mode; and 상기 모드 신호에 기반하여 상기 템플릿 구성 모드를 결정하는 단계;를 포함하는, 복호화 방법.A decoding method, comprising: a step of determining the template configuration mode based on the mode signal; 제 1 항에 있어서,In paragraph 1, 상기 템플릿 구성 모드를 결정하는 단계는,The step of determining the above template configuration mode is: 앞서 복호화된 비디오 정보에 기반하여 복호화기 측에서 암시적으로(implicitly) 상기 템플릿 구성 모드를 결정하는 단계;를 포함하는, 복호화 방법.A decryption method, comprising: a step of implicitly determining the template configuration mode on the decoder side based on previously decrypted video information; 비디오로부터 생성되는 비트열을 부호화하는 방법에 있어서,A method for encoding a bit stream generated from a video, 현재 부호화 중인 현재 블록에 대한 적어도 하나의 예측 벡터(prediction vector)를 결정하는 단계,A step of determining at least one prediction vector for the current block currently being encoded, 상기 예측 벡터에 기반하여 적어도 하나의 참조 블록을 결정하는 단계;A step of determining at least one reference block based on the above prediction vector; 상기 현재 블록을 기준 블록으로 하여 그에 인접한 적어도 하나의 화소를 포함하는 제1 템플릿(template), 및 상기 참조 블록을 기준 블록으로 하여 그에 인접한 적어도 하나의 화소를 포함하는 제2 템플릿, 중 적어도 하나를 정의하는 단계;A step of defining at least one of a first template including at least one pixel adjacent to the current block as a reference block, and a second template including at least one pixel adjacent to the reference block as a reference block; 상기 제1 템플릿 및 상기 제2 템플릿 중 적어도 하나에 대하여, 상기 템플릿의 사용 방법에 대한 정보를 포함하는 템플릿 구성 모드를 결정하는 단계;A step of determining a template configuration mode including information on how to use the template, for at least one of the first template and the second template; 상기 적어도 하나의 템플릿 구성 모드에 기반하여, 상기 제1 템플릿 및 상기 제2 템플릿 중 적어도 하나로부터 유래하는 적어도 하나의 화소 정보를 참조하여, 국소적 조도 보상(Local Illumination Compensation; LIC)에 관련된 정보를 추출하고, 상기 추출된 정보로부터 LIC 정보를 획득하는 단계;A step of extracting information related to local illumination compensation (LIC) by referring to at least one pixel information derived from at least one of the first template and the second template based on the at least one template configuration mode, and obtaining LIC information from the extracted information; 상기 LIC 정보에 기반하여 동작하는 LIC 방법에 의하여 상기 참조 블록을 보정함으로써 상기 현재 블록에 대한 예측 샘플을 생성하는 단계;A step of generating a prediction sample for the current block by correcting the reference block by a LIC method operating based on the LIC information; 상기 예측 샘플을 이용하여 상기 현재 블록을 부호화하는 단계; 및a step of encoding the current block using the above prediction sample; and 상기 부호화 결과를 상기 비트열에 기록하는 단계;를 포함하는, 부호화 방법.An encoding method, comprising: a step of recording the encoding result in the bit string. 제 12 항에 있어서,In Article 12, 상기 템플릿 구성 모드는,The above template configuration mode is, 상기 기준 블록의 상단 화소를 이용하는 모드, 상기 기준 블록의 좌측 화소를 이용하는 모드, 및 상기 기준 블록의 상단 및 좌측 화소들을 가중치에 기반하여 이용하는 모드, 중 적어도 하나의 모드를 포함하는 것을 특징으로 하는, 부호화 방법.An encoding method characterized by including at least one mode among a mode using the upper pixel of the reference block, a mode using the left pixel of the reference block, and a mode using the upper and left pixels of the reference block based on weights. 제 13 항에 있어서,In Article 13, 상기 가중치에 기반하여 이용하는 모드는,The mode used based on the above weights is: 상기 기준 블록의 상단 및 좌측 영역을 적어도 하나의 구역으로 나누고, 각 구역마다 서로 다른 구역별 가중치를 적용하도록 구성되는 것을 특징으로 하는, 부호화 방법.An encoding method characterized in that the upper and left areas of the above-mentioned reference block are divided into at least one zone and different zone-specific weights are applied to each zone. 제 12 항에 있어서,In Article 12, 상기 템플릿 구성 모드는,The above template configuration mode is, 상기 템플릿 중 적어도 하나로부터 일부 화소들만을 선택하여 사용하는 모드를 포함하는 것을 특징으로 하는, 부호화 방법.An encoding method, characterized in that it includes a mode for selecting and using only some pixels from at least one of the above templates. 제 15 항에 있어서,In Article 15, 상기 일부 화소들은,Some of the above pixels are, 서브샘플링(subsampling)을 통하여 선택되는 것을 특징으로 하는, 복호화 방법.A decoding method characterized by being selected through subsampling. 제 15 항에 있어서,In Article 15, 상기 예측 벡터를 결정하는 단계는,The step of determining the above prediction vector is: 예측 템플릿 구성 모드에 따라 상기 제1 템플릿을 참조하는 단계;를 포함하고,A step of referencing the first template according to a prediction template configuration mode; comprising; 상기 LIC 정보를 획득하는 단계는,The steps to obtain the above LIC information are: 제1 LIC 템플릿 구성 모드에 따라 상기 제1 템플릿을 참조하는 단계; 및 제2 LIC 템플릿 구성 모드에 따라 상기 제2 템플릿을 참조하는 단계; 및 상기 참조의 결과에 기반하는 연산을 통해 LIC 선형 모델을 결정하는 단계;를 포함하고,A step of referencing the first template according to the first LIC template configuration mode; and a step of referencing the second template according to the second LIC template configuration mode; and a step of determining the LIC linear model through an operation based on the result of the reference; 상기 LIC 선형 모델은 기울기(α)와 편향(β)을 포함하는 계수에 의하여 정의되는 함수인 것을 특징으로 하는, 부호화 방법.An encoding method, characterized in that the above LIC linear model is a function defined by coefficients including a slope (α) and a bias (β). 제 17 항에 있어서,In Article 17, 상기 예측 템플릿 구성 모드는, 상기 제1 템플릿으로부터 일부 화소들만을 선택하여 사용하는 모드를 포함하고,The above prediction template configuration mode includes a mode for selecting and using only some pixels from the first template, 상기 예측 벡터를 결정하는 단계는, 상기 선택된 일부 화소들에 기반하는 템플릿 기반의 탐색을 통해 상기 예측 벡터를 결정하도록 구성되는 것을 특징으로 하는, 부호화 방법.An encoding method, characterized in that the step of determining the prediction vector is configured to determine the prediction vector through a template-based search based on some of the selected pixels. 제 17 항에 있어서,In Article 17, 상기 제1 LIC 템플릿 구성 모드 및 상기 제2 LIC 템플릿 구성 모드 중 적어도 하나는, 상기 템플릿 중 적어도 하나로부터 일부 화소들만을 선택하여 사용하는 모드를 포함하고,At least one of the first LIC template configuration mode and the second LIC template configuration mode includes a mode for selecting and using only some pixels from at least one of the templates, 상기 LIC 정보를 획득하는 단계는, 상기 선택된 일부 화소들에 기반하는 연산을 통해 상기 LIC 선형 모델의 계수 중 적어도 하나를 결정하도록 구성되는 것을 특징으로 하는, 부호화 방법.An encoding method, characterized in that the step of obtaining the LIC information is configured to determine at least one of the coefficients of the LIC linear model through an operation based on the selected portion of pixels. 컴퓨팅 장치에 의하여 부호화된 비디오 비트열을 복호화하도록 구성되는 복호화기 장치에 있어서,A decoder device configured to decode a video bit stream encoded by a computing device, 비트열을 수신하는 수신부;A receiver that receives a bit string; 복호화된 비디오를 출력하는 출력부;An output section that outputs the decrypted video; 적어도 하나의 복호화된 픽처(picture)의 정보를 저장하는 참조 버퍼(reference buffer);A reference buffer storing information about at least one decoded picture; 프로세서; 및processor; and 상기 프로세서에 의하여 실행 가능한 명령어들을 저장하는 메모리;를 포함하고,A memory for storing instructions executable by the processor; 상기 명령어들은, 상기 비트열로부터 현재 복호화 중인 현재 블록에 대한 적어도 하나의 예측 벡터(prediction vector)를 획득하고; 상기 예측 벡터에 기반하여 적어도 하나의 참조 블록을 결정하고; 상기 현재 블록을 기준 블록으로 하여 그에 인접한 적어도 하나의 화소를 포함하는 제1 템플릿(template), 및 상기 참조 블록을 기준 블록으로 하여 그에 인접한 적어도 하나의 화소를 포함하는 제2 템플릿, 중 적어도 하나를 정의하고; 상기 제1 템플릿 및 상기 제2 템플릿 중 적어도 하나에 대하여, 상기 템플릿의 사용 방법에 대한 정보를 포함하는 템플릿 구성 모드를 결정하고; 상기 적어도 하나의 템플릿 구성 모드에 기반하여, 상기 제1 템플릿 및 상기 제2 템플릿 중 적어도 하나로부터 유래하는 적어도 하나의 화소 정보를 참조하여, 국소적 조도 보상(Local Illumination Compensation; LIC)에 관련된 정보를 추출하고, 상기 추출된 정보로부터 LIC 정보를 획득하고; 상기 LIC 정보에 기반하여 동작하는 LIC 방법에 의하여 상기 참조 블록을 보정함으로써 상기 현재 블록에 대한 예측 샘플을 생성하고; 그리고 상기 예측 샘플을 이용하여 상기 현재 블록을 복원하는; 명령어들을 포함하도록 구성되는, 복호화기 장치.A decoder device configured to include instructions for: obtaining at least one prediction vector for a current block currently being decoded from the bit string; determining at least one reference block based on the prediction vector; defining at least one of a first template including at least one pixel adjacent to the current block as a reference block, and a second template including at least one pixel adjacent to the reference block as a reference block; determining a template configuration mode including information on a method of using the template, for at least one of the first template and the second template; extracting information related to Local Illumination Compensation (LIC) with reference to at least one pixel information derived from at least one of the first template and the second template based on the at least one template configuration mode, and obtaining LIC information from the extracted information; generating a prediction sample for the current block by correcting the reference block by a LIC method operating based on the LIC information; and restoring the current block using the prediction sample.
PCT/KR2024/014635 2023-09-26 2024-09-26 Method and apparatus for encoding/decoding video on basis of improved template determination for local illuminance compensation Pending WO2025071286A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202480061234.9A CN121890065A (en) 2023-09-26 2024-09-26 Video encoding/decoding method and device based on improved local brightness compensation template determination

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2023-0129370 2023-09-26
KR20230129370 2023-09-26
KR1020240130656A KR20250046218A (en) 2023-09-26 2024-09-26 Method for video encoding and decoding based on enhanced local illuminance compensation template decision and appratus thereof
KR10-2024-0130656 2024-09-26

Publications (1)

Publication Number Publication Date
WO2025071286A1 true WO2025071286A1 (en) 2025-04-03

Family

ID=95201899

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2024/014635 Pending WO2025071286A1 (en) 2023-09-26 2024-09-26 Method and apparatus for encoding/decoding video on basis of improved template determination for local illuminance compensation

Country Status (1)

Country Link
WO (1) WO2025071286A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180134764A (en) * 2017-06-09 2018-12-19 한국전자통신연구원 Method and apparatus for encoding/decoding image and recording medium for storing bitstream
KR20190055819A (en) * 2016-10-05 2019-05-23 퀄컴 인코포레이티드 Systems and methods for adaptively determining a template size for illumination compensation
KR20210134034A (en) * 2019-03-12 2021-11-08 인터디지털 브이씨 홀딩스 인코포레이티드 Method and apparatus for video encoding and decoding using subblock-based local lighting compensation
KR20230040296A (en) * 2021-09-15 2023-03-22 주식회사 케이티 Method of encoding/decoding a video signa, and recording medium stroing a bitstream
KR20230127307A (en) * 2021-11-22 2023-08-31 텐센트 아메리카 엘엘씨 Limited template matching

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190055819A (en) * 2016-10-05 2019-05-23 퀄컴 인코포레이티드 Systems and methods for adaptively determining a template size for illumination compensation
KR20180134764A (en) * 2017-06-09 2018-12-19 한국전자통신연구원 Method and apparatus for encoding/decoding image and recording medium for storing bitstream
KR20210134034A (en) * 2019-03-12 2021-11-08 인터디지털 브이씨 홀딩스 인코포레이티드 Method and apparatus for video encoding and decoding using subblock-based local lighting compensation
KR20230040296A (en) * 2021-09-15 2023-03-22 주식회사 케이티 Method of encoding/decoding a video signa, and recording medium stroing a bitstream
KR20230127307A (en) * 2021-11-22 2023-08-31 텐센트 아메리카 엘엘씨 Limited template matching

Similar Documents

Publication Publication Date Title
WO2018212569A1 (en) Image processing method on basis of intra prediction mode and apparatus therefor
WO2021201515A1 (en) Image encoding/decoding method and device for signaling hls, and computer-readable recording medium in which bitstream is stored
WO2020005002A1 (en) Method and device for deriving template area according to inter-prediction in image coding system
WO2025071286A1 (en) Method and apparatus for encoding/decoding video on basis of improved template determination for local illuminance compensation
WO2023239147A1 (en) Image encoding/decoding method, device, and recording medium in which bitstream is stored
WO2025071287A1 (en) Video encoding/decoding method and apparatus based on improved local illuminance compensation cross filter
WO2025071283A1 (en) Video encoding/decoding method and device based on improved local illumination compensation template determination
WO2018222020A1 (en) Method and apparatus for processing video signal through target area modification
WO2025014115A1 (en) Method and apparatus for video encoding and decoding on basis of geometric partitioning prediction
WO2025211830A1 (en) Improved decoder-side intra prediction mode estimation method and device for video encoding and decoding
WO2021137588A1 (en) Image decoding method and apparatus for coding image information including picture header
WO2021006651A1 (en) Method for coding image on basis of deblocking filtering, and apparatus therefor
WO2025230284A1 (en) Method and apparatus for video encoding and decoding based on adaptive decoder calculation technology
WO2025063635A1 (en) Improved method and device for decoder-side intra mode derivation for encoding and decoding video
WO2025135813A1 (en) Method and apparatus for video encoding and decoding based on improved geometric partitioning prediction
WO2025084913A1 (en) Method and device for encoding/decoding video on basis of intra prediction
WO2025198325A1 (en) Method and device for video encoding and decoding using improved intra prediction structure
WO2025048317A1 (en) Enhanced gradual decoder refresh method and device, for video encoding and decoding
WO2026075503A1 (en) Method and device for decoder-side intra mode derivation technique for prediction and complexity improvement
WO2013062175A1 (en) Method and device for the scalable coding of an enhancement layer
WO2025005615A1 (en) Image encoding/decoding method and device, and recording medium for storing bitstream
WO2025211686A1 (en) Method and device for video encoding and decoding on basis of combination reference vector
WO2025018639A1 (en) Method and apparatus for video encoding and decoding using improved intra prediction structure
WO2026019073A1 (en) Image encoding/decoding method and apparatus, and recording medium having bitstream stored therein
WO2026095739A1 (en) Method and apparatus for encoding and decoding screen content and game content video

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

Country of ref document: EP

Kind code of ref document: A1

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112026007030

Country of ref document: BR