KR20140090648A - Method and device for providing compensation offsets for a set of reconstructed samples of an image - Google Patents

Method and device for providing compensation offsets for a set of reconstructed samples of an image Download PDF

Info

Publication number
KR20140090648A
KR20140090648A KR1020147014408A KR20147014408A KR20140090648A KR 20140090648 A KR20140090648 A KR 20140090648A KR 1020147014408 A KR1020147014408 A KR 1020147014408A KR 20147014408 A KR20147014408 A KR 20147014408A KR 20140090648 A KR20140090648 A KR 20140090648A
Authority
KR
South Korea
Prior art keywords
range
classification
class
sample
samples
Prior art date
Application number
KR1020147014408A
Other languages
Korean (ko)
Other versions
KR101530244B1 (en
Inventor
에두아르 프랑수와
기욤 라로슈
Original Assignee
캐논 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 캐논 가부시끼가이샤 filed Critical 캐논 가부시끼가이샤
Publication of KR20140090648A publication Critical patent/KR20140090648A/en
Application granted granted Critical
Publication of KR101530244B1 publication Critical patent/KR101530244B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/117Filters, e.g. for pre-processing or post-processing
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods 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 picture, frame or field
    • 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/182Methods 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 a pixel
    • 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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment

Abstract

영상의 재구성된 샘플 세트에 대한 보상 오프셋들이 제공된다. 각각의 샘플은 샘플 값을 가진다. 보상 오프셋들을 제공하는 방법은 레이트 왜곡 기준(rate distortion criterion)에 기초하여, 복수의 사전 결정된 분류들 중에서 분류를 선택하는 단계를 포함한다. 각각의 사전 결정된 분류는 샘플 값의 전체 범위보다 작은 분류 범위(classification range)를 가지며 복수의 클래스들로 이루어져 있고, 각각의 클래스는 분류 범위 내에서의 샘플 값의 범위를 정의하고, 샘플의 샘플 값이 관련 클래스의 범위 내에 있는 경우 샘플이 그 클래스 내에 배치된다. 클래스의 각각의 샘플의 샘플 값에 적용하기 위한 보상 오프셋이 그 선택된 분류의 각각의 클래스와 연관된다.Compensation offsets for the reconstructed sample set of images are provided. Each sample has a sample value. A method of providing compensation offsets includes selecting a classification from a plurality of predetermined classifications based on a rate distortion criterion. Each of the predetermined classifications having a classification range that is smaller than the entire range of sample values and is made up of a plurality of classes, each class defining a range of sample values within the classification range, If it is within the scope of this related class, the sample is placed in that class. A compensation offset for applying to the sample value of each sample of the class is associated with each class of the selected classification.

Description

영상의 재구성된 샘플 세트에 대한 보상 오프셋들을 제공하는 방법 및 장치{METHOD AND DEVICE FOR PROVIDING COMPENSATION OFFSETS FOR A SET OF RECONSTRUCTED SAMPLES OF AN IMAGE}FIELD OF THE INVENTION [0001] The present invention relates to a method and apparatus for providing compensation offsets for a reconstructed set of samples of an image,

본 발명은 영상의 재구성된 샘플 세트에 대한 보상 오프셋들(compensation offsets)을 제공하는 방법 및 장치에 관한 것이다. 본 발명은 또한 디지털 영상 시퀀스를 인코딩 또는 디코딩하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for providing compensation offsets for a reconstructed sample set of images. The present invention also relates to a method and apparatus for encoding or decoding digital video sequences.

본 발명은 디지털 신호 처리의 분야에서 그리고 특히 비디오 스트림에서 공간 및 시간 중복성을 감소시키기 위해 움직임 보상을 사용하는 비디오 압축의 분야에서 적용될 수 있다.The present invention can be applied in the field of digital signal processing and in the field of video compression using motion compensation to reduce spatial and temporal redundancy, particularly in video streams.

예를 들어, H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC 등의 많은 비디오 압축 형식들은 공간 및 시간 중복성을 제거하기 위해 블록 기반 DCT(discrete cosine transform) 및 움직임 보상을 사용한다. 이들은 종종 예측 비디오 형식(predictive video format)이라고 한다. 비디오 신호의 각각의 프레임 또는 영상은 독립적으로 인코딩되고 디코딩될 수 있는 슬라이스들로 나누어진다. 슬라이스는 통상적으로 프레임의 직사각형 부분, 또는 보다 일반적으로, 프레임 또는 전체 프레임의 일부분이다. 게다가, 각각의 슬라이스는 매크로블록들(macroblock, MB)로 나누어질 수 있고, 각각의 매크로블록은 블록들(통상적으로, 64x64, 32x32, 16x16 또는 8x8 픽셀의 블록들)로 추가로 나누어진다.Many video compression formats such as H.263, H.264, MPEG-1, MPEG-2, MPEG-4 and SVC, for example, use block-based discrete cosine transform (DCT) Compensation is used. These are often referred to as predictive video formats. Each frame or image of the video signal is divided into slices that can be independently encoded and decoded. A slice is typically a rectangular portion of a frame, or more generally, a frame or a portion of an entire frame. In addition, each slice can be divided into macroblocks (MB), and each macroblock is further divided into blocks (typically blocks of 64x64, 32x32, 16x16 or 8x8 pixels).

HEVC(High Efficiency Video Coding)에서, 64x64 내지 4x4의 블록들이 사용될 수 있다. 이 분할은 LCU(largest coding unit, 최대 코딩 단위)에 기초한 쿼드-트리 구조(quad-tree structure)에 따라 구성되어 있다. LCU는 64x64의 정사각형 블록에 대응한다. LCU가 나누어질 필요가 있는 경우, 분할 플래그(split flag)는 LCU가 4개의 32x32 블록들로 분할되어 있다는 것을 나타낸다. 동일한 방식으로, 이 4개의 블록들 중 임의의 것이 분할될 필요가 있는 경우, 분할 플래그는 참(true)으로 설정되고, 32x32 블록이 4개의 16x16 블록들로 나누어지며, 이하 마찬가지이다. 분할 플래그가 거짓(false)으로 설정되어 있을 때, 현재의 블록이 CU(coding unit, 코딩 단위)이다. CU는 64x64, 32x32, 16x16 또는 8x8 픽셀의 크기를 가진다.In HEVC (High Efficiency Video Coding), 64x64 to 4x4 blocks can be used. This partitioning is organized according to a quad-tree structure based on the LCU (largest coding unit). The LCU corresponds to a 64x64 square block. If the LCU needs to be divided, the split flag indicates that the LCU is divided into four 32x32 blocks. In the same way, if any of these four blocks needs to be segmented, the segmentation flag is set to true, the 32x32 block is divided into four 16x16 blocks, and so on. When the segmentation flag is set to false, the current block is a coding unit (CU). The CU has a size of 64x64, 32x32, 16x16 or 8x8 pixels.

영상의 블록들을 코딩하는 2가지 계열의 코딩 모드 - 공간 예측에 기초한 코딩 모드[인트라 예측(INTRA prediction)이라고 함], 및 시간 예측에 기초한 코딩 모드[인터(INTER), 병합(Merge), 건너뜀(Skip)] - 가 있다. 공간 예측 모드 및 시간 예측 모드 둘 다에서, 원래의 블록으로부터 예측을 차감함으로써 잔차(residual)가 계산된다.(Referred to as INTRA prediction) based on two series of coding modes for coding blocks of an image, a coding mode based on temporal prediction (INTER, Merge, Skip (Skip)]. In both the spatial prediction mode and the temporal prediction mode, the residual is calculated by subtracting the prediction from the original block.

인트라 블록(INTRA block)은 일반적으로 인트라 예측 프로세스에 의해 그의 인과 경계(causal boundary)에서의 인코딩된 픽셀로부터 예측된다. 인트라 예측에서, 예측 방향이 인코딩된다.An INTRA block is generally predicted from an encoded pixel at its causal boundary by an intra prediction process. In intra prediction, the prediction direction is encoded.

시간 예측은, 비디오 시퀀스의 이전 또는 장래 프레임(previous or a future frame)인 참조 프레임(reference frame)에서, 인코딩될 블록에 가장 가까운 영상 부분(image portion) 또는 참조 영역(reference area)을 찾아내는 데 있다. 이 단계는 통상적으로 움직임 추정(motion estimation)이라고 한다. 그 다음에, 통상적으로 움직임 보상(motion compensation)이라고 하는 단계에서 참조 영역을 사용하여 인코딩될 블록이 예측된다 - 인코딩될 블록과 참조 부분 사이의 차가, 움직임 보상을 위해 사용할 참조 영역을 나타내는 움직임 벡터에 대한 움직임 정보의 항목과 함께, 인코딩된다 -. 시간 예측에서, 적어도 하나의 움직임 벡터가 인코딩된다.The temporal prediction is to find an image portion or reference area closest to the block to be encoded in a reference frame that is a previous or a future frame of the video sequence . This step is commonly referred to as motion estimation. Next, a block to be encoded is predicted using a reference region in a step, usually referred to as motion compensation. The difference between the block to be encoded and the reference portion is referred to as a motion vector indicating a reference region to be used for motion compensation Is encoded along with the item of motion information for -. In temporal prediction, at least one motion vector is encoded.

움직임 정보를 인코딩하는 비용을 추가로 감소시키기 위해, 움직임 벡터를 직접 인코딩하기보다는, 움직임이 균질(homogeneous)하다고 가정하여, 통상적으로 인코딩될 블록을 둘러싸고 있는 블록들의 하나 이상의 움직임 벡터들로부터 계산되는 움직임 벡터와 움직임 벡터 예측자 간의 차로 움직임 벡터가 인코딩될 수 있다.In order to further reduce the cost of encoding the motion information, rather than directly encoding the motion vector, it is assumed that the motion is homogeneous, and the motion that is calculated from one or more motion vectors of the blocks typically surrounding the block to be encoded A difference motion vector between the vector and the motion vector predictor can be encoded.

H.264에서, 예를 들어, 움직임 벡터들이 인코딩될 블록의 인과 이웃(causal neighbourhood)에 위치해 있는 움직임 벡터들로부터, 예를 들어, 인코딩될 블록의 위쪽에 그리고 좌측에 위치해 있는 3개의 블록들로부터, 계산되는 중간 예측자(median predictor)에 대해 인코딩된다. 인코딩 비용을 감소시키기 위해, 중간 예측자와 현재 블록 움직임 벡터 간의 차[잔차 움직임 벡터(residual motion vector)라고 함]만이 비트스트림에 인코딩된다.In H.264, for example, motion vectors are generated from motion vectors located in the causal neighborhood of the block to be encoded, e.g., from three blocks located above and to the left of the block to be encoded , And a median predictor to be computed. To reduce the encoding cost, only the difference between the intermediate predictor and the current block motion vector (referred to as residual motion vector) is encoded into the bitstream.

잔차 움직임 벡터를 사용한 인코딩은 얼마간의 비트레이트를 절감하지만, 디코딩될 블록의 움직임 벡터의 값을 디코딩하기 위해 디코더가 움직임 벡터 예측자의 동일한 계산을 수행하는 것을 필요로 한다.Encoding using the residual motion vector saves some bit rate, but requires the decoder to perform the same calculation of the motion vector predictor in order to decode the value of the motion vector of the block to be decoded.

인코딩 프로세스 및 디코딩 프로세스 둘 다는 인코딩된 영상의 디코딩 프로세스를 포함할 수 있다. 이 프로세스는 통상적으로 장래 움직임 추정을 위해 인코더측에서 수행되고, 이는 인코더 및 대응하는 디코더가 동일한 참조 프레임을 가질 수 있게 해준다.Both the encoding process and the decoding process may include a decoding process of the encoded image. This process is typically performed on the encoder side for future motion estimation, which allows the encoder and the corresponding decoder to have the same reference frame.

코딩된 프레임을 재구성하기 위해, 픽셀 영역에서 "디코딩된" 잔차를 제공하기 위해 잔차가 역양자화 및 역변환된다. 제1 재구성은 이어서 하나의 또는 몇개의 종류의 사후 필터링(post filtering) 프로세스에 의해 필터링된다. 동일한 참조 프레임이 인코더측 및 디코더측 둘 다에서 사용되도록, 이들 사후 필터(post filter)가 인코더측 및 디코더측에서 재구성된 프레임에 적용된다. 이 사후 필터링의 목표는 압축 아티팩트를 제거하는 것이다. 예를 들어, H.264/AVC는 디블록킹 필터(deblocking filter)를 사용한다. 이 필터는 잔차의 DCT 양자화 및 블록 움직임 보상으로 인한 블록킹 아티팩트(blocking artifact)를 제거할 수 있다. 현재의 HEVC 표준에서, 3가지 유형의 루프 필터 - 디블록킹 필터, SAO(sample adaptive offset, 샘플 적응적 오프셋), 및 ALF(adaptive loop filter, 적응적 루프 필터) - 가 사용되고 있다.To reconstruct the coded frame, the residual is inversely quantized and inversely transformed to provide a "decoded" residual in the pixel region. The first reconstruction is then filtered by one or several kinds of post filtering processes. These post filters are applied to the reconstructed frame on the encoder side and on the decoder side so that the same reference frame is used on both the encoder side and the decoder side. The goal of this post filtering is to eliminate compression artifacts. For example, H.264 / AVC uses a deblocking filter. This filter can remove blocking artifacts due to DCT quantization and block motion compensation of residuals. In the current HEVC standard, three types of loop filter-deblocking filter, sample adaptive offset (SAO), and adaptive loop filter (ALF) are used.

도 1은 공지된 HEVC 구현예의 루프 필터링 프로세스의 단계들을 나타낸 플로우차트이다. 초기 단계(101)에서, 인코더 또는 디코더는 전체 프레임의 재구성을 발생한다. 그 다음에, 단계(102)에서, 디블록킹된 재구성(103)을 발생시키기 위해 이 제1 재구성에 디블록킹 필터가 적용된다. 디블록킹 필터의 목표는 잔차 양자화 및 블록 움직임 보상 또는 블록 인트라 예측에 의해 발생된 블록 아티팩트를 제거하는 것이다. 이들 아티팩트는 낮은 비트레이트에서 시각적으로 중요하다. 디블록킹 필터는 2개의 이웃하는 블록들의 특성에 따라 블록 경계를 매끄럽게 하는 동작을 한다. 각각의 블록의 인코딩 모드, 잔차 코딩을 위해 사용되는 양자화 파라미터들, 및 경계에서의 이웃 픽셀 차가 고려된다. 모든 프레임들에 대해 동일한 기준/분류가 적용되고, 어떤 부가의 데이터도 전송되지 않는다. 디블록킹 필터는, 블록킹 아티팩트를 제거함으로써, 현재 프레임의 시각적 품질을 향상시키고, 또한 후속 프레임들에 대한 움직임 추정 및 움직임 보상을 향상시킨다. 실제로, 블록 아티팩트의 고주파수가 제거되고, 따라서 후속 프레임들의 텍스처 잔차(texture residual)에 대해 이들 고주파수가 보상될 필요가 없다.1 is a flow chart illustrating the steps of a loop filtering process of a known HEVC implementation. In an initial step 101, the encoder or decoder generates a reconstruction of the entire frame. Then, at step 102, a deblocking filter is applied to this first reconstruction to generate a deblocked reconstruction 103. [ The goal of the deblocking filter is to remove block artifacts generated by residual quantization and block motion compensation or block intra prediction. These artifacts are visually significant at low bit rates. The deblocking filter operates to smooth the block boundary according to the characteristics of two neighboring blocks. The encoding mode of each block, the quantization parameters used for residual coding, and neighboring pixel differences at the boundary are considered. The same criterion / classification is applied for all the frames, and no additional data is transmitted. The deblocking filter improves the visual quality of the current frame by removing blocking artifacts and also improves motion estimation and motion compensation for subsequent frames. In practice, the high frequencies of the block artifacts are removed, and therefore these high frequencies need not be compensated for the texture residuals of subsequent frames.

디블록킹 필터 후에, 디블록킹된 재구성이 단계(104)에서 SAO(sample adaptive offset) 루프 필터에 의해 필터링된다. 얻어진 프레임(105)은 이어서 디스플레이되고 후속 인터 프레임들에 대한 참조 프레임으로서 사용될 재구성된 프레임(107)을 발생시키기 위해 단계(106)에서 ALF(adaptive loop filter)에 의해 필터링된다.After the deblocking filter, deblocked reconstruction is filtered by a sample adaptive offset (SAO) loop filter in step 104. The resulting frame 105 is then filtered and filtered by an adaptive loop filter (ALF) at step 106 to generate a reconstructed frame 107 that is displayed and used as a reference frame for subsequent inter frames.

SAO 루프 필터 및 ALF의 목표는 어떤 정보도 전송되지 않는 디블록킹 필터와 달리 부가의 데이터를 송신함으로써 프레임 재구성을 향상시키는 것이다.The goal of the SAO loop filter and ALF is to improve frame reconstruction by sending additional data, unlike deblocking filters where no information is transmitted.

SAO 루프 필터의 원리는 각각의 픽셀을 클래스로 분류하고 클래스의 각각의 픽셀의 각자의 픽셀 값에 동일한 오프셋 값을 부가하는 것이다. 이와 같이, 각각의 클래스에 대해 하나의 오프셋이 전송된다. SAO 루프 필터링은 프레임 영역에 대한 2가지 종류의 분류 - 에지 오프셋(edge offset) 및 대역 오프셋(band offset) - 를 제공한다.The principle of the SAO loop filter is to classify each pixel as a class and add the same offset value to each pixel value of each pixel of the class. Thus, one offset is transmitted for each class. SAO loop filtering provides two kinds of classification - edge offset and band offset - for the frame region.

에지 오프셋 분류는 각각의 픽셀의 대응하는 픽셀 값을 2개의 이웃 픽셀의 픽셀 값과 비교함으로써 각각의 픽셀에 대한 클래스를 결정하는 것을 수반한다. 더욱이, 2개의 이웃 픽셀은 2개의 이웃 픽셀의 방향을 나타내는 파라미터에 의존한다. 이들 방향은 0도(수평 방향), 45도(대각 방향), 90도(수직 방향), 및 135도(제2 대각 방향)이다. 이하에서, 이들 방향은 에지 오프셋 분류의 "유형"이라고 불리운다.The edge offset classification involves determining the class for each pixel by comparing the corresponding pixel value of each pixel with the pixel value of the two neighboring pixels. Furthermore, two neighboring pixels depend on the parameter indicating the direction of two neighboring pixels. These directions are 0 degrees (horizontal direction), 45 degrees (diagonal direction), 90 degrees (vertical direction), and 135 degrees (second diagonal direction). In the following, these directions are referred to as "types" of the edge offset classification.

제2 유형의 분류는 픽셀 값에 의존하는 대역 오프셋 분류이다. SAO 대역 오프셋에서의 클래스는 픽셀 값 범위에 대응한다. 이와 같이, 동일한 오프셋이 주어진 픽셀 값 범위 내의 픽셀 값을 가지는 모든 픽셀들에 가산된다.The second type of classification is a band offset classification that depends on pixel values. The class at the SAO band offset corresponds to a range of pixel values. Thus, the same offset is added to all pixels having pixel values within a given pixel value range.

프레임 콘텐츠에 보다 적응적이기 위해, SAO를 인코딩하는 데 쿼드-트리 구조에 기초하여 SAO 필터링을 적용하는 것이 제안되었다. 그 결과, 어떤 영역들만이 필터링되도록 쿼드 트리의 리프 노드(leaf node)에 대응하는 프레임 영역이 SAO에 의해 필터링되거나 그렇지 않을 수 있다. 더욱이, SAO가 인에이블될 때, 단지 하나의 SAO 분류 - 각각의 분류에 대해 전송되는 관련 파라미터들에 따라 에지 오프셋 또는 대역 오프셋 - 가 사용된다. 마지막으로, 각각의 SAO 리프 노드에 대해, SAO 분류는 물론 그의 파라미터 및 모든 클래스의 오프셋이 전송된다.To be more adaptive to frame content, it has been proposed to apply SAO filtering based on quad-tree structure to encode SAO. As a result, the frame region corresponding to the leaf node of the quadtree may or may not be filtered by the SAO so that only certain regions are filtered. Moreover, when SAO is enabled, only one SAO classifier - an edge offset or a band offset - is used according to the relevant parameters transmitted for each classification. Finally, for each SAO leaf node, SAO classification as well as its parameters and offsets of all classes are transmitted.

쿼드 트리의 주된 장점은 신호의 로컬 특성을 효율적으로 추종하는 것이다. 그렇지만, 이는 비트스트림에 전용 인코딩을 필요로 한다. SAO 파라미터들의 쿼드 트리 기반 인코딩을 LCU 레벨에서의 인코딩으로 대체하는 다른 해결책이 또한 예상될 수 있다.The main advantage of a quadtree is to efficiently follow the local characteristics of the signal. However, this requires dedicated encoding in the bitstream. Another solution to replace the quadtree-based encoding of the SAO parameters with the encoding at the LCU level can also be expected.

인코딩될 비디오 데이터의 영상이 샘플 값들의 2차원 어레이(색상 채널이라고도 함) 세트로서 제공될 수 있고, 그의 각각의 항목은 루마 휘도(luma brightness) 및 중성 그레이스케일 색상(neutral grayscale colour)으로부터 청색 또는 적색 쪽으로의 크로마 색상 편차(chroma colour deviation)의 척도(YUV) 또는 적색, 녹색 또는 청색 광 성분 세기의 척도(RGB) 등의 색상 성분의 세기(intensity)를 나타낸다. YUV 모델은 하나의 루마(Y) 성분 및 2개의 크로미넌스(chrominance)(UV) 성분으로 색 공간을 정의한다. 일반적으로, Y는 루마 성분(휘도)을 나타내고, U 및 V는 크로미넌스(색상) 또는 크로마 성분이다.An image of the video data to be encoded can be provided as a two-dimensional array of sample values (also referred to as a color channel), each of which has a luma brightness and a neutral gray color, Represents the intensity of a color component such as a scale of chroma color deviation toward red (YUV) or a measure of intensity of red, green or blue light component intensity (RGB). The YUV model defines a color space with one luma (Y) component and two chrominance (UV) components. Generally, Y represents the luma component (luminance), and U and V are the chrominance (chroma) component.

SAO 필터링이 통상적으로 루마 성분에 그리고 U 및 V 크로마 성분 둘 다에 독립적으로 적용된다.SAO filtering is typically applied independently to the luma component and to both the U and V chroma components.

SAO 대역 오프셋의 공지된 구현예는 픽셀 값 범위를 도 2에 도시된 것과 동일한 크기의 사전 정의된 32개의 범위로 분할한다. 픽셀 값 범위의 최소값은 시스템적으로 0이고, 최대값은 다음과 같은 관계식 Max = 2Bitdepth - 1에 따라 픽셀 값들의 비트 심도(bit-depth)에 의존한다. 예를 들어, 비트 심도가 8 비트일 때, 픽셀의 최대값은 255일 수 있다. 이와 같이, 픽셀 값 범위는 0과 255 사이이다. 이 8 비트의 비트 심도에 대해, 각각의 클래스는 16개 픽셀 값으로 된 범위를 포함한다. 더욱이, SAO 대역 오프셋에 대해, 2개의 클래스 그룹이 고려되고 있다. 제1 그룹은 도 2에 회색으로 나타낸 바와 같이 픽셀 값 범위의 중앙에 있는 16개의 연속적인 클래스를 포함한다. 제2 그룹도 역시 16개의 클래스를 포함하지만, 이들 클래스가 도 2에 해치로 나타낸 바와 같이 픽셀 값 범위의 양쪽 단부에 있다. 프레임 영역의 SAO 대역 오프셋에 대해, 분류를 위해 사용되는 그룹 및 16개의 오프셋이 비트스트림에 삽입된다.A known implementation of the SAO band offset divides the pixel value range into 32 predefined ranges of the same size as shown in Fig. The minimum value of the pixel value range is systematically 0, and the maximum value depends on the bit-depth of the pixel values according to the following relationship Max = 2 Bitdepth -1. For example, when the bit depth is 8 bits, the maximum value of the pixel may be 255. Thus, the pixel value range is between 0 and 255. For this 8 bit depth, each class includes a range of 16 pixel values. Moreover, for SAO band offsets, two class groups are being considered. The first group contains 16 consecutive classes in the middle of the pixel value range, as shown in gray in Fig. The second group also includes 16 classes, but these classes are at both ends of the pixel value range as indicated by the hatch in Fig. For the SAO band offset of the frame region, the group used for classification and 16 offsets are inserted into the bitstream.

도 3은 현재 프레임 영역(303)에 대해 인코더에서 오프셋을 선택하는 방법의 단계들을 나타낸 플로우차트이다. 프레임 영역은 N개의 픽셀을 포함하고 있다. 초기 단계(301)에서, 변수 Sumj 및 SumNbPiXj는 16개의 범위 각각에 대해 0의 값으로 설정된다. j는 현재 범위 또는 클래스 번호를 나타낸다. Sumj는 범위 j에서의 픽셀들의 값과 그의 대응하는 원래의 픽셀들의 값 사이의 차의 합이다. SumNbPiXj는 범위 j 내의 픽셀들의 수를 나타낸다.3 is a flow chart illustrating steps of a method for selecting an offset in an encoder for a current frame region 303. FIG. The frame region contains N pixels. In an initial step 301, the variables Sum j and SumNbPiX j are set to a value of 0 for each of the 16 ranges. j represents the current range or class number. Sum j is the sum of the differences between the values of the pixels in the range j and the values of its corresponding original pixels. SumNbPiX j represents the number of pixels in the range j.

단계(302)에서, 카운터 변수 i는 값 0으로 설정된다. 그 다음에, 단계(304)에서 프레임 영역(303)의 제1 픽셀이 추출된다. 처리되고 있는 현재 SAO 그룹(도 2에 나타낸 바와 같이 제1 또는 제2)이 알려져 있는 것으로 가정된다. 단계(305)에서 픽셀 값 Pi가 현재 SAO 그룹에 있지 않은 것으로 판정되는 경우, 프레임 영역(303)의 후속 픽셀들을 분류하기 위해 단계(308)에서 카운터 변수 i의 값이 증가된다. 그렇지 않고 단계(305)에서 픽셀 값 Pi가 현재 SAO 그룹에 있는 것으로 판정되는 경우, 단계(306)에서 Pi의 값에 대응하는 범위 번호(또는 클래스 번호) j가 발견된다. 후속 단계(307)에서, 대응하는 SumNbPiXj 변수가 증가되고, Pi와 그의 원래의 값

Figure pct00001
사이의 차가 Sumj에 가산된다. 그 다음 단계에서, 프레임 영역(303)의 다른 픽셀들에 분류를 적용하기 위해 카운터 변수 i가 증가된다. 단계(309)에서, 프레임 영역(303)의 N개의 픽셀들 모두가 분류되었는지(즉, i≥=N인지) 여부가 판정되고, 예인 경우, 오프셋 선택 알고리즘의 최종 결과로서 각각의 클래스 j에 대한 오프셋을 제공하는 오프셋 테이블(311)을 생성하기 위해 단계(310)에서 각각의 클래스에 대한 Offsetj가 계산된다. 이 오프셋은 클래스 j의 픽셀의 픽셀 값과 그 각자의 원래의 픽셀 값 사이의 차의 평균으로서 계산된다. 클래스 j에 대한 Offsetj는 이하의 식에 의해 주어진다:In step 302, the counter variable i is set to a value of zero. Then, at step 304, the first pixel of the frame area 303 is extracted. It is assumed that the current SAO group being processed (first or second as shown in FIG. 2) is known. If it is determined in step 305 that the pixel value P i is not in the current SAO group, the value of the counter variable i is incremented in step 308 to classify subsequent pixels of the frame area 303. Otherwise, if it is determined in step 305 that the pixel value P i is in the current SAO group, then in step 306, a range number (or class number) j corresponding to the value of P i is found. In a subsequent step 307, the corresponding SumNbPiX j variable is incremented, and P i and its original value
Figure pct00001
Is added to Sum j . In the next step, the counter variable i is incremented to apply the classification to other pixels in the frame region 303. [ At step 309, it is determined whether all of the N pixels of the frame region 303 have been classified (i.e., whether i? = N), and if yes, as the final result of the offset selection algorithm, Offset j for each class is calculated at step 310 to generate an offset table 311 that provides an offset. This offset is calculated as the average of the differences between the pixel values of the pixels of class j and their respective original pixel values. Offset j for class j is given by the following equation:

Figure pct00002
Figure pct00002

도 4는 SAO 대역 오프셋을 대응하는 클래스 그룹에 적용하는 디코딩 프로세스의 단계들을 나타낸 플로우차트이다. 후속 프레임의 움직임 추정 및 보상을 위해 사용되는 참조 프레임을 생성하기 위해 이 프로세스가 또한 인코더측에서 적용될 수 있다.4 is a flow chart illustrating the steps of a decoding process for applying a SAO band offset to a corresponding class group. This process can also be applied at the encoder side to generate reference frames that are used for motion estimation and compensation of subsequent frames.

프로세스의 초기 단계(401)는 오프셋 테이블(402)을 생성하기 위해 각각의 클래스의 픽셀 값들에 대한 오프셋 값들을 디코딩하는 것을 수반한다. 인코더측에서, 오프셋 테이블(402)은 도 3에 도시된 선택 알고리즘의 결과이다. 이와 같이, 인코더측에서, 단계(401)는 도 3의 오프셋 선택 알고리즘으로 대체된다.The initial step 401 of the process entails decoding the offset values for the pixel values of each class to produce the offset table 402. [ On the encoder side, the offset table 402 is the result of the selection algorithm shown in FIG. As such, on the encoder side, step 401 is replaced by the offset selection algorithm of Fig.

단계(403)에서, 카운터 변수 i가 0으로 설정된다. 단계(405)에서, 픽셀 Pi가 N개의 픽셀을 포함하는 프레임 영역(404)으로부터 추출된다. 단계(406)에서, 픽셀 Pi가 현재 클래스 그룹에 속하는지가 판정된다. 픽셀 Pi가 현재 클래스 그룹에 속하는 것으로 판정되는 경우, 관련 클래스 번호 j가 식별되고, 단계(409)에서, 관련 오프셋 값 Offsetj가 오프셋 테이블(402)로부터 추출된다. 단계(411)에서 필터링된 픽셀 값 P'i를 생성하기 위해, 단계(410)에서, 추출된 오프셋 값 Offsetj가 이어서 Pi의 픽셀 값에 가산된다. 단계(412)에서, 대응하는 픽셀에서, 필터링된 픽셀 값이 이어서 필터링된 프레임 영역(415)에 삽입된다.In step 403, the counter variable i is set to zero. At step 405, a pixel P i is extracted from a frame area 404 containing N pixels. In step 406, it is determined if pixel P i belongs to the current class group. If the pixel P i is determined to belong to the current class group, the associated class number j is identified and at step 409 the associated offset value Offset j is extracted from the offset table 402. In step 410, the extracted offset value Offset j is then added to the pixel value of P i to generate the filtered pixel value P ' i in step 411. At step 412, at the corresponding pixel, the filtered pixel value is then inserted into the filtered frame area 415. [

단계(406)에서, 픽셀 Pi가 SAO 대역 오프셋 그룹에 있지 않은 경우, 단계(412)에서 필터링 없이 Pi의 픽셀 값이 필터링된 프레임 영역(415)에 넣어진다. 단계(412) 후에, 필요한 경우, 현재 프레임 영역(404)의 후속 픽셀들을 필터링하기 위해 카운터 변수 i가 증가된다. 단계(414)에서, 프레임 영역의 N개의 픽셀 전부가 처리된 것으로(즉, i≥=N인 것으로) 판정된 후에, 필터링된 프레임 영역(415)이 재구성되고, SAO 재구성된 프레임[도 1의 프레임(105) 참조]에 부가될 수 있다.In step 406, if pixel P i is not in the SAO band offset group, then in step 412 the pixel value of P i is filtered into the filtered frame area 415. After step 412, the counter variable i is incremented, if necessary, to filter subsequent pixels of the current frame area 404. After the determination at step 414 that all N pixels of the frame region have been processed (i. E., = N), the filtered frame region 415 is reconstructed and the SAO reconstructed frame (See frame 105).

공지된 보상 선택 프로세스의 단점은 상이한 영상 픽셀 콘텐츠 변동들에 그리고 상이한 유형의 영상 픽셀 성분에 적응되지 않는다는 것이다.A disadvantage of the known compensation selection process is that it does not adapt to different image pixel content variations and to different types of image pixel components.

이상의 문제점들 중 하나 이상을 해결하기 위해 본 발명이 안출되었다.The present invention has been made in order to solve one or more of the above problems.

본 발명의 제1 측면에 따르면, 영상의 재구성된 샘플 세트에 대한 보상 오프셋들을 제공하는 방법이 제공되고, 각각의 샘플은 샘플 값을 가지며, 이 방법은,According to a first aspect of the present invention there is provided a method of providing compensation offsets for a reconstructed set of samples of an image, each sample having a sample value,

레이트 왜곡 기준(rate distortion criterion)에 기초하여, 복수의 사전 결정된 분류들 중에서 분류를 선택하는 단계 - 각각의 상기 사전 결정된 분류는 샘플 값의 전체 범위보다 작은 분류 범위(classification range)를 가지며 복수의 클래스들로 이루어져 있고, 각각의 클래스는 상기 분류 범위 내에서의 샘플 값의 범위를 정의하고, 샘플의 샘플 값이 관련 클래스의 범위 내에 있는 경우 샘플이 그 클래스 내에 배치됨 -; 및Selecting a classification from among a plurality of predetermined classifications based on a rate distortion criterion, each of the predetermined classifications having a classification range that is less than the entire range of sample values, Wherein each class defines a range of sample values within the classification range and wherein a sample is placed in the class if the sample value of the sample is within the range of the associated class; And

관련 클래스의 각각의 샘플의 샘플 값에 적용하기 위한 보상 오프셋을 선택된 분류의 각각의 클래스와 연관시키는 단계를 포함한다.And associating a compensation offset for applying to the sample value of each sample of the associated class with each class of the selected classification.

본 발명의 제2 측면에 따르면, 복수의 샘플들로 이루어져 있는 영상을 인코딩하는 방법이 제공되고, 이 방법은,According to a second aspect of the present invention, there is provided a method of encoding an image consisting of a plurality of samples,

샘플들을 인코딩하는 단계;Encoding the samples;

재구성된 샘플들을 제공하기 위해 인코딩된 샘플들을 디코딩하는 단계;Decoding the encoded samples to provide reconstructed samples;

재구성된 샘플들에 대해 루프 필터링을 수행하는 단계 - 루프 필터링은 각자의 재구성된 샘플들의 샘플 값들에 보상 오프셋들을 적용하는 것을 포함하고, 각각의 보상 오프셋은 샘플 값의 범위와 연관되어 있으며, 보상 오프셋들은 본 발명의 전술한 제1 측면을 구현하는 방법에 따라 제공됨 -; 및Performing loop filtering on reconstructed samples, wherein the loop filtering comprises applying compensation offsets to sample values of respective reconstructed samples, each compensation offset being associated with a range of sample values, Are provided according to a method for implementing the first aspect of the present invention; And

인코딩된 샘플들의 비트스트림을 발생시키는 단계를 포함한다.And generating a bit stream of encoded samples.

본 발명의 제3 측면에 따르면, 복수의 샘플들로 이루어져 있는 영상을 인코딩하는 방법이 제공되고, 각각의 샘플은 샘플 값을 가지며, 이 방법은,According to a third aspect of the present invention, there is provided a method of encoding an image comprising a plurality of samples, each sample having a sample value,

인코딩된 샘플 값들을 수신하는 단계;Receiving the encoded sample values;

인코딩된 분류 데이터를 수신하는 단계;Receiving encoded classification data;

인코딩된 보상 오프셋들을 수신하는 단계;Receiving encoded compensated offsets;

분류 데이터를 디코딩하고, 디코딩된 분류 데이터에 기초하여, 복수의 사전 결정된 분류들 중에서 분류를 선택하는 단계 - 각각의 상기 사전 결정된 분류는 샘플 값의 전체 범위보다 작은 분류 범위(classification range)를 가지며 복수의 클래스들로 이루어져 있고, 각각의 클래스는 상기 분류 범위 내에서의 샘플 값의 범위를 정의하고, 샘플의 샘플 값이 관련 클래스의 범위 내에 있는 경우 샘플이 그 클래스 내에 배치됨 -;Decoding the classification data and selecting a classification from among a plurality of predetermined classifications based on the decoded classification data, each of the predetermined classifications having a classification range that is smaller than the entire range of sample values, Wherein each class defines a range of sample values within the classification range and a sample is placed in the class if the sample value of the sample is within the range of the associated class;

재구성된 샘플 값들을 제공하기 위해 인코딩된 샘플들을 디코딩하고 인코딩된 보상 오프셋들을 디코딩하는 단계;Decoding the encoded samples and decoding the encoded compensation offsets to provide reconstructed sample values;

디코딩된 보상 오프셋들을 선택된 분류의 클래스들과, 각각, 연관시키는 단계; 및Associating the decoded compensation offsets with the classes of the selected class, respectively; And

재구성된 샘플 값들에 대해 루프 필터링을 수행하는 단계 - 루프 필터링은 선택된 분류의 각각의 클래스와 연관되어 있는 디코딩된 보상 오프셋을 관련 클래스의 범위 내의 재구성된 샘플 값들에 적용하는 것을 포함함 - 를 포함한다.Performing loop filtering on the reconstructed sample values, wherein the loop filtering includes applying a decoded compensation offset associated with each class of the selected class to the reconstructed sample values in the range of the class of interest .

본 발명의 제4 측면에 따르면, 비디오 비트스트림에 의해 표현되는 영상에 대한 정보 데이터 세트(information dataset)를 전달하는 신호가 제공되고, 영상은 재구성가능 샘플 세트를 포함하며, 각각의 재구성가능 샘플은 샘플 값을 갖고, 정보 데이터 세트는 복수의 사전 결정된 분류들 중에서 인코더에 의해 선택된 분류에 관한 분류 데이터를 포함하며, 각각의 상기 사전 결정된 분류는 샘플 값의 전체 범위보다 작은 분류 범위를 갖고 복수의 클래스들로 이루어져 있으며, 각각의 클래스는 상기 분류 범위 내의 샘플 값의 범위를 정의하고, 샘플의 샘플 값이 관련 클래스의 범위 내에 있는 경우 샘플이 그 클래스 내에 배치되며, 선택된 분류의 복수의 클래스들의 각각의 클래스는 관련 클래스의 범위 내의 재구성가능 샘플들의 샘플 값들에 적용하기 위한 보상 오프셋과 연관되어 있다.According to a fourth aspect of the present invention there is provided a signal carrying an information dataset for an image represented by a video bitstream, the image comprising a set of reconfigurable samples, Sample value, wherein the information data set includes classification data relating to a classification selected by the encoder from among a plurality of predetermined classifications, each of the predetermined classifications having a classification range smaller than the entire range of sample values, Each class defining a range of sample values within the classification range, and if the sample value of the sample is within the range of the associated class, the sample is placed in the class, and each of the plurality of classes of the selected classification The class is a boolean to apply to the sample values of the reconfigurable samples within the scope of the associated class. It is associated with an offset.

본 발명의 제5 측면에 따르면, 영상의 재구성된 샘플 세트에 대한 보상 오프셋들을 제공하는 장치가 제공되고, 각각의 샘플은 샘플 값을 가지며, 이 장치는,According to a fifth aspect of the present invention there is provided an apparatus for providing compensation offsets for a reconstructed sample set of images, each sample having a sample value,

레이트 왜곡 기준에 기초하여, 복수의 사전 결정된 분류들 중에서 분류를 선택하는 수단 - 각각의 상기 사전 결정된 분류는 샘플 값의 전체 범위보다 작은 분류 범위를 가지며 복수의 클래스들로 이루어져 있고, 각각의 클래스는 상기 분류 범위 내에서의 샘플 값의 범위를 정의하고, 샘플 값이 관련 클래스의 범위 내에 있는 경우 샘플이 그 클래스 내에 배치됨 -; 및Means for selecting a classification from among a plurality of predetermined classifications based on a rate distortion criterion, each said predetermined class having a classification range smaller than the entire range of sample values and comprising a plurality of classes, Define a range of sample values within the classification range, and if the sample value is within the range of an associated class, a sample is placed in the class; And

관련 클래스의 각각의 샘플의 샘플 값에 적용하기 위한 보상 오프셋을 선택된 분류의 각각의 클래스와 연관시키는 수단을 포함한다.And means for associating a compensation offset for applying to the sample value of each sample of the associated class with each class of the selected classification.

본 발명의 제6 측면에 따르면, 복수의 샘플들로 이루어져 있는 영상을 인코딩하는 인코딩 장치가 제공되고, 이 장치는,According to a sixth aspect of the present invention, there is provided an encoding apparatus for encoding an image composed of a plurality of samples,

샘플들을 인코딩하는 인코더;An encoder for encoding samples;

재구성된 샘플들을 제공하기 위해 인코딩된 샘플들을 디코딩하는 디코더;A decoder for decoding the encoded samples to provide reconstructed samples;

재구성된 샘플들을 필터링하는 루프 필터 - 루프 필터링 수단은 각자의 재구성된 샘플들의 샘플 값들에 보상 오프셋들을 적용하는 오프셋 적용 수단을 포함하고, 각각의 보상 오프셋은 샘플 값의 범위와 연관되어 있으며, 보상 오프셋들은 본 발명의 전술한 제5 측면을 구현하는 장치에 의해 제공됨 -; 및Loop filter-loop filtering means for filtering reconstructed samples comprises offset applying means for applying compensation offsets to sample values of respective reconstructed samples, each compensation offset being associated with a range of sample values, Are provided by an apparatus embodying the aforementioned fifth aspect of the present invention; And

인코딩된 샘플들의 비트스트림을 발생시키는 비트스트림 발생기를 포함한다.And a bitstream generator for generating a bitstream of encoded samples.

본 발명의 제7 측면에 따르면, 복수의 샘플들로 이루어져 있는 영상을 디코딩하는 장치가 제공되고, 각각의 샘플은 샘플 값을 가지며, 이 장치는,According to a seventh aspect of the present invention, there is provided an apparatus for decoding an image comprising a plurality of samples, each sample having a sample value,

인코딩된 샘플 값들을 수신하는 수단;Means for receiving encoded sample values;

인코딩된 분류 데이터를 수신하는 수단;Means for receiving encoded classification data;

인코딩된 보상 오프셋들을 수신하는 수단;Means for receiving encoded compensated offsets;

분류 데이터를 디코딩하고, 디코딩된 분류 데이터에 기초하여, 복수의 사전 결정된 분류들 중에서 분류를 선택하는 수단 - 각각의 상기 사전 결정된 분류는 샘플 값의 전체 범위보다 작은 분류 범위를 가지며 복수의 클래스들로 이루어져 있고, 각각의 클래스는 상기 분류 범위 내에서의 샘플 값의 범위를 정의하고, 샘플의 샘플 값이 관련 클래스의 범위 내에 있는 경우 샘플이 그 클래스 내에 배치됨 -;Means for decoding the classification data and selecting a classification from among a plurality of predetermined classifications based on the decoded classification data, each of the predetermined classifications having a classification range smaller than the entire range of sample values, Wherein each class defines a range of sample values within the classification range and wherein a sample is placed in the class if the sample value of the sample is within the range of the associated class;

재구성된 샘플 값들을 제공하기 위해 인코딩된 샘플들을 디코딩하고 인코딩된 보상 오프셋들을 디코딩하는 수단;Means for decoding encoded samples and decoding encoded compensated offsets to provide reconstructed sample values;

디코딩된 보상 오프셋들을 선택된 분류의 클래스들과, 각각, 연관시키는 수단; 및Means for associating decoded compensation offsets with classes of a selected class, respectively; And

재구성된 샘플 값들에 대해 루프 필터링을 수행하는 수단 - 루프 필터링은 선택된 분류의 각각의 클래스와 연관되어 있는 디코딩된 보상 오프셋을 관련 클래스의 범위 내의 재구성된 샘플 값들에 적용하는 것을 포함함 - 을 포함한다.Wherein the means for performing loop filtering on reconstructed sample values comprises applying a decoded compensation offset associated with each class of the selected class to the reconstructed sample values within the range of the class of interest .

본 발명의 제8 측면은 복수의 샘플들로 이루어져 있는 영상을 디코딩하는 방법을 제공하고, 각각의 샘플은 샘플 값을 가지며, 이 방법은,An eighth aspect of the present invention provides a method of decoding an image comprising a plurality of samples, each sample having a sample value,

인코딩된 샘플 값들을 수신하는 단계;Receiving the encoded sample values;

복수의 사전 결정된 분류들 중에서 인코더에 의해 선택된 분류에 관한 인코딩된 분류 데이터를 수신하는 단계 - 각각의 상기 사전 결정된 분류는 샘플 값의 전체 범위보다 작은 분류 범위(classification range)를 가지며 복수의 클래스들로 이루어져 있고, 각각의 클래스는 상기 분류 범위 내에서의 샘플 값의 범위를 정의하고, 샘플 값이 관련 클래스의 범위 내에 있는 경우 샘플이 그 클래스 내에 배치됨 -;Receiving encoded classification data on a classification selected by an encoder from among a plurality of predetermined classifications, each of the predetermined classifications having a classification range that is less than the entire range of sample values, Wherein each class defines a range of sample values within the classification range, and wherein a sample is placed in the class if the sample value is within the range of the associated class;

선택된 분류의 클래스들과, 각각, 연관되어 있는 인코딩된 보상 오프셋들을 수신하는 단계;Receiving encoded compensated offsets, each associated with classes of the selected class;

재구성된 샘플 값들을 제공하기 위해 인코딩된 샘플 값들을 디코딩하고 인코딩된 분류 데이터 및 보상 오프셋들을 디코딩하는 단계; 및Decoding the encoded sample values to provide reconstructed sample values, and decoding the encoded classification data and compensation offsets; And

재구성된 샘플 값들에 대해 루프 필터링을 수행하는 단계 - 루프 필터링은 선택된 분류의 각각의 클래스와 연관되어 있는 디코딩된 보상 오프셋을 관련 클래스의 범위 내의 재구성된 샘플 값들에 적용하는 것을 포함함 - 를 포함한다.Performing loop filtering on the reconstructed sample values, wherein the loop filtering includes applying a decoded compensation offset associated with each class of the selected class to the reconstructed sample values in the range of the class of interest .

인코더는 레이트 왜곡 기준에 기초하는 것 또는 샘플 값들의 통계적 분포의 특성들에 의존하는 것을 비롯하여 임의의 적당한 방식으로 분류를 선택할 수 있다.The encoder may select the classification in any suitable manner, including depending on the rate distortion criterion or on the properties of the statistical distribution of the sample values.

본 발명과 관련하여, 샘플은 단일 픽셀에 대응할 수 있고, 샘플 값은 각자의 픽셀 값에 대응할 수 있다. 다른 대안으로서, 샘플은 복수의 픽셀들을 포함할 수 있고, 샘플 값은 복수의 픽셀들의 픽셀 값들로부터 결정되는 픽셀 값에 대응할 수 있다.In the context of the present invention, a sample may correspond to a single pixel, and a sample value may correspond to a respective pixel value. Alternatively, the sample may comprise a plurality of pixels, and the sample value may correspond to a pixel value determined from the pixel values of the plurality of pixels.

본 발명에 따른 방법들 중 적어도 일부는 컴퓨터로 구현될 수 있다. 그에 따라, 본 발명은 하드웨어로만 된 실시예, 소프트웨어로만 된 실시예(펌웨어, 상주 소프트웨어, 마이크로 코드 등을 포함함), 또는 소프트웨어와 하드웨어 측면을 겸비한 실시예의 형태를 취할 수 있고, 이들 모두가 일반적으로 본 명세서에서 "회로", "모듈", 또는 "시스템"으로 지칭되어 있을 수 있다. 게다가, 본 발명은 컴퓨터 사용가능 프로그램 코드가 실시되어 있는 임의의 유형의(tangible) 표현 매체로 구현되어 있는 컴퓨터 프로그램 제품의 형태를 취할 수 있다.At least some of the methods according to the present invention may be implemented in a computer. Accordingly, the present invention may take the form of a hardware only embodiment, a software only embodiment (including firmware, resident software, microcode, etc.), or an embodiment with both software and hardware aspects, May be referred to herein as a "circuit "," module ", or "system ". In addition, the invention may take the form of a computer program product embodied in any type of tangible medium of representation in which computer usable program code is embodied.

본 발명이 소프트웨어로 구현될 수 있기 때문에, 본 발명은 프로그램가능 장치 또는 임의의 적당한 전달 매체(carrier medium)에 프로비저닝하기 위한 컴퓨터 판독가능 코드로 실시될 수 있다. 유형의 전달 매체는 플로피 디스크, CD-ROM, 하드 디스크 드라이브, 자기 테이프 장치 또는 고상 메모리 장치 등과 같은 저장 매체를 포함할 수 있다. 일시적 전달 매체(transient carrier medium)는 전기 신호, 전자 신호, 광학 신호, 음향 신호, 자기 신호, 또는 전자기 신호(예컨대, 마이크로파 또는 RF 신호) 등의 신호를 포함할 수 있다.As the present invention may be implemented in software, the present invention may be embodied in a computer readable code for provisioning in a programmable device or any suitable carrier medium. Type of transmission medium may include storage media such as floppy disks, CD-ROMs, hard disk drives, magnetic tape devices or solid state memory devices, and the like. The transient carrier medium may include signals such as electrical signals, electronic signals, optical signals, acoustic signals, magnetic signals, or electromagnetic signals (e.g., microwave or RF signals).

이와 같이, 본 발명의 제9 측면에 따르면, 프로그램가능 장치에 대한 컴퓨터 프로그램 제품이 제공되고, 컴퓨터 프로그램 제품은 프로그램가능 장치에 로드되어 실행될 때 전술한 제1 측면, 제2 측면, 제3 측면, 및 제8 측면 중 임의의 측면을 실시하는 방법을 구현하는 명령어 시퀀스를 포함한다.Thus, in accordance with a ninth aspect of the present invention, there is provided a computer program product for a programmable apparatus, the computer program product comprising program code executable on a first, second, third, And a sequence of instructions implementing a method of implementing any of the eighth aspects.

본 발명의 제10 측면에 따르면, 전술한 제1 측면, 제2 측면, 제3 측면 및 제8 측면 중 임의의 측면을 실시하는 방법을 구현하는 컴퓨터 프로그램의 명령어들을 저장하는 컴퓨터 판독가능 저장 매체가 제공된다.According to a tenth aspect of the present invention there is provided a computer readable storage medium storing instructions for a computer program embodying a method for implementing any of the first, second, third and eighth aspects described above / RTI >

이하의 도면들을 참조하여, 단지 예로서, 본 발명의 실시예들이 이제부터 기술될 것이다.
도 1은 종래 기술의 루프 필터링 프로세스의 단계들을 나타낸 플로우차트.
도 2는 종래 기술의 HEVC 프로세스의 샘플 적응적 대역 오프셋 분류를 그래픽으로 나타낸 도면.
도 3은 HEVC의 SAO 대역 오프셋에 대한 보상 오프셋을 결정하는 프로세스의 단계들을 나타낸 플로우차트.
도 4는 HEVC의 SAO 대역 오프셋 필터링 프로세스의 단계들을 나타낸 플로우차트.
도 5는 본 발명의 하나 이상의 실시예들이 구현될 수 있는 데이터 통신 시스템을 개략적으로 나타낸 블록도.
도 6은 본 발명의 하나 이상의 실시예들이 구현될 수 있는 처리 장치의 구성요소들을 나타낸 블록도.
도 7은 본 발명의 실시예들에 따른 인코딩 방법의 단계들을 나타낸 플로우차트.
도 8은 본 발명의 하나 이상의 실시예들에 따른 루프 필터링 프로세스의 단계들을 나타낸 플로우차트.
도 9는 본 발명의 실시예들에 따른 디코딩 방법의 단계들을 나타낸 플로우차트.
도 10은 본 발명의 제1 실시예에 따른, SAO 대역 오프셋 분류를 결정하는 방법의 단계들을 나타낸 플로우차트.
도 11은 본 발명의 일 실시예에 따른, 적응된 분류(adapted classification)를 결정하는 방법의 단계들을 나타낸 플로우차트.
도 12는 본 발명의 대안의 실시예에 따른, 적응된 분류를 결정하는 방법의 단계들을 나타낸 플로우차트.
도 13은 본 발명의 일 실시예에 따른, 분류를 위한 유효 범위의 몇개의 크기들을 나타낸 도면.
도 14는 본 발명의 일 실시예에 따른, 분류를 위한 클래스들의 몇개의 크기들을 나타낸 도면.
도 15는 본 발명의 일 실시예에 따른, 분류를 위한 유효 범위에서의 클래스들의 몇개의 크기들을 나타낸 도면.
도 16은 본 발명의 일 실시예에 따른, 분류를 위한 제1 그룹의 유효 범위의 몇개의 중앙 위치들을 나타낸 도면.
도 17은 본 발명의 일 실시예에 따른, 분류를 위한 제2 그룹의 유효 범위의 몇개의 중앙 위치들을 나타낸 도면.
도 18은 본 발명의 일 실시예에 따른, 파라미터 분류의 레이트 왜곡 선택(rate distortion selection)을 나타낸 도면.
도 19a 및 도 19b는 본 발명의 다른 실시예에 따른, 전체 범위 내에서의 유효 범위의 가능한 위치들을 나타낸 도면.
도 20a는 LCU 레벨에서 SAO 파라미터들을 인코딩하는 종래 기술에서 적용되는 의사 코드를 나타낸 도면.
도 20b는 LCU 레벨에서 SAO 파라미터들을 인코딩하는 본 발명의 일 실시예에 따른 개선된 의사 코드를 나타낸 도면.
도 21은 도 20a의 의사 코드에 대응하는 플로우차트.
도 22는 도 20b의 의사 코드에 대응하는 플로우차트.
도 23은 본 발명의 추가의 실시예에 따른, SAO 파라미터들의 인코딩을 설명하는 데 사용하기 위한 플로우차트.
도 24는 본 발명의 또 다른 실시예에 따른, SAO 파라미터들을 인코딩하는 데 사용되는 의사 코드를 나타낸 도면.
도 25는 도 24의 의사 코드에 대응하는 플로우차트.
도 26은 본 발명의 다른 추가의 실시예에 따른, SAO 파라미터들의 인코딩을 설명하는 데 사용하기 위한 플로우차트.
With reference to the following drawings, and by way of example only, embodiments of the present invention will now be described.
1 is a flow chart illustrating steps of a prior art loop filtering process;
Figure 2 graphically illustrates a sample adaptive band offset classification of a prior art HEVC process;
3 is a flow chart illustrating the steps of a process for determining a compensation offset for an SAV band offset of an HEVC;
4 is a flow chart illustrating the steps of the HEVC SAO band offset filtering process;
5 is a block diagram that schematically illustrates a data communication system in which one or more embodiments of the present invention may be implemented;
6 is a block diagram illustrating components of a processing apparatus in which one or more embodiments of the present invention may be implemented;
7 is a flow chart illustrating the steps of an encoding method according to embodiments of the present invention.
8 is a flowchart illustrating steps in a loop filtering process in accordance with one or more embodiments of the present invention.
9 is a flowchart illustrating steps of a decoding method according to embodiments of the present invention.
10 is a flow chart illustrating steps of a method for determining an SAO band offset classification, in accordance with a first embodiment of the present invention.
11 is a flow chart illustrating steps of a method for determining an adapted classification, in accordance with an embodiment of the present invention.
Figure 12 is a flowchart illustrating steps of a method for determining an adapted classification, in accordance with an alternative embodiment of the present invention.
Figure 13 illustrates some of the dimensions of the validity range for classification, in accordance with an embodiment of the present invention.
Figure 14 illustrates several sizes of classes for classification, in accordance with an embodiment of the present invention.
15 is a diagram illustrating some of the sizes of classes in an effective range for classification according to an embodiment of the present invention.
Figure 16 illustrates several central positions of a first group of valid ranges for classification, according to one embodiment of the present invention.
Figure 17 illustrates several central positions of a second group of valid ranges for classification, according to an embodiment of the present invention.
Figure 18 shows a rate distortion selection of a parameter classification, in accordance with an embodiment of the present invention.
Figures 19A and 19B illustrate possible positions of an effective range within the full range, according to another embodiment of the present invention.
20A illustrates pseudo code applied in the prior art for encoding SAO parameters at the LCU level;
Figure 20B illustrates an improved pseudo code according to an embodiment of the present invention for encoding SAO parameters at the LCU level.
FIG. 21 is a flowchart corresponding to the pseudo code of FIG. 20A. FIG.
FIG. 22 is a flowchart corresponding to the pseudo code of FIG. 20B. FIG.
23 is a flowchart for use in describing the encoding of SAO parameters, in accordance with a further embodiment of the present invention.
24 illustrates pseudo code used to encode SAO parameters, in accordance with another embodiment of the present invention.
25 is a flowchart corresponding to the pseudo code shown in Fig.
26 is a flowchart for use in describing the encoding of SAO parameters, in accordance with another additional embodiment of the present invention.

도 5는 본 발명의 하나 이상의 실시예들이 구현될 수 있는 데이터 통신 시스템을 나타낸 것이다. 데이터 통신 시스템은 데이터 통신 네트워크(500)를 통해 데이터 스트림의 데이터 패킷들을 수신 장치[이 경우에, 클라이언트 단말(502)]로 전송하는 동작을 하는 전송 장치[이 경우에, 서버(501)]를 포함하고 있다. 데이터 통신 네트워크(500)는 WAN(Wide Area Network) 또는 LAN(Wide Area Network)일 수 있다. 이러한 네트워크는, 예를 들어, 무선 네트워크(WiFi / 802.11a 또는 b 또는 g), 이더넷 네트워크, 인터넷 네트워크, 또는 몇개의 상이한 네트워크들로 이루어진 혼합 네트워크일 수 있다. 본 발명의 특정의 실시예에서, 데이터 통신 시스템은 서버(501)가 동일한 데이터 콘텐츠를 다수의 클라이언트들로 송신하는 디지털 텔레비전 방송 시스템일 수 있다.5 illustrates a data communication system in which one or more embodiments of the present invention may be implemented. The data communication system includes a transmitting device (in this case, server 501) that is operative to transmit data packets of a data stream over a data communication network 500 to a receiving device (in this case, the client terminal 502) . The data communication network 500 may be a wide area network (WAN) or a wide area network (LAN). Such a network may be, for example, a wireless network (WiFi / 802.11a or b or g), an Ethernet network, an internet network, or a mixed network of several different networks. In a particular embodiment of the present invention, the data communication system may be a digital television broadcasting system in which the server 501 transmits the same data content to a plurality of clients.

서버(501)에 의해 제공되는 데이터 스트림(504)은 비디오 및 오디오 데이터를 나타내는 멀티미디어 데이터로 이루어져 있을 수 있다. 본 발명의 어떤 실시예들에서, 오디오 및 비디오 데이터 스트림은, 각각, 마이크 및 카메라를 사용하여 서버(501)에 의해 포착될 수 있다. 어떤 실시예들에서, 데이터 스트림은 다른 데이터 제공자로부터 서버(501)에 저장되거나 서버(501)에 의해 수신될 수 있거나, 또는 서버(501)에서 발생될 수 있다. 서버(501)는 특히 인코더에 입력으로서 제시되는 데이터의 보다 콤팩트한 표현인 전송을 위한 압축된 비트스트림을 제공하기 위해 비디오 및 오디오 스트림을 인코딩하는 인코더를 구비하고 있다.The data stream 504 provided by the server 501 may comprise multimedia data representing video and audio data. In some embodiments of the invention, the audio and video data streams may be captured by the server 501 using a microphone and a camera, respectively. In some embodiments, the data stream may be stored in server 501, received by server 501, or generated at server 501 from another data provider. The server 501 has an encoder that encodes the video and audio streams to provide a compressed bitstream for transmission, in particular a more compact representation of the data presented as input to the encoder.

전송된 데이터의 품질 대 전송된 데이터의 양에 대한 보다 나은 비를 획득하기 위해, 비디오 데이터의 압축은, 예를 들어, HEVC 형식 또는 H.264/AVC 형식을 따를 수 있다.In order to obtain a better ratio of the quality of the transmitted data to the amount of transmitted data, the compression of the video data may, for example, follow the HEVC format or the H.264 / AVC format.

클라이언트(502)는 전송된 비트스트림을 수신하고, 디스플레이 장치 상에서 비디오 영상을 그리고 스피커에 의해 오디오 데이터를 재생하기 위해 재구성된 비트스트림을 디코딩한다.The client 502 receives the transmitted bit stream, decodes the reconstructed bit stream to reproduce the video image on the display device and the audio data by the speaker.

도 5의 예에서 스트리밍 시나리오가 고려되고 있지만, 본 발명의 어떤 실시예들에서, 인코더와 디코더 사이의 데이터 통신이, 예를 들어, 광 디스크 등의 미디어 저장 장치를 사용하여 수행될 수 있다는 것을 잘 알 것이다.While the streaming scenario is contemplated in the example of FIG. 5, it should be noted that in some embodiments of the present invention, the data communication between the encoder and the decoder may be performed using a media storage device, I will know.

본 발명의 하나 이상의 실시예들에서, 비디오 영상이 최종 영상에 필터링된 픽셀들을 제공하기 위해 영상의 재구성된 픽셀들에 적용하기 위한 보상 오프셋들을 나타내는 데이터와 함께 전송된다.In one or more embodiments of the present invention, a video image is transmitted with data representing compensation offsets for applying to the reconstructed pixels of the image to provide filtered pixels to the final image.

도 6은 본 발명의 적어도 하나의 실시예를 구현하도록 구성되어 있는 처리 장치(600)를 개략적으로 나타낸 것이다. 처리 장치(600)는 마이크로컴퓨터, 워크스테이션, 또는 경량 휴대용 장치 등의 장치일 수 있다. 장치(600)는 다음과 같은 것들에 연결되어 있는 통신 버스(613)를 포함하고 있다:Figure 6 schematically depicts a processing device 600 configured to implement at least one embodiment of the present invention. The processing device 600 may be a device such as a microcomputer, a workstation, or a lightweight portable device. Apparatus 600 includes a communications bus 613 coupled to:

- CPU로 표시된 마이크로프로세서 등의 중앙 처리 유닛(611);A central processing unit 611, such as a microprocessor, indicated as a CPU;

- 본 발명을 구현하는 컴퓨터 프로그램들을 저장하는, ROM으로 표시된 판독 전용 메모리(607);- a read only memory (ROM) 607, which stores computer programs embodying the invention;

- 본 발명의 실시예들의 방법의 실행가능 코드를 저장하는 RAM으로 표시된 랜덤 액세스 메모리(612)는 물론, 본 발명의 실시예들에 따른 디지털 영상 시퀀스를 인코딩하는 방법 및/또는 비트스트림을 디코딩하는 방법을 구현하는 데 필요한 변수들 및 파라미터들을 기록하도록 구성되어 있는 레지스터들; 및- a random access memory 612 indicated as RAM for storing executable code of the method of embodiments of the present invention, as well as a method for encoding a digital video sequence in accordance with embodiments of the present invention and / A register configured to record the parameters and parameters necessary to implement the method; And

- 통신 네트워크(603)(처리될 디지털 데이터가 이를 통해 전송되거나 수신됨)에 연결되어 있는 통신 인터페이스(602).A communication interface 602 (to which the digital data to be processed is transmitted or received).

선택적으로, 장치(600)는 또한 다음과 같은 구성요소들을 포함할 수 있다:Optionally, the device 600 may also include the following components:

- 본 발명의 하나 이상의 실시예들의 방법들을 구현하는 컴퓨터 프로그램들 및 본 발명의 하나 이상의 실시예들의 구현 동안 사용되거나 생성되는 데이터를 저장하는, 하드 디스크 등의 데이터 저장 수단(604);Data storage means 604, such as a hard disk, for storing computer programs embodying methods of one or more embodiments of the invention and data used or generated during the implementation of one or more embodiments of the invention;

- 디스크(606)에 대한 디스크 드라이브(605)[디스크 드라이브는 디스크(606)로부터 데이터를 판독하거나 상기 디스크에 데이터를 기입하도록 구성되어 있음];A disk drive 605 for the disk 606 (the disk drive is configured to read data from or write data to the disk 606);

- 데이터를 디스플레이하는 및/또는 키보드(610) 또는 임의의 다른 포인팅 수단에 의해 사용자와의 그래픽 인터페이스로서 역할하는 화면(609).Screen 609 which serves as a graphical interface with the user by displaying data and / or by keyboard 610 or any other pointing means.

장치(600)는, 예를 들어, 디지털 카메라(620) 또는 마이크(608) 등의 다양한 주변 장치들에 연결될 수 있고, 각각은 멀티미디어 데이터를 장치(600)에 제공하기 위해 입출력 카드(도시 생략)에 연결되어 있다.The device 600 may be coupled to various peripherals such as, for example, a digital camera 620 or a microphone 608, each of which may include an input / output card (not shown) to provide multimedia data to the device 600, Respectively.

통신 버스는 장치(600)에 포함되어 있거나 그에 연결되어 있는 다양한 요소들 간의 통신 및 상호운용성을 제공한다. 버스의 표현은 제한하는 것이 아니며, 상세하게는, 중앙 처리 유닛은 명령어들을 직접 또는 장치(600)의 다른 요소에 의해 장치(600)의 임의의 요소로 전달하는 동작을 한다.The communication bus provides communication and interoperability between the various components contained in or connected to the device 600. The representation of the bus is not intended to be limiting, and in particular, the central processing unit is responsible for transferring instructions to any element of the device 600, either directly or by other elements of the device 600. [

디스크(606)는, 예를 들어, 콤팩트 디스크(CD-ROM)(재기입가능하거나 그렇지 않음), ZIP 디스크 또는 메모리 카드 등의 임의의 정보 매체로, 그리고, 일반적인 표현으로, 마이크로컴퓨터에 의해 또는 마이크로프로세서에 의해 판독될 수 있고, 장치 내에 통합되어 있거나 그렇지 않으며, 어쩌면 이동식이고 하나 이상의 프로그램들 - 그의 실행은 구현될 본 발명에 따른 디지털 영상 시퀀스를 인코딩하는 방법 및/또는 비트스트림을 디코딩하는 방법을 가능하게 함 - 을 저장하도록 구성되어 있는 정보 저장 수단으로 대체될 수 있다.The disc 606 may be embodied as any information carrier, such as, for example, a compact disc (CD-ROM) (rewritable or otherwise), a ZIP disk or a memory card, and in general terms, A method for encoding a digital video sequence according to the present invention which may be read by a microprocessor, integrated in a device, or maybe not, and which is mobile and one or more programs - its implementation to be implemented, and / Which can be replaced by information storage means configured to store the information.

실행가능 코드는 판독 전용 메모리(607)에, 하드 디스크(604)에, 또는 이동식 디지털 매체[예를 들어, 앞서 기술한 바와 같은 디스크(606) 등]에 저장될 수 있다. 한 변형례에 따르면, 프로그램들의 실행가능 코드는, 실행되기 전에 하드 디스크(604) 등의 장치(600)의 저장 수단들 중 하나에 저장되기 위해, 인터페이스(602)를 통해 통신 네트워크(603)에 의해 수신될 수 있다.Executable code may be stored in read only memory 607, on hard disk 604, or on removable digital media (e.g., disk 606 as described above). According to one variant, the executable code of the programs is transferred to the communication network 603 via the interface 602, to be stored in one of the storage means of the device 600, such as the hard disk 604, Lt; / RTI >

중앙 처리 유닛(611)은 본 발명에 따른 프로그램 또는 프로그램들의 소프트웨어 코드의 명령어들 또는 일부분들, 상기한 저장 수단들 중 하나에 저장되어 있는 명령어들의 실행을 제어 및 지시하도록 구성되어 있다. 전원을 켤 시에, 비휘발성 메모리에[예를 들어, 하드 디스크(604) 상에 또는 판독 전용 메모리(607)에] 저장되어 있는 프로그램 또는 프로그램들은 랜덤 액세스 메모리(612) 내로 전송되는 것(그러면, 랜덤 액세스 메모리(612)는 프로그램 또는 프로그램들의 실행가능 코드를 포함하고 있음)은 물론, 본 발명을 구현하는 데 필요한 변수들 및 파라미터들을 저장하는 레지스터들로도 전송된다.The central processing unit 611 is configured to control and direct the execution of instructions stored in one of the above-mentioned storage means or portions of software code of the program or programs according to the present invention. Programs or programs stored in the non-volatile memory (e.g., on the hard disk 604 or in the read-only memory 607) upon power up are transferred into the random access memory 612 , Random access memory 612 includes executable code of a program or programs), as well as to registers that store the variables and parameters necessary to implement the invention.

이 실시예에서, 장치는 본 발명을 구현하기 위해 소프트웨어를 사용하는 프로그램가능 장치이다. 그렇지만, 다른 대안으로서, 본 발명은 하드웨어로[예를 들어, ASIC(Application Specific Integrated Circuit)의 형태로] 구현될 수 있다.In this embodiment, the device is a programmable device that uses software to implement the invention. However, as a further alternative, the present invention may be implemented in hardware (e.g., in the form of an Application Specific Integrated Circuit (ASIC)).

도 7은 본 발명의 적어도 하나의 실시예에 따른 인코더의 블록도를 나타낸 것이다. 인코더가 연결된 모듈들로 나타내어져 있고, 각각의 모듈은, 예를 들어, 장치(600)의 CPU(611)에 의해 실행될 프로그래밍 명령어들의 형태로, 본 발명의 하나 이상의 실시예들에 따른, 영상 시퀀스의 영상을 인코딩하는 적어도 하나의 실시예를 구현하는 방법의 적어도 하나의 대응하는 단계를 구현하도록 구성되어 있다.Figure 7 shows a block diagram of an encoder in accordance with at least one embodiment of the present invention. An encoder is shown as coupled modules and each module is operable in the form of programming instructions to be executed by, for example, the CPU 611 of the device 600, in accordance with one or more embodiments of the present invention, And at least one corresponding method of implementing at least one embodiment for encoding an image of a video stream.

원래의 디지털 영상 시퀀스 i0 내지 in(701)이 인코더(70)에 의해 입력으로서 수신된다. 각각의 디지털 영상은 픽셀이라고 하는 샘플 세트로 표현된다.The original digital video sequence io to in (701) is received as an input by the encoder 70. Each digital image is represented by a set of samples called pixels.

인코딩 프로세스의 구현 후에 비트스트림(710)이 인코더(70)에 의해 출력된다. 비트스트림(710)은 복수의 인코딩 단위들 또는 슬라이스들을 포함하고, 각각의 슬라이스는 슬라이스를 인코딩하는 데 사용되는 인코딩 파라미터들의 인코딩 값들을 전송하는 슬라이스 헤더(slice header), 및 인코딩된 비디오 데이터를 포함하는 슬라이스 보디(slice body)를 포함하고 있다.After the implementation of the encoding process, the bitstream 710 is output by the encoder 70. The bitstream 710 includes a plurality of encoding units or slices, each slice including a slice header for transmitting the encoding values of the encoding parameters used to encode the slice, and encoded video data And a slice body to which the slice body is attached.

입력 디지털 영상들 i0 내지 in(701)은 모듈(702)에 의해 픽셀 블록들로 나누어진다. 블록들은 영상 일부분들에 대응하고, 가변 크기(예컨대, 4x4, 8x8, 16x16, 32x32, 64x64 픽셀)를 가질 수 있다. 각각의 입력 블록에 대해 코딩 모드가 선택된다. 2가지 계열의 코딩 모드 - 공간 예측 코딩에 기초한 코딩 모드(인트라 예측), 및 시간 예측에 기초한 코딩 모드[인터 코딩, 병합, 건너뜀] - 가 제공된다. 가능한 코딩 모드들이 테스트된다.The input digital images i0 to in (701) are divided into pixel blocks by a module 702. [ The blocks may correspond to image portions and may have variable sizes (e.g., 4x4, 8x8, 16x16, 32x32, 64x64 pixels). The coding mode is selected for each input block. A coding mode based on two series of coding mode-spatial prediction coding (intra prediction), and a coding mode based on temporal prediction (inter coding, merging, skipping). Possible coding modes are tested.

모듈(703)은 인트라 예측 프로세스를 구현하고, 여기서 인코딩될 주어진 블록이 인코딩될 상기 블록의 이웃의 픽셀들로부터 계산되는 예측자에 의해 예측된다. 인트라 코딩이 선택되는 경우 잔차를 제공하기 위해, 선택된 인트라 예측자의 표시 및 주어진 블록과 그의 예측자 간의 차가 인코딩된다.Module 703 implements an intra prediction process where the given block to be encoded is predicted by a predictor calculated from neighboring pixels of the block to be encoded. To provide the residual when intra coding is selected, the representation of the selected intra predictor and the difference between the given block and its predictor are encoded.

시간 예측은 움직임 추정 모듈(704) 및 움직임 보상 모듈(705)에 의해 구현된다. 먼저, 참조 영상 세트(716) 중에서 참조 영상이 선택되고, 인코딩될 주어진 블록에 가장 가까운 영역인 참조 영상의 일부분(참조 영역 또는 영상 부분이라고도 불리움)이 움직임 추정 모듈(704)에 의해 선택된다. 움직임 보상 모듈(705)은 이어서 선택된 영역을 사용하여 인코딩될 블록을 예측한다. 선택된 참조 영역과 주어진 블록 간의 차(잔차 블록이라고도 함)가 움직임 보상 모듈(705)에 의해 계산된다. 선택된 참조 영역은 움직임 벡터로 표시된다.The temporal prediction is implemented by the motion estimation module 704 and the motion compensation module 705. First, a reference image is selected from the reference image set 716 and a portion of the reference image (also referred to as a reference region or an image portion), which is the region closest to the given block to be encoded, is selected by the motion estimation module 704. The motion compensation module 705 then predicts the block to be encoded using the selected region. A difference (also referred to as a residual block) between the selected reference area and a given block is calculated by the motion compensation module 705. The selected reference area is indicated by a motion vector.

이와 같이, 이들 경우(공간 예측 및 시간 예측) 둘 다에서, 잔차는 원래의 블록으로부터 예측을 차감함으로써 계산된다.Thus, in both of these cases (spatial prediction and temporal prediction), the residual is calculated by subtracting the prediction from the original block.

모듈(703)에 의해 구현되는 인트라 예측에서, 예측 방향이 인코딩된다. 시간 예측에서, 적어도 하나의 움직임 벡터가 인코딩된다.In intra prediction, which is implemented by module 703, the prediction direction is encoded. In temporal prediction, at least one motion vector is encoded.

인터 예측이 선택되는 경우, 움직임 벡터에 대한 정보 및 잔차 블록이 인코딩된다. 비트레이트를 추가로 감소시키기 위해, 움직임이 균질하다고 가정하여, 움직임 벡터가 움직임 벡터 예측자에 대한 차에 의해 인코딩된다. 움직임 정보 예측자 세트의 움직임 벡터 예측자들이 움직임 벡터 예측 및 코딩 모듈(717)에 의해 움직임 벡터 필드(718)로부터 획득된다.When inter prediction is selected, the information on the motion vector and the residual block are encoded. To further reduce the bit rate, the motion vector is encoded by the difference for the motion vector predictor, assuming that the motion is homogeneous. The motion vector predictors of the motion information predictor set are obtained from the motion vector field 718 by the motion vector prediction and coding module 717. [

인코더(70)는 레이트 왜곡 기준(rate-distortion criterion) 등의 인코딩 비용 기준을 적용함으로써 코딩 모드를 선택하는 선택 모듈(706)을 추가로 포함하고 있다. 중복성을 추가로 감소시키기 위해, 변환 모듈(707)에 의해 변환(DCT 등)이 잔차 블록에 적용되고, 획득되는 변환된 데이터는 이어서 양자화 모듈(708)에 의해 양자화되고, 엔트로피 인코딩 모듈(709)에 의해 엔트로피 인코딩된다. 마지막으로, 인코딩되고 있는 현재 블록의 인코딩된 잔차 블록이 비트스트림(710)에 삽입된다.The encoder 70 further includes a selection module 706 for selecting a coding mode by applying an encoding cost criterion such as a rate-distortion criterion. To further reduce redundancy, a transform (such as DCT) is applied to the residual block by the transform module 707, the transformed data to be obtained is then quantized by the quantization module 708 and the entropy encoding module 709 Lt; / RTI > Finally, the encoded residual block of the current block being encoded is inserted into the bitstream 710.

인코더(70)는 또한, 후속 영상의 움직임 추정을 위한 참조 영상을 생성하기 위해, 인코딩된 영상의 디코딩을 수행한다. 이것은 비트스트림을 수신하는 인코더 및 디코더가 동일한 참조 프레임을 가질 수 있게 해준다. 역양자화 모듈(711)은 양자화된 데이터의 역양자화를 수행하고, 이어서 역변환 모듈(712)에 의한 역변환이 있게 된다. 역 인트라 예측(reverse intra prediction) 모듈(713)은 주어진 블록에 대해 어느 예측자를 사용할지를 결정하기 위해 예측 정보를 사용하고, 역 움직임 보상(reverse motion compensation) 모듈(714)은 실제로 모듈(712)에 의해 획득된 잔차를 참조 영상 세트(716)로부터 획득된 참조 영역에 가산한다.The encoder 70 also performs decoding of the encoded image to generate a reference image for motion estimation of the subsequent image. This allows the encoder and decoder receiving the bitstream to have the same reference frame. The inverse quantization module 711 performs inverse quantization of the quantized data, and then the inverse transformation by the inverse transformation module 712 is performed. The reverse intra prediction module 713 uses the prediction information to determine which predictor to use for a given block and the reverse motion compensation module 714 actually uses the prediction information to the module 712 To the reference region obtained from the reference image set 716. [

재구성된 픽셀 프레임을 필터링하기 위해 사후 필터링이 이어서 모듈(715)에 의해 적용된다. 본 발명의 실시예들에서, 보상 오프셋이 재구성된 영상의 재구성된 픽셀의 픽셀 값에 가산되는 SAO 루프 필터가 사용된다.Post filtering is then applied by module 715 to filter the reconstructed pixel frame. In embodiments of the present invention, a SAO loop filter is used in which the compensation offset is added to the pixel value of the reconstructed pixel of the reconstructed image.

도 8은 본 발명의 적어도 하나의 실시예에 따른 루프 필터링 프로세스의 단계들을 나타낸 플로우차트이다. 초기 단계(801)에서, 인코더는 전체 프레임의 재구성을 발생한다. 그 다음에, 단계(802)에서, 디블록킹된 재구성을 발생(803)하기 위해 이 제1 재구성에 디블록킹 필터가 적용된다. 디블록킹 필터의 목표는 잔차 양자화 및 블록 움직임 보상 또는 블록 인트라 예측에 의해 발생된 블록 아티팩트를 제거하는 것이다. 이들 아티팩트는 낮은 비트레이트에서 시각적으로 중요하다. 디블록킹 필터는 2개의 이웃하는 블록들의 특성에 따라 블록 경계를 매끄럽게 하는 동작을 한다. 각각의 블록의 인코딩 모드, 잔차 코딩을 위해 사용되는 양자화 파라미터들, 및 경계에서의 이웃 픽셀 차가 고려된다. 모든 프레임들에 대해 동일한 기준/분류가 적용되고, 어떤 부가의 데이터도 전송되지 않는다. 디블록킹 필터는, 블록킹 아티팩트를 제거함으로써, 현재 프레임의 시각적 품질을 향상시키고, 또한 후속 프레임들에 대한 움직임 추정 및 움직임 보상을 향상시킨다. 실제로, 블록 아티팩트의 고주파수가 제거되고, 따라서 후속 프레임들의 텍스처 잔차(texture residual)에 대해 이들 고주파수가 보상될 필요가 없다.8 is a flow chart illustrating the steps of a loop filtering process in accordance with at least one embodiment of the present invention. In an initial step 801, the encoder generates a reconstruction of the entire frame. Then, at step 802, a deblocking filter is applied to this first reconstruction to generate 803 a deblocked reconstruction. The goal of the deblocking filter is to remove block artifacts generated by residual quantization and block motion compensation or block intra prediction. These artifacts are visually significant at low bit rates. The deblocking filter operates to smooth the block boundary according to the characteristics of two neighboring blocks. The encoding mode of each block, the quantization parameters used for residual coding, and neighboring pixel differences at the boundary are considered. The same criterion / classification is applied for all the frames, and no additional data is transmitted. The deblocking filter improves the visual quality of the current frame by removing blocking artifacts and also improves motion estimation and motion compensation for subsequent frames. In practice, the high frequencies of the block artifacts are removed, and therefore these high frequencies need not be compensated for the texture residuals of subsequent frames.

디블록킹 필터 이후에, 디블록킹된 재구성이 본 발명의 실시예들에 따라 결정된 픽셀의 분류(814)에 기초하여, 단계(804)에서, SAO(sample adaptive offset) 루프 필터에 의해 필터링된다. 얻어진 프레임(805)은 이어서 디스플레이되고 후속 인터 프레임들에 대한 참조 프레임으로서 사용될 재구성된 프레임(807)을 발생시키기 위해 단계(806)에서 ALF(adaptive loop filter)에 의해 필터링될 수 있다.After deblocking filter, deblocked reconstruction is filtered by a sample adaptive offset (SAO) loop filter in step 804, based on the classification 814 of pixels determined according to embodiments of the present invention. The resulting frame 805 may then be displayed and filtered by an adaptive loop filter (ALF) at step 806 to generate a reconstructed frame 807 to be used as a reference frame for subsequent interframes.

단계(804)에서, 프레임 영역의 각각의 픽셀이 그의 픽셀 값에 따라 결정된 분류의 클래스로 분류된다. 클래스는 결정된 픽셀 값 범위에 대응한다. 동일한 보상 오프셋 값이 주어진 픽셀 값 범위 내의 픽셀 값을 가지는 모든 픽셀들의 픽셀 값에 가산된다.In step 804, each pixel of the frame region is classified into a class of classification determined according to its pixel value. The class corresponds to the determined range of pixel values. The same compensation offset value is added to the pixel value of all pixels having a pixel value within a given pixel value range.

샘플 적응적 오프셋 필터링을 위한 픽셀의 분류의 결정은 도 10 내지 도 17 중 임의의 것을 참조하여 이후에 더 상세히 설명될 것이다.The determination of the classification of pixels for sample adaptive offset filtering will be described in more detail below with reference to any of Figs. 10-17.

도 9는 본 발명의 일 실시예에 따른, 인코더로부터 데이터를 수신하기 위해 사용될 수 있는 디코더(90)의 블록도를 나타낸 것이다. 디코더는 연결된 모듈들로 나타내어져 있고, 각각의 모듈은, 예를 들어, 장치(600)의 CPU(611)에 의해 실행될 프로그래밍 명령어들의 형태로, 디코더(90)에 의해 구현되는 방법의 대응하는 단계를 구현하도록 구성되어 있다.9 shows a block diagram of a decoder 90 that may be used to receive data from an encoder, in accordance with an embodiment of the invention. The decoder is represented by the connected modules, and each module is associated with a corresponding step of the method implemented by the decoder 90, for example in the form of programming instructions to be executed by the CPU 611 of the device 600 .

디코더(90)는 인코딩 단위들을 포함하는 비트스트림(901)을 수신하고, 각각의 인코딩 단위는 인코딩 파라미터들에 관한 정보를 포함하는 헤더 및 인코딩된 비디오 데이터를 포함하는 보디로 이루어져 있다. 도 7과 관련하여 설명한 바와 같이, 인코딩된 비디오 데이터는 엔트로피 인코딩되어 있고, 움직임 벡터 예측자의 인덱스가, 주어진 블록에 대해, 사전 결정된 수의 비트에 인코딩되어 있다. 수신된 인코딩된 비디오 데이터는 모듈(902)에 의해 엔트로피 디코딩된다. 잔차 데이터가 이어서 모듈(903)에 의해 역양자화되고, 픽셀 값을 획득하기 위해 모듈(904)에 의해 역변환이 적용된다.The decoder 90 receives a bitstream 901 comprising encoding units, each encoding unit comprising a body comprising a header and encoded video data including information about encoding parameters. As described in connection with FIG. 7, the encoded video data is entropy encoded, and the index of the motion vector predictor is encoded into a predetermined number of bits for a given block. The received encoded video data is entropy decoded by module 902. [ The residual data is then inverse-quantized by module 903 and the inverse transform is applied by module 904 to obtain pixel values.

코딩 모드를 나타내는 모드 데이터가 또한 엔트로피 디코딩되고, 모드에 기초하여, 인트라 유형 디코딩 또는 인터 유형 디코딩이 인코딩된 영상 데이터 블록에 대해 수행된다.Mode data representing the coding mode is also entropy decoded and, based on the mode, intra type decoding or inter type decoding is performed on the encoded video data block.

인트라 모드의 경우에, 비트스트림에 명시된 인트라 예측 모드에 기초하여 역 인트라 예측 모듈(905)에 의해 인트라 예측자가 결정된다.In the case of the intra mode, the intra predictor is determined by the inverse intra prediction module 905 based on the intra prediction mode specified in the bitstream.

모드가 인터인 경우, 인코더에 의해 사용되는 참조 영역을 찾아내기 위해 움직임 예측 정보가 비트스트림으로부터 추출된다. 움직임 예측 정보는 참조 프레임 인덱스 및 움직임 벡터 잔차로 이루어져 있다. 움직임 벡터 디코딩 모듈(910)에 의해 움직임 벡터를 획득하기 위해 움직임 벡터 예측자가 움직임 벡터 잔차에 가산된다.If the mode is inter, motion prediction information is extracted from the bit stream to find the reference area used by the encoder. The motion prediction information is composed of a reference frame index and a motion vector residual. A motion vector predictor is added to the motion vector residual to obtain a motion vector by the motion vector decoding module 910. [

움직임 벡터 디코딩 모듈(910)은 움직임 예측에 의해 인코딩된 각각의 현재 블록에 대해 움직임 벡터 디코딩을 적용한다. 현재 블록에 대한 움직임 벡터 예측자의 인덱스가 획득되면, 현재 블록과 연관되어 있는 움직임 벡터의 실제 값이 디코딩되고 모듈(906)에 의해 역 움직임 보상을 적용하는 데 사용될 수 있다. 역 움직임 보상(906)을 적용하기 위해, 디코딩된 움직임 벡터에 의해 표시되는 참조 영상 부분이 참조 영상(908)으로부터 추출된다. 후속하는 디코딩된 움직임 벡터의 역 예측에 사용되기 위해, 움직임 벡터 필드 데이터(911)가 디코딩된 움직임 벡터로 업데이트된다.The motion vector decoding module 910 applies motion vector decoding to each current block encoded by motion prediction. Once the index of the motion vector predictor for the current block is obtained, the actual value of the motion vector associated with the current block may be decoded and used by module 906 to apply the inverse motion compensation. To apply the inverse motion compensation 906, a portion of the reference image represented by the decoded motion vector is extracted from the reference image 908. The motion vector field data 911 is updated with the decoded motion vector in order to be used for the backward prediction of the subsequent decoded motion vector.

마지막으로, 디코딩된 블록이 획득된다. 도 8을 참조하여 기술된 바와 같이 인코더에서 적용되는 사후 필터링 모듈(815)과 유사하게, 사후 필터링 모듈(907)에 의해 사후 필터링이 적용된다. 디코딩된 비디오 신호(909)가 최종적으로 디코더(90)에 의해 제공된다.Finally, the decoded block is obtained. Post filtering is applied by post filtering module 907, similar to the post filtering module 815 applied in the encoder as described with reference to Fig. The decoded video signal 909 is finally provided by the decoder 90.

도 10은 보상 오프셋의 적용을 위해 영상의 재구성된 픽셀을 분류하는 본 발명의 제1 실시예에 따른 방법의 단계들을 나타낸 플로우차트이다. 이 실시예에서, 프레임 영역의 재구성된 픽셀의 픽셀 값에 따른 그 픽셀의 분류에 대한 클래스가 프레임 영역의 재구성된 픽셀 값의 통계적 분포에 기초하여 결정된다. 중앙, 유효 범위 및 클래스당 픽셀의 양이 픽셀 값의 분포에 기초하여 결정된다. 이 실시예에서, 디코더는 분포의 세그먼트화를 위한 디코더와 완전히 동일한 프로세스를 적용할 수 있다.10 is a flow chart illustrating steps of a method according to a first embodiment of the present invention for classifying reconstructed pixels of an image for application of a compensation offset. In this embodiment, the class for classification of the pixel according to the pixel value of the reconstructed pixel of the frame region is determined based on the statistical distribution of the reconstructed pixel values of the frame region. The center, the effective range, and the amount of pixels per class are determined based on the distribution of pixel values. In this embodiment, the decoder can apply exactly the same process as the decoder for segmentation of the distribution.

이 프로세스의 초기 단계에서, 모듈(1002)은 프레임 영역(1001)의 픽셀들의 픽셀 값의 통계적 분포를 결정하기 위해 그리고 대응하는 히스토그램(1003)을 발생시키기 위해 현재 프레임 영역(1001)을 스캔한다. 한 특정의 실시예에서, 이 프로세스는 각각의 픽셀 값에 대한 픽셀들의 수를 포함하는 테이블을 업데이트하는 것을 포함한다(즉, 각각의 픽셀 값에 대해, 그 픽셀 값을 가지는 픽셀들의 수가 표로 작성됨). 테이블은 픽셀들의 비트 심도에 기초하여 표현식 Max = 2Bitdepth - 1에 따라 결정된 최대 픽셀 값 MAX와 같은 셀들의 수를 포함한다.In the early stages of this process, the module 1002 scans the current frame area 1001 to determine the statistical distribution of the pixel values of the pixels of the frame area 1001 and to generate a corresponding histogram 1003. In one particular embodiment, the process includes updating a table containing the number of pixels for each pixel value (i. E., For each pixel value, the number of pixels having that pixel value is created as a table ). The table contains the number of cells equal to the maximum pixel value MAX determined according to the expression Max = 2 Bitdepth - 1 based on the bit depth of the pixels.

모듈(1004)은 이어서 발생된 히스토그램(1003)의 중앙을 결정한다. 히스토그램의 유효 픽셀 값 범위가 이어서 히스토그램(1003)에 표현된 픽셀 값들의 분포에 따라 그리고, 적절한 경우, 히스토그램의 중앙에 기초하여 모듈(1006)에 의해 결정된다. 마지막으로, 픽셀 값 범위를 정의하는 동일 확률의(equiprobable) 클래스가 결정된다. 이와 같이, 각각의 클래스의 픽셀 값 범위를 포함하는 테이블(1009) 또는, 다른 대안으로서, 각각의 픽셀의 픽셀 값을 포함하는 테이블이 제공된다. 본 발명의 어떤 실시예들에서, 동일 확률의 클래스의 결정은 사전 결정된 클래스 수(1000)에 의존할 수 있다.The module 1004 then determines the center of the histogram 1003 generated. The range of effective pixel values of the histogram is then determined by module 1006 based on the distribution of pixel values represented in histogram 1003 and, where appropriate, based on the center of the histogram. Finally, an equiprobable class that defines a range of pixel values is determined. As such, a table 1009 containing a range of pixel values for each class, or, alternatively, a table containing pixel values for each pixel is provided. In some embodiments of the invention, the determination of the class of the same probability may depend on the predetermined number of classes 1000.

단계(1004)에서, 발생된 히스토그램(1003)의 중앙을 결정하기 위해 다양한 알고리즘들이 이용될 수 있다. 일 실시예에서, 히스토그램의 최소값 MinHlst 및 최대값 MaxHist가 찾아질 수 있다. 최소값 MinHist를 찾아내기 위해, 히스토그램의 셀들 Histk이 픽셀 값 0부터 0이 아닌 히스토그램의 제1 셀 Histk까지 스캔된다. 그리고 ΜaxHist를 찾아내기 위해, 셀들이 역순으로(최대 픽셀 값 MAX로부터 0이 아닌 히스토그램의 제1 셀 Histk까지) 스캔된다. 히스토그램의 중앙 CenterHist는 다음과 같이 계산된다:At step 1004, various algorithms may be used to determine the center of the histogram 1003 generated. In one embodiment, the minimum value Min Hlst and the maximum value Max Hist of the histogram can be found. To find the minimum value Min Hist , the cells Hist k of the histogram are scanned from the pixel value 0 to the first cell Hist k of the histogram, not 0. To find the Μax Hist , the cells are scanned in reverse order (from the maximum pixel value MAX to the first cell Hist k in the histogram, not 0). The center Hist of the histogram is calculated as:

CenterHist = (MaxHist - MinHist ) 12 + MinHist Center Hist = (Max Hist - Min Hist ) 12 + Min Hist

대안의 실시예에서, 히스토그램의 중앙은 분포의 가중 평균 중앙(weighted average center)인 것으로 간주된다. 히스토그램 셀 Histk의 값이 값 k를 가지는 픽셀의 수인 것으로 간주되는 경우, CenterHist는 다음과 같이 계산되고:In an alternative embodiment, the center of the histogram is considered to be a weighted average center of the distribution. If the value of the histogram cell Hist k is deemed to be the number of pixels having a value k, the Center Hist is calculated as:

Figure pct00003
Figure pct00003

여기서 N은 현재 프레임 영역에 있는 픽셀의 수이다.Where N is the number of pixels in the current frame region.

단계(1006)에서, 발생된 히스토그램의 유효 범위를 결정하는 한가지 가능한 기법은 유효 범위의 양쪽 끝에 대해 앞서 기술한 MinHlst 및 MaxHist를 선택하는 것이다.In step 1006, one possible technique for determining the effective range of the generated histogram is to select Min Hlst and Max Hist as described above for both ends of the effective range.

다른 실시예에서, 히스토그램의 최소값 MinRange는 0부터 임계값 α보다 큰 값을 가지는 제1 Histk까지 스캔하는 것에 의해 결정된다. 동일한 방식으로, MaxRange는 최대 픽셀 값 MAX로부터 임계값 α보다 큰 제1 Histk까지 역스캔하는 것에 의해 결정된다. 임계값 α는 사전 결정된 값일 수 있다. 다른 대안으로서, 임계값 α는 프레임 영역에 있는 픽셀들의 수에 및/또는 입력 신호의 성분 유형(크로마 및 루마)에 의존할 수 있다.In another embodiment, the minimum value Min Range of the histogram is determined by scanning from 0 to the first Hist k having a value greater than the threshold value alpha. In the same manner, the Max Range is determined by inverse scanning from the maximum pixel value MAX to the first Hist k greater than the threshold value alpha. The threshold value a may be a predetermined value. As another alternative, the threshold value alpha may depend on the number of pixels in the frame region and / or on the component type (chroma and luma) of the input signal.

한 특정의 실시예에서, 클래스의 수가 인코더측 및 디코더측에 알려져 있는 것으로 간주될 수 있다. 픽셀 값의 클래스의 수는, 예를 들어, 각각의 성분(루마, 크로마 U 및 V)에 따른 현재 프레임 영역 내의 픽셀들의 수에 의존할 수 있다.In one particular embodiment, the number of classes can be considered to be known on the encoder side and on the decoder side. The number of classes of pixel values may depend, for example, on the number of pixels in the current frame region according to each component (luma, chroma U and V).

동일 확률의 클래스를 생성하기 위해, 유효 범위(1007) 내의 픽셀들의 수 NbPixRange가 정의된다. 유효 범위 내의 픽셀들의 수 NbPixRange는 각각의 히스토그램 셀 Histk를 k= MinRange로부터 k= MaxRange까지 스캔하는 것에 의해 결정된다. 이어서, 각각의 클래스 NbPixclasses 내의 최적의 픽셀 수를 결정하기 위해, 유효 범위 내의 사전 결정된 픽셀 수 NbPixRange가 클래스 수(1000)로 나누어진다.To create a class with the same probability, the number of pixels NbPix Range in the validity range 1007 is defined. The number of pixels in the effective range NbPix Range is determined by scanning each histogram cell Hist k from k = Min Range to k = Max Range . Then, to determine the optimal number of pixels in each class NbPix classes, the predetermined number of pixels NbPix Range in the validity range is divided by the number of classes (1000).

도 11은 본 발명의 일 실시예에 따른, 동일 확률의 클래스를 결정하는 알고리즘의 단계들을 나타낸 플로우차트이다. 초기 단계(1101)에서, 클래스 번호 j가 0으로 설정되고, 현재 픽셀 값 k가 MinRange로 설정된다. 동일 확률의 분류(equiprobable classification)에 대해, 클래스는 그의 픽셀 값 범위에 의해 식별된다. 클래스 번호 j는 이와 같이 그의 최소 픽셀 값 Minj부터 그의 최대 픽셀 값 Maxj까지의 그의 범위

Figure pct00004
에 의해 식별된다.11 is a flowchart illustrating steps of an algorithm for determining a class of the same probability, according to an embodiment of the present invention. In the initial step 1101, the class number j is set to 0 and the current pixel value k is set to Min Range . For equiprobable classification, a class is identified by its pixel value range. The class number j thus ranges from its minimum pixel value Min j to its maximum pixel value Max j in its range
Figure pct00004
Lt; / RTI >

단계(1103)에서, j에 의해 인덱싱되는 현재 클래스의 최소 픽셀 값 Minj는 현재 픽셀 값 k로 설정된다. 이어서, 단계(1104)에서, SumNbPiXj는 0으로 설정된다. SumNbPiXj는 범위 j 내의 픽셀들의 수에 대응한다. 이어서, 단계(1105)에서, 픽셀 값 k를 가지는 픽셀들의 수(Histk)가 SumNbPiXj에 가산된다. 단계(1106)에서, 현재 클래스 j에 대한 픽셀들의 수의 합 SumNbPiXj이 클래스들 내의 픽셀들의 수 NbPixclasses보다 큰지 여부가 판정된다. 이 조건에 도달되지 않은 경우, 단계(1107)에서 k 값이 증가되고, 단계(1105)에서 픽셀들의 수 Histk 또는 픽셀 값 k가 SumNbPiXj에 가산된다. SumNbPiXj > NbPixclasses인 것으로 판정되는 경우 또는 k가 유효 범위의 최대값 MaxRange에 도달하는 경우, 단계(1108)에서 현재 클래스 j에 대한 최대값이 k의 현재 값과 같다. 이 스테이지에서, 클래스 j가 정의된다. 즉, 클래스 j의 범위

Figure pct00005
가 결정된다. 2개 이상의 클래스에서 동일한 픽셀 값을 획득하는 것을 피하기 위해 단계(1109)에서 변수 k가 증가된다. 더욱이, 그 다음 클래스에 대한 픽셀 값 범위를 정의하기 위해 단계(1110)에서 변수 j가 또한 증가된다. 변수 j가 클래스 수 NbPixclasses보다 큰 경우, 단계(1112)에서 모든 클래스가 정의된 것으로 간주될 수 있다.In step 1103, the minimum pixel value Min j of the current class indexed by j is set to the current pixel value k. Subsequently, at step 1104, SumNbPiX j is set to zero. SumNbPiX j corresponds to the number of pixels in the range j. Then, at step 1105, the number of pixels (Hist k ) having the pixel value k is added to SumNbPiX j . In step 1106, it is determined whether the sum SumNbPiX j of the number of pixels for the current class j is greater than the number NbPix classes of pixels in the classes . If this condition is not reached, the value of k is incremented in step 1107, and the number of pixels Hist k or pixel value k is added to SumNbPiX j in step 1105. If it is determined that SumNbPiX j > NbPix classes or k reaches the maximum value Max Range of the valid range, then in step 1108 the maximum value for current class j is equal to the current value of k. In this stage, a class j is defined. That is, the range of class j
Figure pct00005
Is determined. The variable k is incremented in step 1109 to avoid obtaining the same pixel value in more than one class. Furthermore, in step 1110, the variable j is also incremented to define a range of pixel values for the next class. If the variable j is greater than the class number NbPix classes , then in step 1112 all classes may be deemed defined.

그 결과, 인코더는, 도 3과 관련하여 기술된 바와 같이, 각각의 클래스 j에 대한 오프셋 값을 결정하고 이를 디코더로 전송할 것이다. 인코더 및 디코더는, 도 4를 참조하여 기술된 바와 같이, 프레임 영역을 필터링할 것이다.As a result, the encoder will determine the offset value for each class j and transmit it to the decoder, as described in connection with FIG. The encoder and decoder will filter the frame area, as described with reference to Fig.

이 실시예에서, 클래스 수가 구문 값(syntax value)에 기초하여 사전 결정되어 있기 때문에, 클래스 수 NbClasses가 픽셀 값에 의존하지 않는다는 것에 유의해야 한다. 그 결과, 이 실시예에서, SAO 대역 오프셋의 파싱(parsing)은 다른 프레임들의 디코딩에 독립적이다. SAO 대역 오프셋에 대한 파싱이 각각의 오프셋의 파싱을 포함한다는 것에 유의해야 한다.In this embodiment, it should be noted that since the number of classes is predetermined based on syntax values, the number of classes NbClasses does not depend on the pixel value. As a result, in this embodiment, the parsing of the SAO band offset is independent of the decoding of other frames. It should be noted that parsing for the SAO band offset includes parsing of each offset.

동일 확률의 분류를 결정하는 추가의 실시예에서, 클래스 수가 발생된 히스토그램에서의 픽셀 값의 분포에 따라 결정될 수 있다. 실제로, 유효 범위의 진폭이 높거나 낮을 때, 클래스 수가 코딩 효율에 영향을 미칠 것이다. 그 결과, 각각의 클래스에서의 픽셀들의 수는 물론 픽셀 값들의 수를 결정함으로써 보다 나은 적응성있는 분류가 제공될 수 있다.In a further embodiment of determining the classification of the same probability, the number of classes may be determined according to the distribution of pixel values in the generated histogram. In practice, when the amplitude of the effective range is high or low, the number of classes will affect the coding efficiency. As a result, a better adaptive classification can be provided by determining the number of pixels as well as the number of pixels in each class.

도 12는 보다 적응성있는 분류를 제공하는 추가의 실시예에 따른 알고리즘의 단계들을 나타낸 플로우차트이다. 이 플로우차트는 도 11의 실시예의 플로우차트에 기초하고 있으며, 여기서 끝 번호가 같은 모듈들은 동등한 기능을 수행한다. 그렇지만, 이 실시예의 결정 모듈(1206 및 1211)은 도 11의 대응하는 모듈(1106 및 1111)에 의해 처리되는 테스트 조건과 상이한 테스트 조건을 처리한다.Figure 12 is a flowchart depicting the steps of an algorithm according to a further embodiment for providing a more adaptive classification. This flowchart is based on the flowchart of the embodiment of FIG. 11, wherein modules having the same end number perform the equivalent function. However, the decision modules 1206 and 1211 of this embodiment process test conditions that are different from the test conditions that are processed by the corresponding modules 1106 and 1111 of FIG.

이 실시예에서, SumNbPiXj > NbPixclasses인 경우 또는 k가 유효 범위의 최대값 MaxRange에 도달하는 경우 또는 k - Minj가 클래스에 대한 최대 범위(MaxClassRange) 미만인 경우, 결정 모듈(1206)은 k 값에 기초하여 루프를 중단하고 클래스 j에 대해 Maxj를 선택한다. k - Minj는 클래스 j의 현재 범위 내의 픽셀 값들의 수에 대응한다. MaxClassRange는 범위 내의 픽셀 값들의 사전 결정된 최대 수이다. 이 범위는 비트 심도, 프레임 영역 내의 픽셀들의 수 N, 및 신호의 유형(루마, 크로마 U 및 V)에 의존할 수 있다. 예를 들어, 비트 심도가 8일 때, 루마 성분에 대한 MaxClassRange는 HEVC 구현예에서와 같이 16일 수 있다.In this embodiment, if SumNbPiX j > NbPix classes , or if k reaches the maximum value Max Range of the validity range, or if k - Min j is less than the MaxClass Range for the class, then the decision module 1206 Stop the loop based on the value of k and select Max j for class j. k - Min j corresponds to the number of pixel values in the current range of class j. The MaxClass Range is a predetermined maximum number of pixel values in the range. This range may depend on the bit depth, the number of pixels N in the frame region, and the type of signal (luma, chroma U and V). For example, when the bit depth is 8, the MaxClass Range for the luma component may be 16, as in the HEVC implementation.

도 11의 실시예와 비교하여 도 12의 실시예의 장점은 큰 진폭을 갖는 픽셀 값 분포에 대한 그의 코딩 효율이다. 이 실시예는 분포에 대해 보다 적응성이 있다.The advantage of the embodiment of FIG. 12 as compared to the embodiment of FIG. 11 is its coding efficiency for pixel value distributions with large amplitudes. This embodiment is more adaptive to the distribution.

이 실시예에서, 결정된 클래스 수가 픽셀 값에 의존하고, 따라서 현재 프레임의 파싱이 이전 프레임의 디코딩에 의존한다는 것에 유의해야 한다. 전송 오류에 보다 강건하기 위해, 클래스 수 NbClasses가 비트스트림에 삽입된다. 이러한 데이터의 전송은 코딩 효율에 그다지 영향을 미치지 않는다.It should be noted that, in this embodiment, the number of classes determined is dependent on the pixel value, and therefore the parsing of the current frame is dependent on the decoding of the previous frame. To be more robust against transmission errors, the class number NbClasses is inserted into the bitstream. The transmission of such data does not significantly affect the coding efficiency.

도 10 내지 도 12의 분류의 제1 실시예의 주된 장점은 분류가 픽셀 값 분포에 적응된다는 것이다. 더욱이, 각각의 클래스의 중앙, 유효 범위 및 크기 그리고 그의 양이 전송될 필요가 없다. 그 결과, 공지된 HEVC 구현예에서와 같이, 결정된 분류에 대해 각각의 클래스의 오프셋을 나타내는 데이터 이외의 어떤 부가의 데이터도 전송될 필요가 없다.The main advantage of the first embodiment of the classifications of Figures 10-12 is that the classification is adapted to the pixel value distribution. Furthermore, the center, scope, size and amount of each class need not be transmitted. As a result, no additional data other than the data representing the offset of each class need to be transmitted for the determined classification, as in the known HEVC implementation.

분류의 파라미터들의 시그널링을 수반하는, 분류를 결정하는 본 발명의 추가의 실시예가 도 13을 참조하여 이제부터 기술될 것이다. 분류의 추가의 실시예의 목적은 픽셀 값들의 분포의 최적의 분류를 제공하는 것이다. 이전의 실시예들과 비교하여 차이점은 분류가 직접 픽셀 값의 분포에 기초하여 결정되지 않고 레이트 왜곡 기준에 기초하여 결정된다는 것이다. 추가의 실시예에서, 인코더는 사전 정의된 가능한 분류들 중에서 픽셀 값 분포에 가장 잘 적응된 분류를 선택한다. 이 선택은 레이트 왜곡 기준에 기초하고 있다. 이전의 실시예들에서와 같이, 픽셀 값의 분포를 나타내는 발생된 히스토그램의 클래스들의 중앙, 유효 범위 및 크기가 결정된다. 추가의 실시예에서, 이들 파라미터가 비트스트림에서 전송된다. 이러한 데이터의 전송의 영향을 최소화하기 위해, 클래스 및 관련 범위의 크기가 사전 정의된 값들 중에서 선택된다. 그 결과, 인코더는 선택된 분류의 중앙, 선택된 분류에 관련된 인덱스, 및 분류의 클래스의 크기를 비트스트림에 삽입한다.A further embodiment of the invention for determining the classification, accompanied by signaling of the parameters of the classification, will now be described with reference to Fig. The purpose of a further embodiment of the classification is to provide an optimal classification of the distribution of pixel values. The difference compared with the previous embodiments is that the classification is determined based on the rate-distortion criterion, not determined based on the distribution of the pixel values directly. In a further embodiment, the encoder selects a classification that best fits the pixel value distribution among the predefined possible classifications. This selection is based on a rate distortion criterion. As in previous embodiments, the center, effective range, and magnitude of the classes of generated histograms representing the distribution of pixel values are determined. In a further embodiment, these parameters are transmitted in the bitstream. To minimize the impact of the transmission of such data, the size of the class and associated range is selected from predefined values. As a result, the encoder inserts the center of the selected classification, the index associated with the selected classification, and the size of the class of classification into the bitstream.

픽셀 값의 분포에 대한 적응을 제공하기 위해, 도 13에 나타낸 바와 같이, 몇개의 픽셀 값 범위 크기가 정의된다. 도 13에서, 전체 픽셀 값 범위가 32개의 하위 범위로 나누어진다. 픽셀 값 범위의 중앙에 위치해 있는 픽셀 값에 관한 제1 클래스 그룹에 대해, 4개의 예(1301 , 1302, 1303, 1304)가 나타내어져 있다. 제1 예(1301)는 가능한 32개의 범위 중 26개의 범위를 포함하고 있다. 이와 같이, 유효 범위(1301)는 전체 범위의 13/16을 나타낸다. 동일한 방식으로, 1302는 32개의 가능한 범위들 중 단지 8개의 범위(즉, 유효 범위의 1/4)를 나타내고, 1303은 전체 범위의 1/8을 나타내며, 1304는 전체 범위의 1/16을 나타낸다. 제안된 방식에 대해, 전체 범위로부터 단지 하나의 픽셀 값에 대응하는 범위까지의 모든 가능한 크기가 고려될 수 있다. 가능한 유효 범위들의 수는 코딩 효율에 따라 사전 결정되어야만 하거나, 프레임 영역 내의 픽셀들의 수에 대해 사전 결정되어야만 한다.To provide adaptation to the distribution of pixel values, several pixel value range sizes are defined, as shown in FIG. In Figure 13, the entire pixel value range is divided into 32 subranges. Four examples (1301, 1302, 1303, 1304) are shown for a first class group with pixel values located in the middle of the pixel value range. The first example 1301 includes 26 ranges out of the 32 possible ranges. Thus, the effective range 1301 indicates 13/16 of the whole range. In the same way, 1302 represents only 8 of the 32 possible ranges (i.e., 1/4 of the effective range), 1303 represents 1/8 of the total range, and 1304 represents 1/16 of the entire range . For the proposed scheme, all possible sizes from the entire range to the range corresponding to only one pixel value can be considered. The number of possible valid ranges must either be predetermined according to the coding efficiency, or must be predetermined for the number of pixels in the frame area.

도 13도 역시 픽셀 값 범위의 가장자리에 위치해 있는 픽셀 값에 관한 제2 클래스 그룹에 대한 크기의 몇가지 예를 나타낸 것이다. 제2 그룹은 2개의 하위 클래스 그룹 - 하나는 히스토그램의 각각의 가장자리 쪽에 위치해 있음 - 을 포함하고 있다. 예(1305, 1306, 1307, 1308)는, 각각, 제1 그룹의 예(1301 , 1302, 1303, 1304)와 동일한 픽셀 값 수를 나타낸다.Figure 13 also shows some examples of sizes for a second class group with respect to pixel values located at the edge of the pixel value range. The second group includes two subclass groups-one located on each edge of the histogram. Examples 1305, 1306, 1307 and 1308 represent the same number of pixel values as the first group of examples 1301, 1302, 1303 and 1304, respectively.

본 발명의 실시예에서, 종래 기술의 방법과 비교하여, 클래스의 크기(즉, 클래스당 픽셀 값 범위)가 고정되어 있지 않다. 도 14는 몇개의 크기의 예(1401 내지 1406)를 나타낸 것이다. 이 예에서, 클래스 크기가 32개의 픽셀(1401)부터 단지 하나의 픽셀(1406)까지이다. 도 13과 관련하여 앞서 기술한 바와 같이, 이들 클래스 크기는 모든 가능한 유효 범위들과 결합될 수 있다. 이 실시예에서, 모든 클래스가 특정의 픽셀 값 범위에 대해 동일한 크기를 가지는 것으로 간주된다. 이와 같이, 한 그룹에 대해, 유효 범위의 크기 및 클래스의 크기를 나타내는 데이터가 비트스트림에 삽입된다.In an embodiment of the present invention, the size of the class (i. E., The range of pixel values per class) is not fixed compared to the prior art method. Fig. 14 shows examples 1401 to 1406 of several sizes. In this example, the class size is from 32 pixels (1401) to only one pixel (1406). As described above with respect to FIG. 13, these class sizes may be combined with all possible valid ranges. In this embodiment, all classes are considered to have the same magnitude for a particular pixel value range. Thus, for one group, data indicating the size of the effective range and the size of the class is inserted into the bitstream.

다른 실시예에서, 주어진 유효 범위에 대한 클래스의 크기가 유효 범위에서의 클래스의 위치에 따라 적응된다. 보다 정확하게는, 클래스의 크기가 픽셀 값들의 분포에 적응된다. 추가의 실시예에서, 이들 크기가 각각의 유효 범위에 대해 픽셀 값 분포에 따라 사전 결정된다. 실제로, 픽셀 값 분포의 히스토그램은 일반적으로 가우스 분포에 대응한다. 픽셀 값이 히스토그램의 중앙에 가까울수록, 이 값에 가까운 픽셀 값을 가지는 픽셀들이 더 많다. 이는 중앙에 가까운 히스토그램 셀 Histk가 히스토그램의 유효 범위의 양쪽 끝에 있는 히스토그램 셀 Histk보다 더 큰 값(대응하는 픽셀들의 수)을 가진다.In another embodiment, the size of the class for a given validity range is adapted according to the location of the class in the validity range. More precisely, the size of the class is adapted to the distribution of pixel values. In a further embodiment, these sizes are predetermined according to the pixel value distribution for each validity range. In practice, the histogram of the pixel value distribution generally corresponds to a Gaussian distribution. The closer the pixel value is to the center of the histogram, the more pixels have pixel values close to this value. This means that the nearest histogram cell Hist k has a larger value (the number of corresponding pixels) than the histogram cell Hist k at both ends of the effective range of the histogram.

도 15는 클래스의 크기에 대한 2개의 기술된 실시예의 예를 나타낸 것이다. 예(1501)는 32개의 픽셀 값의 유효 범위에 대해 8개의 픽셀 값의 고정된 크기를 나타낸 것이다. 1502는 동일한 유효 범위 크기에 대해 4개의 픽셀 값의 고정된 크기를 나타낸 것이다.Figure 15 shows an example of two described embodiments of class size. The example 1501 shows a fixed size of 8 pixel values for the valid range of 32 pixel values. And 1502 is a fixed size of four pixel values for the same effective range size.

예(1503)는 32개의 픽셀 값의 현재 범위에 대해 적응적 클래스 크기에 대한 다른 실시예를 나타낸 것이다. 이 예에서, 유효 범위의 양쪽 끝에 있는 클래스는 중앙에 있는 클래스보다 더 크며(즉, 보다 넓은 픽셀 값 범위를 가짐), 이들 클래스는, 각각, 8개의 픽셀 값 및 2개의 픽셀 값을 가진다. 이들 클래스 사이에 있는, 2개의 다른 클래스는 4개의 픽셀 값으로 된 범위를 가진다.An example 1503 illustrates another embodiment of an adaptive class size for the current range of 32 pixel values. In this example, the classes at both ends of the validity range are larger than the classes at the center (i.e., have a wider range of pixel values), and these classes have eight pixel values and two pixel values, respectively. Between these classes, two different classes have a range of four pixel values.

제2 그룹에 대한 클래스들의 크기도 역시 픽셀 값들의 분포에 적응될 수 있다. 현재의 HEVC 구현예의 제2 그룹의 목표는 히스토그램의 2개의 끝부분만을 이용하는 것이다. 실제로, 히스토그램의 양쪽 끝은 (손실 코딩으로 인한) 오차가 저주파수와 비교하여 보통 더 큰 고주파수에 종종 관련되어 있는 극단적인 값을 포함한다. 제1 그룹에서와 동일한 방식으로, 제2 그룹의 유효 범위들에 대해 몇개의 클래스 크기가 테스트될 수 있다. 그 경우에, 제2 그룹의 2개의 하위 그룹에 대해, 레이트 왜곡 기준을 사용하여 세부 구역(subdivision)(1501 및 1502)이 비교될 수 있다.The size of the classes for the second group may also be adapted to the distribution of pixel values. The goal of the second group of current HEVC implementations is to use only the two ends of the histogram. In fact, both ends of the histogram contain extreme values (due to lossy coding), where the error is often related to the usually higher frequencies, as compared to the low frequencies. In the same manner as in the first group, several class sizes may be tested for the valid ranges of the second group. In that case, for the two subgroups of the second group, the subdivisions 1501 and 1502 may be compared using a rate distortion criterion.

더욱이, 클래스의 크기가 적응되는 실시예가 적용될 수 있다. 예(1504)는 제2 그룹의 제1 범위(좌측)에 대한 제안된 적응된 클래스 크기를 나타낸 것이다. 그리고 예(1505)는 제2 그룹의 제2 하위 그룹(우측)에 대한 제안된 적응된 클래스 크기를 나타낸 것이다. 그 경우에, 중앙에 가까운 클래스보다 양쪽 끝에 있는 클래스가 더 많은 픽셀 값을 포함한다.Furthermore, an embodiment in which the size of the class is adapted may be applied. The example 1504 shows the proposed adapted class size for the first range (left side) of the second group. And the example 1505 shows the proposed adapted class size for the second subgroup (right side) of the second group. In that case, the class at both ends of the class nearer to the center contains more pixel values.

제2 그룹의 목표는 히스토그램의 양쪽 끝을 이용하는 것이며; 그 결과 제2 그룹에 대해 크기의 역적응(inverse adaptation)을 사용하는 것이 때때로 유용하다. 그 경우에, 예(1504)는 제2 하위 그룹(우측)에 대해 사용되고, 예(1505)는 제2 그룹의 제1 하위 그룹(좌측)에 대해 사용된다. 이 실시예에서, 중앙에 가까운 클래스보다 양쪽 끝에 있는 클래스가 더 적은 픽셀 값을 포함한다. 그 경우에, 목표는 동일 확률의 클래스 분류를 생성하는 것이 아니라 제2 그룹의 양쪽 끝의 보다 나은 세그먼트화를 찾아내는 것이다.The goal of the second group is to use both ends of the histogram; As a result, it is sometimes useful to use inverse adaptation of the magnitude for the second group. In that case, an example 1504 is used for the second lower group (right side), and an example 1505 is used for the first lower group (left side) of the second group. In this embodiment, the class at both ends of the class nearer to the center contains fewer pixel values. In that case, the goal is not to generate classifications of the same probability but to find better segmentation of both ends of the second group.

픽셀 값들의 통계적 분포의 중앙이 꼭 전체 픽셀 값 범위의 가운데에 있지는 않기 때문에, 유효 범위에 기초한 분포의 중앙이 결정되고 비트스트림에서 영상 데이터와 함께 전송되어야만 한다. 도 16은 전체 범위의 1/4에 대응하는 유효 범위에 대해 상이한 중앙 위치들을 갖는 전체 범위의 한 예를 나타낸 것이다. 도 13의 예(1302)와 달리, 도 16의 4개의 예(1601, 1602, 1603, 1604)에 대해, 유효 범위의 중앙이 전체 범위의 중앙에 위치해 있지 않다. 이 해결책은 선택된 분류가 픽셀 값들의 분포에 적응될 수 있게 한다.Since the center of the statistical distribution of pixel values is not necessarily in the middle of the entire pixel value range, the center of the distribution based on the effective range must be determined and transmitted with the image data in the bitstream. Figure 16 shows an example of a full range with different center positions for an effective range corresponding to 1/4 of the full range. Unlike the example 1302 in Fig. 13, for the four examples 1601, 1602, 1603 and 1604 in Fig. 16, the center of the effective range is not located at the center of the entire range. This solution allows the selected classification to be adapted to the distribution of pixel values.

결정된 중앙은 이어서 비트스트림에서 전송하기 위해 코딩될 수 있다. 데이터의 코딩을 위한 몇가지 기법들이 예상될 수 있다.The determined center can then be coded for transmission in the bitstream. Several techniques for coding data may be expected.

현재 프레임 영역의 비트 심도가 8 비트인 것으로 간주되는 경우, 중앙 값에 대해 고려될 수 있는 위치들의 수는 '256 - 최소 유효 범위의 크기'에 대응한다. 예를 들어, 도 13과 비교하여, 유효 범위의 최소 크기는 2이고, 이들 2개의 클래스가 적어도 1개의 픽셀을 포함할 수 있다. 따라서, 이 특정의 예에 대해, 중앙은 1부터 254까지의 값을 가질 수 있고, 따라서 중앙에 대해 254개의 위치가 고려될 수 있다.If the bit depth of the current frame region is considered to be 8 bits, the number of positions that can be considered for the median value corresponds to 256 - the size of the minimum effective range. For example, compared to FIG. 13, the minimum size of the effective range is 2, and these two classes may include at least one pixel. Thus, for this particular example, the center may have a value from 1 to 254, thus 254 positions for the center can be considered.

다른 해결책은 중앙 값을 정량화하는 것이다. 일 실시예에서, 중앙이 클래스들의 크기에 따라 코딩된다. 따라서, 예를 들어, 클래스들의 크기(또는 적응된 클래스 크기 방식이 사용될 때 현재 유효 범위의 모든 클래스들의 최소 크기)가 1개의 픽셀 값인 경우, 중앙이 정량화되지 않고, 현재 유효 범위에 대한 모든 가능한 중앙 위치들일 수 있다. 도 16에 도시되어 있는 바와 같이, 클래스들의 크기가 16개의 픽셀 값인 경우, 매 16개의 픽셀 값들마다의 픽셀 값들만이 고려될 수 있다. 이와 같이, 도 16에서, 예(1601, 1602, 1603 및 1604)에 대한 중앙은, 각각, 9, 23, 27 및 6이다. 다른 실시예에서, 알고리즘에서 정의된 클래스들의 최대 크기의 배수인 중앙 위치들만이 고려될 수 있다. 이와 같이, 중앙은 픽셀 값을 클래스들의 최대 크기로 나눈 것이다. 이것은 전송될 비트의 수의 면에서의 감소를 제공한다.Another solution is to quantify the median value. In one embodiment, the center is coded according to the size of the classes. Thus, for example, if the size of the classes (or the minimum size of all classes of the current scope when the adapted class size scheme is used) is one pixel value, then the center is not quantified and all possible centers Location. As shown in FIG. 16, when the size of classes is 16 pixel values, only pixel values of every 16 pixel values can be considered. 16, the centers for the examples 1601, 1602, 1603, and 1604 are 9, 23, 27, and 6, respectively. In other embodiments, only center positions that are a multiple of the maximum size of the classes defined in the algorithm may be considered. Thus, the center is the pixel value divided by the maximum size of the classes. This provides a reduction in terms of the number of bits to be transmitted.

더욱이, 이론적으로, 가장 가능성있는 중앙은 전체 범위의 중앙이다. 이와 같이, 디코더측에서 중앙 위치를 결정하기 위해 전송되는 데이터는 전체 범위의 중앙과 현재 분류의 유효 범위의 중앙 사이의 차이다. 이와 같이, 예를 들어, 도 16에서, 예(1601, 1602, 1603, 1604)에 대해 중앙과 관련하여 전송되는 데이터는, 각각, 16-9=7, 16-23=-7, 16-27=-11, 16-6=10이다.Moreover, theoretically, the most probable center is the center of the entire range. Thus, the data transmitted to determine the center position at the decoder side is the difference between the center of the full range and the center of the valid range of the current classification. Thus, for example, in FIG. 16, the data transmitted in relation to the center for the examples 1601, 1602, 1603 and 1604 are 16-9 = 7, 16-23 = -7, 16-27 = -11, 16-6 = 10.

제2 그룹에 대해, 히스토그램의 중앙이 코딩될 필요가 없다. 따라서, 제2 그룹에 대한 2개의 하위 그룹의 변위를 코딩하기 위해 몇개의 방식들이 고려될 수 있다. 제1 그룹에 대해 기술된 중앙 값의 양자화에 관한 제안된 실시예들은 제2 그룹에 대한 제안된 실시예들로 쉽게 확장될 수 있다.For the second group, the center of the histogram need not be coded. Thus, several schemes can be considered to code the displacement of the two subgroups for the second group. The proposed embodiments of quantizing the median value described for the first group can be easily extended to the proposed embodiments for the second group.

본 발명의 실시예들에서, 유효 범위(선택된 분류)의 위치가 전체 범위에 걸쳐, 즉 전체 범위 내에서의 분류의 위치에 관계없이, 동일한 정밀도(precision) 또는 입도(granularity)로 지정될 수 있다. 이것은 도 16에 도시되어 있는 예(1601 내지 1604)에서의 경우이고, 여기서 위치들(중앙 위치들)은 9, 23, 27 및 6이다. 전체 범위는 0부터 32까지로 표시되어 있다. 32개의 가능한 위치들이 있고, 전체 범위에 걸쳐 입도가 동일하다.In embodiments of the present invention, the location of the validity range (selected classification) may be specified with the same precision or granularity over the entire range, i.e., regardless of the location of the classification within the entire range . This is the case in the examples 1601 to 1604 shown in FIG. 16, where the positions (center positions) are 9, 23, 27 and 6. The entire range is shown as 0 to 32. There are 32 possible positions, and the granularity is the same over the entire range.

그렇지만, 도 19a 및 도 19b에 도시된 바와 같이, 전체 범위의 한 부분에서 전체 범위의 다른 부분에서보다 많은 가능한 위치들을 제공하는 것도 가능하다. 환언하면, 전체 범위 내에서 분류가 어디에 있는지에 의존하여 위치의 입도가 변한다. 이들 실시예는 분류(유효 범위)의 중앙을 전체 범위의 가장 중요한(또는 유망한) 부분에 보다 정밀하게 위치시키기 위해 가변 입도에 의한 전체 범위(여기서 0부터 32까지로 표시되어 있음)의 불균등 양자화를 제안하고 있다. 또한, 불균등 양자화는, 전체 범위의 중요한 부분에서 여전히 적절한 정밀도를 제공하면서, 분류의 위치를 신호하는 데 필요한 비트의 수가 제한될 수 있게 해준다. 예를 들어, 도 19a에 나타낸 바와 같이 전체 범위의 가운데에서, 이러한 보다 세밀한 입도가 적용될 수 있다. 이 도면에서, 가능한 중앙 위치들은 굵은 실선으로 나타내어져 있는 인덱스들에 대응한다. 2개의 가능한 중앙 위치들 사이의 간격은 끝에서보다 전체 범위의 가운데에서 더 작다. 따라서, 전체 범위의 끝에서보다 전체 범위의 가운데에서 중앙 위치가 보다 정밀하게 설정될 수 있다.However, it is also possible to provide more possible positions in other parts of the entire range in one part of the full range, as shown in Figs. 19A and 19B. In other words, the granularity of the position varies depending on where the classification is within the overall range. These embodiments provide unequal quantization of the full range (here indicated by 0 to 32) by variable granularity to more precisely locate the center of the classification (effective range) to the full range of the most important (or promising) I am proposing. In addition, unequal quantization allows the number of bits needed to signal the position of the classification to be limited, while still providing adequate precision in the critical portion of the entire range. For example, in the middle of the entire range as shown in Fig. 19A, such finer granularity can be applied. In this figure, possible central positions correspond to the indices indicated by the bold solid lines. The spacing between the two possible central positions is smaller in the middle of the entire range than at the ends. Thus, the center position in the middle of the entire range can be set more precisely than at the end of the entire range.

도 19b에서, 2개의 가능한 중앙 위치들 사이의 간격은 가운데에서보다 전체 범위의 양끝에서 더 작다. 예를 들어, 이 실시예는 분포의 극단 값(extreme value)에서 중요한 샘플 값들을 가지는 경우에 특히 유용할 수 있다.In Figure 19b, the spacing between the two possible central positions is smaller at both ends of the full range than in the middle. For example, this embodiment may be particularly useful when it has significant sample values at the extreme value of the distribution.

보다 일반적으로, 전체 범위의 어느 곳에서라도 보다 미세한 양자화가 적용될 수 있다.More generally, finer quantization can be applied anywhere in the entire range.

앞서 기술한 바와 같은 가변적인 양자화가 사용될 때, 모든 위치들에 대해 분류 범위(유효 범위의 크기)가 고정될 수 있다. 예를 들어, 분류 범위가 4개의 클래스를 포함할 수 있고, 각각의 클래스는 8개의 픽셀 값으로 이루어져 있다.When variable quantization as described above is used, the classification range (size of the effective range) can be fixed for all positions. For example, the classification range may include four classes, each of which consists of eight pixel values.

분류 범위/클래스 크기를 위치에 따라 변하게 하는 것도 가능하고, 따라서 도 19a에서, 분류 범위는, 예컨대, 위치 12 내지 20에서는 8개의 픽셀 값이고, 위치 10 및 26에서는 16개의 픽셀 값이며, 위치 2 및 28에서는 32개의 픽셀 값이다.It is also possible to vary the classification range / class size depending on the position, and thus, in Fig. 19A, the classification range is, for example, eight pixel values at positions 12 to 20, 16 pixel values at positions 10 and 26, And 28 pixel values.

가변적인 양자화는, 여기에서 기술된 바와 같이, 분류 범위를 결정하기 위해 적용되는 방법에 관계없이 사용될 수 있다. 이 방법은, 예를 들어, 샘플 값들의 통계적 분포의 특성들을 사용하거나 레이트 왜곡 기준을 사용할 수 있다.The variable quantization can be used regardless of the method applied to determine the classification range, as described herein. The method can use, for example, the properties of the statistical distribution of the sample values or use a rate distortion criterion.

가변적인 양자화는 인코더에서도 디코더에서도 사전 결정될 수 있다. 예를 들어, 인코더 및 디코더는 가능한 중앙 위치들(또는 좌측 위치들)에 인덱스들을 할당할 수 있고, 예컨대, 도 19a에서, 위치 2는 인덱스 0이고, 위치 6은 인덱스 1이며, 위치 10은 인덱스 2이고, 위치 12는 인덱스 3이며, 위치 13은 인덱스 4이고, 기타이다. 그러면, 인코더가 선택된 분류의 인덱스를 디코더로 전송하는 것으로 충분하다. 다른 대안으로서, 가변적인 양자화에 관한 정보가 인코더에서 결정되고 비트스트림을 통해 디코더로 신호될 수 있다.Variable quantization can be predetermined in the encoder as well as in the decoder. For example, the encoder and decoder may assign indices to possible center positions (or left positions), e.g., in Figure 19A, position 2 is index 0, position 6 is index 1, position 10 is index 2, position 12 is index 3, position 13 is index 4, and so on. It is then sufficient for the encoder to send the index of the selected classification to the decoder. As an alternative, information about the variable quantization may be determined at the encoder and signaled to the decoder through the bitstream.

한 특정의 실시예에서, 히스토그램의 중앙이 항상 전체 범위의 중앙이라는 것이 고려될 수 있다. 따라서, 그 경우에, 하나의 변위만이 고려된다. 양쪽 그룹이 동일한 변위에 의해 중앙으로 스케일링된다. 그 결과, 단지 하나의 데이터 - 제2 그룹의 제1 범위의 변위 - 만 코딩되면 된다. 도 17의 예(1701, 1702, 1703 및 1704)는 이러한 변위들의 예이다. 예(1701, 1702, 1703, 1704)에서, 변위는, 각각, 4, 6, 10 및 0이다. 변위가 예측 없이 직접 코딩될 수 있다.In one particular embodiment, it can be considered that the center of the histogram is always the center of the entire range. Thus, in that case, only one displacement is considered. Both groups are scaled centrally by the same displacement. As a result, only one data-displacement of the first range of the second group-can be coded. Examples (1701, 1702, 1703 and 1704) of FIG. 17 are examples of such displacements. In the examples 1701, 1702, 1703 and 1704, the displacements are 4, 6, 10 and 0, respectively. The displacement can be directly coded without prediction.

추가의 실시예에서, 예(1705, 1706, 1707 및 1708)에 나타낸 바와 같이, 제2 그룹의 양쪽 하위 그룹이 전체 범위에서 독립적인 위치를 가진다. 2가지 코딩 방식이 고려될 수 있다.In a further embodiment, as shown in examples 1705, 1706, 1707 and 1708, both subgroups of the second group have independent positions in the entire range. Two coding schemes can be considered.

제1 방식에서, 존재하지 않는 제1 그룹의 중앙이 이 존재하지 않는 제1 그룹의 유효 범위의 크기로 코딩된다.In the first scheme, the center of the non-existent first group is coded with the size of the effective range of the first group that does not exist.

양쪽 그룹을 독립적으로 코딩하는 제2 방식은 전체 범위의 2개의 끝으로부터의 2개의 변위(각각의 그룹에 대해 하나씩)를 전송하는 것이다. 따라서, 예(1705, 1706, 1707 및 1708)에 대해, 전송되는 변위는, 각각, 1705에 대해 11 및 32-28=4이고, 1706에 대해 21 및 0이며, 1707에 대해 3 및 32-16=32이고, 1708에 대해 7 및 32-31 =1이다.A second way of independently coding both groups is to transmit two displacements (one for each group) from the two ends of the full range. Thus, for the examples 1705, 1706, 1707 and 1708, the displacements transmitted are 11 and 32-28 = 4 for 1705, 21 and 0 for 1706, 3 and 32-16 for 1707, = 32, 7 for 1708, and 32-31 = 1.

도 18은 본 발명의 일 실시예에 따른, 레이트 왜곡 선택 알고리즘의 단계들을 나타낸 플로우차트이다. 간략화된 설명을 위해, 적응된 클래스 크기를 갖지 않는 제1 그룹에 대한 선택만이 고려된다. 앞서 기술된 다른 실시예들에 대한 선택이 쉽게 적응될 수 있다.18 is a flow chart illustrating the steps of a rate distortion selection algorithm, in accordance with an embodiment of the present invention. For the sake of simplicity, only the selection for the first group that does not have an adapted class size is considered. The selection for other embodiments described above can be readily adapted.

초기 단계(1801)에서, 현재 프레임 영역의 통계가 계산된다. 이것은 모든 픽셀 값 k에 대해 변수들 Histk 및 Sumk을 결정하는 것을 포함한다. Histk는 변수 k와 같은 픽셀 값을 가지는 픽셀들의 수에 대응하고, Sumk는 픽셀 값이 값 k인 모든 픽셀들과 그의 원래의 픽셀 값 사이의 차의 합에 대응한다. 이 알고리즘은 3개의 파라미터 - 클래스의 크기 S, 범위의 크기 R 및 중앙 C - 에 관한 3개의 루프를 포함한다. 단계(1803)에서, 제1 루프는 각각의 가능한 클래스 크기를 테스트한다. 예를 들어, 크기는 도 14에 정의되어 있다. 단계(1804)에서, 전체 범위의 각각의 하위 범위에 대한 오프셋이 계산된다. 예를 들어, 비트 심도가 8이고 클래스의 크기가 16인 경우, 전체 범위 내의 32개의 가능한 범위들에 대한 왜곡 및 오프셋이 계산된다. 특성들에 의해, 오프셋 및 왜곡이 Histk 및 Sumk 또는 현재 범위에서의 모든 k 값의 선형 결합에 의해 계산된다. 이어서, 단계(1807)에서, 각각의 가능한 범위 R(1805) 및 각각의 가능한 중앙 C(1806)에 대해, 레이트 왜곡 비용(rate distortion cost)이 평가된다. 이 평가는 레이트 왜곡 기준에 기초하고 있다. 모든 중앙 C(1808), 모든 범위(1809) 및 모든 크기(1810)가 테스트될 때, 단계(1811)에서, 최상의 레이트 왜곡 비용에 기초하여 최상의 파라미터들 S, R, C가 선택된다. 동일 확률의 분류를 생성하는 이 제2 방식의 장점은 복잡도의 감소 및 코딩 효율의 향상을 포함한다. 클래스의 중앙, 범위 및 크기의 분류 선택은, 분류가 픽셀 값들의 통계적 분포에 기초하고 있는 실시예들과 비교하여, 최적의 레이트 왜곡 선택을 제공한다. 물론, 이 실시예는 현재의 HEVC 구현예와 비교하여 코딩 효율의 면에서의 향상을 제공한다. 이 방식은, 이전의 방식과 비교하여, 디코더측에서 덜 복잡한데, 그 이유는 픽셀들의 분포가 디코더에서 결정될 필요가 없기 때문이다. 더욱이, 이 방식은 HEVC에서의 공지된 기법들보다 덜 복잡할 수 있는데, 그 이유는 어떤 그룹들에서, 보다 적은 수의 클래스들이 사용되기 때문이다.In the initial step 1801, the statistics of the current frame area are calculated. This involves determining the variables Hist k and Sum k for all pixel values k. Hist k corresponds to the number of pixels having the same pixel value as the variable k, and Sum k corresponds to the sum of the differences between all the pixels whose pixel value is the value k and its original pixel value. This algorithm includes three loops with respect to the three parameter-class size S, size range R of the range and center C-. In step 1803, the first loop tests each possible class size. For example, the size is defined in Fig. In step 1804, an offset for each sub-range of the entire range is calculated. For example, if the bit depth is 8 and the size of the class is 16, then the distortion and offset for the 32 possible ranges in the entire range are calculated. By properties, offsets and distortions are calculated by linear combination of Hist k and Sum k or all k values in the current range. Then, at step 1807, for each possible range R 1805 and for each possible center C 1806, a rate distortion cost is estimated. This evaluation is based on a rate distortion criterion. When all the central C 1808, all ranges 1809 and all sizes 1810 are tested, at step 1811, the best parameters S, R, C are selected based on the best rate distortion cost. Advantages of this second scheme of generating the same probability classifications include reduced complexity and improved coding efficiency. The classification selection of the center, range, and size of the class provides an optimal rate distortion selection, as compared to embodiments in which the classification is based on a statistical distribution of pixel values. Of course, this embodiment provides an improvement in terms of coding efficiency as compared to the current HEVC implementation. This approach is less complicated on the decoder side, as compared to previous approaches, since the distribution of pixels need not be determined at the decoder. Moreover, this approach may be less complex than known techniques in HEVC, because fewer classes are used in some groups.

도 18에 나타낸 알고리즘은 모든 대역 오프셋 파라미터들 - 클래스의 크기 S, 범위 R, 중앙 C를 나타내는 값의 위치 - 의 전체 레이트 왜곡 기반 선택을 수행한다. 복잡도를 제한하기 위해, 어떤 파라미터들을 고정시키는 것이 가능하다. 도 18의 알고리즘의 하나의 특정의 구현예에서, 크기 S 및 범위 R이 인코더 및 디코더가 알고 있는 주어진 값들에 고정되어 있다. 예를 들어, S는 8개의 픽셀 값을 나타낼 수 있고, R은 8 픽셀의 클래스 4개에 대응하는 32개의 픽셀 값을 나타낼 수 있다. 그 결과, 최적화될 유일한 파라미터는 중앙 C를 나타내는 값이다.The algorithm shown in Fig. 18 performs a full rate-distortion-based selection of all band offset parameters-the size S of the class, the range R, and the location of the value representing the center C. [ In order to limit the complexity, it is possible to fix certain parameters. In one particular implementation of the algorithm of FIG. 18, the size S and the range R are fixed to the given values known to the encoder and decoder. For example, S may represent 8 pixel values, and R may represent 32 pixel values corresponding to 4 classes of 8 pixels. As a result, the only parameter to be optimized is a value that represents the center C.

본 발명의 실시예들이 픽셀들의 분류를 결정하는 데 픽셀 값 범위에 걸쳐 픽셀 값들의 재분할을 고려하고 있기 때문에, 분류가 그에 따라 상이한 픽셀 값 분포들에 적응될 수 있다. 상세하게는, 분류가 픽셀들의 성분 유형에 따라 적응될 수 있다. 예를 들어, 크로마 성분 픽셀 세트의 경우에, 픽셀 값들이 루마 크로마 픽셀들의 픽셀 값들과 비교하여 더 낮은 경향이 있다. 그에 부가하여, 크로마 U 픽셀 값들은 보다 집중되어 있고 비교적 더 높은 픽셀 값들을 가지는 크로마 V 픽셀 값들의 분포와 상이한 분포를 가진다. 더욱이, 크로마 성분 픽셀들의 경우에, 픽셀 값들의 분포는, 보다 널리 확산된 분포를 제공하는 루마 크로마 픽셀들의 분포와 비교하여, 피크 픽셀 값들 부근에 더 집중되는 경향이 있다.Since embodiments of the present invention are considering re-segmenting pixel values over a range of pixel values to determine the classification of pixels, the classification may be adapted accordingly to different pixel value distributions. In particular, the classification may be adapted according to the component type of the pixels. For example, in the case of a chroma component pixel set, the pixel values tend to be lower compared to the pixel values of the luma chroma pixels. In addition, the chroma U pixel values are more concentrated and have a distribution that is different from the distribution of chroma V pixel values with relatively higher pixel values. Moreover, in the case of chroma component pixels, the distribution of pixel values tends to be more concentrated near the peak pixel values, as compared to the distribution of luma chroma pixels providing a more widely diffused distribution.

이상에서 알 수 있는 바와 같이, 디코더측에서 픽셀들의 분포를 결정하는 것을 피하기 위해, SAO 유형(SAO 없음, 에지 오프셋 또는 대역 오프셋) 및 보상 오프셋 값들에 부가하여, 파라미터들 S, R 및 C가 비트스트림에서 전송된다. 클래스 크기 및 범위가 고정되어 있을 때, 디코더가 범위의 중앙을 검색할 수 있게 해주기 위해 C만이 전송된다.As can be seen, in addition to the SAO type (no SAO, edge offset, or band offset) and compensation offset values, the parameters S, R, and C, in addition to the SAO type Stream. When the class size and range are fixed, only C is sent to allow the decoder to search the center of the range.

고정된 S 및 R의 경우에, SAO 파라미터들을 인코딩하는 하나의 공지된 해결책은 도 21의 플로우차트의 형태로 기술되는, 도 20a의 의사 코드를 적용하는 것이다.In the case of fixed S and R, one known solution for encoding SAO parameters is to apply the pseudocode of Fig. 20A, which is described in the form of the flowchart of Fig.

이 프로세스는 SAO의 유형(코드워드 sao_type_idx에 저장되어 있음), 대역 오프셋 유형이 사용될 때 유효 범위의 중앙을 나타내는 값(코드워드 sao_band_position에 저장되어 있음), 및 SAO 오프셋들(코드워드들 sao_offset에 저장되어 있음)을 비롯한 SAO 파라미터들을 결정하는 것으로 시작한다. 도 20a에서, cldx는 SAO가 적용되는 색상 성분의 인덱스를 나타내고, rx 및 ry는 SAO가 적용되는 영역의 위치를 나타내며, i는 샘플 값들의 클래스의 인덱스이다.This process includes storing the type of SAO (stored in the codeword sao_type_idx), a value indicating the center of the effective range when the band offset type is used (stored in the codeword sao_band_position), and SAO offsets (stored in the codewords sao_offset) Lt; RTI ID = 0.0 > SAO < / RTI > parameters. 20A, cldx represents the index of the color component to which the SAO is applied, rx and ry represent the position of the region to which the SAO is applied, and i is the index of the class of sample values.

SAO 파라미터 인코딩은 이어서 단계(2003)에서 unsigned Exp Golomb 코드(ue(v))(즉, unsigned 가변 길이 코드)를 사용하여 SAO 유형을 인코딩하는 것으로 시작한다. SAO 유형이 유형 5(대역 오프셋)인 경우, 단계(2017)에서, 인코딩은 크기 5의 unsigned 고정 길이 코드(u(5))를 사용하여 유효 범위의 중앙의 위치를 나타내는 값의 인코딩을 계속한다. 이어서, 범위 내에 포함되어 있는 4개의 클래스에 대응하는 4개의 오프셋의 인코딩이 단계들(2019 내지 2025)에서 반복하여 수행된다. 여기서, 각각의 오프셋이 signed Exp Golomb 코드(se(v))[즉, signed 가변 길이 코딩(variable-length-coding, VLC) 코드]를 사용하여 인코딩된다. 이어서, 인코딩 프로세스가 단계(2027)로 종료된다.The SAO parameter encoding then begins by encoding the SAO type using the unsigned Exp Golomb code (ue (v)) (i.e., unsigned variable length code) in step 2003. If the SAO type is type 5 (band offset), then in step 2017 the encoding continues encoding the value indicating the position in the middle of the validity range using an unsigned fixed length code u (5) of size 5 . The encoding of the four offsets corresponding to the four classes included in the range is then repeated in steps 2019 through 2025. [ Here, each offset is encoded using a signed Exp Golomb code (se (v)) (i.e., a signed variable-length-coding (VLC) code). The encoding process then ends with step 2027. [

SAO 유형이 대역 오프셋이 아닌 경우, 먼저 SAO 유형이 SAO 없음인지를 검사한다(SAO 없음은 관렴 샘플들에 어떤 오프셋도 적용되지 않음을 의미함). SAO 없음이 선택된 경우, 단계(2027)에서, 인코딩 프로세스가 종료한다.If the SAO type is not a band offset, first check whether the SAO type is SAO-free (no SAO means no offset applied to the peer samples). If no SAO is selected, then in step 2027, the encoding process ends.

그렇지 않은 경우, 단계들(2007 내지 2013)에서 4개의 에지 오프셋의 반복적 인코딩을 계속한다. 다시 말하지만, 단계(2027)에서, 인코딩 프로세스가 종료한다.Otherwise, continue the iterative encoding of the four edge offsets in steps 2007-2013. Again, at step 2027, the encoding process ends.

표현할 값들의 범위가 비교적 크지만 이 범위 내의 어떤 값들이 다른 값들보다 가능성이 많을 때 VLC 코드가 일반적으로 사용된다. 가장 가능성이 많은 값들은 짧은 코드를 부여받는 반면, 가능성이 적은 값들은 긴 코드를 부여받는다. 이들 코드의 주된 단점은 FLC(fixed length code, 고정 길이 코드)보다 높은 디코딩 복잡도를 유발한다는 것이다. 실제로, VLC 코드는 코드의 최종 크기를 모르기 때문에 비트별로 판독되어야만 하는 반면, FLC 코드는 그의 크기를 알고 있기 때문에 직접 판독될 수 있다.VLC code is generally used when the range of values to be expressed is relatively large, but some values in this range are more likely than others. The most likely values are given a short code, while the least likely values are given a long code. The main disadvantage of these codes is that they result in higher decoding complexity than FLC (fixed length code). In practice, the VLC code must be read bit-by-bit because it does not know the final size of the code, whereas the FLC code can be read directly because it knows its size.

도 20b 및 도 22에서, VLC 코드를 FLC 코드로 대체하는, 이 인코딩 프로세스에 대한 대안을 제안한다.In Fig. 20B and Fig. 22, an alternative to this encoding process, which replaces the VLC code with the FLC code, is proposed.

이 인코딩 프로세스는 단계(2001)와 동일한 단계(2201)로 시작한다. 단계(2203)에서, 코드워드 sao_type_idx의 VLC 코딩이 FLC 인코딩으로 대체되어 있다. 여기서 6개의 가능한 SAO 유형 값(즉, "SAO 없음" 유형, 4개의 "에지 오프셋" 유형, 및 "대역 오프셋" 유형)을 인코딩하기 위해 3 비트가 필요하다. 이어서, SAO의 유형이 "SAO 없음"인지를 검사한다. 그 경우에, 더 이상 아무 것도 인코딩되지 않고, 프로세스가 단계(2215)로 종료한다. 그렇지 않은 경우, SAO의 유형이 "대역 오프셋"인지를 검사한다. 예인 경우, 범위의 중앙의 위치를 나타내는 값이 크기 5의 unsigned FLC 코드의 형태로 코드워드 SAO_band_position에 인코딩된다. 실제로, 이 예에서, 클래스 크기가 8개의 샘플 값이고 범위가 4개의 클래스로 이루어져 있는 경우, 256개 값의 전체 범위에 대해 28개의 상이한 위치들이 가능하다.The encoding process begins with step 2201, which is the same as step 2001. In step 2203, the VLC coding of the codeword sao_type_idx is replaced with FLC encoding. Three bits are needed here to encode the six possible SAO type values (i.e., "no SAO" type, four "edge offset" types, and "band offset" types). Then, it is checked whether the type of SAO is "no SAO ". In that case, nothing is encoded anymore, and the process ends with step 2215. Otherwise, it is checked whether the type of SAO is "band offset ". In case of YES, a value indicating the position of the center of the range is encoded into a code word SAO_band_position in the form of an unsigned FLC code of size 5. Indeed, in this example, if the class size is 8 sample values and the range consists of 4 classes, 28 different positions are possible for the entire range of 256 values.

이 단계에 뒤이어서, 단계들(2211 내지 2213)에서 4개의 SAO 오프셋의 인코딩이 있게 된다. 여기서, FLC 코드가 단계(2023 및 2011)의 VLC 코드를 대체한다. -31부터 32까지의 정수 오프셋 값들을 커버하는 최대 5 비트의 VLC 코드를 사용하는 대신에, 여기서 단지 4개의 상이한 값들[일반적으로, (-2, -1 , 1 , 2)]을 인코딩할 수 있는 2 비트 크기의 FLC 코드를 사용한다. 가능한 값들의 수를 감소시키는 것은 인코딩을 가장 빈번히 사용되는 오프셋 값들에 집중시키는 효과를 가진다.Following this step, there will be encodings of four SAO offsets in steps 2211 through 2213. Here, the FLC code replaces the VLC code in steps 2023 and 2011. [ Instead of using up to 5 bits of VLC code covering integer offset values from -31 to 32, here only four different values (generally, (-2, -1, 1, 2) It uses 2 bit size FLC code. Reducing the number of possible values has the effect of focusing the encoding on the most frequently used offset values.

이 프로세스는 단계(2215)에서 오프셋 인코딩 후에 종료한다.This process ends after offset encoding in step 2215. [

유의할 점은, 다른 실시예에서, 오프셋들에 의해 표현되는 범위가 픽처 헤더, 슬라이스 헤더 또는 LCU 헤더에서의 인코딩, 2 비트 코드에 의해 획득되는 오프셋들에 적용될 증배 인자에 의해 확장될 수 있다는 것이다. 예를 들어, 증배 인자가 4인 경우, 인코딩된 오프셋들(-2, -1 , 1 , 2)은 (-8, -4, 4, 8)로 된다. 증배 인자가 또한 표준화(고정)되어 있거나, 다른 LCU로부터 추론될 수 있다. 예를 들어, 이전 LCU에 적용가능한 증배 인자가 현재 LCU에 적용되는 것으로 가정될 수 있다.Note that in other embodiments, the range represented by the offsets may be extended by a multiplication factor to be applied to the offsets obtained by the encoding in the picture header, slice header or LCU header, 2-bit code. For example, if the multiplication factor is 4, the encoded offsets (-2, -1, 1, 2) are (-8, -4, 4, 8). The multiplication factor may also be normalized (fixed) or inferred from other LCUs. For example, it can be assumed that the multiplication factor applicable to the previous LCU is applied to the current LCU.

이와 유사하게, 다른 실시예에서, 픽처 헤더, 슬라이스 헤더 또는 LCU 헤더에 인코딩되어 있는 천이 값이 2 비트 코드에 의해 획득되는 오프셋들에 적용될 수 있다. 예를 들어, 천이 값이 5인 경우, 인코딩된 오프셋들(-2, -1 , 1 , 2)은 (3, 4, 6, 7)로 된다. 다시 말하지만, 천이 값이 또한 표준화(고정)되어 있거나, 다른 LCU로부터 추론될 수 있다. 예를 들어, 이전 LCU에 적용가능한 천이 값이 현재 LCU에 적용되는 것으로 가정될 수 있다.Similarly, in other embodiments, a transition value encoded in a picture header, slice header, or LCU header may be applied to offsets obtained by a two-bit code. For example, if the transition value is 5, the encoded offsets (-2, -1, 1, 2) are (3, 4, 6, 7). Again, the transition value may also be normalized (fixed) or inferred from other LCUs. For example, it can be assumed that a transition value applicable to the previous LCU is applied to the current LCU.

테스트로부터, 가능한 오프셋 값들을 보다 적게 가지는 것이 SAO 방법의 성능을 그다지 감소시키지 않는다는 것을 알았다. 어떤 오프셋 값들의 억제에 의해 유발되는 손실이 가능성이 적은 오프셋 값들의 과중한 비트레이트 비용의 억제로 보상되는 것처럼 보인다.From testing it has been found that having fewer possible offset values does not significantly reduce the performance of the SAO method. It appears that the loss caused by the suppression of certain offset values is compensated by the suppression of the excessive bitrate cost of the less likely offset values.

부가의 테스트로부터, 또한 상이한 오프셋 값들의 수가, 성능 손실이 그다지 없으면서, 3개 그리고 심지어 2개의 오프셋들(1 비트만 인코딩하면 됨)로 추가로 감소될 수 있다는 것을 알았다.From additional testing it has also been found that the number of different offset values can be further reduced to three and even two offsets (only one bit is encoded), with very little performance loss.

도 23에서, 인코딩 프로세스의 추가적인 개선이 제안되어 있다. 여기서, 에지 오프셋 유형의 경우에 사용되는 오프셋 값들이 에지 오프셋의 유형으로부터 직접 추론될 수 있는 것으로 생각한다. 그 경우에, 에지 오프셋 값들의 인코딩이 필요하지 않다. 다시 말하자면, 에지 오프셋의 각각의 유형이 신호 방향에 따라 4개의 클래스와 연관되어 있고, 각각의 클래스는 연관된 오프셋 값을 가진다. 이 실시예는 테스트가, 일반적으로 주어진 에지 오프셋 유형 및 주어진 클래스에 대해, 오프셋 값들이 서로 가깝고 일반적으로 동일하다는 것을 보여주는 것으로부터 촉발된 것이다. 그 결과, 각각의 에지 오프셋 유형에 대해 한 세트의 4개의 오프셋 값들을 고정시키는 것을 제안한다. 예를 들어, 다음과 같은 연관 관계를 제안한다:In Figure 23, further improvements in the encoding process are proposed. Here, it is assumed that the offset values used in the case of the edge offset type can be inferred directly from the type of the edge offset. In that case, the encoding of the edge offset values is not necessary. In other words, each type of edge offset is associated with four classes according to the signal direction, and each class has an associated offset value. This embodiment is triggered by the test showing that, for a given edge offset type and a given class, the offset values are generally close to each other and generally the same. As a result, it is proposed to fix a set of four offset values for each edge offset type. For example, we suggest the following association:

Figure pct00006
수직 에지 오프셋: (-2, -1, 1, 2)
Figure pct00006
Vertical edge offset: (-2, -1, 1, 2)

Figure pct00007
수평 에지 오프셋 (-2, -1, 1, 3)
Figure pct00007
Horizontal edge offset (-2, -1, 1, 3)

Figure pct00008
제1 대각 에지 오프셋 (-3, -2, -1, 1)
Figure pct00008
The first diagonal edge offset (-3, -2, -1, 1)

Figure pct00009
제2 대각 에지 오프셋 (-1, 1, 2, 3)
Figure pct00009
The second diagonal edge offset (-1, 1, 2, 3)

도 23에서의 단계들(2301 및 2303)은 도 22를 참조하여 이미 설명한 단계들(2201 및 2203)과 동일하다. 단계들(2305 및 2307)에서, SAO 유형이, 각각, "에지 오프셋" 또는 "SAO 없음"인지를 검사한다. 이들 경우 둘 다에서, 어떤 오프셋도 인코딩되지 않는다. SAO 유형이 "에지 오프셋"인 경우에, 에지 오프셋 유형 값을 판독할 때, 디코더는 고정된 오프셋 값과의 기지의 연관 관계의 덕분으로 에지 오프셋 유형으로부터 오프셋 값을 추론할 것이다.The steps 2301 and 2303 in FIG. 23 are the same as the steps 2201 and 2203 already described with reference to FIG. In steps 2305 and 2307, it is checked whether the SAO type is "edge offset" or "no SAO ", respectively. In both of these cases, no offset is encoded. When the SAO type is "edge offset ", upon reading the edge offset type value, the decoder will deduce the offset value from the edge offset type by virtue of the known association with the fixed offset value.

도 23의 실시예에서, SAO 유형이 "대역 오프셋"인 경우, 단계(2309)에서, 범위의 중앙의 위치를 나타내는 값이 인코딩되고, 4개의 오프셋 값이 단계들(2311 내지 2317)에 의해 반복적으로 인코딩된다. 인코딩 프로세스가 단계(2319)로 종료된다.In the embodiment of FIG. 23, if the SAO type is "band offset ", then in step 2309, a value indicating the position in the middle of the range is encoded and the four offset values are repeated by steps 2311 through 2317 / RTI > The encoding process ends at step 2319. [

도 24 및 도 25의 실시예에서, 도 20a 및 도 21에 기술된 인코딩 프로세스의 다른 수정을 적용한다. 이전의 실시예에서 이미 언급한 바와 같이, 범위의 중앙의 위치를 나타내는 정보(sao_band_position)를 인코딩하기 위해 5 비트의 FLC 코드가 사용되는 반면, 단지 28개의 상이한 위치들이 사용된다. 그 조건에서, 4개의 FLC 코드(각각이 5 비트 길이임)가 사용되지 않은 채로 있다. 여기서, SAO 유형을 인코딩하기 위해 사용되는 코드워드를 제거하기 위해 이들 4개의 여분의 FLC 코드를 이용하는 것을 제안한다. 범위 위치들 및 에지 오프셋 유형들을 결합하여 코딩하기 위해 새로운 코드워드 SAO_band_position_and EO가 사용될 것이다. 이 새로운 코드워드도 역시 5 비트 길이이다.In the embodiment of Figures 24 and 25, other modifications of the encoding process described in Figures 20A and 21 apply. As already mentioned in the previous embodiment, a 5 bit FLC code is used to encode information (sao_band_position) indicating the position of the center of the range, whereas only 28 different positions are used. In that condition, the four FLC codes (each 5 bits long) remain unused. Here we propose to use these four extra FLC codes to remove the codewords used to encode the SAO type. A new codeword SAO_band_position_and EO will be used to jointly code the range positions and edge offset types. The new codeword is also 5 bits long.

종전과 같이, 이 프로세스는 단계(2501)에서 SAO 파라미터들을 정의하는 것으로 시작한다. 이 프로세스는 뒤이어서 단계(2503)에서 SAO가 사용되고 있는지 여부를 나타내는 1 비트 길이 플래그(SAO_LCU_flag)를 인코딩한다. SAO가 사용되지 않는 경우[단계(2505)], 프로세스가 종료한다[단계(2507)].As before, this process begins with defining the SAO parameters in step 2501. This process then encodes the 1-bit length flag (SAO_LCU_flag) indicating whether or not SAO is being used in step 2503. If SAO is not used (step 2505), the process ends (step 2507).

SAO가 사용되는 경우, 단계(2509)에서, 어느 유형의 SAO가 사용되는지를 검사한다. SAO 유형이 "대역 오프셋"인 경우, 단계(2513)에서, 범위의 중앙의 위치를 나타내는 값을 인코딩하기 위해 코드워드 SAO_band_position_and_EO의 처음 28개의 코드가 사용된다. SAO 유형이 "에지 오프셋"인 경우, 단계(2511)에서, 에지 오프셋의 유형(수직, 수평, 제1 대각 또는 제2 대각)을 인코딩하기 위해 코드워드 SAO_band_position_and_EO의 마지막 4개의 코드가 사용된다. 단계들(2511 또는 2513)에 뒤이어서, 단계들(2515 내지 2521)에 의해 4개의 오프셋 값들을 인코딩한다.If SAO is used, then in step 2509 it is checked what type of SAO is used. If the SAO type is "band offset ", then in step 2513, the first 28 codes of the codeword SAO_band_position_and_EO are used to encode a value indicating the position in the middle of the range. If the SAO type is "edge offset ", in step 2511, the last four codes of codeword SAO_band_position_and_EO are used to encode the type of edge offset (vertical, horizontal, first diagonal or second diagonal). Following steps 2511 or 2513, four offset values are encoded by steps 2515 to 2521. [

그런데, 본 실시예에서 에지 오프셋의 유형을 인코딩하기 위해 여분의 코드워드들이 사용되지만, 여분의 코드워드들이, 다른 대안으로서, 다른 목적들을 위해 사용될 수 있다는 것을 잘 알 것이다. 인코더로부터 디코더로 송신될 필요가 있는 임의의 다른 정보가 여분의 코드워드들을 사용하여 인코딩될 수 있다.It will be appreciated, however, that in this embodiment redundant codewords are used to encode the type of edge offset, but extra codewords may be used for other purposes, as an alternative. Any other information that needs to be transmitted from the encoder to the decoder may be encoded using the extra codewords.

도 26에서, 대역 오프셋의 경우에 적용될 오프셋들을 결정하는 추가의 실시예를 제안한다. 이 실시예는 테스트가, 대역 오프셋의 경우에, 대부분의 오프셋들이 절대값에서 낮은 진폭을 가진다는 것을 보여주는 것으로부터 촉발된 것이다. 실제로, 오프셋 값들은 일반적으로 -2, -1, 1 및 2이다. 예를 들어, 도 20a 내지 도 25의 에에서와 같이, 범위 내의 클래스 수가 4로 감소될 때, 4개의 오프셋 값들로 된 상이한 그룹들의 수도 역시 감소된다. 4개의 상이한 오프셋 값 및 4개의 클래스를 갖는 상기 예에서, 상이한 그룹들의 수는 44 =256이다. 도 21, 도 22, 도 23 및 도 25의 실시예들에서, 오프셋 값들(4개의 오프셋 값, 각각이 2 비트를 사용하여 인코딩됨)을 인코딩하기 위해 8 비트가 사용된다. 여기서, 4개의 오프셋으로 된 그룹들 모두가 동일한 선택될 확률을 가지는 것으로 간주되고 있다. 그렇지만, 이들 그룹 중 일부가 다른 것들보다 가능성이 적다. 가능성이 적은 그룹들을 제거함으로써, 이들을 인코딩하는 데 필요한 비트의 수를 감소시키는 것이 가능하다. 그 결과, 각각의 오프셋 값에 대해 2 비트를 사용하여 4개의 상이한 오프셋 값을 인코딩하는 대신에, 4개의 오프셋 값으로 된 상이한 그룹들에 인덱스들을 할당하고 인덱스를 인코딩하는 것 - 가능성이 적은 그룹의 제거로 인해 인덱스가 8 비트 미만을 사용하여 인코딩됨 - 을 제안한다. 훈련 시퀀스 세트에 대해 SAO를 적용하고 그룹들에 관한 통계를 계산함으로써 그룹들의 확률이 결정될 수 있다. 선택될 확률에 따라 정렬되어 있는 모든 가능한 그룹들을 수집하는 테이블이 사전 결정되고 인코더 및 디코더에 알려져 있을 수 있다. 이 테이블에서, 각각의 오프셋 그룹은 인덱스 값에 연관될 것이다. 그룹 인덱스 인코딩에 할당되는 비트의 수가 고정(표준화)되거나 시퀀스, 프레임, 슬라이스 또는 LCU에 대해 고정되어 있고, 대응하는 헤더들에 인코딩되어 있을 수 있다. 가장 가능성있는 그룹들에 대응하는 테이블 내의 그룹들의 서브셋이 인덱스 인코딩에 할당된 비트의 수에 따라 인코더 및 디코더에 의해 결정될 것이다. In Fig. 26, a further embodiment for determining the offsets to be applied in the case of band offsets is proposed. This embodiment is triggered by the test showing that in the case of a band offset, most of the offsets have a low amplitude in absolute value. In practice, the offset values are typically -2, -1, 1, and 2. For example, as in Figures 20A-25, when the number of classes in the range is reduced to four, the number of different groups of four offset values is also reduced. In the example with four different offset values and four classes, the number of different groups is 4 4 = 256. In the embodiments of Figures 21, 22, 23 and 25, eight bits are used to encode offset values (four offset values, each encoded using two bits). Here, all the groups of four offsets are considered to have the same probability of being selected. However, some of these groups are less likely than others. By eliminating less likely groups, it is possible to reduce the number of bits needed to encode them. As a result, instead of encoding four different offset values using two bits for each offset value, assigning indexes to different groups of four offset values and encoding the index - And that the index is encoded using less than 8 bits. The probability of groups can be determined by applying SAO to the training sequence set and calculating statistics for the groups. A table that collects all possible groups that are sorted according to the probability of being selected may be predetermined and known to the encoder and decoder. In this table, each offset group will be associated with an index value. The number of bits assigned to the group index encoding may be fixed (normalized) or fixed for a sequence, frame, slice or LCU, and encoded in corresponding headers. A subset of the groups in the table corresponding to the most probable groups will be determined by the encoder and decoder depending on the number of bits assigned to the index encoding.

최상의 그룹의 선택을 나타내는 실시예가 도 26에 기술되어 있다. 이 프로세스는 변수 j가 초기화되는 단계(2601)에서 시작한다. 모든 가능한 오프셋 그룹들의 테스트를 가능하게 하기 위해 이 변수 j가 점차적으로 증가된다. 제안된 실시예에서, 4개의 오프셋들로 된 그룹을 생각하고 있지만, 다른 오프셋 수가 생각될 수 있을 것이다. 단계(2603)에서, 모든 그룹들이 테스트되었는지(예를 들어, NbOffsetGroup이 128일 수 있는지)를 검사한다. 예인 경우, 프로세스가 종료하고, 선택된 그룹에 대응하는 8 비트 미만의 코드워드가 인코딩된다. 아니오인 경우, 프로세스는 변수 i의 초기화로 계속되어, 범위 내의 모든 클래스들을 테스트할 수 있게 한다[단계(2605)]. 단계(2606)에서, 원래의 샘플들과 오프셋 그룹 j에 대응하는 SAO 필터링된 인코딩된 샘플들 간의 차의 합을 나타내는 변수 SumDiff(j)가 0으로 초기화된다. 여기서, 4개의 클래스만이 고려되고 있지만, 오프셋 수와 부합하는 다른 클래스 수가 가능하다. 단계(2607)에서, 테스트될 어떤 클래스들이 남아 있는 경우, 변수 k를 초기화하여, 클래스 i에 대응하는 샘플 범위 내의 모든 가능한 샘플들을 테스트할 수 있게 한다. 단계들(2611 내지 2619)에 의해, 오프셋 그룹 j 내의 클래스 i의 오프셋으로 필터링된 인코딩된 샘플들과 고려되는 클래스 i 내의 원래의 샘플들 간의 차의 절대값의 합을 계산한다. 여기서 orig(k)는 인코딩된 값 enc(k)에 대응하는 원래의 샘플 값들의 평균이다. filter(i,j)는 오프셋 그룹 j 내의 클래스 i에 대응하는 오프셋 값이다. SumDiff(j)는 범위를 구성하는 모든 클래스들(여기서, 4개의 클래스)에 대해 계산된 차의 합이다. 단계들(2621 내지 2626)을 포함하는 루프에서, 모든 계산된 차의 합들이 비교되고, 최소 합을 가지는 그룹의 인덱스가 선택된다. 선택된 인덱스는, 인코딩된 샘플들에 적용될 때, 필터링된 샘플들과 원래의 샘플 간의 차를 최소화할 수 있게 해주는 오프셋 그룹에 대응한다.An embodiment showing the selection of the best group is described in Fig. This process begins at step 2601 where a variable j is initialized. This variable j is incrementally increased to enable testing of all possible offset groups. In the proposed embodiment, a group of four offsets is contemplated, but other offsets may be conceivable. In step 2603, it is checked whether all the groups have been tested (for example, NbOffsetGroup can be 128). If yes, the process ends and less than 8 bits of codeword corresponding to the selected group are encoded. If not, the process continues with the initialization of variable i, allowing all classes in the range to be tested (step 2605). In step 2606, a variable SumDiff (j) representing the sum of the differences between the original samples and the SAO filtered encoded samples corresponding to the offset group j is initialized to zero. Here, only four classes are considered, but the number of different classes matching the number of offsets is possible. In step 2607, if there remain some classes to be tested, the variable k is initialized to allow testing of all possible samples in the sample range corresponding to class i. The steps 2611 to 2619 calculate the sum of the absolute values of the differences between the encoded samples filtered at offset of class i in offset group j and the original samples in class i considered. Where orig (k) is the average of the original sample values corresponding to the encoded value enc (k). filter (i, j) is an offset value corresponding to class i in offset group j. SumDiff (j) is the sum of the differences computed for all classes (here, four classes) that make up the range. In the loop comprising steps 2621 through 2626, the sums of all calculated differences are compared and the index of the group with the smallest sum is selected. The selected index corresponds to an offset group that, when applied to the encoded samples, allows to minimize the difference between the filtered samples and the original sample.

구문 인코딩 프로세스 동안, 예를 들어, 도 22의 단계들(2211 내지 2213)로 나타낸 오프셋 값들의 인코딩이 선택된 오프셋 그룹에 대응하는 인덱스의 인코딩으로 대체된다.During the syntax encoding process, for example, the encoding of the offset values indicated by steps 2211 through 2213 of Figure 22 is replaced with the encoding of the index corresponding to the selected offset group.

루마 성분 픽셀의 분류가 크로마 U 또는 V 성분 픽셀의 분류와 별개로 수행되고, 따라서 각각의 클래스가 유사한 수의 픽셀들을 가지도록 각각의 분류가 그에 따라 적응될 수 있다.The classification of the luma component pixels is performed separately from the classification of the chroma U or V component pixels and thus each classification can be adapted accordingly so that each class has a similar number of pixels.

따라서, 본 발명의 실시예들의 방법들은 루마 또는 크로마 신호 둘 다에 대해 독립적으로 보다 최적의 분류를 제공하도록 구성되어 있을 수 있는 보다 유연한 분류 방식을 제공하고, 그로써 코딩 효율의 향상을 가져온다.Thus, the methods of embodiments of the present invention provide a more flexible classification scheme that can be configured to provide a more optimal classification independently for both luma or chroma signals, thereby resulting in improved coding efficiency.

본 발명이 특정의 실시예들을 참조하여 이상에서 기술되어 있지만, 본 발명이 특정의 실시예들로 제한되지 않고, 본 발명의 범위 내에 속하는 수정들이 기술 분야의 당업자에게 명백할 것이다.Although the present invention has been described above with reference to specific embodiments, it is to be understood that the invention is not limited to the specific embodiments, and modifications that are within the scope of the invention will be apparent to those skilled in the art.

예를 들어, 이전의 실시예들이 영상의 픽셀들 및 그의 대응하는 픽셀 값들과 관련하여 기술되어 있지만, 본 발명과 관련하여, 픽셀 그룹이 대응하는 그룹 픽셀 값과 함께 고려될 수 있다는 것을 잘 알 것이다. 샘플은 따라서 영상의 하나 이상의 픽셀에 대응할 수 있다.For example, while previous embodiments have been described with reference to pixels of an image and their corresponding pixel values, it should be appreciated that, in the context of the present invention, a group of pixels may be considered with corresponding group pixel values . The sample may thus correspond to one or more pixels of the image.

본 발명의 추가의 측면들이 이하에 기재되어 있다.Additional aspects of the invention are described below.

본 발명의 제1 추가의 측면에 따르면, 영상의 재구성된 샘플 세트에 대한 보상 오프셋들을 제공하는 방법이 제공되고, 각각의 샘플은 각자의 샘플 값을 가지며, 세트의 복수의 샘플들의 샘플 값들은 샘플 값들의 통계적 분포로 표현가능하며, 이 방법은 샘플 값들의 통계적 분포의 특성들에 의존하여, 샘플들의 대응하는 샘플 값에 따라 샘플들을 재분할하기 위한 복수의 클래스들을 결정하는 단계 - 각각의 클래스는 각자의 샘플 값의 범위를 정의함 -; 및 상기 클래스의 각각의 샘플의 각자의 샘플 값에 적용하기 위한 각자의 보상 오프셋을 각각의 결정된 클래스와 연관시키는 단계를 포함한다.According to a first additional aspect of the present invention there is provided a method of providing compensation offsets for a reconstructed sample set of images, each sample having its own sample value, The method comprising the steps of determining a plurality of classes for re-segmenting samples according to a corresponding sample value of samples, depending on the characteristics of the statistical distribution of sample values, Define a range of sample values of; And associating each of the determined classes with a respective compensation offset for applying to a respective sample value of each of the samples of the class.

본 발명의 이 측면에서, 샘플들의 분류를 결정하는 데 샘플 값들의 통계적 분포가 고려되기 때문에, 분류가 그에 따라 모든 가능한 샘플 값의 범위들에 적응될 수 있다. 더욱이, 분류가 샘플들의 성분 유형에 따라 적응될 수 있다. 예를 들어, 크로마 신호에 대응하는 픽셀들의 경우에, 픽셀 값들의 분포는, 보다 널리 확산된 분포를 제공하는 루마 신호와 비교하여, 피크 픽셀 값들 부근에 더 집중되는 경향이 있다. 따라서, 본 발명의 실시예들의 방법들은 루마 또는 크로마 신호 둘 다에 대해 독립적으로 보다 최적의 분류를 제공하도록 구성되어 있을 수 있는 보다 유연한 분류 방식을 제공하고, 그로써 코딩 효율의 향상을 가져온다.In this aspect of the invention, since the statistical distribution of the sample values is taken into account in determining the classification of the samples, the classification may accordingly be adapted to the ranges of all possible sample values. Moreover, the classification can be adapted according to the component type of the samples. For example, in the case of pixels corresponding to a chroma signal, the distribution of pixel values tends to be more concentrated in the vicinity of peak pixel values, as compared to a luma signal providing a more widely diffused distribution. Thus, the methods of embodiments of the present invention provide a more flexible classification scheme that can be configured to provide a more optimal classification independently for both luma or chroma signals, thereby resulting in improved coding efficiency.

일 실시예에서, 통계적 분포의 특성들은 영상 샘플 값들의 통계적 분포의 결정된 중앙을 포함한다.In one embodiment, the properties of the statistical distribution include a determined center of statistical distribution of image sample values.

일 실시예에서, 통계적 분포의 특성들은 통계적 분포의 유효 샘플 값의 범위를 포함한다.In one embodiment, the characteristics of the statistical distribution include a range of valid sample values of the statistical distribution.

일 실시예에서, 샘플들이 클래스들 간에 실질적으로 균일하게 공유되도록 클래스들이 결정된다.In one embodiment, the classes are determined such that the samples are substantially uniformly shared among the classes.

일 실시예에서, 세트의 샘플들이 적어도 제1 성분 유형 또는 제2 성분 유형일 수 있고, 복수의 클래스들이 샘플 세트의 성분 유형에 의존하여 결정된다.In one embodiment, the samples of the set may be at least a first component type or a second component type, and a plurality of classes are determined depending on the component type of the sample set.

일 실시예에서, 클래스 수가 사전 결정되고, 각각의 클래스에 대해 정의된 샘플 값의 범위가 통계적 분포의 특성들에 의존하여 결정된다.In one embodiment, the number of classes is predetermined and the range of sample values defined for each class is determined depending on the properties of the statistical distribution.

다른 실시예에서, 클래스 수 및 각각의 클래스에 대해 정의된 샘플 값의 범위가 통계적 분포의 특성들에 의존하여 결정된다.In another embodiment, the number of classes and the range of sample values defined for each class are determined depending on the properties of the statistical distribution.

일 실시예에서, 클래스 수가 유효 범위 내의 샘플 값을 가지는 샘플들의 수에 의존하여 결정된다.In one embodiment, the number of classes is determined depending on the number of samples having sample values within the valid range.

일 실시예에서, 클래스 수가 성분 유형에 따라 결정된다.In one embodiment, the number of classes is determined according to the component type.

일 실시예에서, 이 방법은 유효 범위 내의 샘플 값들의 수에 따라 클래스당 샘플 값들의 최대 수를 결정하는 단계를 포함한다.In one embodiment, the method includes determining a maximum number of sample values per class in accordance with the number of sample values in the validity range.

일 실시예에서, 복수의 클래스들을 결정하는 단계는, 복수의 사전 결정된 분류들 중에서, 통계적 분포의 특성들에 적응되어 있는 복수의 클래스들을 정의하는 분류를 선택하는 단계를 포함한다.In one embodiment, the step of determining a plurality of classes comprises selecting, from among a plurality of predetermined classifications, a class defining a plurality of classes that are adapted to the properties of the statistical distribution.

일 실시예에서, 각각의 클래스에 대한 샘플 값의 범위, 통계적 분포의 중앙 및/또는 유효 샘플 값의 범위가 레이트 왜곡 기준에 기초하여 결정된다.In one embodiment, the range of sample values for each class, the center of the statistical distribution, and / or the range of valid sample values are determined based on the rate distortion criterion.

일 실시예에서, 각각의 클래스에 대한 샘플 값의 범위, 통계적 분포의 중앙 및/또는 유효 샘플 값의 범위가 사전 결정되어 있다. 일 실시예에서, 유효 샘플 값의 범위가 임계값에 대한 샘플 값들의 비교에 기초하여 결정되고, 임계값이 샘플들의 총수에 의존하거나, 임계값이 샘플들의 성분 유형에 의존하거나, 임계값이 사전 결정된 값이다.In one embodiment, the range of sample values for each class, the center of the statistical distribution, and / or the range of valid sample values is predetermined. In one embodiment, if the range of valid sample values is determined based on a comparison of sample values for a threshold, the threshold depends on the total number of samples, the threshold depends on the component type of the samples, Is the determined value.

일 실시예에서, 각각의 클래스에 대한 보상 오프셋이 클래스의 각각의 재구성된 샘플의 샘플 값과 대응하는 원래의 영상의 각자의 샘플 값 사이의 차의 평균으로부터 결정된다.In one embodiment, the compensation offset for each class is determined from an average of the difference between the sample value of each reconstructed sample of the class and the corresponding sample value of the original image.

일 실시예에서, 샘플 세트는 영상의 복수의 샘플 세트들 중 하나이고, 각각의 세트에 대해 동일한 클래스 수가 결정된다.In one embodiment, the sample set is one of a plurality of sample sets of images, and the same number of classes is determined for each set.

일 실시예에서, 샘플 값은 비트 심도를 나타내고, 유효 범위, 각각의 클래스의 범위 및/또는 통계적 분포의 중앙은 비트 심도에 의존한다.In one embodiment, the sample value represents the bit depth, and the effective range, the range of each class, and / or the center of the statistical distribution is dependent on the bit depth.

일 실시예에서, 주어진 클래스에 대한 샘플 값의 범위가 유효 범위 내에서의 클래스의 위치에 의존한다.In one embodiment, the range of sample values for a given class depends on the location of the class within its validity range.

일 실시예에서, 통계적 분포의 가장자리에 위치한 주어진 클래스에 대한 샘플 값의 범위는 분포의 중앙 영역에 있는 주어진 클래스에 대한 샘플 값의 범위보다 크다.In one embodiment, the range of sample values for a given class located at the edge of the statistical distribution is greater than the range of sample values for a given class in the central region of the distribution.

일 실시예에서, 통계적 분포의 중앙은 유효 범위에 기초하여 결정된다.In one embodiment, the center of the statistical distribution is determined based on the effective range.

일 실시예에서, 복수의 클래스들은 통계적 분포의 중앙 부분에 위치한 제1 클래스 그룹 및 통계적 분포의 각자의 가장자리 부분들에 위치한 제1 및 제2 하위 클래스 그룹들을 포함하는 제2 클래스 그룹을 포함한다.In one embodiment, the plurality of classes comprises a first class group located at a central portion of the statistical distribution and a second class group comprising first and second subclass groups located at respective edge portions of the statistical distribution.

일 실시예에서, 통계적 분포에서의 제2 하위 클래스 그룹들의 위치들이 코딩을 위한 데이터로서 제공된다.In one embodiment, the positions of the second subclass groups in the statistical distribution are provided as data for coding.

일 실시예에서, 제2 그룹의 하위 그룹들의 위치들이 통계적 분포의 전체 범위와 무관하다.In one embodiment, the positions of the subgroups of the second group are independent of the full extent of the statistical distribution.

일 실시예에서, 통계적 분포의 중앙은 코딩을 위해 제공되지 않는다.In one embodiment, the center of the statistical distribution is not provided for coding.

일 실시예에서, 전체 범위 내에서의 유효 범위(분류)의 위치가 전체 범위에 걸쳐 분포되어 있는 복수의 가능한 위치들 중에서 선택되고, 2개의 연속적인 위치들 사이의 간격은 전체 범위의 적어도 하나의 부분에서 전체 범위의 다른 부분에서보다 더 작다.In one embodiment, the position of the effective range (classification) within the entire range is selected from a plurality of possible positions distributed over the entire range, and the interval between two consecutive positions is at least one Section is smaller than in the other parts of the entire range.

예를 들어, 보다 작은 간격을 가지는 부분은 전체 범위의 가운데에 있을 수 있다.For example, a portion with a smaller spacing may be in the middle of the entire range.

다른 예에 따르면, 보다 작은 간격을 가지는 부분은 전체 범위의 한쪽 끝 또는 양쪽 끝에 있을 수 있다.According to another example, a portion having a smaller spacing may be at one or both ends of the full range.

위치들이 중앙 위치일 수 있다. 다른 대안으로서, 위치들이 끝 위치일 수 있다.The positions may be centered. Alternatively, the locations may be end locations.

가능한 위치들이 인덱스들을 할당받을 수 있다.Possible locations can be assigned indices.

일 실시예에서, 각각의 클래스에 대한 샘플 값의 범위, 통계적 분포의 중앙 및/또는 유효 샘플 값의 범위가 사전 결정되어 있다.In one embodiment, the range of sample values for each class, the center of the statistical distribution, and / or the range of valid sample values is predetermined.

일 실시예에서, 적어도 2개의 상이한 유형의 오프셋 값들이 발생될 수 있고, 유형들 중 하나는, 앞서 기술한 바와 같이, 클래스들(샘플 값의 범위들)과 각각 연관되어 있는 소위 대역 오프셋 값들이다. 하나 이상의 다른 유형의 오프셋 값들은 소위 에지 오프셋 값들일 수 있다. 방향마다 상이한 유형의 에지 오프셋 값들이 있을 수 있다 - 예를 들어, 4개의 상이한 유형들은 4개의 상이한 방향들에 각각 대응함 -. 이와 같이, 방향마다 에지 오프셋 값 세트가 있을 수 있다. 한 유형의 오프셋 값(대역 또는 에지)이 이어서 선택될 수 있다. 선택 기준이 제한되지 않으며, 하나의 적당한 기준은 레이트 왜곡 기준이다. 선택된 유형의 SAO 필터링(대역 또는 에지 오프셋)만이 인코더 및 디코더에 의해 적용된다. 각각의 프레임 영역에 대해 선택이 수행될 수 있다. 그에 부가하여, 예를 들어, 어느 유형에 의해서도 그다지 향상이 달성되지 않는 경우, "SAO 없음"을 선택하는 것, 즉 대역 오프셋 및 에지 오프셋 중 어느 것도 적용하지 않는 것이 가능할 수 있다. 일 실시예에서, 선택된 유형의 SAO 필터링이 인코더에 의해 인코딩되고 디코더로 전송된다.In one embodiment, at least two different types of offset values may be generated and one of the types is so-called band offset values, each of which is associated with classes (ranges of sample values), as described above . One or more other types of offset values may be so-called edge offset values. There can be different types of edge offset values for each direction - for example, four different types correspond to four different directions, respectively. As such, there may be a set of edge offset values for each direction. One type of offset value (band or edge) can then be selected. The selection criterion is not limited, and one suitable criterion is the rate distortion criterion. Only the selected type of SAO filtering (band or edge offset) is applied by the encoder and decoder. Selection may be performed for each frame region. In addition, it may be possible to select "no SAO ", i. E. To apply neither band offset nor edge offset, if much improvement is not achieved, for example by either type. In one embodiment, the selected type of SAO filtering is encoded by the encoder and sent to the decoder.

일 실시예에서, 선택된 유형을 인코딩하기 위해 고정 길이 코드가 사용된다.In one embodiment, a fixed length code is used to encode the selected type.

일 실시예에서, 선택된 유형이 대역 오프셋일 때, 유효 범위의 위치를 나타내는 값이 인코딩된다. 위치는 유효 범위의 중앙 위치 또는 끝 위치일 수 있다.In one embodiment, when the selected type is a band offset, a value indicating the location of the validity range is encoded. The position can be the center position or the end position of the effective range.

일 실시예에서, 유효 범위의 위치를 인코딩하기 위해 고정 길이 코드가 사용된다.In one embodiment, a fixed length code is used to encode the location of the validity range.

일 실시예에서, 유효 범위의 위치를 나타내는 값들에 대응하는 코드워드들을 인코딩하는 데 사용되는 고정 길이 코드의 길이에 의해 허용되는 상이한 코드워드들의 수가 상이한 가능한 위치들의 실제 수보다 많을 때, 기타 정보를 인코딩하기 위해 여분의 코드워드들이 사용된다. 예를 들어, 일 실시예에서, 에지 오프셋의 유형(방향)을 인코딩하기 위해 여분의 코드워드들이 사용된다.In one embodiment, when the number of different code words allowed by the length of the fixed length code used to encode the codewords corresponding to the values of the positions of the valid range is greater than the actual number of different possible positions, Extra codewords are used to encode. For example, in one embodiment, extra code words are used to encode the type (direction) of edge offsets.

일 실시예에서, 보상 오프셋들이 고정 길이 코드들로 인코딩된다. 이것은 대역 오프셋 또는 에지 오프셋 또는 이들 유형의 오프셋 둘 다에 적용될 수 있다.In one embodiment, compensation offsets are encoded with fixed length codes. This can be applied to both band offsets or edge offsets or offsets of these types.

일 실시예에서, 고정 길이 코드의 길이에 의해 허용되는 상이한 보상 오프셋들의 수가 가능한 보상 오프셋들의 수보다 적다.In one embodiment, the number of different compensation offsets allowed by the length of the fixed length code is less than the number of possible compensation offsets.

일 실시예에서, 보상 오프셋 값들에 증배 인자(multiplication factor)가 적용되고, 필터링을 위해 증배된 보상 오프셋 값들이 사용된다.In one embodiment, a multiplication factor is applied to the compensation offset values, and the compensated offset values used for filtering are used.

일 실시예에서, 증배 인자가 인코더로부터 디코더로 전송된다.In one embodiment, the multiplication factor is sent from the encoder to the decoder.

일 실시예에서, 보상 오프셋 값들에 천이 값(shifting value)이 적용되고, 필터링을 위해 천이된 보상 오프셋 값들이 사용된다.In one embodiment, a shifting value is applied to the compensation offset values, and the compensated offset values used for filtering are used.

일 실시예에서, 천이 값이 인코더로부터 디코더로 전송된다.In one embodiment, the transition value is sent from the encoder to the decoder.

일 실시예에서, 적어도 하나의 유형(방향)에 대한 에지 오프셋 값들이 사전 결정된다.In one embodiment, edge offset values for at least one type (direction) are predetermined.

일 실시예에서, 영상의 재구성된 샘플 세트에 대해 보상 오프셋들이 적용될 필요가 있는지 여부를 나타내는 플래그가 인코딩된다.In one embodiment, a flag is encoded that indicates whether compensation offsets need to be applied to the reconstructed sample set of images.

일 실시예에서, 대역 오프셋 값 그룹들이 사전 정의되고, 그룹의 각각의 오프셋은 유효 범위의 하나의 클래스와 연관되어 있다.In one embodiment, the band offset value groups are predefined, and each offset of the group is associated with one class of validity range.

일 실시예에서, 각각의 그룹은 인덱스를 할당받는다.In one embodiment, each group is assigned an index.

일 실시예에서, 사전 정의된 그룹들이 테이블에 수집되고, 테이블 정렬(table order)은 각각의 그룹의 선택 확률에 의존한다.In one embodiment, the predefined groups are collected in a table, and the table order depends on the selection probability of each group.

일 실시예에서, 각각의 그룹의 선택 확률은 본 발명을 구현하는 보상 오프셋들을 제공하는 방법들을 훈련 시퀀스 세트에 적용함으로써 계산된다.In one embodiment, the selection probabilities of each group are calculated by applying methods to provide compensation offsets implementing the present invention to a training sequence set.

일 실시예에서, 원래의 샘플들과 필터링된 샘플들 간에 최소 차를 가지는 사전 정의된 대역 오프셋 값 그룹들 중의 대역 오프셋 값 그룹이 선택된다.In one embodiment, a group of band offset values among predefined band offset value groups having a minimum difference between the original samples and the filtered samples is selected.

일 실시예에서, 그룹들의 인덱스들이 고정 길이 코드를 사용하여 인코딩된다.In one embodiment, the indices of the groups are encoded using a fixed length code.

일 실시예에서, 고정 길이 코드의 길이에 의해 허용되는 상이한 인코딩된 그룹 인덱스들의 수가 가능한 상이한 그룹들의 수보다 적다.In one embodiment, the number of different encoded group indices allowed by the length of the fixed length code is less than the number of different possible groups.

일 실시예에서, 가능한 상이한 그룹들 내의 대역 오프셋 그룹들의 서브셋이 각각의 그룹의 선택 확률 및 고정 길이 코드의 길이에 의존하여 결정된다.In one embodiment, a subset of the band offset groups within the different possible groups is determined depending on the selection probability of each group and the length of the fixed length code.

일 실시예에서, 대역 오프셋 그룹들의 인덱스들을 인코딩하는 데 사용되는 고정 길이 코드의 길이가 사전 결정되어 있다.In one embodiment, the length of the fixed length code used to encode the indices of the band offset groups is predetermined.

일 실시예에서, 보상 오프셋 그룹들의 인덱스들을 인코딩하는 데 사용되는 고정 길이 코드의 길이가 시퀀스 헤더, 픽처 그룹 헤더, 픽처 헤더(picture header), 슬라이스 헤더(slice header) 또는 LCU 헤더에 인코딩된다.In one embodiment, the length of the fixed length code used to encode indices of compensating offset groups is encoded into a sequence header, a picture group header, a picture header, a slice header, or an LCU header.

본 발명의 제2 추가의 측면에 따르면, 복수의 샘플들로 이루어져 있는 영상을 인코딩하는 방법이 제공되고, 이 방법은 샘플들을 인코딩하는 단계; 재구성된 샘플들을 제공하기 위해 인코딩된 샘플들을 디코딩하는 단계; 재구성된 샘플들에 대해 루프 필터링을 수행하는 단계 - 루프 필터링은 각자의 재구성된 샘플들의 샘플 값들에 보상 오프셋들을 적용하는 것을 포함하고, 각각의 보상 오프셋은 샘플 값의 범위와 연관되어 있으며, 보상 오프셋들은 제1 추가의 측면의 방법에 따라 제공됨 -; 및 인코딩된 샘플들의 비트스트림을 발생시키는 단계를 포함한다.According to a second additional aspect of the present invention, there is provided a method of encoding an image comprising a plurality of samples, the method comprising: encoding samples; Decoding the encoded samples to provide reconstructed samples; Performing loop filtering on reconstructed samples, wherein the loop filtering comprises applying compensation offsets to sample values of respective reconstructed samples, each compensation offset being associated with a range of sample values, Are provided according to a method of a first additional aspect; And generating a bit stream of encoded samples.

일 실시예에서, 이 방법은, 비트스트림에서, 각각의 클래스에 대한 각자의 보상 오프셋들을 나타내는 인코딩된 데이터를 전송하는 단계를 포함한다.In one embodiment, the method includes transmitting, in the bitstream, encoded data representing respective compensation offsets for each class.

일 실시예에서, 이 방법은, 비트스트림에서, 복수의 결정된 클래스들을 정의하는 인코딩 분류 데이터를 전송하는 단계를 포함한다.In one embodiment, the method includes transmitting, in a bitstream, encoding classification data defining a plurality of determined classes.

일 실시예에서, 분류 데이터는 통계적 분포의 중앙을 나타내는 데이터를 포함한다.In one embodiment, the classification data includes data indicative of the center of the statistical distribution.

일 실시예에서, 분류 데이터는 복수의 클래스들 각각에 대해 정의된 샘플 값의 범위를 나타내는 데이터를 포함한다.In one embodiment, the classification data includes data representing a range of sample values defined for each of a plurality of classes.

일 실시예에서, 분류 데이터는 통계적 분포의 유효 범위를 나타내는 데이터를 포함한다.In one embodiment, the classification data includes data indicative of an effective range of the statistical distribution.

본 발명의 제3 추가의 측면에 따르면, 복수의 샘플들로 이루어져 있는 영상을 디코딩하는 방법이 제공되고, 이 방법은,According to a third further aspect of the present invention there is provided a method of decoding an image consisting of a plurality of samples,

인코딩된 샘플들을 수신하는 단계;Receiving encoded samples;

재구성된 샘플들을 제공하기 위해 인코딩된 샘플들을 디코딩하는 단계; 및Decoding the encoded samples to provide reconstructed samples; And

재구성된 샘플들에 대해 루프 필터링을 수행하는 단계 - 루프 필터링은 각자의 재구성된 샘플들의 샘플 값들에 보상 오프셋들을 적용하는 것을 포함하고, 각각의 보상 오프셋은 샘플 값의 범위와 연관되어 있으며, 보상 오프셋들은 이전의 실시예들 중 임의의 실시예에 따라 제공됨 - 를 포함한다.Performing loop filtering on reconstructed samples, wherein the loop filtering comprises applying compensation offsets to sample values of respective reconstructed samples, each compensation offset being associated with a range of sample values, Are provided according to any of the previous embodiments.

본 발명의 추가의 측면들 중 다른 측면은 복수의 샘플 값들로 이루어져 있는 영상을 디코딩하는 방법을 제공하고, 이 방법은Another aspect of additional aspects of the present invention provides a method of decoding an image comprising a plurality of sample values,

인코딩된 샘플 값들을 수신하는 단계;Receiving the encoded sample values;

이전의 실시예들 중 임의의 실시예의 방법에 따라 제공되는 각자의 보상 오프셋들과 연관되어 있는 복수의 클래스들을 정의하는 인코딩된 분류 데이터를 수신하는 단계 - 각각의 보상 오프셋은 샘플 값의 범위에 대응함 -;Receiving encoded classification data defining a plurality of classes associated with respective compensation offsets provided according to the method of any of the preceding embodiments, wherein each compensation offset corresponds to a range of sample values -;

재구성된 샘플들을 제공하기 위해 인코딩된 샘플들을 디코딩하고 인코딩된 보상 오프셋들을 디코딩하는 단계; 및Decoding the encoded samples and decoding the encoded compensation offsets to provide reconstructed samples; And

샘플의 샘플 값에 따라, 재구성된 샘플들에 대해 루프 필터링을 수행하는 단계 - 루프 필터링은 각자의 샘플들의 영상 샘플들에 수신된 보상 오프셋들을 적용하는 것을 포함함 - 를 포함한다.Performing loop filtering on the reconstructed samples according to a sample value of the sample, wherein the loop filtering comprises applying the received compensation offsets to the image samples of the respective samples.

일 실시예에서, 분류 데이터는 통계적 분포의 중앙을 나타내는 데이터, 복수의 클래스들 각각에 대해 정의된 샘플 값의 범위를 나타내는 데이터, 및/또는 통계적 분포의 유효 범위를 나타내는 데이터를 포함한다.In one embodiment, the classification data includes data representing the center of the statistical distribution, data representing a range of sample values defined for each of the plurality of classes, and / or data representing the valid range of the statistical distribution.

본 발명의 추가의 측면들 중 다른 측면에 따르면, 비디오 비트스트림에 의해 표현되는 영상에 대한 정보 데이터 세트를 전달하는 신호가 제공되고, 영상은 재구성가능 샘플 세트를 포함하며, 각각의 재구성가능 샘플은, 재구성 후에, 각자의 샘플 값을 가지며, 세트의 복수의 재구성된 샘플들의 샘플 값들은 샘플 값들의 통계적 분포로 표현가능하고; 정보 데이터 세트는 각자의 재구성된 샘플들의 샘플 값들에 적용하기 위한 각자의 보상 오프셋들과 연관되어 있는 복수의 클래스들을 나타내는 분류 데이터를 포함하며, 분류 데이터는 통계적 분포에 따라 결정된다.According to another of its further aspects, there is provided a signal carrying an information data set for an image represented by a video bitstream, the image comprising a set of reconstructable samples, each reconstructable sample comprising After reconstruction, has its own sample value, the sample values of the plurality of reconstructed samples of the set being representable as a statistical distribution of sample values; The information data set includes classification data representing a plurality of classes associated with respective compensation offsets for applying to sample values of respective reconstructed samples, and the classification data is determined according to a statistical distribution.

일 실시예에서, 분류 데이터는 통계적 분포의 중앙을 나타내는 데이터, 복수의 클래스들 각각에 대해 정의된 샘플 값의 범위를 나타내는 데이터, 및/또는 통계적 분포의 유효 범위를 나타내는 데이터를 포함한다.In one embodiment, the classification data includes data representing the center of the statistical distribution, data representing a range of sample values defined for each of the plurality of classes, and / or data representing the valid range of the statistical distribution.

본 발명의 추가의 측면들 중 다른 측면에 따르면, 영상의 재구성된 샘플 세트에 대한 보상 오프셋들을 제공하는 장치가 제공되고, 각각의 샘플은 각자의 샘플 값을 가지며, 세트의 복수의 샘플들의 샘플 값들은 샘플 값들의 통계적 분포로 표현가능하며, 이 장치는According to another of its further aspects, there is provided an apparatus for providing compensation offsets for a reconstructed sample set of images, each sample having its own sample value, Can be represented as a statistical distribution of sample values,

샘플 값들의 통계적 분포의 특성들에 의존하여, 샘플들의 대응하는 샘플 값에 따라 샘플들을 재분할하기 위한 복수의 클래스들을 결정하는 수단 - 각각의 클래스는 각자의 샘플 값의 범위를 정의함 -; 및Means for determining a plurality of classes for subdividing samples according to a corresponding sample value of samples, depending on characteristics of statistical distribution of sample values, each class defining a range of respective sample values; And

상기 클래스의 각각의 샘플의 각자의 샘플 값에 적용하기 위한 각자의 보상 오프셋을 각각의 결정된 클래스와 연관시키는 수단을 포함한다.And means for associating each of the determined classes with a respective compensation offset for applying to a respective sample value of each sample of the class.

본 발명의 추가의 측면들 중 다른 측면은 복수의 샘플들로 이루어져 있는 영상을 인코딩하는 인코딩 장치를 제공하고, 이 장치는,Another aspect of additional aspects of the present invention provides an encoding apparatus for encoding an image comprising a plurality of samples,

샘플들을 인코딩하는 인코더; 재구성된 샘플들을 제공하기 위해 인코딩된 샘플들을 디코딩하는 디코더; 재구성된 샘플들을 필터링하는 루프 필터 - 루프 필터링 수단은 각자의 재구성된 샘플들의 샘플 값들에 보상 오프셋들을 적용하는 오프셋 적용 수단을 포함하고, 각각의 보상 오프셋은 샘플 값의 범위와 연관되어 있으며, 보상 오프셋들은 이전의 실시예의 장치에 의해 제공됨 -; 및 인코딩된 샘플들의 비트스트림을 발생시키는 비트스트림 발생기를 포함한다.An encoder for encoding samples; A decoder for decoding the encoded samples to provide reconstructed samples; Loop filter-loop filtering means for filtering reconstructed samples comprises offset applying means for applying compensation offsets to sample values of respective reconstructed samples, each compensation offset being associated with a range of sample values, Are provided by the apparatus of the previous embodiment; And a bitstream generator for generating a bitstream of encoded samples.

본 발명의 추가의 측면들 중 또 다른 측면은 복수의 샘플들로 이루어져 있는 영상을 디코딩하는 디코딩 장치를 제공하고, 이 장치는, 인코딩된 샘플들을 수신하는 수신기; 재구성된 샘플들을 제공하기 위해 인코딩된 샘플들을 디코딩하는 디코더; 및 재구성된 샘플들을 루프 필터링하는 루프 필터 - 루프 필터는 각자의 재구성된 샘플들의 샘플 값들에 보상 오프셋들을 적용하는 수단을 포함하고, 각각의 보상 오프셋은 샘플 값의 범위와 연관되어 있으며, 보상 오프셋들은 이전의 실시예에 따른 장치에 의해 제공됨 - 를 포함한다.Yet another aspect of additional aspects of the present invention provides a decoding apparatus for decoding an image comprising a plurality of samples, the apparatus comprising: a receiver for receiving encoded samples; A decoder for decoding the encoded samples to provide reconstructed samples; And a loop filter-loop filter loop-filtering the reconstructed samples comprises means for applying compensation offsets to sample values of respective reconstructed samples, each compensation offset being associated with a range of sample values, Provided by an apparatus according to the previous embodiment.

본 발명의 추가의 측면들 중 다른 측면은 복수의 샘플 값들로 이루어져 있는 영상을 디코딩하는 디코딩 장치를 제공하고, 이 장치는, 인코딩된 샘플 값들을 수신하고 이전의 실시예에 따른 장치에 의해 제공되는 각자의 보상 오프셋들과 연관되어 있는 복수의 클래스들을 정의하는 인코딩된 분류 데이터를 수신하는 수신기 - 각각의 보상 오프셋은 샘플 값의 범위에 대응함 -; 재구성된 샘플들을 제공하기 위해 인코딩된 샘플들을 디코딩하고 인코딩된 보상 오프셋들을 디코딩하는 디코더; 및 샘플의 샘플 값에 따라, 재구성된 샘플들을 루프 필터링하는 루프 필터 - 루프 필터는 각자의 샘플들의 영상 샘플들에 수신된 보상 오프셋들을 적용하는 수단을 포함함 - 를 포함한다.Another aspect of additional aspects of the present invention provides a decoding apparatus for decoding an image consisting of a plurality of sample values, the apparatus comprising: means for receiving encoded sample values and providing A receiver for receiving encoded classification data defining a plurality of classes associated with respective compensation offsets, each compensation offset corresponding to a range of sample values; A decoder to decode the encoded samples and to decode the encoded compensation offsets to provide reconstructed samples; And a loop filter-loop filter that loops the reconstructed samples according to a sample value of the sample, comprising means for applying received compensation offsets to image samples of respective samples.

단지 예로서 제공되어 있고 첨부된 특허청구범위에 의해서만 결정되는 본 발명의 범위를 제한하기 위한 것이 아닌 이상의 예시적인 실시예들을 참조하면 많은 추가의 수정들 및 변형들이 기술 분야의 당업자에게 안출될 것이다. 상세하게는, 상이한 실시예들로부터의 상이한 특징들이, 적절한 경우, 상호 교환될 수 있다.Many additional modifications and variations will be apparent to those skilled in the art with reference to the above description of exemplary embodiments, which are provided by way of example only and are not intended to limit the scope of the invention, which is determined solely by the appended claims. In particular, the different features from the different embodiments can be interchanged, if appropriate.

특허청구범위에서, 용어 "포함하는"은 다른 구성요소들 또는 단계들을 배제하지 않으며, 단수 표현 "한" 또는 "어떤"은 복수를 배제하지 않는다. 상이한 특징들이 서로 다른 종속 청구항에 언급되어 있다는 단순한 사실이 이들 특징의 조합이 유리하게 사용될 수 없다는 것을 말하는 것은 아니다.In the claims, the term " comprising "does not exclude other elements or steps, and the singular expression" one " The mere fact that different features are recited in different dependent claims does not mean that a combination of these features can not be used to advantage.

Claims (47)

영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 방법으로서,
각각의 샘플은 샘플 값을 가지며, 이 방법은,
레이트 왜곡 기준(rate distortion criterion)에 기초하여, 복수의 사전 결정된 분류들 중에서 분류를 선택하는 단계 - 각각의 상기 사전 결정된 분류는 샘플 값의 전체 범위보다 작은 분류 범위(classification range)를 가지며 복수의 클래스들로 이루어져 있고, 각각의 클래스는 상기 분류 범위 내에서의 샘플 값의 범위를 정의하고, 샘플의 샘플 값이 관련 클래스의 범위 내에 있는 경우 상기 샘플이 그 클래스 내에 배치됨 -; 및
상기 관련 클래스의 각각의 샘플의 샘플 값에 적용하기 위한 보상 오프셋을 선택된 상기 분류의 각각의 클래스와 연관시키는 단계를 포함하는, 영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 방법.
A method of providing compensation offsets for a set of reconstructed samples of an image,
Each sample having a sample value, the method comprising:
Selecting a classification from among a plurality of predetermined classifications based on a rate distortion criterion, each of the predetermined classifications having a classification range that is less than the entire range of sample values, Wherein each class defines a range of sample values within the classification range and the sample is placed in the class if the sample value of the sample is within the range of the associated class; And
And associating a compensation offset for applying to a sample value of each sample of the associated class with each class of the selected classification.
제1항에 있어서, 하나 이상의 상기 사전 결정된 분류의 상기 분류 범위가 상기 전체 범위의 1/2보다 작은 것인, 영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 방법.2. The method of claim 1, wherein the classification range of one or more of the predetermined classifications is less than one-half of the entire range. 제1항에 있어서, 하나 이상의 상기 사전 결정된 분류의 상기 분류 범위가 상기 전체 범위의 1/8인, 영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 방법.2. The method of claim 1, wherein the classification range of one or more of the predetermined classifications is 1/8 of the entire range. 제1항에 있어서, 하나 이상의 상기 사전 결정된 분류가 4개의 클래스로 이루어져 있는 것인, 영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 방법.2. The method of claim 1, wherein one or more of the predetermined classifications comprises four classes of compensating offsets for a set of reconstructed samples of an image. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 세트의 샘플들이 적어도 제1 성분 유형 또는 제2 성분 유형일 수 있고, 상기 복수의 클래스들이 상기 샘플 세트의 성분 유형에 의존하여 결정되는 것인, 영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 방법.5. A method according to any one of claims 1 to 4, wherein the samples of the set can be at least a first component type or a second component type and the plurality of classes are determined depending on the component type of the sample set And compensating offsets for a set of reconstructed samples of the image. 제5항에 있어서, 클래스 수가 상기 성분 유형에 따라 결정되는 것인, 영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 방법.6. The method of claim 5, wherein the number of classes is determined according to the component type. 제1항 내지 제6항 중 어느 한 항에 있어서, 각각의 클래스에 대한 보상 오프셋이, 클래스의 각각의 재구성된 샘플의 샘플 값과, 대응하는 원래의 영상의 각자의 샘플 값 사이의 차의 평균으로부터 결정되는 것인, 영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 방법.7. The method of any one of claims 1-6, wherein the compensation offset for each class is calculated by multiplying the average of the differences between the sample value of each reconstructed sample of the class and the respective sample value of the corresponding original image ≪ / RTI > of the reconstructed samples of the image. 제1항 내지 제7항 중 어느 한 항에 있어서, 샘플 값은 비트 심도를 나타내고, 상기 분류 범위, 각각의 클래스의 범위 및 상기 선택된 분류의 중앙 중 하나 이상이 상기 비트 심도에 의존하는 것인, 영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 방법.8. The method according to any one of claims 1 to 7, wherein the sample value represents bit depth and wherein at least one of the classification range, the range of each class and the center of the selected classification is dependent on the bit depth. A method for providing compensation offsets for a set of reconstructed samples of an image. 제1항 내지 제8항 중 어느 한 항에 있어서, 주어진 클래스에 대한 샘플 값의 범위가 상기 선택된 분류 내에서의 클래스의 위치에 의존하는 것인, 영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 방법.9. A method as claimed in any one of claims 1 to 8, wherein the range of sample values for a given class is dependent on the location of the class in the selected class. How to provide. 제9항에 있어서, 상기 선택된 분류의 가장자리에 위치한 주어진 클래스에 대한 샘플 값의 범위는 상기 선택된 분류의 중앙 영역에 있는 주어진 클래스에 대한 샘플 값의 범위보다 큰 것인, 영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 방법.10. The method of claim 9, wherein a range of sample values for a given class located at an edge of the selected class is greater than a range of sample values for a given class in a central region of the selected class. Lt; / RTI > 복수의 샘플들로 이루어져 있는 영상을 인코딩하는 방법으로서,
샘플들을 인코딩하는 단계;
상기 인코딩된 샘플들을 디코딩하여 재구성된 샘플들을 제공하는 단계;
상기 재구성된 샘플들에 대해 루프 필터링을 수행하는 단계 - 상기 루프 필터링은 각자의 재구성된 샘플들의 샘플 값들에 보상 오프셋들을 적용하는 것을 포함하고, 각각의 보상 오프셋은 샘플 값의 범위와 연관되어 있으며, 상기 보상 오프셋들은 제1항 내지 제10항 중 어느 한 항의 방법에 따라 제공됨 -; 및
인코딩된 샘플들의 비트스트림을 발생시키는 단계를 포함하는 방법.
CLAIMS 1. A method of encoding an image comprising a plurality of samples,
Encoding the samples;
Decoding the encoded samples to provide reconstructed samples;
Performing loop filtering on the reconstructed samples, the loop filtering comprising applying compensation offsets to sample values of respective reconstructed samples, each compensation offset being associated with a range of sample values, Wherein the compensation offsets are provided according to the method of any one of claims 1 to 10; And
And generating a bit stream of encoded samples.
제11항에 있어서, 상기 비트스트림에서, 선택된 분류의 복수의 클래스들과 각각 연관되어 있는 상기 보상 오프셋들을 나타내는 인코딩된 데이터를 전송하는 단계를 추가로 포함하는 방법.12. The method of claim 11, further comprising transmitting, in the bitstream, encoded data representing the compensation offsets that are each associated with a plurality of classes of a selected classification. 제11항 또는 제12항에 있어서, 상기 비트스트림에서, 선택된 분류에 관한 인코딩된 분류 데이터를 전송하는 단계를 추가로 포함하는 방법.14. The method of claim 11 or 12, further comprising transmitting, in the bitstream, encoded classification data about the selected classification. 제13항에 있어서, 상기 분류 데이터가 상기 선택된 분류의 중앙을 나타내는 데이터를 포함하는 것인 방법.14. The method of claim 13, wherein the classification data comprises data representing a center of the selected classification. 제13항에 있어서, 상기 분류 데이터가 상기 선택된 분류에 관련된 인덱스를 나타내는 데이터를 포함하는 것인 방법.14. The method of claim 13, wherein the classification data comprises data indicative of an index associated with the selected classification. 제13항에 있어서, 상기 분류 데이터가 샘플 값의 전체 범위 내에서의 상기 선택된 분류의 위치를 나타내는 데이터를 포함하는 것인 방법.14. The method of claim 13, wherein the classification data comprises data representing a location of the selected classification within a full range of sample values. 제16항에 있어서, 상기 위치가 상기 선택된 분류의 끝 위치인 방법.17. The method of claim 16, wherein the location is an end location of the selected taxon. 제17항에 있어서, 상기 끝 위치가 상기 전체 범위의 한쪽 끝으로부터의 변위로서 표현되는 것인 방법.18. The method of claim 17, wherein the end position is represented as a displacement from one end of the entire range. 제13항 내지 제18항 중 어느 한 항에 있어서, 상기 분류 데이터가 상기 복수의 클래스들 각각에 대해 정의된 샘플 값의 범위를 나타내는 데이터를 포함하는 것인 방법.19. The method according to any one of claims 13 to 18, wherein the classification data comprises data representing a range of sample values defined for each of the plurality of classes. 제13항 내지 제19항 중 어느 한 항에 있어서, 상기 분류 데이터가 상기 선택된 분류의 분류 범위를 나타내는 데이터를 포함하는 것인 방법.20. The method according to any one of claims 13 to 19, wherein the classification data comprises data representing a classification range of the selected classification. 복수의 샘플들로 이루어져 있는 영상을 디코딩하는 방법으로서,
각각의 샘플은 샘플 값을 가지며, 상기 방법은,
인코딩된 샘플 값들을 수신하는 단계;
인코딩된 분류 데이터를 수신하는 단계;
인코딩된 보상 오프셋들을 수신하는 단계;
상기 분류 데이터를 디코딩하고, 디코딩된 분류 데이터에 기초하여, 복수의 사전 결정된 분류들 중에서 분류를 선택하는 단계 - 각각의 상기 사전 결정된 분류는 샘플 값의 전체 범위보다 작은 분류 범위를 가지며 복수의 클래스들로 이루어져 있고, 각각의 클래스는 상기 분류 범위 내에서의 샘플 값의 범위를 정의하고, 샘플의 샘플 값이 관련 클래스의 범위 내에 있는 경우 상기 샘플이 그 클래스 내에 배치됨 -;
재구성된 샘플 값들을 제공하기 위해 인코딩된 샘플들을 디코딩하고, 상기 인코딩된 보상 오프셋들을 디코딩하는 단계;
디코딩된 상기 보상 오프셋들을 선택된 상기 분류의 클래스들과 각각 연관시키는 단계; 및
상기 재구성된 샘플 값들에 대해 루프 필터링을 수행하는 단계 - 상기 루프 필터링은 상기 선택된 분류의 각각의 클래스와 연관되어 있는 상기 디코딩된 보상 오프셋을 관련 클래스의 범위 내의 재구성된 샘플 값들에 적용하는 것을 포함함 - 를 포함하는, 영상 디코딩 방법.
CLAIMS 1. A method for decoding an image comprising a plurality of samples,
Each sample having a sample value, the method comprising:
Receiving the encoded sample values;
Receiving encoded classification data;
Receiving encoded compensated offsets;
Decoding the classification data and selecting a classification from among a plurality of predetermined classifications based on the decoded classification data, each of the predetermined classifications having a classification range smaller than the entire range of sample values, Each class defining a range of sample values within the classification range, and if the sample value of the sample is within the range of the associated class, the sample is placed in the class;
Decoding the encoded samples to provide reconstructed sample values, and decoding the encoded compensation offsets;
Associating the decoded compensation offsets with each of the classes of the selected classification; And
Performing loop filtering on the reconstructed sample values, wherein the loop filtering comprises applying the decoded compensated offset associated with each class of the selected class to reconstructed sample values within the range of the class of interest - < / RTI >
제21항에 있어서, 하나 이상의 상기 사전 결정된 분류의 상기 분류 범위가 상기 전체 범위의 1/2보다 작은 것인, 영상 디코딩 방법.22. The method of claim 21, wherein the classification range of one or more of the predetermined classifications is less than one-half of the entire range. 제21항에 있어서, 하나 이상의 상기 사전 결정된 분류의 상기 분류 범위가 상기 전체 범위의 1/8인, 영상 디코딩 방법.22. The method of claim 21, wherein the classification range of one or more of the predetermined classifications is 1/8 of the entire range. 제21항에 있어서, 하나 이상의 상기 사전 결정된 분류가 4개의 클래스로 이루어져 있는 것인, 영상 디코딩 방법.23. The method of claim 21, wherein one or more of the predetermined classifications comprises four classes. 제21항 내지 제24항 중 어느 한 항에 있어서, 상기 분류 데이터가 상기 선택된 분류의 중앙을 나타내는 데이터를 포함하는 것인, 영상 디코딩 방법.25. An image decoding method according to any one of claims 21 to 24, wherein the classification data includes data indicating a center of the selected classification. 제21항 내지 제24항 중 어느 한 항에 있어서, 상기 분류 데이터가 상기 선택된 분류에 관련된 인덱스를 나타내는 데이터를 포함하는 것인, 영상 디코딩 방법.25. An image decoding method according to any one of claims 21 to 24, wherein the classification data includes data representing an index related to the selected classification. 제21항 내지 제24항 중 어느 한 항에 있어서, 상기 분류 데이터가 샘플 값의 전체 범위 내에서의 상기 선택된 분류의 위치를 나타내는 데이터를 포함하는 것인, 영상 디코딩 방법.25. An image decoding method according to any one of claims 21 to 24, wherein the classification data includes data representing the position of the selected classification within the entire range of sample values. 제27항에 있어서, 상기 위치가 상기 선택된 분류의 끝 위치인, 영상 디코딩 방법.28. The method of claim 27, wherein the position is an end position of the selected classification. 제28항에 있어서, 상기 끝 위치가 상기 전체 범위의 한쪽 끝으로부터의 변위로서 표현되는 것인, 영상 디코딩 방법.29. The method of claim 28, wherein the end position is represented as a displacement from one end of the entire range. 제21항 내지 제29항 중 어느 한 항에 있어서, 상기 분류 데이터가 상기 복수의 클래스들 각각에 대해 정의된 샘플 값의 범위를 나타내는 데이터를 포함하는 것인, 영상 디코딩 방법.30. An image decoding method according to any one of claims 21 to 29, wherein the classification data includes data indicating a range of sample values defined for each of the plurality of classes. 제21항 내지 제30항 중 어느 한 항에 있어서, 상기 분류 데이터가 상기 선택된 분류의 분류 범위를 나타내는 데이터를 포함하는 것인, 영상 디코딩 방법.31. The method according to any one of claims 21 to 30, wherein the classification data includes data representing a classification range of the selected classification. 프로그램가능 장치에 대한 컴퓨터 프로그램 제품으로서, 상기 프로그램가능 장치에 로드되어 상기 프로그램가능 장치에 의해 실행될 때, 제1항 내지 제31항 중 어느 한 항에 따른 방법을 구현하는 명령어 시퀀스를 포함하는 컴퓨터 프로그램 제품.31. A computer program product for a programmable apparatus, comprising: a computer program that when executed by the programmable apparatus is loaded into the programmable apparatus and comprises a sequence of instructions implementing the method of any one of claims 1 to 31 product. 제1항 내지 제32항 중 어느 한 항에 따른 방법을 구현하는 컴퓨터 프로그램의 명령어들을 저장하는 컴퓨터 판독가능 저장 매체.33. A computer-readable storage medium storing instructions of a computer program for implementing the method of any one of claims 1 to 32. 비디오 비트스트림에 의해 표현되는 영상에 대한 정보 데이터 세트(information dataset)를 전달하는 신호로서,
상기 영상은 재구성가능 샘플 세트를 포함하며, 각각의 재구성가능 샘플은 샘플 값을 갖고, 상기 정보 데이터 세트는 복수의 사전 결정된 분류들 중에서 인코더에 의해 선택된 분류에 관한 분류 데이터를 포함하며, 각각의 상기 사전 결정된 분류는 샘플 값의 전체 범위보다 작은 분류 범위를 갖고 복수의 클래스들로 이루어져 있으며, 각각의 클래스는 상기 분류 범위 내의 샘플 값의 범위를 정의하고, 샘플의 샘플 값이 관련 클래스의 범위 내에 있는 경우 상기 샘플이 그 클래스 내에 배치되며, 상기 선택된 분류의 복수의 클래스들의 각각의 클래스는 관련 클래스의 범위 내의 상기 재구성가능 샘플들의 샘플 값들에 적용하기 위한 보상 오프셋과 연관되어 있는 것인 신호.
A signal carrying an information dataset for an image represented by a video bitstream,
Wherein the image comprises a set of reconstructible samples, each reconstructable sample having a sample value, the information data set comprising classification data relating to a classification selected by the encoder from among a plurality of predetermined classifications, The predetermined classifier has a classification range smaller than the entire range of sample values and is made up of a plurality of classes, each class defines a range of sample values within the classification range, and the sample value of the sample is within the range of the related class The sample is placed in the class and each class of the plurality of classes of the selected class is associated with a compensation offset for applying to sample values of the reconfigurable samples in the range of the class of interest.
제34항에 있어서, 하나 이상의 상기 사전 결정된 분류의 상기 분류 범위가 상기 전체 범위의 1/2보다 작은 것인 신호.35. The signal of claim 34, wherein the classification range of one or more of the predetermined classifications is less than one half of the entire range. 제34항에 있어서, 하나 이상의 상기 사전 결정된 분류의 상기 분류 범위가 상기 전체 범위의 1/8인 신호.35. The signal of claim 34, wherein the classification range of one or more of the predetermined classifications is one-eighth of the full range. 제34항에 있어서, 하나 이상의 상기 사전 결정된 분류가 4개의 클래스로 이루어져 있는 것인 신호.35. The signal of claim 34, wherein the one or more of the predetermined classifications consists of four classes. 제34항 내지 제37항 중 어느 한 항에 있어서, 상기 분류 데이터가 상기 선택된 분류의 중앙을 나타내는 데이터를 포함하는 것인 신호.37. The signal according to any one of claims 34 to 37, wherein the classification data comprises data indicative of the center of the selected classification. 제34항 내지 제37항 중 어느 한 항에 있어서, 상기 분류 데이터가 상기 선택된 분류에 관련된 인덱스를 나타내는 데이터를 포함하는 것인 신호.37. The signal according to any one of claims 34 to 37, wherein the classification data comprises data indicative of an index associated with the selected classification. 제34항 내지 제37항 중 어느 한 항에 있어서, 상기 분류 데이터가 상기 샘플 값의 전체 범위 내에서의 상기 선택된 분류의 위치를 나타내는 데이터를 포함하는 것인 신호.37. The signal according to any one of claims 34 to 37, wherein the classification data comprises data representing the location of the selected classification within the entire range of the sample value. 제40항에 있어서, 상기 위치가 상기 선택된 분류의 끝 위치인 신호.41. The signal according to claim 40, wherein the position is an end position of the selected classification. 제41항에 있어서, 상기 끝 위치가 상기 전체 범위의 한쪽 끝으로부터의 변위로서 표현되는 것인 신호.42. The signal according to claim 41, wherein the end position is represented as a displacement from one end of the entire range. 제34항 내지 제42항 중 어느 한 항에 있어서, 상기 분류 데이터가 상기 복수의 클래스들 각각에 대해 정의된 샘플 값의 범위를 나타내는 데이터를 포함하는 것인 신호.43. The signal according to any one of claims 34 to 42, wherein the classification data includes data representing a range of sample values defined for each of the plurality of classes. 제34항 내지 제43항 중 어느 한 항에 있어서, 상기 분류 데이터가 상기 선택된 분류의 유효 범위를 나타내는 데이터를 포함하는 것인 신호.44. The signal according to any one of claims 34 to 43, wherein the classification data comprises data representing an effective range of the selected classification. 영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 장치로서,
각각의 샘플은 샘플 값을 가지며, 상기 장치는,
레이트 왜곡 기준에 기초하여, 복수의 사전 결정된 분류들 중에서 분류를 선택하는 수단 - 각각의 상기 사전 결정된 분류는 샘플 값의 전체 범위보다 작은 분류 범위를 가지며 복수의 클래스들로 이루어져 있고, 각각의 클래스는 상기 분류 범위 내에서의 샘플 값의 범위를 정의하고, 샘플의 샘플 값이 관련 클래스의 범위 내에 있는 경우 상기 샘플이 그 클래스 내에 배치됨 -; 및
관련 클래스의 각각의 샘플의 샘플 값에 적용하기 위한 보상 오프셋을 선택된 상기 분류의 각각의 클래스와 연관시키는 수단을 포함하는, 영상의 재구성된 샘플들의 세트에 대한 보상 오프셋들을 제공하는 장치.
An apparatus for providing compensation offsets for a set of reconstructed samples of an image,
Each sample having a sample value, the apparatus comprising:
Means for selecting a classification from among a plurality of predetermined classifications based on a rate distortion criterion, each said predetermined class having a classification range smaller than the entire range of sample values and comprising a plurality of classes, Define a range of sample values within the classification range, and if the sample value of the sample is within the range of the associated class, the sample is placed within the class; And
And means for associating a compensation offset for applying to a sample value of each sample of an associated class with each class of the selected classification.
복수의 샘플들로 이루어져 있는 영상을 인코딩하는 인코딩 장치로서,
상기 샘플들을 인코딩하는 인코더;
재구성된 샘플들을 제공하기 위해, 인코딩된 상기 샘플들을 디코딩하는 디코더; 및
상기 재구성된 샘플들을 필터링하는 루프 필터 - 상기 루프 필터링 수단은 상기 각자의 재구성된 샘플들의 샘플 값들에 보상 오프셋들을 적용하는 오프셋 적용 수단을 포함하고, 각각의 보상 오프셋은 샘플 값의 범위와 연관되어 있으며, 상기 보상 오프셋들은 제45항의 장치에 의해 제공됨 -; 및
인코딩된 샘플들의 비트스트림을 발생시키는 비트스트림 발생기를 포함하는, 인코딩 장치.
An encoding apparatus for encoding an image comprising a plurality of samples,
An encoder to encode the samples;
A decoder to decode the encoded samples to provide reconstructed samples; And
A loop filter for filtering the reconstructed samples, the loop filtering means comprising offset applying means for applying compensation offsets to sample values of the respective reconstructed samples, each compensation offset being associated with a range of sample values The compensation offsets provided by the apparatus of claim 45; And
And a bitstream generator for generating a bitstream of encoded samples.
복수의 샘플들로 이루어져 있는 영상을 디코딩하는 장치로서,
각각의 샘플은 샘플 값을 가지며, 상기 장치는,
인코딩된 샘플 값들을 수신하는 수단;
인코딩된 분류 데이터를 수신하는 수단;
인코딩된 보상 오프셋들을 수신하는 수단;
상기 분류 데이터를 디코딩하고, 상기 디코딩된 분류 데이터에 기초하여, 복수의 사전 결정된 분류들 중에서 분류를 선택하는 수단 - 각각의 상기 사전 결정된 분류는 샘플 값의 전체 범위보다 작은 분류 범위를 가지며 복수의 클래스들로 이루어져 있고, 각각의 클래스는 상기 분류 범위 내에서의 샘플 값의 범위를 정의하고, 샘플의 샘플 값이 관련 클래스의 범위 내에 있는 경우 상기 샘플이 그 클래스 내에 배치됨 -;
재구성된 샘플 값들을 제공하기 위해 상기 인코딩된 샘플들을 디코딩하고, 상기 인코딩된 보상 오프셋들을 디코딩하는 수단;
상기 디코딩된 보상 오프셋들을 상기 선택된 분류의 클래스들과 각각 연관시키는 수단; 및
상기 재구성된 샘플 값들에 대해 루프 필터링을 수행하는 수단 - 상기 루프 필터링은 상기 선택된 분류의 각각의 클래스와 연관되어 있는 상기 디코딩된 보상 오프셋을 관련 클래스의 범위 내의 재구성된 샘플 값들에 적용하는 것을 포함함 - 을 포함하는, 장치.
An apparatus for decoding an image comprising a plurality of samples,
Each sample having a sample value, the apparatus comprising:
Means for receiving encoded sample values;
Means for receiving encoded classification data;
Means for receiving encoded compensated offsets;
Means for decoding the classification data and selecting a classification from among a plurality of predetermined classifications based on the decoded classification data, each of the predetermined classifications having a classification range smaller than the entire range of sample values, Wherein each class defines a range of sample values within the classification range and the sample is placed in the class if the sample value of the sample is within the range of the associated class;
Means for decoding the encoded samples to provide reconstructed sample values, and decoding the encoded compensation offsets;
Means for associating the decoded compensation offsets with each of the classes of the selected classification; And
Means for performing loop filtering on the reconstructed sample values, wherein the loop filtering comprises applying the decoded compensation offset associated with each class of the selected class to reconstructed sample values in the range of the class of interest. - < / RTI >
KR1020147014408A 2011-11-07 2012-11-07 Method and device for providing compensation offsets for a set of reconstructed samples of an image KR101530244B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1119206.9 2011-11-07
GBGB1119206.9A GB201119206D0 (en) 2011-11-07 2011-11-07 Method and device for providing compensation offsets for a set of reconstructed samples of an image
GB1203285.0 2012-02-24
GB1203285.0A GB2499983A (en) 2011-11-07 2012-02-24 Providing compensation offsets for a set of reconstructed samples of an image
PCT/EP2012/072069 WO2013068427A2 (en) 2011-11-07 2012-11-07 Method and device for providing compensation offsets for a set of reconstructed samples of an image

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020147017658A Division KR101920105B1 (en) 2011-11-07 2012-11-07 Method for providing compensation offsets for a set of reconstructed samples of an image

Publications (2)

Publication Number Publication Date
KR20140090648A true KR20140090648A (en) 2014-07-17
KR101530244B1 KR101530244B1 (en) 2015-06-22

Family

ID=45421397

Family Applications (12)

Application Number Title Priority Date Filing Date
KR1020187032810A KR101972366B1 (en) 2011-11-07 2012-11-07 Apparatus for applying sample adaptive offsets
KR1020187032999A KR102083280B1 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
KR1020207005285A KR102130480B1 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
KR1020147014408A KR101530244B1 (en) 2011-11-07 2012-11-07 Method and device for providing compensation offsets for a set of reconstructed samples of an image
KR1020187032809A KR102029614B1 (en) 2011-11-07 2012-11-07 Apparatus for applying sample adaptive offsets
KR1020197028861A KR20190114049A (en) 2011-11-07 2012-11-07 Apparatus for applying sample adaptive offset
KR1020147019037A KR101920529B1 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
KR1020187032998A KR102068431B1 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
KR1020187032811A KR102030304B1 (en) 2011-11-07 2012-11-07 Apparatus for applying sample adaptive offsets
KR1020147017658A KR101920105B1 (en) 2011-11-07 2012-11-07 Method for providing compensation offsets for a set of reconstructed samples of an image
KR1020147014410A KR101530832B1 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
KR1020187033000A KR102068432B1 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020187032810A KR101972366B1 (en) 2011-11-07 2012-11-07 Apparatus for applying sample adaptive offsets
KR1020187032999A KR102083280B1 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
KR1020207005285A KR102130480B1 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image

Family Applications After (8)

Application Number Title Priority Date Filing Date
KR1020187032809A KR102029614B1 (en) 2011-11-07 2012-11-07 Apparatus for applying sample adaptive offsets
KR1020197028861A KR20190114049A (en) 2011-11-07 2012-11-07 Apparatus for applying sample adaptive offset
KR1020147019037A KR101920529B1 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
KR1020187032998A KR102068431B1 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
KR1020187032811A KR102030304B1 (en) 2011-11-07 2012-11-07 Apparatus for applying sample adaptive offsets
KR1020147017658A KR101920105B1 (en) 2011-11-07 2012-11-07 Method for providing compensation offsets for a set of reconstructed samples of an image
KR1020147014410A KR101530832B1 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image
KR1020187033000A KR102068432B1 (en) 2011-11-07 2012-11-07 Method and device for optimizing encoding/decoding of compensation offsets for a set of reconstructed samples of an image

Country Status (14)

Country Link
US (12) US9118931B2 (en)
EP (11) EP3247117B1 (en)
JP (10) JP6067024B2 (en)
KR (12) KR101972366B1 (en)
CN (15) CN107465918B (en)
BR (10) BR122019026456B1 (en)
DK (2) DK2777255T3 (en)
ES (7) ES2772837T3 (en)
GB (5) GB201119206D0 (en)
HU (5) HUE047964T2 (en)
IN (2) IN2014CN04153A (en)
PL (5) PL3396957T3 (en)
RU (13) RU2636666C1 (en)
WO (3) WO2013068428A2 (en)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101529992B1 (en) 2010-04-05 2015-06-18 삼성전자주식회사 Method and apparatus for video encoding for compensating pixel value of pixel group, method and apparatus for video decoding for the same
GB201119206D0 (en) 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
US9253482B2 (en) * 2011-11-08 2016-02-02 Texas Insturments Incorporated Method and apparatus for sample adaptive offset without sign coding
US9277194B2 (en) * 2011-11-08 2016-03-01 Texas Instruments Incorporated Method and apparatus for image and video coding using hierarchical sample adaptive band offset
CN104869416B (en) * 2011-12-22 2018-08-03 三星电子株式会社 Video decoding apparatus
US9161035B2 (en) * 2012-01-20 2015-10-13 Sony Corporation Flexible band offset mode in sample adaptive offset in HEVC
GB2509707B (en) 2013-01-04 2016-03-16 Canon Kk A method, device, computer program, and information storage means for encoding or decoding a video sequence
KR102166335B1 (en) * 2013-04-19 2020-10-15 삼성전자주식회사 Method and apparatus for video encoding with transmitting SAO parameters, method and apparatus for video decoding with receiving SAO parameters
US9826240B2 (en) * 2013-07-05 2017-11-21 Texas Instruments Incorporated High throughput VLSI architecture for HEVC SAO encoding
JP6174966B2 (en) * 2013-10-17 2017-08-02 キヤノン株式会社 Image coding apparatus, image coding method, and program
KR20160075705A (en) 2013-10-25 2016-06-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Hash-based block matching in video and image coding
KR102197505B1 (en) 2013-10-25 2020-12-31 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Representing blocks with hash values in video and image coding and decoding
TWI496456B (en) * 2013-11-19 2015-08-11 Ind Tech Res Inst Method and apparatus for inter-picture cost computation
CN103647975B (en) * 2013-12-02 2017-01-11 国家广播电影电视总局广播科学研究院 Improved sample adaptive offset filtering method based on histogram analysis
CN110072106B (en) * 2013-12-13 2022-06-07 北京三星通信技术研究有限公司 Method and device for processing pixels in video coding and decoding
US9628822B2 (en) 2014-01-30 2017-04-18 Qualcomm Incorporated Low complexity sample adaptive offset encoding
EP3114838B1 (en) 2014-03-04 2018-02-07 Microsoft Technology Licensing, LLC Hash table construction and availability checking for hash-based block matching
US10368092B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
JP6338408B2 (en) * 2014-03-14 2018-06-06 三菱電機株式会社 Image encoding device, image decoding device, image encoding method, and image decoding method
CN105409221B (en) 2014-04-29 2020-03-06 微软技术许可有限责任公司 Encoder-side decision for sample adaptive offset filtering
CN105323588B (en) * 2014-06-16 2019-06-21 敦泰电子股份有限公司 A kind of image compression system of dynamically adapting compression parameters
CN105706450B (en) 2014-06-23 2019-07-16 微软技术许可有限责任公司 It is determined according to the encoder of the result of the Block- matching based on hash
KR102276854B1 (en) * 2014-07-31 2021-07-13 삼성전자주식회사 Method and apparatus for video encoding for using in-loof filter parameter prediction, method and apparatus for video decoding for using in-loof filter parameter prediction
WO2016049834A1 (en) 2014-09-30 2016-04-07 Microsoft Technology Licensing, Llc Hash-based encoder decisions for video coding
GB2533905A (en) * 2014-10-06 2016-07-13 Canon Kk Method and apparatus for video coding and decoding
CN107251053B (en) * 2015-02-13 2018-08-28 北京市商汤科技开发有限公司 A kind of method and device for the compression artefacts reducing lossy compression image
JP6454229B2 (en) * 2015-06-10 2019-01-16 日本電信電話株式会社 Image encoding device, image decoding device, image encoding program, and image decoding program
US20170006283A1 (en) * 2015-06-30 2017-01-05 Microsoft Technology Licensing, Llc Computationally efficient sample adaptive offset filtering during video encoding
KR102423880B1 (en) 2015-10-06 2022-07-21 삼성전자주식회사 Method for operating of encoder, and method for operating system on chip including encoder
US10547848B2 (en) * 2015-11-04 2020-01-28 Lg Electronics Inc. Image decoding method and apparatus in image coding system
US10728546B2 (en) 2016-02-05 2020-07-28 Apple Inc. Sample adaptive offset systems and methods
EP3220643A1 (en) * 2016-03-14 2017-09-20 Thomson Licensing Method and device for encoding at least one image unit, and method and device for decoding a stream representative of at least one image unit
CN105959731B (en) * 2016-04-28 2019-02-05 西安交通大学 A kind of statistical-multiplexing encoding method of DTV
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
EP3306922A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and apparatus for encoding a picture using rate-distortion based block splitting
US10432972B2 (en) * 2016-10-19 2019-10-01 Google Llc Guided offset correction for loop restoration in video coding
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
CN109565604A (en) * 2016-12-30 2019-04-02 华为技术有限公司 Image filtering method, device and equipment
JP7001346B2 (en) 2017-01-30 2022-01-19 ダイキン工業株式会社 Refrigeration equipment
CN116233422A (en) * 2017-03-22 2023-06-06 汉阳大学校产学协力团 Loop filtering method based on self-adaptive pixel classification reference
CN107360431B (en) * 2017-06-30 2019-08-02 武汉斗鱼网络科技有限公司 A kind of judgment method and device of frame type
CN107707915B (en) * 2017-09-30 2019-11-12 上海兆芯集成电路有限公司 Sample the control method and its image processing system of point self-adapted offset filtering
JP6939892B2 (en) * 2017-10-25 2021-09-22 株式会社ソシオネクスト Coding method, decoding method, coding device, decoding device, coding program and decoding program
CN111587576B (en) 2018-01-05 2023-03-31 株式会社索思未来 Encoding method, decoding method, encoding device, decoding device, and recording medium
GB2574423A (en) * 2018-06-05 2019-12-11 Canon Kk Video coding and decoding
JP6990627B2 (en) 2018-06-29 2022-01-12 ダイキン工業株式会社 Outdoor air conditioner
KR102312337B1 (en) * 2018-10-19 2021-10-14 삼성전자주식회사 AI encoding apparatus and operating method for the same, and AI decoding apparatus and operating method for the same
WO2020094154A1 (en) * 2018-11-09 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Improvements for region based adaptive loop filter
GB2580173B (en) 2018-12-21 2022-07-27 Canon Kk A filter
CN109862374A (en) * 2019-01-07 2019-06-07 北京大学 A kind of adaptive loop filter method and device
CN109859126B (en) * 2019-01-17 2021-02-02 浙江大华技术股份有限公司 Video noise reduction method and device, electronic equipment and storage medium
JP7256874B2 (en) * 2019-03-08 2023-04-12 キヤノン株式会社 adaptive loop filter
CN110677649B (en) * 2019-10-16 2021-09-28 腾讯科技(深圳)有限公司 Artifact removing method based on machine learning, artifact removing model training method and device
WO2021093801A1 (en) * 2019-11-14 2021-05-20 Beijing Bytedance Network Technology Co., Ltd. Coding of low bit-depth visual media data
US20230024020A1 (en) * 2019-12-09 2023-01-26 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive loop filtering
CN114868393A (en) 2019-12-17 2022-08-05 阿里巴巴集团控股有限公司 Method of performing surround motion compensation
US11375221B2 (en) * 2020-02-12 2022-06-28 Tencent America LLC Method and apparatus for cross-component filtering
CN115398906A (en) 2020-03-26 2022-11-25 阿里巴巴集团控股有限公司 Method for signalling video coding data
CN111698511B (en) * 2020-06-07 2022-09-16 咪咕文化科技有限公司 Image filtering method, device, equipment and readable storage medium
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks
US11750816B2 (en) 2020-12-03 2023-09-05 Alibaba Group Holding Limited Methods and systems for cross-component sample adaptive offset
CN112862924B (en) * 2020-12-31 2022-11-25 哈尔滨工业大学(威海) Image reconstruction method and device in multi-modal imaging and multi-modal imaging technical system
TWI764492B (en) * 2020-12-31 2022-05-11 鴻海精密工業股份有限公司 Classification method, classification device for defect detection, electronic device and storage media
CN113099230B (en) * 2021-02-22 2022-09-06 浙江大华技术股份有限公司 Encoding method, encoding device, electronic equipment and computer readable storage medium
CN112819017B (en) * 2021-03-09 2022-08-16 遵义师范学院 High-precision color cast image identification method based on histogram
CN112752104B (en) * 2021-04-06 2021-06-08 浙江华创视讯科技有限公司 Image compensation method, image compensation device, storage medium and electronic equipment
WO2023023174A1 (en) * 2021-08-19 2023-02-23 Beijing Dajia Internet Information Technology Co., Ltd. Coding enhancement in cross-component sample adaptive offset

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0223557A3 (en) 1985-11-15 1989-04-05 Data General Corporation Display control in a data processing system
KR0148130B1 (en) * 1992-05-18 1998-09-15 강진구 Apparatus and method for encoding/decoding due to restrain blocking artifact
US5502489A (en) 1994-01-03 1996-03-26 Daewoo Electronics Co., Ltd. Method for the motion adaptive spatial filtering of video signals in an image coding apparatus
US6519369B1 (en) * 1999-02-12 2003-02-11 Sony Corporation Method and apparatus for filter tap expansion
FI117533B (en) 2000-01-20 2006-11-15 Nokia Corp Procedure for filtering digital video images
JP4156188B2 (en) * 2000-10-20 2008-09-24 パイオニア株式会社 Information output device, information output method, information recording device, information recording method, information output recording system, information output recording method, and information recording medium
US7450641B2 (en) 2001-09-14 2008-11-11 Sharp Laboratories Of America, Inc. Adaptive filtering based upon boundary strength
KR100995445B1 (en) * 2003-08-19 2010-11-18 파나소닉 주식회사 Method for encoding moving image and method for decoding moving image
EP1510973A3 (en) 2003-08-29 2006-08-16 Samsung Electronics Co., Ltd. Method and apparatus for image-based photorealistic 3D face modeling
US7369709B2 (en) 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
CN1285214C (en) * 2004-01-14 2006-11-15 华中科技大学 Loop filtering method and loop filter
US7397854B2 (en) * 2004-04-29 2008-07-08 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US7876833B2 (en) 2005-04-11 2011-01-25 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive up-scaling for spatially scalable coding
KR101278308B1 (en) * 2005-04-13 2013-06-25 톰슨 라이센싱 Luma and chroma encoding using a common predictor
US7511769B2 (en) * 2005-04-19 2009-03-31 Texas Instruments Incorporated Interframe noise reduction for video
RU2419859C2 (en) * 2005-06-01 2011-05-27 Конинклейке Филипс Электроникс Н.В. Method and electronic device for determining content element characteristics
CN101204097B (en) * 2005-06-23 2012-01-11 皇家飞利浦电子股份有限公司 3-D image transmission using 2-D image and related depth data
KR100678958B1 (en) * 2005-07-29 2007-02-06 삼성전자주식회사 Deblocking filtering method considering intra BL mode, and video encoder/decoder based on multi-layer using the method
CN100438629C (en) * 2005-09-19 2008-11-26 华为技术有限公司 Loop filtering method in image coding processing
KR100647402B1 (en) 2005-11-01 2006-11-23 매그나칩 반도체 유한회사 Apparatus and method for improving image of image sensor
US7956930B2 (en) * 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
RU2406259C2 (en) * 2006-03-27 2010-12-10 Квэлкомм Инкорпорейтед Methods and systems for coding of clarification coefficients in video data compression
WO2007116551A1 (en) * 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba Image coding apparatus and image coding method, and image decoding apparatus and image decoding method
US9001899B2 (en) 2006-09-15 2015-04-07 Freescale Semiconductor, Inc. Video information processing system with selective chroma deblock filtering
US20080080618A1 (en) 2006-09-28 2008-04-03 Kazuya Takagi Video decoding apparatus and method of the same
CN105392005A (en) * 2006-11-08 2016-03-09 汤姆逊许可证公司 Methods and apparatus for in-loop de-artifact filtering
CN100578618C (en) * 2006-12-04 2010-01-06 华为技术有限公司 Decoding method and device
US9445128B2 (en) * 2006-12-08 2016-09-13 Freescale Semiconductor, Inc. System and method of determining deblocking control flag of scalable video system for indicating presentation of deblocking parameters for multiple layers
WO2008075247A1 (en) * 2006-12-18 2008-06-26 Koninklijke Philips Electronics N.V. Image compression and decompression
US8237863B2 (en) * 2008-01-12 2012-08-07 Huaya Microelectronics Adaptive gain and offset control in a digital video decoder
US8234193B2 (en) * 2008-03-03 2012-07-31 Wildfire Interactive, Inc. Method and system for providing online promotions through a social network-based platform
US8831086B2 (en) * 2008-04-10 2014-09-09 Qualcomm Incorporated Prediction techniques for interpolation in video coding
JP2009290552A (en) * 2008-05-29 2009-12-10 Fujifilm Corp Motion picture compressing apparatus and motion picture compression program
KR20090129926A (en) * 2008-06-13 2009-12-17 삼성전자주식회사 Method and apparatus for image encoding by dynamic unit grouping, and method and apparatus for image decoding by dynamic unit grouping
JP5161702B2 (en) * 2008-08-25 2013-03-13 キヤノン株式会社 Imaging apparatus, imaging system, and focus detection method
US9571856B2 (en) * 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
CN101742290B (en) * 2008-11-12 2013-03-27 北京中星微电子有限公司 Methods and devices for denoising in video coding and decoding,
JPWO2010092740A1 (en) * 2009-02-10 2012-08-16 パナソニック株式会社 Image processing apparatus, image processing method, program, and integrated circuit
CN101511024A (en) * 2009-04-01 2009-08-19 北京航空航天大学 Movement compensation method of real time electronic steady image based on motion state recognition
EP2237557A1 (en) * 2009-04-03 2010-10-06 Panasonic Corporation Coding for filter coefficients
KR101749269B1 (en) 2009-06-30 2017-06-22 삼성전자주식회사 Apparaus and method for video encoding and decoding apparatus using adaptive in loop filter
US10291938B2 (en) * 2009-10-05 2019-05-14 Interdigital Madison Patent Holdings Methods and apparatus for adaptive filtering of prediction pixels for chroma components in video encoding and decoding
WO2011112237A1 (en) * 2010-03-09 2011-09-15 Thomson Licensing Methods and apparatus for a classification-based loop filter
KR101529992B1 (en) * 2010-04-05 2015-06-18 삼성전자주식회사 Method and apparatus for video encoding for compensating pixel value of pixel group, method and apparatus for video decoding for the same
US8428372B2 (en) * 2010-04-09 2013-04-23 The Boeing Company Method, apparatus and computer program product for compressing data
CN101860753B (en) * 2010-04-30 2012-10-03 北京航空航天大学 Fractal-based video compression and decompression method
US8660174B2 (en) * 2010-06-15 2014-02-25 Mediatek Inc. Apparatus and method of adaptive offset for video coding
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
US9247265B2 (en) * 2010-09-01 2016-01-26 Qualcomm Incorporated Multi-input adaptive filter based on combination of sum-modified Laplacian filter indexing and quadtree partitioning
US9055305B2 (en) * 2011-01-09 2015-06-09 Mediatek Inc. Apparatus and method of sample adaptive offset for video coding
KR101526349B1 (en) * 2010-10-05 2015-06-05 미디어텍 인크. Method and apparatus of region-based adaptive loop filtering
BR112013011053A8 (en) * 2010-11-10 2016-08-23 Sony Corp IMAGE PROCESSING DEVICE AND METHOD
CN103404137B (en) * 2011-01-09 2016-10-19 寰发股份有限公司 The method and apparatus of effective sample adaptive equalization
US9161041B2 (en) * 2011-01-09 2015-10-13 Mediatek Inc. Apparatus and method of efficient sample adaptive offset
US20120183078A1 (en) 2011-01-14 2012-07-19 Samsung Electronics Co., Ltd. Filter adaptation with directional features for video/image coding
US9001883B2 (en) * 2011-02-16 2015-04-07 Mediatek Inc Method and apparatus for slice common information sharing
GB2488830B (en) 2011-03-10 2015-07-29 Canon Kk Method and device for encoding image data and method and device for decoding image data
CN107249131B (en) 2011-03-30 2020-04-24 Lg 电子株式会社 Video decoding device and video encoding device
CA2823902C (en) * 2011-04-21 2018-03-27 Mediatek Inc. Method and apparatus for improved in-loop filtering
US9008170B2 (en) 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
CN103535035B (en) 2011-05-16 2017-03-15 寰发股份有限公司 For the method and apparatus that the sample self adaptation of brightness and chromatic component offsets
EP3787289B1 (en) 2011-06-14 2022-08-03 LG Electronics Inc. Method for encoding and decoding image information
WO2012175195A1 (en) 2011-06-20 2012-12-27 Panasonic Corporation Simplified pipeline for filtering
AU2012274326B2 (en) * 2011-06-23 2017-03-23 Huawei Technologies Co., Ltd. Offset decoding device, offset encoding device, image filter device, and data structure
CA3039403C (en) 2011-06-24 2021-06-08 Lg Electronics Inc. Image information encoding and decoding method
MY193771A (en) 2011-06-28 2022-10-27 Samsung Electronics Co Ltd Video encoding method using offset adjustments according to pixel classification and apparatus therefor, video decoding method and apparatus therefor
CN103597834B (en) * 2011-08-04 2016-12-21 寰发股份有限公司 Method and device based on context adaptive binary arithmetic coding
US9344743B2 (en) * 2011-08-24 2016-05-17 Texas Instruments Incorporated Flexible region based sample adaptive offset (SAO) and adaptive loop filter (ALF)
US10070152B2 (en) * 2011-08-24 2018-09-04 Texas Instruments Incorporated Sample adaptive offset (SAO) parameter signaling
WO2013042884A1 (en) 2011-09-19 2013-03-28 엘지전자 주식회사 Method for encoding/decoding image and device thereof
KR20130034566A (en) * 2011-09-28 2013-04-05 한국전자통신연구원 Method and apparatus for video encoding and decoding based on constrained offset compensation and loop filter
WO2013046990A1 (en) * 2011-09-29 2013-04-04 シャープ株式会社 Offset decoding apparatus, offset encoding apparatus, image filter apparatus, and data structure
US20130083844A1 (en) 2011-09-30 2013-04-04 In Suk Chong Coefficient coding for sample adaptive offset and adaptive loop filter
US9357235B2 (en) * 2011-10-13 2016-05-31 Qualcomm Incorporated Sample adaptive offset merged with adaptive loop filter in video coding
US20140198844A1 (en) * 2011-10-24 2014-07-17 Mediatek Inc. Method and apparatus for non-cross-tile loop filtering
JP2013093792A (en) * 2011-10-27 2013-05-16 Sony Corp Image processor and image processing method
WO2013064661A1 (en) 2011-11-03 2013-05-10 Panasonic Corporation Filtering of blocks coded in the pulse code modulation mode
JP2013138395A (en) 2011-11-04 2013-07-11 Sharp Corp Image filtering device, image decoding device, image encoding device and data structure
US10051289B2 (en) * 2011-11-04 2018-08-14 Qualcomm Incorporated Adaptive center band offset filter for video coding
GB201119206D0 (en) 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
WO2013073184A1 (en) 2011-11-15 2013-05-23 パナソニック株式会社 Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device
CN104869416B (en) * 2011-12-22 2018-08-03 三星电子株式会社 Video decoding apparatus
US9161035B2 (en) * 2012-01-20 2015-10-13 Sony Corporation Flexible band offset mode in sample adaptive offset in HEVC
US9380302B2 (en) 2012-02-27 2016-06-28 Texas Instruments Incorporated Sample adaptive offset (SAO) parameter signaling
WO2014005305A1 (en) * 2012-07-04 2014-01-09 Intel Corporation Inter-view filter parameters re-use for three dimensional video coding
JP6382807B2 (en) * 2012-07-16 2018-08-29 サムスン エレクトロニクス カンパニー リミテッド Method and apparatus for SAO encoding or decoding

Also Published As

Publication number Publication date
KR102083280B1 (en) 2020-03-02
US9774886B2 (en) 2017-09-26
EP3648461A1 (en) 2020-05-06
GB2496220A (en) 2013-05-08
RU2702054C1 (en) 2019-10-03
BR122019026461B1 (en) 2023-01-31
US20140301489A1 (en) 2014-10-09
CN103975587B (en) 2017-05-10
RU2707926C1 (en) 2019-12-02
KR102068431B1 (en) 2020-01-20
JP7077385B2 (en) 2022-05-30
KR20140093247A (en) 2014-07-25
CN107566840A (en) 2018-01-09
WO2013068427A2 (en) 2013-05-16
EP3657792B1 (en) 2021-12-22
EP3270592B1 (en) 2018-11-07
KR20140090698A (en) 2014-07-17
EP3229471A1 (en) 2017-10-11
EP2777253B1 (en) 2017-04-12
JP2017098979A (en) 2017-06-01
US10575020B2 (en) 2020-02-25
KR20180125042A (en) 2018-11-21
US11076173B2 (en) 2021-07-27
KR20140095112A (en) 2014-07-31
BR122019028115B1 (en) 2023-02-07
BR122019028118B1 (en) 2022-05-17
EP3247117A1 (en) 2017-11-22
JP2018139426A (en) 2018-09-06
CN107197256A (en) 2017-09-22
KR101972366B1 (en) 2019-04-25
KR102068432B1 (en) 2020-01-20
GB201200918D0 (en) 2012-02-29
EP3396957A1 (en) 2018-10-31
GB2496213A (en) 2013-05-08
IN2014CN04154A (en) 2015-07-10
CN107465918A (en) 2017-12-12
BR112014010885A2 (en) 2017-04-18
EP3657792A1 (en) 2020-05-27
CN103975588A (en) 2014-08-06
EP2777254B1 (en) 2017-09-06
WO2013068428A2 (en) 2013-05-16
US20210306675A1 (en) 2021-09-30
DK2777253T3 (en) 2017-05-22
HUE057829T2 (en) 2022-06-28
HUE057826T2 (en) 2022-06-28
CN103975587A (en) 2014-08-06
JP6490276B2 (en) 2019-03-27
CN107197271B (en) 2020-04-21
EP3657791A1 (en) 2020-05-27
PL3396957T3 (en) 2020-05-18
WO2013068427A3 (en) 2013-07-04
HUE057828T2 (en) 2022-06-28
PL3657790T3 (en) 2022-06-20
JP2014533028A (en) 2014-12-08
CN107396105A (en) 2017-11-24
US10085042B2 (en) 2018-09-25
CN107465918B (en) 2020-08-11
US20170359598A1 (en) 2017-12-14
US20180367815A1 (en) 2018-12-20
BR112014010885B1 (en) 2022-05-17
KR20180125051A (en) 2018-11-21
ES2628070T3 (en) 2017-08-01
KR20180125616A (en) 2018-11-23
JP2019110587A (en) 2019-07-04
ES2771249T3 (en) 2020-07-06
CN107295337B (en) 2020-03-31
KR20190114049A (en) 2019-10-08
US9794596B2 (en) 2017-10-17
EP3657791B1 (en) 2021-12-22
US20140369429A1 (en) 2014-12-18
JP6797993B2 (en) 2020-12-09
CN107197256B (en) 2021-09-21
WO2013068433A2 (en) 2013-05-16
RU2586863C2 (en) 2016-06-10
CN107483935A (en) 2017-12-15
GB201203285D0 (en) 2012-04-11
EP2777255B1 (en) 2017-03-29
KR102029614B1 (en) 2019-10-07
CN107347156A (en) 2017-11-14
EP3657790B1 (en) 2021-12-22
ES2772837T3 (en) 2020-07-08
CN107197270A (en) 2017-09-22
CN107396105B (en) 2020-03-31
GB2499983A (en) 2013-09-11
PL3657792T3 (en) 2022-05-16
KR101920105B1 (en) 2018-11-19
RU2019137625A3 (en) 2021-05-24
RU2676410C1 (en) 2018-12-28
US20190373291A1 (en) 2019-12-05
WO2013068433A3 (en) 2013-11-21
GB201206591D0 (en) 2012-05-30
CN107707914A (en) 2018-02-16
JP6419269B2 (en) 2018-11-07
US20150334423A1 (en) 2015-11-19
US10743033B2 (en) 2020-08-11
US20140301480A1 (en) 2014-10-09
EP3247117B1 (en) 2020-01-08
US20150334393A1 (en) 2015-11-19
GB201119206D0 (en) 2011-12-21
JP2014534762A (en) 2014-12-18
US11601687B2 (en) 2023-03-07
KR101920529B1 (en) 2018-11-20
CN107465919A (en) 2017-12-12
CN103975588B (en) 2017-06-06
GB2496222A (en) 2013-05-08
ES2905473T3 (en) 2022-04-08
US20150326860A1 (en) 2015-11-12
US20190281322A1 (en) 2019-09-12
CN111405278A (en) 2020-07-10
EP3270592A1 (en) 2018-01-17
RU2586862C2 (en) 2016-06-10
RU2020108456A (en) 2021-08-27
BR122019026456B1 (en) 2022-05-24
CN107295337A (en) 2017-10-24
RU2641230C1 (en) 2018-01-16
DK2777255T3 (en) 2017-05-15
US9106931B2 (en) 2015-08-11
CN111405278B (en) 2022-05-24
CN103975590A (en) 2014-08-06
RU2014123386A (en) 2015-12-20
KR102130480B1 (en) 2020-07-06
JP6067024B2 (en) 2017-01-25
BR122019026460B1 (en) 2022-11-22
ES2906155T3 (en) 2022-04-13
KR20180125041A (en) 2018-11-21
RU2019137625A (en) 2021-05-24
US10771819B2 (en) 2020-09-08
RU2701130C1 (en) 2019-09-24
KR20200022537A (en) 2020-03-03
ES2626823T3 (en) 2017-07-26
HUE047964T2 (en) 2020-05-28
CN107197271A (en) 2017-09-22
JP2017225144A (en) 2017-12-21
BR112014010882A2 (en) 2017-05-02
ES2906724T3 (en) 2022-04-20
GB201205304D0 (en) 2012-05-09
KR20180125052A (en) 2018-11-21
JP2019036982A (en) 2019-03-07
RU2708351C1 (en) 2019-12-05
IN2014CN04153A (en) 2015-07-10
EP2777255A2 (en) 2014-09-17
PL3247117T3 (en) 2020-06-01
CN107347156B (en) 2020-04-21
BR112014010882B1 (en) 2022-05-17
US9848208B2 (en) 2017-12-19
EP3396957B1 (en) 2019-12-25
EP3657790A1 (en) 2020-05-27
JP6598957B2 (en) 2019-10-30
JP2020022183A (en) 2020-02-06
BR122019028116B1 (en) 2022-05-17
KR101530244B1 (en) 2015-06-22
RU2716535C1 (en) 2020-03-12
RU2636666C1 (en) 2017-11-27
CN107197270B (en) 2020-03-17
JP2018137752A (en) 2018-08-30
PL3657791T3 (en) 2022-06-20
US20170280165A1 (en) 2017-09-28
BR122019026459B1 (en) 2022-11-22
EP2777254A2 (en) 2014-09-17
CN107707914B (en) 2021-03-19
CN107566840B (en) 2020-05-01
JP2021040333A (en) 2021-03-11
KR20180125040A (en) 2018-11-21
GB2496213B (en) 2014-12-03
CN103975590B (en) 2017-09-26
JP6748749B2 (en) 2020-09-02
JP6490264B2 (en) 2019-03-27
RU2684478C1 (en) 2019-04-09
BR122019028117B1 (en) 2022-11-22
KR102030304B1 (en) 2019-10-08
RU2014123360A (en) 2015-12-20
JP6324481B2 (en) 2018-05-16
US10462493B2 (en) 2019-10-29
EP2777253A2 (en) 2014-09-17
US9118931B2 (en) 2015-08-25
CN107483935B (en) 2020-08-11
CN107465919B (en) 2020-05-01
HUE048923T2 (en) 2020-09-28
JP6184416B2 (en) 2017-08-23
KR101530832B1 (en) 2015-06-22
WO2013068428A3 (en) 2013-07-18

Similar Documents

Publication Publication Date Title
JP7077385B2 (en) A coding method that encodes information for performing sample adaptive offset processing

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180525

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190612

Year of fee payment: 5