KR102424258B1 - 비디오를 인코딩하기 위한 방법 및 인코더 시스템 - Google Patents
비디오를 인코딩하기 위한 방법 및 인코더 시스템 Download PDFInfo
- Publication number
- KR102424258B1 KR102424258B1 KR1020170150686A KR20170150686A KR102424258B1 KR 102424258 B1 KR102424258 B1 KR 102424258B1 KR 1020170150686 A KR1020170150686 A KR 1020170150686A KR 20170150686 A KR20170150686 A KR 20170150686A KR 102424258 B1 KR102424258 B1 KR 102424258B1
- Authority
- KR
- South Korea
- Prior art keywords
- quantization step
- value
- group
- step value
- pixels
- 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/136—Incoming video signal characteristics or properties
-
- 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
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- 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/124—Quantisation
-
- 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- 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/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/172—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 picture, frame or field
-
- 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/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/18—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 set of transform coefficients
-
- 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/182—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 pixel
-
- 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
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Color Television Systems (AREA)
Abstract
비디오를 인코딩하기 위한 방법이 개시된다. 이미지 프레임 내의 픽셀들을 나타내는 정보가 수신되고(S101), 그리고 이웃하는 픽셀들의 그룹들에 대한 상기 정보의 공간적인 통계적 척도값이 계산되어 픽셀들의 각각의 그룹에 대한 그룹 값이 형성된다(S102). 제1의 미리결정된 양자화 단계값을 포함하는 이용가능한 양자화 단계값들의 세트가 결정된다(S105). 이웃하는 픽셀들의 제 1 그룹에 대해서, 본 방법은, 각각의 이용가능한 양자화 단계값에 대해, 각각의 이용가능한 양자화 단계값으로 픽셀들의 제 1 그룹의 그룹 값을 나누는 나눗셈 이후 나머지값을 계산하는 것(S106)을 포함한다. 이용가능한 양자화 단계값들의 세트 중 가장 작은 나머지값을 초래하는 양자화 단계값이, 선택된 양자화 단계값으로서 선택된다(S107). 선택된 양자화 단계값을 사용하여 픽셀들의 제 1 그룹이 인코딩된다(S108). 이미지 프레임들 간의 차이들을 인코딩하는 방법이 또한 개시되고, 뿐만 아니라 인코딩 시스템들이 개시된다.
Description
본 발명은 디지털 비디오 데이터(digital video data)를 인코딩(encoding)하는 것에 관한 것으로, 더 구체적으로는 양자화(quantization)를 이용하는 인코딩에 관한 것이다.
네트워크 카메라 모니터링 시스템(network camera monitoring system)들과 같은 디지털 비디오 시스템(digital video system)들에서, 비디오 시퀀스(video sequence)들은 전송 전에 다양한 비디오 인코딩 방법들을 사용하여 압축된다. 다수의 디지털 비디오 인코딩 시스템들에서, 비디오 프레임(video frame)들의 시퀀스의 비디오 프레임들을 압축하기 위해 다음과 같은 두 개의 주요 모드(main mode)들이 사용된다: 인트라 모드(intra mode) 및 인터 모드(inter mode). 인트라 모드에서, 루미넌스 채널(luminance channel) 및 크로미넌스 채널(chrominance channel)은 예측 코딩(prediction coding), 변환 코딩(transform coding) 및 엔트로피 코딩(entropy coding)을 통해 단일 프레임의 임의의 주어진 채널(channel) 내의 픽셀(pixel)들의 공간적 리던던시(spatial redundancy)를 이용함으로써 인코딩된다. 이렇게 인코딩된 프레임들은 인트라-프레임(intra-frame)들로 불리우고, 그리고 I-프레임(I-frame)들로서 또한 지칭될 수 있다. 인트라-프레임 내에서, 매크로 블록(macro-block)들, 코딩 유닛(coding unit)들, 혹은 코딩 트리 유닛(coding tree unit)들로서 또한 지칭되는 픽셀(pixel)들의 블록(block)들은, 이들이 동일 이미지 프레임 내에서 유사한 블록을 참조하여 인코딩됨 혹은 어떠한 것도 전혀 참조함이 없이 원시 코딩(raw coding)됨을 의미하는 그러한 인트라-모드에서 인코딩된다. 대신, 인터 모드는 별개의 프레임들 간의 시간적 리던던시(temporal redundancy)를 이용하고, 그리고 움직임-보상 예측 기법(motion-compensation prediction technique)에 의존하는데, 여기서 움직임-보상 예측 기법은 픽셀들의 선택된 블록들에 대해 하나의 프레임으로부터 또 하나의 다른 프레임으로의 픽셀들 내의 움직임을 인코딩함으로써 하나 이상의 이전의 프레임들로부터 임의의 프레임의 일부분들을 예측한다. 이렇게 인코딩된 프레임들은 인터-프레임들로 불리우고, 그리고 P-프레임들(순방향으로-예측된 프레임(forward-predicted frame)들)로서 지칭될 수 있거나, 또는 B-프레임들(양-방향으로 예측된 프레임(bi-directionally predicted frame)들)로서 지칭될 수 있는데, 여기서 P-프레임들(순방향으로-예측된 프레임들)은 디코딩 순서(decoding order)에서 이전의 프레임들을 참조할 수 있고, 그리고 B-프레임들(양-방향으로 예측된 프레임들)은 둘 이상의 이전의 디코딩된 프레임들을 참조할 수 있고 아울러 예측을 위해 사용된 프레임들의 어떤 임의의 디스플레이-순서 관계(arbitrary display-order relationship)를 가질 수 있다. 인터-프레임 내에서, 매크로 블록들로서 또한 지칭되는 픽셀들의 블록들은, 이들이 이전의 디코딩된 이미지 내의 유사한 블록을 참조하여 인코딩됨을 의미하는 그러한 인터-모드에서 인코딩될 수 있거나, 또는 이들이 동일 이미지 프레임 내에서 유사한 블록을 참조하여 인코딩됨 혹은 어떠한 것도 전혀 참조함이 없이 원시-코딩됨을 의미하는 그러한 인트라-모드에서 인코딩될 수 있다.
양쪽 인코딩 모드들에서, 대개는 양자화가 수행된다. 일반적으로, 매크로블록의 픽셀 값들은 이산 코사인 변환(Discrete Cosine Transform, DCT) 하에 놓이게 되고, 그럼으로써 매크로블록의 픽셀 값들은 주파수 도메인(frequency domain)으로 변환된다. DCT 계수(coefficient)들은 양자화된다. 양자화(quantization)는, 광범위한 값들을 취할 수 있는 입력 값들을 셀 수 있는 수의 개별 값들 혹은 개별 레벨(level)들(소위 양자화 레벨(quantization level)들)에 맵핑(mapping)시키는 것을 의미한다. 양자화에서 하나의 레벨로부터 다음 레벨까지의 단계값(step)의 크기(size)는 양자화 단계값(quantization step)으로서 지칭될 수 있다. 양자화를 수행함으로써, 양자화된 데이터는, 양자화되지 않은 입력 값들을 나타내기 위해 요구되었을 비트(bit)들보다, 더 적은 수의 비트들을 사용하여 나타내어질 수 있다. 예컨대, H.264 표준을 따르는 코덱(codec)들에서, 양자화는 양자화 파라미터(Quantization Parameter), 혹은 줄여서 QP로 불리우는 압축 값(compression value)에 의해 제어된다.
만약 입력 값들이 단지 몇 개의 양자화 레벨들로만 맵핑된다면(즉, 양자화 단계값들이 큰 경우), 더 많은 양자화 레벨들이 사용되는 경우보다 양자화된 데이터를 나타내기 위해 더 적은 수의 비트들이 요구될 것이다. 따라서, 비디오 인코더(video encoder)의 출력 비트레이트(output bitrate)를 낮추고자 하는 경우, 적절한 압축 값을 선택함으로써 양자화 레벨들의 수는 낮추어질 수 있다. 달리 말하면, 양자화 단계값들의 크기는 증가될 수 있다. 하지만, 양자화는 비가역적(irreversible)이기 때문에, 압축은 손실성 압축(lossy compression)이되고, 더 적은 수의 양자화 레벨들이 사용되면 될수록 더 많은 정보가 손실된다. 따라서, 인코딩되는 비디오의 품질은, 만약 (적은 수의 양자화 레벨들을 의미하는) 높은 압축 값들이 사용된다면, 일반적으로 더 낮아질 것이다.
인코딩은, 고정 비트레이트(Constant BitRate, CBR), 최대 비트레이트(Maximum BitRate, MBR), 혹은 가변 비트레이트(Variable BitRate, VBR)를 이용할 수 있는 레이트 제어기(rate controller)에 의해 종종 제어된다. CBR은 캡처된 장면(captured scene)에서 무엇이 일어나든지 상관없이 인코더가 항상 동일한 비트레이트를 출력하려는 것을 의미한다. 만약 대역폭(bandwidth)이 제한을 받는다면, 이것은 해당 장면 내에 임의의 움직임이 존재하는 경우에는 낮은 품질의 이미지들로 이어질 수 있지만, 이미지가 정적 이미지(static image)인 경우에는 높은 품질의 이미지들로 이어질 수 있다. 감시(surveillance) 혹은 모니터링(monitoring) 상황에서, 이것은 일반적으로 유용하지 않은데, 왜냐하면 정적인 장면보다 움직임을 갖는 장면이 보통은 더 관심의 대상이 되기 때문이다. MBR의 경우에, 비트레이트는 설정된 비트레이트 한계(bitrate limit)를 초과하지 않는 한 가변적일 수 있다. 이러한 접근법과 관련된 문제들은 CBR과 관련된 문제들과 유사하다. 만약 MBR 한계가 너무 낮게 설정된다면, 움직임을 갖는 장면의 이미지들은 낮은 품질을 가질 수 있다. 하지만, 만약 해당 움직임을 수용하기 위해서 한계가 더 높게 설정된다면, 정적 장면의 이미지들을 인코딩할 때 출력 비트레이트는 불필요하게 높을 수 있다. VBR은 또한, 고정 품질 비트레이트(constant quality bitrate)로서 지칭될 수 있는데, 이것은, 인코딩되는 이미지들의 품질이 일정하게 유지돼야 함, 하지만 출력 비트레이트는 장면 내에서 일어나고 있는 것이 무엇인지에 따라 변할 수 있음을 의미한다. 이러한 접근법은 장면 내에 움직임이 존재하는 경우 높은 출력 비트레이트로 이어질 수 있다. 이것은 만약 인코딩된 이미지들을 모바일 네트워크(mobile network)를 통해 전송하는 경우와 같이 대역폭이 제한을 받는다면 특히 문제가 된다. 유사하게, 이것은, 만약 카메라 자체에, 예를 들어, SD 카드 상에 이미지들을 저장하는 경우와 같이 저장용량이 제한을 받는다면, 문제가 될 수 있다. 높은 출력 비트레이트들은 또한, 카메라들로 이루어진 대규모 시스템들에서 만약 수 개의 카메라들이, 움직임을 갖는 장면들의 이미지들을 동시에 전송한다면, 문제가 될 수 있다.
레이트 제어기에 의해 사용되는 비트레이트 제어 방식에 상관없이, 레이트 제어기에 의해 설정된 비트레이트를 따르기 위해 인코더가 조정할 수 있는 파라미터들 중 하나는 압축 값, 혹은 달리 말하면, 양자화 단계값이다. 이미 언급된 바와 같이, 높은 압축 값, 즉 큰 양자화 단계값은 인코더로부터 낮은 출력 비트레이트를 제공할 것으로 예상된다. 하지만, 본 발명의 발명자들은 이러한 것이 언제나 진실은 아니라는 것을 발견했다. 일부 경우들에서, 이미 높은 압축 값으로부터 압축 값을 증가시키는 것은 실제로 출력 비트레이트를 증가시킬 수 있다. 이것은 대역폭 요건이 불필요하게 높아지게 될 수 있다는 점, 아울러 이와 동시에 이미지 품질은 낮아진다는 점에서 매우 바람직하지 못한 것이다. 따라서, 개선된 인코딩 방법에 대한 필요성이 존재한다.
본 발명의 목적은 이미지 품질을 불필요하게 떨어뜨리지 않으면서 출력 비트레이트를 감소시키는 것을 가능하게 하는 비디오를 인코딩하는 방법을 제공하는 것이다.
본 발명의 목적은 또한, 비트들의 효율적인 사용을 가능하게 하는 인코더 시스템을 제공하는 것이다.
제 1 실시형태에 따르면, 이러한 목적들 및 다른 목적들은 다음과 같은 비디오를 인코딩하기 위한 방법에 의해 완전히 달성되거나 혹은 적어도 부분적으로 달성되는바, 이러한 비디오를 인코딩하기 위한 방법은, 인코딩될 비디오의 현재 디지털 이미지 프레임(digital image frame) 내의 픽셀(pixel)들을 나타내는 정보를 수신하는 것; 상기 현재 디지털 이미지 프레임 내의 이웃하는 픽셀들의 그룹(group)들에 대한 상기 정보의 공간적인 통계적 척도값(spatial statistical measure)을 계산하여 이웃하는 픽셀들의 각각의 그룹에 대한 그룹 값(group value)을 형성하는 것; 제1의 미리결정된 양자화 단계값(quantization step)을 포함하는 이용가능한 양자화 단계값들의 세트(set)를 결정하는 것을 포함하고, 이러한 방법은, 이웃하는 픽셀들의 제 1 그룹에 대해서: 각각의 이용가능한 양자화 단계값에 대해, 각각의 이용가능한 양자화 단계값으로 픽셀들의 제 1 그룹의 그룹 값을 나누는 나눗셈(division) 이후 나머지값(remainder)을 계산하는 것; 이용가능한 양자화 단계값들의 세트 중 가장 작은 나머지값을 초래하는 양자화 단계값을 선택된 양자화 단계값으로서 선택하는 것; 그리고 선택된 양자화 단계값을 사용하여 픽셀들의 제 1 그룹을 인코딩하는 것을 포함한다. 이러한 인코딩 방법을 사용하여, 출력 비트레이트가 억제될 수 있도록, 그리고 허용가능한 레벨에서 이미지 품질이 유지될 수 있도록, 최적화된 의미를 갖는 양자화 단계값을 선택하는 것이 가능하다.
제 2 실시형태에 따르면, 이러한 목적들 및 다른 목적들은 다음과 같은 비디오를 인코딩하기 위한 방법에 의해 완전히 달성되거나 혹은 적어도 부분적으로 달성되는바, 이러한 비디오를 인코딩하기 위한 방법은, 인코딩될 비디오의 현재 디지털 이미지 프레임 내의 픽셀들을 나타내는 정보를 수신하는 것; 상기 현재 디지털 이미지 프레임 내의 이웃하는 픽셀들의 그룹들에 대한 상기 정보의 공간적인 통계적 척도값을 계산하여 이웃하는 픽셀들의 각각의 그룹에 대한 그룹 값을 형성하는 것; 제1의 미리결정된 양자화 단계값을 포함하는 이용가능한 양자화 단계값들의 세트를 결정하는 것을 포함하고, 이러한 방법은, 이웃하는 픽셀들의 제 1 그룹에 대해서: 픽셀들의 제 1 그룹의 그룹 값과, 참조 프레임(reference frame) 내의 픽셀들의 참조 그룹(reference group)의 대응하는 그룹 값 간의 그룹 값 차이(group value difference)를 계산하는 것; 각각의 이용가능한 양자화 단계값에 대해, 각각의 이용가능한 양자화 단계값으로 그룹 값 차이를 나누는 나눗셈 이후 나머지값을 계산하는 것; 이용가능한 양자화 단계값들의 세트 중 가장 작은 나머지값을 초래하는 양자화 단계값을 선택된 양자화 단계값으로서 선택하는 것; 선택된 양자화 단계값을 사용하여 픽셀들의 제 1 그룹을 인코딩하는 것을 포함한다. 이러한 방법을 사용하여, 이미지 품질을 과도하게 낮춤이 없이 출력 비트레이트가 감소된 인터-코딩(inter-coding)을 수행하는 것이 가능하다.
제 1 실시형태 및 제 2 실시형태의 방법들은 다수의 방식들로 변경될 수 있다. 예를 들어, 참조 프레임은 이전에 인코딩 및 디코딩된 이미지 프레임(previously encoded and decoded image frame)일 수 있다.
이용가능한 양자화 단계값들의 세트는, 미리결정된 양자화 단계값과, 적어도 하나의 더 큰 양자화 단계값, 그리고 적어도 하나의 더 작은 양자화 단계값을 포함하는바, 여기서 적어도 하나의 더 큰 양자화 단계값은 미리결정된 양자화 단계값보다 더 큰 양자화 단계값이고, 그리고 적어도 하나의 더 작은 양자화 단계값은 미리결정된 양자화 단계값보다 더 작은 양자화 단계값이다.
만약 둘 이상의 이용가능한 양자화 단계값들이, 나눗셈 이후 동등하게 작은 나머지값들을 초래한다면, 이러한 둘 이상의 양자화 단계값들 중 가장 큰 양자화 단계값이, 선택된 양자화 단계값으로서 선택될 수 있다.
제 3 실시형태에 따르면, 이러한 목적들 및 다른 목적들은 다음과 같은 비디오를 인코딩하기 위한 인코더 시스템(encoder system)에 의해 완전히 달성되거나 혹은 적어도 부분적으로 달성되는바, 이러한 비디오를 인코딩하기 위한 인코더 시스템은, 인코딩될 비디오의 현재 디지털 이미지 프레임 내의 픽셀들을 나타내는 정보를 수신하도록 구성된 수신 모듈(receiving module); 상기 현재 디지털 이미지 프레임 내의 이웃하는 픽셀들의 그룹들에 대한 상기 정보의 공간적인 통계적 척도값을 계산하여 이웃하는 픽셀들의 각각의 그룹에 대한 그룹 값을 형성하도록 구성된 그룹 값 모듈(group value module); 제1의 미리결정된 양자화 단계값을 포함하는 이용가능한 양자화 단계값들의 세트를 결정하도록 구성된 단계값 세트 결정 모듈(step set determination module); 이용가능한 양자화 단계값들 각각으로 픽셀들의 제 1 그룹의 그룹 값을 나누는 나눗셈 이후 각각의 나머지값을 계산하도록 구성된 계산 모듈(calculation module); 이용가능한 양자화 단계값들의 세트 중 가장 작은 나머지값을 초래하는 양자화 단계값을 선택된 양자화 단계값으로서 선택하도록 구성된 선택 모듈(selection module); 그리고 선택된 양자화 단계값을 사용하여 픽셀들의 제 1 그룹을 인코딩하도록 구성된 인코딩 모듈(encoding module)을 포함한다. 이러한 인코딩 시스템은 허용가능한 비디오 품질을 존속시키면서 비트레이트를 낮게 유지시키는 효율적인 인코딩을 가능하게 한다.
제 4 실시형태에 따르면, 이러한 목적들 및 다른 목적들은 다음과 같은 비디오를 인코딩하기 위한 인코더 시스템에 의해 완전히 달성되거나 혹은 적어도 부분적으로 달성되는바, 이러한 비디오를 인코딩하기 위한 인코더 시스템은, 인코딩될 비디오의 현재 디지털 이미지 프레임 내의 픽셀들을 나타내는 정보를 수신하도록 구성된 수신 모듈; 상기 현재 디지털 이미지 프레임 내의 이웃하는 픽셀들의 그룹들에 대한 상기 정보의 공간적인 통계적 척도값을 계산하여 이웃하는 픽셀들의 각각의 그룹에 대한 그룹 값을 형성하도록 구성된 그룹 값 모듈; 픽셀들의 제 1 그룹의 그룹 값과, 참조 프레임 내의 픽셀들의 참조 그룹의 대응하는 그룹 값 간의 그룹 값 차이를 계산하도록 구성된 차이 모듈(difference module); 제1의 미리결정된 양자화 단계값을 포함하는 이용가능한 양자화 단계값들의 세트를 결정하도록 구성된 단계값 세트 결정 모듈; 이용가능한 양자화 단계값들 각각으로 픽셀들의 제 1 그룹의 그룹 값 차이를 나누는 나눗셈 이후 각각의 나머지값을 계산하도록 구성된 계산 모듈; 이용가능한 양자화 단계값들의 세트 중 가장 작은 나머지값을 초래하는 양자화 단계값을 선택된 양자화 단계값으로서 선택하도록 구성된 선택 모듈; 그리고 선택된 양자화 단계값을 사용하여 픽셀들의 제 1 그룹을 인코딩하도록 구성된 인코딩 모듈을 포함한다. 이러한 인코딩 시스템은 허용가능한 비디오 품질을 존속시키면서 비트레이트를 낮게 유지시키는 효율적인 인터-프레임 인코딩을 가능하게 한다.
제 3 실시형태 및 제 4 실시형태의 인코딩 시스템들은 일반적으로 제 1 실시형태 및 제 2 실시형태의 방법들과 동일한 방식들로 그 수반되는 장점들을 갖도록 구현될 수 있다.
제 5 실시형태에 따르면, 이러한 목적들 및 다른 목적들은 다음과 같은 컴퓨터 프로그램 제품에 의해 완전히 달성되거나 혹은 적어도 부분적으로 달성되는바, 이러한 컴퓨터 프로그램 제품은 컴퓨터 판독가능 저장 매체를 포함하고, 여기서 컴퓨터 판독가능 저장 매체는 프로세서에 의해 실행될 때 제 1 실시형태 또는 제 2 실시형태의 방법을 수행하도록 구성된 명령들을 갖는다.
제 6 실시형태에 따르면, 이러한 목적들 및 다른 목적들은 제 3 실시형태 또는 제 4 실시형태에 따른 인코딩 시스템을 포함하는 카메라에 의해 완전히 달성되거나 혹은 적어도 부분적으로 달성된다.
본 발명의 응용가능성(applicability)의 다른 범위는 아래에 제시되는 상세한 설명으로부터 명백하게 될 것이다. 하지만, 본 발명의 바람직한 실시예들을 언급하고 있는 상세한 설명 및 특정 예들은 오로지 예시적으로 제공되는 것임을 이해해야 하는데, 왜냐하면 본 발명의 범위 내에서의 다양한 변경들 및 수정들이 본 명세서의 이러한 상세한 설명으로부터 본 발명의 기술분야에서 숙련된 자들에게는 명백하게 될 것이기 때문이다.
따라서, 본 발명이 본 명세서에서 설명되는 디바이스의 특정 컴포넌트 부분들 혹은 본 명세서에서 설명되는 방법들의 단계들로만 한정되는 것은 아님을 이해해야 하는데, 왜냐하면 이러한 디바이스 및 방법은 다양할 수 있기 때문이다. 본 명세서에서 사용되는 용어는 오로지 특정 실시예들을 설명할 목적을 갖고 있는 것일 뿐 한정의 의미를 갖도록 의도되지 않았음을 또한 이해해야 한다. 본 명세서 및 첨부되는 청구항에서 사용되는 바와 같이, 임의의 요소의 단수적 표현은 문맥상 명확히 다르게 표시하지 않는다면 해당 요소가 하나 혹은 그 이상 존재함을 의미하도록 의도된 것임에 유의해야만 한다. 따라서, 예를 들어, "임의의 오브젝트(object)" 혹은 "해당 오브젝트"는 수 개의 오브젝트들, 등을 포함할 수 있다. 더욱이, 단어 "포함하는"은 다른 요소들 혹은 단계들을 배제하지 않는다.
본 발명은 이제 첨부되는 도식적 도면을 참조하여 예시적으로 더 상세하게 설명될 것이다.
도 1은 카메라에 의해 모니터링되는 장면의 사시도이다.
도 2는 하나의 위치에 있는 카메라 및 인코더, 그리고 또 하나의 다른 위치에 있는 인코더, 디스플레이, 및 저장 디바이스를 포함하는 모니터링 시스템의 블록도이다.
도 3은 제 1 이미지 프레임, 참조 프레임, 그리고 제 2 이미지 프레임을 보여주는 도면이다.
도 4는 본 발명의 제 2 실시형태에 따른 비디오를 인코딩하는 방법의 흐름도이다.
도 5는 본 발명의 제 1 실시형태에 따른 비디오를 인코딩하는 방법의 흐름도이다.
도 6은 본 발명의 실시예에 따른 인코더의 블록도이다.
도 1은 카메라에 의해 모니터링되는 장면의 사시도이다.
도 2는 하나의 위치에 있는 카메라 및 인코더, 그리고 또 하나의 다른 위치에 있는 인코더, 디스플레이, 및 저장 디바이스를 포함하는 모니터링 시스템의 블록도이다.
도 3은 제 1 이미지 프레임, 참조 프레임, 그리고 제 2 이미지 프레임을 보여주는 도면이다.
도 4는 본 발명의 제 2 실시형태에 따른 비디오를 인코딩하는 방법의 흐름도이다.
도 5는 본 발명의 제 1 실시형태에 따른 비디오를 인코딩하는 방법의 흐름도이다.
도 6은 본 발명의 실시예에 따른 인코더의 블록도이다.
도 1에서는, 카메라(2)에 의해 모니터링되는 장면(1)이 보여지고 있다. 장면(1)에서는, 건물(building)(3)이 존재하며, 건물(3)은 다수의 문(door)들(4)을 가지고 있고, 아울러 각각의 문(4)까지 이르는 경로(path)(5)들을 가지고 있다. 장면(1)을 모니터링하는 목적은, 예를 들어, 건물(3)에 접근하는 사람들 혹은 건물(3) 주변 근처에서 움직이는 사람들을 계속 주시하려는 것일 수 있다.
도 2는 카메라(2)가 그 일부분을 형성하는 모니터링 시스템(10)의 예를 보여준다. 모니터링 시스템(2)은 카메라(2) 및 제어 센터(control centre)(11)를 포함한다. 제어 센터(11)는 카메라(2)에 의해 모니터링되는 장면(1)으로부터 멀리 떨어진 위치에 있을 수 있다. 네트워크(12)는 카메라(2)와 제어 센터(11)를 연결한다. 네트워크(12)는 비디오 데이터를 전달하는데 적합한 임의 종류의 네트워크일 수 있고, 그리고 네트워크(12)는 유선 네트워크 혹은 무선 네트워크일 수 있다. 카메라(2)는 인코더(13)를 갖고, 이러한 인코더(13)는 카메라(2) 내에 통합될 수 있거나, 혹은 카메라(2)에 연결되는 외부 유닛(external unit)일 수 있다. 카메라(2) 내에는, 온-보드 저장 디바이스(on-board storage device)(14)가 존재하고, 이러한 온-보드 저장 디바이스(14)는 SD 카드의 형태를 가질 수 있다. 대안적으로, 혹은 추가적으로, 카메라는 또 하나의 다른 저장 디바이스(미도시)(예컨대, 네트워크 결합 저장소(Network Attached Storage)(이것은 또한 NAS로서 지칭됨)와 같은 것)에 연결될 수 있다. 더욱이, 카메라는 레이트 제어기(15)를 가지며, 이러한 레이트 제어기(15)는 인코더에 대한 비트레이트 한계를 설정하도록 구성된다. 레이트 제어기(15)는 카메라(2) 내에 통합될 수 있거나, 혹은 그렇지 않으면 카메라(2)에 동작가능하게 연결될 수 있다. 카메라는 또한 도면에서 도시되지는 않았지만 그 자체가 본질적으로 알려져 있는 다른 컴포넌트(component)들을 가지고 있는바, 이러한 다른 컴포넌트들은 본 명세서에서 이후 논의될 것이다. 제어 센터(12) 내에는, 디코더(decoder)(16)가 존재하고, 이러한 디코더(16)는 인코더(13)에 의해 인코딩되었던 그리고 네트워크(12)를 통해 제어 센터(12)로 전송되었던 비디오 데이터를 디코딩하도록 구성된다. 더욱이, 라이브 비디오(live video) 및/또는 녹화된 비디오(recorded video)를 디스플레이하기 위한 디스플레이(17)가 존재하고, 이에 따라 운용자(operator)는 모니터링되는 장면(1) 내에서 무엇이 일어나는지를 볼 수 있게 된다. 추가적으로, 비디오를 녹화하기 위한 스토리지 디스플레이(18)가 존재한다. 스토리지 디스플레이(18)가 도면에서 제어 센터(11) 내에 구성되는 것으로서 도시되고 있지만, 스토리지 디스플레이(18)는 이와는 다른 곳에 구성될 수 있음에 유의해야 한다. 예를 들어, 스토리지 디스플레이(18)는 제어 센터(11) 내에서 컴퓨터(미도시)의 디스크 드라이브(disk drive)일 수 있다. 이러한 컴퓨터는 또한, 디스플레이(17)에 연결될 수 있다. 스토리지 디바이스는 대안적으로 혹은 추가적으로, NAS일 수 있거나, 혹은 소위 클라우드 저장소(cloud storage)일 수 있다. 제어 센터(11)는 카메라(2)로부터의 이미지들이 전송될 수 있는 위치의 단지 하나의 예이다. 대안적으로 혹은 추가적으로, 카메라로부터의 이미지들은 사용자의 모바일 전화기(mobile phone)(미도시)로 전송될 수 있다. 예컨대, 장면(1) 내에서 움직임이 검출되는 경우, 카메라(2)는 임의의 통지(notification), 스냅샷(snapshot), 혹은 비디오 시퀀스(video sequence)를 사용자의 모바일 전화기로 전송하도록 트리거(trigger)될 수 있다. 이러한 경우에, 이미지들은 모바일 전화기의 디스플레이 상에 디스플레이될 수 있고 그리고/또는 모바일 전화기 내에 저장될 수 있다.
카메라(2)가 장면(1)의 이미지들을 캡처(capture)하는 경우, 이미지들은 카메라 자체에 저장되기 전에 혹은 카메라에 연결된 곳에 저장되기 전에, 그리고/또는 전송되기 전에 인코더(13)에 의해 인코딩되는바, 예를 들어, 이미지들은 제어 센터(11)로 전송되기 전에 인코더(13)에 의해 인코딩되고, 제어 센터(11)에서 그 인코딩된 이미지들이 수신된다.
수신된 이미지들은 가능하게는 차후의 뷰잉(viewing)을 위해 스토리지 디스플레이(18) 내에 저장될 수 있다. 수신된 이미지들은 또한, 실시간으로 혹은 적어도 거의 실시간으로 디스플레이(17) 상에서의 디스플레이를 위해 디코더(16)에 의해 디코딩될 수 있다.
일반적으로, 카메라(2)의 인코더(13)로부터의 비트레이트를 낮게 유지시킬 필요가 있다. 이것은 이용가능한 저장용량, 예를 들어, SD 카드 상의 이용가능한 저장용량이 제한되어 있기 때문일 수 있다. 이것은 또한, 모바일 네트워크 상에서 이미지 데이터가 전송되는 경우와 같이 카메라(2)로부터의 전송 대역폭이 제한되기 때문일 수 있다. 더욱이, 더 여유로운 대역폭을 가진 모니터링 시스템에서조차도, 많은 카메라들이 존재할 수 있고, 그리고 만약 이러한 카메라들 중 수개의 카메라들이 이미지 데이터를 동시에 전송한다면, 너무 큰 대역폭 소비가 일어날 수 있다. 발명의 배경이 되는 기술 부분에서 이미 언급된 바와 같이, 출력 비트레이트를 제어하기 위해 조정될 수 있는 하나의 파라미터는 압축 값 혹은 양자화 단계값이다. 조정될 수 있는 다른 파라미터들이 또한 존재하는데, 예컨대, 이미지 해상도(image resolution) 및 프레임 레이트(frame rate)와 같은 것이 존재하지만, 본 명세서에서는 논의되지 않을 것이다.
모니터링 목적 혹은 감시 목적으로, 정적 장면의 이미지들은 종종 관심의 대상이 아니다. 따라서, 이러한 이미지들은 출력 비트레이트를 감소시키기 위해 고밀도로 압축될 수 있고, 이로 인한 품질 저하는 일반적으로 그 대가를 치르기에 허용가능하다. 일부 인코더들은 이미지의 상이한 부분들을 서로 다르게 압축한다. 예를 들어, 장면 내의 배경(background)을 나타내도록 결정된 이미지의 일부분들은 전경(foreground)을 나타내도록 결정된 부분들보다 더 고밀도로 압축될 수 있다. 이러한 방식으로, 이용가능한 대역폭은, 전체 이미지가 동일한 정도로 압축되는 경우보다, 더 잘 이용될 수 있다.
또한, 본 발명들의 발명자들은, 압축 값의 증가, 즉, 양자화 단계값의 증가가 때로는 비트레이트의 변경을 초래하지 않는다는 것 혹은 심지어 비트레이트의 증가를 초래한다는 것을 발견했다. 증가된 압축 값은 또한 이미지 품질을 낮추게 되지만 이러한 이미지 품질 손실이 비트레이트를 감소시키는 데는 성과를 내지 못한다.
본 발명은, 원하는 이미지 품질 및 지배적인 비트레이트 한계와 관련하여 가능한한 큰 양자화 단계값을 선택하는 것뿐만 아니라, 양자화 단계값이 현명하게 선택되도록 실현하는 것에 기반을 두고 있다. 이러한 개념이 이제 도 3을 참조하여 그리고 간략화된 예를 통해 설명될 것이다.
도 3은 인코딩될 제 1 이미지 프레임(20), 참조 프레임(reference frame)(30), 및 제 2 이미지 프레임(40)의 예이다. 참조 프레임(30)은 제 1 이미지 프레임(20)의 인코딩 전에 인코딩 및 디코딩되었던 이미지 프레임이다. 이 경우, 그림들의 그룹(Group Of Pictures, GOP)의 시작에서는, 어떠한 다른 프레임도 참조함이 없이 인코딩되는 I-프레임이 존재할 것임을 알 수 있다. GOP 길이, 즉, 그림들의 그룹의 길이가 제로(zero)가 아니라면, 다음 프레임은 P-프레임(혹은 가능하게는 B-프레임)으로서 인코딩되게 된다. 이러한 P-프레임에 있어서, 참조 프레임은 선행하는 I-프레임을 디코딩한 결과일 것이다. 일련의 라인(line)에서 다음 P-프레임에 대해, 참조 프레임은 선행하는 P-프레임을 디코딩한 결과일 것이고, 따라서 일련의 라인에서 다음 P-프레임은 그 선행하는 P-프레임에 의해 영향을 받을 뿐만 아니라 선행하는 I-프레임에 의해서도 영향을 받는바, 즉 그림들의 그룹 내에서 선행하는 모든 프레임들에 의해 영향을 받는다.
제 1 이미지 프레임(20)은 다수의 픽셀들(21)로 이루어져 있고, 이러한 다수의 픽셀들(21)은 이웃하는 픽셀들(21)의 그룹들(22)로 그룹화될 수 있다. 발명의 배경이 되는 기술 부분에서 언급된 바와 같이, 픽셀들의 그룹들은 또한, 예를 들어, 블록들, 매크로블록들, 코딩 유닛들, 혹은 코딩 트리 유닛들로서 지칭될 수 있다. 마찬가지로, 참조 프레임(30)은 다수의 픽셀들(31)로 이루어져 있고, 이러한 다수의 픽셀들(31)은 이웃하는 픽셀들(31)의 참조 그룹들(32)로 그룹화될 수 있다. 유사하게, 제 2 이미지 프레임(40)은 다수의 픽셀들(41)로 이루어져 있고, 이러한 다수의 픽셀들(41)은 이웃하는 픽셀들(41)의 그룹들(42)로 그룹화될 수 있다. 각각의 이미지(20, 30, 40) 내의 픽셀들의 수는 이미지들(20, 30, 40)을 캡처하는 카메라(2) 내의 이미지 센서(미도시)의 픽셀들의 수에 따라 달라진다. 일부 경우들에서, 이미지들(20, 30, 40) 내의 픽셀들의 수는, 이미지 센서의 픽셀들의 수로부터, 축소(scale down)될 수 있거나, 혹은 일부 경우들에서는 확장(scale up)될 수 있고, 하지만 이것은 본 명세서에서 더 이상 논의되지 않을 것이다.
이러한 예에서, 제 1 이미지 프레임(20)은 참조 프레임(30)을 참조하여 인터-프레임으로서 인코딩될(혹은 더 구체적으로는 P-프레임으로서 인코딩될) 현재 이미지 프레임이다. 본 발명의 기술분야에서 숙련된 사람은 둘 이상의 참조 프레임들을 사용하는 B-프레임에 대해서도 동일한 원리가 사용될 수 있음을 인식할 것이다.
인터-프레임을 인코딩하는 경우, 현재 프레임과 참조 프레임 간의 차이들이 계산되고 인코딩된다. 픽셀들의 각각의 그룹 혹은 블록에 대해, 참조 프레임 내에서 검색(search)이 수행되고, 그리고 만약 충분히 유사한 블록이 발견된다면, 그 블록이 참조 블록으로서 사용된다. 간단히 말하면, 픽셀 블록은 움직임 벡터(motion vector)의 정보를 사용하여 그리고 참조 블록과 비교된 강도 값 차이들(이것은 또한 잔여값(residual)으로 지칭됨)의 정보를 사용하여 인코딩되는데, 여기서 움직임 벡터의 정보는 인코딩할 블록이 참조 블록과 관련하여 얼마나 많이 변위(displace)되었는지를 알려주고, 그리고 참조 블록과 비교된 강도 값 차이들(잔여값)의 정보는 해당 블록이 참조 블록과 얼마나 다른지를 알려준다. 만약 충분히 유사한 블록이 발견되지 않는다면, 블록은 인트라-코딩을 사용하여, 즉, 어떠한 다른 프레임도 참조함이 없이, 인코딩된다.
예를 들어, 픽셀 값이 모두 74인 픽셀들의 제 1 그룹(22)이 인코딩되게 된다. 그 자체가 본질적으로 알려져 있는 움직임 벡터 검색이 수행된 이후, 참조 프레임(30) 내에서 픽셀들의 참조 그룹(32)이 식별된다. 이러한 예에서, 참조 그룹(32)은, 현재 프레임(20) 내에서의 픽셀들의 제 1 그룹(22)의 위치에 대응하는, 참조 프레임(30) 내에서의 위치에 위치한다. 따라서, 움직임 벡터는 제로의 길이를 가질 것이고, 본 명세서에서 더 이상 논의되지 않을 것이다. 하지만, 다음의 설명은 움직임 벡터가 제로가 아닌 경우에도 유효할 것이다.
참조 그룹 내의 픽셀들은 모두 픽셀 값 70을 갖는다. 픽셀들의 제 1 그룹(22)에 대해, 그룹(22) 내의 모든 픽셀들의 값들의 평균(mean)으로서 제 1 그룹 값(V1)이 계산될 수 있다. 제 1 그룹(22) 내의 모든 픽셀들은 픽셀 값 74를 갖고 있기 때문에, 제 1 그룹 값(V1)은 74일 것이다. 유사하게, 참조 그룹(32)에 대한 참조 그룹 값(VR1)이, 참조 그룹(32) 내의 픽셀 값들의 평균으로서 계산된다. 이러한 참조 그룹 값(VR1)은 70이다. 제 1 그룹 값(V1)과 참조 그룹 값(VR1) 간의 차이가 계산된다.
Vdiff1 = = V1 - VR1
이러한 예에서, 그룹 값 차이(Vdiff1)는
Vdiff1 = = 74 - 70 = 4.
여기서, 레이트 제어기(15)는 인코더로 하여금 픽셀들의 제 1 그룹(22)에 대해 양자화 단계값으로 10을 선택하게 하는 비트레이트 한계를 설정했다. 그룹 값 차이 Vdiff1 = 4는 P-블록으로서 인터-코딩을 통해 인코딩하기에는 너무 크다고 인코더에 의해 결정될 수 있고, 따라서 인코더는 I-블록으로서 인트라-코딩을 사용하여 인코딩을 행할 수 있다. 양자화 단계값이 10이기 때문에, 74라는 값은 7×10(즉, 70)으로서 인코딩될 수 있거나, 혹은 8×10(즉, 80)으로서 인코딩될 수 있다. 74가 80보다는 70에 더 가깝기 때문에, 인코더는 7(혹은 오히려 2진수로는 111)로서 해당 값을 인코딩한다.
현재 이미지 프레임(20)이 인코딩되었고 이후 디코딩되는 경우, 역양자화(dequantization)가 픽셀들의 제 1 그룹(22)에 대한 값을 생성할 것인데, 이것은 인코딩화 수(encoded number) 7을 양자화 단계값 10과 곱하는 곱셈(multiplying)을 수행함으로써 이루어지고, 70이라는 값이 반환되게 된다. 이로 인해 정보가 손실됨을 알 수 있는데, 왜냐하면 제 1 그룹(22)의 본래의 픽셀 값은 74였기 때문이다.
만약 장면이 정적 장면이라면, 제 1 이미지 프레임(20)에 후속하는 제 2 이미지 프레임(40)도 또한, 픽셀들의 제 1 그룹(22)에 대응하는 픽셀들의 제 2 그룹(42)에 대한 그룹 값(V2)으로 74를 가질 것이다. 픽셀들의 제 2 그룹(42)이 양자화 수(quantized value) 7을 사용하여 I-블록으로서 인코딩되는 경우, 비록 장면이 변경되지 않았음에도 불구하고 동일한 상황이 다시 일어난다. 더욱이, 이미지의 품질은 떨어지게 되는데, 왜냐하면 본래의 이미지 프레임에서의 그래디언트(gradient)들이 손실되거나 혹은 과장되기 때문이다. 양자화 단계값이 10인 경우, 70과 80 사이에 있는 픽셀 값들은 오로지 7(즉, 70) 혹은 8(즉, 80)로서만 인코딩될 수 있다. 따라서, 71, 72, 73, 및 74의 값들을 갖는 픽셀들의 블록들 혹은 그룹들은 모두 인코딩 및 디코딩 이후 70의 값을 얻게 될 것인바, 이들 사이 값에서의 모든 변화들은 양자화에서 손실되게 된다. 유사하게, 76, 77, 78, 및 79의 값들을 갖는 블록들은 인코딩 및 디코딩 이후 80의 값을 얻게 될 것이다. 75의 값을 갖는 블록들은 인코더에서 수행되는 반올림(rounding) 방식에 따라, 결과적으로 70으로서 처리될 수 있거나 혹은 80으로서 처리될 수 있다. 오히려 본래 이미지 프레임 내의 각각 두 개의 유사한 블록들인 74의 값을 갖는 블록과 76의 값을 갖는 블록 간의 경계(border)에서, 양자화는 인위적으로 콘트라스트(contrast)를 생성할 것인데, 왜냐하면 하나의 블록은 70의 값을 얻게 될 것이고, 다른 하나의 블록은 80의 값을 얻게 될 것이기 때문이다.
정적 장면의 경우, 인트라-프레임 인코딩보다 인터-프레임 인코딩이 더 효율적일 것으로 예측될 수 있는데, 왜냐하면 인터-프레임 인코딩은 오로지 이미지들 간의 변화들만을 인코딩하기 때문이다. 이러한 간단한 예는 이것이 반드시 그러한 경우가 아님을 예시하는데, 왜냐하면 많은 I-블록들을 갖는 P-프레임은 더 많은 P-블록들을 갖는 혹은 오로지 P-블록들만을 갖는 P-프레임보다 일반적으로 더 클 것이기 때문인바, 즉 더 많은 비트들을 요구할 것이기 때문이다.
본 발명자들은, 출력 비트레이트를 낮춘다는 관점에서는 비록 반직관적(counterintuitive)임에도 불구하고, 더 작은 양자화 단계값을 사용하는 것이 더 현명할 수 있음을 인식했다. 앞서의 예로 되돌아가서, 만약 양자화 단계값이 대신 4가 사용되었다면, 그룹 값 차이 VDiff1 = 4는 이제 더 이상 P-블록으로서 인코딩하기에 너무 큰 것으로 고려되지 않게 되는데, 왜냐하면 4의 값은 양자화 레벨에 정확히 대응하기 때문이다. 픽셀들의 제 1 그룹(22)은 이러한 경우에, 픽셀들의 제 1 그룹(22)이 참조 그룹(32)의 값과 1개의 양자화 단계값만큼 다른 값을 갖는다는 정보를 사용해 인코딩될 수 있다. 1의 수(또한 이진수로서의 1의 수)를 인코딩하는 것은 I-블록으로서 제 1 그룹(22)을 인코딩하기 위해 앞에서 설명된 바와 같은 7의 수(이진수로는 111의 수)를 인코딩하는 것보다 더 적은 수의 비트들을 요구한다. 동일한 접근법이 일부 상황들에서는 더 큰 양자화 단계값을 사용하는 것이 더 현명함을 보여줄 것이라는 점에 유의해야 한다.
이전에 설명된 바와 동일한 방식으로, 제 1 이미지 프레임(20)이 인코딩되었던 경우, 이것은 이후 디코딩되며, 그리고 탈양자화에 의해 제 1 그룹(22)의 값은 참조 그룹(32)의 값에 제 1 그룹(22)과 참조 그룹(32) 간의 차이를 더한 것으로서 계산되는바, 즉, 70 + 1×4 = 74로서 계산된다. 그 다음에, 이러한 디코딩된 이미지 프레임은 제 2 이미지 프레임(40)을 인코딩하기 위한 참조 프레임으로서 사용된다. 앞에서와 같은 동일한 정적 장면인 경우, 픽셀들의 제 2 그룹(42)의 값은 74이다. 따라서, 픽셀들의 제 2 그룹(42)과, 인코딩 및 디코딩된 이전의 프레임에서의 픽셀들의 대응하는 그룹 간의 차이는 0이다. 픽셀들의 제 2 그룹(42)이 이전의 프레임 내의 대응하는 그룹(22)과 0만큼 다르다는 정보를 이용해 픽셀들의 제 2 그룹(42)을 인코딩하는 것이 아니라 오히려, 픽셀들의 제 2 그룹(42)은 생략 블록(skip block)으로서 인코딩될 수 있는데, 이것은 해당 블록이 이전의 프레임으로부터 복사(copy)돼야 한다는 정보를 디코더가 제공받게 됨을 의미한다. 이러한 방식으로, 비록 양자화 단계값이 더 작을지라도, 출력 비트레이트는 더 낮아지게 된다.
이러한 실현예를 고려하여, 본 발명의 발명자들은 도 4를 참조하여 더 설명되는 인코딩 방법을 발명하게 되었다. 이러한 방법에 따르면, 제 1 이미지 프레임 내의 픽셀들을 나타내는 정보가 수신된다(S1). 이러한 정보는 예를 들어, 픽셀들의 강도 값(intensity value)들일 수 있거나, 혹은 이러한 정보는 루미넌스 값(luminance value)들일 수 있다. 현재 이미지 프레임(20) 내의 픽셀들의 그룹(22)의 그룹 값(V1)이 계산되고(단계(S2)), 그리고 참조 프레임(30) 내의 픽셀들의 대응하는 참조 그룹(32)의 그룹 값(VR1)이 계산된다(S3). 이러한 두 개의 그룹 값들(V1, VR1)이 비교되어 그룹 값 차이(VDiff1)가 계산되게 된다(S4). 그 다음에, 레이트 제어기(15)에 의해 설정된 비트레이트 한계를 따르도록 인코더에 의해 결정된 미리결정된 양자화 단계값(predetermined Quantization Step)(QS0)을 단순히 사용하는 대신에, 이용가능한 양자화 단계값들의 세트(set of Available Quantization Steps)(AQS)가 결정된다(S5). 이러한 이용가능한 양자화 단계값들의 세트는, 미리결정된 양자화 단계값(QS0), 그리고 다수의 더 작은 양자화 단계값들 및 다 큰 양자화 단계값들을 포함한다. 예를 들어, 미리결정된 양자화 단계값(QS0)은 5일 수 있고, 이용가능한 양자화 단계값들의 세트는 4, 5, 6, 및 7로서 결정될 수 있는바, 즉, AQS = {4, 5, 6, 7}일 수 있다. 더 큰 양자화 단계값들은 QS+n으로 표시하고 더 작은 양자화 단계값들은 QS-n으로 표시하는 경우, 이용가능한 양자화 단계값들의 세트는 본 예에서 AQS = {QS-1, QS0, QS+1, QS+2}로 표현될 수 있다.
각각의 이용가능한 양자화 단계값에 대해, 그룹 값 차이(VDiff1)는 각각의 양자화 단계값으로 나누어지고, 이러한 나눗셈(division)의 나머지값이 계산된다(S6). 이러한 예에서, 그룹 값 차이(VDiff1 = 4)는 4, 5, 6, 및 7로 나누어져 다음과 같은 나머지값들이 생성되게 된다.
양자화 단계값 4가 가장 작은 나머지값, 즉 0을 생성한다는 것을 알 수 있다. 이용가능한 양자화 단계값들의 세트(AQS) 중 가장 작은 나머지값을 초래하는 이러한 양자화 단계값이, 선택된 양자화 단계값(Selected Quantization Step)(SQS)으로서 선택된다(S7). 따라서, 본 예에서, 선택된 양자화 단계값(SQS)은 4이다. 이에 따라, 픽셀들의 제 1 그룹(22)은 선택된 양자화 단계값(SQS = 4)을 사용하여 인코딩되게 된다(S8). 이러한 절차는 제 1 이미지 프레임(20)의 픽셀들의 모든 그룹들(22)에 대해 사용된다.
이러한 상황에서, 일부 인코더들은 약간 다른 결과를 제공하는 반올림방식을 수행함에 유의해야 한다. 예를 들어, 양자화 단계값이 5인 경우, 양자화 단계값(QS0 = 5)으로 그룹 값 차이(VDiff1 = 4)를 나눈 나눗셈은, 나머지값 4를 갖는 0이 아닌, 1로서 계산될 것이다. 따라서, 양자화 및 탈양자화는, 본래의 74가 아닌, 70 + 1 × 5 = 75의 값을 생성할 것이다.
그 다음에, 인코딩된 이미지 프레임은 SD-카드(14) 상에 저장될 수 있고, 그리고/또는 네트워크(12)를 통해 제어 센터(11)로 전송될 수 있다. 추가적으로, 인코딩된 이미지 프레임은 제 2 이미지 프레임(40)의 인코딩시 사용될 업데이트된 참조 프레임을 생성하기 위해 인코더(13)에 의해 디코딩된다. 따라서, 제 2 이미지 프레임(40)이 현재 이미지 프레임이 되게 되고, 그리고 인코딩 및 디코딩된 제 1 이미지 프레임을 참조 프레임으로 사용하여 인코딩된다. 동일한 절차가 제 2 이미지 프레임에 대해 사용되는바, 따라서 픽셀들의 제 2 그룹(42)의 그룹 값(V2)을 계산하는 것(S2); 업데이트된 참조 프레임의 픽셀들의 대응하는 그룹의 그룹 값(VR2)을 계산하는 것(S3); 그룹 값 차이(VDiff2)를 계산하는 것(S4); 이용가능한 양자화 단계값들의 세트를 결정하는 것(S5); 이용가능한 양자화 단계값들 각각으로 그룹 값 차이를 나누어 각각의 나머지값을 얻는 것(S6); 가장 작은 나머지값을 초래하는 양자화 단계값을 선택하는 것(S7); 그리고 선택된 양자화 단계값을 사용하여 픽셀들의 제 2 그룹(42)을 인코딩하는 것(S8)이 사용된다. 이러한 프로세스는 제 2 이미지 프레임(40)의 픽셀들의 모든 그룹(42)에 대해 수행된다. 인코딩된 제 2 이미지 프레임은 이제 저장될 수 있고 그리고/또는 전송될 수 있다. 이것은 또한, 후속 이미지 프레임들의 인코딩을 위한 또 다른 업데이트된 참조 프레임을 생성하기 위해 인코더(13)에 의한 디코딩될 수 있다.
지금까지, 인터-프레임 인코딩이 논의되었지만, 동일한 원리가 인트라-프레임 인코딩에 대해서도 이용될 수 있다. 인트라-프레임 인코딩에 대한 접근법은, 각각의 이용가능한 양자화 단계값에 의해 나누어지는 것이 그룹 값 차이가 아니라 그룹 값이라는 점에서, 인터-프레임 인코딩에 대한 접근법과는 다르다. 도 5를 참조하여 이러한 방법이 아래에서 더 상세하게 설명될 것이다. 여기서는, 제 1 이미지 프레임(20)이 인트라-코딩을 사용하여 인코딩되게 된다고 가정된다. 앞에서와 같이, 제 1 이미지 프레임(20) 내의 픽셀들을 나타내는 정보가 수신된다(S101). 이웃하는 픽셀들의 그룹들에 대해서, 픽셀 정보의 통계적 척도값(statistical measure)을 계산함으로써 그룹 값들이 계산된다. 여기서도 또한, 픽셀 값들의 평균이 계산된다. 특히, 픽셀들의 제 1 그룹의 그룹 값(V1)이 계산된다(S102). 이러한 예에서는, 인터코딩 예에 대해 사용된 픽셀 값들과 동일한 픽셀 값들이 사용되고, 따라서, 픽셀들의 제 1 그룹(22)의 그룹 값(V1)은 74이다. 미리결정된 양자화 단계값(QS0)을 포함하는 이용가능한 양자화 단계값들의 세트(AQS)가 결정된다(S105). 인터-코딩 예에 대해 사용된 값들과 동일한 값들을 사용하는 경우, 미리결정된 양자화 단계값은 5이고, 그리고 이용가능한 양자화 단계값들의 세트는 AQS = {4, 5, 6, 7}이다. 이용가능한 양자화 단계값들 각각으로 그룹 값(V1)이 나누어지고, 이에 따라 다음과 같은 나머지값이 계산된다(S106).
이러한 예에서, 가장 작은 나머지값을 동일하게 생성하는 양자화 단계값들이 두 개 존재함, 다시 말해 4와 6이 존재하고 이들은 모두 나머지값 2를 초래하고 있음을 알 수 있다. 이들 중 어느 하나가 선택된 양자화 단계값으로서 선택될 수 있다(S107). 만약 이미지 품질이 비트레이트 감소보다 더 높은 우선권(priority)을 갖는다면, 양자화 단계값으로 4가 선택될 수 있다. 하지만, 많은 경우들에서 이미지 품질보다는 비트레이트 감소가 더 높은 우선권을 가질 것이고, 그러한 경우에 양자화 단계값은 6으로 선택돼야 한다. 그 다음에, 픽셀들의 제 1 그룹(22)은 선택된 양자화 단계값을 사용하여 인코딩된다(S108). 동일한 프로세스가 제 1 이미지(20)의 픽셀들의 모든 그룹들에 대해 사용된다. 그 다음에, 인코딩된 이미지 프레임은 저장될 수 있고 그리고/또는 전송될 수 있으며, 제 2 이미지 프레임(40)과 같은 후속 이미지 프레임을 인코딩하기 위한 참조 프레임을 형성하기 위해 디코딩될 수 있다. 그 다음에, 제 2 이미지 프레임(40)의 인코딩은 도 4와 연계되어 앞에서 설명된 인터-프레임 인코딩 방법에 따라 수행될 수 있다.
도 6을 참조하여, 본 발명의 방법을 수행할 수 있는 인코더 시스템(13)이 설명될 것이다. 인코더(13)는 카메라(2) 내에 통합될 수 있거나, 혹은 그렇지 않으면 카메라(2)에 동작가능하게 연결될 수 있다. 인코더(13)는 인코딩될 비디오의 현재 디지털 이미지 프레임 내의 픽셀들을 나타내는 정보를 수신하도록 구성된 수신 모듈(131)을 갖는다. 정보는 이미 논의된 바와 같이, 예를 들어, 픽셀 강도 값들일 수 있다. 더욱이, 인코더는 그룹 값 모듈(132) 및 차이 모듈(133)을 포함하고, 여기서 그룹 값 모듈(132)은, 현재 디지털 이미지 프레임 내의 이웃하는 픽셀들의 그룹들의 그룹 값들을 계산하도록 구성되고, 그리고 차이 모듈(133)은 현재 이미지 프레임 내의 픽셀들의 제 1 그룹과, 참조 프레임 내의 픽셀들의 참조 그룹의 대응하는 그룹 값 간의 차이를 계산하도록 구성된다. 인트라-프레임 인코딩에 있어서, 차이 모듈은 필요하지 않음에 유의해야 한다. 인코더(13)는 또한 이용가능한 양자화 단계값들의 세트를 결정하도록 구성된 단계값 세트 결정 모듈(134)을 갖는다. 앞에서 논의된 바와 같이, 이러한 이용가능한 양자화 단계값들의 세트는 미리결정된 양자화 단계값을 포함하는바, 여기서 미리결정된 양자화 단계값은 레이트 제어기(15)에 의해 설정된 비트레이트 한계에 근거하여 결정된다. 추가적으로, 인코더(13)는, 인트라-코딩을 위해서, 이용가능한 양자화 단계값들 각각으로 픽셀들의 제 1 그룹의 그룹 값을 나누는 나눗셈 이후 각각의 나머지값을 계산하도록 구성된 계산 모듈(135)을 갖는다. 인터-코딩을 위해서, 계산 모듈은 나눗셈에 대한 입력으로서 픽셀들의 제 1 그룹의 그룹 값 자체가 아니라 대신 그룹 값 차이를 취한다. 계산 모듈(135)은 인트라-코딩을 위한 나눗셈 아울러 인터-코딩을 위해 나눗셈인 나눗셈의 양쪽 타입들을 모두 수행할 수 있고, 또는 인트라-코딩을 위한 한 부분 그리고 인터-코딩을 위한 한 부분인 두 개의 부분들로 구성될 수 있다. 인코더(13)의 선택 모듈(136)은 이용가능한 양자화 단계값들의 세트 중 가장 작은 나머지값을 초래하는 양자화 단계값을 선택된 양자화 단계값으로서 선택하도록 구성된다. 더욱이, 인코더(13)는 선택된 양자화 단계값을 사용하여 픽셀들의 제 1 그룹을 인코딩하도록 구성된 인코딩 모듈(137)을 갖는다.
인코더(13)는 소프트웨어, 펌웨어, 하드웨어, 혹은 이들의 임의의 조합으로서 구현될 수 있다.
앞에서 설명된 인코딩 방법들은 컴퓨터-판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서 구현될 수 있으며, 여기서 컴퓨터 판독가능 저장 매체는 프로세서에 의해 실행될 때 본 발명의 방법들을 수행하도록 구성된 명령들을 갖는다. 프로세서는 임의 종류의 프로세서일 수 있는바, 예를 들어, 중앙 프로세싱 유닛(Central Processing Unit, CPU), 그래픽 프로세싱 유닛(Graphics Processing Unit, GPU), 집적 회로 내에 구현되는 맞춤형 프로세싱 디바이스(custom made processing device), ASIC, FPGA, 혹은 개별적 컴포넌트들을 포함하는 로직 회로(logical circuitry)일 수 있다.
본 발명의 기술분야에서 숙련된 사람은 앞에서 설명된 실시예들을 다수의 방식들로 수정할 수 있고, 그리고 앞서의 실시예들에서 제시되는 바와 같은 본 발명의 장점들을 여전히 사용할 수 있음이 이해될 것이다. 예를 들어, 이용가능한 양자화 단계값들의 세트 내에 있는 상이한 양자화 단계값들의 수는 서로 다르게 선택될 수 있다. 앞서의 예들에서는, 미리결정된 양자화 단계값보다 더 작은 하나의 양자화 단계값이 포함되었고, 뿐만 아니라 미리결정된 양자화 단계값보다 더 큰 두 개의 양자화 단계값들이 포함되었다. 많은 상황들에서, 이용가능한 양자화 단계값들의 세트 내에, 미리결정된 양자화 단계값에 추가하여 한 개 혹은 두 개의 더 작은 양자화 단계값들, 그리고 두 개 혹은 세 개의 더 큰 양자화 단계값들을 갖는 것이 적절할 수 있다. 이용가능한 양자화 단계값들의 세트 내의 양자화 단계값들은 반드시 등거리(equidistant)일 필요는 없으며, 또는 하나가 다른 것 뒤에 곧바로 뒤따를 필요도 없다. 예를 들어, 이용가능한 양자화 단계값들의 세트는 {4, 6, 7, 10, 11}일 수 있다.
이용가능한 양자화 단계값들의 세트는, 전체 이미지 프레임에 대해 한번 결정될 수 있거나, 혹은 픽셀들의 각각의 그룹에 대해 개별적으로 결정될 수 있거나, 혹은 픽셀들의 임의 개수의 그룹들에 대해 결정될 수 있다.
앞에서, 이웃하는 픽셀들의 그룹의 그룹 값은 해당 그룹 내의 픽셀들의 픽셀 값들의 평균으로서 계산되었다. 이러한 평균 대신에, 픽셀 값들의 합(sum)이 계산될 수 있다.
더욱이, 그룹 값은 해당 그룹 내의 픽셀들의 픽셀 값들 혹은 강도 값들에 근거하여 계산되는 것으로서 설명되었다. 주파수 도메인에서 그룹 값을 계산하는 것이 또한 가능하다. 픽셀 값들을 주파수 도메인으로 변환하는 경우, 픽셀들의 각각의 블록 혹은 그룹은 다수의 주파수들을 보유할 수 있다. 이러한 것을 예시하기 위해 이제 간략화된 예가 제공될 것이다. 폭이 단지 두 개의 픽셀들이고 높이가 단지 두 개의 픽셀들인 작은 블록 혹은 그룹이 검토될 것인바, 이러한 블록 혹은 그룹은 다음과 같은 픽셀 값들을 갖는다.
이러한 블록은 다음과 같은 가능한 주파수들을 갖는다.
주파수 도메인에서, 이것은 다음과 같은 것을 제공한다.
30은 1, 2, 3, 5, 6, 10, 15, 및 30으로 나누어질 수 있는 반면, 6은 단지 1, 2, 3, 및 6으로만 나누어질 수 있음을 알 수 있다. 따라서, 30과 6이 모두 나누어질 수 있는 가장 큰 양자화 단계값은 6이다. 만약 이러한 경우에, 미리결정된 양자화 단계값이 5이고 그리고 이용가능한 양자화 단계값들의 세트가 {4, 5, 6, 7}로서 결정된다면, 이용가능한 양자화 단계값들 각각으로 그룹 값 을 나눈 나눗셈을 행하면 다음과 같은 계산결과들이 나온다.
이용가능한 양자화 단계값들의 결정된 세트에서, 가장 작은 나머지값을 초래하는 것은 양자화 단계값 6인데, 왜냐하면 이러한 양자화 단계값 6이 양쪽 주파수들 모두에 대해 나머지값 0을 초래하기 때문이다. 일반적으로, 단지 베이스 주파수(base frequency)에 대해서만, 즉 본 경우에서 30의 그룹 값을 생성하는 에 대해서만 그룹 값을 계산하는 것이 적절할 것이다. 주파수들 중 더 많은 주파수들을 고려하는 것이 일부 경우들에서 가능하고 이로울 수 있지만, 많은 경우들에 있어서는 복잡한 계산들로 이어질 수 있고, 이것은 상당량의 컴퓨팅 리소스(computing resource)들을 요구한다.
요약하면, 본 발명의 방법은 이미지 품질을 불필요하게 희생시키지 않으면서 인코더로부터의 출력 비트레이트를 감소시키는 것을 가능하게 함을 알 수 있다. 본 발명의 방법은 후속 이미지 프레임들의 인코딩을 위한 더 좋은 참조 프레임들을 생성하는 것을 가능하게 한다. 양자화 단계값을 현명하게 선택함으로써, 후속하는 이미지 프레임들에서의 인코딩(특히, 이미지 프레임들의 정적 부분들에서의 인코딩)을 위해 더 작은 잔여값들을 초래하는 참조 프레임들이 획득될 수 있다.
앞에서 논의된 바와 같이, 본 발명의 발명자들에 의해 개발된 원리는 인터 모드에서 사용될 수 있을 뿐만 아니라 인트라 모드에서 사용될 수 있다. 혼합된 접근법을 사용하는 것이 또한 가능함에 유의해야 하는데, 이에 따라 이용가능한 양자화 단계값들의 세트 내에서의 각각의 양자화 단계값으로 그룹 값을 나누는 개념은 그림들의 그룹(Group Of Pictures)(이것은 또한 GOP로 지칭됨) 내에서 일부 프레임들에 대해서만 사용되고 동일한 GOP 내의 다른 프레임들에 대해서는 사용되지 않은 것이 또한 가능함에 유의해야 한다. 예를 들어, 본 발명의 원리는 인터-프레임들에 대해서만 사용될 수 있거나, 또는 인트라-프레임들에 대해서만 사용될 수 있다. 본 발명의 원리를 GOP 내의 인터-프레임들 중 일부에 대해서만 사용하고 동일한 GOP 내의 다른 인터-프레임들에 대해서는 사용하지 않는 것이 또한 가능하다. 이러한 경우에, GOP의 초반부에 있는 이미지 프레임들에 본 발명의 방법을 적용하는 것이 이로운데, 왜냐하면 GOP 내의 초반부에 있는 이미지 프레임들은 참조 프레임들을 형성하는데 관련됨으로써 GOP 내의 후속 이미지 프레임들 중 많은 프레임들에게 영향을 미칠 것이기 때문이다. GOP의 끝 부분에 있어서, 각각의 이미지 프레임은 더 적은 후속 이미지 프레임들에 영향을 미칠 것이고, 그리고 참조 프레임들에 더 적은 영향력을 가질 것이다.
앞서의 설명에서, 제어되는 인코딩의 파라미터는 양자화 단계값으로서 지칭되었다. 발명의 배경이 되는 기술 부분에서 언급된 바와 같이, 양자화 단계값은 다른 코텍들에서는 다른 명칭들의 파라미터들에 의해 제어될 수 있다. 예를 들어, H.264 표준(H.264 standard)에서, 양자화 단계값은 0 내지 51의 값들을 취할 수 있는 양자화 파라미터(QP)에 의해 제어된다. H.264의 경우, QP에서의 6의 각각의 증가는 양자화 단계값의 배가(doubling)에 대응한다. 파라미터가 어떻게 지칭되는지에 상관없이, 파라미터의 각각의 값은 양자화 단계값으로 변환될 것이다.
본 발명의 개념은 임의의 특정 코덱에만 한정되는 것이 아니며, 양자화를 이용하는 임의의 코덱과 함께 사용될 수 있다. 예를 들어, 본 발명의 개념은 블록 기반 하이브리드 코덱(block based hybrid codec)과 함께 사용될 수 있는데, 예를 들어, H.265, MPEG-4 파트 2(MPEG-4 Part 2), 혹은 VP9 코덱과 함께 사용될 수 있다.
인코딩할 이미지들은 임의 종류의 카메라에 의해 캡처될 수 있는데, 예를 들어, 가시 광선 카메라(visual light camera), IR 카메라, 혹은 열 카메라(thermal camera)에 의해 캡처될 수 있다. 이미지들은 또한 다른 종류들의 센서들에 의해 캡처될 수 있는데, 예를 들어, 비행-시간 센서(time-of-flight sensor)에 의해 캡처될 수 있다.
디지털 이미지들은 디지털 카메라에 의해 캡처될 수 있고, 또는 디지털 이미지들은 아날로그 카메라에 의해 캡처될 수 있고 디지털화 유닛(digitalization unit)을 사용하여 디지털 포맷으로 변환될 수 있다.
따라서, 본 발명은 제시된 실시예들로만 한정돼서는 안 되며, 오로지 첨부되는 청구항들에 의해서만 정의돼야 한다.
Claims (10)
- 비디오(video)를 인코딩(encoding)하기 위한 방법으로서,
상기 방법은,
인코딩될 비디오의 현재 디지털 이미지 프레임(digital image frame) 내의 픽셀(pixel)들을 나타내는 정보를 수신하는 것과;
상기 현재 디지털 이미지 프레임 내의 이웃하는 픽셀들의 그룹(group)들에 대한 상기 정보의 공간적인 통계적 척도값(spatial statistical measure)을 계산하여 이웃하는 픽셀들의 각각의 그룹에 대한 그룹 값(group value)을 형성하는 것과;
제1의 미리결정된 양자화 단계값(quantization step) 및 적어도 하나의 다른 양자화 단계값을 포함하는 이용가능한 양자화 단계값들의 세트(set)를 결정하는 것을 포함하고,
상기 방법은, 이웃하는 픽셀들의 제 1 그룹에 대해서,
상기 계산된 그룹 값을 이용가능한 양자화 단계값들의 상기 결정된 세트 내의 각각의 양자화 단계값으로 나누는 나눗셈(division)을 수행하여 각각의 양자화 단계값에 대한 상기 나눗셈의 수행 이후 나머지값(remainder)을 계산하는 것과;
인코딩할 때 출력 비트레이트(output bitrate)가 감소되도록 상기 나눗셈을 수행하는 동안 가장 작은 나머지값을 갖는 양자화 단계값을 이용가능한 양자화 단계값들의 상기 결정된 세트로부터 선택하는 것과; 그리고
상기 선택된 양자화 단계값을 사용하여 이웃하는 픽셀들의 상기 제 1 그룹을 인코딩하는 것을 포함하는 것을 특징으로 하는 비디오를 인코딩하기 위한 방법. - 비디오를 인코딩하기 위한 방법으로서,
상기 방법은,
인코딩될 비디오의 현재 디지털 이미지 프레임 내의 픽셀들을 나타내는 정보를 수신하는 것과;
상기 현재 디지털 이미지 프레임 내의 이웃하는 픽셀들의 그룹들에 대한 상기 정보의 공간적인 통계적 척도값을 계산하여 이웃하는 픽셀들의 각각의 그룹에 대한 그룹 값을 형성하는 것과;
제1의 미리결정된 양자화 단계값 및 적어도 하나의 다른 양자화 단계값을 포함하는 이용가능한 양자화 단계값들의 세트를 결정하는 것을 포함하고,
상기 방법은, 이웃하는 픽셀들의 제 1 그룹에 대해서,
이웃하는 픽셀들의 상기 제 1 그룹의 그룹 값과, 참조 프레임(reference frame) 내의 픽셀들의 대응하는 참조 그룹(reference group)의 대응하는 그룹 값 간의 그룹 값 차이(group value difference)를 계산하는 것과;
상기 계산된 그룹 값 차이를 이용가능한 양자화 단계값들의 상기 결정된 세트 내의 각각의 양자화 단계값으로 나누는 나눗셈을 수행하여 각각의 양자화 단계값에 대한 상기 나눗셈의 수행 이후 나머지값을 계산하는 것과;
인코딩할 때 출력 비트레이트가 감소되도록 상기 나눗셈을 수행하는 동안 가장 작은 나머지값을 갖는 양자화 단계값을 이용가능한 양자화 단계값들의 상기 결정된 세트로부터 선택하는 것과; 그리고
상기 선택된 양자화 단계값을 사용하여 이웃하는 픽셀들의 상기 제 1 그룹을 인코딩하는 것을 포함하는 것을 특징으로 하는 비디오를 인코딩하기 위한 방법. - 제2항에 있어서,
상기 참조 프레임은 이전에 인코딩 및 디코딩된 이미지 프레임(previously encoded and decoded image frame)인 것을 특징으로 하는 비디오를 인코딩하기 위한 방법. - 제1항 또는 제2항에 있어서,
이용가능한 양자화 단계값들의 상기 세트는, 상기 미리결정된 양자화 단계값과, 그리고 적어도 하나의 더 큰 양자화 단계값을 포함하고,
상기 적어도 하나의 더 큰 양자화 단계값은 상기 미리결정된 양자화 단계값보다 더 큰 양자화 단계값인 것을 특징으로 하는 비디오를 인코딩하기 위한 방법. - 제1항 또는 제2항에 있어서,
이용가능한 양자화 단계값들의 상기 세트는, 상기 미리결정된 양자화 단계값과, 그리고 적어도 하나의 더 작은 양자화 단계값을 포함하고,
상기 적어도 하나의 더 작은 양자화 단계값은 상기 미리결정된 양자화 단계값보다 더 작은 양자화 단계값인 것을 특징으로 하는 비디오를 인코딩하기 위한 방법. - 제1항 또는 제2항에 있어서,
만약 둘 이상의 이용가능한 양자화 단계값들이, 나눗셈 이후 동등하게 작은 나머지값들을 초래한다면, 상기 둘 이상의 양자화 단계값들 중 가장 큰 양자화 단계값이, 선택된 양자화 단계값으로서 선택되는 것을 특징으로 하는 비디오를 인코딩하기 위한 방법. - 비디오를 인코딩하기 위한 인코더 시스템(encoder system)으로서,
상기 인코더 시스템은,
인코딩될 비디오의 현재 디지털 이미지 프레임 내의 픽셀들을 나타내는 정보를 수신하도록 되어 있는 수신 모듈(receiving module)과;
상기 현재 디지털 이미지 프레임 내의 이웃하는 픽셀들의 그룹들에 대한 상기 정보의 공간적인 통계적 척도값을 계산하여 이웃하는 픽셀들의 각각의 그룹에 대한 그룹 값을 형성하도록 되어 있는 그룹 값 모듈(group value module)과;
제1의 미리결정된 양자화 단계값 및 적어도 하나의 다른 양자화 단계값을 포함하는 이용가능한 양자화 단계값들의 세트를 결정하도록 되어 있는 단계값 세트 결정 모듈(step set determination module)과;
상기 계산된 그룹 값을 이용가능한 양자화 단계값들의 상기 결정된 세트 내의 각각의 양자화 단계값으로 나누는 나눗셈을 수행하여 각각의 양자화 단계값에 대한 상기 나눗셈의 수행 이후 나머지값을 계산하도록 되어 있는 계산 모듈(calculation module)과;
인코딩할 때 출력 비트레이트가 감소되도록 상기 나눗셈을 수행하는 동안 가장 작은 나머지값을 갖는 양자화 단계값을 이용가능한 양자화 단계값들의 상기 결정된 세트로부터 선택하도록 되어 있는 선택 모듈(selection module)과; 그리고
상기 선택된 양자화 단계값을 사용하여 이웃하는 픽셀들의 제 1 그룹을 인코딩하도록 되어 있는 인코딩 모듈(encoding module)을 포함하는 것을 특징으로 하는 비디오를 인코딩하기 위한 인코더 시스템. - 비디오를 인코딩하기 위한 인코더 시스템(encoder system)으로서,
상기 인코더 시스템은,
인코딩될 비디오의 현재 디지털 이미지 프레임 내의 픽셀들을 나타내는 정보를 수신하도록 되어 있는 수신 모듈과;
상기 현재 디지털 이미지 프레임 내의 이웃하는 픽셀들의 그룹들에 대한 상기 정보의 공간적인 통계적 척도값을 계산하여 이웃하는 픽셀들의 각각의 그룹에 대한 그룹 값을 형성하도록 되어 있는 그룹 값 모듈과;
이웃하는 픽셀들의 제 1 그룹의 그룹 값과, 참조 프레임 내의 픽셀들의 대응하는 참조 그룹의 대응하는 그룹 값 간의 그룹 값 차이를 계산하도록 되어 있는 차이 모듈(difference module)과;
제1의 미리결정된 양자화 단계값 및 적어도 하나의 다른 양자화 단계값을 포함하는 이용가능한 양자화 단계값들의 세트를 결정하도록 되어 있는 단계값 세트 결정 모듈과;
상기 그룹 값 차이를 이용가능한 양자화 단계값들의 상기 결정된 세트 내의 각각의 양자화 단계값으로 나누는 나눗셈을 수행하여 각각의 양자화 단계값에 대한 상기 나눗셈의 수행 이후 각각의 나머지값을 계산하도록 되어 있는 계산 모듈과;
인코딩할 때 출력 비트레이트가 감소되도록 상기 나눗셈을 수행하는 동안 가장 작은 나머지값을 갖는 양자화 단계값을 이용가능한 양자화 단계값들의 상기 결정된 세트 내에서 선택하도록 되어 있는 선택 모듈과; 그리고
상기 선택된 양자화 단계값을 사용하여 이웃하는 픽셀들의 상기 제 1 그룹을 인코딩하도록 되어 있는 인코딩 모듈을 포함하는 것을 특징으로 하는 비디오를 인코딩하기 위한 인코더 시스템. - 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 판독가능 저장 매체에는 프로세서에 의해 실행될 때 청구항 제1항 또는 제2항에 기재된 방법을 수행하도록 되어 있는 명령들이 저장되는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
- 청구항 제7항 및 제8항 중 어느 하나의 항에 기재된 인코더 시스템을 포함하는 카메라.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16199449.6 | 2016-11-18 | ||
EP16199449.6A EP3324628B1 (en) | 2016-11-18 | 2016-11-18 | Method and encoder system for encoding video |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180056382A KR20180056382A (ko) | 2018-05-28 |
KR102424258B1 true KR102424258B1 (ko) | 2022-07-25 |
Family
ID=57354184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170150686A KR102424258B1 (ko) | 2016-11-18 | 2017-11-13 | 비디오를 인코딩하기 위한 방법 및 인코더 시스템 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10979711B2 (ko) |
EP (1) | EP3324628B1 (ko) |
JP (1) | JP7020873B2 (ko) |
KR (1) | KR102424258B1 (ko) |
CN (1) | CN108076342B (ko) |
TW (1) | TWI734865B (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3579553B1 (en) * | 2018-06-05 | 2020-05-20 | Axis AB | A method, controller, and system for encoding a sequence of video frames |
US11368692B2 (en) * | 2018-10-31 | 2022-06-21 | Ati Technologies Ulc | Content adaptive quantization strength and bitrate modeling |
US12052530B2 (en) * | 2021-04-23 | 2024-07-30 | Arlo Technologies, Inc. | Electronic monitoring system using video notification |
CN113473131B (zh) * | 2021-07-01 | 2023-12-29 | 成都国科微电子有限公司 | 视频编码码率动态调节方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110019930A1 (en) * | 2009-07-27 | 2011-01-27 | Kyohei Koyabu | Image encoding device and image encoding method |
US20110182524A1 (en) * | 2008-06-27 | 2011-07-28 | Shojiro Shibata | Image processing device and image processing method |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3954656B2 (ja) * | 1994-09-29 | 2007-08-08 | ソニー株式会社 | 画像符号化装置及び方法 |
JP3235761B2 (ja) * | 1994-10-31 | 2001-12-04 | 日本ビクター株式会社 | 高能率符号化装置 |
KR100599017B1 (ko) * | 1996-12-12 | 2006-12-13 | 소니 가부시끼 가이샤 | 영상 데이터 압축 장치 및 그 방법 |
JP2002204449A (ja) * | 2000-12-28 | 2002-07-19 | Pioneer Electronic Corp | 量子化単位設定装置及び量子化単位設定方法、符号化装置及び符号化方法並びに情報記録媒体 |
GB2387058A (en) * | 2002-03-28 | 2003-10-01 | Sony Uk Ltd | Method of selecting a quantisation parameter using trial parameters |
US7535959B2 (en) | 2003-10-16 | 2009-05-19 | Nvidia Corporation | Apparatus, system, and method for video encoder rate control |
WO2006106032A1 (en) * | 2005-04-05 | 2006-10-12 | Thomson Licensing | Method for locally adjusting a quantization step |
US8155189B2 (en) | 2005-10-19 | 2012-04-10 | Freescale Semiconductor, Inc. | System and method of coding mode decision for video encoding |
TWI392372B (zh) * | 2007-09-12 | 2013-04-01 | Sony Corp | Image processing apparatus and image processing method |
JP2009071700A (ja) * | 2007-09-14 | 2009-04-02 | Sony Corp | 符号化装置および方法、並びにプログラム |
US8363729B1 (en) * | 2008-11-06 | 2013-01-29 | Marvell International Ltd. | Visual data compression algorithm with parallel processing capability |
US8582645B2 (en) | 2009-06-11 | 2013-11-12 | Texas Instruments Incorporated | Reducing flicker in the display of video streams |
JP5331024B2 (ja) * | 2010-02-16 | 2013-10-30 | 株式会社メガチップス | 画像符号化装置及び画像変換装置 |
US20110268180A1 (en) * | 2010-04-29 | 2011-11-03 | Naveen Srinivasamurthy | Method and System for Low Complexity Adaptive Quantization |
US8804822B2 (en) | 2010-10-13 | 2014-08-12 | Geo Semiconductor Inc. | I-frame size estimation based on edge strength |
US9854275B2 (en) * | 2011-06-25 | 2017-12-26 | Qualcomm Incorporated | Quantization in video coding |
US20150071343A1 (en) | 2013-09-12 | 2015-03-12 | Magnum Semiconductor, Inc. | Methods and apparatuses including an encoding system with temporally adaptive quantization |
EP3021579B1 (en) * | 2014-11-14 | 2016-10-12 | Axis AB | Method and encoder system for encoding video |
-
2016
- 2016-11-18 EP EP16199449.6A patent/EP3324628B1/en active Active
-
2017
- 2017-11-13 KR KR1020170150686A patent/KR102424258B1/ko active IP Right Grant
- 2017-11-13 CN CN201711116812.2A patent/CN108076342B/zh active Active
- 2017-11-14 JP JP2017218711A patent/JP7020873B2/ja active Active
- 2017-11-17 US US15/816,538 patent/US10979711B2/en active Active
- 2017-11-17 TW TW106139836A patent/TWI734865B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110182524A1 (en) * | 2008-06-27 | 2011-07-28 | Shojiro Shibata | Image processing device and image processing method |
US20110019930A1 (en) * | 2009-07-27 | 2011-01-27 | Kyohei Koyabu | Image encoding device and image encoding method |
Also Published As
Publication number | Publication date |
---|---|
US20180146196A1 (en) | 2018-05-24 |
CN108076342B (zh) | 2022-04-26 |
JP2018113671A (ja) | 2018-07-19 |
TW201820867A (zh) | 2018-06-01 |
KR20180056382A (ko) | 2018-05-28 |
CN108076342A (zh) | 2018-05-25 |
EP3324628A1 (en) | 2018-05-23 |
JP7020873B2 (ja) | 2022-02-16 |
EP3324628B1 (en) | 2021-12-29 |
TWI734865B (zh) | 2021-08-01 |
US10979711B2 (en) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8077772B2 (en) | Coding background blocks in video coding that includes coding as skipped | |
CN108737825B (zh) | 视频数据编码方法、装置、计算机设备和存储介质 | |
KR101960006B1 (ko) | 비디오 인코딩 방법 및 비디오 인코더 시스템 | |
US11356672B2 (en) | System and method for controlling video coding at frame level | |
JP6496234B2 (ja) | ビデオの符号化方法及びビデオ符号化システム | |
KR102424258B1 (ko) | 비디오를 인코딩하기 위한 방법 및 인코더 시스템 | |
US20070199011A1 (en) | System and method for high quality AVC encoding | |
KR20170063895A (ko) | 비디오 코딩을 위한 해시 기반 인코더 결정 | |
US11134250B2 (en) | System and method for controlling video coding within image frame | |
US10341675B2 (en) | Video encoding method and video encoder system | |
CN111182310A (zh) | 视频处理方法、装置、计算机可读介质及电子设备 | |
JP2006135557A (ja) | 動画像符号化装置 | |
US20130077674A1 (en) | Method and apparatus for encoding moving picture | |
KR20160105203A (ko) | 멀티미디어 코덱, 상기 멀티미디어 코덱을 포함하는 애플리케이션 프로세서, 및 상기 애플리케이션 프로세서의 동작 방법 | |
JP4942208B2 (ja) | 符号化装置 | |
JP3858520B2 (ja) | 動画像符号化装置及びその方法 | |
JP5585271B2 (ja) | 動画像符号化装置 | |
KR101697757B1 (ko) | 영상 감시시스템의 디스플레이 채널 결정 시스템 및 이를 이용한 채널 결정방법 | |
CN105721874A (zh) | 一种并行高效视频编码的帧内闪烁减弱法 | |
JP6289103B2 (ja) | 画像処理装置及びその制御方法、並びに、プログラム | |
Hu | Bit rate control for real-time multipoint video conferencing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |