Presentation is loading. Please wait.

Presentation is loading. Please wait.

SoftLogic 1 About SOLO6110 2009.10.28 SoftLogic Doojin Han

Similar presentations


Presentation on theme: "SoftLogic 1 About SOLO6110 2009.10.28 SoftLogic Doojin Han"— Presentation transcript:

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

2 SoftLogic 2 Contents 1. Video Matrix Function & Real Channel / Virtual ChannelPage 3 2. H.264 encodingPage 10

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

4 SoftLogic 4 Video Matrix 1. Video Matrix Function 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. Related register 0x0100VI_CH_SWITCH0Camera input number for video input 0 to 5 0x0104VI_CH_SWITCH1Camera input number for video input 6 to 11 0x0108VI_CH_SWITCH2Camera input number for video input 12 to 15 and Spot output H.264 encoder & JPEG encoder 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 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 Encoded Stream data SOLO6110 1 / 4

5 SoftLogic 5 Video Matrix 1. Video Matrix Function – Example 1 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. H.264 encoder & JPEG encoder 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 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 Encoded Stream data SOLO6110 2 / 4 Register value 0x0100VI_CH_SWITCH0[29:25]5 [24:20]4 [19:15]3 [14:10]2 [9:5]1 [4:0]0 0x0104VI_CH_SWITCH1[29:25]11 [24:20]10 [19:15]9 [14:10]8 [9:5]7 [4:0]6 0x0108VI_CH_SWITCH2[24:20]Any value [19:15]15 [14:10]14 [9:5]13 [4:0]12 Application setting (General Setting Dialog in Windows application)

6 SoftLogic 6 Video Matrix 1. Video Matrix Function – Example 2 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. H.264 encoder & JPEG encoder 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 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 Encoded Stream data SOLO6110 3 / 4 Register value 0x0100VI_CH_SWITCH0[29:25]10 [24:20]11 [19:15]12 [14:10]13 [9:5]14 [4:0]15 0x0104VI_CH_SWITCH1[29:25]4 [24:20]5 [19:15]6 [14:10]7 [9:5]8 [4:0]9 0x0108VI_CH_SWITCH2[24:20]Any value [19:15]0 [14:10]1 [9:5]2 [4:0]3 Application setting (General Setting Dialog in Windows application)

7 SoftLogic 7 Video Matrix 1. Video Matrix Function – Example 3 H.264 encoder & JPEG encoder 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 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 Encoded Stream data SOLO6110 4 / 4 Register value 0x0100VI_CH_SWITCH0[29:25]0 [24:20]4 [19:15]3 [14:10]2 [9:5]1 [4:0]0 0x0104VI_CH_SWITCH1[29:25]4 [24:20]4 [19:15]4 [14:10]3 [9:5]2 [4:0]1 0x0108VI_CH_SWITCH2[24:20]Any value [19:15]15 [14:10]14 [9:5]13 [4:0]4 Video Channel0123456789101112131415 Camera Input0123401234444131415 Application setting (General Setting Dialog in Windows application) 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....

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

9 SoftLogic 9 3. Video Matrix Function & Real Channel / Virtual Channel Video Matrix H.264 encoder & JPEG encoder 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 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 SOLO6110 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 “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. 1 / 1 Real Channel / Virtual Channel

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

11 SoftLogic 11 1. Encoding Procedure 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

12 SoftLogic 12 1-1. H.264 encoder core initialization 1. Set H.264 Video Encoder Configuration Register 0x0610VE_CFG0Interrupt Mode H.264 Code Buffer Size H.264 Code Buffer Address 0x0614VE_CFG1Byte Align Encoder Motion Flag 0x0630VE_ATTRByte Order “H.264 encoder core initialization” OK “H.264 encoder core initialization” Request 1 / 1

13 SoftLogic 13 1-2. Start encoding “Start encoding” OK “Start encoding” Request 1. Set H.264 Property Register except for “CAP_SCALE” or “CAP_SCALE_E” register Real Channel 0x0700 +(4 *N)VE_CH_INTLPicture Size 0x04C0 +(4 *N)CAP_INTERVALFPS 0x0780 +(4 *N)VE_CH_QPPicture Quality 0x0800 +(4 *N)VE_CH_GOPKey Frame Interval Virtual Channel 0x0500 +(4 *N)CAP_INTERVAL_EFPS 0x07C0 +(4 *N)VE_CH_QP_EPicture Quality 0x0840 +(4 *N)VE_CH_GOP_EKey Frame Interval 2. Set “CAP_SCALE” or “CAP_SCALE_E” register to start encoding Real Channel 0x0440 +(4 *N)CAP_SCALEPicture Size Encoding Start / End Virtual Channel 0x0480 +(4 *N)CAP_SCALE _EPicture Size Encoding Start / End N : Channel number 1 / 1

14 SoftLogic 14 1-3. Get encoded H.264 stream data from SOLO6110 “Get H.264 stream” OK No request, Wait event 1 / 1 Application Event Wait Get H.264 stream data from H.264 code buffer DriverSOLO6110 ISR Thread Encoded frame check by reading “Last queue position” H.264 code buffer overlap bug check Signal Event Event Wait Copy encoded frame in SOLO6110 SDRAM To PC system memory H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 … 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 H264 code bufferH264 code buffer Last queue position (Index) 0x066CVE_STATUS11 Signal Event Interrupt Get encoded frame information PC H.264 code buffer H.264 stream file P2M(DMA) transfer 1 2 3 4 6 7 This diagram is based on SOLO6110 Windows RDK Application & Driver encoding procedure. 5 8

15 SoftLogic 15 1-4. End encoding “End encoding” OK “End encoding” Request 1. Set “CAP_SCALE” or “CAP_SCALE_E” register as 0 Real Channel 0x0440 +(4 *N)CAP_SCALEPicture Size Encoding Start / End Virtual Channel 0x0480 +(4 *N)CAP_SCALE _EPicture Size Encoding Start / End 1 / 1 N : Channel number

16 SoftLogic 16 1-5. SOLO6110 SDRAM and register status during encoding 1 / 9 Stage 1. Encoding Start 2. Get 1st frame 3. Get 2nd frame … 4. Get 15th frame 5. Get 16th frame 6. Get 17th frame … 7. Get Nth frame (In case of H.264 code buffer overlap) 8. Get N+1th frame 9. Encoding End 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 SoftLogic 17 1-5. SOLO6110 SDRAM and register status during encoding 2 / 9 SOLO6110 Stage 2. Get 1st frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 SOLO6110 Stage 1. Encoding Start H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame

18 SoftLogic 18 1-5. SOLO6110 SDRAM and register status during encoding 3 / 9 SOLO6110 Stage 2. Get 1st frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame SOLO6110 Stage 3. Get 2nd frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame

19 SoftLogic 19 1-5. SOLO6110 SDRAM and register status during encoding 4 / 9 … SOLO6110 Stage 3. Get 2nd frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st frame 2nd frame SOLO6110 Stage 4. Get 15th frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st 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 SoftLogic 20 1-5. SOLO6110 SDRAM and register status during encoding 5 / 9 SOLO6110 Stage 4. Get 15th frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st 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 SOLO6110 Stage 5. Get 16th frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st 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 16th frame

21 SoftLogic 21 1-5. SOLO6110 SDRAM and register status during encoding 6 / 9 SOLO6110 Stage 5. Get 16th frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st 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 16th frame SOLO6110 Stage 6. Get 17th frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st 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 16th frame 17th frame

22 SoftLogic 22 1-5. SOLO6110 SDRAM and register status during encoding SOLO6110 Stage 7. Get Nth frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st 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 16th frame 17th frame Nth frame 1/2 Nth frame 2/2 … 7 / 9

23 SoftLogic 23 1-5. SOLO6110 SDRAM and register status during encoding 8 / 9 SOLO6110 Stage 7. Get Nth frame H.264 code bufferH.264 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st 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 16th frame 17th frame Nth frame 1/2 Nth frame 2/2 … SOLO6110 Stage 8. Get N +1th frame H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 MPEG4 code bufferMPEG4 code buffer 1st 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 16th frame 17th frame Nth frame 1/2 Nth frame 2/2 … N +1th frame

24 SoftLogic 24 1-5. SOLO6110 SDRAM and register status during encoding 9 / 9 SOLO6110 Stage 9. Encoding End MPEG4 code bufferMPEG4 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st 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 16th frame 17th frame Nth frame 1/2 Nth frame 2/2 … N +1th frame SOLO6110 Stage 8. Get N +1th frame MPEG4 code bufferMPEG4 code buffer H.264 encoded frame information queue 0x0A00VE_H264_QUE 0 0x0A08VE_H264_QUE 1 0x0A10VE_H264_QUE 2 0x0A18VE_H264_QUE 3 0x0A20VE_H264_QUE 4 0x0A28VE_H264_QUE 5 0x0A30VE_H264_QUE 6 0x0A38VE_H264_QUE 7 0x0A40VE_H264_QUE 8 0x0A48VE_H264_QUE 9 0x0A50VE_H264_QUE 10 0x0A58VE_H264_QUE 11 0x0A60VE_H264_QUE 12 0x0A68VE_H264_QUE 13 0x0A70VE_H264_QUE 14 0x0A78VE_H264_QUE 15 Last queue position (Index) 0x066CVE_STATUS11 1st 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 16th frame 17th frame Nth frame 1/2 Nth frame 2/2 … N +1th frame

25 SoftLogic 25 2. H.264 Encoder Settings 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

26 SoftLogic 26 2-1. Encoder property and related registers N : Channel Number xxx_E : This means virtual channel property. 1 / 1 Property NameRange of valueProperty NameRelated register (Address / Name) Picture Size (Picture Resolution) NTSCPALPicture Size (Picture Resolution) 0x0440 +(4 *N)CAP_SCALE Encoder Off000x0480 +(4 *N)CAP_SCALE_E 0x0700 +(4 *N)VE_CH_INTL D1704 x 480704 x 576 Half D1704 x 240704 x 288 CIF352 x 240352 x 288 FPS (Frames per second) NTSCPALFPS (Frames per second) 0x04C0 +(4 *N)CAP_INTERVAL 60, 30, …50, 25, …0x0500 +(4 *N)CAP_INTERVAL_E Picture Quality (QP) 3 (Best) ~ 31 (Worst) QP 1, 2 is not used. Picture Quality (QP) 0x0780 +(4 *N)VE_CH_QP 0x07C0 +(4 *N)VE_CH_QP_E Key Frame Interval (GOP) 1 (Every frame is Key frame) ~ 255Key Frame Interval (GOP) 0x0800 +(4 *N)VE_CH_GOP 0x0840 +(4 *N)VE_CH_GOP_E

27 SoftLogic 27 2-2. Picture Size (Picture Resolution) Picture Size Channel 0Channel 1 … Channel 15 0x04400x07000x04440x0704 0x047C0x073C CAP_SCALEVE_CH_INTLCAP_SCALEVE_CH_INTL CAP_SCALEVE_CH_INTL Encoder Off0000 00 D19191 91 Half D11010 10 CIF2020 20 Property NameRange of valueProperty NameRelated register (Address / Name) Picture Size (Picture Resolution) NTSCPALPicture Size (Picture Resolution) 0x0440 +(4 *N)CAP_SCALE Encoder Off000x0480 +(4 *N)CAP_SCALE_E 0x0700 +(4 *N)VE_CH_INTL D1704 x 480704 x 576 Half D1704 x 240704 x 288 CIF352 x 240352 x 288 1 / 1 You cannot change “Picture Size” while encoding. “Picture Size” can be set only when before encoding.

28 SoftLogic 28 2-3. FPS (Frames per second) Property NameRange of valueProperty NameRelated register (Address / Name) FPS (Frames per second) NTSCPALFPS (Frames per second) 0x04C0 +(4 *N)CAP_INTERVAL 60, 30, …50, 25, …0x0500 +(4 *N)CAP_INTERVAL_E Picture SizeFPS NTSC D130 /(CAP_INTERVAL +1) Half D1, CIF IF (CAP_INTERVAL == 0 )60 ELSE30 /CAP_INTERVAL PAL D125 /(CAP_INTERVAL +1) Half D1, CIF IF (CAP_INTERVAL == 0 )50 ELSE25 /CAP_INTERVAL 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). You can change “FPS” while encoding. 1 / 1 NTSCPAL D1Half D1, CIFD1Half D1, CIF FPS CAP_INTERVAL OR CAP_INTERVAL_E FPS CAP_INTERVAL OR CAP_INTERVAL_E FPS CAP_INTERVAL OR CAP_INTERVAL_E FPS CAP_INTERVAL OR CAP_INTERVAL_E 300600250500 15130112.51251 1021528.3212.52 7.531036.2538.33 …………………… 0.251190.5600.25990.550 0.21490.251200.21240.25100 0.12990.21500.12490.2125 CAP_INTERVAL for Real Channel CAP_INTERVAL_E for Virtual Channel

29 SoftLogic 29 2-4. Picture Quality (QP) Property NameRange of valueProperty NameRelated register (Address / Name) Picture Quality (QP) 3 (Best) ~ 31 (Worst) QP 1, 2 is not used. Picture Quality (QP) 0x0780 +(4 *N)VE_CH_QP 0x07C0 +(4 *N)VE_CH_QP_E Picture Quality Real Channel 0 Virtual Channel 0 Real Channel 1 Virtual Channel 1 … 0x07800x07C00x07840x07C4 VE_CH_QPVE_CH_QP_EVE_CH_QPVE_CH_QP_E 3 (Best)3333 44444 …………… 30 31 (Worst)31 You can change “Picture Quality” while encoding. 1 / 1

30 SoftLogic 30 2-5. Key Frame Interval (GOP) Property NameRange of valueProperty NameRelated register (Address / Name) Key Frame Interval (GOP) 1 (Every frame is Key frame) ~ 255Key Frame Interval (GOP) 0x0800 +(4 *N)VE_CH_GOP 0x0840 +(4 *N)VE_CH_GOP_E Key Frame Interval Real Channel 0 Virtual Channel 0 Real Channel 1 Virtual Channel 1 … 0x08000x08400x08040x0844 VE_CH_GOPVE_CH_GOP_EVE_CH_GOPVE_CH_GOP_E 11111 22222 …………… 254 255 You can change “Key Frame Interval” while encoding. 1 / 1 Key Frame Interval 1...I frame only 2...1 I frame + 1 P frame 3...1 I frame + 2 P frame 4…1 I frame + 3 P frame …... 255…1 I frame + 254 P frame I P P I I I PP IIIIIIIIIII PIPPIIP IPPPIPPP PPPPPPPPPP IPI I PIPPPIPIPPPP

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

32 SoftLogic 32 3. Encoded H.264 Frame Data Format 1 / 1 MPEG4 code bufferMPEG4 code buffer Encoded Frame … SOLO6110 H.264 Frame Header 64 Byte Frame Data (H.264 VOP Header + H.264 Frame Data) Variable Size Encoder Motion Data (Optional) 256 Byte H.264 Code Buffer SOLO6110 H.264 Frame Header OffsetData 00 (0x00)VE_STATUS0 04 (0x04)VE_STATUS1 08 (0x08)VE_STATUS2 12 (0x0c)VE_STATUS3 16 (0x10)VE_STATUS4 20 (0x14)VE_STATUS5 24 (0x18)VE_STATUS6 28 (0x1c)VE_STATUS7 32 (0x20)VE_STATUS8 36 (0x24)VE_STATUS9 40 (0x28)VE_STATUS10 44 (0x2c)VE_STATUS11 48 (0x30)VE_STATUS12 52 (0x34)dummy 56 (0x38)dummy 60 (0x3c)dummy Encoded Frame SOLO6110 H.264 Frame Header is just mirror of “H.264 Video Encoder Status Register”. 0x0640 : VE_STATUS0 0x0644 : VE_STATUS1 … 0x0670 : VE_STATUS12 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

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

34 SoftLogic 34 4. About Encoder OSD 1 / 1 01 23 45 67 3233 3435 3637 3839 894041 2829 3031 6061 6263 … … … 2048 +02048 +1 2048 +22048 +3 2048 +42048 +5 2048 +62048 +7 2048 +322048 +33 2048 +342048 +35 2048 +362048 +37 2048 +382048 +39 2048 +82048 +92048 +402048 +41 2048 +282048 +29 2048 +302048 +31 2048 +602048 +61 2048 +622048 +63 … … 8 pixels 32 pixels 1024 pixels 16 pixels 1024 pixels BYTE OSD_Buffer[65536] 0123…65535 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.


Download ppt "SoftLogic 1 About SOLO6110 2009.10.28 SoftLogic Doojin Han"

Similar presentations


Ads by Google