KR20080068662A - 비디오 인코딩을 위한 코딩 모드 결정 시스템 및 방법 - Google Patents

비디오 인코딩을 위한 코딩 모드 결정 시스템 및 방법 Download PDF

Info

Publication number
KR20080068662A
KR20080068662A KR1020087009362A KR20087009362A KR20080068662A KR 20080068662 A KR20080068662 A KR 20080068662A KR 1020087009362 A KR1020087009362 A KR 1020087009362A KR 20087009362 A KR20087009362 A KR 20087009362A KR 20080068662 A KR20080068662 A KR 20080068662A
Authority
KR
South Korea
Prior art keywords
value
microblock
current
circuit
intersad
Prior art date
Application number
KR1020087009362A
Other languages
English (en)
Other versions
KR101299421B1 (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 KR20080068662A publication Critical patent/KR20080068662A/ko
Application granted granted Critical
Publication of KR101299421B1 publication Critical patent/KR101299421B1/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/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/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/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/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/567Motion estimation based on rate distortion criteria

Landscapes

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

Abstract

현재 비디오 프레임(501)의 현재 마이크로블럭(microblock)에 대한 코딩 모드 결정을 하는 방법은, INTERSAD 값을 결정하는 단계, 상기 현재 비디오 프레임과 연관된 적어도 하나의 비디오 특성을 선택하는 단계, 상기 INTERSAD 값과, 각각의 선택된 비디오 특성의 대응하는 범위를 비교하는 단계, 상기 INTERSAD 값이 상기 각각의 선택된 비디오 특성의 대응하는 범위 내에 있으면, 인터프레임 코딩을 선택하는 단계, INTERSAD 값이 임의 선택된 비디오 특성의 아웃라이어(outlier)이면, 인트라프레임 예측 마이크로블럭을 제공하기 위한 인트라프레임(intraframe) 예측(505)을 수행하고, INTRASAD 값을 결정하는 단계, 그리고 그렇지 않으면 인터프레임 코딩을 선택하는 단계를 포함한다. 비디오 특성들은, 인터프레임 차이 합들의 평균, 현재 마이크로블럭의 각각의 화소 값 그리고 현재의 마이크로블럭의 평균 화소 값 사이의 절대 차이들의 합, 및 양자화 파라미터의 임의 조합에 기초할 수 있다.
비디오 인코딩, 코딩 모드 결정, 마이크로블럭, 비디오 특성, INTERSAD/INTRASAD, 인터프레임/인트라프레임, 아웃라이어, 예측 마이크로블럭, 기준 마이크로블럭, MEANSAD, SADM, 양자화 파라미터, 모션 추정/보상/결정, 모션 모드, 모션 벡터, 스킵 신호

Description

비디오 인코딩을 위한 코딩 모드 결정 시스템 및 방법{System and method of coding mode decision for video encoding}
본 발명은 일반적으로 비디오 인코딩에 관한 것이고, 더 구체적으로는, 비디오 프레임의 마이크로블럭들(microblocks;MBs)에 대한 코딩 방법을 선택하는 시스템 및 방법에 관한 것이다.
AVC(Advanced Video Coding) 표준, 다르게는 H.264로서 알려진 MPEG4(Motion Picture Experts Group)의 제 10 부는, 더 낮은 비트 레이트에서 비디오 신호들의 전송 또는 감소된 저장 공간을 사용한 비디오 신호들의 저장이 가능하도록 개발된 진보된 압축 기술들을 포함한다. 이 새로운 표준은, 더 낮은 비트-레이트들에서 더 높은 품질의 스트리밍 비디오를 지원하기 위해 그리고 인터넷-기반 비디오 및 무선 어플리케이션들 등이 가능하도록 하기 위해 이전 표준들의 비디오 압축 표준들 이상의 성능을 발휘한다. 상기 표준은 CODEC(인코더/디코더 쌍)을 정의하지 않지만, 그 대신 비트스트림을 디코딩하는 방법과 함께 인코딩된 비디오 비트스트림의 신텍스(syntax)를 정의한다. 각각의 비디오 프레임은 서브-분할되어 마이크로블럭들(MBs) 레벨에서 인코딩되고, 여기서 각각의 MB는 화소들의 16 x 16 블럭이다. 각각의 MB는 예측 MB가 현재 프레임에서 재구성된 MB들에 기초하여 형성되는 '인트라프레임(intraframe)' 모드, 또는 예측 MB가 기준 프레임들의 MB들에 기초하여 형성되는 '인터프레임(interframe)' 모드에서 인코딩된다. 인트라프레임 코딩 모드는, 예측 MB가, 이전에 인코딩되고, 디코딩되고, 재구성된 현재 프레임의 샘플들로부터 형성되는 현재 프레임 내에 공간 정보를 적용한다. 인터프레임 코딩 모드는 예측 MB를 형성하기 위한 모션(motion)을 추정하기 위해 이전 및/또는 미래 기준 프레임들로부터 시간 정보를 사용한다.
ISO/ITU의 JVT(Joint Video Team)의 JM85에 따르는 것과 같은, 소위 "기준 CODEC"은 인코더에 대한 코딩 모드 결정들을 하는 방법을 병합한다. 기준 CODEC는 인터프레임 및 인트라프레임 코딩 모두를 수행하고 각각의 코딩 결과에 대한 비트-레이트와 왜곡(distortion)을 계산하고, 더 나은 비트-레이트와 왜곡을 갖는 코딩 방법을 선택하므로, 강도있는 계산을 한다. 기준 CODEC 인코딩 처리는 각각의 인터프레임과 인트라프레임 코딩 방법에 대해 잔여(residual) 혹은 차이(difference) 블럭에 대한 계산 강도가 높은 블럭 변환 및 양자화와 관련된다. 기준 CODEC 인코딩 처리는 왜곡이 재구성된 MB로부터 결정되고 레이트가 MB를 코딩하기 위해 필요한 비트-레이트인 각각의 방법에 대해 실제 레이트와 왜곡 계산들을 더 요구한다. 이것은 잠재적으로 최적의 결과들을 달성하지만, 기준 CODEC 인코딩 처리는 가치있는 자원들을 소비하고 다수의 어플리케이션들에 대한 실용적 해결책으로서 고려되지 않는다. 예를 들어, 계산 강도가 높은 인트라프레임 예측 처리는 인트라프레임 코딩 방법이 거절되더라도 각각의 MB에 대해 수행된다.
인코더의 복잡도는, 컴퓨팅과 전력 자원들이 제한된 비디오를 사용하는 멀티 미디어 어플리케이션들, 특히 무선 및 모바일 디바이스들에서 병목(bottleneck)이다. 수용가능한 코딩 효과 및 시각적 품질을 제공하면서, 모드 결정을 단순화하고 자원들을 절약하기 위해 인터프레임과 인트라프레임 코딩 결정들의 균형을 잡는 것이 바람직하다. 코딩 효율, 비디오 품질, 및 계산 성능의 균형을 맞추는 적절한 모드 결정 처리를 제공하는 것이 바람직하다. 또한, MB가 큰 이동하는 물체의 일부일 때와 같이, 불확실한 상태들 하에서 MB의 인코딩 처리를 바이패스(bypass)하기 위해 스킵(skip) 모드의 이득을 얻는 것이 바람직하다.
본 발명의 이득들, 특징들, 및 이점들은, 첨부된 도면과 이하 설명에 대해 더 잘 이해가 될 것이다:
도 1은 종래 기술에 따라서 기준 CODEC에 의해 수행되는 일 예시적인 인코딩 처리를 나타내는 일 단순화된 흐름도이다.
도 2는 본 발명의 일 실시예에 따라 수행되는 일 예시적 인코딩 처리를 나타내는 일 단순화된 흐름도이다.
도 3 및 도 4는 도 2의 흐름도의 부분들의 대안적인 실시예들을 나타내는 흐름도들이다.
도 5는 본 발명의 일 예시적인 실시예에 따라서 구현되는 인코더의 일 단순화된 블럭도이다.
도 6은 본 발명의 일 실시예에 따라서 도 5의 모드 결정 회로의 일 실시예의 일 단순화된 블럭도이다.
이하 설명은 특정 어플리케이션과 그것의 요구사항들의 문맥 내에서 제공되는 것처럼 당업자가 본 발명을 만들고 사용하도록 제공된다. 그러나, 선호되는 실시예의 다양한 수정들이 당업자에게 명백할 것이고, 본 명세서에서 정의된 일반 원칙들은 다른 실시예들에게 적용될 수 있다. 그러므로, 본 발명은 본 명세서에 도시되고 설명된 특정 실시예들에 제한되려고 의도되지는 않지만, 본 명세서에 개시된 원칙들 및 새로운 특징들과 일관된 넓은 범위에 따라야 한다.
도 1은 종래 기술에 따른 기준 CODEC에 의해 수행되는 일 예시적인 인코딩 처리를 나타내는 일 단순화된 흐름도이다. 제 1 블럭(101)에서, 모션 추정 처리는 인코딩되는 현재 프레임의 현재 마이크로블럭(MB)에 대해 수행된다. 모션 추정 처리는 당업자들에 의해 알려졌고, 상세히는 설명되지 않는다. 기준 MB는, 최종 혹은 이전 인코딩된 프레임으로부터와 같이, 식별되고, 종래 모션 추정 처리는 기준 MB와 현재 MB 사이에 적어도 하나의 모션 벡터(motion vector;MV)를 결정한다. 더욱이, 모션 추정 처리의 부산물(byproduct)은, 이미 인코딩된 현재 프레임의 이웃 혹은 인접 MB들의 모션 벡터들의 미디안(median) 값인 미디안 MV이다. 인접 마이크로블럭들은 통상, 당업자에게 알려진 것처럼, 현재 MB에 대해 우측상단 MB, 상단중간 MB, 좌측상단 MB, 및 좌측 MB를 포함한다. 도시된 실시예에서 모션 추정의 목적들을 위해, 단지 "루마(luma)" 혹은 밝기 정보만이 사용된다. 기준 MB는 정수 레벨에서(즉, 화소 레벨까지 다운하여) 또는 선택적으로 더욱 정확성을 위해 1/2 혹은 1/4 화소 해상도와 같이 서브-화소 레벨에서 식별될 수 있다. 서브-화소 해 상도에 대해, MB의 화소들은 둘러싼 화소 정보로부터 보간된다. 다음 블럭(103)에서, 모션 보상 처리가 기준 MB에 대해 수행되고, 모션 보상 예측 MB가 결정된다. 현재 MB의 색 정보는 도시된 실시예에서 모션 보상을 목적으로 포함된다. 필요하면, 모션 추정 처리 동안 보간이 이미 수행되었으므로, 상기 보간은 모션 보상된 예측 MB를 제공하기 위해 모션 보상 동안에 색 정보에 적용된다.
다음 블럭(105)에서, 모션 보상된 MB는 결과적 잔여 MB를 제공하기 위해 현재 MB로부터 감산되고, 이것은 다른 프레임으로부터 정보를 사용하여 결정되므로 인터프레임 잔여 MB로서 지칭된다. 다음 블럭(107)에서, 이산 코사인 변환(discrete cosine transform;DCT) 혹은 임의 다른 적절한 변환 함수를 사용하는 것과 같이, 인터프레임 잔여 MB에 대해 블럭 변환이 수행된다. 다음 블럭(109)에서, 양자화된 변환 계수들을 제공하기 위해 변환된 결과에 대해 양자화 처리가 수행된다. 양자화 처리는 정확성의 특정 손실의 결과를 가져올 수 있는 디지털 라운딩(rounding) 처리이다. 그 후, 양자화된 변환 계수들은 저장 혹은 전송을 위해 압축된 비트스트림을 형성하기 위해 엔트로피 인코딩될 수 있다.
다음 블럭(111)에서, 역 양자화 및 역 변환 함수들은 양자화된 변환 계수들에 대해 수행되어 왜곡되거나 혹은 "추정되는" 인터프레임 잔여 MB를 달성하고 나서, 다음 블럭(113)에서 모션 보상되는 예측 MB에 더해져서 인터프레임 재구성 MB를 제공한다. 인터프레임 재구성된 MB는 현재 MB와 비교되어 다음 블럭(115)에서 인터프레임 코딩 처리를 위해, 레이트(R)와 왜곡(D) 값들 RINTER 및 DINTER 각각을 계산 한다. RINTER 및 DINTER 값들은 변환 처리의 상대적 성공을 효과적으로 결정한다.
인트라프레임 예측 처리는 인트라프레임 예측 MB를 제공하기 위해 다음 블럭(117)에서 수행된다. 인트라프레임 예측 MB는 현재 프레임에서 재구성된 MB들에 기초하는 것을 제외하고, 인터프레임 코딩 처리에 대한 모션 보상된 예측 MB와 유사하다. 다음 블럭(119)에서, 인트라프레임 예측 MB는 현재 MB로부터 감산되어 인트라프레임 잔여 MB를 제공하고나서, 블럭 변환 및 양자화 처리가 블럭들(121 및 123) 각각에 수행된다. 그 후, 양자화된 변환 계수들은 엔트로피 인코딩되어 전송 혹은 저장을 위해 압축된 비트스트림을 형성한다. 다음 블럭(125)에서, 역 양자화 및 역 변환 함수는 양자화된 변환 계수들에 대해 수행되어 추정된 인트라프레임 잔여 MB를 달성하고나서, 다음 블럭(127)에서 인트라프레임 예측 MB에 더해져서 인트라프레임 재구성 MB를 제공한다. 인트라프레임 재구성된 MB는 현재 MB와 비교되어 다음 블럭(129)에서 인트라프레임 코딩 처리에 대한, 레이트 및 왜곡 값들 RINTRA 및 DINTRA 각각을 계산한다. 다음 블럭(131)에서, 인터프레임 코딩을 위한 RINTER 및 DINTER값들 그리고 인트라프레임 코딩을 위한 RINTER 및 DINTER 값들이 비교되고, 단지 이들 코딩 방법들 중의 하나만이 현재 MB를 위한 인코딩을 위해 선택된다. 다음 블럭(133)에서, 인코딩될 추가 마이크로블럭들이 존재하는지의 여부가 질의된다. 추가 MB들이 인코딩되어야 하면, 연산은 다음 MB가 현재 MB가 되는 블럭(101)으로 복귀하여, 상기 처리가 반복된다. 현재 프레임이 완료되면, 현재 프레임은 이전 프레임이 되고, 다음 프레임은, 만약 존재하면, 인코딩될 현재 프레임이 된다. 그 후, 재구성되는 프레임은 필터링되고나서(즉, 디블럭킹(deblocking) 필터), 인터프레임 코딩 목적들을 위해 기준 프레임 데이터베이스에 저장된다.
이전에 서술된 것처럼, 기준 CODEC의 인코딩 처리는 인터프레임과 인트라프레임 코딩 모두를 수행하고 각각에 대해 비트-레이트 및 왜곡을 계산하고, 더 나은 비트-레이트 및 왜곡 결과들을 제공하는 코딩 방법의 결과들을 선택하므로, 계산의 강도가 높다. 기준 인코딩 처리는, 왜곡이 재구성 MB로부터 결정되고 레이트가 MB를 코딩하기 위해 필요한 비트 레이트인 실제 레이트 및 왜곡 계산들을 요구한다. 이것이 전체적으로 최적의 결과들을 달성할 수 있지만, 기준 CODEC에 따른 구현은 가치있는 자원들을 소비하고 다수의 어플리케이션들에 대해 실용적인 해결책으로서 고려되지 않는다. 예를 들어, 강도높은 계산인 인트라프레임 예측 처리는 선택되지 않아서 이 경우 그 결과들이 버려지더라도 각각의 MB에 대해 수행된다. 기준 CODEC의 소프트웨어 혹은 코드 구현은, 다양한 함수들이, 예를 들어, 인터프레임 잔여 MB에 대한 인트라프레임 잔여 MB와 같은 각각의 코딩 방법들로부터 상이한 데이터를 갖는 동일한 함수 블럭들에 의해 수행되는 루프(loop) 등을 포함하여 수행된다.
도 2는 본 발명의 일 실시예에 따라 수행되는 일 예시적인 인코딩 처리를 나타내는 단순화된 일 흐름도이다. 모션 추정 처리는, 기준 MB, 적어도 하나의 모션 벡터, 및 미디언 MV가 결정되는 제 1 블럭(201)에서 수행된다. 이전에 설명된 것처럼, 기준 MB는, 서브-화소 정확성이 원해지면 보간된 정보로부터 유도될 수 있다. 또한, 절대 차이(혹은 "INTRASAD") 값의 인터프레임 합은 현재 MB와 기준 MB 에 기초하여 계산된다. INTERSAD 값을 결정하기 위해, 기준 MB의 각각의 화소 값은 현재 MB의 대응하는 화소로부터 감산되어 차이 값을 결정하고, 차이 값에 대해 절대 값이 결정되고, 모든 차이 값들의 합은 서로 더해진다. 이 방식으로, INTERSAD 값은 기준 MB와 현재 MB 사이의 차이를 나타낸다.
현재 MB가 큰 이동하는 물체의 일부를 형성할 때와 같이, 현재 MB가 인코딩되지 않고 스킵될 수 있는지의 여부가 질의되는 다음 블럭(203)으로 연산이 진행된다. H.264는 코딩 효율을 위해 스킵 모드를 제공하여 전체 모션들을 핸들링하도록 한다. 현재 MB가 16 x 16 모션 모드인 것으로서 결정되면, INTERSAD가 양자화 값과 비교하여 비교적 작으면, MV가 미디어 MV와 같으면, 그리고 인터프레임 코딩에 대해 단지 하나의 기본 프레임이 사용되고 있으면(그리고 그것은 스킵핑 목적인 이전 프레임임), 현재 MB의 코딩이 추후 코딩 처리에서 스킵될 수 있다. 단지 최종 프레임이 인코딩 목적을 위해 한 기준 프레임이면, 플래그 1RF가 참이다. H.264 표준은 16 x 16(전체 MB에 대해 단일 MV가 제공됨)에서 그 사이에 다수의 옵션들을 갖는 4 x 4 휘도 샘플들까지의 범위의 상이한 모션 보상 블럭 크기들(16 x 8, 8 x 16, 그리고 8 x 4, 4 x 8, 및 4 x 4를 포함하는 8 x 8의 다양한 크기를 포함함)을 지원한다. INTERSAD 값은 F3*QP 값과 비교되고, 여기서 QP는 MB 혹은 프레임을 인코딩한 후 비트스트림에서 요구되는 비트들의 수를 추정하는 레이트 제어기에 의해 제공되는 양자화 파라미터이다. F3은 비교 목적을 위해 INTERSAD 값과 QP를 효과적으로 정규화하는 사전결정된 상수 혹은 변수이고, 별표"*"는 곱셈을 나타낸다. 일 실시예에서, F3은 32와 같은 상수이다. 레이트 제어기로부터의 QP의 상승은, 제한된 대역폭을 갖는 복잡한 장면으로 "고전(struggling)"할 때와 같이, 인코더의 스트레싱(stressing)을 나타낸다.
블럭(203)에 리스트된 조건들 중의 임의 것이 거짓이면, 연산은 블럭(205)으로 진행하여, 2개의 상이한 절대 차이의 합(sum of absolute difference;SAD) 값들이, MEANSAD 값과 SADM 값을 포함하여, 계산되거나 혹은 결정된다. MEANSAD 값은 다양한 상이한 방법들 중의 임의 것을 사용하여 결정된다. 일 실시예에서, MEANSAD는 전체 이전 프레임의 INTERSAD 값들의 평균이다. INTERSAD 값이 각각의 MB에 대해 모션 추정 동안 결정되므로, 모든 MB들의 INTERSAD 값들은 프레임의 코딩이 완료 후에 함께 평균화되고, 그 결과는 그 프레임에 대해 MEANSAD 값이다. 대안적으로, 인코딩 동안 실행 평균이 계속 유지되고(즉, 각각의 새로운 MB와 조정됨) 최종 평균화된 INTERSAD 값은 그 프레임에 대해 MEANSAD이다. 대안적 일 실시예에서, MEANSAD는 이전 인코딩된 프레임의 단지 인접 MB들의 평균 INTERSAD이다. 그러므로, 전체 이전 프레임의 INTERSAD들을 평균화하는 대신, 이전 프레임의 인접 MB들의 평균 INTERSAD들이 사용된다. 이전 프레임이 이미 완전히 인코딩되었으므로, 인접 블럭들은 모든 8개의 인접 MB들(즉, 좌측상단, 상단중간, 우측상단, 좌측, 우측, 좌측하단, 하단중간, 우측하단), 혹은 이들의 임의 선택된 부분집합을 포함할 수 있다. 또 다른 대안적 실시예에서, MEANSAD는 현재 프레임의 INTERSAD들의 실행 평균이다. 상술된 바와 같이, INTERSAD들의 실행 평균은 계속 유지되어 각각의 새로운 INTERSAD와 업데이트되고, 여기서 현재 프레임의 실행 평균은 MEANSAD로서 사용된다. 또 다른 대안적 일 실시예에서, MEANSAD는 현재 프레임의 인접 MB의 INTERSAD들의 평균이다.
SADM 값은 현재 MB의 평균 화소 값에 상대적인 현재 MB의 16 x 16 화소들 전체의 SAD 값이다. SAD 값은 MB 분산의 근사이고, 현재 MB의 상대적 균질성을 나타낸다. 큰 값의 SADM은, 영역들의 경계들 상에 위치될 확률이 가장 높은 비균질성 MB를 나타낸다. SADM이 비교적 크면, 인트라프레임 모드에서 공간적 상관이 감소되어 존재하므로, 인터프레임 코딩이 더 나은 시각적 품질의 결과를 낼 확률이 더 높다고 여겨진다.
그 후, 연산은, 블럭(207)으로 진행하여, 값 T가, 제 1 함수 F1 곱하기 MEANSAD, 제 2함수 F2 곱하기 SADM, 그리고 제 3 함수 F3 곱하기 QP 중의 최소값과 같도록 설정된다. 함수들 F1 내지 F3은 INTERSAD 값과 비교를 목적으로 MEANSAD, SADM, 및 QP 값들을 효과적으로 정규화하고 컨버트(convert)하는 사전결정된 상수들 혹은 변수들일다. 일 실시예에서, 전술한 것처럼, F1은 1.5와 같은 상수이고, F2는 1.0과 같은 상수이고, F3은 32와 같은 상수이다. 각각 시간적, 공간적, 및 비트-레이트를 나타내는 MEANSAD, SADM, 및 QP 값들은 일반적으로 상대적인 INTERSAD 값을 결정하는 목적을 위해 일반적으로 선택되는 비디오 특성들이다. 이하 더 설명될 것처럼, 비디오 특성들 중의 임의의 하나 이상의 특성들은 비교 목적을 위해 선택된다. 비디오 특성들 중의 임의 것에 기초되는 코딩 모드 결정은 노 모드(no mode) 결정 판정과 비교하여 개선될 수 있다. 비디오 특성들의 3개 모두의 비교는, 비디오 특성들 중의 임의 것을 생략하는 것과 비교하여, 최고의 전체 코딩 모드 결정을 제공한다.
다음 블럭(209)에서, INTERSAD가, 상술된 것과 같이 블럭(207)에 리스트된 3개의 상이한 비디오 특성들 중의 최소인 T 이하인지의 여부가 질의된다. 함수들 F1, F2, 및 F3는 각각의 비디오 특성들에 대해 임계 값들 혹은 "범위들"을 설정한다. INTERSAD 값들의 분포가 가우스(Gaussian) 모델에 정합되면, 임계치들은 그 프레임에서 더 큰 INTERSAD 값들의 결정 및 추출이 가능하도록 설정된다. 일반적으로, 모션 추정 처리로부터의 비교적 큰 값의 INTERSAD는, 후속적 프레임들에서 장면 변경 혹은 비천이(non-translational) 움직임으로 인해 ME 처리가 실패할 수 있슴을 나타낸다. INTERSAD는 통계에서 모션 "아웃라이어(outlier)"로서 효과적으로 정의된다. 현재 MB의 INTERSAD 값은 평탄하거나 비교적 균일한 모션 패턴을 나타내기 위해 마이크로블럭 INTERSAD 값들의 사전결정된 평균값의 편차 내에 있어야 한다(즉, 현재 INTERSAD 값은 이전 프레임의 평균, 혹은 이전 프레임의 인접 MB들, 혹은 현재 프레임의 MB들의 실행 평균 등에 대해 검사됨). 프레임에서 프레임으로(또는 프레임 내에서) INTERSAD 값들의 평균들은 장면에서 큰 변화없이 평탄하고 비교적 균일한 모션 패턴을 나타낸다. SADM에 상대적으로 INTERSAD의 큰 차이는 프레임 내의 영역들의 경계들 상에 존재할 수 있는 비균질성 MB를 나타내어, MB와 그것의 인접한 MB들 내에 감소된 공간적 상관이 존재한다. 이 경우, 시간적 상관을 사용하는 인터프레임 코딩 모드가 현재 MB에 대해 더 나은 시각적 품질을 달성할 확률이 더 높은 것으로 여겨진다고 판정된다. 레이트 제어기로부터의 QP의 증가는, 제한된 대역폭으로 복잡한 장면과 "고전"할 때와 같이, 인코더의 스트레싱을 나타낸다. 이 경우, 인트라프레임 코딩 모드는 더 높은 비트-레이트의 결과를 가 져온다고 여겨지므로, 상황을 악화시킨다.
블럭(209)에서 판정된 것처럼, INTERSAD가 T보다 더 크면, 연산은 블럭(211)으로 진행하여, 인트라프레임 예측 처리가, 이전에 인코딩된 현재 프레임의 인접 MB에 기초하여 인트라프레임 예측 MB를 결정하도록 수행된다. 또한, 현재 MB와 예측된 MB 사이의 SAD인 INTRASAD 값이 결정된다. 그 후, 연산은 블럭(213)으로 진행하여, INTERSAD가 INTRASAD와 비교된다. 블럭(213)에서 수행되는 비교는 인터프레임과 인트라프레임 코딩 간의 코딩의 상대적 "비용"을 나타낸다. INTERSAD가 INTRASAD보다 더 크면, 인트라프레임 예측 모드가 선택되어, 인트라프레임 예측 MB는 예측 MB로서 선택된다. 블럭(215)으로부터, 연산은 이하 설명되는 것처럼 블럭(219)으로 진행한다. 블럭(203)의 모든 조건들이 만족되거나, 또는 INTERSAD가 블럭(209)에 판정된 것처럼 T 이하이거나, 또는 INTERSAD가 블럭(213)에서 판정되는 것처럼 INTRASAD 이하이면, 연산은 대신 블럭(217)으로 진행하여, 모션 보상이 기준 MB에 대해 수행되어 모션 보상된(motion compensated;MC) 예측 MB를 제공한다.
인트라프레임 예측 MB가 블럭(215)에서 예측 MB로서 선택된 후, 또는 MC 예측 MB가 블럭(217)에서 예측 MB로서 선택된 후, 연산은 블럭(219)으로 진행하여, 잔여 MB는 선택된 예측 MB에 기초하여 계산된다. 단지 하나의 잔여 MB만이 예측 MB로서 선택되므로, 잔여 MB에 대해 인터프레임과 인트라프레임 사이에 구별할 필요가 없고, 선택된 예측 MB가 현재 MB로부터 감산되어 잔여 MB를 결정함을 주목한다. 그 후, 연산은 블럭(221)으로 진행하여, 전술한 것처럼, 블럭 변환이 잔여 MB 에 대해 수행된다. 그 후, 연산은 블럭(223)으로 진행하여, 블럭(221)으로부터의 변환 결과의 양자화가 양자화된 변환 계수들을 제공하기 위해 수행된다. 그 후, 연산은 블럭(225)으로 진행하여, 역 양자화와 역 변환을 수행하여 추정된 잔여 MB를 제공한다. 그 후, 연산은 블럭(227)으로 진행하여, 추정된 잔여 MB가 선택되는 예측 MB에 더해져서 재구성되는 MB를 제공한다. 전술된 것처럼, 그 후, 재구성된 프레임은 디블럭킹 필터를 통해 필터링되고나서, 기준 프레임 데이터베이스에 저장된다. 또한, 이하 설명되는 것처럼, 필터링되지 않은 재구성 MB들은 인트라프레임 예측 처리의 목적을 위해 사용되는 재구성된 프레임의 일부를 구성한다.
도 3은 점선들을 사용하여 도시된 블럭들(203, 211, 및 217) 사이에 도 2의 블럭들(205, 207, 및 209)을 교체하는 일 대안적 실시예를 나타내는 흐름도이다. 도 2에 도시된 블럭들이 일반 기능적 양태들을 나타내고 상기 기능들을 수행하기 위한 실제 구현이 다수의 대안적인 방식들로 달성될 수 있슴이 이해된다. 도 3의 흐름도는 동일한 기능을 수행하지만, 소프트웨어 코딩 및/또는 회로 구현 모두에 대해 개선된 계산 성능을 허용한다. 도 3에 도시된 것처럼, 예를 들어, 블럭(203) 후, 연산은 대신 블럭(301)으로 진행하여, INTERSAD 값이 F3*QP보다 더 큰지의 여부가 질의된다. 만약 그렇다면, SADM 혹은 MEANSAD를 더 결정할 필요가 없고, 연산은 직접 블럭(211)으로 진행한다. 이 경우, QP 값은 레이트 제어기로부터 쉽게 이용가능하므로, 검사하기에 가장 간단한 조건이다. INTERSAD 값이 F3*QP보다 더 크지 않으면, 연산은 블럭(303)으로 진행하여, MEANSAD 값이 결정되고나서, 블럭(305)으로 진행하여, INTERSAD 값이 F1*MEANSAD보다 더 큰지의 여부가 질의된다. 이 경우, MEANSAD가 SADM보다 더 용이하게 계산되어, SADM이 단지 필요하면 결정되도록 함이 여겨진다. INTERSAD 값이 F1*MEANSAD보다 더 크면, 이전처럼 연산은 블럭(211)으로 직접적으로 진행하고, SADM에 대한 계산은 스킵된다. INTERSAD 값이 F1*MEANSAD보다 더 크지 않으면, 연산은 블럭(307)으로 대신 진행하여, SAD 값이 결정되고나서, 블럭(309)으로 진행하여, INTERSAD 값이 F2*SADM보다 더 큰지의 여부가 질의된다. INTERSAD 값이 F2*SADM보다 더 크면, 연산은 직접 블럭(211)으로 진행하고, 그렇지 않으면, 연산은 블럭(217)으로 진행한다. 도 3에 도시된 비디오 특성 비교들의 특정 순서는 예제일 뿐이고, 더 나은 결과들을 달성할 것이라고 여겨지면 변경될 수 있다. 예를 들어, SADM이 MEANSAD보다 더 용이하게 계산된다고 결정되면, SADM 값과 비교가 MEANSAD 비교 이전에 수행될 수 있다.
도 4는 점선들을 사용하여 다시 도시된, 블럭들(203, 211, 및 217) 사이에 도 2의 블럭들(205, 207, 및 209)을 교체하는 또 다른 대안적 실시예를 나타내고, 비디오 특성들의 선택과 우선순위화를 나타내는 흐름도이다. 이 경우, 연산은 블럭(203)에서 블럭(401)으로 진행하여, MEANSAD 값이 먼저 결정되고나서, 블럭(403)에서, INTERSAD 값이 F1*MEANSAD 이하인지의 여부를 판정한다. 이 경우, MEANSAD 결정 및 INTERSD 값과의 비교는 QP와 SADM 비교들에 비해 우선권을 갖는다고 여겨져서, 그것이 먼저 결정된다. INTERSAD 값이 F1*MEANSAD 이하이면, 연산은 직접 블럭(217)으로 진행하고, 인터프레임 코딩이 선택되고, QP, SADM, 및 INTRASAD에 대한 추가 비교들이 바이패스된다. INTERSAD 값이 F1*MEANSAD보다 더 크면, 연산은 블럭(405)으로 대신 진행하여, INTERSAD 값이 F3*QP 이하인지의 여부가 질의되 고, 본 예제에서, 이것은 다음 최고 우선권 결정으로서 여겨진다. INTERSAD 값이 F3*QP 이하이면, 연산은 직접 블럭(217)으로 진행하고, 인터프레임 코딩이 선택되고, SADM 및 INTRASAD에 대한 추가 비교들이 바이패스된다. INTERSAD 값이 F3*QP보다 더 크면, 연산은 대신 블럭(407)으로 진행하여, SADM이 계산되고나서, 블럭(409)으로 진행하여, INTERSAD 값이 F2*SADM 이하인지의 여부가 질의되고, 본 예에서, 가장 낮은 우선권 결정으로서 여겨진다. INTERSAD 값이 F2*SADM 이하이면, 연산은 블럭(217)으로 진행하고, 그렇지 않으면, 연산은 직접 블럭(211)으로 진행한다. 본 예에서, 블럭들(205, 207, 및 209)의 기능은 비교들을 우선순위화하기 위해 변경된다.
다수의 다른 변형들이 가능하고 고려된다. 예를 들어, 도 2의 블럭(207)을 다시 참조하면, MIN 함수는 MAX 함수로 교체되어, INTERSAD 값이 F1*MEANSAD, F2*SADM, 혹은 F3*QP 중의 임의 것 이하인 한은 인터프레임 코딩 방법이 선택되도록 한다. 도 4는 기능의 여러 변형들을 나타내기 위해 점선들을 사용하여 도시된 여러 대안적인 경로들을 포함한다. 예를 들어, 비교를 위해 단지 MEANSAD 값만을 선택하는 것이 바람직하면, 대안적 경로(411)는, INTERSAD 값이 F1*MEANSAD보다 더 크면, 연산이 직접 블럭(211)으로 진행함을 나타낸다, 또는, 비교를 위해 단지 QP 값만이 선택되는 것이 바람직하면, 대안적 경로(413)는 MEANSAD 비교를 바이패스하고, 직접 블럭(203)으로부터 블럭(405)으로 진행한다. 또한, 대안적 경로(415)는 SADM 비교를 바이패스하도록 제공되어, 연산이 대신 직접 블럭(211)으로 진행하도록 한다. 또는, 비교를 위해 단지 SADM 값만을 선택하는 것이 바람직하면, 대안적 경로(417)는 MEANSAD 및 QP 비교들을 바이패스하고, 직접 블럭(203)으로부터 블럭(407)으로 진행한다. 비교들이 임의 적절한 순서로 우선순위화될 수 있고 임의 하나 이상의 비디오 특성 비교들이 특정 구성에 따라 선택되거나 혹은 스킵될 수 있슴이 이해된다. 비교를 위해 3개의 비디오 특성들 모두의 선택은 비트-레이트와 왜곡에서 최상의 결과들을 제공한다.
도 5는 본 발명의 일 예시적 실시예에 따라 구현되는 인코더(500)의 단순화된 일 블럭도이다. 프레임 저장소(501)는, 모션 추정(ME) 회로(503)의 하나의 입력에, 인트라프레임 예측 회로(505)의 하나의 입력에, 결합기(507)(예를 들어, 가산기(adder), 감산기(subtractor) 등)의 양의 입력에, 모션 보상(MC) 회로(511)의 하나의 입력에, 그리고 모드 결정 회로(513)의 하나의 입력에 인코딩을 위한 현재 프레임 F를 제공한다. 또 다른 프레임 저장소(509)는 ME 회로(503)의 또 다른 입력에, 그리고 MC 회로(511)의 또 다른 입력에 기준 프레임(REF F)을 제공한다. 기준 프레임은 하나 이상의 이전에 인코딩과 디코딩된 프레임들을 포함한다. ME 회로(503)는, MC 회로(511)의 또 다른 입력에 그리고 모드 결정 회로(513)의 또 다른 입력에 결합되는, 그 출력에 모션 추정 정보를 제공한다. 모드 결정 회로(513)는 인트라프레임 예측 회로(505)의 인에이블(enable) 입력에 인트라프레임 인에이블 신호 INTRAE를 제공하는 제 1 출력, 그리고 MC 회로(511)의 인에이블 입력에 모션 보상 인에이블 신호 MCE를 제공하는 또 다른 출력을 갖는다. MC 회로(511)는, 입력 단자들 S1과 S2, 제어 입력 단자 C, 및 선택된 입력을 그것의 출력으로서 제공하는 공통 단자 CP를 갖는 단극쌍투(single-pole, double-throw;SPDT)로서 도시되 는, 선택기 스위치(515)의 제 1 입력 단자 S1에 모션 보상된 예측 정보(즉, 인터프레임 예측 MB)를 제공한다. 인트라프레임 예측 회로(505)는 모드 결정 회로(513)의 입력으로, 그리고 스위치(515)의 입력 단자 S2로 인트라프레임 예측 정보(즉, 인트라프레임 예측 MB)를 제공한다. 모드 결정 회로(513)는 MC(모션 보상 인터프레임 MB) 혹은 IP(인트라프레임 예측 MB) 사이에 선택하기 위해 스위치(515)의 제어 단자 C에 모드 결정 선택 신호 MSEL을 제공한다.
스위치(515)의 CP 단자는, 결합기(507)의 음의 입력에, 도시된 실시예에서 가산기인, 또 다른 결합기(517)의 양의 입력으로, 부호 P로서 도시되는 선택되는 예측 MB를 제공한다. 결합기(507)는 현재 프레임 F의 현재 MB로부터 선택된 예측 MB를 감산하여 변환 회로(519)의 입력에, 부호 R로서 도시되는, 잔여 MB를 제공한다. 변환 회로(519)는 전술된 바와 같이 DCT와 같은 블럭 변환을 수행하고, 부호 B로서 도시되는 변환 결과를 출력한다. 변환 결과 B는, 부호 X로서 도시되는, 양자화된 변환 계수들을 출력하는, 양자화 회로(521)에 제공된다. X 계수들은, 전송 혹은 저장을 위해 압축된 비트스트림을 제공하는, 엔트로피 인코드 회로(525)의 입력에 제공된다. 엔트로피 인코딩의 특정 세부사항들은 본 개시 범위 이상이고, 더 설명되지 않을 것이다.
X 계수들은, 변환 결과 B의 추정되거나 혹은 재구성되는 버전을 나타내는 부호 B'으로서 도시되는 추정된 변환 정보를 출력하는 역 양자화 회로(527)의 입력에 제공된다. 추정된 변환 정보 B'은 잔여 MB R의 재구성된 버전을 나타내는 부호 R'으로서 도시되는 추정된 잔여 정보를 출력하는 역 변환 회로(529)의 입력에 제공된 다. 재구성된 잔여 MB R'은 결합기(517)의 또 다른 양의 입력에 제공된다. 도시된 실시예에서, 결합기(517)는 P를 R'에 더하여, 재구성되는 프레임 정보 RF의 부분이 되는 필터링되지 않는 재구성된 MB를 생성한다. 재구성되는 프레임 정보 RF는 인트라프레임 예측 회로(505)의 또 다른 입력에 그리고 필터 회로(531)에 제공된다. 필터 회로(531)는 재구성된 프레임 RF 정보를 필터링하고 RF 저장소(533)에 필터링된 재구성 프레임들을 제공하는 디블럭킹 필터(예를 들어, H.264 사양에 따라)이다. RF 저장소(533)로부터 한 개 또는 두 개의 이전에 인코딩되고 디코딩되는 프레임들이 프레임 저장소(509)에 제공되어, 당업자에게 알려진 것처럼 인코딩 목적을 위해 기준 프레임들로서 역할한다.
인코더(500)의 연산은 도 2의 흐름도에 의해 설명된다(원하면 도 3 혹은 도 4의 흐름도들에 의해 수정되는 것처럼). 초기에, MCE와 INTRAE 인에이블 신호들은 모드 결정이 만들어질 때까지 거짓 혹은 음의 로우(low)이다. MSEL 신호는 위치(단자 S1 혹은 S2를 선택) 또는 모드 결정이 될 때까지 중간 위치(도시 안됨)에 디폴트가 될 것이다. 모션 추정 회로(503)는 블럭(201)에 대해 전술된 것처럼 모션 추정을 수행하고, 모드 결정 회로(513)와 MC 회로(511)로 그 결과들을 제공한다. 모드 결정 회로(513)는, 블럭 스킵핑 또는 이른 종료에 대한 조건들이 블럭(203)에 대해 설명된 것처럼 적용되는지의 여부를 판정한다. 만약 그렇다면, 모드 결정 회로(513)는 MCE 신호를 어설트하고, MC 회로(511)는 블럭(217)에 대해 위에 설명된 모션 보상 기능들을 수행하도록 된다. 또한, MSEL 신호는 MC 회로(511)의 MC 출력을 선택하도록 어설트된다. 이 경우, 인터프레임 코딩 모드가 선택되고, 인트라프 레임 코딩 처리가 전체 스킵된다. 블럭(203)의 조건들 중의 임의 것이 거짓이면, 모드 결정 회로(513)는 블럭(205, 207, 및 209)(또는 301, 303, 305, 307, 및 309 또는 401, 403, 405, 407, 및 409)의 기능들을 수행하여, 전술된 것처럼 선택된 비디오 특성들(즉, MEANSAD, SADM, QP)을 선택, 결정, 및 비교한다. 인터프레임 코딩이 선택되면, 모드 결정 회로(513)는 MCE 신호를 어설트하여 MC 회로(511)가 블럭(217)에 대해 상술된 모션 보상 기능들을 수행하고, MSEL 신호는 MC 회로(511)의 MC 출력을 선택하도록 어설트된다. 이 경우, 인트라프레임 코딩 처리들은 전체 스킵된다.
다른 경우, INTERSAD가 선택된 비디오 특성들의 아웃라이어들 내에 있지 않으면, 모드 결정 회로(513)는 INTRAE 신호를 어설트하고, 전술된 것처럼 인트라프레임 예측 회로(505)는 인트라프레임 예측을 수행하고 INTRASAD 값을 결정하도록 된다. INTRASAD 값은, 블럭(213)에 대해 설명된 것처럼, INTERSAD(모션 추정 회로(503)로부터)와 인트라프레임 예측 회로(505)로부터 INTRASAD를 비교하는 모드 결정 회로(513)에 제공된다. INTERSAD 값이 INTRASAD 이하이면, 모드 결정 회로(513)는 MCE 신호를 어설트하여 MC 회로(511)를 인에이블하고, MSEL 신호를 어설트하여 MC 회로(511)의 MC 출력을 선택한다. 인트라프레임 예측 처리의 초기 부분이 이 후자의 경우에 시작되지만, 그 결과들은 코딩되지 않고, 남은 인트라프레임 코딩 모드 처리들은 스킵된다. 그러나, 만약 INTERSAD 값이 INTRASAD보다 더 크면, 모드 결정 회로(513)는 MSEL 신호를 어설트하여 인트라프레임 예측 회로(505)의 IP 출력을 선택한다. 인트라프레임 코딩 방법이 선택되면, 모션 보상 회 로(511)는 인에이블되지 않아서(또는 그 출력이 거절됨), 추가 모션 보상 처리가 바이패스되거나 무시된다. 선택된 예측 MB P는 현재 프레임 F의 현재 MB의 현재 MB로부터 감산되어, 블럭(219)에 대해 설명되는 것처럼 잔여 MB R의 결과를 가져온다. 회로들(519, 521, 527, 및 529)은 블럭들(221, 223, 및 225)의 기능들을 수행하고, 추정된 잔여 MB R'은 결합기(517)에 의해 예측 블럭 P에 가산되어, 그 결과 재구성되고 필터링되지 않은 프레임 정보 RF는 전술된 것처럼 인트라프레임 예측 회로(505)와 필터(531)에 제공된다. 인코더(500)의 모드 결정 회로(513)가 실제 코딩 처리 전에 인트라프레임 코딩과 인터프레임 코딩 사이에 예비 모드 결정을 하여, 단지 한 개의 예측 MB가 각각의 현재 MB에 대해 인코딩되도록 함이 이해된다.
도 6은 본 발명의 일 실시예에 따라 모드 결정 회로(513)의 일 실시예의 단순화된 일 블럭도이다. 각각의 MB에 대한 각 INTERSAD 값은, 선택된 INTERSAD 값들을 평균하여 MEANSAD 값을 제공하는 평균 회로(601)의 입력에 제공된다. MEANSAD 값은 전술된 것처럼 이전 프레임 혹은 현재 프레임으로부터 평균화되는 선택된 INTERSAD 값들로부터 결정될 수 있다. 현재 프레임 F로부터 현재 MB는, 전술한 것처럼, 현재 MB의 각각의 화소 값과 그것의 평균 값과의 절대 차이들의 합을 계산하여 SADM 값을 결정하는 계산 회로(603)에 제공된다. MEANSAD, SADM, 및 QP 값들은, MEANSAD에 F1를 곱하고, SADM에 F2 그리고 QP에 F3을 곱하는 범위 회로(605)에 제공된다. F1*MEANSAD, F2*SADM, 및 F3*QP 값들은, 또한 INTERSAD 값과 선택 신호 VIDEO CHAR SEL을 수신하는, 모드 선택 회로(607)의 각각의 입력들에 제공된다. VIDEL CHAR SEL 신호는 전술한 바와 같이 하나 이상의 비디오 특성 비 교들을 인에이블하고, 또한 선택적으로 우선권을 나타낸다. 모드 선택 회로(607)는 MSEL, MCE, 및 INTRAE 신호들을 제공한다.
스킵 회로(609)는 MOTION MODE 신호, 모션 벡터 MV, 미디안 MV, 1RF 플래그, F3*QP 값, 및 현재 INTERSAD 값을 수신하여, 전술된 것과 같이, 블럭(203)의 기능들을 수행한다. 스킵 회로(609)는 모드 선택 회로(607)에 신호 SKIP를 제공한다. SKIP 신호가 어설트되면, 모드 선택 신호는 MCE 신호를 어설트하여 모션 보상을 인에이블하고, MSEL 신호를 어설트하여 인터프레임 코딩 방법을 선택한다. 다른 경우, 모드 선택 회로(607)는 비디오 특성화 비교들(즉, 블럭(207, 혹은 301, 305, 309, 혹은 403, 405, 409))을 수행하여, 인터프레임 코딩 방법이 선택될 수 있는지의 여부를 판정한다. INTERSAD가 선택된 비디오 특성들의 아웃라이어이면, 모드 선택 회로(607)는 INTRAE 신호를 어설트하여 인트라프레임 예측 회로(505)를 인에이블하여 인트라 예측 처리를 수행한다. INTRAE 신호는 또한, INTERSAD 값을 인트라프레임 예측 회로(505)로부터의 INTRASAD 값과 비교하는 비교기 회로(611)를 인에이블하기 위해 제공된다. 비교기 회로(611)는, 전술된 것처럼 적절한 코딩 모드를 선택하기 위해 MSEL 신호를 어설트하는 모드 선택 회로(607)에 다시 신호 COST를 제공한다.
기준 CODEC 인코딩 처리와 비교하여, 본 발명의 일 실시예에 따른 모드 결정의 여러 이득들 및 이점들이 쉽게 명백하다. 모션 추정 처리는 양쪽 결정 처리들에서 거의 동일하다. 현재 MB는 블럭(203)에서 결정되는 것처럼 스킵핑을 위한 후보이거나, 또는 INTERSAD가 블럭(209)에서 결정되는 것처럼 크게 작으면, 인트라프 레임 코딩 처리에 대한 단계들은 함께 전체 스킵핑하여 처리량을 크게 감소시키고, 인터프레임 코딩은 선택되고, 연산은 블럭(217)의 모션 보상 처리로 직접 진행한다. INTERSAD가 블럭(209)에서 결정된 것과 같이 작지 않으면, 인트라프레임 예측 처리는 INTRASAD 값을 결정하도록 수행되고나서, INTERSAD 값과 비교된다. 그러므로, 비교적 계산 강도가 높은 인트라프레임 예측 처리는, 만약 인트라프레임 코딩 방법이 선택될 확률이 더 높게 되는 경우에만, 수행된다. 그러나, 인터프레임 코딩 방법이 이 비교에 기초하여 선택되면, 연산은 직접 모션 보상으로 진행한다. 다른 경우, 인트라프레임 코딩 방법이 선택되면, 모션 보상 처리가 함께 바이패스되어, 처리 사이클들을 또 절약하고, 인터프레임 예측 MB는 코딩을 위해 선택된다. 단지 선택된 예측 MB P는 잔여 결정, 블럭 변환, 양자화, 역 변환, 및 역 양자화 처리들에 의해 더 처리된다. 환언하면, 2개의 분리된 데이터 세트들에 대해 잔여 및 코딩 처리를 수행하고 양쪽 처리가 된 후 코드 결정을 하기보다는, 코딩 결정은 코딩 처리 전에 사전결정된다. 그리고, 모드 결정이 인코딩 전에 되어지므로, 그 결과적 추정 잔여 MB는 모드 결정의 목적을 위해 더 처리될 필요가 없다(레이트 및 왜곡 값들을 결정하는 것은 더 이상 필요하지 않음). 예비 모드 결정은 일 예시적인 H.264 인코더에 구현되었고, 모드 결정을 갖지 않은 인코더와 비교하면 최대 신호 잡음 비(Peak Signal Noise Ratio;PSNR)의 개선을 달성한다.
코딩 처리 전에 예비 모드 결정을 포함하는 본 발명의 일 실시예에 따라 구현되는 인코더는 이 인코더의 복잡도를 크게 감소시키고, 인코딩 처리 동안 소비되는 코딩 처리 사이클들을 크게 감소시킨다. 인코더가 성능을 개선하기 위해 넓은 범위의 비디오 어플리케이션들에 채택될 수 있지만, 인코더는 컴퓨팅 및 전력 자원들이 제한된 무선 및 모바일 디바이스들에서 사용하기에 특히 유용하다. 인코더는 모드 결정을 단순화시키고, 수용할 수 있는 코딩 효율성과 시각적 품질을 제공하면서 자원들을 절약하기 위해 인터프레임 코딩과 인트라프레임 코딩 결정들의 균형을 맞춘다. 인코더는 코딩 효율성, 비디오 품질, 및 계산 성능의 균형을 맞추면서, 적절한 모드 결정 처리를 제공한다. 인코더는, MB가 이동하는 큰 물체의 일부일 때와 같이, 특정 조건들 하에서 MB의 인코딩 처리의 바이패싱을 인에이블하기 위해 스킵 모드의 이득을 취한다.
본 발명의 일 실시예에 따른 현재 비디오 프레임의 현재 마이크로블럭에 대한 코딩 모드 결정을 하는 방법은, INTERSAD 값(현재 마이크로블럭 그리고 이전 비디오 프레임으로부터의 기준 마이크로블럭 사이의 인터프레임 차이 합임)을 결정하는 단계, 현재 비디오 프레임과 연관된 적어도 하나의 비디오 특성을 선택하는 단계, INTERSAD 값과 각각의 선택된 비디오 특성의 대응하는 범위와 비교하는 단계, INTERSAD 값이 각각의 선택된 비디오 특성의 대응하는 범위 내에 있으면 인터프레임 코딩을 선택하는 단계, 인트라프레임 예측 마이크로블럭을 제공하기 위해 인트라프레임 예측을 수행하고 INTERSAD 값이 임의 선택된 비디오 특성의 아웃라이어이면 INTRASAD 값(현재 마이크로블럭과 인트라프레임 예측 마이크로블럭 사이의 인트라프레임 차이 합임)을 결정하는 단계, INTERSAD 값이 INTRASAD 값보다 더 크면 인트라프레임 코딩을 선택하고 다른 경우는 인터프레임 코딩을 선택하는 단계를 포함한다.
상기 방법은, INTERSAD 값을 결정하기 위해 현재 마이크로블럭과 기준 마이크로블럭의 대응하는 화소 값들 사이의 절대 차이들을 합하는 단계를 포함할 수 있다. 상기 방법은 MEANSAD 값(인터프레임 차이 합들의 평균임)을 선택하고 결정하는 단계를 포함할 수 있다. MEANSAD 값은 이전 비디오 프레임의 마이크로블럭들 또는 현재 비디오 프레임의 마이크로블럭들에 기초할 수 있다. 상기 방법은 SADM 값(현재 마이크로블럭의 각각의 화소 값 그리고 현재 마이크로블럭의 평균 화소 값 사이의 절대 차이들의 합임)을 선택하고 결정하는 단계를 포함할 수 있다. 상기 방법은 양자화 파라미터를 선택하는 단계를 포함할 수 있다.
더 구체적 일 실시예에서, 상기 방법은, MEANSAD 값을 선택하고 결정하는 단계, SADM 값을 선택하고 결정하는 단계, 양자화 파라미터를 선택하는 단계, 제 1 파라미터를 제공하기 위해 MEANSAD 값에 제 1 범위 값을 곱하는 단계, 제 2 파라미터를 제공하기 위해 SADM 값에 제 2 범위 값을 곱하는 단계, 제 3 파라미터를 제공하기 위해 양자화 값에 제 3 범위 값을 곱하는 단계, 제 1, 제 2, 및 제 3 파라미터들 중의 최소값을 결정하는 단계, 그리고 INTERSAD 값과 최소값을 비교하는 단계를 포함한다.
상기 방법은, 모션 추정을 수행하는 단계 그리고 이전 비디오 프레임으로부터 기준 마이크로블럭과 적어도 하나의 대응하는 모션 벡터를 결정하는 단계를 포함할 수 있다. 상기 방법은, 현재 마이크로블럭이 단지 하나의 모션 벡터만을 가지면, INTERSAD 값이 양자화 파라미터보다 작으면, 현재 마이크로블럭에 대한 모션 벡터가 현재 프레임의 인접 마이크로블럭들의 미디안 모션 벡터와 같으면, 그리고 이전 비디오 프레임이 단지 기준 프레임이면, 인터프레임 코딩을 선택하는 단계를 포함할 수 있다. 상기 방법은, 인터프레임 코딩이 선택되면 모션 보상된 마이크로블럭을 제공하기 위해 기준 마이크로블럭의 모션 보상을 수행하고 예측 마이크로블럭으로서 모션 보상된 마이크로블럭을 선택하는 단계, 인트라프레임 코딩이 선택되면 예측 마이크로블럭으로서 인트라프레임 예측 마이크로블럭을 선택하는 단계, 그리고 변환을 위한 잔여 마이크로블럭을 제공하기 위해 현재 마이크로블럭으로부터 선택된 예측 마이크로블럭을 감산하는 단계를 포함할 수 있다.
현재 비디오 프레임의 현재 마이크로블럭에 대한 코딩 모드 결정을 하기 위한 본 발명의 일 실시예에 따른 비디오 인코더 회로는 선택기 스위치, 모션 추정 회로, 모션 보상 회로, 인트라프레임 예측 회로, 및 모드 결정 회로를 포함한다. 선택기 스위치는 제 1 및 제 2 입력들, 출력, 그리고 제 1 및 제 2 입력들 사이에 선택하기 위해 모드 신호를 수신하는 제어 입력을 갖는다. 모션 추정 회로는 INTERSAD 값을 제공하기 위해 그리고 모션 추정 회로의 출력에서 기준 마이크로블럭을 제공하기 위해 현재 마이크로블럭과 이전 비디오 프레임 사이에 모션 추정을 수행한다. 모션 보상 회로는 모션 보상 회로의 출력에서 인터프레임 예측 마이크로블럭을 제공하기 위해 제 1 신호에 응답하여 기준 마이크로블럭에 대해 모션 보상을 수행한다. 인트라프레임 예측 회로는 인트라프레임 예측 마이크로블럭을 제공하기 위해 그리고 인트라프레임 예측 회로의 출력에서 INTRASAD 값을 제공하기 위해 제 2 신호의 어설션(assertion)에 응답하여 인트라프레임 예측을 수행한다. 모드 결정 회로는 현재 비디오 프레임과 연관된 적어도 하나의 비디오 특성을 선택 하고, INTERSAD 값과, 각각의 선택된 비디오 특성의 대응하는 범위를 비교하고, INTERSAD 값이 각각의 선택된 비디오 특성의 대응하는 범위 내에 있으면 인터프레임 코딩을 선택하기 위해 제 1 신호와 모드 신호를 어설트하고, INTERSAD 값이 임의 선택된 비디오 특성의 아웃라이어이면 제 2 신호를 어설트하고, INTERSAD 값이 INTRASAD 값보다 더 크면 인트라프레임 코딩 그리고 INTERSAD 값이 INTRASAD 값 이하이면 인터프레임 코딩을 선택하기 위해 모드 신호를 어설트한다.
모드 결정 회로는 제 1, 제 2, 및 제 3 회로들과 제 1 및 제 2 비교기들을 포함할 수 있다. 제 1 회로는 MEANSAD 값을 결정하고, 제 2 회로는 SADM 값을 결정하고, 제 3 회로는 제 1 비디오 특성을 제공하기 위해 MEANSAD 값에 제 1 범위 값을 곱하고, 제 2 비디오 특성을 제공하기 위해 SADM 값에 제 2 범위 값을 곱하고, 제 3 비디오 특성을 제공하기 위해 양자화 파라미터에 제 3 범위 값을 곱한다. 제 1 비교기 회로는, INTERSAD 값과, 제 1, 제 2, 및 제 3 비디오 특성들을 비교하고, 제 1, 제 2, 및 모드 신호들을 제공한다. 제 2 비교기 회로는 INTERSAD 값과 INTRASAD 값을 비교한다.
현재 비디오 프레임의 현재 마이크로블럭에 대한 코딩 모드 결정을 하기 위해 비디오 인코더에 대한 모드 결정 유닛은, 현재 비디오 프레임과 연관된 적어도 하나의 비디오 특성을 선택하기 위한 수단, 모션 추정으로부터 INTERSAD 값 그리고 각각의 선택된 비디오 특성의 대응하는 범위를 비교하기 위한 수단, INTERSAD 값이 적어도 하나의 비디오 특성 중의 임의 하나의 아웃라이어이면 인트라프레임 예측을 시작하는 수단, INTRASAD 값과 INTERSAD 값을 비교하기 위한 수단, 그리고 INTERSAD 값이 각각의 선택된 비디오 특성의 대응하는 범위 내에 있으면 또는 INTERSAD 값이 INTRASAD 값 이하이면 인터프레임 코딩을 선택하고, INTERSAD 값이 INTRASAD 값보다 더 크면 인트라프레임 코딩을 선택하기 위한 수단을 포함한다. 모드 결정 유닛은, 단일 모션 모드를 결정하고, 모션 벡터와 미디안 모션 모드 벡터를 비교하고, 단일 기준 프레임 카운트를 결정하고, 코딩이 현재 마이크로블럭에 대해 스킵될 수 있는 확률을 나타내는 스킵 신호를 제공하기 위한 수단을 더 포함할 수 있다.
본 발명의 특정 실시예들이 도시되고 설명되었지만, 당업자라면, 본 명세서의 개시에 기초하여, 본 발명 및 그것의 더 넓은 양태들로부터 벗어나지 않고 추가 변경들 및 수정들이 만들어질 수 있으므로, 첨부된 청구범위는 모든 그런 변경들 및 수정들을 본 발명의 실제 취지 및 범위 내에 있는 것으로서 이들 범위 내에 포함되어야 한다.

Claims (20)

  1. 현재 비디오 프레임의 현재 마이크로블럭(microblock)에 대한 코딩 모드 결정을 하는 방법에 있어서,
    상기 현재 마이크로블럭과 이전 비디오 프레임으로부터의 기준 마이크로블럭 사이의 인터프레임 차이 합(interframe differential sum)을 포함하는 INTERSAD 값을 결정하는 단계;
    상기 현재 비디오 프레임과 연관된 적어도 하나의 비디오 특성을 선택하는 단계;
    상기 INTERSAD 값과, 각각의 선택된 비디오 특성의 대응하는 범위를 비교하는 단계;
    상기 INTERSAD 값이 상기 각각의 선택된 비디오 특성의 대응하는 범위 내에 있으면, 인터프레임 코딩을 선택하는 단계;
    상기 INTERSAD 값이 임의 선택된 비디오 특성의 아웃라이어(outlier)이면, 인트라프레임(intraframe) 예측 마이크로블럭을 제공하기 위한 인트라프레임 예측을 수행하고, 상기 현재 마이크로블럭과 상기 인트라프레임 예측 마이크로블럭 사이의 인트라프레임 차이 합을 포함하는 INTRASAD 값을 결정하는 단계; 및
    상기 INTERSAD 값이 상기 INTRASAD 값보다 더 크면 인트라프레임 코딩을 선택하고, 그렇지 않으면 인터프레임 코딩을 선택하는 단계를 포함하는, 코딩 모드 결정 방법.
  2. 제 1 항에 있어서, 상기 INTERSAD 값을 결정하는 단계는, 상기 기준 마이크로블럭과 상기 현재 마이크로블럭의 대응하는 화소 값들 사이에 절대 차이(absolute differences)를 합하는 단계를 포함하는, 코딩 모드 결정 방법.
  3. 제 1 항에 있어서, 상기 적어도 하나의 비디오 특성을 선택하는 단계는 인터프레임 차이 합들의 평균을 포함하는 MEANSAD 값을 선택하고 결정하는 단계를 포함하는, 코딩 모드 결정 방법.
  4. 제 3 항에 있어서, 상기 MEANSAD 값을 결정하는 단계는, 상기 이전 비디오 프레임들의 복수의 마이크로블럭들의 절대 차이들의 인터프레임 합들의 평균을 결정하는 단계를 포함하는, 코딩 모드 결정 방법.
  5. 제 4 항에 있어서, 상기 이전 비디오 프레임의 복수의 마이크로블럭들의 절대 차이들의 인터프레임 합들의 평균을 결정하는 단계는, 상기 이전 비디오 프레임의 마이크로블럭들의 전부의 절대 차이들의 인터프레임 합들의 평균을 결정하는 단계를 포함하는, 코딩 모드 결정 방법.
  6. 제 4 항에 있어서, 상기 이전 비디오 프레임의 복수의 마이크로블럭들의 절대 차이들의 인터프레임 합들의 평균을 결정하는 단계는, 상기 이전 비디오 프레임 의 인접 마이크로블럭들의 절대 차이들의 인터프레임 합들의 평균을 결정하는 단계를 포함하는, 코딩 모드 결정 방법.
  7. 제 3 항에 있어서, 상기 MEANSAD 값을 결정하는 단계는, 상기 현재 비디오 프레임의 복수의 마이크로블럭들의 절대 차이들의 인터프레임 합들의 평균을 결정하는 단계를 포함하는, 코딩 모드 결정 방법.
  8. 제 1 항에 있어서, 상기 적어도 하나의 비디오 특성을 선택하는 단계는, 상기 현재 마이크로블럭의 각각의 화소 값과 상기 현재 마이크로블럭의 평균 화소 값 사이의 절대 차이들의 합을 포함하는 SADM 값을 선택하고 결정하는 단계를 포함하는, 코딩 모드 결정 방법.
  9. 제 1 항에 있어서, 상기 적어도 하나의 비디오 특성을 선택하는 단계는 양자화 파라미터를 선택하는 단계를 포함하는, 코딩 모드 결정 방법.
  10. 제 1 항에 있어서,
    상기 적어도 하나의 비디오 특성을 선택하는 단계는, 인터프레임 차이 합들의 평균을 포함하는 MEANSAD 값을 선택하고 결정하고, 상기 현재 마이크로블럭의 각각의 화소 값과 상기 현재 마이크로블럭의 평균 화소 값 사이의 절대 차이들의 합을 포함하는 SADM 값을 선택하고 결정하고, 양자화 파라미터를 선택하는 단계를 포함하고,
    제 1 파라미터를 제공하기 위해 상기 MEANSAD 값에 제 1 범위 값을 곱하는 단계;
    제 2 파라미터를 제공하기 위해 상기 SADM 값에 제 2 범위 값을 곱하는 단계;
    제 3 파라미터를 제공하기 위해 양자화 값에 제 3 범위 값을 곱하는 단계; 및
    상기 제 1, 제 2, 및 제 3 파라미터들 중의 최소 값을 결정하는 단계를 더 포함하고,
    상기 INTERSAD 값을 비교하는 단계는 상기 INTERSAD 값과 상기 최소 값을 비교하는 단계를 포함하는, 코딩 모드 결정 방법.
  11. 제 1 항에 있어서, 상기 적어도 하나의 비디오 특성을 선택하는 단계 이전에, 모션 추정을 수행하고 상기 이전 비디오 프레임으로부터 상기 기준 마이크로블럭과 적어도 하나의 대응하는 모션 벡터를 결정하는 단계를 더 포함하는, 코딩 모드 결정 방법.
  12. 제 11 항에 있어서, 상기 적어도 하나의 비디오 특성을 선택하는 단계 이전에, 상기 현재 마이크로블럭이 단지 하나의 모션 벡터만을 가지면, 상기 INTERSAD 값이 양자화 파라미터 이하이면, 상기 현재 마이크로블럭에 대한 모션 벡터가 상기 현재 프레임의 인접 마이크로블럭들의 미디안 모션 벡터와 같으면, 그리고 상기 이전 비디오 프레임이 단지 상기 기준 프레임이면, 인터프레임 코딩을 선택하는 단계를 더 포함하는, 코딩 모드 결정 방법.
  13. 제 1 항에 있어서, 인터프레임 코딩이 선택되면, 모션 보상된 마이크로블럭을 제공하기 위해 상기 기준 마이크로블럭의 모션 보상을 수행하고, 상기 모션 보상된 마이크로블럭을 예측 마이크로블럭으로서 선택하는 단계;
    인트라프레임 코딩이 선택되면, 상기 인트라프레임 예측 마이크로블럭을 상기 예측 마이크로블럭으로서 선택하는 단계; 및
    변환을 위한 잔여 마이크로블럭을 제공하기 위해 상기 현재 마이크로블럭으로부터 상기 선택된 예측 마이크로블럭을 감산하는 단계를 더 포함하는, 코딩 모드 결정 방법.
  14. 현재 비디오 프레임의 현재 마이크로블럭에 대한 코딩 모드 결정을 하는 비디오 인코더 회로에 있어서,
    제 1 및 제 2 입력들, 출력, 그리고 상기 제 1 및 제 2 입력들 사이에서 선택하기 위한 모드 신호를 수신하는 제어 입력을 갖는 선택기 스위치;
    상기 현재 프레임과 적어도 하나의 이전 프레임을 수신하기 위한 입력들 그리고 출력을 갖는 모션 추정 회로로서, 상기 모션 추정 회로는 INTERSAD 값을 제공하기 위해 그리고 상기 모션 추정 회로의 상기 출력에서 기준 마이크로블럭을 제공 하기 위해 상기 현재 마이크로블럭과 이전 비디오 프레임 사이의 모션 추정을 수행하고, 상기 INTERSAD 값은 상기 현재 마이크로블럭과 상기 이전 비디오 프레임으로부터의 상기 기준 마이크로블럭 사이의 인터프레임 차이 합을 포함하는, 상기 모션 추정 회로;
    상기 모션 추정 회로의 상기 출력에 결합된 입력 그리고 상기 스위치의 상기 제 1 입력에 결합된 출력을 갖는 모션 보상 회로로서, 상기 모션 보상 회로는 상기 모션 보상 회로의 상기 출력에서 인터프레임 예측 마이크로블럭을 제공하기 위해 제 1 신호에 응답하여 상기 기준 마이크로블럭에 대해 모션 보상을 수행하는, 상기 모션 보상 회로;
    상기 현재 프레임을 수신하기 위한 입력 그리고 상기 스위치의 상기 제 2 입력에 결합된 출력을 갖는 인트라프레임 예측 회로로서, 상기 인트라프레임 예측 회로는 인트라프레임 예측 마이크로블럭을 제공하기 위해 그리고 상기 인트라프레임 예측 회로의 상기 출력에서 INTRASAD 값을 제공하기 위해 제 2 신호의 어설션(assertion)에 응답하여 인트라프레임 예측을 수행하고, 상기 INTRASAD 값은 상기 현재 마이크로블럭과 상기 인트라프레임 예측 마이크로블럭 사이의 인트라프레임 차이 합을 포함하는, 상기 인트라프레임 예측 회로; 및
    상기 제 1 신호를 제공하는 제 1 출력, 상기 제 2 신호를 제공하는 제 2 출력, 그리고 상기 모드 선택 신호를 제공하는 제 3 출력을 갖는 모드 결정 회로로서, 상기 모드 결정 회로는 상기 현재 비디오 프레임과 연관된 적어도 하나의 비디오 특성을 선택하고, 상기 INTERAD 값과 각각 선택된 비디오 특성의 대응하는 범위 를 비교하고, 상기 INTERSAD 값이 상기 각각의 선택되는 비디오 특성의 대응하는 범위 내에 있으면 인터프레임 코딩을 선택하도록 상기 제 1 신호와 상기 모드 신호를 어설트(assert)하고, 상기 INTERSAD 값이 임의 선택된 비디오 특성의 아웃라이어이면 상기 제 2 신호를 어설트하고, 상기 INTERSAD 값이 상기 INTRASAD 값보다 더 크면 인트라프레임 코딩 그리고 상기 INTERSAD 값이 상기 INTRASAD 값 이하이면 인터프레임 코딩 사이에 선택하기 위해 상기 모드 신호를 어설트하는, 상기 모드 결정 회로를 포함하는, 비디오 인코더 회로.
  15. 제 14 항에 있어서,
    상기 현재 비디오 프레임을 수신하기 위한 제 1 입력, 상기 스위치의 상기 출력에 결합되는 제 2 입력, 그리고 출력을 갖는 감산기로서, 상기 감산기는 잔여 마이크로블럭을 제공하기 위해 상기 현재 마이크로블럭으로부터 선택된 예측 마이크로블럭을 감산하는, 상기 감산기; 및
    상기 감산기의 상기 출력에 결합되는 제 1 입력, 인코딩된 정보를 제공하는 제 1 출력, 그리고 재구성된 마이크로블럭을 제공하기 위한 제 2 출력을 갖는 컨버전(conversion) 회로를 더 포함하는, 비디오 인코더 회로.
  16. 제 15 항에 있어서, 상기 컨버전 회로는,
    상기 감산기의 상기 출력에 결합되는 입력과, 출력을 갖는 변환 회로;
    변환 마이크로블럭의 상기 출력에 결합되는 입력과, 출력을 갖는 양자화 회 로;
    상기 양자화 회로의 상기 출력에 결합되는 입력과, 출력을 갖는 역 양자화 회로; 및
    상기 역 양자화 회로의 상기 출력에 결합된 제 1 입력, 상기 스위치의 상기 출력에 결합되는 제 2 입력, 그리고 상기 재구성되는 마이크로블럭을 제공하는 출력을 갖는 가산기(adder)를 포함하는, 비디오 인코더 회로.
  17. 제 14 항에 있어서, 상기 모드 결정 회로는,
    인터프레임 차이 합들의 평균을 포함하는 MEANSAD 값을 결정하는 제 1 회로;
    상기 현재 마이크로블럭의 각각의 화소 값과 상기 현재 마이크로블럭의 평균 화소 값 사이의 절대 차이들의 합을 포함하는 SADM 값을 결정하는 제 2 회로;
    제 1 비디오 특성을 제공하기 위해 상기 MEANSAD 값에 제 1 범위 값을 곱하고, 제 2 비디오 특성을 제공하기 위해 상기 SADM 값에 제 2 범위 값을 곱하고, 제 3 비디오 특성을 제공하기 위해 양자화 파라미터에 제 3 범위 값을 곱하는 제 3 회로;
    상기 INTERSAD 값과 상기 제 1, 제 2, 및 제 3 비디오 특성들을 비교하고, 상기 제 1, 제 2, 및 모드 신호들을 제공하는 제 1 비교기 회로; 및
    상기 INTERSAD 값과 상기 INTRASAD 값을 비교하는 제 2 비교기 회로를 포함하는, 비디오 인코더 회로.
  18. 제 14 항에 있어서, 모션 모드 신호, 모션 벡터, 미디안(median) 모션 모드 벡터, 및 기준 프레임 카운트를 비교하고, 코딩이 상기 현재 마이크로블럭에 대해 스킵될 수 있다는 확률을 나타내는 스킵(skip) 신호를 제공하는 비교기 회로를 더 포함하는, 비디오 인코더 회로.
  19. 현재 비디오 프레임의 현재 마이크로블럭에 대해 코딩 모드 결정을 하기 위한 비디오 인코더에 대한 모드 결정 유닛에 있어서,
    상기 현재 비디오 프레임과 연관된 적어도 하나의 비디오 특성을 선택하기 위한 수단;
    모션 추정으로부터 INTERSAD 값과 각각의 선택된 비디오 특성의 대응하는 범위를 비교하기 위한 수단;
    상기 INTERSAD 값이 상기 적어도 하나의 비디오 특성 중의 임의 것의 아웃라이어(outlier)이면 인트라프레임 예측을 시작하기 위한 수단;
    상기 INTERSAD 값과 INTRASAD 값을 비교하기 위한 수단; 및
    상기 INTERSAD 값이 상기 각각의 선택된 비디오 특성의 대응하는 범위 내에 있으면, 또는 상기 INTERSAD 값이 상기 INTRASAD 값 이하이면 인터프레임 코딩을 선택하고, 그리고 상기 INTERSAD 값이 상기 INTRASAD 값보다 더 크면 인트라프레임 코딩을 선택하는 수단을 포함하는, 모드 결정 유닛.
  20. 제 19 항에 있어서, 단일 모션 모드를 결정하고, 미디안 모션 모드 벡터와 모션 벡터를 비교하고, 단일 기준 프레임 카운트를 결정하고, 코딩이 상기 현재 마이크로블럭에 대해 스킵될 수 있는 확률을 나타내는 스킵 신호를 제공하기 위한 수단을 더 포함하는, 모드 결정 유닛.
KR1020087009362A 2005-10-19 2006-10-11 비디오 인코딩을 위한 코딩 모드 결정 시스템 및 방법 KR101299421B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/253,517 2005-10-19
US11/253,517 US8155189B2 (en) 2005-10-19 2005-10-19 System and method of coding mode decision for video encoding
PCT/US2006/040018 WO2007047412A2 (en) 2005-10-19 2006-10-11 System and method of coding mode decision for video encoding

Publications (2)

Publication Number Publication Date
KR20080068662A true KR20080068662A (ko) 2008-07-23
KR101299421B1 KR101299421B1 (ko) 2013-08-29

Family

ID=37948131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087009362A KR101299421B1 (ko) 2005-10-19 2006-10-11 비디오 인코딩을 위한 코딩 모드 결정 시스템 및 방법

Country Status (5)

Country Link
US (1) US8155189B2 (ko)
JP (1) JP5084733B2 (ko)
KR (1) KR101299421B1 (ko)
CN (1) CN101305610B (ko)
WO (1) WO2007047412A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011108879A2 (ko) * 2010-03-05 2011-09-09 에스케이텔레콤 주식회사 영상 부호화 장치, 그 영상 부호화 방법, 영상 복호화 장치 및 그 영상 복호화 방법
KR20210068569A (ko) * 2018-10-31 2021-06-09 에이티아이 테크놀로지스 유엘씨 저 지연 비디오 코딩을 위한 효율적인 양자화 파라미터 예측 방법

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4534935B2 (ja) * 2005-10-04 2010-09-01 株式会社日立製作所 トランスコーダ、記録装置及びトランスコード方法
US8306118B1 (en) * 2006-03-01 2012-11-06 Maxim Integrated, Inc. High quality low bitrate video coding by enabling and disabling a non-residual mode
US8311120B2 (en) * 2006-12-22 2012-11-13 Qualcomm Incorporated Coding mode selection using information of other coding modes
JP4799477B2 (ja) * 2007-05-08 2011-10-26 キヤノン株式会社 画像符号化装置及び画像符号化方法
JP4823150B2 (ja) * 2007-05-31 2011-11-24 キヤノン株式会社 符号化装置並びに符号化方法
US8155151B2 (en) * 2008-01-02 2012-04-10 Cisco Technology, Inc. Secure combined interoperable multiplexing
KR100952340B1 (ko) * 2008-01-24 2010-04-09 에스케이 텔레콤주식회사 시공간적 복잡도를 이용한 부호화 모드 결정 방법 및 장치
JP2009182623A (ja) * 2008-01-30 2009-08-13 Panasonic Corp 画像符号化方法
JP4990927B2 (ja) * 2008-03-28 2012-08-01 三星電子株式会社 動きベクトル情報の符号化/復号化方法及び装置
CN101340581B (zh) * 2008-08-15 2010-06-02 上海富瀚微电子有限公司 一种基于m算法的帧内预测模式选择方法及其实现装置
US8498330B2 (en) * 2009-06-29 2013-07-30 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus for coding mode selection
US8861879B2 (en) * 2009-09-17 2014-10-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image based on skip mode
US8705623B2 (en) * 2009-10-02 2014-04-22 Texas Instruments Incorporated Line-based compression for digital image data
US9036692B2 (en) * 2010-01-18 2015-05-19 Mediatek Inc. Motion prediction method
CN101783951B (zh) * 2010-03-02 2012-01-04 西安交通大学 基于人类视觉系统的视频编码帧间预测模式快速确定方法
CN102340659B (zh) * 2010-07-23 2013-09-04 联合信源数字音视频技术(北京)有限公司 一种基于avs的并行的模式决策装置和方法
JP2012175548A (ja) * 2011-02-23 2012-09-10 Hitachi Kokusai Electric Inc 動画像符号化装置及び動画像符号化方法
KR101383775B1 (ko) * 2011-05-20 2014-04-14 주식회사 케이티 화면 내 예측 방법 및 장치
CN102256126A (zh) * 2011-07-14 2011-11-23 北京工业大学 混合图像的编码方法
US8792550B2 (en) 2011-08-04 2014-07-29 Qualcomm Incorporated Color/gray patch prevention for video coding
US9756356B2 (en) * 2013-06-24 2017-09-05 Dialogic Corporation Application-assisted spatio-temporal error concealment for RTP video
CN103402086B (zh) * 2013-07-22 2017-02-15 华为技术有限公司 一种用于视频编码系统的性能控制方法及编码器
US9883187B2 (en) * 2015-03-06 2018-01-30 Qualcomm Incorporated Fast video encoding method with block partitioning
CN106470341B (zh) * 2015-08-17 2020-10-02 恩智浦美国有限公司 媒体显示系统
EP3324628B1 (en) 2016-11-18 2021-12-29 Axis AB Method and encoder system for encoding video
CN108495130B (zh) * 2017-03-21 2021-04-20 腾讯科技(深圳)有限公司 视频编码、解码方法和装置、终端、服务器和存储介质
CN108810531B (zh) * 2017-05-03 2019-11-19 腾讯科技(深圳)有限公司 视频编码处理方法、装置及电子设备
JP7009821B2 (ja) 2017-08-03 2022-01-26 株式会社ジェイテクト 転がり軸受及び保持器
US10728573B2 (en) * 2017-09-08 2020-07-28 Qualcomm Incorporated Motion compensated boundary pixel padding
CN113382260B (zh) * 2019-06-21 2022-03-29 杭州海康威视数字技术股份有限公司 预测模式的解码、编码方法及装置
CN110381311B (zh) * 2019-07-01 2023-06-30 腾讯科技(深圳)有限公司 视频帧的编码方法、装置、计算机可读介质及电子设备
CN112235576B (zh) * 2020-11-16 2024-04-30 北京世纪好未来教育科技有限公司 编码方法、装置、电子设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493514A (en) * 1993-11-24 1996-02-20 Intel Corporation Process, apparatus, and system for encoding and decoding video signals
US6931063B2 (en) * 2001-03-26 2005-08-16 Sharp Laboratories Of America, Inc. Method and apparatus for controlling loop filtering or post filtering in block based motion compensationed video coding
EP1396154B1 (en) * 2001-05-29 2007-05-09 Koninklijke Philips Electronics N.V. Error concealment method and device
US6865227B2 (en) * 2001-07-10 2005-03-08 Sony Corporation Error concealment of video data using motion vector data recovery
FI114433B (fi) * 2002-01-23 2004-10-15 Nokia Corp Otossiirtymän koodaaminen videokoodauksessa
MXPA05000559A (es) 2002-07-15 2005-04-19 Nokia Corp Metodo para ocultamiento de errores en secuencias de video.
US6944224B2 (en) * 2002-08-14 2005-09-13 Intervideo, Inc. Systems and methods for selecting a macroblock mode in a video encoder
US8634030B2 (en) * 2002-10-25 2014-01-21 Disney Enterprises, Inc. Streaming of digital data to a portable device
CN100372382C (zh) * 2003-03-24 2008-02-27 华为技术有限公司 一种视频图象编码方法
CN100594730C (zh) 2003-06-25 2010-03-17 汤姆森许可贸易公司 帧间的快速模式确定编码方法及其装置
JP4257789B2 (ja) 2004-02-27 2009-04-22 Kddi株式会社 動画像符号化装置
JP4247680B2 (ja) * 2004-07-07 2009-04-02 ソニー株式会社 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体
US9172973B2 (en) 2005-04-01 2015-10-27 Broadcom Corporation Method and system for motion estimation in a video encoder

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011108879A2 (ko) * 2010-03-05 2011-09-09 에스케이텔레콤 주식회사 영상 부호화 장치, 그 영상 부호화 방법, 영상 복호화 장치 및 그 영상 복호화 방법
WO2011108879A3 (ko) * 2010-03-05 2012-01-12 에스케이텔레콤 주식회사 영상 부호화 장치, 그 영상 부호화 방법, 영상 복호화 장치 및 그 영상 복호화 방법
US9232234B2 (en) 2010-03-05 2016-01-05 Sk Telecom Co., Ltd. Video coding device, video coding method thereof, video decoding device, and video decoding method thereof
KR20210068569A (ko) * 2018-10-31 2021-06-09 에이티아이 테크놀로지스 유엘씨 저 지연 비디오 코딩을 위한 효율적인 양자화 파라미터 예측 방법

Also Published As

Publication number Publication date
JP5084733B2 (ja) 2012-11-28
KR101299421B1 (ko) 2013-08-29
US20070086523A1 (en) 2007-04-19
US8155189B2 (en) 2012-04-10
CN101305610A (zh) 2008-11-12
JP2009513073A (ja) 2009-03-26
WO2007047412A3 (en) 2007-06-28
WO2007047412A2 (en) 2007-04-26
CN101305610B (zh) 2010-09-08

Similar Documents

Publication Publication Date Title
KR101299421B1 (ko) 비디오 인코딩을 위한 코딩 모드 결정 시스템 및 방법
Huang et al. Analysis and reduction of reference frames for motion estimation in MPEG-4 AVC/JVT/H. 264
KR100866293B1 (ko) 예측 프레임에서의 가중 예측을 위한 방법 및 장치
CN102986211B (zh) 视频编码中的速率控制
KR101185146B1 (ko) 비디오 인코딩을 위한 효율적인 제어 기술들
CA2973288C (en) Image processing device and method
US9961372B2 (en) Adaptive disabling of deblock filtering based on a content characteristic of video information
CA2703775C (en) Method and apparatus for selecting a coding mode
US7822116B2 (en) Method and system for rate estimation in a video encoder
WO2006099082A2 (en) Content adaptive multimedia processing
KR20110026020A (ko) 필터 선택에 의한 비디오 인코딩
US20100166075A1 (en) Method and apparatus for coding video image
US20120300834A1 (en) Method and System for Efficient Video Transcoding Using Coding Modes, Motion Vectors and Residual Information
US7676107B2 (en) Method and system for video classification
US20060193526A1 (en) Video encoder with low complexity noise reduction
Ram et al. Performance comparison of high efficiency video coding (HEVC) with H. 264 AVC
US10148954B2 (en) Method and system for determining intra mode decision in H.264 video coding
JP4100067B2 (ja) 画像情報変換方法及び画像情報変換装置
Chang et al. A fast and low-cost fractional motion estimation for H. 264/AVC HD1080p coding
Wang et al. A fast multiple reference frame selection algorithm based on H. 264/AVC
US20060239344A1 (en) Method and system for rate control in a video encoder
Balaji et al. Fast intra mode prediction for HEVC based on distortion variance
Lonetti et al. Temporal video transcoding for multimedia services
Pantoja et al. An efficient VC-1 to H. 264 IPB-picture transcoder with pixel domain processing
Abdoli A dynamic predictive search algorithm for fast block-based motion estimation

Legal Events

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

Payment date: 20160808

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee