2012-08-28 3 views
2

Android 기기의 전면 카메라와 로컬 카메라로 비디오 스트리밍을 실험 해보고 있습니다. 현재 WiFi를 사용할 계획입니다. 나는 앞으로 Bluetooth 4.0으로 이동할 것입니다.Android 기기에서 전력 효율적인 동영상 스트리밍

나는 프로토콜 옵션 (TCP, UDP, ...?) 및 비디오 코덱과 관련하여 고려해야 할 통찰력, 경험 및 의무 사항 및 기타 아이디어를 찾고 있습니다. 이미지 품질은 서버 측에서 얼굴 및 물체 감지, 인식 및 추적과 같은 컴퓨터 비전 알고리즘을 실행하기에 충분해야합니다. 가장 큰 관심사는 권력입니다. 스트리밍이 가능한 한 효율적으로 전력을 소비하도록하고 싶습니다. 더 많은 전력 효율성이 낮은 프레임 속도를 의미한다는 것을 알고 있습니다.

또한 비디오 프레임을 화면에 직접 표시하지 않고 전송하는 방법이 필요합니다.

감사합니다.

답변

2

기기에서 인코딩 또는 디코딩을 수행할지 여부는 언급하지 않았습니다.

몇 가지 팁

가 : UDP 특히 네트워크 상태를 악화에서 일반적으로 배고픈 적은 전력을 될 것입니다 : 당신이 순서는 말할 수 일반적으로 코덱의 측면에서 구글

에 대한 자세한 논문 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.134.5517&rep=rep1&type=pdf 확인을 참조하십시오 H264> MPEG4> H.263을 인코딩 및 디코딩에 모두 필요로합니다.

비트 레이트가 높을수록 디코딩에 더 많은 전력이 필요하지만 코덱 차이는 비트 레이트보다 커집니다. H.263을 사용하는 H.264 스트림과 동일한 품질을 얻으려면 더 높은 비트율이 필요하기 때문에이 말을 들려줍니다. 그러나 그 비트율에서의 h.263은 낮은 비트율에서의 H.264보다 낮은 전력을 소비해야합니다. 따라서 크로스 코덱을 적용하지 마십시오. 선택한 코덱에서 가장 낮은 비트율/프레임 속도를 사용할 수 있습니다.

매우 낮은 비트 전송률로 인해 인코더 작동이 어려워 져서 전력 소비가 증가 할 수 있습니다. 따라서 인코딩 비트 레이트는 낮아야하지만 엔코더가 너무 낮지는 않습니다. 즉, 연속적인 블록 형 스트림을 생성하지 않고 적절한 스트림 출력을 제공하는 적절한 비트 전송률을 선택하는 것입니다.

인코딩을 제어 할 수있는 경우 각 코덱 내에서 디코딩 성능을 제어 할 수도 있습니다. 다음 모두에 적용됩니다. 즉 디 블로킹, B 사진은 전원 요구 사항에 추가됩니다. 낮은 프로파일 [H.264의 기준선, MPEG4의 단순 프로파일 및 H.263의 기준선]은 인코딩 및 디코딩시 전력 요구량이 줄어 듭니다. 가능한 경우 MPEG4에서 4MV를 해제하십시오. 스트림을 디코딩하기가 더 간단하게 만듭니다. 또한 이들 각각은 품질에 영향을 미치므로 수용 가능한 품질을 찾아야합니다.

또한 전력 소비를 실제로 측정 할 수없는 경우 도구 세트를 아주 미세 조정해야하는지 잘 모르겠습니다. 낮은 프로필을 고집하면 충분합니다.

캡처하는 동안 비디오 화질이 나빠질수록 인코딩하는 동안 더 많은 전력이 필요합니다. 이렇게 밝게 빛난 영상은 암호로 고쳐 쓰는 더 적은 노력을 필요로하고, 낮은 빛 비디오는 더 많은 힘을 필요로한다.

동영상을 화면에 보낼 필요가 없습니다. 당신은 소켓을 통해 비디오를 수신하고 그 데이터로 무엇을 하든지 할 수 있습니다. 그건 너에게 달렸어. 디코딩하고 표시 할 필요가 없습니다.

편집 : 일반적으로

떨어져 코덱의 선택과 그 프로필을 내가 생각할 수있는 몇 가지를 추가하면 비디오 인코딩/디코딩 시스템의 전력 소비에 영향을 미치는 가장 큰 일이 될 것입니다.

가장 큰 차이는 장치 구성에서 비롯된 것일 수 있습니다. 장치의 특정 코덱에 대한 하드웨어 가속기를 사용하는 경우 다른 코덱을 사용하는 것이 소프트웨어 코덱보다 저렴할 수 있습니다. 따라서 H.264가 MPEG4보다 많은 전력을 필요로 할지도 모르지만 하드웨어에 H.264가 있으면 소프트웨어에서 MPEG4보다 저렴할 수 있습니다. 장치 하드웨어 기능을 확인하십시오.

비디오 해상도 문제. 더 작은 비디오는 인코딩하기가 저렴합니다. 더 작은 해상도에서 더 낮은 속도로 장치를 클럭 할 수 있습니다.

+0

자세한 답변을 보내 주셔서 감사합니다. UDP 사용에 대한 간단한 질문. Android 기기에서 한 번에 하나의 H264/H263 프레임을 가져 오는 쉬운 방법이 있습니까? 그렇지 않다면 포장하기 전에 비디오 스트림을 프레임으로 분할하여 UDP 패킷으로 보내야합니다. –

+0

전송하려면 rtp 프로토콜을 사용해야합니다. live555 또는 ffmpeg 당신을 위해 그것을 할 수 있습니다. Google for spydroid. – av501

관련 문제