KR100790150B1 - 비디오 부호화기 및 비디오 데이터 프레임 부호화 방법 - Google Patents

비디오 부호화기 및 비디오 데이터 프레임 부호화 방법 Download PDF

Info

Publication number
KR100790150B1
KR100790150B1 KR1020060071431A KR20060071431A KR100790150B1 KR 100790150 B1 KR100790150 B1 KR 100790150B1 KR 1020060071431 A KR1020060071431 A KR 1020060071431A KR 20060071431 A KR20060071431 A KR 20060071431A KR 100790150 B1 KR100790150 B1 KR 100790150B1
Authority
KR
South Korea
Prior art keywords
frame
capacity
video data
encoding
frames
Prior art date
Application number
KR1020060071431A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020060071431A priority Critical patent/KR100790150B1/ko
Priority to CN200710139195A priority patent/CN100581261C/zh
Priority to US11/881,659 priority patent/US20080025388A1/en
Priority to EP07113420A priority patent/EP1883246B1/en
Application granted granted Critical
Publication of KR100790150B1 publication Critical patent/KR100790150B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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

Landscapes

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

Abstract

본 발명은 비디오 부호화기 및 비디오 데이터 프레임 부호화 방법을 제공한다. 이를 위해 본 발명에서는, 비디오 부호화기의 인코더가 부호화될 비디오 데이터 프레임들의 전체 용량을 체크하고, 이전의 GOP로부터 추출한 P 프레임들의 평균 용량을 이용하여 상기 체크된 전체 용량에 따라 앞으로 부호화될 P 프레임의 개수를 예측한다. 그리고 상기 버퍼의 가용용량에 따라 예측된 P 프레임의 개수로부터 버퍼의 오버플로우로 인해 스킵될 프레임들의 개수를 측정한다. 그리고 측정된 P 프레임의 개수 및 GOP의 프레임 개수에 따라 연속되지 않도록 스킵될 P 프레임의 위치를 설정한다. 그리고 상기 비디오 데이터 프레임들의 부호화를 수행하면서, 현재 부호화가 선택된 비디오 데이터 프레임이 상기 스킵될 P 프레임의 위치에 해당되는 위치의 프레임인 경우 상기 비디오 데이터 프레임의 부호화를 스킵한다. 여기서 상기 스킵되는 프레임들은 상기 비디오 데이터 프레임 중 다른 비디오 데이터 프레임들의 참조 프레임이 되는 I 프레임 또는 제1 P 프레임을 제외한 P 프레임들 중에서 결정된다. 따라서 본 발명은 중요도가 높은 참조 프레임들의 스킵을 방지하면서도 연속적인 스킵이 일어나는 것을 방지하여 전체적인 화질 열화를 방지할 수 있다.
비디오 부호화기, I 프레임, P 프레임, 프레임 부호화 스킵

Description

비디오 부호화기 및 비디오 데이터 프레임 부호화 방법{VIDEO ENCODER AND METHOD FOR ENCODING VIDEO DATA FRAME}
도 1은 통상적인 비디오 부호화기의 구성 예시도,
도 2는 본 발명의 실시 예에 따른 비디오 부호화기의 구성 예시도,
도 3은 본 발명의 실시 예에 따른 비디오 부호화기에서 현재 버퍼의 가용용량에 따라 비디오 데이터 프레임을 스킵하는 동작의 흐름을 보이는 흐름도,
도 4는 본 발명의 실시 예에 따른 비디오 부호화기에서 프레임을 부호화하고, 용량 정보를 저장하는 동작의 흐름을 보이는 흐름도,
도 5는 본 발명의 실시 예에 따른 비디오 부호화기에서 프레임을 스킵하고 스킵 카운트값을 재설정하는 동작의 과정을 보이는 흐름도,
도 6은 본 발명의 실시 예에 따른 비디오 부호화기에서 현재 선택된 프레임이 최종 프레임 직전의 프레임인 경우 버퍼의 가용용량에 따라 기 설정된 스킵 위치에 상관없이 스킵하는 동작의 과정을 보이는 흐름도,
도 7은 현재 선택된 프레임이 I 프레임 또는 제1 P 프레임인 경우 이를 부호화하는 동작의 과정을 보이는 흐름도,
도 8은 본 발명의 실시 예에 따른 비디오 부호화기에서 현재 선택된 프레임이 최종 프레임 직전의 프레임인 경우, 버퍼의 가용용량이 I 프레임과 제1 P 프레 임을 수용하기에 충분하지 여부에 따라 스킵하는 동작의 과정을 보이는 흐름도.
본 발명은 비디오 데이터의 프레임 부호화에 관한 것으로, 특히 송신단의 비디오 부호화기에서 비트율을 제어하기 위해 비디오 프레임의 일부 프레임들을 스킵(skip)하는 장치 및 방법에 관한 것이다.
일반적으로 비디오 부호화기는 부호화 방법에 있어서 융통성(flexibility)을 제공하기 때문에 다양한 결과(video sequences)를 가질 수 있다. 하지만 무선 네트워크 환경에서는 전송 채널에 대한 제약(constraint)이 따르게 된다. 이러한 제약의 예를 들어보면, 일반적으로 무선 네트워크 환경에서 고정적으로 사용되는 비트수(예 : 384kb)에 대한 제약을 들 수 있다. 이에 따라 무선 네트워크 환경에서 비디오 프레임 데이터를 송신하는 송신단에서는 이를 고려해서 비트수를 제한하여 비디오 프레임의 부호화를 수행한다.
그리고 통상적인 비디오 부호화기는 이러한 제약에 따라 수신단에 송출되는 비트수를 제한하기 위해 버퍼(buffer)를 구비한다. 도 1은 이러한 통상적인 비디오 부호화기의 구성을 도시한 구성 예를 보이는 도면이다.
도 1을 참조하여 살펴보면, 비디오 데이터 생성부(100)로부터 비디오 데이터가 생성되면 이 비디오 데이터들은 GOP(Group Of Picture) 형태로 각각의 장면마다 양자화(Quantization)된 프레임 형태로 비디오 부호화기(102)에 입력된다. 그러면 비디오 부호화기(102)는 상기 입력된 비디오 데이터 프레임들을 인코더(106)로 보내어 부호화하고, 부호화된 프레임들을 버퍼(108)에 입력하여 일정한 비트율로 송출부(104)를 통해 송출한다. 이는 비디오 부호화기(102)의 부호화 방법에 있어서 상술한 바와 같이 융통성을 가지기 때문에, 그 비트수가 유동적으로 변화될 수 있기 때문이다. 따라서 일반적인 비디오 부호화기(102)는 상술한 바와 같이 버퍼(108)를 구비하여 송출되는 부호화된 프레임의 비트수를 일정하게 유지하도록 함으로써 CBR(constant Bit Rate)을 유지하도록 한다.
이러한 통상적인 비디오 부호화기(102)에서는 상술한 바와 같은 비트수 제한을 위해 비디오 데이터 프레임의 양자화 값(quantization parameter)을 변경하여 비디오 데이터를 생성하는 방법을 사용한다. 이는 비디오 데이터 프레임 생성시 생성되는 비디오 데이터의 비트량을 제어하는 것으로서, 양자화 값을 크게 하면 비디오 데이터 프레임의 비트수가 적어지고, 양자화 값을 작게 하면 비디오 데이터 프레임의 비트수는 많아진다.
그런데 버퍼(108)는 용량에 한계가 있기 마련이다. 따라서 이러한 통상적인 비디오 부호화기(102)에서는 버퍼링되는 비디오 데이터 프레임들의 용량이 버퍼(108)의 저장 용량을 초과하는 것을 방지하기 위해 상한계선(upper bound)을 정의하여 발생된 비트가 이들 범위 안에 존재하도록 제어한다.
하지만 상기한 바와 같이, 양자화 값을 변경하는 방법을 이용한다고 할지라도 부호화된 비트수가 현재 설정된 제한에 따른 환경에 적합하지 않은 경우가 발생 할 수 있다. 즉, 예를 들어 양자화 값을 최대로 설정한다고 하여도 부호화된 비디오 프레임의 비트수가 기 설정된 버퍼의 상한계선을 초과하는 경우가 생길 수 있다. 예를 들어 특히 움직임이 크고 복잡한 영상에서는, 움직임 예측 이후, 오차(residual) 데이터가 많아져서 비트수가 상기 상한계선을 넘는 경우가 발생하게 된다. 이러한 경우 통상적인 비디오 부호화기(102)는 고정 비트율이라는 제한 조건을 만족시키기 위해 다음 프레임을 스킵하게 된다. 그러면 다음 프레임을 부호화 할 때는 해당 프레임을 스킵하였기 때문에 발생된 비트가 0 이 되어 버퍼 내의 비트 양은 송출된 양만큼 줄어들게 된다.
그런데 통상적인 비디오 부호화기(102)는, 버퍼의 저장 용량이 상한계선을 넘어서는 오버플로우(over-flow)가 발생될 경우, 단순히 버퍼의 비트 양에 따라 프레임 스킵을 수행한다. 따라서 해당 프레임이 I 프레임이든 P 프레임이든 상관없이 스킵을 수행한다. 그런데 일반적으로 I 프레임과 최초의 P 프레임(이하 제1 P 프레임이라 칭한다)은, 해당 GOP(Group Of Picture)내의 다른 프레임들에 대한 참조 프레임이 된다. 따라서 I 프레임을 비롯하여, GOP 시작 부분의 P 프레임은 이 후의 다른 프레임에 많은 영향을 미치기 때문에 매우 중요하다. 그러나 통상적인 비디오 부호화기(102)는 이러한 점을 전혀 고려하지 않고 프레임 스킵을 수행하기 때문에 상황에 따라 I 프레임이나 특정 GOP의 시작 부분에 해당되는 P 프레임과 같은 중요한 프레임이 스킵될 수 있다. 이러할 경우 스킵된 프레임 이후의 움직임 예측 시에 오차가 커지게 되고 점차 큰 오차가 전파되어 화질에 큰 영향을 줄 수 있다.
또한 격렬한 운동 경기에서처럼 갑자기 움직임이 많아지는 경우에는, 순간적 으로 몇 장의 프레임에 많은 비트가 할당되어 다음 프레임부터는 다량의 연속된 스킵이 일어날 수 있다. 여기서 움직임이 많은 부분은 매우 중요한 부분이다. 그리고 연속적으로 스킵이 일어나는 경우, 스킵된 부분이 어떤 내용으로 이루어졌는지 알 수도 없을 뿐더러 전체적인 화질 열화에 매우 악영향을 끼치게 된다는 문제점이 있다.
그러므로 본 발명의 목적은, 효율적으로 프레임들의 부호화 스킵 위치를 설정하여 다른 프레임들에 비해 중요도가 높은 참조 프레임들의 스킵을 방지할 수 있도록 하는 비디오 부호화기 및 비디오 데이터 프레임 부호화 방법을 제공함에 있다.
또한 본 발명의 다른 목적은, 중요도가 높은 참조 프레임들의 스킵을 방지하면서도 연속적인 스킵이 일어나는 것을 방지하여 전체적인 화질 열화를 방지할 수 있는 비디오 부호화기 및 비디오 데이터 프레임 부호화 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 발명의 비디오 부호화기는, 수신된 비디오 데이터 프레임이 부호화되었을 경우의 전체 부호화 용량을 예측하며, 상기 수신된 비디오 데이터 프레임들 중 스킵이 결정된 위치에 대응되는 비디오 데이터 프레임을 제외한 비디오 데이터 프레임들을 부호화하여 출력하는 인코더(encoder)와, 상기 인코더로부터 부호화된 비디오 데이터 프레임들을 버퍼링(buffering)하는 버퍼(buffer)와, 상기 버퍼의 가용 용량을 체크하는 가용용량 측정부와, 상기 인코더로부터 상기 전체 부호화 용량 정보를 입력받고, 상기 가용용량 측정부로부터 상기 가용 용량 정보를 입력받아 서로 비교하여 오버플로우(overflow) 용량을 예측하는 오버플로우 용량 측정부와, 상기 인코더로부터 출력되는 부호화 데이터의 용량 정보를 체크하여 이를 저장하고, 저장된 부호화 데이터의 평균 용량을 산출하는 평균 용량 산출부와, 상기 예측된 오버플로우 용량 및 상기 산출된 평균 용량을 이용하여, 오퍼플로우가 예상되는 부호화된 프레임들의 개수를 측정하고, 오버플로우가 예측되는 부호화된 프레임들의 개수에 따라, 부호화가 스킵될 비디오 데이터 프레임들의 위치를 결정하는 P 프레임 스킵 추정부를 포함한다.
또한 비디오 데이터 프레임 부호화 방법은, 상기 입력된 비디오 데이터 프레임들에 해당하는 GOP(Group Of Picture) 전체의 프레임들이 부호화되었을 경우의 전체 부호화 용량을 예측하는 전체 부호화 용량 예측 단계와, 기 설정된 부호화 순서에 따라 상기 입력된 비디오 데이터 프레임들 중 어느 하나를 선택하고, 선택된 비디오 데이터 프레임이 상기 GOP의 I 프레임 또는 첫 번째 P 프레임인 제1 P 프레임인지 여부를 체크하고, 선택된 비디오 데이터 프레임이 I 프레임 또는 상기 제1 P 프레임인 경우 이를 부호화하는 프레임 체크 단계와, 상기 프레임 체크 결과, 현재 선택된 비디오 데이터 프레임이 I 프레임 또는 상기 제1 P 프레임이 아닌 경우, 기 설정된 프레임 스킵(skip) 위치가 있는지 체크하는 스킵 위치 체크 단계와, 상기 스킵 위치 체크 결과, 기 설정된 프레임 스킵 위치가 없는 경우, 상기 GOP 이전 에 부호화된 GOP의 P 프레임들로부터 추출된 평균 용량 및 상기 비디오 부호화기의 버퍼 가용용량에 따라 스킵 위치를 설정하는 스킵 위치 설정 단계와, 상기 스킵 위치 체크 결과, 기 설정된 프레임 스킵 위치가 있는 경우, 현재 부호화가 선택된 비디오 데이터 프레임이 상기 기 설정된 프레임 스킵 위치에 대응되는 것인지 아닌지를 판단하고, 판단 결과에 따라 상기 현재 부호화가 선택된 비디오 데이터 프레임의 부호화를 수행하는 부호화 단계를 포함한다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 도면들 중 동일한 구성 요소들은 가능한 한 어느 곳에서든지 동일한 부호들로 나타내고 있음에 유의하여야 한다. 하기 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
먼저 본 발명의 완전한 이해를 돕기 위해, 본 발명의 기본 원리를 설명하면, 본 발명에서는, 비디오 부호화기의 인코더가 부호화될 비디오 데이터 프레임들의 전체 용량을 체크하고, 이전의 GOP로부터 추출한 P 프레임들의 평균 용량을 이용하여 상기 체크된 전체 용량에 따라 앞으로 부호화될 P 프레임의 개수를 예측한다. 그리고 상기 버퍼의 가용용량에 따라 예측된 P 프레임의 개수로부터 버퍼의 오버플로우로 인해 스킵될 프레임들의 개수를 측정한다. 그리고 측정된 P 프레임의 개수 및 GOP의 프레임 개수에 따라 연속되지 않도록 스킵될 P 프레임의 위치를 설정한다. 그리고 상기 비디오 데이터 프레임들의 부호화를 수행하면서, 현재 부호화가 선택된 비디오 데이터 프레임이 상기 스킵될 P 프레임의 위치에 해당되는 위치의 프레임인 경우 상기 비디오 데이터 프레임의 부호화를 스킵한다. 여기서 상기 스킵 되는 프레임들은 상기 비디오 데이터 프레임 중 다른 비디오 데이터 프레임들의 참조 프레임이 되는 I 프레임 또는 제1 P 프레임을 제외한 P 프레임들 중에서 결정된다.
도 2는 이러한 본 발명의 실시 예에 따른 비디오 부호화기의 구성 예를 보이고 있는 도면이다.
도 2를 참조하여 살펴보면 본 발명의 실시 예에 따른 비디오 부호화기(200)는 비디오 데이터 생성부(100)로부터 프레임들로 이루어진 비디오 데이터들을 수신하고, 상기 비디오 데이터 프레임들이 모두 부호화되었을 경우의 전체 부호화 용량을 체크하는 용량 예측부(262)를 포함하며, 상기 수신된 비디오 데이터 프레임들 중 기 설정된 스킵 위치에 해당되지 않는 비디오 데이터 프레임들만을 기 설정된 부호화 방식에 따라 부호화하는 인코더(encoder)(250)와, 상기 인코더(250)로부터 부호화된 프레임들을 수신하여 일정한 비트수를 출력하는 버퍼(buffer)(252), 그리고 상기 버퍼(252)의 가용용량을 측정하는 가용용량 측정부(256), 그리고 상기 버퍼(252)의 가용용량 및 상기 인코더(250)로부터 상기 체크된 전체 부호화 용량을 수신하여 오퍼플로우될 용량을 측정하는 오버플로우 용량 측정부(254), 그리고 상기 인코더(250)로부터 출력되는 P 프레임들의 용량 정보를 체크하고 이를 저장하며, 상기 저장된 P 프레임들의 평균 용량을 산출하여 저장하는 P 프레임 평균 용량 계산부(260) 및, 상기 오버플로우 용량 측정부(254)로부터 수신한 오버플로우 용량을 상기 P 프레임 평균 용량 계산부(260)로부터 수신한 P 프레임들의 평균 용량에 따라 계산하여 스킵될 P 프레임의 개수를 측정하는 P 프레임 개수 예측부(264)를 구비하여 이를 통해 예측된 P 프레임 개수에 따라 스킵될 P 프레임들의 위치를 설정하여 상기 인코더(250)에 입력하는 P 프레임 스킵 위치 추정부(258)를 포함한다.
이를 상세히 살펴보면, 본 발명의 실시 예에 따른 비디오 부호화기(200)의 인코더(250)는 상기 비디오 데이터 생성부(100)로부터 비디오 데이터 프레임들이 수신되면, 상기 용량 예측부(262)를 통해 현재 수신된 비디오 데이터 프레임들을 포함하는 GOP 전체의 부호화 용량을 예측한다. 그리고 상기 예측된 GOP 전체의 부호화 용량을 오버플로우 용량 측정부(254)에 입력한다.
그리고 상기 수신된 비디오 데이터 프레임이 I 프레임 또는 제1 P 프레임인 경우에는 바로 부호화를 수행하여 이를 버퍼(252)로 출력한다. 그러나 만약 현재 수신된 비디오 데이터 프레임이 I 프레임 또는 제1 P 프레임이 아닌 경우에는 현재 기 설정된 스킵 위치가 있는지 여부를 체크하고, 기 설정된 스킵 위치가 있는 경우, 현재 선택된 비디오 데이터 프레임이 기 설정된 스킵 위치에 해당되는 프레임인지 여부를 체크한다. 여기서 상기 기 설정된 스킵 위치는 상기 P 프레임 스킵 위치 추정부(258)에 의해 설정되는 스킵 카운트값에 의해 설정될 수 있다. 즉, 예를 들어 스킵 카운트값이 ‘6’인 경우, 하나의 비디오 데이터 프레임이 부호화될 때마다 스킵 카운트값은 하나씩 줄어들고, 마침내 스킵 카운트값이 ‘0’이 되는 경우, 그 때에 부호화가 선택되는 비디오 데이터 프레임에 대해서는 부호화를 스킵할 수도 있다.
그리고 만약 현재 부호화가 선택된 비디오 데이터 프레임이 현재 부호화가 수행중인 GOP의 최종 프레임 직전의 P 프레임인 경우라면, 상기 스킵 위치에 상관 없이 버퍼(252)의 가용용량에 따라 이를 부호화를 스킵할 수도 있음은 물론이다. 다음 GOP의 I 프레임 또는 제1 P 프레임의 부호화 시 버퍼(252)의 용량 한계로 인한 다음 GOP의 I 프레임 또는 제1 P 프레임의 스킵을 방지하기 위함이다.
그리고 버퍼(252)는 상기 인코더(250)로부터 입력되는 부호화된 프레임들을 순차적으로 송출부(104)에 출력한다. 그리고 가용용량 측정부(256)는 상기 버퍼(252)의 현재 가용용량을 지속적으로 체크하여 이를 오버플로우 용량 측정부(254)로 입력한다. 그러면 상기 오버플로우 용량 측정부(254)는 상기 인코더(250)의 용량 예측부(262)로부터 측정된 상기 GOP 전체의 부호화 용량을 상기 가용용량 측정부(256)에서 측정된 버퍼(252)의 가용용량과 비교한다. 그리고 오버플로우가 발생하게 될지 그렇지 않을지를 판단하고, 오버플로우가 예상되는 경우 오버플로우 용량을 체크한다.
그리고 P 프레임 평균 용량 계산부(260)는 상기 인코더(250)로부터 출력되는 P 프레임의 용량을 체크하여 이를 P 프레임 평균 용량 계산부(260)의 메모리부(266)에 저장한다. 그리고 P 프레임 평균 용량 계산부(260)는 하나의 GOP에 대한 부호화가 종료되는 경우, 즉, 상기 버퍼(252)로부터 출력되는 P 프레임이 특정한 GOP의 최종 비디오 데이터 프레임에 대한 부호화된 P 프레임(이하 최종 P 프레임이라 칭한다)인 경우, 그 P 프레임에 대한 용량 정보가 상기 메모리부(266)에 저장되면 해당 그 최종 P 프레임에 해당되는 GOP의 P 프레임들에 대한 용량들의 평균을 산출한다. 그리고 산출된 P 프레임 평균 용량을 저장한다.
그리고 P 프레임 스킵 위치 추정부(258)는 상기 오버플로우 용량 측정 부(254)로부터 상기 용량 예측부(262)가 예측한 GOP 전체의 부호화 용량에 대한 정보를 입력받는다. 그리고 상기 P 프레임 평균 용량 계산부(260)로부터 상기 P 프레임 평균 용량 정보를 입력받는다. 그리고 상기 P 프레임 평균 용량 정보가 입력되면 기 설정된 스킵 위치를 초기화한다. 여기서 만약 스킵 카운트값을 이용하여 스킵 위치를 설정하는 경우라면, 상기 스킵 카운트값을 초기화한다. 그리고 P 프레임의 용량이 상기 P 프레임 평균 용량 정보에 따른 용량과 같을 경우, 상기 GOP 전체의 부호화 용량에 따른 총 P 프레임의 개수를 예측한다. 즉 예를 들어 P 프레임 평균 용량이 350Kb(Kilobyte)인 경우 GOP 전체의 부호화 용량이 10500kb인 경우라면, 예상 P 프레임의 개수는 30개가 된다.
그리고 P 프레임 스킵 위치 추정부(258)는 구비된 P 프레임 개수 예측부(264)를 통해 오버플로우 용량에 따른 P 프레임의 개수들을 예측한다. 즉, P 프레임 개수 예측부(264)는 상기 산출된 P 프레임들 중, 상기 오버플로우 용량 측정부(254)에서 측정된 오버플로우 용량에 대응되는 P 프레임들을 예측한다. 즉, 예를 들어 현재 버퍼의 가용 용량이 9800kb라면 현재 오버플로우 용량 측정부(254)에서 측정된 오버플로우 용량은 700kb가 될 것이고, 그러면 상기한 바와 같이 P 프레임 평균 용량이 350kb인 경우 두개의 P 프레임이 용량을 초과하는 것으로 산출될 수 있다. 그러면 P 프레임 스킵 위치 추정부(258)는 현재 아직 부호화되지 않은 비디오 데이터 프레임들 중에서 상기 용량을 초과하는 것으로 산출된 P 프레임들의 개수가 두개로 예측한다.
그러면 P 프레임 스킵 위치 추정부(258)는 상기 예측된 P 프레임 개수에 따 라 스킵될 P 프레임들의 스킵 위치를 설정한다. 즉, 예를 들어 아직 부호화되지 않은 P 프레임의 개수가 28개인 경우라면, 상기한 경우(예측된 P 프레임의 개수가 두개인 경우) 프레임들의 스킵 위치는 28개를 2로 나눈 값, 즉 14개마다 하나씩 P 프레임을 스킵하도록 설정할 수 있다. 그리고 이러한 경우 스킵 카운트값을 ‘14’로 설정할 수 있다. 그리고 이러한 스킵 카운트값을 상기 인코더(250)에 입력하여, 상기 인코더(250)가, 하나의 비디오 데이터 프레임이 부호화될 때마다 현재 설정된 스킵 카운트값을 하나씩 감산함으로써 스킵 카운트값이 ‘0’이 되는 경우 해당 비디오 데이터 프레임의 부호화를 스킵하도록 하거나, 부호화된 프레임의 카운트값이 상기 P 프레임 스킵 위치 추정부(258)로부터 입력된 값과 같아지는 경우 해당 비디오 데이터 프레임의 부호화를 스킵하도록 할 수 있다. 그리고 상기 프레임의 부호화가 스킵되는 경우 상기 인코더(250)는 스킵 카운트값 또는 부호화된 프레임의 카운트값을 초기화하여 다음 스킵될 위치의 비디오 프레임 데이터의 부호화를 스킵할 수 있도록 한다.
도 3은 본 발명의 실시 예에 따른 비디오 부호화기(200)가 현재 버퍼의 가용용량에 따라 비디오 데이터 프레임을 스킵하는 동작의 흐름을 도시한 흐름도이다.
도 3을 참조하여 살펴보면, 본 발명의 실시 예에 따른 비디오 부호화기(200)의 인코더(250)는 비디오 데이터 프레임이 입력되면 300단계로 진행하여 이를 수신한다. 그리고 상기 인코더(250)는 302단계로 진행하여 상기 입력된 비디오 데이터 프레임으로부터 전체 GOP 비디오 데이터 프레임들이 부호화되었을 경우의 전체 부호화 용량을 체크한다. 그리고 상기 인코더(250)는 304단계로 진행하여 상기 수신 된 비디오 데이터 프레임들 중 부호화될 비디오 데이터 프레임을 선택한다. 그리고 인코더(250)는 306단계로 진행하여 현재 선택된 비디오 데이터 프레임이 I 프레임 또는 제1 P 프레임인지 여부를 체크한다. 여기서 상기 인코더(250)가 상기 선택된 비디오 데이터 프레임이 I 프레임인지 제1 P 프레임인지 여부는, 상기 수신된 비디오 데이터 프레임의 헤더 정보 등을 통해서 알 수 있다.
그리고 상기 인코더(250)는 현재 선택된 비디오 데이터 프레임이 I 프레임 또는 제1 P 프레임인 경우라면 308단계로 진행하여 현재 선택된 비디오 데이터 프레임의 부호화를 무조건 수행한다. 그리고 부호화가 완료되면 이를 버퍼(252)로 출력한다.
그런데 여기서 만약 현재 상기 버퍼(252)의 가용용량이 상기 I 프레임 또는 제1 P 프레임을 수용하기에 충분하지 않을 수도 있음은 물론이다. 따라서 만약 현재 상기 버퍼(252)의 가용용량이 상기 I 프레임 또는 제1 P 프레임을 수용하기에 충분하지 않다면, 현재 선택된 비디오 데이터 프레임이 I 프레임 또는 제1 P 프레임의 부호화를 스킵하게 된다.
따라서 이러한 경우가 발생하는 것을 방지하기 위해 상기 304단계는 상기 부호화될 비디오 데이터 프레임이 선택되면, 현재 선택된 비디오 데이터 프레임이 최종 프레임의 직전 프레임인지 여부를 체크하여 현재 버퍼(252)의 가용용량에 따라 이를 스킵할 수도 있다. 이러한 경우 만약 현재 선택된 비디오 데이터 프레임이 최종 프레임의 직전 프레임이라면 비디오 부호화기(200)는 상기 버퍼(252)의 현재 가용용량을 체크하여 상기 버퍼(252)의 가용용량이 I 프레임 또는 제1 P 프레임을 수 용하기에 충분한 용량인지 여부를 체크한다. 그리고 만약 상기 버퍼(252)의 가용용량이 I 프레임 및 제1 P 프레임을 수용하기에 충분하지 않은 경우라면 현재 선택된 비디오 데이터 프레임의 부호화를 스킵한다.
여기서 상기 버퍼(252)의 가용용량이 I 프레임 또는 제1 P 프레임을 수용하기에 충분한 용량인지 여부를 체크하는 방법은, 상기 버퍼(252)의 가용용량이 기 설정된 수준 이상인지 여부, 또는 이미 부호화가 완료된 이전 GOP들의 I 프레임의 용량 및 제1 P 프레임의 용량을 합한 용량들의 평균 이상인지 여부를 체크하는 방법이 있을 수 있다. 이하 상기 버퍼(252)의 가용용량이 기 설정된 수준 이상인지 여부에 따라 현재 선택된 비디오 데이터 프레임의 부호화 스킵을 수행하는 경우의 동작 흐름 예를 하기 도 6을 참조하여, 그리고 이미 부호화가 완료된 이전 GOP들의 I 프레임의 용량 및 제1 P 프레임의 용량을 합한 용량들의 평균 이상인지 여부에 따라 현재 선택된 비디오 데이터 프레임의 스킵을 수행하는 경우의 동작 흐름 예를 하기 도 8을 참조하여 자세히 살펴보기로 한다.
한편 상기 306단계에서 현재 선택된 비디오 데이터 프레임이 I 프레임 또는 제1 P 프레임이 아닌 경우라면, 인코더(250)는 310단계로 진행하여 상기 P 프레임 스킵 위치 추정부(258)로부터 스킵 카운트값이 입력되었는지, 즉 현재 측정된 스킵 위치가 있는지 여부를 체크한다. 그리고 만약 현재 측정된 스킵 위치가 있는 경우라면, 322단계로 진행하여 현재 선택된 프레임이 기 설정된 스킵 위치에 해당되는 프레임인지 여부를 체크한다. 그리고 만약 현재 선택된 프레임이 기 설정된 스킵 위치에 해당되는 프레임인 경우라면 인코더(250)는 324단계로 진행하여 해당 선택 된 프레임의 부호화를 스킵한다. 그러나 만약 현재 선택된 프레임이 기 설정된 스킵 위치에 해당되는 프레임이 아닌 경우라면 인코더(250)는 326단계로 진행하여 현재 선택된 비디오 데이터 프레임의 부호화를 수행한다. 그리고 상기 322단계 또는 324단계가 완료되면, 인코더(250)는 다시 304단계로 진행하여 부호화를 수행할 다음 차례의 비디오 데이터 프레임을 선택한다.
그리고 상기 326단계에서 본 발명의 실시 예에 따른 비디오 부호화기(200)는 P 프레임 평균 용량 계산부(260)를 통해 현재 부호화가 완료된 P 프레임의 용량을 체크하고 이를 저장하는 과정을 더 수행할 수 있다. 이는 상술한 바와 같이 본 발명의 실시 예에 따른 비디오 부호화기(200)가 스킵될 프레임들의 위치 설정을 위해 이전 GOP의 P 프레임들의 평균 용량을 사용하기 때문이다. 그리고 만약 현재 부호화된 P 프레임이 현재 부호화중인 GOP의 마지막 P 프레임인 경우라면 상기 P 프레임의 용량 정보가 저장된 다음 현재 부호화가 완료된 GOP의 P 프레임들의 평균 용량을 산출하여 이를 저장하는 과정을 더 수행할 수도 있다. 이러한 동작을 하기 도 4를 참조하여 자세히 살펴보기로 한다.
한편 상기 310단계에서 기 설정된 측정된 스킵 위치가 없는 경우라면, 본 발명의 실시 예에 따른 비디오 부호화기(200)는 312단계로 진행하여 가용용량 측정부(256)를 통해 현재 버퍼(252)의 가용용량을 체크한다. 그리고 상기 버퍼(252)의 가용용량 측정부(256)의 가용용량이 체크되면 비디오 부호화기(200)는 314단계로 진행하여 상기 예측된 전체 부호화 용량을 상기 체크된 버퍼(252)의 가용용량과 비교하여 오버플로우가 예상되는 용량을 체크한다.
그리고 비디오 부호화기(200)는 316단계로 진행하여 상기 P 프레임 평균 용량 계산부(260)에 저장된 이전 GOP의 P 프레임 평균 용량에 대한 정보를 로드(Load)한다. 그리고 비디오 부호화기(200)는 318단계로 진행하여 P 프레임 스킵 위치 추정부(258)를 통해 상기 로드된 P 프레임 평균 용량에 따라 현재 오버플로우된 P 프레임의 개수를 예측한다. 여기서 상기 P 프레임 스킵 위치 추정부(258)는 상기 예측된 전체 부호화 용량을 상기 로드된 P 프레임 평균 용량에 따라 예상되는 전체 P 프레임의 개수를 예측하고, 예측된 P 프레임들 중에서 상기 오버플로우된 용량에 따른 P 프레임의 개수를 산출할 수 있다. 또는 상기 P 프레임 스킵 위치 추정부(258)는 상기 314단계에서 예측된 오버플로우 용량을 상기 로드된 P 프레임 평균 용량으로 바로 연산하여 오버플로우될 P 프레임의 개수를 예측할 수도 있다.
그리고 상기 318단계의 결과, 오버플로우될 P 프레임들의 개수가 예측되면, P 프레임 스킵 위치 추정부(258)는 현재 아직 부호화되지 않은 P 프레임들(제1 P 프레임 제외)의 개수와 상기 예측된 오버플로우될 P 프레임의 개수를 연산하여 스킵될 P 프레임의 위치를 설정할 수 있다. 이러한 스킵 위치는 하기 수학식 1을 통해 연산되는 스킵 카운트값에 따라 설정될 수 있다.
SC = Tf / Pf
SC : Skip Count(스킵 카운트값)
Tf : Total Frame(아직 부호화되지 않은 전체 프레임 개수)
Pf : Prediction Frame(예측된 오버플로우 P 프레임 개수)
즉, 예를 들어 상술한 바와 같이 현재 아직 부호화되지 않은 P 프레임의 개수가 28개(GOP의 총 프레임 개수가 30개일 경우, I 프레임과 제1 P 프레임을 제외한 프레임들의 수 - 본 발명에서는 I 프레임과 제1 P 프레임은 스킵 위치 설정과 관계없이 무조건 부호화 수행하기 때문)인 경우, 상기 예측된 오버플로우될 P 프레임의 개수가 2개라면, 스킵 카운트값은 ‘28’을 ‘2’로 나눈 값 ‘14’로 설정될 수 있다. 그러면 P 프레임 스킵 위치 추정부(258)는 상기 스킵 카운트값을 인코더(250)에 입력하고, 인코더(250)는 현재 부호화가 선택된 비디오 데이터 프레임이 상기 입력된 스킵 카운트값에 따라 부호화 스킵이 설정된 프레임인지 여부를 체크한다. 그리고 해당 비디오 데이터 프레임이 스킵이 설정된 프레임인 경우 부호화를 스킵한다.
즉, 예를 들어 상기 스킵 카운트값이 ‘14’인 경우라면 인코더(250)는 비디오 데이터 프레임 14개중 1개씩을 스킵한다. 따라서 I 프레임과 제1 P 프레임을 제외한 비디오 데이터 프레임의 개수가 28개라면, 서로 연속되지 않는 2개의 비디오 데이터 프레임, 즉 I 프레임과 제1 P 프레임을 제외한 비디오 데이터 프레임들 중 14번째 비디오 데이터 프레임(14번째 P 프레임)과 28번째 비디오 데이터 프레임(28번째 P 프레임)의 부호화가 스킵될 수 있다. 따라서 본 발명의 실시 예에 따른 비디오 부호화기에서는 다른 프레임들에 비해 중요도가 높은 참조 프레임들의 스킵을 방지할 수 있으며, 또한 연속적인 스킵이 일어나는 것을 방지하여 전체적인 화질 열화를 방지할 수 있다는 효과가 있다.
도 4는 상술한 바와 같이 현재 부호화된 P 프레임이 현재 부호화중인 GOP의 마지막 P 프레임인 경우, 그 P 프레임의 용량 정보가 저장된 다음 현재 부호화가 완료된 GOP의 P 프레임들의 평균 용량을 산출하여 이를 저장하는 과정을 상세하게 보이고 있는 동작의 흐름도이다. 이하 도 4의 설명에서는 P 프레임 스킵 위치 추정부(258)에서 스킵 카운트값을 인코더(250)에게 제공하여 부호화가 스킵될 프레임의 위치를 설정하는 방법을 사용하는 것을 가정하여 설명하기로 한다. 그리고 인코더(250)가 프레임이 하나 부호화될 때마다 스키 카운트값을 하나씩 감산하여 스킵 카운트값이 ‘0’이 되는 경우에 해당 비디오 데이터 프레임의 부호화를 스킵하는 것을 가정하여 설명하기로 한다. 그러나 이들은 본 발명의 실시 예에 불과할 뿐 스킵 카운트값을 이용하여 부호화될 프레임의 스킵 위치를 설정하는 것 또는 스킵 카운트값을 감산하여 스킵 카운트값이 ‘0’이 되는 때에 프레임의 부호화를 스킵하는 것이 본 발명의 범위가 이에 한정되는 것은 아니다.
도 4를 참조하여 살펴보면, 상기 322단계에서 현재 선택된 비디오 데이터 프레임이 기 설정된 스킵 위치에 해당되는 프레임인 경우, 본 발명의 실시 예에 따른 비디오 부호화기(200)의 인코더(250)는 400단계로 진행하여 현재 선택된 비디오 데이터 프레임의 부호화를 수행한다. 그리고 인코더(250)는 402단계로 진행하여 P 프레임 스킵 위치 추정부(258)로부터 입력된 스킵 카운트값을 하나 감산한다. 그리고 인코더(250)에서 부호화된 P 프레임이 출력되면, 본 발명의 실시 예에 따른 비디오 부호화기(200)는 P 프레임 평균 용량 계산부(260)를 통해 상기 출력된 P 프레임의 용량을 체크하여 이를 메모리부(266)에 저장한다.
그리고 P 프레임 평균 용량 계산부(260)는 현재 인코더(250)로부터 출력된 P 프레임이 해당 GOP의 마지막 부호화된 프레임인지 여부를 체크한다. 여기서 상기 P 프레임 평균 용량 계산부(260)는 현재 인코더(250)에서 출력된 P 프레임이 해당 GOP의 마지막 부호화된 프레임인지 여부를 확인하기 위해, 현재 출력된 P 프레임의 헤더 정보를 체크하는 방법을 사용할 수도 있으며, 아니면 현재 인코더(250)에서 출력되는 프레임이 I 프레임인 경우, 현재 메모리부(266)에 저장된 P 프레임이 특정 GOP의 마지막 P 프레임으로 인식하는 방법을 사용할 수도 있다.
그리고 상기 406단계의 체크 결과, 현재 출력된 P 프레임이 특정 GOP의 마지막 부호화된 프레임이 아닌 경우라면, 비디오 부호화기(200)는 다시 304단계로 진행하여 다음 차례의 부호화될 비디오 데이터 프레임을 선택한다. 그러나 만약 상기 406단계의 체크 결과, 현재 출력된 P 프레임이 특정 GOP의 마지막 부호화된 프레임인 경우라면, 비디오 부호화기(200)는 408단계로 진행하여 P 프레임 평균 용량 계산부(260)를 통해 현재 메모리부(266)에 저장된 P 프레임들의 용량들에 대한 평균값을 계산하여 평균 P 프레임의 용량을 산출한다.
그리고 비디오 부호화기(200)의 P 프레임 평균 용량 계산부(260)는 상기 산출된 P 프레임의 평균 용량을 P 프레임 평균 용량 계산부(260)의 메모리부(266)에 저장한다. 그리고 이를 P 프레임 스킵 위치 추정부(258)에 입력한다. 그러면 상기 P 프레임 스킵 위치 추정부(258)는 상기 P 프레임의 평균 용량이 입력되는 경우 현재 설정된 스킵 카운트값을 초기화한다. 따라서 새로운 GOP의 비디오 데이터 프레임들의 부호화가 수행되는 경우, 본 발명의 실시 예에 따른 비디오 부호화기는 이전 GOP 비디오 데이터 프레임들 중 I 프레임과 제1 P 프레임을 제외한 P 프레임들 의 평균 용량을 이용하여 새로운 스킵 카운트값을 설정하여 새로운 스킵 위치들을 추정하게 된다.
그런데, 이러한 스킵 카운트값의 재설정 과정은 하나의 GOP에 따른 비디오 데이터들의 부호화가 모두 완료되었을 때만이 아니라 어느 하나의 비디오 데이터 프레임 부호화 스킵이 발생한 경우에도 일어날 수 있음은 물론이다. 이런 경우에는 상기 P 프레임 평균 용량 계산부(260)가 하나의 GOP가 종료되었을 때, 이전 GOP의 평균 P 프레임 용량을 계산하는 것이 아니라, 현재 인코더(250)에서 출력되는 P 프레임의 용량 정보들을 저장하였다가, 부호화 스킵이 발생하는 때에 그 당시까지 부호화가 완료된 P 프레임의 평균 용량을 계산할 수도 있음은 물론이다.
도 5는 이러한 경우, 즉 프레임 부호화의 스킵이 발생하는 경우에 스킵 위치를 재설정하는 경우의 동작 과정을 상세히 보이는 흐름도이다.
도 5를 참조하여 살펴보면, 본 발명의 실시 예에 따른 비디오 부호화기(200)의 인코더(250)는 322단계에서 현재 부호화가 선택된 비디오 데이터 프레임이 기 설정된 스킵 위치에 따른 프레임인 경우 500단계로 진행하여 현재 부호화가 선택된 비디오 데이터의 부호화를 스킵한다. 그리고 502단계로 진행하여 버퍼(252)의 현재 가용용량을 체크한다. 그리고 비디오 부호화기(200)는 오버플로우 용량 측정부(254)를 통해 현재 수신된 비디오 데이터 프레임들 중 아직 부호화가 되지 않은 나머지 용량과 현재 버퍼의 가용용량을 체크하여 현재 시점에서의 오버플로우 용량을 체크한다.
그리고 비디오 부호화기(200)는 506단계로 진행하여 P 프레임 스킵 위치 추 정부(258)를 통해, 상기 체크된 오버플로우 용량에 따른 오버플로우 P 프레임 개수를 체크한다. 여기서 상기 오버플로우 P 프레임 개수를 체크하기 위한 평균 P 프레임 용량은, P 프레임 평균 용량 계산부(260)로부터 계산된, 현재 부호화중인 GOP의 P 프레임들 중 현재까지 부호화가 완료된 P 프레임들의 평균 용량이 될 수 있다.
그리고 비디오 부호화기(200)는 508단계로 진행하여 체크된 P 프레임 개수에 따라 스킵 위치를 재설정한다. 여기서 상기 스킵 위치를 재설정하는 것은 스킵 카운트값을 재설정하는 과정이 될 수도 있다. 따라서 이러한 경우 특정 비디오 데이터 프레임의 부호화가 스킵되면, 현재 버퍼(252)의 가용용량에 따라 새로운 스킵 카운트값이 재설정될 수 있다. 따라서 초기 예상과는 달리 비디오 데이터 프레임을 부호화하였을 때의 용량이 이전의 P 프레임 평균 용량과 큰 차이가 나는 경우에도 본 발명에서는 현재까지 부호화된 P 프레임의 평균 용량을 이용하여 보다 정확하게 오버플로우 용량을 예측하고 이에 따라 P 프레임의 스킵 위치를 설정할 수 있다.
도 6은 상기 304단계에서 현재 선택된 비디오 데이터 프레임이 최종 프레임의 직전 프레임인지 여부를 체크하여 현재 버퍼(252)의 가용용량에 따라 이를 스킵하는 경우의 동작 과정을 도시한 도면이다. 이는 상술한 바와 같이 본 발명의 실시 예에서 보이고 있는 바와 같이 프레임의 부호화를 스킵한다고 할지라도, 현재 버퍼(252)의 가용용량이 I 프레임 및 제1 P 프레임을 수용하기에 충분하지 않은 경우 I 프레임 또는 제1 P 프레임이 스킵될 수 있는 경우를 방지하기 위한 것이다. 따라서 이러한 경우, 본 발명의 실시 예에 따른 비디오 부호화기(200)는 현재 부호화 중인 GOP의 P 프레임들 중 최종 프레임 외에, 기 설정된 스킵 위치와 상관없이 다 른 하나의 P 프레임을 버퍼(252)의 가용용량에 따라 더 스킵할 수 있도록 한다. 이는 본 발명의 실시 예에 따른 경우 일반적으로 최종 프레임은 스킵 위치에 해당되는 프레임이 되기 때문이다.
이러한 경우 본 발명의 실시 예에 따른 비디오 부호화기(200)의 인코더(250)는 302단계에서 부호화될 GOP의 전체 부호화 용량이 체크되면, 600단계로 진행하여 현재 부호화될 GOP의 비디오 데이터 프레임들을 기 설정된 순서에 따라 선택한다. 그리고 비디오 부호화기(200)의 인코더(250)는 602단계로 진행하여 현재 선택된 비디오 데이터 프레임이 상기 부호화될 GOP의 비디오 데이터 프레임들 중 최종 프레임 직전의 프레임인지 여부를 체크한다. 그리고 만약 현재 선택된 비디오 데이터 프레임이 상기 부호화될 GOP의 비디오 데이터 프레임들 중 최종 프레임 직전의 프레임이 아닌 경우라면 현재 측정된 스킵 위치가 있는지, 즉 예를 들어 현재 설정된 스킵 카운트값이 있는지 여부를 체크하는 310단계로 진행한다.
그러나 만약 상기 602단계의 판단 결과, 현재 선택된 비디오 데이터 프레임이 상기 부호화될 GOP의 비디오 데이터 프레임들 중 최종 프레임 직전의 프레임인 경우라면, 비디오 부호화기(200)는 가용용량 측정부(256)를 통해 체크된 버퍼(252)의 가용용량을 체크하고 체크된 버퍼(252)의 가용용량이 기 설정된 수준 미만인지 여부를 체크한다. 여기서 상기 기 설정된 버퍼(252)의 가용용량의 수준은, 버퍼 가용용량 최적화를 위한 실험의 결과 값으로서 설정되어 질 수 있다.
그리고 상기 604단계의 체크 결과, 현재 버퍼(252)의 가용용량이 기 설정된 수준미만인 경우가 아니라면, 비디오 부호화기(200)의 인코더(250)는 310단계로 진 행하여 현재 측정된 스킵 위치가 있는지 여부를 체크한다. 그러나 만약 상기 604단계의 체크 결과, 현재 버퍼(252)의 가용용량이 기 설정된 수준미만인 경우라면, 비디오 부호화기(200)의 인코더(250)는 606단계로 진행하여, 현재 부호화가 선택된 비디오 데이터 프레임의 부호화를 스킵한다. 그리고 다시 600단계로 진행하여 다음 부호화 순서에 따른 비디오 데이터 프레임을 선택한다.
한편 상기 도 6에서는 기 설정된 버퍼의 가용용량 수준을 정하여 두고, 이에 따라 최종 프레임 직전의 비디오 데이터 프레임의 부호화를 스킵하는 것을 설명하였으나, 미리 버퍼의 가용용량 수준을 설정하지 않고, 이미 부호화가 완료된 이전 GOP의 I 프레임 및 제1 P 프레임의 용량을 현재 버퍼의 가용용량과 비교하여, 최종 프레임 직전의 비디오 데이터 프레임 부호화를 스킵하도록 할 수 있음은 물론이다. 이러한 경우 P 프레임 평균 용량 계산부(260)는 인코더(250)로부터 I 프레임 및 제1 P 프레임이 출력되는 경우, 출력된 I 프레임과 제1 P 프레임의 용량 정보를 체크하여 이를 상기 P 프레임 평균 용량 계산부(260)의 메모리부(266)에 더 저장하고, 상기 저장된 I 프레임들의 평균 용량 및 제1 P 프레임의 평균 용량을 상기 P 프레임 평균 용량 계산부(260)가 더 계산한다.
이하 도 7과 도 8은 이러한 본 발명의 실시 예에 따라 현재 선택된 프레임이 최종 프레임 직전의 프레임인 경우, 버퍼의 가용용량이 I 프레임과 제1 P 프레임을 수용하기에 충분하지 여부에 따라 스킵하는 동작의 과정을 보이는 도면이다. 이 중 도 7은, 상기한 바와 같이 이전 GOP의 I 프레임 및 제1 P 프레임의 용량을 버퍼(252)의 가용용량과 비교하기 위해 이를 저장하는 과정 및 저장된 I 프레임 및 제1 P 프레임의 합산된 용량 평균을 산출하여 저장하는 동작 흐름을 도시한 도면이다. 그리고 도 8은 상기 도 7의 과정을 통해 I 프레임 및 제1 P 프레임의 용량 또는 상기 I 프레임 및 제1 P 프레임들의 용량 평균이 계산되어 있는 경우 이를 이용하여 최종 프레임 직전의 프레임에 대한 부호화를 스킵하는 동작 과정을 도시한 도면이다.
우선 도 7을 참조하여 살펴보면, 현재 선택된 비디오 데이터 프레임이 I 프레임 또는 제1 P 프레임인 경우, 비디오 부호화기(200)의 인코더(250)는 700단계로 진행하여 현재 선택된 I 프레임 또는 제1 P 프레임을 부호화한다. 그리고 상기 인코더(250)로부터 부호화가 완료된 I 프레임 또는 제1 P 프레임이 출력되면, P 프레임 평균 용량 계산부(260)는 702단계로 진행하여 상기 출력된 I 프레임 또는 제1 P 프레임의 용량 정보를 체크하여 이를 메모리부(266)에 저장한다.
그러면 P 프레임 평균 용량 계산부(260)는 704단계로 진행하여 현재 메모리부(266)에 저장된 I 프레임들의 평균 용량 및 현재 메모리부(266)에 저장된 제1 P 프레임들의 평균 용량을 산출한다. 그리고 I 프레임 평균 용량 및 제1 P 프레임 평균 용량이 산출되면 P 프레임 평균 용량 계산부(260)는 706단계로 진행하여 상기 산출된 I 프레임 평균 용량과 제1 P 프레임 평균 용량을 합산한 용량 합산 평균값을 메모리부(266)에 저장한다. 그리고 비디오 부호화기(200)는 다시 304단계로 진행하여 부호화될 다음 차례의 비디오 데이터 프레임을 선택한다.
이러한 경우, 본 발명의 실시 예에 따른 비디오 부호화기(200)는 I 프레임의 평균 용량 및 P 프레임의 평균 용량을 합산한 용량 합산 평균값을 가지게 된다. 그 리고 현재 부호화가 선택된 비디오 데이터 프레임이 최종 프레임의 직전 프레임인 경우, 상기 용량 합산 평균값과 현재 버퍼(252)의 가용용량에 따라 상기 부호화가 선택된 비디오 데이터 프레임의 부호화를 스킵한다. 도 8은 이러한 경우, 본 발명의 실시 예에 따른 동작을 자세히 도시하고 있는 도면이다.
도 8을 참조하여 살펴보면, 본 발명의 실시 예에 따른 비디오 부호화기(200)의 인코더(250)는 302단계에서 부호화될 GOP의 전체 부호화 용량이 체크되면, 800단계로 진행하여 현재 부호화될 GOP의 비디오 데이터 프레임들을 기 설정된 순서에 따라 선택한다. 그리고 비디오 부호화기(200)의 인코더(250)는 802단계로 진행하여 현재 선택된 비디오 데이터 프레임이, 상기 부호화될 GOP의 비디오 데이터 프레임들 중 최종 프레임 직전의 프레임인지 여부를 체크한다. 그리고 만약 현재 선택된 비디오 데이터 프레임이 상기 부호화될 GOP의 비디오 데이터 프레임들 중 최종 프레임 직전의 프레임이 아닌 경우라면 현재 측정된 스킵 위치가 있는지, 즉 예를 들어 현재 설정된 스킵 카운트값이 있는지 여부를 체크하는 310단계로 진행한다.
그러나 만약 상기 802단계의 판단 결과, 현재 선택된 비디오 데이터 프레임이 상기 부호화될 GOP의 비디오 데이터 프레임들 중 최종 프레임 직전의 프레임인 경우라면, 비디오 부호화기(200)는 가용용량 측정부(256)를 통해 체크된 버퍼(252)의 가용용량을 체크한다. 그리고 체크된 버퍼(252)의 가용용량이 상기 도 7의 과정에서 산출된 용량 합산 평균값, 즉 I 프레임 평균 용량과 제1 P 프레임의 평균 용량을 합산한 값 미만인지를 체크한다.
그리고 상기 804단계의 체크 결과, 현재 버퍼(252)의 가용용량이 상기 용량 합산 값 미만인 경우가 아니라면, 비디오 부호화기(200)의 인코더(250)는 310단계로 진행하여 현재 측정된 스킵 위치가 있는지 여부를 체크한다. 그러나 만약 상기 804단계의 체크 결과, 현재 버퍼(252)의 가용용량이 상기 용량 합산 평균값 미만인 경우라면, 비디오 부호화기(200)의 인코더(250)는 806단계로 진행하여, 현재 부호화가 선택된 비디오 데이터 프레임의 부호화를 스킵한다. 그리고 다시 800단계로 진행하여 다음 부호화 순서에 따른 비디오 데이터 프레임을 선택한다. 따라서 본 발명에서는 I 프레임 및 제1 P 프레임이 스킵되는 경우를 최대한 방지할 수 있도록 한다.
한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 특히 본 발명의 실시 예에서는 스킵 위치를 설정하기 위해 스킵 카운트값을 이용하는 것을 예로 들었으나, 본 발명이 이에 국한되지 않음은 물론이다. 즉, 상기 스킵 위치는 스킵 카운트값이 아니라 직접적으로 프레임 번호가 선택되어 인코더(250)로 입력되어 질 수도 있음은 물론이다. 아울러 본 발명의 실시 예에서는 오버플로우 용량을 측정한 후, 예측된 전체 부호화 용량을 평균 P 프레임 용량으로 나누어 P 프레임의 개수를 예측하고, 예측된 P 프레임의 개수를 상기 오버플로우될 용량과 비교함으로써 오버플로우가 발생하게 될 P 프레임의 개수를 예측하였으나, 이와는 달리 상기 오버플로우 용량이 측정되면, 상기 측정된 오버플로우 용량을 바로 상기 평균 P 프레임 용량으로 나누어 오버플로우가 발생하게 될 P 프레임의 개수를 예측할 수도 있음은 물론이다. 이는 두 가지 방법 모두 오버플로우 용량을 측정하고, 측정된 용 량을 평균 P 프레임 용량에 따라 나누어 오버플로우가 발생할 P 프레임의 개수를 예측한다는 점이 동일하기 때문이다. 따라서 발명의 범위는 설명된 실시 예에 의해 정할 것이 아니고, 특허청구범위와 특허청구범위의 균등한 것에 의해 정하여져야 한다.
따라서 본 발명은 효율적으로 프레임들의 부호화 스킵 위치를 설정하여 다른 프레임들에 비해 중요도가 높은 참조 프레임들의 스킵을 방지할 수 있으며, 또한 중요도가 높은 참조 프레임들의 스킵을 방지하면서도 연속적인 스킵이 일어나는 것을 방지하여 전체적인 화질 열화를 방지할 수 있다.

Claims (19)

  1. 비디오 부호화기에 있어서,
    수신된 비디오 데이터 프레임이 부호화되었을 경우의 전체 부호화 용량을 예측하며, 상기 수신된 비디오 데이터 프레임들 중 스킵이 결정된 위치에 대응되는 비디오 데이터 프레임을 제외한 비디오 데이터 프레임들을 부호화하여 출력하는 인코더(encoder)와,
    상기 인코더로부터 부호화된 비디오 데이터 프레임들을 버퍼링(buffering)하는 버퍼(buffer)와,
    상기 버퍼의 가용 용량을 체크하는 가용용량 측정부와,
    상기 인코더로부터 상기 전체 부호화 용량 정보를 입력받고, 상기 가용용량 측정부로부터 상기 가용 용량 정보를 입력받아 서로 비교하여 오버플로우(overflow) 용량을 예측하는 오버플로우 용량 측정부와,
    상기 인코더로부터 출력되는 부호화 데이터의 용량 정보를 체크하여 이를 저장하고, 저장된 부호화 데이터의 평균 용량을 산출하는 평균 용량 산출부와,
    상기 예측된 오버플로우 용량 및 상기 산출된 평균 용량을 이용하여, 오퍼플로우가 예상되는 부호화된 프레임들의 개수를 측정하고, 오버플로우가 예측되는 부호화된 프레임들의 개수에 따라, 부호화가 스킵될 비디오 데이터 프레임들의 위치를 결정하는 P 프레임 스킵 추정부를 포함하는 것을 특징으로 하는 비디오 부호화기.
  2. 제1항에 있어서, 상기 스킵이 결정된 위치에 대응되는 비디오 데이터 프레임은,
    상기 비디오 데이터 프레임들 중 I 프레임 및 첫번째 P 프레임인 제1 P 프레임을 제외한 P 프레임들 중 적어도 하나임을 특징으로 하는 비디오 부호화기
  3. 제2항에 있어서, 상기 P 프레임 스킵 추정부는,
    상기 오버플로우가 예측된 부호화된 프레임들의 개수에 따라 생략될 비디오 데이터 프레임들의 스킵 카운트값을 설정하는 것을 특징으로 하는 비디오 부호화기
  4. 제3항에 있어서, 상기 인코더는,
    상기 스킵 카운트가 '0'인 경우, 현재 부호화가 선택된 비디오 데이터 프레임이 스킵이 결정된 위치에 대응되는 비디오 데이터 프레임임을 인지하는 것을 특징으로 하는 비디오 부호화기
  5. 제4항에 있어서,
    상기 스킵 카운트가 '0'인 경우,
    상기 가용용량 측정부는,
    현재의 버퍼의 가용용량을 체크하고,
    상기 오버플로우 용량 측정부는,
    상기 현재 버퍼의 가용용량 및 현재 부호화 예정인 비디오 데이터 프레임들의 전체 부호화 용량을 비교하여 오버플로우 용량을 측정하며,
    상기 P 프레임 스킵 추정부는,
    상기 현재 버퍼의 가용용량 및 상기 현재 부호화 예정인 비디오 데이터 프레임들에 따라 오버플로우 용량을 재예측하고, 재예측된 오버플로우 용량과 현재까지 부호화된 프레임들의 평균 용량에 따라 생략될 비디오 데이터 프레임들의 스킵 위치를 재계산하는 것을 특징으로 하는 비디오 부호화기.
  6. 제1항에 있어서, 상기 인코더는,
    상기 현재 부호화가 선택된 비디오 데이터 프레임이 최종 프레임 직전의 프레임인 경우, 상기 현재 버퍼의 가용용량이 일정수준 미만인지 여부에 따라 상기 현재 부호화가 선택된 비디오 데이터 프레임의 부호화를 스킵하는 것을 특징으로 하는 비디오 부호화기.
  7. 제1항에 있어서, 상기 평균 용량 산출부는,
    상기 인코더로부터 출력되는 부호화 데이터 중 I 프레임 및 상기 제1 P 프레임을 제외한 P 프레임들의 용량을 저장하고, 현재 부호화되고 있는 GOP(Group Of Picture)의 최종 P 프레임이 출력되는 경우, I 프레임 및 상기 제1 P 프레임을 제외한 P 프레임들의 평균 용량을 산출하는 것을 특징으로 하는 비디오 부호화기.
  8. 제1항에 있어서, 상기 평균 용량 산출부는,
    상기 인코더로부터 출력되는 부호화 데이터 중 I 프레임 및 상기 제1 P 프레임을 제외한 P 프레임들의 용량 정보를 수신하여 이를 저장하고, 현재 부호화되고 있는 GOP(Group Of Picture)의 최종 P 프레임이 출력되는 경우, I 프레임 및 상기 제1 P 프레임, 그리고 상기 제1 P 프레임을 제외한 다른 P 프레임들의 평균 용량을 산출하는 것을 특징으로 하는 비디오 부호화기.
  9. 제8항에 있어서, 상기 인코더는,
    상기 현재 부호화가 선택된 비디오 데이터 프레임이 최종 프레임 직전의 프레임인 경우, 상기 현재 버퍼의 가용용량이 I 프레임의 평균 용량과 상기 제1 P 프레임의 평균 용량의 합 미만인 경우 상기 현재 부호화가 선택된 비디오 데이터 프레임의 부호화를 스킵하는 것을 특징으로 하는 비디오 부호화기.
  10. 비디오 부호화기가, 입력된 비디오 데이터 프레임을 부호화하는 방법에 있어서,
    상기 입력된 비디오 데이터 프레임들에 해당하는 GOP(Group Of Picture) 전체의 프레임들이 부호화되었을 경우의 전체 부호화 용량을 예측하는 전체 부호화 용량 예측 단계와,
    기 설정된 부호화 순서에 따라 상기 입력된 비디오 데이터 프레임들 중 어느 하나를 선택하고, 선택된 비디오 데이터 프레임이 상기 GOP의 I 프레임 또는 첫 번째 P 프레임인 제1 P 프레임인지 여부를 체크하고, 선택된 비디오 데이터 프레임이 I 프레임 또는 상기 제1 P 프레임인 경우 이를 부호화하는 프레임 체크 단계와,
    상기 프레임 체크 결과, 현재 선택된 비디오 데이터 프레임이 I 프레임 또는 상기 제1 P 프레임이 아닌 경우, 기 설정된 프레임 스킵(skip) 위치가 있는지 체크하는 스킵 위치 체크 단계와,
    상기 스킵 위치 체크 결과, 기 설정된 프레임 스킵 위치가 없는 경우, 상기 GOP 이전에 부호화된 GOP의 P 프레임들로부터 추출된 평균 용량 및 상기 비디오 부호화기의 버퍼 가용용량에 따라 스킵 위치를 설정하는 스킵 위치 설정 단계와,
    상기 스킵 위치 체크 결과, 기 설정된 프레임 스킵 위치가 있는 경우, 현재 부호화가 선택된 비디오 데이터 프레임이 상기 기 설정된 프레임 스킵 위치에 대응되는 것인지 아닌지를 판단하고, 판단 결과에 따라 상기 현재 부호화가 선택된 비디오 데이터 프레임의 부호화를 수행하는 부호화 단계를 포함하는 것을 특징으로 하는 비디오 프레임 데이터 부호화 방법.
  11. 제10항에 있어서, 상기 스킵 위치 설정 단계는,
    상기 버퍼의 가용용량을 체크하는 가용용량 체크 단계와,
    상기 체크된 가용용량과 상기 전체 부호화 용량을 비교하여 오버플로우(Overflow)가 예상되는 용량을 예측하는 오버플로우 용량 체크 단계와,
    상기 저장된 평균값을 이용하여 상기 오버플로우 용량에 따라, 오버플로우가 예상되는 부호화된 프레임들의 개수를 예측하는 오버플로우 프레임 개수 예측 단계와,
    현재 아직 부호화되지 않은 비디오 데이터 프레임들의 개수를 상기 예측된 오버플로우가 예상되는 프레임들의 개수로 연산하여 프레임 스킵 위치를 설정하는 제1 설정 단계를 포함하는 것을 특징으로 하는 비디오 프레임 데이터 부호화 방법.
  12. 제10항에 있어서, 상기 부호화 단계는,
    상기 스킵 위치 체크 결과, 기 설정된 프레임 스킵 위치가 있는 경우 현재 부호화가 선택된 비디오 데이터 프레임이 상기 기 설정된 프레임 스킵 위치에 대응되는 것인지를 판단하는 프레임 스킵 위치 판단 단계와,
    상기 프레임 스킵 위치 판단 결과, 상기 현재 부호화가 선택된 비디오 데이 터 프레임이 상기 기 설정된 프레임 스킵 위치에 대응되는 것이 아닌 경우, 이를 부호화하는 프레임 부호화 단계와,
    상기 프레임 스킵 위치 판단 결과, 상기 현재 부호화가 선택된 비디오 데이터 프레임이 상기 기 설정된 프레임 스킵 위치에 대응되는 것인 경우 상기 부호화가 선택된 비디오 데이터 프레임의 부호화를 스킵하는 프레임 스킵 단계를 포함하는 것을 특징으로 하는 비디오 프레임 데이터 부호화 방법.
  13. 제12항에 있어서, 상기 프레임 부호화 단계는,
    현재 선택된 비디오 데이터 프레임 데이터를 부호화하는 비디오 데이터 프레임 부호화 단계와,
    상기 부호화된 비디오 프레임 데이터의 용량을 체크하여 이를 저장하는 비디오 데이터 프레임 용량 정보 저장 단계와,
    현재 부호화된 비디오 프레임 데이터가 상기 입력된 비디오 데이터 프레임들에 해당하는 GOP(Group Of Picture)의 비디오 프레임 데이터들 중 마지막으로 부호화된 프레임인지 여부를 체크하는 부호화 프레임 체크 단계와,
    상기 부호화 프레임 체크 결과, 현재 부호화된 비디오 프레임 데이터가 상기 입력된 비디오 데이터 프레임들에 해당하는 GOP의 비디오 프레임 데이터들 중 마지막으로 부호화된 프레임인 경우, 상기 저장된 비디오 데이터 프레임들의 부호화된 용량들로부터 평균값을 산출하는 평균값 산출 단계와,
    상기 산출된 평균값을 저장하고, 상기 저장된 평균값을 이용하여 새로운 프레임 스킵 위치를 설정하는 제2 설정 단계를 포함하는 것을 특징으로 하는 비디오 프레임 데이터 부호화 방법.
  14. 제12항에 있어서, 상기 프레임 부호화 단계는,
    현재 선택된 비디오 데이터 프레임 데이터를 부호화하는 비디오 데이터 프레임 부호화 단계와,
    상기 부호화된 비디오 프레임 데이터의 용량을 체크하여 이를 저장하는 비디오 데이터 프레임 용량 정보 저장 단계와,
    상기 저장된 비디오 데이터 프레임들의 부호화된 용량들 중 현재 부호화가 진행중인 GOP의 비디오 데이터 프레임들의 부호화된 용량들에 대한 현재 프레임 평균값을 산출하는 프레임 평균값 산출 단계를 포함하는 것을 특징으로 하는 비디오 프레임 데이터 부호화 방법.
  15. 제14항에 있어서, 상기 프레임 스킵 단계는,
    현재 부호화가 선택된 비디오 데이터 프레임의 부호화를 스킵하는 프레임 부호화 스킵 단계와,
    현재 부호화가 수행되지 않은 비디오 데이터 프레임들의 부호화 용량을 예측 하는 현재 부호화 용량 체크 단계와,
    현재 버퍼의 가용용량을 체크하는 현재 가용용량 체크 단계와,
    상기 체크된 현재 가용용량과 상기 현재 부호화 용량을 비교하여 오버플로우(Overflow)가 예상되는 용량을 예측하는 현재 오버플로우 용량 체크 단계와,
    상기 프레임 평균값을 이용하여 상기 현재 오버플로우 용량에 따라, 오버플로우가 예상되는 부호화된 프레임들의 개수를 예측하는 현재 오버플로우 프레임 개수 예측 단계와,
    현재 아직 부호화되지 않은 비디오 데이터 프레임들의 개수를 상기 예측된 오버플로우가 예상되는 프레임들의 개수로 연산하여 프레임 스킵 위치를 설정하는 제3 설정 단계를 포함하는 것을 특징으로 하는 비디오 프레임 데이터 부호화 방법.
  16. 제10항에 있어서, 상기 프레임 체크 단계는,
    기 설정된 부호화 순서에 따라 상기 입력된 비디오 데이터 프레임들 중 어느 하나를 선택하는 부호화 비디오 데이터 프레임 선택 단계와,
    상기 선택된 비디오 데이터 프레임이 상기 GOP의 I 프레임 또는 상기 제1 P 프레임인지 여부를 체크하는 체크 단계와,
    상기 선택된 비디오 데이터 프레임이 I 프레임 또는 상기 제1 P 프레임인 경우 상기 선택된 비디오 데이터 프레임을 부호화하는 I 또는 제1 P 프레임 부호화 단계를 포함하는 것을 특징으로 하는 비디오 프레임 데이터 부호화 방법.
  17. 제16항에 있어서, 상기 부호화 비디오 데이터 프레임 선택 단계는,
    현재 부호화될 비디오 데이터 프레임을 선택하는 선택 단계와,
    현재 선택된 비디오 데이터 프레임이 상기 GOP의 프레임들 중 최종 프레임 직전의 프레임인지를 체크하는 직전 프레임 체크 단계와,
    상기 현재 선택된 비디오 데이터 프레임이 상기 직전 프레임인 경우, 현재 상기 비디오 부호화기의 버퍼 가용용량이 기 설정된 일정 수준 미만인지를 체크하는 버퍼 용량 수준 체크 단계와,
    상기 버퍼 가용용량이 상기 기 설정된 일정 수준 미만인 경우 상기 현재 선택된 비디오 데이터 프레임의 부호화를 스킵하는 스킵 단계를 포함하는 것을 특징으로 하는 비디오 데이터 프레임 부호화 방법.
  18. 제16항에 있어서, 상기 I 또는 제1 P 프레임 부호화 단계는,
    현재 선택된 비디오 데이터 프레임이 I 프레임 또는 상기 제1 P 프레임인 경우 이를 부호화하는 I 프레임, 제1 P 프레임 부호화 단계와,
    상기 부호화된 비디오 데이터 프레임이 I 프레임인지 또는 상기 제1 P 프레임인지 여부에 따라 I 프레임 용량 정보 또는 P 프레임 용량 정보로 상기 부호화된 비디오 데이터 프레임의 용량값을 저장하는 저장 단계와,
    상기 I 프레임 용량 정보와 상기 P 프레임 용량 정보에 포함된 용량값을 합 산하여 평균한 용량 합산 평균값을 산출하는 I 프레임 및 P 프레임 용량 합산 평균 단계와,
    상기 산출된 용량 합산 평균값을 저장하는 용량 합산 평균 저장 단계를 포함하는 것을 특징으로 하는 비디오 데이터 프레임 부호화 방법.
  19. 제18항에 있어서, 상기 부호화 비디오 데이터 프레임 선택 단계는,
    현재 부호화될 비디오 데이터 프레임을 선택하는 선택 단계와,
    현재 선택된 비디오 데이터 프레임이 상기 GOP의 프레임들 중 최종 프레임 직전의 프레임인지를 체크하는 직전 프레임 체크 단계와,
    상기 현재 선택된 비디오 데이터 프레임이 상기 직전 프레임인 경우, 현재 상기 비디오 부호화기의 버퍼 가용용량이 상기 용량 합산 평균값 미만인지를 체크하는 버퍼 용량 수준 체크 단계와,
    상기 버퍼 가용용량이 상기 용량 합산 평균값 미만인 경우 상기 현재 선택된 비디오 데이터 프레임의 부호화를 스킵하는 스킵 단계를 포함하는 것을 특징으로 하는 비디오 데이터 프레임 부호화 방법.
KR1020060071431A 2006-07-28 2006-07-28 비디오 부호화기 및 비디오 데이터 프레임 부호화 방법 KR100790150B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020060071431A KR100790150B1 (ko) 2006-07-28 2006-07-28 비디오 부호화기 및 비디오 데이터 프레임 부호화 방법
CN200710139195A CN100581261C (zh) 2006-07-28 2007-07-27 对视频数据帧编码的视频编码器和方法
US11/881,659 US20080025388A1 (en) 2006-07-28 2007-07-27 Video encoder and method for coding video data frames
EP07113420A EP1883246B1 (en) 2006-07-28 2007-07-30 Video Encoder with Adaptive Frame Skipping

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060071431A KR100790150B1 (ko) 2006-07-28 2006-07-28 비디오 부호화기 및 비디오 데이터 프레임 부호화 방법

Publications (1)

Publication Number Publication Date
KR100790150B1 true KR100790150B1 (ko) 2008-01-02

Family

ID=38654784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060071431A KR100790150B1 (ko) 2006-07-28 2006-07-28 비디오 부호화기 및 비디오 데이터 프레임 부호화 방법

Country Status (4)

Country Link
US (1) US20080025388A1 (ko)
EP (1) EP1883246B1 (ko)
KR (1) KR100790150B1 (ko)
CN (1) CN100581261C (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103391415B (zh) * 2012-05-11 2016-12-07 安凯(广州)微电子技术有限公司 一种录像数据丢帧处理方法及系统
CN103237224A (zh) * 2013-04-01 2013-08-07 深圳市云宙多媒体技术有限公司 一种基于门限的P_skip块提前判决方法
US9842428B2 (en) * 2014-06-27 2017-12-12 Samsung Electronics Co., Ltd. Dynamically optimized deferred rendering pipeline
US9942552B2 (en) 2015-06-12 2018-04-10 Intel Corporation Low bitrate video coding
US10368074B2 (en) 2016-03-18 2019-07-30 Microsoft Technology Licensing, Llc Opportunistic frame dropping for variable-frame-rate encoding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0653888A2 (en) 1993-11-12 1995-05-17 Nec Corporation Moving picture decoding control system
JPH11234680A (ja) 1998-02-12 1999-08-27 Mitsubishi Electric Corp 画像圧縮装置
KR20040067418A (ko) * 2003-01-23 2004-07-30 삼성전자주식회사 비디오 코딩시의 비트율 제어 방법 및 장치

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774593A (en) * 1995-07-24 1998-06-30 University Of Washington Automatic scene decomposition and optimization of MPEG compressed video
US5745178A (en) * 1996-01-22 1998-04-28 Lucent Technologies Inc. Global rate control for model-assisted coding of low bit rate video
EP1182888A3 (en) * 1996-04-25 2004-11-03 Matsushita Electric Industrial Co., Ltd. Video coding with bit rate dependent quantisation
US5969764A (en) * 1997-02-14 1999-10-19 Mitsubishi Electric Information Technology Center America, Inc. Adaptive video coding method
US6115420A (en) * 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
DE69834901T2 (de) * 1997-11-17 2007-02-01 Koninklijke Philips Electronics N.V. Bewegungskompensierte prädiktive bildcodierung und -decodierung
US6731684B1 (en) * 1998-09-29 2004-05-04 General Instrument Corporation Method and apparatus for detecting scene changes and adjusting picture coding type in a high definition television encoder
GB9908809D0 (en) * 1999-04-16 1999-06-09 Sony Uk Ltd Signal processor
JP2001245303A (ja) * 2000-02-29 2001-09-07 Toshiba Corp 動画像符号化装置および動画像符号化方法
EP1130921B1 (en) * 2000-03-02 2005-01-12 Matsushita Electric Industrial Co., Ltd. Data transmission in non-reliable networks
TW527832B (en) * 2000-04-20 2003-04-11 Matsushita Electric Ind Co Ltd Video encoding apparatus that adjusts code amount by skipping encoding of image data
US6873654B1 (en) * 2000-05-16 2005-03-29 Redrock Semiconductor, Inc Method and system for predictive control for live streaming video/audio media
JP4203707B2 (ja) * 2001-01-31 2009-01-07 日本電気株式会社 事前解析を用いた動画像符号化装置、動画像符号化方法、及びそのプログラム。
AU2002245609A1 (en) * 2001-03-05 2002-09-19 Intervideo, Inc. Systems and methods of error resilience in a video decoder
JP4610195B2 (ja) * 2001-12-17 2011-01-12 マイクロソフト コーポレーション スキップマクロブロックコード化
US6993078B2 (en) * 2002-03-28 2006-01-31 International Business Machines Corporation Macroblock coding technique with biasing towards skip macroblock coding
US7720145B2 (en) * 2004-05-13 2010-05-18 Ittiam Systems (P) Ltd. Model based bit rate control for a macroblock encoder
JP4040052B2 (ja) * 2005-05-24 2008-01-30 株式会社日立国際電気 画像データ圧縮装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0653888A2 (en) 1993-11-12 1995-05-17 Nec Corporation Moving picture decoding control system
JPH11234680A (ja) 1998-02-12 1999-08-27 Mitsubishi Electric Corp 画像圧縮装置
KR20040067418A (ko) * 2003-01-23 2004-07-30 삼성전자주식회사 비디오 코딩시의 비트율 제어 방법 및 장치

Also Published As

Publication number Publication date
US20080025388A1 (en) 2008-01-31
CN100581261C (zh) 2010-01-13
EP1883246A2 (en) 2008-01-30
CN101115203A (zh) 2008-01-30
EP1883246A3 (en) 2011-05-04
EP1883246B1 (en) 2012-11-21

Similar Documents

Publication Publication Date Title
US7352808B2 (en) System and method for the dynamic resolution change for video encoding
JP4593556B2 (ja) 映像符号化方法及びデバイス
US9071840B2 (en) Encoder with adaptive rate control for H.264
KR100484148B1 (ko) 개선된 비트율 제어 방법과 그 장치
US8379670B2 (en) Method and device for transmitting video data
KR101017770B1 (ko) 슬라이딩 윈도 채널 제약에 부합하는 멀티패스 비디오레이트 제어
KR100790150B1 (ko) 비디오 부호화기 및 비디오 데이터 프레임 부호화 방법
US20050243930A1 (en) Video encoding method and apparatus
US20130156098A1 (en) Method and apparatus for dual pass rate control video encoding
US20120269258A1 (en) Rate control with look-ahead for video transcoding
KR101733828B1 (ko) 가변 레졸루션 스트림에 관한 코딩 파라미터를 결정하는 방법 및 시스템
US20030031251A1 (en) Video encoding method and apparatus
ITTO20090486A1 (it) Controllore dinamico della velocita' di trasmissione indipendente dal gruppo di immagini
KR20100137502A (ko) 효율성과 주관적 품질의 개선을 지원하는 예측 프레임 선택을 위한 방법 및 장치
US20120328002A1 (en) Video Coding
US20080075164A1 (en) Motion picture encoding apparatus and method
KR20090129064A (ko) 영상 처리 시스템에서 비트 레이트를 제어하는 장치 및방법
TWI394462B (zh) 基於視覺感知的位元-失真最佳化位元分配的位元率控制方法
US8861596B2 (en) Image encoding device and image encoding method
KR20090125150A (ko) 획득 및 기본 계층과 확장 계층 밸런싱을 위해 i 프레임을 적응적으로 결정하는 시스템 및 방법
CN100574442C (zh) 基于图像直方图的码率控制方法
US8780977B2 (en) Transcoder
CN101969556B (zh) 图像编码设备和图像编码方法
US20140177701A1 (en) System and method for time budget achievement in real-time video encoding
KR101168007B1 (ko) 실시간 비디오 부호화를 위한 적응적인 유닛-레벨 비트율 제어방법

Legal Events

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

Payment date: 20121129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131128

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141127

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151127

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee