KR20080012333A - 매크로블록 레벨 레이트 제어 - Google Patents

매크로블록 레벨 레이트 제어 Download PDF

Info

Publication number
KR20080012333A
KR20080012333A KR1020077028121A KR20077028121A KR20080012333A KR 20080012333 A KR20080012333 A KR 20080012333A KR 1020077028121 A KR1020077028121 A KR 1020077028121A KR 20077028121 A KR20077028121 A KR 20077028121A KR 20080012333 A KR20080012333 A KR 20080012333A
Authority
KR
South Korea
Prior art keywords
information
block
blocks
bits
parameter
Prior art date
Application number
KR1020077028121A
Other languages
English (en)
Other versions
KR100932879B1 (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 KR20080012333A publication Critical patent/KR20080012333A/ko
Application granted granted Critical
Publication of KR100932879B1 publication Critical patent/KR100932879B1/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/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/196Methods 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 being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods 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 being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • 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/115Selection of the code volume for a coding unit prior to coding
    • 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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
    • H04N19/194Methods 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 involving only two passes
    • 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/196Methods 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 being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 개시는 비딩오 프로세싱에 관한 것이다. 다양한 비디오 프로세싱 기술은 비디오의 프레임에 대한 정보의 블록을 생성하는 단계, 비트 버짓으로부터 각각의 상기 블록으로 비트를 할당하는 단계로서, 각각의 상기 블록에 할당될 비트의 수는 거기에 포함된 상기 정보의 함수인, 할당 단계, 및 그 안에 포함된 상기 정보를 나타내기 위해 각각의 상기 블록에 할당된 상기 비트를 이용하는 단계를 포함한다.
비디오 시스템, 비디오 프로세서, 매크로블록, ρ 영역, 움직임 추정

Description

매크로블록 레벨 레이트 제어{MACROBLOCK LEVEL RATE CONTROL}
배경
분야
본 발명은 통상적으로 이동 통신에 관한 것으로, 보다 상세하게는 비디오 시스템에 관한 것이다.
배경
대역폭의 수요가 많은 이동 통신의 세계에서, 비디오 압축은 멀티미디어 애플리케이션에서 중요한 역할을 한다. 비디오 압축은, 비디오 시퀀스에서 2개의 인접한 프레임 사이에 차이점이 거의 없다는 사실을 이용함으로써 이미지를 재구성하도록 요청된 정보를 극적으로 감소시키는데 사용될 수 있다. 이것은, 현재의 프레임을 매크로블록으로 분할하고 각각의 매크로블록이 어디서 왔는지 결정하기 위해 이전 프레임을 검색함으로써 달성될 수도 있다. 현재 프레임의 매크로블록의 이미지 콘텐트가 이전 프레임에 위치될 수 있다면, 재생될 필요가 없다. 이미지 콘텐트는, 이전 프레임내의 그것의 위치로부터 현재 프레임의 그것의 변위를 나타내는 "움직임 벡터" 에 의해 표현될 수 있다. 현재 프레임과 이전 프레임 사이의 이미지 콘텐트에 어떤 변화가 있는 만큼, 그 차이, 또는 "잔여, 정보"만이 움직임 벡터로 송신될 필요가 있다. 이 기술을 종종 "시간 압축"이라고도 칭한다.
"공간 압축"은 비디오 압축 시스템에서 종종 이용되는 다른 기술이다. 공간 압축은 각각의 매크로블록에서 잉여 및 비필수 요소를 제거하는데 사용된다. 공간 압축은 먼저 매크로블록의 잔여 정보를 DCT (Discrete Cosine Transform) 방법을 이용하여 공간 및 시간 영역으로부터 주파수 영역으로 변환하여 양자화 및 가변 길이 인코딩 기술을 적용함으로써 달성된다. 양자화 프로세스는, 눈이 덜 민감한, 픽셀당 보다 적은 비트를 고주파수 계수로 할당하기 위해, 그리고 픽셀당 보다 많은 비트를 중요한 저주파수 계수에 할당하기 위해 가중된다. 양자화 파라미터 (QP) 는 다수의 고주파수 계수를 제로로 설정하기 위해 사용되는데, 이것에 의해 매크로블록에 대한 주파수 계수를 나타내기 위해 요청된 비트의 수가 감소한다. QP는 프레임에 대한 비트 버짓이 충족되는 것을 확보하기 위해 사용된다. 일부 종래 비디오 압축 시스템에서, 각각의 매크로블록에 대해 동일한 QP가 사용된다. 이 접근 방법은 직접적이지만, 반드시 최상의 영상 품질을 생성하지는 않는다. 바람직하게는, QP는 보다 많은 정보를 갖는 매크로블록이 비트 버짓으로부터 보다 많은 비트가 할당되도록, 프레임을 통해 변화되어야 한다.
요약
비디오 시스템의 일 양태가 개시된다. 비디오 시스템은 비디오의 프레임에 대한 정보의 블록을 생성하도록 구성된 비디오 프로세서와, 비트 버짓으로부터 각각의 블록에 비트를 할당하도록 구성된 제어기를 포함하고, 각각의 블록에 할당될 비트의 수는 거기에 포함된 상기 정보의 함수이다. 비디오 프로세서는 각각의 블록에 할당된 비트를 사용하여 거기에 포함된 정보를 나타내도록 더 구성된다.
비디오 시스템의 다른 양태가 개시된다. 비디오 시스템은 비디오의 프레임에 대한 정보의 블록을 생성하도록 구성된다. 비디오 시스템은 비트 버짓으로부터 각각의 블록에 비트를 할당하는 수단을 포함하고 각각의 블록에 할당될 비트의 수는 거기에 포함된 정보의 함수이고, 각각의 블록 내의 정보를 나타내는 수단은 이것에 할당된 비트를 이용한다.
비디오를 프로세싱하는 방법의 일 양태가 개시된다. 방법은 비디오의 프레임에 대한 정보의 블록을 생성하는 단계, 비트를 비트 버짓으로부터 각각의 블록으로 할당하는 단계로서, 각각의 상기 블록에 할당될 비트의 수는 거기에 포함된 정보의 함수인, 상기 할당 단계, 및 각각의 블록에 할당된 비트를 이용하여 거기에 포함된 상기 정보를 나타내는 단계를 포함한다.
비디오 프로세서를 이용하는 비디오를 프로세싱하기 위한 방법의 다른 양태가 개시된다. 비디오 프로세서는 비디오의 프레임에 대한 정보의 블록을 생성하기 위해 구성되고, 텍스쳐 엔진을 포함한다. 방법은 각각의 블록 내의 정보와 관련하여 통계를 생성하기 위해 첫 번째로 텍스쳐 엔진을 통한 프레임 내 정보의 블록을 패싱하는 단계와, 통계에 기초하여 비트 버짓으로부터 각각의 블록으로 비트를 할당하도록 두 번째로 텍스쳐 엔진을 통한 프레임 내 정보의 블록을 패스하고, 각각의 블록에 할당된 비트를 이용하여 그 안에 포함된 정보를 나타내는 단계를 포함한다.
비디오 프로세싱의 방법을 수행하기 위해 컴퓨터에 의해 실행 가능한 명령의 프로그램을 수록하는 컴퓨터 판독 가능 매체가 개시된다. 방법은 비디오의 프 레임에 대한 정보의 블록을 생성하는 단계, 비트 버짓으로부터 각각의 상기 블록으로 비트를 할당하는 단계로서, 각각의 블록에 할당될 비트의 수는 거기에 포함된 정보의 함수인, 상기 할당 단계, 및 각각의 블록에 할당된 상기 비트를 이용하여 그 안에 포함된 상기 정보를 나타내는 단계를 포함한다.
도면의 간단한 설명
첨부된 도면에서, 비디오 프로세서의 다양한 양태는 예시적인 방식으로 설명되었을 뿐 제한하는 방식으로 설명되지 않는다.
도 1은 비디오 시스템의 예를 도시하는 개념적인 블록도이다.
도 2는 비디오 프로세서 내 비디오 프로세서 및 제어기의 예를 도시하는 개념적인 블록도이다.
도 3은 싱글-패스 및 듀얼-패스 모드에서 동작할 수 있는 비디오 프로세서의 오퍼레이션을 도시하는 흐름도이다.
도 4는 싱글-패스 및 듀얼-패스 모드에서 동작할 수 있는 비디오 프로세서를 작동하는 대안적인 방법을 도시하는 흐름도이다.
상세한 설명
첨부된 도면들과 연결하여 아래에 제시된 상세한 설명은 비디오 프로세서의 다양한 실시 형태를 설명할 의도일 뿐 비디오 프로세서가 실행될 수도 있는 유일한 실시 형태를 나타내고자 의도하는 것이 아니다. 상세한 설명은 비디오 프로세서의 완전한 이해를 제공하기 위해 특정한 세부 사항을 포함한다. 그러나, 비디오 프로세서는 이들 특정한 세부 사항이 없이도 실행될 수도 있음은 당업자에게 명백하다. 일부 예에서, 잘 알려진 구조 및 구성 요소는 비디오 프로세서의 개념이 불분명해지는 것을 방지하기 위해 블록 다이어그램 형태로 도시되었다.
도 1은 이동 통신 장치로 통합하는데 적합한 비디오 시스템의 예를 도시하는 개념적인 블록 다이어그램이다. 이동 통신 장치는 유선 전화 또는 무선 전화, 개인 디지털 보조기 (PDA), 랩탑 컴퓨터, 데스크탑 컴퓨터, 모뎀, 카메라, 게임 콘솔, 비디오 회의 또는 브로드캐스트 장치, 또는 비디오 애플리케이션을 지원할 수 있는 임의의 적절한 장치일 수도 있다.
비디오 시스템 (100) 은 이미지를 센서 (104) 에 포커싱하는 렌즈 (102) 를 포함할 수도 있다. 센서 (104) 는 CDD (Charge-Coupled Device), CMOS (Complimentary Metal Oxide Semiconductor) 이미지 센서, 또는 임의의 다른 적절한 센서일 수도 있다. VFE (Video Front End;106) 는 센서 (104) 에 의해 캡처링된 이미지를 프로세싱하는데 사용될 수도 있다. VFE (106) 에 의해 수행된 프로세싱은 화이트 밸런스, 컬러 수정, 감마 조정 및/또는 다른 프로세싱 함수를 포함할 수도 있다. 프로세싱된 비디오 이미지는 뷰잉용 디스플레이 (110) 및/또는 압축용 비디오 프로세서 (112) 에 제공될 수도 있다. 압축된 비디오 이미지는 메모리 (114) 내에 아카이빙될 수도 있고/있거나 네트워크 또는 통신 링크를 통한 송신용 송신기 (116) 에 제공될 수도 있다.
제어기 (118) 는 비디오 시스템 (100) 의 동작을 제어하는데 사용될 수도 있다. 제어기 (118) 는 독립형 컴포넌트로서 실행될 수도 있고, 또는 비디오 시스템 (100) 및/또는 통신 장치 내의 하나 이상의 컴포넌트를 통해 분포될 수도 있 다. 제어기 (118) 는 하드웨어, 펌웨어, 소프트웨어, 또는 그 임의의 조합으로 실행될 수도 있다. 예로써, 제어기 (118) 는 마이크로프로세서, DSP (Digital Signal Processor), ASIC (Application Specific Integrated Circuit), 프로그래머블 로직, 전용 하드웨어, 또는 임의의 다른 적절한 방식으로 실행될 수도 있다. 설명을 위해, 제어기 (118) 는 그 기능성에 관하여 설명될 것이다. 실행되는 방식은 특정 애플리케이션 및 전체 시스템에 부과된 설계 제약에 의존할 것이다. 당업자는, 이들 환경하에서 하드웨어, 펌웨어, 및 소프트웨어 구성의 상호 교환 가능성과, 각각의 특정 애플리케이션에 대해 설명된 기능성을 실현하는 최상의 방법을 인식할 것이다.
도 2는 제어기와 통신하는 비디오 시스템의 예를 도시하는 개념적인 블록도이다. 움직임 추정기 (202) 는 현재의 프레임 내의 각각의 매크로블록에 대한 움직임 벡터를 결정하여 이전 프레임 내의 그것의 위치로부터의 그 매크로블록의 변위를 나타내는데 사용될 수도 있다. 움직임 추정기 (202) 는 현재의 프레임 내의 각각의 매크로블록에 대해 메모리 (204) 에 기억된 이전 프레임을 검색하고 그 변위를 계산함으로써 이 기능을 수행한다. 검색 프로세스는, 정의된 검색 공간 내에 이전 프레임으로부터의 픽셀의 블록과 현재 프레임의 매크로블록 사이의 최상의 매치를 찾는 알고리즘을 이용한다. 검색 알고리즘은 본 기술에서 잘 알려진 SAD (Sum of Absolute Difference) 계산을 이용하여 일반적으로 수행된다. 특히, 움직임 추정 (202) 은 현재 프레임의 각각의 매크로블록을 이전 프레임의 그것의 주위 영역과 비교하고 최소 SAD로 표시된 매치를 찾으려고 한다.
텍스쳐 엔진 (205) 은 프레임 내의 잔여 정보의 시간적 압축 및 공간적 압축을 위해 움직임 추정기 (202) 에 의해 생성된 움직임 벡터를 사용할 수도 있다. 잔여 정보는 이전 프레임으로부터의 그 대응 매크로블록 내의 픽셀 정보로부터 각각의 매크로블록 내의 픽셀 정보를 감산함으로써 생성될 수도 있다. 움직임 보상기 (206) 는 메모리 (204) 에 기억된 이전 프레임으로부터의 대응 매크로블록을 위치시키기 위해 움직임 벡터를 이용하고 그들을 감산기 (208) 의 입력에 제공할 수도 있다.
DCT (210) 는 감산기 (208) 로부터의 잔여 정보를 공간 및 시간 영역으로부터 주파수 영역으로 변환하는데 사용될 수도 있다. 변환 동작은, 변환이 1차원 신호보다는 2차원 블록에 영향을 미치는 것을 제외하고는, FFT (Fast Fourier Transform) 를 이용하여 시간 영역 신호를 주파수 영역 신호로 변화는 하는 것과 유사하다. DCT (210) 는 64 주파수 계수를 생성하는 매크로블록의 8x8 블록 상에서 일반적으로 수행된다. 양자화기 (212) 는 변환 (210) 에 의해 생성된 주파수 계수를 감소시키는데 사용될 수도 있다. 이것은, 소수의 주파수 비-제로 계수만을 남겨두고 제로 근처의 다수의 고주파수 계수가 제로로 설정되도록, 변환 계수의 정밀도를 감소시킴으로써 달성된다. 이것은, 각각의 주파수 계수를 제어기 (118) 로부터의 QP로 나누고 그 결과를 트런케이팅함으로써 수행될 수도 있다. QP가 높을수록, 제로로 설정되는 주파수 계수가 더 높아진다.
디블록커 (214) 는 재구성된 이미지의 블록 경계 상의 에지 아티팩트를 제거하는데 사용될 수도 있다. 이것은, 블록 경계 사이의 보다 더 시각적으로 만족 스러운 천이를 생성하기 위해 보간 프로세스에 의해 달성될 수도 있다. 대안으로, 다른 잘 알려진 프로세스는 에지 아티팩트를 제거하는데 사용될 수도 있다.
인코더 (216) 는, 정보를 메모리 (114; 도 1 참조) 에 아카이빙하거나 이것을 네트워크를 또는 통신 링크를 통해 송신하기 전에 양자화된 변환 계수를 압축하는데 사용될 수도 있다. 사용될 수도 있는 많은 잘 알려진 압축 알고리즘이 있다. 종종 이용되는 일반적인 방법은 빈번히 발생하는 계수를 짧은 이진 코드로 대체하는 단계와 보다 덜 빈번한 계수를 보다 긴 이진 코드로 대체하는 단계를 포함한다. 이 결과는 가변 길이 이진 코드의 시퀀스이다. 이들 코드는 동기화와 결합되어 코딩된 비트 스트림을 형성하기 위해 정보를 제어한다. 제어 정보는 수신기에서 이미지를 재구성하기 위해 요구된 움직임 벡터를 포함한다.
현재 프레임은 다음 프레임이 인코딩될 때 기준 프레임으로서 사용될 수 있도록 기억되어야 한다. 현재 프레임을 메모리로 단순히 복사하는 대신, 양자화된 변환 계수는 역 양자화 (218), 역변환 (220) 을 이용하여 역변환되고, 움직임 보상 프레임에 가산 (222) 되어 메모리 (204) 에 기억된 재구성된 프레임을 생성한다. 이 프로세스는, 메모리 (204) 에 기억된 프레임의 콘텐츠가 수신기에 의해 재구성된 프레임과 동일하다는 것을 보증한다. 다음 프레임이 인코딩될 때, 움직임 추정기 (202) 는 이전 프레임인 메모리 (204) 에 기억된 프레임의 콘텐츠를 사용하여 움직임 보상을 위한 최상의 매칭 영역을 결정한다.
제어기 (118) 는, 프레임에 대한 코딩된 비트 스트림이 비트 버짓, 즉 코딩 비트 레이트를 초과하지 않는다는 것을 보증할 책임이 있다. 이것은, 프레임에 대한 목표 코딩 비트 레이트 (Rt) 를 달성하기 위해 매크로블록 레벨에서 적절한 QP를 선택함으로써 달성된다. 목표 코딩 비트 레이트 (Rt) 는 통신 장치 내에서 중앙 처리 유닛 (CPU), 또는 다른 프로세싱 엔터티로부터 제어기에 제공될 수도 있다. 오늘날, 목표 코딩 비트 레이트 (Rt) 로부터 매크로블록 레벨 QP를 계산하기 위한 많은 레이트 제어 알고리즘이 존재한다. 그러나, ρ-영역에서 동작하는 레이트 제어 알고리즘이 보다 정확할 것으로 믿어진다. "ρ"는 양자화된 변환 계수 사이의 비-제로 데이터의 퍼센트를 나타낸다. 일반적인 변환 코딩 시스템에서, ρbudget과 목표 코딩 비트 레이트 (Rt) 사이에 선형 관계가 존재하고, ρbudget은 비트 버짓을 만족시키는데 필요한 프레임 내의 양자화된 변환 계수들 중의 비-제로 데이터의 수이다. 둘 사이의 선형 관계는 다음 식으로 표현될 수 있다:
Figure 112007086669286-PCT00001
A와 B는 통신 장치 내의 CPU, 또는 다른 프로세싱 엔터티에 의해 생성된 상수이다. 상수는 동기화시의 변화와 영상 내의 상이한 움직임 활동 레벨로부터 기인한 제어 정보를 고려하여 조정될 수도 있다.
제어기 (118) 는 프레임 레벨에서 ρ를 QP로 매핑하는 룩업 테이블 (미도시) 을 포함할 수도 있다. ρ-QP 테이블은 실험적으로 유도되어 동작 전에 제어기 (118) 로 프로그래밍될 수도 있다. 대안으로, ρ-QP 테이블은 동작 도중에 조정될 수도 있다. 어떤 경우, ρ-QP 테이블은 식 (1) 로부터 계산된 ρbudget으로부터 주사선 방식으로 각각의 매크로블록에 대해 QP를 유도하도록 제어기 (118) 에 의해 사용될 수도 있다. 이 계산은 많은 방법으로 완성될 수도 있다. 예로써, 제어기 (118) 는, 동일한 QP를 프레임 내의 각각의 매크로블록으로 할당하는 프레임 레벨 QP 선택 알고리즘을 실행할 수도 있다. QP는 식 (1) 로부터 ρbudget을 계산하고 ρ-QP 테이블을 이용하여 ρbudget을 QP로 매핑함으로써 유도될 수도 있다. 이후, 이 QP는 양자화기 (212) 에 제공되어 각각의 매크로블록에 대한 양자화된 변환 계수를 생성할 수도 있다. 대안으로, 그리디 (Greedy) 알고리즘 또는 다른 적절한 레이트 제어 알고리즘이 매크로블록-레벨 QP를 유도하도록 사용될 수도 있다. 그리디 알고리즘은 본 기술에서 잘 알려져 있다.
제어기가 프레임 레벨 QP 선택 알고리즘, 그리디 알고리즘, 또는 임의의 다른 유형의 레이트 제어 알고리즘을 이용하든 아니든, 텍스쳐 엔진 (205) 을 통해 제 2 패스를 가지고 개선된 성능이 성취될 수도 있다. 이 듀얼-패스 구성에서, 영상 품질을 개선하기 위해 제 2 패스 상에서 텍스쳐 엔진 (205) 에 의해 사용될 수 있는 제 1 패스로부터 다양한 통계가 생성될 수도 있다. 특히, 텍스쳐 엔진 (205) 을 통한 제 1 패스 상에, 프레임의 참 이미지 조건을 반영하기 위해 ρ-QP 테이블이 업데이트될 수도 있다. 이후, 양자화된 변환 계수는, 아래에 더 상세하게 설명된 바와 같이 더 나은 정확성을 가지고 텍스쳐 엔진 (205) 을 통해 제 2 패스 상에 생성될 수 있다. 부가적으로, 더 많은 잔여 정보를 갖는 매크로블록이 더 많은 양자화된 변환 계수를 할당받도록, 텍스쳐 엔진 (205) 을 통해 제 1 패스 상에 각각의 매크로블록에 대한 움직임 추정기 (202) 에 의해 생성된 SAD는 제 2 패스에 사용되어 매크로블록 레벨 상에 QP를 유도한다.
제어기 (118) 는 2 단계 프로세스를 이용하여 매크로블록 레벨 상에 QP를 유도하도록 구성될 수도 있다. 먼저, 제어기 (118) 는 SAD로부터 ρ를 계산한다. 둘째로, 계산된 ρ를 QP로 매핑하기 위해 업데이트된 ρ-QP 테이블이 사용된다. ρ와 SAD 사이의 관계는 다음 식을 이용하여 모델링될 수 있다:
Figure 112007086669286-PCT00002
ρslice i는 Mi 매크로블록을 포함하는 프레임의 i번째 슬라이스에 대한 ρ버짓이고, K는 프레임 내의 슬라이스의 수이고, φ는 잔여 정보의, 표준 편차, 즉, 제곱 오차의 합계의 제곱근이다.
슬라이스를 통과하는 매크로블록 분산 (variance) (φ) 이 상대적으로 비슷하다고 가정하면, 슬라이스 내 각각의 매크로블록에 대한 ρ는 다음 식으로 제시될 수 있다.
Figure 112007086669286-PCT00003
SAD는 표준 편차 (φ) 의 우수한 추정을 제공한다. 추정은 심지어, 슬라이스 내 매크로블록 (M) 의 수가 증가할수록 더 정확해진다. 따라서, 프레임에 관한 적절한 슬라이스 파티셔닝 방식으로, 텍스쳐 엔진 (205) 을 통해 제 1 패스 상에 움직임 추정기 (202) 에 의해 계산된 SAD는 무시할 수 있는 오차를 갖는 분산에 관한 식 (2) 로 직접적으로 대체될 수 있다:
SAD가 비디오 프로세서의 일부 실시 형태에 사용될 수도 있는 이유는 두 부분이다. 먼저, SAD의 계산은 하드웨어 실행에 관한 분산 보다 더 복잡하다. 둘째로, SAD 계산은 움직임 추정기로부터 이용가능하고, 따라서 어떤 부가적인 프로세싱도 요구되지 않는다.
프레임이 슬라이스되는 방식은 특정 애플리케이션, 성능 요구조건, 및 전체 설계 제약에 의존한다. 오로지 예시적인 목적으로 아래에 일례가 제공된다. 본 개시에 전체적으로 설명된 다양한 개념을 실행하기 위해 다른 파티셔닝 방식이 사용될 수도 있음의 당업자는 이해한다.
슬라이스 파티셔닝 방식의 본 예에서, 텍스쳐 엔진 (205) 을 통한 제 1 패스로부터의 중간 범위 SAD 값이 식별된다. 중간 범위는 본 명세서에서 전체 SAD 범위의 20-80% 사이가 되지만, 실제 실행시 임의의 범위일 수도 있다. 중간 범위 SAD 값을 식별하는 단계에 덧붙여, 프레임을 위한 평균 SAD 도 계산될 수도 있 다. 프레임에 대한 중간 범위 SAD 값과 평균 SAD는 다음 과정에 기초하여 N개의 매크로블록의 총 수를 가변 슬라이스 길이 (Li) 를 갖는 M개의 슬라이스로 나누기 위해 사용될 수도 있다.
(1) 프레임 내 j번째 매크로블록으로부터 시작한 i번째 슬라이스가 식별된다. 프레임의 시작시, i=0 및 j=0 이다. 알고리즘은 단계 (2) 로 진행한다.
(2) j번째 매크로블록이 임계값보다 크다면, 알고리즘은 단계 (6) 으로 분기한다. 그렇지 않으면, 알고리즘은 단계 (3) 으로 진행한다. 본 예의 임계값은 (N-8) 이지만, 실제 실행시 임의의 값일 수도 있다.
(3) 프레임 내 j번째 매크로블록이 임계값보다 작거나 같다고 가정하면, 알고리즘은 중간 범위 SAD 값을 갖는 j+2 부터 j+5 까지 인덱스된 각각의 매크로블록을 마크한다. 하나 이상의 이들 매크로블록이 마크된다면, 알고리즘은 단계 (4) 로 진행한다. 그렇지 않으면 알고리즘은 단계 (5) 로 분기한다.
(4) 알고리즘은, 평균 SAD 가 프레임에 대한 평균 SAD 에 가장 가까운 마크된 매크로블록을 식별한다. 각각의 매크로블록에 대한 평균 SAD는 그 좌우의 이웃하는 매크로블록을 갖는 계산된 평균일 수도 있다. 식별된 매크로블록은 새로운 슬라이스를 개시하는데 사용된다, 즉, 식별된 매크로블록은 단계 (1) 의 j번째 매크로블록이 된다.
(5) 알고리즘은 중간 범위 SAD 값을 갖는 j 이후에 인덱싱된 제 1 매크로블 록을 결정한다. 이 매크로블록은 k번째 매크로블록으로 지정된다. (k-j)>10인 경우, 알고리즘은 단계 (1) 로 귀환하여 j+5로 인덱스된 개시 매크로블록을 갖는 새로운 슬라이스를 개시한다. 그렇지 않으면, 알고리즘은 단계 (1) 로 귀환하여 (j+k)/2로 인덱스된 개시 매크로블록을 갖는 새로운 슬라이스를 개시한다.
(6) 잔여 매크로블록의 수 ≥ 6 인 경우, 알고리즘은 그들을 프레임 평균 SAD에 가장 가까운 평균 SAD를 갖는 매크로블록에서 2개의 슬라이스로 나눈다. 그렇지 않으면, 모든 잔여 매크로블록이 최종 슬라이스에 포함된다.
일단 프레임이 적절히 슬라이스되면, 다음 식을 이용하여 각각의 슬라이스에 대한 ρi'이 결정된다.
Figure 112007086669286-PCT00004
ρused는 여태까지 실제로 사용된 ρ이고, ρslice i는 식 (2) 에 의해 계산된 슬라이스 i 에 대한 ρ 버짓이다.
i번째 슬라이스 내에, 주사선 순서로 매크로블록이 프로세싱된다. m번째 매크로블록 (m=1,...,Li) 에 대한 ρ는 다음식으로부터 얻어질 수도 있다.
Figure 112007086669286-PCT00005
각각의 매크로블록에 대한 대응 QP (qi ,m) 는 ρ-QP 테이블로부터 찾을 수 있다.
각각의 매크로블록에 대한 QP (qi ,m) 는 프레임 내 슬라이스 경계들 사이의 완만한 천이를 보증하기 위해 조정될 수도 있다. QP (qi ,m) 가 조정될 수도 있는 방법의 예는 실제 실행에서 사용될 수도 있는 다른 방법을 이해함과 함께 아래에 주어진다.
알고리즘은 다음과 같이 슬라이스 (m=1) 내 제 1 매크로블록을 프로세싱한다 :
Figure 112007086669286-PCT00006
인 경우,
Figure 112007086669286-PCT00007
이고, 그렇지 않으면
Figure 112007086669286-PCT00008
이고,
Figure 112007086669286-PCT00009
은 프레임의 평균 QP이다.
알고리즘은 슬라이스 내 잔여 매크로블록을 프로세싱하여 다음 3개의 조건을 만족한다:
(1) qi ,m
Figure 112007086669286-PCT00010
Figure 112007086669286-PCT00011
의 범위 내에 있어야 한다;
(2) 그 이전 매크로블록의 qi ,m과 QP의 차이는 [-2,2] 의 범위 내에 있어야 한다; 그리고
(3) qi ,m의 값은 [1,31] 의 범위 내에 있어야 한다.
적어도 비디오 시스템의 일 실시 형태에서, 제어기 (118) 는 듀얼-패스 모드에서의 동작에 의해 영상 품질의 기대된 개선과 이용 가능한 프로세싱 리소스에 의존하여 싱글-패스 또는 듀얼-패스 모드로 텍스쳐 엔진 (205) 을 동작하기 위해 구성될 수도 있다. 모드들 사이의 동적인 스위치를 위해 제어기 (118) 에 의해 사용된 기준은 특정 애플리케이션, 설계자의 선호, 및 전체 설계 제약에 의존하여 변할 수도 있다. 예로써, 제어기 (118) 는 프레임에 걸쳐 SAD의 변화를 모니터링하도록 구성될 수도 있다. 제어기가 거의 변화가 없다고 결정했다면, 프레임 전체의 동일한 QP를 이용하여 텍스쳐 엔진 (205) 을 통한 싱글 패스가 충분할 수도 있다. 반면에, 제어기 (118) 가 프레임에 걸쳐 SAD에 큰 변화가 있다고 결정한 경우, 텍스쳐 엔진 (205) 을 통한 제 2 패스는 비트 버짓으로부터 보다 많은 비트 보다 많은 정보는 갖는 매크로블록을 주도록 보증될 수도 있다.
도 3은 싱글-패스 및 듀얼-패스 모드에서 동작 가능한 비디오 시스템의 동작을 도시하는 흐름도이다. 단계 (302) 에서, 매크로블록은 메모리로부터 페칭된다. 매크로블록은 단계 (304) 에서 움직임 추정기에 제공된다. 움직임 추정기는 이전 프레임 내 매크로블록의 위치로부터 현재 프레임 내 매크로블록 변위의 대표적인 움직임 벡터를 계산한다. 부가적으로, 움직임 벡터를 계산하는데 사용된 SAD는 텍스쳐 엔진을 통한 제 2 패스에 나중에 사용하기 위해 기억될 수도 있다.
매크로블록에 대한 움직임 벡터는 단계 (306) 의 텍스쳐 엔진에 제공된다. 매우 상세하게 상술된 바와 같이, 텍스쳐 엔진은 이전 프레임 내 대응 매크로블록을 메모리에 위치시키고 둘 사이의 차이점을 계산하기 위해 움직임 벡터를 사용할 수도 있다. 차이점, 또는 잔여 정보는, 제어기에 의해 텍스쳐 엔진에 제공된 QP에 기초하여 양자화된 변환 계수로 텍스쳐 엔진에 의해 변환된다. 프레임 레벨에서 ρ-QP 테이블을 구성하기 위해 요구된 정보도 메모리에 기억된다.
단계 (308) 에서, 제어기는 텍스쳐 엔진으로부터의 양자화된 변환 계수 출력이 현재 프레임 내 최종 매크로블록에 속하는지 여부를 결정한다. 그렇다면, 제어기는 단계 (302) 로 귀환하는데, 여기서 프레임 내 다음 매크로블록이 메모리로부터 페치된다. 반면에, 텍스쳐 엔진으로부터의 양자화된 변환 계수 출력이 현재 프레임 내 최종 매크로블록에 속하는지 않는다면, 텍스쳐 엔진을 통한 제 1 패스가 완료된다. 이후, 단계 (310) 에서, 제어기는 텍스쳐 엔진을 통한 제 2 패스가 필요한지 여부를 결정한다. 제어기가 제 2 패스가 요구되지 않는다고 결정하였음을 가정하면, 프레임은 단계 (312) 에서 디블록킹되어 단계 (314) 에서 인코딩된다. 그렇지 않으면, 제어기는 텍스쳐 엔진을 통한 다른 패스에 대한 비디오 프로세서를 구성한다. 이것은, 텍스쳐 엔진을 통한 제 1 패스 동안 기억된 정보로부터 프레임에 대한 ρ-QP 테이블을 구성하는 단계를 포함한다.
제 2 패스시, 현재 프레임 내 매크로블록이 제 2 시간 동안 메모리로부터 페치되어 (단계 316), 움직임 추정기로 제공된다. 움직임 추정기는 매크로블록에 대한 움직임 벡터를 계산하여 (단계 318), 움직임 벡터를 텍스쳐 엔진으로 제공한다.
단계 (320) 에서, 텍스쳐 엔진은 매크로블록의 콘텐츠를 더 양호하게 나타내는 QP를 이용하여 양자화된 변환 계수를 계산한다. 식 (5) 을 이용하여 먼저 ρ를 계산함으로써 제어기에 의해 QP가 유도된 후, 텍스 엔진을 통한 제 1 패스 동안 전개된 프레임 레벨 ρ-QP 테이블을 이용하여 계산된 ρ를 QP 값으로 매핑하고, 프레임 내 슬라이스 경계들 사이의 완만한 경계를 확보하기 위해 최종적으로 QP를 조정한다. 이 프로세스는, 프레임 내 매크로블록이 두 번째로 텍스쳐 엔진을 통해 패스될 때까지 계속된다. 단계 (322) 에서, 제어기는 텍스쳐 엔지으로부터 출력된 양자화된 변환 계수가 프레임 내 최종 매크로블록에 대한 것인지 여부를 결정한다. 그렇지 않다면, 제어기는 단계 (316) 로 귀환하여 프레임 내 다음 매크로블록을 페치한다. 그렇지 않으면, 단계 (312) 에서 프레임이 디블록킹되고 단계 (314) 에서 인코딩된다.
도 4는 비디오 프로세서가 싱글-패스 및 듀얼-패스 동작 둘 다를 지원하도록 동작될 수도 있는 대안적인 방법을 도시하는 흐름도이다. 본 구성에서, 움직임 추정 프로세스는 1회만 수행된다. 각각의 매크로블록에 대해 계산된 움직임 벡터 및 SAD는 듀얼-패스 모드의 텍스쳐 엔진을 통한 패스들 둘 다 동안 사용된다.
도 4를 참고하면, 매크로블록은 단계 (402) 에서 메모리로부터 페치된다. 매크로블록은 단계 (404) 에서 움직임 추정기로 제공된다. 움직임 추정기 매크로블록의 SAD를 결정하여 SAD로부터 움직임 벡터를 계산한다. 움직임 벡터와 SAD 둘 다는 텍스쳐 엔진에 의해 이후에 사용하기 위해 기억된다. 본 프로세스는 프레임 내 각각의 매크로블록에 대해 반복된다. 단계 (406) 에서, 제어기는, 이것이 프레임 내 최종 매크로블록인지 여부를 각각의 매크로블록에 대해 결정한다. 그렇지 않다면, 제어기는 단계 (402) 로 귀환하여 프레임 내 다음 매크로블록을 페치한다. 그렇지 않으면, 각각의 매크로블록에 대한 움직임 벡터는 텍스쳐 엔진에 제공된다.
텍스쳐 엔진은, 단계 (408) 에서, 제어기에 의해 텍스쳐 엔진에 제공된 QP를 기초로 매크로블록 내의 잔여 정보에 대한 양자화된 변환 계수를 계산한다. 프레임 레벨에서 ρ-QP 테이블을 구성하는데 요구된 정보도 메모리에 기억된다.
제어기는, 단계 (410) 에서, 텍스쳐 엔진으로부터의 양자화된 변환 계수 출력이 현재 프레임 내 매크로블록에 속하는지 여부를 결정한다. 그렇지 않다면, 제어기는 단계 (408) 로 귀환하는데, 프레임 내 다음 매크로블록에 대한 다음 움직임 벡터는 텍스쳐 엔진에 제공된다. 반면에, 그렇다면, 텍스쳐 엔진으로부터의 양자화된 변환 계수 출력은 프레임 내 최종 매크로블록에 속하여, 텍스쳐 엔진을 통한 제 1 패스가 완료된다. 이후, 제어기는, 단계 (412) 에서, 텍스쳐 엔진을 통한 제 2 패스가 필요한지 여부를 결정한다. 제어기가, 제 2 패스가 요구되지 않는다고 결정하였음을 가정하면, 프레임은 단계 (414) 에서 디블록킹되고 단계 (416) 에서 인코딩된다. 그렇지 않으면, 제어기는, 텍스쳐 엔진을 통한 제 1 패스 동안 메모리에 기억된 정보로부터 프레임에 대한 ρ-QP 테이블을 구성하고, 텍스쳐 엔진을 통한 다른 패스 동안 단계 (418) 로 진행한다.
제 2 패스시, 텍스쳐 엔진은 단계 (404) 에서 계산된 움직임 벡터와 보다 정확한 QP를 이용하여 양자화된 변환 계수를 계산한다. QP는 식 (5) 를 이용하여 먼저 ρ를 계산한 후, 텍스쳐 엔진을 통한 제 1 패스 동안 발달된 프레임 레벨 ρ-QP 테이블을 이용하여 계산된 ρ를 QP 값으로 매핑하고, 최종적으로, 프레임 내 슬라이스 경계 사이의 완만한 천이를 확실하게 하기 QP를 조정함으로써 제어기에 의해 유도된다. 본 프로세스는 프레임 내 모든 매크로블록 두 번째로 텍스트 엔진을 통해 통과될 때까지 계속된다. 단계 (420) 에서, 제어기는 텍스쳐 엔진으로부터 출력된 양자화된 변환 계수가 프레임 내 최종 매크로블록에 속하는지 여부를 결정한다. 그렇지 않다면, 제어기는 단계 (418) 로 귀환하여 프레임 내 다음 매크로블록을 프로세스한다. 그렇지 않으면, 프레임은 단계 (414) 에서 디블록킹되고 단계 (416) 에서 인코딩된다.
본 명세서에 개시된 실시 형태들과 연결하여 설명된 다양한 예시적 로직 블록들, 모듈들, 및 회로들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 축소 명령 집합 컴퓨터 (RISC) 프로세서, 주문형 반도체 (ASIC), 필드 프로그래머블 게이트 어레이들 (FPGA), 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 마이크로프로세서는 임의의 프로세서, 제어기, 마이크로제어기, 또는 스테이트 머신일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 관련된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성의 조합으로서 구현될 수도 있다.
본 명세서에 개시된 실시 형태와 연결하여 설명된 방법 또는 알고리즘은 하드웨어, 프로세서에 의해 실행된 소프트웨어 모듈, 또는 둘이 조합에 직접적으로 수록될 수도 있다. RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈식 디스크, CD-ROM, 또는 본 기술에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 프로세서가 기억 매체로부터 정보를 판독하고 기억 매체에 정보를 기록할 수 있도록 기억 매체가 접속될 수도 있다. 대안으로, 기억 매체는 프로세서에 통합될 수도 있다.
이전의 설명은 본 명세서에 설명된 다양한 실시 형태를 실행하는 것이 가능하도록 당업자에게 제공된다. 이들 실시 형태에 대한 다양한 수정은 당업자에게 분명하고 본 명세서에 정의된 일반적인 원리는 다른 실시 형태에 적용될 수도 있다. 따라서, 청구 범위는 본 명세서에 제시된 실시 형태를 제한하고자 하는 것이 아니라, 청구범위에 일치하는 전체 범위를 따르고, 특별히 언급되어있는 않다면 유일하게 있는 엘리먼트는 "하나 및 오로지 하나만"을 의미하고자 하는 것이 아니고, 오히려 "하나 이상"을 의미한다. 본 기술의 숙련된 기술자에게 알려진 또는 이후 알려질 본 개시물을 통해 설명된 다양한 실시 형태의 엘리먼트에 상응하는 모든 구조적 및 기능적 등가물은 참고 문헌으로써 본 명세서에 명시적으로 포함되고 청구범위에 포함되도록 의도된다. 더욱이, 이러한 개시물이 청구 범위에 명시적으로 인용되었는지 여부와 관계없이, 본 명세서에 개시된 것이 공중에 알려 지는 것을 의도하는 것은 아니다. 구성 요소가 "~하는 수단"을 이용하여 명시적으로 인용되지 않는다면, 또는 방법 청구항의 경우에, "~하는 단계"를 이용하여 인용되지 않는다면, 청구 범위 구성 요소는 35 U.S.C.§112에 의해 구성되지 않는다.

Claims (47)

  1. 비디오의 프레임에 대한 정보의 블록을 생성하도록 구성된 비디오 프로세서; 및
    비트 버짓으로부터 각각의 상기 블록에 비트를 할당하도록 구성된 제어기로서, 각각의 상기 블록에 할당될 비트의 수는 거기에 포함된 정보의 함수인, 상기 제어기를 포함하고;
    상기 비디오 프로세서는 각각의 상기 블록에 할당된 비트를 사용하여 거기에 포함된 상기 정보를 나타내도록 더 구성되는, 비디오 시스템.
  2. 제 1 항에 있어서,
    상기 비디오 프로세서는 각각의 상기 블록 내의 상기 정보를 움직임 정보로 변환하도록 구성된 움직임 추정기를 더 포함하고, 상기 제어기에 의해 각각의 상기 블록에 할당된 비트의 수는 거기에 포함된 상기 움직임 정보의 함수인, 비디오 시스템.
  3. 제 2 항에 있어서,
    각각의 상기 블록 내의 상기 움직임 정보는 SAD (Sum of Absolute Difference) 값을 포함하는, 비디오 시스템.
  4. 제 1 항에 있어서,
    상기 제어기는, 각각의 상기 블록에 대한 파라미터를 그것에 할당된 상기 비트와 관련하여 유도하도록 더 구성되고, 상기 비디오 프로세서는 각각의 상기 블록 내의 상기 정보를 할당된 비트의 수로 나타내기 위해 상기 파라미터를 이용하도록 더 구성되는, 비디오 시스템.
  5. 제 4 항에 있어서,
    상기 비디오 프로세서는 각각의 상기 블록 내의 상기 정보를 잔여 정보로 변환하도록 구성된 텍스쳐 엔진을 포함하고, 상기 비디오 프로세서는 각각의 상기 블록에 할당된 비트를 이용하여 거기에 포함된 상기 잔여 정보를 나타내도록 더 구성되는, 비디오 시스템.
  6. 제 5 항에 있어서,
    상기 텍스쳐 엔진은 상기 파라미터에 기초하여 상기 블록 내의 상기 잔여 정보를 양자화하도록 구성된 양자화기를 포함하는, 비디오 시스템.
  7. 제 6 항에 있어서,
    상기 제어기는 ρ 영역에서 상기 파라미터를 유도하도록 더 구성된, 비디오 시스템.
  8. 제 7 항에 있어서,
    상기 제어기는, 상기 블록 내의 상기 정보로부터 ρ-QP 테이블을 생성하고 상기 파라미터를 유도하기 위해 상기 ρ-QP 테이블을 이용함으로써 상기 파라미터를 유도하도록 더 구성되는, 비디오 시스템.
  9. 제 8 항에 있어서,
    상기 제어기는, 상기 ρ-QP 테이블을 생성하도록 상기 텍스쳐 엔진을 통해 상기 정보의 블록을 패스하고, 상기 ρ-QP 테이블을 이용하여 상기 비트를 상기 개별 블록에 할당하도록 두 번째로 상기 텍스쳐 엔진을 통해 상기 정보의 블록을 패스하도록 더 구성되는, 비디오 시스템.
  10. 제 9 항에 있어서,
    상기 제어기는 상기 텍스쳐 엔진을 통해 상기 정보의 블록의 상기 두 번째 패스를 가능 및 불가능하게 하도록 더 구성되는, 비디오 시스템.
  11. 제 7 항에 있어서,
    상기 제어기는, 상기 프레임을 복수의 슬라이스로 나누고, 각각의 상기 슬라이스에 대한 ρ를 계산하고, 그 개별 슬라이스에 대해 계산된 상기 ρ에 기초하여 각각의 상기 블록에 대한 상기 파라미터를 유도함으로써 상기 파라미터를 유도하도록 더 구성되는, 비디오 시스템.
  12. 제 7 항에 있어서,
    상기 비디오 프로세서는 각각의 상기 블록 내의 상기 정보를 움직임 정보로 변환하도록 구성된 움직임 추정기를 더 포함하고, 상기 제어기에 의해 유도된 각각의 상기 파라미터는 그 개별 블록에 포함된 상기 움직임 정보에 기초하는, 비디오 시스템.
  13. 제 12 항에 있어서,
    각각의 상기 블록에 대한 상기 움직임 정보는 SAD (Sum of Absolute Difference) 값을 포함하는, 비디오 시스템.
  14. 제 13 항에 있어서,
    상기 제어기는 각각의 상기 블록에 대한 ρ를 계산함으로써 상기 파라미터를 유도하도록 더 구성되고, 각각의 ρ 계산은 그 개별 블록에 대한 SAD를 이용하는, 비디오 시스템.
  15. 비디오의 프레임에 대한 정보의 블록을 생성하도록 구성된 비디오 시스템으로서,
    비트 버짓으로부터 각각의 상기 블록으로 비트를 할당하는 수단으로서, 각각의 상기 블록에 할당될 비트의 수는 거기에 포함된 상기 정보의 함수인, 상기 비트 할당 수단; 및
    각각의 상기 블록에 할당된 상기 비트를 이용하여 각각의 상기 블록 내의 상기 정보를 나타내는 수단을 포함하는, 비디오 시스템.
  16. 제 15 항에 있어서,
    각각의 상기 블록 내의 상기 정보를 움직임 정보로 변환하는 수단을 더 포함하고, 각각의 상기 블록에 할당된 비트의 수는 거기에 포함된 상기 움직임 정보의 함수인, 비디오 시스템.
  17. 제 16 항에 있어서,
    각각의 상기 블록 내의 상기 움직임 정보는 SAD (Sum of Absolute Difference) 값을 포함하는, 비디오 시스템.
  18. 제 15 항에 있어서,
    상기 비트 버짓으로부터 비트를 할당하는 수단은 각각의 상기 블록에 할당된 비트와 관련하여 각각의 상기 블록에 대한 파라미터를 유도하도록 구성되고, 상기 정보를 나타내는 수단은 상기 파라미터에 반응하는 양자화기를 포함하는, 비디오 시스템.
  19. 제 18 항에 있어서,
    각각의 상기 블록 내의 상기 정보를 잔여 정보로 변환하는 수단을 더 포함하고, 상기 양자화기는 각각의 상기 블록에 할당된 비트를 이용하여 거기에 포함된 상기 잔여 정보를 나타내도록 더 구성되는, 비디오 시스템.
  20. 제 18 항에 있어서,
    상기 제어기는 ρ 영역에서 상기 파라미터를 유도하도록 더 구성되는, 비디오 시스템.
  21. 비디오의 프레임에 대한 정보의 블록을 생성하는 단계;
    비트 버짓으로부터 각각의 상기 블록으로 비트를 할당하는 단계로서, 각각의 상기 블록에 할당될 비트의 수는 거기에 포함된 상기 정보의 함수인, 상기 비트 할당 단계; 및
    각각의 상기 블록에 할당된 비트를 이용하여 거기에 포함된 상기 정보를 나타내는 단계를 포함하는, 비디오 프로세싱 방법.
  22. 제 21 항에 있어서,
    각각의 상기 블록 내의 상기 정보를 움직임 정보로 변환하는 단계를 더 포함하고, 상기 제어기에 의해 각각의 상기 블록에 할당된 비트의 수는 거기에 포함된 상기 움직임 정보의 함수인, 비디오 프로세싱 방법.
  23. 제 22 항에 있어서,
    각각의 상기 블록 내의 상기 움직임 정보는 SAD (Sum of Absolute Difference) 값을 포함하는, 비디오 프로세싱 방법.
  24. 제 21 항에 있어서,
    상기 비트 버짓으로부터의 상기 비트의 할당은 각각의 상기 블록에 할당된 비트와 관련하여 각각의 상기 비트에 대한 파라미터를 유도하는 단계를 포함하고, 상기 파라미터는 각각의 상기 블록 내의 상기 정보를 상기 할당된 비트의 수로 나타내기 위해 사용되는, 비디오 프로세싱 방법.
  25. 제 24 항에 있어서,
    각각의 상기 블록 내의 상기 정보를 잔여 정보로 변환하는 단계를 더 포함하고, 각각의 상기 블록에 할당된 비트는 거기에 포함된 상기 잔여 정보를 나타내기 위해 사용되는, 비디오 프로세싱 방법.
  26. 제 25 항에 있어서,
    각각의 상기 블록 내의 상기 잔여 정보는 상기 파라미터를 이용하여 상기 잔여 정보를 양자화함으로써 상기 할당된 비트의 수로 나타내지는, 비디오 프로세싱 방법.
  27. 제 26 항에 있어서,
    상기 파라미터는 ρ 영역에서 유도되는, 비디오 프로세싱 방법.
  28. 제 27 항에 있어서,
    상기 파라미터는, 상기 블록 내의 상기 정보로부터 ρ-QP 테이블을 생성하고 상기 파라미터를 유도하기 위해 상기 ρ-QP 테이블을 이용함으로써 유도되는, 비디오 프로세싱 방법.
  29. 제 27 항에 있어서,
    상기 파라미터는, 상기 프레임을 복수의 슬라이스로 나누고, 각각의 상기 슬라이스에 대한 ρ를 계산하고, 그 개별 슬라이스에 대해 계산된 상기 ρ에 기초하여 각각의 상기 블록에 대한 상기 파라미터를 유도함으로써 유도되는, 비디오 프로세싱 방법.
  30. 제 27 항에 있어서,
    각각의 상기 블록 내의 상기 정보를 움직임 정보로 변환하는 단계를 더 포함하고, 각각의 상기 파라미터의 유도는 그 개별 블록 내에 포함된 상기 움직임 정보에 기초하는, 비디오 프로세싱 방법.
  31. 제 30 항에 있어서,
    각각의 상기 블록에 대한 상기 움직임 정보는 SAD (Sum of Absolute Difference) 값을 포함하는, 비디오 프로세싱 방법.
  32. 제 31 항에 있어서,
    상기 파라미터는 각각의 상기 블록에 대한 ρ를 계산함으로써 유도되고, 각각의 ρ 계산은 그 개별 블록에 대한 SAD를 이용하는, 비디오 프로세싱 방법.
  33. 비디오의 프레임에 대한 정보의 블록을 생성하도록 구성되고 텍스쳐 엔진을 포함하는 비디오 프로세서로 비디오를 프로세싱하는 방법으로서,
    상기 프레임에 대한 통계를 생성하도록 첫 번째로 상기 텍스쳐 엔진을 통해 상기 프레임 내의 상기 정보의 블록을 패스하는 단계; 및
    상기 통계에 기초하여 비트 버짓으로부터 각각의 상기 블록에 비트를 할당하도록 두 번째로 상기 텍스쳐 엔진을 통해 상기 프레임 내의 상기 정보의 블록을 패스하고, 각각의 상기 블록에 할당된 비트를 이용하여 그 안에 포함된 상기 정보를 나타내는 단계를 포함하는, 비디오 프로세싱 방법.
  34. 제 33 항에 있어서,
    상기 텍스쳐 엔진을 통한 상기 제 1 패스 시에 생성된 상기 통계는 ρ-QP 테이블을 포함하는, 비디오 프로세싱 방법.
  35. 제 34 항에 있어서,
    상기 텍스쳐 엔진을 통한 상기 제 1 패스는 각각의 상기 블록에 대한 SAD (Sum of Absolute Difference) 값을 생성하는 단계를 더 포함하고, 상기 텍스쳐 엔진을 통한 상기 제 2 패스는 그 개별 SAD를 이용하여 각각의 상기 블록에 대한 ρ를 계산하는 단계, 각각의 상기 블록에 대한 상기 ρ를 QP에 매핑하는 단계, 및 각각의 상기 블록에 대해, 그 안에 포함된 상기 정보를 양자화하기 위해 그것의 QP를 이용하는 단계를 포함하는, 비디오 프로세싱 방법.
  36. 비디오 프로세싱의 방법을 수행하기 위해 컴퓨터에 의해 실행 가능한 명령의 프로그램을 기록한 컴퓨터 판독가능 매체로서,
    상기 방법은,
    비디오 프레임에 대한 정보의 블록을 생성하는 단계;
    비트 버짓으로부터 각각의 상기 블록으로 비트를 할당하는 단계로서, 각각의 상기 블록에 할당될 비트의 수는 거기에 포함된 상기 정보의 함수인, 상기 비트 할당 단계; 및
    각각의 상기 블록에 할당된 비트를 이용하여 그 안에 포함된 상기 정보를 나타내기 위해 단계를 포함하는, 컴퓨터 판독가능 매체.
  37. 제 36 항에 있어서,
    상기 방법은 각각의 상기 블록 내의 상기 정보를 움직임 정보로 변환하는 단 계를 더 포함하고, 상기 제어기에 의해 각각의 상기 블록에 할당된 비트의 수는 그 안에 포함된 상기 움직임 정보의 함수인, 컴퓨터 판독가능 매체.
  38. 제 37 항에 있어서,
    각각의 상기 블록 내의 상기 움직임 정보는 SAD (Sum of Absolute Difference) 값을 포함하는, 컴퓨터 판독가능 매체.
  39. 제 36 항에 있어서,
    상기 비트 버짓으로부터 비트를 할당하는 단계는 각각의 상기 블록에 할당된 비트와 관련하여 각각의 상기 블록에 대한 파라미터를 유도하는 단계를 포함하고, 상기 파라미터는 상기 할당된 비트의 수로 각각의 상기 블록 내의 상기 정보를 나타내기 위해 사용되는, 컴퓨터 판독가능 매체.
  40. 제 39 항에 있어서,
    상기 방법은 각각의 상기 블록 내의 상기 정보를 잔여 정보로 변환하는 단계를 더 포함하고, 각각의 상기 블록에 할당된 비트는 그 안에 포함된 상기 잔여 정보를 나타내기 위해 사용되는, 컴퓨터 판독가능 매체.
  41. 제 40 항에 있어서,
    각각의 상기 블록 내의 상기 잔여 정보는 상기 파라미터를 이용하여 상기 잔 여 정보를 양자화함으로써 상기 할당된 비트의 수로 나타내지는, 컴퓨터 판독가능 매체.
  42. 제 41 항에 있어서,
    상기 파라미터는 ρ 영역에서 유도되는, 컴퓨터 판독가능 매체.
  43. 제 42 항에 있어서,
    상기 파라미터는, 상기 블록 내의 상기 정보로부터 ρ-QP 테이블을 생성하고, 상기 파라미터를 유도하기 위해 상기 ρ-QP 테이블을 이용함으로써 유도되는, 컴퓨터 판독가능 매체.
  44. 제 43 항에 있어서,
    상기 파라미터는 상기 프레임을 복수의 슬라이스로 나누고, 각각의 상기 슬라이스에 대한 ρ를 계산하고, 그 개별 슬라이스에 대해 계산된 상기 ρ에 기초하여 각각의 상기 블록에 대한 상기 파라미터를 유도함으로써 유도되는, 컴퓨터 판독가능 매체.
  45. 제 42 항에 있어서,
    상기 방법은 각각의 상기 블록 내의 상기 정보를 움직임 정보로 변환하는 단계를 더 포함하고, 각각의 상기 파라미터의 상기 유도는 그 개별 블록 내에 포함된 상기 움직임 정보에 기초하는, 컴퓨터 판독가능 매체.
  46. 제 45 항에 있어서,
    각각의 상기 블록에 대한 상기 움직임 정보는 SAD (Sum of Absolute Difference) 값을 포함하는, 컴퓨터 판독가능 매체.
  47. 제 46 항에 있어서,
    상기 파라미터는 각각의 상기 블록에 대한 ρ를 계산함으로써 유도되고, 각각의 ρ 계산은 그 개별 블록에 대한 SAD를 이용하는, 컴퓨터 판독가능 매체.
KR1020077028121A 2005-05-02 2006-05-02 매크로블록 레벨 레이트 제어 KR100932879B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/120,389 US7848409B2 (en) 2005-05-02 2005-05-02 Macroblock level bit allocation
US11/120,389 2005-05-02
PCT/US2006/017120 WO2006119410A1 (en) 2005-05-02 2006-05-02 Macroblock level rate control

Publications (2)

Publication Number Publication Date
KR20080012333A true KR20080012333A (ko) 2008-02-11
KR100932879B1 KR100932879B1 (ko) 2009-12-21

Family

ID=36808730

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077028121A KR100932879B1 (ko) 2005-05-02 2006-05-02 매크로블록 레벨 레이트 제어

Country Status (6)

Country Link
US (1) US7848409B2 (ko)
EP (1) EP1878259A1 (ko)
JP (1) JP2008541569A (ko)
KR (1) KR100932879B1 (ko)
CN (1) CN101208956A (ko)
WO (1) WO2006119410A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US8711923B2 (en) 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
US9061207B2 (en) 2002-12-10 2015-06-23 Sony Computer Entertainment America Llc Temporary decoder apparatus and method
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US8366552B2 (en) 2002-12-10 2013-02-05 Ol2, Inc. System and method for multi-stream video compression
US9446305B2 (en) 2002-12-10 2016-09-20 Sony Interactive Entertainment America Llc System and method for improving the graphics performance of hosted applications
US9192859B2 (en) 2002-12-10 2015-11-24 Sony Computer Entertainment America Llc System and method for compressing video based on latency measurements and other feedback
US8964830B2 (en) 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US10201760B2 (en) 2002-12-10 2019-02-12 Sony Interactive Entertainment America Llc System and method for compressing video based on detected intraframe motion
US8526490B2 (en) 2002-12-10 2013-09-03 Ol2, Inc. System and method for video compression using feedback including data related to the successful receipt of video content
US20080024510A1 (en) * 2006-07-27 2008-01-31 Via Technologies, Inc. Texture engine, graphics processing unit and video processing method thereof
US9168457B2 (en) 2010-09-14 2015-10-27 Sony Computer Entertainment America Llc System and method for retaining system state
EP2285112A1 (en) * 2009-08-07 2011-02-16 Canon Kabushiki Kaisha Method for sending compressed data representing a digital image and corresponding device
US20110310961A1 (en) * 2010-06-17 2011-12-22 Microsoft Corporation Video rate control based on transform-coefficients histogram
CN102231825B (zh) * 2010-06-30 2013-04-24 无锡中星微电子有限公司 一种码率控制方法及装置
JP5748463B2 (ja) * 2010-12-02 2015-07-15 キヤノン株式会社 符号化装置およびプログラム
CN104012090B (zh) * 2011-12-23 2018-01-26 英特尔公司 内容自适应的高精度宏块速率控制
US9438918B2 (en) * 2012-04-23 2016-09-06 Intel Corporation Frame level rate control using motion estimated distortions
KR20190056888A (ko) * 2017-11-17 2019-05-27 삼성전자주식회사 비디오 부호화 장치 및 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134476A (en) 1990-03-30 1992-07-28 At&T Bell Laboratories Video signal encoding with bit rate control
US5144424A (en) 1991-10-15 1992-09-01 Thomson Consumer Electronics, Inc. Apparatus for video data quantization control
US5400075A (en) * 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
KR0170937B1 (ko) 1994-12-14 1999-03-20 배순훈 영상 데이타 부호화 장치
JPH1079948A (ja) * 1996-09-03 1998-03-24 Mitsubishi Electric Corp 画像符号化装置
US6690833B1 (en) 1997-07-14 2004-02-10 Sarnoff Corporation Apparatus and method for macroblock based rate control in a coding system
GB2346282B (en) 1999-01-28 2003-02-19 Snell & Wilcox Ltd Bit rate control in compression encoding

Also Published As

Publication number Publication date
US7848409B2 (en) 2010-12-07
US20060245493A1 (en) 2006-11-02
WO2006119410A1 (en) 2006-11-09
KR100932879B1 (ko) 2009-12-21
CN101208956A (zh) 2008-06-25
JP2008541569A (ja) 2008-11-20
EP1878259A1 (en) 2008-01-16

Similar Documents

Publication Publication Date Title
KR100932879B1 (ko) 매크로블록 레벨 레이트 제어
AU2015213340B2 (en) Video decoder, video encoder, video decoding method, and video encoding method
US10616594B2 (en) Picture encoding device and picture encoding method
CN111742554B (zh) 具有视频数据自适应量化的视频编码或解码方法和装置
KR101681353B1 (ko) 이미지 시퀀스를 나타내는 코딩된 데이터의 스트림을 디코딩하는 방법 및 이미지 시퀀스를 코딩하는 방법
TWI452907B (zh) 最佳化之解區塊濾波器
EP2375754A1 (en) Weighted motion compensation of video
WO2019104635A1 (en) System and method for controlling video coding at frame level
EP3243328A1 (en) Variations of rho-domain rate control
WO2019104611A1 (en) System and method for controlling video coding within image frame
KR20000053028A (ko) 움직임 보상을 이용한 예측 코딩 방법 및 장치
KR102413038B1 (ko) 예측 화상 보정 장치, 화상 부호화 장치, 화상 복호 장치, 및 프로그램
CN115428451A (zh) 视频编码方法、编码器、系统以及计算机存储介质
KR20130095322A (ko) 양자화 제어 장치 및 방법, 및 양자화 제어 프로그램
JP4532607B2 (ja) ブロック・ベースのコード化システムにおいてコード化モードを選択するための装置および方法
CN113261279B (zh) 预测值的确定方法、编码器、解码器以及存储介质
US20150358642A1 (en) Device and method for multimedia data transmission

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
LAPS Lapse due to unpaid annual fee