KR20090085667A - 비디오 인코딩에 있어서 레퍼런스 프레임 탐색을 감소시키는 장치 및 방법 - Google Patents

비디오 인코딩에 있어서 레퍼런스 프레임 탐색을 감소시키는 장치 및 방법 Download PDF

Info

Publication number
KR20090085667A
KR20090085667A KR1020097011363A KR20097011363A KR20090085667A KR 20090085667 A KR20090085667 A KR 20090085667A KR 1020097011363 A KR1020097011363 A KR 1020097011363A KR 20097011363 A KR20097011363 A KR 20097011363A KR 20090085667 A KR20090085667 A KR 20090085667A
Authority
KR
South Korea
Prior art keywords
frame
subportions
reference frame
frames
reference frames
Prior art date
Application number
KR1020097011363A
Other languages
English (en)
Other versions
KR101184245B1 (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 KR20090085667A publication Critical patent/KR20090085667A/ko
Application granted granted Critical
Publication of KR101184245B1 publication Critical patent/KR101184245B1/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명의 양태들은 멀티미티어 전송 시스템에서 인코더의 처리를 개선하는 방법과 시스템을 포함한다. 멀티미디어 데이터는 모션 비디오, 오디오, 정지 이미지 또는 임의의 다른 적합한 종류의 오디오-비주얼 데이터 중 하나 이상을 포함할 수도 있다. 본 발명의 양태들은 비디오 데이터를 인코딩하는 방법 및 장치를 포함한다. 예를 들어, 비디오 인코딩에 있어서 레퍼런스 프레임 탐색을 감소시키는 방법 및 장치가 개시되어 있다.
Figure P1020097011363
멀티미디어 데이터, 비디오 데이터, 인코딩, 인코더, 레퍼런스 프레임, 탐색, 감소, 모션 보상, 모션 예측, 비용 함수

Description

비디오 인코딩에 있어서 레퍼런스 프레임 탐색을 감소시키는 장치 및 방법{APPARATUS AND METHOD OF REDUCED REFERENCE FRAME SEARCH IN VIDEO ENCODING}
배경
분야
본 출원은 멀티미디어 신호 처리에 대한 것으로, 더욱 상세하게는, 비디오 인코딩에 관한 것이다.
배경
비디오 인코더와 같은 멀티미디어 처리 시스템은 MPEG-x 와 H.26x 표준과 같은 국제 표준에 기초한 인코딩 방법을 사용하여 멀티미디어 데이터를 인코딩할 수도 있다. 일반적으로 그러한 인코딩 방법은 전송 및/또는 저장을 위한 멀티미디어 데이터 압축에 대한 것이다. 압축은 대체로 데이터로부터 중복성 (redundancy) 을 제거하는 프로세스를 말한다.
비디오 신호는 프레임 (전체 픽쳐 (picture)) 또는 필드 (예를 들어, 인터레이스 비디오 스트림은 픽쳐의 교차하는 홀수 또는 짝수 줄의 필드를 포함함) 를 포함하는 픽쳐들의 시퀀스에 의해서 설명될 수도 있다. 본 출원에서 사용되는 것과 같이, "프레임" 이라는 용어는 대체로 픽쳐, 프레임 또는 필드를 지칭하는 것으로 사용된다. 비디오 인코더와 같은 멀티미디어 프로세서는 프레임을, 블록들, 또는, 예를 들어, 16×16 픽셀 크기의 "매크로블록" 으로 나누어서 인코딩할 수도 있다. 또한, 인코더는 각각의 매크로블록을 서브블록들로 나눌 수도 있다. 또한, 각각의 서브블록은 추가적인 서브블록들을 포함할 수도 있다. 예를 들어, 매크로블록의 서브블록은 16×8 과 8×16 서브블록을 포함할 수도 있다. 8×16 서브블록의 서브블록은 8×8 서브블록 등을 포함할 수도 있다. 본 출원에서 사용되는 것과 같이, "블록" 이라는 용어는 매크로블록이나 서브블록 중 어느 하나를 지칭한다.
비디오 인코딩 방법은 각각의 프레임 또는 프레임의 블록을 압축하는 무손실 또는 손실 압축 알고리즘을 사용하여 비디오 신호를 압축한다. 인트라-프레임 (intra-frame) 코딩은 그러한 프레임으로부터의 데이터를 사용하여 프레임을 인코딩하는 것을 지칭한다. 인터-프레임 (inter-frame) 코딩은 다른 프레임, 즉 "레퍼런스" 프레임에 기초하여 프레임을 인코딩하는 것을 포함하는 방식과 같은 예측 (predictive) 인코딩 방식을 지칭한다. 예를 들어, 비디오 신호는, 프레임의 시간적인 시퀀스에서 서로 인접하는 프레임들이 적어도, 서로 일치하거나 적어도 부분적으로 일치하는 시간 중복성을 종종 나타낸다. 인코더는 인코딩되는 데이터의 크기를 줄이기 위해 이러한 시간 중복성을 이용할 수 있다.
인코더는 프레임과 하나 이상의 레퍼런스 프레임 사이의 차이에 의하여 프레임을 인코딩함으로써 이러한 시간 중복성을 이용할 수도 있다. 예를 들어, 비디오 인코더는 인코딩되는 프레임의 블록을 하나 이상의 다른 프레임의 포션 (portion) 에 정합시키는 모션 보상 (motion compensation) 기반 알고리즘을 사용할 수도 있다. 인코딩된 프레임의 블록은 레퍼런스 프레임의 정합하는 포션에 대하여 프레임 내부에서 시프트 (shift) 될 수도 있다. 이러한 시프트는 모션 벡터에 의해서 특징지어진다. 레퍼런스 프레임의 부분적으로 정합하는 포션과 블록 사이의 차이는 어떠한 것이라도 레지듀얼 (residual) 에 의해서 특징지어질 수도 있다. 따라서, 인코더는 프레임을 프레임의 특정 분할에 대한 모션 벡터와 레지듀얼 중 하나 이상을 포함하는 데이터로 인코딩할 수도 있다. 프레임 인코딩을 위한 블록의 특정 분할은 비용 함수를 대략적으로 최소화하는 방법에 의해서 선택될 수도 있는데, 이러한 비용 함수는, 예를 들어, 인코딩의 결과로 발생하는 프레임 내용에 대해 왜곡과 인코딩 크기를 밸런싱한다.
레퍼런스 프레임은 비디오 신호의 하나 이상의 이전 (prior) 프레임 또는 비디오 신호에서 프레임 뒤에 오는 하나 이상의 프레임을 포함할 수도 있다. 예를 들어, H.264 표준은 최선의 정합 블록을 탐색하는데 5 개의 레퍼런스 프레임을 사용한다고 상술하고 있다. 일반적으로, 더 많은 레퍼런스 프레임을 탐색하기 위해서는, 레퍼런스 프레임들 중에서 인코딩되는 프레임의 블록과 꼭 정합하는 레퍼런스 프레임의 포션을 찾는 인코더의 능력이 향상되어야 한다. 정합이 향상되면 인코딩해야하는 차이가 작아지므로, 일반적으로, 인코딩이 더 컴팩트해진다. 하지만, 블록에 대해 정합하는 레퍼런스 프레임의 포션을 찾기 위해서는, 인코더가 각각의 레퍼런스 프레임을 인코딩되는 프레임의 각각의 블록 (예를 들어, 매크로블록, 서브블록) 에 대해 탐색해야만 한다. 정합하는 포션이 시프트될 수도 있으므로, 인코더는 일반적으로 각각의 레퍼런스 프레임에 대해 많은 수의 비교를 수행한다. 결국, 프레임 인코딩은, 특히 다수의 레퍼런스 프레임과 관련하 여, 인코더의 구동 크기 (driving size), 비용 및 전력 소비에 관한 계산 과정이 매우 복잡할 수 있다. 따라서, 비디오 인코더에 있어서 레퍼런스 프레임의 탐색의 복잡도를 줄여야 할 필요성이 존재한다.
요약
본 출원에 기재된 시스템, 방법 및 디바이스의 예시들은 각각 여러 가지 양태들을 가지고 있으며, 이들 중 어느 하나도 바람직한 특징에 대해 전적으로 책임이 있지는 않다. 이하의 청구항에 표현된 것과 같이 본 발명의 범위를 한정함 없이, 앞으로 보다 탁월한 특징들을 간략하게 논의할 것이다. 이러한 논의를 검토한 후에, 특히 "상세한 설명" 으로 명칭된 부분을 읽고 난 후에, 개시된 특징들이 보다 효율적이고, 보다 낮은 전력을 사용하며, 보다 고속의 인코더를 포함하는 이점을 어떻게 제공하는지에 대해 이해할 수 있을 것이다.
하나의 양태는 멀티미디어 데이터를 처리하는 방법을 포함한다. 이 방법은 복수의 레퍼런스 프레임에 대해 프레임의 포션을 비교하는 것을 포함한다. 프레임의 포션은 복수의 서브포션 (sub-portion) 들을 포함한다. 또한, 이 방법은 비교에 기초하여 복수의 레퍼런스 프레임들로부터 하나의 레퍼런스 프레임을 선택하는 것을 포함한다. 또한, 이 방법은 선택된 레퍼런스 프레임에 기초하여 서브포션들 중 적어도 하나의 서브포션을 처리하는 것을 포함한다.
다른 양태는 멀티미디어 데이터를 처리하는 장치를 포함한다. 이 장치는 프레임의 포션을 복수의 레퍼런스 프레임들에 대해 비교하는 수단을 포함한다. 프레임의 포션은 복수의 서브포션들을 포함한다. 또한, 이 장치는 비교에 기초하여 복수의 레퍼런스 프레임들로부터 하나의 레퍼런스 프레임을 선택하는 수단을 포함한다. 또한, 이 장치는 선택된 레퍼런스 프레임에 기초하여 서브포션들 중 적어도 하나의 서브포션을 처리하는 수단을 포함한다.
또 다른 양태는 멀티미디어 데이터를 처리하는 장치를 포함한다. 이 장치는 프레임의 포션을 복수의 레퍼런스 프레임들에 대해 비교하도록 구성된 비교기 (comparator) 를 포함한다. 이 프레임의 포션은 복수의 서브포션들을 포함한다. 또한, 이 장치는 비교에 기초하여 복수의 레퍼런스 프레임들로부터 하나의 레퍼런스 프레임을 선택하도록 구성된 선택기 (selector) 를 포함한다. 또한, 이 장치는 선택된 레퍼런스 프레임에 기초하여 서브포션들 중 적어도 하나의 서브포션을 비교하도록 구성된 프로세서를 포함한다.
하나의 양태는 프레임의 포션을 복수의 레퍼런스 프레임들에 대해 비교하는 구성을 포함하는 멀티미디어 데이터 프로세서를 포함한다. 이 프레임의 포션은 복수의 서브포션들을 포함한다. 또한, 이 구성은 비교에 기초하여 복수의 레퍼런스 프레임들로부터 하나의 레퍼런스 프레임을 선택하고, 선택된 레퍼런스 프레임에 기초하여 서브포션들 중 적어도 하나의 서브포션을 처리하도록 한다.
또 다른 양태는 멀티미디어 데이터를 처리하기 위한 명령을 포함하는 머신 판독 가능 매체를 포함한다. 명령은 실행시 머신으로 하여금 프레임의 포션을 복수의 레퍼런스 프레임들에 대해 비교하게 한다. 이 프레임의 포션은 복수의 서브포션들을 포함한다. 또한, 명령은 실행시 머신으로 하여금 비교에 기초하 여 복수의 레퍼런스 프레임들로부터 하나의 레퍼런스 프레임을 선택하게 하고 선택된 레퍼런스 프레임에 기초하여 서브포션들 중 적어도 하나의 서브포션을 처리하게 한다.
도면의 간단한 설명
도 1은 일 양태에 따른 멀티미디어 통신 시스템을 도시하는 기능 블록도이다.
도 2는 도 1에 도시된 것과 같은 시스템에서 비디오 프레임의 포션을 인코딩하는 방법의 부분들을 그림으로 도시한 것이다.
도 3은 도 1에 도시된 것과 같은 시스템에서 비디오 스트림의 포션을 인코딩하는 방법에 대한 실시예를 도시하는 흐름도이다.
도 4는 도 3에 도시된 방법에 따라 비디오 데이터를 처리하는 장치에 대한 실시예를 도시하는 기능 블록도이다.
도 5는 도 3에 도시된 방법에 대한 실시예의 일부분을 더욱 상세하게 도시하는 흐름도이다.
도 6은 도 3에 도시된 방법에 대한 다른 실시예의 일부분을 더욱 상세하게 도시하는 흐름도이다.
도 7은 도 3에 도시된 방법에 대한 또 다른 실시예의 일부분을 더욱 상세하게 도시하는 흐름도이다.
상세한 설명
이하의 상세한 설명은 본 발명의 임의의 특정 양태들에 관한 것이다. 그 러나, 본 발명은 특허 청구 범위에 의해 정의되고 포함되는 것과 같이 다수의 상이한 방법으로 구현될 수 있다. 이 상세한 설명 부분에서는, 도면을 참조하여 설명이 이루어지고, 도면 전체에서 동일 구성요소는 동일 참조 부호로 지시된다. 이하의 설명에서, 기술되는 양태들에 대한 철저한 이해를 제공하도록 구체적인 세부 사항이 주어지고 있다. 그러나, 이러한 구체적인 세부 사항 없이도 본 발명의 양태들을 실시할 수도 있다는 사실은 당해 기술 분야에 통상의 지식을 가진 자라면 이해할 수 있을 것이다. 예를 들어, 불필요한 세부 사항으로 본 발명의 양태를 불분명하게 하지 않기 위해서 전기적 컴포넌트들은 블록도로 도시될 수도 있다. 다른 예들에서는, 본 발명의 양태들을 더욱 상세하게 설명하기 위하여 그러한 컴포넌트, 기타 구조 및 기술이 상세하게 제시될 수도 있다.
또한, 실시형태에 따라서, 본 출원에 기재된 방법, 프로세스, 블록도 및 흐름도 중 어느 하나의 특정 동작이나 이벤트는 상이한 시퀀스로 수행될 수도 있으며, 추가되거나, 병합되거나, 또는 모두 함께 생략될 수도 있다 (예를 들어, 기술된 모든 동작이나 이벤트가 방법의 실시에 있어서 필수적인 것은 아니다) 는 것을 알 수 있다. 또한, 특정 실시예들에서는, 동작 또는 이벤트가 순차적으로 수행되는 것이 아니라, 예를 들어, 멀티스레드 (multi-thread) 프로세스, 인터럽트 프로세스 또는 멀티플 프로세서를 통해 동시에 수행될 수도 있다 . 또한, 본 출원에 기재된 방법, 프로세스, 블록도 및 흐름도는 그 전체 또는 부분으로 반복될 수도 있다는 것이 이해되어야 한다.
본 발명의 양태들은 멀티미디어 전송 시스템에서 인코더의 처리를 개선하는 시스템과 방법을 포함한다. 멀티미디어 데이터는 모션 비디오, 오디오, 정지 이미지 또는 임의의 기타 적합한 종류의 오디오-비주얼 데이터 중 하나 이상을 포함할 수도 있다. 본 발명의 양태들은 비디오 데이터를 인코딩하는 장치와 방법을 포함한다. 예를 들어, 일 양태는 비디오 인코딩에 있어서 레퍼런스 프레임 탐색을 감소시키는 방법을 포함한다. 그러한 양태 중 하나는 모션 보상 방법에 있어서 레퍼런스 프레임의 탐색을 감소시키는 방법을 포함한다. 특히, 일 양태에 따라 레퍼런스 프레임들의 세트의 전부보다 적게 탐색하는 것이 인코딩된 프레임 내의 잡음이나 왜곡의 양을 사실상 증가시키지 않으면서도 모션 보상 탐색의 계산 복잡도를 바람직하게 감소시키는 것으로 확인되었다.
도 1은 일 양태에 따른 멀티미디어 통신 시스템 (100) 을 도시한 기능 블록도이다. 이 시스템 (100) 은 네트워크 (140) 를 통해 디코더 디바이스 (150) 와 통신하는 인코더 디바이스 (110) 를 포함한다. 일 실시예에 있어서, 인코더 디바이스는 외부 소스 (102) 로부터 멀티미디어 신호를 수신하여, 네트워크 (140) 를 통한 전송을 위해 그 신호를 인코딩한다.
이 실시예에서 인코더 디바이스 (110) 는 메모리 (114) 및 송수신기 (116) 에 연결된 프로세서 (112) 를 포함한다. 프로세서 (112) 는 멀티미디어 데이터 소스로부터의 데이터를 인코딩하여, 이를 네트워크 (140) 를 통한 통신을 위해 송수신기 (116) 에 공급한다.
이 실시예에서 디코더 디바이스 (150) 는 메모리 (154) 및 송수신기 (116) 에 연결된 프로세서 (152) 를 포함한다. 프로세서 (152) 는 범용 프로세서 또 는 디지털 신호 프로세서 중 하나 이상을 포함할 수도 있다. 메모리 (154) 는 솔리드 스테이트 (solid state) 기억 장치 또는 디스크형 기억 장치 중 하나 이상을 포함할 수도 있다. 송수신기 (156) 는 네트워크 (140) 를 통해 멀티미디어 데이터를 수신하여, 이를 디코딩을 위해 프로세서 (152) 에 공급하도록 구성된다. 일 실시예에 있어서, 송수신기 (156) 는 무선 송수신기를 포함한다. 네트워크 (140) 는 이더넷, 전화 (예를 들어, POTS), 케이블, 전력선 및 광섬유 시스템 중 하나 이상을 포함하는 유선 또는 무선 통신 시스템, 및/또는 코드분할다중접속 (CDMA 또는 CDMA 2000) 통신 시스템, 주파수분할다중접속 (FDMA) 시스템, GSM/GPRS (General Packet Radio Service)/EDGE (enhanced data GSM environment) 와 같은 시분할다중접속 (TDMA) 시스템, TETRA (Terrestrial Trunked Radio) 모바일 전화 시스템, WCDMA (wideband CDMA) 시스템, 고속무선데이터 (high data rate) (1xEV-DO 또는 1xEV-DO Gold Multicast) 시스템, IEEE 802.11 시스템, MediaFLO 시스템, DMB 시스템 또는 DVB-H 시스템 중 하나 이상을 포함하는 무선 시스템을 포함한다.
도 2는 도 1에서 도시한 것과 같은 시스템에서 비디오 프레임의 포션을 인코딩하는 방법에 대한 하나의 양태를 도시한다. 도 2에 도시된 바와 같이, 프레임 (170) 은 다수의 매크로블록 (171) 들로 나누어질 수도 있다. 각각의 매크로블록 (171) 은 픽셀들의 배열, 예를 들어, 프레임 (170) 의 16×16 픽셀들의 배열을 포함한다. 또한, 인코더 (110) 는 매크로블록 (171) 을 8×8 서브블록 (171a) 또는 4×4 서브블록 (171b) 과 같이 임의 개수의 더 작은 블록으로 분할할 수도 있다. 옵션으로, 인코더 (110) 는 프레임 (170) 내부 및/또는 인코딩된 프레임들 (170) 사이에서 서브블록의 크기를 다르게 할 수도 있다. 총괄해서, 매크로블록 (171) 및, 서브블록 (171a) 과 같은 매크로블록의 분할은 본 출원에서 "블록" 으로 지칭되며 도 2의 참조부호 "171" 을 참조하여 일괄적으로 지칭된다.
인코딩된 비디오 프레임 (170) (또는 프레임 (170) 의 블록 (171)) 은 다른 프레임에 의존하지 않거나 (예를 들어, 인트라모드 (intra-mode)), 다른 인코딩된 프레임에 기초하여 예측적으로 인코딩될 수도 있다 (예를 들어, 인터모드 (inter-mode)). 프레임 (170) 의 포션에 사용된 특정의 인코딩의 모드를 "(인코딩) 모드" 로 지칭할 수도 있다. 인코더 (110) 는 상이한 모드를 사용하여 프레임 (170) 의 상이한 포션, 예를 들어, 상이한 블록 (171) 또는 서브블록들 (171) 을 인코딩할 수도 있다. 예를 들어, 모션 보상 알고리즘은 프레임 (170) 또는 프레임 (170) 의 하나 이상의 블록들 (171) 을 인코딩하는데 사용될 수도 있다. 인코더 (110) 의 일 실시예는 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 와 같은 크기 (다른 크기들을 사용할 수도 있음) 의 블록을 포함하는 블록들에 의해서 프레임 (170) 을 인코딩한다. 인코딩된 프레임 (170) 은 프레임 (170) 의 사실상 모든 픽셀을 인코딩하는 인코딩된 블록들 (171) 의 세트로의 프레임 (170) 의 분할을 포함할 수도 있다. 인코딩된 블록 (171) 은 그 크기가 상이할 수도 있고, 인코딩된 데이터의 크기 및 결과로서 생성된 이미지의 왜곡과 같은 인자들의 가중된 평균에 기초하여 상이한 인코딩 전략들의 비교를 가능하게 하는 비용 함수에 기초하여 인코딩된 블록 (171) 이 선택될 수도 있다.
상기한 바와 같이, 비디오 프레임을 예측하는 하나의 방법으로서 모션 추정 알고리즘을 사용하는데, 이러한 알고리즘은 적어도 부분적으로 정합하는 블록 (171) 에 기초하여 하나의 프레임에서 다른 프레임, 예를 들어, 레퍼런스 프레임에 이르기까지 프레임 (170) 을 인코딩하기 위해 비디오 데이터의 시간 중복성을 이용한다. 모션 추정 알고리즘은 프레임 (170) 의 블록 (171) 에는 유사하지만 (예를 들어, 적어도 부분적으로 정합하지만), 어쩌면 인코딩된 프레임 (174) 내에서 위치가 시프트된, 하나 이상의 레퍼런스 프레임 (174) 내의 블록 (176) 을 식별한다. 다양한 양태에서 모션 추정 알고리즘은 시간상 현재 프레임 (170) 이전, 시간상 현재 프레임 (170) 이후 혹은 둘 다인 레퍼런스 프레임 (174) 을 사용할 수도 있다는 점에 주목해야 한다. 블록 (171) 과 블록 (176) 사이의 위치상의 차이를 나타내는 모션 벡터와 더불어, 하나 이상의 레퍼런스 프레임 (174) 들의 목록 (예를 들어, 레퍼런스 프레임들 (174a, 174b, 174c, 174d 및 174e)) 에서 찾아낸 레퍼런스 블록 (예를 들어, 레퍼런스 프레임 (174c) 의 블록 (176)) 에 대한 프레임 (170) 의 블록 (171) 의 픽셀들 사이의 차이를 나타내는 레지듀얼 데이터에 의해서 프레임 (170) 의 블록 (171) 은 인코딩된다. 레퍼런스 프레임 (174) 은 비디오 신호에서 프레임 (170) 의 이전 또는 이후인 프레임들의 시간상으로 배열된 리스트 (list) 일 수도 있다. 도 2에서 도시한 것과 같이, 인코더 (110) 는 프레임 (174c) 내의 블록 (176) 과 같은, 대응하는 블록들을 식별하기 위해서, 프레임 (170) 의 블록 (171a) 을 레퍼런스 프레임 (174) 에 대해 비교할 수도 있다.
인코더 (110) 는 모션 보상 데이터, 예를 들어, 모션 벡터와 레지듀얼을 블록 (171) 의 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 블록 (분할) 과 같은 블록들의 그룹의 각각에 대해서 계산할 수도 있다. 인코더 (110) 는 먼저 큰 블록 (171), 예를 들어, 16×16 블록에 대한 모션 보상 데이터를 계산하고 나서, 큰 블록의 서브블록 각각, 예를 들어, 16×8, 8×8 등에 대한 모션 보상 데이터를 계산할 수도 있다. 인코더 (110) 는 프레임 (170) 의 사실상 전부를 커버하는 하나 이상의 크기의 블록 (171) 들의 특정 분할이나 세트를 선택할 수 있다. 인코더 (110) 는 비용 함수, 예를 들어, 레이트-디스토션 (rate-distortion, RD) 함수에 기초하여 프레임의 각각의 포션에 대한 특정 블록 및 각각의 예측 데이터를 선택할 수도 있는데, 이러한 비용 함수는, 프레임의 블록들의 특정 세트에 대한 모션 벡터와 레지듀얼의 특정 세트 및 결과로서 생성된 이미지 왜곡의 대응 추정을 사용하며, 프레임의 포션 또는 프레임의 인코딩 데이터 사이즈에 기초하여 인코딩 크기와 왜곡 간의 트레이드-오프 (trade-off) 를 행하는 방법을 포함한다. 인코더 (110) 는 해당 기술 분야에서 알려진 것들을 포함하는 임의의 적합한 비용 함수를 사용할 수도 있다. 예를 들어, 적합한 비용 함수는 "Rate-Constrained Coder Control and Comparison of Video Coding Standards," IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 13, NO. 7,688 (2003년 7월) 에 개시되어 있다. 예를 들어, 비용 함수는 레이트-디스토션 함수, 최소 레지듀 (residue) 및/또는 절대 차이 합 (sum of absolute difference, SAD) 함수를 포함할 수도 있다.
도 3은 멀티미디어 데이터를 인코딩하는 방법 (204) 의 실시예를 도시하는 흐름도이다. 이 방법은, 인코더 (110) 가 블록 (171a) 을 인코딩하기 위한 정 합 데이터를 식별하기 위해, 프레임의 블록 (예를 들어, 도 2에서 도시한 것과 같은 프레임 (170) 의 블록 (171a)) 을 레퍼런스 프레임 (예를 들어, 도 2의 프레임 (174)) 들의 리스트의 각각에 대하여 비교하는 블록 (222) 에서 시작한다. 인코더 (110) 는 블록 (171a) 과 적어도 부분적으로 정합하는 프레임 (174c) 의 블록 (176) 과 같은 포션에 대하여 레퍼런스 프레임 (174) 각각을 탐색할 수도 있다. 다음 블록 (224) 에서, 인코더 (110) 는 레퍼런스 프레임 (174) 들 중에서 블록 (171a) 을 중재 (intercede) 하는데 가장 작은 인코딩 비용 함수를 가지는 레퍼런스 프레임, 예를 들어, 레퍼런스 프레임 (174c) 을 선택한다. 또한, 인코더 (110) 는 선택된 레퍼런스 프레임에 기초하여 레퍼런스 프레임 (174) 의 서브세트를 옵션으로 선택할 수도 있다. 예를 들어, 서브세트는 오로지 선택된 레퍼런스 프레임, 예를 들어, 레퍼런스 프레임 (174c) 만을 포함할 수도 있다. 또 다른 실시예에서, 레퍼런스 프레임 (174) 들은 프레임 1 내지 프레임 N의 시간 시퀀스를 포함하며, 선택된 레퍼런스 프레임 (174) 이 이 시퀀스에서 프레임 j 이므로, 서브세트가 레퍼런스 프레임 j-M 내지 프레임 j+M 을 포함하고, 이때 M은 서브세트의 크기를 파라미터화하는 정수이다. 예를 들어, M=1인 경우 서브세트는 프레임 j-1 내지 프레임 j+1 을 포함하는 것으로서, 예를 들어, 일련의 프레임 1 내지 프레임 N에서 식별된 레퍼런스 프레임과 그에 인접하는 레퍼런스 프레임이다. M=1 은 단지 설명을 위한 것이며, 양태들은 다른 값의 서브세트 크기 파라미터 M을 사용할 수도 있다는 것을 인식하여야 한다. 또한, 이러한 범위는 시퀀스의 하위 말단, 예를 들어, 1로 인식되는 프레임에서 프레임의 하위 극한을 가지며, 시퀀 스의 상위 말단, 예를 들어, 프레임 N 에서 프레임의 상위 극한을 가질 수도 있다는 것을 인식하여야 한다.
다음 블록 (228) 에서, 인코더 (110) 는 선택된 레퍼런스 프레임에 기초하여 서브포션들, 예를 들어, 서브블록들 중 적어도 하나를 처리한다. 인코더는 레퍼런스 프레임 (174) 의 적어도 부분적으로 정합하는 포션 (176) 을 찾기 위해 프레임 (170) 의 서브블록을 선택된 레퍼런스 프레임에 비교함으로써 서브블록을 처리할 수도 있다. 예를 들어, 인코더 (110) 는 블록 (171a) 의 각각의 서브블록, 예를 들어, 16×8, 8×16 크기의 서브블록을 오직 선택된 레퍼런스 프레임 (174) 과 비교할 수도 있다. 따라서, 인코더 (110) 가 서브블록을 인코딩하기 위해서 5 개의 레퍼런스 프레임 (174) 모두를 탐색할 필요는 없으므로, 왜곡 효과를 사실상 증가시키지 않으면서 처리 복잡도를 감소시킨다.
또한, 방법 블록 (224) 에 대해서 논의하였듯이, 인코더는 서브블록을 레퍼런스 프레임 (174) 의 서브세트에 대해 비교할 수도 있다. 예를 들어, 프레임 (174c) 이 8×8 블록 (171a) 에 대한 레퍼런스 프레임으로 식별되면, 레퍼런스 프레임의 서브세트는 프레임 (174c) 또는 프레임 (174c) 과 시간상 인접한 범위의 프레임들, 예를 들어, 프레임 (174b) 내지 프레임 (174d) 을 포함할 수도 있다. 또한, 인코더 (110) 는 모든 레퍼런스 프레임의 탐색, 선택된 레퍼런스 프레임만의 탐색, 또는 레퍼런스 프레임의 서브세트만의 탐색의 조합을 수행하도록 구성될 수도 있다. 인코더 (110) 는, 예를 들어, 탐색되는 블록의 크기에 기초하여 이러한 조합을 선택할 수도 있다. 도 5, 도 6 및 도 7은 그러한 조합의 특정한 실 시예들을 도시한다.
위에서 개시한 방법에 따라 레퍼런스 프레임 (174) 전부보다 적게 탐색하는 것이 인코딩된 프레임 (170) 내의 노이즈나 왜곡의 양을 사실상 증가시키지 않으면서도 모션 보상 탐색의 계산 복잡도를 바람직하게 감소시킨다는 것이 밝혀졌다. 방법 (204) 은 프레임 (170) 의 상이한 블록 또는 서브블록 (171) 에 대해서 반복될 수도 있다.
도 4는 도 3에 도시된 방법에 따라 비디오 데이터를 처리하기 위한 장치의 실시예를 도시하는 블록도이다. 더욱 상세하게는, 도 4는 인코더 (110) 의 실시예를 도시한다. 인코더 (100) 는 프레임의 포션을 복수의 레퍼런스 프레임들에 비교하기 위한 모듈 (302), 복수의 레퍼런스 프레임들로부터 하나의 레퍼런스 프레임을 선택하기 위한 모듈 (304) 및 선택된 레퍼런스 프레임에 기초하여 서브포션들 중 적어도 하나를 처리하기 위한 모듈 (306) 을 포함한다. 프레임의 포션을 비교하기 위한 모듈 (302) 은 복수의 레퍼런스 프레임들에 대해 프레임의 포션을 비교하도록 구성될 수도 있다. 예를 들어, 이 모듈 (302) 은 도 3의 블록 (222) 에 대해서 논의했던 동작을 수행할 수도 있다. 레퍼런스 프레임을 선택하기 위한 모듈 (304) 은 복수의 레퍼런스 프레임 (174) (도 2 참조) 들로부터 하나의 레퍼런스 프레임, 예를 들면, 프레임 (174c) 을 선택하도록 구성될 수도 있다. 예를 들어, 이 모듈 (304) 은 도 3의 블록 (224) 에서 논의했던 동작을 수행할 수도 있다. 이 모듈 (304) 은 상술한 비용 함수에 기초하여 레퍼런스 프레임 (174) 을 선택할 수도 있다. 또한, 레퍼런스 프레임 선택 모듈 (304) 은 식별된 레퍼런스 프레임, 예를 들어, 프레임 j-1 내지 프레임 j+1 에 기초하여 레퍼런스 프레임의 서브세트를 선택하도록 구성될 수도 있으며, 이러한 레퍼런스 프레임은 시간 시퀀스 (time-sequence) 된 일련의 레퍼런스 프레임들에서 프레임 j로 식별된다. 프레임의 서브포션을 처리하기 위한 모듈 (306) 은 선택된 레퍼런스 프레임 (174) 에 기초하여 서브포션들 중 적어도 하나를 처리하도록 구성될 수도 있으며, 예를 들어, 모듈 (306) 은 도 3의 블록 (228) 에 대해서 기술한 동작을 수행할 수도 있다.
아래의 표 1은 다양한 크기의 블록의 탐색을 위해 레퍼런스 프레임 (174) 의 탐색을 감소시키는 인코딩 방법의 다수의 실시예에 대한 시뮬레이션 결과를 보여준다. 표 1은 모든 블록 크기에 대해 모든 N개의 레퍼런스 프레임을 탐색하는 것의 비용과 본 출원에서 개시하는 레퍼런스 프레임의 탐색을 감소시키는 방법의 3 개의 실시예의 비용을 비교하고 있다. 표 1은 애니메이션, 뮤직 비디오, 뉴스, 일반 스포츠, 케이블 스포츠 채널, 케이블 영화 채널 및 일반 또는 전형 케이블 텔레비젼 신호로부터의 다수의 상이한 비디오 신호의 경우에, 비트레이트 (bitrate), PSNR (peak signal to noise ratio) 및, 예를 들어, 탐색이 감소하는 방법의 경우에 증가한 신호 대 노이즈 비율인 "페널티" 를 비교한다.
도 5는 도 3의 방법 (204) 의 제 1 실시예에 대해서 더욱 상세하게 도시하는 흐름도이다. 제 1 실시예는 표 1의 실시예 A에 대응하며, 서브-8×8 모드에서 레퍼런스 프레임을 감소시키는 방법을 포함한다. 예를 들어, 8×8 서브블록에 대해 데이터를 인코딩하기 위해 블록 (350) 에서는 모든 N개의 레퍼런스 프레임이 탐색된다. 특정한 레퍼런스 프레임 (174), 예를 들어, 8×8 서브블록의 인코딩에 대한 최저 비용 함수를 갖는 프레임 j가 선택된다. 표 1의 시뮬레이션 데이터에서, N은 5 개의 레퍼런스 프레임과 동치이다. 다음 블록 (352) 에서, 시뮬레이션된 인코더 (110) 는 8×8 블록의 서브블록 (예를 들어, 8×4, 4×4, 4×8 블록) 에 대한 데이터를 인코딩하기 위해, 오직 선택된 프레임 j에 대해서만 탐색한다.
도 6은 도 3의 방법 (204) 의 제 2 실시예에 대해서 더욱 상세하게 도시하는 흐름도이다. 제 2 실시예는 표 1의 실시예 B에 대응하며, 16×8 블록과 8×16 블록에 대한 데이터를 인코딩하기 위해 탐색되는 레퍼런스 프레임의 감소를 제공하는 방법을 포함한다. 예를 들어, 블록 (360) 에서, 인코더 (110) 는 16×16 블록에 대한 데이터를 인코딩하기 위해 N개의 레퍼런스 프레임을 탐색하고, 프레임 j를 16×16 블록의 인코딩에 대한 낮은 값의 비용 함수를 제공하는 것으로 식별한다. 최저 값은 가장 낮게 계산된 비용 값일 수도 있다. 다음 블록 (362) 에서, 16×16 블록의 16×8 및 8×16 서브블록에 대해서, 인코더 (110) 는 데이터를 인코딩하기 위해서 선택된 레퍼런스 프레임 j만을 탐색한다.
도 7은 도 3의 방법 (204) 의 제 3 실시예에 대해서 더욱 상세하게 도시하는 흐름도이다. 제 3 실시예는 실시예 C에 대응하며, 16×8, 8×16, 8×8 블록 및 서브-8×8 블록을 인코딩하기 위해 사용되는 레퍼런스 프레임을 감소시키는 방법을 포함한다. 실시예 C의 방법은 선택된 레퍼런스 프레임 j에 대해서만 탐색함으로써 16×8 블록과 8×16 블록에 대한 탐색을 감소시키기 위해 도 6의 블록들 (360 및 362) 과 연관되는 동작을 포함한다. 블록 (362) 에서 16×8 블록과 8×16 블록에 대해 감소한 레퍼런스 프레임에 기초하여 인코딩 비용을 계산한 후에, 도 6의 블록 (374) 에서 인코더 (110) 는 16×8 블록과 8×16 블록의 8×8 서브블록 각각에 대해, 선택된 레퍼런스 프레임 j에 시간적으로 인접한 레퍼런스 프레임들의 세트, 즉 프레임 max(0,j-1) 내지 프레임 min(N,j+1) 을, 예를 들어, 8×8 서브블록에 대한 하나의 프레임 내부에서 탐색한다. 블록 (378) 으로 이동하면, 인코더 (110) 는 8×8 블록 각각에 대해 최저의 인코딩 비용을 가지는 레퍼런스 프레임 i를 선택한다. 다음 블록 (380) 에서, 8×8 블록의 서브 블록에 대해, 인코더 (110) 는 데이터를 인코딩하기 위해 오직 레퍼런스 프레임 i에 대해서만 탐색한다.
표 1의 시뮬레이션 데이터는 적응 (adaptive) 프레임 인코딩과 32×32 픽셀의 탐색 범위를 가정하여 생성되었다.
컨텐츠 종류 N개의 모든 레퍼런스 프레임 탐색 실시예 A 실시예 A 및 실시예 B 실시예 C
애니메이션 비트레이트 (kpbs) 224.1024 223.9125 223.4455 223.8705
PSNR (dB) 36.48065 36.40682 36.36378 36.26227
페널티 (dB) 0 0.070032 0.103732 0.213742
음악 비트레이트 (kpbs) 242.9459 241.1545 240.2382 240.4
PSNR (dB) 36.12607 36.00855 35.93545 35.8716
페널티 (dB) 0 0.081692 0.136466 0.203552
뉴스 비트레이트 (kpbs) 201.852 202.3049 201.5107 202.9838
PSNR (dB) 38.31485 38.46045 38.34122 38.38856
페널티 (dB) 0 -0.13654 -0.0332 -0.05107
스포츠 비트레이트 (kpbs) 250.3261 250.5926 250.8334 250.9431
PSNR (dB) 33.76418 33.70399 33.67024 33.59318
페널티 (dB) 0 0.06552 0.104086 0.18334
케이블 스포츠 채널 비트레이트 (kpbs) 258.1204 257.9902 257.4172 258.2838
PSNR (dB) 32.12103 32.05273 31.9976 31.93628
페널티 (dB) 0 0.065696 0.109366 0.188018
케이블 영화 채널 비트레이트 (kpbs) 237.925 238.8215 237.9826 238.5083
PSNR (dB) 37.6586 37.71595 37.61822 37.53846
페널티 (dB) 0 -0.03942 0.041532 0.131806
일반 케이블 비디오 비트레이트 (kpbs) 237.567 234.5901 236.9851 236.7844
PSNR (dB) 35.64185 35.47642 35.5201 35.43013
페널티 (dB) 0 0.105892 0.110112 0.196068
평균 페널티 (dB) 0 0.03041 0.081728 0.152207
도시된 3 개의 실시예는 레퍼런스 프레임 탐색의 복잡도와 인코딩 품질 간의 상이한 트레이드-오프를 제공한다. 그 중, 실시예 C의 방법이 PSNR 손실이 약 0.15 dB에 불과하여 최저 복잡도를 가진다.
위의 관점에서, 본 발명이 비디오 데이터와 같은 멀티미디어 데이터를 인코딩하는데 있어서의 문제를 극복한 것으로 인정할 수 있을 것이다. 예를 들어, 일 양태에 따라 레퍼런스 프레임의 탐색이 감소하면 비디오 충실도 (fidelity) 가 사실상 손실됨이 없이 비디오 인코딩의 계산 복잡도가 감소한다. 그러므로, 비디오 인코더는 저전력, 낮은 지연 (latency) 및/또는 덜 복잡한 프로세서와 관련 전자 기기를 사용할 수 있다.
당해 기술 분야에 통상의 지식을 가진 자라면 본 출원에 개시된 양태들과 관련하여 기재된 다양한 예시적인 논리 블록, 모듈, 회로 및 알고리즘 단계가 전자적 하드웨어, 컴퓨터 소프트웨어 또는 양자의 결합으로 구현될 수 있다는 것을 인식할 것이다. 명확히 설명하자면, 이러한 하드웨어와 소프트웨어, 다양한 예시적 컴포넌트, 블록, 모듈, 회로 및 단계의 교환가능성은 이들의 기능성에 의하여 일반적으로 상술한 바 있다. 그러한 기능성이 하드웨어로 구현되는지 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션 및 전체 시스템에 부여된 디자인 제약 조건에 따라 다르다. 당해 기술 분야에 통상의 지식을 가진 자는 기재된 기능성을 각각의 특정 애플리케이션에 대해 다양한 방법으로 구현할 수도 있을 것이나, 그러한 구현 결정은 본 발명의 범위로부터의 일탈을 야기하는 것으로 해석되어서는 안 될 것이다.
본 출원에 개시된 양태들과 관련하여 기재된 다양한 예시적 논리 블록, 모듈 및 회로는 본 출원에 기재된 기능을 수행하도록 디자인된 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 반도체 (ASIC), 필드 프로그램 가능 게이트 배열 (FPGA) 또는 기타 프로그램 가능 논리 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트 또는 이들의 임의적 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있으나, 다른 방법으로, 프로세서는 종래의 임의의 프로세서, 컨트롤러, 마이크로컨트롤러 또는 상태 머신이 될 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스의 조합, 예를 들어, DSP와 마이크로프로세서, 복수의 마이크로프로세서, DSP 코어와 연결된 하나 이상의 마이크로프로세서 또는 임의의 기타 그러한 구성의 조합으로 구현될 수도 있다.
본 출원에 개시된 양태들과 관련하여 기재된 방법 또는 알고리즘의 단계는 하드웨어에 직접 구현되거나, 프로세서에 의해 실행되는 소프트웨어 모듈에 구현되거나, 또는 양자의 조합으로 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드디스크, 착탈식 (removable) 디스크, CD-ROM 또는 관련 기술 분야에서 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독할 수도 있고 저장 매체에 정보를 기록할 수 있도록, 프로세서에 연결되어 있다. 다른 방법으로, 저장 매체는 프로세서와 일체로 될 수도 있다. 프로세서와 저장 매체는 ASIC에 상주할 수도 있다. ASIC은 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로는, 프로세서와 저장 매체가 사용자 단말기 내의 개별 컴포넌트로 상주할 수도 있다.
개시된 양태들에 대한 앞의 설명은 당해 기술 분야에서 통상의 지식을 가진 자라면 누구라도 본 발명을 실시하거나 사용할 수 있도록 제공된다. 이러한 양태들에 대한 다양한 변경은 당해 기술 분야에 통상의 지식을 가진 자에게 명백할 것이며, 본 출원에 정의된 일반적인 원리들은 본 발명의 요지나 범위를 일탈하지 않고도 다른 실시 형태에 적용될 수도 있다. 따라서, 본 발명은 본 출원에 나타난 양태들에 한정되도록 의도되지 않으나, 본 출원에 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위가 부여된다.
상술한 내용이 다양한 양태들에 적용되는 본 발명의 신규한 특징들을 나타내고, 설명하며, 지적하고 있으나, 설명된 디바이스나 프로세스의 형식과 세부 사항에 있어서의 다양한 생략, 대체 및 변화가 당해 기술 분야에 통상의 지식을 가진 자에 의해서 본 발명의 요지를 일탈하지 아니하고 이루어질 수도 있다. 어떠한 특징들은 기타의 특징들로부터 분리되어 사용되거나 실시될 수 있듯이, 본 발명은 본 출원에서 설명한 모든 특징과 이익을 제공하지 않는 형태로 구현될 수도 있음이 인정될 것이다. 본 발명의 범위는 상술한 내용에 의해서가 아닌 첨부된 특허 청구 범위에 의해서 지시된다. 특허 청구 범위의 내용 및 균등물의 범위 내에 해당하는 모든 변화는 특허 청구 범위의 권리 범위에 포함되어야 한다.

Claims (34)

  1. 멀티미디어 데이터를 처리하는 방법으로서,
    프레임의 포션 (portion) 을 복수의 레퍼런스 프레임들에 대해 비교하는 단계로서, 상기 프레임의 포션은 복수의 서브포션 (sub-portion) 들을 포함하는, 상기 비교 단계;
    상기 비교에 기초하여 상기 복수의 레퍼런스 프레임들로부터 하나의 레퍼런스 프레임을 선택하는 단계; 및
    상기 선택된 레퍼런스 프레임에 기초하여 상기 서브포션들 중 적어도 하나의 서브포션을 처리하는 단계를 포함하는, 멀티미디어 데이터 처리 방법.
  2. 제 0 항에 있어서,
    상기 레퍼런스 프레임을 선택하는 단계는 상기 레퍼런스 프레임들의 서브세트 (subset) 를 선택하는 단계를 포함하며,
    상기 서브포션들 중 적어도 하나의 서브포션을 처리하는 단계는 상기 레퍼런스 프레임들의 서브세트에 기초하는, 멀티미디어 데이터 처리 방법.
  3. 제 0 항에 있어서,
    상기 서브포션들 중 적어도 하나의 서브포션을 처리하는 단계는,
    상기 레퍼런스 프레임들의 서브세트 중 적어도 하나의 레퍼런스 프레임을 선 택하는 단계; 및
    상기 레퍼런스 프레임들의 서브세트 중 적어도 하나의 레퍼런스 프레임에 적어도 부분적으로 기초하여 상기 서브포션들 중 적어도 하나의 서브포션을 처리하는 단계를 포함하는, 멀티미디어 데이터 처리 방법.
  4. 제 0 항에 있어서,
    상기 복수의 레퍼런스 프레임들은 시간 배열 (temporal ordering) 을 정의하고,
    상기 레퍼런스 프레임들의 서브세트는 상기 시간 배열에서 적어도 2 개의 인접한 프레임들을 포함하는, 멀티미디어 데이터 처리 방법.
  5. 제 0 항에 있어서,
    상기 서브포션들 중 적어도 하나의 서브포션을 처리하는 단계는 상기 서브포션들 중 적어도 하나의 서브포션을 상기 선택된 레퍼런스 프레임의 적어도 일부에 대해 비교하는 단계를 포함하는, 멀티미디어 데이터 처리 방법.
  6. 제 0 항에 있어서,
    상기 포션은 매크로블록 (macro-block) 을 포함하고, 상기 서브포션들은 서브블록 (subblock) 들을 포함하는, 멀티미디어 데이터 처리 방법.
  7. 제 0 항에 있어서,
    상기 포션은 서브블록을 포함하고, 상기 서브포션들은 상기 서브블록의 서브블록들을 포함하는, 멀티미디어 데이터 처리 방법.
  8. 제 0 항에 있어서,
    적어도 상기 프레임의 포션에 대해 인코딩 메트릭 (metric) 을 계산하는 단계를 더 포함하는, 멀티미디어 데이터 처리 방법.
  9. 제 8 항에 있어서,
    상기 레퍼런스 프레임을 선택하는 단계는 상기 인코딩 메트릭에 적어도 부분적으로 기초하는, 멀티미디어 데이터 처리 방법.
  10. 제 8 항에 있어서,
    상기 인코딩 메트릭은 인코딩된 데이터의 왜곡 및 인코딩된 데이터의 크기 중 적어도 하나에 기초하는, 멀티미디어 데이터 처리 방법.
  11. 멀티미디어 데이터 처리용 장치로서,
    프레임의 포션을 복수의 레퍼런스 프레임들에 대해 비교하는 수단으로서, 상기 프레임의 포션은 복수의 서브포션들을 포함하는, 상기 비교 수단;
    상기 비교에 기초하여 상기 복수의 레퍼런스 프레임들로부터 하나의 레퍼런 스 프레임을 선택하는 수단; 및
    상기 선택된 레퍼런스 프레임에 기초하여 상기 서브포션들 중 적어도 하나의 서브포션을 처리하는 수단을 포함하는, 멀티미디어 데이터 처리용 장치.
  12. 제 11 항에 있어서,
    상기 선택 수단은 상기 레퍼런스 프레임들의 서브세트를 선택하도록 구성되고,
    상기 처리 수단은 상기 서브세트에 기초하여 상기 서브포션들 중 적어도 하나의 서브포션을 처리하도록 구성되는, 멀티미디어 데이터 처리용 장치.
  13. 제 12 항에 있어서,
    상기 처리 수단은,
    상기 레퍼런스 프레임들의 서브세트 중 적어도 하나의 레퍼런스 프레임을 선택하고,
    상기 서브세트 중 적어도 하나의 레퍼런스 프레임에 적어도 부분적으로 기초하여 상기 서브포션들 중 적어도 하나의 서브포션을 처리하도록 또한 구성되는, 멀티미디어 데이터 처리용 장치.
  14. 제 12 항에 있어서,
    상기 복수의 레퍼런스 프레임들은 시간 배열을 정의하고,
    상기 레퍼런스 프레임들의 서브세트는 상기 시간 배열에서 적어도 2 개의 인접한 프레임들을 포함하는, 멀티미디어 데이터 처리용 장치.
  15. 제 11 항에 있어서,
    상기 처리 수단은 상기 서브포션들 중 적어도 하나의 서브포션을 상기 선택된 레퍼런스 프레임의 적어도 일부에 대해 비교하도록 또한 구성되는, 멀티미디어 데이터 처리용 장치.
  16. 제 11 항에 있어서,
    상기 포션은 매크로블록을 포함하고, 상기 서브포션들은 서브블록들을 포함하는, 멀티미디어 데이터 처리용 장치.
  17. 제 11 항에 있어서,
    상기 포션은 서브블록을 포함하고, 상기 서브포션들은 상기 서브블록의 서브블록들을 포함하는, 멀티미디어 데이터 처리용 장치.
  18. 제 11 항에 있어서,
    상기 선택 수단은 적어도 상기 프레임의 포션에 대해 인코딩 메트릭을 계산하도록 또한 구성되는, 멀티미디어 데이터 처리용 장치.
  19. 제 11 항에 있어서,
    상기 처리 수단은 상기 서브포션들 중 적어도 하나의 서브포션을 상기 선택된 레퍼런스 프레임의 적어도 일부에 대해 비교하도록 또한 구성되는, 멀티미디어 데이터 처리용 장치.
  20. 제 18 항에 있어서,
    상기 선택 수단은 상기 인코딩 메트릭에 적어도 부분적으로 기초하여 상기 레퍼런스 프레임을 선택하도록 구성되는, 멀티미디어 데이터 처리용 장치.
  21. 제 18 항에 있어서,
    상기 선택 수단은 상기 인코딩 메트릭에 적어도 부분적으로 기초하여 상기 레퍼런스 프레임을 선택하는, 멀티미디어 데이터 처리용 장치.
  22. 제 18 항에 있어서,
    상기 인코딩 메트릭은 인코딩된 데이터의 왜곡 및 인코딩된 데이터의 크기 중 적어도 하나에 기초하는, 멀티미디어 데이터 처리용 장치.
  23. 멀티미디어 데이터 처리용 장치에 있어서,
    프레임의 포션을 복수의 레퍼런스 프레임들에 대해 비교하도록 구성된 비교기 (comparator) 로서, 상기 프레임의 포션은 복수의 서브포션들을 포함하는, 상 기 비교기;
    상기 비교에 기초하여 상기 복수의 레퍼런스 프레임들로부터 하나의 레퍼런스 프레임을 선택하도록 구성되는 선택기 (selector); 및
    상기 선택된 레퍼런스 프레임에 기초하여 상기 서브포션들 중 적어도 하나의 서브포션을 비교하도록 구성되는 프로세서를 포함하는, 멀티미디어 데이터 처리용 장치.
  24. 제 23 항에 있어서,
    상기 선택기는 상기 레퍼런스 프레임들의 서브세트를 선택하도록 또한 구성되고,
    상기 프로세서는 상기 서브세트에 기초하여 상기 서브포션들 중 적어도 하나의 서브포션을 처리하도록 구성되는, 멀티미디어 데이터 처리용 장치.
  25. 제 24 항에 있어서,
    상기 프로세서는,
    상기 레퍼런스 프레임들의 서브세트 중 적어도 하나의 레퍼런스 프레임을 선택하고,
    상기 서브세트 중 적어도 하나의 레퍼런스 프레임에 적어도 부분적으로 기초하여 상기 서브포션들 중 적어도 하나의 서브포션을 처리하도록 또한 구성되는, 멀티미디어 데이터 처리용 장치.
  26. 제 24 항에 있어서,
    상기 복수의 레퍼런스 프레임들은 시간 배열을 정의하고,
    상기 레퍼런스 프레임들의 서브세트는 상기 시간 배열에서 적어도 2 개의 인접한 프레임들을 포함하는, 멀티미디어 데이터 처리용 장치.
  27. 제 23 항에 있어서,
    상기 포션은 매크로블록을 포함하고, 상기 서브포션들은 서브블록들을 포함하는, 멀티미디어 데이터 처리용 장치.
  28. 제 23 항에 있어서,
    상기 포션은 서브블록을 포함하고, 상기 서브포션들은 상기 서브블록의 서브블록들을 포함하는, 멀티미디어 데이터 처리용 장치.
  29. 제 23 항에 있어서,
    상기 선택기는 적어도 상기 프레임의 포션에 대해 인코딩 메트릭을 계산하도록 또한 구성되는, 멀티미디어 데이터 처리용 장치.
  30. 제 23 항에 있어서,
    상기 선택기는 상기 인코딩 메트릭에 적어도 부분적으로 기초하여 상기 레퍼 런스 프레임을 선택하도록 구성되는, 멀티미디어 데이터 처리용 장치.
  31. 제 23 항에 있어서,
    상기 선택기는 상기 인코딩 메트릭에 적어도 부분적으로 기초하여 상기 레퍼런스 프레임을 선택하도록 또한 구성되는, 멀티미디어 데이터 처리용 장치.
  32. 제 23 항에 있어서,
    상기 인코딩 메트릭은 인코딩된 데이터의 왜곡 및 인코딩된 데이터의 크기 중 적어도 하나에 기초하는, 멀티미디어 데이터 처리용 장치.
  33. 멀티미디어 데이터 프로세서로서,
    복수의 서브포션들을 포함한 프레임의 포션을 복수의 레퍼런스 프레임들에 대해 비교하고,
    상기 비교에 기초하여 상기 복수의 레퍼런스 프레임들로부터 하나의 레퍼런스 프레임을 선택하며,
    상기 선택된 레퍼런스 프레임에 기초하여 상기 서브포션들 중 적어도 하나의 서브포션을 처리하는 구성을 포함하는, 멀티미디어 데이터 프로세서.
  34. 멀티미디어 데이터를 처리하기 위한 명령들을 포함하는 머신 판독 가능 매체로서,
    상기 명령들은 실행시 머신으로 하여금,
    복수의 서브포션들을 포함한 프레임의 포션을 복수의 레퍼런스 프레임들에 대해 비교하게 하고,
    상기 비교에 기초하여 상기 복수의 레퍼런스 프레임들로부터 하나의 레퍼런스 프레임을 선택하게 하며,
    상기 선택된 레퍼런스 프레임에 기초하여 상기 서브포션들 중 적어도 하나의 서브포션을 처리하게 하는, 머신 판독 가능 매체.
KR1020097011363A 2006-11-02 2007-10-29 비디오 인코딩에 있어서 레퍼런스 프레임 탐색을 감소시키는 장치 및 방법 KR101184245B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/555,989 US8923393B2 (en) 2006-11-02 2006-11-02 Apparatus and method of reduced reference frame search in video encoding
US11/555,989 2006-11-02
PCT/US2007/082809 WO2008057819A2 (en) 2006-11-02 2007-10-29 Apparatus and method of reduced reference frame search in video encoding

Publications (2)

Publication Number Publication Date
KR20090085667A true KR20090085667A (ko) 2009-08-07
KR101184245B1 KR101184245B1 (ko) 2012-09-21

Family

ID=39365206

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097011363A KR101184245B1 (ko) 2006-11-02 2007-10-29 비디오 인코딩에 있어서 레퍼런스 프레임 탐색을 감소시키는 장치 및 방법

Country Status (10)

Country Link
US (1) US8923393B2 (ko)
EP (1) EP2084911A2 (ko)
JP (1) JP5259608B2 (ko)
KR (1) KR101184245B1 (ko)
CN (1) CN101529919A (ko)
BR (1) BRPI0717889A2 (ko)
CA (1) CA2666217A1 (ko)
RU (1) RU2404535C1 (ko)
TW (1) TW200838322A (ko)
WO (1) WO2008057819A2 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8861598B2 (en) * 2008-03-19 2014-10-14 Cisco Technology, Inc. Video compression using search techniques of long-term reference memory
US8326075B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video encoding using adaptive loop filter
US8385404B2 (en) 2008-09-11 2013-02-26 Google Inc. System and method for video encoding using constructed reference frame
US8619856B2 (en) * 2008-10-03 2013-12-31 Qualcomm Incorporated Video coding with large macroblocks
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
US8265155B2 (en) * 2009-01-05 2012-09-11 Electronics And Telecommunications Research Institute Method of block partition for H.264 inter prediction
US8233534B2 (en) * 2010-04-09 2012-07-31 Newport Media, Inc. Frame buffer compression and memory allocation in a video decoder
US8503528B2 (en) 2010-09-15 2013-08-06 Google Inc. System and method for encoding video using temporal filter
US9154799B2 (en) 2011-04-07 2015-10-06 Google Inc. Encoding and decoding motion via image segmentation
US8780971B1 (en) 2011-04-07 2014-07-15 Google, Inc. System and method of encoding using selectable loop filters
US8781004B1 (en) 2011-04-07 2014-07-15 Google Inc. System and method for encoding video using variable loop filter
US8638854B1 (en) 2011-04-07 2014-01-28 Google Inc. Apparatus and method for creating an alternate reference frame for video compression using maximal differences
US8780996B2 (en) 2011-04-07 2014-07-15 Google, Inc. System and method for encoding and decoding video data
US8885706B2 (en) 2011-09-16 2014-11-11 Google Inc. Apparatus and methodology for a video codec system with noise reduction capability
JP2015513717A (ja) 2012-02-10 2015-05-14 ナーラ、イブラヒム データ、マルチメディアおよびビデオの送信の更新システム
US9131073B1 (en) 2012-03-02 2015-09-08 Google Inc. Motion estimation aided noise reduction
WO2013162980A2 (en) 2012-04-23 2013-10-31 Google Inc. Managing multi-reference picture buffers for video data coding
US9609341B1 (en) 2012-04-23 2017-03-28 Google Inc. Video data encoding and decoding using reference picture lists
US9014266B1 (en) 2012-06-05 2015-04-21 Google Inc. Decimated sliding windows for multi-reference prediction in video coding
US9344729B1 (en) 2012-07-11 2016-05-17 Google Inc. Selective prediction signal filtering
US9866835B2 (en) * 2013-02-07 2018-01-09 Schlumberger Technology Corporation Borehole image compression
CN103200408B (zh) * 2013-04-23 2016-03-30 华录出版传媒有限公司 一种视频编解码方法
US9756331B1 (en) 2013-06-17 2017-09-05 Google Inc. Advance coded reference prediction
US10102613B2 (en) 2014-09-25 2018-10-16 Google Llc Frequency-domain denoising
WO2016176592A1 (en) * 2015-04-29 2016-11-03 Arris Enterprises Llc Reference picture selection for inter-prediction in video coding
CN116684610A (zh) * 2023-05-17 2023-09-01 北京百度网讯科技有限公司 确定长期参考帧的参考状态的方法、装置及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950014862B1 (ko) 1992-02-08 1995-12-16 삼성전자주식회사 움직임추정방법 및 그 장치
JP2003284091A (ja) 2002-03-25 2003-10-03 Toshiba Corp 動画像符号化方法及び動画像符号化装置
JP4841101B2 (ja) * 2002-12-02 2011-12-21 ソニー株式会社 動き予測補償方法及び動き予測補償装置
BR0317982A (pt) 2003-01-10 2005-12-06 Thomson Licensing Sa Rápida tomada de decisão de modo para codificação interquadros
KR100510137B1 (ko) * 2003-04-30 2005-08-26 삼성전자주식회사 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치
WO2005094083A1 (en) 2004-03-29 2005-10-06 Koninklijke Philips Electronics N.V. A video encoder and method of video encoding
WO2006001485A1 (ja) 2004-06-29 2006-01-05 Sony Corporation 動き予測補償方法及び動き予測補償装置

Also Published As

Publication number Publication date
US20080130755A1 (en) 2008-06-05
JP5259608B2 (ja) 2013-08-07
US8923393B2 (en) 2014-12-30
BRPI0717889A2 (pt) 2013-11-05
WO2008057819A3 (en) 2008-08-07
WO2008057819A2 (en) 2008-05-15
CA2666217A1 (en) 2008-05-15
TW200838322A (en) 2008-09-16
KR101184245B1 (ko) 2012-09-21
CN101529919A (zh) 2009-09-09
EP2084911A2 (en) 2009-08-05
JP2010509850A (ja) 2010-03-25
RU2404535C1 (ru) 2010-11-20

Similar Documents

Publication Publication Date Title
KR101184245B1 (ko) 비디오 인코딩에 있어서 레퍼런스 프레임 탐색을 감소시키는 장치 및 방법
RU2402885C2 (ru) Классификация контента для обработки мультимедийных данных
US8331448B2 (en) Systems and methods for efficient spatial intra predictabilty determination (or assessment)
US8300696B2 (en) Transcoding for systems operating under plural video coding specifications
US8654848B2 (en) Method and apparatus for shot detection in video streaming
EP2002662B1 (en) Apparatus and method of enhanced frame interpolation in video compression
US8009734B2 (en) Method and/or apparatus for reducing the complexity of H.264 B-frame encoding using selective reconstruction
US8437397B2 (en) Block information adjustment techniques to reduce artifacts in interpolated video frames
US20100166073A1 (en) Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors
US20030179826A1 (en) B picture mode determining method and apparatus in video coding system
US20090154816A1 (en) Adaptive group of pictures (agop) structure determination
US20150172687A1 (en) Multiple-candidate motion estimation with advanced spatial filtering of differential motion vectors
WO2010135609A1 (en) Adaptive picture type decision for video coding
JP2007503776A (ja) インター符号化に使われる参照画像数を最小化するための方法および装置
KR20090046812A (ko) 비디오 압축 방법
US20090067494A1 (en) Enhancing the coding of video by post multi-modal coding
KR100502138B1 (ko) 이웃하는 움직임 벡터를 이용한 가이디드 탐색방법
Lei et al. Direct migration motion estimation and mode decision to decoder for a low-complexity decoder Wyner–Ziv video coding
Lonetti et al. Temporal video transcoding for multimedia services

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20101224

Effective date: 20120723

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee