KR20090133126A - 모션 벡터 예측을 위한 방법 및 시스템 - Google Patents

모션 벡터 예측을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20090133126A
KR20090133126A KR1020097022412A KR20097022412A KR20090133126A KR 20090133126 A KR20090133126 A KR 20090133126A KR 1020097022412 A KR1020097022412 A KR 1020097022412A KR 20097022412 A KR20097022412 A KR 20097022412A KR 20090133126 A KR20090133126 A KR 20090133126A
Authority
KR
South Korea
Prior art keywords
block
motion vector
motion
vector predictor
neighboring
Prior art date
Application number
KR1020097022412A
Other languages
English (en)
Inventor
야니 라이네마
Original Assignee
노키아 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20090133126A publication Critical patent/KR20090133126A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

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

Abstract

적어도 두 개의 서로 다른 타입의 모션 벡터 예측들에 기반해 비디오 프레임을 인코딩 및/또는 디코딩할 수 있는 비디오 코딩 시스템이 개시된다. 한 타입에서, 비디오 프레임 내 현재의 프레임의 모션 벡터 예측자는 그 현재의 블록 바로 위에 있는 이웃 블록의 모션 벡터만을 사용해 산출된다. 다른 타입에서, 모션 벡터 예측자는 현재의 블록의 왼편에 자리한 이웃 블록의 모션 벡터를 사용해 산출된다. 앞 경우의 타입에 있어서, 같은 행에 자리한 인접 블록들이 서로 독자적으로 디코딩될 수 있다. 후자의 경우의 타입에 있어서, 같은 열에 위치한 인접 블록들이 서로 독자적으로 디코딩될 수 있다. 시스템이 일반적 코딩을 수행할 수도 있다. 디코더 측에 어떤 타입의 모션 벡터 예측자가 인코딩시에 사용되었는지를 알리기 위한 표시가 사용된다.

Description

모션 벡터 예측을 위한 방법 및 시스템 {Method and system for motion vector predictions}
본 발명은 일반적으로 디지털 비디오 자료의 인코딩 및 디코딩에 관한 것으로, 더 상세히 말하면 효율적 병렬 계산 구조에 적합한 모션 벡터 예측 방법 및 시스템에 관한 것이다.
이 부분은 배경 또는 상황을 제공하기 위한 것이다. 이 안에서의 내용은, 추구될 수 있었지만 반드시 이전에 착상되었거나 추구되었던 것들이라고는 할 수 없는 개념들을 포함할 것이다. 따라서, 여기서 달리 나타내지 않는다면 이 부분에 설명되는 것들은 본 출원의 청구항들에 대한 선행 기술이 아니며, 이 부분에 포함함으로써 선행 기술이 되는 것으로 인정되는 것이 아니다.
비디오 코덱은 입력 비디오를 저장/전송에 적합한 압축 표현으로 변환하는 인코더와, 압축된 비디오 표현을 다시 볼 수 있는 형태로 압축해제하는 디코더를 포함한다. 통상적으로, 인코더는 보다 간결한 형식으로 (즉, 보다 낮은 레이트로) 비디오를 표현하기 위해 오리지널 비디오 시퀀스 안의 일부 정보를 버린다.
일반적 하이브리드 비디오 코덱들, 이를테면 ITU-T H.263 및 H.264는 비디오 정보를 두 단계로 인코딩한다. 첫째, 어떤 픽처 영역 (또는 "블록") 내 픽셀 값들 이 모션 보상 수단 또는 공간 예측 수단 등에 의해 예측된다. 모션 보상 수단은 코딩되고 있는 블록과 밀접하게 상응하는 앞서 코딩된 비디오 프레임들 중 한 프레임 내 어떤 영역을 찾아 표시하는데 사용된다. 공간 예측 수단은 특정한 방식으로 코딩될 블록 주변의 픽셀 값들을 사용한다. 두 번째, 예측 오차, 즉 예측된 픽셀들의 블록과 오리지널 픽셀들의 블록들 간 차이가 코딩된다. 이것은 보통 특정 변환방식 (가령 이산 코사인 변환, DCT, Discrete Cosine Transform 또는 그 변형)을 이용해 잔차 정보 (residual information)인 픽셀 값들의 차를 변환하고, 그 변환 계수들을 양자화한 후 그에 따른 양자화 계수들을 엔트로피 코딩함으로써 행해진다. 인코더는 양자화 프로세스의 피델리티 (fidelity)를 가변함으로써 픽셀 표현의 정밀도 (픽처 품질)와 결과적으로 코딩된 비디오 표현의 사이즈 (파일 사이즈 또는 전송 비트레이트) 간 발란스를 제어할 수 있다.
디코더는 인코더에서와 유사한 예측 수단 및 예측 오차 디코딩 (공간 픽셀 도메인에 양자화된 예측 오차 신호를 복구하는 역예측 오차 코딩 동작)을 적용해 (인코더에 의해 생성되어 압축 표현 안에 저장된 모션 또는 공간 정보를 이용하여) 예측된 픽셀 블록들의 표현을 생성함으로써 출력 비디오를 재구성한다. 예측 및 예측 오차 디코딩 수단을 적용한 후, 디코더는 예측 및 예측 오차 신호들 (픽셀 값들)을 더하여 출력 비디오 프레임을 생성한다. 디코더와 인코더는 또한 디스플레이 및/또는 비디오 시퀀스의 후속 프레임들에 대한 예측 기준으로서 저장하기 위해 비디오 신호를 전달하기 전에, 그 출력 비디오의 품질을 향상시키기 위한 추가 필터링 수단을 포함할 수 있다.
통상의 비디오 코덱들에서 모션 정보는 각각의 모션 보상된 이미지 블록과 결부된 모션 벡터들을 통해 표시된다. 인코더 측에서, 이들 모션 벡터들 각각은 코딩될 픽처 안의 이미지 블록 및 앞서 코딩된 픽처들 중 한 픽처 안의 예측 소스 블록의 변위 (displacement)를 나타낸다. 디코더 측에서, 이 모션 벡터들 각각은 디코딩될 픽처 안의 이미지 블록 및 앞서 디코딩된 픽처들 중 한 픽처 내의 예측 소스 블록의 변위를 나타낸다. 모션 벡터들을 효과적으로 나타내기 위해, 모션 벡터들은 일반적으로 블록-고유의 예측 모션 벡터들에 대해 차별적으로 코딩된다. 통상적 비디오 코덱에서, 예측 모션 벡터들은 미리 규정된 방식, 이를테면, 인접 블록들의 인코딩되거나 디코딩된 모션 벡터들의 메디안 (median)을 산출하는 방식으로 생성된다.
통상의 비디오 인코더들은 최적의 매크로블록 모드 및 모션 벡터들을 찾기 위해 라그랑지 비용 함수들 (Lagrangian cost functions)을 활용한다. 이 같은 종류의 비용 함수는 손실이 많은 코딩 방법들로 인해, 있는 그대로이거나 추정된 이미지 왜곡과 이미지 영역 안에 픽셀 값들을 표현하기 위해 필요로 되는 그대로이거나 추정된 정보량을 함께 연결하기 위해 가중 팩터 λ를 사용한다:
C = D + λR
위에서 C는 최소화될 라그랑지 비용이고, D는 모드 및 모션 벡터들이 고려된 이미지 왜곡 (가령, 평균 제곱 오차 (Mean Squared Error)이고, R은 디코더에서 이미지 블록을 재구성하기 위해 요구되는 데이터를 표현하는데 필요한 비트 수 (후보 모션 벡터들을 표현하기 위한 데이터량을 포함)이다.
계산상으로 최적화된 비디오 인코더 구현방식들에서, 인코딩의 일부는 보통 다른 동작들과 병렬로 수행된다. 모션 추정 절차의 계산 집약적 성질 때문에, 그 기능은 매우 빈번하게 인코딩의 나머지와 분리되어 가령 별개의 하드웨어 모듈에 의해 구현되거나, 다른 인코딩 기능들과 다른 CPU 상에서 실행된다. 이런 종류의 통상적 인코더 아키텍처에서, 한 매크로블록에 대한 모션 추정은 예측 에러 코딩 및 앞선 매크로블록에 대한 모드 선택과 동시에 일어난다.
이런 상황하에서의 문제는, 앞서 코딩된 매크로블록들의 모션 벡터들로부터 파생되는 예측 모션 벡터들에 대한 모션 벡터들의 차별적 코딩으로 인해, 최적 모션 벡터 검색이 이전 매크로블록의 매크로블록 모드 및 모션 벡터 선택에 좌우된다는 데 있다. 그러나, 이 정보는 이전 매크로블록의 매크로블록 모드와 모션 벡터 선택이 수행된 뒤에만 입수가능하고, 따라서 모드 선택 프로세스와 나란히 일어나는 모션 추정시에 활용될 수가 없다.
따라서, 차선의 성능으로 불리해짐이 없이 병렬 구현을 가능하게 하는 모션 벡터 예측 방법을 제공하는 것이 바람직하다.
본 발명의 제1양태는 적어도 두 가지 상이한 타입의 모션 벡터 예측들에 기초해 한 비디오 프레임을 인코딩 및/또는 디코딩하는 비디오 코딩 방법을 제공한다. 한 타입에 있어서, 적어도 현재의 블록이 자리하는 행 (row)과 다른 행에 자리한 이웃 블록의 모션 벡터를 이용해, 비디오 프레임 내 한 블록에 대한 모션 벡터 예측자 (motion vector predictor)가 산출된다. 그로써, 같은 행에 자리한 인접 블록들이 서로 독자적으로 디코딩될 수 있다. 다른 타입에 있어서, 현재의 블록이 자리한 열 (column)과 다른 열에 자리한 이웃 블록의 모션만을 이용해 모션 벡터 예측자가 산출된다. 그로써, 같은 열에 자리한 인접 블록들이 서로 독자적으로 디코딩될 수 있다. 또, 다른 타입의 모션 벡터 예측이 사용될 수 있다. 그 다른 타입에 있어서, 현재의 블록의 왼쪽에 자리한 이웃 블록의 모션 벡터와 다른 행에 있는 다른 이웃 블록들의 모션 벡터들 역시 모션 벡터 예측자 산출에 이용될 수 있다. 어떤 표시 (indication)가 디코더 측에 주어져, 인코딩 프로세스시 어떤 타입의 모션 벡터 예측자가 사용되는지를 표시할 수 있다.
본 발명의 제2양태는 상기 방법을 수행하는 장치를 제공한다.
본 발명의 제3양태는 상기 방법을 수행하기 위한 컴퓨터 코드들을 포함하는 컴퓨터 판독가능 저장 매체에 수록되는 소프트웨어 제품을 제공한다.
본 발명의 제4양태는 상술한 비디오 인코더 및/또는 디코더를 포함하는, 모바일 단말과 같은 전자 장치를 제공한다.
도 1은 종래의 메디안 예측의 경우 모션 벡터 예측에 사용되는 블록들 X 및 Y의 예측 모션 벡터들을 도시한 것이다.
도 2a는 본 발명의 일 실시예에 따라 모션 벡터 예측에 사용되는 블록들 X 및 Y의 예측 모션 벡터들을 도시한 것이다.
도 2b는 본 발명의 다른 실시예에 따라 모션 벡터 예측에 사용되는 블록들 X 및 Y의 예측 모션 벡터들을 도시한 것이다.
도 2c는 본 발명의 또 다른 실시예에 따라 모션 벡터 예측에 사용되는 블록들 X 및 Y의 예측 모션 벡터들을 도시한 것이다.
도 3은 일반적 인코더를 도시한 것이다.
도 4는 일반적 디코더를 도시한 것이다.
도 5는 본 발명에 따른 인코더를 도시한 것이다.
도 6은 본 발명에 따른 디코더를 도시한 것이다.
도 7은 본 발명에 따라, 비디오 프레임들의 인코딩 및/또는 디코딩에 사용될 수 있는 셀룰라 통신 인터페이스 시스템을 도시한 것이다.
H.264 같은 일반적 코덱에서, 코딩될 한 블록의 예측 모션 벡터는 보통 그 이웃 블록들의 모션 벡터들 (이웃 모션 벡터들)을 그 벡터들의 메디안 (median)으로서 사용해 산출된다. 도 1에 도시된 바와 같이, 현재의 블록 X와 다음 블록 Y는 코딩될 블록들이다. 이웃 블록들 A, B, 및 C의 모션 벡터들이 블록 X의 예측 모션 벡터를 산출하는데 사용되고, 블록들 X, C 및 F의 모션 벡터들이 블록 Y의 예측 모션 벡터를 산출하는데 사용된다. 각 블록의 모션 벡터는 그 블록과 관련된 화살표로써 보여진다. 따라서, 현재의 블록 X에 대한 예측 모션 벡터를 얻기 위해서는 매크로블록 A의 모션 벡터가 알려져야 된다. 마찬가지로, 블록 Y의 예측 모션 벡터를 얻기 위해, 블록 X의 모션 벡터가 알려져야 된다. 따라서, 블록 Y의 예측 모션 벡터는 블록 X의 예측 모션 벡터가 획득되기 전에는 얻어질 수가 없다.
유사한 접근 방식이 블록의 인트라 예측 (Intra predictin) 및 엔트로피 코 딩에 적용된다. 현재의 블록을 인트라 예측할 수 있게 하기 위해서는, 현재의 블록 왼편에 있는 이웃 블록의 픽셀 값들이 입수되어야 한다. 마찬가지로 현재의 블록과 관련된 데이터를 엔트로피 코딩하거나 디코딩할 수 있기 위해서는, 데이터 아이템들의 엔트로피 코딩시의 의존관계들로 인해 왼편의 블록이 앞서 처리되어야 한다.
본 발명의 일 실시예에 따르면, 다른 타입의 모션 벡터 예측 역시 사용된다. 본 발명에 따르면, 이웃하는 블록들 X 및 Y은 서로 독자적으로 디코딩될 수 있다. 도 2a에 도시된 바와 같이, 현재의 블록 X의 모션 벡터는, 이를테면 블록 X 바로 위에 있는 매크로블록 B의 모션 벡터만을 이용해 산출된다. 마찬가지로, 다음 블록 Y의 모션 벡터는 매크로블록 C의 모션 벡터만을 사용해 산출된다. 이런 타입의 모션 벡터 예측은 블록 X나 블록 Y의 왼편에 있는 이웃하는 매크로블록들의 모션 벡터들에 의존하지 않는다. 둘 이상의 모션 벡터 예측 타입들이 모션 벡터 예측 가능한 것들로서 주어지고 그 타입들 중 적어도 하나는 왼편에 있는 이웃 매크로블록의 모션 벡터들에 종속되지 않을 때, 같은 행의 매크로블록들에 대해 모션 추정 및 보상이 동시병행으로 수행될 수 있도록 인코더 및 디코더를 구성하는 것이 가능하다. 이는 한 매클로블록의 모션 벡터가 위에 있는 매크로블록들의 모션 벡터들에 의존하기 때문이다. 그로써 효율적인 병렬 인코더 구현이 가능하게 된다. 전통적 모션 벡터 예측 방법들의 유연성과 함께, 병렬 및 직렬 둘 모두의 구현에 대한 압축 효율성이 최대화될 수 있다.
본 발명의 일 실시예에 따르면, 선택 가능한 것들로서 제공된 둘 이상의 모 션 벡터 예측 타입들 및 그러한 선택 가능한 것들 중 하나 이상이 코딩을 위해 선택된다. 그에 따라, 선택된 모션 벡터 예측 타입 또는 타입들에 대한 표시가 디코더 측으로 보내져서, 그 표시에 기초해 인코딩된 비디오가 디코딩될 수 있도록 한다. 가능한 모션 벡터 예측 타입들 중 적어도 하나는 왼편에 있는 이웃 매크로블록의 모션 벡터들에 종속되지 않는다. 즉, 가능한 모션 벡터 예측 타입들 중 적어도 하나는, 현재의 매크로블록 위에 있는, 같은 행에 있는 매크로블록들 중 적어도 하나의 모션 벡터만을 이용해 현재의 매크로블록의 예측 모션 벡터를 계산한다.
본 발명의 일 실시예에서, 비디오 디코더는 디코딩될 블록들의 모션 벡터 예측을 생성하기 위한 두 가지 방식들을 가지고 규정된다:
방식 1: 현재의 블록의 왼편에 있는 적어도 한 블록의 모션 벡터가 모션 벡터 예측에 사용되는 모션 벡터 예측; 및
방식 2: 모션 벡터 예측과 관련해 현재의 블록 바로 위에 있는 블록의 모션 벡터 활용.
따라서, 디코더는 모션 블록들 각각에 대해 어떤 방식이 사용되는지를 찾아내고 선택된 방식을 모션 정보와 관련된 각 블록의 예측 모션 벡터를 생성하는데 사용하는 지능 (intelligence)을 보유한다.
본 발명은 다양한 방식들로써 구현될 수 있다:
- 둘을 넘는 모션 벡터 예측 방식들이 활용될 수 있다;
- 서로 다른 모션 벡터 예측 방식들 사이에서의 선택은 비디오 정보에 내장되거나 (가령, 슬라이스 헤더들 안이나 파라미터 세트들 안에), 대역밖 (out-of- band) 정보로서 제공될 수 있다;
- 모션 벡터 예측 방식들은 여러 개, 또는 하나의 모션 벡터에 기초할 수 있다;
- 모션 벡터 예측 방식들은 이웃하거나 이웃하지 않은 모션 블록들의 모션 벡터들에 기초할 수 있다;
- 모션 벡터 예측 방식들은 같거나 다른 픽처들의 모션 벡터들에 기초할 수 있다;
- 모션 벡터 예측 방식들은 다른 시그날링된 정보 (가령 가장 적절한 후보 모션 벡터들의 선택 및 이들로부터 모션 벡터 예측을 도출하는 방법)을 활용할 수 있다;
- 모션 벡터 예측 방식들은 상기 대안들의 임의 결합에 기초할 수 있다;
- 매크로블록 레벨에 대해 비슷한 의존관계를 가진 다른 데이터에 대해 동일한 접근방식이 활용될 수 있다 (가령, 인코딩되고 있거나 디코딩되고 있는 매크로블록의 바로 왼편에 있는 매크로블록으로부터의 인트라 예측 및/또는 엔트로피 코딩시 사용된 정황들 (contexts)을 불능화).
도 2b에 도시된 바와 같이 본 발명의 다른 실시예에서, 블록 X의 모션 백터는 가령 블록 X의 왼편에 바로 위치한 매크로블록 A의 모션 벡터만을 이용해 산출된다. 블록 X와 같은 열에 위치한 다른 블록 Y에 대해, 그 모션 벡터는 블록 Y의 왼편에 바로 위치하는 매크로블록 D의 모션 벡터만을 사용해 산출된다. 블록 X의 모션 벡터가 블록 Y의 모션 벡터 예측에 사용되지 않으므로, 블록 Y는 블록 X와 무 관하게 디코딩될 수 있다.
도 2c에 도시된 바와 같이 본 발명의 다른 실시예에서, 블록 X의 모션 백터는 가령 블록 X의 왼편 위에 자리한 매크로블록 E의 모션 벡터만을 이용해 산출된다. 블록 X와 같은 행에 위치한 다른 블록 Y에 대해, 그 모션 벡터는 블록 Y의 왼편 위에 위치하는 매크로블록 B의 모션 벡터만을 사용해 산출된다. 블록 X의 모션 벡터가 블록 Y의 모션 벡터 예측에 사용되지 않으므로, 블록 Y는 블록 X와 무관하게 디코딩될 수 있다. 다른 실시예에서, 블록 X의 모션 벡터는 블록들 E 및 B의 모션 벡터들을 사용해 산출될 수 있고, 반면 블록 Y의 모션 벡터는 블록 B 및 C의 모션 벡터들을 사용해 산출될 수 있다.
따라서, 본 발명의 여러 실시예들에 따르면, 인코딩 비디오 신호를 디코딩 하는 방법은 한 비디오 프레임의 제1블록과 제2블록이 독자적으로 디코딩될 수 있는지 여부를 표시하는 모션 예측 방식 표시자를 인코딩된 비디오 신호 안에서 가져오는 것과 관련된다. 독자적 디코딩이 가능한 경우, 제1블록의 제1모션 벡터 예측자가 제1블록의 적어도 한 주변 블록의 모션 벡터에 기초해 산출되어, 제1모션 벡터 예측자에 기초한 제1블록의 모션 벡터를 재구성하도록 한다. 마찬가지로, 제2블록이 제2모션 벡터 예측자가 제2블록의 적어도 한 주변 블록의 모션 벡터에 기초해 산출되고, 여기서 제2모션 벡터 예측자는 제1블록에 대해 재구성되는 모션 벡터와 무관하다. 그에 따라, 제1 및 제2블록들의 모션 예측 연산은 서로 독자적으로 수행된다.
본 발명에 따른 비디오 신호 인코딩 방법은, 제1블록과 제2블록이 독자적으 로 디코딩될 수 있는 모션 예측 방식을 선택하고, 제1 및 제2블록에 대한 모션 예측 연산을 서로 독자적으로 수행하는 일과 관련이 있다. 따라서, 제1블록의 제1모션 예측자는 제1블록의 적어도 한 주변 블록의 모션 벡터에 기초해 산출되고, 제2블록의 제2모션 벡터 예측자는 제2블록의 적어도 한 주변 블록의 모션 벡터에 기초해 산출되는데, 여기서 제2모션 벡터 예측자는 제1벡터 모션 예측자에 기초해 재구성되는 제1블록에 대한 모션 벡터와 무관하다. 제1 및 제2모션 벡터 예측자들은 인코딩 비디오 신호로 인코딩된다.
도 2a 및 2c로부터 알 수 있다시피, 제1블록 및 제2블록은 같은 행에 위치하고, 이들의 주변 블록들은 다른 행에 위치한다. 도 2b에서 알 수 있듯이 제1블록과 제2블록이 같은 열에 위치할 때, 이들의 주변 블록들은 다른 열에 위치한다.
도 3은 전통적 인코더를 보인 블록도이다. 도 3에 도시된 바와 같이, 인코더(10)는 오리지널 프레임을 나타내는 입력 신호들(28)을 수신하고 인코딩된 비디오 데이터를 나타내는 신호들(34)을 전송 채널 (미도시)로 공급한다. 인코더(10)는 이웃 블록들의 모션 벡터들의 메디언에 기초해 현재의 블록의 예측 모션 벡터를 생성하기 위한 모션 추정 블록(20)을 포함한다. 그 결과에 따른 모션 데이터(40)가 모션 보상 블록(24)으로 보내진다. 모션 보상 블록(24)은 예측 이미지(44)를 형성한다. 결합 모듈(26)에 의해 예측 이미지(44)가 오리지널 프레임에서 제거되면서, 잔차들 (residuals)(30)이 변환 및 양자화 블록(12)으로 주어지며, 변환 및 양자화 블록(12)은 데이터의 크기를 줄이기 위해 변환 및 양자화를 수행하여 양자화된 데이터(32)를 역 양자화 및 역 변환 블록(16)과 엔트로피 코더(14)로 보낸다. 재구성 프레임은 결합기(42)를 통해 역 양자화 및 역 변환 블록(16)과 모션 보상 블록(24)으로부터의 출력을 결합해 형성된다. 재구성 후, 그 재구성 프레임은 프레임 저장부(18)로 보내질 수 있다. 엔트로피 인코더(14)는 잔차 뿐 아니라 모션 데이터(40)까지 인코딩 비디오 데이터(34) 안에 인코딩한다.
도 4는 일반적인 비디오 디코더의 블록도이다. 도 4에서, 디코더(50)는 엔트로피 디코더(52)를 사용해 전송 채널로부터의 비디오 데이터(64)를 양자화 디코딩 데이터(68)로 디코딩한다. 모션 데이터(66) 또한 엔트로피 디코더(52)로부터 역 양자화 및 역 변환 블록(56)으로 보내진다. 역 양자화 및 역 변환 블록(56)은 이제 양자화 데이터를 잔차들(60)로 전환한다. 엔트로피 디코더(52)로부터의 모션 데이터(66)는 모션 보상 블록(54)으로 보내져 예측 이미지(74)를 형성한다. 모션 보상 블록(54)으로부터의 예측 이미지(74) 및 역 양자화 및 역 변환 블록(56)으로부터의 잔차들(70)을 가지고, 결합 모듈(62)은 재구성 비디오 이미지를 나타내는 신호들(78)을 제공한다.
도 5는 본 발명의 일 실시예에 따른 인코더를 도시한 것이다. 도 5에 도시된 바와 같이, 인코더(210)는 오리지널 프레임을 가리키는 입력 신호들(228)을 수신하고, 인코딩 비디오 데이터를 가리키는 신호들(234)을 전송 채널 (미도시)로 공급한다. 인코더(210)는 모션 추정 블록(220)을 포함하여, 현재의 블록의 예측 모션 벡터를 생성한다. 인코더(210)는 서로 다른 모션 벡터 예측 타입들이나 모드들의 입력 신호들을 인코딩할 수 있다. 모드 선택 목적을 위해, 모션 추정 블록(220)은 모션 예측 모드 선택 모듈(222)을 포함하여 코딩을 위한 모드 또는 모션 예측 타입을 선택한다. 예를 들어, 선택 모듈(222)은 현재 블록의 모션 벡터가 현재 블록 바로 위의 블록의 모션 벡터에만 기초하거나 (도 2a), 현재 블록의 바로 왼편에 있는 블록의 모션 벡터에만 기초하는 모션 예측 타입을 선택하도록 구성될 수 있다. 그로써, 두 블록들에 대한 디코딩이 서로 독자적으로 수행될 수 있다. 선택 모듈(222)은 또한 현재 블록의 모션 벡터가 현재 블록의 왼편에 있는 블록 및 현재 블록 바로 위의 블록을 포함하는 이웃 블록들의 모션 벡터들의 메디안이 되는 (예를 들어, 도 1) 모션 예측 타입을 선택할 수도 있다. 소프트웨어 어플리케이션 제품이 모션 추정 블록에 협조적으로 연결되어, 가령 모션 추정 작업을 수행한다. 그에 따른 모션 데이터(240)가 모션 보상 블록(224)으로 보내진다. 모션 보상 블록(224)은 예측 이미지(244)를 형성할 수 있다. 결합 모듈(226)에 의해 예측 이미지(244)가 오리지널 프레임으로부터 제거되므로, 잔차들(230)이 변환 및 양자화 블록(212)으로 보내지고, 변환 및 양자화 블록(212)은 데이터 크기를 줄이기 위해 변환 및 양자화를 수행하고 양자화 데이터(232)를 역 양자화 및 역 변환 블록(216)과 엔트로피 인코더(214)로 보낸다. 재구성 프레임은 결합기(242)를 통해 역 양자화 및 역 변환 블록(216)과 모션 보상 블록(224)으로부터의 출력들을 결합해 형성된다. 재구성 후, 그 재구성 프레임은 프레임 저장부(218)로 보내질 수 있다. 엔트로피 인코더(214)는 잔차 뿐 아니라 모션 데이터(240)까지 인코딩 비디오 데이터(234)로 인코딩한다. 인코딩된 비디오 데이터(234)를 포함하는 비트스트림에서, 선택된 모션 벡터 예측 모드의 표시가 가령 대역밖 (out-of-band) 정보로서 삽입될 수 있다.
도 6은 본 발명의 일 실시예에 따른 디코더를 도시한 것이다. 도 6에서, 디코더(250)는 엔트로피 디코더(252)를 사용해 전송 채널로부터의 비디오 데이터(264)를 양자화 디코딩 데이터(268)로 디코딩한다. 엔트로피 디코더(252)는 소프트웨어 프로그램이나 메커니즘을 포함하여, 이를테면 비디오 데이터(264)를 포함하는 비트스트림으로부터 어떤 모션 벡터 예측 모드가 모션 보상에 사용되는지를 찾을 수 있다. 한 모션 벡터 예측 모드는 두 개의 인접 블록들이 서로 독자적으로 디코딩될 수 있는 모드일 수 있다. 모션 데이터(266) 또한 엔트로피 디코더(252)로부터 역 양자화 및 역 변환 블록(256)으로 보내진다. 역 양자화 및 역 변환 블록(256)은 이제 양자화 데이터를 잔차들(260)로 전환한다. 엔트로피 디코더(252)로부터의 모션 데이터(266)는 모션 보상 블록(254)으로 보내져 예측 이미지(274)를 형성한다. 디코더(250)는 모션 예측 모드 선택 모듈(258)을 포함하여 인코딩된 데이터에서 모션 예측에 사용된 모션 벡터 예측 모드를 선택할 수 있다. 그로써, 모션 보상 블록(254)은 그에 따른 모션을 예측할 수 있다. 모션 보상 블록(254)으로부터의 예측 이미지(274) 및 역 양자화 및 역 변환 블록(256)으로부터의 잔차들(270)을 가지고, 결합 모듈(262)은 재구성 비디오 이미지를 나타내는 신호들(278)을 제공한다.
도 5 및 6에 도시된 바와 같이, 블록들은 엔트로피 인코더에서 인코딩되고 엔트로피 디코더에서 디코딩된다. 블록이 인트라 모드에서 코딩될 때, 그 블록의 픽셀들 각각에 대한 픽셀 예측이 얻어지고 픽셀 예측을 가리키는 표시가 사용된다.
도 7은 본 발명의 일 실시예에 따른 일반적 모바일 장치를 도시한 것이다. 도 7에 도시된 모바일 장치(1)는 셀룰라 데이터 및 보이스 통신 능력을 가진다. 본 발명이, 다수의 상이한 실시예들 중 하나를 나타내는 이러한 특정 실시예에 국한되지 않는다는 것을 알아야 한다. 모바일 장치(1)는 (메인) 마이크로프로세서 또는 마이크로콘트롤러(100) 및 모바일 장치의 동작을 제어하는 마이크로프로세서와 관련된 구성요소들을 포함한다. 그러한 구성요소들에는 디스플레이 모듈(135)에 연결된 디스플레이 콘트롤러(130), 비휘발성 메모리(140), RAM (random access memory) 같은 휘발성 메모리(150), 마이크로폰(161), 스피커(162) 및/또는 헤드셋(163)에 연결된 오디오 입/출력 (I/O) 인터페이스(160), 키패드(175)나 키보드에 연결된 키패드 콘트롤러(170),보조 입/출력 (I/O) 인터페이스(200), 및 단거리 통신 인터페이스(180)가 포함된다. 이러한 장치는 또한 통상적으로, 190에서 일반적으로 보여지는 다른 장치 서브시스템들을 포함한다.
모바일 장치(1)는 보이스 (voice) 네트워크를 통해 통신할 수 있고/있거나 마찬가지로 가령 디지털 셀룰라 네트워크들, 특히 GSM (global system for mobile communication) 또는 UMTS (universal mobile telecommunications system)의 형태의 임의의 공공 지상파 모바일 네트워크들 같은 데이터 네트워크를 통해 통신할 수 있다. 일반적으로 전파공간 인터페이스, 즉 셀룰라 통신 인터페이스 서브시스템을 통해 추가 구성요소들 (상술한 것 참조)과 협력하여 셀룰라 네트워크 인프라 구조의 라디오 액세스 네트워크 (RAN, radio access network)의 일부가 되는 기지국 (BS) 또는 노드 B (미도시)로 보이스 및/또는 데이터 통신이 수행된다.
도 7에 예시적으로 도시된 바와 같이 셀룰라 통신 인터페이스 서브시스템은 셀룰라 인터페이스(110), 디지털 신호 프로세서 (DSP)(120), 수신기 (RX)(121), 전송기 (TX)(122), 및 하나 이상의 로컬 오실레이터들 (LOs)(123)을 포함하며 하나 이상의 공공 지상파 모바일 네트워크들 (PLMNs)과의 통신을 가능하게 한다. 디지털 신호 프로세서 (DSP)(120)는 전송기 (TX)(122)로 통신 신호들(124)을 전송하고 수신기 (RX)(121)로부터 통신 신호들(125)을 수신한다. 통신 신호들을 처리하는 것 외에, 디지털 신호 프로세서(120)는 또한 수신기에 제어 신호들(126)을 제공하고 전송기로 제어 신호(127)를 제공한다. 예를 들어, 전송될 신호들 및 수신된 신호들 각자의 변조 및 복조 외에, 수신기 (RX)(121) 및 전송기 (TX)(122)에서 통신 신호들에 적용되는 이득 레벨들은 디지털 신호 프로세서 (DSP)(120)에서 구현되는 자동 이득 제어 알고리즘들을 통해 적응적으로 제어될 수 있다. 더 정교한 트랜시버(121/122)의 제어를 지원하기 위해 다른 트랜시버 제어 알고리즘들 역시 디지털 신호 프로세서 (DSP)(120)에서 구현될 수 있다.
단일 주파수나 가까운 간격의 주파수들의 집합에서 PLMN을 통한 모바일 장치(1) 통신이 일어나는 경우, 하나의 로컬 오실레이터 (LO)(123)가 전송기 (TX)(122)와 수신기 (RX)(121)와 관련하여 사용될 수 있다. 이와 달리, 보이스/데이터 통신이나 전송 대 수신에 상이한 주파수들이 사용되는 경우, 복수의 로컬 오실레이터들이 사용되어 복수의 상응하는 주파수들을 생성할 수 있다.
도 7에 도시된 모바일 장치(1)는 안테나(129)와 함께, 또는 다이버시티 (diversity) 안테나 시스템 (미도시)과 함께 사용되지만, 모바일 장치(1)가 신호 수신 및 전송을 위한 단일 안테나 구조를 가지고 사용될 수도 있을 것이다. 보이 스 및 데이터 정보 둘 모두를 포함하는 정보가 셀룰라 인터페이스(110)로/로부터 디지털 프로세서 (DSP)(120)와의 사이의 데이터 링크를 통해 통신된다. 주파수 대역, 컴포넌트 선택, 전력 레벨 등등과 같은 셀룰라 인터페이스(110)의 세부 설계는 모바일 장치(1)가 작동하고자 의도한 무선 네트워크에 좌우될 것이다.
셀룰라 네트워크들로의 등록에 요구되는 가입자 식별 모듈 (SIM, subsriber identification module)(210)을 필요로 할 수 있는 어떤 필요한 네트워크 등록이나 활성화 절차들이 완료된 뒤에, 모바일 장치(1)는 무선 네트워크를 통해 보이스 및 데이터 신호들을 모두 포함하는 통신 신호들을 송수신한다. 무선 네트워크로부터 안테나(129)에 의해 수신된 신호들은, 신호 증폭, 주파수 하향 변환, 필터링, 채널 선택, 및 아날로그-디지털 변환과 같은 동작들을 지원하는 수신기(121)로 라우팅된다. 수신된 신호의 아날로그-디지털 변환은 디지털 신호 프로세서 (DSP)(120)를 이용하여 디지털 복조 및 디코딩 같은 보다 복잡한 통신 기능들이 수행될 수 있게 한다. 유사한 방식으로, 네트워크로 전송될 신호들이 디지털 신호 프로세서 (DSP)(120) 등에 의해 변조 및 인코딩을 포함해 처리된 후 디지털-아날로그 변환, 주파수 상향 변환, 필터링, 증폭, 및 안테나(129)를 통한 무선 네트워크로의 전송을 위해 전송기(122)로 보내진다.
장치 플랫폼 마이크로프로세서로서도 지정될 수 있는 마이크로프로세서/마이크로콘트롤러 (μC)(110)가 장치(1)의 기능들을 관리한다. 프로세서(110)에 의해 사용되는 운영 시스템 소프트웨어(149)가 비휘발성 메모리(140) 같은 영구 저장부에 저장됨이 바람직하고, 비휘발성 메모리(140)는 플래시 메모리, 배터리 백업형 램, 임의의 다른 비휘발성 저장 기술, 또는 이들의 어떤 조합 등으로서 구현될 수 있다. 모바일 장치(1)의 하위 레벨 기능들뿐 아니라 (그래픽) 베이직 사용자 인터페이스 기능들을 제어하는 운영 시스템(149)에 더해, 비휘발성 메모리(140)는 보이스 통신 소프트웨어 어플리케이션(142), 데이터 통신 소프트웨어 어플리케이션(141), 오거나이저 (organizer) 모듈 (미도시), 또는 임의의 다른 타입의 소프트웨어 모듈 (미도시)과 같은 복수의 상위 레벨 소프트웨어 어플리케이션 프로그램들 또는 모듈들을 포함한다. 이 모듈들은 프로세서(100)에 의해 실행되며 모바일 장치(1) 사용자와 모바일 장치(1) 사이에 하이 레벨 인터페이스를 제공한다. 이 인터페이스는 보통 디스플레이 콘트롤러(130)에 의해 제어되는 디스플레이(135)를 통해 제공되는 그래픽 컴포넌트 및 키패드 제어기(170)를 통해 프로세서(100)로 연결되는 키패드(175)를 통해 제공되는 입/출력 컴포넌트들, 보조 입/출력 (I/O) 인터페이스(200), 및/또는 단거리 (SR) 통신 인터페이스(180)를 포함한다. 보조 I/O 인터페이스(200)는 특히 USB (universal serial bus) 인터페이스, 시리얼 인터페이스, MMC (multimedia card) 인터페이스 및 관련 인터페이스 기술들/표준들, 및 임의의 다른 규격화되거나 전매 데이터 통신 버스 기술을 포함하고, 반면 단거리 통신 인터페이스 라디오 주파수 (RF) 저전력 인터페이스는 특히 WLAN (wireless local area network) 및 블루투스 통신 기술이나 IRDA (infrared data access) 인터페이스를 포함한다. 여기서 언급하는 RF 저전력 인터페이스 기술은 특히 임의의 IEEE 801.xx 규격 기술을 포함하는 것으로 이해되어야 하며, 그 규격의 내용은 전기 전자 엔지니어 협회 (Institute of Electrical and Electronics Engineers)로부 터 얻을 수 있다. 게다가, 보조 I/O 인터페이스(200)와 단거리 통신 인터페이스(180)는 각각 하나 이상의 입/출력 인터페이스 기술들 및 통신 인터페이스 기술들을 각기 지원하는 하나 이상의 인터페이스들을 나타낼 수 있다. 운영 시스템, 고유 장치 소프트웨어 어플리케이션 또는 모듈들, 또는 이들의 일부가 랜덤 액세스 메모리 (통상적으로 고속 동작을 위한 DRAM (direct random access memory)에 기초해 구현되는) 랜덤 액세스 메모리 같은 휘발성 저장부(150)에 임시로 로드될 수 있다. 또한, 수신된 통신 신호들 역시, 비휘발성 메모리(140)나 데이터 저장을 위해 보조 I/O 인터페이스를 통해 탈부착 가능하게 연결됨이 바람직한 어떤 매스 (mass) 저장부에 위치한 파일 시스템에 영구 기록되기 전에, 휘발성 메모리(150)에 임시 저장될 수 있다. 상술한 구성요소들은 셀룰라 전화의 형태로 여기 실시되는 전통적 모바일 장치(1)의 일반적 구성요소들을 나타낸다는 것을 알아야 한다. 본 발명은 단지 예시 및 완성도를 위해 묘사된 이런 특정 구성요소들 및 이들의 구현방식에만 국한되는 것은 아니다.
모바일 장치(1)의 전형적 소프트웨어 어플리케이션 모듈은 통상적으로 연락처 관리자, 캘린더, 작업 관리자 등등을 포함하는 PDA 기능을 제공하는 개인 정보 관리자 어플리케이션이다. 그러한 개인 정보 관리자는 프로세서(100)에 의해 실행되고, 모바일 장치(1)의 구성요소들에 액세스할 수 있고, 다른 소프트웨어 어플리케이션 모듈들과 상호 동작할 수 있다. 예를 들어, 보이스 통신 소프트웨어 어플리케이션과의 상호 동작은 전화 통화, 보이스 메일 등등을 관리할 수 있게 하고, 데이터 통신 소프트웨어 어플리케이션과의 상호동작은 SMS (soft message service), MMS (multimedia service), 이메일 통신 및 기타 데이터 전송을 관리할 수 있게 한다. 비휘발성 메모리(140)는 특히 캘린더 엔트리들, 연락처들 등등을 포함하는 장치 상의 데이터 항목들의 영구 저장을 도모하기 위해 파일 시스템을 제공함이 바람직하다. 가령 셀룰라 인터페이스, 단거리 통신 인터페이스, 또는 보조 I/O 인터페이스를 통한 네트워크와의 데이터 통신 기능이 그러한 네트워크들을 통한 업로드, 다운로드, 및 동기화를 가능하게 한다.
어플리케이션 모듈들(141-149)은 프로세서(100)에 의해 실행되도록 설정된 장치 기능들 또는 소프트웨어 어플리케이션들을 나타낸다. 대부분의 알려진 모바일 장치들에서, 하나의 프로세서가 모바일 장치의 전반적 동작뿐 아니라 모든 장치 기능들 및 소프트웨어 어플리케이션들을 관리 및 제어한다. 그러한 개념은 오늘날의 모바일 장치들에 대해 적용될 수 있다. 강화된 멀티미디어 기능들의 구현에는, 가령 비디오 스트리밍 어플리케이션들의 재생, 디지털 이미지들의 처리, 및 일체화되거나 탈부착가능하게 연결된 디지털 카메라 기능에 의한 비디오 시퀀스들의 캡처가 포함된다. 그 구현에는 또한 정교한 그래픽 및 필요한 계산 능력을 가진 게임 어플리케이션들을 포함할 수도 있다. 강력하고 유니버설한 프로세서 코어들을 구현함으로써 계산 능력을 늘리기 위해 과거에 추구되었던 계산 능력 요건을 다루기 위한 한 방식이 문제를 해소한다. 계산 능력을 지원하기 위한 또 다른 접근방식은 이 분야에서 잘 알려진 기법인 둘 이상의 독립적 프로세서 코어들을 구현하는 것이다. 여러 독립적 프로세서 코어들의 이점은 이 분야의 업자들이라면 바로 예상할 수 있을 것이다. 범용 프로세서가 서로 다른 작업들의 사전 선택에 대한 특수화 없이 다수의 각종 작업들을 수행하도록 설계되는 데 반해, 멀티프로세서 구성은 소정 작업들의 세트를 처리하도록 된 하나 이상의 범용 프로세서들 및 하나 이상의 특수 프로세서들을 포함할 수 있다. 그럼에도 불구하고, 한 장치 내 여러 프로세서들의 구성, 특히 모바일 장치(1) 같은 모바일 장치는 전통적으로 완벽 정교한 컴포넌트들의 재설계를 필요로 한다.
이하에서, 본 발명은 값비싼 완벽 정교한 재설계의 생략을 가능하게 하면서 기존 프로세싱 장치 구성 안에 추가 프로세스 코어들의 단순한 집적을 허용하게 하는 개념을 제공할 것이다. 본 발명의 개념은 SoC (system-on-a-chip, 시스템 온 칩) 설계와 관련하여 설명될 것이다. 시스템 온 칩 (SoC)은 프로세싱 장치의 적어도 수많은 (또는 모든) 컴포넌트들을 하나의 고집적 칩 안에 집적한다는 개념이다. 그러한 시스템 온 칩은 디지털, 아날로그, 혼합 신호, 및 종종 라디오 주파수 기능들을 모두 한 칩 안에 포함할 수 있다. 통상의 프로세싱 장치는 각종 작업들을 수행하는 여러 집적 회로들을 포함한다. 이러한 집적 회로들은 특히 마이크로프로세서, 메모리, 범용 비동기 수신기-전송기들 (UARTs-universal asynchronous receiver-transmitters), 직렬/병렬 포트들, DMA (direct memory access) 콘트롤러들 등등을 포함할 수 있다. 범용 비동기 수신기-전송기 (UART)는 데이터의 병렬 비트들과 직렬 비트들 사이를 전환시킨다. 최근의 반도체 기술의 향상은 VLSI (very-large-scale integration) 집적 회로들로 하여금 복잡도의 큰 증가를 가능하게 하며, 시스템의 수많은 컴포넌트들을 하나의 칩 안에 집적시킬 수 있게 한다. 도 7을 참조할 때, 하나 이상의 컴포넌트들, 가령 콘트롤러들(130 및 170), 메모리 컴포넌트들(150 및 140), 하나 이상의 인터페이스들(200, 180 및 110)이 단일 칩 안에서 프로세서(100)와 함께 집적될 수 있고, 이것이 최종적으로 시스템 온 칩 (SoC)을 형성한다.
또, 장치(1)는 본 발명의 발명 동작에 따라 비디오 데이터의 인코딩 모듈(105) 및 디코딩 모듈(106)을 갖춘다. CPU(100)를 이용해 상기 모듈들(105, 106)은 개별적으로 사용될 수 있다. 그러나, 장치(1)는 각기 비디오 데이터 인코딩 또는 디코딩을 수행하도록 되어 있다. 상기 비디오 데이터는 장치의 통신 모듈들을 사용해 수신되거나 장치(1) 안의 어떤 상상 가능한 저장 수단 안에 저장될 수도 있다.
장치(1)에서, 소프트웨어 어플리케이션들은 본 발명의 다양한 실시예들에 따라 인코딩 및/또는 디코딩 방식을 수행할 컴퓨터 코드들을 포함하도록 구성될 수 있다.
종합하면, 본 발명은 비디오 코딩 방법 및 장치를 제공하며, 여기서 비디오 프레임 내 한 블록의 모션 벡터는 주변 블록들의 모션 벡터들에 기초해 코딩된다. 디코딩 방법 및 장치는 아래의 단계들을 위한 수단들, 모듈들, 프로세서들 또는 소프트웨어 제품 안에 포함된다:
제1블록 및 제2블록이 독자적으로 디코딩될 수 있는지 여부를 표시하는 모션 예측 방식 표시자를 인코딩된 비디오 신호 안에서 검색하는 단계;
제1블록 및 제2블록이 독자적으로 디코딩될 수 있다고 판단되면,
제1블록의 적어도 한 주변 블록의 모션 벡터에 기초해 제1블록의 제1모션 벡터 예측자를 산출하는 단계;
제1모션 벡터 예측자에 기초해 제1블록의 모션 벡터를 재구성하는 단계;
제2블록의 적어도 한 주변 블록의 모션 벡터에 기초해 제1블록을 위해 재구성된 모션 벡터와 별개인 제2블록의 제2모션 벡터 예측자를 산출하는 단계; 및
제1블록 및 제2블록에 대한 모션 예측 연산을 독자적으로 수행하는 단계.
인코딩 방법 및 장치는 아래의 단계들을 위한 수단들, 모듈들, 프로세서들 또는 소프트웨어 제품 안에 포함된다:
제1블록 및 제2블록이 독자적으로 디코딩될 수 있는 모션 예측 방식을 선택하는 단계;
제1블록 및 제2블록에 대한 모션 예측 연산을 독자적으로 수행하는 단계;
제1블록의 적어도 한 주변 블록의 모션 벡터에 기초해 제1블록의 제1모션 벡터 예측자를 산출하는 단계;
제2블록의 적어도 한 주변 블록의 모션 벡터에 기초해 제1모션 벡터 예측자에 기초하는 제1블록에 대해 재구성된 모션 벡터와 무관한 제2블록의 제2모션 벡터 예측자를 산출하는 단계; 및
제1모션 벡터 예측자 및 제2모션 벡터 예측자를 인코딩하는 단계.
또한, 선택 방식을 표시하는 표시가 제공된다.
상기 방법들 및 장치들에서, 제1블록의 적어도 한 주변 블록은 제1블록이 자리한 행과 다른 행에 자리하고, 제1블록 및 제2블록은 같은 행에 자리한다. 이와 달리, 제1블록의 적어도 한 주변 블록은 제1블록이 자리한 열과 다른 열에 자리하고, 제1블록과 제2블록은 같은 열에 자리한다.
제1블록 또는 제2블록이 인트라 모드로 코딩될 때, 한 표시자가, 제1블록 및 제2블록 안의 픽셀들 각각에 대한 픽셀 예측을 가리키는데 사용된다.
본 발명은 또한 상술한 것 같은 비디오 코덱을 포함하는 모바일 전화 등의 전자 장치를 또한 제공한다.
따라서, 본 발명이 하나 이상의 실시예들을 기준으로 기술되었지만, 이 분야의 업자들이라면 본 발명의 범위에서 벗어나지 않고 형식과 그 세부 사항에 있어 상술하거나 다른 다양한 변경과 생략과 일탈이 이뤄질 수 있다는 것을 알 수 있을 것이다.

Claims (20)

  1. 인코딩된 비디오 신호를 디코딩하는 방법에 있어서,
    제1블록 및 제2블록이 독자적으로 디코딩될 수 있는지 여부를 표시하는 모션 예측 방식 표시자를 상기 인코딩된 비디오 신호 안에서 검색하는 단계;
    상기 제1블록 및 제2블록이 독자적으로 디코딩될 수 있다고 판단되면, 상기 방법은,
    상기 제1블록의 적어도 한 주변 블록의 모션 벡터에 기초해 제1블록의 제1모션 벡터 예측자를 산출하는 단계;
    상기 제1모션 벡터 예측자에 기초해 상기 제1블록의 모션 벡터를 재구성하는 단계;
    상기 제2블록의 적어도 한 주변 블록의 모션 벡터에 기초해 상기 제1블록을 위해 재구성된 모션 벡터와 별개인 제2블록의 제2모션 벡터 예측자를 산출하는 단계; 및
    상기 제1블록 및 제2블록에 대한 모션 예측 연산을 독자적으로 수행하는 단계를 더 포함함을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 제1블록의 상기 적어도 한 주변 블록은 상기 제1블록이 자리한 행과는 다른 행에 자리하고, 상기 제1블록 및 제2블록은 같은 행에 자리함을 특징으로 하는 방법.
  3. 제1항에 있어서, 상기 제1블록의 상기 적어도 한 주변 블록은 상기 제1블록이 자리한 열과는 다른 열에 자리하고, 상기 제1블록과 제2블록은 같은 열에 자리함을 특징으로 하는 방법.
  4. 비디오 신호를 인코딩하는 방법에 있어서,
    제1블록 및 제2블록이 독자적으로 디코딩될 수 있는 모션 예측 방식을 선택하는 단계;
    상기 제1블록 및 제2블록에 대한 모션 예측 연산을 독자적으로 수행하는 단계;
    상기 제1블록의 적어도 한 주변 블록의 모션 벡터에 기초해 상기 제1블록의 제1모션 벡터 예측자를 산출하는 단계;
    상기 제2블록의 적어도 한 주변 블록의 모션 벡터에 기초해, 상기 제1모션 벡터 예측자에 기초하여 상기 제1블록에 대해 재구성되는 모션 벡터와 무관한 상기 제2블록의 제2모션 벡터 예측자를 산출하는 단계; 및
    상기 제1모션 벡터 예측자 및 제2모션 벡터 예측자를 인코딩하는 단계를 포함함을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 제1블록의 상기 적어도 한 주변 블록은 상기 제1블록이 자리한 행과는 다른 행에 자리하고, 상기 제1블록 및 제2블록은 같은 행에 자리함을 특징으로 하는 방법.
  6. 제4항에 있어서, 상기 제1블록의 상기 적어도 한 주변 블록은 상기 제1블록이 자리한 열과는 다른 열에 자리하고, 상기 제1블록과 제2블록은 같은 열에 자리함을 특징으로 하는 방법.
  7. 제4항에 있어서,
    상기 선택을 가리킬 표시를 제공하는 단계를 더 포함함을 특징으로 하는 방법.
  8. 제7항에 있어서, 상기 표시는 상기 제1블록의 엔트로피 코딩이 상기 제2블록의 엔트로피 코딩과 무관함을 가리킴을 특징으로 하는 방법.
  9. 제7항에 있어서, 상기 표시는 또한, 상기 제1블록 및 제2블록 중 하나가 인트라 모드로 코딩될 때, 제1블록 및 제2블록 안의 복수의 픽셀들 각각에 대한 픽셀 예측을 가리킴을 특징으로 하는 방법.
  10. 제1항의 방법을 수행하는 컴퓨터 코드들을 포함하는 컴퓨터 프로그램이 수록된 컴퓨터 판독가능 저장 매체.
  11. 제4항의 방법을 수행하는 컴퓨터 코드들을 포함하는 컴퓨터 프로그램이 수록 된 컴퓨터 판독가능 저장 매체.
  12. 장치에 있어서,
    프로세서; 및
    상기 프로세서와 통신가능하게 연결되는 메모리 유닛을 포함하고,
    상기 메모리 유닛은,
    제1블록 및 제2블록이 독자적으로 디코딩될 수 있는지 여부를 표시하는 모션 예측 방식 표시자를 인코딩된 비디오 신호 안에서 검색하기 위한 컴퓨터 코드; 및
    상기 제1블록의 적어도 한 주변 블록의 모션 벡터에 기초해 제1블록의 제1모션 벡터 예측자를 산출하고; 상기 제1모션 벡터 예측자에 기초해 상기 제1블록의 모션 벡터를 재구성하고; 상기 제2블록의 적어도 한 주변 블록의 모션 벡터에 기초해, 상기 제1블록을 위해 재구성된 모션 벡터와 별개인 제2블록의 제2모션 벡터 예측자를 산출하고; 상기 제1블록 및 제2블록이 독자적으로 디코딩될 수 있다고 판단된 경우, 상기 제1블록 및 제2블록에 대한 모션 예측 연산을 독자적으로 수행하도록 하는 컴퓨터 코드를 포함함을 특징으로 하는 장치.
  13. 제12항에 있어서, 상기 제1블록의 상기 적어도 한 주변 블록은 상기 제1블록이 자리한 행과는 다른 행에 자리하고, 상기 제1블록 및 제2블록은 같은 행에 자리함을 특징으로 하는 장치.
  14. 제12항에 있어서, 상기 제1블록의 상기 적어도 한 주변 블록은 상기 제1블록이 자리한 열과는 다른 열에 자리하고, 상기 제1블록과 제2블록은 같은 열에 자리함을 특징으로 하는 장치.
  15. 장치에 있어서,
    프로세서; 및
    프로세서와 통신가능하게 연결된 메모리 유닛을 포함하고,
    상기 메모리 유닛은,
    제1블록 및 제2블록이 독자적으로 디코딩될 수 있는 모션 예측 방식을 선택하기 위한 컴퓨터 코드;
    상기 제1블록 및 제2블록에 대한 모션 예측 연산을 독자적으로 수행하기 위한 컴퓨터 코드;
    상기 제1블록의 적어도 한 주변 블록의 모션 벡터에 기초해 상기 제1블록의 제1모션 벡터 예측자를 산출하기 위한 컴퓨터 코드;
    상기 제2블록의 적어도 한 주변 블록의 모션 벡터에 기초해, 상기 제1모션 벡터 예측자에 기초하는 상기 제1블록에 대해 재구성되는 모션 벡터와 무관한 상기 제2블록의 제2모션 벡터 예측자를 산출하기 위한 컴퓨터 코드; 및
    상기 제1모션 벡터 예측자 및 제2모션 벡터 예측자를 인코딩하기 위한 컴퓨터 코드를 포함함을 특징으로 하는 장치.
  16. 제15항에 있어서, 상기 제1블록의 상기 적어도 한 주변 블록은 상기 제1블록이 자리한 행과는 다른 행에 자리하고, 상기 제1블록 및 제2블록은 같은 행에 자리함을 특징으로 하는 장치.
  17. 제15항에 있어서, 상기 제1블록의 상기 적어도 한 주변 블록은 상기 제1블록이 자리한 열과는 다른 열에 자리하고, 상기 제1블록과 제2블록은 같은 열에 자리함을 특징으로 하는 장치.
  18. 제15항에 있어서, 상기 메모리 유닛은, 상기 선택을 가리킬 표시를 제공하기 위한 컴퓨터 코드를 더 포함함을 특징으로 하는 장치.
  19. 제1항의 방법을 수행하도록 구성된 디코딩 모듈을 포함함을 특징으로 하는 모바일 단말.
  20. 제4항의 방법을 수행하도록 구성된 인코딩 모듈을 포함함을 특징으로 하는 모바일 단말.
KR1020097022412A 2007-03-27 2008-03-25 모션 벡터 예측을 위한 방법 및 시스템 KR20090133126A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/728,952 US20080240242A1 (en) 2007-03-27 2007-03-27 Method and system for motion vector predictions
US11/728,952 2007-03-27

Publications (1)

Publication Number Publication Date
KR20090133126A true KR20090133126A (ko) 2009-12-31

Family

ID=39660521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097022412A KR20090133126A (ko) 2007-03-27 2008-03-25 모션 벡터 예측을 위한 방법 및 시스템

Country Status (7)

Country Link
US (1) US20080240242A1 (ko)
EP (1) EP2127389A1 (ko)
KR (1) KR20090133126A (ko)
CN (1) CN101647285A (ko)
AU (1) AU2008231532A1 (ko)
CA (1) CA2680513A1 (ko)
WO (1) WO2008117158A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200020917A (ko) * 2017-06-30 2020-02-26 후아웨이 테크놀러지 컴퍼니 리미티드 디코더 측 움직임 벡터 도출을 위한 오류 내성 및 병렬 처리

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6765964B1 (en) 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
KR100939917B1 (ko) 2008-03-07 2010-02-03 에스케이 텔레콤주식회사 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법
WO2009115901A2 (en) 2008-03-19 2009-09-24 Nokia Corporation Combined motion vector and reference index prediction for video coding
KR101517768B1 (ko) * 2008-07-02 2015-05-06 삼성전자주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
WO2010017166A2 (en) 2008-08-04 2010-02-11 Dolby Laboratories Licensing Corporation Overlapped block disparity estimation and compensation architecture
TW201021531A (en) * 2008-11-20 2010-06-01 Wistron Corp Method and related apparatus for managing short messages in a mobile communication system
PT3567852T (pt) * 2009-03-23 2023-01-11 Ntt Docomo Inc Dispositivo de descodificação de previsão de imagem e método de descodificação de previsão de imagem
US9106910B2 (en) 2009-06-23 2015-08-11 Orange Method of coding and decoding images, corresponding device for coding and decoding and computer program
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US8462852B2 (en) * 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
US8917769B2 (en) 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
KR101452859B1 (ko) 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
KR101441905B1 (ko) * 2009-11-18 2014-09-24 에스케이텔레콤 주식회사 후보 예측 움직임 벡터 집합 선택을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
WO2011110039A1 (en) * 2010-03-12 2011-09-15 Mediatek Singapore Pte. Ltd. Motion prediction methods
US9510009B2 (en) 2010-05-20 2016-11-29 Thomson Licensing Methods and apparatus for adaptive motion vector candidate ordering for video encoding and decoding
US8855205B2 (en) 2010-05-26 2014-10-07 Newratek Inc. Method of predicting motion vectors in video codec in which multiple references are allowed, and motion vector encoding/decoding apparatus using the same
MY191461A (en) 2010-06-10 2022-06-28 Thomson Licensing Methods and apparatus for determining quantization parameter predictors from a plurality of neighboring quantization parameters
RU2619202C1 (ru) 2010-07-20 2017-05-12 Нтт Докомо, Инк. Устройство кодирования изображений с предсказанием, способ кодирования изображений с предсказанием, программа кодирования изображений с предсказанием, устройство декодирования изображений с предсказанием, способ декодирования изображений с предсказанием и программа декодирования изображений с предсказанием
US20120294370A1 (en) * 2010-10-06 2012-11-22 Yi-Jen Chiu System and method for low complexity motion vector derivation
EP2656610A4 (en) * 2010-12-21 2015-05-20 Intel Corp SYSTEM AND METHOD FOR EXTENDED DMVD PROCESSING
CN103299630B (zh) * 2011-01-19 2016-10-19 寰发股份有限公司 获取运动矢量预测子的方法和装置
FR2972588A1 (fr) 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
GB2488798B (en) * 2011-03-08 2015-02-11 Canon Kk Video encoding and decoding with improved error resillience
US9532058B2 (en) 2011-06-03 2016-12-27 Qualcomm Incorporated Intra prediction mode coding with directional partitions
WO2013006386A1 (en) 2011-07-01 2013-01-10 General Instrument Corporation Motion vector prediction design simplification
US9300975B2 (en) * 2011-09-11 2016-03-29 Texas Instruments Incorporated Concurrent access shared buffer in a video encoder
WO2013067440A1 (en) 2011-11-04 2013-05-10 General Instrument Corporation Motion vector scaling for non-uniform motion vector grid
KR20130050406A (ko) 2011-11-07 2013-05-16 오수미 머지 모드에서의 움직임 정보 생성 방법
US9154787B2 (en) 2012-01-19 2015-10-06 Qualcomm Incorporated Sub-block level parallel video coding
US20130208795A1 (en) * 2012-02-09 2013-08-15 Google Inc. Encoding motion vectors for video compression
US8908767B1 (en) 2012-02-09 2014-12-09 Google Inc. Temporal motion vector prediction
US9503720B2 (en) * 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
US10200709B2 (en) 2012-03-16 2019-02-05 Qualcomm Incorporated High-level syntax extensions for high efficiency video coding
US9172970B1 (en) 2012-05-29 2015-10-27 Google Inc. Inter frame candidate selection for a video encoder
US11317101B2 (en) 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
US9503746B2 (en) 2012-10-08 2016-11-22 Google Inc. Determine reference motion vectors
US9485515B2 (en) 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
US9313493B1 (en) 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US10621731B1 (en) * 2016-05-31 2020-04-14 NGCodec Inc. Apparatus and method for efficient motion estimation for different block sizes
EP3301930A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for encoding and decoding an omnidirectional video

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE148607T1 (de) * 1991-09-30 1997-02-15 Philips Electronics Nv Bewegungsvektorschätzung, bewegungsbildkodierung- und -speicherung
JP2798120B2 (ja) * 1995-08-04 1998-09-17 日本電気株式会社 動き補償フレーム間予測方法及び動き補償フレーム間予測装置
US6735249B1 (en) * 1999-08-11 2004-05-11 Nokia Corporation Apparatus, and associated method, for forming a compressed motion vector field utilizing predictive motion coding
US8005145B2 (en) * 2000-08-11 2011-08-23 Nokia Corporation Method and apparatus for transferring video frame in telecommunication system
US7154952B2 (en) * 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US20040141555A1 (en) * 2003-01-16 2004-07-22 Rault Patrick M. Method of motion vector prediction and system thereof
KR20050098292A (ko) * 2003-02-04 2005-10-11 코닌클리케 필립스 일렉트로닉스 엔.브이. 코딩된 잔류 모션 벡터 데이터의 존재를 통지하는 플래그를포함한 모션 벡터들의 예측 인코딩
US7317839B2 (en) * 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7623574B2 (en) * 2003-09-07 2009-11-24 Microsoft Corporation Selecting between dominant and non-dominant motion vector predictor polarities
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7616692B2 (en) * 2003-09-07 2009-11-10 Microsoft Corporation Hybrid motion vector prediction for interlaced forward-predicted fields
US7400681B2 (en) * 2003-11-28 2008-07-15 Scientific-Atlanta, Inc. Low-complexity motion vector prediction for video codec with two lists of reference pictures
US8005308B2 (en) * 2005-09-16 2011-08-23 Sony Corporation Adaptive motion estimation for temporal prediction filter over irregular motion vector samples

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200020917A (ko) * 2017-06-30 2020-02-26 후아웨이 테크놀러지 컴퍼니 리미티드 디코더 측 움직임 벡터 도출을 위한 오류 내성 및 병렬 처리

Also Published As

Publication number Publication date
CN101647285A (zh) 2010-02-10
US20080240242A1 (en) 2008-10-02
WO2008117158A1 (en) 2008-10-02
CA2680513A1 (en) 2008-10-02
AU2008231532A1 (en) 2008-10-02
EP2127389A1 (en) 2009-12-02

Similar Documents

Publication Publication Date Title
KR20090133126A (ko) 모션 벡터 예측을 위한 방법 및 시스템
KR100931870B1 (ko) 비디오 데이터를 효과적으로 코딩 및 디코딩하는 방법,장치 및 시스템
AU2022275508A1 (en) Method for video coding and an apparatus
US20070110159A1 (en) Method and apparatus for sub-pixel interpolation for updating operation in video coding
US20070053441A1 (en) Method and apparatus for update step in video coding using motion compensated temporal filtering
KR20080085199A (ko) 움직임 보상이 있는 낮은 복잡도 미세 입도 규모가변성비디오 부호화를 위한 시스템 및 장치
US20070030894A1 (en) Method, device, and module for improved encoding mode control in video encoding
KR20080006607A (ko) 편차 제어를 통한 움직임 보상된 미세 입도 규모 가변성비디오 부호화를 위한 방법 및 시스템
KR20130000334A (ko) 스케일러블 비디오 코딩 및 디코딩 방법과 이를 이용한 장치
US20070009050A1 (en) Method and apparatus for update step in video coding based on motion compensated temporal filtering
US20060256863A1 (en) Method, device and system for enhanced and effective fine granularity scalability (FGS) coding and decoding of video data
KR100931871B1 (ko) 비디오 데이터의 효과적인 fgs 부호화 및 복호화를 위한방법, 장치, 시스템
WO2012173440A2 (ko) 스케일러블 비디오 코딩 및 디코딩 방법과 이를 이용한 장치
KR20080089632A (ko) 미세 입자 스케일러빌러티 비디오 코딩에서 엔트로피 코딩방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application