KR101874840B1 - 영상 부호화/복호화 장치 및 방법 - Google Patents

영상 부호화/복호화 장치 및 방법 Download PDF

Info

Publication number
KR101874840B1
KR101874840B1 KR1020170177017A KR20170177017A KR101874840B1 KR 101874840 B1 KR101874840 B1 KR 101874840B1 KR 1020170177017 A KR1020170177017 A KR 1020170177017A KR 20170177017 A KR20170177017 A KR 20170177017A KR 101874840 B1 KR101874840 B1 KR 101874840B1
Authority
KR
South Korea
Prior art keywords
block
information
mode
node
value
Prior art date
Application number
KR1020170177017A
Other languages
English (en)
Other versions
KR20180000336A (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 KR20180000336A publication Critical patent/KR20180000336A/ko
Application granted granted Critical
Publication of KR101874840B1 publication Critical patent/KR101874840B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • 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/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 영상 복호화에 관한 것으로, 영상 복호화 방법에 있어서, 복호화할 현재블록의 블록 모드가 스킵 모드인지 여부를 지시하는 블록 모드 정보를 비트스트림으로부터 복호화하는 단계, 상기 스킵 모드에서는 상기 비트스트림에 상기 현재블록의 움직임 정보가 포함되고 잔차 신호에 대한 정보는 포함되지 않음; 및 상기 블록 모드 정보에 근거하여 상기 현재블록을 복원하는 단계를 포함한다.

Description

영상 부호화/복호화 장치 및 방법{Video coding/decoding apparatus and method}
본 발명은 영상 부호화/복호화 장치 및 방법에 관한 것이다. 더욱 상세하게는, 영상을 부호화하는 데 이용되는 부호화 정보를 효율적으로 부호화하고 다양한 부호화 방식을 선택적으로 이용하여 영상을 부호화할 수 있도록 하며, 이와 같이 부호화된 부호화 정보 및 부호화 방식에 따라 대응적으로 영상을 복호화함으로써 영상의 압축 효율 및 복원 효율을 향상시킬 수 있는 영상 부호화/복호화 장치 및 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명의 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
동영상 데이터를 압축기술로는 H.261, H.263, MPEG-2, MPEG-4 등이 있다. 이러한 비디오 압축 표준은 각 영상을 휘도 성분의 16x16 크기의 화소들과 각 색차 성분의 8x8 크기의 화소들의 사각 영역으로 이루어진 고정된 크기를 가지는 매크로블록(Macroblock)들로 나누어 부호화한다. 각 매크로블록의 모든 휘도와 색차 성분들은 공간적으로나 시간적으로 예측되고, 예측 잔여분은 변환 및 양자화, 엔트로피 코딩이 수행되어 전송된다.
기존의 영상부호화 장치에서 사용하는 블록모드는 현재 부호화 대상 블록이 예측 움직임 벡터를 사용하고 부호화 할 변환계수가 없는 블록임을 나타내는 플래그를 부호화하고 더 이상의 정보는 부호화하지 않는다. 그리고 예측 움직임 벡터를 사용하지 않거나 부화화할 변환계수가 있는 블록인 경우 블록의 타입 정보와 예측 정보(예측움직임 벡터와의 차이 벡터와 참조픽처 번호)를 부호화하고 변환계수를 부호화한다.
하지만, 이와 같은 통상적인 영상 압축 기술에서는 부호화할 데이터로 차이 움직임 벡터만 있고 부호화 할 변환계수가 없는 블록의 경우, 또는 차이 움직임 벡터가 없고 부호화할 변환계수만 있는 블록을 부호화 할 경우 효율적인 부호화가 어려운 문제점이 있으며, 영상을 부호화하는 데 이용되는 다양한 정보 등의 효율적인 부호화가 어려운 문제점이 있다.
또한, 영상의 복호화는 영상의 부호화에 대응하여 이루어지기 때문에, 영상의 부호화에 대한 압축 효율이 저하된 상태에서는 고효율의 복호화를 기대하기 어렵다는 문제점이 있다.
전술한 문제점을 해결하기 위해 본 발명은, 영상을 부호화하는 데 이용되는 부호화 정보를 효율적으로 부호화하고 다양한 부호화 방식과 복호화 방식을 선택적으로 이용하여 영상을 부호화할 수 있도록 함으로써 영상의 압축 효율을 향상시키는 데 주된 목적이 있다.
본 발명의 일 측면에 따르면, 복호화할 현재블록의 블록 모드가 스킵 모드인지 여부를 지시하는 블록 모드 정보를 비트스트림으로부터 복호화하는 단계, 상기 스킵 모드에서는 상기 비트스트림에 상기 현재블록의 움직임 정보가 포함되고 잔차 신호에 대한 정보는 포함되지 않음; 및 상기 블록 모드 정보에 근거하여 상기 현재블록을 복원하는 단계를 포함하는 영상 복호화 방법을 제공한다.
상기 블록 모드 정보가 상기 스킵 모드를 지시하지 않을 때, 상기 현재블록을 복원하는 단계는, 상기 비트스트림으로부터 상기 현재블록의 예측 정보를 복호화하는 단계; 상기 비트스트림으로부터 트리 구조의 분할 정보를 복호화함으로써 상기 현재블록으로부터 분할된 하나 이상의 서브블록들의 잔차 신호에 대한 정보를 복원하는 단계; 및 상기 예측 정보 및 상기 서브블록들 각각의 잔차 신호에 대한 정보에 근거하여 상기 현재블록을 복원하는 단계를 포함한다.
한편, 상기 블록 모드 정보가 상기 스킵 모드를 지시할 때, 상기 현재블록을 복원하는 단계는, 상기 비트스트림으로부터 상기 현재블록의 잔차 신호에 대한 정보를 복호화함 없이, 상기 움직임 정보에 의해 예측한 예측블록을 상기 현재블록으로서 복원하는 단계를 포함한다.
상기 블록 모드 정보를 복호화하기 이전에, 상기 비트스트림으로부터 최소 서브블록 크기에 대한 정보 및 최대 서브블록 크기를 지시하기 위한 정보를 복호화하는 단계를 더 포함할 수 있고, 상기 현재블록으로부터 분할된 상기 서브블록들은 상기 최소 서브블록 크기 이상이고 상기 최대 서브블록 크기 이하의 크기를 가질 수 있다.
상기 분할 정보를 복호화하는 것은, 분할 플래그를 복호화하되, 상기 분할 플래그는 대응하는 블록이 상기 트리구조에서 복수의 하위 레이어 블록으로 분할되는지 여부를 지시하는 정보인 단계; 상기 대응하는 블록의 제1 색차 성분이 0이 아닌 변환 계수를 가지는지 여부를 지시하는 제1 부호화 블록 정보 및 제2 색차 성분이 0이 아닌 변환 계수를 가지는지 여부를 지시하는 제2 부호화 블록 정보를 복원하는 단계; 및 상기 대응하는 블록이 상기 복수의 하위 레이어 블록으로 분할되지 않을 때, 상기 대응하는 블록의 휘도 성분이 0이 아닌 변환 계수를 가지는지 여부를 지시하는 제3 부호화 블록 정보를 복원하고 상기 대응하는 블록을 상기 서브블록들 중 하나로 식별하는 단계를 포함할 수 있다.
여기서, 상기 제1 부호화 블록 정보는 상기 대응하는 블록의 상위 레이어 블록이 제1 색차 성분에 대한 0이 아닌 변환 계수를 가질 때 복원되고, 상기 제2 부호화 블록 정보는 상기 대응하는 블록의 상위 레이어 블록이 제2 색차 성분에 대한 0이 아닌 변환 계수를 가질 때 복원될 수 있다.
본 발명의 또 다른 측면에 따르면, 복호화할 현재블록의 블록 모드가 스킵 모드인지 여부를 지시하는 블록 모드 정보를 비트스트림으로부터 복호화하는 수단, 상기 스킵 모드에서는 상기 비트스트림에 상기 현재블록의 움직임 정보가 포함되고 잔차 신호에 대한 정보는 포함되지 않음; 및 상기 블록 모드 정보에 근거하여 상기 현재블록을 복원하는 수단을 포함하는 영상 복호화 장치를 제공한다.
상기 블록 모드 정보가 상기 스킵 모드를 지시하지 않을 때, 상기 현재블록을 복원하는 수단은, 상기 비트스트림으로부터 상기 현재블록의 예측 정보를 복호화하고, 상기 비트스트림으로부터 트리 구조의 분할 정보를 복호화함으로써 상기 현재블록으로부터 하나 이상으로 분할된 서브블록들의 잔차 신호에 대한 정보를 복원하며, 상기 예측 정보, 및 상기 현재블록 또는 상기 서브블록들 각각의 잔차 신호에 대한 정보에 근거하여, 상기 현재블록을 복원한다.
상기 블록 모드 정보가 상기 스킵 모드를 지시할 때, 상기 현재블록을 복원하는 수단은, 상기 비트스트림으로부터 상기 움직임 정보를 복호화하고, 상기 비트스트림으로부터 상기 현재블록의 잔차 신호에 대한 정보를 복호화함 없이 상기 움직임 정보에 의해 예측한 예측블록을 상기 현재블록으로서 복원한다.
이러한 본 발명에 따르면, 영상을 부호화하는 데 이용되는 부호화 정보를 효율적으로 부호화하고 다양한 부호화 방식과 복호화 방식을 선택적으로 이용하여 영상을 부호화할 수 있도록 함으로써 영상의 압축 효율을 향상시킬 수 있다.
또한, 영상의 부호화에 따라 적응적으로 영상을 복호화함으로써 영상의 복원 효율을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
도 2는 도 1의 영상 부호화기를 개략적으로 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 다양한 크기의 인트라 예측 부호화와 인터 예측 부호화를 위한 매크로블록과 서브블록을 나타낸 예시도이다.
도 4는 본 발명의 일 실시예에 따른 분할 타입별 번호를 나타낸 예시도이다.
도 5는 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시예에 따라 부호화된 비트스트림의 신택스 구조를 나타낸 예시도이다.
도 7 및 도 8은 본 발명의 일 실시예에 따라 트리 구조를 이용하여 분할 타입 정보를 부호화하는 과정을 설명하기 위한 예시도이다.
도 9 및 도 10은 본 발명의 실시예에 따른 트리 구조의 예를 설명하기 위해 도시한 도면이다.
도 11 및 도 12는 본 발명의 실시예에 따른 변환 타입의 부호화 및 복호화를 설명하기 위해 도시한 도면이다.
도 13은 부호화할 변환타입 값에 대한 최하위 노드값의 예를 나타낸 도면이다.
도 14는 도 13에 대한 최상위 노드값의 예를 나타낸 도면이다.
도 15는 도 11의 매크로블록 번호 1에 대한 트리구조의 예를 나타낸 도면이다.
도 16은 도 11의 매크로블록 번호 4에 대한 트리구조의 예를 나타낸 도면이다.
도 17은 도 11의 매크로블록 번호 7에 대한 트리구조의 예를 나타낸 도면이다.
도 18은 부호화할 변환 타입 값에 대한 최하위 노드 값의 다른 예를 나타낸 도면이다.
도 19는 도 18에 대한 매크로블록 번호 4의 트리구조의 예를 나타낸 도면이다.
도 20은 도 18에 대한 매크로블록 번호 7의 트리구조의 예를 나타낸 도면이다.
도 21은 CBPX 플래그 및 CBP의 부호화/복호화 순서를 설명하기 위해 도시한 흐름도이다.
도 22는 부호화기에서 선택된 블록 모드 및 선택된 변환타입의 예를 나타낸 도면이다.
도 23은 CBP 비트의 전송단위와 CBP 비트값에 대한 최하위 노드값의 예를 나타낸 도면이다.
도 24는 도 23에 대한 16x16 영역에 해당하는 블록을 최상위 블록으로 사용하는 경우의 최상위 노드값의 예를 나타낸 도면이다.
도 25는 델타 양자화 파라미터 부호화의 예를 설명하기 위해 도시한 도면이다.
도 26은 도 25의 델타 양자화 파라미터를 약속된 코드번호로 변환한 경우의 예를 나타낸 도면이다.
도 27은 도 26의 트리구조 생성예를 설명하기 위해 도시한 도면이다.
도 28은 도 26의 트리구조 생성의 다른 예를 설명하기 위해 도시한 도면이다.
도 29는 델타 양자화 파라미터 부호화의 다른 예를 설명하기 위해 도시한 도면이다.
도 30은 도 29의 델타 양자화 파라미터의 절대값을 취한 경우를 나타낸 도면이다.
도 31은 도 29의 부호를 부호화하는 방법을 설명하기 위해 도시한 도면이다.
도 32는 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
도 33은 도 32의 영상 복호화기를 개략적으로 도시한 도면이다.
도 34는 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
도 35는 본 발명의 다른 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
도 36은 본 발명의 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
도 37은 본 발명의 다른 실시예에 따른 영상 복호화 장치의 구성을 간략하게 나타낸 블록 구성도이다.
도 38은 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
도 39는 본 발명의 제2 실시예에 따른 변환 정보 부호화의 예를 설명하기 위해 도시한 도면이다.
도 40은 트리 구조를 이용한 도39의 서브 블록 B의 변환 정보 부호화 예시를 설명하기 위한 도면이다.
도 41은 트리 구조를 이용한 도 39의 서브 블록 C의 변환 정보 부호화 예시를 설명하기 위한 도면이다.
도 42는 트리 구조를 이용한 도 39의 서브 블록 C의 변환 정보 부호화의 또 다른 예시를 설명하기 위한 도면이다.
도 43은 트리 구조를 이용한 도 39의 서브 블록 D의 변환 정보 부호화 예시를 설명하기 위한 도면이다.
후술할 본 발명의 실시예에 따른 영상 부호화 장치(Video Encoding Apparatus)와 영상 복호화 장치(Video Decoding Apparatus)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선통신 단말기(Wireless Communication Terminal), 스마트 폰(Smart Phone) 등일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미한다.
또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등의 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
이하의 설명에서는 입력 영상이 매크로블록 단위로 분할되어 부호화되고 복호화되는 것으로 설명하지만, 본 발명의 실시예는 이에 한정되지 않고 매크로블록과 같이 정형화된 블록의 형태가 아닌 원형, 사다리꼴, 6각형 등 다양한 비정형의 영역으로 분할되어 분할된 영역 단위로 부호화되고 복호화될 수도 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 부호화 정보 부호화기(110) 및 영상 부호화기(200)를 포함하여 구성될 수 있다.
부호화 정보 부호화기(Encoding Information Encoder, 110)는 영상의 부호화하고자 하는 블록의 블록 모드(Block Mode)가 스킵 모드(Skip Mode)인지 여부를 나타내는 블록 모드 정보(Block Mode Information)와 블록이 서브블록으로 분할되는지 여부를 나타내는 분할 모드 정보(Partition Mode Information)를 부호화하고, 블록 모드 정보 및 분할 모드 정보의 조합에 따라 블록의 스킵 움직임 정보(Skip Motion Information)를 부호화하거나 블록의 블록 타입 정보(Block Type Information)와 예측 정보(Prediction Information)를 포함하는 예측 부호화 정보(Prediction Encoding Information)를 부호화한다.
본 발명의 실시예에서, 부호화 정보란 영상의 화소 정보를 블록 단위로 부호화할 때 화소 정보 그 자체가 아니라 화소 정보를 부호화하는 데 이용되는 부가적인 정보를 말한다. 이러한 부호화 정보로서는 블록의 블록 모드 정보, 분할 모드 정보, 스킵 움직임 정보, 블록 타입 정보, 예측 정보, 예측 부호화 정보, 변환 타입 정보(Transform Type Information), 부호화된 블록 패턴(CBP: Coded Block Pattern), 델타 양자화 파라미터(Delta Quantization Parameter), 스킵 타입 정보 등과 같은 정보가 될 수 있다.
블록 모드 정보란 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 정보를 말한다. 블록 모드란 블록을 부호화하지 않고 스킵할지 아니면 스킵하지 않고 부호화할지 여부를 나타내는 모드로서 스킵 모드(Skip Mode)와 넌스킵 모드(Non-skip Mode)의 두 가지 모드로 나타낼 수 있다. 이러한 블록 모드 정보는 예를 들어 블록의 블록 모드가 스킵 모드인지 또는 넌스킵 모드인지 여부를 나타내는 1 비트의 플래그(Flag)인 스킵 블록 플래그로 구현될 수 있지만, 반드시 이에 한정되지 않고 다른 다양한 방식으로 구현될 수도 있다.
스킵 모드(Skip Mode)란 블록 타입 정보, 움직임 정보 또는 변환계수와 같은 특정 정보들을 부호화하지 않는 모드를 뜻한다.
예를 들어, 영상 부호화 장치(100)가 입력 영상에서 현재 부호화하고자 하는 블록이 스킵 모드인 경우 스킵임을 나타내는 정보만을 부호화하고 그 외 블록 타입, 움직임 정보, 변환계수 등은 부호화지 않는 모드일 수 있다.
또 다른 예로, 스킵 모드는 블록의 움직임 정보만 부호화하고 타입정보, 변환계수와 같은 정보는 부호화 하지 않는 모드일 수 있다.
또 다른 예로, 스킵 모드는 블록의 변환타입과 변환계수만을 부호화하고 타입정보, 움직임 정보는 부호화 하지 않는 모드일 수 있다.
또 다른 구현 예로, 블록 크기 별로 스킵 모드인 경우의 전송하지 않는 정보들이 다를 수 있다. 예를 들어 64x64블록이 스킵모드인 경우에는 변환계수만을 부호화하고, 16x16블록이 스킵모드인 경우에는 움직임 정보만을 부호화할 수 있다.
분할 모드 정보란 블록이 더 작은 서브블록으로 분할되는지 여부를 나타내는 정보를 말한다.
예를 들어, 영상 부호화 장치(100)가 입력 영상에서 현재 부호화하고자 하는 블록이 매크로블록이고 매크로블록의 크기가 64x64 화소 크기의 블록이라고 가정하면, 64x64 화소 크기의 매크로블록은 두 개의 64x32 화소 크기의 서브블록, 하나의 64x32 화소 크기의 서브블록과 두 개의 32x32 화소 크기의 서브블록, 네 개의 32x32 화소 크기의 서브블록 등과 같이 다양한 크기와 개수의 서브블록으로 분할되어 서브블록 별로 부호화될 수 있는데, 분할 모드 정보는 매크로블록이 서브블록들로 분할되어 부호화되는지 여부를 나타낸다. 이러한 분할 모드 정보는 예를 들어 블록이 서브블록으로 분할되는지 또는 분할되지 않는지 여부를 나타내는 1 비트의 플래그인 분할 플래그(Partition Flag)로 구현될 수 있지만, 반드시 이에 한정되지 않고 다른 다양한 방식으로 구현될 수도 있다.
또 다른 예로, 분할 모드 정보는 블록이 특정 크기의 더 작은 서브블록으로 분할되는지 여부를 나타내는 정보를 말한다.
예를 들어 영상 부호화 장치(100)가 입력 영상에서 현재 부호화하고자 하는 블록이 매크로블록이고 매크로블록의 크기가 64x64화소 크기의 블록이라고 가정하면, 16x16블록으로 분할되는지를 나타내는 1 비트 플래그를 통해 64x64 화소 크기의 매크로블록은 16개의 16x16블록으로 분할될 수 있고 각 16x16블록에 대해서는 더 작은 서브블록으로 분할 될 수 있으며 서브블록의 모양을 나타내는 정보(분할 타입)를 통해 부호화 할 수 있다.
스킵 움직임 정보는 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 해당 블록에 대해 움직임 추정하여 결정된 움직임 벡터 그 자체나 해당 블록의 움직임 벡터와 해당 블록의 예측 움직임 벡터 간의 차분 벡터 및/또는 참조 픽처 인덱스를 말한다. 즉, 해당 블록의 블록 모드가 스킵 모드인 경우, 영상 부호화 장치(100)는 해당 블록의 계수 정보는 부호화하지 않고 스킵 움직임 정보만을 부호화하며, 후술할 영상 복호화 장치에서 스킵 움직임 정보를 복원하고 복원된 스킵 움직임 정보를 이용하여 해당 블록의 움직임을 보상하여 해당 블록을 복원한다.
스킵 모드의 또 다른 구현 예로, 부호화하고자 하는 참조 픽처 인덱스가 0인 경우에만 스킵 모드를 적용하여 블록의 블록 모드가 스킵 모드인 경우, 영상 부호화 장치(100)는 해당 블록에 대해 움직임 추정하여 결정된 움직임 벡터 그 자체나 해당 블록의 움직임 벡터와 해당 블록의 예측 움직임 벡터 간의 차분 벡터만을 부호화 하고 참조 픽처 인덱스와 해당 블록의 움직임 정보는 부호화하지 않는다. 후술하는 영상 복호화 장치에서는 결정된 움직임 벡터 그 자체 또는 해당 블록의 움직임 벡터와 해당 블록의 예측 움직임 벡터간의 차분 벡터만을 복원하고 참조 픽처 인덱스를 0 (즉, 바로 이전에 복원된 픽처를 참조 픽처로 사용)으로 하여 해당 블록을 움직임을 보상하여 해당 블록을 복원한다.
스킵 모드의 또 다른 구현 예로, 부호화하고자 하는 블록의 예측 움직임 벡터 결정 시 현재 부호화 대상 블록의 위쪽 블록과 왼쪽 블록의 움직임 벡터 중 하나 이상이 움직임 벡터가 제로벡터(Zero-Vector인 경우, 즉 {0,0})인 경우 예측 움직임 벡터로 제로벡터를 사용할 수 도 있다. 그 외의 경우 위, 왼쪽, 위-오른쪽 블록의 움직임 벡터의 중앙값을 예측 움직임 벡터로 사용한다. 후술하는 영상 복호화 장치에서는 현재 복호화 대상인 블록이 스킵 모드인 경우, 예측 움직임 벡터 결정시 위 또는 왼쪽 블록의 움직임 벡터가 {0,0}인 경우 예측 움직임 벡터로 {0,0}벡터를 사용하고 복원된 차이벡터를 복원하여 움직임 보상을 수행하여 해당 블록을 복원한다.
또 다른 구현 예로, 블록 크기 별 다른 예측 움직임 벡터를 사용하도록 할 수도 있다. 일 예로, 16x16보다 큰 블록에 대해서는 현재 부호화 대상 블록의 위쪽 블록과 왼쪽 블록의 벡터값과 상관없이 median vector를 예측 움직임 벡터로 사용하고 16x16 크기의 블록에 대해서는 현재 부호화 대상 블록의 위쪽 블록 또는 왼쪽 블록의 벡터가 (0,0)인 경우 zero-vector를 예측벡터로 사용하며 그 외의 경우 왼쪽 블록, 위쪽 블록, 위-왼쪽 블록의 세 개의 움직임 벡터의 median 벡터를 예측 움직임 벡터로 사용한다. (반대의 경우도 성립)
블록 타입 정보는 부호화하고자 하는 블록의 블록 모드가 스킵 모드가 아닌 경우, 해당 블록이 인터 블록인지 또는 인트라 블록인지 여부와 해당 블록의 서브블록의 분할 타입을 나타내는 정보를 말한다.
일 예로, 이러한 블록 타입 정보는 매크로블록 단위로 부호화 할 수 있으며 해당 매크로 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 1 비트의 블록 타입 플래그(Block Type Flag)와 해당 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보(Partition Type Information)를 포함하여 구현될 수 있다. 예를 들어, 블록 타입 플래그는 해당 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 1 또는 0의 이진 비트로 나타낼 수 있다. 분할 타입 정보는 서브블록의 분할 타입별 번호로 나타낼 수 있다. 다른 예로, 블록 타입 정보는 16x16 크기 단위로 부호화 할 수 있으며 현재 16x16블록이 인트라 블록인 경우 현재 블록 내 서브블록들은 모두 인트라 모드임을 나타낸다.
또 다른 예로, 블록 타입 정보는 해당 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 1 비트의 블록 타입 플래그와 해당 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보와 서브블록의 블록 모드가 스킵 모드인지 여부를 나타내는 1 비트의 스킵 서브블록 플래그(Skip Subblock Flag)를 포함하여 구현될 수 있다. 여기서, 스킵 서브블록 플래그는 해당 블록의 서브블록 각각이 스킵 모드인지 여부를 나타내며, 어느 서브블록이 스킵 모드인 경우, 해당 서브블록에 대해서는 부호화하지 않고 스킵함을 나타낸다. 즉, 부호화하고자 하는 블록의 서브블록들 중에서 어느 서브블록이 스킵 모드인 경우, 해당 서브블록에 대해서는 움직임 정보나 계수 정보가 부호화되지 않는다.
또 다른 예로, 블록 타입 정보는 해당 블록이 인터 블록인지 또는 인트라 블록인지 여부와 해당 블록의 서브블록의 분할 타입을 기초로 이용 가능한 복수 개의 블록 타입에 할당된 블록 타입 번호로 구현될 수 있다.
또한, 블록 타입 정보는 분할 모드 정보에 따라 부호화하고자 하는 블록의 블록 타입을 나타내거나 부호화하고자 하는 블록의 서브블록 각각의 블록 타입을 나타낼 수 있다. 예를 들어, 분할 모드 정보가 부호화하고자 하는 블록이 서브블록으로 분할되지 않음을 나타내는 경우, 분할 타입 정보는 부호화하고자 하는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부와 해당 블록의 분할 타입(즉, 분할되지 않은 매크로블록의 타입)을 나타내며, 분할 모드 정보가 부호화하고자 하는 블록이 서브블록으로 분할됨을 나타내는 경우, 분할 타입 정보는 부호화하고자 하는 블록의 각 서브블록이 인터 블록인지 또는 인트라 블록인지 여부와 해당 블록의 서브블록들의 분할 타입을 나타낸다.
예측 정보는 부호화하고자 하는 블록 또는 해당 블록의 각 서브블록을 예측 부호화할 때, 예측에 이용된 정보를 말한다. 이러한 예측 정보는 인트라 예측 부호화를 위한 인트라 예측 모드에 대한 정보가 될 수도 있고 인터 예측 부호화를 위한 움직임 벡터에 대한 정보와 참조 픽처 인덱스(Reference Picture Index)에 대한 정보 등이 될 수 있다.
변환 타입 정보는 부호화하고자 하는 블록 또는 해당 블록의 각 서브블록을 변환 및 양자화할 때, 변환 및 양자화를 수행한 변환 단위에 대한 정보를 말한다. 예를 들어, 64x64 화소 크기의 블록이 더 이상 분할되지 않고 부호화되고 16x16 변환이 효율적인 것으로 결정된 경우에는 16x16 변환이 사용되었음을 나타내는 정보가 변환 타입 정보로 부호화될 수 있다.
부호화된 블록 패턴은 부호화하고자 하는 블록 또는 해당 블록의 각 서브블록의 계수가 모두 0인지 여부를 나타내는 정보를 말하며, 델타 양자화 파라미터는 부호화하고자 하는 블록 또는 해당 블록의 각 서브블록에 대한 양자화 파라미터를 나타내는 정보를 말한다.
이상에서 전술한 블록 모드 정보, 분할 모드 정보, 블록 타입 정보, 예측 정보, 분할 타입 정보, 부호화된 블록 패턴, 델타 양자화 파라미터는 부호화 정보 부호화기(110)가 입력 영상을 분석하여 결정할 수도 있지만, 영상 부호화기(200)가 입력 영상을 분석하여 결정할 수도 있다.
영상 부호화기(200)는 블록의 블록 타입 정보와 예측 정보를 기초로 블록의 계수 정보를 부호화한다. 예를 들어, 영상 부호화기(200)는 블록 모드 정보가 부호화하고자 하는 블록의 블록 모드가 스킵 모드가 아님을 나타내고, 블록 타입 정보가 해당 블록이 여러 가지의 형태와 크기의 서브블록으로 분할되었음을 나타내는 경우, 각 서브블록 별 예측 정보에 따라 각 서브블록을 인트라 예측 부호화하거나 인터 예측 부호화하여 해당 블록의 계수 정보를 부호화한다. 여기서, 계수 정보란 영상의 부호화하고자 하는 블록의 휘도 성분 및/또는 색차 성분을 예측하여 그 잔차 블록을 변환 및 양자화하여 생성되는 양자화된 변환 계수에 대한 정보를 말하며, 계수 정보가 부호화되어 텍스처 데이터(Texture Data)로서 비트스트림에 포함된다.
도 2는 본 발명의 실시예에 따른 영상 부호화기(200)를 개략적으로 도시한 도면이다. 도면을 참조하면, 영상 부호화기(200)는 예측기(Predictor)(210), 감산기(Subtracter)(220), 변환기 및 양자화기(Transformer and Quantizer)(230), 부호화기(Encoder)(240), 역양자화기 및 역변환기(Inverse Transformer and Inverse Quantizer)(250), 가산기(Adder)(260), 필터(Filter)(270) 및 픽처 버퍼(Picture Buffer)(280)를 포함하여 구성될 수 있다.
예측기(210)는 인트라 예측기(Intra Predictor)(212)와 인터 예측기(Inter Predictor)(214)를 포함하여 구성될 수 있으며, 인터 예측기(214)는 다시 움직임 추정기(Motion Estimator)(216)와 움직임 보상기(Motion Compensator)(218)를 포함하여 구성될 수 있다.
동영상의 하나의 픽처 또는 프레임으로 이루어진 입력 영상(Input Picture)은 NxN(단, N은 16이상의 정수) 화소를 가지는 매크로블록(Macroblock)들로 분할되고, 분할된 각 매크로블록은 도 1의 영상 부호화 장치(100)에 입력된다. 입력 영상이 4:2:0 포맷(Format)의 영상의 경우, 매크로블록은 NxN 화소를 가지는 휘도 블록(Luminance Block)과 두 개의 (M/2)x(N/2) 화소를 가지는 색차 블록(Chrominance Block)으로 이루어진다. 여기서, 매크로블록은 16x16 화소블록 뿐만 아니라, 32x32 화소블록, 64x64 화소블록 등을 포함하며, 16x16 화소블록보다 큰 매크로블록을 확장된 매크로블록이라고도 한다.
각 매크로블록은 도 3에 도시한 바와 같이 내부적으로 더 작은 서브블록(Subblock)으로 분할되어 인트라 예측 부호화(Intra Prediction Encoding) 또는 인터 예측 부호화(Inter Prediction Encoding)가 수행될 수 있다.
도 3은 본 발명의 실시예에 따른 인트라 예측 부호화와 인터 예측 부호화를 위한 매크로블록과 다양한 크기의 서브블록을 나타낸 예시도이다.
도 3은 N이 16 이상의 정수이며 최소 블록의 크기가 4x4화소인 경우의 매크로블록과 서브블록을 예시적으로 나타내었다. 매크로블록이 64x64 화소 블록일 때, 서브블록인 64x64 화소 블록, 64x32 화소 블록, 32x64 화소 블록, 32x32 화소 블록은 매크로블록 레이어(Layer) 0에 속하고, 서브블록인 32x32 화소 블록, 32x16 화소 블록, 16x32 화소 블록, 16x16 화소 블록은 매크로블록 레이어 1에 속한다. 여기서, 매크로블록 레이어 K(단, 0≤K≤log2(N/4))의 서브블록 중 제일 큰 서브블록이 4 개의 블록으로 분할된 경우에만 매크로블록 레이어 K+1의 서브블록들이 사용될 수 있다.
영상 부호화 장치(100)는 각 서브블록으로 매크로블록을 부호화했을 경우의 부호화 효율을 계산하고, 가장 부호화 효율이 높은 경우의 서브블록을 최종적인 인트라 예측 블록 또는 인터 예측 블록으로 결정할 수 있다. 부호화 효율은 율-왜곡 최적화(RDO: Rate-Distortion Optimization) 기법에 근거하여 측정할 수 있다.
최소 블록의 크기는 최대로 사용할 수 있는 레이어값인 최대 레이어값(MaxLayer)에 따라 결정될 수 있다. 예를 들어, NxN 화소의 매크로블록인 경우, 최소 블록의 크기는 N/(2MaxLayer)로 결정될 수 있다.
도 4는 본 발명의 일 실시예에 따른 분할 타입별 번호를 나타낸 예시도이다.
매크로블록 레이어 K의 N/2K × N/2K 화소 블록이 더 이상 작은 서브블록으로 분할되지 않는 경우에는 매크로블록 레이어 K의 N/2K × N/2K 화소 블록에 분할 타입 번호 0이 할당된다. 매크로블록 레이어 K의 N/2K × N/2K 화소 블록이 두 개의 N/2K × N/2K+ 1 화소 블록으로 분할된 경우에는 매크로블록 레이어 K의 N/2K × N/2K 화소 블록에 분할 타입 번호 1이 할당된다. 매크로블록 레이어 K의 N/2K × N/2K 화소 블록이 두 개의 N/2K+1 × N/2K 화소 블록으로 분할된 경우에는 매크로블록 레이어 K의 N/2K × N/2K 화소 블록에 분할 타입 번호 2가 할당된다. 매크로블록 레이어 K의 N/2K × N/2K 화소 블록이 4 개의 N/2K+1 × N/2K+ 1 로 분할되는 경우에는 매크로블록 레이어 K의 N/2K × N/2K 화소 블록에 분할 타입 번호 3이 할당된다. 도 3에서 각 매크로블록 레이어 K의 N/2K × N/2K 화소 블록 내의 분할된 서브블록에 표시된 0, 1, 2, 3 등의 숫자는 각 서브블록을 식별하기 위한 파티션 번호(Partition Number)이다.
도 5는 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 영상 부호화 방법에 따르면, 영상 부호화 장치(100)는 영상의 부호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 블록 모드 정보를 부호화한다(S510). 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록의 계수 정보를 부호화할지 아니면 블록의 계수 정보는 부호화하지 않고 블록의 움직임 정보만을 부호화할지 여부를 결정하고, 블록의 움직임 정보만을 부호화하는 경우 블록 모드가 스킵 모드임을 나타내는 블록 모드 정보를 부호화하며, 블록의 움직임 정보뿐만 아니라 블록의 계수 정보도 부호화하는 경우 블록 모드가 스킵 모드가 아님을 나타내는 블록 모드 정보를 부호화한다.
영상 부호화 장치(100)는 해당 블록이 서브블록으로 분할되는지 여부를 나타내는 분할 모드 정보를 부호화한다(S520). 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록을 더 작은 서브블록으로 분할하여 서브블록 별로 부호화할지 아니면 블록을 더 작은 서브블록으로 분할하지 않고 부호화할지 여부를 결정하고, 블록을 더 작은 서브블록으로 분할하지 않고 부호화하는 경우 블록이 서브블록으로 분할되지 않음을 나타내는 분할 모드 정보를 부호화하며, 블록을 더 작은 서브블록으로 분할하여 부호화하는 경우 블록이 서브블록으로 분할됨을 나타내는 분할 모드 정보를 부호화한다. 예를 들어, 부호화하고자 하는 블록이 64x64 화소 크기의 매크로블록인 경우, 영상 부호화 장치(100)는 64x64 화소 크기의 매크로블록을 16x16 화소 크기의 서브블록들로 분할하여 부호화할지 분할하지 않고 부호화할지 여부를 결정하고, 그에 따라 분할 모드 정보를 부호화한다. 64x64화소 크기의 매크로블록을 16x16화소 크기의 서브블록들로 분할하여 부호화할 경우, 각각의 16x16 블록들은 더 작은 크기의 서브블록들로 분할될 수 있으며 블록타입을 부호화하여 복호화기에 전송한다
영상 부호화 장치(100)는 블록 모드 정보 및 분할 모드 정보의 조합에 따라 블록의 스킵 움직임 정보를 부호화하거나 블록의 블록 타입 정보 및 블록의 예측 정보를 포함하는 예측 부호화 정보를 부호화하고(S530), 블록 타입 정보 및 예측 정보를 기초로 블록의 계수 정보를 부호화한다(S540). 즉, 영상 부호화 장치(100)는 블록 모드 정보가 부호화하고자 하는 블록의 블록 모드가 스킵 모드임을 나타내는지 여부와 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는지 여부를 조합한 각 경우에 따라서 블록을 다른 방식으로 부호화한다.
이하에서는 부호화하고자 하는 블록이 64x64 화소 크기의 매크로블록이며 16x16 화소 크기의 서브블록으로 분할되는 경우를 가정하여 영상 부호화 장치(100)의 단계 S530 및 단계 S540의 수행 과정에 대해 예를 들어 설명한다.
단계 S530에서, 블록 모드 정보가 블록의 블록 모드가 스킵 모드임을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할되지 않음을 나타내는 경우, 영상 부호화 장치(100)는 블록에 대한 스킵 움직임 벡터를 부호화할 수 있다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록에 대해 64x64 화소 단위로 움직임 추정하여 부호화하고자 하는 블록과 가장 유사한 블록인 참조 블록을 참조 픽처 내에서 찾고 참조 블록과 부호화하고자 하는 블록의 상대적인 위치를 나타내는 움직임 벡터를 스킵 움직임 벡터로서 결정하고 참조 블록이 포함된 참조 픽처를 나타내는 참조 픽처 인덱스를 스킵 참조 픽처 인덱스로서 결정하며, 스킵 움직임 벡터와 스킵 참조 픽처 인덱스를 포함하는 스킵 움직임 정보를 부호화한다.
단계 S530에서, 영상 부호화 장치(100)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드임을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는 경우, 부호화하고자 하는 블록의 서브블록에 대한 스킵 움직임 벡터를 부호화할 수 있다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록의 각 서브블록에 대해 16x16 화소 단위로 움직임 추정하여 부호화하고자 하는 블록의 각 서브블록과 가장 유사한 블록인 참조 서브블록을 참조 픽처 내에서 찾고 참조 서브블록과 부호화하고자 하는 블록의 각 서브블록의 상대적인 위치를 나타내는 움직임 벡터를 스킵 움직임 벡터로서 결정하고 참조 서브블록이 포함된 참조 픽처를 나타내는 참조 픽처 인덱스를 스킵 참조 픽처 인덱스로서 결정하며, 스킵 움직임 벡터와 스킵 참조 픽처 인덱스를 포함하는 스킵 움직임 정보를 부호화한다. 따라서, 블록 모드 정보가 블록의 블록 모드가 스킵 모드임을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는 경우, 스킵 움직임 정보는 각 서브블록의 개수만큼 부호화된다.
단계 S530 및 단계 S540에서, 영상 부호화 장치(100)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드가 아님을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할되지 않음을 나타내는 경우, 부호화하고자 하는 블록에 대한 블록 타입 정보 및 예측 정보를 포함하는 예측 부호화 정보를 부호화할 수 있다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록에 대해 64x64 화소 단위로 움직임 추정하여 부호화하고자 하는 블록과 가장 유사한 블록인 참조 블록을 참조 픽처 내에서 찾고 참조 블록과 부호화하고자 하는 블록의 상대적인 위치를 나타내는 움직임 벡터를 결정하고 참조 블록이 포함된 참조 픽처를 나타내는 참조 픽처 인덱스를 결정하며, 결정된 움직임 벡터를 기초로 부호화하고자 하는 블록의 움직임을 보상하여 생성되는 예측 블록과 부호화하고자 하는 블록 간의 차이인 잔여 블록을 변환 및 양자화한 계수 정보를 부호화하며, 예측 부호화에 이용되는 블록 타입 정보와 예측 정보 등도 부호화한다.
단계 S530 및 단계 S540에서, 영상 부호화 장치(100)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드가 아님을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는 경우, 블록의 서브블록에 대한 블록 타입 정보 및 예측 정보를 포함하는 예측 부호화 정보를 부호화할 수 있다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록의 서브블록의 블록 타입이 인터 블록인 경우, 부호화하고자 하는 블록의 각 서브블록은 16x16, 16x8, 8x16, 8x8 크기의 서브블록으로 분할될 수 있으며 16x16블록이 4개의 8x8 크기의 서브블록으로 분할된 경우 각 8x8블록은 8x8블록 내에서 8x8, 8x4, 8x4, 4x4 크기의 더 작은 서브블록으로 분할 될 수 있다. 서브블록의 크기 단위로 움직임 추정하여 부호화하고자 하는 블록의 각 서브블록과 가장 유사한 블록인 참조 서브블록을 참조 픽처 내에서 찾고 참조 서브블록과 부호화하고자 하는 블록의 각 서브블록의 상대적인 위치를 나타내는 움직임 벡터를 결정하고 참조 서브블록이 포함된 참조 픽처를 나타내는 참조 픽처 인덱스를 결정하며, 결정된 각 서브블록에 대한 움직임 벡터를 기초로 부호화하고자 하는 블록의 각 서브블록의 움직임을 보상하여 생성되는 예측 서브블록과 부호화하고자 하는 블록의 각 서브블록 간의 차이인 잔여 서브블록을 변환 및 양자화한 계수 정보를 부호화하며, 예측 부호화에 이용되는 블록 타입 정보와 예측 정보 등과 같은 예측 부호화 정보도 부호화한다.
만약, 부호화하고자 하는 블록의 서브블록의 블록 타입이 인트라 블록인 경우에는 해당 서브블록의 인트라 예측 모드를 결정하고 결정된 인트라 예측 모드를 기초로 예측 부호화하여 계수 정보와 예측 부호화 정보를 부호화한다. 따라서, 블록 모드 정보가 블록의 블록 모드가 스킵 모드가 아님을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할되지 않음을 나타내는 경우, 계수 정보와 예측 부호화 정보는 각 서브블록의 개수만큼 부호화된다.
여기서, 블록 타입 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부와 블록의 서브블록의 분할 타입을 기초로 이용 가능한 복수 개의 블록 타입에 할당된 블록 타입 번호일 수 있다. 예측 부호화 정보는 서브블록에 대한 변환 타입 정보, 서브블록에 대한 부호화된 블록 패턴 및 서브블록에 대한 델타 양자화 파라미터 중 하나 이상을 추가로 포함할 수 있다. 블록 타입 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 블록 타입 플래그와 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보를 포함할 수 있다.
또한, 블록 모드 정보가 부호화하고자 하는 블록의 블록 모드가 스킵 모드가 아님을 나타내고 분할 모드 정보가 해당 블록이 서브블록으로 분할됨을 나타내는 경우, 블록 타입 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 블록 타입 플래그와 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보뿐만 아니라 서브블록의 블록 모드가 스킵 모드인지 여부를 나타내는 스킵 서브블록 플래그를 추가로 포함할 수 있다. 즉, 영상 부호화 장치(100)는 부호화하고자 하는 블록의 블록 모드가 스킵 모드가 아니고 해당 블록이 서브블록으로 분할되는 경우, 각 서브블록에 대해 반드시 계수 정보와 예측 부호화 정보를 부호화해야 하는 것은 아니며, 임의의 서브블록의 블록 모드가 스킵 모드인 경우에는 스킵 서브블록 플래그만을 부호화할 수 있다.
단계 S530에서, 영상 부호화 장치(100)는 블록 타입 정보를 부호화할 때, 트리 구조를 이용하여 분할 타입 정보를 부호화할 수 있다. 예를 들어, 영상 부호화 장치(100)는 복수 개의 서브블록을 일정한 영역 단위로 그룹화하고, 그룹화된 영역에 포함되는 서브블록들의 분할 타입값의 최소값을 그룹화된 영역에 대한 분할 타입값으로 할당하는 과정을 최상위 레이어까지 레이어별로 반복하며, 레이어별로 그룹화된 영역에 대한 분할 타입값과 상위 레이어의 그룹화된 영역에 대한 분할 타입값 간의 차이값을 부호화함으로써 분할 타입 정보를 부호화할 수 있다. 영상 부호화 장치(100)가 분할 타입 정보를 부호화하는 방법에 대해서는 후술하는 과정에서 도 7 및 도 8을 통해 상세히 설명한다.
도 6은 본 발명의 일 실시예에 따라 부호화된 비트스트림의 신택스 구조를 나타낸 예시도이다.
전술한 본 발명의 일 실시예에 따른 영상 부호화 방법에 따라 영상 부호화 장치(100)가 입력 영상의 부호화하고자 하는 블록을 부호화하면 도 6에 도시한 바와 같은 신택스 구조를 가지는 비트스트림이 생성될 수 있다. 도 6에서는 부호화하고자 하는 블록에 대한 비트스트림을 나타내었다.
6A는 블록 모드가 스킵 모드인 경우의 비트스트림의 신택스 구조를 나타낸 것이다. 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 해당 블록을 부호화하여 생성되는 비트스트림은 블록 모드 정보 필드, 분할 모드 정보 필드 및 스킵 움직임 정보 필드를 포함하여 구성될 수 있다. 블록 모드 정보 필드에는 블록 모드 정보가 부호화된 데이터가 할당되고, 분할 모드 정보 필드에는 분할 모드 정보가 부호화된 데이터가 할당되며, 스킵 움직임 정보 필드에는 스킵 움직임 정보가 부호화된 데이터가 할당된다.
블록 모드가 스킵 모드인 경우에는 분할 모드 정보에 의해 식별되는 해당 블록의 분할 모드가 서브블록으로 분할되는 경우와 분할되지 않는 경우 모두, 해당 블록의 계수 정보는 부호화되지 않고 해당 블록에 대해 움직임 추정을 수행하여 결정되는 움직임에 대한 정보인 스킵 움직임 정보만이 부호화되어 스킵 움직임 정보 필드에 할당된다. 이때, 분할 모드가 서브블록으로 분할되지 않음을 나타내는 경우에는 해당 블록에 대해 움직임 추정되어 결정되는 움직임 정보가 스킵 움직임 정보로서 부호화되고, 분할 모드가 서브블록으로 분할됨을 나타내는 경우에는 해당 블록의 각 서브블록에 대해 움직임 추정되어 결정되는 각 서브블록에 대한 움직임 정보가 스킵 움직임 정보로서 부호화되어, 스킵 움직임 정보 필드에 할당된다.
6B는 블록 모드가 스킵 모드가 아닌 경우의 비트스트림의 신택스 구조를 나타낸 것이다. 부호화하고자 하는 블록의 블록 모드가 스킵 모드가 아닌 경우, 해당 블록을 부호화하여 생성되는 비트스트림은 블록 모드 정보 필드, 분할 모드 정보 필드, 블록 타입 정보 필드, 예측 정보 필드, CBP 서브블록 플래그 필드, 변환 타입 정보 필드, CBP 필드, 델타 QP 필드 및 계수 정보 필드를 포함하여 구성될 수 있다. 여기서, CBP 서브블록 플래그 필드, 변환 타입 정보 필드, CBP 필드 및 델타 QP 필드는 비트스트림에 반드시 포함되어야 하는 것은 아니며 구현 방식에 일부 또는 전부가 선택적으로 비트스트림에 포함될 수 있다.
블록 모드 정보 필드에는 블록 모드 정보가 부호화된 데이터가 할당되고, 분할 모드 정보 필드에는 분할 모드 정보가 부호화된 데이터가 할당된다. 블록 모드가 스킵 모드가 아닌 경우에는 분할 모드 정보에 의해 식별되는 해당 블록의 분할 모드가 서브블록으로 분할되는 경우와 분할되지 않는 경우 모두, 해당 블록의 계수 정보를 부호화한다. 따라서, 이 경우, 계수 정보를 부호화한 데이터가 비트스트림에 포함될 뿐만 아니라, 계수 정보를 부호화하는 데 이용된 다양한 정보인 예측 부호화 정보가 부호화된 데이터가 비트스트림에 포함된다. 이러한 예측 부호화 정보에는 블록 타입 정보 및 예측 정보가 포함될 수 있지만, CBP 서브블록 플래그, 변환 타입 정보, CBP, 델타 QP 등도 추가로 포함될 수 있다.
만약, 분할 모드 정보가 해당 블록이 서브블록으로 분할되지 않음을 나타내는 경우 예측 부호화 정보는 해당 블록에 대해서만 부호화되어 각 필드에 할당되고, 분할 모드 정보가 해당 블록이 서브블록으로 분할됨을 나타내는 경우 예측 부호화 정보는 해당 블록의 각 서브블록에 대해 부호화되어 각 필드에 할당된다. 계수 정보 필드에는 해당 블록 또는 해당 블록의 서브블록에 대한 계수 정보가 부호화된 데이터가 할당된다.
도 7 및 도 8은 본 발명의 일 실시예에 따라 트리 구조를 이용하여 분할 타입 정보를 부호화하는 과정을 설명하기 위한 예시도이다.
도 7에서는 트리 구조를 이용하여 분할 타입 정보를 부호화하기 위해 부호화하고자 하는 블록의 각 서브블록에 대한 분할 타입값을 일정한 영역 단위로 묶어 레이어별 분할 타입값으로 나타내었다.
7A는 부호화하고자 하는 블록 내의 각 서브블록과 각 서브블록에 대한 분할 타입값을 나타낸 것이다. 7A에서, Mx(a,b)는 부호화하고자 하는 블록 내의 (a,b)의 위치에 해당하는 서브블록의 분할 타입 값을 나타낸다. 즉, Mx(0,0)은 부호화하고자 하는 블록 내의 (0,0)의 위치에 해당하는 서브블록(즉, 부호화하고자 하는 블록 내에서 래스터 스캔(Raster Scan) 방향으로 첫 번째 서브블록)의 분할 타입 값을 나타내고, Mx(0,1)은 부호화하고자 하는 블록 내의 (0,1)의 위치에 해당하는 서브블록(즉, 부호화하고자 하는 블록 내에서 래스터 스캔 방향으로 두 번째 서브블록)의 분할 타입 값을 나타낸다.
7A에 나타낸 서브블록들의 분할 타입 값들을 일정한 영역 단위(예를 들면, 두 개 이상의 서브블록을 포함하는 일정한 영역 단위)로 그룹화하고, 그룹화된 영역에 포함되는 서브블록들의 분할 타입 값의 최소값을 선택하여 그룹화된 영역에 대한 분할 타입 값으로 할당한다.
7B는 7A에 나타낸 서브블록들의 분할 타입 값들을 그룹화하여 최소값을 그룹화된 영역에 대한 분할 타입 값으로 할당한 결과를 나타내었다. 예를 들어, 7A에 나타낸 서브블록 (0,0), (0,1), (1,0), (1,1)을 포함하는 영역을 일정한 영역 단위로 설정하여 그룹화하고, 그룹화된 영역 내에 포함된 각 서브블록들의 분할 타입 값 MX(0,0), MX(0,1), MX(1,0), MX(1,1) 중 최소값을 선택하여 그룹화된 영역인 MX -1(0,0)의 분할 타입 값으로 할당하였다. 다시, 서브블록 (0,2), (0,3), (1,2), (1,3)을 포함하는 영역을 일정한 영역 단위로 설정하여 그룹화하고, 그룹화된 영역 내에 포함된 각 서브블록들의 분할 타입 값 MX(0,2), MX(0,3), MX(1,2), MX(1,3) 중 최소값을 선택하여 그룹화된 영역인 MX -1(0,1)의 분할 타입 값으로 할당하였다. 이와 같은 방식으로 나머지 서브블록들에 대해서도 동일한 과정을 수행한다. 7A에 나타낸 서브블록들의 분할 타입 값을 7B에 나타낸 그룹화된 영역의 분할 타입 값으로 할당하는 과정을 MX -2, MX -3 … M1 레이어(Layer)까지 반복적으로 수행하면 7C와 같이 그룹화된 영역의 분할 타입 값을 할당할 수 있으며, 다시 M0 레이어까지 반복하면 7D와 같이 하나의 그룹화된 영역의 분할 타입 값을 가지도록 그룹화할 수 있다.
다만, 도 7에서는 일정한 영역 단위가 주변에 인접한 네 개의 서브블록들을 포함하는 영역으로 설정되는 것으로 설명했지만, 반드시 이에 한정되지 않고 주변에 인접한 여덟 개의 서브블록들을 포함하는 영역, 인접하지 않은 여섯 개의 서브블록들을 포함하는 영역 등과 같이 다양한 방식으로 서브블록들을 그룹화하여 분할 타입 값을 할당할 수도 있다.
도 7에 도시한 바와 같이 부호화하고자 하는 블록의 서브블록들의 분할 타입 값을 그룹화된 영역의 분할 타입 값으로 할당한 것을 트리 구조로 나타내면 도 8과 같이 나타낼 수 있다.
도 8에서는 레이어별로 그룹화된 영역에 대한 분할 타입 값을 트리 구조로 예시적으로 나타내었다. 레이어별 그룹화된 영역에 대한 분할 타입 값을 노드값(Node Value)이라고 가정하면, 도 8에 도시된 트리 구조의 노드값들은 상위 노드(Node)의 노드값과의 차이값을 부호화함으로써 부호화될 수 있다.
노드값들과 상위 노드의 노드값의 차이값을 부호화하는 방법은 차이값만큼의 이진 비트 0을 부호화하고 마지막에 이진 비트 1을 부호화한다. 만약, 현재 부호화할 노드의 노드값과 상위 노드의 노드값의 차이가 0인 경우에는 이진 비트 1을 부호화한다. 0과 1의 이진 비트를 부호화할 때 예를 들어 산술 부호화 방법을 이용할 수 있는데, 이때 각 레이어별로 다른 콘텍스트(Context)를 이용할 수 있다.
이와 같이, 트리 구조를 이용하여 분할 타입 값 즉, 노드값을 부호화할 때, 최상위 노드의 노드값(이하 '최상위 노드값'이라 칭함)은 후술하는 세 가지의 예와 같이 부호화될 수 있다. 일 예로, 최상위 노드값은 0과의 차이값을 전술한 바와 같이 0과 1의 이진 비트를 이용하여 부호화함으로써 부호화될 수 있다. 다른 예로, 분할 타입 값으로 분할 타입 별 번호가 설정되고 분할 타입의 발생 빈도수가 높은 순서로 큰 분할 타입별 번호가 설정된 경우, 최상위 노드값은 가장 큰 분할 타입 번호와의 차이값을 0과 1의 이진 비트를 이용하여 부호화함으로써 부호화될 수 있다. 또 다른 예로, 분할 타입 값으로 분할 타입 별 번호가 설정되고 분할 타입의 발생 빈도수가 높은 순서로 작은 분할 타입 별 번호가 설정된 경우, 최상위 노드값은 가장 작은 분할 타입 번호와의 차이값을 0과 1의 이진 비트를 이용하여 부호화함으로써 부호화될 수 있다.
최상위 노드를 제외한 나머지 노드값들은 부호화하고자 하는 노드의 노드값과 해당 노드의 상위 노드의 노드값의 차이값을 이진 비트 0과 1을 이용하여 부호화함으로써 부호화될 수 있다. 즉, 차이값만큼의 개수의 이진 비트 0을 부호화하고 마지막에 이진 비트 1을 부호화함으로써 각 노드값들이 부호화될 수 있다. 만약, 부호화하고자 하는 노드의 노드값과 상위 노드의 노드값의 차이가 0인 경우에는 이진 비트 1을 부호화한다. 또한, 이와는 반대로, 차이값만큼의 개수의 이진 비트 1을 부호화하고 마지막에 이진 비트 0을 부호화함으로써 각 노드값들이 부호화될 수도 있으며, 이때 차이값이 0인 경우, 이진 비트 0을 부호화할 수 있다.
다만, 각 노드값을 부호화할 때 상위 노드값이 분할 타입 번호가 가질 수 있는 최대값인 경우, 해당 상위 노드의 하위 노드들의 노드값들은 부호화되지 않는다. 예를 들어, M1(0,0) 노드의 노드값이 3인 경우, M1(0,0) 노드의 하위 노드인 M2(0,0), M2(0,1), M2(1,0), M2(1,1) 노드의 노드값은 부호화되지 않는다. 즉, M1(0,0)은 M2(0,0), M2(0,1), M2(1,0), M2(1,1)의 최소값이므로 M2(0,0), M2(0,1), M2(1,0), M2(1,1)은 모두 3이상의 값을 가진다. 하지만, 도 4에서 분할 타입 값의 최대값은 3이므로 M2(0,0), M2(0,1), M2(1,0), M2(1,1)은 3 이외의 다른 값을 가질 수 없기 때문에 부호화할 필요가 없다.
또한, 부호화하고자 하는 노드와 상위 노드의 차이값을 부호화할 때, 부호화하고자 하는 노드의 노드값이 분할 타입 번호가 가질 수 있는 최대값인 경우, 차이값만큼의 개수의 이진 비트 0만을 부호화하고, 마지막에 이진 비트 1을 부호화하지 않는다. 예를 들어, 부호화하고자 하는 노드의 상위 노드의 노드값 M1(0,0)와 부호화하고자 하는 노드의 노드값 M2(0,0), M2(0,1), M2(1,0), M2(1,1)이 각각 1, 2, 3, 3, 2라고 가정하면, 노드값 M2(0,0)와 M2(1,1)은 이진 비트 01을 부호화하고 노드값 M2(0,1)과 M2(1,0)은 이진 비트 001이 아니라 00을 부호화한다.
또한, 같은 상위 노드를 가지는 노드들 중 마지막 노드의 노드값을 부호화하는 경우, 마지막 노드를 제외한 노드들의 노드값이 상위 노드의 노드값보다 모두 큰 경우 마지막 노드의 노드값은 부호화하지 않는다. 예를 들어, 부호화하고자 하는 노드의 상위 노드의 노드값 M1(0,0)과 부호화하고자 하는 노드의 노드값 M2(0,0), M2(0,1), M2(1,0), M2(1,1)이 각각 1, 2, 3, 3, 1이라고 가정하면, 노드값 M2(0,0), M2(0,1), M2(1,0)이 모두 노드값 M1(0,0)보다 크므로, 제일 마지막 노드의 노드값 M2(1,1)는 부호화하지 않는다.
한편, 최상위 노드를 제외한 나머지 노드값들은 전술한 바와 같이 부호화하고자 하는 노드의 노드값과 해당 노드의 상위 노드의 노드값의 차이값을 이진 비트 0과 1을 이용하여 부호화함으로써 부호화될 수도 있지만, 이와는 달리 각 노드의 노드값과 분할 타입의 발생 빈도수가 가장 높은 분할 타입값의 차이값을 부호화함으로써 부호화될 수 있다. (여기서 발생 빈도수가 가장 높은 분할 타입값은 고정값을 사용할 수도 있고 고정값이 아닐 수도 있다. 고정값이 아닌 경우, 부호화하여 복호화기에 전송할 수도 있고 또는 전송하지 않을 수도 있는데 전송하지 않는 경우 현재 블록 이전에 부호화화된 블록들의 통계를 누적하여 현재까지 발생 빈도수가 가장 높은 모드를 사용할 수 도 있다.) 트리 구조를 이용하여 분할 타입 정보를 부호화하는 또 다른 실시예로 7A에 나타낸 서브블록들의 분할 타입 값들을 그룹화하여 7B의 그룹화된 영역의 분할 타입 값을 정할 때 발생빈도수가 높은 순서로 큰 분할 타입 별 번호가 설정된 경우 그룹화된 영역의 값들 중 최대값을 그룹화된 영역의 분할 타입 값으로 사용할 수 있다.
도 9 및 도 10은 본 발명의 실시예에 따른 트리 구조의 예를 설명하기 위해 도시한 도면이다. 부호화하고자 하는 블록 내의 (a,b) 위치에 해당하는 서브블록들의 분할 타입 값이 도 9의 (a)에 도시한 바와 같이 래스터 스캔 방향으로 {0, 2, 1, 2, 1, 2, 2, 0, 1, 0, 0, 1, 2, 1, 1}이라고 가정하면, 각각의 서브블록들의 분할 타입 값들은 인접한 네 개의 서브블록 단위로 그룹화할 수 있다. 이 경우, 최우측이나 최하단의 나머지들은 네 개의 서브블록이 되지 않더라도 나머지들끼리의 그룹화가 가능하다. 이와 같이 (a)에 도시한 서브블록들의 분할 타입 값을 그룹별로 나타내면, 래스터 스캔 방향으로 제1 그룹은 {0, 2, 2, 2}이며, 제2 그룹은 {1, 2, 0, 1}이고, 제3 그룹은 {1, 0}이며, 제4 그룹은 {0, 1}이고, 제5 그룹은 {2, 1}이며, 제6 그룹은 {1}이 될 수 있다. 각각의 그룹에 포함되는 서브블록들의 분할 타입 값의 최소값을 선택하여 그룹화된 영역에 대한 분할 타입 값으로 할당하면, 도 9의 (b)에 나타낸 바와 같이 래스터 스캔 방향으로 {0, 0, 1, 0, 1, 1}이 된다. 이와 같은 분할 타입 값들은 (a)의 경우와 마찬가지로 인접한 네 개의 분할 타입 값들로 그룹화할 수 있다. (b)에 나타낸 분할 타입 값들에 대한 각각의 그룹들에서 최소값을 선택하여 그룹화된 영역에 대한 분할 타입 값으로 할당하면, 도 9의 (c)에 나타낸 바와 같이 래스터 스캔 방향으로 {0, 1}이 되며, 이에 대하여 최종적으로 최소값을 선택하여 분할 타입 값으로 할당하면 도 9의 (d)에 나타낸 바와 같이 0이 된다. 이와 같은 과정을 트리 구조로 나타내면 도 10과 같다.
다음에 변환 타입 정보를 부호화/복호화하는 방법에 대하여 설명한다.
변환 타입의 부호화는 우선 블록의 모드에 따라 최하위 노드를 생성한다. 이때, 블록 모드가 스킵 모드인 경우에는 노드를 생성하지 않을 수 있다. 다음에 변환 타입의 선택에 따라 최하위 노드를 생성한다. 이때, 변환 타입을 선택하는 단위는 또는 방법이 부호화되어 전송됨으로써 부호화기와 복호화기가 동일한 방법으로 동작하도록 하는 것이 바람직하다.
변환 타입의 부호화는 매크로블록에 대하여 16x16 화소블록 단위로 변환 타입을 선택하여 부호화할 수 있다. 이 경우, 16x16 화소 블록 내의 서브블록은 동일한 타입의 변환을 사용할 수 있다. 즉, 16x16 화소블록보다 큰 블록인 경우에도 16x16 블록 단위로 변환타입을 선택할 수 있으며, CBP16 플래그가 0이 아닌 16x16 화소블록마다 변환타입을 전송할 수 있다. 여기서, 16x16 화소블록이 8x8 화소블록보다 작은 블록으로 분할되었더라도 변환 타입을 선택하여 부호화할 수 있으며, 16x16 화소블록이 8x8 화소블록보다 작은 블록으로 분할된 경우에는 고정된 변환(예를 들면, 4x4 화소블록)을 사용하도록 하여 변환타입을 부호화하지 않을 수도 있다.
또는, 16x16 이상인 크기의 블록에 대해서는 블록단위로 변환타입을 선택하고 16x16 보다 작은 블록으로 분할된 경우에는 16x16 블록단위로 변환타입을 선택하여 부호화할 수도 있다.
이때, 변환 타입의 부호화는 변환 타입 별 선택 가능한 변환의 개수와 상관없이 고정된 표 1을 사용할 수 있으며, 선택 가능한 변환의 개수에 따라 표 2를 사용할 수도 있다.
Figure 112017127621191-pat00001
Figure 112017127621191-pat00002
도 11 및 도 12는 본 발명의 실시예에 따른 변환 타입의 부호화 및 복호화를 설명하기 위해 도시한 도면으로서, 도 11은 16x16 이상의 블록에 대해서는 해당 블록 단위로 변환타입을 선택하고 16x16 화소블록보다 작은 블록으로 분할된 경우에는 16x16 화소블록 단위로 변환타입을 선택하는 경우의 매크로블록 번호를 나타내며, 도 12는 도 11에 대한 각각의 블록 모드 및 선택된 변환타입을 예시한 도면이다. 여기서, 16x16 화소블록 내의 서브블록이 8x8 화소블록보다 작은 블록으로 분할된 경우에는 4x4 변환을 사용하고, 변환 타입 별 선택 가능한 변환의 개수와 관계없이 표 1에 따라 변환 타입을 부호화하는 것으로 가정한다.
도 11 및 도 12를 참조하면, 매크로블록 번호 0은 스킵 모드이다. 또한, 매크로블록 번호 1은 CBP16 플래그가 0인 블록과 8x8 변환을 사용하는 블록들을 포함하며, 매크로블록 번호 2는 CBP16 플래그가 0인 블록들과 4x4 변환을 사용하는 블록들을 포함한다. 매크로블록 번호 3은 CBP32 플래그가 1로서 16x16 변환을 사용하며, 매크로블록 번호 4는 16x8 변환을 사용하는 블록들, 16x16 변환을 사용하는 블록 및 8x16 변환을 사용하는 블록들을 포함한다. 이때, 매크로블록 번호 4의 나머지 블록은 8x8 화소블록보다 작은 블록으로 분할되어 있으므로 고정된 4x4 변환을 사용하며 이 경우 변환타입은 부호화하지 않을 수 있다. 또한, 매크로블록 번호 5는 4x4 변환을 사용하는 블록들과 8x8 화소블록보다 작은 블록으로 분할된 블록들을 포함한다. 이때, 8x8 화소블록보다 작은 블록으로 분할된 블록들은 고정된 4x4 변환을 사용하므로 변환타입을 부호화하지 않을 수 있다. 매크로블록 번호 6은 CBP32 플래그가 1로서 4x4 변환을 선택하여 부호화함을 나타내고, 매크로블록 번호 7은 8x8 변환을 사용하는 블록과 4x4 변환을 사용하는 블록 및 스킵 모드인 블록을 포함한다. 또한, 매크로블록 번호 8은 4x4 변환을 사용하는 블록들과 8x8 화소블록보다 작은 불록으로 분할되어 고정된 4x4 변환을 사용하는 블록들을 포함한다. 도 12에는 변환 타입을 부호화하지 않는 블록에 대하여 구분하여 표시하였다. 특히, 빗금으로 구분한 블록은 SKIP 블록이거나 CBPX 플래그가 0인 블록으로서 변환 계수가 없는 블록을 나타내며, 십자의 격자무늬로 구분한 블록은 고정된 변환을 사용하는 블록으로서 복호기에서 해당하는 변환 타입을 알 수 있으므로 변환 타입을 전송할 필요가 없는 블록을 나타낸다.
도 12의 각각의 블록에 대한 선택된 변환 타입에 표 1을 적용하면 도 13과 같이 최하위 노드값을 나타낼 수 있으며, 도 13에 나타낸 각각의 블록들의 노드값들에서 최소값을 선택하여 노드값으로 할당하면 도 14와 같은 상위 노드를 얻을 수 있다. 예를 들어, 도 12에서 매크로블록 번호 0은 변환 타입의 부호화 비트가 없다. 매크로블록 번호 1은 도 15와 같이 최하위 노드값이 {1, 1, 1}이므로 최소값 1을 최상위 노드값으로 할당하며, 최상위 노드값 1과 0과의 차이값을 나타내는 부호화 비트 01을 부호화하고 최하위 비트는 최상위 노드값 1과의 차이값을 나타내는 부호화 비트 111을 부호화한다. 매크로블록 번호 2는 노드가 1개이므로 매크로블록 내의 두 번째 16x16 화소블록의 변환 타입값 0과 0과의 차이값을 부호화한다. 이 경우, 부호화 비트는 1로 나타낼 수 있다. 매크로블록 번호 3은 블록 타입이 32x32 화소블록이므로 32x32 블록의 변환 타입값 2와 0과의 차이값을 부호화한다. 이 경우, 부호화 비트는 00으로 나타낼 수 있다. 매크로블록 번호 4는 매크로블록 내의 세 번째의 16x16 블록이 8x8 화소보다 작은 서브블록으로 분할되었으므로 고정된 변환 타입(예를 들면, 4x4 변환)을 사용하며 따라서 변환 타입을 부호화하지 않아도 된다. 그러므로, 세 번째 16x16 블록에 해당하는 노드를 생성하지 않으며 그 외 3개의 16x16 화소블록에 대해서만 노드를 생성하고, 최상위 노드값 2와 0과의 차이값만을 부호화한다. 즉, 도 16에 도시한 바와 같이 최하위 노드값인 {2, 2, 2}로부터 최소값인 최상위 노드값을 선택하며, 최상위 노드값 2와 0과의 차이값에 대한 부호화 비트는 00을 부호화한다. 매크로블록 번호 5는 매크로블록 내 두 번째 16x16 화소블록이 8x8 화소블록보다 작은 서브블록으로 분할되었으므로 고정된 변환 타입(4x4 변환)을 사용하며 변환 타입을 부호화하지 않아도 된다. 따라서 두 번째 16x16 화소블록에 해당하는 노드를 생성하지 않는다. 이 경우, 노드가 한 개뿐이므로 첫 번째 16x16 화소블록의 변환 타입값 0과 0과의 차이값을 부호화한다. 이 경우, 부호화 비트는 1로 나타낼 수 있다. 매크로블록 번호 6은 노드가 한 개이므로 매크로블록 내 두 번째 16x16 블록의 변환 타입값 0과 0과의 차이값을 부호화한다. 이 경우, 부호화 비트는 1로 나타낼 수 있다. 매크로블록 번호 7은 매크로블록 내의 첫 번째 16x16 화소블록과 세 번째의 16x16 화소블록에 대해서는 노드를 생성하지 않으며, 도 17에 나타낸 바와 같이 최하위 노드값은 {1, 0}이므로 최상위 노드값 0과 0의 차이값을 나타내는 부호화 비트 1을 부호화하고, 두 번째 16x16 화소블록의 변환 타입값 1과 최상위 노드값과의 차이값을 나타내는 부호화 비트 01을 부호화한다. 또한, 네 번째 16x16 화소블록의 변환 타입값은 CBP16 플래그가 1이며 4x4 변환을 사용하므로 변환 타입값을 부호화하지 않을 수 있다. 매크로블록 번호 8은 노드가 한 개이므로 매크로블록 내 첫 번째 16x16 화소블록의 변환타입 값 0과 0과의 차이값을 나타내는 부호화 비트 1을 부호화한다.
도 12의 각각의 블록에 대한 선택된 변환 타입에 표 2를 적용하면 도 18과 같이 최하위 노드값을 나타낼 수 있다. 이 경우에도 변환 타입을 부호화하지 않는 블록에 대해서는 구분하여 표시하였다.
이에 대하여 상세하게 살펴보면, 매크로블록 번호 0은 변환 타입의 부호화 비트가 없다. 매크로블록 번호 1은 도 15와 같이 최하위 노드값이 {2, 2, 2}이므로 최소값 2를 최상위 노드값으로 할당하며, 최상위 노드값 2와 0과의 차이값을 나타내는 부호화 비트 00을 부호화한다. 매크로블록 번호 2는 노드가 1개이므로 매크로블록 내의 두 번째 16x16 화소블록의 변환 타입값 0과 0과의 차이값을 부호화한다. 이 경우, 부호화 비트는 1로 나타낼 수 있다. 매크로블록 번호 3은 블록 타입이 32x32 화소블록이므로 32x32 블록의 변환 타입값 1과 0과의 차이값을 부호화한다. 이 경우, 부호화 비트는 01로 나타낼 수 있다. 매크로블록 번호 4는 매크로블록 내의 세 번째의 16x16 블록이 8x8 화소보다 작은 서브블록으로 분할되었으므로 고정된 변환 타입(예를 들면, 4x4 변환)을 사용하며 따라서 변환 타입을 부호화하지 않아도 된다. 그러므로, 세 번째 16x16 블록에 해당하는 노드를 생성하지 않으며 그 외 3개의 16x16 화소블록에 대해서만 노드를 생성하고, 최상위 노드값 1과 0과의 차이값만을 부호화한다. 즉, 도 19에 도시한 바와 같이 최하위 노드값인 {1, 1, 1}로부터 최소값인 최상위 노드값을 선택하며, 최상위 노드값 1과 0과의 차이값에 대한 부호화 비트 01을 부호화한다. 이때, 최하위 노드값을 나타내는 부호화 비트로 111이 부호화될 수 있다. 매크로블록 번호 5는 매크로블록 내 두 번째 16x16 화소블록이 8x8 화소블록보다 작은 서브블록으로 분할되었으므로 고정된 변환 타입(4x4 변환)을 사용하며 변환 타입을 부호화하지 않아도 된다. 따라서 두 번째 16x16 화소블록에 해당하는 노드를 생성하지 않는다. 이 경우, 노드가 한 개뿐이므로 첫 번째 16x16 화소블록의 변환 타입값 0과 0과의 차이값을 나타내는 부호화 비트는 1을 부호화한다. 매크로블록 번호 6은 노드가 한 개이므로 매크로블록 내 두 번째 16x16 블록의 변환 타입값 0과 0과의 차이값을 나타내는 부호화 비트 1을 부호화한다. 매크로블록 번호 7은 매크로블록 내의 첫 번째 16x16 화소블록과 세 번째의 16x16 화소블록에 대해서는 노드를 생성하지 않으며, 도 20에 나타낸 바와 같이 최하위 노드값은 {2, 0}이므로 최상위 노드값 0과 0의 차이값을 나타내는 부호화 비트 1을 부호화하고, 두 번째 16x16 화소블록의 변환 타입값 2와 최상위 노드값과의 차이값을 나타내는 부호화 비트 00을 부호화한다. 또한, 네 번째 16x16 화소블록의 변환 타입값은 CBP16 플래그가 1이며 4x4 변환을 사용하므로 변환 타입값을 부호화하지 않을 수 있다. 매크로블록 번호 8은 노드가 한 개이므로 매크로블록 내 첫 번째 16x16 화소블록의 변환타입 값 0과 0과의 차이값을 나타내는 부호화 비트 1을 부호화한다.
다음에 CBP 정보를 부호화/복호화하는 방법에 대하여 설명한다.
도 21은 본 발명의 일 실시예에 따른 CBPX_플래그와 CBP를 부호화 과정의 예를 나타낸 흐름도이다. 도 21에서는 매크로블록이 64x64 화소 블록인 경우, 인트라 매크로블록에 대한 CBPX_플래그와 CBP를 부호화하는 과정의 예를 나타내었다. 부호화 정보 부호화기(110)는 매크로블록의 서브블록의 크기가 64x64, 64x32 및 32x64 중 하나인지 여부를 판단하며(S2110), 서브블록의 크기가 64x64, 64x32 및 32x64 중 하나가 아닌 경우에는 서브블록의 크기가 32x32, 32x16 및 16x32 중 하나인지 여부를 판단한다(S2120). 이때, 매크로블록을 16x16 화소 단위로 분할하여 인트라 예측을 수행하는 경우, 단계 S2110에서는 서브 블록의 크기가 64x64 화소 블록인지 즉, 매크로블록 단위로 인트라 예측 부호화를 수행하는지 판단하며, 단계 S2120에서는 서브 블록의 크기가 64x64 화소 블록이 아닌 경우에 서브 블록의 크기가 32x32 화소 블록인지를 판단할 수 있다. 단계 S2120의 판단 결과, 그 서브블록의 크기가 32x32, 32x16 및 16x32 중 하나이거나 32x32 화소 블록인 경우, 서브블록 내 0이 아닌 변환 계수가 있는지 여부를 판단하며(S2130), 0이 아닌 변환 계수가 있는 경우에는 해당 서브블록 내에 0이 아닌 부호화할 계수가 있음을 나타내는 CBP32 플래그(예를 들어, '1'과 같이 1 비트로 표시될 수 있다)를 부호화하고(S2140), 서브블록 내에서 16x16 화소 블록 단위로 CBP를 부호화하며(S2150), 서브블록 내 0이 아닌 변환 계수가 없는 경우에는 서브블록 내에 0이 아닌 변환 계수가 없음을 나타내는 CBP32 플래그(예를 들어, '0'과 같이 1비트로 표시될 수 있다)를 부호화한다(S2160).
여기서, CBP64 플래그는 64x64 화소 블록 내 0이 아닌 부호화할 계수의 존재 유무를 나타내는 플래그이다. 마찬가지로, CBP32 플래그는 32x32 화소 블록 내 0이 아닌 부호화할 계수의 존재 유무를 나타내는 플래그이다. 이와 같은 CBPX 플래그(X는 32, 64 등)는 휘도 성분의 잔여 블록이 0이 아닌 변환계수를 가지지 않는 경우에는 변환 타입을 전송할 필요가 없으므로, 휘도 성분 블록들이 0이 아닌 변환계수를 가지는지를 나타내는 데 사용된다. CBP는 16x16 화소 블록 단위로 부호화되며, 16x16 화소 블록 내 각 8x8 화소 블록 당 0이 아닌 변환 계수가 있는지 여부를 8x8 화소 블록 당 1비트를 이용하여 나타내고, 색차 성분에 대해서는 두 개의 2x2 색차 성분 DC 블록 내 0이 아닌 변환 계수가 있는지 여부를 1 비트를 이용하여 나타내며, 두 개의 8x8 색차 성분 AC 블록 내 0이 아닌 변환 계수가 있는지 여부를 1 비트를 이용하여 나타낸다.
한편, 단계 S2120에서, 서브블록의 크기가 32x32, 32x16 및 16x32 중 하나가 아니거나 32x32 화소 블록이 아닌 경우에는, 단계 S2150으로 진행하여 CBP를 부호화한다. 이때, 서브 블록의 크기가 32x32, 32x16 또는 16x32 화소 블록이 아닌 경우에 서브 블록의 크기가 16x16, 16x8 또는 8x16 화소 블록인지를 판단할 수 있다. 서브 블록이 16x16, 16x8 또는 8x16 화소 블록인 경우, 해당 서브 블록 내에 0이 아닌 부호화할 계수가 있는 경우에는 CBP16 플래그(예를 들어, '1'과 같이 1 비트로 표시될 수 있음)를 부호화하며, 그 외의 경우에는 CBP 플래그를 사용하지 않고 16x16 화소 블록 단위로 CBP를 부호화할 수 있다.
또한, 단계 S2110에서, 서브블록의 크기가 64x64, 64x32 및 32x64 중 하나 이거나 64x64 화소 블록인 경우에는 서브블록 내 0이 아닌 변환 계수가 있는지 여부를 판단하여(S2170), 서브블록 내 0이 아닌 변환 계수가 있는 경우에는 0이 아닌 변환 계수가 있음을 나타내는 CBP64 플래그(예를 들어, '1'과 같이 1 비트로 표시될 수 있다)를 부호화하고(S2180), 서브블록 내 0이 아닌 부호화할 계수가 없는 경우에는 0이 아닌 부호화할 계수가 없음을 나타내는 CBP64 플래그(예를 들어, '0'과 같이 1 비트로 표시될 수 있다)를 부호화한다(S2190). 여기서, CBP64 플래그는 64x64 화소 블록 내 0이 아닌 양자화된 변환 계수의 존재 유무를 나타내는 플래그이다.
CBP 플래그를 부호화하는 경우에 대하여, CBP 플래그가 0이 아닌 경우에 변환 타입을 부호화한다. 예외적으로, 16x16 화소 블록이 네 개의 8x8 화소 블록으로 분할된 경우에는 CBP를 부호화한 후 CBP가 0이 아닌 경우에 16x16 화소 블록 단위로 적용되는 변환 타입을 부호화한다.
변환 타입을 부호화한 후에는 변환 타입에 따라 CBP를 부호화한다. 16x16 변환이 사용된 경우에는 색차 성분의 CBP 2비트만 부호화하며, 8x16 또는 16x8 변환이 사용된 경우에는 16x16 화소 블록 내의 두 개의 8x16 또는 16x8 화소 블록이 0이 아닌 변환 계수를 가지는지를 나타내는 CBP 2비트를 부호화한다. 다만, 예외적으로 두 개의 분할블록 중 첫 번째 분할블록의 CBP 비트가 0인 경우에는 두 번째 분할 블록의 CBP 비트는 부호화하지 않을 수 있다.
도 22는 부호화 정보 부호화기(110)에서 선택된 블록 모드 및 선택된 블록 타입을 예시한 도면이다. CBP는 블록 내 0이 아닌 변환계수가 있는지 여부를 나타내는 1비트 플래트이며, 여기서 선택된 변환의 종류에 따라 CBP 비트를 부호화/복호화하는 블록의 단위는 달라진다. 도 22에서 부호화할 변환계수가 없는 블록(예를 들면, SKIP 모드인 블록, CBPX 플래그가 0인 블록 등)은 빗금으로 표시하였고, CBP를 부호화할 필요가 없는 블록(예를 들면, 16x16 변환을 사용하는 블록)은 십자의 격자무늬로 구분하였다.
최하위 노드를 생성하는 방법에 대하여 설명하면, 이미 전송된 모드값이나 플래그 중 현재 블록내의 부호화할 변환계수가 없음을 나타내는 데이터가 있는 경우에 대해서, 부호화 변환계수가 없는 블록에 대해서는 노드를 생성하지 않는다. 예를 들어, 도 21에 나타낸 방법으로 데이터를 부호화/복호화하는 경우, SKIP 블록에 대해서는 노드를 생성하지 않으며, CBPX 플래그가 0인 XxX(X는 블록의 크기를 나타내는 화소 수) 블록에 대해서는 노드를 생성하지 않고, 또한 16x16 변환의 경우 CBP16 플래그를 통해 알 수 있으므로 CBP에 대한 노드를 생성하지 않는다.
또한, 0이 아닌 변환계수가 있는 블록에 대해서 CBP를 부호화하며, 변환 타입에 따라 노드의 개수는 휘도 성분에 대해서 4x4 변환 또는 8x8 변환하는 경우에는 8x8 블록 내 0이 아닌 변환계수가 있는지를 0 또는 1로 나타내고(즉, 8x8 화소블록 당 노드를 생성), 휘도 성분에 대해서 8x16 변환 또는 16x8 변환하는 경우에는 16x8 또는 8x16 블록 내 0이 아닌 변환계수가 있는지를 0 또는 1로 나타내며(즉, 16x8 또는 8x16 블록당 노드 생성), 색차 성분은 8x8 블록단위로 AC 성분과 DC 성분에 대해서 노드를 생성한다(즉, AC 성분에 1비트, DC 성분에 1비트를 전송한다).
또한, 상위노드를 생성할 때 하위노드들의 최소값을 상위노드 값으로 사용하며, 최상위 노드는 16x16 영역을 뜻하는 노드를 최상위 노드로 할 수 있다(또는 최상위 노드의 크기를 다르게 지정할 수도 있다).
또한, 상위노드의 값이 1인 경우에는 하위 노드들의 값은 부호화/복호화하지 않을 수 있으며, 상위 노드의 값이 0인 경우에 하위 노드들의 값을 부호화할 수 있다.
도 22와 같이 부호화 모드와 변환 타입이 선택된 경우, CBP의 전송의 단위는 도 23과 같이 나타낼 수 있다. 도 23에서 16x16 영역에 해당하는 블록을 최상위 블록으로 사용하는 경우, 최상위 노드값은 도 24와 같이 할당될 수 있다.
이상에서는 블록 내에 변환계수가 있는지의 여부에 따라 CBP를 할당하는 것으로 설명하였지만, CBP의 부호화는 설명한 방법에 한정되는 것이 아니며, CBP의 패턴을 이용하는 등의 다양한 변형이 가능하다.
도 25는 델타 양자화 파라미터의 부호화/복호화를 설명하기 위해 도시한 도면이다. 본 발명의 실시예에서는 부호화할 0이 아닌 변환계수가 있는 16x16 화소블록 또는 매크로블록의 델타 양자화 파라미터만을 전송하는 것이 바람직하다. 예를 들어, 인트라 16x16 화소블록이나 CBP가 0이 아닌 인터 16x16 화소블록의 델타 양자화 파라미터를 전송한다.
델타 양자화 파라미터를 부호화하는 한가지 방법으로, 각각의 델타 양자화 파라미터는 약속된 코드번호로 변환 후, 코드 번호를 트리 코딩하는 방식으로 부호화할 수 있다. 예를 들어, 각각이 16x16인 화소블록의 델타 양자화 파라미터가 도 25와 같고 델타 양자화 파라미터에 대응하여 약속된 코드번호가 표 3과 같다고 가정하면, 도 25의 각각의 델타 양자화 파라미터는 표 3의 약속된 코드번호로 변환할 수 있다.
Figure 112017127621191-pat00003
즉, 델타 양자화 파라미터 0은 코드번호 0으로 변환할 수 있으며, 델타 양자화 파라미터 1은 코드번호 1로 변환할 수 있고, 델타 양자화 파라미터 -1은 코드번호 2로 변환할 수 있으며, 델타 양자화 파라미타 2는 코드번호 3으로 변환할 수 있고, 델타 양자화 파라미터 -2는 코드번호 4로 변환할 수 있으며, 델타 양자화 파라미터 3은 코드번호 5로 변환할 수 있고, 델타 양자화 파라미터 -3은 코드번호 6으로 변환할 수 있다. 기타의 다른 델타 양자화 파라미터도 이와 마찬가지로 약속된 코드번호로 변환할 수 있다. 이와 같이 도 25의 델타 양자화 파라미터를 코드번호로 변환하여 도시하면 도 26과 같다. 이와 같이 코드번호로 변환된 각각의 16x16 화소블록의 노드값에 기초하여 트리를 생성할 수 있다. 첫 번째 예로, 도 26과 같이 코드번호로 변환된 16x16 화소블록의 노드값들로부터 최소값을 선택하여 상위 노드값으로 할당하면 도 27과 같이 나타낼 수 있다.
도 27의 (a)에서 상위 노드 M0의 노드값 0과 0의 차이값은 부호화 비트 1로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 0과 상위 노드 M0의 노드값 0의 차이값 0도 부호화 비트 1로 부호화할 수 있다.
도 27의 (b)에서 상위 노드 M0의 노드값 0과 0의 차이값은 부호화 비트 1로 부호화할 수 있으며, 하위 노드 M1(0,0)의 노드값 0과 상위 노드 M0의 노드값 0의 차이값 0은 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(0,1)의 노드값 2와 상위 노드 M0의 노드값 0의 차이값 2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(1,0)의 노드값 1과 상위 노드 M0의 노드값 0의 차이값 1은 부호화 비트 01로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 3과 상위 노드 M0의 노드값 0의 차이값 3은 부호화 비트 0001로 부호화할 수 있다.
도 27의 (c)에서 상위 노드 M0의 노드값 1과 0의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(0,0) 및 M1(0, 1)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 각각 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(1,0)의 노드값 3과 상위 노드 M0의 노드값 1의 차이값 2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(1,1)의 노드값 2와 상위 노드 M0의 노드값 1의 차이값 1은 부호화 비트 01로 부호화할 수 있다.
도 27의 (d)에서 상위 노드 M0의 노드값 2와 0의 차이값 2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 2와 상위 노드 M0의 노드값 2의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
도 27의 (e)에서 상위 노드 M0의 노드값 2와 0의 차이값 2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0, 1) 및 M1(1,0)의 노드값 2와 상위 노드 M0의 노드값 2의 차이값 0은 각각 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 5와 상위 노드 M0의 노드값 2의 차이값 3은 부호화 비트 0001로 부호화할 수 있다.
도 27의 (f)에서 상위 노드 M0의 노드값 1과 0의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(0,0)의 노드값 5와 상위 노드 M0의 노드값 1의 차이값 4는 각각 부호화 비트 00001로 부호화할 수 있고, 하위 노드 M1(1,0) 및 M1(1,0)의 노드값 3과 상위 노드 M0의 노드값 1의 차이값 2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(1,1)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
하위 노드들로부터 상위 노드의 노드값을 할당하는 방법은 전술한 방법에 한정되는 것이 아니며, 하위 노드들의 노드값들 중에서 최대값을 선택하여 상위 노드의 노드값으로 할당할 수도 있다. 이러한 두 번째 방법의 예로, 도 26과 같이 코드번호로 변환된 16x16 화소블록의 노드값들로부터 최대값을 선택하여 상위 노드값으로 할당하면 도 28과 같이 나타낼 수 있다.
도 28의 (a)에서 상위 노드 M0의 노드값 0과 0의 차이값은 부호화 비트 1로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 0과 상위 노드 M0의 노드값 0의 차이값에 대해서는 부호화 비트를 생략할 수 있다.
도 28의 (b)에서 상위 노드 M0의 노드값 3과 0의 차이값 3은 부호화 비트 0001로 부호화할 수 있으며, 하위 노드 M1(0,0)의 노드값 0과 상위 노드 M0의 노드값 3의 차이값 1은 부호화 비트 0001으로 부호화할 수 있고, 하위 노드 M1(0,1)의 노드값 2와 상위 노드 M0의 노드값 3의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(1,0)의 노드값 1과 상위 노드 M0의 노드값 3의 차이값 2는 부호화 비트 001로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 3과 상위 노드 M0의 노드값 3의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
도 28의 (c)에서 상위 노드 M0의 노드값 3과 0의 차이값은 부호화 비트 0001로 부호화할 수 있으며, 하위 노드 M1(0,0) 및 M1(0, 1)의 노드값 1과 상위 노드 M0의 노드값 3의 차이값 2는 각각 부호화 비트 001로 부호화할 수 있고, 하위 노드 M1(1,0)의 노드값 3과 상위 노드 M0의 노드값 3의 차이값은 부호화 비트 1로 부호화할 수 있으며, 하위 노드 M1(1,1)의 노드값 2와 상위 노드 M0의 노드값 3의 차이값 1은 부호화 비트 01로 부호화할 수 있다.
도 28의 (d)에서 상위 노드 M0의 노드값 2와 0의 차이값은 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 2와 상위 노드 M0의 노드값 2의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
도 28의 (e)에서 상위 노드 M0의 노드값 5와 0의 차이값은 부호화 비트 000001로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0, 1) 및 M1(1,0)의 노드값 2와 상위 노드 M0의 노드값 5의 차이값 3은 각각 부호화 비트 0001로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 5와 상위 노드 M0의 노드값 5의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
도 28의 (f)에서 상위 노드 M0의 노드값 5와 0의 차이값은 부호화 비트 000001로 부호화할 수 있으며, 하위 노드 M1(0,0)의 노드값 5와 상위 노드 M0의 노드값 5의 차이값 0은 각각 부호화 비트 00001로 부호화할 수 있고, 하위 노드 M1(1,0) 및 M1(1,0)의 노드값 3과 상위 노드 M0의 노드값 5의 차이값2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(1,1)의 노드값 1과 상위 노드 M0의 노드값 5의 차이값 4는 부호화 비트 00001로 부호화할 수 있다.
최상위 노드값으로 하위 노드값들 중 최소값을 할당하는 방법에서 최상위 노드의 값을 부호화할 때 0과의 차이값을 부호화하였으나, 발생 빈도수가 높은 임의의 값과 최상위 노드값과의 차이값을 부호화할 수도 있다. 이때 사용되는 임의의 값은 부호화하여 복호화기에 알려줄 수도 있으며, 또는 임의의 약속된 값을 사용할 수도 있고, 부호화기와 복호화기가 동일하게 동작하여 계산하도록 할 수도 있다.
또한, 트리 생성을 위한 세 번째 방법으로, 상위 노드값으로 하위 노드값들 중 최소값을 할당하는 경우에 최대값을 부호화하여 복호기에 알려주거나 상위 노드값으로 하위 노드값들 중 최대값을 할당하는 경우에는 최소값을 부호화하여 복호기에 값의 범위를 알려줄 수도 있다. 이 경우, 전술한 상위 노드값으로 하위 노드값들 중 최소값을 할당하는 경우인 도 27의 (b)의 부호화 비트를 예로 설명하면, 상위 노드 M0의 노드값 0과 0의 차이값 0은 부호화 비트 1로 부호화할 수 있으며, 하위 노드 M1(0,0)의 노드값 0과 상위 노드 M0의 노드값 0의 차이값 0은 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(0,1)의 노드값 2와 상위 노드 M0의 노드값 0의 차이값 2는 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(1,0)의 노드값 1과 상위 노드 M0의 노드값 0의 차이값 1은 부호화 비트 01로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 3과 상위 노드 M0의 노드값 0의 차이값 3은 부호화 비트를 생략할 수 있다. 또한, 전술한 상위 노드값으로 하위 노드값들 중 최대값을 할당하는 경우인 도 28의 (d)의 부호화 비트를 예로 설명하면, 상위 노드 M0의 노드값 2와 0의 차이값은 부호화 비트 001로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 2와 상위 노드 M0의 노드값 2의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
또한, 델타 양자화 파라미터를 부호화하는 다른 방법으로, 델타 양자화 파라미터의 절대값을 부호화한 후, 0이 아닌 델타 파라미터에 대해서만 부호를 코딩하는 방법을 사용할 수 있다. 예를 들어, 도 25의 델타 양자화 파라미터에 대하여 절대값을 취하면 도 29로 나타낼 수 있으며, 이 경우에도 전술한 트리 생성 방법이 모두 적용될 수 있다.
첫 번째의 트리 생성 방법을 이용하며 최대값을 부호화하여 전송하는 경우, 먼저, 상위 노드 값은 도 30에 도시한 바와 같이 하위 노드값들 중에서 최소값이 선택되어 할당될 수 있으며, 절대값을 부호화하는 방법은 표 3을 이용하여 부호화할 수 있다.
도 30의 (a)에서 최대값 0의 부호화 비트는 0으로 부호화할 수 있으며, 상위 노드 M0의 노드값 0과 0의 차이값 0과, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 0과 상위 노드 M0의 노드값 0의 차이값 0은 부호화 비트의 부호화를 생략한다.
도 30의 (b)에서 최대값 2는 부호화 비트 001로 부호화할 수 있으며, 상위 노드 M0의 노드값 0과 0의 차이값은 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(0,0)의 노드값 0과 상위 노드 M0의 노드값 0의 차이값 0은 부호화 비트 1로 부호화할 수 있으며, 하위 노드 M1(0,1) 및 M1(1,0)의 노드값 1과 상위 노드 M0의 노드값 0의 차이값 1은 부호화 비트 01로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 2와 상위 노드 M0의 노드값 0의 차이값 2는 부호화 비트 001로 부호화할 수 있다.
도 30의 (c)에서 최대값 2는 부호화 비트 001로 부호화할 수 있고, 상위 노드 M0의 노드값 1과 0의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(0,0) 및 M1(0, 1)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 각각 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(1,0)의 노드값 2와 상위 노드 M0의 노드값 1의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(1,1)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
도 30의 (d)에서 최대값 1은 부호화 비트 01로 부호화할 수 있고, 상위 노드 M0의 노드값 1과 0의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0,1), M1(1,0), M1(1,1)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 부호화 비트의 부호화가 생략될 수 있다.
도 30의 (e)에서 최대값 3은 부호화 비트 0001로 부호화할 수 있고, 상위 노드 M0의 노드값 1과 0의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(0,0), M1(0, 1) 및 M1(1,0)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 각각 부호화 비트 1로 부호화할 수 있고, 하위 노드 M1(1,1)의 노드값 3과 상위 노드 M0의 노드값 1의 차이값 2는 부호화 비트 001로 부호화할 수 있다.
도 30의 (f)에서 최대값 3은 부호화 비트 0001로 부호화할 수 있고, 상위 노드 M0의 노드값 1과 0의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(0,0)의 노드값 3과 상위 노드 M0의 노드값 1의 차이값 2는 부호화 비트 001로 부호화할 수 있고, 하위 노드 M1(1,0) 및 M1(1,0)의 노드값 2와 상위 노드 M0의 노드값 1의 차이값 1은 부호화 비트 01로 부호화할 수 있으며, 하위 노드 M1(1,1)의 노드값 1과 상위 노드 M0의 노드값 1의 차이값 0은 부호화 비트의 부호화가 생략될 수 있다.
다음에 부호에 대한 부호화를 수행할 수 있다. 예를 들어, 부호가 +일 경우에는 0, 부호가 -일 경우에는 1을 이용할 수 있다. 물론, 그 반대의 부호화 비트를 할당할 수도 있다. 이때, 상위 노드는 하위 노드들의 최소값을 사용할 수 있으며, 최대값을 사용할 수도 있다. 도 30에서 델타 양자화 파라미터의 절대값이 0인 경우를 제외하고 델타 양자화 파라미터의 부호에 대한 부호화를 +에 0을 할당하고 -에 1을 할당하며, 각각의 최하위 노드값들 중에서 최소값을 선택하여 상위 노드값으로 할당하면 도 31과 같이 나타낼 수 있다. 즉, 도 30에서 (a)의 경우는 절대값이 모두 0이므로 부호화할 데이터가 없다.
도 31에서 (b)의 상위 노드값 0과 0과의 차이값 0은 부호화 비트 1로 부호화할 수 있으며, M1(0,0)의 노드값은 0이므로 부호화 비트의 부호화를 생략할 수 있고, M1(0,1)의 노드값 1과 상위 노드값 0과의 차이값 1은 부호화 비트 0으로 부호화할 수 있으며, M1(1,0) 및 M1(1,1)의 노드값 0과 상위 노드값 0과의 차이값 0은 각각 부호화 비트 1로 부호화할 수 있다.
도 31에서 (c)의 상위 노드값 0과 0과의 차이값 0은 부호화 비트 1로 부호화할 수 있으며, M1(0,0), M1(0,1) 및 M1(1,0)의 노드값 0과 상위 노드값 0과의 차이값 0은 부호화 비트 1로 부호화할 수 있고, M1(1,1)의 노드값 1과 상위 노드값 0과의 차이값 1은 부호화 비트 0으로 부호화할 수 있다.
도 31에서 (d)의 상위 노드값 1과 0과의 차이값 1은 부호화 비트 0으로 부호화할 수 있으며, M1(0,0), M1(0,1), M1(1,0) 및 M1(1,1)의 노드값 1과 상위 노드값 1과의 차이값 0은 각각 부호화 비트의 부호화를 생략할 수 있다.
도 31에서 (e)의 상위 노드값 1과 0과의 차이값 1은 부호화 비트 0으로 부호화할 수 있으며, M1(0,0), M1(0,1), M1(1,0) 및 M1(1,1)의 노드값 1과 상위 노드값 1과의 차이값 0은 각각 부호화 비트의 부호화를 생략할 수 있다.
도 31에서 (f)의 상위 노드값 0과 0과의 차이값 0은 부호화 비트 1로 부호화할 수 있으며, M1(0,0), M1(0,1), M1(1,0) 및 M1(1,1)의 노드값 0과 상위 노드값 0과의 차이값 0은 부호화 비트 1로 부호화할 수 있다.
도 32는 본 발명의 일 실시예에 따른 영상 복호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 일 실시예에 따른 영상 복호화 장치(3200)는 부호화 정보 복호화기(3210) 및 영상 복호화기(3300)를 포함하여 구성될 수 있다.
부호화 정보 복호화기(3210)는 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 블록 모드 정보와 블록이 서브블록으로 분할되는지 여부를 나타내는 분할 모드 정보를 복원하고, 블록 모드 정보와 분할 모드 정보의 조합에 따라 비트스트림을 복호화하여 블록의 스킵 움직임 정보를 복원하거나 블록의 블록 타입 정보와 블록의 예측 정보를 포함하는 예측 부호화 정보를 복원한다.
예를 들어, 부호화 정보 복호화기(3210)는 도 6에 도시한 바와 같은 신택스 구조를 가지는 비트스트림을 복호화하는데, 우선 비트스트림으로부터 블록 모드 정보 필드에 할당된 데이터와 분할 모드 정보 필드에 할당된 데이터를 추출하고 복호화하여 블록 모드 정보와 분할 모드 정보를 복원하며, 복원된 블록 모드 정보와 분할 모드 정보의 조합에 따라 6A에 나타낸 바와 같이 비트스트림으로부터 스킵 움직임 정보 필드에 할당된 데이터를 추출하고 복호화하여 스킵 움직임 정보를 복원하거나 6B에 나타낸 바와 같이 비트스트림으로부터 블록 타입 정보 필드, 예측 정보 필드, CBP 서브블록 플래그 필드, 변환 타입 정보 필드, CBP 필드, 델타 QP 필드 등에 할당된 데이터를 추출하고 복호화하여 블록 타입 정보, 예측 정보, CBP 서브블록 플래그, 변환 타입 정보, CBP, 델타 QP 등과 같은 예측 부호화 정보를 복원한다. 여기서, 예측 부호화 정보 중 CBP 서브블록 플래그 필드, 변환 타입 정보 필드, CBP 필드, 델타 QP 등은 반드시 복원되어야 하는 것은 아니며, 영상 부호화 장치(100)와 영상 복호화 장치(3200)가 서로 약속한 경우에만 복원될 수 있다.
영상 복호화기(3300)는 스킵 움직임 정보를 기초로 블록을 복원하거나 예측 부호화 정보를 기초로 비트스트림을 복호화하여 복원되는 계수 정보를 복호화하여 블록을 복원한다.
예를 들어, 영상 복호화기(3300)는 부호화 정보 복호화기(3210)에 의해 스킵 움직임 정보가 복원되면, 복원된 스킵 움직임 정보를 이용하여 복호화하고자 하는 블록 또는 해당 블록의 각 서브블록을 움직임 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원하며, 부호화 정보 복호화기(3210)에 의해 예측 부호화 정보가 복원되면 복원된 예측 부호화 정보를 이용하여 복호화하고자 하는 블록 또는 해당 블록의 각 서브블록을 인트라 예측 또는 인터 예측하여 예측 블록을 생성하고, 비트스트림을 복호화하여 계수 정보를 복원하며, 복원된 계수 정보에 의한 잔여 블록과 예측 블록을 가산하여 복호화하고자 하는 블록을 복원한다.
도 33은 영상 복호화기(3300)를 개략적으로 도시한 도면이다. 도면을 참조하면, 영상 복호화기(3300)는 복호화기(Decoder), 역양자화기 및 역변환기, 예측기, 가산기, 필터 및 픽처 버퍼를 포함하여 구성될 수 있다. 예측기는 움직임 보상기를 포함하여 구성될 수 있다.
도 34는 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 영상 복호화 방법에 따르면, 영상 복호화 장치(3200)는 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 블록 모드가 스킵 모드인지 여부를 나타내는 블록 모드 정보와 블록이 서브블록으로 분할되는지 여부를 나타내는 분할 모드 정보를 복원한다(S3410). 즉, 영상 복호화 장치(3200)는 복호화하고자 하는 블록에 대한 비트스트림으로부터 블록 모드 정보가 부호화된 데이터와 분할 모드 정보가 부호화된 데이터를 추출하고 복호화하여 블록 모드 정보와 분할 모드 정보를 복원한다.
영상 복호화 장치(3200)는 블록 모드 정보와 분할 모드 정보의 조합에 따라 비트스트림을 복호화하여 블록의 스킵 움직임 정보를 복원하거나 블록의 블록 타입 정보와 블록의 예측 정보를 포함하는 예측 부호화 정보를 복원하며(S3420), 스킵 움직임 정보를 기초로 블록을 복원하거나 예측 부호화 정보를 기초로 비트스트림을 복호화하여 복원되는 계수 정보를 복호화하여 블록을 복원한다(S3430). 즉, 영상 복호화 장치(3200)는 복원된 블록 모드 정보가 부호화하고자 하는 블록의 블록 모드가 스킵 모드임을 나타내는지 여부와 복원된 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는지 여부를 조합한 각 경우에 따라서 블록을 다른 방식으로 부호화한다.
이하에서는 부호화하고자 하는 블록이 64x64 화소 크기의 매크로블록이고 블록이 서브블록으로 분할되는 경우 16x16 화소 크기의 서브블록으로 분할되는 것으로 가정하여 영상 복호화 장치(3200)가 단계 S3420 및 단계 S3430을 수행하는 과정에 대해 예를 들어 설명한다.
단계 S3420에서, 영상 복호화 장치(3400)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드임을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할되지 않음을 나타내는 경우, 비트스트림을 복호화하여 블록에 대한 스킵 움직임 정보를 복원할 수 있다. 즉, 영상 복호화 장치(3400)는 비트스트림으로부터 스킵 움직임 정보가 부호화된 데이터를 추출하고 복호화하여 스킵 움직임 정보를 복원하는데, 스킵 움직임 정보는 복호화하고자 하는 블록에 대한 하나의 움직임 정보로 복원된다. 이 경우, 단계 S3430에서, 영상 복호화 장치(3200)는 복원되는 스킵 움직임 정보를 이용하여 복호화하고자 하는 블록의 움직임을 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원한다.
단계 S3420에서, 영상 복호화 장치(3200)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드임을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는 경우, 비트스트림을 복호화하여 블록의 서브블록에 대한 스킵 움직임 정보를 복원할 수 있다. 즉, 영상 복호화 장치(3200)는 비트스트림으로부터 스킵 움직임 정보가 부호화된 데이터를 추출하고 복호화하여 스킵 움직임 정보를 복원하는데, 스킵 움직임 정보는 복호화하고자 하는 블록의 각 서브블록에 대한 움직임 정보로 복수 개로 복원된다. 이 경우, 단계 S3430에서, 영상 복호화 장치(3200)는 복원되는 각 서브블록에 대한 스킵 움직임 정보를 이용하여 복호화하고자 하는 블록의 각 서브블록의 움직임을 보상하여 생성되는 서브블록을 복호화하고자 하는 블록의 각 서브블록으로 복원하고 그를 통해 복호화하고자 하는 블록을 복원한다.
단계 S3420에서, 영상 복호화 장치(3200)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드가 아님을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할되지 않음을 나타내는 경우, 비트스트림을 복호화하여 블록에 대한 예측 부호화 정보를 복원할 수 있다. 즉, 영상 복호화 장치(3200)는 비트스트림으로부터 예측 부호화 정보가 부호화된 데이터를 추출하고 복호화하여 예측 부호화 정보를 복원하는데, 예측 부호화 정보는 복호화하고자 하는 블록에 대한 하나의 예측 부호화 정보로 복원된다. 이 경우, 단계 S930에서, 영상 복호화 장치(3200)는 복원되는 예측 부호화 정보의 블록 타입 정보와 예측 정보 등을 기초로 비트스트림으로부터 계수 정보가 부호화된 데이터를 추출하고 복호화하여 계수 정보를 복원하고 복원되는 계수 정보를 역 양자화 및 역 변환하여 잔여 블록을 복원하며, 블록 타입 정보와 예측 정보 등을 기초로 복호화하고자 하는 블록을 예측하여 예측 블록을 생성하며, 복원되는 잔여 블록과 예측 블록을 가산하여 복호화하고자 하는 블록을 복원한다.
단계 S3420에서, 영상 복호화 장치(3200)는 블록 모드 정보가 블록의 블록 모드가 스킵 모드가 아님을 나타내고 분할 모드 정보가 블록이 서브블록으로 분할됨을 나타내는 경우, 비트스트림을 복호화하여 블록의 서브블록에 대한 예측 부호화 정보를 복원할 수 있다. 즉, 영상 복호화 장치(3200)는 비트스트림으로부터 예측 부호화 정보가 부호화된 데이터를 추출하고 복호화하여 예측 부호화 정보를 복원하는데, 예측 부호화 정보는 복호화하고자 하는 블록의 각 서브블록에 대한 복수 개의 예측 부호화 정보로 복원된다. 이 경우, 단계 S3430에서, 영상 복호화 장치(3200)는 복원되는 예측 부호화 정보의 블록 타입 정보와 예측 정보 등을 기초로 비트스트림으로부터 계수 정보가 부호화된 데이터를 추출하고 복호화하여 각 서브블록에 대한 계수 정보를 복원하고 복원되는 각 서브블록에 대한 계수 정보를 역 양자화 및 역 변환하여 잔여 서브블록을 복원하며, 블록 타입 정보와 예측 정보 등을 기초로 각 서브블록을 예측하여 예측 서브블록을 생성하며, 복원되는 잔여 서브블록과 예측 서브블록을 가산하여 각 서브블록을 복원하며 그를 통해 복호화하고자 하는 블록을 복원한다.
여기서, 블록 타입 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부와 블록의 서브블록의 분할 타입을 기초로 이용 가능한 복수 개의 블록 타입에 할당된 블록 타입 번호일 수 있다. 예측 부호화 정보는 서브블록에 대한 변환 타입 정보, 서브블록에 대한 부호화된 블록 패턴 및 서브블록에 대한 델타 양자화 파라미터 중 하나 이상을 추가로 포함할 수 있다. 블록 타입 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 블록 타입 플래그와 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보를 포함할 수 있다.
또한, 복원된 블록 모드 정보가 복호화하고자 하는 블록의 블록 모드가 스킵 모드가 아님을 나타내고 복원된 분할 모드 정보가 해당 블록이 서브블록으로 분할됨을 나타내는 경우, 블록 타입 정보는 블록이 인터 매크로블록인지 또는 인트라 매크로블록인지 여부를 나타내는 블록 타입 플래그와 블록의 서브블록의 분할 타입을 나타내는 분할 타입 정보뿐만 아니라 서브블록의 블록 모드가 스킵 모드인지 여부를 나타내는 스킵 서브블록 플래그를 추가로 포함할 수 있다. 즉, 영상 복호화 장치(3200)는 복호화하고자 하는 블록의 블록 모드가 스킵 모드가 아니고 해당 블록이 서브블록으로 분할되는 경우, 비트스트림으로부터 각 서브블록에 대해 계수 정보가 부호화된 데이터와 예측 부호화 정보가 부호화된 데이터를 추출하고 복호화해야 하는 것은 아니며, 비트스트림으로부터 스킵 서브블록 플래그만을 복호화하여 임의의 서브블록의 블록 모드가 스킵 모드인 것으로 판단되는 경우에는 해당 서브블록에 대해서는 복호화를 스킵할 수 있다.
단계 S3420에서, 영상 복호화 장치(3200)는 비트스트림을 복호화하여 블록 타입 정보를 복원할 때, 트리 구조를 이용하여 분할 타입 정보를 복원할 수 있다.
이하에서는 도 7 및 도 8을 참조하여, 본 발명의 일 실시예에 따라 비트스트림을 복호화하여 블록 타입 정보를 복원할 때, 트리 구조를 이용하여 분할 타입 정보를 복원하는 과정을 설명한다.
영상 부호화 장치(100)에서 최상위 노드값을 부호화할 때, 분할 타입값으로 분할 타입별 번호가 설정되고 분할 타입의 발생 빈도수가 높은 순서로 큰 분할 타입별 번호가 설정되어 가장 큰 분할 타입 번호와의 차이값을 0과 1의 이진 비트를 이용하여 부호화한 경우, 영상 복호화 장치(3200)는 비트스트림으로부터 분할 타입 정보가 부호화된 데이터를 추출하고, 추출된 데이터의 이진 비트 0과 1을 복호화하여 차이값을 복원하고 가장 큰 분할 타입 번호로부터 복원된 차이값을 빼서 최상위 노드값을 복원한다. 이때, 영상 복호화 장치(3200)가 차이값을 복원하기 위해, 분할 타입 정보가 부호화된 데이터의 한 비트를 읽어 들여 복호화하고 이진 비트를 복원하고, 복원된 이진 비트가 0인 경우 다음 비트를 읽어 들인다. 이와 같은 방식으로 복호화하여 이진 비트 1이 복원될 때까지 이진 비트 0을 계속 복원하고, 복원된 이진 비트가 1인 경우 더 이상 비트를 읽어 들여 복호화하지 않으며 차이값은 복원된 이진 비트 0의 개수가 된다. 다만, 비트의 개수가 분할 타입 번호가 가질 수 있는 최대값과 최소값의 차이값만큼 읽어 들여진 경우에는 다음 비트를 읽어 들이지 않으며 차이값은 복원된 이진 비트 0의 개수가 된다(이 경우, 차이값은 분할 타입 번호가 가질 수 있는 최대값과 최소값의 차이값이 됨).
반대로, 영상 부호화 장치(100)에서 최상위 노드값을 부호화할 때, 분할 타입값으로 분할 타입별 번호가 설정되고 분할 타입의 발생 빈도수가 낮은 순서로 큰 분할 타입별 번호가 설정되어 가장 작은 분할 타입 번호와의 차이값을 0과 1의 이진 비트를 이용하여 부호화한 경우, 영상 복호화 장치(3200)는 비트스트림으로부터 분할 타입 정보가 부호화된 데이터를 추출하고, 추출된 데이터의 이진 비트 0과 1을 복호화하여 차이값을 복원하고 가장 작은 분할 타입 번호로부터 복원된 차이값을 빼서 최상위 노드값을 복원한다. 이때, 영상 복호화 장치(3200)가 차이값을 복원하는 방법은 전술한 바와 같다.
또한, 영상 부호화 장치(100)에서 최상위 노드값을 부호화할 때, 0과의 차이값을 전술한 바와 같이 0과 1의 이진 비트를 이용하여 부호화함으로써 부호화 한 경우, 영상 복호화 장치(3200)는 비트스트림으로부터 분할 타입 정보가 부호화된 데이터를 추출하고, 추출된 데이터의 이진 비트 0과 1을 복호화하여 복원되는 차이값을 최상위 노드값으로 복원한다. 이때, 영상 복호화 장치(3200)가 차이값을 복원하는 방법은 전술한 바와 같다.
이후 영상 복호화 장치(3200)는 최상위 노드의 하위 노드들의 노드값을 복호화한다. 영상 부호화 장치(100)에서 부호화하고자 하는 노드의 노드값과 상위 노드의 노드값의 차이값의 개수만큼 이진 비트 0을 부호화하여 노드값을 부호화하는 경우, 영상 복호화 장치(3200)는 각 노드의 노드값들을 복호화할 때, 비트스트림으로부터 추출되고 최상위 노드값을 복원하기 위해 읽어들여진 비트들의 다음의 한 비트를 읽어 들여 복호화하고 복원된 이진 비트가 0인 경우, 다음 비트를 읽어 들여 복호화한다. 복원된 상위 노드의 노드값이 분할 타입 번호가 가질 수 있는 최대값인 경우, 이진 비트를 복원하지 않고 분할타입 번호가 가질 수 있는 최대값을 복호화하고자 하는 노드값으로 복원한다. 만약, 복원된 이진 비트가 1인 경우 더 이상 비트를 읽어 들이지 않으며 복원된 이진 비트 0의 개수를 차이값으로 복원하고, 복원된 차이값에 상위 노드의 노드값을 더하여 복호화하고자 하는 노드의 노드값을 복원한다. 만약, 영상 부호화 장치(100)에서 부호화하고자 하는 노드의 노드값과 상위 노드의 노드값의 차이값의 개수만큼 이진 비트 1을 부호화하여 노드값을 부호화하는 경우, 전술한 방법에서 복원된 이진 비트가 0일 때까지 한 비트씩을 복호화하여 이진 비트를 복원한다.
다만, 복호화하고자 하는 노드값을 복원할 때, 현재까지 복원한 이진 비트 0의 개수에 따른 차이값과 해당 노드의 상위 노드의 노드값을 더한 값이 분할 타입 번호가 가질 수 있는 최대값인 경우, 더 이상 비트를 읽어 들여 이진 비트를 복원하지 않고 분할 타입 번호가 가질 수 있는 최대값을 해당 노드값으로 복원한다. 또한, 동일한 상위 노드를 가지는 노드들 중 마지막 노드의 노드값을 복원할 때 마지막 노드를 제외한 노드들의 노드값이 상위 노드의 노드값보다 모두 큰 경우, 더 이상 비트를 읽어 들여 이진 비트를 복원하지 않고 상위 노드의 노드값을 마지막 노드의 노드값으로 복원한다.
트리 구조를 이용하여 분할 타입 정보를 복호화하는 또 다른 실시예로 7A에 나타낸 서브블록들의 분할 타입값들을 그룹화하여 7B의 그룹화된 영역의 분할 타입값을 정할 때 발생빈도수가 높은 순서로 큰 분할 타입별 번호가 설정된 경우 복원한 상위노드 노드와 노드값을 빼서 현재노드의 노드값을 복원한다.
이상에서 전술한 바와 같이, 본 발명의 일 실시예에 따르면, 영상에서 부호화하고자 하는 블록의 블록 모드와 분할 모드의 조합에 따라 효율적인 방식으로 해당 블록을 부호화고 복호화할 수 있으므로, 영상의 압축 효율을 향상시킬 수 있다.
이상에서는 부호화하고자 하는 블록의 블록 모드 정보와 분할 모드 정보의 조합에 따라 해당 블록을 부호화 방법과 부호화를 통해 생성되는 비트스트림의 신택스 구조에 대해 본 발명의 일 실시예를 통해 설명했다. 이하에서는 본 발명의 다른 실시예를 통해 부호화하고자 하는 블록의 스킵 타입 정보에 따라 해당 블록에 대한 부호화 방식을 선택적으로 이용하여 영상을 부호화하는 방법에 대해 설명한다.
도 35는 본 발명의 다른 실시예에 따른 영상 부호화 장치를 간략하게 나타낸 블록 구성도이다.
본 발명의 다른 실시예에 따른 영상 부호화 장치(3500)는 부호화 정보 부호화기3510) 및 영상 부호화기(3520)를 포함하여 구성될 수 있다.
부호화 정보 부호화기(3510)는 영상의 부호화하고자 하는 블록의 스킵 타입을 나타내는 스킵 타입 정보를 부호화하고, 스킵 타입 정보에 따라 블록의 스킵 움직임 정보를 부호화한다. 즉, 부호화 정보 부호화기(3510)는 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 블록의 스킵 타입을 나타내는 스킵 타입 정보를 부호화하며, 스킵 타입 정보를 기초로 블록의 스킵 움직임 정보를 부호화한다. 예를 들어, 부호화 정보 부호화기(3510)는 블록의 스킵 타입이 블록의 스킵 움직임 정보를 부호화함을 나타내는 경우 블록의 스킵 움직임 정보를 부호화한다.
영상 부호화기(3520)는 블록의 스킵 타입 정보에 따라 블록의 계수 정보를 부호화한다. 즉, 영상 부호화기(3520)는 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 스킵 타입 정보를 기초로 블록의 계수 정보를 부호화한다. 예를 들어, 영상 부호화기(3520)는 블록의 스킵 타입이 블록의 계수 정보를 부호화함을 나타내는 경우 블록의 스킵 움직임 정보를 부호화한다. 이러한 영상 부호화기(3520)는 도 1을 통해 전술한 본 발명의 일 실시예에 따른 영상 부호화기(200)와 같이 예측기, 감산기, 변환 및 양자화기, 부호화기, 역 양자화 및 역변환기, 가산기, 필터, 픽처 버퍼 등을 포함하여 구성될 수 있다.
만약, 블록의 스킵 타입 정보가 블록에 대한 부호화를 스킵함을 나타내는 경우, 해당 블록에 대해서는 스킵 움직임 정보와 계수 정보 모두가 부호화되지 않고 스킵 타입 정보만이 부호화된다.
도 36은 본 발명의 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 순서도이다.
본 발명의 다른 실시예에 따른 영상 부호화 방법에 따르면, 영상 부호화 장치(3500)는 영상의 부호화하고자 하는 블록의 스킵 타입을 나타내는 스킵 타입 정보를 부호화한다(S3610). 여기서, 스킵 타입이란 블록의 블록 모드가 스킵 모드일 때, 어떠한 방식으로 스킵 모드의 블록을 부호화할 것인지를 나타낸다. 즉, 영상 부호화 장치(3500)는 부호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우, 해당 블록을 스킵 모드에 따라 부호화할 때 블록의 계수 정보만을 부호화할지 아니면 블록의 움직임 정보만을 부호화할지 아니면 블록에 대한 부호화를 스킵할지 여부를 나타내는 스킵 타입 정보를 부호화한다.
이러한 스킵 타입 정보는 1 비트의 스킵 타입 플래그로 구현될 수 있는데, 1 비트의 스킵 타입 플래그를 통해 다음과 같이 세 가지 경우로 스킵 타입을 나타낼 수 있다. 일 예로, 스킵 타입 플래그가 0이면 스킵 모드가 블록에 대해 부호화를 하지 않고 스킵하는 것을 나타내고 스킵 타입 플래그가 1이면 스킵 모드가 블록의 계수 정보는 부호화하지 않고 스킵 움직임 벡터를 부호화하는 것을 나타낼 수 있다. 다른 예로, 스킵 타입 플래그가 0이면 스킵 모드가 블록에 대해 부호화를 하지 않고 스킵하는 것을 나타내고 스킵 타입 플래그가 1이면 블록의 스킵 움직임 벡터는 부호화하지 않고 블록의 계수 정보를 부호화하는 것을 나타낼 수 있다. 또 다른 예로, 스킵 타입 플래그가 0이면 블록의 계수 정보를 부호화하지 않고 블록의 스킵 움직임 벡터를 부호화하는 것을 나타내고 스킵 타입 플래그가 1이면 블록의 스킵 움직임 벡터를 부호화하지 않고 블록의 계수 정보를 부호화하는 것을 나타낼 수 있다.
영상 부호화 장치(3500)는 스킵 타입 정보에 따라 블록의 부호화를 스킵하거나 블록의 스킵 움직임 정보를 부호화하거나 블록의 계수 정보를 부호화한다(S3620).
여기서, 스킵 타입 정보는 블록의 부호화를 스킵함을 나타내거나 블록의 스킵 움직임 정보를 부호화함을 나타낼 수 있다. 또는, 스킵 타입 정보는 블록의 부호화를 스킵함을 나타내거나 블록의 계수 정보를 부호화함을 나타낼 수 있다. 또는 스킵 타입 정보는 블록의 스킵 움직임 정보를 부호화함을 나타내거나 블록의 계수 정보를 부호화함을 나타낼 수 있다.
따라서, 단계 S3620에서, 영상 부호화 장치(3500)는 스킵 타입 정보가 블록의 스킵 타입이 블록의 부호화를 스킵함을 나타내는 경우, 블록의 부호화를 수행하지 않고 스킵한다.
또한, 단계 S3620에서, 영상 부호화 장치(3500)는 스킵 타입 정보가 블록의 스킵 타입이 스킵 움직임 정보를 부호화함을 나타내는 경우, 부호화하고자 하는 블록의 스킵 움직임 정보를 부호화하고 해당 블록의 계수 정보는 부호화하지 않는다.
또한, 단계 S3620에서, 영상 부호화 장치(3500)는 스킵 타입 정보가 블록의 스킵 타입이 계수 정보를 부호화함을 나타내는 경우, 부호화하고자 하는 블록의 계수 정보를 부호화하고 해당 블록의 스킵 움직임 벡터 정보는 부호화하지 않는다. 이 경우, 부호화하고자 하는 블록의 계수 정보는 해당 블록의 주변 블록의 움직임 정보를 기초로 결정되는 움직임 정보를 이용하여 예측 부호화될 수 있다.
도 37은 본 발명의 다른 실시예에 따른 영상 복호화 장치(3700)의 구성을 간략하게 나타낸 블록 구성도이다.
본 발명의 다른 실시예에 따른 영상 복호화 장치(3700)는 부호화 정보 복호화기(1210) 및 영상 복호화기(1220)를 포함하여 구성될 수 있다.
부호화 정보 복호화기(3710)는 비트스트림을 복호화하여 영상의 복호화하고자 하는 블록의 스킵 타입을 나타내는 스킵 타입 정보를 복원하고, 스킵 타입 정보에 따라 비트스트림을 복호화하여 블록의 스킵 움직임 정보를 복원한다.
영상 복호화기(3720)는 스킵 타입 정보에 따라 기 설정된 방식에 따라 결정되는 움직임 정보를 기초로 블록을 복원하거나 스킵 움직임 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 복원되는 계수 정보를 기초로 블록을 복원한다.
즉, 영상 복호화기(3720)는 부호화 정보 복호화기(3710)에 의해 복원되는 스킵 타입 정보가 블록의 스킵 타입이 스킵 움직임 벡터를 부호화함을 나타내는 경우, 부호화 정보 복호화기(3710)에 의해 복원되는 스킵 움직임 정보를 이용하여 복호화하고자 하는 블록의 움직임을 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원한다. 또한, 영상 복호화기(3720)는 부호화 정보 복호화기(3710)에 의해 복원되는 스킵 타입 정보가 블록의 계수 정보를 부호화함을 나타내는 경우, 비트스트림을 복호화하여 계수 정보를 복원하고, 복원된 계수 정보를 역 양자화 및 역 변환하여 잔여 블록을 복원하며, 기 설정된 방식으로 결정되는 움직임 정보를 이용하여 움직임 보상하여 생성되는 예측 블록과 가산하여 복호화하고자 하는 블록을 복원한다. 만약, 영상 복호화기(3720)는 부호화 정보 복호화기(3710)에 의해 복원되는 스킵 타입 정보가 블록에 대한 부호화를 스킵함을 나타내는 경우, 기 설정된 방식으로 결정되는 움직임 정보를 이용하여 해당 블록의 움직임 보상을 수행하여 생성되는 블록을 해당 블록으로 복원한다.
여기서, 기 설정된 방식으로 결정되는 움직임 정보란 주변 블록의 움직임 정보를 이용하여 결정되는 움직임 정보일 수 있는데, 반드시 이에 한정되지 않고 기 설정된 다양한 방식으로 결정되는 움직임 정보가 이용될 수 있다.
도 38은 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 순서도이다.
본 발명의 일 실시예에 따른 영상 복호화 방법에 따르면, 영상 복호화 장치(1200)는 비트스트림을 복호화하여 복호화하고자 하는 블록의 스킵 타입을 나타내는 스킵 타입 정보를 복원하고(S3810), 스킵 타입 정보에 따라 기 설정된 방식으로 결정되는 움직임 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 복원되는 블록의 스킵 움직임 정보를 기초로 블록을 복원하거나 비트스트림을 복호화하여 복원되는 계수 정보를 기초로 블록을 복원한다(S3820).
단계 S3810에서, 영상 복호화 장치(3700)는 블록의 블록 모드가 스킵 모드인 경우에만 스킵 타입 정보를 복원할 수 있다. 즉, 복호화하고자 하는 블록의 블록 모드가 스킵 모드인 경우에만 비트스트림에 스킵 타입 정보가 부호화된 데이터가 포함되어 있으므로, 스킵 모드인 경우에만 비트스트림으로부터 스킵 타입 정보가 부호화된 데이터를 추출하고 복호화하여 스킵 타입 정보를 복원한다.
단계 S3820에서, 영상 복호화 장치(3700)는 복원되는 스킵 타입 정보가 블록의 부호화를 스킵함을 나타내는 경우, 기 설정된 방식으로 결정되는 움직임 정보를 기초로 블록을 복원할 수 있다. 즉, 스킵 타입 정보가 블록의 부호화를 스킵함을 나타내는 경우, 영상 부호화 장치(3500)에서 해당 블록의 부호화를 스킵하여 비트스트림에는 해당 블록에 대한 부호화 정보나 계수 정보가 부호화된 데이터가 없음을 알 수 있으므로, 비트스트림으로부터 데이터를 추출하여 복호화하지 않고, 영상 부호화 장치(3500)와 약속되어 기 설정된 방식으로 해당 블록의 움직임 정보(즉, 움직임 벡터와 참조 픽처 인덱스)를 결정하고 결정된 움직임 정보를 이용하여 해당 블록의 움직임을 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원한다.
단계 S3820에서, 영상 복호화 장치(3700)는 스킵 타입 정보가 블록의 스킵 움직임 정보를 부호화함을 나타내는 경우, 비트스트림을 복호화하여 복원되는 블록의 스킵 움직임 정보를 기초로 블록을 복원할 수 있다. 즉, 영상 복호화 장치(3700)는 스킵 타입 정보가 블록의 스킵 움직임 정보를 부호화함을 나타내는 경우, 영상 부호화 장치(3500)에서 해당 블록의 계수 정보가 아닌 스킵 움직임 정보를 부호화하여 비트스트림에는 계수 정보가 부호화된 데이터가 없음을 알 수 있으므로, 비트스트림으로부터 스킵 움직임 정보가 부호화된 데이터를 추출하고 복호화하여 스킵 움직임 정보를 복원하고 복원된 스킵 움직임 정보를 이용하여 해당 블록의 움직임을 보상하여 생성되는 블록을 복호화하고자 하는 블록으로 복원한다.
단계 S3820에서, 영상 복호화 장치(3700)는 스킵 타입 정보가 블록의 계수 정보를 부호화함을 나타내는 경우, 비트스트림을 복호화하여 복원되는 계수 정보를 기초로 블록을 복원할 수 있다. 즉, 영상 복호화 장치(3700)는 스킵 타입 정보가 블록의 계수 정보를 부호화함을 나타내는 경우, 영상 부호화 장치(3500)에서 해당 블록의 스킵 움직임 정보가 아닌 계수 정보를 부호화하여 비트스트림에는 계수 정보가 부호화된 데이터가 없음을 알 수 있으므로, 비트스트림으로부터 계수 정보가 부호화된 데이터를 추출하고 복호화하여 계수 정보를 복원하고 복원된 계수 정보를 역 양자화 및 역 변환하여 잔여 블록을 복원하며 영상 부호화 장치(3500)와 약속되어 기 설정된 방식으로 해당 블록의 움직임 정보(즉, 움직임 벡터와 참조 픽처 인덱스)를 결정하고 결정된 움직임 정보를 이용하여 해당 블록의 움직임을 보상하여 생성되는 예측 블록과 복원된 잔여 블록을 가산하여 복호화하고자 하는 블록을 복원한다.
제 2 실시예
이하, 본 발명의 제 2 실시예를 설명한다. 특히, 본 발명의 제 2 실시예에서는 변환 서브 블록과 관련된 변환 정보 (예컨대, 변환 타입, 변환 서브 블록 분할 플래그, CBP 플래그 등)의 트리 구조 부호화의 또 다른 실시예에 대해 설명한다.
제 2 실시예에 따르면 변환 서브 블록은 각 매크로블록 또는 서브 블록 내에서 가변 크기의 블록으로 분할함으로써 얻어질 수 있다. 또한, 변환 서브 블록에 따라 변환 타입이 결정될 수 있다. 또는 예측 모드에 따라 변환 타입을 결정할 수도 있다.
이때, 가능한 변환 서브 블록의 크기와 타입에 관한 정보는 다양한 헤더에 포함될 수 있다. 여기서 헤더는 슬라이스 헤더, 픽처 헤더, 시퀀스 헤더가 될 수 있다. 또한, 최대 변환 서브 블록의 크기와 최소 변환 서브 블록의 크기를 부호화하고, 인트라 예측과 인터 예측의 최소 변환 서브 블록의 크기를 다르게 둘 수 있다. 예를 들어, 최대 변환 서브 블록의 크기가 64x64 이고, 최소 변환 서브 블록의 크기가 4x4인 경우, 다시 인트라 예측 블록의 최소 변환 서브 블록의 크기를 16x16으로 부호화 할 수 있다. 이러한 경우, 인트라 예측 블록의 변환을 위해 가능한 변환 서브 블록의 크기는 64x64, 32x32, 16x16이 되고, 인터 예측 블록의 변환을 위해 가능한 변환 서브 블록의 크기는 64x64, 32x32, 16x16, 8x8. 4x4가 된다.
도 39는 본 발명의 제 2 실시예에 따른 변환 정보 부호화의 예를 설명하기 위해 도시한 도면이다.
도 39에서, 39-A는 현재 매크로블록이 서브 블록들로 분할된 경우를 나타낸다. 즉, 현재 매크로블록이 서브 블록 A, B, C, D의 4개의 블록으로 분할되었다.
39-B는 현재 매크로블록 내 서브 블록의 예측 서브 블록을 나타낸다. 즉, 서브 블록 A는 Skip 모드이고, 서블 블록 B는 16x16의 4개의 인트라 예측 서브 블록으로 분할되었고, 서브 블록 C와 D는 각각 8x16과 16x8의 2개의 인터 예측 서브 블록으로 분할되었다.
39-C는 현재 매크로블록 내 서브 블록의 변환 서브 블록의 크기를 나타낸다. 즉, 서브 블록 A는 Skip 모드 이므로 변환하지 않고, 서브 블록 B는 8x8 크기의 변환 서브 블록으로 변환 및 양자화 되었고, 서브 블록 C와 D는 각각 32x32와 16x16 크기의 변환 서브 블록으로 변환 및 양자화되었다.
39-D와 39-E, 39-F는 1개의 휘도 성분과 2개의 색차 성분의 CBP 플래그를 나타낸다.
도 39-G는 현재 매크로블록 내 서브 블록의 블록 숫자를 나타낸다.
도 40은 트리 구조를 이용한 도 39의 서브 블록 B의 변환 정보 부호화 예시를 설명하기 위한 도면이다.
도 39 및 도 40을 참조하면, 먼저 현재 서브 블록 B 내에 휘도와 색차 성분의 변환 계수가 0이 아닌 계수가 있는지를 나타내는 Sub_block_CBP_flag가 부호화되고, 현재 서브 블록이 변환 서브 블록으로 분할되었는지를 나타내는 split_flag가 부호화된다. 이후 각 변환 서브 블록마다 색차 성분 (Cr, Cb)과 휘도 성분 (Y)의 CBP_flag와 split_flag를 부호화한다. 도 39의 39-G를 참조하면, P1, P2, P3, P4로 분할된 변환 서브 블록의 split_flag와 cbp_flag를 Cb_CBP_flag, Cr_CBP_flag, split_flag 순으로 1/1/1로 부호화한 뒤 다시 분할된 변환 서브 블록의 P1, P2, P3, P4 순으로 각 변환 서브 블록의 Cb_CBP_flag, Cr_CBP_flag, split_flag, Y_CBP_flag 순으로 부호화 한다. 다른 변환 서브 블록도 동일한 순서와 동일한 신택스로 부호화 된다.
이때 각 신택스는 컨텍스트 적응적 이진산술부호화(CABAC)를 이용하여 주변 상황에 따라 다른 컨텍스트를 이용하여 부호화할 수도 있고, 컨텍스트를 이용하지 않고, 신택스 값을 1 bit로 부호화할 수도 있다.
도 41은 트리 구조를 이용한 도 39의 서브 블록 C의 변환 정보 부호화 예시를 설명하기 위한 도면이다.
도 39 및 도 41을 참조하면, 현재 서브 블록 C는 변환 서브 블록으로 분할 되지 않은 인터 예측 블록이다. 따라서 현재 서브 블록 C 의 Sub_block_CBP_flag를 1로 부호화하고, split_flag를 0으로 부호화한 뒤 Cb_CBP_flag, Cr_CBP_flag, Y_CBP_flag 순으로 부호화한다.
도 42는 트리 구조를 이용한 도 39의 서브 블록 C의 변환 정보 부호화의 또 다른 예시를 설명하기 위한 도면이다.
도 39와 도 42를 참조하면, 먼저 현재 서브 블록의 변환 서브 블록이 분할 되었는지를 나타내는 split_flag를 부호화하고, CBP 플래그 (Cb, Cr, Y)를 부호화 한다. 이 경우 sub_block_CBP_flag를 부호화하지 않아도 된다. 또한, 모든 서브 블록의 트리 구조마다 최상위 노드의 sub_block_CBP_flag와 split_flag는 순서가 변경될 수 있다.
도 43은 트리 구조를 이용한 도 39의 서브 블록 D의 변환 정보 부호화 예시를 설명하기 위한 도면이다.
도 39와 도 43을 참조하면, 현재 서브 블록 D는 변환 서브 블록으로 분할 된 인터 예측 블록이다. 따라서 현재 서브 블록 D 의 sub_block_CBP_flag와 split_flag를 각각 1로 부호화 한다. 그 뒤, 도 39-G를 참조하면 P15, P16, P17, P18의 순서대로로 분할된 각 변환 서브 블록의 split_flag와 cbp_flag를 split_flag, Cb_CBP_flag, Cr_CBP_flag, Y_CBP_flag 순으로 부호화한다.
전술한 각 신택스와 신택스의 순서는 예시적인 것일 뿐 전술한 예에 한정되지 않는다. 본 발명의 실시예에 따른 변환 정보의 부호화 데이터는 변환 정보 중 sub_block_CBP_flag, split flag, cbp_flag (각 성분 별) 중 하나 이상의 신택스 및 변환 정보를 포함하여 구성될 수 있다. 특히, 서브 블록 별로 각 서브 블록에 색차와 휘도 성분에 0이 아닌 변환 계수가 있는지를 나타내는 sub_block_CBP_flag를 최상위 노드값으로 부호화하는 경우를 포함한다.
본 발명의 실시예에 따른 변환 정보 복호화는 변환 정보 부호화의 역과정에 해당하므로 당업자라면 전술한 변환 정보 부호화 과정으로부터 변환 정보 복호화 과정을 이해할 수 있을 것이다.
이상에서 전술한 바와 같이, 본 발명의 다른 실시예에 따르면 블록의 스킵 모드를 다양한 방식으로 정의하고 영상의 특성 및/또는 구현 방식이나 필요에 따라 다양한 방식을 선택적으로 이용하여 영상을 부호화하고 복호화할 수 있으므로, 영상의 압축 효율을 향상시킬 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 또한, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 따라서, 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (11)

  1. 영상 복호화 방법에 있어서,
    비트스트림으로부터 최소 서브블록 크기에 대한 정보 및 최대 서브블록 크기를 지시하기 위한 정보를 복호화하는 단계;
    복호화할 현재블록의 블록 모드가 스킵 모드인지 여부를 지시하는 블록 모드 정보를 상기 비트스트림으로부터 복호화하는 단계, 상기 스킵 모드에서는 상기 비트스트림에 상기 현재블록의 움직임 정보가 포함되고 잔차 신호에 대한 정보는 포함되지 않음; 및
    상기 블록 모드 정보에 근거하여 상기 현재블록을 복원하는 단계를 포함하되,
    상기 블록 모드 정보가 상기 스킵 모드를 지시하지 않을 때, 상기 현재블록을 복원하는 단계는,
    상기 비트스트림으로부터 상기 현재블록의 예측 정보를 복호화하는 단계;
    상기 비트스트림으로부터 트리 구조의 분할 정보를 복호화함으로써 상기 현재블록으로부터 분할된 하나 이상의 서브블록들의 잔차 신호에 대한 정보를 복원하는 단계; 및
    상기 예측 정보 및 상기 서브블록들 각각의 잔차 신호에 대한 정보에 근거하여 상기 현재블록을 복원하는 단계를 포함하고,
    상기 현재블록으로부터 분할된 상기 서브블록들은 상기 최소 서브블록 크기 이상이고 상기 최대 서브블록 크기 이하의 크기를 가지는 것을 특징으로 하는 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 블록 모드 정보가 상기 스킵 모드를 지시할 때, 상기 현재블록을 복원하는 단계는,
    상기 비트스트림으로부터 상기 현재블록의 잔차 신호에 대한 정보를 복호화함 없이, 상기 움직임 정보에 의해 예측한 예측블록을 상기 현재블록으로서 복원하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 최소 서브블록 크기에 대한 정보 및 상기 최대 서브블록 크기를 지시하기 위한 정보는 시퀀스 단위로 상기 비트스트림으로부터 복호화되는 것을 특징으로 하는 영상 복호화 방법.
  5. 영상 복호화 방법에 있어서,
    복호화할 현재블록의 블록 모드가 스킵 모드인지 여부를 지시하는 블록 모드 정보를 비트스트림으로부터 복호화하는 단계, 상기 스킵 모드에서는 상기 비트스트림에 상기 현재블록의 움직임 정보가 포함되고 잔차 신호에 대한 정보는 포함되지 않음; 및
    상기 블록 모드 정보에 근거하여 상기 현재블록을 복원하는 단계를 포함하되,
    상기 블록 모드 정보가 상기 스킵 모드를 지시하지 않을 때, 상기 현재블록을 복원하는 단계는,
    상기 비트스트림으로부터 상기 현재블록의 인트라 예측모드에 대한 인트라 예측 정보를 복호화하는 단계;
    상기 비트스트림으로부터 트리 구조의 분할 정보를 복호화함으로써 상기 현재블록으로부터 분할된 하나 이상의 서브블록들의 잔차 신호에 대한 정보를 복원하는 단계; 및
    상기 인트라 예측 정보 및 상기 서브블록들 각각의 잔차 신호에 대한 정보에 근거하여 상기 현재블록을 복원하는 단계를 포함하고,
    상기 분할 정보를 복호화하는 것은,
    분할 플래그를 복호화하되, 상기 분할 플래그는 대응하는 블록이 상기 트리구조에서 복수의 하위 레이어 블록으로 분할되는지 여부를 지시하는 정보인 단계;
    상기 대응하는 블록의 제1 색차 성분이 0이 아닌 변환 계수를 가지는지 여부를 지시하는 제1 부호화 블록 정보 및 제2 색차 성분이 0이 아닌 변환 계수를 가지는지 여부를 지시하는 제2 부호화 블록 정보를 복원하는 단계; 및
    상기 대응하는 블록이 상기 복수의 하위 레이어 블록으로 분할되지 않을 때, 상기 대응하는 블록의 휘도 성분이 0이 아닌 변환 계수를 가지는지 여부를 지시하는 제3 부호화 블록 정보를 복원하고 상기 대응하는 블록을 상기 서브블록들 중 하나로 식별하는 단계
    를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  6. 제5항에 있어서,
    상기 제1 부호화 블록 정보는 상기 대응하는 블록의 상위 레이어 블록이 제1 색차 성분에 대한 0이 아닌 변환 계수를 가질 때 복원되고,
    상기 제2 부호화 블록 정보는 상기 대응하는 블록의 상위 레이어 블록이 제2 색차 성분에 대한 0이 아닌 변환 계수를 가질 때 복원되는 것을 특징으로 하는 영상 복호화 방법.
  7. 영상 복호화 장치에 있어서,
    비트스트림으로부터 최소 서브블록 크기에 대한 정보 및 최대 서브블록 크기를 지시하기 위한 정보를 복호화하는 수단;
    복호화할 현재블록의 블록 모드가 스킵 모드인지 여부를 지시하는 블록 모드 정보를 상기 비트스트림으로부터 복호화하는 수단, 상기 스킵 모드에서는 상기 비트스트림에 상기 현재블록의 움직임 정보가 포함되고 잔차 신호에 대한 정보는 포함되지 않음; 및
    상기 블록 모드 정보에 근거하여 상기 현재블록을 복원하는 수단을 포함하되,
    상기 블록 모드 정보가 상기 스킵 모드를 지시하지 않을 때, 상기 현재블록을 복원하는 수단은,
    상기 비트스트림으로부터 상기 현재블록의 예측 정보를 복호화하고,
    상기 비트스트림으로부터 트리 구조의 분할 정보를 복호화함으로써 상기 현재블록으로부터 하나 이상으로 분할된 서브블록들의 잔차 신호에 대한 정보를 복원하며,
    상기 예측 정보, 및 상기 현재블록 또는 상기 서브블록들 각각의 잔차 신호에 대한 정보에 근거하여, 상기 현재블록을 복원하고,
    상기 현재블록으로부터 분할된 상기 서브블록들은 상기 최소 서브블록 크기 이상이고 상기 최대 서브블록 크기 이하의 크기를 가지는 것을 특징으로 하는 영상 복호화 장치.
  8. 제7항에 있어서,
    상기 블록 모드 정보가 상기 스킵 모드를 지시할 때, 상기 현재블록을 복원하는 수단은,
    상기 비트스트림으로부터 상기 움직임 정보를 복호화하고,
    상기 비트스트림으로부터 상기 현재블록의 잔차 신호에 대한 정보를 복호화함 없이 상기 움직임 정보에 의해 예측한 예측블록을 상기 현재블록으로서 복원하는 것을 특징으로 하는 영상 복호화 장치.
  9. 삭제
  10. 복호화할 현재블록의 블록 모드가 스킵 모드인지 여부를 지시하는 블록 모드 정보를 비트스트림으로부터 복호화하는 수단, 상기 스킵 모드에서는 상기 비트스트림에 상기 현재블록의 움직임 정보가 포함되고 잔차 신호에 대한 정보는 포함되지 않음; 및
    상기 블록 모드 정보에 근거하여 상기 현재블록을 복원하는 수단을 포함하고,
    상기 블록 모드 정보가 상기 스킵 모드를 지시하지 않을 때, 상기 현재블록을 복원하는 수단은,
    상기 비트스트림으로부터 상기 현재블록의 인트라 예측모드에 대한 인트라 예측 정보를 복호화하고,
    상기 비트스트림으로부터 트리 구조의 분할 정보를 복호화함으로써 상기 현재블록으로부터 하나 이상으로 분할된 서브블록들의 잔차 신호에 대한 정보를 복원하며,
    상기 인트라 예측 정보, 및 상기 현재블록 또는 상기 서브블록들 각각의 잔차 신호에 대한 정보에 근거하여, 상기 현재블록을 복원하되,
    상기 분할 정보는,
    대응하는 블록이 상기 트리구조에서 복수의 하위 레이어 블록으로 분할되는지 여부를 지시하는 분할 플래그를 복호화하고,
    상기 대응하는 블록의 제1 색차 성분이 0이 아닌 변환 계수를 가지는지 여부를 지시하는 제1 부호화 블록 정보 및 제2 색차 성분이 0이 아닌 변환 계수를 가지는지 여부를 지시하는 제2 부호화 블록 정보를 복원하며,
    상기 대응하는 블록이 상기 복수의 하위 레이어 블록으로 분할되지 않을 때, 상기 대응하는 블록의 휘도 성분이 0이 아닌 변환 계수를 가지는지 여부를 지시하는 제3 부호화 블록 정보를 복원하고 상기 대응하는 블록을 상기 서브블록들 중 하나로 식별함으로써 복호화되는 것을 특징으로 하는 영상 복호화 장치.
  11. 제10항에 있어서,
    상기 제1 부호화 블록 정보는 상기 대응하는 블록의 상위 레이어 블록이 제1 색차 성분에 대한 0이 아닌 변환 계수를 가질 때 복원되고,
    상기 제2 부호화 블록 정보는 상기 대응하는 블록의 상위 레이어 블록이 제2 색차 성분에 대한 0이 아닌 변환 계수를 가질 때 복원되는 것을 특징으로 하는 영상 복호화 장치.

KR1020170177017A 2010-04-16 2017-12-21 영상 부호화/복호화 장치 및 방법 KR101874840B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020100035533 2010-04-16
KR20100035533 2010-04-16

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020110035424A Division KR101813189B1 (ko) 2010-04-16 2011-04-16 영상 부호화/복호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180000336A KR20180000336A (ko) 2018-01-02
KR101874840B1 true KR101874840B1 (ko) 2018-08-02

Family

ID=45030486

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020110035424A KR101813189B1 (ko) 2010-04-16 2011-04-16 영상 부호화/복호화 장치 및 방법
KR1020170177017A KR101874840B1 (ko) 2010-04-16 2017-12-21 영상 부호화/복호화 장치 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020110035424A KR101813189B1 (ko) 2010-04-16 2011-04-16 영상 부호화/복호화 장치 및 방법

Country Status (3)

Country Link
US (3) US10015512B2 (ko)
KR (2) KR101813189B1 (ko)
CN (3) CN102986213B (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618727B (zh) * 2009-12-10 2018-01-12 Sk电信有限公司 使用树形结构的解码方法
KR101813189B1 (ko) * 2010-04-16 2018-01-31 에스케이 텔레콤주식회사 영상 부호화/복호화 장치 및 방법
CN107105282B (zh) * 2010-12-14 2019-11-12 M&K控股株式会社 用于解码运动画面的设备
US9380319B2 (en) * 2011-02-04 2016-06-28 Google Technology Holdings LLC Implicit transform unit representation
US11245902B2 (en) 2011-06-30 2022-02-08 Sony Corporation Binarization of DQP using separate absolute value and sign (SAVS) in CABAC
US9112526B2 (en) * 2011-06-15 2015-08-18 Sony Corporation Binarization of DQP using separate absolute value and sign (SAVS) in CABAC
US9948938B2 (en) * 2011-07-21 2018-04-17 Texas Instruments Incorporated Methods and systems for chroma residual data prediction
KR102277121B1 (ko) * 2011-11-08 2021-07-15 한국과학기술원 영상 부호화/복호화 방법 및 장치
US9426466B2 (en) 2012-06-22 2016-08-23 Qualcomm Incorporated Transform skip mode
CN104521232A (zh) * 2012-07-02 2015-04-15 韩国电子通信研究院 用于编码/解码图像的方法和设备
US20140079135A1 (en) * 2012-09-14 2014-03-20 Qualcomm Incoporated Performing quantization to facilitate deblocking filtering
US9219915B1 (en) 2013-01-17 2015-12-22 Google Inc. Selection of transform size in video coding
US9544597B1 (en) 2013-02-11 2017-01-10 Google Inc. Hybrid transform in video encoding and decoding
US9967559B1 (en) 2013-02-11 2018-05-08 Google Llc Motion vector dependent spatial transformation in video coding
WO2014163453A1 (ko) * 2013-04-05 2014-10-09 삼성전자주식회사 휘도차를 보상하기 위한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US9674530B1 (en) 2013-04-30 2017-06-06 Google Inc. Hybrid transforms in video coding
JP6731574B2 (ja) * 2014-03-06 2020-07-29 パナソニックIpマネジメント株式会社 動画像符号化装置および動画像符号化方法
US9924175B2 (en) 2014-06-11 2018-03-20 Qualcomm Incorporated Determining application of deblocking filtering to palette coded blocks in video coding
US10136141B2 (en) * 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
US9565451B1 (en) 2014-10-31 2017-02-07 Google Inc. Prediction dependent transform coding
FR3029333A1 (fr) * 2014-11-27 2016-06-03 Orange Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
KR102365685B1 (ko) 2015-01-05 2022-02-21 삼성전자주식회사 인코더의 작동 방법과 상기 인코더를 포함하는 장치들
CN107409227B (zh) 2015-03-20 2020-01-21 联发科技(新加坡)私人有限公司 视频编解码方法及装置
US10003807B2 (en) * 2015-06-22 2018-06-19 Cisco Technology, Inc. Block-based video coding using a mixture of square and rectangular blocks
US9769499B2 (en) 2015-08-11 2017-09-19 Google Inc. Super-transform video coding
US10277905B2 (en) 2015-09-14 2019-04-30 Google Llc Transform selection for non-baseband signal coding
US10362310B2 (en) * 2015-10-21 2019-07-23 Qualcomm Incorporated Entropy coding techniques for display stream compression (DSC) of non-4:4:4 chroma sub-sampling
US9807423B1 (en) 2015-11-24 2017-10-31 Google Inc. Hybrid transform scheme for video coding
US9942548B2 (en) * 2016-02-16 2018-04-10 Google Llc Entropy coding transform partitioning information
KR102383105B1 (ko) * 2016-07-05 2022-04-06 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2018026028A1 (ko) * 2016-08-02 2018-02-08 엘지전자(주) 서브 계수 그룹을 이용하여 레지듀얼 신호를 인코딩, 디코딩하는 방법 및 장치
KR20180021942A (ko) 2016-08-22 2018-03-06 광운대학교 산학협력단 보안 카메라용 영상 코덱에서 블록 분할 정보 전송 방법 및 장치
CN117354515A (zh) 2016-10-04 2024-01-05 有限公司B1影像技术研究所 图像编码/解码方法、记录介质和传输比特流的方法
JPWO2018123313A1 (ja) * 2016-12-26 2019-10-31 日本電気株式会社 映像符号化方法、映像復号方法、映像符号化装置、映像復号装置及びプログラム
CN107566846B (zh) * 2017-09-20 2020-04-14 北京字节跳动网络技术有限公司 视频编码跳过模式决策方法、装置、设备及存储介质
CN111264059B (zh) * 2017-10-25 2021-11-12 株式会社索思未来 编码方法、解码方法、编码装置、解码装置以及计算机可读取的记录介质
CN115022631A (zh) 2018-01-05 2022-09-06 Sk电信有限公司 对视频进行编码或解码的方法和非暂时性计算机可读介质
KR102524628B1 (ko) 2018-01-05 2023-04-21 에스케이텔레콤 주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
CN115379216A (zh) * 2018-06-03 2022-11-22 Lg电子株式会社 视频信号的解码、编码和发送设备及存储视频信号的介质
CN118138761A (zh) * 2018-06-18 2024-06-04 Lg电子株式会社 图像解码设备、编码设备和发送设备
CN116996672A (zh) 2018-09-21 2023-11-03 Lg电子株式会社 视频解码和编码方法、存储介质及数据的发送方法
KR20200108798A (ko) * 2019-03-11 2020-09-21 한국전자통신연구원 화면 내 블록 복사 기반 부호화/복호화 방법, 장치 및 비트스트림 저장매체
US11122297B2 (en) 2019-05-03 2021-09-14 Google Llc Using border-aligned block functions for image compression
CN110300302B (zh) * 2019-06-05 2021-11-12 锐捷网络股份有限公司 一种视频编码方法、装置和存储介质
CN117478913A (zh) * 2019-06-13 2024-01-30 北京达佳互联信息技术有限公司 用于视频编解码的子块变换的方法和***
CN113382253B (zh) * 2019-06-21 2022-05-20 杭州海康威视数字技术股份有限公司 一种编解码方法、装置、设备及存储介质
CN117376551B (zh) * 2023-12-04 2024-02-23 淘宝(中国)软件有限公司 视频编码加速方法及电子设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563953B2 (en) * 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
KR100433516B1 (ko) * 2000-12-08 2004-05-31 삼성전자주식회사 트랜스코딩 방법
US8175159B2 (en) * 2002-01-24 2012-05-08 Hitachi, Ltd. Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus
KR101037855B1 (ko) 2005-07-22 2011-05-31 미쓰비시덴키 가부시키가이샤 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법 및 화상 복호 방법
EP2030450B1 (en) * 2006-06-19 2015-01-07 LG Electronics Inc. Method and apparatus for processing a video signal
CN102752597A (zh) * 2006-08-28 2012-10-24 汤姆森许可贸易公司 用于确定解码视频块中的期望失真的方法及设备
US20100266042A1 (en) * 2007-03-02 2010-10-21 Han Suh Koo Method and an apparatus for decoding/encoding a video signal
BRPI0814854A2 (pt) * 2007-08-06 2015-01-27 Thomson Licensing Métodos e aparelho para modo de salto de vídeo animado com múltiplas imagens de referência entre exibições
CN101389016B (zh) * 2007-09-13 2010-10-20 华为技术有限公司 获得块边界强度和去除块效应的方法和装置
KR102139535B1 (ko) * 2007-10-16 2020-07-30 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US20100208827A1 (en) * 2007-10-16 2010-08-19 Thomson Licensing Methods and apparatus for video encoding and decoding geometerically partitioned super macroblocks
US8582652B2 (en) * 2007-10-30 2013-11-12 General Instrument Corporation Method and apparatus for selecting a coding mode
KR20090129926A (ko) * 2008-06-13 2009-12-17 삼성전자주식회사 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
KR101359496B1 (ko) * 2008-08-06 2014-02-11 에스케이 텔레콤주식회사 부호화 모드 결정 방법 및 장치와 그를 이용한 영상 부호화장치
US8619856B2 (en) * 2008-10-03 2013-12-31 Qualcomm Incorporated Video coding with large macroblocks
US8503527B2 (en) * 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
WO2010041856A2 (en) * 2008-10-06 2010-04-15 Lg Electronics Inc. A method and an apparatus for processing a video signal
CN102187674B (zh) * 2008-10-15 2014-12-10 法国电信公司 用于对实施不同大小的块的图像序列进行译码的方法和装置、解码方法和装置
KR101483750B1 (ko) * 2009-07-24 2015-01-19 삼성전자주식회사 영상의 부호화 방법 및 장치, 영상 복호화 방법 및 장치
JP5556996B2 (ja) * 2010-01-06 2014-07-23 ソニー株式会社 画像処理装置および方法
KR101813189B1 (ko) * 2010-04-16 2018-01-31 에스케이 텔레콤주식회사 영상 부호화/복호화 장치 및 방법
EP2924995B1 (en) * 2010-07-09 2018-09-12 Samsung Electronics Co., Ltd Method for decoding video by using block merging

Also Published As

Publication number Publication date
CN105306935B (zh) 2018-08-07
US10015512B2 (en) 2018-07-03
US20150296216A1 (en) 2015-10-15
CN105306935A (zh) 2016-02-03
KR20180000336A (ko) 2018-01-02
KR101813189B1 (ko) 2018-01-31
US20150296217A1 (en) 2015-10-15
US9967588B2 (en) 2018-05-08
US9967587B2 (en) 2018-05-08
CN104967853B (zh) 2018-06-12
CN102986213A (zh) 2013-03-20
CN102986213B (zh) 2016-03-23
KR20110115985A (ko) 2011-10-24
CN104967853A (zh) 2015-10-07
US20130034152A1 (en) 2013-02-07

Similar Documents

Publication Publication Date Title
KR101874840B1 (ko) 영상 부호화/복호화 장치 및 방법
KR101984764B1 (ko) 영상 부호화/복호화 장치 및 방법
KR101868290B1 (ko) 영상 부호화/복호화 장치 및 방법
KR101952184B1 (ko) 영상 부호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
KR101635830B1 (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR101698509B1 (ko) 분할 레이어를 이용한 영상 부호화/복호화 방법 및 장치
KR101791242B1 (ko) 영상 부호화/복호화 장치 및 방법
KR101479129B1 (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR101976465B1 (ko) 비디오 신호의 처리 방법 및 장치
KR20160003593A (ko) 영상 부호화/복호화 방법 및 장치
KR101673028B1 (ko) 영상 부호화/복호화 장치 및 방법
KR20110043407A (ko) 영상 부호화/복호화 장치 및 방법
KR101449692B1 (ko) 영상 부호화 장치 및 그 방법, 및 영상 복호화 장치 및 그 방법
KR20130054981A (ko) 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right