KR20130125168A - 비디오 인코딩 장치 및 그것의 인코딩 방법 - Google Patents

비디오 인코딩 장치 및 그것의 인코딩 방법 Download PDF

Info

Publication number
KR20130125168A
KR20130125168A KR1020120048708A KR20120048708A KR20130125168A KR 20130125168 A KR20130125168 A KR 20130125168A KR 1020120048708 A KR1020120048708 A KR 1020120048708A KR 20120048708 A KR20120048708 A KR 20120048708A KR 20130125168 A KR20130125168 A KR 20130125168A
Authority
KR
South Korea
Prior art keywords
image data
bit
codec
sampling
encoding
Prior art date
Application number
KR1020120048708A
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 KR1020120048708A priority Critical patent/KR20130125168A/ko
Priority to US13/803,500 priority patent/US20130301700A1/en
Publication of KR20130125168A publication Critical patent/KR20130125168A/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/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
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/186Methods 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 a colour or a chrominance component

Landscapes

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

Abstract

본 발명의 실시 예에 따른 비디오 인코딩 장치는, 제 1 영상 데이터를 인코딩하여 비트-스트림으로 출력하고, 상기 인코딩 결과에 따라 레이트 제어 신호를 생성하는 코덱부, 그리고 상기 레이트 제어 신호에 따라 상기 제 1 영상 데이터에 연속되는 제 2 영상 데이터에 대한 영상 데이터 삭감 동작을 수행하여 상기 코덱부에 전달하는 전처리부를 포함한다.

Description

비디오 인코딩 장치 및 그것의 인코딩 방법{VIDEO ENCODING DEVICE AND ENCODING METHOD THEREOF}
본 발명은 영상 데이터 처리 시스템에 관한 것으로, 좀 더 구체적으로는 영상 데이터의 양을 줄이기 위한 비디오 인코딩 장치 및 그것의 인코딩 방법에 관한 것이다.
지금까지 영상 데이터를 인코딩하기 위한 다수의 비디오 인코딩 표준들이 등장해 왔다. 예를 들면, MPEG(Moving Picture Experts Group)는 MPEG-1, MPEG-2 및 MPEG-4를 포함하는 다수의 표준을 개발하였다. 반면, ITU(International Telecommunication Union)에서는 H.263, H.264/AVC 등을 비디오 인코딩 표준으로 사용하고 있다. 이들 비디오 인코딩 표준들은, 압축 방식으로 영상 데이터를 인코딩함으로써 영상 데이터의 전송 효율을 높이고 있다.
근래 급속도로 보급되고 있는 스마트폰(Smart Phone)과 같은 모바일 기기에서 이루어지는 무선 데이터 전송의 경우, 일반적으로 전송 채널 대역의 제한으로 인해 낮은 대역폭이 요구된다. 낮은 대역폭 요건을 충족시키기 위해, 비디오 인코딩 시스템에서는 영상 신호의 양자화 파라미터(Quantizing Parameter)를 조정한다. 하지만, 이런 조건에서도 입력되는 데이터의 크기에 따라서 최대의 양자화 파라미터의 설정시에도 순간적인 비트율(Bit-rate)은 채널 대역폭을 초과하는 경우가 발생할 수 있다. 이러한 현상을 비트율 오버슈트(Bit-rate overshoot)라 한다. 비트율 오버슈트 문제를 해결하기 위해서는 코덱 내부에서의 양자화 파라미터의 조정만으로는 충분치 못한 것이 현실이다.
따라서, 양자화 파라미터의 조정없이 비트율 오버슈트 문제를 해결할 수 있는 영상 데이터의 인코딩 기술이 절실한 실정이다.
본 발명의 목적은 채널의 대역폭 제한에 따른 비트율 오버슈트 문제를 해결할 수 있는 영상 데이터 인코딩 기술을 제공하는 데 있다.
본 발명의 실시 예에 따른 비디오 인코딩 장치는, 제 1 영상 데이터를 인코딩하여 비트-스트림으로 출력하고, 상기 인코딩 결과에 따라 레이트 제어 신호를 생성하는 코덱부, 그리고 상기 레이트 제어 신호에 따라 상기 제 1 영상 데이터에 연속되는 제 2 영상 데이터에 대한 영상 데이터 삭감 동작을 수행하여 상기 코덱부에 전달하는 전처리부를 포함한다.
본 발명의 실시 예에 따른 영상 데이터의 인코딩 방법은, 입력되는 제 1 영상 데이터를 비트-스트림으로 인코딩하는 단계, 상기 비트-스트림의 데이터의 양을 검출하는 단계, 그리고 상기 검출 결과에 따라 상기 제 1 영상 데이터에 후속되는 제 2 영상 데이터를 삭감하는 단계를 포함한다.
본 발명의 예시적인 실시 예에 의하면, 비트율의 변화에 따라 영상 데이터를 코덱에 의한 인코딩 이전에 감소시킬 수 있다. 따라서, 본 발명의 비디오 인코딩 장치에 따르면, 양자화 파라미터만으로는 감당하기 어려운 비트율 오버슈트 문제를 용이하게 해결할 수 있다.
도 1은 본 발명의 실시 예에 따른 비디오 인코더를 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 효과를 간략히 보여주는 그래프이다.
도 3은 본 발명의 실시 예에 따른 영상 데이터의 처리 방법을 간략히 보여주는 순서도이다.
도 4는 본 발명의 일 실시 예에 따른 비디오 인코더 장치를 보여주는 블록도이다.
도 5는 도 4의 비디오 인코더 장치에 의한 영상 데이터 처리 방법을 보여주는 순서도이다.
도 6은 본 발명의 다른 실시 예에 따른 비디오 인코더 장치를 보여주는 블록도이다.
도 7은 도 6의 비디오 인코더 장치에 의한 영상 데이터 처리 방법을 보여주는 순서도이다.
도 8은 도 7의 크로마 서브-샘플링 동작을 예시적으로 보여주는 순서도이다.
도 9는 본 발명의 또 다른 실시 예에 따른 비디오 인코더 장치를 보여주는 블록도이다.
도 10은 도 9의 비디오 인코더 장치에 의한 영상 데이터 처리 방법을 보여주는 순서도이다.
도 11은 도 10의 전처리 동작을 예시적으로 보여주는 순서도이다.
도 12는 본 발명의 실시 예에 따른 휴대용 단말기를 나타내는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한, 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작, 소자 및 장치의 존재 또는 추가를 의미한다.
도 1은 본 발명의 실시 예에 따른 비디오 인코더 장치를 보여주는 블록도이다. 도 1을 참조하면, 비디오 인코더 장치(100)는 전처리부(110)와 코덱(120)을 포함한다. 코덱(120)은 다시 엔트로피 인코더(122)와 레이트 컨트롤러(124)를 포함한다.
전처리부(110)는 코덱(120)에 의한 부호화 연산 이전에 영상 데이터에 대한 삭감(Decimation) 처리를 수행한다. 전처리부(110)는 코덱(120)으로부터 피드백되는 레이트 제어 신호(Rate CNTL)를 참조하여 입력되는 영상 데이터(Image data)에 대한 스케일다운(Scale down) 처리를 수행할 수 있다. 이하에서는 전처리부(110)에서 수행되는 이러한 동작들을 삭감 처리(Decimation process)이라 칭하기로 한다. 전처리부(110)는 삭감 처리에 의해서 조정된 영상 데이터(Modified data)를 코덱(120)에 제공하게 될 것이다.
코덱(120)은 조정된 영상 데이터(Modified data)에 대한 부호화를 수행하고, 그 결과로 비트-스트림(Bit-stream)을 출력한다. 코덱(120)에 의한 영상 데이터를 부호화하는 과정은 다음과 같다. 코덱(120)은 조정된 영상 데이터를 이산 여현 변환(Discrete Cosine Transform: 이하, DCT) 연산을 통해서 처리한다. 그리고 코덱(120)은 이산 여현 변환(DCT) 연산에 의해서 생성된 데이터를 양자화한다. 양자화된 데이터는 가변장 부호화(Variable Length Coding: 이하, VLC)를 통해서 비트-스트림(Bit-stream)으로 출력될 수 있다.
한편, 코덱(120)의 내부에서는 양자화된 데이터에 대한 역양자화(Inverse Quantization) 및 IDCT(Inverse DCT)가 수행된다. 이러한 과정을 통해서 복원된 영상은 내부 메모리(미도시됨)에 저장된다. 코덱(120)은 내부 메모리에 저장된 복원 영상과 이후에 입력되는 프레임 영상을 이용해서 움직임 벡터(Motion Vector)를 생성하다. 움직임 벡터는 가변길이 부호화(VLC)되며, 부호화된 영상 데이터와 함께 비트-스트림(Bit-stream)을 구성하여 전송될 수 있다. 영상의 복호화는 상술한 부호화 과정의 역순으로 진행될 것이다.
본 발명의 코덱(120)은 엔트로피 인코더(122)와 레이트 컨트롤러(124)를 포함한다. 엔트로피 인코더(122)는 앞서 설명된 바와 같이 양자화된 데이터에 대한 가변장 부호화(VLC) 연산을 적용하여 비트-스트림(Bit-stream)으로 출력한다. 엔트로피 인코더(122)는, 산술 코딩, 호프만 코딩, 런 랭스(Run-Length) 코딩, LZ(Lempel Ziv) 코딩 등의 알고리즘에 따라 양자화된 데이터를 처리할 수 있다.
레이트 컨트롤러(124)는 엔트로피 인코더(122)로부터 제공되는 비트 발생 정보(Bit Generation Information: 이하, BGI)를 제공받는다. 레이트 컨트롤러(124)는 비트 발생 정보(BGI)를 참조하여 엔트로피 인코더(122)에 의해서 발생되는 비트 수와 채널 대역을 통해서 전송되는 비트(타깃 비트) 수를 고려하여 전처리부(110)를 제어할 수 있다. 즉, 레이트 컨트롤러(124)는 발생 비트 수에 타깃 비트 수를 차감한 값이 적정 수준(Threshold)을 초과하지 않도록 레이트 제어 신호(Rate CNTL)을 생성한다. 이러한 동작을 수행하기 위해서 레이트 컨트롤러(124)에는 비트율 상황을 모니터링하기 위한 가상 버퍼(Virtual Buffer, 125)를 포함할 수 있다.
본 발명의 실시 예에 따르면, 순간적으로 발생되는 비트 수가 최대 채널 대역폭을 초과하는 현상(비트율 오버슈트)을 효과적으로 차단할 수 있다. 왜냐하면, 코덱(120)에 영상 데이터가 제공되기 이전에 데이터의 양을 채널의 상태에 따라 적응적으로 줄일 수 있기 때문이다. 일반적으로, 코덱(120)의 내부에서 이루어지는 양자화 파라미터(Quantization Parameter: 이하, QP)의 조정만으로는 감당하기 어려운 비트율 오버슈트(Bit rate overshoot) 문제가 존재한다. 이러한 경우, 추가적으로 본 발명의 전처리부(110)에 의한 영상 데이터의 삭감 처리를 통해서 비트율 오버슈트 문제를 해결할 수 있다.
도 2는 본 발명의 실시 예에 따른 효과를 간략히 보여주는 그래프이다. 도 2를 참조하면, 도 1의 레이트 컨트롤러(124)에서 관리되는 가상 버퍼(Virtual Buffer, 125)의 상태를 나타내는 그래프이다.
먼저, 영상 데이터들이 전처리부(110)에 입력될 것이다. 하지만, 최초에 입력되는 데이터에 대해서는 코덱(120)에서의 양자화 파라미터(QP)의 설정에 의해서 충분히 채널 대역폭을 초과하지 않을 것이다. 예를 들면, 시간 (1)에서 입력되는 영상 데이터들은 타깃 비트 레이트(예를 들면, 1000bps)에 대응하는 비트 수(ΔTB: 타깃 비트)만큼 채널로 전송될 것이다. 하지만, 입력되는 비트 수가 시간에 따라 또는 입력되는 프레임의 수가 증가할수록 점점 증가하게 되면, 엔트로피 인코더(122)에 의해서 생성되는 비트들의 수는 채널의 대역폭만으로는 감당할 수 없을 정도로 커질 수 있다. 이러한 시점이 시점(N)에 도시되어 있다.
시점(N)에서, 엔트로피 인코더(122)에 의해서 생성되는 비트 수가 채널로 전송 가능한 타깃 비트로는 수용할 수 없게 되면, 이 시점에 바로 비트율 오버슈트(Bit-rate overshoot)가 발생할 확률이 높다. 따라서, 본 발명의 레이트 컨트롤러(124)는 가상 버퍼(125)에 의해서 이러한 비트 발생 정보를 카운트하고 비트율 오버슈트가 발생할 수 있는 시점을 모니터링할 수 있다.
레이트 컨트롤러(124)는 비트율 오버슈트가 발생할 수 있는 상황에 직면하면, 전처리부(110)에 입력되는 영상 데이터에 대한 삭감 동작을 수행하도록 지시한다. 비트율 오버슈트가 발생할 수 있는 상황은 미리 정해진 가상 버퍼(125)의 비트 카운트 수가 문턱값(Threshold)을 초과하는 것으로 설정될 수 있다. 레이트 컨트롤러(124)의 제어에 응답하여 전처리부(110)는 영상 데이터에 대한 감축 동작을 수행하게 될 것이다.
여기서, 영상 데이터의 감축 동작은 입력되는 영상 데이터에 있어서 중요도가 낮은 데이터를 제거하는 것을 의미한다. 중요도가 낮은 데이터는 인간의 시각에 있어서 덜 민감하게 인식되는 부분에 해당하는 데이터를 의미한다. 감축 동작의 예로는 비트폭 감소(Bit Precision Reduction)이나, 크로마 서브-샘플링(Chroma Sub-sampling) 등이 있다. 하지만, 감축 동작에는 이들 실시 예들뿐만 아니라 다양한 비트 감축(Bit Decimation) 개념들이 적용될 수 있을 것이다.
감축 동작에 의해서, 이후에 입력되는 영상 데이터에 의한 비트-스트림의 발생 비트 수는 더 이상 증가하지 않는다. 이러한 현상은 시점(N+1)에 나타나 있다. 따라서, 코덱에 입력되는 영상 데이터의 비트 감축에 의해서 가상 버퍼(125)에 카운트되는 비트 수는 급격히 감소하게 되고, 비트율 오버슈트의 발생 확률은 현저하게 감소하게 될 것이다.
도 3은 본 발명의 실시 예에 따른 영상 데이터의 처리 방법을 간략히 보여주는 순서도이다. 도 1 및 도 3을 참조하면, 본 발명의 비디오 인코더 장치(100, 도 1 참조)는 비트 발생 정보(BGI)를 참조하여 코덱(120)에 입력되는 영상 데이터를 감축시킬 수 있다.
단계 S110에서, 센싱된 영상 데이터를 전처리부(110)가 수신한다. 전처리부(110)는 수신된 영상 데이터에 대한 감축 동작을 코덱(120)의 레이트 컨트롤러(124)의 제어에 따라 수행할 것이다. 그러나 전처리부(110)는 영상 데이터가 전달되는 프레임에서 최초 픽셀인 경우에는 감축 동작없이 코덱(120)으로 바이패스할 수 있다. 즉, 전처리부(110)는 레이트 제어 신호(Rate CNTL)가 비활성화된 상태에서는 감축 동작없이 영상 데이터를 코덱(120)으로 전달할 것이다.
단계 S120에서, 코덱(120)은 영상 데이터에 대한 부호화를 수행한다. 그리고 코덱(120)은 부호화의 결과로 비트-스트림(Bit-stream)을 출력한다. 코덱(120)에 의한 영상 데이터를 부호화하는 과정은 다음과 같다. 코덱(120)은 조정된 영상 데이터를 이산 여현 변환(Discrete Cosine Transform: 이하, DCT) 과정을 통해서 처리한다. 코덱(120)은, 이산 여현 변환된 영상 데이터를 양자화한다. 양자화된 데이터는 엔트로피 인코더(122)를 통해서 가변장 부호화(Variable Length Coding: 이하, VLC) 처리되고, 비트-스트림(Bit-stream)으로 출력될 수 있다.
단계 S130에서, 레이트 컨트롤러(124)는 엔트로피 인코더(122)로부터 제공되는 비트 발생 정보(BGI)를 참조하여 엔트로피 인코더(122)에서 발생되는 비트들의 사이즈를 모니터링한다. 레이트 컨트롤러(124)는 예를 들면, 가상 버퍼(125)에 카운트되는 발생 비트와 타깃 비트를 모니터링한다. 레이트 컨트롤러(124)는 가상 버퍼(125)에 카운트되는 가상 버퍼 점유율(VBO)이 문턱값(Threshold)을 초과하는지를 모니터링할 수 있다.
단계 S140에서, 레이트 컨트롤러(124)는 발생 비트의 크기를 나타내는 가상 버퍼 점유율(VBO)을 문턱값(Threshold)과 비교한다. 만일, 가상 버퍼 점유율(VBO)이 문턱값을 초과하지 않는다면, 절차는 다음 이미지 데이터를 제공받기 위해 단계 S110으로 이동한다. 반면, 가상 버퍼 점유율(VBO)이 문턱값을 초과하는 경우, 절차는 전처리부(110)에 의한 영상 데이터 감축을 수행하기 위한 단계 S150으로 이동한다.
단계 S150에서, 레이트 컨트롤러(124)는 발생하는 비트 수를 줄이도록 전처리부(110)에 제어 신호를 제공한다. 전처리부(110)는 레이트 컨트롤러(124)의 제어 신호에 응답하여 이후에 입력되는 영상 데이터(예를 들면, 픽셀 데이터)에 대한 감축 동작을 실시한다. 전처리부(110)에 의해서 영상 데이터는 일정부분 제거된 상태로 코덱(120)에 전달될 것이다.
상술한 단계들에 따라 현재 부호화 처리되는 영상 데이터의 비트 발생의 정도에 따라 이후에 입력되는 영상 데이터에 대한 감축 동작의 실시 여부가 결정된다. 따라서, 코덱(120)에 제공되는 삭감 처리된 영상 데이터의 사이즈는 제한된 채널 대역폭 내에서 비트율 오버슈트 문제를 사전에 차단할 것으로 기대된다.
도 4는 본 발명의 일 실시 예에 따른 비디오 인코더 장치를 보여주는 블록도이다. 도 4를 참조하면, 비디오 인코더 장치(100a)는 비트폭 감소 유닛(110a)과 코덱(120a)을 포함한다. 코덱(120a)은 앞서 설명된 바와 같이 엔트로피 인코더(122a)와 레이트 컨트롤러(124a)를 포함한다.
비트폭 감소 유닛(110a)은 코덱(120a)에 의한 부호화 이전에 입력되는 영상 데이터에 대한 비트폭 감소 동작(Bit Precision Reduction Operation)을 수행할 수 있다. 비트폭 감소 유닛(110a)은 코덱(120a)의 레이트 컨트롤러(124a)의 제어에 따라 입력되는 영상 데이터에 대한 비트폭 감소 동작을 활성화하거나 비활성화한다. 만일, 레이트 컨트롤러(124a)가 비트폭 감소 동작을 활성화하도록 비트폭 감소 유닛(110a)을 제어하면, 비트폭 감소 유닛(110a)은 입력되는 영상 데이터의 일부를 제거(Decimation)할 수 있다.
입력되는 영상 데이터가 하나의 픽셀에 대응하는 n 비트의 데이터라 가정하자. 레이트 컨트롤러(124a)에 의해서 비트폭 감소 동작이 활성화되면, 비트폭 감소 유닛(110a)은 n 비트의 픽셀 데이터 중에서 가장 중요도가 낮은 k 비트의 LSB 데이터를 제거할 수 있다. 그리고 레이트 컨트롤러(124a)는 n-k 비트의 영상 데이터를 코덱(120a)으로 전달할 것이다. 예를 들면, 12 비트의 픽셀 데이터 (0110011010 01 ) 중에서 가장 중요도가 낮은 2 비트의 LSB ' 01 '이 제거되면, 10 비트의 픽셀 데이터(0110011010)가 코덱(120a)에 제공될 것이다.
여기서, 입력되는 픽셀 데이터가 12 비트인 경우에, 비트폭 감소 동작에 의해서 출력되는 데이터는 12 비트, 10 비트, 8 비트 등으로 설정될 수 있다. 하지만, 레이트 컨트롤러(124a)에 의한 비트폭 감소 동작이 비활성화되면, 비트폭 감소 유닛(110a)은 n 비트의 픽셀 데이터를 별도의 처리없이 코덱(120a)으로 바이패스(Bypass)할 수 있다. 비트폭 감소 유닛(110a)의 비트폭 감소 동작의 다른 예로 디더링(Dithering)이 있다. 일반적으로 제공되는 픽셀 데이터에서 LSB를 강제로 제거하기 위한 제반 동작이 디더링(Dithering)에 해당한다.
코덱(120a)은 조정된 영상 데이터(Modified data)에 대한 부호화를 수행하고, 그 결과로 비트-스트림(Bit-stream)을 출력한다. 코덱(120a)에 의한 영상 데이터를 부호화하는 과정은 다음과 같다. 코덱(120a)은 조정된 영상 데이터를 이산 여현 변환(Discrete Cosine Transform: 이하, DCT) 과정을 통해서 처리한다. 그리고 코덱(120)은, 이산 여현 변환된 데이터를 양자화한다. 양자화된 데이터는 가변장 부호화(Variable Length Coding: 이하, VLC)를 통해서 비트스트림(Bit-stream)으로 출력될 수 있다. 코덱(120a)의 기능은 앞서 설명된 도 1에서 상세히 설명되었으므로 이하에서는 추가적인 설명은 생략하기로 한다.
레이트 컨트롤러(124a)는 엔트로피 인코더(122a)로부터 제공되는 비트 발생 정보(BGI)를 이용하여 비트폭 감소 유닛(110a)의 영상 데이터(Image data)의 축소 여부, 또는 축소 정도를 제어할 수 있다.
본 발명의 실시 예에 따르면, 코덱(120a)에 영상 데이터가 제공되기 이전에 데이터의 양이 감소할 수 있다. 따라서, 본 발명의 비디오 인코더 장치(100a)에 따르면, 코덱의 내부에서 이루어지는 양자화 파라미터(QP)의 조정만으로는 감당하기 어려운 비트율 오버슈트(Bit rate overshoot) 문제를 해결할 수 있다.
도 5는 도 4의 비디오 인코더 장치에 의한 영상 데이터 처리 방법을 보여주는 순서도이다. 도 4 내지 도 5를 참조하면, 본 발명의 비디오 인코더 장치(100a, 도 4 참조)는 비트 발생 정보(BGI)를 참조하여 코덱(120a)에 입력되는 영상 데이터의 비트폭을 감소하여 채널의 대역폭 마진을 확보할 수 있다.
단계 S210에서, 이미지 센싱 수단으로부터 제공되는 영상 데이터가 비트폭 감소 유닛(110a)으로 제공된다. 비트폭 감소 유닛(110a)은 수신된 영상 데이터에 대한 감축 동작을 코덱(120a)의 레이트 컨트롤러(124a)의 제어에 따라 수행할 것이다. 그러나 비트폭 감소 유닛(110a)은 영상 데이터가 하나의 프레임에 있어서 최초 픽셀인 경우에는 감축 동작없이 코덱(120a)으로 바이패스할 수 있다.
단계 S220에서, 코덱(120a)은 수신된 영상 데이터에 대한 부호화를 수행한다. 그리고 코덱(120a)은 부호화의 결과로 비트-스트림(Bit-stream)을 출력한다. 코덱(120a)에 의한 영상 데이터를 부호화하는 과정은 다음과 같다. 코덱(120a)은 조정된 영상 데이터를 이산 여현 변환(Discrete Cosine Transform: 이하, DCT) 과정을 통해서 처리한다. 코덱(120a)은, 이산 여현 변환된 영상 데이터를 양자화한다. 양자화된 데이터는 엔트로피 인코더(122a)를 통해서 가변장 부호화(VLC) 처리되고, 비트-스트림(Bit-stream)으로 출력될 수 있다.
단계 S230에서, 레이트 컨트롤러(124a)는 엔트로피 인코더(122a)로부터 제공되는 비트 발생 정보(BGI)를 참조하여 엔트로피 인코더(122a)에서 발생되는 비트들의 사이즈를 모니터링한다. 레이트 컨트롤러(124a)는 예를 들면, 가상 버퍼(Virtual buffer)에 카운트되는 발생 비트와 출력 비트의 변화를 모니터링할 수 있다. 레이트 컨트롤러(124a)는 가상 버퍼(Virtual buffer)에 카운트되는 가상 버퍼 점유율(VBO)이 문턱값(Threshold)을 초과하는지를 모니터링할 수 있다.
단계 S240에서, 레이트 컨트롤러(124a)는 발생 비트의 크기를 나타내는 가상 버퍼 점유율(VBO)을 문턱값(Threshold)과 비교한다. 만일, 가상 버퍼 점유율(VBO)이 문턱값을 초과하지 않는다면, 절차는 다음 이미지 데이터를 제공받기 위해 단계 S210으로 이동한다. 반면, 가상 버퍼 점유율(VBO)이 문턱값을 초과하는 경우, 절차는 비트폭 감소 유닛(110a)에 의한 영상 데이터 감축을 수행하기 위한 단계 S250으로 이동한다.
단계 S250에서, 레이트 컨트롤러(124a)는 발생하는 비트 수를 줄이도록 비트폭 감소 유닛(110a)에 제어 신호를 제공한다. 비트폭 감소 유닛(110a)은 레이트 컨트롤러(124a)의 제어 신호에 응답하여 이후에 입력되는 영상 데이터(예를 들면, 픽셀 데이터)에 대한 감축 동작을 실시한다. 비트폭 감소 유닛(110a)에 의해서 영상 데이터는 일정 부분 제거된 상태로 코덱(120a)에 전달될 것이다.
상술한 단계들에 따라 현재 부호화 처리되는 영상 데이터의 비트 발생의 정도에 따라 이후에 입력되는 영상 데이터에 대한 비트폭 감소 동작의 실시 여부가 결정된다. 따라서, 코덱(120a)에 제공되는 조정된 영상 데이터의 사이즈는 제한된 채널 대역폭 내에서 비트-스트림이 발생하도록 할 것이다.
도 6은 본 발명의 다른 실시 예에 따른 비디오 인코더 장치를 보여주는 블록도이다. 도 6을 참조하면, 비디오 인코더 장치(100b)는 크로마 서브-샘플링 유닛(110b)과 코덱(120b)을 포함한다. 코덱(120b)은 앞서 설명된 바와 같이 엔트로피 인코더(122b)와 레이트 컨트롤러(124b)를 포함한다.
크로마 서브-샘플링 유닛(110b)은 코덱(120b)에 의한 부호화 이전에 입력되는 영상 데이터에 대한 서브-샘플링 동작을 수행한다. 크로마 서브-샘플링 유닛(110b)은 코덱(120b)의 레이트 컨트롤러(124b)의 제어에 따라, 입력되는 영상 데이터에 대한 크로마 성분에 대한 서브-샘플링 동작을 활성화하거나 또는 비활성화한다. 만일, 레이트 컨트롤러(124b)가 서브-샘플링 동작을 활성화하도록 크로마 서브-샘플링 유닛(110b)을 제어하면, 크로마 서브-샘플링 유닛(110b)은 입력되는 영상 데이터의 크로마 성분에 대한 서브-샘플링을 수행한다. 서브-샘플링에 대해서 시각적으로 덜 민감한 크로마(Chroma) 성분의 데이터 사이즈는 감소될 것이다.
크로마 서브-샘플링 유닛(110b)의 동작을 좀더 자세히 살펴보기로 하자. 먼저, 입력되는 영상 데이터에 대해서 레이트 컨트롤러(124b)가 서브-샘플링 동작을 활성화하면, 크로마 서브-샘플링 유닛(110b)은 여러 가지 방식의 서브-샘플링 모드들 중에서 어느 하나의 모드를 수행할 수 있다. 예를 들면, 크로마 서브-샘플링 유닛(110b)은 입력되는 영상 데이터에 대한 4:4:4 (YCrCb) 서브-샘플링을 수행할 수 있다. 서브-샘플링 방식은 보통 3개의 비율로 나타낸다. 첫 번째는 루마(Luma: Y) 성분에 대한 수직 샘플링의 크기를 나타낸다. 다음이 크로마 성분(Cr)에 대한 수평 샘플링 크기를 나타낸다. 마지막으로 크로마 성분(Cb)에 대한 수평 샘플링 크기를 나타낸다. 크로마 성분들(Cr, Cb)의 샘플링 크기는 루마 성분(Y)에 대한 상대적인 크기로 이해될 수 있다.
4:4:4 서브-샘플링에 의하면, 루마 성분(Y)과 크로마 성분들(Cr, Cb) 각각의 샘플 속도는 동일하다. 4:2:2 서브-샘플링 방식에서는 크로마 성분들(Cr, Cb)의 샘플링 속도는 각각 루마 성분(Y)의 샘플링 속도의 절반에 해당한다. 즉, 크로마 성분들(Cr, Cb) 각각은 2개의 픽셀당 1회의 샘플링이 제공된다. 4:2:0 서브-샘플링 방식에서는 크로마 성분들(Cr, Cb)의 샘플링 속도는 각각 루마 성분(Y)의 샘플링 속도의 1/4에 해당한다. 즉, 4:2:0 서브-샘플링 방식에서 크로마 성분들(Cr, Cb) 각각은 4개의 픽셀당 1회의 샘플링이 제공될 수 있다. 크로마 서브-샘플링 유닛(110b)에 의해서 입력되는 영상 데이터가 크로마 서브-샘플링 처리되면, 영상 데이터의 사이즈는 대폭 감소될 수 있다.
하지만, 레이트 컨트롤러(124b)에 의한 크로마 서브-샘플링 동작이 비활성화되면, 크로마 서브-샘플링 유닛(110b)은 서브-샘플링 처리없이 영상 데이터를 코덱(120b)으로 바이패스(Bypass)할 수 있다.
코덱(120b)은 앞서 설명된 도 1 또는 도 4의 코덱(120, 120a)과 실질적으로 동일하므로 그것에 대한 설명은 생략하기로 한다.
본 발명의 실시 예에 따르면, 본 발명의 실시 예에 따르면, 코덱(120b)에 영상 데이터가 제공되기 이전에 데이터의 양을 적응적으로 줄일 수 있다. 따라서, 코덱의 내부에서 이루어지는 양자화 파라미터(QP)의 조정만으로는 감당하기 어려운 비트율 오버슈트(Bit rate overshoot) 문제를 해결할 수 있다.
도 7은 도 6의 비디오 인코더 장치에 의한 영상 데이터 처리 방법을 보여주는 순서도이다. 도 6 내지 7을 참조하면, 본 발명의 비디오 인코더 장치(100b)는 비트 발생 정보(BGI)를 참조하여 코덱(120b)에 입력되는 영상 데이터에 대한 크로마 서브-샘플링을 통해서 채널의 대역폭 마진을 확보할 수 있다.
단계 S310에서, 이미지 센서로부터 제공되는 영상 데이터가 크로마 서브-샘플링 유닛(110b)으로 제공된다. 크로마 서브-샘플링 유닛(110b)은 수신된 영상 데이터에 대한 감축 동작을 코덱(120b)의 레이트 컨트롤러(124b)의 제어에 따라 수행할 것이다. 그러나 크로마 서브-샘플링 유닛(110b)은 영상 데이터가 하나의 프레임에 있어서 최초 픽셀인 경우에는 감축 동작없이 코덱(120b)으로 바이패스할 수 있다.
단계 S320에서, 코덱(120b)은 수신된 영상 데이터에 대한 부호화를 수행한다. 그리고 코덱(120b)은 부호화의 결과로 비트-스트림(Bit-stream)을 출력한다. 코덱(120b)에 의한 영상 데이터를 부호화하는 과정은 다음과 같다. 코덱(120b)은 조정된 영상 데이터를 이산 여현 변환(Discrete Cosine Transform: 이하, DCT) 과정을 통해서 처리한다. 코덱(120b)은, 이산 여현 변환을 통해서 생성된 데이터를 양자화한다. 양자화된 데이터는 엔트로피 인코더(122b)를 통해서 가변장 부호화(Variable Length Coding: 이하, VLC) 처리되고, 비트-스트림(Bit-stream)으로 출력될 수 있다.
단계 S330에서, 레이트 컨트롤러(124b)는 엔트로피 인코더(122b)로부터 제공되는 비트 발생 정보(BGI)를 참조하여 엔트로피 인코더(122b)에서 발생되는 비트들의 사이즈를 모니터링한다. 레이트 컨트롤러(124b)는 예를 들면, 가상 버퍼(Virtual buffer)에 카운트되는 발생 비트와 출력 비트의 변화를 모니터링한다. 레이트 컨트롤러(124b)는 가상 버퍼(Virtual buffer)에 카운트되는 가상 버퍼 점유율(VBO)이 문턱값(Threshold)을 초과하는지를 모니터링할 수 있다.
단계 S340에서, 레이트 컨트롤러(124b)는 발생 비트의 크기를 나타내는 가상 버퍼 점유율(VBO)을 문턱값(Threshold)과 비교한다. 만일, 가상 버퍼 점유율(VBO)이 문턱값을 초과하지 않는다면, 절차는 다음 이미지 데이터를 제공받기 위해 단계 S310으로 이동한다. 반면, 가상 버퍼 점유율(VBO)이 문턱값을 초과하는 경우, 절차는 크로마 서브-샘플링 유닛(110b)에 의한 영상 데이터 감축을 수행하기 위한 단계 S350으로 이동한다.
단계 S350에서, 레이트 컨트롤러(124b)는 발생하는 비트 수를 줄이도록 크로마 서브-샘플링 유닛(110b)에 제어 신호를 제공한다. 크로마 서브-샘플링 유닛(110b)은 레이트 컨트롤러(124b)의 제어 신호에 응답하여 이후에 입력되는 영상 데이터(예를 들면, 픽셀 데이터)에 대한 크로마 서브-샘플링 동작을 실시한다. 크로마 서브-샘플링 유닛(110b)에 의해서 영상 데이터는 일정부분 제거된 상태로 코덱(120b)에 전달될 것이다.
상술한 단계들에 따라 현재 부호화 처리되는 영상 데이터의 비트 발생의 정도에 따라 이후에 입력되는 영상 데이터에 대한 크로마 서브-샘플링 동작의 실시 여부가 결정된다. 따라서, 코덱(120b)에 제공되는 조정된 영상 데이터의 사이즈는 제한된 채널 대역폭 내에서 비트-스트림이 발생하도록 할 것이다.
도 8은 도 7의 크로마 서브-샘플링 동작을 수행하는 단계 S350의 동작을 예시적으로 보여주는 순서도이다. 도 8을 참조하면, 레이트 컨트롤러(124b)에 의해서 감지되는 가상 버퍼의 점유율(VBO)에 따라 복수의 샘플링 방식들(4:4:4, 4:2:2, 4:2:0) 중에서 어느 하나를 선택할 수 있다.
단계 S351에서, 레이트 컨트롤러(124b)는 가상 버퍼(Virtual Buffer)의 점유율(VBO) 레벨에 따라 서로 다른 샘플링률의 서브-샘플링 동작을 수행할 수 있다. 레이트 컨트롤러(124b)는 발생 비트의 크기를 나타내는 가상 버퍼 점유율(VBO)의 크기를 검출한다. 만일, 가상 버퍼 점유율(VBO)이 제 1 문턱값(T1)을 초과하지 않는다면, 절차는 4:4:4 크로마 서브-샘플링을 수행하기 위한 단계 S352로 이동한다. 그러나 가상 버퍼 점유율(VBO)이 제 1 문턱값(T1)보다 크고 제 2 문턱값(T2)보다 작다면, 절차는 4:2:2 크로마 서브-샘플링을 수행하기 위한 단계 S354로 이동한다. 가상 버퍼 점유율(VBO)이 제 2 문턱값(T2)보다 크다면, 절차는 4:2:0 크로마 서브-샘플링을 수행하기 위한 단계 S356으로 이동한다.
단계 S352에서, 크로마 서브-샘플링 유닛(110b)은 4:4:4 크로마 서브-샘플링 동작을 수행한다. 4:4:4 크로마 서브-샘플링 동작은 복수의 크로마 서브-샘플링 모드들 중에서 가장 데이터의 손실이 적은 서브-샘플링에 해당된다.
단계 S354에서, 크로마 서브-샘플링 유닛(110b)은 4:2:2 크로마 서브-샘플링 동작을 수행한다. 4:2:2 크로마 서브-샘플링 동작에서, 크로마 성분들(Cr, Cb)의 샘플링률은 루마 성분(Y)의 샘플링률의 절반에 대응한다.
단계 S356에서, 크로마 서브-샘플링 유닛(110b)은 4:2:0 크로마 서브-샘플링 동작을 수행한다. 4:2:0 크로마 서브-샘플링 동작에서, 크로마 성분들(Cr, Cb)의 샘플링률은 루마 성분(Y)의 샘플링률보다 1/4에 대응한다. 4:2:0 크로마 서브-샘플링 동작은 복수의 크로마 서브-샘플링 모드들 중에서 데이터의 손실이 상대적으로 큰 모드에 해당한다. 따라서, 비트율 오버슈트가 우려되는 상황에서 입력되는 영상 데이터에 대해 4:2:0 크로마 서브-샘플링을 적용하면 코덱(120b)의 부담을 훨씬 감소시킬 수 있을 것이다.
각각의 크로마 서브-샘플링 동작들(S352, S354, S356)이 종료되면, 절차는 단계 S310으로 복귀하여 새로운 영상 데이터에 대한 처리를 수행하게 될 것이다. 이상에서는 3개의 서로 다른 샘플링률에 대응하는 크로마 서브-샘플링 모드들이 설명되었으나, 본 발명은 여기에 국한되지 않는다. 보다 다양한 방식의 크로마 서브-샘플링 모드들이 본 발명에 적용될 수 있을 것이다.
도 9는 본 발명의 또 다른 특징에 따른 비디오 인코더 장치를 보여주는 블록도이다. 도 9를 참조하면, 비디오 인코더 장치(100c)는 비트폭 감소 유닛(112c)과 크로마 서브-샘플링 유닛(114c)을 포함하는 전처리부(110c)와 코덱(120c)을 포함한다. 코덱(120c)은 앞서 설명된 바와 같이 엔트로피 인코더(122c)와 레이트 컨트롤러(124c)를 포함한다.
전처리부(110c)는 코덱(120c)에 제공될 영상 데이터의 사이즈를 축소시키기 위한 적어도 2개의 유닛들을 포함한다. 예시적으로, 비트폭 감소 유닛(112c)과 크로마 서브-샘플링 유닛(114c)이 이러한 구성으로 제공될 수 있다. 하지만, 그 밖의 다양한 방식으로 영상 데이터의 사이즈를 줄이기 위한 구성이나 알고리즘들이 복합적으로 전처리부(110c)에서 구동될 수 있음은 잘 이해될 것이다. 비트폭 감소 유닛(112c)과 크로마 서브-샘플링 유닛(114c)의 구체적인 동작은 앞서 설명될 실시 예들에서 설명되었으므로 상세한 설명은 생략하기로 한다.
레이트 컨트롤러(124c)는 엔트로피 인코더(122c)로부터 제공되는 비트 발생 정보(BGI)를 이용하여 전처리부(110c)를 제어한다. 레이트 컨트롤러(124c)는 비트 발생 정보(BGI)를 참조하여 전처리부(110c)에 포함되는 복수의 유닛들 중 적어도 하나를 활성화할 수 있다. 예를 들면, 비트 발생의 크기가 급격하게 상승하는 것으로 판단되면, 레이트 컨트롤러(124c)는 비트폭 감소 유닛(112c)과 크로마 서브-샘플링 유닛(114c)을 동시에 활성화할 수 있다. 반면, 레이트 컨트롤러(124c)는 전처리부(110c)에 포함되는 복수의 유닛들 중 어느 하나만을 활성화할 수도 있을 것이다. 이러한 레이트 컨트롤러(124c)의 동작은 후술하는 도 10 및 도 11에서 상세히 설명하기로 한다.
본 발명의 실시 예에 따르면, 본 발명의 실시 예에 따르면, 코덱(120c)에 영상 데이터가 제공되기 이전에, 영상 데이터의 양이 적응적으로 감소될 수 있다. 따라서, 코덱(120c)의 내부에서 이루어지는 양자화 파라미터(QP)의 조정만으로는 감당하기 어려운 비트율 오버슈트(Bit rate overshoot) 문제를 해결할 수 있다.
도 10은 도 9의 비디오 인코더 장치에 의한 영상 데이터 처리 방법을 보여주는 순서도이다. 도 9 내지 10을 참조하면, 본 발명의 비디오 인코더 장치(100c)는 비트 발생 정보(BGI)를 참조하여 코덱(120c)에 입력되는 영상 데이터에 대한 다양한 레벨의 감축 동작(Decimation operation)을 수행할 수 있다.
단계 S410에서, 이미지 센싱 수단으로부터 제공되는 영상 데이터가 전처리부(110c)에 제공된다. 전처리부(110c)는 수신된 영상 데이터에 대한 감축 동작을 코덱(120c)의 레이트 컨트롤러(124c)의 제어에 따라 수행할 것이다. 그러나 전처리부(110c)는 영상 데이터가 하나의 프레임에 있어서 최초 픽셀인 경우에는 감축 동작없이 코덱(120b)으로 바이패스할 수도 있다.
단계 S420에서, 코덱(120c)은 수신된 영상 데이터에 대한 부호화를 수행한다. 그리고 코덱(120c)은 부호화의 결과로 비트-스트림(Bit-stream)을 출력한다. 코덱(120c)은 양자화된 영상 데이터를 엔트로피 인코더(122c)를 통해서 가변장 부호화(VLC) 처리하다. 엔트로피 인코더(122c)에 의해서 비트-스트림(Bit-stream)으로 영상 데이터가 출력되고, 이때 부호화 동작에 의한 비트 발생 정보(BGI)는 레이트 컨트롤러(124c)에 제공된다.
단계 S430에서, 레이트 컨트롤러(124c)는 엔트로피 인코더(122c)로부터 제공되는 비트 발생 정보(BGI)를 참조하여 엔트로피 인코더(122c)에서 발생되는 비트들의 사이즈를 모니터링한다. 레이트 컨트롤러(124c)는 예를 들면, 가상 버퍼(Virtual buffer)에 카운트되는 발생 비트와 출력 비트의 변화를 모니터링한다. 레이트 컨트롤러(124c)는 가상 버퍼(Virtual buffer)에 카운트되는 가상 버퍼 점유율(VBO)이 문턱값(Threshold)을 초과하는지를 모니터링할 수 있다.
단계 S440에서, 레이트 컨트롤러(124c)는 발생 비트의 크기를 나타내는 가상 버퍼 점유율(VBO)을 문턱값(Threshold)과 비교한다. 만일, 가상 버퍼 점유율(VBO)이 문턱값을 초과하지 않는다면, 절차는 다음 이미지 데이터를 제공받기 위해 단계 S410으로 이동한다. 반면, 가상 버퍼 점유율(VBO)이 문턱값을 초과하는 경우, 절차는 전처리부(110c)에 의한 영상 데이터 감축을 수행하기 위한 단계 S450으로 이동한다.
단계 S450에서, 레이트 컨트롤러(124c)는 발생하는 비트 수를 줄이도록 전처리부(110c)에 제어 신호를 제공한다. 레이트 컨트롤러(124c)는 특히 가상 버퍼 점유율(VBO)의 크기를 참조하여 비트폭 감소 유닛(112c)과 크로마 서브-샘플링 유닛(114c)들 중 어느 하나 또는 모두를 활성화할 수 있다.
상술한 단계들에 따라 현재 부호화 처리되는 영상 데이터의 비트 발생의 정도에 따라 이후에 입력되는 영상 데이터에 대한 크로마 서브-샘플링 동작의 실시 여부가 결정된다. 따라서, 코덱(120c)에 제공되는 조정된 영상 데이터의 사이즈는 제한된 채널 대역폭 내에서 비트-스트림(Bit-stream)이 발생하도록 할 것이다.
도 11은 도 10의 전처리 동작에 대응하는 단계 S450의 동작을 예시적으로 보여주는 순서도이다. 도 11을 참조하면, 전처리부(110c)에 의해서 감지되는 가상 버퍼의 점유율(VBO)에 따라 비트폭 감소 유닛(112c)과 크로마 서브-샘플링 유닛(114c) 중 어느 하나 또는 모두가 활성화되는 절차가 기술되어 있다.
단계 S451에서, 레이트 컨트롤러(124c)는 가상 버퍼(Virtual Buffer)의 점유율(VBO) 레벨에 따라 서로 다른 샘플링률의 서브-샘플링 동작을 수행할 수 있다. 레이트 컨트롤러(124b)는 발생 비트의 크기를 나타내는 가상 버퍼 점유율(VBO)의 크기를 검출한다. 만일, 가상 버퍼 점유율(VBO)이 제 1 문턱값(T1)을 초과하지 않는다면, 절차는 비트폭 감소 동작을 수행하기 위한 단계 S452로 이동한다. 반면, 가상 버퍼 점유율(VBO)이 제 1 문턱값(T1)보다 크고 제 2 문턱값(T2)보다 작은 경우, 절차는 크로마 서브-샘플링을 수행하기 위한 단계 S454로 이동한다. 그리고 가상 버퍼 점유율(VBO)이 제 2 문턱값(T2)보다 크다면, 절차는 비트폭 감소 동작 및 크로마 서브-샘플링을 모두 수행하기 위한 단계 S456으로 이동한다.
단계 S452에서, 레이트 컨트롤러(124c)는 전처리부(110c)에 포함되는 복수의 유닛들 중에서 비트폭 감소 유닛(112c)만을 활성화할 것이다. 그러면, 비트폭 감소 유닛(112c)은 입력되는 영상 데이터에 대한 비트폭 감소 동작을 수행하여 코덱(120c)으로 제공할 것이다. 여기서, 단계 452가 하나의 단계로 서술되었으나, 가상 버퍼 점유율(VBO)의 세분화된 레벨에 응답하여 일 회의 연산에서 감소되는 비트의 크기가 다양하게 선택될 수 있을 것이다.
단계 S454에서, 레이트 컨트롤러(124c)는 전처리부(110c)에 포함되는 복수의 유닛들 중에서 크로마 서브-샘플링 유닛(114c)만을 활성화할 것이다. 그러면, 크로마 서브-샘플링 유닛(114c)은 입력되는 영상 데이터에 대한 비트폭 감소 동작을 수행하여 코덱(120c)으로 제공할 것이다. 여기서, 단계 454는 가상 버퍼 점유율(VBO)의 세분화된 레벨에 응답하여 크로마 서브-샘플링 유닛(114c)은 4:4:4, 4:2:2, 4:2:0 크로마 서브-샘플링 방식들 중에서 선택적으로 동작을 수행할 수도 있을 것이다.
단계 S456에서, 레이트 컨트롤러(124c)는 전처리부(110c)에 포함되는 복수의 유닛들 중 비트폭 감소 유닛(112c)과 크로마 서브-샘플링 유닛(114c) 모두를 활성화할 것이다. 그러면, 비트폭 감소 유닛(112c)에 의해서 영상 데이터의 비트폭 감소 동작이 실시될 것이다. 그리고 비트폭 감소 유닛(112c)의 출력에 대해서 크로마 서브-샘플링 유닛(114c)은 크로마 서브-샘플링 동작을 수행하여 코덱(120c)으로 제공할 것이다. 여기서, 비트폭 감소 유닛(112c)과 크로마 서브-샘플링 유닛(114c)의 순서는 바뀔 수 있음은 잘 이해될 것이다.
도 12는 본 발명의 실시 예에 따른 휴대용 단말기를 나타내는 블록도이다. 도 12를 참조하면, 본 발명의 실시 예에 따른 휴대용 단말기(1000)는 이미지 처리부(1100), 무선 송수신부(1200), 오디오 처리부(1300), 이미지 파일 생성부(1400), 메모리(1500), 유저 인터페이스(1600), 그리고 컨트롤러(1700)를 포함한다.
이미지 처리부(1100)는 렌즈(1110), 이미지 센서(1120), 이미지 프로세서(1130), 그리고 디스플레이부(1140)를 포함한다. 무선 송수신부(1210)는 안테나(1210), 트랜시버(1220), 모뎀(1230)을 포함한다. 오디오 처리부(1300)는 오디오 프로세서(1310), 마이크(MIC), 그리고 스피커(SPK)를 포함한다.
이미지 처리부(1100)는 앞서 설명된 실시 예들 중 적어도 어느 하나의 방식으로 영상 데이터를 처리할 수 있다. 즉, 이미지 프로세서(1130)는 이미지 센서(1120)로부터 제공되는 영상 데이터를 코덱에 입력되기 이전에 전처리하여 채널의 대역폭 마진을 확보할 수 있다. 이미지 프로세서(1130)의 전처리부(Pre-processor)는 예를 들면, 비트폭 감소 유닛(Bit precision reduction unit)이나 크로마 서브-샘플링 유닛(Chroma sub-sampling unit)을 포함할 수 있다. 비트폭 감소 유닛(Bit precision reduction unit)이나 크로마 서브-샘플링 유닛(Chroma sub-sampling unit)들의 사용하여 전처리부는 입력되는 영상 데이터의 양을 코덱에 제공하기 전에 감소시킬 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
110, 110c : 전처리부
110a, 112c : 비트폭 감소 유닛
110b, 114c : 크로마 서브-샘플링 유닛
120, 120a, 120b, 120c : 코덱부
122, 122a, 122b, 122c : 엔트로피 인코더
124, 124a, 124b, 124c : 레이트 컨트롤러
125 : 가상 버퍼
1110 : 렌즈
1120 : 이미지 센서
1130 : 이미지 프로세서
1140 : 디스플레이 유닛
1210 : 안테나
1220 : 송수신기
1230 : 모뎀
1310 : 오디오 처리기
1400 : 이미지 파일 생성 유닛
1500 : 메모리
1600 : 유저 인터페이스
1700 : 컨트롤러

Claims (10)

  1. 제 1 영상 데이터를 인코딩하여 비트-스트림으로 출력하고, 상기 인코딩 결과에 따라 레이트 제어 신호를 생성하는 코덱부; 그리고
    상기 레이트 제어 신호에 따라 상기 제 1 영상 데이터에 연속되는 제 2 영상 데이터에 대한 영상 데이터 삭감 동작을 수행하여 상기 코덱부에 전달하는 전처리부를 포함하는 비디오 인코딩 장치.
  2. 제 1 항에 있어서,
    상기 코덱부는 상기 비트-스트림의 발생 비트 수와 전송되는 타깃 비트의 수의 차이가 기준치를 초과하면 상기 전처리부의 상기 영상 데이터 삭감 동작을 활성화하는 상기 레이트 제어 신호를 생성하는 비디오 인코딩 장치.
  3. 제 1 항에 있어서,
    상기 전처리부는 상기 레이트 제어 신호에 응답하여 비트폭 삭감 동작 또는 크로마 서브-샘플링 동작을 통해서 상기 제 2 영상 데이터의 일부를 제거하는 비디오 인코딩 장치.
  4. 제 1 항에 있어서,
    상기 코덱부는:
    상기 제 1 영상 데이터에 대한 가변장 부호화를 수행하여 상기 비트-스트림으로 출력하는 엔트로피 인코더; 그리고
    상기 엔트로피 인코더의 비트 발생 정보를 참조하여 상기 레이트 제어 신호를 출력하는 레이트 컨트롤러를 포함하는 비디오 인코딩 장치.
  5. 제 4 항에 있어서,
    상기 레이트 컨트롤러는 상기 엔트로피 부호기의 발생 비트 수와 채널을 통해서 전송되는 타깃 비트 수의 차감된 값을 저장하는 가상 버퍼를 포함하는 비디오 인코딩 장치.
  6. 제 1 항에 있어서,
    상기 전처리부는 상기 제 1 영상 데이터에 대한 상기 데이터 삭감 동작을 수행하기 위한 비트폭 감소 유닛 또는 크로마 서브-샘플링 유닛을 포함하는 비디오 인코딩 장치.
  7. 영상 데이터의 인코딩 방법에 있어서:
    입력되는 제 1 영상 데이터를 비트-스트림으로 인코딩하는 단계;
    상기 비트-스트림의 데이터의 양을 검출하는 단계; 그리고
    상기 검출 결과에 따라 상기 제 1 영상 데이터에 후속되는 제 2 영상 데이터를 삭감하는 단계를 포함하는 인코딩 방법.
  8. 제 7 항에 있어서,
    상기 삭감된 제 2 영상 데이터를 코덱에 제공하는 단계를 더 포함하는 인코딩 방법.
  9. 제 7 항에 있어서,
    상기 삭감하는 단계에서, 상기 제 2 영상 데이터의 비트폭을 감소하는 단계가 포함되는 인코딩 방법.
  10. 제 7 항에 있어서,
    상기 삭감하는 단계에서, 상기 제 2 영상 데이터에 대한 크로마 서브-샘플링을 수행하는 단계가 포함되는 인코딩 방법.
KR1020120048708A 2012-05-08 2012-05-08 비디오 인코딩 장치 및 그것의 인코딩 방법 KR20130125168A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120048708A KR20130125168A (ko) 2012-05-08 2012-05-08 비디오 인코딩 장치 및 그것의 인코딩 방법
US13/803,500 US20130301700A1 (en) 2012-05-08 2013-03-14 Video encoding device and encoding method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120048708A KR20130125168A (ko) 2012-05-08 2012-05-08 비디오 인코딩 장치 및 그것의 인코딩 방법

Publications (1)

Publication Number Publication Date
KR20130125168A true KR20130125168A (ko) 2013-11-18

Family

ID=49548591

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120048708A KR20130125168A (ko) 2012-05-08 2012-05-08 비디오 인코딩 장치 및 그것의 인코딩 방법

Country Status (2)

Country Link
US (1) US20130301700A1 (ko)
KR (1) KR20130125168A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024025160A1 (ko) * 2022-07-29 2024-02-01 삼성전자 주식회사 저지연 스트리밍을 위해 동영상을 적응적으로 인코딩하는 방법 및 컴퓨팅 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9641791B2 (en) * 2014-03-03 2017-05-02 Microsoft Technology Licensing, Llc Bandwidth aware digital video recording (DVR) scheduling
CN106254875A (zh) * 2016-09-30 2016-12-21 邦彦技术股份有限公司 一种编码器及控制方法
US10412435B2 (en) * 2017-11-15 2019-09-10 Whatsapp Inc. Techniques to dynamically engage a reduced-color mode for streaming video encoding
CN113938631B (zh) * 2021-11-29 2023-11-03 青岛信芯微电子科技股份有限公司 一种基准监视器、图像帧截取方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363118B1 (en) * 1999-02-12 2002-03-26 Sony Corporation Apparatus and method for the recovery of compression constants in the encoded domain
US6954499B2 (en) * 2000-03-15 2005-10-11 Victor Company Of Japan, Ltd Moving picture coding, coded-moving picture bitstream conversion and coded-moving picture bitstream multiplexing
US7177358B2 (en) * 2000-06-27 2007-02-13 Mitsubishi Denki Kabushiki Kaisha Picture coding apparatus, and picture coding method
US7773158B2 (en) * 2005-10-12 2010-08-10 Panasonic Corporation Visual processing device, display device, and integrated circuit
US20070286277A1 (en) * 2006-06-13 2007-12-13 Chen Xuemin Sherman Method and system for video compression using an iterative encoding algorithm
WO2008049446A1 (en) * 2006-10-25 2008-05-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Quality scalable coding
US20110268185A1 (en) * 2009-01-08 2011-11-03 Kazuteru Watanabe Delivery system and method and conversion device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024025160A1 (ko) * 2022-07-29 2024-02-01 삼성전자 주식회사 저지연 스트리밍을 위해 동영상을 적응적으로 인코딩하는 방법 및 컴퓨팅 장치

Also Published As

Publication number Publication date
US20130301700A1 (en) 2013-11-14

Similar Documents

Publication Publication Date Title
JP5777080B2 (ja) 合成ビデオのためのロスレス・コード化および関連するシグナリング方法
EP3001885B1 (en) Region-of-interest aware video coding
JP5180294B2 (ja) ビデオ符号化において、フレームの複雑さ、バッファレベル、およびイントラフレームの位置を利用するバッファベースのレート制御
US7653129B2 (en) Method and apparatus for providing intra coding frame bit budget
US9071841B2 (en) Video transcoding with dynamically modifiable spatial resolution
US8279923B2 (en) Video coding method and video coding apparatus
US20100027663A1 (en) Intellegent frame skipping in video coding based on similarity metric in compressed domain
KR20140110221A (ko) 비디오 인코더, 장면 전환 검출 방법 및 비디오 인코더의 제어 방법
US9936203B2 (en) Complex region detection for display stream compression
KR20120013437A (ko) 비디오 인코딩 및 디코딩에 대한 개선된 양자화 라운딩 오프셋 조정을 위한 방법들 및 장치
JPH08256335A (ja) 量子化パラメータ決定装置及び方法
JPWO2009157577A1 (ja) 画像処理装置及び画像処理方法
KR20130125168A (ko) 비디오 인코딩 장치 및 그것의 인코딩 방법
US10356428B2 (en) Quantization parameter (QP) update classification for display stream compression (DSC)
Naccari et al. Intensity dependent spatial quantization with application in HEVC
KR100229796B1 (ko) 열화영상에 대한 보상기능을 갖는 영상 복호화 시스템
JP2006191253A (ja) レート変換方法及びレート変換装置
US20050036548A1 (en) Method and apparatus for selection of bit budget adjustment in dual pass encoding
US20050100231A1 (en) Pseudo-frames for MPEG-2 encoding
JP2004328150A (ja) 動画像符号化装置及び方法
JP4492777B2 (ja) 動画像符号化装置
EP1841237B1 (en) Method and apparatus for video encoding
US9485509B2 (en) Image compression device, image compression method, image decompression device, and image decompression method
JP5873290B2 (ja) 符号化装置
Pan et al. Content adaptive frame skipping for low bit rate video coding

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid