KR20190123745A - 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법 - Google Patents

영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법 Download PDF

Info

Publication number
KR20190123745A
KR20190123745A KR1020197027157A KR20197027157A KR20190123745A KR 20190123745 A KR20190123745 A KR 20190123745A KR 1020197027157 A KR1020197027157 A KR 1020197027157A KR 20197027157 A KR20197027157 A KR 20197027157A KR 20190123745 A KR20190123745 A KR 20190123745A
Authority
KR
South Korea
Prior art keywords
value
image
band
pixel
range
Prior art date
Application number
KR1020197027157A
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 한양대학교 산학협력단
Priority to KR1020237033058A priority Critical patent/KR20230143626A/ko
Publication of KR20190123745A publication Critical patent/KR20190123745A/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/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/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/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/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/174Methods 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 slice, e.g. a line of blocks or a group of 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Abstract

영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법이 개시된다. 여기서 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계, 수신된 비트스트림에 포함된 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계 및 획득한 화소값의 범위 정보를 기초로 상기 제1 단위영상에 대한 복호화를 수행하는 단계를 포함한다. 따라서, 영상 부호화 및 복호화 과정에서 압축 효율을 향상시킬 수 있다.

Description

영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법
본 발명은 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법에 관한 것으로, 더욱 상세하게는 영상마다 서로 다른 화소값의 범위를 갖고 있는 점을 이용하여 비트 심도 대신에 실제 영상을 구성하는 화소값의 범위를 이용한 부호화 및 복호화 방법에 관한 것이다.
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)의 영상 압축을 위한 차세대 영상 압축 기술 표준을 제정하고자 활발히 노력하고 있다.
한편, 기존의 비디오 압축 표준 기술에 따르면, 미리 설정한 비트 심도에 따라 화소값 범위를 결정하고, 결정된 화소값 범위를 벗어나는 화소값은 클리핑(clipping)을 통해 조정함으로써 비트 심도에 따른 영상 압축을 수행한다.
그런데, 실제 영상을 구성하는 화소값의 범위는 비트 심도에 따라 결정되는 화소값 범위와는 차이가 있기 때문에 보다 실제 영상에 맞는 영상 부호화/복호화 방법이 필요한 실정이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은, 두 개 이상의 비트 심도를 이용한 영상 부호화 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면은, 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법을 제공한다.
여기서 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법은, 부호화할 입력 영상을 획득하는 단계, 획득한 입력 영상에 포함된 제1 단위영상을 구성하는 화소값(pixel)의 범위를 획득하는 단계, 상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계 및 부호화된 화소값 범위를 포함하는 비트스트림을 생성하는 단계를 포함할 수 있다.
여기서 상기 제1 단위영상은, 픽쳐, 슬라이스, 타일, 블록 중 하나의 단위로 이루어진 영상일 수 있다.
여기서 상기 부호화하는 단계는, 상기 제1 단위영상을 구성하는 화소값의 최대값과 비트 심도(bit depth)에 기초한 최대 화소값 사이의 차분값을 부호화하는 단계를 포함할 수 있다.
여기서 상기 부호화하는 단계는, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역(band)을 지시하는 대역 정보를 생성하는 단계를 포함할 수 있다.
여기서 상기 대역 정보를 생성하는 단계 이후에, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역 내에서의 위치를 지시하는 대역 위치 정보를 생성하는 단계를 포함할 수 있다.
여기서 상기 대역 위치 정보를 생성하는 단계는, 상기 최대값 또는 상기 최소값이 속하는 대역에 대한 대표값이 미리 설정되지 않은 경우에 수행될 수 있다.
여기서 상기 대표값은, 상기 최대값 또는 상기 최소값이 속하는 대역에서의 최대 화소값, 최소 화소값 및 중간값 중 하나일 수 있다.
여기서 상기 대역 정보를 생성하는 단계는, 상기 최대값 및 상기 최소값 중 어느 하나가 속하는 대역에 대한 대역 정보를 생성하는 단계 및 생성된 대역 정보를 예측값으로 하여 나머지 하나가 속하는 대역에 대한 대역 정보를 생성할 수 있다.
여기서 상기 부호화하는 단계는, 부호화가 완료된 다른 단위 영상을 구성하는 화소값 범위를 획득하는 단계 및 상기 다른 단위 영상을 구성하는 화소값의 범위를 예측값으로 하여 상기 제1 단위 영상을 구성하는 화소값의 범위를 부호화하는 단계를 포함할 수 있다.
여기서 상기 제1 단위 영상을 구성하는 화소값의 범위를 부호화하는 단계는, 상기 다른 단위 영상을 구성하는 화소값의 범위와 상기 제1 단위 영상을 구성하는 화소값의 범위가 속하는 대역이 같은지 여부를 지시하는 구문정보를 생성하는 단계를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면은, 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법을 제공한다.
여기서 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계, 수신된 비트스트림에 포함된 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계 및 획득한 화소값의 범위 정보를 기초로 상기 제1 단위영상에 대한 복호화를 수행하는 단계를 포함할 수 있다.
여기서, 상기 제1 단위영상은, 픽쳐, 슬라이스, 타일, 블록 중 하나의 단위로 이루어진 영상일 수 있다.
여기서 상기 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계는, 상기 비트스트림으로부터 상기 제1 단위 영상을 구성하는 화소값의 최대값과 비트 심도(bit depth)에 기초한 최대 화소값 사이의 차분값을 획득하는 단계 및 상기 차분값에 기초하여 상기 제1 단위 영상을 구성하는 화소값의 최대값을 획득하는 단계를 포함할 수 있다.
상기 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계는, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역(band)을 지시하는 대역 정보를 획득하는 단계를 포함할 수 있다.
여기서, 상기 대역 정보를 획득하는 단계 이후에, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역 내에서의 위치를 지시하는 대역 위치 정보를 획득하는 단계를 포함할 수 있다.
여기서 상기 대역 위치 정보를 획득하는 단계는, 상기 최대값 또는 상기 최소값이 속하는 대역에 대한 대표값이 미리 설정되지 않은 경우에 수행될 수 있다.
여기서 상기 대표값은, 상기 최대값 또는 상기 최소값이 속하는 대역에서의 최대 화소값, 최소 화소값 및 중간값 중 하나일 수 있다.
여기서, 상기 대역 정보를 획득하는 단계는, 상기 최대값 및 상기 최소값 중 어느 하나가 속하는 대역에 대한 대역 정보를 획득하는 단계 및 획득된 대역 정보를 예측값으로 하여 나머지 하나가 속하는 대역에 대한 대역 정보를 획득하는 단계를 포함할 수 있다.
여기서 상기 대역 정보를 획득하는 단계는, 복호화가 완료된 다른 단위 영상을 구성하는 화소값 범위를 획득하는 단계 및 상기 다른 단위 영상을 구성하는 화소값의 범위를 예측값으로 하여 상기 제1 단위 영상을 구성하는 화소값의 범위를 획득하는 단계를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면은, 두 개 이상의 비트 심도를 사용한 영상 부호화 방법을 제공한다.
여기서 두 개 이상의 비트 심도를 사용한 영상 부호화 방법은, 부호화할 입력 영상을 획득하는 단계, 획득한 입력 영상을 내부 비트 심도에 기초하여 1차 부호화를 수행하는 단계, 상기 1 차 부호화가 수행된 입력 영상을 외부 비트 심도로 변환하는 단계 및 외부 비트 심도로 변환된 입력 영상에 대하여 2 차 부호화를 수행하여 비트스트림을 생성하는 단계를 포함할 수 있다.
여기서 상기 내부 비트 심도는 상기 외부 비트 심도보다 더 큰 값을 가질 수 있다.
상기와 같은 본 발명에 따른 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법을 이용할 경우에는 실제 영상의 특성에 따른 부호화 및 복호화를 수행할 수 있다.
또한, 부호화 및 복호화 과정에서 더 넓은 화소값 범위를 갖는 비트 심도를 별도로 사용하므로, 화소값 조정으로 버려지는 화소값을 줄일 수 있다.
따라서, 영상 부호화 및 복호화 효율이 향상될 수 있는 장점이 있다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.
도 4는 본 발명의 일 실시예에 따른 비트 심도를 설명하기 위한 개념도이다.
도 5는 본 발명의 일 실시예에 따른 적응적 화소값 조정 방법에 대한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 적응적 화소값 조정 방법에 대한 구문 정보를 생성하는 예시 소스 코드이다.
도 7은 실제 영상을 구성하는 화소값의 범위 정보를 생성하는 방법에 대한 예시도이다.
도 8은 부/복호화가 완료된 적어도 하나의 영상을 이용하여 현재 영상을 구성하는 화소값의 범위 정보를 획득하는 방법을 설명하기 위한 예시도이다.
도 9는 화면 내 예측을 위한 대상 블록과 그 이웃 블록을 설명하기 위한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법에 대한 흐름도이다.
도 11은 본 발명의 일 실시예에 따른 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법에 대한 흐름도이다.
도 12는 본 발명의 일 실시예에 따른 두 개 이상의 비트 심도를 사용한 영상 부호화 방법에 대한 흐름도이다.
도 13은 본 발명의 일 실시예에 따른 두 개 이상의 비트 심도를 사용한 영상 복호화 방법에 대한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
통상적으로 영상은 일련의 정지 영상(Still Image)으로 구성될 수 있으며, 이 정지 영상들은 GOP(Group of Pictures) 단위로 구분될 수 있고, 각 정지 영상을 픽쳐(Picture) 또는 프레임(Frame)이라 지칭할 수 있다. 상위 개념으로는 GOP, 시퀀스(Sequence)등의 단위가 존재할 수 있으며, 또한, 각 픽쳐는 슬라이스, 타일, 블록 등과 같은 소정의 영역으로 분할될 수 있다. 또한, 하나의 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)의 계수값, 부호화/복호화 과정 중에 생성, 결정되는 다양한 부호화/복호화 정보일 수 있다.
영상을 이루는 최소 단위는 화소일 수 있으며, 하나의 화소를 표현하는데 사용되는 비트수를 비트 심도라고 한다. 일반적으로 비트 심도는 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 등에 따라 결정)에 비례하거나 의존적인 설정을 갖는 것으로 의미할 수 있고, 각 컬러 공간에 독립적인 설정은 각 성분의 구성 비에 관계없거나 독립적으로 해당 컬러 공간만의 설정을 갖는 것으로 의미할 수 있다. 본 발명에서는 부/복호화기에 따라 일부 구성에 대해서는 독립적인 설정을 갖거나 의존적인 설정을 가질 수 있다.
영상 부호화 과정에서 필요한 설정 정보 또는 구문 요소(Syntax Element)는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위 수준에서 정해질 수 있으며 이는 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(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 등의 하나 이상의 후처리 필터 과정을 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. 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의 크기를 가질 수 있다. 이때, 부호화 블록과 예측 블록이 동일한 크기를 갖는다는 것은 예측 블록의 분할을 수행하지 않고 부호화 블록의 분할을 통해 획득된 크기로 예측을 수행한다는 것을 의미할 수 있다. 즉, 예측 블록을 위한 분할 정보는 생성되지 않는다는 것을 의미한다. 이와 같은 설정은 변환 블록에도 적용될 수 있으며 분할된 부호화 블록 단위로 변환을 수행할 수도 있다.
다음과 같은 부/복호화 설정에 따라 다양한 구성이 가능할 수 있다. 예를 들어, (부호화 블록이 결정된 후) 부호화 블록에 기반하여 적어도 하나의 예측 블록과 적어도 하나의 변환 블록을 획득할 수 있다. 또는, 부호화 블록과 동일한 크기의 하나의 예측 블록을 획득할 수 있고, 부호화 블록에 기반하여 적어도 하나의 변환 블록을 획득할 수 있다. 또는, 부호화 블록과 동일한 크기의 하나의 예측 블록과 하나의 변환 블록을 획득할 수 있다. 상기 예에서 적어도 하나의 블록이 획득되는 경우는 각 블록의 분할 정보가 발생(생성)할 수 있고, 하나의 블록이 획득되는 경우는 각 블록의 분할 정보는 발생하지 않는다.
상기 결과에 따라 획득되는 다양한 크기의 정사각 또는 직사각 형태의 블록이 화면내 예측, 화면간 예측에 사용되는 블록일 수 있고, 잔차 성분에 대한 변환, 양자화에 사용되는 블록일 수 있다.
도 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에 따른 영상 부호화 장치에서와 동일 또는 상응하는 구성으로 통상의 기술자가 용이하게 이해할 수 있으므로 구체적인 설명은 생략한다.
도 4는 본 발명의 일 실시예에 따른 비트 심도를 설명하기 위한 개념도이다.
비트 심도는 하나의 화소를 표현하는 화소값(pixel value)이 가질 수 있는 갯수를 나타내는 단위로서, 비트 심도가 n비트(bit)인 경우 2n 개의 화소값을 표현할 수 있다. 따라서, 화소값의 범위는 비트 심도에 따라 정해지며 비트 심도가 커질수록 표현할 수 있는 화소는 더 다양해져 선명도를 높일 수 있다.
본 발명에서의 비트 심도는 컬러 성분에 따라 복수의 비트 심도가 지원될 수 있다. 여기서 복수의 비트 심도는 외부 비트 심도(External Bit Depth. 또는 제 1 비트 심도)와 내부 비트 심도(Internal Bit Depth. 또는, 제 2 비트 심도)로 구분될 수 있다.
여기서 외부 비트 심도는, 부/복호화 정보를 설정(또는 생성)하는 단계에서 결정되는 비트 심도일 수 있고, 내부 비트 심도는 외부 비트 심도와는 별도로 부/복호화를 수행하는 과정에서 사용되는 심도일 수 있다. 일반적으로 외부 비트 심도는 내부 비트 심도와 동일한 값을 가지며 기본 비트 심도로 설정될 수 있으나, 본 발명에서는 외부 비트 심도와 구별되는 내부 비트 심도를 추가로 사용할 수 있다.
외부 비트 심도와 다른 값을 갖는 내부 비트 심도가 지원이 되며 내부 비트 심도의 사용이 결정될 경우 내부 비트 심도를 기본 비트 심도로 설정하여 부/복호화를 수행할 수 있다. 또는, 외부 비트 심도의 사용만 결정될 경우 외부 비트 심도를 기본 비트 심도로 설정하여 부/복호화를 수행할 수 있다. 내부 비트 심도의 사용에 대한 허용 여부 및 내부 비트 심도의 사용 여부는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 비트스트림에 수록되어 전송될 수 있으며, 복호화 장치는 수록된 정보를 파싱하여 내부 비트 심도의 사용 여부, 허용 여부에 관한 정보를 복원할 수 있다.
한편, 외부 비트 심도와 구별되는 내부 비트 심도를 사용할 경우, 내부 비트 심도는 외부 비트 심도와 적어도 1 bit의 차이를 가질 수 있으며, 더 바람직하게 내부 비트 심도는 외부 비트 심도보다 큰 값으로 설정할 수 있다. 즉, 외부 비트 심도와 별도로 더 넓은 범위의 화소값을 표현하는 내부 비트 심도를 사용하면, 부/복호화를 수행하는 과정에서 발생하는 라운딩 에러를 줄일 수 있어 부/복호화 성능을 향상시킬 수 있다.
따라서, 도 4를 참조하여 내부 비트 심도의 활용례를 설명하면, 영상 부호화 장치가 부호화할 입력 영상은 소정의 비트 심도에 기반하여 구성된 영상일 수 있다. 이때, 입력 영상이 구성된 비트 심도를 앞에서 설명한 외부 비트 심도로 지칭하면, 영상 부호화 장치는 외부 비트 심도로 구성된 입력 영상을 외부 비트 심도와 구별되는(특히 더 큰 비트 값을 갖는) 내부 비트 심도로 변환(40)할 수 있다. 다음으로, 내부 비트 심도로 변환된 입력 영상을 내부 비트 심도에 기초하여 부호화(41)하고, 내부 비트 심도에 따라 부호화하여 획득된 영상 데이터를 다시 외부 비트 심도로 변환하여 비트 스트림을 생성(42)할 수 있다.
본 발명의 일 실시예에 따른 영상 복호화 장치는 영상 부호화 장치로부터 비트 스트림이 수신되면, 수신된 비트 스트림을 구성하는 영상 데이터를 내부 비트 심도로 변환하고(43), 내부 비트 심도에 기초하여 복호화를 수행(44)할 수 있다. 다음으로, 내부 비트 심도에 따라 복호화된 영상 데이터를 다시 외부 비트 심도로 변환(45)하여 최종적으로 복호화된 영상을 획득할 수 있다.
여기서 외부 비트 심도에서 내부 비트 심도로의 변환(41)은 외부 비트 심도가 n 비트이고 내부 비트 심도를 m 비트로 지칭할 때, n비트에서 m비트로 쉬프트(Shift) 연산을 통해 수행될 수 있다. 또한, 내부 비트 심도에서 외부 비트 심도로의 역변환(42)은 m비트에서 n비트로 라운드(Round) 연산을 통해 수행될 수 있다. 또한, 상기 연산 과정 외의 다른 전처리/후처리 과정을 통해 수행될 수 있다.
내부 비트 심도는, 화면내 또는 화면간 예측 과정, 변환 및 양자화 과정, 역양자화 및 역변환 과정, 인루프 필터링 과정, 엔트로피 부/복호화 과정 등의 영상 부/복호화 과정 중 적어도 하나에서 적용될 수 있다. 따라서, 외부 비트 심도와 내부 비트 심도 상호간의 변환은, 도 2 또는 도 3에 따른 예측부, 변환부 및 양자화부, 역양자화부 및 역변환부, 인루프 필터부(또는 필터부), 엔트로피 부/복호화부의 전 또는 후 단계에서 수행될 수 있다. 구체적으로 예를 들면, 입력 영상이 감산부로 입력 되기 전에 외부 비트 심도에서 내부 비트 심도로 변환될 수 있고, 출력 영상으로 출력 되기 전에 내부 비트 심도에서 외부 비트 심도로의 변환이 수행될 수 있다. 또한, 복원 영상이 메모리에 저장될 때 내부 비트 심도에서 외부 비트 심도로 변환될 수 있고, 복원 영상이 메모리에서 예측부에 참조될 때 외부 비트 심도에서 내부 비트 심도로 변환될 수 있다. 또는, 감산부에서 획득된 차분 블록이 도 2의 변환부(210)에서 변환되기 전에, 외부 비트 심도에서 내부 비트 심도로 변환될 수 있고, 변환부(210)에서 변환된 후, 내부 비트 심도에서 외부 비트 심도로 변환될 수 있다. 또는, 도 2의 역변환부(225)에서 역변환되기 전에 외부 비트 심도에서 내부 비트 심도로 변환될 수 있고, 역변환부(225)에서 역변환된 후에 내부 비트 심도에서 외부 비트 심도로 변환될 수 있다.
또한, 본 발명의 일 실시예에 따른 내부 비트 심도는 하나 이상 사용될 수 있다. 예를 들어, 부/복호화를 수행하는 과정 중 일부는 제1 내부 비트 심도가 적용될 수 있고, 나머지는 제 2 내부 비트 심도가 적용될 수 있다.
부/복호화기의 설정에 따라 외부 비트 심도와 내부 비트 심도는 명시적으로 정해지는 정보일 수 있다. 또한, 외부 비트 심도는 명시적(Explicit)으로, 내부 비트 심도는 묵시적(Implicit)으로 정해지는 정보일 수 있다. 이때, '명시적'이라는 의미는 부호화 장치와 복호화 장치가 해당 정보를 서로 송수신하는 것을 의미하고, '묵시적'이라는 의미는 복호화 장치와 부호화 장치가 해당 정보를 송수신하지 않고 미리 설정된 값을 사용한다는 의미일 수 있다.
외부 비트 심도를 나타내는 정보(또는 구문 요소)는, 외부 비트 심도에 대한 비트 값이 사용되거나, 외부 비트 심도의 비트 값과 미리 설정된 값 사이의 차분값이 사용될 수 있다.
내부 비트 심도를 나타내는 정보(또는 구문 요소)는, 내부 비트 심도에 대한 비트 값이 사용되거나, 내부 비트 심도의 비트 값과 미리 설정된 값 사이의 차분값이 사용될 수 있다. 또한, 내부 비트 심도와 외부 비트 심도 사이의 차분값이 내부 비트 심도를 나타내는 정보로 사용될 수 있다.
여기서 상기 구문 요소를 나타내는 정보는 다양한 이진화 방법(고정 길이 이진화<fixed length binarization>, 단항 이진화<unary binariation>, Rice 이진화<truncated rice>, k-th order exp-golomb 등)으로 부/복호화될 수 있다.
외부 비트 심도와 내부 비트 심도의 비트 값은 다양한 범위를 가질 수 있다. 이때, 내부 비트 심도의 비트 값이 갖는 범위는 외부 비트 심도의 비트 값이 갖는 범위와 같거나 더 넓을 수 있으며, 외부 비트 심도의 비트 값이 갖는 범위의 비트값보다 더 큰 비트 값을 갖는 범위에서 선택될 수 있다. 예를 들어, 외부 비트 심도의 비트 값이 8 비트와 16 비트 사이에서 선택될 수 있다면, 내부 비트 심도의 비트 값은 8비트와 16비트 사이(외부 비트 심도와 동일한 범위)에서 선택되거나, 10비트와 16 비트 사이 또는 10비트와 18비트 사이(외부 비트 심도보다 더 큰 비트값을 갖는 범위)에서 선택될 수 있다.
여기서는 하나의 컬러 성분에 적용되는 것을 전제로 설명하였으나, 컬러 성분에 따라 상기 예의 일부 또는 전부가 동일하거나 다른 설정이 적용될 수 있고, 다양하게 변형 및 확장될 수 있다. 또한, 공간적, 시간적, 화질적 확장성/호환성 등을 위한 계층적 부/복호화 방식(HDR/WCG, Scalable Video Coding 등)을 기준으로 할때, 계층 식별자에 의해 구분되는 기본 계층(Base Layer)에 속하는 영상과 향상 계층(Enhancement layer)에 속하는 영상 중 기본 계층에 속하는 영상에 적용되는 것을 전제로 설명하였으나, 상기 예의 일부 또는 전부가 동일하거나 다른 설정이 가능하며 다양하게 변형 및 확장될 수 있다. 또한, 계층에 따라 의존성/독립성을 갖는 설정은 부/복호화의 설정 하에 결정될 수 있다. 상기 기본 계층과 향상 계층은 부/복호화기의 설정에 따라 별도의 부/복호화 구성이 차이가 있을 수 있으며, 그에 따른 상기 예의 변경되는 구성 또한 이해될 수 있다. 이는 전술한 비트 심도뿐만 아니라 후술하는 적응적 화소값 조정 과정을 포함하여 본 발명에 전체적으로 적용되는 설명일 수 있다. 후술하는 예에서는 설명의 편의를 위해, 외부 비트 심도는 내부 비트 심도와 동일한 값을 가지며 기본 비트 심도로 설정되는 경우를 중심으로 설명한다.
비트 심도(bit_depth)에 따라 지원되는 화소값의 범위는 각 컬러 포맷, 성분 등에 따라 0부터 2bit_depth - 1까지의 범위를 가질 수 있거나, -2bit_depth-1부터 2bit_depth-1 - 1까지의 범위를 가질 수 있다. 이하에서는 0부터 2bit_depth - 1까지의 범위를 갖는 것을 기준으로 설명한다. 또한, 화소값의 범위는 공간 영역에서의 범위를 의미할 수 있다.
도 5는 본 발명의 일 실시예에 따른 적응적 화소값 조정 방법에 대한 예시도이다.
영상 부/복호화 과정에서는 입력되는 화소값이 출력되는 화소값과 다른 경우가 발생할 수 있다. 때로는 허용되는 화소값의 범위를 벗어나는 경우가 발생하기도 하는데 이러한 연산상의 오류로 인한 왜곡을 방지하기 위해 화소값 조정 과정(Adjustment)이 수행될 수 있다. 화소값 조정 방법은 화소값의 범위를 넘는 화소값을 화소값의 범위 내로 조절하는 과정으로서, 클리핑(Clipping)으로 지칭할 수도 있다.
Figure pct00001
상기 표 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)이 반환되면, 출력값(output)은 화소값 조정이 완료된 출력 화소값(pixel_val')으로 저장될 수 있다.
이때, 화소값이 갖는 범위는 비트 심도에 따라 결정되지만, 실제 영상(픽쳐, 슬라이스, 타일, 블록 등의 단위를 가질 수 있다)을 구성하는 화소값은 영상의 종류와 특성이 다르므로 반드시 모든 화소값 범위 내에서 발생하는 것이 아니다. 예를 들어, 일부 영상에서는 높은 화소값을 갖는 화소들로 구성될 수도 있고, 일부 영상에서는 넓은 범위에 고른 화소값을 갖는 화소들로 구성될 수도 있다. 따라서, 본 발명의 일 실시예에 따르면, 실제 영상을 구성하는 화소값의 범위를 참조하여 영상 부/복호화 과정에서 활용할 수 있다.
예를 들어, 상기 표 1에 따른 화소값 조정 방법에서도 클리핑 함수의 최소값(minI)을 실제 영상을 구성하는 화소값 중 가장 작은 값으로 사용할 수 있고, 클리핑 함수의 최대값(maxI)은 실제 영상을 구성하는 화소값 중 가장 큰 값을 사용할 수 있다. 따라서, 실제 영상을 구성하는 화소값이 비트 심도(bit_depth)를 기준으로 0과 2bit_depth - 1 사이에 있다고 전제하면, 클리핑 함수의 최소값은 0과 같거나 큰 값일 수 있고, 클리핑 함수의 최대값은 2bit_depth - 1와 같거나 작은 값일 수 있다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 화소값 조정 방법은 비트 심도에 기초한 화소값 조정 방법(52) 및/또는 실제 영상을 구성하는 화소값 범위에 기초한 화소값 조정 방법(54)을 포함할 수 있다.
여기서, 비트 심도에 기초한 화소값 조정 방법(52)은 화소값의 왜곡을 방지하기 위한 목적으로, 비트 심도에 따라 결정되는 화소값 범위의 최대값과 최소값을 이용한 방법일 수 있다. 비트 심도에 기초한 화소값 조정 방법(52)의 예를 들면, 기본 비트 심도가 8비트인 경우, 비트 심도에 따른 화소값은 0과 255 사이의 값을 가지므로, 입력 화소값이 0보다 작을 때는 0으로, 255보다 클 때는 255로 조정될 수 있다.
여기서, 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 방법(54)은 부/복호화 성능 향상을 위한 목적으로, 실제 영상을 구성하는 화소값의 최대값과 최소값을 이용한 방법일 수 있다. 또한, 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 방법(54)은 손실 없는 화소값 조정 방법(54a)과 손실 있는 화소값 조정 방법(54b)으로 구분될 수 있다.
이때, 손실 없는 화소값 조정 방법(54a)은 실제 영상을 구성하는 화소값의 최대값과 최소값을 그대로 사용한 방법일 수 있다. 손실 없는 화소값 조정 방법(54a)의 예를 들면, 기본 비트 심도가 8비트이고, 실제 영상을 구성하는 화소값이 0과 200 사이의 값을 갖는 경우, 입력 화소값이 0보다 작을 때는 0으로, 200보다 클 때는 200으로 조정될 수 있다.
손실 있는 화소값 조정 방법(54b)은 실제 영상을 구성하는 화소값의 최대값 및 최소값에 근사한 값들을 사용한 방법일 수 있다. 구체적으로, 화소값의 범위는 일정한 화소값 간격을 갖는 복수의 대역으로 분리할 수 있고, 이때, 복수의 대역을 2k 개로 정의할 수 있는 변수 k를 설정할 수 있다. 이때, k를 3으로 설정하고, 기본 비트 심도가 8일 때의 화소값 범위(0~255 사이)에 대해 23개의 대역으로 화소값의 범위를 분리하면, 하나의 대역은 25 의 화소값 간격을 가질 수 있다. 이러한 상태를 전제로 하여 실제 영상을 구성하는 화소값의 최대값과 최소값이 어느 대역에 속해있는지 지시하는 정보를 이용하여 손실 있는 화소값 조정이 수행될 수 있다. 즉, 실제 영상을 구성하는 화소값의 최소값이 33이고, 최대값이 220이면, 33이 속해있는 대역의 대표값(예를 들면 32)을 화소값 조정을 위한 최소값으로 사용하고, 최대값이 속해있는 대역의 대표값(예를 들면 224)을 화소값 조정을 위한 최대값으로 사용할 수 있다. 이때, 대표값은 각 대역마다 미리 설정될 수 있다. 또한, 여기서 화소값의 범위를 나누는 대역의 개수를 지정하는 변수 k는 부호화 과정에서 명시적으로 생성하여 복호화 장치로 전송될 수 있다. 또한, 하나의 대역을 구성하는 화소값 간격은 균등할 수도 있으나 비균등하게 구성할 수도 있다.
따라서, 도 5에 따른 화소값 조정 방법들(52, 54, 54a, 54b)은 부/복호화 설정에 따라 적어도 하나 이상 지원될 수 있다. 따라서, 도 5에 따른 화소값 조정 방법들 중에서 실제 영상이나 부호화 장치 및 복호화 장치의 성능 등에 따라 적어도 하나의 방법이 적응적으로 선택되어 부호화 및/또는 복호화 과정에서 적용될 수 있다. 적응적인 화소값 조정 과정 지원 여부 및 화소값 조정 과정 선택 정보는 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위로 비트스트림에 수록되어 복호화 장치로 전송될 수 있으며, 복호화 장치는 수신된 비트스트림에서 해당 정보를 복원할 수 있다.
또한, 적응적인 화소값 조정 과정은 부/복호화기의 설정에 따라 지원 여부가 묵시적으로 결정될 수 있다. 예를 들어, 양자화 파라미터가 0일 때(본 예에서 무손실 부호화. 즉, 변환, 양자화, 그 역과정, 인루프 필터부 등이 수행되지 않을 때) 적응적인 화소값 조정은 지원되지 않으며 비트 심도에 기초한 화소값 조정 과정이 묵시적으로 선택되어 부/복호화가 진행될 수 있다.
영상(본 예에서 픽쳐 단위)에서는 화소값 조정 과정 지원 여부 및 적어도 하나의 화소값 조정 과정 선택 정보를 생성할 수 있으며, 화소값 조정 과정에 적용되는 적어도 하나의 화소값 범위 정보를 생성할 수 있다. 예를 들어, 하나의 화소값 범위 정보를 생성할 경우 상위 단위(예를 들어, 시퀀스, 픽쳐 등)에서 관련 정보를 생성할 수 있다. 또는, 하나의 화소값 범위 정보를 생성할 경우 첫번째 하위 단위(예를 들어, 픽쳐, 타일, 슬라이스 등. 즉, 하나의 상위 단위 내에 적어도 하나의 하위 단위가 존재할 경우 그 중 첫번째)에서 관련 정보를 생성할 수 있다. 둘 이상의 화소값 범위 정보를 생성할 경우 상위 단위에서 관련 정보를 생성할 수 있다. 또는, 둘 이상의 화소값 범위 정보를 생성할 경우 둘 이상의 하위 단위에서 관련 정보를 생성할 수 있다.
본 발명의 일 실시예에 따른 적응적 화소값 조정 과정은 예측부, 변환부, 양자화부, 역양자화부, 역변환부, 인루프 필터부, 메모리 등의 부/복호화 과정에 적용될 수 있다. 예를 들어, 화소값 조정 방법에서의 입력 화소는 예측 과정에서의 참조 화소(Reference Sample) 또는 예측 화소(Prediction Sample)일 수 있고, 변환, 양자화, 역변환, 역양자화 과정에서의 복원 화소(Reconstructed Sample)일 수 있다. 또한, 인루프 필터 과정에서의 복원 화소일 수 있고, 메모리에서의 저장 화소(Storage Sample)일 수 있다. 이때, 변환과 양자화, 그 역 과정에서의 복원 화소는 인루프 필터 적용 전의 복원 화소를 의미할 수 있다. 인루프 필터에서의 복원 화소는 인루프 필터 적용 후의 복원 화소를 의미할 수 있다. 디블록킹 필터 과정에서의 복원 화소는 디블록킹 필터 적용 후의 복원 화소를 의미할 수 있다. SAO 과정에서의 복원 화소는 SAO 적용 후의 복원 화소를 의미할 수 있다. ALF 과정에서의 복원 화소는 ALF 적용 후의 복원 화소를 의미할 수 있다. 위와 같이 다양한 경우에 대한 예시를 설명하였으나, 이에 한정되지 않고 화소값 조정 과정이 호출되는 모든 부/복호화 과정의 입력, 중간, 출력 단계에서 적용될 수 있다.
추가로 도 4에 따른 외부 비트 심도와 내부 비트 심도를 사용할 경우에 대하여 적응적 화소값 조정에 대한 예를 들면 다음과 같다.
일 예로, 외부 비트 심도는 8비트, 내부 비트 심도는 12비트이며 비트 심도에 기초한 조정 방법(52, 본 예에서 최소값 0, 최대값 255. 8비트 기준)이 선택된 경우 외부 비트 심도가 기본 비트 심도로 적용된 디블록킹 필터 과정에서 생성된 복원 화소는 0보다 작을 때는 0으로, 255보다 클 때는 255로 조정할 수 있다.
일 예로, 외부 비트 심도는 10비트, 내부 비트 심도는 12비트(본 예에서 최소값 0, 최대값 4095. 12비트 기준)이며 비트 심도에 기초한 화소값 조정 방법(52, 본 예에서는 최소값 0, 최대값 1023. 10비트 기준)이 선택된 경우 내부 비트 심도가 기본 비트 심도로 적용되는 SAO 과정에서 생성된 복원 화소는 0보다 작을 때는 0으로, 4095보다 클 때는 4095로 조정할 수 있다.
일 예로, 외부 비트 심도는 8비트, 내부 비트 심도는 10비트이며 실제 영상을 구성하는 화소값 범위에 기초한 화소값 조정 과정(54a, 본 예에서는 최소값 0, 최대값 255. 8비트 기준)이 선택된 경우 외부 비트 심도가 기본 비트 심도로 적용이 되는 ALF 과정에서 생성된 복원 화소는 0보다 작을 때는 0으로, 255보다 클 때는 255으로 조정할 수 있다.
일 예로, 외부 비트 심도는 8비트, 내부 비트 심도는 12비트이며 실제 영상을 구성하는 화소값 범위에 기초한 화소값 조정 방법(54a, 본 예에서는 최소값 20, 최대값 220. 8비트 기준)이 선택되었으며 내부 비트 심도가 기본 비트 심도로 적용된 예측, 변환, 양자화, 역양자화, 역변환, 인루프 필터 과정에서 생성된 복원 화소는 320(20 << 4)보다 작을 때는 320으로, 3520(220 << 4)보다 클 때는 3520으로 조정할 수 있다.
화소값 조정 방법과 관련한 일부 실시예를 중심으로 설명하였으나, 이에 한정하지 않고 상기 예의 일부 또는 전부가 동일하거나 다른 설정이 가능하며 다양한 경우로 변형 및 확장이 가능할 수 있다.
도 6은 본 발명의 일 실시예에 따른 적응적 화소값 조정 방법에 대한 구문 요소를 생성하는 예시 소스 코드이다.
도 6을 참조하면, sps_adaptive_sample_range는 sps에서 적응적인 화소값 조정 과정 지원 여부를 지시하는 구문 요소일 수 있고, pps_adaptive_sample_range는 pps에서 적응적인 화소값 조정 과정 지원 여부를 지시하는 픽쳐 단위의 구문 요소일 수 있으며, 이 외의 단위(슬라이스, 타일, 블록 등)에서도 적응적인 화소값 조정 과정 지원 여부에 대한 구문 요소가 정의될 수 있다.
적응적인 화소값 조정 과정 지원 여부를 지시하는 구문 요소가 활성화된 경우(예를 들면, 구문 요소가 1이면, 적응적인 화소값 조정 과정을 지원하는 것을 의미)에는 시퀀스 단위(또는 픽쳐)에서 적어도 하나의 화소값 조정 과정을 지원하여 부/복호화를 수행할 수 있고, 도 5에 따른 화소값 조정 방법 중 어느 방법을 적용할 것인지를 선택하는 구문 요소(adaptive_sample_range_flag)를 추가로 생성할 수 있다.
적응적인 화소값 조정 과정 지원 여부를 지시하는 구문 요소가 비활성화된 경우(본 예에서 0이라 가정)에는 시퀀스 단위(또는 픽쳐)에서 미리 설정된 하나의 화소값 조정 과정을 포함하는 부/복호화를 수행할 수 있다. 또한, 컬러 성분에 따라 적응적인 화소값 조정 과정 지원 여부에 대한 구문 요소가 각 단위에서 정의될 수 있다. 또한, 부/복호화 설정(본 예에서 QP 등)에 따라 구문 요소가 생성되지 않을 수 있다.
adaptive_sample_range_flag는 pps에서 화소값 조정 방법 중 어느 방법을 적용할 것인지를 선택하는 구문 요소일 수 있으며, 이 외의 단위(시퀀스, 슬라이스, 타일, 블록 등)에서도 화소값 조정 방법을 선택하는 구문 요소가 정의될 수 있다. 상기 구문 요소는 적어도 하나의 단위(본 예에서 픽쳐, 슬라이스, 타일, 블록 등)에서 정의될 수 있거나 하나의 단위(본 예에서 픽쳐, 슬라이스, 타일, 블록 등 중 선택)에서만 정의될 수 있다.
화소값 조정 방법 중 어느 방법을 적용할 것인지를 선택하는 구문 요소(adaptive_sample_range_flag)는 둘 이상의 화소값 조정 과정에 대한 후보군을 두어 그 중 선택할 수 있다. 상기 구문 요소(adaptive_sample_range_flag)를 참조하여 도 5에 따른 비트 심도에 기초한 화소값 조정 방법(52)이 선택되면, 영상(본 예에서 픽쳐 단위)에서 비트 심도에 따라 결정되는 휘도 성분의 최소값, 최대값, 색차 성분의 최소값, 최대값 등이 화소값 범위 정보로 설정될 수 있다.
또한, 상기 구문 요소(adaptive_sample_range_flag)를 참조하여 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 방법(54)이 선택되면 영상(본 예에서 픽쳐 단위)에서 상기 화소값 범위 정보로 luma_lower_bound, luma_upper_bound, chroma_lower_bound[i], chroma_upper_bound[i]에 대한 구문 요소(본 예에서 i는 색차 성분의 인덱스 값)가 정의될 수 있으며, 이와 같이 정의된 구문 요소에 의해 휘도 성분의 최소값, 최대값, 색차 성분의 최소값, 최대값 등이 화소값 범위 정보로 설정될 수 있다. 상기 외의 단위(슬라이스, 타일, 블록 등)에서도 화소값 범위 정보(본 예에서는 최소값, 최대값 등)에 대한 구문 요소가 정의될 수 있으며, 컬러 포맷 등에 따라 정의되는 구문 요소가 일부 변경 적용될 수 있다.
하나 이상의 단위(본 예에서 픽쳐, 슬라이스, 타일, 블록 등)에서 실제 영상을 구성하는 화소값의 범위 정보가 생성될 수 있으며, 상위 단위의 화소값 범위는 하위 단위의 화소값 범위를 포함할 수 있다. 예를 들어, 둘 이상의 단위(본 예에서 픽쳐, 슬라이스)에서 화소값 범위 정보가 생성되고 상위 단위(본 예에서 픽쳐)의 최소값과 최대값을 minH, maxH, 하위 단위(본 예에서 슬라이스)의 최소값과 최대값을 minL, maxL라 할 경우, minH는 minL보다 작거나 같을 수 있고 maxH는 maxL보다 크거나 같을 수 있다. 상위 단위(본 예에서는 픽쳐)는 둘 이상의 하위 단위(본 예에서는 픽쳐 내 2개의 슬라이스)를 포함할 경우, 상위 단위의 최소값과 최대값을 minH, maxH, 제 1 하위 단위(본 예에서 슬라이스)의 최소값과 최대값을 minL1, maxL1, 제 2 하위 단위(본 예에서 슬라이스)의 최소값과 최대값을 minL2, maxL2라 할 경우, minH는 minH1 또는 minH2보다 작거나 같을 수 있고 maxH는 maxH1 또는 maxH2보다 크거나 같을 수 있다. 상위 단위의 화소값 범위 정보는 비트 심도에 의해 정해지는 화소값 범위 정보에 기반하여 생성될 수 있으며, 하위 단위의 화소값 범위 정보는 상위 단위의 화소값 범위 정보에 기반하여 생성될 수 있다. 화소값 범위 정보 관련하여 최소값, 최대값 외의 추가적인 구문 요소가 정의될 수 있다.
한편, 실제 영상을 구성하는 화소값 범위를 지시하는 정보는 화소값 범위에 대한 최소값과 최대값을 포함할 수 있다. 이때, 화소값 범위 정보는 예측 없이 원본값(Original Value, 최소값과 최대값 자체) 관련 정보를 생성할 수 있다. 또는, 예측을 통해 그 차이값(Difference Value, 최소값과 최대값에 대하여 예측을 통해 결정된 예측값과 실제 최소값 또는 최대값 상호간의 차분값) 관련 정보를 생성할 수 있고, 예측에 사용되는 예측값(Prediction Value) 관련 정보 또한 생성할 수 있으며, 상기 언급된 정보는 하나 이상의 요인이 혼합 구성되어 표현될 수 있다.
원본값 관련 정보는 손실없는 원본값(Lossless Original Value)과 손실있는 원본값(Lossy Original Value)으로 구분될 수 있으며, 손실없는 원본값의 경우 영상의 화소값 범위 정보에 대해 그대로 나타낸 값일 수 있고, 손실있는 원본값의 경우 영상의 화소값 범위 정보에 대해 부/복호화 설정에 의해 허용되는 오차 범위를 갖는 값일 수 있다. 손실있는 원본값의 경우 상기 오차 범위 정보를 묵시적 또는 명시적인 처리를 할 수 있으며, 묵시적인 경우 관련 구문 요소 생성없이 기설정된 조건에 따라 오차 범위 정보를 생성할 수 있고, 명시적인 경우 관련 구문 요소 생성을 통해 오차 범위 정보를 생성할 수 있다.
차이값 관련 정보는 실제 영상을 구성하는 화소값 범위 정보(예를 들면 최대값, 최소값)와 예측을 통해 획득되는 화소값 범위 정보(예를 들면 최대값에 대한 예측값, 최소값에 대한 예측값) 사이의 차분값일 수 있거나, 예측을 통해 획득되는 화소값 범위 정보에 기반하여 생성되는 화소값일 수 있다. 차분값은 부호 있는 차이값 또는 부호 없는 차분값으로 구분될 수 있으며, 차분값 특성에 따라 구문 요소 설정(본 예에서 이진화 방법 등)이 정해질 수 있다.
예측값 관련 정보는 영상의 실제 영상을 구성하는 화소값의 범위를 구성하는 전체 또는 일부 성분(예를 들어, 최대값, 최소값 등)과 유사할 것으로 예상되는 정보일 수 있다. 따라서, 부/복호화가 완료된 적어도 하나의 영상의 화소값 범위, 앞서 부/복호화가 완료된 다른 화소값 범위, 다른 컬러 성분의 화소값 범위, 부/복호화기에서 기설정된 예측값 등이 예측값 관련 정보가 될 수 있다. 이때 기설정된 예측값의 경우 비트 심도에 따라 가변적일 수 있다.
예측에 사용되는 정보는 부/복호화 설정에 따라 묵시적 또는 명시적인 처리를 할 수 있으며, 묵시적인 경우 관련 구문 요소 생성없이 기설정된 조건에 따라 예측 관련 정보가 생성될 수 있으며, 명시적인 경우 관련 구문 요소 생성을 통해 예측 관련 정보를 생성할 수 있으며, 상기 정보를 통해 원본값 정보를 예측할 수 있다.
차이값 관련 정보와 예측값 관련 정보는 부/복호화 설정에 따라 다양한 이진화 방법(본 발명에서 언급된 이진화 방법과 그 외의 방법 등)을 통해 문맥 기반의 적응적인 이진 산술 방법(CABAC)을 적용할 수 있으며, 상기 설명에서 언급된 다양한 정보(본 예에서 문맥 정보로 고려)를 기반으로 문맥 모델링(Context Modeling)을 수행할 수 있다.
도 7은 실제 영상을 구성하는 화소값의 범위 정보를 생성하는 방법에 대한 예시도이다.
제1 실시예로서, 실제 영상을 구성하는 화소값의 범위 정보는 예측 없이 원본값에 따라 생성될 수 있다. 예를 들어, 현재 영상을 구성하는 화소값의 최소값(minc)과 최대값(maxc)을 비트 심도(n 비트로 정의)에 따라 고정 길이 이진화를 통해 n비트로 표현하고, n비트로 표현된 최대값과 최소값을 실제 영상을 구성하는 화소값의 범위 정보로 설정할 수 있다.
다만, 제1 실시예에 따른 화소값의 범위 정보에서 최소값(minc)과 최대값(maxc)을 지시하는 값은 실제 영상의 화소값의 최소값과 최대값과는 달리 표현될 수 있다. 예를 들어, 실제 영상을 구성하는 화소값의 최소값(minc) 및 최대값(maxc)이 10, 240일 때, 실제 영상을 구성하는 화소값의 최소값(minc)은 10 그대로 표현할 수도 있지만, 실제 영상을 구성하는 화소값의 최대값(maxc)은 비트 심도로 표현 가능한 화소값의 최대값(8비트 기준 255)과 실제 영상을 구성하는 화소값의 최대값(maxc) 사이의 차분값(255와 240 사이의 차분값인 15)으로 표현할 수 있다. 정리하면, 비트 심도에 기반하여 획득되는 전체 범위(0부터 255)에서 오름 차순으로 획득되는 값, 상기 최대값의 경우 내림 차순으로 획득되는 값으로 표현할 수 있다. 이와 같이 표현된 정보는 비트스트림에 수록하여 복호화 장치로 전송될 수 있고, 복호화 장치는 수신된 정보를 파싱하여 제1 실시예에 따른 화소값의 범위 정보를 복원할 수 있다. 이때, 실제 영상을 구성하는 화소값의 최대값이 앞에서 설명한 차분값(여기서는 15)으로 표현되었다면, 다시 비트 심도로 표현 가능한 화소값의 최대값(8비트 기준 255)에서 복원된 차분값(여기서는 15)을 뺌으로써 실제 영상을 구성하는 화소값의 최대값(여기서는 240)을 획득할 수 있다.
제2 실시예로, 실제 영상을 구성하는 화소값의 범위 정보는 실제 영상을 구성하는 화소값의 최대값(maxc)과 최소값(minc)이 속하는 대역 정보로 표현할 수 있다. 구체적으로, 비트 심도로 표현되는 화소값의 범위를 k값(미리 설정되거나 명시적으로 부호화 장치가 k값을 지시하는 정보를 생성하여 복호화 장치에 전송할 수도 있음)에 따라 결정되는 복수의 대역(본 예에서 2k개라 가정)으로 분할하고, 최대값(maxc)과 최소값(minc)이 속하는 대역을 지시하는 정보를 생성할 수 있다.
도 7을 참조하면, 미리 설정된 k값이 1이면, 비트 심도로 표현되는 화소값의 범위를 두개의 대역으로 분할할 수 있다. 같은 방법으로, k값이 2이면 4개, k값이 4이면 16개와 같이 2k개의 대역으로 화소값의 범위를 분할할 수 있다. 이때, 현재 영상(Current)을 구성하는 실제 화소값의 최대값과 최소값은 도 7에서 4번 대역과, 2k-3번 대역일 수 있다. 다만 최대값(maxc) 또는 최소값(minc)이 속하는 대역을 지시하는 번호는 0부터 설정할 수도 있으며 도 7과 같이 1부터 설정할 수도 있다. 또한, 최소값이 속하는 대역을 지시하는 정보는 도 7과 같이 4번 대역으로 결정할 수 있으나, 최대값이 속하는 대역을 지시하는 정보는 도 7과 같이 2k-3번 대역으로 결정하는 것뿐만 아니라, 대역의 총 개수(2k)와 최대값이 속하는 대역(2k-3번) 사이의 차분값(여기서는 3)으로 결정할 수도 있다.
따라서, 최대값(maxc)과 최소값(minc)이 속하는 대역을 지시하는 정보를 부호화 장치가 전송하면, 복호화 장치는 수신된 정보를 기초로 최대값(maxc) 과 최소값(minc)이 속하는 대역을 알 수 있다. 이때, 부호화 장치가 최대값(maxc) 또는 최소값(minc)이 속하는 대역 내에서 최대값(maxc) 또는 최소값(minc)의 위치를 지시하는 정보를 추가로 생성하여 전송할 수도 있고, 별도의 추가 정보를 생성하지 않을 수도 있다.
부호화 장치가 별도의 추가 정보(대역 내에서의 위치 정보)를 생성하지 않는 경우(손실있는 원본값), 복호화 장치는 최대값(maxc) 또는 최소값(minc)이 속하는 대역을 대표하는 대표값으로 최대값과 최소값을 결정할 수 있다. 이때, 대표값은 묵시적으로 미리 대역마다 설정된 값일 수 있고, 해당 대역을 이루는 최대값 또는 최소값에서부터 미리 설정된 거리, 해당 대역을 이루는 최대값이나 최소값일 수도 있다. 또한, 최소값(minc)이 속한 대역의 대표값은 대역을 이루는 가장 낮은 화소값으로, 최대값(maxc)이 속한 대역의 대표값은 대역을 이루는 가장 높은 화소값으로 설정될 수 있다.
부호화 장치가 별도의 추가 정보(대역 내에서의 위치 정보)를 생성하는 경우(손실없는 원본값), 복호화 장치는 최소값 또는 최대값의 대역 내 위치 정보를 활용하여 손실없이 정확히 대역 내 화소값을 특정할 수 있다. 여기서 별도의 추가 정보(대역 내에서의 위치 정보)는 최대값 또는 최소값을 대역의 폭(간격)으로 나눈 나머지값으로 설정할 수 있다. 구체적으로 예를 들면, 최대값이 50이고, 최대값 50이 속하는 대역의 폭이 14일 경우, 50을 14로 나눈 나머지값인 8을 추가 정보로 생성할 수 있다. 이때, 별도의 추가 정보를 포함하는 화소값 범위 정보(본 예에서 손실없는 원본값. minc, maxc)는 손실있는 원본값 설정에 따라 앞에서 설명한 별도의 추가 정보를 생성하지 않는 화소값 범위 정보로 변환될 수 있다.
제3 실시예로, 제1 실시예에 따른 화소값 범위 정보 중에서 부/복호화가 완료된 화소값 범위 정보에 기반하여 나머지 화소값 범위 정보를 생성할 수 있다. 예를 들어, 현재 영상을 구성하는 화소값의 최대값(maxc)을 현재 영상을 구성하는 화소값의 최소값(minc)에 대한 예측값으로 결정할 수 있다. 따라서, 부호화 장치는 최대값은 그대로 부호화하더라도, 최소값은 최대값과의 차분값을 부호화하여 복호화 장치로 전송할 수 있고, 복호화 장치는 최대값을 먼저 복호화한 후, 복호화된 최대값과 수신된 정보를 파싱하여 획득된 차분값을 더함으로써, 복호화된 최소값을 획득할 수 있다. 반대로, 현재 영상을 구성하는 화소값의 최소값을 현재 영상을 구성하는 화소값의 최대값에 대한 예측값으로 결정할 수도 있으며, 위와 상응하는 방식으로 부, 복호화될 수 있다.
한편, 현재 영상을 구성하는 최대값(maxc)과 최소값(minc) 사이의 차분값(maxc-minc)을 표현하는 비트 길이는, 부호화/복호화가 완료된 최소값(또는 최대값)과 비트 심도에 의해 표현되는 최대값(또는 최소값) 사이의 차분값(diff)을 기반으로 가변 길이 이진화가 수행되어 결정할 수 있다. 구체적으로, 부호화/복호화가 완료된 최소값(또는 최대값)과 비트 심도에 의해 표현되는 최대값(또는 최소값) 사이의 차분값(diff)이 아래의 수학식 1을 만족하는 경우, 아래의 수학식 1을 만족하는 k값을 비트 길이로 하여 이진화가 수행될 수 있다.
Figure pct00002
예를 들면, 비트 심도가 8비트인 경우 minc가 122(본 예에서 maxc는 200) 일 경우 비트 심도에 의해 표현되는 최대값(본 예에서 255)과의 차이값은 133이고, 수식에서 이를 만족하는 k는 8이다. 따라서, 현재 영상을 구성하는 화소값의 최대값과 최소값 사이의 차분값(|maxc - minc|, 본 예에서 78)은 minc와 비트 심도에 의해 표현되는 최대값과의 차이값 기반으로 결정되는 8비트(본 예에서 01001110)로 생성할 수 있으며, 앞서 부/복호화가 완료된 minc에 |maxc - minc|를 가산하여 maxc를 복원할 수 있다. 다른 예로, maxc가 120(본 예에서 minc는 10) 일 경우 비트 심도에 의해 표현되는 최소값(본 예에서 0)과의 차분값은 120이고, 수식에서 이를 만족하는 k는 7이다. 따라서, 화소값 범위의 차분값(|maxc - minc|, 본 예에서 110)은 maxc와 비트 심도에 의해 표현되는 최소값과의 차이값 기반으로 결정되는 7비트(본 예에서 1101110)로 생성할 수 있으며, 앞서 부/복호화가 완료된 maxc에 |maxc - minc|를 감산하여 minc를 복원할 수 있다. 본 예에서의 이진화는 일 예일 뿐 다른 이진화 방법 또한 적용이 가능하다.
제4 실시예로, 제2 실시예에 따라 부/복호화가 완료된 화소값 범위 정보에 기반하여 현재 영상의 화소값 범위 정보를 생성할 수 있다. 예를 들면, 제2 실시예에 따라 현재 영상을 구성하는 최대값이 속하는 대역 정보를 현재 영상을 구성하는 최소값이 속하는 대역 정보에 대한 예측값으로 사용할 수 있다. 반대로, 현재 영상을 구성하는 최소값이 속하는 대역 정보를 현재 영상을 구성하는 최대값이 속하는 대역 정보에 대한 예측값으로 사용할 수도 있다. 이때, 도출된 대역 정보와 대역 정보에 대한 예측값 사이의 차분값을 표현하는 비트 길이는, 최대값(또는 최소값)이 속하는 대역 정보 및 도 7과 같이 분할한 대역을 지시하는 대역(예를 들면, 1부터 2k) 중 최소값(또는 최대값) 사이의 차분값에 기반한 가변 길이 이진화에 의해 결정될 수 있다.
제5 실시예로, 부/복호화가 완료된 적어도 하나의 영상의 화소값 범위 정보를 예측값으로 두어 현재 영상의 화소값 범위 정보를 생성할 수 있다. 다시 도 7을 참조하면, 부/복호화가 완료된 적어도 하나의 다른 영상(predictor)을 구성하는 화소값의 최소값(minp) 및 최대값(maxp)을 예측값으로 하여 현재 영상(current)을 구성하는 화소값의 최소값(minc) 및 최대값(maxc)을 도출할 수 있다.
또한, 제 1 컬러 성분(본 예에서 루마 성분<또는 크로마 성분>)의 화소값 범위 정보가 제 2 컬러 성분(본 예에서 크로마 성분<또는 루마 성분 또는 다른 크로마 성분>)의 화소값 범위 정보의 예측에 사용될 수 있다. 상기 차이값 정보는 기설정된 범위를 벗어나지 않는 조건 하에 수행될 수 있다.
또한, 도 7과 같이 현재 영상의 최소값(minc) 및 최대값(maxc)이 속한 대역 정보는 부/복호화가 완료된 적어도 하나의 다른 영상(predictor)의 최소값(minp), 최대값(maxp)이 속한 대역 정보를 예측값으로 하여 도출할 수 있다. 특히, 적어도 하나의 다른 영상의 최대값과 최소값이 속한 대역 정보와 현재 영상의 최대값과 최소값이 속한 대역 정보가 동일하다면, 현재 영상을 구성하는 화소값의 최대값 및 최소값이 속하는 대역을 지시하는 대역 정보는 별도로 전송될 필요가 없다. 이러한 경우 복호화 장치는 부/복호화가 완료된 적어도 하나의 다른 영상으로부터 현재 영상을 구성하는 화소값의 최대값 및 최소값이 속하는 대역을 지시하는 대역 정보를 획득할 수 있다. 따라서, 부호화 장치는 대역 정보를 제외하고, 대역 내에서 최대값 또는 최소값의 위치 정보만 생성하여 복호화 장치로 전송할 수 있다.
또한, 부/복호화가 완료된 영상으로부터 화소값 범위 정보의 예측을 수행할 지에 대한 정보가 추가적으로 생성될 수 있다. 예를 들어, 부호화 장치는 현재 영상의 최대값 및 최소값이 속하는 대역 정보가 다른 영상의 최대값 및 최소값이 속하는 대역 정보와 동일하다면, 동일하다는 점을 지시(또는 예측가능하다고 지시)하는 플래그(또는 구문 요소)를 추가로 생성할 수 있다. 복호화 장치는 부호화 장치에서 추가로 생성된 상기 플래그를 수신하고 수신된 플래그가 활성화(예를 들면 1)되어 있다면, 부/복호화가 완료된 영상을 구성하는 화소값의 범위 정보(최대값과 최소값이 속하는 대역에 대한 정보 및 대역 내 위치 정보)를 이용하여 예측을 수행하여 현재 영상의 대역 정보를 획득하고, 현재 영상의 대역 내 위치 정보는 부호화 장치로부터 별도로 수신함으로써 획득할 수 있다.
도 7을 참조하면, 비트 심도가 8비트일 때 설정되는 전체 화소값 범위(0부터 255)에 대하여 2k개의 대역으로 분할할 수 있고, 이때, 분할된 대역 중 하나에 현재 영상(Current)과 부/복호화가 완료된 다른 영상(Predictor)의 최대값과 최소값이 속할 수 있다. 도 7의 도면기호 70을 참조하면, 현재 영상을 구성하는 화소의 최소값(minc)이 4번 대역에 속하고, 다른 영상을 구성하는 화소의 최소값(minp)이 4번 대역에 속하는 것을 확인할 수 있다. 도 7의 도면기호 72를 참조하면, 현재 영상을 구성하는 화소의 최대값(maxc)이 2k-3번 대역에 속하고, 다른 영상을 구성하는 화소의 최소값(maxp)이 2k-3번 대역에 속하는 것을 확인할 수 있다. 이처럼 현재 영상을 구성하는 화소의 최대/최소값이 다른 영상을 구성하는 화소의 최대/최소값과 같은 대역에 속해있는 경우, 현재 영상의 최대값과 최소값이 속하는 대역(즉, 대역 정보)은 다른 영상의 최대값 및 최소값이 속하는 대역을 통해 알 수 있다(또는 예측할 수 있다). 따라서, 부호화 장치는 다른 영상의 대역 정보를 통해 예측이 가능하다는 것을 지시하는 1비트의 값과, 대역 내에서의 위치 정보를 파악하기 위해 현재 영상의 최대/최소값이 속하는 대역 내에서의 위치 정보(본 예에서4비트)를 생성할 수 있다. 여기서 대역 내에서의 위치 정보는 현재 영상의 최대값 또는 최소값을 대역의 개수로 나눈 나머지값으로 결정할 수 있다.
더 구체적인 사례를 들면, k가 4일 때 화소들은 24개(여기서 대역 하나의 간격은 24)의 대역으로 분류할 수 있다. 현재 영상의 최소 화소값(minc), 최대 화소값(maxc)은 55, 211일 때 대역 4, 대역 14에 포함되며, 다른 영상으로부터 획득된 minp, maxp는 49, 221일 때 대역 4, 대역 14에 포함된다고 전제(즉, 다른 영상의 대역 정보와 현재 영상의 대역 정보가 동일한 경우)한다. 이러한 가정 하에서, 현재 영상의 최대값 및 최소값이 속하는 대역 정보가 다른 영상의 최대값 및 최소값이 속하는 대역 정보부터 예측되므로, minc, maxc가 속한 대역은 minp, maxp가 속한 대역 4, 대역 14에서 확인할 수 있다. 따라서, 현재 영상의 minc, maxc(55와 211을 그 자체로 보내면 00110111 과 11010011로 8비트)는 대역 정보(본 예에서 0011xxxx와 1101xxxx, 8비트 중 상위 4비트가 대역 정보에 해당)를 제외하고, 대역 내에서의 위치 정보(본 예에서 xxxx0111과 xxxx0011, 8비트 중 하위 4비트)만으로 표현될 수 있다.
또 다른 사례로, 비트 심도가 8비트이고 k가 4(본 예에서 16개 대역)일 때, 현재 영상의 minc, maxc는 8, 136으로 대역 1, 대역 9에 포함되며, minp, maxp는 29, 140으로 대역 2, 대역 9에 포함된다고 전제한다. 현재 영상의 화소값 범위 정보가 다른 영상으로부터 예측이 되며 각 구성요소별로 예측될 경우, minc는 minp가 속한 대역과 다른 대역에서 발생하여 예측이 수행되지 않고 maxc는 maxp가 속한 대역과 동일한 대역에 속하므로 예측이 수행될 수 있다. 이 때, minc는 원본값(본 예에서 00001000, 8) 또는 다른 방식으로 화소값 범위 정보를 생성하고, maxc는 maxp가 속한 대역 9에서 발생하므로, 대역 내 위치 정보{본 예에서 8(최대값 136을 대역의 개수인 16으로 나눈 나머지값이 대역 내 위치 정보가 됨). xxxx1000}로 화소값 범위 정보를 생성할 수 있다. 즉, 현재 영상을 구성하는 화소값의 최소값(minc)은 예측을 지시하는 플래그(구성요소별로 적용)인 0(1비트, 0이면 예측불가) 및 원본값 00001000(8비트)으로 최소값(minc)을 지시하는 정보를 생성할 수 있다. 현재 영상을 구성하는 화소값의 최대값(maxc)은 예측 플래그(구성요소별로 적용)인 1(1비트, 1이면 예측가능) 및 대역 내 위치 정보인 1000(8이므로 4비트로 표현)가 발생할 수 있다.
한편, 현재 영상을 구성하는 화소값의 최대값 및/또는 최소값이 속하는 대역이 부호화/복호화가 완료된 다른 영상을 구성하는 화소값의 최대값 및/또는 최소값이 속하는 대역과 동일하지 않은 경우에도, 대역 분할을 변경함으로써 예측을 통한 대역 정보 도출이 가능할 수 있다. 도 7의 도면기호 74를 참조하면, 대역 분할의 개수가 16인 경우(24,k=4)에서 현재 영상을 구성하는 화소값의 최소값이 속하는 대역이 3번이고, 부/복호화가 완료된 다른 영상을 구성하는 화소값의 최소값이 속하는 대역이 4번에 속하는 것을 확인할 수 있다. 즉, 도면기호 74에서 현재 영상을 구성하는 화소값의 최소값이 속하는 대역과 부/복호화가 완료된 다른 영상을 구성하는 화소값의 최소값이 속하는 대역은 상이하다. 다만, 이때 대역 분할의 개수를 23개(8개, k=3)로 변경한다면, 도면 기호 76과 같이, 현재 영상의 최소값과 다른 영상의 최소값이 같은 대역(2번 대역)에 속하게 되는 것을 확인할 수 있다. 따라서, 분할되는 대역의 개수를 변경(또는 낮춤)함으로써, 다른 영상의 대역 정보를 이용한 예측이 가능하다. 즉, 부호화 장치는 분할되는 대역의 개수를 결정하는 변수 k의 값을 1만큼 줄이도록 지시하는 정보를 예측 가능 여부를 지시하는 플래그에 추가로 포함하여 생성할 수 있다.
구체적인 예시로, 비트 심도가 8비트이고 k가 4(16개 대역)일 때, 상기 예에서의 minc, maxc, minp, maxp와 동일한 화소값과 대역을 가진다고 가정하자. 현재 영상의 화소값 범위 정보가 다른 영상으로부터 예측이 되며 각 구성요소별로 예측이 되고 대역 조정 과정을 통해 예측이 될 경우, minc는 minp가 속한 대역과 다른 대역에서 발생하여 바로 예측(본 예에서 k가 4일 때)이 수행될 수 없고, maxc는 maxp가 속한 대역과 동일한 대역에 속하므로 예측이 수행될 수 있다. maxc는 maxp가 속한 대역 9에서 발생하며 이에 대한 나머지 정보{본 예에서 8(136%16). xxxx1000}로 화소값 범위를 생성하며, minc는 k값의 조정 과정(본 예에서 k를 4에서 3으로 조정)을 거쳐 대역 1(k가 3일 때)에 포함되며, minp는 대역 1(k가 3일 때)에 포함된다. minc는 minp가 속한 대역과 동일한 대역에 속하므로 예측이 수행되며, 대역 내에서의 위치 정보{본 예에서 8(8%32), xxx01000}로 화소값 범위 정보를 생성할 수 있다. 즉, minc의 예측 플래그는 01(2비트), 나머지값 01000(5비트)가 발생할 수 있고, maxc의 예측 플래그는 1(1비트), 나머지값 1000(4비트)가 발생할 수 있다. 이 때, 추가적인 비트 단위의 예측 플래그는 특정 상황(본 예에서 k가 최초 값으로 예측이 되지 않을 경우 또는 업데이트된 k가 예측이 되지 않을 경우. 0)에서 발생할 수 있으며, 이는 기설정된 경계값{본 예에서 최초 k는 4이고 경계값은 2라고 가정. 이 때 가능한 예측 플래그는 1(k가 4일 때 예측가능), 01(k가 3일 때 예측가능), 001(k가 2일 때 예측가능), 000(예측하지 않음)}까지 발생할 수 있다. 상기 실시예에서의 k값, k값 조정 과정, k값의 경계값 등의 설정은 부/복호화 설정에 따라 결정될 수 있으며 관련 정보가 비트스트림에 수록되어 전송될 수 있다.
도 8은 부/복호화가 완료된 적어도 하나의 영상을 이용하여 현재 영상을 구성하는 화소값의 범위 정보를 획득하는 방법을 설명하기 위한 예시도이다.
도 8을 참조하면, T-2, T-1은 현재 영상(여기서는 픽쳐를 대상으로 설명) 이전에 부/복호화가 완료된 영상이며, T+1, T+2는 현재 영상 이후에 부/복호화가 완료된 영상이다. 또한, R_Info는 해당 영상을 구성하는 화소값의 범위 정보를 의미할 수 있다.
본 발명의 일 실시예에 따르면, 현재 픽쳐의 화소값 범위 정보는 현재 픽쳐 이전에 부/복호화가 완료된 적어도 하나의 영상(본 예에서, T-1, T-2)에서 참조될 수 있고, 현재 픽쳐 이후에 부/복호화가 완료된 적어도 하나의 영상(본 예에서, T+1, T+2)에서 참조될 수 있고, 현재 픽쳐의 이전, 이후에 부/복호화가 완료된 적어도 하나의 영상(본 예에서, T-2, T-1, T+1, T+2)에서 참조될 수 있다. 화소값 범위에 대한 정보 예측에 참조되는 영상들은 화면간 예측의 참조 픽쳐 리스트(L0, L1)에 포함된 영상일 수 있고, 현재 영상과 동일한 GOP 안에 위치한 영상들일 수 있고, 현재 영상의 시간적 계층(TemporalID)과 같거나 낮은 영상들일 수 있다. 참조되는 영상은 적어도 하나의 영상일 수 있으며, 이는 부/복호화기의 설정에 따라 정의될 수 있다. 기설정된 영상에서 참조될 수 있고 또는 하나 이상의 영상들로 후보군을 구성한 후 참조되는 영상을 결정하고 그에 따른 선택 정보를 생성할 수 있다.
또한, 화소값 범위 정보 예측에 참조를 할 수 없는 경우에는 다른 영상으로부터 화소값 범위 정보를 예측하지 않는 다른 방법(이전 실시예를 따르거나 추가적인 방법)을 사용할 수 있다. 예를 들어, GOP의 첫번째 영상, 임의 접근을 위한 영상{본 예에서는 IRAP(Intra Randam Access Point) 픽쳐} 등이 그에 해당할 수 있다.
R_Info(A)는 하나의 영상 화소값 범위 정보를 나타내며, 영상(A)의 최소값과 최대값에 대한 정보를 포함하여 현재 영상의 최소값과 최대값에 대한 예측값을 생성할 수 있다. R_Info(A,B,...)는 둘 이상(A, B 등)의 영상 화소값 범위 정보를 나타내며 대표 최소값과 대표 최대값에 대한 정보를 포함하여 현재 영상의 최소값과 최대값에 대한 예측값을 생성할 수 있으며, 대표 최소값과 최대값은 각 최소값과 최대값들의 평균(Average), 가중치 합(Weighted Sum), 중앙값(Median) 등의 방법을 사용하여 유도될 수 있다. 또는, 연속하는 영상들의 화소값 범위 정보의 기울기 정보나 변화량에 따른 추정을 통해 최소값과 최대값의 예측값을 유도할 수 있다. 화소값 범위 정보는 각 영상의 부/복호화가 수행되기 전의 화소값에서 획득될 수 있다.
예측을 수행할 지 여부는 부/복호화가 완료된 영상에서의 화소값 범위 정보에 기반하여 결정될 수 있다. 예를 들어, 둘 이상의 영상으로부터 현재 영상의 화소값 범위 정보 예측을 수행할 지는 영상들의 화소값 범위 정보의 유사성, 즉 영상(A)의 최소값, 최대값과 영상(B)의 최소값, 최대값의 유사성 확인 과정(본 예에서는 대역 정보에 기반한 비교)에 따라 결정될 수 있다.
일 예로, 비트 심도가 8비트이고 k는 4일 때 영상(A)을 구성하는 화소값의 최소값(minA), 최대값(maxA)는 40, 200일 때 대역 3, 대역 13에 포함되며, 영상(B)를 구성하는 화소값의 최소값(minB), 최대값(maxB)은 35, 206일 때 대역 3, 대역 13에 포함될 경우, 영상들의 화소값 범위에 대한 유사성이 존재하는 것으로 판단하고, 현재 영상에도 비슷한 유사성이 존재할 것으로 판단하여 화소값 범위 정보의 예측(본 예에서 화소값 범위 정보의 전부. 구성요소들에 함께 적용)을 수행할 수 있다.
일 예로, 비트 심도가 8비트이고 k는 4일 때 영상(A)을 구성하는 화소값의 최소값(minA), 최대값(maxA)은 40, 200일 때 대역 3, 대역 13에 포함되며, 영상(B)를 구성하는 화소값의 최소값(minB), 최대값(maxB)은 50, 205일 때 대역 4, 대역 13에 포함될 경우, 영상들의 화소값 범위에 대한 유사성이 일부 존재(max)하는 것으로 판단하고, 현재 영상에서 일부 화소값 범위에 유사성이 존재할 것으로 판단하여 화소값 범위 정보의 예측(본 예에서는 화소값 범위 정보의 일부. 구성요소별로 적용)을 수행할 수 있다.
일 예로, 비트 심도가 8비트이고 k는 3일 때 영상(A)을 구성하는 화소값의 최소값(minA), 최대값(maxA)는 40, 200일 때 대역 2, 대역 7에 포함되며, 영상(B)를 구성하는 화소값의 최소값(minB), 최대값(maxB)은 10, 255일 때 대역 1, 대역 8에 포함될 경우, 영상들의 화소값 범위에 대한 유사성이 존재하지 않는 것으로 판단하고, 현재 영상에서 화소값 범위에 유사성이 존재하지 않을 것으로 판단하여 화소값 범위 정보의 예측을 수행하지 않을 수 있다.
상기 실시예에서는 화소값 범위 정보 예측을 위해 유사성 확인 과정에 대한 예로 대역 정보 비교를 예로 들었지만 이를 포함하여 다양한 방법 및 과정에 의해 예측 수행 여부에 대한 판단을 할 수 있다.
한편, 도 5에서와 같이 비트 심도에 기초한 화소값 조정(52) 또는 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정(54)을 통해 화소값의 최소값과 최대값을 포함하는 화소값의 범위가 변경(결정 또는 정의)될 수 있으며, 추가적인 화소값 범위 정보 또한 변경(결정 또는 정의)될 수 있다. 예를 들면, 실제 영상을 구성하는 화소값의 최대값과 최소값이 변경될 수 있으며, 실제 영상을 구성하는 화소값의 중앙값 또한 변경될 수 있다.
도 5에서 비트 심도에 따른 화소값 조정 과정(52)에서 minI은 영상의 최소 화소값, maxI는 영상의 최대 화소값, I는 컬러 성분을 의미할 수 있고, medianI는 영상의 중앙 화소값을 의미할 수 있다. minI는 0, maxI은 (1 << bit_depth) - 1, medianI은 1 << (bit_depth - 1)일 수 있으며, median은 부/복호화 설정에 따라 상기 예를 포함하여 다른 형태로 획득될 수 있다. 중앙값은 본 발명에서의 설명을 위한 하나의 용어일 뿐 영상의 부/복호화 과정에서 상기 화소값 조정 과정에 따라 변경(결정 또는 정의)될 수 있는 화소값 범위 정보를 나타내는 하나의 정보일 수 있다.
도 5에서 영상을 구성하는 실제 화소값의 범위에 따른 화소값 조정 과정(54a, 54b)에서 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은 부/복호화 설정에 따라 상기 예를 포함하여 다른 형태로 획득될 수 있다.
medianI은 상기 예에서의 묵시적인 정보를 생성하는 경우를 포함하여 minI, maxI와 같이 명시적인 정보를 생성하여 부/복호화할 수 있다. 예를 들어, luma_median_value, chroma_median_value[i]는 픽쳐 단위에서 화소값 범위 정보로 휘도 성분의 중앙값, 색차 성분의 중앙값에 대한 구문 요소가 정의될 수 있으며, 이는 luma_lower_bound, luma_upper_bound, chroma_lower_bound[i], chroma_upper_bound[i]와 같이 정의될 수 있으며, 이 외의 단위(슬라이스, 타일 등)에서도 구문 요소가 정의될 수 있다. 화소값 범위 정보 관련 실시예들에서 설명되었던 화소값 범위 정보의 과정 및 설정 등은 medianI에도 동일하거나 비슷하게 적용이 가능할 수 있다.
이하에서는 중앙값(median)과 관련한 실시예를 설명한다.
일 예로, 기본 비트 심도는 8비트이고 비트 심도에 기초한 화소값 조정 과정(본 예에서 중앙값 128. 8비트 기준)이 선택되며 현재 블록의 위치는 영상(본 예에서 픽쳐)의 왼쪽 위에 위치할 경우, 부/복호화가 완료된 이웃 블록(또는 참조 블록. 본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위, 위쪽, 오른쪽 위)은 존재하지 않으므로 참조 화소는 중앙값{본 예에서 1 << (bit_depth - 1). 512}으로 채워질 수 있다. 상기 참조 화소를 사용하여 예측 모드(본 예에서 방향성 예측 모드. Diagonal down left)에 따라 화면내 예측 과정을 수행할 수 있다.
일 예로, 기본 비트 심도는 8비트이고 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 과정{도 5의 54a, 본 예에서 최소값 10, 최대값 190. 최소값과 최대값으로부터 유도된다는 설정(평균) 하에 중앙값 100. 8비트 기준}이 선택되며 현재 블록의 위치는 영상(본 예에서 슬라이스) 내의 첫번째 블록일 경우, 부/복호화에 사용될 이웃 블록(본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위, 위쪽, 오른쪽 위)은 존재하지 않으므로 참조 화소는 중앙값(본 예에서 100)으로 채워질 수 있다. 상기 참조 화소를 사용하여 예측 모드(본 예에서 비방향성 예측 모드. DC)에 따라 화면내 예측 과정을 수행할 수 있다.
일 예로, 기본 비트 심도는 10비트이고 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 과정(도 5의 54b, 본 예에서 중앙값 600. 관련 구문 요소가 존재}이 선택되며 현재 블록의 위치는 영상(본 예에서 타일)내의 첫번째 블록일 경우, 부/복호화에 사용될 이웃 블록(본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위, 위쪽, 오른쪽 위)은 존재하지 않으므로 참조 화소는 중앙값(본 예에서 600)으로 채워질 수 있다. 상기 참조 화소를 사용하여 예측 모드(본 예에서 방향성 예측 모드. Vertical)에 따라 화면내 예측 과정을 수행할 수 있다.
일 예로, 기본 비트 심도는 10비트이고 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 과정(도 5의 54a, 본 예에서 중앙값 112. 관련 구문 요소가 존재)이 선택되며 부/복호화가 완료되었으나 블록의 부호화 모드<화면내 예측/화면간 예측> 등에 따라 이용가능 여부 등이 결정되는 설정이 활성화(본 예에서 해당 블록의 부호화 모드가 화면내 예측인 경우 현재 블록의 참조 화소로 사용가능, 화면간 예측인 경우 사용불가. 본 설정이 비활성화되는 경우에는 해당 블록의 부호화 모드와 상관 없이 현재 블록의 참조 화소로 사용가능)되며 현재 블록의 위치는 영상의 왼쪽에 위치할 경우, 부/복호화에 사용될 이웃 블록(본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위)은 존재하지 않으며 부/복호화에 사용될 이웃 블록(본 예에서 위쪽, 오른쪽 위)은 존재하지만 부호화 모드가 화면간 예측이라 상기 설정에 의해 사용이 금지되므로 참조 화소는 중앙값(본 예에서 112)으로 채워질 수 있다. 즉, 사용가능한 참조 화소가 존재하지 않아 영상 화소값 범위의 중앙값으로 채울 수 있다. 상기 참조 화소를 사용하여 예측 모드(본 예에서 비방향성 예측 모드. Planar)에 따라 화면내 예측 과정을 수행할 수 있다.
상기 실시예에서는 현재 블록과 이웃 블록의 경계 특성, 현재 블록의 위치, 이웃 블록의 부/복호화 여부, 이웃 블록의 부호화 모드, 블록의 부호화 모드에 따른 참조 화소 사용 설정 등에 따라 화소값 조정 과정이 수행되는 예를 나타낸다. 상세하게는, 화면내 예측부에서 참조 화소 구성부(또는 구성 단계)에서 참조 화소 구성결과에 따라 화소값 조정 과정에 따른 화소값 범위 정보를 사용할 지에 대한 예(상기 예에서 사용가능한 참조 화소가 존재하지 않는 경우 해당 참조 화소를 영상의 중앙값으로 채우고 사용가능한 참조 화소로 상태 변경)를 나타낸다. 상세하게는, 예측 화소 생성 과정에서는 화소값 범위 정보(본 예에서는 min, max)에 따라 화소값 조정이 수행될 수 있고, 참조 화소 생성 과정에서는 화소값 범위 정보(본 예에서 median)에 따라 화소값 조정이 수행될 수 있는 예를 나타낸다. 상기 실시예에서는 예측부에서 상기 중앙값 관련한 다양한 경우를 나타내었지만, 이는 영상 부/복호화의 다른 구성에 포함되어 구성될 수도 있다. 또한, 상기 실시예만으로 한정되지 않고 다양한 경우로 변형 및 확장이 가능할 수 있다.
도 9는 화면내 예측을 위한 대상 블록과 그 이웃 블록을 설명하기 위한 예시도이다.
본 발명의 일 실시예에 따른 영상 부호화 방법 및 장치에서 화면내 예측은 참조 화소 구성 단계, 참조 화소 필터링 단계, 예측 블록 생성 단계, 예측 모드 결정 단계 및/또는 예측 모드 부호화 단계를 포함할 수 있다. 또한, 영상 부호화 장치는 참조 화소 구성 단계, 참조 화소 필터링 단계, 예측 블록 생성 단계, 예측 모드 결정 단계, 예측 모드 부호화 단계를 구현하는 참조 화소 구성부, 참조 화소 필터링부, 예측 블록 생성부 및/또는 예측 모드 부호화부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
도 9를 참조하면, 참조 화소 구성부는 현재 블록(Curr, M×N의 블록 크기)을 중심으로 이웃한 블록(A, B, C, D, E)에 속하고 현재 블록(Curr)과 인접한 화소를 화면내 예측을 위한 참조 화소로 구성할 수 있다. 이때, 참조 화소는 임시 메모리(예를 들어, 1차 또는 2차 배열 등)를 통해 관리될 수 있으며, 블록의 화면내 예측 과정 마다 생성 및 제거되고, 임시 메모리의 크기는 현재 블록의 크기 및 참조 화소의 구성에 따라 결정될 수 있다.
참조 화소 구성부는 참조 화소 구성을 위해 참조 화소들(또는 이웃 블록)이 이용가능한지 여부를 확인한다. 만약 참조 화소의 일부(또는 A 내지 E 중 적어도 하나의 블록)가 이용가능하지 않을 경우 이용가능한 참조 화소를 사용(예를 들어, 이용가능한 참조 화소가 한 쪽 방향에만 존재하면 외삽, 양 쪽 방향에 존재하면 시계 방향/시계 반대 방향으로 외삽 또는 내삽 등의 방법)하여 이용가능하지 않는 참조 화소를 생성할 수 있다. 참조 화소의 전부(또는 A 내지 E의 모든 블록)가 이용가능하지 않을 경우 앞에서 설명한 중앙값으로 참조화소를 채워넣거나, 그 밖에 본 발명에서 언급된 다양한 방법을 사용하여 참조 화소를 생성할 수 있다.
이때, 이웃 블록의 이용가능성은 해당 블록의 부호화 여부, 픽쳐 경계 바깥에 존재 여부, 현재 블록과 다른 슬라이스/타일 등에 속하는지 여부, 제한적인 화면내 예측 설정(예를 들어, constrained_intra_pred_flag. 이웃 블록의 부호화 모드에 따라 참조 화소로 사용 여부를 결정. '1'이면 이웃 블록의 부호화 모드가 화면내 예측일 경우에는 사용 가능, 화면간 예측일 경우에는 사용 불가. '0'이면 이웃 블록의 부호화 모드에 상관없이 사용 가능) 수행 여부 등에 따라 결정될 수 있다. 예를 들어, 이웃 블록이 부호화가 완료되었으며, 픽쳐 내부에 존재하고, 현재 블록과 동일한 슬라이스/타일에 속하며, constrained_intra_pred_flag가 '1'일 때 부호화 모드가 화면내 예측을 의미하면 이용가능할 수 있다.
참조 화소 구성부는 다음의 수학식 2를 통해 참조 화소를 구성할 수 있다.
Figure pct00003
수학식 2를 참조하면, p[i][j]는 현재 블록의 인접한 블록의 참조 화소(본 예에서 i와 j 는 i = -1, j = -1 ~ 2*blk_size(또는 blk_size_h) - 1와 i = 0 ~ 2*blk_size(또는 blk_size_w) - 1, j = -1의 범위를 가진다고 가정)를 의미하고, p*[i][j]는 참조 화소 구성 과정 후의 참조 화소를 의미한다. ref_sample()은 참조 화소를 구성하는 함수(외삽, 복사, 중간값 생성 등을 수행)를 의미하고, blk_size(또는 blk_size_w, blk_size_h)는 블록의 크기(또는 길이)로 M 또는 N 일 수 있고, color_idx는 색차 성분을 의미한다.
참조 화소 필터링부에서는 부호화 과정을 통해 남아있는 열화를 줄여주기 위한 목적으로 참조 화소에 필터링을 수행할 수 있다. 이때, 사용되는 필터는 3-tap 필터 [1/4, 1/2, 1/4], 5-tap 필터 [2/16, 3/16, 6/16, 3/16, 2/16] 등과 같은 저역 통과 필터(Low-pass Filter)일 수 있다. 부호화 설정(예를 들어, 블록의 크기, 형태, 예측 모드 등에 의해 설정 정보가 결정)에 따라 필터링의 적용 유무가 결정될 수 있고, 필터링이 적용되는 경우에는 고정적인 필터링 또는 적응적인 필터링이 적용될 수 있다.
참조 화소 필터링부는 다음의 수학식 3을 통해 필터링된 참조 화소를 획득할 수 있다.
Figure pct00004
수학식 3을 참조하면, p"[i][j]는 필터링된 참조 화소를 의미하고, pred_mode는 현재 블록의 예측 모드를 의미하며, ref_filter()는 참조 화소를 전술한 3-tap 필터 또는 5-tap 필터 등을 이용하여 필터링하는 함수를 의미한다. p*[i][j]는 앞에서 수학식 2에 따라 구성된 참조 화소를 의미한다.
예측 블록 생성부에서는 적어도 하나의 예측 모드에 따라 예측 블록을 생성할 수 있으며, 예측 모드에 기반하여 참조 화소를 사용할 수 있다. 이때, 참조 화소는 예측 모드에 따라 외삽(Extrapolation) 등의 방법에 사용될 수 있고, 내삽(Interpolation) 또는 평균(DC) 또는 복사(Copy) 등의 방법에 사용될 수 있다. 이때, 예측 모드 후보군은 HEVC와 같이 33개의 방향성 모드(Angular Mode)와 2개의 비방향성 모드(DC, Planar)로 구성될 수 있으며, 이에 한정되지 않고 다양한 구성(예를 들어, 예측 모드 개수, 예측 모드 후보군 구성 등)을 가질 수 있다.
구체적으로 예측 블록 생성부는 다음의 수학식 4를 통해 예측 블록을 획득할 수 있다.
Figure pct00005
수학식 4를 참조하면, pf[x][y]는 현재 블록의 예측 화소(본 예에서 x와 y 는 0부터 blk_size - 1의 범위를 가질 수 있음. 또는, 현재 블록의 형태에 따라 각각 0부터 blk_size_w 또는 blk_size_h의 범위를 가질 수 있음)를 의미하고, pred_sample()은 참조 화소를 이용하여 화면 내 예측 모드에 따라 예측 블록을 생성하는 함수를 의미한다.
예측 모드 결정부에서는 복수의 예측 모드 후보군 중 최적의 모드를 선정하기 위한 과정이 수행된다. 일반적으로 블록의 왜곡(예를 들어, 현재 블록과 복원 블록의 Distortion. SAD<Sum of Absolute Difference>, SSD<Sum of Square Difference> 등)과 해당 모드에 따른 발생 비트량이 고려되는 율-왜곡(Rate-Distortion) 기법을 이용하여 부호화 비용 측면에서 최적인 모드를 결정할 수 있다. 상기 과정을 통해 결정되는 예측 모드에 기반하여 생성되는 예측 블록을 감산부와 가산부로 송신할 수 있다.
예측 모드 부호화부에서는 예측 모드 결정부를 통해 선정된 예측 모드를 부호화할 수 있다. 예측 모드 후보군에서 상기 예측 모드에 대응하는 인덱스 정보를 부호화할 수 있거나 또는 상기 예측 모드를 예측하여 그에 관한 정보(예측 플래그, 예측 결과에 따른 나머지 모드 정보)를 부호화할 수 있다. 이때, 상기 예측 모드의 예측에 사용되는 블록은 현재 블록을 중심으로 좌, 상, 좌상, 우상, 좌하 블록일 수 있으며, 해당 블록의 예측 모드가 현재 블록의 예측 모드 부호화의 예측값으로 사용될 수 있다.
또한, 본 발명의 일 실시예에 따른 영상 복호화 방법 및 장치에서 화면내 예측은 예측 모드 복호화 단계, 참조 화소 구성 단계, 참조 화소 필터링 단계 및/또는 예측 블록 생성 단계를 포함할 수 있다. 또한, 영상 복호화 장치는 예측 모드 복호화 단계, 참조 화소 구성 단계, 참조 화소 필터링 단계, 예측 블록 생성 단계를 구현하는 예측 모드 복호화부, 참조 화소 구성부, 참조 화소 필터링부 및/또는 예측 블록 생성부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
영상 복호화 장치의 참조 화소 구성부, 참조 화소 필터링부, 예측 블록 생성부는 영상 부호화 장치의 대응되는 구성과 동일한 역할을 수행하므로 상세한 설명은 생략하며, 예측 모드 복호화부는 예측 모드 부호화부에서 사용한 방식을 역으로 사용하여 수행될 수 있다.
전술한 화면내 예측부의 다양한 과정(예를 들어, 수학식 2 내지 4)에서 화소값 범위 정보에 따른 화소값 조정(예를 들어, min, max에 따른 클리핑, median에 따른 중앙값 입력 등) 과정이 포함될 수 있다.
도 10은 본 발명의 일 실시예에 따른 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법에 대한 흐름도이다.
도 10을 참조하면, 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법은, 부호화할 입력 영상을 획득하는 단계(S100), 획득한 입력 영상에 포함된 제1 단위영상을 구성하는 화소값의 범위를 획득하는 단계(S110), 상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계(S120) 및 부호화된 화소값 범위를 포함하는 비트스트림을 생성하는 단계(S130)를 포함할 수 있다.
여기서 상기 제1 단위영상은, 픽쳐, 슬라이스, 타일, 블록 중 하나의 단위로 이루어진 영상일 수 있다.
여기서 상기 부호화하는 단계(S120)는, 상기 제1 단위영상을 구성하는 화소값의 최대값과 비트 심도에 기초한 최대 화소값 사이의 차분값을 부호화하는 단계를 포함할 수 있다.
여기서 상기 부호화하는 단계(S120)는, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역(band)을 지시하는 대역 정보를 생성하는 단계를 포함할 수 있다.
여기서 상기 대역 정보를 생성하는 단계 이후에, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역 내에서의 위치를 지시하는 대역 위치 정보를 생성하는 단계를 포함할 수 있다.
여기서 상기 대역 위치 정보를 생성하는 단계는, 상기 최대값 또는 상기 최소값이 속하는 대역에 대한 대표값이 미리 설정되지 않은 경우에 수행될 수 있다.
여기서 상기 대표값은, 상기 최대값 또는 상기 최소값이 속하는 대역에서의 최대 화소값, 최소 화소값 및 중간값 중 하나일 수 있다.
여기서 상기 대역 정보를 생성하는 단계는, 상기 최대값 및 상기 최소값 중 어느 하나가 속하는 대역에 대한 대역 정보를 생성하는 단계 및 생성된 대역 정보를 예측값으로 하여 나머지 하나가 속하는 대역에 대한 대역 정보를 생성할 수 있다.
여기서 상기 부호화하는 단계(S120)는, 부호화가 완료된 다른 단위 영상을 구성하는 화소값 범위를 획득하는 단계 및 상기 다른 단위 영상을 구성하는 화소값의 범위를 예측값으로 하여 상기 제1 단위 영상을 구성하는 화소값의 범위를 부호화하는 단계를 포함할 수 있다.
여기서 상기 제1 단위 영상을 구성하는 화소값의 범위를 부호화하는 단계(S120)는, 상기 다른 단위 영상을 구성하는 화소값의 범위와 상기 제1 단위 영상을 구성하는 화소값의 범위가 속하는 대역이 같은지 여부를 지시하는 구문 요소를 생성하는 단계를 포함할 수 있다.
도 11은 본 발명의 일 실시예에 따른 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법에 대한 흐름도이다.
도 11을 참조하면, 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계(S200), 수신된 비트스트림에 포함된 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계(S210) 및 획득한 화소값의 범위 정보를 기초로 상기 제1 단위영상에 대한 복호화를 수행하는 단계(S220)를 포함할 수 있다.
여기서, 상기 제1 단위영상은, 픽쳐, 슬라이스, 타일, 블록 중 하나의 단위로 이루어진 영상일 수 있다.
여기서 상기 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계(S210)는, 상기 비트스트림으로부터 상기 제1 단위 영상을 구성하는 화소값의 최대값과 비트 심도에 기초한 최대 화소값 사이의 차분값을 획득하는 단계 및 상기 차분값에 기초하여 상기 제1 단위 영상을 구성하는 화소값의 최대값을 획득하는 단계를 포함할 수 있다.
상기 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계(S210)는, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역(band)을 지시하는 대역 정보를 획득하는 단계를 포함할 수 있다.
여기서, 상기 대역 정보를 획득하는 단계 이후에, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역 내에서의 위치를 지시하는 대역 위치 정보를 획득하는 단계를 포함할 수 있다.
여기서 상기 대역 위치 정보를 획득하는 단계는, 상기 최대값 또는 상기 최소값이 속하는 대역에 대한 대표값이 미리 설정되지 않은 경우에 수행될 수 있다.
여기서 상기 대표값은, 상기 최대값 또는 상기 최소값이 속하는 대역에서의 최대 화소값, 최소 화소값 및 중간값 중 하나일 수 있다.
여기서, 상기 대역 정보를 획득하는 단계는, 상기 최대값 및 상기 최소값 중 어느 하나가 속하는 대역에 대한 대역 정보를 획득하는 단계 및 획득된 대역 정보를 예측값으로 하여 나머지 하나가 속하는 대역에 대한 대역 정보를 획득하는 단계를 포함할 수 있다.
여기서 상기 대역 정보를 획득하는 단계는, 복호화가 완료된 다른 단위 영상을 구성하는 화소값 범위를 획득하는 단계 및 상기 다른 단위 영상을 구성하는 화소값의 범위를 예측값으로 하여 상기 제1 단위 영상을 구성하는 화소값의 범위를 획득하는 단계를 포함할 수 있다.
도 12는 본 발명의 일 실시예에 따른 두 개 이상의 비트 심도를 사용한 영상 부호화 방법에 대한 흐름도이다.
도 12를 참조하면, 두 개 이상의 비트 심도를 사용한 영상 부호화 방법은, 부호화할 입력 영상을 획득하는 단계(S300), 획득한 입력 영상을 내부 비트 심도에 기초하여 1차 부호화를 수행하는 단계(S310), 상기 1 차 부호화가 수행된 입력 영상을 외부 비트 심도로 변환하는 단계(S320) 및 외부 비트 심도로 변환된 입력 영상에 대하여 2 차 부호화를 수행하여 비트스트림을 생성하는 단계(S330)를 포함할 수 있다.
여기서 상기 내부 비트 심도는 상기 외부 비트 심도보다 더 큰 값을 가질 수 있다.
도 13은 본 발명의 일 실시예에 따른 두 개 이상의 비트 심도를 사용한 영상 복호화 방법에 대한 흐름도이다.
도 13을 참조하면, 두 개 이상의 비트 심도를 사용한 영상 복호화 방법은, 비트스트림을 수신하는 단계(S400), 수신된 비트스트림을 1차 복호화하여 외부 비트 심도로 구성된 영상 데이터를 획득하는 단계(S410), 획득한 영상 데이터를 내부 비트 심도로 변환하는 단계(S420) 및 내부 비트 심도로 변환된 영상 데이터를 2차 복호화하여 복호화된 영상을 획득하는 단계(S430)를 포함할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 영상 부호화 장치에서 수행되는, 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법으로,
    부호화할 입력 영상을 획득하는 단계;
    획득한 입력 영상에 포함된 제1 단위영상을 구성하는 화소값(pixel)의 범위를 획득하는 단계;
    상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계; 및
    부호화된 화소값 범위를 포함하는 비트스트림을 생성하는 단계를 포함하는, 영상 부호화 방법.
  2. 청구항 1에서,
    상기 제1 단위영상은,
    픽쳐, 슬라이스, 타일, 블록 중 하나의 단위로 이루어진 영상인, 영상 부호화 방법.
  3. 청구항 1에서,
    상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계는,
    상기 제1 단위영상을 구성하는 화소값의 최대값과 비트 심도(bit depth)에 기초한 최대 화소값 사이의 차분값을 부호화하는 단계를 포함하는, 영상 부호화 방법.
  4. 청구항 1에서,
    상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계는,
    상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역(band)을 지시하는 대역 정보를 생성하는 단계를 포함하는, 영상 부호화 방법.
  5. 청구항 4에서,
    상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계는,
    상기 대역 정보를 생성하는 단계 이후에,
    상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역 내에서의 위치를 지시하는 대역 위치 정보를 생성하는 단계를 더 포함하는, 영상 부호화 방법.
  6. 청구항 5에서,
    상기 대역 위치 정보를 생성하는 단계는,
    상기 최대값 또는 상기 최소값이 속하는 대역에 대한 대표값이 미리 설정되지 않은 경우에 수행되는, 영상 부호화 방법.
  7. 청구항 6에서,
    상기 대표값은,
    상기 최대값 또는 상기 최소값이 속하는 대역에서의 최대 화소값, 최소 화소값 및 중간값 중 하나인, 영상 부호화 방법.
  8. 청구항 4에서,
    상기 대역 정보를 생성하는 단계는,
    상기 최대값 및 상기 최소값 중 어느 하나가 속하는 대역에 대한 대역 정보를 생성하는 단계; 및
    생성된 대역 정보를 예측값으로 하여 나머지 하나가 속하는 대역에 대한 대역 정보를 생성하는 단계를 포함하는, 영상 부호화 방법.
  9. 청구항 1에서,
    상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계는,
    부호화가 완료된 다른 단위 영상을 구성하는 화소값 범위를 획득하는 단계; 및
    상기 다른 단위 영상을 구성하는 화소값의 범위를 예측값으로 하여 상기 제1 단위 영상을 구성하는 화소값의 범위를 부호화하는 단계를 포함하는, 영상 부호화 방법.
  10. 청구항 9에서,
    상기 제1 단위 영상을 구성하는 화소값의 범위를 부호화하는 단계는,
    상기 다른 단위 영상을 구성하는 화소값의 범위와 상기 제1 단위 영상을 구성하는 화소값의 범위가 속하는 대역이 같은지 여부를 지시하는 구문정보를 생성하는 단계를 포함하는, 영상 부호화 방법.
  11. 영상 복호화 장치에서 수행되는 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법으로,
    비트스트림을 수신하는 단계;
    수신된 비트스트림에 포함된 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계; 및
    획득한 화소값의 범위 정보를 기초로 상기 제1 단위영상에 대한 복호화를 수행하는 단계를 포함하는, 영상 복호화 방법.
  12. 청구항 11에서,
    상기 제1 단위영상은,
    픽쳐, 슬라이스, 타일, 블록 중 하나의 단위로 이루어진 영상인, 영상 복호화 방법.
  13. 청구항 11에서,
    상기 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계는,
    상기 비트스트림으로부터 상기 제1 단위 영상을 구성하는 화소값의 최대값과 비트 심도(bit depth)에 기초한 최대 화소값 사이의 차분값을 획득하는 단계; 및
    상기 차분값에 기초하여 상기 제1 단위 영상을 구성하는 화소값의 최대값을 획득하는 단계를 포함하는, 영상 복호화 방법.
  14. 청구항 11에서,
    상기 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계는,
    상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역(band)을 지시하는 대역 정보를 획득하는 단계를 포함하는, 영상 복호화 방법.
  15. 청구항 14에서,
    상기 대역 정보를 획득하는 단계 이후에,
    상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역 내에서의 위치를 지시하는 대역 위치 정보를 획득하는 단계를 포함하는, 영상 복호화 방법.
  16. 청구항 15에서,
    상기 대역 위치 정보를 획득하는 단계는,
    상기 최대값 또는 상기 최소값이 속하는 대역에 대한 대표값이 미리 설정되지 않은 경우에 수행되는, 영상 복호화 방법.
  17. 청구항 16에서,
    상기 대표값은,
    상기 최대값 또는 상기 최소값이 속하는 대역에서의 최대 화소값, 최소 화소값 및 중간값 중 하나인, 영상 복호화 방법.
  18. 청구항 14에서,
    상기 대역 정보를 획득하는 단계는,
    상기 최대값 및 상기 최소값 중 어느 하나가 속하는 대역에 대한 대역 정보를 획득하는 단계; 및
    획득된 대역 정보를 예측값으로 하여 나머지 하나가 속하는 대역에 대한 대역 정보를 획득하는 단계를 포함하는, 영상 복호화 방법.
  19. 청구항 11에서,
    상기 대역 정보를 획득하는 단계는,
    복호화가 완료된 다른 단위 영상을 구성하는 화소값 범위를 획득하는 단계; 및
    상기 다른 단위 영상을 구성하는 화소값의 범위를 예측값으로 하여 상기 제1 단위 영상을 구성하는 화소값의 범위를 획득하는 단계를 포함하는, 영상 복호화 방법.
  20. 두 개 이상의 비트 심도를 사용한 영상 부호화 방법으로,
    부호화할 입력 영상을 획득하는 단계;
    획득한 입력 영상을 내부 비트 심도에 기초하여 1차 부호화를 수행하는 단계;
    상기 1 차 부호화가 수행된 입력 영상을 외부 비트 심도로 변환하는 단계; 및
    외부 비트 심도로 변환된 입력 영상에 대하여 2 차 부호화를 수행하여 비트스트림을 생성하는 단계를 포함하고,
    상기 내부 비트 심도는 상기 외부 비트 심도보다 더 큰 값을 갖는, 영상 부호화 방법.
KR1020197027157A 2017-03-22 2018-03-22 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법 KR20190123745A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237033058A KR20230143626A (ko) 2017-03-22 2018-03-22 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20170036369 2017-03-22
KR1020170036369 2017-03-22
PCT/KR2018/003350 WO2018174591A1 (ko) 2017-03-22 2018-03-22 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237033058A Division KR20230143626A (ko) 2017-03-22 2018-03-22 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법

Publications (1)

Publication Number Publication Date
KR20190123745A true KR20190123745A (ko) 2019-11-01

Family

ID=63585611

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237033058A KR20230143626A (ko) 2017-03-22 2018-03-22 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법
KR1020197027157A KR20190123745A (ko) 2017-03-22 2018-03-22 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020237033058A KR20230143626A (ko) 2017-03-22 2018-03-22 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법

Country Status (3)

Country Link
US (3) US20200036978A1 (ko)
KR (2) KR20230143626A (ko)
WO (1) WO2018174591A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018123801A1 (ja) * 2016-12-28 2018-07-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元モデル配信方法、三次元モデル受信方法、三次元モデル配信装置及び三次元モデル受信装置
CN112788338B (zh) * 2020-12-31 2022-08-26 展讯通信(天津)有限公司 图像压缩及解压缩方法、设备、装置和存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4003483B2 (ja) 2002-02-28 2007-11-07 株式会社デンソーウェーブ 情報コード読取装置
EP1355484B1 (en) 2002-04-17 2017-03-01 Canon Kabushiki Kaisha Image compression method and apparatus, and image coding method and apparatus
JP4035456B2 (ja) * 2002-11-27 2008-01-23 キヤノン株式会社 画像圧縮方法、画像圧縮装置
TWI323129B (en) * 2006-05-17 2010-04-01 Novatek Microelectronics Corp Block truncation coding (btc) method and apparatus
US8345763B2 (en) * 2007-11-27 2013-01-01 Mediatek Inc. Motion compensation method and integrated circuit utilizing the same
US9386304B2 (en) * 2008-11-11 2016-07-05 Cisco Technology, Inc. Digital video compression system, method and computer readable medium
US8902985B2 (en) * 2009-06-22 2014-12-02 Panasonic Intellectual Property Corporation Of America Image coding method and image coding apparatus for determining coding conditions based on spatial-activity value
KR101710623B1 (ko) * 2010-04-05 2017-03-09 삼성전자주식회사 컨텐트에 기반한 다이나믹 레인지 변환을 이용하는 비디오 부호화 방법과 그 장치, 및 컨텐트에 기반한 다이나믹 레인지 변환을 이용하는 비디오 복호화 방법과 그 장치
WO2011126272A2 (en) 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using dynamic-range transformation, and method and apparatus for decoding video by using dynamic-range transformation
KR101885258B1 (ko) 2010-05-14 2018-08-06 삼성전자주식회사 비디오 신호의 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
PT3849194T (pt) 2010-09-27 2022-09-13 Lg Electronics Inc Método para particionar bloco e dispositivo de descodificação
JP5281623B2 (ja) 2010-09-29 2013-09-04 日本電信電話株式会社 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置およびそれらのプログラム
HUE063103T2 (hu) * 2010-11-04 2023-12-28 Ge Video Compression Llc Blokk összefûzést és átugrási módot támogató képkódolás
US9521434B2 (en) 2011-06-09 2016-12-13 Qualcomm Incorporated Internal bit depth increase in video coding
SG10201605050RA (en) * 2012-06-11 2016-08-30 Samsung Electronics Co Ltd Method and apparatus for encoding videos sharing sao parameter according to color component
TWI595776B (zh) * 2012-06-27 2017-08-11 Sony Corp Image processing device and method
WO2015033510A1 (ja) 2013-09-09 2015-03-12 日本電気株式会社 映像符号化装置、映像符号化方法及びプログラム
US10271052B2 (en) 2014-03-14 2019-04-23 Qualcomm Incorporated Universal color-space inverse transform coding
CN107852492A (zh) 2015-05-12 2018-03-27 三星电子株式会社 用于对图像进行编码和解码的方法和设备
WO2017114450A1 (en) * 2015-12-31 2017-07-06 Mediatek Inc. Method and apparatus of prediction binary tree structure for video and image coding

Also Published As

Publication number Publication date
US11509895B2 (en) 2022-11-22
WO2018174591A1 (ko) 2018-09-27
KR20230143626A (ko) 2023-10-12
US11949865B2 (en) 2024-04-02
US20210203935A1 (en) 2021-07-01
US20200036978A1 (en) 2020-01-30
US20230043566A1 (en) 2023-02-09

Similar Documents

Publication Publication Date Title
KR102313195B1 (ko) 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
JP7266515B2 (ja) 映像符号化方法及び装置、並びに映像復号化方法及び装置
CN110679149B (zh) 基于自适应像素分类基准的环路滤波方法
JP6074476B2 (ja) 映像データを復号化する装置
KR102540995B1 (ko) 휘도 샘플을 이용한 색차 블록의 화면 내 예측 방법 및 이러한 방법을 사용하는 장치
US11659174B2 (en) Image encoding method/device, image decoding method/device and recording medium having bitstream stored therein
KR20180049130A (ko) 참조 픽쳐 리스트 관리 방법 및 이러한 방법을 사용하는 장치
WO2013066026A1 (ko) 양자화 계수 부/복호화 방법 및 이러한 방법을 사용하는 장치
US11949865B2 (en) Image encoding/decoding method using pixel value range constituting image
JP7399973B2 (ja) イントラ予測ベースのビデオ信号処理方法及び装置
US20220368901A1 (en) Image encoding method/device, image decoding method/device and recording medium having bitstream stored therein
KR102480967B1 (ko) 영상 부호화/복호화 방법 및 장치
KR20230035009A (ko) 양자화 행렬의 부호화 방법 및 복호화 방법과 이를 이용하는 장치
KR20180080114A (ko) 예측 블록의 중복성을 고려한 화면 내 예측 방법 및 화면 내 예측을 수행하는 영상 복호화 장치
US20240089455A1 (en) Method and for reconstructing chroma block and video decoding apparatus
KR20190008809A (ko) 복수의 참조 화소 계층을 지원하는 영상 복호화 방법 및 장치
KR20190142751A (ko) 영상 부호화/복호화 방법 및 장치
KR20210033834A (ko) 블록 분할 트리 구조에 따른 변환 계수 부호화 및 복호화 방법과 장치

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E801 Decision on dismissal of amendment
X601 Decision of rejection after re-examination
A107 Divisional application of patent