KR101155767B1 - 비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드선택 - Google Patents

비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드선택 Download PDF

Info

Publication number
KR101155767B1
KR101155767B1 KR1020050055777A KR20050055777A KR101155767B1 KR 101155767 B1 KR101155767 B1 KR 101155767B1 KR 1020050055777 A KR1020050055777 A KR 1020050055777A KR 20050055777 A KR20050055777 A KR 20050055777A KR 101155767 B1 KR101155767 B1 KR 101155767B1
Authority
KR
South Korea
Prior art keywords
delete delete
prediction mode
block
prediction
encoding
Prior art date
Application number
KR1020050055777A
Other languages
English (en)
Other versions
KR20060092813A (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 KR20060092813A publication Critical patent/KR20060092813A/ko
Application granted granted Critical
Publication of KR101155767B1 publication Critical patent/KR101155767B1/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
    • 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
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/136Incoming video signal characteristics or properties
    • 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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

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

비디오 프레임의 매크로블록에 대한 인코딩 유형 선택과 예측 모드(들) 선택을 결정하는 방법이 제공된다. 몇몇 실시예들에서, 일반 방법은 1) 인코딩 유형 선택 알고리즘을 사용하여(계산하기에 용이한 매크로블록의 속성에 기초하여) 매크로블록에 대하여 초기 고려되는 인코딩 유형(16×16 또는 4×4)을 선택하고, 2) 16×16 인코딩 유형이 단계 1에서 선택되는 경우, 종래 방법을 사용하여 매크로블록 상에 사용될 수 있는 4개의 16×16 예측 모드 또는 왜곡 임계치에 기초하는 개선된 16×16 예측 모드 검색 알고리즘을 고려하며, 3) 4×4 인코딩 유형이 단계 1에서 선택된 경우, 종래 방법을 사용하여 매크로블록의 16개의 4×4 블록 각각에 사용될 4×4 예측 모드 또는 예측 모드들 간의 위치 관계에 기초하는 개선된 4×4 예측 모드 검색 알고리즘을 선택한다.
예측 모드, 매크로블록, 인코딩 유형, 왜곡 임계치, 비디오 데이터

Description

비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드 선택{SELECTING ENCODING TYPES AND PREDICTIVE MODES FOR ENCODING VIDEO DATA}
도 1은 매크로블록 화소에 대한 인코딩 유형과 예측 모드(들)를 선택하는 일반적인 방법의 흐름도.
도 2는 매크로블록 화소에 대한 인코딩 유형을 선택하는 인코딩 유형 선택 방법의 흐름도.
도 3은 16×16 매크로블록의 화소의 예측 모드를 선택하는 16×16 예측 모드 검색 방법의 흐름도.
도 4는 4×4 어레이의 9개의 예측 모드 간의 논리/위치 관계를 나타내는 개념도.
도 5는 4×4 어레이의 매크로블록에 대한 예측 모드를 선택하는 4×4 예측 모드 검색 방법의 흐름도.
도 6은 4×4 어레이의 매크로블록에 대한 예측 모드를 선택하는 다른 4×4 예측 모드 검색 방법의 흐름도.
도 7은 본 발명의 몇몇 실시예들이 구현되는 컴퓨터 시스템을 제시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
710 : 프로세서
715 : 시스템 메모리
720 : ROM
725 : 스토리지
730 : 입력 장치
735 : 출력 장치
765 : 네트워크
본 출원은 2004년 6월 27일에 출원되고 발명의 명칭이 "Encoding and Decoding Images"인 미국특허 가출원번호 제60/583,447호를 우선권으로 주장한다.
본 발명은 비디오 데이터를 인코딩하기 위한 인코딩 유형과 예측 모드를 선택하는 것에 관한 것이다.
비디오 스트림은 각 프레임이 다수의 매크로블록으로 이루어지는 일련의 비디오 프레임으로 이루어진다. 각 매크로블록은 통상 16×16 어레이의 화소이지만, 다른 크기의 매크로블록도 또한 가능하다. 비디오 코덱(압축기-복원기)은 비디오 데이터 스트림을 인코딩/압축 및 디코딩/복원하여 보다 빠른 전송과 보다 작은 스토리지 공간으로 스트림의 크기를 감소하도록 설계된 압축 알고리즘의 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어 조합의 구현이다. 손실이 있지만, 비디오 코덱은 비디오 스트림의 이진 데이터를 압축하면서 비디오 품질을 유지하려 시도한다. 널리 사용되는 비디오 코덱의 예는 WMV, RealVideo뿐만 아니라 MPEG-2, MPEG-4, H.261, H.263, 및 H.264D와 같은 압축 표준의 구현예를 포함한다.
H.264 압축 표준하에서, 비디오 프레임의 매크로블록은 16×16 화소 어레이로서 내부 인코딩(intra encoding)될 수 있되, 어레이의 화소값은 이전에 인코딩된 매크로블록으로부터 계산되는 값을 사용하여 예측된다. 16×16 매크로블록은 또한 16개의 4×4 화소 어레이로서 내부 인코딩될 수 있으며, 이 경우 각각의 4×4 어레이에서의 화소 값은 이전에 인코딩된 4×4 어레이(루마 블록(luma block))로부터 계산된 값을 사용하여 예측된다. 16×16 어레이에 대하여 4개의 내부 예측 모드가 가능하고 4×4 어레이(루마 블록)에 있어서는 9개의 내부 예측 모드가 가능하게 된다.
이와 같이, 매크로블록을 인코딩할 때, 두 개의 결정(선택)이 행해진다: 1) 매크로블록이 하나의 16×16 어레이로서 인코딩되어야 하는지(여기서는, 16×16 인코딩이라고 함) 또는 16개의 4×4 어레이로서 인코딩되어야 하는지(여기서는, 4×4 인코딩이라고 함) 여부, 및 2) 매크로블록을 인코딩하는데 사용될 예측 모드(들). 예를 들면, 매크로블록이 16×16 어레이로서 인코딩되어야 한다고 결정되는 경우, 16×16 어레이에 있어서 4개의 예측 모드 중 어느 것이 사용되어야 하는지가 또한 결정되어야 한다. 16개의 4×4 어레이로서 인코딩되어야 한다고 결정되는 경우, 16개의 4×4 어레이에 대하여, 4×4 어레이에 대한 9개의 예측 모드 중 어느 것이 사용되어야 하는지가 또한 결정되어야 한다. 단계 1은 여기서 인코딩 유형 선택이라 하고, 단계 2는 예측 모드 선택이라고 한다.
인코딩 유형 선택과 예측 모드 선택은 비용 함수를 사용하여 행해진다. 예를 들면, 비용 함수는 보다 낮은 비용을 갖는 인코딩 유형(16×16 또는 4×4 인코딩)이 선택되는 경우에 하나의 16×16 어레이 또는 16개의 4×4 어레이로서 인코딩되어야 하는지를 결정하는데 통상 사용된다. 비용은 통상적으로 왜곡 또는 왜곡의 가중 평균과 예측 모드에 의해 생성된 비트수의 추정치의 합과 동일하되, 왜곡 및/또는 비트수의 증가는 비용을 증가시킨다. 왜곡은 원형 화소값과 예측(또는 인코딩된) 값 간의 차이를 반영하고 다양한 방식으로 측정될 수 있다. 예를 들면, 왜곡은 원형 화소값과 예측(인코딩된) 값 간의 차이의 절대값의 합으로서 측정될 수 있다.
매크로블록에 대하여 최적 인코딩 유형(16×16 또는 4×4 인코딩)과 최적 예측 모드(들)를 선택하는 과도 검색(exhaustive search) 접근법은, 매크로블록 내의 16개의 4×4 블록에 대하여 4개의 16×16 예측 모드 전체와 9개의 4×4 예측 모드의 전체 조합의 비용을 결정하되, 최저 비용을 제공하는 4×4 예측 모드의 특정 조합 또는 16×16 예측 모드가 선택되는 것에 관련된다. 각 매크로블록에 있어서, 과도 검색 접근법은 4×4 예측 모드의 9^16개의 상이한 조합의 고려를 요구하기 때문에, 과도 검색 접근법은 실제로는 실행불가능하게 된다.
이에 따라, 매크로블록에 대한 인코딩 유형과 예측 모드(들)를 결정하기 위해 다음 연산이 통상 수행된다:
1) 4개의 가능한 16×16개의 예측 모드 전체 비용을 계산.
2) 16개의 4×4 블록 각각에 대하여, 최저 비용을 갖는 예측 모드를 (9개의 예측 모드 중에서) 선택한 후, 결과적인 조합의 총 비용(즉, 16개의 결정된 비용의 합산 비용)을 계산.
3) 단계 1에서 결정된 비용과 단계 2에서 결정된 비용을 비교하여 최소값을 선택. 이러한 선택은 인코딩 유형 선택과 예측 모드(들) 선택을 모두 제공한다.
그러나, 종래의 접근법은, 또한, 4×4 예측 모드의 9×16개의 상이한 조합에 대한 비용과 4개의 16×16 예측 모드에 대한 비용의 합을 결정하는 것과 관련된다.
몇몇 실시예들에서, 비디오 프레임의 매크로블록에 대한 인코딩 유형 선택과 예측 모드(들) 선택을 결정하는 보다 효율적인 방법이 제공된다. 몇몇 실시예들에서, 일반 방법은 1) 인코딩 유형 선택 알고리즘을 사용하여(계산하기에 용이한 매크로블록의 속성에 기초하여) 매크로블록에 대하여 초기 고려되는 인코딩 유형(16×16 또는 4×4)을 선택하고, 2) 16×16 인코딩 유형이 단계 1에서 선택되는 경우, 종래 방법을 사용하여 매크로블록 상에 사용될 수 있는 4개의 16×16 예측 모드 또는 왜곡 임계치에 기초하는 개선된 16×16 예측 모드 검색 알고리즘을 고려하며, 3) 4×4 인코딩 유형이 단계 1에서 선택된 경우, 종래 방법을 사용하여 매크로블록의 16개의 4×4 블록 각각에 사용될 4×4 예측 모드 또는 예측 모드들 간의 위치 관계에 기초하는 개선된 4×4 예측 모드 검색 알고리즘을 선택한다.
2004년 6월 27일에 출원되어 발명의 명칭이 "Encoding and Decoding Images"인 미국특허 가출원번호 제60/583,447호는 개시 내용이 본원에 참조되어 있다.
후술하는 설명에서, 수많은 세부사항을 예시로서 설명한다. 그러나, 당업자는 본 발명이 이들 특정 세부상의 사용없이 실시될 수 있음을 인식할 것이다. 다른 경우, 공지된 구조 및 장치는 본 발명을 불필요한 세부사항으로 모호하게 하지 않기 위해서 블록도 형태로 도시된다.
몇몇 실시예들에서, 비디오 프레임 내의 매크로블록에 대하여 인코딩 유형 선택과 예측 모드(들) 선택을 결정하는 보다 효율적인 방법이 제공된다. 몇몇 실시예들에서, 일반 검색 알고리즘은 다음 연산을 수행한다:
1) 인코딩 유형 선택 알고리즘을 사용하여(계산하기에 용이한 매크로블록의 속성에 기초하여) 매크로블록에 대하여 초기 고려되는 인코딩 유형(16×16 또는 4×4)을 선택. 이 인코딩 유형 선택 알고리즘은 섹션 I에서 후술한다.
2) 16×16 인코딩 유형이 단계 1에서 선택된 경우, 종래 방법을 사용하여 매크로블록 상에 사용될 수 있는 4개의 16×16 예측 모드 또는 왜곡 임계치에 기초하는 개선된 16×16 예측 모드 검색 알고리즘을 고려. 16×16 예측 모드 검색 알고리즘의 하나의 특정 상황으로, 4×4 인코딩 유형이 사용될 수 있다. 이 단계는 섹션 II에서 후술한다.
3) 4×4 인코딩 유형이 단계 1에서 선택된 경우, 종래 방법을 사용하여 매크로블록의 16개의 4×4 블록 각각에 사용될 4×4 예측 모드 또는 (섹션 III에서 후술하는 바와 같이)예측 모드들 간의 위치 관계에 기초하는 개선된 4×4 예측 모드 검색 알고리즘을 선택.
검색 알고리즘의 단계 1에서, 인코딩 유형 선택 알고리즘이 초기 고려에서 16×16 인코딩 유형을 선택한 경우, 궁극적으로 선택되는 인코딩 유형은 16×16 인코딩 유형이거나 4×4 인코딩 유형일 수 있다. 반면에, 인코딩 유형 선택 알고리즘이 초기 고려에서 4×4 인코딩 유형을 선택한 경우, 4×4 인코딩 유형은 매크로블록에 대하여 인코딩 유형으로서 유효하게 선택된다. 16×16 인코딩 유형이 초기 고려에서 선택된 경우, 종래 방법 또는 개선된 16×16 예측 모드 검색 알고리즘이 그 후 매크로블록에 대한 예측 모드(들)를 결정하는데 사용된다. 4×4 인코딩 유형이 초기 고려에서 선택되는 경우, 종래 방법 또는 개선된 4×4 예측 모드 검색 알고리즘이 그 후 매크로블록에 대한 예측 모드(들)를 결정하는데 사용된다. 이와 같이, 검색 알고리즘에 의해 초기 고려에서 어떤 인코딩 유형이 선택되는지에 따라, (종래의 또는 개선된) 상이한 검색 알고리즘이 예측 모드를 결정하는데 사용된다.
도 1은 매크로블록 화소에 대한 인코딩 유형과 예측 모드(들)를 선택하는 일반적인 방법(100)의 흐름도이다. 몇몇 실시예들에서, 일반적인 방법(100)은 비디오 프레임을 인코딩하도록 구성된 소프트웨어 및/또는 하드웨어로 구현된다. 이 방법은 (102에서)매크로블록 화소를 수신하는 경우에 개시한다. 몇몇 실시예들에서, 매크로블록은 16×16 어레이의 화소이지만, 다른 실시예들에서는, 매크로블록은 상이한 크기의 화소 어레이이다. 몇몇 실시예들에서, 매크로블록은 4개의 8×8 어레이 또는 16개의 4×4 어레이로 분할되지만, 다른 실시예들에서는, 매크로블록 은 상이한 크기의 블록/어레이로 분할된다.
그 후, 이 방법은 (105에서) (도 2를 참조하여 후술하는) 인코딩 유형 선택 방법(200)을 사용하여 매크로블록에서 초기 고려되는 인코딩 유형(16×16 또는 4×4)을 선택한다. 그 후, 이 방법은 (110에서) 4×4 인코딩 유형이 선택되었는지를 판정한다. 그러한 경우, 이 방법은 (115에서) 종래 방법, (도 5를 참조하여 후술하는)개선된 4×4 예측 모드 검색 방법(500), 또는 (도 6을 참조하여 후술하는) 다른 4×4 예측 모드 검색 방법(600)을 사용하여 매크로블록의 16개의 4×4 블록 각각에 대하여 예측 모드를 선택한다.
이 방법이 4×4 인코딩 유형이 선택되지 않았음을 판정하는 경우(110에서, 아니오), 그 후 (120에서)(도 3을 참조하여 후술하는 바와 같이, 종래 방법 또는 개선된 16×16 예측 모드 검색 방법(300)을 사용하여) 16×16 예측 모드 또는 4×4 인코딩 유형을 선택한다. 그 후, 이 방법은 (120에서) 4×4 인코딩 유형이 선택되었는지를 판정한다(125에서). 그러한 경우, 이 방법은 매크로블록의 16개의 4×4 블록 각각에 대한 예측 모드가 선택되는 단계 115로 진행한다. 이 방법이 4×4 인코딩 유형이 선택되지 않았음을 판정하는 경우(125에서, 아니오), 이는 16×16 예측 모드가 선택되었음을 의미한다. 그 후, 이 방법은 종료한다.
섹션 I: 인코딩 유형 선택 알고리즘
본 섹션은 일반 검색 알고리즘의 단계 1의 인코딩 유형 선택 알고리즘을 설명한다. 이 인코딩 유형 선택 알고리즘은 매크로블록에 대하여 초기 고려되는 인코딩 유형(16×16 또는 4×4)을 선택하고 이에 따라 어느 예측 모드(16×16 모드 또는 4×4 모드)가 매크로블록에 대하여 초기 고려되는지를 결정한다. 인코딩 유형 선택 알고리즘은 결정하기에 용이한 매크로블록의 속성을 사용한다.
인코딩 유형 선택 알고리즘은 다음 연산을 수행한다.
1) 매크로블록은 4개의 8×8 블록으로 나누어진다.
2) 각각의 8×8 블록에 대한 분산이 계산되고 소정 임계치와 비교된다. 예를 들면, 소정 임계치는 매크로블록이 포함되는 프레임 내의 모든 8×8 블록의 평균 분산과 동일하게 설정될 수 있다. 8×8 블록의 분산은, 예를 들면, a) 블록 내의 모든 화소값의 평균을 결정, b) 블록 내의 각 화소에 대하여 (화소값 - 평균)^2를 결정, 및 c) 단계 b에서 결정된 모든 값을 합산(즉, 블록 내의 모든 화소에 대하여 결정된 값 전체를 합산)함으로써 결정될 수 있다.
3) (매크로블록이 하나의 16×16 블록 또는 16개의 4×4 블록으로서 인코딩되어야 하는지를 결정하는데 사용되는 속성인)소정 임계치보다 적은 분산을 갖는 매크로블록 내의 8×8 블록의 개수를 결정.
4) 4개의 8×8 블록이 모두 소정 임계치 이하의 분산을 갖는 경우, 초기 고려에서 16×16 인코딩 유형이 선택된다. 16×16 인코딩 유형이 초기 고려에서 선택되는 경우, 궁극적으로 선택되는 인코딩 유형은 16×16 인코딩 유형이거나 4×4 인코딩 유형일 수 있다. 매크로블록 상에서 사용될 16×16 예측 모드는 종래 방법 또는 (섹션 II에서 후술하는 바와 같은) 개선된 16×16 예측 모드 검색 알고리즘을 사용하여 선택될 수 있다.
5) 4개의 8×8 블록 중 임의의 것이 소정 임계치보다 큰 분산을 갖는 경우, 4×4 인코딩 유형이 선택된다. 이에 의해, 매크로블록의 16개의 4×4 블록 각각에 사용될 4×4 예측 모드는 그 후 종래 방법 또는 (섹션 III에서 후술하는 바와 같은) 개선된 4×4 예측 모드 검색 알고리즘을 사용하여 결정될 수 있다.
인코딩 프로세스의 양자화 단계에서 사용되는 양자화 매개변수 값이 비교적 큰 경우(예를 들면, 34 이상), 인코딩 유형 선택 알고리즘의 연산은 상기 설명에서 약간 벗어나게 된다. 이들 실시예들에서, 소정 임계치는 양자화 매개변수 값(QP)에 따른 인자에 의해 스케일되기때문에, 양자화 매개변수 값이 증가함에 따라 소정 임계치가 증가하게 된다. 몇몇 실시예들에서, 스케일링 인자(scaling factor)는 (1+k(QP-34)) 형태의 스케일링 식으로 결정되며, 여기서, k는 상수이다. 다른 실시예들에서, 스케일링 인자는 다른 스케일링 식에 의해 결정된다. 그 후, 소정 임계치는 결정된 스케일링 인자와 승산되어 스케일된 임계치를 생성한다.
이들 실시예들에서, 4개의 8×8 블록 중 임의의 것이 스케일된 임계치보다 큰 분산을 갖는 경우, 매크로블록은 16개의 4×4 블록으로서 인코딩된다. 이러한 선택은 종래 방법 또는 (개선된 4×4 예측 모드 검색 알고리즘과 같은) 본 발명의 방법을 사용하여 행해질 수 있다. 그러나, 매크로블록의 4개의 8×8 블록 모두가 스케일된 임계치보다 적은 분산을 갖는 경우에는, 매크로블록은 하나의 16×16 블록 또는 16개의 4×4 블록으로서 인코딩될 수 있다. 매크로블록 상에서 사용될 16×16 예측 모드는 그 후 종래 방법 또는 (섹션 III에서 후술하는 바와 같은) 개선된 16×16 예측 모드 검색 알고리즘을 사용하여 선택될 수 있다. 4×4 인코딩 유형이 선택된 16×16 예측 모드에 대하여 선택된 경우에는, 4×4 예측 모드가 종래 의 방법 또는 (개선된 4×4 예측 모드 선택 알고리즘과 같은) 본 발명의 방법을 사용하여 선택될 수 있다.
도 2는 매크로블록 화소에 대한 인코딩 유형을 선택하는 인코딩 유형 선택 방법(200)의 흐름도이다. 몇몇 실시예들에서, 방법(200)은 비디오 프레임을 인코딩하도록 구성된 소프트웨어 및/또는 하드웨어로 구현된다. 몇몇 실시예들에서, 인코딩 유형 선택 방법(200)은 도 1의 단계 105를 포함한다. 방법(200)은 (205에서)매크로블록에 대한 임계치 분산을 결정함으로써 개시한다. 몇몇 실시예들에서, 임계치 분산은 (후술한 바와 같이)매크로블록이 포함되는 프레임 내에서 모든 8×8 블록의 평균 분산과 동일하게 설정된다. 다른 실시예들에서, 인코딩 프로세스의 양자화 단계에서 사용된 양자화 매개변수 값이 비교적 큰 경우, 결정된 임계치 분산은 (상술한 바와 같이)양자화 매개변수 값에 의존하는 인자에 의해 스케일된다.
그 후, 이 방법은 (210에서) 4개의 8×8 블록으로 매크로블록을 나누고, (215에서) 4개의 8×8 블록 각각에 대한 분산을 결정한다. 그 후, 이 방법은 (220에서) 4개의 8×8 블록의 모든 분산이 임계치 분산보다 적은 지를 판정한다. 그러한 경우, 이 방법은 (225에서) 매크로블록에 대하여 16×16 인코딩 유형을 선택하여 종료한다. 그렇지 않은 경우, 이 방법은 (230에서) 매크로블록에 대하여 4×4 인코딩 유형을 선택하여 종료한다.
섹션 II: 16×16 예측 모드 검색 알고리즘
일반 검색 알고리즘의 단계 1 후에, 16×16 인코딩 유형이 초기 고려에서 선택된 경우, 16×16 인코딩 유형 예측 모드가 검사된다. 본 섹션은 일반 검색 알고 리즘의 단계 2를 설명한다. H.264 코덱 표준하에서, DC, V(수직), H(수평), 및 P(평면)로부터 선택하는 4개의 16×16 내부 예측 모드가 가능하다. 몇몇 실시예들에서, 종래 방법은 (예를 들면, 4개의 16×16 예측 모드 각각의 비용을 결정하여 최저 비용을 갖는 모드를 선택함으로써)16×16 예측 모드를 선택하는데 사용된다. 다른 실시예들에서, 개선된 16×16 예측 모드 선택 알고리즘은 예측 모드에서 야기된 왜곡에 기초하여 매크로블록에 대한 16×16 예측 모드를 고려(즉, 검사)하는데 사용된다.
몇몇 실시예들에서, 16×16 예측 모드 검색 알고리즘은 종래 방법을 사용하여 현재 처리되는 매크로블록에 적용되는 바와 같이 특정 예측 모드에 의해 야기된 왜곡을 결정한다. 종래 방법에서, 이 왜곡은 1) 인접하는 이전에 인코딩된 매크로블록으로부터 화소값을 검색, 2) 검색된 화소값으로부터 새로운 값을 유도, 3) 유도된 값을 사용하여 현재 처리되는 매크로블록에 대한 예측 값을 계산, 및 4) 현재 처리되는 매크로블록의 원형 화소값과 계산된 예측값 간의 왜곡을 결정함으로써 결정된다. 그러나, 종래 방법을 사용한 왜곡의 결정은 시간 소모적이다.
다른 실시예들에서, 16×16 예측 모드 검색 알고리즘은 보다 빠른 추정 방법을 사용하여 현재 처리되는 매크로블록에 인가되는 적용되는 바와 같이 특정 예측 모드에 의해 야기된 왜곡을 결정한다. 이 추정 방법은 특정 예측 모드에 의해 생성될 수 있는 예측값의 추정치(에뮬레이션)을 제공한 후, 이 추정된 예측값의 왜곡을 결정한다.
추정 방법하에서, 경계에서의 현재 처리되는 매크로블록의 화소값이 주변 매 크로블록으로부터 인접한 화소값과 유사하다고 가정하면, 예측값은 현재 처리되는 매크로블록 자체로부터의 화소값을 사용함으로써 결정된다. 추정 방법을 사용한 왜곡의 결정은, 현재 처리되는 매크로블록으로부터의 화소값이 다른 매크로블록으로부터의 화소값 대신에 사용되어 검색 시간을 감소시키기 때문에, 덜 시간 소모적이다. 추정 방법의 사용은 정확성을 덜 손실하면서 왜곡 값을 결정하는데 필요한 시간을 상당히 감소시킬 수 있다.
몇몇 실시예들에서, 추정 방법에 대한 의사 코드는 다음과 같다:
choose16×16mode()
{
step 1:
// DC 예측
pred= 현재 매크로블록의 좌측열과 최상부 행에서의 화소 평균
foreach 4×4 block
{
SAD_DC = sad(4×4 block, pred);
if(SAD_DC>T)
{
bail and goto step 2;
}
}
choose 16×16 DC mode and return
step 2:
// 수직 예측
foreach 4×4 block
{
SAD_V = 0;
foreach column in the 4×4 block
{
pred = 현재 매크로블록에서 이 열의 최상부 행에서의 화소값
SAD_V += sad(4×4 block column, pred);
}
SAD_V >>= 4;
if(SAD_V>T)
{
bail and goto step3;
}
}
choose 16×16 V and return
step 3:
// 수평 예측
foreach 4×4 block
{
SAD_H = 0;
foreach row in the 4×4 block
{
pred = 현재 매크로블록에서 이 행의 좌측 열에서의 화소값
SAD_H += sad(4×4 block row, pred);
}
SAD_H >>= 4;
if(SAD_H>T)
{
choose 16×16 planar and 4×4 modes and return
}
}
choose 16×16 H and return
}
특정 예측 모드의 왜곡이 계산되는 방식에 관계없이, 16×16 예측 모드 검색 알고리즘은 다음 연산을 수행한다:
1) 16×16 DC 예측 모드를 검사:
a) 16×16 DC 예측 모드에 의해 매크로블록의 각각의 4×4 블록에서 야기되는 왜곡을 결정.
b) 각 4×4 블록에서의 왜곡이 소정 임계치보다 적은 경우, 16×16 DC 예측 모드가 이 매크로블록에 대한 예측 모드로서 선택되고, 16×16 예측 모드 선택 알고리즘이 종료한다.
c) 임의의 4×4 블록에서의 왜곡이 소정 임계치보다 큰 경우, 16×16 예측 모드 검색 알고리즘은 단계 2로 진행한다.
2) 16×16 V 예측 모드를 검사:
a) 16×16 V 예측 모드에 의해 매크로블록의 각각의 4×4 블록에서 야기되는 왜곡을 결정.
b) 각 4×4 블록에서의 왜곡이 소정 임계치보다 적은 경우, 16×16 V 예측 모드가 이 매크로블록에 대한 예측 모드로서 선택되고, 16×16 예측 모드 선택 알고리즘이 종료한다.
c) 임의의 4×4 블록에서의 왜곡이 소정 임계치보다 큰 경우, 16×16 예측 모드 검색 알고리즘은 단계 3으로 진행한다.
3) 16×16 H 예측 모드를 검사:
a) 16×16 H 예측 모드에 의해 매크로블록의 각각의 4×4 블록에서 야기되는 왜곡을 결정.
b) 각 4×4 블록에서의 왜곡이 소정 임계치보다 적은 경우, 16×16 H 예측 모드가 이 매크로블록에 대한 예측 모드로서 선택되고, 16×16 예측 모드 선택 알고리즘이 종료한다.
c) 임의의 4×4 블록에서의 왜곡이 소정 임계치보다 큰 경우, 16×16 예측 모드 검색 알고리즘은 16×16 P 예측 모드와 4×4 인코딩 유형을 고려한다. 몇몇 실시예들에서, 두 개의 상술한 옵션 사이에서 선택은 (섹션 III에서 후술하는)4×4 예측 모드 검색 알고리즘의 사용에 의해 용이하게 된다. 다른 실시예들에서, 두 개의 상술한 옵션 사이에서 선택은 종래 방법을 사용하여(예를 들면, 16×16 P 예측 모드의 비용과 4×4 인코딩 유형을 사용함으로써 발생하는 최저 비용을 결정하고 최저 비용을 갖는 옵션을 선택함으로써) 행해진다.
도 3은 16×16 매크로블록의 화소의 예측 모드를 선택하기 위한 16×16 예측 모드 선택 방법(300)의 흐름도이다. 몇몇 실시예들에서, 방법(300)은 비디오 프레임을 인코딩하도록 구성된 소프트웨어 및/또는 하드웨어로 구현된다. 몇몇 실시예들에서, 인코딩 유형 선택 방법(300)은 도 1의 단계 120을 포함한다. 몇몇 실시예들에서, 16×16 예측 모드 검색 방법은 종래 방법 또는 (후술하는 바와 같이)특정 예측 모드에 의해 야기되는 매크로블록 내의 4×4 블록의 왜곡을 결정하는 개선된 방법을 사용한다.
이 방법(300)은 (305에서)16×16 DC 예측 모드에 의해 매크로블록의 16개의 4×4 블록 각각에서 야기된 왜곡을 결정함으로써 개시한다. 그 후, 이 방법은 (310에서)16×16 DC 예측 모드에 의해 야기된 모든 4×4 블록에서의 왜곡이 소정 임계치 왜곡보다 적은지를 판정한다. 그러한 경우, (315에서)16×16 DC 예측 모드가 매크로블록에 대한 예측 모드로서 선택되어 방법이 종료한다.
방법(300)이 16×16 DC 예측 모드에 의해 야기된 4×4 블록의 임의의 것에서 의 왜곡이 소정 임계치 왜곡보다 적지 않다고 판정하는 경우(310에서, 아니오), 이 방법은 (320에서) 16×16 V 예측 모드에 의해 매크로블록의 16개의 4×4 블록 각각에서 야기된 왜곡을 결정한다. 그 후, 이 방법은 (325에서)16×16 V 예측 모드에 의해 야기된 모든 4×4 블록에서의 왜곡이 소정 임계치 왜곡보다 적은지를 판정한다. 그러한 경우, (330에서)16×16 V 예측 모드는 매크로블록에 대한 예측 모드로서 선택되어 방법이 종료한다.
방법(300)이 16×16 V 예측 모드에 의해 야기된 4×4 블록의 임의의 것에서의 왜곡이 소정 임계치 왜곡보다 적지 않다고 판정하는 경우(325에서, 아니오), 이 방법은 (335에서) 16×16 H 예측 모드에 의해 매크로블록의 16개의 4×4 블록 각각에서 야기된 왜곡을 결정한다. 그 후, 이 방법은 (340에서)16×16 H 예측 모드에 의해 야기된 모든 4×4 블록에서의 왜곡이 소정 임계치 왜곡보다 적은지를 판정한다. 그러한 경우, (345에서)16×16 H 예측 모드는 매크로블록에 대한 예측 모드로서 선택되어 방법이 종료한다.
방법(300)이 16×16 H 예측 모드에 의해 야기된 4×4 블록의 임의의 것에서의 왜곡이 소정 임계치 왜곡보다 적지 않다고 판정하는 경우(340에서, 아니오), 이 방법은 (350에서) 매크로블록에 대한 예측 모드로서 16×16 P 예측 모드를 설정 또는 매크로블록에 대하여 4×4 인코딩 유형을 설정하는 것 사이에서 선택한다. 몇몇 실시예들에서, 두 개의 상술한 옵션 간의 선택은 (도 5를 참조하여 후술하는) 4×4 예측 모드 검색 방법(500)의 사용에 의해 용이하게 된다. 다른 실시예들에서, 두 개의 상술한 옵션의 선택은 (상술한 바와 같은) 종래 방법을 사용하여 행해진 다. 그 후, 이 방법은 종료한다.
섹션 III: 16×16 예측 모드 검색 알고리즘
일반 검색 알고리즘의 단계 1 후에, 4×4 인코딩 유형이 초기 고려에서 선택된 경우, 4×4 인코딩 유형 예측 모드가 매크로블록의 16개의 4×4 블록 각각에 대하여 선택된다. 본 섹션은 일반 검색 알고리즘의 단계 3을 설명한다. 몇몇 실시예들에서, 종래 방법은 (예를 들면, 9개의 예측 모드 각각의 비용을 결정하여 최저 비용을 갖는 모드를 선택함으로써)4×4 예측 모드를 선택하는데 사용된다. 다른 실시예들에서, 개선된 4×4 예측 모드 선택 알고리즘은 4×4 블록에 대한 4×4 예측 모드를 선택하는데 사용된다.
상술한 바와 같이, 비디오 스트림은 일련의 비디오 프레임으로 이루어지며, 여기서 각 프레임은 다수의 매크로블록으로 이루어진다. 매크로블록은 통상 (다른 크기의 매크로블록도 또한 가능하지만)16×16 어레이의 화소이며, (4×4 화소 어레이의 분할과 같은)분할로 나누어진다. H.264 코덱 표준하에서, 프레임을 내부 인코딩하는 경우, 4×4 어레이를 인코딩하는 9개의 서로 다른 방식이 있다(즉, 9개의 내부 4×4예측 모드가 있다). 9개의 모드는,
0. Intra_4×4_수직
1. Intra_4×4_수평
2. Intra_4×4_DC
3. Intra_4×4_대각_하향_좌측
4. Intra_4×4_대각_하향_우측
5. Intra_4×4_수직_우측
6. Intra_4×4_수평_하측
7. Intra_4×4_수직_좌측
8. Intra_4×4_수평_상측
각각의 4×4 어레이는 단지 하나의 예측 모드에서만 인코딩된다. 통상, 최저 비용이 되는 예측 모드는 선택될 수 있다. 비용은 통상 왜곡(여기서, 왜곡은 원형 화소값과 인코딩된 예측값 간의 차이를 반영) 또는 왜곡의 가중치 평균 및 예측 모드에 의해 생성된 비트수(여기서, 왜곡의 증가 및/또는 비트수는 비용을 증가시킨다)와 동일하다. 모든 9개 예측 모드 중에서 과도 검색이 최저 비용을 갖는 최적 예측 모드(선택 예측 모드)를 결정하도록 수행될 수 있다. 그러나, 통상, 모든 9개의 예측 모드 중에서 과도 검색 은 효율적이지 않다(훨씬 많은 시간과 처리 자원을 소비).
몇몇 실시예들에서, 화소 어레이에 대한 예측 모드를 결정하는 보다 효율적인 방법이 사용된다. 몇몇 실시예들에서, 화소 어레이에 대한 예측 모드를 결정할 때 감소된 개수의 모드 수를 고려하는 검색 알고리즘이 사용된다. 이 검색 알고리즘은 보다 효율적이며 상대적으로 정확성 손실이 적게 초래된다.
이 검색 알고리즘은 4×4 어레이의 9개의 가능한 예측 모드들 간의 논리/위치 관계에 기초한다. 도 4는 4×4 어레이의 9개의 예측 모드들 간의 논리/위치 관계를 나타내는 개념도를 나타낸다. 도 4에서 도시한 바와 같이, 예측 모드(2)가 원의 중심에 배치되고 이 원의 주변에 8개의 예측 모드(0, 1, 3, 4, 5, 6, 7 및 8) 가 배치되며, 여기서 예측 모드는 노드로 표현된다. 두 개의 예측 모드가 서로 원 상에서 근접해짐에 따라, 두 예측 노드 간의 논리/위치 관계가 강해진다. 유사하게, 두 개의 예측 모드가 원 상에서 서로 멀어지면, 두 예측 모드 간의 논리/위치 관계가 약해진다. 예를 들면, 예측 모드 0과 5는 원 상에서 서로 인접하기 때문에, 이는 이 두 예측 모드들 간에는 강한 논리/위치 관계가 있음을 나타낸다. 또다른 예로서, 예측 모드 0과 1은 원 상에서 대향 점이기 때문에, 이는 이 두 예측 모드들 간에는 약한 논리/위치 관계가 있음을 나타낸다. 예측 모드 2는 원의 중심에 있어 다른 예측 어느 것과도 논리/위치 관계가 없음을 나타낸다.
도 4의 개념도는 내부 인코딩 4×4 어레이에 대한 H.264 코덱 표준에 기초한다. 현재 처리되는 4×4 어레이에 있어서, H.264 표준하에서의 예측 모드는, 현재 처리되는 어레이에 대하여 인코딩된 예측 정보의 기초가 될 다른 4×4 어레이(여기서, 예측 어레이라고 함)의 (현재 처리되는 4×4 어레이에 대한)위치를 나타낸다. 예를 들면, 예측 모드 0(수직)은 현재 처리되는 어레이에 대한 예측 어레이는 현재 처리되는 어레이의 상부에 위치함을 의미하고, 예측 모드 1(수평)은 현재 예측되는 어레이에 대한 예측 어레이는 현재 처리되는 어레이의 좌측에 위치함을 의미한다.
이와 같이, 예측 모드들 간의 논리/위치 관계의 강약이 (현재 처리되는 4×4 어레이에 대한 예측 모드로 나타내는 위치 관계에 기초하는)접근될 수 있다. 예를 들면, 현재 처리되는 어레이 상부의 예측 어레이(예측 모드 0으로 표시)는 현재 처리되는 어레이 좌측에 위치한 예측 어레이(예측 모드 1로 표시)에 대하여 약한 논리/위치 관계를 갖기 때문에, 예측 모드 0은 예측 1에 대하여 약한 논리/위치 관계 를 갖는다. 이러한 약한 논리/위치 관계는 도 4에 반영되어, 예측 모드 0과 1이 원의 대향 부분에 있게 된다. 반면에, 현재 처리되는 어레이 상부에 위치한 예측 어레이(예측 모드 0으로 표시)는 현재 처리되는 어레이의 우측 상부에 위치하는 예측 어레이(예측 모드 5로 표시)에 대하여 강한 논리/위치 관계를 갖기 때문에, 예측 모드 0은 예측 모드 5에 대하여 강한 논리/위치 관계를 갖는다. 이러한 강한 논리/위치 관계는 도 4에서 반영되어, 예측 모드 0과 5가 원 상에서 인접하게 된다.
원 주변에 배치된 8개의 예측 모드(0, 1, 3, 4, 5, 6, 7 및 8)는 4그룹의 논리/위치 관련 예측 모드로 나누어질 수 있다.
1. 7, 0, 및 5 (수직_좌측, 수직, 및 수직_우측)
2. 8, 1, 및 6 (수평_상측, 수평, 및 수평_하측)
3. 7, 3, 및 8 (수직_좌측, 대각_하향_좌측, 및 수평_상측)
4. 5, 4, 및 6 (수직_우측, 대각_하향_우측, 및 수평_하측)
동일 그룹 내의 예측 모드는 서로 강한 논리/위치 관계를 갖는다. 몇몇 실시예들에서, 검색 알고리즘은 예측 모드 2의 비용과 함께 각 그룹에서의 하나의 예측 모드의 비용을 결정한다. 그 후, 검색 알고리즘은 일련의 예측 모드 중에서 최저 비용을 갖는 예측 모드를 결정한다. 최저 비용을 갖는 예측 모드가 예측 모드의 특정 그룹인 경우, 모든 9개의 가능한 예측 모드 중 최저 비용이 이 특정 그룹 내에 있을 확률이 높다. 이와 같이, 그 후, 검색 알고리즘은 이 특정 그룹에서 최저 비용을 갖는 예측 모드를 결정하고, 최저 비용을 갖는 예측 모드는 어레이에서 최적 예측 모드로서 선택된다.
예를 들면, 몇몇 실시예들에서, 검색 알고리즘은 예측 모드 0, 1, 2, 3, 및 4의 비용을 결정하며, 여기서 예측 모드 0, 1, 3, 및 4는 서로 다른 그룹으로부터의 것이다. 예측 모드 0, 1, 3, 또는 4가 일련의 예측 모드(0, 1, 2, 3 및 4) 중에서 최저 비용을 갖는 경우, 검색 알고리즘은 이전에 결정된 예측 모드가 포함되는 예측 모드의 그룹 중에서 최저 비용을 결정한다. 예를 들면, 검색 알고리즘이 예측 모드 1가 일련의 예측 모드(0, 1, 2, 3, 및 4) 중에서 최저 비용을 갖는다고 판정한 경우에는, 검색 알고리즘은 예측 모드(8, 1, 및 6)의 그룹 중에서 최저 비용을 결정하고, 최저 비용을 갖는 예측 모드는 최적 예측 모드로서 선택된다.
몇몇 실시예들에서, 검색 알고리즘은 9개의 가능한 예측 모드 중에서 전부가 아닌 일부를 포함하는 소정 집합의 예측 모드를 처음에 고려하여 이들을 비교한다. 몇몇 실시예들에서, 소정 집합의 예측 모드는 (도 4를 참조하여 상술한) 4개의 예측 모드 그룹 각각으로부터 하나의 예측 모드를 포함한다. 후술하는 실시예들에서, 소정 집합의 예측 모드는 예측 모드 0, 1, 2, 3, 및 4를 포함한다. 그러나, 다른 실시예들에서, 소정 집합의 예측 모드는 다른 예측 모드를 포함한다.
검색 알고리즘은 집합 내의 각 예측 모드에 대한 비용을 결정하며, 여기서 C0, C1, C2, C3 및 C4는 각각 예측 모드 0, 1, 2, 3, 및 4에 대하여 결정된 비용이다. 각 예측 모드에 대한 비용은 공지된 방법을 사용하여 결정될 수 있다. 그 후, 검색 알고리즘은 최저 비용을 갖는 예측 모드의 인덱스 번호(0, 1, 2, 3, 또는 4)를 결정하며, 여기서 변수 n은 결정된 인덱스 번호를 나타내는데 사용된다. 이 연산은 다음 식으로 표현될 수 있다:
n = GetInlOfMinCost(0, 1, 2, 3, 4)
여기서, GetInlOfMinCost는 일련의 예측 모드(예를 들면, 0, 1, 2, 3, 및 4)에서 각 예측 모드에 대한 비용을 결정하고 이 집합에서 예측 모드의 인덱스 번호가 최저 비용을 갖는다고 결정하는 함수이다.
그 후, 검색 알고리즘은 다음 연산을 수행한다:
If n == 2
x = 2
Else If n == 0
x == GetInlOfMinCost(7, 0, 5)
Else If n == 1
x == GetInlOfMinCost(8, 1, 6)
Else If n == 3
x == GetInlOfMinCost(7, 3, 8)
Else If n == 4
x == GetInlOfMinCost(5, 4, 6)
여기서, x는 화소 어레이에 대한 최적 예측 모드(선택 예측 모드)로서 궁극적으로 선택되는 예측 모드의 인덱스 번호이다.
이와 같이, 검색 알고리즘은 n이 2인지를 판정한다. 그러한 경우, 선택 예측 모드는 예측 모드 2이다. n이 2가 아닌 경우에는, 검색 알고리즘은 n이 0인지 를 판정한다. 그러한 경우, 선택된 예측 모드가 일련의 예측 모드(7, 0, 5) 중 최저 비용을 갖는 예측 모드이다. n이 0이 아닌 경우, 검색 엔진은 n인 1인지를 판정한다. 그러한 경우, 선택 예측 모드는 일련의 예측 모드(8, 1, 6) 중 최저 비용을 갖는 예측 모드이다. n이 1이 아닌 경우, 검색 엔진은 n인 3인지를 판정한다. 그러한 경우, 선택 예측 모드는 일련의 예측 모드(7, 3, 8) 중 최저 비용을 갖는 예측 모드이다. n이 3이 아닌 경우, 검색 엔진은 n인 4인지를 판정한다. 그러한 경우, 선택 예측 모드는 일련의 예측 모드(5, 4, 6) 중 최저 비용을 갖는 예측 모드이다.
도 5는 4×4 어레이의 매크로블록에 대한 예측 모드를 선택하는 4×4 예측 모드 검색 방법(500)의 흐름도이다. 몇몇 실시예들에서, 방법(500)은 비디오 프레임을 인코딩하도록 구성된 소프트웨어 및/또는 하드웨어로 구현된다. 몇몇 실시예들에서, 4×4 예측 모드 검색 방법(500)은 도 1의 단계 115를 포함한다.
방법(500)은 (505에서)매크로블록을 16개의 4×4 어레이로 분할함으로써 개시한다. 그 후, 이 방법은 (510에서)처리를 위해 현재의 4×4 어레이로서 제1 4×4 어레이를 설정한다. 현재의 4×4 어레이에 있어서, 방법(500)은 그 후 (515에서)예측 모드 0, 1, 2, 3 및 4 각각에 대한 비용을 결정한다. 이 방법은 (520에서)최저 비용을 갖는 예측 모드가 2인지를 판정한다. 그러한 경우, 이 방법은 (525에서)현재의 4×4 어레이에 대한 예측 모드로서 예측 모드 2를 설정한다. 그 후, 이 방법은 (585에서)처리될 매크로블록 내에 보다 많은 4×4 어레이가 있는지를 판정한다. 그러한 경우, 이 방법은 (590에서)현재의 4×4 어레이로서 다음 4× 4 어레이를 설정하고, 단계 515로 진행한다. 그렇지 않은 경우에는, 방법이 종료한다.
이 방법이 최저 비용을 갖는 예측 모드가 2가 아니라고 판정한 경우에는(단계 520에서, 아니오), 이 방법은 (530에서)최저 비용을 갖는 예측 모드가 0인지를 판정한다. 그러한 경우, 이 방법은 (535에서)예측 모드 7, 0 및 5 각각에 대한 비용을 결정한다. 그 후, 이 방법은 (540에서)현재의 4×4 어레이에 대한 예측 모드로서 (예측 모드 7, 0, 및 5 중에서)최저 비용을 갖는 예측 모드를 설정한다. 그 후, 이 방법은 단계 585로 진행한다.
이 방법이 최저 비용을 갖는 예측 모드가 0이 아니라고 판정한 경우에는(단계 530에서, 아니오), 이 방법은 (545에서)최저 비용을 갖는 예측 모드가 1인지를 판정한다. 그러한 경우, 이 방법은 (550에서)예측 모드 8, 1 및 6 각각에 대한 비용을 결정한다. 그 후, 이 방법은 (555에서)현재의 4×4 어레이에 대한 예측 모드로서 (예측 모드 8, 1, 및 6 중에서)최저 비용을 갖는 예측 모드를 설정한다. 그 후, 이 방법은 단계 585로 진행한다.
이 방법이 최저 비용을 갖는 예측 모드가 1이 아니라고 판정한 경우에는(단계 545에서, 아니오), 이 방법은 (560에서)최저 비용을 갖는 예측 모드가 3인지를 판정한다. 그러한 경우, 이 방법은 (565에서)예측 모드 7, 3 및 8 각각에 대한 비용을 결정한다. 그 후, 이 방법은 (570에서)현재의 4×4 어레이에 대한 예측 모드로서 (예측 모드 7, 3, 및 8 중에서)최저 비용을 갖는 예측 모드를 설정한다. 그 후, 이 방법은 단계 585로 진행한다.
이 방법이 최저 비용을 갖는 예측 모드가 3이 아니라고 판정한 경우에는(단계 560에서, 아니오), 이는 최저 비용을 갖는 예측 모드가 4임을 의미한다. 그 후, 이 방법은 (575에서)예측 모드 5, 4, 및 6 각각에 대한 비용을 결정한다. 이 방법은 (580에서)현재의 4×4 어레이에 대한 예측 모드로서 (예측 모드 5, 4, 및 6 중에서)최저 비용을 갖는 예측 모드를 설정한다. 그 후, 이 방법은 단계 585로 진행한다.
몇몇 실시예들에서, 이 방법(500)은 4×4 어레이의 매크로블록에 대한 예측 모드를 설정하고, 여기서, 각 4×4 어레이에 대한 예측 모드 선택은 매크로블록 내의 하나 이상의 다른 4×4 어레이에 대하여 이전의 예측 모드 선택에 의존한다. 이들 실시예들에서, 매크로블록의 4×4 어레이 각각에 대한 예측 모드 선택은 이의 상부 및 좌측 주변 4×4 어레이에 대한 인코딩 값(이에 따라 선택된 예측 모드)에 의존한다. 따라서, 이들 실시예들에서, 방법(500)은 매크로블록에서 상부 좌측 4×4 어레이로부터 개시하는 예측 모드를 선택하고, 우측 하향으로 진행한다. 상부 좌측 주변 4×4 어레이에 대하여 이전에 선택된 예측 모드가 주어지면, 방법(500)은 그 후 현재 처리되는 4×4 어레이에 대한 최저 비용을 갖는 예측 모드(9개의 예측 모드 중에서)를 선택한다. 이를 위해서, 방법(500)은 결과적인 조합의 전체 비용을 계산할 수 있다(즉, 16개의 결정된 비용의 합산 비용).
A. 다른 예측 모드 검색 알고리즘
다른 실시예들에서, 다른 예측 모드 검색 알고리즘이 다른 연산 집합을 수행한다. 초기에는, 다른 검색 알고리즘은 일련의 예측 모드(0, 1, 3, 및 4) 중에서 최저 비용을 갖는 예측 모드의 인덱스 번호를 결정하며, 여기서 변수 a는 결정된 인덱스 번호를 나타내는데 사용된다. 다른 검색 알고리즘은 또한 일련의 예측 모드(0, 1, 3, 및 4) 중에서 2번째의 최저 비용을 갖는 예측 모드의 인덱스 번호를 결정하며, 여기서, 변수 b는 결정된 인덱스 번호를 나타내는데 사용된다. 또한, 다른 검색 알고리즘은 또한 일련의 예측 모드(0, 1, 2, 3, 및 4) 중에서 최저 비용을 갖는 예측 모드의 인덱스 번호를 결정하며, 여기서, 변수 n은 결정된 인덱스 번호를 나타내는데 사용된다.
이들 연산은 다음 식으로 표현될 수 있다.
a = GetInlOfMinCost_a(0, 1, 3, 4)
b = GetInlOfSecondMinCost_b(0, 1, 3, 4)
n = GetInlOfMinCost(0, 1, 2, 3, 4)
여기서, GetInlOfSecondMinCost_b는 일련의 예측 모드(예를 들면, 0, 1, 3, 및 4)에서 각 예측 모드에 대한 비용을 결정하는 함수로서, 2번째 최저 비용을 갖는 집합 내의 예측 모드의 인덱스 번호를 결정한다.
검색 알고리즘은 그 후 다음 연산을 수행한다.
If n == 2
x = 2
Else If(a, b) == (0, 4) or (4, 0)
x == GetInlOfMinCost(0, 5, 4)
Else If(a, b) == (4, 1) or (1, 4)
x == GetInlOfMinCost(4, 6, 1)
Else If(a, b) == (1, 3) or (3, 1)
x == GetInlOfMinCost(1, 8, 3)
Else If(a, b) == (3, 0) or (0, 3)
x == GetInlOfMinCost(3, 7, 0)
Else
x = n
여기서, x는 화소 어레이에 대한 최적 예측 모드(선택 예측 모드)로서 궁극적으로 선택되는 예측 모드의 인덱스 번호이다.
이와 같이, 다른 검색 알고리즘은 n이 2인지를 판정한다. 그러한 경우, 선택 예측 모드는 예측 모드 2이다. n이 2가 아닌 경우, 다른 검색 알고리즘은 그 후 a가 0이고 b가 4인지 또는 그 역인지(즉, a가 4이고 b가 0인 경우)를 결정한다. 그러한 경우, 선택 예측 모드는 일련의 예측 모드(0, 5, 4)의 최저 비용을 갖는 예측 모드이다.
a가 0이고 b가 4이거나 그 역의 경우가 참이 아닌 경우에는, 다른 검색 알고리즘은 a가 4이고 b가 1인지 또는 그 역인지를 판정한다. 그러한 경우, 선택 예측 모드는 일련의 예측 모드(4, 6, 1) 중에서 최저 비용을 갖는 예측 모드이다.
a가 4이고 b가 1이거나 그 역의 경우가 참이 아닌 경우에는, 다른 검색 알고리즘은 a가 1이고 b가 3인지 또는 그 역인지를 판정한다. 그러한 경우, 선택 예측 모드는 일련의 예측 모드(1, 8, 3) 중에서 최저 비용을 갖는 예측 모드이다.
a가 1이고 b가 3이거나 그 역의 경우가 참이 아닌 경우에는, 다른 검색 알고리즘은 a가 3이고 b가 0인지 또는 그 역인지를 판정한다. 그러한 경우, 선택 예측 모드는 일련의 예측 모드(3, 7, 0) 중에서 최저 비용을 갖는 예측 모드이다.
도 6은 4×4 어레이의 매크로블록에 대한 예측 모드를 선택하는 다른 4×4 예측 모드 검색 방법(600)의 흐름도이다. 몇몇 실시예들에서, 4×4 다른 예측 모드 검색 방법(600)은 도 1의 단계 115를 포함한다.
방법(600)은 (605에서)매크로블록을 16개의 4×4 어레이로 분할함으로써 개시한다. 그 후, 이 방법은 (610에서)처리를 위해 현재 4×4 어레이로서 제1 4×4 어레이를 설정한다. 현재의 4×4 어레이에 있어서, 이 방법(600)은 그 후 (615에서)예측 모드(0, 1, 2, 3, 및 4) 각각에 대한 비용을 결정한다. 이 방법은 (616에서) 예측 모드 0, 1, 3, 및 4 중에서 최저 비용을 갖는 예측 모드의 예측 모드 인덱스와 동일하도록 변수 a를 설정한다. 이 방법은 (617에서)예측 모드 0, 1, 3, 및 4 중에서 2번째 최저비용을 갖는 예측 모드의 예측 인덱스와 동일하도록 변수 b를 설정한다. 또한, 이 방법은 (618에서)예측 모드 0, 1, 2, 3, 및 4 중에서 최저 비용을 갖는 예측 모드의 예측 모드 인덱스와 동일하도록 변수 n을 설정한다.
방법은 (620에서)n이 2인지를 판정한다. 그러한 경우, 이 방법은 (625에서)현재의 4×4 어레이에 대한 예측 모드로서 예측 모드 2를 설정한다. 그 후, 이 방법은 (685에서)처리될 매크로블록 내에 보다 많은 4×4 어레이가 있는지를 판정한다. 그러한 경우, 이 방법은 (690에서)현재의 4×4 어레이로서 다음 4×4 어레이를 설정하며, 단계 615로 진행한다. 그렇지 않은 경우, 이 방법은 종료한다.
이 방법은 n이 2가 아니라고 판정한 경우(단계 620에서, 아니오), 이 방법은 (630에서) 이 조건(a가 0이고 b가 4이거나 또는 그 역의 경우)이 참인지를 판정한다. 그러한 경우, 이 방법 (635에서)예측 모드 0, 5, 및 4의 각각에 대한 비용을 결정한다. 그 후, 이 방법은 (640에서)현재의 4×4 어레이에 대한 예측 모드로서 (예측 모드 0, 5, 및 4 중에서)최저 비용을 갖는 예측 모드를 설정한다.
이 방법이 조건(a가 0이고 b가 4이거나 그 역인 경우)이 참이 아니라고 판정하는 경우(630에서, 아니오), 이 방법은 (645에서)조건(a가 4이고 b가 1이거나 그 역인 경우)이 참인지를 판정한다. 그러한 경우, 이 방법은 (650에서)그 후 예측 모드 4, 6, 및 1의 각각에 대한 비용을 결정한다. 그 후, 이 방법은 (655에서)현재의 4×4 어레이에 대한 예측 모드로서 (예측 모드 4, 6, 및 1 중에서)최저 비용을 갖는 예측 모드를 설정한다. 그 후, 이 방법은 685로 진행한다.
이 방법이 조건(a가 4이고 b가 1이거나 그 역인 경우)이 참이 아니라고 판정하는 경우(645에서, 아니오), 이 방법은 (660에서)조건(a가 1이고 b가 3이거나 그 역인 경우)이 참인지를 판정한다. 그러한 경우, 이 방법은 (665에서)그 후 예측 모드 1, 8, 및 3의 각각에 대한 비용을 결정한다. 그 후, 이 방법은 (670에서)현재의 4×4 어레이에 대한 예측 모드로서 (예측 모드 1, 8, 및 3 중에서)최저 비용을 갖는 예측 모드를 설정한다. 그 후, 이 방법은 685로 진행한다.
이 방법이 조건(a가 1이고 b가 3이거나 그 역인 경우)이 참이 아니라고 판정하는 경우(660에서, 아니오), 이 방법은 (672에서)조건(a가 3이고 b가 0이거나 그 역인 경우)이 참인지를 판정한다. 그러한 경우, 이 방법은 (675에서)그 후 예측 모드 3, 7, 및 0의 각각에 대한 비용을 결정한다. 그 후, 이 방법은 (680에서)현재의 4×4 어레이에 대한 예측 모드로서 (예측 모드 3, 7, 및 0 중에서)최저 비용을 갖는 예측 모드를 설정한다. 그 후, 이 방법은 685로 진행한다. 이 방법이 조건(a가 3이고 b가 0이거나 그 역인 경우)이 참이 아니라고 판정하는 경우(672에서, 아니오), (673에서)이 방법은 (단계 618에서 결정되는)변수 n으로 표시된 예측 모드와 동일한 예측 모드, 즉, 예측 모드 0, 1, 2, 3, 및 4 중에서 최저 비용을 갖는 예측 모드를 설정한다. 그 후, 이 방법은 685로 진행한다.
도 7은 몇몇 실시예들이 구현되는 컴퓨터 시스템(700)을 제시한다. 이 컴퓨터 시스템(700)은 버스(705), 프로세서(710), 시스템 메모리(715), 판독 전용 메모리(720), 영구 저장 장치(725), 입력 장치(730), 및 출력 장치(735)를 포함한다.
버스(705)는 컴퓨터 시스템(700)의 수많은 내부 장치를 통신가능하게 접속하는 모든 시스템, 주변, 및 칩셋 버스를 총괄하여 나타낸다. 예를 들면, 버스(705)는 판독 전용 메모리(720), 시스템 메모리(715), 및 영구 저장 장치(725)와 프로세스(710)를 통신가능하게 접속한다.
판독 전용 메모리(ROM; 720)는 프로세서(710)와 컴퓨터 시스템의 다른 모듈에 의해 요구되는 정적 데이터와 명령어를 저장한다. 반면에, 영구 저장 장치(725)는 판독 및 기입 메모리 장치이다. 이 장치는 컴퓨터 시스템(700)이 오프인 경우에도 명령어와 데이터를 저장하는 비휘발성 메모리 유닛이다. 몇몇 실시예들은 영구 저장 장치(725)로서 (자기 또는 광 디스크 및 이의 대응하는 디스크 드라이브와 같은)대용량 저장 장치를 사용한다. 다른 실시예들은 영구 스토리지 장치 로서 (플로피 디스크 또는 zip
Figure 112005034275730-pat00001
디스크, 및 이의 대응하는 디스크 드라이브와 같은)분리형 스토리지 장치를 사용한다.
영구 저장 장치(725)와 같이, 시스템 메모리(715)는 판독 및 기입 메모리 장치이다. 그러나, 저장 장치(725)와는 달리, 시스템 메모리는 랜덤 액세스 메모리(RAM)와 같은 휘발성 판독 및 기입 메모리이다. 이 시스템 메모리는 런타임 시에 프로세스가 요구하는 일부 명령어 및 데이터를 저장한다.
몇몇 실시예들을 수행하는데 필요한 명령어 및/또는 데이터는 시스템 메모리(715), 영구 저장 장치(725), 판독 전용 메모리(720), 또는 이 셋의 임의의 조합에 저장된다. 예를 들면, 다양한 메모리 유닛이 몇몇 실시예들에 따라 비디오 데이터 스트림을 인코딩 또는 디코딩하는 명령어를 포함하거나 및/또는 비디오 데이터를 포함할 수 있다. 이들 다양한 메모리 유닛으로부터, 프로세서(710)는 몇몇 실시예들의 프로세스를 실행하기 위해서 실행할 명령어와 처리할 데이터를 검색한다. 이들 다양한 메모리 유닛으로부터, 프로세서(710)는 몇몇 실시예들의 프로세스를 실행하기 위해서 실행할 명령어와 처리할 데이터를 검색한다.
버스(705)는 또한 입력 및 출력 장치(730 및 735)에 접속한다. 입력 장치(730)는 사용자가 정보를 전달하고 컴퓨터 시스템(700)에 대한 명령어를 선택할 수 있게 한다. 입력 장치(730)는 영숫자 키보드와 커서 제어기를 포함한다. 출력 장치(735)는 출력 시스템(700)에 의해 생성되는 이미지를 디스플레이한다. 출력 장치는 음극선관(CRT), 또는 액정 디스플레이(LCD)와 같은 프린터와 디스플레이 장치를 포함한다.
마지막으로, 도 7에 도시한 바와 같이, 버스(705)는 또한 컴퓨터 시스템(700)을, 예를 들면, 네트워크 어댑터(미도시)를 통해 네트워크(765)에 연결한다. 이러한 방식으로, 컴퓨터 시스템(700)은 (근거리 네트워크("LAN"), 광역 네트워크("WAN"), 또는 인트라넷과 같은) 컴퓨터 네트워크의 일부이거나 (인터넷과 같은)네트워크의 네트워크일 수 있다. 컴퓨터 시스템(700)의 임의의 또는 모든 컴포넌트는 몇몇 실시예들에서 사용될 수 있다. 그러나, 당업자는 임의의 다른 구성이 다른 실시예들에서 사용될 수 있음을 이해할 것이다.
본 발명은 수많은 특정 세부사항을 참조하여 설명하였지만, 당업자는 본 발명이 본 발명의 취지를 벗어나지 않으면서 다른 특정 형태로 구체화될 수 있음을 인식할 것이다. 예를 들면, 본 발명의 다수의 실시예들은 매크로블록을 참조하여 설명하였다. 당업자는 이들 실시예들은 임의의 다른 화소값 어레이와 함께 사용될 수 있음을 인식할 것이다.
상술한 본 발명에 따르면, 비디오 프레임의 매크로블록에 있어서의 인코딩 유형과 예측 모드를 보다 효율적으로 결정할 수 있다.

Claims (67)

  1. 복수의 서브블록을 포함하는 비디오 화면의 화소값들의 블록을 내부 인코딩하기 위한 분할 사이즈(partition size)를 식별하기 위한 방법으로서,
    상기 블록에 대해 복수의 분산 값을 계산하는 단계 - 각각의 분산 값은 상기 블록의 서브블록의 화소 값들의 분산에 기초함 -;
    상기 분산 값 모두가 소정 임계 분산을 만족하는 때, 각 서브블록보다 큰 분할 사이즈를 특정하는 블록에 대한 제1 인코딩 유형을 선택하는 단계; 및
    상기 분산 값 중 적어도 하나가 상기 소정 임계 분산을 만족하지 않는 때, 각 서브블록보다 작은 분할 사이즈를 특정하는 블록에 대한 제2 인코딩 유형을 선택하는 단계
    를 포함하는, 분할 사이즈 식별 방법.
  2. 제1항에 있어서,
    상기 서브블록 각각은 8×8 화소 값을 포함하고,
    상기 제1 인코딩 유형은 16×16 화소 값을 포함하는 분할 사이즈를 특정하고,
    상기 제2 인코딩 유형은 4×4 화소 값을 포함하는 분할 사이즈를 특정하는, 분할 사이즈 식별 방법.
  3. 제1항에 있어서,
    상기 소정 임계치 분산은 상기 비디오 화면 내의 모든 서브블록들의 평균 분산과 동일한, 분할 사이즈 식별 방법.
  4. 제1항에 있어서,
    양자화 매개변수 값이 증가함에 따라 상기 소정 임계치 분산이 증가하도록, 상기 양자화 매개변수 값에 의존하는 인자에 의해 상기 소정 임계치 분산이 스케일링되는, 분할 사이즈 식별 방법.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 비디오 화면을 위한 화소들의 블록을 인코딩하기 위한 방법으로서, 상기 화소들의 블록은 복수의 화소들의 서브블록을 포함하고, 상기 방법은
    예측 모드를 사용하여, 상기 블록의 각 서브블록에 대하여, 상기 서브블록의 원형 화소 값들 및 상기 블록의 경계 화소들 집합으로부터 유도되는 상기 서브블록의 예측된 값들의 집합 간의 차이에 기초하는 왜곡 값을 계산하는 단계; 및
    상기 블록의 모든 서브블록에 대해 상기 계산된 왜곡 값이 소정 임계 왜곡값을 만족하는 때, 상기 예측 모드를 사용하여 상기 화소들의 블록을 인코딩하는 단계
    를 포함하는 인코딩하는 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 제15항에 있어서,
    상기 예측 모드는 제1 예측 모드이고, 상기 왜곡 값은 제1 왜곡 값이고, 상기 예측 값들의 집합은 제1 예측 값들의 집합이며, 상기 방법은,
    상기 제1 왜곡 값 모두가 상기 소정 임계 왜곡 값을 만족하지 않는다고 결정하면, 제2 예측 모드를 사용하여 상기 블록의 각 서브블록에 대한 제2 왜곡 값을 계산하는 단계; 및
    상기 블록의 모든 서브블록에 대해 상기 제2 왜곡 값이 상기 소정 임계 왜곡 값을 만족하는 때, 상기 제2 예측 모드를 사용하여 상기 블록을 인코딩하는 단계
    를 더 포함하는, 인코딩하는 방법.
  22. 제21항에 있어서,
    상기 제2 왜곡 값 모두가 상기 소정 임계 왜곡 값을 만족하지 않는다고 결정하면, 제3 예측 모드를 사용하여 상기 블록을 인코딩하는 단계를 더 포함하는, 인코딩하는 방법.
  23. 제22항에 있어서,
    상기 제3 예측 모드는, 상기 제2 예측 모드에 의해 특정되는 분할 사이즈보다 작은 블록의 분할 사이즈를 특정하는, 인코딩하는 방법.
  24. 제15항에 있어서,
    상기 경계 화소의 집합은 상기 서브블록에 수직 또는 수평으로 정렬된 블록의 경계상의 화소를 포함하는 인코딩하는 방법.
  25. 제15항에 있어서,
    상기 예측 모드를 사용하여 상기 블록의 각 서브블록에 대하여 왜곡 값을 계산하는 단계는,
    상기 예측 모드에 기초하여 상기 블록의 경계 화소들 집합을 식별하는 단계;
    상기 식별된 블록의 경계 화소들 집합을 사용하여 상기 서브 블록에 대한 상기 예측된 값들의 집합을 유도하는 단계; 및
    상기 서브블록의 상기 원형 화소 값들 및 상기 서브블록에 대한 상기 유도된 예측된 값들의 집합 간의 차이에 기초하여 상기 왜곡 값을 계산하는 단계
    를 포함하는, 인코딩하는 방법.
  26. 제25항에 있어서,
    상기 예측 모드에 의해 식별된 상기 경계 화소들 집합은 상기 블록의 가장 좌측열(left most column)의 화소를 포함하는 인코딩하는 방법.
  27. 제25항에 있어서,
    상기 예측 모드에 의해 식별된 상기 경계 화소들 집합은 상기 블록의 가장 상부 행(top most row)의 화소를 포함하는 인코딩하는 방법.
  28. 제25항에 있어서,
    상기 예측된 값은 상기 예측 모드에 의해 식별된 상기 경계 화소들 집합의 평균 값으로부터 유도되는 인코딩하는 방법.
  29. 제15항에 있어서,
    상기 화소 블록은 16×16 화소들을 포함하고, 상기 블록의 각 서브블록은 4×4 화소를 포함하는 인코딩하는 방법.
  30. 제1항에 있어서,
    상기 선택된 인코딩 유형에 기초하여 예측 인코딩 모드를 선택하는 단계를 더 포함하는 분할 사이즈 식별 방법.
  31. 제30항에 있어서,
    상기 선택된 인코딩 유형이 4×4 화소 값들을 포함하는 상기 블록의 분할을 특정하는 때, 상기 예측 인코딩 모드는 복수의 4×4 내부 예측 인코딩 모드 중 하나인 분할 사이즈 식별 방법.
  32. 제30항에 있어서,
    상기 선택된 인코딩 유형이 16×16 화소 값들을 포함하는 상기 블록의 분할을 특정하는 때, 상기 예측 인코딩 모드는 복수의 16×16 내부 예측 인코딩 모드 중 하나인 분할 사이즈 식별 방법.
  33. 제30항에 있어서,
    상기 예측 인코딩 모드를 선택하는 단계는 (i) 상기 블록을 인코딩하기 위해 특정 예측 인코딩 모드를 사용함으로써 발생하는 상기 블록의 서브블록의 왜곡을 계산하는 단계, 및 (ii) 상기 서브블록에 대해 상기 계산된 왜곡이 소정 임계치 아래인지 여부를 결정하는 단계를 더 포함하는, 분할 사이즈 식별 방법.
  34. 제1항 내지 제4항, 제15항 및 제21항 내지 제33항 중 어느 한 항에 따른 단계들을 구현하기 위한 명령어들 집합을 포함하는, 적어도 하나의 프로세서에 의해 실행가능한 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능 매체.
  35. 컴퓨터 시스템으로서,
    제1항 내지 제4항, 제15항 및 제21항 내지 제33항 중 어느 한 항에 따른 단계들을 구현하기 위한 명령어들을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 명령어들을 검색하고 실행하기 위한 처리 유닛을 포함하는 컴퓨터 시스템.
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
KR1020050055777A 2004-06-27 2005-06-27 비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드선택 KR101155767B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US58344704P 2004-06-27 2004-06-27
USUS60/583,447 2004-06-27
US11/070,778 US7792188B2 (en) 2004-06-27 2005-03-01 Selecting encoding types and predictive modes for encoding video data
USUS11/070,778 2005-03-01

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020100013799A Division KR101152576B1 (ko) 2004-06-27 2010-02-16 비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드 선택

Publications (2)

Publication Number Publication Date
KR20060092813A KR20060092813A (ko) 2006-08-23
KR101155767B1 true KR101155767B1 (ko) 2012-06-12

Family

ID=34942454

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020050055777A KR101155767B1 (ko) 2004-06-27 2005-06-27 비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드선택
KR1020100013799A KR101152576B1 (ko) 2004-06-27 2010-02-16 비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드 선택
KR1020110127949A KR101208863B1 (ko) 2004-06-27 2011-12-01 비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드 선택

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020100013799A KR101152576B1 (ko) 2004-06-27 2010-02-16 비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드 선택
KR1020110127949A KR101208863B1 (ko) 2004-06-27 2011-12-01 비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드 선택

Country Status (6)

Country Link
US (3) US7792188B2 (ko)
EP (1) EP1610563A3 (ko)
JP (4) JP4949647B2 (ko)
KR (3) KR101155767B1 (ko)
CN (2) CN101945280B (ko)
TW (1) TWI350697B (ko)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7742525B1 (en) 2002-07-14 2010-06-22 Apple Inc. Adaptive motion estimation
US9330060B1 (en) 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US8660182B2 (en) 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
EP1605706A2 (en) * 2004-06-09 2005-12-14 Broadcom Corporation Advanced video coding (AVC) intra prediction scheme
US8111752B2 (en) * 2004-06-27 2012-02-07 Apple Inc. Encoding mode pruning during video encoding
US20050286777A1 (en) * 2004-06-27 2005-12-29 Roger Kumar Encoding and decoding images
US7792188B2 (en) 2004-06-27 2010-09-07 Apple Inc. Selecting encoding types and predictive modes for encoding video data
TWI243600B (en) * 2004-09-17 2005-11-11 Primax Electronics Ltd Selected area comparison method with high-operational efficient
CN101710991B (zh) * 2004-11-04 2015-06-24 汤姆森特许公司 视频编码器的快速内模式预测
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
JP2007251923A (ja) * 2006-02-15 2007-09-27 Mitsubishi Electric Corp 画像符号化装置および画像符号化方法
US8724702B1 (en) 2006-03-29 2014-05-13 Nvidia Corporation Methods and systems for motion estimation used in video coding
US8295349B2 (en) * 2006-05-23 2012-10-23 Flextronics Ap, Llc Methods and apparatuses for video compression intra prediction mode determination
JP4690966B2 (ja) * 2006-08-11 2011-06-01 株式会社東芝 動画像符号化装置
US8660380B2 (en) 2006-08-25 2014-02-25 Nvidia Corporation Method and system for performing two-dimensional transform on data value array with reduced power consumption
TWI386064B (zh) * 2006-10-10 2013-02-11 Nippon Telegraph & Telephone 內部預測編碼控制方法及裝置,其程式,以及記錄有程式之記憶媒體
KR100856223B1 (ko) * 2006-10-19 2008-09-03 삼성전자주식회사 H.264 인코더의 적응적 인코딩 모드 결정 장치 및결정 방법
RU2434361C2 (ru) 2006-10-30 2011-11-20 Ниппон Телеграф Энд Телефон Корпорейшн Способ генерации предсказанной опорной информации, способы кодирования и декодирования видео, устройства для этого, программы для этого и носитель данных, хранящий эти программы
KR100845644B1 (ko) * 2006-12-14 2008-07-10 한국정보통신대학교 산학협력단 고속 움직임 모드 결정 방법
KR100842558B1 (ko) 2007-01-26 2008-07-01 삼성전자주식회사 동영상 부호화를 위한 블록 모드 결정 방법 및 그 장치
JP4921239B2 (ja) * 2007-05-09 2012-04-25 キヤノン株式会社 画像処理装置およびその方法
US8756482B2 (en) 2007-05-25 2014-06-17 Nvidia Corporation Efficient encoding/decoding of a sequence of data frames
US9118927B2 (en) 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
US20090016631A1 (en) * 2007-07-10 2009-01-15 Texas Instruments Incorporated Video Coding Rate Control
US8873625B2 (en) * 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
KR100905059B1 (ko) * 2007-08-16 2009-06-30 한국전자통신연구원 동영상 부호화에 있어서 비트 발생 가능성 예측을 이용한블록 모드 결정 방법 및 장치
US8023562B2 (en) 2007-09-07 2011-09-20 Vanguard Software Solutions, Inc. Real-time video coding/decoding
KR101505195B1 (ko) * 2008-02-20 2015-03-24 삼성전자주식회사 직접 모드 부호화 및 복호화 방법
KR101353301B1 (ko) * 2008-04-11 2014-01-21 에스케이 텔레콤주식회사 인트라 예측 모드 결정 방법 및 그 장치와 이를 이용한영상 부호화/복호화 방법 및 그 장치
US20090274211A1 (en) * 2008-04-30 2009-11-05 Omnivision Technologies, Inc. Apparatus and method for high quality intra mode prediction in a video coder
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
US8259801B2 (en) * 2008-10-12 2012-09-04 Mediatek Inc. Methods for coding digital media data with prediction information and prediction error information being respectively carried by different bit stream sections
US8666181B2 (en) 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
CN101854538B (zh) * 2009-04-03 2012-06-27 联咏科技股份有限公司 运动图像处理方法及运动图像处理器
KR20120006488A (ko) * 2009-04-28 2012-01-18 텔레폰악티에볼라겟엘엠에릭슨(펍) 왜곡 가중
JP2011151682A (ja) * 2010-01-22 2011-08-04 Sony Corp 画像処理装置および方法
US8526488B2 (en) * 2010-02-09 2013-09-03 Vanguard Software Solutions, Inc. Video sequence encoding system and algorithms
ES2784198T3 (es) 2010-09-27 2020-09-23 Lg Electronics Inc Método para partición de bloque y dispositivo de decodificación
US8842184B2 (en) * 2010-11-18 2014-09-23 Thomson Licensing Method for determining a quality measure for a video image and apparatus for determining a quality measure for a video image
FR2969456A1 (fr) 2010-12-15 2012-06-22 France Telecom Procedes et dispositifs de codage et de decodage d'au moins une image mettant en œuvre une selection des pixels a predire, programme d'ordinateur correspondant
KR101246119B1 (ko) * 2011-02-08 2013-03-21 연세대학교 산학협력단 인트라 예측 모드 결정 방법 및 장치
HUE043274T2 (hu) * 2011-09-14 2019-08-28 Samsung Electronics Co Ltd Eljárás predikcióegység (PU) dekódolására ennek méretén alapulva
US20130089136A1 (en) * 2011-10-10 2013-04-11 Texas Instruments Incorporated Spatial Intra Prediction Estimation Based on Mode Suppression in Macroblocks of a Video Frame
WO2013074964A1 (en) 2011-11-16 2013-05-23 Vanguard Software Solutions, Inc. Video compression for high efficiency video coding
US8811758B2 (en) * 2011-12-18 2014-08-19 Numerica Corporation Lossy compression of data points using point-wise error constraints
WO2014000160A1 (en) * 2012-06-26 2014-01-03 Intel Corporation Inter-layer coding unit quadtree pattern prediction
US10333547B2 (en) 2012-08-13 2019-06-25 Gurologic Microsystems Oy Encoder and method for encoding input data using a plurality of different transformations or combinations of transformations
US9258389B2 (en) 2012-08-13 2016-02-09 Gurulogic Microsystems Oy Encoder and method
US8675731B2 (en) * 2012-08-13 2014-03-18 Gurulogic Microsystems Oy Encoder and method
US9665572B2 (en) * 2012-09-12 2017-05-30 Oracle International Corporation Optimal data representation and auxiliary structures for in-memory database query processing
TW201419865A (zh) * 2012-11-13 2014-05-16 Hon Hai Prec Ind Co Ltd 影像切割系統及方法
TW201419862A (zh) * 2012-11-13 2014-05-16 Hon Hai Prec Ind Co Ltd 影像切割系統及方法
TW201419864A (zh) * 2012-11-13 2014-05-16 Hon Hai Prec Ind Co Ltd 影像切割系統及方法
TW201419863A (zh) * 2012-11-13 2014-05-16 Hon Hai Prec Ind Co Ltd 影像切割系統及方法
US9106922B2 (en) 2012-12-19 2015-08-11 Vanguard Software Solutions, Inc. Motion estimation engine for video encoding
JP6212890B2 (ja) * 2013-03-22 2017-10-18 富士通株式会社 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
WO2014193631A1 (en) * 2013-05-31 2014-12-04 Intel Corporation Adjustment of intra-frame encoding distortion metrics for video encoding
US10148954B2 (en) 2013-07-29 2018-12-04 Riversilica Technologies Pvt Ltd Method and system for determining intra mode decision in H.264 video coding
JP6221704B2 (ja) * 2013-12-05 2017-11-01 Nttエレクトロニクス株式会社 符号化装置及びブロックサイズ選択方法
KR102294830B1 (ko) 2014-01-03 2021-08-31 삼성전자주식회사 디스플레이 구동 장치 및 이미지 데이터 처리 장치의 동작 방법
JP5759588B1 (ja) * 2014-03-19 2015-08-05 日本電信電話株式会社 イントラ予測方向決定方法及びイントラ予測方向決定プログラム
US9392272B1 (en) * 2014-06-02 2016-07-12 Google Inc. Video coding using adaptive source variance based partitioning
EP3140988B1 (en) * 2014-06-26 2019-09-11 Huawei Technologies Co., Ltd. Method and device for reducing a computational load in high efficiency video coding
US9704066B2 (en) 2015-03-20 2017-07-11 Microsoft Technology Licensing, Llc Multi-stage image classification
US9955186B2 (en) * 2016-01-11 2018-04-24 Qualcomm Incorporated Block size decision for video coding
US11252440B2 (en) * 2019-11-07 2022-02-15 Comcast Cable Communications, Llc Pixel filtering for content
CN112153385B (zh) * 2020-11-25 2021-03-02 腾讯科技(深圳)有限公司 编码处理方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060285A (en) * 1989-05-19 1991-10-22 Gte Laboratories Incorporated Hierarchical variable block size address-vector quantization using inter-block correlation
US6192081B1 (en) * 1995-10-26 2001-02-20 Sarnoff Corporation Apparatus and method for selecting a coding mode in a block-based coding system
EP1610563A2 (en) * 2004-06-27 2005-12-28 Apple Computer, Inc. Selecting encoding types and predictive modes for encoding video data

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5200820A (en) 1991-04-26 1993-04-06 Bell Communications Research, Inc. Block-matching motion estimator for video coder
JP3315132B2 (ja) * 1991-08-29 2002-08-19 株式会社東芝 画像符号化装置、画像復号化装置、及び画像符号化方法
JP2636622B2 (ja) 1992-03-13 1997-07-30 松下電器産業株式会社 ビデオ信号の符号化方法及び復号化方法ならびにビデオ信号の符号化装置及び復号化装置
AU6099594A (en) * 1993-02-03 1994-08-29 Qualcomm Incorporated Interframe video encoding and decoding system
US5508744A (en) 1993-03-12 1996-04-16 Thomson Consumer Electronics, Inc. Video signal compression with removal of non-correlated motion vectors
AU686198B2 (en) * 1993-07-19 1998-02-05 British Telecommunications Public Limited Company Detecting errors in video images
FR2719398B1 (fr) 1994-04-27 1996-07-19 Sgs Thomson Microelectronics Dispositif et procédé d'adressage d'une mémoire cache d'un circuit de compression d'images mobiles.
US5706059A (en) 1994-11-30 1998-01-06 National Semiconductor Corp. Motion estimation using a hierarchical search
JPH08205140A (ja) * 1995-01-31 1996-08-09 Canon Inc 画像圧縮装置
KR0171143B1 (ko) * 1995-03-20 1999-03-20 배순훈 육각그리드에서의 삼각구조 형성 장치
US5757668A (en) 1995-05-24 1998-05-26 Motorola Inc. Device, method and digital video encoder of complexity scalable block-matching motion estimation utilizing adaptive threshold termination
US5731850A (en) 1995-06-07 1998-03-24 Maturi; Gregory V. Hybrid hierarchial/full-search MPEG encoder motion estimation
US5577181A (en) * 1995-06-07 1996-11-19 E-Systems, Inc. Method for autonomous determination of tie points in imagery
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
JP3994445B2 (ja) 1995-12-05 2007-10-17 ソニー株式会社 動きベクトル検出装置及び動きベクトル検出方法
US6212237B1 (en) 1997-06-17 2001-04-03 Nippon Telegraph And Telephone Corporation Motion vector search methods, motion vector search apparatus, and storage media storing a motion vector search program
EP0896300B1 (en) * 1997-08-07 2002-01-30 Matsushita Electric Industrial Co., Ltd. Device and method for motion vector detection
US6014181A (en) * 1997-10-13 2000-01-11 Sharp Laboratories Of America, Inc. Adaptive step-size motion estimation based on statistical sum of absolute differences
JPH11182444A (ja) * 1997-10-17 1999-07-06 Takumina:Kk ソレノイド駆動ポンプの制御回路
WO1999041912A2 (en) 1998-02-13 1999-08-19 Koninklijke Philips Electronics N.V. Method and arrangement for video coding
KR100325253B1 (ko) 1998-05-19 2002-03-04 미야즈 준이치롯 움직임벡터 검색방법 및 장치
US6128047A (en) 1998-05-20 2000-10-03 Sony Corporation Motion estimation process and system using sparse search block-matching and integral projection
US6591015B1 (en) * 1998-07-29 2003-07-08 Matsushita Electric Industrial Co., Ltd. Video coding method and apparatus with motion compensation and motion vector estimator
US6081209A (en) 1998-11-12 2000-06-27 Hewlett-Packard Company Search system for use in compression
US6363117B1 (en) 1998-12-31 2002-03-26 Sony Corporation Video compression using fast block motion estimation
GB2348559B (en) 1999-03-31 2001-06-06 Samsung Electronics Co Ltd High speed motion estimating method for real time moving image coding and apparatus therefor
US6529634B1 (en) * 1999-11-08 2003-03-04 Qualcomm, Inc. Contrast sensitive variance based adaptive block size DCT image compression
JP2001251632A (ja) 1999-12-27 2001-09-14 Toshiba Corp 動きベクトル検出方法および装置並びに動きベクトル検出プログラム
US6483876B1 (en) 1999-12-28 2002-11-19 Sony Corporation Methods and apparatus for reduction of prediction modes in motion estimation
KR100619377B1 (ko) 2000-02-22 2006-09-08 주식회사 팬택앤큐리텔 움직임 추정 방법 및 장치
EP1134981A1 (en) 2000-03-17 2001-09-19 STMicroelectronics S.r.l. Automatic setting of optimal search window dimensions for motion estimation
US6567469B1 (en) 2000-03-23 2003-05-20 Koninklijke Philips Electronics N.V. Motion estimation algorithm suitable for H.261 videoconferencing applications
US6876703B2 (en) 2000-05-11 2005-04-05 Ub Video Inc. Method and apparatus for video coding
US6700996B1 (en) 2000-06-07 2004-03-02 Intel Corporation Adaptive early exit techniques in image correlation
US6842483B1 (en) 2000-09-11 2005-01-11 The Hong Kong University Of Science And Technology Device, method and digital video encoder for block-matching motion estimation
KR100727910B1 (ko) 2000-10-11 2007-06-13 삼성전자주식회사 하이브리드형 고속 움직임 추정 방법 및 그 장치
US6668020B2 (en) 2000-11-04 2003-12-23 Vivotek Inc. Method for motion estimation in video coding
US20020131500A1 (en) 2001-02-01 2002-09-19 Gandhi Bhavan R. Method for determining a motion vector for a video signal
US6687301B2 (en) 2001-03-19 2004-02-03 Fulvio Moschetti Method for block matching motion estimation in digital video sequences
US6813315B1 (en) 2001-04-24 2004-11-02 Vweb Corporation Motion estimation using multiple search windows
US6650784B2 (en) 2001-07-02 2003-11-18 Qualcomm, Incorporated Lossless intraframe encoding using Golomb-Rice
EP1294194B8 (en) * 2001-09-10 2010-08-04 Texas Instruments Incorporated Apparatus and method for motion vector estimation
WO2003045069A2 (en) * 2001-11-16 2003-05-30 Qualcomm Incorporated Block size assignment using local contrast ratio
CN102316320B (zh) 2001-12-17 2014-07-09 微软公司 处理视频图像的方法
KR100833228B1 (ko) * 2002-02-21 2008-05-28 삼성전자주식회사 고정 연산량을 갖는 동영상 부호화 방법 및 그 장치
KR100492127B1 (ko) 2002-02-23 2005-06-01 삼성전자주식회사 적응형 움직임 추정장치 및 추정 방법
BR0304565A (pt) 2002-03-15 2004-12-07 Nokia Corp Método de predição de movimento compensado para uso na codificação da sequência de vìdeo digital, codificador e decodificador de vìdeo para codificar/decodificar uma sequência de vìdeo digital usando predição de movimento compensado, terminal de miltimìdia, e, codec de vìdeo
JP4120301B2 (ja) 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
JP2003319394A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
US7170937B2 (en) * 2002-05-01 2007-01-30 Texas Instruments Incorporated Complexity-scalable intra-frame prediction technique
EP3139606B1 (en) 2002-05-28 2019-07-10 Dolby International AB Method and systems for image intra-prediction mode estimation, communication, and organization
US7289674B2 (en) 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
CA2488266C (en) * 2002-06-11 2013-08-13 Nokia Corporation Spatial prediction based intra coding
US7239721B1 (en) 2002-07-14 2007-07-03 Apple Inc. Adaptive motion estimation
US7742525B1 (en) 2002-07-14 2010-06-22 Apple Inc. Adaptive motion estimation
FR2844131B1 (fr) * 2002-09-03 2004-11-12 St Microelectronics Sa Procede et dispositif d'interpolation d'images avec compensation du mouvement
JP3977716B2 (ja) 2002-09-20 2007-09-19 株式会社東芝 動画像符号化/復号化方法及び装置
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
GB2395778A (en) * 2002-11-29 2004-06-02 Sony Uk Ltd Face detection
HUP0301368A3 (en) 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
US7280597B2 (en) 2003-06-24 2007-10-09 Mitsubishi Electric Research Laboratories, Inc. System and method for determining coding modes, DCT types and quantizers for video coding
JP2005020294A (ja) 2003-06-25 2005-01-20 Sony Corp ブロック歪低減装置
US7646437B1 (en) 2003-09-03 2010-01-12 Apple Inc. Look-ahead system and method for pan and zoom detection in video sequences
KR100595616B1 (ko) 2003-11-24 2006-06-30 엘지전자 주식회사 디지털 동영상 트랜스코딩을 위한 움직임 추정 방법
KR100596706B1 (ko) * 2003-12-01 2006-07-04 삼성전자주식회사 스케일러블 비디오 코딩 및 디코딩 방법, 이를 위한 장치
KR20050061762A (ko) 2003-12-18 2005-06-23 학교법인 대양학원 부호화 모드 결정방법, 움직임 추정방법 및 부호화 장치
JP4127818B2 (ja) * 2003-12-24 2008-07-30 株式会社東芝 動画像符号化方法及びその装置
US7469070B2 (en) 2004-02-09 2008-12-23 Lsi Corporation Method for selection of contexts for arithmetic coding of reference picture and motion vector residual bitstream syntax elements
JP4383240B2 (ja) * 2004-04-30 2009-12-16 日本放送協会 画面内予測符号化装置、その方法及びそのプログラム
US8467447B2 (en) * 2004-05-07 2013-06-18 International Business Machines Corporation Method and apparatus to determine prediction modes to achieve fast video encoding
JP2005348280A (ja) * 2004-06-07 2005-12-15 Nippon Telegr & Teleph Corp <Ntt> 画像符号化方法、画像符号化装置、画像符号化プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
US20050286777A1 (en) 2004-06-27 2005-12-29 Roger Kumar Encoding and decoding images
US8111752B2 (en) 2004-06-27 2012-02-07 Apple Inc. Encoding mode pruning during video encoding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060285A (en) * 1989-05-19 1991-10-22 Gte Laboratories Incorporated Hierarchical variable block size address-vector quantization using inter-block correlation
US6192081B1 (en) * 1995-10-26 2001-02-20 Sarnoff Corporation Apparatus and method for selecting a coding mode in a block-based coding system
EP1610563A2 (en) * 2004-06-27 2005-12-28 Apple Computer, Inc. Selecting encoding types and predictive modes for encoding video data
EP1610563A3 (en) 2004-06-27 2010-07-28 Apple Inc. Selecting encoding types and predictive modes for encoding video data

Also Published As

Publication number Publication date
EP1610563A2 (en) 2005-12-28
US8018994B2 (en) 2011-09-13
CN101945279B (zh) 2012-09-05
JP5318159B2 (ja) 2013-10-16
EP1610563A3 (en) 2010-07-28
JP2013153515A (ja) 2013-08-08
US20050286630A1 (en) 2005-12-29
TWI350697B (en) 2011-10-11
JP2006014342A (ja) 2006-01-12
CN101945280B (zh) 2012-09-05
US20110286522A1 (en) 2011-11-24
KR20120004370A (ko) 2012-01-12
KR101152576B1 (ko) 2012-06-01
US7792188B2 (en) 2010-09-07
US20100290526A1 (en) 2010-11-18
JP4949647B2 (ja) 2012-06-13
CN101945280A (zh) 2011-01-12
KR20060092813A (ko) 2006-08-23
CN101945279A (zh) 2011-01-12
TW200623885A (en) 2006-07-01
JP2011239443A (ja) 2011-11-24
JP5711405B2 (ja) 2015-04-30
KR20100038335A (ko) 2010-04-14
JP5559900B2 (ja) 2014-07-23
JP2014161094A (ja) 2014-09-04
KR101208863B1 (ko) 2012-12-05
US8472516B2 (en) 2013-06-25

Similar Documents

Publication Publication Date Title
KR101155767B1 (ko) 비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드선택
JP4885486B2 (ja) 画像の符号化および復号化
CN1809161B (zh) 对编码视频数据选择编码类型和预测模式
KR20170084239A (ko) 디지털 이미지를 처리하는 방법 및 시스템
US20240031576A1 (en) Method and apparatus for video predictive coding
CN111741297A (zh) 帧间预测方法、视频编码方法及其相关装置
KR100845209B1 (ko) 인트라 예측 모드를 선택하는 방법 및 장치
CN117156133B (zh) 一种视频编码的帧间预测模式选择方法及装置
AU2021103378A4 (en) A self-adaptive n-depth context tree weighting method
CN116170594B (zh) 一种基于率失真代价预测的编码方法和装置
KR100780124B1 (ko) 이미지들의 인코딩 및 디코딩
KR102232047B1 (ko) Hevc 화면 내 예측 모드 결정 장치 및 방법

Legal Events

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

Payment date: 20150430

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160427

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170504

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 8