KR100718135B1 - 멀티 포맷 코덱을 위한 영상 예측 장치 및 방법과 이를이용한 영상 부호화/복호화 장치 및 방법 - Google Patents

멀티 포맷 코덱을 위한 영상 예측 장치 및 방법과 이를이용한 영상 부호화/복호화 장치 및 방법 Download PDF

Info

Publication number
KR100718135B1
KR100718135B1 KR20050078034A KR20050078034A KR100718135B1 KR 100718135 B1 KR100718135 B1 KR 100718135B1 KR 20050078034 A KR20050078034 A KR 20050078034A KR 20050078034 A KR20050078034 A KR 20050078034A KR 100718135 B1 KR100718135 B1 KR 100718135B1
Authority
KR
South Korea
Prior art keywords
interpolation
block
information
pixel value
motion vector
Prior art date
Application number
KR20050078034A
Other languages
English (en)
Other versions
KR20070023449A (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 KR20050078034A priority Critical patent/KR100718135B1/ko
Priority to US11/417,141 priority patent/US20070047651A1/en
Priority to EP20060253497 priority patent/EP1758401A2/en
Priority to JP2006227521A priority patent/JP2007060673A/ja
Publication of KR20070023449A publication Critical patent/KR20070023449A/ko
Application granted granted Critical
Publication of KR100718135B1 publication Critical patent/KR100718135B1/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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • 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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • 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/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

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

Abstract

멀티 포맷 코덱을 위한 영상 예측 장치 및 방법과 이를 이용한 영상 부호화/복호화 장치 및 방법이 개시된다. 이 영상 예측 장치는 복수 개의 영상 압축 포맷 각각에 따라 움직임 벡터 및 참조 프레임을 기반으로 예측 블록을 생성하는 예측 장치에 있어서, 현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 보간 전처리부; 및 상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 공용 보간부를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 다양한 영상 압축 알고리듬 즉, 멀티 포맷 코덱을 위한 부호화/복호화기의 구현에 있어서, 각 영상 압축 포맷에 공통으로 사용되는 보간 방법을 적용함으로써, 상기 멀티 포맷 코덱을 위한 부호화/복호화기의 구현에 소요되는 기간 및 비용을 최소화 할 수 있다.

Description

멀티 포맷 코덱을 위한 영상 예측 장치 및 방법과 이를 이용한 영상 부호화/복호화 장치 및 방법{apparatus and method for video prediction for multi-formet codec and the video encoding/decoding apparatus and method thereof.}
도 1a 내지 도 1d는 WMV9, MPEG-2, H.264(Luma), H.264(Chroma)의 보간 기법을 설명하기 위해 8X8 정수 블록의 일부를 나타내는 개념도이다.
도 2는 본 발명의 일실시예에 따른 멀티 포맷 코덱을 위한 영상 예측 예측 장치의 구성을 나타내는 블록도이다.
도 3은 WMV9-Bilinear, WMV9-Bicubic, MPEG-4, H.264-Luma, H.264-Chroma에 적용할 수 있는 멀티 포맷 코덱을 위한 영상 예측 장치의 구성을 도시한 블록도이다.
도 4a 내지 도 4e는 H.264(Luma), H.264(Chroma), WMV9(bilinear), WMV9(bicubic), MPEG-4에 있어서, 보간 정보를 얻기 위한 테이블이다.
도 5는 보간 모드 정보에 따른 각 보간 유닛의 보간 동작 여부를 결정하는 흐름도이다.
도 6은 본 발명의 일실시예에 따른 상기 양방향 선형 보간부의 구성을 나타내는 블록도이다.
도 7은 본 발명의 일실시예에 따른 멀티 포맷 코덱을 위한 영상 예측 장치 및 방법의 동작을 나타내는 흐름도이다.
도 8은 각 보간부에서 사용되는 idirection의 의미를 나타내는 테이블이다.
도 9는 본 발명의 일실시예에 따른 멀티 포맷 코덱을 위한 영상 부호화 장치의 구성을 나타내는 블록도이다.
도 10은 본 발명의 일실시예에 따른 멀티 포맷 코덱을 위한 영상 부호화 장치 및 방법의 동작을 나타내는 흐름도이다.
도 11은 본 발명의 일실시예에 따른 멀티 포맷 코덱을 위한 영상 복호화 장치의 구성을 나타내는 블록도이다.
도 12는 본 발명의 일실시예에 따른 멀티 포맷 코덱을 위한 영상 복호화 장치 및 방법의 동작을 나타내는 흐름도이다.
본 발명은 영상 예측 장치 및 방법에 관한 것으로, 특히, 멀티 포맷 코덱을 구현하기 위해 각 영상 압축 포맷에 공통으로 사용되는 보간 방법을 적용하여 멀티포맷 코덱을 구현하기 위한 영상 예측 장치 및 방법과 이를 이용한 영상 부호화/복호화 장치 및 방법에 관한 것이다.
영상 압축 알고리듬 즉, 영상 압축 포맷은 WMV9, MPEG-4, H.264 등 다양하며, 그에 따라 세부적인 부호화/복호화 알고리듬이 달라진다. 이러한 영상 압축 포맷에 따른 복호화 알고리듬은 수신된 비트스트림으로부터 움직임 벡터를 추출하고, 이전에 복원된 프레임인 참조프레임과 상기 추출된 움직임 벡터를 이용하여 현재의 예측 프레임을 생성하고, 상기 생성된 예측 프레임과 상기 비트스트림에 포함된 레지듀얼 데이터를 이용하여 현재 프레임을 복원하는 방법이 일반적이다.
한편, 상기와 같은 영상 복호화 과정에 있어서, 예측 프레임을 생성하는 과정 즉, 예측 과정(prediction)이 차지하는 비율이 30%로서 매우 높다. 여기서, 예측 과정 중 보간(interpolation) 과정이 차지하는 비율은 대략 80%이다. 더군다나, 현재 요구되는 멀티 코덱 복호화기 즉, 상기 WMV9, MPEG-4, H.264 등을 모두 지원하는 복호화기에 있어서, 상기 각각의 영상 압축 포맷에 따른 별도의 예측 과정을 수행하는 방법을 개발하는 것은 이를 위한 기간 및 코스트가 증가되는 문제점이 있다. 따라서, 모든 동영상 압축 포맷에 공통된 보간 기법을 개발하여 개발기간 단축 및 전체 코스트를 개선할 필요성이 있는 것이다.
본 발명이 이루고자 하는 기술적 과제는, 멀티 포맷 코덱을 위한 부호화/복호화기의 구현에 있어서, 각 영상 압축 포맷에 공통으로 사용되는 보간 방법을 적용함으로써, 상기 멀티 포맷 코덱을 위한 부호화/복호화기의 구현에 요구되는 기간 및 비용을 최소화 할 수 있는 멀티 포맷 코덱을 위한 영상 예측 장치 및 방법을 제공하는데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 멀티 포맷 코덱을 위한 부호화/복호화기의 구현에 있어서, 각 영상 압축 포맷에 공통으로 사용되는 보간 방법을 적용함으로써, 상기 멀티 포맷 코덱을 위한 부호화/복호화기의 구현에 요구되는 기간 및 비용을 최소화 할 수 있는 멀티 포맷 코덱용 예측 장치를 이용한 부호화/복호화 장치 및 방법을 제공하는데 있다.
상기의 기술적 과제를 이루기 위한, 본 발명에 의한 멀티 포맷 코덱을 위한 영상 예측 장치는 복수 개의 영상 압축 포맷 각각에 따라 움직임 벡터 및 참조 프레임을 기반으로 예측 블록을 생성하는 예측 장치에 있어서, 현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 보간 전처리부; 및 상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 공용 보간부를 포함하는 것을 특징으로 한다.
바람직하게, 상기 보간 전처리부는, 상기 움직임 벡터의 정수 부분 및 소수 부분을 이용하여 상기 소정 크기의 블록을 추출하고, 상기 움직임 벡터의 소수 부분을 이용하여 상기 보간 정보를 생성한다.
바람직하게, 상기 보간 정보는, 상기 각각의 보간 방향에 대한 보간이 수행될 것인지 여부를 나타내는 보간 모드 정보; 및 상기 각각의 보간 방향에 따른 보간 연산 수행시, 필요한 연산 파라미터 정보를 포함하고, 상기 공용 보간부는, 상기 보간 모드 정보를 이용하여 보간되는 보간 방향을 결정하고, 상기 결정된 각각의 보간 방향에 대해, 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 복수 개 취하고, 상기 취해진 각각의 픽셀값을 상기 연산 파라미터 정보에 따른 보간 연산을 수행하여 상기 예측 블록에 포함된 픽셀 값을 산출한다.
바람직하게, 상기 보간 정보는 상기 각각의 보간 방향의 보간에 사용되는 픽셀의 상대적 위치 정보를 포함하고, 상기 공용 보간부는 상기 상대적 위치 정보를 이용하여 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 복수 개 취한다.
바람직하게, 상기 연산 파라미터 정보는, 각각의 보간 방향의 보간 사용되는 각 픽셀에 부여하는 가중치를 포함하는 가중치 벡터, 상기 가중치를 이용한 가중합 연산시 필요한 반올림 정보 및 쉬프트량 정보 중 적어도 하나를 포함하며, 상기 공용 보간부는, 상기 결정된 각각의 보간 방향에 대해, 상기 취해진 각각의 픽셀값에 상기 가중치를 부여하여 가중합 연산을 수행하고, 상기 반올림 정보 및 상기 쉬프트량 정보를 이용하여 상기 가중합 연산 결과를 반올림하여 정수 쉬프트 연산을 수행한다.
바람직하게, 상기 공용 보간부는, 상기 정수 쉬프트 연산을 수행한 결과 데이터 값이 소정 범위를 벗어나는 경우 소정 값으로 대체시키는 클리핑 연산을 수행하여, 클리핑된 데이터를 출력한다.
바람직하게, 상기 공용 보간부는, 상기 보간 모드 정보에 따라, 상기 추출된 블록의 픽셀 값을 바이패스시켜 출력하거나, 상기 추출된 블록의 픽셀 값을 이용하여 수직방향의 보간을 수행하는 보간된 픽셀 값을 출력하는 제1 수직 보간부; 및 상기 보간 모드 정보에 따라, 상기 제1 수직 보간부의 출력을 바이패스시켜 출력하거나, 상기 제1 수직 보간부의 출력을 이용하여 수평방향의 보간을 수행하는 수평 보간부를 포함하고, 상기 제1 수직 보간부 및 상기 수평 보간부는 상기 각각의 연산 파라미터 정보에 따라 보간 연산이 수행된다.
바람직하게, 상기 공용 보간부는, 상기 보간 모드 정보에 따라, 상기 수평 보간부의 출력을 바이패스시켜 출력하거나, 상기 추출된 블록의 픽셀 값 또는 상기 수평 보간부의 출력을 이용하여 수직 방향의 보간을 수행하는 제2 수직 보간부; 상기 보간 모드 정보에 따라, 상기 추출된 블록의 각 픽셀 또는 상기 보간된 각 픽셀 중에서 보간될 위치와 인접하는 2 개의 픽셀 값을 추출하고, 상기 추출된 2개의 픽셀 값을 산술 평균하여 보간하는 양방향 선형 보간부; 및 상기 보간 모드 정보에 따라, 상기 제2 수직 보간부의 출력 또는 상기 양방향 선형 보간부의 출력을 선택하고, 상기 선택된 픽셀 값을 예측 블록의 픽셀 값으로서 출력하는 제1 데이터 선택부를 더 포함하며, 상기 제2 수직 보간부는 상기 제1 수직 보간부와 동일한 연산 파라미터 정보를 사용하여, 상기 연산 파라미터 정보에 따라 보간 연산이 수행된다.
바람직하게, 상기 양방향 선형 보간부는, 상기 보간 모드 정보에 따라 상기 추출된 블록의 각 픽셀 값, 상기 제1 수직 보간부의 출력 또는 상기 수평 보간부의 출력을 선택하고, 상기 선택된 픽셀 값을 출력하는 제2 데이터 선택부; 및 상기 제2 데이터 선택부의 출력과 상기 제2 수직 보간부의 출력으로부터 상기 2 개의 픽셀을 추출하여 산술 평균하는 산술 평균 연산부를 포함한다.
바람직하게, 상기 수평 보간부, 상기 제2 수직 보간부, 상기 양방향 선형 보간부는 상기 상대적 위치 정보를 이용하여 보간에 이용할 픽셀을 추출한다.
바람직하게, 상기 제2 수직 보간부는 상기 추출된 블록의 픽셀 값 또는 상기 수직 보간되어진 픽셀 값이 소정 범위를 벗어 나는 경우 소정 값으로 대체시키는 클리핑 연산을 수행하여, 클리핑 데이터를 출력하며, 상기 제2 데이터 선택부는 상기 선택된 픽셀 값이 소정 범위를 벗어나는 경우 소정 값으로 대체시키는 클리핑 연산을 수행하여, 클리핑된 데이터를 출력한다.
상기의 기술적 과제를 이루기 위한, 본 발명에 의한 멀티 포맷 코덱을 위한 영상 예측 방법은 복수 개의 영상 압축 포맷 각각에 따라 움직임 벡터 및 참조 프레임을 기반으로 예측 블록을 생성하는 예측 방법에 있어서, (a) 현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 단계; 및 (b) 상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 단계를 포함하는 것을 특징으로 한다.
바람직하게, 상기 보간 정보는, 상기 각각의 보간 방향에 대한 보간이 수행될 것인지 여부를 나타내는 보간 모드 정보; 및 상기 각각의 보간 방향에 따른 보간 연산 수행시, 필요한 연산 파라미터 정보를 포함하고, 상기 (b) 단계는, 상기 보간 모드 정보를 이용하여 보간되는 보간 방향을 결정하고, 상기 결정된 각각의 보간 방향에 대해, 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 복수 개 취하고, 상기 취해진 각각의 픽셀값을 상기 연산 파라미터 정보에 따른 보간 연산을 수행하여 상기 예측 블록에 포함된 픽셀 값을 산출한다.
상기의 다른 기술적 과제를 이루기 위한, 본 발명에 의한 멀티 포맷 코덱을 위한 영상 부호화 장치는 참조 프레임과 현재 부호화할 블록 간에 블록 기반의 움직임 추정을 수행하여 움직임 벡터를 산출하는 움직임 벡터 산출부; 및 상기 산출된 움직임 벡터와 상기 참조 프레임을 기반으로 예측 블록을 생성하는 블록 예측부를 포함하고, 상기 블록 예측부는, 현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 보간 전처리부; 및 상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 공용 보간부를 포함하는 것을 특징으로 한다.
상기의 다른 기술적 과제를 이루기 위한, 본 발명에 의한 멀티 포맷 코덱을 위한 영상 부호화 방법은 (a) 참조 프레임과 현재 부호화할 블록 간에 블록 기반의 움직임 추정을 수행하여 움직임 벡터를 산출하는 단계; 및 (b) 상기 산출된 움직임 벡터와 상기 참조 프레임을 기반으로 예측 블록을 생성하는 단계를 포함하고, 상기 (b) 단계는, (b1) 현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 단계; 및 (b2) 상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 단계를 포함하는 것을 특징으로 한다.
상기의 또 다른 기술적 과제를 이루기 위한, 본 발명에 의한 멀티 포맷 코덱을 위한 영상 복호화 장치는 수신된 비트스트림으로부터 움직임 벡터를 복원하는 움직임 벡터 복원부; 및 상기 복원된 움직임 벡터와 참조 프레임을 기반으로 예측 블록을 생성하는 블록 예측부를 포함하며, 상기 블록 예측부는, 현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 보간 전처리부; 및 상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 공용 보간부를 포함하는 것을 특징으로 한다.
상기의 또 다른 기술적 과제를 이루기 위한, 본 발명에 의한 멀티 포맷 코덱을 위한 영상 복호화 방법은 (a) 수신된 비트스트림으로부터 움직임 벡터를 복원하는 단계; 및 (b) 상기 복원된 움직임 벡터와 참조 프레임을 기반으로 예측 블록을 생성하는 단계를 포함하며, 상기 (b) 단계는, (b1) 현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 단계; 및 (b2) 상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 단계를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면들을 참조하여 본 발명에 따른 방법 및 장치에 대해 상세히 설명한다.
도 1a는 WMV9-bilinear 및 WMV9-Bicubic 영상 압축 포맷의 보간 기법을 설명하기 위해 8X8 정수 블록의 일부를 나타내는 개념도이다.
여기서, WMV9는 8X8 블록 단위로 처리하므로 상기 보간이 블록당 8X8 회 수행되며, 1/4 픽셀 단위로 처리된다. 회색의 픽셀은 상기 추출된 블록의 일부 정수 픽셀을 나타내며, 각각 P(m,n), P(m,n+1), P(m+1,n), P(m+1,n+1) 값을 갖는다.
먼저, WMV9-bilinear의 보간 방식을 설명한다. i 위치 픽셀 값은 (P(m,n) + P(m+1,n) + 1 - R) >> 1, t 위치 픽셀 값은 (P(m+1,n) + P(m+1,n+1) + 1 - R) >> 1, k 위치 픽셀 값은 (P(m,n) + P(m+1,n) + P(m+1,n) + P(m+1,n+1) + 2 - R) >> 2의 식으로 구할 수 있다. 여기서, ">>"는 정수 쉬프트 연산을 나타내며, 그 효과는 ">>n"일 때 2n로 나누는 효과를 갖는다. 여기서, R 값은 I 프레임일 때 0을, P 프레임일 때는 0, 1, 0, 1의 교대로 된 값을 갖는다.
다음, WMV-Bicubic의 보간 방식을 설명한다. 먼저, 1차원 Bicubic 보간은 a, b, c, d, i, n, s, t, u, h, m, r에 대해 수행된다. 이 중, d, i, n 위치의 픽셀 값은 (-4*P(m-1,n) + 53*P(m,n) + 18*P(m+1,n) - 3*P(m+2,n) + 32 - r) >> 6, (-1*P(m-1,n) + 9*P(m,n) + 9*P(m+1,n) - 1*P(m+2,n) + 8 - r) >> 4, (-3*P(m-1,n) + 18*P(m,n) + 53*P(m+1,n) - 4*P(m+2,n) + 32 - r) >> 6의 식으로 구할 수 있다. 여기서, r은 수직 방향일 때 1-R, 수평 방향일 때 R의 값을 가지며, R의 값은 상술한 바와 같이 I 프레임일 때 0의 값을 P 프레임일 때는 0, 1, 0, 1의 교대로 된 값을 갖는다. 즉, 상기 d, i, n은 모두 수직 방향의 보간을 취하고 있으므로 r의 값은 1-R로 계산된다.
다음, 2차원 Bicubic 보간은 e, f, g, j, k, l, o, p, q에 대해 수행된다. 상기 위치의 픽셀 값은 상술한 수직 보간 방식을 사용하여 반올림 연산을 수행하고, 상기 반올림된 결과 픽셀들을 기반으로 수평보간을 수행함으로써 얻어진다. 예컨대, f위치의 픽셀 값은 상술한 1차원 Bicubic 보간으로 얻어진 b 픽셀의 값 및, t 픽셀의 값, b 픽셀보다 행으로 4*1/4 픽셀 위에 위치한 픽셀의 값, t 픽셀보다 행으로 4*1/4 픽셀 아래에 위치한 픽셀의 값을 상술한 방법으로 1차원 Bicubic 보간을 수행하여 얻어진다.
여기서, 수직 보간후의 반올림 방법은 (수직보간된 픽셀값 + rndCtrlV) >> shiftV의 식을 사용하며, 수평 보간후의 반올림 방법은 (수평보간된 픽셀값 + 64 - R) >> 7을 사용한다. 여기서, R의 값은 상술한 바와 같다. 한편, shiftV값은 k에 대해서는 1의 값을 가지며, e, o, g, q에 대해서는 5의 값을 가지며, f, j, p, l에 대해서는 3의 값을 가진다. 또한, rndCtrlV=2^(shiftV-1)-1+R의 값을 가진다.
도 1b는 MPEG-4의 반화소(half pixel) 보간 방식을 설명하기 위한 8X8 정수 블록의 일부를 나타내는 개념도이다.
회색의 픽셀은 상기 추출된 블록의 일부 정수 픽셀을 나타내며, 각각 P(m,n), P(m,n+1), P(m+1,n), P(m+1,n+1) 값을 갖는다. a, b, c의 위치의 픽셀 값은 각각 (P(m,n) + P(m,n+1) + 1 - rounding_control) >> 1, (P(m,n) + P(m+1,n) + 1 - rounding_control) >> 1, (P(m,n) + P(m+1,n) + P(m+1,n) + P(m+1,n+1) + 2 - rounding_control) >> 2의 식으로 구할 수 있다. 여기서, rounding_control 값은 MPEG-2 영상 압축 데이터의 헤더에서 가져오는 값이다.
도 1c는 H.264-luma의 영상 압축 포맷에 대한 반 화소 단위 및 1/4 화소(quater pixel) 단위의 보간 기법을 설명하기 위한 일부 블록에 대한 개념도이다.
H.264는 다양한 블록 크기로 보간 및 예측이 수행되며, 최소 단위로 4X4 블록 단위로 연산이 수행된다. 도 c에서 회색 영역이 정수 픽셀을 나타내며, 원으로 표기된 부분이 1/2 화소 단위의 픽셀로서, 보간이 수행될 부분이며, 나머지 부분이 1/4 화소 단위의 픽셀로서 보간이 수행될 부분이다.
먼저, 1/2 화소 단위의 픽셀 보간 방식을 설명한다. b, i 위치의 픽셀 값, P(b), P(i)는 다음의 식 bb = (P(m,n-2) - 5*P(m,n-1) + 20*P(m,n) + 20*P(m,n+1) - 5*P(m,n+2) + P(m,n+3)), ii=(P(m-2,n) - 5*P(m-1,n) + 20*P(m,n) + 20*P(m+1,n) - 5*P(m+2,n) + P(m+3,n)), P(b) = Clip1Y( (bb+16) >> 5)이며, P(i) = Clip1Y( (ii+16) >> 5)로서, 구해진다. 여기서, Cilp1Y는 클리핑 연산을 나타내는 함수로서, P(b)가 가질 수 있는 값이 0~255 값일 때, 상기 (b1+16)>>5의 결과 값이 상기 범위를 벗어날 때, 0 또는 255의 값으로 할당하는 기능을 한다.
마찬가지로, k 위치의 픽셀 값은 수직보간, 수평보간으로 얻어진 1/2화소의 픽셀 값들 예컨대, 상기 bb, ii등을 이용하여 수직 보간 또는 수평보간을 통하여 얻어진다.
다음, 1/4 화소 단위의 픽셀 보간 방식을 설명한다. 상기 1/2 화소 보간 방식이 6 탭 즉, 6개의 가중치를 갖는 반면, 1/4 화소 단위의 픽셀보간 방식은 2텝을 갖으며, 산술 평균 연산을 수행하는 기능과 같다.
예컨대, a위치의 픽셀 값은 화살표 방향이 가리키는 P(m,n) 및 P(b)값을 이 용하여 얻어지는데, 그 구체적인 식은 (P(m,n) + P(b) + 1) >> 1이다. 마찬가지로 g 위치의 픽셀 값 P(g)는 P(g) = (P(b) + P(m) +1) >>1이 된다. 이러한 연산은 양방향 선형 보간(bilinear interpolation)이라 한다.
도 1d는 H.264-Chroma의 영상 압축 포맷에 대한 1/8화소 단위의 보간 기법을 설명하기 위한 일부 블록에 대한 개념도이다.
H.264 Chroma에 있어서, YCbCr=4:2:0인 경우에 해당된다. 회색 원은 정수 픽셀을 나타내며, 그 내부가 각각 1/8 화소로서 보간이 이루어져야 하는 각각의 영역을 의미한다. 움직임 벡터의 소수 부분값이, dx, dy이고, 상기 값은 0 내지 7의 값을 가질 때, 상기 dx, dy 위치에서의 픽셀 값은 ((8-dx)*(8-dy)*P(m,n) + dx*(8-dy)*P(m,n+1) + (8-dx)*dy*P(m+1,n) + dx*dy*P(m+1,n+1)+32) >> 6으로 구해진다.
상술한 보간 방식들을 살펴볼 때 중복되는 연산이 많은 등 공통점이 많다. 즉, 다양한 개수의 가중치를 통한 가중합 연산이 수행되며, 가중합 후의 반올림, 반올림 결과 이후의 쉬프트 연산 등이 공통된다. 따라서, 상기 보간 방식들이 가지는 텝수 중 가장 큰 텝수인 6의 크기를 갖는 가중치 벡터, 반올림 정보, 쉬프트 량 정보를 보간의 파라미터로서 먼저 설정하는 유닛과, 공통되는 보간 연산을 수행하는 유닛을 설계함으로써 모든 영상 포맷의 보간에 사용될 수 있다.
도 2는 본 발명의 일실시예에 따른 멀티 포맷 코덱을 위한 영상 예측 예측 장치의 구성을 나타내는 블록도로서, 보간 전처리부(200), 공용 보간부(210)을 포함하여 이루어진다.
보간 전처리부(200)는 복수 개의 영상 압축 포맷 각각에 따라 움직임 벡터 및 참조 프레임을 기반으로 예측 블록을 생성하는 예측 장치에 있어서, 현재 예측할 블록의 영상 압축 포맷 정보(IN1)를 입력받고, 상기 움직임 벡터(IN2)를 이용하여, 상기 참조 프레임(IN3) 중 보간에 사용될 소정 크기의 블록(S1)을 추출하고 보간 정보(S2)를 생성한다. 여기서, 움직임 벡터(IN2)란 각 영상 압축 알고리듬에 따라 움직임 벡터 추정을 수행하여 얻어낸 움직임 벡터 정보로서, 참조 프레임(IN3) 중 현재 예측할 블록과 가장 유사한 블록의 위치에 대한 정보를 나타내며, 그 값으로는 정수 부분(integer part)과 소수 부분(fractional part)이 있다. 여기서, 참조 프레임(IN3)이란 인터 모드(inter mode)에서는 이전에 복원된 프레임을 의미한다. 여기서, 상기 소정 크기의 블록은 참조 프레임 중 현재의 블록의 보간에 필요한 부분을 의미한다.
여기서, 움직임 벡터(IN2)는 x축, y축 정보에 대해 정수부분과 소수부분이 있는데, 상기 보간 전처리부(200)는, 상기 움직임 벡터(IN2)의 정수 부분 및 소수 부분을 이용하여 상기 소정 크기의 블록(S1)을 추출하고, 상기 움직임 벡터(IN2)의 소수 부분을 이용하여 상기 보간 정보(S2)를 생성한다.
공용 보간부(210)는 상기 보간 정보(S2)에 따른 각각의 보간 방향으로 상기 추출된 블록(S1)의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성한다. 여기서, 상기 보간 정보(S2)는, 상기 각각의 보간 방향에 대한 보간이 수행될 것인지 여부를 나타내는 보간 모드 정보 및 상기 각각의 보간 방향에 따른 보간 연산 수행시, 필요한 연산 파라미터 정보를 포함하며, 필요에 따라 상기 각각의 보간 방향의 보간에 사용되는 픽셀의 상대적 위치 정보를 포함한다.
여기서, 보간 방향이란 수직 방향, 수평 방향, 대각선 방향을 그 예로 들 수 있으나, 이에 한하지는 않는다. 즉, 본 발명이 적용할 영상 압축 알고리듬이 상술한 MPEG-4 등에 한하자면, 수직 방향, 수평 방향, 대각선 방향이면 족할 것이나, 보간 전처리부(200)에서 파라미터를 설정하며, 나머지는 공용 보간부(210)에서 공통적으로 수행하는 연산을 통하여 다양한 보간 방식을 지원하는 본 발명은 상술한 방향과다른 방향으로 보간하는 영상 압축 알고리듬에도 적용할 수 있음은 물론이다.
여기서, 보간 모드 정보는 수직 방향, 수평 방향, 대각선 방향 등 각 방향에 대한 보간 수행여부를 내포하며, ASIC 등 하드웨어로 구현할 경우 각 보간을 수행하는 유닛에 대한 인에이블 신호(enable signal)로 표현될 수 있으며, 소프트웨어로 구현될 경우 각 보간을 수행하는 프로세스에 대한 호출여부 값으로도 표현될 수 있다. 특히, 후술할 도 3과 관련하여서는 fSelect 및 fbilinear가 이에 해당된다.
여기서, 픽셀의 상대적 위치 정보는 보간에 사용될 수 있는 픽셀의 후보가 여러 개 존재 할 경우, 이들 중 실제로 보간에 사용될 후보를 특정하는 역할을 한다. 즉, 상기 상대적 위치 정보에 따라 보간에 사용할 픽셀을 선정하고, 상기 선정된 픽셀들의 가중합으로 최종 보간된 픽셀 값을 얻을 수 있다. 따라서, 일반적으로는 상기 상대적 위치 정보는 필요하지 않을 수 있으나, 후술할 H.264의 Luma의 1/4 픽셀 보간시 필요하며, 이는 도 3에서 idirection 변수로서 사용되며 후술한다.
이에 따라 상기 공용 보간부(210)는, 상기 보간 수행여부 정보를 이용하여 보간되는 보간 방향을 결정하고, 상기 결정된 각각의 보간 방향에 대해, 필요에 따 라 상기 상대적 위치 정보를 이용하여 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 복수 개 취하고, 상기 취해진 각각의 픽셀값을 상기 연산 파라미터 정보에 따른 보간 연산을 수행한다. 여기서, 상기 연산 파라미터 정보는, 각 픽셀에 부여하는 가중치를 포함하는 가중치 벡터, 상기 가중치를 이용한 가중합 연산시 필요한 반올림 정보 및 쉬프트량 정보 중 적어도 하나를 포함한다. 만약 포함하지 않는 부분이 있다면 그 부분은 상기 공용 보간부(200)에서 고정된 값으로 사용된다. 이에 따라, 상기 공용 보간부(210)는, 상기 취해진 각각의 픽셀값에 상기 가중치를 이용하여 가중합 연산을 수행하고, 상기 반올림 정보 및 상기 쉬프트량 정보를 이용하여 상기 가중합 결과를 반올림하여 정수쉬프트 연산을 수행한다. 또한, 상기 공용 보간부는, 필요에 따라, 오버 플로우에 따른 계산 오류를 방지하기 위해 상기 정수쉬프트 연산을 수행한 결과 데이터 값이 소정 범위를 벗어나는 경우 소정 값으로 대체시키는 클리핑 연산을 수행하여, 클리핑된 데이터를 출력할 수 있다. 예컨대, 결과 데이터 값이 0~255 즉, 8비트로 표현되는 숫자여야 할 경우, 상기 정수 쉬프트 연산을 수행하는 결과 데이터 값이 255을 초과하거나, 0미만의 값을 가질 경우 각각 255, 0의 값을 할당하는 것을 그 예로 들 수 있다.
도 3은 WMV9-Bilinear, WMV9-Bicubic, MPEG-4, H.264-Luma, H.264-Chroma에 적용할 수 있는 멀티 포맷 코덱을 위한 영상 예측 장치의 구성을 도시한 블록도로서, 크게는 도 2처럼 보간 전처리부(200), 공용 보간부(210)를 포함한다.
제1 테이블 & 연산부(300), 제2 테이블 & 연산부(302), 제3 테이블 & 연산부(304), 제4 테이블 & 연산부(306), 제5 테이블 & 연산부(308)는 각각 도 4a, 4b, 4c, 4d, 4e의 테이블을 가지며, 각각 H.264 Luma, H.264 Chroma, WMV9(bilinear), WMV9(bicubic), MPEG-4에 대해, 상기 움직임 벡터의 소수 부분(dx, dy)을 이용하여 상기 보간 정보(S2)를 생성한다.
도 4a 내지 도 4e는 H.264 Luma, H.264 Chroma, WMV9(bilinear), WMV9(bicubic), MPEG-4에 있어서, 보간 정보를 얻기 위한 테이블이다.
먼저 도 4a와 관련하여, dx, dy가 0 내지 3의 값을 가지고 있다. 여기서, COEF=[1, -5, 20, 20, -5, 1]의 값을 가진다. dx, dy에 따라 보간 모드가 결정되어 진다. 즉, fSelect 및 fbilinear가 결정되어 진다. 도 1c와 결부시켜 설명하면, dx, dy의 각 값으로서, a, b, c 등에 대응하며, 여기서, a, b, c는 수평 모드 즉, fSelect=6에 대응한다. 즉, dx=1, dy=0일 때, a에 대응하며, fSelect=6, fbilinear=1의 값을 갖는다. 이는 후술하겠지만, 수평 보간부(340) 및 양방향 선형 보간부(360)이 보간을 수행하게 된다. 마찬가지로, d, I, n은 수직 모드, f, k, p는 수평-수직 모드, j, k, l은 수직-수평 모드, e, g, o, q는 대각선 모드가 적용되어 이에 따라 fSelect 및 fbilinear가 결정된다.
여기서, fbilinear는 인접 픽셀간의 양방향 선형 보간이 필요한 경우에 1의 값을 가지며, 그렇지 않은 경우에는 0의 값을 갖는다. 1/4 픽셀 보간 방식에서는 dx 또는 dy가 홀수일 때 필요하므로, 이 경우 1의 값을 가지게 되며, 나머지 경우에는 1/2 픽셀 단위의 보간 방식을 사용하므로 상기 수평 보간 또는 수직 보간에서 이전에 보간이 완료된 상태여서 더 이상 산술 평균 보간이 필요없게 되므로 이 경우는 0의 값을 가지게 된다.
결국, dx, dy로부터 보간 정보 즉, C1, C2, iRound1, iRound2, iShift1, iShift2, fSelect, fBilinear, idirection이 상기 테이블에 의해 결정되어 제3 데이터 선택부(310)의 입력으로 제공된다. 여기서, 특히, H.264 Luma의 경우 idirection 연산이 필요하며, 연산 결과인 idirection은 따른 수평 보간부(340), 제2 수직 보간부(350), 양방향 선형 보간부(360)에서 보간에 이용할 픽셀을 추출할 때 사용된다. 자세한 내용은 후술한다.
도 4b는 H.264 Chroma에 있어서, 보간 정보를 얻기 위한 테이블이다.
여기서, COEF1=[0, 0, 8-dy, dy, 0, 0], COEF2=[0, 0, 8-dx, dx, 0, 0]이며, 특히, 수직-수평 모드만 있음을 알 수 있다.
도 4c는 WMV9(bilinear)에 있어서, 보간 정보를 얻기 위한 테이블이다.
여기서, COEF1=[0, 0, 4-dy, dy, 0, 0], COEF2=[0, 0, 4-dx, dx, 0, 0]이며, iRndCtrl은 상술한 바와 같이 I프레임일 때 0의 값을, P 프레임일 때 0, 1, 0, 1의 교대로 된 값을 갖는다.
도 4d는 WMV9(bicubic)에 있어서, 보간 정보를 얻기 위한 테이블이다. COEF1=[0, -1, 9, 9, -1, 0], COEF2=[0, -4, 53, 18, -3, 0], COEF3=[0. -3, 18, 53, -4, 0]이며, COEF_Y = (dy==2)?COEF1:(dy==1)?COEF2:COEF3, COEF_X = (dx==2)?COEF1:(dx==1)?COEF2:COEF3을 이용하여, C1, C2를 구할 수 있다. 또한, iShiftV = ((dy==2)?4:6) + ((dy==2)?4:6) - 7; iRndCtrlV=(1 << (iShiftV-1)) - 1 + iRndCtrl; iRound = 64- iRndCtrl;로서 상기 iRound1, iShift1, iRound2, iShift2의 값을 구할 수 있다.
도 4e는 MPEG-4에 있어서, 보간 정보를 얻기 위한 테이블이다.
여기서, COEF1=[0, 0, 2-dy, dy, 0, 0], COEF2=[0, 0, 2-dx, dx, 0, 0]이며, ubVopRoundingType은 MPEG-4 헤더에서 가져오는 값이다.
제1 테이블 & 연산부(300), 제2 테이블 & 연산부(302), 제3 테이블 & 연산부(304), 제4 테이블 & 연산부(306), 제5 테이블 & 연산부(308)의 출력은 상기 제3 데이터 선택부(310)에 입력되며, 상기 제3 데이터 선택부(310)는 입력된 영상 압축 포맷 정보(IN1)를 이용하여 현재 예측할 블록에 해당되는 영상 압축 포맷에 적합한 보간 정보를 선택하여 출력한다. 상기 출력된 보간 정보(S2)는 구체적으로, fSelect, fBilinear, cal_para_ver, cal_para_hor, idirection으로 이루어 진다.
한편, 블록 추출부(320)는 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록(S1)을 추출하여 공용 보간부(210)에 제공한다. 예컨대, 소정 크기란 4X4 블록을 예측하는 경우, 본 발명의 일실시예는 6 텝 필터를 사용하므로 텝수 만큼 인접 픽셀들을 더 포함한 9X9의 크기를 의미한다.
공용 보간부(200)는 제1 수직 보간부(330), 수평 보간부(340), 제2 수직 보간부(350), 양방향 선형 보간부(360), 제1 데이터 선택부(370)을 포함하여 이루어진다.
제1 수직 보간부(330)는 상기 보간 모드 정보에 따라, 상기 추출된 블록의 픽셀 값을 바이패스시켜 출력하거나, 상기 추출된 블록의 픽셀 값을 이용하여 수직방향의 보간을 수행하는 보간된 픽셀 값을 출력한다. 여기서, 이용되는 보간 모드 정보는 fSelect, fBilinear 중 fSelect에 해당된다.
도 5는 보간 모드 정보(fSelect, fBilinear)에 따른 각 보간 유닛의 보간 동작 여부를 결정하는 흐름도이다.
fSelect가 0이면(제500 단계), 제1 수직 보간부(330)가 보간을 수행하고(제 510 단계), 0이 아니면(제 500 단계), 520 단계로 진행한다.
상기 520 단계에서는 fSelect가 4가 아닌지를 판단한다(520 단계). fSelect가 4가 아니면 수평 보간부(340)가 보간을 수행하고(530 단계), fSelect가 4이면 540 단계로 진행한다.
상기 540 단계에서는 fSelect가 4이거나 홀수인지 판단한다(540 단계). fSelect가 4이거나 홀수이면 제2 수직 보간부(350)가 보간을 수행한다(550 단계). 다음, fBilinear가 1인지 판단한다(560 단계). fBilinear가 1이면 양방향 선형 보간부(360)이 보간을 수행한다(570 단계). fBilinear가 0이면 양방향 선형 보간부(360)가 보간을 수행하지 않고 종료된다.
즉, 제1 수직 보간부(330)는 fSelect가 0이 아니면 보간을 수행하지 않고 상기 추출된 블록(S1)을 바이패스시켜 상기 수평 보간부(340)에 제공한다. fSelect가 0이면 상기 추출된 블록(S1)을 이용하여 수직 방향의 보간을 수행한다. 보간 수행 방법은 연산 파라이터 정보인 cal_para_ver 정보를 이용하는 데, 상기 정보는 전술한, C1, iRound1, iShift1의 정보를 포함한다. 이를 바탕으로 보간 연산을 수행한다. 즉, 각 추출된 블록(S1)을 수직 방향으로 6개의 픽셀을 취한 픽셀 값이 a1, a2, a3, a4, a5, a6이고, C1의 가중치 엘리먼트가, c1, c2, c3, c4, c5, c6이라면, 보간되어 얻어지는 픽셀 값은 (c1*a1 + c2*a2 + c3*a3 + c4*a4 + c5*a5 + c6*a6 +iRound1) >> iShift1이 된다.
수평 보간부(340)는 상기 보간 모드 정보에 따라, 상기 제1 수직 보간부(330)의 출력을 바이패스시켜 출력하거나, 상기 제1 수직 보간부(330)의 출력을 이용하여 수평방향의 보간을 수행한다. 여기서, 이용되는 보간 모드 정보는 마찬가지로 fSelect, fBilinear 중 fSelect에 해당된다. 즉, 도5에서와 같이, fSelect가 4이면 상기 제1 수직 보간부(330)의 출력을 바이패스시켜 출력하고, fSelect가 4가 아니면 상기 제1 수직 보간부(330)의 출력을 이용하여 수평방향의 보간을 수행한다. 여기서의 보간 연산은 연산 파라미터 정보 cal_para_hor를 이용하는데, cal_para_hor에는 C2, iRound2, iShift2의 정보가 포함된다. 마찬가지로, C2는 가중치 벡터이고, iRound2는 반올림 정보, iShift2는 정수 쉬프트량을 의미한다. 한편, H.264 Luma 모드에서는 idirection값이 0000이 아닐 경우도 있다. idirection이 0000이면, 보간에 사용되는 픽셀 위치의 시작 좌표 그대로 사용되며, idirection의 첫 번째 비트가 1이면, 즉, 1XXX형태이면, 픽셀 위치의 시작 좌표를 y축으로 1 증가시켜, 보간을 수행한다. 자세한 내용은 후술한다.
제2 수직 보간부(350)는 상기 보간 모드 정보에 따라, 상기 수평 보간부(340)의 출력을 바이패스시켜 출력하거나, 상기 추출된 블록의 픽셀 값 또는 상기 수평 보간부의 출력을 이용하여 수직 방향의 보간을 수행한다.
만약 fSelect가 0, 6이면 상기 수평 보간부(340)의 출력을 바이패스시켜 출력하지만, fSelect가 1, 3, 4라면 수직 방향의 보간을 수행한다. 다만, 수직 방향의 보간 수행시, 입력되는 픽셀 집합 즉, 블록으로서, 상기 추출된 블록(S1)과 상 기 수평 보간부(340)의 출력 중 하나가 선택되는데, fSelect가 3인 대각선 모드에서는 상기 추출된 블록(S1)을 이용하여 수직 보간을 수행하고, fSelect가 1, 4이면 상기 수평 보간부(340)의 출력을 이용하여 수직 보간을 수행한다. 한편, 상기 제2 수직 보간부(350)도 상기 제1 수직 보간부(330)와 동일한 파라미터인 cal_para_ver를 사용하여 보간 연산을 수행한다. 상기 제2 수직 보간부(350)도 마찬가지로, 보간에 사용될 픽셀 위치의 선정에 있어서, idirection 정보 즉, 상대적 위치 정보를 가지고, 사용될 픽셀 위치를 선정하는데, 두 번째 비트가 1일 경우 즉, X1XX일 경우에는 보간에 사용되는 픽셀 위치의 시작 좌표를 x축으로 1 증가시켜, 보간을 수행한다. 자세한 내용은 후술한다.
상기 양방향 선형 보간부(360)는 상기 보간 모드 정보에 따라, 상기 추출된 블록의 각 픽셀 또는 상기 보간된 각 픽셀 중에서 보간될 위치와 인접하는 2 개의 픽셀 값을 추출하고, 상기 추출된 2개의 픽셀 값을 산술 평균하여 보간한다.
도 6은 본 발명의 일실시예에 따른 상기 양방향 선형 보간부(360)의 구성을 나타내는 블록도로서, 제2 데이터 선택부(600), 산술 평균부(630)를 포함하여 이루어진다.
상기 제2 데이터 선택부(600)는 상기 보간 모드 정보에 따라 상기 추출된 블록의 각 픽셀 값(x1), 상기 제1 수직 보간부의 출력(x2) 또는 상기 수평 보간부의 출력(x2)을 선택하고, 상기 선택된 픽셀 값을 출력한다. 여기서, x1은 S1과 같다.
fSelect가 4, 6일 때 x1이 선택되며, fSelect가 0일 때, x3가 선택되며, fSelect가 1, 3일 때 x2가 선택되어 상기 선택된 데이터는 산술 평균부(630)로 제 공된다.
한편, 제2 수직 보간부(350) 및 상기 제2 데이터 선택부(600)는 보간된 데이터 값 또는 선택된 데이터 값이 소정 범위를 벗어나는 경우 소정 값으로 대체시키는 클리핑 연산을 수행하여, 클리핑된 데이터를 출력한다. 클리핑 기능은 전술한 바와 같다.
상기 산술 평균 연산부(630)는 fBilinear가 1이면 상기 제2 수직 보간부(350)의 출력과 상기 제2 데이터 선택부(600)의 출력을 산술 평균하여 출력한다. 만약, fBilinear가 0이라면 산술 평균할 필요가 없다. 즉, 제2 수직 보간부(350)의 출력과 상기 상기 제2 데이터 선택부(600)의 출력이 각각 a, b라면 (a+b+1)>>1의 값을 출력하는 것이다. 한편, idirection의 세 번째 비트가 1이라면, 즉, XX1X라면, 보간에 사용되는 픽셀의 시작위치를 y축으로 1 증가시켜, 보간을 수행하고, idirection의 네 번째 비트가 1이라면, 즉, XXX1 이라면, 보간에 사용되는 픽셀의 시작 위치를 x축으로 1 증가시켜, 보간을 수행한다.
상기 제1 데이터 선택부(370)는 상기 보간 모드 정보에 따라, 상기 제2 수직 보간부(350)의 출력 또는 상기 양방향 선형 보간부(360)의 출력을 선택하고, 상기 선택된 픽셀 값을 예측 블록의 픽셀 값으로서 출력한다. 여기서, 이용되는 보간 모드 정보는 fBilinear로서 fBilinear가 1이면 상기 양방향 선형 보간부(360)의 출력이 선택되고, fBilinear가 0이면 상기 제2 수직 보간부(350)의 출력이 선택된다.
도 7은 본 발명의 일실시예에 따른 멀티 포맷 코덱을 위한 영상 예측 장치 및 방법의 동작을 나타내는 흐름도이다.
현재 예측할 블록의 영상 압축 포맷 정보(IN1) 및 움직임 벡터(IN2), 참조 프레밍(IN3)가 보간 전처리부(200)에 입력되며, 상기 보간 전처리부(200)는 상기 움직임 벡터(IN2)를 이용하여, 상기 참조 프레임(IN3) 중 보간에 사용될 소정 크기의 블록(S1)을 추출하고 보간 정보(S2)를 생성한다(700 단계). 여기서, 상기 보간 정보(S2)는, 상기 각각의 보간 방향에 대한 보간이 수행될 것인지 여부를 나타내는 보간 모드 정보; 및 상기 각각의 보간 방향에 따른 보간 연산 수행시, 필요한 연산 파라미터 정보를 포함한다.
상기 보간 정보(S2)에 따른 각각의 보간 방향으로 상기 추출된 블록(S1)의 각 픽셀 값 또는 이전에 보간된 픽셀 값이 상기 공용 보간부(210)에 의해 보간되여 상기 예측 블록(OUT1)이 생성된다(710 단계). 즉, 상기 보간 모드 정보를 이용하여 보간되는 보간 방향을 결정하고, 상기 결정된 각각의 보간 방향에 대해, 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 복수 개 취하고, 상기 취해진 각각의 픽셀값을 상기 연산 파라미터 정보에 따른 보간 연산을 수행하여 상기 예측 블록에 포함된 픽셀 값을 산출하는 것이다.
도 8은 각 보간부에서 사용되는 idirection의 의미를 나타내는 테이블이다. idirection은 H.264의 Luma의 보간 즉, 1/4 보간을 위하여 수행된다. 각 장치에서 사용되는 idirection의 의미는 다음과 같다. idirection이 1000 일 때 수평보간부(340)가 입력 블록 중 보간에 사용되는 픽셀의 시작 위치를 y축으로 1 만큼 증가시켜서 보간에 사용되는 픽셀 값을 추출한 후 보간 연산한다. idirection이 0100일 때 제2 수직 보간부(350)가 입력 블록 중 보간에 사용되는 픽셀의 시작 위치를 x 축으로 1 만큼 증가시켜서 보간에 사용되는 픽셀 값을 추출한 후 연산한다. idirection이 0010일 때 양방향 선형 보간부(360)가 입력 블록 중 보간에 사용되는 픽셀의 시작 위치를 y축으로 1 만큼 증가시켜서 보간을 수행한다. 또한, idirection이 0001일 때 양방향 선형 보간부(360)가 입력 블록 중 보간에 사용되는 픽셀의 시작 위치를 x축으로 1 만큼 증가시켜서 보간에 사용되는 픽셀 값을 추출한 후 연산한다.
위와 같은 구성을 설명하기 위해, 먼저 H.264 Luma에 있어서, 움직임 벡터의 소수값이 dx=3, dy=1일 때 도 1c와 결부시켜 설명한다.
이 경우, 대각선 모드의 보간이 수행되므로, fSelect=3, C1=[1, -5, 20, 20, -5, 1], C2=[1, -5, 20, 20, -5, 1], iRound1=16, iShift=5, iRound2=0, iShift2=0, fbilinear=1, idirection=0100값이 된다. 먼저, fSelect가 3이므로 상기 제1 수직 보간부(330)는 상기 추출된 블록 픽셀값을 바이패스하여 상기 수평 보간부(340)에 전달하고, 상기 수평 보간부(340)는 fSelect가 3이므로 입력된 G, H로서 b 픽셀에 대한 수평보간을 한다. 이 때, idirection이 0100이므로 원래의 위치대로 G, H가 선택된 것이며, idirection=1000인 경우에는 M, N이 선택되어 질 것이다.
상기 제2 수직 보간부(350)는 idirection이 0100이므로 보간에 사용되는 픽셀 위치를 정수 픽셀 1씩 증가시켜, G, M이 아닌 H, N 값을 이용하여 수직 보간을 수행함으로써 m의 값을 출력한다. 상기 제2 데이터 선택부(600)는 fSelect 값이 3이므로 수평 보간부(340)의 출력인 b 픽셀을 선택하여 출력한다. 상기 산술 평균 연산부(430)는 fBilinear값이 1 이므로 양방향 선형 보간을 수행한다. 제1 데이터 선택부(370)는 fBilinear가 1의 값을 가지므로, 상기 양방향 선형 보간부(360)의 출력을 선택하고, 선택된 데이터는 예측 블록으로서 출력된다.
한편, H.264 Luma의 dx=3, dy=3도 상술한 H.264 Luma의 dx=1, dy=3과 유사하나, idirection=1100이므로 수평 보간부(340), 제2 수직 보간부(350)의 보간에 수행되는 픽셀 위치로 정수 픽셀 1씩 증가하여 수행하게 된다. 즉, 수평 보간부(340)는 G,H가 아니라 M, N을 제2 수직 보간부(350)는 G, M이 아니라 H, N을 사용하게 된다.
한편, WMV9(bicubic)의 dx=1, dy=3일 때의 동작을 설명한다.
우선 dx=1이므로 COEF_X=[0, -4, 53, 18, -3, 0]이고, dy=3이므로 COEF_Y=[0, -3, 18, 53, -4, 0]이 되며, C1=COEF_Y, C2=COEF_X가 된다.
iShiftV는 12-7 즉, 5가 된며, iRndCtrlV는 16-1+0=15가 된다. 그리고, iRound는 64-15로서, 29가 된다. 이와 같은 연산 과정을 거쳐 테이블의 모든 값이 구해진다. 이 경우, fSelect가 0이므로 제1 수직 보간부(330) 및 수평 보간부(340)가 보간을 수행한다.
n 위치의 픽셀 값이 얻어지기 위해, 제1 수직 보간부(330)의 입력 중 P(m-2,n), P(m-1, n), P(m, n), P(m+1,n), P(m+2, n), P(m+3, n)가 취해져 가중합 연산을 통해, n위치의 픽셀 값이 구해진다. 그 다음, 수평 보간부(340)의 입력은 n위치의 값에서 좌우로 정수 배의 정수 픽셀만큼 위치한 픽셀들을 이용하여 보간을 수행한다. 이러한 결과 o 위치의 픽셀 값이 구해진다.
상기 수평 보간부(340)의 출력은 상기 제2 수직 보간부(350)의 입력으로 이용되는데, 상기 제2 수직 보간부(350)는 상기 fSelect가 0이므로 동작하지 않고 입력된 데이터를 바이패스 시키는 역할을 한다. 상기 바이패스된 데이터는 fBilinear가 0이므로 예측 블록의 픽셀 값으로 출력된다.
다음, H.264 Luma의 dx=2, dy=1일 때 보간을 설명한다.
이 경우, 수평-수직 보간 모드이므로 fSelect=1이 된다. 따라서, 수평 보간부(340)와 제2 수직 보간부(350)가 작동한다. 이 경우, 수평 보간부(340)의 출력은 b 등이며, 제2 수직 보간부(350)는 b 등을 이용하여 i 등을 구하는 것이다. 상기 b와 i 픽셀 값은 양방향 선형 보간부(360)에서 보간을 통하여 f위치의 픽셀 값이 얻어진다.
도 9는 본 발명의 일실시예에 따른 멀티 포맷 코덱을 위한 영상 부호화 장치의 구성을 나타내는 블록도로서, 움직임 벡터 산출부(800), 블록 예측부(810)을 포함하여 이루어 진다.
움직임 벡터 산출부(800)는 참조 프레임(A2)과 현재 부호화할 블록(A1) 간에 블록 기반의 움직임 추정을 수행하여 움직임 벡터(A4)를 산출한다. 여기서, 참조 프레임은 이전에 부호화된 프레임을 복원하여 얻은 프레임이다. 한편, 각 영상 압축 포맷에 따라 움직임 벡터 산출 과정이 다를 경우, 상기 단계에서 움직임 벡터 정보(A3)가 필요하므로 상기 움직임 벡터 산출부(800)의 입력으로 제공된다.
상기 블록 예측부(810)는 보간 전처리부(820), 공용 보간부(830)를 포함하여 이루어 진다.
보간 전처리부(820)는 현재 예측할 블록의 영상 압축 포맷 정보(A3)를 입력받고, 상기 움직임 벡터(A4)를 이용하여, 상기 참조 프레임(A2) 중 보간에 사용될 소정 크기의 블록(A5)을 추출하고 보간 정보(A6)를 생성한다. 구체적인 내용은 전술한 바와 같다.
공용 보간부(830)는 상기 보간 정보(A6)에 따른 각각의 보간 방향으로 상기 추출된 블록(A5)의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 예측 블록(A7)을 생성한다.
상기 생성된 예측 블록(A7)과 현재 부호화할 블록(A1) 간의 차이는 레지듀얼 데이터가 되며, 상기 데이터는 소정의 부호화 또는 변환을 통하여 최종적으로 부호화기의 출력으로 움직임 벡터(A4), 영상 압축 포맷 정보(A3) 등과 함께 송신된다. 한편, 레지듀얼 데이터 생성 및 소정의 부호화 또는 변환을 수행하는 구성요소 또는 상기 참조프레임을 생성하는 구성은 멀티 포맷 코덱에 있어서 다양한 형태가 존재할 수 있으므로 도 9에 도시하지 않았다.
도 10는 본 발명의 일실시예에 따른 멀티 포맷 코덱을 위한 영상 부호화 장치 및 방법의 동작을 나타내는 흐름도이다.
참조 프레임(A2)과 현재 부호화할 블록(A1) 간에 블록 기반의 움직임 추정을 수행하여 움직임 벡터(A4)가 상기 움직임 벡터 산출부(800)에 의해 산출된다(900 단계). 여기서, 각 영상 압축 포맷에 따라 움직임 벡터 산출 과정이 다를 경우, 상기 단계에서 움직임 벡터 정보(A3)가 필요하므로 상기 움직임 벡터 산출부(800)의 입력으로 제공된다.
현재 예측할 블록(A1)의 영상 압축 포맷 정보(A3)를 입력받고, 상기 보간 전처리부(820)는 상기 움직임 벡터(A4)를 이용하여, 상기 참조 프레임(A2) 중 보간에 사용될 소정 크기의 블록(A5)을 추출하고 보간 정보(A6)를 생성한다(910 단계).
상기 산출된 움직임 벡터(A4), 상기 참조 프레임(A5), 상기 소정 크기의 블록(A5)을 기반으로 예측 블록이 상기 공용 보간부(830)에 의해 생성된다(920 단계).
한편, 상기 920단계 이후에 상기 예측 블록과 현재 부호화할 블록 간의 차이인 레지듀얼 데이터가 산출되고, 상기 산출된 레지듀얼 데이터는 필요에 따라 부호화 또는 변환을 거쳐 상기 움직임 벡터 정보와 함께 부호화기의 출력으로 송신된다.
도 11은 본 발명의 일실시예에 따른 멀티 포맷 코덱을 위한 영상 복호화 장치의 구성을 나타내는 블록도로서, 움직임 벡터 복원부(1000), 블록 예측부(1010)를 포함하여 이루어 진다.
움직임 벡터 추출부(1000)는 수신된 비트스트림(B1)으로부터 움직임 벡터(B3)를 복원한다.
상기 블록 예측부(1010)는 보간 전처리부(1020), 공용 보간부(1030)를 포함하여 이루어진다.
보간 전처리부(1020)는 현재 예측할 블록의 영상 압축 포맷 정보(B2)를 입력받고, 상기 움직임 벡터(B3)를 이용하여, 상기 참조 프레임(B4) 중 보간에 사용될 소정 크기의 블록(B5)을 추출하고 보간 정보(B6)를 생성한다. 여기서, 현재 예측할 블록의 영상 압축 포맷 정보(B2)는 수신데이터에 실려 오거나, 별도의 제어 채널을 통해서 복호화 장치에 제공될 수 있다.
공용 보간부(1030)는 상기 보간 정보(B6)에 따른 각각의 보간 방향으로 상기 추출된 블록(B5)의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록(B7)을 생성한다.
한편, 수신데이터로부터 복원된 레지듀얼 데이터, 움직임 벡터 정보(B3), 상기 예측 블록(B7)을 이용하여 현재의 프레임이 복원된다. 상기 참조 프레임(B4)은 이전에 복원된 프레임이다. 이러한 복원 과정은 동영상 압축 포맷에 따라 구체적으로 다를 수 있기 때문에, 이를 위한 구성은 도 11에 도시하지 않았다.
도 12는 본 발명의 일실시예에 따른 멀티 포맷 코덱을 위한 영상 복호화 장치 및 방법의 동작을 나타내는 흐름도이다.
수신된 비트스트림(B1)으로부터 움직임 벡터(B3)가 상기 움직임 벡터 복원부(1000)에 의해 복원된다(1100 단계).
현재 예측할 블록의 영상 압축 포맷 정보(B2)를 입력받고, 상기 보간 전처리부(1020)는 상기 움직임 벡터(B3)를 이용하여, 상기 참조 프레임(B4) 중 보간에 사용될 소정 크기의 블록(B5)을 추출하고 보간 정보(B6)를 생성한다(1110 단계).
상기 공용 보간부(1030)는 상기 보간 정보(B6)에 따른 각각의 보간 방향으로 상기 추출된 블록(B5)의 각 픽셀 값 또는 이전에 보간된 픽셀 값이 보간하여 상기 예측 블록(B7)을 생성한다(1120 단계). 한편, 수신데이터로부터 복원된 레지듀얼 데이터, 움직임 벡터 정보(B3), 상기 예측 블록(B7)을 이용하여 현재의 프레임이 복원된다. 이러한 복원 과정은 동영상 압축 포맷에 따라 구체적으로 다를 수 있기 때문에, 이를 위한 단계는 도 12에 도시하지 않았다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 케리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이러한 본원 발명인 방법 및 장치는 이해를 돕기 위하여 도면에 도시된 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.
본 발명에 따르면, 다양한 영상 압축 알고리듬 즉, 멀티 포맷 코덱을 위한 부호화/복호화기의 구현에 있어서, 각 영상 압축 포맷에 공통으로 사용되는 보간 방법을 적용함으로써, 상기 멀티 포맷 코덱을 위한 부호화/복호화기의 구현에 요구되는 기간 및 비용을 최소화 할 수 있다. 또한, 부호화/복호화기를 ASIC 등의 하드웨어로 구현함에 있어서, 하드웨어 사이즈 최소화에 유리하다.

Claims (23)

  1. 복수 개의 영상 압축 포맷 각각에 따라 움직임 벡터 및 참조 프레임을 기반으로 예측 블록을 생성하는 예측 장치에 있어서,
    현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 보간 전처리부; 및
    상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 공용 보간부를 포함하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  2. 제1항에 있어서, 상기 보간 전처리부는,
    상기 움직임 벡터의 정수 부분 및 소수 부분을 이용하여 상기 소정 크기의 블록을 추출하고, 상기 움직임 벡터의 소수 부분을 이용하여 상기 보간 정보를 생성하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  3. 제1항에 있어서,
    상기 보간 정보는,
    상기 각각의 보간 방향에 대한 보간이 수행될 것인지 여부를 나타내는 보간 모드 정보; 및
    상기 각각의 보간 방향에 따른 보간 연산 수행시, 필요한 연산 파라미터 정보를 포함하고,
    상기 공용 보간부는,
    상기 보간 모드 정보를 이용하여 보간되는 보간 방향을 결정하고, 상기 결정된 각각의 보간 방향에 대해, 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 복수 개 취하고, 상기 취해진 각각의 픽셀값을 상기 연산 파라미터 정보에 따른 보간 연산을 수행하여 상기 예측 블록에 포함된 픽셀 값을 산출하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  4. 제3항에 있어서,
    상기 보간 정보는 상기 각각의 보간 방향의 보간에 사용되는 픽셀의 상대적 위치 정보를 더 포함하고,
    상기 공용 보간부는 상기 상대적 위치 정보를 이용하여 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 복수 개 취하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  5. 제4항에 있어서,
    상기 연산 파라미터 정보는, 각각의 보간 방향의 보간 사용되는 각 픽셀에 부여하는 가중치를 포함하는 가중치 벡터, 상기 가중치를 이용한 가중합 연산시 필요한 반올림 정보 및 쉬프트량 정보 중 적어도 하나를 포함하며,
    상기 공용 보간부는, 상기 결정된 각각의 보간 방향에 대해, 상기 취해진 각각의 픽셀값에 상기 가중치를 부여하여 가중합 연산을 수행하고, 상기 반올림 정보 및 상기 쉬프트량 정보를 이용하여 상기 가중합 연산 결과를 반올림하여 정수 쉬프트 연산을 수행하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  6. 제5항에 있어서,
    상기 공용 보간부는, 상기 정수 쉬프트 연산을 수행한 결과 데이터 값이 소정 범위를 벗어나는 경우 소정 값으로 대체시키는 클리핑 연산을 수행하여, 클리핑된 데이터를 출력하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  7. 제5항에 있어서, 상기 공용 보간부는,
    상기 보간 모드 정보에 따라, 상기 추출된 블록의 픽셀 값을 바이패스시켜 출력하거나, 상기 추출된 블록의 픽셀 값을 이용하여 수직방향의 보간을 수행하는 보간된 픽셀 값을 출력하는 제1 수직 보간부; 및
    상기 보간 모드 정보에 따라, 상기 제1 수직 보간부의 출력을 바이패스시켜 출력하거나, 상기 제1 수직 보간부의 출력을 이용하여 수평방향의 보간을 수행하는 수평 보간부를 포함하고,
    상기 제1 수직 보간부 및 상기 수평 보간부는 상기 각각의 연산 파라미터 정보에 따라 보간 연산이 수행되는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  8. 제7항에 있어서, 상기 공용 보간부는,
    상기 보간 모드 정보에 따라, 상기 수평 보간부의 출력을 바이패스시켜 출력하거나, 상기 추출된 블록의 픽셀 값 또는 상기 수평 보간부의 출력을 이용하여 수직 방향의 보간을 수행하는 제2 수직 보간부;
    상기 보간 모드 정보에 따라, 상기 추출된 블록의 각 픽셀 또는 상기 보간된 각 픽셀 중에서 보간될 위치와 인접하는 2 개의 픽셀 값을 추출하고, 상기 추출된 2개의 픽셀 값을 산술 평균하여 보간하는 양방향 선형 보간부; 및
    상기 보간 모드 정보에 따라, 상기 제2 수직 보간부의 출력 또는 상기 양방향 선형 보간부의 출력을 선택하고, 상기 선택된 픽셀 값을 예측 블록의 픽셀 값으로서 출력하는 제1 데이터 선택부를 더 포함하며,
    상기 제2 수직 보간부는 상기 제1 수직 보간부와 동일한 연산 파라미터 정보를 사용하여, 상기 연산 파라미터 정보에 따라 보간 연산이 수행되는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  9. 제8항에 있어서, 상기 양방향 선형 보간부는,
    상기 보간 모드 정보에 따라 상기 추출된 블록의 각 픽셀 값, 상기 제1 수직 보간부의 출력 또는 상기 수평 보간부의 출력을 선택하고, 상기 선택된 픽셀 값을 출력하는 제2 데이터 선택부; 및
    상기 제2 데이터 선택부의 출력과 상기 제2 수직 보간부의 출력으로부터 상기 2 개의 픽셀을 추출하여 산술 평균하는 산술 평균 연산부를 포함하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  10. 제8항에 있어서,
    상기 수평 보간부, 상기 제2 수직 보간부, 상기 양방향 선형 보간부는 상기 상대적 위치 정보를 이용하여 보간에 이용할 픽셀을 추출하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  11. 제9항에 있어서,
    상기 제2 수직 보간부는 상기 추출된 블록의 픽셀 값 또는 상기 수직 보간되어진 픽셀 값이 소정 범위를 벗어 나는 경우 소정 값으로 대체시키는 클리핑 연산을 수행하여, 클리핑 데이터를 출력하며,
    상기 제2 데이터 선택부는 상기 선택된 픽셀 값이 소정 범위를 벗어나는 경우 소정 값으로 대체시키는 클리핑 연산을 수행하여, 클리핑된 데이터를 출력하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  12. 제5항에 있어서, 상기 각 보간방향에 대한 상기 가중치 벡터는
    6개의 가중치 엘리먼트로 구성되어 있는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  13. 제7항에 있어서, 상기 복수 개의 영상 압축 포맷은
    WMV9-bilinear, WMV9-Bicubic, MPEG-4, H.264-luma, H.264-chroma중 적어도 하나를 포함하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 장치.
  14. 참조 프레임과 현재 부호화할 블록 간에 블록 기반의 움직임 추정을 수행하여 움직임 벡터를 산출하는 움직임 벡터 산출부; 및
    상기 산출된 움직임 벡터와 상기 참조 프레임을 기반으로 예측 블록을 생성하는 블록 예측부를 포함하고,
    상기 블록 예측부는,
    현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 보간 전처리부; 및
    상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 공용 보간부를 포함하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 부호화 장치.
  15. 수신된 비트스트림으로부터 움직임 벡터를 복원하는 움직임 벡터 추출부; 및
    상기 복원된 움직임 벡터와 참조 프레임을 기반으로 예측 블록을 생성하는 블록 예측부를 포함하며,
    상기 블록 예측부는,
    현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 보간 전처리부; 및
    상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 공용 보간부를 포함하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 복호화 장치.
  16. 복수 개의 영상 압축 포맷 각각에 따라 움직임 벡터 및 참조 프레임을 기반으로 예측 블록을 생성하는 예측 방법에 있어서,
    (a) 현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 단계; 및
    (b) 상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 단계를 포함하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 방법.
  17. 제16항에 있어서,
    상기 보간 정보는,
    상기 각각의 보간 방향에 대한 보간이 수행될 것인지 여부를 나타내는 보간 모드 정보; 및
    상기 각각의 보간 방향에 따른 보간 연산 수행시, 필요한 연산 파라미터 정보를 포함하고,
    상기 (b) 단계는,
    상기 보간 모드 정보를 이용하여 보간되는 보간 방향을 결정하고, 상기 결정된 각각의 보간 방향에 대해, 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 복수 개 취하고, 상기 취해진 각각의 픽셀값을 상기 연산 파라미터 정보에 따른 보간 연산을 수행하여 상기 예측 블록에 포함된 픽셀 값을 산출하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 방법.
  18. 제17항에 있어서,
    상기 보간 정보는 상기 각각의 보간 방향의 보간에 사용되는 픽셀의 상대적 위치 정보를 더 포함하고,
    상기 (b) 단계는 상기 상대적 위치 정보를 이용하여 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 복수 개 취하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 방법.
  19. 제18항에 있어서,
    상기 연산 파라미터 정보는, 각각의 보간 방향의 보간 사용되는 각 픽셀에 부여하는 가중치를 포함하는 가중치 벡터, 상기 가중치를 이용한 가중합 연산시 필요한 반올림 정보 및 쉬프트량 정보 중 적어도 하나를 포함하며,
    상기 공용 보간부는, 상기 결정된 각각의 보간 방향에 대해, 상기 취해진 각각의 픽셀값에 상기 가중치를 부여하여 가중합 연산을 수행하고, 상기 반올림 정보 및 상기 쉬프트량 정보를 이용하여 상기 가중합 연산 결과를 반올림하여 정수 쉬프트 연산을 수행하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 방법.
  20. 제19항에 있어서,
    상기 (b) 단계는, 상기 정수 쉬프트 연산을 수행한 결과 데이터 값이 소정 범위를 벗어나는 경우 소정 값으로 대체시키는 클리핑 연산을 수행하여, 클리핑된 데이터를 출력하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 예측 방법.
  21. (a) 참조 프레임과 현재 부호화할 블록 간에 블록 기반의 움직임 추정을 수행하여 움직임 벡터를 산출하는 단계; 및
    (b) 상기 산출된 움직임 벡터와 상기 참조 프레임을 기반으로 예측 블록을 생성하는 단계를 포함하고,
    상기 (b) 단계는,
    (b1) 현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 단계; 및
    (b2) 상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 단계를 포함하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 부호화 방법.
  22. (a) 수신된 비트스트림으로부터 움직임 벡터를 복원하는 단계; 및
    (b) 상기 복원된 움직임 벡터와 참조 프레임을 기반으로 예측 블록을 생성하는 단계를 포함하며,
    상기 (b) 단계는,
    (b1) 현재 예측할 블록의 영상 압축 포맷 정보를 입력받고, 상기 움직임 벡터를 이용하여, 상기 참조 프레임 중 보간에 사용될 소정 크기의 블록을 추출하고 보간 정보를 생성하는 단계; 및
    (b2) 상기 보간 정보에 따른 각각의 보간 방향으로 상기 추출된 블록의 각 픽셀 값 또는 이전에 보간된 픽셀 값을 보간하여 상기 예측 블록을 생성하는 단계를 포함하는 것을 특징으로 하는 멀티 포맷 코덱을 위한 영상 복호화 방법.
  23. 제16항 내지 제22항 중 어느 한 항에 기재된 방법을 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR20050078034A 2005-08-24 2005-08-24 멀티 포맷 코덱을 위한 영상 예측 장치 및 방법과 이를이용한 영상 부호화/복호화 장치 및 방법 KR100718135B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR20050078034A KR100718135B1 (ko) 2005-08-24 2005-08-24 멀티 포맷 코덱을 위한 영상 예측 장치 및 방법과 이를이용한 영상 부호화/복호화 장치 및 방법
US11/417,141 US20070047651A1 (en) 2005-08-24 2006-05-04 Video prediction apparatus and method for multi-format codec and video encoding/decoding apparatus and method using the video prediction apparatus and method
EP20060253497 EP1758401A2 (en) 2005-08-24 2006-07-04 Preprocessing for using a single motion compensated interpolation scheme for different video coding standards
JP2006227521A JP2007060673A (ja) 2005-08-24 2006-08-24 画像予測装置、画像符号化装置、画像復号化装置、画像予測方法、画像符号化方法、画像復号化方法、記録媒体及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20050078034A KR100718135B1 (ko) 2005-08-24 2005-08-24 멀티 포맷 코덱을 위한 영상 예측 장치 및 방법과 이를이용한 영상 부호화/복호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20070023449A KR20070023449A (ko) 2007-02-28
KR100718135B1 true KR100718135B1 (ko) 2007-05-14

Family

ID=37603113

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20050078034A KR100718135B1 (ko) 2005-08-24 2005-08-24 멀티 포맷 코덱을 위한 영상 예측 장치 및 방법과 이를이용한 영상 부호화/복호화 장치 및 방법

Country Status (4)

Country Link
US (1) US20070047651A1 (ko)
EP (1) EP1758401A2 (ko)
JP (1) JP2007060673A (ko)
KR (1) KR100718135B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010044569A2 (ko) * 2008-10-16 2010-04-22 에스케이텔레콤 주식회사 참조 프레임 생성 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008067194A (ja) * 2006-09-08 2008-03-21 Toshiba Corp フレーム補間回路、フレーム補間方法、表示装置
US9332264B2 (en) * 2007-12-30 2016-05-03 Intel Corporation Configurable performance motion estimation for video encoding
CN101674474B (zh) * 2008-09-12 2011-08-24 华为技术有限公司 一种编码方法、装置及系统
US20100135379A1 (en) * 2008-12-02 2010-06-03 Sensio Technologies Inc. Method and system for encoding and decoding frames of a digital image stream
WO2010067942A2 (en) * 2008-12-11 2010-06-17 Electronics And Telecommunications Research Institute Lossless video compression method for h.264 codec
JP5169978B2 (ja) * 2009-04-24 2013-03-27 ソニー株式会社 画像処理装置および方法
CN102577393B (zh) * 2009-10-20 2015-03-25 夏普株式会社 运动图像编码装置、运动图像解码装置、运动图像编码/解码系统、运动图像编码方法及运动图像解码方法
KR101601848B1 (ko) * 2009-12-01 2016-03-10 에스케이 텔레콤주식회사 인터 예측 프레임 생성장치 및 그 생성방법, 및 거기에 이용되는 참조 프레임 보간장치 및 그 방법
US8254453B2 (en) * 2010-01-20 2012-08-28 Himax Media Solutions, Inc. Multi-format video decoder and related decoding method
EP2942957A1 (en) * 2010-07-02 2015-11-11 HUMAX Holdings Co., Ltd. Apparatus for decoding images for intra-prediction
US9508185B2 (en) * 2011-05-02 2016-11-29 Sony Interactive Entertainment Inc. Texturing in graphics hardware
TWI618397B (zh) * 2012-12-21 2018-03-11 杜比實驗室特許公司 在高位元深度視訊的可適性編碼中,高精度升取樣
KR20230045102A (ko) 2017-09-28 2023-04-04 삼성전자주식회사 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
WO2022061613A1 (zh) * 2020-09-23 2022-03-31 深圳市大疆创新科技有限公司 视频编码装置、方法、计算机存储介质和可移动平台

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11266460A (ja) 1994-03-24 1999-09-28 Discovision Assoc ビデオ情報処理回路
KR19990080824A (ko) * 1998-04-22 1999-11-15 윤종용 공통 포맷을 이용하는 영상 포맷 변환 장치와 그 방법
KR19990082346A (ko) * 1996-12-06 1999-11-25 모리시다 요이치 영상신호의 전송, 부호화, 복호화 방법 및 장치와 광디스크의기록 및 재생방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4474288B2 (ja) * 2003-01-10 2010-06-02 トムソン ライセンシング 符号化された画像における誤り隠蔽のための補間フィルタの定義
EP1536647A1 (en) * 2003-11-26 2005-06-01 STMicroelectronics Limited A video decoding device
EP1733562A1 (en) * 2004-03-31 2006-12-20 Koninklijke Philips Electronics N.V. Motion estimation and segmentation for video data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11266460A (ja) 1994-03-24 1999-09-28 Discovision Assoc ビデオ情報処理回路
KR19990082346A (ko) * 1996-12-06 1999-11-25 모리시다 요이치 영상신호의 전송, 부호화, 복호화 방법 및 장치와 광디스크의기록 및 재생방법
KR19990080824A (ko) * 1998-04-22 1999-11-15 윤종용 공통 포맷을 이용하는 영상 포맷 변환 장치와 그 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010044569A2 (ko) * 2008-10-16 2010-04-22 에스케이텔레콤 주식회사 참조 프레임 생성 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2010044569A3 (ko) * 2008-10-16 2010-07-08 에스케이텔레콤 주식회사 참조 프레임 생성 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US9686549B2 (en) 2008-10-16 2017-06-20 Sk Telecom Co., Ltd. Method and apparatus for generating a reference frame and method and apparatus for encoding/decoding image using the same
US9736475B2 (en) 2008-10-16 2017-08-15 Sk Telecom Co., Ltd. Method and apparatus for generating a reference frame and method and apparatus for encoding/decoding image using the same

Also Published As

Publication number Publication date
KR20070023449A (ko) 2007-02-28
US20070047651A1 (en) 2007-03-01
JP2007060673A (ja) 2007-03-08
EP1758401A2 (en) 2007-02-28

Similar Documents

Publication Publication Date Title
KR100718135B1 (ko) 멀티 포맷 코덱을 위한 영상 예측 장치 및 방법과 이를이용한 영상 부호화/복호화 장치 및 방법
EP3043563B1 (en) Moving picture encoding and decoding method, and a device and program that use this method
US8325805B2 (en) Video encoding/decoding apparatus and method for color image
JP5385291B2 (ja) 副画素動き推定を利用したインター予測符号化/復号化の方法及び装置
CA2452632C (en) Method for sub-pixel value interpolation
TWI501629B (zh) 影像編碼方法、影像解碼方法、影像編碼裝置、影像解碼裝置及該等之程式
EP1766992A1 (en) Motion compensation method
JP4875007B2 (ja) 動画像符号化装置、動画像符号化方法、及び、動画像復号化装置
KR20080086771A (ko) 영상의 부호화, 복호화 방법 및 장치
JP5766815B2 (ja) 画像符号化方法、および画像符号化装置
KR101456487B1 (ko) 부화소 단위의 움직임 예측을 이용한 영상 부호화, 복호화방법 및 그 장치
JP5552092B2 (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2014171097A (ja) 符号化装置、符号化方法、復号装置、および、復号方法
JPWO2017122604A1 (ja) 動画像符号化装置、動画像符号化方法、及び、動画像符号化プログラムが記憶された記憶媒体
TWI504236B (zh) 影像編碼方法、影像解碼方法、影像編碼裝置、影像解碼裝置及該等之程式
KR101690253B1 (ko) 영상 처리 장치 및 그 방법
JP5571542B2 (ja) 映像符号化方法、及び映像復号方法
KR101462959B1 (ko) 확장 블록 필터링을 이용한 비디오 부호화, 복호화 방법 및 장치
US11202082B2 (en) Image processing apparatus and method
CN114598877A (zh) 帧间预测方法及相关设备
JP5102810B2 (ja) 画像補正装置及びそのプログラム
JP4552263B2 (ja) ディジタル信号処理装置および方法、並びにディジタル画像信号処理装置および方法
CN114982228A (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
JPH10145795A (ja) 動画像符号化方法、復号方法、動画像符号化装置および動画像復号装置
KR102038818B1 (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
LAPS Lapse due to unpaid annual fee