KR102274747B1 - CODEC, SYSTEM ON CHIP(SoC) INCLUDING THE SAME, AND DATA PROCESSING SYSTEM INCLUDING THE SoC - Google Patents

CODEC, SYSTEM ON CHIP(SoC) INCLUDING THE SAME, AND DATA PROCESSING SYSTEM INCLUDING THE SoC Download PDF

Info

Publication number
KR102274747B1
KR102274747B1 KR1020140164123A KR20140164123A KR102274747B1 KR 102274747 B1 KR102274747 B1 KR 102274747B1 KR 1020140164123 A KR1020140164123 A KR 1020140164123A KR 20140164123 A KR20140164123 A KR 20140164123A KR 102274747 B1 KR102274747 B1 KR 102274747B1
Authority
KR
South Korea
Prior art keywords
current frame
codec
gop
frame
bits
Prior art date
Application number
KR1020140164123A
Other languages
Korean (ko)
Other versions
KR20160061613A (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 KR1020140164123A priority Critical patent/KR102274747B1/en
Priority to US14/868,427 priority patent/US9967573B2/en
Publication of KR20160061613A publication Critical patent/KR20160061613A/en
Application granted granted Critical
Publication of KR102274747B1 publication Critical patent/KR102274747B1/en

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/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/177Methods 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 group of pictures [GOP]
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods

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

본 발명의 실시 예에 따른 코덱은 현재 프레임을 수신하고, 수신된 현재 프레임의 타입을 결정하고, 상기 현재 프레임의 레이트 컨트롤 파라미터(rate control parameter)들을 설정하는 코덱 CPU, 상기 현재 프레임을 포함하는 제1GOP(group of picture)에 대한 전체 타겟 비트(target bit)를 할당하고, 결정된 현재 프레임의 타입과 설정된 레이트 컨트롤 파라미터들에 기초하여, 상기 제1GOP에 포함된 프레임들 각각에 대한 타겟 비트를 할당하는 비트율 예측기, 및 상기 현재 프레임의 상기 레이트 컨트롤 파라미터들을 조정하고, 상기 비트율 예측기에 의해 할당된 프레임들 각각에 대한 타겟 비트와 조정된 레이트 컨트롤 파라미터들을 이용하여 상기 현재 프레임에 포함된 블록들 각각에 대한 양자화 파라미터를 생성하는 부호율 제어기를 포함할 수 있다.A codec according to an embodiment of the present invention includes a codec CPU that receives a current frame, determines a type of a received current frame, and sets rate control parameters of the current frame, and a second codec including the current frame. Allocating all target bits for a group of picture (GOP), and allocating a target bit for each of the frames included in the first GOP based on the determined type of the current frame and set rate control parameters A bit rate predictor, and adjusting the rate control parameters of the current frame, and using the target bit for each of the frames allocated by the bit rate predictor and the adjusted rate control parameters for each of the blocks included in the current frame It may include a code rate controller that generates a quantization parameter.

Description

코덱과 이를 포함하는 시스템 온 칩, 및 상기 시스템 온 칩을 포함하는 데이터 처리 시스템{CODEC, SYSTEM ON CHIP(SoC) INCLUDING THE SAME, AND DATA PROCESSING SYSTEM INCLUDING THE SoC}Codec, system on chip including same, and data processing system including system on chip {CODEC, SYSTEM ON CHIP (SoC) INCLUDING THE SAME, AND DATA PROCESSING SYSTEM INCLUDING THE SoC}

본 발명의 개념에 따른 실시 예는 코덱에 관한 것으로, 특히 이전 GOP(group of picture)의 비트-레이트(bit-rate)에 관계없이 현재 GOP에 할당되는 비트-레이트를 예측하고, I-프레임에 대한 양자화 파라미터를 조정하고, 상기 I-프레임에서 발생하는 비트량을 낮출 수 있는 코덱, 상기 코덱을 포함하는 시스템 온 칩, 및 상기 시스템 온 칩을 포함하는 처리 시스템에 관한 것이다.An embodiment according to the concept of the present invention relates to a codec, in particular, predicting the bit-rate allocated to the current GOP regardless of the bit-rate of the previous group of picture (GOP), and predicting the bit-rate in the I-frame. The present invention relates to a codec capable of adjusting a quantization parameter for an I-frame and reducing the amount of bits generated in the I-frame, a system on a chip including the codec, and a processing system including the system on chip.

인터넷 프로토콜(internet protocol(IP)) 네트워크가 발달함에 따라, 상기 IP 네트워크를 통한 비디오 통신이 큰 인기를 얻고 있다. 케이블 네트워크를 통한 전통적인 영상 전송과 달리, IP 네트워크를 통한 영상 전송은 효율적인 전송을 위해, 영상 압축에 대한 여러 가지 방법들이 모색되고 있다.BACKGROUND With the development of Internet protocol (IP) networks, video communication over the IP networks has become very popular. Unlike traditional video transmission through a cable network, various methods for video compression have been sought for efficient transmission of video transmission over an IP network.

한편, 모바일 기기의 IP 네트워크를 통한 영상 전송은 상대적으로 전송 과정에서 데이터 패킷 로스(loss)가 발생할 가능성이 높으므로, 사용자는 프레임 드롭 (drop)으로 인한 영상의 끊김 및 화질저하 등 불편함이 있다.On the other hand, since video transmission through an IP network of a mobile device has a relatively high possibility of data packet loss in the transmission process, users are inconvenient such as video cutout and image quality degradation due to frame drop. .

모바일 기기에서, 특히 움직임이 많지 않은 영상을 압축할 때에 P-프레임에서는 스킵(skip)모드가 많이 발생하여 상대적으로 I-프레임 압축할 때에 많은 비트가 발생한다. 이러한 경우에 압축된 I-프레임을 전송할 경우에는 수신 단말기의 버퍼 한도를 초과하게 되어 프레임 드롭(drop)이 발생하는 문제점이 있다.In a mobile device, especially when compressing an image with little motion, a skip mode occurs a lot in a P-frame, so that a lot of bits are generated when compressing an I-frame. In this case, when the compressed I-frame is transmitted, the buffer limit of the receiving terminal is exceeded, and there is a problem in that a frame drop occurs.

본 발명이 이루고자 하는 기술적인 과제는 많은 비트가 할당되는 프레임에 낮은 비트-레이트를 할당할 수 있도록, 상기 비트-레이트를 조절하고, 상기 프레임을 부호화할 수 있는 코덱, 상기 코덱을 포함하는 시스템 온 칩, 및 상기 시스템 온 칩을 포함하는 데이터 처리 시스템을 제공하는 것이다.A technical problem to be achieved by the present invention is to adjust the bit-rate so that a low bit-rate can be allocated to a frame to which many bits are allocated, a codec capable of encoding the frame, and a system on including the codec A chip and a data processing system including the system-on-a-chip are provided.

본 발명의 실시 예에 따른 코덱은 현재 프레임을 수신하고, 수신된 현재 프레임의 타입을 결정하고, 상기 현재 프레임의 레이트 컨트롤 파라미터(rate control parameter)들을 설정하는 코덱 CPU, 상기 현재 프레임을 포함하는 제1GOP(group of picture)에 대한 전체 타겟 비트(target bit)를 할당하고, 결정된 현재 프레임의 타입과 설정된 레이트 컨트롤 파라미터들에 기초하여, 상기 제1GOP에 포함된 프레임들 각각에 대한 타겟 비트를 할당하는 비트율 예측기, 및 상기 현재 프레임의 상기 레이트 컨트롤 파라미터들을 조정하고, 상기 비트율 예측기에 의해 할당된 프레임들 각각에 대한 타겟 비트와 조정된 레이트 컨트롤 파라미터들을 이용하여 상기 현재 프레임에 포함된 블록들 각각에 대한 양자화 파라미터를 생성하는 부호율 제어기를 포함할 수 있다.A codec according to an embodiment of the present invention includes a codec CPU that receives a current frame, determines a type of a received current frame, and sets rate control parameters of the current frame, and a second codec including the current frame. Allocating all target bits for a group of picture (GOP), and allocating a target bit for each of the frames included in the first GOP based on the determined type of the current frame and set rate control parameters A bit rate predictor, and adjusting the rate control parameters of the current frame, and using the target bit for each of the frames allocated by the bit rate predictor and the adjusted rate control parameters for each of the blocks included in the current frame It may include a code rate controller that generates a quantization parameter.

상기 현재 프레임의 타입이 I-프레임(intra frame)인 경우, 상기 비트율 예측기는, 이전 프레임을 포함하는 제2GOP에 관계없이, 상기 제1GOP에 대한 전체 타겟 비트를 할당하고, 할당된 제1GOP에 대한 상기 전체 타켓 비트를 이용하여 상기 현재 프레임에 대한 타겟 비트를 할당할 수 있다.When the type of the current frame is an I-frame (intra frame), the bit rate predictor allocates all target bits for the first GOP regardless of the second GOP including the previous frame, and A target bit for the current frame may be allocated using the entire target bit.

상기 현재 프레임의 타입이 I-프레임(intra frame)이 아닌 경우, 상기 비트율 예측기는 상기 제1GOP에 대해 할당된 전체 타겟 비트와 상기 제1GOP에 포함된 이전 프레임들을 부호화하기 위해 사용한 비트 수의 차이를 이용하여 상기 현재 프레임에 대한 상기 타겟 비트를 할당할 수 있다.When the type of the current frame is not an I-frame (intra frame), the bit rate predictor determines the difference between the total target bits allocated for the first GOP and the number of bits used to encode previous frames included in the first GOP. It is possible to allocate the target bit for the current frame using

상기 비트율 예측기는, 제1GOP에 포함되고 처리되지 않은 프레임들의 개수에 기초하여, 상기 현재 프레임에 대한 상기 타겟 비트를 할당할 수 있다.The bit rate predictor may allocate the target bit for the current frame based on the number of unprocessed frames included in the first GOP.

상기 블록들 각각에 대한 상기 양자화 파라미터에 기초하여, 상기 현재 프레임을 부호화하고, 부호화 된 현재 프레임을 출력하는 인코더, 및 상기 부호화 된 현재 프레임을 저장하는 코덱 메모리를 더 포함하고, 상기 코덱 CPU는 상기 코덱 메모리에 저장된 상기 부호화 된 현재 프레임에 기초하여, 상기 코덱 메모리의 포화 여부를 체크할 수 있다.and an encoder for encoding the current frame and outputting the encoded current frame based on the quantization parameter for each of the blocks, and a codec memory for storing the encoded current frame, wherein the codec CPU is configured to: Based on the encoded current frame stored in the codec memory, it is possible to check whether the codec memory is saturated.

상기 코덱 메모리가 포화 된 경우에, 상기 코덱 CPU는 상기 제1GOP에 포함된 나머지 프레임들에 대한 부호화를 스킵(skip)할 수 있다.When the codec memory is saturated, the codec CPU may skip encoding of the remaining frames included in the first GOP.

상기 부호율 제어기는 상기 현재 프레임에 포함된 상기 블록들 각각에 대한 상기 양자화 파라미터를 조정하고, 블록별로 조정된 양자화 파라미터를 상기 인코더로 전송하고, 상기 인코더는 상기 블록별로 상기 조정된 양자화 파라미터를 이용하여 상기 현재 프레임에 포함된 상기 블록들 각각에 대한 부호화를 수행할 수 있다.The code rate controller adjusts the quantization parameter for each of the blocks included in the current frame, transmits the quantization parameter adjusted for each block to the encoder, and the encoder uses the adjusted quantization parameter for each block Thus, encoding may be performed on each of the blocks included in the current frame.

본 발명의 실시 예에 따른 시스템 온 칩은 영상 데이터를 처리하고, 처리된 영상 데이터를 이용하여 현재 프레임을 생성하고 출력하는 전-처리 회로, 및 상기 현재 프레임을 수신하고, 상기 현재 프레임을 부호화하는 코덱을 포함하고, 상기 코덱은, 현재 프레임을 수신하고, 수신된 현재 프레임의 타입을 결정하고, 상기 현재 프레임의 레이트 컨트롤 파라미터들을 설정하는 코덱 CPU, 상기 현재 프레임을 포함하는 제1GOP(group of picture)에 대한 전체 타겟 비트를 할당하고, 결정된 현재 프레임의 타입과 설정된 레이터 컨트롤 파라미터들에 기초하여, 상기 제1GOP에 포함된 프레임들 각각에 대한 타겟 비트를 할당하는 비트율 예측기, 및 상기 현재 프레임의 상기 레이트 컨트롤 파라미터들을 조정하고, 상기 비트율 예측기에 의해 할당된 프레임들 각각에 대한 타겟 비트와 조정된 레이트 컨트롤 파라미터들을 이용하여 상기 현재 프레임에 포함된 블록들 각각에 대한 양자화 파라미터를 생성하는 부호율 제어기를 포함할 수 있다.A system-on-chip according to an embodiment of the present invention includes a pre-processing circuit that processes image data, generates and outputs a current frame using the processed image data, and receives the current frame and encodes the current frame. a codec, wherein the codec includes a codec CPU that receives a current frame, determines a type of a received current frame, and sets rate control parameters of the current frame, a first group of picture (GOP) including the current frame ), a bit rate predictor for allocating target bits for each of the frames included in the first GOP based on the determined type of the current frame and the set rate control parameters, and the current frame. A code rate controller that adjusts rate control parameters and generates a quantization parameter for each of the blocks included in the current frame by using the target bit for each of the frames allocated by the bit rate predictor and the adjusted rate control parameters. may include

상기 현재 프레임의 타입이 I-프레임(intra frame)인 경우에, 상기 비트율 예측기는 이전 프레임을 포함하는 제2GOP에 관계없이, 상기 제1GOP에 대한 전체 타겟 비트를 할당하고, 할당된 상기 제1GOP에 대한 상기 전체 타겟 비트를 이용하여 상기 현재 프레임에 대한 타겟 비트를 할당할 수 있다.When the type of the current frame is an I-frame (intra frame), the bit rate predictor allocates all target bits for the first GOP regardless of the second GOP including the previous frame, and assigns the entire target bits to the allocated first GOP. A target bit for the current frame may be allocated using the entire target bit for .

상기 현재 프레임의 타입이 I-프레임(intra frame)이 아닌 경우에, 상기 비트율 예측기는 상기 제1GOP에 대해 할당된 전체 타겟 비트와 상기 제1GOP에 포함된 이전 프레임들을 부호화하기 위해 사용한 비트 수의 차이를 이용하여 상기 현재 프레임에 대한 상기 타겟 비트를 할당할 수 있다.When the type of the current frame is not an I-frame (intra frame), the bit rate predictor is the difference between all target bits allocated for the first GOP and the number of bits used to encode previous frames included in the first GOP can be used to allocate the target bit for the current frame.

상기 비트율 예측기는 제1GOP에 포함되고, 처리되지 않은 프레임들의 개수에 기초하여 상기 현재 프레임에 대한 상기 타겟 비트를 할당할 수 있다.The bit rate predictor may be included in the first GOP and allocate the target bit for the current frame based on the number of unprocessed frames.

상기 블록들 각각에 대한 상기 양자화 파라미터에 기초하여, 상기 현재 프레임을 부호화하고, 부호화 된 현재 프레임을 출력하는 인코더, 및 상기 부호화 된 현재 프레임을 저장하는 코덱 메모리를 더 포함하고, 상기 코덱 CPU는 상기 코덱 메모리에 저장된 상기 부호화 된 현재 프레임에 기초하여, 상기 코덱 메모리의 포화 여부를 체크할 수 있다.and an encoder for encoding the current frame and outputting the encoded current frame based on the quantization parameter for each of the blocks, and a codec memory for storing the encoded current frame, wherein the codec CPU is configured to: Based on the encoded current frame stored in the codec memory, it is possible to check whether the codec memory is saturated.

상기 코덱 메모리가 포화 된 경우에, 상기 코덱 CPU는 상기 제1GOP에 포함된 나머지 프레임들에 대한 부호화를 스킵할 수 있다.When the codec memory is saturated, the codec CPU may skip encoding of the remaining frames included in the first GOP.

상기 부호율 제어기는 상기 현재 프레임에 포함된 상기 블록들 각각에 대한 상기 양자화 파라미터를 조정하고, 블록별로 조정된 양자화 파라미터를 상기 인코더로 전송하고, 상기 인코더는 상기 블록별로 상기 조정된 양자화 파라미터를 이용하여 상기 현재 프레임에 포함된 상기 블록들 각각에 대한 부호화를 수행할 수 있다.The code rate controller adjusts the quantization parameter for each of the blocks included in the current frame, transmits the quantization parameter adjusted for each block to the encoder, and the encoder uses the adjusted quantization parameter for each block Thus, encoding may be performed on each of the blocks included in the current frame.

본 발명의 실시 예에 따른 데이터 처리 시스템은 영상 통화 애플리케이션이 실행되면, 영상 데이터를 생성하는 카메라 장치, 상기 카메라 장치로부터 수신된 영상 데이터를 처리하고, 처리된 영상 데이터를 이용하여 현재 프레임을 생성하고 출력하는 전-처리 회로, 및 상기 현재 프레임을 수신하고, 상기 현재 프레임을 부호화하는 코덱을 포함하고, 상기 코덱은, 현재 프레임을 수신하고, 수신된 현재 프레임의 타입을 결정하고, 상기 현재 프레임의 레이트 컨트롤 파라미터들을 설정하는 코덱 CPU, 상기 현재 프레임을 포함하는 제1GOP(group of picture)에 대한 전체 타겟 비트를 할당하고, 결정된 현재 프레임의 타입과 설정된 레이트 컨트롤 파라미터들에 기초하여, 상기 제1GOP에 포함된 프레임들 각각에 대한 타겟 비트를 할당하는 비트율 예측기, 및 상기 현재 프레임의 상기 레이트 컨트롤 파라미터들을 조정하고, 상기 비트율 예측기에 의해 할당된 프레임들 각각에 대한 타겟 비트와 조정된 레이트 컨트롤 파라미터 파라미터들을 이용하여 상기 현재 프레임에 포함된 블록들 각각에 대한 양자화 파라미터를 생성하는 부호율 제어기를 포함할 수 있다.When a video call application is executed, the data processing system according to an embodiment of the present invention includes a camera device for generating image data, processing image data received from the camera device, and generating a current frame using the processed image data. a pre-processing circuit that outputs, and a codec that receives the current frame and encodes the current frame, wherein the codec receives the current frame, determines a type of the received current frame, and A codec CPU that sets rate control parameters, allocates all target bits for a first group of picture (GOP) including the current frame, and based on the determined type of the current frame and the set rate control parameters, to the first GOP a bit rate predictor for allocating a target bit for each of the included frames, and adjusting the rate control parameters of the current frame, and calculating the target bit and adjusted rate control parameter parameters for each of the frames allocated by the bit rate predictor It may include a code rate controller that generates a quantization parameter for each of the blocks included in the current frame by using it.

상기 현재 프레임의 타입이 I-프레임(intra frame)인 경우에, 상기 비트율 예측기는 이전 프레임을 포함하는 제2GOP에 관계없이, 상기 제1GOP에 대한 전체 타겟 비트를 할당하고, 할당된 상기 제1GOP에 대한 상기 전체 타겟 비트를 이용하여 상기 현재 프레임에 대한 타겟 비트를 할당할 수 있다.When the type of the current frame is an I-frame (intra frame), the bit rate predictor allocates all target bits for the first GOP regardless of the second GOP including the previous frame, and assigns the entire target bits to the allocated first GOP. A target bit for the current frame may be allocated using the entire target bit for .

상기 현재 프레임의 타입이 I-프레임(intra frame)이 아닌 경우에, 상기 비트율 예측기는 상기 제1GOP에 대해 할당된 전체 타겟 비트와 상기 제1GOP에 포함된 이전 프레임들을 부호화하기 위해 사용한 비트 수의 차이를 이용하여 상기 현재 프레임에 대한 상기 타겟 비트를 할당할 수 있다.When the type of the current frame is not an I-frame (intra frame), the bit rate predictor is the difference between all target bits allocated for the first GOP and the number of bits used to encode previous frames included in the first GOP can be used to allocate the target bit for the current frame.

상기 비트율 예측기는 제1GOP에 포함되고, 처리되지 않은 프레임들의 개수에 기초하여 상기 현재 프레임에 대한 상기 타겟 비트를 할당할 수 있다.The bit rate predictor may be included in the first GOP and allocate the target bit for the current frame based on the number of unprocessed frames.

상기 블록들 각각에 대한 상기 양자화 파라미터에 기초하여, 상기 현재 프레임을 부호화하고, 부호화 된 현재 프레임을 출력하는 인코더, 및 상기 부호화 된 현재 프레임을 저장하는 코덱 메모리를 더 포함하고, 상기 코덱 CPU는 상기 코덱 메모리에 저장된 상기 부호화 된 현재 프레임에 기초하여, 상기 코덱 메모리의 포화 여부를 체크할 수 있다.and an encoder for encoding the current frame and outputting the encoded current frame based on the quantization parameter for each of the blocks, and a codec memory for storing the encoded current frame, wherein the codec CPU is configured to: Based on the encoded current frame stored in the codec memory, it is possible to check whether the codec memory is saturated.

상기 부호율 제어기는 상기 현재 프레임에 포함된 상기 블록들 각각에 대한 상기 양자화 파라미터를 조정하고, 블록별로 조정된 양자화 파라미터를 상기 인코더로 전송하고, 상기 인코더는 상기 블록별로 상기 조정된 양자화 파라미터를 이용하여 상기 현재 프레임에 포함된 상기 블록들 각각에 대한 부호화를 수행할 수 있다.The code rate controller adjusts the quantization parameter for each of the blocks included in the current frame, transmits the quantization parameter adjusted for each block to the encoder, and the encoder uses the adjusted quantization parameter for each block Thus, encoding may be performed on each of the blocks included in the current frame.

본 발명의 실시 예에 따른 코덱과 이를 포함하는 장치들은 I-프레임의 부호화되는 비트량을 제한하여, 상기 I-프레임을 부호화할 수 있는 효과가 있다.The codec according to an embodiment of the present invention and devices including the same have the effect of encoding the I-frame by limiting the amount of encoded bits of the I-frame.

따라서, 상기 코덱과 이를 포함하는 상기 장치들은 영상 데이터 전송에 있어서 프레임 드롭(drop)을 감소시키고, 화질열화를 줄일 수 있는 효과가 있다.Accordingly, the codec and the devices including the codec are effective in reducing a frame drop in image data transmission and reducing image quality degradation.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 2는 도 1에 도시된 데이터 처리 시스템을 포함하는 영상 통신 시스템의 블록도이다.
도 3은 도 1과 도 2에 도시된 코덱의 개략적인 블록도이다.
도 4는 도 3에 도시된 코덱의 구체적인 블록도이다.
도 5는 도 4의 비트율 예측기가 현재 프레임이 I-프레임인 경우에 GOP(group of picture)에 대한 타겟 비트를 할당하는 방법을 설명하기 위한 블록도이다.
도 6는 도 4의 비트율 예측기가 현재 프레임이 I-프레임이 아닌 경우에 GOP에 대한 타겟 비트를 할당하는 방법을 설명하기 위한 블록도이다.
도 7은 도 4의 부호율 제어기가 양자화 파라미터를 조정하는 방법을 설명하기 위한 블록도이다.
도 8은 도 7의 양자화 파라미터를 조정하기 위한 블록의 버퍼 포화도를 설명하기 위한 그래프이다.
도 9는 도 7의 양자화 파라미터를 조정하는 방법을 설명하기 위한 표이다.
도 10(a)는 도 4의 인코더가 일반 모드에서 인코딩한 프레임에 대한 타겟 비트를 나타내는 그래프이다.
도 10(b)는 도 4의 인코더가 플랫 모드에서 인코딩한 프레임에 대한 타겟 비트를 나타내는 그래프이다.
도 11은 도 4의 코덱 메모리가 포화된 경우에 코덱의 동작을 설명하기 위한 그래프이다.
도 12는 본 발명의 실시 예에 따른 일반 모드와 플랫 모드를 설명하기 위한 플로우 차트이다.
도 13은 본 발명의 실시 예에 따른 플랫 모드에서 코덱의 동작을 설명하기 위한 플로우 차트이다.
도 14는 코덱 메모리가 포화된 경우 코덱의 동작을 설명하기 위한 플로우 차트이다.
In order to more fully understand the drawings recited in the Detailed Description of the Invention, a detailed description of each drawing is provided.
1 is a block diagram of a data processing system according to an embodiment of the present invention.
FIG. 2 is a block diagram of a video communication system including the data processing system shown in FIG. 1 .
3 is a schematic block diagram of the codec shown in FIGS. 1 and 2 .
FIG. 4 is a detailed block diagram of the codec shown in FIG. 3 .
FIG. 5 is a block diagram for explaining a method in which the bit rate predictor of FIG. 4 allocates a target bit for a group of picture (GOP) when a current frame is an I-frame.
6 is a block diagram for explaining a method for the bit rate predictor of FIG. 4 to allocate a target bit for a GOP when the current frame is not an I-frame.
FIG. 7 is a block diagram illustrating a method in which the code rate controller of FIG. 4 adjusts a quantization parameter.
FIG. 8 is a graph for explaining buffer saturation of a block for adjusting the quantization parameter of FIG. 7 .
9 is a table for explaining a method of adjusting the quantization parameter of FIG. 7 .
10A is a graph illustrating a target bit for a frame encoded by the encoder of FIG. 4 in a normal mode.
FIG. 10(b) is a graph illustrating a target bit for a frame encoded by the encoder of FIG. 4 in a flat mode.
11 is a graph for explaining the operation of the codec when the codec memory of FIG. 4 is saturated.
12 is a flowchart illustrating a normal mode and a flat mode according to an embodiment of the present invention.
13 is a flowchart illustrating an operation of a codec in a flat mode according to an embodiment of the present invention.
14 is a flowchart for explaining the operation of the codec when the codec memory is saturated.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present invention disclosed in this specification are only exemplified for the purpose of explaining the embodiments according to the concept of the present invention, and the embodiments according to the concept of the present invention are It may be implemented in various forms and is not limited to the embodiments described herein.

본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Since the embodiments according to the concept of the present invention may have various changes and may have various forms, the embodiments will be illustrated in the drawings and described in detail herein. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosed forms, and includes all modifications, equivalents, or substitutes included in the spirit and scope of the present invention.

제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.Terms such as first or second may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another, for example without departing from the scope of the inventive concept, a first component may be termed a second component and similarly a second component A component may also be referred to as a first component.

어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being “connected” or “connected” to another component, it may be directly connected or connected to the other component, but it is understood that other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the other element does not exist in the middle. Other expressions describing the relationship between components, such as "between" and "immediately between" or "neighboring to" and "directly adjacent to", etc., should be interpreted similarly.

본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used herein are used only to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate that a feature, number, step, operation, component, part, or combination thereof described herein exists, but one or more other features It is to be understood that it does not preclude the possibility of the presence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present specification. does not

이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다.1 is a block diagram of a data processing system according to an embodiment of the present invention.

데이터 처리 시스템(10)은 TV, DTV(digital TV), IPTV(internet protocol TV), PC(personal computer), 데스크 탑 컴퓨터, 랩-탑(lap-top) 컴퓨터, 컴퓨터 워크스테이션(computer workstation), 태블릿(tablet) PC, 비디오 게임 플랫폼(또는 비디오 게임 콘솔), 서버, 또는 모바일 컴퓨팅 장치로 구현될 수 있다.The data processing system 10 includes a TV, digital TV (DTV), internet protocol TV (IPTV), personal computer (PC), desktop computer, lap-top computer, computer workstation, It may be implemented as a tablet PC, a video game platform (or video game console), a server, or a mobile computing device.

상기 모바일 컴퓨팅 장치는 이동 전화기, 스마트 폰(smart phone), PDA (personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP (portable multimedia player), PND(personal navigation device 또는 portable navigation device), 모바일 인터넷 장치(mobile internet device(MID)), 웨어러블 컴퓨터, 사물 인터넷(internet of things(IoT)) 장치, 만물 인터넷(internet of everything(IoE)) 장치, 또는 e-북(e-book)으로 구현될 수 있다.The mobile computing device includes a mobile phone, a smart phone, a personal digital assistant (PDA), an enterprise digital assistant (EDA), a digital still camera, a digital video camera, and a portable digital assistant (PMP). multimedia player), PND (personal navigation device or portable navigation device), mobile internet device (MID), wearable computer, internet of things (IoT) device, internet of everything (IoE) )) device, or may be implemented as an e-book.

데이터 처리 시스템(10)은 2D(dimensional) 또는 3D 그래픽스 데이터를 처리하고, 처리된 데이터를 디스플레이할 수 있는 다양한 장치를 의미할 수 있다.The data processing system 10 may refer to various devices capable of processing 2D (dimensional) or 3D graphics data and displaying the processed data.

데이터 처리 시스템(10)은 카메라(50), 시스템 온 칩(system on chip(SoC); 100), 디스플레이(200), 입력 장치(210), 및 제2메모리(220)를 포함할 수 있다. 도 1에서는 SoC(100)의 외부에 제2메모리(220)가 도시되어 있으나, 실시 예에 따라 제2메모리(220)는 SoC(100)의 내부에 구현될 수 있다.The data processing system 10 may include a camera 50 , a system on chip (SoC) 100 , a display 200 , an input device 210 , and a second memory 220 . Although the second memory 220 is shown outside the SoC 100 in FIG. 1 , the second memory 220 may be implemented inside the SoC 100 according to an embodiment.

카메라(50)는 CMOS 이미지 센서로 구현될 수 있다. 카메라(50)는 피사체를 촬영하고, 상기 피사체에 대한 제1데이터(IM)를 생성하고, 생성된 제1데이터(IM)를 SoC(100)로 출력할 수 있다. 제1데이터(IM)는 정지 영상 데이터 또는 동영상 데이터일 수 있다.The camera 50 may be implemented as a CMOS image sensor. The camera 50 may photograph a subject, generate first data IM for the subject, and output the generated first data IM to the SoC 100 . The first data IM may be still image data or moving image data.

SoC(100)는 데이터 처리 시스템(10)의 작동을 전반적으로 제어할 수 있다. 예컨대, SoC(100)는 본 명세서에서 설명될 본 발명의 실시 예에 따른 작동들을 수행할 수 있는 집적 회로(integrated circuit(IC)), 마더보드, 애플리케이션 프로세서(application processor(AP)), 또는 모바일(mobile) AP를 의미할 수 있다.SoC 100 may control overall operation of data processing system 10 . For example, SoC 100 may be an integrated circuit (IC), motherboard, application processor (AP), or mobile capable of performing operations according to embodiments of the present invention to be described herein. (mobile) may mean an AP.

즉, SoC(100)은 카메라(50)로부터 출력된 제1데이터(IM)를 처리하고, 처리된 데이터를 디스플레이(200)에서 디스플레이하거나, 제2메모리(220)에 저장하거나, 다른 데이터 처리 시스템으로 전송할 수 있다. 카메라(50)로부터 출력된 데이터 (IM)는 MIPI® 카메라 시리얼 인터페이스(camera serial interface(CSI))를 통해 전-처리 회로(110)로 전송될 수 있다.That is, the SoC 100 processes the first data IM output from the camera 50 , and displays the processed data on the display 200 , stores it in the second memory 220 , or another data processing system. can be sent to The data IM output from the camera 50 may be transmitted to the pre-processing circuit 110 through a MIPI® camera serial interface (CSI).

SoC(100)는 전-처리 회로(110), 코덱(120), CPU(130), 제1메모리(140), 디스플레이 컨트롤러(150), 메모리 컨트롤러(160), 버스(170), 모뎀(180), 및 사용자 인터페이스(190)를 포함할 수 있다.SoC 100 includes pre-processing circuit 110 , codec 120 , CPU 130 , first memory 140 , display controller 150 , memory controller 160 , bus 170 , modem 180 . ), and a user interface 190 .

전-처리 회로(110), 코덱(120), CPU(130), 제1메모리(140), 디스플레이 컨트롤러(150), 메모리 컨트롤러(160), 모뎀(180), 및 사용자 인터페이스(190)는 버스(170)를 통해 서로 데이터를 주거나 받을 수 있다. 예컨대, 버스(170)는 PCI 버스(Peripheral Component Interconnect Bus), PCI 익스프레스(PCI Express(PCIe)) 버스, AMBA (Advanced High Performance Bus), AHB(Advanced High Performance Bus), APB (Advanced Peripheral Bus), AXI(Advanced eXtensible Interface) 버스, 또는 이들의 결합으로 구현될 수 있으나 이에 한정되는 것은 아니다.The pre-processing circuit 110 , the codec 120 , the CPU 130 , the first memory 140 , the display controller 150 , the memory controller 160 , the modem 180 , and the user interface 190 are bus Through 170, data may be transmitted or received from each other. For example, the bus 170 is a PCI bus (Peripheral Component Interconnect Bus), PCI Express (PCI Express (PCIe)) bus, AMBA (Advanced High Performance Bus), AHB (Advanced High Performance Bus), APB (Advanced Peripheral Bus), It may be implemented as an Advanced eXtensible Interface (AXI) bus, or a combination thereof, but is not limited thereto.

전-처리 회로(110)는 카메라(200)로부터 출력된 제1데이터(IM)를 수신하고, 수신된 제1데이터(IM)를 처리하고, 처리 결과에 따라 생성된 제2데이터(FI)를 코덱 (120)으로 출력할 수 있다. 예컨대, 전-처리 회로(110)는 처리 결과에 따라 생성된 제2데이터(FI)를 버스(170)를 통해서 또는 직접 코덱(120)으로 전송할 수 있다. The pre-processing circuit 110 receives the first data IM output from the camera 200 , processes the received first data IM, and outputs the second data FI generated according to the processing result. It can output to the codec 120 . For example, the pre-processing circuit 110 may transmit the second data FI generated according to the processing result to the codec 120 through the bus 170 or directly.

제1데이터(IM)와 제2데이터(FI) 각각은 프레임(또는 픽쳐)을 의미할 수 있다. 이하, 설명의 편의를 위해, 각 데이터(IM과 FI)를 현재 프레임(또는 현재 픽쳐)이라 한다.Each of the first data IM and the second data FI may mean a frame (or picture). Hereinafter, for convenience of description, each data (IM and FI) is referred to as a current frame (or a current picture).

실시 예에 따라 전-처리 회로(110)는 이미지 신호 프로세서(image signal processor(ISP))로 구현될 수 있다. 예컨대, ISP는 제1데이터 포맷을 갖는 제1데이터(IM)를 제2데이터 포맷을 갖는 제2데이터(FI)로 변환할 수 있다. 예컨대, 제1데이터(IM)는 베이어(Bayer) 패턴을 갖는 데이터이고 제2데이터(FI)는 YUV 데이터일 수 있으나 이에 한정되는 것은 아니다.According to an embodiment, the pre-processing circuit 110 may be implemented as an image signal processor (ISP). For example, the ISP may convert the first data IM having the first data format into the second data FI having the second data format. For example, the first data IM may be data having a Bayer pattern and the second data FI may be YUV data, but is not limited thereto.

도 1에서 전-처리 회로(110)는 SoC(100) 내부에 구현된 것으로 도시되어 있으나, 실시 예들에 따라 전-처리 회로(110)는 SoC(100) 외부에 구현될 수 있다.In FIG. 1 , the pre-processing circuit 110 is illustrated as being implemented inside the SoC 100 , but according to embodiments, the pre-processing circuit 110 may be implemented outside the SoC 100 .

코덱(120)은 현재 프레임(FI)에 포함된 복수의 블록들 각각에 대한 인코딩(또는 부호화) 작동을 수행할 수 있다.The codec 120 may perform an encoding (or encoding) operation on each of a plurality of blocks included in the current frame FI.

상기 인코딩 작동은 JPEG(joint picture expert group), MPEG (motion pic-ture expert groups), MPEG-2, MPEG-4, VC-1, H.264, H.265, 또는 HEVC(High Efficiency Video Coding) 등의 영상 데이터 인코딩 기술을 이용할 수 있으나 이에 한정되는 것은 아니다.The encoding operation is a joint picture expert group (JPEG), motion picture expert groups (MPEG), MPEG-2, MPEG-4, VC-1, H.264, H.265, or High Efficiency Video Coding (HEVC). An image data encoding technique such as the like may be used, but is not limited thereto.

도 1에서 코덱(120)은 하드웨어 코덱으로 구현되어 있으나, 본 발명의 기술적 사상에 따른 코덱은 하드웨어 코덱 또는 소프트웨어 코덱으로 구현될 수 있다. 상기 소프트웨어 코덱은 CPU(130)에 의해 실행될 수 있다.Although the codec 120 in FIG. 1 is implemented as a hardware codec, the codec according to the technical idea of the present invention may be implemented as a hardware codec or a software codec. The software codec may be executed by the CPU 130 .

CPU(130)는 SoC(100)의 작동을 제어할 수 있다.The CPU 130 may control the operation of the SoC 100 .

사용자는, CPU(130)가 하나 또는 그 이상의 애플리케이션들(예컨대, 소프트웨어 애플리케이션들(APP); 135)을 실행할 수 있도록, 입력을 SoC(100)로 제공할 수 있다.A user may provide input to SoC 100 , such that CPU 130 may execute one or more applications (eg, software applications (APP) 135 ).

실시 예에 따라, CPU(130)에 의해 실행되는 애플리케이션들(135) 중에서 어느 하나는 영상 통화 애플리케이션을 의미할 수 있다. 또한, CPU(130)에 의해 실행되는 애플리케이션들(135)은 운영 체제(operating system (OS)), 워드프로세서 애플리케이션, 미디어 플레이어 애플리케이션, 비디오 게임 애플리케이션, 및/또는 그래픽 사용자 인터페이스(graphical user intergace(GUI)) 애플리케이션을 포함할 수 있으나 이에 한정되는 것은 아니다. 이하 설명의 편의를 위해 영상 통화 애플리케이션을 애플리케이션(135)이라 한다.According to an embodiment, any one of the applications 135 executed by the CPU 130 may mean a video call application. In addition, the applications 135 executed by the CPU 130 may include an operating system (OS), a word processor application, a media player application, a video game application, and/or a graphical user interface (GUI). )) may include an application, but is not limited thereto. Hereinafter, for convenience of description, the video call application is called an application 135 .

제1메모리(140)는, 메모리 컨트롤러의 제어에 따라, 애플리케이션(135)이 실행됨에 따라 코덱(120)에 의해 부호화(또는 인코딩(encoding)) 된 데이터를 수신하여 저장할 수 있다. 또한, 제1메모리(140)는, 상기 메모리 컨트롤러의 제어에 따라, 애플리케이션(135)에 의해 저장된 데이터를 CPU(130) 또는 모뎀(180)으로 전송할 수 있다.The first memory 140 may receive and store data encoded (or encoded) by the codec 120 as the application 135 is executed under the control of the memory controller. Also, the first memory 140 may transmit data stored by the application 135 to the CPU 130 or the modem 180 under the control of the memory controller.

제1메모리(140)는 CPU(130)에서 실행된 애플리케이션(135)에 대한 데이터를 라이트할 수 있고, 제1메모리(140)에 저장된 애플리케이션(135)에 대한 데이터를 리드할 수 있다.The first memory 140 may write data for the application 135 executed by the CPU 130 , and read data about the application 135 stored in the first memory 140 .

예컨대, 제1메모리(140)는 SRAM(static random access memory)과 같은 휘발성 메모리 또는 ROM(read only memory)와 같은 불휘발성 메모리로 구현될 수 있다. For example, the first memory 140 may be implemented as a volatile memory such as a static random access memory (SRAM) or a nonvolatile memory such as a read only memory (ROM).

디스플레이 컨트롤러(150)는, 코덱(120) 또는 CPU(130)로부터 출력된 데이터를 디스플레이(200)로 전송할 수 있다. 디스플레이(200)는 모니터, TV 모니터, 프로젝션 장치(projection device), TFT-LCD(thin film transistor-liquid crystal display), LED(light emitting diode) 디스플레이, OLED(organic LED) 디스플레이, AMOLED(active-matrix OLED) 디스플레이, 또는 플렉시블(flexible) 디스플레이로 구현될 수 있다.The display controller 150 may transmit data output from the codec 120 or the CPU 130 to the display 200 . The display 200 includes a monitor, a TV monitor, a projection device, a thin film transistor-liquid crystal display (TFT-LCD), a light emitting diode (LED) display, an organic LED (OLED) display, an active-matrix (AMOLED) display. It may be implemented as an OLED) display or a flexible display.

예컨대, 디스플레이 컨트롤러(150)는 MIPI 디스플레이 시리얼 인터페이스 (display serial interface(DSI))를 통해 데이터를 디스플레이(200)로 전송할 수 있다.For example, the display controller 150 may transmit data to the display 200 through a MIPI display serial interface (DSI).

입력 장치(210)는 사용자로부터 입력된 사용자 입력을 수신하고, 상기 사용자 입력에 상응하는 입력 신호를 사용자 인터페이스(190)로 전송할 수 있다.The input device 210 may receive a user input input from a user and transmit an input signal corresponding to the user input to the user interface 190 .

입력 장치(210)는 터치 패널(touch panel), 터치 스크린(touch screen), 음성 인식기(voice recognizer), 터치 펜, 키보드, 마우스, 트랙 포인트 등으로 구현될 수 있으나 이에 한정되는 것은 아니다. 예컨대, 입력 장치(210)가 터치 스크린인 경우에, 입력 장치(210)는 터치 패널과 터치 패널 컨트롤러를 포함할 수 있다. 또한, 입력 장치(210)가 음성 인식기인 경우에, 입력 장치(210)는 음성 인식 센서와 음성 인식 컨트롤러를 포함할 수 있다.The input device 210 may be implemented as a touch panel, a touch screen, a voice recognizer, a touch pen, a keyboard, a mouse, a track point, etc., but is not limited thereto. For example, when the input device 210 is a touch screen, the input device 210 may include a touch panel and a touch panel controller. Also, when the input device 210 is a voice recognizer, the input device 210 may include a voice recognition sensor and a voice recognition controller.

입력 장치(210)는 디스플레이(200)와 접속될 수 있고, 디스플레이(200)와 분리되어 구현될 수도 있다.The input device 210 may be connected to the display 200 or may be implemented separately from the display 200 .

실시 예에 따라, 사용자가, 입력 장치(210)를 이용하여, 디스플레이(200)에 디스플레이 된 애플리케이션 아이콘(205)을 실행시키면, 입력 장치(210)는 입력 신호를 생성할 수 있다.According to an embodiment, when the user executes the application icon 205 displayed on the display 200 using the input device 210 , the input device 210 may generate an input signal.

애플리케이션 아이콘(205)은 CPU(130)에서 실행될 수 있는 애플리케이션 (135)에 의해 생성될 수 있다. 디스플레이(200)에는 복수의 애플리케이션 아이콘들이 디스플레이 될 수 있다. 예컨대, 애플리케이션(135)이 영상 통화 애플리케이션일 때, 애플리케이션 아이콘(205)은 상기 영상 통화 애플리케이션을 실행시키기 위한 아이콘일 수 있다.The application icon 205 may be created by an application 135 that may be executed on the CPU 130 . A plurality of application icons may be displayed on the display 200 . For example, when the application 135 is a video call application, the application icon 205 may be an icon for executing the video call application.

입력 장치(210)는 입력 신호를 사용자 인터페이스(190)로 전송할 수 있다.The input device 210 may transmit an input signal to the user interface 190 .

사용자 인터페이스(190)는 입력 장치(210)로부터 입력 신호를 수신하고, 상기 입력 신호에 상응하는 데이터를 CPU(130)로 전송할 수 있다.The user interface 190 may receive an input signal from the input device 210 and transmit data corresponding to the input signal to the CPU 130 .

실시 예에 따라, CPU(130)는 입력 신호에 상응하는 데이터를 수신하고, 상기 데이터에 응답하여 영상 통화 애플리케이션(135)을 실행시킬 수 있다.According to an embodiment, the CPU 130 may receive data corresponding to an input signal and execute the video call application 135 in response to the data.

메모리 컨트롤러(160)는, 코덱(120) 또는 CPU(130)의 제어에 따라, 제2메모리(220)에 저장된 데이터를 리드하고, 리드된 데이터를 코덱(120) 또는 CPU(130)로 전송할 수 있다. 또한, 메모리 컨트롤러(160)는, 코덱(120) 또는 CPU(130)의 제어에 따라, 코덱(120) 또는 CPU(130)로부터 출력된 데이터를 제2메모리(220)에 라이트할 수 있다.The memory controller 160 may read data stored in the second memory 220 under the control of the codec 120 or the CPU 130 and transmit the read data to the codec 120 or the CPU 130 . have. Also, the memory controller 160 may write data output from the codec 120 or the CPU 130 to the second memory 220 under the control of the codec 120 or the CPU 130 .

제2메모리(220)는 휘발성 메모리 및/또는 불휘발성 메모리로 구현될 수 있다. 상기 휘발성 메모리는 RAM(random access memory), SRAM(static RAM), DRAM (dynamic RAM), SDRAM(synchronous DRAM), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.The second memory 220 may be implemented as a volatile memory and/or a nonvolatile memory. The volatile memory may include random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), thyristor RAM (T-RAM), zero capacitor RAM (Z-RAM), or twin (TTRAM). Transistor RAM).

상기 불휘발성 메모리는 EEPROM(electrically erasable programmable read-only memory), 플래시(flash) 메모리, MRAM(magnetic RAM), 스핀전달토크 MRAM (spin-transfer torque MRAM), FeRAM(ferroelectric RAM), PRAM(phase change RAM), 또는 RRAM(resistive RAM)으로 구현될 수 있다.The nonvolatile memory includes electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic RAM (MRAM), spin-transfer torque MRAM (MRAM), ferroelectric RAM (FeRAM), and phase change (PRAM). RAM) or RRAM (resistive RAM).

또한, 상기 불휘발성 메모리는 MMC(multimedia card), eMMC(embedded MMC), UFS(universal flash storage), 솔리드 스테이트 드라이브(solid state drive or solid state disk(SSD)), USB 플래시 드라이브, 또는 하드디스크 드라이브(hard disk drive(HDD))로 구현될 수 있다.In addition, the nonvolatile memory may include a multimedia card (MMC), an embedded MMC (eMMC), a universal flash storage (UFS), a solid state drive or solid state disk (SSD), a USB flash drive, or a hard disk drive. (hard disk drive (HDD)) may be implemented.

모뎀(180)은 코덱(120) 또는 CPU(130)에 의해 부호화 된 데이터를 무선 통신 기술을 이용하여 외부로 출력할 수 있다. 상기 무선 통신 기술은 와이파이(WI-FI), 와이브로(WIBRO), 3G 무선통신, LTETM(long term evolution), LTE-A(long term evolution-advanced), 또는 광대역(broadband) LTE-A를 의미할 수 있다.The modem 180 may output data encoded by the codec 120 or the CPU 130 to the outside using a wireless communication technology. The wireless communication technology may mean Wi-Fi (WI-FI), WiBRO (WIBRO), 3G wireless communication, long term evolution (LTETM), long term evolution-advanced (LTE-A), or broadband LTE-A can

도 2는 도 1에 도시된 데이터 처리 시스템을 포함하는 영상 통신 시스템의 블록도이다. 도 2를 참조하면, 영상 통신 시스템(20)은 채널(300)을 통해 서로 통신할 수 있는 제1데이터 처리 시스템(10-1)과 제2데이터 처리 시스템(10-2)을 포함할 수 있다. 영상 통신 시스템(20)은 영상 통화 시스템을 의미할 수 있다.FIG. 2 is a block diagram of a video communication system including the data processing system shown in FIG. 1 . Referring to FIG. 2 , the video communication system 20 may include a first data processing system 10 - 1 and a second data processing system 10 - 2 that can communicate with each other through a channel 300 . . The video communication system 20 may refer to a video telephony system.

제1데이터 처리 시스템(10-1)과 제2데이터 처리 시스템(10-2) 각각의 구조와 작동을 실질적으로 동일 또는 유사하다.The structure and operation of each of the first data processing system 10-1 and the second data processing system 10-2 are substantially the same or similar.

제1데이터 처리 시스템(10-1)은 비디오 카메라(50-1), 코덱(120-1), 버퍼 (140-1), 및 모뎀(180-1)을 포함할 수 있다.The first data processing system 10 - 1 may include a video camera 50 - 1 , a codec 120 - 1 , a buffer 140 - 1 , and a modem 180 - 1 .

제1데이터 처리 시스템(10-1)은 비디오 카메라(50-1)로부터 수신된 데이터 (INPUT)를 부호화(또는 인코딩)하고, 부호화 된 데이터(EI)를 채널(300)을 통해 제2데이터 처리 시스템(10-2)으로 전송할 수 있다.The first data processing system 10-1 encodes (or encodes) data INPUT received from the video camera 50-1, and processes the encoded data EI through the channel 300 as second data. can be transmitted to the system 10-2.

비디오 카메라(50-1)는 도 1에 도시된 카메라(50)와 실질적으로 동일할 수 있고, 코덱(120-1)은 도 1에 도시된 코덱(120)과 실질적으로 동일할 수 있고, 버퍼 (140-1)는 도 1에 도시된 제1메모리(140)와 실질적으로 동일할 수 있고, 모뎀(180-1)은 도 1에 도시된 모뎀(180)과 실질적으로 동일할 수 있다.The video camera 50 - 1 may be substantially the same as the camera 50 shown in FIG. 1 , and the codec 120 - 1 may be substantially the same as the codec 120 shown in FIG. 1 , and a buffer Reference numeral 140 - 1 may be substantially the same as the first memory 140 shown in FIG. 1 , and the modem 180 - 1 may be substantially the same as the modem 180 shown in FIG. 1 .

제2데이터 처리 시스템(10-2)은 채널(300)을 통해 제1데이터 처리 시스템 (10-1)으로부터 전송된 부호화 된 데이터(EI)를 수신할 수 있다.The second data processing system 10 - 2 may receive the encoded data EI transmitted from the first data processing system 10 - 1 through the channel 300 .

제2데이터 처리 시스템(10-2)은 디스플레이(200-2), 코덱(120-2), 버퍼(140-2), 및 모뎀(180-2)을 포함할 수 있다.The second data processing system 10 - 2 may include a display 200 - 2 , a codec 120 - 2 , a buffer 140 - 2 , and a modem 180 - 2 .

모뎀(180-2)은 제1데이터 처리 시스템(10-1)으로부터 전송된 부호화 된 데이터(EI)를 버퍼(140-2)로 전송할 수 있다. 모뎀(180-2)은 도 1에 도시된 모뎀(180)과 실질적으로 동일할 수 있다.The modem 180 - 2 may transmit the encoded data EI transmitted from the first data processing system 10 - 1 to the buffer 140 - 2 . The modem 180 - 2 may be substantially the same as the modem 180 illustrated in FIG. 1 .

버퍼(140-2)는 모뎀(180-2)으로부터 부호화 된 데이터(EI)를 수신할 수 있고, 부호화 된 데이터(EI)를 코덱(120-2)으로 전송할 수 있다. 버퍼(140-2)는 도 1에 도시된 제1메모리(140)와 실질적으로 동일할 수 있다.The buffer 140 - 2 may receive the encoded data EI from the modem 180 - 2 and transmit the encoded data EI to the codec 120 - 2 . The buffer 140 - 2 may be substantially the same as the first memory 140 shown in FIG. 1 .

코덱(120-2)은 부호화 된 데이터(EI)를 수신하고, 부호화 된 데이터(EI)를 복호화(또는 디코딩(decoding))할 수 있다. 예컨대, 코덱(120-2)은 디코더(decoder)의 기능을 포함할 수 있다.The codec 120 - 2 may receive the coded data EI and decode (or decode) the coded data EI. For example, the codec 120 - 2 may include a function of a decoder.

디스플레이(200-2)는 코덱(120-2)에 의해 복호화 된 데이터를 디스플레이할 수 있다. 디스플레이(200-2)는 도 1에 도시된 디스플레이(200)와 실질적으로 동일할 수 있다.The display 200 - 2 may display data decoded by the codec 120 - 2 . The display 200 - 2 may be substantially the same as the display 200 illustrated in FIG. 1 .

제1데이터 처리 시스템(10-1)과 제2데이터 처리 시스템(10-2)은 채널(300)을 통해 양방향 통신을 수행할 수 있다. 실시 예들에 따라, 채널(300)은 와이파이(WI-FI), 와이브로(WIBRO), 3G 무선통신, LTE(long term evolution), LTE-A(long term evolution-advanced), 또는 광대역 LTE-A를 지원할 수 있다.The first data processing system 10 - 1 and the second data processing system 10 - 2 may perform bidirectional communication through the channel 300 . According to embodiments, the channel 300 is Wi-Fi (WI-FI), WiBro (WIBRO), 3G wireless communication, LTE (long term evolution), LTE-A (long term evolution-advanced), or broadband LTE-A can support

도 3은 도 1과 도 2에 도시된 코덱의 개략적인 블록도이다.3 is a schematic block diagram of the codec shown in FIGS. 1 and 2 .

도 1부터 도 3을 참조하면, 코덱(120)은 코덱 CPU(122), 하드웨어 블록 (126), 및 코덱 메모리(128)를 포함할 수 있다.1 to 3 , the codec 120 may include a codec CPU 122 , a hardware block 126 , and a codec memory 128 .

코덱 CPU(122)는 전-처리 회로(110)로부터 출력된 현재 프레임(FI)을 코덱 메모리(128)에 저장할 수 있다.The codec CPU 122 may store the current frame FI output from the pre-processing circuit 110 in the codec memory 128 .

코덱 CPU(122)는 현재 프레임(FI)의 타입(type)을 결정하고, 결정된 현재 프레임(FI)의 타입을 이용하여 타입 정보(TI)를 생성할 수 있다. 코덱 CPU(122)는 현재 프레임(FI)의 레이트 컨트롤 파라미터들을 결정하고, 결정된 레이트 컨트롤 파라미터들을 이용하여 파라미터 정보(PI)를 생성할 수 있다.The codec CPU 122 may determine the type of the current frame FI and generate the type information TI using the determined type of the current frame FI. The codec CPU 122 may determine rate control parameters of the current frame FI and generate parameter information PI using the determined rate control parameters.

상기 레이트 컨트롤 파라미터는 현재 프레임(FI)의 비트-레이트(bit-rate)를 조절(또는 컨트롤)할 수 있는 파라미터들을 의미할 수 있다.The rate control parameter may refer to parameters capable of adjusting (or controlling) the bit-rate of the current frame FI.

코덱 CPU(122)는 타입 정보(TI), 파라미터 정보(PI), 및 현재 프레임(FI)을 하드웨어 블록(126)으로 출력할 수 있다.The codec CPU 122 may output the type information TI, the parameter information PI, and the current frame FI to the hardware block 126 .

코덱 CPU(122)에서 실행되는 펌웨어(124)는, GOP(group of picture)의 특성에 따라, 현재 프레임(FI)이 i-프레임, p-프레임, 또는 b-프레임인지를 결정하고, 결정 결과에 따라 타입 정보(TI)를 생성할 수 있다.The firmware 124 executed in the codec CPU 122 determines whether the current frame FI is an i-frame, a p-frame, or a b-frame, according to a characteristic of a group of picture (GOP), and the result of the determination The type information TI may be generated according to

실시 예들에 따라, GOP(group of picture)는 i-프레임, b-프레임, 및 p-프레임 중에서 적어도 하나를 포함할 수 있다. 예컨대, GOP에 포함된 프레임들 중 첫번째 프레임은 i-프레임이며, 나머지 모두는 i-프레임, b-프레임, 및/또는 p-프레임일 수 있다. 실시 예들에 따라, GOP에 포함되는 프레임들의 개수 및/또는 전-처리 회로(110)로부터 전송되는 서로 다른 타입을 갖는 프레임들의 순서는 다양하게 변경될 수 있다.According to embodiments, a group of picture (GOP) may include at least one of an i-frame, a b-frame, and a p-frame. For example, among the frames included in the GOP, a first frame may be an i-frame, and all others may be an i-frame, a b-frame, and/or a p-frame. According to embodiments, the number of frames included in the GOP and/or the order of frames having different types transmitted from the pre-processing circuit 110 may be variously changed.

코덱 CPU(122)에서 실행되는 펌웨어(124)는, 현재 프레임(FI)의 상기 레이트 컨트롤 파라미터들을 결정하고, 결정 결과에 따라 파라미터 정보(PI)를 생성할 수 있다.The firmware 124 executed in the codec CPU 122 may determine the rate control parameters of the current frame FI and generate parameter information PI according to the determination result.

현재 프레임(FI)의 상기 레이트 컨트롤 파라미터들은, 프레임들 각각의 타입에 따른 복잡도, GOP의 사이즈(예컨대, GOP에 대한 전체 타겟 비트), 프레임-레이트에 해당하는 초당 프레임(또는 초당 픽쳐) 수, 비트-레이트에 해당하는 초당 비트 수, 정규화 상수(normalization constant), 및/또는 초기 파라미터(initial parameter)를 포함할 수 있다. 상기 초기 파라미터는 제1상수 (k2), 제2상수(r_seq), 초기 프레임 양자화 파라미터(quantization parameter) 및 초기 버퍼 포화도(d0)를 포함할 수 있다.The rate control parameters of the current frame (FI) are, the complexity according to each type of frames, the size of the GOP (eg, total target bits for the GOP), the number of frames per second (or pictures per second) corresponding to the frame-rate, It may include the number of bits per second corresponding to the bit-rate, a normalization constant, and/or an initial parameter. The initial parameter may include a first constant (k2), a second constant (r_seq), an initial frame quantization parameter, and an initial buffer saturation (d0).

코덱 CPU(122)는 현재 프레임(FI)의 복잡도를 GOP마다 계산할 수 있다.The codec CPU 122 may calculate the complexity of the current frame FI for each GOP.

코덱 CPU(122)는 수학식 1을 이용하여 현재 프레임(FI)의 복잡도(xi, xp, 또는 xb)를 계산할 수 있다.The codec CPU 122 may calculate the complexity xi, xp, or xb of the current frame FI by using Equation 1.

[수학식 1][Equation 1]

xi=160*(br)/115, xp=60*(br)/115, 및 xb=42*(br)/115xi=160*(br)/115, xp=60*(br)/115, and xb=42*(br)/115

여기서, xi는 현재 프레임(FI)이 i-프레임일 때 복잡도이고, xp는 현재 프레임(FI)이 p-프레임일 때 복잡도이고, xb는 현재 프레임(FI)이 b-프레임일 때 복잡도이다. br은 현재 프레임(FI)의 비트-레이트 또는 초당 비트 수를 의미할 수 있다.Here, xi is a complexity when the current frame FI is an i-frame, xp is a complexity when the current frame FI is a p-frame, and xb is a complexity when the current frame FI is a b-frame. br may mean the bit-rate of the current frame FI or the number of bits per second.

예컨대, 코덱 CPU(122)는 비트-레이트(br)를 결정할 수 있고, 결정된 비트-레이트를 이용하여 i-프레임의 복잡도(xi), p-프레임의 복잡도(xp), 및/또는 b-프레임의 복잡도(xb)를 결정할 수 있다.For example, the codec CPU 122 may determine the bit-rate br, and use the determined bit-rate to determine the complexity of the i-frame (xi), the complexity of the p-frame (xp), and/or the b-frame. We can determine the complexity (xb) of

예컨대, 비트-레이트가 115이면, xi는 160이고, xp는 60이고, xb는 42이다.For example, if the bit-rate is 115, xi is 160, xp is 60, and xb is 42.

파라미터 정보(PI)는 현재 프레임(FI)의 상기 레이트 컨트롤 파라미터들을 포함할 수 있다. 예컨대, 파라미터 정보(PI)는 현재 프레임(FI)의 복잡도(xi, xp, 또는 xb), GOP 사이즈, 초당 비트 수, 및/또는 초당 프레임 수를 포함할 수 있다.The parameter information PI may include the rate control parameters of the current frame FI. For example, the parameter information PI may include the complexity xi, xp, or xb of the current frame FI, the GOP size, the number of bits per second, and/or the number of frames per second.

코덱 CPU(122)는 하드웨어 블록(126)으로부터 출력된 현재 프레임(FI)에 대한 인코딩(또는 부호화) 종료 신호(DI)를 전-처리 회로(110)로 전송할 수 있다.The codec CPU 122 may transmit an encoding (or encoding) end signal DI for the current frame FI output from the hardware block 126 to the pre-processing circuit 110 .

코덱 CPU(122)는 코덱 메모리(128)의 포화 여부를 체크하고 체크 결과에 해당하는 체크 신호(BF)를 생성할 수 있다.The codec CPU 122 may check whether the codec memory 128 is saturated and generate a check signal BF corresponding to the check result.

하드웨어 블록(126)은 코덱 CPU(122)로부터 전송된 타입 정보(TI), 파라미터 정보(PI)를 이용하여 현재 프레임(FI)을 부호화 할 수 있다.The hardware block 126 may encode the current frame FI using the type information TI and the parameter information PI transmitted from the codec CPU 122 .

하드웨어 블록(126)은 부호화 된 현재 프레임(EI)을 코덱 메모리(128)에 저장할 수 있다.The hardware block 126 may store the encoded current frame EI in the codec memory 128 .

하드웨어 블록(126)은 현재 프레임(FI)에 대한 인코딩(또는 부호화)이 종료되면, 인코딩(또는 부호화) 종료 신호(DI)를 코덱 CPU(122)로 전송할 수 있다.When encoding (or encoding) of the current frame FI is finished, the hardware block 126 may transmit an encoding (or encoding) end signal DI to the codec CPU 122 .

코덱 메모리(128)는 하드웨어 블록(126)으로부터 전송된 부호화 된 현재 프레레(EI)를 수신하여 저장할 수 있다.The codec memory 128 may receive and store the encoded current preview EI transmitted from the hardware block 126 .

코덱 메모리(128)는 복수의 버퍼들 및/또는 복수의 가상 버퍼들을 포함할 수 있다. 실시 예들에 따라, 코덱 메모리(128)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다.The codec memory 128 may include a plurality of buffers and/or a plurality of virtual buffers. In some embodiments, the codec memory 128 may be implemented as a volatile memory or a nonvolatile memory.

도 4는 도 3에 도시된 코덱의 구체적인 블록도이다. 도 3과 도 4를 참조하면, 코덱(120)은 코덱 CPU(122), 하드웨어 블록(126), 및 코덱 메모리(128)를 포함할 수 있다. 하드웨어 블록(126)은 비트율 예측기(126-1), 부호율 제어기(126-2), 및 인코더(126-3)를 포함할 수 있다.FIG. 4 is a detailed block diagram of the codec shown in FIG. 3 . 3 and 4 , the codec 120 may include a codec CPU 122 , a hardware block 126 , and a codec memory 128 . The hardware block 126 may include a bit rate predictor 126 - 1 , a code rate controller 126 - 2 , and an encoder 126 - 3 .

비트율 예측기(126-1)는, 코덱 CPU(122)로부터 전송된 타입 정보(TI)와 파라미터 정보(PI)를 이용하여, 현재 프레임(FI)에 대한 타겟 비트를 할당할 수 있다.The bit rate predictor 126 - 1 may allocate a target bit for the current frame FI by using the type information TI and the parameter information PI transmitted from the codec CPU 122 .

상기 타겟 비트는 비트율 예측기(126-1)가 현재 프레임(FI)을 인코딩(또는 부호화)하기 위해 할당하는 비트 수(또는 비트 용량)를 의미할 수 있다.The target bit may mean the number of bits (or bit capacity) allocated by the bit rate predictor 126 - 1 to encode (or encode) the current frame FI.

실시 예에 따라, 비트율 예측기(126-1)는 현재 프레임(FI)을 포함하는 GOP에 대한 전체 타겟 비트를 할당하고, 현재 프레임(FI)의 타입 정보(TI)와 파라미터 정보 (PI)를 이용하여, 상기 GOP에 포함된 프레임들 각각에 대한 타겟 비트를 할당할 수 있다.According to an embodiment, the bit rate predictor 126 - 1 allocates all target bits for the GOP including the current frame FI, and uses the type information TI and the parameter information PI of the current frame FI. Thus, it is possible to allocate a target bit to each of the frames included in the GOP.

도 5는 도 4의 비트율 예측기(126-1)가 현재 프레임이 I-프레임인 경우 GOP(group of picture)에 대한 전체 타겟 비트를 할당하는 방법을 설명하기 위한 블록도이다.FIG. 5 is a block diagram for explaining a method in which the bit rate predictor 126 - 1 of FIG. 4 allocates all target bits for a group of picture (GOP) when the current frame is an I-frame.

도 4와 도 5를 참조하면, 현재 프레임(FI=FI1=I1))의 타입 정보(TI)가 i-프레임을 나타낼 때, 비트율 예측기(126-1)는, 이전 프레임을 포함하는 제2GOP에 대한 타겟 비트에 관계없이, 제1GOP(GOP1)에 대한 전체 타겟 비트(TB1)를 할당할 수 있다.4 and 5, when the type information (TI) of the current frame (FI = FI1 = I1)) indicates an i-frame, the bit rate predictor 126-1, the second GOP including the previous frame All target bits TB1 for the first GOP (GOP1) may be allocated irrespective of the target bits.

실시 예에 따라, 제2GOP(GOP0)에 대해 할당된 타겟 비트가 제2GOP(GOP0)를 실제 인코딩(또는 부호화)할 때 사용된 타겟 비트와 다를 때, 비트율 예측기(126-1)는, 제2GOP(GOP0)에서 발생한 타겟 비트의 차이에 관계없이, 제1GOP(GOP1)에 대한 전체 타겟 비트(TB1)를 할당할 수 있다.According to an embodiment, when the target bit allocated for the second GOP (GOP0) is different from the target bit used when actually encoding (or encoding) the second GOP (GOP0), the bit rate predictor 126 - 1, the second GOP Regardless of the difference in target bits generated in (GOP0), all target bits TB1 for the first GOP (GOP1) may be allocated.

즉, 비트율 예측기(126-1)는 I-프레임(I1)과 P-프레임들(P1~PN, N은 2 이상의 자연수) 전체에 대한 전체 타겟 비트(TB1)를 할당할 수 있다. 비트율 예측기(126-1)는 수학식 2를 이용하여 제1GOP(GOP1)에 대한 전체 타겟 비트(TB1)를 계산할 수 있다.That is, the bit rate predictor 126 - 1 may allocate the entire target bit TB1 to the entire I-frame I1 and the P-frames (P1 to PN, where N is a natural number equal to or greater than 2). The bit rate predictor 126 - 1 may calculate the total target bits TB1 for the first GOP GOP1 using Equation 2 .

[수학식 2][Equation 2]

TB=K*br/fTB=K*br/f

여기서, TB는 현재 프레임(FI)을 포함하는 제1GOP(GOP1)의 전체 타겟 비트(TB1)를 나타내고, K은 제1GOP(GOP1)의 사이즈를 나타내고, br은 현재 프레임(FI)의 비트-레이트(bit-rate)를 나타내고, f는 프레임-레이트(frame-rate or picture-rate)를 나타낸다.Here, TB denotes the total target bits TB1 of the first GOP (GOP1) including the current frame FI, K denotes the size of the first GOP (GOP1), and br denotes the bit-rate of the current frame FI. (bit-rate), and f denotes a frame-rate (frame-rate or picture-rate).

예컨대, 비트-레이트(br)가 300이고, 제1GOP(GOP1)의 사이즈(K)가 30이고, 프레임 수(f)가 30이면, 전체 타겟 비트 (TB)는 300이 된다. 또한, 비트-레이트(br)가 300이고, 제1GOP(GOP1)의 사이즈(K)가 300이고, 프레임 수(f)가 30이면, 전체 타겟 비트(TB)는 3000이 된다.For example, if the bit-rate br is 300, the size K of the first GOP GOP1 is 30, and the number of frames f is 30, the total target bits TB becomes 300. Further, when the bit-rate br is 300, the size K of the first GOP GOP1 is 300, and the number of frames f is 30, the total target bits TB becomes 3000.

비트율 예측기(126-1)는, 예측된 제1GOP(GOP1)에 대한 전체 타겟 비트 (TB1)를 이용하여, 현재 프레임(FI 또는 FI1)에 대한 타겟 비트를 할당할 수 있다. 예컨대, 비트율 예측기(126-1)는 수학식 3을 이용하여 현재 프레임(FI 또는 FI1)에 대한 타겟 비트를 할당(또는 계산)할 수 있다.The bit rate predictor 126 - 1 may allocate the target bit for the current frame FI or FI1 by using the total target bit TB1 for the predicted first GOP (GOP1). For example, the bit rate predictor 126 - 1 may allocate (or calculate) a target bit for the current frame FI or FI1 using Equation 3 .

[수학식 3][Equation 3]

T=(xL/kL)/(xi/ki+Np*xp/kp+Nb*xb/kb)*RT=(xL/kL)/(xi/ki+Np*xp/kp+Nb*xb/kb)*R

여기서, xL은 L번째(L은 자연수) 프레임의 복잡도, xi은 i-프레임의 복잡도, xp은 p-프레임의 복잡도, xb은 b-프레임의 복잡도, kn은 n번째 프레임의 정규화 상수, ki는 i-프레임의 정규화 상수(ki=1), kp는 p-프레임의 정규화 상수(kp=1), kb는 b-프레임의 정규화 상수(kb=1.4), Np는 GOP에서 처리되지 않은 p-프레임 수, Nb는 상기 GOP에서 처리되지 않은 b-프레임 수, R은 상기 GOP를 부호화하는 동안에 아직 사용되지 않은 비트 수를 의미한다.where xL is the complexity of the L-th frame (L is a natural number), xi is the complexity of the i-frame, xp is the complexity of the p-frame, xb is the complexity of the b-frame, kn is the normalization constant of the n-th frame, and ki is the Normalization constant of i-frame (ki=1), kp is normalization constant of p-frame (kp=1), kb is normalization constant of b-frame (kb=1.4), Np is p-frame not processed in GOP The number, Nb, is the number of unprocessed b-frames in the GOP, and R is the number of bits that are not yet used while encoding the GOP.

도 6은 도 4의 비트율 예측기가 현재 프레임이 i-프레임이 아닌 경우 GOP에 대한 타겟 비트를 할당하는 방법을 설명하기 위한 블록도이다.6 is a block diagram for explaining a method for the bit rate predictor of FIG. 4 to allocate a target bit for a GOP when the current frame is not an i-frame.

도 4와 도 6을 참조하면, 현재 프레임(FI=FI2=P2)의 타입 정보(TI)가 i-프레임이 아님을 나타낼 때, 비트율 예측기(126-1)는, 현재 프레임(FI)이 i-프레임인 단계에서 제1GOP(GOP1)에 대한 전체 타겟 비트를 이미 할당했기 때문에, 제1GOP(GOP1)에 대한 전체 타겟 비트(TB2)를 할당하지 않는다.4 and 6, when the type information TI of the current frame (FI=FI2=P2) indicates that it is not an i-frame, the bit rate predictor 126-1 determines that the current frame FI is i - Since all target bits for the first GOP (GOP1) have already been allocated in the frame-in step, all target bits TB2 for the first GOP (GOP1) are not allocated.

실시 예에 따라, 비트율 예측기(126-2)는, 제1GOP(GOP1)에 대해 할당된 전체 타겟 비트 (TB2)와 제1GOP(GOP1)에 포함된 이전 프레임들(I1과 P1)을 인코딩(또는 부호화)하기 위해 사용한 비트 수(PB)의 차이(RB)를 이용하여, 현재 프레임(FI, FI2, 또는 P2)에 대한 타겟 비트를 할당할 수 있다. 제1GOP(GOP1)에 대해 할당된 전체 타겟 비트(TB2)와 제1GOP(GOP1)에 포함된 이전 프레임들(I1과 P1)을 인코딩(또는 부호화)하기 위해 사용한 비트수(PB)의 차이는 남은 비트 수(RB)로 표현될 수 있다.According to an embodiment, the bit rate predictor 126 - 2 encodes the entire target bit TB2 allocated for the first GOP (GOP1) and the previous frames I1 and P1 included in the first GOP (GOP1) (or A target bit for the current frame FI, FI2, or P2 may be allocated using a difference RB of the number of bits PB used for encoding). The difference between the total target bits TB2 allocated for the first GOP (GOP1) and the number of bits (PB) used to encode (or encode) the previous frames I1 and P1 included in the first GOP (GOP1) remains It may be expressed as the number of bits (RB).

비트율 예측기(126-1)는, 제1GOP(GOP1)에 포함되고 처리되지 않은 프레임들의 개수(D)에 기초하여, 현재 프레임(FI, FI2, 또는 P2)에 대한 타겟 비트를 할당할 수 있다.The bit rate predictor 126 - 1 may allocate a target bit for the current frame FI, FI2, or P2 based on the number D of unprocessed frames included in the first GOP (GOP1).

예컨대, 처리되지 않은 프레임들의 개수(D)는 현재 프레임(FI, FI2, 또는 P2)이 p-프레임이고, 전체 p-프레임의 개수가 29개면, 처리되지 않은 프레임들의 개수(D)는 28이 된다.For example, the number of unprocessed frames (D) is that if the current frame (FI, FI2, or P2) is a p-frame and the total number of p-frames is 29, the number of unprocessed frames (D) is 28. do.

비트율 예측기(126-1)는 수학식 3을 이용하여 현재 프레임(FI, FI2, 또는 P2)에 대한 타겟 비트를 계산할 수 있다.The bit rate predictor 126 - 1 may calculate a target bit for the current frame FI, FI2, or P2 by using Equation (3).

비트율 예측기(126-1)는 현재 프레임(FI)에 대한 상기 타겟 비트를 포함하는 비트 정보(BI)를 부호율 제어기(126-2)로 전송할 수 있다. 또한, 비트율 예측기(126-1)는 파라미터 정보(PI)와 현재 프레임(FI)을 부호율 제어기 (126-2)로 전송할 수 있다.The bit rate predictor 126 - 1 may transmit bit information BI including the target bit for the current frame FI to the code rate controller 126 - 2 . Also, the bit rate predictor 126 - 1 may transmit the parameter information PI and the current frame FI to the code rate controller 126 - 2 .

비트 정보(BI)는 현재 프레임(FI)에 대한 타겟 비트를 포함할 수 있고, 현재 프레임(FI)을 포함하는 제1GOP(GOP1)에 대해 할당된 전체 타겟 비트를 포함할 수 있다. 또한, 비트 정보(BI)는 제1GOP(GOP1)에 포함된 프레임들 각각에 대한 타겟 비트를 포함할 수도 있다.The bit information BI may include target bits for the current frame FI, and may include all target bits allocated for the first GOP GOP1 including the current frame FI. Also, the bit information BI may include a target bit for each of the frames included in the first GOP GOP1.

부호율 제어기 (126-2)는, 수신한 파라미터 정보(PI)에 기초하여, 현재 프레임(FI)의 레이트 컨트롤 파라미터들을 조정할 수 있다.The code rate controller 126 - 2 may adjust rate control parameters of the current frame FI based on the received parameter information PI.

부호율 제어기 (126-2)는, 비트율 예측기(126-2)에 의해 할당된 프레임들 각각에 대한 타겟 비트와 조정된 파라미터들을 이용하여, 현재 프레임(FI)에 포함된 블록들 각각에 대한 양자화 파라미터(QP)를 생성할 수 있다.The code rate controller 126 - 2 quantizes each of the blocks included in the current frame FI using the target bit and the adjusted parameters for each of the frames allocated by the bit rate predictor 126 - 2 . A parameter (QP) can be created.

도 7은 도 4의 부호율 제어기가 양자화 파라미터를 조정하는 방법을 설명하기 위한 블록도이다.FIG. 7 is a block diagram illustrating a method in which the code rate controller of FIG. 4 adjusts a quantization parameter.

도 4와 도 7을 참조하면, 부호율 제어기 (126-2)는 현재 프레임(FI)에 포함된 블록들 각각에 대한 양자화 파라미터(예컨대, QP, QP1, 또는 QP1')를 생성할 수 있다.4 and 7 , the code rate controller 126 - 2 may generate a quantization parameter (eg, QP, QP1, or QP1') for each of the blocks included in the current frame FI.

예컨대, 현재 프레임(FI)이 4*4 블록들을 포함한다고 가정한다. 현재 프레임에 포함된 블록 수는 이에 한정되지 않는다. 현재 프레임(FI)은 16개의 블록들 (BL1~BL16)을 포함할 수 있고, 부호율 제어기 (126-2)는 각 블록(BL1~BL16)에 대한 각 양자화 파라미터(QP1~QP16)를 생성할 수 있다. For example, it is assumed that the current frame FI includes 4*4 blocks. The number of blocks included in the current frame is not limited thereto. The current frame FI may include 16 blocks BL1 to BL16, and the code rate controller 126-2 generates each quantization parameter QP1 to QP16 for each block BL1 to BL16. can

실시 예에 따라, 부호율 제어기 (126-2)는 제1블록(BL1)에 대한 양자화 파라미터(QP1)를 생성할 수 있다. 부호율 제어기 (126-2)는 제1블록(BL1)에 대한 양자화 파라미터(QP1)를 조정할 수 있고, 조정된 양자화 파라미터(QP1')를 생성할 수 있다.According to an embodiment, the code rate controller 126 - 2 may generate a quantization parameter QP1 for the first block BL1. The code rate controller 126 - 2 may adjust the quantization parameter QP1 for the first block BL1 and generate the adjusted quantization parameter QP1'.

부호율 제어기(126-2)는 현재 프레임(FI)에 포함된 블록들 각각에 대해 조정된 양자화 파라미터(QP=QP1'~QP16')를 인코더(126-3)로 전송할 수 있다. The code rate controller 126 - 2 may transmit the adjusted quantization parameters (QP=QP1' to QP16') for each of the blocks included in the current frame FI to the encoder 126 - 3 .

부호율 제어기(126-2)는 수학식 4를 이용하여 블록들 각각에 대한 양자화 파라미터(QP)를 계산할 수 있다.The code rate controller 126 - 2 may calculate a quantization parameter (QP) for each of the blocks using Equation (4).

[수학식 4][Equation 4]

QP=(k2/31)*dn/r_seqQP=(k2/31)*dn/r_seq

여기서, QP는 양자화 파라미터, k2는 제1상수, r_seq는 제2상수, 및 dn는 버퍼 포화도를 의미한다.Here, QP is a quantization parameter, k2 is a first constant, r_seq is a second constant, and dn is buffer saturation.

도 8은 도 7의 양자화 파라미터를 조정하기 위한 블록의 버퍼 포화도를 설명하기 위한 그래프이다. 도 4와 도 7과 도 8을 참조하면, EST는 현재 프레임에 포함된 블록별로 할당된 타겟 비트에 대한 함수를 나타내고, REAL은 상기 현재 프레임에 포함된 상기 블록별로 실제 사용된 비트 수에 대한 함수를 나타낸다.FIG. 8 is a graph for explaining buffer saturation of a block for adjusting the quantization parameter of FIG. 7 . 4, 7, and 8, EST represents a function for a target bit allocated for each block included in the current frame, and REAL is a function for the number of bits actually used for each block included in the current frame. indicates

dn은 현재 프레임에 포함된 n번째 블록의 버퍼 포화도를 의미할 수 있다.dn may mean buffer saturation of the nth block included in the current frame.

부호율 제어기 (126-2)는 n번째 블록의 버퍼 포화도(dn)를 계산하기 위해, 인코더(126-3)로부터 이전 블록(n-1번째 블록)에 대한 인코딩(또는 부호화)에서 실제 사용된 비트 수 (BS)를 수신할 수 있다. The code rate controller 126-2 is actually used in encoding (or encoding) for the previous block (n-1 th block) from the encoder 126-3 in order to calculate the buffer saturation dn of the n th block. may receive the number of bits (BS).

부호율 제어기 (126-2)는 수학식 5를 이용하여 버퍼 포화도(dn)를 계산할 수 있다.The code rate controller 126-2 may calculate the buffer saturation dn using Equation 5.

[수학식 5][Equation 5]

dn=d0+BS-(ETB/TBL)*(n-1)dn=d0+BS-(ETB/TBL)*(n-1)

여기서, dn은 현재 블록(예컨대, n번째 블록)에 대한 버퍼 포화도, d0는 초기 버퍼 포화도, EB는 이전 블록에 대한 인코딩(또는 부호화)을 위해 할당된 타겟 비트, BS는 상기 이전 블록에 대한 인코딩(또는 부호화)에서 사용된 비트 수, ETB는 현재 프레임(FI)에 대한 인코딩(또는 부호화)을 위해 할당된 전체 타겟 비트, TBL은 현재 프레임(FI)에 포함된 전체 블록들의 개수, n은 현재 프레임에 포함된 현재 블록의 순서를 의미한다.Here, dn is the buffer saturation for the current block (eg, the nth block), d0 is the initial buffer saturation, EB is the target bit allocated for encoding (or encoding) for the previous block, and BS is the encoding for the previous block. The number of bits used in (or encoding), ETB is the total target bits allocated for encoding (or encoding) for the current frame FI, TBL is the total number of blocks included in the current frame FI, n is the current It means the order of the current block included in the frame.

즉, 버퍼 포화도(dn)는 이전 블록에서 실제로 사용된 비트 수(BS)와 상기 이전 블록에서 할당된 타겟 비트(EB)의 차이를 의미한다.That is, the buffer saturation dn means the difference between the number of bits actually used in the previous block BS and the target bits EB allocated in the previous block.

도 9는 도 7의 양자화 파라미터를 조정하는 방법을 설명하기 위한 표이다.9 is a table for explaining a method of adjusting the quantization parameter of FIG. 7 .

도 4와 도 7과 도 9를 참조하면, k2와 r_seq는 현재 프레임(FI)에 대한 레이트 컨트롤 파라미터들에 포함될 수 있다. 따라서, 코덱 CPU(122)는 k2 값과 r_seq 값을 결정할 수 있다. 실시 예에 따라, k2와 r_seq는 상수 값이다.4, 7, and 9 , k2 and r_seq may be included in rate control parameters for the current frame FI. Accordingly, the codec CPU 122 may determine the k2 value and the r_seq value. According to an embodiment, k2 and r_seq are constant values.

부호율 제어기 (126-2)는 상수 k2와 상수 r_seq를 조정할 수 있고, 조정된 k2와 조정된 r_seq를 이용하여 양자화 파라미터(QP 또는 QP1~QP16)를 조정할 수 있다. The code rate controller 126 - 2 may adjust the constant k2 and the constant r_seq, and adjust the quantization parameters QP or QP1 to QP16 using the adjusted k2 and the adjusted r_seq.

실시 예에 따라, 부호율 제어기 (126-2)는 일반 모드(normal mode(NM))에서는 상수 k2와 r_seq 값을 그대로 유지할 수 있다.According to an embodiment, the code rate controller 126 - 2 may maintain constant k2 and r_seq values in a normal mode (NM).

부호율 제어기 (126-2)는 플랫 모드(flat mode(FM_)에서는 k2값에 A1(A1>1)을 곱해주고, r_seq값에는 B1(B1<1)을 곱해줄 수 있다. 즉, 부호율 제어기 (126-2)는 k2값에 1보다 큰 값을 곱하여 k2값을 증가시킬 수 있다. 또한, 부호율 제어기 (126-2)는 r_seq값에 1보다 작은 값을 곱하여 r_seq값을 감소시킬 수 있다.The code rate controller 126-2 may multiply the k2 value by A1(A1>1) in the flat mode (FM_) and multiply the r_seq value by B1(B1<1). That is, the code rate The controller 126-2 may increase the value of k2 by multiplying the value of k2 by a value greater than 1. Also, the code rate controller 126-2 may decrease the value of r_seq by multiplying the value of r_seq by a value smaller than 1. have.

일반 모드(NM)는 부호율 제어기 (126-2)가 k2와 r_seq를 변경하지 않은 모드를 의미할 수 있고, 플랫 모드(FM)는 부호율 제어기 (126-2)가 k2와 r_seq를 변경하는 모드를 의미할 수 있다.The normal mode (NM) may mean a mode in which the code rate controller 126-2 does not change k2 and r_seq, and the flat mode (FM) is a mode in which the code rate controller 126-2 changes k2 and r_seq. mode can mean.

부호율 제어기 (126-2)는, 수학식 4를 이용하여, 조정된 양자화 파라미터(QP 또는 QP1'~QP16')를 계산할 수 있다.The code rate controller 126-2 may calculate the adjusted quantization parameters QP or QP1' to QP16' using Equation (4).

부호율 제어기(126-2)는 현재 프레임(FI)에 포함된 블록들 각각에 대해 조정된 양자화 파라미터(QP 또는 QP1'~QP16')를 인코더(126-3)로 전송할 수 있다. The code rate controller 126 - 2 may transmit the adjusted quantization parameters QP or QP1' to QP16' for each of the blocks included in the current frame FI to the encoder 126 - 3 .

인코더(126-3)는, 양자화 파라미터(QP=QP1~QP16)를 이용하여, 현재 프레임 (FI)을 블록 단위로 인코딩(또는 부호화)할 수 있다. 또한, 인코더(126-3)는, 조정된 양자화 파라미터(QP=QP1'~QP16')를 이용하여, 현재 프레임(FI)을 블록 단위로 인코딩(또는 부호화)할 수 있다.The encoder 126 - 3 may encode (or encode) the current frame FI in block units by using quantization parameters (QP=QP1 to QP16). Also, the encoder 126 - 3 may encode (or encode) the current frame FI in units of blocks by using the adjusted quantization parameters (QP=QP1' to QP16').

실시 예에 따라, 일반 모드(NM)에서 인코더(126-3)는, 변경되지 않은 양자화 파라미터(QP=QP1~QP16)를 이용하여, 현재 프레임(FI)을 블록 단위로 인코딩(또는 부호화)할 수 있다. 플랫 모드(FM)에서, 인코더(126-3)는, 변경된 양자화 파라미터(QP= QP1'~QP16')를 이용하여, 현재 프레임(FI)을 블록 단위로 인코딩(또는 부호화)할 수 있다.According to an embodiment, in the normal mode (NM), the encoder 126 - 3 encodes (or encodes) the current frame FI in block units using the unaltered quantization parameters (QP=QP1 to QP16). can In the flat mode FM, the encoder 126 - 3 may encode (or encode) the current frame FI in blocks by using the changed quantization parameters (QP=QP1' to QP16').

인코더(126-3)는, 현재 프레임(FI)에 대한 인코딩이 완료되면, 인코딩 완료 신호(DI)를 코덱 CPU(122)로 전송할 수 있다. 인코딩 완료 신호(DI)는 인코더(126-3)에 의해 현재 프레임(FI)이 인코딩되는 동안 사용된 비트 수에 대한 정보를 포함할 수 있다. When encoding of the current frame FI is completed, the encoder 126 - 3 may transmit an encoding completion signal DI to the codec CPU 122 . The encoding completion signal DI may include information on the number of bits used while the current frame FI is encoded by the encoder 126 - 3 .

인코더(126-3)는, 현재 프레임(FI)에 대한 인코딩(또는 부호화)이 완료되면, 부호화 된 현재 프레임(EI)을 코덱 메모리(128)로 저장할 수 있다.When encoding (or encoding) of the current frame FI is completed, the encoder 126 - 3 may store the encoded current frame EI in the codec memory 128 .

도 10의 (a)는 일반 모드에서 작동하는 도 4의 인코더(126-3)에 의해 인코딩 된 프레임에 대한 비트 수를 나타내는 그래프이다.10A is a graph showing the number of bits for a frame encoded by the encoder 126-3 of FIG. 4 operating in a normal mode.

도 10의 (a)의 그래프는 일반 모드에서 현재 프레임(예컨대, n번째 프레임)에 대한 인코딩 시에 사용된 비트 수(BIT1)를 나타낸다.The graph of FIG. 10 (a) shows the number of bits (BIT1) used in encoding for the current frame (eg, the nth frame) in the normal mode.

실시 예에 따라, 현재 프레임(예컨대, n번째 프레임)이 i-프레임일 때, 도 10의 (a)의 그래프는 상기 현재 프레임에 대한 인코딩 시에 사용된 비트 수(BIT1)를 나타낼 수 있다.According to an embodiment, when the current frame (eg, the nth frame) is an i-frame, the graph of FIG. 10A may indicate the number of bits BIT1 used in encoding for the current frame.

도 10의 (b)는 플랫 모드로 작동하는 도 4의 인코더(126-3)에 의해 인코딩된 프레임에 대한 비트 수(BIT2)를 나타내는 그래프이다.FIG. 10B is a graph showing the number of bits (BIT2) for a frame encoded by the encoder 126-3 of FIG. 4 operating in a flat mode.

도 10의 (b)를 참조하면, 도 10의 (b)의 그래프는 플랫 모드에서 현재 프레임(예컨대, n번째 프레임)에 대한 인코딩 시에 사용된 비트 수(BIT2<BIT1)를 나타낸다.Referring to FIG. 10B , the graph of FIG. 10B shows the number of bits (BIT2<BIT1) used in encoding for the current frame (eg, the nth frame) in the flat mode.

실시 예에 따라, 현재 프레임(예컨대, n번째 프레임)이 i-프레임일 때, 도 10의 (b)의 그래프는 현재 프레임에 대한 인코딩 시에 사용된 비트 수(BIT2)를 나타낼 수 있다.According to an embodiment, when the current frame (eg, the n-th frame) is an i-frame, the graph of FIG. 10B may indicate the number of bits (BIT2) used in encoding for the current frame.

도 10의 (a)와 도 10의 (b)를 참조하면, 일반 모드에서 현재 프레임을 인코딩하기 위해 필요한 비트 수는 플랫 모드에서 현재 프레임을 인코딩하기 위해 필요한 비트 수보다 많다. 즉, 현재 프레임(FI)을 인코딩하기 위해 필요한 비트 수는 플랫 모드에서 상당히 감소한다.Referring to FIGS. 10A and 10B , the number of bits required to encode the current frame in the normal mode is greater than the number of bits required to encode the current frame in the flat mode. That is, the number of bits required to encode the current frame FI is significantly reduced in the flat mode.

도 11은 도 4의 코덱 메모리가 포화될 때 코덱의 동작을 설명하기 위한 그래프이다. 도 4와 도 11을 참조하면, 코덱 CPU(122)는, 코덱 메모리(128)에 저장된 부호화 된 현재 프레임(EI)에 기초하여, 코덱 메모리(128)의 포화 여부를 체크하고 체크 신호(BF)를 생성할 수 있다.11 is a graph for explaining the operation of the codec when the codec memory of FIG. 4 is saturated. 4 and 11 , the codec CPU 122 checks whether the codec memory 128 is saturated based on the coded current frame EI stored in the codec memory 128, and checks signal BF. can create

코덱 메모리(128)에 저장된 부호화 된 프레임들의 비트 수가 현재 프레임 (FI)을 포함하는 GOP에 할당된 메모리 용량에 도달하면, 코덱 CPU(128)는 현재 프레임(FI)에 대한 인코딩을 종료할 수 있다.When the number of bits of the coded frames stored in the codec memory 128 reaches the memory capacity allocated to the GOP including the current frame FI, the codec CPU 128 may end encoding for the current frame FI. .

실시 예에 따라, 코덱 CPU(122)는 현재 프레임(FI)을 포함하는 GOP에 할당된 전체 타겟 비트와 코덱 메모리(128)에 저장된 상기 GOP에 대한 부호화(또는 인코딩) 된 프레임들 (EI1~EIN)의 전체 비트 수를 비교할 수 있다.According to an embodiment, the codec CPU 122 includes all target bits allocated to the GOP including the current frame FI and the encoded (or encoded) frames (EI1 to EIN) for the GOP stored in the codec memory 128 . ) can be compared to the total number of bits.

코덱 메모리(128)가 가득 찬 경우, 코덱 CPU(122)는 GOP에 포함된 처리되지 않은 나머지 프레임들에 대한 인코딩을 종료할 수 있다. 예컨대, 코덱 CPU(128)는 코덱 메모리(128)의 포화도가 일정량 이하로 떨어질 때까지, 상기 나머지 프레임들에 대한 인코딩을 스킵(skip)할 수 있다. 상기 일정량은 사용자의 설정 또는 기설정된 기준에 의해 결정될 수 있다. 또한, 코덱 CPU (128)는 인코딩 종료 신호(DI)를 전처리 회로(110)로 전송할 수 있다.When the codec memory 128 is full, the codec CPU 122 may end encoding for the remaining unprocessed frames included in the GOP. For example, the codec CPU 128 may skip encoding for the remaining frames until the saturation of the codec memory 128 falls below a certain amount. The predetermined amount may be determined by a user's setting or a preset standard. Also, the codec CPU 128 may transmit the encoding end signal DI to the preprocessing circuit 110 .

코덱 메모리(128)가 가득 차지 않았을 때, 코덱 CPU(122)는 GOP에 포함된 처리되지 않은 나머지 프레임들에 대한 인코딩을 계속 수행할 수 있다.When the codec memory 128 is not full, the codec CPU 122 may continue to encode the remaining unprocessed frames included in the GOP.

도 12는 본 발명의 실시 예에 따른 일반 모드와 플랫 모드를 설명하기 위한 플로우 차트이다.12 is a flowchart illustrating a normal mode and a flat mode according to an embodiment of the present invention.

도 1, 도 4, 및 도 12를 참조하면, 코덱 CPU(122)는 현재 프레임(FI)에 대한 인코딩을 플랫 모드에서 수행할지 일반 모드에서 수행할지를 판단할 수 있다 (S101). CPU(130)는 판단의 결과를 코덱 CPU(122)로 전송할 수 있다.1, 4, and 12 , the codec CPU 122 may determine whether encoding for the current frame FI is performed in the flat mode or the normal mode ( S101 ). The CPU 130 may transmit a result of the determination to the codec CPU 122 .

코덱 CPU(122)는, 현재 프레임(FI)에 대한 인코딩이 일반 모드로 수행된다고 판단하면(S101의 No), 현재 프레임(FI)을 상기 일반 모드로 인코딩한다(S103).When it is determined that the encoding of the current frame FI is performed in the normal mode (No in S101), the codec CPU 122 encodes the current frame FI in the normal mode (S103).

비트율 예측기(126-1)는, 현재 프레임(FI)이 i-프레임인 경우, 이전 프레임을 포함하는 GOP에서 인코딩 후에 남은 비트 수를 이용하여 현재 프레임(FI)을 포함하는 GOP에 대한 전체 타겟 비트를 할당할 수 있다(S105). 예컨대, 이전 프레임을 포함하는 GOP에서 인코딩 후에 남은 비트 수는 현재 프레임(FI)을 포함하는 GOP에 대한 전체 타겟 비트에 추가로 할당 될 수 있다 (S105).The bit rate predictor 126 - 1, when the current frame (FI) is an i-frame, using the number of bits remaining after encoding in the GOP including the previous frame, all target bits for the GOP including the current frame (FI) can be assigned (S105). For example, the number of bits remaining after encoding in the GOP including the previous frame may be additionally allocated to all target bits for the GOP including the current frame FI ( S105 ).

부호율 제어기(126-2)는 양자화 파라미터(QP)를 조정하지 않고 인코더(126-3)로 현재 프레임(FI)에 포함된 블록들 각각에 대해서 조정되지 않은 양자화 파라미터(QP)를 전송할 수 있다. 인코더(126-3)는 조정되지 않은 양자화 파라미터(QP)를 이용하여 현재 프레임(FI)을 인코딩할 수 있다(S107).The code rate controller 126-2 may transmit the unadjusted quantization parameter QP for each of the blocks included in the current frame FI to the encoder 126-3 without adjusting the quantization parameter QP. . The encoder 126 - 3 may encode the current frame FI using the unadjusted quantization parameter QP ( S107 ).

코덱 CPU(122)는, 현재 프레임(FI)에 대한 인코딩이 플랫 모드에서 수행된다고 판단되면, 현재 프레임(FI)을 상기 플랫 모드로 인코딩할 수 있다(S109).When it is determined that the encoding of the current frame FI is performed in the flat mode, the codec CPU 122 may encode the current frame FI in the flat mode (S109).

도 13은 본 발명의 실시 예에 따른 플랫 모드에서 코덱의 동작을 설명하기 위한 플로우 차트이다. 도 4와 도 13을 참조하면, 코덱 CPU(122)는 현재 프레임 (FI)의 레이트 컨트롤 파라미터들을 결정할 수 있다(S201).13 is a flowchart illustrating an operation of a codec in a flat mode according to an embodiment of the present invention. 4 and 13 , the codec CPU 122 may determine rate control parameters of the current frame FI ( S201 ).

비트율 예측기(126-1)는, 현재 프레임(FI)이 i-프레임인 경우, 이전 프레임을 포함하는 이전 GOP에서 인코딩 후에 남은 비트 수에 관계없이, 현재 프레임(FI)을 포함하는 GOP에 대한 전체 타겟 비트를 할당할 수 있다(S203).The bit rate predictor 126 - 1 is, when the current frame (FI) is an i-frame, regardless of the number of bits remaining after encoding in the previous GOP including the previous frame, the entire GOP including the current frame (FI) A target bit may be allocated (S203).

비트율 예측기(126-1)는 현재 프레임(FI)을 포함하는 GOP에 포함된 프레임들 각각에 대한 타겟 비트를 할당할 수 있다(S205).The bit rate predictor 126 - 1 may allocate a target bit to each of the frames included in the GOP including the current frame FI ( S205 ).

부호율 제어기(126-2)는 현재 프레임(FI)의 레이트 컨트롤 파라미터들을 조정하고, 현재 프레임(FI)의 블록별로 양자화 파라미터를 조정할 수 있다(S207). 부호율 제어기 (126-2)는 조정된 양자화 파라미터(QP)를 인코더(126-3)로 전송할 수 있다.The code rate controller 126 - 2 may adjust the rate control parameters of the current frame FI and adjust the quantization parameters for each block of the current frame FI ( S207 ). The code rate controller 126 - 2 may transmit the adjusted quantization parameter (QP) to the encoder 126 - 3 .

인코더(126-3)는, 조정된 양자화 파라미터를 이용하여, 현재 프레임(FI)을 블록 단위로 부호화 할 수 있다(S209). 인코더(126-3)는, 현재 프레임(FI)에 대한 인코딩(또는 부호화)이 완료되면, 인코딩 종료 신호(DI)를 코덱 CPU(122)로 전송할 수 있다.The encoder 126 - 3 may encode the current frame FI in block units by using the adjusted quantization parameter ( S209 ). When encoding (or encoding) of the current frame FI is completed, the encoder 126 - 3 may transmit an encoding end signal DI to the codec CPU 122 .

코덱 CPU(122)는 현재 프레임이 GOP의 마지막 프레임인지 여부를 판단할 수 있다(S211). 예컨대, 현재 프레임(FI)의 다음 프레임이 i-프레임인 경우, 현재 프레임(FI)은 상기 GOP의 마지막 프레임일 수 있다.The codec CPU 122 may determine whether the current frame is the last frame of the GOP (S211). For example, when the next frame of the current frame FI is an i-frame, the current frame FI may be the last frame of the GOP.

현재 프레임(FI)이 상기 GOP의 마지막 프레임인 경우, 비트율 예측기(126-1)는 다음 프레임을 포함하는 새로운 GOP에 대한 전체 타겟 비트를 할당할 수 있다.When the current frame FI is the last frame of the GOP, the bit rate predictor 126 - 1 may allocate all target bits for the new GOP including the next frame.

현재 프레임(FI)이 상기 GOP의 마지막 프레임이 아닌 경우, 비트율 예측기 (126-1)는 상기 GOP에 대한 전체 타겟 비트를 할당하지 않고, 다음 프레임에 대한 타겟 비트를 예측할 수 있다.When the current frame FI is not the last frame of the GOP, the bit rate predictor 126 - 1 may predict the target bit for the next frame without allocating all target bits for the GOP.

도 14는 코덱 메모리가 포화된 경우 코덱의 동작을 설명하기 위한 플로우 차트이다. 도 4와 도 14를 참조하면, 인코더(126-3)는 현재 프레임(FI)을 인코딩할 수 있다(S301). 인코더(126-3)는, 현재 프레임(FI)에 대한 인코딩이 완료되고, 부호화 된 현재 프레임(EI)을 코덱 메모리(128)로 저장할 수 있다(S303).14 is a flowchart for explaining the operation of the codec when the codec memory is saturated. 4 and 14 , the encoder 126 - 3 may encode the current frame FI ( S301 ). The encoder 126 - 3 may complete encoding of the current frame FI and store the encoded current frame EI in the codec memory 128 ( S303 ).

코덱 CPU(122)는 코덱 메모리(128)의 포화 여부를 체크하고 체크 신호(BF)를 생성할 수 있다(S305). 코덱 CPU(122)는 코덱 메모리(128)에 저장된 부호화 된 프레임들의 비트 수와 GOP에 할당된 코덱 메모리(128)의 메모리 공간에 저장될 수 있는 전체 타겟 비트를 비교하고 비교 결과에 따라 포화 여부를 체크할 수 있다(S307).The codec CPU 122 may check whether the codec memory 128 is saturated and generate a check signal BF (S305). The codec CPU 122 compares the number of bits of the encoded frames stored in the codec memory 128 with the total target bits that can be stored in the memory space of the codec memory 128 allocated to the GOP, and determines whether or not saturation is achieved according to the comparison result can be checked (S307).

코덱 메모리(128)가 포화되지 않은 경우, 인코더(126-3)는 현재 프레임(FI)의 다음 프레임을 인코딩할 수 있다(S307). 코덱 메모리(128)가 포화된 경우 코덱 CPU(122)는 상기 다음 프레임에 대한 인코딩을 스킵(skip)할 수 있다(S307). 코덱 CPU(122)는 코덱 메모리(128)의 포화도가 일정량 이하로 떨어질 때까지 남은 프레임들에 대한 인코딩을 스킵(skip)할 수 있다.When the codec memory 128 is not saturated, the encoder 126 - 3 may encode the next frame of the current frame FI ( S307 ). When the codec memory 128 is saturated, the codec CPU 122 may skip encoding for the next frame (S307). The codec CPU 122 may skip encoding of the remaining frames until the saturation of the codec memory 128 falls below a certain amount.

본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Although the present invention has been described with reference to the embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Accordingly, the true technical protection scope of the present invention should be determined by the technical spirit of the appended claims.

10, 10-1: 데이터 처리 시스템
50: 카메라
110: 전처리 회로
120: 코덱
122: 코덱 CPU
126: 하드웨어 블록
126-1: 비트율 예측기
126-2: 부호율 제어기
126-3: 인코더
128: 코덱 메모리
130: CPU
135: 애플리케이션
140: 제1메모리
180: 모뎀
200: 디스플레이
220: 제2메모리
10, 10-1: data processing system
50: camera
110: preprocessing circuit
120: codec
122: codec CPU
126: hardware block
126-1: bit rate predictor
126-2: code rate controller
126-3: encoder
128: codec memory
130: CPU
135: application
140: first memory
180: modem
200: display
220: second memory

Claims (10)

현재 프레임을 수신하고, 수신된 현재 프레임의 타입을 결정하고, 상기 현재 프레임의 레이트 컨트롤 파라미터(rate control parameter)들을 설정하는 코덱 CPU;
상기 현재 프레임을 포함하는 제1GOP(group of picture)에 대한 전체 타겟 비트(target bit)를 할당하고, 결정된 현재 프레임의 타입과 설정된 레이트 컨트롤 파라미터들에 기초하여, 상기 제1GOP에 포함된 프레임들 각각에 대한 타겟 비트를 할당하는 비트율 예측기; 및
상기 현재 프레임의 상기 레이트 컨트롤 파라미터들을 조정하고, 상기 비트율 예측기에 의해 할당된 프레임들 각각에 대한 타겟 비트와 조정된 레이트 컨트롤 파라미터들을 이용하여 상기 현재 프레임에 포함된 블록들 각각에 대한 양자화 파라미터를 생성하는 부호율 제어기를 포함하되,
상기 비트율 예측기는,
일반 모드에서 동작 할 때, 이전 프레임을 포함하는 제2GOP에서 인코딩 후에 남은 비트 수를 이용하여, 상기 제1GOP에 대해 전체 타겟 비트를 할당하고,
플랫 모드에서 동작할 때, 상기 이전 프레임을 포함하는 상기 제2GOP에서 인코딩 후에 남은 비트 수에 관계없이, 상기 제1 GOP에 대해 전체 타겟 비트를 할당하고,
상기 부호율 제어기는,
상기 일반 모드에서 동작할 때, 상기 양자화 파라미터를 조정하지 않고,
상기 플랫 모드에서 동작할 때, 상기 양자화 파라미터를 조정하는 코덱.
a codec CPU that receives a current frame, determines a type of the received current frame, and sets rate control parameters of the current frame;
Allocate all target bits for a first group of picture (GOP) including the current frame, and based on the determined type of the current frame and set rate control parameters, each of the frames included in the first GOP a bit rate predictor for allocating target bits for ; and
Adjusts the rate control parameters of the current frame, and generates a quantization parameter for each of the blocks included in the current frame by using the target bit for each of the frames allocated by the bit rate predictor and the adjusted rate control parameters Including a code rate controller to
The bit rate predictor,
When operating in the normal mode, all target bits are allocated to the first GOP by using the number of bits remaining after encoding in the second GOP including the previous frame,
When operating in the flat mode, allocating all target bits for the first GOP, regardless of the number of bits remaining after encoding in the second GOP including the previous frame,
The code rate controller is
When operating in the normal mode, without adjusting the quantization parameter,
A codec for adjusting the quantization parameter when operating in the flat mode.
제1항에 있어서,
상기 현재 프레임의 타입이 I-프레임(intra frame)인 경우,
상기 비트율 예측기는, 이전 프레임을 포함하는 상기 제2GOP에 관계없이, 상기 제1GOP에 대한 전체 타겟 비트를 할당하고, 할당된 제1GOP에 대한 상기 전체 타겟 비트를 이용하여 상기 현재 프레임에 대한 타겟 비트를 할당하는 코덱.
According to claim 1,
When the type of the current frame is an I-frame (intra frame),
The bit rate predictor allocates all target bits for the first GOP regardless of the second GOP including the previous frame, and uses the all target bits for the allocated first GOP to determine the target bit for the current frame Allocating codec.
제1항에 있어서,
상기 현재 프레임의 타입이 I-프레임(intra frame)이 아닌 경우,
상기 비트율 예측기는 상기 제1GOP에 대해 할당된 전체 타겟 비트와 상기 제1GOP에 포함된 이전 프레임들을 부호화하기 위해 사용한 비트 수의 차이를 이용하여 상기 현재 프레임에 대한 상기 타겟 비트를 할당하는 코덱.
According to claim 1,
When the type of the current frame is not an I-frame (intra frame),
The bit rate predictor allocates the target bit for the current frame by using a difference between all target bits allocated for the first GOP and the number of bits used to encode previous frames included in the first GOP.
제3항에 있어서,
상기 비트율 예측기는, 제1GOP에 포함되고 처리되지 않은 프레임들의 개수에 기초하여, 상기 현재 프레임에 대한 상기 타겟 비트를 할당하는 코덱.
4. The method of claim 3,
The bit rate predictor is a codec for allocating the target bit for the current frame based on the number of unprocessed frames included in the first GOP.
제1항에 있어서,
상기 블록들 각각에 대한 상기 양자화 파라미터에 기초하여, 상기 현재 프레임을 부호화하고, 부호화 된 현재 프레임을 출력하는 인코더; 및
상기 부호화 된 현재 프레임을 저장하는 코덱 메모리를 더 포함하고,
상기 코덱 CPU는 상기 코덱 메모리에 저장된 상기 부호화 된 현재 프레임에 기초하여, 상기 코덱 메모리의 포화 여부를 체크하는 코덱.
According to claim 1,
an encoder that encodes the current frame based on the quantization parameter for each of the blocks and outputs the encoded current frame; and
Further comprising a codec memory for storing the encoded current frame,
The codec CPU checks whether the codec memory is saturated based on the encoded current frame stored in the codec memory.
제5항에 있어서,
상기 코덱 메모리가 포화 된 경우에, 상기 코덱 CPU는 상기 제1GOP에 포함된 나머지 프레임들에 대한 부호화를 스킵(skip)하는 코덱.
6. The method of claim 5,
When the codec memory is saturated, the codec CPU skips encoding of the remaining frames included in the first GOP.
제5항에 있어서,
상기 부호율 제어기는 상기 현재 프레임에 포함된 상기 블록들 각각에 대한 상기 양자화 파라미터를 조정하고, 블록별로 조정된 양자화 파라미터를 상기 인코더로 전송하고,
상기 인코더는 상기 블록별로 상기 조정된 양자화 파라미터를 이용하여 상기 현재 프레임에 포함된 상기 블록들 각각에 대한 부호화를 수행하는 코덱.
6. The method of claim 5,
The code rate controller adjusts the quantization parameter for each of the blocks included in the current frame, and transmits the adjusted quantization parameter for each block to the encoder,
and the encoder performs encoding on each of the blocks included in the current frame by using the adjusted quantization parameter for each block.
영상 데이터를 처리하고, 처리된 영상 데이터를 이용하여 현재 프레임을 생성하고 출력하는 전-처리 회로; 및
상기 현재 프레임을 수신하고, 상기 현재 프레임을 부호화하는 코덱을 포함하고,
상기 코덱은,
현재 프레임을 수신하고, 수신된 현재 프레임의 타입을 결정하고, 상기 현재 프레임의 레이트 컨트롤 파라미터들을 설정하는 코덱 CPU;
상기 현재 프레임을 포함하는 제1GOP(group of picture)에 대한 전체 타겟 비트를 할당하고, 결정된 현재 프레임의 타입과 설정된 레이트 컨트롤 파라미터들에 기초하여, 상기 제1GOP에 포함된 프레임들 각각에 대한 타겟 비트를 할당하는 비트율 예측기; 및
상기 현재 프레임의 상기 레이트 컨트롤 파라미터들을 조정하고, 상기 비트율 예측기에 의해 할당된 프레임들 각각에 대한 타겟 비트와 조정된 레이트 컨트롤 파라미터들을 이용하여 상기 현재 프레임에 포함된 블록들 각각에 대한 양자화 파라미터를 생성하는 부호율 제어기를 포함하되,
상기 비트율 예측기는,
일반 모드에서 동작 할 때, 이전 프레임을 포함하는 제2GOP에서 인코딩 후에 남은 비트 수를 이용하여, 상기 제1GOP에 대해 전체 타겟 비트를 할당하고,
플랫 모드에서 동작할 때, 상기 이전 프레임을 포함하는 상기 제2GOP에서 인코딩 후에 남은 비트 수에 관계없이, 상기 제1 GOP에 대해 전체 타겟 비트를 할당하고,
상기 부호율 제어기는,
상기 일반 모드에서 동작할 때, 상기 양자화 파라미터를 조정하지 않고,
상기 플랫 모드에서 동작할 때, 상기 양자화 파라미터를 조정하는 시스템 온 칩.
a pre-processing circuit that processes the image data and generates and outputs a current frame by using the processed image data; and
and a codec for receiving the current frame and encoding the current frame,
The codec is
a codec CPU that receives a current frame, determines a type of the received current frame, and sets rate control parameters of the current frame;
Allocate all target bits for a first group of picture (GOP) including the current frame, and based on the determined current frame type and set rate control parameters, target bits for each of the frames included in the first GOP a bit rate predictor that assigns and
Adjusts the rate control parameters of the current frame, and generates a quantization parameter for each of the blocks included in the current frame by using the target bit for each of the frames allocated by the bit rate predictor and the adjusted rate control parameters Including a code rate controller to
The bit rate predictor,
When operating in the normal mode, all target bits are allocated to the first GOP by using the number of bits remaining after encoding in the second GOP including the previous frame,
When operating in the flat mode, allocating all target bits for the first GOP, regardless of the number of bits remaining after encoding in the second GOP including the previous frame,
The code rate controller is
When operating in the normal mode, without adjusting the quantization parameter,
a system on chip for adjusting the quantization parameter when operating in the flat mode.
제8항에 있어서,
상기 블록들 각각에 대한 상기 양자화 파라미터에 기초하여, 상기 현재 프레임을 부호화하고, 부호화 된 현재 프레임을 출력하는 인코더; 및
상기 부호화 된 현재 프레임을 저장하는 코덱 메모리를 더 포함하고,
상기 코덱 CPU는 상기 코덱 메모리에 저장된 상기 부호화 된 현재 프레임에 기초하여, 상기 코덱 메모리의 포화 여부를 체크하는 시스템 온 칩.
9. The method of claim 8,
an encoder that encodes the current frame based on the quantization parameter for each of the blocks and outputs the encoded current frame; and
Further comprising a codec memory for storing the encoded current frame,
The codec CPU checks whether the codec memory is saturated based on the encoded current frame stored in the codec memory.
영상 통화 애플리케이션이 실행되면, 영상 데이터를 생성하는 카메라 장치;
상기 카메라 장치로부터 수신된 영상 데이터를 처리하고, 처리된 영상 데이터를 이용하여 현재 프레임을 생성하고 출력하는 전-처리 회로; 및
상기 현재 프레임을 수신하고, 상기 현재 프레임을 부호화하는 코덱을 포함하고,
상기 코덱은,
현재 프레임을 수신하고, 수신된 현재 프레임의 타입을 결정하고, 상기 현재 프레임의 레이트 컨트롤 파라미터들을 설정하는 코덱 CPU;
상기 현재 프레임을 포함하는 제1GOP(group of picture)에 대한 전체 타겟 비트를 할당하고, 결정된 현재 프레임의 타입과 설정된 레이트 컨트롤 파라미터들에 기초하여, 상기 제1GOP에 포함된 프레임들 각각에 대한 타겟 비트를 할당하는 비트율 예측기; 및
상기 현재 프레임의 상기 레이트 컨트롤 파라미터들을 조정하고, 상기 비트율 예측기에 의해 할당된 프레임들 각각에 대한 타겟 비트와 조정된 레이트 컨트롤 파라미터 파라미터들을 이용하여 상기 현재 프레임에 포함된 블록들 각각에 대한 양자화 파라미터를 생성하는 부호율 제어기를 포함하되,
상기 비트율 예측기는,
일반 모드에서 동작 할 때, 이전 프레임을 포함하는 제2GOP에서 인코딩 후에 남은 비트 수를 이용하여, 상기 제1GOP에 대해 전체 타겟 비트를 할당하고,
플랫 모드에서 동작할 때, 상기 이전 프레임을 포함하는 상기 제2GOP에서 인코딩 후에 남은 비트 수에 관계없이, 상기 제1 GOP에 대해 전체 타겟 비트를 할당하고,
상기 부호율 제어기는,
상기 일반 모드에서 동작할 때, 상기 양자화 파라미터를 조정하지 않고,
상기 플랫 모드에서 동작할 때, 상기 양자화 파라미터를 조정하는 데이터 처리 시스템.
When the video call application is executed, the camera device for generating video data;
a pre-processing circuit for processing the image data received from the camera device, and generating and outputting a current frame using the processed image data; and
and a codec for receiving the current frame and encoding the current frame,
The codec is
a codec CPU that receives a current frame, determines a type of the received current frame, and sets rate control parameters of the current frame;
Allocate all target bits for a first group of picture (GOP) including the current frame, and based on the determined current frame type and set rate control parameters, target bits for each of the frames included in the first GOP a bit rate predictor that assigns and
Adjust the rate control parameters of the current frame, and use the target bit for each of the frames allocated by the bit rate predictor and the adjusted rate control parameter parameters to determine a quantization parameter for each of the blocks included in the current frame A code rate controller for generating
The bit rate predictor,
When operating in the normal mode, all target bits are allocated to the first GOP by using the number of bits remaining after encoding in the second GOP including the previous frame,
When operating in the flat mode, allocating all target bits for the first GOP, regardless of the number of bits remaining after encoding in the second GOP including the previous frame,
The code rate controller is
When operating in the normal mode, without adjusting the quantization parameter,
a data processing system for adjusting the quantization parameter when operating in the flat mode.
KR1020140164123A 2014-11-24 2014-11-24 CODEC, SYSTEM ON CHIP(SoC) INCLUDING THE SAME, AND DATA PROCESSING SYSTEM INCLUDING THE SoC KR102274747B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140164123A KR102274747B1 (en) 2014-11-24 2014-11-24 CODEC, SYSTEM ON CHIP(SoC) INCLUDING THE SAME, AND DATA PROCESSING SYSTEM INCLUDING THE SoC
US14/868,427 US9967573B2 (en) 2014-11-24 2015-09-29 Codec, system on chip (SOC) including the same, and data processing system including the SOC

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140164123A KR102274747B1 (en) 2014-11-24 2014-11-24 CODEC, SYSTEM ON CHIP(SoC) INCLUDING THE SAME, AND DATA PROCESSING SYSTEM INCLUDING THE SoC

Publications (2)

Publication Number Publication Date
KR20160061613A KR20160061613A (en) 2016-06-01
KR102274747B1 true KR102274747B1 (en) 2021-07-07

Family

ID=56011525

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140164123A KR102274747B1 (en) 2014-11-24 2014-11-24 CODEC, SYSTEM ON CHIP(SoC) INCLUDING THE SAME, AND DATA PROCESSING SYSTEM INCLUDING THE SoC

Country Status (2)

Country Link
US (1) US9967573B2 (en)
KR (1) KR102274747B1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190019925A (en) * 2016-07-14 2019-02-27 삼성전자주식회사 METHOD AND APPARATUS FOR ENCODING / DECODING IMAGE
CN108063945B (en) * 2017-12-21 2021-07-09 西北工业大学 Element class-based linear code rate estimation method
CN110213585B (en) 2018-10-31 2022-10-28 腾讯科技(深圳)有限公司 Video encoding method, video encoding device, computer-readable storage medium, and computer apparatus
CN109348244B (en) * 2018-11-20 2021-05-18 浙江齐聚科技有限公司 Method, device, equipment and storage medium for configuring video coding parameters
CN110139101B (en) * 2019-06-20 2022-03-25 电子科技大学 Frame-level bit distribution method based on lambda domain code rate control
CN110784718B (en) * 2019-10-31 2021-07-20 广州市网星信息技术有限公司 Video data encoding method, apparatus, device and storage medium
US11843772B2 (en) * 2019-12-06 2023-12-12 Ati Technologies Ulc Video encode pre-analysis bit budgeting based on context and features
KR20220120401A (en) 2021-02-23 2022-08-30 (주)솔빛시스템 Target inferencing method for egde artificial intelligence
US11726949B2 (en) * 2021-05-28 2023-08-15 Samsung Electronics Co., Ltd. System and method for selectively reprocessing video streams based on system resources and stream status

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040114817A1 (en) * 2002-07-01 2004-06-17 Nikil Jayant Efficient compression and transport of video over a network

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2208950A1 (en) 1996-07-03 1998-01-03 Xuemin Chen Rate control for stereoscopic digital video encoding
US6212232B1 (en) 1998-06-18 2001-04-03 Compaq Computer Corporation Rate control and bit allocation for low bit rate video communication applications
US6850565B2 (en) 1998-12-18 2005-02-01 Intel Corporation Real time bit rate control system
US7277483B1 (en) 2000-04-18 2007-10-02 Ati International Srl Method and apparatus for rate control for constant-bit-rate finite-buffer-size video encoder
KR100341063B1 (en) 2000-06-28 2002-06-20 송문섭 Rate control apparatus and method for real-time video communication
KR20040046055A (en) * 2002-11-26 2004-06-05 엘지전자 주식회사 Method for electrical transmission bit rate control of moving picture
KR20040047009A (en) 2002-11-28 2004-06-05 엘지전자 주식회사 Bit rate control method of video telephony system
KR100557618B1 (en) * 2003-01-03 2006-03-10 엘지전자 주식회사 Bit rate control system based on object
KR100543608B1 (en) * 2003-01-03 2006-01-20 엘지전자 주식회사 Bit rate control system based on object
KR100548243B1 (en) 2003-02-07 2006-02-02 엘지전자 주식회사 A method of transmitting encoded video signal with rate control for mobile phone
TWI226198B (en) * 2003-08-08 2005-01-01 Lite On It Corp Method of buffer management in video encoder
KR100505699B1 (en) * 2003-08-12 2005-08-03 삼성전자주식회사 Encoding rate controller of video encoder providing for qualitative display using real time variable bit-rate control, video data transmission system having it and method thereof
KR101176213B1 (en) 2005-08-23 2012-08-22 주식회사 케이티 Apparatus for controlling intra-frame coding rate and method thereof
US8548048B2 (en) 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
CN101594525B (en) 2008-05-31 2011-08-10 华为技术有限公司 Method and device for acquiring quantization parameters and transcoding device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040114817A1 (en) * 2002-07-01 2004-06-17 Nikil Jayant Efficient compression and transport of video over a network

Also Published As

Publication number Publication date
KR20160061613A (en) 2016-06-01
US20160150229A1 (en) 2016-05-26
US9967573B2 (en) 2018-05-08

Similar Documents

Publication Publication Date Title
KR102274747B1 (en) CODEC, SYSTEM ON CHIP(SoC) INCLUDING THE SAME, AND DATA PROCESSING SYSTEM INCLUDING THE SoC
KR102543444B1 (en) Video encoding apparatus
US10116943B2 (en) Adaptive video compression for latency control
TWI688260B (en) Methods, systems, and devices including an encoder for image processing
KR102212762B1 (en) Codec and devices including the same
TWI791578B (en) Video encoding apparatus
US10009617B2 (en) Method of operating encoder and method of operating system on chip including the encoder
US10674160B2 (en) Parallel video encoding device and encoder configured to operate in parallel with another encoder
US20170013262A1 (en) Rate control encoding method and rate control encoding device using skip mode information
US10694178B2 (en) Video processing device for encoding frames constituting hierarchical structure
US20170099487A1 (en) Encoder for determining quantization parameter adaptively and application processor having the same
US10412386B2 (en) System on chip and data processing system including the same
TWI785073B (en) Multi-codec encoder and multi-codec encoding system
US20130235924A1 (en) Electronic apparatus and method for encoding

Legal Events

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