KR20160067580A - 영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서 - Google Patents

영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서 Download PDF

Info

Publication number
KR20160067580A
KR20160067580A KR1020140173140A KR20140173140A KR20160067580A KR 20160067580 A KR20160067580 A KR 20160067580A KR 1020140173140 A KR1020140173140 A KR 1020140173140A KR 20140173140 A KR20140173140 A KR 20140173140A KR 20160067580 A KR20160067580 A KR 20160067580A
Authority
KR
South Korea
Prior art keywords
frame image
image
block
correlation information
frame
Prior art date
Application number
KR1020140173140A
Other languages
English (en)
Inventor
라병두
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020140173140A priority Critical patent/KR20160067580A/ko
Priority to US14/959,550 priority patent/US20160165235A1/en
Publication of KR20160067580A publication Critical patent/KR20160067580A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using 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/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/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

Landscapes

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

Abstract

본 발명의 실시예에 따른 인코더는, 제1 프레임 영상과 제2 프레임 영상을 비교하여 매크로 블록 단위로 블록 상관 정보를 생성하는 상관 측정 블록, 및 상기 제1 프레임 영상을 부호화 및 복호화한 참조 영상과 상기 제2 프레임 영상을 기초로 상기 제2 프레임 영상의 입력 매크로 블록에 대한 인터 예측(inter prediction)을 수행할지 여부를 상기 블록 상관 정보에 따라 결정하는 인코딩 모듈을 포함한다.

Description

영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서{A METHOD OF ENCODING IMAGE DATA, AN ENCODER USING THE METHOD, AND AN APPLICATION PROCESSOR INCLUDING THE ENCODER}
본 발명의 개념에 따른 실시예는 영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서에 관한 것으로, 보다 상세하게는 소모 전력과 연산량을 줄일 수 있는 영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서에 관한 것이다.
비디오 부호화는 국제표준기구인 ISO/IEC 산하의 MPEG (Moving Picture Expert Group)과 ITU-T 산하의 VCEG(Video Coding Expert Group)에서 국제 표준을 주도해 오고 있다. MPEG과 VCEG은 공동으로 JVT (Joint Video Team)를 결성하여 비디오 부호화 국제표준인 H.264/AVC (Advanced Video Coding)을 완료하였다. H.264/AVC는 기존의 다른 비디오 코덱(예를 들어, MPEG-2, MPEG-4, H.261, H.263)과 달리 가변 블록 사이즈 움직임 추정(Variable Blcok Size Motion Estimation), 1/4 픽셀 움직임 벡터 해상도(1/4 pixel Motion Vector Resolution), 다중 참조 영상 움직임 추정(Multiple Reference Picture Motion Estimation) 등이 도입됨으로써 기존 코덱 대비 탁월한 압축 성능을 보여준다.
예컨대, H.264/AVC는 4X4 블록에 대한 움직임 추정(motion estimation)을 수행함으로써 16X16 사이즈의 매크로 블록(macro block)에서 최대 16개의 4X4 블록에 대한 움직임 추정을 수행할 수 있고, 움직임 벡터(motion vector)의 해상도를 1/4 픽셀(pixel)까지 높임으로써 기존 코덱들에 비하여 보다 정교한 움직임 추정 과정을 수행할 수 있다.
그러나 H.264/AVC는 다수의 참조 영상을 이용하여 화면 간의 잔차 신호(residual)를 구하기 때문에 움직임 추정 과정의 복잡도는 기존의 코덱들에 비하여 증가하였으며, 움직임 벡터의 해상도가 증가 또한 움직임 추정 과정의 복잡도를 증가시키는 원인이 된다. 이러한 H.264/AVC화 과정에서의 복잡성은 H.264/AVC의 실시간 비디오 부호화기와 같은 어플리케이션(application)에서 적용이 힘들게 됨으로써 압축 성능은 유지하면서 효율적으로 복잡도를 제거하는 기술이 필요하다. 이러한 문제점은 상술한 H.264/AVC에 국한되는 것만은 아니며 앞으로 표준으로 채택될 압축 기술에도 공통적으로 적용될 것이다.
본 발명이 이루고자 하는 기술적 과제는, 영상 데이터의 인코딩에 소요되는 전력 소모와 연산량을 줄일 수 있는 영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서를 제공함에 있다.
본 발명의 실시예에 따른 인코더는, 제1 프레임 영상과 제2 프레임 영상을 비교하여 매크로 블록 단위로 블록 상관 정보를 생성하는 상관 측정 블록, 및 상기 제1 프레임 영상을 부호화 및 복호화한 참조 영상과 상기 제2 프레임 영상을 기초로 상기 제2 프레임 영상의 입력 매크로 블록에 대한 인터 예측(inter prediction)을 수행할지 여부를 상기 블록 상관 정보에 따라 결정하는 인코딩 모듈을 포함한다.
실시예에 따라, 상기 상관 측정 블록은, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는 경우 하이 레벨의 블록 상관 정보를 생성하고, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하지 않는 경우 로우 레벨의 블록 상관 정보를 생성한다.
실시예에 따라, 상기 블록 상관 정보가 하이 레벨인 경우, 상기 인코딩 모듈은 상기 인터 예측을 수행하지 않고, 스킵 모드(skip mode)에 따른 참조 블록과 상기 입력 매크로 블록을 연산하여 부호화한다.
실시예에 따라, 상기 블록 상관 정보가 로우 레벨인 경우, 상기 인코딩 모듈은 상기 인터 예측 및 인트라 예측(intra prediction)을 수행하여, 예측 결과에 의해 정해진 모드에 따른 참조 블록과 상기 입력 매크로 블록을 연산하여 부호화한다.
실시예에 따라, 상기 상관 측정 블록은, 상기 제2 프레임 영상의 영상 타입을 나타내는 영상 타입 할당 신호에 기초하여 상기 블록 상관 정보의 비트 수를 결정한다.
실시예에 따라, 상기 상관 측정 블록은, 상기 영상 타입 할당 신호가 상기 제2 프레임 영상이 P 영상임을 나타낼 경우, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는지 여부에 따른 제1 비트를 포함하는 상기 블록 상관 정보를 생성하고, 상기 인코딩 모듈은 상기 블록 상관 정보에 따라 상기 인터 예측을 수행할지 여부를 결정한다.
실시예에 따라, 상기 상관 측정 블록은, 상기 영상 타입 할당 신호가 상기 제2 프레임 영상이 B 영상임을 나타낼 경우, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는지 여부에 따른 제1 비트 및 상기 제2 프레임 영상과 제3 프레임 영상이 일치하는지 여부에 따른 제2 비트를 포함하는 상기 블록 상관 정보를 생성하고, 상기 인코딩 모듈은 상기 블록 상관 정보에 따라 상기 인터 예측을 수행할지 여부를 결정한다.
본 발명의 실시예에 따른 애플리케이션 프로세서는, 복수의 프레임 영상들을 포함하는 영상 데이터를 저장하는 메모리 장치, 및 상기 영상 데이터를 프레임 단위로 인코딩(incoding)하는 인코더를 포함하는 코덱을 포함하며, 상기 인코더는, 상기 영상 데이터에 포함된 제1 프레임 영상과 제2 프레임 영상을 비교하여 매크로 블록 단위로 블록 상관 정보를 생성하는 상관 측정 블록, 및 상기 제1 프레임 영상을 부호화 및 복호화한 참조 영상과 상기 제2 프레임 영상을 기초로 상기 제2 프레임 영상의 입력 매크로 블록에 대한 인터 예측(inter prediction)을 수행할지 여부를 상기 블록 상관 정보에 따라 결정하는 인코딩 모듈을 포함한다.
실시예에 따라, 상기 상관 측정 블록은, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는 경우 하이 레벨의 블록 상관 정보를 생성하고, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하지 않는 경우 로우 레벨의 블록 상관 정보를 생성한다.
실시예에 따라, 상기 블록 상관 정보가 하이 레벨인 경우, 상기 인코딩 모듈은 상기 인터 예측을 수행하지 않고, 스킵 모드(skip mode)에 따른 참조 블록과 상기 입력 매크로 블록을 연산하여 부호화한다.
실시예에 따라, 상기 블록 상관 정보가 로우 레벨인 경우, 상기 인코딩 모듈은 상기 인터 예측 및 인트라 예측(intra prediction)을 수행하여, 예측 결과에 의해 정해진 모드에 따른 참조 블록과 상기 입력 매크로 블록을 연산하여 부호화한다.
실시예에 따라, 상기 상관 측정 블록은,상기 제2 프레임 영상의 영상 타입을 나타내는 영상 타입 할당 신호에 기초하여 상기 블록 상관 정보의 비트 수를 결정한다.
실시예에 따라, 상기 상관 측정 블록은, 상기 영상 타입 할당 신호가 상기 제2 프레임 영상이 P 영상임을 나타낼 경우, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는지 여부에 따른 제1 비트를 포함하는 상기 블록 상관 정보를 생성하고, 상기 인코딩 모듈은 상기 블록 상관 정보에 따라 상기 인터 예측을 수행할지 여부를 결정한다.
실시예에 따라, 상기 상관 측정 블록은, 상기 영상 타입 할당 신호가 상기 제2 프레임 영상이 B 영상임을 나타낼 경우, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는지 여부에 따른 제1 비트 및 상기 제2 프레임 영상과 제3 프레임 영상이 일치하는지 여부에 따른 제2 비트를 포함하는 상기 블록 상관 정보를 생성하고, 상기 인코딩 모듈은 상기 블록 상관 정보에 따라 상기 인터 예측을 수행할지 여부를 결정하는 애플리케이션 프로세서.
본 발명의 실시예에 따른 영상 데이터의 인코딩 방법은, 상관 측정 블록이 제1 프레임 영상과 제2 프레임 영상을 비교하여 매크로 블록 단위로 블록 상관 정보를 생성하는 단계, 및 인코딩 모듈이 상기 제1 프레임 영상을 부호화 및 복호화한 참조 영상과 상기 제2 프레임 영상을 기초로 상기 제2 프레임 영상의 입력 매크로 블록에 대한 인터 예측(inter prediction)을 수행할지 여부를 상기 블록 상관 정보에 따라 결정하는 단계를 포함한다.
실시예에 따라, 상기 블록 상관 정보는, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는 경우 하이 레벨을 가지고, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하지 않는 경우 로우 레벨을 가진다.
실시예에 따라, 상기 인코딩 방법은, 상기 블록 상관 정보가 하이 레벨인 경우, 상기 인코딩 모듈은 상기 인터 예측을 수행하지 않고, 스킵 모드(skip mode)에 따른 참조 블록과 상기 입력 매크로 블록을 연산하여 부호화하는 단계를 더 포함한다.
실시예에 따라, 상기 인코딩 방법은, 상기 블록 상관 정보가 로우 레벨인 경우, 상기 인코딩 모듈은 상기 인터 예측 및 인트라 예측(intra prediction)을 수행하여, 예측 결과에 의해 정해진 모드에 따른 참조 블록과 상기 입력 매크로 블록을 연산하여 부호화하는 단계를 더 포함한다.
실시예에 따라, 상기 블록 상관 정보는, 상기 제2 프레임 영상의 영상 타입을 나타내는 영상 타입 할당 신호가 상기 제2 프레임 영상이 P 영상임을 나타낼 경우, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는지 여부에 따른 제1 비트를 포함한다.
실시예에 따라, 상기 블록 상관 정보는, 상기 제2 프레임 영상의 영상 타입을 나타내는 영상 타입 할당 신호가 상기 제2 프레임 영상이 B 영상임을 나타낼 경우, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는지 여부에 따른 제1 비트 및 상기 제2 프레임 영상과 제3 프레임 영상이 일치하는지 여부에 따른 제2 비트를 포함한다.
본 발명의 실시예에 따른 영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서에 의하면, 원본 영상을 비교한 결과를 이용하여 인터 예측을 선택적으로 수행하지 않음으로써 불필요한 연산 및 전력 소모를 줄일 수 있다.
또한, 본 발명의 실시예에 따른 영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서에 의하면, 원본 영상을 비교한 결과를 이용하여 부호화 모드를 결정함으로써 보다 정확한 인코딩 결과를 얻을 수 있다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 2는 도 1에 도시된 인코더를 보다 상세히 나타낸 블록도이다.
도 3은 도 2에 도시된 인코딩 모듈을 보다 상세히 나타낸 블록도이다.
도 4는 도 2에 도시된 인코더에 입력되는 영상 데이터의 일 실시예를 나타낸 도면이다.
도 5 내지 도 7 각각은 도 4에 도시된 영상 데이터를 처리하는 인코더의 동작을 설명하기 위한 도면이다.
도 8은 도 2에 도시된 인코더의 인코딩 방법을 설명하기 위한 흐름도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 다수개의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 1을 참조하면, 데이터 처리 시스템(10)은 모바일 단말기(mobile terminal), 예컨대 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 모바일 인터넷 장치(mobile internet device(MID)), 비디오 캠코더(video camcorder), 또는 e-북(e-book) 등으로 구현될 수 있다.
데이터 처리 시스템(10)은 애플리케이션 프로세서(application processor, 100), 카메라(camera, 155), 디스플레이 장치(display device, 165), 및 메모리(memory, 175)를 포함할 수 있다.
애플리케이션 프로세서(100)는 CPU(central processing unit, 110), ROM(read only memory, 120), RAM(random access memory, 130), 이미지 프로세서(image processor, 135), 코덱(codec, 140), 카메라 인터페이스(camera interface, 150), 디스플레이 인터페이스(display interface, 160), 및 메모리 인터페이스(memory interface, 170)를 포함할 수 있다. 애플리케이션 프로세서(100)는 시스템 온 칩(system on chip(SoC))으로 구현될 수 있다.
애플리케이션 프로세서(100)의 각 구성(110, 120, 130, 135, 140, 150, 160, 170)은 버스(bus, 105)를 통하여 서로 데이터를 주고 받을 수 있다.
CPU(110)는 애플리케이션 프로세서(100)의 전반적인 동작을 제어할 수 있다. 예컨대, CPU(110)는 ROM(120) 및/또는 RAM(130)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행시킬 수 있다.
실시 예에 따라, CPU(110)는 2개 이상의 독립적인 프로세서들(또는 코어들)을 갖는 하나의 컴퓨팅 컴포넌트(computing component), 즉 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다.
ROM(120)은 지속적으로 사용되는 프로그램들 및/또는 데이터를 저장할 수 있다. 실시 예에 따라, ROM(120)은 EPROM(erasable programmable ROM) 또는 EEPROM(electrically erasable programmable ROM) 등으로 구현될 수 있다.
RAM(130)은 프로그램들, 데이터, 및/또는 명령들(instructions)을 일시적으로 저장할 수 있다. 실시 예에 따라, RAM(130)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
RAM(130)은 인터페이스들(150, 160, 170)을 통해 입출력되거나, 코덱(140) 또는 CPU(110)가 생성하는 데이터를 일시적으로 저장할 수 있다.
이미지 프로세서(135)는 RAM(130), 카메라 인터페이스(150), 또는 메모리 인터페이스(170)로부터 입력받은 데이터에 대해 이미지 처리를 수행하고, 이미지 처리된 데이터를 RAM(130), 디스플레이 인터페이스(160), 또는 메모리 인터페이스(170)로 출력할 수 있다.
코덱(140)은 메모리 장치들(120, 130)에 저장된 데이터, 카메라(155)로부터 입력되는 데이터 또는 디스플레이 장치(165)로 출력되는 데이터를 인코딩(encoding) 또는 디코딩(decoding)할 수 있다.
따라서, 코덱(140)은 인코더(encoder, 200)와 디코더(decoder, 400)를 포함할 수 있다.
도 1에서는 설명의 편의를 위하여, 코덱(140)이 CPU(110), 카메라 인터페이스(150), 및/또는 디스플레이 인터페이스(160)의 외부에 구현된 형태를 도시하였다. 하지만, 코덱(140)은 CPU(110), 카메라 인터페이스(150), 및/또는 디스플레이 인터페이스(160)에 포함될 수도 있으며 코덱(140)의 배치에 의하여 본 발명의 기술적 범위가 제한 해석되어서는 안 된다.
실시예에 따라, 코덱(140)은 소프트웨어(software), 하드웨어(hardware), 또는 소프트웨어와 하드웨어의 결합 형태로 구성될 수 있다.
카메라 인터페이스(150)는 애플리케이션 프로세서(100)의 외부에 있는 카메라(155)로부터 입력되는 데이터(예컨대, 영상 데이터)를 인터페이싱할 수 있다.
카메라(155)는 복수의 광 감지 소자들을 이용해 촬영한 이미지에 대한 데이터를 생성할 수 있다.
디스플레이 인터페이스(160)는 애플리케이션 프로세서(100)의 외부에 있는 디스플레이 장치(165)로 출력되는 데이터(예컨대, 영상 데이터)를 인터페이싱할 수 있다.
디스플레이 장치(165)는 이미지 또는 영상에 대한 데이터를 LCD(Liquid-crystal display), AMOLED(active matrix organic light emitting diodes) 등의 디스플레이를 통해 출력할 수 있다.
메모리 인터페이스(170)는 애플리케이션 프로세서(100)의 외부에 있는 메모리(175)로부터 입력되는 데이터 또는 메모리(175)로 출력되는 데이터를 인터페이싱할 수 있다.
실시예에 따라, 메모리(175)는 불휘발성 메모리(non-volatile memory), 예컨대 플래시 메모리(flash memory) 또는 저항성 메모리(resistive memory) 등으로 구현될 수 있다.
도 2는 도 1에 도시된 인코더(200)를 보다 상세히 나타낸 블록도이다.
도 1 및 도 2를 참조하면, 인코더(200)는 전처리부(pre-processing unit, 210), 상관 측정 블록(correlation measure block, 250), 및 인코딩 모듈(encoding module, 300)을 포함할 수 있다.
전처리부(210)는 영상 데이터(image data, ID)를 입력받아 임시 저장하고, 영상 데이터(ID)를 기초로 상관 측정 블록(250), 및 인코딩 모듈(300)을 제어하기 위한 신호들을 생성할 수 있다. 영상 데이터(ID)는 프레임 단위로 구별되는 연속적인 영상을 의미할 수 있다.
전처리부(210)는 이미지 타입 결정 블록(image type determination block, 220), 및 프레임 버퍼(frame buffer, 230)를 포함할 수 있다.
이미지 타입 결정 블록(220)은 영상 데이터(ID)를 입력 받아, 영상 데이터(ID)의 각 프레임 영상의 이미지 타입을 결정할 수 있다.
상기 이미지 타입은 인코딩 모듈(300)에 의해 부호화되는 방식의 차이를 갖는 이미지의 종류를 의미하며, I 영상, P 영상, 및 B 영상으로 구분될 수 있다.
상기 I 영상은 다른 영상을 참조하지 않고 현재의 영상 내에서 인트라 예측(intra prediction) 만이 수행되어 부호화되는 타입이다. 상기 P 영상은 이전의 영상을 참조하는 인터 예측(inter prediction) 및 상기 인트라 예측이 수행되어 부호화되는 타입이다. 상기 P 영상은 이전의 영상과 이후의 영상을 참조하는 인터 예측 및 상기 인트라 예측이 수행되어 부호화되는 타입이다.
이미지 타입 결정 블록(220)이 상기 각 프레임 영상의 이미지 타입을 결정하기 위해, 영상 데이터(ID)를 특정한 영상 그룹(image group)으로 할당한다. 상기 영상 그룹은 I 영상의 할당에 의해 상기 영상 그룹의 사이즈가 결정되며, P 영상 및/또는 B 영상의 배열에 의해서 상기 영상 그룹의 구조가 결정된다. 즉, P 영상과 B 영상의 배열에 의해 부호화되는 데이터의 비트수를 감소시킬 수 있으며, I 영상을 간헐적으로 할당하여 영상 그룹의 사이즈를 제한함으로써 오류 전파(error propagation)를 방지할 수 있다.
예컨대, 상기 특정한 영상 그룹을 할당하는 방식은 IPPP 방식, IBBBP 방식 등일 수 있다. 상기 IPPP 방식은 영상 데이터(ID)의 연속적인 프레임 영상들을 I 영상, P 영상, P 영상, 및 P 영상의 타입으로 결정하는 방식이며, 상기 IBBBP 방식은 영상 데이터(ID)의 연속적인 프레임 영상들을 I 영상, B 영상, B 영상, B 영상 및 P 영상의 타입으로 결정하는 방식이다. 상기 IPPP 방식과 상기 IBBBP 방식에 대한 상세한 설명은 도 4를 통해 후술하기로 한다.
이미지 타입 결정 블록(220)은 현재 프레임 버퍼(230)로부터 출력되는 프레임 영상을 제어할 수 있다. 즉, 상기 영상 그룹을 할당하는 방식에 따라, 영상 데이터(ID)의 프레임 순서와 부호화 순서가 다를 수 있다. 예컨대, 이미지 타입 결정 블록(220)이 상기 IBBBP 방식으로 상기 영상 그룹을 할당할 경우, 영상 데이터(ID)의 순차적인 프레임 영상들이 IBBBP 영상의 프레임 순서로 결정되더라도 인코딩 모듈(300)이 입력받아야 하는 부호화 순서는 IPBBB이어야 한다. 따라서, 이미지 타입 결정 블록(220)은 IBBBP의 순서로 프레임 버퍼(230)에 저장된 영상 데이터(ID)를 IPBBB의 순서로 인코딩 데이터(ED)로서 출력하도록 프레임 버퍼(230)를 제어할 수 있다.
이미지 타입 결정 블록(220)은 인코딩 데이터(ED)의 각 프레임 영상의 타입을 나타내는 영상 타입 할당 신호(PTA)를 생성하여, 상관 측정 블록(250), 및 인코딩 모듈(300)로 전송할 수 있다.
프레임 버퍼(230)는 입력되는 영상 데이터(ID)를 일시적으로 저장하였다가, 이미지 타입 결정 블록(220)의 제어에 따라 정해지는 부호화 순서에 따라 인코딩 데이터(ED)를 출력할 수 있다. 프레임 버퍼(230)의 사이즈는 이미지 타입 결정 블록(220)이 상기 영상 그룹을 할당하는 방식에 따라 결정될 수 있다. 예컨대, IBBBP 방식이 이용될 경우, 프레임 버퍼(230)의 사이즈는 5개의 프레임 영상을 저장할 수 있는 사이즈일 수 있다.
실시예에 따라, 프레임 버퍼(230)는 코덱(140)의 내부가 아닌 코덱(140)의 외부 예컨대, RAM(130)의 일부로 구현될 수도 있다.
상관 측정 블록(250)은 영상 타입 할당 신호(PTA)에 따라 제1 프레임 영상과 제2 프레임 영상을 비교하여 블록 상관 정보(block correlation information, BCI)를 생성할 수 있다. 실시예에 따라, 상관 측정 블록(250)은 추가적으로 상기 제2 프레임 영상을 제3 프레임 영상과 비교하여 블록 상관 정보(BCI)를 생성할 수 있다. 블록 상관 정보(BCI)는 비교되는 프레임 영상들 각각의 동일한 위치의 매크로 블록을 서로 비교하여 일치하는지 여부에 따라 매크로 블록 단위로 생성된다.
상기 제2 프레임 영상은 인코딩 모듈(300)로 입력되는 인코딩 데이터(ED)의 현재 프레임 영상 즉, 인코딩 모듈(330)에 의해 인코딩되고 있는 현재 프레임 영상을 의미할 수 있다. 상기 제1 프레임 영상은 영상 타입 할당 신호(PTA)에 따라 정해지는 상기 제2 프레임 영상의 타입에 의해 결정되는 프레임 영상을 의미할 수 있다.
예컨대, 영상 타입 할당 신호(PTA)가 상기 제2 프레임 영상이 I 영상임을 나타낼 경우, 상관 측정 블록(250)은 제1 프레임 영상과 제2 프레임 영상에 대한 블록 상관 정보(BCI)를 생성하나, 인코딩 모듈(300)은 블록 상관 정보(BCI)를 이용하지 않고 인트라 예측만을 수행한다.
예컨대, 영상 타입 할당 신호(PTA)가 상기 제2 프레임 영상이 P 영상임을 나타낼 경우, 상관 측정 블록(250)은 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는지 여부에 따른 제1 비트를 포함하는 블록 상관 정보(BCI)를 생성할 수 있다. 여기서, 일치하는지 여부는 상기 제1 프레임 영상과 상기 제2 프레임 영상 각각에 포함된 픽셀들을 동일한 위치의 픽셀끼리 비교한 결과에 따라 결정될 수 있으며, 상관 측정 블록(250)은 각 매크로 블록에 포함된 모든 픽셀들이 일치할 때 일치한다고 판단할 수 있다. 또한, 상기 제1 프레임 영상은 영상 데이터(ID)의 프레임 순서상 상기 제2 프레임 영상의 직전 프레임 영상일 수 있다. 블록 상관 정보(BCI)의 상기 제1 비트가 0일 때 상기 제1 프레임 영상과 상기 제2 프레임 영상 각각의 해당 매크로 블록이 일치하지 않고, 상기 제1 비트가 1일 때 상기 제1 프레임 영상과 상기 제2 프레임 영상 각각의 해당 매크로 블록이 일치할 수 있다.
예컨대, 영상 타입 할당 신호(PTA)가 상기 제2 프레임 영상이 B 영상임을 나타낼 경우, 상관 측정 블록(250)은 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는지 여부에 따른 제1 비트 및 상기 제2 프레임 영상과 제3 프레임 영상이 일치하는지 여부에 따른 제2 비트를 포함하는 블록 상관 정보(BCI)를 생성할 수 있다. 여기서, 상기 제3 프레임 영상은 상기 제2 프레임 영상과 동일한 영상 그룹에 속하는 P 영상에 해당하는 프레임 영상을 의미한다. 또한, 상기 제1 프레임 영상은 상기 제2 프레임 영상과 동일한 영상 그룹에 속하는 I 영상에 해당하는 프레임 영상을 의미한다. 블록 상관 정보(BCI)의 상기 제1 비트가 0일 때 상기 제1 프레임 영상과 상기 제2 프레임 영상 각각의 해당 매크로 블록이 일치하지 않고, 상기 제1 비트가 1일 때 상기 제1 프레임 영상과 상기 제2 프레임 영상 각각의 해당 매크로 블록이 일치할 수 있다. 블록 상관 정보(BCI)의 상기 제2 비트가 0일 때 상기 제2 프레임 영상과 상기 제3 프레임 영상 각각의 해당 매크로 블록이 일치하지 않고, 상기 제2 비트가 1일 때 상기 제2 프레임 영상과 상기 제3 프레임 영상 각각의 해당 매크로 블록이 일치할 수 있다.
상관 측정 블록(250)은 매크로 블록(macro block) 단위로 블록 상관 정보(BCI)를 생성할 수 있다. 상기 매크로 블록은 M(M은 1이상의 정수)개의 픽셀 및 N(N은 1이상의 정수)개의 픽셀의 매트릭스 형태로 배열된 블록이며, 인코딩 모듈(300)의 부호화 단위이다. 예컨대, 상기 매크로 블록은 16x16 픽셀의 사이즈를 가질 수 있다. 상기 제2 프레임 영상이 100개의 매크로 블록들을 포함할 경우, 상기 제2 프레임 영상에 대응하는 블록 상관 정보(BCI)는 100개의 비트들을 포함할 수 있다.
상관 측정 블록(250)은 블록 상관 정보(BCI)를 생성하기 위해 필요한 프레임 영상들을 영상 타입 할당 신호(PTA)에 따라 결정하고, 상기 프레임 영상들에 해당하는 비교 데이터(CD)를 프레임 버퍼(230)로부터 로드(load)할 수 있다.
즉, 상관 측정 블록(250)은 비교 데이터(CD)에 포함된 원본 프레임 영상들끼리 비교하여 블록 상관 정보(BCI)를 생성하므로, 블록 상관 정보(BCI)는 비교되는 프레임들 사이의 일치 여부를 매크로 블록 별로 정확히 반영할 수 있다.
인코딩 모듈(300)은 영상 타입 할당 신호(PTA)를 참조하여 인코딩 데이터(ED)의 영상 타입에 따라 인트라 예측 및/또는 인터 예측을 수행하여 부호화한 비트 스트림(BS)을 생성할 수 있다. 인터 예측을 수행할지 여부는 블록 상관 정보(BCI)에 따라 결정될 수 있다.
인코딩 모듈(300)의 상세한 구성과 동작은 도 3을 참조하여 후술하기로 한다.
도 3은 도 2에 도시된 인코딩 모듈(300)을 보다 상세히 나타낸 블록도이다.
도 1 내지 도 3을 참조하면, 인코딩 모듈(300)은 매크로 블록 단위로 제공되는 인코딩 데이터(ED)를 수신한다. 인코딩 모듈(300)은 인트라 예측 및 인터 예측을 수행하여 매크로블록 단위로 부호화 모드를 결정하고, 상기 부호화 모드에 따라인코딩 데이터(ED)를 매크로블록 단위로 부호화한다.
인코딩 모듈(300)은 예측 블록(prediction block)(310), 모드 결정부(mode decision block;MD, 320), 감산기(subtractor)(330), 변환부(transform block;T, 331), 양자화부(quantization block;Q, 332), 엔트로피 코더(entropy coder; EC, 333), 인코딩된 영상 버퍼(encoded picture buffer;EPB, 334), 역양자화부(inverse quantization block;Q-1, 335), 역변환부(inverse transform block; T-1, 336), 가산기(adder, 340), 디블록킹 필터(deblocking filter;DF, 350) 및 참조 영상 메모리(reference image memory;MEM, 360)를 포함할 수 있다.
예측부(310)는 매크로블록 단위로 입력되는 인코딩 데이터(ED)에 대하여 인터 예측을 수행하는 인터 예측부(inter prediction unit;IEPU, 312) 및 인트라 예측을 수행하는 인트라 예측부(intra prediction unit;IAPU, 314)를 포함한다. 이후 현재 부호화되는 프레임 영상은 제2 프레임 영상으로 가정하고 설명하기로 한다.
예측부(310)는 영상 타입 할당 신호(PTA)에 의해 정해지는 I 영상, P 영상, B 영상 등의 영상 타입에 따라서 인트라 예측 및/또는 인터 예측을 수행한다.
먼저, 블록 상관 정보(BCI)가 상기 제2 프레임 영상이 제1 프레임 영상 및/또는 제3 프레임 영상과 일치하지 않음을 나타내는 경우에 대해 설명하기로 한다.
영상 타입 할당 신호(PTA)가 상기 제2 프레임 영상이 P 영상임을 나타내고 블록 상관 정보(BCI)가 로우 레벨을 나타내는 경우, 인터 예측부(312)는 직전에 부호화 및 복호화된 영상(동일 영상 그룹에 속한 I 영상 또는 P 영상) 즉, 참조 영상을 참조하여 인터 예측을 수행하고 인트라 예측부(314)는 상기 제2 프레임 영상을 기초로 인트라 예측을 수행한다.
영상 타입 할당 신호(PTA)가 상기 제2 프레임 영상이 B 영상임을 나타내고 블록 상관 정보(BCI)의 적어도 하나의 비트가 로우 레벨을 나타내는 경우, 인터 예측부(312)는 이전에 부호화 및 복호화된 영상(동일 영상 그룹에 속한 I 영상 및 P 영상) 즉, 참조 영상들을 참조하여 인터 예측을 수행하고 인트라 예측부(314)는 상기 참조 영상을 기초로 인트라 예측을 수행한다.
H.264 표준에 따르면, 매크로블록의 가용 부호화 모드는 인터 모드와 인트라 모드로 대별된다. 인터 모드는 스킵 모드(SKIP mode), 16*16, 8*16, 16*8, 8*8의 5가지 움직임 보상 모드를 포함하고, 8*8 움직임 보상 모드는 각각의 8*8 서브블록(sub-block)에 대하여 8*4, 4*8, 4*4의 3가지 서브 모드(Sub-mode)를 포함한다. 인트라 모드는 4개의 16*16 인트라 예측 모드 및 9개의 4*4 인트라 예측 모드를 포함한다.
하나의 매크로블록을 상기 가용 부호화 모드 중 하나로 부호화하기 위해 예측부(310)는 다음과 같은 율-왜곡 최적화(rate-distortion optimization)를 수행할 수 있다.
인트라 예측부(314)는 전술한 인트라 모드들 중에서 다음의 수학식 1에 표시된 인트라 율-왜곡 코스트(Jmd)를 최소로 하는 인트라 모드를 구한다.
Figure pat00001
여기서, Kmd는 모드 결정을 위한 라그랑지안(Lagrangian) 계수를 나타내고, Rmd는 후보 인트라 모드로 부호화하는데 요구되는 비트수를 나타낸다. DISTmd는 참조 영상 메모리(360)로부터 제공되는 복원된 매크로블록과 상기 제2 프레임 영상의 입력 매크로블록의 픽셀 간의 차이에 대한 왜곡을 나타낸다. 왜곡 함수로는 SAD(Sum of Absolute Difference), SATD(Sum of Absolute Transformed Difference) 또는 SSD(Sum of Squared Difference) 등이 사용될 수 있다. 이와 같이 인트라 예측부(314)는 각각의 인트라 모드에 대하여 인트라 율-왜곡 코스트(Jmd)들을 계산하고 그 중에서 최소가 되는 인트라 율-왜곡 코스트(Jmd)와 상기 최소가 되는 인트라 율-왜곡 코스트(Jmd)에 대응하는 매크로 블록에 대한 정보를 최소 인트라 율-왜곡 코스트(MCST2)로 결정한다.
인터 예측부(312)는 상기 스킵 모드를 제외한 인터 모드의 각각에 대해 최적의 움직임 벡터를 구한다. 최적 움직임 벡터는 후보 움직임 벡터들 중 다음의 수학식 2에 표시된 인터 율-왜곡 코스트(Jmt)를 최소로 하는 움직임 벡터를 나타낸다.
Figure pat00002
여기서, Kmt는 움직임 추정을 위한 라그랑지안(Lagrangian) 계수를 나타내고, Rmt는 후보 모드, 후보 참조 영상 및 후보 움직임 벡터를 이용하여 데이터를 부호화하는데 필요한 비트수를 나타낸다. DISTmt는 후보 움직임 벡터로 생성되는 움직임 보상된 매크로블록과 입력 매크로블록의 화소 간의 차이에 대한 왜곡을 나타낸다. 왜곡 함수로는 SAD(Sum of Absolute Difference), SATD(Sum of Absolute Transformed Difference) 또는 SSD(Sum of Squared Difference) 등이 사용될 수 있다.
후보 움직임 벡터의 종류는 일반적으로 탐색 윈도우(search window)의 크기에 따라 정해진다. 인코딩 모듈(300)이 복수의 참조 영상들을 사용하는 경우에는 각 참조 영상별로 최적 움직임 추정을 위한 위 연산을 각기 반복 수행한다. 이와 같이 인터 예측부(312)는 각각의 참조 영상, 각각의 후보 움직임 벡터 및 각각의 인터 모드에 대하여 인터 율-왜곡 코스트(Jmt) 들을 계산하고 그 중에서 최소가 되는 인터 율-왜곡 코스트(Jmt) 및 상기 최소가 되는 인터 율-왜곡 코스트(Jmt)에 대응하는 매크로 블록에 대한 정보를 최소 인터 율-왜곡 코스트(MCST1)로서 결정한다.
상기 스킵 모드에서 인터 예측부(312)는 최적의 움직임 벡터를 구하지 않고, 상기 입력 매크로 블록과 동일한 위치에 해당하는 참조 영상의 매크로 블록의 인터 율-왜곡 코스트(Jmt) 및 상기 참조 영상의 매크로 블록에 대한 정보를 최소 인터 율-왜곡 코스트(MCST1)로서 결정한다.
이제, 블록 상관 정보(BCI)가 상기 제2 프레임 영상이 제1 프레임 영상 및/또는 제3 프레임 영상과 일치함을 나타내는 경우에 대해 설명하기로 한다.
영상 타입 할당 신호(PTA)가 상기 제2 프레임 영상이 P 영상임을 나타내고 블록 상관 정보(BCI)가 상기 제2 프레임 영상의 부호화 대상이 되는 매크로 블록이 상기 제1 프레임 영상의 상기 매크로 블록과 동일한 위치의 매크로 블록과 일치함(제1 비트가 하이 레벨)을 나타내는 경우, 인터 예측부(312)는 스킵 모드에 따라 즉, 인터 예측(또는 모션 추정(motion estimation)을 수행하지 않고 최소 인터 율-왜곡 코스트(MCST1)를 결정하고, 인트라 예측부(314)는 참조 영상 메모리(360)로부터 제공되는 참조 영상을 기초로 인트라 예측을 수행한다. 이 경우, 모드 결정부(320)는 최소 인터 율-왜곡 코스트(MCST1)에 대응하는 참조 블록을 감산기(330), 및 가산기(340)에 제공할 수 있다.
영상 타입 할당 신호(PTA)가 상기 제2 프레임 영상이 B 영상임을 나타내고 블록 상관 정보(BCI)가 상기 제2 프레임 영상의 부호화 대상이 되는 매크로 블록이 상기 제1 프레임 영상 및 상기 제3 프레임 영상의 상기 매크로 블록과 동일한 위치의 매크로 블록과 모두 일치함(제1 비트와 제2 비트가 모두 하이 레벨)을 나타내는 경우, 인터 예측부(312)는 스킵 모드(skip)에 따라 즉, 인터 예측(또는 모션 추정(motion estimation)을 수행하지 않고 최소 인터 율-왜곡 코스트(MCST1)를 결정하고, 인트라 예측부(314)는 참조 영상 메모리(360)로부터 제공되는 참조 영상들을 기초로 인트라 예측을 수행한다. 이때, 참조 영상이 2개 존재하므로, 상기 제2 프레임 영상과 일치하는 상기 제1 프레임 영상 또는 상기 제3 프레임 영상에 해당하는 참조 영상의 매크로 블록의 인터 율-왜곡 코스트(Jmt) 및 상기 참조 영상의 매크로 블록에 대한 정보를 최소 인터 율-왜곡 코스트(MCST1)로서 결정한다.
모드 결정부(320)는 최소 인트라 율-왜곡 코스트(MCST2)와 최소 인터 율-왜곡 코스트(MCST1)를 비교하여 그 중에서 작은 값에 상응하는 부호화 모드를 결정한다.
실시예에 따라, 모드 결정부(320)는 블록 상관 정보(BCI)에 의해 인터 예측이 스킵되어야 할 경우, 참조 영상의 매크로 블록의 인터 율-왜곡 코스트(Jmt)를 구하여 최소 인트라 율-왜곡 코스트(MCST2)에 반영할지 여부를 결정하여 인터 예측부(312)를 제어할 수 있다.
모드 결정부(320)는 결정된 부호화 모드에 상응하는 참조 블록(reference block), 움직임 벡터 등의 정보를 감산기(330) 및 가산기(340)에 제공할 수 있다. 상기 참조 블록은 상기 작은 값에 해당하는 매크로 블록에 대한 정보를 의미한다.
감산부(330)는 모드 결정부(320)로부터 제공되는 참조 블록을 입력 매크로 블록에서 차분함으로써, 잔차 블록(residual block)을 생성한다.
변환부(331)는 감산부(330)에 의하여 생성된 잔차 블록에 대하여 공간적 변환(spatial transform)을 수행한다. 이러한 공간적 변환 방법으로는 이산 여현 변환(DCT: Discrete Cosine Transform), 웨이브렛 변환(wavelet transform) 등이 사용될 수 있다. 공간적 변환 결과 변환 계수가 구해지는데, 공간적 변환 방법으로 DCT를 사용하는 경우 DCT 계수가, 웨이브렛 변환을 사용하는 경우 웨이브렛 계수가 구해진다.
양자화부(332)는 변환부(331)에서 구한 변환 계수를 양자화한다. 양자화(quantization)란 임의의 값으로 표현되는 상기 변환 계수를 일정 구간으로 나누어 불연속적인 값(discrete value)으로 나타내는 작업을 의미한다. 이러한 양자화 방법으로는 스칼라 양자화, 벡터 양자화 등의 방법이 있다. 간단한 스칼라 양자화 방법은 변환 계수를 양자화 테이블의 해당 값으로 나눈 후 정수 자리로 반올림하는 과정으로 수행된다.
엔트로피 코더(333)는 양자화부(332)에서 양자화된 데이터와 인트라 예측 모드, 참조 프레임 번호, 움직임 벡터 등의 정보를 무손실 부호화하고 비트 스트림(BS)을 생성한다. 이러한 무손실 부호화 방법으로는, CABAC(Context-adaptive binary arithmetic coding)과 같은 산술 부호화(arithmetic coding), CAVLC(Context-adaptive variable-length coding)과 같은 가변 길이 부호화(variable length coding) 등이 사용될 수 있다.
비트 스트림(BS)은 인코딩된 영상 버퍼(334)에 버퍼링(buffering)된 후 외부로 출력될 수 있다.
역양자화부(335), 역변환부(336), 및 가산기(340)는 손실 부호화된 데이터를 역으로 복호화하여 재구성 영상(reconstructed picture)을 복원하기 위하여 사용된다. 역양자화부(335)는 양자화부(331)에서 양자화된 데이터를 역양자화한다. 이러한 역양자화 과정은 양자화 과정의 역에 해당되는 과정이다. 역변환부(336)는 상기 역양자화 결과를 역 공간적 변화하여 이를 가산기(340)에 제공한다.
가산기(340)는 역변환부(336)로부터 제공된 신호와 모드 결정부(320)에서 제공된 참조 블록을 합산하여 입력 매크로블록을 복원한다. 가산기(340)에 의하여 복원된 매크로블록은 디블록킹 필터(350)에 제공되며, 복원된 영상 중 인접 블록의 이미지는 인트라 예측부(314)에 제공된다. 디블록킹 필터(350)는 매크로블록의 각각의 경계선에 대하여 디블록 필터링을 수행한다. 디블록 필터링된 데이터는 참조 영상 메모리(360)에 저장되어 참조 영상으로서 이용된다.
도 4는 도 2에 도시된 인코더(200)에 입력되는 영상 데이터(ID)의 일 실시예를 나타낸 도면이다. 도 5 내지 도 7 각각은 도 4에 도시된 영상 데이터(ID)를 처리하는 인코더(200)의 동작을 설명하기 위한 도면이다.
도 1 내지 도 7을 참조하면, 도 4에서 영상 데이터(ID)의 연속적인 9개의 프레임 영상들이 프레임 순서(ID ORDER)에 따라 나열되어 있다.
각 프레임 영상은 제1 도형(F1)과 제2 도형(F2)을 포함하며, 제1 도형(F1)은 프레임이 진행될수록 일정한 움직임 벡터(MV)를 따라 수직으로 이동하고 제2 도형(F2)은 제자리에 위치한다고 가정한다.
IPPP 방식이 적용될 경우, 인코딩 데이터(ED)의 부호화 순서(ED ORDER(IPPP))는 프레임 순서(ID ORDER)와 일치한다.
IBBBP 방식이 적용될 경우, 인코딩 데이터(ED)의 부호화 순서(ED ORDER(IBBBP))는 프레임 순서(ID ORDER)와 일치하지 않는다. 이는 IBBBP 방식이 적용될 때 첫번째 영상 그룹에서 프레임 순서(ID ORDER)의 첫번째 프레임 영상이 I 영상으로서 인코딩된 후, 프레임 순서(ID ORDER)의 다섯번째 프레임 영상이 P 영상으로서 인코딩되어야 하기 때문이다. 이후 프레임 순서(ID ORDER)의 두번째 내지 네번째 프레임 영상들이 B 영상으로서 순차적으로 인코딩된다. 이후, 프레임 순서(ID ORDER)의 아홉번째 프레임 영상이 P 영상으로서 인코딩된 후 프레임 순서(ID ORDER)의 여섯번째 내지 여덟번째 프레임 영상들이 B 영상으로서 순차적으로 인코딩된다.
도 5 내지 도 7에서, 인코더(200)가 제2 프레임 영상(FI2)을 인코딩하는 경우의 동작을 제2 프레임 영상(FI2)의 영상 타입에 따라 구별하여 설명하기로 한다.
이후, 제1 프레임 영상(FI1), 제2 프레임 영상(FI2), 및 제3 프레임 영상(FI3) 각각은 16*16의 매크로 블록들(MB1, MB2, 및 MB3)을 각각 포함하며, 매크로 블록들(MB1, MB2, 및 MB3) 각각은 16*16의 픽셀들을 포함한다고 가정하나, 본 발명의 범위는 이에 한정되지 않는다.
도 5에서는, IPPP 방식에서 제2 프레임 영상(FI2)이 프레임 순서(ID ORDER)의 두번째 프레임 영상인 경우가 도시되어 있다. 따라서, 제1 프레임 영상(FI1)은 프레임 순서(ID ORDER)의 첫번째 프레임 영상이 된다. 이후, 예시적으로 제2 프레임 영상(FI2)이 프레임 순서(ID ORDER)의 두번째 프레임 영상인 경우에 대해서만 설명하나, 다른 프레임 영상인 경우에도 인코더(200)는 실질적으로 동일한 방식으로 동작할 수 있다.
상관 측정 블록(250)은 제1 프레임 영상(FI1)과 제2 프레임 영상(FI2)에 포함된 동일한 위치의 매크로 블록들(MB1, MB2)을 픽셀 단위로 비교하여 매크로 블록(MB2) 별로 1bit(제2 프레임 영상(FI2)이 P 영상이므로)의 블록 상관 정보(BCI)를 생성한다.
따라서, 제2 프레임 영상(FI2)의 세번째 로우(row) 및 네번째 컬럼(column), 그리고 네번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)들에 해당하는 블록 상관 정보(BCI)는 0의 값을 갖는다. 이때, 인코딩 모듈(300)이 제2 프레임 영상(FI2)의 세번째 로우 및 네번째 컬럼, 그리고 네번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)들을 인코딩할 때, 인터 예측 및 인트라 예측을 모두 수행한다.
그러나, 제2 프레임 영상(FI2)의 세번째 로우(row) 및 네번째 컬럼(column), 그리고 네번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)들을 제외한 매크로 블록(MB2)들에 해당하는 블록 상관 정보(BCI)는 1의 값을 갖는다. 이때, 인코딩 모듈(300)이 제2 프레임 영상(FI2)의 세번째 로우(row) 및 네번째 컬럼(column), 그리고 네번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)들을 제외한 매크로 블록(MB2)들을 인코딩할 때, 1의 블록 상관 정보(BCI)에 의해 인터 예측부(312)가 스킵 모드에 따라 인터 예측을 수행하지 않고 제1 프레임 영상(FI1)에 해당하는 참조 영상을 이용해 최소 인터 율-왜곡 코스트(MCST1)를 결정하고, 인트라 예측만을 수행한다.
이는 원본 영상인 제1 프레임 영상(FI1) 제2 프레임 영상(FI2)을 비교한 결과인 블록 상관 정보(BCI)를 이용해 매크로 블록끼리의 동일성을 판단하는 것이 원본 영상인 제1 프레임 영상(FI1)를 부호화 및 복호화시켜 얻은 참조 영상과 입력 매크로 블록을 비교하는 것보다 정확한 매칭 결과를 얻을 수 있기 때문이다.
또한, 원칙적으로 모든 입력 매크로 블록에 대해 인터 예측을 수행하여야 하나, 원본 영상인 제1 프레임 영상(FI1) 제2 프레임 영상(FI2)의 정보 만을 이용해, 전력 소모가 많은 인터 예측을 선택적으로 수행하지 않음으로써 전력 소모를 크게 줄일 수 있다.
도 6에서는, IBBBP 방식에서 제2 프레임 영상(FI2)이 프레임 순서(ID ORDER)의 다섯번째 프레임 영상인 경우가 도시되어 있다. 따라서, 제1 프레임 영상(FI1)은 프레임 순서(ID ORDER)의 첫번째 프레임 영상이 된다. 이후, 예시적으로 제2 프레임 영상(FI2)이 프레임 순서(ID ORDER)의 다섯번째 프레임 영상인 경우에 대해서만 설명하나, 다른 프레임 영상인 경우에도 인코더(200)는 실질적으로 동일한 방식으로 동작할 수 있다.
상관 측정 블록(250)은 제1 프레임 영상(FI1)과 제2 프레임 영상(FI2)에 포함된 동일한 위치의 매크로 블록들(MB1, MB2)을 픽셀 단위로 비교하여 매크로 블록(MB2) 별로 1bit(제2 프레임 영상(FI2)이 P 영상이므로)의 블록 상관 정보(BCI)를 생성한다.
따라서, 제2 프레임 영상(FI2)의 세번째 로우 및 네번째 컬럼, 그리고 일곱번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)들에 해당하는 블록 상관 정보(BCI)는 0의 값을 갖는다. 이때, 인코딩 모듈(300)이 제2 프레임 영상(FI2)의 세번째 로우 및 네번째 컬럼, 그리고 일곱번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)들을 인코딩할 때, 인터 예측 및 인트라 예측을 모두 수행한다.
그러나, 제2 프레임 영상(FI2)의 세번째 로우(row) 및 네번째 컬럼(column), 그리고 일곱번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)들을 제외한 매크로 블록(MB2)들에 해당하는 블록 상관 정보(BCI)는 1의 값을 갖는다. 이때, 인코딩 모듈(300)이 제2 프레임 영상(FI2)의 세번째 로우 및 네번째 컬럼, 그리고 일곱번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)들을 제외한 매크로 블록(MB2)들을 인코딩할 때, 1의 블록 상관 정보(BCI)에 의해 인터 예측부(312)가 스킵 모드에 따라 인터 예측을 수행하지 않고 제1 프레임 영상(FI1)에 해당하는 참조 영상을 이용해 최소 인터 율-왜곡 코스트(MCST1)를 결정하고, 인트라 예측만을 수행한다.
도 7에서는, IBBBP 방식에서 제2 프레임 영상(FI2)이 프레임 순서(ID ORDER)의 두번째 프레임 영상인 경우가 도시되어 있다. 따라서, 제1 프레임 영상(FI1)은 프레임 순서(ID ORDER)의 첫번째 프레임 영상(I 영상)이 되고, 제3 프레임 영상(FI3)은 프레임 순서(ID ORDER)의 다섯번째 프레임 영상(P 영상)이 된다. 이후, 예시적으로 제2 프레임 영상(FI2)이 프레임 순서(ID ORDER)의 두번째 프레임 영상인 경우에 대해서만 설명하나, 다른 프레임 영상인 경우에도 인코더(200)는 실질적으로 동일한 방식으로 동작할 수 있다.
상관 측정 블록(250)은 제1 프레임 영상(FI1)과 제2 프레임 영상(FI2)에 포함된 동일한 위치의 매크로 블록들(MB1, MB2), 그리고 제2 프레임 영상(FI2)과 제3 프레임 영상(FI3)에 포함된 동일한 위치의 매크로 블록들(MB1, MB2, MB3) 픽셀 단위로 비교하여 매크로 블록(MB2) 별로 2bit(제2 프레임 영상(FI2)이 B 영상이므로)의 블록 상관 정보(BCI)를 생성한다.
따라서, 제2 프레임 영상(FI2)의 네번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)에 해당하는 블록 상관 정보(BCI)는 00의 값을 갖는다. 이때, 인코딩 모듈(300)이 제2 프레임 영상(FI2)의 네번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)을 인코딩할 때, 인터 예측 및 인트라 예측을 모두 수행한다.
제2 프레임 영상(FI2)의 세번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)에 해당하는 블록 상관 정보(BCI)는 01의 값을 갖는다. 이때, 인코딩 모듈(300)이 제2 프레임 영상(FI2)의 세번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)을 인코딩할 때, 인터 예측 및 인트라 예측을 모두 수행한다.
제2 프레임 영상(FI2)의 일곱번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)에 해당하는 블록 상관 정보(BCI)는 10의 값을 갖는다. 이때, 인코딩 모듈(300)이 제2 프레임 영상(FI2)의 일곱번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)을 인코딩할 때, 인터 예측 및 인트라 예측을 모두 수행한다.
제2 프레임 영상(FI2)의 세번째 로우 및 네번째 컬럼, 네번째 로우 및 네번째 컬럼, 그리고 일곱번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)들을 제외한 매크로 블록(MB2)들에 해당하는 블록 상관 정보(BCI)는 11의 값을 갖는다. 이때, 인코딩 모듈(300)이 제2 프레임 영상(FI2)의 세번째 로우 및 네번째 컬럼, 네번째 로우 및 네번째 컬럼, 그리고 일곱번째 로우 및 네번째 컬럼에 위치한 매크로 블록(MB2)들을 제외한 매크로 블록(MB2)들을 인코딩할 때, 11의 블록 상관 정보(BCI)에 의해 인터 예측부(312)가 스킵 모드에 따라 인터 예측을 수행하지 않고 제1 프레임 영상(FI1) 또는 제3 프레임 영상(FI3)에 해당하는 참조 영상을 이용해 최소 인터 율-왜곡 코스트(MCST1)를 결정하고, 인트라 예측만을 수행한다.
따라서, 본 발명의 실시예에 따른 인코더(200)에 의하면, 원본 영상(FI1, FI2, 및 FI3)을 비교한 결과를 이용하여 인터 예측을 선택적으로 수행하지 않음으로써 불필요한 연산 및 전력 소모를 줄일 수 있다.
또한, 본 발명의 실시예에 따른 인코더(200)에 의하면, 원본 영상(FI1, FI2, 및 FI3)을 비교한 결과를 이용하여 부호화 모드를 결정함으로써 보다 정확한 인코딩 결과를 얻을 수 있다.
도 8은 도 2에 도시된 인코더(200)의 인코딩 방법을 설명하기 위한 흐름도이다.
도 1 내지 도 8을 참조하면, 상관 측정 블록(250)은 영상 타입 할당 신호(PTA)에 따라 제2 프레임 영상(FI2)이 P 영상 또는 B 영상인지 판단할 수 있다(S10).
제2 프레임 영상(FI2)이 P 영상 또는 B 영상이 아니고 I 영상인 경우(S20의 No 경로), 블록 상관 정보(BCI)는 생성되지 않고 인코딩 모듈(300)은 영상 타입 할당 신호(PTA)에 따라 인트라 예측을 수행하고, 모드 결정부(320)는 코딩 모드를 인트라 모드로 결정한다(S20).
제2 프레임 영상(FI2)이 P 영상 또는 B 영상인 경우(S20의 Yes 경로), 상관 측정 블록(250)은 영상 타입 할당 신호(PTA)에 따라 제2 프레임 영상을 제1 프레임 영상 및/또는 제3 프레임 영상과 비교하여 블록 상관 정보(BCI)를 생성할 수 있다(S30). 물론, 상관 측정 블록(250)은 제2 프레임 영상(FI2)이 I 영상인 경우에도 블록 상관 정보(BCI)를 생성하나, 인코딩 모듈(300)은 블록 상관 정보(BCI)와는 무관하게 부호화 모드를 결정하게 된다.
블록 상관 정보(BCI)가 제2 프레임 영상(FI2)이 제1 프레임 영상 및/또는 제3 프레임 영상과의 상관이 존재하는지 나타낸다(S40).
블록 상관 정보(BCI)가 제2 프레임 영상(FI2)이 제1 프레임 영상 및/또는 제3 프레임 영상과의 상관이 존재함을 나타내는 경우(S40의 Yes 경로), 인터 예측부(312)는 스킵 모드에 따라 인터 예측을 수행하지 않고, 모드 결정부(320)는 코딩 모드를 스킵 모드로 결정한다(S50).
블록 상관 정보(BCI)가 제2 프레임 영상(FI2)이 제1 프레임 영상 및/또는 제3 프레임 영상과의 상관이 존재하지 않음을 나타내는 경우(S40의 No 경로), 인터 예측부(312) 및 인트라 예측부(314) 각각은 인터 예측 및 인트라 예측을 수행하고(S60), 모드 결정부(320)는 예측 결과에 따라 코딩 모드를 결정할 수 있다(S70).
인코딩 모듈(300)은 정해진 코딩 모드에 따라 제2 프레임 영상(FI2)의 입력 매크로 블록을 부호화할 수 있다(S80).
또한, 상기 부호화는 매크로 블록 단위로 수행되므로, 제2 프레임 영상(FI2)의 모든 입력 매크로 블록들에 대해 부호화가 완료될 때까지 S30 단계 내지 S90 단계가 반복될 수 있다(S90의 No 경로).
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
인코더(200)
전처리부(210)
이미지 타입 결정 블록(220)
프레임 버퍼(230)
상관 측정 블록(250)
인코딩 모듈(300)

Claims (10)

  1. 제1 프레임 영상과 제2 프레임 영상을 비교하여 매크로 블록 단위로 블록 상관 정보를 생성하는 상관 측정 블록; 및
    상기 제1 프레임 영상을 부호화 및 복호화한 참조 영상과 상기 제2 프레임 영상을 기초로 상기 제2 프레임 영상의 입력 매크로 블록에 대한 인터 예측(inter prediction)을 수행할지 여부를 상기 블록 상관 정보에 따라 결정하는 인코딩 모듈을 포함하는 인코더.
  2. 제1항에 있어서,
    상기 상관 측정 블록은,
    상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는 경우 하이 레벨의 블록 상관 정보를 생성하고, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하지 않는 경우 로우 레벨의 블록 상관 정보를 생성하는 인코더.
  3. 제1항에 있어서,
    상기 블록 상관 정보가 하이 레벨인 경우,
    상기 인코딩 모듈은 상기 인터 예측을 수행하지 않고, 스킵 모드(skip mode)에 따른 참조 블록과 상기 입력 매크로 블록을 연산하여 부호화하는 인코더.
  4. 제1항에 있어서,
    상기 블록 상관 정보가 로우 레벨인 경우,
    상기 인코딩 모듈은 상기 인터 예측 및 인트라 예측(intra prediction)을 수행하여, 예측 결과에 의해 정해진 모드에 따른 참조 블록과 상기 입력 매크로 블록을 연산하여 부호화하는 인코더.
  5. 제1항에 있어서,
    상기 상관 측정 블록은,
    상기 제2 프레임 영상의 영상 타입을 나타내는 영상 타입 할당 신호에 기초하여 상기 블록 상관 정보의 비트 수를 결정하는 인코더.
  6. 제5항에 있어서,
    상기 상관 측정 블록은,
    상기 영상 타입 할당 신호가 상기 제2 프레임 영상이 P 영상임을 나타낼 경우, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는지 여부에 따른 제1 비트를 포함하는 상기 블록 상관 정보를 생성하고,
    상기 인코딩 모듈은 상기 블록 상관 정보에 따라 상기 인터 예측을 수행할지 여부를 결정하는 인코더.
  7. 제5항에 있어서,
    상기 상관 측정 블록은,
    상기 영상 타입 할당 신호가 상기 제2 프레임 영상이 B 영상임을 나타낼 경우, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는지 여부에 따른 제1 비트 및 상기 제2 프레임 영상과 제3 프레임 영상이 일치하는지 여부에 따른 제2 비트를 포함하는 상기 블록 상관 정보를 생성하고,
    상기 인코딩 모듈은 상기 블록 상관 정보에 따라 상기 인터 예측을 수행할지 여부를 결정하는 인코더.
  8. 복수의 프레임 영상들을 포함하는 영상 데이터를 저장하는 메모리 장치; 및
    상기 영상 데이터를 프레임 단위로 인코딩(encoding)하는 인코더를 포함하는 코덱을 포함하며,
    상기 인코더는,
    상기 영상 데이터에 포함된 제1 프레임 영상과 제2 프레임 영상을 비교하여 매크로 블록 단위로 블록 상관 정보를 생성하는 상관 측정 블록; 및
    상기 제1 프레임 영상을 부호화 및 복호화한 참조 영상과 상기 제2 프레임 영상을 기초로 상기 제2 프레임 영상의 입력 매크로 블록에 대한 인터 예측(inter prediction)을 수행할지 여부를 상기 블록 상관 정보에 따라 결정하는 인코딩 모듈을 포함하는 애플리케이션 프로세서.
  9. 제8항에 있어서,
    상기 상관 측정 블록은,
    상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하는 경우 하이 레벨의 블록 상관 정보를 생성하고, 상기 제1 프레임 영상과 상기 제2 프레임 영상이 일치하지 않는 경우 로우 레벨의 블록 상관 정보를 생성하는 애플리케이션 프로세서.
  10. 상관 측정 블록이 제1 프레임 영상과 제2 프레임 영상을 비교하여 매크로 블록 단위로 블록 상관 정보를 생성하는 단계; 및
    인코딩 모듈이 상기 제1 프레임 영상을 부호화 및 복호화한 참조 영상과 상기 제2 프레임 영상을 기초로 상기 제2 프레임 영상의 입력 매크로 블록에 대한 인터 예측(inter prediction)을 수행할지 여부를 상기 블록 상관 정보에 따라 결정하는 단계를 포함하는 영상 데이터의 인코딩 방법.
KR1020140173140A 2014-12-04 2014-12-04 영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서 KR20160067580A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140173140A KR20160067580A (ko) 2014-12-04 2014-12-04 영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서
US14/959,550 US20160165235A1 (en) 2014-12-04 2015-12-04 Method of encoding image data, encoder using the method, and application processor including the encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140173140A KR20160067580A (ko) 2014-12-04 2014-12-04 영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서

Publications (1)

Publication Number Publication Date
KR20160067580A true KR20160067580A (ko) 2016-06-14

Family

ID=56095508

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140173140A KR20160067580A (ko) 2014-12-04 2014-12-04 영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서

Country Status (2)

Country Link
US (1) US20160165235A1 (ko)
KR (1) KR20160067580A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200068214A1 (en) * 2018-08-27 2020-02-27 Ati Technologies Ulc Motion estimation using pixel activity metrics

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100898176B1 (ko) * 2007-06-12 2009-05-19 한국전자통신연구원 비디오 인코딩을 위한 인터 모드 결정 방법
US20100329340A1 (en) * 2009-06-25 2010-12-30 General Instrument Corporation Method and apparatus for eliminating encoding delay when a telecine source material is detected
WO2011099792A2 (ko) * 2010-02-10 2011-08-18 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
US20140003494A1 (en) * 2012-01-05 2014-01-02 Yaniv Frishman Device, system and method of video encoding

Also Published As

Publication number Publication date
US20160165235A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
CN110024392B (zh) 用于视频译码的低复杂度符号预测
US9973756B2 (en) Video encoder and video encoding method
KR102310752B1 (ko) 슬라이스 레벨 인트라 블록 카피 및 기타 비디오 코딩 개선
US10291925B2 (en) Techniques for hardware video encoding
JP2019525679A (ja) クロス成分フィルタ
KR102390162B1 (ko) 데이터 인코딩 장치 및 데이터 인코딩 방법
KR20090058954A (ko) 사이드 매칭을 이용한 영상의 부호화 방법 및 장치, 그복호화 방법 및 장치
WO2015052273A1 (en) Method and apparatus for displacement vector component prediction in video coding and decoding
US20140044181A1 (en) Method and a system for video signal encoding and decoding with motion estimation
WO2020103593A1 (zh) 一种帧间预测的方法及装置
CN118200560A (zh) 光流修正的提前终止
CN105933706B (zh) 多媒体编解码器、应用处理器和电子装置
WO2022061563A1 (zh) 视频编码方法、装置及计算机可读存储介质
KR20160067580A (ko) 영상 데이터의 인코딩 방법, 상기 방법을 이용한 인코더, 및 상기 인코더를 포함하는 애플리케이션 프로세서
RU2778993C2 (ru) Способ и аппаратура предсказания видеоизображений
US20230171405A1 (en) Scene transition detection based encoding methods for bcw
KR20180018903A (ko) 참조 프레임 선택 방법 및 그 장치
KR20070121084A (ko) 움직임 추정방법 및 장치, 및 이를 이용한 영상 부호화방법및 장치
KR101525325B1 (ko) 인트라 예측 모드 결정 방법 및 그 장치
CN118120234A (zh) 用于视频处理的方法、装置和介质
CN116998151A (zh) 一种编码方法、解码方法、编码器、解码器以及存储介质
KR20120035769A (ko) 움직임 정보 부호화 및 복호화 방법과 이를 이용한 장치
KR20140124446A (ko) 인트라 예측을 이용한 비디오 부호화/복호화 방법 및 장치
KR20150021821A (ko) 영상 데이터 메모리 관리 방법 및 영상 데이터 메모리 장치
KR20140124445A (ko) 인트라 예측을 이용한 비디오 부호화/복호화 방법 및 장치

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid