1 / 34

About SOLO6110

2009.10.28 SoftLogic Doojin Han ( djhan@softlogic.co.kr ). About SOLO6110. 1. Video Matrix Function & Real Channel / Virtual Channel Page 3 2. H.264 encoding Page 10. Contents. 1. Video Matrix Function 2. Real Channel / Virtual Channel

kemal
Télécharger la présentation

About SOLO6110

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2009.10.28 SoftLogic Doojin Han (djhan@softlogic.co.kr) About SOLO6110

  2. 1. Video Matrix Function & Real Channel / Virtual Channel Page 3 2. H.264 encoding Page 10 Contents

  3. 1. Video Matrix Function 2. Real Channel / Virtual Channel 3. Video Matrix Function & Real Channel / Virtual Channel Video Matrix Function &Real Channel / Virtual Channel

  4. 1. Video Matrix Function 1 / 4 SOLO6110 Camera Input 0 Camera Input 1 Camera Input 2 Camera Input 3 Camera Input 4 Camera Input 5 Camera Input 6 Camera Input 7 Camera Input 8 Camera Input 9 Camera Input 10 Camera Input 11 Camera Input 12 Camera Input 13 Camera Input 14 Camera Input 15 Video Matrix Video Channel 0 Video Channel 1 Video Channel 2 Video Channel 3 Video Channel 4 Video Channel 5 Video Channel 6 Video Channel 7 Video Channel 8 Video Channel 9 Video Channel 10 Video Channel 11 Video Channel 12 Video Channel 13 Video Channel 14 Video Channel 15 H.264 encoder & JPEG encoder Encoded Stream data The video matrix is a input switcher between camera input and video channel. You can assign any of camera input to any of video channel by setting video matrix. And you can assign 1 camera input to multiple video channels. There are some examples of video matrix setting in the next pages.

  5. 1. Video Matrix Function – Example 1 2 / 4 SOLO6110 Camera Input 0 Camera Input 1 Camera Input 2 Camera Input 3 Camera Input 4 Camera Input 5 Camera Input 6 Camera Input 7 Camera Input 8 Camera Input 9 Camera Input 10 Camera Input 11 Camera Input 12 Camera Input 13 Camera Input 14 Camera Input 15 Video Matrix Video Channel 0 Video Channel 1 Video Channel 2 Video Channel 3 Video Channel 4 Video Channel 5 Video Channel 6 Video Channel 7 Video Channel 8 Video Channel 9 Video Channel 10 Video Channel 11 Video Channel 12 Video Channel 13 Video Channel 14 Video Channel 15 H.264 encoder & JPEG encoder Encoded Stream data All camera inputs are connected to corresponding video channels. Encoding video channel 0 means encoding camera input 0. Encoding video channel 1 means encoding camera input 1. … Encoding video channel 15 means encoding camera input 15. Application setting (General Setting Dialog in Windows application)

  6. 1. Video Matrix Function – Example 2 3 / 4 SOLO6110 Camera Input 0 Camera Input 1 Camera Input 2 Camera Input 3 Camera Input 4 Camera Input 5 Camera Input 6 Camera Input 7 Camera Input 8 Camera Input 9 Camera Input 10 Camera Input 11 Camera Input 12 Camera Input 13 Camera Input 14 Camera Input 15 Video Matrix Video Channel 0 Video Channel 1 Video Channel 2 Video Channel 3 Video Channel 4 Video Channel 5 Video Channel 6 Video Channel 7 Video Channel 8 Video Channel 9 Video Channel 10 Video Channel 11 Video Channel 12 Video Channel 13 Video Channel 14 Video Channel 15 H.264 encoder & JPEG encoder Encoded Stream data All camera inputs are connected to reverse numbered video channels. Encoding video channel 0 means encoding camera input 15. Encoding video channel 1 means encoding camera input 14. … Encoding video channel 15 means encoding camera input 0. Application setting (General Setting Dialog in Windows application)

  7. 1. Video Matrix Function – Example 3 4 / 4 SOLO6110 Camera Input 0 Camera Input 1 Camera Input 2 Camera Input 3 Camera Input 4 Camera Input 5 Camera Input 6 Camera Input 7 Camera Input 8 Camera Input 9 Camera Input 10 Camera Input 11 Camera Input 12 Camera Input 13 Camera Input 14 Camera Input 15 Video Matrix Video Channel 0 Video Channel 1 Video Channel 2 Video Channel 3 Video Channel 4 Video Channel 5 Video Channel 6 Video Channel 7 Video Channel 8 Video Channel 9 Video Channel 10 Video Channel 11 Video Channel 12 Video Channel 13 Video Channel 14 Video Channel 15 H.264 encoder & JPEG encoder Encoded Stream data Encoding video channel 0 means encoding camera input 0. Encoding video channel 5 means encoding camera input 0. -You can generate 2 encoded streams from camera input 0 by encoding video channel 0 and 5. And 2 channel can be encoded with different encoding settings. Encoding video channel 12 means encoding camera input 4. ... Application setting (General Setting Dialog in Windows application)

  8. 2. Real Channel / Virtual Channel 1 / 1 Real channel stream SOLO6110 H.264 Encoder The virtual channel is copy of real channel (share same input), but can have different “Image Size”, “Quality”, “FPS”, “GOP” value. Video channel Virtual channel stream FPS : Frames per second GOP : Group of picture (Key frame interval)

  9. 3. Video Matrix Function & Real Channel / Virtual Channel 1 / 1 SOLO6110 Camera Input 0 Camera Input 1 Camera Input 2 Camera Input 3 Camera Input 4 Camera Input 5 Camera Input 6 Camera Input 7 Camera Input 8 Camera Input 9 Camera Input 10 Camera Input 11 Camera Input 12 Camera Input 13 Camera Input 14 Camera Input 15 Video Matrix Video Channel 0 Video Channel 1 Video Channel 2 Video Channel 3 Video Channel 4 Video Channel 5 Video Channel 6 Video Channel 7 Video Channel 8 Video Channel 9 Video Channel 10 Video Channel 11 Video Channel 12 Video Channel 13 Video Channel 14 Video Channel 15 H.264 encoder & JPEG encoder Real Channel 0 / Virtual Channel 0 stream Real Channel 1 / Virtual Channel 1 stream Real Channel 2 / Virtual Channel 2 stream Real Channel 3 / Virtual Channel 3 stream Real Channel 4 / Virtual Channel 4 stream Real Channel 5 / Virtual Channel 5 stream Real Channel 6 / Virtual Channel 6 stream Real Channel 7 / Virtual Channel 7 stream Real Channel 8 / Virtual Channel 8 stream Real Channel 9 / Virtual Channel 9 stream Real Channel 10 / Virtual Channel 10 stream Real Channel 11 / Virtual Channel 11 stream Real Channel 12 / Virtual Channel 12 stream Real Channel 13 / Virtual Channel 13 stream Real Channel 14 / Virtual Channel 14 stream Real Channel 15 / Virtual Channel 15 stream Real Channel / Virtual Channel “Video Matrix Function” and “Real Channel / Virtual Channel” are independent of each other. The “Video Matrix Function” reside between camera inputs and video channels. And the “Real Channel / Virtual Channel” reside between video channels and encoded streams. You can use video matrix function as virtual channel. If you use SOLO6110-4, please read “About SOLO6110-4 Video Muxing and Encoding.ppt” document.

  10. 1. Encoding Procedure 2. H.264 Encoder Settings 3. Encoded H.264 Frame Data Format 4. About Encoder OSD H.264 Encoding

  11. 1. H.264 encoder core initialization 2. Start encoding 3. Get encoded H.264 stream data from SOLO6110 4. End encoding 5. SOLO6110 SDRAM and register status during encoding H.264 Encoding 1. Encoding Procedure

  12. 1-1. H.264 encoder core initialization 1 / 1 “H.264 encoder core initialization” Request “H.264 encoder core initialization” OK

  13. 1-2. Start encoding 1 / 1 “Start encoding” Request “Start encoding” OK N : Channel number

  14. 1-3. Get encoded H.264 stream data from SOLO6110 1 / 1 This diagram is based on SOLO6110 Windows RDK Application & Driver encoding procedure. No request, Wait event “Get H.264 stream” OK 1 Interrupt Application Driver SOLO6110 ISR Thread H 2 6 4 c o d e b u f f e r 2 Event Wait Encoded frame check by reading “Last queue position” Event Wait 4 Copy encoded frame in SOLO6110 SDRAM To PC system memory Get H.264 stream data from H.264 code buffer Get encoded frame information 7 H.264 code buffer overlap bug check Signal Event 6 3 Signal Event PC 8 H.264 stream file H.264 code buffer 5 P2M(DMA) transfer

  15. 1-4. End encoding 1 / 1 “End encoding” Request “End encoding” OK N : Channel number

  16. 1-5. SOLO6110 SDRAM and register status during encoding 1 / 9 The “VE_H264_QUE N” registers save encoded frame information. The number of these register is 16. This means that unless you miss 16 or more interrupt, you can get all encoded frame. This register has information about “Motion Flag”, “VOP Type”, “Channel”, “H.264 Code Address Offset”. Most important information is “H.264 Code Address Offset”. This is the position of encoded frame in H.264 code buffer (SOLO6110 SDRAM) The “VE_STATUS11” register point to the index of the queue register (VE_H264_QUE N) which has information about just encoded frame. (Please refer to 1-3. Get encoded H.264 stream data from SOLO6110) The “VE_STATUS0 ~ VE_STATUS11” register always have information of just encoded frame. But you need not check this register value except “VE_STATUS11” because SOLO6110 frame header (64 byte) is just copy of these register. SOLO6110 frame header consist of 52 byte H.264 video Encoder status register (13 registers) and 12 byte garbage. Thus the only information you need is position and size of encoded frame. This information can be taken from “VE_STATUS11” and “VE_H264_QUE N” register.

  17. Stage 2. Get 1st frame Stage 1. Encoding Start SOLO6110 SOLO6110 1-5. SOLO6110 SDRAM and register status during encoding 2 / 9 H . 2 6 4 c o d e b u f f e r H . 2 6 4 c o d e b u f f e r 1st frame

  18. Stage 2. Get 1st frame Stage 3. Get 2nd frame SOLO6110 SOLO6110 1-5. SOLO6110 SDRAM and register status during encoding 3 / 9 H . 2 6 4 c o d e b u f f e r 1st frame 1st frame H . 2 6 4 c o d e b u f f e r 2nd frame

  19. Stage 3. Get 2nd frame Stage 4. Get 15th frame SOLO6110 SOLO6110 1-5. SOLO6110 SDRAM and register status during encoding 4 / 9 H . 2 6 4 c o d e b u f f e r 1st frame 1st frame H . 2 6 4 c o d e b u f f e r 2nd frame 2nd frame 3rd frame 4th frame 5th frame 6th frame 7th frame 8th frame 9th frame 10th frame … 11th frame 12th frame 13th frame 14th frame 15th frame

  20. Stage 4. Get 15th frame Stage 5. Get 16th frame SOLO6110 SOLO6110 1-5. SOLO6110 SDRAM and register status during encoding 5 / 9 1st frame H . 2 6 4 c o d e b u f f e r 1st frame H . 2 6 4 c o d e b u f f e r 2nd frame 2nd frame 3rd frame 3rd frame 4th frame 4th frame 5th frame 5th frame 6th frame 6th frame 7th frame 7th frame 8th frame 8th frame 9th frame 9th frame 10th frame 10th frame 11th frame 11th frame 12th frame 12th frame 13th frame 13th frame 14th frame 14th frame 15th frame 15th frame 16th frame

  21. Stage 5. Get 16th frame Stage 6. Get 17th frame SOLO6110 SOLO6110 1-5. SOLO6110 SDRAM and register status during encoding 6 / 9 1st frame H . 2 6 4 c o d e b u f f e r 1st frame H . 2 6 4 c o d e b u f f e r 2nd frame 2nd frame 3rd frame 3rd frame 4th frame 4th frame 5th frame 5th frame 6th frame 6th frame 7th frame 7th frame 8th frame 8th frame 9th frame 9th frame 10th frame 10th frame 11th frame 11th frame 12th frame 12th frame 13th frame 13th frame 14th frame 14th frame 15th frame 15th frame 16th frame 16th frame 17th frame

  22. Stage 7. Get Nth frame SOLO6110 1-5. SOLO6110 SDRAM and register status during encoding 7 / 9 1st frame Nth frame 2/2 H . 2 6 4 c o d e b u f f e r 2nd frame 3rd frame 4th frame 5th frame 6th frame 7th frame 8th frame 9th frame 10th frame 11th frame 12th frame 13th frame 14th frame 15th frame 16th frame 17th frame … Nth frame 1/2

  23. Stage 7. Get Nth frame Stage 8. Get N +1th frame SOLO6110 SOLO6110 1-5. SOLO6110 SDRAM and register status during encoding 8 / 9 1st frame Nth frame 2/2 H . 2 6 4 c o d e b u f f e r Nth frame 2/2 1st frame M P E G 4 c o d e b u f f e r N +1th frame 2nd frame 2nd frame 3rd frame 3rd frame 4th frame 4th frame 5th frame 5th frame 6th frame 6th frame 7th frame 7th frame 8th frame 8th frame 9th frame 9th frame 10th frame 10th frame 11th frame 11th frame 12th frame 12th frame 13th frame 13th frame 14th frame 14th frame 15th frame 15th frame 16th frame 16th frame 17th frame 17th frame … … Nth frame 1/2 Nth frame 1/2

  24. Stage 9. Encoding End Stage 8. Get N +1th frame SOLO6110 SOLO6110 1-5. SOLO6110 SDRAM and register status during encoding 9 / 9 Nth frame 2/2 1st frame M P E G 4 c o d e b u f f e r 1st frame Nth frame 2/2 M P E G 4 c o d e b u f f e r N +1th frame N +1th frame 2nd frame 2nd frame 3rd frame 3rd frame 4th frame 4th frame 5th frame 5th frame 6th frame 6th frame 7th frame 7th frame 8th frame 8th frame 9th frame 9th frame 10th frame 10th frame 11th frame 11th frame 12th frame 12th frame 13th frame 13th frame 14th frame 14th frame 15th frame 15th frame 16th frame 16th frame 17th frame 17th frame … … Nth frame 1/2 Nth frame 1/2

  25. 1. Encoder property and related registers 2. Picture Size (Picture Resolution) 3. FPS (Frames per second) 4. Picture Quality (QP) 5. Key Frame Interval (GOP) H.264 Encoding 2. H.264 Encoder Settings

  26. 2-1. Encoder property and related registers 1 / 1 N : Channel Number xxx_E : This means virtual channel property.

  27. 2-2. Picture Size (Picture Resolution) 1 / 1 You cannot change “Picture Size” while encoding. “Picture Size” can be set only when before encoding.

  28. 2-3. FPS (Frames per second) 1 / 1 CAP_INTERVAL is same as Skipped Frame Number. CAP_INTERVAL == 0 means no frame is skipped. (NTSC D1 30 frames, PAL D1 25 frames, …) CAP_INTERVAL == 1 means 1 frame is skipped. (Every second frame is encoded.) CAP_INTERVAL == 2 means 2 frame is skipped. (Every third frame is encoded.) … D1 is frame picture, the max. frame rate is 30 (25). And other picture size (Half D1, CIF) is field picture, the max. frame rate is 60 (50). CAP_INTERVAL for Real Channel CAP_INTERVAL_E for Virtual Channel You can change “FPS” while encoding.

  29. 2-4. Picture Quality (QP) 1 / 1 You can change “Picture Quality” while encoding.

  30. 2-5. Key Frame Interval (GOP) 1 / 1 I I I I I I I I I I I I I P I P I P I P I P I P I P P I P P I P P I P P I P P P I P P P I P P P I P P P P P P P P P P P You can change “Key Frame Interval” while encoding.

  31. 1. Encoded H.264 Frame Data Format H.264 Encoding 3. Encoded H.264 Frame Data Format

  32. M P E G 4 c o d e b u f f e r Encoded Frame Encoded Frame Encoded Frame Encoded Frame Encoded Frame Encoded Frame Encoded Frame … 3. Encoded H.264 Frame Data Format 1 / 1 SOLO6110 H.264 Frame Header is just mirror of “H.264 Video Encoder Status Register”. 0x0640 : VE_STATUS0 0x0644 : VE_STATUS1 … 0x0670 : VE_STATUS12 SOLO6110 H.264 Frame Header 64 Byte Encoder Motion Data (Optional) 256 Byte Frame Data (H.264 VOP Header + H.264 Frame Data) Variable Size The size of “Frame Data” is aligned size. The “H.264 Code Size” value in VE_STATUS11 or VE_STATUS0 is the true H.264 frame data size. The size of “Frame Data” is (“H.264 Code Size” +”Align Byte”) &(~(“Align Byte” -1)) Example) If “H.264 Code Size” is 35776 and “Align Byte” is 32, Frame Data = (35576 +0x20) &0xfffe0 H.264 Code Buffer Encoded Frame

  33. 1. About Encoder OSD H.264 Encoding 4. About Encoder OSD

  34. 0 1 2 3 … 65535 4. About Encoder OSD 1 / 1 1024 pixels 32 pixels 8 pixels 0 1 32 33 … 2 3 34 35 … 4 5 36 37 6 7 38 39 16 pixels 8 9 40 41 BYTE OSD_Buffer[65536] 28 29 60 61 30 31 62 63 2048 +0 2048 +1 2048 +32 2048 +33 … 1024 pixels 2048 +2 2048 +3 2048 +34 2048 +35 … 2048 +4 2048 +5 2048 +36 2048 +37 2048 +6 2048 +7 2048 +38 2048 +39 … 2048 +8 2048 +9 2048 +40 2048 +41 Bit / Pixel is 1. 1024 pixels x 1024 pixels /8 (Byte) = 131072 Byte In PAL video system, size of OSD image is less than size of PAL image (704 x 576). Thus, if you want to display OSD at bottom line of PAL image, you should change encoder OSD position value. In NTSC video system, there is no problem in encoder OSD displaying. 2048 +28 2048 +29 2048 +60 2048 +61 2048 +30 2048 +31 2048 +62 2048 +63

More Related