KR20160064299A - 비디오 프레임 인코딩 회로, 그것의 인코딩 방법 및 그것을 포함하는 비디오 데이터 송수신 장치 - Google Patents

비디오 프레임 인코딩 회로, 그것의 인코딩 방법 및 그것을 포함하는 비디오 데이터 송수신 장치 Download PDF

Info

Publication number
KR20160064299A
KR20160064299A KR1020140167307A KR20140167307A KR20160064299A KR 20160064299 A KR20160064299 A KR 20160064299A KR 1020140167307 A KR1020140167307 A KR 1020140167307A KR 20140167307 A KR20140167307 A KR 20140167307A KR 20160064299 A KR20160064299 A KR 20160064299A
Authority
KR
South Korea
Prior art keywords
frame
motion
axis
macroblock
data
Prior art date
Application number
KR1020140167307A
Other languages
English (en)
Other versions
KR102264840B1 (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 삼성전자주식회사
Priority to KR1020140167307A priority Critical patent/KR102264840B1/ko
Priority to US14/938,248 priority patent/US10091527B2/en
Publication of KR20160064299A publication Critical patent/KR20160064299A/ko
Application granted granted Critical
Publication of KR102264840B1 publication Critical patent/KR102264840B1/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
    • 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/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding

Landscapes

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

Abstract

인코딩 회로는 복수의 프레임들 및 x축, y축 및 z축 모션 데이터를 수신하고, 상기 복수의 프레임들은 인코딩 대상 프레임에 대한 참조 프레임인 제1 프레임 및 상기 인코딩 대상 프레임인 제2 프레임을 포함하고, 상기 제1 프레임의 매크로 블록 및 상기 제2 프레임의 예측 대상 매크로 블록 사이의 위치 관계를 가리키는 모션 벡터를 생성하는 모션 추정부, 상기 모션 벡터에 따른 상기 제2 프레임의 예측 대상 매크로 블록의 모션을 보상하는 모션 보상부, 상기 모션이 보상된 상기 제2 프레임의 예측 대상 매크로 블록을 변환 및 양자화한 데이터를 출력하는 변환 및 양자화부 및 상기 변환 및 양자화한 데이터를 인코딩하고, 상기 인코딩한 데이터를 출력하는 인코더를 포함하되, 상기 모션 추정부는 상기 x축, y축 및 z축 모션 데이터를 통해 x축, y축 및 z축 모션을 예측하고, 상기 z축 모션을 통해 상기 제1 프레임과 비교하여 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체의 확대 또는 축소를 예측하고, 상기 확대 및 축소의 예측을 통해 상기 제1 프레임의 검색 영역을 조절한다.

Description

비디오 프레임 인코딩 회로, 그것의 인코딩 방법 및 그것을 포함하는 비디오 데이터 송수신 장치{VIDEO FRAME ENCODING CIRCUIT, ENCODING METHOD THEREOF AND VIDEO DATA TRANSMITTING AND RECEIVING SYSTEM INCLUDING THE SAME}
본 발명은 영상 처리에 관한 것으로, 좀 더 구체적으로는 비디오 정보를 포함하는 데이터를 인코딩하기 위한 회로, 그것의 인코딩 방법 및 그것을 포함하는 비디오 데이터 송수신 장치에 관한 것이다.
전자 기기에 영상을 표시하기 위해, 다양한 영상 처리 방법이 이용되고 있다. 예를 들면, MPEG(Moving Picture Experts Groups)는 MPEG-1, MPEG-2 및 MPEG-4를 포함하는 다수의 표준을 개발한다. 반면, ITU(International Telecommunication Union)에서는 H.263, H.264/AVC등을 비디오 인코딩 표준으로 사용하고 있다. 이들 비디오 인코딩 표준들은 압축 방식으로 영상 데이터를 인코딩함으로써 영상 데이터의 전송 효율은 높이고 있다.
특히, 높은 해상도를 갖는 영상에 대한 요구가 늘어나고 큰 데이터 용량을 갖는 영상을 빠르게 전송하는 방법이 요구됨에 따라, 영상을 형성하는 데이터를 압축하기 위한 영상 처리 방법이 널리 이용되고 있다. 영상을 형성하는 데이터를 압축하기 위한 영상 처리 방법에 따르면, 데이터는 다양한 수학적 기법들에 의해 변환되고 변환된 데이터는 다양한 인코딩 기법에 의해 인코딩된다.
MPEG-4에서 제공하는 글로벌 모션 추정(global motion estimation) 방법은 각 매크로 블록마다 글로벌 모션 벡터(global motion vector) 또는 로컬 모션 벡터(local motion vector)의 적용을 결정해야 한다. 이는 로컬 모션 벡터를 계산하는 노력은 그대로 존재하고, 글로벌 모션 벡터 및 로컬 모션 벡터 중 적용 결과가 좋은 것을 선택해야 한다. 따라서, 인코딩에 이용되는 수학적 기법들은 많은 계산을 필요로 한다.
본 발명의 목적은 비디오 정보들을 포함하는 영상 데이터를 효율적으로 변환 및 인코딩하기 위한 비디오 인코딩 회로, 그것의 인코딩 방법 및 그것을 포함하는 비디오 데이터 송수신 장치를 제공하는 데에 있다.
본 발명의 실시 예에 따른 인코딩 회로는 복수의 프레임들 및 x축, y축 및 z축 모션 데이터를 수신하고, 상기 복수의 프레임들은 인코딩 대상 프레임에 대한 참조 프레임인 제1 프레임 및 상기 인코딩 대상 프레임인 제2 프레임을 포함하고, 상기 제1 프레임의 매크로 블록 및 상기 제2 프레임의 예측 대상 매크로 블록 사이의 위치 관계를 가리키는 모션 벡터를 생성하는 모션 추정부, 상기 모션 벡터에 따른 상기 제2 프레임의 예측 대상 매크로 블록의 모션을 보상하는 모션 보상부, 상기 모션이 보상된 상기 제2 프레임의 예측 대상 매크로 블록을 변환 및 양자화한 데이터를 출력하는 변환 및 양자화부 및 상기 변환 및 양자화한 데이터를 인코딩하고, 상기 인코딩한 데이터를 출력하는 인코더를 포함하되, 상기 모션 추정부는 상기 x축, y축 및 z축 모션 데이터를 통해 x축, y축 및 z축 모션을 예측하고, 상기 z축 모션을 통해 상기 제1 프레임과 비교하여 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체의 확대 또는 축소를 예측하고, 상기 확대 및 축소의 예측을 통해 상기 제1 프레임의 검색 영역을 조절한다.
실시 예로서, 상기 모션 추정부는 상기 x축, y축 및 z축 모션을 통해 상기 제1 프레임의 검색 시작 매크로 블록을 설정하고, 상기 검색 시작 매크로 블록을 중심으로 상기 검색 영역을 조절한다.
실시 예로서, 상기 모션 추정부는 상기 z축 모션을 통해 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체의 확대가 예측되면, 상기 제1 프레임의 검색 영역을 축소하여 설정한다.
실시 예로서, 상기 모션 추정부는 상기 z축 모션을 통해 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체의 축소가 예측되면, 상기 제1 프레임의 검색 영역을 확대하여 설정한다.
실시 예로서, 인코딩 회로는 상기 변환 및 양자화한 데이터를 역 변환 및 역 양자화하는 역 변환 및 역 양자화부, 상기 역 변환 및 역 양자화한 데이터를 필터링하는 필터 및 상기 필터링한 데이터를 후속하여 발생하는 모션 추정에 사용하기 위해 저장하는 프레임 저장부를 더 포함한다.
본 발명의 실시 예에 따른 인코딩 회로의 인코딩 방법은, x축, y축 및 z축 모션 데이터를 수신하여 x축, y축 및 z축 모션을 계산하는 단계, 인코딩 대상 프레임의 참조 프레임인 제1 프레임 및 상기 인코딩 대상 프레임인 제2 프레임을 포함하는 복수의 비디오 프레임들을 수신하는 단계, 상기 x축, y축 및 z축 모션을 기반으로 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체가 상기 제 1 프레임으로부터 움직인 거리 및 방향을 계산하는 단계, 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 상기 피사체를 검색하기 위해 상기 제1 프레임의 검색 시작 매크로 블록을 설정하는 단계, 상기 z축 모션을 이용하여 상기 제1 프레임의 검색 영역을 조절하여 모션 추정하는 단계, 상기 모션 추정을 통해 모션 벡터를 구하고, 상기 모션 벡터를 이용하여 상기 제2 프레임의 예측 대상 매크로 블록을 인코딩하는 단계 및 상기 제2 프레임의 모든 매크로 블록들의 인코딩 완료 여부를 판별하는 단계를 포함한다.
실시 예로서, 상기 제2 프레임의 모든 매크로 블록들의 인코딩이 완료되지 않으면, 상기 x축, y축 및 z축 모션을 기반으로 상기 제2 프레임의 상기 완료되지 않은 매크로 블록들 중 예측 대상 매크로 블록에 포함된 피사체가 상기 제 1 프레임으로부터 움직인 거리 및 방향을 계산하는 단계를 수행한다.
실시 예로서, 상기 z축 모션을 통해 상기 제1 프레임의 검색 영역을 조절하는 단계는, 상기 z축 모션을 통해 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체가 상기 제1 프레임에서보다 확대를 감지하는 단계 및 상기 제1 프레임의 상기 검색 영역을 상기 z 축 모션을 통해 감지된 거리에 비례하여 감소하는 단계를 더 포함한다.
실시 예로서, 상기 z축 모션은 통해 상기 제1 프레임의 검색 영역을 조절하는 단계는, 상기 z 축 모션을 통해 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체가 상기 제1 프레임에서보다 축소를 감지하는 단계 및 상기 제1 프레임의 상기 검색 영역을 상기 z축 모션을 통해 감지된 거리에 비례하게 확대하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 비디오 인코더를 포함하는 비디오 데이터 송수신 장치에 있어서, 상기 비디오 인코더는: 인코딩 대상 프레임의 참조 프레임인 제1 프레임 및 상기 인코딩 대상 프레임인 제2 프레임을 포함하는 복수의 프레임들 및 x축, y축 및 z축 모션 데이터를 수신하여 x축, y축 및 z축 모션을 예측하고, 상기 z축 모션을 통해 상기 제1 프레임과 비교하여 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체의 확대 또는 축소를 예측하고, 상기 확대 및 축소의 예측을 통해 상기 제1 프레임의 검색 영역을 조절함으로써, 상기 제1 프레임의 매크로 블록 및 상기 제2 프레임의 예측 대상 매크로 블록 사이의 위치 관계를 가리키는 모션 벡터 정보를 생성하는 모션 추정부, 상기 모션 벡터에 따른 상기 제2 프레임의 예측 대상 매크로 블록의 모션을 보상하는 모션 보상부, 상기 모션이 보상된 상기 제2 프레임의 예측 대상 매크로 블록을 변환 및 양자화한 데이터를 출력하는 변환 및 양자화부, 상기 변환 및 양자화된 데이터를 인코딩하고, 상기 인코딩한 데이터를 출력하는 인코더를 포함한다.
본 발명의 실시 예에 따르면, 촬영 기기의 이동 정보를 이용하여 각 매크로 블록의 예상 이동 위치를 계산함으로써, 검색 영역의 크기는 조절될 수 있다. 따라서, 인코딩 회로는 영상 데이터의 인코딩 속도를 향상시키고, 전력 소모를 감소할 수 있다.
도 1은 본 발명의 실시 예에 따른 인코딩 회로를 보여주는 블록도이다.
도 2는 본 발명의 제1 실시 예에 따른 모션 추정 방법을 보여준다.
도 3은 본 발명의 제2 실시 예에 따른 모션 추정 방법을 보여준다.
도 4는 본 발명의 제3 실시 예에 따른 모션 추정 방법을 보여준다.
도 5는 본 발명의 제4 실시 예에 따른 모션 추정 방법을 보여준다.
도 6은 본 발명의 제5 실시 예에 따른 모션 추정 방법을 보여준다.
도 7은 본 발명의 제6 실시 예에 따른 모션 추정 방법을 보여준다.
도 8은 본 발명 실시 예에 따른 모션 추정 방법을 보여주는 순서도이다.
도 9는 본 발명의 제1 실시 예에 따른 검색 범위를 조절하는 방법을 보여주는 순서도이다.
도 10은 본 발명의 제2 실시 예에 따른 검색 범위를 조절하는 방법을 보여주는 순서도이다.
도 11은 본 발명의 실시 예에 따른 비디오 데이터 송수신 장치를 보여주는 블록도이다.
도 12는 본 발명의 실시 예에 따른 비디오 데이터 송수신 장치의 비디오 인코더를 보여주는 블록도이다.
도 13은 본 발명의 실시 예에 따른 비디오 인코더에 대응하는 비디오 디코더의 구성을 나타낸 블록도이다.
도 14는 본 발명의 실시 예에 따른 비디오 코덱을 포함하는 휴대용 장치가 가질 수 있는 구성을 나타낸 블록도이다.
도 15는 본 발명의 실시 예에 따른 비디오 코덱을 포함하는 컴퓨팅 장치가 가질 수 있는 구성을 나타낸 블록도이다.
전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서, 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.
본 명세서에서 어떤 구성이 특정 요소들을 포함한다는 언급이 있는 경우, 또는 어떤 과정이 특정 단계들을 포함한다는 언급이 있는 경우는, 그 외 다른 요소 또는 다른 단계들이 더 포함될 수 있음을 의미한다. 즉, 본 명세서에서 사용되는 용어들은 특정 실시 형태를 설명하기 위한 것일 뿐이고, 본 발명의 개념을 한정하기 위한 것이 아니다. 나아가, 발명의 이해를 돕기 위해 설명한 예시들은 그것의 상보적인 실시 예도 포함한다.
본 명세서에서 사용되는 용어들은 본 발명이 속하는 기술 분야의 통상의 기술자들이 일반적으로 이해하는 의미를 갖는다. 보편적으로 사용되는 용어들은 본 명세서의 맥락에 따라 일관적인 의미로 해석되어야 한다. 또한, 본 명세서에서 사용되는 용어들은, 그 의미가 명확히 정의된 경우가 아니라면, 지나치게 이상적이거나 형식적인 의미로 해석되지 않아야 한다. 이하 첨부된 도면을 통하여 본 발명의 실시 예가 설명된다.
도 1은 본 발명의 실시 예에 따른 인코딩 회로를 보여주는 블록도이다. 도 1을 참조하면, 인코딩 회로(100)는 모션 추정부(110, Motion Estimation Unit), 모션 보상부(120, Motion Compensation Unit), 변환 및 양자화부(130, Transform and Quantization unit), 인코더(140, Encoder), 역 변환 및 역 양자화부(150, Inverse transform and Inverse quantization), 필터(160, Filter), 및 프레임 저장부(170, Frame Store)를 포함한다.
모션 추정부(110)는 외부로부터 모션 데이터(x, y, z) 및 비디오 프레임들(Fs)을 수신한다. 모션 데이터(x, y, z)는 자이로 센서(미 도시)로부터 수신할 수 있다. 모션 데이터(x, y, z)는 비디오 프레임들(Fs)에 포함된 피사체들의 x축, y축 및 z축 모션 정보를 포함한다.
모션 추정부(110)는 수신한 프레임들(Fs) 중 인코딩하는 프레임을 현재 프레임이라 하고 현재 프레임의 모션 예측을 위해 비교하는 프레임을 참조 프레임(예를 들어, 현재 프레임의 이전 프레임 또는 이후 프레임)이라 한다. 현재 프레임과 참조 프레임을 비교하여 인터 예측(Inter-prediction)을 수행할 수 있다. 모션 추정부(110)는 현재 프레임의 예측 대상 매크로 블록과 참조 프레임의 검출된 매크로 블록 사이의 위치 관계를 나타내는 모션 벡터(Motion Vector)를 생성할 수 있다.
구체적으로, 모션 추정부(110)는 모션 데이터(x, y, z)를 이용하여 모션 벡터를 생성할 수 있다. 모션 추정부(110)는 x축 모션 데이터(x)를 통해 x축 모션(Δx)을 예측한다. 그리고 모션 추정부(110)는 y축 모션 데이터(y)를 통해 y축 모션(Δy)을 예측한다. 모션 추정부(110)는 x축 및 y축 모션(Δx, Δy)을 통해, 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체가 참조 프레임으로부터 이동한 x축 및 y축 모션을 예측할 수 있다.
또한, 모션 추정부(110)는 z축 모션 데이터(z)를 통해 z축 모션(Δz)을 예측한다. 모션 추정부(110)는 z축 모션(Δz)을 통해 현재 프레임의 매크로 블록에 포함된 피사체가 참조 프레임으로부터 이동한 z축 모션을 예측할 수 있다. 모션 추정부(110)는 z축 모션(Δz)을 통해 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체의 확대 및 축소 여부를 예측할 수 있다.
모션 추정부(110)는 z축 모션(Δz)을 통해, 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체를 이전 프레임으로부터 찾기 위한 검색 영역을 조절할 수 있다. 예시적으로, 현재 프레임의 예측 대상 프레임에 포함된 피사체가 참조 프레임에서보다 확대된다면, 모션 추정부(110)는 검색 영역을 축소할 수 있다. 또한, 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체가 참조 프레임에서보다 감소한다면, 모션 추정부(110)는 검색 영역을 확대할 수 있다.
모션 추정부(110)는 x축, y축 모션(Δx, Δy)을 통해 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체의 이전 프레임으로부터 종축(x축) 및 횡축(y축) 모션을 예측할 수 있다. 그리고, 모션 추정부(110)는 z축 모션(Δz)을 통해 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체의 이전 프레임으로부터 확대 및 축소 여부를 예측할 수 있다.
모션 보상부(120)는 모션 벡터를 통해 모션 보상을 수행할 수 있다. 모션 보상부(120)는 모션 벡터가 가리키는 참조 프레임의 매크로 블록을 로드할 수 있다. 참조 프레임의 매크로 블록은 현재 프레임으로 출력될 수 있다.
변환 및 양자화부(130)는 차분 블록을 생성할 수 있다. 예를 들어, 차분 블록은 인터 예측을 통해 생성된 현재 프레임의 예측 대상 매크로 블록과 원본 프레임의 이미지 블록 사이의 차이 값을 포함할 수 있다. 변환 및 양자화부(130)는 차분 블록에 대한 주파수 영역의 변환 계수로 변환함으로써, 차분 블록 내의 상관성을 제거한다. 변환은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), 정수 변환(Integer Transform), 또는 이들과 유사한 변환일 수 있다. 변환 및 양자화부(120)는 차분 블록을 적응 양자화한 데이터를 출력한다.
인코더(140)는 출력된 데이터를 압축한다. 예시적으로, 인코더(140)는 데이터를 산술 코딩, 차분 코딩, 후프만 코딩, 실행 길이 코딩, LZ 코딩, 또는 사전적 코딩 중 하나 이상을 이용할 수 있다. 인코더(140)는 압축된 영상 데이터(ENC_DATA)를 출력한다.
역 변환 및 역 양자화부(150)는 변환 및 양자화부(130)로부터 변환 및 양자화된 데이터를 수신한다. 역 변환 및 역 양자화부(150)는 역 변환 및 역 양자화 과정을 통해 데이터를 복원할 수 있다.
필터(160)는 현재 프레임의 매크로 블록들 사이의 경계에 포함된 노이즈를 제거하기 위한 디블로킹 필터(Deblocking Filter), 비디오 영상의 프레임들(Fs)과 복원된 데이터의 프레임들 사이의 왜곡을 보상하기 위한 샘플 적응적 오프셋 필터(Sample Adaptive Offset Filter), HE(High Efficiency)모드에서 인코딩 중 발생한 정보 손실을 보상하기 위한 적응적 루프 필터(Adaptive Loop Filter)등을 포함할 수 있다.
프레임 저장부(170)는 영상 프레임들(Fs)의 참조 프레임 정보를 버퍼링할 수 있다. 프레임 저장부(170)는 현재 프레임을 후속하여 발생하는 모션 추정에 사용하기 위한 참조 프레임으로 버퍼링할 수 있다. 프레임 저장부(170)에 의해 버퍼링된 정보는 모션 추정부(110)로 제공될 수 있다. 프레임 저장부(170)에 의해 버퍼링된 정보는 인터 예측을 수행하기 위해 현재 프레임의 정보와 함께 이용될 수 있다.
도 2는 본 발명의 제1 실시 예에 따른 모션 추정 방법을 보여준다. 도 1 및 도 2를 참조하면, 모션 추정부(110)의 모션 추정은 제1 및 제2 프레임들(F1, F2)을 예시로 하여 설명된다. 예시적으로, 제1 프레임(F1)은 참조 프레임(현재 프레임의 이전 프레임 또는 이후 프레임)이고, 제2 프레임(F2)은 현재 프레임이다. 제1 및 제2 프레임들(F1, F2)은 복수의 매크로 블록들(macro block)로 구분된다. 제1 및 제2 프레임들(F1, F2)은 각각 6*6 매크로 블록들을 포함한다고 가정한다.
본 발명을 설명하기 위해, 피사체는 제1 프레임(F1)에서 제2 프레임(F2)으로 x축 및 y축의 모션 없이 z축의 모션을 통해 확대되었다고 가정한다. 모션 추정부(110)는 z축 모션(Δz)의 예측을 통해 마이크로 블록들 각각에 포함된 피사체들의 모션을 예측할 수 있다. 예시적으로, 제2 프레임(F2)의 피사체는 제1 프레임(F1)의 피사체보다 확대되었다고 가정한다. z축 모션 예측(Δz motion estimation)을 참조하면, 마이크로 블록들 각각에 포함된 피사체들은 바깥쪽 방향을 향해 이동하는 것을 확인할 수 있다.
모션 추정부(110)는 z축 모션(Δz)을 통해 이동 방향 및 거리를 예측하고, 제1 프레임(F1)에서 검색 시작 매크로 블록(SMB)을 설정한다. 그리고, 모션 추정부(110)는 z축 모션(Δz)을 통해, 피사체(Subject)가 확대되었음을 예측한다. 따라서, 모션 추정부(110)는 제1 프레임(F1)의 제1 검색 영역(SR1)을 피사체의 크기에 비례하여 조절할 수 있다. 구체적으로, 모션 추정부(110)는 z축 모션(Δz)을 통해 피사체의 확대된 정도 및 이동 거리를 예측하고, 이에 따라 제1 검색 영역(SR1)의 크기를 축소할 수 있다.
도 3은 본 발명의 제2 실시 예에 따른 모션 추정 방법을 보여준다. 예시적으로, 피사체(Subject)는 제1 프레임(F1)에서 제2 프레임(F2)으로 x축 및 y축의 모션 없이 z축의 모션을 통해 축소되었다고 가정한다. 도 1 및 도 3을 참조하면, 모션 추정부(110)는 z축 모션 예측(Δz motion estimation)을 통해 피사체의 모션을 예측한다. z축 모션 예측을 참조하면, 마이크로 블록들 각각에 포함된 피사체들은 안쪽 방향을 향해 이동하는 것을 확인할 수 있다.
모션 추정부(110)는 제2 프레임(F2)의 예측 대상 매크로 블록(EMB)에 포함된 피사체를 제1 프레임(F1)에서 검색하기 위해, z축 모션(Δz)을 이용하여 검색 시작 지점을 설정한다. 그리고, 모션 추정부(110)는 z축 모션(Δz)을 통해, 피사체가 축소되었음을 예측한다. 따라서, 모션 추정부(110)는 제1 프레임(F1)의 제2 검색 영역(SR2)을 피사체의 크기에 비례하여 조절할 수 있다. 구체적으로, 모션 추정부(110)는 z축 모션(Δz)을 통해 피사체의 축소된 정도 및 이동 거리를 예측하고 이에 따라, 제2 검색 영역(SR2)의 크기를 확대할 수 있다.
도 4는 본 발명의 제3 실시 예에 따른 모션 추정 방법을 보여준다. 본 발명을 설명하기 위해, 제2 프레임(F2)에 포함된 피사체들은 제1 프레임(F1)에 포함된 피사체들보다 우측 상부로 이동하였고, 동시에 확대되었다고 가정한다. 구체적으로, 도 1 및 도 4를 참조하면, 모션 추정부(110)는 x축 및 y축 모션 추정(Δx, Δy motion estimation)을 통해 피사체들이 우측 상부로 이동하였음을 예측할 수 있다. 동시에, 모션 추정부(110)는 z축 모션 추정(Δz motion estimation)을 통해 피사체들이 확대되었음을 예측할 수 있다. 모션 추정부(110)는 x축 및 y축 모션(Δx, Δy)에 z축 모션(Δz)을 결합하여 평면 프레임 상의 x축, y축 및 z 축 모션을 예측(Δx, Δy, Δz estimation)할 수 있다.
모션 추정부(110)는 제2 프레임(F2)의 예측 대상 매크로 블록(EMB)에 포함된 피사체를 제1 프레임(F1)에서 검색하기 위해, x축, y축 및 z 축 모션(Δx, Δy, Δz)을 이용하여 검색 시작 매크로 블록(SMB)을 설정한다. 그리고, 모션 추정부(110)는 z축 모션(Δz)을 통해, 피사체가 확대되었음을 예측한다. 따라서, 모션 추정부(110)는 제1 프레임(F1)의 제3 검색 영역(SR3)을 z축 모션(Δz)에 비례하여 감소할 수 있다.
도 5는 본 발명의 제4 실시 예에 따른 모션 추정 방법을 보여준다. 본 발명을 설명하기 위해, 제2 프레임(F2)에 포함된 피사체들은 제1 프레임(F1)에 포함된 피사체들보다 좌측 하부로 이동하였고, 동시에 축소되었다고 가정한다. 구체적으로, 도 1 및 도 5를 참조하면, 모션 추정부(110)는 x축 및 y축 모션 추정(Δx, Δy motion estimation)을 통해 피사체들이 좌측 하부로 이동하였음을 예측할 수 있다. 동시에, 모션 추정부(110)는 z축 모션 추정(Δz motion estimation)을 통해 피사체들이 축소되었음을 예측할 수 있다. 모션 추정부(110)는 x축 및 y축 모션(Δx, Δy)에 z축 모션(Δz)을 결합하여 평면 프레임 상의 x축, y축 및 z 축 모션을 예측(Δx, Δy, Δz motion estimation)을 한다.
모션 추정부(110)는 제2 프레임(F2)의 예측 대상 매크로 블록(EMB)에 포함된 피사체를 제1 프레임(F1)에서 검색하기 위해, 예측된 x축, y축 및 z 축 모션(Δx, Δy, Δz)을 이용하여 검색 시작 매크로 블록(SMB)을 설정한다. 그리고, 모션 추정부(110)는 예측된 z축 모션(Δz)을 통해, 피사체가 확대되었음을 예측한다. 따라서, 모션 추정부(110)는 제1 프레임(F1)의 제4 검색 영역(SR4)을 z축 모션(Δz)에 비례하여 확대할 수 있다.
도 6은 본 발명의 제5 실시 예에 따른 모션 추정 방법을 보여준다. 도 1 및 도 6을 참조하면, 모션 추정부(110)의 모션 추정은 제1 제2, 및 제3 프레임들(F1, F2, F3)을 예시로 하여 설명된다. 예시적으로, 제1 및 제3 프레임들(F1, F2)은 참조 프레임(각각 현재 프레임의 이전 프레임 또는 이후 프레임)이고, 제2 프레임(F2)은 인코딩 대상이 되는 현재 프레임이다. 제1 내지 제3 프레임들(F1, F2, F3)은 복수의 매크로 블록들(macro block)로 구분된다. 제1 내지 제3 프레임들(F1, F2, F3)은 각각 6*6 매크로 블록들을 포함한다고 가정한다.
도 6을 참조하면, 제2 프레임(F2)의 예측 대상 매크로 블록(EMB)을 인코딩 하기 위해 제1 프레임(F1) 및 제3 프레임들(F3) 각각과 비교한다. 모션 추정부(110)는 x축 및 y축 모션 예측(Δx, Δy motion estimation)을 통해 피사체들이 제1 프레임(F1)에서 제3 프레임(F3)으로 갈수록 순차적으로 우측 상부로 이동하였음을 예측할 수 있다. 동시에, 모션 추정부(110)는 z축 모션 추정(Δz motion estimation)을 통해, 피사체들이 제1 프레임(F1)에서 제3 프레임(F3)으로 갈수록 순차적으로 확대되었음을 예측할 수 있다. 모션 추정부(110)는 x축 및 y축 모션(Δx, Δy)에 z축 모션(Δz)을 결합하여 평면 프레임 상의 x축, y축 및 z 축 모션(Δx, Δy, Δz)을 예측할 수 있다.
제2 프레임(F2)의 예측 대상 매크로 블록(EMB)에 포함된 피사체는 제1 프레임(F1)에서보다 확대되고, 우측 상부로 이동한다. 그리고, 제2 프레임(F2)의 예측 대상 매크로 블록(EMB)에 포함된 피사체는 제3 프레임(F3)에서 더 확대되고, 우측 상부로 이동한다. 제2 프레임(F2)의 예측 대상 매크로 블록(EMB)에 포함된 피사체를 제1 및 제3 프레임들(F1, F3)에서 검색하기 위해, 모션 추정부(110)는 x, y, z 모션(Δx, Δy, Δz)을 통해 제1 및 제3 프레임들(F1, F3) 각각에 모션 추정 시작 매크로 블록(SMB)을 설정한다.
모션 추정부(110)는 z축 모션(Δz)을 통해, 피사체가 제2 프레임(F2)보다 제1 프레임(F1)에서 상대적으로 작은 크기인 것을 예측한다. 따라서, 모션 추정부(110)는 제1 프레임(F1)의 제5 검색 영역(SR5)을 z축 모션(Δz)에 비례하여 감소시킬 수 있다.
그리고, 모션 추정부(110)는 z축 모션(Δz)을 통해, 피사체가 제2 프레임(F2)보다 제3 프레임(F3)에서 상대적으로 큰 크기인 것을 예측한다. 따라서, 모션 추정부(110)는 제3 프레임(F3)의 제6 검색 영역(SR6)을 z축 모션(Δz)에 비례하여 확대시킬 수 있다.
제5 검색 영역(SR5)은 제6 검색 영역(SR6)보다 작은 범위를 갖는다. 모션 추정부(110)는 제5 검색 영역(SR5) 및 제6 검색 영역(SR6) 각각에서 제2 프레임(F2)의 예측 대상 매크로 블록(EMB)에 포함된 피사체를 검색하여 모션 벡터를 구한다. 그리고, 모션 추정부(110)는 제5 검색 영역(SR5) 및 제6 검색 영역(SR6) 각각에서 구한 모션 벡터 중 정확도가 더 높은 모션 벡터를 이용하여 인코딩 동작을 수행한다.
도 7은 본 발명의 제6 실시 예에 따른 모션 추정 방법을 보여준다. 도 1 내지 도 7을 참조하면, 모션 추정부(110)의 모션 추정은 제1, 제2 및 제3 프레임들(F1, F2, F3)을 예시로 하여 설명된다.
도 7을 참조하면, 제2 프레임(F2)의 예측 대상 매크로 블록(EMB)을 인코딩 하기 위해 제1 프레임(F1) 및 제3 프레임(F3)과 비교한다. 모션 추정부(110)는 x축 및 y축 모션 예측(Δx, Δy motion estimation)을 통해 피사체들이 우측 상부로 이동하였음을 예측할 수 있다. 동시에, 모션 추정부(110)는 z축 모션 추정(Δz motion estimation)을 통해 피사체가 축소되었음을 예측할 수 있다. 모션 추정부(110)는 x축 및 y축 모션(Δx, Δy)에 z축 모션(Δz)을 결합하여 평면 프레임 상의 x축, y축 및 z 축 모션(Δx, Δy, Δz)을 예측할 수 있다.
제2 프레임(F2)의 예측 대상 매크로 블록(EMB)에 포함된 피사체는 제1 프레임(F1)에서보다 감소하고, 좌측 하부로 이동한다. 그리고, 제2 프레임(F2)의 예측 대상 매크로 블록(EMB)에 포함된 피사체는 제3 프레임(F3)에서 더 감소하고, 좌측 하부로 이동한다. 제2 프레임(F2)의 예측 대상 매크로 블록(EMB)에 포함된 피사체를 제1 및 제3 프레임들(F1, F3)에서 검색하기 위해, 모션 추정부(110)는 x, y, z 모션(Δx, Δy, Δz)을 통해 제1 및 제3 프레임들(F1, F3) 각각에 모션 추정 시작 매크로 블록(SMB)을 설정한다.
모션 추정부(110)는 z축 모션(Δz)을 통해, 피사체가 제2 프레임(F2)보다 제1 프레임(F1)에서 상대적으로 큰 것을 예측한다. 따라서, 모션 추정부(110)는 제1 프레임(F1)의 제7 검색 영역(SR7)을 z축 모션(Δz)에 비례하여 확대시킬 수 있다.
그리고, 모션 추정부(110)는 z축 모션(Δz)을 통해, 피사체가 제2 프레임(F2)보다 제3 프레임(F3)에서 상대적으로 작은 크기인 것을 예측한다. 따라서, 모션 추정부(110)는 제3 프레임(F3)의 제8 검색 영역(SR8)을 z축 모션(Δz)에 비례하여 축소할 수 있다.
제7 검색 영역(SR7)은 제8 검색 영역(SR8)보다 큰 범위를 갖는다. 모션 추정부(110)는 제7 검색 영역(SR7) 및 제8 검색 영역(SR8) 각각에서 제2 프레임(F2)의 예측 대상 매크로 블록(EMB)에 포함된 피사체를 검색하여 모션 벡터를 구한다. 그리고, 모션 추정부(110)는 제7 검색 영역(SR7) 및 제8 검색 영역(SR8) 각각에서 구한 모션 벡터 중 정확도가 더 높은 모션 벡터를 이용하여 인코딩 동작을 수행한다.
도 8은 본 발명 실시 예에 따른 모션 추정 방법을 보여주는 순서도이다. 도 1 내지 도 8을 참조하면, S110 단계에서, 모션 추정부(110)는 모션 데이터를 수신한다. 모션 데이터는 비디오 프레임들(Fs)에 포함된 피사체들의 x축, y축 및 z축 이동에 대한 정보이다. 모션 추정부(110)는 모션 데이터(x, y, z)를 이용하여 x축, y축 및 z축 모션(Δx, Δy, Δz)을 예측한다. S120 단계에서, 모션 추정부(110)는 복수의 비디오 프레임들(Fs)을 수신한다.
S130 단계에서, 인코딩 대상인 현재 프레임의 매크로 블록의 예상 모션을 계산한다. 구체적으로, 모션 추정부(110)는 예측 대상 매크로 블록에 포함된 피사체의 참조 프레임으로부터 움직인 거리 및 방향을 예측한다. 모션 추정부(110)는 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체의 모션을 예측하기 위해, x축, y축 및 z축 모션(Δx, Δy, Δz)을 평면 프레임 상의 움직인 방향 및 거리로 계산한다.
S140 단계에서, 모션 추정부(110) 참조 프레임의 모션 추정 시작 매크로 블록을 설정한다. 구체적으로, 모션 추정부(110)는 평면 프레임 상의 움직인 방향 및 거리로 계산한 x축, y축 및 z축 모션(Δx, Δy, Δz) 정보를 이용하여 참조 프레임에서 모션 추정을 시작할 매크로 블록(SMB)을 설정한다.
S150 단계에서, 모션 추정부(110)는 참조 프레임의 검색 영역을 설정하여 모션을 추정한다. 구체적으로, 모션 추정부(110)는 참조 프레임에 설정된 모션 추정 시작 매크로 블록을 중심으로 검색 영역을 설정한다. 모션 추정부(110)는 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체와 동일한 영상 데이터를 검색 영역 내에서 추정한다. 모션 추정부(110)는 현재 프레임과 참조 프레임을 비교하여 모션 벡터를 생성할 수 있다.
S160 단계에서, 인코더(140)는 현재 프레임의 예측 대상 매크로 블록을 인코딩한다. S170 단계에서, 인코딩 회로(100)는 현재 프레임의 모든 매크로 블록들의 인코딩이 완료되었는지 판단한다. 현재 프레임의 모든 매크로 블록들의 인코딩이 완료되지 않으면, 인코딩되지 않은 매크로 블록은 S130 단계를 통해 인코딩 과정을 수행한다.
도 9는 본 발명의 제1 실시 예에 따른 검색 범위를 조절하는 방법을 보여주는 순서도이다. 도 1 내지 도 9를 참조하면, S210 단계에서 모션 추정부(110)는 모션 데이터를 통해 전방 모션을 감지한다. 구체적으로, 모션 추정부(110)는 z축 모션 데이터(z)를 수신하여 z축 모션(Δz)을 예측함으로써 전방 모션을 감지한다. 따라서, 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체가 참조 프레임에서보다 확대된다.
S220 단계에서, 모션 추정부(110)는 참조 프레임의 축소된 검색 영역을 설정한다. 모션 추정부(110)는 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체들의 크기가 참조 프레임보다 확대됨을 감지한다. 따라서, 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체는 참조 프레임에서 더 작은 크기일 것이다. 모션 추정부(110)는 z축 모션(Δz)을 통해 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체가 참조 프레임으로부터 확대된 정도를 감지하고, 이에 따라 검색 영역을 축소할 수 있다.
S230 단계에서, 모션 추정부(110)는 참조 프레임의 설정된 검색 영역을 기반으로 모션을 추정한다. 구체적으로, 모션 추정부(110)는 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체와 동일한 영상 데이터를 검색 영역 내에서 추정한다. 모션 추정부(110)는 현재 프레임과 참조 프레임을 비교하여 모션 벡터를 생성할 수 있다.
도 10은 본 발명의 제2 실시 예에 따른 검색 범위를 조절하는 방법을 보여주는 순서도이다. S310 단계에서 모션 추정부(110)는 모션 데이터를 통해 후방 모션을 감지한다. 구체적으로, 모션 추정부(110)는 모션 추정부(110)는 z축 모션 데이터(z)를 수신하여 z축 모션(Δz)을 예측함으로써 후방 모션을 감지한다. 따라서, 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체들이 참조 프레임에서보다 축소된다.
S320 단계에서, 모션 추정부(110)는 참조 프레임의 검색 영역을 확대하여 설정한다. 모션 추정부(110)는 현재 프레임에 포함된 피사체들의 크기가 참조 프레임보다 축소됨을 감지한다. 따라서, 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체는 참조 프레임에서 더 큰 크기일 것이다. 모션 추정부(110)는 z축 모션(Δz)을 통해 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체가 참조 프레임으로부터 축소된 정도를 감지하고, 이에 따라 검색 영역을 확대할 수 있다.
S330 단계에서, 모션 추정부(110)는 참조 프레임의 설정된 검색 영역을 기반으로 모션을 추정한다. 구체적으로, 모션 추정부(110)는 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체와 동일한 영상 데이터를 검색 영역 내에서 추정한다. 모션 추정부(110)는 현재 프레임과 참조 프레임을 비교하여 모션 벡터를 생성할 수 있다.
도 11은 본 발명의 실시 예에 따른 비디오 데이터 송수신 장치를 보여주는 블록도이다. 비디오 데이터 송수신 장치(1000)는 어플리케이션 프로세서(Application Processor)일 수 있다. 또는, 비디오 데이터 송수신 장치(1000)는 그래픽 처리 유닛(Graphic Processing Unit)일 수 있다. 예시적으로, 비디오 데이터 송수신 장치(1000)는 HEVC 표준에 따라 작동할 수 있다. 도 1 내지 도 11을 참조하면, 비디오 데이터 송수신 장치(1000)는 비디오 인코더(1100) 및 비디오 디코더(1200)를 포함할 수 있다.
비디오 인코더(1100)는 모션 데이터(x, y, z) 및 복수의 비디오 프레임들(Fs)을 수신한다. 비디오 인코더(1100)는 모션 데이터(x, y, z)를 기반으로 복수의 프레임들(Fs)을 인코딩한다. 비디오 인코더(1100)는 인코딩된 데이터(ENC_DATA)를 출력한다.
비디오 디코더(1200)는 인코딩된 데이터(ENC_DATA)를 수신한다. 비디오 디코더(1200)는 인코딩된 데이터(ENC_DATA)를 디코딩하여 복원된 데이터(RS_DATA)를 출력한다. 비디오 인코더(1100) 및 비디오 디코더(1200)는 도 12 및 도 13을 통해 더 자세히 설명된다.
도 12는 본 발명의 실시 예에 따른 비디오 데이터 송수신 장치의 비디오 인코더를 보여주는 블록도이다. 비디오 인코더(1100)는 도 1의 인코딩 회로(100)를 포함할 수 있다. 비디오 인코더(1100)는 감산기(1110), 가산기(1115), 인터 예측부(Inter Prediction Unit)(1120), 인트라 예측부(Intra Prediction Unit)(11330), 변환 및 양자화부(1140), 인코더(1150), 역 변환 및 역 양자화부(1160), 필터(Filter)(1170), 프레임 저장부(1180)를 포함할 수 있다.
감산기(1110)는 외부로부터 복수의 영상 프레임들(Fs)을 수신하다. 감산기(210)는 입력되는 영상 프레임들(Fs)의 매크로 블록들과 모션 보상부(1122)로부터 제공되는 예측 데이터의 매크로 블록들의 차를 계산하여 출력한다.
인터 예측부(1120)는 모션 추정부(1121) 및 모션 보상부(1122)를 포함한다. 모션 추정부(1121)는 자이로 센서(GS)로부터 모션 데이터(x, y, z)를 수신하다. 자이로 센서(GS)는 비디오 송수신 장치(1000)를 포함하는 비디오 촬영 기기(미 도시)의 모션 또는 사용자의 모션을 감지하고 그에 따른 모션 데이터(x, y, z)를 발생할 수 있다. 그리고 모션 추정부(1121)는 외부로부터 영상 프레임들(Fs)을 수신하다. 모션 추정부(1121)는 현재 프레임과 참조 프레임(예를 들어, 현재 프레임의 이전 프레임 또는 이후 프레임)을 비교하여 인터 예측(Inter-prediction)을 수행할 수 있다. 모션 추정부(1121)는 현재 프레임의 예측 대상 매크로 블록과 참조 프레임의 검출된 매크로 블록 사이의 위치 관계를 나타내는 모션 벡터(Motion Vector)를 생성할 수 있다.
구체적으로, 모션 추정부(1121)는 자이로 센서(GS)로부터 수신한 모션 데이터(x, y, z)를 이용하여 모션 벡터를 생성할 수 있다. 모션 추정부(1121)는 모션 데이터(x, y, z)를 이용하여 x, y, z축 모션(Δx, Δy, Δz)을 생성한다. 이를 통해 모션 추정부(1121)는 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체의 참조 프레임으로부터 이동한 x축, y축 및 z축 모션을 예측할 수 있다.
또한, 모션 추정부(1121)는 z축 모션(Δz)을 통해 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체의 확대 및 축소 여부를 예측할 수 있다. 모션 추정부(1121)는 z축 모션(Δz)을 통해, 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체를 참조 프레임으로부터 찾기 위한 검색 영역을 조절할 수 있다. 예시적으로, 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체가 참조 프레임의 이미지보다 확대된다면, 모션 추정부(1121)는 검색 영역을 축소할 수 있다. 또한, 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체가 참조 프레임의 이미지보다 축소되면, 모션 추정부(1121)는 검색 영역을 확대할 수 있다.
모션 추정부(1121) x축, y축 z축 모션(Δx, Δy, Δz)을 통해 현재 프레임의 예측 대상 매크로 블록에 포함된 피사체의 이전 프레임으로부터 종축 및 횡축 모션뿐만 아니라 확대 및 축소 여부를 예측할 수 있다.
모션 보상부(1122)는 인터 예측에 의해 검출된 예측 데이터를 모션 추정부(1121)으로부터 획득할 수 있다. 모션 보상부(1122)는 모션 벡터가 가리키는 참조 프레임의 매크로 블록을 로드하여 현재 프레임으로 출력할 수 있다.
인트라 예측부(1130)는 현재 프레임의 예측 대상 매크로 블록에 인접한 매크로 블록을 이용하여 예측 대상 매크로 블록에 대한 예측 데이터를 획득할 수 있다. 즉, 인트라 예측은 하나의 프레임에 포함되는 매크로 블록들에 기초하여 수행될 수 있다. 인트라 예측에 의해 획득된 예측 데이터 및 인터 예측에 의해 획득된 예측 데이터 중 하나가 선택적으로 가산기(1115)로 제공될 수 있다.
가산기(1115)는 역 변환 및 역 양자화부(1160)에 의해 복원된 데이터와 예측 데이터를 더할 수 있다. 이로써, 가산기(1115)는 원본 데이터에 대응하는 데이터를 출력할 수 있다.
변환 및 양자화부(1140)는 감산기(1110)로부터 데이터를 수신하여 주파수 영역의 변환 계수로 변환함으로써, 프레임 내의 상관성을 제거한다. 변환은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), 정수 변환(Integer Transform), 또는 이들과 유사한 변환일 수 있다. 변환 및 양자화부(1140)는 감산기(1110)로부터 수신한 데이터를 적응 양자화한다.
인코더(1150)는 변환 및 양자화부(1140)의 출력을 압축한다. 예시적으로, 인코더(260)는 산술 코딩, 차분 코딩, 후프만 코딩, 실행 길이 코딩, LZ 코딩, 또는 사전식 코딩을 이용할 수 있다. 인코더(1150)는 압축된 영상 데이터를 인코딩된 데이터(ENC_DATA)로 출력할 수 있다.
역 변환 및 역 양자화부(1160)는 변환 및 양자화부(1140)로부터 출력된 데이터를 처리할 수 있다. 역 변환 및 역 양자화부(1160)는 변환 및 양자화부(1140)로부터 출력된 데이터를 역 양자화 및 역 변환하여 출력한다.
필터(1170)는 복수의 매크로 블록들 사이의 경계에 포함된 노이즈를 제거하기 위한 디블로킹 필터(Deblocking Filter), 원본 영상의 프레임들(Fs)과 복원된 데이터의 프레임들 사이의 왜곡을 보상하기 위한 샘플 적응적 오프셋 필터(Sample Adaptive Offset Filter), HE(High Efficiency)모드에서 인코딩 중 발생한 정보 손실을 보상하기 위한 적응적 루프 필터(Adaptive Loop Filter)등을 포함할 수 있다.
프레임 저장부(1180)는 원본 영상의 참조 프레임 정보를 버퍼링할 수 있다. 프레임 저장부(1180)에 의해 버퍼링된 정보는 모션 추정부(1121)로 제공될 수 있다. 프레임 저장부(1180)에 의해 버퍼링된 정보는 인터 예측을 수행하기 위해 현재 프레임의 정보와 함께 이용될 수 있다.
도 12에 도시된 모션 추정부(1121), 모션 보상부(1122), 변환 및 양자화부(1140), 인코더(1150), 역 변환 및 역 양자화부(1160), 필터(1170) 및 프레임 저장부(1180)는 도 1에 도시된 모션 추정부(110), 모션 보상부(120), 변환 및 양자화부(130), 인코더(140), 역 변환 및 역 양자화부(150), 필터(160) 및 프레임 저장부(170)의 구성 및 기능을 포함할 수 있다.
도 13은 본 발명의 실시 예에 따른 비디오 인코더에 대응하는 비디오 디코더의 구성을 나타낸 블록도이다. 실시 예로서, 비디오 디코더(1200)는 HEVC 표준에 따라 작동할 수 있다. 비디오 디코더(1200)는 디코딩부(1210) 역변환 및 역 양자화 처리부(1220), 가산기(1230), 필터(1240), 프레임 저장부(1250) 인터 예측 유닛(1260), 모션 보상 유닛(1270)을 포함할 수 있다.
디코더(1210)는 인코딩된 비디오 데이터(ENC_DATA)를 제공받을 수 있다. 디코더(1210)는 인코딩된 비디오 데이터(ENC_DATA)를 디코딩할 수 있다. 역 변환 및 역 양자화 처리부(1220)는 디코더(1210)에 의해 디코딩된 데이터를 처리할 수 있다.
필터(1240) 및 프레임 저장부(1250)의 구성 및 기능 각각은 도 1의 필터(1185) 및 프레임 저장부(1190)의 구성 및 기능과 유사하다. 인트라 예측 유닛(1260) 및 모션 보상부(1270)의 구성 및 기능 각각은 도 14의 인트라 예측 유닛(1130) 및 모션 보상부(1122)의 구성 및 기능과 유사하다. 필터(1240), 프레임 저장부(1250), 인트라 예측 유닛(1260) 및 모션 보상부(1270)의 구성 및 기능에 관한 자세한 설명은 생략된다.
필터(1240)는 복원된 데이터(RS_DAT)를 출력할 수 있다. 복원된 데이터(RS_DAT)에 기초하여 영상이 표시될 수 있다. 비디오 송수신 장치(1000)는 복원된 데이터(RS_DAT), 제어 신호 등을 표시 장치로 제공할 수 있다. 이로써, 사용자는 표시된 영상을 볼 수 있다.
도 14는 본 발명의 실시 예에 따른 비디오 코덱을 포함하는 휴대용 장치가 가질 수 있는 구성을 나타낸 블록도이다. 휴대용 장치(2000)는 이동식 단말기, PDA(Portable Personal Assistant), PMP(Personal Media Player), 스마트폰, 태블릿 컴퓨터 등 중 하나일 수 있다. 휴대용 장치(2000)는 영상 처리부(2100), 무선 통신부(2200), 오디오 처리부(2300), 불휘발성 메모리(2400), SDRAM(Synchronous Dynamic Random Access Memory; 2500), 유저 인터페이스(2600), 및 메인 프로세서(2700)를 포함할 수 있다.
영상 처리부(2100)는 렌즈(2110)를 통해 빛을 제공받을 수 있다. 영상 처리부(2100)에 포함되는 이미지 센서(2120) 및 영상 신호 처리기(2130)는 제공받은 빛을 이용하여 영상을 생성할 수 있다. 생성된 영상은 디스플레이 제어기(2140)의 제어에 따라 디스플레이 유닛(2150)에 표시될 수 있다. 실시 예로서, 디스플레이 유닛(2150)은 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diode) 디스플레이, AMOLED(Active Matrix OLED) 디스플레이, LED 등 중 하나일 수 있다.
무선 통신부(2200)는 안테나(11210), 송수신기(2220), 및 모뎀(2230)을 포함할 수 있다. 무선 통신부(2200)는 LTE(Long Term Evolution), WiMax, GSM(Global System for Mobile communication), CDMA(Code Division Multiple Access), Bluetooth, NFC(Near Field Communication), WiFi, RFID(Radio Frequency Identification) 등의 다양한 무선 통신 규약에 따라 휴대용 장치(2000)의 외부와 통신할 수 있다.
오디오 처리부(2300)는 오디오 신호 처리기(2310), 마이크(2320), 및 스피커(2330)를 이용하여 오디오 신호를 처리할 수 있다. 불휘발성 메모리(2400)는 보존을 필요로 하는 데이터를 저장할 수 있다. 실시 예로서, 불휘발성 메모리(2400)는 낸드 플래시 메모리(NAND-type Flash Memory), PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM), 노어 플래시 메모리(NOR-type Flash Memory) 등일 수 있다. 또는, 불휘발성 메모리(2400)는 이종의 메모리를 동시에 포함할 수 있다. SDRAM(2500)은 휴대용 장치(2000)의 작동에 이용되는 데이터를 임시로 저장할 수 있다. SDRAM(2500)은 휴대용 장치(2000)의 연산 메모리, 버퍼 메모리 등으로 이용될 수 있다.
유저 인터페이스(2600)는 메인 프로세서(2700)의 제어에 따라 사용자와 휴대용 장치(2000) 사이의 통신을 중계할 수 있다. 예로서, 유저 인터페이스(2700)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서 등의 입력 인터페이스를 포함할 수 있다. 나아가, 유저 인터페이스(2700)는 표시 장치, 모터 등의 출력 인터페이스를 포함할 수 있다.
메인 프로세서(2700)는 휴대용 장치(2000)의 전반적인 작동을 제어할 수 있다. 영상 처리부(2100), 무선 통신부(2200), 오디오 처리부(2300), 불휘발성 메모리(2400), 및 SDRAM(2500)은 메인 프로세서(2700)의 제어에 따라 유저 인터페이스(2600)를 통해 제공되는 사용자 명령을 수행할 수 있다. 또는, 영상 처리부(2100), 무선 통신부(2200), 오디오 처리부(2300), 불휘발성 메모리(2400), 및 SDRAM(2500)은 메인 프로세서(2700)의 제어에 따라 유저 인터페이스(2600)를 통해 사용자에게 정보를 제공할 수 있다.
메인 프로세서(2700)는 SoC(System on Chip)로 구현될 수 있다. 실시 예로서, 메인 프로세서(2700)는 어플리케이션 프로세서일 수 있다. 메인 프로세서(2700)는 비디오 정보를 인코딩 또는 디코딩하기 위한 비디오 코덱(2710)을 포함할 수 있다. 비디오 코덱(2710)은 하드웨어 형태, 소프트웨어 형태, 또는 하이브리드 형태로 구현될 수 있다.
이 실시 예에서, 메인 프로세서(2700) 및 비디오 코덱(2710)은 도 1 내지 도 11에 대한 설명에서 언급된 본 발명의 기술 사상에 기초하여 구현될 수 있다. 특히, 메인 프로세서(2700)는 휴대용 장치(2000)의 모션에 따라 x, y, z 모션(Δx, Δy, Δz) 예측을 통해, 프레임에 포함된 복수의 매크로 블록들을 인코딩할 수 있다. 도 13의 휴대용 장치(2000)에 따르면, 본 발명의 기술 사상은 메인 프로세서(2700)에 의해 실시될 수 있다.
도 15는 본 발명의 실시 예에 따른 비디오 코덱을 포함하는 컴퓨팅 장치가 가질 수 있는 구성을 나타낸 블록도이다. 컴퓨팅 장치(3000)는 중앙 처리 유닛(3100), 메모리(3120), 그래픽 처리 유닛(3210), 유저 인터페이스(3220), 통신 유닛(3230), 저장부(3240), 및 버스(3300)를 포함할 수 있다.
중앙 처리 유닛(3100)은 컴퓨팅 시스템(3000)의 전반적인 작동을 제어할 수 있다. 중앙 처리 유닛(3100)은 각종 연산을 수행할 수 있다. 실시 예로서, 중앙 처리 유닛(3100)은 일반적인 컴퓨터 또는 워크스테이션에서 사용되는 범용 프로세서일 수 있다.
메모리(3120)는 컴퓨팅 장치(3000)의 작동에 이용되는 데이터를 임시로 저장할 수 있다. 메모리(3120)는 중앙 처리 유닛(3100)과 데이터를 교환할 수 있다. 메모리(3120)는 컴퓨팅 장치(3000)의 메인 메모리, 연산 메모리, 버퍼 메모리 등으로 이용될 수 있다. 실시 예로서, 메모리(3120)는 SRAM(Static RAM), DRAM, SDRAM 등과 같은 휘발성 메모리, 또는 플래시 메모리, PRAM, MRAM, ReRAM, 및 FRAM과 같은 불휘발성 메모리를 포함할 수 있다. 메모리(3120)는 하나 이상의 메모리 모듈 또는 하나 이상의 메모리 패키지를 포함할 수 있다.
그래픽 처리 유닛(3210)은 영상 처리에 관련된 전반적인 연산을 수행할 수 있다. 그래픽 처리 유닛(3210)은 비디오 정보를 인코딩 또는 디코딩하기 위한 비디오 코덱(3215)을 포함할 수 있다. 비디오 코덱(3215)은 하드웨어 형태, 소프트웨어 형태, 또는 하이브리드 형태로 구현될 수 있다. 그래픽 처리 유닛(3210) 및 비디오 코덱(3215)은 도 1 내지 도 11에 대한 설명에서 언급된 본 발명의 기술 사상에 기초하여 구현될 수 있다. 특히, 그래픽 처리 유닛(3210)은 수신된 x, y, z 모션(Δx, Δy, Δz) 예측을 통해, 프레임에 포함된 복수의 매크로 블록들을 인코딩할 수 있다. 도 12의 휴대용 장치(2000)와 달리, 도 12의 컴퓨팅 장치(3000)에 따르면, 본 발명의 기술 사상은 중앙 처리 유닛(3100)과 별개로 구성된 그래픽 처리 유닛(3210)에 의해 실시될 수 있다.
유저 인터페이스(3220)는 중앙 처리 유닛(3100)의 제어에 따라 사용자와 컴퓨팅 장치(3000) 사이의 통신을 중계할 수 있다. 실시 예로서, 유저 인터페이스(3220)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서 등의 입력 인터페이스를 포함할 수 있다. 나아가, 유저 인터페이스(3220)는 LCD, OLED 표시 장치, AMOLED 표시 장치, LED, 스피커, 모터 등의 출력 인터페이스를 포함할 수 있다.
통신 유닛(3230)은 중앙 처리 유닛(3100)의 제어에 따라 컴퓨팅 장치(3000)의 외부와 통신할 수 있다. 통신 유닛(3230)은 유선 또는 무선 통신 규약에 따라 컴퓨팅 장치(3000)의 외부와 통신할 수 있다. 예로서, 통신 유닛(3230)은 LTE, WiMax, GSM, CDMA, Bluetooth, NFC, WiFi, RFID 등의 다양한 무선 통신 규약, 또는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI(Peripheral Component Interconnect) Express, ATA(Advanced Technology Attachment), PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI), IDE(Integrated Drive Electronics), Firewire 등의 다양한 유선 통신 규약 중 적어도 하나에 따라 컴퓨팅 장치(3000)의 외부와 통신할 수 있다.
저장부(3240)는 보존을 필요로 하는 데이터를 저장할 수 있다. 실시 예로서, 저장부(3240)는 플래시 메모리, PRAM, MRAM, ReRAM, 및 FRAM과 같은 불휘발성 메모리를 포함할 수 있다. 실시 예로서, 저장부(3240)는 SSD(Solid State Drive)와 같은 스토리지 장치, eMMC(Embedded Multimedia Card)와 같은 메모리 카드, 및 메모리 스틱 중 적어도 하나를 포함할 수 있다.
버스(3300)는 컴퓨팅 장치(3000)의 구성 요소들 사이의 통신 경로를 제공할 수 있다. 컴퓨팅 장치(3000)의 구성 요소들은 버스 포맷에 따라 서로 데이터를 주고 받을 수 있다. 실시 예로서, 버스 포맷은 USB, SCSI, PCIe, ATA, PATA, SATA, SAS, IDE 등을 포함할 수 있다.
본 발명의 실시 예에 따른 프로세서들, 메모리들 및 회로들은 다양한 형태의 반도체 패키지를 이용하여 실장될 수 있다. 예컨대, 본 발명의 실시 예에 따른 비디오 인코딩 회로 및 연산 처리 장치는 PoP(Package on Package), BGAs(Ball Grid Arrays), CSPs(Chip Scale Packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-line Package), Die in Waffle Pack, Die in Wafer Form, COB(Chip On Board), CERDIP(Ceramic Dual In-line Package), MQFP(Metric Quad Flat Pack), TQFP(Thin Quad Flat Pack), SOIC(Small Outline Integrated Circuit), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline Package), SIP(System In Package), MCP(Multi Chip Package), WFP(Wafer-level Fabricated Package), WSP(Wafer-Level Processed Stack Package) 등의 패키지를 이용하여 실장될 수 있다.
각각의 개념도에 나타낸 구성은 단지 개념적인 관점에서 이해되어야 한다. 본 발명의 이해를 돕기 위해, 개념도에 나타낸 구성 요소 각각의 형태, 구조, 크기 등은 과장 또는 축소되어 표현되었다. 실제로 구현되는 구성은 각각의 개념도에 나타낸 것과 다른 물리적 형상을 가질 수 있다. 각각의 개념도는 구성 요소의 물리적 형상을 제한하기 위한 것이 아니다.
각각의 블록도에 나타낸 장치 구성은 발명의 이해를 돕기 위한 것이다. 각각의 블록은 기능에 따라 더 작은 단위의 블록들로 형성될 수 있다. 또는, 복수의 블록들은 기능에 따라 더 큰 단위의 블록을 형성할 수 있다. 즉, 본 발명의 기술 사상은 블록도에 도시된 구성에 의해 한정되지 않는다.
이상에서 본 발명에 대한 실시 예를 중심으로 본 발명이 설명되었다. 다만, 본 발명이 속하는 기술 분야의 특성상, 본 발명이 이루고자 하는 목적은 본 발명의 요지를 포함하면서도 위 실시 예들과 다른 형태로 달성될 수 있다. 따라서, 위 실시 예들은 한정적인 것이 아니라 설명적인 측면에서 이해되어야 한다. 즉, 본 발명의 요지를 포함하면서 본 발명과 같은 목적을 달성할 수 있는 기술 사상은 본 발명의 기술 사상에 포함되는 것으로 해석되어야 한다.
따라서, 본 발명의 본질적인 특성을 벗어나지 않는 범위 내에서 수정 또는 변형된 기술 사상은 본 발명이 청구하는 보호 범위에 포함되는 것이다. 또한, 본 발명의 보호 범위는 위 실시 예들로 한정되는 것이 아니다.
100: 인코딩 회로 1000: 비디오 송수신 장치
110: 모션 추정부 1100: 비디오 인코더
120: 모션 보상부 1200: 비디오 디코더
130: 변환 및 양자화부 2000: 휴대용 장치
130: 변환 및 양자화부 3000: 컴퓨팅 장치
140: 인코더
150: 역 변환 및 역 양자화부
160: 필터
170: 프레임 저장부

Claims (10)

  1. 복수의 프레임들 및 x축, y축 및 z축 모션 데이터를 수신하고, 상기 복수의 프레임들은 인코딩 대상 프레임에 대한 참조 프레임인 제1 프레임 및 상기 인코딩 대상 프레임인 제2 프레임을 포함하고, 상기 제1 프레임의 매크로 블록 및 상기 제2 프레임의 예측 대상 매크로 블록 사이의 위치 관계를 가리키는 모션 벡터를 생성하는 모션 추정부;
    상기 모션 벡터에 따른 상기 제2 프레임의 예측 대상 매크로 블록의 모션을 보상하는 모션 보상부;
    상기 모션이 보상된 상기 제2 프레임의 예측 대상 매크로 블록을 변환 및 양자화한 데이터를 출력하는 변환 및 양자화부; 및
    상기 변환 및 양자화한 데이터를 인코딩하고, 상기 인코딩한 데이터를 출력하는 인코더를 포함하되,
    상기 모션 추정부는 상기 x축, y축 및 z축 모션 데이터를 통해 x축, y축 및 z축 모션을 예측하고, 상기 z축 모션을 통해 상기 제1 프레임과 비교하여 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체의 확대 또는 축소를 예측하고, 상기 확대 및 축소의 예측을 통해 상기 제1 프레임의 검색 영역을 조절하는 인코딩 회로.
  2. 제 1 항에 있어서,
    상기 모션 추정부는, 상기 x축, y축 및 z축 모션을 통해 상기 제1 프레임의 검색 시작 매크로 블록을 설정하고, 상기 검색 시작 매크로 블록을 중심으로 상기 검색 영역을 조절하는 인코딩 회로.
  3. 제 2 항에 있어서,
    상기 모션 추정부는, 상기 z축 모션을 통해 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체의 확대가 예측되면, 상기 제1 프레임의 검색 영역을 축소하여 설정하는 인코딩 회로.
  4. 제 2 항에 있어서,
    상기 모션 추정부는, 상기 z축 모션을 통해 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체의 축소가 예측되면, 상기 제1 프레임의 검색 영역을 확대하여 설정하는 인코딩 회로.
  5. 제 1 항에 있어서,
    상기 변환 및 양자화한 데이터를 역 변환 및 역 양자화하는 역 변환 및 역 양자화부;
    상기 역 변환 및 역 양자화한 데이터를 필터링하는 필터; 및
    상기 필터링한 데이터를 후속하여 발생하는 모션 추정에 사용하기 위해 저장하는 프레임 저장부를 더 포함하는 인코딩 회로.
  6. 인코딩 회로의 인코딩 방법에 있어서,
    x축, y축 및 z축 모션 데이터를 수신하여 x축, y축 및 z축 모션을 계산하는 단계;
    인코딩 대상 프레임의 참조 프레임인 제1 프레임 및 상기 인코딩 대상 프레임인 제2 프레임을 포함하는 복수의 비디오 프레임들을 수신하는 단계;
    상기 x축, y축 및 z축 모션을 기반으로 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체가 상기 제 1 프레임으로부터 움직인 거리 및 방향을 계산하는 단계;
    상기 제2 프레임의 예측 대상 매크로 블록에 포함된 상기 피사체를 검색하기 위해 상기 제1 프레임의 검색 시작 매크로 블록을 설정하는 단계;
    상기 z축 모션을 이용하여 상기 제1 프레임의 검색 영역을 조절하여 모션 추정하는 단계;
    상기 모션 추정을 통해 모션 벡터를 구하고, 상기 모션 벡터를 이용하여 상기 제2 프레임의 예측 대상 매크로 블록을 인코딩하는 단계; 및
    상기 제2 프레임의 모든 매크로 블록들의 인코딩 완료 여부를 판별하는 단계를 포함하는 인코딩 방법.
  7. 제 6 항에 있어서,
    상기 제2 프레임의 모든 매크로 블록들의 인코딩이 완료되지 않으면, 상기 x축, y축 및 z축 모션을 기반으로 상기 제2 프레임의 상기 완료되지 않은 매크로 블록들 중 예측 대상 매크로 블록에 포함된 피사체가 상기 제 1 프레임으로부터 움직인 거리 및 방향을 계산하는 단계를 수행하는 인코딩 방법.
  8. 제 6 항에 있어서,
    상기 z축 모션을 통해 상기 제1 프레임의 검색 영역을 조절하는 단계는,
    상기 z축 모션을 통해 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체가 상기 제1 프레임에서보다 확대를 감지하는 단계; 및
    상기 제1 프레임의 상기 검색 영역을 상기 z 축 모션을 통해 감지된 거리에 비례하여 감소하는 단계를 더 포함하는 인코딩 방법.
  9. 제 6 항에 있어서,
    상기 z축 모션은 통해 상기 제1 프레임의 검색 영역을 조절하는 단계는,
    상기 z 축 모션을 통해 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체가 상기 제1 프레임에서보다 축소를 감지하는 단계; 및
    상기 제1 프레임의 상기 검색 영역을 상기 z축 모션을 통해 감지된 거리에 비례하게 확대하는 단계를 더 포함하는 인코딩 방법.
  10. 비디오 인코더를 포함하는 비디오 데이터 송수신 장치에 있어서,
    상기 비디오 인코더는:
    인코딩 대상 프레임의 참조 프레임인 제1 프레임 및 상기 인코딩 대상 프레임인 제2 프레임을 포함하는 복수의 프레임들 및 x축, y축 및 z축 모션 데이터를 수신하여 x축, y축 및 z축 모션을 예측하고, 상기 z축 모션을 통해 상기 제1 프레임과 비교하여 상기 제2 프레임의 예측 대상 매크로 블록에 포함된 피사체의 확대 또는 축소를 예측하고, 상기 확대 및 축소의 예측을 통해 상기 제1 프레임의 검색 영역을 조절함으로써, 상기 제1 프레임의 매크로 블록 및 상기 제2 프레임의 예측 대상 매크로 블록 사이의 위치 관계를 가리키는 모션 벡터 정보를 생성하는 모션 추정부;
    상기 모션 벡터에 따른 상기 제2 프레임의 예측 대상 매크로 블록의 모션을 보상하는 모션 보상부;
    상기 모션이 보상된 상기 제2 프레임의 예측 대상 매크로 블록을 변환 및 양자화한 데이터를 출력하는 변환 및 양자화부; 및
    상기 변환 및 양자화된 데이터를 인코딩하고, 상기 인코딩한 데이터를 출력하는 인코더를 포함하는 비디오 데이터 송수신 장치.
KR1020140167307A 2014-11-27 2014-11-27 비디오 프레임 인코딩 회로, 그것의 인코딩 방법 및 그것을 포함하는 비디오 데이터 송수신 장치 KR102264840B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140167307A KR102264840B1 (ko) 2014-11-27 2014-11-27 비디오 프레임 인코딩 회로, 그것의 인코딩 방법 및 그것을 포함하는 비디오 데이터 송수신 장치
US14/938,248 US10091527B2 (en) 2014-11-27 2015-11-11 Video frame encoding system, encoding method and video data transceiver including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140167307A KR102264840B1 (ko) 2014-11-27 2014-11-27 비디오 프레임 인코딩 회로, 그것의 인코딩 방법 및 그것을 포함하는 비디오 데이터 송수신 장치

Publications (2)

Publication Number Publication Date
KR20160064299A true KR20160064299A (ko) 2016-06-08
KR102264840B1 KR102264840B1 (ko) 2021-06-15

Family

ID=56080017

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140167307A KR102264840B1 (ko) 2014-11-27 2014-11-27 비디오 프레임 인코딩 회로, 그것의 인코딩 방법 및 그것을 포함하는 비디오 데이터 송수신 장치

Country Status (2)

Country Link
US (1) US10091527B2 (ko)
KR (1) KR102264840B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102347598B1 (ko) * 2017-10-16 2022-01-05 삼성전자주식회사 영상 부호화 장치 및 인코더

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08140087A (ja) * 1994-11-08 1996-05-31 Sony Corp 動き検出方法及びその装置並びにカメラ一体型記録装置
KR20060123499A (ko) * 2003-12-22 2006-12-01 캐논 가부시끼가이샤 동화상 부호화 장치 및 그 장치의 제어 방법 및 프로그램

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4240674B2 (ja) 1999-09-13 2009-03-18 ソニー株式会社 動き検出装置および動き検出方法、並びに記録媒体
EP1891809B1 (en) 2005-05-31 2016-11-23 Entropic Communications, Inc. Calculating transformation parameters for image processing
KR20070053402A (ko) 2005-11-21 2007-05-25 주식회사 대우일렉트로닉스 영상 압축 시스템의 움직임 보상 방법
KR100767503B1 (ko) 2006-06-13 2007-10-17 주식회사 팬택앤큐리텔 3차원 피팅을 이용한 움직임 벡터 보상 시스템 및 방법
KR20080022843A (ko) 2006-09-08 2008-03-12 엘지전자 주식회사 움직임 벡터를 이용한 탐색 영역 조절 방법
JP2008139599A (ja) 2006-12-01 2008-06-19 Toshiba Corp 小型端末装置
KR100837819B1 (ko) 2006-12-28 2008-06-13 주식회사 케이티 관성 센서와 카메라를 이용한 전자기기 제어장치 및 그방법
JP2009260941A (ja) * 2008-03-21 2009-11-05 Nippon Telegr & Teleph Corp <Ntt> 映像品質客観評価方法、映像品質客観評価装置、及びプログラム
KR101493325B1 (ko) 2008-09-03 2015-02-16 삼성전자주식회사 정밀 움직임 예측을 기반으로 한 프레임 보간 장치 및 그 방법
US20100079605A1 (en) 2008-09-29 2010-04-01 William Marsh Rice University Sensor-Assisted Motion Estimation for Efficient Video Encoding
EP2557792A4 (en) * 2010-04-09 2014-08-13 Mitsubishi Electric Corp VIDEO CODING DEVICE AND VIDEO CODING DEVICE
KR101242560B1 (ko) 2011-03-30 2013-03-19 한양대학교 산학협력단 탐색 영역 조정 장치 및 방법
US8934544B1 (en) * 2011-10-17 2015-01-13 Google Inc. Efficient motion estimation in hierarchical structure
WO2014068779A1 (ja) * 2012-11-05 2014-05-08 株式会社モルフォ 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08140087A (ja) * 1994-11-08 1996-05-31 Sony Corp 動き検出方法及びその装置並びにカメラ一体型記録装置
KR20060123499A (ko) * 2003-12-22 2006-12-01 캐논 가부시끼가이샤 동화상 부호화 장치 및 그 장치의 제어 방법 및 프로그램

Also Published As

Publication number Publication date
US20160156925A1 (en) 2016-06-02
US10091527B2 (en) 2018-10-02
KR102264840B1 (ko) 2021-06-15

Similar Documents

Publication Publication Date Title
US10051273B2 (en) Video decoder and video decoding method
US11070807B2 (en) Data encoding apparatus and data encoding method
JP5911517B2 (ja) 低メモリアクセス動きベクトル導出
CN109155856B (zh) 用于视频编解码的利用近邻块模式的运动估计的方法和系统
KR102257379B1 (ko) 비디오 인코딩 회로 및 그것을 이용하는 비디오 인코딩 방법
KR102264840B1 (ko) 비디오 프레임 인코딩 회로, 그것의 인코딩 방법 및 그것을 포함하는 비디오 데이터 송수신 장치
CN107431821B (zh) 高效低复杂度视频压缩
KR20220052991A (ko) 스위칭가능한 보간 필터들

Legal Events

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