1 / 34

About SOLO6010

2008.01.17 SoftLogic Doojin Han ( djhan@softlogic.co.kr ). About SOLO6010. 1. Video Matrix Function & Real Channel / Virtual Channel Page 3 2. MPEG4 encoding Page 10 3. SLF file format Page ??. Contents. 1. Video Matrix Function 2. Real Channel / Virtual Channel

Download Presentation

About SOLO6010

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. 2008.01.17 SoftLogic Doojin Han (djhan@softlogic.co.kr) About SOLO6010

  2. 1. Video Matrix Function & Real Channel / Virtual Channel Page 3 2. MPEG4 encoding Page 10 3. SLF file format Page ?? 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 SOLO6010 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 MPEG4 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 SOLO6010 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 MPEG4 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 SOLO6010 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 MPEG4 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 SOLO6010 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 MPEG4 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 SOLO6010 MPEG4 Encoder The virtual channel is copy of real channel (share same input), but can have different “Quality”, “FPS”, “GOP” value. The “Resolution” is same as real channel. Video channel Virtual channel stream POSSIBLE The picture size of virtual channel must be same as real channel. (D1 ≠ CIF) IMPOSSIBLE Real Channel D1 (704 x 480) 2 Channel QP 5 FPS 30 GOP 30 Virtual Channel D1 (704 x 480) 2 Channel QP 15 FPS 4 GOP 2 Real Channel D1 (704 x 480) 2 Channel QP 5 FPS 30 GOP 30 Virtual Channel CIF (352 x 240) 2 Channel QP 15 FPS 4 GOP 2 POSSIBLE SOLO6010 can encode D1 4channel in real-time. (D1 4 Ch. + D1 4 Ch. = D1 8 Ch. > D1 4 Ch.) IMPOSSIBLE Real Channel D1 (704 x 480) 2 Channel QP 5 FPS 30 GOP 30 Virtual Channel D1 (704 x 480) 2 Channel QP 15 FPS 4 GOP 2 Real Channel D1 (704 x 480) 4 Channel QP 5 FPS 30 GOP 30 Virtual Channel D1 (704 x 480) 4 Channel QP 15 FPS 4 GOP 2 FPS : Frames per second GOP : Group of picture (Key frame interval)

  9. 3. Video Matrix Function & Real Channel / Virtual Channel 1 / 1 SOLO6010 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 MPEG4 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 want to use less than 9 channels, use “Video Matrix Function” to make dual stream encoding. The “Video Matrix Function” is far more powerful than “Real Channel / Virtual Channel”, Because the “Video Matrix Function” can generate 2 encoded stream with different picture resolution. Please use “Real Channel / Virtual Channel”, if you use more than 8 channels and want to make dual stream. If you use SOLO6010-4, please read “About SOLO6010-4 Video Muxing and Encoding.ppt” document.

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

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

  12. 1-1. MPEG4 encoder core initialization 1 / 1 “MPEG4 encoder core initialization” Request “MPEG4 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 MPEG4 stream data from SOLO6010 1 / 1 This diagram is based on SOLO6010 Windows RDK Application & Driver encoding procedure. No request, Wait event “Get MPEG4 stream” OK 1 Interrupt Application Driver SOLO6010 ISR Thread M P E G 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 SOLO6010 SDRAM To PC system memory Get MPEG4 stream data from MPEG4 code buffer Get encoded frame information 7 MPEG4 code buffer overlap bug check Signal Event 6 3 Signal Event PC 8 MPEG4 stream file MPEG4 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. SOLO6010 SDRAM and register status during encoding 1 / 9 The “VE_MPEG4_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”, “MPEG4 Code Address Offset”. Most important information is “MPEG4 Code Address Offset”. This is the position of encoded frame in MPEG4 code buffer (SOLO6010 SDRAM) The “VE_STATUS11” register point to the index of the queue register (VE_MPEG4_QUE N) which has information about just encoded frame. (Please refer to 1-3. Get encoded MPEG4 stream data from SOLO6010) 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 SOLO6010 frame header (64 byte) is just copy of these register. SOLO6010 frame header consist of 48 byte MPEG4 video Encoder status register (12 registers) and 16 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_MPEG4_QUE N” register.

  17. Stage 2. Get 1st frame Stage 1. Encoding Start SOLO6010 SOLO6010 1-5. SOLO6010 SDRAM and register status during encoding 2 / 9 M P E G 4 c o d e b u f f e r M P E G 4 c o d e b u f f e r 1st frame

  18. Stage 2. Get 1st frame Stage 3. Get 2nd frame SOLO6010 SOLO6010 1-5. SOLO6010 SDRAM and register status during encoding 3 / 9 M P E G 4 c o d e b u f f e r 1st frame 1st frame M P E G 4 c o d e b u f f e r 2nd frame

  19. Stage 3. Get 2nd frame Stage 4. Get 15th frame SOLO6010 SOLO6010 1-5. SOLO6010 SDRAM and register status during encoding 4 / 9 M P E G 4 c o d e b u f f e r 1st frame 1st frame M P E G 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 SOLO6010 SOLO6010 1-5. SOLO6010 SDRAM and register status during encoding 5 / 9 1st frame M P E G 4 c o d e b u f f e r 1st frame M P E G 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 SOLO6010 SOLO6010 1-5. SOLO6010 SDRAM and register status during encoding 6 / 9 1st frame M P E G 4 c o d e b u f f e r 1st frame M P E G 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 SOLO6010 1-5. SOLO6010 SDRAM and register status during encoding 7 / 9 This is example of MPEG4 code buffer overlap. If the size of Nth frame 2/2 part is greater than 64KB, the frame data greater than 64KB in “Nth frame 2/2” part is overwritten by next frame data. (SOLO6010 External Memory Bug, For more information, read “SOLO6010 Bug Report” document.) 1st frame Nth frame 2/2 M P E G 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 SOLO6010 SOLO6010 1-5. SOLO6010 SDRAM and register status during encoding 8 / 9 1st frame Nth frame 2/2 M P E G 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 SOLO6010 SOLO6010 1-5. SOLO6010 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) MPEG4 Encoding 2. MPEG4 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 The picture size of virtual channel is same as real channel. Thus CAP_SCALE_E (0x0480 +(4 *N)) register is a flag register about virtual channel encoding on /off. 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 MPEG4 Frame Data Format MPEG4 Encoding 3. Encoded MPEG4 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 MPEG4 Frame Data Format 1 / 1 SOLO6010 MPEG4 Frame Header is just mirror of “MPEG4 Video Encoder Status Register”. 0x0640 : VE_STATUS0 0x0644 : VE_STATUS1 … 0x066c : VE_STATUS11 SOLO6010 MPEG4 Frame Header 64 Byte Encoder Motion Data (Optional) 256 Byte Frame Data (MPEG4 VOP Header + MPEG4 Frame Data) Variable Size The size of “Frame Data” is aligned size. The “MPEG4 Code Size” value in VE_STATUS11 or VE_STATUS0 is the true MPEG4 frame data size. The size of “Frame Data” is (“MPEG4 Code Size” +”Align Byte”) &(~(“Align Byte” -1)) Example) If “MPEG4 Code Size” is 35776 and “Align Byte” is 32, Frame Data = (35576 +0x20) &0xfffe0 MPEG4 Code Buffer Encoded Frame

  33. 1. About Encoder OSD MPEG4 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 … 512 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 512 pixels /8 (Byte) = 65536 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