34
SoftLogic SoftLogic 1 About SOLO6110 About SOLO6110 2009.10.28 SoftLogic Doojin Han ([email protected] )

SoftLogic 1 About SOLO6110 2009.10.28 SoftLogic Doojin Han ([email protected])[email protected]

Embed Size (px)

Citation preview

SoftLogicSoftLogic1

About SOLO6110 About SOLO6110

2009.10.28SoftLogic

Doojin Han([email protected])

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.