KR20230123870A - 오버레이를 포함하는 비디오 스트림의 인코딩 - Google Patents

오버레이를 포함하는 비디오 스트림의 인코딩 Download PDF

Info

Publication number
KR20230123870A
KR20230123870A KR1020220188754A KR20220188754A KR20230123870A KR 20230123870 A KR20230123870 A KR 20230123870A KR 1020220188754 A KR1020220188754 A KR 1020220188754A KR 20220188754 A KR20220188754 A KR 20220188754A KR 20230123870 A KR20230123870 A KR 20230123870A
Authority
KR
South Korea
Prior art keywords
image
frame
overlay
video stream
scene
Prior art date
Application number
KR1020220188754A
Other languages
English (en)
Inventor
에드팜 빅터
위안 송
Original Assignee
엑시스 에이비
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엑시스 에이비 filed Critical 엑시스 에이비
Publication of KR20230123870A publication Critical patent/KR20230123870A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/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/176Methods 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
    • 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/187Methods 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 scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/23Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with coding of regions that are present throughout a whole video segment, e.g. sprites, background or mosaic
    • 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
    • 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

Landscapes

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

Abstract

오버레이를 포함하는 비디오 스트림을 인코딩하는 방법은, 제1 이미지를 캡처하는 단계; 제1 위치에서 제1 이미지에 오버레이를 추가하고, 비디오 스트림의 제1 프레임에서 제1 이미지를 인코딩하는 단계; 장면의 제2 이미지를 캡처하는 단계; 제2 이미지에서 오버레이의 원하는 위치를 결정하는 단계; 노-디스플레이 프레임으로 마크된 제2 프레임에서 제2 이미지를 인코딩하는 단계, 및 원하는 위치와 제1 위치 사이의 차이 및 제1 프레임을 참조하는 오버레이의 원하는 위치 외부에 있는 스킵-매크로블록에 기초하여 모션 벡터를 갖는 제1 프레임을 참조하는 오버레이의 원하는 위치에서 시간적으로 예측된 매크로블록을 포함하는 제3 프레임을 생성 및 인코딩하는 단계를 포함한다. 해당 장치, 컴퓨터 프로그램 및 컴퓨터 프로그램 제품도 제공된다.

Description

오버레이를 포함하는 비디오 스트림의 인코딩{ENCODING OF A VIDEO STREAM INCLUDING AN OVERLAY}
본 개시는 비디오 인코딩 분야에 관한 것이다. 특히, 본 개시는 하나 이상의 오버레이(예를 들어, 증강 현실 애플리케이션에서 사용되는 것과 같은)를 포함하는 비디오 스트림의 인코딩에 관한 것이다.
증강 현실(AR)과 같은 신기술은 카메라를 통해 세상을 볼 때 사용자의 경험을 향상시키려고 한다. 여기에는 비디오 스트림의 캡처된 이미지를 예를 들어 오버레이하는 것이 포함될 수 있다. 사용자가 현재 보고 있는 것이 정확히 무엇인지에 대한 추가 정보를 사용자에게 제공하기 위해 비디오 스트림의 캡처된 이미지를 텍스트 또는 기타 그래픽과 오버레이하는 것을 포함할 수 있다. 이러한 기술에 의해 이용 가능한 많은 예 중 하나로서, 거리 및 다양한 건물을 묘사하는 비디오 스트림에서 특정 건물의 주소 및/또는 예를 들어 건물 소유자 또는 이와 유사한 것을 보여주는 오버레이가 추가될 수 있다. 이것은 예를 들어 거리를 탐색하려고 할 때 사용자가 카메라를 사용하여 거리를 촬영함으로써 다양한 건물에 대해 알 수 있으므로 사용자에게 도움이 될 수 있다.
비디오 스트림의 캡처된 이미지 위에 오버레이가 생성되고 렌더링된다. 오버레이는 예를 들어 비디오 스트림에 의해 현재 캡처된 장면 내에서 발견되는 특정 건물, 사람, 관광 명소 또는 기타 객체와 연관될 수 있다. 실제 상황에서 장면을 캡처하는데 사용된 카메라가 이동하거나 카메라의 시야(FOV)가 변경되면 오버레이의 위치가 업데이트되어 다음에 캡처된 이미지가 비디오 스트림이 처리되면 객체가 정지해 있는 경우 오버레이가 장면 자체에 대해 고정된 상태를 유지하도록 오버레이가 다시 렌더링된다. 예를 들어 오버레이를 이동하는 다른 이유는 연관된 객체 자체가 장면에서 비정지(및 이동)이기 때문일 수 있다.
그러나 카메라가 다른 작업(객체의 감지 및 추적, 비디오 스트림의 인코딩 또는 출력 비디오 스트림을 생성하는 데 필요한 기타 처리와 같은)을 수행하는 데 동시에 사용되는 경우 처리 능력(CPU, GPU 및/또는 메모리 측면에서) 카메라가 변경되거나 개체가 이동할 때마다 오버레이를 생성하고 다시 렌더링하는데 필요한 경우 항상 사용할 수 있는 것은 아니며 오버레이의 재생성 및 렌더링이 완료되지 않을 수 있다. 비디오 스트림의 다음 이미지가 표시/인코딩되어야 하는 시간이다. 이로 인해 비디오 스트림의 동기화 문제가 발생하여 끊김 현상이 발생하거나 예를 들어 한 프레임과 다음 프레임 사이에 오버레이가 사라졌다가 다시 나타난다. 또한 오버레이에는 예를 들어 텍스트 또는 기타 그래픽, 그러한 오버레이의 너무 빈번한 (재)생성 및 (재)렌더링은 비디오 스트림을 인코딩하고 생성된 출력 비디오 스트림의 비트레이트를 제어를 담당하는 회로 및 소프트웨어에 대한 오버헤드를 증가시킬 수 있다. 오버레이가 프라이버시 마스크인 경우 프라이버시 마스크가 하나 이상의 프레임에서 사라질 위험이 더 이상 허용되지 않을 수 있다. 따라서 컴퓨팅 파워 예산이 제한될 때 비디오 스트림에서 오버레이의 (재)생성 및 (재)렌더링을 더 잘 처리할 필요가 있다.
위에서 언급한 문제를 적어도 부분적으로 극복하고 위에서 언급한 필요성을 적어도 부분적으로 충족시키기 위해, 본 개시는 첨부된 독립항에 의해 정의된 바와 같이, 오버레이를 포함하는 비디오 스트림을 인코딩하는 개선된 방법 및 개선된 장치, 컴퓨터 프로그램 및 컴퓨터 프로그램 제품을 제공한다. 개선된 방법, 장치, 컴퓨터 프로그램 및 컴퓨터 프로그램 제품의 다양한 실시예는 첨부된 종속항에 정의되어 있다.
제1 측면에 따르면, 오버레이를 포함하는 비디오 스트림을 인코딩하는 방법이 제공된다. 방법은 a) 장면의 제1 이미지를 캡처하는 단계를 포함한다. 방법은 b) 제1 위치에서 제1 이미지에 오버레이를 추가하는 단계, 및 인코딩된 비디오 스트림의 제1 프레임의 일부로서 제1 이미지를 인코딩하는 단계를 포함한다. 방법은 c) 장면의 제2 이미지를 캡처하는 단계를 포함한다. 방법은 d) 제2 이미지에서 오버레이의 원하는 위치를 결정하는 단계를 포함하고, 제2 이미지에서 오버레이의 원하는 위치는 제1 이미지에서 오버레이의 제1 위치와 상이하다. 방법은 e) 비디오 스트림의 제 2 프레임의 일부로서 제 2 이미지를 인코딩하는 단계를 더 포함하고, 제 2 프레임을 비-표시 프레임으로 마킹하는 단계를 포함한다. 방법은 f) 오버레이의 원하는 위치(제2 이미지에서)에서 하나 이상의 매크로블록을 포함하는 비디오 스트림의 제3 프레임을 생성하고(예를 들어, 장면의 대응하는 제3 이미지를 수신하지 않고 소프트웨어를 사용하여) 인코딩하는 단계를 더 포함한다. 제1 프레임을 참조하고 제1 이미지의 오버레이의 제1 위치와 제2 이미지의 오버레이의 원하는 위치 사이의 차이에 기초한 하나 이상의 모션 벡터를 갖는 시간적으로 예측된 매크로블록이고, (제2 이미지에서) 오버레이의 원하는 위치 외부에 있는 제3 프레임은 비디오 스트림의 제2 프레임을 참조하는 스킵-매크로블록이다.
본 명세서에서 앞서 논의된 바와 같이, 오버레이는 예를 들어 이미지 위에 렌더링되는 텍스트 또는 다른 그래픽을 포함할 수 있어서, 이미지를 인코딩하는 결과적인 프레임에서, 오버레이는 예를 들어 비디오 스트림에서 캡처된 장면의 객체에 대한 추가 정보를 제공할 수 있다.
본 명세서에서 사용되는 바와 같이, "시간적으로 예측된 매크로블록"은 시간적으로 예측된 프레임의 일부를 형성하고 매크로블록이 픽셀을 렌더링하는데 필요한 정보는 비디오 스트림의 다른 프레임에서 동일한(또는 다른 픽셀) 기반으로 찾아야 한다. 이러한 프레임은 또한 인터 프레임, 예측 프레임, 차동 프레임 또는 예를 들어 프레임으로 지칭될 수 있다. 이전에 인코딩된 프레임 또는 향후 프레임에 대한 참조만 포함하는지 여부에 따라 P-프레임 또는 B-프레임, 다르게 표현하면, "시간적으로 예측된 매크로블록"이라는 용어의 의미는 이미 확립된 비디오 코딩 표준의 의미에서 벗어나지 않으며, 그러한 매크로블록을 포함하는 프레임이 인코딩 중에 시간적으로 중복되는 정보를 사용한다는 것을 설명하는 역할을 한다. 프레임을 렌더링하는 것은 인코딩된 프레임 자체에 완전히 포함될 필요는 없지만 대신 하나 이상의 이전 또는 미래 프레임에서 발견된 정보에서 발견되거나 적어도 근사치일 수 있다. 본 명세서에서 사용된 바와 같이, "스킵-매크로블록"(또는 SKIP 매크로블록, 건너뛴 매크로블록 또는 이와 유사한 것)은 또한 그들의 표준화된 의미를 가지며, 이전 프레임(또는 이미지 데이터가 이전(또는 미래) 프레임에서 직접 복사될 수 있고(움직임 벡터 없이) 현재 인코딩된 프레임 자체의 일부로 포함되지 않을 수 있다. 마지막으로, "비-표시 프레임"은 디코더에게 프레임이 디코딩된 비디오 스트림의 일부로 렌더링되지 않을 것을 지시하기 위해 어떤 식으로든 플래그가 지정된 프레임으로 이해되어야 하지만 프레임은 다음과 같이 여전히 사용 가능하다. 그 정보는 그것으로부터 획득될 수 있고 디스플레이될(즉, 비-표시 프레임으로 표시되지 않은) 하나 이상의 다른 프레임의 디코딩을 위해 사용될 수 있다. 제1 프레임은 예를 들어 하나 이상의 이전 또는 미래 프레임에 대한 참조에 의존하지 않고 프레임을 디코딩하고 렌더링하는데 필요한 모든 데이터를 포함하는 인트라 예측 프레임일 수 있다. 이러한 프레임은 또한 인트라 프레임(I-frame) 또는 풀 프레임 등으로 지칭될 수 있다. 제1 프레임, 제2 프레임 및 제3 프레임은 예를 들어 소위 GOP(Group of Pictures)의 일부를 형성할 수 있으며, 인트라 프레임(제1 프레임) 다음에는 하나 이상의 시간적으로 예측된 프레임 또는 하나 또는 다른 프레임(예: 하나 이상의 스킵 매크로블록을 포함하는 프레임)에 대한 참조를 포함하는 프레임이 온다. 제3 프레임이 오버레이를 포함하는 영역에 대한 이미지 데이터를 얻을 수 있는 제1 프레임과 동등한 것이 있고 제2 프레임이 있는 한 다른 시퀀스도 물론 가능하다. 오버레이를 포함하지 않는 영역의 제3 프레임에 대한 이미지 데이터 소스로 사용된다.
시간적으로 예측된 매크로블록, 스킵-매크로블록, 비-표시 프레임 및 움직임 벡터의 개념을 지원하는 임의의 비디오 코딩 표준이 개시된 방법을 실현하는데 사용될 수 있다고 생각된다. 이러한 표준의 예에는 HEVC(High Efficiency Video Coding) H.265, AVC(Advanced Video Coding) H.264, VP8, VP9, AV1 및 VVC(Versatile Video Coding) H.266가 포함된다(반드시 이에 제한되지 않음).
본 개시는 약간의 오버헤드 비용으로 오버레이를 렌더링할 수 있고 다음 프레임이 예정되기 전에 프레임 렌더링을 완료할 수 없는 위험이 감소되거나 심지어 제거된다는 점에서 현재 이용 가능한 기술을 개선한다. 이는 이미지에서 오버레이의 위치가 변경된 후 프레임 전체를 다시 렌더링하는 것이 아니라 이전 프레임의 오버레이와 관련된 이미지 데이터를 재사용하고 부분과 관련된 이미지 데이터를 제공함으로써 달성된다. 이 목적으로 생성된 비-표시 프레임의 오버레이를 포함하지 않는 장면의 본 개시는 이미 이용 가능하고 표준화된 유형의 프레임에만 의존하기 때문에 인코더가 정상적으로 인코딩하고 소프트웨어를 사용하여 제3 프레임을 구성 및 삽입할 수 있도록 한다. 마찬가지로, 표준 호환 디코더는 사용자에게 장면 및 오버레이의 비디오를 성공적으로 렌더링하기 위해 요구되는 특별한 고려 사항 없이 정상적으로 작동할 수 있다. 모션 벡터(들)는 필요한 계산 시간을 더 줄이기 위해 하드웨어 가속을 이용할 수 있는 인코더를 사용하여 설정될 수 있다.
방법의 일부 실시예에서, 제1 이미지의 오버레이의 제1 위치와 제2 이미지의 오버레이의 원하는 위치 사이의 차이는 적어도 부분적으로는 제1 이미지를 캡처하는 것과 제2 이미지를 캡처하는 것 사이의 시야의 변화(카메라의 FOV)로부터 기인할 수 있다. 장면을 캡처하는 데 사용되는 카메라는 예를 들어 소위 팬-틸트-줌(PTZ) 카메라일 수 있으며 FOV는 카메라 확대 또는 축소, 심지어 기울이기 또는 이동(패닝)을 통해 예를 들어 변경될 수 있다.
방법의 일부 실시예에서, 제1 이미지에서 오버레이의 제1 위치와 제2 이미지에서 오버레이의 원하는 위치 사이의 차이는 적어도 부분적으로는 객체의 위치 변화에서 기인할 수 있다. 오버레이가 장면에 연결된다. 오버레이는 예를 들어 장면의 사람과 연관될 수 있고, 여기에 설명된 방법은 사람이 장면에서 움직이고 있는 경우 효율적인 방식으로 오버레이를 다시 렌더링하는 데 사용될 수 있다.
방법의 일부 실시예에서, 제3 프레임은 예측된 프레임(자체에 대한 참조 및/또는 일련의 프레임에서 하나 이상의 이전 프레임에 대한 참조만을 포함하는 P-프레임)일 수 있거나, 양방향 예측된 프레임(B-프레임, 예를 들어 자신 및/또는 하나 이상의 이전 프레임에 대한 참조를 포함하지만 선택적으로 또한 시퀀스에서 하나 이상의 미래 프레임에 대한 참조도 포함)일 수 있다. 제3 프레임은 인코딩된 비디오 스트림의 제2 프레임 뒤에 삽입될 수 있으므로 제3 프레임은 다시 제2 프레임을 참조한다.
방법의 일부 실시예에서, 제3 프레임은 B-프레임일 수 있고 인코딩된 비디오 스트림에서 제2 프레임 전에 삽입될 수 있어서, 제3 프레임은 제2 프레임을 전방으로 참조한다.
방법의 일부 실시예에서, 제1 이미지 및 제2 이미지는 동일한 카메라를 사용하여 캡처될 수 있다. 다른 실시예에서, 하나의 카메라를 사용하여 제1 이미지를 캡처하고 다른 제2 카메라(예를 들어, 장면의 파노라마 이미지를 제공하도록 구성된 카메라 배열에서)를 사용하여 제2 이미지를 캡처하는 것이 구상될 수 있다.
방법의 일부 실시예에서, 오버레이는 증강 현실(AR) 오버레이일 수 있다.
방법의 일부 실시예에서, 방법은 제1 이미지 및/또는 제2 이미지를 캡처하는데 사용되는 카메라에서 수행될 수 있다. 카메라는 예를 들어 모니터링 카메라(예: 감시 카메라 또는 이와 유사한 것)일 수 있다. 다른 실시예에서, 방법은 그러한 카메라를 포함하는 카메라 시스템에서 수행될 수 있지만, 반드시 카메라 자체에서가 아니라 예를 들어 비디오 처리 서버 또는 유사한 것에서 대신 수행될 수 있다.
방법의 일부 실시예에서, 오버레이는 장면에 대해 고정될 수 있다. 예를 들어, 오버레이는 건물, 거리 또는 다른 유형의 움직이지 않는 고정 구조물과 같이 움직이지 않는 장면의 객체와 연관될 수 있다.
방법의 일부 실시예에서, 방법은 오버레이를 제2 이미지 및 제2 프레임의 일부로서 (대신에) 렌더링/추가하고 인코딩하는 데 필요한 계산 시간을 추정하는 단계를 포함할 수 있다. 이 필요한 계산 시간이 임계 값 미만인 것으로 결정되면, 방법은 대신 제3 프레임을 생성하는 단계를 건너뛰고 대신 원하는 위치에서 제2 이미지에 오버레이를 추가하고 제2 이미지를 인코딩의 일부로 인코딩할 수 있다. 비디오 스트림의 제2 프레임. 이 방법은 제2 프레임을 표시하지 않는 프레임으로 표시하는 것을 건너뛸 수 있으므로 제2 프레임은 제1 프레임 이후에 렌더링될 수 있다. 이 실시예는 충분한 계산 능력이 이용 가능하다면(즉, 위의 추정치에 대한 임계 값이 이용가능한 계산 자원에 기초한다면) 오버레이가 대신 직접 재렌더링될 수 있다는 점에서 유리하다. 이것은 오버레이를 렌더링할 때 예를 들어 제1 이미지를 캡처하는 것과 제2 이미지를 캡처하는 사이의 장면의 관점에서의 변화가 또한 고려될 때 향상된 품질을 제공할 수 있다.
본 개시의 제2 측면에 따르면, 오버레이를 포함하는 비디오 스트림을 인코딩하기 위한 장치가 제공된다. 장치에는 프로세서와 메모리가 포함된다. 메모리는 프로세서에 의해 실행될 때 장치가 장면의 제1 이미지를 캡처하도록 하는 명령을 저장한다. 오버레이를 제1 위치에서 제1 이미지에 추가하고, 인코딩된 비디오 스트림의 제1 프레임의 일부로서 제1 이미지를 인코딩하고; 장면의 제2 이미지를 캡처한다. 제2 이미지에서 오버레이의 원하는 위치를 결정하고, 여기서 제2 이미지에서 오버레이의 원하는 위치는 제1 이미지에서 오버레이의 제1 위치와 상이하며; 제2 프레임을 비-표시 프레임으로서 마킹하는 것을 포함하여, 비디오 스트림의 제2 프레임의 일부로서 제2 이미지를 인코딩하고; 비디오 스트림의 제3 프레임을 (예를 들어, 소프트웨어를 사용하여) 생성 및 인코딩하고, 여기서 오버레이의 원하는 위치에 있는 제3 프레임의 하나 이상의 매크로블록은 제1 프레임을 참조하고 오버레이의 제1 위치(제1 이미지에서)와 오버레이의 원하는 위치(제2 이미지에서) 사이의 차이에 기초한 모션 벡터를 갖는 시간적으로 예측된 매크로블록이다. 그리고 오버레이의 원하는 위치 외부에 있는 제3 프레임의 하나 이상의 매크로블록(제2 이미지에서)은 (인코딩된) 비디오 스트림의 제2 프레임을 참조하는 스킵 매크로블록이다.
따라서, 제2 측면에 따른 디바이스는 제1 측면의 방법의 대응 단계를 수행하도록 구성된다.
장치의 일부 실시예에서, 장치는 본 명세서에 기술된 방법의 임의의 실시예를 수행하도록 추가로 구성된다(즉, 명령은 프로세서에 의해 실행될 때 장치로 하여금 명령을 수행하도록 한다).
본 개시의 제3 측면에 따르면, 오버레이를 포함하는 비디오 스트림을 인코딩하기 위한 컴퓨터 프로그램이 제공된다. 컴퓨터 프로그램은 장치의 프로세서에 의해 실행될 때 발생하도록 구성된다. (제2 측면에 따른 장치와 같이) 장치가 다음을 수행하도록 한다: 장면의 제1 이미지를 캡처하게 하고; 오버레이를 제1 위치에서 제1 이미지에 추가하고, 인코딩된 비디오 스트림의 제1 프레임의 일부로서 제1 이미지를 인코딩하고; 장면의 제2 이미지를 캡처한다. 제2 이미지에서 오버레이의 원하는 위치를 결정하고, 여기서 제2 이미지에서 오버레이의 원하는 위치는 제1 이미지에서 오버레이의 제1 위치와 상이하며; 제2 프레임을 비-표시 프레임으로서 마킹하는 것을 포함하여, 비디오 스트림의 제2 프레임의 일부로서 제2 이미지를 인코딩하고; (예를 들어, 소프트웨어를 사용하여) 비디오 스트림의 제3 프레임을 생성 및 인코딩하고, 여기서 오버레이의 원하는 위치에 있는 제3 프레임의 하나 이상의 매크로블록은 제1 프레임을 참조하고 오버레이의 제1 위치(제1 이미지에서)와 오버레이의 원하는 위치(제2 이미지에서) 사이의 차이에 기초한 모션 벡터를 갖는 시간적으로 예측된 매크로블록이다. 그리고 오버레이의 원하는 위치 외부에 있는 제3 프레임의 하나 이상의 매크로블록(제2 이미지에서)은 (인코딩된) 비디오 스트림의 제2 프레임을 참조하는 스킵 매크로블록이다.
따라서 컴퓨터 프로그램은 장치가 제1 측면에 따라 본 명세서에서 앞서 설명한 방법을 수행하도록 구성된다.
일부 실시예에서, 컴퓨터 프로그램은 (장치의 프로세서에 의해 실행될 때) 장치가 본 명세서에 기술된 방법의 임의의 실시예를 수행하게 하도록 추가로 구성된다.
제4 측면에 따르면, 제3 측면 또는 그의 임의의 실시예에 따른 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다. 컴퓨터 판독 가능 저장 매체는 예를 들어 비일시적일 수 있고 예를 들어 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SDD), USB 플래시 드라이브, SD 카드, CD/DVD 및/또는 비일시적 데이터 저장이 가능한 기타 저장 매체와 같은 것이 제공될 수 있다.
본 발명의 다른 목적 및 장점은 다음의 상세한 설명, 도면 및 특허청구범위로부터 명백해질 것이다. 본 발명의 범위 내에서, 예를 들어 참조로 설명된 모든 특징 및 이점이 예상된다. 제1 측면의 방법은 제2 측면의 장치, 제3 측면의 컴퓨터 프로그램, 및/또는 컴퓨터 프로그램을 참조하여 설명된 임의의 특징 및 이점과 관련되고, 적용되고, 또한 조합하여 사용될 수 있다. 제4 측면의 제품 및 그 반대의 경우도 마찬가지이다.
이제 예시적인 실시예가 첨부된 도면을 참조하여 아래에서 설명될 것이다.
도 1a 내지 도 1d는 오버레이를 포함하는 비디오 스트림을 인코딩하기 위해 본 개시에 따른 방법이 어떻게 사용되는지의 예를 개략적으로 도시한다.
도 2a 및 2b는 본 개시에 따른 방법의 다양한 실시예의 흐름도를 도시한다.
도 3a-3c는 오버레이를 포함하는 비디오 스트림을 인코딩하기 위해 본 개시에 따른 방법이 어떻게 사용되는지에 대한 추가 예를 개략적으로 도시한다.
도 4는 본 개시에 따른 장치의 실시예를 개략적으로 도시한다.
도면에 있어서, 특별한 언급이 없는 한 동일한 구성요소에 대해서는 동일한 참조부호를 사용한다. 달리 명시적으로 언급되지 않는 한, 도면은 예시적인 실시예를 예시하는데 필요한 요소만을 도시하고, 명확성을 위해 다른 요소는 생략되거나 단지 제안될 수 있다. 도면에 도시된 바와 같이, 요소 및 영역의 (절대적 또는 상대적) 크기는 예시 목적을 위해 그들의 실제 값에 비해 과장되거나 축소될 수 있으며, 따라서 실시예의 일반적인 구조를 예시하기 위해 제공된다.
오버레이를 포함하는 비디오 스트림을 인코딩하기 위해 본 발명에 따른 방법이 어떻게 사용되는지의 다양한 예들이 이제 도 1a-1d를 참조하여 설명될 것이다. 그러한 방법(200)의 단계(S201-S206)의 흐름도를 개략적으로 도시하는 도 2a를 또한 참조한다.
도 1a 및 1b는 현재 개시된 방법이 사용될 수 있는 상황을 개략적으로 도시한다. 도 1a는 캡처된 제1 이미지(110)를 도시한다. 제1 이미지(110)는 여기에서 나무, 쓰레기통, 가로등 기둥 등과 같은 다른 객체뿐만 아니라 여러 건물/집이 있는 거리의 뷰를 포함하는 장면을 묘사한다. 그러한 환경에서 자주 발견된다. 증강 현실은 장면의 특정 건물(124)에 대한 추가 정보를 제공하기 위해 추가되는 오버레이(120)를 포함하여 (비디오 스트림의 일부로서) 제1 이미지를 보는 사용자에게 추가 정보를 제공하는데 사용된다. 여기서, 이 추가 정보는 건물(124)의 주소("번지 123")를 포함한다. 물론, 예를 들어 다른 건물의 주소, 거리 이름, 나침반 방향, 원하는 위치에 도달하기 위해 사용자가 어느 방향으로 이동해야 하는지를 나타내는 화살표 및 기타 여러 유형의 오버레이가 제공될 수도 있다. 제1 이미지(110)는 카메라의 특정 정렬(예를 들어 요, 피치 및 롤 측면에서) 및 특정 줌 레벨을 포함하는 특정 시야(FOV)를 갖는 카메라를 사용하여 캡처 되었다고 가정한다. 카메라는 예를 들어, 사용자가 착용하는 바디 카메라, 스마트폰이나 태블릿의 카메라, 현재 사용자가 운전하고 있는 차량에 장착된 블랙박스 또는 건물(예: 모니터링 또는 감시 카메라 등)에 장착된 카메라((팬-틸트-줌, PTZ 카메라와 같은) 등이 될 수 있다. 물론 다른 대안도 가능하며, 모두 개시된 방법에서 사용 가능한 것으로 구상된다.
도 1b는 동일한 장면의 캡처된 제2 이미지(112)를 도시하지만, 장면 내의 객체의 위치는 제1 이미지(110)에서와 제2 이미지(112)에서 상이한 위치에 있다. 이것은 카메라가 움직이거나, 기울어지거나, 패닝되거나, 확대/축소되거나 유사하기 때문일 수 있다. 예를 들어, 장면의 제1 이미지(110)와 제2 이미지(112)를 캡처하는 사이에 카메라가 거리를 따라 왼쪽으로 뒤로 이동했거나 카메라가 장면을 축소했다고 가정할 수 있다. 이와는 별개로, 제2 이미지(112)에서 특정 건물(124)은 이제 다른 위치에서 발견되며, 이는 제2 이미지(112)에서 오버레이(120)의 원하는 위치가 제1 이미지(110)에서 오버레이의 위치와 다르다는 것을 의미한다. (여기서는 오버레이(120')로 예시됨). 결과적으로, 오버레이(120)가 장면에 대해 고정된 것처럼 보이도록, 즉 오버레이(120)가 제공해야 하는 특정 건물(124)의 위치를 따르도록 제2 이미지(112)에서 오버레이(120)에 대한 추가 정보를 다시 렌더링할 필요가 있다. 오버레이의 원하는 움직임은 도 1b의 어레이(130)에 의해 예시된다.
이전에 논의된 바와 같이, 카메라(또는 제1 이미지(110) 및 제2 이미지(112)가 일부를 형성하도록 되어 있는 비디오 스트림을 인코딩하는 것을 담당하는 임의의 다른 장치) 또한 하나 이상의 다른 장치로 점유될 수 있다. 계산 리소스를 점유하고 제2 이미지(112)에서 오버레이(120)를 다시 렌더링하는 데 사용할 수 있는 리소스가 제 시간에 이러한 다시 렌더링을 완료하기에 충분하지 않다(즉, 처리 전에 제2 이미지(112) 이후에 캡처된 후속 제3 이미지로 이동해야 함). 이로 인해 동기화 문제, 말더듬 또는 비디오 스트림의 제2 이미지로의 부드럽지 않은 전환 및/또는 예를 들어 시간 내에 완전히 렌더링되지 않아 오버레이가 제2 이미지에서 사라진다.
이제 도 1c 및 1d(및 도 2a)를 참조하여 설명되는 바와 같이, 본 명세서에서 예상되는 방법은 이러한 문제를 극복하는 방법에 대한 해결책을 제공한다.
도 1c는 구상된 방법(200)에 따라 인코딩된 비디오 스트림(140)의 일련의 프레임(150, 152 및 154)의 생성을 개략적으로 도시한다.
도 1a를 참조하여 설명된 바와 같이, 방법(200)은 먼저 장면의 제1 이미지(110)를 캡처하는 것으로 시작하고(단계 S201에서), 이어서 오버레이(120)를 제1 이미지에 추가하는 것으로 진행한다(단계 S202에서). 그리고 인코딩된 비디오 스트림(140)의 제1 프레임(150)의 일부로서 제1 이미지(110)(및 오버레이(120))를 인코딩한다. 이미지 좌표를 사용한다. 제1 이미지(110)가 제1 프레임(150)의 "일부로서" 인코딩된다는 것은 물론 예를 들어, 제1 프레임(150)에 제공되는 다른 콘텐츠, 제1 이미지(110)로부터 유래하는 이미지 정보에 더하여 추가적인 그래픽 또는 텍스트 객체 등이 있을 수 있음을 의미한다.
그런 다음 방법(200)은 동일한 장면의 제2 이미지(112)를 캡처하는 것으로 진행하지만(단계 S203에서), 제1 이미지(110)와 제2 이미지(112)를 캡처하는 사이에 카메라는 원하는 위치가 제2 이미지(112)의 오버레이(120)는 이제 제1 이미지(110)의 오버레이(120)의 위치와 다르다. 단계 S204에서, 방법(200)은 제2 이미지(112)의 오버레이(120)의 원하는 위치를 결정하는 단계를 포함하며, 여기서, 전술한 바와 같이, 제2 이미지(112)에서 오버레이(120)의 원하는 위치는 제1 이미지(110)에서와 다르다. 위치의 변화는 도 1b에서 화살표(130)로 도시되어 있다. 제2 이미지에서 원하는 위치는 예를 들어 카메라의 움직임, 카메라의 확대/축소 변경 등을 알고 있음으로써 찾을 수 있다.
제2 이미지(112) 위에 오버레이를 다시 렌더링하려고 시도하는 대신, 예를 들어 다음과 같이 제2 이미지(112)와 오버레이(120)를 함께 인코딩한다. 인코딩된 비디오 스트림(140)의 제2 프레임, 방법(200)은 대신 비디오 스트림(140)의 제2 프레임(152)의 일부로서 오버레이(120) 없이 제2 이미지(112)를 인코딩하는 것으로 진행한다(단계 S205에서, 이전과 같이, "의 일부로"는 제2 이미지(112)만이 아닌 다른 콘텐츠가 제2 프레임(152)에 포함될 수도 있음을 의미한다. 또한, 방법(200)은 제2 프레임(152)을 소위 비-표시 프레임으로 표시하는데, 이는 제2 프레임(152)이 인코딩된 비디오 스트림(140)을 수신하는 디코더에 의해 가시적으로 렌더링되지 않는다는 것을 의미한다. 그러나 제2 프레임(152)은 여전히 비디오 스트림(140)에서 하나 이상의 다른 프레임에 의해 차례로 사용될 수 있는 정보를 포함하기 위해 사용된다.
제2 프레임(152)의 일부로서 제2 이미지(112)를 인코딩한 후, 방법(200)은 비디오 스트림(140)의 제3 프레임(154)을 생성하는 단계(단계 S206)를 진행한다. 이미지이지만, 대신 이제 설명될 비디오 스트림(140)의 하나 이상의 다른 프레임에 대한 참조(170 및 172)를 포함하도록 되어 있다.
제2 이미지(112)의 오버레이(120)의 원하는 위치에서, 제3 프레임(154)은 시간적으로 예측된 매크로블록인 하나 이상의 매크로블록(160)을 포함한다. 이것은 이들 매크로블록이 제3 프레임(154)에 임의의 실제 이미지 데이터를 포함하지 않고 대신 비디오 스트림(140)의 제1 이미지(110) 및 제1 프레임(150)의 매크로블록(161)에 대한 참조(170)를 포함한다는 것을 의미한다. 제1 프레임(150)의 매크로블록(161) 제3 프레임(154)의 매크로블록(160)이 참조하는 매크로블록(160)은 제1 이미지(110)에서 오버레이(120)의 위치에 있다. 프레임(154)은 또한 하나 이상의 모션 벡터(132)를 포함(예를 들어 인코딩)한다. 모션 벡터(132)는 이전 단계(S205)에서 얻은 것과 같이 제1 이미지(110)의 오버레이(120) 위치와 제2 이미지(112)의 오버레이(120)의 원하는 위치 사이의 차이에 기초한다. 모션 벡터(132)는 예를 들어 도 1b에 표시된 화살표(130)와 방향 및 길이가 반대이므로, 디코더는 매크로블록(160)에 대한 이미지 데이터가 제1 이미지(110)의 오버레이(120)의 위치에 있는 매크로블록(161)에서 발견될 것임을 알 수 있다.
제3 프레임(154)은 또한 제2 이미지(112)에서 오버레이(120)의 원하는 위치에 있지 않은 하나 이상의 매크로블록(162)을 포함한다. 이들 매크로블록(162)은 소위 스킵-매크로블록이고, 제2 이미지(112) 및 제2 프레임(152)의 동일한 위치에 매크로블록(163)에 대한 하나 이상의 참조(172)를 포함하며, 디코더는 제2 이미지(112) 및 제2 프레임(152)의 매크로블록(163)으로부터 이미지 정보를 직접 복사하고 이 정보를 사용하여 제3 프레임(154)의 대응하는 부분을 생성해야 한다는 것을 알 수 있다. 따라서, 제3 프레임(152)에는 오버레이(120)(여기서 오버레이에 대한 데이터는 제1 이미지(110) 및 제1 프레임(150)로부터 획득됨) 및 오버레이(120)를 포함하지 않은 영역을 모두 보여주는 이미지(비디오 스트림(140)의 디코딩 동안)를 생성하기에 충분한 정보가 제공된다(여기서 데이터는 대신 제2 이미지(112) 및 제2 프레임(152)으로부터 획득됨). 디코딩 후 세 번째 프레임(154)을 표시할 때, 사용자는 원하는 올바른 위치에 있는 오버레이(120)를 포함하여 (카메라의 움직임으로 인해 요구되는) 장면의 업데이트된 보기를 볼 수 있다.
도 1c를 참조하여 설명된 예에서, 제1 프레임(150)은 예를 들어 인코딩된 비디오 스트림(140)의 하나 이상의 다른 프레임을 참조하지 않는 인트라 프레임이다. 제1 프레임(150)은 예를 들어 소위 I-프레임이며, 제1 프레임(150)을 디코딩한 후 제1 이미지(110)를 보기 위해 필요한 이미지 데이터에 대해 자체 포함한다. 예를 들어, 제2(비표시) 프레임(152)은 제1 프레임(150) 다음에 제3 프레임(154) 전에 추가된다. 따라서, 제3 프레임(154)은 시간상 제2 프레임(152)으로 되돌아간 기준(172)을 갖고, 예를 들어 소위 P-프레임이다. 제1 프레임(150)은 예를 들어 프레임의 GOP 시퀀스에서 제1 프레임으로서 기능할 수 있다. 제3 프레임(154)에 후속하는 다른 프레임 및/또는 제1 프레임(150)에 선행하는 다른 프레임이 있을 수 있다.
도 1d는 방법(200)이 비디오 스트림(140) 및 오버레이(120)를 인코딩하기 위해 동작할 수 있는 방법의 또 다른 가능한 예를 개략적으로 도시한다. 여기서 다양한 단계 S201-S206은 도 1c를 참조하여 설명된 것과 동일하지만, 소프트웨어로 생성된 제2 프레임(152)이 대신 제3 프레임(154) 뒤에 추가된다는 차이점이 있다. 여기서 제3 프레임(154)은 소위 B-프레임이고, 이는 제3 프레임(152)이 직접 복사해야 하는 매크로블록을 포함하는 제2 프레임(152)으로서 "미래 프레임"(제2 프레임(152))에 대한 참조를 포함한다(제3 프레임(152)의 매크로블록(162)이 제2 프레임(152)의 매크로블록(163)을 참조(172)하는 스킵 매크로블록이기 때문에). 전과 같이, 제3 프레임(154)은 또한 모션 벡터(들)(132)와 조합하여 제1 이미지 (110)에서 오버레이(120)가 발견된 제1 프레임(150)의 매크로블록(161)을 적절하게 복사 및 처리하기 위해 이전 제1 프레임(150)에 대한 참조(170)를 포함한다.
여기에서 예상되는 방법(200)이 동작할 수 있는 또 다른 상황이 이제 도 3a-3c를 참조하여 설명될 것이다. 뒤따르는 절차는 그림 1a-1d를 참조하여 앞에서 설명한 절차와 동일하지만 다른 종류의 장면 및 카메라 설정에 대한 것이다. 도 3a는 거리의 인도를 묘사하는 제1 이미지(310)에서 고정 카메라에 의해 캡처된 장면을 개략적으로 예시한다. 이 장면에서, 오버레이(320)가 제공되는 특정 객체는 개(324) 형태의 비정지 이동 객체이다. 여기에서 오버레이(320)는 동물의 유형을 "개"로 식별하지만, 물론 비디오 스트림을 통해 장면을 보는 사용자에게 유용한 것으로 간주되는 다른 정보를 제공할 수도 있다. 개(324)가 보도를 따라 이동/걷고 있을 때, 그의 위치는 캡처된 이미지 사이에서 변경될 것이고, 오버레이가 객체/개(324)에 대해 고정된 상태를 유지하기 위해 그에 따라 오버레이가 업데이트되어야 한다.
도 3b는 동일한 장면을 묘사하는 캡처된 제2 이미지(312)를 예시하지만, 화살표(330)로 도시된 바와 같이 개(324)의 위치가 제1 이미지(310)를 캡처한 이후 변경되었다. 따라서 제2 이미지(312)는 제1 이미지(310)의 오버레이(여기서는 오버레이(320')로 예시됨)의 위치와 상이하다.
앞서 설명한 바와 같이, 방법(200)은 여기에서 제1 이미지(310)를 먼저 캡처하고(단계 S201에서) 오버레이(320)를 렌더링/추가하고(단계 S202에서) 결과를 제1 프레임(350)의 일부로서 인코딩함으로써 진행할 수 있다. 그 후 방법(200)은 장면의 제2 이미지(312)를 캡처하는 것을 진행할 수 있고(단계 S203에서), 방법(200)은 그 다음 (단계 S204에서) 원하는 장면의 위치 사이의 차이를 결정할 수 있다. 방법(200)은 (단계 S205에서) 제2 프레임(352)의 일부로서 이 제2 이미지(312)를 인코딩할 수 있다(비-표시 프레임으로 표시됨). 오버레이(320)를 포함하지 않고, 오버레이의 위치에서 제1 프레임(350)의 370개의 매크로블록(361)을 참조하는 시간적으로 예측된 매크로블록(360)을 갖는 제3 프레임(354)을 계속 생성하고(예를 들어 소프트웨어를 사용하여) 인코딩(단계 S206에서)한다. 하나 이상의 모션 벡터의 도움으로 제1 이미지(310)의 320 제2 이미지(312)에서 오버레이(320)의 원하는 위치와 제1 이미지(310)에서의 오버레이(320)의 원하는 위치 사이의 차이에 기초하여(332), 하나 이상의 스킵-매크로블록(362)이 제2 비-표시 프레임의 하나 이상의 매크로블록(363)을 참조(372)한다. 352는 도 1c 및 1d를 참조하여 앞서 기술한 바와 같다. 결과적으로, 이 방법은 카메라의 변경/이동(예: 카메라의 FOV 변경)으로 인해 이미지의 오버레이의 원하는 위치가 변경되었을 때 원하는 대로 수행할 수 있다. 이미지의 오버레이는 장면에서 객체(오버레이와 연결됨)의 움직임으로 인해 변경되거나 카메라 변경과 장면에서 객체 이동의 조합으로 인해 원하는 위치가 변경될 때 변경된다. 다르게 표현하면, 본 명세서에 개시되고 구상된 방법은 오버레이가 장면에 대해 고정될 때 및 예를 들어 오버레이가 장면에서 움직이는 객체에 대해 고정될 때 모두 기능할 수 있다.
여기서, 방법(200)은 예를 들어 장면의 이미지를 캡처하는데 사용되는 모니터링 카메라에 의해, 또는 이러한 모니터링 카메라를 포함하는 (모니터링) 카메라 시스템의 다른 적절한 구성 요소에 의해 수행될 수 있다고 생각된다. 물론 방법(200)은 적어도 캡처된 제1 및 제2 이미지를 수신하고 다양한 프레임을 생성하고 비디오 스트림을 출력으로서 인코딩하는 능력을 갖는 임의의 다른 장치에서 수행될 수 있다. 본 명세서에서 예상되는 그러한 장치의 예는 이제 도 4를 참조하여 더 상세히 설명될 것이다.
도 4는 오버레이를 포함하는 비디오 스트림을 인코딩하기 위한 장치(400)를 개략적으로 예시한다. 장치(400)는 적어도 프로세서(또는 "처리 회로")(410) 및 메모리(412)를 포함한다. 본 명세서에서 사용되는 바와 같이, "프로세서" 또는 "처리 회로"는 예를 들어 적절한 중앙 처리 장치(CPU), 멀티프로세서, 마이크로컨트롤러(μC), 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래밍 가능 게이트 어레이(FPGA), 그래픽 처리 장치(GPU), 메모리(412)에 저장된 소프트웨어 명령어 등 중 하나 이상의 임의의 조합일 수 있다. 메모리(412)는 프로세서(410) 외부에 있거나 프로세서(410) 내부에 있을 수 있다. 본 명세서에서 사용되는 "메모리"는 RAM(Random-Access Memory) 및 판독의 전용 메모리(ROM) 또는 명령을 저장할 수 있는 다른 종류의 메모리의 임의의 조합일 수 있다. 메모리(412)는 프로세서(410)에 의해 실행될 때 장치(400)가 본 명세서에 기술된 방법(즉, 방법(200) 또는 그 임의의 실시예)을 수행하게 하는 명령을 포함(즉, 저장)한다. 장치(400)는 일부 상황에서 방법을 수행하는데 필요할 수 있는 하나 이상의 추가 항목(414)을 더 포함할 수 있다. 일부 예시적인 실시예에서, 디바이스(400)는 위에서 언급한 바와 같은 모니터링 카메라일 수 있고, 추가 항목(들)(414)은 예를 들어 이미지 센서 및 모니터링 카메라가 구상된 방법을 수행하는 일부로서 장면의 이미지를 캡처할 수 있도록 장면으로부터의 광을 이미지 센서에 집중시키는 하나 이상의 렌즈를 포함할 수 있다. 추가 항목(들)(414)은 또한 원하는 대로 이미지 센서 및/또는 렌즈를 적절하게 작동하기 위해 장면을 캡처하는데 필요한 다양한 다른 전자 부품을 포함할 수 있다. 모니터링 카메라에서 방법을 수행하는 것은 다른 곳에서 처리 및 비디오 인코딩을 수행하는 경우에 비해 실제 장면이 캡처되는 위치에 더 가까운 "가장자리"로 처리가 이동한다는 점에서 유용할 수 있다(예: 보다 중앙 집중화된 처리 서버 또는 유사). 장치(400)는 예를 들어 방법을 수행한 결과인 인코딩된 비디오 스트림이 사용자에게 전송될 수 있도록 네트워크에 연결될 수 있다. 이를 위해, 장치(400)는 예를 들어 네트워크 인터페이스(416), 무선 네트워크 인터페이스(예를 들어 Wi-Fi를 지원하는 IEEE 802.11 또는 후속 표준 중 임의의 것에 정의됨), 또는 유선 네트워크 인터페이스(예를 들어 이더넷을 지원하는 IEEE 802.3 또는 후속 표준 중 임의의 것에 정의됨)를 포함할 수 있다. 네트워크 인터페이스(416)는 또한 예를 들어 인코딩된 비디오를 전송할 수 있는 블루투스 또는 유사한 임의의 다른 무선 표준을 지원할 수 있다. 다양한 컴포넌트(410, 412, 414 및 416)(존재하는 경우)는 하나 이상의 통신 버스(428)를 통해 연결될 수 있으므로, 이러한 컴포넌트는 서로 통신하고 필요에 따라 데이터를 교환할 수 있다.
장치(400)는 예를 들어 PTZ 카메라 또는 장면의 더 넓은 관점을 제공할 수 있는 어안 카메라의 형태로 건물에 장착되거나 장착 가능한 모니터링 카메라, 또는 임의의 다른 유형의 모니터링/감시 카메라일 수 있다. 장치(400)는 예를 들어 사람, 동물 및/또는 다양한 차량 등에 장착하기에 적합한 바디 카메라, 액션 카메라, 대시캠 또는 이와 유사한 것일 수 있다. 장치(400)는 예를 들어 하나 이상의 오버레이로부터 추가 정보를 얻기 위해 사용자가 흥미로운 장면을 휴대하고 촬영할 수 있는 스마트폰 또는 태블릿일 수 있다. 장치(400)는 또한 예를 들어 비디오 스트림을 통해 장면을 관찰하기 위해 사용자가 착용할 수 있는 가상 헤드셋 또는 유사한 것일 수 있거나 이를 포함할 수 있다. 장치(400)의 이러한 임의의 예에서, 장치(400)가 여전히 방법(200) 또는 그의 임의의 실시예를 수행할 수 있는 한, 장치(400)는 여기에서 이미 설명된 것 이외의 모든 필요한 구성요소(존재하는 경우)를 포함할 수 있다고 생각된다.
본 명세서에서 더 자세히 설명하지는 않지만, 장치(400)(예를 들어, 카메라)는 사람, 건물, 거리, 차량, 동물, 관광 명소 또는 이와 유사한 정보를 제공하고 사용자에게 유용한 정보를 제공하기 위해 이러한 객체에 대한 적절한 오버레이를 생성한다. 물체의 식별은 예를 들어 기계 학습 알고리즘 및/또는 장치(400)에 포함될 수 있는 GPS 수신기로부터 획득된 위치 정보에 기초하여 수행될 수 있다.
이제 방법(200)의 다른 대안적인 실시예가 도 2b를 참조하여 설명될 것이다. 도 2b는 단계 S204 후에 방법(200)이 따르는 대안적인 절차를 개략적으로 도시한다. 단계 S207(단계 S204 이후에 반드시 수행되는 것은 아님)에서, 오버레이를 제2 이미지/제2 프레임의 일부로서 직접 추가/렌더링하는 데 필요한 계산 시간이 임계 값 미만인지 여부가 결정된다. 다르게 표현하면, 단계 S207은 장면의 카메라 및/또는 객체가 이동하거나 변경된 후 오버레이가 평소와 같이(즉, 전통적으로 수행된 대로) 다시 렌더링될 수 있도록 사용 가능한 계산 리소스가 충분한지 여부를 추정하는 것을 포함한다. 추정된 계산 시간이 임계 값 미만인 경우(여기서 임계 값은 예를 들어 사용 가능한 계산 리소스가 거의 없는 경우 더 낮고 더 많은 계산 리소스가 현재 사용 가능한 경우 더 높음), 방법은 다음에 설명된 단계 S205 및 S206으로 진행하는 대신 (도 2a 참조) 오버레이가 원하는 위치에서 제2 이미지에 (직접) 추가/렌더링된 다음, 비디오 스트림의 제2 프레임의 일부로서 (직접) 인코딩되는 단계 S205'로 진행한다. 여기서, 제2 프레임은 비-표시 프레임으로 표시하지 않고, 제1 프레임과 제2 프레임을 참조하는 제3 프레임의 생성은 생략될 수 있다. 한편, 이용 가능한 계산 자원이 시간상 제2 이미지에서 오버레이의 이러한 직접적인 재렌더링을 수행하기에 충분하지 않다고 결정되면, 방법(200)은 앞서 논의된 바와 같이 단계 S205 및 S206으로 진행할 수 있다.
도 2b를 참조하여 설명된 방법(200)의 대안적인 예를 사용함으로써, 예를 들어 변경 시 오버레이의 정상적인 재렌더링은 장면의 카메라 및/또는 객체는 필요할 때만 두 번째 비-표시 프레임과 소프트웨어 생성(및 삽입) 제3 프레임의 예상 활용으로 대체될 수 있다. 이것은 예를 들어 다음과 같은 이점이 있다. 카메라 및/또는 개체의 이동/변경 후 일반적으로 다시 렌더링하면 일반적으로 더 나은 시각적 경험을 제공하므로 이미지 품질이 향상된다. 그런 다음 제1 이미지와 제2 이미지를 캡처하는 사이에 발생하는 장면의 원근 변화도 고려된다.
위에서 설명된 임계값은 예를 들어 인코딩된 비디오 스트림을 출력하는 데 책임이 있는 장치(예: 모니터링 카메라)에서 사용되는 프로세서 또는 다른 처리 회로의 현재 부하에 기초하여 지속적으로 업데이트될 수 있다. 예를 들어, 장치가 다른 리소스 집약적인 작업(예: 장면에서 여러 개체 추적 또는 이와 유사한 작업)에 많이 사용되는 경우 두 번째 비-표시 프레임 및 소프트웨어 생성(및 삽입된) 제3 프레임을 활용하는 구상된 방법 프레임은 예를 들어 고정된 상태를 유지하도록 오버레이의 위치를 업데이트하는 더 빠른 방법을 제공할 수 있다. 허용 가능한 시각적 품질로 장면 또는 장면의 특정 개체. 사용 가능한 계산 리소스 및 부하에 대한 이러한 확인은 예를 들어 초당 여러 번 또는 원하는 간격으로 수행할 수 있다. 따라서 오버레이의 정상적인 재렌더링이 불가능한 경우 예상된 방법을 백업으로 사용할 수 있다.
본 명세서에서 일반적으로 예상되는 바와 같이, 제2 이미지에서 오버레이의 원하는 위치는 예를 들어 제1 이미지에서의 위치를 알고 예를 들어 제1 이미지와 제2 이미지를 캡처하는 사이에 줌 레벨, 팬, 틸트 등과 관련하여 카메라가 어떻게 변경되었는지 알고 있음으로써 획득/결정될 수 있다. 따라서 제2 이미지의 원하는 위치와 제1 이미지의 오버레이 위치 간의 차이는 예를 들어 카메라가 고정된 객체에 장착되지 않은 경우 카메라의 이러한 정보를 기반으로 계산될 수 있다. 건물의 경우 카메라의 방향과 위치가 어떻게 변경되었는지 확인하기 위해 추가 정보가 필요할 수 있다. 필요한 경우 이러한 추가 정보는 예를 들어 장착된 하나 이상의 적절한 센서에서 얻을 수 있다고 생각된다. 카메라 자체 및/또는 카메라가 고정되지 않은 객체에 장착된다. 다른 실시예에서, 제2 이미지에서 예를 들어 객체 감지 및/또는 추적을 위한 것과 같은 하나 이상의 이미지/비디오 분석 알고리즘을 이용하여 오버레이의 정확한 위치를 식별함으로써 제2 이미지에서 원하는 위치(및 제1 이미지에 대한 대응하는 차이 및 대응하는 모션 벡터(들))를 찾는 것이 가능하다고 생각된다.
본 명세서에 제시된 다양한 실시예의 요약에서, 본 개시는 장면의 이미지에서 오버레이의 위치가 업데이트될 필요가 있는 인코딩된 비디오 스트림에서 오버레이를 제공(및 위치를 업데이트)하는 개선된 방법을 제공한다. 구상된 솔루션은 그러한 시간마다 오버레이의 재렌더링을 완료하는 데 사용할 수 있는 계산 리소스가 불충분할 가능성이 있는 문제를 극복한다. 제2 프레임을 비-표시 프레임으로 표시하고 대신 이 제2 프레임을 참조하는 소프트웨어 생성 제3 프레임을 삽입하면 오버레이가 위치하지 않아야 하는 영역의 장면에 대한 이미지 정보가 간단한 복사 작업으로 제2 프레임으로부터 제3 프레임에 제공될 수 있다. 마찬가지로 제3 프레임에서 제1 프레임도 참조함으로써 마지막 프레임에서 이 정보를 복사하여 오버레이 자체에 대한 이미지 정보를 제3 프레임에 제공할 수 있다. 여기서 오버레이는 제1 프레임부터 적절하게 렌더링되었다(물론 장면의 카메라 및/또는 물체가 어떻게 변경/이동했는지에 따라 제공된 적절한 모션 벡터를 사용하여). 결과적으로 제3 프레임(새로 원하는 위치의 오버레이 포함)은 다른 프레임에서 이미 사용 가능한 정보를 참조하여 인코더에서 생성할 수 있으므로 제3 프레임을 준비하고 인코딩하는 데 필요한 계산 시간이 줄어든다. 제2 이미지의 새 위치에서 오버레이를 다시 렌더링해야 한다. 유사하게, 해당 디코더는 방법에 의해 영향을 받지 않고, 구상된 방법으로부터 출력된 인코딩된 비디오 스트림에 의해 지시된 대로 다른 프레임으로부터 정보를 복사함으로써 평소와 같이 진행할 수 있다. 다르게 표현하면, 모션 벡터, 시간 예측 프레임, 비-표시 프레임 등의 개념을 지원하는 현재 사용 가능한 인코더를 수정 없이 사용할 수 있다. 방법은 또한 이들의 수정 없이 이미 이용 가능한 인코더를 사용하여 수행될 수 있는데, 이는 제3 프레임이 (소프트웨어를 사용하여) 수동으로 생성될 수 있고 이러한 인코더로부터의 출력에 바로 삽입(또는 결합)되어 여기에서 예상되는 바와 같이 인코딩된 비디오 스트림을 생성할 수 있기 때문이다.
특징 및 요소가 특정 조합으로 위에서 설명될 수 있지만, 각각의 특징 또는 요소는 다른 특징 및 요소 없이 단독으로 또는 다른 특징 및 요소와 함께 또는 없이 다양한 조합으로 사용될 수 있다. 또한, 개시된 실시예에 대한 변형은 청구된 발명을 실시할 때 도면, 개시 및 첨부된 청구범위의 연구로부터 당업자에 의해 이해되고 영향을 받을 수 있다.
청구범위에서 "comprising" 및 "including"이라는 단어는 다른 요소를 배제하지 않으며, 부정관사 "a" 또는 "an"은 복수를 배제하지 않는다. 특정 기능이 서로 다른 종속항에 인용된다는 사실만으로 이러한 기능의 조합이 이점을 얻기 위해 사용될 수 없음을 의미하지 않는다.
110, 310: 장면의 제1 이미지
112, 312: 장면의 제2 이미지
120, 320: 오버레이
120', 320': 제1 이미지에서 오버레이의 위치
124, 324: 오버레이와 관련된 장면의 특정 객체
130, 330: 오버레이 위치 이동
132, 332: 모션 벡터(들)
140, 340: 비디오 스트림
150, 350: 제1 (이미지) 프레임
152, 352: 제2 (이미지) 프레임
154, 354: 제3 (이미지) 프레임
160, 360: 제3 프레임에서 시간적으로 예측된 매크로블록
161, 361: 제1 프레임의 소스 매크로블록
162, 362: 제3 프레임의 스킵-매크로블록
163, 363: 제2 프레임의 소스 매크로블록
170, 370: 제1 프레임의 소스 매크로블록에 대한 참조
172, 372: 제2 프레임의 소스 매크로블록에 대한 참조
200: 방법(순서도)
S201-S206: 방법 단계
S205', s207: 대체 방법 단계
400: 장치
410: 프로세서/처리 회로
412: 메모리
414: 네트워크 인터페이스
416: 추가 항목(들)
428: 통신 버스(들)

Claims (10)

  1. 오버레이를 포함하는 비디오 스트림을 인코딩하는 방법으로,
    a) 장면의 제1 이미지를 캡처하는 단계;
    b) 제1 위치에서 상기 제1 이미지에 오버레이를 추가하고, 인코딩된 비디오 스트림의 제1 프레임의 일부로서 상기 제1 이미지를 인코딩하는 단계;
    c) 장면의 제2 이미지를 캡처하는 단계;
    d) i) 상기 제1 이미지를 캡처하는 것과 상기 제2 이미지를 캡처하는 사이의 카메라 시야의 변화에 관한 정보, ii) 상기 제1 이미지와 상기 제2 이미지를 캡처하는 사이의 카메라 위치의 변화에 관한 정보, 및 iii) 상기 오버레이가 상기 제2 이미지의 장면에서 연관되고, 상기 제2 이미지의 상기 오버레이의 원하는 위치가 상기 제1 이미지의 상기 오버레이의 상기 제1 위치와 다른 객체의 감지 및/또는 추적된 위치 중 적어도 하나에 기초하여 상기 제2 이미지에서 상기 오버레이의 원하는 위치를 계산하는 단계;
    e) 제2 프레임을 비-표시 프레임으로서 마킹하는 것을 포함하여, 상기 비디오 스트림의 상기 제2 프레임의 일부로서 상기 제2 이미지를 인코딩하는 단계, 및
    f) 상기 제1 프레임을 참조하는 시간적으로 예측된 매크로블록인 상기 오버레이의 원하는 위치에 제3 프레임의 하나 이상의 매크로블록을 포함하고, 상기 비디오 스트림의 상기 제2 프레임을 참조하는 스킵-매크로블록인 상기 오버레이의 원하는 위치의 외부에 있는 상기 제3 프레임의 하나 이상의 매크로블록을 포함하며, 상기 제1 이미지의 상기 오버레이의 상기 제1 위치와 상기 제2 이미지의 상기 오버레이의 상기 계산된 원하는 위치 사이의 차이에 기초하여 상기 하나 이상의 시간적으로 예측된 매크로블록의 움직임 벡터를 계산하는 것을 포함하여, 상기 비디오 스트림의 상기 제3 프레임을 생성하고 인코딩하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제3 프레임은 상기 인코딩된 비디오 스트림에서 상기 제2 프레임 이후에 삽입되는 예측 프레임인 P-프레임, 또는 양방향 예측 프레임인 B-프레임인, 방법.
  3. 제1항에 있어서, 상기 제3 프레임은 상기 인코딩된 비디오 스트림에서 상기 제2 프레임 앞에 삽입된 양방향 예측 프레임인 B-프레임인, 방법.
  4. 제1항에 있어서, 동일한 카메라를 사용하여 상기 제1 이미지와 상기 제2 이미지를 캡쳐하는 단계를 포함하는, 방법.
  5. 제1항에 있어서, 상기 방법은 상기 제1 이미지 및/또는 상기 제2 이미지를 캡처하는데 사용되는 카메라에서 수행되는, 방법.
  6. 제1항에 있어서, 상기 오버레이는 상기 장면에 대해 고정되는, 방법.
  7. 제1항에 있어서, 상기 제2 이미지 및 상기 제2 프레임의 일부로서 상기 오버레이를 렌더링 및 인코딩하는데 필요한 계산 시간을 추정하는 단계, 상기 추정된 계산 시간이 임계 값 미만이라고 판단되는 경우, 단계 a)-d)를 수행하지만 단계 e) 및 f)를 수행하지 않고, 대신 단계 d) 후에:
    e') 상기 원하는 위치에서 상기 제2 이미지에 오버레이를 추가하고, 상기 비디오 스트림의 상기 제2 프레임의 일부로서 상기 제2 이미지를 인코딩하는 단계를 더 포함하는, 방법.
  8. 오버레이를 포함하는 비디오 스트림을 인코딩하는 장치로서,
    프로세서, 및
    상기 프로세서에 의해 실행될 때 상기 장치가 다음을 수행하도록 하는 명령을 저장하는 메모리:
    - 장면의 제1 이미지를 캡처하고;
    - 제1 위치에서 상기 제1 이미지에 오버레이를 추가하고, 인코딩된 비디오 스트림의 제1 프레임의 일부로서 상기 제1 이미지를 인코딩하며;
    - 장면의 제2 이미지를 캡처하고;
    - i) 상기 제1 이미지를 캡처하는 것과 상기 제2 이미지를 캡처하는 사이의 카메라 시야의 변화에 관한 정보, ii) 상기 제1 이미지와 상기 제2 이미지를 캡처하는 사이의 카메라 위치의 변화에 관한 정보, 및 iii) 상기 오버레이가 상기 제2 이미지의 장면에서 연관되고, 상기 제2 이미지의 상기 오버레이의 원하는 위치가 상기 제1 이미지의 상기 오버레이의 상기 제1 위치와 다른 객체의 감지 및/또는 추적된 위치 중 적어도 하나에 기초하여 상기 제2 이미지에서 상기 오버레이의 원하는 위치를 계산하고;
    - 제2 프레임을 비-표시 프레임으로서 마킹하는 것을 포함하여, 상기 비디오 스트림의 상기 제2 프레임의 일부로서 상기 제2 이미지를 인코딩하며; 및
    - 상기 제1 프레임을 참조하는 시간적으로 예측된 매크로블록인 상기 오버레이의 원하는 위치에 제3 프레임의 하나 이상의 매크로블록을 포함하고, 상기 비디오 스트림의 상기 제2 프레임을 참조하는 스킵-매크로블록인 상기 오버레이의 원하는 위치의 외부에 있는 상기 제3 프레임의 하나 이상의 매크로블록을 포함하며, 상기 제1 이미지의 상기 오버레이의 상기 제1 위치와 상기 제2 이미지의 상기 오버레이의 상기 계산된 원하는 위치 사이의 차이에 기초하여 상기 하나 이상의 시간적으로 예측된 매크로블록의 움직임 벡터를 계산하는 것을 포함하여, 상기 비디오 스트림의 상기 제3 프레임을 생성하고 인코딩하는, 장치
  9. 제8항에 있어서, 상기 장치는 상기 제1 이미지 및 상기 제2 이미지 중 적어도 하나를 캡쳐하도록 구성된 감시 카메라인, 장치.
  10. 오버레이를 포함하는 비디오 스트림을 인코딩하기 위한 컴퓨터 프로그램을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서, 장치의 프로세서에 의해 실행될 때 상기 장치가 다음을 수행하도록 구성된:
    - 장면의 제1 이미지를 캡처하고;
    - 제1 위치에서 상기 제1 이미지에 오버레이를 추가하고, 인코딩된 비디오 스트림의 제1 프레임의 일부로서 상기 제1 이미지를 인코딩하며;
    - 장면의 제2 이미지를 캡처하고;
    - i) 상기 제1 이미지를 캡처하는 것과 상기 제2 이미지를 캡처하는 사이의 카메라 시야의 변화에 관한 정보, ii) 상기 제1 이미지와 상기 제2 이미지를 캡처하는 사이의 카메라 위치의 변화에 관한 정보, 및 iii) 상기 오버레이가 상기 제2 이미지의 장면에서 연관되고, 상기 제2 이미지의 상기 오버레이의 원하는 위치가 상기 제1 이미지의 상기 오버레이의 상기 제1 위치와 다른 객체의 감지 및/또는 추적된 위치 중 적어도 하나에 기초하여 상기 제2 이미지에서 상기 오버레이의 원하는 위치를 계산하고;
    - 제2 프레임을 비-표시 프레임으로서 마킹하는 것을 포함하여, 상기 비디오 스트림의 상기 제2 프레임의 일부로서 상기 제2 이미지를 인코딩하며; 및
    - 상기 제1 프레임을 참조하는 시간적으로 예측된 매크로블록인 상기 오버레이의 원하는 위치에 제3 프레임의 하나 이상의 매크로블록을 포함하고, 상기 비디오 스트림의 상기 제2 프레임을 참조하는 스킵-매크로블록인 상기 오버레이의 원하는 위치의 외부에 있는 상기 제3 프레임의 하나 이상의 매크로블록을 포함하며, 상기 제1 이미지의 상기 오버레이의 상기 제1 위치와 상기 제2 이미지의 상기 오버레이의 상기 계산된 원하는 위치 사이의 차이에 기초하여 상기 하나 이상의 시간적으로 예측된 매크로블록의 움직임 벡터를 계산하는 것을 포함하여, 상기 비디오 스트림의 상기 제3 프레임을 생성하고 인코딩하는, 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020220188754A 2022-02-17 2022-12-29 오버레이를 포함하는 비디오 스트림의 인코딩 KR20230123870A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP22157291.0 2022-02-17
EP22157291.0A EP4231638A1 (en) 2022-02-17 2022-02-17 Encoding of a video stream including an overlay

Publications (1)

Publication Number Publication Date
KR20230123870A true KR20230123870A (ko) 2023-08-24

Family

ID=80683084

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220188754A KR20230123870A (ko) 2022-02-17 2022-12-29 오버레이를 포함하는 비디오 스트림의 인코딩

Country Status (6)

Country Link
US (1) US20230262238A1 (ko)
EP (1) EP4231638A1 (ko)
JP (1) JP2023120155A (ko)
KR (1) KR20230123870A (ko)
CN (1) CN116614630A (ko)
TW (1) TW202337210A (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3591972A1 (en) * 2018-07-02 2020-01-08 Axis AB Method and system for encoding video with overlay
EP3796655B1 (en) * 2019-09-20 2021-11-03 Axis AB Video privacy mask in forward predicted video frame
EP3902244B1 (en) * 2020-04-23 2022-03-23 Axis AB Controlling a pan-tilt-zoom camera

Also Published As

Publication number Publication date
TW202337210A (zh) 2023-09-16
CN116614630A (zh) 2023-08-18
EP4231638A1 (en) 2023-08-23
JP2023120155A (ja) 2023-08-29
US20230262238A1 (en) 2023-08-17

Similar Documents

Publication Publication Date Title
US10582196B2 (en) Generating heat maps using dynamic vision sensor events
JP4846719B2 (ja) パノラマ映像の動き推定及び補償
US7623682B2 (en) Method and device for motion estimation and compensation for panorama image
JP2020025251A (ja) オーバーレイを伴うビデオを符号化するための方法およびシステム
US20080232716A1 (en) Video Processing Method and Device for Depth Extraction
US20150222918A1 (en) Inter-prediction method and video encoding/decoding method using the inter-prediction method
EP3796655B1 (en) Video privacy mask in forward predicted video frame
US10798418B2 (en) Method and encoder for encoding a video stream in a video coding format supporting auxiliary frames
US10425656B2 (en) Method of inter-frame prediction for video encoding and decoding
US20220132030A1 (en) Generating substitute image frames based on camera motion
JP6707334B2 (ja) リアルタイム符号化のための方法及び装置
JP2018535572A (ja) カメラプレビュー
JP7425012B2 (ja) パンチルトズームカメラを制御すること
TW202231068A (zh) 用於產生影像圖框之串流的方法及系統
JP2007184741A (ja) 多視点映像符号化方法、装置及びプログラム
JP2005175970A (ja) 撮像システム
KR20230123870A (ko) 오버레이를 포함하는 비디오 스트림의 인코딩
JP7299690B2 (ja) 画像処理装置およびその制御方法
JP4235209B2 (ja) 動きベクトル検出装置および動きベクトル検出方法
KR20220054198A (ko) 비디오 피드에서의 이벤트 감지를 기반으로 한 경고 생성
JP2020080479A (ja) 動画記録再生装置、動画伝送システムおよび方法
US20150222923A1 (en) Inter-prediction method and video encoding/decoding method using the inter-prediction method
JP7336185B2 (ja) 画像処理装置および画像処理方法
JP5880737B2 (ja) 動画像符号化装置
JP2002077898A (ja) 移動物体検出システム