[go: up one dir, main page]

KR102646695B1 - 비디오 프레임 보간을 위한 특징 피라미드 워핑 - Google Patents

비디오 프레임 보간을 위한 특징 피라미드 워핑 Download PDF

Info

Publication number
KR102646695B1
KR102646695B1 KR1020217025870A KR20217025870A KR102646695B1 KR 102646695 B1 KR102646695 B1 KR 102646695B1 KR 1020217025870 A KR1020217025870 A KR 1020217025870A KR 20217025870 A KR20217025870 A KR 20217025870A KR 102646695 B1 KR102646695 B1 KR 102646695B1
Authority
KR
South Korea
Prior art keywords
input
frame
input frame
feature
optical flow
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020217025870A
Other languages
English (en)
Other versions
KR20210105442A (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 KR20210105442A publication Critical patent/KR20210105442A/ko
Application granted granted Critical
Publication of KR102646695B1 publication Critical patent/KR102646695B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0135Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
    • H04N7/014Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes involving the use of motion vectors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/18Image warping, e.g. rearranging pixels individually
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/269Analysis of motion using gradient-based methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0127Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Television Systems (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

방법들, 시스템들, 및 저장 매체들은 비디오 프레임 보간에서의 모션 추정을 위하여 설명된다. 개시된 실시예들은 모션 추정을 위한 이미지 표현들로서 특징 피라미드들을 이용하고, 프레임 보간을 위하여 특징 피라미드들을 심층 신경망으로 끊김없이 통합한다. 특징 피라미드는 2개의 입력 프레임의 각각에 대하여 추출된다. 이 특징 피라미드들은 광학 흐름을 통해 추정된 프레임간 모션에 따라 입력 프레임들과 함께 타겟 시간적 위치로 워핑된다. 프레임 합성 네트워크는 사전-워핑된 특징 피라미드들 및 입력 프레임들로부터 보간 결과를 예측하기 위하여 이용된다. 특징 피라미드 추출기 및 프레임 합성 네트워크는 프레임 보간의 태스크를 위하여 공동으로 훈련된다. 광범위한 정량적 및 정성적 평가는 특징 피라미드들을 사용하는 설명된 실시예들이 강건한 고품질 비디오 프레임 보간을 가능하게 한다는 것을 입증한다. 다른 실시예들이 설명될 수 있고 및/또는 청구될 수 있다.

Description

비디오 프레임 보간을 위한 특징 피라미드 워핑
본 출원은 2019년 1월 15일자로 출원된 미국 가출원 제62/792,693호에 대한 우선권을 주장하고, 이 미국 가출원은 이로써, 그 전체적으로 참조로 완전히 원용된다.
본 개시는 일반적으로, 신호 프로세싱 및 컴퓨터 비전(computer vision)의 분야들에 관한 것으로, 특히, 특징 피라미드 워핑(feature pyramid warping)을 통한 비디오 프레임 보간(video frame interpolation)에 관한 것이다.
본 명세서에서 제공된 배경 설명은 개시의 맥락을 일반적으로 제시하는 목적을 위한 것이다. 본 명세서에서 달리 언급되지 않으면, 이 섹션에서 설명된 자료들은 본원에서의 청구항들에 대한 종래 기술이 아니고, 이 섹션에 포함되는 것이 종래 기술로 인정되지는 않는다.
비디오 프레임 보간은 많은 실용적인 애플리케이션을 갖는 컴퓨터 비전에서의 전형적인 문제이다. 예를 들어, 비디오 프레임 보간은 인간의 뇌파 전력 스펙트럼(human electroencephalographic power spectrum)을 분석함으로써 최근에 입증된 바와 같이, 비디오의 프레임 레이트를 변환하고 이를 모니터의 리프레시 레이트(refresh rate)와 정합하여 비디오 시청 경험을 개선하는 데 이용될 수 있다([R26], [R27]). 비디오 프레임 보간은 또한, 이와 다르게, 색 전파(color propagation)와 같은 노동-집약적 비디오 편집 태스크(task)들을 지원할 수 있다([R31]).
각각의 프레임을 수정하지 않고, 대신에 약간의 핵심 프레임들만을 수정하고, 보간을 이용하여 이 수정들을 나머지 프레임들에 전파할 수 있다. 프레임 보간은 또한, 비디오들에 대한 프레임간 압축(inter-frame compression)을 지원할 수 있다([R47]). 이 애플리케이션은 시간 도메인에서 비디오 프레임 보간을 사용하지만, 비디오 프레임 보간은 주어진 뷰포인트(viewpoint)들 사이에서 보간을 행함으로써, 공간에서도 뷰(view)들을 합성하도록 적용될 수 있다([R09]). 전형적으로, 광학 흐름(optical flow)의 형태인, 입력 프레임들 사이의 고품질 밀집 대응성(high-quality dense correspondence)은 보간을 위한 핵심사항이다.
그러나, 광학 흐름 추정 자체는 어려운 문제이고, 폐쇄(occlusion), 큰 모션, 및 질감(texture)의 결여와 같은 어려운 과제에 직면한다([R06], [R19]). 이 어려움들을 해결하기 위하여, 많은 현존하는 기법들은 대응성을 확립하기 위해 다양한 특징들을 추출한다([R01], [R04], [R05], [R15], [R46]). 최근에, [R16] 및 [R44] 등은 광학 흐름 추정을 위한 특징 피라미드 추출기를 훈련(train)시킬 것을 제안하였고, 새로운 최신 결과들을 달성하였다. 그러나, 비디오 향상을 위한 광학 흐름을 이용하기 위하여, [R49]는 광학 흐름을 타겟 태스크로 미세-조율(fine-tune)하는 것이 중요하다는 것을 보여준다.
광학 흐름 추정은 비디오 프레임 보간의 필수적인 부분이다. 비-심층 학습(non-deep learning) 광학 흐름 방법들의 조사들은 [R02] 및 [R43]에서 찾을 수 있다. [R07]은 컨볼루션 신경망(convolutional neural network)이 광학 흐름 추정을 위한 전통적인 변분 접근법(variational approach)과 경쟁할 수 있다는 것을 보여준다. [R17]은 작고 큰 변위들을 적절하게 처리하기 위하여 다수의 이러한 네트워크를 적층한다. [R39]는 전형적인 광학 흐름 원리들을 심층 학습(deep learning)과 조합하기 위하여 공간적 피라미드(spatial pyramid)들을 사용한다. 최근에, [R16] 및 [R44]는 광학 흐름 예측을 추가로 개선시키는 더욱 진보된 공간적 피라미드 기법들을 제안한다.
규격형 광학 흐름(off-the-shelf optical flow)은 비디오 프레임 보간을 수행하기 위하여 직접적으로 이용될 수 있다. [R02]는 광학 흐름 추정을 위한 보조적 에러 메트릭으로서 프레임 보간을 사용하기 위하여, 아웃사이드-인(outside-in) 전략을 이용하고 폐쇄 마스크(occlusion mask)들을 고려하여 임의의 구멍들을 채우면서 입력 프레임들을 워핑하는 것을 제안한다. [R13]은 마코프 랜덤 필드 방법(Markov random field method)을 이용하여 선택된 중간 프레임 형태 후보 흐름들을 합성하기 전에, 순방향 및 역방향 흐름에 따라 폐쇄들에 대해 추론한다. [R20]은 보간 결과를 합성하기 위하여 이 예측들을 선형적으로 융합하기 전에, 양측 방향으로 광학 흐름을 공동으로 예측한다. [R34]는 양방향 흐름에 따라 입력 프레임들을 마찬가지로 워핑하지만, 맥락 정보를 활용하는 합성 네트워크를 이용하여 입력 프레임들을 융합한다. 광학 흐름을 이러한 방식으로 이용함으로써, 임의의 시간적 위치에서의 프레임 보간이 가능하다.
광학 흐름 결과들을 출력하기 위하여 규격형 방법을 직접적으로 이용하는 것 외에도, 일부 방법들은 비디오 프레임 보간의 태스크를 위한 광학 흐름 추정을 맞춤화한다. [R38]은 광학 흐름 공식을 수정하고 광학 흐름 공식을 대칭적으로 되게 하고, 따라서, 양측 방향으로 광학 흐름을 추정하는 것을 회피한다. [R30]은 컨볼루션 신경망을 이용하여 복셀 흐름(voxel flow)을 추정하고, 선택 마스크들을 통합하여 뷰 합성(view synthesis)을 수행한다. [R49]는, 광학 흐름 공식(optical flow formulation)을 수정하지 않지만, 프레임 보간과 같은 특정 비디오 프로세싱 태스크들을 위한 광학 흐름을 최적화하는 태스크-지향된 흐름(task-oriented flow)을 제안한다.
광학 흐름을 이용하는 대신에, [R32], [R33]은 모션(motion)을 주파수 도메인에서의 위상-시프트(phase-shift)로서 나타낸다. 이 접근법은 모션 블러(motion blur) 및 밝기 변화들을 포함하는 까다로운 시나리오들에서 잘 수행되지만, 위상 모호성(phase ambiguity)들로 인해 이 접근법이 처리할 수 있는 모션 범위에서 제한된다. [R35], [R36]은 모션 추정 및 뷰 합성을 적응적 컨볼루션(adaptive convolution)을 통해 단일 단계로 조합한다. 이것은 작은 변위에 대해서는 강건한 공식이지만, 제한된 커널 크기(kernel size)로 인해 큰 변위를 처리할 수 없다.
비디오 프레임 보간은 신규한 뷰 보간에 관련되고, 여기서, 새로운 이미지는 2개의 주어진 뷰 사이의 뷰포인트로부터 렌더링된다. 프레임 보간에 의한 것과 같이, 심층 학습은 뷰 보간에도 적용되었다. 예를 들어, [R09]는 넓은 기준선에 의해 분리된 뷰들 사이에서 보간하기 위하여 평면 스윕 볼륨(plane sweep volume)을 신경망으로 통합한다. [R51]에서, 신경망은 픽셀들을 워핑하고 배합하여 신규한 뷰들을 합성하기 위하여 외관 흐름(appearance flow)을 추정하도록 훈련된다. [R22]에서, 신경망들은 시차 추정 및 배합을 별도로 모델링하는 데 이용되고, 입력 뷰들의 희소 세트(sparse set)로부터 새로운 뷰들을 합성하기 위하여 시차 추정 및 배합을 공동으로 훈련시킨다.
실시예들은 첨부하는 도면들과 함께 다음의 상세한 설명에 의해 용이하게 이해될 것이다. 이 설명을 용이하게 하기 위하여, 유사한 참조 번호들은 유사한 구조적 요소들을 나타낸다. 실시예들은 첨부하는 도면들의 도면에서 제한이 아니라 예로서 예시되어 있다.
도 1은 비디오 프레임 보간을 위한 예시적인 비디오 프레임들을 도시한다. 도 2는 다양한 실시예들에 따른 프레임 보간 신경망의 예시적인 아키텍처를 도시한다. 도 3은 다양한 실시예들에 따른 특징 피라미드 추출기의 예시적인 아키텍처를 도시한다. 도 4는 다양한 실시예들에 따른 특징 합성 네트워크의 예시적인 아키텍처를 도시한다. 도 1T는 2개의 상이한 광학 흐름 방법 FlowNet2([R17]) 및 PWC-Net([R44])에 대한 기준선 비교들이 도시되는 표를 도시한다. 도 5는 [R08]에 따라 상이한 태스크-특정 특징 피라미드들로부터 추출된 예시적인 특징들을 도시한다. 도 2T는 몇몇 공개 데이터세트들에 대한 다양한 기존의 비디오 프레임 보간 방법들 및 FPW 실시예들의 정량적 비교가 도시되는 표를 도시한다. 도 3T는 광학 흐름에 대한 Middlebury 벤치마크(Middlebury benchmark)([R02])의 관련된 보간 카테고리 상의 정량적 등급이 도시되는 표를 도시한다. 도 6은 높은 프레임-레이트 Sintel 데이터세트([R19])에 대한 피라미드 워핑 실시예들의 멀티-프레임 보간 능력의 평가를 도시한다. 도 7a는 몇몇 기존의 비디오 보간 기법들과의 특징 피라미드 워핑 실시예들의 비교를 포함하는, 3개의 상이한 비디오 보간 예에 대한 보간 결과들을 도시한다. 도 7b는 특징 피라미드 워핑 실시예들을 몇몇 기존의 비디오 보간 기법들과 비교하는, 4개의 상이한 예에 대한 추가적인 보간 결과들을 도시한다. 도 8은 2개의 상이한 비디오 보간 시나리오에 대한 특징 피라미드 워핑 실시예들의 멀티-프레임 보간 능력들의 입증을 도시한다.
도 9는 다양한 실시예들에 따라, 본 개시의 다양한 양태들을 실시하기 위하여 적합한 예시적인 컴퓨팅 시스템을 예시한다. 도 10은 장치에 의한 명령들의 실행에 응답하여, 장치로 하여금, 본 개시의 선택된 양태들을 실시하게 하는 명령들(또는 명령들을 생성하는 데이터)을 저장하는 데 사용하기에 적합할 수 있는 예시적인 비-일시적 컴퓨터-판독가능 저장 매체들을 예시한다.
본 명세서에서 설명된 실시예들은 비디오 프레임 보간을 위한 모션 추정, 그리고 특히, 비디오 프레임 보간을 위하여 최적화된 특징 피라미드들을 이용하는 프레임 보간을 위한 머신 학습(machine learning)을 제공하는 것에 관련된다. 프레임 보간의 하나의 목표는 모션 추정 및 모션 보상을 달성하기 위한 것이다. 모션 추정은 2개의 이미지 사이의 상태를 추정하는 것, 및/또는 하나의 2D 이미지로부터 (통상적으로, 비디오 프레임들의 시퀀스(sequence)에서의 인접한 프레임들로부터의) 또 다른 2D 이미지로의 변환을 설명하는 모션 벡터(motion vector)들을 결정하는 것을 포함한다. 모션 벡터들은 전체 이미지 또는 이미지의 부분들(예컨대, 픽셀들의 또는 픽셀마다의 직사각형 또는 임의 형상의 블록들)에 관련될 수 있다. 모션 벡터들은 변환 모델 또는 일부 다른 유형의 모델로 나타낼 수 있다. 모션 보상은 비디오에서의 객체들의 모션 및/또는 카메라의 모션을 참작함으로써 이전의 프레임 및/또는 하나 이상의 미래의 프레임이 주어질 경우에, 비디오에서의 프레임을 예측하는 것을 포함한다. 실시예들은 모션 추정을 위한 이미지 표현들로서의 특징 피라미드들의 파워(power)를 기반으로 하고, 프레임 보간을 위하여 특징 피라미드들을 심층 신경망(deep neural network)으로 끊김없이 통합한다. 본 개시는 특징 피라미드들을 강력한 이미지 표현으로서 활용하는 비디오 프레임 보간 실시예들을 제공하고, 프레임 보간의 태스크를 위하여 비디오 프레임 보간 실시예들을 최적화한다.
다양한 실시예들에서, 특징 피라미드는 2개의 입력 프레임의 각각에 대하여 추출된다. 이 특징 피라미드들은 광학 흐름을 통해 추정된 프레임간 모션(inter-frame motion)에 따라 입력 프레임들과 함께 타겟 시간적 위치로 워핑된다. 광학 흐름은 관찰자와 장면 사이의 상대적인 모션에 의해 야기된 시각적 장면에서의 객체들, 표면들, 및 에지들의 겉보기 모션(apparent motion)의 패턴, 및/또는 이미지 또는 비디오에서의 밝기 패턴들의 이동의 겉보기 속도(apparent velocity)들의 분포이다. 실시예들에서, 광학 흐름 컴포넌트는 비디오 프레임 보간 태스크들을 위하여 미세-조율된다. 프레임 합성 네트워크는 이어서, 이 사전-워핑된(pre-warped) 특징 피라미드들 및 입력 프레임들로부터 보간 결과를 예측하기 위하여 이용된다. 특징 피라미드 추출기 및 프레임 합성 네트워크는 공동으로 훈련되고, 이는 프레임 보간의 태스크를 위하여 이들을 최적화한다. 다른 실시예들이 설명되고 및/또는 청구된다.
다양한 실시예들에서, 심층 신경망은 특징 피라미드 추출기로서 사용되고, 특징 피라미드는 2개의 입력 프레임의 각각에 대하여 생성된다. 특징 피라미드들은 이어서, 비디오 프레임 보간을 위하여 미세-조율되는 규격품 광학 흐름 메커니즘에 의해 추정된 모션에 따라 중간 프레임의 타겟 시간적 위치로 사전-워핑된다. 프레임 합성 네트워크는 이 특징들에 의해 안내된 중간 프레임을 보간하기 위하여 사용된다. 특징 추출기 및 프레임 합성 네트워크는 비디오 프레임 보간을 위하여 이들을 최적화하도록 공동으로 훈련된다. 다른 실시예들이 설명되고 및/또는 청구된다.
본 명세서에서의 실시예들은 까다로운 시나리오들에서 비디오 프레임들을 보간할 수 있다. 본 명세서에서 논의된 실시예들의 파워는 강력한 이미지 표현으로서 특징 피라미드를 이용하는 것과, 특징 피라미드들이 고품질 이미지 합성을 위하여 필요한 미세한 세부사항들에 초점을 맞추는 것을 허용하는 특징 피라미드들의 사전-워핑의 조합으로부터 나온다. 실험에 의해 도시된 바와 같이, 프레임 보간을 위한 특징 피라미드들은 모션 추정을 위한 패턴들과 상이한 패턴들을 나타낸다. 또한, 특징 피라미드 추출기 네트워크 및 프레임 합성 네트워크의 공동 훈련은 비디오 프레임 보간을 위하여 둘 모두의 네트워크를 추가로 최적화한다. 최종적으로, 본 실시예들의 성능은 특정한 광학 흐름 방법과 밀접하게 결부되지 않는다. 본 개시는 또한, 본 명세서에서 논의된 다양한 실시예들에 따라 특징 피라미드들을 사용하는 것이 기존의 접근법들과 비교할 때에 강건한 고품질 비디오 프레임 보간을 가능하게 한다는 것을 입증하는 광범위한 정량적 및 정성적 평가를 제공한다. 실시예들은 프레임 보간에 대하여 본 명세서에서 설명되지만, 본 명세서에서의 실시예들은, 뷰 보간 및 멀티-프레임 보간을 위하여도 이용될 수 있다.
도면들을 지금부터 참조하면, 도 1은 본 명세서에서 논의된 실시예들의 특징 피라미드 워핑(Feature Pyramid Warping)(FPW) 기법들을 이용하는 하나의 예를 포함하는, 다양한 프레임 보간 방법들을 이용하는 비디오 프레임 보간을 위한 까다로운 예를 도시한다. 도 1에 의해 도시된 홍학 다리(flamingo leg) 이미지들은 그 정교한 형상 및 큰 모션으로 인해 상당한 난제를 제기한다. 도 1은 겹쳐 놓인 입력 프레임들, 태스크-지향된 흐름(task-oriented flow)(ToFlow)([R49]), 분리 가능한 컨볼루션(separable convolution)(SepConv) - ([R36]), 맥락-인지 합성(context-aware synthesis)(CtxSyn) - ([R34]), 및 FPW - 로서 지칭된 본 명세서에서 논의된 실시예들에 따른 홍학 다리(flamingo leg)들을 도시한다. 도 1로부터 보여질 수 있는 바와 같이, 홍학 다리의 이동을 추정하고 및/또는 보상하는 것은 어렵고, 현존하는 프레임 보간 방법들을 이용하는 것은 아티팩트(artifact) 또는 복제(duplication)의 어느 하나를 가진다. 프레임 보간 현존하는 방법들과 비교하면, FPW는 프레임 보간을 위한 특징 피라미드들을 활용하고 최적화하고, 이 까다로운 예에 대한 고품질 프레임 보간 결과를 달성한다.
도 1에 도시된 바와 같이, FPW는 까다로운 시나리오들에서 비디오 프레임들을 보간할 수 있다. FPW의 파워는 강력한 이미지 표현으로서 특징 피라미드를 이용하는 것과, 특징 피라미드들이 고품질 이미지 합성을 위하여 필요한 미세한 세부사항들에 초점을 맞추는 것을 허용하는 특징 피라미드들의 사전-워핑의 조합으로부터 나온다. 아래에서 더 상세하게 논의된 바와 같이, 프레임 보간을 위한 특징 피라미드들은 모션 추정을 위한 패턴들과 상이한 패턴들을 나타낸다. 또한, 특징 피라미드 추출기 네트워크 및 프레임 합성 네트워크의 공동 훈련은 비디오 프레임 보간을 위하여 둘 모두의 네트워크들을 추가로 최적화한다. 최종적으로, 본 명세서에서의 실시예들의 성능은 특정한 광학 흐름 구현예와 밀접하게 결부되지 않는다. FPW는 컨볼루션 네트워크들을 갖는 광학 흐름(FlowNet)([R07]), FlowNet 2.0(FlowNet2)([R17]), 또는 피라미드, 워핑, 및 비용 볼륨 신경망(Pyramid, Warping, and Cost volume neural network)(PWC-Net)([R44])가 이용되든지 간에 고품질 보간 결과들을 생성한다. 특히, 아래에서 논의된 정량적 및 정성적 평가는 특징 피라미드들을 사용하는 FPW가 기존의 기법들과 비교하여 강건한 고품질 비디오 프레임 보간을 가능하게 한다는 것을 입증한다.
I. 비디오 프레임 보간 실시예들
2개의 입력 프레임 I0 및 I1이 주어질 경우에, 비디오 프레임 보간은 중간 프레임 It를 생성하는 것을 추구하고, 여기서, t ∈ (0, 1)는 2개의 입력 프레임 사이의 원하는 시간적 위치를 정의한다. 실시예들에서, 특징 피라미드들은 고품질 비디오 프레임 보간을 위하여 프레임 합성 신경망과 통합된다.
I.A. 특징 피라미드 워핑
도 2는 다양한 실시예들에 따른 예시적인 프레임 보간 신경망(frame interpolation neural network)(FINN) 아키텍처(200)를 도시한다. FINN 아키텍처(200)(또는 간단하게 "FINN(200)")는 고품질 비디오 프레임 보간을 위한 이미지 표현으로서 특징 피라미드들을 통합하는 심층 신경망이다. 도 2에 의해 도시된 바와 같이, FINN 아키텍처(200)는 특징 피라미드 추출기(feature pyramid extractor)(FPE)들(300), 순방향 워핑 엔진(forward warping engine)(FWE)들(205), 프레임 합성 신경망(frame synthesis neural network)(FSN)(400), 및 광학 흐름 추정기(optical flow estimator)(OFE)들(215)을 포함한다. 2개의 OFE(215), 2개의 FPE(300), 2개의 FWE(205), 및 하나의 FSN(400)이 도 2에 의해 도시되지만, 다른 실시예들에서, FINN(200)은 오직 하나의 OFE(215), 하나의 FPE(300), 하나의 FEW(205), 및 하나의 FSN(400)을 포함할 수 있거나, 도시된 것보다 더 많은 OFE들(215), FPE들(300), FWE들(215), 및 FSN들(400)을 포함할 수 있다.
OFE들(215)은 2개의 입력 프레임 I0 및 I1의 양쪽 방향에서 프레임간 모션을 추정하고, 및/또는 2개의 입력 프레임 I0 및 I1 사이의 양방향 광학 흐름을 추정한다. 실시예들에서, OFE들(215)은 순방향 광학 흐름(2160)(예컨대, 입력 프레임 I0로부터 입력 프레임 I1로) 및 역방향 광학 흐름(2161)(예컨대, 입력 프레임 I1로부터 입력 프레임 I0로)을 추정한다. 광학 흐름은 픽셀들이 하나의 프레임으로부터 또 다른 프레임으로 어떻게 이동하는지를 표시한다. 예를 들어, 광학 흐름은 어떤 픽셀들이 하나의 프레임으로부터 다음 프레임으로 어떻게(예컨대, 어떤 방향(들)으로) 이동하였는지를 표시할 수 있다. 도 2의 예에서, 자동차는 프레임 I0로부터 프레임 I1로 순방향으로 이동하는 것으로 도시되고, 자동차는 프레임 I1로부터 프레임 I0로 역방향으로 이동하고, 순방향 흐름(2160)은 프레임 I0로부터 프레임 I1로의 자동차의 흐름을 추정하고, 역방향 흐름(2161)은 프레임 I1로부터 프레임 I0로의 자동차의 흐름을 추정한다.
OFE들(215)은 프레임 보간을 위한 모션 추정을 수행하는 소프트웨어 엔진들, 모듈들, 객체(object)들, 또는 다른 유사한 논리적 유닛들이다. 다른 구현예들에서, OFE들(215)은 프레임 보간을 위한 모션 추정을 수행하기 위하여 적절한 비트 스트림, 로직 블록들 등으로 구성된 하드웨어 요소들일 수 있다. 다양한 실시예들에서, 모션 추정은 광학 흐름을 통해 명시적으로 수행되지만; 그러나, 다른 실시예들에서는, 모션 추정이 적응적 컨볼루션을 통해 묵시적으로 행해질 수 있다. 광학 흐름 추정은 정밀한 픽셀마다의 국소화를 이용하고, 2개의 입력 이미지 사이의 대응성(correspondence)을 구하고, 이것은 이미지 특징 표현을 학습하는 것뿐만 아니라, 2개의 이미지에서의 상이한 위치들에서 이미지 특징 표현들을 정합하도록 학습하는 것을 포함한다. 다시 말해서, 광학 흐름은 픽셀들이 이미지들 사이에서 어떻게 이동하는지를 설명하고, 이 광학 흐름은 2개의 이미지(또는 비디오 프레임) 사이의 픽셀 대응성을 표시하는 데이터 구조를 포함할 수 있다. 예를 들어, FlowNet은 데이터로부터 광학 흐름의 개념을 직접적으로 학습하기 위하여 컨볼루션 신경망(convolutional neural network)(CNN) 아키텍처를 이용한다. 실시예들에서, FPW는 광학 흐름들을 이용하는 명시적 모션 추정에 기초한다. 이 실시예들에서, 광학 흐름 공식은 변경되지 않고, 이는 FPW가 광학 흐름 추정에서 진행 중인 진전을 활용하는 것을 허용한다. 일부 실시예들에서, FPW는 2개의 최근의 최신 광학 흐름 방법, FlowNet2([R17]) 및 PWC-Net([R44])에 대하여 작동들을 동등하게 잘 사용할 수 있다.
FPE(들)(300)는 입력 이미지들(예컨대, 입력 이미지들 I0 및 I1)로부터 특징들을 추출한다. 특히, FPE(들)(300)는 2개의 입력 프레임 I0 및 I1의 특징 피라미드 표현들을 추출하고, FWE들(205)은 OFE들(215)에 의해 출력된 추정된 광학 흐름(들)에 따라 특징 피라미드들을 입력 프레임들 I0 및 I1과 함께 타겟 시간적 위치 t로 사전-워핑한다. FPE들(300)은 예를 들어, 특징 피라미드들의 시각화를 생성하기 위하여 특징 공간 상에서 주성분 분석(principal component analysis)을 수행한다. 특징 피라미드는 그 중에서도, 상이한 해상도에서의 입력 프레임 I0 또는 I1의 다양한 표현들을 포함하고, 여기서, 특징 피라미드에서의 각각의 레벨은 상이한 해상도 중 하나에서의 입력 프레임들을 포함한다. 도 2의 예에서, 특징 피라미드는 3개의 상이한 해상도에서의 입력 프레임 I0의 3개의 레벨(305A0, 305B0, 및 305C0)을 포함하고, 또 다른 특징 피라미드는 3개의 상이한 해상도에서의 입력 프레임 I1의 3개의 레벨(305A1, 305B1, 및 305C1)을 포함한다.
각각의 특징 피라미드의 각각의 레벨은 특징들의 세트를 포함한다. 다양한 실시예들에서, 특징들의 각각의 세트에서의 적어도 일부 특징들은 입력 프레임들의 색 공간(또는 색 모델)에 기초한다. 색 공간/모델은 예를 들어, RGB(Red(적색), Green(녹색), Blue(청색)), CMYK(cyan(시안), magenta(마젠타), yellow(황색), key(키)), HSL(hue(색상), saturation(포화), lightness(명도)) 및/또는 HSV(hue(색상), saturation(포화), value(값)), YUV (luma(루마), blue chroma(청색 크로마)/projection(투영), red chroma(적색 크로마)/projection(투영)), LAB 또는 CIELAB, 및/또는 등일 수 있다. FINN(200)이 동작하는 색 공간은 FINN(200)이 특정 색 공간 상에서 훈련되기만 하면 신축적이다. 추가적으로 또는 대안적으로, 픽셀 휘도 값(pixel luminance value)들은 특징 세트들 중에서의 특징(들)일 수 있다. 다양한 실시예들에서, 추출될 특징들은 FPE들(300)에 의해 학습된다. 일부 실시예들에서, FPE들(300)은 또한, 적합한 역전파 기법(backpropagation technique)을 이용하여 입력 이미지들로부터 추출하기 위해 각각의 피라미드 레벨에서의 특징들의 수를 학습한다. FPE들(300)은 추출될 특징들을 학습하고, 이어서 다수의 해상도(예컨대, 각각의 피라미드 레벨의 각각의 해상도)에서의 그 특징들을 워핑한다. 일부 실시예들에서, 추출될 특정한 특징들은 FSN(400)에 의해 기술되므로 FSN(400)은 가능한 한 양호한 프레임을 보간하고 유지하는 그 과제를 행할 수 있다. FPE들(300)의 아키텍처는 도 3에 의해 도시된다.
도 3을 지금부터 참조하면, 입력 이미지(301)가 주어질 경우에, FPE(300)는 3개의 레벨(305A, 305B, 및 305C)을 갖는 특징 피라미드(305)를 반환한다. 다양한 실시예들에서, FPE(300)는 피드포워드 NN(feedforward NN)(FNN), 컨볼루션 NN(convolutional NN)(CNN), 및/또는 일부 다른 NN과 같은 멀티-계층 신경망(neural network)(NN)일 수 있다. NN에서의 계층들은 입력 변수들(예컨대, 입력 특징들)의 데이터를 수신하는 입력 계층, 입력들을 프로세싱하는 하나 이상의 은닉된 계층, 및 NN의 결정 또는 평가를 출력하는 출력 계층을 포함한다. 하나의 예시적인 구현예에서, 입력 변수들은 관련된 가변 데이터를 포함하는 하나 이상의 벡터로서 설정되고, 출력 결정 또는 평가는 또한, 하나 이상의 벡터를 포함한다. NN에서의 상이한 계층 사이의 다수의 접속 패턴이 이용될 수 있다. 추가적으로, 각각의 계층은 하나 이상의 뉴런(neuron)(또는 "노드들")을 포함할 수 있고, 뉴런들의 각각은 하나 이상의 입력을 수신하고 출력(또는 "활성화")을 생성한다. 입력 값들에 적용되는 함수는 가중치들의 벡터 및 바이어스에 의해 결정된다(NN에서 학습은 이러한 바이어스들과 가중치들을 반복적으로 조정하여 진행됨). 가중치들의 벡터 및 바이어스는 "필터들"로 칭해지고, 특정한 특징들을 나타낸다. 각각의 노드의 출력은 활성화 함수를 통해 전달되고, 활성화 함수는 입력이 모델의 예측을 위하여 관련되는지 여부에 기초하여 출력이 활성화되어야 하는지 또는 그렇지 않은지 여부를 결정한다. 용어 "활성화 함수(activation function)"는 입력들의 세트가 주어질 경우에 그 노드의 출력을 정의하는 노드의 함수를 지칭하고, 여기서, 출력은 이어서, 원래의 문제에 대한 원하는 해결책이 구해질 때까지 다음 노드 등에 대한 입력으로서 이용된다.
다양한 실시예들에서, FPE(300)의 하나 이상의 은닉된 계층은 승산(multiplication) 또는 다른 내적(dot product)과 컨볼루션하는 일련의 컨볼루션 계층들을 포함하고, 활성화 함수(들)는 정류된 선형 유닛(Rectified Linear Unit)들("ReLU들" 또는 "정류기들(rectifiers)") 또는 파라메트릭 ReLU(Parametric ReLU)들("PreLU들")일 수 있다. ReLU들은 함수 f(x) = max(0,x)를 연산하는 활성화 함수들이고, 여기서, ReLU의 활성화는 x < 0일 때에 제로(zero)이고, x > 0일 때에 기울기 1과 선형이다(예컨대, 활성화는 제로에서 임계화됨). PReLU들은 함수 f(yi)= 를 연산하는 활성화 함수들이고, 여기서, yi는 i-번째 채널 상에서의 비선형 활성화 함수 f의 입력이고, ai는 ai = 0일 때에 PReLU가 ReLU가 되고 ai가 상대적으로 작은 수(예컨대, ai = 0.01)일 때에 PReLU가 누설 ReLU가 되도록 네거티브 기울기를 제어하는 계수("누설 파라미터")이다. 이러한 방식으로, PReLU들은 누설의 계수를, 다른 신경망 파라미터들과 함께 학습되는 파라미터로 되게 한다. 다시 말해서, PReLU들은 네거티브 입력들에 대한 적합한 포지티브 기울기를 구하기 위하여 누설 파라미터 a를 학습하고, 이러한 포지티브 기울기는 역전파된 오차 신호들을 차단하는 널 미분(null derivative)들로 인해 네거티브 뉴런들이 죽는 것(즉, 항상 제로와 동일한 뉴런들)을 방지한다.
도 3의 예에서, FPE(300)는 표로 표시되고, 여기서, FPE의 동작은 표의 하부에 도달할 때까지 표의 상부에서 시작한다. 표에서의 각각의 행(row)은 NN에서의 계층을 나타낸다. FPE(300)는 제1 해상도에서 입력 이미지(프레임)(301)(예컨대, 입력 프레임들 I0 및/또는 I1)를 수신하는 입력 계층(308)을 포함하고, 각각의 은닉된 계층은 2D 컨볼루션 계층(Conv2d)(310) 및 ("컨볼루션 계층들(310)" 등으로서 지칭될 수 있는) 대응하는 활성화 함수(PreLU)(315)를 포함한다. 이 예에서, FPE(300)는 다운샘플링(downsampling)을 수행하기 위하여 (스트라이드된(strided) 컨볼루션(Conv2d)(310A 내지 310F)을 포함하는) 스트라이드된 컨볼루션(310)을 이용하고, a = 0.25로 초기화된 활성화 함수들로서 (PReLU들(315A 내지 315F)을 포함하는) PReLU들(315)을 사용한다([R12]). 다른 활성화 함수들은 다른 실시예들에서 이용될 수 있다.
입력 계층(308)에서 수신된 입력 이미지(301)로부터, 제1 컨볼루션 계층(310A)은 표에서의 "특징들" 열(column)에 의해 도시되는 입력 특징들의 세트(Fin)로부터 특징들의 제1 세트(F1)를 선택(추출)한다. ML의 맥락에서, 특징은 관찰되고 있는 현상의 개별적인 측정 가능한 성질 또는 특성이다. 특징들은 통상적으로, 수(number)들, 스트링(string)들, 변수들, 그래프들 등을 이용하여 표현되고, 특징들의 세트는 "특징 벡터"로서 지칭될 수 있다. 각각의 컨볼루션 계층(310)은 2개의 입력, 예를 들어, 입력 이미지의 이미지 행렬 및 필터 또는 ("커널(kernel)" 열에서 도시된) 커널을 취할 수 있고, 입력에서의 검출된 특징들의 존재를 요약하는 출력으로서 특징 맵(feature map)을 생성할 수 있다. 각각의 계층(310)으로부터 추출된 특징들은 (예컨대, 도 3의 예에서 특징 세트들 F1, F2, 및 F3을 포함하는) 특징들의 연속적인 세트들을 생성하기 위하여 다음 계층(310)으로 공급된다.
다양한 실시예들에서, 입력 특징들의 세트(Fin)는 입력 이미지(301)의 색 공간에 기초한다(예컨대, RGB 색 공간에 대한 적색, 녹색, 및 청색, 여기서, Fin은 3개의 특징을 포함함). 추가적으로 또는 대안적으로, 입력 특징들의 세트(Fin)는 이미지(301)에서의 하나 이상의 픽셀에 대한 휘도 값들을 포함할 수 있다. 추가적으로 또는 대안적으로, 입력 특징들의 세트(Fin)는 각각의 픽셀에 대하여, 각각의 픽셀의 영역에서의 픽셀 값들 및/또는 다른 정보를 설명하는 디스크립터(descriptor)를 포함할 수 있다. 입력 특징들의 세트(Fin)는 또한, 역전파 등을 통해 학습될 수 있다. 일부 실시예들에서, 96개의 특징은 각각의 계층(310)에서 추출될 수 있다(예컨대, 특징 세트들 F1, F2, 및 F3은 96개의 특징을 각각 가질 수 있음). 다른 실시예들에서, 32개의 특징은 최고 해상도에 대하여 추출될 수 있고(예컨대, F1 = 32), 64개의 특징은 중간 해상도에 대하여 추출될 수 있고(예컨대, F2 = 64), 96개의 특징은 최저 해상도에 대하여 추출될 수 있다(예컨대, F3 = 96). 실시예들에서, FPE(300)는 각각의 계층에서 임의의 수의 특징들을 추출하도록 구성될 수 있다. 추출된 특징들의 수를 증가시키는 것은 프레임 보간 품질을 개선시킬 수 있지만, 그것은 또한, 보간 결과들을 계산하기 위해 시간의 양을 증가시킬 수 있고 자원 소비를 증가시킬 수 있다는 점에서, 품질 대 시간 및 자원 소비의 측면에서 절충이 있을 수 있다는 점이 주목되어야 한다. 마찬가지로, 추출된 특징들의 수를 감소시키는 것은 (예컨대, 프로세싱 시간 및 자원 소비의 측면에서) 시스템 성능을 개선시킬 수 있지만, 그것은 또한, 보간 결과들의 품질을 감소시킬 수 있다.
각각의 계층은 입력 이미지(301)의 더 낮은 해상도 표현을 생성한다. 예를 들어, 이미지(305A)는 입력 이미지(301)보다 더 낮은 해상도를 가지고, 이미지(305B)는 이미지(305A)보다 더 낮은 해상도를 가지고, 이미지(305C)는 이미지(305B)보다 더 낮은 해상도를 가진다. 해상도는 스트라이드된 컨볼루션(strided convolution)들(310)을 이용하여 감소하게 된다. 스트라이드(stride)는 입력 행렬 상에서의 픽셀들 시프트들의 수이다. 스트라이드가 1일 때, 필터들은 한 번에 하나의 픽셀만큼 이동되고, 스트라이드가 2일 때, 필터들은 한 번에 2개의 픽셀만큼 이동된다. 도 3에서의 스트라이드 열(stride column)에 의해 도시된 바와 같이, 2개의 계층은 2x2의 스트라이드들을 가지고, 다른 계층들은 1x1의 스트라이드를 가진다. 실시예들에서, 스트라이드가 컨볼루션을 위하여 2x2일 때, 출력 크기는 입력 크기의 절반이다. 일부 실시예들에서, 1x1의 스트라이드는 차원 감소(dimensionality reduction)를 위하여 이용될 수 있다. 도 3의 예에서, 각각의 레벨에서의 해상도는 절반으로 된다. (도 3에서의 패딩 열(padding column)에 의해 도시된 바와 같은) 패딩은 또한, 출력 볼륨 공간적 크기의 제어를 위하여 이용될 수 있다. 도 3은 6개의 컨볼루션 계층(310) 및 6개의 활성화 함수(315)을 갖는 3개의 해상도 레벨을 도시하지만, 임의의 수의 레벨들 및/또는 계층들이 다른 실시예들에서 이용될 수 있다. 그러나, 계층들 또는 레벨들의 수를 추가하거나 감소시키는 것은 이전에 논의된 바와 같이 유사한 성능/품질 절충을 가질 수 있다는 점이 주목되어야 한다.
도 2를 다시 참조하면, FWE들(205)은 OFE들(215)에 의해 출력된 추정된 광학 흐름에 따라 특징 피라미드들(예컨대, 특징 피라미드 레벨들(305A, 305B, 및 305C)을 포함하는, 도 3의 특징 피라미드(305))을 입력 프레임들 I0 및 I1과 함께 타겟 시간적 위치 t로 워핑(사전-워핑)한다. 본 명세서에서 이용된 바와 같이, 용어 "워프(warp)" 또는 "워핑(warping)"은 하나의 이미지(또는 비디오 프레임)에서의 픽셀들을 광학 흐름에 의해 규정된 위치로 이동시키는 것을 지칭한다. 도 2의 예에서, FWE들(205)은 OFE(215)로부터의 순방향 광학 흐름을 이용하여 입력 프레임 I0을 (예컨대, 자동차를 시간에 따라 순방향으로 이동시키는) 입력 프레임 I1을 향해 워핑하고, OFE(215)로부터의 역방향 광학 흐름을 이용하여 입력 프레임 I1을 (예컨대, 자동차를 시간에 따라 역방향으로 이동시키는) 입력 프레임 I0을 향해 워핑한다. 입력 프레임들 I0 및 I1을 이러한 방식으로 워핑하는 것은 입력 프레임들 I0 및 I1에서의 픽셀들이 입력 프레임들 I0 및 I1 사이의 원하는 시간적 위치(t)로 시프트되는 것을 허용한다.
추가적으로, 추출된 특징 피라미드들(305)은 추정된 광학 흐름(들)에 따라 입력 프레임들 I0 및 I1과 함께 타겟 기간적 위치 t ∈ (0, 1)로 워핑된다. 실시예들에서, FWE들(205)은 t에 의해 스케일링된 순방향 광학 흐름에 따라 제1 프레임 I0의 특징 피라미드(305)를, 그리고 1 - t에 의해 스케일링된 역방향 광학 흐름에 따라 제2 프레임 I1의 특징 피라미드를 워핑(사전-워핑)한다. 피라미드들의 개별적인 레벨들을 워핑하기 위하여, FWE들(205)은 전체-해상도 광학 흐름을 리사이징(resize)하고 리스케일링(rescale)한다. 일부 실시예들에서, FWE들(205)은 공간적 변환기 네트워크들([R18])에 의해 도입된 바와 같은 역방향 워핑을 이용하는 대신에, [R34]에 의해 논의된 방식과 같은 순방향 워핑을 수행한다. 이것은 FWE들(205)이 아래에서 논의된 평가에서 입증된 바와 같이 임의의 시간적 위치 t에서 프레임들을 효과적으로 보간하는 것을 허용한다. 그러나, 순방향 워핑은 2개의 소스 픽셀이 동일한 타겟으로 맵핑되는 모호성들에 영향을 받고, 이것은 포토-일관성(photo-consistency) 체킹([R02])을 통해 해결된다. 또한, 실시예들에서, FWE들(205)은 FlowNet2([R17])의 설계 원리들을 따라, 광학 흐름 추정의 품질로서 포토 일관성을 보조적 측정으로 활용한다. 아래에서 설명되는 추후의 FSN(400)은 따라서, 워핑된(사전-워핑된) 특징 피라미드들로부터의 정보를 조합할 때에 이 품질 척도를 통합시킬 수 있다. 사전-워핑된 특징 피라미드들(305) 및 입력 프레임들 I0 및 I1은 최종적인 보간 결과를 생성하기 위하여 FSN(400)으로 공급된다. FSN(400)은 사전-워핑된 입력 프레임들 및 특징 피라미드들을 입력들로서 취하고 보간 결과를 생성하도록 구성된다. FSN(400)의 예시적인 아키텍처는 도 4에 의해 도시된다.
도 4는 다양한 실시예들에 따른 FSN(400)의 예시적인 아키텍처를 도시한다. FSN(400)은 2개의 입력 프레임 I0 및 I1의 워핑된 특징 피라미드들에 의해 안내된 프레임 보간 결과(410)를 생성한다. 이 예에서, FSN(400)은 이 목적을 위한 잔차 변환-역변환(residual conv-deconv) 그리드 네트워크(GridNet)([R10]) 아키텍처와 같은 그리드 네트워크를 사용하고, 수정은 체커보드 아티팩트들([R37])을 방지하기 위하여 [R34]에 의해 논의된다. 이러한 GridNet의 예는 "CONTEXT-AWARE SYNTHESIS FOR VIDEO FRAME INTERPOLATION"라는 명칭으로 2018년 2월 27일자로 출원된 공동-계류 중인 미국 가출원 제62,635,675호에 의해 도시되고 설명된다. U-net 등과 같은 다른 유형들의 그리드는 다른 실시예들에서 이용될 수 있다. 일반적으로, GridNet 아키텍처는 신경망 내의 정보가 다수의 경로를 취하는 것을 허용하고, 이것은 신경망이 다수의 스케일(scale)에서 특징 표현들을 어떻게 최상으로 조합할 것인지를 학습하는 것을 가능하게 한다. 특히, FSN(400)은 2개의 워핑된 특징 피라미드를 채널별(channel-wise)로 레벨마다 연접(concatenate)하고, 이들을 하나 이상의 행 및 하나 이상의 열을 갖는 GridNet으로 공급한다. 이와 같이, 이 아키텍처는 보간 결과(410)를 합성하기 위하여 워핑된 특징 피라미드들로부터의 멀티-스케일 정보를 조합할 수 있다.
도 4의 예에서, FSN(400)은 3개의 행 및 6개의 열을 갖는 2 차원 그리드(two-dimensional grid) 내로 편성되는 GridNet이고, 여기서, 정보/데이터는 특징 맵들 Xi,j을 접속하는 연산 계층들에서 프로세싱된다. 일반적으로, 특징 맵은 데이터 벡터를 특징 공간으로 맵핑하는 함수이다. 각각의 계층은 필터(또는 "커널")를 입력 정보/데이터에 적용하고, 대응하는 특징 맵 Xi,j을 출력한다. 요소별 행렬 승산은 각각의 계층에서 수행되고, 결과는 합산되고, 합은 특징 맵들 Xi,j에서 배치된다. 그리드에서의 각각의 특징 맵 Xi,j은 라인 i 및 열 j에 의해 인덱싱되고, 여기서, i는 행들 또는 라인들의 총 수이고, j는 열들의 총 수이다. 명확함을 위하여, 모든 특징 맵들 Xi,j이 도 4에서 표기되지는 않는다. 수평 접속들(즉, GridNet의 행들)은 "스트림들"로서 지칭된다. 스트림들은 완전히 컨볼루션이고, 특징 맵 크기들을 일정하게 유지한다. 스트림들은 또한 잔차(residual)이고, 이 잔차는 스트림들이 그 입력에 대한 차이들을 예측한다는 것을 의미한다. 수직 컴퓨팅 계층들은 또한 컨볼루션이지만, 이들은 특징 맵들의 크기를 변경한다. 그리드에서의 위치에 따르면, 공간적 크기들은 각각 서브샘플링(subsampling)에 의해 감소되거나 업샘플링(upsampling)에 의해 증가된다.
GridNet의 행들은 횡방향 샘플링(도 4에서 "L"로 나타냄)을 수행하는 잔차 계층(residual layer)들을 포함한다. 각각의 잔차 계층은 입력 맵 해상도 또는 특징 맵들의 수를 변경하지 않는다. 다시 말해서, 각각의 행에서의 계층들은 특징 해상도가 일정하게 유지되는 스트림을 형성한다. 3개의 스트림의 각각은 상이한 스케일에서 정보를 프로세싱한다. 열들은 다운-샘플링(down-sampling) 및 업-샘플링 계층들을 이용함으로서 정보를 교환하기 위하여 스트림들을 접속한다. GridNet의 최초의 3개의 열(예컨대, 여기서, j = 0, 1, 또는 2)은 다운샘플링(도 4에서 "D"로 나타냄)을 수행하는 컨볼루션 계층들을 포함하고, 이 다운샘플링은 해상도를 감소시키고 특징 맵들의 수를 2배로 한다. GridNet의 최후의 3개의 열(예컨대, 여기서, j = 3, 4, 또는 5)은 업샘플링(도 4에서 "U"로 나타냄)을 수행하는 디컨볼루션 계층(deconvolutional layer)들을 포함하고, 이 업샘플링은 해상도를 증가시키고 특징 맵들의 수를 2로 나눈다. 각각의 블록에서의 파운드(pound) 또는 해시(hash)("#") 기호는 그 블록의 출력-채널들의 수를 나타낸다.
도 4의 예에서, 사전-워핑된 프레임들 및 사전-워핑된 제1-레벨 특징들(405A)은 제1 행에서의 32 출력-채널 잔차 블록으로 공급되고, 사전-워핑된 제2-레벨 특징들(405B)은 제2 행에서의 64 출력-채널 잔차 블록으로 공급되고, 사전-워핑된 제3-레벨 특징들(405C)은 제3 행에서의 128 출력-채널 잔차 블록으로 공급된다. 사전-워핑된 특징들은 제1 행에서의 3 출력-채널 잔차 블록으로부터 출력된다. 이 지점들 사이에서, 사전-워핑된 프레임들은 몇몇 경로들에서 흐를 수 있다. 일부 실시예들에서, FSN(400)은 개선된 훈련을 위하여 파라메트릭 정류된 선형 유닛들(PReLU들)을 통합시킬 수 있고, 체커보드 아티팩트(checkerboard artifact)들을 회피하기 위하여 쌍선형 업샘플링(bilinear upsampling)을 이용할 수 있다. 예를 들어, FSN(400)에서의 행들 및 열들의 각각은 컨볼루션 계층들 사이에 배치된 하나 이상의 PReLU 계층을 갖는 하나 이상의 컨볼루션 계층을 포함할 수 있다.
다양한 실시예들에서, FINN(200)은 완전히 구별 가능한 파이프라인일 수 있다. 도 2의 예에서, OFE들(215)이 사전-훈련되고 FPE들(300) 및 FSN(400)이 훈련되지만, FINN(200) 파이프라인은 이 구성으로 제한되지는 않는다. 그 대신에, 완전히 구별 가능한 것 때문에, OFE들(215)은 비디오 프레임 보간의 태스크를 위하여 미세-조율될 수 있다. 이것은 포괄적 모션 추정기(generic motion estimator)가 특정 태스크들을 위하여 차선일 수 있다는 것을 논쟁하는 [R49]에서의 발견들에 의해 지원된다.
다양한 실시예들에 따르면, FINN(200)은 완전히 구별 가능하므로, 경도(gradient)들은 (예컨대, FWE들(205)에 의한) 특징 워핑 동작들 및/또는 (예컨대, FSN(400)에 의한) 프레임 보간 동작들을 위하여 계산될 수 있고, 역전파를 위하여 이용될 수 있다. 역전파는 NN이 ML 모델의 파라미터들을 결정하고 및/또는 변경하는 것을 허용하는 심층 학습 기법이다. 이것은 FPE들(300)(예컨대, 도 3을 참조)이 입력 이미지들(301)로부터 추출될 특징들의 수 및 유형에 대해 훈련되는 것을 허용한다. 이것은 또한, FSN(400)이 출력 이미지들을 생성하기 위하여 어느 특징들이 특징 피라미드들을 합성하기 위하여 유용한 것인지에 대해 훈련되는 것을 허용할 수 있다.
FINN(200)의 서브시스템들(205, 215, 300, 및 400)은 소프트웨어 컴포넌트들(예컨대, 소프트웨어 엔진들, 소프트웨어 에이전트들, 인공 지능(artificial intelligence)(AI) 에이전트들, 모듈들, 객체들, 또는 다른 유사한 논리적 유닛들)로서, 개별적인 하드웨어 요소들로서, 또는 그 조합으로 구현될 수 있다. 예시적인 소프트웨어-기반 구현예에서, FINN(200)의 서브시스템들은 하나 이상의 컴퓨팅 시스템의 하나 이상의 프로세서(예컨대, 도 9의 프로세서 회로부(902)를 참조)에 의해 실행되는 적합한 프로그래밍 언어, 개발 툴들/환경들 등을 이용하여 개발될 수 있다. 이 예에서, FINN(200)의 서브시스템들(205, 210, 215, 및 300)의 프로그램 코드는 단일 프로세서에 의해 또는 개별적인 프로세싱 디바이스들에 의해 실행될 수 있다. 예시적인 하드웨어-기반 구현예에서, FINN(200)의 각각의 서브시스템(205, 210, 215, 및 300)은 그 개개의 기능들을 수행하기 위하여 적절한 로직 블록들, 비트 스트림(들) 등으로 구성되는 개개의 AI 가속 코-프로세서(들), AI GPU들, 텐서 프로세싱 유닛(tensor processing unit)(TPU)들, 또는 하드웨어 가속기들(예컨대, FPGA들, ASIC들, DSP들, SoC들 등)에서 구현된다.
I.B. 머신 학습 모델 훈련
머신 학습(machine learning)(ML)은 특정 태스크 또는 태스크들에 대한 그 성능을 점진적으로 개선시키기 위한 알고리즘들을 이용하는 것을 포함한다. 일반적으로, ML 알고리즘은 일부 태스크 및/또는 일부 성능 척도에 대한 경험(예컨대, "훈련 데이터" 또는 "훈련 데이터세트들")으로부터 학습하는 컴퓨터 프로그램이다. ML 모델은 ML 알고리즘이 하나 이상의 훈련 데이터세트로 훈련된 후에 생성된 임의의 객체 또는 데이터 구조이다. 훈련 후에, ML 모델은 새로운 데이터세트들에 대한 예측들을 행하기 위하여 이용될 수 있다. 용어 "ML 알고리즘"은 용어 "ML 모델"과는 상이한 개념들을 지칭하지만, 이 용어들은 본 개시의 목적들을 위하여 상호 교환 가능하게 이용될 수 있다.
다양한 실시예들에서, FPE(300) 및 FSN(400)은 50 에포크(epoch) 동안 α = 0.001, β1 = 0.9, 및 β2 = 0.999로 Adam([R24])을 이용하여 공동으로 훈련된다. OFE들(215)을 추후에 미세-조율할 때, 훈련은 50 초과의 에포크 동안 α = 0.0001로 계속된다. 8개의 샘플은 이 2개의 훈련 프로세스의 각각에 대한 배치(batch)마다 이용된다.
색 손실 함수(color loss function) 및 지각 손실 함수(perceptual loss function)를 포함하는 2개의 손실 함수가 훈련 목적들을 위하여 고려된다. 따라서, 모델의 2개의 상이한 버전이 훈련된다. 색 손실에 대해 훈련된 모델은 표준 벤치마크들에서 잘 수행되는 반면, 지각 손실에 대해 훈련된 모델은 어려운 경우들에 있어서 더 많은 세부사항들을 보유한다. 색 손실에 대하여, 라플라시안(Laplacian) 피라미드 표현들 사이의 차이에 기초한 손실이 사용될 수 있고, 이러한 손실은 수학식 1에 의해 표현된다([R03], [R34]).
[수학식 1]
수학식 1에서, Li은 I의 라플라시안 피라미드의 i-번째 레벨을 나타낸다. 지각 손실에 관하여, 심층 이미지 특징들 사이의 차이에 기초한 손실이 사용되고, 이러한 손실은 수학식 2([R20], [R21], [R28, [R29], [R36], [R34], [R40])에 의해 표현된다.
[수학식 2]
수학식 2에서, 는 포괄적 이미지 분류 네트워크으로부터의 특징 활성화들을 나타낸다. 일부 실시예들에서는, VGG-19([R41])로부터의 relu4_4 계층의 활성화들이 이용될 수 있다.
임의의 적합한 훈련 데이터세트는 네트워크(예컨대, FINN(200))를 훈련시키기 위하여 이용될 수 있다. 실험의 목적들을 위하여, 네트워크(예컨대, FINN(200))는 Xue 등([R49])으로부터의 공개적으로 사용 가능한 Vimeo-90k 데이터세트를 이용하여 훈련되었다. 이것은 재현성(reproducibility)을 용이하게 하고, 훈련 데이터 누락([R23])으로 인해 어려움들을 나타내었던, 프레임 보간 방법들을 재구현함에 있어서의 최근의 노력들을 지원한다. Vimeo-90k 데이터세트의 훈련 부분은 51,313 프레임 트리플(frame triple)들로 구성되고, 프레임 트리플 각각은 448 × 256 픽셀들의 해상도에서 3개의 연속적인 프레임의 시퀀스를 갖는다. 그러므로, 본 명세서에서 논의된 평가들은 t = 0.5에서 모델의 훈련을 감독하는 것만을 포함하였고, 이는 상이한 t에서 프레임들을 보간할 때에 본 명세서에서 논의된 접근법의 일반화 능력을 손상시킬 수 있다. 그러나, 아래에서 논의된 평가는 t = 0.5에서 훈련된 본 실시예들의 모델이 임의의 시간적 위치에서 프레임들을 여전히 성공적으로 보간할 수 있다는 것을 보여준다.
추가적으로, 온라인 데이터 증강(online data augmentation)은 또한, 훈련 동안에 수행될 수 있다. 예를 들어, Vimeo-90k 데이터세트의 원래의 프레임 트리플들에 대해 훈련하는 대신에, 실험적 모델은 256 × 256 픽셀들의 랜덤 크롭(random crop)들에 대해 훈련되었다. 이것은 공간적 모션 편성에서의 임의의 잠재적인 전제(prior)들이 훈련 데이터세트 내에서 완화되는 것을 허용한다. 또한, 훈련은 수평으로뿐만 아니라 수직으로 크롭된 트리플(cropped triple)들을 무작위적으로 플립(flip)하는 것, 및 시간적 순서를 마찬가지로 무작위적으로 반전시키는 것을 포함하였다.
하나의 예시적인 구현예에서, FINN(200) 파이프라인은 Torch 라이브러리 및 과학적 컴퓨팅 프레임워크에 기초한 Python 프로그래밍 언어에 대한 오픈-소스 머신 학습 라이브러리(open-source machine learning library)인 PyTorch를 이용하여 개발될 수 있다. Nvidia® CUDA® Toolkit를 이용하여 개발된 맞춤형 연산 통합된 디바이스 아키텍처(Compute Unified Device Architecture)(CUDA) 계층은 또한, 순방향 워핑을 효율적으로 수행하기 위하여 사용될 수 있다. 이 셋업(setup)은, Nvidia® Titan X® 상에서 작동되고 광학 흐름을 추정하기 위하여 PWC-Net([R44])를 이용할 때, 720p 프레임이 0.405 초 내에 그리고 1080p 프레임이 0.913 초 내에 합성되는 것을 허용한다. 추가적으로, FPE(300) 및 FSN(400)은 저장될 때에 17 메가바이트(megabyte)에 불과한 상대적으로 적은 가중치들을 가진다.
II. 실험들
본 명세서에서 논의된 FPW 실시예들이 평가되었고, 공개적으로 사용 가능한 데이터세트들에 대해 현재 사용 가능한 기법들과 정량적으로 그리고 정성적으로 비교되었다.
방법들. FPW 실시예들은 참조 구현예들이 사용 가능한 몇몇 기존의 비디오 프레임 보간 방법들과 비교되었다. 제1 기존의 방법은 광학 흐름에 기초한 대표적인 방법으로서 모션 세부사항 보존(motion detail preserving)(MDP)-Flow2([R48])를 포함하고, 보간된 프레임들을 생성하기 위하여 MDP-Flow2를 Baker 등([R02])으로부터의 프레임 합성 알고리즘과 조합한다. 제2 기존의 방법은 그 태스크-특정 광학 흐름 공식으로 인해 ToFlow([R49]) 알고리즘을 포함한다. 제3 기존의 방법은 모션 보상을 묵시적으로 수행하는 Sep-Conv([R36])를 포함한다. 기존의 방법들은 또한, 복셀 흐름(Voxel Flow)([R30]), Super SloMo([R16]), 및 CtxSyn([R34])을 포함한다.
데이터세트들. 정량적 평가는 공개적으로 사용 가능한 프레임 보간을 위한 공통 데이터세트들에 대해 수행되었다. 이것은 3,782 예들에 이어지는 Vimeo-90k([R49]) 테스트 데이터세트뿐만 아니라, UCF101([R42])로부터 379 예들을 추출한 Liu 등([R30])으로부터의 데이터세트를 포함한다. 결과들은 또한, Middlebury 광학 흐름 벤치마크의 보간 부분과 비교되었다. 멀티-프레임 비디오 보간을 평가하기 위하여, 높은 프레임-레이트 Sintel 데이터세트는 Slow Flow([R19])의 저자들로부터 취득되었다.
메트릭들. 피크-신호-대-잡음 비율(peak-signal-to-noise ratio)(PSNR) 및 구조적 유사성(structural similarity)(SSIM)([R45])은 모든 정량적 비교들을 위하여 이용되었다. 지각적 유사성을 측정하도록 노력하는, 학습된 지각 이미지 패치 유사성(Learned Perceptual Image Patch Similarity)(LPIPS)([R50]) 메트릭도 통합되었다. 특히, 이 메트릭의 버전 0.1은 AlexNet([R25]) 상에서 선형적으로 교정된 실험을 위하여 사용되었다. 더 높은 값들은 PSNR 및 SSIM의 측면에서 더 양호한 결과들을 나타내지만, 더 낮은 값들은 LPIPS 메트릭으로 더 양호한 결과들을 나타낸다. 혼란을 회피하기 위하여, 화살표들은 이 차이를 나타내기 위하여 아래에서 논의된 표들 내에서 이용된다.
II.A. 특징 피라미드 워핑 실시예들의 분석
FPW 실시예들의 분석은, 이 광학 흐름 방법을 프레임들을 보간하기 위해 표준 프레임 합성 알고리즘([R02])과 조합하는 기준선 비교를 포함하는, FPW 실시예들을 규격형 광학 흐름 방법들과 비교하는 것을 포함한다. 분석은 또한, FPW 실시예들이 사용된 광학 흐름 방법의 성능에 과도하게 의존하는지 여부, 또는 FPW 실시예들이 잘 일반화되는지 여부를 분석하는 것을 포함한다. 추가적으로, FINN(200) 파이프라인은 완전히 구별 가능하므로, 분석은 프레임 보간의 태스크를 위하여 OFE들(215)의 미세-조율의 효과를 분석하는 것을 포함한다. 또한, 분석은 FPE(300)가 초점을 맞추는 패턴들, 및 패턴들이 모션 추정을 위하여 이용된 특징 피라미드들과 상이한지 여부를 분석하는 것을 포함한다. 또한, 분석은 FPW 모델을 훈련시키기 위해 2개의 상이한 손실 함수를 고려한다. 단순화를 위하여, 만이 아래의 를 이용하는 효과를 논의하는 실험에 이용되었다.
도 1T는 2개의 상이한 광학 흐름 방법 FlowNet2([R17]) 및 PWC-Net([R44])에 대한 기준선 비교들을 도시하는 표 1을 포함한다. 기준선 비교들은 2개의 최신 광학 흐름 방법, 즉, FlowNet2([R17]) 및 PWC-Net([R44])를 고려한다. 이 방법들의 각각은 "FlowNet2-Classic" 및 "PWC-Net-Classic"으로서 각각 나타낸 기준선들로서 Baker 등([R02])에 의해 제공된 전형적인 프레임 합성 알고리즘과 조합되었다. 이 광학 흐름 네트워크들의 둘 모두는 FlyingChairs 데이터세트([R07])에 대해 훈련된다. 우리는 "FlowNet2 FPW" 및 "PWC-Net FPW"로서 각각 나타낸, FlowNet2을 갖는 하나의 버전 및 PWC-Net(PWC-Net = Lite FlowNet, SpyNet, MDP-Flow2에 대한 대안들)를 갖는 다른 버전을 포함하는, FPW 실시예들의 2개의 버전을 추가로 평가한다. 표 1에 의해 도시된 바와 같이, FPW 실시예들은 기준선 보간 알고리즘들을 상당히 개선시키고, FPW 실시예들에서 이용된 광학 흐름 알고리즘에 관계없이 일관되게 그렇게 개선시킨다. FlowNet2 및 PWC-Net는 FINN(200) 보간 파이프라인 내에서 유사하게 잘 수행되고, PWC-Net는 더 적은 파라미터들을 가지므로, 이 버전들은 추후의 실험들에서 이용된다.
이전에 언급된 바와 같이, FINN(200) 파이프라인은 완전히 구별 가능하므로, 광학 흐름 방법은 비디오 프레임 보간의 태스크를 위하여 미세-조율될 수 있다. 도 1T에서의 표 1에 의해 도시된 바와 같이, 광학 흐름 네트워크(PWC-Net)를 미세-조율하는 것은 FPW 실시예들(PWC-Netft-FPW)의 성능을 추가로 개선시킬 수 있다. 이러한 이유로, FPW 실시예들의 이 버전은 추후의 실험들에서 이용된다. FPW 실시예들의 미세-조율된 PWC-Net도 [R02]로부터의 보간 알고리즘으로 결과들을 개선시킨다는 점이 또한 주목되어야 한다.
도 5는 [R08]에 따라 상이한 태스크-특정 특징 피라미드들로부터 추출된 특징들의 시각화를 도시한다. 이전에 언급된 바와 같이, FPE들(500)은 FSN(400)과 공동으로 훈련되어, FSN(400)이 프레임 보간을 위한 태스크-특정 특징들을 수집하는 것을 허용한다. 프레임 보간을 위한 특징 피라미드들과 모션 추정을 위한 특징 피라미드들 사이의 차이를 검사하기 위하여, [R08]로부터의 필터 시각화 기법이 사용되었다. 특히, FPE(300)의 최후 계층의 활성화들은 입력 이미지를 변경함으로써 최대화되었다. 유사하게, PWC-Net([R44])의 동등한 계층의 활성화들은 이러한 활성화들을 FPW 실시예들과 비교하기 위하여 최대화되었다. 도 5는 대표적인 특징 활성화들의 세트를 도시한다. FPW 실시예들의 특징 피라미드는 국소적 패턴들에 초점을 맞추는 반면, PWC-Net로부터의 특징 피라미드는 큰 패턴들을 나타낸다. 이것은 입력 프레임들 사이의 모션에 따라 특징 피라미드들을 워핑함으로써 FPW 실시예들에서의 명시적 모션 보상에 기인할 수 있다. 이것은 FPE(300)가 고품질 보간 결과를 합성하기 위하여 중요한 미세한 세부사항들에 더 많이 초점을 맞추는 것을 허용한다.
II.B. 정량적 평가
도 2T는 몇몇 공개 데이터세트들에 대한 다양한 기존의 비디오 프레임 보간 방법들 및 FPW 실시예들의 정량적 비교를 도시하는 표 2를 포함한다. 표 2에 의해 도시된 바와 같이, 로 훈련된 FPW 실시예들은 PSNR 및 SSIM의 측면에서 모든 다른 기존의 방법들을 일관되게 능가하는 반면, 손실로 훈련된 FPW 실시예들은 LPIPS의 측면에서 최상으로 수행된다. 이것은 과 같은 지각 손실이 지각적으로 더 좋은 결과들을 초래하는 반면, 과 같은 다른 손실들은 SSIM 및 PSNR과 같은 수치 메트릭들에 유리하다는 점에서, 비디오 프레임 보간([R34], [R36])을 위한 둘 모두의 유형들의 손실들을 사용한 이전의 작업으로부터의 보고와 일치한다.
손실로 훈련된 FPW 실시예들로부터의 보간 결과들은 또한, 프레임 보간을 또한 평가하는 관련된 Middlebury 광학 흐름 벤치마크([R02])와 비교되었다. 이 벤치마크는 제곱-평균-제곱근(root-mean-square) 보간 오차(interpolation error)(IE) 및 그 경도-정규화된 대응부(gradient-normalized counterpart)(NE)를 메트릭들로서 이용한다. 도 3T는 광학 흐름에 대한 Middlebury 벤치마크([R02])의 관련된 보간 카테고리 상의 정량적 등급을 도시하는 표 3을 포함한다. 표 3에 의해 도시된 바와 같이, FPW 실시예들은 두 번째로 좋은 기존 방법과 비교할 때, 평균적으로 1.02 dB만큼 기존의 보간 방법들을 상당히 능가한다. 실험 시에, FPW 실시예들은 벤치마크 상에서 보고된 158개의 모든 방법 중에서 1등을 차지하였다.
도 6은 높은 프레임-레이트 Sintel 데이터세트([R19])에 대한 FPW 실시예들의 멀티-프레임 보간 능력의 평가인 그래프(600)를 도시한다. FPW 실시예들은 워핑을 통해 모션을 명시적으로 보상하므로, FPW 실시예들은 입력 프레임들의 특징 피라미드들을 임의의 시간적 위치로 워핑할 수 있다. 그러므로, FPW 실시예들은 2개의 주어진 프레임 사이의 다수의 프레임을 끊김없이 보간할 수 있다. 이 성질을 정량적으로 평가하기 위하여, Sintel 벤치마크의 높은 프레임레이트 버전은 Slow Flow([R19])의 저자들로부터 획득되었고, 프레임들 1 내지 31은 모든 13개의 장면 상의 프레임 0 및 프레임 32로부터 보간되었다. FPW 실시예들은 이어서, 멀티-프레임 보간을 당연히 지원하지는 않는 SepConv([R36])와 비교되었다. 그러므로, 재귀 보간 방식(recursive interpolation scheme)은 다수의 중간 프레임을 예측하기 위하여 SepConv를 위해 사용되었다. 도 6의 그래프(600)에 의해 도시된 바와 같이, FPW 실시예들은 t = 0.5에 대해서만 감독을 받았음에도 불구하고, 임의의 t에서 고품질 보간 결과들을 예측할 수 있다. 2개의 손실 함수에 관하여, 손실로 훈련된 FPW 모델은 PSNR 측면에서 더 잘 수행되는 반면, LF 손실로 훈련된 우리의 모델은 LPIPS의 측면에서 더 잘 수행된다는 것을 다시 한번 알 수 있다.
II.C. 정성적 평가
도 7a는 FPW 실시예들을 몇몇 기존의 방법들과 비교하는 3개의 어려운 예에 대한 보간 결과들을 도시한다. 도 7b는 FPW 실시예들을 몇몇 기존의 방법들과 비교하는 4개의 어려운 예에 대한 추가적인 보간 결과들을 도시한다. 공간 제한으로 인해, 비교되었던 모든 보간 방법들의 결과들은 도시되지 않는다. 또한, 상이한 손실들을 이용하여 훈련된 모델들을 갖는 방법들에 대하여, 지각 품질에 초점을 맞추는 모델들에 대한 결과들이 도시된다. 하키 스틱 예 및 테니스 라켓 예는 그 슬림 구조 및 중요한 모션으로 인해 어려운 과제를 제기한다. 다수의 스케일(scale)에 걸쳐 이 정보를 보유할 수 있는 특징 피라미드들을 통합함으로써, FPW 실시예들은 기존의 기법들보다 더 잘 이 시나리오들을 처리한다. 축구 선수 예에서 좌측의 축구 선수의 다리는 큰 모션, 폐색, 및 밝기에서의 변화에 영향을 받는다. 다시 한번, FPW 실시예들은 기존의 기법들보다 더 강력하게 이 까다로운 경우를 처리한다.
도 8은 다양한 FPW 실시예들에 따른 2개의 어려운 비디오 보간 시나리오에 대한 멀티-프레임 보간 능력들을 도시한다. 도 8은 FPW 실시예들의 2개의 멀티-프레임 보간 결과를 도시한다. FPW 실시예들의 정량적 유효성은 이 시나리오에서 이미 입증되었지만, 제공된 예들은 FPW 실시예들의 멀티-프레임 보간 결과가 시간적으로 일관된다는 것을 보여준다.
이전에 언급된 바와 같이, 비디오 프레임 보간은 시간에 따라 신규한 뷰들을 합성하는 것으로 제한되지는 않는다. 그 대신에, 비디오 프레임 보간은 또한, 스테레오뿐만 아니라 명시야(light-field) 화상에서 신규한 뷰들을 합성하는 것([R22])을 포함하는, 공간에서의 신규한 뷰 보간([R09])을 위하여 사용될 수 있다. 이러한 방식으로, 비디오 프레임 보간을 위한 FPW 실시예들은 입체(auto-stereoscopic) 및 명시야 컨텐츠 생성과 같은 애플리케이션을 위한 신규한 뷰 보간을 성공적으로 수행할 수 있다.
III. 개요
본 명세서에서 논의된 FPW 실시예들은 기존의 프레임 보간 기법들과 비교하여 고품질 비디오 프레임 보간을 제공한다. FPW 실시예들은 2개의 입력 프레임에 대한 특징 피라미드들을 추출하기 위하여 신경망을 이용하고, 추정된 광학 흐름을 이용하여 특징 피라미드들을 입력 프레임들과 함께 타겟 시간적 위치로 사전-워핑한다. 사전-워핑된 피라미드들 및 입력 프레임들은 보간 결과들을 생성하기 위하여 프레임 합성 네트워크로 공급된다. 특징 피라미드를 이미지 표현으로서 이용하는 것 및 특징 피라미드들의 사전-워핑의 조합은 FPW 실시예들이 고품질 이미지 합성을 위하여 필요한 미세한 세부사항들에 초점을 맞추는 것을 허용한다. 특징 피라미드 추출기 네트워크 및 프레임 합성 네트워크의 공동 훈련은 프레임 보간의 태스크를 위하여 둘 모두의 네트워크들을 추가로 최적화한다. 실험들에서 도시된 바와 같이, FPW 실시예들은 까다로운 시나리오들에 대하여 프레임들을 성공적으로 보간하고, 비디오 프레임 보간 기술의 개선을 확립한다. 비디오 프레임 보간 기술에서의 개선들은 증강 현실(augmented reality), 광학 문자 인식(optical character recognition), 이미지 및/또는 비디오 검색, 자율 또는 컴퓨터-보조 차량 동작, 얼굴 인식(facial recognition), 제스처 인식(gesture recognition), 필기 인식(handwriting recognition), 로보틱스 및/또는 로봇 내비게이션, 원격 감지, 및/또는 등과 같은, 컴퓨터 비전 애플리케이션을 사용하는 컴퓨팅 디바이스들 및 시스템들의 기능에서의 개선을 구성한다. 본 명세서에서 논의된 FPW 실시예들은 기존의 비디오 보간 기법들에 비해 개선되므로, FPW 실시예들은 또한, 컴퓨터 디바이스들/시스템들 자체의 기능에서 개선되는데, 그 이유는 FPW 실시예들이 기존의 비디오 보간 기법들보다 더 양호한 결과들을 제공하는 연산 자원들의 보다 효율적인 이용을 제공하기 때문이다. 컴퓨팅 시스템들/디바이스들 자체의 기능에 대한 개선은 비디오 보간을 수행할 때에 연산 및 메모리 자원들의 적어도 하나의 보존을 기반으로 한다.
FPW 실시예들은 t = 0.5에서의 예만을 이용하는 감독된 모델을 포함하지만, 전술한 평가는 FPW 실시예들이 고품질로 임의의 시간적 위치에서 프레임을 보간할 수 있다는 것을 보여준다. 추가적으로, FPW 실시예들은 다수의 중간 프레임에 대해 훈련될 때에 훨씬 더 양호한 결과들을 생성할 수 있다.
FPW 실시예들은 비디오 프레임 보간에 대한 이전의 연구에 기반으로 하고, FPW 보간 신경망(예컨대, 도 2 및 도 4의 FSN(400))을 훈련시키기 위하여 색 손실 및 지각 손실을 사용한다. 본 명세서에서 논의된 실험들은 이 네트워크들이 고품질 보간 결과들을 생성할 수 있다는 것을 보여준다. 또한, 본 명세서에서 논의된 FPW 실시예들은 적대적 훈련, 이미지 생성에서의 사이클 일관성, 및/또는 훈련을 감독하는 다른 유사한 진보된 기법들을 포함하도록 확장될 수 있다.
IV. 예시적인 시스템들 및 구현예들
도 9는 다양한 실시예들에 따라 컴퓨팅 시스템(900)("플랫폼(900)", "디바이스(900)', "기기(900)" 등으로서 또한 지칭됨)의 예를 예시한다. 시스템(900)은 본 명세서에서 논의된 컴퓨터 디바이스들 중 임의의 것으로서 사용하기에 적합할 수 있다. 시스템(900)의 컴포넌트들은 개별적인 컴퓨터 시스템으로서, 또는 더 대형 시스템의 샤시 내에 이와 다르게 통합된 컴포넌트들로서 구현될 수 있다. 시스템(900)의 컴포넌트들은 컴퓨터 시스템(900)에서 적응된 적절한 로직, 소프트웨어, 펌웨어, 또는 그 조합을 갖는 집적 회로(integrated circuit)(IC)들 또는 다른 개별 전자 디바이스들로서 구현될 수 있다. 추가적으로 또는 대안적으로, 시스템(900)의 컴포넌트들의 일부는 조합될 수 있고, 적합한 시스템-온-칩(System-on-Chip)(SoC), 시스템-인-패키지(System-in-Package)(SiP), 멀티-칩 패키지(multi-chip package)(MCP) 등으로서 구현될 수 있다.
시스템(900)은 컨텐츠 및/또는 서비스들을 원격 시스템(955)으로/원격 시스템(955)으로부터 제공할 수 있고 및/또는 액세스할 수 있는 물리적 하드웨어 디바이스들 및 소프트웨어 컴포넌트들을 포함한다. 시스템(900) 및/또는 원격 시스템(955)은 컨텐츠/서비스들을 서로로부터/서로에게 액세스하고 및/또는 제공하기 위하여 사용 가능한 임의의 적합한 컴퓨팅 시스템 또는 다른 데이터 프로세싱 장치로서 구현될 수 있다. 예들로서, 시스템(900) 및/또는 원격 시스템(955)은 데스크톱 컴퓨터들, 워크스테이션들, 랩톱 컴퓨터들, 모바일 셀룰러 전화들(예컨대, "스마트폰들"), 태블릿 컴퓨터들, 휴대용 미디어 플레이어들, 웨어러블 컴퓨팅 디바이스들, 서버 컴퓨터 시스템들, (예컨대, 클라우드-기반 환경에서의) 컴퓨팅 자원들의 취합, 또는 네트워크(950) 또는 다른 네트워크와 직접적으로 또는 간접적으로 인터페이싱할 수 있는 일부 다른 컴퓨팅 디바이스들을 포함할 수 있다. 시스템(900)은 예를 들어, 전송 제어 프로토콜(Transmission Control Protocol)(TCP)/인터넷 프로토콜(Internet Protocol)(IP) 상에서의 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol)(HTTP), 또는 파일 전송 프로토콜(File Transfer Protocol)(FTP)과 같은 하나 이상의 다른 공통 인터넷 프로토콜; 세션 기술 프로토콜(Session Description Protocol)(SDP)을 갖는 세션 개시 프로토콜(Session Initiation Protocol)(SIP), 실시간 전송 프로토콜(Real-time Transport Protocol)(RTP), 또는 실시간 스트리밍 프로토콜(Real-time Streaming Protocol)(RTSP); 보안 쉘(Secure Shell)(SSH), 확장 가능한 메시징 및 프레즌스 프로토콜(Extensible Messaging and Presence Protocol)(XMPP); 웹소켓(WebSocket); 및/또는 본 명세서에서 논의된 것들과 같은 일부 다른 통신 프로토콜을 이용하여 컨텐츠/서비스들을 획득하고/서빙하기 위하여 원격 시스템들(955)과 통신하고 그 반대도 마찬가지이다.
본 명세서에서 이용된 바와 같이, 용어 "컨텐츠"는 특정한 청중 또는 최종-사용자에게 전달될 시각적 또는 청각적 정보를 지칭하고, 특정 주제들 또는 화제들에 속하는 정보를 포함할 수 있거나 전달할 수 있다. 컨텐츠 또는 컨텐츠 항목들은 상이한 컨텐츠 유형들(예컨대, 텍스트, 이미지, 오디오, 비디오 등)일 수 있고, 및/또는 상이한 포맷들(예컨대, Microsoft® Word® 문서들, 휴대용 문서 포맷(Portable Document Format)(PDF) 문서들, HTML 문서들을 포함하는 텍스트 파일들; MPEG-4 오디오 파일들과 같은 오디오 파일들, 및 WebM 오디오 및/또는 비디오 파일들; 등)을 가질 수 있다. 본 명세서에서 이용된 바와 같이, 용어 "서비스"는 시스템(900)과 같은 요청 당사자를 대신하여 수행될 특정한 기능성 또는 기능들의 세트를 지칭한다. 예들로서, 서비스는 특정된 정보의 취출(retrieval) 또는 동작들의 세트의 실행을 포함할 수 있거나 수반할 수 있다. 컨텐츠/서비스들을 액세스하기 위하여, 시스템(900)은 프로세서들, 메모리 디바이스들, 통신 인터페이스들 등과 같은 컴포넌트들을 포함한다. 그러나, 용어들 "컨텐츠" 및 "서비스"는 이 용어들이 상이한 개념들을 지칭하더라도, 본 개시의 전반에 걸쳐 상호 교환 가능하게 이용될 수 있다.
시스템(900)을 지금부터 참조하면, 시스템(900)은, 프로그램 코드를 실행하고, 및/또는 산술적 또는 논리적 동작들의 시퀀스를 순차적으로 그리고 자동적으로 수행하고; 디지털 데이터를 레코딩하고, 저장하고, 및/또는 전송하도록 구성되는 프로세서 회로부(902)를 포함한다. 프로세서 회로부(902)는 캐시 메모리, 로우 드롭-아웃(low drop-out) 전압 레귤레이터들(LDO들), 인터럽트 컨트롤러들, 직렬 주변 인터페이스(serial peripheral interface)(SPI)와 같은 직렬 인터페이스들, 집적회로간(inter-integrated circuit)(I2C) 또는 범용 프로그래밍가능 직렬 인터페이스 회로, 실시간 클록(real time clock)(RTC), 간격 및 워치도그(watchdog) 타이머들을 포함하는 타이머-카운터들, 범용 입력-출력(I/O), 메모리 카드 컨트롤러들, 인터커넥트(interconnect)(IX) 컨트롤러들 및/또는 인터페이스들, 범용 직렬 버스(universal serial bus)(USB) 인터페이스들, 모바일 산업 프로세서 인터페이스(mobile industry processor interface)(MIPI) 인터페이스들, 공동 테스트 액세스 그룹(Joint Test Access Group)(JTAG) 테스트 액세스 포트들 등 중 하나 이상 및 하나 이상의 프로세서 코어와 같은 회로부를 포함하지만, 이것으로 제한되지는 않는다. 프로세서 회로부(902)는 DRAM, SRAM, EPROM, EEPROM, 플래시 메모리, 솔리드-스테이트 메모리, 및/또는 본 명세서에서 논의된 것들과 같은 임의의 다른 유형의 메모리 디바이스 기술과 같은 임의의 적합한 휘발성 및/또는 비-휘발성 메모리를 포함할 수 있는 온-칩 메모리 회로부 또는 캐시 메모리 회로부를 포함할 수 있다. 프로세서 회로부(902)의 개별적인 프로세서들(또는 개별적인 프로세서 코어들)은 메모리/스토리지와 결합될 수 있거나 메모리/스토리지를 포함할 수 있고, 다양한 애플리케이션 또는 오퍼레이팅 시스템들이 시스템(900) 상에서 작동되는 것을 가능하게 하기 위하여 메모리/스토리지에서 저장된 명령들을 실행하도록 구성될 수 있다. 이 실시예들에서, 프로세서 회로부(902)의 프로세서들(또는 코어들)은 특정 서비스들을 시스템(900)의 사용자에게 제공하기 위하여 애플리케이션 소프트웨어(예컨대, 로직/모듈들(980))를 동작시키도록 구성된다. 일부 실시예들에서, 프로세서 회로부(902)는 본 명세서에서의 다양한 실시예들에 따라 동작하기 위해 특수-목적 프로세서/컨트롤러를 포함할 수 있다.
다양한 실시예들에서, 프로세서 회로부(902)의 프로세서(들)는 예를 들어, 하나 이상의 프로세서 코어(CPU), 그래픽 프로세싱 유닛(graphics processing unit)(GPU), 축소 명령 세트 컴퓨팅(reduced instruction set computing)(RISC) 프로세서, Acorn RISC Machine(ARM) 프로세서, 복합 명령 세트 컴퓨팅(complex instruction set computing)(CISC) 프로세서, 디지털 신호 프로세서(digital signal processor)(DSP), 프로그래밍가능 로직 디바이스(programmable logic device)(PLD), 필드-프로그래밍가능 게이트 어레이(field-programmable gate array)(FPGA), 주문형 집적 회로(Application Specific Integrated Circuit)(ASIC), SoC 및/또는 프로그래밍가능 SoC, 마이크로프로세서 또는 컨트롤러, 또는 그 임의의 적합한 조합을 포함할 수 있다. 예들로서, 프로세서 회로부(902)는 Intel® Core™ 기반 프로세서(들), MCU-클래스 프로세서(들), Xeon® 프로세서(들); Ryzen® 또는 Epyc® 프로세서(들), 가속 프로세싱 유닛(Accelerated Processing Unit)(APU)들, MxGPU들 등과 같은 Advanced Micro Devices(AMD) Zen® 코어 아키텍처 프로세서(들); Apple® Inc.로부터의 A, S, W, 및 T 시리즈 프로세서(들), Qualcomm® Technologies Inc.로부터의 Snapdragon™ 또는 Centriq™ 프로세서(들), Texas Instruments, Inc.® Open Multimedia Applications Platform (OMAP)™ 프로세서(들); OpenPOWER® 재단 및/또는 IBM®에 의해 제공된 전력 아키텍처 프로세서(들), MIPS Technologies Inc.에 의해 제공된 MIPS Warrior M-클래스, Warrior I-클래스, 및 Warrior P-클래스 프로세서(들); ARM Holdings Ltd.로부터 허가된 바와 같은 ARM Cortex-A, Cortex-R, 및 Cortex-M 계열 프로세서(들); Cavium™ Inc.에 의해 제공된 ThunderX2®; Nvidia®에 의해 제공된 GeForce®, Tegra®, Titan X®, Tesla®, Shield®, 및/또는 다른 유사한 GPU들; 등을 포함할 수 있다. 프로세서 회로부(902)의 다른 예들은 본 개시에서의 어느 곳에서나 언급될 수 있다.
일부 구현예들에서, 프로세서 회로부(902)의 프로세서(들)는 진보된 비디오 코딩(Advanced Video Coding)(AVC)(또한, H.264 및 MPEG-4로서 알려짐) 디지털 데이터, 고효율 비디오 코딩(High Efficiency Video Coding)(HEVC)(또한, H.265 및 MPEG-H 파트 2로서 알려짐) 디지털 데이터, 및/또는 등을 압축/압축해제(또는 인코딩 및 디코딩)하기 위해 인코더/디코더 회로부를 포함할 수 있는, 디지털 스트리밍 데이터를 실시간으로 처리하도록 구체적으로 설계된 마이크로프로세서-기반 SoC(들), FPGA(들), 또는 DSP(들)를 포함하는 하나 이상의 미디어 프로세서일 수 있거나 이들을 포함할 수 있다.
일부 구현예들에서, 프로세서 회로부(902)는 하나 이상의 하드웨어 가속기를 포함할 수 있다. 하드웨서 가속기들은 마이크로프로세서들, 구성 가능한 하드웨어(예컨대, FPGA들, 프로그래밍가능 ASIC들, 프로그래밍가능 SoC들, DSP들 등), 또는 범용 프로세서 코어들을 이용하는 것보다 더 효율적일 수 있는, 하나 이상의 특정 태스크 또는 작업부하, 예를 들어, FINN(200)의 서브시스템들의 특정 태스크들 또는 작업부하들을 수행하도록 맞춤화된 일부 다른 적합한 특수-목적 프로세싱 디바이스일 수 있다. 일부 실시예들에서, 특정 태스크들 또는 작업부하들은 프로세서 회로부(902)의 하나 이상의 프로세서로부터 오프로딩될 수 있다. 이 구현예들에서, 프로세서 회로부(902)의 회로부는 본 명세서에서 논의된 다양한 실시예들의 절차들, 방법들, 기능들 등과 같은 다양한 기능들을 수행하도록 프로그래밍될 수 있는 임의의 다른 상호접속된 자원들을 포함하는 로직 블록들 또는 로직 패브릭(logic fabric)을 포함할 수 있다. 추가적으로, 프로세서 회로부(902)는 LUT들 등에서 로직 블록들, 로직 패브릭, 데이터 등을 저장하기 위하여 이용된 메모리 셀들(예컨대, EPROM, EEPROM), 플래시 메모리, 정적 메모리(예컨대, SRAM, 안티-퓨즈(anti-fuse)들 등)를 포함할 수 있다.
일부 구현예들에서, 프로세서 회로부(902)는 도 2에 관하여 이전에 논의된 FINN(200)의 서브시스템들을 동작시키기 위한 것과 같이, 머신 학습 기능성을 위하여 구체적으로 맞춤화된 하드웨어 요소들을 포함할 수 있다. 이 구현예들에서, 프로세서 회로부(902)는 일단 적절한 가중치들 및 훈련 코드로 로딩되면, 많은 상이한 종류들의 AI 명령 세트들을 작동시킬 수 있는 AI 엔진 칩일 수 있거나 이를 포함할 수 있다. 추가적으로 또는 대안적으로, 프로세서 회로부(902)는 FINN(200)의 서브시스템들 중 하나 이상과 같은, AI 애플리케이션의 하드웨어 가속을 위하여 설계된 전술한 하드웨어 가속기들 중 하나 이상일 수 있는 AI 가속기(들)일 수 있거나 이를 포함할 수 있다. 예들로서, 이 프로세서(들) 또는 가속기들은 인공 지능(AI) GPU들, Google® Inc.에 의해 개발된 텐서 프로세싱 유닛(TPU)들, AlphaICs®에 의해 제공된 리얼 AI 프로세서들(Real AI Processors)(RAPs™), Intel® Corp.에 의해 제공된 Nervana™ 신경망 프로세서(Neural Network Processor)(NNP)들, Intel® Movidius™ Myriad™ X 비전 프로세싱 유닛(Vision Processing Unit)(VPU), NVIDIA® PX™ 기반 GPU들, General Vision®에 의해 제공된 NM500 칩, Tesla® Inc.에 의해 제공된 하드웨어 3, Adapteva®에 의해 제공된 Epiphany™ 기반 프로세서 등의 클러스터(cluster)일 수 있다. 일부 실시예들에서, 프로세서 회로부(902) 및/또는 하드웨어 가속기 회로부는 Qualcomm®에 의해 제공된 Hexagon 685 DSP, Imagination Technologies Limited®에 의해 제공된 PowerVR 2NX 신경망 가속기(Neural Net Accelerator)(NNA), Apple® A11 또는 A12 Bionic SoC 내의 신경 엔진 코어, Huawei®에 의해 제공된 HiSilicon Kirin 970 내의 신경 프로세싱 유닛(Neural Processing Unit)(NPU), 및/또는 등과 같은 AI 가속 코-프로세서(들)로서 구현될 수 있다.
일부 구현예들에서, 프로세서 회로부(902)의 프로세서(들)는 FINN(200)의 대응하는 서브시스템들을 동작시키도록 구체적으로 설계된 하나 이상의 맞춤형-설계된 실리콘 코어일 수 있거나 이를 포함할 수 있다. 이 코어들은 하드웨어 설명 언어 로직(예컨대, 레지스터 전송 로직, 베릴로그(verilog), 초고속 집적 회로 하드웨어 설명 언어(Very High Speed Integrated Circuit hardware description language)(VHDL) 등)을 포함하는 합성 가능한 코어들; 전자 컴포넌트들 및 접속들 및/또는 프로세스-특정 초대규모 집적(very-large-scale integration)(VLSI) 레이아웃의 게이트-레벨 설명을 포함하는 넷리스트 코어(netlist core)들; 및/또는 트랜지스터-레이아웃 포맷에서의 아날로그 또는 디지털 로직으로서 설계될 수 있다. 이 구현예들에서, FINN(200)의 서브시스템들 중 하나 이상은 적어도 부분적으로 맞춤형-설계된 실리콘 코어(들) 상에서 동작될 수 있다. 이 "하드웨어화된" 서브시스템들은 더 대형 칩셋으로 통합될 수 있지만, 범용 프로세서 코어들을 이용하는 것보다 더 효율적일 수 있다.
시스템 메모리 회로부(904)는 프로세서 회로부(902)가 실행을 위하여 그 안에 저장된 명령들(982)을 연속적으로 판독하는 주 스토리지를 제공하도록 배치된 임의의 수의 메모리 디바이스들을 포함한다. 일부 실시예들에서, 메모리 회로부(904)는 프로세서 회로부(902)와 연관된 온-다이 메모리(on-die memory) 또는 레지스터(register)들이다. 예들로서, 메모리 회로부(904)는 랜덤 액세스 메모리(random access memory)(RAM), 동적 RAM(dynamic RAM)(DRAM), 동기식 DRAM(synchronous DRAM)(SDRAM) 등과 같은 휘발성 메모리를 포함할 수 있다. 메모리 회로부(04)는 또한, 고속 전기적 소거 가능 메모리(보편적으로, "플래시 메모리"로서 지칭됨), 상변화 RAM(phase change RAM)(PRAM), 자기저항성 랜덤 액세스 메모리(magnetoresistive random access memory)(MRAM)와 같은 저항성 메모리 등과 같은 비휘발성 메모리(nonvolatile memory)(NVM)를 포함할 수 있다. 메모리 회로부(904)는 또한, 비-휘발성 메모리, 광학, 자기, 및/또는 솔리드 스테이트 대용량 스토리지 등을 포함하지만, 이것으로 제한되지는 않는 임의의 유형의 일시적 및/또는 지속적 스토리지일 수 있는 지속적 저장 디바이스들을 포함할 수 있다.
저장 회로부(908)는 데이터, 애플리케이션, 오퍼레이팅 시스템들(OS) 등과 같은 정보의 지속적 저장을 제공하도록 배치된다. 예들로서, 저장 회로부(908)는 하드 디스크 드라이브(hard disk drive)(HDD), 마이크로 HDD, 솔리드-스테이트 디스크 드라이브(solid-state disk drive)(SSDD), 플래시 메모리 카드들(예컨대, SD 카드들, microSD 카드들, xD 픽처 카드들 등), USB 플래시 드바이브들, 프로세서 회로부(902)와 연관된 온-다이(on-die) 메모리 또는 레지스터들, 저항 변화 메모리들, 상변화 메모리들, 홀로그래픽 메모리(holographic memory)들, 또는 화학적 메모리들 등으로서 구현될 수 있다.
저장 회로부(908)는 본 명세서에서 설명된 기법들을 구현하기 위하여 소프트웨어, 펌웨어, 마이크로코드, 또는 하드웨어-레벨 명령들의 형태로 연산 로직(980)(또는 "모듈들(980)")을 저장하도록 구성된다. 연산 로직(980)은 시스템(900)의 다양한 컴포넌트들(예컨대, 구동기들, 라이브러리들, 애플리케이션 프로그래밍 인터페이스(application programming interface)(API)들 등), 시스템(900)의 OS, 하나 이상의 애플리케이션의 동작을 위하여, 및/또는 본 명세서에서 논의된 실시예들을 수행하기 위하여, 프로그래밍 명령들의 작동 복사본들 및/또는 영구적인 복사본들, 또는 프로그래밍 명령들을 생성하기 위한 데이터를 저장하도록 사용될 수 있다. 연산 로직(980)은 본 명세서에서 설명된 기능들을 수행하기 위하여 프로세서 회로부(902)에 의한 실행을 위해 이어서 액세스되는 명령들(982)로서, 또는 명령들(982)을 생성하기 위한 데이터로서, 메모리 회로부(904)로 저장될 수 있거나 로딩될 수 있다. 프로세서 회로부(902)는 인터커넥트(IX)(906)를 통해 메모리 회로부(904) 및/또는 저장 회로부(908)를 액세스한다. 명령들(982)은 예를 들어, 이전에 도시된 동작들 및 기능성의 플로우차트(들) 및 블록도(드)에 대하여 설명된 바와 같이, 특정 시퀀스 또는 액션들의 흐름을 수행할 것을 프로세서 회로부(902)에 지시한다. 다양한 요소들은 프로세서 회로부(902)에 의해 지원된 어셈블러 명령(assembler instruction)들, 또는 명령들(984)로 컴파일링될 수 있는 하이-레벨 언어들, 또는 프로세서 회로부(902)에 의해 실행될 명령들(984)을 생성하기 위한 데이터에 의해 구현될 수 있다. 프로그래밍 명령들의 영구적인 복사본은 예를 들어, 분산 매체(도시되지 않음)를 통해, (예컨대, 분산 서버(도시되지 않음)로부터의) 통신 인터페이스를 통해, 또는 오버-디-에어(over-the-air)(OTA)로 공장 또는 현장에서 저장 회로부(908)의 지속적 저장 디바이스들 내로 배치될 수 있다.
시스템(900)의 오퍼레이팅 시스템(operating system)(OS)은 범용 OS, 또는 컴퓨팅 시스템(900)을 위하여 구체적으로 기입되거나 컴퓨팅 시스템(900)에 맞춤화된 OS일 수 있다. 예를 들어, 시스템(900)이 서버 시스템 또는 데스크톱 또는 랩톱 시스템(900)일 때, OS는 예컨대, Red Hat Enterprise에 의해 제공된 Linux와 같은 Unix 또는 Unix-유사 OS, Microsoft Corp.®에 의해 제공된 Windows 10™, Apple Inc.®에 의해 제공된 macOS 등일 수 있다. 시스템(900)이 이동 디바이스인 또 다른 예에서, OS는 Google Inc.®에 의해 제공된 Android®, Apple Inc.®에 의해 제공된 iOS®, Microsoft Corp.®에 의해 제공된 Windows 10 Mobile®, KaiOS Technologies Inc.에 의해 제공된 KaiOS 등과 같은 이동 OS일 수 있다.
OS는 컴퓨터 하드웨어 및 소프트웨어 자원들을 관리하고, 다양한 애플리케이션(예컨대, 애플리케이션(110))을 위한 공통 서비스들을 제공한다. OS는, 시스템(900) 내에 내장되거나, 시스템(900)에 연결되거나, 또는 이와 다르게 시스템(900)과 통신 가능하게 결합되는 특정한 디바이스들을 제어하도록 동작하는 하나 이상의 구동기 또는 API를 포함할 수 있다. 구동기들은 개별적인 구동기들을 포함할 수 있고, 개별적인 구동기들은 시스템(900)의 다른 컴포넌트들이, 시스템(900) 내에 존재할 수 있거나 시스템(900)에 접속될 수 있는 다양한 I/O 디바이스들과 상호작용하거나 다양한 I/O 디바이스들을 제어하는 것을 허용할 수 있다. 예를 들어, 구동기들은 디스플레이 디바이스에 대한 액세스를 제어하고 허용하기 위해 디스플레이 구동기, 시스템(900)의 터치스크린 인터페이스에 대한 액세스를 제어하고 허용하기 위해 터치스크린 구동기, 센서 회로부(921)의 센서 판독들을 획득하고 센서 회로부(921)에 대한 액세스를 제어하고 허용하기 위해 센서 구동기들, 액츄에이터들(922)의 액츄에이터 위치들을 획득하고 및/또는 액츄에이터들(922)에 대한 액세스를 제어하고 허용하기 위해 액츄에이터 구동기들, 내장된 이미지 캡처 디바이스에 대한 액세스를 제어하고 허용하기 위해 카메라 구동기, 하나 이상의 오디오 디바이스에 대한 액세스를 제어하고 허용하기 위해 오디오 구동기들을 포함할 수 있다. OS들은 또한, 이전에 논의된 FINN(200)의 다양한 서브시스템들과 같은 시스템(900)에 의해 동작된 다른 애플리케이션으로부터 데이터를 획득하고 이를 이용하기 위하여 하나 이상의 애플리케이션을 위한 프로그램 코드 및/또는 소프트웨어 컴포넌트들을 제공하는 하나 이상의 라이브러리, 구동기, API, 펌웨어, 미들웨어(middleware), 소프트웨어 글루(software glue) 등을 포함할 수 있다.
시스템(900)의 컴포넌트들은 인터커넥트(IX)(906)를 통해 서로 통신한다. IX(906)는 산업 표준 아키텍처(industry standard architecture)(ISA), 확장된 ISA(extended ISA)(EISA), 집적회로간(I2C), 직렬 주변 인터페이스(SPI), 점대점(point-to-point) 인터페이스들, 전력 관리 버스(power management bus)(PMBus), 주변 컴포넌트 인터커넥트(peripheral component interconnect)(PCI), PCI 익스프레스(PCI express)(PCIe), Intel® 울트라 경로 인터페이스(Ultra Path Interface)(UPI), Intel® 가속기 링크(Accelerator Link)(IAL), 공통 애플리케이션 프로그래밍 인터페이스(Common Application Programming Interface)(CAPI), Intel® 퀵패스 인터커넥트(QuickPath Interconnect)(QPI), Intel® 옴니-경로 아키텍처(Omni-Path Architecture)(OPA) IX, RapidIO™ 시스템 인터커넥트들, 이더넷(Ethernet), 가속기들을 위한 캐시 일관성 인터커넥트(Cache Coherent Interconnect for Accelerators)(CCIA), Gen-Z 컨소시움 IX들, 오픈 일관성 가속기 프로세서 인터페이스(Open Coherent Accelerator Processor Interface)(OpenCAPI)와 같은 임의의 수의 IX 기술들, 및/또는 임의의 수의 다른 IX 기술들을 포함할 수 있다. IX(906)는 예를 들어, SoC 기반 시스템에서 이용된 독점 버스일 수 있다.
통신 회로부(909)는 하나 이상의 네트워크(예컨대, 네트워크(950))를 통해서 및/또는 다른 디바이스들과 통신하기 위하여 이용된 하드웨어 요소 또는 하드웨어 요소들의 집합이다. 통신 회로부(909)는 모뎀(910) 및 트랜시버 회로부(transceiver circuitry)("TRx")(812)를 포함한다. 모뎀(910)은 다양한 프로토콜 및 무선(radio) 제어 기능들을 수행하기 위해 하나 이상의 프로세싱 디바이스(예컨대, 기저대역 프로세서들)를 포함한다. 모뎀(910)은 기저대역 신호들의 생성 및 프로세싱을 위하여, 그리고 TRx(912)의 동작들을 제어하기 위하여, 시스템(900)의 애플리케이션 회로부(예컨대, 프로세서 회로부(902) 및 CRM(860)의 조합)와 인터페이싱할 수 있다. 모뎀(910)은 하나 이상의 무선 통신 프로토콜에 따라 TRx(912)를 통해 하나 이상의 무선 네트워크와의 통신을 가능하게 하는 다양한 무선 제어 기능들을 처리할 수 있다. 모뎀(910)은 하나 이상의 단일-코어 또는 멀티-코어 프로세서(예컨대, 하나 이상의 기저대역 프로세서), 또는 TRx(912)의 수신 신호 경로로부터 수신된 기저대역 신호들을 프로세싱하고, 송신 신호 경로를 통해 TRx(912)에 제공될 기저대역 신호들을 생성하기 위해 제어 로직과 같은, 그러나 이것으로 제한되지는 않는 회로부를 포함할 수 있다. 다양한 실시예들에서, 모뎀(910)은, 모뎀(910)의 자원들을 관리하고 태스크들을 스케줄링하는 등을 위한 실시간 OS(real-time OS)(RTOS)를 구현할 수 있다.
통신 회로부(909)는 또한, 비-고체 매체를 통한 변조된 전자기 방사를 이용하여 무선 네트워크들과의 통신을 가능하게 하기 위해 TRx(912)를 포함한다. TRx(912)는 아날로그 RF 신호들(예컨대, 현존하는 또는 수신된 변조된 파형)을, 모뎀(910)에 제공될 디지털 기저대역 신호들로 변환하기 위해 회로부를 포함하는 수신 신호 경로를 포함한다. TRx(912)는 또한, 모뎀(910)에 의해 제공된 디지털 기저대역 신호들을, 증폭될 것이고 하나 이상의 안테나 요소(도시되지 않음)를 포함하는 안테나 어레이를 통해 송신될 아날로그 RF 신호들(예컨대, 변조된 파형)로 변환하도록 구성된 회로부를 포함하는 송신 신호 경로를 포함한다. 안테나 어레이는 하나 이상의 인쇄 회로 기판의 표면 상에 제작되는 복수의 마이크로스트립 안테나 또는 인쇄된 안테나일 수 있다. 안테나 어레이는 다양한 형상들로 금속 포일의 패치(예컨대, 패치 안테나)로서 형성될 수 있고, 금속 송신 라인들 등을 이용하여 TRx(912)와 결합될 수 있다.
TRx(912)는 다음의 무선 통신 기술들 및/또는 표준들 중 임의의 하나 이상과 호환 가능한 하나 이상의 무선(radio)을 포함할 수 있고, 다음의 무선 통신 기술들 및/또는 표준들 중 임의의 하나 이상에 따라 동작할 수 있고, 무선 통신 기술들 및/또는 표준들 중 임의의 하나 이상은: 이동 통신들을 위한 글로벌 시스템(Global System for Mobile Communications)(GSM) 무선 통신 기술, 일반 패킷 무선 서비스(General Packet Radio Service)(GPRS) 무선 통신 기술, GSM 진화를 위한 향상된 데이터 레이트들(Enhanced Data Rates for GSM Evolution)(EDGE) 무선 통신 기술, 및/또는 3세대 파트너십 프로젝트(Third Generation Partnership Project)(3GPP) 무선 통신 기술, 예를 들어, 범용 이동 통신 시스템(Universal Mobile Telecommunications System)(UMTS), Freedom of Multimedia Access(FOMA), 3GPP 롱텀 에볼루션(Long Term Evolution)(LTE), 3GPP 롱텀 에볼루션 어드밴스드(Long Term Evolution Advanced)(LTE 어드밴스드), 코드 분할 다중 액세스 2000(Code division multiple access 2000)(CDM2000), 셀룰러 디지털 패킷 데이터(Cellular Digital Packet Data)(CDPD), 모비텍스(Mobitex), 3세대(Third Generation)(3G), 회선 교환 데이터(Circuit Switched Data)(CSD), 고속 회선-교환 데이터(High-Speed Circuit-Switched Data)(HSCSD), 범용 이동 통신 시스템(Universal Mobile Telecommunications System)(3세대)(UMTS(3G)), 광대역 코드 분할 다중 액세스(Wideband Code Division Multiple Access)(범용 이동 통신 시스템)(W-CDMA(UMTS)), 고속 패킷 액세스(High Speed Packet Access)(HSPA), 고속 다운링크 패킷 액세스(High-Speed Downlink Packet Access)(HSDPA), 고속 업링크 패킷 액세스(High-Speed Uplink Packet Access)(HSUPA), 고속 패킷 액세스 플러스(High Speed Packet Access Plus)(HSPA+), 범용 이동 통신 시스템-시간 분할 듀플렉스(Universal Mobile Telecommunications System-Time-Division Duplex)(UMTS-TDD), 시간 분할-코드 분할 다중 액세스(Time Division-Code Division Multiple Access)(TD-CDMA), 시간 분할-동기식 코드 분할 다중 액세스(Time Division-Synchronous Code Division Multiple Access)(TD-CDMA), 3세대 파트너십 프로젝트 릴리즈 8(3rd Generation Partnership Project Release 8)(4세대 이전 세대)(3GPP Rel. 8(4G 이전)), 3GPP Rel. 9(3세대 파트너십 프로젝트 릴리즈 9), 3GPP Rel. 10(3세대 파트너십 프로젝트 릴리즈 10), 3GPP Rel. 11(3세대 파트너십 프로젝트 릴리즈 11), 3GPP Rel. 12(3세대 파트너십 프로젝트 릴리즈 12), 3GPP Rel. 8(3세대 파트너십 프로젝트 릴리즈 8), 3GPP Rel. 14(3세대 파트너십 프로젝트 릴리즈 14), 3GPP Rel. 15(3세대 파트너십 프로젝트 릴리즈 15), 3GPP Rel. 16(3세대 파트너십 프로젝트 릴리즈 16), 3GPP Rel. 17(3세대 파트너십 프로젝트 릴리즈 17) 및 (Rel. 18, Rel. 19 등과 같은) 추후의 릴리즈들, 3GPP 5G, 3GPP LTE 엑스트라(Extra), LTE-어드밴스드 프로(Pro), LTE 허가된-보조 액세스(Licensed-Assisted Access)(LAA), MuLTEfire, UMTS 지상 무선 액세스(UMTS Terrestrial Radio Access)(UTRA), 진화된 UMTS 지상 무선 액세스(Evolved UMTS Terrestrial Radio Access)(E-UTRA), 롱텀 에볼루션 어드밴스드(4세대)(LTE Advanced(4G)), cdmaOne(2G), 코드 분할 다중 액세스 2000(3세대)(CDM2000(3G)), 진화-데이터 최적화 또는 진화 데이터 단독(Evolution-Data Optimized or Evolution-Data Only)(EV-DO), 진보된 이동 전화 시스템(Advanced Mobile Phone System)(1세대)(AMPS(1G)), 전체 액세스 통신 시스템(Total Access Communication System)/확장된 전체 액세스 통신 시스템(Extended Total Access Communication System)(TACS/ETACS), 디지털 AMPS(2세대)(D-AMPS(2G)), 푸시-투-토크(Push-to-talk)(PTT), 이동 전화 시스템(Mobile Telephone System)(MTS), 개선된 이동 전화 시스템(Improved Mobile Telephone System)(IMTS), 진보된 이동 전화 시스템(Advanced Mobile Telephone System)(AMTS), OLT(Norwegian for Offentlig Landmobil Telefoni, Public Land Mobile Telephony), MTD(Swedish abbreviation for Mobiltelefonisystem D, 또는 Mobile telephony system D), 공개 자동화된 육상 모바일(Public Automated Land Mobile)(Autotel/PALM), ARP(Finnish for Autoradiopuhelin, "자동차 무선 전화(car radio phone)"), NMT(Nordic Mobile Telephony), NTT(Nippon Telegraph and Telephone)의 고용량 버전(Hicap), 셀룰러 디지털 패킷 데이터(Cellular Digital Packet Data)(CDPD), Mobitex, DataTAC, 통합된 디지털 향상 네트워크(Integrated Digital Enhanced Network)(iDEN), 개인용 디지털 셀룰러(Personal Digital Cellular)(PDC), 회선 교환 데이터(Circuit Switched Data)(CSD), 개인용 핸디-폰 시스템(Personal Handy-phone System)(PHS), 광대역 통합 디지털 향상 네트워크(Wideband Integrated Digital Enhanced Network)(WiDEN), iBurst, 비허가 모바일 액세스(Unlicensed Mobile Access)(UMA)(3GPP 포괄적 액세스 네트워크 또는 GAN 표준으로서 또한 지칭됨), 블루투스(r), 블루투스 로우 에너지(Bluetooth Low Energy)(BLE), IEEE 802.15.4 기반 프로토콜들(예컨대, 저전력 무선 개인 영역 네트워크들 상의 IPv6(IPv6 over Low power Wireless Personal Area Networks)(6LoWPAN), WirelessHART, MiWi, Thread, I600.11a 등), WiFi-direct, ANT/ANT+, ZigBee, Z-Wave, 3GPP 디바이스-대-디바이스(device-to-device)(D2D) 또는 근접 서비스들(Proximity Services)(ProSe), 범용 플러그 및 플레이(Universal Plug and Play)(UPnP), 저전력 광역 네트워크(Low-Power Wide-Area-Network)(LPWAN), LoRaWAN™(Long Range Wide Area Network), Sigfox, 무선 기가비트 동맹(Wireless Gigabit Alliance)(WiGig) 표준, 일반적인 mmWave 표준들(WiGig, IEEE 802.11ad, IEEE 802.11ay 등과 같은, 10-300 GHz 이상에서 동작하는 무선 시스템들), 300 GHz 및 THz 대역들 이상에서 동작하는 기술들, (3GPP/LTE 기반 또는 IEEE 802.11p 및 그 외) 차량-대-차량(Vehicle-to-Vehicle)(V2V) 및 차량-대-X(Vehicle-to-X)(V2X) 및 차량-대-기반구조(Vehicle-to-Infrastructure)(V2I) 및 기반구조-대-차량(Infrastructure-to-Vehicle)(I2V) 통신 기술들, 3GPP 셀룰러 V2X, 지능형-교통-시스템들 및 그 외의 것들과 같은 DSRC(Dedicated Short Range Communications(전용 단거리 통신)) 통신 시스템들, 유럽 ITS-G5 시스템(즉, ITS-G5A(즉, 주파수 범위 5,875 GHz 내지 5,905 GHz에서의 안전 관련된 애플리케이션을 위한 ITS에 전용 유럽 ITS 주파수 대역들에서의 ITS-G5의 동작), ITS-G5B(즉, 주파수 범위 5,855 GHz 내지 5,875 GHz에서의 ITS 비-안전 애플리케이션에 전용 유럽 ITS 주파수 대역들에서의 동작), ITS-G5C(즉, 주파수 범위 5,470 GHz 내지 5,725 GHz에서의 ITS 애플리케이션의 동작)를 포함하는, IEEE 802.11p 기반 DSRC의 유럽향) 등을 포함하지만, 이것으로 제한되지는 않는다. 위에서 열거된 표준들에 추가적으로, 임의의 수의 위성 업링크 기술들은 예를 들어, 그 중에서도, 둘 모두 현존하지만 아직 공식화되지 않은, ITU(International Telecommunication Union(국제 전기통신 연합)) 또는 ETSI(European Telecommunications Standards Institute(유럽 전기통신 표준 협회))에 의해 발행된 표준들과 호환 가능한 무선(radio)들을 포함하는 TRx(912)를 위하여 이용될 수 있다.
네트워크 인터페이스 회로부/컨트롤러(network interface circuitry/controller)(NIC)(916)는 표준 네트워크 인터페이스 프로토콜을 이용하여 유선 통신을 네트워크(950) 또는 다른 디바이스들에 제공하기 위하여 포함될 수 있다. 표준 네트워크 인터페이스 프로토콜은 이더넷, 이더넷 오버 GRE 터널들(Ethernet over GRE Tunnels), 이더넷 오버 멀티프로토콜 라벨 스위칭(Multiprotocol Label Switching)(MPLS), 이더넷 오버 USB(Ethernet over USB)를 포함할 수 있거나, 많은 다른 것들 중에서, 컨트롤러 영역 네트워크(Controller Area Network)(CAN), 로컬 인터커넥트 네트워크(Local Interconnect Network)(LIN), DeviceNet, ControlNet, Data Highway+, PROFIBUS, 또는 PROFINET와 같은 다른 유형들의 네트워크 프로토콜들에 기초할 수 있다. 네트워크 접속성은 전기적(예컨대, "구리 상호접속") 또는 광학적일 수 있는 물리적 접속을 이용하여 NIC(916)를 통해 시스템(916)으로/시스템(900)으로부터 제공될 수 있다. 물리접 접속은 또한, 적합한 입력 커넥터들(예컨대, 포트들, 리셉터클들, 소켓들 등) 및 출력 커넥터들(예컨대, 플러그들, 핀들 등)을 포함한다. NIC(916)는 전술한 네트워크 인터페이스 프로토콜들 중 하나 이상을 이용하여 통신하기 위해 하나 이상의 전용 프로세서 및/또는 FPGA를 포함할 수 있다. 일부 구현예들에서, NIC(916)는 동일한 또는 상이한 프로토콜들을 이용하여 접속성을 다른 네트워크들에 제공하기 위해 다수의 컨트롤러를 포함할 수 있다. 예를 들어, 시스템(900)은 이더넷을 통해 클라우드에 통신을 제공하는 제1 NIC(916), 및 또 다른 유형의 네트워크를 통해 다른 디바이스들에 통신을 제공하는 제2 NIC(916)를 포함할 수 있다. 일부 구현예들에서, NIC(916)는 시스템(900)을 라우팅 또는 스위칭 디바이스에 접속하기 위해 고속 직렬 인터페이스(high-speed serial interface)(HSSI) NIC일 수 있다.
네트워크(950)는 컴퓨터들, 다양한 컴퓨터들 사이(예컨대, 시스템(900)과 원격 시스템(955) 사이)의 네트워크 접속들, 및 개개의 네트워크 접속을 통해 컴퓨터들 사이의 통신을 가능하게 하기 위해 소프트웨어 루틴들을 포함한다. 이와 관련하여, 네트워크(950)는, 하나 이상의 프로세서, (예컨대, 네트워크 인터페이스 컨트롤러, 하나 이상의 안테나에 접속된 하나 이상의 송신기/수신기 등을 포함하는) 통신 시스템들, 및 컴퓨터 판독가능 매체들을 포함할 수 있는 하나 이상의 네트워크 요소를 포함한다. 이러한 네트워크 요소들의 예들은 무선 액세스 포인트(wireless access point)(WAP)들, (무선 주파수(RF) 통신 회로부를 갖거나 갖지 않는) 홈/업무 서버, 라우터, 스위치, 허브, 무선 표지(radio beacon), 기지국들, 피코셀 또는 소형 셀 기지국들, 및/또는 임의의 다른 유사한 네트워크 디바이스를 포함할 수 있다. 네트워크(950)에 대한 접속은 아래에서 논의된 다양한 통신 프로토콜들을 이용하는 유선 또는 무선 접속을 통한 것일 수 있다. 본 명세서에서 이용된 바와 같이, 유선 또는 무선 통신 프로토콜은, 데이터를 패킷화하고/역패킷화하고, 신호들을 변조하고/복조하고, 프로토콜 스택들의 구현 등을 위한 명령들을 포함하는, 다른 디바이스들과 통신하기 위해 통신 디바이스/시스템에 의해 구현된 표준화된 규칙들 또는 명령들의 세트를 지칭할 수 있다. 하나 초과의 네트워크가 예시된 디바이스들 사이의 통신 세션에 관여될 수 있다. 네트워크(950)에 대한 접속은 컴퓨터들이 예를 들어, 무선(또는 셀룰러) 전화 네트워크에서의 컴퓨터 네트워킹 또는 동등한 것의 OSI 모델의 7개의 계층을 가능하게 하는 소프트웨어 루틴들을 실행할 것을 요구할 수 있다.
네트워크(950)는 독점 및/또는 기업 네트워크들, 전송 제어 프로토콜(TCP)/인터넷 프로토콜(IP)-기반 네트워크, 또는 그 조합들을 포함하는, 인터넷, 하나 이상의 셀룰러 네트워크, 로컬 영역 네트워크(local area network)(LAN), 또는 광역 네트워크(wide area network)(WAN)를 나타낼 수 있다. 이러한 실시예들에서, 네트워크(950)는 하나 이상의 기지국 또는 액세스 포인트, 디지털 데이터 또는 전화 호출을 라우팅하기 위한 하나 이상의 서버(예컨대, 코어 네트워크 또는 백본 네트워크) 등과 같은, 네트워크와 관련된 서비스들을 제공하기 위하여 필요한 장비 및 다른 요소들을 소유하거나 제어하는 네트워크 운영자와 연관될 수 있다. 인트라넷(intranet), 엑스트라넷(extranet), 가상적 사설 네트워크(virtual private network)(VPN), 기업 네트워크, 비-TCP/IP 기반 네트워크, 임의의 LAN 또는 WAN 등과 같은 다른 네트워크들은 인터넷 대신에 또는 인터넷에 추가적으로 이용될 수 있다.
외부 인터페이스(918)(또한, "I/O 인터페이스 회로부" 등으로서 지칭됨)는 시스템(900)을 외부 디바이스들 또는 서브시스템들과 접속하거나 결합하도록 구성된다. 외부 인터페이스(918)는 시스템(900)을 외부 컴포넌트들/디바이스들과 결합하기 위해 임의의 적합한 인터페이스 컨트롤러들 및 커넥터들을 포함할 수 있다. 예로서, 외부 인터페이스(918)는 시스템(100)을 외부(주변) 컴포넌트들/디바이스들과 접속하기 위하여 이용된 외부 확장 버스(예컨대, 범용 직렬 버스(USB), 파이어와이어(FireWire), 썬더볼트(Thunderbolt) 등)일 수 있다. 외부 디바이스들은 그 중에서도, 센서 회로부(921), 액츄에이터들(922), 및 위치결정 회로부(945)를 포함하지만, 도 9에 의해 도시되지 않은 다른 디바이스들 또는 서브시스템들을 또한 포함할 수 있다.
센서 회로부(921)는 그 목적이 그 환경에서의 이벤트들 또는 변화들을 검출하고 검출된 이벤트들에 대한 정보(센서 데이터)를 일부 다른 디바이스, 모듈, 서브시스템 등으로 전송하기 위한 것인 디바이스들, 모듈들, 또는 서브시스템들을 포함할 수 있다. 이러한 센서들(621)의 예들은 그 중에서도, 가속도계들, 자이로스코프들, 및/또는 자력계들을 포함하는 관성 측정 유닛(inertia measurement unit)(IMU)들; 3-축 가속도계들, 3-축 자이로스코프들, 및/또는 자력계들을 포함하는 미세전자기계 시스템(microelectromechanical system)(MEMS)들 또는 나노전자기계 시스템(nanoelectromechanical system)(NEMS)들; 레벨 센서들, 흐름 센서들; 온도 센서들(예컨대, 서미스터들); 압력 센서들; 기압 센서들; 중력계들; 고도계들; 이미지 캡처 디바이스들(예컨대, 카메라들); 광 검출 및 레인징(light detection and ranging)(LiDAR) 센서들; 근접 센서들(예컨대, 적외선 방사 검출기들 등), 심도 센서들, 주변 광 센서들, 초음파 트랜시버들; 마이크로폰들 등을 포함한다.
외부 인터페이스(918)는 시스템(900)을 액츄에이터들(922)에 접속하여, 시스템(900)이 그 상태, 위치, 및/또는 방위를 변경하거나, 기구 또는 시스템을 이동시키거나 제어하는 것을 허용한다. 액츄에이터들(922)은 기구 또는 시스템을 이동시키거나 제어하기 위해 전기 및/또는 기계 디바이스들을 포함하고, 에너지(예컨대, 전류 또는 이동하는 공기 및/또는 액체)를 일부 종류의 모션으로 변환한다. 액츄에이터들(922)은 압전 바이오모프(piezoelectric biomorph)들, 솔리드 스테이트 액츄에이터들, 솔리드 스테이트 릴레이(solid state relay)(SSR)들, 형상-기억 합금-기반 액츄에이터들, 전기활성 폴리머-기반 액츄에이터들, 릴레이 구동기 집적 회로(IC)들 및/또는 등과 같은 하나 이상의 전자(또는 전자기계) 디바이스를 포함할 수 있다. 액츄에이터들(922)은 공압 액츄에이터들, 유압 액츄에이터들, 전자기계 릴레이(electromechanical relay)(EMR)들을 포함하는 전자기계 스위치들, 모터들(예컨대, DC 모터들, 스텝퍼 모터들, 서보기구들 등), 휠(wheel)들, 스러스터(thruster)들, 프로펠러들, 클로(claw)들, 클램프(clamp)들, 후크(hook)들, 가청 사운드 생성기, 및/또는 다른 유사한 전자기계 컴포넌트들과 같은 하나 이상의 전자기계 디바이스를 포함할 수 있다. 시스템(900)은 하나 이상의 캡처된 이벤트 및/또는 서비스 제공자 및/또는 다양한 클라이언트 시스템으로부터 수신된 명령들 또는 제어 신호들에 기초하여 하나 이상의 액츄에이터(922)를 동작시키도록 구성될 수 있다. 실시예들에서, 시스템(900)은 본 명세서에서 논의된 바와 같이 전기적 네트워크를 재구성하기 위하여 명령들을 다양한 액츄에이터들(922)(또는 하나 이상의 액츄에이터(922)를 제어하는 컨트롤러들)로 송신할 수 있다.
위치결정 회로부(945)는 글로벌 내비게이션 위성 시스템(global navigation satellite system)(GNSS)의 위치결정 네트워크에 의해 송신/브로드캐스팅된 신호들을 수신하고 디코딩하기 위해 회로부를 포함한다. 내비게이션 위성 성상도(navigation satellite constellation)들(또는 GNSS)의 예들은 미국의 글로벌 위치결정 시스템(Global Positioning System)(GPS), 러시아의 글로벌 내비게이션 시스템(GLONASS), 유럽 연합의 갈릴레오 시스템, 중국의 바이두 내비게이션 위성 시스템, 지역 내비게이션 시스템 또는 GNSS 증강 시스템(예컨대, 인도의 성상도(NAVIC), 일본의 준-제니스 위성 시스템(Quasi-Zenith Satellite System)(QZSS), 프랑스의 위성에 의해 통합된 도플러 궤도 및 무선-위치결정(Doppler Orbitography and Radio-positioning Integrated by Satellite)(DORIS) 등) 등을 포함한다. 위치결정 회로부(945)는 내비게이션 위성 성상도 노드들과 같은, 위치결정 네트워크의 컴포넌트들과 통신하기 위해 (예컨대, OTA 통신들을 용이하게 하기 위해 스위치들, 필터들, 증폭기들, 안테나 요소들 등과 같은 하드웨어 디바이스들을 포함하는) 다양한 하드웨어 요소들을 포함한다. 일부 실시예들에서, 위치결정 회로부(945)는 GNSS 보조 없이 위치 추적/추정을 수행하기 위하여 마스터 타이밍 클록을 이용하는 위치결정, 내비게이션, 및 타이밍을 위한 마이크로-기술(Micro-Technology for Positioning, Navigation, and Timing)(Micro-PNT) IC를 포함할 수 있다. 위치결정 회로부(945)는 또한, 위치결정 네트워크의 노드들 및 컴포넌트들과 통신하기 위해 통신 회로부(909)의 일부일 수 있거나 통신 회로부(909)와 상호작용할 수 있다. 위치결정 회로부(945)는 또한, 위치 데이터 및/또는 시간 데이터를 애플리케이션 회로부에 제공할 수 있고, 애플리케이션 회로부는 동작들을 다양한 기반구조(예컨대, 무선 기지국들)와 동기화하기 위하여, 턴-바이-턴(turn-by-turn) 내비게이션을 위한 것 등을 위하여 데이터를 이용할 수 있다.
입력/출력(I/O) 디바이스들(956)은 시스템(900) 내에 존재할 수 있거나, 시스템(900)에 접속될 수 있다. I/O 디바이스들(956)은, 시스템(900)과의 사용자 상호작용을 가능하게 하도록 설계된 하나 이상의 사용자 인터페이스 및/또는 시스템(900)과의 주변 컴포넌트 상호작용을 가능하게 하도록 설계된 주변 컴포넌트 인터페이스들을 포함하는 입력 디바이스 회로부 및 출력 디바이스 회로부를 포함한다. 입력 디바이스 회로부는 그 중에서도, 하나 이상의 물리적 또는 가상적 버튼(예컨대, 재설정 버튼), 물리적 키보드, 키패드, 마우스, 터치패드, 터치스크린, 마이크로폰들, 스캐너, 헤드셋, 및/또는 등을 포함하는, 입력을 받아들이기 위한 임의의 물리적 또는 가상적 수단을 포함한다. 출력 디바이스 회로부는 센서 판독들, 액츄에이터 위치(들), 또는 다른 유사한 정보와 같은 정보를 보여주거나 전달하기 위하여 이용된다. 데이터 및/또는 그래픽들은 출력 디바이스 회로부의 하나 이상의 사용자 인터페이스 컴포넌트 상에서 디스플레이될 수 있다. 출력 디바이스 회로부는 그 중에서도, 하나 이상의 간단한 시각적 출력/표시기(예컨대, 2진 상태 표시기(예컨대, 발광 다이오드(LED))) 및 멀티-문자 시각적 출력, 또는 디스플레이 디바이스 또는 터치스크린(예컨대, 액정 디스플레이(LCD), LED 디스플레이, 양자 도트 디스플레이, 투영기 등)과 같은 더 복잡한 출력들을 포함하는, 임의의 수의 오디오 또는 시각적 디스플레이 및/또는 오디오 또는 시각적 디스플레이의 조합들을 포함할 수 있고, 문자들, 그래픽들, 멀티미디어 객체들 등의 출력은 시스템(900)의 동작으로부터 생성되거나 만들어진다. 출력 디바이스 회로부는 또한, 스피커들 또는 다른 오디오 방출 디바이스들, 프린터(들), 및/또는 등을 포함할 수 있다. 일부 실시예들에서, 센서 회로부(921)는 입력 디바이스 회로부(예컨대, 이미지 캡처 디바이스, 모션 캡처 디바이스 등)로서 이용될 수 있고, 하나 이상의 액츄에이터(922)는 출력 디바이스 회로부(예컨대, 햅틱 피드백 등을 제공하기 위해 액츄에이터)로서 이용될 수 있다. 또 다른 예에서, 안테나 요소 및 프로세싱 디바이스와 결합된 NFC 컨트롤러를 포함하는 근거리 통신(near-field communication)(NFC) 회로부는 전자 태그들을 판독하고 및/또는 또 다른 NFC-가능형 디바이스와 접속하기 위하여 포함될 수 있다. 주변 컴포넌트 인터페이스들은 비-휘발성 메모리 포트, 범용 직렬 버스(USB) 포트, 오디오 잭, 전력 공급 인터페이스 등을 포함할 수 있지만, 이것으로 제한되지는 않는다.
배터리(924)는 시스템(900)을 급전하기 위하여 시스템(900)에 결합될 수 있고, 이것은 시스템(900)이 이동 또는 랩톱 클라이언트 시스템인 경우와 같이 고정된 위치에 있지 않는 실시예들에서 이용될 수 있다. 배터리(924)는 리튬 이온 배터리, 납-산 자동차 배터리, 또는 금속-공기 배터리, 예컨대, 아연-공기 배터리, 알루미늄-공기 배터리, 리튬-공기 배터리, 리튬 폴리머 배터리, 및/또는 등일 수 있다. 시스템이 서버 컴퓨터 시스템으로서 구현될 때와 같이, 시스템(900)이 고정된 위치에서 장착되는 실시예들에서, 시스템(900)은 전기적 그리드에 결합된 전력 공급부를 가질 수 있다. 이 실시예들에서, 시스템(900)은 단일 케이블을 이용하여 전력 공급 및 데이터 접속성의 둘 모두를 시스템(900)에 제공하기 위하여 네트워크 케이블로부터 인출된 전기적 전력을 제공하기 위해 전력 티 회로부(power tee circuitry)를 포함할 수 있다.
전력 관리 집적 회로부(power management integrated circuitry)(PMIC)(926)는 배터리(924)의 충전 상태(SoCh)를 추적하기 위하여, 그리고 시스템(900)의 충전을 제어하기 위하여, 시스템(900) 내에 포함될 수 있다. PMIC(926)는 배터리(924)의 열화 상태(state of health)(SoH) 및 기능 상태(state of function)(SoF)와 같은, 고장 예측들을 제공하기 위해 배터리(924)의 다른 파라미터들을 모니터링하기 위하여 이용될 수 있다. PMIC(926)는 전압 레귤레이터들, 서지 보호기들, 전력 경고 검출 회로부를 포함할 수 있다. 전력 경고 검출 회로부는 브라운아웃(brown out)(과소-전압) 및 서지(과다-전압) 조건들 중 하나 이상을 검출할 수 있다. PMIC(926)는 IX(906)을 통해 배터리(924)에 대한 정보를 프로세서 회로부(902)로 통신할 수 있다. PMIC(926)는 또한, 프로세서 회로부(902)가 배터리(924)의 전압 또는 배터리(924)로부터의 전류를 직접적으로 모니터링하는 것을 허용하는 아날로그-대-디지털(analog-to-digital)(ADC) 변환기를 포함할 수 있다. 송신 주파수, 메쉬 네트워크 동작, 감지 빈도 등과 같은 배터리 파라미터들은 시스템(900)이 수행할 수 있는 액션들을 결정하기 위하여 이용될 수 있다.
전력 블록(928), 또는 전기적 그리드에 결합된 다른 전력 공급부는 배터리(924)를 충전하기 위하여 PMIC(926)와 결합될 수 있다. 일부 예들에서, 전력 블록(928)은 예를 들어, 시스템(900)에서의 루프 안테나(loop antenna)를 통해 전력을 무선으로 획득하기 위해 무선 전력 수신기로 대체될 수 있다. 이 구현예들에서, 무선 배터리 충전 회로는 PMIC(926) 내에 포함될 수 있다. 선택된 특정 충전 회로들은 배터리(924)의 크기 및 필요한 전류에 의존한다.
시스템(900)은 도 9에 의해 도시된 컴포넌트들의 임의의 조합들을 포함할 수 있지만, 도시된 컴포넌트들의 일부는 생략될 수 있고, 추가적인 컴포넌트들이 존재할 수 있고, 도시된 컴포넌트들의 상이한 배열이 다른 구현예들에서 발생할 수 있다. 시스템(900)이 서버 컴퓨터 시스템이거나 서버 컴퓨터 시스템의 일부인 하나의 예에서, 배터리(924), 통신 회로부(909), 센서들(921), 액츄에이터들(922), 및/또는 POS(945), 및 I/O 디바이스들(956)의 가능하게는 일부 또는 전부가 생략될 수 있다.
또한, 본 개시의 실시예들은 컴퓨터 프로그램 제품 또는 컴퓨터 프로그램을 생성하기 위한 데이터의 형태를 취할 수 있고, 임의의 유형의 또는 비-일시적 매체의 표현으로 구체화된 컴퓨터 프로그램 또는 데이터는 매체에서 구체화된 컴퓨터-사용가능 프로그램 코드(또는 컴퓨터 프로그램을 생성하기 위한 데이터)를 가진다. 도 10은 (도 1 내지 도 9에 관하여 설명된 디바이스들/컴포넌트들/시스템들 중 임의의 것과 같은) 장치로 하여금, 장치에 의한 명령들의 실행에 응답하여, 본 개시의 선택된 양태들을 실시하게 하는 명령들(또는 명령들을 생성하는 데이터)을 저장하는 데 사용하기에 적합할 수 있는 예시적인 비-일시적 컴퓨터-판독가능 저장 매체들(non-transitory computer-readable storage media)(NTCRSM)을 예시한다. 도시된 바와 같이, NTCRSM(1002)은 다수의 프로그래밍 명령(1004)(또는 프로그래밍 명령들을 생성하기 위한 데이터)을 포함할 수 있다. 프로그래밍 명령들(1004)은 디바이스(예컨대, 도 1 내지 도 9에 관하여 설명된 디바이스들/컴포넌트들/시스템들 중 임의의 것)가 프로그래밍 명령들(1004)의 실행에 응답하여, 오퍼레이팅 시스템 기능들과 연관된 다양한 프로그래밍 동작, 하나 이상의 애플리케이션, 및/또는 (도 1 내지 도 8과 연관된 다양한 프로그래밍 동작들을 포함하는) 본 개시의 양태들을 수행하는 것을 가능하게 하도록 구성될 수 있다. 다양한 실시예들에서, 프로그래밍 명령들(1004)은 도 9에 관하여 이전에 논의된 연산 로직(980), 명령들(982 및 984) 중 임의의 것에 대응할 수 있다.
대안적인 실시예들에서, 프로그래밍 명령들(1004)(또는 명령들(1004)을 생성하기 위한 데이터)은 다수의 NTCRSM(1002) 상에서 배치될 수 있다. 대안적인 실시예들에서, 프로그래밍 명령들(1004)(또는 명령들(1004)을 생성하기 위한 데이터)은 신호들과 같은 컴퓨터-판독가능 일시적 저장 매체들 상에서 배치될 수 있다. 머신-판독가능 매체에 의해 구체화된 프로그래밍 명령들(1004)은 다수의 전송 프로토콜(예컨대, HTTP 등) 중 임의의 하나를 사용하는 네트워크 인터페이스 디바이스(예컨대, 도 9의 통신 회로부(909) 및/또는 NIC(916))를 통해 송신 매체를 이용하여 통신 네트워크를 통해 송신될 수 있거나 수신될 수 있다.
하나 이상의 컴퓨터 사용가능 또는 컴퓨터 판독가능 매체의 임의의 조합은 NTCRSM(1002)으로서 또는 NTCRSM(1002) 대신에 사용될 수 있다. 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체는 예를 들어, 하나 이상의 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 디바이스, 또는 전파 매체일 수 있지만, 이것으로 제한되지는 않는다. 예를 들어, NTCRSM(1002)은 도 9에 관하여 이전에 설명된 저장 회로부(908) 및/또는 메모리 회로부(904)에 대하여 설명된 디바이스들에 의해 구체화될 수 있다. 컴퓨터-판독가능 매체의 더 구체적인 예들(비-철저한 리스트)은 다음을 포함할 수 있다: 하나 이상의 배선을 가지는 전기적 접속, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(random access memory)(RAM), 판독-전용 메모리(read-only memory)(ROM), 소거 가능 프로그래밍가능 판독-전용 메모리(EPROM, 플래시 메모리 등), 광섬유, 휴대용 컴팩트 디스크 판독-전용 메모리(compact disc read-only memory)(CD-ROM), 광학 저장 디바이스 및/또는 광학 디스크들, 인터넷 또는 인트라넷을 지원하는 것들과 같은 송신 매체들, 자기적 저장 디바이스, 또는 임의의 수의 다른 하드웨어 디바이스들. 본 개시의 맥락에서, 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체는 명령 실행 시스템, 장치, 또는 디바이스에 의한 이용을 위하여, 또는 명령 실행 시스템, 장치, 또는 디바이스와 관련하여, 프로그램(또는 프로그램을 생성하기 위한 데이터)를 포함할 수 있거나, 저장할 수 있거나, 통신할 수 있거나, 전파할 수 있거나, 이송할 수 있는 임의의 매체일 수 있다. 컴퓨터-사용가능 매체는 기저대역에서 또는 반송파의 일부로서, (예컨대, 프로그래밍 명령들(1004)을 포함하는) 컴퓨터-사용가능 프로그램 코드 또는 이와 함께 구체화된 프로그램 코드를 생성하기 위한 데이터를 갖는 전파된 데이터 신호를 포함할 수 있다. 컴퓨터 사용가능 프로그램 코드, 또는 프로그램을 생성하기 위한 데이터는, 무선, 유선, 광섬유 케이블, RF 등을 포함하지만, 이것으로 제한되지는 않는 임의의 적절한 매체를 이용하여 송신될 수 있다.
다양한 실시예들에서, 본 명세서에서 설명된 프로그램 코드(또는 프로그램 코드를 생성하기 위한 데이터)는 압축된 포맷, 암호화된 포맷, 단편화된 포맷, 패키징된 포맷 등 중 하나 이상으로 저장될 수 있다. 본 명세서에서 설명된 바와 같은 프로그램 코드(예컨대, 프로그래밍 명령들(1004)) 또는 프로그램 코드를 생성하기 위한 데이터는 컴퓨팅 디바이스 및/또는 다른 머신에 의해 직접적으로 판독가능하고 및/또는 실행 가능하도록 하기 위하여, 설치, 수정, 적응, 업데이팅, 조합, 보충, 구성, 복호화, 압축해제, 언팩킹, 분산, 재배정 등 중 하나 이상을 요구할 수 있다. 예를 들어, 프로그램 코드 또는 프로그램 코드를 생성하기 위한 데이터는 별도의 컴퓨팅 디바이스들 상에서 개별적으로 압축되고, 암호화되고, 저장되는 다수의 부분에 저장될 수 있고, 여기서, 부분들은, 암호화되고, 압축해제되고, 조합될 때, 본 명세서에서 설명된 것들과 같은 프로그램 코드 또는 프로그램 코드를 생성하기 위한 데이터를 구현하는 실행 가능 명령들의 세트를 형성한다. 또 다른 예에서, 프로그램 코드 또는 프로그램 코드를 생성하기 위한 데이터는 이들이 컴퓨터에 의해 판독될 수 있는 상태에서 저장될 수 있지만, 특정한 컴퓨팅 디바이스 또는 다른 디바이스 상에서 명령들을 실행하기 위하여, 라이브러리(예컨대, 동적 링크 라이브러리), 소프트웨어 개발 키트(software development kit)(SDK), 애플리케이션 프로그래밍 인터페이스(API) 등의 추가를 요구할 수 있다. 또 다른 예에서, 프로그램 코드 또는 프로그램 코드를 생성하기 위한 데이터는 프로그램 코드 또는 프로그램 코드를 생성하기 위한 데이터가 전체적으로 또는 부분적으로 실행/이용될 수 있기 전에 구성(예컨대, 설정들 저장, 데이터 입력, 네트워크 어드레스들 기록 등)될 필요가 있을 수 있다. 이 예에서, 프로그램 코드(또는 프로그램 코드를 생성하기 위한 데이터)는 제1 위치로부터 별개인 제2 위치에 위치된 구성 명령들로 언팩킹될 수 있고, 적합한 실행을 위하여 구성될 수 있고, 제1 위치에 저장될 수 있다. 구성 명령들은 개시된 기법들을 가능하게 하는 명령들과 저장 또는 실행 위치에 공동-위치되지 않는 액션, 트리거, 또는 명령에 의해 시작될 수 있다. 따라서, 개시된 프로그램 코드 또는 프로그램 코드를 생성하기 위한 데이터는, 저장되거나 또는 이와 다르게 휴지기 또는 전송 중일 때, 머신 판독가능 명령들 및/또는 프로그램(들)의 특정한 포맷 또는 상태에 관계없이, 이러한 머신 판독가능 명령 및/또는 프로그램들을 생성하기 위하여 이러한 머신 판독가능 명령들 및/또는 프로그램(들)을 망라하도록 의도된다.
예를 들어, 프로그래밍 명령들(1004), 연산 로직(980), 명령들(982), 및/또는 명령들(984)을 포함하는, 본 개시의 동작들을 수행하기 위한 컴퓨터 프로그램 코드는, Python, PyTorch, Ruby, Scala, Smalltalk, Java™, C++, C# 등과 같은 객체 지향된 프로그래밍 언어; "C" 프로그래밍 언어, Go(또는 "Golang") 프로그래밍 언어 등과 같은 절차적 프로그래밍 언어들; JavaScript, Server-Side JavaScript(SSJS), PHP, Pearl, Python, PyTorch, Ruby 또는 Rail들 상의 Ruby, Lua, Just-In Time 컴파일러를 갖는 Torch/Lua(LuaJIT), 가속 이동 페이지들 스크립트(Accelerated Mobile Pages Script)(AMPscript), VBScript, 및/또는 등과 같은 스크립팅 언어; HTML, XML, wiki 마크업(markup) 또는 Wikitext, 무선 마크업 언어(Wireless Markup Language)(WML) 등과 같은 마크업 언어; 자바 스크립트 객체 관념(Java Script Object Notion)(JSON), Apache® MessagePack™ 등과 같은 데이터 상호교환 포맷/정의; 캐스케이딩 스타일시트들(Cascading Stylesheets)(CSS), 확장 가능 스타일시트 언어(extensible stylesheet language)(XSL) 등과 같은 스타일시트 언어; Apache® Thrift, 객체 신택스 표기 1(Abstract Syntax Notation One)(ASN.1), Google® 프로토콜 버퍼들(Protocol Buffers)(protobuf) 등과 같은 인터페이스 정의 언어(interface definition language)(IDL); 독점 프로그래밍 언어들 및/또는 개발 툴들을 포함하는 일부 다른 적합한 프로그래밍 언어들, 또는 본 명세서에서 논의된 바와 같은 임의의 다른 언어들 또는 툴들을 포함하는, 하나 이상의 프로그래밍 언어의 임의의 조합으로 기입될 수 있다. 본 개시의 동작들을 수행하기 위한 컴퓨터 프로그램 코드는 또한, 본 명세서에서 논의된 프로그래밍 언어들의 임의의 조합으로 기입될 수 있다. 프로그램 코드는 전적으로 시스템(900) 상에서, 부분적으로 단독형 소프트웨어 패키지로서의 시스템(900) 상에서, 부분적으로 시스템(900) 상에서 그리고 부분적으로 원격 컴퓨터(예컨대, 원격 시스템(955)) 상에서, 또는 전적으로 원격 컴퓨터(예컨대, 원격 시스템(955)) 상에서 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 임의의 유형의 네트워크(예컨대, 네트워크(950))를 통해 시스템(900)에 접속될 수 있다.
V. 예들
예 A01은 메모리 회로부와 결합된 프로세서 회로부를 포함하는 컴퓨팅 시스템을 포함하고, 여기서: 메모리 회로부는 프레임 보간 신경망(FINN)의 프로그램 코드를 저장하도록 배치되고, 프로세서 회로부는 비디오 프레임 보간을 위한 특징 피라미드 워핑을 수행하기 위하여 FINN을 동작시키도록 배치된다.
예 A02는 예 A01 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, FINN은 광학 흐름 추정기(OFE), 특징 피라미드 추출기(FPE), 순방향 워핑 엔진(FWE), 및 프레임 합성 신경망(FSN)을 포함한다.
예 A03은 예 A02 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, OFE는 비디오 프레임 보간을 위하여 광학 흐름을 통해 모션 추정을 명시적으로 수행하도록 배치된다.
예 A04는 예 A03 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 모션 추정을 명시적으로 수행하기 위하여, OFE는 2개의 입력 프레임 사이의 대응성들을 결정하도록 배치된다.
예 A05는 예들 A02 내지 A04 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, OFE는 컨볼루션 신경망 2.0(FlowNet2) 및/또는 피라미드, 워핑, 및 비용 볼륨 신경망(PWC-Net)을 갖는 광학 흐름이다.
예 A06은 예들 A02 내지 A05 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, FPE는 적어도 2개의 입력 프레임의 하나 이상의 특징 피라미드를 추출하도록 배치된다.
예 A07은 예 A06 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, FPE는 하나 이상의 특징 피라미드의 시각화를 생성하기 위하여 특징 공간에 대한 주성분 분석을 수행하도록 배치된다.
예 A08은 예들 A06 및 A07 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, FPE는 적어도 2개의 입력 프레임의 각각의 입력 프레임에 기초하여, 하나 이상의 특징 피라미드의 각각으로서, 복수의 피라미드 레벨을 생성하도록 배치된다.
예 A09는 예 A08 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 복수의 피라미드 레벨을 생성하기 위하여, FPE는 복수의 스트라이드된 컨볼루션을 이용하여 다운샘플링을 수행하도록 배치되고, 여기서, 복수의 스트라이드된 컨볼루션의 개별적인 스트라이드된 컨볼루션은 복수의 피라미드 레벨의 개별적인 피라미드 레벨들에 대응한다.
예 A10은 예들 A08 및 A09 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 복수의 피라미드 레벨을 생성하기 위하여, FPE는 복수의 스트라이드된 컨볼루션의 개개의 스트라이드된 컨볼루션에 대한 활성화 함수들로서, 파라메트릭 정류된 선형 유닛(PReLU)들을 이용하도록 배치된다.
예 A11은 예들 A06 내지 A10 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, FWE는 OFE에 의해 출력된 추정된 광학 흐름에 따라 하나 이상의 특징 피라미드를 적어도 2개의 입력 프레임과 함께 타겟 시간적 위치로 사전-워핑하도록 배치된다.
예 A12는 예 A11 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 하나 이상의 특징 피라미드를 적어도 2개의 입력 프레임과 함께 사전-워핑하기 위하여, FWE는 타겟 시간적 위치 (t)에 의해 스케일링된 순방향 흐름에 따라 적어도 2개의 입력 프레임의 제1 프레임의 특징 피라미드를 사전-워핑하고, 1 - t에 의해 스케일링된 역방향 흐름에 따라 적어도 2개의 입력 프레임의 제2 프레임의 특징 피라미드를 사전-워핑한다.
예 A13은 예들 A11 및 A12 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, FWE는 추정된 광학 흐름에 따라 하나 이상의 특징 피라미드를 적어도 2개의 입력 프레임과 함께 타겟 시간적 위치로 워핑하도록 배치된다.
예 A14는 예 A13 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, FWE는 복수의 피라미드 레벨의 개별적인 피라미드 레벨들을 워핑하기 위하여 광학 흐름을 리사이징하고 리스케일링하도록 배치된다.
예 A15는 예들 A12 내지 A14 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, FSN은 사전-워핑된 입력 프레임들 및 특징 피라미드들에 기초하여 보간 결과들을 생성하도록 배치된다.
예 A16은 예 A15 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, FSN은 워핑된 특징 피라미드들의 각각의 피라미드 레벨을 채널별로 연접하고; 연접된 피라미드 레벨들을, 복수의 열을 포함하는 그리드 네트워크로 입력하도록 배치되고, 여기서, 복수의 열의 하나 이상의 열은 다운샘플링을 수행하고, 복수의 열의 하나 이상의 다른 열은 업샘플링을 수행한다.
예 A17은 예들 A01 내지 A16 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 프로세서 회로부는 복수의 프로세싱 코어를 포함하고, 복수의 프로세싱 코어는 적어도 하나의 신경 프로세싱 유닛(NPU)을 포함하고, 여기서, 적어도 하나의 NPU는 OFE, FPE, FWE, 및 FSN 중 하나 이상의 프로그램 코드를 동작시키도록 배치된다.
예 A18은 예 A17 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 적어도 하나의 NPU를 포함하지 않는 복수의 프로세싱 코어의 하나 이상의 다른 프로세싱 코어는 적어도 하나의 NPU에 의해 동작되지 않는 OFE, FPE, FWE, 및 FSN 중 하나 이상의 프로그램 코드를 동작시키도록 배치된다.
예 A19는 예들 A17 및 A18 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 적어도 하나의 NPU, 및 복수의 프로세싱 코어의 다른 프로세싱 코어들은 병렬로 동작하거나 순차적인 순서로 동작하도록 배치된다.
예 A20은 예들 A17 내지 A19 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 훈련 데이터 또는 훈련 데이터세트들은 적어도 하나의 NPU의 동작들을 최적화하도록 사용된다.
예 A21은 예들 A01 내지 A16 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 프로세서 회로부는 복수의 하드웨어 가속기를 포함하고, 여기서, 복수의 하드웨어 가속기는 OFE, FPE, FWE, 및 FSN 중 대응하는 하나를 동작시키도록 구성된 하나 이상의 하드웨어 가속기를 포함한다.
예 A22는 예 A21 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 프로세서 회로부는 복수의 하드웨어 가속기와 통신 가능하게 결합되는 호스트 플랫폼의 복수의 프로세싱 코어를 더 포함하고, 복수의 프로세싱 코어는 하나 이상의 하드웨어 가속기에 의해 FINN의 동작을 초기화하고 및/또는 하나 이상의 태스크를 하나 이상의 하드웨어 가속기로 오프로딩하도록 배치된다.
예 A23은 예들 A21 및 A22 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 복수의 프로세싱 코어 및 복수의 하드웨어 가속기는 병렬로 동작하거나 순차적인 순서로 동작하도록 배치된다.
예 A24는 예들 A21 내지 A23 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 훈련 데이터 또는 훈련 데이터세트들은 복수의 하드웨어 가속기의 개개의 하드웨어 가속기들의 동작들을 최적화하도록 배치된다.
예 A25는 예들 A21 내지 A24 및/또는 본 명세서에서의 일부 다른 예들의 컴퓨팅 시스템을 포함하고, 여기서, 복수의 하드웨어 가속기는 하나 이상의 디지털 신호 프로세서(DSP), 프로그래밍가능 로직 디바이스(PLD), 필드-프로그래밍가능 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 및/또는 프로그래밍가능 시스템-온-칩(SoC)을 포함한다.
예 B01은 비디오 프레임 보간을 위한 특징 피라미드 워핑을 수행하기 위해 프레임 보간 신경망(FINN)을 포함하고, FINN은 비디오 프레임 보간을 위하여 광학 흐름을 통해 적어도 2개의 입력 프레임에 대한 모션 추정을 명시적으로 수행하기 위해 광학 흐름 추정(OFE) 수단; 적어도 2개의 입력 프레임의 하나 이상의 특징 피라미드를 추출하기 위한 특징 피라미드 추출(FPE) 수단; OFE 수단에 의해 출력된 추정된 광학 흐름에 따라 하나 이상의 특징 피라미드를 적어도 2개의 입력 프레임과 함께 타겟 시간적 위치로 사전-워핑하기 위한 순방향 워핑(FW) 수단; 및 사전-워핑된 입력 프레임들 및 특징 피라미드들에 기초하여 보간 결과들을 생성하기 위한 프레임 합성 신경망(FSN) 수단을 포함한다.
예 B02는 예 B01 및/또는 본 명세서에서의 일부 다른 예들의 FINN을 포함하고, 여기서, 모션 추정을 명시적으로 수행하기 위하여, OFE 수단은 적어도 2개의 입력 프레임 사이의 대응성들을 결정하기 위한 것이다.
예 B03은 예 B01 및 B02 및/또는 본 명세서에서의 일부 다른 예들의 FINN을 포함하고, 여기서, FPE 수단은 하나 이상의 특징 피라미드의 시각화를 생성하기 위하여 특징 공간에 대한 주성분 분석을 수행하기 위한 것이다.
예 B04는 예들 B01 내지 B03 및/또는 본 명세서에서의 일부 다른 예들의 FINN을 포함하고, 여기서, FPE 수단은 적어도 2개의 입력 프레임의 각각의 입력 프레임에 기초하여, 하나 이상의 특징 피라미드의 각각으로서, 복수의 피라미드 레벨을 생성하기 위한 것이다.
예 B05는 예 B04 및/또는 본 명세서에서의 일부 다른 예들의 FINN을 포함하고, 여기서, 복수의 피라미드 레벨을 생성하기 위하여, FPE 수단은 복수의 스트라이드된 컨볼루션을 이용하여 다운샘플링을 수행하기 위한 것이고, 여기서, 복수의 스트라이드된 컨볼루션의 개별적인 스트라이드된 컨볼루션은 복수의 피라미드 레벨의 개별적인 피라미드 레벨들에 대응한다.
예 B06은 예 B05 및/또는 본 명세서에서의 일부 다른 예들의 FINN을 포함하고, 여기서, 복수의 피라미드 레벨을 생성하기 위하여, FPE 수단은 복수의 스트라이드된 컨볼루션의 개개의 스트라이드된 컨볼루션에 대한 활성화 함수들로서, 파라메트릭 정류된 선형 유닛(PReLU)들을 이용하기 위한 것이다.
예 B07은 예들 B01 내지 B06 및/또는 본 명세서에서의 일부 다른 예들의 FINN을 포함하고, 여기서, 하나 이상의 특징 피라미드를 적어도 2개의 입력 프레임과 함께 사전-워핑하기 위하여, FWE 수단은 타겟 시간적 위치 (t)에 의해 스케일링된 순방향 흐름에 따라 적어도 2개의 입력 프레임의 제1 프레임의 특징 피라미드를 사전-워핑하고; 1 - t에 의해 스케일링된 역방향 흐름에 따라 적어도 2개의 입력 프레임의 제2 프레임의 특징 피라미드를 사전-워핑하기 위한 것이다.
예 B08은 예 B07 및/또는 본 명세서에서의 일부 다른 예들의 FINN을 포함하고, 여기서, FW 수단은 추정된 광학 흐름에 따라 하나 이상의 특징 피라미드를 적어도 2개의 입력 프레임과 함께 타겟 시간적 위치로 워핑하기 위한 것이다.
예 B09는 예 B08 및/또는 본 명세서에서의 일부 다른 예들의 FINN을 포함하고, 여기서, FW 수단은 복수의 피라미드 레벨의 개별적인 피라미드 레벨들을 워핑하기 위하여 광학 흐름을 리사이징하고 리스케일링하기 위한 것이다.
예 B10은 예들 B01 내지 B09 및/또는 본 명세서에서의 일부 다른 예들의 FINN을 포함하고, 여기서, FSN 수단은 워핑된 특징 피라미드들의 각각의 피라미드 레벨을 채널별로 연접하고; 연접된 피라미드 레벨들을, 복수의 열 및/또는 본 명세서에서의 일부 다른 예들을 포함하는 그리드 네트워크로 입력하기 위한 것이고, 여기서, 복수의 열의 하나 이상의 열은 다운샘플링을 수행하고, 복수의 열의 하나 이상의 다른 열은 업샘플링을 수행한다.
예 D01은 복수의 프로세싱 코어를 포함하는 집적 회로(IC)를 포함하고, 여기서, 복수의 프로세싱 코어의 적어도 하나의 프로세싱 코어는 신경 프로세싱 유닛(NPU)을 포함하고, 여기서, NPU는 비디오 프레임 보간을 위한 특징 피라미드 워핑을 수행하기 위하여 프레임 보간 신경망(FINN)을 동작시키도록 배치된다.
예 D02는 예 D01 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, FINN은 광학 흐름 추정기(OFE), 특징 피라미드 추출기(FPE), 순방향 워핑 엔진(FWE), 및 프레임 합성 신경망(FSN)을 포함하고, NPU는 OFE, FPE, FWE, 및 FSN 중 하나 이상의 프로그램 코드를 동작시키도록 배치된다. 예 D03은 예 D02 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, OFE는 비디오 프레임 보간을 위하여 광학 흐름을 통해 모션 추정을 명시적으로 수행하도록 배치된다. 예 D04는 예 D03 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, 모션 추정을 명시적으로 수행하기 위하여, OFE는 2개의 입력 프레임 사이의 대응성들을 결정하도록 배치된다. 예 D05는 예들 D02 내지 D04 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, OFE는 컨볼루션 신경망 2.0(FlowNet2) 및/또는 피라미드, 워핑, 및 비용 볼륨 신경망(PWC-Net)을 갖는 광학 흐름이다. 예 D06은 예들 D02 내지 D05 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, FPE는 적어도 2개의 입력 프레임의 하나 이상의 특징 피라미드를 추출하도록 배치된다. 예 D07은 예 D06 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, FPE는 하나 이상의 특징 피라미드의 시각화를 생성하기 위하여 특징 공간에 대한 주성분 분석을 수행하도록 배치된다. 예 D08은 예들 D06 및 D07 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, FPE는 적어도 2개의 입력 프레임의 각각의 입력 프레임에 기초하여, 하나 이상의 특징 피라미드의 각각으로서, 복수의 피라미드 레벨을 생성하도록 배치된다. 예 D09는 예 D08 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, 복수의 피라미드 레벨을 생성하기 위하여, FPE는 복수의 스트라이드된 컨볼루션을 이용하여 다운샘플링을 수행하도록 배치되고, 여기서, 복수의 스트라이드된 컨볼루션의 개별적인 스트라이드된 컨볼루션은 복수의 피라미드 레벨의 개별적인 피라미드 레벨들에 대응한다. 예 D10은 예들 D08 및 D09 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, 복수의 피라미드 레벨을 생성하기 위하여, FPE는 복수의 스트라이드된 컨볼루션의 개개의 스트라이드된 컨볼루션에 대한 활성화 함수들로서, 파라메트릭 정류된 선형 유닛(PReLU)들을 이용하도록 배치된다. 예 D11은 예들 D06 내지 D10 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, FWE는 OFE에 의해 출력된 추정된 광학 흐름에 따라 하나 이상의 특징 피라미드를 적어도 2개의 입력 프레임과 함께 타겟 시간적 위치로 사전-워핑하도록 배치된다.
예 D12는 예 D11 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, 하나 이상의 특징 피라미드를 적어도 2개의 입력 프레임과 함께 사전-워핑하기 위하여, FWE는 타겟 시간적 위치 (t)에 의해 스케일링된 순방향 흐름에 따라 적어도 2개의 입력 프레임의 제1 프레임의 특징 피라미드를 사전-워핑하고, 1 - t에 의해 스케일링된 역방향 흐름에 따라 적어도 2개의 입력 프레임의 제2 프레임의 특징 피라미드를 사전-워핑한다.
예 D13은 예들 D11 및 D12 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, FWE는 추정된 광학 흐름에 따라 하나 이상의 특징 피라미드를 적어도 2개의 입력 프레임과 함께 타겟 시간적 위치로 워핑하도록 배치된다. 예 D14는 예 D13 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, FWE는 복수의 피라미드 레벨의 개별적인 피라미드 레벨들을 워핑하기 위하여 광학 흐름을 리사이징하고 리스케일링하도록 배치된다. 예 D15는 예들 D12 내지 D14 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, FSN은 사전-워핑된 입력 프레임들 및 특징 피라미드들에 기초하여 보간 결과들을 생성하도록 배치된다. 예 D16은 예 D15 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, FSN은 워핑된 특징 피라미드들의 각각의 피라미드 레벨을 채널별로 연접하고; 연접된 피라미드 레벨들을, 복수의 열을 포함하는 그리드 네트워크로 입력하도록 배치되고, 여기서, 복수의 열의 하나 이상의 열은 다운샘플링을 수행하고, 복수의 열의 하나 이상의 다른 열은 업샘플링을 수행한다. 예 D17은 예들 D01 내지 D16 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, 적어도 하나의 NPU를 포함하지 않는 복수의 프로세싱 코어의 하나 이상의 다른 프로세싱 코어는 적어도 하나의 NPU에 의해 동작되지 않는 OFE, FPE, FWE, 및 FSN 중 하나 이상의 프로그램 코드를 동작시키도록 배치된다.
예 D18은 예들 D01 내지 D17 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, 적어도 하나의 NPU, 및 복수의 프로세싱 코어의 다른 프로세싱 코어들은 병렬로 동작하거나 순차적인 순서로 동작하도록 배치된다.
예 D19는 예들 D01 내지 D18 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, 훈련 데이터 또는 훈련 데이터세트들은 적어도 하나의 NPU의 동작들을 최적화하도록 사용된다.
예 D20은 예들 D01 내지 D019 및/또는 본 명세서에서의 일부 다른 예들의 IC를 포함하고, 여기서, IC는 FINN의 프로그램 코드를 저장하도록 배치된 메모리 회로부를 더 포함하는 시스템-온-칩(SoC)이다.
예 E01은 비디오 프레임 보간을 위한 특징 피라미드 워핑을 수행하기 위하여 프레임 보간 신경망(FINN)을 동작시키도록 구성된 반도체 디바이스를 포함한다.
예 E02는 예 E01 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, FINN은 광학 흐름 추정기(OFE), 특징 피라미드 추출기(FPE), 순방향 워핑 엔진(FWE), 및 프레임 합성 신경망(FSN)을 포함한다.
예 E03은 예 E02 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 반도체 디바이스는 비디오 프레임 보간을 위하여 광학 흐름을 통해 모션 추정을 명시적으로 수행하기 위하여 OFE를 동작시키도록 구성된다.
예 E04는 예 E03 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 모션 추정을 명시적으로 수행하기 위하여, 반도체 디바이스는 2개의 입력 프레임 사이의 대응성들을 결정하기 위하여 OFE를 동작시키도록 구성된다.
예 E05는 예들 E02 내지 E04 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, OFE는 컨볼루션 신경망 2.0(FlowNet2) 및/또는 피라미드, 워핑, 및 비용 볼륨 신경망(PWC-Net)을 갖는 광학 흐름이다.
예 E06은 예들 E02 내지 E05 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 반도체 디바이스는 적어도 2개의 입력 프레임의 하나 이상의 특징 피라미드를 추출하기 위하여 FPE를 동작시키도록 구성된다.
예 E07은 예 E06 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 반도체 디바이스는 하나 이상의 특징 피라미드의 시각화를 생성하기 위하여 특징 공간에 대한 주성분 분석을 수행하도록 FPE를 동작시키도록 구성된다.
예 E08은 예들 E06 및 E07 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 반도체 디바이스는 적어도 2개의 입력 프레임의 각각의 입력 프레임에 기초하여, 하나 이상의 특징 피라미드의 각각으로서, 복수의 피라미드 레벨을 생성하기 위하여 FPE를 동작시키도록 구성된다.
예 E09는 예 E08 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 복수의 피라미드 레벨을 생성하기 위하여, 반도체 디바이스는 복수의 스트라이드된 컨볼루션 및/또는 본 명세서에서의 일부 다른 예들을 이용하여 다운샘플링을 수행하기 위하여 FPE를 동작시키도록 구성되고, 여기서, 복수의 스트라이드된 컨볼루션의 개별적인 스트라이드된 컨볼루션은 복수의 피라미드 레벨의 개별적인 피라미드 레벨들에 대응한다.
예 E10은 예들 E08 및 E09 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 복수의 피라미드 레벨을 생성하기 위하여, 반도체 디바이스는 복수의 스트라이드된 컨볼루션의 개개의 스트라이드된 컨볼루션에 대한 활성화 함수들로서, 파라메트릭 정류된 선형 유닛(PReLU)들을 이용하기 위하여 FPE를 동작시키도록 구성된다.
예 E11은 예들 E06 내지 E10 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 반도체 디바이스는 OFE에 의해 출력된 추정된 광학 흐름에 따라 하나 이상의 특징 피라미드를 적어도 2개의 입력 프레임과 함께 타겟 시간적 위치로 사전-워핑하기 위하여 FWE를 동작시키도록 구성된다.
예 E12는 예 E11 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 하나 이상의 특징 피라미드를 적어도 2개의 입력 프레임과 함께 사전-워핑하기 위하여, 반도체 디바이스는 타겟 시간적 위치 (t)에 의해 스케일링된 순방향 흐름에 따라 적어도 2개의 입력 프레임의 제1 프레임의 특징 피라미드를 사전-워핑하고, 1 - t에 의해 스케일링된 역방향 흐름에 따라 적어도 2개의 입력 프레임의 제2 프레임의 특징 피라미드를 사전-워핑하기 위하여, FWE를 동작시키도록 구성된다.
예 E13은 예들 E11 및 E12 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 반도체 디바이스는 추정된 광학 흐름에 따라 하나 이상의 특징 피라미드를 적어도 2개의 입력 프레임과 함께 타겟 시간적 위치로 워핑하기 위하여 FWE를 동작시키도록 구성된다.
예 E14는 예 E13 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 반도체 디바이스는 복수의 피라미드 레벨의 개별적인 피라미드 레벨들을 워핑하기 위하여 광학 흐름을 리사이징하고 리스케일링하도록 FWE를 동직시키도록 구성된다.
예 E15는 예들 E12 내지 E14 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 반도체 디바이스는 사전-워핑된 입력 프레임들 및 특징 피라미드들에 기초하여 보간 결과들을 생성하기 위하여 FSN을 동작시키도록 구성된다.
예 E16은 예 E15 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 반도체 디바이스는, 워핑된 특징 피라미드들의 각각의 피라미드 레벨을 채널별로 연접하고; 연접된 피라미드 레벨들을, 복수의 열을 포함하는 그리드 네트워크로 입력하기 위하여, FSN을 동작시키도록 구성되고, 여기서, 복수의 열의 하나 이상의 열은 다운샘플링을 수행하고, 복수의 열의 하나 이상의 다른 열은 업샘플링을 수행한다.
예 E17은 예들 E01 내지 E16 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 훈련 데이터 또는 훈련 데이터세트들은 반도체 디바이스의 동작들을 최적화하도록 사용된다.
예 E18은 예들 E01 내지 E17 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 반도체 디바이스는 하나 이상의 하드웨어 가속기를 포함한다.
예 E19는 예 E18 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 하나 이상의 하드웨어 가속기는 하나 이상의 디지털 신호 프로세서(DSP), 프로그래밍가능 로직 디바이스(PLD), 필드-프로그래밍가능 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 및/또는 프로그래밍가능 시스템-온-칩(SoC)을 포함한다.
예 E20은 예들 E01 내지 E17 및/또는 본 명세서에서의 일부 다른 예들의 반도체 디바이스를 포함하고, 여기서, 반도체 디바이스는 하나 이상의 맞춤형-설계된 인공 지능 실리콘 프로세서 코어를 포함한다.
예 F01은 프레임 보간 신경망(FINN)을 동작시키도록 구성된 집적 회로(IC) 패키지를 포함하고, IC는: 비디오의 제1 입력 프레임 및 제2 입력 프레임으로부터 순방향 광학 흐름 및 역방향 광학 흐름을 추정하도록 구성된 광학 흐름 추정(OFE) 회로부 - 순방향 광학 흐름은 제1 입력 프레임으로부터 시작하여 제2 입력 프레임에서 종료되는 시간 기간 동안에 제2 입력 프레임을 생성하기 위하여 제1 입력 프레임에서의 픽셀들이 어떻게 변경되어야 하는지를 표시하고, 역방향 광학 흐름은 제1 입력 프레임으로부터 시작하여 제2 입력 프레임에서 종료되는 시간 기간 동안에 제1 입력 프레임을 생성하기 위하여 제2 입력 프레임에서의 픽셀들이 어떻게 변경되어야 하는지를 표시함 -; 제1 입력 프레임으로부터 제1 특징 피라미드를, 그리고 제2 입력 프레임으로부터 제2 특징 피라미드를 추출하도록 구성된 특징 피라미드 추출(FPE) 회로부 - 제1 특징 피라미드는 복수의 해상도의 각각의 해상도에서 제1 입력 프레임으로부터 추출된 특징들의 제1 세트를 포함하고, 제2 특징 피라미드는 복수의 해상도의 각각의 해상도에서 제2 입력 프레임으로부터 추출된 특징들의 제2 세트를 포함함 -; 및 제1 및 제2 특징 피라미드들을 제1 및 제2 입력 프레임들에 각각 적용하여, 순방향 및 역방향 광학 흐름들에 기초하여 제1 및 제2 입력 프레임들 사이의 시간적 위치에서 출력 프레임을 생성하도록 구성된 프레임 합성 신경망(FSN) 회로부를 포함한다.
예 F02는 예 F01 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, FPE 회로부는 동일한 구성을 제1 및 제2 입력 프레임들에 적용하여 제1 및 제2 특징 피라미드들을 각각 추출하도록 추가로 구성된다.
예 F03은 예들 F01 및 F02 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, 특징들의 제1 세트에서의 적어도 일부 특징들 및 특징들의 제2 세트에서의 적어도 일부 특징들은 제1 및 제2 입력 프레임들의 색 공간에 기초한다.
예 F04는 예들 F01 내지 F03 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, 출력 프레임은 제1 입력 프레임으로부터 타겟 시간적 위치로 그리고 타겟 시간적 위치로부터 제2 입력 프레임으로 발생하는 모션을 복제하기 위하여, 각각 제1 및 제2 입력 프레임들로부터 시프트된 제1 및 제2 입력 프레임들의 픽셀들을 포함한다.
예 F05는 예들 F01 내지 F04 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, FPE 회로부는 제1 및 제2 입력 프레임들로부터 추출된 특징들에 기초하여 복수의 해상도의 각각에서 제1 및 제2 입력 프레임들을 생성하도록 추가로 구성된다.
예 F06은 예들 F01 내지 F05 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, 제1 및 제2 특징 피라미드들을 추출하기 위하여, FPE 회로부는: 각각의 해상도에서 제1 및 제2 입력 프레임들로부터 다수의 입력 특징을 판독하고; 제1 및 제2 입력 프레임들의 각각에 대한 다수의 입력 특징으로부터 다수의 출력 특징을 생성하도록 추가로 구성된다.
예 F07은 예 F06 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, FPE 회로부는, 활성화 함수 회로부와 인터리빙되고, 복수의 해상도의 각각의 해상도에서 제1 및 제2 입력 프레임들로부터 특징들의 세트를 추출하기 위하여 각각의 해상도에서 제1 및 제2 입력 프레임들 중 하나 또는 둘 모두를 컨볼루션하도록 구성된 컨볼루션 회로부를 포함한다.
예 F08은 예들 F01 내지 F07 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 순방향 광학 흐름을 이용하여 제1 특징 피라미드를 제2 특징 피라미드를 향해 워핑하고; 역방향 광학 흐름을 이용하여 제2 특징 피라미드를 제1 특징 피라미드를 향해 워핑하도록 구성된 순방향 워핑(FW) 회로부를 더 포함한다.
예 F09는 예 F08 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, 출력 프레임을 생성하기 위하여, FSN 회로부는 워핑된 특징 피라미드들 및 제1 및 제2 입력 프레임들의 워핑된 버전들로부터 보간 결과를 예측하도록 구성된다.
예 F10은 예 F09 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, FPE 회로부는 개개의 입력 프레임들로부터 새로운 특징 피라미드들을 추출하기 위하여 예측된 보간 결과를 이용하도록 추가로 구성되고, 새로운 특징 피라미드들은 제1 및 제2 특징 피라미드들의 특징들과는 상이한 특징들의 세트를 포함한다.
예 F11은 예들 F09 및 F10 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, FSN 회로부는 프로세싱 블록들의 그리드를 포함하고, 여기서, 프로세싱 블록들의 그리드에서의 각각의 행은 해상도의 세트에 있는 해상도에 대응한다.
예 F12는 예 F11 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, 각각의 행에서의 제1 프로세싱 블록은 제1 및 제2 특징 피라미드들에서의 대응하는 해상도에서 워핑된 특징들의 세트를 수신하도록 구성된다.
예 F13은 예들 F01 내지 F12 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, 추출된 제1 및 제2 특징 피라미드들은 제1 및 제2 입력 프레임들의 색 공간에 기초한다.
예 F14는 예들 F01 내지 F13 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, FPE 회로부는 다음 최저 해상도에서 제1 및 제2 입력 프레임들로부터 추출된 특징들에 기초하여, 또는 다음 최고 해상도에서 제1 및 제2 입력 프레임들로부터 추출된 특징들에 기초하여, 복수의 해상도의 각각에서 제1 및 제2 입력 프레임들을 생성하도록 추가로 구성된다.
예 F15는 예들 F01 내지 F14 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, 제1 및 제2 특징 피라미드들을 추출하기 위하여, FPE 회로부는: 각각의 해상도에서 제1 및 제2 입력 프레임들로부터 각각 다수의 입력 특징을 판독하고; 다수의 입력 특징으로부터 다수의 출력 특징을 생성하도록 추가로 구성된다.
예 F16은 예들 F01 내지 F15 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, 제1 및 제2 특징 피라미드들을 추출하기 위하여, FPE 회로부는: 입력 프레임으로부터 그 색과 같은 다수의 입력 특징을 판독하고; 다수의 해상도에서 다수의 입력 특징으로부터 다수의 출력 특징을 생성하도록 추가로 구성된다.
예 F17은 예들 F01 내지 F16 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 IC 패키지를 포함하고, 여기서, OFE 회로부, FPE 회로부, FSN 회로부, 및 FW 회로부는 상호접속 기술을 통해 서로에 결합되고, 시스템-인-패키지(SiP) 또는 멀티-칩 패키지(MCP)의 개개의 다이들; 범용 프로세서의 개개의 실행 유닛들 또는 프로세서 코어들; 또는 개개의 디지털 신호 프로세서(DSP)들, 필드-프로그래밍가능 게이트 어레이(FPGA)들, 주문형 집적 회로(ASIC)들, 프로그래밍가능 로직 디바이스(PLD)들, 시스템-온-칩(SoC)들, 그래픽 프로세싱 유닛(GPU)들, SiP들, MCP들, 또는 DSP들, FPGA들, ASIC들, PLD들, SoC들, GPU들, SiP들, 및 MCP들의 임의의 조합으로서 구현된다.
예 G01은 프레임 보간 신경망(FINN)의 명령들을 포함하는 하나 이상의 컴퓨터-판독가능 매체(CRM)를 포함하고, 하나 이상의 프로세서에 의한 명령들의 실행은, 하나 이상의 프로세서로 하여금: 제1 및 제2 입력 프레임들로부터 순방향 광학 흐름 및 역방향 광학 흐름을 추정하게 하고 - 순방향 광학 흐름은 제1 입력 프레임으로부터 시작하여 제2 입력 프레임에서 종료되는 시간 기간 동안에 제2 입력 프레임을 생성하기 위하여 제1 입력 프레임에서의 픽셀들이 어떻게 변경되어야 하는지를 표시하고, 역방향 광학 흐름은 제1 입력 프레임으로부터 시작하여 제2 입력 프레임에서 종료되는 시간 기간 동안에 제1 입력 프레임을 생성하기 위하여 제2 입력 프레임에서의 픽셀들이 어떻게 변경되어야 하는지를 표시함 -; 제1 입력 프레임으로부터 제1 특징 피라미드를, 그리고 제2 입력 프레임으로부터 제2 특징 피라미드를 추출하게 하고 - 제1 특징 피라미드는 복수의 해상도의 각각의 해상도에서 제1 입력 프레임으로부터 추출된 특징들의 제1 세트를 포함하고, 제2 특징 피라미드는 복수의 해상도의 각각의 해상도에서 제2 입력 프레임으로부터 추출된 특징들의 제2 세트를 포함함 -; 순방향 광학 흐름을 이용하여 제1 특징 피라미드를 제2 특징 피라미드를 향해 워핑하게 하고; 역방향 광학 흐름을 이용하여 제2 특징 피라미드를 제1 특징 피라미드를 향해 워핑하게 하고; 워핑된 제1 및 제2 특징 피라미드들에 기초하여 제1 및 제2 입력 프레임들 사이의 시간적 위치에서 출력 프레임을 생성하게 한다.
예 G02는 예 G01 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 CRM을 포함하고, 여기서, 특징들의 제1 및 제2 세트들은 각각 제1 및 제2 입력 프레임들의 색 공간에 기초한다.
예 G03은 예들 G01 및 G02 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 CRM을 포함하고, 여기서, 명령들의 실행은 추가로, 하나 이상의 프로세서로 하여금: 각각의 해상도에서 제1 및 제2 입력 프레임들로부터 다수의 입력 특징을 판독하게 하고; 각각의 해상도에서 다수의 입력 특징으로부터 다수의 출력 특징을 생성하게 하고, 여기서, 각각의 해상도에서의 출력 특징들은 입력 특징들의 상이한 옥타브(octave)들을 나타내며, 수에 있어서 가변적이다.
예 G04는 예 G03 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 CRM을 포함하고, 여기서, FINN은 복수의 활성화 함수와 인터리빙된 복수의 컨볼루션 함수를 포함하고, 명령들의 실행은 하나 이상의 프로세서로 하여금: 각각의 해상도에서 제1 및 제2 입력 프레임들을 컨볼루션하기 위해 컨볼루션 함수들을 동작하게 하고; 컨볼루션된 제1 및 제2 입력 프레임들로부터 개별적인 특징들을 추출하기 위해 활성화 함수들을 동작하게 한다.
예 G05는 예들 G01 내지 G04 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 CRM을 포함하고, 여기서, 출력 프레임을 생성하기 위하여, 명령들의 실행은 하나 이상의 프로세서로 하여금, 워핑된 특징 피라미드들 및 제1 및 제2 입력 프레임들의 워핑된 버전들로부터 보간 결과를 예측하게 한다.
예 G06은 예들 G01 내지 G05 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 CRM을 포함하고, 여기서, FINN은 프로세싱 블록들의 그리드를 포함하는 프레임 합성 신경망을 포함하고, 여기서, 프로세싱 블록들의 그리드에서의 각각의 행은 복수의 해상도에 있는 해상도에 대응하고, 명령들의 실행은 하나 이상의 프로세서로 하여금: 연접된 특징 피라미드가 각각의 해상도에서 제1 및 제2 입력 프레임들로부터 추출된 특징들을 포함하도록, 워핑된 제1 및 제2 특징 피라미드들을 연접하게 하고; 각각의 해상도에서 제1 및 제2 입력 프레임들로부터 추출된 특징들을 각각의 행의 개개의 입력 프로세싱 블록들로 입력하게 한다.
예 H01은 메모리 회로부와 결합된 프로세서 회로부를 포함하는 컴퓨팅 시스템을 포함하고, 메모리 회로부는 프레임 보간 신경망(FINN)의 프로그램 코드를 저장하도록 배치되고, FINN은 광학 흐름 추정기(OFE), 특징 피라미드 추출기(FPE), 순방향 워핑 엔진(FWE), 및 프레임 합성 신경망(FSN)을 포함하고, 프로세서 회로부는 보간될 비디오의 제1 및 제2 입력 프레임들로부터 순방향 광학 흐름 및 역방향 광학 흐름을 추정하기 위하여 OFE를 동작시키도록 배치되고, 순방향 광학 흐름은 제1 입력 프레임으로부터 시작하여 제2 입력 프레임에서 종료되는 시간 기간 동안에 제2 입력 프레임을 생성하기 위하여 제1 입력 프레임에서의 픽셀들이 어떻게 변경되어야 하는지를 표시하고, 역방향 광학 흐름은 제1 입력 프레임으로부터 시작하여 제2 입력 프레임에서 종료되는 시간 기간 동안에 제1 입력 프레임을 생성하기 위하여 제2 입력 프레임에서의 픽셀들이 어떻게 변경되어야 하는지를 표시하고; 프로세서 회로부는 제1 입력 프레임으로부터 제1 특징 피라미드를, 그리고 제2 입력 프레임으로부터 제2 특징 피라미드를 추출하기 위하여 FPE를 동작시키도록 배치되고, 제1 특징 피라미드는 복수의 해상도의 각각의 해상도에서 제1 입력 프레임으로부터 추출된 특징들의 제1 세트를 포함하고, 제2 특징 피라미드는 복수의 해상도의 각각의 해상도에서 제2 입력 프레임으로부터 추출된 특징들의 제2 세트를 포함하고; 프로세서 회로부는 순방향 광학 흐름을 이용하여 제1 특징 피라미드를 제2 특징 피라미드를 향해 워핑하고 역방향 광학 흐름을 이용하여 제2 특징 피라미드를 제1 특징 피라미드를 향해 워핑하기 위하여 FWE를 동작시키도록 배치되고; 프로세서 회로부는 워핑된 제1 및 제2 특징 피라미드들에 기초하여 제1 및 제2 입력 프레임들 사이의 원하는 시간적 위치에서 출력 프레임을 생성하기 위하여 FSN을 동작시키도록 배치되고, 여기서, 출력 프레임은 제1 입력 프레임으로부터 타겟 시간적 위치로 그리고 타겟 시간적 위치로부터 제2 입력 프레임으로 발생하는 모션을 복제하기 위하여, 각각 제1 및 제2 입력 프레임들로부터 시프트된 제1 및 제2 입력 프레임들의 픽셀들을 포함한다.
예 H02는 예 H01 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 컴퓨팅 시스템을 포함하고, 여기서, 프로세서 회로부는: 각각의 해상도에서 제1 및 제2 입력 프레임들 중 하나 또는 둘 모두로부터 다수의 입력 특징을 판독하고; 각각의 해상도에서 다수의 입력 특징으로부터 다수의 출력 특징을 생성하기 위하여, FPE를 동작시키도록 추가로 배치되고, 여기서, 각각의 해상도에서의 출력 특징들은 입력 특징들의 상이한 옥타브들을 나타내며, 수에 있어서 가변적이다.
예 H03은 예들 H01 및 H02 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 컴퓨팅 시스템을 포함하고, 여기서, FPE는 복수의 활성화 함수와 인터리빙된 복수의 컨볼루션 함수를 포함하고, 프로세서 회로부는: 각각의 해상도에서 제1 및 제2 입력 프레임들을 컨볼루션하기 위해 컨볼루션 함수들을 동작시키고; 컨볼루션된 제1 및 제2 입력 프레임들로부터 개별적인 특징들을 추출하기 위해 활성화 함수들을 동작시키기 위하여, FPE를 동작시키도록 추가로 배치된다.
예 H04는 예들 H01 내지 H03 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 컴퓨팅 시스템을 포함하고, 여기서, 출력 프레임을 생성하기 위하여, 프로세서 회로부는 워핑된 특징 피라미드들 및 제1 및 제2 입력 프레임들의 워핑된 버전들로부터 보간 결과를 예측하기 위하여 FSN을 동작시키도록 추가로 배치된다.
예 H05는 예 H04 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 컴퓨팅 시스템을 포함하고, 여기서, FSN은 프로세싱 블록들의 그리드를 포함하고, 여기서, 프로세싱 블록들의 그리드에서의 각각의 행은 해상도의 세트에 있는 해상도에 대응한다.
예 H06은 예들 H01 내지 H05 및/또는 본 명세서에서의 하나 이상의 다른 예(들)의 컴퓨팅 시스템을 포함하고, 여기서, 컴퓨팅 시스템은 시스템-인-패키지(SiP), 멀티-칩 패키지(MCP), 시스템-온-칩(SoC)들, 디지털 신호 프로세서(DSP)들, 필드-프로그래밍가능 게이트 어레이(FPGA)들, 주문형 집적 회로(ASIC)들, 프로그래밍가능 로직 디바이스(PLD)들, 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU)이거나, 컴퓨팅 시스템은 서로 상호접속된 SiP들, MCP들, SoC들, DSP들, FPGA들, ASIC들, PLD들, CPU들, GPU들 중 2개 이상을 포함한다.
예 X01은 비디오 보간을 수행하기 위한 명령들을 포함하는 하나 이상의 CRM을 포함하고, 여기서, 컴퓨팅 시스템의 하나 이상의 프로세서에 의한 명령들의 실행은 컴퓨팅 시스템으로 하여금: 제1 해상도에서 비디오의 제1 입력 프레임 및 제2 입력 프레임을 획득하게 하고; 제1 입력 프레임으로부터 제2 입력 프레임으로의 순방향 광학 흐름을 추정하게 하고 - 순방향 광학 흐름은 제1 입력 프레임으로부터 시작하여 제2 입력 프레임에서 종료되는 시간 기간 동안에 제2 입력 프레임을 생성하기 위하여 제1 입력 프레임에서의 픽셀들이 어떻게 변경되는지를 표시함 -; 제2 입력 프레임으로부터 제1 입력 프레임으로의 역방향 광학 흐름을 추정하게 하고 - 역방향 광학 흐름은 제1 입력 프레임으로부터 시작하여 제2 입력 프레임에서 종료되는 시간 기간 동안에 제1 입력 프레임을 생성하기 위하여 제2 입력 프레임에서의 픽셀들이 어떻게 변경되는지를 표시함 -; 순방향 광학 흐름을 이용하여 제1 입력 프레임을 제2 입력 프레임을 향해 워핑하게 하고; 역방향 광학 흐름을 이용하여 제2 입력 프레임을 제1 입력 프레임을 향해 워핑하게 하고; 제1 해상도와는 상이한 다수의 해상도에서 제1 및 제2 입력 프레임들로부터 특징들의 세트를 추출하게 한다. 예 X01은 선행 예들 중 임의의 하나 이상, 및/또는 본 명세서에서의 다른 실시예들과 조합될 수 있다.
예 Z01은 예들 A01 내지 X01 중 임의의 것에서 설명되거나 이와 관련된 방법, 또는 본 명세서에서 설명된 임의의 다른 방법 또는 프로세스의 하나 이상의 요소를 수행하기 위한 수단을 포함하는 장치를 포함할 수 있다. 예 Z02는 전자 디바이스로 하여금, 전자 디바이스의 하나 이상의 프로세서에 의한 명령들의 실행 시에, 예들 A01 내지 X01 중 임의의 것에서 설명되거나 이와 관련된 방법, 또는 본 명세서에서 설명된 임의의 다른 방법 또는 프로세스의 하나 이상의 요소를 수행하게 하기 위한 명령들을 포함하는 하나 이상의 비-일시적 컴퓨터-판독가능 매체를 포함할 수 있다. 예 Z03은 예들 A01 내지 X01 중 임의의 것에서 설명되거나 이와 관련된 방법, 또는 본 명세서에서 설명된 임의의 다른 방법 또는 프로세스의 하나 이상의 요소를 수행하기 위해 로직, 모듈들, 또는 회로부를 포함하는 장치를 포함할 수 있다. 예 Z04는 예들 A01 내지 X01 중 임의의 것, 또는 그 부분들 또는 일부들에서 설명되거나 이와 관련된 방법, 기법, 또는 프로세스를 포함할 수 있다. 예 Z05는 하나 이상의 프로세서 및 명령을 포함하는 하나 이상의 컴퓨터-판독가능 매체를 포함하는 장치를 포함할 수 있고, 명령들은, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 예들 A01 내지 X01 중 임의의 것 또는 그 부분들에서 설명되거나 이와 관련된 방법, 기법들, 또는 프로세스를 수행하게 한다. 예 Z06은 예들 A01 내지 X01 중 임의의 것, 또는 그 부분들 또는 일부들에서 설명되거나 이와 관련된 신호를 포함할 수 있다. 예 Z07은 예들 A01 내지 X01 중 임의의 것, 또는 그 부분들 또는 일부들에서 설명되거나 이와 관련된, 또는 이와 다르게 본 개시에서 설명된 데이터그램, 패킷, 프레임, 세그먼트, 프로토콜 데이터 유닛(PDU), 또는 메시지를 포함할 수 있다. 예 Z08은 예들 A01 내지 X01 중 임의의 것, 또는 그 부분들 또는 일부들에서 설명되거나 이와 관련된, 또는 이와 다르게 본 개시에서 설명된 데이터로 인코딩된 신호를 포함할 수 있다. 예 Z09는 예들 A01 내지 X01 중 임의의 것, 또는 그 부분들 또는 일부들에서 설명되거나 이와 관련된, 또는 이와 다르게 본 개시에서 설명된 데이터그램, 패킷, 프레임, 세그먼트, 프로토콜 데이터 유닛(PDU), 또는 메시지로 인코딩된 신호를 포함할 수 있다. 예 Z10은 컴퓨터-판독가능 명령들을 반송하는 전자기 신호를 포함할 수 있고, 여기서, 하나 이상의 프로세서에 의한 컴퓨터-판독가능 명령들의 실행은 하나 이상의 프로세서로 하여금, 예들 A01 내지 X01 중 임의의 것 또는 그 부분들에서 설명되거나 이와 관련된 방법, 기법들, 또는 프로세스를 수행하게 한다. 예 Z11은 명령들을 포함하는 컴퓨터 프로그램을 포함할 수 있고, 여기서, 프로세싱 요소에 의한 프로그램의 실행은 프로세싱 요소로 하여금, 예들 A01 내지 X01 중 임의의 것 또는 그 부분들에서 설명되거나 이와 관련된 방법, 기법들, 또는 프로세스를 수행하게 한다. 예 Z12는 본 명세서에서 도시되고 설명된 바와 같은 무선 네트워크에서의 신호를 포함할 수 있다. 예 Z13은 본 명세서에서 도시되고 설명된 바와 같은 무선 네트워크에서 통신하는 방법을 포함할 수 있다. 예 Z14는 본 명세서에서 도시되고 설명된 바와 같은 무선 통신을 제공하기 위한 시스템을 포함할 수 있다. 예 Z15는 본 명세서에서 도시되고 설명된 바와 같은 무선 통신을 제공하기 위한 디바이스를 포함할 수 있다.
이전의 상세한 설명에서, 본 명세서의 일부를 형성하는 첨부한 도면을 참조하며, 본 명세서에서 유사한 부호들은 전반적으로 유사한 부분을 지정하고 실시될 수 있는 예시적인 실시예들에 의해 도시된다. 본 개시의 범위를 벗어나지 않고 다른 실시예들이 활용될 수 있고 구조적 또는 논리적 변경들이 이루어질 수 있음을 이해해야 한다. 그러므로, 상세한 설명은 제한하는 관점으로 취해지지 않으며, 실시예들의 범위는 첨부한 청구항들 및 그들의 등가물들에 의해 정의된다.
다양한 동작들이 청구된 주제를 이해하는 데 가장 도움이 되는 방식으로 다중의 개별 액션들 또는 동작들로 차례로 설명될 수 있다. 그러나, 설명의 순서는 이들 동작들이 반드시 순서 종속적이라는 의미로 해석되지 않아야 한다. 특히, 이들 동작들은 제시의 순서로 수행되지 않을 수 있다. 설명된 동작들은 설명된 실시예와는 상이한 순서로 수행될 수 있다. 다양한 추가의 동작들이 수행될 수 있고, 및/또는 설명된 동작들이 추가의 실시예들에서 생략될 수 있다.
본 개시의 목적을 위해, 문구 "A 및/또는 B"는 (A), (B), 또는 (A 및 B)를 의미한다. 본 개시의 목적을 위해, 문구 "A, B, 및/또는 C"는 "(A), (B), (C), (A 및 B), (A 및 C), (B 및 C) 또는 (A, B 및 C)"를 의미한다. 본 개시가 "하나"또는 "제1" 요소 또는 그 등가물을 인용하는 경우, 그러한 개시는 하나 이상의 이러한 요소를 포함하며, 2개 이상의 그러한 요소를 요구하거나 배제하지 않는다. 또한, 식별된 요소들에 대한 서수 표시기들(예들 들어, 제1, 제2, 또는 제3)은 요소들 사이를 구별하기 위해 사용되며, 달리 구체적으로 언급되지 않는 한 그러한 요소들의 필수 또는 제한된 수를 나타내거나 암시하지 않으며, 그러한 요소들의 특정 위치 또는 순서를 나타내지 않는다.
설명은 "실시예에서" 또는 "실시예들에서"라는 문구를 사용할 수 있으며, 이는 동일하거나 상이한 실시예들 중 하나 이상을 각각 나타낼 수 있다. 더욱이, 용어, 본 개시의 실시예들에 관하여 이용된 바와 같이, 용어들 "구비하는", "포함하는", "가지는" 등은 동의어이다. 본 개시이 "하나"또는 "제1" 요소 또는 그 등가물을 인용하는 경우, 그러한 개시는 하나 이상의 이러한 요소를 포함하며, 2개 이상의 그러한 요소를 요구하거나 배제하지 않는다. 또한, 식별된 요소들에 대한 서수 표시기들(예들 들어, 제1, 제2, 또는 제3)은 요소들 사이를 구별하기 위해 사용되며, 달리 구체적으로 언급되지 않는 한 그러한 요소들의 필수 또는 제한된 수를 나타내거나 암시하지 않으며, 그러한 요소들의 특정 위치 또는 순서를 나타내지 않는다.
용어들 "결합된", "통신적으로 결합된"이 그 파생어들과 함께 본 명세서에서 이용된다. 용어 "결합된"은 2개 이상의 요소가 직접 물리적 또는 전기적으로 서로 접촉하고 있다는 것을 의미할 수 있고, 2개 이상의 요소가 서로 간접적으로 접촉하지만 여전히 서로 협력하거나 상호작용한다는 것을 의미할 수 있고, 및/또는 하나 이상의 다른 요소가 서로 결합되는 것으로 지칭된 요소들 사이에서 결합되거나 연결된다는 것을 의미할 수 있다. 용어 "직접적으로 결합된"은 2개 이상의 요소가 서로 직접 접촉한다는 것을 의미할 수 있다. 용어 "통신 가능하게 결합된"은 2개 이상의 요소가 배선 또는 다른 상호접속 연결, 무선 통신 채널 등을 통한 통신 수단에 의해 사로 접촉할 수 있다는 것을 의미할 수 있다.
본 명세서에서 이용된 바와 같이, 용어 "회로"는 전자 디바이스에서 특정 기능을 수행하도록 구성된 다중 회로들의 회로 또는 시스템을 지칭한다. 회로들의 회로 또는 시스템은 설명한 기능을 제공하도록 구성되는 논리 회로, 프로세서(공유, 전용, 또는 그룹) 및/또는 메모리(공유, 전용, 또는 그룹)과 같은 하나 이상의 하드웨어 컴포넌트의 일부일 수 있거나, 이들을 포함할 수 있다. 또한, 용어 "회로"는 프로그램 코드의 기능을 수행하기 위해 이용된, 프로그램 코드와 하나 이상의 하드웨어 요소의 조합을 또한 지칭할 수 있다. 일부 유형들의 회로부는 설명된 기능성의 적어도 일부를 제공하기 위하여 하나 이상의 소프트웨어 또는 펌웨어 프로그램를 실행할 수 있다. 하드웨어 요소들 및 프로그램 코드의 이러한 조합은 특정한 유형의 회로부로서 지칭될 수 있다. 본 명세서에서 이용된 바와 같이, 용어 "모듈"은 컴퓨터 시스템 내의 기본 기능을 제공하도록 구성된 회로 보드, SoC, 시스템-인-패키지(SiP) 등 상에 패키징된 하나 이상의 독립 전자 회로를 지칭할 수 있다. 용어 "모듈"은 하나 이상의 소프트웨어 또는 펌웨어 프로그램을 실행하는 FPD, ASIC, 프로세서(공유, 전용, 또는 그룹) 및/또는 메모리(공유, 전용, 또는 그룹), 조합 논리 회로, 및/또는 설명한 기능을 제공하는 다른 적합한 컴포넌트들 중 일부를 지칭할 수 있거나, 이들을 포함할 수 있다.
본 명세서에서 이용된 바와 같이, 용어들 "인스턴스화하다", "인스턴스화" 등은 인스턴스의 생성을 지칭할 수 있고, "인스턴스"는 예를 들어, 프로그램 코드의 실행 동안에 발생할 수 있는 객체의 구체적인 발생을 지칭할 수 있다. 본 명세서에서 이용된 바와 같이, "데이터베이스 객체", "데이터 구조" 등은 객체, 속성-값 쌍(attribute-value pair)(AVP), 키-값 쌍(key-value pair)(KVP), 튜플 등의 형태인 정보의 임의의 표현을 지칭할 수 있고, 변수들, 데이터 구조들, 함수들, 방법들, 클래스들, 데이터베이스 레코드들, 데이터베이스 필드들, 데이터베이스 엔티티들, 데이터와 데이터베이스 엔티티들 사이의 연관성들(또한, "관련성"으로서 지칭됨) 등을 포함할 수 있다. 본 명세서에서 이용된 바와 같이, 용어 "자원"은 컴퓨터 디바이스들, 기계적 디바이스들, 메모리 공간, 프로세서/CPU 시간, 프로세서/CPU 사용량, 프로세서 및 가속기 부하들, 하드웨어 시간 또는 사용량, 전기적 전력, 입력/출력 동작들, 포트들 또는 네트워크 소켓들, 채널/링크 할당, 스루풋, 메모리 사용량, 스토리지, 네트워크, 데이터베이스 및 애플리케이션, 작업부하 유닛들, 웹페이지들, 웹 애플리케이션, 및/또는 등과 같은, 물리적 또는 가상적 디바이스, 컴퓨팅 환경 내의 물리적 또는 가상적 컴포넌트, 및/또는 특정한 디바이스 내의 물리적 또는 가상적 컴포넌트를 지칭한다. 용어 "네트워크 자원"은 원격 엔티티에 의해 호스팅되고 네트워크를 통해 액세스 가능한 자원을 지칭할 수 있다. 용어 "문서"는 데이터를 기록하기 위하여 이용된 컴퓨터 파일 또는 자원을 지칭할 수 있고, 워드 프로세싱, 스프레드시트, 슬라이드 프리젠테이션, 멀티미디어 항목들 등과 같은 다양한 파일 유형들 또는 포맷들을 포함한다.
본 명세서에서 이용된 바와 같이, 용어 "디바이스"는 디지털 정보를 그 물리적 엔티티로부터 또는 그 물리적 엔티티로 운반하기 위한 능력을 갖는, 그 근처의 도 다른 물리적 엔티티 내부에 내장되거나 이에 부착된 물리적 엔티티를 지칭할 수 있다. 본 명세서에서 이용된 바와 같이, 용어 "요소"는, 주어진 추상화의 레벨에서 불가분이고 명확하게 정의된 경계를 가지는 유닛을 지칭할 수 있고, 여기서, 요소는 임의의 유형의 엔티티일 수 있다. 본 명세서에서 이용된 바와 같이, 용어 "컨트롤러"는 예컨대, 그 상태를 변경하거나 물리적 엔티티가 이동하게 함으로써 물리적 엔티티에 영향을 주기 위한 능력을 가지는 요소 또는 엔티티를 지칭할 수 있다. 본 명세서에서 이용된 바와 같이, 용어 "엔티티"는 (1) 아키텍처 또는 디바이스의 별개의 컴포넌트, 또는 (2) 페이로드로서 전송된 정보를 지칭할 수 있다.
본 명세서에서 이용된 바와 같이, 용어 "컴퓨터 시스템"은 임의의 유형의 상호접속된 전자 디바이스들, 컴퓨터 디바이스들, 또는 그 컴포넌트들을 지칭한다. 추가적으로, 용어 "컴퓨터 시스템" 및/또는 "시스템"은, 서로 통신 가능하게 결합되거나, 또는 이와 다르게 하나 이상의 기능을 달성하도록 편성되는 컴퓨터의 다양한 컴포넌트들을 지칭할 수 있다. 또한, 용어 "컴퓨터 시스템" 및/또는 "시스템"은, 서로 통신 가능하게 결합되고 컴퓨팅 및/또는 네트워킹 자원들을 공유하도록 구성되는 다수의 컴퓨터 디바이스 및/또는 다수의 컴퓨팅 시스템을 지칭할 수 있다. 추가적으로, 용어들 "컴퓨터 시스템"은 컴퓨터 디바이스, 컴퓨팅 디바이스, 컴퓨팅 플랫폼, 클라이언트 디바이스, 클라이언트, 모바일, 이동 디바이스, 사용자 장비(UE), 단말, 수신기, 서버 등은 동의어인 것으로 고려될 수 있고, 이러한 것들로서 가끔 이하에서 지칭될 수 있고, 산술적 또는 논리적 동작들의 시퀀스를 순차적으로 그리고 자동적으로 수행할 수 있고; 머신 판독가능 매체 상에서 데이터를 기록/저장하도록 구비될 수 있고; 통신 네트워크에서 하나 이상의 다른 디바이스로부터 데이터를 송신하고 수신할 수 있는 임의의 물리적 하드웨어 디바이스를 설명할 수 있다. 용어 "컴퓨터 시스템"은 셀룰러 전화 또는 스마트폰, 태블릿 개인용 컴퓨터, 웨어러블 컴퓨팅 디바이스, 자율 센서, 랩톱 컴퓨터, 데스크톱 개인용 컴퓨터, 비디오 게임 콘솔, 디지털 미디어 플레이어, 핸드헬드 메시징 디바이스, 개인 정보 단말, 전자 책 판독기, 증강 현실 디바이스, 서버 컴퓨터 디바이스(들)(예컨대, 단독형, 랙-장착형, 블레이드 등), 및/또는 임의의 다른 유사한 전자 디바이스와 같은 임의의 유형의 전자 디바이스들을 포함할 수 있다.
본 명세서에서 이용된 바와 같은 용어 "서버"는, 프로세싱 하드웨어 및/또는 프로세스 공간(들), 메모리 디바이스 또는 데이터베이스와 같은 연관된 저장 매체, 및 일부 사례들에서, 당해 분야에서 알려진 바와 같은 적합한 애플리케이션(들)을 포함하는 컴퓨팅 디바이스 또는 시스템을 지칭한다. 용어들 "서버 시스템" 및 "서버"는 본 명세서에서 상호 교환 가능하게 이용될 수 있고, 이것은 물리적 및/또는 가상적 자원들의 풀에 대한 액세스를 제공한다. 본 명세서에서 논의된 다양한 서버들은 랙 컴퓨팅 아키텍처 컴포넌트(들), 타워 컴퓨팅 아키텍처 컴포넌트(들), 블레이드 컴퓨팅 아키텍처 컴포넌트(들), 및/또는 등을 갖는 컴퓨터 디바이스들을 포함한다. 서버들은 하나 이상의 데이터센터에 위치될 수 있는, 서버들의 클러스터, 서버 팜, 클라우드 컴퓨팅 서비스, 또는 서버들의 다른 그룹 또는 풀을 표현할 수 있다. 서버들은 도한, 하나 이상의 데이터 저장 디바이스(도시되지 않음)에 접속될 수 있거나, 또는 이와 다르게 이와 연관될 수 있다. 또한, 서버들은 개별적인 서버 컴퓨터 디바이스들의 일반적인 관리 및 동작을 위한 실행 가능한 프로그램 명령들을 제공하는 오퍼레이팅 시스템(OS)을 포함할 수 있고, 서버들의 프로세서에 의해 실행될 때, 서버들이 그 의도된 기능들을 수행하는 것을 허용할 수 있는 명령들을 저장하는 컴퓨터-판독가능 매체를 포함할 수 있다. 서버들의 OS 및 일반적인 기능성에 대한 적합한 구현예들은 알려져 있거나 상업적으로 입수가능하고, 당해 분야에서의 당업자들에 의해 용이하게 구현된다.
어떤 실시예들은 설명의 목적들을 위하여 본 명세서에서 예시되었고 설명되었지만, 동일한 목적들을 달성하기 위하여 계산된 광범위한 대안적인 및/또는 동등한 실시예들 또는 구현예들은 본 개시의 범위로부터 이탈하지 않으면서, 도시되고 설명된 실시예들에 대해 대체될 수도 있다. 본원은 본 명세서에서 논의된 실시예들의 임의의 개조들 또는 변형들을 포괄하도록 의도된다. 그러므로, 본 명세서에서 설명된 실시예들은 청구항들에 의해서만 제한된다는 점이 명백히 의도된다.
VI. 참조문헌들
[R01] C. Bailer, B. Taetz, 및 D. Stricker. Flow Fields: Dense correspondence fields for highly accurate large displacement optical flow estimation. In IEEE International Conference on Computer Vision, pages 4015-4023, 2015. 1.
[R02] S. Bake222r, D. Scharstein, J. P. Lewis, S. Roth, M. J. Black, 및 R. Szeliski. A database and evaluation methodology for optical flow. International Journal of Computer Vision, 92(1):1-31, 2011. 2, 3, 4, 5, 6.
[R03] P. Bojanowski, A. Joulin, D. Lopez-Paz, 및 A. Szlam. Optimizing the latent space of generative networks. arXiv/1707.05776, 2017. 4.
[R04] T. Brox, C. Bregler, 및 J.Malik. Large displacement optical flow. In IEEE Conference on Computer Vision and Pattern Recognition, pages 41-48, 2009. 1.
[R05] T. Brox 및 J. Malik. Large displacement optical flow: Descriptor matching in variational motion estimation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 33(3):500-513, 2011. 1.
[R06] D. J. Butler, J. Wulff, G. B. Stanley, 및 M. J. Black. A naturalistic open source movie for optical flow evaluation. In European Conference on Computer Vision, pages 611-625, 2012. 1, 7.
[R07] A. Dosovitskiy, P. Fischer, E. Ilg, P. , C. Hazirbas, V. Golkov, P. van der Smagt, D. Cremers, 및 T. Brox. FlowNet: Learning optical flow with convolutional networks. In IEEE International Conference on Computer Vision, pages 2758-2766, 2015. 2, 5.
[R08] D. Erhan, Y. Bengio, A. Courville, 및 P. Vincent. Visualizing higher-layer features of a deep network. 2009. 5, 6.
[R09] J. Flynn, I. Neulander, J. Philbin, 및 N. Snavely. Deep-Stereo: Learning to predict new views from the world's imagery. In IEEE Conference on Computer Vision and Pattern Recognition, pages 5515-5524, 2016.
[R10] Fourure 등, Residual Conv-Deconv Grid Network for Semantic Segmentation, arXiv:1707.07958v2 (26 Jul 2017), British Machine Vision Conference (4 Sep 2017).
[R11] I. J. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. C. Courville, 및 Y. Bengio. Generative adversarial nets. In Advances in Neural Information Processing Systems, pages 2672-2680, 2014.
[R12] K. He, X. Zhang, S. Ren, 및 J. Sun. Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification. In IEEE International Conference on Computer Vision, pages 1026-1034, 2015.
[R13] E. Herbst, S. Seitz, 및 S. Baker. Occlusion reasoning for temporal interpolation using optical flow. Technical report, August 2009.
[R14] B. K. P. Horn 및 B. G. Schunck. Determining optical flow. Artificial Intelligence, 17(1-3):185-203, 1981.
[R15] Y. Hu, R. Song, 및 Y. Li. Efficient coarse-to-fine patch match for large displacement optical flow. In IEEE Conference on Computer Vision and Pattern Recognition, pages 5704-5712, 2016. 1.
[R16] T.-W. Hui, X. Tang, 및 C. Change Loy. LiteFlowNet: A lightweight convolutional neural network for optical flow estimation In IEEE Conference on Computer Vision and Pattern Recognition, June 2018.
[R17] E. Ilg, N. Mayer, T. Saikia, M. Keuper, A. Dosovitskiy, 및 T. Brox. Flownet 2.0: Evolution of optical flow estimation with deep networks. In IEEE Conference on Computer Vision and Pattern Recognition, pages 1647-1655, 2017.
[R18] M. Jaderberg, K. Simonyan, A. Zisserman, 및 K. Kavukcuoglu. Spatial transformer networks. In Advances in Neural Information Processing Systems, pages 2017-2025, 2015.
[R19] J. Janai, F. Guney, J.Wulff, M. J. Black, 및 A. Geiger. Slow flow: Exploiting high-speed cameras for accurate and diverse optical flow reference data. In IEEE Conference on Computer Vision and Pattern Recognition, July 2017.
[R20] H. Jiang, D. Sun, V. Jampani, M.-H. Yang, E. Learned-Miller, 및 J. Kautz. Super SloMo: High quality estimation of multiple intermediate frames for video interpolation. In IEEE Conference on Computer Vision and Pattern Recognition, June 2018.
[R21] J. Johnson, A. Alahi, 및 L. Fei-Fei. Perceptual losses for real-time style transfer and super-resolution. In European Conference on Computer Vision, pages 694-711, 2016.
[R22] N. K. Kalantari, T. Wang, 및 R. Ramamoorthi. Learningbased view synthesis for light field cameras. ACM Trans. Graph., 35(6):193:1-193:10.
[R23] M. Kartasev, C. Rapisarda, 및 D. Fay. Implementing adaptive separable convolution for video frame interpolation. arXiv/1809.07759.
[R24] D. P. Kingma 및 J. Ba. Adam: A method for stochastic optimization. arXiv:1412.6980, 2014.
[R25] A. Krizhevsky, I. Sutskever, 및 G. E. Hinton. ImageNet classification with deep convolutional neural networks. In Advances in Neural Information Processing Systems, pages 1106-1114, 2012.
[R26] Y. Kuroki, T. Nishi, S. Kobayashi, H. Oyaizu, 및 S. Yoshimura. A psychophysical study of improvements in motion-image quality by using high frame rates. Journal of the Society for Information Display, 15(1):61-68, 2007.
[R27] Y. Kuroki, H. Takahashi, M. Kusakabe, 및 K.-i. Yamakoshi. Effects of motion image stimuli with normal and high frame rates on eeg power spectra: comparison with continuous motion image stimuli. Journal of the Society for Information Display, 22(4):191-198, 2014.
[R28] W. Lai, J. Huang, O. Wang, E. Shechtman, E. Yumer, 및 M. Yang. Learning blind video temporal consistency. In European Conference on Computer Vision, pages 179-195, 2018.
[R29] Ledig 등, Photo-realistic single image super-resolution using a generative adversarial network, arXiv/1609.04802, version 1 (15 Sep 2016), version 5 (25 May 2017).
[R30] Liu 등, Video Frame Synthesis Using Deep Voxel Flow, IEEE International Conference on Computer Vision (ICCV), pp. 4463-4471 (Oct 2017).
[R31] Meyer 등, Deep video color propagation, British Machine Vision Conference 2018, page 128 (4 Sep 2018).
[R32] Meyer 등, Phasenet for Video Frame Interpolation, IEEE Conference on Computer Vision and Pattern Recognition, (June 2018).
[R33] Meyer 등, Phase-based Frame Interpolation for Video, IEEE Conference on Computer Vision and Pattern Recognition, pages 1410-1418, 2015.
[R34] Niklaus 등, Context-Aware Synthesis for Video Frame Interpolation, IEEE Conference on Computer Vision and Pattern Recognition (June 2018).
[R35] S. Niklaus, L. Mai, 및 F. Liu. Video frame interpolation via adaptive convolution. In IEEE Conference on Computer Vision and Pattern Recognition, July 2017.
[R36] S. Niklaus, L. Mai, 및 F. Liu. Video frame interpolation via adaptive separable convolution. In IEEE International Conference on Computer Vision, Oct 2017.
[R37] A. Odena, V. Dumoulin, 및 C. Olah. Deconvolution and checkerboard artifacts. Distill, 2016. http://distill.pub/2016/deconv-checkerboard.
[R38] L. L. , L. Roholm, A. Bruhn, 및 J. Weickert. Motion compensated frame interpolation with a symmetric optical flow constraint. In Advances in Visual Computing, volume 7431, pages 447-457, 2012.
[R39] A. Ranjan 및 M. J. Black. Optical flow estimation using a spatial pyramid network. In IEEE Conference on Computer Vision and Pattern Recognition, pages 2720-2729, 2017.
[R40] M. S.M. Sajjadi, B. , 및 M. Hirsch. EnhanceNet: Single image super-resolution through automated texture synthesis. arXiv/1612.07919, 2016.
[R41] K. Simonyan 및 A. Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv/1409.1556, 2014.
[R42] K. Soomro, A. R. Zamir, 및 M. Shah. UCF101: A dataset of 101 human actions classes from videos in the wild. arXiv/1212.0402, 2012.
[R43] D. Sun, S. Roth, 및 M. J. Black. A quantitative analysis of current practices in optical flow estimation and the principles behind them. International Journal of Computer Vision, 106(2):115-137, 2014.
[R44] D. Sun, X. Yang, M.-Y. Liu, 및 J. Kautz. PWC-Net: CNNs for optical flow using pyramid, warping, and cost volume. In IEEE Conference on Computer Vision and Pattern Recognition, June 2018.
[R45] Z. Wang, A. C. Bovik, H. R. Sheikh, 및 E. P. Simoncelli. Image quality assessment: from error visibility to structural similarity. IEEE Transactions on Image Processing, 13(4):600-612, 2004.
[R46] P. Weinzaepfel, J. Revaud, Z. Harchaoui, 및 C. Schmid. DeepFlow: Large displacement optical flow with deep matching. In IEEE International Conference on Computer Vision, pages 1385-1392, 2013.
[R47] C. Wu, N. Singhal, 및 P. . Video compression through image interpolation. In European Conference on Computer Vision, pages 425-440, 2018.
[R48] L. Xu, J. Jia, 및 Y. Matsushita. Motion detail preserving optical flow estimation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 34(9):1744-1757, 2012.
[R49] T. Xue, B. Chen, J. Wu, D. Wei, 및 W. T. Freeman. Video enhancement with task-oriented flow. arXiv/1711.09078, 2017.
[R50] R. Zhang, P. Isola, A. A. Efros, E. Shechtman, 및 O. Wang. The unreasonable effectiveness of deep features as a perceptual metric. In IEEE Conference on Computer Vision and Pattern Recognition, June 2018.
[R51] T. Zhou, S. Tulsiani, W. Sun, J.Malik, 및 A. A. Efros. View synthesis by appearance flow. In European Conference on Computer Vision, pages 286-301, 2016.
[R52] J. Zhu, T. Park, P. Isola, 및 A. A. Efros. Unpaired image-to-image translation using cycle-consistent adversarial networks. In IEEE International Conference on Computer Vision, pages 2242-2251, 2017.

Claims (25)

  1. 프레임 보간 신경망(frame interpolation neural network)(FINN)을 동작시키도록 구성된 집적 회로(integrated circuit)(IC) 패키지로서,
    상기 IC는 광학 흐름 추정(optical flow estimation)(OFE) 회로부, 특징 피라미드 추출(feature pyramid extraction)(FPE) 회로부 및 프레임 합성 신경망(frame synthesis neural network)(FSN) 회로부를 포함하여,
    상기 광학 흐름 추정 회로부는,
    비디오의 제1 입력 프레임으로부터 제2 입력 프레임으로의 순방향 광학 흐름을 추정하도록 구성되되, 상기 순방향 광학 흐름은 상기 제1 입력 프레임으로부터 시작하여 상기 제2 입력 프레임에서 종료되는 시간 기간 동안에 상기 제2 입력 프레임을 생성하기 위하여 상기 제1 입력 프레임에서의 픽셀들이 어떻게 변경되어야 하는지를 표시하고,
    상기 제2 입력 프레임으로부터 상기 제1 입력 프레임으로의 역방향 광학 흐릅을 추정하도록 구성되되, 상기 역방향 광학 흐름은 상기 제2 입력 프레임으로부터 시작하여 상기 제1 입력 프레임에서 종료되는 시간 기간 동안에 상기 제1 입력 프레임을 생성하기 위하여 상기 제2 입력 프레임에서의 픽셀들이 어떻게 변경되어야 하는지를 표시하며,
    상기 특징 피라미드 추출 회로부는,
    상기 제1 입력 프레임으로부터 제1 특징 피라미드를 추출하도록 구성되되, 상기 제1 특징 피라미드는 복수의 해상도의 각각의 해상도에서 상기 제1 입력 프레임으로부터 추출된 특징들의 제1 세트를 포함하고,
    상기 제2 입력 프레임으로부터 제2 특징 피라미드를 추출하도록 구성되되, 상기 제2 특징 피라미드는 상기 복수의 해상도의 각각의 해상도에서 상기 제2 입력 프레임으로부터 추출된 특징들의 제2 세트를 포함하며,
    상기 순방향 및 역방향 광학 흐름들에 기초하여 상기 제1 입력 프레임과 상기 제2 입력 프레임 사이의 시간적 위치로 상기 제1 입력 프레임 및 상기 제2 입력 프레임과 함께 상기 제1 특징 피라미드 및 상기 제2 특징 피라미드를 사전-워핑하도록 구성되고,
    상기 프레임 합성 신경망 회로부는,
    각각 상기 제1 및 제2 입력 프레임들에 대하여 사전-워핑된 제1 및 제2 특징 피라미드들의 적용으로부터 보간 결과를 예측하도록 구성되되, 예측된 보간 결과는 상기 순방향 및 역방향 광학 흐름들에 기초하여 상기 제1 및 제2 입력 프레임들 사이의 상기 시간적 위치에서 생성된 출력 프레임을 포함하는, IC 패키지.
  2. 제1항에 있어서,
    상기 FPE 회로부는 동일한 구성을 상기 제1 및 제2 입력 프레임들에 적용하여 상기 제1 및 제2 특징 피라미드들을 각각 추출하도록 추가로 구성된, IC 패키지.
  3. 제1항에 있어서,
    상기 특징들의 제1 세트에서의 적어도 일부 특징들 및 상기 특징들의 제2 세트에서의 적어도 일부 특징들은 상기 제1 및 제2 입력 프레임들의 색 공간에 기초하는, IC 패키지.
  4. 제1항에 있어서,
    상기 출력 프레임은 상기 제1 입력 프레임으로부터 상기 시간적 위치로 그리고 상기 시간적 위치로부터 상기 제2 입력 프레임으로 발생하는 모션을 복제하기 위하여, 각각 상기 제1 및 제2 입력 프레임들로부터 시프트된 상기 제1 및 제2 입력 프레임들의 픽셀들을 포함하는, IC 패키지.
  5. 제1항에 있어서,
    상기 FPE 회로부는,
    상기 제1 및 제2 입력 프레임들로부터 추출된 특징들에 기초하여 상기 복수의 해상도의 각각에서 상기 제1 및 제2 입력 프레임들을 생성하도록 추가로 구성된, IC 패키지.
  6. 제1항에 있어서,
    상기 제1 및 제2 특징 피라미드들을 추출하기 위하여, 상기 FPE 회로부는,
    각각의 해상도에서 상기 제1 및 제2 입력 프레임들로부터 다수의 입력 특징을 판독하고;
    상기 제1 및 제2 입력 프레임들의 각각에 대한 상기 다수의 입력 특징으로부터 다수의 출력 특징을 생성하도록 추가로 구성된, IC 패키지.
  7. 제6항에 있어서,
    상기 FPE 회로부는,
    활성화 함수 회로부와 인터리빙되고, 상기 복수의 해상도의 각각의 해상도에서 상기 제1 및 제2 입력 프레임들로부터 상기 특징들의 세트를 추출하기 위하여 각각의 해상도에서 상기 제1 및 제2 입력 프레임들 중 하나 또는 둘 모두를 컨볼루션하도록 구성된 컨볼루션 회로부를 포함하는, IC 패키지.
  8. 제1항에 있어서,
    상기 순방향 광학 흐름을 이용하여 상기 제1 특징 피라미드를 상기 제2 특징 피라미드를 향해 워핑하고;
    상기 역방향 광학 흐름을 이용하여 상기 제2 특징 피라미드를 상기 제1 특징 피라미드를 향해 워핑하도록 구성된
    순방향 워핑(forward warping) 회로부(FW 회로부)를 더 포함하는, IC 패키지.
  9. 제8항에 있어서,
    상기 출력 프레임을 생성하기 위하여, 상기 FSN 회로부는,
    상기 워핑된 특징 피라미드들 및 상기 제1 및 제2 입력 프레임들의 워핑된 버전들로부터 보간 결과를 예측하도록 구성된, IC 패키지.
  10. 제9항에 있어서,
    상기 FPE 회로부는,
    개개의 입력 프레임들로부터 새로운 특징 피라미드들을 추출하기 위하여 상기 예측된 보간 결과를 이용하도록 추가로 구성되고, 상기 새로운 특징 피라미드들은 상기 제1 및 제2 특징 피라미드들의 특징들과는 상이한 특징들의 세트를 포함하는, IC 패키지.
  11. 제9항에 있어서,
    상기 FSN 회로부는 프로세싱 블록들의 그리드를 포함하고, 상기 프로세싱 블록들의 그리드에서의 각각의 행은 상기 해상도의 세트에 있는 해상도에 대응하는, IC 패키지.
  12. 제11항에 있어서,
    각각의 행에서의 제1 프로세싱 블록은 상기 제1 및 제2 특징 피라미드들에서의 대응하는 해상도에서 워핑된 특징들의 세트를 수신하도록 구성된, IC 패키지.
  13. 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 OFE 회로부, 상기 FPE 회로부, 상기 FSN 회로부, 및 상기 FW 회로부는 상호접속 기술을 통해 서로 결합되고,
    시스템-인-패키지(SiP) 또는 멀티-칩 패키지(MCP)의 개개의 다이들;
    범용 프로세서의 개개의 실행 유닛들 또는 프로세서 코어들; 또는
    개개의 디지털 신호 프로세서(DSP)들, 필드-프로그래밍가능 게이트 어레이(FPGA)들, 주문형 집적 회로(ASIC)들, 프로그래밍가능 로직 디바이스(PLD)들, 시스템-온-칩(SoC)들, 그래픽 프로세싱 유닛(GPU)들, SiP들, MCP들, 또는 DSP들, FPGA들, ASIC들, PLD들, SoC들, GPU들, SiP들, 및 MCP들의 임의의 조합으로서 구현된, IC 패키지.
  14. 프레임 보간 신경망(FINN)의 명령들을 포함하는 하나 이상의 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable media)(NTCRM)로서,
    하나 이상의 프로세서에 의한 상기 명령들의 실행은, 상기 하나 이상의 프로세서로 하여금,
    비디오의 제1 입력 프레임 및 제2 입력 프레임을 획득하게 하고;
    상기 제1 입력 프레임으로부터 상기 제2 입력 프레임으로의 순방향 광학 흐름을 추정하게 하되, 상기 순방향 광학 흐름은 상기 제1 입력 프레임으로부터 시작하여 상기 제2 입력 프레임에서 종료되는 시간 기간 동안에 상기 제2 입력 프레임을 생성하기 위하여 상기 제1 입력 프레임에서의 픽셀들이 어떻게 변경되어야 하는지를 표시하게 하고;
    상기 제2 입력 프레임으로부터 상기 제1 입력 프레임으로의 역방향 광학 흐름을 추정하게 하되, 상기 역방향 광학 흐름은 상기 제2 입력 프레임으로부터 시작하여 상기 제1 입력 프레임에서 종료되는 시간 기간 동안에 상기 제1 입력 프레임을 생성하기 위하여 상기 제2 입력 프레임에서의 픽셀들이 어떻게 변경되어야 하는지를 표시하게 하며;
    상기 제1 입력 프레임으로부터 제1 특징 피라미드를추출하게 하되, 상기 제1 특징 피라미드는 복수의 해상도의 각각의 해상도에서 상기 제1 입력 프레임으로부터 추출된 특징들의 제1 세트를 포함하고;
    상기 제2 입력 프레임으로부터 제2 특징 피라미드를추출하게 하되, 상기 제2 특징 피라미드는 상기 복수의 해상도의 각각의 해상도에서 상기 제2 입력 프레임으로부터 추출된 특징들의 제2 세트를 포함하며;
    상기 순방향 및 역방향 광학 흐름들에 기초하여 상기 제1 입력 프레임과 상기 제2 입력 프레임 사이의 시간적 위치로 상기 제1 입력 프레임 및 상기 제2 입력 프레임과 함께 상기 제1 특징 피라미드 및 상기 제2 특징 피라미드를 사전-워핑하게 하고;
    상기 순방향 광학 흐름을 이용하여 상기 제1 특징 피라미드를 상기 제2 특징 피라미드를 향해 워핑하게 하고;
    상기 역방향 광학 흐름을 이용하여 상기 제2 특징 피라미드를 상기 제1 특징 피라미드를 향해 워핑하게 하고;
    상기 워핑된 제1 및 제2 특징 피라미드들에 기초하여 상기 제1 및 제2 입력 프레임들 사이의 시간적 위치에서 출력 프레임을 생성하게 하는, 하나 이상의 NTCRM.
  15. 제14항에 있어서,
    상기 특징들의 제1 및 제2 세트들은 각각 상기 제1 및 제2 입력 프레임들의 색 공간에 기초하는, 하나 이상의 NTCRM.
  16. 제14항에 있어서,
    상기 명령들의 실행은 추가로, 상기 하나 이상의 프로세서로 하여금,
    각각의 해상도에서 상기 제1 및 제2 입력 프레임들로부터 다수의 입력 특징을 판독하게 하고;
    각각의 해상도에서 상기 다수의 입력 특징으로부터 다수의 출력 특징을 생성하게 하고,
    각각의 해상도에서의 상기 출력 특징들은 상기 입력 특징들의 상이한 옥타브(octave)들을 나타내며, 수에 있어서 가변적인, 하나 이상의 NTCRM.
  17. 제16항에 있어서,
    상기 FINN은 복수의 활성화 함수와 인터리빙된 복수의 컨볼루션 함수를 포함하고, 상기 명령들의 실행은 상기 하나 이상의 프로세서로 하여금,
    각각의 해상도에서 상기 제1 및 제2 입력 프레임들을 컨볼루션하기 위해 상기 컨볼루션 함수들을 동작하게 하고;
    상기 컨볼루션된 제1 및 제2 입력 프레임들로부터 개별적인 특징들을 추출하기 위해 상기 활성화 함수들을 동작하게 하는, 하나 이상의 NTCRM.
  18. 제14항에 있어서,
    상기 출력 프레임을 생성하기 위하여, 상기 명령들의 실행은 상기 하나 이상의 프로세서로 하여금,
    상기 워핑된 특징 피라미드들 및 상기 제1 및 제2 입력 프레임들의 워핑된 버전들로부터 보간 결과를 예측하게 하는, 하나 이상의 NTCRM.
  19. 제14항 내지 제18항 중 어느 한 항에 있어서,
    상기 FINN은 프로세싱 블록들의 그리드를 포함하는 프레임 합성 신경망을 포함하고, 상기 프로세싱 블록들의 그리드에서의 각각의 행은 상기 복수의 해상도에 있는 해상도에 대응하고, 상기 명령들의 실행은 상기 하나 이상의 프로세서로 하여금,
    연접된 특징 피라미드가 각각의 해상도에서 상기 제1 및 제2 입력 프레임들로부터 추출된 특징들을 포함하도록, 상기 워핑된 제1 및 제2 특징 피라미드들을 연접하게 하고;
    각각의 해상도에서 상기 제1 및 제2 입력 프레임들로부터 추출된 상기 특징들을 각각의 행의 개개의 입력 프로세싱 블록들로 입력하게 하는, 하나 이상의 NTCRM.
  20. 컴퓨팅 시스템으로서,
    메모리 회로부와 결합된 프로세서 회로부를 포함하고, 상기 메모리 회로부는 프레임 보간 신경망(FINN)의 프로그램 코드를 저장하도록 배치되고, 상기 FINN은 광학 흐름 추정기(OFE), 특징 피라미드 추출기(FPE), 순방향 워핑 엔진(FWE), 및 프레임 합성 신경망(FSN)을 포함하고, 그리고
    상기 프로세서 회로부는 보간될 비디오의 제1 및 제2 입력 프레임들로부터 순방향 광학 흐름 및 역방향 광학 흐름을 추정하기 위하여 상기 OFE를 동작시키도록 배치되고, 상기 순방향 광학 흐름은 제1 입력 프레임으로부터 시작하여 상기 제2 입력 프레임에서 종료되는 시간 기간 동안에 상기 제2 입력 프레임을 생성하기 위하여 상기 제1 입력 프레임에서의 픽셀들이 어떻게 변경되어야 하는지를 표시하고, 상기 역방향 광학 흐름은 상기 시간 기간 동안에 상기 제1 입력 프레임을 생성하기 위하여 상기 제2 입력 프레임에서의 픽셀들이 어떻게 변경되어야 하는지를 표시하고;
    상기 프로세서 회로부는 상기 제1 입력 프레임으로부터 제1 특징 피라미드를, 그리고 상기 제2 입력 프레임으로부터 제2 특징 피라미드를 추출하기 위하여 상기 FPE를 동작시키도록 배치되되, 상기 제1 특징 피라미드는 복수의 해상도의 각각의 해상도에서 상기 제1 입력 프레임으로부터 추출된 특징들의 제1 세트를 포함하고, 상기 제2 특징 피라미드는 상기 복수의 해상도의 각각의 해상도에서 상기 제2 입력 프레임으로부터 추출된 특징들의 제2 세트를 포함하고, 그리고
    상기 프로세서 회로부는 상기 순방향 및 역방향 광학 흐름들에 기초하여 상기 제1 입력 프레임과 상기 제2 입력 프레임 사이의 시간적 위치로 상기 제1 입력 프레임 및 상기 제2 입력 프레임과 함께 상기 제1 특징 피라미드 및 상기 제2 특징 피라미드를 사전-워핑하기 위하여 상기 FPE를 동작시키도록 배치되며;
    상기 프로세서 회로부는 상기 순방향 광학 흐름을 이용하여 상기 제1 특징 피라미드를 상기 제2 특징 피라미드를 향해 워핑하고 상기 역방향 광학 흐름을 이용하여 상기 제2 특징 피라미드를 상기 제1 특징 피라미드를 향해 워핑하기 위하여 상기 FWE를 동작시키도록 배치되고;
    상기 프로세서 회로부는 상기 워핑된 제1 및 제2 특징 피라미드들에 기초하여 상기 제1 및 제2 입력 프레임들 사이의 원하는 시간적 위치에서 출력 프레임을 생성하기 위하여 상기 FSN을 동작시키도록 배치되고, 상기 출력 프레임은 상기 제1 입력 프레임으로부터 상기 시간적 위치로 그리고 상기 시간적 위치로부터 상기 제2 입력 프레임으로 발생하는 모션을 복제하기 위하여, 각각 상기 제1 및 제2 입력 프레임들로부터 시프트된 상기 제1 및 제2 입력 프레임들의 픽셀들을 포함하는, 컴퓨팅 시스템.
  21. 제20항에 있어서,
    상기 프로세서 회로부는,
    각각의 해상도에서 상기 제1 및 제2 입력 프레임들 중 하나 또는 둘 모두로부터 다수의 입력 특징을 판독하기 위하여; 그리고
    각각의 해상도에서 상기 다수의 입력 특징으로부터 다수의 출력 특징을 생성하기 위하여 - 각각의 해상도에서의 상기 출력 특징들은 상기 입력 특징들의 상이한 옥타브들을 나타내며, 수에 있어서 가변적임-,
    상기 FPE를 동작시키도록 추가로 배치된, 컴퓨팅 시스템.
  22. 제21항에 있어서,
    상기 FPE는 복수의 활성화 함수와 인터리빙된 복수의 컨볼루션 함수를 포함하고, 상기 프로세서 회로부는,
    각각의 해상도에서 상기 제1 및 제2 입력 프레임들을 컨볼루션하기 위해 상기 컨볼루션 함수들을 동작시키기 위하여; 그리고
    상기 컨볼루션된 제1 및 제2 입력 프레임들로부터 개별적인 특징들을 추출하기 위해 상기 활성화 함수들을 동작시키기 위하여,
    상기 FPE를 동작시키도록 추가로 배치된, 컴퓨팅 시스템.
  23. 제20항 내지 제22항 중 어느 한 항에 있어서,
    상기 출력 프레임을 생성하기 위하여, 상기 프로세서 회로부는,
    상기 워핑된 특징 피라미드들 및 상기 제1 및 제2 입력 프레임들의 워핑된 버전들로부터 보간 결과를 예측하기 위하여 상기 FSN을 동작시키도록 추가로 배치된, 컴퓨팅 시스템.
  24. 제23항에 있어서,
    상기 FSN은 프로세싱 블록들의 그리드를 포함하고, 상기 프로세싱 블록들의 그리드에서의 각각의 행은 상기 해상도들의 세트에 있는 해상도에 대응하는, 컴퓨팅 시스템.
  25. 제24항에 있어서,
    상기 컴퓨팅 시스템은 시스템-인-패키지(SiP), 멀티-칩 패키지(MCP), 시스템-온-칩(SoC)들, 디지털 신호 프로세서(DSP)들, 필드-프로그래밍가능 게이트 어레이(FPGA)들, 주문형 집적 회로(ASIC)들, 프로그래밍가능 로직 디바이스(PLD)들, 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU)이거나, 상기 컴퓨팅 시스템은 서로 상호접속된 SiP들, MCP들, SoC들, DSP들, FPGA들, ASIC들, PLD들, CPU들, GPU들 중 2개 이상을 포함하는, 컴퓨팅 시스템.
KR1020217025870A 2019-01-15 2020-01-14 비디오 프레임 보간을 위한 특징 피라미드 워핑 Active KR102646695B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962792693P 2019-01-15 2019-01-15
US62/792,693 2019-01-15
PCT/US2020/013545 WO2020150264A1 (en) 2019-01-15 2020-01-14 Feature pyramid warping for video frame interpolation

Publications (2)

Publication Number Publication Date
KR20210105442A KR20210105442A (ko) 2021-08-26
KR102646695B1 true KR102646695B1 (ko) 2024-03-12

Family

ID=71613575

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217025870A Active KR102646695B1 (ko) 2019-01-15 2020-01-14 비디오 프레임 보간을 위한 특징 피라미드 워핑

Country Status (4)

Country Link
US (1) US12288346B2 (ko)
JP (1) JP7392227B2 (ko)
KR (1) KR102646695B1 (ko)
WO (1) WO2020150264A1 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109816611B (zh) * 2019-01-31 2021-02-12 北京市商汤科技开发有限公司 视频修复方法及装置、电子设备和存储介质
US11176682B2 (en) * 2019-11-27 2021-11-16 Nvidia Corporation Enhanced optical flow estimation using a varied scan order
US11698878B1 (en) * 2020-04-12 2023-07-11 Peraton Labs Inc. Highspeed shared-memory optical network interfaces and topology
CN113727141B (zh) * 2020-05-20 2023-05-12 富士通株式会社 视频帧的插值装置以及方法
CN111709890B (zh) * 2020-06-12 2023-11-24 北京小米松果电子有限公司 一种图像增强模型的训练方法、装置及存储介质
CN115699058B (zh) * 2020-07-14 2025-12-02 阿里巴巴集团控股有限公司 通过边缘搜索的特征交互
CN112184779A (zh) * 2020-09-17 2021-01-05 无锡安科迪智能技术有限公司 插帧图像处理方法及装置
EP4214081A4 (en) * 2020-09-18 2024-10-02 Nubis Communications, Inc. DATA PROCESSING SYSTEM WITH OPTICAL COMMUNICATION MODULES
US11734837B2 (en) * 2020-09-30 2023-08-22 Shanghai United Imaging Intelligence Co., Ltd. Systems and methods for motion estimation
US11647212B2 (en) * 2020-09-30 2023-05-09 Qualcomm Incorporated Activation function design in neural network-based filtering process for video coding
WO2022096101A1 (en) * 2020-11-05 2022-05-12 Huawei Technologies Co., Ltd. Device and method for video interpolation
KR20230091180A (ko) * 2020-11-09 2023-06-22 포틀랜드 스테이트 유니버시티 하이브리드 기계 학습 및 dct-기반 비디오 압축을 위한 시스템 및 방법
CN112533026A (zh) * 2020-11-27 2021-03-19 西安蓝极医疗电子科技有限公司 基于卷积神经网络的视频插帧方法
CN112584076B (zh) * 2020-12-11 2022-12-06 北京百度网讯科技有限公司 视频的插帧方法、装置及电子设备
CN112584077B (zh) * 2020-12-11 2023-02-21 北京百度网讯科技有限公司 视频的插帧方法、装置及电子设备
CN112633123B (zh) * 2020-12-18 2024-06-04 国网浙江省电力有限公司电力科学研究院 一种基于深度学习的异源遥感影像变化检测方法及装置
KR102892290B1 (ko) * 2020-12-28 2025-11-27 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
CN112929689B (zh) * 2021-02-24 2023-04-07 北京百度网讯科技有限公司 视频插帧方法、装置、设备以及存储介质
CN113014936B (zh) * 2021-02-24 2022-12-13 北京百度网讯科技有限公司 视频插帧方法、装置、设备以及存储介质
US12175622B1 (en) * 2021-03-12 2024-12-24 Xilinx, Inc. Smart cache implementation for image warping
US20220301127A1 (en) * 2021-03-18 2022-09-22 Applied Materials, Inc. Image processing pipeline for optimizing images in machine learning and other applications
CN113066103B (zh) * 2021-03-18 2023-02-21 鹏城实验室 一种相机帧间运动确定方法
WO2022205685A1 (zh) * 2021-03-29 2022-10-06 泉州装备制造研究所 一种基于轻量化网络的交通标志识别方法
EP4318376A4 (en) * 2021-05-24 2024-05-22 Samsung Electronics Co., Ltd. Ai-based frame interpolation method and device
US12003885B2 (en) * 2021-06-14 2024-06-04 Microsoft Technology Licensing, Llc Video frame interpolation via feature pyramid flows
WO2022266376A1 (en) 2021-06-17 2022-12-22 Nubis Communications, Inc. Communication systems having pluggable modules
CN113538527B (zh) * 2021-07-08 2023-09-26 上海工程技术大学 一种高效轻量级光流估计方法、存储介质及装置
CN115705706B (zh) * 2021-08-13 2025-12-09 腾讯科技(深圳)有限公司 视频处理方法、装置、计算机设备和存储介质
WO2023092388A1 (zh) * 2021-11-25 2023-06-01 Oppo广东移动通信有限公司 解码方法、编码方法、解码器、编码器和编解码系统
CN114202463B (zh) * 2021-12-15 2024-02-23 陕西师范大学 面向云端融合的视频超分辨率方法及系统
US12148175B2 (en) * 2022-02-02 2024-11-19 Samsung Electronics Co., Ltd. Multi-frame optical flow network with lossless pyramid micro-architecture
CN114581493B (zh) * 2022-03-04 2024-12-03 三星电子(中国)研发中心 双向光流估计方法和装置
CN115065796B (zh) 2022-06-14 2025-07-25 三星电子(中国)研发中心 视频中间帧的生成方法和装置
CN115032508B (zh) * 2022-08-12 2022-11-01 国网山东省电力公司电力科学研究院 一种基于目标识别的分布式输电线路故障诊断方法及系统
CN115988162A (zh) * 2022-12-01 2023-04-18 芯动微电子科技(武汉)有限公司 一种基于时空编码的低延时视频插帧方法及设备
CN116033183B (zh) * 2022-12-21 2024-11-22 上海哔哩哔哩科技有限公司 视频插帧方法及装置
CN116156218B (zh) * 2023-02-20 2025-07-04 广州博冠信息科技有限公司 视频插帧模型的确定方法及装置、视频插帧方法及装置
CN116708796A (zh) * 2023-06-21 2023-09-05 三星电子(中国)研发中心 视频中间帧的生成方法和装置
CN116778346B (zh) * 2023-08-23 2023-12-08 蓝茵建筑数据科技(上海)有限公司 一种基于改进自注意力机制的管线识别方法及系统
WO2025227394A1 (en) * 2024-04-30 2025-11-06 Guangdong Oppo Mobile Telecommunications Corp., Ltd. System and method for unified reference picture synthesis
CN118540430A (zh) * 2024-05-08 2024-08-23 南开大学 基于运动结构引导的快速点云帧插值方法及系统
CN118797976B (zh) * 2024-09-13 2024-12-13 金卡水务科技有限公司 一种管网压力分布监测方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100231593A1 (en) 2006-01-27 2010-09-16 Samuel Zhou Methods and systems for digitally re-mastering of 2d and 3d motion pictures for exhibition with enhanced visual quality
KR101932009B1 (ko) 2017-12-29 2018-12-24 (주)제이엘케이인스펙션 다중 객체 검출을 위한 영상 처리 장치 및 방법

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4050472B2 (ja) * 2001-02-06 2008-02-20 株式会社モノリス 画像生成方法、装置およびシステム
WO2004093006A1 (ja) * 2003-04-16 2004-10-28 Fujitsu Limited 知識発見装置、知識発見プログラムおよび知識発見方法
US20090174812A1 (en) * 2007-07-06 2009-07-09 Texas Instruments Incorporated Motion-compressed temporal interpolation
US20090180033A1 (en) * 2008-01-11 2009-07-16 Fang-Chen Chang Frame rate up conversion method and apparatus
JP4565015B2 (ja) * 2008-05-15 2010-10-20 シャープ株式会社 画像処理装置、画像形成装置、画像処理システム、画像処理プログラムおよびその記録媒体
US9258518B2 (en) * 2012-03-05 2016-02-09 Thomson Licensing Method and apparatus for performing super-resolution
KR101747220B1 (ko) * 2012-08-30 2017-06-15 한화테크윈 주식회사 이미지 피라미드의 적응적 이미지 처리 장치 및 방법
KR20150054195A (ko) * 2013-11-11 2015-05-20 삼성전자주식회사 영상신호의 노이즈 제거 방법과 이를 이용한 영상표시장치
US20150221335A1 (en) * 2014-02-05 2015-08-06 Here Global B.V. Retiming in a Video Sequence
KR102018046B1 (ko) * 2014-02-24 2019-09-04 한국전자통신연구원 이미지 특징 추출 장치 및 방법
US10726560B2 (en) * 2014-10-31 2020-07-28 Fyusion, Inc. Real-time mobile device capture and generation of art-styled AR/VR content
US10181195B2 (en) * 2015-12-28 2019-01-15 Facebook, Inc. Systems and methods for determining optical flow
US20180063551A1 (en) * 2016-08-30 2018-03-01 Gopro, Inc. Apparatus and methods for frame interpolation
US10134114B2 (en) * 2016-09-20 2018-11-20 Gopro, Inc. Apparatus and methods for video image post-processing for segmentation-based interpolation
US10003768B2 (en) * 2016-09-28 2018-06-19 Gopro, Inc. Apparatus and methods for frame interpolation based on spatial considerations
US11468318B2 (en) * 2017-03-17 2022-10-11 Portland State University Frame interpolation via adaptive convolution and adaptive separable convolution
US10424069B2 (en) * 2017-04-07 2019-09-24 Nvidia Corporation System and method for optical flow estimation
US10764499B2 (en) * 2017-06-16 2020-09-01 Microsoft Technology Licensing, Llc Motion blur detection
US11917128B2 (en) * 2017-08-22 2024-02-27 Google Llc Motion field estimation based on motion trajectory derivation
US10659788B2 (en) * 2017-11-20 2020-05-19 Google Llc Block-based optical flow estimation for motion compensated prediction in video coding
US10776688B2 (en) * 2017-11-06 2020-09-15 Nvidia Corporation Multi-frame video interpolation using optical flow
US11475536B2 (en) * 2018-02-27 2022-10-18 Portland State University Context-aware synthesis for video frame interpolation
US10986325B2 (en) * 2018-09-12 2021-04-20 Nvidia Corporation Scene flow estimation using shared features
CA3112265C (en) * 2018-09-19 2022-11-15 Avigilon Coporation Method and system for performing object detection using a convolutional neural network
US10872240B2 (en) * 2018-09-28 2020-12-22 Opentv, Inc. Systems and methods for generating media content

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100231593A1 (en) 2006-01-27 2010-09-16 Samuel Zhou Methods and systems for digitally re-mastering of 2d and 3d motion pictures for exhibition with enhanced visual quality
KR101932009B1 (ko) 2017-12-29 2018-12-24 (주)제이엘케이인스펙션 다중 객체 검출을 위한 영상 처리 장치 및 방법

Also Published As

Publication number Publication date
JP7392227B2 (ja) 2023-12-06
JP2022517444A (ja) 2022-03-08
WO2020150264A1 (en) 2020-07-23
US20220092795A1 (en) 2022-03-24
US12288346B2 (en) 2025-04-29
KR20210105442A (ko) 2021-08-26

Similar Documents

Publication Publication Date Title
KR102646695B1 (ko) 비디오 프레임 보간을 위한 특징 피라미드 워핑
US11475536B2 (en) Context-aware synthesis for video frame interpolation
KR102474168B1 (ko) 적응형 컨볼루션 및 적응형 분리형 컨볼루션을 통한 프레임 인터폴레이션
US11871127B2 (en) High-speed video from camera arrays
WO2020256704A1 (en) Real-time video ultra resolution
US20240289599A1 (en) Systems and devices for configuring neural network circuitry
CN110310299B (zh) 用于训练光流网络、以及处理图像的方法和装置
KR20160086873A (ko) Simd형 초병렬 연산 처리 장치용 초해상 처리 방법, 장치, 프로그램 및 기억 매체
US11032470B2 (en) Sensors arrangement and shifting for multisensory super-resolution cameras in imaging environments
US10445921B1 (en) Transferring motion between consecutive frames to a digital image
CN111325792A (zh) 用于确定相机位姿的方法、装置、设备和介质
JP2019534599A (ja) 多層シフトを使用してステレオビジョンを容易にするための方法および装置
US11151698B2 (en) Image processing apparatus and method for suppressing overlap blur and individual blur from projection images using an inverted filter
US10650488B2 (en) Apparatus, method, and computer program code for producing composite image
CN113724151A (zh) 一种图像增强方法、电子设备和计算机可读存储介质
CN111815656A (zh) 视频处理方法、装置、电子设备和计算机可读介质
CN115103118B (zh) 高动态范围图像生成方法、装置、设备及可读存储介质
US20240177409A1 (en) Image processing method and apparatus, electronic device, and readable storage medium
Ikebe et al. HDR tone mapping: System implementations and benchmarking
US20250336041A1 (en) Spatiotemporal consistency oriented training framework for ai based stable video generation
US20250234100A1 (en) Tone consistency for camera imaging
US20250390996A1 (en) Adaptive image sharpening
Wang et al. A component-driven distributed framework for real-time video dehazing
Popovic et al. Computational Imaging Applications
Wang et al. HCTMIF: Hybrid CNN‐Transformer Multi Information Fusion Network for Low Light Image Enhancement

Legal Events

Date Code Title Description
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U12-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000