KR20240108461A - 디코딩 방법, 인코딩 방법 및 장치 - Google Patents

디코딩 방법, 인코딩 방법 및 장치

Info

Publication number
KR20240108461A
KR20240108461A KR1020247019244A KR20247019244A KR20240108461A KR 20240108461 A KR20240108461 A KR 20240108461A KR 1020247019244 A KR1020247019244 A KR 1020247019244A KR 20247019244 A KR20247019244 A KR 20247019244A KR 20240108461 A KR20240108461 A KR 20240108461A
Authority
KR
South Korea
Prior art keywords
value
picture
decoding
information
video
Prior art date
Application number
KR1020247019244A
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 KR20240108461A publication Critical patent/KR20240108461A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters

Abstract

픽처의 디코딩 방법, 인코딩 방법 및 장치로서, 비디오 인코딩 및 디코딩 분야에 관한 것이다. 당해 디코딩 방법은: 우선, 비트 스트림을 해석하여 하나 또는 복수 개의 픽처 프레임을 획득하는 단계 - 하나의 픽처 프레임이 하나 또는 복수 개의 CU를 포함함 -; 다음에, 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계 - 하나의 CU는 복수 개의 QG를 포함하고, 하나의 QG는 하나의 QP 값에 대응함 -; 마지막으로, 상기 복수 개의 QP 값에 의거하여 상기 하나의 픽처 프레임에 대해 디코딩을 수행하는 단계를 포함한다.

Description

디코딩 방법, 인코딩 방법 및 장치
본 출원은 2021년 11월 11일에 제출되고, 신청 번호가 202111334223.8인 중국 특허 신청의 우선권을 주장하는 바, 당해 신청은 인용의 방식을 통해 본문에 통합된다.
본 출원은 비디오 인코딩 및 디코딩 분야에 관한 것이며, 특히 픽처의 디코딩 방법, 인코딩 방법 및 장치에 관한 것이다.
비디오 인코딩 및 디코딩 기술 중, 비디오 압축 기술은 특히 중요하다. 비디오 압축 기술은 공간(픽처 내) 예측 및/또는 시간(픽처 사이) 예측을 수행하여, 비디오 시퀀스 중 고유의 리던던시 정보를 줄이거나 또는 제거한다. 비디오 압축의 기본 원리는, 공간 영역, 시간 영역 및 코드워드(codeword) 사이의 상관성에 대해 양자화를 수행하여, 되도록 리던던시를 제거한다. 양자화(quantization)는 신호의 연속 값(또는 대량의 이산 값)을 한정된 복수 개의 이산 폭 이산 값으로 맵핑시키는 과정을 가리키며, 신호 값의 다대일(many-to-one)의 맵핑을 구현한다.
현재의 기술적 해결 방안은, 한 프레임의 픽처에 포함된 하나 또는 복수 개의 코딩 유닛(coding unit, CU)에 대해, 인코더측이 각 CU의 양자화 파라미터(quantization parameter, QP)를 획득하고, 또한 당해 QP에 의거하여 CU에 대해 인코딩을 수행하여 비트 스트림을 획득하며; 상응하게, 디코더측은 비트 스트림에 대해 역양자화(dequantization)를 수행하여, CU의 QP를 획득하고, 또한 당해 QP에 의거하여 CU에 대해 디코딩을 수행한다. CU는 픽처 내용에 의거하여 분할되고, 인코더측 및 디코더측은 하나의 CU에 대응하는 픽처 내용에 대해 동일한 QP 양자화를 이용하여, 픽처 인코딩 및 디코딩 과정의 양자화 왜곡이 큰 것을 초래한다.
본 출원은 픽처의 디코딩 방법, 인코딩 방법 및 장치를 제공하여, 픽처 인코딩 및 디코딩 과정의 양자화 왜곡이 큰 문제점을 해결한다.
본 출원은 아래와 같은 기술적 해결 방안을 이용한다.
제1 양태에 있어서, 본 출원은 픽처의 디코딩 방법을 제공하는 바, 상기 방법은 비디오 디코딩 시스템에 사용될 수 있거나, 또는 당해 방법은 비디오 디코딩을 지원하여 당해 방법을 구현할 수 있는 디코더측에 사용될 수 있는 바, 예컨대 당해 디코더측은 비디오 디코더를 포함하고, 상기 방법은: 우선, 비트 스트림을 해석하여 하나 또는 복수 개의 픽처 프레임을 획득하는 단계 - 하나의 픽처 프레임이 하나 또는 복수 개의 CU를 포함함 -; 다음에, 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계 - 하나의 CU는 복수 개의 QG를 포함하고, 하나의 QG는 하나의 QP 값에 대응함 -; 마지막으로, 상기 복수 개의 QP 값에 의거하여 상기 하나의 픽처 프레임에 대해 디코딩을 수행하는 단계를 포함한다.
하나의 CU 중 모든 잔차 계수가 모두 동일한 QP 값을 사용하여 픽처 왜곡이 큰 것을 초래하는 것에 비해, 본 실시예의 비디오 픽처의 디코딩 과정 중, 하나의 CU는 복수 개의 QG로 분할될 수 있으며, 각 QG 중의 하나 또는 복수 개의 잔차 계수는 하나의 QP 값을 공유하고, 나아가, 비디오 디코더는 픽처 프레임에 대응하는 하나 또는 복수 개의 CU에 대해 더 정밀한 입도의 QP 결책을 수행하여, 일정한 압축률을 확보하는 상황 하에, 픽처 프레임의 디코딩 왜곡을 낮추고, 비디오 픽처 디코딩의 진실성과 정확성을 향상시킨다.
일 선택 가능한 구현 방식에서, 상기 하나의 CU는 복수 개의 잔차 계수를 포함하고, 상기 하나의 QG는 상기 복수 개의 잔차 계수 중 일부 잔차 계수를 포함하며, 상기 일부 잔차 계수는 상기 하나의 QP 값을 공유한다.
일 선택 가능한 구현 방식에서, 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하기 전에, 상기 방법은: 제1 규칙에 따라 상기 하나의 픽처 프레임에 포함된 하나의 CU를 분할하여, 상기 복수 개의 QG를 획득하는 단계를 더 포함하며; 여기서, 상기 제1 규칙은 분할 영역과 분할 방식을 포함하고, 상기 분할 영역이 변환 영역 또는 픽셀 영역이며, 상기 분할 방식은 균일 분할 및 비균일 분할 중 적어도 하나를 포함한다.
일 선택 가능한 구현 방식에서, 상기 하나의 CU는 복수 개의 잔차 계수를 포함하고, 상기 복수 개의 잔차 계수의 위치는 좌표에 의해 표기되고, 상기 좌표는 횡좌표 및 종좌표를 포함한다. 만약 상기 분할 영역이 변환 영역이면, 제1 규칙에 따라 상기 하나의 픽처 프레임에 포함된 하나의 CU를 분할하여, 상기 복수 개의 QG를 획득하는 단계는: 상기 복수 개의 잔차 계수 중, 좌표 및 제1 좌표 임계값에 도달하지 않은 잔차 계수를 제1 QG로 분할하고, 상기 좌표 및 상기 제1 좌표 임계값에 도달한 잔차 계수를 제2 QG로 분할하는 단계를 포함하고; 상기 좌표 합이 잔차 계수의 횡좌표와 종좌표의 합이다.
또는, 상기 복수 개의 잔차 계수 중, 좌표 및 제1 좌표 임계값에 도달하지 않은 잔차 계수를 제1 QG로 분할하고, 상기 좌표 합이 상기 제1 좌표 임계값에 도달한 잔차 계수, 제2 좌표 임계값에 도달하지 않은 잔차 계수를 제2 QG로 분할하고, 상기 좌표 합이 상기 제2 좌표 임계값에 도달한 잔차 계수를 제3 QG로 분할하고; 상기 제2 좌표 임계값이 상기 제1 좌표 임계값보다 크다.
일 선택 가능한 구현 방식에서, 상기 하나의 CU는 복수 개의 잔차 계수를 포함하고, 만약 상기 분할 영역이 변환 영역이면, 제1 규칙에 따라 상기 하나의 픽처 프레임에 포함된 하나의 CU를 분할하여, 상기 복수 개의 QG를 획득하는 단계는:
상기 복수 개의 잔차 계수에 대해 정렬을 수행하여, 상기 복수 개의 잔차 계수 중 제1 비례 임계값에 도달하지 않은 잔차 계수를 제1 QG로 분할하고, 상기 제1 비례 임계값에 도달한 잔차 계수를 제2 QG로 분할하는 단계를 포함하고; 상기 복수 개의 잔차 계수의 정렬 방식은 Z자형, 역방향 Z자형 중 임의의 하나이다.
또는, 상기 복수 개의 잔차 계수에 대해 정렬을 수행하여, 상기 복수 개의 잔차 계수 중 제1 비례 임계값에 도달하지 않은 잔차 계수를 제1 QG로 분할하고, 상기 제1 비례 임계값에 도달하지만 제2 비례 임계값에 도달하지 않은 잔차 계수를 제2 QG로 분할하고, 상기 제2 비례 임계값에 도달한 잔차 계수를 제3 QG로 분할하는 단계를 포함하며; 상기 제2 비례 임계값은 상기 제1 비례 임계값보다 크다.
일 선택 가능한 구현 방식에서, 상기 하나의 CU는 복수 개의 잔차 계수를 포함하고, 만약 상기 분할 영역이 픽셀 영역이면, 제1 규칙에 따라 상기 하나의 픽처 프레임에 포함된 하나의 CU를 분할하여, 상기 복수 개의 QG를 획득하는 단계는: 상기 복수 개의 잔차 계수에 대해 수평 또는 수직 방향의 대칭 분할을 수행하여, 포함된 잔차 계수의 수량이 일치한 2개 QG를 획득하는 단계를 포함한다.
또는, 상기 복수 개의 잔차 계수에 대해 수평 또는 수직 방향의 대칭 분할을 수행하여, 3개 QG를 획득하는 단계를 포함하며; 상기 3개 QG 중 2개의 서로 인접하지 않은 QG가 포함하는 잔차 계수의 수량이 일치하고, 또한 다른 하나의 QG가 포함하는 잔차 계수의 수량이 상기 2개의 서로 인접하지 않는 QG가 포함하는 잔차 계수의 수량 합과 일치하다.
또는, 상기 복수 개의 잔차 계수를 수평 또는 수직 방향으로 분할하여, 포함된 잔차 계수의 수량이 일치하지 않은 2개 QG를 획득한다.
또는, 상기 복수 개의 잔차 계수를 수평 또는 수직 방향으로 분할하여, 3개 QG를 획득하고; 상기 3개 QG가 포함하는 잔차 계수에 대칭 관계가 존재하지 않는다.
일 선택 가능한 구현 방식에서, 상기 하나의 QG에 대응하는 하나의 QP 값은 휘도 QP 값 및 색차 QP 값을 포함한다. 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계는: 상기 하나의 QG의 휘도 QP 값 및 색차 QP 값을 각각 획득하는 단계를 포함한다.
또는, 상기 하나의 QG의 휘도 QP 값을 획득하는 단계; 상기 휘도QP 값에 기초하여 상기 하나의 QG의 색차QP 값을 결정하는 단계를 포함한다.
일 선택 가능한 구현 방식에서, 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계는: 상기 비트 스트림을 해석하여 상기 하나의 픽처 프레임의 표기 정보를 획득하는 단계를 포함하고, 상기 표기 정보는 상기 하나의 QG의 QP 값을 지시하는 데에 사용되거나, 및/또는, 상기 표기 정보는 상기 하나의 CU의 QP 값을 지시하는 데에 사용된다.
일 선택 가능한 구현 방식에서, 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계는: 첫째, 상기 비트 스트림을 해석하여 상기 하나의 픽처 프레임의 표기 정보를 획득하는 단계 - 상기 표기 정보는 상기 하나의 QG의 QP 오프셋을 지시하는 데에 사용됨 -; 둘째, 상기 하나의 QG의 예측 QP 값 및 상기 표기 정보에 의거하여, 상기 하나의 QG의 QP 값을 결정하는 단계를 포함한다.
일 선택 가능한 구현 방식에서, 상기 하나의 QG의 예측 QP 값 및 상기 표기 정보에 의거하여, 상기 하나의 QG의 QP 값을 결정하는 단계는: 상기 하나의 QG의 예측 QP 값을 획득하고, 또한 상기 하나의 QG의 예측 QP 값과 상기 QP 오프셋의 합을 상기 하나의 QG의 QP 값으로 이용하는 단계를 포함한다.
일 선택 가능한 구현 방식에서, 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계는: 상기 하나의 QG의 예측 QP 값을 획득하고, 또한 상기 하나의 QG의 예측 QP 값 및 도출 정보에 의거하여 상기 하나의 QG의 QP 값을 결정하는 단계를 포함하고; 여기서, 상기 도출 정보가 상기 하나의 QG의 평탄도 정보 또는 텍스처 정도(texture degree) 정보, 상기 비트 스트림 버퍼의 남은 공간 또는 왜곡 구속 정보 중 임의의 하나 또는 몇 개의 조합을 포함한다.
일 선택 가능한 구현 방식에서, 만약 상기 도출 정보가 상기 왜곡 구속 정보이고, 상기 왜곡 구속 정보가 상기 복수 개의 QG 중 임의의 하나의 QG의 왜곡 임계값을 가리키면, 상기 하나의 QG의 예측 QP 값 및 도출 정보에 의거하여 상기 하나의 QG의 QP 값을 결정하는 단계는: 상기 예측 QP 값에 대응하는 예측 왜곡을 결정하는 단계; 만약 상기 예측 왜곡이 상기 이 왜곡 임계값보다 작거나 같으면, 상기 예측 QP 값을 상기 QG의 QP 값으로 이용하는 단계; 만약 상기 예측 왜곡이 상기 왜곡 임계값보다 크면, 상기 왜곡 임계값에 의해 결정된 QP 값을 상기 QG의 QP 값으로 이용하는 단계를 포함한다.
일 선택 가능한 구현 방식에서, 만약 상기 도출 정보가 상기 하나의 QG의 내용 정보 또는 상기 비트 스트림 버퍼의 남은 공간이면, 상기 하나의 QG의 예측 QP 값 및 도출 정보에 의거하여 상기 하나의 QG의 QP 값을 결정하는 단계는: 상기 도출 정보에 의거하여 상기 하나의 QG의 QP 오프셋을 결정하는 단계; 상기 하나의 QG의 예측 QP 값과 상기 QP 오프셋의 합을 상기 하나의 QG의 QP 값으로 이용하는 단계를 포함한다.
일 선택 가능한 구현 방식에서, 상기 하나의 QG의 예측 QP 값을 획득하는 단계는: 상기 하나의 CU 중 상기 하나의 QG와 인접한 적어도 하나의 기타 QG의 QP 값을 획득하는 단계; 상기 적어도 하나의 기타 QG의 QP 값에 의거하여 상기 하나의 QG의 예측 QP 값을 결정하는 단계를 포함한다.
또는, 상기 하나의 CU의 QP 값을 상기 하나의 QG의 예측 QP 값으로 이용하는 단계를 포함한다.
일 선택 가능한 구현 방식에서, 상기 하나의 픽처 프레임은 적어도 제1 부분 CU 및 제2 부분 CU를 포함하고, 상기 제1 부분 CU 및 상기 제2 부분 CU는 중첩 영역을 구비하지 않고, 또한 상기 제1 부분 CU 및 상기 제2 부분 CU의 QP 값의 획득 방식이 상이하다.
일 선택 가능한 구현 방식에서, 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계는: 상기 비트 스트림을 해석하여 상기 하나의 픽처 프레임의 표기 정보를 획득하는 단계 - 상기 표기 정보는 상기 제1 부분 CU의 QP 오프셋을 포함함 -; 상기 표기 정보에 의거하여 상기 제1 부분 CU의 QP 값을 결정하는 단계를 포함한다. 또한, 상기 제2 부분 CU에 대해, 상기 제2 부분 CU의 예측 QP 값을 획득하고; 상기 제2 부분 CU의 예측 QP 값 및 도출 정보에 의거하여, 상기 제2 부분 CU의 QP 값을 결정하며; 여기서, 상기 도출 정보가 상기 제2 부분 CU의 평탄도 정보 또는 텍스처 정도 정보, 상기 비트 스트림 버퍼의 남은 공간 또는 왜곡 구속 정보 중 임의의 하나 또는 몇 개의 조합을 포함한다.
일 선택 가능한 구현 방식에서, 상기 복수 개의 QP 값에 의거하여 상기 하나의 픽처 프레임에 대해 디코딩을 수행하는 단계는: 우선, 상기 복수 개의 QP 값 중 각 QP 값에 대해, 상기 QP 값에 대응하는 양자화 보폭 Qstep을 획득하는 단계; 다음에, 상기 QP 값에 대응하는 QG에 포함된 레벨을 획득하는 단계; 마지막으로, 선택된 양자화기의 조합에 의거하여, 상기 QG의 레벨에 대해 역양자화를 수행하는 단계를 포함하며; 상기 양자화기의 조합이 하나 또는 복수 개의 양자화기를 포함한다. 예시적으로, 상기 양자화기가 균일 양자화기 또는 비균일 양자화기다.
일 선택 가능한 구현 방식에서, 상기 양자화기의 조합은 상기 비트 스트림에 휴대된 표기 정보를 통해 결정되거나, 또는, 잔차 계수의 상기 QG에서의 분포 상황에 따라 결정된다.
일 선택 가능한 구현 방식에서, 상기 QG의 레벨에 대해 역양자화를 수행하는 단계는 아래 단계를 포함한다: 우선, 상기 QG의 분할 영역 타입을 결정한다. 다음에, 만약 상기 QG가 분할 영역 타입이 변환 영역이면, 상기 디코더측의 행렬 템플릿 라이버러리로부터 상기 QG의 파라미터 정보와 매칭하는 양자화 행렬을 선택하고; 상기 행렬 템플릿 라이버러리는 여러 가지 타입의 양자화 행렬 템플릿을 포함하고, 상기 파라미터 정보는 상기 QG의 사이즈, 상기 QG가 소재하는 CU의 사이즈, 휘도 및 색차 채널 정보 및 평탄도 정보 중 임의의 한 가지 또는 여러 가지 조합을 포함한다. 마지막으로, 상기 QG의 양자화 행렬을 이용하여 상기 QG 중의 레벨에 대해 역양자화를 수행하여, 상기 QG의 잔차 계수를 획득한다.
일 선택 가능한 구현 방식에서, 상기 여러 가지 타입의 양자화 행렬 템플릿은 평탄 블록 템플릿 및 텍스처 블록 템플릿을 포함하고; 상기 평탄 블록 템플릿 중 주파수가 주파수 임계값보다 높은 잔차 계수의 Qstep이 상기 평탄 블록 템플릿 중 주파수가 상기 주파수 임계값에 도달하지 않은 잔차 계수의 Qstep보다 크거나 같으며; 상기 텍스처 블록 템플릿 중 주파수가 주파수 임계값보다 높은 잔차 계수의 Qstep이 상기 텍스처 블록 템플릿 중 주파수가 상기 주파수 임계값에 도달하지 않은 잔차 계수의 Qstep보다 작거나 같다.
일 선택 가능한 구현 방식에서, 상기 행렬 템플릿 라이버러리에 포함된 양자화 행렬 템플릿은: 이산 코사인 변환(discrete cosine transform, DCT), 이산 사인 변환(discrete sine transform, DST), 정수 변환 또는 이산 웨이브 변환(discrete wave transform, DWT) 중 임의의 한 가지 또는 여러 가지 타입의 변환 방식에 의해 획득된다.
일 선택 가능한 구현 방식에서, 상기 하나의 QG가 상기 하나의 픽처 프레임의 하나 또는 복수 개의 픽셀 포인트를 포함한다.
일 선택 가능한 구현 방식에서, 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계는: 상기 비트 스트림을 해석하여 상기 하나의 CU 중 표기된 하나 또는 복수 개의 QG를 결정하는 단계; 상기 표기된 하나 또는 복수 개의 QG는 디코딩 과정 중 역양자화의 수행이 필요하며, 상기 하나의 CU 중 표기되지 않은 QG는 역양자화를 수행하지 않는 단계; 상기 표기된 하나 또는 복수 개의 QG 중 각 QG에 대해, 상기 각 QG의 QP 값을 획득하는 단계를 포함한다.
또는, 상기 하나의 CU에 포함된 모든 QG의스캔 순서를 결정하는 단계 - 상기 스캔 순서는 상에서 하로, 좌에서 우로, Z자형 또는 역방향 Z자형 순서 중 임의의 하나 또는 몇 개의 조합을 포함함 -; 상기 모든 QG 중의 각 QG에 대해, 상기 스캔 순서에 따라 상기 각 QG의 QP 값을 획득하는 단계를 포함한다.
일 선택 가능한 구현 방식에서, 상기 복수 개의 QG 중 적어도 2개 QG에 대응하는 QP 값이 상이하다.
제2 양태에 있어서, 본 출원은 픽처의 디코딩 방법으로서, 상기 방법은 비디오 디코딩 시스템에 사용될 수 있거나, 또는 당해 방법은 비디오 디코딩을 지원하여 당해 방법을 구현할 수 있는 디코더측에 사용될 수 있는 바, 상기 방법은 디코더측에 의해 수행되고, 상기 방법은: 비트 스트림을 해석하여 하나 또는 복수 개의 픽처 프레임을 획득하는 단계 - 하나의 픽처 프레임이 하나 또는 복수 개의 CU를 포함함 -; 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계 - 하나의 CU가 복수 개의 픽셀 포인트를 포함하고, 하나의 픽셀 포인트가 하나의 QP 값에 대응하며, 상기 복수 개의 픽셀 포인트 중 적어도 2개 픽셀 포인트의 QP 값이 상이함 -; 상기 복수 개의 QP 값에 의거하여 상기 하나의 픽처 프레임에 대해 디코딩을 수행하는 단계를 포함한다.
일 선택 가능한 구현 방식에서, 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계는: 상기 하나의 픽셀 포인트의 예측 QP 값을 획득하고, 또한 상기 하나의 픽셀 포인트의 예측 QP 값 및 도출 정보에 의거하여, 상기 하나의 픽셀 포인트의 QP 값을 결정하는 단계를 포함하며; 여기서, 도출 정보가 상기 하나의 픽셀 포인트 주변의 하나 또는 복수 개의 재구축된 픽셀 포인트의 정보이다
다른 일 선택 가능한 구현 방식에서, 상기 하나의 픽셀 포인트의 예측 QP 값이 상기 하나의 픽셀 포인트가 소재하는 CU 또는 QG의 QP 값이거나, 또는 상기 하나의 픽셀 포인트 주변의 하나 또는 복수 개의 이미 재구축된 픽셀 포인트의 QP 값에 기반하여 도출하여 얻은 것이며, 여기서, 도출하는 방법은 평균값, 중앙값 또는 최빈수 중 적어도 하나를 계산하는 것을 포함한다.
다른 일 선택 가능한 구현 방식에서, 상기 이미 재구축된 픽셀 포인트는 상기 하나의 픽셀 포인트를 중심으로, 길이가 3 또는 5인 정사각형 영역 내의 픽셀 포인트, 또는 대각선 길이가 3 또는 5인 능형 영역 내의 픽셀 포인트이다.
다른 일 선택 가능한 구현 방식에서, 상기 이미 재구축된 픽셀 포인트의 정보는 픽셀 값, 평탄도 정보 또는 텍스처 정도 정보, 배경 밝기, 콘트라스트(contrast) 중 임의의 하나 또는 몇 개의 조합을 포함한다.
다른 일 선택 가능한 구현 방식에서, 상기 하나의 픽셀 포인트의 예측 QP 값 및 도출 정보에 의거하여, 상기 하나의 픽셀 포인트의 QP 값을 결정하는 단계는: 상기 하나의 픽셀 포인트 주변의 하나 또는 복수 개의 재구축된 픽셀 포인트의 정보에 기반하여 상기 픽셀 포인트의 지시 정보를 결정하는 단계; 만약 상기 지시 정보가 제1 임계값보다 작거나 같고, 또한 상기 예측 QP 값이 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값보다 크거나 같으면, 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값을 상기 픽셀 포인트의 QP 값으로 이용하는 단계를 포함한다. 여기서, 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값이 기설정된 값(예컨대 인코더측 또는 디코더측에 기설정된 픽처 레벨 또는 CU 레벨 정보)이고, 상기 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값을 비트 스트림으로부터 해석하여 얻거나(픽처 레벨 또는 CU 레벨 전송), 또는, 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값을 주변의 재구축된 CU의 평탄도 정보 또는 텍스처 정도 정보, 배경 밝기, 콘트라스트 정보에 기반하여 도출하여 얻는다.
제3 양태에 있어서, 본 출원은 픽처의 인코딩 방법을 제공하는 바, 상기 방법은 비디오 디코딩 시스템에 사용될 수 있거나, 또는 당해 방법은 비디오 디코딩을 지원하여 당해 방법을 구현할 수 있는 인코더측에 사용될 수 있는 바, 상기 방법은 인코더측에 의해 수행되고, 상기 방법은: 하나의 픽처 프레임을 하나 또는 복수 개의 CU로 분할하는 단계; 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계 - 하나의 CU는 복수 개의 QG를 포함하고, 하나의 QG는 하나의 QP 값에 대응함 -; 상기 복수 개의 QP 값에 의거하여 상기 하나의 픽처 프레임에 대해 인코딩을 수행하는 단계를 포함한다.
제4 양태에 있어서, 본 출원은 픽처의 인코딩 방법을 제공하는 바, 상기 방법은 비디오 디코딩 시스템에 사용될 수 있거나, 또는 당해 방법은 비디오 디코딩을 지원하여 당해 방법을 구현할 수 있는 인코더측에 사용될 수 있는 바, 상기 방법은 인코더측에 의해 수행되고, 상기 방법은: 하나의 픽처 프레임을 하나 또는 복수 개의 CU로 분할하는 단계; 상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계 - 하나의 CU가 복수 개의 픽셀 포인트를 포함하고, 하나의 픽셀 포인트가 하나의 QP 값에 대응하며, 상기 복수 개의 픽셀 포인트 중 적어도 2개 픽셀 포인트의 QP 값이 상이함 -; 상기 복수 개의 QP 값에 의거하여 상기 하나의 픽처 프레임에 대해 인코딩을 수행하는 단계를 포함한다.
제5 양태에 있어서, 본 출원은 픽처의 디코딩 장치를 제공하는 바, 디코딩 장치는 디코더측에 사용되고, 당해 디코딩 장치는 제1 양태 또는 제2 양태 중 임의의 하나의 가능한 구현 방식 중의 방법을 구현하기 위한 각 모듈을 포함한다. 예컨대 비트 스트림 해석 유닛, QP 결책 유닛 및 픽처 디코딩 유닛을 포함한다.
유익한 효과는 제1 양태 또는 제2 양태 중 임의의 양태의 설명을 참조할 수 있으며, 여기서 더 이상 설명하지 않는다. 상기 디코딩 장치는 상술한 제1 양태 또는 제2 양태 중 임의의 양태의 방법 실시예 중 행위를 구현하기 위한 기능을 구비한다. 상기 기능은 하드웨어를 통해 구현될 수도 있고, 하드웨가 상응한 소프트웨어를 실행하는 것을 통해 구현될 수도 있다. 상기 하드웨어 또는 소프트웨어는 하나 또는 복수 개의 상술한 기능에 대응하는 모듈을 포함한다.
제6 양태에 있어서, 본 출원은 픽처의 인코딩 장치를 제공하는 바, 인코딩 장치는 인코더측에 사용되고, 당해 인코딩 장치는 제3 양태 또는 제4 양태 중 임의의 하나의 가능한 구현 방식 중의 방법을 구현하기 위한 각 모듈을 포함한다. 예컨데 상기 인코딩 장치는 픽처 분할 유닛, QP 결책 유닛 및 픽처 인코딩 유닛을 포함한다. 유익한 효과는 제3 양태 또는 제4 양태 중 임의의 설명을 참조할 수 있으며, 여기서 더 이상 설명하지 않는다. 상기 인코딩 장치는 상술한 제3 양태 또는 제4 양태 중 임의의 방법 실시예 중 행위를 구현하기 위한 기능을 구비한다. 상기 기능은 하드웨어를 통해 구현될 수도 있고, 하드웨가 상응한 소프트웨어를 실행하는 것을 통해 구현될 수도 있다. 상기 하드웨어 또는 소프트웨어는 하나 또는 복수 개의 상술한 기능에 대응하는 모듈을 포함한다.
제7 양태에 있어서, 본 출원은 전자 기기를 제공하는 바, 프로세서 및 메모리를 포함하고, 상기 메모리는 컴퓨터 명령을 저장하는 데에 사용되고, 상기 프로세서는 메모리로부터 상기 컴퓨터 명령을 콜하고 실행하여, 제1 양태 내지 제4 양태 중 임의의 구현 방식의 방법을 구현한다.
예컨대, 당해 전자 기기는 비디오 인코더, 또는 비디오 인코더를 포함한 인코더측을 가리킬 수 있다.
또 예컨대, 당해 전자 기기는 비디오 디코더, 또는 비디오 디코더를 포함한 디코더측을 가리킬 수 있다.
제8 양태에 있어서, 본 출원은 컴퓨터 판독가능 저장매체를 제공하는 바, 저장매체에 컴퓨터 프로그램 또는 명령이 저장되고, 컴퓨터 프로그램 또는 명령이 컴퓨팅 기기 또는 컴퓨팅 기기가 소재하는 저장 시스템에 의해 실행될 경우, 제1 양태 내지 제4 양태 중 임의의 구현 방식의 방법을 구현한다.
제9 양태에 있어서, 본 출원은 컴퓨터 프로그램 제품을 제공하는 바, 당해 컴퓨터 프로그램 제품은 명령을 포함하고, 컴퓨터 프로그램 제품이 컴퓨팅 기기 또는 프로세서 상에 실행될 경우, 컴퓨팅 기기 또는 프로세서로 하여금 당해 명령을 실행하여, 제1 양태 내지 제4 양태 중 임의의 구현 방식의 방법을 구현하게 한다.
제10 양태에 있어서, 본 출원은 비디오 디코딩 시스템을 제공하는 바, 당해 비디오 디코딩 시스템은 인코더측 및 디코더측을 포함하고, 디코더측은 제1 양태 내지 제2 양태 중 임의의 구현 방식의 방법을 구현하는 데에 사용되고, 인코더측은 제3 양태 내지 제4 양태 중 임의의 구현 방식의 방법을 구현하는 데에 사용된다.
본 출원은 상술한 각 양태의 구현 방식의 기초상에, 추가로 조합을 통해 더 많은 구현 방식을 제공할 수 있다.
도 1은 본 출원에서 제공하는 비디오 디코딩 시스템의 예시적 블록도이다;
도 2는 본 출원에서 제공하는 비디오 인코더의 예시적 블록도이다;
도 3은 본 출원에서 제공하는 비디오 디코더의 예시적 블록도이다;
도 4는 본 출원에서 제공하는 비디오 인코딩/디코딩의 흐름 모식도이다;
도 5는 본 출원에서 제공하는 픽처의 디코딩 방법의 흐름 모식도이다;
도 6은 본 출원에서 제공하는 변환 영역 분할의 모식도이다;
도 7은 본 출원에서 제공하는 픽셀 영역 분할의 모식도이다;
도 8은 본 출원에서 제공하는 예측 인코딩 방식을 이용하여 QP를 획득하는 흐름 모식도이다;
도 9는 본 출원에서 제공하는 픽셀 포인트의 분포 모식도이다;
도 10은 본 출원에서 제공하는 픽처 프레임 디코딩의 흐름 모식도이다;
도 11은 본 출원에서 제공하는 양자화 행렬 템플릿의 모식도이다;
도 12는 본 출원에서 제공하는 픽처의 인코딩 방법의 흐름 모식도이다;
도 13은 본 출원에서 제공하는 디코딩 장치의 구조 모식도이다;
도 14는 본 출원에서 제공하는 인코딩 장치의 구조 모식도이다;
도 15는 본 출원에서 제공하는 전자 기기의 구조 모식도이다.
이하 각 실시예의 설명의 간결함을 위해, 우선 관련된 기술에 대해 간단하게 소개한다.
도 1은 본 출원에서 제공하는 비디오 디코딩 시스템의 예시적 블록도인 바, 본문에 사용된 바와 같이, 용어 “비디오 디코더”는 일반적으로 비디오 인코더 및 비디오 디코더 양자를 가리킨다. 본 출원 중, 용어 “비디오 디코딩” 또는 “디코딩”은 일반적으로 비디오 인코딩 또는 비디오 디코딩을 가리킨다. 비디오 디코딩 시스템(1)의 비디오 인코더(100) 및 비디오 디코더(200)는 본 출원에서 개시한 여러 가지 새로운 인터 예측 모드 중 임의의 하나에 설명된 각종의 방법 실시예에 기반하여 현재 디코딩을 거친 픽처 블록 또는 이의 서브 블록의 모션 정보, 예컨대 모션 벡터를 예측하여, 예측된 모션 벡터가 최대한 모션 추정 방법을 통해 얻은 모션 벡터에 근접하게 함으로써, 인코딩 시 모션 벡터 차이값을 전송할 필요가 없으며, 따라서 추가로 인코딩 및 디코딩 성능을 향상시킨다.
도 1에 도시된 바와 같이, 비디오 디코딩 시스템(1)은 인코더측(10) 및 디코더측(20)을 포함한다. 인코더측(10)이 인코딩을 거친 비디오 데이터를 생성한다. 따라서, 인코더측(10)은 비디오 인코딩 장치라고도 지칭될 수 있다. 디코더측(20)은 인코더측(10)에 의해 생성된 인코딩을 거친 비디오 데이터에 대해 디코딩을 수행할 수 있다. 따라서, 디코더측(20)은 비디오 디코딩 장치라고도 지칭될 수 있다. 인코더측(10), 디코더측(20) 또는 2개의 각 실시 방안은 하나 또는 복수 개의 프로세서를 포함할 수 있고 또한 상기 하나 또는 복수 개의 프로세서의 메모리에 커플링된다. 상기 메모리는 RAM, ROM, EEPROM, 플래시 메모리 또는 컴퓨터에 의해 액세스될 수 있는 명령 또는 데이터 구조의 형식의 저장에 필요한 프로그램 코드의 임의의 기타 매체를 포함할 수 있으며 이에 제한되지 않으며, 예를 들면 본문에 설명된 바와 같다.
인코더측(10) 및 디코더측(20)은 여러 가지 장치를 포함할 수 있으며, 데스크탑 컴퓨터, 이동 컴퓨팅 장치, 노트북(예컨대, 랩탑) 컴퓨터, 테블릿, 셋탑 박스, 예컨대 소위 “스마트”전화 등 전화 핸드헬드, 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량 탑재 컴퓨터 또는 이의 유사한 기기를 포함할 수 있다.
디코더측(20)은 링크(30)를 거쳐 인코더측(10)으로부터 인코딩을 거친 비디오 데이터를 수신한다. 링크(30)는 인코딩을 거친 비디오 데이터를 인코더측(10)으로부터 디코더측(20)으로 이동시키는 하나 또는 복수 개의 매체 또는 장치를 포함할 수 있다. 하나의 실시예에서, 링크(30)는 인코더측(10)이 실시간으로 인코딩을 거친 비디오 데이터를 디코더측(20)로 발사하게 하는 하나 또는 복수 개의 매체를 포함할 수 있다. 이 실시예에서, 인코더측(10)는 통신 표준(예컨대 무선 통신 프로토콜)에 기반하여 인코딩을 거친 비디오 데이터를 변조하고, 또한 변조된 비디오 데이터를 디코더측(20)에 발사할 수 있다. 상기 하나 또는 복수 개의 통신 매체는 무선 및/또는 유선 통신 매체, 예컨대 RF(radio frequency) 스펙트럼 또는 하나 또는 복수 개의 물리적 전송선을 포함할 수 있다. 상기 하나 또는 복수 개의 통신 매체는 그룹핑된 네트워크에 기초한 일부를 구성할 수 있으며, 그룹핑에 기초한 네트워크는 예컨대 LAN, 광역망(WAN) 또는 글로벌 네트워크(예컨대, 인터넷)이다. 상기 하나 또는 복수 개의 통신 매체는 라우터, 스위치, 기지국 또는 인코더측(10)에서 디코더측(20)로의 통신을 촉진할 수 있는 기타 기기를 포함할 수 있다.
다른 일 실시예 중, 인코딩을 거친 데이터를 출력 인터페이스(140)로부터 저장 장치(40)로 출력할 수 있다. 유사하게, 입력 인터페이스(240)를 통해 저장 장치(40)로부터 인코딩을 거친 데이터를 액세스할 수 있다. 저장 장치(40)는 여러 가지 분포식 또는 로컬에 액세스되는 데이터 저장매체 중 임의의 하나, 예컨대 하드 디스크 드라이버, 블루레이 디스크, 디지털 비디오 디스크(digital video disc, DVD), 리드 온리 메모리(compact disc read-only memory, CD-ROM), 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩을 거친 비디오 데이터를 저장하기 위한 임의의 기타 적합한 디지털 저장매체를 포함할 수 있다.
다른 일 실시예 중, 저장 장치(40)는 파일 서버 또는 인코더측(10)에 의해 생성된 인코딩을 거친 비디오를 유지할 수 있는 다른 한 중간 저장 장치에 대응할 수 있다. 디코더측(20)은 스트리밍 전송 또는 다운로드를 거쳐 저장 장치(40)로부터 저장된 비디오 데이터를 액세스할 수 있다. 파일 서버는 임의의 타입의 인코딩을 거친 비디오 데이터를 저장하고 또한 인코딩을 거친 비디오 데이터를 디코더측(20)에 발사할 수 있는 서버일 수 있다. 실시예 파일 서버는 네트워크 서버(예컨대, 웹 사이트에 사용됨), 파일 전송 프로토콜(file transfer protocol, FTP) 서버, 네트워크 부착 스토리지(network attached storage, NAS) 장치 또는 로컬 디스크 드라이버를 포함한다. 디코더측(20)은 임의의 표준 데이터 연결(인터넷 연결을 포함)을 통해 인코딩을 거친 비디오 데이터를 액세스할 수 있다. 이는 무선 채널(예컨대, Wi-Fi(wireless-fidelity) 연결), 유선 연결(예컨대, 디지털 사용자 라인(digital subscriber line, DSL), 케이블 모뎀 등), 또는 파일 서버에 저장된 인코딩을 거친 비디오 데이터를 액세스하기에 적합한 것의 양자의 조합을 포함할 수 있다. 인코딩을 거친 비디오 데이터의 저장 장치(40)부터의 전송은 스트리밍 전송, 다운로드 전송 또는 양자의 조합일 수 있다.
본 출원에서 제공하는 픽처의 디코딩 방법은 비디오 인코딩 및 디코딩에 사용되어 여러 가지 멀티미티어 응용을 지원할 수 있는바, 예컨대 공중파 텔레비전 방송, 유선 텔레비전 발사, 위성 텔레비전 발사, 스트리밍 비디오 발사(예컨대, 인터넷을 거침), 데이터 저장매체에 저장된 비디오 데이터의 인코딩, 데이터 저장매체에 저장된 비디오 데이터의 디코딩에 사용되거나, 또는 기타 응용에 사용된다. 일부 실시예 중, 비디오 디코딩 시스템(1)는 단방향 또는 쌍방향 비디오 전송을 지원하여 예컨대 비디오 스트리밍 전송, 비디오 재생, 비디오 방송 및/또는 비디오 전화 등 응용에 사용될 수 있다.
도 1에 설명된 비디오 디코딩 시스템(1)은 단지 실시예이고, 또한 본 출원의 기술은 인코딩 장치와 디코딩 장치 사이의 임의의 데이터 통신을 포함하지 않은 비디오 디코딩 구성(예컨대, 비디오 인코딩 또는 비디오 디코딩)에 적용될 수 있다. 기타 실시예 중, 데이터는 로컬 메모리에서 검색되고, 네트워크에서 스트리밍 전송된다. 비디오 인코딩 장치는 데이터에 대해 인코딩을 수행하고 또한 데이터를 메모리에 저장하거나, 및/또는 비디오 디코딩 장치가 메모리에서 데이터를 검색하고 또한 데이터에 대해 디코딩을 수행할 수 있다. 많은 실시예 중, 서로 통신하지 않고 단지 데이터를 메모리에 인코딩하거나 및/또는 메모리로부터 데이터를 검색하고 또한 데이터를 디코딩하는 장치를 통해 인코딩 및 디코딩을 수행한다.
도 1의 실시예 중, 인코더측(10)은 비디오 소스(120), 비디오 인코더(100) 및 출력 인터페이스(140)를 포함한다. 일부 실시예 중, 출력 인터페이스(140)는 변조기/복조기(모뎀) 및/또는 발사기를 포함할 수 있다. 비디오 소스(120)는 비디오 캡쳐 장치(예컨대, 메라), 전에 캡쳐된 비디오 데이터를 포함한 비디오 파일, 비디오 내용 제공자로부터 비디오 데이터를 수신하기 위한 비디오 피드 인터페이스, 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 또는 비디오 데이터의 이러한 소스의 조합을 포함할 수 있다.
비디오 인코더(100)는 비디오 소스(120)에서 비롯된 비디오 데이터에 대해 인코딩을 수행할 수 있다. 일부 실시예 중, 인코더측(10)은 출력 인터페이스(140)를 거쳐 인코딩을 거친 비디오 데이터를 직접 디코더측(20)에 발사한다. 기타 실시예 중, 인코딩을 거친 비디오 데이터는 또한 저장 장치(40)에 저장되어, 디코더측(20)에게 제공하여 이후에 액세스하여 디코딩 및/또는 재생하는 데에 사용된다.
도 1의 실시예 중, 디코더측(20)은 입력 인터페이스(240), 비디오 디코더(200)가 및 디스플레이 장치(220)를 포함한다. 일부 실시예 중, 입력 인터페이스(240)는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스(240)는 링크(30)를 거치거나 및/또는 저장 장치(40)로부터 인코딩을 거친 비디오 데이터를 수신할 수 있다. 디스플레이 장치(220)는 디코더측(20)에 집적되거나 또는 디코더측(20) 외부에 있을 수 있다. 일반적으로, 디스플레이 장치(220)는 디코딩을 거친 비디오 데이터를 디스플레이한다. 디스플레이 장치(220)는 여러 가지 디스플레이 장치, 예컨대, 액정 디스프레이(liquid crystal display, LCD), 플라즈마 디스플레이, 유기 발광 다이오드(organic light-emitting diode, OLED) 디스플레이 또는 기타 타입의 디스플레이 장치를 포함할 수 있다.
도 1에 도시되지 않았지만, 일부 양태에 있어서, 비디오 인코더(100) 및 비디오 디코더(200)는 각자 오디오 인코더 및 디코더와 집적되고, 또한 적당한 멀티플렉서-디멀티플렉서 유닛 또는 기타 하드웨어 및 소프트웨어를 포함하여, 공동 데이터 스트림 또는 단독 데이터 스트림 중의 오디오 및 비디오 양자의 인코딩을 처리할 수 있다. 일부 실시예 중, 만약 적용되면, 먹스/디먹스(MUX-DEMUX) 유닛이 ITU H.223 멀티플렉서 프로토콜에 부합되거나, 또는 예컨대 사용자 데이터그램 프로토콜(user datagram protocol, UDP) 등 기타 프로토콜에 부합될 수 있다.
비디오 인코더(100) 및 비디오 디코더(200)는 각자 예컨대 하나 또는 복수 개의 마이크로 프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 전용 집적 회로(application-specific integrated circuit, ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA), 이산 논리, 하드웨어 또는 이들의 임의의 조합 중 임의의 하나로 수행될 수 있다. 만약 부분적으로 소프트웨어를 통해 본 출원을 구현하면, 장치는 소프트웨어에 사용되는 명령을 적합한 비휘발성 컴퓨터 판독가능 저장매체에 저장하고, 또한 하나 또는 복수 개의 프로세서를 사용하여 하드웨어에서 상기 명령을 수행하여 본 출원의 기술적 해결방안을 구현할 수 있다. 상술한 내용(하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함) 중 임의의 하나는 하나 또는 복수 개의 프로세서로 간주될 수 있다. 비디오 인코더(100) 및 비디오 디코더(200) 중 각자는 하나 또는 복수 개의 인코더 또는 디코더에 포함될 수 있고, 상기 인코더 또는 디코더 중 임의의 하나는 상응한 장치 중의 조합 인코더/디코더(코더)의 일부로 집적될 수 있다.
본 출원은 대체로 비디오 인코더(100)를 특정 정보를 비디오 디코더(200)로 “신호 통지를 전송” 또는 “발사”하는 다른 한 장치라고 지칭할 수 있다. 용어 “신호 통지를 전송” 또는 “발사”는 대체로 압축을 거친 비디오 데이터에 대해 디코딩을 수행하기 위한 구문 요소 및/또는 기타 데이터의 전송을 가리킬 수 있다. 이 전송은 실시간 또는 거의 실시간으로 발생할 수 있다. 대체적으로, 이 통신은 일정한 시간이 지난 후 발생할 수 있는 바, 예컨대 인코딩 시, 인코딩을 거친 비트 스트림 중 구문 요소를 컴퓨터 판독가능 저장매체에 저장할 때 발생할 수 있으며, 디코딩 장치는 이어서 상기 구문 요소가 이 매체에 저장된 후의 임의의 시간에 상기 구문 요소를 검색할 수 있다.
JCT-VC가 H.265(HEVC) 표준을 개발했다. HEVC 표준화는 HEVC모델(HEVC model, HM)로 불리우는 비디오 디코딩 장치의 진화 모델에 기반한다. H.265의 최신 표준 문서는 http://www.itu.int/rec/T-REC-H.265로부터 획득할 수 있으며, 최신 버전의 표준 문서는 H.265(12/16)이며, 당해 표준 문서는 전문을 인용하는 방식을 통해 본문에 통합된다. HM은 비디오 디코딩 장치가 ITU-TH.264/AVC의 현유의 알고리즘에 비해 여러 추가 능력이 있다고 가정한다. 예컨대, H.264는 9개 종류의 인트라 예측 인코딩 모드를 제공하지만, HM은 많아서 35종류의 인트라 예측 인코딩 모드를 제공할 수 있다.
JVET는 H.266 표준 개발에 주력하고 있다. H.266 표준화의 과정은 H.266 테스트 모델이라고 불리는 비디오 디코딩 장치의 진화 모델에 기반한다. H.266의 알고리즘의 설명은 http://phenix.int-evry.fr/jvet로부터 획득할 수 있으며, 여기서 최신 알고리즘의 설명은 JVET-F1001-v2에 포함되며, 당해 알고리즘 설명 문서는 전문을 인용하는 방식을 통해 본문에 통합된다. 동시에, https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/로부터 획득 JEM 테스트 모델의 참조 소프트웨어를 획득할 수 있으며, 마찬가지로 전문을 인용하는 방식을 통해 본문에 통합된다.
일반적으로, HM의 작업 모델 설명은 비디오 프레임 또는 픽처를 휘도 및 색차 샘플 양자를 포함한 트리 블록 또는 최대 코딩 유닛(largest coding unit, LCU) 시퀀스로 분할할 수 있으며, LCU는 코딩 트리 유닛(coding tree unit, CTU)라고도 지칭된다. 트리 블록은 H.264 표준의 매크로 블록과 유사한 목적을 구비한다. 슬라이스(strip)는 디코딩 순서에 따른 복수 개의 연속된 트리 블록을 포함한다. 비디오 프레임 또는 픽처를 하나 또는 복수 개의 슬라이스로 분할할 수 있다. 쿼드 트리에 기반하여 각 트리 블록을 코딩 유닛(coding unit, CU)으로 분할할 수 있다. 예컨대, 쿼드 트리로 간주되는 루트 노드(root node)의 트리 블록을 4개의 서브 노드로 분할할 수 있고, 또한 각 서브 노드는 또한 루트 노드를 위해 다른 4개의 서브 노드로 분할될 수 있다. 쿼드 트리의 리프 노드(leaf node)로 간주되는 최종적으로 분할 불가능한 서브 노드는 디코딩 노드, 예컨대, 디코딩을 거친 비디오 블록을 포함할 수 있다. 디코딩을 거친 비트 스트림과 상관되는 구문 데이터는 트리 블록이 분할될 수 있는 최대 차수를 정의할 수 있으며, 또한 디코딩 노드의 최소 사이즈를 정의할 수도 있다.
CU의 크기는 디코딩 노드의 크기에 대응하고 또한 모양은 반드시 정사각형이어야 한다. CU의 크기의 범위는 8×8픽셀에서 최대 64×64픽셀 또는 더 큰 트리 블록의 크기일 수 있다.
비디오 시퀀스는 일반적으로 일련의 비디오 프레임 또는 픽처를 포함한다. 픽처 그룹(group of picture, GOP)은 예시적으로 일련의, 하나 또는 복수 개의 비디오 픽처를 포함한다. GOP는 GOP의 헤더 정보 중, 픽처 중의 하나 또는 복수의 헤더 정보 중 또는 다른 데에 구문 데이터를 포함할 수 있고, 구문 데이터 설명은 GOP 중의 픽처의 수에 포함된다. 픽처의 각 슬라이스는 상응한 픽처의 인코딩 모드를 설명하는 슬라이스 구문 데이터를 포함할 수 있다. 비디오 인코더(100)는 일반적으로 개별적 비디오 슬라이스 내의 비디오 블록에 대해 조작을 수행하여 비디오 데이터를 인코딩하는 데에 편리하게 한다. 비디오 블록은 CU 내의 디코딩 노드에 대응할 수 있다. 비디오 블록은 고정 또는 변화된 크기를 구비할 수 있고, 또한 지정된 디코딩 표준에 기반하여 크기가 상 상이할 수 있다.
본 출원 중, “N×N”과 “N 곱하기 N”은 서로 교환하여 사용하여 수직 차원 및 수평 차원에 따른 비디오 블록의 픽셀 사이즈, 예컨대, 16×16픽셀 또는 16 곱하기 16픽셀을 가리킬 수 있다. 일반적으로, 16×16 블록이 수직 방향에서 16개 픽셀(y=16)을 구비하고, 또한 수평 방향에서 16개 픽셀(x=16)을 구비한다. 마찬가지로, N×N 블록은 일반적으로 수직 방향에서 N개 픽셀을 구비하고, 또한 수평 방향에서 N개 픽셀을 구비하며, 여기서 N 비 음의 정수 값을 나타낸다. 블록 중의 픽셀을 행과 열로 나열할 수 있다. 또한, 블록은 수평 방향 및 수직 방향에서 동일한 개수의 픽셀을 구비할 필요가 없다. 예컨대, 블록은 N×M개 픽셀을 포함할 수 있으며, 여기서 M은 N과 같지 않을 수 있다.
CU의 인트라/인터 예측성 디코딩을 사용한 후, 비디오 인코더(100)는 CU의 잔여 데이터를 계산할 수 있다. CU는 공간 영역(픽셀 영역이라고도 지칭함) 내의 픽셀 데이터를 포함할 수 있으며, 또한 CU는 변환(예컨대, 이산 코사인 변환(discrete cosine transform, DCT), 정수 변환, 이산 웨이브 변환 또는 개념상 유사한 변환을 잔여 비디오 데이터에 응용한 후의 변환 영역 내의 계수에 포함될 수 있다. 잔여 데이터는 인코딩을 거치지 않은 픽처의 픽셀과 CU에 대응하는 예측 값 사이의 픽셀 차이에 대응한다. 비디오 인코더(100)는 잔여 데이터를 포함한 CU를 형성하고, 또한 CU의 변환 계수를 생성할 수 있다.
임의의 변환을 거쳐 변환 계수를 생성한 후, 비디오 인코더(100)는 변환 계수의 양자화를 수행할 수 있다. 양자화는 예시적으로 계수에 대해 양자화를 수행하여 가능하게 계수를 나타내는 데이터의 양을 줄이고, 추가의 압축을 제공하는 과정을 가리킨다. 양자화 과정은 계수 중의 일부 또는 전부와 관련된 비트 깊이를 줄일 수 있다. 예컨대, 양자화 기간에 n비트 값을 m비트 값으로 내림할 수 있으며, 여기서n은 m보다 크다.
일부 가능한 실시 방식 중, 비디오 인코더(100)는 미리 정의된 스캔 순서를 이용하여 양자화를 거친 변환 계수를 스캔하여 엔트로피 인코딩을 거칠 수 있는 직렬화 벡터를 생성할 수 있다. 기타 가능한 실시 방식 중, 비디오 인코더(100)는 적응적 스캔을 수행할 수 있다. 양자화를 거친 변환 계수를 스캔하여 일차원 벡터를 얻은 후, 비디오 인코더(100)는 컨텍스트 기반 적응적 가변 길이 코딩(context-based adaptive variable-length coding, CAVLC), 컨텍스트 기반 적응적 바이너리 산술 코딩(context-based adaptive binary arithmetic coding, CABAC), 구문에 기초한 컨텍스트 기반 적응적 바이너리 산술 코딩(syntax-based adaptive binary arithmetic coding, SBAC), 확률 구간 분할 엔트로피 (probability interval partitioning entropy, PIPE)디코딩 또는 기타 엔트로피 디코딩 방법에 기초하여 일차원 벡터를 엔트로피 디코딩한다. 비디오 인코더(100)는 인코딩을 거친 비디오 데이터와 관련된 구문 요소를 엔트로피 디코딩하여 비디오 디코더(200)가 비디오 데이터를 디코딩하는 데에 제공한다.
CABAC를 수행하기 위해, 비디오 인코더(100)는 컨텍스트 모델 내의 컨텍스트를 전송될 부호에 할당할 수 있다. 컨텍스트는 부호의 인접 값이 0인지 여부와 상관될 수 있다. CAVLC를 수행하기 위해, 비디오 인코더(100)는 전송될 부호의 가변 길이 코드를 선택할 수 있다. 가변 길이 코딩(variable-length coding, VLC) 중의 코드워드는 구축을 거쳐 상대적으로 짧은 코드가 가능성이 큰 부호에 대응하게 하고, 긴 코드가 가능성이 작은 부호에 대응하게 한다. 이러한 방식으로, VLC의 사용은 전송될 각 부호에 대해 같은 길이의 코드워드를 사용하는 것에 비해 비트 레이트를 절약하는 목적을 달성할 수 있다. 부호에 할당된 컨텍스트에 기초하여 CABAC 중의 확률을 결정할 수 있다.
본 출원의 실시예 중, 비디오 인코더는 인터 예측을 수행하여 픽처 사이의 시간 리던던시를 줄일 수 있다. 본 출원은 비디오 디코더가 현재 디코딩하고 있는 CU를 현재 CU라고 지칭할 수 있다. 본 출원은 비디오 디코더가 현재 디코딩하고 있는 픽처를 현재 픽처라고 지칭할 수 있다.
도 2는 본 출원에서 제공하는 비디오 인코더의 예시적 블록도이다. 비디오 인코더(100)는 비디오를 후처리 엔티티(41)로 출력하는 데에 사용된다. 후처리 엔티티(41)는 비디오 인코더(100)에서 비롯된 인코딩을 거친 비디오 데이터를 처리할 수 있는 비디오 엔티티의 실시예, 예컨대 매체 감지 네트워크 소자(MANE) 또는 몽타주(montage)/편집 장치를 나타낼 수 있다. 일부 경우, 후처리 엔티티(41)는 네트워크 엔티티의 실시예일 수 있다. 일부 비디오 인코딩 시스템 중, 후처리 엔티티(41) 및 비디오 인코더(100)는 단독 장치의 여러 부분 일 수 있으며, 기타 경우, 후처리 엔티티(41)에 설명된 기능성에 비해 비디오 인코더(100)를 포함한 동일한 장치가 수행할 수 있다. 특정 실시예 중, 후처리 엔티티(41)는 도 1의 저장 장치(40)의 실시예이다.
도 2의 실시예 중, 비디오 인코더(100)는 예측 처리 유닛(108), 필터 유닛(106), 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(107), 서메이터(112), 변환기(101), 양자화기(102) 및 엔트로피 인코더(103)를 포함한다. 예측 처리 유닛(108)은 인터 예측기(110) 및 인트라 예측기(109)를 포함한다. 픽처 블록 재구성을 위해, 비디오 인코더(100)는 역양자화기(104), 역변환기(105) 및 서메이터(summator)(111)를 더 포함한다. 필터 유닛(106)은 하나 또는 복수 개의 루프 필터, 예컨대 디블록킹 필터, 적응적 루프 필터(adaptive loop filter, ALF) 및 샘플 적응적 오프셋(sample adaptive offset, SAO) 필터를 나타낸다. 비록 도 2에 필터 유닛(106)을 루프 내 필터로 도시하였지만, 기타 구현 방식 하에, 필터 유닛(106)을 루프 후 필터로 실시할 수 있다. 하나의 예시에서, 비디오 인코더(100)는 비디오 데이터 메모리, 분할 유닛(미도시)을 더 포함할 수 있다.
비디오 데이터 메모리는 비디오 인코더(100)의 컴포넌트에 의해 인코딩될 비디오 데이터를 저장할 수 있다. 비디오 소스(120)로부터 비디오 데이터 메모리에 저장된 비디오 데이터를 획득할 수 있다. DPB(107)는 참조 픽처 메모리일 수 있으며, 이는 비디오 인코더(100)가 인트라, 인터 디코딩 모드 중 비디오 데이터에 대해 인코딩을 수행하는 참조 비디오 데이터를 저장하는 데에 사용된다. 비디오 데이터 메모리 및 DPB (107)는 여러 가지 메모리 장치 중 임의의 하나, 예컨대 동기화 동적 랜덤 액세스 메모리(synchronous dynamic random access memory, SDRAM)를 포함한 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 자기성 랜덤 RAM(magnetic random access memory, MRAM), 저항식 RAM(resistive random access memory, RRAM), 또는 기타 타입의 메모리 장치 중 임의의 하나로 구성될 수 있다. 비디오 데이터 메모리 및 DPB (107)는 동일한 메모리 장치 또는 단독 메모리 장치에 의해 제공된다.
도 2에 도시된 바와 같이, 비디오 인코더(100)는 비디오 데이터를 수신하고, 또한 상기 비디오 데이터를 비디오 데이터 메모리에 저장한다. 분할 유닛은 상기 비디오 데이터를 여러 개의 픽처 블록으로 분할하고, 또한 이러한 픽처 블록은 추가로 더 작은 블록으로 분할될 수 있는바, 예컨대 쿼드 트리 구조 또는 바이너리 트리 구조에 기초한 픽처 블록 분할일 수 있다. 이 분할은 슬라이스(slice), 타일(tile) 또는 기타 큰 유닛으로 분할하는 것을 포함할 수 있다. 비디오 인코더(100)는 일반적으로 인코딩될 비디오 슬라이스 내의 픽처 블록을 인코딩하는 컴포넌트를 설명한다. 상기 슬라이스는 복수 개의 픽처 블록(또한 타일라고 불리는 픽처 블록 집합으로 분할될 수 있음)으로 분할될 수 있다. 예측 처리 유닛(108)은 현재 픽처 블록에 사용되는 복수 개의 가능한 디코딩 모드 중 하나를 선택할 수 있는바, 예컨대 복수 개의 인트라 디코딩 모드 중 하나 또는 복수 개의 인터 디코딩 모드 중 하나를 선택할 수 있다. 예측 처리 유닛(108)은 획득된 인트라, 인터 디코딩을 거친 블록을 서메이터(112)에 제공하여 잔차 블록을 생성하고, 또한 서메이터(111)에 제공하여 참조 픽처로 사용되는 인코딩을 거친 블록을 재구성한다.
예측 처리 유닛(108) 내의 인트라 예측기(109)는 인코딩될 현재 블록과 동일한 프레임 또는 슬라이스에 있는 하나 또는 복수 개의 인접한 블록에 대해 현재 픽처 블록의 인트라 예측성 인코딩을 수행하여 공간 리던던시를 제거한다. 예측 처리 유닛(108) 내의 인터 예측기(110)는 하나 또는 복수 개의 참조 픽처 중의 하나 또는 복수 개의 예측 블록에 대해 현재 픽처 블록의 인터 예측성 인코딩을 수행하여 시간 리던던시를 제거할 수 있다.
구체적으로, 인터 예측기(110)는 현재 픽처 블록을 인코딩하기 위한 인터 예측 모드를 결정하는 데에 사용될 수 있다. 예를 들어 설명하면, 인터 예측기(110)는 비트 레이트-왜곡 분석을 사용하여 후보 인터 예측 모드 집합 중의 여러 가지 인터 예측 모드의 비트 레이트-왜곡 값을 계산하고, 또한 이 중에서 최적의 비트 레이트-왜곡 특성을 구비한 인터 예측 모드를 선택할 수 있다. 비트 레이트 왜곡 분석은 일반적으로 인코딩을 거친 블록과 인코딩을 거쳐 생성한 상기 인코딩을 거친 블록의 초기의 인코딩을 거치지 않은 블록 사이의 왜곡(또는 오차)의 양을 결정하고, 또한 인코딩을 거친 블록의 비트 레이트(즉, 비트 수)를 생성하는 데에 사용된다. 예컨대, 인터 예측기(110)는 후보 인터 예측 모드 집합 중 상기 현재 픽처 블록을 인코딩하는 비트 레이트 왜곡 코스트가 가장 작은 인터 예측 모드를 현재 픽처 블록에 대해 인터 예측을 수행하기 위한 인터 예측 모드로 결정할 수 있다.
인터 예측기(110)는 결정된 인터 예측 모드에 기초하여, 현재 픽처 블록 중 하나 또는 복수 개의 서브 블록의 모션 정보(예컨대 모션 벡터)를 예측하고, 또한 현재 픽처 블록 중 하나 또는 복수 개의 서브 블록의 모션 정보(예컨대 모션 벡터)를 이용하여 현재 픽처 블록의 예측 블록을 획득하거나 또는 생성하는 데에 사용된다. 인터 예측기(110)는 참조 픽처 리스트 중 하나에서 상기 모션 벡터가 포인팅하는 예측 블록을 포지셔닝할 수 있다. 인터 예측기(110)는 픽처 블록 및 비디오 슬라이스와 관련된 구문 요소를 생성하여 비디오 디코더(200)가 비디오 슬라이스의 픽처 블록에 대해 디코딩을 수행할 때 사용하게 한다. 또는, 하나의 예시에서, 인터 예측기(110)는 각 서브 블록의 모션 정보를 이용하여 모션 보상 과정을 수행하여, 각 서브 블록의 예측 블록을 생성하여, 현재 픽처 블록의 예측 블록을 얻게 하며; 이해해야 할 것은, 여기에서의 인터 예측기(110)가 모션 추정 및 모션 보상 과정을 수행한다.
구체적으로, 현재 픽처 블록을 위해 인터 예측 모드를 선택한 후, 인터 예측기(110)는 현재 픽처 블록을 지시하는 선택된 인터 예측 모드의 정보를 엔트로피 인코더(103)에 제공하여, 엔트로피 인코더(103)가 선택된 인터 예측 모드를 지시하는 정보를 인코딩하는 데에 편리하게 한다.
인트라 예측기(109)는 현재 픽처 블록에 대해 인트라 예측을 수행할 수 있다. 명확하게 말하면, 인트라 예측기(109)는 현재 블록을 인코딩하는 데에 사용되는 인트라 예측 모드를 결정할 수 있다. 예를 들어 설명하면, 인트라 예측기(109)는 비트 레이트-왜곡 분석을 사용하여 여러 가지 테스트 될 인트라 예측 모드의 비트 레이트-왜곡 값을 계산하고, 또한 테스트될 모드에서 최적의 비트 레이트-왜곡 특성을 구비한 인트라 예측 모드를 선택한다. 임의의 경우, 픽처 블록을 위해 인트라 예측 모드를 선택한 후, 인트라 예측기(109)는 현재 픽처 블록의 선택된 인트라 예측 모드를 지시하는 정보를 엔트로피 인코더(103)에 제공하여, 엔트로피 인코더(103)가 선택된 인트라 예측 모드를 지시하는 정보를 인코딩하는 데에 편리하게 한다.
예측 처리 유닛(108)이 인터 예측, 인트라 예측을 거쳐 현재 픽처 블록의 예측 블록을 생성한 후, 비디오 인코더(100)는 인코딩될 현재 픽처 블록을 상기 예측 블록으로 감하여 잔차 픽처 블록을 구성한다. 서메이터(112)는 이 감하기 연산을 수행하는 하나 또는 복수 개의 컴포넌트를 나타낸다. 상기 잔차 블록 내의 잔차 비디오 데이터는 하나 또는 복수 개의 전송 유닛(transform unit, TU)에 포함될 수 있고, 또한 변환기(101)에 응용된다. 변환기(101)는 예컨대 이산 코사인 변환(discrete cosine transform, DCT) 또는 개념상 유사한 변환 등 변환을 이용하여 잔차 비디오 데이터를 잔차 변환 계수로 변환한다. 변환기(101)는 잔차 비디오 데이터를 픽셀 값 영역으로부터 변환 영역, 예컨대 주파수 영역으로 전환한다.
변환기(101)는 획득된 변환 계수를 양자화기(102)에 전송할 수 있다. 양자화기(102)는 상기 변환 계수를 양자화하여 비트 레이트를 진일보로 줄인다. 일부 실시예 중, 양자화기(102)는 이어서 양자화를 거친 변환 계수를 포함한 행렬에 대한 스캔을 수행할 수 있다. 또는, 엔트로피 인코더(103)가 스캔을 수행할 수 있다.
양자화 후, 엔트로피 인코더(103)는 양자화를 거친 변환 계수에 대해 엔트로피 인코딩을 수행한다. 예를 들어 설명하면, 엔트로피 인코더(103)는 컨텍스트 기반 적응적 가변 길이 코딩(CAVLC), 컨텍스트 기반 적응적 바이너리 산술 코딩(CABAC), 구문에 기초한 컨텍스트 기반 적응적 바이너리 산술 코딩(SBAC), 확률 구간 분할 엔트로피 (PIPE) 코딩 또는 다른 한 엔트로피 인코딩 방법 또는 기술을 수행할 수 있다. 엔트로피 인코더(103)에 의해 엔트로피 인코딩을 수행한 후, 인코딩을 거친 비트 스트림을 비디오 디코더(200)에 발사하거나, 또는 파일화하여 잠시 후 발사하거나 또는 비디오 디코더(200)에 의해 검색될 수 있다. 엔트로피 인코더(103)는 인코딩될 현재 픽처 블록의 구문 요소에 대해 엔트로피 인코딩을 수행할 수 있다.
역양자화기(104) 및 역변환기(105)는 각각 역양자화 및 역변환을 응용하여 픽셀 영역에서 상기 잔차 블록을 재구성하는 바, 예컨대 잠시 후에 참조 픽처로 이용되는 참조 블록을 제공한다. 서메이터(111)는 재구성을 거친 잔차 블록을 인터 예측기(110) 또는 인트라 예측기(109)에 의해 생성된 예측 블록에 추가하여, 재구성을 거친 픽처 블록을 생성한다. 필터 유닛(106)은 재구성을 거친 픽처 블록에 적용되어 왜곡, 예컨데 블록 효과(block artifacts)를 줄일 수 있다. 다음에, 당해 재구성을 거친 픽처 블록을 참조 블록으로 이용하여 디코딩된 픽처 버퍼(107)에 저장하며, 인터 예측기(110)가 참조 블록으로 이용하여 후속의 비디오 프레임 또는 픽처 내의 블록에 대해 인터 예측을 수행한다.
이해해야 할 것은, 비디오 인코더(100)의 기타 구조 변화는 비디오 스트림을 인코딩하는 데에 사용될 수 있다. 예컨대, 특정 픽처 블록 또는 픽처 프레임에 대해, 비디오 인코더(100)는 변환기(101)의 처리가 없이 직접 잔차 신호를 양자화할 수 있으며, 상응하게 역변환기(105) 처리를 거칠 필요도 없거나; 또는, 특정 픽처 블록 또는 픽처 프레임에 대해, 비디오 인코더(100)는 잔차 데이터를 생성하지 않으며, 상응하게 변환기(101), 양자화기(102), 역양자화기(104) 및 역변환기(105) 처리를 거칠 필요가 없거나; 또는, 비디오 인코더(100)는 필터 유닛(106) 처리를 거칠 필요가 없이, 재구성된 픽처 블록을 참조 블록으로 이용하여 직접 저장을 수행할 수 있거나; 또는, 비디오 인코더(100) 중 양자화기(102) 및 역양자화기(104)는 하나로 통합될 수 있다.
도 3은 본 출원에서 제공하는 비디오 디코더(200)의 예시적 블록도이다. 도 3의 실시예 중, 비디오 디코더(200)는 엔트로피 디코더(203), 예측 처리 유닛(208), 역양자화기(204), 역변환기(205), 서메이터(211), 필터 유닛(206)또한DPB(207)를 포함한다. 예측 처리 유닛(208)은 인터 예측기(210) 및 인트라 예측기(209)를 포함할 수 있다. 일부 실시예 중, 비디오 디코더(200)는 대체적으로 도 2의 비디오 인코더(100)의 설명에서 비롯된 인코딩 과정과 역되는 디코딩 과정을 수행할 수 있다.
디코딩 과정 중, 비디오 디코더(200)는 비디오 인코더(100)로부터 인코딩을 거친 비디오 슬라이스를 나타내는 픽처 블록 및 관련된 구문 요소의 인코딩을 거친 비디오 비트 스트림을 수신한다. 비디오 디코더(200)는 네트워크 엔티티(42)로부터 비디오 데이터를 수신할 수 있으며, 선택 가능하게, 상기 비디오 데이터를 비디오 데이터 메모리(미도시)에 저장할 수도 있다. 비디오 데이터 메모리는 비디오 디코더(200)의 컴포넌트에 의해 디코딩될 비디오 데이터, 예컨대 인코딩을 거친 비디오 비트 스트림을 저장할 수 있다. 비디오 데이터 메모리에 저장된 비디오 데이터는, 예컨대 저장 장치(40), 카메라 등 로컬 비디오 소스로부터, 비디오 데이터의 유선 또는 무선네트워크 통신을 거치거나 또는 액세스 물리적 데이터 저장매체를 통해 획득할 수 있다. 비디오 데이터 메모리는 인코딩을 거친 비디오 비트 스트림에서 비롯된 인코딩을 거친 비디오 데이터를 저장하기 위한 디코딩된 픽처 버퍼(CPB)로 이용될 수 있다. 따라서, 비록 도 3에 비디오 데이터 메모리를 도시하지 않았지만, 비디오 데이터 메모리 및 DPB(207)는 동일한 메모리일 수도 있고, 단독으로 구성된 메모리일 수도 있다. 비디오 데이터 메모리 및 DPB(207)는 여러 가지 메모리 장치 중 임의의 하나로 구성될 수 있는바, 예컨대: 동기화 DRAM(SDRAM)을 포함한 동적 랜덤 액세스 메모리(DRAM), 자기성 RAM(MRAM), 저항식 RAM(RRAM), 또는 기타 타입의 메모리 장치로 구성될 수 있다.
네트워크 엔티티(42)는 서버, MANE, 비디오 편집기/클리퍼(clipper), 또는 상술한 기술에 개시된 하나 또는 여러 개의 기술을 실시하기 위한 기타 장치일 수 있다. 네트워크 엔티티(42)는 비디오 인코더, 예컨대 비디오 인코더(100)를 포함하거나 또는 포함하지 않을 수 있다. 네트워크 엔티티(42)에서 인코딩을 거친 비디오 비트 스트림을 비디오 디코더(200)로 전송하기 전에, 네트워크 엔티티(42)는 본 출원에서 설명한 기술 중 일부를 수행할 수 있다. 일부 비디오 디코딩 시스템 중, 네트워크 엔티티(42) 및 비디오 디코더(200)는 단독 장치의 일부일 수 있으며, 기타 경우, 네트워크 엔티티(42)에서 설명한 기능성에 비해 비디오 디코더(200)를 포함한 동일한 장치에 의해 수행될 수 있다. 일부 경우, 네트워크 엔티티(42)는 도 1의 저장 장치(40)의 실시예일 수 있다.
비디오 디코더(200)의 엔트로피 디코더(203)는 비트 스트림에 대해 엔트로피 디코딩을 수행하여 양자화를 거친 계수 및 일부 구문 요소를 생성한다. 엔트로피 디코더(203)는 구문 요소를 예측 처리 유닛(208)으로 재전송한다. 비디오 디코더(200)는 비디오 슬라이스 레이어 및/또는 픽처 블록 레이어에 처한 구문 요소를 수신할 수 있다.
비디오 슬라이스가 인트라 디코딩(I)을 거친 슬라이스로 디코딩될 경우, 예측 처리 유닛(208)의 인트라 예측기(209)는 신호 통지를 전송하는 인트라 예측 모드 및 현재 프레임 또는 픽처에서 비롯된 사전에 디코딩을 거친 블록의 데이터에 기초하여 현재 비디오 슬라이스의 픽처 블록의 예측 블록을 생성할 수 있다. 비디오 슬라이스가 인터 디코딩(즉, B 또는 P)을 거친 슬라이스로 디코딩될 경우, 예측 처리 유닛(208)의 인터 예측기(210)는 엔트로피 디코더(203)로부터 수신된 구문 요소에 기초하여, 현재 비디오 슬라이스의 현재 픽처 블록에 대해 디코딩을 수행하기 위한 인터 예측 모드를 결정하고, 결정된 인터 예측 모드에 기초하여, 상기 현재 픽처 블록에 대해 디코딩을 수행(예컨대 인터 예측을 수행)할 수 있다. 구체적으로, 인터 예측기(210)는 현재 비디오 슬라이스의 현재 픽처 블록에 대해 새로운 인터 예측 모드를 사용하여 예측을 수행할지 여부를 결정하여, 만약 구문 요소가 새로운 인터 예측 모드를 이용하여 현재 픽처 블록에 대해 예측을 수행하는 것을 지시하면, 새로운 인터 예측 모드(예컨대 구문 요소를 통해 지정된 하나의 새로운 인터 예측 모드 또는 디폴트의 하나의 새로운 인터 예측 모드)에 기초하여 현재 비디오 슬라이스의 현재 픽처 블록 또는 현재 픽처 블록의 서브 블록의 모션 정보에 대해 예측을 수행함으로써, 모션 보상 과정을 통해 예측된 현재 픽처 블록 또는 현재 픽처 블록의 서브 블록의 모션 정보를 이용하여 현재 픽처 블록 또는 현재 픽처 블록의 서브 블록의 예측 블록을 획득하거나 또는 생성한다. 여기에서의 모션 정보는 참조 픽처 정보 및 모션 벡터를 포함할 수 있으며, 여기서 참조 픽처 정보는 단방향/쌍방향 예측 정보, 참조 픽처 리스트 번호 및 참조 픽처 리스트에 대응하는 참조 픽처 인덱스를 포함할 수 있으며 이에 한정되지 않는다. 인터 예측에 대해, 참조 픽처 리스트 중 하나 내의 참조 픽처 중의 하나로부터 예측 블록을 생성할 수 있다. 비디오 디코더(200)는 DPB(207)에 저장된 참조 픽처에 기초하여 참조 픽처 리스트, 즉 리스트 0 및 리스트 1을 구축할 수 있다. 현재 픽처의 참조 프레임 인덱스는 참조 프레임 리스트 0 및 리스트 1 중의 하나 또는 여러 개에 포함될 수 있다. 일부 실시예 중, 비디오 인코더(100)가 신호 통지를 전송하여 새로운 인터 예측 모드를 사용하여 특정 블록의 특정 구문 요소를 디코딩할지 여부를 지시하거나, 또는, 신호 통지를 전송하여 새로운 인터 예측 모드를 사용할지 여부를 지시하고, 또한 구체적으로 어느 새로운 인터 예측 모드를 사용하여 특정 블록의 특정 구문 요소를 디코딩할지를 지시한다. 이해해야 할 것은, 여기에서의 인터 예측기(210)가 모션 보상 과정을 수행한다.
역양자화기(204)는 비트 스트림 중 제공되고 또한 엔트로피 디코더(203)에 의해 디코딩된 양자화를 거친 변환 계수를 역양자화하는 바, 즉 양자화를 제거한다. 역양자화 과정은: 비디오 인코더(100)에 의해 비디오 슬라이스 중의 각 픽처 블록에 대해 계산된 양자화 파라미터를 이용하여 적용될 양자화 정도를 결정하고 또한 마찬가지로 적용될 역양자화 정도를 결정하는 단계를 포함할 수 있다. 역변환기(205)는 역변환을 변환 계수에 응용하는 바, 예컨대 역DCT, 역 정수 변환 또는 개념상 유사한 역변환 과정을 통해 픽셀 영역 내의 잔차 블록을 생성한다.
인터 예측기(210)가 현재 픽처 블록 또는 현재 픽처 블록에 사용되는 서브 블록의 예측 블록을 생성한 후, 비디오 디코더(200)는 역변환기(205)에서 비롯된 잔차 블록과 인터 예측기(210)에 의해 생성된 대응하는 예측 블록을 더하여 재구축된 블록, 즉 디코딩을 거친 픽처 블록을 얻는다. 서메이터(211)는 이 더하기 조작의 컴포넌트를 나타낸다. 필요할 경우, 루프 필터(디코딩 루프 중 또는 디코딩 루프 후)를 사용하여 픽셀이 스무딩하게 하거나 또는 기타 방식을 통해 비디오 품질을 향상시킬 수 있다. 필터 유닛(206)은 하나 또는 복수 개의 루프 필터, 예컨대 디블록킹 필터, 적응적 루프 필터(ALF) 및 샘플 적응적 오프셋(SAO) 필터를 나타낼 수 있다. 비록 도 3에서 필터 유닛(206)을 루프 내 필터로 도시하지만, 기타 구현 방식에서, 필터 유닛(206)을 루프 후 필터로 구현할 수 있다. 하나의 예시에서, 필터 유닛(206)은 재구축 블록에 응용되어 블록 왜곡을 줄이고, 또한 당해 결과를 디코딩을 거친 비디오 스트림 출력으로 이용한다. 또한, 주어진 프레임 또는 픽처 내의 디코딩을 거친 픽처 블록을 디코딩된 픽처 버퍼(207)에 저장하고, DPB(207) 저장을 거쳐 후속의 모션 보상의 참조 픽처에 사용될 수 있다. DPB(207)는 메모리의 일부일 수 있으며, 이는 디코딩을 거친 비디오를 더 저장하여, 잠시 후 디스플레이 장치(예컨대 도 1의 디스플레이 장치(220))에 표시될 수 있거나, 또는 이러한 메모리와 분리될 수 있다.
이해해야 할 것은, 비디오 디코더(200)의 기타 구조 변화는 인코딩을 거친 비디오 비트 스트림을 디코딩하는 데에 사용될 수 있다. 예컨대, 비디오 디코더(200)는 또한 필터 유닛(206) 처리를 거치지 않고 비디오 스트림을 생성하고 출력하거나; 또는, 특정 픽처 블록 또는 픽처 프레임에 대해, 비디오 디코더(200)의 엔트로피 디코더(203)가 양자화를 거친 계수를 디코딩하지 않으며, 상응하게 역양자화기(204) 및 역변환기(205) 처리를 거칠 필요가 없다.
본 출원의 기술은 본 출원에 설명된 비디오 인코더 또는 비디오 디코더 중 임의의 하나를 통해 구현할 수 있는바, 예컨대 도 1 내지 도 3에 도시되고 또한 설명된 비디오 인코더(100) 및 비디오 디코더(200)와 같다. 가능한 실시 방식 중, 도 2에 설명된 비디오 인코더(100)는 비디오 데이터의 블록의 인코딩 기간에 인터 예측을 수행할 때 아래에 설명된 특정 기술을 수행할 수 있다. 다른 일 가능한 실시 방식 중, 도 3에 설명된 비디오 디코더(200)는 비디오 데이터의 블록의 디코딩 기간에 인터 예측을 수행할 때 아래에 설명된 특정 기술을 수행할 수 있다. 따라서, 일반적인 “비디오 인코더” 또는 “비디오 디코더”의 인용은 비디오 인코더(100), 비디오 디코더(200) 또는 다른 한 비디오 인코딩 또는 디코딩 유닛을 포함할 수 있다.
도 1 내지 도 3은 본 출원에서 제공하는 예시일 뿐, 일부 예시에서, 비디오 인코더(100), 비디오 디코더(200) 및 비디오 디코딩 시스템은 보다 많거나 또는 보다 적은 부품 또는 유닛을 포함할 수 있으며, 본 출원은 이에 대해 한정하지 않는다.
아래에 도 1 내지 도 3에 도시된 비디오 디코딩 시스템의 기초상에, 본 출원은 가능한 비디오 인코딩/디코딩 구현 방식을 제공하며, 도 4에 도시된 바와 같이, 도 4는 본 출원에서 제공하는 비디오 인코딩/디코딩의 흐름 모식도이며, 당해 비디오 인코딩/디코딩 구현 방식은 과정 ① 내지 과정 ⑤를 포함하며, 과정 ① 내지 과정 ⑤는 상술한 인코더측(10), 비디오 디코더(100), 디코더측(20) 또는 비디오 디코더(200) 중 임의의 하나 또는 복수 개를 통해 수행될 수 있다.
과정 ①: 한 프레임 픽처를 하나 또는 복수 개의 서로 중첩되지 않는 병렬 코딩 유닛으로 분할한다. 당해 하나 또는 복수 개의 병렬 코딩 유닛 사이는 의거 관계가 존재하지 않고, 완전히 병렬/독립적으로 인코딩 및 디코딩할 수 있으며, 도 4에 도시된 병렬 코딩 유닛 1 및 병렬 코딩 유닛 2와 같을 수 있다.
과정 ②: 각 병렬 코딩 유닛에 대해, 다시 이를 하나 또는 복수 개의 서로 중첩되지 않는 독립 코딩 유닛으로 분할하고, 각 독립 코딩 유닛 사이는 서로 의거하지 않을 수 있지만, 일부 병렬 코딩 유닛 헤더 정보를 공유할 수 있다.
예컨대, 독립 코딩 유닛의 너비가 w_lcu이고, 높이가 h_lcu이다. 만약 병렬 코딩 유닛을 하나의 독립 코딩 유닛으로 분할하면, 독립 코딩 유닛의 사이즈는 병렬 코딩 유닛과 완전히 동일하고; 그렇지 않을 경우, 독립 코딩 유닛의 너비가 높이보다 커야 한다(가장자리 영역인 경우를 제외).
일반적으로, 독립 코딩 유닛이 고정된 w_lcu×h_lcu일 수 있고, w_lcu 및 h_lcu 모두가 2의 N제곱(N≥0), 예컨데 독립 코딩 유닛의 사이즈가: 128×4, 64×4, 32×4, 16×4, 8×4, 32×2, 16×2 또는 8×2 등일 수 있다.
가능한 예시로서, 독립 코딩 유닛은 고정된 128×4일 수 있다. 만약 병렬 코딩 유닛의 사이즈가 256×8이면, 병렬 코딩 유닛을 4개의 독립 코딩 유닛으로 분할하고; 만약 병렬 코딩 유닛의 사이즈가 288×10이면, 병렬 코딩 유닛을: 제1/2 행이 2개의 128×4+1개 32×4인 독립 코딩 유닛으로 분할할 수 있고; 제3 행이 2개의 128×2+1개 32×2인 독립 코딩 유닛으로 분할할 수 있다.
주의해야 할 것은, 독립 코딩 유닛은 휘도 Y, 색차 Cb, 색차 Cr3개 컴포넌트를 포함하거나, 또는 적(red, R), 녹(green, G), 청(blue, B) 3개 컴포넌트를 포함거나, 또는 이 중 어느 하나의 컴포넌트만을 포함할 수 있다. 만약 독립 코딩 유닛이 3개 컴포넌트를 포함하면, 이 3개 컴포넌트의 사이즈는 완전히 동일할 수도 있고, 동일하지 않을 수도 있으며, 구체적으로 픽처의 입력 포맷과 상관된다.
과정 ③: 각 독립 코딩 유닛에 대해, 이를 다시 하나 또는 복수 개의 서로 중첩되지 않는 코딩 유닛으로 분할할 수 있는바, 독립 코딩 유닛 내의 각 코딩 유닛은 서로 의거할 수 있는 바, 예컨데 복수 개의 코딩 유닛은 상호 참조 사전 인코딩 및 디코딩을 수행할 수 있다.
만약 코딩 유닛과 독립 코딩 유닛의 사이즈가 동일하면(즉 독립 코딩 유닛이 단지 하나의 코딩 유닛으로 분할됨), 이의 사이즈는 과정 ②에 설명된 모든 사이즈일 수 있다.
만약 독립 코딩 유닛을 복수 개의 서로 중첩되지 않는 코딩 유닛으로 분할하면, 이의 가능한 분할 예제는: 수평 등분(코딩 유닛의 높이는 독립 코딩 유닛과 동일하지만, 너비는 상이한 바, 이의 1/2, 1/4, 1/8, 1/16 등일 수 있음), 수직 등분(코딩 유닛의 너비는 독립 코딩 유닛과 동일하고, 높이는 상이한 바, 이의 1/2, 1/4, 1/8, 1/16 등일 수 있음), 수평 및 수직 등분(쿼드 트리 분할) 등을 구비할 있으며, 우선적으로 수평 등분이다.
코딩 유닛의 너비가 w_cu, 높이가 h_cu이면, 이의 너비가 높이보다 커야 한다(가장자리 영역인 경우를 제외). 일반적으로, 코딩 유닛은 고정된 w_cu x h_cu일 수 있으며, w_cu 및 h_cu 모두가 2개의 N제곱(N이 0보다 크거나 같음), 예컨데 16x4, 8x4, 16x2, 8x2, 8x1, 4x1 등일 수 있다.
가능한 예시로서, 코딩 유닛은 고정된 16x4일 수 있다. 만약 독립 코딩 유닛의 사이즈가 64x4이면, 독립 코딩 유닛을 4개의 코딩 유닛으로 등분하고; 만약 독립 코딩 유닛의 사이즈가 72x4이면, 코딩 유닛을 4개의 16x4+1개의 8x4로 분할할 수 있다.
주의해야 할 것은, 코딩 유닛은 휘도 Y, 색차 Cb, 색차 Cr3개 컴포넌트(또는 적R, 녹G, 청B 3개 컴포넌트)를 포함할 수도 있고, 단지 이 중 어느 하나의 컴포넌트만 포함할 수도 있다. 만약 3개 컴포넌트를 포함하면, 몇개 컴포넌트의 사이즈가 완전히 동일할 수도 있고, 동일하지 않을 수도 있으며, 구체적으로 픽처 입력 포맷과 상관된다.
주의해야 할 것은, 과정 ③은 비디오 인코딩 및 디코딩 방법 중 일 선택 가능한 단계이며, 비디오 인코더/디코더는 과정 ②에서 획득된 독립 코딩 유닛의 잔차 계수(또는 잔차 값)에 대해 인코딩/디코딩을 수행할 수 있다.
과정 ④: 코딩 유닛에 대해, 이를 다시 하나 또는 복수 개의 서로 중첩되지 않는 예측 그룹(Prediction Group, PG)으로 분할할 수 있는바, PG는 Group으로 약칭될 수도 있으며, 각 PG는 선정된 예측 모드에 따라 인코딩 및 디코딩을 수행하여, PG의 예측 값을 얻고, 전체 코딩 유닛의 예측 값을 구성하며, 예측 값 및 코딩 유닛의 초기값에 기초하여, 코딩 유닛의 잔차 값을 획득한다.
과정 ⑤: 코딩 유닛의 잔차 값에 기초하여, 코딩 유닛에 대해 그룹핑을 수행하여, 하나 또는 복수 개의 중첩되지 않는 잔차 블록(residual block, RB)을 획득하고, 각 RB의 잔차 계수는 선정된 모드에 따라 인코딩 및 디코딩을 수행하여, 잔차 계수 스트림을 구성한다. 구체적으로, 잔차 계수에 대해 변환 수행하는 것 및 변환을 수행하지 않는 것 두 가지 종류로 나눌 수 있다.
여기서, 과정 ⑤ 중 잔차 계수 인코딩 및 디코딩 방법의 선정된 모드는: 반고정 길이 인코딩 방식, 지수 골롬(Golomb) 인코딩 방법, Golomb-Rice인코딩 방법, 절단된 단항 코드 인코딩 방법, 런 길이(run-length) 인코딩 방법, 초기 잔차 값 직접 인코딩 등 중 하나를 포함할 수 있으며 이에 한정되지 않는다.
예컨대, 비디오 인코더는 직접 RB 내의 계수에 대해 인코딩을 수행할 수 있다.
또 예컨대, 비디오 인코더는 또한 잔차 블록에 대해 변환을 수행, 예컨데 DCT, DST, Hadamard 변환 등을 수행하고, 다시 변환 후의 계수에 대해 인코딩을 수행할 수 있다.
가능한 예시로서, RB가 작을 경우, 비디오 인코더는 직접 RB 내의 각 계수에 대해 통일적인 양자화를 수행하고, 다시 바이너리 인코딩을 수행할 수 있다. 만약 RB가 크면, 추가로 복수 개의 계수 그룹(coefficient group, CG)으로 분할하고, 다시 각 CG에 대해 통일적인 양자화를 수행하며, 다시 바이너리 인코딩을 수행할 수 있다. 본 출원의 일부 실시예 중, 계수 그룹(CG) 및 양자화 그룹(QG)은 동일할 수 있다.
아래 반고정 길이 인코딩 방식으로 잔차 계수에 대해 인코딩을 수행하는 부분에 대해 예시적으로 설명한다. 우선, 하나의 RB 블록 내 잔차 절대 값의 최대 값을 수정된 최대 값(modified maximum, mm)으로 정의한다. 다음에, 당해 RB 블록 내 잔차 계수의 인코딩 비트 수(동일한 RB 블록 내 잔차 계수의 인코딩 비트 수는 일치함)를 결정한다. 예컨대, 만약 현재 RB 블록의 관건 제한 값(critica llimit, CL)이2이고, 현재 잔차 계수가 1이면, 잔차 계수 1을 인코딩하는 데에 2개의 비트가 수요되며, 01로 표시한다. 만약 현재 RB 블록의 CL이 7이면, 8-bit의 잔차 계수 및 1-bit의 부호 비트를 인코딩하는 것을 나타낸다. CL의 결정은 현재 서브 블록의 모든 잔차가 [-2^(M-1),2^(M-1)] 범위 내에 존재하는 것을 충족시키는 최소 M 값을 찾는 것이다. 만약 -2^(M-1) 및 2^(M-1) 2개 경계 값이 동시에 존재하면, M에 1을 추가해야 하는 바, 즉 M+1개 비트를 필요로 하여 현재 RB 블록의 모든 잔차를 인코딩하고; 만약 -2^(M-1) 및 2^(M-1) 2개 경계 값 중 하나만 존재하면, 하나의 Trailing 비트를 인코딩하여 당해 경계 값이 -2^(M-1)인지 아니면2^(M-1)인지를 결정하며; 만약 모든 잔차가 모두 -2^(M-1) 및 2^(M-1) 중 임의의 하나에 존재하지 않으면, 당해 Trailing 비트를 인코딩할 필요가 없다.
추가로, 특수한 경우, 비디오 인코더는 잔차 값을 인코딩하는 것이 아니라 직접 픽처의 초기값을 인코딩할 수 있다.
아래 도면과 결부하여 본 출원 실시예의 실시 방식에 대해 상세하게 설명한다.
도 5는 본 출원에서 제공하는 픽처의 디코딩 방법의 흐름 모식도이며, 당해 픽처의 디코딩 방법은 도 1에 도시된 비디오 디코딩 시스템에 사용될 수 있는바, 당해 픽처의 디코딩 방법은 디코더측(20)에 의해 수행되고, 구체적으로, 당해 디코딩 방법은 디코더측(20)에 포함된 비디오 디코더(200)에 의해 수행되며, 도 5를 참조하면, 본 실시예의 디코딩 방법은 이하 단계를 포함한다.
S510, 비디오 디코더(200)는 획득된 비트 스트림에 대해 해석을 수행하여, 하나 또는 복수 개의 픽처 프레임을 획득한다.
여기서, 상술한 하나의 픽처 프레임이 하나 또는 복수 개의 CU를 포함한다.
도 5에 도시된 바와 같이, 하나의 픽처 프레임은 3×5=15개 CU를 포함할 수 있다. 주의해야 할 것은, 하나의 픽처 프레임은 또한 더 많은 CU, 예컨데 20개 CU포함할 수 있으며; 하나의 픽처 프레임은 보다 적은 CU를 포함할 수 있는바, 예컨데 1개 CU 또는 2개의 CU 등을 포함할 수도 있다.
S520, 비디오 디코더(200)는 하나의 픽처 프레임의 복수 개의 QP 값을 결정한다.
여기서, 하나의 CU는 복수 개의 QG를 포함하고, 하나의 QG는 하나의 QP 값에 대응한다.
상술한 하나의 CU는 복수 개의 잔차 계수를 포함하고, 또한 당해 하나의 QG는 상술한 복수 개의 잔차 계수 중 일부 잔차 계수를 포함하며, 당해 일부 잔차 계수는 하나의 QP 값을 공유한다.
주의해야 할 것은, 인코딩 과정 중, 비디오 인코더가 당해 잔차 계수에 대해 양자화를 수행한 후, 당해 잔차 계수는 레벨이라고도 지칭된다. 본 기술분야 중, 잔차 계수 및 레벨은 잔차 계수라고도 통칭될 수 있으며, 본 실시예는 모두 잔차 계수로 나타내며, 본 출원에 대한 제한으로 이해해서는 안된다.
하나의 CU 중 모든 잔차 계수가 모두 동일한 QP 값을 사용하여 픽처 왜곡이 큰 것을 초래하는 것에 비해, 본 실시예의 비디오 픽처의 디코딩 과정 중, 하나의 CU는 복수 개의 QG로 분할될 수 있으며, 각 QG 중의 하나 또는 복수 개의 잔차 계수는 하나의 QP 값을 공유하고, 나아가, 비디오 디코더는 픽처 프레임에 대응하는 하나 또는 복수 개의 CU에 대해 더 정밀한 입도의 QP 결책을 수행하여, 일정한 압축률을 확보하는 상황 하에, 픽처 프레임의 디코딩 왜곡을 낮추고, 비디오 픽처 디코딩의 진실성과 정확성을 향상시킨다.
일 선택 가능한 구현 방식에서, 하나의 QG는 하나의 픽셀 포인트 또는 복수 개의 픽셀 포인트를 포함할 수 있으며, 각 픽셀 포인트는 모두 상응한 잔차 계수를 구비한다.
첫 번째 가능한 경우, 하나의 QG가 하나의 픽셀 포인트를 포함할 경우, QG의 양자화 과정은 픽처 프레임의 적응적 포인트별 양자화라고도 지칭될 수 있으며, 당해 포인트별 양자화는 QG 분할을 하지 않는 CU에 사용될 수도 있다. 포인트별 양자화의 특징은 각 픽셀 포인트가 상이한 QP를 사용하는 것을 허락하는 것인바, QP의 입도를 픽셀 레벨로 세분화하는 것에 해당된다. 이러한 방법으로, 포인트별 양자화의 방법을 사용하여 픽처 프레임에 대해 역양자화를 수행하여, 픽처 프레임의 압축률이 변하지 않으면서, 픽처 프레임의 주관 품질을 대폭 향상시킬 수 있다.
두 번째 가능한 경우, 하나의 QG가 복수 개의 픽셀 포인트를 포함할 경우, 하나의 QG에 포함된 복수 개의 픽셀 포인트에 대응하는 잔차 계수는 하나의 QP 값을 공유할 수 있다.
다른 일 선택 가능한 구현 방식에서, CU는 이하 방식을 통해 결정된 것일 수 있다: 비디오 디코더(200)가 제1 규칙에 따라 하나의 픽처 프레임에 포함된 하나의 CU를 분할하여, 복수 개의 QG를 획득한다.
당해 제1 규칙은 분할 영역과 분할 방식을 포함하며, 당해 분할 영역이 변환 영역 또는 픽셀 영역이고, 당해 분할 방식은 균일 분할 및 비균일 분할 중 적어도 하나를 포함한다.
하나의 CU에 포함된 복수 개의 잔차 계수의 위치는 좌표에 의해 표기되고, 당해 표기는 횡좌표 및 종좌표를 포함할 수 있다. 예컨대, 잔차 계수의 위치 좌표가 (i, j)이고, i가 횡좌표이며, j가 종좌표이다. 아래 몇 가지 가능한 예시에서, 제1 규칙 및 CU 내의 QG의 분할에 대해 설명한다.
첫 번째 가능한 예시에서, 만약 분할 영역의 타입이 변환 영역이면, 비디오 디코더(200)가 하나의 CU를 분할하여 복수 개의 QG를 얻는 과정은: 복수 개의 잔차 계수 중, 좌표 및 제1 좌표 임계값에 도달하지 않은 잔차 계수를 제1 QG로 분할하고, 좌표 합이 제1 좌표 임계값에 도달한 잔차 계수를 제2 QG로 분할하는 단계를 포함한다. 당해 좌표 합이 잔차 계수의 횡좌표와 종좌표의 합이다.
도 6은 본 출원에서 제공하는 변환 영역 분할의 모식도이며, 하나의 CU는 16개 잔차 계수에 대응하는 영역을 포함하며, 여기서, 좌상측의 잔차 계수의 좌표가 (1,1)이고, 우하측의 잔차 계수의 좌표가 (4,4)이다.
QG(2-1)는 변환 영역의 QG 2분 방식을 도시하는 바, (i, j)위치의 잔차 계수에 대해, “i + j ≤ 임계값 1”을 충족시키는 잔차 계수가 제1 QG이고, 기타가 제2 QG인바, 예컨데 당해 임계값 1이 5.5이다. 추가로, “i + j < 임계값 1”을 충족시키는 잔차 계수가 제1 QG이고, 기타가 제2 QG일 수 있다.
두 번째 가능한 예시에서, 만약 분할 영역의 타입이 변환 영역이고, 비디오 디코더(200)가 하나의 CU를 분할하여 복수 개의 QG를 얻는 과정은: 복수 개의 잔차 계수 중, 좌표 및 제1 좌표 임계값에 도달하지 않은 잔차 계수를 제1 QG로 분할하고, 좌표 합이 제1 좌표 임계값에 도달하고, 제2 좌표 임계값에 도달하지 않은 잔차 계수를 제2 QG로 분할하고, 좌표 합이 제2 좌표 임계값에 도달한 잔차 계수를 제3 QG로 분할하는 단계를 포함한다. 당해 제2 좌표 임계값이 제1 좌표 임계값보다 크다.
도 6에 도시된 바와 같이, QG(3-1)은 변환 영역의 QG 3분 방식을 도시하며, (i, j) 위치의 잔차 계수에 대해, “i + j < 임계값 1”을 충족시키는 잔차 계수가 제1 QG이고, “임계값 1 ≤i + j < 임계값 2”를 충족시키는 잔차 계수가 제2 QG이며, “i + j ≥ 임계값 2”를 충족시키는 잔차 계수가 제3 QG이고, 임계값 2가 임계값 1보다 큰바, 예컨대 임계값 1=5.5이고, 임계값 2=6.5이다.
추가로, “i + j ≤ 임계값 1”을 충족시키는 잔차 계수가 제1 QG이고, “임계값 1 <i + j ≤ 임계값 2”를 충족시키는 잔차 계수가 제2 QG이며, “i + j > 임계값 2”를 충족시키는 잔차 계수가 제3 QG일 수 있으며, 임계값 2는 임계값 1보다 큰바, 예컨대 임계값 1=5이고, 임계값 2=6이다.
세 번째 가능한 예시에서, 만약 분할 영역의 타입이 변환 영역이고, 비디오 디코더(200)가 하나의 CU를 분할하여 복수 개의 QG를 얻는 과정은: 복수 개의 잔차 계수에 대해 정렬을 수행하여, 복수 개의 잔차 계수 중 제1 비례 임계값에 도달하지 않은 잔차 계수를 제1 QG로 분할하고, 제1 비례 임계값에 도달한 잔차 계수를 제2 QG로 분할하는 단계를 포함한다. 당해 복수 개의 잔차 계수의 정렬 방식은 Z자형, 역방향 Z자형 중 임의의 하나이다.
예컨대, 도 6에 도시된 바와 같이, QG(2-2)는 Z자형의 변환 영역의 QG 2분 방식을 도시하는 바, 앞의 7/16(43.75%)의 잔차 계수가 제1 QG에 분할되고, 나머지 잔차 계수는 제2 QG에 분할된다.
또 예컨대, 도 6에 도시된 바와 같이, QG(2-3)은 반Z자형의 변환 영역의 QG 2분 방식을 도시하며, 앞의 7/16(43.75%)의 잔차 계수는 제1 QG에 분할되고, 나머지 잔차 계수는 제2 QG에 분할된다.
네 번째 가능한 예시에서, 만약 분할 영역의 타입이 변환 영역이면, 비디오 디코더(200)가 하나의 CU를 분할하여 복수 개의 QG를 얻는 과정은: 복수 개의 잔차 계수에 대해 정렬을 수행하여, 복수 개의 잔차 계수 중 제1 비례 임계값에 도달하지 않은 잔차 계수를 제1 QG로 분할하고, 제1 비례 임계값에 도달하지만, 제2 비례 임계값에 도달하지 않은 잔차 계수를 제2 QG로 분할하며, 제2 비례 임계값에 도달한 잔차 계수를 제3 QG로 분할하는 단계를 포함한다. 당해 제2 비례 임계값은 제1 비례 임계값보다 크다.
예컨대, 도 6에 도시된 바와 같이, QG(3-2)는 Z자형의 변환 영역의 QG 3분 방식을 도시하며, 앞의 5/16(31.25%)의 잔차 계수가 제1 QG에 분할되고, 뒤의 3/16(18.75%)의 잔차 계수는 제2 QG에 분할되며, 나머지 잔차 계수가 제3 QG에 분할된다.
또 예컨대, 도 6에 도시된 바와 같이, QG(3-3)은 반Z자형의 변환 영역의 QG 3분 방식을 도시하며, 앞의 5/16(31.25%)의 잔차 계수가 제1 QG에 분할되고, 뒤의 3/16(18.75%)의 잔차 계수는 제2 QG에 분할되며, 나머지 잔차 계수가 제3 QG에 분할된다.
상술한 첫 번째 내지 네 번째 가능한 예시는 단지 본 실시예가 CU 내의 변환 영역의 분할을 설명하기 위해 제공한 예시일 뿐, 본 출원에 대한 제한으로 이해해서는 아니된다. 분할 영역의 타입이 변환 영역일 경우, 좌표 임계값, 비례 임계값의 선택은 CU의 픽처 내용 또는 비디오 인코딩 및 디코딩의 수요에 기반하여 결정될 수 있으며, 본 출원은 이에 대해 한정하지 않는다. 추가로, 하나의 CU 내의 QP 결책 정밀도를 향상시키기 위해, 변환 영역은 또한 보다 많은 QG로 분할될 수 있는 바, 예컨데 4, 5, 10 또는 더 많은 것 등으로 분할될 수 있으며, 본 출원은 이에 대해 한정하지 않는다.
분할 영역의 타입이 픽셀 영역일 경우, 아래 몇 가지 가능한 예시에서, 제1 규칙 및 CU 내의 QG의 분할에 대해 설명한다.
다섯 번째 가능한 예시에서, 비디오 디코더(200)는 복수 개의 잔차 계수에 대해 수평 또는 수직 방향의 대칭 분할을 수행하여, 포함된 잔차 계수의 수량이 일치한 2개 QG를 획득한다. 이 2개 QG가 포함하는 잔차 계수의 비례가 1:1이다.
도 7은 본 출원에서 제공하는 픽셀 영역 분할의 모식도이며, QG_픽셀(pixel, P)(2-1)은 CU의 수직 방향에서 대칭 2분을 수행하는 예시이며, QG_P(2-4)는 CU의 수평 방향에서 대칭 2분을 수행하는 예시이다.
여섯 번째 가능한 예시에서, 비디오 디코더(200)는 복수 개의 잔차 계수에 대해 수평 또는 수직 방향의 대칭 분할을 수행하여, 3개 QG를 획득한다. 3개 QG 중 2개의 서로 인접하지 않은 QG가 포함하는 잔차 계수의 수량이 일치하고, 또한 다른 하나의 QG가 포함하는 잔차 계수의 수량은 2개 서로 인접하지 않은 QG가 포함하는 잔차 계수의 수량과 일치하다.
예컨데 도 7에 도시된 바와 같이, QG_P(3-1)는 CU의 수직 방향에서 대칭 3분을 수행하는 예시를 도시하며, 양측의 QG가 포함하는 잔차 계수의 수량이 동일하며, 이 3개 QG가 포함하는 잔차 계수의 수량 비례가 1:2:1이다. QG_P(3-4)는 CU의 수직 방향에서 대칭 3분을 수행하는 예시를 도시하며, 이 3개 QG가 포함하는 잔차 계수의 수량 비례가 1:2:1이다.
일곱 번째 가능한 예시에서, 비디오 디코더(200)가 복수 개의 잔차 계수에 대해 수평 또는 수직 방향의 분할을 수행하여, 포함된 잔차 계수의 수량이 일치하지 않은 2개 QG를 획득한다.
예컨대, 예컨데 도 7에 도시된 QG_P(2-2)는 CU의 수직 방향에서 2분을 수행하는 예시를 도시하며, 이 2개 QG가 포함하는 잔차 계수의 비례가 1:3이다.
또 예컨대, QG_P(2-3)는 CU의 수직 방향에서 2분을 수행하는 예시를 도시하며, 이 2개 QG가 포함하는 잔차 계수의 비례가 3:1이다.
또 예컨대, QG_P(2-5)는 CU의 수평 방향에서 2분을 수행하는 예시를 도시하며, 이 2개 QG가 포함하는 잔차 계수의 비례가 1:3이다.
또 예컨대, QG_P(2-6)는 CU의 수직 방향에서 2분을 수행하는 예시를 도시하며, 이 2개 QG가 포함하는 잔차 계수의 비례가 3:1이다.
여덟 번째 가능한 예시에서, 비디오 디코더(200)는 복수 개의 잔차 계수에 대해 수평 또는 수직 방향의 분할을 수행하여, 3개 QG를 획득한다. 이 3개 QG가 포함하는 잔차 계수에 대칭 관계가 존재하지 않는다.
예컨대, 예컨데 도 7에 도시된 QG_P(3-2)는 CU의 수직 방향에서 3분을 수행하는 예시를 도시하며, 이 3개 QG가 포함하는 잔차 계수의 비례가 1:1:2이다.
또 예컨대, QG_P(3-3)은 CU의 수직 방향에서 3분을 수행하는 예시를 도시하며, 이 3개 QG가 포함하는 잔차 계수의 비례가 2:1:1이다.
또 예컨대, QG_P(3-5)는 CU의 수평 방향에서 3분을 수행하는 예시를 도시하며, 이 3개 QG가 포함하는 잔차 계수의 비례가 1:1:2이다.
또 예컨대, QG_P(3-6)은 CU의 수직 방향에서 3분을 수행하는 예시를 도시하며, 이 3개 QG가 포함하는 잔차 계수의 비례가 2:1:1이다.
상술한 다섯 번째 내지 여덟 번째 가능한 예시는 단지 본 실시예로서 CU 내의 픽셀 영역의 분할을 설명하기 위해 도시한 예시일뿐, 본 출원에 대한 제한으로 이해해서는 아니된다. 분할 영역의 타입이 픽셀 영역일 경우, QG가 포함하는 잔차 계수의 비례는CU의 픽처 내용 또는 비디오 인코딩 및 디코딩의 수요에 기반하여 결정될 수 있으며, 본 출원은 이에 대해 한정하지 않는다. 추가로, 하나의 CU 내의 QP 결책 정밀도를 향상시키기 위해, 픽셀 영역은 또한 보다 많은 QG로 분할될 수 있는 바, 예컨데 4, 5, 10 또는 더 많은 것 등으로 분할될 수 있으며, 본 출원은 이에 대해 한정하지 않는다.
이러한 방법으로, 비디오 디코더(200)가 픽셀 영역 및 변환 영역의 잔차 계수에 대해 상이한 QG 분할 방식을 이용하고, QP 양자화 과정도 상이함으로써, 픽처 디코딩의 왜곡을 낮춘다. QP 양자화의 과정에 대해, 본문 중 QP 값의 획득 과정에 관한 설명을 참조할 수 있으며, 여기서 더 이상 설명하지 않는다.
계속해서 도 5를 참조하면, 비디오 디코더(200)가 하나의 픽처 프레임의 복수 개의 QP 값을 획득한 후, 본 실시예의 픽처의 디코딩 방법은 이하 단계 S530를 더 포함한다.
S530, 비디오 디코더(200)는 복수 개의 QP 값에 의거하여 하나의 픽처 프레임에 대해 디코딩을 수행한다.
예컨대, 비디오 디코더(200)는 복수 개의 QP 값에 의거하여 하나의 픽처 프레임에 대해 디코딩을 수행한 후, 디코딩을 거친 후의 픽처를 획득한다. 비디오 디코더(200)가 복수 개의 픽처 프레임을 디코딩한 후, 비트 스트림을 디코딩한 후의 비디오를 획득한다.
이러한 방법으로, 본 실시예 중, 비디오 디코더는QG를 입도로 픽처 디코딩의 QP 양자화를 수행하며, 하나의 CU가 복수 개의 QG로 분할될 수 있으며, 또한 하나의 QG가 하나의 QP 값에 대응하므로, 하나의 CU 중 모든 잔차 계수가 모두 동일한 QP 값을 사용하여 픽처 왜곡이 큰 것을 초래하는 것에 비해, 본 실시예 중, 비디오 디코더는 픽처 프레임에 대응하는 하나 또는 복수 개의 CU에 대해 더 정밀한 입도의 QP 결책을 수행하여, 일정한 압축률을 확보하는 상황 하에, 픽처 프레임의 디코딩 왜곡을 낮추고, 비디오 픽처 디코딩의 진실성과 정확성을 향상시킨다.
본 출원에서 제공하는 기술의 기초상에, 비디오 인코딩/디코딩의 과정 중, 비디오 인코더/비디오 디코더는 각 QG(또는 CU)의 QP 값을 획득하고, 여기서 몇 가지 가능한 구현 방식을 제공한다.
일 가능한 구현 방식 중, 하나의 QG에 대응하는 하나의 QP 값은 휘도QP 값 및 색차 QP 값을 포함한다. 휘도QP 값(QP_Y)은 픽처 프레임의 휘도(Luminance 또는 Luma)에 대해 양자화를 수행하거나 또는 역양자화를 수행하는 데에 필요한 QP 값을 가리키며, 색차QP 값은 픽처 프레임의 색차(Chrominance 또는 Chroma)에 대해 양자화를 수행하거나 또는 역양자화를 수행하는 데에 필요한 QP 값을 가리킨다. 예시적으로, 상술한 S520에 대해, 비디오 디코더(200)는 하나의 픽처 프레임의 복수 개의 QP 값을 결정하며, 이하 두 가지 가능한 경우를 포함할 수 있다.
첫 번째 가능한 경우, 비디오 디코더(200)가 각각 하나의 QG의 휘도 QP 값 및 색차 QP 값을 획득한다.
두 번째 가능한 경우, 우선, 비디오 디코더(200)는 하나의 QG의 휘도 QP 값을 획득하고; 다음에, 비디오 디코더(200)는 휘도QP 값에 기초하여 하나의 QG의 색차QP 값을 결정한다. 예컨데, 색차QP가 QP_Y에 픽처 파라미터 집합(picture parameter set, PPS) 층 및 Slice 층의 QP오프셋 값을 추가한 것이다.
예시적으로, 상술한 휘도 QP 값 및 색차 QP 값은 비디오 디코더(200)가 비트 스트림을 해석하여 얻은 것일 수 있다.
CU에 포함된 QG에 대해 QP 결책(또는 QP 양자화라고도 지칭함)을 수행할 경우, 비디오 디코더(200)는 먼저CU 레벨의 QP 값을 획득하고, 다시 당해 CU 내의 QG 레벨의 QP 값을 획득할 수 있다.
아래 두 가지 가능한 구현 방식을 제공하여 하나의 픽처 프레임의 복수 개의 QP 값을 결정한다.
첫 번째 가능한 구현 방식, 직접 인코딩/디코딩: 비디오 디코더(200)가 비트 스트림을 해석하여 하나의 픽처 프레임의 표기 정보를 획득하고, 당해 표기 정보가 하나의 QG의 QP 값을 지시하는 데에 사용되거나, 및/또는, 표기 정보가 하나의 CU의 QP 값을 지시하는 데에 사용된다.
예컨대, 거의 무손실 압축(Near-Lossless Compression) 중, 작은 QP 값이 출현하는 확률이 큰 QP 값보다 크기에, 비디오 디코더(200)가 절단된 단항 코드, 절단된 라이스 코드(rice code) 또는 지수 콜럼버스 코드 등 방식을 사용할 수 있으며, 비트 스트림에 휴대된 표기 정보에 포함된 QP 값을 이용하여, QG에 포함된 잔차 계수(레벨)에 대해 역양자화를 수행할 수 있다.
이러한 방법으로, 비디오 인코더(200)가 하나의 CU에 대해 QP 결책을 수행할 경우, 당해 표기 정보가 당해 CU의 QP 값을 휴대할 수 있다. CU 내의 QG에 대해 QP 결책을 수행할 필요가 없는 경우, 비디오 디코더(200)가 비트 스트림에 휴대된 표기 정보에 의거하여 CU의 QP 값을 결정함으로서, 비디오 디코더가 비트 스트림 중의 픽처 프레임에 대해 도출을 수행하여 CU의 QP 값을 획득하는 것을 피하고, 비디오 디코더의 계산 소스 소모를 줄이고, 픽처 디코딩의 효율을 향상시킨다.
또 예컨대, 비디오 인코더(200)가 하나의 CU 내의 복수 개의 QG에 대해 QP 결책을 수행할 경우, 당해 표기 정보에 당해 복수 개의 QG 중 임의의 하나의 QG의 QP 값을 휴대할 수 있다.
또 예컨대, 당해 표기 정보에 CU의 QP 값, 및 당해 CU 중 임의의 하나의 QG의 QP 값을 휴대할 수 있다.
이러한 방법으로, 비디오 인코더(200)가 하나의 QG에 대해 QP 결책을 수행할 경우, 당해 표기 정보에 당해 QG의 QP 값을 휴대할 수 있음으로써, 비디오 디코더가 비트 스트림 중의 픽처 프레임에 대해 도출을 수행하여 QG의 QP 값을 획득하는 것을 피하고, 비디오 디코더의 계산 소스 소모를 줄이고, 픽처 디코딩의 효율을 향상시킨다.
두 번째 가능한 구현 방식, 예측 인코딩/디코딩: 비디오 디코더(200)가 실제(인코딩) QP 값과 예측 QP(predict QP, predQP) 값의 차이값(deltaQP)에 대해 인코딩을 수행하는 단계는 이하 몇개 단계를 포함한다: 우선, 현재 블록(CU 또는 QG)의predQP를 획득하고; 다음에, 현재 블록의 deltaQP를 결정하며; 마지막으로, 실제(인코딩) QP 값이: QP = predQP + deltaQP인 것을 결정한다.
아래 비디오 디코더(200)가 하나의 픽처 프레임 중 하나의 QG의 QP 값을 결정하는 것을 예를 들어 상세하게 설명하는 바, 예컨데 도 8에 도시된 바와 같이, 도 8은 본 출원에서 제공하는 예측 인코딩 방식을 이용하여 QP를 획득하는 흐름 모식도이며, 당해 QP를 획득하는 과정은 비디오 디코더 또는 비디오 인코더에 의해 구현될 수 있으며, 여기서 비디오 디코더(200)를 예를 들어 설명하며, 당해 QP를 획득하는 과정은 이하 단계를 포함한다.
S810, 비디오 디코더(200)가 QG의 예측 QP 값을 획득한다.
가능한 구현 방식 중, 비디오 디코더(200)가 QG가 소재하는 CU의 QP 값을 당해 QG의 예측 QP 값으로 이용한다. 예시적으로, 당해 CU의 QP 값은 비디오 디코더(200)가 비트 스트림을 해석한 표기 정보에 의해 결정될 수 있다.
다른 가능한 구현 방식 중, 비디오 디코더(200)가 먼저 QG가 소재하는 CU 중 당해 QG와 인접한 적어도 하나의 기타 QG의 QP 값을 획득하고, 또한 당해 적어도 하나의 기타 QG의 QP 값에 의거하여, 상술한 QG의 예측 QP 값을 결정할 수 있다. 예컨대, 비디오 디코더(200)가 당해 QG와 인접한 기타 QG의 QP 값을 당해 QG의 예측 QP 값으로 이용한다.
S820, 비디오 디코더(200)가 QG의 QP 오프셋을 획득한다.
본문에서, QP 오프셋은 deltaQP로 표시할 수 있다.
계속해서 도 8을 참조하면, S820에 대해, 본 실시예는 두 가지 가능한 구현 방식을 제공한다.
첫 번째 선택 가능한 구현 방식 중, 비디오 디코더(200)가 비트 스트림에 휴대된 표기 정보를 이용하여 QG의 QP 오프셋을 결정할 수 있는 바, 예컨데 도 8에 도시된 S820A이다.
S820A, 비디오 디코더(200)가 비트 스트림을 해석하여QG의 QP 오프셋을 지시하는 표기 정보를 획득한다.
예컨대, 비디오 디코더(200)가 비트 스트림을 획득한 후, 당해 비트 스트림에 대해 해석을 수행하여 QG가 소재하는 픽처 프레임의 표기 정보를 획득하고, 당해 표기 정보는 당해 QG의 QP 오프셋(deltaQP)을 지시하는 데에 사용된다.
두 번째 선택 가능한 구현 방식 중, 비디오 디코더(200)가 도출 정보를 이용하여 QG의 QP 오프셋을 결정할 수 있는 바, 예컨데 도 8에 도시된 S820B이다.
S820B, 비디오 디코더(200)가 QG의 도출 정보에 의거하여 QG의 QP 오프셋을 결정한다.
당해 도출 정보가 당해 QG의 평탄도 정보 또는 텍스처 정도 정보, 비트 스트림 버퍼의 남은 공간 또는 왜곡 구속 정보 중 한 가지 또는 몇 가지의 조합일 수 있다. 여기서, 평탄도 정보 또는 텍스처 정도 정보는 QG의 픽처 기울기를 지시하는 데에 사용되고; 왜곡 구속 정보는 하나의 픽처 프레임에 포함된 복수 개의 QG 중 임의의 하나의 QG의 왜곡 임계값을 지시하며; 비트 스트림 버퍼의 남은 공간은 비트 스트림 버퍼(예컨데 buffer 공간)의 사용 가능한 여분을 지시하는 데에 사용된다.
첫 번째 경우, 도출 정보가 평탄도 정보 또는 텍스처 정도 정보이면, 비디오 디코더(200)가 당해 평탄도 정보 또는 텍스처 정도 정보에 의거하여 QG의 QP 오프셋을 도출할 수 있다. 예컨대, 비디오 디코더(200)가 현재 블록(QG)의 텍스처 복잡도를 계산하고, 텍스처 복잡도가 높은(예컨데 텍스처 복잡도 임계값에 도달함) QG에 대해, 큰 QP(예컨데 20)를 사용하고; 텍스처 복잡도가 낮은(예컨데 텍스처 복잡도 임계값에 도달하지 않음) QG에 대해, 작은 QP(예컨데 5)를 사용한다.
두 번째 경우, 도출 정보가 비트 스트림 버퍼의 남은 공간이면, 비디오 디코더(200)가 전체 폭의 픽처의 모든 픽셀의 평균 비트 수 BPPtotal, 및 나머지 인코딩되지 않은 픽셀의 평균 비트 수 BPPleft를 계산하고, 만약 BPPleft > BPPtotal이면, QP를 감소시키고, 그렇지 않을 경우 QP를 증대한다. 여기서, BPPtotal 및 BPPleft는 아래 수학식을 통해 얻을 수 있다.
세 번째 경우, 만약 도출 정보가 왜곡 구속 정보이면, D를 양자화 왜곡(역양자화 후의 재구축 값과 양자화 전의 잔차 차이)으로 설정할 수 있고, 또한 임의의 행렬 A에 대해 아래와 같이 표시할 수 있다:
(1), 만약 픽셀 영역의 잔차에 대해 양자화를 수행하면, 픽셀 영역의 최대 왜곡이 △를 초과하지 않는 충분하고 필요한 조건은 △이고, 이로부터 픽셀 영역의 QP 값을 도출할 수 있다.
(2), 만약 변환 영역의 잔차에 대해 양자화를 수행하면, R를 픽셀 영역의 잔차로 설정할 수 있고, U, V가 수평 변환 행렬 및 수직 변환 행렬이면, 픽셀 영역의 최대 왜곡과 변환 영역의 최대 왜곡 사이는 아래 수학식을 충족시킨다. 따라서, 픽셀 영역의 최대 왜곡이 △를 초과하지 않는 충분한 조건은: 변환 영역의 최대 왜곡이 을 충족시키는 것이며, 이로부터 변환 영역의 QP 값을 도출할 수 있다.
계속해서 도 8을 참조하면, 본 실시예의 QP를 획득하는 과정은 이하 단계를 더 포함한다.
S830, 비디오 디코더(200)가 QG의 예측 QP 값 및 QP 오프셋에 의거하여 QG의 QP 값을 결정한다.
예컨대, 비디오 디코더(200)는 QG의 예측 QP 값과 QP 오프셋의 합을 당해 QG의 QP 값으로 이용한다.
주의해야 할 것은, S820B에서 제공하는 세 번째 경우는, 비디오 디코더(200)가 QG의 QP 값을 획득하는 것은 이하 경우가 존재할 수 있다.
비디오 디코더(200)가 QG의 참조 QP 값에 의거하여 대응하는 예측 왜곡을 결정하고, 만약 예측 왜곡이 왜곡 임계값보다 작거나 같으면, 당해 참조 QP 값을 QG의 QP 값으로 이용하고; 만약 예측 왜곡이 왜곡 임계값보다 크면, 왜곡 임계값에 의해 결정된 QP 값을 QG의 QP 값으로 이용한다.
예시1 중, 만약 도출 정보가 단지 왜곡 구속 정보를 포함하면, 당해 참조 QP 값은 S810에서 결정된 QG의 예측 QP 값을 가리킨다.
예시2 중, 만약 도출 정보가 왜곡 구속 정보 및 텍스처 정도 정보(또는 평탄도 정보)를 포함하면, 당해 참조 QP 값은 텍스처 정도 정보(또는 평탄도 정보)에 의해 결정된 deltaQP 및 S810에서 결정된 예측 QP 값을 더하여 얻은 QP 값을 가리킨다.
예시3 중, 만약 도출 정보가 왜곡 구속 정보 및 비트 스트림 버퍼의 남은 공간을 포함하면, 당해 참조 QP 값은 비트 스트림 버퍼의 남은 공간에 의해 결정된 deltaQP 및 S810에서 결정된 예측 QP 값을 더하여 얻은 QP 값을 가리킨다.
즉, 상술한 도출 정보는 QG를 도출하는 데에 사용되는 deltaQP일 수도 있고, 직접 QG를 결정하는 데에 사용되는 실제 인코딩 QP일 수도 있으며, 도출 정보의 구체적인 사용 과정은 비디오 인코딩 및 디코딩 중 QP 양자화/역양자화의 수요에 기반하여 결정을 수행할 수 있으며, 상술한 3가지 경우 및 3가지 예시를 본 출원에 대한 제한으로 이해해서는 아니된다.
상술한 예시1 내지 예시3은 단지 본 실시예가 비디오 디코더(200)가 도출 정보를 이용하여 QG의 QP 값을 결정하는 것을 설명하기 위한 예시이며, 본 출원에 대한 제한으로 이해해서는 아니된다, 다른 일부 예시에서, 도출 정보는 동시에 왜곡 구속 정보, 텍스처 정도 정보(또는 평탄도 정보) 및 비트 스트림 버퍼의 남은 공간을 포함할 수 있으며, 본 출원은 이에 대해 한정하지 않는다.
주의해야 할 것은, 상술한 색차/휘도QP 값, 직접 인코딩/예측 인코딩, 비트 스트림 휴대/도출 정보 해석은 본 출원에서 제공하는 일부 예시일 뿐, 본 출원에 대한 제한으로 이해해서는 아니된다.
일 선택 가능한 구현 방식에서, 하나의 픽처 프레임은 적어도 제1 부분 CU 및 제2 부분 CU를 포함하고, 제1 부분 CU 및 제2 부분 CU는 중첩 영역을 구비하지 않고, 또한 제1 부분 CU 및 제2 부분 CU의 QP 값의 획득 방식이 상이하다. 예컨데 제1 부분 CU의 QP 값 획득 방식은 비트 스트림의 표기 정보에 휴대하는 것이고, 제2 부분 CU의 QP 값 획득 방식은 비디오 디코더(200)에 의해 도출되는 것이다.
구체적으로, 상술한 비디오 디코더(200)가 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 과정은 이하 과정을 포함할 수 있다: 첫째, 비디오 디코더(200)가 비트 스트림을 해석하여 하나의 픽처 프레임의 표기 정보를 획득하고, 당해 표기 정보가 제1 부분 CU의 QP 오프셋을 포함하며, 비디오 디코더(200)가 표기 정보에 의거하여 제1 부분 CU의 QP 값을 결정하며; 둘째, 비디오 디코더(200)가 제2 부분 CU에 대해, 제2 부분 CU의 예측 QP 값을 획득하고, 비디오 디코더(200)가 또한 제2 부분 CU의 예측 QP 값 및 도출 정보에 의거하여, 제2 부분 CU의 QP 값을 결정한다. 도출 정보의 관련 내용은 상술한 QG의 도출 정보에 대한 설명을 참조할 수 있는 바, 그 중의 QG를 CU로 대체하면 되고, 여기서 더 이상 설명하지 않는다.
예컨대, 비디오 디코더(200)가 하나의 픽처를 여러 개 영역으로 분할하고, 상이한 영역의 CU에 대해 상이한 QP 처리 방식을 사용한다. 픽처 레벨에서 상이한 영역의 기준 QP 값을 전송하고, CU 레벨에서 상이한 영역의 표기 정보를 전송한다. 상이한 영역의 CU 레벨QP는 비트 스트림을 통해 전송되는 방식을 통해 획득할 수도 있고, 디코더측이 도출하는 방식을 통해 획득할 수도 있다. 예컨대 비디오 디코더가 픽처를 관심 갖는 (region of interest, ROI) 영역 및 비ROI 영역으로 분할하고, ROI 영역의 CU(제1 부분 CU)에 대해, 비트 스트림을 통해 전송하는 방식(예컨데 상술한 표기 정보)을 통해 QP 값을 얻고; 비ROI 영역의 CU(제2 부분 CU)에 대해, 디코더측이 도출하는(예컨데 상술한 도출 정보) 방식을 통해 QP 값을 얻는다.
일 선택 가능한 구현 방식으로서, 하나의 픽처 프레임의 하나의 CU는 복수 개의 QG를 포함하고, 이 복수 개의 QG는 일부만 QP 양자화를 수행할 수도 있고, 전부 QP 양자화를 수행할 수도 있다.
예컨대, S520의 과정 중, 만약 하나의 픽처 프레임의 하나의 CU에 포함된 모든 QG에 대해 인코딩 과정 중 모두 양자화를 수행하면, 비디오 디코더(200)가 먼저 당해 하나의 픽처 프레임의 하나의 CU에 포함된 모든 QG의 스캔 순서를 결정할 수 있다. 계속해서, 비디오 디코더(200)가 모든 QG 중의 각 QG에 대해, 스캔 순서에 따라 각 QG의 QP 값을 얻는다. 여기서, 스캔 순서는: 상에서 하로, 좌에서 우로, Z자형 또는 역방향 Z자형 순서 중 임의의 하나를 포함한다.
구체적으로, 만약 단지 일부 QG에 대해서만 양자화를 수행하고, 기타 QG에 대해 양자화를 수행하지 않으면, 양자화를 수행하는 QG의 위치를 식별해야 하고, 다음에 이러한 QG를 위해 상응한 QP를 획득한다. 예컨대, 이러한 QG 각각을 위해 모두 하나의 QP 오프셋을 인코딩할 수 있다.
또 예컨대, S520의 과정 중, 만약 하나의 픽처 프레임의 하나의 CU에 포함된 일부 QG가 인코딩 과정 중 양자화를 수행하면, 비디오 디코더(200)가 비트 스트림을 해석하여 하나의 픽처 프레임의 하나의 CU 중 표기된 하나 또는 복수 개의 QG를 결정할 수 있으며, 당해 표기된 하나 또는 복수 개의 QG가 디코딩 과정 중 QP 역양자화를 수행해야 하며; 나아가, 비디오 디코더(200)가 표기된 하나 또는 복수 개의 QG 중 각 QG에 대해, 각 QG의 QP 값을 획득한다.
구체적으로, 만약 모든 QG 모두에 대해 양자화를 수행하면, 특정 스캔 순서에 따라 순서대로 각 QG를 위해 상응한 QP를 획득해야 하며, 여기에서의 스캔 순서는 분할 방식과 상관되며, 상에서 하로, 좌에서 우로, Z자형 또는 역방향 Z자형 순서일 수 있다. 예컨대, 이러한 QG 각각을 위해 모두 하나의 QP 오프셋을 인코딩한다.
이러한 방법으로, 하나의 픽처 프레임의 하나의 CU 중 모든 QG에 대해, 비트 스트림에 휴대된 표기 정보를 이용하여 당해 모든 QG의 QP 양자화 방식(일부 양자화 또는 전부양자화)을 구분함으로써, 비디오 디코더가 무차별하게 QP 양자화를 수행하는 것을 피하고, 비디오 디코더QP 양자화를 수행하는 데에 필요한 계산 소스 및 픽처 왜곡을 감소시키며, 비디오의 디코딩 효율과 정확성을 향상시킬 수 있다.
추가로, 하나의 QG가 단지 하나의 픽처 프레임 내의 하나의 픽셀 포인트를 포함하는 경우, 하나의 픽셀 포인트가 하나의 QP 값에 대응하고, 하나의 픽처 프레임에 포함된 모든 픽셀 포인트 중 적어도 2개 픽셀 포인트의 QP 값이 상이하며, 당해 픽셀 포인트의 QP 값 양자화 과정(포인트 예측 모드)은 포인트별 양자화 기술을 이용할 수 있는바, 예컨대, 당해 포인트별 양자화 기술은 이하 과정을 포함할 수 있다: 비디오 디코더(200)가 현재 픽셀 포인트 주변의 이미 재구축된 픽셀 정보에 기반하여 적응적으로 현재 픽셀의 QP 값을 조정할 수 있다. 여기서 재구축된 픽셀 정보가 픽셀 값, 평탄도 정보 또는 텍스처 정도 정보, 배경 밝기, 콘트라스트 등을 포함하며 이에 한정되지 않는다.
주의해야 할 것은, 적응적 포인트별 양자화 기술은 QG에 응용될 수도 있고, QG 분할을 하지 않는 CU에 응용될 수도 있다. 포인트별 양자화 기술의 특징이 하나의 픽처 프레임 내의 각 픽셀 포인트가 상이한 QP 값을 사용하는 것을 허락하는 바, QP 값 양자화의 입도를 픽셀 레벨로 정밀화하는 것에 해당된다.
포인트별 양자화 기술의 일 구현 방식은 아래와 같다: 가 현재 CU 또는 QG의 QP 값이고, 이 인간의 눈이 마침 감지할 수 있는 왜곡(Just Noticeable Distortion, JND)에 대응하는 QP 값이며, QP오프셋 값(비트 스트림에서 전송될 수도 있고, 사전에 설정될 수도 있음)이라고 가정하면, 현재 픽셀의 QP 값을 아래와 같이 조정한다:
여기서, 임계값 2>임계값 1이다. 또는,
상술한 두 가지 현재 픽셀의 QP 값의 결정 방식은 단지 본 실시예의 예시일 뿐, 본 출원에 대한 제한으로 이해해서는 아니된다.
이러한 방법으로, 비디오 디코더는 포인트별 양자화 기술을 이용하여, 픽처 프레임의 압축률을 변경하지 않는 전제하에, 대폭으로 픽처 프레임의 주관 품질을 향상시키고, 픽처 프레임의 왜곡을 줄일 수 있다.
아래 일 가능한 구현 방식을 제공하여, 픽처 프레임 내의 픽셀 포인트의 QP 양자화 과정을 설명한다.
예시적으로, 비디오 디코더(200)가 하나의 픽셀 포인트의 예측 QP 값을 획득하고, 또한 하나의 픽셀 포인트의 예측 QP 값 및 도출 정보에 의거하여, 하나의 픽셀 포인트의 QP 값을 결정한다.
가능한 경우, 하나의 픽셀 포인트의 예측 QP 값이 당해 픽셀 포인트가 소재하는 CU 또는 QG의 QP 값이다. 다른 한 가능한 경우, 하나의 픽셀 포인트의 예측 QP 값이 당해 픽셀 포인트 주변의 하나 또는 복수 개의 이미 재구축된 픽셀 포인트의 QP 값에 기반하여 도출하여 얻는 것이며, 여기서, 도출하는 방법은 평균값(예컨데 복수 개의 픽셀 포인트의 QP 값의 평균값), 중앙값(예컨데 복수 개의 픽셀 포인트의 QP 값의 중앙값) 또는 최빈수(예컨데 복수 개의 픽셀 포인트의 QP 값 중 출현 빈도가 최대인 QP 값) 중 적어도 하나를 계산하는 방법이다.
상술한 픽셀 포인트의 도출 정보는 당해 픽셀 포인트 주변의 하나 또는 복수 개의 재구축된 픽셀 포인트의 정보일 수 있다. 여기서, 당해 이미 재구축된 픽셀 포인트의 정보는 픽셀 값, 평탄도 정보 또는 텍스처 정도 정보, 배경 밝기, 콘트라스트 중 임의의 하나 또는 몇 개의 조합을 포함한다. 주의해야 할 것은, 상술한 몇 가지 정보는 단지 본 실시예의 예시일 뿐, 본 출원에 대한 제한으로 이해해서는 아니된다.
또한, 상술한 “주변”은 결정될 QP 값의 픽셀 포인트의 인접한 픽셀 포인트로 이해할 수 있으며, 여기서 몇 가지 가능한 예시에 대해 설명한다, 예컨데 도 9에 도시된 바와 같이, 도 9는 본 출원에서 제공하는 픽셀 포인트의 분포 모식도이며, 도 9 중의 (A)는 현재 픽셀 포인트를 중심으로 한 정사각형 영역을 도시된 바와 같이 분할하며, 여기서 2가지 가능한 경우를 제공한다: 경우 1, 이미 재구축된 픽셀 포인트는 현재 픽셀 포인트를 중심으로, 길이가 3인 정사각형 영역 내의 픽셀 포인트, 예컨데 도 9의 (A)에 도시된 주변 픽셀 포인트 1을 가리키며; 경우 2, 재구축된 픽셀 포인트는 현재 픽셀 포인트를 중심으로, 길이가 5인 정사각형 영역 내의 픽셀 포인트, 예컨데 도 9의 (A)에 도시된 주변 픽셀 포인트 2를 가리킨다.
도 9 중의 (B)는 현재 픽셀 포인트를 중심으로 한 능형 영역 분할의 예를 도시하며, 여기서 2가지 가능한 경우를 제공한다: 경우 1, 이미 재구축된 픽셀 포인트는 현재 픽셀 포인트를 중심으로, 대각선 길이가 3인 능형 영역 내의 픽셀 포인트, 예컨데 도 9의 (B)에 도시된 주변 픽셀 포인트 1을 가리키며; 경우 2, 재구축된 픽셀 포인트는 현재 픽셀 포인트를 중심으로, 대각선 길이가 5인 능형 영역 내의 픽셀 포인트, 예컨데 도 9의 (B)에 도시된 주변 픽셀 포인트 2를 가리킨다.
도 9는 단지 본 실시예에서 현재 픽셀 포인트 주변의 재구축된 픽셀 포인트를 설명하기 위한 예시일뿐, 본 출원에 대한 제한으로 이해해서는 아니된다. 다른 일부 가능한 예시에서, 현재 픽셀 포인트 주변의 재구축된 픽셀 포인트는 당해 현재 픽셀 포인트의 상하와 인접하거나, 또는 좌우와 인접한 하나 또는 2개의 픽셀 포인트를 가리킬 수 있다.
일 선택 가능한 구현 방식으로서, 하나의 픽셀 포인트의 예측 QP 값 및 도출 정보에 의거하여, 하나의 픽셀 포인트의 QP 값을 결정하는 단계는: 하나의 픽셀 포인트 주변의 하나 또는 복수 개의 재구축된 픽셀 포인트의 정보에 기반하여 픽셀 포인트의 지시 정보를 결정하는 단계; 만약 지시 정보가 제1 임계값보다 작거나 같고, 또한 예측 QP 값이 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값보다 크거나 같으면, 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값을 픽셀 포인트의 QP 값로 이용하는 단계를 포함한다.
제1 임계값은 기설정되거나, 또는 비디오 인코딩 및 디코딩의 압축률 또는 왜곡률에 기반하여 결정된 것일 수 있다. 추가로, 제1 임계값은 사용자의 입력 정보에 기반하여 결정된 것일 수도 있다.
주의해야 할 것은, 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값이 픽처 레벨 또는 CU 레벨 정보이다.
예컨대, 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값을 비트 스트림으로부터 해석하여 얻는 바, 예컨데 당해 비트 스트림에 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값, 예컨데 20을 휴대한다.
또 예컨대, 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값을 주변의 재구축된 CU의 평탄도 정보 또는 텍스처 정도 정보, 배경 밝기, 콘트라스트 정보에 기반하여 도출하여 얻는다. QP 값을 도출하여 얻는 과정은 상술한 도 9의 관련 내용을 참조할 수 있으며, 여기서 더 이상 설명하지 않는다.
추가로, 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값은 비디오 인코더 또는 비디오 디코더에 의해 설정된 기설정된 값, 예컨데 15일수 있다. 즉, 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값은 비트 스트림의 표기 정보에 휴대될 수도 있고, 비디오 인코더 또는 비디오 디코더가 비디오 인코딩 및 디코딩 과정 중에 해석한 것일 수도 있으며, 또한 기설정된 값의 QP 값일 수도 있다. 본 실시예는 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값을 현재 픽셀 포인트의 QP 값 결책에 도입하여, 각 픽셀 포인트가 인간의 눈이 마침 감지할 수 있는 왜곡에 상응한 판단 정보를 충족시키게 함으로써, 픽처 왜곡을 낮추고, 픽처의 주관 품질을 향상시킨다.
여기서 일 가능한 구체적인 예시를 제공하여, 픽셀 포인트의 QP 값의 결정 과정을 설명하며, 표 3에 도시된 바와 같이, 표 3은 현재 픽셀 포인트의 구간을 2분하는 QP 값 결정을 도시한다.
구간 2분 ≤임계값 >임계값
방식 1
방식 2
방식 3
여기서, 여기서은 QP오프셋 값(비트 스트림에 전송되거나, 사전에 설정될 수 있음)이다.
방식1: 지시 정보가 임계값보다 작거나 같을 경우, 중 작은 값을 현재 픽셀 포인트의 QP 값으로 이용하고; 지시 정보가 임계값보다 클 경우, 픽셀 포인트의 예측 QP 값()을 현재 픽셀 포인트의 QP 값으로 이용한다.
방식 2: 지시 정보가 임계값보다 작거나 같을 경우, 중 작은 값을 현재 픽셀 포인트의 QP 값으로 이용하고; 지시 정보가 임계값보다 클 경우, 와 QP 오프셋()의 합을 현재 픽셀 포인트의 QP 값으로 이용한다.
방식3: 지시 정보가 임계값보다 작거나 같을 경우, 을 현재 픽셀 포인트의 QP 값으로 이용하고; 지시 정보가 임계값보다 클 경우, 픽셀 포인트의 와 QP 오프셋()의 합을 현재 픽셀 포인트의 QP 값으로 이용한다.
주의해야 할 것은, 상술한 예시 및 표 3은 단지 본 실시예에서 제공하는 현재 픽셀 포인트의 QP 값의 가능한 획득 방식일 뿐, 본 출원에 대한 제한으로 이해해서는 아니된다.
이러한 방법으로, 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값을 현재 픽셀 포인트의 QP 값 결책 과정에 도입함으로써, 각 픽셀 포인트가 인간의 눈이 마침 감지할 수 있는 왜곡에 상응한 판단 정보를 충족시키게 함으로써, 픽처 왜곡을 낮추고, 픽처의 주관 품질을 향상시킨다.
비디오 디코더(200)가 하나의 픽처 프레임의QP 값을 획득한 후, 상술한 S530에 대해, 본 출원은 가능한 구현 방식을 제공하며, 도 10은 본 출원에서 제공하는 픽처 프레임 디코딩의 흐름 모식도이며, S530은 이하 단계 S1010 내지 S(1030)을 포함할 수 있다.
S1010, 복수 개의 QP 값 중 각 QP 값에 대해, QP 값에 대응하는 양자화 보폭(Qstep)을 획득한다.
비디오 디코더는 QP 값에 기반하여, 수학식 도출 및 테이블 조회 중 적어도 하나의 방식을 통해 Qstep을 얻고, 아래 4가지 가능한 구현 방법을 제공한다.
방법 1: Qstep = 2×QP+1.
방법 2: octave를 QP의 랭크(rank)로 표기하는 바, 즉 QP가 매번 octave 증가하면, Qstep는 배로 증가되고, 일반적으로 octave를 6 또는 8로 선택한다. Offset를 하나의 정수 오프셋 값으로 표기하면:
이다.
방법 3: octave를 QP의 랭크로 표기하는 바, 즉 QP가 매번 octave 증가하면, Qstep는 배로 증가되고, 일반적으로 octave를 6 또는 8로 선택한다. Offset을 하나의 정수 오프셋 값으로 표기하고, 는 각각 상향 라운딩 및 하향 라운딩을 나타낸다. 아래와 같이 표기한다.
양자화 보폭이: 이다.
방법 4: 아래 양자화 및 역양자화의 예시를 제공한다.
여기서 가 양자화될 잔차 계수(변환 영역 또는 픽셀 영역)이고, 이 양자화 후의 레벨이며, 가 역양자화 후의 재구축 값이고, Qstep이 양자화 보폭이며, 는 라운딩을 제어하는 파라미터이고, 가 양자화 데드존(deadzone)(레벨이 0인 구간)이다.
를 라운드를 제어하는 파라미터로 표기하면, 가 현재 QG 또는 CU 중 모든 양자화될 잔차 계수이며, T는 방법 3 중의 수학식을 이용하여 획득할 수 있는 바, 아래와 같이 표기한다:
.
T<M일 경우, Qstep은 아래 수학식을 이용하여 얻으며, 그렇지 않을 경우 양자화 계수 및 재구축 값 모두가 0이다.
당해 방법 4중 가능한 구현 방식은: 또는 이며, 여기서 M은 비트 스트림에서 전송될 수 있으며, 직접 비트 깊이를 취할 수도 있다.
픽셀 영역의 잔차를 양자화할 경우, 방법 3은 clip 조작을 통해야만 양자화 계수를 “M - T”개 비트로 표시하는 것을 확보할 수 있으며, 방법 4의 양자화 계수는 천연적으로 “M - T”개 비트로 표시할 수 있으며, clip할 필요가 없다.
추가로, JPEG-XS 중 균일 양자화의 방안은 방법 4 중 f = 0.5를 취하며, 또한 비트 스트림에서 M을 전송할 수 있다.
주의해야 할 것은, QP 값이 클수록, Qstep이 더 크고, 양자화가 거칠수록, 양자화 왜곡이 더 크며, 계수 인코딩의 비트 레이트가 더 작다. 파라미터 는 양자화 데드존의 길이와 상관되고, 가 작을수록, 양자화 데드존이 더 길고, 양자화 후의 레벨이 0에 근접한다. f=0.5일 경우, 상술한 S1010의 방법 4에서 제공하는 양자화 및 역양자화 수학식은 사사오입에 해당하고, 양자화 왜곡이 가장 작다. f<0.5일 경우, 가 작을 수록, 양자화 왜곡이 더 크고, 계수 인코딩의 비트 레이트가 더 작다. H.265 중: I 픽처 , B/P 픽처 를 취한다.
계속해서 도 8을 참조하면, 상술한 S530은 이하 단계를 더 포함할 수 있다.
S(1020), QP 값에 대응하는 QG에 포함된 레벨을 획득한다.
S(1030), 선택된 양자화기의 조합에 의거하여, QG의 레벨에 대해 역양자화를 수행한다.
여기서, 당해 양자화기의 조합이 하나 또는 복수 개의 양자화기를 포함하고, 당해 양자화기가 균일 양자화기 또는 비균일 양자화기다.
예컨대, 균일 양자화기는 균일 스칼라 양자화기를 가리키며, 이의 양자화 또는 역양자화 수학식은 상술한 S1010의 방법 4에서 제공하는 양자화 및 역양자화 수학식을 참조할 수 있으며, 파라미터 는 이하 방법으로 취할 수 있다:
취하는 방법 1: 를 0.5 또는 기타 고정 값으로 취한다.
취하는 방법 2: 는 QP 값, 예측 모드 및 변환할지 여부에 기반하여 적응적으로 결정된다.
또 예컨대, 비균일 양자화기는 비균일 스칼라 양자화기를 가리키며, 양자화 레벨, 양자화 구간 및 역양자화의 재구축 값 사이의 대응 관계는 테이블 조회 통해 얻을 수 있다. 가능한 구현 방식은 예컨대 아래 표 1과 같다.
0 1 2 3
재구축 값
양자화 구간
여기서, 이고, 재구축 값 및 양자화 구간은 비균일적이고, 또한 재구축 값은 소재하는 양자화 구간의 확률의 중심(centroid)이다. 양자화기의 조합은 하나의 비균일 스칼라 양자화기를 이용하거나, 또는 복수 개의 비균일 스칼라 양자화기를 이용할 수 있다.
예컨대, 양자화기의 조합은 비트 스트림에 휴대된 표기 정보에 의해 결정될 수 있다.
또 예컨대, 잔차 계수는 QG 중의 분포 상황에 기반하여 결정될 수 있다. 예컨데, 비디오 디코더가 적응적으로 어느 양자화기를 사용할지를 선택하며, 선택 의거는 모드 정보 또는 변환 정보일 수 있으며, 모드 정보 또는 변환 정보는 잔차 계수의 QG 중의 분포 상황과 상관된다.
상술한 S(1030)에 대해, QG의 레벨에 대해 역양자화를 수행하며, 이는 이하 과정을 포함할 수 있다.
우선, QG의 분할 영역 타입을 결정한다.
다음에, 만약 QG가 분할 영역 타입이 변환 영역이면, 디코더측의 행렬 템플릿 라이버러리로부터 QG의 파라미터 정보와 매칭하는 양자화 행렬을 선택한다.
여기서, 행렬 템플릿 라이버러리는 여러 가지 타입의 양자화 행렬 템플릿을 포함하고, 당해 파라미터 정보가 QG의 사이즈, QG가 소재하는 CU의 사이즈, 휘도 및 색차 채널 정보 및 평탄도 정보 중 임의의 한 가지 또는 여러 가지 조합을 포함한다.
마지막으로, QG의 양자화 행렬을 이용하여 QG 중의 레벨에 대해 역양자화를 수행하여, QG의 잔차 계수를 획득한다.
픽셀 영역 내 상이한 위치의 잔차 계수는 동등하게 중요하므로, 양자화 행렬을 사용하지 않는다. 변환 영역의 계수는 저주파 계수 및 고주파 계수로 나누며, 양자화 행렬을 통해 고주파 및 저주파 계수가 상이한 양자화 보폭을 사용하게 하여, 일정한 압축률을 확보하는 동시에 픽처의 주관 품질을 향상시킬 수 있다.
양자화 행렬의 요소 분포는 특정된 템플릿을 구비하며, 본 출원은 상이한 크기의 인코딩 블록이 상이한 양자화 행렬 템플릿을 사용하는 것을 허락하며, 또한 큰 사이즈의 양자화 행렬은 한 가지 또는 여러 가지 작은 사이즈의 양자화 행렬을 샘플링하여 얻는다. 행렬 템플릿 라이버러리에 포함된 양자화 행렬 템플릿은 이산 코사인 변환(DCT), 이산 사인 변환(DST), 정수 변환 또는 이산 웨이브 변환(DWT) 중 임의의 한 가지 또는 여러 가지 타입의 변환 방식에 의해 획득된다. 도 11에 도시된 바와 같이, 도 11은 본 출원에서 제공하는 양자화 행렬 템플릿의 모식도이며, 양자화 행렬 템플릿은 아래 내용을 포함한다.
(1), 만약 수평 및 수직 방향이 모두 DCT/DST 변환(도 11 주의 (1)을 참조)이면, 동일한 반대 대각선 상의 계수는 동일한 주파수를 구비하며, 일한 양자화 보폭을 이용하고, 상이한 반대 대각선의 계수는 상이한 양자화 보폭을 사용할 수 있다.
(2), 만약 수평 및 수직 방향이 모두 웨이브 변환(도 11 중의 (2)를 참조)이면, 쿼드 트리 템플릿을 이용하며, 4개 서브 블록은 각각 저/중/고주파에 대응하고, 동일한 대역의 서브 블록은 동일한 양자화 보폭을 사용하고, 상이한 대역의 서브 블록은 상이한 양자화 보폭을 사용할 수 있다.
(3), 만약 수직 방향에서 DCT/DST 변환을 이용하고, 수평 방향에서 웨이브 변환(도 11 중의 (3)을 참조)을 이용하면, 먼저 수직 방향으로 2등분하고, 왼쪽 서브 블록이 웨이브 변환의 저주파이고, 오른쪽 서브 블록이 웨이브 변환의 고주파이다. 각 서브 블록 내부 위쪽이 DCT/DST 변환의 저주파이고, 아래쪽이 DCT/DST 변환의 고주파이다. 행렬 요소 A`/B`/C`/D`가 각각 A/B/C/D에 동일한 오프셋 값을 더한 것과 같게 할 수 있다.
(4), 만약 수평 방향에서 DCT/DST 변환을 사용하고, 수직 방향에서 웨이브 변환(도 11 중의 (4)를 참조)을 사용하면, 먼저 수평 방향으로 2등분하고, 위쪽 서브 블록이 웨이브 변환의 저주파이고, 아래쪽 서브 블록이 웨이브 변환의 고주파이다. 각 서브 블록 내부 왼쪽이 DCT/DST 변환의 저주파이고, 오른쪽이 DCT/DST 변환의 고주파이다. 행렬 요소 A`/B`/C`/D`가 각각 A/B/C/D에 동일한 오프셋 값을 더한 것과 같게 할 수 있다.
선택 가능하게, 행렬 템플릿 라이버러리에 포함된 여러 가지 타입의 양자화 행렬 템플릿은 평탄 블록 템플릿 및 텍스처 블록 템플릿을 포함할 수 있다. 평탄 블록 템플릿 중 주파수가 주파수 임계값보다 높은 잔차 계수의 Qstep이 평탄 블록 템플릿 중 주파수가 주파수 임계값에 도달하지 않은 잔차 계수의 Qstep보다 크거나 같다. 텍스처 블록 템플릿 중 주파수가 주파수 임계값보다 높은 잔차 계수의 Qstep이 텍스처 블록 템플릿 중 주파수가 주파수 임계값에 도달하지 않은 잔차 계수의 Qstep보다 작거나 같다.
예컨대, 비디오 디코더는 평탄도 정보에 기반하여 현재 블록을 평탄 블록 또는 텍스처 블록으로 표기한 후, 텍스처 마스킹 효과(texture masking effect)에 따라 양자화 행렬 템플릿을 설계하는 바: (1), 만약 현재 블록(QG)이 평탄 블록이면, 양자화 행렬 중 고주파 계수의 Qstep이 저주파 계수의 Qstep보다 크거나 같은바, 인간의 눈이 고주파 왜곡보다 평탄 블록의 저주파 왜곡에 대해 더 민감하므로, 고주파 계수가 더 큰 손실을 허용한다. (2), 만약 현재 블록(QG)이 텍스처 블록이면, 양자화 행렬 중 고주파 계수의 Qstep이 저주파 계수의 Qstep보다 작거나 같고, 인간의 눈이 저주파 왜곡보다 텍스처 블록의 고주파 왜곡에 대해 더 민감하므로, 먼저 텍스처 블록의 고주파 계수를 보호한다.
즉, 픽처의 디코딩 방법 중, 비디오 디코더는 우선QG의 QP 및 Qstep을 획득하고, 비트 스트림으로부터 레벨을 해석한 후, 적응적으로 양자화기를 선택하여, 레벨에 대해 역양자화를 수행하여, 재구축 값을 얻음으로써, 픽처 프레임의 디코딩을 구현한다.
요약하면, 하나의 CU 중 모든 잔차 계수가 모두 동일한 QP 값을 사용하여 픽처 왜곡이 큰 것을 초래하는 것에 비해, 본 실시예의 비디오 픽처의 디코딩 과정 중, 하나의 CU는 복수 개의 QG로 분할될 수 있으며, 각 QG 중의 하나 또는 복수 개의 잔차 계수는 하나의 QP 값을 공유하고, 나아가, 비디오 디코더는 픽처 프레임에 대응하는 하나 또는 복수 개의 CU에 대해 더 정밀한 입도의 QP 결책을 수행하여, 일정한 압축률을 확보하는 상황 하에, 픽처 프레임의 디코딩 왜곡을 낮추고, 비디오 픽처 디코딩의 진실성과 정확성을 향상시킬 수 있다.
상응하게, 픽처의 인코딩 방법 중, 비디오 인코더는 우선 QG의 QP, Qstep 및 잔차 계수를 획득하고; 적응적으로 양자화기를 선택하여, 잔차 계수에 대해 양자화를 수행하며; 마지막으로 양자화 계수를 조정하여, 최종 레벨을 획득함으로써, 픽처 프레임의 인코딩을 구현한다.
도 2에 도시된 비디오 인코더(100)의 기초상에, 본 출원은 픽처의 인코딩 방법을 더 제공하는 바, 도 12에 도시된 바와 같이, 도 12는 본 출원에서 제공하는 픽처의 인코딩 방법의 흐름 모식도이며, 당해 픽처의 인코딩 방법은 비디오 인코더(100)에 의해 수행될 수도 있고, 비디오 인코더(100)의 기능을 지원하는 인코더측(도 1에 도시된 인코더측(10))에 의해 수행될 수도 있으며, 여기서 비디오 인코더(100)가 인코딩 방법을 구현하는 것을 예로 들어 설명하고, 당해 픽처의 인코딩 방법은 이하 단계를 포함한다.
S1(210), 비디오 인코더(100)는 하나의 픽처 프레임을 하나 또는 복수 개의 CU로 분할한다.
S1(220), 비디오 인코더(100)는 하나의 픽처 프레임의 복수 개의 QP 값을 결정한다.
일 예시에서, 하나의 CU는 복수 개의 QG를 포함하고, 하나의 QG는 하나의 QP 값에 대응한다.
다른 일 예시에서, 하나의 CU가 복수 개의 픽셀 포인트를 포함하고, 하나의 픽셀 포인트가 하나의 QP 값에 대응하며, 복수 개의 픽셀 포인트 중 적어도 2개 픽셀 포인트의 QP 값이 상이하다.
S1230, 비디오 인코더(100)는 복수 개의 QP 값에 의거하여 하나의 픽처 프레임에 대해 인코딩을 수행한다.
인코딩 방법 중QP 값의 양자화에 대해, 상술한 도 4 내지 도 11 중 디코딩 방법 중 상응한 과정을 참조할 수 있으며, 여기서 더 이상 설명하지 않는다.
이러한 방법으로, 하나의 CU 중 모든 잔차 계수가 모두 동일한 QP 값을 사용하여 픽처 왜곡이 큰 것을 초래하는 것에 비해, 본 실시예에서 제공하는 비디오 픽처의 인코딩 과정 중, 하나의 CU는 복수 개의 QG (또는 픽셀 포인트)로 분할될 수 있으며, 각 QG 중의 하나 또는 복수 개의 잔차 계수는 하나의 QP 값을 공유하고, 나아가, 비디오 인코더는 픽처 프레임에 대응하는 하나 또는 복수 개의 CU에 대해 더 정밀한 입도의 QP 결책을 수행하여, 일정한 압축률을 확보하는 상황 하에, 픽처 프레임의 인코딩 왜곡을 낮추고, 비디오 픽처 인코딩의 진실성과 정확성을 향상시킨다.
이해할 수 있는 것은, 상술한 실시예 중 기능을 구현하기 위해, 비디오 인코더/비디오 디코더는 각 기능을 수행하는 상응한 하드웨어 구조 및/또는 소프트웨어 모듈을 포함한다. 본 영역의 기술 인원은, 본 출원에 개시된 실시예에서 설명된 각 예시의 유닛 및 방법 단계와 결부하여, 본 출원이 하드웨어 또는 하드웨어 및 컴퓨터 소프트웨어의 결합의 형식을 동해 구현될 수 있음을 이해해야 한다. 특정 기능이 하드웨어로 수행될지 아니면 컴퓨터 소프트웨어가 하드웨어를 구동하는 방식으로 수행될지는, 기술 방안의 특정 응용 장면 및 설계의 제약 조건에 의해 결정된다.
도 13은 본 출원에서 제공하는 디코딩 장치의 구조 모식도이며, 당해 디코딩 장치(1300)는 비트 스트림 해석 유닛(1310), QP 결책 유닛(1320) 및 픽처 디코딩 유닛(1330)을 포함한다. 디코딩 장치(1300)는 상술한 디코딩 방법 실시예 중 비디오 디코더 또는 디코더측의 기능을 구현하는 데에 사용될 수도 있고, 따라서 상술한 디코딩 방법 실시예에 구비된 유익한 효과도 구현할 수도 있다. 본 출원의 실시예 중, 당해 디코딩 장치(1300)는 도 1에 도시된 디코더측(20) 또는 비디오 디코더(200)일 수도 있고, 도 3에 도시된 비디오 디코더(200)일 수도 있으며, 디코더측(20) 또는 비디오 디코더(200)에 응용되는 모듈일 수도 있다.
비트 스트림 해석 유닛(1310), QP 결책 유닛(1320) 및 픽처 디코딩 유닛(1330)은 도 4 내지 도 11 중 임의의 실시예에 따른 디코딩 방법을 구현하는 데에 사용된다. 상술한 비트 스트림 해석 유닛(1310), QP 결책 유닛(1320) 및 픽처 디코딩 유닛(1330)에 대한 상세한 설명은 직접 참조 도 4 내지 도 11에 도시된 방법 실시예 중 관련 설명을 참조하여 직접 얻을 수 있으며, 여기서 더 이상 설명하지 않는다.
도 14는 본 출원에서 제공하는 인코딩 장치의 구조 모식도이며, 당해 인코딩 장치(1400)는: 픽처 분할 유닛(1410), QP 결책 유닛(1420) 및 픽처 인코딩 유닛(1430)을 포함한다. 인코딩 장치(1400)는 상술한 디코딩 방법 실시예 중 비디오 인코더 또는 인코더측의 기능을 구현하는 데에 사용될 수 있으며, 따라서 상술한 디코딩 방법 실시예에 구비된 유익한 효과도 구현할 수도 있다. 본 출원의 실시예 중, 당해 인코딩 장치(1400)는 도 1에 도시된 인코더측(10) 또는 비디오 인코더(100)일 수도 있고, 도 2에 도시된 비디오 인코더(100)일 수도 있으며, 인코더측(10) 또는 비디오 인코더(100)에 응용되는 모듈일 수도 있다.
픽처 분할 유닛(1410), QP 결책 유닛(1420) 및 픽처 인코딩 유닛(1430)은 도 12에 도시된 인코딩 방법을 구현하는 데에 사용된다. 상술한 픽처 분할 유닛(1410), QP 결책 유닛(1420) 및 픽처 인코딩 유닛(1430)에 대한 상세한 설명은 직접 참조 도 4 내지 도 12에 도시된 방법 실시예 중 관련 설명을 참조하여 직접 얻을 수 있으며, 여기서 더 이상 설명하지 않는다.
본 출원은 전자 기기를 더 제공하며, 도 15에 도시된 바와 같이, 도 15는 본 출원에서 제공하는 전자 기기의 구조 모식도이고, 전자 기기(1500)는 프로세서(1510) 및 인터페이스 회로(1520)를 포함한다. 프로세서(1510) 및 인터페이스 회로(1520) 사이는 서로 커필링된다. 이해할 수 있다시피, 통신 인터페이스(1520)는 송수신기 또는 입력/출력 인터페이스일 수 있다. 하나의 예시에서, 전자 기기(1500)는 메모리(1530)를 더 포함할 수 있으며, 이는 프로세서(1510)에 의해 수행되는 명령을 저장하거나 또는 프로세서(1510)의 명령 실행에 필요한 입력 데이터를 저장하거나, 또는 프로세서(1510)가 명령을 수행한 후 생성한 데이터를 저장하는 데에 사용된다.
당해 전자 기기(1500)는 프로세서(1510) 및 통신 인터페이스(1520)를 포함한다. 프로세서(1510) 및 통신 인터페이스(1520) 사이는 서로 커필링된다. 이해할 수 있다시피, 통신 인터페이스(1520)는 송수신기 또는 입력/출력 인터페이스일 수 있다. 선택 가능하게, 전자 기기(1500)는 메모리(1530)를 더 포함할 수 있으며, 이는 프로세서(1510)에 의해 수행되는 명령을 저장하거나 또는 프로세서(1510)의 명령 실행에 필요한 입력 데이터를 저장하거나, 또는 프로세서(1510)가 명령을 수행한 후 생성한 데이터를 저장하는 데에 사용된다.
전자 기기(1500)가 도 4 내지 도 11에 도시된 방법을 구현하는 데에 사용될 경우, 프로세서(1510) 및 인터페이스 회로(1520)는 상술한 비트 스트림 해석 유닛(1310), QP 결책 유닛(1320) 및 픽처 디코딩 유닛(1350)의 기능을 수행하는 데에 사용된다.
전자 기기(1500)가 도 12에 도시된 방법을 구현하는 데에 사용될 경우, 프로세서(1510) 및 인터페이스 회로(1520)는 상술한 픽처 분할 유닛(1410), QP 결책 유닛(1420) 및 픽처 인코딩 유닛(1430)의 기능을 구현하는 데에 사용된다.
본 출원의 실시예는 상술한 통신 인터페이스(1520), 프로세서(1510) 및 메모리(1530) 사이의 구체적인 연결 매체에 대해 한정하지 않는다. 본 출원의 실시예는 도 15에서 통신 인터페이스(1520), 프로세서(1510) 및 메모리(1530) 사이는 버스(1540)를 통해 연결되고, 버스는 도 15에서 굵은 선으로 표시되고, 기타 부품 사이의 연결 방식에 대해서는 예시적으로 설명하며, 또한 이에 대해 한정하지 않는다. 상기 버스는 주소 버스, 데이터 버스, 제어 버스 등으로 나뉠 수 있다. 도시의 편의를 위해, 도 15에서 단지 하나의 굵은 선으로 표시하였으나, 단지 하나의 버스 또는 한 가지 타입의 버스만 있는 것을 표시하지 않는다.
메모리(1530)는 소프트웨어 프로그램 및 모듈을 저장하는 데에 사용될 수 있는 바, 예컨대 본 출원의 실시예에서 제공하는 디코딩 방법 또는 인코딩 방법에 대응하는 프로그램 명령/모듈과 같이, 프로세서(1510)는 메모리(1530)에 저장된 소프트웨어 프로그램 및 모듈을 수행하는 것을 통해, 여러 가지 기능 응용 및 데이터 처리를 수행한다. 당해 통신 인터페이스(1520)는 기타 기기와 시그널링을 수행하거나 또는 데이터의 통신에 사용될 수 있다. 본 출원 중 당해 전자 기기(1500)는 복수 개의 통신 인터페이스(1520)를 구비할 수 있다.
이해할 수 있다시피, 본 출원의 실시예 중 프로세서는 중앙 처리 유닛(central processing Unit, CPU), 신경 처리 유닛(neural processing unit, NPU) 또는 그래픽 처리 유닛(graphic processing unit, GPU)일 수도 있고, 또는 기타 범용 프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 응용 주문형 집적회로(application specific integrated circuit, ASIC), 필드 프로그램 가능 게이트 어레이(field programmable gate array, FPGA) 또는 기타 프로그램 가능 논리 소자, 트랜지스터 논리 장치, 하드웨어 부품 또는 이들의 임의의 조합일 수도 있다. 범용 프로세서는 마이크로 프로세서일 수도 있고, 임의의 일반적인 프로세서일 수도 있다.
본 출원의 실시예 중 방법 단계는 하드웨어의 방식을 통해 구현될 수도 있으며, 프로세서에 의해 소프트웨어 명령을 수행하는 방식을 통해 구현될 수도 있다. 소프트웨어 명령은 상응한 소프트웨어 모듈로 구성될 수 있으며, 소프트웨어 모듈은 랜덤 액세스 메모리(random access memory, RAM), 플래시, 판독 전용 메모리(read-only memory, ROM), 프로그래머블 리드 온리 메모리(programmable ROM, PROM), 소거가능 프로그램가능 판독 전용 메모리(erasable PROM, EPROM), 전기적 소거가능 프로그램가능 판독 전용 메모리(electrically EPROM, EEPROM), 레지스터, 하드 디스크, 이동 하드 디스크, CD-ROM 또는 본 기술분야에서 자주 사용하는 임의의 기타 형식의 저장매체에 저장될 수 있다. 한 가지 예시적인 저장매체는 프로세서에 커플링됨으로써, 프로세서가 당해 저장매체로부터 정보를 리드하고, 또한 당해 저장매체에 정보를 라이트하게 한다. 물론, 저장매체는 프로세서의 구성 부분일 수도 있다. 프로세서 및 저장매체는 ASIC에 위치할 수 있다. 추가로, 당해 ASIC는 네트웍 기기 또는 단말 기기에 위치할 수 있다. 물론, 프로세서 및 저장매체는 별도의 부품으로서 네트웍 기기 또는 단말 기기에 존재할 수 있다.
상술한 실시예 중, 전부 또는 일부가 소프트웨어, 하드웨어, 펌웨어 또는 이의 임의의 조합을 통해 구현될 수 있다. 소프트웨어를 사용하여 구현할 경우, 전부 또는 일부가 컴퓨터 프로그램 제품의 형식으로 구현될 수 있다. 컴퓨터 프로그램 제품은 하나 또는 복수의 컴퓨터 명령을 포함한다. 컴퓨터에서 컴퓨터 프로그램 명령을 로딩 및 수행할 경우, 전부 또는 일부가 본 발명의 실시예에 따른 과정 또는 기능을 발생한다. 컴퓨터는 범용 컴퓨터, 전용 컴퓨터, 컴퓨터 네트워크 또는 기타 프로그래밍 가능 장치 일 수 있다. 컴퓨터 명령은 컴퓨터 판독 가능 저장 매체에 저장되거나 또는 하나의 컴퓨터 판독 가능 저장 매체로부터 다른 하나의 컴퓨터 판독 가능 저장 매체에 전송될 수 있는 바, 예를 들면, 컴퓨터 명령은 하나의 웹사이트, 컴퓨터, 서버 또는 데이터 센터로부터 유선 또는 무선의 방식을 통해 다른 웹사이트, 컴퓨터, 서버 또는 데이터 센터에 전송될 수 있다. 컴퓨터 판독 가능 저장 매체는 컴퓨터가 액세스 할 수 있는 임의의 사용 가능 매체, 또는 하나 또는 복수의 사용 가능 매체를 포함하여 집적된 서버, 데이터 센터 등 데이터 저장기기 일 수 있다. 사용 가능 매체는 자기 매체, 예를 들면 플로피 디스크, 하드 디스크, 자기 테이프일 수도 있거나, 디지털 비디오 디스크(digital video disc, DVD)일 수도 있거나, 또는 반도체 매체, 예를 들면 솔리드 스테이트 디스크(Solid State Disk, SSD))일 수조 있다.
본출원의 각 실시예 중, 만약 특별한 설명 및 로직 충돌이 없는 한, 상이한 실시예 사이의 용어 및/또는 설명은 일관성을 구비하며, 또한 서로 인용할 수 있고, 상이한 실시예 중 기술 특징은 이들 고유 로직 관계에 기반하여 새로운 실시예를 조합하고 구성할 수 있다. 본 출원 중, “적어도 하나”는 하나 또는 복수 개를 뜻하며, “복수 개”는 두 개 또는 두 개 이상을 뜻한다. “및/또는”은 상관되는 객체의 관련 관계를 설명하는 바, 예컨대, A 및/또는 B는: A가 단독적으로 존재하거나, A 및 B가 동시에 존재하거나, B가 단독적으로 존재하는 경우를 나타내며, 여기서, A, B는 단수 또는 복수일 수 있다. 본 출원의 설명 중, 부호 “/”는 일반적으로 앞뒤 관련 객체가 “또는”의 관계임을 나타내며; 본 출원의 수학식 중, 부호 “/”는 앞뒤 관련 객체가 “나누기”의 관계임을 나타낸다.
이해할 수 있다시피, 본 출원의 실시예에 관한 여러 가지 숫자 번호는 단지 설명의 편의를 위한 것일 뿐, 본 출원의 실시예의 범위를 제한하지 않는다. 상술한 각 과정의 번호의 크기 또한 실행 순서의 선후를 뜻하지 않으며, 각 과정의 실행 순서는 그 기능 및 고유 로직에 의해 결정된다.

Claims (24)

  1. 픽처의 디코딩 방법으로서,
    상기 방법은 디코더측에 의해 수행되고, 상기 방법은:
    비트 스트림을 해석하여 하나 또는 복수 개의 픽처 프레임을 획득하는 단계 - 하나의 픽처 프레임은 하나 또는 복수 개의 코딩 유닛 CU를 포함함 -;
    상기 하나의 픽처 프레임의 복수 개의 양자화 파라미터 QP 값을 결정하는 단계 - 하나의 CU는 복수 개의 양자화 그룹 QG를 포함하고, 하나의 QG는 하나의 QP 값에 대응함 -;
    상기 복수 개의 QP 값에 의거하여 상기 하나의 픽처 프레임에 대해 디코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  2. 제1항에 있어서,
    상기 하나의 CU는 복수 개의 잔차 계수를 포함하고, 상기 하나의 QG는 상기 복수 개의 잔차 계수 중 일부 잔차 계수를 포함하며, 상기 일부 잔차 계수는 상기 하나의 QP 값을 공유하는 것을 특징으로 하는 디코딩 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 하나의 QG에 대응하는 하나의 QP 값은 휘도QP 값 및 색차 QP 값을 포함하고;
    상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계는:
    상기 하나의 QG의 휘도 QP 값 및 색차 QP 값을 각각 획득하는 단계;
    또는,
    상기 하나의 QG의 휘도 QP 값을 획득하는 단계;
    상기 휘도QP 값에 기초하여 상기 하나의 QG의 색차QP 값을 결정하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  4. 제1항에 있어서,
    상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계는:
    상기 하나의 QG의 예측 QP 값을 획득하는 단계;
    상기 하나의 QG의 예측 QP 값 및 도출 정보에 의거하여 상기 하나의 QG의 QP 값을 결정하는 단계; 를 포함하고,
    상기 도출 정보가 상기 하나의 QG의 평탄도 정보 또는 텍스처 정도(texture degree) 정보, 상기 비트 스트림 버퍼의 남은 공간 또는 왜곡 구속(distortion constraint) 정보 중 임의의 한 가지 또는 몇 가지의 조합인 것을 특징으로 하는 디코딩 방법.
  5. 제4항에 있어서,
    만약 상기 도출 정보가 상기 왜곡 구속 정보이고, 상기 왜곡 구속 정보가 상기 복수 개의 QG 중 임의의 하나의 QG의 왜곡 임계값을 가리키면;
    상기 하나의 QG의 예측 QP 값 및 도출 정보에 의거하여 상기 하나의 QG의 QP 값을 결정하는 단계는:
    상기 예측 QP 값에 대응하는 예측 왜곡을 결정하는 단계;
    만약 상기 예측 왜곡이 상기 이 왜곡 임계값보다 작거나 같으면, 상기 예측 QP 값을 상기 QG의 QP 값으로 이용하는 단계;
    만약 상기 예측 왜곡이 상기 왜곡 임계값보다 크면, 상기 왜곡 임계값에 의해 결정된 QP 값을 상기 QG의 QP 값으로 이용하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  6. 제4항에 있어서,
    만약 상기 도출 정보가 상기 하나의 QG의 평탄도 정보 또는 텍스처 정도 정보, 또는 상기 비트 스트림 버퍼의 남은 공간이면,
    상기 하나의 QG의 예측 QP 값 및 도출 정보에 의거하여 상기 하나의 QG의 QP 값을 결정하는 단계는:
    상기 도출 정보에 의거하여 상기 하나의 QG의 QP 오프셋을 결정하는 단계;
    상기 하나의 QG의 예측 QP 값과 상기 QP 오프셋의 합을 상기 하나의 QG의 QP 값으로 이용하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  7. 제4항 내지 제6항 중 어느 한 항에 있어서,
    상기 하나의 QG의 예측 QP 값을 획득하는 단계는:
    상기 하나의 CU 중 상기 하나의 QG와 인접한 적어도 하나의 기타 QG의 QP 값을 획득하는 단계;
    상기 적어도 하나의 기타 QG의 QP 값에 의거하여 상기 하나의 QG의 예측 QP 값을 결정하는 단계;
    또는,
    상기 하나의 CU의 QP 값을 상기 하나의 QG의 예측 QP 값으로 이용하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  8. 제1항에 있어서,
    상기 복수 개의 QP 값에 의거하여 상기 하나의 픽처 프레임에 대해 디코딩을 수행하는 단계는:
    상기 복수 개의 QP 값 중 각 QP 값에 대해, 상기 QP 값에 대응하는 양자화 보폭 Qstep을 획득하는 단계;
    상기 QP 값에 대응하는 QG에 포함된 레벨(level)을 획득하는 단계;
    선택된 양자화기의 조합에 의거하여, 상기 QG의 레벨에 대해 역양자화를 수행하는 단계 - 상기 양자화기의 조합이 하나 또는 복수 개의 양자화기를 포함함 -;를 포함하는 것을 특징으로 하는 디코딩 방법.
  9. 제8항에 있어서,
    상기 양자화기가 균일 양자화기 또는 비균일 양자화기인 것을 특징으로 하는 디코딩 방법.
  10. 제1항에 있어서,
    상기 하나의 QG가 상기 하나의 픽처 프레임의 하나 또는 복수 개의 픽셀 포인트를 포함하는 것을 특징으로 하는 디코딩 방법.
  11. 제1항에 있어서,
    상기 복수 개의 QG 중 적어도 2개 QG에 대응하는 QP 값이 상이한 것을 특징으로 하는 디코딩 방법.
  12. 픽처의 디코딩 방법으로서,
    상기 방법은 디코더측에 의해 수행되고, 상기 방법은:
    비트 스트림을 해석하여 하나 또는 복수 개의 픽처 프레임을 획득하는 단계 - 하나의 픽처 프레임은 하나 또는 복수 개의 코딩 유닛을 포함함 -;
    상기 하나의 픽처 프레임의 복수 개의 양자화 파라미터 QP값을 결정하는 단계 - 하나의 CU가 복수 개의 픽셀 포인트를 포함하고, 하나의 픽셀 포인트가 하나의 QP 값에 대응하며, 상기 복수 개의 픽셀 포인트 중 적어도 2개 픽셀 포인트의 QP 값이 상이함 -;
    상기 복수 개의 QP 값에 의거하여 상기 하나의 픽처 프레임에 대해 디코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 디코딩 방법.
  13. 제12항에 있어서,
    상기 하나의 픽처 프레임의 복수 개의 QP 값을 결정하는 단계는:
    상기 하나의 픽셀 포인트의 예측 QP 값을 획득하는 단계;
    상기 하나의 픽셀 포인트의 예측 QP 값 및 도출 정보에 의거하여, 상기 하나의 픽셀 포인트의 QP 값을 결정하는 단계 - 상기 도출 정보가 상기 하나의 픽셀 포인트 주변의 하나 또는 복수 개의 재구축된 픽셀 포인트의 정보임 -;를 포함하는 것을 특징으로 하는 디코딩 방법.
  14. 제13항에 있어서,
    상기 하나의 픽셀 포인트의 예측 QP 값이 상기 하나의 픽셀 포인트가 소재하는 CU 또는 QG의 QP 값이거나, 또는 상기 하나의 픽셀 포인트 주변의 하나 또는 복수 개의 이미 재구축된 픽셀 포인트의 QP 값에 기반하여 도출하여 얻은 것이며, 도출하는 방법은 평균값, 중앙값 또는 최빈수 중 적어도 하나를 계산하는 것을 포함하는 것을 특징으로 하는 디코딩 방법.
  15. 제13항 또는 제14항에 있어서,
    상기 이미 재구축된 픽셀 포인트가 상기 하나의 픽셀 포인트를 중심으로, 길이가 3 또는 5인 정사각형 영역 내의 픽셀 포인트, 또는 대각선 길이가 3 또는 5인 능형 영역 내의 픽셀 포인트인 것을 특징으로 하는 디코딩 방법.
  16. 제13항에 있어서,
    상기 이미 재구축된 픽셀 포인트의 정보는 픽셀 값, 평탄도 정보 또는 텍스처 정도 정보, 배경 밝기, 콘트라스트(contrast) 중 임의의 하나 또는 몇 개의 조합을 포함하는 것을 특징으로 하는 디코딩 방법.
  17. 제13항에 있어서,
    상기 하나의 픽셀 포인트의 예측 QP 값 및 도출 정보에 의거하여, 상기 하나의 픽셀 포인트의 QP 값을 결정하는 단계는:
    상기 하나의 픽셀 포인트 주변의 하나 또는 복수 개의 재구축된 픽셀 포인트의 정보에 기반하여 상기 픽셀 포인트의 지시 정보를 결정하는 단계;
    만약 상기 지시 정보가 제1 임계값보다 작거나 같고, 상기 예측 QP 값이 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값보다 크거나 같으면, 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값을 상기 픽셀 포인트의 QP 값으로 이용하는 단계를 포함하고;
    상기 인간의 눈이 마침 감지할 수 있는 왜곡에 대응하는 QP 값이 기설정된 값이거나, 또는, 비트 스트림으로부터 해석하여 얻거나, 또는, 주변의 재구축된 CU의 평탄도 정보 또는 텍스처 정도 정보, 배경 밝기, 콘트라스트 정보에 기반하여 도출하여 얻은 것임을 특징으로 하는 디코딩 방법.
  18. 픽처의 인코딩 방법으로서,
    상기 방법은 인코더측에 의해 수행되고, 상기 방법은:
    하나의 픽처 프레임을 하나 또는 복수 개의 코딩 유닛 CU로 분할하는 단계;
    상기 하나의 픽처 프레임의 복수 개의 양자화 파라미터 QP값을 결정하는 단계 - 하나의 CU는 복수 개의 양자화 그룹 QG를 포함하고, 하나의 QG는 하나의 QP 값에 대응함 -;
    상기 복수 개의 QP 값에 의거하여 상기 하나의 픽처 프레임에 대해 인코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  19. 픽처의 인코딩 방법으로서,
    상기 방법은 인코더측에 의해 수행되고, 상기 방법은:
    하나의 픽처 프레임을 하나 또는 복수 개의 코딩 유닛 CU으로 분할하는 단계;
    상기 하나의 픽처 프레임의 복수 개의 양자화 파라미터 QP값을 결정하는 단계 - 하나의 CU가 복수 개의 픽셀 포인트를 포함하고, 하나의 픽셀 포인트가 하나의 QP 값에 대응하며, 상기 복수 개의 픽셀 포인트 중 적어도 2개 픽셀 포인트의 QP 값이 상이함 -;
    상기 복수 개의 QP 값에 의거하여 상기 하나의 픽처 프레임에 대해 인코딩을 수행하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  20. 픽처의 디코딩 장치로서,
    상기 디코딩 장치는 비트 스트림 해석 유닛, QP 결책 유닛 및 픽처 디코딩 유닛을 포함하고;
    상기 비트 스트림 해석 유닛, 상기 QP 결책 유닛 및 상기 픽처 디코딩 유닛은 제1항 내지 제17항 중 어느 한 항에 따른 방법을 구현하는 데에 사용되는 것을 특징으로 하는 디코딩 장치.
  21. 픽처의 인코딩 장치로서,
    상기 인코딩 장치는 픽처 분할 유닛, QP 결책 유닛 및 픽처 인코딩 유닛을 포함하고;
    상기 픽처 분할 유닛, 상기 QP 결책 유닛 및 상기 픽처 인코딩 유닛은 제18항 또는 제19항에 따른 상기 방법을 구현하는 데에 사용되는 것을 특징으로 하는 디코딩 장치.
  22. 비디오 디코딩 시스템으로서,
    인코더측 및 디코더측을 포함하고, 상기 인코더측은 상기 디코더측과 통신 연결되고, 상기 디코더측은 제1항 내지 제17항 중 어느 한 항에 따른 상기 방법을 구현하는 데에 사용되며, 상기 인코더측은 제18항 또는 제19항에 따른 상기 방법을 구현하는 데에 사용되는 것을 특징으로 하는 비디오 디코딩 시스템.
  23. 전자 기기로서,
    프로세서 및 메모리를 포함하고, 상기 메모리는 컴퓨터 명령을 저장하는 데에 사용되고, 상기 프로세서는 메모리로부터 상기 컴퓨터 명령을 콜하고 실행하여, 제1항 내지 제19항 중 어느 한 항에 따른 상기 방법을 구현하는 데에 사용되는 것을 특징으로 하는 전자 기기.
  24. 컴퓨터 판독가능 저장매체로서,
    상기 컴퓨터 판독가능 저장매체에 컴퓨터 프로그램 또는 명령이 저장되고, 상기 컴퓨터 프로그램 또는 명령이 전자 기기에 의해 실행될 경우, 제1항 내지 제19항 중 어느 한 항에 따른 상기 방법을 구현하는 것을 특징으로 하는 컴퓨터 판독가능 저장매체.
KR1020247019244A 2021-11-11 2022-11-10 디코딩 방법, 인코딩 방법 및 장치 KR20240108461A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111334223.8 2021-11-11

Publications (1)

Publication Number Publication Date
KR20240108461A true KR20240108461A (ko) 2024-07-09

Family

ID=

Similar Documents

Publication Publication Date Title
US11838548B2 (en) Video coding using mapped transforms and scanning modes
US20110317757A1 (en) Intra prediction mode signaling for finer spatial prediction directions
KR20200037272A (ko) 비디오 코딩에서 크로스-성분 동적 범위 조정 (cc-dra) 의 시스템 및 방법
US20130101033A1 (en) Coding non-symmetric distributions of data
CA2913797A1 (en) Rice parameter initialization for coefficient level coding in video coding process
WO2012054805A1 (en) Adaptive scanning of transform coefficients for video coding
WO2013081935A1 (en) Largest coding unit (lcu) or partition-based syntax for adaptive loop filter and sample adaptive offset in video coding
CN109756733B (zh) 视频数据解码方法及装置
EP4289142A1 (en) Residual and coefficients coding for video coding
WO2024022367A1 (zh) 图像解码方法、编码方法及装置
WO2024022359A1 (zh) 一种图像编解码方法及装置
CN116156168A (zh) 一种图像编解码方法及装置
KR102564189B1 (ko) 4:4:4 크로마 포맷의 비디오 코딩 방법 및 장치
KR20240108461A (ko) 디코딩 방법, 인코딩 방법 및 장치
CN116647673A (zh) 一种视频编解码方法及装置
TWI829424B (zh) 解碼方法、編碼方法及裝置
WO2023138562A1 (zh) 图像解码方法、图像编码方法及相应的装置
WO2023138391A1 (zh) 系数解码方法、装置、图像解码器及电子设备
TWI840086B (zh) 係數解碼方法、裝置、圖像解碼器及電子設備
KR20230145216A (ko) 비디오 코딩을 위한 인-루프 필터
CN116112689A (zh) 视频编解码方法及装置