Skip to content

Commit

Permalink
Enhance BPG decoding speed
Browse files Browse the repository at this point in the history
- Decode: add ThreadPool to accelerate BPG decoding post process
- libx265: update to v1.8
- Refactor & simplify bpg API
  • Loading branch information
Leav Wu committed Dec 21, 2015
1 parent 9e5812b commit be693ac
Show file tree
Hide file tree
Showing 20 changed files with 2,856 additions and 353 deletions.
20 changes: 13 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@ GCC = gcc
CXX = g++
RC = windres

CPPFLAGS += -DUSE_JCTVC -DUSE_X265 -I$(bpg_PATH) -Isrc
CPPFLAGS += -DUSE_JCTVC -DUSE_X265 -I$(bpg_PATH) -Isrc -std=c++11
CFLAGS += -Wall
LDFLAGS +=
LDFLAGS +=
DEPFLAGS = -MMD -MF $(subst .o,.d,$@)

ifeq ($(DEBUG),1)
CFLAGS += -O0
CFLAGS += -O0 -g
else
CFLAGS += -O2 -march=i686
endif
Expand All @@ -41,6 +42,7 @@ define end-module-eval
$(MODULE_NAME)_SRC = $$(addprefix src/$(MODULE_NAME)/,$(MODULE_SRC))
$(MODULE_NAME)_H = $$(wildcard src/$(MODULE_NAME)/*.h)
$(MODULE_NAME)_OBJ = $$(call src2obj,$$($(MODULE_NAME)_SRC))
$(MODULE_NAME)_DEP = $$(patsubst %.o,%.d,$$(filter %.o,$$($(MODULE_NAME)_OBJ)))
$(MODULE_NAME)_OUTDIR = $$(call out-dirs,$$($(MODULE_NAME)_OBJ))
$(MODULE_NAME)_OUT2 = obj/$(MODULE_NAME)/$(MODULE_OUT)
MODULES += $(MODULE_NAME)
Expand All @@ -52,6 +54,7 @@ $$($(MODULE_NAME)_OUT2): $$($(MODULE_NAME)_OBJ)
MODULE_NAME :=
MODULE_SRC :=
MODULE_OUT :=
-include $$($(MODULE_NAME)_DEP)
endef

# Called at the end of module.mk
Expand All @@ -64,9 +67,10 @@ MODULES_MK = $(shell ls src/*/module.mk)
$(foreach m,$(MODULES_MK),$(eval include $(m)))

# Common parts
common_SRC = $(addprefix src/, reader.cpp writer.cpp dprintf.cpp)
common_SRC = $(addprefix src/, reader.cpp writer.cpp threadpool.cpp looptask.cpp dprintf.cpp)
common_H = $(wildcard src/*.h)
common_OBJ = $(call src2obj,$(common_SRC))
common_DEP = $(patsubst %.o,%.d,$(filter %.o,$(common_OBJ)))
common_LIB = obj/libbpg-common.a
common_OUTDIR = $(call out-dirs,$(common_OBJ))

Expand All @@ -77,6 +81,8 @@ common: $(common_LIB)
$(common_OBJ): | $(common_H) $(common_OUTDIR)
$(common_LIB): $(common_OBJ)

-include $(common_DEP)


### Targets ###
.PHONY: all clean test libbpg $(MODULES)
Expand All @@ -95,7 +101,7 @@ libbpg:
obj/read_test.exe: $(CPPFLAGS)+=-I../src -I../$(bpg_PATH)

obj/read_test.exe: test/read_test.cpp $(common_LIB) $(libbpg_LIB) $(libx265_LIB)
$(CXX) $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) $(LDFLAGS) $^ -o $@
$(CXX) $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) $^ $(LDFLAGS) -o $@

$(MODULES_OUT): $(common_LIB) $(libbpg_LIB) $(libx265_LIB)

Expand All @@ -111,10 +117,10 @@ obj/%.a:
$(AR) rcs $@ $^

obj/%.c.o: src/%.c
$(GCC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
$(GCC) -c $(CPPFLAGS) $(DEPFLAGS) $(CFLAGS) $< -o $@

obj/%.cpp.o: src/%.cpp
$(CXX) -c $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) $< -o $@
$(CXX) -c $(CPPFLAGS) $(DEPFLAGS) $(CFLAGS) $(CXXFLAGS) $< -o $@

obj/%.rc.o: src/%.rc
$(RC) $< $@
2 changes: 1 addition & 1 deletion libbpg-0.9.5
Loading

0 comments on commit be693ac

Please sign in to comment.