KR20220127948A - 적응적인 화소 분류 기준에 따른 인루프 필터링 방법 - Google Patents

적응적인 화소 분류 기준에 따른 인루프 필터링 방법 Download PDF

Info

Publication number
KR20220127948A
KR20220127948A KR1020227031525A KR20227031525A KR20220127948A KR 20220127948 A KR20220127948 A KR 20220127948A KR 1020227031525 A KR1020227031525 A KR 1020227031525A KR 20227031525 A KR20227031525 A KR 20227031525A KR 20220127948 A KR20220127948 A KR 20220127948A
Authority
KR
South Korea
Prior art keywords
tile
information
picture
decoding
block
Prior art date
Application number
KR1020227031525A
Other languages
English (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 KR20220127948A publication Critical patent/KR20220127948A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/124Quantisation
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Abstract

적응적인 화소 분류 기준에 따른 인루프 필터링 방법이 개시된다. 영상 복호화 장치에서 적응적인 화소 분류 기준에 따른 인루프 필터링 방법은, 절대적 분류 기준 또는 상대적 분류 기준에 따라 복원 샘플을 분류하는 단계, 상기 복원 샘플이 분류된 결과에 기초하여 오프셋 정보를 획득하는 단계, 획득된 오프셋 정보를 참조하여 상기 복원 샘플에 오프셋 값을 가산하는 단계 및 상기 오프셋 값이 가산된 복원 샘플을 출력하는 단계를 포함한다. 따라서, 복원 영상의 오류를 보정할 수 있다.

Description

적응적인 화소 분류 기준에 따른 인루프 필터링 방법{IN-LOOP FILTERING METHOD ACCORDING TO ADAPTIVE PIXEL CLASSIFICATION STANDARD}
본 발명은 적응적인 화소 분류 기준에 따른 인루프 필터링 방법에 관한 것으로, 더욱 상세하게는 복원 샘플을 절대적 분류 기준 또는 상대적 분류 기준에 따라 분류하고, 분류된 결과에 따라 적응적으로 설정되는 오프셋 값을 복원 샘플에 가산함으로써 복원 샘플을 필터링하는 방법에 관한 것이다.
ISO/ISE MPEG (Moving Picture Experts Group)과 ITU-T VCEG (Video Coding Experts Group)으로 불리는 각 기관은 JCV-VC (Joint Collaborative Team on Video Coding)를 조직하여 2013 년 1 월 ISO/IEC MPEG-H HEVC (High Efficiency Video Coding)/ITU-T H.265 인 비디오 압축 표준 기술을 제정하였다. 또한, 현재 급속한 정보통신기술의 발전에 따른 고화질 영상이 대중화되는 추세에 부응하기 위해, ISO/ISE MPEG과 ITU-T VCEG 은 제 22 차 JCT-VC 제네바 회의에서 JVET (Joint Video Exploration Team)을 조직하여 HD (High Definition) 화질보다 선명한 UHD 화질(Ultra High Definition)의 영상 압축을 위한 차세대 영상 압축 기술 표준을 제정하고자 활발히 노력하고 있다.
한편, 기존의 비디오 압축 표준 기술(HEVC)에 따른 인-루프 필터에는 샘플 적응적 오프셋(Sample Adaptive Offset)이 제안되었는데, 복원 픽셀(또는 샘플)에 대한 오프셋(Offset) 값을 더해줌으로써, 복원 영상과 원본 영상 사이의 오류를 최소화하고 있다.
기존의 샘플 적응적 오프셋은 엣지 오프셋(edge offset)과 밴드 오프셋(band offset)으로 구분하여 복원 샘플에 따라 적응적 오프셋값을 결정하는데, 구체적으로 복원 픽셀을 중심으로 형성되는 엣지와 복원 픽셀이 속한 화소 대역에 따라 오프셋 값을 적응적으로 사용한다.
그러나, 최근 영상은 매우 다양한 특성을 갖고 있기 때문에 기존의 엣지 오프셋과 밴드 오프셋만으로 오프셋 값을 결정하는 것에는 복원 영상의 오류를 제거하는데 한계가 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 적응적인 화소 분류 기준에 따른 인루프 필터링 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면은, 적응적인 화소 분류 기준에 따른 인루프 필터링 방법을 제공한다.
영상 복호화 장치에서 적응적인 화소 분류 기준에 따른 인루프 필터링 방법은, 절대적 분류 기준 또는 상대적 분류 기준에 따라 복원 샘플을 분류하는 단계, 상기 복원 샘플이 분류된 결과에 기초하여 오프셋 정보를 획득하는 단계, 획득된 오프셋 정보를 참조하여 상기 복원 샘플에 오프셋 값을 가산하는 단계 및 상기 오프셋 값이 가산된 복원 샘플을 출력하는 단계를 포함할 수 있다.
여기서, 상기 복원 샘플을 분류하는 단계는, 분류 기준이 상기 절대적 분류이면, 상기 복원 샘플의 밝기값이 속하는 대역에 따라 상기 복원 샘플을 분류하는 단계를 포함할 수 있다.
여기서, 상기 복원 샘플을 분류하는 단계는, 분류 기준이 상기 상대적 분류이면, 상기 복원 샘플의 화소값 및 상기 복원 샘플과 인접한 이웃 샘플들의 화소값 상호간 비교에 의해 도출되는 엣지 정보 및 기울기 정보 중 적어도 하나에 기초하여 상기 복원 샘플을 분류하는 단계를 포함할 수 있다.
상기와 같은 본 발명에 따른 절대적 분류 또는 상대적 분류에 따라 샘플 적응적 오프셋을 수행하는 방법을 이용할 경우에는 복원 영상의 오류를 더 세밀하게 수정할 수 있다.
또한, 다양한 분류 기준을 적용하기 때문에 복원 영상마다 갖는 특성에 맞는 오프셋 적용이 가능한 장점이 있다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.
도 4a 내지 도 4c는 본 발명의 일 실시예에 따른 영상 부/복호화 장치가 사용하는 서브 영역들인 블록, 타일, 슬라이스를 나타낸 예시도이다.
도 5는 본 발명의 일 실시예에 따른 스캔 순서에 따라 연속하는 블록의 묶음으로 슬라이스를 생성하는 예시도이다.
도 6a 내지 도 6d는 픽쳐 내의 타일들과 기본 부호화 단위를 나타낸 예시도이다.
도 7은 타일 단위로 부호화 또는 복호화가 수행될 경우에 설정되는 정보들을 명시적으로 다룬 소스 코드이다.
도 8은 본 발명의 일 실시예에 따른 상대적 분류에 따라 샘플 적응적 오프셋(Sample Adaptive Offset)이 적용되는 샘플 화소를 설명하기 위한 예시도이다.
도 9는 본 발명의 일 실시예에 따른 상대적 분류에서 엣지에 따라 분류된 카테고리를 설명하기 위한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 상대적 분류에 따라 샘플 적응적 오프셋이 적용되는 블록을 대상으로 오프셋 값을 부여하는 방법을 설명하기 위한 예시도이다.
도 11은 본 발명의 일 실시예에 따른 절대적 분류에 따라 샘플 적응적 오프셋을 수행하는 방법을 설명하기 위한 예시도이다.
도 12는 본 발명의 일 실시예에 따른 다양한 대역 정보 생성 방법에 대한 예시도이다.
도 13은 본 발명의 일 실시예에 따른 상대적 분류 및 절대적 분류에 기초한 샘플 적응적 오프셋에 사용되는 구문(syntax)를 설명하기 위한 소스코드이다.
도 14는 본 발명의 일 실시예에 따른 절대적 분류 또는 상대적 분류에 따라 샘플 적응적 오프셋을 수행하는 방법에 대한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
통상적으로 영상은 일련의 정지 영상(Still Image)으로 구성될 수 있으며, 이 정지 영상들은 GOP(Group of Pictures) 단위로 구분될 수 있고, 각 정지 영상을 픽쳐(Picture) 또는 프레임(Frame)이라 지칭할 수 있다. 상위 개념으로는 GOP, 시퀀스(Sequence)등의 단위가 존재할 수 있으며, 또한, 각 픽쳐는 슬라이스(Slice), 타일(Tile), 블록(Block) 등과 같은 소정의 영역으로 분할될 수 있다. 또한, 하나의 GOP에는 I 픽쳐, P 픽쳐, B 픽쳐 등의 단위가 포함될 수 있다. I 픽쳐는 참조 픽쳐를 사용하지 않고 자체적으로 부호화/복호화되는 픽쳐를 의미할 수 있으며, P 픽쳐와 B 픽쳐는 참조 픽쳐를 사용하여 움직임 추정(Motion Estimation) 및 움직임 보상(Motion Compensation) 등의 과정을 수행하여 부호화/복호화 하는 픽쳐를 의미할 수 있다. 일반적으로 P 픽쳐의 경우 I 픽쳐와 P 픽쳐를 참조 픽쳐로써 이용할 수 있으며, B 픽쳐의 경우 I 픽쳐와 P 픽쳐를 참조 픽쳐를 이용할 수 있으나, 이는 부호화/복호화의 설정에 의해 위의 정의 또한 변경될 수 있다.
여기서 부호화/복호화하는데 참조되는 픽쳐를 참조 픽쳐(Reference Picture)라고 하며, 참조되는 블록 또는 화소를 참조 블록(Reference Block), 참조 화소(Reference Pixel)라고 한다. 또한, 참조되는 데이터(Reference Data)는 공간 영역(Spatial Domain)의 화소값 뿐만 아니라 주파수 영역(Frequency Domain)의 계수값, 부호화/복호화 과정 중에 생성, 결정되는 다양한 부호화/복호화 정보일 수 있다.
영상을 이루는 최소 단위는 화소일 수 있으며, 하나의 화소를 표현하는데 사용되는 비트수를 비트 심도(Bit Depth)라고 한다. 일반적으로 비트 심도는 8비트일 수 있으며 부호화 설정에 따라 다른 비트 심도를 지원할 수 있다. 비트 심도는 컬러 공간(Color Space)에 따라 적어도 하나의 비트 심도가 지원될 수 있다. 또한, 영상의 컬러 포맷(Color Format)에 따라 적어도 하나의 컬러 공간으로 구성될 수 있다. 컬러 포맷에 따라 일정 크기를 갖는 1개 이상의 픽쳐 또는 다른 크기를 갖는 1개 이상의 픽쳐로 구성될 수 있다. 예를 들어, YCbCr 4:2:0인 경우 1개의 휘도 성분(본 예에서, Y)과 2개의 색차 성분(본 예에서, Cb/Cr)으로 구성될 수 있으며, 이때 색차 성분과 휘도 성분의 구성 비는 가로, 세로 1:2를 가질 수 있다. 다른 예로, 4:4:4인 경우 가로, 세로 동일한 구성 비를 가질 수 있다. 상기 예처럼 하나 이상의 컬러 공간으로 구성이 되는 경우 픽쳐는 각 컬러 공간으로의 분할을 수행할 수 있다.
본 발명에서는 일부 컬러 포맷(본 예에서, YCbCr)의 일부 컬러 공간(본 예에서, Y)을 기준으로 설명할 것이며, 컬러 포맷에 따른 다른 컬러 공간(본 예에서, Cb, Cr)에도 동일하거나 비슷한 적용(특정 컬러 공간에 의존적인 설정)을 할 수 있다. 그러나 각 컬러 공간에 부분적인 차이(특정 컬러 공간에 독립적인 설정)를 두는 것 또한 가능할 수 있다. 즉, 각 컬러 공간에 의존적인 설정은 각 성분의 구성 비(예를 들어, 4:2:0, 4:2:2, 4:4:4 등에 따라 결정)에 비례하거나 의존적인 설정을 갖는 것으로 의미할 수 있고, 각 컬러 공간에 독립적인 설정은 각 성분의 구성 비에 관계없거나 독립적으로 해당 컬러 공간만의 설정을 갖는 것으로 의미할 수 있다. 본 발명에서는 부/복호화기에 따라 일부 구성에 대해서는 독립적인 설정을 갖거나 의존적인 설정을 가질 수 있다.
영상 부호화 과정에서 필요한 설정 정보 또는 구문 요소는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위 수준에서 정해질 수 있으며 이는 VPS(Video Parameter Set), SPS(Sequence Parameter Set), PPS(Picture Parameter Set), Slice Header, Tile Header, Block Header 등과 같은 단위로 비트스트림에 수록되어 복호화기로 전송될 수 있고, 복호화기에서는 동일 수준의 단위에서 파싱(Parsing)하여 부호화기에서 전송된 설정 정보를 복원하여 영상 복호화 과정에 사용할 수 있다. 각 파라미터 세트는 고유의 아이디값을 갖고 있으며, 하위 파라미터 세트에서는 참조할 상위 파라미터 세트의 아이디값을 가질 수 있다. 예를 들어, 하위 파라미터 세트에서 하나 이상의 상위 파라미터 세트 중 일치하는 아이디값을 갖는 상위 파라미터 세트의 정보를 참조할 수 있다. 위에서 언급된 다양한 단위의 예 중 어떤 하나의 단위가 하나 이상의 다른 단위를 포함하는 경우에 해당하는 단위는 상위 단위, 포함되는 단위는 하위 단위라 칭할 수 있다.
상기 단위에서 발생하는 설정 정보의 경우 해당 단위마다 독립적인 설정에 대한 내용을 포함하거나 이전, 이후 또는 상위 단위 등에 의존적인 설정에 대한 내용을 포함할 수 있다. 여기서 의존적인 설정이란 이전, 이후, 상위 단위의 설정을 따른다는 플래그 정보(예를 들어, 1 비트 플래그로 1이면 따름. 0이면 따르지 않음)로 해당 단위의 설정 정보를 나타내는 것이라 이해될 수 있다. 본 발명에서의 설정 정보는 독립적인 설정에 대한 예를 중심으로 설명을 할 것이나, 현재 단위의 이전, 이후의 단위 또는 상위 단위의 설정 정보에 의존적인 관계에 대한 내용으로의 추가 또는 대체되는 예 또한 포함될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 1을 참조하면, 영상 부호화 장치(105) 및 복호화 장치(100)는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(memory, 120, 125), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(processor, 110, 115) 등을 구비하는 다양한 장치를 포함할 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치(100)로 전송되어 영상 복호화 장치(100)에서 복호화되어 영상으로 복원되고 재생될 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 영상 부호화 장치(105)에서 영상 복호화 장치(100)로 전달될 수 있다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 부호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.
예측부(200)는 화면내 예측을 수행하는 화면내 예측부와 화면간 예측을 수행하는 화면간 예측부를 포함할 수 있다. 화면내 예측은 현재 블록의 인접한 블록의 화소를 참조 화소로 구성하여 화면내 예측 모드를 결정하고, 상기 화면내 예측 모드를 사용하여 예측 블록을 생성할 수 있고, 화면간 예측은 하나 이상의 참조 영상을 이용하여 현재 블록의 움직임 정보를 결정하고, 상기 움직임 정보를 사용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. 현재 블록(부호화 단위 또는 예측 단위)에 대해 화면내 예측 또는 화면간 예측 중 어떤 방식을 사용할 지에 대한 것을 결정하고, 각 예측 방법에 따른 구체적인 정보(예를 들어, 화면내 예측 모드, 움직임 벡터, 참조 영상 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 예측 방법, 예측 모드 등은 예측 단위(또는 부호화 단위)로 결정되고, 예측의 수행은 예측 블록 단위(또는 부호화 단위, 변환 단위)로 수행된다.
감산부(205)는 현재 블록에서 예측 블록을 감산하여 잔차 블록을 생성한다. 즉, 감산부(205)는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측부를 통해 생성된 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호인 잔차 블록을 생성한다.
변환부(210)는 잔차 블록을 주파수 영역으로 변환하여 잔차 블록의 각 화소값을 주파수 계수로 변환한다. 여기서, 변환부(210)는 하다마드 변환(Hadamard Transform), 이산 코사인 변환 기반의 변환(DCT Based Transform), 이산 사인 변환 기반의 변환(DST Based Transform), 카루넨 루베 변환 기반의 변환(KLT Based Transform) 등과 같은 공간축의 화상 신호를 주파수축으로 변환하는 다양한 변환 기법을 이용하여 잔차 신호를 주파수 영역으로 변환할 수 있는데, 주파수 영역으로 변환된 잔차 신호가 주파수 계수가 된다.
양자화부(215)는 변환부(210)에 의해 주파수 영역으로 변환된 주파수 계수를 갖는 잔차 블록을 양자화한다. 여기서, 양자화부(215)는 변환된 잔차 블록을 데드존 균일 경계 양자화(Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 또는 이를 개량한 양자화 기법 등을 사용하여 양자화할 수 있다. 이는1개 이상의 양자화 기법을 후보로 둘 수 있으며 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있다.
엔트로피 부호화부(245)는 생성된 양자화 주파수 계수열을 다양한 스캔 방식에 따라 스캔하여 양자화 계수열을 생성하고, 부호화 과정 중에 생성되는 부호화 정보에 관한 다양한 이진화 방법(고정 길이 이진화<fixed length binariation>, 단항 이진화<unary binarization>, Rice 이진화<truncated rice>, k-th order exp-golomb 등)에 의해 구문 요소를 생성하며, 이를 다양한 엔트로피 부호화 기법{Context Adaptive Binary Arithmetic Coding(CABAC), Context Adaptive Variable Length Coding(CAVLC) 등}을 이용하여 부호화 함으로써 출력한다. 스캔 패턴은 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 하나로 설정할 수 있다.
역양자화부(220)는 양자화부(215)에 의해 양자화된 잔차 블록을 역 양자화한다. 즉, 양자화부(220)는 양자화 주파수 계수열을 역양자화하여 주파수 계수를 갖는 잔차 블록을 생성한다.
역변환부(225)는 역양자화부(220)에 의해 역양자화된 잔차 블록을 역변환한다. 즉, 역변환부(225)는 역양자화된 잔차 블록의 주파수 계수들을 역변환하여 화소값을 갖는 잔차 블록, 즉 복원된 잔차 블록을 생성한다. 여기서, 역변환부(225)는 변환부(210)에서 사용한 변환한 방식을 역으로 사용하여 역변환을 수행할 수 있다.
가산부(230)는 예측부(200)에서 예측된 예측 블록과 역변환부(225)에 의해 복원된 잔차 블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록은 복호화 픽쳐 버퍼(240)에 참조 픽쳐(또는 참조 블록)로서 저장되어 다른 블록, 픽쳐의 부호화시에 참조될 수 있다.
필터부(235)는 디블록킹 필터, SAO, 적응적 루프 필터(Adaptive Loop Filter, ALF) 등의 하나 이상의 후처리 필터 과정을 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. ALF는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. SAO는 디블록킹 필터가 적용된 잔차 블록에 대하여, 화소 단위로 원본 영상과의 오프셋 차이를 복원하며, 밴드 오프셋(Band offset), 에지 오프셋 등의 형태로 적용될 수 있다. 이와 같은 후처리 필터는 복원된 픽쳐 또는 블록에 적용될 수 있다.
부호화 픽쳐 버퍼(240)는 필터부(235)를 통해 복원된 블록 또는 픽쳐를 저장할 수 있다. 복호화 픽쳐 버퍼(240)에 저장된 복원 블록 또는 픽쳐는 화면내 예측 또는 화면간 예측을 수행하는 예측부(200)에 제공될 수 있다.
도면에 도시 하지 않았지만 분할부가 더 포함될 수 있으며, 분할부(더 상세하게는 블록 분할부)를 통해 다양한 크기의 부호화 단위로 분할할 수 있다. 이때, 부호화 단위는 컬러 포맷에 따라 복수개의 부호화 블록으로 구성(예를 들어, 하나의 휘도 부호화 블록, 둘의 색차 부호화 블록 등)될 수 있다. 설명의 편의를 위해 하나의 컬러 성분 단위를 가정하여 설명한다. 부호화 블록은 M×M(예를 들어, M은 4, 8, 16, 32, 64, 128 등)과 같은 가변 크기를 가질 수 있다. 또는, 분할 방식(예를 들어, 트리 기반의 분할. 쿼드 트리 분할, 바이너리 트리 분할 등)에 따라 부호화 블록은 M×N(예를 들어, M과 N은 4, 8, 16, 32, 64, 128 등)과 같은 가변 크기를 가질 수 있다. 이때, 부호화 블록은 화면내 예측, 화면간 예측, 변환, 양자화, 엔트로피 부호화 등의 기초가 되는 단위일 수 있다.
본 발명에서는 분할 방식에 따라 동일한 크기 및 형태를 갖는 복수 개의 서브 블록이 획득되는 가정 하에 설명하지만, 비대칭적인 서브 블록(예를 들어, 바이너리 트리의 경우 4M × 4N은 3M × 4N/M × 4N 또는 4M × 3N/4M × N 등으로 분할)을 갖는 경우로의 적용 또한 가능할 수 있다. 이때, 비대칭적인 서브 블록은 대칭적인 서브 블록을 획득하는 분할 방식에 부/복호화 설정에 따라 추가적으로 지원 여부가 결정되는 정보에 의해 지원될 수 있다.
부호화 블록(M×N)의 분할은 재귀적인 트리 기반의 구조를 가질 수 있다. 이때, 분할 여부는 분할 플래그(예를 들어, 쿼드 트리 분할 플래그, 바이너리 분할 플래그)를 통해 나타낼 수 있다. 예를 들어, 분할 깊이(Depth)가 k인 부호화 블록의 분할 플래그가 0인 경우 부호화 블록의 부호화는 분할 깊이가 k인 부호화 블록에서 수행되며, 분할 깊이가 k인 부호화 블록의 분할 플래그가 1인 경우 부호화 블록의 부호화는 분할 방식에 따라 분할 깊이가 k+1인 4개의 서브 부호화 블록(쿼드 트리 분할) 또는 2개의 서브 부호화 블록(바이너리 트리 분할)에서 수행된다. 이때, 블록의 크기는 4개의 부호화 블록의 경우 (M >> 1) × (N >> 1)이고, 2개의 부호화 블록의 경우 (M >> 1) × N 또는 M × (N >>1)일 수 있다. 상기 서브 부호화 블록은 다시 부호화 블록(k+1)으로 설정되어 상기 과정을 거쳐 서브 부호화 블록(k+2)으로 분할될 수 있다. 이때, 쿼드 트리 분할의 경우 하나의 분할 플래그(예를 들어, 분할 여부 플래그)가 지원될 수 있고, 바이너리 트리 분할의 경우 적어도 하나(2개 이상도 가능)의 플래그(예를 들어, 분할 여부 플래그에 추가적으로 분할 방향 플래그<가로 또는 세로. 선행하는 상위 또는 이전 분할 결과에 따라 일부 경우에 생략가능>)가 지원될 수 있다.
블록 분할은 최대 부호화 블록에서 시작하여 최소 부호화 블록까지 진행할 수 있다. 또는, 최소 분할 깊이(0)에서 시작하여 최대 분할 깊이까지 진행할 수 있다. 즉, 블록의 크기가 최소 부호화 블록 크기에 도달하거나 분할 깊이가 최대 분할 깊이에 도달할 때까지 재귀적으로 분할을 수행할 수 있다. 이때, 부/복호화 설정(예를 들어, 영상<슬라이스, 타일> 타입<I/P/B>, 부호화 모드<Intra/Inter>, 색차 성분<Y/Cb/Cr> 등)에 따라 최대 부호화 블록의 크기와 최소 부호화 블록의 크기, 최대 분할 깊이가 적응적으로 설정될 수 있다.
예를 들어, 최대 부호화 블록은 128×128일 때, 쿼드 트리 분할은 8×8 ~ 128×128 범위에서 수행될 수 있고, 바이너리 트리 분할은 4×4 ~ 32×32범위와 최대 분할 깊이 3인 경우에 수행될 수 있다. 또는, 쿼드 트리 분할은 8×8 ~ 128×128 범위에서 수행될 수 있고, 바이너리 트리 분할은 4×4 ~ 128×128 범위와 최대 분할 깊이 3인 경우에 수행될 수 있다. 전자의 경우 I 영상 타입(예를 들어, 슬라이스), 후자의 경우 P나 B 영상 타입에서의 설정일 수 있다. 상기 예에서 설명된 것과 같이 최대 부호화 블록의 크기, 최소 부호화 블록의 크기, 최대 분할 깊이 등과 같은 분할 설정은 분할 방식과 전술한 부/복호화 설정에 따라 공통되거나 또는 개별적으로 지원될 수 있다.
복수의 분할 방식이 지원되는 경우 각 분할 방식의 블록 지원 범위 내에서 분할이 수행되며, 각 분할 방식의 블록 지원 범위가 겹치는 경우에는 분할 방식의 우선 순위가 존재할 수 있다. 예를 들어, 쿼드 트리 분할이 바이너리 트리 분할을 선행할 수 있다. 또한, 복수의 분할 방식이 지원되는 경우 선행하는 분할의 결과에 따라 후행하는 분할의 수행 여부가 결정될 수 있다. 예를 들어, 선행하는 분할의 결과가 분할을 수행함을 나타낼 경우 후행하는 분할은 수행하지 않고 선행한 분할에 따라 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되어 분할을 수행할 수 있다.
또는, 선행하는 분할의 결과가 분할을 수행하지 않음을 나타낼 경우 후행하는 분할의 결과에 따라 분할을 수행할 수 있다. 이때, 후행하는 분할의 결과가 분할을 수행함을 나타낼 경우 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되어 분할을 수행할 수 있고, 후행하는 분할의 결과가 분할을 수행하지 않음을 나타낼 경우 더 이상의 분할은 수행하지 않는다. 이때, 후행하는 분할 결과가 분할을 수행함을 나타내고 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되었을 때의 상황도 복수의 분할 방식이 지원되는 경우(예를 들어, 각 분할 방식의 블록 지원 범위가 겹치는 경우)일 때, 선행하는 분할은 수행하지 않고 후행하는 분할만 지원할 수 있다. 즉, 복수의 분할 방식이 지원되는 경우에 선행하는 분할의 결과가 분할이 수행되지 않음을 나타낼 경우 더 이상 선행의 분할은 수행하지 않음을 의미한다.
예를 들어, M × N부호화 블록은 쿼드 트리 분할과 바이너리 트리 분할이 가능할 경우 우선 쿼드 트리 분할 플래그를 확인할 수 있고, 상기 분할 플래그가 1인 경우에는 (M >> 1) × (N >> 1) 크기의 4개의 서브 부호화 블록으로 분할이 수행이 되고 상기 서브 부호화 블록은 다시 부호화 블록으로 설정되어 분할(쿼드 트리 분할 또는 바이너리 트리 분할)을 수행할 수 있다. 상기 분할 플래그가 0인 경우에는 바이너리 트리 분할 플래그를 확인할 수 있고, 해당 플래그가 1인 경우에는 (M >> 1) × N 또는 M × (N >> 1) 크기의 2 개의 서브 부호화 블록으로 분할이 수행되고 상기 서브 부호화 블록은 다시 부호화 블록으로 설정되어 분할(바이너리 트리 분할)을 수행할 수 있다. 상기 분할 플래그가 0인 경우에는 분할 과정을 종료하고 부호화를 진행한다.
상기 예를 통해 복수의 분할 방식이 수행되는 경우를 설명하였지만, 이에 한정되지 않고 다양한 분할 방식의 지원 조합이 가능할 수 있다. 예를 들어, 쿼드 트리/바이너리 트리/쿼드 트리 + 바이너리 트리 등의 분할 방식이 사용될 수 있다. 이때, 기본의 분할 방식은 쿼드 트리 방식, 추가적인 분할 방식은 바이너리 트리 방식으로 설정할 수 있고, 추가적인 분할 방식의 지원 여부에 대한 정보가 묵시적으로 결정되거나 명시적으로 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 포함될 수 있다.
상기 예에서 부호화 블록의 크기 정보, 부호화 블록의 지원 범위, 최대 분할 깊이 등 분할에 관련된 정보는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 포함되거나 묵시적으로 결정될 수 있다. 정리하면, 최대 부호화 블록의 크기, 지원되는 블록의 범위, 최대 분할 깊이 등에 의해 허용 가능한 블록의 범위가 정해질 수 있다.
상기 과정을 통해 분할이 수행되어 획득되는 부호화 블록은 화면내 예측 또는 화면간 예측의 최대 크기로 설정될 수 있다. 즉, 블록 분할이 끝난 부호화 블록은 화면내 예측 또는 화면간 예측을 위해 예측 블록의 분할의 시작 크기일 수 있다. 예를 들어, 부호화 블록이 2M×2N일 경우 예측 블록은 그보다 같거나 작은 2M×2N, M×N의 크기를 가질 수 있다. 또는, 2M×2N, 2M×N, M×2N, M×N의 크기를 가질 수 있다. 또는, 부호화 블록와 동일한 크기로 2M×2N의 크기를 가질 수 있다. 이때, 부호화 블록과 예측 블록이 동일한 크기를 갖는다는 것은 예측 블록의 분할을 수행하지 않고 부호화 블록의 분할을 통해 획득된 크기로 예측을 수행한다는 것을 의미할 수 있다. 즉, 예측 블록을 위한 분할 정보는 생성되지 않는다는 것을 의미한다. 이와 같은 설정은 변환 블록에도 적용될 수 있으며 분할된 부호화 블록 단위로 변환을 수행할 수도 있다.
다음과 같은 부/복호화 설정에 따라 다양한 구성이 가능할 수 있다. 예를 들어, (부호화 블록이 결정된 후) 부호화 블록에 기반하여 적어도 하나의 예측 블록과 적어도 하나의 변환 블록을 획득할 수 있다. 또는, 부호화 블록과 동일한 크기의 하나의 예측 블록을 획득할 수 있고, 부호화 블록에 기반하여 적어도 하나의 변환 블록을 획득할 수 있다. 또는, 부호화 블록과 동일한 크기의 하나의 예측 블록과 하나의 변환 블록을 획득할 수 있다. 상기 예에서 적어도 하나의 블록이 획득되는 경우는 각 블록의 분할 정보가 발생(생성)할 수 있고, 하나의 블록이 획득되는 경우는 각 블록의 분할 정보는 발생하지 않는다.
상기 결과에 따라 획득되는 다양한 크기의 정사각 또는 직사각 형태의 블록이 화면내 예측, 화면간 예측에 사용되는 블록일 수 있고, 잔차 성분에 대한 변환, 양자화에 사용되는 블록일 수 있으며, 복원 화소에 대한 필터링에 사용되는 블록일 수 있다.
한편, 복원 화소의 필터링이 적용되는 블록의 단위(예를 들어, SAO 등)는 최대 부호화 블록(예를 들어, M x M)을 기본 단위로 둘 수 있지만, 전술한 것과 같이 다양한 블록 크기 및 형태(예를 들어, M x N, M/2 x M/2, N x N/2 등)를 갖는 부호화 블록(예를 들어, 블록 분할에 따라 획득되는 부호화 블록 등. 또는 필터 블록이라는 단위를 따로 지원할 수도 있음) 단위로 필터링이 적용될 수 있다. 이는 상기 블록 단위로 필터링 관련 정보가 발생한다는 것을 의미한다.
또한, 분할부는 앞에서 설명한 블록 분할을 수행하는 블록 분할부 이외에 픽쳐 분할부를 더 포함할 수 있다. 픽쳐 분할부는 픽쳐를 적어도 하나의 처리 단위(예를 들어, 컬러 공간< YCbCr, RGB, XYZ 등>, 슬라이스, 타일, 블록 등) 등으로 분할할 수 있고, 블록 분할부는 최대(또는 기본) 부호화 단위를 적어도 하나의 처리 단위(예를 들어, 부호화, 예측, 변환, 양자화, 엔트로피, 인루프 필터 단위 등)으로 분할할 수 있다. 이때, 타일은 부호화 블록의 집합으로 하나의 픽쳐를 가로와 세로 방향으로 나눈 사각형 영역을 의미하며, 슬라이스는 부호화 블록의 스캔 순서에 따라 연속적인 부호화 블록의 집합으로 구성되는 영역을 의미한다.
영상의 컬러 포맷에 따라 적어도 하나의 컬러 공간으로 구성될 수 있다. 예를 들어, YCbCr의 경우 1개의 휘도 성분과 2개의 색차 성분으로 구성될 수 있다. 또한, 컬러 포맷에 따라 컬러 성분의 가로와 세로 길이 비율이 정해질 수 있다. 예를 들어, YCbCr 4:2:0인 경우에는 색차 성분의 가로, 세로 길이는 휘도 성분의 가로, 세로의 1/2 일 수 있고, YCbCr 4:4:4인 경우에는 색차 성분의 가로, 세로 길이는 휘도 성분과 동일한 길이를 가질 수 있다. 위와 같이 하나 이상의 컬러 공간으로 구성이 되는 경우 픽쳐는 각 컬러 공간으로의 분할을 수행할 수 있다. 또한, 각 컬러 공간을 최대 부호화 블록으로 분할을 수행할 수 있다.
또한, 픽쳐를 적어도 하나의 타일들로 분할을 수행할 수 있다. 상세하게는, 픽쳐를 가로열(또는 세로열)로 분할을 수행하고, 세로열(또는 가로열)로 분할을 수행하여 적어도 하나의 타일을 획득할 수 있다. 또한, 각 타일은 적어도 하나의 타일 세그먼트로 분할을 수행할 수 있다. 또한, 각 타일 세그먼트를 최대 부호화 단위로 분할을 수행할 수 있다.
또한, 픽쳐를 적어도 하나의 슬라이스로 분할을 수행할 수 있다. 각 슬라이스는 적어도 하나의 슬라이스 세그먼트로 분할을 수행할 수 있다. 또한, 각 슬라이스 세그먼트를 최대 부호화 단위로 분할을 수행할 수 있다.
상기 단위 중 일부는 반드시 포함되지 않을 수 있으며, 부/복호화의 설정에 따라 일부 또는 전부가 선택적으로 포함될 수 있으며, 추가적인 단위가 포함될 수 있다.
픽쳐 분할부를 통해 획득되는 기본 부호화 단위는 컬러 공간에 따라 기본 부호화 블록으로 나뉠 수 있으며 영상의 특성 및 해상도 등에 따라 크기 및 형태가 결정될 수 있다. 지원되는 블록의 크기 또는 형태는 가로, 세로의 길이가 2의 지수승(2n)으로 표현되는 N×N 정사각 형태(2n×2n. 256×256, 128×128, 64×64, 32×32, 16×16, 8×8, 4×4 등. n은 2~8 사이의 정수)이거나, M×N 직사각 형태(2m×2n)일 수 있다. 예를 들어, 해상도가 높은 8k UHD급 영상의 경우 256×256, 1080p HD급 영상의 경우 128×128, WVGA급 영상의 경우 16×16 등 크기로 입력 영상을 분할할 수 있다.
상기 블록의 크기 또는 형태에 대한 정보는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 비트스트림에 수록되어 전송될 수 있으며, 이는 복호화기에서 파싱하여 관련된 정보를 복원할 수 있다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.
도 3을 참조하면, 영상 복호화 장치(30)는, 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가감산기(325), 필터(330), 복호화 픽쳐 버퍼(335)를 포함하여 구성될 수 있다.
또한, 예측부(310)는 다시 화면내 예측 모듈 및 화면간 예측 모듈을 포함하여 구성될 수 있다.
엔트로피 복호화부(305)는 영상 부호화 장치(20)로부터 전달된 비트스트림으로부터 양자화 계수열, 변환 계수열, 또는 신호열 등을 수신하고 이를 엔트로피 복호화 기법(CABAC, CAVLC 등)을 이용하여 복호화할 수 있고, 복호화 정보에 관한 구문 요소를 수신하여 획득된 데이터는 예측부(310)로 전달할 수 있다.
예측부(310)는 엔트로피 복호화부(305)로부터 전달된 데이터들에 기초하여 예측 블록을 생성할 수 있다. 예측부(310)은 앞서 설명한 영상 부호화 장치(20)의 예측부(200)과 동일한 과정을 수행한다.
역양자화부(315)는 비트스트림으로 제공되어 엔트로피 복호화부(305)에 의해 복호화된 양자화된 변환 계수들을 역양자화할 수 있다.
역변환부(320)는 역 DCT, 역 정수 변환 또는 그와 유사한 개념의 역변환 기법들을 변환 계수에 적용하여 잔차 블록을 생성할 수 있다.
이때, 역양자화부(315), 역변환부(320)는 앞서 설명한 영상 부호화 장치(20)의 변환부(210) 및 양자화부(215)에서 수행한 과정을 역으로 수행하며 다양한 방법으로 구현될 수 있다. 예를 들어, 변환부(210) 및 양자화부(215)와 공유하는 동일한 과정 및 역변환을 사용할 수도 있고, 영상 부호화 장치(20)로부터 변환 및 양자화 과정에 관한 정보(예를 들면, 변환 크기, 변환 모양, 양자화 타입 등)를 이용하여 변환 및 양자화 과정을 역으로 수행할 수 있다.
역양자화 및 역변환 과정을 거친 잔차 블록은 예측부(310)에 의해 도출된 예측 블록과 가산되어 복원된 영상 블록이 생성될 수 있다. 이러한 가산은 가감산기(325)에 의해 이루어 질 수 있다.
필터(330)는 복원된 영상 블록에 대하여, 필요에 따라 블로킹(blocking) 현상을 제거하기 위하여 디블로킹 필터를 적용할 수도 있고, 상기 복호화 과정 전 후에 다른 루프 필터들을 비디오 품질을 향상시키기 위해 추가로 사용할 수도 있다.
복원 및 필터를 거친 영상 블록은 복호화 픽쳐 버퍼(335)에 저장될 수 있다.
영상 복호화 장치(30)는 도면에는 도시하지 않았으나 분할부를 더 포함할 수 있으며, 이때 분할부는 픽쳐 분할부와 블록 분할부로 구성될 수 있다. 분할부에 대해서는 도 2에 따른 영상 부호화 장치에서와 동일 또는 상응하는 구성으로 통상의 기술자가 용이하게 이해할 수 있으므로 구체적인 설명은 생략한다.
영상 부/복호화 과정에서는 입력되는 화소값이 출력되는 화소값과 다른 경우가 발생할 수 있으며, 연산상의 오류로 인한 왜곡을 방지하기 위해 화소값 조정 과정(Adjustment)이 수행될 수 있다. 화소값 조정 방법은 화소값의 범위를 넘는 화소값을 화소값의 범위 내로 조절하는 과정으로서, 클리핑(Clipping)으로 지칭할 수도 있다.
Figure pat00001
표 1은 화소값 조정이 수행되는 클리핑 함수(Clip_x)에 대한 예시 코드이다. 표1을 참조하면, 입력 화소값(pixel_val)과 허용되는 화소값 범위의 최소값(minI)과 최대값(maxI)이 클리핑 함수(Clip_x)의 파라미터로 입력될 수 있다. 이때, 비트 심도(bit_depth)를 기준으로 설명하면, 최소값(minI)은 0으로, 최대값(maxI)은 2bit_depth - 1일 수 있다. 클리핑 함수(Clip_x)가 수행되면, 최소값(minI, 파라미터 B)보다 작은 입력 화소값(pixel_val, 파라미터 A)은 최소값(minI)으로 변경되고, 최대값(maxI, 파라미터 C)보다 큰 입력 화소값은 최대값(maxI)으로 변경될 수 있다. 따라서, 출력값(output)은 화소값 조정이 완료된 출력 화소값(pixel_val')으로 반환될 수 있다.
이때, 화소값이 갖는 범위는 비트 심도에 따라 결정되지만, 영상(예를 들어, 픽쳐, 슬라이스, 타일, 블록 등)을 구성하는 화소값은 영상의 종류와 특성에 따라 다르므로 반드시 모든 화소값 범위 내에서 발생하는 것이 아니다. 본 발명의 일 실시예에 따르면, 실제 영상을 구성하는 화소값의 범위를 참조하여 영상 부/복호화 과정에서 활용할 수 있다.
예를 들어, 표 1에 따른 화소값 조정 방법에서도 클리핑 함수의 최소값(minI)을 실제 영상을 구성하는 화소값 중 가장 작은 값으로 사용할 수 있고, 클리핑 함수의 최대값(maxI)은 실제 영상을 구성하는 화소값 중 가장 큰 값을 사용할 수 있다.
정리하면, 영상 부/복호화 장치는 비트 심도에 기초한 화소값 조정 방법 및/또는 영상을 구성하는 화소값 범위에 기초한 화소값 조정 방법을 포함할 수 있다. 부/복호화기에서는 적응적인 화소값 조정 방법을 지원할지 여부를 결정하는 플래그 정보가 지원될 수 있으며, 해당 플래그 정보가 '1'인 경우에는 화소값 조정 방법 선택 정보가 발생할 수 있고, '0'인 경우에는 기 설정된 화소값 조정 방법(본 예에서 비트 심도에 기반한 방법)이 기본 화소값 조정 방법으로 사용될 수 있다. 상기 화소값 조정 방법 선택 정보가 영상을 구성하는 화소값 범위에 기초한 화소값 조정 방법을 가리킬 경우, 영상의 화소값 관련 정보가 포함될 수 있다. 예를 들어, 컬러 성분에 따라 각 영상의 최소값과 최대값 및 후술하는 중앙값 등에 대한 정보에 그 예일 수 있다. 화소값 조정 관련하여 발생하는 정보는 부호화기의 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위로 수록되어 전송될 수 있으며, 복호화기에서 수록된 정보를 파싱하여 동일한 단위에서 관련 정보를 복원할 수 있다.
한편, 상기 과정을 통해 비트 심도에 기초한 화소값 조정 또는 영상을 구성하는 화소값의 범위에 기초한 화소값 조정을 통해 화소값의 최소값과 최대값을 포함하는 화소값의 범위가 변경(결정 또는 정의)될 수 있으며, 추가적인 화소값 범위 정보 또한 변경(결정 또는 정의)될 수 있다. 예를 들면, 실제 영상을 구성하는 화소값의 최대값과 최소값이 변경될 수 있으며, 실제 영상을 구성하는 화소값의 중앙값 또한 변경될 수 있다.
즉, 비트 심도에 따른 화소값 조정 과정에서 minI은 영상의 최소 화소값, maxI는 영상의 최대 화소값, I는 컬러 성분을 의미할 수 있고, medianI는 영상의 중앙 화소값을 의미할 수 있다. minI는 0, maxI은 (1 << bit_depth) - 1, medianI은 1 << (bit_depth - 1)일 수 있으며, median은 부/복호화 설정에 따라 상기 예를 포함하여 다른 형태로 획득될 수 있다. 중앙값은 본 발명에서의 설명을 위한 하나의 용어일 뿐 영상의 부/복호화 과정에서 상기 화소값 조정 과정에 따라 변경(결정 또는 정의)될 수 있는 화소값 범위 정보를 나타내는 하나의 정보일 수 있다.
예를 들어, 영상을 구성하는 화소값의 범위에 따른 화소값 조정 과정에서 minI는 영상의 최소 화소값, maxI은 영상의 최대 화소값, medianI은 영상의 중앙 화소값일 수 있다. medianI은 영상 내 화소값들의 평균일 수 있고, 영상의 화소를 정렬할 때 가운데 위치한 값일 수 있고, 영상의 화소값 범위 정보에 따라 획득되는 값일 수 있다. 적어도 하나의 minI, maxI에서 medianI은 유도될 수 있다. 즉, medianI는 영상의 화소값 범위 내에 존재하는 하나의 화소값일 수 있다.
상세하게는, medianI은 (minI + maxI) / 2 또는 (minI + maxI) >> 1, (minI + maxI + 1) / 2, (minI + maxI + 1) >> 1 등과 같이 영상의 화소값 범위 정보(본 예에서 minI, maxI)에 따라 획득되는 값일 수 있으며, median은 부/복호화 설정에 따라 상기 예를 포함하여 다른 형태로 획득될 수 있다.
다음은 화소값 조정 과정에 따른 실시예(본 예에서 중앙값)를 설명한다.
일 예로, 기본 비트 심도는 8비트(0 ~ 255)이고 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 과정{본 예에서 최소값 10, 최대값 190. 최소값과 최대값으로부터 유도된다는 설정(평균) 하에 중앙값 100}이 선택되며 현재 블록의 위치는 영상(본 예에서 픽쳐) 내의 첫번째 블록일 경우, 부/복호화에 사용될 이웃 블록(본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위, 위쪽, 오른쪽 위)은 존재하지 않으므로 참조 화소는 중앙값(100)으로 채워질 수 있다. 상기 참조 화소를 사용하여 예측 모드에 따라 화면내 예측 과정을 수행할 수 있다.
일 예로, 기본 비트 심도는 10비트(0 ~ 1023)이고 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 과정(본 예에서 중앙값 600. 관련 구문 요소가 존재}이 선택되며 현재 블록의 위치는 영상(본 예에서 슬라이스, 타일)내의 첫번째 블록일 경우, 부/복호화에 사용될 이웃 블록(본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위, 위쪽, 오른쪽 위)은 존재하지 않으므로 참조 화소는 중앙값(600)으로 채워질 수 있다. 상기 참조 화소를 사용하여 예측 모드에 따라 화면내 예측 과정을 수행할 수 있다.
일 예로, 기본 비트 심도는 10비트이고 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 과정(본 예에서 중앙값 112. 관련 구문 요소가 존재)이 선택되며 이웃 블록의 부호화 모드(화면내 예측/화면간 예측) 등에 따라 현재 블록의 예측에 해당 블록의 화소의 이용가능 여부 등이 결정되는 설정이 활성화{본 예에서 해당 블록의 부호화 모드가 화면내 예측인 경우 현재 블록의 참조 화소로 사용가능, 화면간 예측인 경우 사용불가. 본 설정이 비활성화되는 경우에는 해당 블록의 부호화 모드와 상관 없이 현재 블록의 참조 화소로 사용가능. 관련 구문 요소는constrained_intra_pred_flag이며 P나 B영상 타입에서 발생 가능}되며 현재 블록의 위치는 영상의 왼쪽에 위치할 경우, 부/복호화에 사용될 이웃 블록(본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위)은 존재하지 않으며 부/복호화에 사용될 이웃 블록(본 예에서 위쪽, 오른쪽 위)은 존재하지만 해당 블록의 부호화 모드가 화면간 예측이라 상기 설정에 의해 사용이 금지되므로 이용가능한 참조 화소가 존재하지 않을 경우 참조 화소는 중앙값(본 예에서 112)으로 채워질 수 있다. 즉, 사용가능한 참조 화소가 존재하지 않아 영상 화소값 범위의 중앙값으로 채울 수 있다. 상기 참조 화소를 사용하여 예측 모드에 따라 화면내 예측 과정을 수행할 수 있다.
상기 실시예에서는 예측부에서 상기 중앙값 관련한 다양한 경우를 나타내었지만, 이는 영상 부/복호화의 다른 구성에 포함되어 구성될 수도 있다. 또한, 상기 실시예만으로 한정되지 않고 다양한 경우로 변형 및 확장이 가능할 수 있다.
본 발명에서 화소값 조정 과정은 예측부, 변환부, 양자화부, 역양자화부, 역변환부, 필터부, 메모리 등의 부/복호화 과정에 적용될 수 있다. 예를 들어, 화소값 조정 방법에서의 입력 화소는 예측 과정에서의 참조 화소(Reference Sample) 또는 예측 화소(Prediction Sample)일 수 있고, 변환, 양자화, 역변환, 역양자화 과정에서의 복원 화소(Reconstructed Sample)일 수 있다. 또한, 인루프 필터 과정에서의 복원 화소일 수 있고, 메모리에서의 저장 화소(Storage Sample)일 수 있다. 이때, 변환과 양자화, 그 역 과정에서의 복원 화소는 인루프 필터 적용 전의 복원 화소를 의미할 수 있다. 인루프 필터에서의 복원 화소는 인루프 필터 적용 후의 복원 화소를 의미할 수 있다. 디블록킹 필터 과정에서의 복원 화소는 디블록킹 필터 적용 후의 복원 화소를 의미할 수 있다. SAO 과정에서의 복원 화소는 SAO 적용 후의 복원 화소를 의미할 수 있다. ALF 과정에서의 복원 화소는 ALF 적용 후의 복원 화소를 의미할 수 있다. 위와 같이 다양한 경우에 대한 예시를 설명하였으나, 이에 한정되지 않고 화소값 조정 과정이 호출되는 모든 부/복호화 과정의 입력, 중간, 출력 단계에서 적용될 수 있다.
도 4a 내지 도 4c는 본 발명의 일 실시예에 따른 영상 부/복호화 장치가 사용하는 서브 영역들인 블록, 타일, 슬라이스를 나타낸 예시도이다.
도 4a를 참조하면, 픽쳐를 세로 방향과 가로 방향으로 일정한 길이(본 예에서 B_W, B_H) 간격으로 분할하여 획득된 블록(Block)을 확인할 수 있다. 여기서 블록은 픽쳐 분할부를 통해 획득되는 기본 부호화 단위(또는 최대 부호화 단위)일 수 있으며, 이는 타일, 슬라이스 등에도 적용되는 단위일 수 있다.
도 4b를 참조하면, 픽쳐를 세로 방향 및 가로 방향 중 적어도 한 방향으로 분할하여 획득된 타일을 확인할 수 있다. 타일은 다른 영역(다른 타일 등)과는 독립적으로 부/복호화를 수행하거나 부분적으로 의존적인 부/복호화를 수행할 수 있다. 타일은 도 4b에서와 같이 공간적으로 인접한 블록들의 묶음(본 예에서 제1 타일의 너비(T_W0) 및 높이(T_H0), 제2 타일의 너비(T_W1) 및 높이(T_H1))으로 구성할 수 있다. 세로 방향 및 가로 방향으로 중 어느 방향으로도 분할되지 않는 경우에는 하나의 타일이 하나의 픽쳐일 수 있다.
도 4c를 참조하면, 픽쳐를 연속하는 블록들의 묶음으로 분할하여 획득한 슬라이스를 확인할 수 있다. 슬라이스는 다른 영역(또는 다른 슬라이스)과는 독립적으로 부/복호화를 수행하거나 부분적으로 의존적인 부/복호화를 수행할 수 있다. 연속하는 블록들의 묶음은 스캔 순서에 따라 결정될 수 있으며, 일반적으로는 래스터 스캔(Raster Scan) 순서를 따르나 이는 부/복호화기의 설정에 따라 정의될 수 있다. 픽쳐에 존재하는 모든 블록이 하나의 묶음으로 구성된 경우에는 하나의 슬라이스가 하나의 픽쳐일 수 있다.
도 5는 본 발명의 일 실시예에 따른 스캔 순서에 따라 연속하는 블록의 묶음으로 슬라이스를 생성하는 예시도이다.
픽쳐에서의 부/복호화는 래스터 스캔(Raster Scan) 순서를 따를 수 있으나 적어도 하나의 스캔 순서 후보군 중에 택일하여 적용할 수 있으며 이는 부/복호화 설정에 따라 정의될 수 있다. 여기서 스캔 순서는 스캔의 시작점을 결정하는 단계, 스캔의 시작점을 기준으로 좌우방향 또는 상하방향 중 하나의 방향에 따라 1차 스캔 순서를 결정하는 단계 및 1차 스캔 순서에서 결정되지 않은 방향(좌우, 상하 중 나머지 하나)에 따라 2차 스캔 순서를 결정하는 단계를 통해 결정될 수 있다. 여기서 스캔 시작점은 픽쳐 등 기준영역을 대상으로 가장 좌측 상단, 가장 좌측 하단, 가장 우측 상단, 가장 우측 하단 중 하나일 수 있다.
도 5a를 참조하면, 스캔 시작점으로 픽쳐의 가장 좌측 상단점을 설정하고, 1차 스캔 순서로는 좌에서 우로 이동하는 방향을 설정하며, 2차 스캔 순서로는 상에서 하로(위에서 아래줄로) 이동하는 방향을 설정한 예시를 확인할 수 있다. 래스터 스캔이 도 5a에 따른 스캔 순서일 수 있는데, 이러한 순서에 따라 연속하는 블록을 묶으면, 제1 슬라이스(S0), 제2 슬라이스(S1), 제3 슬라이스(S2) 및 제4 슬라이스(S3)를 획득할 수 있다.
도 5b를 참조하면, 스캔 시작점으로 픽쳐의 가장 좌측 상단점을 설정하고, 1차 스캔 순서로는 상에서 하로 이동하는 방향을 설정하며, 2차 스캔 순서로는 좌에서 우로 이동하는 방향을 설정한 예시를 확인할 수 있다. 도 5b에 따른 스캔 순서에 따라 연속하는 블록들을 묶으면, 도 5a와 다른 형태로 이루어지는 제1 슬라이스(S0), 제2 슬라이스(S1), 제3 슬라이스(S2) 및 제4 슬라이스(S3)를 획득할 수 있다.
도 6a 내지 도 6d는 픽쳐 내의 타일들과 기본 부호화 단위를 나타낸 예시도이다.
본 발명의 일 실시예에 따르면 픽쳐들을 적어도 하나의 세로열들과 적어도 하나의 가로열들로 분할하여 타일들을 형성하고, 타일 단위로 부/복호화가 수행될 수 있다. 도 6a에서 픽쳐가 세로열의 경계(내부 경계. b1, b2)와 가로열의 경계(내부 경계. b5)에 의해 타일들로 분할될 수 있다. 세로열 경계(내부 경계. b1, b2) 중 하나 이상의 경계와 가로열 경계(내부 경계. b5) 중 하나 이상 경계로 둘러싸인 영역이 타일들이다. 영상 외부에 위치하는 경우에는 세로열의 경계(외부 경계. b0, b3)와 가로열의 경계(외부 경계. b4, b6)가 추가적으로 고려될 수 있다. 상기의 과정을 통해 획득된 타일의 경우 사각형 형태를 가질 수 있으며 영상의 특성, 포맷 등에 대한 부/복호화기의 설정에 따라 정사각 형태를 가질 수 있다.
픽쳐를 세로열 경계와 가로열 경계로 분할하여 형성되는 타일은 복수의 블록을 포함할 수 있다. 픽쳐를 분할하는 세로열 경계와 가로열 경계는 이웃하는 블록들의 경계를 따라 지나가므로 각 블록을 분할하지는 않는다. 따라서, 각 타일은 정수 개의 블록들을 포함할 수 있다. 만일, 타일이 정수 개의 블록으로 구성되어 있지 않을 경우 상위 단위인 픽쳐 또는 타일에서 정수 개의 블록 구성이 가능하도록 확장을 수행할 수도 있다. 따라서 픽쳐의 타일별로 프로세싱이 수행되면서, 각 타일에서는 블록 단위로 부/복호화가 수행될 수 있다.
픽쳐를 적어도 하나의 타일들로 분할할 경우 타일에 대한 분할 정보(예를 들어, 세로열 경계와 가로열 경계의 위치<또는 그로 인한 각 타일의 가로 길이와 세로 길이> 또는 균등/비균등 분할에 대한 정보 등)가 시퀀스, 픽쳐 등의 단위로 비트스트림에 수록되어 전송될 수 있다. 픽쳐의 복호화시에는 시퀀스, 픽쳐 등의 단위로부터 타일에 대한 분할 정보를 파싱하여, 타일별로 복호화하여 픽쳐의 각 영역들을 복원하고, 타일에 대한 분할 정보를 이용하여 각 영역들을 하나의 픽쳐로 복원할 수 있다.
타일의 경우 높은 해상도를 갖는 영상의 큰 데이터량을 실시간으로 프로세싱하기 위한 목적으로 하나 이상의 타일들로 분할을 하여 부/복호화를 수행할 수 있다. 이 경우 하나의 큰 영상이 작은 크기의 여러 영상으로 나누어질 뿐 각 타일의 부/복호화 과정에서 필요한 설정 정보는 상위 단위(예를 들어, 픽쳐. PPS)에서 할당받을 수 있다. 예를 들어, 각 타일 단위로 헤더 정보를 따로 생성 및 전송하지 않고 PPS에서 하나의 부/복호화 설정 정보를 참조할 수 있다.
타일에 대한 분할 정보 외에 추가적인 정보가 비디오, 시퀀스, 픽쳐 등의 상위 단위로 수록되어 전송될 수 있다. 이때, 추가되는 정보는 타일 단위의 부/복호화 과정에서 필요한 적어도 하나의 부/복호화 설정 정보일 수 있다.
또는, 타일 단위로 타일에 대한 분할 정보 및 추가적인 정보를 수록하여 전송할 수도 있다. 이는 타일 단위로 부/복호화 설정을 두어 부/복호화를 수행할 수 있다는 점에서 상위 단위에서 결정된 부/복호화 설정을 따르는 것과는 차이점이 존재한다. 상세하게는, 상위 단위에서 결정된 하나의 부/복호화 설정을 따르는 것과는 차이점이 존재한다.
예를 들어, 각 타일 단위로 헤더 정보를 따로 생성 및 전송할 수 있거나 PPS에서 하나 이상의 부/복호화 설정 정보를 참조할 수도 있다. 이때, PPS에서 타일 단위의 부/복호화를 위한 설정 정보 후보군을 하나 이상 포함할 수 있다.
위와 같이 타일 단위의 부/복호화를 위한 설정 정보는 타일의 타입(I/P/B), 타일이 참조하는 픽쳐 리스트에 관한 정보, 타일의 양자화 파라미터(Quantization Parameter, QP) 정보, 타일 단위의 인루프 필터링 컨트롤, 스캔 순서, 부/복호화 여부 등 타일의 부/복호화에 필요한 정보를 포함할 수 있다.
도 6a를 참조하면, 타일 단위로 독립적인 스캔 순서가 적용되는 예시를 확인할 수 있다. 따라서, 타일 단위로 결정되는 스캔 순서에 따라 부/복호화를 시작하는 초기 블록이 달라질 수 있다. 도 6a에서 각 블록들에 표기되어 있는 숫자는, 타일 내에서 블록들의 스캔 순서, 즉 부/복호화되기 위해 처리되는 순서를 나타낸다. 또한, 도 6a는 하나 이상의 스캔 순서가 각 타일에 적용되는 예를 나타낸다. <스캔 시작점/1차 스캔 순서/2차 스캔 순서>에 따라 타일 내에서의 스캔 순서가 결정되는 것으로 표기할 경우, 제1 타일(60)은 <좌측 상단/좌->우/상->하>, 제2 타일(61)은 <좌측 상단/상->하/좌->우>, 제3 타일(62)은 <우측 상단/상->하/우->좌>, 제4 타일(63)은 <우측 하단/하->상/우->좌>, 제5 타일(64)은 <우측 하단/우->좌/하->상>, 제6 타일(65)은 <우측 상단/우->좌/상->하>에 따라 결정되는 스캔 순서(또는 부/복호화 순서)를 가질 수 있다.
타일 및 타일 세그먼트의 분할은 제 1 스캔 순서(예를 들어, 픽쳐의 스캔 순서. Z-스캔순서 등)를 기반으로 수행하고, 타일 및 타일 세그먼트에서의 부/복호화는 제 1 스캔 순서에 따라 수행(예를 들어, 픽쳐의 스캔 순서에 따라 타일, 블록 등의 부/복호화를 수행)할 수 있다. 또는, 타일 및 타일 세그먼트의 분할은 제 1 스캔 순서를 기반으로 수행하고, 타일 및 타일 세그먼트에서의 부/복호화는 제 2 스캔 순서(예를 들어, 타일 단위의 독립적인 스캔 순서)에 따라 수행할 수 있다. 이때, 제 2 스캔 순서는 각 타일 및 타일 세그먼트에 따라 같거나 다를 수 있다.
도 6b를 참조하면, 타일 단위로 부/복호화가 선택적으로 수행되는 예를 확인할 수 있는데, 도 6a에 따른 각 타일에 대해 부/복호화를 수행할지 여부를 지시하는 0 또는 1을 할당한 것을 확인할 수 있다. 이때, 부/복호화가 수행되지 않는 타일은 임의의 화소 또는 이미 부/복호화된 영역으로부터 획득된 데이터로 채울 수 있다. 임의의 화소는 비트스트림으로부터 전송된 비트 심도로 표현될 수 있는 화소의 범위에 속하는 하나의 화소이며 이에 대한 정보가 결정 및 수록되어 전송될 수 있으며, 부/복호화기의 공통된 설정에 따라 정해진 기설정된 화소(예를 들어, 화소의 범위의 Min 또는 Median 또는 Max 등)일 수 있다.
또한, 타일 간의 부분적으로 의존적인 부/복호화가 가능한 설정에서는 부/복호화가 완료된 인접하는 타일로부터 획득되는 데이터를 해당 타일의 부/복호화에 참조할 수 있다.
예를 들어, 인접하는 부/복호화가 완료된 타일의 경계에 위치하는 적어도 하나의 화소들의 데이터를 현재 타일에 속한 일부 영역의 부/복호화에 참조하기 위한 목적으로 임시 메모리에 포함시키는 방식으로 사용될 수 있다.
또는, 상위 단위에서 결정되는 영상의 포맷, 특성 등{예를 들어, omnidirectional 영상(또는 360도 가상 현실 영상)과 같은 3차원 공간의 영상을 2차원 공간으로 변환하여 부/복호화를 수행할 때, 투영 포맷(Projection format) 등의 부/복호화 설정에 따라 복수의 단위(또는 표면<Face>)로 나뉘는 경우(또는 분할)에 3차원 공간 상에서의 인접한 영역은 공간적인 상관성이 존재한다고 볼 수 있음. 이때, 공간 변환(3차원 -> 2차원)하면서 각 단위(또는 표면)의 2차원 공간에 배치되는 설정에 따라 2차원 공간 상에 인접한 단위들이 꼭 공간적인 상관성이 존재한다고 볼 수 없음. 즉, 2차원 공간에서 인접한 단위들은 공간적인 상관성이 존재하거나 존재하지 않을 수 있고, 인접하지 않은 단위들은 공간적인 상관성이 존재하지 않거나 존재할 수 있음. 이는 360도 영상 부/복호화 설정 정보 등을 통해 공간적인 상관성이 존재하는지 여부를 확인할 수 있음}에 따라 공간적인 상관성이 존재하는 부/복호화가 완료된 영역의 데이터를 참조할 수 있다. 이때, 참조되는 데이터는 일정 영역을 그대로 복사하여 획득하는 메모리 복사(Memory Copy) 방법이 사용되거나, 일련의 변환 과정을 통해 획득하는 방법이 사용될 수 있다.
도 6c를 참조하면, 타일 단위로 독립적인 QP(Quantization Parameter)가 적용되는 예를 확인할 수 있는데, 각 타일에 대하여 QP0 내지 QP5 등과 같이 독립적인 양자화 파라미터가 적용됨으로써 양자화가 수행될 수 있다. 여기서 양자화 파라미터는 타일보다 상위 단위(픽쳐 등)에서 설정된 QP와의 차분치 정보 등을 통해 표현될 수도 있다.
도 6d를 참조하면, 픽쳐 내의 2개의 타일(T0, T1, T2를 포함하여 구성되는 제1 타일, T3, T4, T5를 포함하여 구성되는 제2 타일)과 6개의 타일 세그먼트(T0~T5)로 구성되어 있는 예를 확인할 수 있다. 타일은 경계선(b7)에 의해 구분될 수 있으며, 타일 세그먼트는 경계선(b1~b4, b7)에 의해 구분될 수 있다. 이와 같이 타일 및 타일 세그먼트는 경계선(b0~b8)들로 획득될 수 있다. 타일 세그먼트의 경우 타일 안에서의 분할이 이뤄지고 그에 따른 분할 정보를 생성할 수도 있다. 예를 들어, 세로열 경계인 b1, b2는 b3, b4와 각각 연속적인 경계일 수 있거나, 불연속적인 경계일 수도 있다.
타일 세그먼트들(T0~T5)의 타입은, 종속적 타일 세그먼트(T1,T2,T4,T5)와 독립적 타일 세그먼트(T0,T3)로 분류될 수 있다. 종속적 타일 세그먼트에서는, 소정 타일 세그먼트에 대한 텍스쳐 부호화 및 엔트로피 부호화에서 이용되거나 생성되는 정보가, 다른 타일 세그먼트의 텍스쳐 부호화 및 엔트로피 부호화를 위해 참조될 수 있다. 복호화시에도 마찬가지로, 종속적 타일 세그먼트들 중 소정 타일 세그먼트에 대한 엔트로피 복호화에서 파싱 정보 및 텍스쳐 복호화에서 이용되거나 복원되는 정보가, 다른 타일 세그먼트의 엔트로피 복호화 및 소스 복호화를 위해 참조될 수 있다. 타일 세그먼트는 타일 단위로 부/복호화 설정을 두어 부/복호화를 수행한다는 가정하에 설명한다.
독립적 타일 세그먼트에서는, 타일 세그먼트별로 텍스쳐 부호화 및 엔트로피 부호화에서 이용되거나 생성되는 정보가 서로 전혀 참조되지 않고, 독립적으로 부호화된다. 복호화시에도 마찬가지로, 독립적 타일 세그먼트의 엔트로피 복호화 및 텍스쳐 복호화를 위해, 다른 타일 세그먼트의 파싱 정보 및 복원 정보는 전혀 이용되지 않는다.
타일 세그먼트의 타입이 종속적 타일 세그먼트 또는 독립적 타일 세그먼트인지에 대한 정보는, 타일 세그먼트 헤더에 수록되어 전송될 수 있다. 픽쳐의 복호화시에는 타일 세그먼트 헤더로부터 타일 세그먼트 타입에 대한 정보를 파싱하여, 타일 세그먼트 타입에 따라 현재 타일 세그먼트를 다른 타일 세그먼트를 참조하여 복원하거나, 다른 타일 세그먼트와는 독립적으로 복호화할지 여부를 결정할 수 있다.
특히, 독립적 타일 세그먼트의 타일 세그먼트 헤더의 구문 요소들의 값, 즉 헤더 정보는, 선행하는 타일 세그먼트의 헤더 정보로부터 참조하여 결정될 수 없다. 이에 반해, 종속적 타일 세그먼트의 타일 세그먼트 헤더의 헤더 정보는, 선행하는 타일 세그먼트의 헤더 정보로부터 참조하여 결정될 수 있다.
하나의 타일은 적어도 하나의 타일 세그먼트를 포함할 수 있다. 하나의 타일이 타일 세그먼트 하나만 포함한다면, 독립적인 타일 세그먼트를 포함할 수 있다. 또한, 하나의 타일은 하나의 독립적인 타일 세그먼트와 독립적인 세그먼트에 이어서 적어도 하나의 종속적 타일 세그먼트를 더 포함할 수 있다. 하나의 타일에 포함되는 적어도 하나의 타일 세그먼트는 동일한 억세스 유닛(Access Unit)을 통해 송/수신될 수 있다.
도 7은 타일 단위로 부호화 또는 복호화가 수행될 경우에 설정되는 정보들을 명시적으로 다룬 소스 코드이다.
도 7을 참조하면, tile_enabled_flag는 타일 분할 여부에 대한 구문 요소를 의미한다. tile_enabled_flag가 활성화된 경우(1이라 가정)에는 2개 이상의 타일로 분할하여 부/복호화를 수행하는 것을 의미하며 추가적인 타일 관련 정보를 확인할 수 있다. 비활성화된 경우(0이라 가정)에는 픽쳐를 하나의 타일로 간주하여 픽쳐 단위(또는 슬라이스 단위)로 부/복호화를 수행할 수 있다. num_tile_rows_minus1과 num_tile_columns_minus1에 1을 각각 더한 값은 픽쳐의 가로 방향 기준, 세로 방향 기준으로 분할된 타일의 개수를 의미한다. 본 예에서는 나와있지 않지만 타일의 균등 또는 불균등 분할 여부(를 지시하는 신호)에 따라 각 타일의 가로, 세로 길이에 대한 정보는 추가적으로 생성이 될 수 있으며, 각 타일의 가로, 세로 길이는 기본 부호화 단위의 개수로 표현되어 생성될 수 있다.
loop_filter_across_tile_enabled_flag는 타일 경계에 대해서 인루프 필터 적용 여부에 대한 구문 요소이다. loop_filter_across_tile_enabled_flag가 활성화된 경우(1이라 가정) 타일 경계에 대해서 디블록킹 필터와 SAO, ALF 등의 부/복호화기가 지원하는 인루프 필터를 수행할 수 있고, 비활성화된 경우(0이라 가정)에는 타일 경계에 대해서 디블록킹 필터, SAO, ALF등의 인루프 필터를 수행하지 않을 수 있다. 본 예에서는 loop_filter_across_tile_enabled_flag가 활성화된 경우는 디블록킹 필터, SAO, ALF 등의 모든 인루프 필터가 활성화되는 것을 의미하나, 이는 이에 한정하지 않고 각 인루프 필터마다 개별적으로 인루프 필터 적용 유무에 대해 설정할 수 있거나 그에 관한 추가적인 정보(각 인루프 필터의 적용 여부를 지시하는 신호)가 생성될 수도 있다.
independent_tile_coding_setting_enabled_flag는 타일 단위의 부/복호화 설정 정보의 지원 여부에 대한 구문 요소이다. independent_tile_coding_setting_enabled_flag가 활성화된 경우(1이라 가정)에는 타일 단위로 독립적인 부/복호화 설정을 두어 부/복호화를 수행할 수 있다. 예를 들어, 타일 단위로 타일에 대한 분할 정보 또는 부/복호화 과정에서 필요한 설정 정보를 생성하여 부/복호화를 수행할 수 있다. 또는, 상위 단위에서 결정된 적어도 하나의 부/복호화 설정을 참조할 수 있다. 비활성화된 경우(0이라 가정)에는 타일의 부/복호화 과정에서 필요한 설정 정보는 상위 단위에서 할당받을 수 있다. 상세하게는, 상위 단위(예를 들어, 픽쳐)에서 결정된 하나의 부/복호화 설정을 참조할 수 있다.
타일 단위의 부/복호화 설정이 가능할 경우 tile_qp_offset_enabled_flag, tile_coding_skip_enabled_flag, tile_adaptive_scan_enabled_flag 등이 추가로 지원되어 타일 단위의 부/복호화 설정을 결정할 수 있다. 위의 구문 요소는 각각 타일 단위의 QP 설정, 타일 단위의 부/복호화 적용, 타일 단위의 스캔 순서의 적용 여부를 나타내는 구문 요소이다. 각 구문 요소의 활성화 여부(1이라 가정)에 따라 각 타일 단위로 그와 관련된 추가적인 정보가 생성될 수 있다.
tile_coding_skip_flag는 타일의 부/복호화 여부를 나타내는 구문 요소로 활성화되는 경우 부/복호화를 수행하지 않고, 비활성화되는 경우 부/복호화를 수행할 수 있다. 타일의 부/복호화 수행 여부에 따라 타일 단위의 부/복호화 설정 관련 정보의 추가적인 확인 여부가 결정될 수 있다. tile_coding_skip_flag가 활성화된 경우(1이라 가정) 타일 단위의 부/복호화 설정 관련 정보는 확인하지 않고, 비활성화된 경우(0이라 가정) 타일 단위의 부/복호화 설정 정보를 확인할 수 있다. tile_type은 타일의 타입을 나타내며 I/P/B 중 하나로 결정될 수 있다. tile_scan_idx는 타일의 스캔 순서를 나타내며 하나 이상의 스캔 순서에 대한 후보군 중 하나로 결정될 수 있다. tile_qp_offset은 타일 단위로 결정되는 QP관련 정보를 나타내며 상위 단위에서 결정된 QP와의 차분치 정보로 구성될 수 있다. 또한, end_of_tile_flag, end_of_tile_segment_flag와 같은 구문 요소가 추가 구성될 수 있다.
상기 예는 타일 단위의 부/복호화 설정에 관한 일부 예이며 상위 단위에서 결정된 부/복호화 설정 중 그대로 타일에 적용할 지 또는 일부는 타일에 독립적인 설정을 지원할 지 등이 결정될 수 있다. 타일 단위의 부/복호화 설정이 상위 단위에서 지원 여부가 결정되는 예를 들었지만, 이는 타일 단위로 헤더 정보가 생성되어 관련 정보가 수록되어 전송될 수도 있다. 또한, 상기 예는 타일 단위의 부/복호화 설정에 관한 일부 예를 나타내며, 이 외의 부/복호화 과정 중에 필요한 설정 정보가 고려될 수 있다. 상기 예에서 언급된 구문 요소들은 다양한 방법의 이진화(고정 길이 이진화, 단항 이진화, Rice 이진화, Exp-Golomb 이진화 등)를 통해 부호화되어 비트스트림에 수록되어 전송될 수 있으며, 이는 복호화기에서 파싱하여 관련된 정보를 복원할 수 있다.
위에서 언급된 정보를 포함하여 타일 단위의 부/복호화 설정에 관련된 정보들은 명시적으로 관련 정보를 생성할 수 있거나 상위 단위에서 결정된 영상의 포맷, 특성 등에 따라 묵시적으로 부/복호화에 대한 설정이 결정될 수도 있다.
도 8은 본 발명의 일 실시예에 따른 상대적 분류에 따라 샘플 적응적 오프셋이 적용되는 샘플 화소를 설명하기 위한 예시도이다. 도 9는 본 발명의 일 실시예에 따른 상대적 분류에서 엣지에 따라 분류된 카테고리를 설명하기 위한 예시도이다.
SAO는 부/복호화 과정에서 QP 등의 부/복호화 설정에 따른 화질 저하를 줄이고자 하는 기술이다. SAO는 샘플(예를 들면, 화소) 단위로 오프셋 값을 더하는 과정(또는 오프셋으로 보정하는 과정)을 수행할 수 있다. 이때, 오프셋 값은 샘플의 컬러 성분, 분류 기준(뒤에서 설명), 세부 분류 기준(뒤에서 설명), 샘플의 (x,y) 좌표값 등에 따라 결정될 수 있다. 이때, SAO는 후처리 필터 또는 인루프 필터로 지칭되거나 이러한 필터에 포함된 필터링 방법 중 하나일 수 있다. 여기서 SAO가 적용되는 대상인 샘플 화소는 잔차 신호에 예측 정보가 가산하여 생성되는 복원 화소를 의미할 수 있다. 상세하게는, 역양자화와 역변환을 거친 현재 영상의 잔차 신호와 화면내 예측 또는 화면간 예측 과정을 거친 현재 영상의 예측 신호를 가산하여 획득되는 복원 영상에 인루프 필터링(예를 들어, SAO, ALF 등)을 적용하는 것을 의미하며, 이때, 입력 영상과 복원 영상 간의 왜곡에 기반하여 오프셋 값이 획득될 수 있다.
이때, 샘플 화소 단위로 오프셋 정보를 생성하기에는 많은 데이터량이 필요하게 되므로 샘플들의 집합 단위로 오프셋 정보를 생성할 수 있다. 따라서, 하나의 오프셋 정보가 적용되는 샘플들의 집합을 구성하는 분류 기준이 설정될 필요가 있다. 이때, 분류 기준은 다시 적어도 하나의 세부 분류 기준으로 세분화할 수 있다.
예를 들어, 분류 기준은 샘플 화소가 엣지를 갖는지 여부에 따른 분류인 엣지 오프셋(Edge Offset, EO)과 샘플 화소가 속하는 대역에 따른 분류인 밴드 오프셋(Band Offset, BO)이 있을 수 있으며, 추가적인 오프셋이 포함될 수 있다. 이때, 엣지 오프셋은 에지 방향, 에지 카테고리에 따라 세부 분류 기준이 추가로 설정될 수 있다. 또한, 밴드 오프셋은 대역 위치에 따라 세부 분류 기준이 추가로 설정될 수 있다. 상기 설정은 부/복호화기에 상기 정보를 포함하여 세부 분류 기준의 개수 및 종류, 추가적인 하위 세부 분류 등이 결정될 수 있다. 오프셋에 대한 설정은 슬라이스/타일 타입(I/P/B), 부호화 모드, 컬러 성분/공간, 블록의 크기 및 형태 등의 요인에 따라 결정될 수 있다.
본 발명의 일 실시예에 따른 샘플 분류 방법은 상대적 분류와 절대적 분류로 구분할 수 있다. 상대적 분류는 오프셋을 적용할 샘플과 적어도 하나의 이웃 샘플과의 상대성(또는 상관성)에 기초하여 샘플을 분류하는 방법일 수 있고, 절대적 분류는 오프셋을 적용할 샘플 자체의 특성에 기초하여 샘플을 분류하는 방법일 수 있다.
상대적 분류는 샘플 간의 기울기 정보, 에지 정보 등의 특성에 대해 둘 이상의 샘플을 기반으로 획득되는 판단 결과에 따라 수행될 수 있다. 상세하게는, 상대적 분류는 부/복호화가 완료된 현재 샘플과 부/복호화가 완료된 적어도 하나의 이웃 샘플을 기반으로 할 수 있다.
도 8을 참조하면, 현재 샘플(C_sample)과 현재 샘플의 이웃 샘플(N_sample1, N_sample2, ..., N_sample8)을 설정하는 방법을 확인할 수 있다.
구체적으로, 도 8에서 현재 샘플(C_sample)을 중심으로 가로 방향(86), 세로 방향(82), 대각 방향들(80, 84)에 의해 설정되는 세개의 샘플 사이의 관계에 따라 현재 샘플을 분류할 수 있다. 여기서 도 8에 도시된 방향들을 엣지 방향으로 지칭할 수도 있다.
여기서는 현재 샘플을 중심으로 세 개의 연속하는 샘플들 사이의 관계에 따라 상대적 분류가 적용되는 것으로 도시하였으나, 세개 이상의 홀수 개(5, 7, 9 등)의 연속하는 샘플들을 도 8에 도시된 현재 샘플을 중심으로 설정되는 방향(80, 82, 84, 86)에 따라 선정하는 방식으로도 구현할 수 있다.
도 8에 도시된 복수의 방향(80, 82, 84, 86)에 따라 선정되는 3개의 샘플들 상호간의 관계에 따라 카테고리를 분류하면 도 9와 같다.
도 9를 참조하면, 세개의 샘플들 사이의 화소값 비교를 통해 결정되는 카테고리를 확인할 수 있는데, 여기서 그래프의 높이는 샘플의 화소값을 의미하며, 가운데 도시된 샘플이 현재 샘플(C_sample)이며, 좌우에 있는 샘플이 이웃 샘플(N_sample)일 수 있다. 도 9와 같이 세개의 샘플들 상호간 화소값 크기 비교를 통해 카테고리를 분류하는 방법은 세개의 샘플들에 따라 형성되는 엣지에 따른 카테고리 분류로 지칭할 수 있다. 따라서, 도 9에 따른 카테고리마다 오프셋 정보(또는 오프셋 값)를 설정하는 방법을 엣지 오프셋으로 지칭할 수 있다.
Figure pat00002
구체적으로 상기 수학식 1은 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 작은 화소값을 갖는 경우를 의미하며, 수학식 1을 만족할 때, 현재 샘플을 제1 카테고리(Category 1)로 분류할 수 있다.
Figure pat00003
Figure pat00004
상기 수학식 2 및 3은 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 작거나 같은 화소값을 같은 경우를 의미한다. 상기 수학식 2 또는 3을 만족하면, 현재 샘플을 제2 카테고리(Category 2)로 분류할 수 있다.
Figure pat00005
Figure pat00006
상기 수학식 4 및 5는 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 크거나 같은 화소값을 같은 경우를 의미한다. 상기 수학식 4 또는 5를 만족하면, 현재 샘플을 제3 카테고리(Category 3)로 분류할 수 있다.
Figure pat00007
상기 수학식 6은 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 큰 화소값을 갖는 경우를 의미하며, 수학식 6을 만족할 때, 현재 샘플을 제4 카테고리(Category 4)로 분류할 수 있다.
수학식 1 내지 6에서 이웃 샘플들은 도 8에 따른 방향에서 선정되는 두 개의 이웃 샘플(각각 N_sampleA, N_sampleB로 지칭)을 대상으로 하였으나, 두 개 이상의 이웃 샘플이 선정될 수도 있다.
도 9를 참조하면, 앞에서 설명한 제1 카테고리(Category 1), 제2 카테고리(Category 2), 제3 카테고리(Category 3), 제4 카테고리(Category 4)에 따라 화소값의 상대적 크기 관계를 나타낸 것을 확인할 수 있다.
여기서 분류된 카테고리 단위(예를 들어, 카데고리 전체 또는 일부가 대상일 수 있거나 도시되지 않은 추가적인 카데고리가 대상일 수 있음)로 오프셋 정보가 획득 및 생성될 수 있다. 제1 카테고리 내지 제4 카테고리로 분류되지 않은 샘플들은 오프셋이 적용되지 않는 샘플로 분류될 수 있다. 여기서 제1 카테고리 내지 제4 카테고리를 분류하는 기준은 부호화 장치 및 복호화 장치에서 미리 설정될 수 있으며, 도 8에서 같이 3개의 샘플 화소를 결정하는 방향(엣지 방향으로 지칭할 수도 있다)은 부호화 장치가 그러한 방향들을 지시하는 정보를 생성하여 복호화 장치로 전송하고, 복호화 장치는 방향 정보를 수신할 수 있다. 도 9에 따른 카테고리를 예로 들면, 도 8에 따른 제1 방향(80), 제3 방향(82), 제5 방향(84), 제7 방향(86) 중 어느 하나를 지시하는 방향 정보(또는 엣지 방향 정보로 지칭)가 생성될 수 있다.
이때, 오프셋 정보는 보정되는 현재 샘플이 이웃 샘플의 평균으로 가까워진다는 점을 전제하면, 카테고리 1, 2에서 오프셋의 부호는 양(+)이어야 하고, 카테고리 3, 4에서 오프셋의 부호는 음(-)이어야 한다. 따라서, 오프셋 정보는 오프셋 값의 부호를 생략하고 오프셋 값의 절대값으로만 구성될 수 있다.
도 8 및 도 9에 대한 설명(상대적 분류 중에서 엣지 기반 분류로 정의)을 기초로 하여 본 발명의 일 실시예에 따른 상대적 분류를 설명한다.
먼저, 본 발명의 일 실시예에 따른 상대적 분류의 제1 실시예에 따르면, 도 8에서 도시된 어느 하나의 방향에 따라 세개의 샘플을 선정하는 것이 아니라, 방향에 관계없이 선정된 복수의 이웃 샘플을 이용할 수도 있다.
다시 도 8을 참조하여 설명하면, 현재 샘플(C_sample)과 현재 샘플 주변에 위치한 이웃 샘플들(N_sample1, N_sample2, ..., N_sample8) 사이의 화소값 크기 비교를 통해 카테고리를 분류할 수 있다.
예를 들면, 현재 샘플의 화소값을 현재 샘플 주변에 위치한 8개의 이웃 샘플들(N_sample1, N_sample2, ..., N_sample8)과 비교하여 현재 샘플이 큰 경우가 미리 설정된 임계 횟수 이상이면(또는 모든 경우에서 현재 샘플이 크면), 현재 샘플을 제1 카테고리로 분류할 수 있다.
또한, 현재 샘플의 화소값을 현재 샘플 주변에 위치한 8개의 이웃 샘플들(N_sample1, N_sample2, ..., N_sample8)과 비교하여 현재 샘플이 작거나 같은 경우가 미리 설정된 임계 횟수 이상이면(또는 모든 경우에서 현재 샘플이 작거나 같으면), 현재 샘플을 제2 카테고리로 분류할 수 있다.
또한, 현재 샘플의 화소값을 현재 샘플 주변에 위치한 8개의 이웃 샘플들(N_sample1, N_sample2, ..., N_sample8)과 비교하여 현재 샘플이 크거나 같은 경우가 미리 설정된 임계 횟수 이상이면(또는 모든 경우에서 현재 샘플이 크거나 같으면), 현재 샘플을 제3 카테고리로 분류할 수 있다.
또한, 현재 샘플의 화소값을 현재 샘플 주변에 위치한 8개의 이웃 샘플들(N_sample1, N_sample2, ..., N_sample8)과 비교하여 현재 샘플이 작은 경우가 미리 설정된 임계 횟수 이상이면, 현재 샘플을 제4 카테고리로 분류할 수 있다.
여기서는 현재 샘플 및 현재 샘플 주변에 위치한 8개의 이웃 샘플들 상호간의 비교로 설명하였으나, 그에 한정되는 것은 아니다. 예를 들어, 현재 샘플과 가로 및 세로 방향으로 인접한 4개의 이웃 샘플들(도 8에 따르면, N_sample2, N_sample4, N_sample5, N_sample7) 상호간의 비교가 수행될 수도 있고, 현재 샘플과 대각선 방향으로 인접한 4개의 이웃 샘플들(도 8에 따르면, N_sample1, N_sample3, N_sample6, N_sample8) 상호간의 비교가 수행될 수도 있다.
따라서, 본 발명의 일 실시예에 따른 상대적 분류의 제1 실시예는 현재 샘플 주변의 이웃 샘플들(예를 들면, 앞에서 설명한 4개 또는 8개) 상호간 비교를 통해 현재 샘플의 에지 정보로 판단할 수 있다.
또한, 본 발명의 일 실시예에 따른 상대적 분류의 제1 실시예에 따른 카테고리에 대한 정보는 묵시적인 설정을 두어 처리할 수 있고, 오프셋 정보는 부호있는 오프셋 또는 부호없는 오프셋 정보를 생성할 수 있으며, 이는 부/복호화기 설정에 따라 결정될 수 있다. 예를 들어, 보정되는 현재 샘플이 이웃 샘플과 가까워진다는 전제에서는 부호없는 오프셋 정보를, 그런 전제가 없을 경우에는 부호있는 오프셋 정보를 생성할 수 있다. 부호있는 오프셋 정보를 생성하는 경우 엔트로피 부/복호화 과정에서 일부 부호의 경우(현재 샘플이 이웃 샘플과 가까워지도록 하는 + 또는 - 부호 중 하나) 발생 확률을 높게 설정할 수 있고, 그 반대 부호의 경우 발생 확률을 낮게 설정할 수 있다.
또한, 현재 샘플을 기준으로 이웃 샘플 간의 차이가 기설정된 값(th_val) 이상인 경우가 발생할 때 임펄스로 판단하여 상기 카데고리로 분류하거나 추가적인 카데고리로 분류할 수 있다.
본 발명의 일 실시예에 따른 상대적 분류의 제2 실시예에 따르면, 도 8에서 도시된 어느 하나의 방향에 따라 카테고리를 분류하는 것이 아니라 도 8에 따른 방향과 평행한 복수의 방향을 추가로 고려하여 카테고리를 분류할 수 있다.
예를 들어, 도 8의 가로 방향(86)에 따라 현재 샘플과 이웃 샘플들 상호간의 화소값 비교를 하여 카테고리를 분류한다고 할 경우, 가로 방향(86)과 평행한 복수의 방향에 따라 결정되는 샘플들 사이의 화소값 비교를 추가로 수행할 수 있다. 구체적으로 가로 방향(86)과 평행한 방향으로 제1 샘플(N_sample1), 제2 샘플(N_sample2), 제3 샘플(N_sample3) 위를 지나는 방향 및 제6 샘플(N_sample6), 제7 샘플(N_sample7), 제8 샘플(N_sample8) 위을 지나는 방향을 추가로 고려할 수 있다. 따라서, 도 8의 가로 방향(86) 및 가로 방향(86)과 평행한 두개의 방향을 포함하는 세 개의 가로 방향 중 미리 설정된 값 이상(예를 들면, 2개의 방향)에 대하여 수학식 1 내지 6과 그 설명에 따른 화소값 비교 조건을 만족할 때, 제1 카테고리 내지 제4 카테고리 중 하나로 분류할 수 있다. 이때, 미리 설정된 값 미만의 방향에서 수학식 1 내지 6과 그 설명에 따른 화소값 비교 조건을 만족하면, 상기 카테고리로 현재 샘플을 분류하지 않을 수 있다. 상대적 분류의 제2 실시예에 따르면, 복수의 방향에서의 엣지 여부를 판단할 수 있으므로, 2차원 엣지 정보에 기초한 분류로 지칭할 수도 있다.
본 발명의 일 실시예에 따른 상대적 분류의 제2 실시예에 따라 샘플들을 분류할 수 있으며 상기 분류에 따른 카테고리 단위로 오프셋 정보가 획득 및 생성될 수 있다. 카데고리에 대한 정보는 묵시적 또는 명시적인 설정을 둘 수 있으며, 명시적인 설정일 경우에는 전체 카데고리의 후보군 개수 정보를 기반으로 관련 구문 요소(이진화 관련)를 생성할 수 있다. 본 예에서는 상대성에 따른 분류에 대한 판단 과정에 사용되는 전체 화소의 갯수는 5개와 9개인 예를 들고 있으나 이는 부/복호화기의 설정에 따라 결정될 수 있다.
본 발명의 일 실시예에 따른 상대적 분류의 제3 실시예에 따르면, 현재 샘플의 화소값과 이웃 샘플의 화소값 사이의 에 도시된 현재 샘플과 이웃 샘플들 사이의 화소값 기울기를 고려하여 수행될 수 있다.
도 8에 따른 방향에 따라 현재 화소(C_sample)를 중심으로 두 개의 이웃 샘플(N_sampleA, N_sampleB)을 선정할 경우, 화소값 기울기에 따라 다음과 같이 카테고리를 분류할 수 있다.
Figure pat00008
Figure pat00009
Figure pat00010
상기 수학식 7 내지 9의 관계식을 참조하면, 도 8에 따른 방향에 따른 세개의 샘플들의 화소값의 기울기가 증가하는 형태를 갖는 관계식인 것을 확인할 수 있다. 따라서, 현재 샘플과 이웃 샘플들 사이의 관계가 수학식 7, 8 또는 9의 관계식을 만족하면, 제1 카테고리로 분류할 수 있다.
Figure pat00011
Figure pat00012
Figure pat00013
상기 수학식 10 내지 12의 관계식을 참조하면, 도 8에 따른 방향에 따른 세개의 샘플들의 화소값의 기울기가 감소하는 형태를 갖는 관계식인 것을 확인할 수 있다. 따라서, 현재 샘플과 이웃 샘플들 사이의 관계가 수학식 10, 11 또는 12의 관계식을 만족하면, 제2 카테고리로 분류할 수 있다.
한편, 본 발명의 일 실시예에 따른 상대적 분류의 제3 실시예에서 화소값 기울기의 형태뿐만 아니라 기울기의 크기를 추가로 고려할 수도 있다.
예를 들어, 현재 샘플과 이웃 샘플들 사이의 화소값 기울기가 증가하는 형태를 가지고, 그 기울기 크기(예를 들면, 현재 샘플의 화소값과 이웃 샘플의 화소값 사이의 차분값으로 정의할 수 있다)가 미리 설정된 임계값 이상이면, 제1 카테고리로 분류할 수 있다. 마찬가지로 현재 샘플과 이웃 샘플들 사이의 화소값 기울기가 감소하는 형태를 가지고, 그 기울기 크기가 미리 설정된 임계값 이상이면, 제2 카테고리로 분류할 수 있다. 즉, 현재 샘플과 이웃 샘플의 상대적 크기뿐만 아니라, 현재 샘플의 화소값과 이웃 샘플의 화소값 사이의 차분값이 상대적 분류의 기준이 될 수 있다. 본 예는 제 1 실시예의 제 2 카데고리와 제 3 카데고리를 대체하거나 추가되는 형식으로 고려되는 경우일 수 있다.
카데고리에 대한 정보는 묵시적인 설정을 두어 처리할 수 있고, 기울기 방향 정보는 명시적인 설정을 두어 처리할 수 있으며, 상기 조건에 따라 분류되지 않은 샘플들은 오프셋이 적용되지 않는 샘플들로 구성될 수 있다. 즉, 에지로 분류되는 샘플은 상기 조건에 따라 분류되지 않을 수 있으며 오프셋이 적용되지 않는 샘플로 분류될 수 있다.
본 발명의 일 실시예에 따른 상대적 분류의 제4 실시예에 따르면, 도 8 및 도 9에 따른 엣지 기반 분류에서 화소값 기울기의 크기를 추가로 고려하여 카테고리를 설정할 수 있다.
예를 들면, 수학식 1 내지 6에 따른 제1 카테고리는 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 작은 화소값을 갖고, 현재 샘플과 이웃 샘플들 사이의 화소값 차이가 미리 설정된 임계값 이상인 경우로 설정할 수 있다.
또한, 수학식 1 내지 6에 따른 제2 카테고리는 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 작거나 같은 화소값을 갖고, 현재 샘플과 이웃 샘플들 사이의 화소값 차이가 미리 설정된 임계값 이상인 경우로 설정할 수 있다.
또한, 수학식 1 내지 6에 따른 제3 카테고리는 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 크거나 같은 화소값을 갖고, 현재 샘플과 이웃 샘플들 사이의 화소값 차이가 미리 설정된 임계값 이상인 경우로 설정할 수 있다.
또한, 수학식 1 내지 6에 따른 제4 카테고리는 현재 샘플(C_sample)이 이웃 샘플들(N_sampleA, N_sampleB)보다 큰 화소값을 갖고, 현재 샘플과 이웃 샘플들 사이의 화소값 차이가 미리 설정된 임계값 이상인 경우로 설정할 수 있다. 여기서 제4 실시예는, 엣지 기반 분류에 따라 분류된 샘플 중에서 에러가 적게 포함되었을 샘플과 많이 포함되었을 샘플을 구분짓고, 구분된 샘플들에 대해 각각 다른 오프셋 값을 적용하기 위한 목적일 수 있다.
본 발명의 일 실시예에 따른 상대적 분류는 상기 제1 내지 제3 실시예 중 두개 이상을 서로 결합하여 카테고리의 세부 분류를 추가로 포함할 수 있다. 예를 들어, 본 발명의 일 실시예에 따른 상대적 분류는 도 8 및 도9에 따른 엣지 기반 분류에서 정의되는 카테고리로 1차 분류를 수행하고, 1차 분류된 각각의 카테고리에 대하여 샘플간의 기울기 형태 또는 기울기 크기를 기준으로 2차 분류를 수행할 수 있다. 앞에서 설명한 상대적 분류의 제4 실시예는 이러한 변형례의 하나일 수 있다.
카테고리에 대한 정보는 묵시적 또는 명시적인 설정을 두어 처리할 수 있고, 에지 방향 정보는 명시적인 설정을 두어 처리할 수 있다. 오프셋 정보는 각 경우에 따라 부호있는 오프셋 또는 부호없는 오프셋 정보를 생성할 수 있으며, 이는 부/복호화기 설정에 따라 결정될 수 있다. 예를 들어, 도 9의 카데고리 1, 4의 경우 부호없는 오프셋 정보를 생성할 수 있고, 카데고리 2, 3의 경우 부호있는 오프셋 정보를 생성할 수 있다.
도 10은 본 발명의 일 실시예에 따른 상대적 분류에 따라 샘플 적응적 오프셋이 적용되는 블록을 대상으로 오프셋 값을 부여하는 방법을 설명하기 위한 예시도이다.
도 10을 참조하면, 빗금된 블록 내의 위치하는 모든 샘플에 대해 샘플 적응적 오프셋이 수행될 수 있다. 이때, 상대적 관계를 고려하는 현재 샘플과 이웃 샘플들을 나타나면, A 내지 F와 같다. 도 10의 A는 도 8의 80, 84와 같이 대각 방향에 따라 모두 5개의 샘플이 설정된 것이고, 도 10의 B는 도 8의 82와 같이 세로방향에 따라 5개의 샘플이 설정된 것이며, 도 10의 C는 현재 샘플을 중심으로 하여 모두 9개의 샘플이 설정된 것이다. 도 10의 D는 도 8의 86과 같이 가로방향에 따라 3개의 샘플이 설정된 것이고, 도 10의 E는 도 8의 82, 86과 같이 가로와 세로방향에 따라 모두 5개의 샘플이 설정된 것이며, 도 10의 F는 도 8의 80과 같이 하나의 대각방향에 따라 3개의 샘플이 설정된 것이다.
여기서 이웃 샘플의 위치가 빗금친 블록 안에 위치할 경우(예를 들어, 픽쳐 내부 또는 현재 블록과 동일한 슬라이스, 타일 내에 존재)에는 부/복호화가 완료되었으나 필터링이 적용되기 전의 샘플들을 사용하여 샘플 적응적 오프셋이 수행되며, 이웃 샘플의 위치가 빗금친 블록의 경계 바깥에 위치할 경우(예를 들어, 픽쳐 경계 바깥 또는 현재 블록과 다른 슬라이스, 타일에 존재)에는 이웃 샘플이 속한 영역에 대한 유효성 확인을 먼저 수행할 수 있다.
유효성 확인 결과에 따라 상기 이웃 샘플의 상대적 분류의 사용 여부가 결정될 수 있다. 이처럼, 유효성 확인 결과 사용할 수 없는 샘플이 있는 경우, 현재 블록 내의 샘플을 사용하여 사용할 수 없는 샘플 위치에 채워넣을 수 있다. 예를 들어, 영상의 바깥의 샘플은 현재 블록 내에 속하고 영상 밖의 샘플과 인접한 경계 샘플을 복사 또는 선형외삽하여 사용할 수 있다.
또한, 이웃 샘플의 위치가 빗금친 블록의 경계 바깥에 위치하더라도 현재 영상의 일부 영역에서 획득하여 사용할 수 있다. 예를 들어, 360도 영상의 경우 2차원 공간 상에서는 인접하지 않지만 상관성이 존재하는 영역이 영상 내 존재할 수 있기 때문에 현재 화소(또는 블록)에 상관성이 존재하는 영역(본 예에서는 공간적으로 인접하지 않는 영역을 가정)으로부터 이웃 샘플의 데이터를 복사 또는 변환 과정 등을 통해 획득하여 사용할 수 있다.
이때, 블록 바깥에 있고 유효성 확인 결과 사용 불가능한 샘플의 개수가 많은 경우(B의 경우, 2개)에는 최대 2 화소 간격의 영상을 채워넣을 수 있으며(E2 영역), 일반적인 경우(B를 제외한 A, C, D, E, F)에는 1화소 간격의 영상(E1)을 채워넣을 수 있다.
도 11은 본 발명의 일 실시예에 따른 절대적 분류에 따라 샘플 적응적 오프셋을 수행하는 방법을 설명하기 위한 예시도이다.
본 발명의 일 실시예에 따른 절대적 분류에 기초한 샘플 적응적 오프셋은 샘플의 밝기값, 대역 정보 등 오프셋이 적용될 샘플 자체가 가지고 있는 특성에 기초하여 오프셋 값을 설정하는 방법일 수 있다. 이때, 절대적 분류에 따른 샘플 적응적 오프셋이 수행될 대상 샘플은 부/복호화가 완료된 현재 샘플일 수 있다.
도 11을 참조하면, 비트 심도에 따라 결정되는 화소값 범위를 일정 간격을 갖는 화소값 대역으로 분할한 것을 확인할 수 있다. 상세하게는, 비트 심도가 8비트인 경우(화소값의 범위는 0부터 255) 25개(즉 32개)의 대역(band)으로 균등 분할하였다. 이때, 절대적 분류에 기초한 샘플 적응적 오프셋은 분할된 복수의 대역 중에서 일부 대역에 속하는 샘플들에 대하여 오프셋 값을 설정할 수 있다. 이때, 각 샘플의 밝기값을 기준으로 샘플이 속하는 대역을 결정할 수 있다.
샘플 적응적 오프셋 값이 설정되는 대역의 시작 위치 정보가 부호화 장치로부터 복호화 장치로 전송되며, 오프셋 정보는 시작 위치 정보가 속하는 대역을 포함하여 연속하는 일부 대역(도 11을 예로 들면 시작 위치의 대역(k)을 포함해 총 4개 대역)에 대해 생성될 수 있다. 이때, 대역 관련 설정(대역의 개수, 간격 등)에 대해서는 부/복호화 장치에서 미리 결정될 수 있으며, 오프셋 값이 적용되는 대역의 시작 위치 정보가 생성될 수 있다. 또한, 여기서 시작 위치 정보는 전체 대역(예를 들면, 32개의 대역) 중에서 1개 후보가 선택(고정 길이. 5비트)될 수 있다. 오프셋 정보는 오프셋의 절대값과 부호 정보로 구성된다.
본 발명의 일 실시예에 따른 절대적 분류는 샘플의 밝기 정보에 따라 수행(또는 분류)될 수 있다. 세부 분류에 대한 판단 과정에 사용되는 샘플은 적어도 하나의 샘플일 수 있다. 또한, 세부 분류(예를 들면, 대역 관련 설정인 대역의 길이, 분할되는 대역의 개수 등)는 고정적인 설정(예를 들면, 고정적인 대역 길이, 고정적인 대역의 개수 등)을 따르거나 적응적인 설정(본 예에서 부/복호화기에 따라 상기 설정을 달리 두는 것)에 따를 수 있고, 적응적인 설정의 경우 관련 정보는 묵시적으로 결정하거나 또는 명시적으로 관련 정보를 처리할 수 있다. 또한, 오프셋이 적용되는 대역의 정보(예를 들면, 대역의 위치 정보)는 고정적인 대역 후보군 또는 적응적인 대역 후보군 정보를 기반으로 생성될 수 있다. 또한, 대역 설정(본 예에서 대역의 개수 등)에 따라 가질 수 있는 후보군의 개수가 결정될 수 있다. 상기 대역 설정은 하나 이상의 요인(본 예에서 양자화 파라미터, 대역 분할 파라미터, 화소값 범위 정보 등)에 의해 결정될 수 있다. 상기 정보를 포함하는 추가적인 설정은 부/복호화기에 따라 결정될 수 있고, 상기 설정에 대한 정보는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위로 비트스트림에 수록되어 전송될 수 있고, 복호화기에서는 이를 파싱하여 관련된 정보를 복원할 수 있다. 상기 예만으로 한정되지 않고 다양한 경우로 변형 및 확장이 가능하다.
본 발명의 일 실시예에 따른 절대적 분류에 사용되는 대역의 길이와 개수는 적응적으로 결정될 수 있다. 예를 들어, 변수 k에 따라 2k개의 대역으로 분할될 수 있으며, 대역의 길이는 비트 심도(bit_depth)와의 관계에서 2(bit_depth)-k일 수 있다. 영상에 따라 오프셋이 효율적으로 적용되는 대역의 길이가 존재할 수 있으며, 이를 위해 적응적인 설정을 지원할 수 있다. 변수 k는 부/복호화 설정(예를 들어, 블록의 크기, 형태, 영상 타입 등)에 따라 묵시적으로 결정되거나 명시적으로 관련 정보를 포함할 수 있으며, 변수 k를 통해 대역의 개수, 대역의 길이 등을 결정할 수 있다.
도 12는 본 발명의 일 실시예에 따른 다양한 대역 정보 생성 방법에 대한 예시도이다.
본 발명의 일 실시예에 따른 절대적 분류에 기초한 샘플 적응적 오프셋은 적응적인 대역 정보(예를 들면, 대역의 시작 위치 정보)를 생성하여 수행될 수 있다. 미리 설정된 조건(예를 들면, 하나의 위치 정보가 발생한 곳에서 연속하는 n개의 대역에 오프셋 정보가 발생하는 조건, 즉 n을 미리 설정)에 따라 하나의 정보를 생성할 수 있고, 오프셋이 발생하는 대역을 기반으로 둘 이상의 위치 정보를 생성할 수 있고, 현재 영상의 복원된 샘플에 기반하여 위치 정보를 생성할 수 있다.
12a를 참조하면, 둘 이상의 오프셋 적용 위치 정보(본 예에서는 두 개의 대역 정보. 즉, 오프셋이 발생하는 대역은 연속적이지 않을 수 있다는 가정)가 생성되는 것을 확인할 수 있다. 상세하게는, 대역 m에 샘플 적응적 오프셋이 적용된다는 것을 지시하기 위하여 대역 m의 위치 정보 k1이 생성될 수 있으며, 대역 m+3에 샘플 적응적 오프셋이 적용된다는 것을 지시하기 위하여 대역 m+3의 위치 정보 k2가 생성될 수 있다. 여기서 대역의 위치 정보(오프셋 정보가 발생하는 대역)는 첫번째 대역을 기준으로 순차적으로 생성하거나 또는 마지막 대역을 기준으로 역순으로 생성할 수 있고, 오프셋이 적용되는 대역의 위치 정보는 독립적이거나 의존적인 설정을 두어 생성할 수 있다.
둘 이상의 대역 정보가 생성되는 경우, 첫번째 대역의 위치 정보는 총 대역의 개수(본 예에서 2k개)에 기반하여 구문 요소(본 예에서 고정 길이 이진화. k 비트)가 생성될 수 있고, 첫번째 대역의 위치 정보 이후의 대역 위치 정보는 직전에 부/복호화가 완료된 대역 위치 정보와 같이 총 대역의 개수에 기반하여 구문 요소가 생성(독립적인 경우)될 수 있거나 또는 직전에 부/복호화가 완료된 대역 위치 정보에 기반하여 생성(의존적인 경우)될 수 있다.
후자의 경우를 예로 들면, 12a 에서와 같이 첫번째 대역 위치 정보가 k1이고 두번째 대역 위치 정보가 k2인 경우, k1을 먼저 부/복호화하고, k1을 두번째 대역의 위치 정보인 k2의 예측값으로 할 수 있다. 따라서, 두번째 대역 위치 정보 k2는 첫번째 대역 위치 정보(즉, 예측값)와의 차분값을 생성할 수 있다. 복호화 장치에서는 예측값인 k1 및, k2와 k1 사이의 차분값을 가산하여 k2를 복원할 수 있다. 이때, 총 대역의 개수와 k1의 차이값을 최대값으로 두어 이에 대한 구문 요소(본 예에서 최대값을 고려하는 이진화 방법을 적용)를 생성할 수 있다. 상기 예는 첫번째와 두번째 대역 위치 정보에 대한 설명이며, 이는 대역 위치 정보가 둘 이상 추가되는 경우에도 동일하거나 비슷한 적용(예를 들어, 부/복호화 하고자하는 대역 위치 정보와 이전에 부/복호화가 완료된 대역 위치 정보의 차분값을 부/복호화하는 경우)을 할 수 있다.
한편, 12a에서 빗금친 영역은 영상을 구성하는 화소값이 존재하는 대역을 의미한다. 이때, 영상(예를 들어, 픽쳐, 슬라이스, 타일, 블록 등)을 구성하는 화소값 범위를 부/복호화 장치가 확인하고, 영상의 화소값 범위에 기반하여 대역의 위치 정보(또는 대역의 시작 위치 정보)를 생성 또는 획득할 수 있다. 또한, 영상의 화소값 범위에 기반하여 대역의 길이가 결정될 수 있으며, 이에 기반하여 오프셋 정보를 생성 또는 획득할 수 있다. 12b를 참조하면, 12a에서 영상을 구성하는 화소값이 발생하는 범위를 2k개의 대역으로 나눈 것을 확인할 수 있다. 이 경우 각 대역의 길이는 비트 심도에 기반하여 획득되는 2k개의 대역보다 더 좁은 대역 길이가 획득될 수 있다.
예를 들어, 현재 영상의 가장 낮은 화소값과 가장 높은 화소값을 전체 화소값 범위로 설정하고 설정된 화소값 범위를 2k개의 대역으로 분할할 수 있다. 이러한 경우, 비트 심도에 따른 화소값의 범위를 2k개의 대역으로 분할하는 경우보다 하나의 대역 길이(너비)가 더 작기 때문에 오프셋을 통한 정교한 보정을 수행할 수 있으며, 대역의 길이에 따라 오프셋 정보(본 예에서 최대값을 고려하는 이진화 방법 적용)가 생성될 수 있다. 즉, k와 대역 길이에 따라 결정될 수 있다. 예를 들어, 화소값 범위(예를 들어, 화소의 최대값은 128, 최소값이 10이면 화소값의 범위는 118)를 2k개의 대역으로 분할할 경우, k가 5일 때 대역 하나의 길이는 최대 4(k가 5이고 0부터 255까지 화소값 범위의 경우에는 대역 길이는 8)이며, 이를 기반으로 오프셋의 구문 요소를 생성할 수 있다. 본 예에서 대역은 영상의 화소값 범위에 기초하여 분할되며 획득된 대역 길이에 기반하여 오프셋 정보가 획득되는 경우일 수 있다.
또한, 12c에 따르면, 화소값의 범위는 비트 심도에 기초하여 결정하였고, 비트 심도에 따라 결정된 화소값의 범위를 대역 개수 2k로 분할한 것을 확인할 수 있다. 비트 심도에 따라 화소값 전체 범위(0부터 255. 8비트 기준)가 결정되었기 때문에, 대역 개수에 따라 고정적인 대역의 길이를 가지며 오프셋 정보의 생성은 상기 대역 길이에 기반하여 생성될 수 있다. 이때, 영상의 화소값이 발생하는 가장 낮은 화소값(minc)과 가장 높은 화소값(maxc)이 각각 대역 P1과 Pmax에 존재한다면, 오프셋 정보가 발생할 수 있는 대역은 대역 P1과 대역 Pmax 사이에 존재한다. 따라서, Pmax - P1 + 1개의 대역이 오프셋 정보가 발생할 수 있는 대역의 개수라고 할 수 있으므로, Pmax - P1 + 1개의 대역을 최대값으로 하여 오프셋 정보가 발생하는 대역의 위치 정보를 생성할 수 있다.
12a를 참조하면 비트 심도에 따라 화소값 전체 범위에 기초하여 대역을 분할할 경우 총 대역의 개수는 32개(k가 5라고 가정)지만, 실제 화소값이 발생하는 대역은 대역 m과 m+4 사이의 대역이므로 총 대역의 개수는 5개이다. 총 대역이 32개의 경우 5비트 고정 길이 이진화를 통해 대역 위치 정보에 대한 구문 요소(대역 시작 위치 정보만 보내는 경우5비트가 필요)를 생성할 수 있지만, 총 대역이 5인 경우에는 최대값이 5인 가변 길이 이진화를 통해 구문 요소(본 예에서 2, 3비트가 필요)를 생성할 수 있다. 즉, 대역의 길이는 유지하되 대역 정보로 인해 발생하는 정보를 줄임으로써 부호화 성능을 향상시킬 수 있다. 본 예에서 대역은 비트 심도에 기초하여 분할되며 대역의 위치 정보는 영상의 화소값 범위에 기초하여 생성되는 경우일 수 있다.
전술한 예에서는 오프셋 정보의 개수가 고정적인 경우(4개라 가정)일 수 있다. 부/복호화 설정에 따라 오프셋 정보의 개수 또한 적응적일 수 있지만, 영상의 특성에 따라 오프셋의 개수가 적응적으로 결정되는 경우가 발생할 수 있다. 예를 들어, 12a와 같이 비트 심도에 따라 대역을 분할할 때, 영상(본 예에서 블록이라 가정)의 화소값이 3개 이하의 대역에서 발생하는 경우에는 4개의 오프셋이 필요하지 않기 때문에 3개의 오프셋 정보만 발생할 수 있다. 이 경우는 오프셋이 적용되는 대역의 시작 위치 또한 묵시적으로 획득되는 예일 수 있다. 본 예에서 영상의 화소값 범위에 기초하여 오프셋의 개수가 적응적으로 결정되며, 대역 위치 정보가 묵시적으로 결정되는 경우이다.
도 12를 통해 영상의 화소값 범위에 따른 다양한 실시예를 살펴보았으며, 이에 한정되지 않고 다양한 변형 및 결합의 예가 가능할 수 있으며, 상기 예를 통해 설명되지 않은 추가적인 요소 등과의 혼합 구성 또한 가능하다. 이때, 상기 영상은 복원 영상 또는 원본 영상 중 하나일 수 있다. 복원 영상의 경우 화소값의 범위 정보는 묵시적으로 획득가능할 수 있고, 원본 영상의 경우 화소값의 범위 정보는 명시적으로 획득가능할 수 있다. 복원 영상은 필터가 적용되기 전의 영상(즉, 부/복호화가 완료되었으나 인루프 필터 적용 전 영상)을 의미할 수 있다. 원본 영상의 화소값 범위 정보는 화소값 범위에 따른 화소값 조정 과정을 통해 전술하였으며, 명시적으로 비트스트림에 수록되는 정보로 인해 부호화기뿐만 아니라 복호화기에서도 원본 영상의 화소값 범위 정보를 확인할 수 있다.
도 13은 본 발명의 일 실시예에 따른 상대적 분류 및 절대적 분류에 기초한 샘플 적응적 오프셋에 사용되는 구문 요소를 설명하기 위한 소스코드이다.
도 13을 참조하면, sps_sample_adaptive_offset_enabled_flag는 sps에서 SAO 지원 여부에 대한 구문 요소일 수 있고, pps_sample_adaptive_offset_enabled_flag는 pps에서 SAO 지원 여부에 대한 구문 요소일 수 있고, slice_sample_adaptive_offset_enabled_flag는 슬라이스에서 SAO 지원 여부에 대한 구문 요소일 수 있으며, 이 외의 단위(타일 등)에서도 SAO 지원 여부에 대한 구문 요소가 정의될 수 있다. 상위 단위의 구문 요소들이 활성화 된 경우에는 하위 단위의 구문 요소의 추가적인 생성여부가 결정될 수 있다. 본 예에서 슬라이스에서 상기 구문 요소가 활성화된 경우(본 예에서 1이라 가정)에는 컬러 성분에 따라 SAO 적용 여부에 대한 구문 요소인 slice_sao_luma_flag, slice_sao_chroma_flag가 생성될 수 있으며, 비활성화 된 경우(본 예에서 0이라 가정)에는 SAO는 해당 영상에서 적용되지 않을 수 있다.
휘도 성분과 색차 성분에 하나라도 SAO가 적용되는 경우에는 offset_type1_enabled_flag에 대한 구문 요소가 정의될 수 있으며, 이는 SAO의 미리 설정된 타입의 적용 여부에 대한 구문 요소일 수 있다. 본 예에서는 절대적 분류에 의한 오프셋 적용 방법(또는 상대적 분류에 의한 오프셋 적용 방법)일 수 있으며, offset_type2_enabled_flag는 상대적 분류에 의한 오프셋 적용 방법(또는 절대적 분류에 의한 오프셋 적용 방법)일 수 있다. offset_type1_enabled_flag이 활성화된 경우에는 offset_type2_enabled_flag에 대한 구문 요소가 추가 정의될 수 있다. 비활성화된 경우에는 offset_type2_enabled_flag는 추가로 정의되지 않지만 type2는 묵시적으로 활성화될 수 있다. type1과 type2과 활성화될 수 있고, type1과 type2 중 하나만 활성화될 수 있다. 이는 슬라이스에서 정의되는 구문 요소일 수 있고, 이 외의 단위(시퀀스, 픽쳐, 타일 등)에서 정의되는 구문 요소일 수 있다.
오프셋 관련 정보는 부/복호화가 완료된 적어도 하나의 이웃 블록으로부터 참조할 수 있으며, 이때 참조되는 블록은 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위 블록 등일 수 있다. 참조되는 후보군은 둘 이상의 블록일 수 있고, 참조되는 블록의 우선 순위(구문 요소 생성과도 관련)는 부/복호화 설정에 따라 정해질 수 있으며, 화면내 예측 또는 화면간 예측에서 이웃 블록으로부터 예측 정보를 참조하는 순서(블록 위치 또는 블록 내 서브블록 위치)와 동일하거나 비슷한 순서를 사용하거나 독립적인 순서를 설정할 수 있다. sao_merge_flag는 오프셋 관련 정보를 이웃 블록으로부터 획득할 지 여부를 나타내는 구문 요소일 수 있으며, sao_merge_idx는 이웃 블록에 대한 정보를 나타내는 구문 요소일 수 있다. 이웃 블록으로부터 오프셋 관련 정보의 전부 또는 일부를 참조할 수 있으며, 오프셋 관련 정보의 일부를 획득할 경우에는 추가적인 구문 요소가 정의될 수 있다.
sao_type_idx는 오프셋 적용 방법에 대한 선택 정보를 의미할 수 있으며, 이는 둘 이상의 오프셋 적용 방법이 지원가능할 때 생성되는 구문 요소일 수 있다. sao_offset_abs는 오프셋에 대한 절대값 정보일 수 있으며, 이는 k개만큼 생성할 수 있다. k는 부/복호화 설정에 따라 결정될 수 있다. sao_offset_sign은 오프셋 정보에 대한 부호 정보일 수 있으며, 이는 오프셋에 대한 절대값 정보가 0이 아닐 경우에만 생성되는 구문 요소일 수 있다. 오프셋에 대한 부호 정보는 오프셋 적용 방법의 설정에 따라 지원될 수 있으며, 오프셋 방법의 설정이 부호없는 절대값 정보로만 오프셋 정보를 지원할 경우에는 생성되지 않으며, 부호있는 절대값 정보로 오프셋 정보를 지원할 경우에는 생성될 수 있다. sao_type_info는 오프셋 방법의 세부 분류에 따른 정보일 수 있다.
부/복호화 설정(본 예에서 블록 크기 및 형태, 영상 타입, 부호화 모드, 양자화 파라미터 등)에 따라 상기 오프셋(상대적 분류 또는 절대적 분류) 설정 정보가 결정될 수 있으며, 상기 과정을 통해 구성되는 조합은 적어도 하나 이상 가능할 수 있다.
도 14는 본 발명의 일 실시예에 따른 절대적 분류 또는 상대적 분류에 따라 샘플 적응적 오프셋을 수행하는 방법에 대한 흐름도이다.
도 14를 참조하면, 영상 복호화 장치에서 절대적 분류 또는 상대적 분류에 따라 샘플 적응적 오프셋을 수행하는 방법은, 절대적 분류 기준 또는 상대적 분류 기준에 따라 복원 샘플을 분류하는 단계(S100), 상기 복원 샘플이 분류된 결과에 기초하여 오프셋 정보를 획득하는 단계(S110), 획득된 오프셋 정보를 참조하여 상기 복원 샘플에 오프셋 값을 가산하는 단계(S120) 및 상기 오프셋 값이 가산된 복원 샘플을 출력하는 단계(S130)를 포함할 수 있다.
여기서, 상기 복원 샘플을 분류하는 단계(S100)는, 분류 기준이 상기 절대적 분류이면, 상기 복원 샘플의 밝기값이 속하는 대역에 따라 상기 복원 샘플을 분류하는 단계를 포함할 수 있다.
여기서, 상기 복원 샘플을 분류하는 단계(S100)는, 분류 기준이 상기 상대적 분류이면, 상기 복원 샘플의 화소값 및 상기 복원 샘플과 인접한 이웃 샘플들의 화소값 상호간 비교에 의해 도출되는 엣지 정보 및 기울기 정보 중 적어도 하나에 기초하여 상기 복원 샘플을 분류하는 단계를 포함할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (8)

  1. 비트스트림을 통해 시그널링된 분할 정보를 기초로, 픽쳐를 타일들로 분할하는 단계; 및
    상기 픽쳐 내 현재 블록을 복호화하는 단계를 포함하되,
    상기 현재 블록은, 상기 픽쳐 내 코딩 블록을 쿼드 트리 분할 또는 바이너리 트리 분할 중 적어도 하나로 분할하여 획득한 것이고,
    상기 타일들 중 어느 하나는, 다른 타일들과 독립적으로, 수직 방향 또는 수평 방향 중 어느 한 방향만으로, 적어도 하나의 분할 경계선에 의해 타일 세그먼트로 분할되고,
    상기 분할된 타일 세그먼트는, 정수 개의 연속적인 완전한 코딩 트리 유닛 행들로 구성되고,
    상기 분할된 타일 세그먼트는, 직사각형 모양을 가지는, 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 쿼드 트리 분할은, 상기 쿼드 트리 분할을 수행할지 여부를 나타내는 제1 분할 플래그에 기초하여 수행되는, 영상 복호화 방법.
  3. 제2항에 있어서,
    상기 바이너리 트리 분할은, 상기 바이너리 트리 분할을 수행할지 여부를 나타내는 제2 분할 플래그 및 수평 분할 또는 수직 분할을 나타내는 분할 방향 플래그에 기초하여 수행되는, 영상 복호화 방법.
  4. 제3항에 있어서,
    상기 코딩 블록의 크기가 미리 정의된 임계 크기보다 크거나 같을 경우, 상기 쿼드 트리 분할만 수행되고,
    상기 미리 정의된 임계 크기는, 128x128인, 영상 복호화 방법.
  5. 제4항에 있어서,
    상기 바이너리 트리 분할은, 상기 쿼드 트리 분할이 더 이상 수행되지 않는 경우에만 수행되는, 영상 복호화 방법.
  6. 제5항에 있어서,
    상기 영상 복호화 방법은, 상기 복호화된 현재 블록의 화소에 오프셋 값을 추가하는 단계를 더 포함하되,
    상기 오프셋 값은, 상기 현재 블록의 복호화된 화소가 화소 분류 기준에 따라 분류된 결과에 기초하여 획득되고,
    상기 화소 분류 기준은, 절대적 분류 기준 또는 상대적 분류 기준인, 영상 복호화 방법.
  7. 픽쳐를 타일들로 분할하는 단계; 및
    상기 픽쳐 내 현재 블록을 복호화하는 단계를 포함하되,
    상기 픽쳐의 분할에 대한 분할 정보는 비트스트림으로 부호화되고,
    상기 현재 블록은, 상기 픽쳐 내 코딩 블록을 쿼드 트리 분할 또는 바이너리 트리 분할 중 적어도 하나로 분할하여 획득한 것이고,
    상기 타일들 중 어느 하나는, 다른 타일들과 독립적으로, 수직 방향 또는 수평 방향 중 어느 한 방향만으로, 적어도 하나의 분할 경계선에 의해 타일 세그먼트로 분할되고,
    상기 분할된 타일 세그먼트는, 정수 개의 연속적인 완전한 코딩 트리 유닛 행들로 구성되고,
    상기 분할된 타일 세그먼트는, 직사각형 모양을 가지는, 영상 부호화 방법.
  8. 영상 부호화 방법으로 생성된 비트스트림을 저장하는 컴퓨터로 판독가능한 기록 매체에 있어서,
    상기 영상 부호화 방법은, 픽쳐를 타일들로 분할하는 단계; 및
    상기 픽쳐 내 현재 블록을 복호화하는 단계를 포함하되,
    상기 픽쳐의 분할에 대한 분할 정보는 상기 비트스트림으로 부호화되고,
    상기 현재 블록은, 상기 픽쳐 내 코딩 블록을 쿼드 트리 분할 또는 바이너리 트리 분할 중 적어도 하나로 분할하여 획득한 것이고,
    상기 타일들 중 어느 하나는, 다른 타일들과 독립적으로, 수직 방향 또는 수평 방향 중 어느 한 방향만으로, 적어도 하나의 분할 경계선에 의해 타일 세그먼트로 분할되고,
    상기 분할된 타일 세그먼트는, 정수 개의 연속적인 완전한 코딩 트리 유닛 행들로 구성되고,
    상기 분할된 타일 세그먼트는, 직사각형 모양을 가지는, 컴퓨터로 판독가능한 기록 매체.
KR1020227031525A 2017-03-22 2018-03-22 적응적인 화소 분류 기준에 따른 인루프 필터링 방법 KR20220127948A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20170036370 2017-03-22
KR1020170036370 2017-03-22
PCT/KR2018/003352 WO2018174593A1 (ko) 2017-03-22 2018-03-22 적응적인 화소 분류 기준에 따른 인루프 필터링 방법
KR1020197027158A KR102443959B1 (ko) 2017-03-22 2018-03-22 적응적인 화소 분류 기준에 따른 인루프 필터링 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197027158A Division KR102443959B1 (ko) 2017-03-22 2018-03-22 적응적인 화소 분류 기준에 따른 인루프 필터링 방법

Publications (1)

Publication Number Publication Date
KR20220127948A true KR20220127948A (ko) 2022-09-20

Family

ID=63585669

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197027158A KR102443959B1 (ko) 2017-03-22 2018-03-22 적응적인 화소 분류 기준에 따른 인루프 필터링 방법
KR1020227031525A KR20220127948A (ko) 2017-03-22 2018-03-22 적응적인 화소 분류 기준에 따른 인루프 필터링 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020197027158A KR102443959B1 (ko) 2017-03-22 2018-03-22 적응적인 화소 분류 기준에 따른 인루프 필터링 방법

Country Status (5)

Country Link
US (3) US11057627B2 (ko)
EP (2) EP3606077A4 (ko)
KR (2) KR102443959B1 (ko)
CN (3) CN110679149B (ko)
WO (1) WO2018174593A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8767824B2 (en) * 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
JP6939892B2 (ja) * 2017-10-25 2021-09-22 株式会社ソシオネクスト 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム
US11553180B2 (en) 2018-06-21 2023-01-10 Telefonaktiebolaget Lm Ericsson (Publ) Tile partitions with sub-tiles in video coding
CN112602329B (zh) 2018-06-21 2023-08-11 瑞典爱立信有限公司 用于360度视频解码的块置乱
KR102629907B1 (ko) 2018-10-02 2024-01-30 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 타일 그룹 id에 기초한 화상들의 인코딩 및 디코딩
WO2020151714A1 (en) 2019-01-25 2020-07-30 Mediatek Inc. Method and apparatus for non-linear adaptive loop filtering in video coding
JP7284285B2 (ja) * 2019-03-11 2023-05-30 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 矩形タイルグループシグナリングを含むビデオコーディング
US11546587B2 (en) 2019-04-11 2023-01-03 Mediatek Inc. Adaptive loop filter with adaptive parameter set
SG10201904175UA (en) * 2019-05-09 2020-12-30 Mastercard International Inc Methods and systems for facilitating message format discovery in online transaction processing
KR20220030953A (ko) 2019-07-09 2022-03-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 적응적 루프 필터링을 위한 샘플 결정
AU2020309130B2 (en) 2019-07-11 2023-06-08 Beijing Bytedance Network Technology Co., Ltd. Sample padding in adaptive loop filtering
MX2022000120A (es) * 2019-07-15 2022-02-16 Beijing Bytedance Network Tech Co Ltd Clasificacion en filtrado de bucle adaptativo.
EP3991435A4 (en) * 2019-08-07 2022-08-31 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR ADAPTIVE SCANNING OFFSET LOOP FILTER WITH APPLICATION AREA SIZE LIMITATION
EP4018652A4 (en) 2019-09-22 2022-11-02 Beijing Bytedance Network Technology Co., Ltd. FILLING METHOD IN AN ADAPTIVE LOOP FILTER
KR20220063177A (ko) 2019-09-27 2022-05-17 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 상이한 비디오 유닛들 간의 적응적 루프 필터링
CN117956146A (zh) 2019-10-10 2024-04-30 北京字节跳动网络技术有限公司 自适应环路滤波中不可用样点位置处的填充处理
CN111866507A (zh) * 2020-06-07 2020-10-30 咪咕文化科技有限公司 图像滤波方法、装置、设备及存储介质
JP2024511636A (ja) * 2021-03-31 2024-03-14 ヒョンダイ モーター カンパニー インター予測にディープラーニングベースのインループフィルタを用いるビデオコーディング方法及び装置

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8660174B2 (en) * 2010-06-15 2014-02-25 Mediatek Inc. Apparatus and method of adaptive offset for video coding
US9215470B2 (en) * 2010-07-09 2015-12-15 Qualcomm Incorporated Signaling selected directional transform for video coding
US9055305B2 (en) * 2011-01-09 2015-06-09 Mediatek Inc. Apparatus and method of sample adaptive offset for video coding
US9641846B2 (en) * 2010-10-22 2017-05-02 Qualcomm Incorporated Adaptive scanning of transform coefficients for video coding
US9049444B2 (en) * 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
CN106604038B (zh) * 2011-06-23 2020-05-08 华为技术有限公司 偏移解码装置、偏移编码装置、图像滤波器装置
JP5907367B2 (ja) * 2011-06-28 2016-04-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
WO2013003791A1 (en) * 2011-06-29 2013-01-03 General Instrument Corporation Methods and system for using a scan coding pattern during inter coding
US9392301B2 (en) * 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
US9756360B2 (en) * 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in 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 (ja) 2011-11-15 2013-05-23 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、および画像符号化復号装置
WO2013115560A1 (ko) * 2012-01-30 2013-08-08 삼성전자 주식회사 공간 서브영역별로 비디오를 부호화하는 방법 및 그 장치, 공간 서브영역별로 비디오를 복호화하는 방법 및 그 장치
US10244246B2 (en) * 2012-02-02 2019-03-26 Texas Instruments Incorporated Sub-pictures for pixel rate balancing on multi-core platforms
KR101612217B1 (ko) * 2012-04-13 2016-04-12 미쓰비시덴키 가부시키가이샤 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법 및 기록 매체
JPWO2013164903A1 (ja) * 2012-04-30 2015-12-24 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置及び画像符号化復号装置
US9912942B2 (en) * 2012-12-28 2018-03-06 Qualcomm Incorporated High-frequency-pass sample adaptive offset in video coding
US10708588B2 (en) * 2013-06-19 2020-07-07 Apple Inc. Sample adaptive offset control
US20150049821A1 (en) * 2013-08-16 2015-02-19 Qualcomm Incorporated In-loop depth map filtering for 3d video coding
JP5951144B2 (ja) * 2013-12-04 2016-07-13 三菱電機株式会社 画像符号化装置
KR102298599B1 (ko) * 2014-04-29 2021-09-03 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 샘플 적응 오프셋 필터링에 대한 인코더측 결정
KR102276854B1 (ko) 2014-07-31 2021-07-13 삼성전자주식회사 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
KR102248172B1 (ko) * 2015-03-16 2021-05-04 한양대학교 산학협력단 영상 분석을 이용한 비디오 부호화/복호화 방법 및 장치
JP6094838B2 (ja) * 2015-08-31 2017-03-15 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
MX2018006141A (es) * 2015-11-24 2018-08-01 Samsung Electronics Co Ltd Metodo y dispositivo de decodificacion de video, y metodo y dispositivo de codificacion del mismo.
KR102506430B1 (ko) 2015-11-27 2023-03-08 삼성전자주식회사 반도체 장치의 제조 방법
JP6724152B2 (ja) * 2016-02-12 2020-07-15 華為技術有限公司Huawei Technologies Co.,Ltd. 走査順序選択のための方法及び装置
CN108713320B (zh) * 2016-03-16 2022-05-17 寰发股份有限公司 视频编码中限制块尺寸的视频数据处理方法与装置
CA3037685C (en) * 2016-09-20 2023-03-28 Bae Keun Lee Method and apparatus for processing video signal

Also Published As

Publication number Publication date
CN110679149A (zh) 2020-01-10
US20200029080A1 (en) 2020-01-23
US11553186B2 (en) 2023-01-10
CN116233423A (zh) 2023-06-06
EP3979639A1 (en) 2022-04-06
KR20190123288A (ko) 2019-10-31
CN110679149B (zh) 2023-04-04
CN116233422A (zh) 2023-06-06
KR102443959B1 (ko) 2022-09-16
EP3606077A1 (en) 2020-02-05
US20230106301A1 (en) 2023-04-06
WO2018174593A1 (ko) 2018-09-27
EP3606077A4 (en) 2021-01-06
US20210297675A1 (en) 2021-09-23
US11057627B2 (en) 2021-07-06

Similar Documents

Publication Publication Date Title
KR102443959B1 (ko) 적응적인 화소 분류 기준에 따른 인루프 필터링 방법
RU2765234C1 (ru) Способ внутреннего предсказания и кодер и декодер, использующие его
KR102462009B1 (ko) 영상 부호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
US10880559B2 (en) Method for decoding chroma image using luma quantization
US11729388B2 (en) Method of removing deblocking artifacts
US9467713B2 (en) Apparatus for decoding a moving picture
US10375390B2 (en) Method and apparatus of deriving intra prediction mode using most probable mode group
US9609354B2 (en) Apparatus for decoding a moving picture
EP3772263A1 (en) Position dependent intra prediction combination extended with angular modes
CN110602509A (zh) 用于最末重要系数位置编码中的上下文减少的设备和方法
US9473789B2 (en) Apparatus for decoding a moving picture
US11949865B2 (en) Image encoding/decoding method using pixel value range constituting image
KR20230035009A (ko) 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
US20230048262A1 (en) Decoding device and method for predicting block partitioned into random shape

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal