KR102492116B1 - 다중 부호 비트 숨기기 및 잔차 부호 예측을 조화시키기 위한 방법 및 장치 - Google Patents

다중 부호 비트 숨기기 및 잔차 부호 예측을 조화시키기 위한 방법 및 장치 Download PDF

Info

Publication number
KR102492116B1
KR102492116B1 KR1020207024923A KR20207024923A KR102492116B1 KR 102492116 B1 KR102492116 B1 KR 102492116B1 KR 1020207024923 A KR1020207024923 A KR 1020207024923A KR 20207024923 A KR20207024923 A KR 20207024923A KR 102492116 B1 KR102492116 B1 KR 102492116B1
Authority
KR
South Korea
Prior art keywords
sign
transform
transform coefficients
transform coefficient
coefficients
Prior art date
Application number
KR1020207024923A
Other languages
English (en)
Other versions
KR20200110442A (ko
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 KR20200110442A publication Critical patent/KR20200110442A/ko
Application granted granted Critical
Publication of KR102492116B1 publication Critical patent/KR102492116B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

본 발명은 비디오 코딩에서 부호 비트 숨기기(SBH) 및 잔차 부호 예측(RSP) 기법을 조화시키기 위한 개선된 장치 및 방법에 관한 것이다. 코딩 효율을 향상시키기 위해, RSP가 적용될 변환 계수의 리스트가 SBH가 적용될 계수를 선택하기 전에 준비된다. 이에 의해, RSP 리스트는 가장 높은 코딩 효율이 예상될 수 있는 방식으로 채워질 수 있다. 다음으로, SBH를 적용하기 위한 하나 이상의 계수가 리스트에 포함되지 않도록 선택된다.

Description

다중 부호 비트 숨기기 및 잔차 부호 예측을 조화시키기 위한 방법 및 장치
본 발명의 실시예는 화상 프로세싱 분야, 예를 들어 정지 화상 및/또는 비디오 화상 코딩에 관한 것이다. 다중 부호 비트 숨기기 및 잔차 부호 예측을 조화시키기 위한 새로운 방법 및 장치가 조사된다.
비디오 코딩(비디오 인코딩 및 디코딩)은 광범위한 디지털 비디오 응용 프로그램에 사용되는데, 예를 들어, 브로드캐스트 디지털 TV, 인터넷 및 모바일 네트워크를 통한 비디오 전송, 비디오 채팅(video chat)과 같은 실시간 대화형 응용 프로그램, 화상 회의(video conferencing), DVD 및 블루레이 디스크(Blu-ray discs), 비디오 컨텐츠 수집 및 편집 시스템, 및 보안 응용 프로그램의 캠코더와 같은 것이다.
1990 년 H.261 표준에서 블록 기반 하이브리드 비디오 코딩 접근법의 개발 이후, 새로운 비디오 코딩 기법 및 툴이 개발되어 새로운 비디오 코딩 표준의 기초가 되었다. 대부분의 비디오 코딩 표준의 목표 중 하나는 화질을 희생하지 않으면서 이전에 비해 비트 전송률 감소를 달성하는 것이었다. 추가적인 비디오 코딩 표준은, MPEG-1 비디오, MPEG-2 비디오, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, 진보된 비디오 코딩(Advanced Video Coding; AVC), ITU-T H.265, 고효율 비디오 코딩(Hi Efficiency Video Coding; HEVC), 및 확장(예컨대, 이들 표준의 확장성 및/또는 3차원(3D) 확장)을 포함한다.
아래에서 더 상세히 설명되는 바와 같이, 일부 이미지 및 비디오 코덱은 양자화된 변환 계수를 코딩한다. 0이 아닌 변환 계수는 부호를 가지는데, 이는 즉, 절대값과 플러스 또는 마이너스 부호로 구성되는 것이다. 한 계수에 대한 부호를 코딩하려면 양의 또는 음의 부호를 나타내는 1 비트가 필요하다. 달리 말하면, 부호 비트 값 "0"은 양의 부호를 나타내고 부호 비트 값 "1"은 음의 부호를 나타낼 수 있으며, 그 반대일 수 있다.
[1]에서는, 부호 데이터 숨기기(Sign Data Hiding; SDH)라는 기법이 H.265/HEVC Working Draft에 채택되도록 제안되었다. 이 공헌의 기본 개념은 다음과 같다. 0이 아닌 첫 번째 및 마지막 계수(
Figure 112020090829420-pct00001
Figure 112020090829420-pct00002
) 사이의 계수의 수가 임계치(
Figure 112020090829420-pct00003
)보다 큰 조건을 만족하는 각각의 TU(변환 단위)에 대해:
Figure 112020090829420-pct00004
이며,
첫 번째 0이 아닌 계수에 대한 부호 비트는 모든 0이 아닌 계수의 합으로 패리티에 포함된다. 4 가지 데이터 유형에 따라 4 가지 임계값이 시그널링된다 (표 1 참조). 4x4에서 32x32까지 다양한 크기의 모든 TU에 대해, 각각의 TU에 대해 하나의 부호 비트가 숨겨져 있다 [2].
임계값은 네 가지 데이터 유형에 대한 것이다.
CU type 인트라(Intra) 인터(Inter)
루마(Luma) 5 3
크로마(Chroma) 5 5
마지막으로, 다중 부호 비트 숨기기(Multiple SBH, MSBH)로 알려진 SDH 기법의 수정이 H.265/HEVC 표준으로 채택되었다. 실제로 4x4보다 큰 크기의 TU에는 다중 부호 비트가 임베드(embed)되어 있을 수 있다. 구체적으로, 큰 TU에서의 계수가 계수 그룹(CG)으로도 알려진 4x4 계수 그룹에 의해 코딩될 때, 이 제안은 도 1에 도시된 바와 같이 부호 비트 숨기기 기법을 각각의 4x4 계수 그룹에 적용한다. 부호가 "+"이면, 양자화된 변환 계수의 절대값의 패리티는 짝수로 유지되어야 한다. 그렇지 않으면 패리티가 홀수로 유지되어야 한다. 따라서, 계수의 수에 대한 단일 임계값은 처음에 각각의 화상에 대해 규정된다 [2] (그 디폴트 값은
Figure 112020090829420-pct00005
임). H.265/HEVC 표준의 최종 버전에서는 이 임계값을 변경할 수 없다.도 1은 16 x 16 계수의 크기를 가지는 더 큰 TU(410)를 도시하며, 이는 4 x 4 크기를 가지는 16개의 계수 그룹으로 나뉘며, 이 중 제1 CG는 참조 번호 420으로 표시된다. 도 1은 추가적으로, 각각의 CG에 대해, 첫 번째 0이 아닌 양자화된 변환 계수 및 마지막 0이 아닌 양자화된 변환 계수를 미리 정해진 스캐닝 순서로 도시한다. 대각선 화살표는 도 1의 계수의 스캐닝 순서를 나타낸다. 이 예에서 스캐닝 순서는 위에서 아래로 대각선이다. 그러나, 부호 비트 숨기기는 다른 스캔 순서로 작동할 수도 있다. 이러한 경우에, 첫 번째 및 마지막 0이 아닌 계수의 위치는 스캔 순서에 따라 변할 수 있다. 스캐닝 순서는 다양한 방식으로 미리 정해질 수 있다. 예를 들어, 표준에서 미리 정의될 수 있거나, 또는 비트스트림 내에서 표준에서 지정된 미리 정의된 가능한 스캔 중 하나를 시그널링함으로써 구성될 수 있거나, 또는 비트스트림 내에서 스캔을 정의함으로써 구성될 수 있다.
종래의 접근법에 따르면, 이하에서는, (스캔 순서에서) 첫 번째 0이 아닌 계수의 부호가 모든 0이 아닌 계수(부호 없음)의 합의 패리티에 임베딩(코딩)되는 것으로 가정한다. 그러나, 일반적으로, 0이 아닌 다른 계수의 부호가 이러한 방식으로 전달될 수 있다. 특정 CG에 대해, 첫 번째 0이 아닌 계수의 부호가 양이면, 양자화된 변환 계수의 절대값의 패리티는 짝수이어야 한다. 그렇지 않으면 (첫 번째 0이 아닌 계수의 부호가 음수인 경우) 패리티는 홀수이다. 따라서, 인코더에 숨겨지는 부호 비트 데이터는 하나의 CG에 대한 다음 단계를 포함한다:
부호 비트 숨기기를 적용하기 위한 조건이 CG에 대해 충족되는지 확인한다.
CG내의 첫 번째 0이 아닌 계수와 그 부호를 결정한다.
CG에서 모든 절대 계수 값의 합의 패리티를 계산한다.
결정된 부호를 임베딩한다: 계산된 패리티가 결정된 부호에 해당하면, 계수 값의 수정이 필요 없다. 그렇지 않으면, 패리티가 결정된 부호에 대응하도록, 계수 CG의 하나의 값이 1씩 증가 또는 감소시킴으로써 수정된다.
TU 내의 모든 CG에 대해 위의 단계가 반복된다.
이에 상응하여, 디코더에서, 하나의 CG에 대해 다음 단계들이 수행된다:
비트스트림으로부터 CG의 부호없는 계수 값을 분석한다.
비트스트림으로부터 추출된 조건 및/또는 정보(SBH의 허용 여부를 나타내는 플래그와 같은)에 기초하여 부호 데이터 숨기기가 적용되었는지 여부를 결정한다.
CG에서 첫 번째 0이 아닌 계수를 결정한다.
CG에서 모든 절대 계수 값의 합의 패리티를 계산한다.
패리티가 제1 값(짝수 또는 홀수)을 가지는 경우, 첫 번째 0이 아닌 계수의 부호를 (양의 또는 음의) 제1 값에 대응하는 각각의 제1 극성으로 설정한다.
위의 단계는 단지 예시일 뿐이다. 패리티는, 합의 2진 표현의 최하위 비트(least significant bit)를 취하는 것에 대응하는, 합에 적용되는 모듈로 2(modulo 2)로 계산될 수 있다. 일반적으로, 모든 계수의 합의 패리티와 다른 함수는 CG에서 각각의 하나 이상의 계수의 하나 이상의 부호를 그 결과에 임베딩하기 위해 적용될 수 있다. 예를 들어, 2개의 부호를 감추기 위해, 모든 계수의 절대값의 합에 적용되는 모듈로 4 연산이 적용될 수 있다. 모듈로 4 연산의 각각의 가능한 결과(가능한 4개의 결과가 0, 1, 2, 3이 있다)에는 제1 및 제2 부호의 하나의 조합(예컨대, ++, +-, -+, --)을 할당될 수 있다.
위에서 언급된 인코더 측의 단계 d)는 CG의 계수의 함수에 하나 이상의 부호의 임베딩을 규정한다. 일반적으로, 매립될 부호와 패리티를 일치시키기 위해 계수의 수정이 필요한 경우, 그러한 수정된 CG로부터 재구성된 이미지 신호는 약간의 왜곡을 경험할 수 있다. 따라서, 값이 수정될 계수가 왜곡을 최소화하거나 레이트-왜곡 함수를 최적화하는 것에 기초하여 선택되는 것이 유리하다. 둘 이상의 부호가 코딩된 경우에도 마찬가지이다. 그러한 경우에, 하나 이상의 계수 값이 부호를 임베딩하도록 수정될 수 있다.
본 개시는 CG에 기초한 다중 부호 비트 숨기기에 적용 가능하지만, TU를 CG로 더 분할하지 않고 TU에 직접 동일하게 적용될 수 있다.
위에서 설명한 바와 같이, CG는 변환 도메인에서 변환 계수를 동일한 크기(예컨대, 도 1에 도시된 바와 같은 4x4 계수)의 그룹으로 공간적으로 분리함으로써 얻어진다. 달리 말하면, TU를 CG로 나누는 것은 공간 채우기 곡선(미리 결정된 스캔 순서)을 사용하여 변환 계수들을 스캐닝함으로써 변환 계수를 직렬화하기 전에 수행된다.
TU를 그룹으로 분리하는 대안적인 방법은, 먼저 계수를 스캔하고, 이후, 직렬화된 계수를 이들 두 정의를 구별하기 위해 여기서 계수 청크(Coefficient Chunks; CCs)라 지칭하는 그룹으로 나눈다. 이 분리 메커니즘은 도 2에 도시되어 있다.
특히, 도 2는 계수의 8 x 8 블록(TU)을 도시한다. 미리 정해진 순서, 예컨대, 이 경우에서와 같이 지그재그 스캐닝 순서로 스캐닝하여 직렬화한다. 스캐닝 후, 계수는 도 2의 하단에 도시된 순서로 제공된다. 그런 다음 시퀀스는 계수 CC#0, CC#1, ...., 마지막 CC의 청크(chunks)로 분할된다.
청크는 위에서 CG에 대해 도시된 것과 유사한 방식으로 처리될 수 있다. 각각의 청크에 대해, 하나 이상의 조건이 평가되어 SBH가 CC에 적용되는지 여부를 결정한다. SBH가 적용되는 경우, 첫 번째 0이 아닌 계수의 부호를 CC의 복수 또는 모든 계수의 함수에 임베딩한다.
H.265/HEVC 표준의 참조 구현예이고 쿼드-트리(Quad-Tree; QT)-기반 파티셔닝이 인터-예측된 블록에 대한 비대칭 파티셔닝과 조합하여 사용되는 HM(HEVC Reference Model) 프레임워크에 대조적으로, 쿼드-트리 및 2진 트리 양자 모두에 기초하고 QTBT로 알려진 새로운 파티셔닝 메커니즘이 JEM-3.0 소프트웨어에 제안되었다. QTBT(Quad-Tree Binary Tree) 파티셔닝은 정사각형뿐만 아니라 직사각형 블록도 제공할 수 있다. 물론, 인코더 측에서의 일부 시그널링 오버헤드 및 증가된 계산 복잡성은 HEVC/H.265 표준에서 사용되는 종래의 쿼드-트리 기반 파티셔닝과 비교하여 QTBT 파티셔닝의 비용이다. 그럼에도 불구하고, QTBT 기반 파티셔닝에는 더 나은 분할 특성이 부여되고, 따라서 종래의 쿼드-트리 파티셔닝보다 훨씬 높은 코딩 효율을 보여준다 [5]. 어쨌든, 이러한 분할 메커니즘의 변경은 일반적으로 잔차 코딩 및 특히 SBH에 영향을 줄 수 있다.
"잔차 부호 예측"(Residual Sign Prediction; RSP)으로 알려져 있고 원래 [3]에서 제안된 다른 관련 기법은, 이웃 블록에 있는 픽셀로부터 블록의 부호를 추정하고, 추정된 부호와 실제 부호 사이의 차이(0: 동일, 1: 동일하지 않음)를 CABAC (컨텍스트-적응형 2진 산술 코딩; Context-Adaptive Binary Arithmetic Coding)에 의해 인코딩한다. 부호가 잘 추정된다면, 그 차이는 '0'인 경향이 있으며, CABAC에 의해 코딩 효율이 향상될 수 있다. 개념은 도 3에 도시되어 있다.
일반적으로 현재 블록의 경계와 인접 블록의 경계에 있는 픽셀들 사이에는 높은 상관 관계가 있다. 제안된 기법은 이 특성을 사용하여 현재 블록의 DCT(이산 코사인 변환; Discrete Co사인 변환) 계수의 부호를 예측한다.
현재 블록에 N개의 0이 아닌 계수가 있는 경우, 이들 부호의 가능한 조합 수는 2N 이다. 제안된 기법은, 부호의 각각의 조합을 이용하여 현재 블록의 상부 경계와 왼쪽 경계에서 재구성된 픽셀을 이웃 블록으로부터 외삽된 픽셀과 비교한다. 제곱 오차를 최소화하는 부호의 조합을 추정된 부호로 정의한다. 보다 구체적으로, 이 기법은 (계수 그룹과 같은) 변환 계수 세트의 모든 0이 아닌 (즉, 유의한) 계수 모두에 적용되는 것이 아니라, 변환 계수들의 서브-세트(sub-set)에만 적용될 수 있고, 본 개시에서는 이를 "리스트"라고도 한다. 예를 들어, 다음의 도 4에 도시된 바와 같이, 리스트는 내림차순으로 정렬될 때, 크기에서 (N 개의 전체 개수 중) 처음 M 개의 계수로 형성될 수 있다. 리스트를 준비하기 위한 이러한 규칙은, 적용된 추정 방법이 부호가 추정되는 계수의 크기(절대값)이 클수록 더 좋은 결과를 주는 경향이 있다는 사실을 반영한다.
통상의 기술자가 이해할 수 있는 바와 같이, 이렇게 추정된 부호는 반드시 정확할 필요는 없으며, 도 4에 도시된 바와 같이 실제의 (원래의) 부호와 추정된 부호 사이에 차이가 있을 수 있고, 여기서 리스트에서 M = 6 부호들 중 하나(4번째)는 잘못 추정된다(1 대신 -1). 그 이유는 외삽법으로 얻은 픽셀 값은 일반적으로 결함이 있으므로 올바른 것보다 부호의 다른 조합이 최소 제곱 오차를 초래할 수 있기 때문이다.
도 4는 종래의 H.264/AVC 부호 코딩과 [3]에서 제안된 방법의 비교를 도시한다.
[3]의 기법의 단계가 도 4에 도시되고, 표 2에 주어진다.
[3]에서 제안된 기술 단계
1 계수의 정렬 계수는 레벨의 절대 값으로 정렬된다.
2 부호 추정 계수의 부호는 도 3에 도시된 바와 같이 추정된다.
특히, 추정될 부호의 최대 수에는 제한이 있다. 정렬된 계수의 처음 M개 부호까지 추정되며 여기서 M은 4x4 블록의 경우 4, 8x8 블록의 경우 6이다. 이 제한의 이유는 레벨이 작은 계수 부호의 추정 결과가 잘못되는 경향이 있기 때문이다.
계산 복잡도를 줄이기 위해 빠른 부호 추정 방법이 도입되었다.
3 엔트로피 코딩 정렬된 계수의 첫 M개 부호 및 해당 추정값에 대해 배타적 OR 연산이 수행된다. 결과, coeff_sign_diff는 CABAC 프로세스를 사용하여 인코딩된다.
다른 부호는 CABAC의 바이패스 프로세스(즉, coeff_sign_flag의 인코딩 프로세스)를 사용하여 인코딩된다.
유사한 기법이 문서 [4]에 기술되어 있다. [4]에는 이전 계산의 결과를 재사용하여 가상 비용의 중복 계산을 제거할 것을 제안하는 "가상 경계 재구성(Hypothesis Border Reconstruction)" 섹션이 포함되어 있다. 그러나 빠른 부호 추정의 방법은 이미 [3]에 개시되어 있다.
[4]와 [3]에 기술된 기법들 사이의 차이점 중 하나는, 부호 추정이 [3]에서는 L2 놈(norm)(차이 제곱의 합; sum of squared differences; SSD)을 사용하여 수행되고 [4]는 L1 놈(norm)(절대 차이의 합)을 사용한다는 점이다.
비용 값을 도출하는데 사용되는 픽셀은 이웃 블록들로부터 선택된다(도 5 참조).
공간 도메인에서 비용 함수는 다음과 같이 정의된다 ([4]).
Figure 112020090829420-pct00006
여기서 N 과 M 은 블록의 높이와 폭이다.
미국 특허 출원 공개 US2017/0142444 A1은 부호 추정에 관한 추가적인 세부 사항을 담고 있다.
또한, US 2017/0142444 A1은 예측된 부호를 인코딩하는 다른 방법을 제안한다 (표 2의 단계 3). [4]와 함께 제안된 참조 소프트웨어에서, 이 수정은 예측된 부호의 2개의 리스트를 도입하여 구현되었다 (표 2의 단계 1의 수정). 이들 두 리스트에 속하는 예측된 부호는 상이한 CABAC 컨텍스트(CABAC contexts)로 인코딩된다. 이들 리스트를 채우기 위해 다음 규칙이 지정된다.
제1 리스트는 미리 정의된 임계값 T1보다 큰 크기를 가지는 계수의 부호로 채워진다. 제1 리스트 내의 부호의 총 수는 미리 정의된 값 M 으로 제한된다.
제1 리스트 내의 부호의 수 n 이 M보다 작으면 제2 리스트가 채워진다. 제2 리스트 내의 부호의 총 수는 (M-n)으로 제한되므로 두 리스트 내의 부호의 총 수는 M 을 초과하지 않는다. 제2 리스트를 채우는 계수는 위치에 따라 래스터 순서(raster order)로 정렬되며 크기는 T1보다 크지 않아야 한다.
부호를 인코딩하기 위한 컨텍스트(context)는 그것이 제1리스트에 속하는지 또는 제2리스트에 속하는지에 따라 결정된다(표 2의 단계 3에서 차이).
RSP와 SBH 양자 모두는 EP (동일한 가능성의; equally probable) 모드에서 종래의 엔트로피-코딩된 변환 계수 부호에 의해 초래되는 레이트(rate)를 줄이기 위한 두 기법들이며, 즉, 각 2진 상태(플러스/마이너스)의 확률이 50%에 가까운 것으로 간주된다. 결과적으로, 각각의 빈(bin)은 출력 비트스트림에서 1 비트를 필요로 한다. RSP와 SBH는 부호 비트를 스퀴징(squeezing)하기 위한 상이한 메커니즘을 활용하지만, RSP와 SBH를 잔류 부호(residue signs)에 적용하는 엄격한 순서를 정의함으로써 이 두 가지 기법을 조화시켜야 한다. [4]에서 제안된 SBH와 RSP를 조화시키는 메커니즘이 도 6에 도시되어 있다. 이 기법에서, RSP는 도 6에서 RSP-리스트로 표시된 2개의 리스트를 사용한다.
HP-리스트는 임계값보다 큰 크기를 가지는 양자화된 변환 계수의 위치를 포함하는 리스트이므로, 더 높은 확률로 부호를 정확하게 예측할 수 있다.
LP-리스트는 임계값보다 작은 크기를 가지는 양자화된 변환 계수의 위치를 포함하는 리스트이므로, 그 부호는 더 낮은 확률로 정확하게 예측될 수 있다.
도 6에서 알 수 있는 바와 같이, SBH는 RSP 이전에 수행된다. 이는 SBH가 임계값보다 큰 크기를 가지는 양자화된 변환 계수의 부호를 숨기면 RSP의 코딩 효율에 악영향을 줄 수 있고, 따라서 그 부호를 높은 확률로 정확하게 예측할 수 있다. 따라서, SBH(SDH 또는 MSBH)과 RSP 기법을 조화시키는 공지된 메커니즘의 주요 문제점은 SBH를 선택하거나 HP-리스트로부터 양자화된 변환 계수를 수정하여 정확한 부호 예측의 확률을 줄일 수 있다는 것이다. 따라서 RSP 기법의 코딩 효율이 떨어진다.
본 발명은 전술한 코딩 효율에 대한 악영향을 피함으로써 SBH 및 RSP를 조화시키고 따라서 압축 성능을 향상시키는 개선된 개념을 제공하는 것을 목표로 한다.
본 발명의 실시예는 독립항의 특징에 의해 규정되고, 그리고 실시예의 더욱 유리한 구현예는 종속항의 특징에 의해 규정된다.
본 발명의 제1 측면에 따르면, 신호의 변환 계수 세트의 부호를 인코딩하는 장치가 제공된다. 상기 장치는 프로세싱 회로를 포함하고, 프로세싱 회로는, 제1 소정의 규칙에 따라, 상기 변환 계수 세트 중 제1 복수의 변환 계수를 포함하는 변환 계수 리스트를 결정하도록, 그리고 제2 소정의 규칙에 따라, 상기 변환 계수 세트 중에서 상기 리스트에 포함되지 않은 추가 변환 계수를 선택하도록 구성된다. 상기 프로세싱 회로는, 상기 추가 변환 계수의 부호를 상기 변환 계수 세트에서 변환 계수 값의 미리 정해진 함수의 결과에 임베딩하도록, 그리고 상기 리스트에서 상기 변환 계수의 부호를 추정하기 위한 추정 절차를 수행하도록 추가적으로 구성된다. 또한, 상기 프로세싱 회로는, 상기 제1 복수의 변환 계수의 각각에 대해, 상기 변환 계수의 부호가 상기 변환 계수의 추정된 부호와 일치하는지 여부를 표시하는 2진 값을 결정하도록, 그리고 엔트로피 코딩 기법을 사용하여 상기 제1 복수의 변환 계수에 대해 획득된 2진 값의 시퀀스를 인코딩하도록 구성된다.
본 발명의 제2 측면에 따르면, 신호의 변환 계수 세트의 부호를 디코딩하는 장치가 제공된다. 상기 장치는 상기 제1 복수의 2진 값의 엔트로피 인코딩된 시퀀스를 디코딩하도록 구성된 프로세싱 회로를 포함한다. 상기 프로세싱 회로는, 제1 소정의 규칙에 따라, 상기 변환 계수 세트 중 제1 복수의 변환 계수를 포함하는 변환 계수 리스트를 결정하도록, 그리고 제2 소정의 규칙에 따라, 상기 변환 계수 세트 중에서 상기 리스트에 포함되지 않은 추가 변환 계수를 선택하도록 추가적으로 구성된다. 또한, 상기 프로세싱 회로는, 상기 변환 계수 세트에서 변환 계수 값의 미리 정해진 함수를 계산함으로써 상기 추가 변환 계수의 부호를 결정하도록, 상기 리스트에서 상기 변환 계수의 부호를 추정하기 위한 추정 절차를 수행하도록, 그리고 상기 제1 복수의 변환 계수의 부호를 획득하기 위해, 제1 복수의 2진 값의 디코딩된 시퀀스에 의해 상기 추정된 부호를 정정하도록 구성된다.
본 발명의 제3 측면에 따르면, 신호의 변환 계수 세트의 부호를 인코딩하는 방법이 제공된다. 상기 방법은, 제1 소정의 규칙에 따라, 상기 변환 계수 세트 중 제1 복수의 변환 계수를 포함하는 변환 계수 리스트를 결정하는 단계, 제2 소정의 규칙에 따라, 상기 변환 계수 세트 중에서 상기 리스트에 포함되지 않은 추가 변환 계수를 선택하는 단계, 상기 추가 변환 계수의 부호를 상기 변환 계수 세트에서 변환 계수 값의 미리 정해진 함수의 결과에 임베딩하는 단계, 상기 리스트에서 상기 변환 계수의 부호를 추정하기 위한 추정 절차를 수행하는 단계, 상기 제1 복수의 변환 계수의 각각에 대해, 상기 변환 계수의 부호가 상기 변환 계수의 추정된 부호와 일치하는지 여부를 표시하는 2진 값을 결정하는 단계, 및 상기 제1 복수의 변환 계수에 대해 획득된 2진 값의 시퀀스를 엔트로피 코딩 기법을 사용하여 인코딩하는 단계를 포함한다.
본 발명의 제4 측면에 따르면, 신호의 변환 계수 세트의 부호를 디코딩하는 방법이 제공된다. 상기 방법은, 제1 복수의 2진 값의 엔트로피 인코딩된 시퀀스를 디코딩하는 단계, 제1 소정의 규칙에 따라, 상기 변환 계수 세트 중 제1 복수의 변환 계수를 포함하는 변환 계수 리스트를 결정하는 단계, 상기 변환 계수 세트 내의 변환 계수 세트 중에서 추가 변환 계수를 선택하는 단계, 상기 리스트에서 상기 변환 계수의 부호를 추정하기 위한 추정 절차를 수행하는 단계, 및 상기 제1 복수의 변환 계수의 부호를 획득하기 위해, 상기 제1 복수의 2진 값의 디코딩된 시퀀스에 의해 상기 추정된 부호를 정정하는 단계를 포함한다.
본 개시에 따르면, 신호는, 특히, 예를 들어, 비디오 신호 또는 이미지 신호를 의미한다. 상기 신호는 오디오 신호를 또한 포함할 수 있다. 상기 프로세싱 회로는 소프트웨어 및/또는 하드웨어의 임의의 조합에 의해 구현될 수 있다. 상기 변환 계수 세트는, 특히, 계수 그룹 또는 계수 청크이다.
RSP 절차를 2개의 서브 절차로 분리하는 것, 즉 제1 서브 절차에서 하나 이상의 RSP 리스트를 준비하고 제2 서브 절차에서 RSP 기법과 관련된 다른 동작을 수행하는 것이 본 발명의 특정 접근법이다. 이 서브 절차들 사이에 SBH가 수행된다. 이에 의하여, SBH를 적용하기 위한 계수는, 예를 들어, 계수 그룹(CG) 또는 계수 청크(CC)의 처음의 유의미한 양자화된 변환 계수를 디폴트(default)로 취하기보다는, 상기 RSP 리스트 또는 리스트들에 포함되지 않도록 의도적으로 선택될 수 있다.
실시예들에 따라, 상기 추정 절차는 픽셀 도메인(공간 도메인)에서 수행된다. 상기 추정 절차는, 상기 제1 복수의 변환 계수의 부호의 각각의 가상의 조합에 대해, 공간 도메인에서 상기 변환 계수 세트에 대응하는 이미지 블록의 경계 픽셀을 재구성하는 단계, 상기 가상의 조합의 각각에 대해, 재구성된 픽셀과 인접 블록의 픽셀 사이의 블록 경계에 걸쳐 픽셀 값의 평활도(smoothness)를 표시하는 미리 정해진 공간 도메인 함수를 평가하는 단계, 및 상기 미리 정해진 공간 도메인 함수가 평활도를 최대로 표시하는 가상의 조합을 상기 변환 계수의 추정된 부호로서 선택하는 단계를 포함한다. 상기 미리 정해진 공간 도메인 함수(비용 함수)는, 특히, 위의 수학식 1에 정의된 함수와 같이, 현재 블록과 이웃 블록의 경계를 따라 인접한 픽셀들의 픽셀 값들 사이의 절대 차이의 합을 사용하는 함수이다. 대안적으로, 절대 차이의 합 대신에, 차이 제곱의 합을 이용하는 함수와 같이, 픽셀 값의 평활도(smoothness)를 나타내는 다른 함수가 동일하게 가능하다.
대안적인 실시예들에 따르면, 상기 추정 절차는 변환 도메인(주파수 도메인)에서 수행된다. 상기 추정 절차는, 상기 이미지 블록의 예측 신호에 기초하여 계산되는 인접 픽셀들의 예측과 상기 변환 계수 세트에 대응하는 현재 이미지 블록에 이웃한 인접 픽셀들 사이의 변환된 차이를 포함하는 비용 함수에 기초하여 상기 부호를 추정하는 단계를 포함한다.
구체적으로, 상기 비용 함수는, 상기 이미지 블록의 예측 신호에 기초하여 계산되는 인접 픽셀들의 예측과 변환된 이미지 블록에 이웃한 인접 픽셀들 사이의 변환된 차이의 제곱의 합을 포함할 수 있다. 이러한 비용 함수의 예는 아래에서 주어진다 (수학식 2).
실시예에 따르면, 상기 제2 소정의 규칙은, 상기 리스트에 속하지 않는 가장 저주파의 0이 아닌 변환 계수를 상기 추가 변환 계수로서 선택하도록 규정한다.
실시예에 따르면, 상기 프로세싱 회로는, 미리 정해진 엔트로피 인코딩 절차에 의해 상기 세트의 제2 복수의 변환 계수의 부호를 인코딩-상기 제2 복수의 변환 계수는 상기 리스트에 포함된 상기 제1 복수에 포함되지 않고 상기 선택된 추가 변환 계수와는 상이한 모든 나머지 0이 아닌 변환 계수를 포함함-하도록 추가적으로 구성된다.
실시예에 따르면, 상기 리스트는 적어도 2개의 서브-리스트를 포함한다. 상기 서브-리스트들은, 제1 서브-리스트는 임계치보다 큰 절대값을 가지는 변환 계수를 포함하고 상기 제2 서브-리스트는 상기 임계치 이하의 절대값을 가지는 변환 계수를 포함하도록, 임계치에 의해 서로 분할된다.
또한, 상기 2개의 서브-리스트의 변환 계수에 대해 결정되는 상기 추정된 부호와의 일치 여부를 표시하는 상기 2진 값의 시퀀스는 엔트로피 인코딩의 상이한 내용으로 각각 인코딩된다. 배경기술 섹션에서 언급한 바와 같이, 제1 서브-리스트(HP-리스트)에서 더 큰 크기의 변환 계수(임계치 위)는, 제2 서브-리스트(LP-리스트)에서 상기 임계치보다 작은 크기의 계수들보다, 상기 추정 절차에 의해 부호의 올바른 예측을 할 확률이 더 크다. 이는 상기 상이한 인코딩 컨텍스트에 의해 고려된다.
실시예에 따르면, 상기 미리 정해진 함수의 결과는, 상기 제1 부호 값이 상기 제1 결과 값에 대응하고 상기 제2 부호 값이 제2 결과 값에 대응하도록, 2개의 상이한 값을 가정할 수 있다. 상기 추가 변환 계수의 부호를 임베딩하는 단계는, 상기 변환 계수의 미리 정해진 함수가 상기 추가 변환 계수의 부호에 대응하는 결과 값을 가지는지 여부를 결정하는 단계를 포함한다. 따라서, 상기 인코딩 장치의 프로세싱 회로는, 수정 전에 상기 미리 정해진 함수가 상기 추가 변환 계수의 부호에 대응하는 결과를 가지지 않으면, 수정 후에 상기 변환 계수의 상기 정해진 함수가 상기 추가 변환 계수의 부호에 대응하는 결과를 가지도록 상기 변환 계수 중 하나의 값을 수정하도록 추가적으로 구성된다.
또한, 수정될 상기 변환 계수 중 하나 및 상기 수정이 수행되어 레이트-왜곡 비용 함수를 최소화하도록 한다. 예를 들어, 상기 미리 정해진 함수의 결과가 세트의 변환 계수의 양자화 이후 절대 계수 값의 합의 패리티인 경우, 상기 합에 포함된 계수의 임의의 하나를 +1에 의해 또는 -1에 의해 수정함으로써 원하는 결과를 충분히 달성할 수 있다. 따라서, 레이트-왜곡 비용 함수를 고려함으로써, 최적의 선택이 이루어질 수 있다.
대안적으로, 또는 추가적으로, 상기 계수 수정에 의해 도입되는 최소의 왜곡이 존재할 때, 또는, 대안적으로, 상기 계수의 양자화된 레벨이 가장 높을 때, 최소가 되는, 수정 추정 함수가 고려될 수 있다.
또한, 실시예에 따르면, 상기 리스트는 서브-리스트들을 포함하고, 상기 인코딩 장치의 상기 프로세싱 회로는, 상기 서브-리스트들에 걸쳐 상기 제1 복수의 변환 계수의 분포에 변경을 초래하는 수정을 허용하지 않도록, 변환 계수의 값의 수정에 제약을 가하도록 추가적으로 구성된다. 즉, 본 발명에 따르면, 상기 리스트에 포함된 계수들(보다 구체적으로: 계수 그룹 또는 청크에서 이들의 위치)은, 부호의 임베딩 (SBH)을 수행하기에 앞서 선택되고, 상기 서브-리스트에서 계수(의 위치)는 디코더 측에서 적절하게 디코딩되도록 변경되지 않아야 한다.
보다 구체적으로, 절대값의 임계값에 의해 서로 분할되는 2개의 서브-리스트들이 존재하는 경우, 상기 제약은, 수정된 값이 수정되지 않은 값과는 다른 서브-리스트에 속하도록 수정이 임계치의 교차를 초래하는 경우 변환 계수의 값의 수정을 허용하지 않도록 규정될 수 있다.
실시예에 따르면, 상기 변환 계수는 양자화된 변환 계수이다.
실시예에 따르면, 상기 제1 소정의 규칙은, 미리 정해진 수 M개의 양자화된 변환 계수의 순서화된 리스트로서 상기 변환 계수의 리스트를 규정한다. 보다 구체적으로, 상기 제1 소정의 규칙은, 상기 변환 계수 세트에서 가장 높은 절대값을 가지는 M개의 변환 계수를, 내림차순으로, 상기 변환 계수의 리스트에 포함시키도록 추가적으로 규정한다.
실시예에 따르면, 상기 미리 정해진 함수는 양자화 모듈로 2 이후의 절대 변환 계수 값의 합, 즉, 양자화 이후 절대 변환 계수 값의 합의 패리티이다.
대안적으로, 미리 정해진 함수의 값에서 복수의 변환 계수의 부호를 숨기는 것이 또한 가능하다. 보다 구체적으로, 하나의 계수에 대해 전술한 바와 유사한 방식으로, N개 계수의 부호는, 플러스 및 마이너스의 부호를 N개 계수에 걸쳐 분포시키는 2N개의 상이한 가능성에 대응하는 2N개의 상이한 값을 취할 수 있는 미리 정해진 함수에 의해 숨겨질 수 있다.
구체적으로, 실시예에 따르면, 상기 프로세싱 회로는, 상기 제2 소정의 규칙에 따라, 상기 변환 계수 세트 중에서 상기 리스트에 포함되지 않는 복수의 N개의 추가 변환 계수를 선택하도록, 그리고 상기 추가 변환 계수의 부호를 상기 변환 계수 세트에서 변환 계수 값의 미리 정해진 함수의 결과에 임베딩하도록 구성된다. 보다 구체적으로, 상기 미리 정해진 함수는 양자화 모듈로 2N 이후의 절대 변환 계수 값의 합일 수 있다.
복수의 변환 계수의 부호의 임베딩(숨기기)을 채용하는 실시예에서, 부호의 올바른 조합에 대응하는 원하는 함수 값을 획득하기 위해 수정이 필요한 경우, 하나의 계수만을 +1 또는 -1에 의해 변경하는 것이 충분하지 않을 수 있음이 이해된다. 오히려, 하나의 계수를 최대 +/-(2N -1)까지의 양으로, 또는, 대안적으로, +/- 1에 의해 2N-1 계수들까지 (또는, 이들 가능성의 조합) 변경해야 할 수도 있다. 따라서, 복수의 RSP 서브-리스트의 경우에 수정에 적용되는 제약은 SBH를 복수의 계수에 적용하는 경우에도 준용하여 적용된다.
실시예에 따르면, 상기 프로세싱 회로는, 본 발명의 제1 측면 또는 제2 측면에 따라, 상기 복수의 변환 계수 세트의 각각에 대해 상기 변환 유닛의 변환 계수를 복수의 변환 계수 세트로 분할하고 상기 프로세싱을 수행하도록 구성된다.
보다 구체적으로, 실시예에 따르면, 상기 변환 유닛은 이미지 신호를 변환함으로써 획득되는 변환 계수의 2차원 블록이고, 상기 프로세싱 회로는 상기 변환 유닛을 상기 복수의 변환 계수 세트로서 복수의 2차원 블록으로 분할하도록 구성된다. 비 제한적인 예로서, 상기 변환 유닛은, 예를 들어, 16×16 또는 8×8 블록일 수 있다. 그리고 변환 계수 세트는, 예를 들어, 8×8 또는 4×4 블록일 수 있다.
대안적인 실시예에 따르면, 상기 변환 유닛은 이미지 신호를 변환함으로써 획득되는 변환 계수의 2차원 블록이고, 상기 프로세싱 회로는, 상기 변환 유닛의 변환 계수를 미리 정의된 순서에 따라 스캔하고 스캐닝된 변환 계수를 상기 복수의 변환 계수 세트로서 복수의 1차원 청크로 분할하도록 구성된다.
실시예에 따르면, 본 발명의 제2 측면에 따른 디코딩된 2진 값은, 상기 리스트 내의 각각의 변환 계수에 대해, 상기 변환 계수의 부호가 상기 변환 계수의 추정된 부호와 일치하는지 여부를 표시한다. 달리 말하면, 상기 2진 값은 상기 추정 절차에 따른 계수의 추정된 부호와 올바른 부호 사이의 차이를 나타낸다. 상기 추정은, 특히, 상기 리스트에 포함될 큰 크기의 변환 계수에 대하여, 오류가 거의 없을 것으로 예상되기 때문에, 2진 값의 시퀀스는 값 "1"(부호가 틀리게 추정됨)보다 값 "0"(차이 없음, 즉, 추정이 올바름)을 훨씬 자주 포함할 것이 예상된다. 따라서, 2진 값의 시퀀스는, 위에서 표시된 바와 같이, 동일 확률(equal probability; EP) 분포를 가지는 부호 값 자체보다 엔트로피 코딩(특히 CABAC 코딩)에 의해 보다 효율적으로 인코딩될 수 있다.
실시예에 따르면, 상기 미리 정해진 함수의 계산의 결과는 2개의 상이한 값을 가정할 수 있고, 상기 추가 변환 계수의 부호는 상기 결과가 제1 값이면 제1 부호 값이고 상기 결과가 제2 값이면 제2 부호 값이라는 규칙에 따라 결정된다. 예를 들어, 2개의 상이한 값은 계산 결과의 패리티(짝수 또는 홀수)에 대응할 수 있다.
하나 이상의 실시예들의 세부 사항들은 첨부한 도면 및 아래의 설명에서 설명된다. 다른 특징, 목적, 및 장점은 상세한 설명, 도면, 및 청구 범위로부터 명백할 것이다.
본 발명의 다음의 실시예는 첨부된 도시 및 도면을 참조하여 보다 상세하게 설명된다.
도 1은 JCT-VC에 의해 HEVC/H.265 표준으로 채택된 다중 부호 비트 숨기기를 나타내는 도면이다.
도 2는 TU를 CC로 분리하는 것을 나타내는 도면이다.
도 3은 픽셀 도메인에서 비용 함수에 의한 부호 추정의 종래 기술 절차의 개요를 제공한다.
도 4는 도 3의 기법과 종래의 부호 코딩의 비교를 도시한다.
도 5는 공지된 기법에 따라 비용 값을 도출하는데 사용되는 픽셀의 예를 도시한다.
도 6은 RSP와 SBH의 조화의 종래 기술 절차를 도시한다.
도 7은 본 발명의 실시예들을 구현하도록 구성된 비디오 코딩 시스템의 예를 도시하는 블록도이다.
도 8은 비디오 인코더의 예를 도시하는 블록도이다.
도 9는 비디오 디코더의 예시적인 구조를 도시하는 블록도이다.
도 10은 본 발명의 실시예들에 따른 조화된 부호 예측 및 숨기기 프로세스를 가지는 인코더 및 디코더의 데이터 흐름을 도시한다.
도 11은 본 발명의 실시예에 따른 SBH와 예측리스트 생성의 조화의 예를 제공한다.
도 12는 RD 의미에서 최상의 계수 수정의 결정을 도시한다.
도 13은 최상의 계수 수정을 결정하기 위한 대안적인 개념을 도시한다.
도 14는 본 발명의 실시예들에 따른 대안적인 주파수-도메인 부호 추정 개념을 도시한다.
도 15는 인코더 측에서 본 발명의 예시적인 구현예의 개요를 제공한다.
도 16은 디코더 측에서 본 발명의 예시적인 구현예의 개요를 제공한다.
도면에서, 동일한 참조 부호는 동일하거나 적어도 기능적으로 동등한 특징을 지칭한다.
이하의 설명에서, 본 개시의 일부를 형성하고 본 발명의 실시예의 특정 측면 또는 본 발명의 실시예가 사용될 수 있는 특정 측면을 예시적으로 나타내는 첨부 도면을 참조한다. 본 발명의 실시예는 다른 측면에서 사용될 수 있고 도면에 도시되지 않은 구조적 또는 논리적 변경을 포함하는 것으로 이해된다. 그러므로, 다음의 상세한 설명은 제한적인 의미로 취해지지 않아야 하며, 본 발명의 범위는 첨부된 청구 범위에 의해 규정된다.
예를 들어, 기술된 방법과 관련한 개시는, 방법을 수행하도록 구성되는 대응하는 장치 또는 시스템에 대해서도 유효할 수 있고, 그 반대도 마찬가지인 것으로 이해된다. 예를 들어, 하나 또는 복수의 특정 방법 단계가 기술된다면, 대응하는 디바이스는, 명시적으로 기술되거나 도면에 도시되지 않더라도, 기술된 하나 또는 복수의 방법 단계를 수행하는 하나 또는 복수의 유닛(예컨대, 하나 또는 복수의 단계를 수행하는 하나의 유닛, 또는 각각이 상기 복수의 단계 중 하나 이상을 수행하는 복수의 유닛), 예컨대 기능적 유닛을 포함할 수 있다. 한편, 예를 들어, 특정 장치가 하나 또는 복수의 유닛, 예컨대 기능적 유닛에 기초하여 기술되는 경우, 대응하는 방법은, 명시적으로 기술되거나 도면에 도시되지 않더라도, 하나 또는 복수의 유닛의 기능을 수행하는 하나의 단계(예컨대, 하나 또는 복수의 유닛의 기능을 수행하는 하나의 단계, 또는 각각이 상기 복수의 유닛 중 하나 이상의 기능을 수행하는 복수의 단계)를 포함할 수 있다. 또한, 달리 구체적으로 언급되지 않는 한, 여기에 기술된 다양한 예시적인 실시예들 및/또는 측면들의 특징들은 서로 조합될 수 있는 것으로 이해된다.
비디오 코딩은 통상적으로 비디오 또는 비디오 시퀀스를 형성하는 화상 시퀀스의 프로세싱을 지칭한다. 화상이라는 용어 대신에, 프레임 또는 이미지라는 용어는 비디오 코딩 분야에서 동의어로 사용될 수 있다. 비디오 코딩은 비디오 인코딩 및 비디오 디코딩의 두 부분을 포함한다. 비디오 인코딩은 소스 측에서 수행되며, 비디오 화상을 나타내는데 필요한 데이터 량을 감소시키기 위해 (보다 효율적인 저장 및/또는 전송을 위해) 원본 비디오 화상을 (예컨대, 압축에 의해) 프로세싱하는 것을 통상적으로 포함한다. 비디오 디코딩은 목적지 측에서 수행되며, 비디오 화상을 재구성하기 위해 인코더에 비해 역 프로세싱을 통상적으로 포함한다. 비디오 화상(또는 후술되는 바와 같이, 일반적으로 화상)의 "코딩"을 언급하는 실시예는 비디오 화상의 "인코딩" 및 "디코딩" 모두와 관련되는 것으로 이해되어야 한다. 인코딩 부분과 디코딩 부분의 조합은 또한 코덱(코딩 및 디코딩)으로 지칭된다.
무손실 비디오 코딩의 경우, 원본 비디오 화상은 재구성될 수 있으며, 즉 재구성된 비디오 화상은 원본 비디오 화상과 동일한 품질을 가진다(저장 또는 전송 동안 전송 손실 또는 다른 데이터 손실이 없다고 가정). 손실 있는 비디오 코딩의 경우, 비디오 화상을 표현하는 데이터의 양을 감소시키기 위해 예컨대 양자화에 의해 추가적인 압축이 수행되는데, 이는 디코더에서 완전히 재구성될 수 없으며, 즉, 재구성된 비디오 화상의 품질이 원본 비디오 화상의 품질에 비해 낮거나 더 나쁘다.
H.261 이후의 여러 비디오 코딩 표준은 "손실 있는 하이브리드 비디오 코덱(lossy hybrid video codecs)"의 그룹에 속한다(즉, 샘플 도메인에서의 공간적 및 시간적 예측 및 변환 도메인에서 양자화를 적용하기 위한 2D 변환 코딩을 조합한다). 비디오 시퀀스의 각각의 화상은 통상적으로 겹치지 않는 블록들의 세트로 분할되고, 코딩은 통상적으로 블록 레벨에서 수행된다. 달리 말하면, 인코더에서, 비디오는 통상적으로 블록(비디오 블록) 레벨에서 프로세싱, 즉, 인코딩되는데, 예컨대, 공간적 (인트라 화상) 예측 및 시간적 (인터 화상) 예측을 사용하여 예측 블록을 생성하고, 현재 블록(현재 처리되는/처리될 블록)으로부터 예측 블록을 차감하여 잔차 블록을 획득하고, 잔차 블록을 변환하고 변환 도메인에서 잔차 블록을 양자화하여 전송될 데이터의 양을 감소(압축)시키며, 반면에 디코더에서는, 표현을 위해 현재 블록을 재구성하기 위해 인코더에 대비해 역 프로세싱이 인코딩된 또는 압축된 블록에 적용된다. 또한, 인코더는 디코더 프로세싱 루프를 복제하여, 둘 다 후속 블록을 프로세싱, 즉, 코딩하기 위한 동일한 예측 (예컨대 인트라- 및 인터 예측) 및/또는 재구성을 생성할 것이다.
비디오 화상 프로세싱(동영상 프로세싱이라고도 함)과 정지 화상 프로세싱(프로세싱이라는용어는 코딩을 포함함)은 많은 개념 및 기술 또는 툴(tools)을 공유하므로, 아래에서 "화상" 또는 "이미지"라는 용어 및 "화상 데이터" 또는 "이미지 데이터"라는 동등한 용어는, 필요하지 않은 경우, 비디오 화상과 정지 화상 사이의 불필요한 반복과 구별을 피하기 위해, (위에서 설명한 바와 같은) 비디오 시퀀스의 비디오 화상 및/또는 정지 화상을 지칭하는 것으로 사용된다. 설명이 정지 화상(또는 정지 이미지)만을 언급하는 경우, "정지 화상"이라는 용어가 사용된다.
아래의 실시예에서, (도 10 내지 16에 기초하여 본 발명의 실시예를 보다 상세하게 설명하기에 앞서) 인코더(100), 디코더(200), 및 코딩 시스템(300)이 도 7 내지 도 9에 기초하여 설명된다.
도 7은 코딩 시스템(300) 예컨대 화상 코딩 시스템(300)의 실시예를 도시하는 개념적 또는 개략적인 블록도로서, 코딩 시스템(300)은, 인코딩된 데이터(330)를 디코딩하도록 데스티네이션 디바이스(destination device)(320)에 인코딩된 데이터(330) 예컨대 인코딩된 화상(330)을 제공하도록 구성되는 소스 디바이스(310)를 포함한다.
소스 디바이스(310)는 인코더(100) 또는 인코딩 유닛(100)을 포함하고, 추가적으로, 즉, 선택 사항으로, 화상 소스(312), 전처리 유닛(314), 예컨대 화상 전처리 유닛(314), 및 통신 인터페이스 또는 통신 유닛(318)을 포함할 수 있다.
화상 소스(312)는, 일례로 현실-세계 화상을 챕쳐하는 임의의 종류의 화상 캡처 디바이스, 및/또는 일례로 컴퓨터 애니메이션 화상을 생성하는 컴퓨터-그래픽 프로세서와 같은 임의의 종류의 화상 생성 디바이스, 또는 현실-세계 화상, 컴퓨터 애니메이션 화상 (예컨대 스크린 컨텐츠, 가상 현실 (VR) 화상), 및/또는 이들의 임의의 조합(예컨대 증강 현실(augmented reality; AR) 화상)을 획득 및/또는 제공하는 임의의 종류의 디바이스이거나 이를 포함할 수 있다. 이하에서, 이들 모든 종류의 화상 또는 이미지 및 임의의 다른 종류의 화상 또는 이미지는, 달리 구체적으로 기술되지 않는 한 "화상" "이미지" 또는 "화상 데이터" 또는 "이미지 데이터"로 지칭될 것이고, "비디오 화상" 및 "정지 화상"을 포괄하는 "화상" 또는 "이미지"라는 용어에 관련하여 전술한 설명은 명시적으로 다르게 지정하지 않는 한 여전히 유효하다.
(디지털) 영상은 세기 값을 가지는 샘플의 2차원 어레이 또는 매트릭스이거나 간주될 수 있다. 어레이 내의 샘플은 또한 픽셀(짧은 형태의 화상 엘리먼트) 또는 펠(pel)로 지칭될 수 있다. 어레이 또는 화상의 수평 및 수직 방향(또는 축)의 샘플 수는 화상의 크기 및/또는 해상도를 규정한다. 컬러를 표현하기 위해, 통상적으로 3개의 컬러 성분이 사용되는데, 즉 그림은 3개의 샘플 어레이를 나타내거나 포함할 수 있다. RGB 포맷 또는 컬러 공간에서, 화상은 대응하는 적색, 녹색, 및 청색 샘플 어레이를 포함한다. 그러나, 비디오 코딩에서, 각각의 픽셀은 통상적으로 휘도/크로미넌스(chrominance) 포맷 또는 예컨대 YCbCr의 컬러 공간으로 표현되며, 이는 Y(때때로 L이 또한 대신 사용됨)로 표시되는 휘도 성분 및 Cb 및 Cr로 표시되는 2개의 크로미넌스 성분을 포함한다. 휘도(또는 쇼트 루마(short luma)) 성분 Y는 휘도 또는 (예컨대 그레이스케일 화상에서와 같이) 그레이 레벨 세기를 나타내고, 2개의 크로미넌스(또는 쇼트 크로마(short chroma)) 성분 Cb 및 Cr는 색도(chromaticity) 또는 컬러 정보 성분을 나타낸다. 따라서, YCbCr 포맷의 화상은 휘도 샘플 값 (Y)의 휘도 샘플 어레이, 및 크로미넌스 값(Cb 및 Cr)의 2개의 크로미넌스 샘플 어레이를 포함한다. RGB 포맷의 화상은 YCbCr 형식으로 전환 또는 변환될 수 있으며 그 반대의 경우도 가능하고, 이 프로세스를 색 전환 또는 변환이라고도 한다. 화상이 단색이면, 화상은 휘도 샘플 어레이만을 포함할 수 있다.
화상 소스(312)는, 일례로 화상을 캡처하기 위한 카메라, 이전에 캡처된 또는 생성된 화상을 포함하거나 저장하는 예컨대 화상 메모리와 같은 메모리, 및/또는 화상을 획득하거나 수신하기 위한 임의의 종류의 (내부 또는 외부) 인터페이스일 수 있다. 카메라는 예를 들어 로컬 또는 소스 디바이스에 통합된 통합 카메라일 수 있고, 메모리는 로컬 또는 예컨대 소스 디바이스에 통합된 통합 메모리일 수 있다. 인터페이스는, 예를 들어, 외부 비디오 소스로부터 화상을 수신하는 외부 인터페이스, 일례로 카메라와 같은 외부 화상 캡처 디바이스, 외부 메모리, 또는 일례로 외부 컴퓨터-그래픽 프로세서, 컴퓨터 또는 서버의 외부 화상 생성 디바이스일 수 있다. 인터페이스는, 임의의 독점(proprietary) 또는 표준화된 인터페이스 프로토콜에 따라, 임의의 종류의 인터페이스, 예컨대 유선 또는 무선 인터페이스, 광학 인터페이스일 수 있다. 화상 데이터(313)를 획득하기 위한 인터페이스는 통신 인터페이스(318)와 동일한 인터페이스이거나 그 일부일 수 있다.
각 디바이스 내의 유닛들 사이의 인터페이스는 케이블 연결, USB 인터페이스를 포함한다. 소스 디바이스(310)와 데스티네이션 디바이스(320) 사이의 통신 인터페이스(318 및 322)는 케이블 연결, USB 인터페이스, 무선 인터페이스를 포함한다.
전처리 유닛(314) 및 전처리 유닛(314)에 의해 수행되는 프로세싱과는 달리, 화상 또는 화상 데이터(313)는 또한 원시(raw) 화상 또는 원시(raw) 화상 데이터(313)로 지칭될 수 있다.
전처리 유닛(314)은, (원시) 화상 데이터(313)를 수신하고, 화상 데이터(313)에 대해 전처리를 수행하여, 전처리된 화상(315) 또는 전처리된 화상 데이터(315)를 획득하도록 구성된다. 전처리 유닛(314)에 의해 수행되는 전처리는 예컨대 트리밍(trimming), 컬러 포맷 변환(예컨대, RGB에서 YCbCr로), 컬러 보정, 또는 노이즈 제거를 포함할 수 있다.
인코더(100)는, 전처리된 화상 데이터(315)를 수신하고, 인코딩된 화상 데이터(171)를 제공하도록 구성된다 (더욱 구체적인 사항은 예컨대, 도 8에 기초하여 설명될 것이다).
소스 디바이스(310)의 통신 인터페이스(318)는, 인코딩된 화상 데이터(171)를 수신하고, 이를 다른 디바이스에, 예컨대 데스티네이션 디바이스(320) 또는 임의의 다른 디바이스에 저장 또는 직접 재구성을 위해 직접 전송하거나, 또는 인코딩된 데이터(330)를 저장하기 전에 및/또는 인코딩된 데이터(330)를 다른 디바이스에, 예컨대 데스티네이션 디바이스(320) 또는 임의의 다른 디바이스에 디코딩 또는 저장을 위해 전송하기 전에 인코딩된 화상 데이터(171)를 프로세싱하도록 구성될 수 있다.
데스티네이션 디바이스(320)는 디코더(200) 또는 디코딩 유닛(200)을 포함하고, 추가적으로, 즉, 선택사항으로, 통신 인터페이스 또는 통신 유닛(322), 후처리 유닛(326) 및 디스플레이 디바이스(328)를 포함할 수 있다.
데스티네이션 디바이스(320)의 통신 인터페이스(322)는, 인코딩된 화상 데이터(171) 또는 인코딩된 데이터(330)를, 예컨대, 소스 디바이스(310)로부터 또는 임의의 다른 소스로부터, 예컨대 메모리로부터, 예컨대 인코딩된 화상 데이터 메모리로부터 직접 수신하도록 구성된다.
통신 인터페이스(318)와 통신 인터페이스(322)는, 소스 디바이스(310)와 데스티네이션 디바이스(320) 사이의 직접 통신 링크를 통해, 예컨대 광학 연결을 포함하여 직접의 유선 또는 무선 연결을 통해, 또는 임의의 종류의 네트워크를 통해, 예컨대 유선 또는 무선 네트워크 또는 이들의 임의의 조합, 또는 임의의 종류의 사설 및 공공 네트워크, 또는 임의의 종류의 이들의 조합을 통해, 인코딩된 화상 데이터(171) 또는 인코딩된 데이터(330)를 각각 전송 및 수신하도록 구성될 수 있다.
통신 인터페이스(318)은 예컨대, 통신 링크 또는 통신 네트워크를 통한 전송을 위해, 인코딩된 화상 데이터(171)을 적정 포맷으로, 예컨대 패킷으로 패키징하도록 구성될 수 있고, 데이터 손실 보호를 더 포함할 수 있다.
통신 인터페이스(318)의 상대방을 형성하는 통신 인터페이스(322)는, 예컨대, 인코딩된 데이터(330)를 디패키징(de-package)하여 인코딩된 화상 데이터(171)를 획득하도록 구성될 수 있고, 예컨대 오류 은닉(error concealment)를 포함하는 데이터 손실 보호 및 데이터 손실 복구를 수행하도록 추가적으로 구성될 수 있다.
통신 인터페이스(318) 및 통신 인터페이스(322) 모두, 도 7에서 소스 디바이스(310)로부터 데스티네이션 디바이스(320)로 향하는 인코딩된 화상 데이터(330)에 대한 화살표로 표시된 바와 같은 일방향 통신 인터페이스로, 또는 양방향 통신 인터페이스로 구성될 수 있고, 예컨대 메시지를 송신 및 수신하도록 구성될 수 있으며, 이는 예컨대 연결을 셋업하고, 손실된 또는 지연된 데이터(화상 데이터 포함)을 확인 및/또는 재송신, 및 통신 링크 및/또는 데이터 전송, 예컨대 인코딩된 화상 데이터 전송에 관련된 임의의 다른 정보를 교환하도록 구성될 수 있다.
디코더(200)는, 인코딩된 화상 데이터(171)를 수신하고 디코딩된 화상 데이터(231) 또는 디코딩된 화상(231)을 제공하도록 구성된다 (더욱 구체적인 사항은 예컨대, 도 9에 기초하여 설명될 것이다).
데스티네이션 디바이스(320)의 후처리기(326)는 디코딩된 화상 데이터(231)를, 예컨대 디코딩된 화상(231)을 후처리하여, 후처리된 화상 데이터(327)를, 예컨대 후처리된 화상(327)를 획득하도록 구성된다. 후처리 유닛(326)에 의해 수행되는 후처리는, 예컨대 컬러 포맷 전환(예컨대 YCbCr로부터 RGB로), 컬러 보정, 트리밍(trimming), 또는 리샘플링(re-sampling), 또는 임의의 다른 프로세싱, 예컨대 디코딩된 화상 데이터(231)를 예컨대 디스플레이 디바이스(328)에 의해 디스플레이하기 위한 프로세싱을 포함할 수 있다.
데스티네이션 디바이스(320)의 디스플레이 디바이스(328)는, 예컨대 사용자 또는 뷰어(viewer)에게 화상을 디스플레이하기 위해 후처리된 화상 데이터(327)을 수신하도록 구성된다. 디스플레이 디바이스(328)는 예컨대 통합 또는 외부 디스플레이 또는 모니터와 같이 재구성된 화상을 표현하는 임의의 종류의 디스플레이이거나 이를 포함할 수 있다. 디스플레이는, 예컨대 음극선관(CRT), 액정 디스플레이(LCD), 플라즈마 디스플레이, 유기 발광 다이오드(OLED) 디스플레이 또는, 프로젝터, 홀로그램 디스플레이, 홀로그램을 생성하는 장치와 같은 임의의 종류의 다른 디스플레이 등을 포함할 수 있다.
비록 도 7은 소스 디바이스(310)와 데스티네이션 디바이스(320)를 별개의 디바이스로 도시하나, 디바이스의 실시예는 또한, 소스 디바이스(310) 또는 대응하는 기능 및 데스티네이션 디바이스(320) 또는 대응하는 기능의 양자 모두 또는 두 기능 모두를 포함할 수 있다. 이러한 실시예들에서, 소스 디바이스(310) 또는 대응하는 기능 및 데스티네이션 디바이스(320) 또는 대응하는 기능은, 동일한 하드웨어 및/또는 소프트웨어를 사용하여, 또는 별개의 하드웨어 및/또는 소프트웨어 또는 이들의 임의의 조합에 의해 구현될 수 있다.
설명에 기초하여 당업자에게 명백한 바와 같이, 도 7에 도시된 바와 같은 소스 디바이스(310) 및/또는 데스티네이션 디바이스(320) 내의 상이한 유닛 또는 기능의 기능 존재 및 (정확한) 기능 분할은, 실제의 디바이스와 응용예에 따라 다를 수 있다.
이하에서, 코딩 시스템(300), 소스 디바이스(310) 및/또는 데스티네이션 디바이스(320)에 대한 몇가지 비제한적인 예(non-limiting examples)가 제공될 것이다.
스마트 폰, 태블릿 또는 디스플레이가 통합된 핸드 헬드 카메라와 같은 다양한 전자 제품이 코딩 시스템(300)에 대한 예시로 볼 수 있다. 이들은 디스플레이 디바이스(328)를 포함하고 그들 대부분은 통합된 카메라, 즉 화상 소스(312)를 또한 포함한다. 통합된 카메라로 촬영된 화상 데이터가 처리되고 디스플레이된다. 프로세싱은 내부적으로 화상 데이터의 인코딩 및 디코딩을 포함할 수 있다. 또한, 인코딩된 화상 데이터는 통합된 메모리에 저장될 수 있다.
대안적으로, 이들 전자 제품은, 인터넷 또는 외부 카메라와 같은 외부 소스로부터 화상 데이터를 수신하거나, 또는 인코딩된 화상 데이터를 외부 디스플레이 또는 저장 유닛로 전송하기 위한, 유선 또는 무선 인터페이스를 가질 수 있다.
한편, 셋톱 박스는 통합 카메라 또는 디스플레이를 포함하지 않지만, 수신된 화상 데이터의 화상 프로세싱을 수행하여 외부 디스플레이 디바이스에 표시한다. 이러한 셋톱 박스는 예를 들어 칩셋에 의해 구현될 수 있다.
대안적으로, 셋톱 박스에 유사한 디바이스는 디스플레이가 통합된 TV 세트와 같은 디스플레이 디바이스에 포함될 수 있다.
통합된 디스플레이가 없는 감시 카메라가 추가적인 예가 된다. 이들은 캡처되고 인코딩된 화상 데이터를 외부 디스플레이 디바이스 또는 외부 저장 장치로 전송하기 위한 인터페이스를 가지는 소스 디바이스를 나타낸다.
반대로, 예를 들어 AR 또는 VR에 사용되는, 스마트 안경 또는 3D 안경과 같은 디바이스는 데스티네이션 디바이스(320)를 나타낸다. 이들은 인코딩된 화상 데이터를 수신하고 표시한다.
따라서, 도 7에 도시된 바와 같은 소스 디바이스(310) 및 데스티네이션 디바이스(320)는 발명의 실시예들의 단지 예시일 뿐이며, 발명의 실시예는 도 7에 도시된 것에 한정되지 않는다.
소스 디바이스(310) 및 데스티네이션 디바이스(320)는, 임의의 종류의 핸드 헬드 또는 고정 디바이스, 예컨대 노트북 또는 랩 탑 컴퓨터, 휴대 전화, 스마트 폰, 태블릿 또는 태블릿 컴퓨터, 카메라, 데스크탑 컴퓨터, 셋톱 박스, 텔레비전, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게이밍 콘솔, 비디오 스트리밍 디바이스, 브로드캐스트 수신기 디바이스, 등을 포함하는 임의의 광범위한 디바이스를 포함할 수 있다. 대규모의 전문적인 인코딩 및 디코딩을 위해, 소스 디바이스(310) 및/또는 데스티네이션 디바이스(320)는 서버 및 워크 스테이션을 추가로 포함할 수 있으며, 이는 대규모 네트워크에 포함될 수 있다. 이러한 장치는 운영 체제를 사용하지 않거나 임의의 종류를 사용할 수 있다.
인코더 및 인코딩 방법
도 8은 인코더(100)의, 예컨대 화상 인코더(100)의 실시예의 개략적인/개념적인 블록도를 도시하며, 입력(102), 잔차 계산 유닛(104), 변환 유닛(106), 양자화 유닛(108), 역 양자화 유닛(110), 역변환 유닛(112), 재구성 유닛(114), 버퍼(116), 루프 필터(120), 디코딩된 화상 버퍼 (DPB)(130), 예측 유닛(160)(인터 추정 유닛(142), 인터 예측 유닛(144), 인트라-추정 유닛(152), 인트라-예측 유닛(154) 및 모드 선택 유닛(162)을 포함함), 엔트로피 인코딩 유닛(170), 및 출력(172)을 포함한다. 도 8에 도시된 바와 같은 비디오 인코더(100)는 하이브리드 비디오 코덱에 따른 하이브리드 비디오 인코더 또는 비디오 인코더로 지칭될 수도 있다. 각각의 유닛은, 비일시적 메모리에 저장된 코드를 프로세서에 의해 실행하여 그 처리 단계를 수행하도록, 프로세서 및 비일시적 메모리로 구성될 수 있다.
예를 들어, 잔차 계산 유닛(104), 변환 유닛(106), 양자화 유닛(108), 및 엔트로피 인코딩 유닛(170)은 인코더(100)의 순방향 신호 경로를 형성하는 반면, 예를 들어, 역 양자화 유닛(110), 역변환 유닛(112), 재구성 유닛(114), 버퍼(116), 루프 필터(120), 디코딩된 화상 버퍼 (DPB)(130), 인터 예측 유닛(144), 및 인트라-예측 유닛(154)은 인코더의 역방향 신호 경로를 형성하며, 여기서 인코더의 역방향 신호 경로는 동일한 재구성 및 예측을 위한 역 프로세싱(inverse processing)를 제공하기 위한 디코더의 신호 경로에 대응한다 (도 9의 디코더(200) 참조).
인코더는, 화상(101) 또는 화상(101)의 화상 블록(103)을, 예컨대 비디오 또는 비디오 시퀀스를 형성하는 화상의 시퀀스의 화상을, 예컨대 입력(102)에 의해, 수신하도록 구성된다. 화상 블록(103)은 또한 현재 화상 블록 또는 코딩될 화상 블록으로 지칭될 수 있고, 화상(101)은 현재 화상 또는 코딩될 화상으로 지칭될 수 있다 (특히 비디오 코딩에서, 현재 화상을 다른 화상, 예컨대 동일한 비디오 시퀀스의, 즉, 현재 화상을 또한 포함하는 비디오 시퀀스의 이전에 인코딩된 및/또는 디코딩된 화상과 구별하기 위해).
인코더(100)의 실시예는, 화상(103)을 복수의 블록으로, 예컨대 블록(103)과 같은 블록으로, 통상적으로 복수의 비중첩 블록으로, 파티션하도록 구성되는, 예컨대 화상 파티셔닝 유닛으로도 지칭될 수 있는, 파티셔닝 유닛(도 8에 도시되지 않음)을 포함할 수 있다. 파티셔닝 유닛은, 비디오 시퀀스의 모든 화상과 블록 크기를 규정하는 대응하는 그리드에 대해 동일한 블록 크기를 사용하도록 구성되거나, 화상들 사이에서 또는 화상의 서브세트(subsets) 또는 그룹들 사이에서 블록 크기를 변경하고 각각의 화상을 대응하는 블록으로 파티션하도록 구성될 수 있다.
복수의 블록의 각각의 블록은 정사각형 치수 또는 보다 일반적인 직사각형 치수를 가질 수 있다. 직사각형 형상이 아닌 화상 영역인 블록은 나타나지 않을 수 있다.
화상(101)과 같이, 마찬가지로, 블록(103)은 화상(101)보다 작은 치수이지만, 세기 값(샘플 값)을 가지는 샘플의 2차원 어레이 또는 매트릭스이거나 간주될 수 있다. 달리 말하면, 블록(103)은, 예컨대, 하나의 샘플 어레이(예컨대 단색 화상(101)의 경우 하나의 루마(luma) 어레이) 또는 3개의 샘플 어레이(예컨대 컬러 화상(101)의 경우 하나의 루마 및 2개의 크로마(chroma) 어레이) 또는 적용된 컬러 포맷에 따라 임의의 다른 수 및/또는 종류의 어레이를 포함할 수 있다. 블록(103)의 수평 및 수직 방향(또는 축)의 샘플 수는 블록(103)의 크기를 규정한다.
도 8에 도시된 바와 같은 인코더(100)는 화상(101)를 블록 단위로 인코딩하도록 구성되고, 예컨대, 인코딩 및 예측은 블록(103)마다 수행된다.
잔차 계산 유닛(104)은 예측 블록(165)과 화상 블록(103)에 기초하여 잔차 블록(105)을 계산하도록 구성되며(예측 블록(165)에 관한 더욱 구체적인 사항은 나중에 제공됨), 예컨대 샘플 단위로 (픽셀 단위로), 화상 블록(103)의 샘플 값으로부터 예측 블록(165)의 샘플 값을 차감함으로써, 샘플 도메인에서 잔차 블록(105)을 획득한다.
변환 유닛(106)은, 잔차 블록(105)의 샘플 값에 변환을 적용하여, 예컨대 공간 주파수 변환 또는 선형적 공간 변환을 적용하여, 예컨대 이산 코사인 변환(discrete cosine transform; DCT) 또는 이산 사인 변환(discrete sine transform; DST)을 적용하여, 변환 도메인에서 변환된 계수(107)를 획득하도록 구성된다. 변환된 계수(107)는 또한 변환된 잔차 계수로 지칭될 수 있고 변환 도메인에서 잔차 블록(105)을 나타낸다.
변환 유닛(106)은 변환 유닛(106)은 HEVC/H.265에 대해 지정된 코어 변환(core transform)과 같은 DCT/DST의 정수 근사(integer approximation)를 적용하도록 구성될 수 있다. 정규 직교 DCT 변환과 비교하여, 이러한 정수 근사는 통상적으로 특정 팩터(factor)에 의해 스케일링된다. 순방향 및 역변환에 의해 프로세싱되는 잔차 블록의 놈(norm)을 유지하기 위해, 추가적인 스케일링 팩터(scaling factor)가 변환 프로세스의 일부로서 적용된다. 스케일링 팩터는 통상적으로 시프트 연산을 위한 2의 거듭 제곱, 변환된 계수의 비트 깊이(bit depth), 정확도와 구현 비용 사이의 절충 등과 같은 특정 제약을 기반으로 선택된다. 특정 스케일링 팩터는, 예컨대 디코더(200)에서 역변환 유닛(212)에 의해, 예컨대, 역변환에 대해, (그리고 예컨대 인코더(100)에서 역변환 유닛(112)에 의해, 대응하는 역변환에 대해) 지정되고, 순방향 변환에 대한 대응하는 스케일링 팩터는, 예컨대 인코더(100)에서 변환 유닛(106)에 의해, 따라서 지정될 수 있다.
양자화 유닛(108)은, 예컨대 스칼라 양자화 또는 벡터 양자화를 적용함으로써, 변환된 계수(107)를 양자화하여 양자화된 계수(109)를 획득하도록 구성된다. 양자화된 계수(109)는 또한 양자화된 잔차 계수(109)로 지칭될 수도 있다. 예를 들어 스칼라 양자화의 경우, 더 세밀하거나 더 개략적인(coarser) 양자화를 달성하기 위해 상이한 스케일링이 적용될 수 있다. 더 작은 양자화 단계 크기는 더 세밀한 양자화에 대응하는 반면, 더 큰 양자화 단계 크기는 더 개략적인 양자화에 대응한다. 적용 가능한 양자화 단계 크기는 양자화 파라미터(quantization parameter; QP)에 의해 표시될 수 있다. 양자화 파라미터는 일례로 적용 가능한 양자화 단계 크기의 미리 정의된 세트에 대한 인덱스일 수 있다. 예를 들어, 작은 양자화 파라미터는 세밀한 양자화(작은 양자화 단계 크기)에 대응할 수 있고 큰 양자화 파라미터는 개략적인 양자화(큰 양자화 단계 크기)에 대응하거나, 그 반대일 수 있다. 양자화는 양자화 단계 크기에 의한 나눗셈을 포함할 수 있고, 예컨대 역 양자화(110)에 의한, 대응하는 또는 역의 역양자화(dequantization)는 양자화 단계 크기에 의한 곱셈을 포함할 수 있다. HEVC(고효율 비디오 코딩; High-Efficiency Video Coding)에 따른 실시예는 양자화 단계 크기를 결정하기 위해 양자화 파라미터를 사용하도록 구성될 수 있다. 일반적으로, 양자화 단계 크기는 나눗셈을 포함하는 수학식의 고정 소수점 근사(fixed point approximation)를 사용하여 양자화 파라미터에 기초하여 계산될 수 있다. 잔차 블록의 놈(norm)을 복원하는 양자화 및 역양자화(dequantization)에 추가적인 스케일링 팩터가 도입될 수 있는데, 이는 양자화 단계 크기 및 양자화 파라미터에 대한 수학식의 고정 소수점 근사에서 사용된 스케일링으로 인해 수정될 수 있다. 하나의 예시적인 구현예에서, 역변환 및 역양자화(dequantization)의 스케일링이 조합될 수 있다. 대안적으로, 맞춤형 양자화 테이블이 사용될 수 있고, 인코더로부터 디코더로, 예컨대 비트스트림으로, 시그널링될 수 있다. 양자화는 손실 있는 연산이며, 여기서 손실은 양자화 단계 크기가 증가함에 따라 증가한다.
인코더(100)의 (또는 양자화 유닛(108)의 각각의) 실시예는, 양자화 방식과 양자화 단계 크기를 포함하는 양자화 세팅을, 예컨대 대응하는 양자화 파라미터에 의해 출력하도록 구성될 수 있으며, 이에 의해 디코더(200)는 대응하는 역 양자화를 수신하고 적용할 수 있다. 인코더(100)(또는 양자화 유닛(108))의 실시예는, 예컨대 직접 또는 엔트로피 인코딩 유닛(170) 또는 임의의 다른 엔트로피 코딩 유닛을 통해 엔트로피 인코딩하여, 양자화 방식과 양자화 단계 크기를 출력하도록 구성될 수 있다.
역 양자화 유닛(110)은, 예컨대 양자화 유닛(108)에 의해 적용되는 양자화 방식의 역을 양자화 유닛(108)과 동일한 양자화 단계 크기에 기초하거나 이를 사용하여 적용함으로써, 양자화 유닛(108)의 역 양자화를 양자화된 계수에 적용하여 역양자화된 계수(111)를 획득하도록 구성된다. 역양자화된 계수(111)는 또한 역양자화된 잔차 계수(111)로로 지칭될 수 있으며, (비록 양자화에 의한 손실로 인해 변환된 계수와는 통상적으로 동일하지 않으나) 변환된 계수(108)에 대응한다.
역변환 유닛(112)은, 변환 유닛(106)에 의해 적용되는 변환의 역변환, 예컨대 역 이산 코사인 변환(DCT) 또는 역 이산 사인 변환(DST)을 적용하여, 샘플 도메인에서 역변환된 블록(113)을 획득하도록 구성된다. 역변환된 블록(113)은 또한 역변환된 역양자화 블록(113) 또는 역변환된 잔차 블록(113)으로도 지칭될 수 있다.
재구성 유닛(114)은, 예컨대 디코딩된 잔차 블록(113)의 샘플 값과 예측 블록(165)의 샘플 값을 샘플 단위로 가산함으로써, 역변환된 블록(113)과 예측 블록(165)을 조합하여 샘플 도메인에서 재구성된 블록(115)을 획득하도록 구성된다.
버퍼 유닛(116)(또는 줄여서 "버퍼"(116))는, 예컨대 라인 버퍼(116)는 일례로 인트라 추정 및/또는 인트라 예측을 위해 재구성된 블록 및 각각의 샘플 값을 버퍼링하거나 저장하도록 구성된다. 추가적인 실시예들에서, 인코더는 임의의 종류의 추정 및/또는 예측을 위해 버퍼 유닛(116)에 저장된 각각의 샘플 값 및/또는 필터링되지 않은 재구성된 블록을 사용하도록 구성될 수 있다.
인코더(100)의 실시예는, 예컨대 버퍼 유닛(116)이 인트라 추정(152) 및/또는 인트라 예측(154)을 위해서뿐만 아니라 루프 필터 유닛(120)을 위해 재구성된 블록(115)을 저장하기 위해 사용되며 및/또는 예컨대 버퍼 유닛(116) 및 디코딩된 화상 버퍼 유닛(130)이 하나의 버퍼를 형성하도록 구성된다. 추가적인 실시예는, 필터링된 블록(121) 및/또는 디코딩된 화상 버퍼(130)로부터의 블록 또는 샘플(도 8에 도시되지 않음)을 인트라 추정(152) 및/또는 인트라 예측(154)에 대한 입력 또는 기초로서 사용하도록 구성될 수 있다.
루프 필터 유닛(120)(또는 줄여서 "루프 필터"(120))는, 예컨대 디블로킹(de-blocking) 샘플-적응형 오프셋(sample-adaptive offset; SAO) 필터 또는 다른 필터를, 예컨대 선명화(sharpening) 또는 스무딩(smoothing) 필터 또는 협업 필터(collaborative filter)를 적용함으로써, 재구성된 블록(115)를 필터링하여 필터링된 블록(121)을 획득하도록 구성된다. 필터링된 블록(121)은 또한 필터링된 재구성된 블록(121)으로 지칭될 수도 있다.
루프 필터 유닛(120)의 실시예는 필터 분석 유닛 및 실제 필터 유닛을 포함할 수 있고, 필터 분석 유닛은 실제 필터에 대한 루프 필터 파라미터를 결정하도록 구성된다. 필터 분석 유닛은, 고정된 미리-정해진 필터 파라미터를 실제 루프 필터에 적용하거나, 필터 파라미터를 미리 정해진 필터 파라미터 세트로부터 적응적으로 선택(adaptively select)하거나, 또는 실제 루프 필터에 대한 필터 파라미터를 적응적으로 계산(adaptively calculate)하도록 구성될 수 있다.
루프 필터 유닛(120)의 실시예는, 예컨대 직렬로 또는 병렬로 또는 이들의 임의의 조합으로 연결된, 예컨대 하나 이상의 상이한 종류 또는 유형의 필터인, (루프 필터 성분 및/또는 서브필터과 같은) 하나 또는 복수의 필터를 포함할 수 있으며(도 8에 도시되지 않음), 여기서 각각의 필터는, 예컨대 이전 단락에서 기술된 바와 같이 각각의 루프 필터 파라미터를 결정하기 위해, 상기 복수의 필터들 중 다른 필터와 개별적으로 또는 공동으로, 필터 분석 유닛을 포함할 수 있다.
인코더(100)(루프 필터 유닛(120) 각각)의 실시예는, 예컨대, 디코더(200)가 디코딩을 위해 동일한 루프 필터 파라미터를 수신하고 적용할 수 있도록, 예컨대 직접 또는 엔트로피 인코딩 유닛(170) 또는 임의의 다른 엔트로피 코딩 유닛을 통해 엔트로피 인코딩하여, 루프 필터 파라미터를 출력하도록 구성될 수 있다.
디코딩된 화상 버퍼(DPB)(130)는 필터링된 블록(121)을 수신하고 저장하도록 구성된다. 디코딩된 화상 버퍼(130)은, 예컨대 이전에 재구성된 화상인, 동일한 현재 화상 또는 상이한 화상의, 예컨대 이전에 재구성된 및 필터링된 블록(121)인, 이전에 필터링된 다른 블록을, 저장하도록 추가적으로 구성될 수 있으며, 일례로 인터 추정 및/또는 인터 예측을 위해, 완전한 이전에 재구성된, 즉, 디코딩된, 화상 (및 대응하는 참조 블록 및 샘플) 및/또는 부분적으로 재구성된 현재 화상(및 대응하는 참조 블록 및 샘플)을 제공할 수 있다.
발명의 추가적인 실시예는 또한, 예컨대 인터 추정 및 예측뿐만 아니라 인트라 추정 및 예측과 같은 임의의 종류의 추정 또는 예측을 위해 디코딩된 화상 버퍼(130)의 이전에 필터링된 블록 및 대응하는 필터링된 샘플 값을 사용하도록 구성될 수 있다.
블록 예측 유닛(160)으로도 지칭되는 예측 유닛(160)은, 화상 블록(103) (현재 화상(101)의 현재 화상 블록(103)) 및 디코딩된 또는 적어도 재구성된 화상 데이터를, 예컨대 버퍼(116)로부터 동일한 (현재) 화상의 참조 샘플을, 및/또는 디코딩된 화상 버퍼(130)로부터 하나 또는 복수의 이전에 디코딩된 화상으로부터 디코딩된 화상 데이터(231)를, 수신하거나 획득하도록, 그리고 예측을 위해, 즉, 인터-예측된 블록(145) 또는 인트라-예측된 블록(155)일 수 있는 예측 블록(165)을 제공하기 위해, 이러한 데이터를 프로세싱하도록 구성된다.
모드 선택 유닛(162)은, 잔차 블록(105)의 계산 및 재구성된 블록(115)의 재구성을 위한 예측 블록(165)될 예측 모드(예컨대 인트라 또는 인터 예측 모드) 및/또는 대응하는 예측 블록(145 또는 155)를 선택하도록 구성될 수 있다.
모드 선택 유닛(162)의 실시예는, 최상의 매칭 또는 다른 말로 최소 잔차(최소 잔차는 전송 또는 저장을 위해 더 나은 압축을 의미함), 또는 최소 시그널링 오버헤드(최소 시그널링 오버헤드는 전송 또는 저장을 위해 더 나은 압축)를 제공하는, 또는 양자를 고려하거나 균형을 이루는, 예측 모드를 (예컨대 예측 유닛(160)에 의해 지원되는 것들로부터) 선택하도록 구성될 수 있다. 모드 선택 유닛(162)은, 레이트 왜곡 최적화(rate distortion optimization; RDO)에 기초하여 예측 모드를 결정하도록, 즉, 최소 레이트 왜곡 최적화를 제공하거나 또는 연관된 레이트 왜곡이 적어도 예측 모드 선택 기준을 충족시키는 예측 모드를 선택하도록 구성될 수 있다.
이하에서는, 예시적인 인코더(100)에 의해 수행되는 예측 프로세싱 (예컨대 예측 유닛(160)) 및 (예컨대 모드 선택 유닛(162)에 의한) 모드 선택이 보다 상세히 설명될 것이다.
위에서 설명한 바와 같이, 인코더(100)는 한 세트의 (미리 정해진) 예측 모드로부터 최상의 또는 최적의 예측 모드를 결정하거나 선택하도록 구성된다. 예측 모드 세트는 예컨대 인트라-예측 모드 및/또는 인터-예측 모드를 포함할 수 있다.
인트라-예측 모드 세트는, 32개의 상이한 인트라-예측 모드, 예컨대 DC (또는 평균) 모드 및 평면 모드와 같은 비-방향성 모드, 또는 예컨대 H.264에 규정된 바와 같은 방향성 모드를 포함할 수 있거나, 65개의 상이한 인트라-예측 모드, 예컨대 DC (또는 평균) 모드 및 평면 모드와 같은 비-방향성 모드, 또는 예컨대 H.265에 규정된 바와 같은 방향성 모드를 포함할 수 있다.
(가능한) 인터-예측 모드의 세트는, 이용 가능한 참조 화상 (즉, 예컨대 DPB(230)에 저장된, 이전의 적어도 부분적으로 디코딩된 화상) 및 다른 인터-예측 파라미터, 예컨대 참조 화상의 전체 참조 화상 또는 일부(예컨대 현재 블록의 영역 주위의 검색 윈도우 영역)만 최상 매칭 참조 블록의 검색에 사용되는지 여부, 및/또는 예컨대 픽셀 보간, 예컨대 1/2 보간(half/semi-pel interpolation) 및/또는 1/4 보간(quarter-pel interpolation)이 적용되는지 여부에 따라 달라진다.
상기 예측 모드에 추가적으로, 스킵 모드 및/또는 다이렉트 모드가 적용될 수 있다.
예측 유닛(160)은, 예컨대 쿼드-트리-파티셔닝(quad-tree-partitioning; QT), 2진 파티셔닝(binary partitioning; BT) 또는 트리플-트리 파티셔닝(triple-tree partitioning; TT) 또는 이들의 임의의 조합을 되풀이 사용하여, 파티션 블록(103)을 더 작은 블록 파티션 또는 서브-블록으로 파티셔닝하도록, 그리고 예컨대 블록 파티션 또는 서브-블록의 각각에 대한 예측을 수행하도록 추가적으로 구성될 수 있으며, 여기서 모드 선택은 트리-구조의 파티셔닝된 블록(103) 및 블록 파티션 또는 서브-블록의 각각에 적용되는 예측 모드의 선택을 포함한다.
인터 화상 추정 유닛(142)으로도 지칭되는 인터 추정 유닛(142)은, 화상 블록(103) (현재 화상(101)의 현재 화상 블록(103)) 및 디코딩된 화상(231)을, 또는 적어도 하나의 또는 복수의 이전에 재구성된 블록을, 예컨대 하나 또는 복수의 다른/상이한 이전에 디코딩된 화상(231)의 재구성된 블록을, 인터 추정(또는 "인터 화상 추정")을 위해 수신하거나 획득하도록 구성된다. 예컨대, 비디오 시퀀스는 현재 화상 및 이전에 디코딩된 화상(231)을 포함할 수 있거나, 달리 말하면, 현재 화상 및 이전에 디코딩된 화상(231)은 비디오 시퀀스를 형성하는 화상의 시퀀스의 일부이거나 이를 형성할 수 있다.
인코더(100)는, 예컨대, 상기 복수의 다른 화상의 동일한 또는 상이한 화상의 복수의 참조 블록으로부터 참조 블록을 선택(획득/결정)하도록, 그리고 참조 화상 (또는 참조 화상 인덱스, …) 및/또는 참조 블록의 위치(x, y 좌표)와 현재 블록의 위치 사이의 오프셋(공간적 오프셋)을 인터 추정 파라미터(143)으로서 인터 예측 유닛(144)에 제공하도록 구성될 수 있다. 이 오프셋은 모션 벡터(motion vector; MV)로도 지칭된다. 인터 추정은 모션 추정(motion estimation; ME)으로도 지칭되고, 인터 예측은 모션 예측(motion prediction; MP)으로도 지칭된다.
인터 예측 유닛(144)은 인터 예측 파라미터(143)를 획득하도록 예컨대 수신하도록, 그리고 인터 예측 파라미터(143)에 기초하거나 사용하여 인터 예측을 수행하여 인터 예측 블록(145)을 획득하도록 구성된다.
비록 도 8은 인터-코딩을 위한 2개의 별개의 유닛(또는 단계), 즉 인터 추정(142) 및 인터 예측(152)을 도시하지만, 예컨대, 현재 최상의 인터 예측 모드 및 각각의 인터 예측 블록을 저장하면서, 그리고 인터 예측(144)을 다시 수행하지 않고 현재 최상의 인터 예측 모드 및 각각의 인터 예측 블록을 (최종) 인터 예측 파라미터(143) 및 인터 예측 블록(145)으로 사용하면서, 가능한 인터 예측 모드의 모든 가능한 또는 미리 정해진 서브세트들을 되풀이 테스트 함으로써, 두 기능은 하나로서 수행될 수 있다(인터 추정은 인터 예측 블록의 계산, 즉, 상기 또는 "일종의" 인터 예측(154)을 통상적으로 요구하거나 포함한다).
인트라 추정 유닛(152)은 인트라 추정을 위해 화상 블록(103)(현재 화상 블록) 및 동일한 화상의 하나 또는 복수의 이전에 재구성된 블록을, 예컨대 재구성된 이웃 블록을 획득하도록 예컨대 수신하도록하도록 구성된다. 인코더(100)는, 예컨대, 복수의 인트라 예측 모드로부터 인트라 예측 모드를 선택(획득/결정)하고 이를 인트라 추정 파라미터(153)로서 인트라 예측 유닛(154)에 제공하도록 구성될 수 있다.
인코더(100)의 실시예는, 최적화 기준, 예컨대 최소 잔차(예컨대 현재 화상 블록(103)에 가장 유사한 예측 블록(155)을 제공하는 인트라-예측 모드) 또는 최소 레이트 왜곡에 기초하여 인트라-예측 모드를 선택하도록 구성될 수 있다.
인트라 예측 유닛(154)은, 인트라 예측 파라미터(153), 예컨대 선택된 인트라 예측 모드(153)에 기초하여, 인트라 예측 블록(155)을 결정하도록 구성된다.
비록 도 8은 인트라-코딩을 위한 2개의 별개의 유닛(또는 단계), 즉 인트라 추정(152) 및 인트라 예측(154)을 도시하지만, 예컨대, 현재 최상의 인트라 예측 모드 및 각각의 인트라 예측 블록을 저장하면서, 그리고 인트라 예측(154)을 다시 수행하지 않고 현재 최상의 인트라 예측 모드 및 각각의 인트라 예측 블록을 (최종) 인트라 예측 파라미터(153) 및 인트라 예측 블록(155)으로 사용하면서, 가능한 인트라-예측 모드의 모든 가능한 또는 미리 정해진 서브세트들을 되풀이 테스트함으로써, 두 기능은 하나로서 수행될 수 있다(인트라 추정은 인트라 예측 블록의 계산, 즉, 상기 또는 "일종의" 인트라 예측(154)을 통상적으로 요구하거나 포함한다).
엔트로피 인코딩 유닛(170)은, 엔트로피 인코딩 알고리즘 또는 방식(예컨대 가변 길이 코딩(variable length coding; VLC) 방식, 컨텍스트 적응형 VLC 방식(context adaptive VLC scheme; CALVC), 산술 코딩 방식(arithmetic coding scheme), 컨텍스트 적응형 2진 산술 코딩(context adaptive binary arithmetic coding; CABAC))을 양자화된 잔차 계수(109), 인터 예측 파라미터(143), 인트라 예측 파라미터(153), 및/또는 루프 필터 파라미터에 개별적으로 또는 공동으로 적용하여 (또는 전혀 적용하지 않고), 예컨대 인코딩된 비트스트림(171)의 형태로 출력(172)에 의해 출력될 수 있는 인코딩된 화상 데이터(171)를 획득하도록 구성된다.
디코더 및 디코딩 방법
도 9는, 예컨대 인코더(100)에 의해 인코딩된, 인코딩된 화상 데이터(예컨대 인코딩된 비트스트림)(171)를 수신하여, 디코딩된 화상(231)을 획득하도록 구성되는 예시적인 비디오 디코더(200)를 도시한다.
디코더(200)는, 입력(202), 엔트로피 디코딩 유닛(204), 역 양자화 유닛(210), 역변환 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 화상 버퍼(230), 예측 유닛(260)(인터 예측 유닛(244), 인트라 예측 유닛(254), 및 모드 선택 유닛(260)을 포함함), 및 출력(232)을 포함한다.
엔트로피 디코딩 유닛(204)은, 인코딩된 화상 데이터(171)에 엔트로피 디코딩을 수행하여, 예컨대, 양자화된 계수(209) 및/또는 디코딩된 코딩 파라미터(도 9에 도시되지 않음)를, 예컨대 인터 예측 파라미터(143), 인트라 예측 파라미터(153), 및/또는 루프 필터 파라미터 중 (디코딩된) 임의의 것 또는 전부를 획득하도록 구성된다.
디코더(200)의 실시예에서, 역 양자화 유닛(210), 역변환 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 화상 버퍼(230), 예측 유닛(260) 및 모드 선택 유닛(260)은 인코딩된 화상 데이터(171)를 디코딩하기 위해 인코더(100)(및 각각의 기능적 유닛)의 역처리를 수행하도록 구성된다.
특히, 역 양자화 유닛(210)은 역 양자화 유닛(110)에 기능적으로 동일할 수 있고, 역변환 유닛(212)은 역변환 유닛(112)에 기능적으로 동일할 수 있고, 재구성 유닛(214)은 재구성 유닛(114)에 기능적으로 동일할 수 있고, 버퍼(216)은 버퍼(116)에 기능적으로 동일할 수 있고, 루프 필터(220)는 루프 필터(220)에 (실제 루프 필터에 관해, 루프 필터(220)는 원래의 이미지(101) 또는 블록(103)에 기초하여 필터 파라미터를 결정하기 위한 필터 분석 유닛을 통상적으로 포함하지 않고, 인코딩에 사용되는 필터 파라미터를, 예컨대 엔트로피 디코딩 유닛(204)으로부터 (명시적으로 또는 함축적으로) 수신하거나 획득하므로) 기능적으로 동일할 수 있고, 디코딩된 화상 버퍼(230)은 디코딩된 화상 버퍼(130)에 기능적으로 동일할 수 있다.
예측 유닛(260)은 인터 예측 유닛(244) 및 인트라 예측 유닛(254)을 포함할 수 있으며, 여기서 인터 예측 유닛(244)은 인터 예측 유닛(144)에 기능적으로 동일할 수 있고, 인트라 예측 유닛(254)은 인트라 예측 유닛(154)에 기능적으로 동일할 수 있다. 예측 유닛(260) 및 모드 선택 유닛(262)은 통상적으로, 블록 예측을 수행 및/또는 인코딩된 데이터(171)만으로부터 (원래의 이미지(101)에 관한 임의의 추가적인 정보 없이) 예측된 블록(265)을 획득하고, 예측 파라미터(143 또는 153) 및/또는 선택된 예측 모드에 관한 정보를, 예컨대 엔트로피 디코딩 유닛(204)으로부터, (명시적으로 또는 함축적으로) 수신 또는 획득하도록 구성된다.
디코더(200)는, 사용자에게 표현 또는 보여주기 위해, 디코딩된 화상(231)을 예컨대 출력(232)을 통해 출력하도록 구성된다.
다시 도 7을 참조로, 디코더(200)로부터 출력된 디코딩된 화상(231)은 후처리기(326)에서 후처리 될 수 있다. 결과적인 후처리된 화상(327)은 내부 또는 외부 디스플레이 디바이스(328)로 전송되어 디스플레이될 수 있다.
실시예의 더욱 구체적인 사항
이하에서는, 도 10 내지 도 16의 도면을 참조하여 본 발명의 예시적인 실시예의 더욱 구체적인 사항이 설명될 것이다.
본 개시에 의해 제안된 부호 비트 숨기기(SBH) 및 잔차 부호 예측(RSP) 기법의 특정 조화는, RSP 절차를, RSP 리스트(특정 실시예에서 적어도 하나의 리스트: 둘 이상의 리스트)를 준비하는 것 및 RSP 기법에 관련된 다른 동작을 수행하는 것, 특히, 부호 추정을 수행하고 추정된 부호와 원래의 부호 사이의 차이를 획득하고 인코딩하는 것의 2개의 서브 절차로 분리하는 것을 포함한다. 이 2개의 서브 절차 사이에 SBH가 수행된다. 특히, SBH가 적용될 계수는 더 이상 정적으로 (예를 들어, 미리 정해진 스캐닝 순서에서 첫 번째 0이 아닌 변환 계수와 같이) 선택되지 않지만, RSP 기법에 의해 아직 예측되지 않은, 즉, RSP 리스트 또는 리스트들에 있지 않은 것으로 계수가 선택되도록 선택이 행해진다.
이것은 RSP 리스트로부터 양자화된 변환 계수의 허용되는 변경에 제약을 가함으로써 SBH 절차의 추가적인 인코더-측 수정을 필요로 한다.
본 발명은, 인코더 및 디코더 측에서 부호 예측과 숨기기 프로세스를 조화시키는, 규범적(normative)(즉, 적어도 디코더에, 특히 디코더 및 인코더 모두에 적용 가능한) 및 비 규범적(non-normative)(즉, 인코더에만 적용 가능한) 개선 모두를 제안한다. 본 경우에, 규범적인 개선은 인코딩 및 디코딩 프로세스 모두에 도입된다. 실시예들에서, 디코더 측이 인코더 측으로부터 수신된 신호를 적절하게 파싱(parse)하고 디코딩할 수 있게 하기 위해 인코더 측에서 추가적인 비 규범적 수정이 필요하다. 물론, 본 발명에 따른 디코더는 본 발명에 따른 인코더에 의해 인코딩된 임의의 신호를 디코딩할 수 있어야 한다.
인코더 및 디코더 측 모두에서 SBH 및 RSP를 조화시키고 적용하는 수정된 절차의 처리 흐름이 도 10에 도시되어 있다.
인코더 측에서, 제1 단계(S10)는 하나 이상의 RSP-리스트, 즉, 부호가 추정될 (예측될) 계수의 리스트를 준비하는 것이다. 본 예에서, 이는 RSP 리스트의 서브-리스트의 예로서 HP- 및 LP-리스트를 포함한다. 이하의 설명에서는, 이들은 간략함을 위해 "RSP 리스트"라고도 한다. LP- 및 HP- 리스트는 RSP 기법의 일반적인 설명과 관련하여 위에서 기술되었다. 이들 리스트는, 리스트의 전체 크기(M)을 정의하고, 크기에 의해 정렬된 처음 M 개의 계수의 파싱된 크기 값을 임계화(thresholding)하여, 이들을 (예컨대 래스터 순서로) 스캐닝함으로써 구성된다.
다음 단계(S12)는, 숨겨질(임베딩될) 부호의 계수의 위치가 더 이상 스캔 순서에서 첫 번째 0이 아닌 계수의 위치로 규정되지 않는다는 점에서 종래의 접근법과 상이하다. 계수가 RSP 리스트에 속하는 경우, 이는 이미 강화된 압축(RSP 기법)으로 인코딩 및 시그널링 절차를 진행하므로, 그 부호는 숨기도록 선택되지 않아야 한다. 그렇지 않으면 동일한 데이터가 서로 다른 2가지 기법을 동시에 사용하여 즉, 중복된 방식으로 인코딩된다. 본 발명의 일 실시예에 따르면, 부호가 SBH 메커니즘으로 임베딩되고 복원될 계수의 위치를 리스트에 없는 가장 저주파의 (유의미한) 위치로 선택하는 것이 제안된다. 달리 말하면, RSP 리스트에 속하는 계수에 대응하는 위치는 이 선택 프로세스에서 제외된다.
종래의 경우에서와 같이, 인코더 측에서, SBH 기법은 주어진 세트의 계수(CC 또는 CG)에 대해 숨겨져 있는 부호의 값이 이 세트에 적용되는 검사 함수(미리 정해진 함수)의 값과 일치함을 보장해야 한다. 양자화된 잔차 신호의 이러한 특성은, 양자화 프로세스 동안, 통상적으로 양자화된 변환 계수의 크기를 수정함으로써 달성된다.
특히, 계수가 RSP-리스트(HP- 및 LP-리스트)에 속하는 경우, 그 크기의 수정은 HP 및 LP 사이의 임계값이 교차되지 않는 경우에만 허용영된다. 그렇지 않으면, 2개의 서브-리스트에 대해 추정된 및 진정한 부호 사이의 부호 차이를 코딩하는데 상이한 컨텍스트가 적용되기 때문에, 디코더는, 추정된 및 올바른 부호 사이의 인코딩된 수신된 차이 값을 올바르게 디코딩할 수 없을 것이다. 이 제약은 단계(S14)에서 선택된 부호의 숨기기 프로세스를 수행할 때 고려된다.
다음 단계(S16)에서, 실제 RSP 절차(부호 추정 및 차이의 인코딩)가 수행된다. 이는 도입부에서 기술된 임의의 공지된 방법에 의해, 또는 대안적으로도 14를 참조하여 아래에 기술되는 바과 같은 다른 적절한 방법에 의해 수행될 수 있다.
디코더 측에서 처음 두 단계는 인코딩 프로세스와 일치한다. 우선, 단계(S20)에서, RSP-리스트(들)가 준비된다. 특히, 이는 위에서 설명한 바와 같이, 미리 설정된 크기(M)를 기초로 하여 크기에 따라 계수를 내림차순으로 정렬할 수 있다. 인코더 및 디코더 측 모두에서, 다른 적절한 메커니즘도 가능하다.
후속 단계(S22)에서, SBH 메커니즘에 따라, 미리 정해진 함수의 값에 기초하여 그 부호를 복원하기 위해 유의미한 양자화된 변환 계수가 선택된다. 계수는 인코더 측에서와 같이 RSP 리스트(들)(HP 또는 LP 리스트)에 포함되지 않도록 선택된다. 특히, 계수는, 리스트에 없는 가장 저주파의 것과 같이, 인코더 측에서와 동일한 규칙에 기초하여 선택된다.
부호 디코딩 프로세스의 마지막 단계로서, SBH가 적용되는 계수의 부호를 결정하는 단계(S24), 추정된 및 원래의 부호 사이의 차이 값을 디코딩하는 것을 포함하여 RSP-절차를 수행, 부호 추정 절차를 수행하고 추정된 부호를 디코딩된 차이 값에 기초하여 정정하는 단계(S26)가 종래의 방식으로 수행된다.
도 11은 단계 S10 및 S12 및 단계 S20 및 S22에서 각각의 수행되는 바와 같이 부호 숨기기 및 부호 예측 사이의 조화의 예시적인 경우를 도시한다.
도면의 좌측 상단 부분은 한 세트의 양자화된 변환 계수의 세트를 도시하는데, 이 경우에는 4 × 4 계수 그룹을 도시한다. 계수 그룹은 역양자화되고, 복원된 (즉, 역양자화된) 계수에 임계값 T = 300으로 임계화가 적용된다. 주어진 예에서, RSP 리스트에서 계수의 전체 수는 M = 5로 규정된다. 따라서, 임계값 300보다 큰 크기의, 768, 512, 및 -512의 계수 값에 해당하는 계수 위치가 HP-서브리스트에 속한다. 결과적으로, LP-서브리스트를 채우는데 5 - 3 = 2개의 계수가 남아 있다. 보다 구체적으로, 각각이 256의 크기를 가지는 나머지 3개의 유의미한 계수 중, 2개만이 LP-서브리스트에 포함된다. 따라서 RSP 리스트에 포함되지 않은 256 크기의 나머지 계수 (이 예에서는 계수 그룹의 유일한 나머지 유의미한 계수)가 SBH에 의해 숨겨지도록 선택된다. 원칙적으로 임계화가 양자화된 계수로 수행될 수도 있지만, 복원된 계수의 영역에서 이를 수행하는 것은 블록 크기 및 양자화 파라미터와 무관한 장점을 가진다.
패리티 검사는 이 예에서 계수 수정이 필요하지 않음을 보여준다. 즉, 양자화된 변환 계수의 절대값의 합은 3+1+2+1+1+2 = 10, 즉, 짝수이다. 이는 숨기려고 선택된 계수의 부호(+)에 해당한다.
도 12는 (필요한 경우, 숨겨질 올바른 부호에 대응하기 위해 미리 정해진 함수의 원하는 값을 획득하기 위해) 최상의 계수 수정을 결정하는 종래의 예를 기술한다. 간략화를 위해, 양자화 이후 변환 계수의 합의 패리티 값을 계산함으로써 하나의 계수가 숨겨지는 경우가 고려되며, 즉, 계수들 중 단일한 임의의 하나를 +1 또는 -1에 의해 수정함으로써 필요한 수정이 이루어질 수 있다.
통상의 경우와 같이, 원래의 및 예측된 블록들의 차이로서 획득된 잔차 신호(RES)는 (일반적으로, DCT 또는 DST와 같은 직교 변환을 사용하여) 변환된다. 결과적인 변환 계수는 미리 정의된 양자화 파라미터 값으로 추가로 양자화된다. 양자화 절차는 상이한 방식으로 수행될 수 있다. 그러나, 가장 일반적인 것은 레이트-왜곡 최적화 양자화(rate-distortion optimized quantization; RDOQ)이다. 이는, 양자화 오류뿐만 아니라, 결과적인 양자화된 신호를 인코딩하는데 요구되는 비트 수를 또한 최소화하기 위하여 CABAC 통계를 사용한다. 양자화 파라미터는 가장 RD-유익한 계수 수정을 결정하기 위해 RDOQ에 의해 사용된다. 여기에서 가정한 바와 같이, 검사 함수가 패리티 검사 함수인 경우, 원하는 검사 함수 값은, 검사 함수가 적용되는 계수 세트에 속하는 계수 중 하나의 크기를 증가시키거나 감소시킴으로써 항상 달성될 수 있다.
인코더 측에서의 SBH 기법은 양자화된 변환 계수 QR로 동작하고 RDOQ와 유사한 기법을 사용하여 가장 RD-유익한 계수 수정을 결정한다. 검사 함수가 패리티 검사 함수인 경우, 원하는 검사 함수 값은, 검사 함수가 적용되는 계수 세트에 속하는 계수 중 하나의 크기를 증가시키거나 감소시킴으로써 항상 달성될 수 있다.
도 12에 도시된 예시적인 구현예에서, 검사 함수가 적용되는 각각의 계수 위치에 대해, 비용 값이 계산된다: 증가 비용(COST-1) 및 감소 비용(COST+1) . 결과를 서로 비교하고, 비용 값이 가장 작은 정정 위치 및 방향(+ 또는 - 1)을 선택한다. 따라서, 기술된 예에서, 가장 낮은 수정 비용은 양자화된 변환 계수 크기의 수정(posbest)의 위치 및 방향을 결정한다.
전술한 바와 같이, 양자화된 변환 계수의 일부 수정은 금지되며, 예컨대 디코더 측에서 부호가 복원될 위치를 변경시키는 것을 초래하는 것들이 금지된다. 이러한 제약은 위에서 상세히 논의되었다.
제약 사항을 고려하면, 가장 작은 비용 값을 초래하는 수정(정정의 위치 및 방향)이 제약에 의해 금지되고 따라서 선택될 수 없는 상황이 있을 수 있다. 이를 고려하여 수정을 선택하기 위해 적용되는 간단한 규칙은, 두번째로 작은 비용 값(또는 보다 일반적으로, 제약에 의해 금지되지 않는 가장 작은 비용 값)을 가지는 수정을 선택하는 것이다.
그러나, 상기 접근법이 본 발명의 프레임워크에 적용될 수 있지만, 코딩 프로세스에서 부호 숨기기 및 부호 예측 기법이 존재하는 프레임워크에서 순수한 비용 기반 최적화는 차선책이된다는 것이 밝혀졌다. 실제로, 비용 함수는 일반적으로 정확하게 계산되지 않고 추정되기 때문에, 많은 계수가 수정 비용이 비슷하다.
따라서, 본 발명은 인코더 측에서 계수의 크기를 수정하는 대안적인 접근법을 적용하는 것을 제안한다. 이는 아래에서 도 13을 참조하여 설명될 것이다.
제1 단계(S130)에서, 개별 계수 수정에 대한 RD-비용 계산이 수행된다. 이는 도 12을 참조로 전술한 방식으로 구현될 수 있다.
도 13의 제2 단계(S132)는 최상의 (최소) 비용 값에 가까운 RD-비용 값을 제공하는 수정의 리스트(pos_listCMC)(수정은 계수의 위치 및 변경 방향에 의해 규정된다)를 준비하는 것으로 구성된다. 비용이 충분히 가까운지 여부를 규정하는 기준은 다음과 같이 정의해야 한다.
Figure 112020090829420-pct00007
,
여기서
Figure 112020090829420-pct00008
는 미리 정의된 값이다.
그런 다음, 생성된 리스트가 하나 이상의 엘리먼트를 갖는지 여부를 판단한다(S134). 단일의 (즉, 비용 값 COSTbest에 대응하는) 엘리먼트만 존재하는 경우, 대응하는 위치 및 변경 방향이 종래의 방식으로 선택되고(S136) 최적의 수정(posbest)으로 선택된다.
그러나, 리스트가 둘 이상의 엘리먼트를 포함하는 경우, 즉, 최상의 (최소) 비용 값에 가까운 비용 값을 가지는 복수의 가능한 수정(위치 및 변경 방향)이 존재하는 경우, 수정 추정 함수(modification estimation function; MEF)를 고려하여 다른 기준이 추가적으로 고려된다. 수정(posbest)은 수정 추정 함수의 더 작은 값을 제공하는 다른 위치 및 수정 방향으로 대체될 수 있다. 보다 구체적으로, 리스트의 각각의 멤버에 대해(S135), 수정 추정 함수가 계산되고(S137), 수정 추정 함수의 가장 작은 값을 가지는 것이 (새로운) 최적의 수정(posbest)으로서 선택된다.
일 실시예에 따르면, MEF는 계수 수정에 의해 도입되는 왜곡으로 정의된다. 레이트 변경(rate change)은 RSP 절차의 정확도에 영향을 미치지 않지만 왜곡은 영향을 미친다. 따라서 MEF에서는 레이트 변경 값을 사용하지 않아도 된다.
다른 실시예는 MEF를 계수의 양자화된 레벨로 정의한다. 부호가 예측되는 계수의 수를 최대화하기 위해, pos_listCMC 리스트에서 가장 큰 크기의 계수가 선택된다.
이하, 도 14를 참조로, 주파수 도메인(변환 도메인)에서 부호 추정 절차를 수행하기 위한 대안적인 접근법이 설명될 것이다. 도 3을 참조로 전술한 픽셀 도메인에서의 추정 절차의 종래의 방법 사이의 주요한 차이점들은 도 14를 도 3과 비교함으로써 명백해진다. 특히:
부호 추정은 변환 도메인에서 수행되고,
현재 블록을 재구성하고 인접 블록의 대응하는 픽셀로부터 경계 픽셀을 빼는 대신에, 예측 신호는 인접 블록 영역으로 전파된다.
간략화를 위해, 인접 블록의 하나의 열만이 도 14에서 고려되고 있다. 제안된 발명이 적용되는 프레임워크에 따라, 상단 열, 우측 열, 또는 하단 열도 사용될 수 있다.
비용 함수(1)은 모듈러스 대신 제곱을 사용하도록 재정의되었다.
Figure 112020090829420-pct00009
, (1a)
여기서 N 과 M 은 블록의 높이와 폭이다.
재구성된 블록은 예측 및 잔차 부분으로 구성된다.
Figure 112020090829420-pct00010
여기서
Figure 112020090829420-pct00011
는 예측이고,
Figure 112020090829420-pct00012
는 잔차이다.
이 경우, (1a)의 구성 요소를 재배치할 수 있다 (배경기술 섹션 참조).
Figure 112020090829420-pct00013
Figure 112020090829420-pct00014
,
Figure 112020090829420-pct00015
,
Figure 112020090829420-pct00016
Figure 112020090829420-pct00017
라고 표시하자. 파시발의 항등식(Parseval' identity)에 따르면, 이 함수는 변환 도메인에서 재작성될 수 있다(1D):
Figure 112020090829420-pct00018
여기서,
Figure 112020090829420-pct00019
,
Figure 112020090829420-pct00020
,
Figure 112020090829420-pct00021
,
Figure 112020090829420-pct00022
,
Figure 112020090829420-pct00023
는 1차원 직교 변환이다.
결과적으로, 비용 함수가 계산될 수 있고, 따라서 양자화된 변환 계수의 부호는 변환 도메인에서 추정될 수 있다.
도 14에서 알 수 있는 바와 같이, 도 3를 참조하여 전술한 종래의 접근법과 동일하게, (예측된 변환된 차이 신호와 계산된 역양자화된 잔차 변환 계수 qn 사이의 비교의 종류에 대응되는) 비용 함수의 각각의 계산이 부호 세트에 관한 2M 개의 가정의 각각에 대해 수행되고, 비용 함수를 최소화하는 가정이 부호 세트의 추정으로 취해진다(여기서, M 은 도면에서 부호가 예측될 변환 계수의 수임). 특히, 인접 블록에 대한 블록 A의 경계에서 열 qn 에 대응하는 블록 A의 역양자화된 잔차 계수는 변환된 차이 열 Bcol과 비교된다. 변환된 차이 열 Bcol (tn에 대응)은 픽셀 도메인에서 차이 신호를 획득하는 인접 블록 열로부터 전파된 예측 신호를 차감하고 차이 신호를 변환된 차이로 변환함으로써 얻어진다. 변환은 스펙트럼 도메인으로의, 예컨대 DFT, FFT, DCT 또는 DST 또는 그들의 정수 버전으로의 변환과 같은 임의의 직교 또는 근사 직교 변환(near orthogonal transformation)이다.
Figure 112020090829420-pct00024
,
Figure 112020090829420-pct00025
Figure 112020090829420-pct00026
사이의 관계를 결정하기 위해,
Figure 112020090829420-pct00027
Figure 112020090829420-pct00028
사이의 관계를 일반적인 형태로 작성해보자:
Figure 112020090829420-pct00029
여기서,
Figure 112020090829420-pct00030
는 변환 코어(transform core)로서, 예를 들어, DCT2의 경우
Figure 112020090829420-pct00031
이다.
Figure 112020090829420-pct00032
Figure 112020090829420-pct00033
Figure 112020090829420-pct00034
의 경우, 비슷한 관계가 있을 것이다.
이용 가능한 계수
Figure 112020090829420-pct00035
Figure 112020090829420-pct00036
의 모든 계수가 비용 함수 계산에 사용되는 것이 아니므로, 변환 도메인에서의 계산이 더 쉽다. 대신 이 방법은 특정 행과 특정 열에 속하는 몇 가지 계수만을 사용한다. 이 행과 열은, 부호가 예측되는 계수의 위치의 대응하는 지표이다. 비용 함수(2)를 최소화하는 부호 세트가 생성되어 추정 결과로 취해진다. 부호 예측 오류는 엔트로피 인코딩된다. 결과적인 비트는 종래의 부호 인코딩의 결과와 조합되고, 비트스트림에 임베딩된다.
인코더 측에서 본 발명의 예시적인 구현예가 도 15에 도시되어 있다. 도 15에 도시된 본 발명에 따른 예시적인 인코더는, 부호 예측 (즉, 부호 추정) 모듈(단계 또는 유닛)(122)을 추가적으로 포함함으로써, 도 8의 종래의 인코더와 상이하다. 양자화된 변환 계수들(109)에 기초하여, 모듈은 부호 예측 오류(123)를 엔트로피 인코딩 모듈(170)에 출력한다.
엔트로피 인코딩 모듈(170) 자체는 도 8의 엔트로피 인코딩 모듈(170)과 2가지 수정 면에서 상이하다.
먼저, 부호 추정의 결과는, 즉 부호 예측 오류는, (양자화된) 변환 계수의 변환 유닛 내에서 주어진 위치의 세트(리스트에 포함된 제1 복수의 계수)에 대한 부호 값 대신에 인코딩된다. 둘째, 부호 추정의 결과를 인코딩하기 위해 적용되는 새로운 코딩 컨텍스트가 도입된다.
또한, 도 15의 본 발명의 실시예와 도 8의 종래의 인코더 사이에는 양자화 모듈(108)에서 또한 차이가 있다. 즉, 전술한 바와 같이, 양자화 절차는, 필요한 경우 계수를 수정함으로써, 검사 함수(미리 정해진 함수)의 원하는 특성이 충족되어 계수의 부호를 감추는 것이 보장되어야 한다.
디코더 측에서 본 발명의 예시적인 구현예가 도 16에 도시되어 있다. 예시된 디코더는 또한 새로운 부호 예측 모듈(122)을 가진다. 부호 예측 모듈(122)은 인코더 측에서 사용되는 것과 동일하며, 부호 예측 모듈(122)은 인코더 측에서 사용되는 것과 동일하며, 변환 계수 세트 내의 제1 복수의 변환 계수의 리스트에 의해 규정된 위치에 위치한 양자화된 변환 계수의 부호 중 일부를 추정한다.
또한, 도 16의 본 발명의 실시예와 도 9의 종래의 예 사이에는, 엔트로피 디코딩 모듈(204)에서 차이가 있다. 본 발명에 따르면, 파싱 프로세스(엔트로피 디코딩) 동안 부호 예측 오류 신호(123)만이 복원된다. 파싱 의존성이 도입되지 않으며, 즉, 파싱 프로세스가 완료된 후, 특히 역 양자화 프로세스(210)와 병렬로, 실제의 부호 값 및 위치가 예측 오류 신호(123)로부터 복원될 수 있다.
앞선 도 15 및 도 16에서, 도 8 및 도 9의 예에 비해 추가적인 또는 수정된 모듈(단계 또는 유닛)은 밝은 음영으로 도시되어 있다.
위에서 주어진 본 발명의 상세한 설명을 요약하면, 주요 차이점은 다음과 같다:
RSP 절차는 2개의 서브 절차인 "RSP 리스트의 준비"와 "RSP 기법과 관련된 다른 동작 수행"으로 구분되며, SBH는 이러한 서브 절차 사이에 수행된다. 이러한 변경 사항은 SBH 및 RSP 리스트 모두에 영향을 준다.
또한, 수정에 의해 계수 위치 분포에서 임의의 변경이 존재하지 않아야 하는 (특히 서브-리스트들 사이의 임계치를 교차하지 않음) 여러 개의 RSP 리스트 (서브-리스트)가 존재하는 경우, RSP 리스트로부터의 양자화된 변환 계수의 허용된 변경에 제약을 가함으로써 SBH 절차의 인코더-측 수정이 있게 된다.
따라서, 본 발명은 다음 측면에서 유리할 수 있다:
RSP와 SBH 기법의 조화로 인해 압축 성능이 향상될 수 있다.
제안된 방법에 의해 야기되는 하드웨어 계산의 복잡성은 인코더 및 디코더 측 모두에서 작다.
본 발명은, HM 소프트웨어 및 VPX 비디오 코덱 패밀리뿐만 아니라 각각 최신 및 차세대 비디오 코딩 프레임워크인 JEM(Joint Exploration Model) 소프트웨어 및 VPX/AV1 비디오 코덱 패밀리와 호환되는 하이브리드 비디오 코딩 패러다임에서 다양한 잠재적인 응용예에서 사용될 수 있다.
본 발명은 광범위한 SBH 및 RSP 기법에 적용 가능하다.
요약하면, 본 발명은 비디오 코딩에서 부호 비트 숨기기(SBH) 및 잔차 부호 예측(RSP) 기법을 조화시키기 위한 개선된 장치 및 방법에 관한 것이다. 코딩 효율을 향상시키기 위해, SBH가 적용될 계수를 선택하기 전에 RSP가 적용될 변환 계수의 리스트가 준비된다. 이에 의해, RSP 리스트는 가장 높은 코딩 효율이 예상될 수 있는 방식으로 채워질 수 있다. 이어서, SBH를 적용하기 위한 하나 이상의 계수가 리스트에 포함되지 않도록 선택된다.
이 명세서는 화상(프레임)에 대한 설명을 제공하지만, 인터레이스 화상 신호의 경우 필드가 화상으로 대체된다.
비록 본 발명의 실시예가 비디오 코딩에 기초하여 주로 설명되었지만, 인코더(100) 및 디코더(200) (및 이에 대응하여 시스템(300))의 실시예는 또한 정지 화상 프로세싱 또는 코딩, 즉 비디오 코딩에서와 같이 임의의 선행 또는 연속 화상과는 무관한 개별 화상의 프로세싱 또는 코딩에 대해 구성될 수 있음에 유의해야 한다..
실시예 및 설명이 "메모리"라는 용어를 지칭하는 경우, "메모리"라는 용어는, 별도로 명시하지 않는 한, 자기 디스크, 광학 디스크, 솔리드 스테이트 드라이브(solid state drive; SSD), 판독-전용 메모리(Read-Only Memory, ROM), 램(Random Access Memory, RAM), USB 플래시 드라이브, 또는 임의의 다른 적절한 종류의 메모리를 포함하는 것으로 이해되어야 한다.
실시예 및 설명이 "네트워크"라는 용어를 지칭하는 경우, 용어 "네트워크"는, 별도로 명시하지 않는 한, 근거리 네트워크(Local Area Network; LAN), 무선 LAN(Wireless LAN; WLAN), 광역 네트워크(Wide Area Network; WAN), 이더넷, 인터넷, 모바일 네트워크 등과 같은 임의의 종류의 무선 또는 유선 네트워크를 포함하는 것으로 이해되어야 한다.
통상의 기술자는, 다양한 도면(방법 및 장치)의 "블록"("유닛" 또는 "모듈")은 (하드웨어 또는 소프트웨어에서 반드시 개별적인 "유닛"이라기보다는) 발명의 실시예의 기능을 표현하거나 기술하고, 따라서 방법 실시예뿐만 아니라 장치 실시예의 기능 또는 특징을 동등하기 기술한다(유닛 = 단계)는 것을 이해할 것이다.
"유닛"의 용어는 단지 인코더/디코더의 실시예들의 기능의 예시적인 목적으로 사용되며, 본 개시를 제한하도록 의도되지 않는다.
본 출원에서 제공되는 몇가지 실시예에서, 개시된 시스템, 장치, 및 방법은 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 기술된 장치 실시예는 단지 예시일 뿐이다. 예를 들어, 유닛 구분은 단지 논리적 기능 구분일 뿐이며 실제의 구현예에서는 다른 구분일 수 있다. 예를 들어, 복수의 유닛 또는 구성 요소가 다른 시스템에 조합되거나 통합될 수 있거나, 일부 특징이 무시되거나 수행되지 않을 수 있다. 또한, 표시되거나 논의된 상호 결합(coupling) 또는 직접 결합 또는 통신 연결은 일부 인터페이스를 사용하여 구현될 수 있다. 장치 또는 유닛 사이의 간접 결합 또는 통신 연결은 전자적, 기계적, 또는 다른 형태로 구현될 수 있다.
별개의 부분으로 기술된 유닛은, 물리적으로 분리될 수 있거나 물리적으로 분리되지 않을 수 있고, 유닛으로서 표시된 부분은 물리적 유닛일 수 있거나 아닐 수 있거나, 하나의 위치에 위치될 수 있거나, 복수의 네트워크 유닛에 분산될 수 있다. 유닛의 일부 또는 전부는 실시예의 해결 수단의 목적을 달성하기 위해 실제 필요에 따라 선택될 수 있다.
또한, 본 발명의 실시예에서의 기능적 유닛은 하나의 프로세싱 유닛에 통합될 수 있거나, 또는 각각의 유닛이 물리적으로 단독으로 존재할 수 있거나, 또는 둘 이상의 유닛이 하나의 유닛에 통합될 수 있다.
본 발명의 실시예는, 여기에 기술된 임의의 방법 및/또는 프로세스를 수행하도록 구성되는 프로세싱 회로를 포함하는, 예컨대 인코더 및/또는 디코더와 같은, 장치를 포함할 수 있다.
인코더(100) 및/또는 디코더(200)의 실시예는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 예를 들어, 인코더/인코딩 또는 디코더/디코딩의 기능은, 예컨대 프로세서, 마이크로제어기, 디지털 신호 처리기(digital signal processor; DSP), FPGA(Field Programmable Gate Array), ASIC(application-specific integrated circuit), 등과 같은, 펌웨어 또는 소프트웨어가 있거나 또는 없는 프로세싱 회로에 의해 수행될 수 있다.
인코더(100)(및 대응하는 인코딩 방법(100)) 및/또는 디코더(200)(및 대응하는 디코딩 방법(200))의 기능은 컴퓨터-판독 가능한 매체에 저장된 프로그램 명령에 의해 구현될 수 있다. 프로그램 명령은, 실행되는 경우, 프로세싱 회로, 컴퓨터, 프로세서 등이 인코딩 및/또는 디코딩 방법의 단계를 수행하게 한다. 컴퓨터-판독 가능한 매체는, 프로그램이 저장되는, 블루레이 디스크, DVD, CD, USB (플래시) 드라이브, 하드디스크, 네트워크를 통해 이용 가능한 서버 스토리지, 등과 같은 비일시적 저장 매체를 포함하여 임의의 매체일 수 있다.
본 발명의 실시예는, 컴퓨터 상에서 실행되는 경우 여기에 기술된 임의의 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램이거나 이를 포함한다.
본 발명의 실시예는 프로세서에 의해 실행되는 경우, 컴퓨터 시스템으로 하여금 여기에 기술된 임의의 방법을 수행하게 하는 프로그램 코드를 포함하는 컴퓨터-판독 가능한 매체이거나 이를 포함한다.
본 발명의 실시예는 본 명세서에서 기술된 임의의 방법을 수행하는 칩셋이거나 이를 포함한다.
참조 부호의 리스트
100: 인코더
101: 화상
102, 202: 입력(예컨대, 입력 포트, 입력 인터페이스)
103: 화상 블록
104: 잔차 계산 [유닛 또는 단계]
105: 잔차 블록
106: 변환 (예컨대, 스케일링을 추가적으로 포함) [유닛 또는 단계]
107: 변환된 계수
108: 양자화 [유닛 또는 단계]
109, 209: 양자화된 계수
110, 210: 역 양자화 [유닛 또는 단계]
111, 211: 역양자화된 계수
112, 212: 역변환 (예컨대, 스케일링을 추가적으로 포함) [유닛 또는 단계]
113, 213: 역변환된 블록
114, 214: 재구성 [유닛 또는 단계]
115, 215: 재구성된 블록
116, 216: (라인) 버퍼 [유닛 또는 단계]
117, 217: 참조 샘플
120, 220: 루프 필터 [유닛 또는 단계]
121, 221: 필터링된 블록
122: 부호 예측 [유닛 또는 단계]
130, 230: 디코딩된 화상 버퍼(Decoded picture buffer; DPB) [유닛 또는 단계]
142: 인터 추정 (또는 인터 화상 추정) [유닛 또는 단계]
143: 인터 추정 파라미터 (예컨대, 참조 화상/참조 화상 인덱스, 모션 벡터/오프셋)
144, 244: 인터 예측 (또는 인터 화상 예측) [유닛 또는 단계]
145: 인터 예측 블록
152: 인트라 추정 (또는 인트라 화상 추정) [유닛 또는 단계]
153: 인트라 예측 파라미터 (예컨대 인트라 예측 모드)
154, 254: 인트라 예측 (인트라 프레임/화상 예측) [유닛 또는 단계]
155: 인트라 예측 블록
160, 260: 예측 [유닛 또는 단계]
162, 262: 모드 선택 [유닛 또는 단계]
165, 265: 예측 블록(예컨대 인터 예측 블록(145) 또는 인트라 예측 블록(155))
170: 엔트로피 인코딩 [유닛 또는 단계]
171: 인코딩된 화상 데이터 (예컨대 비트스트림)
172: 출력 (출력 포트, 출력 인터페이스)
200: 디코더
204: 엔트로피 디코딩
231: 디코딩된 화상
300: 코딩 시스템
310: 소스 디바이스
312: 화상 소스
313: (원시) 화상 데이터
314: 전처리기/전처리 유닛
315: 전처리된 화상 데이터
318: 통신 유닛/인터페이스
320: 데스티네이션 디바이스
322: 통신 유닛/인터페이스
326: 후처리기/후처리 유닛
327: 후처리된 화상 데이터
328: 디스플레이 디바이스/유닛
330: 전송된/수신된/통신된 (인코딩된) 화상 데이터
410: 변환 유닛
420: 계수 블록
참고문헌 리스트
[1] G. Clare, F. Henry, and J. Jung, "Sign Data Hiding," Contribution JCTVC-G0271 to the 7th JCT-VC meeting, Geneva, Switzerland, November 2011.
[2] X. Yu, J. Wang, D. He, G. Martin-Cocher, and S. Campbell, "Multiple Sign Bits Hiding," Contribution JCTVC-H0481 to the 8th JCT-VC meeting, San Jose, USA, February 2012.
[3] K. Kazui et al. "Video coding technology proposal by Fujitsu", Contribution JCTVC-A115 to the 1st JCT-VC meeting, Dresden, Germany, April 2010.
[4] F. Henry, G. Clare, "Residual sign prediction", Contribution JVET-D0031 to the 4th JVET meeting, Chengdu, China, October 2016.
[5] Han Huang, Kai Zhang, Yu-Wen Huang, and Shawmin Lei, "EE2.1: Quadtree plus binary tree structure integration with JEM tools," Contribution JVET-C0024 to the 3rd JVET meeting, Geneva, Switzerland, May 2016.

Claims (39)

  1. 신호의 변환 계수 세트의 부호를 인코딩하는 장치로서, 상기 장치는 프로세싱 회로를 포함하되, 상기 프로세싱 회로는,
    제1 소정의 규칙에 따라, 상기 변환 계수 세트 중 제1 복수의 변환 계수를 포함하는 변환 계수 리스트를 결정하는 단계를 포함하는 잔차 부호 예측 서브 절차를 수행하고;
    제2 소정의 규칙에 따라, 상기 변환 계수 세트 중에서 상기 리스트에 포함되지 않은 추가 변환 계수를 선택하고;
    상기 잔차 부호 예측 서브 절차를 수행한 후, 상기 추가 변환 계수의 부호를 상기 변환 계수 세트에서 변환 계수 값의 미리 정해진 함수의 결과에 임베딩하는 단계를 포함하는 부호 비트 숨기기를 수행하고;
    상기 리스트에서 상기 변환 계수의 부호를 추정하기 위한 추정 절차(122)를 수행하고;
    상기 제1 복수의 변환 계수의 각각에 대해, 상기 변환 계수의 부호가 상기 변환 계수의 추정된 부호와 일치하는지 여부를 표시하는 2진 값을 결정하고; 그리고
    엔트로피 코딩 기법을 사용하여 상기 제1 복수의 변환 계수에 대해 획득된 2진 값(122)의 시퀀스를 인코딩(170)하도록 구성되는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  2. 제1 항에 있어서,
    상기 리스트에서 상기 변환 계수의 부호를 추정하기 위한 추정 절차(122)는,
    상기 제1 복수의 변환 계수의 부호의 각각의 가상의 조합에 대해, 공간 도메인에서 상기 변환 계수 세트에 대응하는 이미지 블록의 경계 픽셀을 재구성하는 단계;
    상기 가상의 조합의 각각에 대해, 재구성된 픽셀과 인접 블록의 픽셀 사이의 블록 경계에 걸친 픽셀 값의 평활도(smoothness)를 표시하는 미리 정해진 공간 도메인 함수를 평가하는 단계;
    상기 미리 정해진 공간 도메인 함수가 평활도를 최대로 표시하는 가상의 조합을 상기 변환 계수의 추정된 부호로서 선택하는 단계;를 포함하는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  3. 제1 항에 있어서,
    상기 리스트에서 상기 변환 계수의 부호를 추정하기 위한 추정 절차(122)는,
    상기 변환 계수 세트에 대응하는 현재 이미지 블록에 이웃한 인접 픽셀들 사이의 변환된 차이 및 상기 현재 이미지 블록의 예측 신호에 기초하여 계산된 상기 인접 픽셀들의 예측을 포함하는 비용 함수에 기초하여 상기 부호를 추정하는 단계를 포함하는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  4. 제1 항에 있어서,
    상기 제2 소정의 규칙은, 상기 리스트에 포함된 상기 제1 복수의 변환 계수에 속하지 않는 가장 저주파의 0이 아닌 변환 계수를 상기 추가 변환 계수로서 선택하도록 규정하는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  5. 제1 항에 있어서,
    상기 프로세싱 회로는,
    미리 정해진 엔트로피 인코딩 절차에 의해 상기 세트의 제2 복수의 변환 계수의 부호를 인코딩하도록 추가적으로 구성되는-상기 제2 복수의 변환 계수는 상기 리스트에 포함된 상기 제1 복수에 포함되지 않고 상기 선택된 추가 변환 계수와는 상이한 모든 나머지 0이 아닌 변환 계수를 포함함-,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  6. 제1 항에 있어서,
    상기 리스트는 2개의 서브-리스트를 포함하고, 상기 서브-리스트는, 제1 서브-리스트는 임계치보다 큰 절대값을 가지는 변환 계수를 포함하고 제2 서브-리스트는 상기 임계치 이하의 절대값을 가지는 변환 계수를 포함하도록, 임계치에 의해 서로 분할되는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  7. 제6 항에 있어서,
    상기 2개의 서브-리스트의 변환 계수에 대해 결정되는 상기 추정된 부호와의 일치 여부를 표시하는 상기 2진 값의 시퀀스는 엔트로피 인코딩의 상이한 컨텍스트로 각각 인코딩되는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  8. 제1 항에 있어서,
    상기 미리 정해진 함수의 결과는, 제1 부호 값이 제1 결과 값에 대응하고 제2 부호 값이 제2 결과 값에 대응하도록, 2개의 상이한 값을 가정할 수 있고,
    상기 추가 변환 계수의 부호를 임베딩하는 단계는,
    상기 변환 계수의 미리 정해진 함수가 상기 추가 변환 계수의 부호에 대응하는 결과 값을 가지는지 여부를 결정하는 단계; 및
    상기 미리 정해진 함수가 상기 추가 변환 계수의 부호에 대응하는 결과를 가지지 않으면, 상기 변환 계수의 미리 정해진 함수가 상기 추가 변환 계수의 부호에 대응하는 결과를 가지도록 상기 변환 계수 중 하나의 값을 수정하는 단계;를 포함하는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  9. 제8 항에 있어서,
    상기 프로세싱 회로는,
    수정될 상기 변환 계수 중 하나 및 상기 수정을 결정하여 상기 계수의 양자화된 레벨 또는 계수 수정에 의해 도입되는 왜곡을 반영하는 수정 추정 함수 또는 레이트-왜곡 비용 함수를 최소화하도록 추가적으로 구성되는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  10. 제8 항에 있어서,
    상기 리스트는 서브-리스트들을 포함하고,
    상기 프로세싱 회로는, 상기 서브-리스트들에 걸쳐 상기 제1 복수의 변환 계수의 분포에 변경을 초래하는 수정을 허용하지 않도록, 변환 계수의 값의 수정에 제약을 가하도록 추가적으로 구성되는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  11. 제10 항에 있어서,
    상기 변환 계수의 절대값의 임계값에 의해 서로 분할되는 2개의 서브-리스트가 존재하고,
    상기 제약은, 수정된 값이 수정되지 않은 값과는 다른 서브-리스트에 속하도록 수정이 임계치의 교차를 초래하는 경우 변환 계수의 값의 수정을 허용하지 않는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  12. 제1 항에 있어서,
    상기 변환 계수는 양자화된 변환 계수(109)인,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  13. 제1 항에 있어서,
    상기 제1 소정의 규칙은, 미리 정해진 수 M개의 변환 계수의 순서화된 리스트로서 상기 변환 계수의 리스트를 규정하는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  14. 제13 항에 있어서,
    상기 제1 소정의 규칙은, 상기 변환 계수 세트에서 가장 높은 절대값을 가지는 M개의 변환 계수를, 내림차순으로, 상기 변환 계수의 리스트에 포함시키도록 추가적으로 규정하는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  15. 제1 항에 있어서,
    상기 미리 정해진 함수는 양자화 모듈로 2 이후의 절대 변환 계수 값의 합인, 신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  16. 제1 항에 있어서,
    상기 프로세싱 회로는,
    상기 제2 소정의 규칙에 따라, 상기 변환 계수 세트 중에서 상기 리스트에 포함되지 않는 복수의 N개의 추가 변환 계수를 선택하도록; 그리고
    상기 추가 변환 계수의 부호를 상기 변환 계수 세트에서 변환 계수 값의 미리 정해진 함수의 결과에 임베딩하도록 구성되는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  17. 제16 항에 있어서,
    상기 미리 정해진 함수는 양자화 모듈로 2N 이후의 절대 변환 계수 값의 합인, 신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  18. 제1 항 내지 제17항 중 어느 한 항에 있어서,
    상기 프로세싱 회로는:
    변환 유닛의 변환 계수를 복수의 변환 계수 세트로 분할하도록; 그리고
    상기 복수의 변환 계수 세트의 각각에 대해, 제1항 내지 제17항 중 어느 한 항에 규정된 프로세싱을 수행하도록 구성되는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  19. 제18 항에 있어서,
    상기 변환 유닛은 이미지 신호를 변환함으로써 획득되는 변환 계수의 2차원 블록(410)이고,
    상기 프로세싱 회로는 상기 변환 유닛을 상기 복수의 변환 계수 세트로서 복수의 2차원 블록으로 분할하도록 구성되는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  20. 제18 항에 있어서,
    상기 변환 유닛은 이미지 신호를 변환함으로써 획득되는 변환 계수의 2차원 블록(410)이고,
    상기 프로세싱 회로는,
    상기 변환 유닛의 변환 계수를 미리 정의된 순서에 따라 스캔하도록; 그리고
    상기 스캐닝된 변환 계수를 상기 복수의 변환 계수 세트로서 복수의 1차원 청크로 분할하도록 구성되는,
    신호의 변환 계수 세트의 부호를 인코딩하는 장치.
  21. 신호의 변환 계수 세트의 부호를 디코딩하는 장치로서, 상기 장치는 프로세싱 회로를 포함하고, 상기 프로세싱 회로는,
    제1 복수의 2진 값의 엔트로피 인코딩된 시퀀스(123)를 디코딩하고;
    제1 소정의 규칙에 따라, 상기 변환 계수 세트 중 제1 복수의 변환 계수를 포함하는 변환 계수 리스트를 결정하는 것을 포함하는 잔차 부호 예측 서브 절차를 수행하고;
    제2 소정의 규칙에 따라, 상기 변환 계수 세트 중에서 상기 리스트에 포함되지 않은 추가 변환 계수를 선택하고;
    상기 잔차 부호 예측 서브 절차를 수행한 후, 상기 변환 계수 세트에서 변환 계수 값의 미리 정해진 함수를 계산함으로써 상기 추가 변환 계수의 부호를 결정하는 것을 포함하는 숨겨진 부호 검색(retrieval)을 수행하고;
    상기 리스트에서 상기 변환 계수의 부호를 추정하기 위한 추정 절차(122)를 수행; 및
    상기 제1 복수의 변환 계수의 부호를 획득하기 위해, 상기 제1 복수의 2진 값의 디코딩된 시퀀스에 의해 상기 추정된 부호를 정정하도록 구성되는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  22. 제21 항에 있어서,
    상기 리스트에서 상기 변환 계수의 부호를 추정하기 위한 추정 절차(122)는,
    상기 제1 복수의 변환 계수의 부호의 각각의 가상의 조합에 대해, 공간 도메인에서 상기 변환 계수 세트에 대응하는 이미지 블록의 경계 픽셀을 재구성하는 단계;
    상기 가상의 조합의 각각에 대해, 재구성된 픽셀과 인접 블록의 픽셀 사이의 블록 경계에 걸친 픽셀 값의 평활도를 표시하는 미리 정해진 공간 도메인 함수를 평가하는 단계;
    상기 미리 정해진 공간 도메인 함수가 평활도를 최대로 표시하는 가상의 조합을 상기 변환 계수의 추정된 부호로서 선택하는 단계;를 포함하는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  23. 제21 항에 있어서,
    상기 리스트에서 상기 변환 계수의 부호를 추정하기 위한 추정 절차(122)는,
    상기 변환 계수 세트에 대응하는 현재 이미지 블록에 이웃한 인접 픽셀들 사이의 변환된 차이 및 상기 현재 이미지 블록의 예측 신호에 기초하여 계산된 상기 인접 픽셀들의 예측을 포함하는 비용 함수에 기초하여 상기 부호를 추정하는 단계를 포함하는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  24. 제21 항에 있어서,
    상기 디코딩된 2진 값은, 상기 리스트 내의 각각의 변환 계수에 대해, 상기 변환 계수의 부호가 상기 변환 계수의 추정된 부호와 일치하는지 여부를 표시하는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  25. 제21 항에 있어서,
    상기 제2 소정의 규칙은, 상기 리스트에 포함된 상기 제1 복수의 변환 계수에 속하지 않는 가장 저주파의 0이 아닌 변환 계수를 상기 추가 변환 계수로서 선택하도록 규정하는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  26. 제21 항에 있어서,
    상기 리스트는 2개의 서브-리스트를 포함하고-상기 서브-리스트는, 제1 서브-리스트는 임계치보다 큰 절대값을 가지는 변환 계수를 포함하고 제2 서브-리스트는 상기 임계치 이하의 절대값을 가지는 변환 계수를 포함하도록, 임계치에 의해 서로 분할됨-,
    제1 복수의 2진 값의 시퀀스는, 엔트로피 인코딩의 상이한 컨텍스트로 각각 인코딩된 2개의 서브-시퀀스를 포함하는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  27. 제21 항에 있어서,
    상기 미리 정해진 함수의 계산의 결과는 2개의 상이한 값을 가정할 수 있고, 상기 추가 변환 계수의 부호는 상기 결과가 제1 값이면 제1 부호 값이고 상기 결과가 제2 값이면 제2 부호 값이라는 규칙에 따라 결정되는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  28. 제21 항에 있어서,
    상기 변환 계수는 양자화된 변환 계수(209)인, 신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  29. 제21 항에 있어서,
    상기 제1 소정의 규칙은, 미리 정해진 수 M 개의 변환 계수의 순서화된 리스트로서 상기 변환 계수의 리스트를 규정하는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  30. 제29 항에 있어서,
    상기 제1 소정의 규칙은, 상기 변환 계수 세트에서 가장 높은 절대값을 가지는 M개의 변환 계수를, 내림차순으로, 상기 변환 계수의 리스트에 포함시키도록 추가적으로 규정하는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  31. 제21 항에 있어서,
    상기 미리 정해진 함수는 양자화 모듈로 2 이후의 절대 변환 계수 값의 합인, 신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  32. 제21 항에 있어서,
    상기 프로세싱 회로는,
    상기 제2 소정의 규칙에 따라, 상기 변환 계수 세트 중에서 상기 리스트에 포함되지 않는 복수의 N개의 추가 변환 계수를 선택하도록; 그리고
    상기 추가 변환 계수의 부호를 상기 변환 계수 세트에서 변환 계수 값의 미리 정해진 함수의 결과에 임베딩하도록 구성되는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  33. 제32 항에 있어서,
    상기 미리 정해진 함수는 양자화 모듈로 2N 이후의 절대 변환 계수 값의 합인, 신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  34. 제21 항 내지 제33 항 중 어느 한 항에 있어서,
    상기 프로세싱 회로는,
    변환 유닛의 변환 계수를 복수의 변환 계수 세트로 분할하고;
    상기 복수의 변환 계수 세트의 각각에 대해, 제21 항 내지 제33 항 중 어느 한 항에 규정된 프로세싱을 수행하도록 구성되는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  35. 제34 항에 있어서,
    상기 변환 유닛은 이미지 신호를 변환함으로써 획득되는 변환 계수의 2차원 블록(410)이고,
    상기 프로세싱 회로는 상기 변환 유닛을 상기 복수의 변환 계수 세트로서 복수의 2차원 블록(420)으로 분할하도록 구성되는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  36. 제34 항에 있어서,
    상기 변환 유닛은 이미지 신호를 변환함으로써 획득되는 변환 계수의 2차원 블록(410)이고,
    상기 프로세싱 회로는,
    상기 변환 유닛의 변환 계수를 미리 정의된 순서에 따라 스캔하도록; 그리고
    상기 스캐닝된 변환 계수를 상기 복수의 변환 계수 세트로서 복수의 1차원 청크로 분할하도록 구성되는,
    신호의 변환 계수 세트의 부호를 디코딩하는 장치.
  37. 신호의 변환 계수 세트의 부호를 인코딩하는 방법으로서,
    제1 소정의 규칙에 따라, 상기 변환 계수 세트 중 제1 복수의 변환 계수를 포함하는 변환 계수 리스트를 결정하는 것을 포함하는 잔차 부호 예측 서브 절차를 수행하는 단계(S10);
    제2 소정의 규칙에 따라, 상기 변환 계수 세트 중에서 상기 리스트에 포함되지 않은 추가 변환 계수를 선택하는 단계(S12);
    상기 잔차 부호 예측 서브 절차를 수행한 후, 상기 추가 변환 계수의 부호를 상기 변환 계수 세트에서 변환 계수 값의 미리 정해진 함수의 결과에 임베딩하는 것을 포함하는 부호 비트 숨기기를 수행하는 단계(S14);
    상기 리스트에서 상기 변환 계수의 부호를 추정하기 위한 추정 절차를 수행하는 단계(S16);
    상기 제1 복수의 변환 계수의 각각에 대해, 상기 변환 계수의 부호가 상기 변환 계수의 추정된 부호와 일치하는지 여부를 표시하는 2진 값을 결정하는 단계(S16); 및
    엔트로피 코딩 기법을 사용하여 상기 제1 복수의 변환 계수에 대해 획득된 2진 값의 시퀀스를 인코딩하는 단계(S16);를 포함하는,
    신호의 변환 계수 세트의 부호를 인코딩하는 방법.
  38. 신호의 변환 계수 세트의 부호를 디코딩하는 방법으로서,
    제1 복수의 2진 값의 엔트로피 인코딩된 시퀀스를 디코딩하는 단계;
    제1 소정의 규칙에 따라, 상기 변환 계수 세트 중 제1 복수의 변환 계수를 포함하는 변환 계수 리스트를 결정하는 것을 포함하는 잔차 부호 예측 서브 절차를 수행하는 단계(S20);
    제2 소정의 규칙에 따라, 상기 변환 계수 세트 중에서 상기 리스트에 포함되지 않은 추가 변환 계수를 선택하는 단계(S22);
    상기 잔차 부호 예측 서브 절차를 수행한 후, 상기 변환 계수 세트에서 변환 계수 값의 미리 정해진 함수를 계산함으로써 상기 추가 변환 계수의 부호를 결정하는 것을 포함하는 숨겨진 부호 검색을 수행하는 단계(S24);
    상기 리스트에서 상기 변환 계수의 부호를 추정하기 위한 추정 절차를 수행하는 단계(S26); 및
    상기 제1 복수의 변환 계수의 부호를 획득하기 위해, 상기 제1 복수의 2진 값의 디코딩된 시퀀스에 의해 상기 추정된 부호를 정정하는 단계(S26);를 포함하는,
    신호의 변환 계수 세트의 부호를 디코딩하는 방법.
  39. 프로세서에 의해 실행되는 경우, 상기 프로세서를 포함하는 컴퓨터 시스템이 제37 항 또는 제38 항에 따른 방법의 모든 단계를 수행하게 하는 프로그램 코드를 포함하는 컴퓨터-판독 가능한 매체.
KR1020207024923A 2018-03-07 2018-03-07 다중 부호 비트 숨기기 및 잔차 부호 예측을 조화시키기 위한 방법 및 장치 KR102492116B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2018/000141 WO2019172797A1 (en) 2018-03-07 2018-03-07 Method and apparatus for harmonizing multiple sign bit hiding and residual sign prediction

Publications (2)

Publication Number Publication Date
KR20200110442A KR20200110442A (ko) 2020-09-23
KR102492116B1 true KR102492116B1 (ko) 2023-01-26

Family

ID=62186507

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207024923A KR102492116B1 (ko) 2018-03-07 2018-03-07 다중 부호 비트 숨기기 및 잔차 부호 예측을 조화시키기 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US11265535B2 (ko)
EP (1) EP3738312A1 (ko)
JP (1) JP7085009B2 (ko)
KR (1) KR102492116B1 (ko)
CN (1) CN111819854B (ko)
WO (1) WO2019172797A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111713104B (zh) * 2018-02-14 2022-04-26 索尼公司 图像处理装置和方法
WO2019234613A1 (en) * 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Partition tree with partition into 3 sub-blocks by horizontal and vertical splits
WO2020059092A1 (ja) * 2018-09-20 2020-03-26 富士通株式会社 符号化装置、符号化方法、符号化プログラム、復号装置、復号方法及び復号プログラム
KR20200127781A (ko) * 2019-05-03 2020-11-11 한국전자통신연구원 주파수 복원 기법 기반 오디오 부호화 방법
WO2020262988A1 (ko) * 2019-06-25 2020-12-30 엘지전자 주식회사 영상 코딩 시스템에서 무손실 코딩을 적용하는 영상 디코딩 방법 및 그 장치
WO2022178686A1 (zh) * 2021-02-23 2022-09-01 Oppo广东移动通信有限公司 编解码方法、编解码设备、编解码系统以及计算机可读存储介质
WO2023277451A1 (ko) * 2021-07-01 2023-01-05 세종대학교 산학협력단 부호 비트 숨김을 이용한 비디오 부호화 및 복호화 방법
US20230093994A1 (en) * 2021-09-29 2023-03-30 Alibaba Singapore Holding Private Limited Residual sign prediction of transform coefficients in video coding
KR20230092806A (ko) * 2021-12-17 2023-06-26 주식회사 케이티 비디오 신호 부호화/복호화 방법, 그리고 비트스트림을 저장한 기록 매체
US20230319260A1 (en) * 2022-04-04 2023-10-05 Tencent America LLC Systems and methods for frequency-dependent coefficient sign coding
WO2023220946A1 (zh) * 2022-05-17 2023-11-23 Oppo广东移动通信有限公司 视频编解码方法、装置、设备、系统及存储介质
WO2023236113A1 (zh) * 2022-06-08 2023-12-14 Oppo广东移动通信有限公司 视频编解码方法、装置、设备、系统及存储介质
WO2024008060A1 (en) * 2022-07-05 2024-01-11 Mediatek Inc. Method and apparatus of dependent quantization for video coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014534764A (ja) * 2011-11-07 2014-12-18 オランジュ 画像を符号化および復号するための方法、符号化デバイスおよび復号デバイス、ならびに対応するコンピュータプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI116819B (fi) * 2000-01-21 2006-02-28 Nokia Corp Menetelmä kuvien lähettämiseksi ja kuvakooderi
US8470700B2 (en) * 2010-07-22 2013-06-25 Globalfoundries Singapore Pte. Ltd. Semiconductor device with reduced contact resistance and method of manufacturing thereof
EP4258663A3 (en) * 2012-01-20 2023-12-20 Velos Media International Limited Multiple sign bit hiding within a transform unit
US9008184B2 (en) * 2012-01-20 2015-04-14 Blackberry Limited Multiple sign bit hiding within a transform unit
US9313498B2 (en) * 2012-04-16 2016-04-12 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding
US9294779B2 (en) * 2012-06-15 2016-03-22 Blackberry Limited Multi-bit information hiding using overlapping subsets
US9088769B2 (en) * 2012-06-28 2015-07-21 Blackberry Limited Reduced worst-case context-coded bins in video compression with parity hiding
FR3023112A1 (fr) 2014-06-27 2016-01-01 Bcom Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
CN105898300B (zh) * 2016-05-06 2019-03-26 西安电子科技大学 一种基于恢复变换系数的改进变换系数符号位隐藏方法
US10609367B2 (en) * 2016-12-21 2020-03-31 Qualcomm Incorporated Low-complexity sign prediction for video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014534764A (ja) * 2011-11-07 2014-12-18 オランジュ 画像を符号化および復号するための方法、符号化デバイスおよび復号デバイス、ならびに対応するコンピュータプログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
F.Henry et al., "Residual Coefficient Sign Prediction", (JVET-D0031), JVET of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 4th Meeting: Chengdu, CN, (2016.10.20.)*
G.Clare et al., "Sign Data Hiding", (JCTVC-G271), JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 7th Meeting: Geneva, CH, (2011.11.08.)*
K.Kazui et al., "Description of video coding technology proposal by FUJITSU", (JCTVC-A115), JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 1st Meeting: Dresden, DE, (2010.04.12.)*
X.Yu et al., "Multiple Sign Bits Hiding", (JCTVC-H0481), JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG118th Meeting: San Jose, CA, USA, (2012.01.21.)*

Also Published As

Publication number Publication date
CN111819854A (zh) 2020-10-23
US20200404257A1 (en) 2020-12-24
EP3738312A1 (en) 2020-11-18
US11265535B2 (en) 2022-03-01
JP7085009B2 (ja) 2022-06-15
JP2021516493A (ja) 2021-07-01
CN111819854B (zh) 2022-12-06
WO2019172797A1 (en) 2019-09-12
KR20200110442A (ko) 2020-09-23

Similar Documents

Publication Publication Date Title
KR102492116B1 (ko) 다중 부호 비트 숨기기 및 잔차 부호 예측을 조화시키기 위한 방법 및 장치
US11438618B2 (en) Method and apparatus for residual sign prediction in transform domain
US20200404308A1 (en) Method and apparatus for detecting blocks suitable for multiple sign bit hiding
EP3741127A1 (en) Loop filter apparatus and method for video coding
JP2022172137A (ja) 適応乗算係数を用いた画像フィルタリングのための方法および装置
WO2020005092A1 (en) Device and method for intra-prediction of a prediction block of a video image
KR20210040426A (ko) 디블로킹을 수행하는 장치 및 방법
KR20210015963A (ko) 인트라-예측을 위한 디바이스 및 방법
CN114598873A (zh) 量化参数的解码方法和装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant