KR101739767B1 - Method and appartus for rate control for parallel video encoder - Google Patents
Method and appartus for rate control for parallel video encoder Download PDFInfo
- Publication number
- KR101739767B1 KR101739767B1 KR1020150006124A KR20150006124A KR101739767B1 KR 101739767 B1 KR101739767 B1 KR 101739767B1 KR 1020150006124 A KR1020150006124 A KR 1020150006124A KR 20150006124 A KR20150006124 A KR 20150006124A KR 101739767 B1 KR101739767 B1 KR 101739767B1
- Authority
- KR
- South Korea
- Prior art keywords
- gop
- frame
- bit
- parallel
- determining
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/177—Methods 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/436—Methods 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 using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 비디오 병렬 부호화기의 율제어(rate control)를 위한 방법 및 장치에 관한 것으로, 본 발명의 일 실시예에 따른 병렬 부호화기를 위안 율 제어 방법은, 병렬로 처리할 프레임들에 비트를 할당하고, 부호화 파라미터를 결정하는 단계; 상기 결정된 부호화 파라미터로 병렬로 부호화를 수행하는 단계; 및 실제 발생 비트량을 업데이트하는 단계;를 포함할 수 있다. 본 발명의 일 실시예에 따르면, 병렬로 처리할 프레임들의 비트 할당 혹은 부호화 파라미터를 미리 결정함으로써 병렬 부호화기에 쉽게 적용될 수 있다. The present invention relates to a method and an apparatus for rate control of a video parallel coder, and a method for controlling a rate of scalability of a parallel encoder according to an embodiment of the present invention includes allocating bits to frames to be processed in parallel , Determining a coding parameter; Performing encoding in parallel with the determined encoding parameters; And updating the actual generated bit amount. According to an embodiment of the present invention, the bit allocation or coding parameters of the frames to be processed in parallel can be determined in advance, which can be easily applied to the parallel encoder.
Description
본 발명은 비디오 병렬 부호화기의 율제어(rate control)를 위한 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for rate control of a video parallel coder.
최근 고화질(HD: High Definition) 해상도를 지원하는 방송 시스템이 국내뿐만 아니라 세계적으로 확대되면서, 많은 사용자가 고해상도 및 고화질의 영상에 익숙해지고 있다. 그리고, 이에 따라 많은 기관들이 차세대 영상기기에 대한 개발에 박차를 가하고 있다. 또한, 고화질 텔레비전(HDTV: High Definition television)과 더불어 HDTV의 4배 이상의 해상도를 지원하는 초고화질(UHD: Ultra High Definition)에 대한 관심이 증대되면서, 더욱 높은 해상도 및 고화질의 영상에 대한 압축 기술이 요구되고 있다. 그러한 시장의 요구에 의해 JCT-VC(Joint Collaborative Team on Video Coding)은 기존 AVC/H.264 코덱보다 약 50% 압축성능이 향상된 고효율 비디오 코딩(HEVC: High Efficiency Video Coding)으로 명명한 차세대 코덱 표준화 작업을 2013년에 완료하였다. 이에 고화질 동영상 서비스를 원하는 사업자들은 기존 사용하던 AVC/H.264 코덱을 HEVC/H.265로 교체하고자 하는 요구가 급증하고 있다. 그러나 고화질 동영상 서비스에 HEVC 부호화 기술을 적용하기 위해서는 압축률 향상 이외에 다른 요구사항이 많다. 일례로 방송 서비스에 적용하기 위해서는 실시간 부호화가 가능하여야 하고, 주문형 비디오(VOD: Video on Demand) 서비스에 적용하기 위해서는 고속 부호화가 가능하여야 한다. Recently, as broadcasting systems supporting high definition (HD) resolution have been expanded not only in Korea but also in the world, many users are getting used to high definition and high definition video. Therefore, many organizations are spurring the development of next generation video equipment. In addition, with the growing interest in ultra high definition (UHD) that supports more than four times the resolution of HDTV in addition to high definition television (HDTV), compression technology for higher resolution and higher image quality Is required. JCT-VC (Joint Collaborative Team on Video Coding) is a next-generation codec standardized as High Efficiency Video Coding (HEVC) with about 50% compression improvement over existing AVC / H.264 codec. The work was completed in 2013. Therefore, operators who want high-definition video service are increasingly demanding to replace the existing AVC / H.264 codec with HEVC / H.265. However, in order to apply HEVC encoding technology to high-definition video service, there are many other requirements besides improvement in compression rate. For example, in order to apply to a broadcasting service, real-time encoding must be possible, and fast encoding is required to be applied to a video on demand (VOD) service.
HEVC의 압축성능은 뛰어나지만 부호화기의 복잡도는 H.264에 비해 높은 것으로 알려져 있다. 그리하여 HEVC 부호화 기술을 실제 동영상 서비스에 적용하기 위해서는 요구하는 속도 성능을 만족하기 위해 병렬 부호화 기술이 필수로 적용되어야 한다. 또한 서비스에 따라 요구하는 데이터 전송량이 정해져 있으므로 병렬 부호화기로 설계했을 때 적용할 수 있는 율제어(rate control) 기술 또한 중요한 기술이다. Although the HEVC has excellent compression performance, it is known that the complexity of the encoder is higher than that of H.264. Thus, in order to apply the HEVC encoding technology to actual video service, a parallel encoding technique must be applied to satisfy the required speed performance. In addition, since the amount of data to be requested is determined according to the service, a rate control technique that can be applied when designing with a parallel encoder is also an important technology.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 병렬 부호화를 위한 율제어(rate control) 방법 및 장치를 제공하는 것을 목적으로 한다. SUMMARY OF THE INVENTION It is an object of the present invention to provide a rate control method and apparatus for parallel coding.
또한, 본 발명은 프레임 단위로 병렬처리를 할 때 동시에 부호화할 프레임들의 비트량을 할당하거나, 혹은 비트율 제어를 위해 발생 비트량 관련 부호화 파라미터를 결정하는 방법 및 그 장치를 제공하는 것을 목적으로 한다. It is another object of the present invention to provide a method and apparatus for allocating a bit amount of frames to be encoded at the same time or determining a coding parameter related to a bit rate to be generated for a bit rate control when parallel processing is performed on a frame-by-frame basis.
또한, 본 발명은 병렬로 처리할 프레임들의 비트 할당 혹은 부호화 파라미터를 미리 결정함으로써 병렬 부호화기에 쉽게 적용될 수 있도록 하는 것을 목적으로 한다. It is another object of the present invention to easily apply the present invention to a parallel encoder by previously determining bit allocation or encoding parameters of frames to be processed in parallel.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, unless further departing from the spirit and scope of the invention as defined by the appended claims. It will be possible.
상기 목적을 달성하기 위해 본 발명의 일 실시 예에 따른 병렬 부호화기를 위안 율 제어 방법은, 병렬로 처리할 프레임들에 비트를 할당하고, 부호화 파라미터를 결정하는 단계; 상기 결정된 부호화 파라미터로 병렬로 부호화를 수행하는 단계; 및 실제 발생 비트량을 업데이트하는 단계;를 포함할 수 있다.According to an aspect of the present invention, there is provided a method for controlling a coarse rate of a parallel encoder, the method comprising: allocating bits to frames to be processed in parallel and determining coding parameters; Performing encoding in parallel with the determined encoding parameters; And updating the actual generated bit amount.
본 발명의 일 실시 예에 따르면, 병렬 부호화를 위한 율제어(rate control) 방법 및 장치를 제공할 수 있다. According to an embodiment of the present invention, a rate control method and apparatus for parallel coding can be provided.
또한, 본 발명은 프레임 단위로 병렬처리를 할 때 동시에 부호화할 프레임들의 비트량을 할당하거나, 혹은 비트율 제어를 위해 발생 비트량 관련 부호화 파라미터를 결정하는 방법 및 그 장치를 제공할 수 있다. In addition, the present invention can provide a method and apparatus for allocating a bit amount of frames to be encoded at the same time when performing parallel processing on a frame-by-frame basis, or determining a coding parameter related to a generated bit amount for controlling a bit rate.
또한, 이전 프레임의 부호화 결과를 이용하여 율제어를 위한 비트 할당을 결정하는 방식에 비하여, 본 발명이 제안하는 방법 및 장치는 병렬로 처리할 프레임들의 비트 할당 혹은 부호화 파라미터를 미리 결정함으로써 병렬 부호화기에 쉽게 적용될 수 있다는 장점이 있다.In contrast to the method of determining the bit allocation for rate control using the encoding result of the previous frame, the method and apparatus proposed by the present invention are capable of determining the bit allocation or encoding parameters of the frames to be processed in parallel, It has an advantage that it can be easily applied.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtained by the present invention are not limited to the above-mentioned effects, and other effects not mentioned can be clearly understood by those skilled in the art from the following description will be.
도 1은 본 발명의 일 실시 예에 따른 부호화 단위의 일 예에 대하여 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 GOP 내의 계층적 구조의 일 예를 도시한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 병렬 부호화기 율 제어 방법의 흐름도의 일 예를 도시한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 병렬 부호화기 율 제어 방법의 흐름도의 다른 일 예를 도시한 도면이다. 1 is a diagram illustrating an example of a coding unit according to an embodiment of the present invention.
2 is a diagram illustrating an example of a hierarchical structure in a GOP according to an embodiment of the present invention.
FIG. 3 is a flowchart illustrating a method of controlling a parallel encoder rate according to an embodiment of the present invention. Referring to FIG.
FIG. 4 is a flowchart illustrating a method of controlling a parallel encoder rate according to an embodiment of the present invention. Referring to FIG.
이하, 본 명세서의 실시 예의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
실시 예를 설명함에 있어서 본 명세서의 실시 예가 속하는 기술 분야에 익히 알려져 있고 본 명세서의 실시 예와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 명세서의 실시 예의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.In describing the embodiments, descriptions of techniques which are well known in the art to which the embodiments of the present invention belong, and which are not directly related to the embodiments of the present specification are not described. This is for the sake of clarity of the gist of the embodiment of the present invention without omitting the unnecessary explanation.
하기에서 본 명세서의 실시 예를 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 명세서의 실시 예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 이하 첨부된 도면을 참조하여 본 명세서의 실시 예의 실시 예를 설명하기로 한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following description of the embodiments of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present disclosure rather unclear. DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. The following terms are defined in consideration of the functions of the present invention, and these may be changed according to the intention of the user, the operator, or the like. Therefore, the definition should be based on the contents throughout this specification.
도 1은 본 발명의 일 실시 예에 따른 부호화 단위의 일 예에 대하여 도시한 도면이다. 1 is a diagram illustrating an example of a coding unit according to an embodiment of the present invention.
본 발명의 일 실시 예에 따른 부호화기를 병렬로 설계했을 때 적용할 수 있는 율 제어(rate control) 방법 및 그 장치에서, 동영상을 부호화 할 때의 일 예로 도 1에 도시된 바와 같은 부호화하는 단위가 있을 수 있다. In a rate control method and apparatus that can be applied when an encoder according to an embodiment of the present invention is designed in parallel, an encoding unit as shown in FIG. Can be.
도 1을 참고하면, 동영상 전체를 시퀀스(sequence)(110)라 부를 수 있으며, I-frame(140)과 I-frame(145) 사이를 intra period(120)라 부르고, 그 intra period(120) 안에는 여러 개의 GOP(group of pictures)(130)가 있다. 또한, 하나의 GOP 안에는 여러 개의 프레임(frame)이 있다. Referring to FIG. 1, the entire moving image may be referred to as a
도 2는 본 발명의 일 실시 예에 따른 GOP 내의 계층적 구조의 일 예를 도시한 도면이다. 2 is a diagram illustrating an example of a hierarchical structure in a GOP according to an embodiment of the present invention.
하나의 GOP 안에 있는 프레임들을 부호화 할 때, 도 2에 도시된 바와 같이 계층적으로 부호화 할 수 있다. When encoding frames in one GOP, they can be hierarchically encoded as shown in FIG.
도 2를 참고하면, GOP 내의 계층을 GOP 레벨(level)로 칭할 수 있으며, 예를 들면 level 0부터 level 3까지 4 단계를 가질 수 있다. 이때, 병렬 부호화기의 실시 예로, 도 2와 같이 참조 관계가 없는 같은 계층의 프레임들은 병렬로 부호화하도록 설계할 수 있다. 예를 들면, 도 2에서 GOP level 2의 2 개의 프레임들(B2)과 GOP level 3의 4 개의 프레임들(b3)은 각각 병렬로 부호화가 가능하다. Referring to FIG. 2, a layer in a GOP may be referred to as a GOP level. For example, the layer may have four levels from
이때, 본 발명의 일 실시 예에 따른 병렬 부호화기는 도 2에 도시된 바와 같이 프레임 단위의 병렬화가 구현된 경우에 비트율을 제어할 수 있다. 즉, 본 발명의 일 실시 예에 따른 병렬 부호화기를 이용한 입력 동영상의 부호화를 수행하는 방법 및 장치는, 병렬로 처리할 프레임들의 비트 할당 또는 부호화 파라미터로 양자화 파라미터(QP: quantization parameter)와 람다(λ, lambda)를 결정할 수 있다. 다만, 비트율 제어에 필요한 초기 양자화 파라미터 값의 결정, 비트율 제어 기본 모델, 및 다른 부호화 단위에 해당하는 비트량 할당 방법 등은 본 발명의 요지를 흐리게 할 수 있으므로 그 구체적인 설명은 생략하기로 한다. At this time, as shown in FIG. 2, the parallel encoder according to the embodiment of the present invention can control the bit rate when frame-by-frame parallelization is implemented. That is, a method and apparatus for encoding an input moving image using a parallel encoder according to an embodiment of the present invention includes a quantization parameter (QP) and a lambda (? , lambda) can be determined. However, determination of an initial quantization parameter value necessary for bit rate control, a bit rate control basic model, and a bit amount allocation method corresponding to another encoding unit may obscure the gist of the present invention, and therefore, a detailed description thereof will be omitted.
비트율을 제어하는 방법에서는 일반적으로 부호화 단위 별로 비트가 할당될 수 있다. 즉, 본 발명의 일 실시 예에 따르면 intra period에 비트가 할당되고, GOP 단위에 비트가 할당되며 그 이후 프레임에 비트가 할당될 수 있다. In the method of controlling the bit rate, bits can be generally assigned to each encoding unit. That is, according to an embodiment of the present invention, a bit may be allocated in intra period, a bit may be allocated in units of GOP, and a bit may be allocated to a frame thereafter.
먼저, intra period를 위한 비트량 할당에 대해서 살펴보도록 한다. First, the bit allocation for the intra period will be described.
목표 비트율이 주어지면, intra period 별로 목표 비트율이 정해질 수 있다. 이때, 프레임들이 병렬로 처리되기 때문에, intra period 단위의 목표 비트율은 일정하다고 가정하도록 한다. 이 경우의 intra period 단위의 비트량은 다음 [수학식 1]과 같이 할당될 수 있다. Given a target bit rate, the target bit rate can be determined for each intra period. At this time, since the frames are processed in parallel, it is assumed that the target bit rate in the intra period unit is constant. The bit amount in the intra period unit in this case can be allocated as shown in the following equation (1).
이때, 상기 TBip는 현재 intra period에 할당되는 비트량을 의미하며, BRt는 목표 비트율을 의미하며, FrameNumberip는 한 intra period에 속한 프레임의 수를 의미하고, frame rate per second는 프레임 율을 의미한다. In this case, TB ip denotes a bit amount allocated to the current intra period, BR t denotes a target bit rate, FrameNumber ip denotes the number of frames belonging to one intra period, and frame rate per second denotes a frame rate it means.
다음으로, GOP를 위한 비트량 할당에 대해서 살펴보도록 한다. 이때, intra period의 비트량이 할당되면, 그 안의 GOP들은 병렬로 처리되지 않는다고 가정하도록 한다. 이 경우에는 매 GOP 마다 비트 할당은 다음 [수학식 2]와 같이 새로 할당될 수 있다. Next, the bit allocation for the GOP will be described. At this time, if the intra-period bit amount is allocated, it is assumed that the GOPs in the intra period are not processed in parallel. In this case, the bit allocation for each GOP can be newly allocated as shown in the following equation (2).
이때, TBgop _ current는 현재 GOP에 할당되는 비트량을 의미하며, LB_ip는 현재 intra period에 할당된 비트량 중 남은 비트량을 의미하고, LGOPNumber_ip는 현재 intra period에 남은 GOP의 개수를 의미한다. In this case, TB gop _ current means the amount of bits allocated to the current GOP and, LB_ip; means the amount of bits remaining in the bit amount allocated to the current intra period, and LGOPNumber_ip is the number of the remaining GOP to the current intra period.
그리고, 프레임 단위 병렬화를 위한 비트량 할당에 대해서 살펴보면, 해당 GOP의 비트가 할당되면 각 프레임 별로 비트가 할당될 수 있다. 도 2에 도시된 GOP 내의 계층적 구조를 예를 들어 설명하면, GOP level 0와 GOP level 1에 해당하는 프레임들의 비트량 할당은 프레임 당 평균 비트량이 할당된다고 가정하도록 한다. 실시 예에 따라서, 다른 알고리즘에 의해서 GOP level 0와 GOP level 1에 비트량이 할당될 수도 있지만, 이하 실시 예에서는 GOP level 0와 GOP level 1에 해당하는 프레임들의 자세한 비트 할당 방법은 논외로 한다. The bit allocation for the frame-by-frame parallelization will be described. When bits of the corresponding GOP are allocated, bits can be allocated to each frame. For example, a hierarchical structure in the GOP shown in FIG. 2 will be described. Assuming that an average bit amount per frame is allocated, the bit amount allocation of
이 경우에 GOP level 2에 해당하는 프레임들이 병렬로 처리되어야 하기 때문에, 부호화가 수행되기 이전에 GOP level 2의 두 개의 프레임에 대한 비트가 할당되어야 한다. 이때, 병렬로 처리되는 프레임들의 율 제어(rate control)를 위한 방법으로는 크게 다음 두 가지 방법이 있을 수 있다. In this case, since the frames corresponding to
A. 해당 GOP level의 프레임들의 각 프레임에 비트를 할당하는 방법 A. A method of allocating bits to each frame of frames of the corresponding GOP level
B. 해당 GOP level 중 어느 하나의 프레임에 대해 비트 할당 및 부호화 파라미터를 결정한 후, 그 결과를 기준으로 나머지 프레임들의 부호화 파라미터를 결정하는 방법 B. Determining the bit allocation and coding parameters for any one frame of the GOP level and determining the encoding parameters of the remaining frames based on the result
먼저, A. 해당 GOP level의 프레임들의 각 프레임에 비트를 할당하는 방법에 대해서 살펴보도록 한다. A. First, a method of allocating bits to each frame of the corresponding GOP level frame will be described.
A-1) 첫 GOP의 해당 프레임의 비트량을 참조하여 가중치를 둘 수 있다. A-1) Weights can be placed referring to the bit amount of the corresponding frame of the first GOP.
도 2를 참고로 설명을 하면, 프레임 단위로 병렬 처리할 때 첫 GOP는 병렬로 처리하지 않고 부호화 순서대로 부호화를 한 후, GOP level 2의 두 개의 B2 프레임들로부터 발생에 따른 비트량 가중치를 계산할 수 있다. Referring to FIG. 2, when parallel processing is performed on a frame-by-frame basis, the first GOP is coded in the encoding order without parallel processing, and then the bit amount weight according to the generation is calculated from the two B2 frames of
예를 들면, POC(picture order count) 4의 발생 비트량이 b1이라고 하고, POC 6의 발생 비트량을 b2라고 할 때에, POC 4의 비트량 가중치는 다음 [수학식 3] 및 [수학식 4]에 따라 계산할 수 있다. For example, when the generated bit amount of POC (picture order count) 4 is b1 and the generated bit amount of POC6 is b2, the bit amount weight of POC4 is expressed by the following equations (3) and (4) . ≪ / RTI >
그리고, 이렇게 구한 가중치를 기준으로 다음 GOP 부터는 GOP level 2의 프레임들을 병렬로 부호화할 수 있다. 이때, 비트 할당은 다음과 같이 할 수 있다. The
우선 GOP level 2 전체에 대한 비트 할당은 다음 [수학식 5]와 같이 할 수 있다. First, the bit allocation for the
이때, TBGOPLevle2는 현재 GOP에서 level 2에 할당되는 비트량을 의미하며, LB_gop는 현재 GOP에 할당된 비트량 중 남은 비트량을 의미하며, LFrameNumber_gop는 현재 GOP에 남은 프레임의 개수를 의미하며, FrameNumberGOPLevel2는 현재 GOP에서 level 2의 프레임 개수를 의미한다. In this case, TB GOPLevle2 denotes a bit amount allocated to
그리고 난 이후에 GOP level의 각 프레임에 해당하는 비트 할당은 다음 [수학식 6]에 의해 구할 수 있다. Then, the bit allocation corresponding to each frame of the GOP level can be obtained by the following equation (6).
이후 상기 [수학식 6]에 의해 구한 비트 할당에 따라서 두 개의 프레임을 병렬로 부호화할 수 있다. Then, two frames can be encoded in parallel according to the bit allocation determined by Equation (6).
이와 같은 방식은 동일하게 GOP level 3의 네 개의 프레임에 대해서도 구할 수 있다. 즉, 첫 GOP의 GOP level 3의 4개의 프레임들의 비트량 발생에 따라 가중치를 둔 후, 그 이후의 GOP level 3의 프레임들은 그 가중치에 따라 비트를 할당한 후 병렬로 부호화 할 수 있다. Such a scheme can also be obtained for four frames of
A-2) 첫 GOP의 해당 프레임들의 복잡도 및 발생 비트량을 조합하여 가중치를 정하고, 이후 GOP에서는 그 가중치에 따라 비트량을 할당할 수 있다. A-2) The complexity of the corresponding frames of the first GOP and the generated bit amount are combined to determine a weight. In the GOP, a bit amount can be allocated according to the weight.
A-3) 해당 프레임의 복잡도에 의한 가중치를 두어 비트 할당을 할 수 있다.A-3) It is possible to allocate bits by weighting by the complexity of the frame.
도 2를 참고하여 설명하면, 예를 들면 GOP level 3의 4개의 프레임들을 병렬로 처리한다고 할 때, 4개의 프레임들의 복잡도를 구한 후, 복잡도의 비중에 따라 가중치를 두어 비트율을 할당할 수 있다. GOP level 3 전체에 해당하는 비트 할당은 현재 GOP에 할당된 비트 중 남은 비트량으로 다음 [수학식 7]과 같을 수 있다. Referring to FIG. 2, for example, when four frames of
그리고 복잡도에 의한 비트 할당 가중치는 다음 [수학식 8]과 같을 수 있다. And the bit allocation weight due to the complexity may be expressed by the following equation (8).
그 후, 가중치를 고려한 각 프레임의 비트 할당은 다음 [수학식 9]에 따라 계산할 수 있다. Then, the bit allocation of each frame considering the weight can be calculated according to the following equation (9).
그리고, 상기 [수학식 9]에 따라 가중치를 고려한 각 프레임의 비트 할당을 계산한 후, GOP level 3의 프레임들을 병렬로 처리할 수 있다. Then, the
A-4) 고정 비율의 비트량을 할당할 수 있다. A-4) A bit rate of a fixed ratio can be assigned.
예를 들면, 실시간이 요구되는 동영상 서비스를 목표로 할 때에는 병렬로 처리할 프레임들에게 고정 가중치를 할당함으로써 복잡도를 구할 수 있다. 또는, 실시 예에 따라 첫 GOP에서 발생 비트율을 참조하는 등의 과정을 생략할 수도 있다. 그리고, 이 실시 예는 동일한 비트량을 할당하는 것을 포함할 수 있다. For example, when aiming at a video service requiring real time, the complexity can be obtained by assigning fixed weights to frames to be processed in parallel. Alternatively, the process of referring to the generated bit rate in the first GOP may be omitted according to the embodiment. And, this embodiment may include assigning the same amount of bits.
이상에서는 A. 해당 GOP level의 프레임들의 각 프레임에 비트를 할당하는 방법에 대해서 살펴보았다. 이때, 각 프레임에 비트를 할당하는 경우에 상술한 4 가지 실시 예(A-1, A-2, A-3, A-4)들 중 어느 하나의 방법을 이용하여 가중치를 구할 수 있다. In the above, a method of allocating bits to each frame of the corresponding GOP level frames has been described. At this time, when bits are allocated to each frame, weights can be obtained using any one of the four embodiments (A-1, A-2, A-3, A-4) described above.
다음으로 B. 해당 GOP level 중 어느 하나의 프레임에 대해 비트 할당 및 부호화 파라미터를 결정한 후, 그 결과를 기준으로 나머지 프레임들의 부호화 파라미터를 결정하는 방법에 대해서 살펴보도록 한다. Next, a method for determining the bit allocation and coding parameters for one frame of the corresponding GOP level, and determining encoding parameters of the remaining frames based on the result will be described.
이 방법은 해당 GOP level 중 하나의 프레임에 대해 정해진 방법에 따라 비트를 할당하고 미리 정해진 모델에 따라 부호화 파라미터 QP와 lambda를 구할 수 있다. 그리고 나머지 프레임에 대해서는 동일하게 혹은 적절한 가중치에 의해 QP와 lambda를 결정할 수 있다. This method allocates bits according to a predetermined method for one frame of the corresponding GOP level and obtains encoding parameters QP and lambda according to a predetermined model. QP and lambda can be determined by the same or appropriate weighting for the remaining frames.
도 3은 본 발명의 일 실시 예에 따른 병렬 부호화기 율 제어 방법의 흐름도의 일 예를 도시한 도면이다. FIG. 3 is a flowchart illustrating a method of controlling a parallel encoder rate according to an embodiment of the present invention. Referring to FIG.
도 3을 참고하면, 310 단계에서 각 GOP level 별로 할당 비트량을 구할 수 있다. Referring to FIG. 3, in
이후, 320 단계에서 해당 GOP level의 프레임들을 병렬로 처리함에 있어서, 비트량 가중치를 계산할 수 있다. 이때, 가중치의 계산은 상술한 A-1) 내지 A-4)의 방법 중 어느 하나에 따라서 이루어질 수 있다. 예를 들면, 첫 GOP에서 해당 프레임들에서 발생한 비트량을 기준으로 가중치를 구할 수 있다. 또는 첫 GOP에서 해당 프레임들의 복잡도 및 발생 비트량을 조합하여 가중치를 구할 수 있다. 또는 해당 프레임들의 화면 복잡도를 기준으로 가중치를 구할 수 있다. 또는 미리 정한 구정 가중치를 두고 있을 수도 있다. 가중치를 계산하는 실시 예에 대하여는 상술하였으므로 그 구체적인 설명은 생략하기로 한다. Thereafter, in
320 단계에서 가중치를 계산한 후에, 330 단계에서는 결정한 가중치에 따라서 병렬로 처리할 프레임들에 대한 비트를 할당한 후, 부호화 파라미터인 QP와 lambda를 계산할 수 있다. After calculating the weights in
그 후, 340 단계에서는 부호화 파라미터로 병렬로 부호화를 수행하고, 350 단계에서 부호화를 수행한 후 실제 발생 비트량을 업데이트할 수 있다. Thereafter, in
도 4는 본 발명의 일 실시 예에 따른 병렬 부호화기 율 제어 방법의 흐름도의 다른 일 예를 도시한 도면이다. FIG. 4 is a flowchart illustrating a method of controlling a parallel encoder rate according to an embodiment of the present invention. Referring to FIG.
도 4를 참고하면, 410 단계에서 해당 GOP level 중 하나의 프레임에 대해 할당 비트량을 구할 수 있다. 그리고 420 단계에서 할당한 비트를 기준으로 한 프레임에 대하여 부호화 파라미터인 QP와 lambda를 계산할 수 있다. Referring to FIG. 4, in
이후, 430 단계에서 상기 420 단계에서 계산한 QP와 lambda를 동일 level의 프레임들에게 할당할 수 있다. 이때, 나머지 프레임들에 대해서는 상기 420 단계에서 계산한 QP와 lambda와 동일하게 QP와 lambda 값을 할당할 수 있다. 또는 실시 예에 따라서는 미리 결정된 가중치에 의해 나머지 프레임들의 QP와 lambda를 결정할 수 있다. Thereafter, in
그 후, 440 단계에서는 부호화 파라미터로 병렬로 부호화를 수행하고, 450 단계에서 부호화를 수행한 후 실제 발생 비트량을 업데이트할 수 있다. Thereafter, in
한편, 도시되지 않았지만, 본 발명의 일 실시 예에 따른 비디오 병렬 부호화기를 위한 율 제어 장치는 제어부를 포함할 수 있다. Meanwhile, although not shown, a rate control apparatus for a video parallel coder according to an embodiment of the present invention may include a control unit.
상기 제어부는 상술한 실시 예들 중 어느 하나의 동작을 수행하도록 상기 장치를 제어한다. 예를 들면, 상기 제어부는 병렬로 처리할 프레임들에 비트를 할당하고, 부호화 파라미터를 결정하고, 상기 결정된 부호화 파라미터로 병렬로 부호화를 수행하고, 실제 발생 비트량을 업데이트하도록 제어할 수 있다. The control unit controls the apparatus to perform the operation of any one of the above-described embodiments. For example, the control unit may allocate bits to frames to be processed in parallel, determine encoding parameters, perform encoding in parallel with the determined encoding parameters, and update the actually generated bit amount.
본 명세서와 도면에 개시된 실시 예는 기술 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.The embodiments disclosed in the present specification and drawings are merely illustrative of specific examples for the purpose of easy explanation and understanding, and are not intended to limit the scope of the present invention. It is to be understood by those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, And is not intended to limit the scope of the invention. It is to be understood by those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.
110: 시퀀스 120: intra period
130: GOP 140, 145: I-frame110: sequence 120: intra period
130:
Claims (9)
적어도 하나의 GOP(Group Of Picture)로 구성되는 임의의 동영상 시퀀스를 획득하는 단계;
기 설정된 규칙에 따라, 각각의 GOP를 구성하는 프레임들에 비트량을 할당하는 단계; 및
상기 할당된 비트량에 따라 각각의 계층에 속한 적어도 하나의 프레임을 병렬로 부호화하는 단계를 포함하고,
상기 비트량을 할당하는 단계는,
상기 각각의 계층에 대하여 계층별 전체 비트량을 할당하는 단계;
상기 각각의 계층에 속한 각각의 프레임에 대하여 비트 할당 가중치를 판단하는 단계; 및
상기 각각의 계층에 할당된 계층별 전체 비트량 및 상기 각각의 프레임에 대하여 판단된 비트 할당 가중치를 기초로 상기 비트량을 할당하는 단계를 포함하는 것을 특징으로 하는 율 제어 방법. A rate control method for a parallel encoder,
Comprising: obtaining an arbitrary moving picture sequence composed of at least one group of pictures (GOP);
Allocating a bit amount to frames constituting each GOP according to a predetermined rule; And
And encoding at least one frame belonging to each layer in parallel according to the allocated bit amount,
Wherein the step of allocating the bit amount comprises:
Allocating a total amount of bits for each layer to each layer;
Determining a bit allocation weight for each frame belonging to each layer; And
And allocating the bit amount based on the total bit amount for each layer allocated to each layer and the bit allocation weight determined for each frame.
첫 번째 GOP 내에서 상기 각각의 계층에 속한 적어도 하나의 프레임의 발생 비트량 또는 복잡도를 기초로 상기 첫 번째 GOP의 각각의 프레임에 대한 상기 비트 할당 가중치를 결정하는 것을 특징으로 하는 율 제어 방법.
2. The method of claim 1, wherein determining the bit allocation weight comprises:
Wherein the bit allocation weights for each frame of the first GOP are determined based on the amount of bits or the complexity of at least one frame belonging to each layer in the first GOP.
현재 GOP가 첫 번째 GOP가 아니면, 상기 현재 GOP의 각각의 프레임에 대응하는 상기 첫 번째 GOP의 각각의 프레임에 대한 상기 판단된 비트 할당 가중치를 기초로, 상기 현재 GOP의 각각의 프레임에 대한 상기 비트 할당 가중치를 결정하는 단계를 포함하는 것을 특징으로 하는 율 제어 방법.
2. The method of claim 1, wherein determining the bit allocation weighting comprises:
Determining a bit allocation weight for each frame of the current GOP based on the determined bit allocation weights for each frame of the first GOP corresponding to each frame of the current GOP if the current GOP is not the first GOP; And determining an assignment weight.
동일한 계층에 속한 적어도 하나의 프레임의 발생 비트량 또는 복잡도를 기초로 상기 각각의 계층에 속한 각각의 프레임에 대한 상기 비트 할당 가중치를 판단하는 단계를 포함하는 것을 특징으로 하는 율 제어 방법. 2. The method of claim 1, wherein determining the bit allocation weight comprises:
And determining the bit allocation weights for each frame belonging to each layer based on a generated bit amount or a complexity of at least one frame belonging to the same layer.
병렬로 부호화할 적어도 하나의 프레임에 기 설정된 비율로 고정된 가중치를 할당하는 단계를 포함하는 것을 특징으로 하는 율 제어 방법. 2. The method of claim 1, wherein determining the bit allocation weight comprises:
And assigning a weight fixed at a predetermined ratio to at least one frame to be encoded in parallel.
임의의 프레임에 대해서 상기 할당된 비트량을 기초로 부호화 파라미터를 결정하는 단계를 포함하고,
상기 부호화하는 단계는,
상기 결정된 부호화 파라미터를 이용하여 상기 임의의 프레임을 부호화하는 단계를 포함하는 것을 특징으로 하는 율 제어 방법.2. The method of claim 1, wherein allocating the bit amount comprises:
And determining an encoding parameter based on the allocated bit amount for an arbitrary frame,
Wherein the encoding comprises:
And encoding the arbitrary frame using the determined encoding parameter.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150006124A KR101739767B1 (en) | 2015-01-13 | 2015-01-13 | Method and appartus for rate control for parallel video encoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150006124A KR101739767B1 (en) | 2015-01-13 | 2015-01-13 | Method and appartus for rate control for parallel video encoder |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160087451A KR20160087451A (en) | 2016-07-22 |
KR101739767B1 true KR101739767B1 (en) | 2017-06-09 |
Family
ID=56681133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150006124A KR101739767B1 (en) | 2015-01-13 | 2015-01-13 | Method and appartus for rate control for parallel video encoder |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101739767B1 (en) |
-
2015
- 2015-01-13 KR KR1020150006124A patent/KR101739767B1/en active IP Right Grant
Non-Patent Citations (2)
Title |
---|
B. Li, et al. λ Domain Rate Control Algorithm for High Efficiency Video Coding. IEEE Trans. on Image Processing. Sep. 2014, Vol.23, No.9, pp.3841-3854* |
S. Yang, et al. A Parallelism Encoding Framework for the Temporal Scalability of H.264/AVC Scalable Extension. Ninth IEEE Int'l Symp. on Multimedia Workshops. Dec. 2007, pp.397-400* |
Also Published As
Publication number | Publication date |
---|---|
KR20160087451A (en) | 2016-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6462119B2 (en) | Computing device | |
JP6900521B2 (en) | Adaptive quantization parameter coding and decoding methods and equipment based on quad tree structure | |
JP7417612B2 (en) | Video encoders, video decoders, and corresponding methods | |
CA2943647C (en) | Method and apparatus for encoding rate control in advanced coding schemes | |
WO2010036772A2 (en) | Complexity allocation for video and image coding applications | |
JPWO2007077942A1 (en) | Video encoding method and decoding method, apparatus thereof, program thereof, and storage medium storing program | |
KR20160134704A (en) | Level definitions for multi-layer video codecs | |
JP2012170042A5 (en) | ||
CN101390396A (en) | Method and apparatus for encoding and decoding multi-view video to provide uniform picture quality | |
JP2021521754A (en) | Methods, devices and computer programs for deriving the most probable mode | |
CN101888566A (en) | Estimation method of distortion performance of stereo video encoding rate | |
CN104255027A (en) | Inter layer texture prediction for video coding | |
KR101857797B1 (en) | Method and apparatus for encoding or decoding depth image | |
JP2023505270A (en) | Method and apparatus for video coding | |
JP5746370B2 (en) | Method and apparatus for forming predictive values | |
KR20120096863A (en) | Rate control for hierarchical coding structure in high efficiency video coding(hevc) | |
US8989276B2 (en) | Video encoder/decoder, method and computer program product | |
JP2022513981A (en) | Video coding method and equipment | |
WO2022154838A1 (en) | Method and apparatus for video coding | |
KR101739767B1 (en) | Method and appartus for rate control for parallel video encoder | |
US20150023413A1 (en) | Method and device for controlling video bit rate | |
JP2023536585A (en) | Support for bitstream random access based on viewing direction | |
CN109413435B (en) | Prediction method based on video compression | |
Micallef et al. | Fast inter-mode decision in multi-view video plus depth coding | |
WO2015054816A1 (en) | Encoder-side options for base color index map mode for video and image coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |