KR100681971B1 - 모션 추정 및 보상을 위한 서브-픽셀 보간처리 - Google Patents

모션 추정 및 보상을 위한 서브-픽셀 보간처리 Download PDF

Info

Publication number
KR100681971B1
KR100681971B1 KR1020030022415A KR20030022415A KR100681971B1 KR 100681971 B1 KR100681971 B1 KR 100681971B1 KR 1020030022415 A KR1020030022415 A KR 1020030022415A KR 20030022415 A KR20030022415 A KR 20030022415A KR 100681971 B1 KR100681971 B1 KR 100681971B1
Authority
KR
South Korea
Prior art keywords
pixel
stage
value
final
shift
Prior art date
Application number
KR1020030022415A
Other languages
English (en)
Other versions
KR20030081116A (ko
Inventor
스리니바산스리드하
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20030081116A publication Critical patent/KR20030081116A/ko
Application granted granted Critical
Publication of KR100681971B1 publication Critical patent/KR100681971B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F17STORING OR DISTRIBUTING GASES OR LIQUIDS
    • F17CVESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
    • F17C1/00Pressure vessels, e.g. gas cylinder, gas tank, replaceable cartridge
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F17STORING OR DISTRIBUTING GASES OR LIQUIDS
    • F17CVESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
    • F17C2205/00Vessel construction, in particular mounting arrangements, attachments or identifications means
    • F17C2205/01Mounting arrangements
    • F17C2205/0153Details of mounting arrangements
    • F17C2205/0188Hanging up devices
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F17STORING OR DISTRIBUTING GASES OR LIQUIDS
    • F17CVESSELS FOR CONTAINING OR STORING COMPRESSED, LIQUEFIED OR SOLIDIFIED GASES; FIXED-CAPACITY GAS-HOLDERS; FILLING VESSELS WITH, OR DISCHARGING FROM VESSELS, COMPRESSED, LIQUEFIED, OR SOLIDIFIED GASES
    • F17C2270/00Applications
    • F17C2270/01Applications for fluid transport or storage
    • F17C2270/0134Applications for fluid transport or storage placed above the ground

Landscapes

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

Abstract

모션 추정 및 보상(예컨대, 비디오 인코더/디코더에서)을 위한 다양한 기술 및 툴이 개시되어 있다. 예를 들면, 비디오 인코더 또는 비디오 디코더가 최종 값(예로서 16비트 중간 값 및 8비트 출력 값)보다 큰 동적 범위(비트 단위)를 가진 중간 픽셀 값을 이용하여 서브-픽셀 샘플 위치에서 픽셀 값을 계산한다. 인코더 또는 디코더는 제1 스테이지로부터 제2 스테이지로 시프팅을 적어도 부분적으로 지연하거나, 다수 스테이지 보간처리의 제1 또는 다른 중간 스테이지에서 클램핑을 스킵할 수도 있다.
모션 추정, 모션 보상, 비디오 인코더, 비디오 디코더, 서브-픽셀 값, 다수 스테이지 보간처리

Description

모션 추정 및 보상을 위한 서브-픽셀 보간처리{SUB-PIXEL INTERPOLATION IN MOTION ESTIMATION AND COMPENSATION}
도 1은 종래 기술에 따른 비디오 인코더에서의 모션 추정을 나타내는 도.
도 2는 종래 기술에 따른 서브-픽셀 모션 추정 및 보상에 있어서의 보간처리를 위한 서브-픽셀 위치를 나타내는 차트.
도 3은 본 발명에 개시된 수개의 실시예가 구현되는 적절한 계산 환경의 블록도.
도 4는 본 발명에 개시된 수개의 실시예에 이용되는 일반화된 비디오 인코더 시스템의 블록도.
도 5는 본 발명에 개시된 수개의 실시예에 이용되는 일반화된 비디오 디코더 시스템의 블록도.
도 6은 서브-픽셀 모션 추정 및 보상 동안에 픽셀 값 보간처리를 위한 위치를 나타내는 차트.
도 7은 서브-픽셀 위치를 위한 보간처리된 픽셀 값을 계산하는데에 이용된 픽셀 값을 가진 정수 픽셀 위치를 나타내는 차트.
도 8은 서브-픽셀 위치에서 값을 보간처리하기 위한 2 스테이지 보간처리 기술을 나타내는 도.
도 9는 1/2-픽셀 수평, 1/2-픽셀 수직 샘플 위치 및 샘플 위치에서의 값을 계산하는데 이용되는 서브-픽셀 위치에서의 중간 값을 나타내는 차트.
도 10은 1/4-픽셀 수평 1/2-픽셀 수직 샘플 위치, 1/2-픽셀 수평 1/4-픽셀 수직 샘플 위치 및 샘플 위치에서의 값을 계산하는데 이용되는 서브-픽셀 위치에서의 중간 값을 나타내는 차트.
도 11은 1/4-픽셀 수평, 1/4-픽셀 수직 샘플 위치 및 샘플 위치에서의 값을 계산하는데 이용되는 서브-픽셀 위치에서의 중간 값을 나타내는 차트.
도 12는 향상된 동적 범위(비트 단위) 중간 값을 가진 다수 스테이지 보간처리 기술을 나타내는 도.
도 13은 스킵된 클램핑을 가진 다수 스테이지 보간처리를 나타내는 도.
도 14는 지연된 비트 시프팅을 가진 다수 스테이지 보간처리를 나타내는 도.
도 15는 스테이지-교대 라운딩 제어를 이용하는 다수 스테이지 보간처리를 나타내는 도.
도 16은 다수의 색도 라운딩 및 보간처리 모드들 중에서 선택을 하기 위한 기술을 나타내는 흐름도.
도 17은 제1 색도 라운딩 모드를 나타내는 테이블.
도 18은 제2 색도 라운딩 모드를 나타내는 테이블.
<도면의 주요부분에 대한 간단한 설명>
300: 계산 환경
310: 처리 유닛
320: 메모리
340: 저장 장치
350: 입력 장치
360: 출력 장치
370: 통신 접속 장치
380: 소프트웨어
400: 비디오 인코더 시스템
405: 현재 프레임
410: 모션 추정자
415: 모션 정보
420: 프레임 저장 장치
425: 선행 프레임
430: 모션 보상기
445: 나머지
460: 주파수 변환기
466: 역 주파수 변환기
470: 양자화기
476: 역양자화기
480: 엔트로피 코더
490: 버퍼
495: 압축된 비디오 정보
505: 재구성된 프레임
520: 프레임 저장 장치
525: 기준 프레임
530: 모션 보상기
545: 재구성된 나머지
560: 역 주파수 변환기
570: 역 양자화기
580: 엔트로피 디코더
590: 버퍼
595: 압축된 비디오 정보
본 발명은 비디오 코딩/디코딩 어플리케이션에서 모션(motion) 추정/보상을 위한 서브 픽셀 시프팅을 위한 기술 및 툴에 관한 것이다. 예컨대, 비디오 인코더 및 디코더는, 기준 프레임내의 서브 픽셀 위치에서의 픽셀 값에 대해 다수 스테이지 보간처리를 수행할 때 비트 시프팅을 지연시킨다.
디지털 비디오는 많은 양의 저장 및 전송 용량을 소모한다. 통상적인 미가공 디지털 비디오 시퀀스는 초당 15 또는 30개의 프레임을 포함하고 있다. 각 프 레임은 수십 또는 수십만개의 픽셀(펠(pels)이라고도 불림)을 포함할 수 있다. 각 픽셀은 영상의 작은 성분을 표현한다. 미가공 형태에서는, 컴퓨터가 보통 24비트를 갖는 한 픽셀을 표현한다. 예컨대, 한 픽셀은 그 픽셀의 계조 성분을 한정하는 8비트의 휘도(luminance)값(루마(luma)값이라고도 불림) 및 그 픽셀의 컬러 성분을 한정하는 8비트의 색도(chrominance)값(크로마(chroma)값이라고도 불림)을 포함할 수도 있다. 따라서, 통상적인 미가공 디지털 비디오 시퀀스의 초당 비트수, 즉 비트 레이트는 초당 5백만 비트 이상일 수 있다.
많은 컴퓨터들 및 컴퓨터 네트워크들은 미가공 디지털 비디오를 처리하기에는 자원이 부족하다. 이 때문에, 엔지니어들은 압축(코딩 또는 인코딩이라고도 함)을 이용하여 디지털 비디오의 비트 레이트를 감소시킨다. 압축은 무손실일 수 있으며 이 경우에 비디오의 품질이 손상되지 않지만 비디오의 복잡성에 의해 비트 레이트의 감소가 제한된다. 또는, 압축이 손실일 수 있으며 이 경우에 비디오 품질이 손상되지만 비트 레이트의 감소가 더 극적이다. 압축 해제는 압축의 반대이다.
일반적으로, 비디오 압축 기술은 프레임내 압축(intraframe compression)과 프레임간 압축(interframe compression)을 포함한다. 프레임내 압축 기술은 통상적으로 I 프레임이나 키(key) 프레임이라고 불리는 개별 프레임을 압축한다. 프레임간 압축 기술은 통상적으로 예측 프레임, P 프레임이나 B 프레임이라고 불리는 선행 및/또는 후속 프레임에 대하여 프레임을 압축한다.
마이크로소프트사의 Windows Media Video, version 8("WMV8")은 비디오 인코 더 및 비디오 디코더를 포함하고 있다. WMV8 인코더는 프레임내 및 프레임간 압축을 이용하며, WMV8 디코더는 프레임내 및 프레임간 압축해제를 이용한다. WMV8 인코더에서의 프레임간 압축은 블록 단위 모션 보상 예측 코딩(block-based motion compensated prediction coding)을 이용하며 잔류 오차(residual error)의 변환 코딩이 뒤따른다.
WMV8에서, 한 프레임은 세개의 픽셀 평면, 즉 휘도 픽셀 값들의 하나의 휘도(Y) 평면 및 색도 픽셀 값들의 2개의 색도(U, V) 평면으로서 표현된다. Y 평면의 해상도는 수평 및 수직으로 U 및 V 평면의 해상도의 두배이다. 그래서, 320픽셀×240픽셀 프레임은 320픽셀×240픽셀 Y 평면과 160픽셀×120픽셀 U 및 V 평면을 갖는다.
WMV8 인코더는 예측 프레임을 8×8 픽셀 블록들로 분할한다. 4개의 8×8 휘도 블록과 2개의 함께 위치하는 8×8 색도 블록(U 색도 평면용 하나 및 V 색도 평면용 하나)이 16×16 매크로 블록을 형성한다. 따라서, 각각의 16×16 매크로 블록은 4개의 8×8 휘도 블록 및 2개의 8×8 색도 블록을 포함한다.
WMV8 인코더는 예측 프레임의 매크로 블록에 대하여 모션 추정을 수행한다. 모션 추정은, 예측 프레임의 매크로 블록을 찾아서 기준 프레임으로부터의 매크로 블록과 매칭시킴으로써, 예측 프레임의 매크로 블록의 모션을 근사한다(approximate). 도 1에서, 예컨대, WMV8 인코더는 예측 프레임(110)의 매크로 블록(115)에 대한 모션 벡터를 계산한다. 모션 벡터를 계산하기 위하여, 인코더는 기준 프레임(130)의 탐색 영역(135) 내를 탐색한다. 탐색 영역(135) 내에 서, 인코더는 양호한 매칭을 찾기 위하여 예측 프레임(110)으로부터의 매크로 블록(115)의 휘도값을 기준 프레임(130)으로부터의 여러 후보 블록들의 휘도값과 비교한다. WMV8 인코더는 모션 벡터 정밀도를 스위칭할 수도 있고, 정수, 1/2 또는 1/4-픽셀 수평 해상도 및 정수 또는 1/2-픽셀 수직 해상도를 갖는 모션 벡터와 탐색 범위를 이용할 수도 있다. WMV8 인코더는 서브-픽셀 정밀 모션 벡터로 비디오 시퀀스 내의 서브-픽셀 모션을 근사할 수 있다.
모션 보상중에, WMV8 인코더는 예측 프레임의 매크로 블록에 대한 모션 벡터를 이용하여 기준 프레임으로부터의 매크로 블록에 대한 예측자를 결정한다. 모션 예측된 매크로 블록 각각에 대하여, WMV8 인코더는 원래 매크로 블록과 그 예측자 사이의 차이(나머지 또는 오차라고 불림)를 계산한다. WMV8 인코더는 나머지를 블록으로 분할하고 나머지 블록들을 손실 압축한다. 예측 프레임의 모션 예측 매크로 블록을 재구성하기 위하여, WMV8 인코더는 나머지를 압축해제하고 이들을 각각의 매크로 블록에 대한 예측자에 가산한다.
WMV8 디코더는 또한 예측 프레임의 매크로 블록에 대한 모션 벡터를 이용하여 기준 프레임으로부터의 매크로 블록에 대한 예측자를 결정한다. 예측 프레임의 모션 예측 매크로 블록을 재구성하기 위하여, WMV8 디코더는 나머지를 압축해제하고 이들을 그 매크로 블록에 대한 예측자에 가산한다.
모션 추정 또는 보상 중에, 모션 벡터가 서브-픽셀 정밀도(즉, 1/2-픽셀 또는 1/4-픽셀)를 갖는 경우에, WMV8 인코더 또는 디코더는 기준 프레임내의 서브-픽셀 위치에서의 픽셀 값을 결정해야 한다. WMV8 인코더 또는 디코더는 보간처리 필 터를 이용하여 서브-픽셀 위치에 대한 값들을 생성한다. 도 2는 서브-픽셀 샘플 위치들(H0, H1, H2)을 나타내며, 이 위치들은 정수 픽셀 값들(a, b, c, ..., p)의 보간처리에 의해 계산된 값들을 갖는다.
1/2-픽셀 모션 정밀도로 동작하는 경우에, 3개의 별개의 1/2-픽셀 위치들(H0, H1, H2)에서의 휘도 픽셀 값에 이용된 보간처리 필터들은
H0 = (f + g + R2) >> 1 (1),
H1 = (f + j + R2) >> 1 (2), 및
H2 = (f + g + j + k + R1) >> 2 (3)
이며, 여기에서 R1 및 R2는 특정 프레임에 대한 라운딩 모드를 나타내는 1비트 라운딩 제어 플래그(rounding-control flag)에 의해 제어되는 라운딩 제어값들이다. 라운딩 제어 플래그가 0으로 설정되면, R1 = 2이고, R2 = 1이다. 라운딩 제어 플래그가 1로 설정되면, R1 = R2 = 0 이다. 라운딩 제어 플래그의 값은 각 P 프레임에 대하여 1과 0 사이에서 교대한다. 각 I 프레임에서는, 라운딩 제어 플래그의 값이 0으로 리세트된다. 따라서, 라운딩 제어는 프레임 단위로 작동한다.
식 (1), (2) 및 (3)은 겹선형(bilinear) 보간처리의 예이다. 겹선형 보간처리는 빠르며 픽셀 값을 평활화시키는 경향이 있다. 평활화는 (양자화 노이즈의 감지력을 감소시키는 것과 같은) 바람직한 효과들을 가질 수 있지만, 유효 픽셀 정보의 손실을 초래할 수도 있다.
1/4-픽셀 모션 벡터 해상도에 대하여, WMV8 인코더 또는 디코더는 우선 겹삼차(bicubic) 필터를 이용하여 1/2-픽셀 위치에서의 휘도 픽셀 값을 보간처리한다. 겹삼차 보간처리는 겹선형 보간처리보다는 느리지만, 에지값을 유지하고 유효 픽셀 정보의 손실을 덜 초래하는 경향이 있다. 3개의 별개의 1/2-픽셀 위치들(H0, H1, H2)에 대한 겹삼차 필터는
H0 = (-e + 9f + 9g - h + 8) >> 4 (4),
H1 = (-b + 9f + 9j - n + 8) >> 4 (5), 및
H2 = (-t0 + 9t1 + 9t2 - t3 + 8) >> 4 (6)
이며, t0, t1, t2, t3는 다음과 같이 계산된다.
t0 = (-a + 9b + 9c - d + 8) >> 4 (7)
t1 = (-e + 9f + 9g - h + 8) >> 4 (8)
t2 = (-i + 9j + 9k - l + 8) >> 4 (9), 및
t3 = (-m + 9n + 9o - p + 8) >> 4 (10)
식 (4)~(10)은 입력 값 범위 이외의 출력을 초래할 수 있다. 예컨대, 8비트 입력(범위 0 ... 255)에 대하여, 0 255 255 0의 일련의 값은 식 (4)~(10)의 어디에서도 287의 출력 값을 생성한다. 그래서, WMV8 인코더 또는 디코더는 식 (4)~(10)중 임의의 식의 출력 값을 유효 범위 내에 있도록 클램핑(또는 "클립(clip)")한다. 예컨대, 8비트 출력 값에 대하여, 0보다 작은 값은 0으로 변하고, 255보다 큰 값은 255로 변한다. 클램핑은 범위 문제를 처리하지만, 계산 속도를 느리게 한다. 또한, 클램핑은 정확성의 손실을 초래한다.
WMV8 인코더 또는 디코더는 후속 보간처리 스테이지에서 어느 1/4-픽셀 위치에서의 픽셀 값을 계산한다. 이들 1/4-픽셀 위치는 2개의 1/2-픽셀 위치나 하나의 정수 픽셀 위치와 하나의 1/2-픽셀 위치 사이에 수평으로 위치한다. 이들 1/4-픽셀 위치에 대하여, WMV8 인코더 또는 디코더는 라운딩 제어 없이 2개의 수평 인접 1/2-픽셀/정수 픽셀 위치를 이용하는 겹선형 보간처리(즉, (x + y +1) >> 1)를 이용한다.
일단 휘도 모션 벡터가 계산되면, WMV8 인코더 또는 디코더는 함께 위치하는 색도 모션 벡터를 유도한다. WMV8 내의 색도 평면은 수평 및 수직으로 휘도 평면의 1/2이기 때문에, 휘도 모션 벡터 값들은 적절한 색도 모션 벡터 값들로 스케일링되어야 한다. WMV8에서, 이러한 변환 처리는 휘도 모션 벡터를 반으로 나누고 결과적인 색도 모션 벡터를 1/2-픽셀 정밀도로 라운딩하는 것을 포함한다. 따라서, 1/2-픽셀 정밀도를 갖는 휘도 모션 벡터는 1/4-픽셀 정밀도를 갖는 색도 모션 벡터로 변환되지 않는다. 더욱이, WMV8에서의 색도 라운딩은 사용자에 의해 수정되거나 선택될 수 없는 단일 모드에서 동작한다.
WMV8에서, 기준 프레임의 서브-픽셀 위치에서의 픽셀 값들은 어떤 환경에서는 언더플로우(underflow) 또는 오버플로우(overflow)를 보일 수 있다. 예컨대, 인접하는 정수 픽셀 위치 값이 255이고 인접하는 1/2-픽셀 위치 값이 287(0 + 9*255 + 9*255 - 0 + 8 >> 4 = 287)(255 + 287 + 1 >> 1 = 271)이라면, 1/4-픽셀 위치에서의 휘도 픽셀 값은 (0 ... 255의 범위를 벗어난) 271일 수 있다. 이 문제를 처리하기 위하여, 나머지 블록을 매크로 블록에 대한 예측자에 가산한 후에, WMV8 인코더 및 디코더는 필요하다면 그 매크로 블록에 대한 재구성된 값들을 0 ... 255의 범위내에 있도록 클램핑한다.
WMV8과는 별도로, 몇몇의 국제 규격이 비디오 압축 및 압축해제에 관계하고 있다. 이들 규격은 MPEG(Motion Picture Experts Group) 1, 2 및 4 규격과 ITU(International Telecommunication Union)으로부터의 H.261, H.262 및 H.263 규격을 포함한다. 이들 규격은 이용된 압축 기술의 세부 사항에 있어서 WMV8과는 통상적으로 상이하지만, WMV8과 같이, 이들 규격도 프레임내 및 프레임간 압축의 조합을 이용한다.
몇몇의 규격(예컨대, MPEG 4 및 H.263)은 겹선형 필터와 기본 라운딩 제어를 이용하는 1/2-픽셀 모션 추정 및 보상을 제공한다. 더욱이, H.263에서는, 이론적으로 1/4-픽셀 해상도(즉, 1/2-픽셀 휘도 모션 벡터의 해상도의 1/2)를 갖는 색도 모션 벡터가 다른 1/2-픽셀 또는 풀(full) 픽셀 정밀도로 라운딩되어, 1/4-픽셀 값들이 색도 공간내에 허용된다. 규격에서의 모션 추정/보상에 대한 추가적인 세부 사항들에 대하여는 규격의 명세(specification) 자체를 참조한다.
모션 추정 및 보상은 효과적인 압축 기술이지만, (WMV8 및 전술한 규격들에서와 같이) 다양한 이전의 모션 추정/보상 기술은 다음과 같은 몇가지 불리함을 갖고 있다.
(1) 기준 프레임 내의 서브-픽셀 위치에서의 픽셀 값들을 계산할 때, 인코더 및 디코더는 불필요하게 중간 값들에서의 정밀도를 잃는다. 예컨대, WMV8에서의 1/4-픽셀 위치에 대한 픽셀 값을 계산할 때, 보다 큰 비트 깊이를 이용할 수 있다는 사실에도 불구하고 1/2-픽셀 위치에서의 중간 값들은 4비트씩 우측으로 시프트된다. 또한, WMV8 인코더/디코더는 1/4-픽셀 위치의 2개 스테이지 보간처리 중에 중간 값들을 클램핑하며, 이것은 계산 속도를 느리게 하고 불필요한 정밀도의 손실을 초래한다.
(2) 1/4-픽셀 모션 추정 및 보상에서의 픽셀 값들에 대한 보간처리는 많은 경우에 비효율적이다. 예컨대, WMV8에서, 1차원 1/4-픽셀 위치의 계산은 겹선형 필터의 이용을 수반하는 1/2-픽셀 위치에 대한 필터의 이용을 요구한다.
(3) 인코더 및 디코더는 다수 스테이지 보간처리에서 발생할 수 있는 라운딩 오차의 축적을 설명하지 못한다. 라운딩 오차는 예컨대 픽셀 값들이 비디오 시퀀스내의 프레임 단위로 라운딩 다운(rounding down)이 반복되는 경우에 발생한다. 이러한 라운딩 오차는 저품질, 저 비트 레이트 비디오 시퀀스내에 상당한 작위적인 결과를 초래할 수 있다. 예컨대, WMV8 인코더 및 디코더가 다수 스테이지의 1/4-픽셀 위치에서의 픽셀 값을 보간처리하는 경우에, 라운딩은 이용되지 않는다. 대신에, 각 스테이지의 결과들이 각각의 보간처리 스테이지에서 동일한 방식으로 (라운딩 제어 없이) 라운딩된다.
(4) 색도 라운딩은 1/4-픽셀 정밀도에 대하여 수행되지 않으며, 색도 모션 벡터 라운딩 선택에 대하여는 어떠한 제어도 수행되지 않는다. 예컨대, WMV8 인코 더 및 디코더는 모든 색도 모션 벡터를 1/2-픽셀 값으로 라운딩하고 하나의 모드로만 작동한다.
디지털 비디오에는 모션 추정 및 보상이 대단히 중요하기 때문에, 모션 추정 및 보상이 풍부하게 개발된 분야라는 것은 놀라운 일이 아니다. 그러나, 이전의 모션 추정 및 보상 기술의 이점이 아무리 많다고 해도 다음의 기술 및 툴(tool)의 이점을 갖지 못한다.
요약하면, 모션 추정 및 보상을 위한 다양한 기술과 툴이 상세한 설명에 개시되어 있다. 비디오 코딩 및 디코딩 애플리케이션에서, 예로서, 다수 스테이지 보간처리는 특정의 서브 샘플 위치에서 값을 계산하는 데에 이용될 수도 있다. 제1 또는 중간 스테이지 동안에 계산된 중간 값은 최종 값의 동적 범위보다 더 넓은 동적 범위를 가진다. 제1 또는 중간 스테이지 동안의 클램핑은 스킵될 수도 있다. 또한, 제1 또는 중간 스테이지 동안에 수행된 비트 시프팅은 최종 스테이지까지 지연될 수도 있다. 다양한 기술 및 툴이 독립적으로 또는 조합하여 이용될 수도 있으며, 이로써 서브 샘플 위치에서의 최종 값이 계산되는 정밀도를 향상시킬 수 있다. 이렇게 정밀도가 향상됨으로써 압축된 비디오 시퀀스의 전체적인 품질이 향상된다.
본 발명의 일 태양에 따르면, 비디오 인코더 및 디코더와 같은 콤포넌트는 하나 이상의 근접한 서브 샘플 위치에서 하나 이상의 중간 값에 적어도 부분적으로 기초하여 특정의 서브 샘플 위치에서 최종 값을 계산한다. 최종 값은 x 비트의 최 종 동적 범위를 가지며, 하나 이상의 중간 값은 y 비트의 중간 동적 범위를 가지며, 여기서 y는 x 보다 크다.
본 발명의 다른 태양에 따르면, 비디오 인코더 또는 디코더는 다수 스테이지의 보간처리를 이용하여 복수의 비디오 프레임의 기준 비디오 프레임에서 기준 비디오 프레임내의 소수적(fractional) 픽셀 위치에서 최종 픽셀 값을 계산한다. 다수 스테이지는 적어도 제1 스테이지와 최후 스테이지를 포함한다. 이러한 계산은 제1 스테이지 동안에 하나 이상의 중간 픽셀 값을 클램핑하는 것을 스킵하는 것을 포함한다. 이러한 계산은 최후 스테이지 동안에 소수적 픽셀 위치에서 최종 픽셀 값을 클램핑하는 것을 더 포함한다.
본 발명의 다른 태양에 따르면, 비디오 인코더 또는 디코더는 다수 스테이지의 보간처리를 이용하여 특정의 소수적 샘플 위치의 값을 계산한다. 이러한 계산은 그 값의 정밀도를 증가시키기 위해 다수 스테이지의 제1 스테이지로부터 다수 스테이지의 제2 스테이지까지 비트 시프팅을 지연시키는 것을 포함한다.
이러한 다양한 기술과 툴은 종래기술에 있어서 모션 추정 및 보상의 여러가지 단점을 해결한다. 이러한 다양한 기술과 툴은 서로 조합되어 또는 독립적으로 이용될 수 있다. 본 발명의 부수적인 특징 및 이점은 이하의 상세한 설명과 첨부된 도면으로부터 분명하게 될 것이다.
본 발명의 실시예들은 모션 추정 및 보상시에 서브-픽셀 보간처리를 위한 기술 및 툴에 관한 것이다. 몇몇 실시예들은, 보간처리시의 후속 스테이지까지 클램핑 및/또는 비트 시프팅(정밀도의 손실을 초래할 수 있는 작업)을 지연함으로써 다수 스테이지 보간처리시의 정밀도를 유지하기 위한 기술 및 툴에 관한 것이다. 다른 실시예들은 다수 스테이지 보간처리를 위한 효율적인 필터 또는 라운딩 작업에 관한 것이다.
인코더 또는 디코더는 기준 프레임이나 하나 이상의 블록이나 매크로 블록과 같은 프레임의 일부에 대하여 서브-픽셀 보간처리를 수행한다. 인코더/디코더는 기준 프레임 내에서 서브-픽셀 위치에서의 픽셀 값을 계산한다. 인코더/디코더는 다음에 서브-픽셀 정밀 모션 벡터를 이용하여 모션 보상을 수행할 수도 있다.
일부 실시예에서는, 비디오 인코더 또는 비디오 디코더가 비디오 코딩 또는 디코딩 애플리케이션에서 서브-픽셀 보간처리를 수행한다. 대안적으로, 다른 인코더 또는 디코더, 또는 다른 형태의 컴포넌트가 다른 형태의 애플리케이션에 후술하는 서브-픽셀 보간처리나 다른 기술을 수행한다.
기준 프레임에 대하여 서브-픽셀 보간처리를 수행하는 것에 대한 대안으로서, 일부 실시예에서는, 인코더/디코더는 필드, 오브젝트 층 또는 다른 화상에 대하여 서브-픽셀 보간처리를 수행한다.
일부 실시예에서는, YUV 컬러 공간에서 기준 프레임의 휘도 및 색도 평면에서의 픽셀 값들을 계산함으로써 서브-픽셀 보간이 발생한다. 대안적으로, 이 컬러 공간은 달라진다(예컨대, YIQ 또는 RGB).
다양한 기술 및 툴은 결합되어 또는 독립적으로 이용될 수 있다. 다른 실시예들은 전술한 기술 및 툴의 하나 이상을 수행한다. 이들 기술의 작업들이 표현을 위하여 특정한 연속 순서로 통상적으로 기재되지만, 특정한 순서 배열이 요구되지 않는다면 이런 식의 기재는 작업 순서의 약간의 재배열을 포함하고 있음을 이해해야 한다. 예컨대, 이어서 기재되는 작업들은 어떤 경우에는 재배열되거나 동시에 수행될 수도 있다. 또한, 단순화를 위하여, 플로우차트는 통상적으로 특정한 기술이 다른 기술과 함께 이용될 수 있는 여러 방식을 나타내지는 않는다.
일부 실시예에서, 비디오 인코더 및 디코더는 다양한 플래그 및 신호를 비트스트림에 이용한다. 특정 플래그 및 신호가 기재되지만, 이런 기재 방식이 그 플래그 및 신호에 대한 다른 약속(예컨대, 1이 아닌 0)을 포함하고 있음을 이해해야 한다.
Ⅰ. 계산 환경
도 3은 몇몇 실시예들이 수행될 수 있는 적합한 계산 환경(300)의 일반화된 예를 나타낸다. 상기 기술 및 툴이 다양한 범용 또는 전용 계산 환경에서 수행될 수 있으므로, 계산 환경(300)은 용도나 기능성의 범위에 어떤 제한을 가하려는 의도가 아니다.
도 3을 참조하면, 계산 환경(300)은 적어도 하나의 처리 유닛(310) 및 메모리(320)를 포함한다. 도 3에서, 이러한 가장 기본적인 구성(330)이 점선내에 포함되어 있다. 처리 유닛(310)은 컴퓨터 실행 가능한 명령을 실행하며 실제 또는 가상의 프로세서일 수 있다. 멀티 프로세싱 시스템에서는, 처리능력을 높이기 위하여 다수의 처리 유닛이 컴퓨터 실행 가능한 명령을 실행한다. 메모리(320)는 휘발성 메모리(예컨대, 레지스터, 캐시, RAM), 비휘발성 메모리(예컨대, ROM, EEPROM, 플래시 메모리 등) 또는 이들 둘의 조합일 수 있다. 메모리(320)는 비디오 인코더 및/또는 디코더와 같은 인코더 및/또는 디코더에서 서브-픽셀 보간처리 기술을 수행하는 소프트웨어(380)를 저장한다.
계산 환경은 추가적인 특징을 가질 수도 있다. 예컨대, 계산 환경(300)은 저장 장치(340), 하나 이상의 입력 장치(350), 하나 이상의 출력 장치(360) 및 하나 이상의 통신 접속 장치(370)를 포함한다. 버스, 컨트롤러 또는 네트워크 등의 상호 접속 기구(도시되지 않음)가 계산 환경(300)의 콤포넌트들을 상호 접속한다. 통상적으로, 오퍼레이팅 시스템 소프트웨어(도시되지 않음)는 계산 환경(300)에서 실행되는 다른 소프트웨어를 위한 작동 환경을 제공하며, 계산 환경(300)의 콤포넌트의 활동을 조정한다.
저장 장치(340)는 제거 가능하거나 제거 불가능할 수도 있으며, 자기 디스크, 자기 테이프나 카세트, CD-ROM, DVD 또는 정보를 저장하는데 이용될 수 있고 계산 환경(300) 내에서 액세스될 수 있는 임의의 다른 매체를 포함한다. 저장 장치(340)는 서브-픽셀 보간처리 기술을 수행하는 소프트웨어(380)에 대한 명령을 저장한다.
입력 장치(350)는 키보드, 마우스, 펜 또는 트랙볼(trackball)과 같은 터치형 입력 장치, 음성 입력 장치, 스캐닝 장치, 또는 계산 환경(300)으로의 입력을 제공하는 다른 장치일 수 있다. 오디오 또는 비디오 인코딩에 대하여, 입력 장치(350)는 사운드 카드, 비디오 카드, TV 튜너 카드, 아날로그나 디지털 형식의 오디오 또는 비디오 입력을 수용하는 유사 장치, 또는 오디오나 비디오 샘플을 계 산 환경(300)으로 읽어 들이는 CD-ROM이나 CD-RW일 수도 있다. 출력 장치(360)는 디스플레이, 프린터, 스피커, CD-라이터(writer) 또는 계산 환경(300)으로부터의 출력을 제공하는 다른 장치일 수 있다.
통신 접속 장치(370)는 통신 매체를 통하여 다른 계산 엔티티(entity)로의 통신을 가능하게 한다. 통신 매체는 컴퓨터 실행 가능 명령, 오디오나 비디오 입력 또는 출력, 또는 다른 데이터를 변조된 데이터 신호로 반송한다. 변조된 데이터 신호는 정보를 신호로 인코딩하는 식으로 설정 또는 변경된 하나 이상의 특성을 갖는 신호이다. 제한적이지 않은 예를 들면, 통신 매체는 전기적, 광학적, RF, 적외선, 청각적, 또는 다른 캐리어로 수행되는 유선 또는 무선 기술을 포함한다.
기술 및 툴은 컴퓨터 판독 가능 매체의 일반적인 콘텍스트로 기술될 수 있다. 컴퓨터 판독 가능 매체는 계산 환경내에서 액세스될 수 있는 임의의 이용 가능 매체이다. 제한적이지 않은 예를 들면, 계산 환경(300)에서, 컴퓨터 판독 가능 매체는 메모리(320), 저장 장치(340), 통신 매체 및 이들의 조합을 포함한다.
기술 및 툴은 목적 실제 또는 가상 프로세서 상에서 계산 환경에서 실행되는 프로그램 모듈에 포함된 것들과 같은 컴퓨터 실행 가능 명령의 일반적인 콘텍스트로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정한 태스크를 수행하거나 특정한 추상적인 데이터 형태를 구현하는 루틴, 프로그램, 라이브러리, 오브젝트, 클래스, 콤포넌트, 데이터 구조 등을 포함한다. 프로그램 모듈의 기능성은 여러 실시예들에서 원하는 대로 프로그램 모듈들 사이에서 조합되거나 분할될 수 있다. 프로그램 모듈을 위한 컴퓨터 실행 가능 명령은 국부적인 또는 분포된 계산 환경내 에서 실행될 수 있다.
표현을 위하여, 상세한 설명은 "판정하다" 및 "선택하다" 등의 용어를 이용하여 계산 환경내에서의 컴퓨터 동작들을 설명한다. 이들 용어는 컴퓨터에 의해 수행되는 동작들에 대한 높은 수준의 추상어이며 인간에 의해 수행되는 행위들과 혼동되어서는 안된다. 이들 용어에 대응하는 실제의 컴퓨터 동작들은 구현예에 따라 변화한다.
Ⅱ. 일반화된 비디오 인코더 및 디코더
도 4는 일반화된 비디오 인코더(400)의 블록도이고, 도 5는 일반화된 비디오 디코더(500)의 블록도이다.
인코더 및 디코더 내의 모듈들 사이에서 보여지는 관계들은 인코더 및 디코더에서의 정보의 주요 흐름을 나타내며, 다른 관계들은 단순화를 위하여 도시되어 있지 않다. 특히, 도 4 및 도 5는 보통 비디오 시퀀스, 프레임, 매크로 블록, 블록 등에 이용되는 인코더 설정, 모드, 테이블 등을 지시하는 부수적인 정보를 나타내지는 않는다. 그러한 부수적인 정보는 통상적으로 부수 정보의 엔트로피 인코딩 후에 출력 비트스트림으로 보내진다. 출력 비트스트림의 포맷은 윈도우즈 미디어(Widows Media) 비디오 포맷 또는 다른 포맷일 수 있다.
인코더(400) 및 디코더(500)는 블록 단위이며 4:2:0 매크로 블록 포맷을 이용하고, 각 매크로 블록은 4개의 8×8 휘도 블록(때때로 하나의 16×16 매크로 블록으로서 취급됨) 및 2개의 8×8 색도 블록(예컨대, 하나의 U 블록과 하나의 V 블록)을 포함한다. 대안적으로, 인코더(400) 및 디코더(500)는 오브젝트 단위이며, 다른 매크로 블록이나 블록 포맷을 이용하거나, 또는 8×8 블록 및 16×16 매크로 블록 이외의 크기나 구성의 픽셀들의 집합에 대한 동작을 수행한다.
원하는 압축 타입 및 구현예에 따라, 인코더나 디코더의 모듈이 부가, 생략, 다수의 모듈로의 분할, 다른 모듈과의 결합 및/또는 유사 모듈로의 대체될 수 있다. 대안적인 실시예에서, 다른 모듈 및/또는 모듈의 다른 구성을 갖는 인코더 또는 디코더는 전술한 기술의 하나 이상을 수행한다.
A. 비디오 인코더
도 4는 일반화된 비디오 인코더 시스템(400)의 블록도이다. 인코더 시스템(400)은 현재 프레임(405)을 포함하는 비디오 프레임의 시퀀스를 수신하고, 압축된 비디오 정보(495)를 출력으로서 생성한다. 비디오 인코더의 특정한 실시예들은 통상적으로 일반화된 인코더(400)의 변경 또는 보완된 버전을 이용한다.
인코더 시스템(400)은 예측 프레임(predicted frame) 및 키 프레임(key frame)을 압축한다. 표현을 위하여, 도 4는 인코더 시스템(400)을 통한 키 프레임을 위한 경로 및 앞으로 예측되는 프레임을 위한 경로를 나타낸다. 인코더 시스템(400)의 많은 콤포넌트들은 키 프레임 및 예측 프레임 양자를 압축하는데 이용된다. 이러한 콤포넌트들에 의해 수행되는 정확한 동작들은 압축되는 정보의 타입에 따라 변할 수 있다.
예측 프레임(p 프레임, 양방향 예측을 위한 b 프레임 또는 상호 코딩된 프레임이라고도 불림)은 하나 이상의 다른 프레임으로부터의 예측(또는 상이)을 통하여 표현된다. 예측 나머지는 예측된 것과 원래 프레임 사이의 차이이다. 반면에, 키 프레임(i 프레임, 코드내 프레임이라고도 불림)은 다른 프레임의 참조 없이 압축된다.
현재 프레임(405)이 앞으로 예측되는 프레임이라면, 모션 추정자(410)는 매크로 블록 또는 현재 프레임의 다른 집합의 픽셀들의 모션을, 프레임 저장 장치(420)내에 버퍼링(buffering)된 재구성된 선행 프레임(425)인 기준 프레임에 대하여 추정한다. 대안적인 실시예에서, 기준 프레임이 나중 프레임이거나 또는 현재 프레임이 양방향적으로 예측된다. 모션 추정자(410)는 모션 벡터와 같은 모션 정보(415)를 부수 정보로서 출력한다. 모션 보상자(430)는 모션 정보(415)를 재구성된 선행 프레임(425)에 가하여 모션 보상된 현재 프레임(435)을 형성한다. 그러나, 예측은 거의 완벽하지 않고, 모션 보상된 현재 프레임(435)과 원래 현재 프레임(405) 사이의 차이가 예측 나머지(445)이다. 대안적으로, 모션 추정자 및 모션 보상자는 다른 형태의 모션 추정/보상을 적용한다.
주파수 변환기(460)는 공간 도메인 비디오 정보를 주파수 도메인(즉, 스펙트럼) 데이터로 변환한다. 블록 단위의 비디오 프레임에 대하여, 주파수 변환기(460)는 이산 코사인 변환("DCT": Discrete Cosine Transform) 또는 DCT의 변형을 모션 예측 나머지 데이터의 블록에 적용한다. 대안적으로, 주파수 변환기(460)는 푸리에 변환(Fourier Transform)과 같은 다른 종래의 주파수 변환을 적용하거나 웨이브렛(wavelet) 또는 서브밴드(subband) 분석을 이용한다. 일부 실시예에서는, 주파수 변환기(460)는 주파수 변환을 키 프레임에 대한 공간 예측 나머지의 블록들에 적용한다. 주파수 변환기(460)는 8×8, 8×4, 4×8 또는 다른 크 기의 주파수 변환을 적용할 수 있다.
양자화기(470)는 다음에 공간 데이터 계수의 블록들을 양자화한다. 양자화기는 균일한 스칼라 양자화를 프레임 단위를 기초로하여 또는 다른 것을 기초로 하여 변화하는 스텝 사이즈(step-size)를 갖는 스펙트럼 데이터에 적용한다. 대안적으로, 양자화기는 다른 타입의 양자화를 스펙트럼 데이터 계수들, 예컨대 불균일 벡터나 비적응성 양자화에 적용하거나, 또는 주파수 변환을 이용하지 않는 인코더 시스템에서 공간 도메인 데이터를 직접 양자화한다. 적응성 양자화 이외에도, 인코더(400)는 프레임 드로핑(dropping), 적응성 필터링 또는 레이트 제어를 위한 다른 기술들을 이용할 수 있다.
재구성된 현재 프레임이 후속 모션 추정/보상의 필요가 있는 경우, 역양자화기(476)는 양자화된 스펙트럼 데이터 계수들에 대한 역양자화를 수행한다. 역 주파수 변환기(466)는 다음에 주파수 변환기(460)의 역동작을 수행하여, 재구성된 예측 나머지(예측 프레임용) 또는 재구성된 키 프레임을 생성한다. 현재 프레임(405)이 키 프레임이었다면, 재구성된 키 프레임이 재구성된 현재 프레임(도시되지 않음)으로서 취해진다. 현재 프레임(405)이 예측 프레임이었다면, 재구성된 예측 나머지가 모션 보상된 현재 프레임(435)에 가해져서 재구성된 현재 프레임을 형성한다. 프레임 저장 장치(420)는 다음 프레임의 예측에 이용하기 위하여 재구성된 현재 프레임을 버퍼링한다. 일부 실시예에서는, 인코더는 역블로킹(deblocking) 필터를 재구성된 프레임에 적용하여 프레임의 블록들내의 불연속성을 적응성 있게 평활화한다.
엔트로피 코더(entropy coder)(480)는 어떤 부수 정보(예컨대, 모션 정보(415), 양자화 스텝 사이즈) 뿐만 아니라 양자화기(470)의 출력을 압축한다. 통상적인 엔트로피 코딩 기술은 산술 코딩, 미분 코딩, 호프만(huffman) 코딩, 운영 길이(run length) 코딩, LZ 코딩, 사전(dictionary) 코딩 및 이들의 조합을 포함한다. 엔트로피 코더(480)는 통상적으로 다른 종류의 정보(예컨대, DC 계수, AC 계수, 다른 종류의 부수 정보)에 대하여 다른 코딩 기술을 이용하며, 특정 코딩 기술내에서 다수의 코드 테이블중에서 선택할 수 있다.
엔트로피 코더(480)는 압축된 비디오 정보(495)를 버퍼(490)내에 놓는다. 버퍼 레벨 지시자가 비트레이트 적응 모듈로 피드백된다. 압축된 비디오 정보(495)가 버퍼(490)로부터 일정한 또는 상대적으로 일정한 비트레이트로 격감되고, 그 비트레이트로의 후속 스트리밍(streaming)을 위하여 저장된다. 대안적으로, 인코더 시스템(400)은 압축 바로 다음에 압축된 비디오 정보를 스트리밍한다.
버퍼(490)의 앞 또는 뒤에, 압축된 비디오 정보(495)가 네트워크를 통하여 전송을 위하여 채널 코딩될 수 있다. 채널 코딩(channel coding)은 오차 검출 및 정정 데이터를 압축된 비디오 정보(495)에 적용할 수 있다.
B. 비디오 디코더
도 5는 일반화된 비디오 디코더 시스템(500)의 블록도이다. 디코더 시스템(500)은 비디오 프레임의 압축된 시퀀스에 대한 정보(595)를 수신하고 재구성된 프레임(505)을 포함하는 출력을 생성한다. 비디오 디코더의 특정 실시예들은 통상적으로 일반화된 디코더(500)의 변경 또는 보완된 버전을 이용한다.
디코더 시스템(500)은 예측 프레임 및 키 프레임을 압축해제한다. 표현을 위하여, 도 5는 디코더 시스템(500)을 통한 키 프레임을 위한 경로 및 앞으로 예측되는 프레임을 위한 경로를 나타낸다. 디코더 시스템(500)의 많은 콤포넌트들은 키 프레임 및 예측 프레임 양자를 압축해제하는데 이용된다. 이들 콤포넌트에 의해 수행되는 정확한 동작들은 압축되는 정보의 타입에 따라 변할 수 있다.
버퍼(590)는 압축된 비디오 시퀀스에 대한 정보(595)를 수신하고 수신된 정보를 엔트로피 디코더(580)에 이용 가능하게 한다. 버퍼(590)는 통상적으로 시간에 대하여 상당히 일정한 레이트로 정보를 수신하고, 지터 버퍼(jitter buffer)를 포함하여 대역폭이나 전송시의 단기간 변화를 평활화한다. 버퍼(590)는 재생 버퍼 및 이에 더하여 다른 버퍼를 포함할 수 있다. 대안적으로, 버퍼(590)는 변화하는 레이트로 정보를 수신한다. 버퍼(590)의 앞 또는 뒤에서, 압축된 비디오 정보가 채널 코딩되고 오차 검출 및 수정을 위하여 처리될 수 있다.
엔트로피 디코더(580)는 엔트로피 코딩된 부수 정보(예컨대, 모션 정보(515), 양자화 스텝 사이즈)뿐만 아니라 엔트로피 코딩된 양자화된 데이터를 엔트로피 디코딩하며, 통상적으로 인코더에서 수행된 엔트로피 인코딩의 역을 적용한다. 엔트로피 디코딩 기술은 산술 디코딩, 미분 디코딩, 호프만(Huffman) 디코딩, 운영 길이 디코딩, LZ 디코딩, 사전 디코딩 및 이들의 조합을 포함한다. 엔트로피 디코더(580)는 종종 다른 종류의 정보(예컨대, DC 계수, AC 계수, 다른 종류의 부수 정보)에 대하여 다른 디코딩 기술을 이용하며, 특정 디코딩 기술 내에서 다수의 코드 표중에서 선택할 수 있다.
재구성되는 프레임(505)이 앞으로 예측되는 프레임이라면, 모션 보상기(530)는 기준 프레임(525)에 대하여 모션 정보(515)를 적용하여 재구성되는 프레임(505)의 예측(535)을 형성한다. 예컨대, 모션 보상기(530)는 매크로 블록 벡터를 이용하여 기준 프레임(525)내의 매크로 블록을 찾는다. 프레임 버퍼(520)는 기준 프레임으로서의 이용을 위하여 미리 재구성된 프레임을 기억한다. 대안적으로, 모션 보상기는 다른 타입의 모션 보상을 적용한다. 모션 보상기에 의한 예측은 거의 완벽하지 않으며, 그래서 디코더(500)도 또한 예측 나머지를 재구성한다.
디코더가 후속 모션 보상을 위하여 재구성된 프레임을 필요로 하는 경우에, 프레임 저장 장치(520)는 다음 프레임의 예측시의 이용을 위하여 재구성된 프레임을 버퍼링한다. 일부 실시예에서는, 인코더가 역블로킹 필터(deblocking filter)를 재구성된 프레임에 적용하여 프레임의 블록에서의 불연속성을 적응성 있게 평활화한다.
역 양자화기(570)는 엔트로피 디코딩된 데이터를 역양자화한다. 일반적으로, 역 양자화기는 균일한 스칼라 역양자화를 프레임 단위의 기초로 하여 또는 다른것을 기초로하여 변화하는 스텝 사이즈를 갖는 엔트로피 디코딩된 데이터에 적용한다. 대안적으로, 역 양자화기는 다른 타입의 양자화를 데이터, 예컨대 불균일 벡터나 비적응성 양자화에 적용하거나, 또는 역 주파수 변환을 이용하지 않는 디코더 시스템에서 공간 도메인 데이터를 직접 역양자화한다.
역 주파수 변환기(560)는 양자화된 주파수 도메인 데이터를 공간 도메인 비디오 정보로 변환한다. 블록 단위의 비디오 프레임에 대하여, 역 주파수 변환기(560)는 역 DCT("IDCT") 또는 IDCT의 변형을 DCT 계수들의 블록에 적용하고, 모션 예측 나머지 데이터를 생성한다. 대안적으로, 주파수 변환기(560)는 푸리에 변환(Fourier Transform)과 같은 다른 종래의 역 주파수 변환을 적용하거나 웨이브렛 또는 서브밴드 합성을 이용한다. 일부 실시예에서는, 역 주파수 변환기(560)는 역 주파수 변환을 키 프레임을 위한 공간 예측 나머지의 블록들에 적용한다. 역 주파수 변환기(560)는 8×8, 8×4, 4×8 또는 다른 크기의 역 주파수 변환을 적용할 수 있다.
Ⅲ. 모션 추정 및 보상
프레임간 코딩은 프레임간의 시간적인 중복성을 이용하여 압축을 달성한다. 시간적인 중복성 감소는 현재 프레임을 코딩할 때의 예측자로서 이전에 코딩된 프레임을 이용한다. 이하의 실시예에서는, 보다 작은 비트수를 이용하여 정보를 코딩하기 위하여 비디오 인코더가 통상적인 비디오 시퀀스내의 시간적인 중복성을 이용한다. 비디오 인코더는 모션 추정을 이용하여 블록, 매크로 블록 또는 예측된 프레임의 다른 픽셀 세트의 모션을 기준 프레임(예컨대, 이전 코딩된 이전 프레임)에 대하여 파라미터화한다. (대응하는 디코더 뿐만 아니라) 비디오 인코더도 모션 보상을 이용하여 모션 정보를 이용하는 예측 프레임 및 기준 프레임을 재구성한다.
모션 보상은 기준 프레임을 변위시킴으로써 비디오 프레임(즉, 예측 프레임)에 대한 예측을 생성하는 처리이다. 전술한 바와 같이, 예측은 블록, 매크로 블록 또는 기준 프레임으로부터의 다른 데이터 세트에 대하여 형성된다. 또한, 통상적으로 변위는 직선적이며 예측되는 전체 타일(tile)에 대하여 일정하다. 이러한 변 위는 X 및 Y 방향을 따른 변위 또는 시프트에 대응하는 2개의 성분을 갖는 모션 벡터에 의해 정의된다. X(수평) 및 Y(수직) 모션 벡터 성분들은 현재 예측된 타일과 기준 프레임내의 대응하는 위치 사이의 변위를 나타낸다. 양의 값들은 현재 위치의 우측 하부의 위치를 나타낸다. 음의 값들은 현재 위치의 좌측 상부의 위치를 나타낸다.
일 구현예에서, 블록은 8×8 픽셀 타일이고, 매크로 블록은 16×16 픽셀 타일이며, 모션 벡터는 1/4-픽셀 정밀도로 정의된다. 다른 구현예에서는, 인코더 및 디코더는 전술한 하나 이상의 기술을 다른 해상도나 임의로 변하는 모션 벡터 및/또는 모션 벡터와는 다른 모션 정보를 이용하여 다른 크기의 타일 또는 임의로 변하는 크기의 타일에 적용한다.
모션 벡터 성분은 통상적으로 픽셀 변위를 통하여 종종 서브-픽셀 정밀도로 특정된다. 적절하게 정의된 모션 보상 필터를 이용하여 기준 프레임을 필터링함으로써 서브-픽셀 변위가 실현된다. 직선 서브-픽셀 모션 보상의 경우에, X 및 Y 성분은 고정 포인트 수치로서 표현된다. 이들 수치의 정수 부분은 풀-픽셀 시프트라고 불리며 소수 부분은 서브-픽셀 시프트라고 불린다. 서브-픽셀 시프트가 0인 경우에, 모션은 정수 픽셀이다. 가장 흔하게는, 이것은 기준 프레임으로부터의 블록 카피(block copy)로서 구현되어 예측자를 생성한다(이론적으로는 필터링의 일부 형식이 잠재적으로 적용될 수 있지만). 한편, 서브-픽셀 시프트가 0이 아닌 경우에, 기준 프레임의 정수 픽셀 위치로의 서브-픽셀 시프트에 대응하는 하나 이상의 필터를 적용함으로써 예측자가 생성된다. 따라서, 모션 보상 필터는 서브-픽셀 시프트 에 의해 정해진다.
서브-픽셀 시프트를 필터링 동작으로서 구현하기 위하여, 모션 보상 필터는 정수 픽셀 위치에서의 기준값에 기초하여 소수 픽셀 위치에서의 데이터 포인트를 보간처리한다. 일반적으로, 보간처리의 품질은 필터의 지원에 따라 증가한다. 일부 실시예는 겹선형 및 겹삼차 보간자에 대응하는 (각 방향으로) 분리가능한 2탭 및 4탭 필터를 이용한다.
일부 실시예에서는, 모션 보상 필터는 비트 시프트로서 구현된 정수 산술 및 나눗셈을 이용한다. 라운딩 제어 파라미터 R은 0 또는 1의 값을 취하며 이들 나눗셈에 대한 라운딩의 방향을 결정한다. 이 라운딩 제어 파라미터는 외부적으로 나타나는 상수로 설정되거나 또는 과거에 코딩된 정보로부터 내재적으로 유도될 수도 있다.
도 6은 일부 실시예에 서브-픽셀 모션 추정 및 보상 중에 이용된 기준 프레임(600)내의 정수 픽셀 및 서브-픽셀 위치를 나타낸다. 기준 프레임(600)은, 각 방향의 1/4-픽셀 간격으로, 인코더 또는 디코더가 특정 변위에 대한 픽셀 값을 보간처리할 수 있는 서브-픽셀 위치를 포함한다. 기준 프레임(600)의 정수 위치들(a 내지 p)이 도 6의 어두운 원으로서 나타나는 반면, 정수 위치들 사이에 개재된 1/4-픽셀 및 1/2-픽셀 위치들은 어둡지 않은 원으로서 나타나 있다. 위치들 P0 내지 P8은 표 1에 나타낸 바와 같이 9개의 대표적인 서브-픽셀 위치를 나타낸다.
표 1: 대표적인 서브-픽셀 위치들
위치 설명
P0 1/4-픽셀 수평, 풀-픽셀 수직
P1 1/2-픽셀 수평, 풀-픽셀 수직
P2 풀-픽셀 수평, 1/4-픽셀 수직
P3 1/4-픽셀 수평, 1/4-픽셀 수직
P4 1/2-픽셀 수평, 1/4-픽셀 수직
P5 풀-픽셀 수평, 1/2-픽셀 수직
P6 1/4-픽셀 수평, 1/2-픽셀 수직
P7 1/2-픽셀 수평, 1/2-픽셀 수직
P8 풀-픽셀 수평, 3/4-픽셀 수직
P8에 예시된 3/4-픽셀 위치는 1/4-픽셀 위치의 특별한 경우로 생각될 수 있다. 즉, 풀-픽셀 위치로부터의 1/4-픽셀 시프트이다. 다른 3/4-픽셀 위치들도 가능하지만 나타나 있지는 않다. 서브-픽셀 위치들 P0 내지 P8은 보간처리 필터에 대한 나중의 설명에서 참조된다. 대안적인 실시예에서, 인코더 및 디코더는 추가적인 또는 다른 서브-픽셀 위치, 예컨대 각 방향의 1/4-픽셀 이외의 간격의 위치에서의 값들을 보간처리한다.
A. 근사 겹삼차 보간처리 필터
일부 실시예에서의 서브-픽셀 보간처리를 위하여, 비디오 인코더 및 디코더는 다음과 같이 정의되는 선형(linear)/겹선형(bilinear) 필터 및/또는 삼차(cubic)/겹삼차(bicubic) 필터를 이용한다.
선형 보간자는 보간처리되는 포인트에 가장 가까운 2개의 격자 포인트에서의 알려진 값들을 이용하는 1차원의 선형 또는 1차 다항식이다. 보간처리되는 포인트에서의 선형 함수의 값이 선형 보간이다. 선형 시스템의 방정식을 풂으로써 선형 다항식의 곱들이 계산되어 선형 필터의 계수를 결정한다. 선형 보간자 필터는 2개의 필터 탭(tap)에 의해 정의된다. 겹선형 보간자는 2차원으로 분리가능한 선형 보간자이다.
삼차(cubic) 보간자는 보간처리되는 격자 포인트에 가장 가까운 4개의 포인트에서의 알려진 값들을 이용하는 1차원의 삼차 또는 3차 다항식이다. 보간처리되는 삼차 함수의 값이 삼차 보간이다. 시스템의 방정식을 풂으로써 삼차 다항식의 곱들이 계산되어 삼차 필터의 계수들을 결정한다. 삼차 보간자 필터는 4개의 필터 탭에 의해 정의된다. 겹삼차 보간자는 2차원으로 분리가능한 삼차 보간자이다.
선형 및 겹선형이라는 용어는 통상적으로 비디오 압축 및 압축해제 분야에서 상호 교환적으로 이용된다. 정상적인 2차원 보간처리에서, 1차원에서 수행된 보간처리 동작이 다른 차원에서 반복되며, 그래서 각 필터링 스테이지는 겹선형 필터링이라 불린다. 삼차 및 겹삼차라는 용어도 유사하게 상호 교환적이다.
이 명세서에서, 선형 및 겹선형이라는 용어는 1, 2 또는 그 이상의 차원에서의 필터링을 설명하는데 상호 교환적으로 이용된다. 이와 유사하게, 삼차 및 겹삼차라는 용어도 1, 2 또는 그 이상의 차원에서의 필터링을 설명하는데 상호 교환적으로 이용된다. 예컨대, 식 (11) 내지 (13)은 삼차 필터의 타입을 정의하지만, 기준 비디오 프레임에 대한 2스테이지 보간처리의 통상적인 적용시에 2스테이지 보간처리의 양 차원에 대하여 복제된 동작에 그 필터들이 이용되기 때문에 겹삼차 필터라고 불린다. 보다 일반적으로는, 필터링의 차원성은 콘텍스트로부터 알려진다.
일부 실시예에서는, 인코더 및 디코더가 서브-픽셀 위치에서의 값들을 보간처리하기 위하여 근사 겹삼차 필터를 이용한다. 예컨대, 인코더 및 디코더는 도 6에 나타낸 바와 같은 기준 프레임에서의 가능한 시프트 위치에서 다음과 같은 필터(그 F1이 겹삼차 필터이고 F2 및 F3이 근사 겹삼차 필터임)를 이용한다.
1/2-픽셀 시프트 F1: [-1 9 9 -1] (11)
1/4-픽셀 시프트 F2: [-4 53 18 -3] (12)
3/4-픽셀 시프트 F3: [-3 18 53 -4] (13)
실제로, 이 필터들도 필터 계수에 의해 잠재적으로 도입된 팽창을 보상하기 위하여 우측 시프트(예컨대, F1에 대하여 4비트, F2 및 F3에 대하여 6비트)를 포함한다. 연산자 >>는 우측 시프트 연산자이다. 우측 시프트 동작은 이진수의 비트를 우측으로 시프트하여 최하위 비트를 버리고 0을 최상위 비트로서 가산한다. 이 동작은 나머지를 버린 채 시프트된 비트 수의 2의 거듭제곱(예컨대, 3만큼의 우측 시프트는 23=8 만큼의 분할을 초래함)에 의한 간단한 나눗셈을 초래한다.
F2 및 F3의 필터 계수들은 4탭 필터인 실제의 1/4-픽셀 겹삼차 보간자에 느슨하게 기초하고 있다. 다음 식은 위치 P0에 대하여 실제의 1/4-픽셀 겹삼차 필터를 적용한 결과를 나타낸다.
(-7e + 105f + 35g - 5h) >> 7 (14)
계수 값들의 합은 128이고 필터링의 결과는 7비트만큼 우측으로 시프트된다. 근사한 겹삼차 필터(F2, F3)는 성능면에서는 순 겹삼차 필터에 근사하지만 다음 식에 나타낸 바와 같이 낮은 해상도를 갖는다.
(-7e + 105f + 35g - 5h) >> 7
= (-3.5e + 52.5f + 17.5g - 2.5h) >> 6
≒ (-4e + 53f + 18g - 3h) >> 6 (15)
많은 경우에, 순 겹삼차 필터를 이용하면 다수 스테이지 보간처리시에 정밀도의 비트 손실이 생기고, 그래서 근사 겹삼차 필터에 대한 정규화 인자가 적어도 1/2만큼 감소한다(즉, 우측 시프트가 1비트 이상 감소한다). 식 (15)의 근사 겹삼차 필터용으로 선택된 필터 계수들은, (예컨대 고주파 정보를 보존하기 위한) 주파수 도메인 행동(frequency domain behavior) 및 (예컨대, 어떤 비트레이트로 주어진 최저 왜곡을 달성하기 위한) 경험적 행동을 고려한 후에, 실제 겹삼차 필터의 라운딩에 기초하고 있다. 상세하게는, 필터 F2 및 F3는 여전히 4개의 필터 계수를 포함하고 있다(일반적으로, 필터에 보다 적은 수의 필터 계수를 이용하는 것은 실행 속도를 높이지만, 인접 픽셀내의 노이즈를 처리하기 위하여 충분한 필터 계수들이 이용되어야 한다). 필터 계수 값들은 합이 64가 되도록 조절되며, 이것은 보다 높은 해상도의 겹삼차 필터를 근사하는 동안 16 비트 산술을 이용하여 실행을 용이하게 한다. 여전히 겹삼차 필터를 근사하는 동안 합이 64인 다른 필터 계수 값들도 이용될 수 있다. 실질적으로 순 겹삼차 필터와 유사하게 작용하지만 보다 적은 지원 및/또는 보다 낮은 해상도를 갖는 필터는 "근사" 겹삼차 필터라 불린다. 필터가 실제로 순 겹삼차 필터와 유사한 작용을 하는지를 객관적으로 측정하는 한 방법은 근사 필터가 순 겹삼차 필터와 잘 상관하고 있는지(즉, 정의된 임계치 내에 있는지)를 점검하는 것이다. 일 구현예에서는, (가능한 한 1에 가까울 것이 요구되는) 필터에 대한 벡터들간의 각도의 코사인에 의해 상관이 측정되며, 임계치는 0.95이다. 다른 객관적인 또는 주관적인 측정, 다른 상관 측정 및/또는 임계치들도 이용될 수 있다. 예컨대, 합계가 효율적인 푸리에 변환이나 다른 수학 처리를 용이하게 하는 일부 다른 값이 되도록 근사 겹삼차 필터의 필터 계수들이 선택될 수도 있다.
이하에 보다 충분하게 설명되는 바와 같이, 도 7은 일반적으로 식 (11) 내지 (13)에서 윤곽이 잡혀진 겹삼차 필터에 대응하는 각 경우에 대한 보간처리된 픽셀을 계산하는데 이용되는 픽셀 값을 갖는 정수 픽셀을 나타낸다. P는 픽셀 값이 계산되는 서브-픽셀 위치를 나타낸다. l1, l2, l3 및 l4는 보간처리의 차원을 따른 정수 픽셀 위치들을 나타낸다. 도 7은 수평 보간처리이지만 동일한 동작 및 위치 배열이 수직 보간처리에도 적용된다.
대안적인 실시예에서, 인코더 및 디코더는 다른 및/또는 추가적인 보간처리 필터를 이용한다. 예컨대, 인코더 및 디코더는 겹선형(즉, 2탭) 필터를 이용하여 값을 보간처리한다. 예컨대, 도 6의 서브-픽셀 위치를 참조하면, P1, P5 및 P7 의 값을 결정하는데 이용되는 보간처리 필터들은 식 (1) 내지 (3)에 나타낸 필터들일 수도 있다.
B. 1차원 보간처리
여러 서브-픽셀 위치들에 대하여, 일부 실시예의 인코더 및 디코더는 오직 1 차원에서만 보간처리된 값을 계산한다. 도 7에 나타낸 바와 같이, 다음 식들은 정수 픽셀들간의 보간처리시에 필터 F1(1/2-픽셀 시프트), F2(1/4-픽셀 시프트) 및 F3(3/4-픽셀 시프트)의 동작을 나타낸다.
F1 : (-1l1 + 9l2 + 9l3 - 1l4 + 8 - r) >> 4 (16)
F2 : (-4l1 + 53l2 + 18l3 - 3l4 + 32 - r) >> 6 (17)
F3 : (-3l1 + 18l2 + 53l3 - 4l4 + 32 - r) >> 6 (18)
여기서, 값 r이 라운딩을 제어한다. 값 r은 다음과 같이 이진 프레임 레벨 라운딩 제어 파라미터 R과 보간처리 방향에 좌우된다.
r = 1-R (수직 방향),
R (수평 방향) (19)
1차원 보간처리를 더 설명하기 위하여, 도 6의 P1 및 P5는 1차원(즉, P1에 대하여는 수평 방향 및 P5에 대하여는 수직 방향)에서만 보간처리를 요구하는 기준 프레임(600)에서의 1/2-픽셀 위치들을 나타낸다. 다음 식들은 P1 및 P5에 대한 정수 픽셀간의 보간처리시에 필터 F1의 동작(1/2-픽셀 시프트)을 나타낸다.
P1 = (-1e + 9f + 9g - 1h + 8 - r) >> 4 (20)
P5 = (-1b + 9f + 9j- 1n + 8 - r) >> 4 (21)
이와 유사하게, 도 6의 P0 및 P2는 1차원에서만 보간처리를 요구하는 기준 프레임(600)내의 1/4-픽셀 위치를 나타낸다. 다음 식들은 P0 및 P2에 대한 정수 픽셀간의 보간처리시에 필터 F2의 동작(1/4-픽셀 시프트)을 나타낸다.
P0 = (-4e + 53f + 18g - 3h + 32 - r) >> 6 (22)
P2 = (-4b + 53f + 18j - 3n + 32 - r) >> 6 (23)
3/4-픽셀 위치를 계산하기 위하여 근사 1/4-픽셀 겹삼차 필터 F2도 작은 수정만으로 이용될 수 있다. 예컨대, 다음 식은 P8에 대한 정수 픽셀간의 보간처리시에 필터 F3의 동작(3/4-픽셀 시프트)을 나타낸다.
P8 = (-3b + 18f + 53j - 4n + 32-r) >> 6 (24)
대안적으로, 인코더 및 디코더는 1차원에서 1/2-픽셀, 1/4-픽셀 또는 3/4-픽셀 시프트된 위치에 대한 다른 및/또는 추가적인 보간처리 필터를 이용한다. 예컨대, 인코더 및 디코더는 많거나 적은 필터 계수들, 다른 필터 계수들, 다른 라운딩을 갖는 또는 라운딩 없는 필터를 이용한다.
C. 다차원 보간처리
일부 실시예에서, 2차원으로 오프셋되는 서브-픽셀 위치에 대한 보간처리가 수행된다. 도 6에서, 예컨대 P3, P4, P6 및 P7은 수평 및 수직의 양 차원에서 보간처리가 일어나는 위치들이다.
도 8에 나타낸 보간처리 방법(800)에 대응하는 일 실시예에서, 2차원 서브-픽셀 위치들이 먼저 수직 방향을 따라 보간처리되고 다음에 수평 방향을 따라 보간처리된다. 이하에 보다 자세하게 설명하는 바와 같이, 식 (16) 내지 (18)에서 상술한 필터들 F1, F2 또는 F3의 하나 이상을 이용하여 보간처리가 수행된다. 도 8에 나타낸 실시예에서, 수직 필터링 및 수평 필터링 후에 라운딩이 적용된다. 라운딩 규칙에서의 비트 시프트는 중간 결과에서 16비트 산술에 의해 허용된 정밀도의 유지를 보장한다.
도 8에서, 먼저 수직 필터링이 수행되고 다음에 수평 필터링이 수행된다. 수직 필터링으로 시작하는 것은 일부 구조에서의 성능을 향상시킨다. 다른 실시예에서는, 필터링의 순서가 달라진다. 예컨대, 수직 방향에 앞서 수평 방향으로 보간처리가 수행된다. 또는, 보간처리 필터의 여러 다른 조합들이 이용된다(예컨대, 다수 수평 및/또는 다수 수직 필터 등).
입력 및 출력 픽셀 값들(811, 838)은 8비트의 비트 깊이를 가지며, 256 값들의 동적 범위를 갖는다. 중간 값들(820)은 65,536 값들을 갖는 동적 범위에 대하여 16비트의 비트 깊이를 갖는다. 대안적인 실시예에서, 입력, 출력 및 중간 값들은 다른 비트 깊이(예컨대, 더 큼)를 갖는다.
제1 스테이지(810)에서, 적합한 수직 필터(FV)가 8비트 입력 픽셀 값(들)(811)에 적용된다(812). 적용된 수직 필터는 선택된 서브-픽셀 위치가 1/4-픽셀, 1/2-픽셀 또는 3/4-픽셀만큼 시프트되는지에 좌우되며, 전술한 겹삼차 필터 들중 하나의 형태를 가질 수도 있다.
수직 필터링 후의 라운딩 규칙은 다음과 같이 정의된다.
(S + RV) >> shiftV (25)
여기서, S는 수직 필터링된 결과이며 RV = 2 shift V-1 - 1 + R이다. R은 프레임단위를 기초로 하여 0과 1 사이의 값을 교대로 취하는 라운딩 제어 값이다. 따라서, 라운딩 규칙은 스테이지-교대 라운딩 제어(813) 및 비트 시프트(814)를 갖는 라운딩을 포함한다.
우측 시프트는 잠재적으로 해상도의 손실을 초래하며, 그래서 우측 시프트의 적어도 일부는 보간처리의 나중 스테이지까지 지연된다. shiftV에 대한 우측 시프트 값은 보간처리되는 서브-픽셀 위치에 좌우된다. 상세하게는, P3, P4, P6 및 P7에 대한 shiftV = [5, 3, 3, 1]이다. 시프트 양은 제1 스테이지 계수 값들로 인한 팽창을 보상하는데 요구되는 것보다는 작지만(예컨대, 시프트는 근사 겹삼차 필터에 대한 6비트보다 작다), 후속 필터링의 중간 값이 중간 값들(예컨대, 16비트 워드들에 대한 65,536개의 가능 값들)의 동적 범위내에 있음을 보장하기에는 충분하다. 풀 시프트에 비하여, 이러한 감소된 시프트는 제1 스테이지(810)의 보간처리 후에 중간 픽셀 값들(820)의 정밀도를 유지한다. 중간 픽셀 값들(820)은 y비트의 동적 범위를 가지며, 여기서 y는 8비트 보다 크다. 제1 스테이지에서 수행된 시프트의 양은 이용 가능한 비트 깊이 및 보간처리 필터의 계수들에 좌우된다. 예컨대, 여기서 기술한 예시적인 보간처리에서는, 중간 값들은 16비트의 워드 한계에 제한된다.
도 6의 포인트 P3 및 0 ... 255 범위(8비트)의 입력 값들을 고려한다. 근사 겹삼차 필터 계수들[-4 53 18 -3]의 8비트 입력 값들로의 적용으로부터의 중간 값들의 범위는 필터 계수들로부터의 팽창 인자 때문에 -1785 내지 18,105 (보간처리를 위하여 15비트로 라운딩 업(rounding up)되는 약 14.3비트)이다. (추가적인 팽창을 갖는) 근사 겹삼차 필터 계수들을 중간 값들에 적용하는 후속 수평 필터링은 16비트 동적 범위 이외의 값들을 생성하여 오버플로우를 초래할 수도 있다. 그래서, 중간 값들은 후속 수평 필터링이 16비트 동적 범위내의 값을 생성하는 것을 보장하기에 충분하도록 시프트된다. P3에 대하여, 제1 시프트 양은 5비트이고, 시프트된 중간 값들의 동적 범위는 -55 내지 565 (보간처리를 위하여 10비트로 라운딩 업되는 대략 9.3비트)이다. 근사 겹삼차 필터 계수들의 시프트된 중간 값들로의 적용으로부터의 출력 범위는 -7,860 내지 40,500이며 16비트보다 작은 동적 범위를 갖는다. 따라서, 감소된 시프트는 16비트 워드 한계가 완전히 이용되도록 계산되지만 제2 보간처리(830) 중에 초과되지 않도록 보장된다.
제2 스테이지(830)에서, 적합한 수평 필터(FH)가 수직 필터에 의해 정해진 값들(820)로부터 2차원 서브-픽셀 위치에서의 값을 보간처리하는데 적용된다(832). 수평 필터링 후의 라운딩 규칙은 다음과 같다.
(S + 64 - R) >> 7 (26)
여기서 S는 수평 필터링된 결과이고 R은 프레임 단위를 기초로 교대로 취해 지는 라운딩 제어 값이다. 제1 스테이지 라운딩 규칙과 같이, 제2 스테이지 라운딩 규칙은 스테이지-교대 라운딩 제어(833)와 비트 시프트(834)를 갖는 라운딩을 포함한다. 제1 스테이지에서의 지연된 시프트 때문에, 제2 스테이지에서의 시프트의 양은 통상적으로 선택된 수평 필터에 대하여 정상적으로 기대되는 것을 초과하며 원하는 동적 범위를 갖는 값을 출력하도록 계산된다.
겹삼차 필터링의 모든 경우들은 그 값이 음이거나 또는 그 값이 그 범위의 최대값보다 큰 (예컨대, 8비트 출력에 대하여 255) 보간처리된 픽셀을 잠재적으로 생성할 수 있다. 이런 경우에, 8비트 출력 값들, 인코더 및 디코더는 출력 값(836)을 허용된 범위내에 있도록 유지한다. 특히, 언더플로우가 0으로 설정되고 오버플로우가 255로 설정된다. 클램핑 후에 보간처리된 8비트 값(838)이 출력된다.
도 8에서 제2 스테이지 시프트는 7비트이다. 따라서, 9비트를 갖는 필터링된 출력 값이 유지된다. 예컨대, P3에 대하여 이전의 예를 계속하면, 필터링된 출력 값의 범위는 -61 내지 316이며 (보간처리를 위하여 9비트로 라운딩 업되는) 대략 8.6비트의 동적 범위를 갖는다. 보간처리된 데이터의 유효 범위는 8비트일 뿐이지만, 위쪽의(headroom) 여분의 1비트가 오버플로우 및 언더플로우 정보를 제공한다. 바꿔 말하자면, 최상위 비트(즉, "부호" 비트)가 설정되면, 언더플로우나 오버플로우가 있다. 상세하게는 둘중의 어느 것이 발생했는가는 나머지 8개의 "맨티사(mantissa)" 비트를 살펴봄으로써 유추될 수 있다.
도 9 내지 도 11은 도 8에 도시된 상술한 이차원 보간처리를 더욱 상세히 도시한다. 도 9는 도 6의 기준 프레임(600)의 서브-픽셀 위치 P7 (1/2-픽셀 수평, 1/2-픽셀 수직)를 도시한다. 2개의 1/2-픽셀 겹삼차 보간처리 필터가 P7의 값을 보간처리하는 데에 이용된다. 제1 스테이지에서, 중간 값 V1 - V4 가 다음과 같은 일반형을 가진 1/2-픽셀 겹삼차 필터를 이용하여 근접한 정수 픽셀 위치로부터 계산된다.
Vinter = (-1x1 + 9x2 + 9x3 - 1x4) (27)
그래서,
V1 = (-1a + 9e + 9i - 1m) (28)
V2 = (-1b + 9f + 9j - 1n) (29)
V3 = (-1c + 9g + 9k - 1o) (30)
V4 = (-1d + 9h + 9l - 1p) (31)
Rv의 근사 값이 가산된 후에, 그 결과는 1비트만큼 우측으로 시프트된다. 제2 스테이지에서, 중간 값 V1 - V4 가 P7의 픽셀 값을 계산하기 위해 1/2-픽셀 필터에 의해 이용된다. 특히, 다음과 같은 형태를 가진 1/2-픽셀 필터가 이용된다.
P7 = (-1V1 + 9V2 + 9V3 - 1V4) (32)
전술한 바와 같이, 제2 스테이지의 결과는 9-비트 값을 얻기 위해 7개 비트 만큼 우측으로 시프트된다. 9-비트 값은 8개의 맨티사 비트와 1개의 부호 비트를 포함한다. 오버플로우 또는 언더플로우를 보상하기 위해 어떤 필요한 클램핑이 수행된 후, 최종의 8-비트 보간처리된 값이 출력된다.
도 10은 도 6의 기준 프레임(600)의 서브-픽셀 위치 P4 (1/2-픽셀 수평, 1/4-픽셀 수직)를 도시한다. 1/4-픽셀 및 1/2-픽셀 겹삼차 보간처리 필터가 P4의 값을 보간처리하는데에 이용된다. 제1 스테이지에서, 중간 값 V1 - V4 가 다음과 같은 일반 형을 가진 1/4-픽셀 겹삼차 필터를 이용하여 근접한 정수 픽셀 위치로부터 계산된다.
Vinter = (-4x1 + 53x2 + 18x3 - 3x4) (33)
이 필터는 P7을 계산하는 것과 관련하여 상술한 바와 같은 방식으로 기준 프레임(600)의 정수 픽셀 값에 인가된다. Rv의 적절한 근사 값이 가산된 후에, 그 결과는 3비트만큼 우측으로 시프트된다. 제2 스테이지에서, 중간 값 V1 - V4 가 P4 의 픽셀 값을 계산하기 위해 1/2-픽셀 필터에 의해 이용된다. 특히, 다음과 같은 형태를 가진 1/2-픽셀 필터가 이용된다.
P4 = (-1V1 + 9V2 + 9V3 - 1V4) (34)
제2 스테이지의 결과는 9-비트 값을 얻기 위해 7개 비트만큼 우측으로 시프트되고, 어떤 필요한 클램핑이 수행되고, 최종의 8-비트 보간처리된 값이 출력된다.
도 10은 또한 서브-픽셀 위치 P6 (1/4-픽셀 수평, 1/2-픽셀 수직)를 도시한다. P6의 값을 보간처리하기 위해, P4의 보간처리를 위한 기술이 약간만 변형되어 이용된다. 이 변형된 기술에서, 1/2-픽셀 겹삼차 필터가 중간 값을 결정하기 위해 제1 스테이지에서 이용된다. 중간 픽셀 위치는 도 10에서 V5 - V8 에 도시되어 있다. 제2 스테이지 동안에, P6의 값을 계산하기 위해 1/4-픽셀 겹삼차 필터가 중간 값을 이용한다. 특히, 다음과 같은 형태를 가진 1/4-픽셀 겹삼차 필터가 이용된다.
P6= (-4V5 + 53V6 + 18V7 - 3V8) (35)
제1 및 제2 스테이지에서의 시프팅 량은 P4를 계산하기 위한 기술에서와 동일하다(즉, 제1 스테이지 시프트는 3이고, 제2 스테이지 시프트는 7임).
도 11은 도 6의 기준 프레임(600)의 서브-픽셀 위치 P3 (1/4-픽셀 수평, 1/4-픽셀 수직)를 도시한다. 2개의 1/4-픽셀 겹삼차 보간처리 필터가 P3의 값을 보간처리하는데에 이용된다. 제1 스테이지에서, 중간 값 V1 - V4 가 다음과 같은 일반 형을 가진 1/4-픽셀 겹삼차 필터를 이용하여 근접한 정수 픽셀 위치로부터 계산된다.
Vinter = (-4x1 + 53x2 + 18x3 - 3x4) (36)
이 필터는 P4을 계산하는 것과 관련된 상술한 바와 같은 방식으로 기준 프레 임(600)의 정수 픽셀 값에 인가된다. Rv의 적절한 근사 값이 가산된 후에, 그 결과는 5비트만큼 우측으로 시프트된다. 제2 스테이지에서, 중간 값 V1 - V4 가 P3 의 픽셀 값을 계산하기 위해 다른 1/4-픽셀 필터에 의해 이용된다. 특히, 다음과 같은 형태를 가진 1/4-픽셀 필터가 이용된다.
P3 = (-4V1 + 53V2 + 18V3 - 3V4) (37)
제2 스테이지의 결과는 9-비트 값을 얻기 위해 7개 비트만큼 우측으로 시프트되고, 어떤 필요한 클램핑이 수행되고, 최종의 8-비트 보간처리된 값이 출력된다.
비록 도 9 내지 도 11에는 도시하지 아니하였지만, 하나의 차원 또는 양쪽의 차원에서 3/4-픽셀 시프트를 가진 서브-픽셀 위치의 값도 또한 계산될 수도 있다. 이러한 서브-픽셀 위치를 계산하기 위해서, 1/4-픽셀 겹삼차 필터를 대신하여 적절한 3/4-픽셀 겹삼차 필터를 이용함으로써 상술한 방법이 변형될 수도 있다.
다른 실시예에서, 겹선형 필터 또는 겹선형 필터와 겹삼차필터의 조합이 서브-픽셀 위치에서의 값을 보간처리하는데에 이용된다. 겹선형 필터의 이용은 일반적으로 겹삼차 필터보다 더 작은 전개를 도입하기 때문에, 수행되는 시프팅의 량(제1 스테이지후 및 전체)을 감소시킨다. 겹선형 필터 및 16-필터 중간 값을 이용하는 구현예에서, 예를 들면, 제1 스테이지에서는 시프팅이 없고, 그럼으로써 16-비트 워드 제한(limit)의 이용을 최대화하고, 4비트의 우측 시프트가 최후 스테이지 후에 수행된다. 마찬가지로, 클램핑이 최후 스테이지까지 지연될 수도 있다.
전술한 바와 같은 방법에 기초하는 원리 중의 하나는 원하는 "워드 크기" 제한(W)내에 유지하면서 필터링의 매 스테이지에서 가능한한 최대의 정밀도를 이용하는 것이다. 출력 값이 D비트의 동적 범위를 가지고 최후 스테이지에서 L비트가 버려지면, 필터링의 최후 스테이지의 출력은 D + L + 1 까지 취할 수 있으며, 여기서 하나의 여분(extra) 비트가 언더플로우 또는 오버플로우를 부호화하기 위해 이용된다. 역방향 작업을 하면서, 필터링의 최후 스테이지가 k비트만큼의 전개의 결과를 주면, 최후 스테이지에의 입력은 D + L- k 내에 있어야 한다. 그래서, W비트 표현으로 최대의 정밀도를 유지하기 위해서는, 다음과 같은 관계가 존재하여야 한다.
D + L + 1 = W (38)
또한, 최후 스테이지에의 입력은 D + L- k = W - k - 1 비트이어야 한다.
상술한 로직은 필터링의 끝에서 두번째(penultimate) 스테이지 등에 회귀적으로 적용될 수 있다. 실제로, 한계(bound)는 비-2k(non-2k)범위 및 전개 인자를 나타내는 소수적 비트를 이용하여 통제될(tightened) 수 있다.
도 12 내지 도 15는 다양한 기술을 나타내는 도이고, 이들은 다수 스테이지 보간처리에서 상술한 바와 같이 조합될 수도 있지만 개별적으로 적용될 수 있다. 도 12 내지 도 15는 다수 스테이지 보간처리(1200, 1300, 1400, 1500)의 각각이 다수 스테이지 보간처리 기술과 연계하여 이용될 수 있는 다양한 방법을 도시하고 있지 아니하다.
또한, 도 12 내지 도 15는 2개의 스테이지를 도시하고 있지만, 도 12 내지 도 15에 도시된 다수 스테이지 보간처리(1200, 1300, 1400, 1500) 기술은 더 많은 스테이지를 포함할 수도 있다. 더 일반적으로는, 다수 스테이지 보간처리(1200, 1300, 1400, 1500) 기술은 캐스케이드(cascade), 트렐리스(trellis), 또는 격자 구조에서 구현되는 임의의 필터뿐만아니라 어떤 타입의 분리가능한 필터로도 구현될 수 있다.
도 12 내지 15는 다수 스테이지 보간처리에 이용되는 일반화된 입력 값, 출력 값 및 필터를 도시하고 있다. 제1 스테이지의 입력 값, 최후 스테이지의 출력 값 및 중간 값에 대한 비트 깊이의 특정의 선택은 목적하는 아키텍처 또는 애플리케이션의 기술적 사양에 따라 임의로 확장될 수 있다. 예를 들면, 입력 값은 기준 프레임내의 정수 픽셀 위치에서 8-비트 픽셀 값일 수도 있고, 출력 값은 기준 프레임내의 서브-픽셀 위치에서 8-비트 픽셀 값일 수도 있고, 필터는 통상의 필터 및 근사적 겹삼차 필터(도 6 내지 도 8을 참조하며 상술함)일 수도 있다. 대안으로서, 입력 값 및/또는 출력 값은 서로 다른 비트 깊이의 동적 범위를 가지거나 서로 다른 필터가 이용될 수도 있다.
도 4 및 도 5를 각각 참조하며 설명한 인코더 또는 디코더와 같은 콤포넌트가 다수 스테이지 보간처리(1200, 1300, 1400, 1500)를 수행할 수도 있다. 대안으로서, 다른 인코더 또는 디코더, 또는 다른 타입의 콤포넌트가 다수 스테이지 보간처리(1200, 1300, 1400, 1500)를 수행할 수도 있다.
도 12는 중간 보간처리된 값에 대한 향상된 동적 범위(비트 단위)를 가진 다 수 스테이지 보간처리(1200)의 도를 도시하고 있다. 제1 스테이지(1210)에서, 콤포넌트는 하나 이상의 x-비트 범위 입력 값(1211)에 제1 필터 F1를 적용하여(1212), 하나 이상의 y-비트 범위 중간 값(1220)을 생성한다(여기서, y는 x보다 크다). 예를 들면, y-비트 중간 값은 8비트 보다 넓은 동적 범위를 가진 픽셀 값이고, x-비트 입력 값은 8비트의 동적 범위를 가진다.
영 이상의 중간 스테이지(1222)(이에 대해서는 상세히 도시되어 있지 아니함)의 각각에서, 콤포넌트는 y-비트 범위 중간 값(1220)에 필터를 적용한다. 중간 스테이지로부터의 출력은 하나 이상의 z-비트 범위 중간 값(1229)이다(여기서, z는 x보다 크다). (도 12 내지 도15에서, 최후 스테이지가 제2 스테이지이면, 제1 스테이지로부터 출력된 중간 값은 최후 스테이지에 입력되는 중간 값이다.)
최후 스테이지(1230)에서, 콤포넌트는 하나 이상의 z-비트 범위 중간 값(1229)에 최후 필터 FL를 적용한다(1232). 최종 출력은 x-비트 범위 출력 값(1234)이다. 다수 스테이지 보간처리(1200, 1300, 1400, 1500) 기술의 각각에 대해, 필요하다면, 콤포넌트는 추가적인 출력 값을 위하여 다수 스테이지 보간처리(1200, 1300, 1400, 1500)를 반복한다. 반복된 보간처리에서, 콤포넌트는 이전의 보간처리에서 계산된 어떤 중간 값을 재이용할 수도 있다.
도 13은 스킵된 클램핑을 가진 다수 스테이지 보간처리(1300)의 도를 도시하고 있다. 클램핑을 지연시키면, 예를 들면 콤포넌트가 범위의 상한 및 하한에 대한 중간 값 각각을 더이상 체크하지 않기 때문에, 계산을 신속하게 할 수 있다. 클램핑을 지연시키면, 또한 중간 값에서의 정확도를 유지하게 된다.
제1 스테이지(1310)에서, 콤포넌트는 하나 이상의 x-비트 범위 입력 값(1311)에 제1 필터 F1를 적용한다(1312). 제1 필터 F1의 적용 후에, 클램핑을 수행하지 않는다. 그래서, 제1 필터 F1로부터 출력된 하나 이상의 중간 값(1320)이 x-비트보다 더 넓은 동적 범위를 가질 수도 있다. 예를 들면, 입력 값은 8비트 값이고, 제1 필터 F1로부터의 출력 값은 제1 필터 F1의 계수에 의해 도입된 전개(expansion) 인자로 인하여 9비트 이상의 동적 범위를 가진다.
영 이상의 중간 스테이지(1322)(이에 대해서는 상세히 도시되어 있지 아니함)의 각각에서, 콤포넌트는 하나 이상의 클램핑되지 않은 중간 값(1320)에 필터를 적용한다. 클램핑은 또한 영 이상의 중간 스테이지(1322)에서 스킵될 수도 있다. 영 이상의 중간 스테이지(1322)로부터의 출력된 중간 값(1329)은 최후 스테이지(1330)로의 입력이고, 여기서 콤포넌트는 그 값(1329)에 최후 필터 FL을 적용한다(1332). 최후 필터 FL로부터의 최종 출력이 클램핑되고(1334), x-비트 범위 값(1336)이 출력된다.
도 14는 지연된 비트 시프팅을 가진 다수 스테이지 보간처리(1400)의 도를 도시하고 있다. 제1 스테이지(1410)에서, 콤포넌트는 하나 이상의 x-비트 범위 입력 값(1411)에 제1 필터 F1를 적용한다(1412). 제1 필터 F1의 적용 후 또는 그와 함께, 단축된 시프트(1414)가 수행된다. 단축된 시프트(1444)는 (제1 필터 F1의 계 수의 전개 인자의 관점에서) x-비트 범위 출력 값을 보장하기 위해 요구되는 것보다 적고, 그래서, 제1 필터 F1와 전형적으로 연계되어 있는 것보다 적다. 따라서, 단축된 시프트(1414)는 x보다 더 넓은 (y 비트의) 동적 범위를 가진 하나 이상의 중간 값을 생성한다. 예를 들면, 입력 값은 8비트의 동적 범위를 가지고, 중간 값은 8보다 큰 동적 범위를 가진다.
영 이상의 중간 스테이지(1422)(이에 대해서는 상세히 도시되어 있지 아니함)의 각각에서, 콤포넌트는 하나 이상의 중간 값(1420)에 필터를 적용한다. z비트(x비트보다 큼)의 동적 범위를 가진 하나 이상의 중간 값(1429)은 영 이상의 중간 스테이지(1422)로부터의 출력이고, 최후 스테이지(1430)에서, 콤포넌트는 그 값(1429)에 최후 필터 FL을 적용한다(1432). 최후 필터 FL로부터의 최종 출력은 최후 필터 FL과 전형적으로 연관된 것보다 큰 량만큼 시프트되고(1434), 그럼으로써 출력 값(1434)의 동적 범위를 특정의 비트 깊이로 축소시킨다. 예를 들면 출력 값(1434)의 동적 범위(비트 단위)는 x 또는 x+1이다. 일 구현예에서는, 제1 스테이지 및 임의의 중간 스테이지의 시프팅은 가능하다면 최종 스테이지까지 더욱 지연된다. 시프팅이 지연되는 량은 중간 계산 및 각각의 필터의 전개 인자에 대한 가용한 비트 깊이에 의존할 수도 있다.
도 15는 스테이지-교대 라운딩 제어를 이용하는 다수 스테이지 보간처리 기술(1500)을 도시한다. 보간처리 기술(1500)의 다수 스테이지는 이들이 라운딩을 적응하도록 라운딩 제어를 어떻게 적용하는가에 따라 교대한다. 이로써, 어떤 비 디오 시퀀스에서 프레임 단위로 라운딩 오차의 축적을 방지할 수 있다. 예를 들면, 저품질 비디오 시퀀스가 일차원에서의 점진적 모션(패닝; panning) 또는 이차원에서의 점진적 모션(줌잉; zooming)을 포함한다면, 라운딩 오차의 축적은 프레임으로부터 프레임으로의 점진적인 컬러 페이딩의 결과를 줄 수도 있고, 이는 인지가능한 아티팩트를 일으키게 될 수도 있다. 스테이지-교대 라운딩 제어는 이러한 컬러 페이딩을 방지하는데 도움을 준다.
수치적 예는, 스테이지-교대 라운딩 제어가 우측 비트 시프팅전에 적용되는 라운딩을 예시하는데 도움을 줄 수도 있다. 우측 비트 시프팅은 본질적으로 우측 시프팅된 값을 나누거나 버리는 결과를 준다. 시프팅 전에 라운딩 값을 가산하는 것은 그 시프팅된 값이 항상 라운드 다운되도록(버려지도록) 하기 보다는, (가장 가까운 정수로) 라운딩 업 또는 다운되도록한다. 라운딩 제어를 이용하면 마진 값에 대한 라운딩(업 또는 다운)의 방향을 변화시킨다. 예를 들어, 다수 스테이지의 각각에서 필터링의 출력이 우측 시프팅전에 우측 시프트의 "디바이저(divisor)"의 1/2를 가산함으로써(예로서, 5비트 우측 시프팅전에 24 = 16을 가산함, 7비트 우측 시프팅전에 26 = 64를 가산함) 조절된다. 이러한 가산의 효과는 (그 비트 시프트에 대응하는 나눗셈 후에) .5 또는 그 이상의 소수부를 가지게 되는 (다음의 더 큰 정수) 값을 라운드 업하는 것이다. 이러한 값은 그렇지 않은 경우에는 우측 시프트에 의해 (다음의 더 작은 정수로) 버려질 수도 있다. 이 가산에도 불구하고, (그 비트 시프트에 대응하는 나눗셈 후에) .5보다 작은 소수부를 가지게 되는 값도 여전히 우측 시프트에 의해 (다음의 더 작은 정수로) 버려진다. 그래서, 라운딩 제어는 어떤 마진 값에 대한 라운딩 방향을 변화시킨다. 예를 들어, 다수의 스테이지의 각각에서, 필터링의 출력은 우측 시프팅(예로서, 2shiftV-1 또는 2shiftV-1 -1) 전에 0 또는 1(교대하는 라운딩 제어 값)을 감산함으로써 더욱 조절된다. 이러한 라운딩 제어 조절의 효과는 (그 비트 시프트에 대응하는 나눗셈 후에) .5의 소수부를 가지게 되는 값에 대한 라운딩의 방향을 변화시키는 것이다. 1이 감산되는 경우에, 이러한 마진 값은 라운딩 다운된다. 그렇지 않은 경우에는, 이러한 마진 값은 라운딩 업된다.
다수 스테이지 각각은 다수 스테이지의 보간처리 전에 0과 1 사이에서 교대하는 라운딩 제어 값을 이용하고, 그래서 서로 다른 스테이지는 라운딩 제어 값이 어떻게 적용되는 가에 따라 교대한다. 대안으로서, 다수 스테이지의 보간처리 기술(1500)은 스테이지로부터 스테이지로 그 자체가 교대하는 라운딩 제어 값을 이용한다.
도 15의 제1 스테이지(1510)에서, 콤포넌트는 하나 이상의 x-비트 범위 입력 값(1511)에 제1 필터 F1을 적용한다(1512). 제1 필터 F1의 적용 후 또는 그와 함께, 라운딩(1514)이 제1 필터 F1로부터의 출력에 대해 수행된다. 라운딩(1514)은 스테이지-교대 라운딩 제어에 의해 조절된다. 예를 들면, 제1 스테이지(1510)에서, 출력 값이 마진 값인 경우에, 스테이지-교대 라운딩 제어는 출력 값을 가장 가까운 정수로 라운딩 업워드(upward)되도록 한다(그렇지 않은 경우에는 출력 값은 라운딩 다운워드된다). 하나 이상의 라운딩된 중간 값(1520)이 제1 스테이지로부터 제2 스테이지(1530)로 출력된다.
제2 스테이지(1532)에서, 콤포넌트는 하나 이상의 중간 값(1520)에 제2 필터 F2를 적용한다(1532). 라운딩(1534)은 제2 필터 F2로부터의 출력에 대해 수행된다. 제2 필터 F2의 적용 후 또는 그와 함께, 라운딩(1534)은 라운딩 제어가 마진 값에 대한 제1 스테이지에서와 반대방향으로 라운딩을 일으키게 스테이지-교대 라운딩 제어에 의해 수행된다. 예를 들면, 제2 스테이지(1530)에서, 출력 값이 마진 값인 경우에, 스테이지-교대 라운딩 제어는 출력 값을 가장 가까운 정수로 라운딩 다운워드되도록 한다. 하나 이상의 중간 값(1536)은 제2 스테이지의 출력이고, 영 이상의 추가적인 스테이지(1540)에서 이용될 수도 있다. 영 이상의 추가적 스테이지(1540)는 스테이지-교대 라운딩 제어를 더 포함할 수도 있다.
교대 라운딩 제어는 연속적 스테이지에만 적용되는 것으로 제한되지 않으며, 스테이지들의 다양한 다른 조합에도 적용될 수 있다. 또한, 제1 방향은 파라미터의 개수에 의존할 수도 있다. 예를 들면, 비디오 인코더 또는 디코더에서, 제1 방향은 선행 프레임에서 이용된 라운딩 제어에 의존하거나 보간처리되는 프레임의 타입(예로서, I-프레임, P-프레임, 또는 B-프레임)에 의존할 수도 있다. 다른 실시예에서는, 제1 방향은 일시적(casual) 정보(예로서, 이전에(past) 코딩된/디코딩된 정보)로부터 내재적으로 유도된, 이용하는 의사랜덤 생성기로부터 유도된, 또는 비트스트림의 부분으로서 신호화된 상수로 설정될 수도 있다. 스테이지-교대 라운딩 제어는 겹선형 필터, 겹삼차 필터 및 근사적 겹삼차 필터를 포함하는 다양한 보간처리 필터 중의 어느 것이라도 이용하여 다수 스테이지의 보간처리에 적용될 수도 있다.
D. 색도 모션 벡터
색도(chroma) 모션 벡터는 함께 위치되는(collocated) 휘도 모션 벡터로부터 내재적으로 유도되기 때문에, 이들의 정밀도는 제한되고 단순화를 위한 범위를 제공한다. 이러한 단순화는 코딩된 비디오의 인지되는 품질을 상당히 저하시키지 아니하고도 인코더 및 디코더에서 색도 값에 대한 서브-픽셀 보간의 계산 복잡도를 감소시킬 수 있다. 또한, 인코더 및 디코더는 색도 모션 벡터 라운딩 및 보간처리를 위한 서로 다른 모드 사이에서 전환될 수 있다. 예를 들면, 하나의 모드는 계산 복잡도를 크게 하지만 대신에 코딩된 비디오에서의 품질을 강조한다. 다른 모드에서는 품질은 저하시키지만 계산 복잡도를 강조한다.
하나의 구현예에서는, 비디오 인코더 및 디코더는 시퀀스 레벨 1-비트 필드 "FASTUVMC"를 이용하여 색도 값에 대한 서브-픽셀 보간처리 및 색도 모션 벡터의 라운딩을 제어한다. 그래서, 비디오 인코더 및 디코더는 패스트(fast) 모드 및 기본 모드의 2개의 서로 다른 색도 라운딩 모드 중의 하나에서 선택적으로 동작한다.
도 16은 다수의 색도 라운딩 및 보간처리 모드 사이에서의 선택을 위한 기술(1600)을 도시하고 있다. 예를 들면, 도 4 및 도 5 각각을 참조하여 전술한 바와 같은 비디오 인코더 또는 디코더가 이 기술을 수행한다.
비디오 인코더 또는 디코더는, 1-비트 플래그 FASTUVMC가 패스트 색도 모션 보상 모드(플래그 = 1) 또는 기본 색도 모션 보상 모드(플래그 = 0)를 이용할 것을 지시하는 지를 결정한다. 예를 들면, 플래그는 사용자 설정에 대응하는 시퀀스 레벨 필드이고, 이것은 인코더에 의해 코딩된 비디오의 비트스트림내에 기록되고 디코더에 의해 비트스트림으로부터 판독된다. 대안으로서, 인코더 및 디코더는 다수 비트를 이용하여, 고정된 길이 또는 가변적 길이 코드를 이용하는 색도 라운딩 및/또는 보간처리 모드를 신호화하여, 예로서, 2이상의 가용한 모드 사이에서 선택한다. 또는, 사용자 설정에 대응하는 시퀀스 레벨 필드인 것 대신에, 스위칭 정보가 비트스트림내의 그 밖의 것에서 신호화되거나 또는 서로 다른 기준(criteria)에 따라 설정되거나, 신호화 및 설정된다.
다음에, 비디오 인코더 또는 디코더는 기본 모드(1620) 또는 패스트 모드(1630)에서 색도 모션 보상을 수행한다. 기본 모드(1620) 및 패스트 모드(1630) 모션 벡터 라운딩 및 보간처리의 상세한 내용은 하나의 구현예로서 이하에서 주어진다. 대안으로서, 이들 모드는 서로 다른 구성을 가지도 한다. 예를 들면, 이하에 설명된 패스트 모드(1630)의 구현에서 이용된 룩업 테이블은 특정의 하드웨어 아키텍처에 대한 원하는 성능 레벨의 결과로되는 서로 다른 매핑으로 변화되거나, 또는 서로 다른 정밀도의 모션 벡터에 대해서 작용한다. 기본 모드(1620) 및 패스트 모드(1630) 대신에 또는 그에 추가하여, 인코더 또는 디코더는 색도 모션 벡터 라운딩 및 보간처리를 위한 다른 모드를 이용할 수도 있다.
일 구현예에서, 패스트 모드에서는(예를 들면, 색도 라운딩 플래그 = 1이면), 1/4-픽셀 오프셋(즉, 1/4-픽셀 및 3/4-픽셀 오프셋)에서의 색도 모션 벡터 는 가장 가까운 풀-픽셀 위치로 라운딩되고, 1/2-픽셀 오프셋에서의 색도 모션 벡터는 라운딩되지 않고, 겹선형 필터링이 모든 색도 보간처리를 위해 이용된다. 이러한 모드에서, 인코더 및 디코더의 속도는 증가된다. 이러한 최적화의 동기는 적어도 하나의 좌표에 대한 (a) 정수-픽셀 위치; (b) 1/2-픽셀 위치; (c) 1/4-픽셀 위치; 및 양쪽 좌표에 대한 (d) 1/4-픽셀 위치에서의 픽셀 오프셋을 보간처리하는 복잡도 사이의 상당한 차이이다. 비율 a:b:c:d 는 개략적으로 1:4:4.7:6.6 이다. 패스트 모드를 적용함으로써, (a) 및 (b)가 선호(favor)될 수도 있는데, 그래서 디코딩 시간을 절감시킨다. 이것은 색도 보간처리에만 수행되기 때문에, 코딩 및 품질 손상(특히, 가시 품질) 모두가 무시될 수 있다.
이러한 패스트 모드에서, 최종 레벨의 라운딩이 다음과 같은 색도 모션 벡터에 대해 수행된다.
//RndTbl[-3] = -1, RndTbl[-2] = 0, RndTbl[-1] = +1, RndTbl[0] = 0,
//RndTbl[1] = -1, RndTbl[2] = 0, RndTbl[3] = +1
cmv_x = cmv_x + RndTbl[cmv_x%4]
cmv_y = cmv_y + RndTbl[cmv_y%4] (39)
여기서, cmv_x 및 cmv_y는 1/4-픽셀 단위에서의 색도 모션 벡터의 x 및 y 좌표를 나타내고, %는 모듈로(즉, 나머지 값)를 나타내고, 그래서 (x%a) = -(-x%a)로 정의된다. (음수의 모듈로는 대응하는 양수의 모듈로의 음의 값과 같다.) 그래서, cmv_x(또는 cmv_y)는 4로 나누어 떨어지는 경우에, 그 색도 모션 벡터는 정수 오프셋을 가진다. cmv_x%4 = +/-2인 경우에, 그 색도 모션 벡터는 1/2-픽셀 오프 셋을 가진다. 그리고, cmv_x%4 = +/-1 또는 +/-3 인 경우에, 그 색도 모션 벡터는 1/4-픽셀 오프셋을 가진다. 상술한 재-매핑 동작에서 나타난 바와 같이, 1/4-픽셀 위치는 색도 모션 벡터를 가장 가까운 정수 위치로 라운딩되는 것이 허용되지 않는다(1/2-픽셀 위치는 변하지 않도록 유지됨). 그래서, 이 모드는 색도 좌표를 정수 및 1/2-픽셀 위치로 재-매핑한다. 겹선형 필터링은 더욱 속도를 높이기 위해서 이 모드에서 모든 색도 보간처리에 대해 이용될 수도 있다. 이러한 패스트 모드 보간처리가 다수의 라운딩 모드 사이에서의 선택과 결합하여 설명되었지만, 패스트 모드 보간처리는 독립적으로(즉, 가능한 모드로서만) 교호적으로 이용될 수 있다.
도 17은 색도 라운딩의 패스트 모드를 나타내는 테이블(1700)이다. 제1 행(1710)은 1/4-픽셀 정밀도에서의 휘도 모션 벡터 값을 나타낸다. 휘도 모션 벡터 값은 정수 픽셀 값으로부터 소수적-오프셋으로 나타내었지만, 각각의 정수가 1/4 픽셀 증가를 나타내는 정수 값(즉, 0, 1/4, 1/2, 3/4 대신에 0, 1, 2, 3, 4)으로 나타낼 수도 있다. 제2 행(1720)은 대응하는 색도 모션 벡터 값이 패스트 모드에서 어떻게 라운딩되어 정수 및 1/2-픽셀 정밀도를 가지는 지를 나타낸다.
제2의 기본 모드에서는(예를 들면, 색도 라운딩 플래그 = 0이면), 라운딩 오차를 가지지 않은 1/4-픽셀 오프셋에서의 색도 모션 벡터는 1/4-픽셀 오프셋에 남아 있다. 다른 서브-픽셀 오프셋에서의 색도 모션 벡터는 가장 가까운 풀-픽셀 위치 또는 1/2-픽셀 위치로 라운딩된다. 이 모드에서, 디코더의 속도는 다른 모드보다 늦을 수도 있지만, 색도 픽셀 값이 계산되는 정밀도는 더욱 높다. 그래서 이러한 기본 모드는 색도 좌표를 정수, 1/2 및 1/4-픽셀 위치로 재-매핑한다. 상술 한 바와 같은 겹삼차 또는 겹선형 필터링이 색도 보간처리를 위해 이용될 수도 있다.
도 18은 색도 라운딩의 이러한 기본 모드를 나타내는 테이블이다. 제1 행(1810)은 1/4-픽셀 정밀도에서의 휘도 모션 벡터 값을 나타낸다. 제3 행(1830)은 대응하는 색도 모션 벡터 값이 상술한 바와 같은 기본 모드에서 어떻게 라운딩되어 정수, 1/2 및 1/4-픽셀 정밀도를 가지는 지를 나타낸다. 다른 구현예에서는, 색도 공간은 색도 공간에서의 다른 해상도로 라운딩된다.
본 발명의 원리를 다양한 실시예를 참조하여 설명하였지만, 이들 다양한 실시예는 본 발명의 원리를 벗어나지 아니하고도 구성 및 세부 사항에 있어서 변형될 수 있음은 인식될 것이다. 예를 들면, 상술한 원리 및 기술은 비디오 인코더 및/또는 비디오 디코더에서 이용되는 것에만 제한되지 않고, 대신에, 이들은 값이 하나 이상의 중간 값에 기초하여 계산되는 계산 컨텍스트 또는 분리가능한 필터가 다수의 차원에서 이용되는 계산 컨텍스트에서 적용될 수도 있다.
여기에 개시된 프로그램, 처리, 또는 방법은 비록 명시되어 있지 아니하더라도 특정한 타입의 계산 환경에만 관련되거나 제한되는 것이 아님은 이해될 것이다. 범용의 또는 특정된 계산 환경의 다양한 타입이 여기에 개시된 내용과 함께 이용되거나 그에 따라 동작을 수행할 수도 있다. 소프트웨어에 도시된 실시예의 구성부분은 하드웨어로 구현되거나 그 반대로 구현될 수도 있다.
본 발명의 원리가 적용되는 많은 가능성있는 실시예를 참작하여, 본 발명의 범위는 다음에 기재하는 특허청구범위의 사상과 그 권리범위내에서 모든 실시태양 과 그 균등물에 미친다.
다양한 기술 및 툴이 독립적으로 또는 조합하여 이용될 수도 있으며, 이로써 서브 샘플 위치에서의 최종 값이 계산되는 정밀도를 향상시킬 수 있으며, 이렇게 정밀도가 향상됨으로써 압축된 비디오 시퀀스의 전체적인 품질이 향상된다.

Claims (41)

  1. 컴퓨터에 구현된 방법으로서,
    기준 비디오 프레임을 버퍼링하는 단계, 및
    하나 이상의 중간 소수적(fractional) 픽셀 위치에서 하나 이상의 중간 값에 적어도 부분적으로 기초하고 다수 스테이지 보간 처리를 이용하여 상기 기준 비디오 프레임에서의 최종 소수적 픽셀 위치에서 최종 값을 계산하는 단계를 포함하고,
    상기 최종 값은 x 비트의 최종 동적 범위를 가지며, 상기 하나 이상의 중간 값은 적어도 한 비트 만큼 비트 쉬프트된 후에 y 비트의 중간 동적 범위를 가지고, 상기 y는 상기 x 보다 크며,
    상기 계산 단계는 다수 스테이지의 보간 처리의 이전 스테이지(earlier stage)에서 상기 다수 스테이지의 보간처리의 후속 스테이지(later stage)로 비트 시프팅을 지연시키는 단계를 포함하고,
    상기 지연된 비트 시프팅은 그 양이 소수적 픽셀 시프트의 정도 차이에 따라 변화하는 방법.
  2. 제1항에 있어서,
    상기 y 는 16 비트 이하인 방법.
  3. 제2항에 있어서,
    상기 x 는 8 비트인 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 지연된 비트 시프팅은 또한, 그 양이 다수 스테이지의 보간처리의 상기 이전 및 후속 스테이지에 대한 확장(expansion) 인자에 따라 변화하는 방법.
  6. 제1항에 있어서,
    상기 최종 값은 최종 픽셀 값이고, 상기 중간 값은 중간 픽셀 값인 방법.
  7. 제1항에 있어서,
    상기 최종 소수적 픽셀 위치는 상기 기준 비디오 프레임의 적어도 제1 차원에 1/2-픽셀 시프트에 위치되는 방법.
  8. 제1항에 있어서,
    상기 최종 소수적 픽셀 위치는 상기 기준 비디오 프레임의 적어도 제1 차원에 1/4-픽셀 시프트 또는 3/4-픽셀 시프트에 위치되는 방법.
  9. 제1항에 있어서,
    상기 최종 소수적 픽셀 위치는 상기 기준 비디오 프레임의 제2 차원에 서브-픽셀 시프트에 위치되는 방법.
  10. 제1항에 있어서,
    상기 다수 스테이지 보간 처리의 이전 스테이지는 상기 하나 이상의 중간 값을 산출하고, 상기 다수 스테이지 보간 처리의 후속 스테이지는 상기 최종 값을 산출하는 방법.
  11. 제10항에 있어서,
    상기 이전 스테이지는 수직 필터링을 포함하고,
    상기 후속 스테이지는 수평 필터링을 포함하는 방법.
  12. 제1항에 있어서,
    상기 버퍼링된 기준 비디오 프레임에서 하나 이상의 최종 소수적 픽셀 위치의 각각에 대해 상기 계산 단계를 반복하는 단계를 더 포함하는 방법.
  13. 컴퓨터 시스템으로 하여금 비디오 인코딩 동안에 제1항 내지 제12항의 방법을 수행하도록 하는 컴퓨터 실행가능 명령을 저장하는 컴퓨터 판독가능 매체.
  14. 컴퓨터 시스템으로 하여금 비디오 디코딩 동안에 제1항 내지 제12항의 방법을 수행하도록 하는 컴퓨터 실행가능 명령을 저장하는 컴퓨터 판독가능 매체.
  15. 복수의 비디오 프레임간의 시간적 중복성(redundancy)을 이용하는 방법으로서,
    상기 복수의 비디오 프레임의 기준 비디오 프레임을 버퍼링하는 단계, 및
    다수 스테이지의 보간처리를 이용하여 상기 복수의 비디오 프레임의 상기 기준 비디오 프레임 내의 최종 소수적 픽셀 위치에서 최종 픽셀 값을 계산하는 단계를 포함하고,
    상기 다수 스테이지는 적어도 제1 스테이지 및 제2 스테이지를 포함하며,
    상기 계산 단계는
    상기 제1 스테이지에서 하나 이상의 중간 픽셀 값의 비트 쉬프트를 수행하되, 상기 비트 쉬프트의 적어도 일부를 상기 제1 스테이지에서 상기 제2 스테이지로 연기하는 단계 - 상기 지연된 비트 시프팅은 그 양이 소수적 픽셀 시프트의 정도 차이에 따라 변화함 -, 및
    상기 제1 스테이지 동안에 상기 하나 이상의 비트 쉬프트된 중간 픽셀 값의 클램핑을 스킵하고, 상기 제2 스테이지 동안에 상기 비트 쉬프트된 최종 픽셀 값을 클램핑하는 단계를 포함하는 방법.
  16. 제15항에 있어서,
    상기 최종 소수적 픽셀 위치는 상기 기준 비디오 프레임의 제1 차원에서 1/4-픽셀 시프트 또는 3/4-픽셀 시프트에, 상기 기준 비디오 프레임의 제2 차원에서 1/4-픽셀 시프트 또는 3/4-픽셀 시프트에 위치되는 방법.
  17. 제15항에 있어서,
    상기 다수 스테이지의 하나 이상의 스테이지는 근사적 겹삼차(bicubic) 필터를 이용하는 방법.
  18. 삭제
  19. 삭제
  20. 제15항에 있어서,
    상기 지연된 비트 시프팅은 상기 제1 및 제2 스테이지에서 도입된 확장 인자에 따라 변화하는 방법.
  21. 제15항에 있어서,
    상기 제1 스테이지는 제1 방향으로의 제1 라운딩을 포함하고,
    상기 제2 스테이지는 상기 제1 방향의 반대방향인 제2 방향으로의 제2 라운딩을 포함하고,
    라운딩 제어 파라미터가 상기 제1 및 제2 방향을 제어하는 방법.
  22. 컴퓨터 시스템으로 하여금 비디오 인코딩 동안에 제15항 내지 제21항 중의 어느 하나의 방법을 수행하도록 하는 컴퓨터 실행가능 명령을 저장하는 컴퓨터 판독가능 매체.
  23. 컴퓨터 시스템으로 하여금 비디오 디코딩 동안에 제15항 내지 제21항 중의 어느 하나의 방법을 수행하도록 하는 컴퓨터 실행가능 명령을 저장하는 컴퓨터 판독가능 매체.
  24. 컴퓨터 시스템에서 구현된 방법으로서,
    최종 소수적 픽셀 위치에서, 다수의 스테이지의 보간 처리를 이용하여 최종 값을 계산하는 단계를 포함하고,
    상기 계산 단계는, 상기 다수 스테이지 중의 제1 스테이지에서 비트 쉬프트를 수행하되, 상기 비트 쉬프트의 적어도 일부를 상기 제1 스테이지에서 상기 다수 스테이지 중의 제2 스테이지로 연기함으로써 상기 최종 값의 정확도를 증가시키는 단계를 포함하며,
    상기 지연된 비트 시프팅은 그 양이 소수적 픽셀 시프트의 정도 차이에 따라 변화하는 방법.
  25. 제24항에 있어서,
    상기 계산 단계는,
    상기 제1 스테이지에서, 근접한 소수적 픽셀 위치에서 다수의 중간 값을 계산하고, 상기 다수의 중간 값의 각각을 하나 이상의 비트의 제1 시프트 량만큼 비트 시프팅시키는 단계,
    상기 제2 스테이지에서, 상기 다수의 중간 값에 적어도 부분적으로 기초하여 상기 최종 값을 계산하고, 상기 최종 값을 상기 제2 스테이지의 정규화 인자의 밑을 2로 하는 대수 값보다 큰 제2 시프트 량만큼 비트 시프팅시키는 단계를 포함하는 방법.
  26. 제25항에 있어서,
    상기 제2 시프트 량은 상기 제1 시프트 량보다 큰 방법.
  27. 제25항에 있어서,
    상기 제2 시프트 량은 7 비트인 방법.
  28. 제25항에 있어서,
    상기 다수의 중간 값은 상기 제1 시프팅 량만큼의 상기 비트 시프팅 전에 그리고 상기 제1 시프팅 량만큼의 상기 비트 시프팅 후에 입력 값 동적 범위보다 넓은 중간 값 동적 범위를 가진 방법.
  29. 제25항에 있어서,
    상기 제1 시프팅 량만큼의 비트 시프팅은 상기 제2 스테이지에서 워드 제한범위 내에 잔류하면서 동적 범위를 유지하는 방법.
  30. 제25항에 있어서,
    상기 제2 시프팅 량만큼의 비트 시프팅 후에, 상기 최종 값은 다수의 맨티사(mantissa) 비트와 1개의 부호 비트를 포함하는 방법.
  31. 삭제
  32. 제24항에 있어서,
    상기 지연된 비트 시프팅은 그 양이 상기 다수의 스테이지의 보간처리에 이용된 하나 이상의 보간 필터에 대한 확장 인자에 따라 변화하는 방법.
  33. 제24항에 있어서,
    상기 계산 단계는 근사적 겹삼차(bicubic) 필터를 이용하는 방법.
  34. 제24항에 있어서,
    상기 최종 소수적 픽셀 위치는 기준 비디오 프레임에 있는 방법.
  35. 제24항에 있어서,
    하나 이상의 추가적인 최종 소수적 픽셀 위치의 각각에 대해 상기 계산 단계를 반복하는 단계를 더 포함하는 방법.
  36. 컴퓨터 시스템으로 하여금 비디오 인코딩 동안에 제24항 내지 제35항 중의 어느 하나의 방법을 수행하도록 하는 컴퓨터 실행가능 명령을 저장하는 컴퓨터 판독가능 매체.
  37. 컴퓨터 시스템으로 하여금 비디오 디코딩 동안에 제24항 내지 제35항 중의 어느 하나의 방법을 수행하도록 하는 컴퓨터 실행가능 명령을 저장하는 컴퓨터 판독가능 매체.
  38. 기준 비디오 프레임 내의 중간 서브 픽셀 위치에서 복수의 중간 픽셀 값을 계산하는 수단 - 상기 복수의 중간 픽셀 값 각각은 상기 기준 비디오 프레임 내의 정수 픽셀 위치에서 복수의 정수 픽셀 값 간에 제1 차원을 따라 보간함으로써 계산됨 -; 및
    중간 서브 픽셀 위치에서 복수의 중간 픽셀 값 간에 제2 차원을 따라 보간함으로써, 기준 비디오 프레임 내의 최종 서브 픽셀 위치에서 최종 픽셀 값을 계산하는 수단을 포함하고,
    상기 최종 픽셀 값은 최종 동적 범위를 가지며,
    상기 복수의 중간 픽셀 값 각각은 적어도 하나의 비트 만큼 쉬프트되었으며, 상기 최종 동적 범위 보다 큰 중간 동적 범위를 가지고,
    상기 비트 시프팅의 양은 서브 픽셀 시프트의 차이에 따라 변화하는 시스템.
  39. 제38항에 있어서,
    상기 최종 픽셀 값을 계산하는 수단은,
    최종 픽셀 값을 클램핑하는 수단을 포함하고,
    상기 복수의 중간 픽셀 값을 계산하는 수단은, 복수의 중간 픽셀 값을 클램핑하는 수단을 포함하지 않는 시스템.
  40. 제38항 또는 제39항에 있어서,
    상기 복수의 중간 픽셀 값을 계산하는 수단은, 제1 시프트 량만큼 비트 시프팅시키는 수단을 포함하고,
    상기 최종 픽셀 값을 계산하는 수단은, 상기 최종 픽셀 값을 계산하기 위한 정규화 인자의 밑을 2로 하는 대수 값보다 큰 제2 시프트 량만큼 비트 시프팅시키는 수단을 포함하는 시스템.
  41. 제40항에 있어서,
    상기 제2 시프트 량은 상기 제1 시프트 량보다 가변 량만큼 큰 시스템.
KR1020030022415A 2002-04-10 2003-04-09 모션 추정 및 보상을 위한 서브-픽셀 보간처리 KR100681971B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US37186002P 2002-04-10 2002-04-10
US60/371,860 2002-04-10
US10/382,311 US7620109B2 (en) 2002-04-10 2003-03-04 Sub-pixel interpolation in motion estimation and compensation
US10/382,311 2003-03-04

Publications (2)

Publication Number Publication Date
KR20030081116A KR20030081116A (ko) 2003-10-17
KR100681971B1 true KR100681971B1 (ko) 2007-02-15

Family

ID=29254462

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030022415A KR100681971B1 (ko) 2002-04-10 2003-04-09 모션 추정 및 보상을 위한 서브-픽셀 보간처리

Country Status (8)

Country Link
US (1) US7620109B2 (ko)
EP (1) EP1353514B1 (ko)
JP (1) JP2003333599A (ko)
KR (1) KR100681971B1 (ko)
AT (1) ATE312479T1 (ko)
DE (1) DE60302602T2 (ko)
ES (1) ES2254811T3 (ko)
HK (1) HK1059856A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101208383B1 (ko) * 2008-04-10 2012-12-05 퀄컴 인코포레이티드 비디오 코딩에서 모션 보상을 위한 어드밴스드 보간 기술
KR101208384B1 (ko) * 2008-04-10 2012-12-05 퀄컴 인코포레이티드 비디오 코딩에서 모션 보상을 위한 어드밴스드 보간 기술
US8804831B2 (en) 2008-04-10 2014-08-12 Qualcomm Incorporated Offsets at sub-pixel resolution
US11683519B2 (en) 2008-04-10 2023-06-20 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050105621A1 (en) * 2003-11-04 2005-05-19 Ju Chi-Cheng Apparatus capable of performing both block-matching motion compensation and global motion compensation and method thereof
NO319629B1 (no) 2003-11-28 2005-09-05 Tandberg Telecom As Fremgangsmate for korrigering av interpolerte pikselverdier
KR100881037B1 (ko) * 2004-05-04 2009-02-05 퀄컴 인코포레이티드 시간적 확장성을 위한 양방향 예측 프레임을 구성하는 방법 및 장치
KR100605105B1 (ko) 2004-05-28 2006-07-26 삼성전자주식회사 영상 보간 장치
EP1617672A1 (en) * 2004-07-13 2006-01-18 Matsushita Electric Industrial Co., Ltd. Motion estimator/compensator including a 16-bit 1/8 pel interpolation filter
US7379076B2 (en) * 2004-07-15 2008-05-27 Microsoft Corporation Using pixel homogeneity to improve the clarity of images
JP4284265B2 (ja) * 2004-11-02 2009-06-24 株式会社東芝 動画像符号化装置、動画像符号化方法、動画像復号化装置および動画像復号化方法
US7751478B2 (en) * 2005-01-21 2010-07-06 Seiko Epson Corporation Prediction intra-mode selection in an encoder
JP4736456B2 (ja) * 2005-02-15 2011-07-27 株式会社日立製作所 走査線補間装置、映像表示装置、映像信号処理装置
JP2008544598A (ja) 2005-06-10 2008-12-04 エヌエックスピー ビー ヴィ 交互の上向き及び下向き動きベクトル
US20060285597A1 (en) * 2005-06-20 2006-12-21 Flextronics International Usa, Inc. Reusing interpolated values in advanced video encoders
US7830961B2 (en) * 2005-06-21 2010-11-09 Seiko Epson Corporation Motion estimation and inter-mode prediction
JP5053275B2 (ja) * 2005-07-28 2012-10-17 トムソン ライセンシング 階層的キャッシュを使うビデオ動き処理最適化のための方法および装置
US20070110159A1 (en) * 2005-08-15 2007-05-17 Nokia Corporation Method and apparatus for sub-pixel interpolation for updating operation in video coding
US9479794B2 (en) 2005-11-10 2016-10-25 Freescale Semiconductor, Inc. Resource efficient video processing via prediction error computational adjustments
US8170102B2 (en) * 2005-12-19 2012-05-01 Seiko Epson Corporation Macroblock homogeneity analysis and inter mode prediction
US7843995B2 (en) * 2005-12-19 2010-11-30 Seiko Epson Corporation Temporal and spatial analysis of a video macroblock
WO2007116551A1 (ja) * 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
US8208553B2 (en) * 2006-05-04 2012-06-26 Altera Corporation Methods and apparatus for quarter-pel refinement in a SIMD array processor
JP4682384B2 (ja) * 2006-07-11 2011-05-11 株式会社メガチップス 1/4画素輝度用動き予測機構、組合せ輝度用動き予測機構、及び組合せ輝度・色差用動き予測機構
US9883202B2 (en) 2006-10-06 2018-01-30 Nxp Usa, Inc. Scaling video processing complexity based on power savings factor
KR100899730B1 (ko) * 2006-10-20 2009-05-27 삼성전자주식회사 영상 인코더 및 디코더에서의 색차 신호 보간 방법
KR101369746B1 (ko) * 2007-01-22 2014-03-07 삼성전자주식회사 적응적 보간 필터를 이용한 영상 부호화, 복호화 방법 및장치
US8275041B2 (en) * 2007-04-09 2012-09-25 Nokia Corporation High accuracy motion vectors for video coding with low encoder and decoder complexity
KR100909390B1 (ko) * 2007-09-18 2009-07-24 한국과학기술원 고속 움직임 보상 장치 및 방법
JP4461165B2 (ja) * 2007-09-26 2010-05-12 株式会社東芝 画像処理装置、方法およびプログラム
US8831086B2 (en) 2008-04-10 2014-09-09 Qualcomm Incorporated Prediction techniques for interpolation in video coding
TWI470578B (zh) * 2008-06-26 2015-01-21 Mstar Semiconductor Inc 計算用於待插補影像區塊之目標移動向量的影像處理方法及其相關裝置
US8208065B2 (en) 2008-07-30 2012-06-26 Cinnafilm, Inc. Method, apparatus, and computer software for digital video scan rate conversions with minimization of artifacts
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
TW201101800A (en) * 2009-06-22 2011-01-01 Novatek Microelectronics Corp Image processing apparatus and method thereof
JP2014060744A (ja) * 2010-01-13 2014-04-03 Toshiba Corp 動画像符号化装置および復号装置
JP2013232974A (ja) * 2010-01-13 2013-11-14 Toshiba Corp 動画像符号化装置および復号装置
WO2011121716A1 (ja) * 2010-03-30 2011-10-06 株式会社 東芝 動画像符号化方法、復号化方法、符号化装置および復号化装置
US9219921B2 (en) * 2010-04-12 2015-12-22 Qualcomm Incorporated Mixed tap filters
US20110314253A1 (en) * 2010-06-22 2011-12-22 Jacob Yaakov Jeffrey Allan Alon System, data structure, and method for transposing multi-dimensional data to switch between vertical and horizontal filters
TWI521950B (zh) 2010-07-21 2016-02-11 財團法人工業技術研究院 用於視訊處理之移動估計之方法及裝置
MY174587A (en) * 2010-12-07 2020-04-28 Sony Corp Image processing device and image processing method
CN103229506B (zh) * 2010-12-07 2016-11-09 索尼公司 图像处理设备和图像处理方法
EP4099700A1 (en) 2011-01-07 2022-12-07 Nokia Technologies Oy Motion prediction in video coding
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
CN107105263B (zh) * 2011-06-24 2019-04-26 株式会社Ntt都科摩 用于在帧间预测下执行的运动补偿的视频解码方法和装置
US9055304B2 (en) * 2011-07-01 2015-06-09 Qualcomm Incorporated Reduced resolution pixel interpolation
US8842939B2 (en) * 2011-08-23 2014-09-23 National Taiwan University Direction-adaptive image upsampling system and method using double interpolation
FR2980068A1 (fr) * 2011-09-13 2013-03-15 Thomson Licensing Procede de codage et de reconstruction d'un bloc de pixels et dispositifs correspondants
CN107979757B (zh) * 2011-09-14 2021-12-21 三星电子株式会社 对视频进行解码的设备和对视频进行编码的设备
KR20130050149A (ko) 2011-11-07 2013-05-15 오수미 인터 모드에서의 예측 블록 생성 방법
JP2014082541A (ja) * 2012-10-12 2014-05-08 National Institute Of Information & Communication Technology 互いに類似した情報を含む複数画像のデータサイズを低減する方法、プログラムおよび装置
US9185437B2 (en) 2012-11-01 2015-11-10 Microsoft Technology Licensing, Llc Video data
WO2014078068A1 (en) * 2012-11-13 2014-05-22 Intel Corporation Content adaptive transform coding for next generation video
TWI597968B (zh) 2012-12-21 2017-09-01 杜比實驗室特許公司 在高位元深度視訊的可適性編碼中,高精度升取樣
US9008363B1 (en) 2013-01-02 2015-04-14 Google Inc. System and method for computing optical flow
CN104346770A (zh) 2013-07-24 2015-02-11 联咏科技股份有限公司 数据插补方法及数据插补系统
TWI602144B (zh) * 2013-10-02 2017-10-11 國立成功大學 包裝彩色圖框及原始景深圖框之方法、裝置及系統
US9774881B2 (en) * 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US10225569B2 (en) * 2014-03-31 2019-03-05 Megachips Corporation Data storage control apparatus and data storage control method
US10462480B2 (en) 2014-12-31 2019-10-29 Microsoft Technology Licensing, Llc Computationally efficient motion estimation
US10291932B2 (en) 2015-03-06 2019-05-14 Qualcomm Incorporated Method and apparatus for low complexity quarter pel generation in motion search
US20160345018A1 (en) * 2015-05-19 2016-11-24 Microsoft Technology Licensing, Llc Video encoding and decoding
US9811892B1 (en) 2016-06-30 2017-11-07 Apple Inc. Separating sub-band image data for processing and merging with unprocessed image data
CN107959855B (zh) * 2016-10-16 2020-02-14 华为技术有限公司 运动补偿预测方法和设备
US10235763B2 (en) 2016-12-01 2019-03-19 Google Llc Determining optical flow
US10499078B1 (en) * 2017-02-07 2019-12-03 Google Llc Implicit motion compensation filter selection
CN108833916B (zh) * 2018-06-20 2021-09-24 腾讯科技(深圳)有限公司 视频编码、解码方法、装置、存储介质和计算机设备
JP7534395B2 (ja) * 2019-09-30 2024-08-14 ホアウェイ・テクノロジーズ・カンパニー・リミテッド インター予測装置用の補間フィルタおよびビデオコーディングのための方法
CN113099231B (zh) * 2021-03-23 2022-12-20 北京百度网讯科技有限公司 确定亚像素插值位置的方法、装置、电子设备和存储介质

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60158786A (ja) 1984-01-30 1985-08-20 Kokusai Denshin Denwa Co Ltd <Kdd> 画像動き量検出方式
US4661849A (en) 1985-06-03 1987-04-28 Pictel Corporation Method and apparatus for providing motion estimation signals for communicating image sequences
US4661853A (en) 1985-11-01 1987-04-28 Rca Corporation Interfield image motion detector for video signals
EP0294958B1 (en) 1987-06-09 1995-08-23 Sony Corporation Motion compensated interpolation of digital television images
EP0294962B1 (en) 1987-06-09 1995-07-19 Sony Corporation Motion vector estimation in television images
JP2712645B2 (ja) 1989-10-14 1998-02-16 ソニー株式会社 動きベクトル伝送方法及びその装置並びに動きベクトル復号化方法及びその装置
EP0424026B1 (en) 1989-10-14 1997-07-23 Sony Corporation Video signal transmitting system and method
US5103306A (en) 1990-03-28 1992-04-07 Transitions Research Corporation Digital image compression employing a resolution gradient
US5175618A (en) 1990-10-31 1992-12-29 Victor Company Of Japan, Ltd. Compression method for interlace moving image signals
GB2256341B (en) 1991-05-24 1995-02-15 British Broadcasting Corp Video image processing
US5467136A (en) 1991-05-31 1995-11-14 Kabushiki Kaisha Toshiba Video decoder for determining a motion vector from a scaled vector and a difference vector
US5317397A (en) 1991-05-31 1994-05-31 Kabushiki Kaisha Toshiba Predictive coding using spatial-temporal filtering and plural motion vectors
US5428396A (en) 1991-08-03 1995-06-27 Sony Corporation Variable length coding/decoding method for motion vectors
JPH0541862A (ja) 1991-08-03 1993-02-19 Sony Corp 動きベクトルの可変長符号化方式
EP0535746B1 (en) 1991-09-30 1997-01-29 Philips Electronics Uk Limited Motion vector estimation, motion picture encoding and storage
JP2962012B2 (ja) 1991-11-08 1999-10-12 日本ビクター株式会社 動画像符号化装置及びその復号装置
GB2262854B (en) * 1991-12-24 1995-05-24 Sony Broadcast & Communication Image processing apparatus
US5594813A (en) 1992-02-19 1997-01-14 Integrated Information Technology, Inc. Programmable architecture and methods for motion estimation
US6441842B1 (en) 1992-02-19 2002-08-27 8×8, Inc. Video compression/decompression processing and processors
US6226327B1 (en) 1992-06-29 2001-05-01 Sony Corporation Video coding method and apparatus which select between frame-based and field-based predictive modes
ES2431289T3 (es) 1993-03-24 2013-11-25 Sony Corporation Método de decodificación de señal de imagen y aparato asociado
US5442400A (en) 1993-04-29 1995-08-15 Rca Thomson Licensing Corporation Error concealment apparatus for MPEG-like video data
JPH06343172A (ja) 1993-06-01 1994-12-13 Matsushita Electric Ind Co Ltd 動きベクトル検出方法及び動きベクトル符号化方法
US5477272A (en) 1993-07-22 1995-12-19 Gte Laboratories Incorporated Variable-block size multi-resolution motion estimation scheme for pyramid coding
TW283289B (ko) 1994-04-11 1996-08-11 Gen Instrument Corp
US5594504A (en) 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine
US5684538A (en) 1994-08-18 1997-11-04 Hitachi, Ltd. System and method for performing video coding/decoding using motion compensation
EP0710033A3 (en) 1994-10-28 1999-06-09 Matsushita Electric Industrial Co., Ltd. MPEG video decoder having a high bandwidth memory
US5623311A (en) 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
GB2301972B (en) 1995-06-06 1999-10-20 Sony Uk Ltd Video compression
GB2301971B (en) 1995-06-06 1999-10-06 Sony Uk Ltd Video compression
US6026182A (en) 1995-10-05 2000-02-15 Microsoft Corporation Feature segmentation
US5929940A (en) 1995-10-25 1999-07-27 U.S. Philips Corporation Method and device for estimating motion between images, system for encoding segmented images
US5991463A (en) 1995-11-08 1999-11-23 Genesis Microchip Inc. Source data interpolation method and apparatus
JP2798035B2 (ja) 1996-01-17 1998-09-17 日本電気株式会社 適応動きベクトル補間による動き補償フレーム間予測方法
US5799113A (en) 1996-01-19 1998-08-25 Microsoft Corporation Method for expanding contracted video images
US5692063A (en) 1996-01-19 1997-11-25 Microsoft Corporation Method and system for unrestricted motion estimation for video
US5787203A (en) 1996-01-19 1998-07-28 Microsoft Corporation Method and system for filtering compressed video images
US6957350B1 (en) 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5982438A (en) 1996-03-22 1999-11-09 Microsoft Corporation Overlapped motion compensation for object coding
US5847776A (en) 1996-06-24 1998-12-08 Vdonet Corporation Ltd. Method for entropy constrained motion estimation and coding of motion vectors with increased search range
US6233017B1 (en) 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US6130963A (en) 1996-11-22 2000-10-10 C-Cube Semiconductor Ii, Inc. Memory efficient decoding of video frame chroma
US6377628B1 (en) 1996-12-18 2002-04-23 Thomson Licensing S.A. System for maintaining datastream continuity in the presence of disrupted source data
US6201927B1 (en) 1997-02-18 2001-03-13 Mary Lafuze Comer Trick play reproduction of MPEG encoded signals
US5991447A (en) 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
US6005980A (en) 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US5844613A (en) 1997-03-17 1998-12-01 Microsoft Corporation Global motion estimator for motion video signal encoding
US6404813B1 (en) 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
WO1998044479A1 (fr) 1997-03-31 1998-10-08 Matsushita Electric Industrial Co., Ltd. Procede de visualisation du premier plan d'images et dispositif connexe
US5973755A (en) 1997-04-04 1999-10-26 Microsoft Corporation Video encoder and decoder using bilinear motion compensation and lapped orthogonal transforms
US6067322A (en) 1997-06-04 2000-05-23 Microsoft Corporation Half pixel motion estimation in motion video signal encoding
ES2431802T3 (es) 1997-06-09 2013-11-28 Hitachi, Ltd. Procedimiento de decodificación de imágenes y decodificador de imágenes
US6574371B2 (en) 1997-06-09 2003-06-03 Hitachi, Ltd. Image decoding method
JPH1169345A (ja) 1997-06-11 1999-03-09 Fujitsu Ltd フレーム間予測動画像符号化装置及び復号装置並びにフレーム間予測動画像符号化方法及び復号方法
JP2897763B2 (ja) 1997-07-28 1999-05-31 日本ビクター株式会社 動き補償符号化装置、復号化装置、符号化方法及び復号化方法
US6266091B1 (en) 1997-07-31 2001-07-24 Lsi Logic Corporation System and method for low delay mode operation video decoding
US6310918B1 (en) 1997-07-31 2001-10-30 Lsi Logic Corporation System and method for motion vector extraction and computation meeting 2-frame store and letterboxing requirements
FR2766946B1 (fr) 1997-08-04 2000-08-11 Thomson Multimedia Sa Procede et dispositif de pretraitement pour estimation de mouvement
US6281942B1 (en) 1997-08-11 2001-08-28 Microsoft Corporation Spatial and temporal filtering mechanism for digital motion video signals
US6339656B1 (en) 1997-12-25 2002-01-15 Matsushita Electric Industrial Co., Ltd. Moving picture encoding decoding processing apparatus
US6122017A (en) 1998-01-22 2000-09-19 Hewlett-Packard Company Method for providing motion-compensated multi-field enhancement of still images from video
JP3888597B2 (ja) 1998-06-24 2007-03-07 日本ビクター株式会社 動き補償符号化装置、及び動き補償符号化復号化方法
JP4026238B2 (ja) 1998-07-23 2007-12-26 ソニー株式会社 画像復号装置及び画像復号方法
US6219070B1 (en) 1998-09-30 2001-04-17 Webtv Networks, Inc. System and method for adjusting pixel parameters by subpixel positioning
GB2343579A (en) 1998-11-07 2000-05-10 Ibm Hybrid-linear-bicubic interpolation method and apparatus
US6418166B1 (en) 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
US6983018B1 (en) 1998-11-30 2006-01-03 Microsoft Corporation Efficient motion vector coding for video compression
US6496608B1 (en) 1999-01-15 2002-12-17 Picsurf, Inc. Image data interpolation system and method
US6259741B1 (en) 1999-02-18 2001-07-10 General Instrument Corporation Method of architecture for converting MPEG-2 4:2:2-profile bitstreams into main-profile bitstreams
US6320593B1 (en) 1999-04-20 2001-11-20 Agilent Technologies, Inc. Method of fast bi-cubic interpolation of image information
US6968008B1 (en) 1999-07-27 2005-11-22 Sharp Laboratories Of America, Inc. Methods for motion estimation with adaptive motion accuracy
US6647061B1 (en) 2000-06-09 2003-11-11 General Instrument Corporation Video size conversion and transcoding from MPEG-2 to MPEG-4
US7206453B2 (en) 2001-05-03 2007-04-17 Microsoft Corporation Dynamic filtering for lossy compression
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US20030095603A1 (en) 2001-11-16 2003-05-22 Koninklijke Philips Electronics N.V. Reduced-complexity video decoding using larger pixel-grid motion compensation
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US7110459B2 (en) 2002-04-10 2006-09-19 Microsoft Corporation Approximate bicubic filter
US7277587B2 (en) 2002-04-26 2007-10-02 Sharp Laboratories Of America, Inc. System and method for lossless video coding
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
KR100586882B1 (ko) 2004-04-13 2006-06-08 삼성전자주식회사 모션 스케일러빌리티를 지원하는 코딩 방법 및 장치

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101208383B1 (ko) * 2008-04-10 2012-12-05 퀄컴 인코포레이티드 비디오 코딩에서 모션 보상을 위한 어드밴스드 보간 기술
KR101208384B1 (ko) * 2008-04-10 2012-12-05 퀄컴 인코포레이티드 비디오 코딩에서 모션 보상을 위한 어드밴스드 보간 기술
US8804831B2 (en) 2008-04-10 2014-08-12 Qualcomm Incorporated Offsets at sub-pixel resolution
US8971412B2 (en) 2008-04-10 2015-03-03 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
US11683519B2 (en) 2008-04-10 2023-06-20 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter

Also Published As

Publication number Publication date
HK1059856A1 (en) 2004-07-16
ES2254811T3 (es) 2006-06-16
JP2003333599A (ja) 2003-11-21
US20030202607A1 (en) 2003-10-30
EP1353514A2 (en) 2003-10-15
DE60302602T2 (de) 2006-06-29
KR20030081116A (ko) 2003-10-17
EP1353514A3 (en) 2003-10-29
DE60302602D1 (de) 2006-01-12
ATE312479T1 (de) 2005-12-15
US7620109B2 (en) 2009-11-17
EP1353514B1 (en) 2005-12-07

Similar Documents

Publication Publication Date Title
KR100681971B1 (ko) 모션 추정 및 보상을 위한 서브-픽셀 보간처리
KR100635410B1 (ko) 색도 모션 벡터 라운딩
KR100681972B1 (ko) 근사적 겹삼차 필터
KR100593344B1 (ko) 다수 스테이지 보간처리를 위한 라운딩 제어
JP5174581B2 (ja) 順方向予測インターレース映像フレームのフィールド用の動きベクトルの予測
US7499495B2 (en) Extended range motion vectors
US7609763B2 (en) Advanced bi-directional predictive coding of video frames
RU2456761C1 (ru) Операции повторной дискретизации и изменения размера изображения для кодирования и декодирования видео с переменной разрешающей способностью
US7830963B2 (en) Decoding jointly coded transform type and subblock pattern information
US20030156646A1 (en) Multi-resolution motion estimation and compensation
JPH1146364A (ja) 動き補償符号化装置、復号化装置、符号化方法及び復号化方法
KR100599935B1 (ko) 정화소 탐색시의 사드값 및 확률 변수에 기반한 고속의반화소 탐색 방법

Legal Events

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

Payment date: 20130121

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140123

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150121

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 14