KR20190113546A - 비디오 스트림에서 프레임들의 시퀀스를 인코딩하기 위한 방법, 장치 및 시스템 - Google Patents

비디오 스트림에서 프레임들의 시퀀스를 인코딩하기 위한 방법, 장치 및 시스템 Download PDF

Info

Publication number
KR20190113546A
KR20190113546A KR1020190019433A KR20190019433A KR20190113546A KR 20190113546 A KR20190113546 A KR 20190113546A KR 1020190019433 A KR1020190019433 A KR 1020190019433A KR 20190019433 A KR20190019433 A KR 20190019433A KR 20190113546 A KR20190113546 A KR 20190113546A
Authority
KR
South Korea
Prior art keywords
frame
encoded
frames
empty
sequence
Prior art date
Application number
KR1020190019433A
Other languages
English (en)
Other versions
KR102113948B1 (ko
Inventor
에드팜 빅터
아르도 브존
Original Assignee
엑시스 에이비
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엑시스 에이비 filed Critical 엑시스 에이비
Publication of KR20190113546A publication Critical patent/KR20190113546A/ko
Application granted granted Critical
Publication of KR102113948B1 publication Critical patent/KR102113948B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 비디오 인코딩 분야에 관한 것이다. 특히, 본 발명은 프레임들의 시퀀스를 인코딩하기 위한 방법, 장치 및 시스템에 관한 것으로, 프레임들의 시퀀스에서의 초기 프레임의 이미지 데이터의 모션 레벨이 모션 레벨 임계값 이하인 것으로 결정된다. 본 발명에서 기술된 인코딩 방법은 인코딩된 비디오 스트림이 디코딩되고 표시될 때 부자연스럽거나 굳어 보이는 것을 회피하면서, 인코딩된 프레임들의 시퀀스에 대해 비트 레이트를 감소시킬 수 있다.

Description

비디오 스트림에서 프레임들의 시퀀스를 인코딩하기 위한 방법, 장치 및 시스템{METHOD, DEVICE AND SYSTEM FOR METHOD OF ENCODING A SEQUENCE OF FRAMES IN A VIDEO STREAM}
본 발명은 비디오 인코딩 분야에 관한 것이다. 특히, 본 발명은 프레임들의 시퀀스를 인코딩하기 위한 방법, 인코더 및 시스템에 관한 것으로, 상기 프레임들의 시퀀스에서의 초기 프레임의 이미지 데이터의 모션 레벨(motion level)이 모션 레벨 임계값(motion level threshold) 이하인 것으로 결정되는 것을 특징으로 한다.
비디오 카메라는 일반적으로 감시 목적을 위해 사용된다. 카메라에 의해 모니터링된 장면은 일정 기간 동안 이동하는 물체를 포함할 수 있고, 이에 의해 상기 카메라에 의해 캡쳐된 비디오에 모션을 도입한다. 다른 기간 동안, 상기 장면은 정지된 물체만을 포함할 수 있으며, 이에 따라 상기 카메라에 의해 캡쳐된 비디오는 모션이 부족하게 되며, 즉 상기 캡쳐된 비디오는 스틸 비디오(still video)일 것이다.
비디오 스트림들을 인코딩할 때 대역폭 효율(bandwidth efficiency)이 종종 문제가 된다. 바람직하게, 상기 비디오 스트림은 (너무) 현저한 방식으로 상기 인코딩된 비디오 스트림의 품질에 영향을 미치지 않으면서 상기 비디오 스트림의 비트 레이트(bit rate)를 감소시키도록 인코딩된다. 대역폭 효율적인 방식으로 상기 장면에서의 다양한 양의 모션을 처리하기 위해, 인코더는 상기 프레임들에서 묘사된 바와 같이 상기 장면에서의 모션의 양에 따라 상기 인코딩된 비디오 스트림의 프레임 레이트를 동적으로 조절할 수 있다. 다시 말해, 프레임들에서(및 따라서 상기 장면에서) 모션이 있는 기간 동안, 프레임들에서 모션이 없거나 거의 없을 때와 비교하여 상기 인코딩된 비디오 스트림에서의 높은 프레임 레이트가 사용될 수 있다. 예를 들어, 프레임들에서 모션이 제한적이거나 전혀없는 경우, 상기 프레임 레이트는 1Hz 정도로 낮을 수 있고, 이는 상기 인코딩된 비디오 스트림에서 초당 프레임이 하나만 존재함을 의미한다. 이러한 낮은 프레임 레이트에서, 비디오에서 시간적 노이즈(temporal noise)가 거의 발생하지 않는다. 결과적으로, 디코딩된 비디오를 보는 사용자는 디코딩된 비디오가 부자연스럽고 경직되게 보이는 것을 발견할 것이고, 사용자는 카메라의 하드웨어나 소프트웨어 고장(malfunction)이 있는지 여부를 염려하기 시작할 수 있다.
대역폭 효율적인 방식으로 장면에서의 다양한 양의 모션을 처리하는 또 다른 방법은 인코더에 의해 적용되는 압축 수준이 이미지 내용물(contents)의 중요도(importance)에 따라 달라지는 인코딩 기술을 사용하는 것이다. 예를 들어, 이동하는 물체를 묘사하는 비디오 프레임의 부분은 모션이 존재하지 않는 비디오 프레임 부분보다 낮은 압축으로 인코딩될 수 있다. 특히, 모션이 존재하지 않는 비디오 프레임 부분은 종종 스킵 블록(skip block) 또는 P-스킵 블록으로 지칭되는 빈 블록(empty block)을 사용하여 코딩될 수 있다. 장면에서 모션이 없거나 제한된 양의 모션이 있는 시간 동안, 상기 프레임은 따라서 대부분 빈 블록들로 인코딩될 것이다. 빈 블록은 일반적으로 이전 프레임에서 대응 블록의 복사본(copy)으로 표시되므로, 이는 비디오에서 시간적 노이즈가 거의 발생하지 않는 효과가 있다. 따라서, 비디오를 보는 사용자는 부자연스럽고 경직되게 보이는 것을 발견할 것이고, 사용자는 카메라의 하드웨어 또는 소프트웨어 고장이 있는지 여부를 염려하기 시작할 수 있다.
따라서, 인코딩된 비디오 스트림에서 낮은 프레임 레이트를 사용하거나, 상기에서 설명된 바와 같이 복수의 빈 블록들을 사용하여 비디오 스트림을 인코딩하는 것은 시간적 노이즈가 없기 때문에 비디오에 인공 정지(artificial stillness)를 도입할 수 있다. 높은 프레임 레이트에서 캡쳐되고 이동하는 장면의 비디오와 유사하게 인코딩되는 정적 장면의 비디오(따라서 인코딩된 비디오의 비트 레이트를 증가)가 이미지 센서에서의 잡음으로 인한 시간적 노이즈를 여전히 포함할 수 있지만, 위에서 설명된 바와 같은 대역폭 효율적인 방식으로 비디오를 인코딩할 때 사용되는 프레임 레이트 또는 인코딩 방식의 선택에 의해 야기되기 때문에, 이러한 인공 정지는 장면 자체에서의 모션의 부족으로 인한 것은 아니다.
따라서 이러한 맥락에서 개선이 필요하다.
상기 관점에서, 따라서 본 발명의 목적은 전술한 문제점들을 극복하거나 적어도 완화시키는 것이다. 특히, 대역폭 효율적인 방식으로 낮은 모션을 갖는 비디오 스트림을 인코딩하는 방법을 제공하는 것을 목적으로 하고, 상기 인코딩된 비디오 스트림은 디코딩되거나 표시될 때 부자연스럽거나 경직된 것으로 보이지 않는다는 것이다.
본 발명의 제1 양태에 따르면, 비디오 스트림에서 프레임들의 시퀀스를 인코딩하는 방법이 제공되는데, 상기 방법은: 상기 프레임들의 시퀀스에서의 초기 프레임의 이미지 데이터의 모션 레벨(motion level)을 모션 레벨 임계값(motion level threshold) 이하인 것으로 결정하는 단계; 복수의 참조 프레임들(reference frames)을 인코딩하는 단계(상기 복수의 인코딩된 참조 프레임들의 각각의 참조 프레임은 인트라-프레임 인코딩된 프레임(intra-frame encoded frame) 또는 인터-프레임 인코딩된 프레임(inter-frame encoded frame)임); 복수의 빈 프레임들을 인코딩하는 단계(빈 프레임은 빈 프레임으로서 인코딩될 각각의 프레임에 대해:
· 상기 복수의 인코딩된 참조 프레임들 중에서 인코딩된 참조 프레임을 선택하는 단계;
· 상기 선택된 참조 프레임에 대한 직접 또는 간접적인 참조를 갖는 상기 빈 프레임을 인코딩하는 단계에 의해, 스킵 블록으로 인코딩되는 매크로블록(macroblock) 및 상기 비디오 스트림에서의 다른 프레임에 대한 참조(reference)를 포함함)를 포함하고,
상기 인코딩된 프레임들의 시퀀스에서 적어도 한쌍의 연속적인 빈 프레임들에 대해, 상기 쌍에서의 제1 빈 프레임에 대해 상기 선택된 참조 프레임은 상기 쌍에서의 제2 빈 프레임에 대해 상기 선택된 참조 프레임과 상이한 것을 특징으로 한다.
상기 프레임들의 시퀀스에서의 초기 프레임의 이미지 데이터의 모션 레벨을 모션 레벨 임계값 이하인 것으로 결정하는 단계는 임의의 적절한 방식으로 수행될 수 있다. 상기 모션 레벨은 예를 들어, 상기 프레임들의 시퀀스에서의 초기 프레임의 이미지 데이터를 상기 비디오 스트림에서의 이전 프레임의 이미지 데이터와 비교함으로써 계산(compute)될 수 있다. 일 실시 형태에서, 상기 초기 프레임의 모션 레벨이 수신되고, 모션 레벨 임계값과 비교된다. 다른 실시 형태에서, 상기 비교는 이미 수행되고, 상기 비교의 결과는 예를 들어, 불리언 방식(Boolean)(참 또는 거짓)으로서 수신된다.
본 발명에서 사용된 바와 같이, "빈 프레임(empty frame)"은 일반적으로 상기 인코딩된 프레임의 매크로블록(MB)들 중 적어도 일부에 대해 스킵 블록(P-스킵 블록, 빈 블록 등)을 사용하여 인코딩되는 프레임을 의미한다. 일부 실시 형태들에서, 상기 빈 프레임의 대부분의 MB들은 스킵 블록들로서 인코딩된다. 또 다른 실시 형태에서, 모든 MB들은 스킵 블록으로 설정/인코딩된다. 또한, 빈 프레임은 상기 비디오 스트림에서 다른 프레임에 대한 참조를 포함한다. 다시 말해, 상기 빈 프레임은 스킵 블록으로서 인코딩되는 적어도 하나의 MB를 갖는 인터 인코딩된 프레임이다.
본 발명은 상기 빈 프레임들의 참조 프레임들을 신중하게 선택함으로써, 인공 정지를 감소시키는 상기 인코딩된 프레임들의 시퀀스에 시간적 노이즈가 도입될 수 있다는 사실에 기초한다. 이미지 데이터의 상기 모션 레벨이 모션 레벨 임계값 이하인 것으로 결정되면, 이는 따라서 비트 레이트를 감소시키는 방식(그러나 여전히 상기 인코딩된 스트림의 프레임 레이트를 온전하게 유지함)으로 빈 프레임들의 컨셉(concept)을 사용하여 프레임들의 시퀀스를 인코딩할 수 있게 하며, 이는 통상적인 (종래) 방식(예를 들어, 초기 I-프레임 및 스킵 블록없는 적어도 하나의 후속 P-프레임)으로 복수의 참조 프레임들을 먼저 인코딩함으로써 달성될 수 있다. 상기 후속 빈 프레임들은 그런 다음 상기 인코딩된 프레임들의 시퀀스에서의 한쌍의 연속적인 빈 프레임들이 참조 프레임들의 상이한 것들을 참조하도록 인코딩된다. 상기 참조는 하기에서 추가로 설명되는 바와 같이 직접 또는 간접적일 수 있다. 즉, 제1 빈 프레임에 바로 뒤따르는 상기 인코딩된 프레임들의 시퀀스에서의 제2 빈 프레임에 대해, 상기 제1 빈 프레임 및 상기 제2 빈 프레임에 대한 상기 참조 프레임들은 상이하다. 일반적으로, 종래 기술에서, 빈 프레임(예를 들어, 상기 빈 프레임들에서의 스킵 블록들)은 상기 인코딩된 시퀀스 프레임에서 바로 이전의 프레임을 참조한다. 결과적으로, 빈 프레임에 바로 뒤따르는 상기 인코딩된 프레임들의 시퀀스에서의 다른 빈 프레임은 동일한 참조 프레임를 참조할 것이다. 즉, 상기 제2 빈 프레임은 차례로 상기 참조 프레임을 참조하는 상기 제1 빈 프레임을 간접적으로 참조함으로써 상기 제1 빈 프레임과 동일한 참조를 참조할 것이다. 따라서, 상기 두개의 빈 프레임들에서 대응하는 스킵 블록들은 상기 참조 프레임에서 정확하게 동일한 MB를 참조하고, 따라서 나중에 디코딩된 비디오 스트림에서 정확하게 동일한 이미지 데이터로서 디코딩될 것이며, 이에 따라 상기 디코딩된 비디오 스트림으로 인공 정지를 도입한다. 그러나, 본 발명에 개시된 발명적인 컨셉을 사용하여, 상기 빈 프레임들에서 대응하는 MB들은 참조 프레임들로서 인코딩되는 프레임들의 시퀀스에서 상기 프레임들을 켭쳐할 때 상기 이미지 센서에서의 적어도 노이즈로 인한 시간적 노이즈를 포함할 것이다. 소위 "컴포트 노이즈(comfort noise)"는 상기 노이즈를 결정하거나 픽셀 값들 등을 조절하여 "위조(fake)" 노이즈를 포함할 어떤 필요 없이 상기 인코딩된 비디오 스트림에 포함될 것이지만, 대신 본 발명에서 설명된 바와 같이 상기 빈 프레임들을 구현하는 것의 결과일 것이다.
일부 실시 형태에 따르면, 상기 인코딩된 프레임들의 시퀀스에서의 연속적인 빈 프레임들의 각각의 쌍에 대해, 상기 쌍에서의 제1 빈 프레임에 대해 상기 선택된 참조 프레임은 상기 쌍에서의 제2 빈 프레임에 대해 상기 선택된 참조 프레임과 상이하다. 결과적으로, 빈 프레임에 바로 뒤이어 인코딩된 프레임들의 시퀀스에서의 다른 빈 프레임에서의 대응하는 MB들이 나중에 디코딩되는 비디오 스트림에서 정확하게 동일한 이미지 데이터로서 디코딩될 것이 아니기 때문에, 상기 인공 정지는 추가로 감소될 수 있다.
일부 실시 형태에 따르면, 빈 프레임으로서 인코딩될 제1 프레임에 대해, 상기 프레임은 상기 프레임들의 시퀀스에서의 복수의 참조 프레임들 중에서 제1 인코딩된 참조 프레임에 바로 후속되고, 상기 복수의 인코딩된 참조 프레임들 중에서 인코딩된 참조 프레임을 선택하는 단계는 상기 제1 인코딩된 참조 프레임과 상이한 상기 복수의 인코딩된 참조 프레임들 중에서 인코딩된 참조 프레임을 선택하는 단계를 포함한다. 즉, 이러한 실시 형태에서, 빈 프레임은 상기 프레임들의 시퀀스에서 바로 이전의 빈 프레임인 참조 프레임을 참조하지 않을 수 있다. 바람직하게, 상기 인공 정지는 더 감소될 수 있다.
일부 실시 형태에 따르면, 상기 복수의 참조 프레임들은 하나 이상의 인터-프레임 인코딩된 프레임들을 포함하고, 상기 방법은 상기 하나 이상의 인터-프레임 인코딩된 프레임들의 모든 모션 벡터들을 0으로 설정하는 단계를 더 포함한다. 상기 프레임들의 시퀀스는 매우 낮은 모션의 레벨을 포함하기 때문에, 상기 모션 벡터들을 생성할 상기 인터-프레임 인코딩된 프레임에 의해 참조되는 상기 프레임에서의 대응 MB들을 검색하기 위한 블록 매칭 알고리즘(block matching algorithm)을 수행할 필요가 제한된다. 대신, 상기 모션 벡터는 인코딩 과정에 필요한 처리 전력을 감소시킬 수 있고, 증가된 QP 값이 상기 인터-프레임 인코딩된 프레임에 사용될 수 있게 하여, 결과적으로 상기 인코딩된 프레임들의 시퀀스의 비트 레이트를 추가로 감소시킨다.
일부 실시 형태에 따르면, 적어도 하나의 빈 프레임에 대해, 상기 빈 프레임의 인코딩은: 상기 인코딩된 참조 프레임들 중에서 인코딩된 참조 프레임을 선택하는 단계(상기 선택된 인코딩된 참조 프레임은 다른 인코딩된 빈 프레임에 의해 직접적으로 참조됨); 및 상기 다른 인코딩된 빈 프레임에 대한 참조를 갖는 빈 프레임을 인코딩하는 단계를 포함한다.
즉, 선택된 참조 프레임에 대한 상기 빈 프레임에서의 참조는 상기 선택된 참조 프레임을 참조하는 이전에 인코딩된 빈 프레임을 통해 간접적일 수 있다. 바람직하게, 이는 상기 인코더에 일시적으로 저장되는 프레임들을 더 적게 필요로 하며, 일시적으로 저장된 프레임들은 인터-프레임 인코딩된 프레임에 의한 참조를 위해 사용되도록 저장된다.
일부 실시 형태에 따르면, 인코딩된 빈 프레임은 모든 매크로블록들이 스킵 블록으로 설정되는 인터-프레임 인코딩된 프레임의 형태를 갖는다. 결과적으로, 상기 인코딩된 빈 프레임은 이미지 데이터 또는 모션 벡터를 포함하지 않고 상기 빈 프레임을 디코딩할 때 나타내어지는 이미지 데이터가 취할 상기 선택된 참조 프레임에 대한 참조만이 포함될 것이기 때문에, 상기 인코딩된 프레임들의 시퀀스의 비트 레이트가 추가로 감소될 수 있다. 즉, 상기 빈 프레임들은 업데이트된 데이터 없이 인터-프레임 인코딩된 프레임들이다.
일부 실시 형태에 따르면, 상기 방법은 프레임들의 시퀀스의 프레임을 인코딩하기 전에, 상기 프레임의 이미지 데이터에 대한 모션 레벨을 수신하고, 상기 모션 레벨이 상기 모션 레벨 임계값 이하인지 여부를 결정하는 단계; 상기 모션 레벨이 상기 임계값 모션 레벨 이하인 것으로 결정하면, 상기 프레임을 빈 프레임으로서 인코딩하는 단계; 및 상기 모션 레벨이 상기 임계값 모션 레벨 이상인 것으로 결정하면, 상기 프레임을 인터-프레임 인코딩된 프레임 또는 인트라-프레임 인코딩된 프레임으로 인코딩하는 단계를 더 포함한다. 이러한 실시 형태에서, 캡쳐되는 장면의 내용물(content)이 갑자기 이동하기 시작하여, 상기 비디오 스트림에서의 프레임들의 이미지 내용물의 모션 레벨을 증가시키는 경우, 빈 프레임으로서 인코딩되는 프레임이 인터-프레임 인코딩된 프레임 또는 인트라-프레임 인코딩된 프레임으로서 대신 인코딩될 수 있다(즉, 임의의 스킵 블록 없이). 이러한 실시 형태는 상기 인코딩 방법의 유연성을 증가시킨다.
일부 실시 형태에 따르면, 상기 프레임들의 시퀀스의 초기 프레임은 인트라-프레임 인코딩된 참조 프레임으로서 인코딩되고, 상기 프레임들의 시퀀스에서의 초기 프레임의 바로 후속의 하나 이상의 프레임들은 인터-프레임 인코딩된 참조 프레임으로서 인코딩된다.
일부 실시 형태에 따르면, 상기 인코딩된 참조 프레임들은 적어도 두개의 인터-프레임 인코딩된 프레임들을 포함한다. 바람직하게, 이는 상기 빈 프레임들에서의 노이즈의 반복을 현저히 감소시킬 수 있고, 따라서 상기 빈 프레임들에서 보다 현실적인 노이즈를 초래한다.
일부 실시 형태에 따르면, 인코딩된 참조 프레임을 선택하는 단계는 랜덤 함수(random function)를 사용하여 수행된다. 바람직하게, 상기 인코더가 참조 프레임들의 선택 단계에 대한 임의의 미리 결정된 선택 시퀀스를 저장할 필요가 없으므로, 이는 상기 인코딩 방법의 복잡성을 감소시킨다. 또한, 이러한 랜덤 함수는 본질적으로 랜덤 방식으로 이용 가능한 참조 프레임들 중에서 선택하기 때문에, 상기 참조 프레임들의 수는 무의미하다.
일부 실시 형태에 따르면, 인코딩된 참조 프레임을 선택하는 단계는 미리 결정된 선택 시퀀스에 따라 수행된다. 이러한 시퀀스는 테이블 또는 유사물로서 상기 인코더에 저장될 수 있다. 이러한 경우, 이용 가능한 참조 프레임들의 각각의 수에 대해 하나의 이러한 시퀀스가 존재할 수 있다. 다른 실시 형태에서, 상기 미리 결정된 선택 시퀀스는 알고리즘의 형태, 예를 들어 모듈로 연산(modulo operation)이다.
일부 실시 형태에 따라, 프레임을 빈 프레임으로서 인코딩하는 단계는 상기 인코딩된 참조 프레임들 중에서 시간적으로 이전의 인코딩된 참조 프레임을 선택하는 단계를 포함한다. 즉, 상기 빈 프레임을 P-프레임과 비교될 수 있다. 선택적으로 또는 부가적으로, 상기 인코딩된 참조 프레임은 시간적으로 후속하는 프레임, 예를 들어, B-프레임일 수 있다.
본 발명의 제2 양태에 따르면, 상기 목적은 처리 능력을 갖는 장치에 의해 실행될 때 상기 제1 양태의 방법을 수행하도록 적용된 명령어들을 갖는 컴퓨터 판독 가능 저장 매체를 포함하는 컴퓨터 프로그램 제품에 의해 달성된다.
본 발명의 제3 양태에 따르면, 상기 목적은 비디오 스트림에서 프레임들의 시퀀스를 인코딩하기 위해 적용된 장치에 의해 달성되는데, 상기 장치는 상기 프레임들의 시퀀스에서의 초기 프레임의 이미지 데이터의 모션 레벨을 모션 레벨 임계값 이하인 것으로 결정하고(상기 복수의 인코딩된 참조 프레임들의 각각의 참조 프레임은 인트라-프레임 인코딩된 프레임 또는 인터-프레임 인코딩된 프레임임); 복수의 빈 프레임들을 인코딩하도록(빈 프레임은 빈 프레임으로서 인코딩될 각각의 프레임에 대해,
- 상기 인코딩된 참조 프레임들 중에서 인코딩된 참조 프레임을 선택하는 단계;
- 상기 선택된 참조 프레임에 대한 직접 또는 간접적인 참조를 갖는 상기 빈 프레임을 인코딩하는 단계에 의해, 스킵 블록으로서 인코딩되는 매크로블록 및 상기 비디오 스트림에서의 다른 프레임에 대한 참조를 포함함) 구성된 프로세서를 포함하고,
상기 인코딩된 프레임들의 시퀀스에서의 적어도 한쌍의 연속적인 빈 프레임들에 대해, 상기 쌍에서의 제1 빈 프레임에 대해 선택된 참조 프레임은 상기 쌍에서의 제2 빈 프레임에 대해 선택된 참조 프레임과 상이한 것을 특징으로 한다.
본 발명의 제4 양태에 따르면, 상기 목적은 장면의 데이터를 연속적으로 캡쳐하고, 상기 캡쳐된 데이터에 기초하여 프레임들의 시퀀스를 포함하는 비디오 스트림을 생성하는 제1 장치; 상기 비디오 스트림의 각각의 프레임에 대한 모션 레벨을 결정하도록 적용된 제2 장치; 및 상기 프레임들의 시퀀스와 상기 프레임들의 시퀀스에 대한 상기 결정된 모션 레벨들을 수신하도록 적용된 제3 양태에 따른 제3 장치를 포함하는 장치에 의해 달성된다.
일부 실시 형태에 따르면, 상기 제1, 제2 및 제3 장치는 이미지 캡쳐 장치, 예를 들어, 비디오 카메라에서 구현된다. 다른 실시 형태에서, 상기 제1 장치는 상기 이미지 캡쳐 장치이고, 상기 제2 장치는 별도로 배치된 비디오 분석 유닛이며, 상기 제3 장치는 별도로 배치된 비디오 인코더 유닛이다.
상기 제2, 제3 및 제4 양태는 일반적으로 상기 제1 양태와 동일한 특징 및 이점을 가질 수 있다. 본 발명은 달리 명시적으로 언급되지 않는 한 특징들의 모든 가능한 조합에 관한 것임을 유의한다.
본 발명의 상기 특징 및 이점뿐만 아니라 추가적인 목적, 특징 및 이점은 첨부된 도면을 참조하여 본 발명의 바람직한 실시 형태에 대한 다음의 예시적이고 비-제한적인 상세한 설명을 통해 더 잘 이해될 것이며, 동일한 참조 번호는 유사한 요소에 대해 사용된다.
도 1은 낮은 양의 모션이 결정되는 프레임들의 시퀀스를 인코딩하는 공지된 방법을 나타낸다.
도 2는 본 발명의 제1 실시 형태에 따른 낮은 양의 모션이 결정되는 프레임들의 시퀀스를 인코딩하는 방법을 나타낸다.
도 3은 본 발명의 제2 실시 형태에 따른 낮은 양의 모션이 결정되는 프레임들의 시퀀스를 인코딩하는 방법을 나타낸다.
도 4는 본 발명의 제2 실시 형태에 따른 낮은 양의 모션이 결정되는 프레임들의 시퀀스를 인코딩하는 방법을 나타낸다.
도 5는 일부 실시 형태에 따른 프레임들의 시퀀스를 인코딩하는 순서도를 나타낸다.
도 6은 장면의 데이터를 캡쳐하고, 장면의 내용물의 모션 레벨을 결정하며, 장면을 묘사하는 프레임들의 시퀀스를 인코딩하도록 적용된 시스템을 나타낸다.
이하, 본 발명의 실시 형태를 나타내는 첨부된 도면을 참조하여 보다 완전하게 설명한다. 본 발명에서 개시된 시스템 및 장치는 작동 동안 설명될 것이다.
도 1은 종래 기술에 따른 프레임들의 시퀀스를 인코딩하는 방법을 나타낸다. 전술한 바와 같이, 캡쳐되는 장면에서 모션의 양이 없거나 양이 제한될 때의 기간 동안, 대역폭을 절약하는 하나의 방법(상기 인코딩된 프레임 시퀀스의 비트 레이트를 감소하거나 최적화함)은 프레임의 일부를 빈 프레임으로서, 즉 적어도 일부의 빈 블록(스킵 블록, P-스킵 블록 등)으로 인코딩될 수 있다. 이들 프레임들은 이후 도면에서 "E"로 나타낸다. 도 1에서, 프레임들(100)의 시퀀스에서의 제1 프레임은 I-프레임(도면에서 "I"로 표시됨)으로서 인코딩되고, 나머지 프레임들(100)은 프레임들(100)의 시퀀스에서 바로 이전 프레임을 참조하여 빈 프레임들로서 인코딩되며, 따라서 모두는 I-프레임에 대한 직접 또는 간접적인 참조를 갖는다. 이는 모든 프레임들(100)이 제1 프레임(즉, I-프레임)의 복사본으로서 표시될 것이기 때문에 비디오에서 시간적 노이즈가 거의 또는 전혀 없는 효과를 가질 것이다. 따라서, 프레임들(100)로 나타나는 비디오를 시청하는 사용자는 부자연스럽고 경직되게 보이며, 사용자는 카메라에 하드웨어 또는 소프트웨어 고장이 있는지를 염려하기 시작할 수 있다. 이러한 의심은 귀중한 시간을 차지하는 물리적으로 카메라를 검사하도록 사용자를 강요할 수 있고, 카메라가 접근하기 어려운 장소에 설치된다면 어려울 수 있다.
장면이 완전히 정지된 경우(예를 들어, 밤에 빈 기차역)일지라도, 캡쳐된 프레임들의 시퀀스에서의 시간적 노이즈가 이미지 센서에서의 노이즈로 인해 여전히 존재한다. 켭쳐된 이미지 데이터에서의 이러한 고유한 노이즈 레벨은 프레임들을 인코딩할 때 이용될 수 있다. 하기에서, 프레임들의 시퀀스를 인코딩하는 방법의 일부 예가 설명될 것이다. 그러나, 이들 모두는 공통적으로 적어도 두가지 특징이 있다. 첫째, 복수의 참조 프레임들이 인코딩되고, 이는 인코딩된 빈 프레임으로 나타낼 수 있다. 이들 참조 프레임들은 보통의 방식, 예를 들어 I-프레임에 뒤이어 I-프레임을 참조하는 적어도 하나의 P-프레임(또는 복수의 P-프레임들의 경우에서의 다른 P-프레임)으로 인코딩되고, 참조 프레임들은 바람직하게 임의의 스킵 블록 없이 또는 적어도 최소의 스킵 블록으로 인코딩된다. 둘째, 인코딩된 프레임들의 시퀀스에서 적어도 한쌍의 연속적인 빈 프레임들에 대해, 상기 쌍에서의 제1 빈 프레임에 대한 참조 프레임은 상기 쌍에서의 제2 빈 프레임에 대한 참조 프레임과 상이하다. 이러한 방식으로 인코딩함으로써, 장면을 캡쳐할 때 고유한 시간적 노이즈가 복수의 참조 프레임들에 존재할 것이고, 제1 빈 프레임에 대한 참조 프레임을 인코딩된 프레임들의 시퀀스에서의 바로 후속의 제2 빈 프레임에 대한 참조 프레임과 동일하게 선택하지 않음으로써, 이러한 시간적 노이즈는 이러한 쌍의 연속적으로 인코딩된 빈 프레임들에도 존재할 것이다.
도 2 내지 도 4는 낮은 양의 모션이 결정되는 프레임들의 시퀀스를 인코딩하는 방법의 일례를 나타낸다. 이들 예에서, 인코딩된 프레임들은 픽처 그룹(GOP)에 대응하지만, 이는 본 발명을 위한 요건이 아니다. 본 발명에서 개시된 방법은 절반의 GOP 또는 이와 유사한 임의의 프레임들의 시퀀스를 위해 사용될 수 있다.
도 2는 제1 실시 형태에 따른 프레임들의 시퀀스를 인코딩하는 방법의 일례를 나타낸다. 이러한 경우 프레임들(200)의 시퀀스의 초기 프레임(200a)이 인트라-프레임 인코딩된 참조 프레임(도면에서 "I")으로서 인코딩되는 것에 대응하는 복수의 참조 프레임들(202)이 인코딩되고, 프레임들(200)의 시퀀스에서의 초기 프레임(200a)에 바로 뒤이은 두개의 프레임들(200b-c)은 인터-프레임 인코딩된 참조 프레임들(도면에서 "P")로서 인코딩된다. 다른 실시 형태에 따르면, 복수의 참조 프레임들(202)에서 하나 이상의 프레임이 I-프레임으로서 인코딩된다. 인터-프레임 인코딩된 참조 프레임들은 P-프레임들 및/또는 B-프레임들의 형태일 수 있다. 참조 프레임들(202)의 수(인코딩된 프레임들(200)의 시퀀스의 증가된 비트 레이트로 유도함)는 사용자 경험(user experience)의 향상된 레벨과 균형을 이루어야 한다. 예를 들어, 더 큰 GOP는 작은 GOP와 비교하여 더 많은 참조 프레임들(202)이 인코딩되는 것으로 나타날 수 있다. 도 2에서, GOP에서의 나머지 프레임들(200d-h)(최종 인코딩된 프레임(200i)은 다음 GOP의 초기 프레임을 참조함)은 빈 프레임(204)으로서 인코딩된다. 각각의 빈 프레임(204)에 대해, 인코딩된 참조 프레임(202)은 선택되고 참조된다(도 2 내지 도 4에서 화살표로 도시됨). 도 2에서 볼 수 있는 바와 같이, 인코딩된 프레임들(200)의 시퀀스에서의 연속적인 빈 프레임들(204)의 각각 쌍에 대해, 상기 쌍에서 제1 빈 프레임에 대해 선택된 참조 프레임은 상기 쌍에서의 제2 빈 프레임에 대해 선택된 참조 프레임과 상이하다. 예를 들어, 도 2에서의 제1 빈 프레임(200d)은 제1 참조 프레임(200a)을 참조하고, 바로 후속의 빈 프레임(200e)에 대해서는, 선택된 참조 프레임이 제2 참조 프레임(200b)이다. 이들 두개의 빈 프레임들(200d-e)에 대해, 프레임들은 선택된 참조 프레임들(200a-b)에 대한 직접적인 참조로 인코딩된다. 이는 또한 제3 참조 프레임(200c)을 직접 참조하는 다음의 빈 프레임(200f)에 대한 경우이다. 다음 빈 프레임(200g)(도 2의 예에서 제4 빈 프레임)에 대해, 이 프레임은 제1 빈 프레임(200d)을 참조하며, 이는 다음에 제1 참조 프레임(200a)을 참조한다. 따라서 제4 빈 프레임은 참조 프레임, 즉 다른 빈 프레임(200d)을 통해 간접적인 참조를 포함한다. 다시 말해서, 제4 빈 프레임(200g)의 인코딩은 인코딩된 참조 프레임들(202) 중에서 인코딩된 참조 프레임(200a)을 선택하는 단계를 포함하며, 선택된 인코딩된 참조 프레임은 이미 다른 인코딩된 빈 프레임(200d)에 의해 직접적으로 참조된다. 이러한 간접적인 방식의 참조는 인코딩시 인코딩된 내용을 메모리에 저장해야 하는 프레임들의 수를 줄일 수 있다. 이 예에서 마지막(제5) 빈 프레임(200h)에 대해, 선택된 참조 프레임은 제3 빈 프레임(200f)을 통해, 간접적인 방식으로 제5 빈 프레임(200h)에 의해 참조되는 제3 참조 프레임(200c)이다. 따라서 5개의 빈 프레임들(200d-h)은 참조 프레임 1-2-3-1-3의 시간적 순서로 참조한다. 다시 말하면, 인코딩된 프레임들(200)의 시퀀스에서의 연속적인 빈 프레임들의 각각의 쌍에 대해, 상기 쌍에서의 제1 빈 프레임에 대해 선택된 참조 프레임은 상기 쌍에서의 제2 빈 프레임에 대해 선택된 참조 프레임과 상이하다. 이러한 방식으로, 시간적 노이즈가 각각의 빈 프레임들 사이에 도입될 것이고, 따라서 표시된 디코딩된 프레임들을 보는 사용자(예를 들어, 작동자)에게 " 컴포트" 노이즈를 제공한다. 또한 도 2에 도시된 예시적인 실시 형태에서, 제1 프레임(200d)이 프레임들(200)의 시퀀스에서의 복수의 참조 프레임들(202) 중에서 특정 인코딩된 참조 프레임(200c)에 바로 후속하는 빈 프레임(204)으로서 인코딩되는 것을 유의하고, 복수의 인코딩된 참조 프레임들(202) 중에서 인코딩된 참조 프레임을 선택하는 단계는 특정 인코딩된 참조 프레임(200c)과 상이한 복수의 인코딩된 참조 프레임들(202) 중에서 인코딩된 참조 프레임(200a)을 선택하는 단계를 포함한다. 이런 방식에서, 빈 프레임(204)으로서 인코딩되는 제1 프레임(200d)과 상기 빈 프레임(200d) 바로 이전의 참조 프레임(200c) 사이에 시간적 노이즈가 도입될 것이다. 다른 실시 형태에서, 프레임(200d)은 프레임(200c)을 참조할 수 있다.
도 2의 예에서, 프레임들의 시퀀스에서 초기 프레임들만이 참조 프레임들(202)로서 인코딩된다. 이는 예로서만 존재한다. 도 3에서, 두개의 제1 프레임들(200a-b)은 참조 프레임들(202)로서 인코딩된다. 세개의 후속 프레임들(200c-e)은 빈 프레임들(204)로서 인코딩된다. 추가의 후속 프레임(200f)은 참조 프레임으로서 인코딩되고 이어서 두개 이상의 프레임들(200g-h)이 빈 프레임들(204)로서 인코딩된다. 프레임들의 시퀀스에서 나중에 참조 프레임(들)을 도입하는 이러한 방식은 프레임들(200)의 시퀀스를 캡쳐하는 동안 발생했을 수 있는 장면에서의 변화를 캡쳐하기 위해 유리할 수 있다. 도 2의 예로부터의 또 다른 차이점은 빈 프레임들 중 하나가 제1 빈 프레임(200c)이 제3 참조 프레임(200f)을 참조함으로써 시간적으로 나중의 참조 프레임을 참조한다는 것이다. 많은 표준들은 인터-프레임 인코딩된 프레임들이 순방향(예를 들어, B-프레임, 양방향 예측된 화상)으로 참조하는 것을 허용하기 때문에, 이는 또한 본 발명의 빈 프레임들에 대해 허용될 수 있다(스킵 블록으로서 인코딩된 매크로블록을 포함하는 인터-프레임 인코딩된 프레임들의 형태를 가짐).
도 4에서, 프레임들(200)의 시퀀스가 두개의 별개 세트의 참조 프레임들(202)을 포함함에도 불구하고, 인코딩된 참조 프레임들 중에서 시간적으로 이전에 인코딩된 참조 프레임들만이 빈 프레임들에 의해 참조된다. 빈 프레임(204)을 인코딩할 때 시간적으로 이전에 인코딩된 참조 프레임을 선택함으로써, 인코더의 메모리에 저장될 필요가 있는 프레임들의 수가 감소되고, 프레임들의 시퀀스를 인코딩하는 방법이 간단해진다.
도 5는 일부 실시 형태에 따른 프레임들의 시퀀스를 인코딩하는 순서도를 나타낸다. 프레임들의 시퀀스에 대해 빈 프레임들이 전혀 사용되지 않아야 하는지를 결정하기 위해, 프레임들의 시퀀스에서의 초기 프레임의 이미지 데이터의 모션 레벨이 모션 레벨 임계값 이하인지 여부가 결정된다(S502). 초기 프레임의 모션 레벨은 하나 이상의 이전 프레임들, 예를 들어 이전 GOP 등과의 비교에 기초하여 결정될 수 있다. 예를 들어, 이전 시퀀스 모션 레벨에 대한 평균 모션 레벨은 별도의 모션 레벨 계산 유닛으로부터 인코더에 의해 수신되거나 인코더에서 계산될 수 있다. 모션 레벨 임계값은 프레임들 또는 예를 들어 사용자가 사용 경우에 기초하여 설정할 수 있는 사용자 조절 값(user adjustable value)에 따라 결정될 수 있다. 전술한 바와 같이, 초기 프레임은 GOP의 제1 프레임에 대응하거나 그렇지 않을 수 있다. 모션 레벨이 모션 레벨 임계값을 초과하는 것으로 결정되면, 후속 프레임들의 시퀀스가 종래 방식(표준 방식)으로, 예를 들어 본 발명에서 정의된 바와 같이 빈 프레임들 없이 인트라-프레임 인코딩된 프레임들과 인터-프레임 인코딩된 프레임들을 사용하여 인코딩되어야 하는 것(S503)이 결정될 수 있다. 그러나, 초기 프레임의 모션 레벨이 임계값 모션 레벨 이하인 것으로 결정되면, 후속 프레임들의 시퀀스가 모션이 없거나 적은 것으로 결정될 수 있어, 본 발명의 인코딩 방법은 비트 레이트를 최적화하는데 바람직하게 사용될 수 있다. 상기 방법을 사용하는 것은 광량이 적은 장면의 비디오를 캡쳐할 때 특히 유리할 수 있다. 이들 경우에서, 인터-프레임 노이즈의 양이 높을 것이고, 종래 방식으로 P-프레임으로서 인코딩되는 경우, 인코딩될 필요가 있는 잔여 값(참조 프레임과의 차이)이 많을 것으로 나타날 것이다.
그런 다음, 복수의 참조 프레임들이 인코딩된다(S504). 선택적으로, 참조 프레임을 인코딩하기 전에, 참조 프레임으로서 인코딩될 프레임의 이미지 데이터의 모션 레벨은 모션 레벨 임계값과 비교될 수 있다(S506). 이를 연속적으로 수행함으로써, 상기 방법은 보통의 인코딩(normal encoding, S503)으로 복귀하기 위해 언제든지 중단될 수 있다. 이러한 단계에서 모션 레벨을 검사(S506)하지 않음으로써, 인코딩 과정에 필요한 처리 전력이 감소될 수 있다. 각각의 참조 프레임은 인트라-프레임 인코딩된 프레임 또는 인터-프레임 인코딩된 프레임으로서 인코딩된다(S508).
일부 실시 형태에 따르면, 인터-프레임 인코딩된 프레임들의 모든 모션 벡터들은 0으로 설정된다. 참조 프레임들의 이미지 내용물이 이전 프레임들에 비해 모션이 거의 없거나 전혀 포함하지 않을 가능성이 있기 때문에(또는 결정됨(S506)), 이는 인터-프레임 인코딩된 프레임들의 매크로 블록들을 인코딩하기 위해 블록 매칭을 수행하는 것이 아니라, 대신 이전 프레임에서 동일한 블록들을 참조하는 것으로 이용될 수 있다. 결과적으로, 처리 전력이 절약될 수 있고, 보다 높은 QP 값이 인코딩을 위해 사용될 수 있어 비트 레이트의 절약을 추가로 증가시킬 수 있다.
그런 다음, 복수의 빈 프레임들을 인코딩한다(S510). 선택적으로, 프레임을 빈 프레임으로서 인코딩하기 전에, 상기 프레임의 이미지 데이터에 대한 모션 레벨이 수신되거나 그렇지 않으면 결정되어, 상기 모션 레벨 임계값과 비교된다. 이러한 실시 형태에서, 모션 레벨이 모션 레벨 임계값 이하인지가 결정된다(S512). 모션 레벨이 임계값 모션 레벨 이상인 것으로 결정되면, 상기 방법은 중단될 수 있고, 표준 인코딩(S503)이 뒤따른다. 즉, 현재의 프레임은 종래의 방식으로 인터-프레임 인코딩된 프레임 또는 인트라-프레임 인코딩된 프레임으로서 인코딩된다. 그러나, 모션 레벨이 임계값 모션 레벨 이하인 것으로 결정되면, 프레임은 빈 프레임으로서 인코딩된다. 이는 복수의 인코딩된 참조 프레임들 중에서 인코딩된 참조 프레임을 선택하는 단계(S514)를 포함한다. 이러한 선택 과정은 다른 전략을 사용하여 수행될 수 있다.
일 실시 형태에 따르면, 인코딩된 참조 프레임을 선택하는 단계는 랜덤 함수를 사용하여 수행된다. 랜덤 함수는 입력으로서 이용 가능한 참조 프레임의 수(또는 프레임들의 시퀀스에서 이용 가능한 참조 프레임의 인덱스)뿐만 아니라, 예를 들어 허용되지 않는 참조 프레임의 인덱스를 이용할 수 있다. 허용되지 않는 참조 프레임은 두개의 바로 다음의 빈 프레임들이 동일한 참조 이미지를 참조하지 않도록 프레임들의 시퀀스에서 바로 이전의 빈 프레임에 대한 참조로 사용되는 참조 프레임일 수 있다.
일 실시 형태에 따르면, 인코딩된 참조 프레임을 선택하는 단계는 미리 결정된 선택 시퀀스에 따라 수행된다. 예를 들어, 인코더는 가능한 참조 이미지들의 각각의 수에 대해 이러한 선택 시퀀스를, 예를 들어 두개의 참조 이미지들의 경우에 대한 하나의 리스트, 세개의 경우(예를 들어, 1, 2, 3, 1, 2, 3, 1, 2, 3 등)에 대한 하나의 리스트, 4개의 경우에 대한 하나의 리스트 등의 형태로 알 수 있다. 미리 결정된 선택 시퀀스는 알고리즘의 형태, 예를 들어 모듈러 연산일 수 있다. 이러한 알고리즘은 I = X mod Y의 형태를 가질 수 있고,
여기서 Y는 이용 가능한 참조 이미지의들 수이고, X는 프레임들의 시퀀스에서 빈 프레임으로서 인코딩될 현재 프레임의 인텍스이다. 모듈로 연산(I)의 결과는 빈 프레임이 참조할 참조 이미지의 인덱스를 선택하는데 사용된다.
인코딩된 참조 프레임이 선택되면, 선택된 참조 프레임에 대한 직접 또는 간접적인 참조로 빈 프레임이 인코딩된다(S516).
선택적으로, 하나 이상의 빈 프레임들을 인코딩한 후, 프레임들의 시퀀스들이 완전히 인코딩될 때까지, 새로운 참조 프레임들은 인코딩(S504)될 수 있고(따라서 방법은 S518을 반복함), 뒤이어 한 세트의 인코딩된 빈 프레임들 등을 인코딩한다(S516). 다른 실시 형태에서, 프레임들의 시퀀스에서의 모든 나머지 프레임들은 빈 프레임들로서 인코딩된다.
본 발명에서 설명된 바와 같은 인코딩 방법은 h.264 및 h.265와 같은 표준을 따른다. 즉, 표준 디코더가 디코딩을 위해 사용될 수 있다.
도 6은 본 발명에 따른 프레임들의 시퀀스를 캡쳐하고 인코딩하기 위한 시스템(600)을 나타낸다. 시스템(600)은 장면(602)의 이미지 데이터를 연속적으로 캡쳐하고 캡쳐된 이미지 데이터에 기초하여 이미지 프레임들(606)의 시퀀스를 포함하는 비디오 스트림을 생성하기 위한 제1 장치(604)(즉, 비디오 카메라)를 포함한다. 시스템(600)은 비디오 스트림의 각각의 프레임에 대한 모션 레벨(609)을 결정하도록 적용된 모션 감지기 유닛(motion detector unit; 608)을 더 포함한다. 모션 감지기 유닛(608)은 임의의 공지된 모션 감지 및/또는 물체 추적 알고리즘을 사용하여 프레임에 대한 모션 레벨을 계산할 수 있다(예를 들어, 프로세서를 사용).
프레임들(606)의 시퀀스 및 결정된 모션 레벨들(609)은 전술한 바와 같이 프레임들의 시퀀스를 인코딩하기 위해 적용된 제3 장치(인코더)(610)로 전송된다. 도 6에서, 비디오 캡쳐 제1 장치(604), 모션 감지기 유닛(제2 장치)(608) 및 인코딩 제3 장치(610)는 별개의 유닛으로 도시된다. 그러나, 일부 실시 형태에 따르면, 3개의 장치(604, 608, 610) 모두는 공통 이미지 캡쳐 장치에서 구현된다.
상기에서, 본 발명의 컨셉은 제한된 수의 예를 참조하여 주로 기술되었다. 그러나, 당업자라면 쉽게 이해할 수 있는 바와 같이, 전술한 것들 이외의 다른 예들은 첨부된 청구항에 의해 한정된 바와 같이 본 발명의 개념의 범위 내에서 동일하게 가능하다.

Claims (15)

  1. 비디오 스트림에서 프레임들(606)의 시퀀스를 인코딩하는 방법으로서, 상기 프레임들의 시퀀스에서의 초기 프레임의 이미지 데이터의 모션 레벨이 모션 레벨 임계값 이하인 것으로 결정하면(S502), 상기 방법은:
    복수의 참조 프레임들(202)을 인코딩하는 단계(S504)(상기 복수의 인코딩된 참조 프레임들의 각각의 참조 프레임은 인트라-프레임 인코딩된 프레임 또는 인터-프레임 인코딩된 프레임임); 및
    복수의 빈 프레임들(204)을 인코딩하는 단계(S510)(빈 프레임은 빈 프레임으로서 인코딩될 각각의 프레임에 대해,
    - 상기 복수의 인코딩된 참조 프레임들 중에서 인코딩된 참조 프레임을 선택하는 단계(S514);
    - 상기 선택된 참조 프레임에 대한 직접 또는 간접적인 참조를 갖는 상기 빈 프레임을 인코딩하는 단계(S516)(간접적인 참조는 상기 선택된 참조 프레임을 참조하는 이전에 인코딩된 빈 프레임을 통해 이루어짐)에 의해, 스킵 블록으로서 인코딩되는 매크로블록 및 상기 비디오 스트림에서의 다른 프레임에 대한 참조를 포함함)를 포함하고,
    상기 인코딩된 프레임들(200)의 시퀀스에서의 적어도 한쌍의 연속적인 빈 프레임들에 대해, 상기 쌍에서의 제1 빈 프레임에 대한 상기 선택된 참조 프레임은 상기 쌍에서의 제2 빈 프레임에 대한 상기 선택된 참조 프레임과 상이하며, 상기 제1 빈 프레임에 대한 상기 선택된 참조 프레임 및 상기 제2 빈 프레임에 대한 상기 선택된 참조 프레임 모두는 상기 제1 및 제2 빈 프레임들에 시간적으로 선행하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 인코딩된 프레임들의 시퀀스에서의 연속적인 빈 프레임들의 각각의 쌍에 대해, 상기 쌍에서의 제1 빈 프레임에 대한 상기 선택된 참조 프레임은 상기 쌍에서의 제2 빈 프레임에 대한 상기 선택된 참조 프레임과 상이한 것을 특징으로 하는 방법.
  3. 제1항에 있어서, 빈 프레임으로서 인코딩될 제1 프레임에 대해, 상기 제1 프레임은 상기 프레임들의 시퀀스에서의 상기 복수의 참조 프레임들 중에서 제1 인코딩된 참조 프레임에 바로 후속하고, 상기 복수의 인코딩된 참조 프레임들 중에서 인코딩된 참조 프레임을 선택하는 단계는 상기 제1 인코딩된 참조 프레임과 상이한 상기 복수의 인코딩된 참조 프레임들 중에서 인코딩된 참조 프레임을 선택하는 단계는 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 복수의 참조 프레임들은 하나 이상의 인터-프레임 인코딩된 프레임들을 포함하고, 상기 방법은:
    상기 하나 이상의 인터-프레임 인코딩된 프레임들의 모든 모션 벡터들을 0으로 설정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서, 상기 적어도 하나의 빈 프레임에 대해, 상기 빈 프레임을 인코딩하는 방법은:
    상기 인코딩된 참조 프레임들 중에서 인코딩된 참조 프레임을 선택하는 단계(상기 선택된 인코딩된 참조 프레임은 다른 인코딩된 빈 프레임에 의해 직접적으로 참조됨);
    상기 다른 인코딩된 빈 프레임에 대한 참조를 갖는 상기 빈 프레임을 인코딩하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서, 인코딩된 빈 프레임은 모든 매크로블록들이 스킵 블록들로 설정되는 인터-프레임 인코딩된 프레임의 형태를 갖는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    빈 프레임으로서 상기 프레임들의 시퀀스의 프레임을 인코딩하기 전에, 상기 빈 프레임의 이미지 데이터에 대한 모션 레벨(609)을 수신하고, 상기 모션 레벨이 상기 모션 레벨 임계값 이하인지를 결정하는 단계(S512);
    상기 모션 레벨이 상기 임계값 모션 레벨 이하인 것으로 결정되면, 상기 프레임을 빈 프레임으로서 인코딩하는 단계;
    상기 모션 레벨이 상기 임계값 모션 레벨 이상인 것으로 결정되면, 상기 프레임을 인터-프레임 인코딩된 프레임 또는 인트라-프레임 인코딩된 프레임으로서 인코딩하는 단계(S503)를 더 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서, 상기 프레임들의 시퀀스의 초기 프레임은 인트라-프레임 인코딩된 참조 프레임으로서 인코딩되고, 상기 프레임들의 시퀀스에서 상기 초기 프레임을 바로 뒤따르는 하나 이상의 프레임들은 인터-프레임 인코딩된 참조 프레임들로서 인코딩되는 것을 특징으로 하는 방법.
  9. 제1항에 있어서, 상기 인코딩된 참조 프레임들은 적어도 두개의 인터-프레임 인코딩된 프레임들을 포함하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서, 인코딩된 참조 프레임을 선택하는 단계는 랜덤 함수를 사용하여 수행되거나 미리 결정된 선택 시퀀스에 따라 수행되는 것을 특징으로 하는 방법.
  11. 제1항에 있어서, 프레임을 빈 프레임으로서 인코딩하는 단계는:
    상기 인코딩된 참조 프레임들 중에서 시간적으로 선행하는 인코딩된 참조 프레임을 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 처리 능력을 갖는 장치에 의해 실행될 때 제1항의 방법을 수행하도록 적용된 명령어들을 갖는 컴퓨터 판독 가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  13. 비디오 스트림에서 프레임들(606)의 시퀀스를 인코딩하기에 적합한 장치(610)로서, 상기 장치는 프로세서를 포함하고, 상기 프로세서에 의해, 상기 프레임들의 시퀀스에서의 초기 프레임의 이미지 데이터의 모션 레벨이 모션 레벨 임계값 이하인 것을 결정하면(S502), 상기 프로세서는:
    복수의 참조 프레임들(202)을 인코딩하는 단계(S504)(상기 복수의 인코딩된 참조 프레임들의 각각의 참조 프레임은 인트라-프레임 인코딩된 프레임 또는 인터-프레임 인코딩된 프레임임); 및
    복수의 빈 프레임들(204)을 인코딩하는 단계(S510)(빈 프레임은 빈 프레임으로서 인코딩될 각각의 프레임에 대해:
    - 상기 인코딩된 참조 프레임들 중에서 인코딩된 참조 프레임을 선택하는 단계(S514);
    - 상기 선택된 참조 프레임에 대한 직접 또는 간접적인 참조를 갖는 상기 빈프레임을 인코딩하는 단계(S516)(간접적인 참조는 상기 선택된 참조 프레임을 참조하는 이전에 인코딩된 빈 프레임을 통해 이루어짐);에 의해, 스킵 블록으로서 인코딩되는 매크로블록 및 상기 비디오 스트림에서 다른 프레임에 대한 참조를 포함함)를 수행하도록 구성되고,
    상기 인코딩된 프레임들(200)의 시퀀스에서의 적어도 한쌍의 연속적인 빈 프레임들에 대해, 상기 쌍에서의 제1 빈 프레임에 대해 선택된 상기 참조 프레임은 상기 쌍에서의 제2 빈 프레임에 대해 선택된 상기 참조 프레임과 상이하고, 상기 제1 빈 프레임에 대한 상기 선택된 참조 프레임 및 상기 제2 빈 프레임에 대한 상기 선택된 참조 프레임 모두는 상기 제1 및 제2 빈 프레임들에 시간적으로 선행하는 것을 특징으로 하는 장치.
  14. 장면(602)의 데이터를 연속적으로 캡쳐하고, 상기 캡쳐된 데이터에 기초하여 프레임들(606)의 시퀀스를 포함하는 비디오 스트림을 생성하는 제1 장치(604);
    상기 비디오 스트림의 각각의 프레임에 대한 모션 레벨(609)을 결정하도록 적용된 제2 장치(608); 및
    상기 프레임들의 시퀀스 및 상기 프레임들의 시퀀스에 대한 상기 결정된 모션 레벨들을 수신하도록 적용된 제13항에 따른 제3 장치(610)를 포함하는 시스템(600).
  15. 제14항에 있어서, 상기 제1, 제2 및 제3 장치는 이미지 캡쳐 장치로 구현되는 것을 특징으로 하는 시스템.
KR1020190019433A 2018-03-28 2019-02-19 비디오 스트림에서 프레임들의 시퀀스를 인코딩하기 위한 방법, 장치 및 시스템 KR102113948B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP18164676.1A EP3547684B1 (en) 2018-03-28 2018-03-28 Method, device and system for encoding a sequence of frames in a video stream
EP18164676.1 2018-03-28

Publications (2)

Publication Number Publication Date
KR20190113546A true KR20190113546A (ko) 2019-10-08
KR102113948B1 KR102113948B1 (ko) 2020-05-21

Family

ID=61832445

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190019433A KR102113948B1 (ko) 2018-03-28 2019-02-19 비디오 스트림에서 프레임들의 시퀀스를 인코딩하기 위한 방법, 장치 및 시스템

Country Status (6)

Country Link
US (1) US10856002B2 (ko)
EP (1) EP3547684B1 (ko)
JP (1) JP6836614B2 (ko)
KR (1) KR102113948B1 (ko)
CN (1) CN110324636B (ko)
TW (1) TWI763983B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11695944B2 (en) * 2021-09-08 2023-07-04 Omnivision Technologies, Inc. Video coding device and method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005065030A2 (en) * 2004-01-08 2005-07-21 Videocodes, Inc. Video compression device and a method for compressing video
WO2007072244A1 (en) * 2005-12-23 2007-06-28 Koninklijke Philips Electronics N.V. A device for and a method of processing a data stream comprising a plurality of frames
US20090147853A1 (en) * 2007-12-10 2009-06-11 Qualcomm Incorporated Resource-adaptive video interpolation or extrapolation

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009517740A (ja) * 2005-11-23 2009-04-30 オブジェクトビデオ インコーポレイテッド ビデオにおけるオブジェクト密度推定
JP4537348B2 (ja) 2006-05-31 2010-09-01 シャープ株式会社 Mpeg画質補正装置、及びmpeg画質補正方法
US20100245595A1 (en) 2009-03-31 2010-09-30 Acuity Systems Inc. Recorder test system
EP3029942B1 (en) 2014-12-04 2017-08-23 Axis AB Method and device for inserting a graphical overlay in a video stream
US9807416B2 (en) * 2015-09-21 2017-10-31 Google Inc. Low-latency two-pass video coding
WO2017076221A1 (en) * 2015-11-05 2017-05-11 Mediatek Inc. Method and apparatus of inter prediction using average motion vector for video coding
JPWO2017122604A1 (ja) * 2016-01-15 2018-11-01 日本電気株式会社 動画像符号化装置、動画像符号化方法、及び、動画像符号化プログラムが記憶された記憶媒体
EP3200456A1 (en) * 2016-01-28 2017-08-02 Axis AB Video encoding method and video encoder system for temporal noise reduction
KR101733748B1 (ko) * 2016-10-26 2017-05-10 에스케이 텔레콤주식회사 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005065030A2 (en) * 2004-01-08 2005-07-21 Videocodes, Inc. Video compression device and a method for compressing video
WO2007072244A1 (en) * 2005-12-23 2007-06-28 Koninklijke Philips Electronics N.V. A device for and a method of processing a data stream comprising a plurality of frames
US20090147853A1 (en) * 2007-12-10 2009-06-11 Qualcomm Incorporated Resource-adaptive video interpolation or extrapolation

Also Published As

Publication number Publication date
US10856002B2 (en) 2020-12-01
EP3547684B1 (en) 2020-02-26
EP3547684A1 (en) 2019-10-02
CN110324636A (zh) 2019-10-11
KR102113948B1 (ko) 2020-05-21
CN110324636B (zh) 2021-02-05
US20190306525A1 (en) 2019-10-03
TW201943279A (zh) 2019-11-01
TWI763983B (zh) 2022-05-11
JP2019198063A (ja) 2019-11-14
JP6836614B2 (ja) 2021-03-03

Similar Documents

Publication Publication Date Title
US20070199011A1 (en) System and method for high quality AVC encoding
US9332279B2 (en) Method and digital video encoder system for encoding digital video data
US20130027581A1 (en) Adaptive auto exposure adjustment
US20090161766A1 (en) System and Method for Processing Video Content Having Redundant Pixel Values
JP2013504256A (ja) シーン切替検出
WO2015139187A1 (en) Low latency encoder decision making for illumination compensation and depth look-up table transmission in video coding
US20070092007A1 (en) Methods and systems for video data processing employing frame/field region predictions in motion estimation
US11212536B2 (en) Negative region-of-interest video coding
KR101553680B1 (ko) 디지털 비디오 데이터를 인코딩하는 방법
KR20010099660A (ko) 고품위 텔레비전 인코더에서 장면변화의 검출 및화면코딩타입의 조정을 행하기 위한 방법 및 장치
US20170070555A1 (en) Video data flow compression method
US6697430B1 (en) MPEG encoder
WO2005065030A2 (en) Video compression device and a method for compressing video
US20080025408A1 (en) Video encoding
KR102113948B1 (ko) 비디오 스트림에서 프레임들의 시퀀스를 인코딩하기 위한 방법, 장치 및 시스템
KR20060118592A (ko) 영상 부호화 방법 및 장치, 영상 복호 방법 및 장치,그들의 프로그램 및 그들 프로그램을 기록한 기록 매체
EP1739965A1 (en) Method and system for processing video data
GB2417630A (en) Encoding a video signal based on the activity within the video signal
JPH0984024A (ja) 動画像信号の符号化装置
Wen et al. Intra frame flicker reduction for parallelized HEVC encoding
Hsia et al. Adaptive video coding control for H. 264/AVC
KR20240084469A (ko) 비디오 시퀀스를 프루닝하는 방법 및 장치
KR20060118459A (ko) 비디오 인코딩 방법 및 디바이스
JPH09219865A (ja) 映像符号化装置
KR20070029109A (ko) 비디오 인코딩 방법 및 디바이스

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