KR100474269B1 - Moving picture encoding method - Google Patents
Moving picture encoding method Download PDFInfo
- Publication number
- KR100474269B1 KR100474269B1 KR10-2002-0012748A KR20020012748A KR100474269B1 KR 100474269 B1 KR100474269 B1 KR 100474269B1 KR 20020012748 A KR20020012748 A KR 20020012748A KR 100474269 B1 KR100474269 B1 KR 100474269B1
- Authority
- KR
- South Korea
- Prior art keywords
- update interval
- value
- counter
- variable
- new
- Prior art date
Links
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/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- 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/17—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 an image region, e.g. an object
- H04N19/176—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 an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 주기적인 인트라 블록 업데이트를 사용하는 동영상 부호화에 있어서, 인트라 블록 업데이트 간격의 가변 시 프레임간 비트량을 균일하게 하기 위한 인트라 블록 업데이트 방법에 관한 것으로, 주기적인 인트라 블록 업데이트를 사용하고, 인트라 블록 업데이트 주기가 가변적인 동영상 부호화에 있어서, 상기 인트라 블록 업데이트 주기가 감소하는 경우에는, 각 MB의 카운터 값을 업데이트 주기가 감소한 비율만큼 감소시키고, 상기 인트라 블록 업데이트 주기가 증가된 경우에는, 각 MB의 카운터 값을 업데이트 주기가 증가된 비율만큼 증가시킨 후, 증가된 값 주변의 일정 범위 내에서 랜덤화 시킴으로서, 인트라 블록을 전체 프레임에 고르게 분산되도록 이루어짐으로써 달성할 수 있다.The present invention relates to an intra block update method for uniformizing the amount of inter-frame bits when a variable intra block update interval is varied in video encoding using periodic intra block update. In the video encoding in which the block update period is variable, when the intra block update period is decreased, the counter value of each MB is reduced by the rate at which the update period is decreased, and when the intra block update period is increased, each MB This can be achieved by increasing the value of the counter by the rate at which the update period is increased, and then randomizing it within a range around the increased value, so that the intra blocks are evenly distributed over the entire frame.
Description
본 발명은 동영상의 부호화 방법에 관한 것으로, 특히 주기적인 인트라 블록 업데이트를 사용하는 동영상 부호화에 있어서, 인트라 블록 업데이트 간격의 가변 시 프레임간 비트량을 균일하게 하기 위한 동영상의 부호화 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a video encoding method, and more particularly, to a video encoding method for uniformizing the amount of inter-frame bits when the intra block update interval is variable in video encoding using periodic intra block update.
일반적으로, 동영상 압축 표준인 H.263 부호화 방식에서는 MPEG 계열(MPEG-1, MPEG-2, MPEG-4)의 압축 방식과 달리, 주기적으로 I-픽쳐(Intra Picture)를 사용하는 것이 아니고, 첫 프레임에 대해서만 I-픽쳐로 사용하고, 나머지 프레임은 P-픽쳐(Prediction Picture)로 부호화 하는 방법을 사용한다.In general, unlike the MPEG-based (MPEG-1, MPEG-2, MPEG-4) compression method, the H.263 coding method, which is a video compression standard, does not periodically use I-picture (Intra Picture). Only I-picture is used for the frame, and the rest of the frame is encoded using a P-picture (Prediction Picture).
이때, 상기 I-픽쳐는 모든 MB(macroblock)를 인트라(INTRA) 모드로 부호화하고, P-픽쳐는 MB 단위로 인터(INTER) 모드 또는 인트라 모드로 부호화 하는 차이가 있다.In this case, there is a difference in that the I-picture encodes all macroblocks in an INTRA mode, and the P-picture encodes in an INTER mode or an intra mode in MB units.
여기서, 인터 모드란 이전 프레임으로부터의 예측을 통해 부호화 하는 일반적인 방법이고, 인트라 모드란 이전 프레임에 무관하게 그 MB를 독립적으로 부호화 하는 방법이다.Here, the inter mode is a general method of encoding through prediction from a previous frame, and the intra mode is a method of independently encoding the MB regardless of the previous frame.
만약, I-픽쳐 없이 P-픽쳐가 계속 반복되는 경우에는, 인코더와 디코더의 IDCT(Inverse Discrete Cosine Transform)의 차이 등으로 인해, 인코더와 디코더의 복원 영상의 차이가 점차 누적되는 현상이 발생할 수 있으며, 이를 막기 위해 H.263 표준에는 프레임이 진행됨에 따라 같은 위치의 MB가 부호화 계수를 가지면서 132회 이상 INTER 모드로 부호화되지 않도록 규정하고 있다.If the P-picture is repeatedly repeated without the I-picture, the difference between the reconstructed image of the encoder and the decoder may gradually accumulate due to the difference between the Inverse Discrete Cosine Transform (IDCT) of the encoder and the decoder. To prevent this, the H.263 standard stipulates that as the frame progresses, the MB at the same position is not encoded in the INTER mode more than 132 times with the coding coefficients.
즉, 132회마다 인트라 MB를 주기적으로 삽입하여 그 위치의 영상의 리프레시(또는 업데이트)를 수행함으로써 오차 누적을 막도록 하고 있다.That is, the intra MB is periodically inserted every 132 times to refresh (or update) the video at the position, thereby preventing the accumulation of errors.
그런데, 상기 인트라 블록은 보통 인터 블록에 비해 비트량이 많기 때문에, 만약 한 프레임 내에서 인트라 블록이 너무 많이 발생하여 비트량이 다른 프레임에 비해 과다하게 많아질 경우, 다른 프레임에 비해 화질의 저하가 발생할 수 있기 때문에, TMN11 권장 사항으로 특정 프레임에 인트라 블록이 집중되지 않고 여러 프레임에 골고루 분산되도록, 인트라 블록 업데이트(또는 리프레시)를 사용하도록 하고 있다. However, since the intra block usually has more bits than the inter block, if there are too many intra blocks within one frame and the amount of bits is excessively larger than other frames, the image quality may be deteriorated compared to other frames. As a result, TMN11 recommends that intra block updates (or refreshes) be used so that intra blocks are not concentrated in a particular frame and are evenly distributed across multiple frames.
또한, 인터넷망의 경우 데이터 전송 중에 패킷 손실이 발생할 수 있는데, 패킷이 손실되면 이후의 P-픽쳐 영상의 복원에 계속 영향을 미치게 되고, 다시 올바른 영상으로 복귀하기 위해서는 이전 영상에 무관하게 독립적으로 부호화 되는 인트라 블록이 필요하게 된다.In addition, in the case of the Internet network, packet loss may occur during data transmission. If a packet is lost, it continues to affect the restoration of a subsequent P-picture image. In order to return to the correct image, the packet is independently encoded regardless of the previous image. Intra block becomes necessary.
즉, 인트라 블록은 패킷 손실로 인한 오류로부터 인코더와 디코더의 동기를 맞추는 역할을 하게 된다.In other words, the intra block plays a role of synchronizing the encoder with the decoder from an error due to packet loss.
일반적으로, 패킷망에서의 패킷 손실률은 시간에 따라 가변적이기 때문에, 손실률에 따라 인트라 블록 업데이트 간격(interval)을 가변 시키면 디코더의 복원 영상 화질을 향상시킬 수 있다.In general, since the packet loss rate in the packet network is variable over time, changing the intra block update interval according to the loss rate may improve the reconstructed image quality of the decoder.
그런데, TMN11에 의한 가변적인 인트라 블록 업데이트 간격 조정 방법을 사용하게 되면, 업데이트 간격이 작아지거나 커질 때 상술한 인트라 블록의 분포가 프레임간에 골고루 분포하지 않고 특정 한 프레임에 편중됨으로써, 프레임간 비트량의 변동이 커지는 문제가 발생하게 된다.However, when the variable intra block update interval adjustment method using TMN11 is used, the above-described distribution of intra blocks is not evenly distributed between frames when the update interval is smaller or larger, so that the specific block is biased in a specific frame. The problem is that the fluctuation becomes large.
가령, 인트라 블록 업데이트 간격이 작아지는 경우에 특정 한 프레임에 인트라 블록이 한꺼번에 발생하게 되어 비트량이 갑자기 증가하고, 이후에도 계속해서 그 간격으로 인트라 블록이 집중되는 현상이 발생하게 된다.For example, when the intra block update interval becomes small, the intra blocks are generated at one time in a specific frame, and thus the bit amount suddenly increases, and thereafter, the intra blocks are continuously concentrated in the interval.
또한, 업데이트 간격이 커지는 경우에도 이전의 업데이트 간격과 같은 수만큼의 프레임에 인트라 블록이 주기적으로 편중되는 현상이 발생하게 된다.In addition, even when the update interval increases, the phenomenon in which the intra block is periodically biased in the same number of frames as the previous update interval occurs.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 창출한 것으로, 주기적인 인트라 블록 업데이트를 사용하는 동영상 부호화에 있어서, 인트라 블록 업데이트 간격의 가변 시 프레임간 비트량을 균일하게 하기 위한 동영상의 부호화 방법을 제공함에 그 목적이 있다.Accordingly, the present invention has been made to solve the above-mentioned conventional problems. In the video encoding using periodic intra block update, a video for uniformizing the amount of inter-frame bits when the intra block update interval is varied is provided. Its purpose is to provide an encoding method.
이와 같은 목적을 달성하기 위한 본 발명은, 주기적인 인트라 블록 업데이트를 사용하고, 인트라 블록 업데이트 주기가 가변적인 동영상 부호화에 있어서, 상기 인트라 블록 업데이트 주기가 감소하는 경우에는, 각 MB의 카운터 값을 업데이트 주기가 감소한 비율만큼 감소시키고, 상기 인트라 블록 업데이트 주기가 증가된 경우에는, 각 MB의 카운터 값을 업데이트 주기가 증가된 비율만큼 증가시킨 후, 증가된 값 주변의 일정 범위 내에서 랜덤화 시킴으로서, 인트라 블록을 전체 프레임에 고르게 분산시키는 것을 특징으로 한다.In order to achieve the above object, the present invention uses a periodic intra block update, and in the video encoding in which the intra block update period is variable, when the intra block update period is decreased, the counter value of each MB is updated. If the period is decreased by a decreasing rate, and the intra block update period is increased, the counter value of each MB is increased by the rate at which the update period is increased, and then randomized within a predetermined range around the increased value, thereby intra Distributing the blocks evenly over the entire frame.
본 발명은 인트라 블록 업데이트 간격(주기)이 변경될 때, 인트라 블록 분산을 위해 각 MB의 카운터 값을 업데이트 간격에 대한 나머지 연산(모듈로(modulo) 연산) 결과로 대치시키는 특징이 있다.The present invention is characterized in that when the intra block update interval (period) is changed, the counter value of each MB is replaced with the result of the remaining operation (modulo operation) for the update interval for intra block distribution.
본 발명은 인트라 블록 업데이트 간격이 작아질 때, 인트라 블록 분산을 위해 각 MB의 카운터 값을 업데이트 간격(주기)의 변경 비율과 같은 비율로 감소시키는 특징이 있다.The present invention is characterized in that when the intra block update interval is small, the counter value of each MB is reduced at the same rate as the change rate of the update interval (period) for intra block distribution.
본 발명은 인트라 블록 업데이트 간격이 커질 때, 인트라 블록 분산을 위해 각 MB의 카운터 값을 업데이트 간격의 변경 비율과 같은 비율로 증가시키는 동시에 증가된 값 주변의 일정 범위 내에서 랜덤화시키는 특징이 있다.According to the present invention, when the intra block update interval is increased, the counter value of each MB is increased at the same rate as the change rate of the update interval for intra block distribution, and at the same time, it is randomized within a predetermined range around the increased value.
TMN11의 권장 사항에 의한 인트라 블록을 여러 프레임에 골고루 분포시키는 인트라 블록 업데이트 과정은, 먼저 각 MB마다 카운터를 하나씩 두고 I-픽쳐 이후에 이 카운터를 [1, 132] 범위 내에서 랜덤화 하고, 각 MB가 부호화 계수를 갖는 인터 블록으로 부호화 될 때마다, 상기 카운터를 1씩 증가시키다가 업데이트 주기(보통 132)가 되면, 인트라 블록으로 부호화하고 카운터는 다시 0으로 초기화한다.The intra block update process, which distributes the intra blocks evenly among the frames according to the TMN11 recommendation, first puts a counter for each MB and randomizes the counter within the range of [1, 132] after the I-picture. Each time MB is encoded into an inter block with coding coefficients, the counter is incremented by 1 and when the update period is reached (usually 132), the counter is encoded into an intra block and the counter is initialized back to zero.
상기 과정에 의해 I-픽쳐 후에 인트라 블록이 모든 프레임에 고루 분포하게 되므로, 특정 프레임의 비트수가 과다해지는 현상을 방지할 수 있게 된다.By the above process, since the intra block is uniformly distributed in all frames after the I-picture, it is possible to prevent a phenomenon in which the number of bits of a specific frame is excessive.
만약, 패킷 손실이 있는 경우 평균 패킷 손실률은 RTCP(RTP control Protocol) 패킷으로부터 얻어지는 구간 패킷 손실률을 평균함으로써 얻을 수 있으며, 이 값은 시간에 따라 가변적이다. If there is packet loss, the average packet loss rate can be obtained by averaging the interval packet loss rate obtained from the RTCP (RTP control Protocol) packet, and this value is variable over time.
패킷 손실이 많을수록 인트라 블록을 자주 사용하는 것이 디코더의 복원 영상 화질을 높일 수 있으므로, 인트라 블록 업데이트 간격을 평균 패킷 손실률의 역수로 정할 수 있다.The more packet loss, the more frequently used intra blocks can improve the reconstructed video quality of the decoder, so the intra block update interval can be determined as the inverse of the average packet loss rate.
가령, 평균 패킷 손실률이 0.1(10%)이면 업데이트 간격은 이의 역수인 10으로 정할 수 있고, 상기와 같이 패킷 손실률이 가변적이므로 인트라 블록 업데이트 간격도 프레임이 진행됨에 따라 달라지게 된다.For example, if the average packet loss rate is 0.1 (10%), the update interval may be set to 10, which is an inverse thereof. Since the packet loss rate is variable as described above, the intra block update interval also changes as the frame progresses.
그런데, 가변적인 인트라 블록 업데이트를 사용하게 되면 업데이트 간격이 작아지거나 커질 경우, 인트라 블록의 분포가 프레임간에 골고루 퍼지지 않고 특정 프레임에 집중됨으로써, 프레임간 비트량의 변동이 심하게 되는 문제점이 있다.However, when the variable intra block update is used, when the update interval is small or large, the distribution of the intra blocks is concentrated in a specific frame without spreading evenly between frames, thereby causing a serious variation in the amount of bits between frames.
인트라 블록 업데이트 간격이 작아지는 경우, 한 프레임에 인트라 블록이 한꺼번에 발생하게 되어 비트량이 갑자기 증가하고, 이후에도 계속해서 그 업데이트 간격마다 인트라 블록이 집중된다. 반대로 업데이트 간격이 커지는 경우에도 이전의 업데이트 간격과 같은수의 프레임에 인트라 블록이 집중되는 문제점이 있다.When the intra block update interval becomes small, the intra blocks are generated at one time in one frame, and the bit amount suddenly increases, and the intra blocks are continuously concentrated at each update interval thereafter. On the contrary, even if the update interval is increased, there is a problem that the intra blocks are concentrated in the same number of frames as the previous update interval.
다시 말해, 업데이트 간격이 작아지는 경우 변경 전의 간격(주기)을 A라고 하면, 각 MB의 카운터는 [1, A] 사이의 랜덤한 값을 가지게 되므로, 인트라 블록은 이 범위에 균일하게 분포되어 있다고 할 수 있으며, 현재 프레임에서 카운터의 값이 A인 MB들은 인트라 블록으로 부호화하고, 그 카운터 값은 0으로 초기화한다.In other words, if the update interval is small and the interval (period) before the change is A, each MB counter has a random value between [1, A], so that the intra blocks are uniformly distributed in this range. In the current frame, MBs having a counter value of A are encoded into an intra block, and the counter value is initialized to zero.
이후에 프레임이 진행됨에 따라 인터모드로 부호화될 경우 1만큼씩 증가된다. 그러므로 한 프레임 내의 MB의 수를 N이라고 할 때, 평균적으로 각 프레임마다 N/A 만큼의 MB가 인트라 모드로 부호화 된다.Subsequently, as the frame progresses, the frame is incremented by 1 when encoded in the inter mode. Therefore, when the number of MBs in one frame is N, on average, N / A MBs are encoded in the intra mode for each frame.
그런데, 상기와 같이 블록 카운터가 [1, A] 사이에 분포되어 있다가, 네트워크의 상태에 따라 업데이트 간격이 A보다 작은 B로 바뀌었다고 가정하면, B보다 큰 카운터 값, 즉 [B, A] 범위의 카운터 값을 갖는 MB들은 이미 B회 이상 인터 모드로 부호화 되었으므로, 모두 인트라 블록으로 업데이트되어야 하기 때문에 현재 부호화 할 프레임에는 인트라 블록이 갑자기 집중되는 것이다.However, assuming that the block counters are distributed between [1, A] as described above, and the update interval is changed to B smaller than A according to the state of the network, a counter value larger than B, that is, [B, A] Since the MBs having the counter value in the range have already been encoded in the inter mode more than B times, the intra blocks are suddenly concentrated in the frame to be encoded because all of them have to be updated to the intra blocks.
예를 들어, B=A*(2/3) 라고 하면 약 N/3개의 MB가 인트라 모드로 부호화 되고, 그로 인해 현재 프레임의 비트수는 급격히 많아지게 되며, 또한 현재 프레임에서 이렇게 인트라 모드로 부호화된 MB들의 카운터가 동시에 0으로 초기화되므로, B 개의 프레임 이후에 이 MB들의 카운터가 동시에 다시 B값에 이르게 되어 계속해서 인트라 블록이 특정 프레임에 집중될 가능성이 크게 된다.For example, if B = A * (2/3), approximately N / 3 MBs are encoded in the intra mode, which causes the number of bits of the current frame to increase drastically, and in this mode, the intra frame is thus encoded. Since the counters of the MBs are initialized to zero at the same time, after the B frames, the counters of these MBs reach the value of B again at the same time, so that there is a great possibility that the intra block will continue to be concentrated in a particular frame.
반대로, 업데이트 간격이 커지는 경우, 즉 A<B인 경우에는 상기와 같이 특정 한 프레임에 몰리지는 않지만, 업데이트 간격은 B인데 각 MB의 카운터 값은 아직 B보다 작은 [1, A]의 범위에 있으므로, B개의 프레임에 골고루 분포되지 않고, 그 중 A개의 프레임에만 인트라 블록이 분포하게 되는 문제점이 있는 것이다.On the contrary, if the update interval is large, i.e., A <B, the update interval is B but the counter value of each MB is in the range of [1, A], which is still smaller than B. In other words, there is a problem that the intra blocks are distributed only in A frames among the B frames.
따라서, 본 발명에서는 업데이트 간격이 변하는 경우에도 인트라 블록이 집중되지 않도록 하기 위해, 해당 MB들의 카운터 값을 0으로 초기화하는 대신 업데이트 간격 내에서 적절한 값으로 변경하여, 인트라 블록의 분포를 균일화하는 방법에 관한 것이다.Therefore, in the present invention, in order to prevent the intra block from being concentrated even when the update interval is changed, instead of initializing the counter value of the corresponding MBs to 0, the method of uniformizing the distribution of the intra block by changing the appropriate value within the update interval. It is about.
카운터 값이 업데이트 간격(주기)보다 크거나 같은 MB에 대해서만, 카운터 값을 업데이트 간격의 나머지 연산(modulo-N 연산)을 이용하여 변경시키는 방법으로서, 각 MB는 모드 결정 과정을 수행하기 전에 도1과 같은 과정을 거쳐 처리된다.Only for MBs where the counter value is greater than or equal to the update interval (period), the counter value is changed using the remainder of the update interval (modulo-N operation), where each MB is shown in FIG. It is processed through the same process.
이렇게 하면 업데이트 간격이 감소하는 경우(A>B)에 인트라 블록이 한 프레임에 한꺼번에 나타나지 않고, A-B와 B중 작은수의 프레임에 걸쳐 분산되어 나타나게 된다.In this case, when the update interval is reduced (A> B), the intra blocks do not appear at once in one frame, but are distributed over a small number of frames, A-B and B.
이에 따라, 업데이트 간격이 감소하는 경우에는 업데이트할 MB의 순서가 바뀔 수 있고, 업데이트 간격이 증가하는 경우(A<B)에는 기존의 카운터 값을 변경시키지 않기 때문에, 인트라 블록이 전체 프레임 중 A/B 비율의 프레임에 몰리는 단점이 있지만, 업데이트 간격이 변경될 때마다 모든 MB의 카운터 값을 변경할 필요가 없이 간단한 연산으로 인트라 블록을 분산시킬 수 있다.Accordingly, when the update interval is decreased, the order of MB to be updated may be changed, and when the update interval is increased (A <B), the existing counter value is not changed, so that the intra block is A / There is a drawback to the B-rate frame, but you can distribute the intra blocks with a simple operation without having to change the counter value of every MB every time the update interval changes.
예를 들어 A=15, B=5인 경우 각 MB의 카운터는 다음 표1과 같이 변경된다.For example, when A = 15 and B = 5, the counter of each MB is changed as shown in Table 1 below.
즉, MB의 카운터가 새로운 업데이트 간격(interval)이 되었는지 확인하여(S101), 업데이트 간격이 되면 현재 카운터 값(Counter[mb])에서 1을 차감한 값을 업데이트 간격(interval)으로 나누고, 그때 발생한 나머지 값(count)을 업데이트 간격(interval)에서 뺀 값을 현재 MB의 새로운 카운터 값(Counter[mb])으로 한다(S102).That is, it is checked whether the MB counter has reached a new update interval (S101). When the update interval is reached, the value obtained by subtracting 1 from the current counter value Counter [mb] is divided by the update interval, and then occurs. The value obtained by subtracting the remaining value count from the update interval is set as the new counter value Counter [mb] of the current MB (S102).
다음, 상기 현재 MB의 새로운 카운터 값(Counter[mb])이 업데이트 간격(interal)이 되면(S103), 그 MB를 인트라 모드로 코딩하는 것이다(S104).Next, when the new counter value Counter [mb] of the current MB reaches an update interval (S103), the MB is coded in an intra mode (S104).
또 다른 방법으로 도2에 도시된 바와 같이 업데이트 간격(주기)이 커지는 경우와 작아지는 모든 경우에 대해서 적용할 수 있는 방법에 대해서 설명한다.As another method, a method that can be applied to all cases where the update interval (cycle) increases and decreases as shown in FIG. 2 will be described.
먼저, 업데이트 간격이 감소하는 경우(A>B)에는 모든 MB의 카운터를 업데이트 간격의 변화 비율만큼 스케일링(Scaling) 한다. 즉, 모든 MB의 카운터에 B/A를 곱해 새로운 카운터 값을 얻는다.First, when the update interval decreases (A> B), all MB counters are scaled by the change rate of the update interval. In other words, multiply all the MB counters by B / A to get a new counter value.
이 방법은 업데이트 간격이 바뀔 때마다 모든 MB의 카운터 값을 변화시켜 주어야 하는 단점이 있지만, 도1에 의한 방법에 비해 업데이트 간격이 감소하는 경우에 업데이트할 MB의 순서가 변경될 가능성이 없어 모든 MB에 가장 공평한 처리를 수행한다.This method has a disadvantage in that the counter value of all MBs must be changed every time the update interval is changed. However, when the update interval is decreased, the order of the MBs to be updated is unlikely to change when the update interval is reduced. Perform the most equitable treatment in
예를 들어, A=15, B=5인 경우 각 MB의 카운터는 다음 표2와 같이 변경된다.For example, when A = 15 and B = 5, the counter of each MB is changed as shown in Table 2 below.
반대로, 업데이트 간격이 증가하는 경우(A<B)에는 위와 같이 B/A로 스케일링하면, 인트라 블록이 시간적으로는 분산이 되나 프레임 수로 보면 전체 프레임 중 A/B 비율의 프레임에 편중되게 된다.On the contrary, if the update interval is increased (A <B), scaling to B / A as described above causes the intra block to be distributed in time, but in terms of the number of frames, the A / B ratio of all frames is biased.
따라서, 스케일링 방법을 사용하는 동시에 아래의 예와 같이 일정 범위 내에서 랜덤화 함으로써 전체 프레임에 걸쳐 분산시킨다.Therefore, by using a scaling method and randomizing within a predetermined range as in the following example, it is distributed over the entire frame.
예를 들어 A=5, B=15인 경우 각 MB의 카운터는 다음 표3과 같이 변경된다.For example, when A = 5 and B = 15, the counter of each MB is changed as shown in Table 3 below.
변경 전의 카운터 값이 3이라면 단순히 스케일링에 의해 9로 변경하는 대신 [7,9] 범위에서 랜덤한 값으로 정하는 것이다.If the counter value before the change is 3, instead of simply changing to 9 by scaling, the value is set to a random value in the range [7, 9].
즉, 이전의 업데이트 간격(previous_interval)을 i1 변수로 하고, 새로 변경된 업데이트 간격(new_interval)을 i2 변수로 하고, 변수 mb를 '0'으로 초기화한다(S201).That is, the previous update interval (previous_interval) is set as the i1 variable, the newly changed update interval (new_interval) is set as the i2 variable, and the variable mb is initialized to '0' (S201).
다음, 이전 업데이트 간격(i1)이 새로운 업데이트 간격(i2)보다 클 경우(S202, S203), 현재 MB의 카운터값(Counter[mb])에 새로운 업데이트 간격(i2)을 곱하여, 이전 업데이트 간격(i1)으로 나눈값을 새로운 MB의 카운터값(Counter[mb])으로 설정하고, mb를 1 증가시킨다(mb=mb+1)(S204).Next, when the previous update interval i1 is larger than the new update interval i2 (S202, S203), the counter update value Counter [mb] of the current MB is multiplied by the new update interval i2, and the previous update interval i1 ) Is set to the new MB counter value (Counter [mb]), and mb is increased by one (mb = mb + 1) (S204).
상기 과정(S204)은 모든 MB수(MBnum)(예를 들어, QCIF는 99개, CIF는 396개의 MB를 갖는다)와 mb가 같아질 때까지 반복한다(S205). The process S204 is repeated until all MBs (MBnum) (for example, QCIF has 99 and CIF has 396 MB) and mb are the same (S205).
그러나, 이전 업데이트 간격(i1)이 새로운 업데이트 간격(i2)보다 작을 경우(S202, S203), 새로운 업데이트 간격(i2)을 이전 업데이트 간격(i1)으로 나누어 발생한 몫을 q 변수로 하고, 새로운 업데이트 간격(i2)에서 이전 업데이트 간격(i1)에 q를 곱한값(i1 * q)을 차감한 값을 r 변수로 초기화한다(S206).However, when the previous update interval i1 is smaller than the new update interval i2 (S202 and S203), the share generated by dividing the new update interval i2 by the previous update interval i1 is defined as the q variable, and the new update interval In (i2), the value obtained by subtracting the value (i1 * q) multiplied by q from the previous update interval i1 is initialized to the r variable (S206).
다음, 상기 r 변수값이 0이면(S207), MB의 카운터값(Counter[mb])에 q를 곱한 값을 r2 변수로 하고, 상기 r2 변수값에서 'q-1'한 값을 차감한 값을 r1 변수로 하고, r1과 r2 사이의 랜덤 값을 구하여 새로운 MB의 카운터(Counter[mb])로 설정한다(S208).Next, when the value of the r variable is 0 (S207), a value obtained by multiplying the counter value Counter [mb] of q by q is set as the r2 variable, and the value obtained by subtracting the value 'q-1' from the r2 variable value. Is set to the r1 variable, and a random value between r1 and r2 is obtained and set to a new MB counter (Counter [mb]) (S208).
상기 과정(S208)은 모든 MB수(MBnum)(예를 들어, QCIF는 99개, CIF는 396개의 MB를 갖는다)와 mb가 같아질 때까지 반복한다(S209). The process S208 is repeated until all MBs (MBnum) (for example, QCIF has 99 and CIF has 396 MB) and mb are the same (S209).
만약, 상기 r 변수값이 0이 아니면(S207), 이전 업데이트 간격(i1)과 새로운 업데이트 간격(i2)의 최대 공약수를 구하여(GetGCD(i1, i2)) 'gcd' 변수로 하고, 이전 업데이트 간격(i1)을 상기 'gcd'로 나눈 값과 3 중에서 작은값을 구하여(Min(i1/gcd, 3) k 변수로 한다(S210).If the value of the r variable is not 0 (S207), the maximum common divisor of the previous update interval i1 and the new update interval i2 is obtained (GetGCD (i1, i2)) as the 'gcd' variable, and the previous update interval (i1) is obtained by dividing the value of 'gcd' and the smaller value of 3 (Min (i1 / gcd, 3)) as a k variable (S210).
다음, 현재 MB의 카운터값(Counter[mb])에 상기 k를 더한 값에서 1을 차감한 값(Counter[mb]+k-1)을 k로 나눈몫에 k를 곱한값을 t2 변수로 하고, 상기 t2에서 k를 차감한 값을 t1 변수로 한다.Next, multiplying the counter value of the current MB (Counter [mb]) by subtracting k from the value k (Counter [mb] + k-1) divided by k and multiplying the value of k by t2 is used. A value obtained by subtracting k from t2 is defined as a t1 variable.
다음, t2 변수에 새로운 업데이트 간격(i2)을 곱한 값에, 이전 업데이트 간격(i1)에서 1을 차감한 값(t2*i2+(i1-1))을 이전 업데이트 간격(i1)으로 나눈 값과 새로운 업데이트 간격(i2)중 작은 값을 r2 변수로 한다.Next, the t2 variable is multiplied by the new update interval (i2), the previous update interval (i1) minus 1 (t2 * i2 + (i1-1)) divided by the previous update interval (i1), and the new The smaller value of the update interval i2 is defined as the r2 variable.
다음, t1 변수에 새로운 업데이트 간격(i2)을 곱한 값에, 이전 업데이트 간격(i1)에서 1을 차감한 값(t1*i2+(i1-1))을 이전 업데이트 간격(i1)으로 나눈 값에 1을 더한 값을 r1 변수로 한다.Next, the t1 variable is multiplied by the new update interval (i2), 1 minus 1 from the previous update interval (i1) (t1 * i2 + (i1-1)) divided by the previous update interval (i1), and 1 Add the value r to the variable r1.
다음, 상기 r1과 r2 사이의 랜덤 값을 구하여 새로운 MB의 카운터(Counter[mb])로 설정한다(S211).Next, a random value between r1 and r2 is obtained and set to a new counter Counter [mb] (S211).
상기 과정(S211)은 모든 MB수(MBnum)(예를 들어, QCIF는 99개, CIF는 396개의 MB를 갖는다)와 mb가 같아질 때까지 반복한다(S212). The process S211 is repeated until all MBs (MBnum) (for example, QCIF has 99 and CIF has 396 MB) and mb are the same (S212).
이때, 상기 실시예에서 사용한 각 변수들은 사용자에 따라 임의로 변경이 가능한 것은 자명하다.At this time, it is obvious that each variable used in the embodiment can be arbitrarily changed according to the user.
이상에서 설명한 바와 같이 본 발명 인트라 블록 업데이트 방법은, 주기적인 인트라 블록 업데이트를 사용하는 동영상 부호화에 있어서, 인트라 블록 업데이트 간격의 가변 시 인트라 블록을 전체 프레임에 고르게 분포시킴으로써, 프레임간 비트량을 균일하게 유지하는 동시에 패킷망을 통한 전송 시 패킷 손실에 의한 수신단의 복원 화질을 향상시킬 수 있도록 하는 효과가 있다.As described above, the intrablock update method of the present invention uniformly distributes the interframe bits by uniformly distributing the intrablocks in the entire frame when the intrablock update interval is variable in the video encoding using the periodic intrablock update. At the same time, there is an effect of improving the restoration quality of the receiver due to packet loss during transmission through the packet network.
도 1은 본 발명에 따라 인트라 블록 업데이트 간격이 작아지는 경우의 MB의 카운터값을 설정하기 위한 제1 방법을 보인 순서도.1 is a flowchart illustrating a first method for setting a counter value of MB when an intra block update interval is reduced according to the present invention.
도 2는 본 발명에 따라 인트라 블록 업데이트 간격이 작아지거나 커질 경우의 MB의 카운터값을 설정하기 위한 제2 방법을 보인 순서도.2 is a flow chart illustrating a second method for setting a counter value of MB when the intra block update interval becomes small or large according to the present invention.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0012748A KR100474269B1 (en) | 2002-03-09 | 2002-03-09 | Moving picture encoding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0012748A KR100474269B1 (en) | 2002-03-09 | 2002-03-09 | Moving picture encoding method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030073268A KR20030073268A (en) | 2003-09-19 |
KR100474269B1 true KR100474269B1 (en) | 2005-03-09 |
Family
ID=32224135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0012748A KR100474269B1 (en) | 2002-03-09 | 2002-03-09 | Moving picture encoding method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100474269B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102116985B1 (en) | 2013-08-16 | 2020-05-29 | 삼성전자 주식회사 | Method of intra refresh for encoding video |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR950007530A (en) * | 1993-08-31 | 1995-03-21 | 배순훈 | Video encoding method to adaptively select forced intra mode |
JPH09331533A (en) * | 1996-06-10 | 1997-12-22 | Fujitsu Ltd | Animation image coder |
JPH10327413A (en) * | 1997-03-28 | 1998-12-08 | Matsushita Electric Ind Co Ltd | Image coding method and device, image decoder, image encoding decoding device, intra-coding control method and ratio image communication terminal equipment conducting intra-coding control processing |
JP2001086501A (en) * | 1997-03-28 | 2001-03-30 | Matsushita Electric Ind Co Ltd | Image coding method, intra coding control method, data recording medium, image coder, image decoder, image coding and decoding device and wireless image communication terminal |
KR20020073683A (en) * | 2001-03-15 | 2002-09-28 | 엘지전자 주식회사 | Error recovery method for video transmission system |
KR20030060354A (en) * | 2002-01-08 | 2003-07-16 | 엘지전자 주식회사 | Moving picture encoding method |
-
2002
- 2002-03-09 KR KR10-2002-0012748A patent/KR100474269B1/en not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR950007530A (en) * | 1993-08-31 | 1995-03-21 | 배순훈 | Video encoding method to adaptively select forced intra mode |
JPH09331533A (en) * | 1996-06-10 | 1997-12-22 | Fujitsu Ltd | Animation image coder |
JPH10327413A (en) * | 1997-03-28 | 1998-12-08 | Matsushita Electric Ind Co Ltd | Image coding method and device, image decoder, image encoding decoding device, intra-coding control method and ratio image communication terminal equipment conducting intra-coding control processing |
JP2001086501A (en) * | 1997-03-28 | 2001-03-30 | Matsushita Electric Ind Co Ltd | Image coding method, intra coding control method, data recording medium, image coder, image decoder, image coding and decoding device and wireless image communication terminal |
KR20020073683A (en) * | 2001-03-15 | 2002-09-28 | 엘지전자 주식회사 | Error recovery method for video transmission system |
KR20030060354A (en) * | 2002-01-08 | 2003-07-16 | 엘지전자 주식회사 | Moving picture encoding method |
Also Published As
Publication number | Publication date |
---|---|
KR20030073268A (en) | 2003-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10425661B2 (en) | Method for protecting a video frame sequence against packet loss | |
JP4644939B2 (en) | Moving picture coding apparatus and moving picture coding method | |
US6873654B1 (en) | Method and system for predictive control for live streaming video/audio media | |
JP3954656B2 (en) | Image coding apparatus and method | |
US6259736B1 (en) | Video encoder and video encoding method | |
JP5180294B2 (en) | Buffer-based rate control that utilizes frame complexity, buffer level, and intra-frame location in video encoding | |
RU2345503C1 (en) | Enhanced multimedia data encoding | |
US20100296579A1 (en) | Adaptive picture type decision for video coding | |
RU2471306C2 (en) | Device of image processing and method of image processing | |
AU2006223420A1 (en) | Context-adaptive bandwidth adjustment in video rate control | |
JP2006521771A (en) | Digital stream transcoder with hybrid rate controller | |
JP2008509617A (en) | Method for forming a frame of a video sequence | |
KR20030020419A (en) | Method and device for video transcoding | |
JP2012034352A (en) | Stereo moving image encoding apparatus and stereo moving image encoding method | |
KR100474269B1 (en) | Moving picture encoding method | |
JP3450384B2 (en) | Video encoding device | |
US20070058723A1 (en) | Adaptively adjusted slice width selection | |
Zheng et al. | Error-resilient coding of H. 264 based on periodic macroblock | |
KR100464003B1 (en) | Moving picture encoding method | |
Kim et al. | An accurate bit-rate control for real-time MPEG video encoder | |
TWI301724B (en) | Bit rate automatic gear | |
Chen et al. | Adaptive error-resilience transcoding using prioritized intra-refresh for video multicast over wireless networks | |
Thai et al. | Joint on-the-fly network coding/video quality adaptation for real-time delivery | |
Tran et al. | Low-delay MPEG-2 video coding | |
Arachchi et al. | An intelligent rate control algorithm to improve the video quality at scene transitions for off-line MPEG-1/2 encoders |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20080102 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |