SoftLogic SoftLogic 1 About SOLO6110 About SOLO6110 2009.10.28 SoftLogic Doojin Han ([email protected] )
Dec 24, 2015
SoftLogicSoftLogic2
ContentsContents
1. Video Matrix Function & Real Channel / Virtual Channel1. Video Matrix Function & Real Channel / Virtual Channel Page 3Page 3
2. H.264 encoding2. H.264 encoding Page 10Page 10
SoftLogicSoftLogic3
Video Matrix Function &Video Matrix Function &Real Channel / Virtual ChannelReal Channel / Virtual Channel
1. Video Matrix Function1. Video Matrix Function
2. Real Channel / Virtual Channel2. Real Channel / Virtual Channel
3. Video Matrix Function & Real Channel / Virtual Channel3. Video Matrix Function & Real Channel / Virtual Channel
SoftLogicSoftLogic4
Video Matrix
1. Video Matrix Function1. 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
0x0100 VI_CH_SWITCH0 Camera input number for
video input 0 to 5
0x0104 VI_CH_SWITCH1 Camera input number for
video input 6 to 11
0x0108 VI_CH_SWITCH2 Camera 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
EncodedStreamdata
SOLO6110
1 / 4
SoftLogicSoftLogic5
Video Matrix
1. Video Matrix Function – Example 11. 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
EncodedStreamdata
SOLO6110
2 / 4
Register value
0x0100 VI_CH_SWITCH0 [29:25] 5
[24:20] 4
[19:15] 3
[14:10] 2
[9:5] 1
[4:0] 0
0x0104 VI_CH_SWITCH1 [29:25] 11
[24:20] 10
[19:15] 9
[14:10] 8
[9:5] 7
[4:0] 6
0x0108 VI_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)
SoftLogicSoftLogic6
Video Matrix
1. Video Matrix Function – Example 21. 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
EncodedStreamdata
SOLO6110
3 / 4
Register value
0x0100 VI_CH_SWITCH0 [29:25] 10
[24:20] 11
[19:15] 12
[14:10] 13
[9:5] 14
[4:0] 15
0x0104 VI_CH_SWITCH1 [29:25] 4
[24:20] 5
[19:15] 6
[14:10] 7
[9:5] 8
[4:0] 9
0x0108 VI_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)
SoftLogicSoftLogic7
Video Matrix
1. Video Matrix Function – Example 31. 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
EncodedStreamdata
SOLO6110
4 / 4
Register value
0x0100 VI_CH_SWITCH0 [29:25] 0
[24:20] 4
[19:15] 3
[14:10] 2
[9:5] 1
[4:0] 0
0x0104 VI_CH_SWITCH1 [29:25] 4
[24:20] 4
[19:15] 4
[14:10] 3
[9:5] 2
[4:0] 1
0x0108 VI_CH_SWITCH2 [24:20] Any value
[19:15] 15
[14:10] 14
[9:5] 13
[4:0] 4
Video Channel 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Camera Input 0 1 2 3 4 0 1 2 3 4 4 4 4 13 14 15
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. ...
SoftLogicSoftLogic8
2. Real Channel / Virtual Channel2. 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 secondGOP : Group of picture (Key frame interval)
SOLO6110H.264
Encoder
Video channel
Real channel stream
Virtual channel stream
1 / 1
SoftLogicSoftLogic9
3. Video Matrix Function & Real Channel / Virtual Channel3. Video Matrix Function & Real Channel / Virtual Channel
Video MatrixH.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
SoftLogicSoftLogic10
H.264 EncodingH.264 Encoding
1. Encoding Procedure1. Encoding Procedure
2. H.264 Encoder Settings2. H.264 Encoder Settings
3. Encoded H.264 Frame Data Format3. Encoded H.264 Frame Data Format
4. About Encoder OSD4. About Encoder OSD
SoftLogicSoftLogic11
1. Encoding Procedure1. Encoding Procedure
1. H.264 encoder core initialization1. H.264 encoder core initialization
2. Start encoding2. Start encoding
3. Get encoded H.264 stream data from SOLO61103. Get encoded H.264 stream data from SOLO6110
4. End encoding4. End encoding
5. SOLO6110 SDRAM and register status during encoding5. SOLO6110 SDRAM and register status during encoding
H.264 EncodingH.264 Encoding
SoftLogicSoftLogic12
1-1. H.264 encoder core initialization1-1. H.264 encoder core initialization
1. Set H.264 Video Encoder Configuration Register
0x0610 VE_CFG0 Interrupt Mode
H.264 Code Buffer Size
H.264 Code Buffer Address
0x0614 VE_CFG1 Byte Align
Encoder Motion Flag
0x0630 VE_ATTR Byte Order
“H.264 encoder
core initialization”
OK
“H.264 encoder
core initialization”
Request
1 / 1
SoftLogicSoftLogic13
1-2. Start encoding1-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_INTL Picture Size
0x04C0 +(4 *N) CAP_INTERVAL FPS
0x0780 +(4 *N) VE_CH_QP Picture Quality
0x0800 +(4 *N) VE_CH_GOP Key Frame Interval
Virtual Channel
0x0500 +(4 *N) CAP_INTERVAL_E FPS
0x07C0 +(4 *N) VE_CH_QP_E Picture Quality
0x0840 +(4 *N) VE_CH_GOP_E Key Frame Interval
2. Set “CAP_SCALE” or “CAP_SCALE_E” register
to start encoding
Real Channel
0x0440 +(4 *N) CAP_SCALE Picture Size
Encoding Start / End
Virtual Channel
0x0480 +(4 *N) CAP_SCALE _E Picture Size
Encoding Start / End
N : Channel number
1 / 1
SoftLogicSoftLogic14
1-3. Get encoded H.264 stream data from SOLO61101-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
Driver SOLO6110
ISRThread
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
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
…
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
H264 code buffer
Last queue position (Index)
0x066C VE_STATUS11
Signal Event
Interrupt
Get encoded frame
information
PC
H.264 code bufferH.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
SoftLogicSoftLogic15
1-4. End encoding1-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_SCALE Picture Size
Encoding Start / End
Virtual Channel
0x0480 +(4 *N) CAP_SCALE _E Picture Size
Encoding Start / End
1 / 1
N : Channel number
SoftLogicSoftLogic16
1-5. SOLO6110 SDRAM and register status during encoding1-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 videoEncoder 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.
SoftLogicSoftLogic17
1-5. SOLO6110 SDRAM and register status during encoding1-5. SOLO6110 SDRAM and register status during encoding 2 / 9
SOLO6110
Stage 2. Get 1st frame
H.264 code buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_STATUS11
SOLO6110
Stage 1. Encoding Start
H.264 code buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_STATUS11
1st frame
SoftLogicSoftLogic18
1-5. SOLO6110 SDRAM and register status during encoding1-5. SOLO6110 SDRAM and register status during encoding 3 / 9
SOLO6110
Stage 2. Get 1st frame
H.264 code buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_STATUS11
1st frame
SOLO6110
Stage 3. Get 2nd frame
H.264 code buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_STATUS11
1st frame
2nd frame
SoftLogicSoftLogic19
1-5. SOLO6110 SDRAM and register status during encoding1-5. SOLO6110 SDRAM and register status during encoding 4 / 9
…
SOLO6110
Stage 3. Get 2nd frame
H.264 code buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_STATUS11
1st frame
2nd frame
SOLO6110
Stage 4. Get 15th frame
H.264 code buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_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
SoftLogicSoftLogic20
1-5. SOLO6110 SDRAM and register status during encoding1-5. SOLO6110 SDRAM and register status during encoding 5 / 9
SOLO6110
Stage 4. Get 15th frame
H.264 code buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_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 buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_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
SoftLogicSoftLogic21
1-5. SOLO6110 SDRAM and register status during encoding1-5. SOLO6110 SDRAM and register status during encoding 6 / 9
SOLO6110
Stage 5. Get 16th frame
H.264 code buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_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 buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_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
SoftLogicSoftLogic22
1-5. SOLO6110 SDRAM and register status during encoding1-5. SOLO6110 SDRAM and register status during encoding
SOLO6110
Stage 7. Get Nth frame
H.264 code buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_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
SoftLogicSoftLogic23
1-5. SOLO6110 SDRAM and register status during encoding1-5. SOLO6110 SDRAM and register status during encoding 8 / 9
SOLO6110
Stage 7. Get Nth frame
H.264 code buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_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
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_STATUS11
MPEG4 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
SoftLogicSoftLogic24
1-5. SOLO6110 SDRAM and register status during encoding1-5. SOLO6110 SDRAM and register status during encoding 9 / 9
SOLO6110
Stage 9. Encoding End
MPEG4 code buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_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 buffer
H.264 encoded frame
information queue
0x0A00 VE_H264_QUE 0
0x0A08 VE_H264_QUE 1
0x0A10 VE_H264_QUE 2
0x0A18 VE_H264_QUE 3
0x0A20 VE_H264_QUE 4
0x0A28 VE_H264_QUE 5
0x0A30 VE_H264_QUE 6
0x0A38 VE_H264_QUE 7
0x0A40 VE_H264_QUE 8
0x0A48 VE_H264_QUE 9
0x0A50 VE_H264_QUE 10
0x0A58 VE_H264_QUE 11
0x0A60 VE_H264_QUE 12
0x0A68 VE_H264_QUE 13
0x0A70 VE_H264_QUE 14
0x0A78 VE_H264_QUE 15
Last queue position (Index)
0x066C VE_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
SoftLogicSoftLogic25
2. H.264 Encoder Settings2. H.264 Encoder Settings
1. Encoder property and related 1. Encoder property and related
registersregisters
2. Picture Size (Picture Resolution)2. Picture Size (Picture Resolution)
3. FPS (Frames per second)3. FPS (Frames per second)
4. Picture Quality (QP)4. Picture Quality (QP)
5. Key Frame Interval (GOP)5. Key Frame Interval (GOP)
H.264 EncodingH.264 Encoding
SoftLogicSoftLogic26
2-1. Encoder property and related registers2-1. Encoder property and related registers
N : Channel Numberxxx_E : This means virtual channel property.
1 / 1
Property Name Range of value Property Name Related register (Address / Name)
Picture Size(Picture
Resolution)
NTSC PAL Picture Size(Picture
Resolution)
0x0440 +(4 *N) CAP_SCALE
Encoder Off 0 0 0x0480 +(4 *N) CAP_SCALE_E
0x0700 +(4 *N) VE_CH_INTL
D1 704 x 480 704 x 576
Half D1 704 x 240 704 x 288
CIF 352 x 240 352 x 288
FPS(Frames per
second)
NTSC PAL FPS(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) ~ 255 Key Frame Interval(GOP)
0x0800 +(4 *N) VE_CH_GOP
0x0840 +(4 *N) VE_CH_GOP_E
SoftLogicSoftLogic27
2-2. Picture Size (Picture Resolution)2-2. Picture Size (Picture Resolution)
Picture Size
Channel 0 Channel 1
…
Channel 15
0x0440 0x0700 0x0444 0x0704 0x047C 0x073C
CAP_SCALE VE_CH_INTL CAP_SCALE VE_CH_INTL CAP_SCALE VE_CH_INTL
Encoder Off 0 0 0 0 0 0
D1 9 1 9 1 9 1
Half D1 1 0 1 0 1 0
CIF 2 0 2 0 2 0
Property Name Range of value Property Name Related register (Address / Name)
Picture Size(Picture Resolution)
NTSC PAL Picture Size(Picture Resolution)
0x0440 +(4 *N) CAP_SCALE
Encoder Off 0 0 0x0480 +(4 *N) CAP_SCALE_E
0x0700 +(4 *N) VE_CH_INTL
D1 704 x 480 704 x 576
Half D1 704 x 240 704 x 288
CIF 352 x 240 352 x 288
1 / 1
You cannot change “Picture Size” while encoding. “Picture Size” can be set only when before encoding.
SoftLogicSoftLogic28
2-3. FPS (Frames per second)2-3. FPS (Frames per second)
Property Name Range of value Property Name Related register (Address / Name)
FPS(Frames per second)
NTSC PAL FPS(Frames per second)
0x04C0 +(4 *N) CAP_INTERVAL
60, 30, … 50, 25, … 0x0500 +(4 *N) CAP_INTERVAL_E
Picture Size FPS
NTSC
D1 30 /(CAP_INTERVAL +1)
Half D1, CIFIF (CAP_INTERVAL == 0 ) 60
ELSE 30 /CAP_INTERVAL
PAL
D1 25 /(CAP_INTERVAL +1)
Half D1, CIFIF (CAP_INTERVAL == 0 ) 50
ELSE 25 /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
NTSC PAL
D1 Half D1, CIF D1 Half D1, CIF
FPSCAP_INTERVAL
ORCAP_INTERVAL_E
FPSCAP_INTERVAL
ORCAP_INTERVAL_E
FPSCAP_INTERVAL
ORCAP_INTERVAL_E
FPSCAP_INTERVAL
ORCAP_INTERVAL_E
30 0 60 0 25 0 50 0
15 1 30 1 12.5 1 25 1
10 2 15 2 8.3 2 12.5 2
7.5 3 10 3 6.25 3 8.3 3
… … … … … … … …
0.25 119 0.5 60 0.25 99 0.5 50
0.2 149 0.25 120 0.2 124 0.25 100
0.1 299 0.2 150 0.1 249 0.2 125
CAP_INTERVAL for Real ChannelCAP_INTERVAL_E for Virtual Channel
SoftLogicSoftLogic29
2-4. Picture Quality (QP)2-4. Picture Quality (QP)
Property Name Range of value Property Name Related 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
PictureQuality
RealChannel 0
VirtualChannel 0
RealChannel 1
VirtualChannel 1
…
0x0780 0x07C0 0x0784 0x07C4
VE_CH_QP VE_CH_QP_E VE_CH_QP VE_CH_QP_E
3 (Best) 3 3 3 3
4 4 4 4 4
… … … … …
30 30 30 30 30
31 (Worst) 31 31 31 31
You can change “Picture Quality” while encoding.
1 / 1
SoftLogicSoftLogic30
2-5. Key Frame Interval (GOP)2-5. Key Frame Interval (GOP)
Property Name Range of value Property Name Related register (Address / Name)
Key Frame Interval(GOP)
1 (Every frame is Key frame) ~ 255 Key Frame Interval(GOP)
0x0800 +(4 *N) VE_CH_GOP
0x0840 +(4 *N) VE_CH_GOP_E
Key FrameInterval
RealChannel 0
VirtualChannel 0
RealChannel 1
VirtualChannel 1
…
0x0800 0x0840 0x0804 0x0844
VE_CH_GOP VE_CH_GOP_E VE_CH_GOP VE_CH_GOP_E
1 1 1 1 1
2 2 2 2 2
… … … … …
254 254 254 254 254
255 255 255 255 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
P P
I I I I I I I I I I I
PI P PI I P
I PP P IP P P
P P P P P P P P P P
I P I
I
PI P P P I PI PP P P
SoftLogicSoftLogic31
3. Encoded H.264 Frame Data Format3. Encoded H.264 Frame Data Format
1. Encoded H.264 Frame Data Format 1. Encoded H.264 Frame Data Format
H.264 EncodingH.264 Encoding
SoftLogicSoftLogic32
3. Encoded H.264 Frame Data Format3. Encoded H.264 Frame Data Format 1 / 1
MPEG4 code buffer
Encoded Frame
Encoded Frame
Encoded Frame
Encoded Frame
Encoded Frame
Encoded Frame
…
Encoded Frame
SOLO6110H.264
Frame Header
64 Byte
Frame Data(H.264VOP
Header+
H.264FrameData)
Variable Size
EncoderMotionData
(Optional)
256 Byte
H.264 Code Buffer
SOLO6110 H.264 Frame Header
Offset Data
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
SoftLogicSoftLogic33
4. About Encoder OSD4. About Encoder OSD
1. About Encoder OSD1. About Encoder OSD
H.264 EncodingH.264 Encoding
SoftLogicSoftLogic34
4. About Encoder OSD4. About Encoder OSD 1 / 1
0 1
2 3
4 5
6 7
32 33
34 35
36 37
38 39
8 9 40 41
28 29
30 31
60 61
62 63
…
…
…
2048 +0 2048 +1
2048 +2 2048 +3
2048 +4 2048 +5
2048 +6 2048 +7
2048 +32 2048 +33
2048 +34 2048 +35
2048 +36 2048 +37
2048 +38 2048 +39
2048 +8 2048 +9 2048 +40 2048 +41
2048 +28 2048 +29
2048 +30 2048 +31
2048 +60 2048 +61
2048 +62 2048 +63
…
…
8 pixels
32 pixels
1024 pixels
16 p
ixel
s
1024
pix
els
BYTE OSD_Buffer[65536]
0 1 2 3 … 65535
Bit / Pixel is 1.1024 pixels x 1024 pixels /8 (Byte) = 131072 ByteIn 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.