Scene

Change

Detection

in

a

MPEG

Compressed

Video

Sequence

Jianhao

Meng

Yujen

Juan

Shih-Fu

Chang

Department

of

Electrical

Engineering

Center

for

Telecommunication

Research

Columbia

University

Hitachi

America

Ltd.

Abstract

An

algorithm

is

proposed

for

the

detection

of

abrupt

scene

change

and

special

editing

effects

such

as

dissolve

in

a

compressed

MPEG/MPEG

bitstream

with

minimal

decoding

of

the

bitstream

Scene

changes

are

easily

detected

with

DCT

DC

coefficients

and

motion

vectors

By

performing

minimal

decoding

on

the

compressed

bitstream

the

processing

speed

for

searching

a

video

database

of

compressed

image

sequences

can

be

dramatically

improved

In

addition

the

algorithm

may

also

be

applied

in

video

scene

browsing

and

video

indexing

as

well

Introduction

Information

databases

have

evolved

from

simple

text

to

multimedia

with

video

audio

and

text

The

query

mechanism

for

a

video

database

is

similar

in

concept

compared

to

a

textual

database

Object

searching

is

analogous

to

word

searching

scene

browsing

is

similar

to

paragraph

searching

video

indexing

is

comparable

to

text

indexing

or

bookmarking

However

the

implementation

for

video

content

based

searching

is

very

different

and

much

more

difficult

than

the

query

mechanism

for

a

textual

database

Scene

change

detection

technique

can

often

be

applied

for

scene

browsing

and

automatic

and

intelligent

video

indexing

of

video

sequences

for

video

databases

Once

individual

video

scenes

are

identified

we

can

use

contentbased

indexing

mechanisms

-LRB-

such

as

indexing

by

object

texture

shape

color

motion

-RRB-

to

index

and

query

image

contents

in

each

video

scene

-LSB-

-RSB-

Due

to

the

large

amount

of

data

video

sequences

are

often

compressed

for

efficient

transmission

or

storage

on-line

However

most

of

current

scene

change

detection

techniques

operates

on

uncompressed

video

sequence

Therefore

these

compressed

video

sequences

have

to

go

through

computationally

intensive

processing

steps

to

be

de-compressed

first

before

any

scene

change

detection

algorithms

can

be

applied

Manipulation

of

compressed

video

sequences

directly

in

the

compressed

domain

has

been

proposed

in

-LSB-

-RSB-

This

paper

presents

an

approach

to

process

a

compressed

digital

video

bitstream

to

detect

scene

changes

In

the

MPEG

standard

frames

of

video

are

compressed

using

motion

compensation

and

discrete

cosine

transform

-LRB-

DCT

-RRB-

By

examining

the

DCT

DC

coefficients

and

the

motion

vectors

in

the

MPEG

bitstream

the

algorithm

can

detect

scene

changes

and

special

editing

effects

such

as

dissolve

in

the

bitstream

without

fully

decompressing

the

bitstream

This

work

is

part

of

the

effort

of

implementing

a

multimedia

server

with

advanced

content-based

image

query

capability

in

the

Image

and

Advanced

TV

Lab

in

Columbia

University

IS&T

SPIE

Symposium

Proceedings

Vol

February

San

Jose

California

Previous

Approaches

Most

of

algorithms

used

today

to

detect

scene

changes

are

performed

on

the

pixel

domain

Nagasaka

and

Tanaka

-LSB-

-RSB-

suggested

a

few

measures

to

detect

scene

changes

The

simplest

measures

take

the

sum

of

absolute

pixel-wise

luminance

differences

between

frames

of

image

This

approach

can

be

extended

to

calculating

the

sum

of

absolute

pixel-wise

color

-LRB-

all

three

R

G

B

components

considered

-RRB-

differences

for

better

performance

and

easier

detection

However

all

other

better

approaches

suggested

in

-LSB-

-RSB-

operate

on

the

histograms

of

the

frames

The

best

approach

found

was

to

take

the

test

of

color

histograms

between

frames

The

test

is

essentially

the

sum

of

the

squares

of

the

bin-wise

color

histogram

differences

normalized

to

one

of

the

frames

used

When

a

scene

change

occurs

the

color

composition

between

frames

is

expected

to

be

very

different

Hence

the

histogram

differences

between

the

frames

will

be

large

Scene

changes

can

be

detected

by

examining

the

histogram

differences

for

peaks

To

detect

dissolve

Zhang

-LSB-

-RSB-

used

the

twin

comparison

technique

to

detect

the

accumulated

frame

difference

during

a

dissolve

region

and

Alattar

-LSB-

-RSB-

used

the

second

order

of

the

frame

variance

both

performed

in

pixel

domain

Since

the

color

histogram

and

the

variance

are

gathered

in

the

pixel

domain

it

requires

a

compressed

picture

to

be

decompressed

first

For

the

international

MPEG

standard

-LSB-

-RSB-

this

requires

computationally

intensive

processing

steps

such

as

Huffman

code

decoding

inverse

DPCM

inverse

quantization

inverse

discrete

cosine

transform

-LRB-

IDCT

-RRB-

and

motion

compensation

to

reconstruct

an

image

frame

in

the

pixel

domain

MPEG

Compression

Standard

The

MPEG

group

defines

the

syntax

for

a

compressed

bitstream

MPEG

is

a

defined

international

standard

-LRB-

ISO

-RRB-

for

a

compressed

video

bit-rate

of

about

Mbit/sec

extends

the

MPEG

standard

in

many

ways

including

higher

bit-rate

and

more

powerful

and

efficient

compression

algorithms

such

as

different

motion

compensation

modes

In

order

to

achieve

high

compression

ratio

the

MPEG

algorithm

uses

many

different

techniques

to

reduce

temporal

and

spatial

redundancy

in

a

video

sequence

To

reduce

temporal

redundancy

predictive

coding

via

motion

compensation

is

used

Each

macroblock

consisting

of

blocks

in

a

frame

is

matched

as

closely

as

possible

to

another

macroblock

in

a

frame

in

the

past

-LRB-

forward

motion

prediction

-RRB-

or

a

frame

in

the

past

or

the

future

-LRB-

bi-directional

motion

prediction

-RRB-

Once

a

matching

block

is

found

a

motion

vector

indicating

the

type

and

the

distance

is

sent

in

the

bitstream

If

no

good

matching

block

can

be

found

the

macroblock

can

simply

be

intra-coded

without

any

motion

compensation

The

blocks

of

residual

error

after

motion

compensation

and

the

blocks

without

motion

compensation

are

further

processed

with

DCT

using

blocks

The

DCT

coefficients

are

quantized

and

run-length

encoded

to

further

compress

the

information

predictionG

roup

of

Picture

-LRB-

GOP

-RRB-

B

ackward

Prediction

Forward

Prediction

FIGURE

A

Typical

MPEG

Frame

Sequence

in

Display

When

the

video

sequence

is

compressed

the

frames

are

compressed

in

groups

-LRB-

GOP

group

of

pictures

-RRB-

Within

each

group

the

first

frame

is

an

I-frame

An

I-frame

is

completely

intra-coded

i.e.

no

motion

compensation

is

performed

when

the

frame

is

compressed

A

P-frame

is

predictively

coded

with

motion

compensation

only

from

past

I

or

P

frames

Together

I

and

P

frames

are

called

anchor

frames

They

are

used

as

basis

for

motion

compensation

in

bi-directionally

coded

B-frames

A

typical

sequence

of

frames

would

be

IBBPBBPBBPBBPBBIBBP

and

so

on

Figure

illustrates

a

typical

MPEG

sequence

of

frames

with

a

GOP

size

of

frames

and

B-frames

between

anchor

frames

Since

a

B-frame

requires

the

closest

anchor

frames

around

it

to

be

decoded

the

sequence

of

frames

would

be

stored

-LRB-

or

transmitted

-RRB-

as

IPBBPBBPBBPBBIBBP

and

so

on

as

shown

in

Figure

The

transmit

order

is

different

from

the

display

order

in

that

the

anchor

frames

will

be

received

before

the

B-frames

that

are

to

be

displayed

before

the

anchor

frames

to

be

displayed

Direct

Scene

Change

Detection

in

a

MPEG

bitstream

The

following

scene

change

detection

algorithm

is

formed

based

on

the

statistical

characteristics

of

the

DCT

DC

values

and

motion

vectors

in

MPEG

bitstream

The

algorithm

detects

suspected

scene

change

on

I

P

B-frames

separately

first

then

a

final

decision

will

be

made

to

select

the

true

scene

changes

Detection

Algorithm

for

Anchor

Frames

Since

the

anchor

frames

are

received

-LRB-

or

accessed

-RRB-

out

of

order

-LRB-

before

the

B-frames

that

are

displayed

first

-RRB-

one

may

have

to

examine

frames

in

a

later

transmitted

order

but

earlier

in

display

order

to

determine

the

location

of

the

scene

change

For

example

if

a

scene

change

occurs

on

a

B-frame

-LRB-

frame

in

Figure

-RRB-

then

it

is

very

likely

that

the

first

anchor

frame

following

the

scene

change

-LRB-

frame

in

Figure

-RRB-

will

have

the

characteristics

of

an

anchor

frame

with

a

scene

change

However

this

anchor

frame

will

be

accessed

first

in

the

compressed

bitstream

The

decision

on

whether

the

scene

change

occurs

on

the

anchor

frame

should

be

delayed

until

all

of

the

frames

in

earlier

display

order

-LRB-

frames

and

-RRB-

have

been

received

and

examined

In

addition

if

a

scene

change

occurs

on

a

B-frame

-LRB-

say

frame

-RRB-

then

it

is

very

likely

that

all

B-frames

following

the

B-frame

after

the

scene

change

-LRB-

frame

-RRB-

will

have

very

similar

characteristics

of

a

B-frame

with

a

scene

change

These

B

frames

should

not

be

identified

as

locations

of

the

scene

change

This

eliminate

the

possibility

of

detecting

more

than

scene

changes

in

a

series

of

B-frames

However

in

practical

encoding

the

number

of

B-frames

between

anchor

frames

are

usually

kept

small

-LRB-

or

-RRB-

for

picture

quality

considerations

In

addition

practical

video

sequences

generally

do

not

have

multiple

scene

changes

within

such

a

small

frame

spacing

Therefore

this

kind

of

situations

are

very

rare

Even

if

this

occurs

examinations

of

subsequent

frames

will

reveal

a

scene

change

as

well

Even

though

the

scene

change

may

be

detected

in

this

instance

on

the

wrong

frame

it

may

still

be

acceptable

from

a

practical

application

point

of

view

FIGURE

A

MPEG

Frame

Sequence

in

Transmit

or

Storage

Similarly

when

a

scene

change

occurs

between

consecutive

I-frames

the

later

I-frame

will

likely

meet

the

criteria

for

a

scene

change

This

second

I-frame

should

also

be

rejected

as

a

scene

change

location

This

eliminates

the

possibility

of

detecting

more

than

scene

change

between

consecutive

I-frames

with

the

last

scene

change

occurring

on

the

second

I-frame

Again

the

likelihood

of

this

situation

is

small

with

a

typical

GOP

size

of

or

-LRB-

approximately

to

seconds

in

time

when

the

frame

rate

is

frames

sec

-RRB-

and

the

scene

change

may

still

be

detected

subsequently

on

the

wrong

frame

Detection

Algorithm

for

I-frames

When

a

scene

change

occurs

on

an

I-frame

there

is

very

little

encoded

data

-LRB-

such

as

residual

errors

or

motion

vectors

-RRB-

that

could

indicate

this

since

an

I-frame

is

completely

intra-coded

Therefore

the

previous

I-frame

is

needed

to

determine

whether

a

scene

change

occurs

When

a

scene

change

occurs

on

an

I

frame

the

picture

color

brightness

would

be

quite

different

from

the

previous

scene

sequence

In

the

pixel

domain

the

color

histogram

will

be

ideal

to

indicate

such

difference

In

the

frequency

-LRB-

DCT

-RRB-

domain

the

DCT

DC

coefficients

will

contain

such

information

since

the

DC

coefficient

is

essentially

the

average

of

all

pixel

values

within

the

block

To

detect

a

scene

change

that

occurs

on

an

I-frame

the

color

histograms

-LRB-

the

luminance

and

the

chrominance

components

i.e.YUV

since

the

MPEG

standard

processes

pixels

in

this

color

space

-RRB-

of

consecutive

I-frames

are

compared

Each

component

of

the

color

histogram

is

gathered

from

the

DC

coefficients

of

DCT

blocks

of

the

corresponding

component

The

absolute

differences

between

the

histogram

bins

H

-LRB-

f

i

-RRB-

are

summed

and

normalized

by

the

histogram

bin

size

Hist

This

normalized

sum

is

squared

and

summed

together

among

the

three

y

u

v

components

The

normalized

sum

is

divided

by

the

normalized

sum

of

the

previous

I-frame

to

get

factor

A

suspected

scene

change

is

declared

by

three

thresholds

based

on

the

high

medium

and

low

factor

values

-LRB-

-RRB-

The

difficulty

of

this

approach

was

to

set

up

the

right

thresholds

Different

image

size

and

encoding

bit

rate

would

affect

the

threshold

A

new

approach

with

more

relaxed

constraint

on

thresholds

is

found

when

experimenting

with

the

dissolve

sequences

It

is

based

on

the

fact

that

the

intensity

variance

of

frames

within

the

same

scene

tends

to

remain

stable

at

a

level

although

high-motion

with

drastically

changing

intensity

would

drive

it

up

and

down

A

scene

change

is

often

indicated

by

a

peak

of

the

absolute

value

of

the

frame

variance

difference

But

this

method

alone

is

not

accurate

with

the

high-motion

scenes

Therefore

we

add

a

new

criterion

to

solve

this

problem

When

a

scene

change

happens

on

an

I-frame

the

B-frames

right

before

it

-LRB-

in

display

order

-RRB-

would

have

most

of

the

motion

vectors

pointing

forward

and

this

is

true

even

for

high-motion

sequences

Now

the

ratio

Rf

the

number

of

forward

motion

vectors

to

the

number

of

backward

motion

vectors

in

each

B-frame

is

used

in

detecting

scene

changes

on

I-frames

later

The

peaks

of

Rf

are

detected

by

the

local

window

method

-LRB-

see

-RRB-

An

I-frames

is

marked

as

a

suspected

scene

change

only

when

a

peak

happens

and

the

immediate

B

frame

before

it

has

a

Rf

peak

Detection

Algorithm

for

P-frames

P-frames

are

predictively

coded

-LRB-

from

previous

I

or

P

frames

-RRB-

with

only

forward

motion

compensation

In

addition

P-frames

are

always

accessed

in

display

order

When

a

scene

change

occurs

on

a

P-frame

the

Sumy

Hy

i

-LRB-

-RRB-

Hy

i

-LRB-

-RRB-

i

H

is

t

Sumf

Sum

y

Sumu

Sumv

-LRB-

-RRB-

H

i

st

encoder

could

not

use

many

macroblocks

from

the

previous

anchor

frame

to

perform

motion

compensation

and

therefore

a

large

amount

of

macroblocks

will

be

intra-coded

without

any

motion

compensation

To

detect

a

scene

change

that

occurs

on

a

P-frame

Rp

the

ratio

of

the

number

of

macroblocks

without

motion

compensations

to

the

number

of

macroblocks

with

motion

compensation

is

computed

A

suspected

scene

change

is

declared

if

there

is

a

peak

-LRB-

see

Figure

-RRB-

It

is

also

possible

to

use

the

residual

error

of

the

P-frame

after

motion

compensation

to

determine

scene

changes

This

information

is

carried

by

the

DCT

coefficients

especially

the

DC

coefficients

However

this

mechanism

is

usually

not

very

reliable

to

determine

scene

changes

especially

when

there

is

very

fast

motion

in

the

video

sequence

Detection

Algorithm

for

B-frames

When

a

scene

change

occurs

on

a

B-frame

-LRB-

for

example

frame

in

Figure

-RRB-

most

of

the

motion

vectors

will

come

from

the

anchor

frame

in

a

later

display

order

-LRB-

frame

-RRB-

and

very

few

motion

vectors

will

come

from

the

anchor

frame

in

an

earlier

display

order

-LRB-

frame

-RRB-

To

detect

a

scene

change

on

B

frames

Rb

the

ratio

of

the

number

of

backward

motion

vectors

to

forward

motion

vectors

is

computed

Two

situations

are

found

to

be

typical

when

a

scene

change

occurs

on

a

B

frame

First

the

ratio

is

very

high

-LRB-

-RRB-

with

a

lot

of

macroblocks

motion

compensated

Second

the

ratio

is

lower

-LRB-

-RRB-

with

few

macroblocks

motion

compensated

but

an

examination

of

anchor

frames

received

earlier

showed

a

possible

scene

change

In

stead

of

setting

two

global

thresholds

for

above

situations

the

adaptive

local

window

method

is

again

used

to

detect

scene

change

peak

points

The

Adaptive

Local

Window

Threshold

Setting

Technique

Different

scenes

have

very

different

motion

vector

ratios

But

within

the

same

scene

they

tend

to

be

similar

Setting

several

levels

of

global

thresholds

will

not

only

complicate

the

process

but

also

cause

false

alarms

and

false

dismissals

A

local

adaptive

threshold

technique

is

used

to

overcome

this

problem

The

peak

ratios

Rb

Rp

and

Rf

are

detected

separately

All

ratios

are

first

clipped

to

a

constant

upper

limit

usually

to

Then

ratio

samples

are

segmented

into

windows

Each

window

is

to

times

of

the

Group

of

Picture

-LRB-

GOP

-RRB-

size

For

typical

movie

sequences

scene

change

distances

are

mostly

greater

than

so

a

window

size

of

GOP

is

sufficient

If

GOP

is

and

window

size

is

there

will

be

ratio

samples

for

P-frames

and

samples

for

B-frame

These

samples

are

enough

to

detect

the

peaks

-LRB-

b

-RRB-

Histogram

of

a

local

window

Ratio

Number

RpRb

-LRB-

a

-RRB-

Rb

Rp

in

Frame

Number

Ratio

FIGURE

Motion

Vector

Ratio

In

B

and

P

Frames

Within

the

window

histogram

of

the

samples

with

a

bin

size

of

is

calculated

If

the

peak-to-average

ratio

is

greater

than

the

threshold

Td

then

the

peak

frame

is

declared

as

a

suspected

scene

change

The

peak

values

are

not

included

in

calculating

the

average

A

typical

Td

is

for

Rb

Rp

and

Rf

Figure

shows

the

histogram

of

a

local

window

corresponding

to

P-frames

-LRB-

from

frame

to

-RRB-

in

Figure

where

there

is

a

peak

at

frame

For

B-frames

if

a

scene

change

happens

at

a

B-frame

-LRB-

frame

in

Figure

-RRB-

then

the

ratio

of

the

immediately

subsequent

B

frame

-LRB-

frame

-RRB-

will

be

high

also

Both

of

them

will

be

considered

as

peaks

and

will

not

be

calculated

into

the

average

only

the

first

B-frame

will

be

marked

as

a

suspected

scene

change

Detection

of

Special

Editing

Effects

Dissolve

Dissolve

is

the

most

frequently

used

editing

technique

to

connect

two

scenes

together

A

dissolve

region

is

created

by

linearly

mixing

two

scenes

sequences

one

gradually

decreasing

in

intensity

one

gradually

increasing

A

dissolve

usually

lasts

from

to

frames

in

a

typical

movie

The

algorithm

described

above

can

not

detect

the

dissolve

region

due

to

the

similarity

of

the

adjacent

frames

in

that

region

We

follow

Alattar

s

approach

-LSB-

-RSB-

to

use

variance

as

the

indication

for

detecting

dissolve

However

we

measure

frame

variance

directly

in

the

compressed

domain

by

using

the

DCT

DC

coefficients

of

I

and

P

frames

Pixel

Domain

Dissolve

Region

Characteristics

Assume

-LRB-

t

-RRB-

and

-LRB-

t

-RRB-

are

two

ergotic

sequences

with

intensity

variance

and

Let

the

intensity

of

-LRB-

t

-RRB-

linearly

decrease

to

fade-out

and

-LRB-

t

-RRB-

linearly

increase

from

to

normal

fade-in

The

dissolve

region

is

the

sum

of

-LRB-

t

-RRB-

and

-LRB-

t

-RRB-

during

the

dissolve

-LRB-

start

end

-RRB-

f

-LRB-

t

-RRB-

-LRB-

t

-RRB-

-LSB-

-LRB-

t

-RRB-

-RSB-

-LRB-

t

-RRB-

a

-LRB-

t

-RRB-

-LRB-

-RRB-

where

a

-LRB-

t

-RRB-

is

-LRB-

-RRB-

-LRB-

-RRB-

increases

from

to

The

variance

of

f

-LRB-

t

-RRB-

in

the

dissolve

region

is

-LRB-

t

-RRB-

-LRB-

-RRB-

-LRB-

t

-RRB-

-LRB-

t

-RRB-

-LRB-

-RRB-

This

is

the

ideal

case

when

-LRB-

t

-RRB-

and

-LRB-

t

-RRB-

are

ergotic

with

and

see

Figure

The

variance

curve

in

the

dissolve

region

shows

a

clear

parabolic

shape

In

real

sequences

with

motions

the

variance

of

-LRB-

t

-RRB-

and

-LRB-

t

-RRB-

will

not

be

constant

but

the

dissolve

region

still

demonstrates

the

parabolic

shape

as

in

the

ideal

case

The

variance

curve

for

sequence

with

fade-out

followed

by

a

immediate

fade-in

is

similar

to

the

dissolve

case

except

the

valley

goes

down

deeper

to

almost

Frame

Number

Variance

FIGURE

An

Ideal

Dissolve

Curve

t

t

Dissolve

Detection

in

a

Bitstream

Based

on

the

characteristics

of

the

dissolve

region

the

detection

can

be

achieved

by

taking

the

pixel

domain

intensity

variance

of

each

frame

and

then

detecting

the

parabolic

curve

-LSB-

-RSB-

Given

an

MPEG

bitstream

the

variance

of

the

DCT

DC

coefficients

in

I

and

P

frames

is

calculated

in

stead

of

the

spatial

domain

variance

Since

the

DCT

DC

is

the

average

pixel

values

of

an

block

the

approximation

error

term

is

E

-LSB-

error

-RSB-

E

-LSB-

-RSB-

E

-LSB-

E

-LSB-

-RSB-

E

-LSB-

-RSB-

-RSB-

-LRB-

-RRB-

where

is

the

pixel

domain

variance

is

the

DCT

DC

variance

E

-LSB-

-RSB-

and

E

-LSB-

-RSB-

are

the

second

moment

of

the

pixel

intensity

and

DCT

DC

respectively

If

the

block

size

is

not

too

large

the

above

error

term

can

be

assumed

to

be

small

as

well

Experiments

show

that

the

variance

of

DCT

DC

values

is

accurate

enough

to

detect

dissolve

Inverse

Motion

Compensation

of

DCT

DC

in

P

Pictures

The

I-frames

in

MPEG

are

all

intra

coded

so

the

DCT

DC

value

can

be

obtained

directly

The

P-frames

consist

of

motion

compensated

-LRB-

MC

-RRB-

macroblocks

and

the

intra

coded

macroblocks

An

MC

macroblock

has

a

motion

vector

and

a

DCT

coded

MC

error

Each

macroblock

consists

of

luminance

blocks

-LRB-

each

-RRB-

and

some

chrominance

blocks

-LRB-

or

based

on

chrominance

format

-RRB-

To

ensure

maximum

performance

only

the

DCT

DC

of

luminance

block

are

used

for

dissolve

detection

The

DCT

DC

values

of

B

pictures

are

not

reconstructed

due

to

implementation

complexity

although

the

following

technique

can

still

be

applied

Since

a

typical

dissolve

would

last

to

frames

using

a

typical

IBBPBB

coding

format

there

will

be

to

I

or

P

frames

which

are

sufficient

for

detecting

a

dissolve

To

get

the

DCT

DC

values

of

a

P

frame

inverse

motion

compensation

is

applied

on

the

luminance

blocks

and

the

DCT

DC

value

of

the

error

term

is

added

to

the

reconstructed

DCT

DC

Assume

the

variance

within

each

block

is

small

enough

then

b

the

DCT

DC

of

a

MC

block

in

P

frame

can

be

approximated

by

taking

the

area-weighted

average

of

the

four

blocks

in

the

previous

frame

pointed

by

the

motion

vector

b

-LSB-

-LRB-

-RRB-

-LRB-

-RRB-

x

-LRB-

-RRB-

-LRB-

-RRB-

y

x

y

-RSB-

-LRB-

-RRB-

where

x

y

are

horizontal

and

vertical

motion

vector

modulo

block

size

and

are

the

DCT

DC

coefficients

of

the

four

neighboring

blocks

pointed

by

the

motion

vector

is

the

DCT

DC

of

the

motion

compensation

residue

error

of

block

to

be

reconstructed

-LRB-

see

Figure

-RRB-

Motion

Vector

b

FIGURE

Inverse

Motion

Compensation

of

DCT

DC

Dissolve

Detection

After

a

minimal

partial

inverse

motion

compensation

we

use

two

criteria

first

the

depth

of

the

variance

valley

must

be

large

enough

and

second

the

duration

of

the

suspected

dissolve

region

must

be

long

enough

-LRB-

otherwise

it?s

more

likely

an

abrupt

scene

change

-RRB-

The

specific

procedure

is

as

following

All

the

positive-peaks

p

are

detected

by

using

the

local

window

method

on

the

frame

variance

difference

all

the

negative-peaks

p

are

found

by

the

minimum

value

between

the

two

positive-peaks

the

peak-to-peak

difference

Dp

current

peak

previous

peak

is

calculated

and

thresholded

using

the

proposed

local

window

method

finally

potential

matches

with

duration

length

-LRB-

positive

peak

to

current

negative

peak

-RRB-

long

enough

-LRB-

Tf

frames

e.g.

of

the

minimum

allowed

dissolve

duration

-RRB-

are

declared

as

suspected

dissolves

The

starting

point

of

the

suspected

dissolve

is

the

previous

positive

peak

If

the

next

positive

peak

is

at

least

Tf

frames

from

the

current

negative

peak

then

a

dissolve

is

declared

and

the

ending

point

is

set

to

the

next

positive

peak

Frames

whose

peak-to-peak

distance

meets

the

magnitude

threshold

but

fail

to

meet

the

duration

threshold

are

usually

the

direct

scene

changes

Similarly

if

the

frame

duration

from

the

current

negative

peak

to

the

next

positive

peak

fails

to

meet

Tf

the

suspected

dissolve

will

be

unmarked

also

Scene

Change

Detection

Algorithm

Summary

The

overall

scene

change

detection

algorithm

has

five

stages

minimal

decoding

parsing

statistical

detection

and

decision

stages

Figure

shows

the

function

blocks

of

each

stage

Dissolve

Fade-in

Fade

out

Frame

Number

A

Direct

Scene

Change

A

Positive

Peak

A

Negative

Peak

Peak

to

Peak

Difference

Dp

FIGURE

Variance

and

in

Scene

Change

Detection

Function

Description

Minimal

Decoding

Stage

MPEG

bitstream

is

decoded

just

enough

to

obtain

motion

vectors

and

the

DCT

DCs

Parsing

Stage

Motion

Vectors

in

B

P

frames

are

counted

DCT

DCs

in

P

frames

are

reconstructed

Statistical

Stage

Compute

Rp

the

ratio

of

intra

coded

blocks

and

forward

motion

vectors

in

P-frames

Compute

Rb

the

ratio

of

backward

and

forward

motion

vectors

in

B-frames

Compute

Rf

the

ratio

of

forward

and

backward

motion

vectors

in

B-frames

Compute

the

variance

of

DCT

DC

of

luminance

in

I

and

P

frames

Detection

Stage

Detect

Rp

peaks

in

P

frames

and

mark

them

as

suspected

scene

change

frames

Detect

Rb

peaks

in

B

frames

and

mark

them

as

suspected

Detect

Rf

peaks

in

B

frames

Detect

all

in

I

P

frames

the

absolute

value

of

variance

frame

difference

Mark

I-frames

as

suspected

if

they

have

peaks

and

if

the

B-frames

in

front

them

have

Rf

peaks

Detect

the

parabolic

variance

curve

for

dissolve

Decision

Stage

All

suspected

frames

which

fall

in

the

dissolve

region

are

unmarked

Exam

through

all

marked

frames

from

the

lowest

frames

number

if

current

marked

frame

number

last

scene

change

number

Trejection

then

current

marked

frame

is

a

true

scene

change

else

unmark

current

frame

-LRB-

where

Trejection

is

the

rejection

threshold

default

one

GOP

-RRB-

The

criterion

in

step

of

Decision

Stage

is

used

to

eliminate

the

situations

discussed

in

i.e.

when

a

scene

change

happens

on

a

B

frame

then

the

immediately

subsequent

P-frame

and/or

I-frame

-LRB-

of

display

order

-RRB-

will

be

likely

marked

as

suspected

one

as

well

But

since

they

don?t

satisfy

the

criterion

of

the

minimum

distance

between

two

scene

changes

has

to

be

greater

than

Trejection

these

suspected

frames

will

be

unmarked

For

P

frames

the

marked

frame

decision

can

be

obtained

both

from

step

-LRB-

Rp

peaks

-RRB-

and

step

-LRB-

peaks

-RRB-

in

the

Detection

Stage

The

outcome

from

step

is

usually

more

reliable

The

outcome

from

step

can

be

used

as

reference

if

they

are

conflicting

with

the

outcome

of

step

Minimal

Decoding

Inverse

Motion

Compensation

of

DCT

DC

in

P

Count

Motion

Vectors

in

B

P

Intra/Fmv

Bmv/Fmv

Variance

of

DCT

DC

of

I

P

Parsing

Stage

Statistical

Stage

Detection

Stage

Decision

Stage

Detect

Suspected

Scene

Change

in

B

P

Frames

Detect

Suspected

Scene

Change

Detect

Dissolve

Regions

Final

Decision

Scene

Decoding

Stage

List

Fmv/Bmv

Rp

in

I

Frames

Rb

Rf

FIGURE

The

Function

Blocks

of

the

Scene

Change

Detection

Algorithm

Applications

of

the

Algorithm

Once

a

scene

change

is

detected

the

bitstream

can

then

be

fully

decoded

from

the

frame

of

the

scene

change

and

displayed

It

may

be

necessary

to

back

up

a

few

frames

in

the

bitstream

to

the

beginning

of

the

GOP

and

decode

all

prior

anchor

frames

in

the

GOP

in

order

to

fully

decode

the

frame

of

interest

for

display

It

is

also

conceivable

that

the

video

sequence

can

be

automatically

indexed

during

the

compression

process

using

this

algorithm

to

ease

the

burden

of

the

decoder

The

algorithm

described

above

may

be

simpler

and

more

computationally

efficient

than

the

pixel

domain

algorithm

since

only

DC

DCT

coefficients

are

needed

for

the

I-frames

and

motion

vector

types

are

needed

for

the

P

and

B

frames

Results

The

algorithm

is

implemented

based

on

Columbia

Unversity?s

codec

in

C

language

It

has

been

tested

on

several

video

sequences

from

movies

Three

test

sequences

and

have

image

size

of

-LRB-

letterbox

movie

-RRB-

and

coded

at

a

bit

rate

of

Mbits/s

which

is

equivalent

to

VHS

quality

One

sequence

has

image

size

of

-LRB-

sub-sample

of

the

original

-RRB-

and

coded

at

a

bit

rate

of

Mbits/s

They

are

all

coded

in

format

with

GOP

set

to

Among

the

four

test

videos

has

one

fade-out/fade-in

and

one

dissolve

all

other

three

videos

have

only

abrupt

scene

changes

-LRB-

a

-RRB-

-LRB-

abrupt

scene

change

-RRB-

-LRB-

b

-RRB-

-LRB-

abrupt

scene

change

-RRB-

-LRB-

d

-RRB-

-LRB-

abrupt

scene

change

-RRB-

-LRB-

c

-RRB-

-LRB-

fade

out/in

dissolve

-RRB-

FIGURE

Detection

Results

of

Four

Test

Sequences

The

window

size

for

all

tests

is

set

to

-LRB-

GOPs

-RRB-

With

threshold

Td

equals

to

for

detecting

peaks

the

algorithm

detected

all

the

abrupt

scene

changes

of

the

I

B

P

frames

were

missed

but

there

were

one

false

alarm

in

on

frame

When

Td

is

set

to

this

false

alarm

is

gone

Also

there

were

one

false

alarm

in

on

frame

which

was

actually

during

the

fading

period

and

can

be

resolved

at

the

decision

stage

For

the

dissolve

detection

the

algorithm

can

not

differentiate

dissolve

and

fade-out/fade-in

since

the

two

cases

are

extremely

similar

The

actual

fading

in

is

from

frame

the

algorithm

detected

because

frame

is

a

B-frame

and

this

algorithm

only

runs

on

I

and

P

frames

for

dissolve

detection

The

actual

dissolve

in

is

from

the

algorithm

detected

as

dissolve

region

This

is

because

frame

-LRB-

B-frame

-RRB-

is

the

frame

in

the

GOP

and

the

next

frame

-LRB-

P-frame

-RRB-

was

reconstructed

from

the

previous

IPP

frames

and

the

accuracy

of

this

third

time

reconstruction

is

low

due

to

the

accumulated

inverse

motion

compensation

errors

Therefore

frame

the

next

I-frame

is

detected

The

Video

Browser

User

Interface

An

interactive

user-friendly

interface

for

this

algorithm

has

been

developed

in

MOTIF

see

Figure

User

can

open

an

video

stream

and

run

the

scene

change

detection

algorithm

A

minimal

set

of

variables

can

be

set

by

the

user

such

as

the

local

window

size

and

the

threshold

for

detecting

the

peak

and

the

minimum

allowed

frame

distance

between

scene

changes

After

running

the

algorithm

a

scene

list

is

extracted

and

each

scene

is

represented

by

a

pixmap

icon

By

clicking

on

the

scene

icon

user

can

view

the

video

stream

for

this

particular

scene

A

video

control

panel

is

supplied

for

user

to

perform

VCR

functions

such

as

play

step

forward

fast

forward

and

fast

reverse

on

the

video

stream

User

can

also

use

the

video

panel

to

access

any

random

frame

by

click

in

the

frame

number

and

Search

The

scene

list

returned

by

the

algorithm

will

be

become

the

default

index

for

the

video

User

can

add

or

delete

scenes

from

the

default

scene

list

A

few

keyword

descriptions

such

as

color

object

and

motion

can

also

be

added

to

each

scene

for

simple

keyword

base

video

query

A

content

base

query

is

being

developed

which

will

allow

users

to

search

desired

image

frames

based

on

image

contents

-LRB-

color

texture

and

shape

-RRB-

-LSB-

-RSB-

Conclusion

This

paper

presented

an

algorithm

of

detecting

scene

changes

and

special

effects

such

as

dissolve

with

minimal

decoding

of

a

bitstream

Compared

to

the

traditional

approach

the

detection

is

performed

with

only

a

partial

decoding

of

the

compressed

bitstream

minimal

decoding

for

the

DCT

DC

coefficients

for

the

I

and

P

frames

and

motion

vectors

for

the

P

and

B

frames

A

full

decode

of

the

compressed

bitstream

is

not

necessary

and

therefore

computation

time

can

be

saved

References

S.-F

Chang

and

D.G.

Messerschmitt

Manipulation

and

Compositing

of

MC-DCT

Compressed

Video

to

appear

in

IEEE

Journal

of

Selected

Areas

in

Communications

Special

Issue

on

Intelligent

Signal

Processing

F.

Arman

A.

Hsu

and

M-Y

Chiu

Image

Processing

on

Compressed

Data

for

Large

Video

Databases

Proceedings

of

ACM

Multimedia

June

pp.

A.

Nagasaka

and

Y.

Tanaka

Automatic

Video

Indexing

and

Full-Video

Search

for

Object

Appearances

In

E.

Knuth

and

L.

M.

Wegner

editors

Video

Database

Systems

II

Elsevier

Science

Publishers

B.V.

North-Holland

pp.

R.

Barber

W.

Equitz

M.

Flickner

W.

Niblack

D.

Petrovic

P.

Yanker

Efficient

Query

by

Image

Content

for

Very

Large

Image

Database

COMPCON

San

Francisco

CA.

pp.

J.R.

Smith

and

S.-F

Chang

Quad-Tree

Segmentation

for

Texture-Based

Image

Query

ACM

Multimedia

Conference

Proceedings

ISO/IEC

Committee

Draft

-LRB-

MPEG

-RRB-

ISO/IEC

Committee

Draft

-LRB-

-RRB-

A.

M.

Alattar

Detecting

and

Compressing

Dissolve

Regions

in

Video

Sequences

with

DVI

Multimedia

Image

Compression

Algorithm

ISCAS

pp.

S.-F

Chang

J.R.

Smith

and

H.

Wang

Feature

Extration

Indexing

for

content-Based

Visual

Query

submitted

to

IEEE

Computer

Magazine

J.

Zhang

A.

Kankanhalli

S.W.

Smoliar

Automatic

Partitioning

of

Full-motion

Video

Multimedia

Systems

-LRB-

-RRB-

pp.

ACM-Springer

FIGURE

The

Video

Browser

User

Interface

with

Scene

Change

Detection

B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I

compressed-domain editing
mpeg compressed streams