KR20100021597A - 비디오 코딩에서 프레임 복잡성, 버퍼 레벨 및 인트라 프레임들의 위치를 이용하는 버퍼 기반의 비율 제어 - Google Patents

비디오 코딩에서 프레임 복잡성, 버퍼 레벨 및 인트라 프레임들의 위치를 이용하는 버퍼 기반의 비율 제어 Download PDF

Info

Publication number
KR20100021597A
KR20100021597A KR1020097025857A KR20097025857A KR20100021597A KR 20100021597 A KR20100021597 A KR 20100021597A KR 1020097025857 A KR1020097025857 A KR 1020097025857A KR 20097025857 A KR20097025857 A KR 20097025857A KR 20100021597 A KR20100021597 A KR 20100021597A
Authority
KR
South Korea
Prior art keywords
frame
frames
video
target
video buffering
Prior art date
Application number
KR1020097025857A
Other languages
English (en)
Other versions
KR101518358B1 (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 KR20100021597A publication Critical patent/KR20100021597A/ko
Application granted granted Critical
Publication of KR101518358B1 publication Critical patent/KR101518358B1/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/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/172Methods 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 picture, frame or field
    • 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/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/142Detection of scene cut or scene change
    • 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/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at 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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/87Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving scene cut or scene change detection in combination with video compression

Landscapes

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

Abstract

인트라 프레임들에 의해 분리되는 일련의 인터 프레임을 포함하는 프레임들의 시퀀스의 비디오 코딩에서 비트율을 제어하는 장치 및 방법에 있어서, 상기 코딩된 프레임들은 상기 코딩된 프레임들의 전송 이전에 비디오 버퍼링 장치에서 확인되고(validated), 상기 방법은, 프레임들의 시퀀스에서 프레임 복잡성을 측정하는 단계, 각각의 인터 프레임에 대하여, 상기 인터 프레임과 다음 인트라 프레임 사이의 간격과 관련하여 상기 비디오 버퍼링 장치의 타겟 버퍼 레벨을 연산하는(calculating) 단계, 각각의 인터 프레임에 대하여, 상기 인터 프레임과 상기 다음 인트라 프레임 사이의 간격과 관련하여 타겟 프레임 크기, 상기 측정된 프레임 복잡성, 상기 비디오 버퍼링 장치의 현재 버퍼 레벨 및 상기 비디오 버퍼링 장치의 상기 연산된 타겟 버퍼 레벨을 연산하는 단계 및 프레임들의 상기 시퀀스의 비디오 코딩에서 비트율을 제어하기 위하여 상기 연산된 타겟 프레임 크기를 이용하는 단계를 포함한다.
비디오 코딩, 프레임, 버퍼, 비트율

Description

비디오 코딩에서 프레임 복잡성, 버퍼 레벨 및 인트라 프레임들의 위치를 이용하는 버퍼 기반의 비율 제어{A BUFFER-BASED RATE CONTROL EXPLOITING FRAME COMPLEXITY, BUFFER LEVEL AND POSITION OF INTRA FRAMES IN VIDEO CODING}
본 발명은 일반적으로 비디오 코딩에서의 비율 제어에 관한 것이다. 보다 구체적으로, 본 발명은 비디오 코딩에서 프레임 복잡성, 버퍼 레벨 및 인트라 프레임들의 위치를 이용하는 버퍼 기반의 비율 제어에 관한 것이나, 이에 한정되는 것은 아니다.
지난 수년 동안 디지털 및 온라인 비디오와 그들의 어플리케이션이 인기를 누렸다. 빠른 통신 기술과 멀티미디어 어플리케이션의 출현과 함께, MPEG-2(Moving Picture Experts Group-2; 동화상 전문가 그룹-2) 포맷을 이용하는 DVDs(Digital Video Disc; 디지털 비디오 디스크), MPEG-1(Moving Picture Experts Group-1; 동화상 전문가 그룹-1) 포맷을 이용하는 VCDs (Video Compact Disc; 비디오 컴팩트 디스크), 새로운 위성 방송 시스템 및 지상 방송 시스템 등과 같은 여러 영역 및 시스템에서 디지털 비디오 코덱이 이용된다.
보다 구체적으로, 이러한 비디오 어플리케이션의 인기는 비디오 데이터를 압축하고 압축을 푸는 비디오 코덱의 흥미로운 발전으로 이어졌다. 비디오 데이터 압축에 있어서, 비디오 질과 압축률, 즉 전송되는 필수적인 데이터 양, 다시 말해서 비디오를 표현하는데 필요한 비트율(bitrate, 비트 전송률)간에 밸런스가 유지된다.
또한, 인코딩과 디코딩 알고리즘의 복잡성, 데이터 손실과 에러에 대한 강인성(robustness), 압축 알고리즘 디자인 기술의 상태, 화상 회의 어플리케이션의 종단 간(end-to-end) 지연 등도 고려된다.
다수의 비디오 코딩 표준이 존재하고, 각각의 표준은 특정 타입의 어플리케이션을 위해 특별히 디자인된다. 예를 들어, ITU(International Telecommunications Union; 국제통신연합)에 의해 발표된 H.263 표준은 20-30 kbps(kilobits per second)의 범위와 같은 낮은 비트율을 위한 비디오 코딩 및 압축 표준이다. 보다 구체적으로, 이러한 표준은 화상 회의 및 화상 통화 어플리케이션에서의 비디오 코딩을 지원한다.
H.263 표준은 인코딩된 데이터 스트림의 포맷과 컨텐트를 특정한다. 따라서, 인코더와 디코더 자체에 대한 디자인이나 구조를 특별히 제공함이 없이, H.263 표준은 상기 인코더와 디코더가 이루어지기 위한 요건을 설정한다.
비디오 압축에 있어서, 각 화상은 통상적으로 프레임, 즉 인트라 프레임(intra frame)과 인터 프레임(inter frame)으로 불리우는 두 종류의 화상에 의해 표현된다. 또한, 상기 인터 프레임은 두 카테고리, 즉 P-프레임(Predictive frame; 예측 프레임)과 B-프레임(Bi-predictive or Bi-directional frame; 양방향 예측이나 양방향 프레임)으로 구분된다. 인트라 프레임은 어떤 화상의 독립적으로 코딩된 완전한 화상을 표현한다. 따라서, 그 완전한 화상의 컨텐트가 인코딩되어야 하기 때문에 상기 인트라 프레임은 대역폭 소모(bandwidth consuming)이다. 압축해서 대역폭을 보존하기 위하여, 완전한 화상(또는 인트라 프레임) 간의 차이만이 인코딩된 후에 전송된다. 이러한 차이는 P-프레임과 B-프레임에 의해 표현된다. 예를 들어, 두 연속적인 화상 간의 배경은 보통 변하지 않으므로, 그러한 배경은 다시 인코딩될 필요가 없다. B-프레임은 양방향성이고, 이에 따라 양방향 예측, 즉 이전 화상과 다음 화상으로부터의 예측을 수행한다는 점에서 P-프레임과 구별된다.
또한, 비디오를 압축할 때, 화상은 처리 목적을 위해 매크로블록(macro blocks: MB)으로 분할된다. 실제로, 처리는 매크로블록 마다 수행된다. 각각의 매크로블록은 일반적으로 16ⅹ16 픽셀 블록을 표현한다.
비디오 인코더는 일반적으로 동작 추정 모듈(motion estimation module), 동작 보상 모듈(motion compensation module), DCT(Discrete Cosine Transform; 이산 코사인 변환) 모듈 및 양자화 모듈을 포함한다.
동작 추정 모듈은 이전 프레임의 어떤 영역이 현재 프레임으로 이동했는지를 예측하여 그러한 영역이 재인코딩될 필요가 없도록 한다.
동작 보상 모듈은 이전 프레임에서 현재 프레임으로의 영역의 움직임을 보상한다.
DCT는 일반적으로 픽셀 블록을 "공간 주파수 계수"로 변환하는데 이용된다. DCT는 매크로블록과 같은 2차원 픽셀 블록에 작용한다. DCT는 화상을 컴팩트화하는데 효율적이기 때문에, 원래의 화상을 재현하는 데에는 일반적으로 약간의 DCT 계수로 충분하다.
DCT 계수를 양자화하기 위하여 양자화 모듈이 제공된다. 예를 들어, 양자화 모듈은 0에 가까운 DCT 계수들을 0으로 설정하고 나머지 0이 아닌 DCT 계수들을 양자화한다.
비디오 코딩에서의 제한 요인들 중 하나는 통신 채널의 용량에서 비롯된다. 실제로, 통신 채널들이 초당 전송할 수 있는 비트 수에 의해 통신 채널들이 제한된다. 여러 채널에서, ISDN(Integrated Services Digital Network; 종합 정보 통신망), POTS(Plain Old Telephone Service; 기존 전화 서비스), 무선 채널 등에서와 같이, 비트율은 일정하다.
하지만, 비디오 압축에 이용되는 알고리즘의 효율성 및 이러한 비디오들의 동작 복잡성에 따라, 인코딩 및 인코딩된 비디오의 전송에 필요한 비트 버짓(bit budget)과 비트율은 변화하거나, 특히 증가할 수 있다. 그러므로 다양한 복잡성을 갖는 비디오를 인코딩하는데 필요한 비트율을 인코딩된 비디오를 전송하기 위해 이용되는 통신 채널의 비트율로 조정하기 위해 비율 제어(rate control)가 요구된다.
H.263표준에서 이용되는 현재의 비율 제어 알고리즘을 TMN8(Test Model Near-Term Version 8)이라 한다. 일반적으로, 이러한 비율 제어 알고리즘은 평균 비트율만을 만족시키는 것을 보증한다. 이러한 알고리즘은 평균 타겟 비트율 및 최대 비트율 모두를 제어할 수 없다.
1999년에 Jordi Ribas-Corbera가 작성한, "Rate Control in DCT Video Coding for Low-Delay Communications"라는 제목이며, 이하의 설명에서 참조 1로 나타낸 논문은, 타겟 프레임 크기와 관련된 타겟 평균 비트율이 각 프레임에 의해 만족되는 것을 보증하기 위하여 비율 제어인 TMN8에 의해 이용되는 알고리즘에 대해 개시하고 있다. 보다 구체적으로, TMN8 비율 제어 알고리즘은 타겟 프레임 크기를 만족시키기 위하여 각 인트라 프레임에 대한 몇몇 적절한QP(Quantization Parameter; 양자화 파라미터) 값을 결정하고 그들을 업데이트하기 위하여, 몇몇 이미지 통계치들(statics)을 연산(compute)한다. 불행하게도, 이러한 제어는 매우 대략적(approximate)이며, 결과적인 프레임 크기는 종종 타겟 프레임 크기보다 상당히 크거나 작을 수 있다.
또한, TMN8 비율 제어 알고리즘에서, 주어진 타겟 비트율이 초과되었을 때, 오버플로우를 보상하기 위하여 인코더는 특정한 수의 프레임들을 건너뛸 것이다. 물론, 그렇게 함으로써, 통신 및 비디오의 품질은 달라진다.
최대 비트율 기반 비율 제어와 같은 다른 비율 제어 방법은 TMN8 비율 제어에 비해 개선점을 보인다. 그 방법은 이하의 설명에서 참조 2로 나타내는, Stephane Coulombe에 의한 2007년 PCT/CA2007/002242의 "An improved video rate control for video conding standards"에 설명되어 있다. 이 최대 비트율 기반 비율 제어 방법은 평균 비트율 및 최대 비트율 모두를 만족하도록 구성되어 있다. 하지만, 이 최대 비트율 기반 비율 제어 방법은 최대 비트율의 특정한 정의로부터 유래된다. 보다 상세하게는, 최대 비트율은 1초 내에 전송될 수 있는 최대 비트량으 로써 정의된다. 비디오 스트리밍과 같은 어플리케이션은 이러한 정의를 따르지 않는다.
비디오 스트리밍과 같은 어플리케이션에서, 기본적인 버퍼 기반 비율 제어 방법이 이용될 수 있으며, 이러한 방법은 TMN8 비율 제어에 비해 개선점을 보인다. 그러한 버퍼 기반 비율 제어 방법은 참조 2에 나타나 있다. 기본적인 버퍼 기반 비율 제어기는 많은 수의 비트들을 인트라 프레임에 할당하며, 그리고 나서 특정 수의 프레임들에 걸쳐서 비디오 버퍼링 검증기(video buffering verifier)의 크기를 최적화하기 위해, 뒤따르는 인터 프레임들에 대한 인트라 프레임의 인코딩으로부터 사용되지 않은 비트들을 분산시킨다. 그러나, 기본적인 버퍼 기반 비율 제어기가 여러 비디오 시퀀스들에 대해 잘 동작하는 것으로 나타나기는 했으나, 그것은 영화 및 비디오 트레일러들에서 발견되는 것과 같은, 많은 동작 및 장면 변화를 포함하는 시퀀스들에서 다소의 문제점을 보였다. 그러한 시퀀스들에서, 인트라 프레임에 또는 그 주변에 많은 양의 비트들을 할당하고, 나머지 프레임들에는 거의 일정한 양의 비트들을 할당하는 것을 좋은 전략이 아니었다. 비디오 버퍼 검증기(Video Buffer Verifier: VBV)는 적합한(conforming) 비디오 비트 스트림이 공급될 경우 오버플로우 또는 언더플로우가 발생하지 않는 가상의 디코더 버퍼 모델이다. 본 발명에서 비디오 버퍼 검증기는 MPEG-4 코딩(MPEG-4 비디오 코딩 표준의 Annex D 참조), H.263의 가상 레퍼런스 디코더(Hypothetical Reference Decoder)(H.263 표준의 Annex B 참조) 또는 그 밖의 다른 가상 디코더의 버퍼 모델의 경우의 VBV를 나타낼 것이다.
2006년 IEEE Transactions on Circuits and Systems for Video Technology Vol. 16의 56-71페이지에 실린 "A sequence-based rate control framework for consistent quality real-time video"라는 제목의 Bo Xie와 Wenjun Zeng의 눈문에서, Bo Xie와 Wenjun Zeng은 프레임 복잡성 메트릭(metric), 버퍼 기반 비디오 비율 제어기의 평균 절대 차이(mean absolute difference: MAD)를 이용한다. 그들의 새로운 비율 제어 프레임워크는 비디오 시퀀스들에 걸쳐서 보다 일관된 품질을 이룬다. 그들의 방법은 비디오 소스 내의 비정지적(non-stationary) 특성을 추적하기 위한 (GOP(Group of Pictures) 기반 비트 할당 모델에 대립되는) 시퀀스 기반 비트 할당 모델이다. 그들은 제안된 그들의 비율 제어 솔루션이 MPEG-4 Annex L에 기재된 프레임 레벨 비율 제어보다 더 적은 품질 플리커(flicker)와 동작 저키니스(jerkiness)를 갖는 일시적으로 보다 스무스(smooth)한 비디오를 만들어 낼 뿐만 아니라, 훨씬 나은 PSNR(Peak Signal-to-Noise Ratio) 성능(장면들에 걸친 평균 값 및 일관성 모두의 관점에서) 또한 만들어 낸다는 것을 보였다. Xie와 Zeng은 제안된 그들의 비율 제어 솔루션이 다양한 시퀀스들, 비트 레이트 그리고 프레임 레이트에 대하여 강인하다는 것과, 상업적 제품들에서 이용되어 왔다는 것을 주장한다. 하지만, 그들은 버퍼 오버플로우 및 언더플로우에 대한 전형적인 체크를 제외하고는 그들의 방법에서의 버퍼 레벨을 고려하지 않는다. 실질적 버퍼 레벨에 기반하지 않은 동작은 드롭된(dropped) 프레임 수의 증가를 유발한다. 예를 들어, 버퍼 레벨이 높을 때, 실질적인 코딩된 프레임은 오버플로우를 생성하여 드롭된 프레임으로 이어질 보다 높은 확률을 갖는다. Xie와 Zeng은 그들의 비율 제어 방법에서, 인트 라 프레임들의 위치(그들이 통상의 간격으로 나타날 때)를 이용하지 않고, 평균 비트율뿐만 아니라 최대 비트율 또한 고려하지도 않는다. 그들은 단지 평균 비트율과 동등한 최대 비트율만을 고려한다.
그러므로, 위에서 논의된, 많은 동작 및 장면 변화를 포함하는 비디오 시퀀스들의 비율 제어와 관련된 문제점들을 극복할 필요성이 여전히 존재한다. 따라서, 비율 제어 개선이 가능한 버퍼 기반 장치 및 방법이 시도된다.
따라서 본 발명의 목적은 위에서 논의된 문제점들을 극복할 수 있는 버퍼 기반 비율 제어를 제공하는 것이다. 예를 들어, 그러한 버퍼 기반 제어는 최대 비트율 규격뿐만 아니라 평균 또한 만족시키기 위해 비디오 코딩에서 프레임 복잡성, 버퍼 레벨, 인트라 프레임들의 위치를 이용할 것이다.
보다 구체적으로, 본 발명의 첫 번째 측면에 따르면, 인트라 프레임들에 의해 분리되는 일련의 인터 프레임들을 포함하는 프레임들의 시퀀스의 비디오 코딩에서 비트율을 제어하는 방법이 제공된다. 상기 코딩된 프레임들은 상기 코딩된 프레임들의 전송 이전에 비디오 버퍼링 장치에서 확인된다(validated). 상기 방법은, 프레임들의 상기 시퀀스에서 프레임 복잡성을 측정하는 단계, 각각의 인터 프레임에 대하여, 상기 인터 프레임과 다음 인트라 프레임 사이의 상기 간격과 관련하여 상기 비디오 버퍼링 장치의 타겟 버퍼 레벨을 연산하는(calculating) 단계, 각각의 인터 프레임에 대하여, 상기 인터 프레임과 상기 다음 인트라 프레임 사이의 간격과 관련하여 타겟 프레임 크기, 상기 측정된 프레임 복잡성, 상기 비디오 버퍼링 장치의 현재 버퍼 레벨 및 상기 비디오 버퍼링 장치의 상기 연산된 타겟 버퍼 레벨을 연산하는 단계 및 프레임들의 상기 시퀀스의 비디오 코딩에서 비트율을 제어하기 위하여 상기 연산된 타겟 프레임 크기를 이용하는 단계를 포함한다.
본 발명의 두 번째 측면에 따르면, 비디오 버퍼링 검증기(verifier)의 최대 크기 한도를 초과하지 않으면서 평균 비트율을 만족시키기 위하여, 인트라 프레임들에 의해 분리되는 일련의 인터 프레임을 포함하는 프레임들의 시퀀스의 비디오 코딩에서 비트율을 제어하는 방법이 제공된다. 상기 비디오 코딩은 상기 코딩된 프레임들의 전송 이전에 상기 비디오 버퍼링 검증기에서 상기 코딩된 프레임들을 확인하는(validating) 단계를 포함한다. 상기 방법은, 프레임들의 상기 시퀀스에서 프레임 복잡성을 측정하는 단계, 각각의 인터 프레임에 대하여, 상기 인터 프레임과 다음 인트라 프레임 사이의 간격과 관련하여 상기 비디오 버퍼링 검증기의 타겟 버퍼 레벨을 연산하는 단계, 각각의 인터 프레임에 대하여, 상기 인터 프레임과 상기 다음 인트라 프레임 사이의 상기 간격과 관련하여 타겟 프레임 크기, 상기 측정된 프레임 복잡성, 상기 비디오 버퍼링 검증기의 현재 버퍼 레벨 및 상기 비디오 버퍼링 검증기의 상기 연산된 타겟 버퍼 레벨을 연산하는 단계 및 프레임들의 상기 시퀀스의 비디오 코딩에서 상기 비디오 버퍼링 검증기의 상기 최대 크기 한도를 초과하지 않으면서 상기 평균 비트율을 만족시키기 위하여 상기 연산된 타겟 프레임 크기를 이용하는 단계를 포함한다.
본 발명의 세 번째 측면에 따르면, 인트라 프레임들에 의해 분리되는 일련의 인터 프레임들을 포함하는 프레임들의 시퀀스의 비디오 코딩에서 비트율을 제어하는 장치가 제공된다. 상기 코딩된 프레임들은 상기 코딩된 프레임들의 전송 이전에 비디오 버퍼링 장치에서 확인된다(validated). 상기 장치는, 프레임들의 상기 시퀀스에서 프레임 복잡성을 측정하는 검출기, 상기 인터 프레임과 다음 인트라 프레임 사이의 간격과 관련하여, 각각의 인터 프레임에 대한, 상기 비디오 버퍼링 장치의 타겟 버퍼 레벨을 연산하는 제1연산기(calculator), 상기 인터 프레임과 상기 다음 인트라 프레임 사이의 상기 간격과 관련하여, 각각의 인터 프레임에 대한, 타겟 프레임 크기, 상기 측정된 프레임 복잡성, 상기 비디오 버퍼링 장치의 현재 버퍼 레벨 및 상기 비디오 버퍼링 장치의 상기 연산된 타겟 버퍼 레벨을 연산하는 제2연산기 및 상기 연산된 타겟 프레임 크기에 대응하는 프레임들의 상기 시퀀스의 비디오 코딩에서 상기 비트율의 제어를 포함한다.
본 발명의 네 번째 측면에 따르면, 비디오 버퍼링 검증기의 최대 크기를 초과하지 않으면서 평균 비트율을 만족시키기 위하여, 인트라 프레임들에 의해 분리되는 일련의 인터 프레임들을 포함하는 프레임들의 시퀀스의 비디오 코딩에서 비트율을 제어하는 장치가 제공된다. 상기 비디오 코딩은 상기 코딩된 프레임들의 전송 이전에 상기 비디오 버퍼링 검증기에서 상기 코딩된 프레임들을 확인하는(validating) 단계를 포함한다. 상기 장치는, 프레임들의 상기 시퀀스에서 프레임 복잡성을 측정하는 검출기, 상기 인터 프레임과 다음 인트라 프레임 사이의 간격과 관련하여, 각각의 인터 프레임에 대한, 상기 비디오 버퍼링 검증기의 타겟 버퍼 레벨을 연산하는 제1연산기, 상기 인터 프레임과 상기 다음 인트라 프레임 간의 상기 간격과 관련하여, 각각의 인터 프레임에 대한, 타겟 프레임 크기, 상기 연산된 프레임 복잡성, 상기 비디오 버퍼링 검증기의 현재 버퍼 레벨 및 상기 비디오 버퍼링 검증기의 상기 연산된 타겟 버퍼 레벨을 연산하는 제2연산기 및 프레임들의 상기 시퀀스의 비디오 코딩에서 상기 비디오 버퍼링 검증기의 상기 최대 크기 한도를 초과하지 않으면서 상기 평균 비트율을 만족시키기 위한, 상기 연산된 타겟 프레임 크기에 대응하는 프레임들의 상기 시퀀스의 비디오 코딩에서 상기 비트율에 대한 제어를 포함한다.
전술했던, 그리고 다른 본 발명의 목적들, 장점들 및 특성들은 단지 수반되는 도면들에 대한 참조를 통한 예시 방법에 의해 주어지는 다음의 제한적이지 않은 예시적인 실시예들의 설명에 의해 보다 분명해질 것이다.
도 1은 비디오 통신 시스템의 예시의 개략적인 다이어그램이다.
도 2는 도 1의 통신 시스템에서 비디오 코딩을 위한 인코더의 예시의 개략적인 블록 다이어그램이다.
도 3은 본 발명의 제한적이지 않은 예시적인 실시예에 따른 비디오 코딩에서 비율 제어를 위한 장치의 개략적인 블록 다이어그램이다.
도 4는 본 발명의 제한적이지 않은 예시적인 실시예에 따른 비디오 코딩에서 비율 제어를 위한 방법을 나타내는 플로우 차트이다.
도 5는 도 4의 비율 제어 방법에서 인트라 프레임 타겟 크기를 연산하는 방 법을 나타내는 플로우 차트이다.
도 6은 도 4의 비율 제어 방법에서 인터 프레임 타겟 크기를 연산하는 방법을 나타내는 플로우 차트이다.
일반적으로, 본 발명의 제한적이지 않은 예시적인 실시예에 따른 비디오 코딩에서 비율(비트율) 제어에 대한 장치 및 방법은 허용된 최대 비트율(또는 비디오 버퍼 검증기의 최대 크기 한도)를 초과하지 않으면서 평균 비트율을 만족시키는 것을 보증한다. 보다 구체적으로, 그 비율(비트율) 제어는 버퍼 기반이며, 인터 프레임과 다음 인트라 프레임 간의 간격, 측정된 프레임 복잡성, 비디오 버퍼링 검증기의 현재 버퍼 레벨 및 비디오 버퍼링 검증기의 연산된 타겟 버퍼 레벨을 고려한다. 이러한 방법으로, 원격 감시(tele-surveillance), 빠른 액션 영화와 같은 다양한 비디오 어플리케이션에서 비주얼 품질이 향상된다.
본 발명의 제한적이지 않은 예시적인 실시예에 따른 비율 제어의 이식성(portability)은 개선되며, 한정적이지 않은 예시들로서 H.263, MPEG-4 및 H.264와 같은 코딩 기법들을 이용하는 다수의 비디오 코더들에 대한 그것의 통합을 용이하게 한다는 사실이 주지되어야 한다.
본 발명의 제한적이지 않은 예시적인 실시예에 따른 비디오 코딩에서 비율 제어를 위한 장치 및 방법은 아래와 같은 면들을 고려함으로써 일반적으로 비디오 품질 및 비디오 코딩 성능을 개선시킨다.
1) Xie와 Zeng에 의해 제안된 바와 같이, 프레임 복잡성은 타겟 프레임 크기를 연산(computing)할 때 이용된다. 예를 들어, 인코딩할 이미지와 이전 이미지 사이의 차이(또는 후자가 포함하는 디테일들(details))가 클수록, 할당하는 비트들의 관점에서 그 이미지는 인코딩하기가 더욱 복잡해진다. 그러한 경우, 일정한 품질을 얻기 위해 그 이미지의 인코딩에 많은 양의 비트들이 할당되어야 한다. 프레임 복잡성을 평가하기 위해, 평균 절대 차이(MAD) 또는 다른 유사한 메트릭(metric)들과 같은 프레임 복잡성 메트릭들이 이용될 수 있다.
2) 예를 들면 프레임 복잡성 메트릭 연산을 통해, 비디오 시퀀스에서 장면 컷들(scene cuts)이 검출될 수 있다. 비디오 시퀀스에 나타난 상이한 장면 컷들을 인식함으로써, 버퍼 기반 비율 제어 장치 및 방법은 비디오 시퀀스의 보다 나은 품질을 얻기 위하여 인트라 프레임들을 보다 적절하게 선택할 수 있다. 이러한 경우, 동작 추정은 프레임 모드 결정 이전으로 옮겨진다.
3) 각각의 인트라 프레임은 이전 프레임들과 동일한 품질로 인코딩된다. 그러한 목적을 위하여, 인트라 프레임에 대한 타겟 프레임 크기는 고정적인 것으로 고려되지 않으며, 가변적일 수 있다. 또한, 2개의 인트라 프레임 인코딩 모드들이 고려될 수 있다. 첫 번째 모드는 프레임의 전체 지속시간 동안 고정되는 양자화 파라미터들(quantization parameters: QPs)을 이용하며, 이리하여 보다 균일한 품질과 보다 덜 정확한 프레임 크기를 이룬다. 두 번째 인코딩 모드는 프레임의 각각의 매크로블록(MB) 라인마다 업데이트되는 QP들을 이용한다.
4) 본 발명의 제한적이지 않은 예시적인 실시예에 따른 버퍼 기반 비율 제어 장치 및 방법은, 평균 비트율을 유지하기 위하여 여분의 또는 사용되지 않은 비트들을 이용하는 대신 타겟 프레임 크기를 적당하게 스케일링 함으로써 비디오 버퍼링 검증기가 언더플로우 또는 오버플로우를 발생시키지 않도록 하는 것을 보증한다.
5) 인터 프레임과 다음 인트라 프레임 사이의 간격, 측정된 프레임 복잡성, 비디오 버퍼링 검증기의 현재 버퍼 레벨 및 비디오 버퍼링 검증기의 연산된 타겟 버퍼 레벨과 같은 상이한 파라미터들에 의존하는 타겟 프레임 크기가 연산된다(computed). 따라서, 타겟 프레임 크기는 동적인 값이다. 더욱이 연산된 타겟 프레임 크기는 타겟 프레임 크기에 대한 더 나은 제어를 위한 인자(factor)에 의해 스케일될 수도 있다.
I. 비디오 통신 시스템
먼저, 비디오 코딩이 일어나는 비디오 통신 시스템의 예시가 설명될 것이다.
이제 도 1을 보면, 비디오 통신 시스템(10)은 비디오를 캡쳐하기 위하여 비디오 카메라 또는 웹 카메라와 같은 비디오 소스(12)를 포함한다. 이러한 비디오들은 그리고 나서 비디오 인코더(14)에 공급된다. 비디오 인코더(14)는 네트워크(16)에 연결된다. 네트워크(16)는 인코딩된 비디오들을 인코더(14)로부터 디코더(18)로 전송하기 위한 통신 링크 또는 채널을 구축한다. 마지막으로, 디코더(18)는 비디오 플레이어(20)에 연결된다. 비디오 플레이어(20)는 컴퓨터, 텔레비전 세트, 또는 비 디오를 디스플레이하기 위한 어떠한 장치도 될 수 있다.
예를 들어, 제1파티와 제2파티 간의 통신 세션 동안, 제1파티의 비디오 소스(12)에 의해 캡쳐된 비디오들은 압축되고 코딩되기 위하여 인코더(14)에 의해 수신된다. 인코더(14)가 그 비디오 데이터의 인코딩을 완료하면, 인코딩된 비디오는 네트워크(16)에 의해 구축된 통신 링크 또는 채널을 통해 제2파티에 전송된다. 제2파티의 종단에서, 디코더(18)는 인코딩된 비디오를 수신하고 그것을 디코딩하기 시작한다. 인코딩된 비디오가 디코딩되면, 디코더(18)는 디코딩된 비디오 데이터를 비디오 플레이어(20)에 송신하고, 그 후 비디오 플레이어(20)는 제1파티로부터 인코딩된 형태로 수신된 비디오의 플레이를 시작할 수 있다.
이제 도 2에 대한 참조와 함께 인코더(14)가 보다 상세하게 설명될 것이다.
인코더(14)는 비디오 코딩과 관련된 하나 또는 다수의 프로세스(321 내지 327)를 수행하는데, 이 프로세스들은 종래의 것이거나 아닐 수 있고, 또는 본 명세서 내에서 간단하게 설명되거나 최초로 공개되는 것일 수 있으며, 이하에서 완전히 설명될 것이다.
위의 프로세스 321 내지 327중 적어도 하나의 파트를 수행하기 위해서, 인코더(14)는 동작 추정 모듈(motion estimation module)(32), 동작 보상 모듈(motion compensation module)(34), 변환 모듈(36), H.263 및 MPEG-4 인코딩에 대해서는 일반적으로 흔한 DCT, 양자화 모듈(38), 비율 제어 장치(42), 계수 필터링 모듈(37) 및 비디오 버퍼링 검증기(40)을 포함한다. 비율 제어 장치(42)는 최대 비트율 규격 뿐만 아니라 평균 또한 만족시키기 위하여 코딩 프로세스의 여러 면들을 제어한다. 인코더(14)는 예를 들면 밴트릭스 사(Vantrix Corporation)의 SPOT xde®서버와 같은 상이한 플랫폼들을 이용하여 구현될 수 있다. 다른 적절한 플랫폼들도 물론 고려될 수 있다. 비디오 소스(12)는, 비한정적인 예시들로서, MPEG-4, H.263 및 H.264등과 같은 다양한 표준들을 이용하는 비디오 파일 또는 비디오 카메라를 포함하는 임의의 소스일 수 있다.
321 내지 327의 요소들을 포함하는 인코더(14)의 동작 추정 모듈(32)은 현재 프레임으로 이동한 이전 프레임의 영역 또는 영역들을 예측하는데, 이는 이러한 영역 또는 영역들이 재인코딩될 필요가 없게 하기 위함이다.
그리고 나서, 동작 보상 모듈(34)은 기준 프레임(일반적으로 이전 프레임)에서부터 현재 프레임까지 동작 추정 모듈(32)에 의해 검출된 위의 예측된 영역(들)의 움직임을 보상한다. 이것은 오직 이전 프레임과 현재 프레임 간의 차이들만을 인코딩하고 전송하여, 결국 인터 프레임을 생성함으로써 인코더(14)로 하여금 대역폭을 압축하고 절약하는 것을 가능하게 할 것이다.
변환 모듈(36)은 연속적인 프레임들의 픽셀 블록들에 대한 변환을 수행한다. 그 변환은 비디오 코딩 표준 기술에 의존한다. H.263 및 MPEG-4의 경우, 그것은 연속적인 프레임들의 픽셀 블록들의 DCT 변환이다. H.264의 경우, 그 변환은 DCT 기반 변환 또는 하다마르 변환(Hadamar transform)이다. 그 변환은 전체 프레임(인트라 프레임들)에 대해 또는 프레임들(인터 프레임들) 사이의 차이에 대해 이루어질 수 있다. DCT는 일반적으로 픽셀 블록들을 "공간 주파수 계수들"(DCT 계수들)로 변환하는 데 이용된다. DCT는 매크로블록(MB)와 같은 2차원 픽셀 블록에 작용한다. DCT는 화상을 컴팩트화하는데 효율적이기 때문에, 원래의 화상을 재현하는 데에는 일반적으로 약간의 DCT 계수로 충분하다.
변환된 계수들은 그리고 나서 필터 계수 모듈(37)에 공급되고, 그 변환된 계수들은 필터 계수 모듈(37)에서 필터링된다. 예를 들어, 필터 계수 모듈(37)은, 예를 들면 고 주파수 정보에 대응하는 몇몇 계수들을 0으로 설정한다. 필터 계수 모듈(37)은 작은 타겟 프레임 크기들의 경우 비율 제어 장치(42)의 성능을 개선시킨다.
필터링된 변환된 계수들은 그리고 나서 양자화 모듈(38)에 공급되고, 양자화 모듈(38)에서 그 계수들은 양자화된다. 예를 들어, 양자화 모듈(38)은 0에 가까운 필터링된DCT 계수들을 0으로 설정하고 나머지 0이 아닌 필터링된 DCT 계수들을 양자화한다.
재배치 모듈(39)은 그리고 나서 긴 제로(0) 시퀀스들을 생성하기 위하여 양자화된 계수들을 특정한 순서로 배치한다.
엔트로피 코딩 모듈(33)은 그리고 나서 예를 들면 허프만(Huffman) 코딩 또는 임의의 다른 적절한 코딩 기법을 이용하여 재배치된 양자화된 DCT 계수들을 인코딩한다. 이러한 방법으로, 엔트로피 코딩 모듈(33)은 코딩된 인트라 또는 인터 프레임들을 생성하고 출력한다.
비디오 버퍼링 검증기(VBV)(40)는 그리고 나서 디코더(18)에 전송된 프레임 들이 이 디코더의 수신 버퍼의 오버플로우를 일으키지 않을 것인지를 확인하는데 이용된다. 만약 어떤 프레임이 오버플로우를 일으키지 않을 것으로 확인되면, 비율 제어 장치(42)는 스위치(35)를 통해 그 프레임의 전송을 허용할 것이다. 하지만, 만약 어떤 프레임이 오버플로우를 일으킬 것으로 확인되면, 비율 제어 장치(42)는 그 프레임의 전송을 허용하지 않을 것이다.
위의 동작 추정 모듈(32), 동작 보상 모듈(34), 변환 모듈(36), 양자화 모듈(38), 재배치 모듈(39), 엔트로피 코딩 모듈(33) 및 비디오 버퍼링 검증기(40)는 당업자들에게 알려져 있으므로, 본 명세서에서는 더 이상 설명되지 않을 것이다.
또한, 비율 제어 장치(42)는 비디오 코딩에서 비트율을 제어한다. 이 비율 제어 장치(42)는 허용된 최대 비트율을 초과하지 않으면서 가능한 만큼 평균 비트율이 만족되는 것을 보증한다. 그것은 원격 감시, 빠른 액션 영화 등과 같은 상이한 어플리케이션에서 향상된 비주얼 품질을 제공한다.
본 발명에 따른 비율 제어 장치(42) 및 그에 대응하는 방법(100)의 제한적이지 않은 예시적인 실시예를 설명하기 전에, 참조 2에 설명된 것과 같은 이미 존재하는 기본적인 버퍼 기반 비율 제어기가 비율 제어 장치(42) 및 방법(100)에 대한 보다 나은 이해를 목적으로 설명될 것이며, 비율 제어 장치(42) 및 방법(100)은 그러한 기본적인 버퍼 기반 비율 제어기에 기초한다.
II. 기본적인 버퍼 기반 비율 제어기
기본적인 버퍼 기반 비율 제어 장치는 특히 비디오 스트리밍 어플리케이션에 서 유용하다. 사용되지 않은 비트들을 뒤따르는 프레임들에 걸쳐서 분산시키고 특정한 수의 프레임들에 걸쳐서 비디오 버퍼링 검증기(40)의 레벨을 최대화함으로써, 그것은 인트라 및 인터 프레임들을 인코딩하기 위한 타겟 프레임 크기들을 연산한다(calculate).
비디오 스트리밍에서, 비디오 패킷들은 용량 제한(capacity-limited) 채널을 통해 송신된다. 따라서 비트율은 제한된다. 만약 도 1의 플레이어(20)가 최초로 수신한 인트라 프레임의 플레이를 시작하기 전에 1초의 딜레이가 용인될 수 있는 것으로 고려된다면, 인트라 프레임 타겟 크기는 R MAX 보다 낮아야 하며, R MAX 는 이하에서 설명될 최대 비트율이다.
위의 상황에서, 디코더(18)는 플레이어(20)가 최초로 수신된 인트라 프레임의 플레이를 시작하기 전에 1초를 기다린다. 하지만, 이것은 이 1초의 딜레이 동안에 추가적인 프레임들이 전송될 수 있다는 것을 의미하지는 않는다. B I = R MAX (여기서, B I 은 인트라 프레임의 타겟 프레임 크기)로 가정해 보자. 또한 최대 비트율 R MAX 를 초과하지 않는 것은 비디오 버퍼링 검증기(40)가 R MAX 를 초과하지 않는다는 조건과 동일한 것이라고 가정해 보자.
ㆍ그러면, 시간 t = 0에서, 도 2의 비디오 버퍼링 검증기(40)는 풀(full) 인데, 이는 R MAX 크기의 프레임이 막 저장(has just been stored)되었기 때문이다.
ㆍ만약 프레임 율(frame rate) F = 10 fps 이고 R MAX = 48000 bps이면, t = 0.1s 에서, 비디오 버퍼링 검증기(40)는 R MAX /F = 4800비트에 의해 비워지는데(emptied), 이는 그 비트들이 통신 링크 또는 채널을 통해 전송됐기 때문이다. 따라서, t = 0.1s의 주어진 시간에 인코딩된 프레임을 수신하기 위하여, 비디오 버퍼링 검증기(40)를 오버플로우 시키지 않으면서, 비디오 버퍼링 검증기(40)에서 4800비트들의 공간이 사용 가능해진다.
ㆍ똑같은 접근 방법이 뒤따르는 프레임들에 적용된다. 따라서, 인트라 프레임에 뒤따르는 각각의 프레임에 대해, 4800비트의 추가적인 양이 전송될 수 있다. 그러므로, 이 접근 방법에 의하면, 예를 들면 TMN8 또는 최대 비트율 제어 장치들을 이용하여 48000비트 대신에 총 48000+(10-1)(4800) = 91200 비트를 전송하는 것이 가능하다.
추가적인 사용 가능한 비트들은 인트라 프레임에 뒤따르는 프레임들의 품질을 개선시키는데, 이는 그들이 인트라 프레임에 뒤따르는 프레임들을 인코딩하기 위하여 할당되는 비트틀의 수를 증가시키기 위하여 이용될 수 있기 때문이다.
그러나, 이전에 연산된 91200 비트는 1초 동안 송신되지 않으나, 전송된 인트라 프레임을 수신하기 위한 어플리케이션들에 의해 유도된 딜레이 때문에, 이 비트들을 커버하는 시간은 1.9초가 된다는 점이 주지되어야 한다. 여기서, (91200 bits / 1.9s) = 48000 bits /s의 비트율을 제공하게 되는, 1초의 딜레이 및 1.1s에 서 1.9s의 9프레임들은 최대 비트율 R MAX 에 대응한다.
본 명세서에 걸쳐서 고려되어야 할 것은, 비디오 버퍼링 검증기(40)의 최대 크기가 최대 비트율 R MAX 에 대응한다는 점이다. 이제, 다음 인트라 프레임이 나타나고 있는(coming) 경우가 고려될 것이다. 다음 인트라 프레임이 나타나고 있기 때문에, 비디오 버퍼링 검증기(40)는 그것의 스케쥴링된 시간에 다음에 나타날 인트라 프레임을 저장하기 위한 충분한 공간을 갖기 위하여 점차 비워져야 한다.
인트라 프레임에 대한 타겟 크기가 B I 이고 그에 따라 B I 크기의 프레임을 수용할 수 있는 비어있지 않은 버퍼가 충분히 있다고 하더라도, 실용적인 목적들을 위하여, 그들의 품질을 개선시키기 위해 인트라 프레임에 뒤따르는 프레임들에 더 많은 사용 가능한 비트들을 할당할 수 있도록 비디오 버퍼링 검증기(40)를 비우는 것이 바람직하다. 따라서, 실용적인 어플리케이션에서, B I < R MAX 이다.
이에 따라, 인트라 프레임에 뒤따르는 프레임들에 할당되는 비트들의 수는 그 프레임들의 개선된 품질을 얻기 위하여, 비디오 버퍼링 검증기(40)를 비우는 것을 시작하기 전에 증가될 수 있다.
t = 0 을 인트라 프레임의 도착 시간이라고 하자. 그러면, N 은 인트라 프레임에 뒤따르는 프레임들의 수로 정의된다. (여기서, 인트라 프레임의 인코딩을 위해 사용되지 않은 비트들은 이 뒤따르는 프레임들에 걸쳐 분산된다.) 그리고 L은 인터 프레임들의 수(여기서, 비디오 버퍼링 검증기(40)의 버퍼 레벨은 이 인터 프레임들에 걸쳐서 최적화 됨.)로 정의된다. t = L에서, 비디오 버퍼링 검증기(40)는 0 = N = L동안 풀(full) 임이 주지되어야 한다.
일반적으로, 이 비율 제어에 의해 채택되는 전략은 다음과 같다.
비디오 버퍼링 검증기의 버퍼 레벨은 언제나 R MAX , 즉 최대 비트율을 초과하지 않는다. 이는 오버플로우를 초래할 인코딩된 프레임들이 드롭될(dropped) 것임을 의미한다. 버퍼 레벨을 최대화하고 비디오들의 전체적인 품질을 증가시키기 위하여, 인트라 프레임의 인코딩에서 사용되지 않은 비트들은 인터 프레임들에 뒤따르는 프레임들의 인코딩에 이용되는데, 이는 비디오들의 품질이 보통 인트라 프레임 이후 더 나쁘기 때문이다. 프레임 숫자 L 까지, R MAX /F (F는 프레임 율)의 타겟 크기로 프레임들을 인코딩함으로써 비디오 버퍼링 검증기(40)는 풀(full) 로 유지된다. 또한, 연산(computed)되었으나 이전 프레임들의 인코딩에서 사용되지 않은 비트들은 뒤따르는 프레임들에 걸쳐서 재분산되나, 타겟 프레임 크기는 특정한 값을 넘지 않아야 하며, 이 특정한 값은 제때에(in time) 그 프레임 인덱스에 그 자체로 의존하는 타겟 버퍼 레벨에 의존한다. 타겟 버퍼 레벨은 인트라 프레임 이후 첫 번째 프레임에 대하여 R MAX 이며, 다음 인트라 프레임이 나타날 때까지 점차 0으로 감소한다는 점이 주지되어야 한다.
프레임 L 이후 비디오 버퍼링 검증기(40)이 실질적으로 풀(full) 일 것이라는 조건과 함께, 인트라 프레임의 인코딩으로부터 얻어진 사용되지 않은 비트들을 뒤따르는 인터 프레임들에 걸쳐 분산시키는 여러 가지 방법이 존재한다. 그러므로, 2개의 인트라 프레임들 간의 주기 T동안, 각각의 프레임들의 타입 및 인덱스에 대 한 타겟 프레임 크기 B p (t)는 다음과 같이 주어진다.
Figure 112009076456315-PCT00001
여기서,
Figure 112009076456315-PCT00002
는 인트라 프레임의 타겟 프레임 크기,
Figure 112009076456315-PCT00003
는 임의의 인터 프레임 타겟 크기. (다만, 비디오 버퍼링 검증기(40)가 오버플로우 되지 않을 것, 즉 버퍼 레벨= R MAX 이고 t = L에서 풀(full)에 가깝다는 조건을 수반함.)
예를 들어, 사용되지 않은 비트들은 인트라 프레임에 뒤따르는 N개의 인터 프레임들의 타겟 프레임 크기 B p (t) 에 걸쳐 동등하게 분산될 수 있다. 이 경우, 시간 t에서 각 인터 프레임에 대한 타겟 프레임 크기는 다음과 같이 주어진다.
Figure 112009076456315-PCT00004
L = N 일 때, 항
Figure 112009076456315-PCT00005
는 존재하지 않는다는 것이 주지되어야 한다. 또한, 비디오 버퍼링 검증기(40)가 2개의 인트라 프레임들 사이에서 스스로를 비우기 위한 충분한 시간을 갖기 위해 T > F+L 일 필요가 있다.
각 프레임에 대하여, 비디오 버퍼링 검증기(40)에 다음 인트라 프레임을 저장하기 위한 충분한 공간이 존재하는 것을 보증할 수 있도록 최대 버퍼 레벨이 연산(computed)되어야 한다. 인트라 프레임에 대하여, 최대 버퍼 레벨은 R MAX 를 초과할 수 없다. 따라서, 다음 인트라 프레임의 시작에서 최대 버퍼 레벨이 R MAX - B I 를 초과하지 않도록 하기 위해, T-1에서의 프레임에 대하여 최대 버퍼 레벨은 R MAX - B I + R MAX /F 를 초과할 수 없다.
그러나, 실용적인 이유로 인해, 이전에 언급한 바와 같이 최대 버퍼 레벨은 R MAX - B I + R MAX /F 대신 R MAX /F 가 되어야 한다. 이는 인코딩된 인트라 프레임의 실제 크기를 정확하게 예측하는 것이 실제로는 어렵기 때문이다. 현재 존재하는 알고리즘들은 충분히 강인하지 않다. 따라서, 더 많은 비트들이 사용 가능하고 인트라 프레임에 뒤따르는 프레임들의 전송을 위해 사용될 수 있도록 하기 위해 프레임 T-1에서 비디오 버퍼링 검증기(40)가 비워지도록 하는 것이 보다 안전하다.
그러므로, 비디오 버퍼링 검증기(identifier)의 최대 버퍼 레벨은 다음과 같이 연산된다.
Figure 112009076456315-PCT00006
최대 버퍼 레벨뿐만 아니라, 버퍼 레벨도 각 인터 프레임에 대하여 업데이트되고 연산되어야 하는데 이는 비디오 버퍼링 검증기(40)가 서로 다른 크기의 프레임들을 수신하기 때문이다. 전송이 시작될 때, 비디오 버퍼링 검증기(40)는 비어있다. 그 후, 점진적으로, B I B p (t) 크기의 프레임들은 연산된 바와 같이 비디오 버퍼링 검증기(40)에 삽입되고 저장된다. 따라서, 비디오 버퍼링 검증기(40)의 버퍼 레벨은 다음과 같이 주어진다.
Figure 112009076456315-PCT00007
따라서, 프레임의 인코딩에 대한 마진(margin)
Figure 112009076456315-PCT00008
는 다음과 같이 주어진다.
Figure 112009076456315-PCT00009
일반적으로, 인코더(14)가 프레임을 인코딩할 때, 인코딩된 프레임 크기는 타겟 프레임 크기와 약간 다르다. 타겟 프레임 크기가 인코딩된 프레임 크기보다 큰 경우, 사용되지 않은 비트들은 인코딩을 위하여 다음 프레임들에 걸쳐서 재분산 된다. 최대 버퍼 레벨이 초과되지 않는 한, 사용되지 않은 비트들을 다음 프레임들에 걸쳐서 분산시키기 위하여 서로 다른 방법들이 사용될 수 있다. 다음 프레임들을 인코딩하기 위하여 이용 가능한, 가능한 추가적인 비트들의 수 E(t)는 다음과 같이 정의된다.
Figure 112009076456315-PCT00010
여기서
Figure 112009076456315-PCT00011
는 프레임의 실제 인코딩 이후 버퍼 레벨.
일반적으로 추가적인 사용되지 않은 비트들 중 소부분(fraction)은 최대 버퍼 레벨이 초과되지 않는 것을 보증하기 위하여 이용된다는 점이 주지되어야 한다. 이 추가적인 비트들의 소부분을 특정하고 결정하는 것은 당업자들의 인식 범위 내에 있으리라 여겨진다.
하지만, 인코딩된 프레임이 타겟 프레임 크기보다 커지는 일이 발생할 수 있다. 이 경우 E(t)는 음(negative)이거나 특정한 주어진 임계 값(threshold value)보다 낮을 수 있다. 따라서, 인코딩된 프레임에 대해 확인(validation) 프로세스가 수행된다. 만약 인코딩된 프레임이 타겟 프레임 크기를 초과했다면, 이 인코딩된 프레임은 드롭된다.
위에서 설명된 기본적인 버퍼 기반 비율 제어는 원격 감시 및 개인 비디오 클립(clips)과 같은 어플리케이션에서 좋은 성능을 보인다. 하지만, 그것은 예를 들면 비디오 트레일러들(trailers)에서 종종 나타나는, 많은 양의 동작 및 장면 변화를 갖는 시퀀스들에서 약간의 문제점들을 보인다. 따라서, 후자의 어플리케이션에 대해, 도 2의 장치(42) 및 그에 대응하는 방법과 같은 개선된 버퍼 기반 비율 제어 장치 및 방법이 요구된다. 장치(42)는 위에서 설명된 기본적인 버퍼 기반 비율 제어 장치를 토대로 한다. 따라서, 이어지는 설명에서는 장치(42)의 새로운 면만이 논의될 것이다.
III . 버퍼 기반 비율 제어 장치(42)
본 발명의 제한적이지 않은 실시예에 따른 장치(42)는 프레임 복잡성, 인터 프레임과 다음 인트라 프레임 사이의 간격, 비디오 버퍼링 검증기의 현재 버퍼 레벨 및 특정된 최대 비트율을 초과하지 않으면서 특정된 평균 비트율을 만족하기 위한 비디오 버퍼링 검증기의 연산된 타겟 버퍼 레벨을 이용한 개선된 버퍼 기반 비율 제어 방법을 구현한다. 보다 구체적으로, 장치(42)는 H.263, H.264, MPEG-4 및 그 밖의 것과 같은 비디오 코딩 표준에서 비트율을 제어하기 위한 방법(100)을 구현한다. 장치(42) 및 방법(100)은 이하에서 보다 자세히 설명될 것이다.
도 3에 나타난 바와 같이, 장치(42)는 프레임의 복잡성을 측정하기 위한 프레임 복잡성 검출기(44) 및 인코딩될 인트라 프레임의 양자화 파라미터(Quantizing Parameter: QP)를 연산(calculating)하기 위한 QP 연산기(46)를 포함한다. 또한, 장치(42)는 비디오 버퍼링 검증기(40)의 타겟 버퍼 레벨을 연산하기 위한 버퍼 레 벨 연산기(47)를 포함한다. 장치(42)는 또한 프레임의 인코딩을 위한 타겟 프레임 크기를 연산하기 위한 타겟 프레임 크기 연산기(48)를 더 포함한다. 타겟 프레임 크기는 프레임 복잡성 검출기(44)로부터의 프레임 복잡성 측정 및 연산기(46)로부터의 비디오 버퍼링 검증기 레벨(40)의 타겟 버퍼 레벨과 관련하여 연산된다. 장치(42)는 또한 연산기(48)로부터 연산된(computed) 타겟 프레임 크기가 유효(valid)한지를 결정하고 보증하기 위한 확인기(validator)(50)를 포함한다.
위에서 설명되었던 기본적인 버퍼 기반 비율 제어기는 비디오 버퍼링 검증기가 최대 비트율을 결코 초과하지 않는 것을 보증하기 위해 추가적인 비트들을 이용한다. 장치(42)에서, 이하에서 설명되는 바와 같이 비디오 버퍼링 검증기(40)의 언더플로우 또는 오버플로우를 방지하기 위해 연산된(computed) 타겟 프레임 크기에 적용된 스케일링 인자(scaling factor)에 의해 이러한 조건이 만족된다.
IV . 버퍼 기반 비율 제어 방법(100)
이제 도 4를 보면, 장치(42)를 이용한 버퍼 기반 비율 제어에 대한, 본 발명의 제한적이지 않은 예시적인 실시예에 따른 방법(100)이 설명될 것이다.
방법(100)을 설명하기 전에, 먼저 몇몇 표기법(notations)들이 소개될 것이다.
Figure 112009076456315-PCT00012
Figure 112009076456315-PCT00013
Figure 112009076456315-PCT00014
동작(102):
방법(100)의 동작(102)에서, 최대 비트율 R MAX 및 평균 비트율 R AVG 가 특정된다(specified). 이 두 값들을 결정하는 것은 당업자의 인식 범위 내에 있으리라 여겨진다.
동작(104):
동작(104)에서, 비디오 버퍼링 검증기(40)의 최대 버퍼 크기 W max 가 설정된다. 예를 들어, W max 는 최대 비트율 R MAX 와 같도록, 즉 W max = R MAX 로 설정된다. W max 가 설정되면, 예를 들어 W high = 0.8 W max 와 같이 W high 가 결정될 수 있다. 또한, W low = 0.05 W max 와 같이 W low 가 결정될 수 있다. 물론, 비디오 버퍼링 검증기(40)의 오버플로우 및 언더플로우를 각각 방지하기 위해 비디오 버퍼링 검증기(40)의 버퍼 레벨의 상한(upper limits) 및 하한(lower limits)을 각각 정의하는 W high W low 에 대한 다른 값들이 결정될 수 있다.
도 3의 버퍼 레벨 연산기(47)는 시간 t에서 타겟 버퍼 레벨 W target (t)를 연산한다. 이 연산을 수행하기 위하여 몇몇 전략들이 채택될 수 있다. 예를 들어, W target (t)는 인트라 프레임의 인코딩 이후 획득된 초기(initial) 버퍼 레벨과 함께 시작할 수 있으며, 그 후 W target (t)는 다음 인트라 프레임에 선행하는 프레임에서, 즉 시간 t = T-1에서의 프레임에서 그것이 R AVG /F 의 타겟 버퍼 레벨에 도달할 때까지 선형적으로 감소한다. 그러한 경우, 타겟 버퍼 레벨 W target (t)는 다음과 같이 주어진다.
Figure 112009076456315-PCT00015
다른 방법으로서, 타겟 버퍼 레벨 W target (t)는 또한 다음 등식에 따라 연산된다.
Figure 112009076456315-PCT00016
다음 인트라 프레임의 시작 이전에 비어 있는 비디오 버퍼링 검증기(40)를 만들어 내는 한, (1)과 (2)의 등식, 그리고 결국 다른 관계식들이 이용될 수 있다.
동작(106):
동작(106)에서, 타겟 프레임 크기 연산기(48)는 인코딩될 각 프레임에 대한 타겟 프레임 크기를 연산한다. 각 프레임에 대한 타겟 프레임 크기를 연산하기 위해, 먼저 프레임의 타입이 결정된다. 만약 그 프레임이 인트라 프레임이면, 그 인트라 프레임에 할당된 타겟 프레임 크기를 연산(compute)하기 위해 방법(200)이 이용될 것이다. 만약 그 프레임이 인터 프레임이면, 그 인터 프레임에 대한 타겟 프레임 크기를 연산하기 위해 방법(250)이 이용될 것이다.
동작(108):
타겟 프레임 크기가 연산되면, 비디오 버퍼링 검증기(40)의 오버플로우 및/또는 언더플로우를 방지하기 위해 도 3의 확인기(50)는 동작(108)에서의 연산된 타겟 프레임 크기를 확인한다.
동작(110):
많은 양의 프레임들이 드롭될 수 있는 것으로 관찰될 것이다. 드롭된 프레임들의 수를 감소시키기 위해, 도 2의 필터 계수 모듈(37)은 동작(110)에서 변환된 계수들(보통 DCT 계수들)에 필터링을 적용한다.
동작(112):
확인 프로세스(112)는 실제 인코딩된 프레임을 확인한다. 만약 실제 인코딩된 프레임 크기가 비디오 버퍼링 검증기(40)의 오버플로우를 초래한다면, 다시 말해 만약 인코딩된 프레임 크기가 비디오 버퍼링 검증기(40)의 오버플로우를 방지하기 위해 허용되는 최대 값을 초과한다면, 인코딩된 프레임은 드롭된다. 그리고 나서 인코더(14)의 상태 변수들은 드롭된 프레임의 인코딩 이전의 값 세트로 복원된다. VBV(40)의 최대 크기를 초과하지 않으면서 그 프레임이 VBV(40)에 추가될 수 없을 때, 다시 말해 프레임 크기 및 버퍼 레벨의 합이 VBV(40)의 최대 크기 한도보다 클 때, 오버플로우가 발생한다.
이제 도 4의 버퍼 기반 비율 제어 방법(100)의 동작(106), 동작(108) 및 동작(110)이 보다 상세하게 설명될 것이다.
동작(106) (방법(200)):
만약 인코딩할 프레임이 인트라 프레임이면, 그 인트라 프레임의 타겟 프레임 크기를 연산하기 위해 도 5의 방법(200)이 이용된다.
이제 도 5를 참조하여, 방법(200)이 설명될 것이다.
동작(202) (도 5):
만약 그 인트라 프레임이 비디오 프레임들의 시퀀스의 첫 번째 인트라 프레임에 대응하면, 타겟 프레임 크기 연산기(48)는 동작(202)에서 다음의 관계식을 이용하여 인트라 프레임 타겟 크기
Figure 112009076456315-PCT00017
을 연산한다.
Figure 112009076456315-PCT00018
예를 들어
Figure 112009076456315-PCT00019
이고, W max 는 방법(100)의 동작(102)에서 특정된 바와 같음.
스케일링 항(scaling term)
Figure 112009076456315-PCT00020
는 잠재적으로 다른 값들을 나타낼 수 있다.
그 비디오 시퀀스의 다른 인트라 프레임들에 대하여,
Figure 112009076456315-PCT00021
를 만족시키는 B I 의 최소 값(여기서,
Figure 112009076456315-PCT00022
는 시간 주기(a period of time)에 걸친 QP들의 평균)을 결정함으로써, 타겟 프레임 크기 연산기는 인트라 프레임 타겟 크기
Figure 112009076456315-PCT00023
를 연산한다.
동작(204):
QP(Quantization parameter; 양자화 파라미터)의 연산(computation) 및 예측은 당업자들에게 이미 알려져 있다. QP 를 연산하는 2개의 모드들이 구현될 수 있다. 첫 번째 모드는 전체 프레임 동안 고정된 QP 를 연산하는 것으로 구성된다. 두 번째 모드는 주어진 타겟 프레임 크기를 보다 가깝고 정확하게 따르기 위해 프레임의 각 매크로블록에 대해 QP 를 연산하고 업데이트 하는 것으로 구성된다.
고정된 QP 를 이용하는 것은 프레임들 간에 보다 균일한 품질과 보다 덜 정확한 프레임 크기를 이루는 결과로 이어진다는 것이 주지되어야 한다.
동작(204)에서, 도 3의 QP 연산기(46)는 다음의 관계식을 이용하여 인트라 프레임의 QP 의 값들을 연산한다.
Figure 112009076456315-PCT00024
여기서
Figure 112009076456315-PCT00025
이고, F(u,v) 는 N×M 크기의 이미지의 모든 픽셀 블록들의 8 x 8 DCT 계수들을 포함하며, B I (비트(bits) 단위)는 주어진 인트라 프레임 타겟 크기임.
MAV DCT 항은 DCT계수들의 평균 절대 값(mean absolute value)을 나타내며, 이미지 복잡성 측정을 가리킨다. ABS () 는 절대 값 함수이다.
동작(206):
동작(206)에서, 도 3의 타겟 프레임 크기 연산기(48)는 다음의 관계식을 이용하여 인트라 프레임 타겟 크기를 연산한다.
Figure 112009076456315-PCT00026
Figure 112009076456315-PCT00027
의 조건을 만족시키면서 인트라 프레임 타겟 크기 B I 를 연산하기 위해 반복적인 방법이 이용될 수 있다는 것이 주지되어야 한다.
동작(106) (방법(250)):
그 프레임이 인터 프레임일 때, 그 인터 프레임의 타겟 프레임 크기를 연산하기 위하여 도 4의 방법(100)의 방법(250)이 이용된다.
이제 도 6을 보며, 인터 프레임 타겟 크기를 연산하기 위한 방법(250)이 설명될 것이다.
동작(252):
동작(252)에서, 프레임 복잡성 검출기(44)는 서로 다른 메트릭들(metrics)을 이용하여 프레임의 복잡성을 평가한다.
프레임 복잡성의 평가에 있어서, 평균 절대 차이(Mean Absolute Differences: MAD), 인트라 프레임들에 대한 평균 절대 차이(MAD I ) 및 액티비티들(Activities)에 대한 평균 절대 차이(MAD A )와 같은 서로 다른 메트릭들이 특정되고 연산될 수 있다.
보다 구체적으로, 시간 t에서 해상도 또는 크기 M×N 의 이미지에 대한 MAD는 다음과 같이 정의된다.
Figure 112009076456315-PCT00028
여기서 Y() 는 원본 이미지의 휘도 성분(luminance component), U()V() 는 색차 성분들(chrominance components),
Figure 112009076456315-PCT00029
() 는 도 1의 디코더(18)에서 해상도 M×N 의 복원된 이전 이미지의 휘도,
Figure 112009076456315-PCT00030
() 및
Figure 112009076456315-PCT00031
() 는 도 1의 디코더(18)에서 해상도 M'×N'의 복원된 이전 이미지의 색차 성분들, 그리고
Figure 112009076456315-PCT00032
는 그 이미지의 x 및 y축에 따른 휘도에 대한 최적 동작 벡터(optimal motion vector)임.
인코딩할 현재 프레임과 복원된 이전 프레임 사이의 미스매치(mismatch)가 클수록, 특정 레벨의 품질에 도달하기 위해서는 더 많은 비트들이 현재 프레임을 인코딩하기 위해 요구된다는 점이 관찰되어야 한다. 그러므로, 더 높은 MAD 값들을 갖는 프레임들에 대해서, 인코딩을 위해 그 프레임들에 더 많은 비트들이 할당되어야 한다.
MAD A 메트릭이 이용되는 경우, 시간 t에서 M×N 해상도의 이미지에 대한 MAD A 는 다음과 같이 정의된다.
Figure 112009076456315-PCT00033
시간 t에서 MxN 해상도의 이미지에 대하여
Y는 원본 이미지의 휘도, U 및 V는 원본 이미지의 색차 성분
Figure 112009076456315-PCT00034
는 휘도에 대한 최적 동작 벡터 (7)
또한, 프레임 복잡성 검출기(44)는 인트라 프레임에 대한 복잡성 측정을 연산할 수 있다. 이 경우, MAD I 가 이용되며, (6) 및 (7) 식에서 이용된 복원된 이미지는 인트라 프레임의 인코딩동안 이용되지 않기 때문에 0으로 설정된다. 따라서, 프레임 복잡성 검출기(44)는 다음과 같이 MAD I 를 연산할 수 있다.
Figure 112009076456315-PCT00035
동작(254):
동작(254)에서, 다른 통계치들(statistics)이 연산될 수 있다. 이러한 다른 통계치들은 시간 주기에 걸쳐 도 3의 QP 연산기(46)에 의해 연산된 평균 QPQP avg (t) 및 시간 주기에 걸쳐 도 3의 프레임 복잡성 모듈(44)에 의해 연산된 평균 MADMAD avg (t)를 포함할 수 있다.
동작(256):
동작(256)에서, 도 3의 타겟 프레임 크기 연산기(48)는 다음 등식을 이용하여 인터 프레임 타겟 크기 B P (t)를 연산한다.
Figure 112009076456315-PCT00036
여기서
Figure 112009076456315-PCT00037
는, 비록 다른 값들이 이용될 수 있으나, 예를 들면 4와 같은 일정한 값이며, W target (t)는 도 4의 방법(100)의 동작(104)에서 연산됨.
등식 (9)는 다른 변수들과 관련된 인터 프레임 타겟 크기의 역동성(dynamics)을 보여준다. 예를 들어, 인터 프레임 타겟 크기 B P (t)는 개략적으로
Figure 112009076456315-PCT00038
에 비례함이 주지되어야 한다. MAD (t) 의 값들이 보통 크기 때문에, 등식 (9)의 분모에 1을 더하는 것은 그 등식에 현저한 수적 영향력을 갖지 않는다. 또한, 1을 더하는 것은 0에 의한 나눗셈이 발생하는 것을 방지한다. 비트율이 매우 높은 몇몇 특별한 경우에, 1보다 작은 분수 값(fractional value)은 정확도 문제들(accuracy problems)을 방지하는 데 보다 적절하다.
또한,
Figure 112009076456315-PCT00039
의 비율에 의해 주어지는 게인(size 단위)을 제한하기 위해 등식 (9)의
Figure 112009076456315-PCT00040
항은
Figure 112009076456315-PCT00041
일 때
Figure 112009076456315-PCT00042
에 의해 새츄레이트(saturated) 된다. 이러한 방법으로, 비디오 버퍼링 검증기(40)의 버퍼 레벨이 증가할수록 게인 한도(gain limit)는 낮아진다. 예를 들어, 만약 비디오 버퍼링 검증기(40)가 비어 있으면, 그 시간에서의 인터 프레임 타겟 크기 B P (t)는 평균 비트율의 4배로 제한되며, 이는 다시 말해
Figure 112009076456315-PCT00043
(F 는 프레임 율)로 나타낼 수 있다. 하지만, 만약
Figure 112009076456315-PCT00044
이면, 이 경우
Figure 112009076456315-PCT00045
이기 때문에 인터 프레임 타겟 크기 B P (t)는 0으로 설정될 것이고, 그러면 비디오 버퍼링 검증기(40)의 오버플로우는 방지될 수 있다.
Figure 112009076456315-PCT00046
를 갖는 것은 대개 평균 PSNR(Peak Signal-to Noise Ratio)을 개선 하나, 인코딩된 프레임들을 드롭할 보다 높은 위험을 초래한다는 것이 주지되어야 한다.
그에 더해서, 등식 (9)의 인자
Figure 112009076456315-PCT00047
Figure 112009076456315-PCT00048
인 경우에 인터 프레임 타겟 크기 B P (t)를 감소시킨다. 버퍼 타겟 레벨 W target (t)에 비해 버퍼 레벨 W(t)가 더 클수록, 인자
Figure 112009076456315-PCT00049
에 의해 유도되는 인터 프레임 타겟 크기 B P (t)에 대한 감소는 커진다. 또한, 현재 프레임이 다음에 나타날 인트라 프레임에 보다 가까워 짐에 따라, 다시 말해 t T 에 가까워짐에 따라, 감소 인자
Figure 112009076456315-PCT00050
는 보다 어그레시브(aggressive)하게 만들어 질 수 있다. 이러한 방법으로, 다음 인트라 프레임의 다가옴(upcoming)이 촉박해짐에 따라 W(t) W target (t) 사이의 보다 큰 편차들은 더 효과적으로 방지된다.
또한, 다음 인트라 프레임의 인코딩 이전에 감소 인자
Figure 112009076456315-PCT00051
가 비디오 버퍼링 검증기(40)를 비어있도록 할 수 있기 때문에, 예를 들면 등식 (1) 및 (2)를 이용하여, 초기 버퍼 타겟 레벨 W target (t)의 연산을 위해 채택된 여러 가지 전략들이 이용될 수 있다.
도 3의 타겟 프레임 크기 연산기(48)는 또한 인트라 프레임들에 대한 평균 절대 차이(MAD I ) 및 액티비티들(Activities)에 대한 평균 절대 차이(MAD A )를 이용하여 인터 프레임 타겟 크기 B P (t)를 연산할 수 있다.
동작(108):
도 4를 다시 참조하면, 동작(106)에서 타겟 프레임 크기 B(t)가 연산되면, 도 3의 확인기(50)는 특정한 마진을 고려하면서 그 연산된 타겟 프레임 크기에 대해 확인 프로세스를 적용한다.
먼저, 확인 프로세스에서, 확인기(50)는 오버플로우를 체크한다. 오버플로우를 방지하기 위하여, 다음의 조건이 만족되어야 한다.
Figure 112009076456315-PCT00052
식 (12)로부터, 높은(upper) 또는 최대의 임계 값
Figure 112009076456315-PCT00053
(여기서,
Figure 112009076456315-PCT00054
는 연산된 타겟 프레임 크기에 의해 초과되지 않아야 함)은 다음과 같이 연산될 수 있다.
Figure 112009076456315-PCT00055
그리고 나서, 도 3의 확인기(50)는 언더플로우를 체크한다. 언더플로우를 방지하기 위하여, 다음의 조건이 만족되어야 한다.
Figure 112009076456315-PCT00056
그리고 나서, 식 (14)로부터, 낮은(lower) 또는 최소의 임계 값
Figure 112009076456315-PCT00057
가 연산된 타겟 프레임 크기에 대하여 확립될 수 있다. 낮은 임계 값
Figure 112009076456315-PCT00058
는 다음과 같이 주어진다.
Figure 112009076456315-PCT00059
인코딩된 프레임들의 크기는 연산된 타겟 프레임 크기의 크기에 반드시 대응하지는 않는다는 점이 주지되어야 한다. 그러므로 현재 프레임의 실제 인코딩 이후 추가적인 확인 동작이 수행된다. 실제로, 만약 인코딩된 프레임 크기가 비디오 버퍼링 검증기(40)의 오버플로우를 방지하기 위해 허용되는 최대 값보다 크다면, 그 인코딩된 프레임은 드롭되고, 그 드롭된 프레임의 인코딩 이전의 값들에 대응하는 인코더(14)의 상태 변수들은 복원된다. 그 상태 변수들의 복원은 인코더(14)를 디 코더(18)와 다시 동조시킨다. 인코더(14)의 상태 변수들은 프레임의 인코딩 이전에 기억된다.
동작(110):
비디오 시퀀스가 많은 양의 동작을 포함할 때, 인코더(14)에서 많은 프레임들이 드롭되거나 건너뛰어지는 것이 관찰되어 왔다. 이는 작은 타겟 프레임 크기들이 연산될 때, 그들이 일반적으로 쉽게 만족되지 않는다는 사실에 기인한다.
따라서, 도 2의 필터 계수 모듈(37)은 작은 타겟 프레임 크기들에 대하여, 변환된 계수들(보통 DCT들)의 몇몇 고 주파수들을 제거하고 필터링하는데 이용된다. 보다 구체적으로, 드롭된 프레임들의 양이 특정한 시간 주기, 예를 들면 마지막 초(second) 내에서 특정한 임계 값에 도달할 때, 필터 계수 모듈(37)이 적용된다. 변환된 계수의 필터링이 활성화되면, 특정한 시간 예를 들면 4초(즉, F = 10 fps이면 40프레임)동안 통상적으로 유효하다. 드롭된 프레임들의 양이 다시 주어진 임계 값에 도달할 때, 그 DCT 계수 필터링은 다시 활성화될 것이다. 따라서, 변환된 계수 필터링은 적응적인(adaptive) 방법이다.
시간 주기당 드롭되는 프레임들의 양에 대한 주어진 임계 값을 선택하는 것은 당업자들의 영역 및 인식 내에 있음이 주지되어야 한다.
보다 구체적으로, 동작(110)에서, 도 2의 필터 계수 모듈(37)은 DCT 계수들의 경우 max _ DCT _ coeff로 표시되는 최대 계수 필터링 인덱스를 먼저 확인한다. 이 최대 DCT 필터링 인덱스 max _ DCT _ coeff는 예를 들면 한 테이블 내의 인덱스들로부 터 선택된다. 이 최대 DCT 필터링 인덱스 max _ DCT _ coeff는 타겟 프레임 크기 B(t)에 기반될 수 있다. 예를 들어, 타겟 프레임 크기 B(t)가 작을수록, 최대 DCT 필터링 인덱스 max _ DCT _ coeff는 작아진다. 다음 테이블은 최대 DCT 필터링 인덱스 max_DCT_coeff를 타겟 프레임 크기 B(t)의 함수로서 나타낸다.
Figure 112009076456315-PCT00060
그리고 나서, 도 2의 필터 계수 모듈(37)은 인코딩된 프레임들에 대한 DCT 필터링을 다음과 같이 수행한다.
Figure 112009076456315-PCT00061
등식 (16) 및 (17)을 이용함으로써, DCT 필터링은 적응적으로 만들어진다. 실제로, 대부분의 비디오 시퀀스들은 DCT 필터링을 필요로 하지 않으며, 설사 DCT 필터링이 그러한 비디오 시퀀스들에 적용되더라도, 그들의 품질은 떨어질 것이다. 하지만, DCT 필터링을 필요로 하는 비디오 시퀀스들에 DCT 필터링이 적용될 때, 그러한 비디오 시퀀스들의 품질 면에서 뛰어난 성능 개선이 관찰될 수 있다. 예를 들어, DCT 필터링을 필요로 하는 때와 장소에 DCT 필터링이 적용되었을 때, 드롭되는 프레임들의 양이 50%에서 6%까지 감소하는 것이 관찰되어 왔다.
V. 성능 결과( Performance results )
버퍼 기반 비율 제어 장치(42) 및 방법(100)의 성능을 평가할 목적으로, 비디오 코딩의 품질 및 유지되는(드롭되지 않는) 프레임들의 퍼센티지의 테스트를 위해 여러 가지 비디오 테스트 시퀀스들이 이용되었다. 처음 12개의 비디오 시퀀스들 은 비디오 코딩 간행물들(publications)에서 널리 이용되며 잘 알려진 비디오 시퀀스들이다. 그 비디오 시퀀스들은 또한 비교를 위해 다른 비율 제어 장치들에도 적용되었다. 그 다른 비율 제어 장치들은 TMN8 표준 및 참조 2에 개시된 바와 같은 "최대 비트율" 기반 비율 제어기를 포함한다. 간단함을 위해, R AVG = R MAX 의 조건이 고려되었다. 보통, R MAX > R AVG 의 조건을 갖는 것은 평균 PSNR 에 큰 영향을 미치지 않으나 드롭되는 프레임들을 가질 확률을 감소시킨다.
또한, 다음의 용어들은 그 테스트들의 결과물들에서 이용되며 다음과 같이 정의된다.
PSNR avg : 시퀀스의 평균 신호 대 잡음 비(average Peak Signal-to-Noise Ratio). 만약 프레임이 드롭되면, 디코더(18)의 메모리에 포함된, 이전에 복원된 프레임을 이용하여 그 프레임의 PSNR 이 연산된다.
PSNR kept : 시퀀스 내에 유지된(즉, 드롭된 프레임들로 고려하지 않는) 프레임들의 평균 PSNR .
PSNR min : 시퀀스 내에서 가장 낮은 PSNR 을 갖는 프레임의 PSNR .
StdDev: 평균에 대한 각 프레임의 PSNR 값들의 표준 편차. 이는 품질 일관성(quality consistency)의 측정이다. (StdDev 값이 작을수록 PSNR avg 의 변동이 작음을 의미함.)
Kbps: 실제 인코딩된 시퀀스의 평균 비트율. (초당 킬로비트(kilobits per second) 단위)
Total frms: 유지되는 프레임들의 총 분량. (즉, 1 - 드롭된 퍼센트) "1"은 모든 프레임이 유지되었다는 것을 의미하고, 0.6은 프레임들의 40%가 드롭되었다는 것을 의미한다.
테스트 케이스 1:
첫 번째 테스트 케이스에서, R MAX = 44 kbps , F = 10 fps 이고 T= 8 s 이다.
표 1: TMN8 표준 비율 제어기로부터의 결과들
Figure 112009076456315-PCT00062
표 2: "최대 비트율" 기반 비율 제어기로부터의 결과들
Figure 112009076456315-PCT00063
표 3: 프레임 액티비티(activity)를 수반하는 본 발명의 버퍼 기반 비율 제어 장치(42)로부터의 결과들
Figure 112009076456315-PCT00064
테스트 케이스 1의 결과들의 분석
3가지 타입의 비율 제어기들에 대응하는, 위 3개 표의 결과들을 비교함으로써, 본 발명의 제한적이지 않은 예시적인 실시예에 따른 버퍼 기반 비율 제어 장치(42) 및 방법(100)이 비디오 품질에 있어서 중요한 개선을 만들어 낸다는 점이 관찰될 수 있다. 실제로, 버퍼 기반 비율 제어 장치(42) 및 방법(100)에 의해 주어지는 평균 PSNR은 36.26 dB이며, 이는 각각 35.75 dB 및 34.67 dB인 TMN8 및 "최대 비트율" 제어기들의 평균 PSNR 보다 높다.
비디오 시퀀스에서 가장 좋지 않은 프레임들의 품질에 관해서, 본 발명의 제한적이지 않은 예시적인 실시예에 따른 버퍼 기반 비율 제어 장치(42) 및 방법(100)으로부터의 가장 좋지 않은 프레임들이 "최대 비트율" 기반 비율 제어기로부터의 그것보다 여전히 더 좋다는 것(30.1 dB 대 27.8 dB)이 확인될 수 있다. 하지만, 가장 좋지 않은 프레임들의 면에서, 버퍼 기반 비율 제어 장치(42) 및 방법(100)의 성능은 TMN8 표준 비율 제어기의 그것(30.3dB)보다 낮다. 이는 TMN8 표준 비율 제어기가, 만족해야 하는 엄격한 비트율 제약을 갖지 않기 때문이다. 예를 들어, 그것은 최대 비트율을 만족하지 않는다.
표준 편차(StdDev)의 면에서, 본 발명의 제한적이지 않은 예시적인 실시예에 따른 버퍼 기반 비율 제어 장치(42) 및 방법(100)은 두 개의 다른 제어기들과 비교할 때 가장 작은 편차를 나타내며, 그럼으로써 비디오 품질 면에서 더 나은 일관성을 보인다.
마지막으로, 드롭되지 않은, 남아있는 프레임들의 퍼센티지와 관련하여, TMN8 표준 비율 제어기의 93.3% 및 "최대 비트율" 기반 비율 제어기의 93.4%와 비교할 때 그 장치(42) 및 방법(100)은 가장 좋은 퍼센티지인 99.7%를 나타낸다. 이것은 비디오 시퀀스에서 대부분의 프레임들을 유지하는 것을 위한 장치(42) 및 방 법(100)의 높은 성능으로 귀결된다. 이러한 특성은 시퀀스 20(
Figure 112009076456315-PCT00065
)에서 가장 잘 나타나는데, 그것은 다음과 같은 남은 프레임들의 퍼센티지를 나타낸다.
- TMN8: 46.9%
- "최대 비트율": 46.1%
- 프레임 액티비티를 수반하는 버퍼 기반: 95.7%
테스트 케이스 2:
두 번째 테스트 케이스에서, 입력 및 출력에 대한 R MAX = 44 kbps, F = 30 fps의 타겟 비트율과, T= 8s의 2개의 인트라 프레임들 사이의 주기를 가지고 시퀀스들이 인코딩되었다.
그 결과들은 아래 표들에 나타난다.
표 4: TMN8 표준 비율 제어기로부터의 결과들
Figure 112009076456315-PCT00066
표 5: "최대 비트율" 기반 비율 제어기로부터의 결과들
Figure 112009076456315-PCT00067
표 6: 장치(42)와 같은, 액티비티를 수반하는 버퍼 기반비율 제어기로부터의 결과들
Figure 112009076456315-PCT00068
테스트 케이스 2의 결과들의 분석
3가지 비율 제어기들에 대한 PSNR 을 살펴보면, 본 발명의 제한적이지 않은 예시적인 실시예에 따른 버퍼 기반 비율 제어 장치(42) 및 방법(100)의 성능이 TMN8 및 "최대 비트율" 비율 제어기들에 비해 높다는 것이 확인될 수 있다.
- TMN8: 30.25 dB
- "최대 비트율": 0.37 dB
- 프레임 액티비티를 수반하는 버퍼 기반: 31.52 dB
남아 있는(드롭되지 않은) 프레임들의 퍼센티지와 관련하여, 결과는 다음과 같다.
- TMN8: 83.5%
- "최대 비트율": 84.3%
- 프레임 액티비티를 수반하는 버퍼 기반: 96.2%
이러한 결과들은 대부분의 프레임들을 유지하는 능력 면에서, 본 발명의 제한적이지 않은 예시적인 실시예에 따른 버퍼 기반 비율 제어 장치(42) 및 방법(100)이 2개의 다른 비율 제어기에 비해 더 높은 성능을 갖는다는 것을 다시 보여준다. 이러한 결과들은 시퀀스 20의 예시에서 가장 잘 나타나는데, 여기서 남아있는 프레임들은 다음과 같이 주어진다.
- TMN8: 10.9%
- "최대 비트율": 18.8%
- 프레임 액티비티를 수반하는 버퍼 기반: 72.7%
비트율이 낮은 경우에는, 보다 적은 수의 더 나은 품질의 프레임들을 갖는 것과 보다 많은 수의 더 낮은 품질의 프레임들을 갖는 것 사이에 타협이 이루어져야 함이 주지되어야 한다. 이러한 타협은 본 발명의 제한적이지 않은 예시적인 실시예에 따른 버퍼 기반 비율 제어 장치(42) 및 방법(100)에서 구현되고 조정될 수 있다.
테스트 케이스 3:
세 번째 케이스에서, T= 8s(2개의 인트라 프레임 사이) 및 R MAX =96 kbps, F=10fps의 비트율(인코더(14)의 입력 및 출력)을 가지고 비디오 시퀀스들이 인코딩되었다. 테스트들의 결과들은 아래와 같이 주어진다.
표 7: TMN8 표준 비율 제어기로부터의 결과들
Figure 112009076456315-PCT00069
표 8: "최대 비트율" 기반 비율 제어기로부터의 결과들
Figure 112009076456315-PCT00070
표 9: 장치(42)와 같은, 액티비티를 수반하는 버퍼 기반비율 제어기로부터의 결과들
Figure 112009076456315-PCT00071
테스트 케이스 3의 결과들의 분석
전체 PSNR 의 면에서, 3가지 타입의 비율 제어기들은 훌륭하게 동작한다는 것이 확인될 수 있으나, 본 발명의 제한적이지 않은 예시적인 실시예에 따른 버퍼 기반 비율 제어 장치(42) 및 방법(100)에서 작은 개선이 관찰될 수 있다.실제로, 결과들은 다음과 같다.
- TMN8: 39.39 dB
- "최대 비트율": 38.98 dB
- 프레임 액티비티를 수반하는 버퍼 기반: 39.68 dB
남아있는(즉, 드롭되지 않은) 프레임들의 퍼센티지와 관련하여, 프레임 액티비티를 수반하는 버퍼 기반 비율 제어기가 개선된 성능을 보인다는 것이 확인될 수 있다.
- TMN8: 98.7%
- "최대 비트율": 98.0%
- 프레임 액티비티를 수반하는 버퍼 기반: 99.9%
본 발명의 제한적이지 않은 예시적인 실시예에 따른 버퍼 기반 비율 제어 장치(42) 및 방법(100)이 2개의 다른 비율 제어기들에 비해 개선을 보인다는 것이 테스트 결과들로부터 분명히 확인될 수 있다.
VI . 소프트웨어 구조
본 발명의 제한적이지 않은 예시적인 실시예에 따른 버퍼 기반 비율 제어 장 치(42) 및 방법(100)은 컴퓨터의 기억 매체에 위치하는 컴퓨터 프로그램으로 구현되었다.
인코더(14)는 비율 제어 동작들을 모듈화하기 위해 수정되었으며, 그럼으로써 비율 제어 구현 및 테스트를 위한 새로운 프레임워크를 생성한다.
보다 구체적으로, 다수의 특성들이 비율 제어 프레임워크에 추가되었다. 예를 들어, 제품 개발 및 디버깅을 위하여, 다음의 특성들이 이용되었다.
ㆍ원본 및 인코딩된 프레임들 사이의 PSNR 의 연산: 1) 만약 프레임이 건너뛰어졌으면, 그 연산에서는 마지막 복원된 이미지가 이용되고, 2) 복원된 이미지에 대한 파일은 YUV(휘도 및 색차를 갖는 컬러 스페이스)내에 생성된다.
QP, PSNR, MAD등과 같은 통계치들의 파일에 대한 쓰기 및 연산
또한, 본 발명의 제한적이지 않은 예시적인 실시예에 따른 버퍼 기반 비율 제어 장치(42) 및 방법(100)은 장면 컷들(scene cuts)을 검출할 수 있다. 그러한 목적을 위하여, 프레임 타입 결정 이전에 동작 추정의 연산이 수행된다. MAD를 고정된 임계 값 또는 평균 MAD (적응적인 임계 값)와 비교함으로써 장면 컷들의 검출이 이루어질 수 있다. 만약 MAD이 고정된 또는 적응적인 임계 값보다 크다면, 장면 컷이 검출되고 그 프레임은 인트라 프레임으로서 코딩된다.
또한, 인트라 프레임 타겟 크기의 연산을 위해, 2개의 옵션이 가능한데, 그것은 1) 전체 프레임의 지속시간 동안의 일정한 QP를 결정하거나, 2) 각 MB 라인에 대하여 변화할 수 있는 QP를 결정하고 업데이트하는 것이다. 전체 프레임 동안의 일정한 QP는 그 프레임 동안 품질 일관성을 유지하는 것을 돕는다.
QP들, 인코딩된 프레임 크기들 등에 관한 많은 통계치들이 수집될 수 있고, 그리고 나서 그 이상의 개선 또는 프로세싱을 위해 분석될 수 있다.
위에서 언급된 바와 같이, 프레임 복잡성 메트릭들인 MADMAD A 는 비율 제어 장치(42) 및 방법(100)에서 이용될 수 있다. 기본값(default)으로서, 컴퓨터 프로그램은 MAD를 이용하는데 이는 그것이 MAD A 에 비해 더 적은 연산을 이끌어 내기 때문이다. 하지만, 바람직한 경우라면 MAD A 를 이용하는 것이 가능하다. 그렇게 하기 위해서는, 컴파일링 이전에 그 컴퓨터 프로그램 내에 MAD A 를 정의하는 것으로 충분하다.
또한, GOB (Group Of Blocks: 블록 그룹)의 지원의 특성이 추가되었다.
초당 프레임 수가 1보다 낮은 경우는 처음에 놀라운 결과로 이어진다. 실제로, 평균 비트율 R AVG 와 동일한 최대 비트율 R MAX 를 갖는 것은 R MAX 보다 훨씬 작은 비트율을 초래할 것이다. 예를 들어, 만약 F = 0.1 fps이고 최대 버퍼 크기가 R MAX 이면, 가장 큰 프레임 크기는 R MAX 가 될 수 있다. 매 10초당 단 하나의 프레임만이 전송되기 때문에, 효과적인 비트율은 0.1 R MAX 에 가까울 것이다. 만약 누군가가 보다 높은 비트율을 원한다면, 최대 비트율은 보다 높은 비트율로 설정되어야 한다.
본 발명의 제한적이지 않은 예시적인 실시예에 따른 버퍼 기반 비율 제어 장 치(42) 및 방법(100)이 컴퓨터 프로그램으로 구현되었기 때문에, 최적화를 통해서 그 프로그램의 속도가 개선될 수 있음이 관찰될 수 있다. 비록 프레임 복잡성을 이용하는 구현된 버퍼 기반 비율 제어 장치에서 보다 많은 통계치들이 연산되어야 하지만, 그 프로그램 내의 서로 다른 모듈들에서 구현된 최적화는 버퍼 기반 비율 제어 방법(100)의 속도를 향상시킨다. 또한, 만약 속도에 대한 더 많은 개선이 요구된다면, 특정한 컴퓨팅 플랫폼들에 대하여 연산을 위한 Intel® IPP (Integrated Performance Primitives)의 이용이 고려될 수 있다.
비록 제한적이지 않은 예시적인 실시예에 의해 앞의 명세서에서 본 발명이 설명되었으나, 본 발명의 정신과 성질로부터 벗어나지 않으면서, 부가되는 청구항들의 범위 내에서 언제 어느 때라도 이 예시적인 실시예는 수정될 수 있다.

Claims (39)

  1. 인트라 프레임들에 의해 분리되는 일련의 인터 프레임들을 포함하는 프레임들의 시퀀스의 비디오 코딩에서 비트율을 제어하는 방법에 있어서, 상기 코딩된 프레임들은 상기 코딩된 프레임들의 전송 이전에 비디오 버퍼링 장치에서 확인되고(validated), 상기 방법은
    프레임들의 시퀀스에서 프레임 복잡성을 측정하는 단계;
    각각의 인터 프레임에 대하여, 상기 인터 프레임과 다음 인트라 프레임 사이의 간격과 관련하여 상기 비디오 버퍼링 장치의 타겟 버퍼 레벨을 연산하는(calculating) 단계;
    각각의 인터 프레임에 대하여, 상기 인터 프레임과 상기 다음 인트라 프레임 사이의 상기 간격과 관련하여 타겟 프레임 크기, 상기 측정된 프레임 복잡성, 상기 비디오 버퍼링 장치의 현재 버퍼 레벨 및 상기 비디오 버퍼링 장치의 상기 연산된 타겟 버퍼 레벨을 연산하는 단계; 및
    프레임들의 상기 시퀀스의 비디오 코딩에서 비트율을 제어하기 위하여 상기 연산된 타겟 프레임 크기를 이용하는 단계를
    포함하는 방법.
  2. 비디오 버퍼링 검증기(verifier)의 최대 크기 한도를 초과하지 않으면서 평 균 비트율을 만족시키기 위하여, 인트라 프레임들에 의해 분리되는 일련의 인터 프레임을 포함하는 프레임들의 시퀀스의 비디오 코딩에서 비트율을 제어하는 방법에 있어서, 비디오 코딩은 상기 코딩된 프레임들의 전송 이전에 상기 비디오 버퍼링 검증기에서 상기 코딩된 프레임들을 확인하는(validating) 단계를 포함하고, 상기 방법은
    프레임들의 시퀀스에서 프레임 복잡성을 측정하는 단계;
    각각의 인터 프레임에 대하여, 상기 인터 프레임과 다음 인트라 프레임 사이의 간격과 관련하여 상기 비디오 버퍼링 검증기의 타겟 버퍼 레벨을 연산하는 단계;
    각각의 인터 프레임에 대하여, 상기 인터 프레임과 상기 다음 인트라 프레임 사이의 상기 간격과 관련하여 타겟 프레임 크기, 상기 측정된 프레임 복잡성, 상기 비디오 버퍼링 검증기의 현재 버퍼 레벨 및 상기 비디오 버퍼링 검증기의 상기 연산된 타겟 버퍼 레벨을 연산하는 단계; 및
    프레임들의 상기 시퀀스의 비디오 코딩에서 상기 비디오 버퍼링 검증기의 상기 최대 크기 한도를 초과하지 않으면서 상기 평균 비트율을 만족하도록 상기 연산된 타겟 프레임 크기를 이용하는 단계를
    포함하는 방법.
  3. 제1항에 있어서,
    프레임들의 상기 시퀀스의 인트라 프레임의 타겟 프레임 크기를 연산하는 단계를 더 포함하는 방법.
  4. 제3항에 있어서,
    상기 인트라 프레임의 상기 타겟 프레임 크기는 상기 비디오 버퍼링 장치의 최대 크기 한도와 관련하여 연산되는 방법.
  5. 제3항에 있어서,
    상기 인트라 프레임의 상기 타겟 프레임 크기를 연산하는 단계는
    양자화 파라미터들을 연산하는(computing) 단계; 및
    상기 인트라 프레임의 상기 타겟 프레임 크기를 결정하기 위하여 상기 연산된 양자화 파라미터들을 이용하는 단계를
    포함하는 방법.
  6. 제5항에 있어서,
    상기 인트라 프레임의 상기 타겟 프레임 크기를 연산하는 단계는
    최소 프레임 크기를 연산하는(computing) 단계를 포함하고,
    상기 최소 프레임 크기에 대하여 상기 연산된 양자화 파라미터들은 주어진 시간 주기 동안 이전에 인코딩된 프레임들의 양자화 파라미터들의 평균보다 작거나 같은 방법.
  7. 제1항에 있어서,
    프레임 복잡성을 측정하는 단계는
    인터 프레임의 경우, 현재 이미지와 이전에 복원된 이미지 사이의 차이를 나타내는 메트릭(metrics)을 연산하는 단계를 포함하는 방법.
  8. 제7항에 있어서,
    상기 현재 이미지와 상기 이전에 복원된 이미지 사이의 차이를 나타내는 상기 연산된 메트릭은 평균 절대 차이(mean absolute difference)를 포함하는 방법.
  9. 제8항에 있어서,
    프레임 복잡성을 측정하는 단계는
    인트라 프레임의 경우, 0으로 설정된 상기 이전에 복원된 이미지와 관련된 항들과 함께 상기 평균 절대 차이를 연산하는 방법.
  10. 제2항에 있어서,
    상기 비디오 버퍼링 검증기의 상기 타겟 버퍼 레벨은 또한 상기 평균 비트율 및 마지막 인트라 프레임의 코딩 이후 상기 비디오 버퍼링 검증기의 버퍼 레벨과 관련하여 연산되는 방법.
  11. 제2항에 있어서,
    상기 비디오 버퍼링 검증기의 상기 타겟 버퍼 레벨은 또한 상기 평균 비트율 및 상기 비디오 버퍼링 검증기의 최대 버퍼 레벨과 관련하여 연산되는 방법.
  12. 제2항에 있어서,
    상기 인터 프레임의 상기 타겟 프레임 크기는 또한 상기 평균 비트율 및 오버플로우 위험에 이르게 하는 상기 비디오 버퍼링 검증기의 높은 버퍼 레벨과 관련하여 연산되는 방법.
  13. 제3항에 있어서,
    상기 코딩된 프레임의 크기가 상기 비디오 버퍼링 장치의 오버플로우를 방지하기 위해 허용되는 최대 값보다 클 때, 코딩된 프레임을 드롭하는 단계를 포함하는 방법.
  14. 제13항에 있어서,
    상기 코딩된 프레임을 드롭한 후에 상기 비디오 코딩을 수행하는 인코더의 상태 변수들을 복원하는 단계를 포함하는 방법.
  15. 제1항에 있어서,
    주어진 시간 주기 내에서 다수의 드롭된 코딩된 프레임들이 주어진 임계 값(threshold)에 도달할 때, 프레임들의 상기 시퀀스의 상기 코딩된 프레임들에 대해 수행된 이산 코사인 변환(Discrete Cosine Transform: DCT) 계수들을 필터링하는 단계를 포함하는 방법.
  16. 제15항에 있어서,
    상기 DCT 계수들을 필터링하는 단계는
    상기 DCT 계수들의 고주파수들을 제거하는 단계를 포함하는 방법.
  17. 제15항에 있어서,
    상기 DCT 계수들을 필터링하는 단계는
    특정한 수의 프레임들에 대한 상기 DCT 필터링을 활성화하는 단계를 포함하는 방법.
  18. 제2항에 있어서,
    상기 비디오 버퍼링 검증기에서 상기 코딩된 프레임들을 확인하는 단계는 상기 연산된 타겟 프레임 크기를 확인하는 단계를 포함하는 방법.
  19. 제18항에 있어서,
    상기 연산된 타겟 프레임 크기를 확인하는 단계는 상기 비디오 버퍼링 검증기의 오버플로우를 방지하는 단계를 포함하는 방법.
  20. 제18항에 있어서,
    상기 연산된 타겟 프레임 크기를 확인하는 단계는 상기 비디오 버퍼링 검증 기의 언더플로우를 방지하는 단계를 포함하는 방법.
  21. 인트라 프레임들에 의해 분리되는 일련의 인터 프레임들을 포함하는 프레임들의 시퀀스의 비디오 코딩에서 비트율을 제어하는 장치에 있어서, 상기 코딩된 프레임들은 상기 코딩된 프레임들의 전송 이전에 비디오 버퍼링 장치에서 확인되고(validated), 상기 장치는
    프레임들의 상기 시퀀스에서 프레임 복잡성을 측정하는 검출기;
    상기 인터 프레임과 다음 인트라 프레임 사이의 간격과 관련하여, 각각의 인터 프레임에 대한, 상기 비디오 버퍼링 장치의 타겟 버퍼 레벨을 연산하는 제1연산기(calculator);
    상기 인터 프레임과 상기 다음 인트라 프레임 사이의 상기 간격과 관련하여, 각각의 인터 프레임에 대한, 타겟 프레임 크기, 상기 측정된 프레임 복잡성, 상기 비디오 버퍼링 장치의 현재 버퍼 레벨 및 상기 비디오 버퍼링 장치의 상기 연산된 타겟 버퍼 레벨을 연산하는 제2연산기; 및
    상기 연산된 타겟 프레임 크기에 대응하는 프레임들의 상기 시퀀스의 비디오 코딩에서 상기 비트율의 제어를
    포함하는 장치.
  22. 비디오 버퍼링 검증기의 최대 크기를 초과하지 않으면서 평균 비트율을 만족시키기 위하여, 인트라 프레임들에 의해 분리되는 일련의 인터 프레임을 포함하는 프레임들의 시퀀스의 비디오 코딩에서 비트율을 제어하는 장치에 있어서, 비디오 코딩은 상기 코딩된 프레임들의 전송 이전에 상기 비디오 버퍼링 검증기에서 상기 코딩된 프레임들을 확인하는(validating) 단계를 포함하고, 상기 장치는
    프레임들의 상기 시퀀스에서 프레임 복잡성을 측정하는 검출기;
    상기 인터 프레임과 다음 인트라 프레임 사이의 간격과 관련하여, 각각의 인터 프레임에 대한, 상기 비디오 버퍼링 검증기의 타겟 버퍼 레벨을 연산하는 제1연산기;
    상기 인터 프레임과 상기 다음 인트라 프레임 사이의 상기 간격과 관련하여, 각각의 인터 프레임에 대한, 타겟 프레임 크기, 상기 연산된 프레임 복잡성, 상기 비디오 버퍼링 검증기의 현재 버퍼 레벨 및 상기 비디오 버퍼링 검증기의 상기 연산된 타겟 버퍼 레벨을 연산하는 제2연산기; 및
    프레임들의 상기 시퀀스의 비디오 코딩에서 상기 비디오 버퍼링 검증기의 상기 최대 크기 한도를 초과하지 않으면서 상기 평균 비트율을 만족시키기 위한, 상기 연산된 타겟 프레임 크기에 대응하는 프레임들의 상기 시퀀스의 비디오 코딩에서 상기 비트율에 대한 제어
    를 포함하는 장치.
  23. 제21항에 있어서,
    프레임들의 상기 시퀀스의 인트라 프레임의 타겟 프레임 크기를 연산하는 연산기를 더 포함하는 장치.
  24. 제23항에 있어서,
    상기 인트라 프레임의 상기 타겟 프레임 크기를 연산하는 상기 연산기는 상기 비디오 버퍼링 장치의 최대 크기 한도와 관련하여 상기 인트라 프레임의 상기 타겟 프레임 크기를 연산하는 장치.
  25. 제23항에 있어서,
    상기 인트라 프레임의 상기 타겟 프레임 크기를 계산하는 상기 연산기는 양자화 파라미터들을 연산하고(compute), 상기 인트라 프레임의 상기 타겟 프레임 크기를 결정하기 위하여 상기 연산된 양자화 파라미터들을 이용하는 장치.
  26. 제21항에 있어서,
    상기 프레임 복잡성의 검출기는, 인터 프레임의 경우, 현재 이미지와 이전에 복원된 이미지 사이의 차이를 나타내는 메트릭을 연산하는 장치.
  27. 제26항에 있어서,
    상기 현재 이미지와 상기 이전에 복원된 이미지 사이의 차이를 나타내는 상기 연산된 메트릭은 평균 절대 차이를 포함하는 장치.
  28. 제27항에 있어서,
    상기 프레임 복잡성의 검출기는, 인트라 프레임의 경우, 0으로 설정된 상기 이전에 복원된 이미지와 관련된 항들과 함께 상기 평균 절대 차이를 연산하는 장치.
  29. 제22항에 있어서,
    상기 제1연산기는 또한 상기 평균 비트율 및 마지막 인트라 프레임의 코딩 이후 상기 비디오 버퍼링 검증기의 버퍼 레벨과 관련하여 상기 비디오 버퍼링 검증기의 상기 타겟 버퍼 레벨을 연산하는 장치.
  30. 제22항에 있어서,
    상기 제1연산기는 또한 상기 평균 비트율 및 상기 비디오 버퍼링 검증기의 최대 버퍼 레벨과 관련하여 상기 비디오 버퍼링 검증기의 상기 타겟 버퍼 레벨을 연산하는 장치.
  31. 제22항에 있어서,
    상기 제2연산기는 또한 상기 평균 비트율 및 오버플로우 위험에 이르게 하는 상기 비디오 버퍼링 검증기의 높은 버퍼 레벨과 관련하여 상기 인터 프레임의 상기 타겟 프레임 크기를 연산하는 장치.
  32. 제23항에 있어서,
    상기 코딩된 프레임의 크기가 상기 비디오 버퍼링 장치의 오버플로우를 방지하기 위해 허용되는 최대 값보다 클 때, 코딩된 프레임을 드롭하기 위한 상기 타겟 프레임 크기의 확인기(validator)를 포함하는 장치.
  33. 제32항에 있어서,
    상기 확인기가 상기 코딩된 프레임을 드롭한 후에 상기 비디오 코딩을 수행하는 인코더의 상태 변수들을 복원하기 위한 수단을 포함하는 장치.
  34. 제21항에 있어서,
    주어진 시간 주기 내에서 다수의 드롭된 코딩된 프레임들이 주어진 임계 값에 도달할 때, 프레임들의 상기 시퀀스의 상기 코딩된 프레임에 대해 수행된 DCT 계수들을 필터링하기 위한 DCT 필터를 포함하는 장치.
  35. 제34항에 있어서,
    상기 DCT 필터는 상기 DCT 계수들의 고 주파수들을 제거하는 장치.
  36. 제34항에 있어서,
    상기 DCT 필터는 특정한 수의 프레임들에 대한 상기 DCT 계수를 필터링하기 위하여 활성화되는 장치.
  37. 제22항에 있어서,
    상기 연산된 타겟 프레임 크기를 확인하는 확인기를 더 포함하는 장치.
  38. 제37항에 있어서,
    상기 확인기는 상기 비디오 버퍼링 검증기의 오버플로우를 방지하는 장치.
  39. 제37항에 있어서,
    상기 확인기는 상기 비디오 버퍼링 검증기의 언더플로우를 방지하는 장치.
KR1020097025857A 2007-06-19 2008-06-19 비디오 코딩에서 프레임 복잡성, 버퍼 레벨 및 인트라 프레임들의 위치를 이용하는 버퍼 기반의 비율 제어 KR101518358B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US92925507P 2007-06-19 2007-06-19
US60/929,255 2007-06-19
PCT/CA2008/001168 WO2008154742A1 (en) 2007-06-19 2008-06-19 A buffer-based rate control exploiting frame complexity, buffer level and position of intra frames in video coding

Publications (2)

Publication Number Publication Date
KR20100021597A true KR20100021597A (ko) 2010-02-25
KR101518358B1 KR101518358B1 (ko) 2015-05-08

Family

ID=40155845

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097025857A KR101518358B1 (ko) 2007-06-19 2008-06-19 비디오 코딩에서 프레임 복잡성, 버퍼 레벨 및 인트라 프레임들의 위치를 이용하는 버퍼 기반의 비율 제어

Country Status (8)

Country Link
US (1) US8824546B2 (ko)
EP (1) EP2160903B1 (ko)
JP (1) JP5180294B2 (ko)
KR (1) KR101518358B1 (ko)
CN (1) CN101743753B (ko)
CA (1) CA2688249C (ko)
IL (1) IL202279A (ko)
WO (1) WO2008154742A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019112224A1 (ko) * 2017-12-04 2019-06-13 삼성전자 주식회사 전자 장치 및 전자 장치의 영상 데이터 전송 방법

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8665281B2 (en) * 2008-02-07 2014-03-04 Microsoft Corporation Buffer management for real-time streaming
WO2009157827A1 (en) * 2008-06-25 2009-12-30 Telefonaktiebolaget L M Ericsson (Publ) Row evaluation rate control
US8804508B1 (en) * 2009-07-16 2014-08-12 Teradici Corporation Method and apparatus for using a network appliance to manage media communications
WO2011048829A1 (ja) * 2009-10-22 2011-04-28 日本電信電話株式会社 映像品質推定装置、映像品質推定方法およびプログラム
US9369772B1 (en) * 2010-04-21 2016-06-14 Marvell International Ltd. Dual PID controller based bit allocation and rate control for video coding
CN101931799A (zh) * 2010-09-14 2010-12-29 中兴通讯股份有限公司 一种视频码流的平滑方法及装置
TWI514324B (zh) 2010-11-30 2015-12-21 Ind Tech Res Inst 影像目標區域追蹤系統與方法及電腦程式產品
CN108989847B (zh) 2011-08-30 2021-03-09 帝威视有限公司 用于编码和流处理视频的系统和方法
US9161060B2 (en) * 2011-09-30 2015-10-13 Broadcom Corporation Multi-mode error concealment, recovery and resilience coding
US9888244B2 (en) * 2011-10-05 2018-02-06 Texas Instruments Incorporated Methods and systems for encoding of multimedia pictures
US8874634B2 (en) 2012-03-01 2014-10-28 Motorola Mobility Llc Managing adaptive streaming of data via a communication connection
US9532080B2 (en) 2012-05-31 2016-12-27 Sonic Ip, Inc. Systems and methods for the reuse of encoding information in encoding alternative streams of video data
CN102724502B (zh) * 2012-06-11 2015-08-19 华为技术有限公司 一种视频编码中码率的控制方法及装置
US9813732B2 (en) * 2012-06-28 2017-11-07 Axis Ab System and method for encoding video content using virtual intra-frames
US9350990B2 (en) 2013-02-28 2016-05-24 Sonic Ip, Inc. Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming
US9357210B2 (en) * 2013-02-28 2016-05-31 Sonic Ip, Inc. Systems and methods of encoding multiple video streams for adaptive bitrate streaming
US9538190B2 (en) * 2013-04-08 2017-01-03 Qualcomm Incorporated Intra rate control for video encoding based on sum of absolute transformed difference
US20140321533A1 (en) * 2013-04-29 2014-10-30 Ati Technologies Ulc Single-path variable bit rate video compression
KR20180010343A (ko) * 2013-05-24 2018-01-30 쏘닉 아이피, 아이엔씨. 적응적 비트레이트 스트리밍을 위해 적응적 양자화를 갖고 다수의 비디오 스트림들을 인코딩하는 시스템들 및 방법들
FR3011429A1 (fr) * 2013-09-27 2015-04-03 Orange Codage et decodage video par heritage d'un champ de vecteurs de mouvement
CN105208390B (zh) * 2014-06-30 2018-07-20 杭州海康威视数字技术股份有限公司 视频编码的码率控制方法及其系统
CN104469367B (zh) * 2014-12-16 2017-11-14 北京金山云网络技术有限公司 基于丢帧和量化参数调整的视频码率控制方法
GB201502915D0 (en) * 2015-02-22 2015-04-08 Compton Matthew P And Riovideo Ltd Method and apparatus for rate control subjective optimisation
US20160360206A1 (en) * 2015-06-04 2016-12-08 Microsoft Technology Licensing, Llc Rate controller for real-time encoding and transmission
KR102437698B1 (ko) * 2015-08-11 2022-08-30 삼성전자주식회사 전자 장치 및 전자 장치의 이미지 인코딩 방법
CN105430401A (zh) * 2015-11-06 2016-03-23 济南草履虫电子科技有限公司 一种食品车间环境监测系统
CN105407354A (zh) * 2015-11-06 2016-03-16 济南草履虫电子科技有限公司 一种计算机控制视频闪烁抑制方法
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
AU2016231584A1 (en) * 2016-09-22 2018-04-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
CN106776696B (zh) * 2016-11-11 2022-05-06 浙江宇视科技有限公司 一种基于分类模型的热度图数据处理方法及装置
US10904591B2 (en) * 2016-12-28 2021-01-26 Google Llc Scheme for zero-copy adaptive bitrate video streaming
CN109218748B (zh) * 2017-06-30 2020-11-27 京东方科技集团股份有限公司 视频传输方法、装置及计算机可读存储介质
US10623788B2 (en) 2018-03-23 2020-04-14 At&T Intellectual Property I, L.P. Methods to estimate video playback buffer
CN110166780B (zh) * 2018-06-06 2023-06-30 腾讯科技(深圳)有限公司 视频的码率控制方法、转码处理方法、装置和机器设备
US10728180B2 (en) * 2018-08-21 2020-07-28 At&T Intellectual Property I, L.P. Apparatus, storage medium and method for adaptive bitrate streaming adaptation of variable bitrate encodings
CN110351595B (zh) * 2019-07-17 2023-08-18 北京百度网讯科技有限公司 一种缓冲处理方法、装置、设备和计算机存储介质
US11178261B1 (en) * 2019-08-23 2021-11-16 Fitbit, Inc. Device communication techniques
US11955067B2 (en) * 2021-03-17 2024-04-09 Samsung Display Co., Ltd. Simplified rate control for an additive iterative compression system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0757490A3 (en) * 1995-08-02 1999-01-13 Matsushita Electric Industrial Co., Ltd. Video coding device and video transmission system using the same, quantization control method and average throughput calculation method used therein
US5717464A (en) 1995-12-18 1998-02-10 Divicom, Inc. Rate control for a video encoder
CN1152576C (zh) 1997-07-08 2004-06-02 索尼公司 视频数据编码装置、编码方法和传送装置
US6141380A (en) * 1998-09-18 2000-10-31 Sarnoff Corporation Frame-level rate control for video compression
US6233226B1 (en) 1998-12-14 2001-05-15 Verizon Laboratories Inc. System and method for analyzing and transmitting video over a switched network
US6330286B1 (en) * 1999-06-09 2001-12-11 Sarnoff Corporation Flow control, latency control, and bitrate conversions in a timing correction and frame synchronization apparatus
US6731685B1 (en) 2000-09-20 2004-05-04 General Instrument Corporation Method and apparatus for determining a bit rate need parameter in a statistical multiplexer
US7023924B1 (en) 2000-12-28 2006-04-04 Emc Corporation Method of pausing an MPEG coded video stream
US20040252758A1 (en) * 2002-08-14 2004-12-16 Ioannis Katsavounidis Systems and methods for adaptively filtering discrete cosine transform (DCT) coefficients in a video encoder
MXPA05002511A (es) * 2002-09-05 2005-08-16 Agency Science Tech & Res Un metodo y un aparato para controlar la velocidad de una secuencia de video; un dispositivo que codifica un video.
US7864840B2 (en) * 2005-04-15 2011-01-04 Inlet Technologies, Inc. Scene-by-scene digital video processing
US20090225829A2 (en) 2005-07-06 2009-09-10 Do-Kyoung Kwon Method and apparatus for operational frame-layerrate control in video encoder
US9544602B2 (en) 2005-12-30 2017-01-10 Sharp Laboratories Of America, Inc. Wireless video transmission system
WO2008070987A1 (en) 2006-12-12 2008-06-19 Vantrix Corporation An improved video rate control for video coding standards

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019112224A1 (ko) * 2017-12-04 2019-06-13 삼성전자 주식회사 전자 장치 및 전자 장치의 영상 데이터 전송 방법
US11184654B2 (en) 2017-12-04 2021-11-23 Samsung Electronics Co., Ltd. Electronic device and method for transmitting image data of electronic device

Also Published As

Publication number Publication date
EP2160903A4 (en) 2011-04-27
KR101518358B1 (ko) 2015-05-08
IL202279A0 (en) 2010-06-16
WO2008154742A1 (en) 2008-12-24
US20100195713A1 (en) 2010-08-05
IL202279A (en) 2015-03-31
CN101743753B (zh) 2014-05-21
JP5180294B2 (ja) 2013-04-10
JP2010530673A (ja) 2010-09-09
EP2160903A1 (en) 2010-03-10
CN101743753A (zh) 2010-06-16
US8824546B2 (en) 2014-09-02
EP2160903B1 (en) 2016-03-02
CA2688249A1 (en) 2008-12-24
CA2688249C (en) 2015-07-07

Similar Documents

Publication Publication Date Title
KR101518358B1 (ko) 비디오 코딩에서 프레임 복잡성, 버퍼 레벨 및 인트라 프레임들의 위치를 이용하는 버퍼 기반의 비율 제어
KR101418950B1 (ko) 비디오 코딩 표준에 대한 개선된 비디오율 제어
US6944224B2 (en) Systems and methods for selecting a macroblock mode in a video encoder
US8374236B2 (en) Method and apparatus for improving the average image refresh rate in a compressed video bitstream
EP1515564A2 (en) Systems and methods for adaptively filtering DCT coefficients in a video encoder
EP1549074A1 (en) A bit-rate control method and device combined with rate-distortion optimization
US8948242B2 (en) Encoding device and method and multimedia apparatus including the encoding device
CN101395923A (zh) 用于在图像信号编码中为图像中的像素块组确定比特分配的方法及设备
KR100790149B1 (ko) 비디오 인코딩 데이터율 제어 방법
Chang et al. A stable buffer control strategy for MPEG coding
KR20080077537A (ko) 저지연 영상 통신 시스템 및 방법
Huang et al. MMC02-2: H. 264 Bit-rate Control Using the 3-D Perceptual Quantization Modeling
Khamiss et al. Constant Bit Rate For Video Streaming Over Packet Switching Networks
Abdullah et al. Constant Bit Rate For Video Streaming Over Packet Switching Networks
Jiang Adaptive rate control for advanced video coding
Rezaei et al. Bit allocation for variable bitrate video
Tun et al. A novel rate control algorithm for the Dirac video codec based upon the quality factor optimization
Hu Bit rate control for real-time multipoint video conferencing
JP2001148855A (ja) 画像情報変換装置及び画像情報変換方法

Legal Events

Date Code Title Description
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: 20180424

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190425

Year of fee payment: 5