KR20170134324A - 디지털 이미지를 인코딩하기 위한 방법 그리고 연관된 디코딩 방법, 디바이스들 및 컴퓨터 프로그램들 - Google Patents

디지털 이미지를 인코딩하기 위한 방법 그리고 연관된 디코딩 방법, 디바이스들 및 컴퓨터 프로그램들 Download PDF

Info

Publication number
KR20170134324A
KR20170134324A KR1020177021825A KR20177021825A KR20170134324A KR 20170134324 A KR20170134324 A KR 20170134324A KR 1020177021825 A KR1020177021825 A KR 1020177021825A KR 20177021825 A KR20177021825 A KR 20177021825A KR 20170134324 A KR20170134324 A KR 20170134324A
Authority
KR
South Korea
Prior art keywords
block
sub
vector
coefficients
transformed
Prior art date
Application number
KR1020177021825A
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 KR20170134324A publication Critical patent/KR20170134324A/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

디지털 이미지의 인코딩 방법이 개시되며, 상기 이미지(lk)는 정해진 순서로 프로세싱된 픽셀들의 복수의 블록들로 분할되고, 상기 방법은 미리결정된 사이즈들의 현재 블록(x)에 대해 구현되는 다음의 단계들:
- 현재 블록을 변환된 블록으로 변환하는 단계(T2) ― 상기 블록은 계수들을 포함하고, 상기 단계는 2개의 연속적인 변환 서브-스텝들을 구현하며, 제 1 서브-스텝은 현재 블록에 그리고 제 2 서브-스텝은 제 1 서브-스텝으로부터 발생하는 중간 블록에 적용되고, 상기 중간 블록은 계수들을 포함함 ―, 및
- 변환된 블록의 계수들을 양자화(T4) 및 인코딩(T5)하는 단계를 포함하며,
- 상기 변환하는 단계는 상기 변환 서브-스텝들 ― 상기 서브-스텝은 현재 블록과 중간 블록 중 소위 변환될 블록인 블록에 적용됨 ― 중 적어도 하나의 변환 서브-스텝에 앞서, 변환될 블록에서 적어도 하나의 제 1 및 적어도 하나의 제 2 별개의 벡터들을 형성하기 위한 예비 서브-스텝(T20, T23)을 더 포함하며, 이러한 벡터는 변환될 블록의 사이즈들 중 하나와 동일한 길이의, 변환될 블록의 인접 계수들, 개별적으로는 픽셀들의 시퀀스의 계수들, 개별적으로는 픽셀들을 포함하고; 그리고
- 상기 적어도 하나의 변환 서브-스텝은 상기 적어도 하나의 제 1 벡터에 제 1 변환(L0, C0)을 그리고 상기 블록의 상기 적어도 하나의 제 2 벡터에 제 1 변환과 별개인 적어도 하나의 제 2 변환(L1, C1)을 적용하는 단계를 포함한다.

Description

디지털 이미지를 인코딩하기 위한 방법 그리고 연관된 디코딩 방법, 디바이스들 및 컴퓨터 프로그램들
본 발명의 분야는 신호 압축, 특히, 픽셀들의 블록들로 분할되는 디지털 이미지 또는 디지털 이미지들의 시퀀스의 분야에 관한 것이다.
디지털 이미지들의 인코딩/디코딩은, 특히, 다음을 포함하는 적어도 하나의 비디오 시퀀스로부터의 이미지들에 적용된다:
- 동일한 카메라로부터의, 그리고 시간적으로 서로 계속되는 이미지들(타입-2D 인코딩/디코딩),
- 상이한 뷰들에 따라 배향된 상이한 카메라들로부터의 이미지들(3D-타입 인코딩/디코딩),
- 대응하는 텍스처 및 깊이의 컴포넌트들(3D-타입 인코딩/디코딩),
- 등.
본 발명은 이미지들의 2D-타입 또는 3D-타입 인코딩/디코딩에 유사한 방식으로 적용된다.
본 발명은, 특히, 현재 AVC(Advanced Video Coding) 및 HEVC(High Efficiency Video Coding) 비디오 인코더들과 그들의 확장들(MVC, 3D-AVC, MV-HEVC, 3D-HEVC 등)에서 구현되는 비디오 인코딩, 그리고 대응하는 디코딩에 적용(그러나, 배타적으로 적용되는 것은 아님)될 수 있다.
디지털 이미지의 통상적인 압축 방식이 고려되며, 이 통상적인 압축 방식에서, 이미지는 픽셀들의 블록들로 분할된다. 일반적으로, 초기 코딩 유닛을 구성하는 코딩될 현재 블록은 미리결정된 커팅 모드에 따라 가변 개수의 서브-블록들로 커팅된다. 도 1과 관련하여, 본 발명자들은 디지털 이미지들(I1, I1, Ik, IK)의 시퀀스(K는 넌-제로 정수임)를 고려한다. 문서 "ISO/IEC 23008-2:2013 - 이종 환경들에서의 고효율 코딩 및 미디어 전달 -- 파트 2: 고효율 비디오 코딩 ≫(국제 표준화 기구, 2013년 11월 공개)에서 특정된 HEVC 용어에 따른 CTU(Coding Tree Unit)들로 이미지(lk)가 커팅된다. 표준 인코더들은 통상적으로 규칙적 파티셔닝을 제공하며, 이 규칙적 파티셔닝은 고정된 사이즈의 CU들("코딩 유닛(Coding Unit)들"의 경우)로서 알려진 정사각형 또는 직사각형 블록들에 기반한다. 파티셔닝은 초기의 파티셔닝되지 않은 인코딩 유닛으로부터 항상 수행되고, 최종 파티셔닝이 계산되며, 이후, 이 중성 단위(neutral basis)로부터 시그널링된다. HEVC 표준에 의해 허가되는 파티셔닝의 예들은 도 2와 관련하여 제시된다.
각각의 CU는, 비-배타적 방식으로 예측, 나머지 계산, 변환, 양자화 및 엔트로픽 코딩을 포함하는 오퍼레이션들의 시퀀스로 구성되는 인코딩 또는 디코딩 오퍼레이션을 겪을 것이다. 이러한 오퍼레이션들의 시퀀스는 종래 기술로부터 알려져 있으며, 도 3과 관련하여 제시된다.
프로세싱될 제 1 블록 CTU가 현재 블록(b)으로서 선택된다. 예컨대, 이것은 (사전식 순서로) 제 1 블록이다. 이 블록은 N×N 픽셀들을 포함하며, N은 넌-제로 정수인데, 예컨대, HEVC 표준에 따라 64와 동일하다.
1 내지 L로 번호가 매겨지는 가능한 PU 블록들로의 L번의 파티셔닝들이 있으며, 블록(b)에 대해 사용되는 파티셔닝은 파티셔닝 번호(l)에 대응한다는 것이 가정된다. 예컨대, "쿼드 트리"-타입 커팅의 규칙적 모드에 따라, 사이즈 4x4, 8x8, 16x16, 및 32x32의 서브-블록들로 4번의 가능한 파티셔닝들이 있을 수 있다. 이전에 언급된 바와 같이, 일부 PU 블록들은 직사각형일 수 있다.
단계(E1) 동안, 오리지널 블록(b)의 예측(Pr)이 결정된다. 그것은 알려진 수단에 의해, 통상적으로 모션 보상(이전에 디코딩된 레퍼런스 이미지로부터 비롯되는 블록)에 의해 또는 인트라 예측(ID 이미지에서 현재 블록에 바로 인접하는 디코딩된 픽셀들로부터 구성되는 블록)에 의해 구성되는 예측 블록이다. P에 관련된 예측 정보는 비트 스트림(TB) 또는 압축 파일(FC)로 인코딩된다. 여기서, K개의 가능한 예측 모드들(m1, m2, ..., mK)(K는 넌-제로 정수임)이 있다고 가정된다. 예컨대, 현재 블록(b)에 대해 선택된 예측 모드는 모드(mk)이다. 일부 예측 모드들은 인트라-타입 예측과 연관되고, 다른 예측 모드들은 인터(INTER)-타입 예측과 연관되며, 다른 예측 모드들은 병합(MERGE)-타입 예측과 연관된다.
단계(E2) 동안, 오리지널 나머지(R)는 현재 블록(b)에서 현재 블록(b)의 예측(Pr)으로부터 R = b-Pr의 차감에 의해 형성된다.
단계(E3) 동안, 나머지(R)는 RT로 불리는 변환된 나머지 블록으로 DCT-타입 변환에 의해 변환되거나, 또는 웨이브릿들로 변환되며, 둘 모두는 기술분야의 당업자들에게 알려져 있고, 특히, DCT 및 웨이브릿 변환용 JPEG2000에 대한 JPEG/MPEG 표준들에서 구현된다.
E4에서, 변환된 나머지(RT)는 통상적인 양자화 수단, 예컨대, 스칼라 또는 벡터에 의해, 양자화된 나머지 블록(RQ)으로 양자화되며, 이 양자화된 나머지 블록(RQ)은 이 나머지 블록(RQ)이 포함하는 픽셀들의 개수, 예컨대 Nb(Nb는 넌-제로 정수임)만큼의 계수들을 포함한다. 최신 기술에서 알려진 방식으로, 이들 계수들은, 단차원 벡터 RQ [i](인덱스(i)는 0 내지 Nb-1에서 변함)를 구성하기 위하여 미리결정된 순서로 스캐닝된다. 인덱스(i)는 계수 RQ [i]의 주파수로 불린다. 통상적으로, 이들 계수들은 주파수의 오름차순으로, 예컨대, JPEG 고정 이미지 인코딩 표준으로부터 알려져 있는 지그재그 경로에 따라 스캐닝된다.
단계(E5) 동안, 나머지 블록(RQ)의 계수들의 진폭 정보는, 예컨대 Huffman 인코딩 기술 또는 산술 인코딩 기술에 따라, 엔트로픽 코딩에 의해 인코딩된다. 본원에서, 진폭에 의한 것은, 계수의 절대 값으로 여겨진다. 통상적으로, 계수가 넌-제로라는 사실을 표현하는 정보를 각각의 계수에 대해 인코딩하는 것이 가능하다. 이후, 각각의 넌-제로 계수에 대해, 진폭에 관련된 정보의 하나 또는 그 초과의 피스들이 인코딩된다. 인코딩된 진폭들(CA)이 획득된다. 일반적으로, 넌-제로 계수들의 부호들은 단순히 비트 0 또는 1로 코딩되며, 각각의 값은 주어진 극성에 대응한다. 그러한 인코딩은 효율적인 성능들을 제공하는데, 그 이유는 변환으로 인해, 인코딩될 진폭들의 값들이 대체로 0과 동일하기 때문이다.
선행 단계들(E1 내지 E5)은 현재 블록(b)의 가능한 l번의 파티셔닝들에 대해 반복된다. 파티셔닝 l의 경우, 현재 블록(b)의 서브-블록들 CU 각각은 위에서 설명된 바와 같이 프로세싱되며, 예측 타입(인터 또는 인트라)은 각각의 CU에 대해 허가된다. 다시 말해서, 서브-블록 CU의 서브-블록들 PU는 전부, 동일한 예측 타입을 겪는다.
예컨대, 가능한 파티셔닝 I 각각에 대한 코딩된 데이터는 레이트-왜곡 기준에 따라 경쟁되고, 이러한 기준에 따라 최상의 결과를 획득하는 파티셔닝이 최종적으로 채택된다.
이미지 I1의 다른 블록들은, 시퀀스의 후속 이미지들에 대해서와 동일한 방식으로 프로세싱된다.
변환 단계는 이러한 비디오 코딩 방식에서 중대한 역할을 수행하는데, 실제로, 그것은 양자화 오퍼레이션 전에 정보를 집중시킨다. 따라서, 인코딩 전의 잔여 픽셀들의 세트는, 동일한 정보를 표현하는 넌-제로 주파수의 주파수들로 또한 호칭되는 적은 수의 변환된 계수들로 표현된다.
따라서, 많은 수의 계수들을 송신하는 대신에, 픽셀들의 블록을 신뢰가능하게 재구축하기 위해 단지 적은 수만이 필요할 것이다.
변환의 효율성은 일반적으로, 코딩 이득의 형태로 또한 주어지는 에너지 집중 기준에 따라 측정되는데, 이는, 주어진 비트 레이트에 대한, 공간 도메인보다는 변환된 도메인에서 코딩이 이루어질 때의 왜곡의 감소(평균 제곱 에러에 의해 표현됨)를 표현한다.
Figure pct00001
는 변환된 도메인에서 수행된 양자화 이후의 평균 제곱 에러를 나타내고,
Figure pct00002
는 공간 도메인에서의 동일한 정밀도를 갖는 양자화에 대한 제곱 에러, 즉, 프로세싱 전의 잔여를 나타낸다.
이러한 표기법들에 따라, 이후 코딩 이득이 다음과 같이 표현된다:
Figure pct00003
일반적으로 이러한 이득은 dB 단위로 표현된다.
Figure pct00004
변환들의 사용에 의한 왜곡에서 실현되는 이득은 또한 비트 레이트의 이득으로 전사(transcribe)될 수 있는데, 높은 비트 레이트에서, 6.02의 값으로 나눈 dB 단위 이득은, 픽셀 당 비트로 표현되는 실제의 비트 레이트 경제성을 근사화하는 것을 가능하게 한다.
이미지 및 비디오 인코딩에서, 가장 많이 사용되는 변환들은 선형, 직교, 또는 준-직교 변환들(4x4, 8x8 등)이다. 선형 변환은 후속하는 바와 같이 매트릭스로 표현될 수 있다. 직교 변환은, 역변환 매트릭스가 직접 변환 매트릭스의 전치(transposition)라는 사실을 특징적인 특성으로 갖는다. 따라서, 이러한 변환은 다음의 특성을 갖는다:
Figure pct00005
여기서, A는 직접 변환이 있는 매트릭스이고, I는 아이덴티티 매트릭스이고, 그리고 c는 수치 값이다. c가 1인 경우, 매트릭스 A는 정규 직교이다. 자신의 인버스(inverse)가 곱해진 준-직교 매트릭스는 하나의 팩터 내의 아이덴티티 매트릭스에 가까운 근사한 양을 갖는다.
가장 많이 사용되는 변환들은 코사인 베이스들에 기반한다. 따라서, 대부분의 이미지 및 비디오 압축 표준들에 DCT가 존재한다. 최근, HEVC 표준이 또한, 4x4 사이즈 블록들의 경우에서의 특정 나머지들의 코딩을 위해 DST(Discrete Sine Transform)를 도입했다.
사실, 이러한 변환들의 근사들이 사용되며, 계산들은 정수들로 수행된다. 일반적으로, 변환 베이스들은 주어진 정밀도(일반적으로 8 비트)를 갖는 가장 가까운 정수로 근사화된다.
예로서, 도 4a 및 도 4b와 관련하여, 4x4 사이즈의 HEVC 표준 블록들에 의해 사용되는 변환들이 제시된다.
이들은 DCT 및 DST 변환들이다. 이러한 테이블에서 제시되는 값들은 준-정규 직교 변환들을 복원하기 위해 128로 나눠질 것이다.
실제로, 픽셀들의 블록은 다음의 오퍼레이션들에 의해 변환된다:
Figure pct00006
A는 사이즈 N×N의 변환 매트릭스를 나타내고, x는 잔여 픽셀들 또는 변환될 픽셀들(공간 도메인)을 표현하고, X는 변환된 도메인(주파수 도메인으로 호칭됨)의 블록이고, 그리고 t는 전치 오퍼레이터이다.
공간 도메인의 블록이 다음과 같이(여기서는 4x4로) 기입된다:
Figure pct00007
변환된 도메인의 픽셀들의 블록은 다음과 같은 형태를 취한다:
Figure pct00008
매트릭스 A는 이러한 경우에 4x4 매트릭스의 형태를 취하며, 계수들은 도 4a 및 도 4b의 테이블들에 제시된 것들과 동일하다.
따라서, 위에 제시된 수학식은 다음과 같이 진행된다.
· 블록 x가 전치된다.
· 따라서, 매트릭스 A는 픽셀들의 라인들에 적용된다.
· 그 후, 결과
Figure pct00009
가 전치된다.
· 그 후, 매트릭스 A의 적용은 이러한 결과에 기반한다.
이들 오퍼레이션들의 조합은 이후, 라인들을 변환한 후 컬럼들을 변환할 것이다.
코딩 관점에서 등가이지만 수학적 관점에서는 상이한 기입이 다음을 수행하는 것으로 이루어진다:
Figure pct00010
이러한 경우에서, 컬럼들이 먼저 변환된다.
인용된 종래 기술에서 설명된 바와 같이, 라인들마다의 변환들은 상이할 수 있다. 전술한 공식들은, 예컨대, 컬럼들을 먼저 오퍼레이팅(operate)한 후 라인들을 오퍼레이팅하기를 원한다면, 이러한 경우까지 확장될 수 있다:
Figure pct00011
L은 라인-특정 변환이고, C는 컬럼-특정 변환이다.
라인들을 미리 오퍼레이팅하기 위해, 다음의 수학식이 기입될 수 있다:
Figure pct00012
이들 마지막 2개의 공식들을 또한 픽셀들의 직사각형 블록들을 프로세싱하는 것을 가능하며, 따라서, 제 1 단계에서 8×8 컬럼 변환이 4×8 블록을 오퍼레이팅할 수 있고, 제 2 단계에서, 변환된 계수들을 최종적으로 획득하기 위해, 4×4 라인 변환이 결과적인 블록을 오퍼레이팅할 것이다.
따라서, 전과 동일한 방식으로 기입된다:
Figure pct00013
라인-컬럼으로 또는 라인-컬럼 방향으로 2개의 별개의 변환들이 이루어진다는 것이 확인될 수 있다. 따라서, 공간 신호가 라인 벡터들, 그 후에 컬럼들 또는 컬럼들, 그리고 그 후에 라인들에 의해 역상관된다.
역상관은 실제로 변환에서 중요한 양상이다. 양호한 역상관을 보장하는 것은 양호한 코딩 이득을 획득하는 것을 가능하게 한다.
위에서 제시된 변환 오퍼레이션들은 라인, 그 후에 컬럼 역상관 또는 컬럼, 그리고 그 후에 라인 역상관에 의해 개별적으로 수행된다. 이들은 소위 분리가능한 변환들이다.
결과적으로, 분리가능한 변환들은 공간 도메인의 픽셀들의 완전한 역상관, 특히 x0 및 x5와 같은 대각선 엘리먼트들의 역상관을 허용하지 않는다.
완전한 역상관을 가능하게 하기 위해, 비-분리가능한 변환을 수행하는 것이 가능하다. 이를 수행하기 위해, 본 발명자들은 아래의 오퍼레이터를 적용한다:
Figure pct00014
Ans는 수행될 비-분리가능한 프로세싱을 나타내며, 유리하게는 정규 직교 또는 준-정규 직교로서 선택되며, 그 후에,
Figure pct00015
Figure pct00016
는 벡터들로 형성된 공간 도메인에서 각각 프로세싱된 픽셀들이다. 따라서, 4x4 블록의 경우,
Figure pct00017
Figure pct00018
는 아래의 형태를 취한다:
Figure pct00019
따라서, Ans는 이 예에서, 16x16의 사이즈를 갖고, 더 일반적으로는 N2 픽셀들로 구성된 NxN 사이즈 블록에 대해 N2xN2의 사이즈를 갖는다.
이러한 방식으로, 비-분리가능한 변환 Ans는 대각선 상관들을 포함한, 공간 도메인의 픽셀들 간의 모든 상관들을 정면으로 프로세싱할 수 있다. 예컨대, 4x4 블록의 경우, 픽셀 x0과 x5 간의 직접적 상관이 감소된다.
결과적으로, 비-분리가능한 변환들은 압축에서 더 효율적이지만, 그럼에도 불구하고 비-분리가능한 변환들은 특정 수의 단점들을 갖는다:
● 비-분리가능한 변환들이 사이즈 N2xN2의 변환들이므로, 분리가능한 변환을 수행하는 2개의 매트릭스들에 대해 요구되는 2xN2 값들과 비교하여, N4 값들이 저장되어야 한다. 이는 이미지/비디오 인코더/디코더를 구현하는 비용에 영향을 주는데, 이를 위한 고속 메모리들은 고비용이다.
● 변환 알고리즘은 증가된 사이즈의 벡터를 핸들링하기 위한 상당히 더 큰 수의 오퍼레이션들을 요구한다.
그러므로, 분리가능한 변환들과 비교하여, 비-분리가능한 변환들은 도 5의 테이블에 도시된 바와 같은 훨씬 더 높은 복잡성을 요구한다. 이러한 테이블에서, 분리가능하지 않은(Nsep) 그리고 분리가능한(Sep) 변환들의 구현들과 관련된 오퍼레이션들 및 메모리의 양들이 4x4 및 8x8 블록들의 프로세싱에 대해 각각 리스트된다.
확인될 수 있는 바와 같이, 비-분리가능한 변환들은, 분리가능한 변환들과 비교하여, ROM 및 많은 오퍼레이션들에서 상당한 영향을 미친다. 특히, 오퍼레이션들의 관점에서, 복잡성 비율은 사이즈 MxM의 블록에 대해 M/2보다 더 크다.
부가하여, 번호 US2013/0003828 하에 공개된 특허 출원은, 블록에 대해 선택된 예측 모드, 예컨대 특정 방향의 인트라-방향 예측 모드에 기반하여 이러한 블록의 컬럼들 및 라인들에 연속적으로 적용될 변환들의 타입들을 선택하는 이미지 인코딩 방법을 개시한다. 더 정확하게, 이 방법은 제 1 선형 변환을 현재 블록의 라인들에 연관시키고(예컨대, DCT), 제 1 선형 변환과 별개인 제 2 선형 변환을 제 1 변환에 의해 변환된 블록의 컬럼들에 연관시킨다.
장점은, 블록의 라인들의 세트 및 컬럼들의 세트가 반드시 동일한 통계적 특성들을 갖는 것은 아니라는 사실에 적응하는 것이다.
종래 기술의 단점들은 아래와 같다:
● 비-분리가능한 변환의 경우, 알고리즘 복잡성이 상당히 중요하다. 그러므로, 매우 높거나 심지어 상당한 구현 비용을 요구한다.
● 분리가능한 변환들의 경우, 분리가능한 변환들은 라인들 또는 컬럼들에 대해 동일하게 수행되는데, 특히, 각각의 컬럼들 또는 라인들의 세트가 각각 동일한 통계를 공유한다고 묵시적으로 가정된다. 분리가능한 변환들은 현재 인코더들에서 가장 많이 사용되는 변환들인데, 그 이유는 분리가능한 변환들이 압축 효율과 인코딩 비용 간의 절충을 제공하기 때문이다. 그러나, 분리가능한 변환들은 비-분리가능한 변환들의 압축 성능들에 도달하지는 못한다.
본 발명은 실제로 상황을 개선한다.
본 발명의 목적은 특히, 종래 기술의 이러한 단점들을 극복하는 것이다.
더 정확하게, 본 발명의 목적은, 계산 및 메모리 자원들의 상당한 증가를 요구하지 않으면서, 디지털 이미지 인코더의 압축 성능을 개선하는 솔루션을 제안하는 것이다.
이러한 목적들 뿐만 아니라 이하에서 나타나게 될 다른 목적들은 디지털 이미지를 인코딩하기 위한 방법에 의해 달성되고, 상기 이미지는 정의된 순서로 프로세싱되는 픽셀들의 복수의 블록들로 분할되고, 상기 방법은 미리결정된 사이즈들을 갖는 현재의 블록에 대해 구현되는 다음의 단계들을 포함한다:
- 현재의 블록을 변환된 블록으로 변환하는 단계 ― 상기 블록은 계수들을 포함하고, 상기 단계는 2개의 연속적인 변환 서브-스텝들을 구현하고, 제 1 서브-스텝은 현재의 블록에 적용되고, 제 2 서브-스텝은 제 1 서브-스텝으로부터 기인하는 중간 블록에 적용되고, 상기 중간 블록은 계수들을 포함함 ―, 및
- 변환된 블록의 계수들을 양자화하고 인코딩하는 단계.
본 발명에 따르면, 현재의 블록과 중간 블록 중에서 변환될 블록에 적용되는, 상기 변환 서브-스텝들 중 적어도 하나 이전에, 방법은, 변환될 블록에서 적어도 제 1 및 제 2 별개의 벡터들을 형성하는 예비 단계를 포함하고, 그러한 벡터는 변환될 블록의 사이즈들 중 하나와 동일한 길이의 시퀀스의 픽셀들, 개별적으로 인접 계수들을 포함하고, 상기 적어도 서브-스텝은 상기 적어도 하나의 제 1 벡터에 제 1 변환을 적용하고, 상기 제 1 변환과 별개인 적어도 하나의 제 2 변환을 상기 블록의 상기 적어도 하나의 제 2 벡터에 적용하는 단계를 포함한다.
본 발명에 따르면, 현재의 블록에 적용되는 분리가능한 변환의 2개의 연속적인 단계들 중 적어도 하나는 현재의 블록의 라인, 개별적으로 컬럼의 사이즈와 동일한 사이즈를 갖고 현재의 블록의 이웃하는 엘리먼트들의 시퀀스로부터 형성되는 별개의 벡터들에 적용되는 적어도 2개의 별개의 변환들을 구현한다.
따라서, 본 발명은, 현재의 블록에서의 2개의 벡터들에 대한 상이한 프로세싱을 제공하는, 공간 도메인에서의 현재의 블록의 픽셀들을 주파수 도메인에서의 계수들로 변환하는 것에 의한 이미지 코딩의 완전히 신규하고 창의적인 접근법에 따른다.
코딩될 이미지의 동일한 블록의 라인들 또는 컬럼들의 세트에 의해 공유된 공통 통계들의 감소 가설에 기반하는 종래 기술에 반하여, 본 발명은, 블록과 별개이고 동일한 사이즈의 2개의 벡터들이 적절한 선형변환을 요구하는 상이한 통계적인 특성들을 가질 수 있다는 사실을 고려한다.
본 발명은 종래 기술과 동일한 알고리즘 복잡성을 제시하지만, 코딩 성능을 개선하는 것, 즉, 주어진 비트 레이트에 대해 코딩된 이미지 시퀀스의 품질을 개선하는 것, 또는 주어진 품질에 대해 인코딩 비트 레이트를 낮추는 것을 가능하게 한다.
본 발명의 유리한 특징에 따르면, 방법은, 적어도, 현재의 블록의 적어도 하나의 코딩 파라미터에 기반하여, 상기 벡터들에 적용될 상기 적어도 2개의 별개의 변환들을 결정하기 위한 사전 단계를 더 포함한다.
코딩 파라미터와 변환들의 선정을 연관시키는 것의 장점은 당해 파라미터에 의해 유도되는 블록의 통계적인 변동들에 적응한다는 것이다. 예컨대, 고려되는 인코딩 파라미터는 블록 사이즈, 또는 그에 적용되는 예측 모드이다.
예컨대, 예비 실험들은 적어도 2개의 선형변환들과 고려 하의 코딩 파라미터를 연관시키기 위해 사용된다. 장점은 인코더가 더 복잡하게 되지 않는다는 것이다.
본 발명의 다른 양상에 따르면, 결정 단계는 메모리에 저장된 정보를 판독하는 단계를 포함하고, 상기 정보는 적어도 코딩 파라미터, 제 1 변환의 식별자, 블록 또는 중간 블록의 제 1 벡터의 적어도 하나의 식별자, 제 1 변환과 별개인 적어도 하나의 제 2 변환의 식별자, 및 상기 블록의 적어도 하나의 제 2 벡터 식별자를 포함한다.
장점은 부가적인 정보가 비트 스트림에서 시그널링되지 않고, 메모리에 저장된 데이터가 디코더 측 상에 복제된다는 것이다.
예컨대, 메모리는 데이터베이스에 따라 체계화된다. 데이터베이스에서의 엔트리는 벡터 식별자들에 적용될 식별자들을 코딩 파라미터 변환과 연관시킨다.
본 발명의 일 양상에 따르면, 상기 변환 단계는 중간, 개별적으로 변환된 블록에서의 변환된 벡터들의 계수들을 재배열하는 서브-스텝을 포함한다.
변환될 블록에서 형성된 벡터들에 대한 선형변환들의 적용 후에, 획득된 계수들은 계수들의 블록을 형성하기 위해 재배열된다. 예컨대, 제 1 변환된 벡터의 계수들은 블록의 제 1 라인, 개별적으로 제 1 컬럼 상에 배치된다. 이러한 특정 실시예는 간단하고 인코더에 거의 영향을 미치지 않는다는 장점을 갖는다.
본 발명의 또 다른 양상에 따르면, 인코딩 방법은,
- 복수의 미리결정된 모드들 중에서 선택된 예측의 모드에 따라 사전에 프로세싱된 적어도 하나의 블록으로부터 현재의 블록의 값들을 예측하는 단계,
- 현재의 블록의 오리지널 값들로부터 예측된 값들을 감산함으로써 잔여 블록을 계산하는 단계
를 더 포함한다.
본 발명에 따르면, 변환 단계가 잔여의 현재의 블록에 적용되고, 상기 적어도 하나의 코딩 파라미터는 현재의 블록의 예측 모드이다.
예측의 모드가 그 자체로 잔여 블록의 통계적인 특성들을 표현하고, 이러한 것이 그러한 코딩 파라미터의 특정 값과 선형변환들의 특정 선정을 연관시키는 것과 관련된다는 것이 발견되었다.
본 발명의 다른 양상에 따르면, 방법은 상기 적어도 하나의 제 1 변환 및 상기 적어도 하나의 제 2 변환의 식별 정보 코딩의 단계를 포함한다.
사용된 선형 변환들에 관한 정보는 비트 스트림에서 송신된다. 이 실시예의 장점은, 이것이 각각의 프로세싱된 블록에 대한 인코더에 의한 변환들의 동적 결정들에 적합하다는 것이다.
또 다른 양상에 따르면, 제 1 변환은 블록의 컬럼의 사이즈들에 대해 각각 라인의 사이즈와 동일한 사이즈들을 갖는 벡터들의 제 1 서브-세트에 적용되며, 상기 적어도 하나의 제 2 변환은 상기 블록의 컬럼의 사이즈들에 대해 각각 블록의 라인의 사이즈들과 동일한 사이즈들의 벡터들의 제 2 서브-세트에 적용된다.
예컨대, 변환 서브-스텝 마다 라인들 또는 컬럼들의 각각의 변환들인 2개의 변환들이 구현된다. 이 2개의 변환들은 예컨대 현재 블록의 예측 모드와 연관된다. 이 실시예는, 벡터 식별자들과 변환 식별자들 사이의 연관들을 저장하는 비용과 압축 성능 사이의 타협을 달성한다.
본 발명의 또 다른 양상에 따르면, 상기 적어도 하나의 변환 서브-스텝은 그 블록에 형성된 블록의 라인의 사이즈, 또는 컬럼의 사이즈와 동일한 사이즈의 벡터 마다 별개의 변환을 구현한다.
이 실시예의 장점은, 프로세싱될 블록의 각각의 벡터의 통계치들에 정밀하게 적응될 수 있고 그리고 품질 및/또는 압축의 측면에서 인코더의 성능들을 향상시킬 수 있게 만든다는 것이다.
본 발명의 다른 양상에 따르면, 형성된 벡터들은 다음을 포함하는 그룹에 속한다:
- 현재 블록의 라인의 각각의 계수들의 형성된 픽셀들의 "라인" 벡터들;
- 현재 블록의 컬럼의 각각의 계수들의 형성된 픽셀들의 "컬럼" 벡터들;
- 블록의 적어도 2개의 라인들로부터 현재 블록에 인접하는 인접 픽셀들 또는 계수들에 의해 형성된 블록의 라인의 길이와 동일한 길이의 벡터들;
- 블록의 적어도 2개의 컬럼들로부터 현재 블록에 인접하는 인접 픽셀들 또는 계수들에 의해 형성된 블록의 컬럼의 길이와 동일한 길이의 벡터들.
형성된 벡터들은 인코더의 복잡성을 증가시키지 않기 위해 현재 블록의 라인들 또는 컬럼들과 동일한 사이즈이다.
본 발명에 따른 벡터는 반드시 배타적으로 동일한 라인의 엘리먼트들로만 형성되어야 하는 것은 아니다. 비-선형 벡터들은 유리하게 이웃 라인들로부터 기인하는 블록의 이웃 엘리먼트들로부터 형성될 수 있는데, 이는 고려된 블록의 인접 엘리먼트들, 즉, 오프-라인과 컬럼들 사이의 특정 상관들의 장점을 취할 수 있게 만든다. 이 경우는 특히 대각선 각도 예측 모드들에 대해 존재하는데, 이 모드들의 경우 인코딩될 블록들은 대각선 패턴들을 갖는다.
그의 다양한 실시예들에 방금 설명된 방법은 유리하게, 현재 블록에 대해 구현될 수 있는 미리결정된 사이즈의 다음의 유닛들을 포함하는 본 발명에 따라 디지털 이미지를 인코딩하기 위한 디바이스에 의해 구현될 수 있다.
- 현재 블록을 변환된 블록으로 변환하는 것(상기 블록은 계수들을 포함하고, 상기 단계는 2개의 연속적인 변환 서브-스텝들을 구현하는데, 이 단계들 중 제 1 서브-스텝은 현재 블록에 적용되고 제 2 서브-스텝은 제 1 서브-스텝으로부터 결과로 나타나는 중간 블록에 적용되고, 상기 중간 블록은 계수들을 포함함), 및
- 변환된 블록의 계수들을 양자화하고 인코딩하는 것.
이러한 디바이스는, 이 디바이스가 현재 블록과 중간 블록 사이에서 소위 변형될 블록이라 지칭되는 블록 내에 적어도 하나의 제 1 및 제 2 별개의 벡터들을 형성하는 유닛을 포함한다는 점에서 특별한데, 여기서 이러한 벡터는 변형될 블록의 사이즈들 중 하나와 동일한 길이의 시퀀스의 인접 계수들인 픽셀들을 포함하고, 그리고 상기 적어도 하나의 서브-스텝은 상기 적어도 하나의 제 1 벡터로의 제 1 변환 및 상기 블록의 상기 적어도 하나의 제 2 벡터로의 (상기 제 1 변환과는 별개의) 적어도 하나의 제 2 변환을 적용하는 것을 포함한다.
상관적으로, 본 발명은 또한 상기 이미지를 대표하는 인코딩된 데이터를 포함하는 비트 스트림으로부터 디지털 이미지를 디코딩하기 위한 방법에 관한 것인데, 상기 이미지는 정의된 순서로 프로세싱된 복수의 픽셀들의 블록들로 분할되며, 상기 방법은 소위 현재 블록인 블록에 대해 구현되는 다음의 단계들을 포함한다:
- 비트 스트림에서 판독된 데이터로부터 변형된 현재 블록의 계수들을 디코딩하는 단계;
- 디코딩된 계수들을 역양자화하는 단계;
- 현재 변환된 블록을 역변환하는 단계(상기 단계는 2개의 연속적인 역변환 서브-스텝들을 구현하는데, 이 단계들 중 제 1 서브-단계는 현재 블록에 적용되고 제 2 서브-단계는 제 1 서브-단계로부터 결과로 나타나는 중간 블록에 적용됨).
본 발명에 따른 디코딩 방법은:
- 상기 적어도 하나의 역변환 서브-스텝이, 현재 변환된 블록 및 중간 블록으로부터, 소위 프로세싱될 블록으로 지칭되는 블록에 적용되며, 이는 프로세싱될 블록의 하나의 라인 또는 하나의 컬럼의 길이와 동일한 길이의 적어도 제 1 벡터에 제 1 역변환을 적용하고 그리고 하나의 라인 또는 하나의 컬럼의 길이와 동일한 길이의 상기 블록의 적어도 하나의 제 2 벡터에 제 1 역변환과는 별개의 적어도 하나의 제 2 역변환을 적용하는 단계를 각각 포함한다는 점; 및
- 추가로, 프로세싱된 벡터들로부터 라인인 각각의 컬럼의 길이들과 동일한 길이들의 인접 픽셀들인 각각의 인접 계수들의 시퀀스들을 포지셔닝함으로써 프로세싱된 블록을 형성하는 서브-스텝을 포함한다는 점에서 특별하다.
본 발명의 일 양상에 따르면, 이 방법은 현재 블록의 적어도 하나의 코딩 파라미터에 적어도 기반하여 프로세싱될 블록의 상기 제 1 및 제 2 벡터들에 적용될 상기 적어도 2개의 별개의 변환들을 결정하기 위한 사전 단계를 더 포함한다.
다른 양상에 따르면, 결정 단계는 적어도 하나의 제 1 변환 및 상기 적어도 하나의 제 2 변환의 식별 정보를 대표하는 코딩된 데이터의 비트 스트림에서의 판독을 포함한다.
본 발명의 또 다른 양상에 따르면, 결정 단계는 프로세싱될 블록에서 제 1 및 제 2 벡터들을 형성하는 이전 서브 스텝을 더 포함한다.
본 발명의 또 다른 양상에 따르면, 결정 단계는 메모리에 저장된 판독 정보를 포함하고, 상기 정보는 적어도, 코딩 파라미터, 제 1 역변환의 식별자, 제 1 벡터의 적어도 하나의 식별자, 제 1 변환의 식별자와는 별개인 적어도 하나의 제 2 변환의 식별자, 및 프로세싱될 블록의 적어도 하나의 제 2 벡터 식별자를 포함한다.
본 발명의 다른 양상에 따르면, 역변환 단계는, 변환의 상기 적어도 하나의 서브 스텝 이전에, 상기 제 1 및 제 2 벡터들에서 프로세싱될 블록의 인접 계수들의 시퀀스들을 재배열하는 서브-스텝을 더 포함하고, 이러한 시퀀스는 프로세싱될 블록의 사이즈 중 하나의 사이즈와 동일한 길이를 갖는다.
따라서, 본 발명에 따른 디코딩 방법은 방금 설명된 코딩 방법의 오퍼레이션에 대한 인버스 오퍼레이션(inverse operation)들을 구현한다.
특히:
역변환의 서브-스텝들은 코딩 방법에 의해 구현된 변환의 오퍼레이션들과 인버스인 오퍼레이션들에 대응한다. 그들은 코딩의 역방향 순서로 서로 수행한다.
프로세싱된 벡터들로부터 도출된 인접 계수들인 각각의 인접 픽셀들의 시퀀스들로부터 프로세싱된 블록을 형성하기 위한 서브-스텝은 코딩 방법에 의해 구현되는, 변환될 벡터들을 형성하는 오퍼레이션의 인버스 오퍼레이션에 대응한다.
상기 제 1 및 제 2 벡터들에서 프로세싱될 블록의 인접 계수들의 시퀀스들을 재배열하는 서브-스텝은 코딩 방법에 의해 구현되는 변환된 블록에서 변환된 벡터들의 계수들을 재배열하는 오퍼레이션의 인버스 오퍼레이션에 대응한다.
그 상이한 실시예들에서 방금 설명된 방법은 상기 이미지를 대표하는 인코딩된 데이터를 포함하는 비트 스트림으로부터 디지털 이미지를 디코딩하기 위한 디바이스에 의해 유리하게 구현되고, 상기 이미지는 정의된 순서로 프로세싱된 픽셀들의 복수의 블록들로 분할되고, 상기 디바이스는 미리 결정된 사이즈들의 블록, 소위 현재 블록에 대해 구현될 수 있는 다음의 유닛들을 포함한다:
비트 스트림에서 판독된 데이터로부터 변환된 현재 블록의 계수들을 디코딩하기 위한 유닛;
디코딩된 계수들을 역양자화하기 위한 유닛;
상기 현재 변환된 블록을 역변환하기 위한 유닛 ― 상기 유닛은 2개의 연속적인 역변환 서브-유닛들을 구현하고, 제 1 서브-유닛은 현재 블록에 적용되고, 제 2 서브-유닛은 제 1 서브-유닛으로부터 결과로 나타나는 중간 블록에 적용됨 ― ;
본 발명에 따르면, 디바이스는 그가:
- 현재 변환된 블록 및 중간 블록으로부터, 프로세싱될 블록으로 지칭되는 블록의 적어도 하나의 역변환 서브-유닛이, 프로세싱될 블록의 하나의 라인 또는 하나의 칼럼의 길이와 동일한 길이의 적어도 제 1 벡터에 제 1 역변환을 적용하고, 그리고 처리될 상기 블록의, 하나의 라인 또는 하나의 칼럼의 길이와 동일한 길이의 상기 블록의 적어도 하나의 제 2 벡터에 제 1 역변환과 별개인 적어도 하나의 제 2 역변환을 적용하는 것을 포함한다는 점; 및
- 역변환 유닛이 프로세싱된 벡터들로부터, 칼럼인 각각의 라인의 길이와 동일한 길이들의 인접 계수들인 각각의 인접 픽셀들의 시퀀스들을 포지셔닝함으로써, 프로세싱된 블록의 역형성 서브-유닛을 더 포함한다는 점에서 특별하다.
본 발명은 또한 디지털 이미지의 인코딩된 데이터를 포함하는 비트 스트림을 반송하는 신호에 관한 것으로, 상기 이미지는 픽셀들의 블록들로 분할된다. 이러한 신호는 그가 현재 블록에 대해:
변환 블록으로의 현재 블록의 변환의 2개의 연속적인 서브-스텝들을 포함하는 변환된 블록으로의 현재 블록의 변환 단계 동안 현재 블록의 코딩 동안에 구현되는, 서로로부터 별개인 적어도 제 1 및 제 2 변환의 식별 정보를 대표하는 코딩된 데이터 ― 적어도 하나의 제 1 벡터에 제 1 변환을 적용하는 단계 및 현재 블록 및 중간 블록 중에서, 변환될 블록으로 지칭되는 블록의 적어도 제 2 벡터에 제 1 변환과 별개인 적어도 하나의 제 2 변환을 적용하는 단계를 포함함 ― ;
인접 픽셀들 또는 인접 계수들의 시퀀스로부터, 변환될 블록에 형성된 적어도 제 1 및 제 2 벡터들을 대표하는 코딩된 데이터 ― 상기 시퀀스는 변환될 블록의 사이즈들 중 하나와 동일한 길이를 가짐 ― 를 포함한다는 점에서 특별하다.
본 발명은 또한, 본 발명에 따른 디지털 이미지를 코딩하기 위한 디바이스 및 본 발명에 따른 디지털 이미지를 디코딩하기 위한 디바이스를 포함하는 컴퓨터 단말에 관한 것이다.
본 발명은 또한, 컴퓨터 프로그램이 프로세서에 의해 실행될 때, 위에서 설명된 디지털 이미지를 인코딩하기 위한 방법의 단계들을 구현하기 위한 명령들을 포함하는 컴퓨터 프로그램에 관한 것이다.
본 발명은 또한, 컴퓨터 프로그램이 프로세서에 의해 실행될 때, 위에서 설명된 디지털 이미지를 디코딩하기 위한 방법의 단계들을 구현하기 위한 명령들을 포함하는 컴퓨터 프로그램에 관한 것이다.
이들 프로그램들은 임의의 프로그래밍 언어를 사용할 수 있다. 그들은 통신 네트워크로부터 다운로딩되고 그리고/또는 컴퓨터-판독가능 매체 상에 레코딩될 수 있다.
마지막으로, 본 발명은, 프로세서에 의해 판독가능하고, 본 발명에 따른, 디지털 이미지의 인코딩 디바이스와 그리고 디지털 이미지를 디코딩하기 위한 디바이스와 통합되거나 또는 통합되지 않으며, 선택적으로 제거가능하고, 위에서 설명된 인코딩 방법을 구현하는 컴퓨터 프로그램 및 디코딩 방법을 구현하는 컴퓨터 프로그램을 각각 저장하는 기록 매체들에 관한 것이다.
본 발명의 다른 특징들 및 장점들은, 첨부된 도면들과 함께 오직 예시적이고 비제한적인 예의 방식으로 주어진 본 발명의 하나의 특정 실시예의 다음의 설명을 읽을 때 명백해질 것이다:
- 도 1(이미 설명됨)은 종래 기술에 따라 인코딩될 디지털 이미지들의 시퀀스 및 이러한 이미지들의 블록들로의 분할을 개략적으로 예시한다;
- 도 2(이미 설명됨)는 종래 기술에 따라 블록을 서브-블록으로 파티셔닝할 다양한 확률들을 도시한다;
- 도 3(이미 설명됨)은 종래 기술에 따라 디지털 이미지를 인코딩하는 방법의 단계들을 개략적으로 도시한다;
- 도 4a 및 도 4b(이미 설명됨)는 종래 기술에 따라 근사화된 주파수 변환들의 2개의 예들을 도시한다;
- 도 5(이미 설명됨)는 분리가능한 변환 복잡성 측정들 및 분리불가능한 변환들의 비교 테이블을 도시한다;
- 도 6은 본 발명의 실시예에 따른 디지털 이미지의 인코딩 방법의 단계들을 개략적으로 도시한다;
- 도 7a는 현재 블록의 엘리먼트들을 예시한다;
- 도 7b, 도 7c 및 도 7d는 본 발명에 따라, 도 7a의 현재 블록의 엘리먼트들로부터 "행들" 및 "컬럼들" 벡터들을 형성하는 예들을 예시한다;
- 도 8a는 현재 블록의 픽셀들에서 에너지 값들의 추정의 제 1 예를 도시하고, 도 8b는 추정된 에너지 레벨들로부터 블록에서 결정된 균일 지역들을 도시한다;
- 도 9a는 현재 블록의 픽셀들에서 에너지 값들의 추정의 제 2 예를 도시하고, 도 9b는 추정된 에너지 레벨들로부터 블록에서 결정된 균일 지역들을 도시한다;
- 도 10은 본 발명의 제 2 실시예에 따라 벡터들을 형성하고 형성된 벡터들을 변환하는 단계들을 설명한다;
- 도 11은 종래 기술에 비해 이러한 제 2 실시예에 따른 인코딩 방법에 의해 획득되는 압축 이득들을 도시한다;
- 도 12는 본 발명의 제 3 실시예에 따라 벡터들을 형성하고 형성된 벡터들을 변환하는 단계들을 설명한다;
- 도 13은 종래 기술에 비해 이러한 제 3 실시예에 따른 인코딩 방법에 의해 획득되는 압축 이득들을 도시한다;
- 도 14는 본 발명의 실시예에 따라 디지털 이미지를 디코딩하기 위한 방법의 단계들을 개략적으로 도시한다;
- 도 15는 본 발명의 일 실시예에 따른 디지털 이미지의 코딩 디바이스 및 디지털 이미지를 디코딩하기 위한 디바이스의 단순화된 구조의 예를 도시한다.
본 발명의 일반적인 원리는 코딩될 블록의, 각각 컬럼인 라인의 사이즈와 동일한 사이즈의 상이한 벡터들로의 별개의 변환들의 적용에 의존한다.
이는, M개의 이미지들 I1, I2, ... IM의 시퀀스로 구성된 오리지널 비디오를 고려하며, M은 도 1과 관련하여 도시된 것과 같은 넌-제로 정수이다. 이미지들은 인코더에 의해 인코딩되고, 인코딩된 데이터는 통신 네트워크를 통해 디코더에 송신되는 비트 스트림 TB 또는 예컨대, 하드 디스크 상에 저장될 압축된 파일 FC에 삽입된다. 디코더는 인코딩된 데이터를 추출하고, 그 다음, 데이터는 인코더 및 디코더에 공지된 미리결정된 순서로, 예컨대, 시간 순서 I1, 그 다음 I2, ... 등으로 디코더에 의해 수신 및 디코딩되고, 순서는 실시예에 따라 상이할 수 있다.
도 6과 관련하여, 이제, 본 발명의 실시예에 따른 인코딩 방법의 단계들을 고려한다.
단계(T0) 동안, 프로세싱될 블록, 소위 현재 블록 x가 선택된다. 예컨대, 이는 블록 CTU를 파티셔닝함으로써 획득되는 CU, 정사각형 또는 직사각형 블록이다.
아래에서, 이러한 블록의 사이즈들은 높이 H 및 폭 W이고, 이들은 넌-제로 정수들인 것으로 고려된다. 예시적인 예로서, WxH = 4X4 블록인 특수한 경우를 고려한다.
현재 블록 x에 변환을 적용하는 변환 단계(T2)를 고려하자. 현재 블록을 변환하는 단계(T2)는 분리가능하고, 선형 변환의 2개의 서브-스텝들, 즉,
- WxH 계수들을 포함하는 중간 블록 XI를 제공하기 위해, 사이즈 W를 갖는 블록 x의 벡터들 VI0 내지 VIH에 선형 변환이 적용되는 제 1 서브-스텝(T21);
- 변환된 블록 X를 제공하기 위해, 사이즈 H를 갖는 블록 XI의 벡터들 Vc0 내지 VcW-1에 선형 변환이 적용되는 제 2 서브-스텝(T24)
으로 구현된다.
본 발명에 따르면, 제 1 서브-스텝은 블록 x의 벡터들 Vc0 내지 VcW-1에, 그리고 제 2 서브-스텝은 블록 XI의 벡터들 VI0 내지 VIH-1에 동등하게 잘 적용될 수 있음을 주목한다.
직사각형 블록들을 프로세싱하기 위해, 라인들 및 컬럼들 상에 상이한 사이즈들의 변환들이 작용되는 것으로 이해된다.
본 발명에 따르면, 2개의 변환 서브-스텝들(T21, T24) 중 적어도 하나는 적어도 2개의 별개의 선형 변환으로부터 구현되는데, 하나는 픽셀들 x의 블록에 또는 계수들 XI의 중간 블록에 형성되고 블록의 라인과 동일한 사이즈의 적어도 하나의 제 1 벡터에 적용되고, 다른 하나는 동일한 블록에 형성되고 블록의 라인과 동일한 사이즈의 적어도 하나의 제 2 벡터에 적용된다. 2개의 별개의 선형 변환들을 사용한 서브-스텝(들)의 완료 시에, T22, T25에서 사이즈 MxN의 블록 XI, X에서 재배열된 계수들을 갖는 변환된 벡터들을 획득한다.
이와 관련하여, 블록에서 계수들을 재배열하는 상이한 방식들이 존재하고, 인코더에 의해 사용되는 방식은 디코더에 알려져야 함을 주목한다. 이러한 목적으로, 이러한 계수들의 재배열 모드를 표현하는 정보는 인코딩되고 비트 스트림에서 디코더에 송신될 수 있다.
대안적으로, 미리 결정된 재배열 규칙들이 인코더 및 디코더에 의해 공유될 것이다.
따라서, 변환 T2는, T3에서 스캐닝 순서에 의해 스캐닝되고, T4에서 양자화되고 T5에서 코딩될 준비가 된 변환된 계수들을 포함하는 블록 X를 생성한다. 단계들(T3 및 T4)는 상호교환될 수 있음을 주목한다.
현재 블록의 프로세싱의 완료 시에, 사전에 정의된 코딩 스캐닝 순서가 주어지면, 현재 블록 x가 인코딩 유닛에 의해 프로세싱될 마지막 블록인지 여부를 T6에서 테스트한다. 마지막 블록이라면, 인코딩 유닛은 자신의 프로세싱을 완료하였고, 인코딩된 데이터는 비트 스트림 TB로 삽입된다. 마지막 블록이 아니라면, 다음 단계는 다음 블록을 선택하는 단계(T0)이다. 이러한 블록은 프로세싱될 현재 블록이 되고, 다음 단계는 현재 블록에 적용될 변환들을 결정하는 예측 단계(T1)(이미 설명됨)이다.
그 다음, 비트 스트림 TB는 디코더에 송신될 수 있다.
변환들(T1)을 결정하는 스텝(T1) 및 변환하는 스텝(T2), 특히, 벡터들을 형성하는 서브-스텝들(T20, T23), 변환들을 형성된 벡터들에 적용하는 서브-스텝들(T21, T24) 및 변환된 계수들을 블록으로 배열하는 서브-스텝들(T22, T25)의 다양한 실시예들이 이제 상세히 설명될 것이다.
본 발명의 제 1 실시예에 따라, 상기 적어도 2개의 변환들은 제 1 변환 서브-스텝(T21) 동안에 구현된다.
예컨대, 제 1 서브-스텝(T21)이 현재 블록(x)의 라인의 사이즈와 동일한 사이즈의 벡터들에 대해 변환들을 구현하고, 제 2 서브-스텝(T24)이 중간 블록(Xl)의 엘리먼트들로부터 형성되고 컬럼의 사이즈와 동일한 사이즈의 벡터들에 대해 적어도 하나의 변환을 구현한다고 가정된다.
이러한 경우에, 상기 방법은 현재 블록(x)의 픽셀들로부터 길이(W)의 H개의 벡터들(Vl0-VlH-1)을 형성하는 예비 스텝(T20)을 구현한다.
이롭게도, 이들 벡터들은 현재 블록의 각각의 엘리먼트가 단일 벡터에서 사용되도록 형성된다.
도 7a와 관련하여, 우리는 예로서 사이즈 4x4 의 현재 블록(x)을 고려한다. 이것은 16개의 계수들(x0 내지 x15)을 포함한다.
도 7b와 관련하여, 블록(x)의 라인들로부터 형성된 벡터들(Vl0 내지 Vl3)의 제 1 예가 도시된다. 이러한 타입의 벡터(Vlh)는 현재 블록(x)의 라인 번호(h)에 대응한다.
도 7d와 관련하여, 블록(x)의, 쌍들 간에 이웃하는 4개의 엘리먼트들로부터 형성된 벡터들(V'i0 내지 V'l3)의 제 2 예가 도시된다. 이들 아이템들은 동일한 라인에서 비롯되지 않는다. 예컨대, 벡터(Vl'0)는, 제 1 라인의 엘리먼트(x0)와 이웃하는, 블록의 제 1 라인의 3개의 연속적인 엘리먼트들(x0, x1, x2) 및 블록의 제 2 라인의 1개의 엘리먼트(x4)를 포함한다.
라인의 사이즈와 동일한 사이즈의 이러한 타입의 벡터가 블록에 존재하는 텍스처 불연속성을 모니터링하고 벡터의 엘리먼트들 간의 상관을 더 양호하게 이용하는데 이롭게 사용될 수 있다는 것이 이해된다.
이어서, 본 발명에 따른 코딩 방법은 형성된 벡터들(Vl0 내지 HIV-1)에 적용될 적어도 2개의 별개의 선형 변환들(L0, L1), 형성된 적어도 벡터(Vlh1)에 적용될 적어도 하나의 제 1 변환(L0) 및 적어도 다른 벡터(Vlh2r)에 적용될 적어도 하나의 제 2 변환(L1)을 결정하는 스텝(T2)을 구현하고, h1, h2는 0과 H-1 간의 정수들이고, h1 ≠ h2이다.
구별되는 변환들은 DCT 또는 DST 타입 또는 인코딩을 위한 임의의 다른 유효 선형 변환일 수 있다. 따라서, 최적의 변환들은 상관, 즉, KLT("Karhunen-Loeve Transform")에 사용되거나, 2011 년에 컨퍼런스 DCC("Data Compression Conference")의 회보에 공개된 "Robust learning of 2D separable transforms for next generation video coding"란 명칭의 Sezer 등에 의해 기사에 제공된 비트 레이트 왜곡 기준으로 최적화될 수 있다.
이롭게도, 예컨대, 블록 사이즈 또는 또한 선택된 인트라 예측 모드와 같이, 현재 블록의 적어도 하나의 인코딩 파라미터에 기반하여 상기 적어도 2개의 선형 변환들이 결정된다.
예컨대, 이전에 오프라인에서 실시된 실험들은 특정 인트라 예측 모드에 적응된 적어도 2개의 선형 변환들을 식별하였고, 획득된 연관성을 메모리에 저장한다.
이롭게도, 코딩 파라미터 값과 연관된 선형 변환들의 식별자들은 코더 메모리에 저장된다. 이것은, 예컨대, 인코딩 파라미터를 연관시키는 엔트리들, 이를테면, 예컨대, 이전에 언급된 인트라 예측 모드, 제 1 변환의 식별자, 제 1 변환이 적용될 중간 블록 또는 블록의 적어도 하나의 식별자 또는 인덱스 벡터 ― 제 2 변환의 식별자, 제 2 변환이 적용될 상기 블록의 적어도 하나의 식별자 또는 제 2 벡터의 인덱스와 별개임 ― , 및 적어도 하나의 제 2 변환의 식별자를 포함하는 데이터베이스(BD1)이다.
도 8a와 관련하여, 주어진 인트라 예측 모드, 이러한 경우에, 표준 HEVC에 따른 예측 모드 넘버 26으로부터, 사이즈 8x8의 잔여 블록들에서 픽셀 당 평균 에너지 값들이 추정되었다. 그러한 추정은 오프라인에서 이루어진다.
픽셀 당 에너지가 2개(또는 그 초과의) 별개의 지역들로의 커팅을 정당화시킬 수평 스트라이프 패턴을 갖는다는 것이 주목된다.
도 8b에 관련하여, 2개의 지역들(R1, R2)이 도시된다:
제 1 지역(R1)은 일정한 패턴을 갖는 첫 번째 3개의 라인들로 구성된다;
제 2 지역(R2)은 제 1 컬럼 상에서 더 많은 마킹된 불연속성으로 인해 더 적은 일정한 프로파일을 갖는 마지막 5개의 라인들로 구성된다.
이롭게도, 2개의 변환들(L1, L2)이 결정되었고, 하나는 지역(R1)의 라인 벡터들에 적용되고, 다른 것은 지역(R2)의 라인 벡터들에 적용된다.
따라서, 이러한 예측 모드에 따라, 인코더는 각각 하나의 지역을 공유하는 2개의 <<라인>> 변환들에 파티션을 적용한다.
명백하게 동질적인 지역(R1)에 대해, KLT에 관하여 정의된 변환 또는 DCT-타입 변환이 선택되었다. DCT가 연속하는 패턴들의 변환에 적절하기 때문에, 이것이 적합한 것으로 고려될 수 있다.
지역(R2)에 대해, 제 1 컬럼에서 더 큰 불연속성을 고려할 수 있는 변환, 예컨대, DST, 또는 KLT에 관하여 정의된 변환이 선택된다. DCT가 초기 불연속성을 갖는 패턴들의 변환에 적절하기 때문에, 이것은 적합한 것으로 고려될 수 있다. 지역(R2)에 대해, 좌측 에지 상의 제 1 픽셀의 평균 에너지가 다른 픽셀 에너지들의 값과 상당히 상이한 값을 갖는다는 것이 주목된다.
메모리 제약 없이, 가능하게는 라인들만큼 많이 더 많은 지역들이 정의될 것이고, 더 큰 메모리 점유 공간을 희생하여 8개의 변환들이 사용될 것이다.
메모리 점유 제약을 고려하는 것은 감소된 효율성과 제한된 성능 감소로 이어진다.
도 8a 및 8b의 예에 따른, 예측 모드(26)와 연관된 입력, 라인 벡터들(vl0 내지 vl2)에 대한 변환(L0) 및 컬럼 벡터들(vl3 내지 vl7)에 대한 변환(L1).
도 9a와 관련하여, 주어진 코딩 모드, 이러한 경우에, HEVC 표준에 의해 정의된 예측 모드(19)로부터 사이즈 8x8의 블록들의 오프라인 사전-분석에 의해 획득된 잔여 신호에 대해 획득된, 픽셀 당, 평균 에너지가 이제 제공된다. 이러한 예측 모드는 거의 -53°의 각도를 갖고, 상부로부터 하부로 대각선 예측을 수행한다.
픽셀들 간의 에너지 변동들은 도 9b에 도시된 3개의 구역들(R'1, R'2, R'3)을 설명한다. 그들은 지역들(R'1, R'2 및 R'3)과 연관되고 그들 각각의 통계에 적응된 3개의 별개의 변환들에 의해 그들을 프로세싱하기 위해 커팅되어야 한다.
이러한 예에서, 형성된 지역들이 블록의 하나 또는 그 초과의 라인들에 대응하지 않는다는 것이 보인다. 본 발명에 따라, 이웃하는 엘리먼트들로부터, 라인의 사이즈와 동일한 사이즈들의 벡터들을 형성하는 것에 관심이 있고, 반면 그들 모두는 고려되는 지역들의 경계들에 따라 동일한 라인에 반드시 속하지는 않는다. 예컨대, 도 9a에 도시된 벡터(Vlh1)는 지역(R'1)에 대응한다.
제 1 양상에 따르면, 데이터베이스(BD1)의 입력은 예측 모드(19), 변환 L'0의 식별자, 변환 L'0가 적용되어야 하는 지역 R'1에서 형성된 벡터(들)의 식별자, 변환 L'1의 식별자, 변환 L'2가 적용되어야 하는 지역 R'2에서 형성된 벡터(들)의 식별자, 변환 L'3의 식별자, 변환 L'3이 적용되어야 하는 지역 R'3에서 형성된 벡터(들)의 식별자와 연관된다.
그에 따라서, 코딩 방법은, 데이터베이스(BD1) 내의 대응하는 엔트리를 판독함으로써, 하나의 라인의 사이즈들과 동일한 사이즈들의 벡터들을 어떻게 형성할지를 결정하고, 사용된 예측 모드에 기반하여 그 벡터들에 적용될 변환들을 결정한다.
다른 양상에 따르면, 코딩 방법은 예측 모드 INTRA 넘버 19 및 직전에 제시되었던 패턴 지역 R'1, R'2, R'3에 기반하여 예측의 종료 시에 현재의 블록에 대한 픽셀 나머지들의 값들 간의 상관을 추가적으로 계산한다.
그 2개의 양들 간의 높은 상관, 다시 말해, 세팅된 상관 임계치 위의 상관의 경우에서, 인코더는 3개의 변환들 L'0, L'1, L'2를 사용하도록 결정한다.
인코더는 상이한 구역들에 적응된 3개의 변환들을 그 구역들에 적응된 변환들과 함께 적용한다. 예컨대, KLT의 관점에서의 적응이 수행된다.
그것은 INTRA 예측 모드 넘버 19와 연관된 패턴 표시자를 대표하는 비트 스트림 코딩된 정보에 디코더를 삽입함으로써 이러한 선택을 표시한다.
이러한 실시예에 따르면, 데이터베이스(BD1)는 동일한 인코딩 파라미터에 대응하는 다수의 엔트리들을 잠재적으로 포함하고, 각각의 엔트리는 상이한 벡터들 및 상이한 변환들과 연관된 별개의 패턴 표시자를 포함한다는 것이 이해된다.
인코더에 의해 선택된 예측 모드 정보 및 패턴의 수신 시에, 디코더는 자신의 데이터베이스(BD2)에서, 블록에서 형성될 벡터들의 식별자들 및 그 벡터들에 적용될 변환들의 식별자들을 판독한다. 그 후, 디코더는 인코더에서 수행된 변환들의 역변환들을 수행한다.
대안적으로, 선형 변환들은 인코딩될 현재의 블록의 사전-분석에 의해 동적으로 결정된다. 예컨대, 이러한 사전-분석은 그라디언트의 추정을 사용하여 알려진 윤곽 분석 기법들을 구현한다. 그 후, 윤곽 검출은 적어도 2개의 지역들의 특징들, 예컨대 그 지역들의 텍스처의 동질성에 의존하여, 그 적어도 2개의 지역들을 결정하고 그 지역들에 변환 타입들을 할당하도록 활용된다. 이러한 경우에서, 결정된 선형 변환들의 식별자들 및 관련 벡터들의 식별자들은 비트 스트림에서 시그널링되고 디코더에 송신된다.
대안적으로, 그러한 윤곽 분석은, 예컨대 현재의 블록과 관련된 다음의 블록 내의 윤곽 배향에 따라, 이미 프로세싱되고 현재의 블록에 대한 연속성 가정과 함께 결합되는 하나 또는 그 초과의 이웃한 블록들에 대해 수행된다.
윤곽 연속성 결정이 이루어진 경우, 그 후, 현재의 블록의 지역들은 이미 프로세싱된 이웃한 블록의 지역들에 기반하여 결정된다.
이러한 경우에서, 인코더는 영향받은 이웃한 블록에 대한 상속 모드를 대표하는 코딩된 정보에 기반하여 지역들, 즉 사용될 벡터들 및 변환들이 상속되어야 하는 이웃한 블록을 디코더에게 시그널링한다. 디코더는 일단 디코딩되면 동일한 이웃한 블록에 대해 동일한 윤곽 분석을 구현하여 그 분석으로부터 벡터들, 즉 사용될 변환들을 추론하도록 요구될 것이 이해되어야 한다.
본 발명의 실시예 변동에 따르면, 상기 적어도 2개의 별개의 선형 변환들은 제 2 변환 서브-스텝(T31) 동안 구현된다.
이러한 경우에서, 현재의 블록의 컬럼들의 사이즈와 동일한 사이즈 H의 벡터들은 중간 블록 XI의 계수들로부터, 제 1 변환 서브-스텝(T30)에 후속하는 (T11)에서 형성된다. 길이 H의 W개의 벡터들 Vc0 내지 VcW-1이 획득된다.
위에서와 같이, 사이즈 H의 벡터들의 수개의 타입들이 형성될 수 있다.
도 7c와 관련하여, 벡터 VCW는 블록의 컬럼 넘버 w에 대응한다.
도 7e와 관련하여, 벡터 Vc'w는 2개의 인접한 컬럼들로부터의 엘리먼트들을 포함한다.
결정하는 단계(T'2)는 형성된 벡터들 Vc0 내지 VcW-1에 적용될 적어도 2개의 별개의 선형 변환들 C0, C1을 제공한다.
벡터들 VI0 내지 VIH-1을 형성하고 위에서 제시된 선형 변환들 Li를 결정하는 단계들의 다양한 실시예들은 벡터들 Vc0 내지 VcW-1을 형성하고 선형 변환들 Cj를 결정하는 단계들로 전치될 수 있으며, 그들이 중간 블록 XI에 대해 구현된다는 것을 유념한다.
유리하게, 본 발명의 원리는 2개의 변환 서브-스텝들(T30 및 T31)에서 구현된다. 이러한 경우에서, 인코딩 방법은, 현재의 블록 X로부터 사이즈 W의 벡터들 VI0 내지 VIH-1을 형성하는 제 1 단계(T10), 벡터들 VI0 내지 VIH-1에 적용될 변환들 L0, L1을 결정하는 제 1 단계(T20), 중간 블록 XI로부터 사이즈 H의 벡터들 Vc0 내지 VcW-1을 형성하는 제 2 단계(T11), 및 벡터들 Vc0 내지 VcW-1에 적용될 변환들 C0, C1을 결정하는 제 2 단계(T21)를 구현한다.
하나의 장점은 2개의 변환 서브-스텝들에 대해, 형성된 상이한 벡터들의 통계적 특징들을 더 양호하게 활용하는 것이다. 물론, 다른 한편으로, 이러한 실시예는 더 많은 수의 변환들을 저장하는 것을 요구한다.
도 10과 관련하여, 본 발명의 제 2 실시예에 따른 디지털 이미지를 인코딩하는 방법이 이제 예시된다.
이러한 실시예에 따르면, 본 발명은, H 라인 변환들 L0 내지 LH-1 및 W 컬럼 변환들 C0 내지 CW-1을 고려한다. 다시 말해서, 사이즈 W의 벡터들 Vl0 내지 VlH-1이 (T'20)에서 형성되었는지 또는 사이즈 H의 벡터들 Vc0 내지 VcW-1이 (T'23)에서 형성되었는지 여부에 관계없이, 형성된 각각의 벡터에 특정적인 선형 변환은 현재의 블록에 적용된다.
예시적인 예로서, 4X4 블록의 경우를 고려해본다.
단계(T'21) 동안 변환된 신호 X1은 다음의 오퍼레이션들의 연접에 의해 획득된다:
Figure pct00020
L0, L1, L2 및 L3은 라인 변환들을 표현하고, 따라서 이러한 실시예에서는 사이즈 4x4의 행렬이며, 이는, 특히 사용된 변환들이 DCT/DST-타입이면 문헌에 알려진 바와 같은 버터플라이 분해에 기반하여 고속 알고리즘으로서 잠재적으로 구현될 수 있다.
따라서, 16개의 변환된 계수들(X10 ... X15)은 초기 블록x의 16(x0 ... x15)개의 픽셀들로부터 획득될 수 있다. 이들이, 예를 들어, 선형 변환 Li에 의해 변환된 각각의 벡터 Vli가 블록 Xl의 라인 i를 형성하는 것을 도왔다는 것을 고려함으로써, 블록 Xl을 형성하도록 T'22에서 재배열된다.
컬럼 변환이 다음과 같이 유사하게 T'24에 적용된다:
Figure pct00021
Figure pct00022
Figure pct00023
Figure pct00024
C0, C1, C2 및 C3은 컬럼 변환들을 나타내고, 따라서 이 실시예에서 사이즈 4×4의 매트릭스들이며, 이는, 특히 사용된 변환들이 DCT/DST-타입인 경우, 문헌에 공지된 바와 같이 버터플라이 분해에 기반하여, 고속 알고리즘으로서 잠재적으로 구현될 수 있다.
따라서, 바로 위에 나타내어졌던 블록 4x4의 실시예에서, 8개의 변환들이 제공되었다.
이 실시예의 장점은, 각각의 라인 및 각각의 컬럼이 그들 자신의 통계를 개별적으로 제공한다는 사실을 고려한 것이다. 압축 성능이 개선된다.
도 11과 관련하여, 사이즈 4×4의 블록에 대해, HEVC에서 INTRA 코딩의 특정한 경우에, 다수의 변환을 사용함으로써 제공되는 이득이 도시되어 있다.
이 콘텍스트에서, HEVC는 사이즈 4×4의 블록들에 대해, 타입 DST VII의 라인 및 컬럼 변환을 사용하며, 이 변환은 신호의 소형화의 면에서 최상의 결과들을 나타내었다.
이는 인트라 예측 번호 18의 콘텍스트에서 발생한다. 이 예측은 대각선이다. 변환의 성능을 평가하기 위해서, 우리는 그의 코딩 이득, 즉, 신호의 에너지와 변환된 계수들의 기하학적 평균 간의 비를 측정한다.
도 11의 테이블과 관련하여, 우리는 HEVC에서 사용되는 DST, 이미지/비디오 인코딩에서 일반적으로 사용되는 DCT, KLT의 의미에서 최적의 분리가능한 변환(테이블에서 Sep로 지정됨) 및 KLT의 의미에서 최적화된, 본 발명에 따른 변환들의 세트(테이블에서 mSEP로 지정됨)와 함께 획득되는 성능들을 나타낸다.
KLT의 의미에서 최적화는 최상의 코딩 이득을 제공하는 라인들 및 컬럼들 변환들을 찾는 것에 있다. 종래 기술에 따르면, KLT 변환들은, 변환될 벡터들의 픽셀들 대 픽셀들 상관들을 고려하고 기껏해야 이러한 픽셀들을 상관해제시키는 변환을 결정함으로써 획득된다. 따라서, 픽셀의 자기상관 매트릭스가 결정되고, 그런다음 대각선화가 수행된다: 상관해제를 생성하는 적절한 벡터들은 변환 KLT를 형성한다.
이들 결과들은 본 발명을 이용하여 개선된 성능을 보여주거나 또는 종래 기술의 방법들에 비해 상당한 이득이 주목된다.
도 12와 관련하여, 발명의 제 3 실시예에 따른 디지털 이미지를 인코딩하기 위한 방법이 이제 예시된다.
본 실시예에 따르면, 픽셀들 x의 블록으로부터 T''20에서 "라인" 벡터들로 형성되고, 2 개의 별개의 라인들 변환들이 제 1 서브-스텝 T''21 동안에 그들에 적용된다. 획득된 계수들은 중간 블록 Xl을 형성하기 위해 T''22에 재배열되고, "컬럼" 벡터들은 T''23에서 형성되고 2개의 별개의 컬럼들 변환들이 제 2 변환 서브-스텝 T "24 동안 이들에 적용된다. 변환된 계수들은 변환된 블록 X를 형성하기 위해 T''25에서 재배열된다.
따라서, 제 1 서브-스텝 T''21에 의해 구현된 라인 변환은 제 1 라인에 대한 변환을 다른 것들을 위해 사용된 것과 구분하며, 사이즈 4×4의 블록에 대해 다음과 같이 표현될 수 있다.
Figure pct00025
Figure pct00026
Figure pct00027
Figure pct00028
그래서 우리는 이제, 이전의 4가 아닌 2개의 변환들(L0과 L1)만을 갖는다.
컬럼들의 경우, 유사하게 진행될 수 있으며, 즉, 컬럼들(예를 들어, 다음 컬럼들 중 첫 번째 것)을 구분하기 위해 단지 2개의 변환들만 유지한다. 또한 일 실시예에서는, 컬럼들의 세트에 대해 하나의 변환만 유지하거나, 또는 다른 실시예에서 제 1 실시예에서 개요가 설명된 바와 같이 4개의 별개의 변환들 보유하는 것도 가능하다.
따라서, 변환들의 저장과 관련된 충격은 상당히 감소된다.
메모리 감소를 위한 제 3 실시예에 의해 획득된 성능을 예시하기 위해, 블록들 4x4에 의해 달성되는 코딩 이득들이 HEVC의 인트라 모드의 예측 18에 대해 다시 예시된다.
2개의 별개의 변환들이 라인들 및 컬럼들에 대해 유지된다. 따라서, 우리는 제 1 실시예에 나타내어진 것과 같이 8개 대신 총 4개의 변환들을 갖는다(구성 4Sep를 주목한다).
대안으로, 2개의 별개의 변환들이 라인들에 대해 유지되고 컬럼들에 대해서는 1개의 변환만이 유지된다(컬럼들의 경우, 우리는 최신 기술에 가깝다). 따라서, 우리는 제 1 실시예에 나타내어진 것과 같이 8 대신 총 3개의 변환들을 갖는다(구성 3Sep를 주목한다).
그 결과들이 도 13의 테이블에 도시된다.
따라서, 메모리가 감소된 이들 버전들은 사용되는 메모리의 절반 또는 그 미만으로 8개의 변환들(mSep)을 갖는 버전에 의해 획득된 결과들에 더 가까워질 수 있다는 것이 명백하다. 최신 기술의 변환들과 관련하여 압축 면에서 상당한 이점이 남아있다.
도 14와 관련하여, 우리는 이제 본 발명의 실시예에 따른 디코딩 방법의 스텝들을 고려한다.
우리는, 비트 스트림(TB)이 본 발명에 따른 디코딩 방법을 구현하는 디코딩 디바이스에 의해 수신되었다고 가정한다.
D0에서, 우리는 먼저 현재 블록(C')으로서 프로세싱될 첫 번째 블록을 선택한다. 예컨대, 이는 첫 번째 블록(사전식 순서로)이다. 이 블록은 MxN 픽셀들을 포함하며, 여기서 M 및 N은 비-제로 정수들이다.
인코딩 프로세스에 대해 설명된 바와 같이, 고려되는 블록(C')은 블록 CTU 또는 블록 CTU를 컷팅함으로써 획득된 서브-블록 CU 또는 블록 또는 현재 블록으로부터 현재 블록으로의 예측을 감산함으로써 획득된 나머지-서브 블록일 수 있다.
스텝(D1)에서, 현재 블록(C')에 관한 코딩된 데이터가 판독되어 디코딩된다. D2에서, 현재 블록(C')에 관한 디코딩된 데이터는 역양자화된다. 우리는 역양자화된 계수들의 벡터 DQ[k]를 획득하며, k는 0 내지 MxN-1의 정수이다.
스텝(D3) 동안, 벡터(DQ)의 계수들은 변환된 블록(X')에 배열된다. 이는 인코딩 방법들에 의해 구현된 코스(T3)의 인버스 오퍼레이션이다.
D4에서, 역변환의 연속적인 서브-스텝들(D51, D54) 동안 현재 블록(X')에 적용될 변환들이 결정된다. 본 발명에 따라, 그들 중 하나는 적어도 2개의 별개의 선형 변환들을 구현한다. 이들 변환들은 본 발명에 따른 코딩 방법에 의해 사용된 것의 역인 것으로 이해될 것이다.
디코더에서, 컬럼 각각의 라인의 것과 동일한 사이즈의 벡터들에 적용될 역변환들은 다양한 방식들로 결정될 수 있으며, 그 중 다음이 예로서 언급될 수 있다 :
- 식별 정보에서 적어도 하나의 제 1 변환 및 하나의 제 2 변환의 비트 스트림(TB)을 판독함으로써;
- 로컬 또는 원격 메모리에서 인코더에 의해 사용되는 변환들의 식별 정보를 판독함으로써;
유리하게는, 제 1 및 제 2 변환의 선정은 현재 블록의 인코딩 파라미터, 예컨대, 그의 사이즈 또는 그의 예측 모드와 연관될 수 있다.
본 발명의 일 실시예에 따라, 적용될 변환들은 메모리, 예컨대, 인코딩 파라미터와 연관된 데이터베이스(BD2)의 엔트리, 블록 또는 중간 블록의 제 1 벡터의 적어도 하나의 식별자에 대한 제 1 변환의 식별자, 상기 블록의 제 2 벡터의 적어도 하나의 식별자에 대한 (제 1 변환과 별개의) 적어도 하나의 제 2 변환의 식별자를 판독함으로써 획득된다.
유리하게는, D4 동안, 우리는, 벡터들이 인코더에서, 현재 블록에서 어떻게 형성되었는지를 또한 결정했다. 예컨대, 벡터 식별자는 사이즈(MxN)의 블록에 형성된 알려진 타입의 벡터에 대응한다.
디코더는, 인코더와 동일한 방식으로 벡터들을 어떻게 형성할지를 알 필요가 있다는 것이 이해될 것이다. 여러 타입들의 컬럼 또는 라인 벡터들이 형성될 수 있다. 적용될 다양한 변환들에 대해 우리가 설명한 것과 유사하게, 다음을 포함하는 여러 실시예들이 고려된다 :
- 디코더는 로컬로 벡터를 형성하기 위한, 인코더와 동일한 규칙들을 갖는다. 예컨대, 이들 규칙들은 메모리에 저장된다;
- 유리하게는, 디코더는, 현재 블록에서 사이즈(H)의 W 벡터 및 사이즈(W)의 H 벡터의 형성을 가능하게 하는 표시들인, 인코딩 파라미터와 연관된 엔트리들을 포함하는 데이터베이스에 저장된 정보에 액세스한다. 이 데이터베이스는 인코더 및 디코더의 레벨에서 복제된다.
- 디코더는 인코더에 의해 형성된 벡터의 타입을 대표하는 정보를 비트 스트림으로부터 추출한다. 이러한 변동은 형성되는 벡터의 타입이 인코더의 레벨에서 구현되는 현재 블록의 콘텐츠의 사전-분석에 기반하여 동적으로 선정될 때 특히 유리하다.
이 스텝의 완료 시에, 우리는 이에 따라, 선형 변환 식별자와 연관된 벡터들의 수, 인덱스들 및 타입들을 알게 된다.
하기의 설명에서, 인코딩 동안, 제 1 서브-스텝은 라인의 것과 동일한 사이즈의 벡터들의 적어도 2개의 변환들을 구현하고, 제 2 서브-스텝은 컬럼의 것과 동일한 사이즈의 벡터들 상에서 하나 또는 여러개의 변환들을 구현한다고 가정한다.
디코딩 시에, 인버스 오퍼레이션들은 인코딩 동안 수행된 것의 역순서로 수행될 것이다. 이 예시적인 실시예에서, 역변환의 제 1 서브-스텝(D51)은 이에 따라 컬럼의 것과 동일한 사이즈의 벡터들에 적용된다.
스텝(D50) 동안, 블록(X')의 하나의 컬럼의 것과 동일한 길이의 계수들을 갖는 벡터들이 블록(X')에 형성된다. 이는, 인코딩 방법에 의해 구현된 블록(X)에서의 변환된 벡터들의 계수들의 배열 오퍼레이션(T25)의 인버스 오퍼레이션이다.
예컨대, 인코더 측 상에서, 스텝(T24)의 선형 변환(C0, C1 또는 Cj)에 의해 변환된 컬럼 벡터(Vcj)의 계수들은 단순히 블록(X)의 컬럼(j)에 포지셔닝되어 있다. 디코딩 방법의 스텝(D50)에서, 반대로, 컬럼의 것과 동일한 길이의 벡터(V'cj)는 블록(X')의 컬럼(j)의 계수들로부터 형성된다. 따라서, 이 예에서, X'의 컬럼은 코딩 방법에 의해 연관된 벡터(vcj)에 적용된 선형 변환으로부터의 계수들을 포함한다는 것이 이해된다. 이 간단한 경우에서, 스텝(D50)은 이후, 블록(X')의 컬럼들로부터 "컬럼" 벡터들(V'cj)을 형성하는 것으로 단순히 구성된다.
유리하게는, 스텝(D50)은 결정 스텝(D4) 동안 획득된 이러한 재배열에 관한 정보에 기반한다. 예컨대, 선형 변환(C0-1)의 엔트리에서의 컬럼(cj0) 및 선형 변환(C1-1)의 엔트리에서의 컬럼(cj1)을 연관시키는 것인 재배열은 미리결정된 재배열의 타입을 대표하는 정보에 의해 표시되거나 벡터 식별자들을 각각의 선형 변환과 연관시킨다.
이러한 벡터 식별자들은 유리하게는, 하나의 타입의 벡터 및 벡터 인덱스를 포함한다. 예컨대, 고려되는 벡터의 타입은 컬럼 타입이며 형성될 벡터는 번호(j)인데, 즉 블록의 컬럼(j)에 대응하는 것이다.
D51에서, 선형 역변환들(C0-1, C1-1)은, D50에서 형성된 벡터들(V'cj0, V'cj1), 예컨대, 이들이 직교하거나 고속 알고리즘을 사용하는 경우 치환 형성된 컬럼들(cj0, cj)에 적용된다.
벡터들(v'cj0, v'cj1)이 획득된다.
스텝(D52) 동안, 프로세싱된 벡터들(v'cj0, v'cj1)의 계수들은 중간 블록(X'l)을 형성하도록 포지셔닝된다. 이를 위해, 우리는 대향하는 오퍼레이션으로 진행하기 이전에, 인코더 측 상의 벡터들의 형성에 상대적인 그리고 스텝(D4)에서 결정된 벡터들의 식별 정보를 이용한다.
예컨대, 벡터들이 컬럼 벡터들인 경우, 식별 정보는 컬럼 인덱스를 포함하고 벡터들의 엘리먼트들은 대응하는 컬럼에 배치된다.
벡터들이 선형이 아닌 경우, 비선형 벡터의 타입을 식별하는 식별 정보가 디코더에 알려지며, 이 디코더는 블록(MxN)에 엘리먼트들을 포지셔닝할 수 있다. 예컨대, 인코더 측 상에서 블록(X'l)에 형성된 벡터(vcj)가 벡터(vc0)에 대응하는 인덱스를 갖는, 도 7e와 관련하여 설명된 것들의 타입으로 이루어졌음을, 결정된 것을 식별하는 정보가 표시하는 경우, 계수들은 X'1, X'0, X'4, X'8에 배치될 것이다.
역변환(D54)의 제 2 서브-스텝을 거치기 전에, 결과적인 중간 블록(X'l)이 그 후 형성 스텝(D53)에서 구현되며, 이 형성 스텝은, 스텝(D50)과 유사하지만, D4에 의해 획득된 재배열 정보로부터 블록(X'l)에서 벡터(V'li)를 형성하고, 이를, D4에서 또한 결정된 선형 변환들(LO-1 및 L1-1) 중 하나에 연관시킨다.
D54에서, 역변환들은 이들이 직교이거나 고속 알고리즘을 사용하는 경우, 치환된 형태로 적용되고, 라인의 것과 동일한 사이즈의 벡터들(V'li0, V'li1)을 생성한다. 본 발명에 따른 디코더에 의해 구현되는 오퍼레이션들은 최신 기술에 의해 사용된 것들과 유사하며: 따라서, 복잡성은 변환들을 수행하기 위해 변경되지 않는다.
D55에서, 획득된 벡터들은 픽셀들의 블록(x')을 형성하도록 포지셔닝된다. 이는 본 발명에 따른 코딩 방법에서 구현되는 T20 벡터들을 형성하는 것의 인버스 오퍼레이션이다.
D6에서, 획득된 블록(x')으로부터 디코딩된 이미지의 픽셀들 블록은 재구성되고 이 블록은 디코딩되는 ID 픽처(picture)로 적분된다. 블록(x')이 나머지 블록이면, 미리 프로세싱된 레퍼런스 이미지로부터 획득된 현재 블록의 예측은 상기 블록에 부가될 것이다.
단계(D7) 동안, 미리 정의된 라우트 순서가 제공되면, 현재 블록이 디코딩 유닛에 의해 프로세싱될 마지막 블록인지를 테스트한다. 만약 그렇다면, 디코딩 프로세스는 자신의 프로세싱을 완료한다. 만약 그렇지 않다면, 다음 단계는 다음 블록(D0)을 선택하는 단계이고 선택된 다음 블록에 대해 위에서 설명된 디코딩 단계들(D1 내지 D7)이 반복된다.
방금 설명된 본 발명이 소프트웨어 및/또는 하드웨어 컴포넌트들을 사용하여 구현될 수 있다는 것이 주목될 것이다. 이런 맥락에서, 본 문헌에 사용된 용어들 "모듈" 및 "엔티티"는 관련된 모듈 또는 엔티티에 대해 설명된 기능들을 구현할 수 있는, 소프트웨어 컴포넌트 또는 하드웨어 컴포넌트 또는 심지어 하드웨어 및/또는 소프트웨어의 세트일 수 있다.
도 15에 관련하여, 본 발명에 따른 디지털 이미지의 인코딩 디바이스(100)의 간략화된 구조의 예가 이제 제시된다. 디바이스(100)는 도 6과 관련하여 막 설명된 본 발명에 따른 인코딩 방법을 구현한다.
예컨대, 디바이스(100)는 프로세서(μ1)가 장착되고, 그리고 메모리(130)에 저장되고 본 발명에 따른 방법을 구현하는 컴퓨터 프로그램(Pg1)(120)에 의해 구동되는 프로세싱 유닛(110)을 포함한다.
초기화 시, 컴퓨터 프로그램 코드 명령들(Pg1)(120)은 예컨대, 프로세싱 유닛(110)의 프로세서에 의해 실행되기 전에 RAM에 로딩된다. 프로세싱 유닛(110)의 프로세서는 컴퓨터 프로그램(120)의 명령들에 따라, 위에서 설명된 방법 단계들을 구현한다.
본 발명의 이 실시예에서, 디바이스(100)는 현재 블록을 중간 블록으로 변환하기 위한 제 1 서브-유닛(TR1) 및 중간 블록을 변환 블록으로 변환하기 위한 제 2 서브-유닛(TR2)을 포함하는, 현재 블록을 변환된 블록(X)으로 변환하기 위한 적어도 하나의 유닛(TRANS), 변환된 블록을 양자화하기 위한 유닛(QUANT), 양자화된 블록을 코딩하기 위한 유닛(COD) 및 인코딩된 데이터를 비트 스트림(TB)에 삽입하기 위한 유닛(INSERT)을 포함한다.
본 발명에 따라, 변환은, 상기 변환 서브-유닛들 중 적어도 하나 및 블록 내에 획득된 계수들을 배열하기 위한 서브-유닛(ARR) 이전에 구현되도록 적응되는, 현재 블록과 중간 블록 중 상기 블록들 중 하나의 엘리먼트들(픽셀들, 각각 계수들)로부터 적어도 2개의 벡터들을 형성하기 위한 적어도 하나의 서브-유닛(FORM)을 포함한다. 디바이스는 또한, 적어도 현재 블록의 코딩 파라미터에 기반하여 상기 벡터들에 적용될 적어도 2개의 별개의 변환들을 결정하기 위한 유닛(DET)을 포함한다.
유리하게, 디바이스(100)는 인코딩 파라미터와, 블록 또는 중간 블록의 벡터의 적어도 하나의 식별자를 가지는 제 1 변환의 식별자, 상기 블록의 제 2 벡터의 적어도 하나의 식별자를 가지는 제 1 변환과 별개의 적어도 하나의 제 2 변환의 식별자를 연관시키는 엔트리들을 포함하는 테이블을 저장하기 위한 메모리, 예컨대 유닛(BD1)을 더 포함한다.
이들 유닛들은 프로세싱 유닛(110)의 프로세서(μ1)에 의해 제어된다.
유리하게, 그런 디바이스(100)는 사용자 단말(TU)에 통합될 수 있다. 그 다음으로, 디바이스(100)는 적어도 단말(TU)의 다음 모듈과 협력하도록 배열된다:
- 비트 스트림(TB) 또는 압축된 파일(FC)이 원격통신 네트워크를 통하여 디코딩 디바이스에 송신되는 데이터를 전송 및 수신하기 위한 E/R 모듈;
예컨대, 디코딩 디바이스(200)는 프로세서(μ2)가 장착되고, 그리고 메모리(230)에 저장되고 도 14에 관련하여 막 설명된 본 발명에 따른 디코딩 방법을 구현하는 컴퓨터 프로그램(Pg2)(220)에 의해 구동되는 프로세싱 유닛(210)을 포함한다.
초기화 시, 컴퓨터 프로그램 코드 명령들(Pg2)(220)은 예컨대, 프로세싱 유닛(210)의 프로세서에 의해 실행되기 전에 RAM에 로딩된다. 프로세싱 유닛(210)의 프로세서는 컴퓨터 프로그램(220)의 명령들에 따라, 위에서 설명된 방법 단계들을 구현한다.
본 발명의 이 실시예에서, 디바이스(200)는 비트 스트림에서 판독된 데이터로부터 변환된 현재 블록의 계수들을 디코딩하기 위한 적어도 하나의 유닛(DEC), 디코딩된 계수들을 역양자화(dequantize)하기 위한 유닛(DEQUANT), 2개의 연속적인 역변환 서브-유닛들을 구현하도록 적응된, 변환된 현재 블록을 역변환하기 위한 유닛(TRAN-1)을 포함하고, 제 1 서브유닛(TR1-1)은 현재 변환된 블록에 적용되고, 제 2 서브유닛(TR2-1)은 제 1 서브-유닛으로부터 발생하는 중간 블록에 적용된다. 본 발명에 따라, 서브-유닛들(TR1-1, TR2-1) 중 적어도 하나는 변환된 현재 블록과 중간 블록 중에서 소위 프로세싱될 블록에 대해, 서로 별개인 적어도 제 1 및 제 2 선형 변환을 구현한다.
본 발명에 따라, 역변환 유닛은 프로세싱된 블록의 제 1 및 제 2 변환들에 의해 프로세싱되는 벡터들의 계수들을 재배열하도록 적응된 서브-유닛(FORM-1)을 더 포함한다.
유리하게, 디바이스는 또한 프로세싱될 블록의 계수들로부터 적어도 2개의 벡터들을 형성하기 위한 유닛(ARR-1) ― 상기 벡터들은 제 1 및 제 2 선형 변환들이 적용될 현재 블록의 사이즈들 중 하나와 동일한 길이를 가짐 ― 및 적어도 현재 블록의 코딩 파라미터에 기반하여 상기 벡터들에 적용될 적어도 2개의 별개의 선형 변환들을 결정하기 위한 유닛(DET)을 포함한다.
이들 유닛들은 프로세싱 유닛(210)의 프로세서(μ2)에 의해 제어된다.
유리하게, 그런 디바이스(200)는 사용자 단말(TU)에 통합될 수 있다. 그 다음으로, 디바이스(200)는 적어도 단말(TU)의 다음 모듈과 협력하도록 배열된다:
- 비트 스트림(TB) 또는 압축된 파일(FC)이 원격통신 네트워크로부터 수신되는 데이터를 전송 및 수신하기 위한 모듈(E/R);
- 디코딩된 디지털 이미지 또는 일련의 디코딩된 이미지들을 사용자에게 제시하는 이미지들을 생성하기 위한 디바이스(DISP), 예컨대 단말 모니터.
유리하게, 사용자 단말(TU)은 본 발명에 따른 인코딩 디바이스 및 디코딩 디바이스 둘 모두를 포함할 수 있다.
위에서 설명된 실시예들이 순수하게 예시적이고 비-제한적인 예로써 주어지고, 많은 수정들이 본 발명의 범위에서 벗어남이 없이 당업자들에 의해 쉽게 이루어질 수 있다는 것은 말할 필요도 없다.

Claims (17)

  1. 디지털 이미지를 인코딩하기 위한 방법으로서,
    상기 이미지는 정해진 순서로 프로세싱된 픽셀들의 복수의 블록들로 분할되고,
    상기 방법은 미리결정된 사이즈들의 현재 블록에 대해 구현되는 단계들을 포함하며,
    상기 단계들은,
    - 상기 현재 블록을 변환된 블록으로 변환하는 단계(T2) ― 상기 블록은 계수들을 포함하고, 상기 단계는 2개의 연속적인 변환 서브-스텝들을 구현하며, 제 1 서브-스텝(T21)은 상기 현재 블록에 그리고 제 2 서브-스텝(T24)은 상기 제 1 서브-스텝으로부터 발생하는 중간 블록에 적용되고, 상기 중간 블록은 계수들을 포함함 ―, 및
    - 상기 변환된 블록의 계수들을 양자화(T4) 및 인코딩(T5)하는 단계를 포함하고,
    - 상기 변환하는 단계는 상기 변환 서브-스텝들 ― 상기 서브-스텝은 상기 현재 블록과 상기 중간 블록 중 소위 변환될 블록인 블록에 적용됨 ― 중 적어도 하나의 변환 서브-스텝에 앞서, 상기 변환될 블록에서 적어도 제 1 및 제 2 별개의 벡터들을 형성하기 위한 예비 서브-스텝(T20, T23)을 더 포함하며, 상기 벡터는 상기 픽셀들 또는 픽셀들의 시퀀스의 계수들 또는 상기 변환될 블록의 사이즈들 중 하나와 동일한 길이인, 상기 변환될 블록의 인접 계수들을 포함하고; 그리고
    - 상기 적어도 하나의 변환 서브-스텝은 상기 적어도 하나의 제 1 벡터에 제 1 변환(L0, C0)을 그리고 상기 블록의 상기 적어도 하나의 제 2 벡터에 상기 제 1 변환과 별개인 적어도 하나의 제 2 변환(L1, C1)을 적용하는 단계를 포함하는,
    디지털 이미지를 인코딩하기 위한 방법.
  2. 제 1 항에 있어서,
    적어도 상기 현재 블록의 코딩 파라미터에 기반하여, 상기 벡터들에 적용될 적어도 2개의 별개의 변환들을 결정하기 위한 예비 단계(T1)를 더 포함하는,
    디지털 이미지를 인코딩하기 위한 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    결정하는 단계(T2)는 메모리에 저장된 정보를 판독하는 단계를 포함하고,
    상기 정보는 적어도 상기 코딩 파라미터, 상기 제 1 변환의 식별자, 상기 블록 또는 상기 중간 블록의 제 1 벡터의 적어도 하나의 식별자, 상기 블록의 제 1 및 적어도 하나의 제 2 벡터 식별자와 별개인, 적어도 하나의 제 2 변환의 식별자를 포함하는,
    디지털 이미지를 인코딩하기 위한 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 변환하는 단계는 상기 중간 블록(XI), 개별적으로는 상기 변환된 블록(X)에서 변환된 벡터들의 계수들을 재배열하는 서브-스텝(T22, T25)을 포함하는,
    디지털 이미지를 인코딩하기 위한 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    - 복수의 미리결정된 모드들 중에서 선택된 예측 모드에 따라 이전에 프로세싱된 적어도 하나의 블록으로부터 상기 현재 블록의 값들을 예측하는 단계,
    - 예측된 값들을 상기 현재 블록의 원래 값들로부터 차감함으로써 잔여 블록을 계산하는 단계를 포함하며,
    상기 변환하는 단계(T2)는 잔여 현재 블록에 적용되고, 상기 적어도 하나의 코딩 파라미터는 상기 현재 블록의 예측 모드인,
    디지털 이미지를 인코딩하기 위한 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 적어도 하나의 제 1 변환 및 상기 적어도 하나의 제 2 변환의 식별 정보 코딩 단계를 포함하는,
    디지털 이미지를 인코딩하기 위한 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 제 1 변환은 라인의 사이즈와 동일한, 개별적으로는 상기 블록의 컬럼의 사이즈와 동일한 사이즈의 벡터들의 제 1 서브-세트에 적용되고, 상기 적어도 하나의 제 2 변환은 상기 블록의 라인의 사이즈와 동일한, 개별적으로는 상기 블록의 컬럼의 사이즈와 동일한 사이즈의 벡터들의 제 2 서브-세트에 적용되는,
    디지털 이미지를 인코딩하기 위한 방법.
  8. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 적어도 하나의 변환 서브-스텝은 상기 블록의 라인의 사이즈와 동일한, 개별적으로는 상기 블록으로 형성된 컬럼의 사이즈와 동일한 사이즈의 벡터마다 별개의 변환을 구현하는,
    디지털 이미지를 인코딩하기 위한 방법.
  9. 디지털 이미지를 인코딩하기 위한 디바이스(100)로서,
    상기 이미지(lk)는 정해진 순서로 프로세싱된 픽셀들의 복수의 블록들로 분할되고,
    상기 디바이스는 미리결정된 사이즈들의 현재 블록(x)에 대해 구현될 수 있는 유닛들을 포함하며,
    상기 유닛들은,
    - 상기 현재 블록을 변환된 블록으로 변환하는 유닛(TRANS) ― 상기 블록은 계수들을 포함하고, 상기 유닛은 2개의 연속적인 변환 서브- 유닛을 구현하며, 제 1 서브- 유닛(TR1)은 상기 현재 블록에 그리고 제 2 서브- 유닛(TR2)은 상기 제 1 서브- 유닛으로부터 발생하는 중간 블록에 적용되고, 상기 중간 블록은 계수들을 포함함 ―, 및
    - 상기 변환된 블록의 계수들을 양자화(QUANT) 및 인코딩(COD)하는 유닛을 포함하고,
    - 상기 변환하는 유닛은 상기 현재 블록 및 상기 중간 블록으로부터 소위 변환될 블록인 블록에서 적어도 제 1 및 제 2 별개의 벡터들을 형성하기 위한 서브-유닛(FORM)을 더 포함하며, 상기 벡터는 픽셀들, 개별적으로는 인접 픽셀들의 시퀀스의 계수들, 개별적으로는 상기 변환될 블록의 사이즈들 중 하나와 동일한 길이의 변환 블록의 인접 계수들을 포함하고, 상기 서브-유닛은 상기 변환 서브-유닛들(TR1, TR2) 중 적어도 하나에 앞서 구현될 수 있고; 그리고
    - 상기 적어도 하나의 변환 서브-유닛은 상기 적어도 하나의 제 1 벡터에 제 1 변환을 그리고 상기 블록의 상기 적어도 하나의 제 2 벡터에 상기 제 1 변환과 별개인 적어도 하나의 제 2 변환을 적용하는 것을 포함하는,
    디지털 이미지를 인코딩하기 위한 디바이스(100).
  10. 디지털 이미지를 나타내는 인코딩된 데이터를 포함하는 비트 스트림(TB)으로부터 상기 디지털 이미지를 디코딩하기 위한 방법으로서,
    상기 이미지(lk)는 정해진 순서로 프로세싱된 픽셀들의 복수의 블록들로 분할되고,
    상기 방법은 소위 변환된 블록(X')인 블록에 대해 구현되는 단계들을 포함하며,
    상기 단계들은,
    - 상기 비트 스트림에서 판독된 데이터로부터, 현재 변환된 블록의 계수들을 디코딩하는 단계(D1);
    - 디코딩된 계수들을 역양자화하는 단계(D2);
    - 상기 현재 변환된 블록을 역변환하는 단계(D5) ― 상기 단계는 2개의 연속적인 역변환 서브-스텝들을 구현하며, 제 1 서브-스텝(D51)은 상기 현재 블록에 그리고 제 2 서브-스텝(D54)은 상기 제 1 서브-스텝으로부터 발생하는 중간 블록에 적용됨 ― 를 포함하고,
    - 상기 적어도 하나의 역변환 서브-스텝은 상기 현재 변환된 블록(X') 및 상기 중간 블록(X'l)으로부터의 소위 프로세싱될 블록인 블록에 적용되며, 상기 역변환하는 단계는, 상기 프로세싱될 블록의 하나의 라인 또는 하나의 컬럼의 길이와 동일한 길이의 적어도 하나의 제 1 벡터(V'cj0, V'li0)에 제 1 역변환(C0-1, L0-1)을 그리고 하나의 라인 또는 하나의 컬럼의 길이와 각각 동일한 길이의 상기 블록의 적어도 하나의 제 2 벡터(V'cj1, V'li1)에 상기 제 1 역변환과 별개인 적어도 하나의 제 2 역변환(C1-1, L1-1)을 적용하는 것을 포함하고; 그리고
    - 상기 역변환하는 단계는 프로세싱된 벡터들(v'cj0, v'cj1, v'li0, v'li1)로부터 컬럼, 개별적으로는 라인의 길이와 동일한 길이들의 인접 픽셀들, 개별적으로는 인접 계수들의 시퀀스들을 포지셔닝함으로써, 프로세싱된 블록(X'1, x')을 형성하는 서브-스텝(D52, D55)를 더 포함하는,
    디지털 이미지를 디코딩하기 위한 방법.
  11. 제 10 항에 있어서,
    적어도 상기 현재 블록의 코딩 파라미터에 기반하여, 상기 벡터들에 적용될 적어도 2개의 별개의 변환들(C0-1, C1-1, L0-1, L1-1)을 결정하기 위한 예비 단계(D4)를 더 포함하는,
    디지털 이미지를 디코딩하기 위한 방법.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 역변환하는 단계는 상기 적어도 하나의 변환 서브-스텝에 앞서, 상기 제 1 벡터 및 제 2 벡터(V'cj0, V'cj1, V'li0, V'li1)에서 프로세싱될 블록의 인접 계수들의 시퀀스들을 재정렬하는 서브-스텝(D50, D53)을 더 포함하며,
    상기 시퀀스는 상기 프로세싱될 블록의 사이즈 중 하나와 동일한 길이를 갖는,
    디지털 이미지를 디코딩하기 위한 방법.
  13. 디지털 이미지를 나타내는 인코딩된 데이터를 포함하는 비트 스트림(TB)으로부터 상기 디지털 이미지를 디코딩하기 위한 디바이스(200)로서,
    상기 이미지는 정해진 순서로 프로세싱된 픽셀들의 복수의 블록들로 분할되고,
    상기 디바이스는 소위 현재 블록인 미리결정된 사이즈들의 블록에 대해 구현될 수 있는 유닛들을 포함하며,
    상기 유닛들은,
    - 상기 비트 스트림에서 판독된 데이터로부터, 현재 변환된 블록의 계수들을 디코딩하는 유닛(DECOD);
    - 디코딩된 계수들을 역양자화하는 유닛(DEQUANT);
    - 상기 현재 변환된 블록을 역변환하는 유닛(TRANS-1) ― 상기 유닛은 2개의 연속적인 역변환 서브-유닛들을 구현할 수 있으며, 제 1 서브-유닛은 상기 현재 블록에 그리고 제 2 서브-유닛은 상기 제 1 서브-유닛으로부터 발생하는 중간 블록에 적용됨 ― 을 포함하고,
    - 상기 현재 변환된 블록 및 상기 중간 블록으로부터의 소위 프로세싱될 블록인 블록(X', Xl)의 상기 적어도 하나의 역변환 서브-유닛은, 상기 프로세싱될 블록의 컬럼의, 개별적으로는 라인의 길이와 동일한 길이의, 상기 프로세싱될 블록의 계수들의 적어도 하나의 제 1 벡터(V'cj0, V'li0)에 제 1 역변환(C0-1, L0-1)을 그리고 상기 프로세싱될 블록의 컬럼의, 개별적으로는 라인의 길이와 동일한 길이의 픽셀들, 개별적으로는 상기 프로세싱될 블록의 계수들의 적어도 하나의 제 2 벡터(V'cj1, V'li1)에 상기 제 1 역변환과 별개인 적어도 하나의 제 2 역변환(C1-1, L1-1)을 적용하는 것을 포함하고; 그리고
    - 상기 역변환 유닛(D5)은 프로세싱된 벡터들(v'cj0, v'cj1, v'li0, v'li1)로부터 컬럼, 개별적으로는 라인의 길이와 동일한 길이들의 각각의 인접 픽셀들, 개별적으로는 인접 계수들의 시퀀스들을 포지셔닝함으로써, 프로세싱된 블록(X'1, x')을 형성하는 서브-유닛(D52, D55)을 더 포함하는,
    디지털 이미지를 디코딩하기 위한 디바이스(200).
  14. 디지털 이미지의 코딩된 데이터를 포함하는 비트 스트림(TB)을 운반하는 신호로서,
    상기 이미지는 픽셀들의 블록들로 분할되고, 현재 블록에 대해,
    - 상기 현재 블록을 변환된 블록으로 변환하는 단계(T2) 동안 상기 현재 블록의 코딩 동안 구현되는, 서로 별개인 적어도 하나의 제 1 변환 및 적어도 하나의 제 2 변환의 식별 정보를 나타내는 코딩된 데이터 ― 상기 단계(T2)는 상기 현재 블록을 변환된 블록으로 변환하기 위한 2개의 연속적인 서브-스텝들(T21, T24)을 구현하며, 적어도 하나의 변환 서브-스텝은 적어도 하나의 제 1 벡터(vlh0, vcw0)에 제 1 변환(L0, C0)을 그리고 상기 현재 블록 및 상기 중간 블록(x, Xl) 중에서 소위 변환될 블록인 블록의 적어도 하나의 제 2 벡터(vlh1, vcw1)에 상기 제 1 변환과 별개인 적어도 하나의 제 2 변환(L1, C1)을 적용하는 것을 포함함 ―, 및
    - 상기 변환될 블록으로 형성된 적어도 상기 제 1 벡터 및 상기 제 2 벡터를 나타내는 코딩된 데이터를 포함하며, 상기 벡터는 상기 변환될 블록의 사이즈들 중 하나와 동일한 길이를 갖는, 상기 변환될 블록의 인접 계수들, 개별적으로는 인접 픽셀들의 시퀀스를 포함하는,
    신호.
  15. 사용자 단말(UT)로서,
    제 9 항에 따른 디지털 이미지를 인코딩하기 위한 디바이스(100) 및 제 13 항에 따른 디지털 이미지를 디코딩하기 위한 디바이스(200)를 포함하는,
    사용자 단말(UT).
  16. 컴퓨터 프로그램(Pg1)으로서,
    프로세서에 의해 실행될 때, 제 1 항 내지 제 8 항 중 어느 한 항에 따른 디지털 이미지를 인코딩하기 위한 방법을 구현하기 위한 명령들을 포함하는,
    컴퓨터 프로그램(Pg1).
  17. 컴퓨터 프로그램(Pg2)으로서,
    프로세서에 의해 실행될 때, 제 10 항 내지 제 12 항 중 어느 한 항에 따른 디지털 이미지를 디코딩하기 위한 방법을 구현하기 위한 명령들을 포함하는,
    컴퓨터 프로그램(Pg1).
KR1020177021825A 2015-02-06 2016-02-05 디지털 이미지를 인코딩하기 위한 방법 그리고 연관된 디코딩 방법, 디바이스들 및 컴퓨터 프로그램들 KR20170134324A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1550984 2015-02-06
FR1550984A FR3032583B1 (fr) 2015-02-06 2015-02-06 Procede de codage d'une image numerique, procede de decodage, dispositifs, et programmes d'ordinateurs associes
PCT/FR2016/050246 WO2016124867A1 (fr) 2015-02-06 2016-02-05 Procede de codage d'une image numerique, procede de decodage, dispositifs, et programmes d'ordinateurs associes

Publications (1)

Publication Number Publication Date
KR20170134324A true KR20170134324A (ko) 2017-12-06

Family

ID=54065939

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177021825A KR20170134324A (ko) 2015-02-06 2016-02-05 디지털 이미지를 인코딩하기 위한 방법 그리고 연관된 디코딩 방법, 디바이스들 및 컴퓨터 프로그램들

Country Status (7)

Country Link
US (1) US20180020216A1 (ko)
EP (1) EP3254467A1 (ko)
JP (1) JP2018509070A (ko)
KR (1) KR20170134324A (ko)
CN (1) CN107409228A (ko)
FR (1) FR3032583B1 (ko)
WO (1) WO2016124867A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3044507A1 (fr) * 2015-11-30 2017-06-02 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
US11095893B2 (en) * 2016-10-12 2021-08-17 Qualcomm Incorporated Primary transform and secondary transform in video coding
EP3761642A4 (en) 2018-04-01 2021-04-14 LG Electronics Inc. METHOD AND APPARATUS FOR PROCESSING A VIDEO SIGNAL VIA THE APPLICATION OF A SECONDARY TRANSFORM ON A PARTITIONED BLOCK
CN113055687B (zh) * 2019-06-24 2022-07-29 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
US11064194B2 (en) 2019-10-31 2021-07-13 Western Digital Technologies, Inc. Encoding digital videos using controllers of data storage devices

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674910B1 (en) * 1998-11-24 2004-01-06 Hyundai Electronics Industries Co., Ltd. Apparatus and method for image-compression encoding and decoding using adaptive transform
JP2005167655A (ja) * 2003-12-03 2005-06-23 Matsushita Electric Ind Co Ltd 変換符号化方法および変換復号化方法
US9172968B2 (en) * 2010-07-09 2015-10-27 Qualcomm Incorporated Video coding using directional transforms
CN103069805B (zh) * 2011-06-27 2017-05-31 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置、图像解码装置及图像编码解码装置
WO2013003777A1 (en) * 2011-06-29 2013-01-03 General Instrument Corporation Methods and system for using a scan coding pattern during intra coding
CN104378637B (zh) * 2011-10-18 2017-11-21 株式会社Kt 视频信号解码方法
KR20130050149A (ko) * 2011-11-07 2013-05-15 오수미 인터 모드에서의 예측 블록 생성 방법

Also Published As

Publication number Publication date
CN107409228A (zh) 2017-11-28
US20180020216A1 (en) 2018-01-18
WO2016124867A1 (fr) 2016-08-11
FR3032583B1 (fr) 2018-03-02
FR3032583A1 (fr) 2016-08-12
JP2018509070A (ja) 2018-03-29
EP3254467A1 (fr) 2017-12-13

Similar Documents

Publication Publication Date Title
US9661354B2 (en) Method and apparatus for encoding/decoding image
CN107710763B (zh) 用于对数字图像进行编码的方法、解码方法、装置
KR20170134324A (ko) 디지털 이미지를 인코딩하기 위한 방법 그리고 연관된 디코딩 방법, 디바이스들 및 컴퓨터 프로그램들
US11350106B2 (en) Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs
US10911784B2 (en) Method of coding and decoding images, device for coding and decoding images and computer programmes corresponding thereto
KR102447425B1 (ko) 디지털 이미지를 디코딩하기 위한 방법, 코딩 방법, 디바이스들, 및 연관된 컴퓨터 프로그램들
EP3512201A1 (en) Image decoding method and apparatus relying on intra prediction in image coding system
CN108432254B (zh) 图像编码和解码方法、装置以及计算机存储介质
RU2646308C1 (ru) Способ декодирования видеосигнала