들어오는 BMP 이미지 스트림을 비디오로 표시 할 수 있습니까? (Android 앱)

음흉한

들어오는 BMP 이미지 스트림을 지연 시간이 매우 짧은 비디오로 재생할 수 있습니까 (이미지가 20ms 미만으로 표시됨)

이미지는 초당 20 개 이미지의 빈도로 제공됩니다.

이 순진한 솔루션이 가능합니까, 아니면 H.264 / 5를 사용하여 이미지를 인코딩해야합니까?

이 문제에 어떻게 접근해야합니까?

친절한 안부

사용자 3666197

Q : "이 순진한 솔루션이 가능할까요 ...?"


예.

여기에 이미지 설명 입력

당신은 또한 이것 에 대한이 책을 좋아할 것 입니다.


Q : "... H264 / 5로 인코딩해야하나요?"


그 지옥은 달려 있습니다.

Given the said 20 Hz BMP-image ingress-rate, there are about 50 [ms] per image for all the Visual-part of the (principally distributed) MVC-system.

Within those said 50 ms, there ought be zero time wasted & nothing might ever block.

So the receiving-engine must keep steady data-flow of the ingress, no traffic overloads by any other, un-coordinated bandwidth ( memory, I/O, ... ) eater ( BMP-images' size was not mentioned so far ) and must provide some means, what will get fed into the presenter-engine in cases the "next"-data due to get shown is not complete or present at all.

So what about the compression?

Compression is a double-sided sword - you obviously reduce the data-volume (with some SER/DES-codecs even at a cost of loosing some part of the original data-richness, yes, exactly - knowingly lossy compression schemes ), while typically adding some additional data-re-framing and, perhaps, R/S or other "line-code" error-detection/error-correction, so the final volume of data-to-xmit need not be as small as the pure compression-part itself allows in theory.

Result?

All that comes at remarkable costs - both on SER/coder-side, here to get as little data into the (knowingly low-bandwidth / fuzzy as most often un-manageable latency ) transport, and on the decoder/DES-side.

So, given the 20 Hz refresh rate leaves not more than a total 50 ms for one frame-repaint, the lump sum of the receiver-engine processing and presenter-engine processing cannot spend more than those 50 ms per frame. Any decode-related and DESerialiser-related processing is a deciding factor on this.

Yet, one may succeed, if proper design & flawless engineering took place for doing this right & robust enough.

Check your target device for all of:

  • transport resources limits
    (i.e. how much time get burnt & what resources get allocated / locked per arrival),
  • memory-I/O
    (latency and memory-I/O concurrency limits for any interleaved data-flow patterns),
  • cache-hierarchy
    (if present on a device) sizes, costs and I/O-limits),
  • processing limits
    (if multicore, the more if NUMA, beware of non-uniform memory-I/O traps)
  • presenter-engine hardware bottlenecks
    (memory-I/O, display device buffer-I/O limits and any other add-on latencies)

since any of these details may de-rail your smooth flow of (error-resilient) data to get finally presented on a target device in a due time for the wished to get target 20 FPS.

Good luck!

참고 :
소스에서 바로 데이터 감소를 활용할 수 있다면 모든 대상 발표자 엔진 이 B / W이고 컬러 풀 한 BMP를 "보내"지 않는다는 선험적으로 알고있는 경우와 같이 기회를 잡고 실행하십시오 . 모든 프레임 별 색상 표 및 높은 수준의 색상 프로필 트릭을 제거하고 대상 터미널에 대한 최악의 처리 및 지연 시간 한도 시나리오와 일치하는 적절한 크기의 원시 래스터 데이터 이상을 스트리밍하지 않습니다. 장치.
일반 BMP 데이터 형식 정의의 중복되고 주로 낭비되는 (반복적 인) 부분을 모두주의 깊게 검토하고 다시 방송하지 마십시오

.)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

알림 패널을 아래로 당길 때 Android의 모든 비디오 (미디어 플레이어) 앱을 일시 중지 할 수 있습니까?

다른 활동으로 이동하여 서비스를 시작할 수 있습니까? Android 스튜디오 앱

Android 앱용 사용자 지정 작업 표시 줄을 어떻게 디자인 할 수 있습니까?

알림을 표시할지 여부를 표시 할 Android 앱의 애플리케이션 상태를 어떻게 알 수 있습니까?

한 번에 두 개의 자막을 표시 할 수있는 비디오 플레이어가 있습니까?

Android Studio에서 "JVM 설치를 찾을 수 없습니다. 이미 SDK가 설치되어있는 경우 JAVA_HOME 변수를 정의하십시오"라는 오류 메시지가 표시됩니다. 어떻게 할 수 있습니까?

Windows 앱의 푸시 알림-토스트 메시지의 내용을 어떻게 변경할 수 있습니까?

텍스트 섹션이 비어 있고 버튼이 눌 렸을 때 토스트 메시지를 어떻게 표시 할 수 있습니까 (Android 스튜디오에서)?

어쨌든 이미지를 스포일러로 표시 할 수 있습니까?

plt는 어떻게 단일 비디오 파일을 html로 표시할 수 있습니까?

iOS 시스템 이퀄라이저를 제어 할 수 있습니까 (다른 앱에서 재생되는 오디오에 영향을 줄 수 있음)

앱이 실행되지 않는 경우 (예 : 시계 앱) iOS 로컬 알림을 사용할 수 있습니까?

오디오 스트림을 다시 시작하지 않고 오보에에서 오디오 소스를 추가 및 / 또는 교체 할 수 있습니까?

내 코드에서 제목 표시 줄을 제거했지만 이제 활동을 전체 화면으로 만들고 싶습니다. 누군가가 Android 스튜디오에서이를 수행하는 방법을 제안 할 수 있습니까?

파이썬 openCV 비디오 스트림을 어떻게 개선 할 수 있습니까?

안드로이드 스튜디오 이미지보기에서 이미지를 표시 할 수 없습니다

VLC 미디어 플레이어가 비디오 길이를 표시하도록 설정할 수 있습니까?

IE에서 비디오 길이를 어떻게 표시 할 수 있습니까?

iOS에서 들어오는 푸시 알림 텍스트를 수정할 수 있습니까?

데이터베이스에 값이 이미있는 경우 오류 메시지를 어떻게 표시 할 수 있습니까?

미디어 플레이어에서 재생중인 현재 라이브 비디오 스트림을 어떻게 녹화 할 수 있습니까?

내 웹사이트에 .asf 비디오 형식을 표시할 수 있습니까?

오디오 파형 이미지를 ffmpeg에서 이미지 표시 명령/응용 프로그램으로 어떻게 파이프할 수 있습니까?

Android에서 앱을 닫아도 작동 할 수있는 타이머를 어떻게 만들 수 있습니까?

완전히 새로운 소스 코드로 Android 또는 iPhone 앱을 업데이트 할 수 있습니까?

Spring MVC에서 파일 (이미지, 오디오 및 비디오)을 어떻게 업로드하고 검색 할 수 있습니까?

Android Studio의 Nougat 버전에서 이미지, 비디오 항목을 업로드 할 수 없습니다.

Icecast 릴레이 스트림은 프로그레시브 오디오 스트림을 버퍼링 할 수 있습니다.

두 개의 Android "클라이언트"가 동시에 비디오 카메라를 사용할 수 있습니까?

TOP 리스트

  1. 1

    Ionic 2 로더가 적시에 표시되지 않음

  2. 2

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  3. 3

    std :: regex의 일관성없는 동작

  4. 4

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  5. 5

    java.lang.UnsatisfiedLinkError : 지정된 모듈을 찾을 수 없습니다

  6. 6

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  7. 7

    상황에 맞는 메뉴 색상

  8. 8

    SMTPException : 전송 연결에서 데이터를 읽을 수 없음 : net_io_connectionclosed

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    Windows cmd를 통해 Anaconda 환경에서 Python 스크립트 실행

  11. 11

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  12. 12

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  13. 13

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  14. 14

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  15. 15

    복사 / 붙여 넣기 비활성화

  16. 16

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  17. 17

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  18. 18

    SQL Server-현명한 데이터 문제 받기

  19. 19

    Seaborn에서 축 제목 숨기기

  20. 20

    ArrayBufferLike의 typescript 정의의 깊은 의미

  21. 21

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

뜨겁다태그

보관